@skyux/lookup 6.13.0 → 6.14.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 (25) hide show
  1. package/documentation.json +642 -599
  2. package/esm2020/lib/modules/autocomplete/autocomplete-input.directive.mjs +9 -1
  3. package/esm2020/lib/modules/autocomplete/autocomplete.component.mjs +10 -4
  4. package/esm2020/testing/autocomplete/autocomplete-harness-filters.mjs +2 -0
  5. package/esm2020/testing/autocomplete/autocomplete-harness.mjs +157 -0
  6. package/esm2020/testing/autocomplete/autocomplete-input-harness.mjs +60 -0
  7. package/esm2020/testing/autocomplete/autocomplete-search-result-harness-filters.mjs +2 -0
  8. package/esm2020/testing/autocomplete/autocomplete-search-result-harness.mjs +40 -0
  9. package/esm2020/testing/public-api.mjs +5 -1
  10. package/fesm2015/skyux-lookup-testing.mjs +307 -2
  11. package/fesm2015/skyux-lookup-testing.mjs.map +1 -1
  12. package/fesm2015/skyux-lookup.mjs +18 -3
  13. package/fesm2015/skyux-lookup.mjs.map +1 -1
  14. package/fesm2020/skyux-lookup-testing.mjs +255 -1
  15. package/fesm2020/skyux-lookup-testing.mjs.map +1 -1
  16. package/fesm2020/skyux-lookup.mjs +17 -3
  17. package/fesm2020/skyux-lookup.mjs.map +1 -1
  18. package/lib/modules/autocomplete/autocomplete-input.directive.d.ts +1 -0
  19. package/package.json +11 -10
  20. package/testing/autocomplete/autocomplete-harness-filters.d.ts +6 -0
  21. package/testing/autocomplete/autocomplete-harness.d.ts +79 -0
  22. package/testing/autocomplete/autocomplete-input-harness.d.ts +39 -0
  23. package/testing/autocomplete/autocomplete-search-result-harness-filters.d.ts +10 -0
  24. package/testing/autocomplete/autocomplete-search-result-harness.d.ts +30 -0
  25. package/testing/public-api.d.ts +4 -0
