@angular/material 21.0.0-next.9 → 21.0.0-rc.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (202) hide show
  1. package/core/tokens/_classes.scss +1 -1
  2. package/core/tokens/m2/_md-sys-color.scss +17 -17
  3. package/fesm2022/_animation-chunk.mjs +10 -16
  4. package/fesm2022/_animation-chunk.mjs.map +1 -1
  5. package/fesm2022/_date-formats-chunk.mjs +68 -164
  6. package/fesm2022/_date-formats-chunk.mjs.map +1 -1
  7. package/fesm2022/_date-range-input-harness-chunk.mjs +284 -463
  8. package/fesm2022/_date-range-input-harness-chunk.mjs.map +1 -1
  9. package/fesm2022/_error-options-chunk.mjs +56 -19
  10. package/fesm2022/_error-options-chunk.mjs.map +1 -1
  11. package/fesm2022/_error-state-chunk.mjs +24 -31
  12. package/fesm2022/_error-state-chunk.mjs.map +1 -1
  13. package/fesm2022/_form-field-chunk.mjs +1224 -1017
  14. package/fesm2022/_form-field-chunk.mjs.map +1 -1
  15. package/fesm2022/_icon-button-chunk.mjs +243 -187
  16. package/fesm2022/_icon-button-chunk.mjs.map +1 -1
  17. package/fesm2022/_icon-registry-chunk.mjs +350 -575
  18. package/fesm2022/_icon-registry-chunk.mjs.map +1 -1
  19. package/fesm2022/_input-harness-chunk.mjs +56 -107
  20. package/fesm2022/_input-harness-chunk.mjs.map +1 -1
  21. package/fesm2022/_input-value-accessor-chunk.mjs +0 -6
  22. package/fesm2022/_input-value-accessor-chunk.mjs.map +1 -1
  23. package/fesm2022/_internal-form-field-chunk.mjs +59 -19
  24. package/fesm2022/_internal-form-field-chunk.mjs.map +1 -1
  25. package/fesm2022/_line-chunk.mjs +83 -43
  26. package/fesm2022/_line-chunk.mjs.map +1 -1
  27. package/fesm2022/_option-chunk.mjs +348 -311
  28. package/fesm2022/_option-chunk.mjs.map +1 -1
  29. package/fesm2022/_option-harness-chunk.mjs +23 -39
  30. package/fesm2022/_option-harness-chunk.mjs.map +1 -1
  31. package/fesm2022/_option-module-chunk.mjs +36 -10
  32. package/fesm2022/_option-module-chunk.mjs.map +1 -1
  33. package/fesm2022/_pseudo-checkbox-chunk.mjs +79 -44
  34. package/fesm2022/_pseudo-checkbox-chunk.mjs.map +1 -1
  35. package/fesm2022/_pseudo-checkbox-module-chunk.mjs +36 -10
  36. package/fesm2022/_pseudo-checkbox-module-chunk.mjs.map +1 -1
  37. package/fesm2022/_public-api-chunk.mjs +71 -134
  38. package/fesm2022/_public-api-chunk.mjs.map +1 -1
  39. package/fesm2022/_ripple-chunk.mjs +504 -600
  40. package/fesm2022/_ripple-chunk.mjs.map +1 -1
  41. package/fesm2022/_ripple-loader-chunk.mjs +120 -138
  42. package/fesm2022/_ripple-loader-chunk.mjs.map +1 -1
  43. package/fesm2022/_ripple-module-chunk.mjs +36 -10
  44. package/fesm2022/_ripple-module-chunk.mjs.map +1 -1
  45. package/fesm2022/_structural-styles-chunk.mjs +37 -10
  46. package/fesm2022/_structural-styles-chunk.mjs.map +1 -1
  47. package/fesm2022/_tooltip-chunk.mjs +811 -888
  48. package/fesm2022/_tooltip-chunk.mjs.map +1 -1
  49. package/fesm2022/autocomplete-testing.mjs +62 -86
  50. package/fesm2022/autocomplete-testing.mjs.map +1 -1
  51. package/fesm2022/autocomplete.mjs +965 -1126
  52. package/fesm2022/autocomplete.mjs.map +1 -1
  53. package/fesm2022/badge-testing.mjs +38 -54
  54. package/fesm2022/badge-testing.mjs.map +1 -1
  55. package/fesm2022/badge.mjs +321 -272
  56. package/fesm2022/badge.mjs.map +1 -1
  57. package/fesm2022/bottom-sheet-testing.mjs +10 -24
  58. package/fesm2022/bottom-sheet-testing.mjs.map +1 -1
  59. package/fesm2022/bottom-sheet.mjs +349 -344
  60. package/fesm2022/bottom-sheet.mjs.map +1 -1
  61. package/fesm2022/button-testing.mjs +60 -94
  62. package/fesm2022/button-testing.mjs.map +1 -1
  63. package/fesm2022/button-toggle-testing.mjs +76 -125
  64. package/fesm2022/button-toggle-testing.mjs.map +1 -1
  65. package/fesm2022/button-toggle.mjs +752 -662
  66. package/fesm2022/button-toggle.mjs.map +1 -1
  67. package/fesm2022/button.mjs +263 -158
  68. package/fesm2022/button.mjs.map +1 -1
  69. package/fesm2022/card-testing.mjs +19 -33
  70. package/fesm2022/card-testing.mjs.map +1 -1
  71. package/fesm2022/card.mjs +576 -272
  72. package/fesm2022/card.mjs.map +1 -1
  73. package/fesm2022/checkbox-testing.mjs +71 -123
  74. package/fesm2022/checkbox-testing.mjs.map +1 -1
  75. package/fesm2022/checkbox.mjs +515 -477
  76. package/fesm2022/checkbox.mjs.map +1 -1
  77. package/fesm2022/chips-testing.mjs +201 -344
  78. package/fesm2022/chips-testing.mjs.map +1 -1
  79. package/fesm2022/chips.mjs +2552 -2289
  80. package/fesm2022/chips.mjs.map +1 -1
  81. package/fesm2022/core-testing.mjs +14 -28
  82. package/fesm2022/core-testing.mjs.map +1 -1
  83. package/fesm2022/core.mjs +357 -328
  84. package/fesm2022/core.mjs.map +1 -1
  85. package/fesm2022/datepicker-testing.mjs +15 -25
  86. package/fesm2022/datepicker-testing.mjs.map +1 -1
  87. package/fesm2022/datepicker.mjs +4826 -4563
  88. package/fesm2022/datepicker.mjs.map +1 -1
  89. package/fesm2022/dialog-testing.mjs +93 -129
  90. package/fesm2022/dialog-testing.mjs.map +1 -1
  91. package/fesm2022/dialog.mjs +810 -829
  92. package/fesm2022/dialog.mjs.map +1 -1
  93. package/fesm2022/divider-testing.mjs +10 -11
  94. package/fesm2022/divider-testing.mjs.map +1 -1
  95. package/fesm2022/divider.mjs +119 -43
  96. package/fesm2022/divider.mjs.map +1 -1
  97. package/fesm2022/expansion-testing.mjs +74 -130
  98. package/fesm2022/expansion-testing.mjs.map +1 -1
  99. package/fesm2022/expansion.mjs +703 -515
  100. package/fesm2022/expansion.mjs.map +1 -1
  101. package/fesm2022/form-field-testing-control.mjs +16 -33
  102. package/fesm2022/form-field-testing-control.mjs.map +1 -1
  103. package/fesm2022/form-field-testing.mjs +118 -179
  104. package/fesm2022/form-field-testing.mjs.map +1 -1
  105. package/fesm2022/form-field.mjs +36 -10
  106. package/fesm2022/form-field.mjs.map +1 -1
  107. package/fesm2022/grid-list-testing.mjs +65 -113
  108. package/fesm2022/grid-list-testing.mjs.map +1 -1
  109. package/fesm2022/grid-list.mjs +559 -494
  110. package/fesm2022/grid-list.mjs.map +1 -1
  111. package/fesm2022/icon-testing.mjs +148 -127
  112. package/fesm2022/icon-testing.mjs.map +1 -1
  113. package/fesm2022/icon.mjs +325 -351
  114. package/fesm2022/icon.mjs.map +1 -1
  115. package/fesm2022/input-testing.mjs +59 -99
  116. package/fesm2022/input-testing.mjs.map +1 -1
  117. package/fesm2022/input.mjs +457 -520
  118. package/fesm2022/input.mjs.map +1 -1
  119. package/fesm2022/list-testing.mjs +251 -434
  120. package/fesm2022/list-testing.mjs.map +1 -1
  121. package/fesm2022/list.mjs +1522 -1204
  122. package/fesm2022/list.mjs.map +1 -1
  123. package/fesm2022/material.mjs +0 -5
  124. package/fesm2022/material.mjs.map +1 -1
  125. package/fesm2022/menu-testing.mjs +159 -228
  126. package/fesm2022/menu-testing.mjs.map +1 -1
  127. package/fesm2022/menu.mjs +1338 -1343
  128. package/fesm2022/menu.mjs.map +1 -1
  129. package/fesm2022/paginator-testing.mjs +55 -79
  130. package/fesm2022/paginator-testing.mjs.map +1 -1
  131. package/fesm2022/paginator.mjs +381 -309
  132. package/fesm2022/paginator.mjs.map +1 -1
  133. package/fesm2022/progress-bar-testing.mjs +12 -21
  134. package/fesm2022/progress-bar-testing.mjs.map +1 -1
  135. package/fesm2022/progress-bar.mjs +224 -169
  136. package/fesm2022/progress-bar.mjs.map +1 -1
  137. package/fesm2022/progress-spinner-testing.mjs +13 -23
  138. package/fesm2022/progress-spinner-testing.mjs.map +1 -1
  139. package/fesm2022/progress-spinner.mjs +235 -160
  140. package/fesm2022/progress-spinner.mjs.map +1 -1
  141. package/fesm2022/radio-testing.mjs +133 -208
  142. package/fesm2022/radio-testing.mjs.map +1 -1
  143. package/fesm2022/radio.mjs +712 -679
  144. package/fesm2022/radio.mjs.map +1 -1
  145. package/fesm2022/select-testing.mjs +83 -117
  146. package/fesm2022/select-testing.mjs.map +1 -1
  147. package/fesm2022/select.mjs +1116 -1246
  148. package/fesm2022/select.mjs.map +1 -1
  149. package/fesm2022/sidenav-testing.mjs +54 -120
  150. package/fesm2022/sidenav-testing.mjs.map +1 -1
  151. package/fesm2022/sidenav.mjs +1078 -995
  152. package/fesm2022/sidenav.mjs.map +1 -1
  153. package/fesm2022/slide-toggle-testing.mjs +57 -92
  154. package/fesm2022/slide-toggle-testing.mjs.map +1 -1
  155. package/fesm2022/slide-toggle.mjs +369 -279
  156. package/fesm2022/slide-toggle.mjs.map +1 -1
  157. package/fesm2022/slider-testing.mjs +90 -138
  158. package/fesm2022/slider-testing.mjs.map +1 -1
  159. package/fesm2022/slider.mjs +1651 -1716
  160. package/fesm2022/slider.mjs.map +1 -1
  161. package/fesm2022/snack-bar-testing.mjs +40 -87
  162. package/fesm2022/snack-bar-testing.mjs.map +1 -1
  163. package/fesm2022/snack-bar.mjs +763 -714
  164. package/fesm2022/snack-bar.mjs.map +1 -1
  165. package/fesm2022/sort-testing.mjs +45 -66
  166. package/fesm2022/sort-testing.mjs.map +1 -1
  167. package/fesm2022/sort.mjs +419 -344
  168. package/fesm2022/sort.mjs.map +1 -1
  169. package/fesm2022/stepper-testing.mjs +78 -154
  170. package/fesm2022/stepper-testing.mjs.map +1 -1
  171. package/fesm2022/stepper.mjs +790 -498
  172. package/fesm2022/stepper.mjs.map +1 -1
  173. package/fesm2022/table-testing.mjs +120 -213
  174. package/fesm2022/table-testing.mjs.map +1 -1
  175. package/fesm2022/table.mjs +1026 -684
  176. package/fesm2022/table.mjs.map +1 -1
  177. package/fesm2022/tabs-testing.mjs +125 -197
  178. package/fesm2022/tabs-testing.mjs.map +1 -1
  179. package/fesm2022/tabs.mjs +2351 -2028
  180. package/fesm2022/tabs.mjs.map +1 -1
  181. package/fesm2022/timepicker-testing.mjs +113 -172
  182. package/fesm2022/timepicker-testing.mjs.map +1 -1
  183. package/fesm2022/timepicker.mjs +1019 -826
  184. package/fesm2022/timepicker.mjs.map +1 -1
  185. package/fesm2022/toolbar-testing.mjs +16 -27
  186. package/fesm2022/toolbar-testing.mjs.map +1 -1
  187. package/fesm2022/toolbar.mjs +163 -78
  188. package/fesm2022/toolbar.mjs.map +1 -1
  189. package/fesm2022/tooltip-testing.mjs +41 -52
  190. package/fesm2022/tooltip-testing.mjs.map +1 -1
  191. package/fesm2022/tooltip.mjs +36 -10
  192. package/fesm2022/tooltip.mjs.map +1 -1
  193. package/fesm2022/tree-testing.mjs +86 -162
  194. package/fesm2022/tree-testing.mjs.map +1 -1
  195. package/fesm2022/tree.mjs +638 -466
  196. package/fesm2022/tree.mjs.map +1 -1
  197. package/package.json +2 -2
  198. package/schematics/ng-add/index.js +1 -1
  199. package/types/expansion.d.ts +4 -2
  200. package/types/menu-testing.d.ts +2 -0
  201. package/types/select.d.ts +1 -1
  202. package/types/timepicker.d.ts +1 -0
