@skyux/split-view 11.26.0 → 11.27.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 (33) hide show
  1. package/documentation.json +5226 -153
  2. package/esm2022/lib/modules/shared/sky-split-view-resources.module.mjs +5 -5
  3. package/esm2022/lib/modules/split-view/split-view-adapter.service.mjs +4 -4
  4. package/esm2022/lib/modules/split-view/split-view-drawer.component.mjs +4 -4
  5. package/esm2022/lib/modules/split-view/split-view-workspace-content.component.mjs +4 -4
  6. package/esm2022/lib/modules/split-view/split-view-workspace-footer.component.mjs +4 -4
  7. package/esm2022/lib/modules/split-view/split-view-workspace-header.component.mjs +4 -4
  8. package/esm2022/lib/modules/split-view/split-view-workspace.component.mjs +4 -4
  9. package/esm2022/lib/modules/split-view/split-view.component.mjs +4 -4
  10. package/esm2022/lib/modules/split-view/split-view.module.mjs +5 -5
  11. package/esm2022/lib/modules/split-view/split-view.service.mjs +4 -4
  12. package/esm2022/testing/legacy/split-view/split-view-testing.module.mjs +5 -5
  13. package/esm2022/testing/modules/split-view/split-view-drawer-harness.mjs +18 -0
  14. package/esm2022/testing/modules/split-view/split-view-harness-filters.mjs +2 -0
  15. package/esm2022/testing/modules/split-view/split-view-harness.mjs +83 -0
  16. package/esm2022/testing/modules/split-view/split-view-workspace-content-harness.mjs +11 -0
  17. package/esm2022/testing/modules/split-view/split-view-workspace-footer-harness.mjs +11 -0
  18. package/esm2022/testing/modules/split-view/split-view-workspace-harness.mjs +55 -0
  19. package/esm2022/testing/modules/split-view/split-view-workspace-header-harness.mjs +20 -0
  20. package/esm2022/testing/public-api.mjs +6 -1
  21. package/fesm2022/skyux-split-view-testing.mjs +193 -5
  22. package/fesm2022/skyux-split-view-testing.mjs.map +1 -1
  23. package/fesm2022/skyux-split-view.mjs +32 -32
  24. package/fesm2022/skyux-split-view.mjs.map +1 -1
  25. package/package.json +11 -10
  26. package/testing/modules/split-view/split-view-drawer-harness.d.ts +15 -0
  27. package/testing/modules/split-view/split-view-harness-filters.d.ts +6 -0
  28. package/testing/modules/split-view/split-view-harness.d.ts +49 -0
  29. package/testing/modules/split-view/split-view-workspace-content-harness.d.ts +10 -0
  30. package/testing/modules/split-view/split-view-workspace-footer-harness.d.ts +10 -0
  31. package/testing/modules/split-view/split-view-workspace-harness.d.ts +31 -0
  32. package/testing/modules/split-view/split-view-workspace-header-harness.d.ts +18 -0
  33. package/testing/public-api.d.ts +6 -0
