@skyux/popovers 7.21.4 → 7.22.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.
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24taGFybmVzcy5maWx0ZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3BvcG92ZXJzL3Rlc3Rpbmcvc3JjL2Ryb3Bkb3duL2hhcm5lc3MvZHJvcGRvd24taGFybmVzcy5maWx0ZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTa3lIYXJuZXNzRmlsdGVycyB9IGZyb20gJ0Bza3l1eC9jb3JlL3Rlc3RpbmcnO1xuXG4vKipcbiAqIEEgc2V0IG9mIGNyaXRlcmlhIHRoYXQgY2FuIGJlIHVzZWQgdG8gZmlsdGVyIGEgbGlzdCBvZiBgU2t5RHJvcGRvd25IYXJuZXNzYCBpbnN0YW5jZXMuXG4gKi9cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZW1wdHktaW50ZXJmYWNlXG5leHBvcnQgaW50ZXJmYWNlIFNreURyb3Bkb3duSGFybmVzc0ZpbHRlcnMgZXh0ZW5kcyBTa3lIYXJuZXNzRmlsdGVycyB7fVxuIl19
@@ -0,0 +1,98 @@
1
+ var _SkyDropdownHarness_documentRootLocator, _SkyDropdownHarness_getDropdownButton;
2
+ import { __classPrivateFieldGet } from "tslib";
3
+ import { SkyComponentHarness } from '@skyux/core/testing';
4
+ import { SkyDropdownMenuHarness } from './dropdown-menu-harness';
5
+ export class SkyDropdownHarness extends SkyComponentHarness {
6
+ constructor() {
7
+ super(...arguments);
8
+ _SkyDropdownHarness_documentRootLocator.set(this, this.documentRootLocatorFactory());
9
+ _SkyDropdownHarness_getDropdownButton.set(this, this.locatorFor('.sky-dropdown-button'));
10
+ }
11
+ /**
12
+ * Gets a `HarnessPredicate` that can be used to search for a
13
+ * `SkyDropdownHarness` that meets certain criteria
14
+ */
15
+ static with(filters) {
16
+ return SkyDropdownHarness.getDataSkyIdPredicate(filters);
17
+ }
18
+ /**
19
+ * Clicks the dropdown button
20
+ */
21
+ async clickDropdownButton() {
22
+ (await __classPrivateFieldGet(this, _SkyDropdownHarness_getDropdownButton, "f").call(this)).click();
23
+ }
24
+ /**
25
+ * Gets the id of the dropdown menu the button controls
26
+ */
27
+ async getAriaControls() {
28
+ return (await __classPrivateFieldGet(this, _SkyDropdownHarness_getDropdownButton, "f").call(this)).getAttribute('aria-controls');
29
+ }
30
+ /**
31
+ * Gets the aria-label value
32
+ */
33
+ async getAriaLabel() {
34
+ return (await __classPrivateFieldGet(this, _SkyDropdownHarness_getDropdownButton, "f").call(this)).getAttribute('aria-label');
35
+ }
36
+ /**
37
+ * Gets the dropdown button style
38
+ */
39
+ async getButtonStyle() {
40
+ const button = await __classPrivateFieldGet(this, _SkyDropdownHarness_getDropdownButton, "f").call(this);
41
+ if (await button.hasClass('sky-btn-primary')) {
42
+ return 'primary';
43
+ }
44
+ if (await button.hasClass('sky-btn-link')) {
45
+ return 'link';
46
+ }
47
+ return 'default';
48
+ }
49
+ /**
50
+ * Gets the dropdown button type
51
+ */
52
+ async getButtonType() {
53
+ const button = await __classPrivateFieldGet(this, _SkyDropdownHarness_getDropdownButton, "f").call(this);
54
+ if (await button.hasClass('sky-dropdown-button-type-context-menu')) {
55
+ return 'context-menu';
56
+ }
57
+ return 'select';
58
+ }
59
+ /**
60
+ * Gets the dropdown menu component
61
+ */
62
+ async getDropdownMenu() {
63
+ const dropdownMenuId = await this.getAriaControls();
64
+ if (!dropdownMenuId) {
65
+ throw new Error('Unable to retrieve dropdown menu harness because dropdown is closed');
66
+ }
67
+ return __classPrivateFieldGet(this, _SkyDropdownHarness_documentRootLocator, "f").locatorForOptional(SkyDropdownMenuHarness.with({ selector: `#${dropdownMenuId}` }))();
68
+ }
69
+ /**
70
+ * Gets the hover tooltip text
71
+ */
72
+ async getTooltipTitle() {
73
+ return (await __classPrivateFieldGet(this, _SkyDropdownHarness_getDropdownButton, "f").call(this)).getAttribute('title');
74
+ }
75
+ /**
76
+ * Gets whether the dropdown is disabled
77
+ */
78
+ async isDisabled() {
79
+ const button = await __classPrivateFieldGet(this, _SkyDropdownHarness_getDropdownButton, "f").call(this);
80
+ return (await button.getProperty('disabled')) ? true : false;
81
+ }
82
+ /**
83
+ * Gets whether the dropdown menu is open
84
+ */
85
+ async isOpen() {
86
+ const ariaExpanded = await (await __classPrivateFieldGet(this, _SkyDropdownHarness_getDropdownButton, "f").call(this)).getAttribute('aria-expanded');
87
+ if (ariaExpanded?.match(/true/)) {
88
+ return true;
89
+ }
90
+ return false;
91
+ }
92
+ }
93
+ _SkyDropdownHarness_documentRootLocator = new WeakMap(), _SkyDropdownHarness_getDropdownButton = new WeakMap();
94
+ /**
95
+ * @internal
96
+ */
97
+ SkyDropdownHarness.hostSelector = 'sky-dropdown';
98
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24taGFybmVzcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9wb3BvdmVycy90ZXN0aW5nL3NyYy9kcm9wZG93bi9oYXJuZXNzL2Ryb3Bkb3duLWhhcm5lc3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFDQSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUcxRCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUVqRSxNQUFNLE9BQU8sa0JBQW1CLFNBQVEsbUJBQW1CO0lBQTNEOztRQU1FLGtEQUF1QixJQUFJLENBQUMsMEJBQTBCLEVBQUUsRUFBQztRQUV6RCxnREFBcUIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxzQkFBc0IsQ0FBQyxFQUFDO0lBOEcvRCxDQUFDO0lBNUdDOzs7T0FHRztJQUNJLE1BQU0sQ0FBQyxJQUFJLENBQ2hCLE9BQWtDO1FBRWxDLE9BQU8sa0JBQWtCLENBQUMscUJBQXFCLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDM0QsQ0FBQztJQUVEOztPQUVHO0lBQ0ksS0FBSyxDQUFDLG1CQUFtQjtRQUM5QixDQUFDLE1BQU0sdUJBQUEsSUFBSSw2Q0FBbUIsTUFBdkIsSUFBSSxDQUFxQixDQUFDLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDNUMsQ0FBQztJQUVEOztPQUVHO0lBQ0ksS0FBSyxDQUFDLGVBQWU7UUFDMUIsT0FBTyxDQUFDLE1BQU0sdUJBQUEsSUFBSSw2Q0FBbUIsTUFBdkIsSUFBSSxDQUFxQixDQUFDLENBQUMsWUFBWSxDQUFDLGVBQWUsQ0FBQyxDQUFDO0lBQ3pFLENBQUM7SUFFRDs7T0FFRztJQUNJLEtBQUssQ0FBQyxZQUFZO1FBQ3ZCLE9BQU8sQ0FBQyxNQUFNLHVCQUFBLElBQUksNkNBQW1CLE1BQXZCLElBQUksQ0FBcUIsQ0FBQyxDQUFDLFlBQVksQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUN0RSxDQUFDO0lBRUQ7O09BRUc7SUFDSSxLQUFLLENBQUMsY0FBYztRQUN6QixNQUFNLE1BQU0sR0FBRyxNQUFNLHVCQUFBLElBQUksNkNBQW1CLE1BQXZCLElBQUksQ0FBcUIsQ0FBQztRQUUvQyxJQUFJLE1BQU0sTUFBTSxDQUFDLFFBQVEsQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFO1lBQzVDLE9BQU8sU0FBUyxDQUFDO1NBQ2xCO1FBRUQsSUFBSSxNQUFNLE1BQU0sQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUFDLEVBQUU7WUFDekMsT0FBTyxNQUFNLENBQUM7U0FDZjtRQUVELE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7SUFFRDs7T0FFRztJQUNJLEtBQUssQ0FBQyxhQUFhO1FBQ3hCLE1BQU0sTUFBTSxHQUFHLE1BQU0sdUJBQUEsSUFBSSw2Q0FBbUIsTUFBdkIsSUFBSSxDQUFxQixDQUFDO1FBRS9DLElBQUksTUFBTSxNQUFNLENBQUMsUUFBUSxDQUFDLHVDQUF1QyxDQUFDLEVBQUU7WUFDbEUsT0FBTyxjQUFjLENBQUM7U0FDdkI7UUFFRCxPQUFPLFFBQVEsQ0FBQztJQUNsQixDQUFDO0lBRUQ7O09BRUc7SUFDSSxLQUFLLENBQUMsZUFBZTtRQUMxQixNQUFNLGNBQWMsR0FBRyxNQUFNLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUVwRCxJQUFJLENBQUMsY0FBYyxFQUFFO1lBQ25CLE1BQU0sSUFBSSxLQUFLLENBQ2IscUVBQXFFLENBQ3RFLENBQUM7U0FDSDtRQUVELE9BQU8sdUJBQUEsSUFBSSwrQ0FBcUIsQ0FBQyxrQkFBa0IsQ0FDakQsc0JBQXNCLENBQUMsSUFBSSxDQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksY0FBYyxFQUFFLEVBQUUsQ0FBQyxDQUNoRSxFQUFFLENBQUM7SUFDTixDQUFDO0lBRUQ7O09BRUc7SUFDSSxLQUFLLENBQUMsZUFBZTtRQUMxQixPQUFPLENBQUMsTUFBTSx1QkFBQSxJQUFJLDZDQUFtQixNQUF2QixJQUFJLENBQXFCLENBQUMsQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDakUsQ0FBQztJQUVEOztPQUVHO0lBQ0ksS0FBSyxDQUFDLFVBQVU7UUFDckIsTUFBTSxNQUFNLEdBQUcsTUFBTSx1QkFBQSxJQUFJLDZDQUFtQixNQUF2QixJQUFJLENBQXFCLENBQUM7UUFFL0MsT0FBTyxDQUFDLE1BQU0sTUFBTSxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztJQUMvRCxDQUFDO0lBRUQ7O09BRUc7SUFDSSxLQUFLLENBQUMsTUFBTTtRQUNqQixNQUFNLFlBQVksR0FBRyxNQUFNLENBQ3pCLE1BQU0sdUJBQUEsSUFBSSw2Q0FBbUIsTUFBdkIsSUFBSSxDQUFxQixDQUNoQyxDQUFDLFlBQVksQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUVoQyxJQUFJLFlBQVksRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLEVBQUU7WUFDL0IsT0FBTyxJQUFJLENBQUM7U0FDYjtRQUVELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQzs7O0FBcEhEOztHQUVHO0FBQ1csK0JBQVksR0FBRyxjQUFjLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIYXJuZXNzUHJlZGljYXRlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3Rlc3RpbmcnO1xuaW1wb3J0IHsgU2t5Q29tcG9uZW50SGFybmVzcyB9IGZyb20gJ0Bza3l1eC9jb3JlL3Rlc3RpbmcnO1xuXG5pbXBvcnQgeyBTa3lEcm9wZG93bkhhcm5lc3NGaWx0ZXJzIH0gZnJvbSAnLi9kcm9wZG93bi1oYXJuZXNzLmZpbHRlcnMnO1xuaW1wb3J0IHsgU2t5RHJvcGRvd25NZW51SGFybmVzcyB9IGZyb20gJy4vZHJvcGRvd24tbWVudS1oYXJuZXNzJztcblxuZXhwb3J0IGNsYXNzIFNreURyb3Bkb3duSGFybmVzcyBleHRlbmRzIFNreUNvbXBvbmVudEhhcm5lc3Mge1xuICAvKipcbiAgICogQGludGVybmFsXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGhvc3RTZWxlY3RvciA9ICdza3ktZHJvcGRvd24nO1xuXG4gICNkb2N1bWVudFJvb3RMb2NhdG9yID0gdGhpcy5kb2N1bWVudFJvb3RMb2NhdG9yRmFjdG9yeSgpO1xuXG4gICNnZXREcm9wZG93bkJ1dHRvbiA9IHRoaXMubG9jYXRvckZvcignLnNreS1kcm9wZG93bi1idXR0b24nKTtcblxuICAvKipcbiAgICogR2V0cyBhIGBIYXJuZXNzUHJlZGljYXRlYCB0aGF0IGNhbiBiZSB1c2VkIHRvIHNlYXJjaCBmb3IgYVxuICAgKiBgU2t5RHJvcGRvd25IYXJuZXNzYCB0aGF0IG1lZXRzIGNlcnRhaW4gY3JpdGVyaWFcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgd2l0aChcbiAgICBmaWx0ZXJzOiBTa3lEcm9wZG93bkhhcm5lc3NGaWx0ZXJzXG4gICk6IEhhcm5lc3NQcmVkaWNhdGU8U2t5RHJvcGRvd25IYXJuZXNzPiB7XG4gICAgcmV0dXJuIFNreURyb3Bkb3duSGFybmVzcy5nZXREYXRhU2t5SWRQcmVkaWNhdGUoZmlsdGVycyk7XG4gIH1cblxuICAvKipcbiAgICogQ2xpY2tzIHRoZSBkcm9wZG93biBidXR0b25cbiAgICovXG4gIHB1YmxpYyBhc3luYyBjbGlja0Ryb3Bkb3duQnV0dG9uKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIChhd2FpdCB0aGlzLiNnZXREcm9wZG93bkJ1dHRvbigpKS5jbGljaygpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIGlkIG9mIHRoZSBkcm9wZG93biBtZW51IHRoZSBidXR0b24gY29udHJvbHNcbiAgICovXG4gIHB1YmxpYyBhc3luYyBnZXRBcmlhQ29udHJvbHMoKTogUHJvbWlzZTxzdHJpbmcgfCBudWxsPiB7XG4gICAgcmV0dXJuIChhd2FpdCB0aGlzLiNnZXREcm9wZG93bkJ1dHRvbigpKS5nZXRBdHRyaWJ1dGUoJ2FyaWEtY29udHJvbHMnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSBhcmlhLWxhYmVsIHZhbHVlXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgZ2V0QXJpYUxhYmVsKCk6IFByb21pc2U8c3RyaW5nIHwgbnVsbD4ge1xuICAgIHJldHVybiAoYXdhaXQgdGhpcy4jZ2V0RHJvcGRvd25CdXR0b24oKSkuZ2V0QXR0cmlidXRlKCdhcmlhLWxhYmVsJyk7XG4gIH1cblxuICAvKipcbiAgICogR2V0cyB0aGUgZHJvcGRvd24gYnV0dG9uIHN0eWxlXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgZ2V0QnV0dG9uU3R5bGUoKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICBjb25zdCBidXR0b24gPSBhd2FpdCB0aGlzLiNnZXREcm9wZG93bkJ1dHRvbigpO1xuXG4gICAgaWYgKGF3YWl0IGJ1dHRvbi5oYXNDbGFzcygnc2t5LWJ0bi1wcmltYXJ5JykpIHtcbiAgICAgIHJldHVybiAncHJpbWFyeSc7XG4gICAgfVxuXG4gICAgaWYgKGF3YWl0IGJ1dHRvbi5oYXNDbGFzcygnc2t5LWJ0bi1saW5rJykpIHtcbiAgICAgIHJldHVybiAnbGluayc7XG4gICAgfVxuXG4gICAgcmV0dXJuICdkZWZhdWx0JztcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSBkcm9wZG93biBidXR0b24gdHlwZVxuICAgKi9cbiAgcHVibGljIGFzeW5jIGdldEJ1dHRvblR5cGUoKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICBjb25zdCBidXR0b24gPSBhd2FpdCB0aGlzLiNnZXREcm9wZG93bkJ1dHRvbigpO1xuXG4gICAgaWYgKGF3YWl0IGJ1dHRvbi5oYXNDbGFzcygnc2t5LWRyb3Bkb3duLWJ1dHRvbi10eXBlLWNvbnRleHQtbWVudScpKSB7XG4gICAgICByZXR1cm4gJ2NvbnRleHQtbWVudSc7XG4gICAgfVxuXG4gICAgcmV0dXJuICdzZWxlY3QnO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIGRyb3Bkb3duIG1lbnUgY29tcG9uZW50XG4gICAqL1xuICBwdWJsaWMgYXN5bmMgZ2V0RHJvcGRvd25NZW51KCk6IFByb21pc2U8U2t5RHJvcGRvd25NZW51SGFybmVzcyB8IG51bGw+IHtcbiAgICBjb25zdCBkcm9wZG93bk1lbnVJZCA9IGF3YWl0IHRoaXMuZ2V0QXJpYUNvbnRyb2xzKCk7XG5cbiAgICBpZiAoIWRyb3Bkb3duTWVudUlkKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICdVbmFibGUgdG8gcmV0cmlldmUgZHJvcGRvd24gbWVudSBoYXJuZXNzIGJlY2F1c2UgZHJvcGRvd24gaXMgY2xvc2VkJ1xuICAgICAgKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy4jZG9jdW1lbnRSb290TG9jYXRvci5sb2NhdG9yRm9yT3B0aW9uYWwoXG4gICAgICBTa3lEcm9wZG93bk1lbnVIYXJuZXNzLndpdGgoeyBzZWxlY3RvcjogYCMke2Ryb3Bkb3duTWVudUlkfWAgfSlcbiAgICApKCk7XG4gIH1cblxuICAvKipcbiAgICogR2V0cyB0aGUgaG92ZXIgdG9vbHRpcCB0ZXh0XG4gICAqL1xuICBwdWJsaWMgYXN5bmMgZ2V0VG9vbHRpcFRpdGxlKCk6IFByb21pc2U8c3RyaW5nIHwgbnVsbD4ge1xuICAgIHJldHVybiAoYXdhaXQgdGhpcy4jZ2V0RHJvcGRvd25CdXR0b24oKSkuZ2V0QXR0cmlidXRlKCd0aXRsZScpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgd2hldGhlciB0aGUgZHJvcGRvd24gaXMgZGlzYWJsZWRcbiAgICovXG4gIHB1YmxpYyBhc3luYyBpc0Rpc2FibGVkKCk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIGNvbnN0IGJ1dHRvbiA9IGF3YWl0IHRoaXMuI2dldERyb3Bkb3duQnV0dG9uKCk7XG5cbiAgICByZXR1cm4gKGF3YWl0IGJ1dHRvbi5nZXRQcm9wZXJ0eSgnZGlzYWJsZWQnKSkgPyB0cnVlIDogZmFsc2U7XG4gIH1cblxuICAvKipcbiAgICogR2V0cyB3aGV0aGVyIHRoZSBkcm9wZG93biBtZW51IGlzIG9wZW5cbiAgICovXG4gIHB1YmxpYyBhc3luYyBpc09wZW4oKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgY29uc3QgYXJpYUV4cGFuZGVkID0gYXdhaXQgKFxuICAgICAgYXdhaXQgdGhpcy4jZ2V0RHJvcGRvd25CdXR0b24oKVxuICAgICkuZ2V0QXR0cmlidXRlKCdhcmlhLWV4cGFuZGVkJyk7XG5cbiAgICBpZiAoYXJpYUV4cGFuZGVkPy5tYXRjaCgvdHJ1ZS8pKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,28 @@
1
+ var _SkyDropdownItemHarness_getItem, _SkyDropdownItemHarness_getButton;
2
+ import { __classPrivateFieldGet } from "tslib";
3
+ import { SkyComponentHarness } from '@skyux/core/testing';
4
+ export class SkyDropdownItemHarness extends SkyComponentHarness {
5
+ constructor() {
6
+ super(...arguments);
7
+ _SkyDropdownItemHarness_getItem.set(this, this.locatorFor('.sky-dropdown-item'));
8
+ _SkyDropdownItemHarness_getButton.set(this, this.locatorFor('button,a'));
9
+ }
10
+ /**
11
+ * Clicks the dropdown item
12
+ */
13
+ async click() {
14
+ await (await __classPrivateFieldGet(this, _SkyDropdownItemHarness_getButton, "f").call(this)).click();
15
+ }
16
+ /**
17
+ * Gets the dropdown item role
18
+ */
19
+ async getRole() {
20
+ return (await __classPrivateFieldGet(this, _SkyDropdownItemHarness_getItem, "f").call(this)).getAttribute('role');
21
+ }
22
+ }
23
+ _SkyDropdownItemHarness_getItem = new WeakMap(), _SkyDropdownItemHarness_getButton = new WeakMap();
24
+ /**
25
+ * @internal
26
+ */
27
+ SkyDropdownItemHarness.hostSelector = 'sky-dropdown-item';
28
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24taXRlbS1oYXJuZXNzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3BvcG92ZXJzL3Rlc3Rpbmcvc3JjL2Ryb3Bkb3duL2hhcm5lc3MvZHJvcGRvd24taXRlbS1oYXJuZXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFMUQsTUFBTSxPQUFPLHNCQUF1QixTQUFRLG1CQUFtQjtJQUEvRDs7UUFNRSwwQ0FBVyxJQUFJLENBQUMsVUFBVSxDQUFDLG9CQUFvQixDQUFDLEVBQUM7UUFDakQsNENBQWEsSUFBSSxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsRUFBQztJQWUzQyxDQUFDO0lBYkM7O09BRUc7SUFDSSxLQUFLLENBQUMsS0FBSztRQUNoQixNQUFNLENBQUMsTUFBTSx1QkFBQSxJQUFJLHlDQUFXLE1BQWYsSUFBSSxDQUFhLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUMxQyxDQUFDO0lBRUQ7O09BRUc7SUFDSSxLQUFLLENBQUMsT0FBTztRQUNsQixPQUFPLENBQUMsTUFBTSx1QkFBQSxJQUFJLHVDQUFTLE1BQWIsSUFBSSxDQUFXLENBQUMsQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDdEQsQ0FBQzs7O0FBcEJEOztHQUVHO0FBQ1csbUNBQVksR0FBRyxtQkFBbUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNreUNvbXBvbmVudEhhcm5lc3MgfSBmcm9tICdAc2t5dXgvY29yZS90ZXN0aW5nJztcblxuZXhwb3J0IGNsYXNzIFNreURyb3Bkb3duSXRlbUhhcm5lc3MgZXh0ZW5kcyBTa3lDb21wb25lbnRIYXJuZXNzIHtcbiAgLyoqXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBob3N0U2VsZWN0b3IgPSAnc2t5LWRyb3Bkb3duLWl0ZW0nO1xuXG4gICNnZXRJdGVtID0gdGhpcy5sb2NhdG9yRm9yKCcuc2t5LWRyb3Bkb3duLWl0ZW0nKTtcbiAgI2dldEJ1dHRvbiA9IHRoaXMubG9jYXRvckZvcignYnV0dG9uLGEnKTtcblxuICAvKipcbiAgICogQ2xpY2tzIHRoZSBkcm9wZG93biBpdGVtXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgY2xpY2soKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgYXdhaXQgKGF3YWl0IHRoaXMuI2dldEJ1dHRvbigpKS5jbGljaygpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIGRyb3Bkb3duIGl0ZW0gcm9sZVxuICAgKi9cbiAgcHVibGljIGFzeW5jIGdldFJvbGUoKTogUHJvbWlzZTxzdHJpbmcgfCBudWxsPiB7XG4gICAgcmV0dXJuIChhd2FpdCB0aGlzLiNnZXRJdGVtKCkpLmdldEF0dHJpYnV0ZSgncm9sZScpO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24tbWVudS1oYXJuZXNzLmZpbHRlcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvcG9wb3ZlcnMvdGVzdGluZy9zcmMvZHJvcGRvd24vaGFybmVzcy9kcm9wZG93bi1tZW51LWhhcm5lc3MuZmlsdGVycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQmFzZUhhcm5lc3NGaWx0ZXJzIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3Rlc3RpbmcnO1xuXG4vKipcbiAqIEEgc2V0IG9mIGNyaXRlcmlhIHRoYXQgY2FuIGJlIHVzZWQgdG8gZmlsdGVyIGEgbGlzdCBvZiBgU2t5RHJvcGRvd25NZW51SGFybmVzc2AgaW5zdGFuY2VzLlxuICovXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWVtcHR5LWludGVyZmFjZVxuZXhwb3J0IGludGVyZmFjZSBTa3lEcm9wZG93bk1lbnVIYXJuZXNzRmlsdGVycyBleHRlbmRzIEJhc2VIYXJuZXNzRmlsdGVycyB7fVxuIl19
@@ -0,0 +1,95 @@
1
+ var _SkyDropdownMenuHarness_getDropdownItems;
2
+ import { __classPrivateFieldGet } from "tslib";
3
+ import { SkyComponentHarness } from '@skyux/core/testing';
4
+ import { SkyDropdownItemHarness } from './dropdown-item-harness';
5
+ /**
6
+ * Harness for interacting with dropdown menu in tests
7
+ */
8
+ export class SkyDropdownMenuHarness extends SkyComponentHarness {
9
+ constructor() {
10
+ super(...arguments);
11
+ _SkyDropdownMenuHarness_getDropdownItems.set(this, this.locatorForAll(SkyDropdownItemHarness));
12
+ }
13
+ /**
14
+ * Gets a `HarnessPredicate` that can be used to search for a
15
+ * `SkyDropdownMenuHarness` that meets certain criteria
16
+ */
17
+ static with(filters) {
18
+ return SkyDropdownMenuHarness.getDataSkyIdPredicate(filters);
19
+ }
20
+ /**
21
+ * Gets the aria-labelledby value
22
+ */
23
+ async getAriaLabelledBy() {
24
+ return (await this.host()).getAttribute('aria-labelledby');
25
+ }
26
+ /**
27
+ * Clicks the dropdown menu item at index
28
+ * @param index Index of dropdown menu item
29
+ */
30
+ async clickItemAtIndex(index) {
31
+ await (await this.getItemAtIndex(index))?.click();
32
+ }
33
+ /**
34
+ * Clicks the dropdown menu item with a specific role
35
+ * @param role Role of dropdown menu item to be clicked
36
+ */
37
+ async clickItemWithRole(role) {
38
+ const menuItem = await this.getItemWithRole(role);
39
+ if (!menuItem) {
40
+ throw new Error(`Unable to click item. Item with role ${role} does not exist in this dropdown menu`);
41
+ }
42
+ await (await this.getItemWithRole(role))?.click();
43
+ }
44
+ /**
45
+ * Gets the dropdown menu item at a specific index
46
+ * @param index Index of dropdown menu item to be clicked
47
+ */
48
+ async getItemAtIndex(index) {
49
+ const itemsList = await this.getItems();
50
+ if (itemsList?.length === 0) {
51
+ throw new Error('Unable to retrieve item because dropdown menu is empty');
52
+ }
53
+ return itemsList.at(index);
54
+ }
55
+ /**
56
+ * Gets the role of dropdown menu at index
57
+ * @param index Index of dropdown menu item
58
+ */
59
+ async getItemRoleAtIndex(index) {
60
+ return (await this.getItemAtIndex(index))?.getRole();
61
+ }
62
+ /**
63
+ * Gets an array of dropdown menu items
64
+ */
65
+ async getItems() {
66
+ return await __classPrivateFieldGet(this, _SkyDropdownMenuHarness_getDropdownItems, "f").call(this);
67
+ }
68
+ /**
69
+ * Gets the dropdown menu item from role
70
+ * @param role Role of dropdown menu item
71
+ */
72
+ async getItemWithRole(role) {
73
+ const itemsList = await this.getItems();
74
+ if (itemsList?.length === 0) {
75
+ throw new Error('Unable to retrieve item because dropdown menu is empty');
76
+ }
77
+ for (const item of itemsList) {
78
+ if ((await item.getRole())?.match(role))
79
+ return item;
80
+ }
81
+ return undefined;
82
+ }
83
+ /**
84
+ * Gets the dropdown menu role
85
+ */
86
+ async getRole() {
87
+ return (await this.host()).getAttribute('role');
88
+ }
89
+ }
90
+ _SkyDropdownMenuHarness_getDropdownItems = new WeakMap();
91
+ /**
92
+ * @internal
93
+ */
94
+ SkyDropdownMenuHarness.hostSelector = '.sky-dropdown-menu';
95
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24tbWVudS1oYXJuZXNzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3BvcG92ZXJzL3Rlc3Rpbmcvc3JjL2Ryb3Bkb3duL2hhcm5lc3MvZHJvcGRvd24tbWVudS1oYXJuZXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQ0EsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFMUQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFHakU7O0dBRUc7QUFDSCxNQUFNLE9BQU8sc0JBQXVCLFNBQVEsbUJBQW1CO0lBQS9EOztRQU1FLG1EQUFvQixJQUFJLENBQUMsYUFBYSxDQUFDLHNCQUFzQixDQUFDLEVBQUM7SUFvR2pFLENBQUM7SUFsR0M7OztPQUdHO0lBQ0ksTUFBTSxDQUFDLElBQUksQ0FDaEIsT0FBc0M7UUFFdEMsT0FBTyxzQkFBc0IsQ0FBQyxxQkFBcUIsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUMvRCxDQUFDO0lBRUQ7O09BRUc7SUFDSSxLQUFLLENBQUMsaUJBQWlCO1FBQzVCLE9BQU8sQ0FBQyxNQUFNLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLFlBQVksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBQzdELENBQUM7SUFFRDs7O09BR0c7SUFDSSxLQUFLLENBQUMsZ0JBQWdCLENBQUMsS0FBYTtRQUN6QyxNQUFNLENBQUMsTUFBTSxJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUM7SUFDcEQsQ0FBQztJQUVEOzs7T0FHRztJQUNJLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxJQUFZO1FBQ3pDLE1BQU0sUUFBUSxHQUFHLE1BQU0sSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNsRCxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ2IsTUFBTSxJQUFJLEtBQUssQ0FDYix3Q0FBd0MsSUFBSSx1Q0FBdUMsQ0FDcEYsQ0FBQztTQUNIO1FBQ0QsTUFBTSxDQUFDLE1BQU0sSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDO0lBQ3BELENBQUM7SUFFRDs7O09BR0c7SUFDSSxLQUFLLENBQUMsY0FBYyxDQUN6QixLQUFhO1FBRWIsTUFBTSxTQUFTLEdBQUcsTUFBTSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7UUFFeEMsSUFBSSxTQUFTLEVBQUUsTUFBTSxLQUFLLENBQUMsRUFBRTtZQUMzQixNQUFNLElBQUksS0FBSyxDQUFDLHdEQUF3RCxDQUFDLENBQUM7U0FDM0U7UUFFRCxPQUFPLFNBQVMsQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDN0IsQ0FBQztJQUVEOzs7T0FHRztJQUNJLEtBQUssQ0FBQyxrQkFBa0IsQ0FDN0IsS0FBYTtRQUViLE9BQU8sQ0FBQyxNQUFNLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxPQUFPLEVBQUUsQ0FBQztJQUN2RCxDQUFDO0lBRUQ7O09BRUc7SUFDSSxLQUFLLENBQUMsUUFBUTtRQUNuQixPQUFPLE1BQU0sdUJBQUEsSUFBSSxnREFBa0IsTUFBdEIsSUFBSSxDQUFvQixDQUFDO0lBQ3hDLENBQUM7SUFFRDs7O09BR0c7SUFDSyxLQUFLLENBQUMsZUFBZSxDQUMzQixJQUFZO1FBRVosTUFBTSxTQUFTLEdBQUcsTUFBTSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7UUFFeEMsSUFBSSxTQUFTLEVBQUUsTUFBTSxLQUFLLENBQUMsRUFBRTtZQUMzQixNQUFNLElBQUksS0FBSyxDQUFDLHdEQUF3RCxDQUFDLENBQUM7U0FDM0U7UUFFRCxLQUFLLE1BQU0sSUFBSSxJQUFJLFNBQVMsRUFBRTtZQUM1QixJQUFJLENBQUMsTUFBTSxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsRUFBRSxLQUFLLENBQUMsSUFBSSxDQUFDO2dCQUFFLE9BQU8sSUFBSSxDQUFDO1NBQ3REO1FBRUQsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQztJQUVEOztPQUVHO0lBQ0ksS0FBSyxDQUFDLE9BQU87UUFDbEIsT0FBTyxDQUFDLE1BQU0sSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ2xELENBQUM7OztBQXhHRDs7R0FFRztBQUNXLG1DQUFZLEdBQUcsb0JBQW9CLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIYXJuZXNzUHJlZGljYXRlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3Rlc3RpbmcnO1xuaW1wb3J0IHsgU2t5Q29tcG9uZW50SGFybmVzcyB9IGZyb20gJ0Bza3l1eC9jb3JlL3Rlc3RpbmcnO1xuXG5pbXBvcnQgeyBTa3lEcm9wZG93bkl0ZW1IYXJuZXNzIH0gZnJvbSAnLi9kcm9wZG93bi1pdGVtLWhhcm5lc3MnO1xuaW1wb3J0IHsgU2t5RHJvcGRvd25NZW51SGFybmVzc0ZpbHRlcnMgfSBmcm9tICcuL2Ryb3Bkb3duLW1lbnUtaGFybmVzcy5maWx0ZXJzJztcblxuLyoqXG4gKiBIYXJuZXNzIGZvciBpbnRlcmFjdGluZyB3aXRoIGRyb3Bkb3duIG1lbnUgaW4gdGVzdHNcbiAqL1xuZXhwb3J0IGNsYXNzIFNreURyb3Bkb3duTWVudUhhcm5lc3MgZXh0ZW5kcyBTa3lDb21wb25lbnRIYXJuZXNzIHtcbiAgLyoqXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBob3N0U2VsZWN0b3IgPSAnLnNreS1kcm9wZG93bi1tZW51JztcblxuICAjZ2V0RHJvcGRvd25JdGVtcyA9IHRoaXMubG9jYXRvckZvckFsbChTa3lEcm9wZG93bkl0ZW1IYXJuZXNzKTtcblxuICAvKipcbiAgICogR2V0cyBhIGBIYXJuZXNzUHJlZGljYXRlYCB0aGF0IGNhbiBiZSB1c2VkIHRvIHNlYXJjaCBmb3IgYVxuICAgKiBgU2t5RHJvcGRvd25NZW51SGFybmVzc2AgdGhhdCBtZWV0cyBjZXJ0YWluIGNyaXRlcmlhXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHdpdGgoXG4gICAgZmlsdGVyczogU2t5RHJvcGRvd25NZW51SGFybmVzc0ZpbHRlcnNcbiAgKTogSGFybmVzc1ByZWRpY2F0ZTxTa3lEcm9wZG93bk1lbnVIYXJuZXNzPiB7XG4gICAgcmV0dXJuIFNreURyb3Bkb3duTWVudUhhcm5lc3MuZ2V0RGF0YVNreUlkUHJlZGljYXRlKGZpbHRlcnMpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIGFyaWEtbGFiZWxsZWRieSB2YWx1ZVxuICAgKi9cbiAgcHVibGljIGFzeW5jIGdldEFyaWFMYWJlbGxlZEJ5KCk6IFByb21pc2U8c3RyaW5nIHwgbnVsbD4ge1xuICAgIHJldHVybiAoYXdhaXQgdGhpcy5ob3N0KCkpLmdldEF0dHJpYnV0ZSgnYXJpYS1sYWJlbGxlZGJ5Jyk7XG4gIH1cblxuICAvKipcbiAgICogQ2xpY2tzIHRoZSBkcm9wZG93biBtZW51IGl0ZW0gYXQgaW5kZXhcbiAgICogQHBhcmFtIGluZGV4IEluZGV4IG9mIGRyb3Bkb3duIG1lbnUgaXRlbVxuICAgKi9cbiAgcHVibGljIGFzeW5jIGNsaWNrSXRlbUF0SW5kZXgoaW5kZXg6IG51bWJlcik6IFByb21pc2U8dm9pZD4ge1xuICAgIGF3YWl0IChhd2FpdCB0aGlzLmdldEl0ZW1BdEluZGV4KGluZGV4KSk/LmNsaWNrKCk7XG4gIH1cblxuICAvKipcbiAgICogQ2xpY2tzIHRoZSBkcm9wZG93biBtZW51IGl0ZW0gd2l0aCBhIHNwZWNpZmljIHJvbGVcbiAgICogQHBhcmFtIHJvbGUgUm9sZSBvZiBkcm9wZG93biBtZW51IGl0ZW0gdG8gYmUgY2xpY2tlZFxuICAgKi9cbiAgcHVibGljIGFzeW5jIGNsaWNrSXRlbVdpdGhSb2xlKHJvbGU6IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IG1lbnVJdGVtID0gYXdhaXQgdGhpcy5nZXRJdGVtV2l0aFJvbGUocm9sZSk7XG4gICAgaWYgKCFtZW51SXRlbSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBgVW5hYmxlIHRvIGNsaWNrIGl0ZW0uIEl0ZW0gd2l0aCByb2xlICR7cm9sZX0gZG9lcyBub3QgZXhpc3QgaW4gdGhpcyBkcm9wZG93biBtZW51YFxuICAgICAgKTtcbiAgICB9XG4gICAgYXdhaXQgKGF3YWl0IHRoaXMuZ2V0SXRlbVdpdGhSb2xlKHJvbGUpKT8uY2xpY2soKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSBkcm9wZG93biBtZW51IGl0ZW0gYXQgYSBzcGVjaWZpYyBpbmRleFxuICAgKiBAcGFyYW0gaW5kZXggSW5kZXggb2YgZHJvcGRvd24gbWVudSBpdGVtIHRvIGJlIGNsaWNrZWRcbiAgICovXG4gIHB1YmxpYyBhc3luYyBnZXRJdGVtQXRJbmRleChcbiAgICBpbmRleDogbnVtYmVyXG4gICk6IFByb21pc2U8U2t5RHJvcGRvd25JdGVtSGFybmVzcyB8IHVuZGVmaW5lZD4ge1xuICAgIGNvbnN0IGl0ZW1zTGlzdCA9IGF3YWl0IHRoaXMuZ2V0SXRlbXMoKTtcblxuICAgIGlmIChpdGVtc0xpc3Q/Lmxlbmd0aCA9PT0gMCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdVbmFibGUgdG8gcmV0cmlldmUgaXRlbSBiZWNhdXNlIGRyb3Bkb3duIG1lbnUgaXMgZW1wdHknKTtcbiAgICB9XG5cbiAgICByZXR1cm4gaXRlbXNMaXN0LmF0KGluZGV4KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSByb2xlIG9mIGRyb3Bkb3duIG1lbnUgYXQgaW5kZXhcbiAgICogQHBhcmFtIGluZGV4IEluZGV4IG9mIGRyb3Bkb3duIG1lbnUgaXRlbVxuICAgKi9cbiAgcHVibGljIGFzeW5jIGdldEl0ZW1Sb2xlQXRJbmRleChcbiAgICBpbmRleDogbnVtYmVyXG4gICk6IFByb21pc2U8c3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZD4ge1xuICAgIHJldHVybiAoYXdhaXQgdGhpcy5nZXRJdGVtQXRJbmRleChpbmRleCkpPy5nZXRSb2xlKCk7XG4gIH1cblxuICAvKipcbiAgICogR2V0cyBhbiBhcnJheSBvZiBkcm9wZG93biBtZW51IGl0ZW1zXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgZ2V0SXRlbXMoKTogUHJvbWlzZTxTa3lEcm9wZG93bkl0ZW1IYXJuZXNzW10+IHtcbiAgICByZXR1cm4gYXdhaXQgdGhpcy4jZ2V0RHJvcGRvd25JdGVtcygpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIGRyb3Bkb3duIG1lbnUgaXRlbSBmcm9tIHJvbGVcbiAgICogQHBhcmFtIHJvbGUgUm9sZSBvZiBkcm9wZG93biBtZW51IGl0ZW1cbiAgICovXG4gIHByaXZhdGUgYXN5bmMgZ2V0SXRlbVdpdGhSb2xlKFxuICAgIHJvbGU6IHN0cmluZ1xuICApOiBQcm9taXNlPFNreURyb3Bkb3duSXRlbUhhcm5lc3MgfCB1bmRlZmluZWQ+IHtcbiAgICBjb25zdCBpdGVtc0xpc3QgPSBhd2FpdCB0aGlzLmdldEl0ZW1zKCk7XG5cbiAgICBpZiAoaXRlbXNMaXN0Py5sZW5ndGggPT09IDApIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignVW5hYmxlIHRvIHJldHJpZXZlIGl0ZW0gYmVjYXVzZSBkcm9wZG93biBtZW51IGlzIGVtcHR5Jyk7XG4gICAgfVxuXG4gICAgZm9yIChjb25zdCBpdGVtIG9mIGl0ZW1zTGlzdCkge1xuICAgICAgaWYgKChhd2FpdCBpdGVtLmdldFJvbGUoKSk/Lm1hdGNoKHJvbGUpKSByZXR1cm4gaXRlbTtcbiAgICB9XG5cbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIGRyb3Bkb3duIG1lbnUgcm9sZVxuICAgKi9cbiAgcHVibGljIGFzeW5jIGdldFJvbGUoKTogUHJvbWlzZTxzdHJpbmcgfCBudWxsPiB7XG4gICAgcmV0dXJuIChhd2FpdCB0aGlzLmhvc3QoKSkuZ2V0QXR0cmlidXRlKCdyb2xlJyk7XG4gIH1cbn1cbiJdfQ==
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9wb3ZlcnMtZml4dHVyZS1kcm9wZG93bi1pdGVtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3BvcG92ZXJzL3Rlc3Rpbmcvc3JjL2Ryb3Bkb3duL3BvcG92ZXJzLWZpeHR1cmUtZHJvcGRvd24taXRlbS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBTa3lQb3BvdmVyc0ZpeHR1cmVEcm9wZG93bkl0ZW0ge1xuICBhcmlhUm9sZTogc3RyaW5nO1xufVxuIl19
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9wb3ZlcnMtZml4dHVyZS1kcm9wZG93bi1pdGVtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3BvcG92ZXJzL3Rlc3Rpbmcvc3JjL2Ryb3Bkb3duL3BvcG92ZXJzLWZpeHR1cmUtZHJvcGRvd24taXRlbS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAaW50ZXJuYWxcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTa3lQb3BvdmVyc0ZpeHR1cmVEcm9wZG93bkl0ZW0ge1xuICBhcmlhUm9sZTogc3RyaW5nO1xufVxuIl19
@@ -5,4 +5,9 @@ export * from './dropdown/popovers-fixture-dropdown-item';
5
5
  export * from './dropdown/popovers-fixture-dropdown-menu';
