@angular/material 20.0.0-next.0 → 20.0.0-next.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 (305) hide show
  1. package/autocomplete/index.d.ts +92 -126
  2. package/autocomplete/testing/index.d.ts +6 -11
  3. package/badge/index.d.ts +8 -112
  4. package/badge/testing/index.d.ts +7 -8
  5. package/badge.d-49a8a74b.d.ts +98 -0
  6. package/bottom-sheet/index.d.ts +88 -103
  7. package/bottom-sheet/testing/index.d.ts +4 -6
  8. package/button/index.d.ts +10 -245
  9. package/button/testing/index.d.ts +6 -10
  10. package/button-toggle/index.d.ts +12 -285
  11. package/button-toggle/testing/index.d.ts +38 -37
  12. package/button-toggle.d-edc8acff.d.ts +257 -0
  13. package/card/index.d.ts +80 -117
  14. package/card/testing/index.d.ts +11 -15
  15. package/checkbox/index.d.ts +43 -104
  16. package/checkbox/testing/index.d.ts +6 -10
  17. package/chips/index.d.ts +599 -693
  18. package/chips/testing/index.d.ts +78 -93
  19. package/common-module.d-0e6515ae.d.ts +43 -0
  20. package/core/index.d.ts +50 -979
  21. package/core/testing/index.d.ts +3 -65
  22. package/date-adapter.d-c6835d41.d.ts +267 -0
  23. package/date-range-input-harness.d-549a9f7e.d.ts +278 -0
  24. package/datepicker/index.d.ts +1332 -1482
  25. package/datepicker/testing/index.d.ts +5 -287
  26. package/dialog/index.d.ts +59 -453
  27. package/dialog/testing/index.d.ts +22 -26
  28. package/dialog.d-57867441.d.ts +335 -0
  29. package/divider/index.d.ts +6 -11
  30. package/divider/testing/index.d.ts +2 -16
  31. package/divider-harness.d-d34fede4.d.ts +14 -0
  32. package/error-options.d-448d9046.d.ts +17 -0
  33. package/expansion/index.d.ts +139 -190
  34. package/expansion/testing/index.d.ts +25 -31
  35. package/fesm2022/autocomplete/testing.mjs +2 -1
  36. package/fesm2022/autocomplete/testing.mjs.map +1 -1
  37. package/fesm2022/autocomplete.mjs +53 -32
  38. package/fesm2022/autocomplete.mjs.map +1 -1
  39. package/fesm2022/badge/testing.mjs.map +1 -1
  40. package/fesm2022/badge.mjs +14 -17
  41. package/fesm2022/badge.mjs.map +1 -1
  42. package/fesm2022/bottom-sheet/testing.mjs.map +1 -1
  43. package/fesm2022/bottom-sheet.mjs +13 -15
  44. package/fesm2022/bottom-sheet.mjs.map +1 -1
  45. package/fesm2022/button/testing.mjs.map +1 -1
  46. package/fesm2022/button-toggle/testing.mjs.map +1 -1
  47. package/fesm2022/button-toggle.mjs +22 -15
  48. package/fesm2022/button-toggle.mjs.map +1 -1
  49. package/fesm2022/button.mjs +14 -395
  50. package/fesm2022/button.mjs.map +1 -1
  51. package/fesm2022/card/testing.mjs.map +1 -1
  52. package/fesm2022/card.mjs +49 -51
  53. package/fesm2022/card.mjs.map +1 -1
  54. package/fesm2022/checkbox/testing.mjs.map +1 -1
  55. package/fesm2022/checkbox.mjs +32 -73
  56. package/fesm2022/checkbox.mjs.map +1 -1
  57. package/fesm2022/chips/testing.mjs.map +1 -1
  58. package/fesm2022/chips.mjs +51 -46
  59. package/fesm2022/chips.mjs.map +1 -1
  60. package/fesm2022/common-module-2d64df09.mjs +42 -0
  61. package/fesm2022/common-module-2d64df09.mjs.map +1 -0
  62. package/fesm2022/core/testing.mjs +3 -76
  63. package/fesm2022/core/testing.mjs.map +1 -1
  64. package/fesm2022/core.mjs +38 -1598
  65. package/fesm2022/core.mjs.map +1 -1
  66. package/fesm2022/date-formats-b618acb8.mjs +190 -0
  67. package/fesm2022/date-formats-b618acb8.mjs.map +1 -0
  68. package/fesm2022/date-range-input-harness-ee47cdb0.mjs +467 -0
  69. package/fesm2022/date-range-input-harness-ee47cdb0.mjs.map +1 -0
  70. package/fesm2022/datepicker/testing.mjs +5 -465
  71. package/fesm2022/datepicker/testing.mjs.map +1 -1
  72. package/fesm2022/datepicker.mjs +159 -128
  73. package/fesm2022/datepicker.mjs.map +1 -1
  74. package/fesm2022/dialog/testing.mjs +12 -1
  75. package/fesm2022/dialog/testing.mjs.map +1 -1
  76. package/fesm2022/dialog.mjs +14 -895
  77. package/fesm2022/dialog.mjs.map +1 -1
  78. package/fesm2022/divider/testing.mjs +2 -17
  79. package/fesm2022/divider/testing.mjs.map +1 -1
  80. package/fesm2022/divider-harness-3394f29a.mjs +18 -0
  81. package/fesm2022/divider-harness-3394f29a.mjs.map +1 -0
  82. package/fesm2022/divider.mjs +10 -12
  83. package/fesm2022/divider.mjs.map +1 -1
  84. package/fesm2022/error-options-4a00765e.mjs +29 -0
  85. package/fesm2022/error-options-4a00765e.mjs.map +1 -0
  86. package/fesm2022/error-state-8f4ce1af.mjs +37 -0
  87. package/fesm2022/error-state-8f4ce1af.mjs.map +1 -0
  88. package/fesm2022/expansion/testing.mjs.map +1 -1
  89. package/fesm2022/expansion.mjs +30 -32
  90. package/fesm2022/expansion.mjs.map +1 -1
  91. package/fesm2022/form-field/testing/control.mjs +2 -10
  92. package/fesm2022/form-field/testing/control.mjs.map +1 -1
  93. package/fesm2022/form-field/testing.mjs +7 -6
  94. package/fesm2022/form-field/testing.mjs.map +1 -1
  95. package/fesm2022/form-field-6d755764.mjs +1076 -0
  96. package/fesm2022/form-field-6d755764.mjs.map +1 -0
  97. package/fesm2022/form-field-control-harness-af6fd278.mjs +11 -0
  98. package/fesm2022/form-field-control-harness-af6fd278.mjs.map +1 -0
  99. package/fesm2022/form-field.mjs +14 -1110
  100. package/fesm2022/form-field.mjs.map +1 -1
  101. package/fesm2022/grid-list/testing.mjs +1 -1
  102. package/fesm2022/grid-list/testing.mjs.map +1 -1
  103. package/fesm2022/grid-list.mjs +30 -173
  104. package/fesm2022/grid-list.mjs.map +1 -1
  105. package/fesm2022/icon/testing.mjs +12 -12
  106. package/fesm2022/icon/testing.mjs.map +1 -1
  107. package/fesm2022/icon-button-47f1b5d9.mjs +248 -0
  108. package/fesm2022/icon-button-47f1b5d9.mjs.map +1 -0
  109. package/fesm2022/icon-module-3f77a24d.mjs +395 -0
  110. package/fesm2022/icon-module-3f77a24d.mjs.map +1 -0
  111. package/fesm2022/icon-registry-13a3b98e.mjs +639 -0
  112. package/fesm2022/icon-registry-13a3b98e.mjs.map +1 -0
  113. package/fesm2022/icon.mjs +11 -1016
  114. package/fesm2022/icon.mjs.map +1 -1
  115. package/fesm2022/index-1763d3a6.mjs +22 -0
  116. package/fesm2022/index-1763d3a6.mjs.map +1 -0
  117. package/fesm2022/index-4bc1d6d3.mjs +20 -0
  118. package/fesm2022/index-4bc1d6d3.mjs.map +1 -0
  119. package/fesm2022/input/testing.mjs +5 -113
  120. package/fesm2022/input/testing.mjs.map +1 -1
  121. package/fesm2022/input-harness-ed59decc.mjs +115 -0
  122. package/fesm2022/input-harness-ed59decc.mjs.map +1 -0
  123. package/fesm2022/input-value-accessor-8a79a24e.mjs +12 -0
  124. package/fesm2022/input-value-accessor-8a79a24e.mjs.map +1 -0
  125. package/fesm2022/input.mjs +21 -23
  126. package/fesm2022/input.mjs.map +1 -1
  127. package/fesm2022/internal-form-field-434c4039.mjs +27 -0
  128. package/fesm2022/internal-form-field-434c4039.mjs.map +1 -0
  129. package/fesm2022/line-d6afe347.mjs +59 -0
  130. package/fesm2022/line-d6afe347.mjs.map +1 -0
  131. package/fesm2022/list/testing.mjs +2 -2
  132. package/fesm2022/list/testing.mjs.map +1 -1
  133. package/fesm2022/list.mjs +59 -56
  134. package/fesm2022/list.mjs.map +1 -1
  135. package/fesm2022/menu/testing.mjs.map +1 -1
  136. package/fesm2022/menu.mjs +37 -25
  137. package/fesm2022/menu.mjs.map +1 -1
  138. package/fesm2022/module-3bf2775f.mjs +1293 -0
  139. package/fesm2022/module-3bf2775f.mjs.map +1 -0
  140. package/fesm2022/module-47e3be58.mjs +970 -0
  141. package/fesm2022/module-47e3be58.mjs.map +1 -0
  142. package/fesm2022/module-a5f9ab72.mjs +875 -0
  143. package/fesm2022/module-a5f9ab72.mjs.map +1 -0
  144. package/fesm2022/module-d757bba0.mjs +38 -0
  145. package/fesm2022/module-d757bba0.mjs.map +1 -0
  146. package/fesm2022/module-df9f7af3.mjs +152 -0
  147. package/fesm2022/module-df9f7af3.mjs.map +1 -0
  148. package/fesm2022/optgroup-harness-5e66b138.mjs +36 -0
  149. package/fesm2022/optgroup-harness-5e66b138.mjs.map +1 -0
  150. package/fesm2022/option-07c3c660.mjs +348 -0
  151. package/fesm2022/option-07c3c660.mjs.map +1 -0
  152. package/fesm2022/option-harness-3b7c1106.mjs +46 -0
  153. package/fesm2022/option-harness-3b7c1106.mjs.map +1 -0
  154. package/fesm2022/paginator/testing.mjs +4 -1
  155. package/fesm2022/paginator/testing.mjs.map +1 -1
  156. package/fesm2022/paginator.mjs +51 -21
  157. package/fesm2022/paginator.mjs.map +1 -1
  158. package/fesm2022/progress-bar/testing.mjs +0 -4
  159. package/fesm2022/progress-bar/testing.mjs.map +1 -1
  160. package/fesm2022/progress-bar.mjs +15 -13
  161. package/fesm2022/progress-bar.mjs.map +1 -1
  162. package/fesm2022/progress-spinner/testing.mjs +0 -4
  163. package/fesm2022/progress-spinner/testing.mjs.map +1 -1
  164. package/fesm2022/progress-spinner.mjs +15 -13
  165. package/fesm2022/progress-spinner.mjs.map +1 -1
  166. package/fesm2022/pseudo-checkbox-af5a4ea4.mjs +52 -0
  167. package/fesm2022/pseudo-checkbox-af5a4ea4.mjs.map +1 -0
  168. package/fesm2022/pseudo-checkbox-module-216fae38.mjs +20 -0
  169. package/fesm2022/pseudo-checkbox-module-216fae38.mjs.map +1 -0
  170. package/fesm2022/public-api-c5ab57f5.mjs +147 -0
  171. package/fesm2022/public-api-c5ab57f5.mjs.map +1 -0
  172. package/fesm2022/radio/testing.mjs.map +1 -1
  173. package/fesm2022/radio.mjs +23 -15
  174. package/fesm2022/radio.mjs.map +1 -1
  175. package/fesm2022/ripple-9939d1f5.mjs +639 -0
  176. package/fesm2022/ripple-9939d1f5.mjs.map +1 -0
  177. package/fesm2022/ripple-loader-f2078c66.mjs +165 -0
  178. package/fesm2022/ripple-loader-f2078c66.mjs.map +1 -0
  179. package/fesm2022/select/testing.mjs +5 -121
  180. package/fesm2022/select/testing.mjs.map +1 -1
  181. package/fesm2022/select-harness-8c55824d.mjs +123 -0
  182. package/fesm2022/select-harness-8c55824d.mjs.map +1 -0
  183. package/fesm2022/select.mjs +30 -1311
  184. package/fesm2022/select.mjs.map +1 -1
  185. package/fesm2022/sidenav/testing.mjs +1 -1
  186. package/fesm2022/sidenav/testing.mjs.map +1 -1
  187. package/fesm2022/sidenav.mjs +31 -31
  188. package/fesm2022/sidenav.mjs.map +1 -1
  189. package/fesm2022/slide-toggle/testing.mjs.map +1 -1
  190. package/fesm2022/slide-toggle.mjs +27 -75
  191. package/fesm2022/slide-toggle.mjs.map +1 -1
  192. package/fesm2022/slider/testing.mjs.map +1 -1
  193. package/fesm2022/slider.mjs +22 -21
  194. package/fesm2022/slider.mjs.map +1 -1
  195. package/fesm2022/snack-bar/testing.mjs.map +1 -1
  196. package/fesm2022/snack-bar.mjs +37 -29
  197. package/fesm2022/snack-bar.mjs.map +1 -1
  198. package/fesm2022/sort/testing.mjs.map +1 -1
  199. package/fesm2022/sort.mjs +26 -20
  200. package/fesm2022/sort.mjs.map +1 -1
  201. package/fesm2022/stepper/testing.mjs.map +1 -1
  202. package/fesm2022/stepper.mjs +52 -39
  203. package/fesm2022/stepper.mjs.map +1 -1
  204. package/fesm2022/structural-styles-d5ada3b3.mjs +18 -0
  205. package/fesm2022/structural-styles-d5ada3b3.mjs.map +1 -0
  206. package/fesm2022/table/testing.mjs.map +1 -1
  207. package/fesm2022/table.mjs +58 -60
  208. package/fesm2022/table.mjs.map +1 -1
  209. package/fesm2022/tabs/testing.mjs.map +1 -1
  210. package/fesm2022/tabs.mjs +54 -58
  211. package/fesm2022/tabs.mjs.map +1 -1
  212. package/fesm2022/timepicker/testing.mjs +1 -1
  213. package/fesm2022/timepicker/testing.mjs.map +1 -1
  214. package/fesm2022/timepicker.mjs +31 -24
  215. package/fesm2022/timepicker.mjs.map +1 -1
  216. package/fesm2022/toolbar/testing.mjs.map +1 -1
  217. package/fesm2022/toolbar.mjs +13 -15
  218. package/fesm2022/toolbar.mjs.map +1 -1
  219. package/fesm2022/tooltip/testing.mjs.map +1 -1
  220. package/fesm2022/tooltip.mjs +15 -960
  221. package/fesm2022/tooltip.mjs.map +1 -1
  222. package/fesm2022/tree/testing.mjs.map +1 -1
  223. package/fesm2022/tree.mjs +28 -30
  224. package/fesm2022/tree.mjs.map +1 -1
  225. package/form-field/index.d.ts +16 -508
  226. package/form-field/testing/control/index.d.ts +2 -10
  227. package/form-field/testing/index.d.ts +19 -24
  228. package/form-field-control-harness.d-2d91f25a.d.ts +10 -0
  229. package/form-field-control.d-eb86711c.d.ts +62 -0
  230. package/form-field.d-2edbc094.d.ts +367 -0
  231. package/grid-list/index.d.ts +128 -152
  232. package/grid-list/testing/index.d.ts +39 -44
  233. package/icon/index.d.ts +9 -470
  234. package/icon/testing/index.d.ts +41 -44
  235. package/icon-module.d-aa3bbba0.d.ts +167 -0
  236. package/icon-registry.d-1dffe9de.d.ts +286 -0
  237. package/index.d-0536b706.d.ts +11 -0
  238. package/index.d-37e31cd3.d.ts +13 -0
  239. package/index.d.ts +2 -3
  240. package/input/index.d.ts +33 -62
  241. package/input/testing/index.d.ts +13 -71
  242. package/input-harness.d-4eecd1d3.d.ts +60 -0
  243. package/line.d-570a2537.d.ts +25 -0
  244. package/list/index.d.ts +155 -244
  245. package/list/testing/index.d.ts +158 -180
  246. package/list-option-types.d-8739f903.d.ts +15 -0
  247. package/menu/index.d.ts +183 -231
  248. package/menu/testing/index.d.ts +17 -23
  249. package/module.d-18a67f56.d.ts +206 -0
  250. package/module.d-74a721b9.d.ts +326 -0
  251. package/module.d-ba05faa6.d.ts +448 -0
  252. package/module.d-c17c834e.d.ts +18 -0
  253. package/optgroup-harness.d-7f741f69.d.ts +31 -0
  254. package/option-harness.d-3d33fc9a.d.ts +34 -0
  255. package/option-parent.d-559ad5c5.d.ts +19 -0
  256. package/option.d-6f493d78.d.ts +146 -0
  257. package/package.json +2 -2
  258. package/paginator/index.d.ts +31 -216
  259. package/paginator/testing/index.d.ts +14 -15
  260. package/paginator.d-40b1766e.d.ts +199 -0
  261. package/palette.d-ec4a617c.d.ts +4 -0
  262. package/progress-bar/index.d.ts +40 -59
  263. package/progress-bar/testing/index.d.ts +7 -10
  264. package/progress-spinner/index.d.ts +8 -110
  265. package/progress-spinner/testing/index.d.ts +10 -11
  266. package/progress-spinner.d-1fc040c5.d.ts +96 -0
  267. package/pseudo-checkbox-module.d-3abc0461.d.ts +44 -0
  268. package/radio/index.d.ts +151 -170
  269. package/radio/testing/index.d.ts +61 -67
  270. package/ripple-loader.d-8aac2988.d.ts +48 -0
  271. package/ripple.d-2fb57d04.d.ts +255 -0
  272. package/schematics/ng-add/index.js +1 -1
  273. package/schematics/ng-add/index.mjs +1 -1
  274. package/schematics/ng-generate/theme-color/index_bundled.js +2 -2
  275. package/schematics/ng-generate/theme-color/schema.json +10 -0
  276. package/schematics/ng-update/index_bundled.js +31 -31
  277. package/select/index.d.ts +25 -505
  278. package/select/testing/index.d.ts +5 -67
  279. package/select-harness.d-7441a7ac.d.ts +63 -0
  280. package/sidenav/index.d.ts +49 -92
  281. package/sidenav/testing/index.d.ts +58 -63
  282. package/slide-toggle/index.d.ts +39 -110
  283. package/slide-toggle/testing/index.d.ts +17 -21
  284. package/slider/index.d.ts +281 -328
  285. package/slider/testing/index.d.ts +42 -47
  286. package/snack-bar/index.d.ts +152 -185
  287. package/snack-bar/testing/index.d.ts +7 -9
  288. package/sort/index.d.ts +61 -169
  289. package/sort/testing/index.d.ts +22 -25
  290. package/sort-direction.d-f4ce4649.d.ts +3 -0
  291. package/sort.d-c2b79a45.d.ts +87 -0
  292. package/stepper/index.d.ts +115 -167
  293. package/stepper/testing/index.d.ts +43 -52
  294. package/table/index.d.ts +97 -156
  295. package/table/testing/index.d.ts +64 -78
  296. package/tabs/index.d.ts +309 -383
  297. package/tabs/testing/index.d.ts +67 -76
  298. package/timepicker/index.d.ts +127 -160
  299. package/timepicker/testing/index.d.ts +20 -26
  300. package/toolbar/index.d.ts +15 -26
  301. package/toolbar/testing/index.d.ts +13 -16
  302. package/tooltip/index.d.ts +11 -355
  303. package/tooltip/testing/index.d.ts +7 -10
  304. package/tree/index.d.ts +117 -163
  305. package/tree/testing/index.d.ts +52 -58