@@ -0,0 +1,18 @@
1
+ import { SkyQueryableComponentHarness } from '@skyux/core/testing';
2
+ /**
3
+ * Harness to interact with the split view drawer component in tests.
4
+ */
5
+ export class SkySplitViewDrawerHarness extends SkyQueryableComponentHarness {
6
+ /**
7
+ * @internal
8
+ */
9
+ static { this.hostSelector = 'sky-split-view-drawer'; }
10
+ #getDrawer = this.locatorFor('.sky-split-view-drawer');
11
+ /**
12
+ * The aria-label property of the split view drawer
13
+ */
14
+ async getAriaLabel() {
15
+ return await (await this.#getDrawer()).getAttribute('aria-label');
16
+ }
17
+ }
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BsaXQtdmlldy1kcmF3ZXItaGFybmVzcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9zcGxpdC12aWV3L3Rlc3Rpbmcvc3JjL21vZHVsZXMvc3BsaXQtdmlldy9zcGxpdC12aWV3LWRyYXdlci1oYXJuZXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRW5FOztHQUVHO0FBQ0gsTUFBTSxPQUFPLHlCQUEwQixTQUFRLDRCQUE0QjtJQUN6RTs7T0FFRzthQUNXLGlCQUFZLEdBQUcsdUJBQXVCLENBQUM7SUFFckQsVUFBVSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsd0JBQXdCLENBQUMsQ0FBQztJQUV2RDs7T0FFRztJQUNJLEtBQUssQ0FBQyxZQUFZO1FBQ3ZCLE9BQU8sTUFBTSxDQUFDLE1BQU0sSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUMsWUFBWSxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQ3BFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTa3lRdWVyeWFibGVDb21wb25lbnRIYXJuZXNzIH0gZnJvbSAnQHNreXV4L2NvcmUvdGVzdGluZyc7XG5cbi8qKlxuICogSGFybmVzcyB0byBpbnRlcmFjdCB3aXRoIHRoZSBzcGxpdCB2aWV3IGRyYXdlciBjb21wb25lbnQgaW4gdGVzdHMuXG4gKi9cbmV4cG9ydCBjbGFzcyBTa3lTcGxpdFZpZXdEcmF3ZXJIYXJuZXNzIGV4dGVuZHMgU2t5UXVlcnlhYmxlQ29tcG9uZW50SGFybmVzcyB7XG4gIC8qKlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgaG9zdFNlbGVjdG9yID0gJ3NreS1zcGxpdC12aWV3LWRyYXdlcic7XG5cbiAgI2dldERyYXdlciA9IHRoaXMubG9jYXRvckZvcignLnNreS1zcGxpdC12aWV3LWRyYXdlcicpO1xuXG4gIC8qKlxuICAgKiBUaGUgYXJpYS1sYWJlbCBwcm9wZXJ0eSBvZiB0aGUgc3BsaXQgdmlldyBkcmF3ZXJcbiAgICovXG4gIHB1YmxpYyBhc3luYyBnZXRBcmlhTGFiZWwoKTogUHJvbWlzZTxzdHJpbmcgfCBudWxsPiB7XG4gICAgcmV0dXJuIGF3YWl0IChhd2FpdCB0aGlzLiNnZXREcmF3ZXIoKSkuZ2V0QXR0cmlidXRlKCdhcmlhLWxhYmVsJyk7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BsaXQtdmlldy1oYXJuZXNzLWZpbHRlcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvc3BsaXQtdmlldy90ZXN0aW5nL3NyYy9tb2R1bGVzL3NwbGl0LXZpZXcvc3BsaXQtdmlldy1oYXJuZXNzLWZpbHRlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNreUhhcm5lc3NGaWx0ZXJzIH0gZnJvbSAnQHNreXV4L2NvcmUvdGVzdGluZyc7XG5cbi8qKlxuICogQSBzZXQgb2YgY3JpdGVyaWEgdGhhdCBjYW4gYmUgdXNlZCB0byBmaWx0ZXIgYSBsaXN0IG9mIFNreVNwbGl0Vmlld0hhcm5lc3MgaW5zdGFuY2VzLlxuICovXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWVtcHR5LWludGVyZmFjZSwgQHR5cGVzY3JpcHQtZXNsaW50L25vLWVtcHR5LW9iamVjdC10eXBlXG5leHBvcnQgaW50ZXJmYWNlIFNreVNwbGl0Vmlld0hhcm5lc3NGaWx0ZXJzIGV4dGVuZHMgU2t5SGFybmVzc0ZpbHRlcnMge31cbiJdfQ==
@@ -0,0 +1,83 @@
1
+ import { SkyComponentHarness } from '@skyux/core/testing';
2
+ import { SkySplitViewDrawerHarness } from './split-view-drawer-harness';
3
+ import { SkySplitViewWorkspaceHarness } from './split-view-workspace-harness';
4
+ /**
5
+ * Harness for interacting with a split view component in tests.
6
+ */
7
+ export class SkySplitViewHarness extends SkyComponentHarness {
8
+ /**
9
+ * @internal
10
+ */
11
+ static { this.hostSelector = 'sky-split-view'; }
12
+ #getSplitView = this.locatorFor('.sky-split-view');
13
+ #getSplitViewDrawer = this.locatorForOptional(SkySplitViewDrawerHarness);
14
+ #getSplitViewDrawerContainer = this.locatorFor('.sky-split-view-drawer-flex-container');
15
+ #getSplitViewWorkspace = this.locatorForOptional(SkySplitViewWorkspaceHarness);
16
+ #getSplitViewWorkspaceContainer = this.locatorFor('.sky-split-view-workspace-flex-container');
17
+ /**
18
+ * Gets a `HarnessPredicate` that can be used to search for a
19
+ * `SkySplitViewHarness` that meets certain criteria.
20
+ */
21
+ static with(filters) {
22
+ return SkySplitViewHarness.getDataSkyIdPredicate(filters);
23
+ }
24
+ /**
25
+ * Gets the text for the button that appears in the workspace header in responsive mode.
26
+ */
27
+ async getBackButtonText() {
28
+ return (await (await this.#getBackButton()).text()).trim();
29
+ }
30
+ /**
31
+ * Gets the type of dock style on the split view.
32
+ */
33
+ async getDockType() {
34
+ const dockClass = await (await this.#getSplitView()).hasClass('sky-split-view-dock-fill');
35
+ return dockClass ? 'fill' : 'none';
36
+ }
37
+ /**
38
+ * Gets a 'SkySplitViewDrawerHarness`.
39
+ */
40
+ async getDrawer() {
41
+ const drawer = await this.#getSplitViewDrawer();
42
+ if (!drawer) {
43
+ throw Error('Could not find split view drawer.');
44
+ }
45
+ return drawer;
46
+ }
47
+ /**
48
+ * Whether the drawer component is visible
49
+ */
50
+ async getDrawerIsVisible() {
51
+ const drawerContainer = await this.#getSplitViewDrawerContainer();
52
+ return (await drawerContainer.getAttribute('hidden')) === null;
53
+ }
54
+ /**
55
+ * Gets a `SkySplitViewWorkspaceHarness`.
56
+ */
57
+ async getWorkspace() {
58
+ const workspace = await this.#getSplitViewWorkspace();
59
+ if (!workspace) {
60
+ throw Error('Could not find split view workspace.');
61
+ }
62
+ return workspace;
63
+ }
64
+ /**
65
+ * Whether the workspace component is visible.
66
+ */
67
+ async getWorkspaceIsVisible() {
68
+ const workspaceContainer = await this.#getSplitViewWorkspaceContainer();
69
+ return (await workspaceContainer.getAttribute('hidden')) === null;
70
+ }
71
+ /**
72
+ * Opens the drawer component when in responsive mode.
73
+ */
74
+ async openDrawer() {
75
+ const button = await this.#getBackButton();
76
+ await button.click();
77
+ }
78
+ async #getBackButton() {
79
+ const workspace = await this.getWorkspace();
80
+ return await (await workspace.getHeader()).getBackButton();
81
+ }
82
+ }
83
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BsaXQtdmlldy1oYXJuZXNzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3NwbGl0LXZpZXcvdGVzdGluZy9zcmMvbW9kdWxlcy9zcGxpdC12aWV3L3NwbGl0LXZpZXctaGFybmVzcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUcxRCxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUV4RSxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUU5RTs7R0FFRztBQUNILE1BQU0sT0FBTyxtQkFBb0IsU0FBUSxtQkFBbUI7SUFDMUQ7O09BRUc7YUFDVyxpQkFBWSxHQUFHLGdCQUFnQixDQUFDO0lBRTlDLGFBQWEsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLGlCQUFpQixDQUFDLENBQUM7SUFDbkQsbUJBQW1CLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLHlCQUF5QixDQUFDLENBQUM7SUFDekUsNEJBQTRCLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FDNUMsdUNBQXVDLENBQ3hDLENBQUM7SUFDRixzQkFBc0IsR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQzlDLDRCQUE0QixDQUM3QixDQUFDO0lBQ0YsK0JBQStCLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FDL0MsMENBQTBDLENBQzNDLENBQUM7SUFFRjs7O09BR0c7SUFDSSxNQUFNLENBQUMsSUFBSSxDQUNoQixPQUFtQztRQUVuQyxPQUFPLG1CQUFtQixDQUFDLHFCQUFxQixDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzVELENBQUM7SUFFRDs7T0FFRztJQUNJLEtBQUssQ0FBQyxpQkFBaUI7UUFDNUIsT0FBTyxDQUFDLE1BQU0sQ0FBQyxNQUFNLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDN0QsQ0FBQztJQUVEOztPQUVHO0lBQ0ksS0FBSyxDQUFDLFdBQVc7UUFDdEIsTUFBTSxTQUFTLEdBQUcsTUFBTSxDQUN0QixNQUFNLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FDM0IsQ0FBQyxRQUFRLENBQUMsMEJBQTBCLENBQUMsQ0FBQztRQUV2QyxPQUFPLFNBQVMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUM7SUFDckMsQ0FBQztJQUVEOztPQUVHO0lBQ0ksS0FBSyxDQUFDLFNBQVM7UUFDcEIsTUFBTSxNQUFNLEdBQUcsTUFBTSxJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztRQUVoRCxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDWixNQUFNLEtBQUssQ0FBQyxtQ0FBbUMsQ0FBQyxDQUFDO1FBQ25ELENBQUM7UUFFRCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBRUQ7O09BRUc7SUFDSSxLQUFLLENBQUMsa0JBQWtCO1FBQzdCLE1BQU0sZUFBZSxHQUFHLE1BQU0sSUFBSSxDQUFDLDRCQUE0QixFQUFFLENBQUM7UUFDbEUsT0FBTyxDQUFDLE1BQU0sZUFBZSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsQ0FBQyxLQUFLLElBQUksQ0FBQztJQUNqRSxDQUFDO0lBRUQ7O09BRUc7SUFDSSxLQUFLLENBQUMsWUFBWTtRQUN2QixNQUFNLFNBQVMsR0FBRyxNQUFNLElBQUksQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO1FBRXRELElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUNmLE1BQU0sS0FBSyxDQUFDLHNDQUFzQyxDQUFDLENBQUM7UUFDdEQsQ0FBQztRQUVELE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7SUFFRDs7T0FFRztJQUNJLEtBQUssQ0FBQyxxQkFBcUI7UUFDaEMsTUFBTSxrQkFBa0IsR0FBRyxNQUFNLElBQUksQ0FBQywrQkFBK0IsRUFBRSxDQUFDO1FBQ3hFLE9BQU8sQ0FBQyxNQUFNLGtCQUFrQixDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsQ0FBQyxLQUFLLElBQUksQ0FBQztJQUNwRSxDQUFDO0lBRUQ7O09BRUc7SUFDSSxLQUFLLENBQUMsVUFBVTtRQUNyQixNQUFNLE1BQU0sR0FBRyxNQUFNLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUUzQyxNQUFNLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUN2QixDQUFDO0lBRUQsS0FBSyxDQUFDLGNBQWM7UUFDbEIsTUFBTSxTQUFTLEdBQUcsTUFBTSxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDNUMsT0FBTyxNQUFNLENBQUMsTUFBTSxTQUFTLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUM3RCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSGFybmVzc1ByZWRpY2F0ZSwgVGVzdEVsZW1lbnQgfSBmcm9tICdAYW5ndWxhci9jZGsvdGVzdGluZyc7XG5pbXBvcnQgeyBTa3lDb21wb25lbnRIYXJuZXNzIH0gZnJvbSAnQHNreXV4L2NvcmUvdGVzdGluZyc7XG5pbXBvcnQgeyBTa3lTcGxpdFZpZXdEb2NrVHlwZSB9IGZyb20gJ0Bza3l1eC9zcGxpdC12aWV3JztcblxuaW1wb3J0IHsgU2t5U3BsaXRWaWV3RHJhd2VySGFybmVzcyB9IGZyb20gJy4vc3BsaXQtdmlldy1kcmF3ZXItaGFybmVzcyc7XG5pbXBvcnQgeyBTa3lTcGxpdFZpZXdIYXJuZXNzRmlsdGVycyB9IGZyb20gJy4vc3BsaXQtdmlldy1oYXJuZXNzLWZpbHRlcnMnO1xuaW1wb3J0IHsgU2t5U3BsaXRWaWV3V29ya3NwYWNlSGFybmVzcyB9IGZyb20gJy4vc3BsaXQtdmlldy13b3Jrc3BhY2UtaGFybmVzcyc7XG5cbi8qKlxuICogSGFybmVzcyBmb3IgaW50ZXJhY3Rpbmcgd2l0aCBhIHNwbGl0IHZpZXcgY29tcG9uZW50IGluIHRlc3RzLlxuICovXG5leHBvcnQgY2xhc3MgU2t5U3BsaXRWaWV3SGFybmVzcyBleHRlbmRzIFNreUNvbXBvbmVudEhhcm5lc3Mge1xuICAvKipcbiAgICogQGludGVybmFsXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGhvc3RTZWxlY3RvciA9ICdza3ktc3BsaXQtdmlldyc7XG5cbiAgI2dldFNwbGl0VmlldyA9IHRoaXMubG9jYXRvckZvcignLnNreS1zcGxpdC12aWV3Jyk7XG4gICNnZXRTcGxpdFZpZXdEcmF3ZXIgPSB0aGlzLmxvY2F0b3JGb3JPcHRpb25hbChTa3lTcGxpdFZpZXdEcmF3ZXJIYXJuZXNzKTtcbiAgI2dldFNwbGl0Vmlld0RyYXdlckNvbnRhaW5lciA9IHRoaXMubG9jYXRvckZvcihcbiAgICAnLnNreS1zcGxpdC12aWV3LWRyYXdlci1mbGV4LWNvbnRhaW5lcicsXG4gICk7XG4gICNnZXRTcGxpdFZpZXdXb3Jrc3BhY2UgPSB0aGlzLmxvY2F0b3JGb3JPcHRpb25hbChcbiAgICBTa3lTcGxpdFZpZXdXb3Jrc3BhY2VIYXJuZXNzLFxuICApO1xuICAjZ2V0U3BsaXRWaWV3V29ya3NwYWNlQ29udGFpbmVyID0gdGhpcy5sb2NhdG9yRm9yKFxuICAgICcuc2t5LXNwbGl0LXZpZXctd29ya3NwYWNlLWZsZXgtY29udGFpbmVyJyxcbiAgKTtcblxuICAvKipcbiAgICogR2V0cyBhIGBIYXJuZXNzUHJlZGljYXRlYCB0aGF0IGNhbiBiZSB1c2VkIHRvIHNlYXJjaCBmb3IgYVxuICAgKiBgU2t5U3BsaXRWaWV3SGFybmVzc2AgdGhhdCBtZWV0cyBjZXJ0YWluIGNyaXRlcmlhLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyB3aXRoKFxuICAgIGZpbHRlcnM6IFNreVNwbGl0Vmlld0hhcm5lc3NGaWx0ZXJzLFxuICApOiBIYXJuZXNzUHJlZGljYXRlPFNreVNwbGl0Vmlld0hhcm5lc3M+IHtcbiAgICByZXR1cm4gU2t5U3BsaXRWaWV3SGFybmVzcy5nZXREYXRhU2t5SWRQcmVkaWNhdGUoZmlsdGVycyk7XG4gIH1cblxuICAvKipcbiAgICogR2V0cyB0aGUgdGV4dCBmb3IgdGhlIGJ1dHRvbiB0aGF0IGFwcGVhcnMgaW4gdGhlIHdvcmtzcGFjZSBoZWFkZXIgaW4gcmVzcG9uc2l2ZSBtb2RlLlxuICAgKi9cbiAgcHVibGljIGFzeW5jIGdldEJhY2tCdXR0b25UZXh0KCk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgcmV0dXJuIChhd2FpdCAoYXdhaXQgdGhpcy4jZ2V0QmFja0J1dHRvbigpKS50ZXh0KCkpLnRyaW0oKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSB0eXBlIG9mIGRvY2sgc3R5bGUgb24gdGhlIHNwbGl0IHZpZXcuXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgZ2V0RG9ja1R5cGUoKTogUHJvbWlzZTxTa3lTcGxpdFZpZXdEb2NrVHlwZT4ge1xuICAgIGNvbnN0IGRvY2tDbGFzcyA9IGF3YWl0IChcbiAgICAgIGF3YWl0IHRoaXMuI2dldFNwbGl0VmlldygpXG4gICAgKS5oYXNDbGFzcygnc2t5LXNwbGl0LXZpZXctZG9jay1maWxsJyk7XG5cbiAgICByZXR1cm4gZG9ja0NsYXNzID8gJ2ZpbGwnIDogJ25vbmUnO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgYSAnU2t5U3BsaXRWaWV3RHJhd2VySGFybmVzc2AuXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgZ2V0RHJhd2VyKCk6IFByb21pc2U8U2t5U3BsaXRWaWV3RHJhd2VySGFybmVzcz4ge1xuICAgIGNvbnN0IGRyYXdlciA9IGF3YWl0IHRoaXMuI2dldFNwbGl0Vmlld0RyYXdlcigpO1xuXG4gICAgaWYgKCFkcmF3ZXIpIHtcbiAgICAgIHRocm93IEVycm9yKCdDb3VsZCBub3QgZmluZCBzcGxpdCB2aWV3IGRyYXdlci4nKTtcbiAgICB9XG5cbiAgICByZXR1cm4gZHJhd2VyO1xuICB9XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhlIGRyYXdlciBjb21wb25lbnQgaXMgdmlzaWJsZVxuICAgKi9cbiAgcHVibGljIGFzeW5jIGdldERyYXdlcklzVmlzaWJsZSgpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICBjb25zdCBkcmF3ZXJDb250YWluZXIgPSBhd2FpdCB0aGlzLiNnZXRTcGxpdFZpZXdEcmF3ZXJDb250YWluZXIoKTtcbiAgICByZXR1cm4gKGF3YWl0IGRyYXdlckNvbnRhaW5lci5nZXRBdHRyaWJ1dGUoJ2hpZGRlbicpKSA9PT0gbnVsbDtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIGEgYFNreVNwbGl0Vmlld1dvcmtzcGFjZUhhcm5lc3NgLlxuICAgKi9cbiAgcHVibGljIGFzeW5jIGdldFdvcmtzcGFjZSgpOiBQcm9taXNlPFNreVNwbGl0Vmlld1dvcmtzcGFjZUhhcm5lc3M+IHtcbiAgICBjb25zdCB3b3Jrc3BhY2UgPSBhd2FpdCB0aGlzLiNnZXRTcGxpdFZpZXdXb3Jrc3BhY2UoKTtcblxuICAgIGlmICghd29ya3NwYWNlKSB7XG4gICAgICB0aHJvdyBFcnJvcignQ291bGQgbm90IGZpbmQgc3BsaXQgdmlldyB3b3Jrc3BhY2UuJyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHdvcmtzcGFjZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRoZSB3b3Jrc3BhY2UgY29tcG9uZW50IGlzIHZpc2libGUuXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgZ2V0V29ya3NwYWNlSXNWaXNpYmxlKCk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIGNvbnN0IHdvcmtzcGFjZUNvbnRhaW5lciA9IGF3YWl0IHRoaXMuI2dldFNwbGl0Vmlld1dvcmtzcGFjZUNvbnRhaW5lcigpO1xuICAgIHJldHVybiAoYXdhaXQgd29ya3NwYWNlQ29udGFpbmVyLmdldEF0dHJpYnV0ZSgnaGlkZGVuJykpID09PSBudWxsO1xuICB9XG5cbiAgLyoqXG4gICAqIE9wZW5zIHRoZSBkcmF3ZXIgY29tcG9uZW50IHdoZW4gaW4gcmVzcG9uc2l2ZSBtb2RlLlxuICAgKi9cbiAgcHVibGljIGFzeW5jIG9wZW5EcmF3ZXIoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgYnV0dG9uID0gYXdhaXQgdGhpcy4jZ2V0QmFja0J1dHRvbigpO1xuXG4gICAgYXdhaXQgYnV0dG9uLmNsaWNrKCk7XG4gIH1cblxuICBhc3luYyAjZ2V0QmFja0J1dHRvbigpOiBQcm9taXNlPFRlc3RFbGVtZW50PiB7XG4gICAgY29uc3Qgd29ya3NwYWNlID0gYXdhaXQgdGhpcy5nZXRXb3Jrc3BhY2UoKTtcbiAgICByZXR1cm4gYXdhaXQgKGF3YWl0IHdvcmtzcGFjZS5nZXRIZWFkZXIoKSkuZ2V0QmFja0J1dHRvbigpO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,11 @@
1
+ import { SkyQueryableComponentHarness } from '@skyux/core/testing';
2
+ /**
3
+ * Harness to interact with the split view workspace content component in tests.
4
+ */
5
+ export class SkySplitViewWorkspaceContentHarness extends SkyQueryableComponentHarness {
6
+ /**
7
+ * @internal
8
+ */
9
+ static { this.hostSelector = 'sky-split-view-workspace-content'; }
10
+ }
11
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BsaXQtdmlldy13b3Jrc3BhY2UtY29udGVudC1oYXJuZXNzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3NwbGl0LXZpZXcvdGVzdGluZy9zcmMvbW9kdWxlcy9zcGxpdC12aWV3L3NwbGl0LXZpZXctd29ya3NwYWNlLWNvbnRlbnQtaGFybmVzcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUVuRTs7R0FFRztBQUNILE1BQU0sT0FBTyxtQ0FBb0MsU0FBUSw0QkFBNEI7SUFDbkY7O09BRUc7YUFDVyxpQkFBWSxHQUFHLGtDQUFrQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU2t5UXVlcnlhYmxlQ29tcG9uZW50SGFybmVzcyB9IGZyb20gJ0Bza3l1eC9jb3JlL3Rlc3RpbmcnO1xuXG4vKipcbiAqIEhhcm5lc3MgdG8gaW50ZXJhY3Qgd2l0aCB0aGUgc3BsaXQgdmlldyB3b3Jrc3BhY2UgY29udGVudCBjb21wb25lbnQgaW4gdGVzdHMuXG4gKi9cbmV4cG9ydCBjbGFzcyBTa3lTcGxpdFZpZXdXb3Jrc3BhY2VDb250ZW50SGFybmVzcyBleHRlbmRzIFNreVF1ZXJ5YWJsZUNvbXBvbmVudEhhcm5lc3Mge1xuICAvKipcbiAgICogQGludGVybmFsXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGhvc3RTZWxlY3RvciA9ICdza3ktc3BsaXQtdmlldy13b3Jrc3BhY2UtY29udGVudCc7XG59XG4iXX0=
@@ -0,0 +1,11 @@
1
+ import { SkyQueryableComponentHarness } from '@skyux/core/testing';
2
+ /**
3
+ * Harness to interact with the split view workspace footer component in tests.
4
+ */
5
+ export class SkySplitViewWorkspaceFooterHarness extends SkyQueryableComponentHarness {
6
+ /**
7
+ * @internal
8
+ */
9
+ static { this.hostSelector = 'sky-split-view-workspace-footer'; }
10
+ }
11
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BsaXQtdmlldy13b3Jrc3BhY2UtZm9vdGVyLWhhcm5lc3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvc3BsaXQtdmlldy90ZXN0aW5nL3NyYy9tb2R1bGVzL3NwbGl0LXZpZXcvc3BsaXQtdmlldy13b3Jrc3BhY2UtZm9vdGVyLWhhcm5lc3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFbkU7O0dBRUc7QUFDSCxNQUFNLE9BQU8sa0NBQW1DLFNBQVEsNEJBQTRCO0lBQ2xGOztPQUVHO2FBQ1csaUJBQVksR0FBRyxpQ0FBaUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNreVF1ZXJ5YWJsZUNvbXBvbmVudEhhcm5lc3MgfSBmcm9tICdAc2t5dXgvY29yZS90ZXN0aW5nJztcblxuLyoqXG4gKiBIYXJuZXNzIHRvIGludGVyYWN0IHdpdGggdGhlIHNwbGl0IHZpZXcgd29ya3NwYWNlIGZvb3RlciBjb21wb25lbnQgaW4gdGVzdHMuXG4gKi9cbmV4cG9ydCBjbGFzcyBTa3lTcGxpdFZpZXdXb3Jrc3BhY2VGb290ZXJIYXJuZXNzIGV4dGVuZHMgU2t5UXVlcnlhYmxlQ29tcG9uZW50SGFybmVzcyB7XG4gIC8qKlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgaG9zdFNlbGVjdG9yID0gJ3NreS1zcGxpdC12aWV3LXdvcmtzcGFjZS1mb290ZXInO1xufVxuIl19
@@ -0,0 +1,55 @@
1
+ import { SkyQueryableComponentHarness } from '@skyux/core/testing';
2
+ import { SkySplitViewWorkspaceContentHarness } from './split-view-workspace-content-harness';
3
+ import { SkySplitViewWorkspaceFooterHarness } from './split-view-workspace-footer-harness';
4
+ import { SkySplitViewWorkspaceHeaderHarness } from './split-view-workspace-header-harness';
5
+ /**
6
+ * Harness to interact with the split view workspace component in tests.
7
+ */
8
+ export class SkySplitViewWorkspaceHarness extends SkyQueryableComponentHarness {
9
+ /**
10
+ * @internal
11
+ */
12
+ static { this.hostSelector = 'sky-split-view-workspace'; }
13
+ #getContent = this.locatorForOptional(SkySplitViewWorkspaceContentHarness);
14
+ #getFooter = this.locatorForOptional(SkySplitViewWorkspaceFooterHarness);
15
+ #getHeader = this.locatorForOptional(SkySplitViewWorkspaceHeaderHarness);
16
+ #getWorkspace = this.locatorFor('.sky-split-view-workspace');
17
+ /**
18
+ * The aria-label property of the split view workspace
19
+ */
20
+ async getAriaLabel() {
21
+ return await (await this.#getWorkspace()).getAttribute('aria-label');
22
+ }
23
+ /**
24
+ * Gets the workspace content component.
25
+ */
26
+ async getContent() {
27
+ const content = await this.#getContent();
28
+ if (content === null) {
29
+ throw Error('Could not find split view workspace content.');
30
+ }
31
+ return content;
32
+ }
33
+ /**
34
+ * Gets the workspace footer component.
35
+ */
36
+ async getFooter() {
37
+ const footer = await this.#getFooter();
38
+ if (footer === null) {
39
+ throw Error('Could not find split view workspace footer.');
40
+ }
41
+ return footer;
42
+ }
43
+ /**
44
+ * Gets the workspace header component.
45
+ * @internal
46
+ */
47
+ async getHeader() {
48
+ const header = await this.#getHeader();
49
+ if (header === null) {
50
+ throw Error('Could not find split view workspace header.');
51
+ }
52
+ return header;
53
+ }
54
+ }
55
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BsaXQtdmlldy13b3Jrc3BhY2UtaGFybmVzcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9zcGxpdC12aWV3L3Rlc3Rpbmcvc3JjL21vZHVsZXMvc3BsaXQtdmlldy9zcGxpdC12aWV3LXdvcmtzcGFjZS1oYXJuZXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRW5FLE9BQU8sRUFBRSxtQ0FBbUMsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQzdGLE9BQU8sRUFBRSxrQ0FBa0MsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQzNGLE9BQU8sRUFBRSxrQ0FBa0MsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBRTNGOztHQUVHO0FBQ0gsTUFBTSxPQUFPLDRCQUE2QixTQUFRLDRCQUE0QjtJQUM1RTs7T0FFRzthQUNXLGlCQUFZLEdBQUcsMEJBQTBCLENBQUM7SUFFeEQsV0FBVyxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxtQ0FBbUMsQ0FBQyxDQUFDO0lBQzNFLFVBQVUsR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsa0NBQWtDLENBQUMsQ0FBQztJQUN6RSxVQUFVLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLGtDQUFrQyxDQUFDLENBQUM7SUFDekUsYUFBYSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsMkJBQTJCLENBQUMsQ0FBQztJQUU3RDs7T0FFRztJQUNJLEtBQUssQ0FBQyxZQUFZO1FBQ3ZCLE9BQU8sTUFBTSxDQUFDLE1BQU0sSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDLENBQUMsWUFBWSxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQ3ZFLENBQUM7SUFFRDs7T0FFRztJQUNJLEtBQUssQ0FBQyxVQUFVO1FBQ3JCLE1BQU0sT0FBTyxHQUFHLE1BQU0sSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ3pDLElBQUksT0FBTyxLQUFLLElBQUksRUFBRSxDQUFDO1lBQ3JCLE1BQU0sS0FBSyxDQUFDLDhDQUE4QyxDQUFDLENBQUM7UUFDOUQsQ0FBQztRQUVELE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7SUFFRDs7T0FFRztJQUNJLEtBQUssQ0FBQyxTQUFTO1FBQ3BCLE1BQU0sTUFBTSxHQUFHLE1BQU0sSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBRXZDLElBQUksTUFBTSxLQUFLLElBQUksRUFBRSxDQUFDO1lBQ3BCLE1BQU0sS0FBSyxDQUFDLDZDQUE2QyxDQUFDLENBQUM7UUFDN0QsQ0FBQztRQUVELE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFFRDs7O09BR0c7SUFDSSxLQUFLLENBQUMsU0FBUztRQUNwQixNQUFNLE1BQU0sR0FBRyxNQUFNLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUV2QyxJQUFJLE1BQU0sS0FBSyxJQUFJLEVBQUUsQ0FBQztZQUNwQixNQUFNLEtBQUssQ0FBQyw2Q0FBNkMsQ0FBQyxDQUFDO1FBQzdELENBQUM7UUFFRCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU2t5UXVlcnlhYmxlQ29tcG9uZW50SGFybmVzcyB9IGZyb20gJ0Bza3l1eC9jb3JlL3Rlc3RpbmcnO1xuXG5pbXBvcnQgeyBTa3lTcGxpdFZpZXdXb3Jrc3BhY2VDb250ZW50SGFybmVzcyB9IGZyb20gJy4vc3BsaXQtdmlldy13b3Jrc3BhY2UtY29udGVudC1oYXJuZXNzJztcbmltcG9ydCB7IFNreVNwbGl0Vmlld1dvcmtzcGFjZUZvb3Rlckhhcm5lc3MgfSBmcm9tICcuL3NwbGl0LXZpZXctd29ya3NwYWNlLWZvb3Rlci1oYXJuZXNzJztcbmltcG9ydCB7IFNreVNwbGl0Vmlld1dvcmtzcGFjZUhlYWRlckhhcm5lc3MgfSBmcm9tICcuL3NwbGl0LXZpZXctd29ya3NwYWNlLWhlYWRlci1oYXJuZXNzJztcblxuLyoqXG4gKiBIYXJuZXNzIHRvIGludGVyYWN0IHdpdGggdGhlIHNwbGl0IHZpZXcgd29ya3NwYWNlIGNvbXBvbmVudCBpbiB0ZXN0cy5cbiAqL1xuZXhwb3J0IGNsYXNzIFNreVNwbGl0Vmlld1dvcmtzcGFjZUhhcm5lc3MgZXh0ZW5kcyBTa3lRdWVyeWFibGVDb21wb25lbnRIYXJuZXNzIHtcbiAgLyoqXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBob3N0U2VsZWN0b3IgPSAnc2t5LXNwbGl0LXZpZXctd29ya3NwYWNlJztcblxuICAjZ2V0Q29udGVudCA9IHRoaXMubG9jYXRvckZvck9wdGlvbmFsKFNreVNwbGl0Vmlld1dvcmtzcGFjZUNvbnRlbnRIYXJuZXNzKTtcbiAgI2dldEZvb3RlciA9IHRoaXMubG9jYXRvckZvck9wdGlvbmFsKFNreVNwbGl0Vmlld1dvcmtzcGFjZUZvb3Rlckhhcm5lc3MpO1xuICAjZ2V0SGVhZGVyID0gdGhpcy5sb2NhdG9yRm9yT3B0aW9uYWwoU2t5U3BsaXRWaWV3V29ya3NwYWNlSGVhZGVySGFybmVzcyk7XG4gICNnZXRXb3Jrc3BhY2UgPSB0aGlzLmxvY2F0b3JGb3IoJy5za3ktc3BsaXQtdmlldy13b3Jrc3BhY2UnKTtcblxuICAvKipcbiAgICogVGhlIGFyaWEtbGFiZWwgcHJvcGVydHkgb2YgdGhlIHNwbGl0IHZpZXcgd29ya3NwYWNlXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgZ2V0QXJpYUxhYmVsKCk6IFByb21pc2U8c3RyaW5nIHwgbnVsbD4ge1xuICAgIHJldHVybiBhd2FpdCAoYXdhaXQgdGhpcy4jZ2V0V29ya3NwYWNlKCkpLmdldEF0dHJpYnV0ZSgnYXJpYS1sYWJlbCcpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIHdvcmtzcGFjZSBjb250ZW50IGNvbXBvbmVudC5cbiAgICovXG4gIHB1YmxpYyBhc3luYyBnZXRDb250ZW50KCk6IFByb21pc2U8U2t5U3BsaXRWaWV3V29ya3NwYWNlQ29udGVudEhhcm5lc3M+IHtcbiAgICBjb25zdCBjb250ZW50ID0gYXdhaXQgdGhpcy4jZ2V0Q29udGVudCgpO1xuICAgIGlmIChjb250ZW50ID09PSBudWxsKSB7XG4gICAgICB0aHJvdyBFcnJvcignQ291bGQgbm90IGZpbmQgc3BsaXQgdmlldyB3b3Jrc3BhY2UgY29udGVudC4nKTtcbiAgICB9XG5cbiAgICByZXR1cm4gY29udGVudDtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSB3b3Jrc3BhY2UgZm9vdGVyIGNvbXBvbmVudC5cbiAgICovXG4gIHB1YmxpYyBhc3luYyBnZXRGb290ZXIoKTogUHJvbWlzZTxTa3lTcGxpdFZpZXdXb3Jrc3BhY2VGb290ZXJIYXJuZXNzPiB7XG4gICAgY29uc3QgZm9vdGVyID0gYXdhaXQgdGhpcy4jZ2V0Rm9vdGVyKCk7XG5cbiAgICBpZiAoZm9vdGVyID09PSBudWxsKSB7XG4gICAgICB0aHJvdyBFcnJvcignQ291bGQgbm90IGZpbmQgc3BsaXQgdmlldyB3b3Jrc3BhY2UgZm9vdGVyLicpO1xuICAgIH1cblxuICAgIHJldHVybiBmb290ZXI7XG4gIH1cblxuICAvKipcbiAgICogR2V0cyB0aGUgd29ya3NwYWNlIGhlYWRlciBjb21wb25lbnQuXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgcHVibGljIGFzeW5jIGdldEhlYWRlcigpOiBQcm9taXNlPFNreVNwbGl0Vmlld1dvcmtzcGFjZUhlYWRlckhhcm5lc3M+IHtcbiAgICBjb25zdCBoZWFkZXIgPSBhd2FpdCB0aGlzLiNnZXRIZWFkZXIoKTtcblxuICAgIGlmIChoZWFkZXIgPT09IG51bGwpIHtcbiAgICAgIHRocm93IEVycm9yKCdDb3VsZCBub3QgZmluZCBzcGxpdCB2aWV3IHdvcmtzcGFjZSBoZWFkZXIuJyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGhlYWRlcjtcbiAgfVxufVxuIl19
@@ -0,0 +1,20 @@
1
+ import { SkyInputHarness } from '@skyux/core/testing';
2
+ /**
3
+ * Harness to interact with the split view workspace header component in tests.
4
+ * @internal
5
+ */
6
+ export class SkySplitViewWorkspaceHeaderHarness extends SkyInputHarness {
7
+ /**
8
+ * @internal
9
+ */
10
+ static { this.hostSelector = 'sky-split-view-workspace-header'; }
11
+ #getButton = this.locatorFor('.sky-split-view-workspace-header-content button');
12
+ /**
13
+ * Gets the button element.
14
+ * @internal
15
+ */
16
+ async getBackButton() {
17
+ return await this.#getButton();
18
+ }
19
+ }
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BsaXQtdmlldy13b3Jrc3BhY2UtaGVhZGVyLWhhcm5lc3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvc3BsaXQtdmlldy90ZXN0aW5nL3NyYy9tb2R1bGVzL3NwbGl0LXZpZXcvc3BsaXQtdmlldy13b3Jrc3BhY2UtaGVhZGVyLWhhcm5lc3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRXREOzs7R0FHRztBQUNILE1BQU0sT0FBTyxrQ0FBbUMsU0FBUSxlQUFlO0lBQ3JFOztPQUVHO2FBQ1csaUJBQVksR0FBRyxpQ0FBaUMsQ0FBQztJQUUvRCxVQUFVLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FDMUIsaURBQWlELENBQ2xELENBQUM7SUFFRjs7O09BR0c7SUFDSSxLQUFLLENBQUMsYUFBYTtRQUN4QixPQUFPLE1BQU0sSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO0lBQ2pDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUZXN0RWxlbWVudCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay90ZXN0aW5nJztcbmltcG9ydCB7IFNreUlucHV0SGFybmVzcyB9IGZyb20gJ0Bza3l1eC9jb3JlL3Rlc3RpbmcnO1xuXG4vKipcbiAqIEhhcm5lc3MgdG8gaW50ZXJhY3Qgd2l0aCB0aGUgc3BsaXQgdmlldyB3b3Jrc3BhY2UgaGVhZGVyIGNvbXBvbmVudCBpbiB0ZXN0cy5cbiAqIEBpbnRlcm5hbFxuICovXG5leHBvcnQgY2xhc3MgU2t5U3BsaXRWaWV3V29ya3NwYWNlSGVhZGVySGFybmVzcyBleHRlbmRzIFNreUlucHV0SGFybmVzcyB7XG4gIC8qKlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgaG9zdFNlbGVjdG9yID0gJ3NreS1zcGxpdC12aWV3LXdvcmtzcGFjZS1oZWFkZXInO1xuXG4gICNnZXRCdXR0b24gPSB0aGlzLmxvY2F0b3JGb3IoXG4gICAgJy5za3ktc3BsaXQtdmlldy13b3Jrc3BhY2UtaGVhZGVyLWNvbnRlbnQgYnV0dG9uJyxcbiAgKTtcblxuICAvKipcbiAgICogR2V0cyB0aGUgYnV0dG9uIGVsZW1lbnQuXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgcHVibGljIGFzeW5jIGdldEJhY2tCdXR0b24oKTogUHJvbWlzZTxUZXN0RWxlbWVudD4ge1xuICAgIHJldHVybiBhd2FpdCB0aGlzLiNnZXRCdXR0b24oKTtcbiAgfVxufVxuIl19
@@ -1,3 +1,8 @@
1
1
  export { SkySplitViewFixture } from './legacy/split-view/split-view-fixture';
2
2
  export { SkySplitViewTestingModule } from './legacy/split-view/split-view-testing.module';
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9zcGxpdC12aWV3L3Rlc3Rpbmcvc3JjL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFHN0UsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sK0NBQStDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgeyBTa3lTcGxpdFZpZXdGaXh0dXJlIH0gZnJvbSAnLi9sZWdhY3kvc3BsaXQtdmlldy9zcGxpdC12aWV3LWZpeHR1cmUnO1xuZXhwb3J0IHsgU2t5U3BsaXRWaWV3Rml4dHVyZURyYXdlciB9IGZyb20gJy4vbGVnYWN5L3NwbGl0LXZpZXcvc3BsaXQtdmlldy1maXh0dXJlLWRyYXdlcic7XG5leHBvcnQgeyBTa3lTcGxpdFZpZXdGaXh0dXJlV29ya3NwYWNlIH0gZnJvbSAnLi9sZWdhY3kvc3BsaXQtdmlldy9zcGxpdC12aWV3LWZpeHR1cmUtd29ya3NwYWNlJztcbmV4cG9ydCB7IFNreVNwbGl0Vmlld1Rlc3RpbmdNb2R1bGUgfSBmcm9tICcuL2xlZ2FjeS9zcGxpdC12aWV3L3NwbGl0LXZpZXctdGVzdGluZy5tb2R1bGUnO1xuIl19
3
+ export { SkySplitViewDrawerHarness } from './modules/split-view/split-view-drawer-harness';
4
+ export { SkySplitViewHarness } from './modules/split-view/split-view-harness';
5
+ export { SkySplitViewWorkspaceContentHarness } from './modules/split-view/split-view-workspace-content-harness';
6
+ export { SkySplitViewWorkspaceFooterHarness } from './modules/split-view/split-view-workspace-footer-harness';
7
+ export { SkySplitViewWorkspaceHarness } from './modules/split-view/split-view-workspace-harness';
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9zcGxpdC12aWV3L3Rlc3Rpbmcvc3JjL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFHN0UsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sK0NBQStDLENBQUM7QUFFMUYsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sZ0RBQWdELENBQUM7QUFDM0YsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFFOUUsT0FBTyxFQUFFLG1DQUFtQyxFQUFFLE1BQU0sMkRBQTJELENBQUM7QUFDaEgsT0FBTyxFQUFFLGtDQUFrQyxFQUFFLE1BQU0sMERBQTBELENBQUM7QUFDOUcsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sbURBQW1ELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgeyBTa3lTcGxpdFZpZXdGaXh0dXJlIH0gZnJvbSAnLi9sZWdhY3kvc3BsaXQtdmlldy9zcGxpdC12aWV3LWZpeHR1cmUnO1xuZXhwb3J0IHsgU2t5U3BsaXRWaWV3Rml4dHVyZURyYXdlciB9IGZyb20gJy4vbGVnYWN5L3NwbGl0LXZpZXcvc3BsaXQtdmlldy1maXh0dXJlLWRyYXdlcic7XG5leHBvcnQgeyBTa3lTcGxpdFZpZXdGaXh0dXJlV29ya3NwYWNlIH0gZnJvbSAnLi9sZWdhY3kvc3BsaXQtdmlldy9zcGxpdC12aWV3LWZpeHR1cmUtd29ya3NwYWNlJztcbmV4cG9ydCB7IFNreVNwbGl0Vmlld1Rlc3RpbmdNb2R1bGUgfSBmcm9tICcuL2xlZ2FjeS9zcGxpdC12aWV3L3NwbGl0LXZpZXctdGVzdGluZy5tb2R1bGUnO1xuXG5leHBvcnQgeyBTa3lTcGxpdFZpZXdEcmF3ZXJIYXJuZXNzIH0gZnJvbSAnLi9tb2R1bGVzL3NwbGl0LXZpZXcvc3BsaXQtdmlldy1kcmF3ZXItaGFybmVzcyc7XG5leHBvcnQgeyBTa3lTcGxpdFZpZXdIYXJuZXNzIH0gZnJvbSAnLi9tb2R1bGVzL3NwbGl0LXZpZXcvc3BsaXQtdmlldy1oYXJuZXNzJztcbmV4cG9ydCB7IFNreVNwbGl0Vmlld0hhcm5lc3NGaWx0ZXJzIH0gZnJvbSAnLi9tb2R1bGVzL3NwbGl0LXZpZXcvc3BsaXQtdmlldy1oYXJuZXNzLWZpbHRlcnMnO1xuZXhwb3J0IHsgU2t5U3BsaXRWaWV3V29ya3NwYWNlQ29udGVudEhhcm5lc3MgfSBmcm9tICcuL21vZHVsZXMvc3BsaXQtdmlldy9zcGxpdC12aWV3LXdvcmtzcGFjZS1jb250ZW50LWhhcm5lc3MnO1xuZXhwb3J0IHsgU2t5U3BsaXRWaWV3V29ya3NwYWNlRm9vdGVySGFybmVzcyB9IGZyb20gJy4vbW9kdWxlcy9zcGxpdC12aWV3L3NwbGl0LXZpZXctd29ya3NwYWNlLWZvb3Rlci1oYXJuZXNzJztcbmV4cG9ydCB7IFNreVNwbGl0Vmlld1dvcmtzcGFjZUhhcm5lc3MgfSBmcm9tICcuL21vZHVsZXMvc3BsaXQtdmlldy9zcGxpdC12aWV3LXdvcmtzcGFjZS1oYXJuZXNzJztcbiJdfQ==
@@ -4,6 +4,7 @@ import * as i0 from '@angular/core';
4
4
  import { NgModule } from '@angular/core';
5
5
  import { SkySplitViewModule } from '@skyux/split-view';
6
6
  import { SkyThemeService } from '@skyux/theme';
7
+ import { SkyQueryableComponentHarness, SkyInputHarness, SkyComponentHarness } from '@skyux/core/testing';
7
8
 
8
9
  /**
9
10
  * Provides information for and interaction with a SKY UX split view component.
@@ -88,11 +89,11 @@ class SkySplitViewFixture {
88
89
  * @internal
89
90
  */
90
91
  class SkySplitViewTestingModule {
91
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: SkySplitViewTestingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
92
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.8", ngImport: i0, type: SkySplitViewTestingModule, exports: [SkySplitViewModule] }); }
93
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: SkySplitViewTestingModule, providers: [SkyThemeService], imports: [SkySplitViewModule] }); }
92
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SkySplitViewTestingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
93
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: SkySplitViewTestingModule, exports: [SkySplitViewModule] }); }
94
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SkySplitViewTestingModule, providers: [SkyThemeService], imports: [SkySplitViewModule] }); }
94
95
  }
