@skyux/pages 11.7.0 → 11.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (31) hide show
  1. package/documentation.json +2694 -888
  2. package/esm2022/index.mjs +5 -1
  3. package/esm2022/lib/modules/action-hub/action-hub-recent-links-resolve.pipe.mjs +3 -2
  4. package/esm2022/lib/modules/action-hub/action-hub.component.mjs +9 -9
  5. package/esm2022/lib/modules/action-hub/action-hub.module.mjs +4 -4
  6. package/esm2022/lib/modules/link-list/link-list-item.component.mjs +16 -0
  7. package/esm2022/lib/modules/link-list/link-list.component.mjs +44 -20
  8. package/esm2022/lib/modules/link-list/link-list.module.mjs +18 -26
  9. package/esm2022/lib/modules/link-list-recently-accessed/link-list-recently-accessed.component.mjs +45 -0
  10. package/esm2022/lib/modules/page/page-links.component.mjs +3 -3
  11. package/esm2022/lib/modules/page/page.module.mjs +22 -5
  12. package/esm2022/testing/link-list/link-list-harness-filters.mjs +2 -0
  13. package/esm2022/testing/link-list/link-list-harness.mjs +40 -0
  14. package/esm2022/testing/public-api.mjs +3 -1
  15. package/fesm2022/skyux-pages-testing.mjs +40 -1
  16. package/fesm2022/skyux-pages-testing.mjs.map +1 -1
  17. package/fesm2022/skyux-pages.mjs +287 -203
  18. package/fesm2022/skyux-pages.mjs.map +1 -1
  19. package/index.d.ts +4 -0
  20. package/lib/modules/action-hub/action-hub-recent-links-resolve.pipe.d.ts +1 -1
  21. package/lib/modules/action-hub/action-hub.module.d.ts +3 -3
  22. package/lib/modules/link-list/link-list-item.component.d.ts +8 -0
  23. package/lib/modules/link-list/link-list.component.d.ts +16 -6
  24. package/lib/modules/link-list/link-list.module.d.ts +3 -6
  25. package/lib/modules/link-list-recently-accessed/link-list-recently-accessed.component.d.ts +15 -0
  26. package/lib/modules/page/page-links.component.d.ts +2 -2
  27. package/lib/modules/page/page.module.d.ts +6 -4
  28. package/package.json +9 -9
  29. package/testing/link-list/link-list-harness-filters.d.ts +6 -0
  30. package/testing/link-list/link-list-harness.d.ts +30 -0
  31. package/testing/public-api.d.ts +4 -0
