@skyux/layout
Version:
This library was generated with [Nx](https://nx.dev).
1 lines • 52.9 kB
Source Map (JSON)
{"version":3,"file":"skyux-layout-testing.mjs","sources":["../../../../../libs/components/layout/testing/src/legacy/action-button-fixture.ts","../../../../../libs/components/layout/testing/src/legacy/card-fixture.ts","../../../../../libs/components/layout/testing/src/legacy/page-summary-fixture.ts","../../../../../libs/components/layout/testing/src/modules/back-to-top/back-to-top-harness.ts","../../../../../libs/components/layout/testing/src/modules/box/box-harness.ts","../../../../../libs/components/layout/testing/src/modules/description-list/description-list-description-harness.ts","../../../../../libs/components/layout/testing/src/modules/description-list/description-list-term-harness.ts","../../../../../libs/components/layout/testing/src/modules/description-list/description-list-content-harness.ts","../../../../../libs/components/layout/testing/src/modules/description-list/description-list-harness.ts","../../../../../libs/components/layout/testing/src/modules/fluid-grid/column-harness.ts","../../../../../libs/components/layout/testing/src/modules/fluid-grid/row-harness.ts","../../../../../libs/components/layout/testing/src/modules/fluid-grid/fluid-grid-harness.ts","../../../../../libs/components/layout/testing/src/modules/text-expand/text-expand-modal-harness.ts","../../../../../libs/components/layout/testing/src/modules/text-expand/text-expand-harness.ts","../../../../../libs/components/layout/testing/src/modules/toolbar/toolbar-item-harness.ts","../../../../../libs/components/layout/testing/src/modules/toolbar/toolbar-view-actions-harness.ts","../../../../../libs/components/layout/testing/src/modules/toolbar/toolbar-section-harness.ts","../../../../../libs/components/layout/testing/src/modules/toolbar/toolbar-harness.ts","../../../../../libs/components/layout/testing/src/modules/action-button/action-button-harness.ts","../../../../../libs/components/layout/testing/src/modules/action-button/action-button-container-harness.ts","../../../../../libs/components/layout/testing/src/skyux-layout-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\n/**\n * Allows interaction with a SKY UX action button component.\n * @internal\n */\nexport class SkyActionButtonFixture {\n /**\n * The action button's current header text.\n */\n public get headerText(): string | undefined {\n return SkyAppTestUtility.getText(\n this.#debugEl.query(By.css('.sky-action-button-header')),\n );\n }\n\n /**\n * The action button's current details text.\n */\n public get detailsText(): string | undefined {\n return SkyAppTestUtility.getText(\n this.#debugEl.query(By.css('sky-action-button-details')),\n );\n }\n\n /**\n * The action button's current icon type.\n */\n public get iconType(): string | undefined {\n const classList = this.#debugEl.query(By.css('.fa.sky-icon')).nativeElement\n .classList;\n\n for (let i = 0, n = classList.length; i < n; i++) {\n const cls = classList.item(i);\n\n if (cls.indexOf('fa-') === 0) {\n return cls.substr(3);\n }\n }\n /* istanbul ignore next */\n return undefined;\n }\n\n #debugEl: DebugElement;\n\n constructor(fixture: ComponentFixture<any>, skyTestId: string) {\n this.#debugEl = SkyAppTestUtility.getDebugElementByTestId(\n fixture,\n skyTestId,\n 'sky-action-button',\n );\n }\n\n /**\n * Clicks the action button.\n */\n public actionClick(): void {\n this.#debugEl\n .query(By.css('.sky-action-button'))\n .triggerEventHandler('click', {});\n }\n}\n","import { DebugElement } from '@angular/core';\nimport { ComponentFixture } from '@angular/core/testing';\nimport { By } from '@angular/platform-browser';\nimport { SkyAppTestUtility } from '@skyux-sdk/testing';\n\n/**\n * Allows interaction with a SKY UX avatar component.\n * @internal\n */\nexport class SkyCardFixture {\n /**\n * The card's current title.\n */\n public get titleText(): string | undefined {\n return SkyAppTestUtility.getText(\n this.#debugEl.query(By.css('sky-card-title')),\n );\n }\n\n /**\n * The card's current content text.\n */\n public get contentText(): string | undefined {\n return SkyAppTestUtility.getText(\n this.#debugEl.query(By.css('sky-card-content')),\n );\n }\n\n /**\n * A flag indicating whether the user can select the card.\n */\n public get selectable(): boolean {\n return !!this.#debugEl.query(By.css('.sky-card-check'));\n }\n\n /**\n * A flag indicating whether the card is currently selected. If the card\n * is not selectable, an error is thrown.\n */\n public get selected(): boolean {\n if (this.selectable) {\n return this.#getCheckInputEl().nativeElement.checked;\n }\n\n throw new Error('The card is not selectable.');\n }\n\n #debugEl: DebugElement;\n\n constructor(fixture: ComponentFixture<any>, skyTestId: string) {\n this.#debugEl = SkyAppTestUtility.getDebugElementByTestId(\n fixture,\n skyTestId,\n 'sky-card',\n );\n }\n\n /**\n * Selects the card.\n */\n public select(): void {\n if (!this.selected) {\n this.#clickCheckLabelEl();\n }\n }\n\n /**\n * Deselects the card.\n */\n public deselect(): void {\n if (this.selected) {\n this.#clickCheckLabelEl();\n }\n }\n\n #clickCheckLabelEl(): void {\n this.#debugEl\n .query(By.css('.sky-card-check label.sky-checkbox-wrapper'))\n .nativeElement.click();\n }\n\n #getCheckInputEl(): DebugElement {\n return this.#debugEl.query(\n By.css('.sky-card-check .sky-checkbox-wrapper input'),\n );\n }\n}\n","import { DebugElement } from '@angular/core';\nimport { ComponentFixture } from '@angular/core/testing';\nimport { By } from '@angular/platform-browser';\nimport { SkyAppTestUtility } from '@skyux-sdk/testing';\n\n/**\n * Allows interaction with a SKY UX page summary component.\n * @internal\n */\nexport class SkyPageSummaryFixture {\n /**\n * The page summary's current title text.\n */\n public get titleText(): string | undefined {\n return SkyAppTestUtility.getText(\n this.#debugEl.query(\n By.css('sky-page-summary-title .sky-page-summary-title'),\n ),\n );\n }\n\n /**\n * The page summary's current subtitle text.\n */\n public get subtitleText(): string | undefined {\n return SkyAppTestUtility.getText(\n this.#debugEl.query(\n By.css('sky-page-summary-subtitle .sky-page-summary-subtitle'),\n ),\n );\n }\n\n /**\n * The page summary's current content text.\n */\n public get contentText(): string | undefined {\n return SkyAppTestUtility.getText(\n this.#debugEl.query(\n By.css('sky-page-summary-content .sky-page-summary-content'),\n ),\n );\n }\n\n #debugEl: DebugElement;\n\n constructor(fixture: ComponentFixture<any>, skyTestId: string) {\n this.#debugEl = SkyAppTestUtility.getDebugElementByTestId(\n fixture,\n skyTestId,\n 'sky-page-summary',\n );\n }\n}\n","import { ComponentHarness } from '@angular/cdk/testing';\n\n/**\n * Harness for interacting with a back to top component in tests.\n */\nexport class SkyBackToTopHarness extends ComponentHarness {\n /**\n * @internal\n */\n public static hostSelector = 'sky-back-to-top';\n\n #getBackToTop = this.locatorFor('.sky-back-to-top button');\n\n /**\n * Clicks the back to top button.\n */\n public async clickBackToTop(): Promise<void> {\n return await (await this.#getBackToTop()).click();\n }\n}\n","import { HarnessPredicate } from '@angular/cdk/testing';\nimport { SkyComponentHarness } from '@skyux/core/testing';\nimport { SkyHelpInlineHarness } from '@skyux/help-inline/testing';\nimport { SkyBoxHeadingLevel, SkyBoxHeadingStyle } from '@skyux/layout';\n\nimport { SkyBoxHarnessFilters } from './box-harness.filters';\n\n/**\n * Harness for interacting with a box component in tests.\n */\nexport class SkyBoxHarness extends SkyComponentHarness {\n /**\n * @internal\n */\n public static hostSelector = 'sky-box';\n\n #getBox = this.locatorFor('.sky-box');\n #getHeading = this.locatorForOptional(\n '.sky-box-header-content h2, .sky-box-header-content h3, .sky-box-header-content h4, .sky-box-header-content h5',\n );\n #getH2 = this.locatorForOptional('.sky-box-header-content h2');\n #getH3 = this.locatorForOptional('.sky-box-header-content h3');\n #getH4 = this.locatorForOptional('.sky-box-header-content h4');\n\n /**\n * Gets a `HarnessPredicate` that can be used to search for a\n * `SkyBoxHarness` that meets certain criteria\n */\n public static with(\n filters: SkyBoxHarnessFilters,\n ): HarnessPredicate<SkyBoxHarness> {\n return SkyBoxHarness.getDataSkyIdPredicate(filters);\n }\n\n /**\n * Clicks the help inline button.\n */\n public async clickHelpInline(): Promise<void> {\n return await (await this.#getHelpInline()).click();\n }\n\n /**\n * Gets the help popover content.\n */\n public async getHelpPopoverContent(): Promise<string | undefined> {\n return await (await this.#getHelpInline()).getPopoverContent();\n }\n\n /**\n * Gets the help popover title.\n */\n public async getHelpPopoverTitle(): Promise<string | undefined> {\n return await (await this.#getHelpInline()).getPopoverTitle();\n }\n\n /**\n * Gets the box's heading text. If `headingHidden` is true,\n * the text will still be returned.\n */\n public async getHeadingText(): Promise<string | undefined> {\n return await (await this.#getHeading())?.text();\n }\n\n /**\n * Whether the heading is hidden.\n */\n public async getHeadingHidden(): Promise<boolean> {\n const heading = await this.#getHeading();\n return (await heading?.hasClass('sky-screen-reader-only')) ?? false;\n }\n\n /**\n * The semantic heading level used for the checkbox group. Returns undefined if heading level is not set.\n */\n public async getHeadingLevel(): Promise<SkyBoxHeadingLevel | undefined> {\n return (await this.#getH2())\n ? 2\n : (await this.#getH3())\n ? 3\n : (await this.#getH4())\n ? 4\n : 5;\n }\n\n /**\n * The heading style used for the checkbox group.\n */\n public async getHeadingStyle(): Promise<SkyBoxHeadingStyle> {\n const heading = await this.#getHeading();\n\n const isHeadingStyle2 = await heading?.hasClass('sky-font-heading-2');\n const isHeadingStyle3 = await heading?.hasClass('sky-font-heading-3');\n const isHeadingStyle4 = await heading?.hasClass('sky-font-heading-4');\n\n return isHeadingStyle2 ? 2 : isHeadingStyle3 ? 3 : isHeadingStyle4 ? 4 : 5;\n }\n\n /**\n * Gets the aria-label property of the box\n */\n public async getAriaLabel(): Promise<string | null> {\n return await (await this.#getBox()).getAttribute('aria-label');\n }\n\n /**\n * Gets the aria-labelledby property of the box\n */\n public async getAriaLabelledby(): Promise<string | null> {\n return await (await this.#getBox()).getAttribute('aria-labelledby');\n }\n\n /**\n * Gets the aria-role property of the box\n */\n public async getAriaRole(): Promise<string | null> {\n return await (await this.#getBox()).getAttribute('role');\n }\n\n async #getHelpInline(): Promise<SkyHelpInlineHarness> {\n const harness = await this.locatorForOptional(\n SkyHelpInlineHarness.with({\n ancestor: '.sky-box-header-content',\n }),\n )();\n\n if (harness) {\n return harness;\n }\n\n throw Error('No help inline found.');\n }\n}\n","import { ComponentHarness } from '@angular/cdk/testing';\n\n/**\n * Harness for interacting with a description list description component in tests.\n * @internal\n */\nexport class SkyDescriptionListDescriptionHarness extends ComponentHarness {\n /**\n * @internal\n */\n public static hostSelector = 'dd';\n\n public async getText(): Promise<string> {\n const description = (\n await (\n await this.locatorFor('.sky-description-list-description')()\n ).text()\n ).trim();\n\n if (description === '') {\n return await (\n await this.locatorFor('.sky-description-list-default-value')()\n ).text();\n }\n return description;\n }\n}\n","import { ComponentHarness } from '@angular/cdk/testing';\n\n/**\n * Harness for interacting with a description list term component in tests.\n * @internal\n */\nexport class SkyDescriptionListTermHarness extends ComponentHarness {\n /**\n * @internal\n */\n public static hostSelector = 'dt';\n\n public async getText(): Promise<string> {\n return await (await this.locatorFor('span.description-list-term')()).text();\n }\n}\n","import { SkyComponentHarness } from '@skyux/core/testing';\nimport { SkyHelpInlineHarness } from '@skyux/help-inline/testing';\n\nimport { SkyDescriptionListDescriptionHarness } from './description-list-description-harness';\nimport { SkyDescriptionListTermHarness } from './description-list-term-harness';\n\n/**\n * Harness for interacting with a description list content component in tests.\n */\nexport class SkyDescriptionListContentHarness extends SkyComponentHarness {\n /**\n * @internal\n */\n public static hostSelector = 'div.sky-description-list-content';\n\n #getDescription = this.locatorForOptional(\n SkyDescriptionListDescriptionHarness,\n );\n #getTerm = this.locatorForOptional(SkyDescriptionListTermHarness);\n\n /**\n * Clicks the help inline button.\n */\n public async clickHelpInline(): Promise<void> {\n await (await this.#getHelpInline()).click();\n }\n\n /**\n * Gets the description component text.\n */\n public async getDescriptionText(): Promise<string> {\n const description = await this.#getDescription();\n\n if (description === null) {\n throw Error('No description list description found.');\n }\n\n return await description.getText();\n }\n\n /**\n * Gets the help popover content.\n */\n public async getHelpPopoverContent(): Promise<string | undefined> {\n return await (await this.#getHelpInline()).getPopoverContent();\n }\n\n /**\n * Gets the help popover title.\n */\n public async getHelpPopoverTitle(): Promise<string | undefined> {\n return await (await this.#getHelpInline()).getPopoverTitle();\n }\n\n /**\n * Gets the term component text.\n */\n public async getTermText(): Promise<string> {\n const term = await this.#getTerm();\n\n if (term === null) {\n throw Error('No description list term found.');\n }\n\n return await term.getText();\n }\n\n async #getHelpInline(): Promise<SkyHelpInlineHarness> {\n const harness = await this.locatorForOptional(SkyHelpInlineHarness)();\n\n if (harness) {\n return harness;\n }\n\n throw Error('No help inline found.');\n }\n}\n","import { HarnessPredicate } from '@angular/cdk/testing';\nimport { SkyComponentHarness } from '@skyux/core/testing';\nimport { SkyDescriptionListModeType } from '@skyux/layout';\n\nimport { SkyDescriptionListContentHarness } from './description-list-content-harness';\nimport { SkyDescriptionListHarnessFilters } from './description-list-harness-filters';\n\n/**\n * Harness for interacting with a description list component in tests.\n */\nexport class SkyDescriptionListHarness extends SkyComponentHarness {\n /**\n * @internal\n */\n public static hostSelector = 'sky-description-list';\n\n #getListEl = this.locatorFor('.sky-description-list');\n #getContentEls = this.locatorForAll(SkyDescriptionListContentHarness);\n\n /**\n * Gets a `HarnessPredicate` that can be used to search for a\n * `SkyDescriptionListHarness` that meets certain criteria\n */\n public static with(\n filters: SkyDescriptionListHarnessFilters,\n ): HarnessPredicate<SkyDescriptionListHarness> {\n return SkyDescriptionListHarness.getDataSkyIdPredicate(filters);\n }\n\n public async getContent(): Promise<SkyDescriptionListContentHarness[]> {\n const items = await this.#getContentEls();\n\n if (items.length === 0) {\n throw new Error('Unable to find any description list content.');\n }\n\n return items;\n }\n\n /**\n * Gets the mode of the description list.\n */\n public async getMode(): Promise<SkyDescriptionListModeType> {\n const listEl = await this.#getListEl();\n\n const longDescription = await listEl.hasClass(\n 'sky-description-list-long-description-mode',\n );\n const horizontal = await listEl.hasClass(\n 'sky-description-list-horizontal-mode',\n );\n\n if (longDescription) {\n return 'longDescription';\n } else if (horizontal) {\n return 'horizontal';\n } else {\n return 'vertical';\n }\n }\n}\n","import { HarnessPredicate } from '@angular/cdk/testing';\nimport { SkyComponentHarness } from '@skyux/core/testing';\n\nimport { SkyColumnHarnessFilters } from './column-harness-filters';\n\nconst sizes = ['xs', 'sm', 'md', 'lg'];\n\n/**\n * Harness for interacting with a fluid grid column component in tests.\n */\nexport class SkyColumnHarness extends SkyComponentHarness {\n /**\n * @internal\n */\n public static hostSelector = 'sky-column';\n\n /**\n * Gets a `HarnessPredicate` that can be used to search for a\n * `SkyColumnHarness` that meets certain criteria\n */\n public static with(\n filters: SkyColumnHarnessFilters,\n ): HarnessPredicate<SkyColumnHarness> {\n return SkyColumnHarness.getDataSkyIdPredicate(filters);\n }\n\n /**\n * Gets the size of the column in an XSmall responsive context.\n */\n public async getXSmallSize(): Promise<number> {\n return await this.#getColumnSize(0);\n }\n\n /**\n * Gets the size of the column in a Small responsive context.\n */\n public async getSmallSize(): Promise<number> {\n return await this.#getColumnSize(1);\n }\n\n /**\n * Gets the size of the column in a Medium responsive context.\n */\n public async getMediumSize(): Promise<number> {\n return await this.#getColumnSize(2);\n }\n\n /**\n * Gets the size of the column in a Large responsive context.\n */\n public async getLargeSize(): Promise<number> {\n return await this.#getColumnSize(3);\n }\n\n async #getColumnSize(index: number): Promise<number> {\n const size = sizes[index];\n\n const result = await this.#getColumnClass(size);\n\n /* istanbul ignore if */\n if (!result && !index) {\n throw Error('No column sizes found.');\n }\n\n return result || (await this.#getColumnSize(index - 1));\n }\n\n async #getColumnClass(size: string): Promise<number> {\n const host = await this.host();\n\n for (let i = 12; i; i--) {\n if (await host.hasClass(`sky-column-${size}-${i}`)) {\n return i;\n }\n }\n\n return 0;\n }\n}\n","import { HarnessPredicate } from '@angular/cdk/testing';\nimport { SkyComponentHarness } from '@skyux/core/testing';\n\nimport { SkyColumnHarness } from './column-harness';\nimport { SkyRowHarnessFilters } from './row-harness-filters';\n\n/**\n * Harness for interacting with a fluid grid column component in tests.\n */\nexport class SkyRowHarness extends SkyComponentHarness {\n /**\n * @internal\n */\n public static hostSelector = 'sky-row';\n\n #getRow = this.locatorFor('.sky-row');\n #getColumns = this.locatorForAll(SkyColumnHarness);\n\n /**\n * Gets a `HarnessPredicate` that can be used to search for a\n * `SkyRowHarness` that meets certain criteria\n */\n public static with(\n filters: SkyRowHarnessFilters,\n ): HarnessPredicate<SkyRowHarness> {\n return SkyRowHarness.getDataSkyIdPredicate(filters);\n }\n\n /**\n * Gets all of the columns in the row.\n */\n public async getColumns(): Promise<SkyColumnHarness[]> {\n return await this.#getColumns();\n }\n\n /**\n * Gets the ordering of the columns in the row.\n * @returns `normal` | `reverse`\n */\n public async getColumnOrder(): Promise<string> {\n const row = await this.#getRow();\n\n return (await row.hasClass('sky-row-reverse')) ? 'reverse' : 'normal';\n }\n}\n","import { HarnessPredicate } from '@angular/cdk/testing';\nimport { SkyComponentHarness } from '@skyux/core/testing';\n\nimport { SkyFluidGridHarnessFilters } from './fluid-grid-harness-filters';\nimport { SkyRowHarness } from './row-harness';\n\n/**\n * Harness for interacting with a fluid grid component in tests.\n */\nexport class SkyFluidGridHarness extends SkyComponentHarness {\n /**\n * @internal\n */\n public static hostSelector = 'sky-fluid-grid';\n\n #getGrid = this.locatorFor('.sky-fluid-grid');\n #getRows = this.locatorForAll(SkyRowHarness);\n\n /**\n * Gets a `HarnessPredicate` that can be used to search for a\n * `SkyFluidGridHarness` that meets certain criteria\n */\n public static with(\n filters: SkyFluidGridHarnessFilters,\n ): HarnessPredicate<SkyFluidGridHarness> {\n return SkyFluidGridHarness.getDataSkyIdPredicate(filters);\n }\n\n /**\n * Gets the gutter size for the grid.\n */\n public async getGutterSize(): Promise<string> {\n const grid = await this.#getGrid();\n\n const small = await grid.hasClass('sky-fluid-grid-gutter-size-small');\n const medium = await grid.hasClass('sky-fluid-grid-gutter-size-medium');\n\n if (small) {\n return 'small';\n } else if (medium) {\n return 'medium';\n } else {\n return 'large';\n }\n }\n\n /**\n * Gets all of the rows in the grid.\n */\n public async getRows(): Promise<SkyRowHarness[]> {\n return await this.#getRows();\n }\n\n /**\n * Whether the fluid grid has margin enabled.\n */\n public async hasMargin(): Promise<boolean> {\n return !(await (\n await this.#getGrid()\n ).hasClass('sky-fluid-grid-no-margin'));\n }\n}\n","import { ComponentHarness } from '@angular/cdk/testing';\n\n/**\n * Harness for interacting with a text expand modal component in tests.\n */\nexport class SkyTextExpandModalHarness extends ComponentHarness {\n /**\n * @internal\n */\n public static hostSelector = 'sky-text-expand-modal';\n\n #getCloseButton = this.locatorFor('sky-modal-footer button.sky-btn');\n #getHeader = this.locatorFor('sky-modal-header');\n #getText = this.locatorFor('sky-modal-content.sky-text-expand-modal-content');\n\n /**\n * Clicks the modal close button.\n */\n public async clickCloseButton(): Promise<void> {\n const button = await this.#getCloseButton();\n\n await button.click();\n }\n\n /**\n * Gets the modal title.\n */\n public async getExpandModalTitle(): Promise<string> {\n return await (await this.#getHeader()).text();\n }\n\n /**\n * Gets the expanded text in the modal.\n */\n public async getText(): Promise<string> {\n return await (await this.#getText()).text();\n }\n}\n","import { HarnessPredicate } from '@angular/cdk/testing';\nimport { SkyComponentHarness } from '@skyux/core/testing';\n\nimport { SkyTextExpandHarnessFilters } from './text-expand-harness-filters';\nimport { SkyTextExpandModalHarness } from './text-expand-modal-harness';\n\n/**\n * Harness for interacting with a text expand component in tests.\n */\nexport class SkyTextExpandHarness extends SkyComponentHarness {\n /**\n * @internal\n */\n public static hostSelector = 'sky-text-expand';\n\n #documentRootLocator = this.documentRootLocatorFactory();\n #getExpandCollapseButton = this.locatorForOptional(\n '.sky-text-expand-see-more',\n );\n #getText = this.locatorFor('.sky-text-expand-text');\n\n /**\n * Gets a `HarnessPredicate` that can be used to search for a\n * `SkyTextExpandHarness` that meets certain criteria.\n */\n public static with(\n filters: SkyTextExpandHarnessFilters,\n ): HarnessPredicate<SkyTextExpandHarness> {\n return SkyTextExpandHarness.getDataSkyIdPredicate(filters);\n }\n\n /**\n * Clicks the button element that expands or collapses text.\n */\n public async clickExpandCollapseButton(): Promise<void> {\n const button = await this.#getExpandCollapseButton();\n\n if (button === null) {\n throw Error('Could not find button element.');\n }\n\n await button.click();\n }\n\n /**\n * Gets the harness to interact with the modal expanded view.\n */\n public async getExpandedViewModal(): Promise<SkyTextExpandModalHarness> {\n const modal = await this.#documentRootLocator.locatorForOptional(\n SkyTextExpandModalHarness,\n )();\n\n if (modal === null) {\n throw Error('Could not find text expand modal.');\n }\n\n return modal;\n }\n\n /**\n * Gets the text content of the text expand.\n */\n public async getText(): Promise<string> {\n return await (await this.#getText()).text();\n }\n\n /**\n * Whether the text will expand to a modal.\n */\n public async textExpandsToModal(): Promise<boolean> {\n return (\n (await (\n await this.#getExpandCollapseButton()\n )?.getAttribute('aria-haspopup')) !== null\n );\n }\n\n /**\n * Whether the text is expanded.\n */\n public async isExpanded(): Promise<boolean> {\n if (await this.textExpandsToModal()) {\n try {\n await this.getExpandedViewModal();\n return true;\n } catch {\n return false;\n }\n }\n\n return (\n (await (\n await this.#getExpandCollapseButton()\n )?.getAttribute('aria-expanded')) === 'true'\n );\n }\n}\n","import { HarnessPredicate } from '@angular/cdk/testing';\nimport { SkyQueryableComponentHarness } from '@skyux/core/testing';\n\nimport { SkyToolbarItemHarnessFilters } from './toolbar-item-harness-filters';\n\n/**\n * Harness to interact with a toolbar item component in tests.\n */\nexport class SkyToolbarItemHarness extends SkyQueryableComponentHarness {\n /**\n * @internal\n */\n public static hostSelector = 'sky-toolbar-item';\n\n /**\n * Gets a `HarnessPredicate` that can be used to search for a\n * `SkyToolbarItemHarness` that meets certain criteria.\n */\n public static with(\n filters: SkyToolbarItemHarnessFilters,\n ): HarnessPredicate<SkyToolbarItemHarness> {\n return SkyToolbarItemHarness.getDataSkyIdPredicate(filters);\n }\n}\n","import { SkyQueryableComponentHarness } from '@skyux/core/testing';\n\n/**\n * Harness to interact with a toolbar view actions component in tests.\n */\nexport class SkyToolbarViewActionsHarness extends SkyQueryableComponentHarness {\n /**\n * @internal\n */\n public static hostSelector = 'sky-toolbar-view-actions';\n}\n","import { HarnessPredicate } from '@angular/cdk/testing';\nimport { SkyComponentHarness } from '@skyux/core/testing';\n\nimport { SkyToolbarItemHarness } from './toolbar-item-harness';\nimport { SkyToolbarItemHarnessFilters } from './toolbar-item-harness-filters';\nimport { SkyToolbarSectionHarnessFilters } from './toolbar-section-harness-filters';\nimport { SkyToolbarViewActionsHarness } from './toolbar-view-actions-harness';\n\n/**\n * Harness to interact with a toolbar section component in tests.\n */\nexport class SkyToolbarSectionHarness extends SkyComponentHarness {\n /**\n * @internal\n */\n public static hostSelector = 'sky-toolbar-section';\n\n #getViewActions = this.locatorForOptional(SkyToolbarViewActionsHarness);\n\n /**\n * Gets a `HarnessPredicate` that can be used to search for a\n * `SkyToolbarSectionHarness` that meets certain criteria.\n */\n public static with(\n filters: SkyToolbarSectionHarnessFilters,\n ): HarnessPredicate<SkyToolbarSectionHarness> {\n return SkyToolbarSectionHarness.getDataSkyIdPredicate(filters);\n }\n\n /**\n * Gets a harness for a specific toolbar item that meets certain criteria.\n */\n public async getItem(\n filter: SkyToolbarItemHarnessFilters,\n ): Promise<SkyToolbarItemHarness> {\n return await this.locatorFor(SkyToolbarItemHarness.with(filter))();\n }\n\n /**\n * Gets an array of all toolbar items.\n */\n public async getItems(\n filters?: SkyToolbarItemHarnessFilters,\n ): Promise<SkyToolbarItemHarness[]> {\n const items = await this.locatorForAll(\n SkyToolbarItemHarness.with(filters || {}),\n )();\n\n if (items.length === 0) {\n if (filters) {\n throw new Error(\n `Unable to find any toolbar section items with filter(s): ${JSON.stringify(filters)}`,\n );\n }\n throw new Error('Unable to find any toolbar section items.');\n }\n\n return items;\n }\n\n /**\n * Gets the harness to interact with the toolbar's view actions.\n */\n public async getViewActions(): Promise<SkyToolbarViewActionsHarness> {\n const actions = await this.#getViewActions();\n\n if (actions === null) {\n throw Error('Unable to find toolbar section view actions.');\n }\n\n return actions;\n }\n}\n","import { HarnessPredicate } from '@angular/cdk/testing';\nimport { SkyComponentHarness } from '@skyux/core/testing';\n\nimport { SkyToolbarHarnessFilters } from './toolbar-harness-filters';\nimport { SkyToolbarItemHarness } from './toolbar-item-harness';\nimport { SkyToolbarItemHarnessFilters } from './toolbar-item-harness-filters';\nimport { SkyToolbarSectionHarness } from './toolbar-section-harness';\nimport { SkyToolbarSectionHarnessFilters } from './toolbar-section-harness-filters';\nimport { SkyToolbarViewActionsHarness } from './toolbar-view-actions-harness';\n\n/**\n * Harness for interacting with a toolbar component in tests.\n */\nexport class SkyToolbarHarness extends SkyComponentHarness {\n /**\n * @internal\n */\n public static hostSelector = 'sky-toolbar';\n\n #getViewActions = this.locatorForOptional(SkyToolbarViewActionsHarness);\n\n /**\n * Gets a `HarnessPredicate` that can be used to search for a\n * `SkyToolbarHarness` that meets certain criteria.\n */\n public static with(\n filters: SkyToolbarHarnessFilters,\n ): HarnessPredicate<SkyToolbarHarness> {\n return SkyToolbarHarness.getDataSkyIdPredicate(filters);\n }\n\n /**\n * Gets a harness for a specific toolbar item that meets certain criteria.\n */\n public async getItem(\n filter: SkyToolbarItemHarnessFilters,\n ): Promise<SkyToolbarItemHarness> {\n return await this.locatorFor(SkyToolbarItemHarness.with(filter))();\n }\n\n /**\n * Gets an array of all toolbar items.\n */\n public async getItems(\n filters?: SkyToolbarItemHarnessFilters,\n ): Promise<SkyToolbarItemHarness[]> {\n const items = await this.locatorForAll(\n SkyToolbarItemHarness.with(filters || {}),\n )();\n\n if (items.length === 0) {\n if (filters) {\n throw new Error(\n `Unable to find any toolbar items with filter(s): ${JSON.stringify(filters)}`,\n );\n }\n throw new Error('Unable to find any toolbar items.');\n }\n\n return items;\n }\n\n /**\n * Gets a harness for a specific toolbar section that meets certain criteria.\n */\n public async getSection(\n filter: SkyToolbarSectionHarnessFilters,\n ): Promise<SkyToolbarSectionHarness> {\n return await this.locatorFor(SkyToolbarSectionHarness.with(filter))();\n }\n\n /**\n * Gets an array of all toolbar sections.\n */\n public async getSections(\n filters?: SkyToolbarSectionHarnessFilters,\n ): Promise<SkyToolbarSectionHarness[]> {\n const sections = await this.locatorForAll(\n SkyToolbarSectionHarness.with(filters || {}),\n )();\n\n if (sections.length === 0) {\n if (filters) {\n throw new Error(\n `Unable to find any toolbar sections with filter(s): ${JSON.stringify(filters)}`,\n );\n }\n throw new Error('Unable to find any toolbar sections.');\n }\n\n return sections;\n }\n\n /**\n * Gets the harness to interact with the toolbar's view actions.\n */\n public async getViewActions(): Promise<SkyToolbarViewActionsHarness> {\n const actions = await this.#getViewActions();\n\n if (actions === null) {\n throw Error('Unable to find toolbar view actions.');\n }\n\n return actions;\n }\n}\n","import { HarnessPredicate } from '@angular/cdk/testing';\nimport { SkyComponentHarness } from '@skyux/core/testing';\nimport { SkyIconHarness } from '@skyux/icon/testing';\n\nimport { SkyActionButtonHarnessFilters } from './action-button-harness.filters';\n\n/**\n * Harness for interacting with a action button component in tests.\n */\nexport class SkyActionButtonHarness extends SkyComponentHarness {\n /**\n * @internal\n */\n public static hostSelector = 'sky-action-button';\n\n #actionButton = this.locatorFor('.sky-action-button');\n\n /**\n * Gets a `HarnessPredicate` that can be used to search for a\n * `SkyActionButtonHarness` that meets certain criteria.\n */\n public static with(\n filters: SkyActionButtonHarnessFilters,\n ): HarnessPredicate<SkyActionButtonHarness> {\n return SkyActionButtonHarness.getDataSkyIdPredicate(filters).addOption(\n 'header',\n filters.header,\n async (harness, header) => {\n const harnessHeaderText = await harness.getHeaderText();\n return await HarnessPredicate.stringMatches(harnessHeaderText, header);\n },\n );\n }\n\n /**\n * Clicks the action button.\n */\n public async click(): Promise<void> {\n return await (await this.#actionButton()).click();\n }\n\n /**\n * Gets the action button details text.\n */\n public async getDetailsText(): Promise<string | null> {\n const details = await this.locatorFor('sky-action-button-details')();\n return (await details.text()).trim();\n }\n\n /**\n * Gets the action button header text.\n */\n public async getHeaderText(): Promise<string | null> {\n const header = await this.locatorFor('.sky-action-button-header')();\n return (await header.text()).trim();\n }\n\n /**\n * Gets the action button icon type.\n */\n public async getIconType(): Promise<string | undefined> {\n const icon = await this.locatorFor(SkyIconHarness)();\n return await icon.getIconName();\n }\n\n /**\n * Gets the action button link.\n */\n public async getLink(): Promise<string | undefined> {\n return (await (await this.#actionButton()).getProperty('href')).trim();\n }\n}\n","import { HarnessPredicate } from '@angular/cdk/testing';\nimport { SkyComponentHarness } from '@skyux/core/testing';\nimport { SkyActionButtonContainerAlignItemsType } from '@skyux/layout';\n\nimport { SkyActionButtonContainerHarnessFilters } from './action-button-container-harness.filters';\nimport { SkyActionButtonHarness } from './action-button-harness';\nimport { SkyActionButtonHarnessFilters } from './action-button-harness.filters';\n\n/**\n * Harness for interacting with a action button container component in tests.\n */\nexport class SkyActionButtonContainerHarness extends SkyComponentHarness {\n /**\n * @internal\n */\n public static hostSelector = 'sky-action-button-container';\n\n /**\n * Gets a `HarnessPredicate` that can be used to search for a\n * `SkyActionButtonContainerHarness` that meets certain criteria.\n */\n public static with(\n filters: SkyActionButtonContainerHarnessFilters,\n ): HarnessPredicate<SkyActionButtonContainerHarness> {\n return SkyActionButtonContainerHarness.getDataSkyIdPredicate(filters);\n }\n\n /**\n * Gets an action button that matches the given filter.\n */\n public async getActionButton(\n filter: SkyActionButtonHarnessFilters,\n ): Promise<SkyActionButtonHarness> {\n return await this.locatorFor(SkyActionButtonHarness.with(filter))();\n }\n\n /**\n * Gets the action buttons.\n */\n public async getActionButtons(): Promise<SkyActionButtonHarness[]> {\n return await this.locatorForAll(SkyActionButtonHarness)();\n }\n\n /**\n * Gets the alignment of the buttons inside the container.\n */\n public async getAlignment(): Promise<SkyActionButtonContainerAlignItemsType> {\n return (await (\n await this.locatorFor('.sky-action-button-flex')()\n ).hasClass('sky-action-button-flex-align-left'))\n ? 'left'\n : 'center';\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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