@@ -1,142 +1,86 @@
1
1
  import { ContentContainerComponentHarness, HarnessPredicate, ComponentHarness } from '@angular/cdk/testing';
2
2
 
3
- /** Selectors for the various `mat-expansion-panel` sections that may contain user content. */
4
3
  var MatExpansionPanelSection;
5
4
  (function (MatExpansionPanelSection) {
6
- MatExpansionPanelSection["HEADER"] = ".mat-expansion-panel-header";
7
- MatExpansionPanelSection["TITLE"] = ".mat-expansion-panel-header-title";
8
- MatExpansionPanelSection["DESCRIPTION"] = ".mat-expansion-panel-header-description";
9
- MatExpansionPanelSection["CONTENT"] = ".mat-expansion-panel-content";
5
+ MatExpansionPanelSection["HEADER"] = ".mat-expansion-panel-header";
6
+ MatExpansionPanelSection["TITLE"] = ".mat-expansion-panel-header-title";
7
+ MatExpansionPanelSection["DESCRIPTION"] = ".mat-expansion-panel-header-description";
8
+ MatExpansionPanelSection["CONTENT"] = ".mat-expansion-panel-content";
10
9
  })(MatExpansionPanelSection || (MatExpansionPanelSection = {}));
11
- /** Harness for interacting with a standard mat-expansion-panel in tests. */
12
10
  class MatExpansionPanelHarness extends ContentContainerComponentHarness {
13
- static hostSelector = '.mat-expansion-panel';
14
- _header = this.locatorFor(MatExpansionPanelSection.HEADER);
15
- _title = this.locatorForOptional(MatExpansionPanelSection.TITLE);
16
- _description = this.locatorForOptional(MatExpansionPanelSection.DESCRIPTION);
17
- _expansionIndicator = this.locatorForOptional('.mat-expansion-indicator');
18
- _content = this.locatorFor(MatExpansionPanelSection.CONTENT);
19
- /**
20
- * Gets a `HarnessPredicate` that can be used to search for an expansion-panel
21
- * with specific attributes.
22
- * @param options Options for narrowing the search:
23
- * - `title` finds an expansion-panel with a specific title text.
24
- * - `description` finds an expansion-panel with a specific description text.
25
- * - `expanded` finds an expansion-panel that is currently expanded.
26
- * - `disabled` finds an expansion-panel that is disabled.
27
- * @return a `HarnessPredicate` configured with the given options.
28
- */
29
- static with(options = {}) {
30
- return new HarnessPredicate(MatExpansionPanelHarness, options)
31
- .addOption('title', options.title, (harness, title) => HarnessPredicate.stringMatches(harness.getTitle(), title))
32
- .addOption('description', options.description, (harness, description) => HarnessPredicate.stringMatches(harness.getDescription(), description))
33
- .addOption('content', options.content, (harness, content) => HarnessPredicate.stringMatches(harness.getTextContent(), content))
34
- .addOption('expanded', options.expanded, async (harness, expanded) => (await harness.isExpanded()) === expanded)
35
- .addOption('disabled', options.disabled, async (harness, disabled) => (await harness.isDisabled()) === disabled);
36
- }
37
- /** Whether the panel is expanded. */
38
- async isExpanded() {
39
- return (await this.host()).hasClass('mat-expanded');
40
- }
41
- /**
42
- * Gets the title text of the panel.
43
- * @returns Title text or `null` if no title is set up.
44
- */
45
- async getTitle() {
46
- const titleEl = await this._title();
47
- return titleEl ? titleEl.text() : null;
48
- }
49
- /**
50
- * Gets the description text of the panel.
51
- * @returns Description text or `null` if no description is set up.
52
- */
53
- async getDescription() {
54
- const descriptionEl = await this._description();
55
- return descriptionEl ? descriptionEl.text() : null;
56
- }
57
- /** Whether the panel is disabled. */
58
- async isDisabled() {
59
- return (await (await this._header()).getAttribute('aria-disabled')) === 'true';
60
- }
61
- /**
62
- * Toggles the expanded state of the panel by clicking on the panel
63
- * header. This method will not work if the panel is disabled.
64
- */
65
- async toggle() {
66
- await (await this._header()).click();
67
- }
68
- /** Expands the expansion panel if collapsed. */
69
- async expand() {
70
- if (!(await this.isExpanded())) {
71
- await this.toggle();
72
- }
73
- }
74
- /** Collapses the expansion panel if expanded. */
75
- async collapse() {
76
- if (await this.isExpanded()) {
77
- await this.toggle();
78
- }
79
- }
80
- /** Gets the text content of the panel. */
81
- async getTextContent() {
82
- return (await this._content()).text();
83
- }
84
- /**
85
- * Gets a `HarnessLoader` that can be used to load harnesses for
86
- * components within the panel's content area.
87
- * @deprecated Use either `getChildLoader(MatExpansionPanelSection.CONTENT)`, `getHarness` or
88
- * `getAllHarnesses` instead.
89
- * @breaking-change 12.0.0
90
- */
91
- async getHarnessLoaderForContent() {
92
- return this.getChildLoader(MatExpansionPanelSection.CONTENT);
93
- }
94
- /** Focuses the panel. */
95
- async focus() {
96
- return (await this._header()).focus();
97
- }
98
- /** Blurs the panel. */
99
- async blur() {
100
- return (await this._header()).blur();
101
- }
102
- /** Whether the panel is focused. */
103
- async isFocused() {
104
- return (await this._header()).isFocused();
105
- }
106
- /** Whether the panel has a toggle indicator displayed. */
107
- async hasToggleIndicator() {
108
- return (await this._expansionIndicator()) !== null;
109
- }
110
- /** Gets the position of the toggle indicator. */
111
- async getToggleIndicatorPosition() {
112
- // By default the expansion indicator will show "after" the panel header content.
113
- if (await (await this._header()).hasClass('mat-expansion-toggle-indicator-before')) {
114
- return 'before';
115
- }
116
- return 'after';
117
- }
11
+ static hostSelector = '.mat-expansion-panel';
12
+ _header = this.locatorFor(MatExpansionPanelSection.HEADER);
13
+ _title = this.locatorForOptional(MatExpansionPanelSection.TITLE);
14
+ _description = this.locatorForOptional(MatExpansionPanelSection.DESCRIPTION);
15
+ _expansionIndicator = this.locatorForOptional('.mat-expansion-indicator');
16
+ _content = this.locatorFor(MatExpansionPanelSection.CONTENT);
17
+ static with(options = {}) {
18
+ return new HarnessPredicate(MatExpansionPanelHarness, options).addOption('title', options.title, (harness, title) => HarnessPredicate.stringMatches(harness.getTitle(), title)).addOption('description', options.description, (harness, description) => HarnessPredicate.stringMatches(harness.getDescription(), description)).addOption('content', options.content, (harness, content) => HarnessPredicate.stringMatches(harness.getTextContent(), content)).addOption('expanded', options.expanded, async (harness, expanded) => (await harness.isExpanded()) === expanded).addOption('disabled', options.disabled, async (harness, disabled) => (await harness.isDisabled()) === disabled);
19
+ }
20
+ async isExpanded() {
21
+ return (await this.host()).hasClass('mat-expanded');
22
+ }
23
+ async getTitle() {
24
+ const titleEl = await this._title();
25
+ return titleEl ? titleEl.text() : null;
26
+ }
27
+ async getDescription() {
28
+ const descriptionEl = await this._description();
29
+ return descriptionEl ? descriptionEl.text() : null;
30
+ }
31
+ async isDisabled() {
32
+ return (await (await this._header()).getAttribute('aria-disabled')) === 'true';
33
+ }
34
+ async toggle() {
35
+ await (await this._header()).click();
36
+ }
37
+ async expand() {
38
+ if (!(await this.isExpanded())) {
39
+ await this.toggle();
40
+ }
41
+ }
42
+ async collapse() {
43
+ if (await this.isExpanded()) {
44
+ await this.toggle();
45
+ }
46
+ }
47
+ async getTextContent() {
48
+ return (await this._content()).text();
49
+ }
50
+ async getHarnessLoaderForContent() {
51
+ return this.getChildLoader(MatExpansionPanelSection.CONTENT);
52
+ }
53
+ async focus() {
54
+ return (await this._header()).focus();
55
+ }
56
+ async blur() {
57
+ return (await this._header()).blur();
58
+ }
59
+ async isFocused() {
60
+ return (await this._header()).isFocused();
61
+ }
62
+ async hasToggleIndicator() {
63
+ return (await this._expansionIndicator()) !== null;
64
+ }
65
+ async getToggleIndicatorPosition() {
66
+ if (await (await this._header()).hasClass('mat-expansion-toggle-indicator-before')) {
67
+ return 'before';
68
+ }
69
+ return 'after';
70
+ }
118
71
  }
