@skyux/popovers 13.11.5 → 13.13.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.
@@ -1 +1 @@
1
- {"version":3,"file":"skyux-popovers-testing.mjs","sources":["../tmp-esm2022/testing/legacy/dropdown/dropdown-fixture.js","../tmp-esm2022/testing/legacy/dropdown/dropdown-testing.module.js","../tmp-esm2022/testing/legacy/popover/popover-fixture.js","../tmp-esm2022/testing/legacy/popover/popover-testing.module.js","../tmp-esm2022/testing/modules/dropdown/dropdown-item-harness.js","../tmp-esm2022/testing/modules/dropdown/dropdown-menu-harness.js","../tmp-esm2022/testing/modules/dropdown/dropdown-harness.js","../tmp-esm2022/testing/modules/popover/popover-body-harness.js","../tmp-esm2022/testing/modules/popover/popover-content-harness.js","../tmp-esm2022/testing/modules/popover/popover-harness.js","../tmp-esm2022/testing/skyux-popovers-testing.js"],"sourcesContent":["import { By } from '@angular/platform-browser';\nimport { SkyAppTestUtility } from '@skyux-sdk/testing';\n/**\n * Provides information for and interaction with a SKY UX dropdown component.\n * By using the fixture API, a test insulates itself against updates to the internals\n * of a component, such as changing its DOM structure.\n * @deprecated Use `SkyDropdownHarness` instead.\n * @internal\n */\nexport class SkyDropdownFixture {\n /**\n * Returns information about the dropdown component.\n */\n get dropdown() {\n const button = this.#buttonDebugElement;\n return {\n buttonStyle: this.#getButtonStyle(button.classes),\n buttonType: this.#getButtonType(button.classes),\n disabled: button.nativeElement.disabled,\n label: button.nativeElement.getAttribute('aria-label'),\n title: button.nativeElement.getAttribute('title'),\n };\n }\n /**\n * Returns the dropdown button's text.\n */\n get dropdownButtonText() {\n return SkyAppTestUtility.getText(this.#buttonDebugElement.nativeElement);\n }\n /**\n * Returns information about the dropdown menu component.\n */\n get dropdownMenu() {\n const menu = this.getDropdownMenuContent();\n if (!menu) {\n return;\n }\n return {\n ariaLabelledBy: menu.getAttribute('aria-labelledby'),\n ariaRole: menu.getAttribute('role'),\n };\n }\n /**\n * Whether the dropdown menu is open and visible.\n */\n get dropdownMenuIsVisible() {\n return this.getDropdownMenuContent() !== undefined;\n }\n get #buttonDebugElement() {\n return this.#debugEl.query(By.css('.sky-dropdown-button'));\n }\n #debugEl;\n #fixture;\n constructor(fixture, skyTestId) {\n this.#fixture = fixture;\n this.#debugEl = SkyAppTestUtility.getDebugElementByTestId(fixture, skyTestId, 'sky-dropdown');\n }\n /**\n * Click the dropdown button to open or close the dropdown menu.\n */\n async clickDropdownButton() {\n this.#buttonDebugElement.nativeElement.click();\n this.#fixture.detectChanges();\n await this.#fixture.whenStable();\n }\n /**\n * Click the dropdown item at the provided index.\n */\n async clickDropdownItem(index) {\n const itemEls = this.#getDropdownItemEls();\n if (!itemEls) {\n return;\n }\n if (index >= itemEls.length) {\n throw new Error(`There is no dropdown item at index ${index}.`);\n }\n itemEls[index].querySelector('button,a').click();\n this.#fixture.detectChanges();\n await this.#fixture.whenStable();\n }\n /**\n * Returns information about the dropdown item at the provided index.\n */\n getDropdownItem(index) {\n const itemEls = this.#getDropdownItemEls();\n if (!itemEls) {\n return;\n }\n if (!itemEls[index]) {\n throw new Error(`There is no dropdown item at index ${index}.`);\n }\n const item = itemEls[index];\n return {\n ariaRole: item.getAttribute('role'),\n };\n }\n /**\n * Returns the contents of the dropdown menu.\n */\n getDropdownMenuContent() {\n const overlay = this.#getOverlay();\n if (!overlay) {\n return;\n }\n return overlay.querySelector('.sky-dropdown-menu');\n }\n #getDropdownItemEls() {\n const overlay = this.#getOverlay();\n if (!overlay) {\n return;\n }\n return overlay.querySelectorAll('.sky-dropdown-item');\n }\n #getOverlay() {\n return document.querySelector('sky-overlay');\n }\n #getButtonStyle(classNames) {\n if (classNames['sky-btn-primary']) {\n return 'primary';\n }\n if (classNames['sky-btn-default']) {\n return 'default';\n }\n return;\n }\n #getButtonType(classNames) {\n const prefix = 'sky-dropdown-button-type-';\n let found = '';\n for (const i in classNames) {\n if (classNames[i]) {\n if (i.indexOf(prefix) > -1) {\n found = i.replace(prefix, '');\n }\n }\n }\n return found;\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24tZml4dHVyZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9wb3BvdmVycy90ZXN0aW5nL3NyYy9sZWdhY3kvZHJvcGRvd24vZHJvcGRvd24tZml4dHVyZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFNdkQ7Ozs7OztHQU1HO0FBQ0gsTUFBTSxPQUFPLGtCQUFrQjtJQUM3Qjs7T0FFRztJQUNILElBQVcsUUFBUTtRQUNqQixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUM7UUFDeEMsT0FBTztZQUNMLFdBQVcsRUFBRSxJQUFJLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUM7WUFDakQsVUFBVSxFQUFFLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQztZQUMvQyxRQUFRLEVBQUUsTUFBTSxDQUFDLGFBQWEsQ0FBQyxRQUFRO1lBQ3ZDLEtBQUssRUFBRSxNQUFNLENBQUMsYUFBYSxDQUFDLFlBQVksQ0FBQyxZQUFZLENBQUM7WUFDdEQsS0FBSyxFQUFFLE1BQU0sQ0FBQyxhQUFhLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQztTQUNsRCxDQUFDO0lBQ0osQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFBVyxrQkFBa0I7UUFDM0IsT0FBTyxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQzNFLENBQUM7SUFFRDs7T0FFRztJQUNILElBQVcsWUFBWTtRQUNyQixNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztRQUMzQyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7WUFD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QyxnQkFBZ0IsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO0lBQ3hELENBQUM7SUFFRCxXQUFXO1FBQ1QsT0FBTyxRQUFRLENBQUMsYUFBYSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQy9DLENBQUM7SUFFRCxlQUFlLENBQUMsVUFBc0M7UUFDcEQsSUFBSSxVQUFVLENBQUMsaUJBQWlCLENBQUMsRUFBRSxDQUFDO1lBQ2xDLE9BQU8sU0FBUyxDQUFDO1FBQ25CLENBQUM7UUFDRCxJQUFJLFVBQVUsQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFLENBQUM7WUFDbEMsT0FBTyxTQUFTLENBQUM7UUFDbkIsQ0FBQztRQUNELE9BQU87SUFDVCxDQUFDO0lBRUQsY0FBYyxDQUFDLFVBQXNDO1FBQ25ELE1BQU0sTUFBTSxHQUFHLDJCQUEyQixDQUFDO1FBRTNDLElBQUksS0FBSyxHQUFHLEVBQUUsQ0FBQztRQUNmLEtBQUssTUFBTSxDQUFDLElBQUksVUFBVSxFQUFFLENBQUM7WUFDM0IsSUFBSSxVQUFVLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztnQkFDbEIsSUFBSSxDQUFDLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUM7b0JBQzNCLEtBQUssR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsQ0FBQztnQkFDaEMsQ0FBQztZQUNILENBQUM7UUFDSCxDQUFDO1FBRUQsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEZWJ1Z0VsZW1lbnQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbXBvbmVudEZpeHR1cmUgfSBmcm9tICdAYW5ndWxhci9jb3JlL3Rlc3RpbmcnO1xuaW1wb3J0IHsgQnkgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcbmltcG9ydCB7IFNreUFwcFRlc3RVdGlsaXR5IH0gZnJvbSAnQHNreXV4LXNkay90ZXN0aW5nJztcblxuaW1wb3J0IHsgU2t5UG9wb3ZlcnNGaXh0dXJlRHJvcGRvd24gfSBmcm9tICcuL3BvcG92ZXJzLWZpeHR1cmUtZHJvcGRvd24nO1xuaW1wb3J0IHsgU2t5UG9wb3ZlcnNGaXh0dXJlRHJvcGRvd25JdGVtIH0gZnJvbSAnLi9wb3BvdmVycy1maXh0dXJlLWRyb3Bkb3duLWl0ZW0nO1xuaW1wb3J0IHsgU2t5UG9wb3ZlcnNGaXh0dXJlRHJvcGRvd25NZW51IH0gZnJvbSAnLi9wb3BvdmVycy1maXh0dXJlLWRyb3Bkb3duLW1lbnUnO1xuXG4vKipcbiAqIFByb3ZpZGVzIGluZm9ybWF0aW9uIGZvciBhbmQgaW50ZXJhY3Rpb24gd2l0aCBhIFNLWSBVWCBkcm9wZG93biBjb21wb25lbnQuXG4gKiBCeSB1c2luZyB0aGUgZml4dHVyZSBBUEksIGEgdGVzdCBpbnN1bGF0ZXMgaXRzZWxmIGFnYWluc3QgdXBkYXRlcyB0byB0aGUgaW50ZXJuYWxzXG4gKiBvZiBhIGNvbXBvbmVudCwgc3VjaCBhcyBjaGFuZ2luZyBpdHMgRE9NIHN0cnVjdHVyZS5cbiAqIEBkZXByZWNhdGVkIFVzZSBgU2t5RHJvcGRvd25IYXJuZXNzYCBpbnN0ZWFkLlxuICogQGludGVybmFsXG4gKi9cbmV4cG9ydCBjbGFzcyBTa3lEcm9wZG93bkZpeHR1cmUge1xuICAvKipcbiAgICogUmV0dXJucyBpbmZvcm1hdGlvbiBhYm91dCB0aGUgZHJvcGRvd24gY29tcG9uZW50LlxuICAgKi9cbiAgcHVibGljIGdldCBkcm9wZG93bigpOiBTa3lQb3BvdmVyc0ZpeHR1cmVEcm9wZG93biB8IHVuZGVmaW5lZCB7XG4gICAgY29uc3QgYnV0dG9uID0gdGhpcy4jYnV0dG9uRGVidWdFbGVtZW50O1xuICAgIHJldHVybiB7XG4gICAgICBidXR0b25TdHlsZTogdGhpcy4jZ2V0QnV0dG9uU3R5bGUoYnV0dG9uLmNsYXNzZXMpLFxuICAgICAgYnV0dG9uVHlwZTogdGhpcy4jZ2V0QnV0dG9uVHlwZShidXR0b24uY2xhc3NlcyksXG4gICAgICBkaXNhYmxlZDogYnV0dG9uLm5hdGl2ZUVsZW1lbnQuZGlzYWJsZWQsXG4gICAgICBsYWJlbDogYnV0dG9uLm5hdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCdhcmlhLWxhYmVsJyksXG4gICAgICB0aXRsZTogYnV0dG9uLm5hdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCd0aXRsZScpLFxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgZHJvcGRvd24gYnV0dG9uJ3MgdGV4dC5cbiAgICovXG4gIHB1YmxpYyBnZXQgZHJvcGRvd25CdXR0b25UZXh0KCk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIFNreUFwcFRlc3RVdGlsaXR5LmdldFRleHQodGhpcy4jYnV0dG9uRGVidWdFbGVtZW50Lm5hdGl2ZUVsZW1lbnQpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGRyb3Bkb3duIG1lbnUgY29tcG9uZW50LlxuICAgKi9cbiAgcHVibGljIGdldCBkcm9wZG93bk1lbnUoKTogU2t5UG9wb3ZlcnNGaXh0dXJlRHJvcGRvd25NZW51IHwgdW5kZWZpbmVkIHtcbiAgICBjb25zdCBtZW51ID0gdGhpcy5nZXREcm9wZG93bk1lbnVDb250ZW50KCk7XG4gICAgaWYgKCFtZW51KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIGFyaWFMYWJlbGxlZEJ5OiBtZW51LmdldEF0dHJpYnV0ZSgnYXJpYS1sYWJlbGxlZGJ5JyksXG4gICAgICBhcmlhUm9sZTogbWVudS5nZXRBdHRyaWJ1dGUoJ3JvbGUnKSxcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhlIGRyb3Bkb3duIG1lbnUgaXMgb3BlbiBhbmQgdmlzaWJsZS5cbiAgICovXG4gIHB1YmxpYyBnZXQgZHJvcGRvd25NZW51SXNWaXNpYmxlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmdldERyb3Bkb3duTWVudUNvbnRlbnQoKSAhPT0gdW5kZWZpbmVkO1xuICB9XG5cbiAgZ2V0ICNidXR0b25EZWJ1Z0VsZW1lbnQoKTogRGVidWdFbGVtZW50IHtcbiAgICByZXR1cm4gdGhpcy4jZGVidWdFbC5xdWVyeShCeS5jc3MoJy5za3ktZHJvcGRvd24tYnV0dG9uJykpO1xuICB9XG5cbiAgI2RlYnVnRWw6IERlYnVnRWxlbWVudDtcblxuICAjZml4dHVyZTogQ29tcG9uZW50Rml4dHVyZTx1bmtub3duPjtcblxuICBjb25zdHJ1Y3RvcihmaXh0dXJlOiBDb21wb25lbnRGaXh0dXJlPHVua25vd24+LCBza3lUZXN0SWQ6IHN0cmluZykge1xuICAgIHRoaXMuI2ZpeHR1cmUgPSBmaXh0dXJlO1xuICAgIHRoaXMuI2RlYnVnRWwgPSBTa3lBcHBUZXN0VXRpbGl0eS5nZXREZWJ1Z0VsZW1lbnRCeVRlc3RJZChcbiAgICAgIGZpeHR1cmUsXG4gICAgICBza3lUZXN0SWQsXG4gICAgICAnc2t5LWRyb3Bkb3duJyxcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIENsaWNrIHRoZSBkcm9wZG93biBidXR0b24gdG8gb3BlbiBvciBjbG9zZSB0aGUgZHJvcGRvd24gbWVudS5cbiAgICovXG4gIHB1YmxpYyBhc3luYyBjbGlja0Ryb3Bkb3duQnV0dG9uKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIHRoaXMuI2J1dHRvbkRlYnVnRWxlbWVudC5uYXRpdmVFbGVtZW50LmNsaWNrKCk7XG4gICAgdGhpcy4jZml4dHVyZS5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgYXdhaXQgdGhpcy4jZml4dHVyZS53aGVuU3RhYmxlKCk7XG4gIH1cblxuICAvKipcbiAgICogQ2xpY2sgdGhlIGRyb3Bkb3duIGl0ZW0gYXQgdGhlIHByb3ZpZGVkIGluZGV4LlxuICAgKi9cbiAgcHVibGljIGFzeW5jIGNsaWNrRHJvcGRvd25JdGVtKGluZGV4OiBudW1iZXIpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBpdGVtRWxzID0gdGhpcy4jZ2V0RHJvcGRvd25JdGVtRWxzKCk7XG5cbiAgICBpZiAoIWl0ZW1FbHMpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoaW5kZXggPj0gaXRlbUVscy5sZW5ndGgpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgVGhlcmUgaXMgbm8gZHJvcGRvd24gaXRlbSBhdCBpbmRleCAke2luZGV4fS5gKTtcbiAgICB9XG5cbiAgICBpdGVtRWxzW2luZGV4XS5xdWVyeVNlbGVjdG9yKCdidXR0b24sYScpLmNsaWNrKCk7XG5cbiAgICB0aGlzLiNmaXh0dXJlLmRldGVjdENoYW5nZXMoKTtcbiAgICBhd2FpdCB0aGlzLiNmaXh0dXJlLndoZW5TdGFibGUoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGluZm9ybWF0aW9uIGFib3V0IHRoZSBkcm9wZG93biBpdGVtIGF0IHRoZSBwcm92aWRlZCBpbmRleC5cbiAgICovXG4gIHB1YmxpYyBnZXREcm9wZG93bkl0ZW0oXG4gICAgaW5kZXg6IG51bWJlcixcbiAgKTogU2t5UG9wb3ZlcnNGaXh0dXJlRHJvcGRvd25JdGVtIHwgdW5kZWZpbmVkIHtcbiAgICBjb25zdCBpdGVtRWxzID0gdGhpcy4jZ2V0RHJvcGRvd25JdGVtRWxzKCk7XG5cbiAgICBpZiAoIWl0ZW1FbHMpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoIWl0ZW1FbHNbaW5kZXhdKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYFRoZXJlIGlzIG5vIGRyb3Bkb3duIGl0ZW0gYXQgaW5kZXggJHtpbmRleH0uYCk7XG4gICAgfVxuXG4gICAgY29uc3QgaXRlbSA9IGl0ZW1FbHNbaW5kZXhdO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIGFyaWFSb2xlOiBpdGVtLmdldEF0dHJpYnV0ZSgncm9sZScpLFxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgY29udGVudHMgb2YgdGhlIGRyb3Bkb3duIG1lbnUuXG4gICAqL1xuICBwdWJsaWMgZ2V0RHJvcGRvd25NZW51Q29udGVudCgpOiBhbnkge1xuICAgIGNvbnN0IG92ZXJsYXkgPSB0aGlzLiNnZXRPdmVybGF5KCk7XG4gICAgaWYgKCFvdmVybGF5KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgcmV0dXJuIG92ZXJsYXkucXVlcnlTZWxlY3RvcignLnNreS1kcm9wZG93bi1tZW51Jyk7XG4gIH1cblxuICAjZ2V0RHJvcGRvd25JdGVtRWxzKCk6IE5vZGVMaXN0T2Y8YW55PiB8IHVuZGVmaW5lZCB7XG4gICAgY29uc3Qgb3ZlcmxheSA9IHRoaXMuI2dldE92ZXJsYXkoKTtcblxuICAgIGlmICghb3ZlcmxheSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHJldHVybiBvdmVybGF5LnF1ZXJ5U2VsZWN0b3JBbGwoJy5za3ktZHJvcGRvd24taXRlbScpO1xuICB9XG5cbiAgI2dldE92ZXJsYXkoKTogSFRNTEVsZW1lbnQgfCBudWxsIHtcbiAgICByZXR1cm4gZG9jdW1lbnQucXVlcnlTZWxlY3Rvcignc2t5LW92ZXJsYXknKTtcbiAgfVxuXG4gICNnZXRCdXR0b25TdHlsZShjbGFzc05hbWVzOiB7IFtrZXk6IHN0cmluZ106IGJvb2xlYW4gfSk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgaWYgKGNsYXNzTmFtZXNbJ3NreS1idG4tcHJpbWFyeSddKSB7XG4gICAgICByZXR1cm4gJ3ByaW1hcnknO1xuICAgIH1cbiAgICBpZiAoY2xhc3NOYW1lc1snc2t5LWJ0bi1kZWZhdWx0J10pIHtcbiAgICAgIHJldHVybiAnZGVmYXVsdCc7XG4gICAgfVxuICAgIHJldHVybjtcbiAgfVxuXG4gICNnZXRCdXR0b25UeXBlKGNsYXNzTmFtZXM6IHsgW2tleTogc3RyaW5nXTogYm9vbGVhbiB9KTogc3RyaW5nIHtcbiAgICBjb25zdCBwcmVmaXggPSAnc2t5LWRyb3Bkb3duLWJ1dHRvbi10eXBlLSc7XG5cbiAgICBsZXQgZm91bmQgPSAnJztcbiAgICBmb3IgKGNvbnN0IGkgaW4gY2xhc3NOYW1lcykge1xuICAgICAgaWYgKGNsYXNzTmFtZXNbaV0pIHtcbiAgICAgICAgaWYgKGkuaW5kZXhPZihwcmVmaXgpID4gLTEpIHtcbiAgICAgICAgICBmb3VuZCA9IGkucmVwbGFjZShwcmVmaXgsICcnKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBmb3VuZDtcbiAgfVxufVxuIl19","import { NgModule } from '@angular/core';\nimport { SkyDropdownModule } from '@skyux/popovers';\nimport * as i0 from \"@angular/core\";\n/**\n * @internal\n */\nexport class SkyDropdownTestingModule {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.15\", ngImport: i0, type: SkyDropdownTestingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }\n static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"20.3.15\", ngImport: i0, type: SkyDropdownTestingModule, exports: [SkyDropdownModule] }); }\n static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"20.3.15\", ngImport: i0, type: SkyDropdownTestingModule, imports: [SkyDropdownModule] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.15\", ngImport: i0, type: SkyDropdownTestingModule, decorators: [{\n type: NgModule,\n args: [{\n exports: [SkyDropdownModule],\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24tdGVzdGluZy5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvcG9wb3ZlcnMvdGVzdGluZy9zcmMvbGVnYWN5L2Ryb3Bkb3duL2Ryb3Bkb3duLXRlc3RpbmcubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0saUJBQWlCLENBQUM7O0FBRXBEOztHQUVHO0FBSUgsTUFBTSxPQUFPLHdCQUF3QjsrR0FBeEIsd0JBQXdCO2dIQUF4Qix3QkFBd0IsWUFGekIsaUJBQWlCO2dIQUVoQix3QkFBd0IsWUFGekIsaUJBQWlCOzs0RkFFaEIsd0JBQXdCO2tCQUhwQyxRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRSxDQUFDLGlCQUFpQixDQUFDO2lCQUM3QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTa3lEcm9wZG93bk1vZHVsZSB9IGZyb20gJ0Bza3l1eC9wb3BvdmVycyc7XG5cbi8qKlxuICogQGludGVybmFsXG4gKi9cbkBOZ01vZHVsZSh7XG4gIGV4cG9ydHM6IFtTa3lEcm9wZG93bk1vZHVsZV0sXG59KVxuZXhwb3J0IGNsYXNzIFNreURyb3Bkb3duVGVzdGluZ01vZHVsZSB7fVxuIl19","import { SkyAppTestUtility } from '@skyux-sdk/testing';\n/**\n * Provides information for and interaction with a SKY UX popover component.\n * By using the fixture API, a test insulates itself against updates to the internals\n * of a component, such as changing its DOM structure.\n * @deprecated Use `SkyPopoverHarness` instead.\n * @internal\n */\nexport class SkyPopoverFixture {\n /**\n * Returns the popover alignment if the popover is open, otherwise undefined.\n */\n get alignment() {\n return this.#getClassSuffixByClassPrefix(this.#containerElement, 'sky-popover-alignment-');\n }\n /**\n * Returns the popover body element if the popover is open, otherwise undefined.\n */\n get body() {\n return this.#bodyElement;\n }\n /**\n * Returns the popover position if the popover is open, otherwise undefined.\n */\n get placement() {\n return this.#getClassSuffixByClassPrefix(this.#containerElement, 'sky-popover-placement-');\n }\n /**\n * Returns the popover title text if the popover is open, otherwise undefined.\n */\n get popoverTitle() {\n return SkyAppTestUtility.getText(this.#titleElement);\n }\n /**\n * Whether the popover is open and visible.\n */\n get popoverIsVisible() {\n return this.#contentElement !== undefined;\n }\n #fixture;\n constructor(fixture) {\n this.#fixture = fixture;\n }\n /**\n * Triggers the blur event for the popover.\n */\n blur() {\n // close the popover by changing focus to the body element\n SkyAppTestUtility.fireDomEvent(window.document.body, 'click');\n this.#fixture.detectChanges();\n return this.#fixture.whenStable();\n }\n //#region helpers\n get #contentElement() {\n return this.#queryOverlay('sky-popover-content') || undefined;\n }\n get #containerElement() {\n return this.#queryOverlay('.sky-popover-container') || undefined;\n }\n get #titleElement() {\n return this.#queryOverlay('.sky-popover-title') || undefined;\n }\n get #bodyElement() {\n return this.#queryOverlay('.sky-popover-body') || undefined;\n }\n #getOverlay() {\n return document.querySelector('sky-overlay') || undefined;\n }\n #queryOverlay(query) {\n const overlay = this.#getOverlay();\n return !overlay ? null : overlay.querySelector(query);\n }\n /**\n * Searches the element's class names for a class which matches a given prefix.\n * If a match is found, the prefix is trimmed from the class name and the suffix is returned.\n * If no class matching the prefix is found, undefined is returned.\n *\n * Example:\n * For a class 'sky-popover-placement-right', passing the prefix 'sky-popover-placement-'\n * should return the value 'right'.\n * @param prefix\n */\n #getClassSuffixByClassPrefix(element, prefix) {\n const containerClasses = element?.className.split(' ');\n const prefixedClass = containerClasses?.find((x) => x.startsWith(prefix));\n return !prefixedClass ? undefined : prefixedClass.slice(prefix.length);\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9wb3Zlci1maXh0dXJlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3BvcG92ZXJzL3Rlc3Rpbmcvc3JjL2xlZ2FjeS9wb3BvdmVyL3BvcG92ZXItZml4dHVyZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUV2RDs7Ozs7O0dBTUc7QUFDSCxNQUFNLE9BQU8saUJBQWlCO0lBQzVCOztPQUVHO0lBQ0gsSUFBVyxTQUFTO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLDRCQUE0QixDQUN0QyxJQUFJLENBQUMsaUJBQWlCLEVBQ3RCLHdCQUF3QixDQUN6QixDQUFDO0lBQ0osQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFBVyxJQUFJO1FBQ2IsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDO0lBQzNCLENBQUM7SUFFRDs7T0FFRztJQUNILElBQVcsU0FBUztRQUNsQixPQUFPLElBQUksQ0FBQyw0QkFBNEIsQ0FDdEMsSUFBSSxDQUFDLGlCQUFpQixFQUN0Qix3QkFBd0IsQ0FDekIsQ0FBQztJQUNKLENBQUM7SUFFRDs7T0FFRztJQUNILElBQVcsWUFBWTtRQUNyQixPQUFPLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDdkQsQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFBVyxnQkFBZ0I7UUFDekIsT0FBTyxJQUFJLENBQUMsZUFBZSxLQUFLLFNBQVMsQ0FBQztJQUM1QyxDQUFDO0lBRUQsUUFBUSxDQUE0QjtJQUVwQyxZQUFZLE9BQWtDO1FBQzVDLElBQUksQ0FBQyxRQUFRLEdBQUcsT0FBTyxDQUFDO0lBQzFCLENBQUM7SUFFRDs7T0FFRztJQUNJLElBQUk7UUFDVCwwREFBMEQ7UUFDMUQsaUJBQWlCLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBRTlELElBQUksQ0FBQyxRQUFRLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDOUIsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLFVBQVUsRUFBRSxDQUFDO0lBQ3BDLENBQUM7SUFFRCxpQkFBaUI7SUFDakIsSUFBSSxlQUFlO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLFNBQVMsQ0FBQztJQUNoRSxDQUFDO0lBRUQsSUFBSSxpQkFBaUI7UUFDbkIsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLHdCQUF3QixDQUFDLElBQUksU0FBUyxDQUFDO0lBQ25FLENBQUM7SUFFRCxJQUFJLGFBQWE7UUFDZixPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsb0JBQW9CLENBQUMsSUFBSSxTQUFTLENBQUM7SUFDL0QsQ0FBQztJQUVELElBQUksWUFBWTtRQUNkLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLFNBQVMsQ0FBQztJQUM5RCxDQUFDO0lBRUQsV0FBVztRQUNULE9BQU8sUUFBUSxDQUFDLGFBQWEsQ0FBQyxhQUFhLENBQUMsSUFBSSxTQUFTLENBQUM7SUFDNUQsQ0FBQztJQUVELGFBQWEsQ0FBQyxLQUFhO1FBQ3pCLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUVuQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDeEQsQ0FBQztJQUVEOzs7Ozs7Ozs7T0FTRztJQUNILDRCQUE0QixDQUMxQixPQUFnQyxFQUNoQyxNQUFjO1FBRWQsTUFBTSxnQkFBZ0IsR0FBRyxPQUFPLEVBQUUsU0FBUyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUN2RCxNQUFNLGFBQWEsR0FBRyxnQkFBZ0IsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztRQUUxRSxPQUFPLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3pFLENBQUM7Q0FFRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudEZpeHR1cmUgfSBmcm9tICdAYW5ndWxhci9jb3JlL3Rlc3RpbmcnO1xuaW1wb3J0IHsgU2t5QXBwVGVzdFV0aWxpdHkgfSBmcm9tICdAc2t5dXgtc2RrL3Rlc3RpbmcnO1xuXG4vKipcbiAqIFByb3ZpZGVzIGluZm9ybWF0aW9uIGZvciBhbmQgaW50ZXJhY3Rpb24gd2l0aCBhIFNLWSBVWCBwb3BvdmVyIGNvbXBvbmVudC5cbiAqIEJ5IHVzaW5nIHRoZSBmaXh0dXJlIEFQSSwgYSB0ZXN0IGluc3VsYXRlcyBpdHNlbGYgYWdhaW5zdCB1cGRhdGVzIHRvIHRoZSBpbnRlcm5hbHNcbiAqIG9mIGEgY29tcG9uZW50LCBzdWNoIGFzIGNoYW5naW5nIGl0cyBET00gc3RydWN0dXJlLlxuICogQGRlcHJlY2F0ZWQgVXNlIGBTa3lQb3BvdmVySGFybmVzc2AgaW5zdGVhZC5cbiAqIEBpbnRlcm5hbFxuICovXG5leHBvcnQgY2xhc3MgU2t5UG9wb3ZlckZpeHR1cmUge1xuICAvKipcbiAgICogUmV0dXJucyB0aGUgcG9wb3ZlciBhbGlnbm1lbnQgaWYgdGhlIHBvcG92ZXIgaXMgb3Blbiwgb3RoZXJ3aXNlIHVuZGVmaW5lZC5cbiAgICovXG4gIHB1YmxpYyBnZXQgYWxpZ25tZW50KCk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuI2dldENsYXNzU3VmZml4QnlDbGFzc1ByZWZpeChcbiAgICAgIHRoaXMuI2NvbnRhaW5lckVsZW1lbnQsXG4gICAgICAnc2t5LXBvcG92ZXItYWxpZ25tZW50LScsXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBwb3BvdmVyIGJvZHkgZWxlbWVudCBpZiB0aGUgcG9wb3ZlciBpcyBvcGVuLCBvdGhlcndpc2UgdW5kZWZpbmVkLlxuICAgKi9cbiAgcHVibGljIGdldCBib2R5KCk6IEhUTUxFbGVtZW50IHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy4jYm9keUVsZW1lbnQ7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgcG9wb3ZlciBwb3NpdGlvbiBpZiB0aGUgcG9wb3ZlciBpcyBvcGVuLCBvdGhlcndpc2UgdW5kZWZpbmVkLlxuICAgKi9cbiAgcHVibGljIGdldCBwbGFjZW1lbnQoKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy4jZ2V0Q2xhc3NTdWZmaXhCeUNsYXNzUHJlZml4KFxuICAgICAgdGhpcy4jY29udGFpbmVyRWxlbWVudCxcbiAgICAgICdza3ktcG9wb3Zlci1wbGFjZW1lbnQtJyxcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIHBvcG92ZXIgdGl0bGUgdGV4dCBpZiB0aGUgcG9wb3ZlciBpcyBvcGVuLCBvdGhlcndpc2UgdW5kZWZpbmVkLlxuICAgKi9cbiAgcHVibGljIGdldCBwb3BvdmVyVGl0bGUoKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gU2t5QXBwVGVzdFV0aWxpdHkuZ2V0VGV4dCh0aGlzLiN0aXRsZUVsZW1lbnQpO1xuICB9XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhlIHBvcG92ZXIgaXMgb3BlbiBhbmQgdmlzaWJsZS5cbiAgICovXG4gIHB1YmxpYyBnZXQgcG9wb3ZlcklzVmlzaWJsZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy4jY29udGVudEVsZW1lbnQgIT09IHVuZGVmaW5lZDtcbiAgfVxuXG4gICNmaXh0dXJlOiBDb21wb25lbnRGaXh0dXJlPHVua25vd24+O1xuXG4gIGNvbnN0cnVjdG9yKGZpeHR1cmU6IENvbXBvbmVudEZpeHR1cmU8dW5rbm93bj4pIHtcbiAgICB0aGlzLiNmaXh0dXJlID0gZml4dHVyZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUcmlnZ2VycyB0aGUgYmx1ciBldmVudCBmb3IgdGhlIHBvcG92ZXIuXG4gICAqL1xuICBwdWJsaWMgYmx1cigpOiBQcm9taXNlPHVua25vd24+IHtcbiAgICAvLyBjbG9zZSB0aGUgcG9wb3ZlciBieSBjaGFuZ2luZyBmb2N1cyB0byB0aGUgYm9keSBlbGVtZW50XG4gICAgU2t5QXBwVGVzdFV0aWxpdHkuZmlyZURvbUV2ZW50KHdpbmRvdy5kb2N1bWVudC5ib2R5LCAnY2xpY2snKTtcblxuICAgIHRoaXMuI2ZpeHR1cmUuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIHJldHVybiB0aGlzLiNmaXh0dXJlLndoZW5TdGFibGUoKTtcbiAgfVxuXG4gIC8vI3JlZ2lvbiBoZWxwZXJzXG4gIGdldCAjY29udGVudEVsZW1lbnQoKTogSFRNTEVsZW1lbnQgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLiNxdWVyeU92ZXJsYXkoJ3NreS1wb3BvdmVyLWNvbnRlbnQnKSB8fCB1bmRlZmluZWQ7XG4gIH1cblxuICBnZXQgI2NvbnRhaW5lckVsZW1lbnQoKTogSFRNTEVsZW1lbnQgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLiNxdWVyeU92ZXJsYXkoJy5za3ktcG9wb3Zlci1jb250YWluZXInKSB8fCB1bmRlZmluZWQ7XG4gIH1cblxuICBnZXQgI3RpdGxlRWxlbWVudCgpOiBIVE1MRWxlbWVudCB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuI3F1ZXJ5T3ZlcmxheSgnLnNreS1wb3BvdmVyLXRpdGxlJykgfHwgdW5kZWZpbmVkO1xuICB9XG5cbiAgZ2V0ICNib2R5RWxlbWVudCgpOiBIVE1MRWxlbWVudCB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuI3F1ZXJ5T3ZlcmxheSgnLnNreS1wb3BvdmVyLWJvZHknKSB8fCB1bmRlZmluZWQ7XG4gIH1cblxuICAjZ2V0T3ZlcmxheSgpOiBFbGVtZW50IHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gZG9jdW1lbnQucXVlcnlTZWxlY3Rvcignc2t5LW92ZXJsYXknKSB8fCB1bmRlZmluZWQ7XG4gIH1cblxuICAjcXVlcnlPdmVybGF5KHF1ZXJ5OiBzdHJpbmcpOiBIVE1MRWxlbWVudCB8IG51bGwge1xuICAgIGNvbnN0IG92ZXJsYXkgPSB0aGlzLiNnZXRPdmVybGF5KCk7XG5cbiAgICByZXR1cm4gIW92ZXJsYXkgPyBudWxsIDogb3ZlcmxheS5xdWVyeVNlbGVjdG9yKHF1ZXJ5KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZWFyY2hlcyB0aGUgZWxlbWVudCdzIGNsYXNzIG5hbWVzIGZvciBhIGNsYXNzIHdoaWNoIG1hdGNoZXMgYSBnaXZlbiBwcmVmaXguXG4gICAqIElmIGEgbWF0Y2ggaXMgZm91bmQsIHRoZSBwcmVmaXggaXMgdHJpbW1lZCBmcm9tIHRoZSBjbGFzcyBuYW1lIGFuZCB0aGUgc3VmZml4IGlzIHJldHVybmVkLlxuICAgKiBJZiBubyBjbGFzcyBtYXRjaGluZyB0aGUgcHJlZml4IGlzIGZvdW5kLCB1bmRlZmluZWQgaXMgcmV0dXJuZWQuXG4gICAqXG4gICAqIEV4YW1wbGU6XG4gICAqICAgRm9yIGEgY2xhc3MgJ3NreS1wb3BvdmVyLXBsYWNlbWVudC1yaWdodCcsIHBhc3NpbmcgdGhlIHByZWZpeCAnc2t5LXBvcG92ZXItcGxhY2VtZW50LSdcbiAgICogICBzaG91bGQgcmV0dXJuIHRoZSB2YWx1ZSAncmlnaHQnLlxuICAgKiBAcGFyYW0gcHJlZml4XG4gICAqL1xuICAjZ2V0Q2xhc3NTdWZmaXhCeUNsYXNzUHJlZml4KFxuICAgIGVsZW1lbnQ6IEhUTUxFbGVtZW50IHwgdW5kZWZpbmVkLFxuICAgIHByZWZpeDogc3RyaW5nLFxuICApOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgIGNvbnN0IGNvbnRhaW5lckNsYXNzZXMgPSBlbGVtZW50Py5jbGFzc05hbWUuc3BsaXQoJyAnKTtcbiAgICBjb25zdCBwcmVmaXhlZENsYXNzID0gY29udGFpbmVyQ2xhc3Nlcz8uZmluZCgoeCkgPT4geC5zdGFydHNXaXRoKHByZWZpeCkpO1xuXG4gICAgcmV0dXJuICFwcmVmaXhlZENsYXNzID8gdW5kZWZpbmVkIDogcHJlZml4ZWRDbGFzcy5zbGljZShwcmVmaXgubGVuZ3RoKTtcbiAgfVxuICAvLyNlbmRyZWdpb25cbn1cbiJdfQ==","import { NgModule } from '@angular/core';\nimport { NoopAnimationsModule } from '@angular/platform-browser/animations';\nimport { SkyPopoverModule } from '@skyux/popovers';\nimport { SkyThemeModule } from '@skyux/theme';\nimport * as i0 from \"@angular/core\";\n/**\n * @internal\n */\nexport class SkyPopoverTestingModule {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.15\", ngImport: i0, type: SkyPopoverTestingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }\n static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"20.3.15\", ngImport: i0, type: SkyPopoverTestingModule, imports: [SkyThemeModule], exports: [SkyPopoverModule,\n // The noop animations module needs to be loaded last to avoid\n // subsequent modules adding animations and overriding this.\n NoopAnimationsModule] }); }\n static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"20.3.15\", ngImport: i0, type: SkyPopoverTestingModule, imports: [SkyThemeModule, SkyPopoverModule,\n // The noop animations module needs to be loaded last to avoid\n // subsequent modules adding animations and overriding this.\n NoopAnimationsModule] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.15\", ngImport: i0, type: SkyPopoverTestingModule, decorators: [{\n type: NgModule,\n args: [{\n exports: [\n SkyPopoverModule,\n // The noop animations module needs to be loaded last to avoid\n // subsequent modules adding animations and overriding this.\n NoopAnimationsModule,\n ],\n imports: [SkyThemeModule],\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9wb3Zlci10ZXN0aW5nLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9wb3BvdmVycy90ZXN0aW5nL3NyYy9sZWdhY3kvcG9wb3Zlci9wb3BvdmVyLXRlc3RpbmcubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDNUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbkQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGNBQWMsQ0FBQzs7QUFFOUM7O0dBRUc7QUFXSCxNQUFNLE9BQU8sdUJBQXVCOytHQUF2Qix1QkFBdUI7Z0hBQXZCLHVCQUF1QixZQUZ4QixjQUFjLGFBTnRCLGdCQUFnQjtZQUVoQiw4REFBOEQ7WUFDOUQsNERBQTREO1lBQzVELG9CQUFvQjtnSEFJWCx1QkFBdUIsWUFGeEIsY0FBYyxFQU50QixnQkFBZ0I7WUFFaEIsOERBQThEO1lBQzlELDREQUE0RDtZQUM1RCxvQkFBb0I7OzRGQUlYLHVCQUF1QjtrQkFWbkMsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUU7d0JBQ1AsZ0JBQWdCO3dCQUVoQiw4REFBOEQ7d0JBQzlELDREQUE0RDt3QkFDNUQsb0JBQW9CO3FCQUNyQjtvQkFDRCxPQUFPLEVBQUUsQ0FBQyxjQUFjLENBQUM7aUJBQzFCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5vb3BBbmltYXRpb25zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlci9hbmltYXRpb25zJztcbmltcG9ydCB7IFNreVBvcG92ZXJNb2R1bGUgfSBmcm9tICdAc2t5dXgvcG9wb3ZlcnMnO1xuaW1wb3J0IHsgU2t5VGhlbWVNb2R1bGUgfSBmcm9tICdAc2t5dXgvdGhlbWUnO1xuXG4vKipcbiAqIEBpbnRlcm5hbFxuICovXG5ATmdNb2R1bGUoe1xuICBleHBvcnRzOiBbXG4gICAgU2t5UG9wb3Zlck1vZHVsZSxcblxuICAgIC8vIFRoZSBub29wIGFuaW1hdGlvbnMgbW9kdWxlIG5lZWRzIHRvIGJlIGxvYWRlZCBsYXN0IHRvIGF2b2lkXG4gICAgLy8gc3Vic2VxdWVudCBtb2R1bGVzIGFkZGluZyBhbmltYXRpb25zIGFuZCBvdmVycmlkaW5nIHRoaXMuXG4gICAgTm9vcEFuaW1hdGlvbnNNb2R1bGUsXG4gIF0sXG4gIGltcG9ydHM6IFtTa3lUaGVtZU1vZHVsZV0sXG59KVxuZXhwb3J0IGNsYXNzIFNreVBvcG92ZXJUZXN0aW5nTW9kdWxlIHt9XG4iXX0=","import { HarnessPredicate } from '@angular/cdk/testing';\nimport { SkyComponentHarness } from '@skyux/core/testing';\n/**\n * Harness for interacting with a dropdown item component in tests.\n */\nexport class SkyDropdownItemHarness extends SkyComponentHarness {\n /**\n * @internal\n */\n static { this.hostSelector = 'sky-dropdown-item'; }\n #getItem = this.locatorFor('.sky-dropdown-item');\n #getButton = this.locatorFor('button,a');\n /**\n * Gets a `HarnessPredicate` that can be used to search for a\n * `SkyDropdownItemHarness` that meets certain criteria.\n */\n static with(filters) {\n return SkyDropdownItemHarness.getDataSkyIdPredicate(filters)\n .addOption('text', filters.text, async (harness, text) => {\n const menuItemText = await harness.getText();\n return await HarnessPredicate.stringMatches(menuItemText, text);\n })\n .addOption('ariaRole', filters.ariaRole, async (harness, ariaRole) => {\n const itemAriaRole = await harness.getAriaRole();\n return await HarnessPredicate.stringMatches(itemAriaRole, ariaRole);\n });\n }\n /**\n * Clicks the dropdown item.\n */\n async click() {\n await (await this.#getButton()).click();\n }\n /**\n * Gets the dropdown item role.\n */\n async getAriaRole() {\n return await (await this.#getItem()).getAttribute('role');\n }\n /**\n * Gets the menu item text.\n */\n async getText() {\n return await (await this.#getItem()).text();\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24taXRlbS1oYXJuZXNzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3BvcG92ZXJzL3Rlc3Rpbmcvc3JjL21vZHVsZXMvZHJvcGRvd24vZHJvcGRvd24taXRlbS1oYXJuZXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBSTFEOztHQUVHO0FBQ0gsTUFBTSxPQUFPLHNCQUF1QixTQUFRLG1CQUFtQjtJQUM3RDs7T0FFRzthQUNXLGlCQUFZLEdBQUcsbUJBQW1CLENBQUM7SUFFakQsUUFBUSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsb0JBQW9CLENBQUMsQ0FBQztJQUNqRCxVQUFVLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUV6Qzs7O09BR0c7SUFDSSxNQUFNLENBQUMsSUFBSSxDQUNoQixPQUFzQztRQUV0QyxPQUFPLHNCQUFzQixDQUFDLHFCQUFxQixDQUFDLE9BQU8sQ0FBQzthQUN6RCxTQUFTLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsRUFBRTtZQUN2RCxNQUFNLFlBQVksR0FBRyxNQUFNLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUM3QyxPQUFPLE1BQU0sZ0JBQWdCLENBQUMsYUFBYSxDQUFDLFlBQVksRUFBRSxJQUFJLENBQUMsQ0FBQztRQUNsRSxDQUFDLENBQUM7YUFDRCxTQUFTLENBQUMsVUFBVSxFQUFFLE9BQU8sQ0FBQyxRQUFRLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsRUFBRTtZQUNuRSxNQUFNLFlBQVksR0FBRyxNQUFNLE9BQU8sQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUNqRCxPQUFPLE1BQU0sZ0JBQWdCLENBQUMsYUFBYSxDQUFDLFlBQVksRUFBRSxRQUFRLENBQUMsQ0FBQztRQUN0RSxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRDs7T0FFRztJQUNJLEtBQUssQ0FBQyxLQUFLO1FBQ2hCLE1BQU0sQ0FBQyxNQUFNLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQzFDLENBQUM7SUFFRDs7T0FFRztJQUNJLEtBQUssQ0FBQyxXQUFXO1FBQ3RCLE9BQU8sTUFBTSxDQUFDLE1BQU0sSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzVELENBQUM7SUFFRDs7T0FFRztJQUNJLEtBQUssQ0FBQyxPQUFPO1FBQ2xCLE9BQU8sTUFBTSxDQUFDLE1BQU0sSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDOUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEhhcm5lc3NQcmVkaWNhdGUgfSBmcm9tICdAYW5ndWxhci9jZGsvdGVzdGluZyc7XG5pbXBvcnQgeyBTa3lDb21wb25lbnRIYXJuZXNzIH0gZnJvbSAnQHNreXV4L2NvcmUvdGVzdGluZyc7XG5cbmltcG9ydCB7IFNreURyb3Bkb3duSXRlbUhhcm5lc3NGaWx0ZXJzIH0gZnJvbSAnLi9kcm9wZG93bi1pdGVtLWhhcm5lc3MuZmlsdGVycyc7XG5cbi8qKlxuICogSGFybmVzcyBmb3IgaW50ZXJhY3Rpbmcgd2l0aCBhIGRyb3Bkb3duIGl0ZW0gY29tcG9uZW50IGluIHRlc3RzLlxuICovXG5leHBvcnQgY2xhc3MgU2t5RHJvcGRvd25JdGVtSGFybmVzcyBleHRlbmRzIFNreUNvbXBvbmVudEhhcm5lc3Mge1xuICAvKipcbiAgICogQGludGVybmFsXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGhvc3RTZWxlY3RvciA9ICdza3ktZHJvcGRvd24taXRlbSc7XG5cbiAgI2dldEl0ZW0gPSB0aGlzLmxvY2F0b3JGb3IoJy5za3ktZHJvcGRvd24taXRlbScpO1xuICAjZ2V0QnV0dG9uID0gdGhpcy5sb2NhdG9yRm9yKCdidXR0b24sYScpO1xuXG4gIC8qKlxuICAgKiBHZXRzIGEgYEhhcm5lc3NQcmVkaWNhdGVgIHRoYXQgY2FuIGJlIHVzZWQgdG8gc2VhcmNoIGZvciBhXG4gICAqIGBTa3lEcm9wZG93bkl0ZW1IYXJuZXNzYCB0aGF0IG1lZXRzIGNlcnRhaW4gY3JpdGVyaWEuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHdpdGgoXG4gICAgZmlsdGVyczogU2t5RHJvcGRvd25JdGVtSGFybmVzc0ZpbHRlcnMsXG4gICk6IEhhcm5lc3NQcmVkaWNhdGU8U2t5RHJvcGRvd25JdGVtSGFybmVzcz4ge1xuICAgIHJldHVybiBTa3lEcm9wZG93bkl0ZW1IYXJuZXNzLmdldERhdGFTa3lJZFByZWRpY2F0ZShmaWx0ZXJzKVxuICAgICAgLmFkZE9wdGlvbigndGV4dCcsIGZpbHRlcnMudGV4dCwgYXN5bmMgKGhhcm5lc3MsIHRleHQpID0+IHtcbiAgICAgICAgY29uc3QgbWVudUl0ZW1UZXh0ID0gYXdhaXQgaGFybmVzcy5nZXRUZXh0KCk7XG4gICAgICAgIHJldHVybiBhd2FpdCBIYXJuZXNzUHJlZGljYXRlLnN0cmluZ01hdGNoZXMobWVudUl0ZW1UZXh0LCB0ZXh0KTtcbiAgICAgIH0pXG4gICAgICAuYWRkT3B0aW9uKCdhcmlhUm9sZScsIGZpbHRlcnMuYXJpYVJvbGUsIGFzeW5jIChoYXJuZXNzLCBhcmlhUm9sZSkgPT4ge1xuICAgICAgICBjb25zdCBpdGVtQXJpYVJvbGUgPSBhd2FpdCBoYXJuZXNzLmdldEFyaWFSb2xlKCk7XG4gICAgICAgIHJldHVybiBhd2FpdCBIYXJuZXNzUHJlZGljYXRlLnN0cmluZ01hdGNoZXMoaXRlbUFyaWFSb2xlLCBhcmlhUm9sZSk7XG4gICAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDbGlja3MgdGhlIGRyb3Bkb3duIGl0ZW0uXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgY2xpY2soKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgYXdhaXQgKGF3YWl0IHRoaXMuI2dldEJ1dHRvbigpKS5jbGljaygpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIGRyb3Bkb3duIGl0ZW0gcm9sZS5cbiAgICovXG4gIHB1YmxpYyBhc3luYyBnZXRBcmlhUm9sZSgpOiBQcm9taXNlPHN0cmluZyB8IG51bGw+IHtcbiAgICByZXR1cm4gYXdhaXQgKGF3YWl0IHRoaXMuI2dldEl0ZW0oKSkuZ2V0QXR0cmlidXRlKCdyb2xlJyk7XG4gIH1cblxuICAvKipcbiAgICogR2V0cyB0aGUgbWVudSBpdGVtIHRleHQuXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgZ2V0VGV4dCgpOiBQcm9taXNlPHN0cmluZyB8IG51bGw+IHtcbiAgICByZXR1cm4gYXdhaXQgKGF3YWl0IHRoaXMuI2dldEl0ZW0oKSkudGV4dCgpO1xuICB9XG59XG4iXX0=","import { HarnessPredicate } from '@angular/cdk/testing';\nimport { SkyOverlayHarness, SkyQueryableComponentHarness, } from '@skyux/core/testing';\nimport { SkyDropdownItemHarness } from './dropdown-item-harness';\n/**\n * Harness for interacting with a dropdown menu component in tests.\n */\nexport class SkyDropdownMenuHarness extends SkyQueryableComponentHarness {\n /**\n * @internal\n */\n static { this.hostSelector = '.sky-dropdown-menu'; }\n #getOverlay = this.documentRootLocatorFactory().locatorForOptional(SkyOverlayHarness);\n /**\n * Gets a `HarnessPredicate` that can be used to search for a\n * `SkyDropdownMenuHarness` that meets certain criteria.\n */\n static with(filters) {\n return new HarnessPredicate(SkyDropdownMenuHarness, filters);\n }\n /**\n * Clicks out of the dropdown menu.\n */\n async clickOut() {\n await (await (await this.#getOverlay())?.host())?.click();\n }\n /**\n * Gets the `aria-labelledby` value.\n */\n async getAriaLabelledBy() {\n return await (await this.host()).getAttribute('aria-labelledby');\n }\n /**\n * Gets the dropdown menu role.\n */\n async getAriaRole() {\n return await (await this.host()).getAttribute('role');\n }\n /**\n * Gets a specific dropdown menu item based on the filter criteria.\n * @param filter The filter criteria.\n */\n async getItem(filter) {\n return await this.locatorFor(SkyDropdownItemHarness.with(filter))();\n }\n /**\n * Gets an array of dropdown menu items based on the filter criteria.\n * If no filter is provided, returns all dropdown menu items.\n * @param filters The optional filter criteria.\n */\n async getItems(filters) {\n return await this.locatorForAll(SkyDropdownItemHarness.with(filters || {}))();\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24tbWVudS1oYXJuZXNzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3BvcG92ZXJzL3Rlc3Rpbmcvc3JjL21vZHVsZXMvZHJvcGRvd24vZHJvcGRvd24tbWVudS1oYXJuZXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3hELE9BQU8sRUFDTCxpQkFBaUIsRUFDakIsNEJBQTRCLEdBQzdCLE1BQU0scUJBQXFCLENBQUM7QUFFN0IsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFJakU7O0dBRUc7QUFDSCxNQUFNLE9BQU8sc0JBQXVCLFNBQVEsNEJBQTRCO0lBQ3RFOztPQUVHO2FBQ1csaUJBQVksR0FBRyxvQkFBb0IsQ0FBQztJQUVsRCxXQUFXLEdBQ1QsSUFBSSxDQUFDLDBCQUEwQixFQUFFLENBQUMsa0JBQWtCLENBQUMsaUJBQWlCLENBQUMsQ0FBQztJQUUxRTs7O09BR0c7SUFDSSxNQUFNLENBQUMsSUFBSSxDQUNoQixPQUFzQztRQUV0QyxPQUFPLElBQUksZ0JBQWdCLENBQUMsc0JBQXNCLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDL0QsQ0FBQztJQUVEOztPQUVHO0lBQ0ksS0FBSyxDQUFDLFFBQVE7UUFDbkIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUM7SUFDNUQsQ0FBQztJQUVEOztPQUVHO0lBQ0ksS0FBSyxDQUFDLGlCQUFpQjtRQUM1QixPQUFPLE1BQU0sQ0FBQyxNQUFNLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLFlBQVksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBQ25FLENBQUM7SUFFRDs7T0FFRztJQUNJLEtBQUssQ0FBQyxXQUFXO1FBQ3RCLE9BQU8sTUFBTSxDQUFDLE1BQU0sSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3hELENBQUM7SUFFRDs7O09BR0c7SUFDSSxLQUFLLENBQUMsT0FBTyxDQUNsQixNQUFxQztRQUVyQyxPQUFPLE1BQU0sSUFBSSxDQUFDLFVBQVUsQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDO0lBQ3RFLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksS0FBSyxDQUFDLFFBQVEsQ0FDbkIsT0FBdUM7UUFFdkMsT0FBTyxNQUFNLElBQUksQ0FBQyxhQUFhLENBQzdCLHNCQUFzQixDQUFDLElBQUksQ0FBQyxPQUFPLElBQUksRUFBRSxDQUFDLENBQzNDLEVBQUUsQ0FBQztJQUNOLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIYXJuZXNzUHJlZGljYXRlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3Rlc3RpbmcnO1xuaW1wb3J0IHtcbiAgU2t5T3ZlcmxheUhhcm5lc3MsXG4gIFNreVF1ZXJ5YWJsZUNvbXBvbmVudEhhcm5lc3MsXG59IGZyb20gJ0Bza3l1eC9jb3JlL3Rlc3RpbmcnO1xuXG5pbXBvcnQgeyBTa3lEcm9wZG93bkl0ZW1IYXJuZXNzIH0gZnJvbSAnLi9kcm9wZG93bi1pdGVtLWhhcm5lc3MnO1xuaW1wb3J0IHsgU2t5RHJvcGRvd25JdGVtSGFybmVzc0ZpbHRlcnMgfSBmcm9tICcuL2Ryb3Bkb3duLWl0ZW0taGFybmVzcy5maWx0ZXJzJztcbmltcG9ydCB7IFNreURyb3Bkb3duTWVudUhhcm5lc3NGaWx0ZXJzIH0gZnJvbSAnLi9kcm9wZG93bi1tZW51LWhhcm5lc3MuZmlsdGVycyc7XG5cbi8qKlxuICogSGFybmVzcyBmb3IgaW50ZXJhY3Rpbmcgd2l0aCBhIGRyb3Bkb3duIG1lbnUgY29tcG9uZW50IGluIHRlc3RzLlxuICovXG5leHBvcnQgY2xhc3MgU2t5RHJvcGRvd25NZW51SGFybmVzcyBleHRlbmRzIFNreVF1ZXJ5YWJsZUNvbXBvbmVudEhhcm5lc3Mge1xuICAvKipcbiAgICogQGludGVybmFsXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGhvc3RTZWxlY3RvciA9ICcuc2t5LWRyb3Bkb3duLW1lbnUnO1xuXG4gICNnZXRPdmVybGF5ID1cbiAgICB0aGlzLmRvY3VtZW50Um9vdExvY2F0b3JGYWN0b3J5KCkubG9jYXRvckZvck9wdGlvbmFsKFNreU92ZXJsYXlIYXJuZXNzKTtcblxuICAvKipcbiAgICogR2V0cyBhIGBIYXJuZXNzUHJlZGljYXRlYCB0aGF0IGNhbiBiZSB1c2VkIHRvIHNlYXJjaCBmb3IgYVxuICAgKiBgU2t5RHJvcGRvd25NZW51SGFybmVzc2AgdGhhdCBtZWV0cyBjZXJ0YWluIGNyaXRlcmlhLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyB3aXRoKFxuICAgIGZpbHRlcnM6IFNreURyb3Bkb3duTWVudUhhcm5lc3NGaWx0ZXJzLFxuICApOiBIYXJuZXNzUHJlZGljYXRlPFNreURyb3Bkb3duTWVudUhhcm5lc3M+IHtcbiAgICByZXR1cm4gbmV3IEhhcm5lc3NQcmVkaWNhdGUoU2t5RHJvcGRvd25NZW51SGFybmVzcywgZmlsdGVycyk7XG4gIH1cblxuICAvKipcbiAgICogQ2xpY2tzIG91dCBvZiB0aGUgZHJvcGRvd24gbWVudS5cbiAgICovXG4gIHB1YmxpYyBhc3luYyBjbGlja091dCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBhd2FpdCAoYXdhaXQgKGF3YWl0IHRoaXMuI2dldE92ZXJsYXkoKSk/Lmhvc3QoKSk/LmNsaWNrKCk7XG4gIH1cblxuICAvKipcbiAgICogR2V0cyB0aGUgYGFyaWEtbGFiZWxsZWRieWAgdmFsdWUuXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgZ2V0QXJpYUxhYmVsbGVkQnkoKTogUHJvbWlzZTxzdHJpbmcgfCBudWxsPiB7XG4gICAgcmV0dXJuIGF3YWl0IChhd2FpdCB0aGlzLmhvc3QoKSkuZ2V0QXR0cmlidXRlKCdhcmlhLWxhYmVsbGVkYnknKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSBkcm9wZG93biBtZW51IHJvbGUuXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgZ2V0QXJpYVJvbGUoKTogUHJvbWlzZTxzdHJpbmcgfCBudWxsPiB7XG4gICAgcmV0dXJuIGF3YWl0IChhd2FpdCB0aGlzLmhvc3QoKSkuZ2V0QXR0cmlidXRlKCdyb2xlJyk7XG4gIH1cblxuICAvKipcbiAgICogR2V0cyBhIHNwZWNpZmljIGRyb3Bkb3duIG1lbnUgaXRlbSBiYXNlZCBvbiB0aGUgZmlsdGVyIGNyaXRlcmlhLlxuICAgKiBAcGFyYW0gZmlsdGVyIFRoZSBmaWx0ZXIgY3JpdGVyaWEuXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgZ2V0SXRlbShcbiAgICBmaWx0ZXI6IFNreURyb3Bkb3duSXRlbUhhcm5lc3NGaWx0ZXJzLFxuICApOiBQcm9taXNlPFNreURyb3Bkb3duSXRlbUhhcm5lc3M+IHtcbiAgICByZXR1cm4gYXdhaXQgdGhpcy5sb2NhdG9yRm9yKFNreURyb3Bkb3duSXRlbUhhcm5lc3Mud2l0aChmaWx0ZXIpKSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgYW4gYXJyYXkgb2YgZHJvcGRvd24gbWVudSBpdGVtcyBiYXNlZCBvbiB0aGUgZmlsdGVyIGNyaXRlcmlhLlxuICAgKiBJZiBubyBmaWx0ZXIgaXMgcHJvdmlkZWQsIHJldHVybnMgYWxsIGRyb3Bkb3duIG1lbnUgaXRlbXMuXG4gICAqIEBwYXJhbSBmaWx0ZXJzIFRoZSBvcHRpb25hbCBmaWx0ZXIgY3JpdGVyaWEuXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgZ2V0SXRlbXMoXG4gICAgZmlsdGVycz86IFNreURyb3Bkb3duSXRlbUhhcm5lc3NGaWx0ZXJzLFxuICApOiBQcm9taXNlPFNreURyb3Bkb3duSXRlbUhhcm5lc3NbXT4ge1xuICAgIHJldHVybiBhd2FpdCB0aGlzLmxvY2F0b3JGb3JBbGwoXG4gICAgICBTa3lEcm9wZG93bkl0ZW1IYXJuZXNzLndpdGgoZmlsdGVycyB8fCB7fSksXG4gICAgKSgpO1xuICB9XG59XG4iXX0=","import { SkyComponentHarness } from '@skyux/core/testing';\nimport { SkyDropdownMenuHarness } from './dropdown-menu-harness';\n/**\n * Harness for interacting with a dropdown component in tests.\n */\nexport class SkyDropdownHarness extends SkyComponentHarness {\n /**\n * @internal\n */\n static { this.hostSelector = 'sky-dropdown'; }\n #documentRootLocator = this.documentRootLocatorFactory();\n #getDropdownButton = this.locatorFor(\n // Default trigger button\n '.sky-dropdown-button', \n // Custom trigger button\n '[skyDropdownTrigger]');\n /**\n * Gets a `HarnessPredicate` that can be used to search for a\n * `SkyDropdownHarness` that meets certain criteria.\n */\n static with(filters) {\n return SkyDropdownHarness.getDataSkyIdPredicate(filters);\n }\n /**\n * Clicks the dropdown button.\n */\n async clickDropdownButton() {\n await (await this.#getDropdownButton()).click();\n }\n /**\n * Gets the aria-label value.\n */\n async getAriaLabel() {\n return await (await this.#getDropdownButton()).getAttribute('aria-label');\n }\n /**\n * Gets the dropdown button style.\n */\n async getButtonStyle() {\n const button = await this.#getDropdownButton();\n if (await button.hasClass('sky-btn-primary')) {\n return 'primary';\n }\n if (await button.hasClass('sky-btn-link')) {\n return 'link';\n }\n return 'default';\n }\n /**\n * Gets the dropdown button type.\n */\n async getButtonType() {\n const button = await this.#getDropdownButton();\n if (await button.hasClass('sky-dropdown-button-type-context-menu')) {\n return 'context-menu';\n }\n if (await button.hasClass('sky-dropdown-button-type-tab')) {\n return 'tab';\n }\n return 'select';\n }\n /**\n * Gets the dropdown menu component.\n */\n async getDropdownMenu() {\n const dropdownMenuId = await this.#getAriaControls();\n if (!dropdownMenuId) {\n throw new Error('Unable to retrieve dropdown menu harness because dropdown is closed.');\n }\n return await this.#documentRootLocator.locatorFor(SkyDropdownMenuHarness.with({ selector: `#${dropdownMenuId}` }))();\n }\n /**\n * Gets the hover tooltip text.\n */\n async getTitle() {\n return await (await this.#getDropdownButton()).getAttribute('title');\n }\n /**\n * Gets whether the dropdown is disabled.\n */\n async isDisabled() {\n const button = await this.#getDropdownButton();\n return (await button.getProperty('disabled')) ? true : false;\n }\n /**\n * Gets whether the dropdown menu is open.\n */\n async isOpen() {\n const ariaExpanded = await (await this.#getDropdownButton()).getAttribute('aria-expanded');\n if (ariaExpanded === 'true') {\n return true;\n }\n return false;\n }\n /**\n * Gets the element ID of the dropdown menu that the dropdown button controls.\n */\n async #getAriaControls() {\n return await (await this.#getDropdownButton()).getAttribute('aria-controls');\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24taGFybmVzcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9wb3BvdmVycy90ZXN0aW5nL3NyYy9tb2R1bGVzL2Ryb3Bkb3duL2Ryb3Bkb3duLWhhcm5lc3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFHMUQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFakU7O0dBRUc7QUFDSCxNQUFNLE9BQU8sa0JBQW1CLFNBQVEsbUJBQW1CO0lBQ3pEOztPQUVHO2FBQ1csaUJBQVksR0FBRyxjQUFjLENBQUM7SUFFNUMsb0JBQW9CLEdBQUcsSUFBSSxDQUFDLDBCQUEwQixFQUFFLENBQUM7SUFFekQsa0JBQWtCLEdBQUcsSUFBSSxDQUFDLFVBQVU7SUFDbEMseUJBQXlCO0lBQ3pCLHNCQUFzQjtJQUN0Qix3QkFBd0I7SUFDeEIsc0JBQXNCLENBQ3ZCLENBQUM7SUFFRjs7O09BR0c7SUFDSSxNQUFNLENBQUMsSUFBSSxDQUNoQixPQUFrQztRQUVsQyxPQUFPLGtCQUFrQixDQUFDLHFCQUFxQixDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzNELENBQUM7SUFFRDs7T0FFRztJQUNJLEtBQUssQ0FBQyxtQkFBbUI7UUFDOUIsTUFBTSxDQUFDLE1BQU0sSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUNsRCxDQUFDO0lBRUQ7O09BRUc7SUFDSSxLQUFLLENBQUMsWUFBWTtRQUN2QixPQUFPLE1BQU0sQ0FBQyxNQUFNLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDLENBQUMsWUFBWSxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQzVFLENBQUM7SUFFRDs7T0FFRztJQUNJLEtBQUssQ0FBQyxjQUFjO1FBQ3pCLE1BQU0sTUFBTSxHQUFHLE1BQU0sSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7UUFFL0MsSUFBSSxNQUFNLE1BQU0sQ0FBQyxRQUFRLENBQUMsaUJBQWlCLENBQUMsRUFBRSxDQUFDO1lBQzdDLE9BQU8sU0FBUyxDQUFDO1FBQ25CLENBQUM7UUFFRCxJQUFJLE1BQU0sTUFBTSxDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUMsRUFBRSxDQUFDO1lBQzFDLE9BQU8sTUFBTSxDQUFDO1FBQ2hCLENBQUM7UUFFRCxPQUFPLFNBQVMsQ0FBQztJQUNuQixDQUFDO0lBRUQ7O09BRUc7SUFDSSxLQUFLLENBQUMsYUFBYTtRQUN4QixNQUFNLE1BQU0sR0FBRyxNQUFNLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1FBRS9DLElBQUksTUFBTSxNQUFNLENBQUMsUUFBUSxDQUFDLHVDQUF1QyxDQUFDLEVBQUUsQ0FBQztZQUNuRSxPQUFPLGNBQWMsQ0FBQztRQUN4QixDQUFDO1FBRUQsSUFBSSxNQUFNLE1BQU0sQ0FBQyxRQUFRLENBQUMsOEJBQThCLENBQUMsRUFBRSxDQUFDO1lBQzFELE9BQU8sS0FBSyxDQUFDO1FBQ2YsQ0FBQztRQUVELE9BQU8sUUFBUSxDQUFDO0lBQ2xCLENBQUM7SUFFRDs7T0FFRztJQUNJLEtBQUssQ0FBQyxlQUFlO1FBQzFCLE1BQU0sY0FBYyxHQUFHLE1BQU0sSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7UUFFckQsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQ3BCLE1BQU0sSUFBSSxLQUFLLENBQ2Isc0VBQXNFLENBQ3ZFLENBQUM7UUFDSixDQUFDO1FBRUQsT0FBTyxNQUFNLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxVQUFVLENBQy9DLHNCQUFzQixDQUFDLElBQUksQ0FBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLGNBQWMsRUFBRSxFQUFFLENBQUMsQ0FDaEUsRUFBRSxDQUFDO0lBQ04sQ0FBQztJQUVEOztPQUVHO0lBQ0ksS0FBSyxDQUFDLFFBQVE7UUFDbkIsT0FBTyxNQUFNLENBQUMsTUFBTSxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQyxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUN2RSxDQUFDO0lBRUQ7O09BRUc7SUFDSSxLQUFLLENBQUMsVUFBVTtRQUNyQixNQUFNLE1BQU0sR0FBRyxNQUFNLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1FBRS9DLE9BQU8sQ0FBQyxNQUFNLE1BQU0sQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7SUFDL0QsQ0FBQztJQUVEOztPQUVHO0lBQ0ksS0FBSyxDQUFDLE1BQU07UUFDakIsTUFBTSxZQUFZLEdBQUcsTUFBTSxDQUN6QixNQUFNLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUNoQyxDQUFDLFlBQVksQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUVoQyxJQUFJLFlBQVksS0FBSyxNQUFNLEVBQUUsQ0FBQztZQUM1QixPQUFPLElBQUksQ0FBQztRQUNkLENBQUM7UUFFRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFRDs7T0FFRztJQUNILEtBQUssQ0FBQyxnQkFBZ0I7UUFDcEIsT0FBTyxNQUFNLENBQ1gsTUFBTSxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FDaEMsQ0FBQyxZQUFZLENBQUMsZUFBZSxDQUFDLENBQUM7SUFDbEMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEhhcm5lc3NQcmVkaWNhdGUgfSBmcm9tICdAYW5ndWxhci9jZGsvdGVzdGluZyc7XG5pbXBvcnQgeyBTa3lDb21wb25lbnRIYXJuZXNzIH0gZnJvbSAnQHNreXV4L2NvcmUvdGVzdGluZyc7XG5cbmltcG9ydCB7IFNreURyb3Bkb3duSGFybmVzc0ZpbHRlcnMgfSBmcm9tICcuL2Ryb3Bkb3duLWhhcm5lc3MuZmlsdGVycyc7XG5pbXBvcnQgeyBTa3lEcm9wZG93bk1lbnVIYXJuZXNzIH0gZnJvbSAnLi9kcm9wZG93bi1tZW51LWhhcm5lc3MnO1xuXG4vKipcbiAqIEhhcm5lc3MgZm9yIGludGVyYWN0aW5nIHdpdGggYSBkcm9wZG93biBjb21wb25lbnQgaW4gdGVzdHMuXG4gKi9cbmV4cG9ydCBjbGFzcyBTa3lEcm9wZG93bkhhcm5lc3MgZXh0ZW5kcyBTa3lDb21wb25lbnRIYXJuZXNzIHtcbiAgLyoqXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBob3N0U2VsZWN0b3IgPSAnc2t5LWRyb3Bkb3duJztcblxuICAjZG9jdW1lbnRSb290TG9jYXRvciA9IHRoaXMuZG9jdW1lbnRSb290TG9jYXRvckZhY3RvcnkoKTtcblxuICAjZ2V0RHJvcGRvd25CdXR0b24gPSB0aGlzLmxvY2F0b3JGb3IoXG4gICAgLy8gRGVmYXVsdCB0cmlnZ2VyIGJ1dHRvblxuICAgICcuc2t5LWRyb3Bkb3duLWJ1dHRvbicsXG4gICAgLy8gQ3VzdG9tIHRyaWdnZXIgYnV0dG9uXG4gICAgJ1tza3lEcm9wZG93blRyaWdnZXJdJyxcbiAgKTtcblxuICAvKipcbiAgICogR2V0cyBhIGBIYXJuZXNzUHJlZGljYXRlYCB0aGF0IGNhbiBiZSB1c2VkIHRvIHNlYXJjaCBmb3IgYVxuICAgKiBgU2t5RHJvcGRvd25IYXJuZXNzYCB0aGF0IG1lZXRzIGNlcnRhaW4gY3JpdGVyaWEuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHdpdGgoXG4gICAgZmlsdGVyczogU2t5RHJvcGRvd25IYXJuZXNzRmlsdGVycyxcbiAgKTogSGFybmVzc1ByZWRpY2F0ZTxTa3lEcm9wZG93bkhhcm5lc3M+IHtcbiAgICByZXR1cm4gU2t5RHJvcGRvd25IYXJuZXNzLmdldERhdGFTa3lJZFByZWRpY2F0ZShmaWx0ZXJzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDbGlja3MgdGhlIGRyb3Bkb3duIGJ1dHRvbi5cbiAgICovXG4gIHB1YmxpYyBhc3luYyBjbGlja0Ryb3Bkb3duQnV0dG9uKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGF3YWl0IChhd2FpdCB0aGlzLiNnZXREcm9wZG93bkJ1dHRvbigpKS5jbGljaygpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIGFyaWEtbGFiZWwgdmFsdWUuXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgZ2V0QXJpYUxhYmVsKCk6IFByb21pc2U8c3RyaW5nIHwgbnVsbD4ge1xuICAgIHJldHVybiBhd2FpdCAoYXdhaXQgdGhpcy4jZ2V0RHJvcGRvd25CdXR0b24oKSkuZ2V0QXR0cmlidXRlKCdhcmlhLWxhYmVsJyk7XG4gIH1cblxuICAvKipcbiAgICogR2V0cyB0aGUgZHJvcGRvd24gYnV0dG9uIHN0eWxlLlxuICAgKi9cbiAgcHVibGljIGFzeW5jIGdldEJ1dHRvblN0eWxlKCk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgY29uc3QgYnV0dG9uID0gYXdhaXQgdGhpcy4jZ2V0RHJvcGRvd25CdXR0b24oKTtcblxuICAgIGlmIChhd2FpdCBidXR0b24uaGFzQ2xhc3MoJ3NreS1idG4tcHJpbWFyeScpKSB7XG4gICAgICByZXR1cm4gJ3ByaW1hcnknO1xuICAgIH1cblxuICAgIGlmIChhd2FpdCBidXR0b24uaGFzQ2xhc3MoJ3NreS1idG4tbGluaycpKSB7XG4gICAgICByZXR1cm4gJ2xpbmsnO1xuICAgIH1cblxuICAgIHJldHVybiAnZGVmYXVsdCc7XG4gIH1cblxuICAvKipcbiAgICogR2V0cyB0aGUgZHJvcGRvd24gYnV0dG9uIHR5cGUuXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgZ2V0QnV0dG9uVHlwZSgpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIGNvbnN0IGJ1dHRvbiA9IGF3YWl0IHRoaXMuI2dldERyb3Bkb3duQnV0dG9uKCk7XG5cbiAgICBpZiAoYXdhaXQgYnV0dG9uLmhhc0NsYXNzKCdza3ktZHJvcGRvd24tYnV0dG9uLXR5cGUtY29udGV4dC1tZW51JykpIHtcbiAgICAgIHJldHVybiAnY29udGV4dC1tZW51JztcbiAgICB9XG5cbiAgICBpZiAoYXdhaXQgYnV0dG9uLmhhc0NsYXNzKCdza3ktZHJvcGRvd24tYnV0dG9uLXR5cGUtdGFiJykpIHtcbiAgICAgIHJldHVybiAndGFiJztcbiAgICB9XG5cbiAgICByZXR1cm4gJ3NlbGVjdCc7XG4gIH1cblxuICAvKipcbiAgICogR2V0cyB0aGUgZHJvcGRvd24gbWVudSBjb21wb25lbnQuXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgZ2V0RHJvcGRvd25NZW51KCk6IFByb21pc2U8U2t5RHJvcGRvd25NZW51SGFybmVzcz4ge1xuICAgIGNvbnN0IGRyb3Bkb3duTWVudUlkID0gYXdhaXQgdGhpcy4jZ2V0QXJpYUNvbnRyb2xzKCk7XG5cbiAgICBpZiAoIWRyb3Bkb3duTWVudUlkKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICdVbmFibGUgdG8gcmV0cmlldmUgZHJvcGRvd24gbWVudSBoYXJuZXNzIGJlY2F1c2UgZHJvcGRvd24gaXMgY2xvc2VkLicsXG4gICAgICApO1xuICAgIH1cblxuICAgIHJldHVybiBhd2FpdCB0aGlzLiNkb2N1bWVudFJvb3RMb2NhdG9yLmxvY2F0b3JGb3IoXG4gICAgICBTa3lEcm9wZG93bk1lbnVIYXJuZXNzLndpdGgoeyBzZWxlY3RvcjogYCMke2Ryb3Bkb3duTWVudUlkfWAgfSksXG4gICAgKSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIGhvdmVyIHRvb2x0aXAgdGV4dC5cbiAgICovXG4gIHB1YmxpYyBhc3luYyBnZXRUaXRsZSgpOiBQcm9taXNlPHN0cmluZyB8IG51bGw+IHtcbiAgICByZXR1cm4gYXdhaXQgKGF3YWl0IHRoaXMuI2dldERyb3Bkb3duQnV0dG9uKCkpLmdldEF0dHJpYnV0ZSgndGl0bGUnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIHdoZXRoZXIgdGhlIGRyb3Bkb3duIGlzIGRpc2FibGVkLlxuICAgKi9cbiAgcHVibGljIGFzeW5jIGlzRGlzYWJsZWQoKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgY29uc3QgYnV0dG9uID0gYXdhaXQgdGhpcy4jZ2V0RHJvcGRvd25CdXR0b24oKTtcblxuICAgIHJldHVybiAoYXdhaXQgYnV0dG9uLmdldFByb3BlcnR5KCdkaXNhYmxlZCcpKSA/IHRydWUgOiBmYWxzZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIHdoZXRoZXIgdGhlIGRyb3Bkb3duIG1lbnUgaXMgb3Blbi5cbiAgICovXG4gIHB1YmxpYyBhc3luYyBpc09wZW4oKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgY29uc3QgYXJpYUV4cGFuZGVkID0gYXdhaXQgKFxuICAgICAgYXdhaXQgdGhpcy4jZ2V0RHJvcGRvd25CdXR0b24oKVxuICAgICkuZ2V0QXR0cmlidXRlKCdhcmlhLWV4cGFuZGVkJyk7XG5cbiAgICBpZiAoYXJpYUV4cGFuZGVkID09PSAndHJ1ZScpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSBlbGVtZW50IElEIG9mIHRoZSBkcm9wZG93biBtZW51IHRoYXQgdGhlIGRyb3Bkb3duIGJ1dHRvbiBjb250cm9scy5cbiAgICovXG4gIGFzeW5jICNnZXRBcmlhQ29udHJvbHMoKTogUHJvbWlzZTxzdHJpbmcgfCBudWxsPiB7XG4gICAgcmV0dXJuIGF3YWl0IChcbiAgICAgIGF3YWl0IHRoaXMuI2dldERyb3Bkb3duQnV0dG9uKClcbiAgICApLmdldEF0dHJpYnV0ZSgnYXJpYS1jb250cm9scycpO1xuICB9XG59XG4iXX0=","import { SkyQueryableComponentHarness } from '@skyux/core/testing';\n/**\n * Harness for interacting with a popover body in tests.\n * @internal\n */\nexport class SkyPopoverBodyHarness extends SkyQueryableComponentHarness {\n /**\n * @internal\n */\n static { this.hostSelector = '.sky-popover-body'; }\n /**\n * Gets the text of the popover content body.\n */\n async getText() {\n return await (await this.host()).text();\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9wb3Zlci1ib2R5LWhhcm5lc3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvcG9wb3ZlcnMvdGVzdGluZy9zcmMvbW9kdWxlcy9wb3BvdmVyL3BvcG92ZXItYm9keS1oYXJuZXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRW5FOzs7R0FHRztBQUNILE1BQU0sT0FBTyxxQkFBc0IsU0FBUSw0QkFBNEI7SUFDckU7O09BRUc7YUFDVyxpQkFBWSxHQUFHLG1CQUFtQixDQUFDO0lBRWpEOztPQUVHO0lBQ0ksS0FBSyxDQUFDLE9BQU87UUFDbEIsT0FBTyxNQUFNLENBQUMsTUFBTSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUMxQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU2t5UXVlcnlhYmxlQ29tcG9uZW50SGFybmVzcyB9IGZyb20gJ0Bza3l1eC9jb3JlL3Rlc3RpbmcnO1xuXG4vKipcbiAqIEhhcm5lc3MgZm9yIGludGVyYWN0aW5nIHdpdGggYSBwb3BvdmVyIGJvZHkgaW4gdGVzdHMuXG4gKiBAaW50ZXJuYWxcbiAqL1xuZXhwb3J0IGNsYXNzIFNreVBvcG92ZXJCb2R5SGFybmVzcyBleHRlbmRzIFNreVF1ZXJ5YWJsZUNvbXBvbmVudEhhcm5lc3Mge1xuICAvKipcbiAgICogQGludGVybmFsXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGhvc3RTZWxlY3RvciA9ICcuc2t5LXBvcG92ZXItYm9keSc7XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIHRleHQgb2YgdGhlIHBvcG92ZXIgY29udGVudCBib2R5LlxuICAgKi9cbiAgcHVibGljIGFzeW5jIGdldFRleHQoKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICByZXR1cm4gYXdhaXQgKGF3YWl0IHRoaXMuaG9zdCgpKS50ZXh0KCk7XG4gIH1cbn1cbiJdfQ==","import { HarnessPredicate } from '@angular/cdk/testing';\nimport { SkyOverlayHarness, SkyQueryableComponentHarness, } from '@skyux/core/testing';\nimport { SkyPopoverBodyHarness } from './popover-body-harness';\n/**\n * Harness for interacting with a popover content component in tests.\n */\nexport class SkyPopoverContentHarness extends SkyQueryableComponentHarness {\n /**\n * @internal\n */\n static { this.hostSelector = 'sky-popover-content'; }\n #getBody = this.locatorFor(SkyPopoverBodyHarness);\n #getContainer = this.locatorFor('.sky-popover-container');\n #getOverlay = this.documentRootLocatorFactory().locatorForOptional(SkyOverlayHarness);\n #getTitle = this.locatorForOptional('.sky-popover-title');\n /**\n * Gets a `HarnessPredicate` that can be used to search for a\n * `SkyPopoverContentHarness` that meets certain criteria.\n */\n static with(filters) {\n return new HarnessPredicate(SkyPopoverContentHarness, filters);\n }\n /**\n * Gets the placement of the popover content.\n */\n async getPlacement() {\n const container = await this.#getContainer();\n for (const placement of ['left', 'right', 'above', 'below']) {\n if (await container.hasClass('sky-popover-placement-' + placement)) {\n return placement;\n }\n }\n // This should never happen because the placement input is always defined by the parent.\n /* istanbul ignore next */\n return '';\n }\n /**\n * Gets the alignment of the popover content.\n */\n async getAlignment() {\n const container = await this.#getContainer();\n for (const alignment of ['left', 'center', 'right']) {\n if (await container.hasClass('sky-popover-alignment-' + alignment)) {\n return alignment;\n }\n }\n // This should never happen because the alignment input is always defined by the parent.\n /* istanbul ignore next */\n return '';\n }\n /**\n * Gets the text of the popover content title.\n */\n async getTitleText() {\n return await (await this.#getTitle())?.text();\n }\n /**\n * Gets the text of the popover content body.\n */\n async getBodyText() {\n return await (await this.#getBody()).getText();\n }\n /**\n * Clicks out of the popover.\n */\n async clickOut() {\n await (await (await this.#getOverlay())?.host())?.click();\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9wb3Zlci1jb250ZW50LWhhcm5lc3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvcG9wb3ZlcnMvdGVzdGluZy9zcmMvbW9kdWxlcy9wb3BvdmVyL3BvcG92ZXItY29udGVudC1oYXJuZXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3hELE9BQU8sRUFDTCxpQkFBaUIsRUFDakIsNEJBQTRCLEdBQzdCLE1BQU0scUJBQXFCLENBQUM7QUFFN0IsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFHL0Q7O0dBRUc7QUFDSCxNQUFNLE9BQU8sd0JBQXlCLFNBQVEsNEJBQTRCO0lBQ3hFOztPQUVHO2FBQ1csaUJBQVksR0FBRyxxQkFBcUIsQ0FBQztJQUVuRCxRQUFRLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO0lBQ2xELGFBQWEsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLHdCQUF3QixDQUFDLENBQUM7SUFDMUQsV0FBVyxHQUNULElBQUksQ0FBQywwQkFBMEIsRUFBRSxDQUFDLGtCQUFrQixDQUFDLGlCQUFpQixDQUFDLENBQUM7SUFDMUUsU0FBUyxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO0lBRTFEOzs7T0FHRztJQUNJLE1BQU0sQ0FBQyxJQUFJLENBQ2hCLE9BQXdDO1FBRXhDLE9BQU8sSUFBSSxnQkFBZ0IsQ0FBQyx3QkFBd0IsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUNqRSxDQUFDO0lBRUQ7O09BRUc7SUFDSSxLQUFLLENBQUMsWUFBWTtRQUN2QixNQUFNLFNBQVMsR0FBRyxNQUFNLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUU3QyxLQUFLLE1BQU0sU0FBUyxJQUFJLENBQUMsTUFBTSxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxDQUFDLEVBQUUsQ0FBQztZQUM1RCxJQUFJLE1BQU0sU0FBUyxDQUFDLFFBQVEsQ0FBQyx3QkFBd0IsR0FBRyxTQUFTLENBQUMsRUFBRSxDQUFDO2dCQUNuRSxPQUFPLFNBQVMsQ0FBQztZQUNuQixDQUFDO1FBQ0gsQ0FBQztRQUVELHdGQUF3RjtRQUN4RiwwQkFBMEI7UUFDMUIsT0FBTyxFQUFFLENBQUM7SUFDWixDQUFDO0lBRUQ7O09BRUc7SUFDSSxLQUFLLENBQUMsWUFBWTtRQUN2QixNQUFNLFNBQVMsR0FBRyxNQUFNLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUU3QyxLQUFLLE1BQU0sU0FBUyxJQUFJLENBQUMsTUFBTSxFQUFFLFFBQVEsRUFBRSxPQUFPLENBQUMsRUFBRSxDQUFDO1lBQ3BELElBQUksTUFBTSxTQUFTLENBQUMsUUFBUSxDQUFDLHdCQUF3QixHQUFHLFNBQVMsQ0FBQyxFQUFFLENBQUM7Z0JBQ25FLE9BQU8sU0FBUyxDQUFDO1lBQ25CLENBQUM7UUFDSCxDQUFDO1FBRUQsd0ZBQXdGO1FBQ3hGLDBCQUEwQjtRQUMxQixPQUFPLEVBQUUsQ0FBQztJQUNaLENBQUM7SUFFRDs7T0FFRztJQUNJLEtBQUssQ0FBQyxZQUFZO1FBQ3ZCLE9BQU8sTUFBTSxDQUFDLE1BQU0sSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUM7SUFDaEQsQ0FBQztJQUVEOztPQUVHO0lBQ0ksS0FBSyxDQUFDLFdBQVc7UUFDdEIsT0FBTyxNQUFNLENBQUMsTUFBTSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUNqRCxDQUFDO0lBRUQ7O09BRUc7SUFDSSxLQUFLLENBQUMsUUFBUTtRQUNuQixNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQztJQUM1RCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSGFybmVzc1ByZWRpY2F0ZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay90ZXN0aW5nJztcbmltcG9ydCB7XG4gIFNreU92ZXJsYXlIYXJuZXNzLFxuICBTa3lRdWVyeWFibGVDb21wb25lbnRIYXJuZXNzLFxufSBmcm9tICdAc2t5dXgvY29yZS90ZXN0aW5nJztcblxuaW1wb3J0IHsgU2t5UG9wb3ZlckJvZHlIYXJuZXNzIH0gZnJvbSAnLi9wb3BvdmVyLWJvZHktaGFybmVzcyc7XG5pbXBvcnQgeyBTa3lQb3BvdmVyQ29udGVudEhhcm5lc3NGaWx0ZXJzIH0gZnJvbSAnLi9wb3BvdmVyLWNvbnRlbnQtaGFybmVzcy1maWx0ZXJzJztcblxuLyoqXG4gKiBIYXJuZXNzIGZvciBpbnRlcmFjdGluZyB3aXRoIGEgcG9wb3ZlciBjb250ZW50IGNvbXBvbmVudCBpbiB0ZXN0cy5cbiAqL1xuZXhwb3J0IGNsYXNzIFNreVBvcG92ZXJDb250ZW50SGFybmVzcyBleHRlbmRzIFNreVF1ZXJ5YWJsZUNvbXBvbmVudEhhcm5lc3Mge1xuICAvKipcbiAgICogQGludGVybmFsXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGhvc3RTZWxlY3RvciA9ICdza3ktcG9wb3Zlci1jb250ZW50JztcblxuICAjZ2V0Qm9keSA9IHRoaXMubG9jYXRvckZvcihTa3lQb3BvdmVyQm9keUhhcm5lc3MpO1xuICAjZ2V0Q29udGFpbmVyID0gdGhpcy5sb2NhdG9yRm9yKCcuc2t5LXBvcG92ZXItY29udGFpbmVyJyk7XG4gICNnZXRPdmVybGF5ID1cbiAgICB0aGlzLmRvY3VtZW50Um9vdExvY2F0b3JGYWN0b3J5KCkubG9jYXRvckZvck9wdGlvbmFsKFNreU92ZXJsYXlIYXJuZXNzKTtcbiAgI2dldFRpdGxlID0gdGhpcy5sb2NhdG9yRm9yT3B0aW9uYWwoJy5za3ktcG9wb3Zlci10aXRsZScpO1xuXG4gIC8qKlxuICAgKiBHZXRzIGEgYEhhcm5lc3NQcmVkaWNhdGVgIHRoYXQgY2FuIGJlIHVzZWQgdG8gc2VhcmNoIGZvciBhXG4gICAqIGBTa3lQb3BvdmVyQ29udGVudEhhcm5lc3NgIHRoYXQgbWVldHMgY2VydGFpbiBjcml0ZXJpYS5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgd2l0aChcbiAgICBmaWx0ZXJzOiBTa3lQb3BvdmVyQ29udGVudEhhcm5lc3NGaWx0ZXJzLFxuICApOiBIYXJuZXNzUHJlZGljYXRlPFNreVBvcG92ZXJDb250ZW50SGFybmVzcz4ge1xuICAgIHJldHVybiBuZXcgSGFybmVzc1ByZWRpY2F0ZShTa3lQb3BvdmVyQ29udGVudEhhcm5lc3MsIGZpbHRlcnMpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIHBsYWNlbWVudCBvZiB0aGUgcG9wb3ZlciBjb250ZW50LlxuICAgKi9cbiAgcHVibGljIGFzeW5jIGdldFBsYWNlbWVudCgpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIGNvbnN0IGNvbnRhaW5lciA9IGF3YWl0IHRoaXMuI2dldENvbnRhaW5lcigpO1xuXG4gICAgZm9yIChjb25zdCBwbGFjZW1lbnQgb2YgWydsZWZ0JywgJ3JpZ2h0JywgJ2Fib3ZlJywgJ2JlbG93J10pIHtcbiAgICAgIGlmIChhd2FpdCBjb250YWluZXIuaGFzQ2xhc3MoJ3NreS1wb3BvdmVyLXBsYWNlbWVudC0nICsgcGxhY2VtZW50KSkge1xuICAgICAgICByZXR1cm4gcGxhY2VtZW50O1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIFRoaXMgc2hvdWxkIG5ldmVyIGhhcHBlbiBiZWNhdXNlIHRoZSBwbGFjZW1lbnQgaW5wdXQgaXMgYWx3YXlzIGRlZmluZWQgYnkgdGhlIHBhcmVudC5cbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICAgIHJldHVybiAnJztcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSBhbGlnbm1lbnQgb2YgdGhlIHBvcG92ZXIgY29udGVudC5cbiAgICovXG4gIHB1YmxpYyBhc3luYyBnZXRBbGlnbm1lbnQoKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICBjb25zdCBjb250YWluZXIgPSBhd2FpdCB0aGlzLiNnZXRDb250YWluZXIoKTtcblxuICAgIGZvciAoY29uc3QgYWxpZ25tZW50IG9mIFsnbGVmdCcsICdjZW50ZXInLCAncmlnaHQnXSkge1xuICAgICAgaWYgKGF3YWl0IGNvbnRhaW5lci5oYXNDbGFzcygnc2t5LXBvcG92ZXItYWxpZ25tZW50LScgKyBhbGlnbm1lbnQpKSB7XG4gICAgICAgIHJldHVybiBhbGlnbm1lbnQ7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gVGhpcyBzaG91bGQgbmV2ZXIgaGFwcGVuIGJlY2F1c2UgdGhlIGFsaWdubWVudCBpbnB1dCBpcyBhbHdheXMgZGVmaW5lZCBieSB0aGUgcGFyZW50LlxuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gICAgcmV0dXJuICcnO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIHRleHQgb2YgdGhlIHBvcG92ZXIgY29udGVudCB0aXRsZS5cbiAgICovXG4gIHB1YmxpYyBhc3luYyBnZXRUaXRsZVRleHQoKTogUHJvbWlzZTxzdHJpbmcgfCB1bmRlZmluZWQ+IHtcbiAgICByZXR1cm4gYXdhaXQgKGF3YWl0IHRoaXMuI2dldFRpdGxlKCkpPy50ZXh0KCk7XG4gIH1cblxuICAvKipcbiAgICogR2V0cyB0aGUgdGV4dCBvZiB0aGUgcG9wb3ZlciBjb250ZW50IGJvZHkuXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgZ2V0Qm9keVRleHQoKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICByZXR1cm4gYXdhaXQgKGF3YWl0IHRoaXMuI2dldEJvZHkoKSkuZ2V0VGV4dCgpO1xuICB9XG5cbiAgLyoqXG4gICAqIENsaWNrcyBvdXQgb2YgdGhlIHBvcG92ZXIuXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgY2xpY2tPdXQoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgYXdhaXQgKGF3YWl0IChhd2FpdCB0aGlzLiNnZXRPdmVybGF5KCkpPy5ob3N0KCkpPy5jbGljaygpO1xuICB9XG59XG4iXX0=","import { SkyComponentHarness } from '@skyux/core/testing';\nimport { SkyPopoverContentHarness } from './popover-content-harness';\n/**\n * Harness for interacting with a popover component in tests.\n */\nexport class SkyPopoverHarness extends SkyComponentHarness {\n /**\n * @internal\n */\n static { this.hostSelector = '.sky-popover-trigger'; }\n #documentRootLocator = this.documentRootLocatorFactory();\n /**\n * Gets a `HarnessPredicate` that can be used to search for a\n * `SkyPopoverHarness` that meets certain criteria.\n */\n static with(filters) {\n return SkyPopoverHarness.getDataSkyIdPredicate(filters);\n }\n /**\n * Toggles a popover open or closed.\n */\n async clickPopoverButton() {\n await (await this.host()).click();\n }\n /**\n * Gets the popover content component.\n */\n async getPopoverContent() {\n const content = await this.#getContent();\n if (!content) {\n throw new Error('Unable to retrieve the popover content because the popover is not open.');\n }\n return content;\n }\n /**\n * Whether the popover is open.\n */\n async isOpen() {\n return !!(await this.#getContent());\n }\n async #getContent() {\n const popoverId = await this.#getPopoverId();\n if (popoverId) {\n return await this.#documentRootLocator.locatorForOptional(SkyPopoverContentHarness.with({ selector: `#${popoverId}` }))();\n }\n return null;\n }\n async #getPopoverId() {\n const pointerId = await (await this.host()).getAttribute('aria-controls');\n const pointerEl = await this.#documentRootLocator.locatorForOptional(`#${pointerId}`)();\n return await pointerEl?.getAttribute('aria-owns');\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9wb3Zlci1oYXJuZXNzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3BvcG92ZXJzL3Rlc3Rpbmcvc3JjL21vZHVsZXMvcG9wb3Zlci9wb3BvdmVyLWhhcm5lc3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFMUQsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFHckU7O0dBRUc7QUFDSCxNQUFNLE9BQU8saUJBQWtCLFNBQVEsbUJBQW1CO0lBQ3hEOztPQUVHO2FBQ1csaUJBQVksR0FBRyxzQkFBc0IsQ0FBQztJQUVwRCxvQkFBb0IsR0FBRyxJQUFJLENBQUMsMEJBQTBCLEVBQUUsQ0FBQztJQUV6RDs7O09BR0c7SUFDSSxNQUFNLENBQUMsSUFBSSxDQUNoQixPQUFpQztRQUVqQyxPQUFPLGlCQUFpQixDQUFDLHFCQUFxQixDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzFELENBQUM7SUFFRDs7T0FFRztJQUNJLEtBQUssQ0FBQyxrQkFBa0I7UUFDN0IsTUFBTSxDQUFDLE1BQU0sSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDcEMsQ0FBQztJQUVEOztPQUVHO0lBQ0ksS0FBSyxDQUFDLGlCQUFpQjtRQUM1QixNQUFNLE9BQU8sR0FBRyxNQUFNLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUN6QyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDYixNQUFNLElBQUksS0FBSyxDQUNiLHlFQUF5RSxDQUMxRSxDQUFDO1FBQ0osQ0FBQztRQUNELE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7SUFFRDs7T0FFRztJQUNJLEtBQUssQ0FBQyxNQUFNO1FBQ2pCLE9BQU8sQ0FBQyxDQUFDLENBQUMsTUFBTSxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztJQUN0QyxDQUFDO0lBRUQsS0FBSyxDQUFDLFdBQVc7UUFDZixNQUFNLFNBQVMsR0FBRyxNQUFNLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUU3QyxJQUFJLFNBQVMsRUFBRSxDQUFDO1lBQ2QsT0FBTyxNQUFNLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxrQkFBa0IsQ0FDdkQsd0JBQXdCLENBQUMsSUFBSSxDQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksU0FBUyxFQUFFLEVBQUUsQ0FBQyxDQUM3RCxFQUFFLENBQUM7UUFDTixDQUFDO1FBRUQsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsS0FBSyxDQUFDLGFBQWE7UUFDakIsTUFBTSxTQUFTLEdBQUcsTUFBTSxDQUFDLE1BQU0sSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsWUFBWSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQzFFLE1BQU0sU0FBUyxHQUFHLE1BQU0sSUFBSSxDQUFDLG9CQUFvQixDQUFDLGtCQUFrQixDQUNsRSxJQUFJLFNBQVMsRUFBRSxDQUNoQixFQUFFLENBQUM7UUFFSixPQUFPLE1BQU0sU0FBUyxFQUFFLFlBQVksQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUNwRCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSGFybmVzc1ByZWRpY2F0ZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay90ZXN0aW5nJztcbmltcG9ydCB7IFNreUNvbXBvbmVudEhhcm5lc3MgfSBmcm9tICdAc2t5dXgvY29yZS90ZXN0aW5nJztcblxuaW1wb3J0IHsgU2t5UG9wb3ZlckNvbnRlbnRIYXJuZXNzIH0gZnJvbSAnLi9wb3BvdmVyLWNvbnRlbnQtaGFybmVzcyc7XG5pbXBvcnQgeyBTa3lQb3BvdmVySGFybmVzc0ZpbHRlcnMgfSBmcm9tICcuL3BvcG92ZXItaGFybmVzcy1maWx0ZXJzJztcblxuLyoqXG4gKiBIYXJuZXNzIGZvciBpbnRlcmFjdGluZyB3aXRoIGEgcG9wb3ZlciBjb21wb25lbnQgaW4gdGVzdHMuXG4gKi9cbmV4cG9ydCBjbGFzcyBTa3lQb3BvdmVySGFybmVzcyBleHRlbmRzIFNreUNvbXBvbmVudEhhcm5lc3Mge1xuICAvKipcbiAgICogQGludGVybmFsXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGhvc3RTZWxlY3RvciA9ICcuc2t5LXBvcG92ZXItdHJpZ2dlcic7XG5cbiAgI2RvY3VtZW50Um9vdExvY2F0b3IgPSB0aGlzLmRvY3VtZW50Um9vdExvY2F0b3JGYWN0b3J5KCk7XG5cbiAgLyoqXG4gICAqIEdldHMgYSBgSGFybmVzc1ByZWRpY2F0ZWAgdGhhdCBjYW4gYmUgdXNlZCB0byBzZWFyY2ggZm9yIGFcbiAgICogYFNreVBvcG92ZXJIYXJuZXNzYCB0aGF0IG1lZXRzIGNlcnRhaW4gY3JpdGVyaWEuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHdpdGgoXG4gICAgZmlsdGVyczogU2t5UG9wb3Zlckhhcm5lc3NGaWx0ZXJzLFxuICApOiBIYXJuZXNzUHJlZGljYXRlPFNreVBvcG92ZXJIYXJuZXNzPiB7XG4gICAgcmV0dXJuIFNreVBvcG92ZXJIYXJuZXNzLmdldERhdGFTa3lJZFByZWRpY2F0ZShmaWx0ZXJzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUb2dnbGVzIGEgcG9wb3ZlciBvcGVuIG9yIGNsb3NlZC5cbiAgICovXG4gIHB1YmxpYyBhc3luYyBjbGlja1BvcG92ZXJCdXR0b24oKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgYXdhaXQgKGF3YWl0IHRoaXMuaG9zdCgpKS5jbGljaygpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIHBvcG92ZXIgY29udGVudCBjb21wb25lbnQuXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgZ2V0UG9wb3ZlckNvbnRlbnQoKTogUHJvbWlzZTxTa3lQb3BvdmVyQ29udGVudEhhcm5lc3M+IHtcbiAgICBjb25zdCBjb250ZW50ID0gYXdhaXQgdGhpcy4jZ2V0Q29udGVudCgpO1xuICAgIGlmICghY29udGVudCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAnVW5hYmxlIHRvIHJldHJpZXZlIHRoZSBwb3BvdmVyIGNvbnRlbnQgYmVjYXVzZSB0aGUgcG9wb3ZlciBpcyBub3Qgb3Blbi4nLFxuICAgICAgKTtcbiAgICB9XG4gICAgcmV0dXJuIGNvbnRlbnQ7XG4gIH1cblxuICAvKipcbiAgICogV2hldGhlciB0aGUgcG9wb3ZlciBpcyBvcGVuLlxuICAgKi9cbiAgcHVibGljIGFzeW5jIGlzT3BlbigpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gISEoYXdhaXQgdGhpcy4jZ2V0Q29udGVudCgpKTtcbiAgfVxuXG4gIGFzeW5jICNnZXRDb250ZW50KCk6IFByb21pc2U8U2t5UG9wb3ZlckNvbnRlbnRIYXJuZXNzIHwgbnVsbD4ge1xuICAgIGNvbnN0IHBvcG92ZXJJZCA9IGF3YWl0IHRoaXMuI2dldFBvcG92ZXJJZCgpO1xuXG4gICAgaWYgKHBvcG92ZXJJZCkge1xuICAgICAgcmV0dXJuIGF3YWl0IHRoaXMuI2RvY3VtZW50Um9vdExvY2F0b3IubG9jYXRvckZvck9wdGlvbmFsKFxuICAgICAgICBTa3lQb3BvdmVyQ29udGVudEhhcm5lc3Mud2l0aCh7IHNlbGVjdG9yOiBgIyR7cG9wb3ZlcklkfWAgfSksXG4gICAgICApKCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBhc3luYyAjZ2V0UG9wb3ZlcklkKCk6IFByb21pc2U8c3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZD4ge1xuICAgIGNvbnN0IHBvaW50ZXJJZCA9IGF3YWl0IChhd2FpdCB0aGlzLmhvc3QoKSkuZ2V0QXR0cmlidXRlKCdhcmlhLWNvbnRyb2xzJyk7XG4gICAgY29uc3QgcG9pbnRlckVsID0gYXdhaXQgdGhpcy4jZG9jdW1lbnRSb290TG9jYXRvci5sb2NhdG9yRm9yT3B0aW9uYWwoXG4gICAgICBgIyR7cG9pbnRlcklkfWAsXG4gICAgKSgpO1xuXG4gICAgcmV0dXJuIGF3YWl0IHBvaW50ZXJFbD8uZ2V0QXR0cmlidXRlKCdhcmlhLW93bnMnKTtcbiAgfVxufVxuIl19","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './public-api';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2t5dXgtcG9wb3ZlcnMtdGVzdGluZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9wb3BvdmVycy90ZXN0aW5nL3NyYy9za3l1eC1wb3BvdmVycy10ZXN0aW5nLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxjQUFjLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vcHVibGljLWFwaSc7XG4iXX0="],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"skyux-popovers-testing.mjs","sources":["../../../../../libs/components/popovers/testing/src/legacy/dropdown/dropdown-fixture.ts","../../../../../libs/components/popovers/testing/src/legacy/dropdown/dropdown-testing.module.ts","../../../../../libs/components/popovers/testing/src/legacy/popover/popover-fixture.ts","../../../../../libs/components/popovers/testing/src/legacy/popover/popover-testing.module.ts","../../../../../libs/components/popovers/testing/src/modules/dropdown/dropdown-item-harness.ts","../../../../../libs/components/popovers/testing/src/modules/dropdown/dropdown-menu-harness.ts","../../../../../libs/components/popovers/testing/src/modules/dropdown/dropdown-harness.ts","../../../../../libs/components/popovers/testing/src/modules/popover/popover-body-harness.ts","../../../../../libs/components/popovers/testing/src/modules/popover/popover-content-harness.ts","../../../../../libs/components/popovers/testing/src/modules/popover/popover-harness.ts","../../../../../libs/components/popovers/testing/src/skyux-popovers-testing.ts"],"sourcesContent":["import { DebugElement } from '@angular/core';\nimport { ComponentFixture } from '@angular/core/testing';\nimport { By } from '@angular/platform-browser';\nimport { SkyAppTestUtility } from '@skyux-sdk/testing';\n\nimport { SkyPopoversFixtureDropdown } from './popovers-fixture-dropdown';\nimport { SkyPopoversFixtureDropdownItem } from './popovers-fixture-dropdown-item';\nimport { SkyPopoversFixtureDropdownMenu } from './popovers-fixture-dropdown-menu';\n\n/**\n * Provides information for and interaction with a SKY UX dropdown component.\n * By using the fixture API, a test insulates itself against updates to the internals\n * of a component, such as changing its DOM structure.\n * @deprecated Use `SkyDropdownHarness` instead.\n * @internal\n */\nexport class SkyDropdownFixture {\n /**\n * Returns information about the dropdown component.\n */\n public get dropdown(): SkyPopoversFixtureDropdown | undefined {\n const button = this.#buttonDebugElement;\n return {\n buttonStyle: this.#getButtonStyle(button.classes),\n buttonType: this.#getButtonType(button.classes),\n disabled: button.nativeElement.disabled,\n label: button.nativeElement.getAttribute('aria-label'),\n title: button.nativeElement.getAttribute('title'),\n };\n }\n\n /**\n * Returns the dropdown button's text.\n */\n public get dropdownButtonText(): string | undefined {\n return SkyAppTestUtility.getText(this.#buttonDebugElement.nativeElement);\n }\n\n /**\n * Returns information about the dropdown menu component.\n */\n public get dropdownMenu(): SkyPopoversFixtureDropdownMenu | undefined {\n const menu = this.getDropdownMenuContent();\n if (!menu) {\n return;\n }\n\n return {\n ariaLabelledBy: menu.getAttribute('aria-labelledby'),\n ariaRole: menu.getAttribute('role'),\n };\n }\n\n /**\n * Whether the dropdown menu is open and visible.\n */\n public get dropdownMenuIsVisible(): boolean {\n return this.getDropdownMenuContent() !== undefined;\n }\n\n get #buttonDebugElement(): DebugElement {\n return this.#debugEl.query(By.css('.sky-dropdown-button'));\n }\n\n #debugEl: DebugElement;\n\n #fixture: ComponentFixture<unknown>;\n\n constructor(fixture: ComponentFixture<unknown>, skyTestId: string) {\n this.#fixture = fixture;\n this.#debugEl = SkyAppTestUtility.getDebugElementByTestId(\n fixture,\n skyTestId,\n 'sky-dropdown',\n );\n }\n\n /**\n * Click the dropdown button to open or close the dropdown menu.\n */\n public async clickDropdownButton(): Promise<void> {\n this.#buttonDebugElement.nativeElement.click();\n this.#fixture.detectChanges();\n await this.#fixture.whenStable();\n }\n\n /**\n * Click the dropdown item at the provided index.\n */\n public async clickDropdownItem(index: number): Promise<void> {\n const itemEls = this.#getDropdownItemEls();\n\n if (!itemEls) {\n return;\n }\n\n if (index >= itemEls.length) {\n throw new Error(`There is no dropdown item at index ${index}.`);\n }\n\n itemEls[index].querySelector('button,a').click();\n\n this.#fixture.detectChanges();\n await this.#fixture.whenStable();\n }\n\n /**\n * Returns information about the dropdown item at the provided index.\n */\n public getDropdownItem(\n index: number,\n ): SkyPopoversFixtureDropdownItem | undefined {\n const itemEls = this.#getDropdownItemEls();\n\n if (!itemEls) {\n return;\n }\n\n if (!itemEls[index]) {\n throw new Error(`There is no dropdown item at index ${index}.`);\n }\n\n const item = itemEls[index];\n\n return {\n ariaRole: item.getAttribute('role'),\n };\n }\n\n /**\n * Returns the contents of the dropdown menu.\n */\n public getDropdownMenuContent(): any {\n const overlay = this.#getOverlay();\n if (!overlay) {\n return;\n }\n\n return overlay.querySelector('.sky-dropdown-menu');\n }\n\n #getDropdownItemEls(): NodeListOf<any> | undefined {\n const overlay = this.#getOverlay();\n\n if (!overlay) {\n return;\n }\n\n return overlay.querySelectorAll('.sky-dropdown-item');\n }\n\n #getOverlay(): HTMLElement | null {\n return document.querySelector('sky-overlay');\n }\n\n #getButtonStyle(classNames: { [key: string]: boolean }): string | undefined {\n if (classNames['sky-btn-primary']) {\n return 'primary';\n }\n if (classNames['sky-btn-default']) {\n return 'default';\n }\n return;\n }\n\n #getButtonType(classNames: { [key: string]: boolean }): string {\n const prefix = 'sky-dropdown-button-type-';\n\n let found = '';\n for (const i in classNames) {\n if (classNames[i]) {\n if (i.indexOf(prefix) > -1) {\n found = i.replace(prefix, '');\n }\n }\n }\n\n return found;\n }\n}\n","import { NgModule } from '@angular/core';\nimport { SkyDropdownModule } from '@skyux/popovers';\n\n/**\n * @internal\n */\n@NgModule({\n exports: [SkyDropdownModule],\n})\nexport class SkyDropdownTestingModule {}\n","import { ComponentFixture } from '@angular/core/testing';\nimport { SkyAppTestUtility } from '@skyux-sdk/testing';\n\n/**\n * Provides information for and interaction with a SKY UX popover component.\n * By using the fixture API, a test insulates itself against updates to the internals\n * of a component, such as changing its DOM structure.\n * @deprecated Use `SkyPopoverHarness` instead.\n * @internal\n */\nexport class SkyPopoverFixture {\n /**\n * Returns the popover alignment if the popover is open, otherwise undefined.\n */\n public get alignment(): string | undefined {\n return this.#getClassSuffixByClassPrefix(\n this.#containerElement,\n 'sky-popover-alignment-',\n );\n }\n\n /**\n * Returns the popover body element if the popover is open, otherwise undefined.\n */\n public get body(): HTMLElement | undefined {\n return this.#bodyElement;\n }\n\n /**\n * Returns the popover position if the popover is open, otherwise undefined.\n */\n public get placement(): string | undefined {\n return this.#getClassSuffixByClassPrefix(\n this.#containerElement,\n 'sky-popover-placement-',\n );\n }\n\n /**\n * Returns the popover title text if the popover is open, otherwise undefined.\n */\n public get popoverTitle(): string | undefined {\n return SkyAppTestUtility.getText(this.#titleElement);\n }\n\n /**\n * Whether the popover is open and visible.\n */\n public get popoverIsVisible(): boolean {\n return this.#contentElement !== undefined;\n }\n\n #fixture: ComponentFixture<unknown>;\n\n constructor(fixture: ComponentFixture<unknown>) {\n this.#fixture = fixture;\n }\n\n /**\n * Triggers the blur event for the popover.\n */\n public blur(): Promise<unknown> {\n // close the popover by changing focus to the body element\n SkyAppTestUtility.fireDomEvent(window.document.body, 'click');\n\n this.#fixture.detectChanges();\n return this.#fixture.whenStable();\n }\n\n //#region helpers\n get #contentElement(): HTMLElement | undefined {\n return this.#queryOverlay('sky-popover-content') || undefined;\n }\n\n get #containerElement(): HTMLElement | undefined {\n return this.#queryOverlay('.sky-popover-container') || undefined;\n }\n\n get #titleElement(): HTMLElement | undefined {\n return this.#queryOverlay('.sky-popover-title') || undefined;\n }\n\n get #bodyElement(): HTMLElement | undefined {\n return this.#queryOverlay('.sky-popover-body') || undefined;\n }\n\n #getOverlay(): Element | undefined {\n return document.querySelector('sky-overlay') || undefined;\n }\n\n #queryOverlay(query: string): HTMLElement | null {\n const overlay = this.#getOverlay();\n\n return !overlay ? null : overlay.querySelector(query);\n }\n\n /**\n * Searches the element's class names for a class which matches a given prefix.\n * If a match is found, the prefix is trimmed from the class name and the suffix is returned.\n * If no class matching the prefix is found, undefined is returned.\n *\n * Example:\n * For a class 'sky-popover-placement-right', passing the prefix 'sky-popover-placement-'\n * should return the value 'right'.\n * @param prefix\n */\n #getClassSuffixByClassPrefix(\n element: HTMLElement | undefined,\n prefix: string,\n ): string | undefined {\n const containerClasses = element?.className.split(' ');\n const prefixedClass = containerClasses?.find((x) => x.startsWith(prefix));\n\n return !prefixedClass ? undefined : prefixedClass.slice(prefix.length);\n }\n //#endregion\n}\n","import { NgModule } from '@angular/core';\nimport { NoopAnimationsModule } from '@angular/platform-browser/animations';\nimport { SkyPopoverModule } from '@skyux/popovers';\nimport { SkyThemeModule } from '@skyux/theme';\n\n/**\n * @internal\n */\n@NgModule({\n exports: [\n SkyPopoverModule,\n\n // The noop animations module needs to be loaded last to avoid\n // subsequent modules adding animations and overriding this.\n NoopAnimationsModule,\n ],\n imports: [SkyThemeModule],\n})\nexport class SkyPopoverTestingModule {}\n","import { HarnessPredicate } from '@angular/cdk/testing';\nimport { SkyComponentHarness } from '@skyux/core/testing';\n\nimport { SkyDropdownItemHarnessFilters } from './dropdown-item-harness.filters';\n\n/**\n * Harness for interacting with a dropdown item component in tests.\n */\nexport class SkyDropdownItemHarness extends SkyComponentHarness {\n /**\n * @internal\n */\n public static hostSelector = 'sky-dropdown-item';\n\n #getItem = this.locatorFor('.sky-dropdown-item');\n #getButton = this.locatorFor('button,a');\n\n /**\n * Gets a `HarnessPredicate` that can be used to search for a\n * `SkyDropdownItemHarness` that meets certain criteria.\n */\n public static with(\n filters: SkyDropdownItemHarnessFilters,\n ): HarnessPredicate<SkyDropdownItemHarness> {\n return SkyDropdownItemHarness.getDataSkyIdPredicate(filters)\n .addOption('text', filters.text, async (harness, text) => {\n const menuItemText = await harness.getText();\n return await HarnessPredicate.stringMatches(menuItemText, text);\n })\n .addOption('ariaRole', filters.ariaRole, async (harness, ariaRole) => {\n const itemAriaRole = await harness.getAriaRole();\n return await HarnessPredicate.stringMatches(itemAriaRole, ariaRole);\n });\n }\n\n /**\n * Clicks the dropdown item.\n */\n public async click(): Promise<void> {\n await (await this.#getButton()).click();\n }\n\n /**\n * Gets the dropdown item role.\n */\n public async getAriaRole(): Promise<string | null> {\n return await (await this.#getItem()).getAttribute('role');\n }\n\n /**\n * Gets the menu item text.\n */\n public async getText(): Promise<string | null> {\n return await (await this.#getItem()).text();\n }\n}\n","import { HarnessPredicate } from '@angular/cdk/testing';\nimport {\n SkyOverlayHarness,\n SkyQueryableComponentHarness,\n} from '@skyux/core/testing';\n\nimport { SkyDropdownItemHarness } from './dropdown-item-harness';\nimport { SkyDropdownItemHarnessFilters } from './dropdown-item-harness.filters';\nimport { SkyDropdownMenuHarnessFilters } from './dropdown-menu-harness.filters';\n\n/**\n * Harness for interacting with a dropdown menu component in tests.\n */\nexport class SkyDropdownMenuHarness extends SkyQueryableComponentHarness {\n /**\n * @internal\n */\n public static hostSelector = '.sky-dropdown-menu';\n\n #getOverlay =\n this.documentRootLocatorFactory().locatorForOptional(SkyOverlayHarness);\n\n /**\n * Gets a `HarnessPredicate` that can be used to search for a\n * `SkyDropdownMenuHarness` that meets certain criteria.\n */\n public static with(\n filters: SkyDropdownMenuHarnessFilters,\n ): HarnessPredicate<SkyDropdownMenuHarness> {\n return new HarnessPredicate(SkyDropdownMenuHarness, filters);\n }\n\n /**\n * Clicks out of the dropdown menu.\n */\n public async clickOut(): Promise<void> {\n await (await (await this.#getOverlay())?.host())?.click();\n }\n\n /**\n * Gets the `aria-labelledby` value.\n */\n public async getAriaLabelledBy(): Promise<string | null> {\n return await (await this.host()).getAttribute('aria-labelledby');\n }\n\n /**\n * Gets the dropdown menu role.\n */\n public async getAriaRole(): Promise<string | null> {\n return await (await this.host()).getAttribute('role');\n }\n\n /**\n * Gets a specific dropdown menu item based on the filter criteria.\n * @param filter The filter criteria.\n */\n public async getItem(\n filter: SkyDropdownItemHarnessFilters,\n ): Promise<SkyDropdownItemHarness> {\n return await this.locatorFor(SkyDropdownItemHarness.with(filter))();\n }\n\n /**\n * Gets an array of dropdown menu items based on the filter criteria.\n * If no filter is provided, returns all dropdown menu items.\n * @param filters The optional filter criteria.\n */\n public async getItems(\n filters?: SkyDropdownItemHarnessFilters,\n ): Promise<SkyDropdownItemHarness[]> {\n return await this.locatorForAll(\n SkyDropdownItemHarness.with(filters || {}),\n )();\n }\n}\n","import { HarnessPredicate } from '@angular/cdk/testing';\nimport { SkyComponentHarness } from '@skyux/core/testing';\n\nimport { SkyDropdownHarnessFilters } from './dropdown-harness.filters';\nimport { SkyDropdownMenuHarness } from './dropdown-menu-harness';\n\n/**\n * Harness for interacting with a dropdown component in tests.\n */\nexport class SkyDropdownHarness extends SkyComponentHarness {\n /**\n * @internal\n */\n public static hostSelector = 'sky-dropdown';\n\n #documentRootLocator = this.documentRootLocatorFactory();\n\n #getDropdownButton = this.locatorFor(\n // Default trigger button\n '.sky-dropdown-button',\n // Custom trigger button\n '[skyDropdownTrigger]',\n );\n\n /**\n * Gets a `HarnessPredicate` that can be used to search for a\n * `SkyDropdownHarness` that meets certain criteria.\n */\n public static with(\n filters: SkyDropdownHarnessFilters,\n ): HarnessPredicate<SkyDropdownHarness> {\n return SkyDropdownHarness.getDataSkyIdPredicate(filters);\n }\n\n /**\n * Clicks the dropdown button.\n */\n public async clickDropdownButton(): Promise<void> {\n await (await this.#getDropdownButton()).click();\n }\n\n /**\n * Gets the aria-label value.\n */\n public async getAriaLabel(): Promise<string | null> {\n return await (await this.#getDropdownButton()).getAttribute('aria-label');\n }\n\n /**\n * Gets the dropdown button style.\n */\n public async getButtonStyle(): Promise<string> {\n const button = await this.#getDropdownButton();\n\n if (await button.hasClass('sky-btn-primary')) {\n return 'primary';\n }\n\n if (await button.hasClass('sky-btn-link')) {\n return 'link';\n }\n\n return 'default';\n }\n\n /**\n * Gets the dropdown button type.\n */\n public async getButtonType(): Promise<string> {\n const button = await this.#getDropdownButton();\n\n if (await button.hasClass('sky-dropdown-button-type-context-menu')) {\n return 'context-menu';\n }\n\n if (await button.hasClass('sky-dropdown-button-type-tab')) {\n return 'tab';\n }\n\n return 'select';\n }\n\n /**\n * Gets the dropdown menu component.\n */\n public async getDropdownMenu(): Promise<SkyDropdownMenuHarness> {\n const dropdownMenuId = await this.#getAriaControls();\n\n if (!dropdownMenuId) {\n throw new Error(\n 'Unable to retrieve dropdown menu harness because dropdown is closed.',\n );\n }\n\n return await this.#documentRootLocator.locatorFor(\n SkyDropdownMenuHarness.with({ selector: `#${dropdownMenuId}` }),\n )();\n }\n\n /**\n * Gets the hover tooltip text.\n */\n public async getTitle(): Promise<string | null> {\n return await (await this.#getDropdownButton()).getAttribute('title');\n }\n\n /**\n * Gets whether the dropdown is disabled.\n */\n public async isDisabled(): Promise<boolean> {\n const button = await this.#getDropdownButton();\n\n return (await button.getProperty('disabled')) ? true : false;\n }\n\n /**\n * Gets whether the dropdown menu is open.\n */\n public async isOpen(): Promise<boolean> {\n const ariaExpanded = await (\n await this.#getDropdownButton()\n ).getAttribute('aria-expanded');\n\n if (ariaExpanded === 'true') {\n return true;\n }\n\n return false;\n }\n\n /**\n * Gets the element ID of the dropdown menu that the dropdown button controls.\n */\n async #getAriaControls(): Promise<string | null> {\n return await (\n await this.#getDropdownButton()\n ).getAttribute('aria-controls');\n }\n}\n","import { SkyQueryableComponentHarness } from '@skyux/core/testing';\n\n/**\n * Harness for interacting with a popover body in tests.\n * @internal\n */\nexport class SkyPopoverBodyHarness extends SkyQueryableComponentHarness {\n /**\n * @internal\n */\n public static hostSelector = '.sky-popover-body';\n\n /**\n * Gets the text of the popover content body.\n */\n public async getText(): Promise<string> {\n return await (await this.host()).text();\n }\n}\n","import { HarnessPredicate } from '@angular/cdk/testing';\nimport {\n SkyOverlayHarness,\n SkyQueryableComponentHarness,\n} from '@skyux/core/testing';\n\nimport { SkyPopoverBodyHarness } from './popover-body-harness';\nimport { SkyPopoverContentHarnessFilters } from './popover-content-harness-filters';\n\n/**\n * Harness for interacting with a popover content component in tests.\n */\nexport class SkyPopoverContentHarness extends SkyQueryableComponentHarness {\n /**\n * @internal\n */\n public static hostSelector = 'sky-popover-content';\n\n #getBody = this.locatorFor(SkyPopoverBodyHarness);\n #getContainer = this.locatorFor('.sky-popover-container');\n #getOverlay =\n this.documentRootLocatorFactory().locatorForOptional(SkyOverlayHarness);\n #getTitle = this.locatorForOptional('.sky-popover-title');\n\n /**\n * Gets a `HarnessPredicate` that can be used to search for a\n * `SkyPopoverContentHarness` that meets certain criteria.\n */\n public static with(\n filters: SkyPopoverContentHarnessFilters,\n ): HarnessPredicate<SkyPopoverContentHarness> {\n return new HarnessPredicate(SkyPopoverContentHarness, filters);\n }\n\n /**\n * Gets the placement of the popover content.\n */\n public async getPlacement(): Promise<string> {\n const container = await this.#getContainer();\n\n for (const placement of ['left', 'right', 'above', 'below']) {\n if (await container.hasClass('sky-popover-placement-' + placement)) {\n return placement;\n }\n }\n\n // This should never happen because the placement input is always defined by the parent.\n /* istanbul ignore next */\n return '';\n }\n\n /**\n * Gets the alignment of the popover content.\n */\n public async getAlignment(): Promise<string> {\n const container = await this.#getContainer();\n\n for (const alignment of ['left', 'center', 'right']) {\n if (await container.hasClass('sky-popover-alignment-' + alignment)) {\n return alignment;\n }\n }\n\n // This should never happen because the alignment input is always defined by the parent.\n /* istanbul ignore next */\n return '';\n }\n\n /**\n * Gets the text of the popover content title.\n */\n public async getTitleText(): Promise<string | undefined> {\n return await (await this.#getTitle())?.text();\n }\n\n /**\n * Gets the text of the popover content body.\n */\n public async getBodyText(): Promise<string> {\n return await (await this.#getBody()).getText();\n }\n\n /**\n * Clicks out of the popover.\n */\n public async clickOut(): Promise<void> {\n await (await (await this.#getOverlay())?.host())?.click();\n }\n}\n","import { HarnessPredicate } from '@angular/cdk/testing';\nimport { SkyComponentHarness } from '@skyux/core/testing';\n\nimport { SkyPopoverContentHarness } from './popover-content-harness';\nimport { SkyPopoverHarnessFilters } from './popover-harness-filters';\n\n/**\n * Harness for interacting with a popover component in tests.\n */\nexport class SkyPopoverHarness extends SkyComponentHarness {\n /**\n * @internal\n */\n public static hostSelector = '.sky-popover-trigger';\n\n #documentRootLocator = this.documentRootLocatorFactory();\n\n /**\n * Gets a `HarnessPredicate` that can be used to search for a\n * `SkyPopoverHarness` that meets certain criteria.\n */\n public static with(\n filters: SkyPopoverHarnessFilters,\n ): HarnessPredicate<SkyPopoverHarness> {\n return SkyPopoverHarness.getDataSkyIdPredicate(filters);\n }\n\n /**\n * Toggles a popover open or closed.\n */\n public async clickPopoverButton(): Promise<void> {\n await (await this.host()).click();\n }\n\n /**\n * Gets the popover content component.\n */\n public async getPopoverContent(): Promise<SkyPopoverContentHarness> {\n const content = await this.#getContent();\n if (!content) {\n throw new Error(\n 'Unable to retrieve the popover content because the popover is not open.',\n );\n }\n return content;\n }\n\n /**\n * Whether the popover is open.\n */\n public async isOpen(): Promise<boolean> {\n return !!(await this.#getContent());\n }\n\n async #getContent(): Promise<SkyPopoverContentHarness | null> {\n const popoverId = await this.#getPopoverId();\n\n if (popoverId) {\n return await this.#documentRootLocator.locatorForOptional(\n SkyPopoverContentHarness.with({ selector: `#${popoverId}` }),\n )();\n }\n\n return null;\n }\n\n async #getPopoverId(): Promise<string | null | undefined> {\n const pointerId = await (await this.host()).getAttribute('aria-controls');\n const pointerEl = await this.#documentRootLocator.locatorForOptional(\n `#${pointerId}`,\n )();\n\n return await pointerEl?.getAttribute('aria-owns');\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}