@@ -0,0 +1,40 @@
1
+ import { SkyComponentHarness } from '@skyux/core/testing';
2
+ import { SkyWaitHarness } from '@skyux/indicators/testing';
3
+ /**
4
+ * Harness for interacting with a link list component in tests.
5
+ */
6
+ export class SkyLinkListHarness extends SkyComponentHarness {
7
+ /**
8
+ * @internal
9
+ */
10
+ static { this.hostSelector = 'sky-link-list'; }
11
+ #getHeading = this.locatorFor('h2.sky-font-heading-4');
12
+ #getList = this.locatorFor('ul.sky-link-list');
13
+ /**
14
+ * Gets a `HarnessPredicate` that can be used to search for a
15
+ * `SkyLinkListHarness` that meets certain criteria.
16
+ */
17
+ static with(filters) {
18
+ return SkyLinkListHarness.getDataSkyIdPredicate(filters);
19
+ }
20
+ /**
21
+ * Gets the link list's heading text. If there are no links, this will return `undefined`.
22
+ */
23
+ async getHeadingText() {
24
+ return await this.#getHeading().then((el) => el.text(), () => undefined);
25
+ }
26
+ /**
27
+ * Whether the link list is showing a list of links.
28
+ */
29
+ async isVisible() {
30
+ return await this.#getList().then(() => true, () => false);
31
+ }
32
+ /**
33
+ * Gets the status of the wait indicator.
34
+ */
35
+ async isWaiting() {
36
+ const waitHarness = await (await this.locatorFor(SkyWaitHarness))();
37
+ return await waitHarness.isWaiting();
38
+ }
39
+ }
40
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGluay1saXN0LWhhcm5lc3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvcGFnZXMvdGVzdGluZy9zcmMvbGluay1saXN0L2xpbmstbGlzdC1oYXJuZXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzFELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUkzRDs7R0FFRztBQUNILE1BQU0sT0FBTyxrQkFBbUIsU0FBUSxtQkFBbUI7SUFDekQ7O09BRUc7YUFDVyxpQkFBWSxHQUFHLGVBQWUsQ0FBQztJQUU3QyxXQUFXLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO0lBQ3ZELFFBQVEsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLGtCQUFrQixDQUFDLENBQUM7SUFFL0M7OztPQUdHO0lBQ0ksTUFBTSxDQUFDLElBQUksQ0FDaEIsT0FBa0M7UUFFbEMsT0FBTyxrQkFBa0IsQ0FBQyxxQkFBcUIsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUMzRCxDQUFDO0lBRUQ7O09BRUc7SUFDSSxLQUFLLENBQUMsY0FBYztRQUN6QixPQUFPLE1BQU0sSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLElBQUksQ0FDbEMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFDakIsR0FBRyxFQUFFLENBQUMsU0FBUyxDQUNoQixDQUFDO0lBQ0osQ0FBQztJQUVEOztPQUVHO0lBQ0ksS0FBSyxDQUFDLFNBQVM7UUFDcEIsT0FBTyxNQUFNLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxJQUFJLENBQy9CLEdBQUcsRUFBRSxDQUFDLElBQUksRUFDVixHQUFHLEVBQUUsQ0FBQyxLQUFLLENBQ1osQ0FBQztJQUNKLENBQUM7SUFFRDs7T0FFRztJQUNJLEtBQUssQ0FBQyxTQUFTO1FBQ3BCLE1BQU0sV0FBVyxHQUFHLE1BQU0sQ0FBQyxNQUFNLElBQUksQ0FBQyxVQUFVLENBQUMsY0FBYyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQ3BFLE9BQU8sTUFBTSxXQUFXLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDdkMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEhhcm5lc3NQcmVkaWNhdGUgfSBmcm9tICdAYW5ndWxhci9jZGsvdGVzdGluZyc7XG5pbXBvcnQgeyBTa3lDb21wb25lbnRIYXJuZXNzIH0gZnJvbSAnQHNreXV4L2NvcmUvdGVzdGluZyc7XG5pbXBvcnQgeyBTa3lXYWl0SGFybmVzcyB9IGZyb20gJ0Bza3l1eC9pbmRpY2F0b3JzL3Rlc3RpbmcnO1xuXG5pbXBvcnQgeyBTa3lMaW5rTGlzdEhhcm5lc3NGaWx0ZXJzIH0gZnJvbSAnLi9saW5rLWxpc3QtaGFybmVzcy1maWx0ZXJzJztcblxuLyoqXG4gKiBIYXJuZXNzIGZvciBpbnRlcmFjdGluZyB3aXRoIGEgbGluayBsaXN0IGNvbXBvbmVudCBpbiB0ZXN0cy5cbiAqL1xuZXhwb3J0IGNsYXNzIFNreUxpbmtMaXN0SGFybmVzcyBleHRlbmRzIFNreUNvbXBvbmVudEhhcm5lc3Mge1xuICAvKipcbiAgICogQGludGVybmFsXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGhvc3RTZWxlY3RvciA9ICdza3ktbGluay1saXN0JztcblxuICAjZ2V0SGVhZGluZyA9IHRoaXMubG9jYXRvckZvcignaDIuc2t5LWZvbnQtaGVhZGluZy00Jyk7XG4gICNnZXRMaXN0ID0gdGhpcy5sb2NhdG9yRm9yKCd1bC5za3ktbGluay1saXN0Jyk7XG5cbiAgLyoqXG4gICAqIEdldHMgYSBgSGFybmVzc1ByZWRpY2F0ZWAgdGhhdCBjYW4gYmUgdXNlZCB0byBzZWFyY2ggZm9yIGFcbiAgICogYFNreUxpbmtMaXN0SGFybmVzc2AgdGhhdCBtZWV0cyBjZXJ0YWluIGNyaXRlcmlhLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyB3aXRoKFxuICAgIGZpbHRlcnM6IFNreUxpbmtMaXN0SGFybmVzc0ZpbHRlcnMsXG4gICk6IEhhcm5lc3NQcmVkaWNhdGU8U2t5TGlua0xpc3RIYXJuZXNzPiB7XG4gICAgcmV0dXJuIFNreUxpbmtMaXN0SGFybmVzcy5nZXREYXRhU2t5SWRQcmVkaWNhdGUoZmlsdGVycyk7XG4gIH1cblxuICAvKipcbiAgICogR2V0cyB0aGUgbGluayBsaXN0J3MgaGVhZGluZyB0ZXh0LiBJZiB0aGVyZSBhcmUgbm8gbGlua3MsIHRoaXMgd2lsbCByZXR1cm4gYHVuZGVmaW5lZGAuXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgZ2V0SGVhZGluZ1RleHQoKTogUHJvbWlzZTxzdHJpbmcgfCB1bmRlZmluZWQ+IHtcbiAgICByZXR1cm4gYXdhaXQgdGhpcy4jZ2V0SGVhZGluZygpLnRoZW4oXG4gICAgICAoZWwpID0+IGVsLnRleHQoKSxcbiAgICAgICgpID0+IHVuZGVmaW5lZCxcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhlIGxpbmsgbGlzdCBpcyBzaG93aW5nIGEgbGlzdCBvZiBsaW5rcy5cbiAgICovXG4gIHB1YmxpYyBhc3luYyBpc1Zpc2libGUoKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgcmV0dXJuIGF3YWl0IHRoaXMuI2dldExpc3QoKS50aGVuKFxuICAgICAgKCkgPT4gdHJ1ZSxcbiAgICAgICgpID0+IGZhbHNlLFxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogR2V0cyB0aGUgc3RhdHVzIG9mIHRoZSB3YWl0IGluZGljYXRvci5cbiAgICovXG4gIHB1YmxpYyBhc3luYyBpc1dhaXRpbmcoKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgY29uc3Qgd2FpdEhhcm5lc3MgPSBhd2FpdCAoYXdhaXQgdGhpcy5sb2NhdG9yRm9yKFNreVdhaXRIYXJuZXNzKSkoKTtcbiAgICByZXR1cm4gYXdhaXQgd2FpdEhhcm5lc3MuaXNXYWl0aW5nKCk7XG4gIH1cbn1cbiJdfQ==
@@ -1,2 +1,4 @@
1
1
  export { SkyPageHarness } from './page/page-harness';
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9wYWdlcy90ZXN0aW5nL3NyYy9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7IFNreVBhZ2VIYXJuZXNzIH0gZnJvbSAnLi9wYWdlL3BhZ2UtaGFybmVzcyc7XG5leHBvcnQgeyBTa3lQYWdlSGFybmVzc0ZpbHRlcnMgfSBmcm9tICcuL3BhZ2UvcGFnZS1oYXJuZXNzLWZpbHRlcnMnO1xuIl19
2
+ export { SkyPageHeaderHarness } from './page-header/page-header-harness';
3
+ export { SkyLinkListHarness } from './link-list/link-list-harness';
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9wYWdlcy90ZXN0aW5nL3NyYy9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUVyRCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUV6RSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7IFNreVBhZ2VIYXJuZXNzIH0gZnJvbSAnLi9wYWdlL3BhZ2UtaGFybmVzcyc7XG5leHBvcnQgeyBTa3lQYWdlSGFybmVzc0ZpbHRlcnMgfSBmcm9tICcuL3BhZ2UvcGFnZS1oYXJuZXNzLWZpbHRlcnMnO1xuZXhwb3J0IHsgU2t5UGFnZUhlYWRlckhhcm5lc3MgfSBmcm9tICcuL3BhZ2UtaGVhZGVyL3BhZ2UtaGVhZGVyLWhhcm5lc3MnO1xuZXhwb3J0IHsgU2t5UGFnZUhlYWRlckhhcm5lc3NGaWx0ZXJzIH0gZnJvbSAnLi9wYWdlLWhlYWRlci9wYWdlLWhlYWRlci1oYXJuZXNzLWZpbHRlcnMnO1xuZXhwb3J0IHsgU2t5TGlua0xpc3RIYXJuZXNzIH0gZnJvbSAnLi9saW5rLWxpc3QvbGluay1saXN0LWhhcm5lc3MnO1xuZXhwb3J0IHsgU2t5TGlua0xpc3RIYXJuZXNzRmlsdGVycyB9IGZyb20gJy4vbGluay1saXN0L2xpbmstbGlzdC1oYXJuZXNzLWZpbHRlcnMnO1xuIl19
@@ -1,4 +1,5 @@
1
1
  import { SkyComponentHarness } from '@skyux/core/testing';