@@ -0,0 +1,157 @@
1
+ var _SkyAutocompleteHarness_instances, _SkyAutocompleteHarness_documentRootLocator, _SkyAutocompleteHarness_getInput, _SkyAutocompleteHarness_getOverlay;
2
+ import { __classPrivateFieldGet } from "tslib";
3
+ import { SkyComponentHarness, SkyOverlayHarness } from '@skyux/core/testing';
4
+ import { SkyAutocompleteInputHarness } from './autocomplete-input-harness';
5
+ import { SkyAutocompleteSearchResultHarness } from './autocomplete-search-result-harness';
6
+ /**
7
+ * Harness for interacting with an autocomplete component in tests.
8
+ */
9
+ export class SkyAutocompleteHarness extends SkyComponentHarness {
10
+ constructor() {
11
+ super(...arguments);
12
+ _SkyAutocompleteHarness_instances.add(this);
13
+ _SkyAutocompleteHarness_documentRootLocator.set(this, this.documentRootLocatorFactory());
14
+ _SkyAutocompleteHarness_getInput.set(this, this.locatorFor(SkyAutocompleteInputHarness));
15
+ }
16
+ /**
17
+ * Gets a `HarnessPredicate` that can be used to search for a
18
+ * `SkyAutocompleteHarness` that meets certain criteria.
19
+ */
20
+ static with(filters) {
21
+ return SkyAutocompleteHarness.getDataSkyIdPredicate(filters);
22
+ }
23
+ /**
24
+ * Blurs the autocomplete input.
25
+ */
26
+ async blur() {
27
+ return (await __classPrivateFieldGet(this, _SkyAutocompleteHarness_getInput, "f").call(this)).blur();
28
+ }
29
+ /**
30
+ * Clears the input value.
31
+ */
32
+ async clear() {
33
+ return (await __classPrivateFieldGet(this, _SkyAutocompleteHarness_getInput, "f").call(this)).clear();
34
+ }
35
+ /**
36
+ * Enters text into the autocomplete input.
37
+ */
38
+ async enterText(value) {
39
+ return (await __classPrivateFieldGet(this, _SkyAutocompleteHarness_getInput, "f").call(this)).enterText(value);
40
+ }
41
+ /**
42
+ * Focuses the autocomplete input.
43
+ */
44
+ async focus() {
45
+ return (await __classPrivateFieldGet(this, _SkyAutocompleteHarness_getInput, "f").call(this)).focus();
46
+ }
47
+ /**
48
+ * Returns search result harnesses.
49
+ */
50
+ async getSearchResults(filters) {
51
+ const overlay = await __classPrivateFieldGet(this, _SkyAutocompleteHarness_instances, "m", _SkyAutocompleteHarness_getOverlay).call(this);
52
+ if (!overlay) {
53
+ throw new Error('Unable to retrieve search results. The autocomplete is closed.');
54
+ }
55
+ const harnesses = await overlay.queryHarnesses(SkyAutocompleteSearchResultHarness.with(filters || {}));
56
+ if (filters && harnesses.length === 0) {
57
+ // Stringify the regular expression so that it's readable in the console log.
58
+ if (filters.textContent instanceof RegExp) {
59
+ filters.textContent = filters.textContent.toString();
60
+ }
61
+ throw new Error(`Could not find search results matching filter(s): ${JSON.stringify(filters)}`);
62
+ }
63
+ return harnesses;
64
+ }
65
+ /**
66
+ * Returns the text content for each search result.
67
+ */
68
+ async getSearchResultsText(filters) {
69
+ const harnesses = await this.getSearchResults(filters);
70
+ const text = [];
71
+ for (const harness of harnesses) {
72
+ text.push(await harness.textContent());
73
+ }
74
+ return text;
75
+ }
76
+ /**
77
+ * Gets the value of the autocomplete input.
78
+ */
79
+ async getValue() {
80
+ return (await __classPrivateFieldGet(this, _SkyAutocompleteHarness_getInput, "f").call(this)).getValue();
81
+ }
82
+ /**
83
+ * Whether the autocomplete input is disabled.
84
+ */
85
+ async isDisabled() {
86
+ return (await __classPrivateFieldGet(this, _SkyAutocompleteHarness_getInput, "f").call(this)).isDisabled();
87
+ }
88
+ /**
89
+ * Whether the autocomplete input is focused.
90
+ */
91
+ async isFocused() {
92
+ return (await __classPrivateFieldGet(this, _SkyAutocompleteHarness_getInput, "f").call(this)).isFocused();
93
+ }
94
+ /**
95
+ * Whether the autocomplete is open.
96
+ */
97
+ async isOpen() {
98
+ const overlay = await __classPrivateFieldGet(this, _SkyAutocompleteHarness_instances, "m", _SkyAutocompleteHarness_getOverlay).call(this);
99
+ return !!overlay;
100
+ }
101
+ /**
102
+ * Selects a search result.
103
+ */
104
+ async selectSearchResult(filters) {
105
+ const results = await this.getSearchResults(filters);
106
+ if (results && results.length > 0) {
107
+ await results[0].select();
108
+ }
109
+ }
110
+ /**
111
+ * Clicks the "Add" button in the autocomplete search results panel.
112
+ * (The "Add" functionality is not included in the public API
113
+ * of a "vanilla" autocomplete component, so this method is protected
114
+ * to prevent consumers of the autocomplete harness from calling it.
115
+ * The lookup harness, which extends the autocomplete harness, may
116
+ * still access this feature, however.)
117
+ */
118
+ async clickAddButton() {
119
+ const overlay = await __classPrivateFieldGet(this, _SkyAutocompleteHarness_instances, "m", _SkyAutocompleteHarness_getOverlay).call(this);
120
+ if (!overlay) {
121
+ throw new Error('Unable to find the "Add" button. The autocomplete is closed.');
122
+ }
123
+ const button = await overlay.querySelector('button.sky-autocomplete-action-add');
124
+ if (!button) {
125
+ throw new Error('The "Add" button cannot be clicked because it does not exist.');
126
+ }
127
+ await button.click();
128
+ }
129
+ /**
130
+ * Clicks the "Show more" button.
131
+ * (The "Show more" functionality is not included in the public API
132
+ * of a "vanilla" autocomplete component, so this method is protected
133
+ * to prevent consumers of the autocomplete harness from calling it.
134
+ * The lookup harness, which extends the autocomplete harness, may
135
+ * still access this feature, however.)
136
+ */
137
+ async clickShowMoreButton() {
138
+ const overlay = await __classPrivateFieldGet(this, _SkyAutocompleteHarness_instances, "m", _SkyAutocompleteHarness_getOverlay).call(this);
139
+ if (!overlay) {
140
+ throw new Error('Unable to find the "Show more" button. ' +
141
+ 'The autocomplete is closed.');
142
+ }
143
+ const button = await overlay.querySelector('button.sky-autocomplete-action-more');
144
+ if (!button) {
145
+ throw new Error('The "Show more" button cannot be clicked because it does not exist.');
146
+ }
147
+ await button.click();
148
+ }
149
+ }
150
+ _SkyAutocompleteHarness_documentRootLocator = new WeakMap(), _SkyAutocompleteHarness_getInput = new WeakMap(), _SkyAutocompleteHarness_instances = new WeakSet(), _SkyAutocompleteHarness_getOverlay = async function _SkyAutocompleteHarness_getOverlay() {
151
+ const overlayId = await (await __classPrivateFieldGet(this, _SkyAutocompleteHarness_getInput, "f").call(this)).getAriaOwns();
152
+ return overlayId
153
+ ? __classPrivateFieldGet(this, _SkyAutocompleteHarness_documentRootLocator, "f").locatorForOptional(SkyOverlayHarness.with({ selector: `#${overlayId}` }))()
154
+ : null;
155
+ };
156
+ SkyAutocompleteHarness.hostSelector = 'sky-autocomplete';
157
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0b2NvbXBsZXRlLWhhcm5lc3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvbG9va3VwL3Rlc3Rpbmcvc3JjL2F1dG9jb21wbGV0ZS9hdXRvY29tcGxldGUtaGFybmVzcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUNBLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRzdFLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQzNFLE9BQU8sRUFBRSxrQ0FBa0MsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBRzFGOztHQUVHO0FBQ0gsTUFBTSxPQUFPLHNCQUF1QixTQUFRLG1CQUFtQjtJQUEvRDs7O1FBR0Usc0RBQXVCLElBQUksQ0FBQywwQkFBMEIsRUFBRSxFQUFDO1FBRXpELDJDQUFZLElBQUksQ0FBQyxVQUFVLENBQUMsMkJBQTJCLENBQUMsRUFBQztJQXdNM0QsQ0FBQztJQXRNQzs7O09BR0c7SUFDSSxNQUFNLENBQUMsSUFBSSxDQUNoQixPQUFzQztRQUV0QyxPQUFPLHNCQUFzQixDQUFDLHFCQUFxQixDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQy9ELENBQUM7SUFFRDs7T0FFRztJQUNJLEtBQUssQ0FBQyxJQUFJO1FBQ2YsT0FBTyxDQUFDLE1BQU0sdUJBQUEsSUFBSSx3Q0FBVSxNQUFkLElBQUksQ0FBWSxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDekMsQ0FBQztJQUVEOztPQUVHO0lBQ0ksS0FBSyxDQUFDLEtBQUs7UUFDaEIsT0FBTyxDQUFDLE1BQU0sdUJBQUEsSUFBSSx3Q0FBVSxNQUFkLElBQUksQ0FBWSxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDMUMsQ0FBQztJQUVEOztPQUVHO0lBQ0ksS0FBSyxDQUFDLFNBQVMsQ0FBQyxLQUFhO1FBQ2xDLE9BQU8sQ0FBQyxNQUFN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SUFBSSxTQUFTLEVBQUUsRUFBRSxDQUFDLENBQ3RELEVBQUU7UUFDTCxDQUFDLENBQUMsSUFBSSxDQUFDO0FBQ1gsQ0FBQztBQTNNYSxtQ0FBWSxHQUFHLGtCQUFrQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSGFybmVzc1ByZWRpY2F0ZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay90ZXN0aW5nJztcbmltcG9ydCB7IFNreUNvbXBvbmVudEhhcm5lc3MsIFNreU92ZXJsYXlIYXJuZXNzIH0gZnJvbSAnQHNreXV4L2NvcmUvdGVzdGluZyc7XG5cbmltcG9ydCB7IFNreUF1dG9jb21wbGV0ZUhhcm5lc3NGaWx0ZXJzIH0gZnJvbSAnLi9hdXRvY29tcGxldGUtaGFybmVzcy1maWx0ZXJzJztcbmltcG9ydCB7IFNreUF1dG9jb21wbGV0ZUlucHV0SGFybmVzcyB9IGZyb20gJy4vYXV0b2NvbXBsZXRlLWlucHV0LWhhcm5lc3MnO1xuaW1wb3J0IHsgU2t5QXV0b2NvbXBsZXRlU2VhcmNoUmVzdWx0SGFybmVzcyB9IGZyb20gJy4vYXV0b2NvbXBsZXRlLXNlYXJjaC1yZXN1bHQtaGFybmVzcyc7XG5pbXBvcnQgeyBTa3lBdXRvY29tcGxldGVTZWFyY2hSZXN1bHRIYXJuZXNzRmlsdGVycyB9IGZyb20gJy4vYXV0b2NvbXBsZXRlLXNlYXJjaC1yZXN1bHQtaGFybmVzcy1maWx0ZXJzJztcblxuLyoqXG4gKiBIYXJuZXNzIGZvciBpbnRlcmFjdGluZyB3aXRoIGFuIGF1dG9jb21wbGV0ZSBjb21wb25lbnQgaW4gdGVzdHMuXG4gKi9cbmV4cG9ydCBjbGFzcyBTa3lBdXRvY29tcGxldGVIYXJuZXNzIGV4dGVuZHMgU2t5Q29tcG9uZW50SGFybmVzcyB7XG4gIHB1YmxpYyBzdGF0aWMgaG9zdFNlbGVjdG9yID0gJ3NreS1hdXRvY29tcGxldGUnO1xuXG4gICNkb2N1bWVudFJvb3RMb2NhdG9yID0gdGhpcy5kb2N1bWVudFJvb3RMb2NhdG9yRmFjdG9yeSgpO1xuXG4gICNnZXRJbnB1dCA9IHRoaXMubG9jYXRvckZvcihTa3lBdXRvY29tcGxldGVJbnB1dEhhcm5lc3MpO1xuXG4gIC8qKlxuICAgKiBHZXRzIGEgYEhhcm5lc3NQcmVkaWNhdGVgIHRoYXQgY2FuIGJlIHVzZWQgdG8gc2VhcmNoIGZvciBhXG4gICAqIGBTa3lBdXRvY29tcGxldGVIYXJuZXNzYCB0aGF0IG1lZXRzIGNlcnRhaW4gY3JpdGVyaWEuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHdpdGgoXG4gICAgZmlsdGVyczogU2t5QXV0b2NvbXBsZXRlSGFybmVzc0ZpbHRlcnNcbiAgKTogSGFybmVzc1ByZWRpY2F0ZTxTa3lBdXRvY29tcGxldGVIYXJuZXNzPiB7XG4gICAgcmV0dXJuIFNreUF1dG9jb21wbGV0ZUhhcm5lc3MuZ2V0RGF0YVNreUlkUHJlZGljYXRlKGZpbHRlcnMpO1xuICB9XG5cbiAgLyoqXG4gICAqIEJsdXJzIHRoZSBhdXRvY29tcGxldGUgaW5wdXQuXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgYmx1cigpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICByZXR1cm4gKGF3YWl0IHRoaXMuI2dldElucHV0KCkpLmJsdXIoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDbGVhcnMgdGhlIGlucHV0IHZhbHVlLlxuICAgKi9cbiAgcHVibGljIGFzeW5jIGNsZWFyKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIHJldHVybiAoYXdhaXQgdGhpcy4jZ2V0SW5wdXQoKSkuY2xlYXIoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBFbnRlcnMgdGV4dCBpbnRvIHRoZSBhdXRvY29tcGxldGUgaW5wdXQuXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgZW50ZXJUZXh0KHZhbHVlOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICByZXR1cm4gKGF3YWl0IHRoaXMuI2dldElucHV0KCkpLmVudGVyVGV4dCh2YWx1ZSk7XG4gIH1cblxuICAvKipcbiAgICogRm9jdXNlcyB0aGUgYXV0b2NvbXBsZXRlIGlucHV0LlxuICAgKi9cbiAgcHVibGljIGFzeW5jIGZvY3VzKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIHJldHVybiAoYXdhaXQgdGhpcy4jZ2V0SW5wdXQoKSkuZm9jdXMoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHNlYXJjaCByZXN1bHQgaGFybmVzc2VzLlxuICAgKi9cbiAgcHVibGljIGFzeW5jIGdldFNlYXJjaFJlc3VsdHMoXG4gICAgZmlsdGVycz86IFNreUF1dG9jb21wbGV0ZVNlYXJjaFJlc3VsdEhhcm5lc3NGaWx0ZXJzXG4gICk6IFByb21pc2U8U2t5QXV0b2NvbXBsZXRlU2VhcmNoUmVzdWx0SGFybmVzc1tdPiB7XG4gICAgY29uc3Qgb3ZlcmxheSA9IGF3YWl0IHRoaXMuI2dldE92ZXJsYXkoKTtcblxuICAgIGlmICghb3ZlcmxheSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAnVW5hYmxlIHRvIHJldHJpZXZlIHNlYXJjaCByZXN1bHRzLiBUaGUgYXV0b2NvbXBsZXRlIGlzIGNsb3NlZC4nXG4gICAgICApO1xuICAgIH1cblxuICAgIGNvbnN0IGhhcm5lc3NlcyA9IGF3YWl0IG92ZXJsYXkucXVlcnlIYXJuZXNzZXMoXG4gICAgICBTa3lBdXRvY29tcGxldGVTZWFyY2hSZXN1bHRIYXJuZXNzLndpdGgoZmlsdGVycyB8fCB7fSlcbiAgICApO1xuXG4gICAgaWYgKGZpbHRlcnMgJiYgaGFybmVzc2VzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgLy8gU3RyaW5naWZ5IHRoZSByZWd1bGFyIGV4cHJlc3Npb24gc28gdGhhdCBpdCdzIHJlYWRhYmxlIGluIHRoZSBjb25zb2xlIGxvZy5cbiAgICAgIGlmIChmaWx0ZXJzLnRleHRDb250ZW50IGluc3RhbmNlb2YgUmVnRXhwKSB7XG4gICAgICAgIGZpbHRlcnMudGV4dENvbnRlbnQgPSBmaWx0ZXJzLnRleHRDb250ZW50LnRvU3RyaW5nKCk7XG4gICAgICB9XG5cbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgYENvdWxkIG5vdCBmaW5kIHNlYXJjaCByZXN1bHRzIG1hdGNoaW5nIGZpbHRlcihzKTogJHtKU09OLnN0cmluZ2lmeShcbiAgICAgICAgICBmaWx0ZXJzXG4gICAgICAgICl9YFxuICAgICAgKTtcbiAgICB9XG5cbiAgICByZXR1cm4gaGFybmVzc2VzO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIHRleHQgY29udGVudCBmb3IgZWFjaCBzZWFyY2ggcmVzdWx0LlxuICAgKi9cbiAgcHVibGljIGFzeW5jIGdldFNlYXJjaFJlc3VsdHNUZXh0KFxuICAgIGZpbHRlcnM/OiBTa3lBdXRvY29tcGxldGVTZWFyY2hSZXN1bHRIYXJuZXNzRmlsdGVyc1xuICApOiBQcm9taXNlPHN0cmluZ1tdPiB7XG4gICAgY29uc3QgaGFybmVzc2VzID0gYXdhaXQgdGhpcy5nZXRTZWFyY2hSZXN1bHRzKGZpbHRlcnMpO1xuXG4gICAgY29uc3QgdGV4dDogc3RyaW5nW10gPSBbXTtcbiAgICBmb3IgKGNvbnN0IGhhcm5lc3Mgb2YgaGFybmVzc2VzKSB7XG4gICAgICB0ZXh0LnB1c2goYXdhaXQgaGFybmVzcy50ZXh0Q29udGVudCgpKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGV4dDtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSB2YWx1ZSBvZiB0aGUgYXV0b2NvbXBsZXRlIGlucHV0LlxuICAgKi9cbiAgcHVibGljIGFzeW5jIGdldFZhbHVlKCk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgcmV0dXJuIChhd2FpdCB0aGlzLiNnZXRJbnB1dCgpKS5nZXRWYWx1ZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhlIGF1dG9jb21wbGV0ZSBpbnB1dCBpcyBkaXNhYmxlZC5cbiAgICovXG4gIHB1YmxpYyBhc3luYyBpc0Rpc2FibGVkKCk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIHJldHVybiAoYXdhaXQgdGhpcy4jZ2V0SW5wdXQoKSkuaXNEaXNhYmxlZCgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhlIGF1dG9jb21wbGV0ZSBpbnB1dCBpcyBmb2N1c2VkLlxuICAgKi9cbiAgcHVibGljIGFzeW5jIGlzRm9jdXNlZCgpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gKGF3YWl0IHRoaXMuI2dldElucHV0KCkpLmlzRm9jdXNlZCgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhlIGF1dG9jb21wbGV0ZSBpcyBvcGVuLlxuICAgKi9cbiAgcHVibGljIGFzeW5jIGlzT3BlbigpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICBjb25zdCBvdmVybGF5ID0gYXdhaXQgdGhpcy4jZ2V0T3ZlcmxheSgpO1xuICAgIHJldHVybiAhIW92ZXJsYXk7XG4gIH1cblxuICAvKipcbiAgICogU2VsZWN0cyBhIHNlYXJjaCByZXN1bHQuXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgc2VsZWN0U2VhcmNoUmVzdWx0KFxuICAgIGZpbHRlcnM6IFNreUF1dG9jb21wbGV0ZVNlYXJjaFJlc3VsdEhhcm5lc3NGaWx0ZXJzXG4gICk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IHJlc3VsdHMgPSBhd2FpdCB0aGlzLmdldFNlYXJjaFJlc3VsdHMoZmlsdGVycyk7XG4gICAgaWYgKHJlc3VsdHMgJiYgcmVzdWx0cy5sZW5ndGggPiAwKSB7XG4gICAgICBhd2FpdCByZXN1bHRzWzBdLnNlbGVjdCgpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBDbGlja3MgdGhlIFwiQWRkXCIgYnV0dG9uIGluIHRoZSBhdXRvY29tcGxldGUgc2VhcmNoIHJlc3VsdHMgcGFuZWwuXG4gICAqIChUaGUgXCJBZGRcIiBmdW5jdGlvbmFsaXR5IGlzIG5vdCBpbmNsdWRlZCBpbiB0aGUgcHVibGljIEFQSVxuICAgKiBvZiBhIFwidmFuaWxsYVwiIGF1dG9jb21wbGV0ZSBjb21wb25lbnQsIHNvIHRoaXMgbWV0aG9kIGlzIHByb3RlY3RlZFxuICAgKiB0byBwcmV2ZW50IGNvbnN1bWVycyBvZiB0aGUgYXV0b2NvbXBsZXRlIGhhcm5lc3MgZnJvbSBjYWxsaW5nIGl0LlxuICAgKiBUaGUgbG9va3VwIGhhcm5lc3MsIHdoaWNoIGV4dGVuZHMgdGhlIGF1dG9jb21wbGV0ZSBoYXJuZXNzLCBtYXlcbiAgICogc3RpbGwgYWNjZXNzIHRoaXMgZmVhdHVyZSwgaG93ZXZlci4pXG4gICAqL1xuICBwcm90ZWN0ZWQgYXN5bmMgY2xpY2tBZGRCdXR0b24oKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3Qgb3ZlcmxheSA9IGF3YWl0IHRoaXMuI2dldE92ZXJsYXkoKTtcbiAgICBpZiAoIW92ZXJsYXkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgJ1VuYWJsZSB0byBmaW5kIHRoZSBcIkFkZFwiIGJ1dHRvbi4gVGhlIGF1dG9jb21wbGV0ZSBpcyBjbG9zZWQuJ1xuICAgICAgKTtcbiAgICB9XG5cbiAgICBjb25zdCBidXR0b24gPSBhd2FpdCBvdmVybGF5LnF1ZXJ5U2VsZWN0b3IoXG4gICAgICAnYnV0dG9uLnNreS1hdXRvY29tcGxldGUtYWN0aW9uLWFkZCdcbiAgICApO1xuXG4gICAgaWYgKCFidXR0b24pIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgJ1RoZSBcIkFkZFwiIGJ1dHRvbiBjYW5ub3QgYmUgY2xpY2tlZCBiZWNhdXNlIGl0IGRvZXMgbm90IGV4aXN0LidcbiAgICAgICk7XG4gICAgfVxuXG4gICAgYXdhaXQgYnV0dG9uLmNsaWNrKCk7XG4gIH1cblxuICAvKipcbiAgICogQ2xpY2tzIHRoZSBcIlNob3cgbW9yZVwiIGJ1dHRvbi5cbiAgICogKFRoZSBcIlNob3cgbW9yZVwiIGZ1bmN0aW9uYWxpdHkgaXMgbm90IGluY2x1ZGVkIGluIHRoZSBwdWJsaWMgQVBJXG4gICAqIG9mIGEgXCJ2YW5pbGxhXCIgYXV0b2NvbXBsZXRlIGNvbXBvbmVudCwgc28gdGhpcyBtZXRob2QgaXMgcHJvdGVjdGVkXG4gICAqIHRvIHByZXZlbnQgY29uc3VtZXJzIG9mIHRoZSBhdXRvY29tcGxldGUgaGFybmVzcyBmcm9tIGNhbGxpbmcgaXQuXG4gICAqIFRoZSBsb29rdXAgaGFybmVzcywgd2hpY2ggZXh0ZW5kcyB0aGUgYXV0b2NvbXBsZXRlIGhhcm5lc3MsIG1heVxuICAgKiBzdGlsbCBhY2Nlc3MgdGhpcyBmZWF0dXJlLCBob3dldmVyLilcbiAgICovXG4gIHByb3RlY3RlZCBhc3luYyBjbGlja1Nob3dNb3JlQnV0dG9uKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IG92ZXJsYXkgPSBhd2FpdCB0aGlzLiNnZXRPdmVybGF5KCk7XG5cbiAgICBpZiAoIW92ZXJsYXkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgJ1VuYWJsZSB0byBmaW5kIHRoZSBcIlNob3cgbW9yZVwiIGJ1dHRvbi4gJyArXG4gICAgICAgICAgJ1RoZSBhdXRvY29tcGxldGUgaXMgY2xvc2VkLidcbiAgICAgICk7XG4gICAgfVxuXG4gICAgY29uc3QgYnV0dG9uID0gYXdhaXQgb3ZlcmxheS5xdWVyeVNlbGVjdG9yKFxuICAgICAgJ2J1dHRvbi5za3ktYXV0b2NvbXBsZXRlLWFjdGlvbi1tb3JlJ1xuICAgICk7XG5cbiAgICBpZiAoIWJ1dHRvbikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAnVGhlIFwiU2hvdyBtb3JlXCIgYnV0dG9uIGNhbm5vdCBiZSBjbGlja2VkIGJlY2F1c2UgaXQgZG9lcyBub3QgZXhpc3QuJ1xuICAgICAgKTtcbiAgICB9XG5cbiAgICBhd2FpdCBidXR0b24uY2xpY2soKTtcbiAgfVxuXG4gIGFzeW5jICNnZXRPdmVybGF5KCk6IFByb21pc2U8U2t5T3ZlcmxheUhhcm5lc3MgfCBudWxsPiB7XG4gICAgY29uc3Qgb3ZlcmxheUlkID0gYXdhaXQgKGF3YWl0IHRoaXMuI2dldElucHV0KCkpLmdldEFyaWFPd25zKCk7XG5cbiAgICByZXR1cm4gb3ZlcmxheUlkXG4gICAgICA/IHRoaXMuI2RvY3VtZW50Um9vdExvY2F0b3IubG9jYXRvckZvck9wdGlvbmFsKFxuICAgICAgICAgIFNreU92ZXJsYXlIYXJuZXNzLndpdGgoeyBzZWxlY3RvcjogYCMke292ZXJsYXlJZH1gIH0pXG4gICAgICAgICkoKVxuICAgICAgOiBudWxsO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,60 @@
1
+ import { ComponentHarness } from '@angular/cdk/testing';
2
+ /**
3
+ * @internal
4
+ */
5
+ export class SkyAutocompleteInputHarness extends ComponentHarness {
6
+ /**
7
+ * Blurs the input.
8
+ */
9
+ async blur() {
10
+ return (await this.host()).blur();
11
+ }
12
+ /**
13
+ * Clears the input value.
14
+ */
15
+ async clear() {
16
+ return (await this.host()).clear();
17
+ }
18
+ /**
19
+ * Enters text into the input.
20
+ */
21
+ async enterText(value) {
22
+ const el = await this.host();
23
+ await el.focus();
24
+ await el.clear();
25
+ await el.sendKeys(value);
26
+ }
27
+ /**
28
+ * Focuses the input.
29
+ */
30
+ async focus() {
31
+ return (await this.host()).focus();
32
+ }
33
+ /**
34
+ * Gets the value of the input.
35
+ */
36
+ async getValue() {
37
+ return (await this.host()).getProperty('value');
38
+ }
39
+ /**
40
+ * Whether the input is disabled.
41
+ */
42
+ async isDisabled() {
43
+ const disabled = await (await this.host()).getAttribute('disabled');
44
+ return disabled !== null;
45
+ }
46
+ /**
47
+ * Whether the input is focused.
48
+ */
49
+ async isFocused() {
50
+ return (await this.host()).isFocused();
51
+ }
52
+ /**
53
+ * Returns the value of the input's `aria-owns` attribute.
54
+ */
55
+ async getAriaOwns() {
56
+ return (await this.host()).getAttribute('aria-owns');
57
+ }
58
+ }
59
+ SkyAutocompleteInputHarness.hostSelector = '[skyAutocomplete]';
60
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0b2NvbXBsZXRlLWlucHV0LWhhcm5lc3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvbG9va3VwL3Rlc3Rpbmcvc3JjL2F1dG9jb21wbGV0ZS9hdXRvY29tcGxldGUtaW5wdXQtaGFybmVzcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUV4RDs7R0FFRztBQUNILE1BQU0sT0FBTywyQkFBNEIsU0FBUSxnQkFBZ0I7SUFHL0Q7O09BRUc7SUFDSSxLQUFLLENBQUMsSUFBSTtRQUNmLE9BQU8sQ0FBQyxNQUFNLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3BDLENBQUM7SUFFRDs7T0FFRztJQUNJLEtBQUssQ0FBQyxLQUFLO1FBQ2hCLE9BQU8sQ0FBQyxNQUFNLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ3JDLENBQUM7SUFFRDs7T0FFRztJQUNJLEtBQUssQ0FBQyxTQUFTLENBQUMsS0FBYTtRQUNsQyxNQUFNLEVBQUUsR0FBRyxNQUFNLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUM3QixNQUFNLEVBQUUsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNqQixNQUFNLEVBQUUsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNqQixNQUFNLEVBQUUsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDM0IsQ0FBQztJQUVEOztPQUVHO0lBQ0ksS0FBSyxDQUFDLEtBQUs7UUFDaEIsT0FBTyxDQUFDLE1BQU0sSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDckMsQ0FBQztJQUVEOztPQUVHO0lBQ0ksS0FBSyxDQUFDLFFBQVE7UUFDbkIsT0FBTyxDQUFDLE1BQU0sSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ2xELENBQUM7SUFFRDs7T0FFRztJQUNJLEtBQUssQ0FBQyxVQUFVO1FBQ3JCLE1BQU0sUUFBUSxHQUFHLE1BQU0sQ0FBQyxNQUFNLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNwRSxPQUFPLFFBQVEsS0FBSyxJQUFJLENBQUM7SUFDM0IsQ0FBQztJQUVEOztPQUVHO0lBQ0ksS0FBSyxDQUFDLFNBQVM7UUFDcEIsT0FBTyxDQUFDLE1BQU0sSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDekMsQ0FBQztJQUVEOztPQUVHO0lBQ0ksS0FBSyxDQUFDLFdBQVc7UUFDdEIsT0FBTyxDQUFDLE1BQU0sSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsWUFBWSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ3ZELENBQUM7O0FBNURhLHdDQUFZLEdBQUcsbUJBQW1CLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnRIYXJuZXNzIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3Rlc3RpbmcnO1xuXG4vKipcbiAqIEBpbnRlcm5hbFxuICovXG5leHBvcnQgY2xhc3MgU2t5QXV0b2NvbXBsZXRlSW5wdXRIYXJuZXNzIGV4dGVuZHMgQ29tcG9uZW50SGFybmVzcyB7XG4gIHB1YmxpYyBzdGF0aWMgaG9zdFNlbGVjdG9yID0gJ1tza3lBdXRvY29tcGxldGVdJztcblxuICAvKipcbiAgICogQmx1cnMgdGhlIGlucHV0LlxuICAgKi9cbiAgcHVibGljIGFzeW5jIGJsdXIoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgcmV0dXJuIChhd2FpdCB0aGlzLmhvc3QoKSkuYmx1cigpO1xuICB9XG5cbiAgLyoqXG4gICAqIENsZWFycyB0aGUgaW5wdXQgdmFsdWUuXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgY2xlYXIoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgcmV0dXJuIChhd2FpdCB0aGlzLmhvc3QoKSkuY2xlYXIoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBFbnRlcnMgdGV4dCBpbnRvIHRoZSBpbnB1dC5cbiAgICovXG4gIHB1YmxpYyBhc3luYyBlbnRlclRleHQodmFsdWU6IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IGVsID0gYXdhaXQgdGhpcy5ob3N0KCk7XG4gICAgYXdhaXQgZWwuZm9jdXMoKTtcbiAgICBhd2FpdCBlbC5jbGVhcigpO1xuICAgIGF3YWl0IGVsLnNlbmRLZXlzKHZhbHVlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBGb2N1c2VzIHRoZSBpbnB1dC5cbiAgICovXG4gIHB1YmxpYyBhc3luYyBmb2N1cygpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICByZXR1cm4gKGF3YWl0IHRoaXMuaG9zdCgpKS5mb2N1cygpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIHZhbHVlIG9mIHRoZSBpbnB1dC5cbiAgICovXG4gIHB1YmxpYyBhc3luYyBnZXRWYWx1ZSgpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIHJldHVybiAoYXdhaXQgdGhpcy5ob3N0KCkpLmdldFByb3BlcnR5KCd2YWx1ZScpO1xuICB9XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhlIGlucHV0IGlzIGRpc2FibGVkLlxuICAgKi9cbiAgcHVibGljIGFzeW5jIGlzRGlzYWJsZWQoKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgY29uc3QgZGlzYWJsZWQgPSBhd2FpdCAoYXdhaXQgdGhpcy5ob3N0KCkpLmdldEF0dHJpYnV0ZSgnZGlzYWJsZWQnKTtcbiAgICByZXR1cm4gZGlzYWJsZWQgIT09IG51bGw7XG4gIH1cblxuICAvKipcbiAgICogV2hldGhlciB0aGUgaW5wdXQgaXMgZm9jdXNlZC5cbiAgICovXG4gIHB1YmxpYyBhc3luYyBpc0ZvY3VzZWQoKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgcmV0dXJuIChhd2FpdCB0aGlzLmhvc3QoKSkuaXNGb2N1c2VkKCk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgdmFsdWUgb2YgdGhlIGlucHV0J3MgYGFyaWEtb3duc2AgYXR0cmlidXRlLlxuICAgKi9cbiAgcHVibGljIGFzeW5jIGdldEFyaWFPd25zKCk6IFByb21pc2U8c3RyaW5nIHwgbnVsbD4ge1xuICAgIHJldHVybiAoYXdhaXQgdGhpcy5ob3N0KCkpLmdldEF0dHJpYnV0ZSgnYXJpYS1vd25zJyk7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0b2NvbXBsZXRlLXNlYXJjaC1yZXN1bHQtaGFybmVzcy1maWx0ZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2xvb2t1cC90ZXN0aW5nL3NyYy9hdXRvY29tcGxldGUvYXV0b2NvbXBsZXRlLXNlYXJjaC1yZXN1bHQtaGFybmVzcy1maWx0ZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCYXNlSGFybmVzc0ZpbHRlcnMgfSBmcm9tICdAYW5ndWxhci9jZGsvdGVzdGluZyc7XG5cbi8qKlxuICogQSBzZXQgb2YgY3JpdGVyaWEgdGhhdCBjYW4gYmUgdXNlZCB0byBmaWx0ZXIgYSBsaXN0IG9mIFNreUF1dG9jb21wbGV0ZVNlYXJjaFJlc3VsdEhhcm5lc3MgaW5zdGFuY2VzLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFNreUF1dG9jb21wbGV0ZVNlYXJjaFJlc3VsdEhhcm5lc3NGaWx0ZXJzXG4gIGV4dGVuZHMgT21pdDxCYXNlSGFybmVzc0ZpbHRlcnMsICdzZWxlY3Rvcic+IHtcbiAgLyoqXG4gICAqIE9ubHkgZmluZCBpbnN0YW5jZXMgd2hvc2UgY29udGVudCBtYXRjaGVzIHRoZSBnaXZlbiB2YWx1ZS5cbiAgICovXG4gIHRleHRDb250ZW50Pzogc3RyaW5nIHwgUmVnRXhwO1xufVxuIl19
@@ -0,0 +1,40 @@
1
+ import { ComponentHarness, HarnessPredicate, } from '@angular/cdk/testing';
2
+ /**
3
+ * Harness for interacting with an autocomplete search results in tests.
4
+ */
5
+ export class SkyAutocompleteSearchResultHarness extends ComponentHarness {
6
+ /**
7
+ * Gets a `HarnessPredicate` that can be used to search for a
8
+ * `SkyAutocompleteSearchResultHarness` that meets certain criteria.
9
+ */
10
+ static with(filters) {
11
+ return new HarnessPredicate(SkyAutocompleteSearchResultHarness, filters).addOption('textContent', filters.textContent, async (harness, text) => HarnessPredicate.stringMatches(await harness.textContent(), text));
12
+ }
13
+ /**
14
+ * Returns the value of the search result's descriptor property.
15
+ * This value is set by the autocomplete's `descriptorProperty` input.
16
+ */
17
+ async getDescriptorValue() {
18
+ return (await (await this.host()).getAttribute('data-descriptor-value'));
19
+ }
20
+ /**
21
+ * Returns a child harness.
22
+ */
23
+ async queryHarness(query) {
24
+ return this.locatorForOptional(query)();
25
+ }
26
+ /**
27
+ * Selects the search result.
28
+ */
29
+ async select() {
30
+ return (await this.host()).click();
31
+ }
32
+ /**
33
+ * Returns the text content of the search result.
34
+ */
35
+ async textContent() {
36
+ return (await this.host()).text();
37
+ }
38
+ }
39
+ SkyAutocompleteSearchResultHarness.hostSelector = '.sky-autocomplete-result';
40
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0b2NvbXBsZXRlLXNlYXJjaC1yZXN1bHQtaGFybmVzcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9sb29rdXAvdGVzdGluZy9zcmMvYXV0b2NvbXBsZXRlL2F1dG9jb21wbGV0ZS1zZWFyY2gtcmVzdWx0LWhhcm5lc3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLGdCQUFnQixFQUNoQixnQkFBZ0IsR0FFakIsTUFBTSxzQkFBc0IsQ0FBQztBQUk5Qjs7R0FFRztBQUNILE1BQU0sT0FBTyxrQ0FBbUMsU0FBUSxnQkFBZ0I7SUFHdEU7OztPQUdHO0lBQ0ksTUFBTSxDQUFDLElBQUksQ0FDaEIsT0FBa0Q7UUFFbEQsT0FBTyxJQUFJLGdCQUFnQixDQUN6QixrQ0FBa0MsRUFDbEMsT0FBTyxDQUNSLENBQUMsU0FBUyxDQUFDLGFBQWEsRUFBRSxPQUFPLENBQUMsV0FBVyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FDdEUsZ0JBQWdCLENBQUMsYUFBYSxDQUFDLE1BQU0sT0FBTyxDQUFDLFdBQVcsRUFBRSxFQUFFLElBQUksQ0FBQyxDQUNsRSxDQUFDO0lBQ0osQ0FBQztJQUVEOzs7T0FHRztJQUNJLEtBQUssQ0FBQyxrQkFBa0I7UUFDN0IsT0FBTyxDQUFDLE1BQU0sQ0FDWixNQUFNLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FDbEIsQ0FBQyxZQUFZLENBQUMsdUJBQXVCLENBQUMsQ0FBVyxDQUFDO0lBQ3JELENBQUM7SUFFRDs7T0FFRztJQUNJLEtBQUssQ0FBQyxZQUFZLENBQ3ZCLEtBQXNCO1FBRXRCLE9BQU8sSUFBSSxDQUFDLGtCQUFrQixDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7SUFDMUMsQ0FBQztJQUVEOztPQUVHO0lBQ0ksS0FBSyxDQUFDLE1BQU07UUFDakIsT0FBTyxDQUFDLE1BQU0sSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDckMsQ0FBQztJQUVEOztPQUVHO0lBQ0ksS0FBSyxDQUFDLFdBQVc7UUFDdEIsT0FBTyxDQUFDLE1BQU0sSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDcEMsQ0FBQzs7QUFoRGEsK0NBQVksR0FBRywwQkFBMEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudEhhcm5lc3MsXG4gIEhhcm5lc3NQcmVkaWNhdGUsXG4gIEhhcm5lc3NRdWVyeSxcbn0gZnJvbSAnQGFuZ3VsYXIvY2RrL3Rlc3RpbmcnO1xuXG5pbXBvcnQgeyBTa3lBdXRvY29tcGxldGVTZWFyY2hSZXN1bHRIYXJuZXNzRmlsdGVycyB9IGZyb20gJy4vYXV0b2NvbXBsZXRlLXNlYXJjaC1yZXN1bHQtaGFybmVzcy1maWx0ZXJzJztcblxuLyoqXG4gKiBIYXJuZXNzIGZvciBpbnRlcmFjdGluZyB3aXRoIGFuIGF1dG9jb21wbGV0ZSBzZWFyY2ggcmVzdWx0cyBpbiB0ZXN0cy5cbiAqL1xuZXhwb3J0IGNsYXNzIFNreUF1dG9jb21wbGV0ZVNlYXJjaFJlc3VsdEhhcm5lc3MgZXh0ZW5kcyBDb21wb25lbnRIYXJuZXNzIHtcbiAgcHVibGljIHN0YXRpYyBob3N0U2VsZWN0b3IgPSAnLnNreS1hdXRvY29tcGxldGUtcmVzdWx0JztcblxuICAvKipcbiAgICogR2V0cyBhIGBIYXJuZXNzUHJlZGljYXRlYCB0aGF0IGNhbiBiZSB1c2VkIHRvIHNlYXJjaCBmb3IgYVxuICAgKiBgU2t5QXV0b2NvbXBsZXRlU2VhcmNoUmVzdWx0SGFybmVzc2AgdGhhdCBtZWV0cyBjZXJ0YWluIGNyaXRlcmlhLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyB3aXRoKFxuICAgIGZpbHRlcnM6IFNreUF1dG9jb21wbGV0ZVNlYXJjaFJlc3VsdEhhcm5lc3NGaWx0ZXJzXG4gICk6IEhhcm5lc3NQcmVkaWNhdGU8U2t5QXV0b2NvbXBsZXRlU2VhcmNoUmVzdWx0SGFybmVzcz4ge1xuICAgIHJldHVybiBuZXcgSGFybmVzc1ByZWRpY2F0ZShcbiAgICAgIFNreUF1dG9jb21wbGV0ZVNlYXJjaFJlc3VsdEhhcm5lc3MsXG4gICAgICBmaWx0ZXJzXG4gICAgKS5hZGRPcHRpb24oJ3RleHRDb250ZW50JywgZmlsdGVycy50ZXh0Q29udGVudCwgYXN5bmMgKGhhcm5lc3MsIHRleHQpID0+XG4gICAgICBIYXJuZXNzUHJlZGljYXRlLnN0cmluZ01hdGNoZXMoYXdhaXQgaGFybmVzcy50ZXh0Q29udGVudCgpLCB0ZXh0KVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgdmFsdWUgb2YgdGhlIHNlYXJjaCByZXN1bHQncyBkZXNjcmlwdG9yIHByb3BlcnR5LlxuICAgKiBUaGlzIHZhbHVlIGlzIHNldCBieSB0aGUgYXV0b2NvbXBsZXRlJ3MgYGRlc2NyaXB0b3JQcm9wZXJ0eWAgaW5wdXQuXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgZ2V0RGVzY3JpcHRvclZhbHVlKCk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgcmV0dXJuIChhd2FpdCAoXG4gICAgICBhd2FpdCB0aGlzLmhvc3QoKVxuICAgICkuZ2V0QXR0cmlidXRlKCdkYXRhLWRlc2NyaXB0b3ItdmFsdWUnKSkgYXMgc3RyaW5nO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYSBjaGlsZCBoYXJuZXNzLlxuICAgKi9cbiAgcHVibGljIGFzeW5jIHF1ZXJ5SGFybmVzczxUIGV4dGVuZHMgQ29tcG9uZW50SGFybmVzcz4oXG4gICAgcXVlcnk6IEhhcm5lc3NRdWVyeTxUPlxuICApOiBQcm9taXNlPFQgfCBudWxsPiB7XG4gICAgcmV0dXJuIHRoaXMubG9jYXRvckZvck9wdGlvbmFsKHF1ZXJ5KSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNlbGVjdHMgdGhlIHNlYXJjaCByZXN1bHQuXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgc2VsZWN0KCk6IFByb21pc2U8dm9pZD4ge1xuICAgIHJldHVybiAoYXdhaXQgdGhpcy5ob3N0KCkpLmNsaWNrKCk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgdGV4dCBjb250ZW50IG9mIHRoZSBzZWFyY2ggcmVzdWx0LlxuICAgKi9cbiAgcHVibGljIGFzeW5jIHRleHRDb250ZW50KCk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgcmV0dXJuIChhd2FpdCB0aGlzLmhvc3QoKSkudGV4dCgpO1xuICB9XG59XG4iXX0=
@@ -1,5 +1,9 @@
1
+ export * from './autocomplete/autocomplete-harness';
2
+ export * from './autocomplete/autocomplete-harness-filters';
3
+ export * from './autocomplete/autocomplete-search-result-harness';
4
+ export * from './autocomplete/autocomplete-search-result-harness-filters';
1
5
  export * from './country-field/country-field-fixture';
