@angular/material 22.2.0-next.2 → 22.2.0-next.4

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 (70) hide show
  1. package/fesm2022/_error-options-chunk.mjs +6 -6
  2. package/fesm2022/_form-field-chunk.mjs +30 -30
  3. package/fesm2022/_icon-button-chunk.mjs +6 -6
  4. package/fesm2022/_icon-registry-chunk.mjs +26 -4
  5. package/fesm2022/_icon-registry-chunk.mjs.map +1 -1
  6. package/fesm2022/_internal-form-field-chunk.mjs +3 -3
  7. package/fesm2022/_line-chunk.mjs +7 -7
  8. package/fesm2022/_option-chunk.mjs +6 -6
  9. package/fesm2022/_option-module-chunk.mjs +4 -4
  10. package/fesm2022/_pseudo-checkbox-chunk.mjs +3 -3
  11. package/fesm2022/_pseudo-checkbox-module-chunk.mjs +4 -4
  12. package/fesm2022/_ripple-chunk.mjs +6 -6
  13. package/fesm2022/_ripple-loader-chunk.mjs +3 -3
  14. package/fesm2022/_ripple-module-chunk.mjs +4 -4
  15. package/fesm2022/_structural-styles-chunk.mjs +3 -3
  16. package/fesm2022/_tooltip-chunk.mjs +6 -6
  17. package/fesm2022/autocomplete.mjs +13 -13
  18. package/fesm2022/badge.mjs +10 -10
  19. package/fesm2022/bottom-sheet.mjs +10 -10
  20. package/fesm2022/button-toggle.mjs +10 -10
  21. package/fesm2022/button.mjs +25 -25
  22. package/fesm2022/button.mjs.map +1 -1
  23. package/fesm2022/card.mjs +46 -46
  24. package/fesm2022/checkbox.mjs +7 -7
  25. package/fesm2022/chips.mjs +46 -46
  26. package/fesm2022/core.mjs +12 -12
  27. package/fesm2022/core.mjs.map +1 -1
  28. package/fesm2022/datepicker.mjs +82 -82
  29. package/fesm2022/dialog.mjs +25 -25
  30. package/fesm2022/divider.mjs +7 -7
  31. package/fesm2022/expansion.mjs +25 -25
  32. package/fesm2022/form-field.mjs +4 -4
  33. package/fesm2022/grid-list.mjs +22 -22
  34. package/fesm2022/icon-testing.mjs +7 -7
  35. package/fesm2022/icon.mjs +7 -7
  36. package/fesm2022/input.mjs +7 -7
  37. package/fesm2022/list.mjs +49 -49
  38. package/fesm2022/menu-testing.mjs +1 -2
  39. package/fesm2022/menu-testing.mjs.map +1 -1
  40. package/fesm2022/menu.mjs +54 -31
  41. package/fesm2022/menu.mjs.map +1 -1
  42. package/fesm2022/paginator.mjs +10 -10
  43. package/fesm2022/progress-bar.mjs +7 -7
  44. package/fesm2022/progress-spinner.mjs +7 -7
  45. package/fesm2022/radio.mjs +10 -10
  46. package/fesm2022/select.mjs +10 -10
  47. package/fesm2022/sidenav.mjs +46 -31
  48. package/fesm2022/sidenav.mjs.map +1 -1
  49. package/fesm2022/slide-toggle.mjs +7 -7
  50. package/fesm2022/slider.mjs +16 -16
  51. package/fesm2022/snack-bar.mjs +22 -22
  52. package/fesm2022/sort.mjs +13 -13
  53. package/fesm2022/stepper.mjs +31 -31
  54. package/fesm2022/table.mjs +55 -55
  55. package/fesm2022/tabs.mjs +43 -43
  56. package/fesm2022/timepicker.mjs +13 -13
  57. package/fesm2022/timepicker.mjs.map +1 -1
  58. package/fesm2022/toolbar.mjs +10 -10
  59. package/fesm2022/tooltip.mjs +4 -4
  60. package/fesm2022/tree.mjs +25 -25
  61. package/package.json +2 -2
  62. package/schematics/ng-add/index.js +1 -1
  63. package/types/_form-field-chunk.d.ts +1 -1
  64. package/types/button.d.ts +3 -3
  65. package/types/datepicker.d.ts +1 -1
  66. package/types/expansion.d.ts +8 -8
  67. package/types/menu.d.ts +14 -2
  68. package/types/sidenav.d.ts +2 -0
  69. package/types/sort.d.ts +1 -1
  70. package/types/timepicker.d.ts +1 -1