6
6
  export * from './popover/popover-testing.module';
7
7
  export * from './popover/popover-fixture';
8
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9wb3BvdmVycy90ZXN0aW5nL3NyYy9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsb0NBQW9DLENBQUM7QUFDbkQsY0FBYyw2QkFBNkIsQ0FBQztBQUM1QyxjQUFjLHNDQUFzQyxDQUFDO0FBQ3JELGNBQWMsMkNBQTJDLENBQUM7QUFDMUQsY0FBYywyQ0FBMkMsQ0FBQztBQUUxRCxjQUFjLGtDQUFrQyxDQUFDO0FBQ2pELGNBQWMsMkJBQTJCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2Ryb3Bkb3duL2Ryb3Bkb3duLXRlc3RpbmcubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vZHJvcGRvd24vZHJvcGRvd24tZml4dHVyZSc7XG5leHBvcnQgKiBmcm9tICcuL2Ryb3Bkb3duL3BvcG92ZXJzLWZpeHR1cmUtZHJvcGRvd24nO1xuZXhwb3J0ICogZnJvbSAnLi9kcm9wZG93bi9wb3BvdmVycy1maXh0dXJlLWRyb3Bkb3duLWl0ZW0nO1xuZXhwb3J0ICogZnJvbSAnLi9kcm9wZG93bi9wb3BvdmVycy1maXh0dXJlLWRyb3Bkb3duLW1lbnUnO1xuXG5leHBvcnQgKiBmcm9tICcuL3BvcG92ZXIvcG9wb3Zlci10ZXN0aW5nLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL3BvcG92ZXIvcG9wb3Zlci1maXh0dXJlJztcbiJdfQ==
8
+ export * from './dropdown/harness/dropdown-harness';
9
+ export * from './dropdown/harness/dropdown-harness.filters';
10
+ export * from './dropdown/harness/dropdown-menu-harness';
11
+ export * from './dropdown/harness/dropdown-menu-harness.filters';
12
+ export * from './dropdown/harness/dropdown-item-harness';
13
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9wb3BvdmVycy90ZXN0aW5nL3NyYy9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsb0NBQW9DLENBQUM7QUFDbkQsY0FBYyw2QkFBNkIsQ0FBQztBQUM1QyxjQUFjLHNDQUFzQyxDQUFDO0FBQ3JELGNBQWMsMkNBQTJDLENBQUM7QUFDMUQsY0FBYywyQ0FBMkMsQ0FBQztBQUUxRCxjQUFjLGtDQUFrQyxDQUFDO0FBQ2pELGNBQWMsMkJBQTJCLENBQUM7QUFFMUMsY0FBYyxxQ0FBcUMsQ0FBQztBQUNwRCxjQUFjLDZDQUE2QyxDQUFDO0FBQzVELGNBQWMsMENBQTBDLENBQUM7QUFDekQsY0FBYyxrREFBa0QsQ0FBQztBQUNqRSxjQUFjLDBDQUEwQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9kcm9wZG93bi9kcm9wZG93bi10ZXN0aW5nLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2Ryb3Bkb3duL2Ryb3Bkb3duLWZpeHR1cmUnO1xuZXhwb3J0ICogZnJvbSAnLi9kcm9wZG93bi9wb3BvdmVycy1maXh0dXJlLWRyb3Bkb3duJztcbmV4cG9ydCAqIGZyb20gJy4vZHJvcGRvd24vcG9wb3ZlcnMtZml4dHVyZS1kcm9wZG93bi1pdGVtJztcbmV4cG9ydCAqIGZyb20gJy4vZHJvcGRvd24vcG9wb3ZlcnMtZml4dHVyZS1kcm9wZG93bi1tZW51JztcblxuZXhwb3J0ICogZnJvbSAnLi9wb3BvdmVyL3BvcG92ZXItdGVzdGluZy5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9wb3BvdmVyL3BvcG92ZXItZml4dHVyZSc7XG5cbmV4cG9ydCAqIGZyb20gJy4vZHJvcGRvd24vaGFybmVzcy9kcm9wZG93bi1oYXJuZXNzJztcbmV4cG9ydCAqIGZyb20gJy4vZHJvcGRvd24vaGFybmVzcy9kcm9wZG93bi1oYXJuZXNzLmZpbHRlcnMnO1xuZXhwb3J0ICogZnJvbSAnLi9kcm9wZG93bi9oYXJuZXNzL2Ryb3Bkb3duLW1lbnUtaGFybmVzcyc7XG5leHBvcnQgKiBmcm9tICcuL2Ryb3Bkb3duL2hhcm5lc3MvZHJvcGRvd24tbWVudS1oYXJuZXNzLmZpbHRlcnMnO1xuZXhwb3J0ICogZnJvbSAnLi9kcm9wZG93bi9oYXJuZXNzL2Ryb3Bkb3duLWl0ZW0taGFybmVzcyc7XG4iXX0=
@@ -6,6 +6,7 @@ import { By } from '@angular/platform-browser';
6
6
  import { SkyAppTestUtility } from '@skyux-sdk/testing';