2
6
  export * from './country-field/country-field-testing.module';
3
7
  export * from './search/search-fixture';
4
8
  export * from './search/search-testing.module';
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9sb29rdXAvdGVzdGluZy9zcmMvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLHVDQUF1QyxDQUFDO0FBQ3RELGNBQWMsOENBQThDLENBQUM7QUFFN0QsY0FBYyx5QkFBeUIsQ0FBQztBQUN4QyxjQUFjLGdDQUFnQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9jb3VudHJ5LWZpZWxkL2NvdW50cnktZmllbGQtZml4dHVyZSc7XG5leHBvcnQgKiBmcm9tICcuL2NvdW50cnktZmllbGQvY291bnRyeS1maWVsZC10ZXN0aW5nLm1vZHVsZSc7XG5cbmV4cG9ydCAqIGZyb20gJy4vc2VhcmNoL3NlYXJjaC1maXh0dXJlJztcbmV4cG9ydCAqIGZyb20gJy4vc2VhcmNoL3NlYXJjaC10ZXN0aW5nLm1vZHVsZSc7XG4iXX0=
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9sb29rdXAvdGVzdGluZy9zcmMvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLHFDQUFxQyxDQUFDO0FBQ3BELGNBQWMsNkNBQTZDLENBQUM7QUFDNUQsY0FBYyxtREFBbUQsQ0FBQztBQUNsRSxjQUFjLDJEQUEyRCxDQUFDO0FBRTFFLGNBQWMsdUNBQXVDLENBQUM7QUFDdEQsY0FBYyw4Q0FBOEMsQ0FBQztBQUU3RCxjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMsZ0NBQWdDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2F1dG9jb21wbGV0ZS9hdXRvY29tcGxldGUtaGFybmVzcyc7XG5leHBvcnQgKiBmcm9tICcuL2F1dG9jb21wbGV0ZS9hdXRvY29tcGxldGUtaGFybmVzcy1maWx0ZXJzJztcbmV4cG9ydCAqIGZyb20gJy4vYXV0b2NvbXBsZXRlL2F1dG9jb21wbGV0ZS1zZWFyY2gtcmVzdWx0LWhhcm5lc3MnO1xuZXhwb3J0ICogZnJvbSAnLi9hdXRvY29tcGxldGUvYXV0b2NvbXBsZXRlLXNlYXJjaC1yZXN1bHQtaGFybmVzcy1maWx0ZXJzJztcblxuZXhwb3J0ICogZnJvbSAnLi9jb3VudHJ5LWZpZWxkL2NvdW50cnktZmllbGQtZml4dHVyZSc7XG5leHBvcnQgKiBmcm9tICcuL2NvdW50cnktZmllbGQvY291bnRyeS1maWVsZC10ZXN0aW5nLm1vZHVsZSc7XG5cbmV4cG9ydCAqIGZyb20gJy4vc2VhcmNoL3NlYXJjaC1maXh0dXJlJztcbmV4cG9ydCAqIGZyb20gJy4vc2VhcmNoL3NlYXJjaC10ZXN0aW5nLm1vZHVsZSc7XG4iXX0=
@@ -1,10 +1,315 @@
1
- import { __awaiter } from 'tslib';
1
+ import { __awaiter, __classPrivateFieldGet } from 'tslib';
2
+ import { SkyComponentHarness, SkyOverlayHarness } from '@skyux/core/testing';
3
+ import { ComponentHarness, HarnessPredicate } from '@angular/cdk/testing';
2
4
  import { By } from '@angular/platform-browser';