2
+ import { SkyWaitHarness } from '@skyux/indicators/testing';
2
3
 
3
4
  /**
4
5
  * Harness for interacting with a page header component in tests.
@@ -78,9 +79,47 @@ class SkyPageHarness extends SkyComponentHarness {
78
79
  }
79
80
  }
80
81
 
82
+ /**
83
+ * Harness for interacting with a link list component in tests.
84
+ */
85
+ class SkyLinkListHarness extends SkyComponentHarness {
86
+ /**
87
+ * @internal
88
+ */
89
+ static { this.hostSelector = 'sky-link-list'; }
90
+ #getHeading = this.locatorFor('h2.sky-font-heading-4');
91
+ #getList = this.locatorFor('ul.sky-link-list');
92
+ /**
93
+ * Gets a `HarnessPredicate` that can be used to search for a
94
+ * `SkyLinkListHarness` that meets certain criteria.
95
+ */
96
+ static with(filters) {
97
+ return SkyLinkListHarness.getDataSkyIdPredicate(filters);
98
+ }
99
+ /**
100
+ * Gets the link list's heading text. If there are no links, this will return `undefined`.
101
+ */
102
+ async getHeadingText() {
103
+ return await this.#getHeading().then((el) => el.text(), () => undefined);
104
+ }
105
+ /**
106
+ * Whether the link list is showing a list of links.
107
+ */
108
+ async isVisible() {
109
+ return await this.#getList().then(() => true, () => false);
110
+ }
111
+ /**
112
+ * Gets the status of the wait indicator.
113
+ */
114
+ async isWaiting() {
115
+ const waitHarness = await (await this.locatorFor(SkyWaitHarness))();
116
+ return await waitHarness.isWaiting();
117
+ }
118
+ }
119
+
81
120
  /**
82
121
  * Generated bundle index. Do not edit.
83
122
  */