7
7
  import { NoopAnimationsModule } from '@angular/platform-browser/animations';
8
8
  import { SkyThemeModule } from '@skyux/theme';
9
+ import { SkyComponentHarness } from '@skyux/core/testing';
9
10
 
10
11
  /**
11
12
  * @internal
@@ -259,9 +260,264 @@ _SkyPopoverFixture_fixture = new WeakMap(), _SkyPopoverFixture_instances = new W
259
260
  return !prefixedClass ? undefined : prefixedClass.slice(prefix.length);
260
261
  };
261
262
 
263
+ var _SkyDropdownItemHarness_getItem, _SkyDropdownItemHarness_getButton;
264
+ class SkyDropdownItemHarness extends SkyComponentHarness {
265
+ constructor() {
266
+ super(...arguments);
267
+ _SkyDropdownItemHarness_getItem.set(this, this.locatorFor('.sky-dropdown-item'));
268
+ _SkyDropdownItemHarness_getButton.set(this, this.locatorFor('button,a'));
269
+ }
270
+ /**
271
+ * Clicks the dropdown item
272
+ */
273
+ click() {
274
+ return __awaiter(this, void 0, void 0, function* () {
275
+ yield (yield __classPrivateFieldGet(this, _SkyDropdownItemHarness_getButton, "f").call(this)).click();
276
+ });
277
+ }
278
+ /**
279
+ * Gets the dropdown item role
280
+ */
281
+ getRole() {
282
+ return __awaiter(this, void 0, void 0, function* () {
283
+ return (yield __classPrivateFieldGet(this, _SkyDropdownItemHarness_getItem, "f").call(this)).getAttribute('role');
284
+ });
285
+ }
286
+ }
287
+ _SkyDropdownItemHarness_getItem = new WeakMap(), _SkyDropdownItemHarness_getButton = new WeakMap();
288
+ /**
289
+ * @internal
290
+ */
291
+ SkyDropdownItemHarness.hostSelector = 'sky-dropdown-item';
292
+
293
+ var _SkyDropdownMenuHarness_getDropdownItems;
294
+ /**
295
+ * Harness for interacting with dropdown menu in tests
296
+ */
297
+ class SkyDropdownMenuHarness extends SkyComponentHarness {
298
+ constructor() {
299
+ super(...arguments);
300
+ _SkyDropdownMenuHarness_getDropdownItems.set(this, this.locatorForAll(SkyDropdownItemHarness));
301
+ }
302
+ /**
303
+ * Gets a `HarnessPredicate` that can be used to search for a
304
+ * `SkyDropdownMenuHarness` that meets certain criteria
305
+ */
306
+ static with(filters) {
307
+ return SkyDropdownMenuHarness.getDataSkyIdPredicate(filters);
308
+ }
309
+ /**
310
+ * Gets the aria-labelledby value
311
+ */
312
+ getAriaLabelledBy() {
313
+ return __awaiter(this, void 0, void 0, function* () {
314
+ return (yield this.host()).getAttribute('aria-labelledby');
315
+ });
316
+ }
317
+ /**
318
+ * Clicks the dropdown menu item at index
319
+ * @param index Index of dropdown menu item
320
+ */
321
+ clickItemAtIndex(index) {
322
+ var _a;
323
+ return __awaiter(this, void 0, void 0, function* () {
324
+ yield ((_a = (yield this.getItemAtIndex(index))) === null || _a === void 0 ? void 0 : _a.click());
325
+ });
326
+ }
327
+ /**
328
+ * Clicks the dropdown menu item with a specific role
329
+ * @param role Role of dropdown menu item to be clicked
330
+ */
331
+ clickItemWithRole(role) {
332
+ var _a;
333
+ return __awaiter(this, void 0, void 0, function* () {
334
+ const menuItem = yield this.getItemWithRole(role);
335
+ if (!menuItem) {
336
+ throw new Error(`Unable to click item. Item with role ${role} does not exist in this dropdown menu`);
337
+ }
338
+ yield ((_a = (yield this.getItemWithRole(role))) === null || _a === void 0 ? void 0 : _a.click());
339
+ });
340
+ }
341
+ /**
342
+ * Gets the dropdown menu item at a specific index
343
+ * @param index Index of dropdown menu item to be clicked
344
+ */
345
+ getItemAtIndex(index) {
346
+ return __awaiter(this, void 0, void 0, function* () {
347
+ const itemsList = yield this.getItems();
348
+ if ((itemsList === null || itemsList === void 0 ? void 0 : itemsList.length) === 0) {
349
+ throw new Error('Unable to retrieve item because dropdown menu is empty');
350
+ }
351
+ return itemsList.at(index);
352
+ });
353
+ }
354
+ /**
355
+ * Gets the role of dropdown menu at index
356
+ * @param index Index of dropdown menu item
357
+ */
358
+ getItemRoleAtIndex(index) {
359
+ var _a;
360
+ return __awaiter(this, void 0, void 0, function* () {
361
+ return (_a = (yield this.getItemAtIndex(index))) === null || _a === void 0 ? void 0 : _a.getRole();
362
+ });
363
+ }
364
+ /**
365
+ * Gets an array of dropdown menu items
366
+ */
367
+ getItems() {
368
+ return __awaiter(this, void 0, void 0, function* () {
369
+ return yield __classPrivateFieldGet(this, _SkyDropdownMenuHarness_getDropdownItems, "f").call(this);
370
+ });
371
+ }
372
+ /**
373
+ * Gets the dropdown menu item from role
374
+ * @param role Role of dropdown menu item
375
+ */
376
+ getItemWithRole(role) {
377
+ var _a;
378
+ return __awaiter(this, void 0, void 0, function* () {
379
+ const itemsList = yield this.getItems();
380
+ if ((itemsList === null || itemsList === void 0 ? void 0 : itemsList.length) === 0) {
381
+ throw new Error('Unable to retrieve item because dropdown menu is empty');
382
+ }
383
+ for (const item of itemsList) {
384
+ if ((_a = (yield item.getRole())) === null || _a === void 0 ? void 0 : _a.match(role))
385
+ return item;
386
+ }
387
+ return undefined;
388
+ });
389
+ }
390
+ /**
391
+ * Gets the dropdown menu role
392
+ */
393
+ getRole() {
394
+ return __awaiter(this, void 0, void 0, function* () {
395
+ return (yield this.host()).getAttribute('role');
396
+ });
397
+ }
398
+ }
399
+ _SkyDropdownMenuHarness_getDropdownItems = new WeakMap();
400
+ /**
401
+ * @internal
402
+ */
403
+ SkyDropdownMenuHarness.hostSelector = '.sky-dropdown-menu';
404
+
405
+ var _SkyDropdownHarness_documentRootLocator, _SkyDropdownHarness_getDropdownButton;
406
+ class SkyDropdownHarness extends SkyComponentHarness {
407
+ constructor() {
408
+ super(...arguments);
409
+ _SkyDropdownHarness_documentRootLocator.set(this, this.documentRootLocatorFactory());
410
+ _SkyDropdownHarness_getDropdownButton.set(this, this.locatorFor('.sky-dropdown-button'));
411
+ }
412
+ /**
413
+ * Gets a `HarnessPredicate` that can be used to search for a
414
+ * `SkyDropdownHarness` that meets certain criteria
415
+ */
416
+ static with(filters) {
417
+ return SkyDropdownHarness.getDataSkyIdPredicate(filters);
418
+ }
419
+ /**
420
+ * Clicks the dropdown button
421
+ */
422
+ clickDropdownButton() {
423
+ return __awaiter(this, void 0, void 0, function* () {
424
+ (yield __classPrivateFieldGet(this, _SkyDropdownHarness_getDropdownButton, "f").call(this)).click();
425
+ });
426
+ }
427
+ /**
428
+ * Gets the id of the dropdown menu the button controls
429
+ */
430
+ getAriaControls() {
431
+ return __awaiter(this, void 0, void 0, function* () {
432
+ return (yield __classPrivateFieldGet(this, _SkyDropdownHarness_getDropdownButton, "f").call(this)).getAttribute('aria-controls');
433
+ });
434
+ }
435
+ /**
436
+ * Gets the aria-label value
437
+ */
438
+ getAriaLabel() {
439
+ return __awaiter(this, void 0, void 0, function* () {
440
+ return (yield __classPrivateFieldGet(this, _SkyDropdownHarness_getDropdownButton, "f").call(this)).getAttribute('aria-label');
441
+ });
442
+ }
443
+ /**
444
+ * Gets the dropdown button style
445
+ */
446
+ getButtonStyle() {
447
+ return __awaiter(this, void 0, void 0, function* () {
448
+ const button = yield __classPrivateFieldGet(this, _SkyDropdownHarness_getDropdownButton, "f").call(this);
449
+ if (yield button.hasClass('sky-btn-primary')) {
450
+ return 'primary';
451
+ }
452
+ if (yield button.hasClass('sky-btn-link')) {
453
+ return 'link';
454
+ }
455
+ return 'default';
456
+ });
457
+ }
458
+ /**
459
+ * Gets the dropdown button type
460
+ */
461
+ getButtonType() {
462
+ return __awaiter(this, void 0, void 0, function* () {
463
+ const button = yield __classPrivateFieldGet(this, _SkyDropdownHarness_getDropdownButton, "f").call(this);
464
+ if (yield button.hasClass('sky-dropdown-button-type-context-menu')) {
465
+ return 'context-menu';
466
+ }
467
+ return 'select';
468
+ });
469
+ }
470
+ /**
471
+ * Gets the dropdown menu component
472
+ */
473
+ getDropdownMenu() {
474
+ return __awaiter(this, void 0, void 0, function* () {
475
+ const dropdownMenuId = yield this.getAriaControls();
476
+ if (!dropdownMenuId) {
477
+ throw new Error('Unable to retrieve dropdown menu harness because dropdown is closed');
478
+ }
479
+ return __classPrivateFieldGet(this, _SkyDropdownHarness_documentRootLocator, "f").locatorForOptional(SkyDropdownMenuHarness.with({ selector: `#${dropdownMenuId}` }))();
480
+ });
481
+ }
482
+ /**
483
+ * Gets the hover tooltip text
484
+ */
485
+ getTooltipTitle() {
486
+ return __awaiter(this, void 0, void 0, function* () {
487
+ return (yield __classPrivateFieldGet(this, _SkyDropdownHarness_getDropdownButton, "f").call(this)).getAttribute('title');
488
+ });
489
+ }
490
+ /**
491
+ * Gets whether the dropdown is disabled
492
+ */
493
+ isDisabled() {
494
+ return __awaiter(this, void 0, void 0, function* () {
495
+ const button = yield __classPrivateFieldGet(this, _SkyDropdownHarness_getDropdownButton, "f").call(this);
496
+ return (yield button.getProperty('disabled')) ? true : false;
497
+ });
498
+ }
499
+ /**
500
+ * Gets whether the dropdown menu is open
501
+ */
502
+ isOpen() {
503
+ return __awaiter(this, void 0, void 0, function* () {
504
+ const ariaExpanded = yield (yield __classPrivateFieldGet(this, _SkyDropdownHarness_getDropdownButton, "f").call(this)).getAttribute('aria-expanded');
505
+ if (ariaExpanded === null || ariaExpanded === void 0 ? void 0 : ariaExpanded.match(/true/)) {
506
+ return true;
507
+ }
508
+ return false;
509
+ });
510
+ }
511
+ }
512
+ _SkyDropdownHarness_documentRootLocator = new WeakMap(), _SkyDropdownHarness_getDropdownButton = new WeakMap();
513
+ /**
514
+ * @internal
515
+ */
516
+ SkyDropdownHarness.hostSelector = 'sky-dropdown';
517
+
262
518
  /**
263
519
  * Generated bundle index. Do not edit.
264
520
  */
265
521
 
266
- export { SkyDropdownFixture, SkyDropdownTestingModule, SkyPopoverFixture, SkyPopoverTestingModule };
522
+ export { SkyDropdownFixture, SkyDropdownHarness, SkyDropdownItemHarness, SkyDropdownMenuHarness, SkyDropdownTestingModule, SkyPopoverFixture, SkyPopoverTestingModule };
267
523
  //# sourceMappingURL=skyux-popovers-testing.mjs.map