3
5
  import { SkyAppTestUtility } from '@skyux-sdk/testing';
4
6
  import * as i0 from '@angular/core';
5
7
  import { NgModule } from '@angular/core';
6
8
  import { SkyCountryFieldModule, SkySearchModule } from '@skyux/lookup';
7
9
 
10
+ /**
11
+ * @internal
12
+ */
13
+ class SkyAutocompleteInputHarness extends ComponentHarness {
14
+ /**
15
+ * Blurs the input.
16
+ */
17
+ blur() {
18
+ return __awaiter(this, void 0, void 0, function* () {
19
+ return (yield this.host()).blur();
20
+ });
21
+ }
22
+ /**
23
+ * Clears the input value.
24
+ */
25
+ clear() {
26
+ return __awaiter(this, void 0, void 0, function* () {
27
+ return (yield this.host()).clear();
28
+ });
29
+ }
30
+ /**
31
+ * Enters text into the input.
32
+ */
33
+ enterText(value) {
34
+ return __awaiter(this, void 0, void 0, function* () {
35
+ const el = yield this.host();
36
+ yield el.focus();
37
+ yield el.clear();
38
+ yield el.sendKeys(value);
39
+ });
40
+ }
41
+ /**
42
+ * Focuses the input.
43
+ */
44
+ focus() {
45
+ return __awaiter(this, void 0, void 0, function* () {
46
+ return (yield this.host()).focus();
47
+ });
48
+ }
49
+ /**
50
+ * Gets the value of the input.
51
+ */
52
+ getValue() {
53
+ return __awaiter(this, void 0, void 0, function* () {
54
+ return (yield this.host()).getProperty('value');
55
+ });
56
+ }
57
+ /**
58
+ * Whether the input is disabled.
59
+ */
60
+ isDisabled() {
61
+ return __awaiter(this, void 0, void 0, function* () {
62
+ const disabled = yield (yield this.host()).getAttribute('disabled');
63
+ return disabled !== null;
64
+ });
65
+ }
66
+ /**
67
+ * Whether the input is focused.
68
+ */
69
+ isFocused() {
70
+ return __awaiter(this, void 0, void 0, function* () {
71
+ return (yield this.host()).isFocused();
72
+ });
73
+ }
74
+ /**
75
+ * Returns the value of the input's `aria-owns` attribute.
76
+ */
77
+ getAriaOwns() {
78
+ return __awaiter(this, void 0, void 0, function* () {
79
+ return (yield this.host()).getAttribute('aria-owns');
80
+ });
81
+ }
82
+ }
83
+ SkyAutocompleteInputHarness.hostSelector = '[skyAutocomplete]';
84
+
85
+ /**
86
+ * Harness for interacting with an autocomplete search results in tests.
87
+ */
88
+ class SkyAutocompleteSearchResultHarness extends ComponentHarness {
89
+ /**
90
+ * Gets a `HarnessPredicate` that can be used to search for a
91
+ * `SkyAutocompleteSearchResultHarness` that meets certain criteria.
92
+ */
93
+ static with(filters) {
94
+ return new HarnessPredicate(SkyAutocompleteSearchResultHarness, filters).addOption('textContent', filters.textContent, (harness, text) => __awaiter(this, void 0, void 0, function* () { return HarnessPredicate.stringMatches(yield harness.textContent(), text); }));
95
+ }
96
+ /**
97
+ * Returns the value of the search result's descriptor property.
98
+ * This value is set by the autocomplete's `descriptorProperty` input.
99
+ */
100
+ getDescriptorValue() {
101
+ return __awaiter(this, void 0, void 0, function* () {
102
+ return (yield (yield this.host()).getAttribute('data-descriptor-value'));
103
+ });
104
+ }
105
+ /**
106
+ * Returns a child harness.
107
+ */
108
+ queryHarness(query) {
109
+ return __awaiter(this, void 0, void 0, function* () {
110
+ return this.locatorForOptional(query)();
111
+ });
112
+ }
113
+ /**
114
+ * Selects the search result.
115
+ */
116
+ select() {
117
+ return __awaiter(this, void 0, void 0, function* () {
118
+ return (yield this.host()).click();
119
+ });
120
+ }
121
+ /**
122
+ * Returns the text content of the search result.
123
+ */
124
+ textContent() {
125
+ return __awaiter(this, void 0, void 0, function* () {
126
+ return (yield this.host()).text();
127
+ });
128
+ }
129
+ }
130
+ SkyAutocompleteSearchResultHarness.hostSelector = '.sky-autocomplete-result';
131
+
132
+ var _SkyAutocompleteHarness_instances, _SkyAutocompleteHarness_documentRootLocator, _SkyAutocompleteHarness_getInput, _SkyAutocompleteHarness_getOverlay;
133
+ /**
134
+ * Harness for interacting with an autocomplete component in tests.
135
+ */
136
+ class SkyAutocompleteHarness extends SkyComponentHarness {
137
+ constructor() {
138
+ super(...arguments);
139
+ _SkyAutocompleteHarness_instances.add(this);
140
+ _SkyAutocompleteHarness_documentRootLocator.set(this, this.documentRootLocatorFactory());
141
+ _SkyAutocompleteHarness_getInput.set(this, this.locatorFor(SkyAutocompleteInputHarness));
142
+ }
143
+ /**
144
+ * Gets a `HarnessPredicate` that can be used to search for a
145
+ * `SkyAutocompleteHarness` that meets certain criteria.
146
+ */
147
+ static with(filters) {
148
+ return SkyAutocompleteHarness.getDataSkyIdPredicate(filters);
149
+ }
150
+ /**
151
+ * Blurs the autocomplete input.
152
+ */
153
+ blur() {
154
+ return __awaiter(this, void 0, void 0, function* () {
155
+ return (yield __classPrivateFieldGet(this, _SkyAutocompleteHarness_getInput, "f").call(this)).blur();
156
+ });
157
+ }
158
+ /**
159
+ * Clears the input value.
160
+ */
161
+ clear() {
162
+ return __awaiter(this, void 0, void 0, function* () {
163
+ return (yield __classPrivateFieldGet(this, _SkyAutocompleteHarness_getInput, "f").call(this)).clear();
164
+ });
165
+ }
166
+ /**
167
+ * Enters text into the autocomplete input.
168
+ */
169
+ enterText(value) {
170
+ return __awaiter(this, void 0, void 0, function* () {
171
+ return (yield __classPrivateFieldGet(this, _SkyAutocompleteHarness_getInput, "f").call(this)).enterText(value);
172
+ });
173
+ }
174
+ /**
175
+ * Focuses the autocomplete input.
176
+ */
177
+ focus() {
178
+ return __awaiter(this, void 0, void 0, function* () {
179
+ return (yield __classPrivateFieldGet(this, _SkyAutocompleteHarness_getInput, "f").call(this)).focus();
180
+ });
181
+ }
182
+ /**
183
+ * Returns search result harnesses.
184
+ */
185
+ getSearchResults(filters) {
186
+ return __awaiter(this, void 0, void 0, function* () {
187
+ const overlay = yield __classPrivateFieldGet(this, _SkyAutocompleteHarness_instances, "m", _SkyAutocompleteHarness_getOverlay).call(this);
188
+ if (!overlay) {
189
+ throw new Error('Unable to retrieve search results. The autocomplete is closed.');
190
+ }
191
+ const harnesses = yield overlay.queryHarnesses(SkyAutocompleteSearchResultHarness.with(filters || {}));
192
+ if (filters && harnesses.length === 0) {
193
+ // Stringify the regular expression so that it's readable in the console log.
194
+ if (filters.textContent instanceof RegExp) {
195
+ filters.textContent = filters.textContent.toString();
196
+ }
197
+ throw new Error(`Could not find search results matching filter(s): ${JSON.stringify(filters)}`);
198
+ }
199
+ return harnesses;
200
+ });
201
+ }
202
+ /**
203
+ * Returns the text content for each search result.
204
+ */
205
+ getSearchResultsText(filters) {
206
+ return __awaiter(this, void 0, void 0, function* () {
207
+ const harnesses = yield this.getSearchResults(filters);
208
+ const text = [];
209
+ for (const harness of harnesses) {
210
+ text.push(yield harness.textContent());
211
+ }
212
+ return text;
213
+ });
214
+ }
215
+ /**
216
+ * Gets the value of the autocomplete input.
217
+ */
218
+ getValue() {
219
+ return __awaiter(this, void 0, void 0, function* () {
220
+ return (yield __classPrivateFieldGet(this, _SkyAutocompleteHarness_getInput, "f").call(this)).getValue();
221
+ });
222
+ }
223
+ /**
224
+ * Whether the autocomplete input is disabled.
225
+ */
226
+ isDisabled() {
227
+ return __awaiter(this, void 0, void 0, function* () {
228
+ return (yield __classPrivateFieldGet(this, _SkyAutocompleteHarness_getInput, "f").call(this)).isDisabled();
229
+ });
230
+ }
231
+ /**
232
+ * Whether the autocomplete input is focused.
233
+ */
234
+ isFocused() {
235
+ return __awaiter(this, void 0, void 0, function* () {
236
+ return (yield __classPrivateFieldGet(this, _SkyAutocompleteHarness_getInput, "f").call(this)).isFocused();
237
+ });
238
+ }
239
+ /**
240
+ * Whether the autocomplete is open.
241
+ */
242
+ isOpen() {
243
+ return __awaiter(this, void 0, void 0, function* () {
244
+ const overlay = yield __classPrivateFieldGet(this, _SkyAutocompleteHarness_instances, "m", _SkyAutocompleteHarness_getOverlay).call(this);
245
+ return !!overlay;
246
+ });
247
+ }
248
+ /**
249
+ * Selects a search result.
250
+ */
251
+ selectSearchResult(filters) {
252
+ return __awaiter(this, void 0, void 0, function* () {
253
+ const results = yield this.getSearchResults(filters);
254
+ if (results && results.length > 0) {
255
+ yield results[0].select();
256
+ }
257
+ });
258
+ }
259
+ /**
260
+ * Clicks the "Add" button in the autocomplete search results panel.
261
+ * (The "Add" functionality is not included in the public API
262
+ * of a "vanilla" autocomplete component, so this method is protected
263
+ * to prevent consumers of the autocomplete harness from calling it.
264
+ * The lookup harness, which extends the autocomplete harness, may
265
+ * still access this feature, however.)
266
+ */
267
+ clickAddButton() {
268
+ return __awaiter(this, void 0, void 0, function* () {
269
+ const overlay = yield __classPrivateFieldGet(this, _SkyAutocompleteHarness_instances, "m", _SkyAutocompleteHarness_getOverlay).call(this);
270
+ if (!overlay) {
271
+ throw new Error('Unable to find the "Add" button. The autocomplete is closed.');
272
+ }
273
+ const button = yield overlay.querySelector('button.sky-autocomplete-action-add');
274
+ if (!button) {
275
+ throw new Error('The "Add" button cannot be clicked because it does not exist.');
276
+ }
277
+ yield button.click();
278
+ });
279
+ }
280
+ /**
281
+ * Clicks the "Show more" button.
282
+ * (The "Show more" functionality is not included in the public API
283
+ * of a "vanilla" autocomplete component, so this method is protected
284
+ * to prevent consumers of the autocomplete harness from calling it.
285
+ * The lookup harness, which extends the autocomplete harness, may
286
+ * still access this feature, however.)
287
+ */
288
+ clickShowMoreButton() {
289
+ return __awaiter(this, void 0, void 0, function* () {
290
+ const overlay = yield __classPrivateFieldGet(this, _SkyAutocompleteHarness_instances, "m", _SkyAutocompleteHarness_getOverlay).call(this);
291
+ if (!overlay) {
292
+ throw new Error('Unable to find the "Show more" button. ' +
293
+ 'The autocomplete is closed.');
294
+ }
295
+ const button = yield overlay.querySelector('button.sky-autocomplete-action-more');
296
+ if (!button) {
297
+ throw new Error('The "Show more" button cannot be clicked because it does not exist.');
298
+ }
299
+ yield button.click();
300
+ });
301
+ }
302
+ }
303
+ _SkyAutocompleteHarness_documentRootLocator = new WeakMap(), _SkyAutocompleteHarness_getInput = new WeakMap(), _SkyAutocompleteHarness_instances = new WeakSet(), _SkyAutocompleteHarness_getOverlay = function _SkyAutocompleteHarness_getOverlay() {
304
+ return __awaiter(this, void 0, void 0, function* () {
305
+ const overlayId = yield (yield __classPrivateFieldGet(this, _SkyAutocompleteHarness_getInput, "f").call(this)).getAriaOwns();
306
+ return overlayId
307
+ ? __classPrivateFieldGet(this, _SkyAutocompleteHarness_documentRootLocator, "f").locatorForOptional(SkyOverlayHarness.with({ selector: `#${overlayId}` }))()
308
+ : null;
309
+ });
310
+ };
311
+ SkyAutocompleteHarness.hostSelector = 'sky-autocomplete';
312
+
8
313
  /**
9
314
  * Allows interaction with a SKY UX country field component.
10
315
  */
@@ -208,5 +513,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImpor
208
513
  * Generated bundle index. Do not edit.
209
514
  */
210
515
 
211
- export { SkyCountryFieldFixture, SkyCountryFieldTestingModule, SkySearchFixture, SkySearchTestingModule };
516
+ export { SkyAutocompleteHarness, SkyAutocompleteSearchResultHarness, SkyCountryFieldFixture, SkyCountryFieldTestingModule, SkySearchFixture, SkySearchTestingModule };
212
517
  //# sourceMappingURL=skyux-lookup-testing.mjs.map