package/fesm2022/list.mjs CHANGED
@@ -28,7 +28,7 @@ class MatListItemTitle {
28
28
  _elementRef = inject(ElementRef);
29
29
  static ɵfac = i0.ɵɵngDeclareFactory({
30
30
  minVersion: "12.0.0",
31
- version: "22.2.0-next.2",
31
+ version: "22.2.0-next.4",
32
32
  ngImport: i0,
33
33
  type: MatListItemTitle,
34
34
  deps: [],
@@ -36,7 +36,7 @@ class MatListItemTitle {
36
36
  });
37
37
  static ɵdir = i0.ɵɵngDeclareDirective({
38
38
  minVersion: "14.0.0",
39
- version: "22.2.0-next.2",
39
+ version: "22.2.0-next.4",
40
40
  type: MatListItemTitle,
41
41
  isStandalone: true,
42
42
  selector: "[matListItemTitle]",
@@ -48,7 +48,7 @@ class MatListItemTitle {
48
48
  }
49
49
  i0.ɵɵngDeclareClassMetadata({
50
50
  minVersion: "12.0.0",
51
- version: "22.2.0-next.2",
51
+ version: "22.2.0-next.4",
52
52
  ngImport: i0,
53
53
  type: MatListItemTitle,
54
54
  decorators: [{
@@ -65,7 +65,7 @@ class MatListItemLine {
65
65
  _elementRef = inject(ElementRef);
66
66
  static ɵfac = i0.ɵɵngDeclareFactory({
67
67
  minVersion: "12.0.0",
68
- version: "22.2.0-next.2",
68
+ version: "22.2.0-next.4",
69
69
  ngImport: i0,
70
70
  type: MatListItemLine,
71
71
  deps: [],
@@ -73,7 +73,7 @@ class MatListItemLine {
73
73
  });
74
74
  static ɵdir = i0.ɵɵngDeclareDirective({
75
75
  minVersion: "14.0.0",
76
- version: "22.2.0-next.2",
76
+ version: "22.2.0-next.4",
77
77
  type: MatListItemLine,
78
78
  isStandalone: true,
79
79
  selector: "[matListItemLine]",
@@ -85,7 +85,7 @@ class MatListItemLine {
85
85
  }
86
86
  i0.ɵɵngDeclareClassMetadata({
87
87
  minVersion: "12.0.0",
88
- version: "22.2.0-next.2",
88
+ version: "22.2.0-next.4",
89
89
  ngImport: i0,
90
90
  type: MatListItemLine,
91
91
  decorators: [{
@@ -101,7 +101,7 @@ i0.ɵɵngDeclareClassMetadata({
101
101
  class MatListItemMeta {
102
102
  static ɵfac = i0.ɵɵngDeclareFactory({
103
103
  minVersion: "12.0.0",
104
- version: "22.2.0-next.2",
104
+ version: "22.2.0-next.4",
105
105
  ngImport: i0,
106
106
  type: MatListItemMeta,
107
107
  deps: [],
@@ -109,7 +109,7 @@ class MatListItemMeta {
109
109
  });
110
110
  static ɵdir = i0.ɵɵngDeclareDirective({
111
111
  minVersion: "14.0.0",
112
- version: "22.2.0-next.2",
112
+ version: "22.2.0-next.4",
113
113
  type: MatListItemMeta,
114
114
  isStandalone: true,
115
115
  selector: "[matListItemMeta]",
@@ -121,7 +121,7 @@ class MatListItemMeta {
121
121
  }
122
122
  i0.ɵɵngDeclareClassMetadata({
123
123
  minVersion: "12.0.0",
124
- version: "22.2.0-next.2",
124
+ version: "22.2.0-next.4",
125
125
  ngImport: i0,
126
126
  type: MatListItemMeta,
127
127
  decorators: [{
@@ -143,7 +143,7 @@ class _MatListItemGraphicBase {
143
143
  }
144
144
  static ɵfac = i0.ɵɵngDeclareFactory({
145
145
  minVersion: "12.0.0",
146
- version: "22.2.0-next.2",
146
+ version: "22.2.0-next.4",
147
147
  ngImport: i0,
148
148
  type: _MatListItemGraphicBase,
149
149
  deps: [],
@@ -151,7 +151,7 @@ class _MatListItemGraphicBase {
151
151
  });
152
152
  static ɵdir = i0.ɵɵngDeclareDirective({
153
153
  minVersion: "14.0.0",
154
- version: "22.2.0-next.2",
154
+ version: "22.2.0-next.4",
155
155
  type: _MatListItemGraphicBase,
156
156
  isStandalone: true,
157
157
  host: {
@@ -165,7 +165,7 @@ class _MatListItemGraphicBase {
165
165
  }
166
166
  i0.ɵɵngDeclareClassMetadata({
167
167
  minVersion: "12.0.0",
168
- version: "22.2.0-next.2",
168
+ version: "22.2.0-next.4",
169
169
  ngImport: i0,
170
170
  type: _MatListItemGraphicBase,
171
171
  decorators: [{
@@ -181,7 +181,7 @@ i0.ɵɵngDeclareClassMetadata({
181
181
  class MatListItemAvatar extends _MatListItemGraphicBase {
182
182
  static ɵfac = i0.ɵɵngDeclareFactory({
183
183
  minVersion: "12.0.0",
184
- version: "22.2.0-next.2",
184
+ version: "22.2.0-next.4",
185
185
  ngImport: i0,
186
186
  type: MatListItemAvatar,
187
187
  deps: null,
@@ -189,7 +189,7 @@ class MatListItemAvatar extends _MatListItemGraphicBase {
189
189
  });
190
190
  static ɵdir = i0.ɵɵngDeclareDirective({
191
191
  minVersion: "14.0.0",
192
- version: "22.2.0-next.2",
192
+ version: "22.2.0-next.4",
193
193
  type: MatListItemAvatar,
194
194
  isStandalone: true,
195
195
  selector: "[matListItemAvatar]",
@@ -202,7 +202,7 @@ class MatListItemAvatar extends _MatListItemGraphicBase {
202
202
  }
203
203
  i0.ɵɵngDeclareClassMetadata({
204
204
  minVersion: "12.0.0",
205
- version: "22.2.0-next.2",
205
+ version: "22.2.0-next.4",
206
206
  ngImport: i0,
207
207
  type: MatListItemAvatar,
208
208
  decorators: [{
@@ -218,7 +218,7 @@ i0.ɵɵngDeclareClassMetadata({
218
218
  class MatListItemIcon extends _MatListItemGraphicBase {
219
219
  static ɵfac = i0.ɵɵngDeclareFactory({
220
220
  minVersion: "12.0.0",
221
- version: "22.2.0-next.2",
221
+ version: "22.2.0-next.4",
222
222
  ngImport: i0,
223
223
  type: MatListItemIcon,
224
224
  deps: null,
@@ -226,7 +226,7 @@ class MatListItemIcon extends _MatListItemGraphicBase {
226
226
  });
227
227
  static ɵdir = i0.ɵɵngDeclareDirective({
228
228
  minVersion: "14.0.0",
229
- version: "22.2.0-next.2",
229
+ version: "22.2.0-next.4",
230
230
  type: MatListItemIcon,
231
231
  isStandalone: true,
232
232
  selector: "[matListItemIcon]",
@@ -239,7 +239,7 @@ class MatListItemIcon extends _MatListItemGraphicBase {
239
239
  }
240
240
  i0.ɵɵngDeclareClassMetadata({
241
241
  minVersion: "12.0.0",
242
- version: "22.2.0-next.2",
242
+ version: "22.2.0-next.4",
243
243
  ngImport: i0,
244
244
  type: MatListItemIcon,
245
245
  decorators: [{
@@ -278,7 +278,7 @@ class MatListBase {
278
278
  });
279
279
  static ɵfac = i0.ɵɵngDeclareFactory({
280
280
  minVersion: "12.0.0",
281
- version: "22.2.0-next.2",
281
+ version: "22.2.0-next.4",
282
282
  ngImport: i0,
283
283
  type: MatListBase,
284
284
  deps: [],
@@ -286,7 +286,7 @@ class MatListBase {
286
286
  });
287
287
  static ɵdir = i0.ɵɵngDeclareDirective({
288
288
  minVersion: "14.0.0",
289
- version: "22.2.0-next.2",
289
+ version: "22.2.0-next.4",
290
290
  type: MatListBase,
291
291
  isStandalone: true,
292
292
  inputs: {
@@ -303,7 +303,7 @@ class MatListBase {
303
303
  }
304
304
  i0.ɵɵngDeclareClassMetadata({
305
305
  minVersion: "12.0.0",
306
- version: "22.2.0-next.2",
306
+ version: "22.2.0-next.4",
307
307
  ngImport: i0,
308
308
  type: MatListBase,
309
309
  decorators: [{
@@ -438,7 +438,7 @@ class MatListItemBase {
438
438
  }
439
439
  static ɵfac = i0.ɵɵngDeclareFactory({
440
440
  minVersion: "12.0.0",
441
- version: "22.2.0-next.2",
441
+ version: "22.2.0-next.4",
442
442
  ngImport: i0,
443
443
  type: MatListItemBase,
444
444
  deps: [],
@@ -446,7 +446,7 @@ class MatListItemBase {
446
446
  });
447
447
  static ɵdir = i0.ɵɵngDeclareDirective({
448
448
  minVersion: "14.0.0",
449
- version: "22.2.0-next.2",
449
+ version: "22.2.0-next.4",
450
450
  type: MatListItemBase,
451
451
  isStandalone: true,
452
452
  inputs: {
@@ -473,7 +473,7 @@ class MatListItemBase {
473
473
  }
474
474
  i0.ɵɵngDeclareClassMetadata({
475
475
  minVersion: "12.0.0",
476
- version: "22.2.0-next.2",
476
+ version: "22.2.0-next.4",
477
477
  ngImport: i0,
478
478
  type: MatListItemBase,
479
479
  decorators: [{
@@ -532,7 +532,7 @@ class MatActionList extends MatListBase {
532
532
  _isNonInteractive = false;
533
533
  static ɵfac = i0.ɵɵngDeclareFactory({
534
534
  minVersion: "12.0.0",
535
- version: "22.2.0-next.2",
535
+ version: "22.2.0-next.4",
536
536
  ngImport: i0,
537
537
  type: MatActionList,
538
538
  deps: null,
@@ -540,7 +540,7 @@ class MatActionList extends MatListBase {
540
540
  });
541
541
  static ɵcmp = i0.ɵɵngDeclareComponent({
542
542
  minVersion: "14.0.0",
543
- version: "22.2.0-next.2",
543
+ version: "22.2.0-next.4",
544
544
  type: MatActionList,
545
545
  isStandalone: true,
546
546
  selector: "mat-action-list",
@@ -565,7 +565,7 @@ class MatActionList extends MatListBase {
565
565
  }
566
566
  i0.ɵɵngDeclareClassMetadata({
567
567
  minVersion: "12.0.0",
568
- version: "22.2.0-next.2",
568
+ version: "22.2.0-next.4",
569
569
  ngImport: i0,
570
570
  type: MatActionList,
571
571
  decorators: [{
@@ -592,7 +592,7 @@ const MAT_LIST = new InjectionToken('MatList');
592
592
  class MatList extends MatListBase {
593
593
  static ɵfac = i0.ɵɵngDeclareFactory({
594
594
  minVersion: "12.0.0",
595
- version: "22.2.0-next.2",
595
+ version: "22.2.0-next.4",
596
596
  ngImport: i0,
597
597
  type: MatList,
598
598
  deps: null,
@@ -600,7 +600,7 @@ class MatList extends MatListBase {
600
600
  });
601
601
  static ɵcmp = i0.ɵɵngDeclareComponent({
602
602
  minVersion: "14.0.0",
603
- version: "22.2.0-next.2",
603
+ version: "22.2.0-next.4",
604
604
  type: MatList,
605
605
  isStandalone: true,
606
606
  selector: "mat-list",
@@ -622,7 +622,7 @@ class MatList extends MatListBase {
622
622
  }
623
623
  i0.ɵɵngDeclareClassMetadata({
624
624
  minVersion: "12.0.0",
625
- version: "22.2.0-next.2",
625
+ version: "22.2.0-next.4",
626
626
  ngImport: i0,
627
627
  type: MatList,
628
628
  decorators: [{
@@ -664,7 +664,7 @@ class MatListItem extends MatListItemBase {
664
664
  }
665
665
  static ɵfac = i0.ɵɵngDeclareFactory({
666
666
  minVersion: "12.0.0",
667
- version: "22.2.0-next.2",
667
+ version: "22.2.0-next.4",
668
668
  ngImport: i0,
669
669
  type: MatListItem,
670
670
  deps: null,
@@ -672,7 +672,7 @@ class MatListItem extends MatListItemBase {
672
672
  });
673
673
  static ɵcmp = i0.ɵɵngDeclareComponent({
674
674
  minVersion: "14.0.0",
675
- version: "22.2.0-next.2",
675
+ version: "22.2.0-next.4",
676
676
  type: MatListItem,
677
677
  isStandalone: true,
678
678
  selector: "mat-list-item, a[mat-list-item], button[mat-list-item]",
@@ -732,7 +732,7 @@ class MatListItem extends MatListItemBase {
732
732
  }
733
733
  i0.ɵɵngDeclareClassMetadata({
734
734
  minVersion: "12.0.0",
735
- version: "22.2.0-next.2",
735
+ version: "22.2.0-next.4",
736
736
  ngImport: i0,
737
737
  type: MatListItem,
738
738
  decorators: [{
@@ -917,7 +917,7 @@ class MatListOption extends MatListItemBase {
917
917
  }
918
918
  static ɵfac = i0.ɵɵngDeclareFactory({
919
919
  minVersion: "12.0.0",
920
- version: "22.2.0-next.2",
920
+ version: "22.2.0-next.4",
921
921
  ngImport: i0,
922
922
  type: MatListOption,
923
923
  deps: null,
@@ -925,7 +925,7 @@ class MatListOption extends MatListItemBase {
925
925
  });
926
926
  static ɵcmp = i0.ɵɵngDeclareComponent({
927
927
  minVersion: "17.0.0",
928
- version: "22.2.0-next.2",
928
+ version: "22.2.0-next.4",
929
929
  type: MatListOption,
930
930
  isStandalone: true,
931
931
  selector: "mat-list-option",
@@ -1009,7 +1009,7 @@ class MatListOption extends MatListItemBase {
1009
1009
  }
1010
1010
  i0.ɵɵngDeclareClassMetadata({
1011
1011
  minVersion: "12.0.0",
1012
- version: "22.2.0-next.2",
1012
+ version: "22.2.0-next.4",
1013
1013
  ngImport: i0,
1014
1014
  type: MatListOption,
1015
1015
  decorators: [{
@@ -1088,7 +1088,7 @@ i0.ɵɵngDeclareClassMetadata({
1088
1088
  class MatListSubheaderCssMatStyler {
1089
1089
  static ɵfac = i0.ɵɵngDeclareFactory({
1090
1090
  minVersion: "12.0.0",
1091
- version: "22.2.0-next.2",
1091
+ version: "22.2.0-next.4",
1092
1092
  ngImport: i0,
1093
1093
  type: MatListSubheaderCssMatStyler,
1094
1094
  deps: [],
@@ -1096,7 +1096,7 @@ class MatListSubheaderCssMatStyler {
1096
1096
  });
1097
1097
  static ɵdir = i0.ɵɵngDeclareDirective({
1098
1098
  minVersion: "14.0.0",
1099
- version: "22.2.0-next.2",
1099
+ version: "22.2.0-next.4",
1100
1100
  type: MatListSubheaderCssMatStyler,
1101
1101
  isStandalone: true,
1102
1102
  selector: "[mat-subheader], [matSubheader]",
@@ -1108,7 +1108,7 @@ class MatListSubheaderCssMatStyler {
1108
1108
  }
1109
1109
  i0.ɵɵngDeclareClassMetadata({
1110
1110
  minVersion: "12.0.0",
1111
- version: "22.2.0-next.2",
1111
+ version: "22.2.0-next.4",
1112
1112
  ngImport: i0,
1113
1113
  type: MatListSubheaderCssMatStyler,
1114
1114
  decorators: [{
@@ -1127,7 +1127,7 @@ class MatNavList extends MatListBase {
1127
1127
  _isNonInteractive = false;
1128
1128
  static ɵfac = i0.ɵɵngDeclareFactory({
1129
1129
  minVersion: "12.0.0",
1130
- version: "22.2.0-next.2",
1130
+ version: "22.2.0-next.4",
1131
1131
  ngImport: i0,
1132
1132
  type: MatNavList,
1133
1133
  deps: null,
@@ -1135,7 +1135,7 @@ class MatNavList extends MatListBase {
1135
1135
  });
1136
1136
  static ɵcmp = i0.ɵɵngDeclareComponent({
1137
1137
  minVersion: "14.0.0",
1138
- version: "22.2.0-next.2",
1138
+ version: "22.2.0-next.4",
1139
1139
  type: MatNavList,
1140
1140
  isStandalone: true,
1141
1141
  selector: "mat-nav-list",
@@ -1160,7 +1160,7 @@ class MatNavList extends MatListBase {
1160
1160
  }
1161
1161
  i0.ɵɵngDeclareClassMetadata({
1162
1162
  minVersion: "12.0.0",
1163
- version: "22.2.0-next.2",
1163
+ version: "22.2.0-next.4",
1164
1164
  ngImport: i0,
1165
1165
  type: MatNavList,
1166
1166
  decorators: [{
@@ -1434,7 +1434,7 @@ class MatSelectionList extends MatListBase {
1434
1434
  }
1435
1435
  static ɵfac = i0.ɵɵngDeclareFactory({
1436
1436
  minVersion: "12.0.0",
1437
- version: "22.2.0-next.2",
1437
+ version: "22.2.0-next.4",
1438
1438
  ngImport: i0,
1439
1439
  type: MatSelectionList,
1440
1440
  deps: [],
@@ -1442,7 +1442,7 @@ class MatSelectionList extends MatListBase {
1442
1442
  });
1443
1443
  static ɵcmp = i0.ɵɵngDeclareComponent({
1444
1444
  minVersion: "14.0.0",
1445
- version: "22.2.0-next.2",
1445
+ version: "22.2.0-next.4",
1446
1446
  type: MatSelectionList,
1447
1447
  isStandalone: true,
1448
1448
  selector: "mat-selection-list",
@@ -1492,7 +1492,7 @@ class MatSelectionList extends MatListBase {
1492
1492
  }
1493
1493
  i0.ɵɵngDeclareClassMetadata({
1494
1494
  minVersion: "12.0.0",
1495
- version: "22.2.0-next.2",
1495
+ version: "22.2.0-next.4",
1496
1496
  ngImport: i0,
1497
1497
  type: MatSelectionList,
1498
1498
  decorators: [{
@@ -1550,7 +1550,7 @@ i0.ɵɵngDeclareClassMetadata({
1550
1550
  class MatListModule {
1551
1551
  static ɵfac = i0.ɵɵngDeclareFactory({
1552
1552
  minVersion: "12.0.0",
1553
- version: "22.2.0-next.2",
1553
+ version: "22.2.0-next.4",
1554
1554
  ngImport: i0,
1555
1555
  type: MatListModule,
1556
1556
  deps: [],
@@ -1558,7 +1558,7 @@ class MatListModule {
1558
1558
  });
1559
1559
  static ɵmod = i0.ɵɵngDeclareNgModule({
1560
1560
  minVersion: "14.0.0",
1561
- version: "22.2.0-next.2",
1561
+ version: "22.2.0-next.4",
1562
1562
  ngImport: i0,
1563
1563
  type: MatListModule,
1564
1564
  imports: [ObserversModule, MatRippleModule, MatPseudoCheckboxModule, MatList, MatActionList, MatNavList, MatSelectionList, MatListItem, MatListOption, MatListSubheaderCssMatStyler, MatListItemAvatar, MatListItemIcon, MatListItemLine, MatListItemTitle, MatListItemMeta],
@@ -1566,7 +1566,7 @@ class MatListModule {
1566
1566
  });
1567
1567
  static ɵinj = i0.ɵɵngDeclareInjector({
1568
1568
  minVersion: "12.0.0",
1569
- version: "22.2.0-next.2",
1569
+ version: "22.2.0-next.4",
1570
1570
  ngImport: i0,
1571
1571
  type: MatListModule,
1572
1572
  imports: [ObserversModule, MatRippleModule, MatPseudoCheckboxModule, BidiModule, MatDividerModule]
@@ -1574,7 +1574,7 @@ class MatListModule {
1574
1574
  }
1575
1575
  i0.ɵɵngDeclareClassMetadata({
1576
1576
  minVersion: "12.0.0",
1577
- version: "22.2.0-next.2",
1577
+ version: "22.2.0-next.4",
1578
1578
  ngImport: i0,
1579
1579
  type: MatListModule,
1580
1580
  decorators: [{
@@ -76,8 +76,7 @@ class MatMenuItemHarness extends ContentContainerComponentHarness {
76
76
  return new HarnessPredicate(this, options).addOption('text', options.text, (harness, text) => HarnessPredicate.stringMatches(harness.getText(), text)).addOption('hasSubmenu', options.hasSubmenu, async (harness, hasSubmenu) => (await harness.hasSubmenu()) === hasSubmenu);
77
77
  }
78
78
  async isDisabled() {
79
- const disabled = (await this.host()).getAttribute('disabled');
80
- return coerceBooleanProperty(await disabled);
79
+ return (await this.host()).hasClass('mat-mdc-menu-item-disabled');
81
80
  }
82
81
  async getText() {
83
82
  return (await this.host()).text();
@@ -1 +1 @@
1
- {"version":3,"file":"menu-testing.mjs","sources":["../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/material/menu/testing/menu-harness.ts","../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/material/menu/testing/context-menu-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 ComponentHarnessConstructor,\n ContentContainerComponentHarness,\n HarnessLoader,\n HarnessPredicate,\n TestElement,\n} from '@angular/cdk/testing';\nimport {coerceBooleanProperty} from '@angular/cdk/coercion';\nimport {MatIconHarness} from '@angular/material/icon/testing';\nimport {MenuHarnessFilters, MenuItemHarnessFilters} from './menu-harness-filters';\n\n/** Harness for interacting with a mat-menu in tests. */\nexport class MatMenuHarness extends ContentContainerComponentHarness<string> {\n private _documentRootLocator = this.documentRootLocatorFactory();\n\n /** The selector for the host element of a `MatMenu` instance. */\n static hostSelector = '.mat-mdc-menu-trigger';\n\n /**\n * Gets a `HarnessPredicate` that can be used to search for a menu with specific attributes.\n * @param options Options for filtering which menu instances are considered a match.\n * @return a `HarnessPredicate` configured with the given options.\n */\n static with<T extends MatMenuHarness>(\n this: ComponentHarnessConstructor<T>,\n options: MenuHarnessFilters = {},\n ): HarnessPredicate<T> {\n return new HarnessPredicate(this, options)\n .addOption('triggerText', options.triggerText, (harness, text) =>\n HarnessPredicate.stringMatches(harness.getTriggerText(), text),\n )\n .addOption('triggerIconName', options.triggerIconName, async (harness, triggerIconName) => {\n const result = await harness.locatorForOptional(\n MatIconHarness.with({name: triggerIconName}),\n )();\n return result !== null;\n });\n }\n\n /** Whether the menu is disabled. */\n async isDisabled(): Promise<boolean> {\n const disabled = (await this.host()).getAttribute('disabled');\n return coerceBooleanProperty(await disabled);\n }\n\n /** Whether the menu is open. */\n async isOpen(): Promise<boolean> {\n return !!(await this._getMenuPanel());\n }\n\n /** Gets the text of the menu's trigger element. */\n async getTriggerText(): Promise<string> {\n return (await this.host()).text();\n }\n\n /** Focuses the menu. */\n async focus(): Promise<void> {\n return (await this.host()).focus();\n }\n\n /** Blurs the menu. */\n async blur(): Promise<void> {\n return (await this.host()).blur();\n }\n\n /** Whether the menu is focused. */\n async isFocused(): Promise<boolean> {\n return (await this.host()).isFocused();\n }\n\n /** Opens the menu. */\n async open(): Promise<void> {\n if (!(await this.isOpen())) {\n return (await this.host()).click();\n }\n }\n\n /** Closes the menu. */\n async close(): Promise<void> {\n const panel = await this._getMenuPanel();\n if (panel) {\n return panel.click();\n }\n }\n\n /**\n * Gets a list of `MatMenuItemHarness` representing the items in the menu.\n * @param filters Optionally filters which menu items are included.\n */\n async getItems(\n filters?: Omit<MenuItemHarnessFilters, 'ancestor'>,\n ): Promise<MatMenuItemHarness[]> {\n const panelId = await this._getPanelId();\n if (panelId) {\n return this._documentRootLocator.locatorForAll(\n MatMenuItemHarness.with({\n ...(filters || {}),\n ancestor: `#${panelId}`,\n } as MenuItemHarnessFilters),\n )();\n }\n return [];\n }\n\n /**\n * Clicks an item in the menu, and optionally continues clicking items in subsequent sub-menus.\n * @param itemFilter A filter used to represent which item in the menu should be clicked. The\n * first matching menu item will be clicked.\n * @param subItemFilters A list of filters representing the items to click in any subsequent\n * sub-menus. The first item in the sub-menu matching the corresponding filter in\n * `subItemFilters` will be clicked.\n */\n async clickItem(\n itemFilter: Omit<MenuItemHarnessFilters, 'ancestor'>,\n ...subItemFilters: Omit<MenuItemHarnessFilters, 'ancestor'>[]\n ): Promise<void> {\n await this.open();\n return clickItemImplementation(await this.getItems(itemFilter), itemFilter, subItemFilters);\n }\n\n protected override async getRootHarnessLoader(): Promise<HarnessLoader> {\n const panelId = await this._getPanelId();\n return this.documentRootLocatorFactory().harnessLoaderFor(`#${panelId}`);\n }\n\n /** Gets the menu panel associated with this menu. */\n private async _getMenuPanel(): Promise<TestElement | null> {\n const panelId = await this._getPanelId();\n return panelId ? this._documentRootLocator.locatorForOptional(`#${panelId}`)() : null;\n }\n\n /** Gets the id of the menu panel associated with this menu. */\n private async _getPanelId(): Promise<string | null> {\n const panelId = await (await this.host()).getAttribute('aria-controls');\n return panelId || null;\n }\n}\n\nexport class MatMenuItemHarness extends ContentContainerComponentHarness<string> {\n /** The selector for the host element of a `MatMenuItem` instance. */\n static hostSelector = '.mat-mdc-menu-item';\n\n /**\n * Gets a `HarnessPredicate` that can be used to search for a menu item with specific attributes.\n * @param options Options for filtering which menu item instances are considered a match.\n * @return a `HarnessPredicate` configured with the given options.\n */\n static with<T extends MatMenuItemHarness>(\n this: ComponentHarnessConstructor<T>,\n options: MenuItemHarnessFilters = {},\n ): HarnessPredicate<T> {\n return new HarnessPredicate(this, options)\n .addOption('text', options.text, (harness, text) =>\n HarnessPredicate.stringMatches(harness.getText(), text),\n )\n .addOption(\n 'hasSubmenu',\n options.hasSubmenu,\n async (harness, hasSubmenu) => (await harness.hasSubmenu()) === hasSubmenu,\n );\n }\n\n /** Whether the menu is disabled. */\n async isDisabled(): Promise<boolean> {\n const disabled = (await this.host()).getAttribute('disabled');\n return coerceBooleanProperty(await disabled);\n }\n\n /** Gets the text of the menu item. */\n async getText(): Promise<string> {\n return (await this.host()).text();\n }\n\n /** Focuses the menu item. */\n async focus(): Promise<void> {\n return (await this.host()).focus();\n }\n\n /** Blurs the menu item. */\n async blur(): Promise<void> {\n return (await this.host()).blur();\n }\n\n /** Whether the menu item is focused. */\n async isFocused(): Promise<boolean> {\n return (await this.host()).isFocused();\n }\n\n /** Clicks the menu item. */\n async click(): Promise<void> {\n return (await this.host()).click();\n }\n\n /** Whether this item has a submenu. */\n async hasSubmenu(): Promise<boolean> {\n return (await this.host()).matchesSelector(MatMenuHarness.hostSelector);\n }\n\n /** Gets the submenu associated with this menu item, or null if none. */\n async getSubmenu(): Promise<MatMenuHarness | null> {\n if (await this.hasSubmenu()) {\n return new MatMenuHarness(this.locatorFactory);\n }\n return null;\n }\n}\n\nexport async function clickItemImplementation(\n items: MatMenuItemHarness[],\n itemFilter: Omit<MenuItemHarnessFilters, 'ancestor'>,\n subItemFilters: Omit<MenuItemHarnessFilters, 'ancestor'>[],\n): Promise<void> {\n if (!items.length) {\n throw Error(`Could not find item matching ${JSON.stringify(itemFilter)}`);\n }\n\n if (!subItemFilters.length) {\n return await items[0].click();\n }\n\n const menu = await items[0].getSubmenu();\n if (!menu) {\n throw Error(`Item matching ${JSON.stringify(itemFilter)} does not have a submenu`);\n }\n return menu.clickItem(...(subItemFilters as [Omit<MenuItemHarnessFilters, 'ancestor'>]));\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 {\n ComponentHarnessConstructor,\n ContentContainerComponentHarness,\n HarnessLoader,\n HarnessPredicate,\n TestElement,\n} from '@angular/cdk/testing';\nimport {ContextMenuHarnessFilters, MenuItemHarnessFilters} from './menu-harness-filters';\nimport {clickItemImplementation, MatMenuItemHarness} from './menu-harness';\n\n/** Harness for interacting with context menus in tests. */\nexport class MatContextMenuHarness extends ContentContainerComponentHarness<string> {\n private _documentRootLocator = this.documentRootLocatorFactory();\n\n /** The selector for the host element of a `MatContextMenu` instance. */\n static hostSelector = '.mat-context-menu-trigger';\n\n /**\n * Gets a `HarnessPredicate` that can be used to search for a context menu with specific\n * attributes.\n * @param options Options for filtering which menu instances are considered a match.\n * @return a `HarnessPredicate` configured with the given options.\n */\n static with<T extends MatContextMenuHarness>(\n this: ComponentHarnessConstructor<T>,\n options: ContextMenuHarnessFilters = {},\n ): HarnessPredicate<T> {\n return new HarnessPredicate(this, options);\n }\n\n /** Whether the menu is open. */\n async isOpen(): Promise<boolean> {\n return !!(await this._getMenuPanel());\n }\n\n /**\n * Opens the menu.\n * @param relativeX X coordinate, relative to the element, to dispatch the opening click at.\n * @param relativeY Y coordinate, relative to the element, to dispatch the opening click at.\n */\n async open(relativeX = 0, relativeY = 0): Promise<void> {\n if (!(await this.isOpen())) {\n return (await this.host()).rightClick(relativeX, relativeY);\n }\n }\n\n /** Closes the menu. */\n async close(): Promise<void> {\n const panel = await this._getMenuPanel();\n if (panel) {\n return panel.click();\n }\n }\n\n /** Gets whether the context menu trigger is disabled. */\n async isDisabled(): Promise<boolean> {\n const host = await this.host();\n return host.hasClass('mat-context-menu-trigger-disabled');\n }\n\n /**\n * Gets a list of `MatMenuItemHarness` representing the items in the menu.\n * @param filters Optionally filters which menu items are included.\n */\n async getItems(\n filters?: Omit<MenuItemHarnessFilters, 'ancestor'>,\n ): Promise<MatMenuItemHarness[]> {\n const panelId = await this._getPanelId();\n if (panelId) {\n return this._documentRootLocator.locatorForAll(\n MatMenuItemHarness.with({\n ...(filters || {}),\n ancestor: `#${panelId}`,\n } as MenuItemHarnessFilters),\n )();\n }\n return [];\n }\n\n /**\n * Clicks an item in the menu, and optionally continues clicking items in subsequent sub-menus.\n * @param itemFilter A filter used to represent which item in the menu should be clicked. The\n * first matching menu item will be clicked.\n * @param subItemFilters A list of filters representing the items to click in any subsequent\n * sub-menus. The first item in the sub-menu matching the corresponding filter in\n * `subItemFilters` will be clicked.\n */\n async clickItem(\n itemFilter: Omit<MenuItemHarnessFilters, 'ancestor'>,\n ...subItemFilters: Omit<MenuItemHarnessFilters, 'ancestor'>[]\n ): Promise<void> {\n await this.open();\n return clickItemImplementation(await this.getItems(itemFilter), itemFilter, subItemFilters);\n }\n\n protected override async getRootHarnessLoader(): Promise<HarnessLoader> {\n const panelId = await this._getPanelId();\n return this.documentRootLocatorFactory().harnessLoaderFor(`#${panelId}`);\n }\n\n /** Gets the menu panel associated with this menu. */\n private async _getMenuPanel(): Promise<TestElement | null> {\n const panelId = await this._getPanelId();\n return panelId ? this._documentRootLocator.locatorForOptional(`#${panelId}`)() : null;\n }\n\n /** Gets the id of the menu panel associated with this menu. */\n private async _getPanelId(): Promise<string | null> {\n const panelId = await (await this.host()).getAttribute('aria-controls');\n return panelId || null;\n }\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"menu-testing.mjs","sources":["../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/material/menu/testing/menu-harness.ts","../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/material/menu/testing/context-menu-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 ComponentHarnessConstructor,\n ContentContainerComponentHarness,\n HarnessLoader,\n HarnessPredicate,\n TestElement,\n} from '@angular/cdk/testing';\nimport {coerceBooleanProperty} from '@angular/cdk/coercion';\nimport {MatIconHarness} from '@angular/material/icon/testing';\nimport {MenuHarnessFilters, MenuItemHarnessFilters} from './menu-harness-filters';\n\n/** Harness for interacting with a mat-menu in tests. */\nexport class MatMenuHarness extends ContentContainerComponentHarness<string> {\n private _documentRootLocator = this.documentRootLocatorFactory();\n\n /** The selector for the host element of a `MatMenu` instance. */\n static hostSelector = '.mat-mdc-menu-trigger';\n\n /**\n * Gets a `HarnessPredicate` that can be used to search for a menu with specific attributes.\n * @param options Options for filtering which menu instances are considered a match.\n * @return a `HarnessPredicate` configured with the given options.\n */\n static with<T extends MatMenuHarness>(\n this: ComponentHarnessConstructor<T>,\n options: MenuHarnessFilters = {},\n ): HarnessPredicate<T> {\n return new HarnessPredicate(this, options)\n .addOption('triggerText', options.triggerText, (harness, text) =>\n HarnessPredicate.stringMatches(harness.getTriggerText(), text),\n )\n .addOption('triggerIconName', options.triggerIconName, async (harness, triggerIconName) => {\n const result = await harness.locatorForOptional(\n MatIconHarness.with({name: triggerIconName}),\n )();\n return result !== null;\n });\n }\n\n /** Whether the menu is disabled. */\n async isDisabled(): Promise<boolean> {\n const disabled = (await this.host()).getAttribute('disabled');\n return coerceBooleanProperty(await disabled);\n }\n\n /** Whether the menu is open. */\n async isOpen(): Promise<boolean> {\n return !!(await this._getMenuPanel());\n }\n\n /** Gets the text of the menu's trigger element. */\n async getTriggerText(): Promise<string> {\n return (await this.host()).text();\n }\n\n /** Focuses the menu. */\n async focus(): Promise<void> {\n return (await this.host()).focus();\n }\n\n /** Blurs the menu. */\n async blur(): Promise<void> {\n return (await this.host()).blur();\n }\n\n /** Whether the menu is focused. */\n async isFocused(): Promise<boolean> {\n return (await this.host()).isFocused();\n }\n\n /** Opens the menu. */\n async open(): Promise<void> {\n if (!(await this.isOpen())) {\n return (await this.host()).click();\n }\n }\n\n /** Closes the menu. */\n async close(): Promise<void> {\n const panel = await this._getMenuPanel();\n if (panel) {\n return panel.click();\n }\n }\n\n /**\n * Gets a list of `MatMenuItemHarness` representing the items in the menu.\n * @param filters Optionally filters which menu items are included.\n */\n async getItems(\n filters?: Omit<MenuItemHarnessFilters, 'ancestor'>,\n ): Promise<MatMenuItemHarness[]> {\n const panelId = await this._getPanelId();\n if (panelId) {\n return this._documentRootLocator.locatorForAll(\n MatMenuItemHarness.with({\n ...(filters || {}),\n ancestor: `#${panelId}`,\n } as MenuItemHarnessFilters),\n )();\n }\n return [];\n }\n\n /**\n * Clicks an item in the menu, and optionally continues clicking items in subsequent sub-menus.\n * @param itemFilter A filter used to represent which item in the menu should be clicked. The\n * first matching menu item will be clicked.\n * @param subItemFilters A list of filters representing the items to click in any subsequent\n * sub-menus. The first item in the sub-menu matching the corresponding filter in\n * `subItemFilters` will be clicked.\n */\n async clickItem(\n itemFilter: Omit<MenuItemHarnessFilters, 'ancestor'>,\n ...subItemFilters: Omit<MenuItemHarnessFilters, 'ancestor'>[]\n ): Promise<void> {\n await this.open();\n return clickItemImplementation(await this.getItems(itemFilter), itemFilter, subItemFilters);\n }\n\n protected override async getRootHarnessLoader(): Promise<HarnessLoader> {\n const panelId = await this._getPanelId();\n return this.documentRootLocatorFactory().harnessLoaderFor(`#${panelId}`);\n }\n\n /** Gets the menu panel associated with this menu. */\n private async _getMenuPanel(): Promise<TestElement | null> {\n const panelId = await this._getPanelId();\n return panelId ? this._documentRootLocator.locatorForOptional(`#${panelId}`)() : null;\n }\n\n /** Gets the id of the menu panel associated with this menu. */\n private async _getPanelId(): Promise<string | null> {\n const panelId = await (await this.host()).getAttribute('aria-controls');\n return panelId || null;\n }\n}\n\nexport class MatMenuItemHarness extends ContentContainerComponentHarness<string> {\n /** The selector for the host element of a `MatMenuItem` instance. */\n static hostSelector = '.mat-mdc-menu-item';\n\n /**\n * Gets a `HarnessPredicate` that can be used to search for a menu item with specific attributes.\n * @param options Options for filtering which menu item instances are considered a match.\n * @return a `HarnessPredicate` configured with the given options.\n */\n static with<T extends MatMenuItemHarness>(\n this: ComponentHarnessConstructor<T>,\n options: MenuItemHarnessFilters = {},\n ): HarnessPredicate<T> {\n return new HarnessPredicate(this, options)\n .addOption('text', options.text, (harness, text) =>\n HarnessPredicate.stringMatches(harness.getText(), text),\n )\n .addOption(\n 'hasSubmenu',\n options.hasSubmenu,\n async (harness, hasSubmenu) => (await harness.hasSubmenu()) === hasSubmenu,\n );\n }\n\n /** Whether the menu is disabled. */\n async isDisabled(): Promise<boolean> {\n return (await this.host()).hasClass('mat-mdc-menu-item-disabled');\n }\n\n /** Gets the text of the menu item. */\n async getText(): Promise<string> {\n return (await this.host()).text();\n }\n\n /** Focuses the menu item. */\n async focus(): Promise<void> {\n return (await this.host()).focus();\n }\n\n /** Blurs the menu item. */\n async blur(): Promise<void> {\n return (await this.host()).blur();\n }\n\n /** Whether the menu item is focused. */\n async isFocused(): Promise<boolean> {\n return (await this.host()).isFocused();\n }\n\n /** Clicks the menu item. */\n async click(): Promise<void> {\n return (await this.host()).click();\n }\n\n /** Whether this item has a submenu. */\n async hasSubmenu(): Promise<boolean> {\n return (await this.host()).matchesSelector(MatMenuHarness.hostSelector);\n }\n\n /** Gets the submenu associated with this menu item, or null if none. */\n async getSubmenu(): Promise<MatMenuHarness | null> {\n if (await this.hasSubmenu()) {\n return new MatMenuHarness(this.locatorFactory);\n }\n return null;\n }\n}\n\nexport async function clickItemImplementation(\n items: MatMenuItemHarness[],\n itemFilter: Omit<MenuItemHarnessFilters, 'ancestor'>,\n subItemFilters: Omit<MenuItemHarnessFilters, 'ancestor'>[],\n): Promise<void> {\n if (!items.length) {\n throw Error(`Could not find item matching ${JSON.stringify(itemFilter)}`);\n }\n\n if (!subItemFilters.length) {\n return await items[0].click();\n }\n\n const menu = await items[0].getSubmenu();\n if (!menu) {\n throw Error(`Item matching ${JSON.stringify(itemFilter)} does not have a submenu`);\n }\n return menu.clickItem(...(subItemFilters as [Omit<MenuItemHarnessFilters, 'ancestor'>]));\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 {\n ComponentHarnessConstructor,\n ContentContainerComponentHarness,\n HarnessLoader,\n HarnessPredicate,\n TestElement,\n} from '@angular/cdk/testing';\nimport {ContextMenuHarnessFilters, MenuItemHarnessFilters} from './menu-harness-filters';\nimport {clickItemImplementation, MatMenuItemHarness} from './menu-harness';\n\n/** Harness for interacting with context menus in tests. */\nexport class MatContextMenuHarness extends ContentContainerComponentHarness<string> {\n private _documentRootLocator = this.documentRootLocatorFactory();\n\n /** The selector for the host element of a `MatContextMenu` instance. */\n static hostSelector = '.mat-context-menu-trigger';\n\n /**\n * Gets a `HarnessPredicate` that can be used to search for a context menu with specific\n * attributes.\n * @param options Options for filtering which menu instances are considered a match.\n * @return a `HarnessPredicate` configured with the given options.\n */\n static with<T extends MatContextMenuHarness>(\n this: ComponentHarnessConstructor<T>,\n options: ContextMenuHarnessFilters = {},\n ): HarnessPredicate<T> {\n return new HarnessPredicate(this, options);\n }\n\n /** Whether the menu is open. */\n async isOpen(): Promise<boolean> {\n return !!(await this._getMenuPanel());\n }\n\n /**\n * Opens the menu.\n * @param relativeX X coordinate, relative to the element, to dispatch the opening click at.\n * @param relativeY Y coordinate, relative to the element, to dispatch the opening click at.\n */\n async open(relativeX = 0, relativeY = 0): Promise<void> {\n if (!(await this.isOpen())) {\n return (await this.host()).rightClick(relativeX, relativeY);\n }\n }\n\n /** Closes the menu. */\n async close(): Promise<void> {\n const panel = await this._getMenuPanel();\n if (panel) {\n return panel.click();\n }\n }\n\n /** Gets whether the context menu trigger is disabled. */\n async isDisabled(): Promise<boolean> {\n const host = await this.host();\n return host.hasClass('mat-context-menu-trigger-disabled');\n }\n\n /**\n * Gets a list of `MatMenuItemHarness` representing the items in the menu.\n * @param filters Optionally filters which menu items are included.\n */\n async getItems(\n filters?: Omit<MenuItemHarnessFilters, 'ancestor'>,\n ): Promise<MatMenuItemHarness[]> {\n const panelId = await this._getPanelId();\n if (panelId) {\n return this._documentRootLocator.locatorForAll(\n MatMenuItemHarness.with({\n ...(filters || {}),\n ancestor: `#${panelId}`,\n } as MenuItemHarnessFilters),\n )();\n }\n return [];\n }\n\n /**\n * Clicks an item in the menu, and optionally continues clicking items in subsequent sub-menus.\n * @param itemFilter A filter used to represent which item in the menu should be clicked. The\n * first matching menu item will be clicked.\n * @param subItemFilters A list of filters representing the items to click in any subsequent\n * sub-menus. The first item in the sub-menu matching the corresponding filter in\n * `subItemFilters` will be clicked.\n */\n async clickItem(\n itemFilter: Omit<MenuItemHarnessFilters, 'ancestor'>,\n ...subItemFilters: Omit<MenuItemHarnessFilters, 'ancestor'>[]\n ): Promise<void> {\n await this.open();\n return clickItemImplementation(await this.getItems(itemFilter), itemFilter, subItemFilters);\n }\n\n protected override async getRootHarnessLoader(): Promise<HarnessLoader> {\n const panelId = await this._getPanelId();\n return this.documentRootLocatorFactory().harnessLoaderFor(`#${panelId}`);\n }\n\n /** Gets the menu panel associated with this menu. */\n private async _getMenuPanel(): Promise<TestElement | null> {\n const panelId = await this._getPanelId();\n return panelId ? this._documentRootLocator.locatorForOptional(`#${panelId}`)() : null;\n }\n\n /** Gets the id of the menu panel associated with this menu. */\n private async _getPanelId(): Promise<string | null> {\n const panelId = await (await this.host()).getAttribute('aria-controls');\n return panelId || null;\n }\n}\n"],"names":[],"mappings":"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"}