@skyux/layout 8.6.0 → 9.0.0-alpha.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 (149) hide show
  1. package/esm2022/lib/modules/action-button/action-button-adapter-service.mjs +44 -0
  2. package/esm2022/lib/modules/action-button/action-button-container.component.mjs +138 -0
  3. package/{esm2020 → esm2022}/lib/modules/action-button/action-button-details.component.mjs +4 -4
  4. package/{esm2020 → esm2022}/lib/modules/action-button/action-button-header.component.mjs +4 -4
  5. package/esm2022/lib/modules/action-button/action-button-icon.component.mjs +40 -0
  6. package/esm2022/lib/modules/action-button/action-button.component.mjs +50 -0
  7. package/{esm2020 → esm2022}/lib/modules/action-button/action-button.module.mjs +23 -23
  8. package/{esm2020 → esm2022}/lib/modules/back-to-top/back-to-top-adapter.service.mjs +19 -22
  9. package/esm2022/lib/modules/back-to-top/back-to-top.component.mjs +25 -0
  10. package/esm2022/lib/modules/back-to-top/back-to-top.directive.mjs +119 -0
  11. package/{esm2020 → esm2022}/lib/modules/back-to-top/back-to-top.module.mjs +13 -13
  12. package/{esm2020 → esm2022}/lib/modules/box/box-content.component.mjs +4 -4
  13. package/{esm2020 → esm2022}/lib/modules/box/box-controls.component.mjs +4 -4
  14. package/{esm2020 → esm2022}/lib/modules/box/box-header.component.mjs +4 -4
  15. package/{esm2020 → esm2022}/lib/modules/box/box.component.mjs +4 -4
  16. package/{esm2020 → esm2022}/lib/modules/box/box.module.mjs +11 -11
  17. package/{esm2020 → esm2022}/lib/modules/card/card-actions.component.mjs +4 -4
  18. package/{esm2020 → esm2022}/lib/modules/card/card-content.component.mjs +4 -4
  19. package/{esm2020 → esm2022}/lib/modules/card/card-title.component.mjs +4 -4
  20. package/esm2022/lib/modules/card/card.component.mjs +107 -0
  21. package/{esm2020 → esm2022}/lib/modules/card/card.module.mjs +21 -21
  22. package/{esm2020 → esm2022}/lib/modules/definition-list/definition-list-content.component.mjs +4 -4
  23. package/{esm2020 → esm2022}/lib/modules/definition-list/definition-list-heading.component.mjs +4 -4
  24. package/{esm2020 → esm2022}/lib/modules/definition-list/definition-list-label.component.mjs +4 -4
  25. package/{esm2020 → esm2022}/lib/modules/definition-list/definition-list-value.component.mjs +4 -4
  26. package/{esm2020 → esm2022}/lib/modules/definition-list/definition-list.component.mjs +4 -4
  27. package/{esm2020 → esm2022}/lib/modules/definition-list/definition-list.module.mjs +13 -13
  28. package/{esm2020 → esm2022}/lib/modules/definition-list/definition-list.service.mjs +4 -4
  29. package/esm2022/lib/modules/description-list/description-list-adapter-service.mjs +44 -0
  30. package/{esm2020 → esm2022}/lib/modules/description-list/description-list-content.component.mjs +4 -4
  31. package/esm2022/lib/modules/description-list/description-list-description.component.mjs +52 -0
  32. package/{esm2020 → esm2022}/lib/modules/description-list/description-list-term.component.mjs +4 -4
  33. package/esm2022/lib/modules/description-list/description-list.component.mjs +95 -0
  34. package/{esm2020 → esm2022}/lib/modules/description-list/description-list.module.mjs +19 -19
  35. package/esm2022/lib/modules/description-list/description-list.service.mjs +24 -0
  36. package/esm2022/lib/modules/fluid-grid/column.component.mjs +66 -0
  37. package/esm2022/lib/modules/fluid-grid/fluid-grid.component.mjs +40 -0
  38. package/{esm2020 → esm2022}/lib/modules/fluid-grid/fluid-grid.module.mjs +5 -5
  39. package/{esm2020 → esm2022}/lib/modules/fluid-grid/row.component.mjs +4 -4
  40. package/esm2022/lib/modules/format/format.component.mjs +64 -0
  41. package/{esm2020 → esm2022}/lib/modules/format/format.module.mjs +5 -5
  42. package/esm2022/lib/modules/inline-delete/inline-delete-adapter.service.mjs +123 -0
  43. package/esm2022/lib/modules/inline-delete/inline-delete.component.mjs +164 -0
  44. package/{esm2020 → esm2022}/lib/modules/inline-delete/inline-delete.module.mjs +11 -11
  45. package/esm2022/lib/modules/page/page-theme-adapter.service.mjs +40 -0
  46. package/esm2022/lib/modules/page/page.component.mjs +49 -0
  47. package/{esm2020 → esm2022}/lib/modules/page/page.module.mjs +5 -5
  48. package/{esm2020 → esm2022}/lib/modules/page-summary/page-summary-adapter.service.mjs +4 -4
  49. package/{esm2020 → esm2022}/lib/modules/page-summary/page-summary-alert.component.mjs +4 -4
  50. package/{esm2020 → esm2022}/lib/modules/page-summary/page-summary-content.component.mjs +4 -4
  51. package/{esm2020 → esm2022}/lib/modules/page-summary/page-summary-image.component.mjs +4 -4
  52. package/{esm2020 → esm2022}/lib/modules/page-summary/page-summary-key-info.component.mjs +4 -4
  53. package/{esm2020 → esm2022}/lib/modules/page-summary/page-summary-status.component.mjs +4 -4
  54. package/{esm2020 → esm2022}/lib/modules/page-summary/page-summary-subtitle.component.mjs +4 -4
  55. package/{esm2020 → esm2022}/lib/modules/page-summary/page-summary-title.component.mjs +4 -4
  56. package/esm2022/lib/modules/page-summary/page-summary.component.mjs +73 -0
  57. package/{esm2020 → esm2022}/lib/modules/page-summary/page-summary.module.mjs +19 -19
  58. package/esm2022/lib/modules/shared/sky-layout-resources.module.mjs +60 -0
  59. package/esm2022/lib/modules/text-expand/text-expand-adapter.service.mjs +26 -0
  60. package/{esm2020 → esm2022}/lib/modules/text-expand/text-expand-modal.component.mjs +4 -4
  61. package/esm2022/lib/modules/text-expand/text-expand.component.mjs +315 -0
  62. package/{esm2020 → esm2022}/lib/modules/text-expand/text-expand.module.mjs +11 -11
  63. package/esm2022/lib/modules/text-expand-repeater/text-expand-repeater-adapter.service.mjs +32 -0
  64. package/esm2022/lib/modules/text-expand-repeater/text-expand-repeater.component.mjs +216 -0
  65. package/{esm2020 → esm2022}/lib/modules/text-expand-repeater/text-expand-repeater.module.mjs +5 -5
  66. package/{esm2020 → esm2022}/lib/modules/toolbar/toolbar-item.component.mjs +4 -4
  67. package/{esm2020 → esm2022}/lib/modules/toolbar/toolbar-section.component.mjs +4 -4
  68. package/{esm2020 → esm2022}/lib/modules/toolbar/toolbar-view-actions.component.mjs +4 -4
  69. package/{esm2020 → esm2022}/lib/modules/toolbar/toolbar.component.mjs +4 -4
  70. package/{esm2020 → esm2022}/lib/modules/toolbar/toolbar.module.mjs +11 -11
  71. package/esm2022/testing/action-button-fixture.mjs +48 -0
  72. package/esm2022/testing/box/box-harness.mjs +34 -0
  73. package/esm2022/testing/card-fixture.mjs +65 -0
  74. package/esm2022/testing/page-summary-fixture.mjs +31 -0
  75. package/fesm2022/skyux-layout-testing.mjs +181 -0
  76. package/{fesm2015 → fesm2022}/skyux-layout-testing.mjs.map +1 -1
  77. package/fesm2022/skyux-layout.mjs +2957 -0
  78. package/{fesm2020 → fesm2022}/skyux-layout.mjs.map +1 -1
  79. package/lib/modules/action-button/action-button-container.component.d.ts +1 -1
  80. package/lib/modules/action-button/action-button-icon.component.d.ts +1 -1
  81. package/lib/modules/action-button/action-button.component.d.ts +1 -1
  82. package/lib/modules/back-to-top/back-to-top.directive.d.ts +1 -1
  83. package/lib/modules/box/box.component.d.ts +1 -1
  84. package/lib/modules/card/card.component.d.ts +1 -1
  85. package/lib/modules/definition-list/definition-list.component.d.ts +1 -1
  86. package/lib/modules/description-list/description-list.component.d.ts +1 -1
  87. package/lib/modules/fluid-grid/column.component.d.ts +1 -1
  88. package/lib/modules/fluid-grid/fluid-grid.component.d.ts +1 -1
  89. package/lib/modules/fluid-grid/row.component.d.ts +1 -1
  90. package/lib/modules/format/format.component.d.ts +1 -1
  91. package/lib/modules/inline-delete/inline-delete.component.d.ts +1 -1
  92. package/lib/modules/page/page.component.d.ts +1 -1
  93. package/lib/modules/text-expand/text-expand.component.d.ts +1 -1
  94. package/lib/modules/text-expand-repeater/text-expand-repeater.component.d.ts +1 -1
  95. package/package.json +23 -31
  96. package/esm2020/lib/modules/action-button/action-button-adapter-service.mjs +0 -47
  97. package/esm2020/lib/modules/action-button/action-button-container.component.mjs +0 -139
  98. package/esm2020/lib/modules/action-button/action-button-icon.component.mjs +0 -43
  99. package/esm2020/lib/modules/action-button/action-button.component.mjs +0 -53
  100. package/esm2020/lib/modules/back-to-top/back-to-top.component.mjs +0 -30
  101. package/esm2020/lib/modules/back-to-top/back-to-top.directive.mjs +0 -118
  102. package/esm2020/lib/modules/card/card.component.mjs +0 -109
  103. package/esm2020/lib/modules/description-list/description-list-adapter-service.mjs +0 -47
  104. package/esm2020/lib/modules/description-list/description-list-description.component.mjs +0 -55
  105. package/esm2020/lib/modules/description-list/description-list.component.mjs +0 -98
  106. package/esm2020/lib/modules/description-list/description-list.service.mjs +0 -29
  107. package/esm2020/lib/modules/fluid-grid/column.component.mjs +0 -71
  108. package/esm2020/lib/modules/fluid-grid/fluid-grid.component.mjs +0 -42
  109. package/esm2020/lib/modules/format/format.component.mjs +0 -67
  110. package/esm2020/lib/modules/inline-delete/inline-delete-adapter.service.mjs +0 -122
  111. package/esm2020/lib/modules/inline-delete/inline-delete.component.mjs +0 -167
  112. package/esm2020/lib/modules/page/page-theme-adapter.service.mjs +0 -43
  113. package/esm2020/lib/modules/page/page.component.mjs +0 -52
  114. package/esm2020/lib/modules/page-summary/page-summary.component.mjs +0 -75
  115. package/esm2020/lib/modules/shared/sky-layout-resources.module.mjs +0 -60
  116. package/esm2020/lib/modules/text-expand/text-expand-adapter.service.mjs +0 -29
  117. package/esm2020/lib/modules/text-expand/text-expand.component.mjs +0 -306
  118. package/esm2020/lib/modules/text-expand-repeater/text-expand-repeater-adapter.service.mjs +0 -35
  119. package/esm2020/lib/modules/text-expand-repeater/text-expand-repeater.component.mjs +0 -214
  120. package/esm2020/testing/action-button-fixture.mjs +0 -51
  121. package/esm2020/testing/box/box-harness.mjs +0 -40
  122. package/esm2020/testing/card-fixture.mjs +0 -67
  123. package/esm2020/testing/page-summary-fixture.mjs +0 -34
  124. package/fesm2015/skyux-layout-testing.mjs +0 -198
  125. package/fesm2015/skyux-layout.mjs +0 -2996
  126. package/fesm2015/skyux-layout.mjs.map +0 -1
  127. package/fesm2020/skyux-layout-testing.mjs +0 -192
  128. package/fesm2020/skyux-layout-testing.mjs.map +0 -1
  129. package/fesm2020/skyux-layout.mjs +0 -2982
  130. /package/{esm2020 → esm2022}/index.mjs +0 -0
  131. /package/{esm2020 → esm2022}/lib/modules/action-button/action-button-permalink.mjs +0 -0
  132. /package/{esm2020 → esm2022}/lib/modules/action-button/types/action-button-container-align-items-type.mjs +0 -0
  133. /package/{esm2020 → esm2022}/lib/modules/action-button/types/action-button-container-align-items.mjs +0 -0
  134. /package/{esm2020 → esm2022}/lib/modules/back-to-top/models/back-to-top-message-type.mjs +0 -0
  135. /package/{esm2020 → esm2022}/lib/modules/back-to-top/models/back-to-top-message.mjs +0 -0
  136. /package/{esm2020 → esm2022}/lib/modules/back-to-top/models/back-to-top-options.mjs +0 -0
  137. /package/{esm2020 → esm2022}/lib/modules/description-list/types/description-list-mode-type.mjs +0 -0
  138. /package/{esm2020 → esm2022}/lib/modules/description-list/types/description-list-mode.mjs +0 -0
  139. /package/{esm2020 → esm2022}/lib/modules/fluid-grid/types/fluid-grid-gutter-size-type.mjs +0 -0
  140. /package/{esm2020 → esm2022}/lib/modules/format/format-item.mjs +0 -0
  141. /package/{esm2020 → esm2022}/lib/modules/inline-delete/inline-delete-type.mjs +0 -0
  142. /package/{esm2020 → esm2022}/lib/modules/page/page-layout-type.mjs +0 -0
  143. /package/{esm2020 → esm2022}/lib/modules/text-expand/text-expand-modal-context-token.mjs +0 -0
  144. /package/{esm2020 → esm2022}/lib/modules/text-expand/text-expand-modal-context.mjs +0 -0
  145. /package/{esm2020 → esm2022}/lib/modules/text-expand-repeater/types/text-expand-repeater-list-style-type.mjs +0 -0
  146. /package/{esm2020 → esm2022}/skyux-layout.mjs +0 -0
  147. /package/{esm2020 → esm2022}/testing/box/box-harness.filters.mjs +0 -0
  148. /package/{esm2020 → esm2022}/testing/public-api.mjs +0 -0
  149. /package/{esm2020 → esm2022}/testing/skyux-layout-testing.mjs +0 -0