@@ -1,65 +1,3 @@
1
- import { BaseHarnessFilters } from '@angular/cdk/testing';
2
- import { ComponentHarness } from '@angular/cdk/testing';
3
- import { ComponentHarnessConstructor } from '@angular/cdk/testing';
4
- import { ContentContainerComponentHarness } from '@angular/cdk/testing';
5
- import { HarnessPredicate } from '@angular/cdk/testing';
6
-
7
- /** Harness for interacting with a `mat-optgroup` in tests. */
8
- export declare class MatOptgroupHarness extends ComponentHarness {
9
- /** Selector used to locate option group instances. */
10
- static hostSelector: string;
11
- private _label;
12
- /**
13
- * Gets a `HarnessPredicate` that can be used to search for a option group with specific
14
- * attributes.
15
- * @param options Options for filtering which option instances are considered a match.
16
- * @return a `HarnessPredicate` configured with the given options.
17
- */
18
- static with<T extends MatOptgroupHarness>(this: ComponentHarnessConstructor<T>, options?: OptgroupHarnessFilters): HarnessPredicate<T>;
19
- /** Gets the option group's label text. */
20
- getLabelText(): Promise<string>;
21
- /** Gets whether the option group is disabled. */
22
- isDisabled(): Promise<boolean>;
23
- /**
24
- * Gets the options that are inside the group.
25
- * @param filter Optionally filters which options are included.
26
- */
27
- getOptions(filter?: OptionHarnessFilters): Promise<MatOptionHarness[]>;
28
- }
29
-
30
- /** Harness for interacting with a `mat-option` in tests. */
31
- export declare class MatOptionHarness extends ContentContainerComponentHarness {
32
- /** Selector used to locate option instances. */
33
- static hostSelector: string;
34
- /** Element containing the option's text. */
35
- private _text;
36
- /**
37
- * Gets a `HarnessPredicate` that can be used to search for an option with specific attributes.
38
- * @param options Options for filtering which option instances are considered a match.
39
- * @return a `HarnessPredicate` configured with the given options.
40
- */
41
- static with<T extends MatOptionHarness>(this: ComponentHarnessConstructor<T>, options?: OptionHarnessFilters): HarnessPredicate<T>;
42
- /** Clicks the option. */
43
- click(): Promise<void>;
44
- /** Gets the option's label text. */
45
- getText(): Promise<string>;
46
- /** Gets whether the option is disabled. */
47
- isDisabled(): Promise<boolean>;
48
- /** Gets whether the option is selected. */
49
- isSelected(): Promise<boolean>;
50
- /** Gets whether the option is active. */
51
- isActive(): Promise<boolean>;
52
- /** Gets whether the option is in multiple selection mode. */
53
- isMultiple(): Promise<boolean>;
54
- }
55
-
56
- export declare interface OptgroupHarnessFilters extends BaseHarnessFilters {
57
- labelText?: string | RegExp;
58
- }
59
-
60
- export declare interface OptionHarnessFilters extends BaseHarnessFilters {
61
- text?: string | RegExp;
62
- isSelected?: boolean;
63
- }
64
-
65
- export { }
1
+ export { M as MatOptionHarness, O as OptionHarnessFilters } from '../../option-harness.d-3d33fc9a.js';
2
+ export { M as MatOptgroupHarness, O as OptgroupHarnessFilters } from '../../optgroup-harness.d-7f741f69.js';
3
+ import '@angular/cdk/testing';
@@ -0,0 +1,267 @@
1
+ import { InjectionToken } from '@angular/core';
2
+ import { Subject, Observable } from 'rxjs';
3
+
4
+ /** InjectionToken for datepicker that can be used to override default locale code. */
5
+ declare const MAT_DATE_LOCALE: InjectionToken<{}>;
6
+ /**
7
+ * @docs-private
8
+ * @deprecated No longer used, will be removed.
9
+ * @breaking-change 21.0.0
10
+ */
11
+ declare function MAT_DATE_LOCALE_FACTORY(): {};
12
+ /** Adapts type `D` to be usable as a date by cdk-based components that work with dates. */
13
+ declare abstract class DateAdapter<D, L = any> {
14
+ /** The locale to use for all dates. */
15
+ protected locale: L;
16
+ protected readonly _localeChanges: Subject<void>;
17
+ /** A stream that emits when the locale changes. */
18
+ readonly localeChanges: Observable<void>;
19
+ /**
20
+ * Gets the year component of the given date.
21
+ * @param date The date to extract the year from.
22
+ * @returns The year component.
23
+ */
24
+ abstract getYear(date: D): number;
25
+ /**
26
+ * Gets the month component of the given date.
27
+ * @param date The date to extract the month from.
28
+ * @returns The month component (0-indexed, 0 = January).
29
+ */
30
+ abstract getMonth(date: D): number;
31
+ /**
32
+ * Gets the date of the month component of the given date.
33
+ * @param date The date to extract the date of the month from.
34
+ * @returns The month component (1-indexed, 1 = first of month).
35
+ */
36
+ abstract getDate(date: D): number;
37
+ /**
38
+ * Gets the day of the week component of the given date.
39
+ * @param date The date to extract the day of the week from.
40
+ * @returns The month component (0-indexed, 0 = Sunday).
41
+ */
42
+ abstract getDayOfWeek(date: D): number;
43
+ /**
44
+ * Gets a list of names for the months.
45
+ * @param style The naming style (e.g. long = 'January', short = 'Jan', narrow = 'J').
46
+ * @returns An ordered list of all month names, starting with January.
47
+ */
48
+ abstract getMonthNames(style: 'long' | 'short' | 'narrow'): string[];
49
+ /**
50
+ * Gets a list of names for the dates of the month.
51
+ * @returns An ordered list of all date of the month names, starting with '1'.
52
+ */
53
+ abstract getDateNames(): string[];
54
+ /**
55
+ * Gets a list of names for the days of the week.
56
+ * @param style The naming style (e.g. long = 'Sunday', short = 'Sun', narrow = 'S').
57
+ * @returns An ordered list of all weekday names, starting with Sunday.
58
+ */
59
+ abstract getDayOfWeekNames(style: 'long' | 'short' | 'narrow'): string[];
60
+ /**
61
+ * Gets the name for the year of the given date.
62
+ * @param date The date to get the year name for.
63
+ * @returns The name of the given year (e.g. '2017').
64
+ */
65
+ abstract getYearName(date: D): string;
66
+ /**
67
+ * Gets the first day of the week.
68
+ * @returns The first day of the week (0-indexed, 0 = Sunday).
69
+ */
70
+ abstract getFirstDayOfWeek(): number;
71
+ /**
72
+ * Gets the number of days in the month of the given date.
73
+ * @param date The date whose month should be checked.
74
+ * @returns The number of days in the month of the given date.
75
+ */
76
+ abstract getNumDaysInMonth(date: D): number;
77
+ /**
78
+ * Clones the given date.
79
+ * @param date The date to clone
80
+ * @returns A new date equal to the given date.
81
+ */
82
+ abstract clone(date: D): D;
83
+ /**
84
+ * Creates a date with the given year, month, and date. Does not allow over/under-flow of the
85
+ * month and date.
86
+ * @param year The full year of the date. (e.g. 89 means the year 89, not the year 1989).
87
+ * @param month The month of the date (0-indexed, 0 = January). Must be an integer 0 - 11.
88
+ * @param date The date of month of the date. Must be an integer 1 - length of the given month.
89
+ * @returns The new date, or null if invalid.
90
+ */
91
+ abstract createDate(year: number, month: number, date: number): D;
92
+ /**
93
+ * Gets today's date.
94
+ * @returns Today's date.
95
+ */
96
+ abstract today(): D;
97
+ /**
98
+ * Parses a date from a user-provided value.
99
+ * @param value The value to parse.
100
+ * @param parseFormat The expected format of the value being parsed
101
+ * (type is implementation-dependent).
102
+ * @returns The parsed date.
103
+ */
104
+ abstract parse(value: any, parseFormat: any): D | null;
105
+ /**
106
+ * Formats a date as a string according to the given format.
107
+ * @param date The value to format.
108
+ * @param displayFormat The format to use to display the date as a string.
109
+ * @returns The formatted date string.
110
+ */
111
+ abstract format(date: D, displayFormat: any): string;
112
+ /**
113
+ * Adds the given number of years to the date. Years are counted as if flipping 12 pages on the
114
+ * calendar for each year and then finding the closest date in the new month. For example when
115
+ * adding 1 year to Feb 29, 2016, the resulting date will be Feb 28, 2017.
116
+ * @param date The date to add years to.
117
+ * @param years The number of years to add (may be negative).
118
+ * @returns A new date equal to the given one with the specified number of years added.
119
+ */
120
+ abstract addCalendarYears(date: D, years: number): D;
121
+ /**
122
+ * Adds the given number of months to the date. Months are counted as if flipping a page on the
123
+ * calendar for each month and then finding the closest date in the new month. For example when
124
+ * adding 1 month to Jan 31, 2017, the resulting date will be Feb 28, 2017.
125
+ * @param date The date to add months to.
126
+ * @param months The number of months to add (may be negative).
127
+ * @returns A new date equal to the given one with the specified number of months added.
128
+ */
129
+ abstract addCalendarMonths(date: D, months: number): D;
130
+ /**
131
+ * Adds the given number of days to the date. Days are counted as if moving one cell on the
132
+ * calendar for each day.
133
+ * @param date The date to add days to.
134
+ * @param days The number of days to add (may be negative).
135
+ * @returns A new date equal to the given one with the specified number of days added.
136
+ */
137
+ abstract addCalendarDays(date: D, days: number): D;
138
+ /**
139
+ * Gets the RFC 3339 compatible string (https://tools.ietf.org/html/rfc3339) for the given date.
140
+ * This method is used to generate date strings that are compatible with native HTML attributes
141
+ * such as the `min` or `max` attribute of an `<input>`.
142
+ * @param date The date to get the ISO date string for.
143
+ * @returns The ISO date string date string.
144
+ */
145
+ abstract toIso8601(date: D): string;
146
+ /**
147
+ * Checks whether the given object is considered a date instance by this DateAdapter.
148
+ * @param obj The object to check
149
+ * @returns Whether the object is a date instance.
150
+ */
151
+ abstract isDateInstance(obj: any): boolean;
152
+ /**
153
+ * Checks whether the given date is valid.
154
+ * @param date The date to check.
155
+ * @returns Whether the date is valid.
156
+ */
157
+ abstract isValid(date: D): boolean;
158
+ /**
159
+ * Gets date instance that is not valid.
160
+ * @returns An invalid date.
161
+ */
162
+ abstract invalid(): D;
163
+ /**
164
+ * Sets the time of one date to the time of another.
165
+ * @param target Date whose time will be set.
166
+ * @param hours New hours to set on the date object.
167
+ * @param minutes New minutes to set on the date object.
168
+ * @param seconds New seconds to set on the date object.
169
+ */
170
+ setTime(target: D, hours: number, minutes: number, seconds: number): D;
171
+ /**
172
+ * Gets the hours component of the given date.
173
+ * @param date The date to extract the hours from.
174
+ */
175
+ getHours(date: D): number;
176
+ /**
177
+ * Gets the minutes component of the given date.
178
+ * @param date The date to extract the minutes from.
179
+ */
180
+ getMinutes(date: D): number;
181
+ /**
182
+ * Gets the seconds component of the given date.
183
+ * @param date The date to extract the seconds from.
184
+ */
185
+ getSeconds(date: D): number;
186
+ /**
187
+ * Parses a date with a specific time from a user-provided value.
188
+ * @param value The value to parse.
189
+ * @param parseFormat The expected format of the value being parsed
190
+ * (type is implementation-dependent).
191
+ */
192
+ parseTime(value: any, parseFormat: any): D | null;
193
+ /**
194
+ * Adds an amount of seconds to the specified date.
195
+ * @param date Date to which to add the seconds.
196
+ * @param amount Amount of seconds to add to the date.
197
+ */
198
+ addSeconds(date: D, amount: number): D;
199
+ /**
200
+ * Given a potential date object, returns that same date object if it is
201
+ * a valid date, or `null` if it's not a valid date.
202
+ * @param obj The object to check.
203
+ * @returns A date or `null`.
204
+ */
205
+ getValidDateOrNull(obj: unknown): D | null;
206
+ /**
207
+ * Attempts to deserialize a value to a valid date object. This is different from parsing in that
208
+ * deserialize should only accept non-ambiguous, locale-independent formats (e.g. a ISO 8601
209
+ * string). The default implementation does not allow any deserialization, it simply checks that
210
+ * the given value is already a valid date object or null. The `<mat-datepicker>` will call this
211
+ * method on all of its `@Input()` properties that accept dates. It is therefore possible to
212
+ * support passing values from your backend directly to these properties by overriding this method
213
+ * to also deserialize the format used by your backend.
214
+ * @param value The value to be deserialized into a date object.
215
+ * @returns The deserialized date object, either a valid date, null if the value can be
216
+ * deserialized into a null date (e.g. the empty string), or an invalid date.
217
+ */
218
+ deserialize(value: any): D | null;
219
+ /**
220
+ * Sets the locale used for all dates.
221
+ * @param locale The new locale.
222
+ */
223
+ setLocale(locale: L): void;
224
+ /**
225
+ * Compares two dates.
226
+ * @param first The first date to compare.
227
+ * @param second The second date to compare.
228
+ * @returns 0 if the dates are equal, a number less than 0 if the first date is earlier,
229
+ * a number greater than 0 if the first date is later.
230
+ */
231
+ compareDate(first: D, second: D): number;
232
+ /**
233
+ * Compares the time values of two dates.
234
+ * @param first First date to compare.
235
+ * @param second Second date to compare.
236
+ * @returns 0 if the times are equal, a number less than 0 if the first time is earlier,
237
+ * a number greater than 0 if the first time is later.
238
+ */
239
+ compareTime(first: D, second: D): number;
240
+ /**
241
+ * Checks if two dates are equal.
242
+ * @param first The first date to check.
243
+ * @param second The second date to check.
244
+ * @returns Whether the two dates are equal.
245
+ * Null dates are considered equal to other null dates.
246
+ */
247
+ sameDate(first: D | null, second: D | null): boolean;
248
+ /**
249
+ * Checks if the times of two dates are equal.
250
+ * @param first The first date to check.
251
+ * @param second The second date to check.
252
+ * @returns Whether the times of the two dates are equal.
253
+ * Null dates are considered equal to other null dates.
254
+ */
255
+ sameTime(first: D | null, second: D | null): boolean;
256
+ /**
257
+ * Clamp the given date between min and max dates.
258
+ * @param date The date to clamp.
259
+ * @param min The minimum value to allow. If null or omitted no min is enforced.
260
+ * @param max The maximum value to allow. If null or omitted no max is enforced.
261
+ * @returns `min` if `date` is less than `min`, `max` if date is greater than `max`,
262
+ * otherwise `date`.
263
+ */
264
+ clampDate(date: D, min?: D | null, max?: D | null): D;
265
+ }
266
+
267
+ export { DateAdapter as D, MAT_DATE_LOCALE as M, MAT_DATE_LOCALE_FACTORY as a };
@@ -0,0 +1,278 @@
1
+ import { BaseHarnessFilters, ComponentHarness, HarnessPredicate } from '@angular/cdk/testing';
2
+ import { M as MatFormFieldControlHarness } from './form-field-control-harness.d-2d91f25a.js';
3
+
4
+ /** A set of criteria that can be used to filter a list of datepicker input instances. */
5
+ interface DatepickerInputHarnessFilters extends BaseHarnessFilters {
6
+ /** Filters based on the value of the input. */
7
+ value?: string | RegExp;
8
+ /** Filters based on the placeholder text of the input. */
9
+ placeholder?: string | RegExp;
10
+ }
11
+ /** A set of criteria that can be used to filter a list of datepicker toggle instances. */
12
+ interface DatepickerToggleHarnessFilters extends BaseHarnessFilters {
13
+ }
14
+ /** A set of criteria that can be used to filter a list of calendar instances. */
15
+ interface CalendarHarnessFilters extends BaseHarnessFilters {
16
+ }
17
+ /** A set of criteria that can be used to filter a list of calendar cell instances. */
18
+ interface CalendarCellHarnessFilters extends BaseHarnessFilters {
19
+ /** Filters based on the text of the cell. */
20
+ text?: string | RegExp;
21
+ /** Filters based on whether the cell is selected. */
22
+ selected?: boolean;
23
+ /** Filters based on whether the cell is activated using keyboard navigation */
24
+ active?: boolean;
25
+ /** Filters based on whether the cell is disabled. */
26
+ disabled?: boolean;
27
+ /** Filters based on whether the cell represents today's date. */
28
+ today?: boolean;
29
+ /** Filters based on whether the cell is inside of the main range. */
30
+ inRange?: boolean;
31
+ /** Filters based on whether the cell is inside of the comparison range. */
32
+ inComparisonRange?: boolean;
33
+ /** Filters based on whether the cell is inside of the preview range. */
34
+ inPreviewRange?: boolean;
35
+ }
36
+ /** A set of criteria that can be used to filter a list of date range input instances. */
37
+ interface DateRangeInputHarnessFilters extends BaseHarnessFilters {
38
+ /** Filters based on the value of the input. */
39
+ value?: string | RegExp;
40
+ }
41
+
42
+ /** Base class for datepicker input harnesses. */
43
+ declare abstract class MatDatepickerInputHarnessBase extends MatFormFieldControlHarness {
44
+ /** Whether the input is disabled. */
45
+ isDisabled(): Promise<boolean>;
46
+ /** Whether the input is required. */
47
+ isRequired(): Promise<boolean>;
48
+ /** Gets the value of the input. */
49
+ getValue(): Promise<string>;
50
+ /**
51
+ * Sets the value of the input. The value will be set by simulating
52
+ * keypresses that correspond to the given value.
53
+ */
54
+ setValue(newValue: string): Promise<void>;
55
+ /** Gets the placeholder of the input. */
56
+ getPlaceholder(): Promise<string>;
57
+ /**
58
+ * Focuses the input and returns a promise that indicates when the
59
+ * action is complete.
60
+ */
61
+ focus(): Promise<void>;
62
+ /**
63
+ * Blurs the input and returns a promise that indicates when the
64
+ * action is complete.
65
+ */
66
+ blur(): Promise<void>;
67
+ /** Whether the input is focused. */
68
+ isFocused(): Promise<boolean>;
69
+ /** Gets the formatted minimum date for the input's value. */
70
+ getMin(): Promise<string | null>;
71
+ /** Gets the formatted maximum date for the input's value. */
72
+ getMax(): Promise<string | null>;
73
+ }
74
+
75
+ /** Harness for interacting with a standard Material calendar cell in tests. */
76
+ declare class MatCalendarCellHarness extends ComponentHarness {
77
+ static hostSelector: string;
78
+ /** Reference to the inner content element inside the cell. */
79
+ private _content;
80
+ /**
81
+ * Gets a `HarnessPredicate` that can be used to search for a `MatCalendarCellHarness`
82
+ * that meets certain criteria.
83
+ * @param options Options for filtering which cell instances are considered a match.
84
+ * @return a `HarnessPredicate` configured with the given options.
85
+ */
86
+ static with(options?: CalendarCellHarnessFilters): HarnessPredicate<MatCalendarCellHarness>;
87
+ /** Gets the text of the calendar cell. */
88
+ getText(): Promise<string>;
89
+ /** Gets the aria-label of the calendar cell. */
90
+ getAriaLabel(): Promise<string>;
91
+ /** Whether the cell is selected. */
92
+ isSelected(): Promise<boolean>;
93
+ /** Whether the cell is disabled. */
94
+ isDisabled(): Promise<boolean>;
95
+ /** Whether the cell is currently activated using keyboard navigation. */
96
+ isActive(): Promise<boolean>;
97
+ /** Whether the cell represents today's date. */
98
+ isToday(): Promise<boolean>;
99
+ /** Selects the calendar cell. Won't do anything if the cell is disabled. */
100
+ select(): Promise<void>;
101
+ /** Hovers over the calendar cell. */
102
+ hover(): Promise<void>;
103
+ /** Moves the mouse away from the calendar cell. */
104
+ mouseAway(): Promise<void>;
105
+ /** Focuses the calendar cell. */
106
+ focus(): Promise<void>;
107
+ /** Removes focus from the calendar cell. */
108
+ blur(): Promise<void>;
109
+ /** Whether the cell is the start of the main range. */
110
+ isRangeStart(): Promise<boolean>;
111
+ /** Whether the cell is the end of the main range. */
112
+ isRangeEnd(): Promise<boolean>;
113
+ /** Whether the cell is part of the main range. */
114
+ isInRange(): Promise<boolean>;
115
+ /** Whether the cell is the start of the comparison range. */
116
+ isComparisonRangeStart(): Promise<boolean>;
117
+ /** Whether the cell is the end of the comparison range. */
118
+ isComparisonRangeEnd(): Promise<boolean>;
119
+ /** Whether the cell is inside of the comparison range. */
120
+ isInComparisonRange(): Promise<boolean>;
121
+ /** Whether the cell is the start of the preview range. */
122
+ isPreviewRangeStart(): Promise<boolean>;
123
+ /** Whether the cell is the end of the preview range. */
124
+ isPreviewRangeEnd(): Promise<boolean>;
125
+ /** Whether the cell is inside of the preview range. */
126
+ isInPreviewRange(): Promise<boolean>;
127
+ /** Returns whether the cell has a particular CSS class-based state. */
128
+ private _hasState;
129
+ }
130
+
131
+ /** Possible views of a `MatCalendarHarness`. */
132
+ declare enum CalendarView {
133
+ MONTH = 0,
134
+ YEAR = 1,
135
+ MULTI_YEAR = 2
136
+ }
137
+ /** Harness for interacting with a standard Material calendar in tests. */
138
+ declare class MatCalendarHarness extends ComponentHarness {
139
+ static hostSelector: string;
140
+ /** Queries for the calendar's period toggle button. */
141
+ private _periodButton;
142
+ /**
143
+ * Gets a `HarnessPredicate` that can be used to search for a `MatCalendarHarness`
144
+ * that meets certain criteria.
145
+ * @param options Options for filtering which calendar instances are considered a match.
146
+ * @return a `HarnessPredicate` configured with the given options.
147
+ */
148
+ static with(options?: CalendarHarnessFilters): HarnessPredicate<MatCalendarHarness>;
149
+ /**
150
+ * Gets a list of cells inside the calendar.
151
+ * @param filter Optionally filters which cells are included.
152
+ */
153
+ getCells(filter?: CalendarCellHarnessFilters): Promise<MatCalendarCellHarness[]>;
154
+ /** Gets the current view that is being shown inside the calendar. */
155
+ getCurrentView(): Promise<CalendarView>;
156
+ /** Gets the label of the current calendar view. */
157
+ getCurrentViewLabel(): Promise<string>;
158
+ /** Changes the calendar view by clicking on the view toggle button. */
159
+ changeView(): Promise<void>;
160
+ /** Goes to the next page of the current view (e.g. next month when inside the month view). */
161
+ next(): Promise<void>;
162
+ /**
163
+ * Goes to the previous page of the current view
164
+ * (e.g. previous month when inside the month view).
165
+ */
166
+ previous(): Promise<void>;
167
+ /**
168
+ * Selects a cell in the current calendar view.
169
+ * @param filter An optional filter to apply to the cells. The first cell matching the filter
170
+ * will be selected.
171
+ */
172
+ selectCell(filter?: CalendarCellHarnessFilters): Promise<void>;
173
+ }
174
+
175
+ /** Interface for a test harness that can open and close a calendar. */
176
+ interface DatepickerTrigger {
177
+ isCalendarOpen(): Promise<boolean>;
178
+ openCalendar(): Promise<void>;
179
+ closeCalendar(): Promise<void>;
180
+ hasCalendar(): Promise<boolean>;
181
+ getCalendar(filter?: CalendarHarnessFilters): Promise<MatCalendarHarness>;
182
+ }
183
+ /** Base class for harnesses that can trigger a calendar. */
184
+ declare abstract class DatepickerTriggerHarnessBase extends ComponentHarness implements DatepickerTrigger {
185
+ /** Whether the trigger is disabled. */
186
+ abstract isDisabled(): Promise<boolean>;
187
+ /** Whether the calendar associated with the trigger is open. */
188
+ abstract isCalendarOpen(): Promise<boolean>;
189
+ /** Opens the calendar associated with the trigger. */
190
+ protected abstract _openCalendar(): Promise<void>;
191
+ /** Opens the calendar if the trigger is enabled and it has a calendar. */
192
+ openCalendar(): Promise<void>;
193
+ /** Closes the calendar if it is open. */
194
+ closeCalendar(): Promise<void>;
195
+ /** Gets whether there is a calendar associated with the trigger. */
196
+ hasCalendar(): Promise<boolean>;
197
+ /**
198
+ * Gets the `MatCalendarHarness` that is associated with the trigger.
199
+ * @param filter Optionally filters which calendar is included.
200
+ */
201
+ getCalendar(filter?: CalendarHarnessFilters): Promise<MatCalendarHarness>;
202
+ }
203
+
204
+ /** Harness for interacting with a standard Material datepicker inputs in tests. */
205
+ declare class MatDatepickerInputHarness extends MatDatepickerInputHarnessBase implements DatepickerTrigger {
206
+ static hostSelector: string;
207
+ /**
208
+ * Gets a `HarnessPredicate` that can be used to search for a `MatDatepickerInputHarness`
209
+ * that meets certain criteria.
210
+ * @param options Options for filtering which input instances are considered a match.
211
+ * @return a `HarnessPredicate` configured with the given options.
212
+ */
213
+ static with(options?: DatepickerInputHarnessFilters): HarnessPredicate<MatDatepickerInputHarness>;
214
+ /** Gets whether the calendar associated with the input is open. */
215
+ isCalendarOpen(): Promise<boolean>;
216
+ /** Opens the calendar associated with the input. */
217
+ openCalendar(): Promise<void>;
218
+ /** Closes the calendar associated with the input. */
219
+ closeCalendar(): Promise<void>;
220
+ /** Whether a calendar is associated with the input. */
221
+ hasCalendar(): Promise<boolean>;
222
+ /**
223
+ * Gets the `MatCalendarHarness` that is associated with the trigger.
224
+ * @param filter Optionally filters which calendar is included.
225
+ */
226
+ getCalendar(filter?: CalendarHarnessFilters): Promise<MatCalendarHarness>;
227
+ }
228
+
229
+ /** Harness for interacting with a standard Material date range start input in tests. */
230
+ declare class MatStartDateHarness extends MatDatepickerInputHarnessBase {
231
+ static hostSelector: string;
232
+ /**
233
+ * Gets a `HarnessPredicate` that can be used to search for a `MatStartDateHarness`
234
+ * that meets certain criteria.
235
+ * @param options Options for filtering which input instances are considered a match.
236
+ * @return a `HarnessPredicate` configured with the given options.
237
+ */
238
+ static with(options?: DatepickerInputHarnessFilters): HarnessPredicate<MatStartDateHarness>;
239
+ }
240
+ /** Harness for interacting with a standard Material date range end input in tests. */
241
+ declare class MatEndDateHarness extends MatDatepickerInputHarnessBase {
242
+ static hostSelector: string;
243
+ /**
244
+ * Gets a `HarnessPredicate` that can be used to search for a `MatEndDateHarness`
245
+ * that meets certain criteria.
246
+ * @param options Options for filtering which input instances are considered a match.
247
+ * @return a `HarnessPredicate` configured with the given options.
248
+ */
249
+ static with(options?: DatepickerInputHarnessFilters): HarnessPredicate<MatEndDateHarness>;
250
+ }
251
+ /** Harness for interacting with a standard Material date range input in tests. */
252
+ declare class MatDateRangeInputHarness extends DatepickerTriggerHarnessBase {
253
+ static hostSelector: string;
254
+ /**
255
+ * Gets a `HarnessPredicate` that can be used to search for a `MatDateRangeInputHarness`
256
+ * that meets certain criteria.
257
+ * @param options Options for filtering which input instances are considered a match.
258
+ * @return a `HarnessPredicate` configured with the given options.
259
+ */
260
+ static with(options?: DateRangeInputHarnessFilters): HarnessPredicate<MatDateRangeInputHarness>;
261
+ /** Gets the combined value of the start and end inputs, including the separator. */
262
+ getValue(): Promise<string>;
263
+ /** Gets the inner start date input inside the range input. */
264
+ getStartInput(): Promise<MatStartDateHarness>;
265
+ /** Gets the inner start date input inside the range input. */
266
+ getEndInput(): Promise<MatEndDateHarness>;
267
+ /** Gets the separator text between the values of the two inputs. */
268
+ getSeparator(): Promise<string>;
269
+ /** Gets whether the range input is disabled. */
270
+ isDisabled(): Promise<boolean>;
271
+ /** Gets whether the range input is required. */
272
+ isRequired(): Promise<boolean>;
273
+ /** Opens the calendar associated with the input. */
274
+ isCalendarOpen(): Promise<boolean>;
275
+ protected _openCalendar(): Promise<void>;
276
+ }
277
+
278
+ export { type CalendarHarnessFilters as C, DatepickerTriggerHarnessBase as D, MatDatepickerInputHarness as M, type DatepickerToggleHarnessFilters as a, type DatepickerInputHarnessFilters as b, type CalendarCellHarnessFilters as c, type DateRangeInputHarnessFilters as d, MatStartDateHarness as e, MatEndDateHarness as f, MatDateRangeInputHarness as g, CalendarView as h, MatCalendarHarness as i, MatCalendarCellHarness as j };