@skyux/pages 14.7.0 → 15.0.0-alpha.1

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.
@@ -97,7 +97,6 @@ class SkyNeedsAttentionHarness extends SkyComponentHarness {
97
97
  */
98
98
  static { this.hostSelector = 'sky-needs-attention'; }
99
99
  #boxHarness = this.locatorFor(SkyBoxHarness);
100
- #getContent = this.locatorFor('sky-box-content');
101
100
  #getList = this.locatorFor('ul.sky-needs-attention-list');
102
101
  /**
103
102
  * Gets a `HarnessPredicate` that can be used to search for a
@@ -110,18 +109,14 @@ class SkyNeedsAttentionHarness extends SkyComponentHarness {
110
109
  * Gets the component's heading text. If there are no links, this will return `undefined`.
111
110
  */
112
111
  async getTitle() {
113
- return await (await this.#boxHarness()).getHeadingText();
112
+ return await this.#boxHarness().then((box) => box.getHeadingText(), () => undefined);
114
113
  }
115
114
  /**
116
- * Gets the text from an empty list. If there are items in the list, this will return `undefined`.
115
+ * Needs attention no longer shows an empty list, so this will always return `undefined`.
116
+ * @deprecated
117
117
  */
118
118
  async getEmptyListText() {
119
- return await this.hasItems().then(async (hasItems) => {
120
- if (hasItems) {
121
- return undefined;
122
- }
123
- return (await (await this.#getContent()).text()).trim();
124
- });
119
+ return await Promise.resolve(undefined);
125
120
  }
126
121
  /**
127
122
  * Whether the link list is showing a list of links.
@@ -1 +1 @@
1
- {"version":3,"file":"skyux-pages-testing.mjs","sources":["../../../../../libs/components/pages/testing/src/modules/link-list/link-list-item-harness.ts","../../../../../libs/components/pages/testing/src/modules/link-list/link-list-harness.ts","../../../../../libs/components/pages/testing/src/modules/needs-attention/needs-attention-harness.ts","../../../../../libs/components/pages/testing/src/modules/needs-attention/needs-attention-item-harness.ts","../../../../../libs/components/pages/testing/src/modules/page-header/page-header-harness.ts","../../../../../libs/components/pages/testing/src/modules/action-hub/action-hub-harness.ts","../../../../../libs/components/pages/testing/src/modules/page/page-harness.ts","../../../../../libs/components/pages/testing/src/skyux-pages-testing.ts"],"sourcesContent":["import { HarnessPredicate } from '@angular/cdk/testing';\nimport { SkyComponentHarness } from '@skyux/core/testing';\n\nimport { SkyLinkListItemHarnessFilters } from './link-list-item-harness-filters';\n\n/**\n * Harness for interacting with a linked list item in tests.\n */\nexport class SkyLinkListItemHarness extends SkyComponentHarness {\n /**\n * @internal\n */\n public static hostSelector =\n 'a.sky-link-list-item, button.sky-link-list-item';\n\n /**\n * Gets a `HarnessPredicate` that can be used to search for a\n * `SkyLinkListItemHarness` that meets certain criteria.\n */\n public static with(\n filters: SkyLinkListItemHarnessFilters,\n ): HarnessPredicate<SkyLinkListItemHarness> {\n return SkyLinkListItemHarness.getDataSkyIdPredicate(filters).addOption(\n 'text',\n filters.text,\n async (harness, text) => {\n const itemText = await harness.getText();\n return await HarnessPredicate.stringMatches(itemText, text);\n },\n );\n }\n\n /**\n * Gets the text content of the item.\n */\n public async getText(): Promise<string> {\n return await (await this.host()).text();\n }\n\n /**\n * Clicks the item.\n */\n public async click(): Promise<void> {\n return await (await this.host()).click();\n }\n}\n","import { HarnessPredicate } from '@angular/cdk/testing';\nimport { SkyComponentHarness } from '@skyux/core/testing';\nimport { SkyWaitHarness } from '@skyux/indicators/testing';\n\nimport { SkyLinkListHarnessFilters } from './link-list-harness-filters';\nimport { SkyLinkListItemHarness } from './link-list-item-harness';\nimport { SkyLinkListItemHarnessFilters } from './link-list-item-harness-filters';\n\n/**\n * Harness for interacting with a link list component in tests.\n */\nexport class SkyLinkListHarness extends SkyComponentHarness {\n /**\n * @internal\n */\n public static hostSelector =\n 'sky-link-list, sky-link-list-recently-accessed, sky-modal-link-list';\n\n #getHeading = this.locatorFor('h2.sky-font-heading-4');\n #getList = this.locatorFor('ul.sky-link-list');\n\n /**\n * Gets a `HarnessPredicate` that can be used to search for a\n * `SkyLinkListHarness` that meets certain criteria.\n */\n public static with(\n filters: SkyLinkListHarnessFilters,\n ): HarnessPredicate<SkyLinkListHarness> {\n return SkyLinkListHarness.getDataSkyIdPredicate(filters);\n }\n\n /**\n * Gets the link list's heading text. If there are no links, this will return `undefined`.\n */\n public async getHeadingText(): Promise<string | undefined> {\n return await this.#getHeading().then(\n (el) => el.text(),\n () => undefined,\n );\n }\n\n /**\n * Whether the link list is showing a list of links.\n */\n public async isVisible(): Promise<boolean> {\n return await this.#getList().then(\n () => true,\n () => false,\n );\n }\n\n /**\n * Gets the status of the wait indicator.\n */\n public async isWaiting(): Promise<boolean> {\n const waitHarness = await this.locatorFor(SkyWaitHarness)();\n return await waitHarness.isWaiting();\n }\n\n /**\n * Gets a specific link list item based on the filter criteria.\n * @param filter The filter criteria.\n */\n public async getListItem(\n filter: SkyLinkListItemHarnessFilters,\n ): Promise<SkyLinkListItemHarness> {\n return await this.locatorFor(SkyLinkListItemHarness.with(filter))();\n }\n\n /**\n * Gets an array of link list items based on the filter criteria.\n * If no filter is provided, returns all link list items.\n * @param filter The optional filter criteria.\n */\n public async getListItems(\n filter?: SkyLinkListItemHarnessFilters,\n ): Promise<SkyLinkListItemHarness[]> {\n return await this.locatorForAll(\n SkyLinkListItemHarness.with(filter || {}),\n )();\n }\n}\n","import { HarnessPredicate } from '@angular/cdk/testing';\nimport { SkyComponentHarness } from '@skyux/core/testing';\nimport { SkyBoxHarness } from '@skyux/layout/testing';\n\nimport { SkyNeedsAttentionHarnessFilters } from './needs-attention-harness-filters';\n\n/**\n * Harness for interacting with the needs-attention component in tests.\n */\nexport class SkyNeedsAttentionHarness extends SkyComponentHarness {\n /**\n * @internal\n */\n public static hostSelector = 'sky-needs-attention';\n\n readonly #boxHarness = this.locatorFor(SkyBoxHarness);\n readonly #getContent = this.locatorFor('sky-box-content');\n readonly #getList = this.locatorFor('ul.sky-needs-attention-list');\n\n /**\n * Gets a `HarnessPredicate` that can be used to search for a\n * `SkyNeedsAttentionHarness` that meets certain criteria.\n */\n public static with(\n filters: SkyNeedsAttentionHarnessFilters,\n ): HarnessPredicate<SkyNeedsAttentionHarness> {\n return SkyNeedsAttentionHarness.getDataSkyIdPredicate(filters);\n }\n\n /**\n * Gets the component's heading text. If there are no links, this will return `undefined`.\n */\n public async getTitle(): Promise<string | undefined> {\n return await (await this.#boxHarness()).getHeadingText();\n }\n\n /**\n * Gets the text from an empty list. If there are items in the list, this will return `undefined`.\n */\n public async getEmptyListText(): Promise<string | undefined> {\n return await this.hasItems().then(async (hasItems) => {\n if (hasItems) {\n return undefined;\n }\n return (await (await this.#getContent()).text()).trim();\n });\n }\n\n /**\n * Whether the link list is showing a list of links.\n */\n public async hasItems(): Promise<boolean> {\n return await this.#getList().then(\n () => true,\n () => false,\n );\n }\n}\n","import { HarnessPredicate } from '@angular/cdk/testing';\nimport { SkyComponentHarness } from '@skyux/core/testing';\n\nimport { SkyNeedsAttentionItemHarnessFilters } from './needs-attention-item-harness-filters';\n\n/**\n * Harness for interacting with a needs attention item in tests.\n */\nexport class SkyNeedsAttentionItemHarness extends SkyComponentHarness {\n /**\n * @internal\n */\n public static hostSelector =\n 'li.sky-needs-attention-item-wrapper > a.sky-needs-attention-item, li.sky-needs-attention-item-wrapper > button.sky-needs-attention-item';\n\n /**\n * Gets a `HarnessPredicate` that can be used to search for a\n * `SkyNeedsAttentionItemHarness` that meets certain criteria.\n */\n public static with(\n filters: SkyNeedsAttentionItemHarnessFilters,\n ): HarnessPredicate<SkyNeedsAttentionItemHarness> {\n return SkyNeedsAttentionItemHarness.getDataSkyIdPredicate(\n filters,\n ).addOption('text', filters.text, async (harness, text) => {\n const itemText = await harness.getText();\n return await HarnessPredicate.stringMatches(itemText, text);\n });\n }\n\n /**\n * Gets the text content of the item.\n */\n public async getText(): Promise<string> {\n return await (await this.host()).text();\n }\n\n /**\n * Clicks the item.\n */\n public async click(): Promise<void> {\n return await (await this.host()).click();\n }\n}\n","import { HarnessPredicate } from '@angular/cdk/testing';\nimport { SkyComponentHarness } from '@skyux/core/testing';\n\nimport { SkyPageHeaderHarnessFilters } from './page-header-harness-filters';\n\n/**\n * Harness for interacting with a page header component in tests.\n */\nexport class SkyPageHeaderHarness extends SkyComponentHarness {\n /**\n * @internal\n */\n public static hostSelector = 'sky-page-header';\n\n #getTitle = this.locatorFor('.sky-page-header-page-title');\n #getParentLink = this.locatorForOptional('.sky-page-header-parent-link');\n\n /**\n * Gets a `HarnessPredicate` that can be used to search for a\n * `SkyPageHeaderHarness` that meets certain criteria.\n */\n public static with(\n filters: SkyPageHeaderHarnessFilters,\n ): HarnessPredicate<SkyPageHeaderHarness> {\n return SkyPageHeaderHarness.getDataSkyIdPredicate(filters);\n }\n\n /**\n * Gets the current page title.\n */\n public async getPageTitle(): Promise<string | undefined> {\n const title = await this.#getTitle();\n\n return await title.text();\n }\n\n /**\n * Gets the current page title.\n */\n public async getParentLinkText(): Promise<string> {\n const parentLink = await this.#getParentLink();\n\n if (parentLink) {\n return await parentLink.text();\n }\n\n throw new Error('No parent link was found in the page header.');\n }\n}\n","import { HarnessPredicate } from '@angular/cdk/testing';\nimport { SkyComponentHarness } from '@skyux/core/testing';\n\nimport { SkyLinkListHarness } from '../link-list/link-list-harness';\nimport { SkyNeedsAttentionHarness } from '../needs-attention/needs-attention-harness';\nimport { SkyNeedsAttentionItemHarness } from '../needs-attention/needs-attention-item-harness';\nimport { SkyNeedsAttentionItemHarnessFilters } from '../needs-attention/needs-attention-item-harness-filters';\nimport { SkyPageHeaderHarness } from '../page-header/page-header-harness';\n\nimport { SkyActionHubHarnessFilters } from './action-hub-harness-filters';\n\n/**\n * Harness for interacting with an action hub component in tests.\n */\nexport class SkyActionHubHarness extends SkyComponentHarness {\n /**\n * @internal\n */\n public static hostSelector = 'sky-action-hub';\n\n readonly #pageHeader = this.locatorFor(SkyPageHeaderHarness);\n readonly #needsAttention = this.locatorFor(SkyNeedsAttentionHarness);\n readonly #relatedLinks = this.locatorFor(\n SkyLinkListHarness.with({\n selector: 'sky-page-links > sky-link-list',\n }),\n );\n readonly #recentLinks = this.locatorFor(\n SkyLinkListHarness.with({\n selector: 'sky-page-links > sky-link-list-recently-accessed',\n }),\n );\n readonly #settingsLinks = this.locatorFor(\n SkyLinkListHarness.with({\n selector: 'sky-page-links > sky-modal-link-list',\n }),\n );\n\n /**\n * Gets a `HarnessPredicate` that can be used to search for a\n * `SkyLinkListHarness` that meets certain criteria.\n */\n public static with(\n filters: SkyActionHubHarnessFilters,\n ): HarnessPredicate<SkyActionHubHarness> {\n return SkyActionHubHarness.getDataSkyIdPredicate(filters);\n }\n\n /**\n * Gets the title of the action hub.\n */\n public async getTitle(): Promise<string | undefined> {\n return await (await this.#pageHeader()).getPageTitle();\n }\n\n /**\n * Get the testing harness for the needs attention block.\n */\n public async getNeedsAttentionBlock(): Promise<SkyNeedsAttentionHarness> {\n return await this.#needsAttention();\n }\n\n /**\n * Gets a specific needs attention item based on the filter criteria.\n * @param filter The filter criteria.\n */\n public async getNeedsAttentionItem(\n filter: SkyNeedsAttentionItemHarnessFilters,\n ): Promise<SkyNeedsAttentionItemHarness> {\n return await this.locatorFor(SkyNeedsAttentionItemHarness.with(filter))();\n }\n\n /**\n * Gets an array of needs attention items based on the filter criteria.\n * If no filter is provided, returns all needs attention items.\n * @param filters The optional filter criteria.\n */\n public async getNeedsAttentionItems(\n filters?: SkyNeedsAttentionItemHarnessFilters,\n ): Promise<SkyNeedsAttentionItemHarness[]> {\n return await this.locatorForAll(\n SkyNeedsAttentionItemHarness.with(filters || {}),\n )();\n }\n\n /**\n * Get the testing harness for the related links block.\n */\n public async getRelatedLinks(): Promise<SkyLinkListHarness> {\n return await this.#relatedLinks();\n }\n\n /**\n * Get the testing harness for the recent links block.\n */\n public async getRecentLinks(): Promise<SkyLinkListHarness> {\n return await this.#recentLinks();\n }\n\n /**\n * Get the testing harness for the settings links block.\n */\n public async getSettingsLinks(): Promise<SkyLinkListHarness> {\n return await this.#settingsLinks();\n }\n}\n","import { HarnessPredicate } from '@angular/cdk/testing';\nimport { SkyComponentHarness } from '@skyux/core/testing';\nimport { SkyPageLayoutType } from '@skyux/pages';\n\nimport { SkyPageHeaderHarness } from '../page-header/page-header-harness';\nimport { SkyPageHeaderHarnessFilters } from '../page-header/page-header-harness-filters';\n\nimport { SkyPageHarnessFilters } from './page-harness-filters';\n\nconst LAYOUT_PREFIX = 'sky-layout-host-';\nconst LAYOUT_TYPES: SkyPageLayoutType[] = ['blocks', 'fit', 'list', 'tabs'];\n\n/**\n * Harness for interacting with a page component in tests.\n */\nexport class SkyPageHarness extends SkyComponentHarness {\n /**\n * @internal\n */\n public static hostSelector = 'sky-page';\n\n /**\n * Gets a `HarnessPredicate` that can be used to search for a\n * `SkyPageHarness` that meets certain criteria.\n */\n public static with(\n filters: SkyPageHarnessFilters,\n ): HarnessPredicate<SkyPageHarness> {\n return SkyPageHarness.getDataSkyIdPredicate(filters);\n }\n\n /**\n * Gets the current layout.\n */\n public async getLayout(): Promise<SkyPageLayoutType> {\n const page = await this.host();\n\n for (const layout of LAYOUT_TYPES) {\n if (await page.hasClass(`${LAYOUT_PREFIX}${layout}`)) {\n return layout;\n }\n }\n\n return 'none';\n }\n\n /**\n * Gets the first page header that matches the given filters.\n * @param filters filters for which page header to return\n */\n public async getPageHeader(\n filters?: SkyPageHeaderHarnessFilters,\n ): Promise<SkyPageHeaderHarness> {\n const pageHeader = await this.locatorForOptional(\n SkyPageHeaderHarness.with(filters || {}),\n )();\n if (pageHeader) {\n return pageHeader;\n }\n\n throw new Error(\n `Unable to find a page header with filter(s): ${JSON.stringify(\n filters,\n )}.`,\n );\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"skyux-pages-testing.mjs","sources":["../../../../../libs/components/pages/testing/src/modules/link-list/link-list-item-harness.ts","../../../../../libs/components/pages/testing/src/modules/link-list/link-list-harness.ts","../../../../../libs/components/pages/testing/src/modules/needs-attention/needs-attention-harness.ts","../../../../../libs/components/pages/testing/src/modules/needs-attention/needs-attention-item-harness.ts","../../../../../libs/components/pages/testing/src/modules/page-header/page-header-harness.ts","../../../../../libs/components/pages/testing/src/modules/action-hub/action-hub-harness.ts","../../../../../libs/components/pages/testing/src/modules/page/page-harness.ts","../../../../../libs/components/pages/testing/src/skyux-pages-testing.ts"],"sourcesContent":["import { HarnessPredicate } from '@angular/cdk/testing';\nimport { SkyComponentHarness } from '@skyux/core/testing';\n\nimport { SkyLinkListItemHarnessFilters } from './link-list-item-harness-filters';\n\n/**\n * Harness for interacting with a linked list item in tests.\n */\nexport class SkyLinkListItemHarness extends SkyComponentHarness {\n /**\n * @internal\n */\n public static hostSelector =\n 'a.sky-link-list-item, button.sky-link-list-item';\n\n /**\n * Gets a `HarnessPredicate` that can be used to search for a\n * `SkyLinkListItemHarness` that meets certain criteria.\n */\n public static with(\n filters: SkyLinkListItemHarnessFilters,\n ): HarnessPredicate<SkyLinkListItemHarness> {\n return SkyLinkListItemHarness.getDataSkyIdPredicate(filters).addOption(\n 'text',\n filters.text,\n async (harness, text) => {\n const itemText = await harness.getText();\n return await HarnessPredicate.stringMatches(itemText, text);\n },\n );\n }\n\n /**\n * Gets the text content of the item.\n */\n public async getText(): Promise<string> {\n return await (await this.host()).text();\n }\n\n /**\n * Clicks the item.\n */\n public async click(): Promise<void> {\n return await (await this.host()).click();\n }\n}\n","import { HarnessPredicate } from '@angular/cdk/testing';\nimport { SkyComponentHarness } from '@skyux/core/testing';\nimport { SkyWaitHarness } from '@skyux/indicators/testing';\n\nimport { SkyLinkListHarnessFilters } from './link-list-harness-filters';\nimport { SkyLinkListItemHarness } from './link-list-item-harness';\nimport { SkyLinkListItemHarnessFilters } from './link-list-item-harness-filters';\n\n/**\n * Harness for interacting with a link list component in tests.\n */\nexport class SkyLinkListHarness extends SkyComponentHarness {\n /**\n * @internal\n */\n public static hostSelector =\n 'sky-link-list, sky-link-list-recently-accessed, sky-modal-link-list';\n\n #getHeading = this.locatorFor('h2.sky-font-heading-4');\n #getList = this.locatorFor('ul.sky-link-list');\n\n /**\n * Gets a `HarnessPredicate` that can be used to search for a\n * `SkyLinkListHarness` that meets certain criteria.\n */\n public static with(\n filters: SkyLinkListHarnessFilters,\n ): HarnessPredicate<SkyLinkListHarness> {\n return SkyLinkListHarness.getDataSkyIdPredicate(filters);\n }\n\n /**\n * Gets the link list's heading text. If there are no links, this will return `undefined`.\n */\n public async getHeadingText(): Promise<string | undefined> {\n return await this.#getHeading().then(\n (el) => el.text(),\n () => undefined,\n );\n }\n\n /**\n * Whether the link list is showing a list of links.\n */\n public async isVisible(): Promise<boolean> {\n return await this.#getList().then(\n () => true,\n () => false,\n );\n }\n\n /**\n * Gets the status of the wait indicator.\n */\n public async isWaiting(): Promise<boolean> {\n const waitHarness = await this.locatorFor(SkyWaitHarness)();\n return await waitHarness.isWaiting();\n }\n\n /**\n * Gets a specific link list item based on the filter criteria.\n * @param filter The filter criteria.\n */\n public async getListItem(\n filter: SkyLinkListItemHarnessFilters,\n ): Promise<SkyLinkListItemHarness> {\n return await this.locatorFor(SkyLinkListItemHarness.with(filter))();\n }\n\n /**\n * Gets an array of link list items based on the filter criteria.\n * If no filter is provided, returns all link list items.\n * @param filter The optional filter criteria.\n */\n public async getListItems(\n filter?: SkyLinkListItemHarnessFilters,\n ): Promise<SkyLinkListItemHarness[]> {\n return await this.locatorForAll(\n SkyLinkListItemHarness.with(filter || {}),\n )();\n }\n}\n","import { HarnessPredicate } from '@angular/cdk/testing';\nimport { SkyComponentHarness } from '@skyux/core/testing';\nimport { SkyBoxHarness } from '@skyux/layout/testing';\n\nimport { SkyNeedsAttentionHarnessFilters } from './needs-attention-harness-filters';\n\n/**\n * Harness for interacting with the needs-attention component in tests.\n */\nexport class SkyNeedsAttentionHarness extends SkyComponentHarness {\n /**\n * @internal\n */\n public static hostSelector = 'sky-needs-attention';\n\n readonly #boxHarness = this.locatorFor(SkyBoxHarness);\n readonly #getList = this.locatorFor('ul.sky-needs-attention-list');\n\n /**\n * Gets a `HarnessPredicate` that can be used to search for a\n * `SkyNeedsAttentionHarness` that meets certain criteria.\n */\n public static with(\n filters: SkyNeedsAttentionHarnessFilters,\n ): HarnessPredicate<SkyNeedsAttentionHarness> {\n return SkyNeedsAttentionHarness.getDataSkyIdPredicate(filters);\n }\n\n /**\n * Gets the component's heading text. If there are no links, this will return `undefined`.\n */\n public async getTitle(): Promise<string | undefined> {\n return await this.#boxHarness().then(\n (box) => box.getHeadingText(),\n () => undefined,\n );\n }\n\n /**\n * Needs attention no longer shows an empty list, so this will always return `undefined`.\n * @deprecated\n */\n public async getEmptyListText(): Promise<string | undefined> {\n return await Promise.resolve(undefined);\n }\n\n /**\n * Whether the link list is showing a list of links.\n */\n public async hasItems(): Promise<boolean> {\n return await this.#getList().then(\n () => true,\n () => false,\n );\n }\n}\n","import { HarnessPredicate } from '@angular/cdk/testing';\nimport { SkyComponentHarness } from '@skyux/core/testing';\n\nimport { SkyNeedsAttentionItemHarnessFilters } from './needs-attention-item-harness-filters';\n\n/**\n * Harness for interacting with a needs attention item in tests.\n */\nexport class SkyNeedsAttentionItemHarness extends SkyComponentHarness {\n /**\n * @internal\n */\n public static hostSelector =\n 'li.sky-needs-attention-item-wrapper > a.sky-needs-attention-item, li.sky-needs-attention-item-wrapper > button.sky-needs-attention-item';\n\n /**\n * Gets a `HarnessPredicate` that can be used to search for a\n * `SkyNeedsAttentionItemHarness` that meets certain criteria.\n */\n public static with(\n filters: SkyNeedsAttentionItemHarnessFilters,\n ): HarnessPredicate<SkyNeedsAttentionItemHarness> {\n return SkyNeedsAttentionItemHarness.getDataSkyIdPredicate(\n filters,\n ).addOption('text', filters.text, async (harness, text) => {\n const itemText = await harness.getText();\n return await HarnessPredicate.stringMatches(itemText, text);\n });\n }\n\n /**\n * Gets the text content of the item.\n */\n public async getText(): Promise<string> {\n return await (await this.host()).text();\n }\n\n /**\n * Clicks the item.\n */\n public async click(): Promise<void> {\n return await (await this.host()).click();\n }\n}\n","import { HarnessPredicate } from '@angular/cdk/testing';\nimport { SkyComponentHarness } from '@skyux/core/testing';\n\nimport { SkyPageHeaderHarnessFilters } from './page-header-harness-filters';\n\n/**\n * Harness for interacting with a page header component in tests.\n */\nexport class SkyPageHeaderHarness extends SkyComponentHarness {\n /**\n * @internal\n */\n public static hostSelector = 'sky-page-header';\n\n #getTitle = this.locatorFor('.sky-page-header-page-title');\n #getParentLink = this.locatorForOptional('.sky-page-header-parent-link');\n\n /**\n * Gets a `HarnessPredicate` that can be used to search for a\n * `SkyPageHeaderHarness` that meets certain criteria.\n */\n public static with(\n filters: SkyPageHeaderHarnessFilters,\n ): HarnessPredicate<SkyPageHeaderHarness> {\n return SkyPageHeaderHarness.getDataSkyIdPredicate(filters);\n }\n\n /**\n * Gets the current page title.\n */\n public async getPageTitle(): Promise<string | undefined> {\n const title = await this.#getTitle();\n\n return await title.text();\n }\n\n /**\n * Gets the current page title.\n */\n public async getParentLinkText(): Promise<string> {\n const parentLink = await this.#getParentLink();\n\n if (parentLink) {\n return await parentLink.text();\n }\n\n throw new Error('No parent link was found in the page header.');\n }\n}\n","import { HarnessPredicate } from '@angular/cdk/testing';\nimport { SkyComponentHarness } from '@skyux/core/testing';\n\nimport { SkyLinkListHarness } from '../link-list/link-list-harness';\nimport { SkyNeedsAttentionHarness } from '../needs-attention/needs-attention-harness';\nimport { SkyNeedsAttentionItemHarness } from '../needs-attention/needs-attention-item-harness';\nimport { SkyNeedsAttentionItemHarnessFilters } from '../needs-attention/needs-attention-item-harness-filters';\nimport { SkyPageHeaderHarness } from '../page-header/page-header-harness';\n\nimport { SkyActionHubHarnessFilters } from './action-hub-harness-filters';\n\n/**\n * Harness for interacting with an action hub component in tests.\n */\nexport class SkyActionHubHarness extends SkyComponentHarness {\n /**\n * @internal\n */\n public static hostSelector = 'sky-action-hub';\n\n readonly #pageHeader = this.locatorFor(SkyPageHeaderHarness);\n readonly #needsAttention = this.locatorFor(SkyNeedsAttentionHarness);\n readonly #relatedLinks = this.locatorFor(\n SkyLinkListHarness.with({\n selector: 'sky-page-links > sky-link-list',\n }),\n );\n readonly #recentLinks = this.locatorFor(\n SkyLinkListHarness.with({\n selector: 'sky-page-links > sky-link-list-recently-accessed',\n }),\n );\n readonly #settingsLinks = this.locatorFor(\n SkyLinkListHarness.with({\n selector: 'sky-page-links > sky-modal-link-list',\n }),\n );\n\n /**\n * Gets a `HarnessPredicate` that can be used to search for a\n * `SkyLinkListHarness` that meets certain criteria.\n */\n public static with(\n filters: SkyActionHubHarnessFilters,\n ): HarnessPredicate<SkyActionHubHarness> {\n return SkyActionHubHarness.getDataSkyIdPredicate(filters);\n }\n\n /**\n * Gets the title of the action hub.\n */\n public async getTitle(): Promise<string | undefined> {\n return await (await this.#pageHeader()).getPageTitle();\n }\n\n /**\n * Get the testing harness for the needs attention block.\n */\n public async getNeedsAttentionBlock(): Promise<SkyNeedsAttentionHarness> {\n return await this.#needsAttention();\n }\n\n /**\n * Gets a specific needs attention item based on the filter criteria.\n * @param filter The filter criteria.\n */\n public async getNeedsAttentionItem(\n filter: SkyNeedsAttentionItemHarnessFilters,\n ): Promise<SkyNeedsAttentionItemHarness> {\n return await this.locatorFor(SkyNeedsAttentionItemHarness.with(filter))();\n }\n\n /**\n * Gets an array of needs attention items based on the filter criteria.\n * If no filter is provided, returns all needs attention items.\n * @param filters The optional filter criteria.\n */\n public async getNeedsAttentionItems(\n filters?: SkyNeedsAttentionItemHarnessFilters,\n ): Promise<SkyNeedsAttentionItemHarness[]> {\n return await this.locatorForAll(\n SkyNeedsAttentionItemHarness.with(filters || {}),\n )();\n }\n\n /**\n * Get the testing harness for the related links block.\n */\n public async getRelatedLinks(): Promise<SkyLinkListHarness> {\n return await this.#relatedLinks();\n }\n\n /**\n * Get the testing harness for the recent links block.\n */\n public async getRecentLinks(): Promise<SkyLinkListHarness> {\n return await this.#recentLinks();\n }\n\n /**\n * Get the testing harness for the settings links block.\n */\n public async getSettingsLinks(): Promise<SkyLinkListHarness> {\n return await this.#settingsLinks();\n }\n}\n","import { HarnessPredicate } from '@angular/cdk/testing';\nimport { SkyComponentHarness } from '@skyux/core/testing';\nimport { SkyPageLayoutType } from '@skyux/pages';\n\nimport { SkyPageHeaderHarness } from '../page-header/page-header-harness';\nimport { SkyPageHeaderHarnessFilters } from '../page-header/page-header-harness-filters';\n\nimport { SkyPageHarnessFilters } from './page-harness-filters';\n\nconst LAYOUT_PREFIX = 'sky-layout-host-';\nconst LAYOUT_TYPES: SkyPageLayoutType[] = ['blocks', 'fit', 'list', 'tabs'];\n\n/**\n * Harness for interacting with a page component in tests.\n */\nexport class SkyPageHarness extends SkyComponentHarness {\n /**\n * @internal\n */\n public static hostSelector = 'sky-page';\n\n /**\n * Gets a `HarnessPredicate` that can be used to search for a\n * `SkyPageHarness` that meets certain criteria.\n */\n public static with(\n filters: SkyPageHarnessFilters,\n ): HarnessPredicate<SkyPageHarness> {\n return SkyPageHarness.getDataSkyIdPredicate(filters);\n }\n\n /**\n * Gets the current layout.\n */\n public async getLayout(): Promise<SkyPageLayoutType> {\n const page = await this.host();\n\n for (const layout of LAYOUT_TYPES) {\n if (await page.hasClass(`${LAYOUT_PREFIX}${layout}`)) {\n return layout;\n }\n }\n\n return 'none';\n }\n\n /**\n * Gets the first page header that matches the given filters.\n * @param filters filters for which page header to return\n */\n public async getPageHeader(\n filters?: SkyPageHeaderHarnessFilters,\n ): Promise<SkyPageHeaderHarness> {\n const pageHeader = await this.locatorForOptional(\n SkyPageHeaderHarness.with(filters || {}),\n )();\n if (pageHeader) {\n return pageHeader;\n }\n\n throw new Error(\n `Unable to find a page header with filter(s): ${JSON.stringify(\n filters,\n )}.`,\n );\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;AAKA;;AAEG;AACG,MAAO,sBAAuB,SAAQ,mBAAmB,CAAA;AAC7D;;AAEG;aACW,IAAA,CAAA,YAAY,GACxB,iDAAiD,CAAC;AAEpD;;;AAGG;IACI,OAAO,IAAI,CAChB,OAAsC,EAAA;QAEtC,OAAO,sBAAsB,CAAC,qBAAqB,CAAC,OAAO,CAAC,CAAC,SAAS,CACpE,MAAM,EACN,OAAO,CAAC,IAAI,EACZ,OAAO,OAAO,EAAE,IAAI,KAAI;AACtB,YAAA,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,OAAO,EAAE;YACxC,OAAO,MAAM,gBAAgB,CAAC,aAAa,CAAC,QAAQ,EAAE,IAAI,CAAC;AAC7D,QAAA,CAAC,CACF;IACH;AAEA;;AAEG;AACI,IAAA,MAAM,OAAO,GAAA;QAClB,OAAO,MAAM,CAAC,MAAM,IAAI,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE;IACzC;AAEA;;AAEG;AACI,IAAA,MAAM,KAAK,GAAA;QAChB,OAAO,MAAM,CAAC,MAAM,IAAI,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE;IAC1C;;;ACpCF;;AAEG;AACG,MAAO,kBAAmB,SAAQ,mBAAmB,CAAA;AACzD;;AAEG;aACW,IAAA,CAAA,YAAY,GACxB,qEAAqE,CAAC;AAExE,IAAA,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC,uBAAuB,CAAC;AACtD,IAAA,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,kBAAkB,CAAC;AAE9C;;;AAGG;IACI,OAAO,IAAI,CAChB,OAAkC,EAAA;AAElC,QAAA,OAAO,kBAAkB,CAAC,qBAAqB,CAAC,OAAO,CAAC;IAC1D;AAEA;;AAEG;AACI,IAAA,MAAM,cAAc,GAAA;QACzB,OAAO,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC,IAAI,CAClC,CAAC,EAAE,KAAK,EAAE,CAAC,IAAI,EAAE,EACjB,MAAM,SAAS,CAChB;IACH;AAEA;;AAEG;AACI,IAAA,MAAM,SAAS,GAAA;AACpB,QAAA,OAAO,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAC,IAAI,CAC/B,MAAM,IAAI,EACV,MAAM,KAAK,CACZ;IACH;AAEA;;AAEG;AACI,IAAA,MAAM,SAAS,GAAA;QACpB,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE;AAC3D,QAAA,OAAO,MAAM,WAAW,CAAC,SAAS,EAAE;IACtC;AAEA;;;AAGG;IACI,MAAM,WAAW,CACtB,MAAqC,EAAA;AAErC,QAAA,OAAO,MAAM,IAAI,CAAC,UAAU,CAAC,sBAAsB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE;IACrE;AAEA;;;;AAIG;IACI,MAAM,YAAY,CACvB,MAAsC,EAAA;AAEtC,QAAA,OAAO,MAAM,IAAI,CAAC,aAAa,CAC7B,sBAAsB,CAAC,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC,CAC1C,EAAE;IACL;;;AC1EF;;AAEG;AACG,MAAO,wBAAyB,SAAQ,mBAAmB,CAAA;AAC/D;;AAEG;aACW,IAAA,CAAA,YAAY,GAAG,qBAAqB,CAAC;AAE1C,IAAA,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC;AAC5C,IAAA,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,6BAA6B,CAAC;AAElE;;;AAGG;IACI,OAAO,IAAI,CAChB,OAAwC,EAAA;AAExC,QAAA,OAAO,wBAAwB,CAAC,qBAAqB,CAAC,OAAO,CAAC;IAChE;AAEA;;AAEG;AACI,IAAA,MAAM,QAAQ,GAAA;QACnB,OAAO,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC,IAAI,CAClC,CAAC,GAAG,KAAK,GAAG,CAAC,cAAc,EAAE,EAC7B,MAAM,SAAS,CAChB;IACH;AAEA;;;AAGG;AACI,IAAA,MAAM,gBAAgB,GAAA;AAC3B,QAAA,OAAO,MAAM,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC;IACzC;AAEA;;AAEG;AACI,IAAA,MAAM,QAAQ,GAAA;AACnB,QAAA,OAAO,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAC,IAAI,CAC/B,MAAM,IAAI,EACV,MAAM,KAAK,CACZ;IACH;;;ACjDF;;AAEG;AACG,MAAO,4BAA6B,SAAQ,mBAAmB,CAAA;AACnE;;AAEG;aACW,IAAA,CAAA,YAAY,GACxB,yIAAyI,CAAC;AAE5I;;;AAGG;IACI,OAAO,IAAI,CAChB,OAA4C,EAAA;QAE5C,OAAO,4BAA4B,CAAC,qBAAqB,CACvD,OAAO,CACR,CAAC,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,EAAE,OAAO,OAAO,EAAE,IAAI,KAAI;AACxD,YAAA,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,OAAO,EAAE;YACxC,OAAO,MAAM,gBAAgB,CAAC,aAAa,CAAC,QAAQ,EAAE,IAAI,CAAC;AAC7D,QAAA,CAAC,CAAC;IACJ;AAEA;;AAEG;AACI,IAAA,MAAM,OAAO,GAAA;QAClB,OAAO,MAAM,CAAC,MAAM,IAAI,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE;IACzC;AAEA;;AAEG;AACI,IAAA,MAAM,KAAK,GAAA;QAChB,OAAO,MAAM,CAAC,MAAM,IAAI,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE;IAC1C;;;ACrCF;;AAEG;AACG,MAAO,oBAAqB,SAAQ,mBAAmB,CAAA;AAC3D;;AAEG;aACW,IAAA,CAAA,YAAY,GAAG,iBAAiB,CAAC;AAE/C,IAAA,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,6BAA6B,CAAC;AAC1D,IAAA,cAAc,GAAG,IAAI,CAAC,kBAAkB,CAAC,8BAA8B,CAAC;AAExE;;;AAGG;IACI,OAAO,IAAI,CAChB,OAAoC,EAAA;AAEpC,QAAA,OAAO,oBAAoB,CAAC,qBAAqB,CAAC,OAAO,CAAC;IAC5D;AAEA;;AAEG;AACI,IAAA,MAAM,YAAY,GAAA;AACvB,QAAA,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,SAAS,EAAE;AAEpC,QAAA,OAAO,MAAM,KAAK,CAAC,IAAI,EAAE;IAC3B;AAEA;;AAEG;AACI,IAAA,MAAM,iBAAiB,GAAA;AAC5B,QAAA,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,cAAc,EAAE;QAE9C,IAAI,UAAU,EAAE;AACd,YAAA,OAAO,MAAM,UAAU,CAAC,IAAI,EAAE;QAChC;AAEA,QAAA,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC;IACjE;;;ACpCF;;AAEG;AACG,MAAO,mBAAoB,SAAQ,mBAAmB,CAAA;AAC1D;;AAEG;aACW,IAAA,CAAA,YAAY,GAAG,gBAAgB,CAAC;AAErC,IAAA,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC,oBAAoB,CAAC;AACnD,IAAA,eAAe,GAAG,IAAI,CAAC,UAAU,CAAC,wBAAwB,CAAC;IAC3D,aAAa,GAAG,IAAI,CAAC,UAAU,CACtC,kBAAkB,CAAC,IAAI,CAAC;AACtB,QAAA,QAAQ,EAAE,gCAAgC;AAC3C,KAAA,CAAC,CACH;IACQ,YAAY,GAAG,IAAI,CAAC,UAAU,CACrC,kBAAkB,CAAC,IAAI,CAAC;AACtB,QAAA,QAAQ,EAAE,kDAAkD;AAC7D,KAAA,CAAC,CACH;IACQ,cAAc,GAAG,IAAI,CAAC,UAAU,CACvC,kBAAkB,CAAC,IAAI,CAAC;AACtB,QAAA,QAAQ,EAAE,sCAAsC;AACjD,KAAA,CAAC,CACH;AAED;;;AAGG;IACI,OAAO,IAAI,CAChB,OAAmC,EAAA;AAEnC,QAAA,OAAO,mBAAmB,CAAC,qBAAqB,CAAC,OAAO,CAAC;IAC3D;AAEA;;AAEG;AACI,IAAA,MAAM,QAAQ,GAAA;QACnB,OAAO,MAAM,CAAC,MAAM,IAAI,CAAC,WAAW,EAAE,EAAE,YAAY,EAAE;IACxD;AAEA;;AAEG;AACI,IAAA,MAAM,sBAAsB,GAAA;AACjC,QAAA,OAAO,MAAM,IAAI,CAAC,eAAe,EAAE;IACrC;AAEA;;;AAGG;IACI,MAAM,qBAAqB,CAChC,MAA2C,EAAA;AAE3C,QAAA,OAAO,MAAM,IAAI,CAAC,UAAU,CAAC,4BAA4B,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE;IAC3E;AAEA;;;;AAIG;IACI,MAAM,sBAAsB,CACjC,OAA6C,EAAA;AAE7C,QAAA,OAAO,MAAM,IAAI,CAAC,aAAa,CAC7B,4BAA4B,CAAC,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC,CACjD,EAAE;IACL;AAEA;;AAEG;AACI,IAAA,MAAM,eAAe,GAAA;AAC1B,QAAA,OAAO,MAAM,IAAI,CAAC,aAAa,EAAE;IACnC;AAEA;;AAEG;AACI,IAAA,MAAM,cAAc,GAAA;AACzB,QAAA,OAAO,MAAM,IAAI,CAAC,YAAY,EAAE;IAClC;AAEA;;AAEG;AACI,IAAA,MAAM,gBAAgB,GAAA;AAC3B,QAAA,OAAO,MAAM,IAAI,CAAC,cAAc,EAAE;IACpC;;;AC/FF,MAAM,aAAa,GAAG,kBAAkB;AACxC,MAAM,YAAY,GAAwB,CAAC,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC;AAE3E;;AAEG;AACG,MAAO,cAAe,SAAQ,mBAAmB,CAAA;AACrD;;AAEG;aACW,IAAA,CAAA,YAAY,GAAG,UAAU,CAAC;AAExC;;;AAGG;IACI,OAAO,IAAI,CAChB,OAA8B,EAAA;AAE9B,QAAA,OAAO,cAAc,CAAC,qBAAqB,CAAC,OAAO,CAAC;IACtD;AAEA;;AAEG;AACI,IAAA,MAAM,SAAS,GAAA;AACpB,QAAA,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,EAAE;AAE9B,QAAA,KAAK,MAAM,MAAM,IAAI,YAAY,EAAE;AACjC,YAAA,IAAI,MAAM,IAAI,CAAC,QAAQ,CAAC,CAAA,EAAG,aAAa,CAAA,EAAG,MAAM,CAAA,CAAE,CAAC,EAAE;AACpD,gBAAA,OAAO,MAAM;YACf;QACF;AAEA,QAAA,OAAO,MAAM;IACf;AAEA;;;AAGG;IACI,MAAM,aAAa,CACxB,OAAqC,EAAA;AAErC,QAAA,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAC9C,oBAAoB,CAAC,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC,CACzC,EAAE;QACH,IAAI,UAAU,EAAE;AACd,YAAA,OAAO,UAAU;QACnB;AAEA,QAAA,MAAM,IAAI,KAAK,CACb,CAAA,6CAAA,EAAgD,IAAI,CAAC,SAAS,CAC5D,OAAO,CACR,CAAA,CAAA,CAAG,CACL;IACH;;;ACjEF;;AAEG;;;;"}