@@ -0,0 +1,65 @@
1
+ import { By } from '@angular/platform-browser';
2
+ import { SkyAppTestUtility } from '@skyux-sdk/testing';
3
+ /**
4
+ * Allows interaction with a SKY UX avatar component.
5
+ * @internal
6
+ */
7
+ export class SkyCardFixture {
8
+ /**
9
+ * The card's current title.
10
+ */
11
+ get titleText() {
12
+ return SkyAppTestUtility.getText(this.#debugEl.query(By.css('sky-card-title')));
13
+ }
14
+ /**
15
+ * The card's current content text.
16
+ */
17
+ get contentText() {
18
+ return SkyAppTestUtility.getText(this.#debugEl.query(By.css('sky-card-content')));
19
+ }
20
+ /**
21
+ * A flag indicating whether the user can select the card.
22
+ */
23
+ get selectable() {
24
+ return !!this.#debugEl.query(By.css('.sky-card-check'));
25
+ }
26
+ /**
27
+ * A flag indicating whether the card is currently selected. If the card
28
+ * is not selectable, an error is thrown.
29
+ */
30
+ get selected() {
31
+ if (this.selectable) {
32
+ return this.#getCheckInputEl().nativeElement.checked;
33
+ }
34
+ throw new Error('The card is not selectable.');
35
+ }
36
+ #debugEl;
37
+ constructor(fixture, skyTestId) {
38
+ this.#debugEl = SkyAppTestUtility.getDebugElementByTestId(fixture, skyTestId, 'sky-card');
39
+ }
40
+ /**
41
+ * Selects the card.
42
+ */
43
+ select() {
44
+ if (!this.selected) {
45
+ this.#clickCheckLabelEl();
46
+ }
47
+ }
48
+ /**
49
+ * Deselects the card.
50
+ */
51
+ deselect() {
52
+ if (this.selected) {
53
+ this.#clickCheckLabelEl();
54
+ }
55
+ }
56
+ #clickCheckLabelEl() {
57
+ this.#debugEl
58
+ .query(By.css('.sky-card-check label.sky-checkbox-wrapper'))
59
+ .nativeElement.click();
60
+ }
61
+ #getCheckInputEl() {
62
+ return this.#debugEl.query(By.css('.sky-card-check .sky-checkbox-wrapper input'));
63
+ }
64
+ }
65
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FyZC1maXh0dXJlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2xheW91dC90ZXN0aW5nL3NyYy9jYXJkLWZpeHR1cmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRXZEOzs7R0FHRztBQUNILE1BQU0sT0FBTyxjQUFjO0lBQ3pCOztPQUVHO0lBQ0gsSUFBVyxTQUFTO1FBQ2xCLE9BQU8saUJBQWlCLENBQUMsT0FBTyxDQUM5QixJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FDOUMsQ0FBQztJQUNKLENBQUM7SUFFRDs7T0FFRztJQUNILElBQVcsV0FBVztRQUNwQixPQUFPLGlCQUFpQixDQUFDLE9BQU8sQ0FDOUIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLENBQ2hELENBQUM7SUFDSixDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUFXLFVBQVU7UUFDbkIsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUM7SUFDMUQsQ0FBQztJQUVEOzs7T0FHRztJQUNILElBQVcsUUFBUTtRQUNqQixJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUU7WUFDbkIsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDO1NBQ3REO1FBRUQsTUFBTSxJQUFJLEtBQUssQ0FBQyw2QkFBNkIsQ0FBQyxDQUFDO0lBQ2pELENBQUM7SUFFRCxRQUFRLENBQWU7SUFFdkIsWUFBWSxPQUE4QixFQUFFLFNBQWlCO1FBQzNELElBQUksQ0FBQyxRQUFRLEdBQUcsaUJBQWlCLENBQUMsdUJBQXVCLENBQ3ZELE9BQU8sRUFDUCxTQUFTLEVBQ1QsVUFBVSxDQUNYLENBQUM7SUFDSixDQUFDO0lBRUQ7O09BRUc7SUFDSSxNQUFNO1FBQ1gsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDbEIsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7U0FDM0I7SUFDSCxDQUFDO0lBRUQ7O09BRUc7SUFDSSxRQUFRO1FBQ2IsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ2pCLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1NBQzNCO0lBQ0gsQ0FBQztJQUVELGtCQUFrQjtRQUNoQixJQUFJLENBQUMsUUFBUTthQUNWLEtBQUssQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLDRDQUE0QyxDQUFDLENBQUM7YUFDM0QsYUFBYSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFFRCxnQkFBZ0I7UUFDZCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUN4QixFQUFFLENBQUMsR0FBRyxDQUFDLDZDQUE2QyxDQUFDLENBQ3RELENBQUM7SUFDSixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEZWJ1Z0VsZW1lbnQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbXBvbmVudEZpeHR1cmUgfSBmcm9tICdAYW5ndWxhci9jb3JlL3Rlc3RpbmcnO1xuaW1wb3J0IHsgQnkgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcbmltcG9ydCB7IFNreUFwcFRlc3RVdGlsaXR5IH0gZnJvbSAnQHNreXV4LXNkay90ZXN0aW5nJztcblxuLyoqXG4gKiBBbGxvd3MgaW50ZXJhY3Rpb24gd2l0aCBhIFNLWSBVWCBhdmF0YXIgY29tcG9uZW50LlxuICogQGludGVybmFsXG4gKi9cbmV4cG9ydCBjbGFzcyBTa3lDYXJkRml4dHVyZSB7XG4gIC8qKlxuICAgKiBUaGUgY2FyZCdzIGN1cnJlbnQgdGl0bGUuXG4gICAqL1xuICBwdWJsaWMgZ2V0IHRpdGxlVGV4dCgpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiBTa3lBcHBUZXN0VXRpbGl0eS5nZXRUZXh0KFxuICAgICAgdGhpcy4jZGVidWdFbC5xdWVyeShCeS5jc3MoJ3NreS1jYXJkLXRpdGxlJykpXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgY2FyZCdzIGN1cnJlbnQgY29udGVudCB0ZXh0LlxuICAgKi9cbiAgcHVibGljIGdldCBjb250ZW50VGV4dCgpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiBTa3lBcHBUZXN0VXRpbGl0eS5nZXRUZXh0KFxuICAgICAgdGhpcy4jZGVidWdFbC5xdWVyeShCeS5jc3MoJ3NreS1jYXJkLWNvbnRlbnQnKSlcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIEEgZmxhZyBpbmRpY2F0aW5nIHdoZXRoZXIgdGhlIHVzZXIgY2FuIHNlbGVjdCB0aGUgY2FyZC5cbiAgICovXG4gIHB1YmxpYyBnZXQgc2VsZWN0YWJsZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gISF0aGlzLiNkZWJ1Z0VsLnF1ZXJ5KEJ5LmNzcygnLnNreS1jYXJkLWNoZWNrJykpO1xuICB9XG5cbiAgLyoqXG4gICAqIEEgZmxhZyBpbmRpY2F0aW5nIHdoZXRoZXIgdGhlIGNhcmQgaXMgY3VycmVudGx5IHNlbGVjdGVkLiAgSWYgdGhlIGNhcmRcbiAgICogaXMgbm90IHNlbGVjdGFibGUsIGFuIGVycm9yIGlzIHRocm93bi5cbiAgICovXG4gIHB1YmxpYyBnZXQgc2VsZWN0ZWQoKTogYm9vbGVhbiB7XG4gICAgaWYgKHRoaXMuc2VsZWN0YWJsZSkge1xuICAgICAgcmV0dXJuIHRoaXMuI2dldENoZWNrSW5wdXRFbCgpLm5hdGl2ZUVsZW1lbnQuY2hlY2tlZDtcbiAgICB9XG5cbiAgICB0aHJvdyBuZXcgRXJyb3IoJ1RoZSBjYXJkIGlzIG5vdCBzZWxlY3RhYmxlLicpO1xuICB9XG5cbiAgI2RlYnVnRWw6IERlYnVnRWxlbWVudDtcblxuICBjb25zdHJ1Y3RvcihmaXh0dXJlOiBDb21wb25lbnRGaXh0dXJlPGFueT4sIHNreVRlc3RJZDogc3RyaW5nKSB7XG4gICAgdGhpcy4jZGVidWdFbCA9IFNreUFwcFRlc3RVdGlsaXR5LmdldERlYnVnRWxlbWVudEJ5VGVzdElkKFxuICAgICAgZml4dHVyZSxcbiAgICAgIHNreVRlc3RJZCxcbiAgICAgICdza3ktY2FyZCdcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIFNlbGVjdHMgdGhlIGNhcmQuXG4gICAqL1xuICBwdWJsaWMgc2VsZWN0KCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5zZWxlY3RlZCkge1xuICAgICAgdGhpcy4jY2xpY2tDaGVja0xhYmVsRWwoKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogRGVzZWxlY3RzIHRoZSBjYXJkLlxuICAgKi9cbiAgcHVibGljIGRlc2VsZWN0KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnNlbGVjdGVkKSB7XG4gICAgICB0aGlzLiNjbGlja0NoZWNrTGFiZWxFbCgpO1xuICAgIH1cbiAgfVxuXG4gICNjbGlja0NoZWNrTGFiZWxFbCgpOiB2b2lkIHtcbiAgICB0aGlzLiNkZWJ1Z0VsXG4gICAgICAucXVlcnkoQnkuY3NzKCcuc2t5LWNhcmQtY2hlY2sgbGFiZWwuc2t5LWNoZWNrYm94LXdyYXBwZXInKSlcbiAgICAgIC5uYXRpdmVFbGVtZW50LmNsaWNrKCk7XG4gIH1cblxuICAjZ2V0Q2hlY2tJbnB1dEVsKCk6IERlYnVnRWxlbWVudCB7XG4gICAgcmV0dXJuIHRoaXMuI2RlYnVnRWwucXVlcnkoXG4gICAgICBCeS5jc3MoJy5za3ktY2FyZC1jaGVjayAuc2t5LWNoZWNrYm94LXdyYXBwZXIgaW5wdXQnKVxuICAgICk7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,31 @@
1
+ import { By } from '@angular/platform-browser';
2
+ import { SkyAppTestUtility } from '@skyux-sdk/testing';
3
+ /**
4
+ * Allows interaction with a SKY UX page summary component.
5
+ * @internal
6
+ */
7
+ export class SkyPageSummaryFixture {
8
+ /**
9
+ * The page summary's current title text.
10
+ */
11
+ get titleText() {
12
+ return SkyAppTestUtility.getText(this.#debugEl.query(By.css('sky-page-summary-title .sky-page-summary-title')));
13
+ }
14
+ /**
15
+ * The page summary's current subtitle text.
16
+ */
17
+ get subtitleText() {
18
+ return SkyAppTestUtility.getText(this.#debugEl.query(By.css('sky-page-summary-subtitle .sky-page-summary-subtitle')));
19
+ }
20
+ /**
21
+ * The page summary's current content text.
22
+ */
23
+ get contentText() {
24
+ return SkyAppTestUtility.getText(this.#debugEl.query(By.css('sky-page-summary-content .sky-page-summary-content')));
25
+ }
26
+ #debugEl;
27
+ constructor(fixture, skyTestId) {
28
+ this.#debugEl = SkyAppTestUtility.getDebugElementByTestId(fixture, skyTestId, 'sky-page-summary');
29
+ }
30
+ }
31
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnZS1zdW1tYXJ5LWZpeHR1cmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvbGF5b3V0L3Rlc3Rpbmcvc3JjL3BhZ2Utc3VtbWFyeS1maXh0dXJlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUV2RDs7O0dBR0c7QUFDSCxNQUFNLE9BQU8scUJBQXFCO0lBQ2hDOztPQUVHO0lBQ0gsSUFBVyxTQUFTO1FBQ2xCLE9BQU8saUJBQWlCLENBQUMsT0FBTyxDQUM5QixJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FDakIsRUFBRSxDQUFDLEdBQUcsQ0FBQyxnREFBZ0QsQ0FBQyxDQUN6RCxDQUNGLENBQUM7SUFDSixDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUFXLFlBQVk7UUFDckIsT0FBTyxpQkFBaUIsQ0FBQyxPQUFPLENBQzlCLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUNqQixFQUFFLENBQUMsR0FBRyxDQUFDLHNEQUFzRCxDQUFDLENBQy9ELENBQ0YsQ0FBQztJQUNKLENBQUM7SUFFRDs7T0FFRztJQUNILElBQVcsV0FBVztRQUNwQixPQUFPLGlCQUFpQixDQUFDLE9BQU8sQ0FDOUIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQ2pCLEVBQUUsQ0FBQyxHQUFHLENBQUMsb0RBQW9ELENBQUMsQ0FDN0QsQ0FDRixDQUFDO0lBQ0osQ0FBQztJQUVELFFBQVEsQ0FBZTtJQUV2QixZQUFZLE9BQThCLEVBQUUsU0FBaUI7UUFDM0QsSUFBSSxDQUFDLFFBQVEsR0FBRyxpQkFBaUIsQ0FBQyx1QkFBdUIsQ0FDdkQsT0FBTyxFQUNQLFNBQVMsRUFDVCxrQkFBa0IsQ0FDbkIsQ0FBQztJQUNKLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERlYnVnRWxlbWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tcG9uZW50Rml4dHVyZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvdGVzdGluZyc7XG5pbXBvcnQgeyBCeSB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xuaW1wb3J0IHsgU2t5QXBwVGVzdFV0aWxpdHkgfSBmcm9tICdAc2t5dXgtc2RrL3Rlc3RpbmcnO1xuXG4vKipcbiAqIEFsbG93cyBpbnRlcmFjdGlvbiB3aXRoIGEgU0tZIFVYIHBhZ2Ugc3VtbWFyeSBjb21wb25lbnQuXG4gKiBAaW50ZXJuYWxcbiAqL1xuZXhwb3J0IGNsYXNzIFNreVBhZ2VTdW1tYXJ5Rml4dHVyZSB7XG4gIC8qKlxuICAgKiBUaGUgcGFnZSBzdW1tYXJ5J3MgY3VycmVudCB0aXRsZSB0ZXh0LlxuICAgKi9cbiAgcHVibGljIGdldCB0aXRsZVRleHQoKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gU2t5QXBwVGVzdFV0aWxpdHkuZ2V0VGV4dChcbiAgICAgIHRoaXMuI2RlYnVnRWwucXVlcnkoXG4gICAgICAgIEJ5LmNzcygnc2t5LXBhZ2Utc3VtbWFyeS10aXRsZSAuc2t5LXBhZ2Utc3VtbWFyeS10aXRsZScpXG4gICAgICApXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgcGFnZSBzdW1tYXJ5J3MgY3VycmVudCBzdWJ0aXRsZSB0ZXh0LlxuICAgKi9cbiAgcHVibGljIGdldCBzdWJ0aXRsZVRleHQoKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gU2t5QXBwVGVzdFV0aWxpdHkuZ2V0VGV4dChcbiAgICAgIHRoaXMuI2RlYnVnRWwucXVlcnkoXG4gICAgICAgIEJ5LmNzcygnc2t5LXBhZ2Utc3VtbWFyeS1zdWJ0aXRsZSAuc2t5LXBhZ2Utc3VtbWFyeS1zdWJ0aXRsZScpXG4gICAgICApXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgcGFnZSBzdW1tYXJ5J3MgY3VycmVudCBjb250ZW50IHRleHQuXG4gICAqL1xuICBwdWJsaWMgZ2V0IGNvbnRlbnRUZXh0KCk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIFNreUFwcFRlc3RVdGlsaXR5LmdldFRleHQoXG4gICAgICB0aGlzLiNkZWJ1Z0VsLnF1ZXJ5KFxuICAgICAgICBCeS5jc3MoJ3NreS1wYWdlLXN1bW1hcnktY29udGVudCAuc2t5LXBhZ2Utc3VtbWFyeS1jb250ZW50JylcbiAgICAgIClcbiAgICApO1xuICB9XG5cbiAgI2RlYnVnRWw6IERlYnVnRWxlbWVudDtcblxuICBjb25zdHJ1Y3RvcihmaXh0dXJlOiBDb21wb25lbnRGaXh0dXJlPGFueT4sIHNreVRlc3RJZDogc3RyaW5nKSB7XG4gICAgdGhpcy4jZGVidWdFbCA9IFNreUFwcFRlc3RVdGlsaXR5LmdldERlYnVnRWxlbWVudEJ5VGVzdElkKFxuICAgICAgZml4dHVyZSxcbiAgICAgIHNreVRlc3RJZCxcbiAgICAgICdza3ktcGFnZS1zdW1tYXJ5J1xuICAgICk7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,181 @@
1
+ import { By } from '@angular/platform-browser';
2
+ import { SkyAppTestUtility } from '@skyux-sdk/testing';
3
+ import { SkyComponentHarness } from '@skyux/core/testing';
4
+
5
+ /**
6
+ * Allows interaction with a SKY UX action button component.
7
+ * @internal
8
+ */
9
+ class SkyActionButtonFixture {
10
+ /**
11
+ * The action button's current header text.
12
+ */
13
+ get headerText() {
14
+ return SkyAppTestUtility.getText(this.#debugEl.query(By.css('.sky-action-button-header')));
15
+ }
16
+ /**
17
+ * The action button's current details text.
18
+ */
19
+ get detailsText() {
20
+ return SkyAppTestUtility.getText(this.#debugEl.query(By.css('sky-action-button-details')));
21
+ }
22
+ /**
23
+ * The action button's current icon type.
24
+ */
25
+ get iconType() {
26
+ const classList = this.#debugEl.query(By.css('.fa.sky-icon')).nativeElement
27
+ .classList;
28
+ for (let i = 0, n = classList.length; i < n; i++) {
29
+ const cls = classList.item(i);
30
+ if (cls.indexOf('fa-') === 0) {
31
+ return cls.substr(3);
32
+ }
33
+ }
34
+ /* istanbul ignore next */
35
+ return undefined;
36
+ }
37
+ #debugEl;
38
+ constructor(fixture, skyTestId) {
39
+ this.#debugEl = SkyAppTestUtility.getDebugElementByTestId(fixture, skyTestId, 'sky-action-button');
40
+ }
41
+ /**
42
+ * Clicks the action button.
43
+ */
44
+ actionClick() {
45
+ this.#debugEl
46
+ .query(By.css('.sky-action-button'))
47
+ .triggerEventHandler('click', {});
48
+ }
49
+ }
50
+
51
+ /**
52
+ * Allows interaction with a SKY UX avatar component.
53
+ * @internal
54
+ */
55
+ class SkyCardFixture {
56
+ /**
57
+ * The card's current title.
58
+ */
59
+ get titleText() {
60
+ return SkyAppTestUtility.getText(this.#debugEl.query(By.css('sky-card-title')));
61
+ }
62
+ /**
63
+ * The card's current content text.
64
+ */
65
+ get contentText() {
66
+ return SkyAppTestUtility.getText(this.#debugEl.query(By.css('sky-card-content')));
67
+ }
68
+ /**
69
+ * A flag indicating whether the user can select the card.
70
+ */
71
+ get selectable() {
72
+ return !!this.#debugEl.query(By.css('.sky-card-check'));
73
+ }
74
+ /**
75
+ * A flag indicating whether the card is currently selected. If the card
76
+ * is not selectable, an error is thrown.
77
+ */
78
+ get selected() {
79
+ if (this.selectable) {
80
+ return this.#getCheckInputEl().nativeElement.checked;
81
+ }
82
+ throw new Error('The card is not selectable.');
83
+ }
84
+ #debugEl;
85
+ constructor(fixture, skyTestId) {
86
+ this.#debugEl = SkyAppTestUtility.getDebugElementByTestId(fixture, skyTestId, 'sky-card');
87
+ }
88
+ /**
89
+ * Selects the card.
90
+ */
91
+ select() {
92
+ if (!this.selected) {
93
+ this.#clickCheckLabelEl();
94
+ }
95
+ }
96
+ /**
97
+ * Deselects the card.
98
+ */
99
+ deselect() {
100
+ if (this.selected) {
101
+ this.#clickCheckLabelEl();
102
+ }
103
+ }
104
+ #clickCheckLabelEl() {
105
+ this.#debugEl
106
+ .query(By.css('.sky-card-check label.sky-checkbox-wrapper'))
107
+ .nativeElement.click();
108
+ }
109
+ #getCheckInputEl() {
110
+ return this.#debugEl.query(By.css('.sky-card-check .sky-checkbox-wrapper input'));
111
+ }
112
+ }
113
+
114
+ /**
115
+ * Allows interaction with a SKY UX page summary component.
116
+ * @internal
117
+ */
118
+ class SkyPageSummaryFixture {
119
+ /**
120
+ * The page summary's current title text.
121
+ */
122
+ get titleText() {
123
+ return SkyAppTestUtility.getText(this.#debugEl.query(By.css('sky-page-summary-title .sky-page-summary-title')));
124
+ }
125
+ /**
126
+ * The page summary's current subtitle text.
127
+ */
128
+ get subtitleText() {
129
+ return SkyAppTestUtility.getText(this.#debugEl.query(By.css('sky-page-summary-subtitle .sky-page-summary-subtitle')));
130
+ }
131
+ /**
132
+ * The page summary's current content text.
133
+ */
134
+ get contentText() {
135
+ return SkyAppTestUtility.getText(this.#debugEl.query(By.css('sky-page-summary-content .sky-page-summary-content')));
136
+ }
137
+ #debugEl;
138
+ constructor(fixture, skyTestId) {
139
+ this.#debugEl = SkyAppTestUtility.getDebugElementByTestId(fixture, skyTestId, 'sky-page-summary');
140
+ }
141
+ }
142
+
143
+ class SkyBoxHarness extends SkyComponentHarness {
144
+ /**
145
+ * @internal
146
+ */
147
+ static { this.hostSelector = 'sky-box'; }
148
+ #getBox = this.locatorFor('.sky-box');
149
+ /**
150
+ * Gets a `HarnessPredicate` that can be used to search for a
151
+ * `SkyBoxHarness` that meets certain criteria
152
+ */
153
+ static with(filters) {
154
+ return SkyBoxHarness.getDataSkyIdPredicate(filters);
155
+ }
156
+ /**
157
+ * Gets the aria-label property of the box
158
+ */
159
+ async getAriaLabel() {
160
+ return (await this.#getBox()).getAttribute('aria-label');
161
+ }
162
+ /**
163
+ * Gets the aria-labelledby property of the box
164
+ */
165
+ async getAriaLabelledby() {
166
+ return (await this.#getBox()).getAttribute('aria-labelledby');
167
+ }
168
+ /**
169
+ * Gets the aria-role property of the box
170
+ */
171
+ async getAriaRole() {
172
+ return (await this.#getBox()).getAttribute('role');
173
+ }
174
+ }
175
+
176
+ /**
177
+ * Generated bundle index. Do not edit.
178
+ */
179
+
180
+ export { SkyActionButtonFixture, SkyBoxHarness, SkyCardFixture, SkyPageSummaryFixture };
181
+ //# sourceMappingURL=skyux-layout-testing.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"skyux-layout-testing.mjs","sources":["../../../../../libs/components/layout/testing/src/action-button-fixture.ts","../../../../../libs/components/layout/testing/src/card-fixture.ts","../../../../../libs/components/layout/testing/src/page-summary-fixture.ts","../../../../../libs/components/layout/testing/src/box/box-harness.ts","../../../../../libs/components/layout/testing/src/skyux-layout-testing.ts"],"sourcesContent":["import { DebugElement } from '@angular/core';\nimport { ComponentFixture } from '@angular/core/testing';\nimport { By } from '@angular/platform-browser';\nimport { SkyAppTestUtility } from '@skyux-sdk/testing';\n\n/**\n * Allows interaction with a SKY UX action button component.\n * @internal\n */\nexport class SkyActionButtonFixture {\n /**\n * The action button's current header text.\n */\n public get headerText(): string | undefined {\n return SkyAppTestUtility.getText(\n this.#debugEl.query(By.css('.sky-action-button-header'))\n );\n }\n\n /**\n * The action button's current details text.\n */\n public get detailsText(): string | undefined {\n return SkyAppTestUtility.getText(\n this.#debugEl.query(By.css('sky-action-button-details'))\n );\n }\n\n /**\n * The action button's current icon type.\n */\n public get iconType(): string | undefined {\n const classList = this.#debugEl.query(By.css('.fa.sky-icon')).nativeElement\n .classList;\n\n for (let i = 0, n = classList.length; i < n; i++) {\n const cls = classList.item(i);\n\n if (cls.indexOf('fa-') === 0) {\n return cls.substr(3);\n }\n }\n /* istanbul ignore next */\n return undefined;\n }\n\n #debugEl: DebugElement;\n\n constructor(fixture: ComponentFixture<any>, skyTestId: string) {\n this.#debugEl = SkyAppTestUtility.getDebugElementByTestId(\n fixture,\n skyTestId,\n 'sky-action-button'\n );\n }\n\n /**\n * Clicks the action button.\n */\n public actionClick(): void {\n this.#debugEl\n .query(By.css('.sky-action-button'))\n .triggerEventHandler('click', {});\n }\n}\n","import { DebugElement } from '@angular/core';\nimport { ComponentFixture } from '@angular/core/testing';\nimport { By } from '@angular/platform-browser';\nimport { SkyAppTestUtility } from '@skyux-sdk/testing';\n\n/**\n * Allows interaction with a SKY UX avatar component.\n * @internal\n */\nexport class SkyCardFixture {\n /**\n * The card's current title.\n */\n public get titleText(): string | undefined {\n return SkyAppTestUtility.getText(\n this.#debugEl.query(By.css('sky-card-title'))\n );\n }\n\n /**\n * The card's current content text.\n */\n public get contentText(): string | undefined {\n return SkyAppTestUtility.getText(\n this.#debugEl.query(By.css('sky-card-content'))\n );\n }\n\n /**\n * A flag indicating whether the user can select the card.\n */\n public get selectable(): boolean {\n return !!this.#debugEl.query(By.css('.sky-card-check'));\n }\n\n /**\n * A flag indicating whether the card is currently selected. If the card\n * is not selectable, an error is thrown.\n */\n public get selected(): boolean {\n if (this.selectable) {\n return this.#getCheckInputEl().nativeElement.checked;\n }\n\n throw new Error('The card is not selectable.');\n }\n\n #debugEl: DebugElement;\n\n constructor(fixture: ComponentFixture<any>, skyTestId: string) {\n this.#debugEl = SkyAppTestUtility.getDebugElementByTestId(\n fixture,\n skyTestId,\n 'sky-card'\n );\n }\n\n /**\n * Selects the card.\n */\n public select(): void {\n if (!this.selected) {\n this.#clickCheckLabelEl();\n }\n }\n\n /**\n * Deselects the card.\n */\n public deselect(): void {\n if (this.selected) {\n this.#clickCheckLabelEl();\n }\n }\n\n #clickCheckLabelEl(): void {\n this.#debugEl\n .query(By.css('.sky-card-check label.sky-checkbox-wrapper'))\n .nativeElement.click();\n }\n\n #getCheckInputEl(): DebugElement {\n return this.#debugEl.query(\n By.css('.sky-card-check .sky-checkbox-wrapper input')\n );\n }\n}\n","import { DebugElement } from '@angular/core';\nimport { ComponentFixture } from '@angular/core/testing';\nimport { By } from '@angular/platform-browser';\nimport { SkyAppTestUtility } from '@skyux-sdk/testing';\n\n/**\n * Allows interaction with a SKY UX page summary component.\n * @internal\n */\nexport class SkyPageSummaryFixture {\n /**\n * The page summary's current title text.\n */\n public get titleText(): string | undefined {\n return SkyAppTestUtility.getText(\n this.#debugEl.query(\n By.css('sky-page-summary-title .sky-page-summary-title')\n )\n );\n }\n\n /**\n * The page summary's current subtitle text.\n */\n public get subtitleText(): string | undefined {\n return SkyAppTestUtility.getText(\n this.#debugEl.query(\n By.css('sky-page-summary-subtitle .sky-page-summary-subtitle')\n )\n );\n }\n\n /**\n * The page summary's current content text.\n */\n public get contentText(): string | undefined {\n return SkyAppTestUtility.getText(\n this.#debugEl.query(\n By.css('sky-page-summary-content .sky-page-summary-content')\n )\n );\n }\n\n #debugEl: DebugElement;\n\n constructor(fixture: ComponentFixture<any>, skyTestId: string) {\n this.#debugEl = SkyAppTestUtility.getDebugElementByTestId(\n fixture,\n skyTestId,\n 'sky-page-summary'\n );\n }\n}\n","import { HarnessPredicate } from '@angular/cdk/testing';\nimport { SkyComponentHarness } from '@skyux/core/testing';\n\nimport { SkyBoxHarnessFilters } from './box-harness.filters';\n\nexport class SkyBoxHarness extends SkyComponentHarness {\n /**\n * @internal\n */\n public static hostSelector = 'sky-box';\n\n #getBox = this.locatorFor('.sky-box');\n\n /**\n * Gets a `HarnessPredicate` that can be used to search for a\n * `SkyBoxHarness` that meets certain criteria\n */\n public static with(\n filters: SkyBoxHarnessFilters\n ): HarnessPredicate<SkyBoxHarness> {\n return SkyBoxHarness.getDataSkyIdPredicate(filters);\n }\n\n /**\n * Gets the aria-label property of the box\n */\n public async getAriaLabel(): Promise<string | null> {\n return (await this.#getBox()).getAttribute('aria-label');\n }\n\n /**\n * Gets the aria-labelledby property of the box\n */\n public async getAriaLabelledby(): Promise<string | null> {\n return (await this.#getBox()).getAttribute('aria-labelledby');\n }\n\n /**\n * Gets the aria-role property of the box\n */\n public async getAriaRole(): Promise<string | null> {\n return (await this.#getBox()).getAttribute('role');\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-layout-testing.mjs","sources":["../../../../../libs/components/layout/testing/src/action-button-fixture.ts","../../../../../libs/components/layout/testing/src/card-fixture.ts","../../../../../libs/components/layout/testing/src/page-summary-fixture.ts","../../../../../libs/components/layout/testing/src/box/box-harness.ts","../../../../../libs/components/layout/testing/src/skyux-layout-testing.ts"],"sourcesContent":["import { DebugElement } from '@angular/core';\nimport { ComponentFixture } from '@angular/core/testing';\nimport { By } from '@angular/platform-browser';\nimport { SkyAppTestUtility } from '@skyux-sdk/testing';\n\n/**\n * Allows interaction with a SKY UX action button component.\n * @internal\n */\nexport class SkyActionButtonFixture {\n /**\n * The action button's current header text.\n */\n public get headerText(): string | undefined {\n return SkyAppTestUtility.getText(\n this.#debugEl.query(By.css('.sky-action-button-header'))\n );\n }\n\n /**\n * The action button's current details text.\n */\n public get detailsText(): string | undefined {\n return SkyAppTestUtility.getText(\n this.#debugEl.query(By.css('sky-action-button-details'))\n );\n }\n\n /**\n * The action button's current icon type.\n */\n public get iconType(): string | undefined {\n const classList = this.#debugEl.query(By.css('.fa.sky-icon')).nativeElement\n .classList;\n\n for (let i = 0, n = classList.length; i < n; i++) {\n const cls = classList.item(i);\n\n if (cls.indexOf('fa-') === 0) {\n return cls.substr(3);\n }\n }\n /* istanbul ignore next */\n return undefined;\n }\n\n #debugEl: DebugElement;\n\n constructor(fixture: ComponentFixture<any>, skyTestId: string) {\n this.#debugEl = SkyAppTestUtility.getDebugElementByTestId(\n fixture,\n skyTestId,\n 'sky-action-button'\n );\n }\n\n /**\n * Clicks the action button.\n */\n public actionClick(): void {\n this.#debugEl\n .query(By.css('.sky-action-button'))\n .triggerEventHandler('click', {});\n }\n}\n","import { DebugElement } from '@angular/core';\nimport { ComponentFixture } from '@angular/core/testing';\nimport { By } from '@angular/platform-browser';\nimport { SkyAppTestUtility } from '@skyux-sdk/testing';\n\n/**\n * Allows interaction with a SKY UX avatar component.\n * @internal\n */\nexport class SkyCardFixture {\n /**\n * The card's current title.\n */\n public get titleText(): string | undefined {\n return SkyAppTestUtility.getText(\n this.#debugEl.query(By.css('sky-card-title'))\n );\n }\n\n /**\n * The card's current content text.\n */\n public get contentText(): string | undefined {\n return SkyAppTestUtility.getText(\n this.#debugEl.query(By.css('sky-card-content'))\n );\n }\n\n /**\n * A flag indicating whether the user can select the card.\n */\n public get selectable(): boolean {\n return !!this.#debugEl.query(By.css('.sky-card-check'));\n }\n\n /**\n * A flag indicating whether the card is currently selected. If the card\n * is not selectable, an error is thrown.\n */\n public get selected(): boolean {\n if (this.selectable) {\n return this.#getCheckInputEl().nativeElement.checked;\n }\n\n throw new Error('The card is not selectable.');\n }\n\n #debugEl: DebugElement;\n\n constructor(fixture: ComponentFixture<any>, skyTestId: string) {\n this.#debugEl = SkyAppTestUtility.getDebugElementByTestId(\n fixture,\n skyTestId,\n 'sky-card'\n );\n }\n\n /**\n * Selects the card.\n */\n public select(): void {\n if (!this.selected) {\n this.#clickCheckLabelEl();\n }\n }\n\n /**\n * Deselects the card.\n */\n public deselect(): void {\n if (this.selected) {\n this.#clickCheckLabelEl();\n }\n }\n\n #clickCheckLabelEl(): void {\n this.#debugEl\n .query(By.css('.sky-card-check label.sky-checkbox-wrapper'))\n .nativeElement.click();\n }\n\n #getCheckInputEl(): DebugElement {\n return this.#debugEl.query(\n By.css('.sky-card-check .sky-checkbox-wrapper input')\n );\n }\n}\n","import { DebugElement } from '@angular/core';\nimport { ComponentFixture } from '@angular/core/testing';\nimport { By } from '@angular/platform-browser';\nimport { SkyAppTestUtility } from '@skyux-sdk/testing';\n\n/**\n * Allows interaction with a SKY UX page summary component.\n * @internal\n */\nexport class SkyPageSummaryFixture {\n /**\n * The page summary's current title text.\n */\n public get titleText(): string | undefined {\n return SkyAppTestUtility.getText(\n this.#debugEl.query(\n By.css('sky-page-summary-title .sky-page-summary-title')\n )\n );\n }\n\n /**\n * The page summary's current subtitle text.\n */\n public get subtitleText(): string | undefined {\n return SkyAppTestUtility.getText(\n this.#debugEl.query(\n By.css('sky-page-summary-subtitle .sky-page-summary-subtitle')\n )\n );\n }\n\n /**\n * The page summary's current content text.\n */\n public get contentText(): string | undefined {\n return SkyAppTestUtility.getText(\n this.#debugEl.query(\n By.css('sky-page-summary-content .sky-page-summary-content')\n )\n );\n }\n\n #debugEl: DebugElement;\n\n constructor(fixture: ComponentFixture<any>, skyTestId: string) {\n this.#debugEl = SkyAppTestUtility.getDebugElementByTestId(\n fixture,\n skyTestId,\n 'sky-page-summary'\n );\n }\n}\n","import { HarnessPredicate } from '@angular/cdk/testing';\nimport { SkyComponentHarness } from '@skyux/core/testing';\n\nimport { SkyBoxHarnessFilters } from './box-harness.filters';\n\nexport class SkyBoxHarness extends SkyComponentHarness {\n /**\n * @internal\n */\n public static hostSelector = 'sky-box';\n\n #getBox = this.locatorFor('.sky-box');\n\n /**\n * Gets a `HarnessPredicate` that can be used to search for a\n * `SkyBoxHarness` that meets certain criteria\n */\n public static with(\n filters: SkyBoxHarnessFilters\n ): HarnessPredicate<SkyBoxHarness> {\n return SkyBoxHarness.getDataSkyIdPredicate(filters);\n }\n\n /**\n * Gets the aria-label property of the box\n */\n public async getAriaLabel(): Promise<string | null> {\n return (await this.#getBox()).getAttribute('aria-label');\n }\n\n /**\n * Gets the aria-labelledby property of the box\n */\n public async getAriaLabelledby(): Promise<string | null> {\n return (await this.#getBox()).getAttribute('aria-labelledby');\n }\n\n /**\n * Gets the aria-role property of the box\n */\n public async getAriaRole(): Promise<string | null> {\n return (await this.#getBox()).getAttribute('role');\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}