95
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: SkySplitViewTestingModule, decorators: [{
96
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SkySplitViewTestingModule, decorators: [{
96
97
  type: NgModule,
97
98
  args: [{
98
99
  exports: [SkySplitViewModule],
@@ -100,9 +101,196 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImpor
100
101
  }]
101
102
  }] });
102
103
 
104
+ /**
105
+ * Harness to interact with the split view drawer component in tests.
106
+ */
107
+ class SkySplitViewDrawerHarness extends SkyQueryableComponentHarness {
108
+ /**
109
+ * @internal
110
+ */
111
+ static { this.hostSelector = 'sky-split-view-drawer'; }
112
+ #getDrawer = this.locatorFor('.sky-split-view-drawer');
113
+ /**
114
+ * The aria-label property of the split view drawer
115
+ */
116
+ async getAriaLabel() {
117
+ return await (await this.#getDrawer()).getAttribute('aria-label');
118
+ }
119
+ }
120
+
121
+ /**
122
+ * Harness to interact with the split view workspace content component in tests.
123
+ */
124
+ class SkySplitViewWorkspaceContentHarness extends SkyQueryableComponentHarness {
125
+ /**
126
+ * @internal
127
+ */
128
+ static { this.hostSelector = 'sky-split-view-workspace-content'; }
129
+ }
130
+
131
+ /**
132
+ * Harness to interact with the split view workspace footer component in tests.
133
+ */
134
+ class SkySplitViewWorkspaceFooterHarness extends SkyQueryableComponentHarness {
135
+ /**
136
+ * @internal
137
+ */
138
+ static { this.hostSelector = 'sky-split-view-workspace-footer'; }
139
+ }
140
+
141
+ /**
142
+ * Harness to interact with the split view workspace header component in tests.
143
+ * @internal
144
+ */
145
+ class SkySplitViewWorkspaceHeaderHarness extends SkyInputHarness {
146
+ /**
147
+ * @internal
148
+ */
149
+ static { this.hostSelector = 'sky-split-view-workspace-header'; }
150
+ #getButton = this.locatorFor('.sky-split-view-workspace-header-content button');
151
+ /**
152
+ * Gets the button element.
153
+ * @internal
154
+ */
155
+ async getBackButton() {
156
+ return await this.#getButton();
157
+ }
158
+ }
159
+
160
+ /**
161
+ * Harness to interact with the split view workspace component in tests.
162
+ */
163
+ class SkySplitViewWorkspaceHarness extends SkyQueryableComponentHarness {
164
+ /**
165
+ * @internal
166
+ */
167
+ static { this.hostSelector = 'sky-split-view-workspace'; }
168
+ #getContent = this.locatorForOptional(SkySplitViewWorkspaceContentHarness);
169
+ #getFooter = this.locatorForOptional(SkySplitViewWorkspaceFooterHarness);
170
+ #getHeader = this.locatorForOptional(SkySplitViewWorkspaceHeaderHarness);
171
+ #getWorkspace = this.locatorFor('.sky-split-view-workspace');
172
+ /**
173
+ * The aria-label property of the split view workspace
174
+ */
175
+ async getAriaLabel() {
176
+ return await (await this.#getWorkspace()).getAttribute('aria-label');
177
+ }
178
+ /**
179
+ * Gets the workspace content component.
180
+ */
181
+ async getContent() {
182
+ const content = await this.#getContent();
183
+ if (content === null) {
184
+ throw Error('Could not find split view workspace content.');
185
+ }
186
+ return content;
187
+ }
188
+ /**
189
+ * Gets the workspace footer component.
190
+ */
191
+ async getFooter() {
192
+ const footer = await this.#getFooter();
193
+ if (footer === null) {
194
+ throw Error('Could not find split view workspace footer.');
195
+ }
196
+ return footer;
197
+ }
198
+ /**
199
+ * Gets the workspace header component.
200
+ * @internal
201
+ */
202
+ async getHeader() {
203
+ const header = await this.#getHeader();
204
+ if (header === null) {
205
+ throw Error('Could not find split view workspace header.');
206
+ }
207
+ return header;
208
+ }
209
+ }
210
+
211
+ /**
212
+ * Harness for interacting with a split view component in tests.
213
+ */
214
+ class SkySplitViewHarness extends SkyComponentHarness {
215
+ /**
216
+ * @internal
217
+ */
218
+ static { this.hostSelector = 'sky-split-view'; }
219
+ #getSplitView = this.locatorFor('.sky-split-view');
220
+ #getSplitViewDrawer = this.locatorForOptional(SkySplitViewDrawerHarness);
221
+ #getSplitViewDrawerContainer = this.locatorFor('.sky-split-view-drawer-flex-container');
222
+ #getSplitViewWorkspace = this.locatorForOptional(SkySplitViewWorkspaceHarness);
223
+ #getSplitViewWorkspaceContainer = this.locatorFor('.sky-split-view-workspace-flex-container');
224
+ /**
225
+ * Gets a `HarnessPredicate` that can be used to search for a
226
+ * `SkySplitViewHarness` that meets certain criteria.
227
+ */
228
+ static with(filters) {
229
+ return SkySplitViewHarness.getDataSkyIdPredicate(filters);
230
+ }
231
+ /**
232
+ * Gets the text for the button that appears in the workspace header in responsive mode.
233
+ */
234
+ async getBackButtonText() {
235
+ return (await (await this.#getBackButton()).text()).trim();
236
+ }
237
+ /**
238
+ * Gets the type of dock style on the split view.
239
+ */
240
+ async getDockType() {
241
+ const dockClass = await (await this.#getSplitView()).hasClass('sky-split-view-dock-fill');
242
+ return dockClass ? 'fill' : 'none';
243
+ }
244
+ /**
245
+ * Gets a 'SkySplitViewDrawerHarness`.
246
+ */
247
+ async getDrawer() {
248
+ const drawer = await this.#getSplitViewDrawer();
249
+ if (!drawer) {
250
+ throw Error('Could not find split view drawer.');
251
+ }
252
+ return drawer;
253
+ }
254
+ /**
255
+ * Whether the drawer component is visible
256
+ */
257
+ async getDrawerIsVisible() {
258
+ const drawerContainer = await this.#getSplitViewDrawerContainer();
259
+ return (await drawerContainer.getAttribute('hidden')) === null;
260
+ }
261
+ /**
262
+ * Gets a `SkySplitViewWorkspaceHarness`.
263
+ */
264
+ async getWorkspace() {
265
+ const workspace = await this.#getSplitViewWorkspace();
266
+ if (!workspace) {
267
+ throw Error('Could not find split view workspace.');
268
+ }
269
+ return workspace;
270
+ }
271
+ /**
272
+ * Whether the workspace component is visible.
273
+ */
274
+ async getWorkspaceIsVisible() {
275
+ const workspaceContainer = await this.#getSplitViewWorkspaceContainer();
276
+ return (await workspaceContainer.getAttribute('hidden')) === null;
277
+ }
278
+ /**
279
+ * Opens the drawer component when in responsive mode.
280
+ */
281
+ async openDrawer() {
282
+ const button = await this.#getBackButton();
283
+ await button.click();
284
+ }
285
+ async #getBackButton() {
286
+ const workspace = await this.getWorkspace();
287
+ return await (await workspace.getHeader()).getBackButton();
288
+ }
289
+ }
290
+
103
291
  /**
104
292
  * Generated bundle index. Do not edit.
105
293
  */
106
294
 
107
- export { SkySplitViewFixture, SkySplitViewTestingModule };
295
+ export { SkySplitViewDrawerHarness, SkySplitViewFixture, SkySplitViewHarness, SkySplitViewTestingModule, SkySplitViewWorkspaceContentHarness, SkySplitViewWorkspaceFooterHarness, SkySplitViewWorkspaceHarness };
108
296
  //# sourceMappingURL=skyux-split-view-testing.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"skyux-split-view-testing.mjs","sources":["../../../../../libs/components/split-view/testing/src/legacy/split-view/split-view-fixture.ts","../../../../../libs/components/split-view/testing/src/legacy/split-view/split-view-testing.module.ts","../../../../../libs/components/split-view/testing/src/skyux-split-view-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 { SkySplitViewFixtureDrawer } from './split-view-fixture-drawer';\nimport { SkySplitViewFixtureWorkspace } from './split-view-fixture-workspace';\n\n/**\n * Provides information for and interaction with a SKY UX split view 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 * @internal\n */\nexport class SkySplitViewFixture {\n #debugEl: DebugElement;\n\n /**\n * Returns information about the split view's drawer component.\n */\n public get drawer(): SkySplitViewFixtureDrawer {\n const drawer = this.#getDrawer();\n\n return {\n ariaLabel: drawer.getAttribute('aria-label'),\n isVisible: !this.#drawerIsHidden(),\n width: drawer.style.width,\n };\n }\n\n /**\n * Returns information about the split view's workspace component.\n */\n public get workspace(): SkySplitViewFixtureWorkspace {\n const workspace = this.#getWorkspace();\n const backButton = this.#getBackToListButton();\n const workspaceIsHidden = this.#workspaceIsHidden();\n\n return {\n ariaLabel: workspace.getAttribute('aria-label'),\n backButtonIsVisible: !workspaceIsHidden && backButton !== undefined,\n backButtonText: SkyAppTestUtility.getText(backButton),\n isVisible: !workspaceIsHidden,\n };\n }\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-split-view',\n );\n\n // the component takes a while to initialize so we need to wait\n this.#waitForComponent();\n }\n\n /**\n * Opens the drawer component when in responsive mode. This method clicks the back to list\n * button, if it is visible.\n */\n public async openDrawer(): Promise<void> {\n const backButton = this.#getBackToListButton();\n if (backButton !== undefined) {\n backButton.click();\n this.#fixture.detectChanges();\n await this.#fixture.whenStable();\n }\n }\n\n // #region helpers\n\n #getDrawer(): HTMLElement {\n return this.#debugEl.query(By.css('.sky-split-view-drawer')).nativeElement;\n }\n\n #drawerIsHidden(): boolean {\n const drawer = this.#debugEl.query(\n By.css('.sky-split-view-drawer-flex-container'),\n ).nativeElement;\n return drawer.hasAttribute('hidden');\n }\n\n #getWorkspace(): HTMLElement {\n return this.#debugEl.query(By.css('.sky-split-view-workspace'))\n .nativeElement;\n }\n\n #workspaceIsHidden(): boolean {\n const workspace = this.#debugEl.query(\n By.css('.sky-split-view-workspace-flex-container'),\n ).nativeElement;\n return workspace.hasAttribute('hidden');\n }\n\n #getBackToListButton(): HTMLButtonElement {\n return this.#debugEl.query(\n By.css('.sky-split-view-workspace-header-content > button'),\n )?.nativeElement as HTMLButtonElement;\n }\n\n async #waitForComponent(): Promise<void> {\n this.#fixture.detectChanges();\n await this.#fixture.whenStable();\n\n this.#fixture.detectChanges();\n await this.#fixture.whenStable();\n }\n\n // #endregion\n}\n","import { NgModule } from '@angular/core';\nimport { SkySplitViewModule } from '@skyux/split-view';\nimport { SkyThemeService } from '@skyux/theme';\n\n/**\n * @internal\n */\n@NgModule({\n exports: [SkySplitViewModule],\n providers: [SkyThemeService],\n})\nexport class SkySplitViewTestingModule {}\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-split-view-testing.mjs","sources":["../../../../../libs/components/split-view/testing/src/legacy/split-view/split-view-fixture.ts","../../../../../libs/components/split-view/testing/src/legacy/split-view/split-view-testing.module.ts","../../../../../libs/components/split-view/testing/src/modules/split-view/split-view-drawer-harness.ts","../../../../../libs/components/split-view/testing/src/modules/split-view/split-view-workspace-content-harness.ts","../../../../../libs/components/split-view/testing/src/modules/split-view/split-view-workspace-footer-harness.ts","../../../../../libs/components/split-view/testing/src/modules/split-view/split-view-workspace-header-harness.ts","../../../../../libs/components/split-view/testing/src/modules/split-view/split-view-workspace-harness.ts","../../../../../libs/components/split-view/testing/src/modules/split-view/split-view-harness.ts","../../../../../libs/components/split-view/testing/src/skyux-split-view-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 { SkySplitViewFixtureDrawer } from './split-view-fixture-drawer';\nimport { SkySplitViewFixtureWorkspace } from './split-view-fixture-workspace';\n\n/**\n * Provides information for and interaction with a SKY UX split view 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 * @internal\n */\nexport class SkySplitViewFixture {\n #debugEl: DebugElement;\n\n /**\n * Returns information about the split view's drawer component.\n */\n public get drawer(): SkySplitViewFixtureDrawer {\n const drawer = this.#getDrawer();\n\n return {\n ariaLabel: drawer.getAttribute('aria-label'),\n isVisible: !this.#drawerIsHidden(),\n width: drawer.style.width,\n };\n }\n\n /**\n * Returns information about the split view's workspace component.\n */\n public get workspace(): SkySplitViewFixtureWorkspace {\n const workspace = this.#getWorkspace();\n const backButton = this.#getBackToListButton();\n const workspaceIsHidden = this.#workspaceIsHidden();\n\n return {\n ariaLabel: workspace.getAttribute('aria-label'),\n backButtonIsVisible: !workspaceIsHidden && backButton !== undefined,\n backButtonText: SkyAppTestUtility.getText(backButton),\n isVisible: !workspaceIsHidden,\n };\n }\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-split-view',\n );\n\n // the component takes a while to initialize so we need to wait\n this.#waitForComponent();\n }\n\n /**\n * Opens the drawer component when in responsive mode. This method clicks the back to list\n * button, if it is visible.\n */\n public async openDrawer(): Promise<void> {\n const backButton = this.#getBackToListButton();\n if (backButton !== undefined) {\n backButton.click();\n this.#fixture.detectChanges();\n await this.#fixture.whenStable();\n }\n }\n\n // #region helpers\n\n #getDrawer(): HTMLElement {\n return this.#debugEl.query(By.css('.sky-split-view-drawer')).nativeElement;\n }\n\n #drawerIsHidden(): boolean {\n const drawer = this.#debugEl.query(\n By.css('.sky-split-view-drawer-flex-container'),\n ).nativeElement;\n return drawer.hasAttribute('hidden');\n }\n\n #getWorkspace(): HTMLElement {\n return this.#debugEl.query(By.css('.sky-split-view-workspace'))\n .nativeElement;\n }\n\n #workspaceIsHidden(): boolean {\n const workspace = this.#debugEl.query(\n By.css('.sky-split-view-workspace-flex-container'),\n ).nativeElement;\n return workspace.hasAttribute('hidden');\n }\n\n #getBackToListButton(): HTMLButtonElement {\n return this.#debugEl.query(\n By.css('.sky-split-view-workspace-header-content > button'),\n )?.nativeElement as HTMLButtonElement;\n }\n\n async #waitForComponent(): Promise<void> {\n this.#fixture.detectChanges();\n await this.#fixture.whenStable();\n\n this.#fixture.detectChanges();\n await this.#fixture.whenStable();\n }\n\n // #endregion\n}\n","import { NgModule } from '@angular/core';\nimport { SkySplitViewModule } from '@skyux/split-view';\nimport { SkyThemeService } from '@skyux/theme';\n\n/**\n * @internal\n */\n@NgModule({\n exports: [SkySplitViewModule],\n providers: [SkyThemeService],\n})\nexport class SkySplitViewTestingModule {}\n","import { SkyQueryableComponentHarness } from '@skyux/core/testing';\n\n/**\n * Harness to interact with the split view drawer component in tests.\n */\nexport class SkySplitViewDrawerHarness extends SkyQueryableComponentHarness {\n /**\n * @internal\n */\n public static hostSelector = 'sky-split-view-drawer';\n\n #getDrawer = this.locatorFor('.sky-split-view-drawer');\n\n /**\n * The aria-label property of the split view drawer\n */\n public async getAriaLabel(): Promise<string | null> {\n return await (await this.#getDrawer()).getAttribute('aria-label');\n }\n}\n","import { SkyQueryableComponentHarness } from '@skyux/core/testing';\n\n/**\n * Harness to interact with the split view workspace content component in tests.\n */\nexport class SkySplitViewWorkspaceContentHarness extends SkyQueryableComponentHarness {\n /**\n * @internal\n */\n public static hostSelector = 'sky-split-view-workspace-content';\n}\n","import { SkyQueryableComponentHarness } from '@skyux/core/testing';\n\n/**\n * Harness to interact with the split view workspace footer component in tests.\n */\nexport class SkySplitViewWorkspaceFooterHarness extends SkyQueryableComponentHarness {\n /**\n * @internal\n */\n public static hostSelector = 'sky-split-view-workspace-footer';\n}\n","import { TestElement } from '@angular/cdk/testing';\nimport { SkyInputHarness } from '@skyux/core/testing';\n\n/**\n * Harness to interact with the split view workspace header component in tests.\n * @internal\n */\nexport class SkySplitViewWorkspaceHeaderHarness extends SkyInputHarness {\n /**\n * @internal\n */\n public static hostSelector = 'sky-split-view-workspace-header';\n\n #getButton = this.locatorFor(\n '.sky-split-view-workspace-header-content button',\n );\n\n /**\n * Gets the button element.\n * @internal\n */\n public async getBackButton(): Promise<TestElement> {\n return await this.#getButton();\n }\n}\n","import { SkyQueryableComponentHarness } from '@skyux/core/testing';\n\nimport { SkySplitViewWorkspaceContentHarness } from './split-view-workspace-content-harness';\nimport { SkySplitViewWorkspaceFooterHarness } from './split-view-workspace-footer-harness';\nimport { SkySplitViewWorkspaceHeaderHarness } from './split-view-workspace-header-harness';\n\n/**\n * Harness to interact with the split view workspace component in tests.\n */\nexport class SkySplitViewWorkspaceHarness extends SkyQueryableComponentHarness {\n /**\n * @internal\n */\n public static hostSelector = 'sky-split-view-workspace';\n\n #getContent = this.locatorForOptional(SkySplitViewWorkspaceContentHarness);\n #getFooter = this.locatorForOptional(SkySplitViewWorkspaceFooterHarness);\n #getHeader = this.locatorForOptional(SkySplitViewWorkspaceHeaderHarness);\n #getWorkspace = this.locatorFor('.sky-split-view-workspace');\n\n /**\n * The aria-label property of the split view workspace\n */\n public async getAriaLabel(): Promise<string | null> {\n return await (await this.#getWorkspace()).getAttribute('aria-label');\n }\n\n /**\n * Gets the workspace content component.\n */\n public async getContent(): Promise<SkySplitViewWorkspaceContentHarness> {\n const content = await this.#getContent();\n if (content === null) {\n throw Error('Could not find split view workspace content.');\n }\n\n return content;\n }\n\n /**\n * Gets the workspace footer component.\n */\n public async getFooter(): Promise<SkySplitViewWorkspaceFooterHarness> {\n const footer = await this.#getFooter();\n\n if (footer === null) {\n throw Error('Could not find split view workspace footer.');\n }\n\n return footer;\n }\n\n /**\n * Gets the workspace header component.\n * @internal\n */\n public async getHeader(): Promise<SkySplitViewWorkspaceHeaderHarness> {\n const header = await this.#getHeader();\n\n if (header === null) {\n throw Error('Could not find split view workspace header.');\n }\n\n return header;\n }\n}\n","import { HarnessPredicate, TestElement } from '@angular/cdk/testing';\nimport { SkyComponentHarness } from '@skyux/core/testing';\nimport { SkySplitViewDockType } from '@skyux/split-view';\n\nimport { SkySplitViewDrawerHarness } from './split-view-drawer-harness';\nimport { SkySplitViewHarnessFilters } from './split-view-harness-filters';\nimport { SkySplitViewWorkspaceHarness } from './split-view-workspace-harness';\n\n/**\n * Harness for interacting with a split view component in tests.\n */\nexport class SkySplitViewHarness extends SkyComponentHarness {\n /**\n * @internal\n */\n public static hostSelector = 'sky-split-view';\n\n #getSplitView = this.locatorFor('.sky-split-view');\n #getSplitViewDrawer = this.locatorForOptional(SkySplitViewDrawerHarness);\n #getSplitViewDrawerContainer = this.locatorFor(\n '.sky-split-view-drawer-flex-container',\n );\n #getSplitViewWorkspace = this.locatorForOptional(\n SkySplitViewWorkspaceHarness,\n );\n #getSplitViewWorkspaceContainer = this.locatorFor(\n '.sky-split-view-workspace-flex-container',\n );\n\n /**\n * Gets a `HarnessPredicate` that can be used to search for a\n * `SkySplitViewHarness` that meets certain criteria.\n */\n public static with(\n filters: SkySplitViewHarnessFilters,\n ): HarnessPredicate<SkySplitViewHarness> {\n return SkySplitViewHarness.getDataSkyIdPredicate(filters);\n }\n\n /**\n * Gets the text for the button that appears in the workspace header in responsive mode.\n */\n public async getBackButtonText(): Promise<string> {\n return (await (await this.#getBackButton()).text()).trim();\n }\n\n /**\n * Gets the type of dock style on the split view.\n */\n public async getDockType(): Promise<SkySplitViewDockType> {\n const dockClass = await (\n await this.#getSplitView()\n ).hasClass('sky-split-view-dock-fill');\n\n return dockClass ? 'fill' : 'none';\n }\n\n /**\n * Gets a 'SkySplitViewDrawerHarness`.\n */\n public async getDrawer(): Promise<SkySplitViewDrawerHarness> {\n const drawer = await this.#getSplitViewDrawer();\n\n if (!drawer) {\n throw Error('Could not find split view drawer.');\n }\n\n return drawer;\n }\n\n /**\n * Whether the drawer component is visible\n */\n public async getDrawerIsVisible(): Promise<boolean> {\n const drawerContainer = await this.#getSplitViewDrawerContainer();\n return (await drawerContainer.getAttribute('hidden')) === null;\n }\n\n /**\n * Gets a `SkySplitViewWorkspaceHarness`.\n */\n public async getWorkspace(): Promise<SkySplitViewWorkspaceHarness> {\n const workspace = await this.#getSplitViewWorkspace();\n\n if (!workspace) {\n throw Error('Could not find split view workspace.');\n }\n\n return workspace;\n }\n\n /**\n * Whether the workspace component is visible.\n */\n public async getWorkspaceIsVisible(): Promise<boolean> {\n const workspaceContainer = await this.#getSplitViewWorkspaceContainer();\n return (await workspaceContainer.getAttribute('hidden')) === null;\n }\n\n /**\n * Opens the drawer component when in responsive mode.\n */\n public async openDrawer(): Promise<void> {\n const button = await this.#getBackButton();\n\n await button.click();\n }\n\n async #getBackButton(): Promise<TestElement> {\n const workspace = await this.getWorkspace();\n return await (await workspace.getHeader()).getBackButton();\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}