119
72
 
120
- /** Harness for interacting with a standard mat-accordion in tests. */
121
73
  class MatAccordionHarness extends ComponentHarness {
122
- static hostSelector = '.mat-accordion';
123
- /**
124
- * Gets a `HarnessPredicate` that can be used to search for an accordion
125
- * with specific attributes.
126
- * @param options Options for narrowing the search.
127
- * @return a `HarnessPredicate` configured with the given options.
128
- */
129
- static with(options = {}) {
130
- return new HarnessPredicate(MatAccordionHarness, options);
131
- }
132
- /** Gets all expansion panels which are part of the accordion. */
133
- async getExpansionPanels(filter = {}) {
134
- return this.locatorForAll(MatExpansionPanelHarness.with(filter))();
135
- }
136
- /** Whether the accordion allows multiple expanded panels simultaneously. */
137
- async isMulti() {
138
- return (await this.host()).hasClass('mat-accordion-multi');
139
- }
74
+ static hostSelector = '.mat-accordion';
75
+ static with(options = {}) {
76
+ return new HarnessPredicate(MatAccordionHarness, options);
77
+ }
78
+ async getExpansionPanels(filter = {}) {
79
+ return this.locatorForAll(MatExpansionPanelHarness.with(filter))();
80
+ }
81
+ async isMulti() {
82
+ return (await this.host()).hasClass('mat-accordion-multi');
83
+ }
140
84
  }