84
123
 
85
- export { SkyPageHarness };
124
+ export { SkyLinkListHarness, SkyPageHarness, SkyPageHeaderHarness };
86
125
  //# sourceMappingURL=skyux-pages-testing.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"skyux-pages-testing.mjs","sources":["../../../../../libs/components/pages/testing/src/page-header/page-header-harness.ts","../../../../../libs/components/pages/testing/src/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 { 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 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 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';\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,oBAAqB,SAAQ,mBAAmB,CAAA;AAC3D;;AAEG;aACW,IAAY,CAAA,YAAA,GAAG,iBAAiB,CAAC,EAAA;AAE/C,IAAA,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,6BAA6B,CAAC,CAAC;AAC3D,IAAA,cAAc,GAAG,IAAI,CAAC,kBAAkB,CAAC,8BAA8B,CAAC,CAAC;AAEzE;;;AAGG;IACI,OAAO,IAAI,CAChB,OAAoC,EAAA;AAEpC,QAAA,OAAO,oBAAoB,CAAC,qBAAqB,CAAC,OAAO,CAAC,CAAC;KAC5D;AAED;;AAEG;AACI,IAAA,MAAM,YAAY,GAAA;AACvB,QAAA,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC;AAErC,QAAA,OAAO,KAAK,CAAC,IAAI,EAAE,CAAC;KACrB;AAED;;AAEG;AACI,IAAA,MAAM,iBAAiB,GAAA;AAC5B,QAAA,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;QAE/C,IAAI,UAAU,EAAE;AACd,YAAA,OAAO,UAAU,CAAC,IAAI,EAAE,CAAC;SAC1B;AAED,QAAA,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;KACjE;;;ACtCH,MAAM,aAAa,GAAG,kBAAkB,CAAC;AACzC,MAAM,YAAY,GAAwB,CAAC,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;AAE5E;;AAEG;AACG,MAAO,cAAe,SAAQ,mBAAmB,CAAA;AACrD;;AAEG;aACW,IAAY,CAAA,YAAA,GAAG,UAAU,CAAC,EAAA;AAExC;;;AAGG;IACI,OAAO,IAAI,CAChB,OAA8B,EAAA;AAE9B,QAAA,OAAO,cAAc,CAAC,qBAAqB,CAAC,OAAO,CAAC,CAAC;KACtD;AAED;;AAEG;AACI,IAAA,MAAM,SAAS,GAAA;AACpB,QAAA,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;AAE/B,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,CAAC;aACf;SACF;AAED,QAAA,OAAO,MAAM,CAAC;KACf;AAED;;;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,CAAC;QACJ,IAAI,UAAU,EAAE;AACd,YAAA,OAAO,UAAU,CAAC;SACnB;AAED,QAAA,MAAM,IAAI,KAAK,CACb,CAAA,6CAAA,EAAgD,IAAI,CAAC,SAAS,CAC5D,OAAO,CACR,CAAG,CAAA,CAAA,CACL,CAAC;KACH;;;ACjEH;;AAEG;;;;"}
1
+ {"version":3,"file":"skyux-pages-testing.mjs","sources":["../../../../../libs/components/pages/testing/src/page-header/page-header-harness.ts","../../../../../libs/components/pages/testing/src/page/page-harness.ts","../../../../../libs/components/pages/testing/src/link-list/link-list-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 { 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 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 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';\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","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';\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 = 'sky-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 (await this.locatorFor(SkyWaitHarness))();\n return await waitHarness.isWaiting();\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}