141
85
 
142
86
  export { MatAccordionHarness, MatExpansionPanelHarness, MatExpansionPanelSection };
@@ -1 +1 @@
1
- {"version":3,"file":"expansion-testing.mjs","sources":["../../../../../darwin_arm64-fastbuild-ST-199a4f3c4e20/bin/src/material/expansion/testing/expansion-harness.ts","../../../../../darwin_arm64-fastbuild-ST-199a4f3c4e20/bin/src/material/expansion/testing/accordion-harness.ts"],"sourcesContent":["/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {\n ContentContainerComponentHarness,\n HarnessLoader,\n HarnessPredicate,\n} from '@angular/cdk/testing';\nimport {ExpansionPanelHarnessFilters} from './expansion-harness-filters';\n\n/** Selectors for the various `mat-expansion-panel` sections that may contain user content. */\nexport enum MatExpansionPanelSection {\n HEADER = '.mat-expansion-panel-header',\n TITLE = '.mat-expansion-panel-header-title',\n DESCRIPTION = '.mat-expansion-panel-header-description',\n CONTENT = '.mat-expansion-panel-content',\n}\n\n/** Harness for interacting with a standard mat-expansion-panel in tests. */\nexport class MatExpansionPanelHarness extends ContentContainerComponentHarness<MatExpansionPanelSection> {\n static hostSelector = '.mat-expansion-panel';\n\n private _header = this.locatorFor(MatExpansionPanelSection.HEADER);\n private _title = this.locatorForOptional(MatExpansionPanelSection.TITLE);\n private _description = this.locatorForOptional(MatExpansionPanelSection.DESCRIPTION);\n private _expansionIndicator = this.locatorForOptional('.mat-expansion-indicator');\n private _content = this.locatorFor(MatExpansionPanelSection.CONTENT);\n\n /**\n * Gets a `HarnessPredicate` that can be used to search for an expansion-panel\n * with specific attributes.\n * @param options Options for narrowing the search:\n * - `title` finds an expansion-panel with a specific title text.\n * - `description` finds an expansion-panel with a specific description text.\n * - `expanded` finds an expansion-panel that is currently expanded.\n * - `disabled` finds an expansion-panel that is disabled.\n * @return a `HarnessPredicate` configured with the given options.\n */\n static with(\n options: ExpansionPanelHarnessFilters = {},\n ): HarnessPredicate<MatExpansionPanelHarness> {\n return new HarnessPredicate(MatExpansionPanelHarness, options)\n .addOption('title', options.title, (harness, title) =>\n HarnessPredicate.stringMatches(harness.getTitle(), title),\n )\n .addOption('description', options.description, (harness, description) =>\n HarnessPredicate.stringMatches(harness.getDescription(), description),\n )\n .addOption('content', options.content, (harness, content) =>\n HarnessPredicate.stringMatches(harness.getTextContent(), content),\n )\n .addOption(\n 'expanded',\n options.expanded,\n async (harness, expanded) => (await harness.isExpanded()) === expanded,\n )\n .addOption(\n 'disabled',\n options.disabled,\n async (harness, disabled) => (await harness.isDisabled()) === disabled,\n );\n }\n\n /** Whether the panel is expanded. */\n async isExpanded(): Promise<boolean> {\n return (await this.host()).hasClass('mat-expanded');\n }\n\n /**\n * Gets the title text of the panel.\n * @returns Title text or `null` if no title is set up.\n */\n async getTitle(): Promise<string | null> {\n const titleEl = await this._title();\n return titleEl ? titleEl.text() : null;\n }\n\n /**\n * Gets the description text of the panel.\n * @returns Description text or `null` if no description is set up.\n */\n async getDescription(): Promise<string | null> {\n const descriptionEl = await this._description();\n return descriptionEl ? descriptionEl.text() : null;\n }\n\n /** Whether the panel is disabled. */\n async isDisabled(): Promise<boolean> {\n return (await (await this._header()).getAttribute('aria-disabled')) === 'true';\n }\n\n /**\n * Toggles the expanded state of the panel by clicking on the panel\n * header. This method will not work if the panel is disabled.\n */\n async toggle(): Promise<void> {\n await (await this._header()).click();\n }\n\n /** Expands the expansion panel if collapsed. */\n async expand(): Promise<void> {\n if (!(await this.isExpanded())) {\n await this.toggle();\n }\n }\n\n /** Collapses the expansion panel if expanded. */\n async collapse(): Promise<void> {\n if (await this.isExpanded()) {\n await this.toggle();\n }\n }\n\n /** Gets the text content of the panel. */\n async getTextContent(): Promise<string> {\n return (await this._content()).text();\n }\n\n /**\n * Gets a `HarnessLoader` that can be used to load harnesses for\n * components within the panel's content area.\n * @deprecated Use either `getChildLoader(MatExpansionPanelSection.CONTENT)`, `getHarness` or\n * `getAllHarnesses` instead.\n * @breaking-change 12.0.0\n */\n async getHarnessLoaderForContent(): Promise<HarnessLoader> {\n return this.getChildLoader(MatExpansionPanelSection.CONTENT);\n }\n\n /** Focuses the panel. */\n async focus(): Promise<void> {\n return (await this._header()).focus();\n }\n\n /** Blurs the panel. */\n async blur(): Promise<void> {\n return (await this._header()).blur();\n }\n\n /** Whether the panel is focused. */\n async isFocused(): Promise<boolean> {\n return (await this._header()).isFocused();\n }\n\n /** Whether the panel has a toggle indicator displayed. */\n async hasToggleIndicator(): Promise<boolean> {\n return (await this._expansionIndicator()) !== null;\n }\n\n /** Gets the position of the toggle indicator. */\n async getToggleIndicatorPosition(): Promise<'before' | 'after'> {\n // By default the expansion indicator will show \"after\" the panel header content.\n if (await (await this._header()).hasClass('mat-expansion-toggle-indicator-before')) {\n return 'before';\n }\n return 'after';\n }\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {ComponentHarness, HarnessPredicate} from '@angular/cdk/testing';\nimport {MatExpansionPanelHarness} from './expansion-harness';\nimport {AccordionHarnessFilters, ExpansionPanelHarnessFilters} from './expansion-harness-filters';\n\n/** Harness for interacting with a standard mat-accordion in tests. */\nexport class MatAccordionHarness extends ComponentHarness {\n static hostSelector = '.mat-accordion';\n\n /**\n * Gets a `HarnessPredicate` that can be used to search for an accordion\n * with specific attributes.\n * @param options Options for narrowing the search.\n * @return a `HarnessPredicate` configured with the given options.\n */\n static with(options: AccordionHarnessFilters = {}): HarnessPredicate<MatAccordionHarness> {\n return new HarnessPredicate(MatAccordionHarness, options);\n }\n\n /** Gets all expansion panels which are part of the accordion. */\n async getExpansionPanels(\n filter: ExpansionPanelHarnessFilters = {},\n ): Promise<MatExpansionPanelHarness[]> {\n return this.locatorForAll(MatExpansionPanelHarness.with(filter))();\n }\n\n /** Whether the accordion allows multiple expanded panels simultaneously. */\n async isMulti(): Promise<boolean> {\n return (await this.host()).hasClass('mat-accordion-multi');\n }\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"expansion-testing.mjs","sources":["../../../../../k8-fastbuild-ST-199a4f3c4e20/bin/src/material/expansion/testing/expansion-harness.ts","../../../../../k8-fastbuild-ST-199a4f3c4e20/bin/src/material/expansion/testing/accordion-harness.ts"],"sourcesContent":["/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {\n ContentContainerComponentHarness,\n HarnessLoader,\n HarnessPredicate,\n} from '@angular/cdk/testing';\nimport {ExpansionPanelHarnessFilters} from './expansion-harness-filters';\n\n/** Selectors for the various `mat-expansion-panel` sections that may contain user content. */\nexport enum MatExpansionPanelSection {\n HEADER = '.mat-expansion-panel-header',\n TITLE = '.mat-expansion-panel-header-title',\n DESCRIPTION = '.mat-expansion-panel-header-description',\n CONTENT = '.mat-expansion-panel-content',\n}\n\n/** Harness for interacting with a standard mat-expansion-panel in tests. */\nexport class MatExpansionPanelHarness extends ContentContainerComponentHarness<MatExpansionPanelSection> {\n static hostSelector = '.mat-expansion-panel';\n\n private _header = this.locatorFor(MatExpansionPanelSection.HEADER);\n private _title = this.locatorForOptional(MatExpansionPanelSection.TITLE);\n private _description = this.locatorForOptional(MatExpansionPanelSection.DESCRIPTION);\n private _expansionIndicator = this.locatorForOptional('.mat-expansion-indicator');\n private _content = this.locatorFor(MatExpansionPanelSection.CONTENT);\n\n /**\n * Gets a `HarnessPredicate` that can be used to search for an expansion-panel\n * with specific attributes.\n * @param options Options for narrowing the search:\n * - `title` finds an expansion-panel with a specific title text.\n * - `description` finds an expansion-panel with a specific description text.\n * - `expanded` finds an expansion-panel that is currently expanded.\n * - `disabled` finds an expansion-panel that is disabled.\n * @return a `HarnessPredicate` configured with the given options.\n */\n static with(\n options: ExpansionPanelHarnessFilters = {},\n ): HarnessPredicate<MatExpansionPanelHarness> {\n return new HarnessPredicate(MatExpansionPanelHarness, options)\n .addOption('title', options.title, (harness, title) =>\n HarnessPredicate.stringMatches(harness.getTitle(), title),\n )\n .addOption('description', options.description, (harness, description) =>\n HarnessPredicate.stringMatches(harness.getDescription(), description),\n )\n .addOption('content', options.content, (harness, content) =>\n HarnessPredicate.stringMatches(harness.getTextContent(), content),\n )\n .addOption(\n 'expanded',\n options.expanded,\n async (harness, expanded) => (await harness.isExpanded()) === expanded,\n )\n .addOption(\n 'disabled',\n options.disabled,\n async (harness, disabled) => (await harness.isDisabled()) === disabled,\n );\n }\n\n /** Whether the panel is expanded. */\n async isExpanded(): Promise<boolean> {\n return (await this.host()).hasClass('mat-expanded');\n }\n\n /**\n * Gets the title text of the panel.\n * @returns Title text or `null` if no title is set up.\n */\n async getTitle(): Promise<string | null> {\n const titleEl = await this._title();\n return titleEl ? titleEl.text() : null;\n }\n\n /**\n * Gets the description text of the panel.\n * @returns Description text or `null` if no description is set up.\n */\n async getDescription(): Promise<string | null> {\n const descriptionEl = await this._description();\n return descriptionEl ? descriptionEl.text() : null;\n }\n\n /** Whether the panel is disabled. */\n async isDisabled(): Promise<boolean> {\n return (await (await this._header()).getAttribute('aria-disabled')) === 'true';\n }\n\n /**\n * Toggles the expanded state of the panel by clicking on the panel\n * header. This method will not work if the panel is disabled.\n */\n async toggle(): Promise<void> {\n await (await this._header()).click();\n }\n\n /** Expands the expansion panel if collapsed. */\n async expand(): Promise<void> {\n if (!(await this.isExpanded())) {\n await this.toggle();\n }\n }\n\n /** Collapses the expansion panel if expanded. */\n async collapse(): Promise<void> {\n if (await this.isExpanded()) {\n await this.toggle();\n }\n }\n\n /** Gets the text content of the panel. */\n async getTextContent(): Promise<string> {\n return (await this._content()).text();\n }\n\n /**\n * Gets a `HarnessLoader` that can be used to load harnesses for\n * components within the panel's content area.\n * @deprecated Use either `getChildLoader(MatExpansionPanelSection.CONTENT)`, `getHarness` or\n * `getAllHarnesses` instead.\n * @breaking-change 12.0.0\n */\n async getHarnessLoaderForContent(): Promise<HarnessLoader> {\n return this.getChildLoader(MatExpansionPanelSection.CONTENT);\n }\n\n /** Focuses the panel. */\n async focus(): Promise<void> {\n return (await this._header()).focus();\n }\n\n /** Blurs the panel. */\n async blur(): Promise<void> {\n return (await this._header()).blur();\n }\n\n /** Whether the panel is focused. */\n async isFocused(): Promise<boolean> {\n return (await this._header()).isFocused();\n }\n\n /** Whether the panel has a toggle indicator displayed. */\n async hasToggleIndicator(): Promise<boolean> {\n return (await this._expansionIndicator()) !== null;\n }\n\n /** Gets the position of the toggle indicator. */\n async getToggleIndicatorPosition(): Promise<'before' | 'after'> {\n // By default the expansion indicator will show \"after\" the panel header content.\n if (await (await this._header()).hasClass('mat-expansion-toggle-indicator-before')) {\n return 'before';\n }\n return 'after';\n }\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {ComponentHarness, HarnessPredicate} from '@angular/cdk/testing';\nimport {MatExpansionPanelHarness} from './expansion-harness';\nimport {AccordionHarnessFilters, ExpansionPanelHarnessFilters} from './expansion-harness-filters';\n\n/** Harness for interacting with a standard mat-accordion in tests. */\nexport class MatAccordionHarness extends ComponentHarness {\n static hostSelector = '.mat-accordion';\n\n /**\n * Gets a `HarnessPredicate` that can be used to search for an accordion\n * with specific attributes.\n * @param options Options for narrowing the search.\n * @return a `HarnessPredicate` configured with the given options.\n */\n static with(options: AccordionHarnessFilters = {}): HarnessPredicate<MatAccordionHarness> {\n return new HarnessPredicate(MatAccordionHarness, options);\n }\n\n /** Gets all expansion panels which are part of the accordion. */\n async getExpansionPanels(\n filter: ExpansionPanelHarnessFilters = {},\n ): Promise<MatExpansionPanelHarness[]> {\n return this.locatorForAll(MatExpansionPanelHarness.with(filter))();\n }\n\n /** Whether the accordion allows multiple expanded panels simultaneously. */\n async isMulti(): Promise<boolean> {\n return (await this.host()).hasClass('mat-accordion-multi');\n }\n}\n"],"names":["MatExpansionPanelSection","MatExpansionPanelHarness","ContentContainerComponentHarness","hostSelector","_header","locatorFor","HEADER","_title","locatorForOptional","TITLE","_description","DESCRIPTION","_expansionIndicator","_content","CONTENT","with","options","HarnessPredicate","addOption","title","harness","stringMatches","getTitle","description","getDescription","content","getTextContent","expanded","isExpanded","disabled","isDisabled","host","hasClass","titleEl","text","descriptionEl","getAttribute","toggle","click","expand","collapse","getHarnessLoaderForContent","getChildLoader","focus","blur","isFocused","hasToggleIndicator","getToggleIndicatorPosition","MatAccordionHarness","ComponentHarness","getExpansionPanels","filter","locatorForAll","isMulti"],"mappings":"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"}