@angular/material 11.0.0-rc.4 → 11.0.3

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 (367) hide show
  1. package/_theming.scss +31 -1
  2. package/autocomplete/autocomplete.d.ts +6 -0
  3. package/autocomplete/index.metadata.json +1 -1
  4. package/bottom-sheet/index.metadata.json +1 -1
  5. package/bundles/material-autocomplete-testing.umd.js +5 -5
  6. package/bundles/material-autocomplete-testing.umd.js.map +1 -1
  7. package/bundles/material-autocomplete-testing.umd.min.js +1 -1
  8. package/bundles/material-autocomplete-testing.umd.min.js.map +1 -1
  9. package/bundles/material-autocomplete.umd.js +17 -7
  10. package/bundles/material-autocomplete.umd.js.map +1 -1
  11. package/bundles/material-autocomplete.umd.min.js +3 -3
  12. package/bundles/material-autocomplete.umd.min.js.map +1 -1
  13. package/bundles/material-badge-testing.umd.js +5 -5
  14. package/bundles/material-badge-testing.umd.js.map +1 -1
  15. package/bundles/material-badge-testing.umd.min.js +1 -1
  16. package/bundles/material-badge-testing.umd.min.js.map +1 -1
  17. package/bundles/material-badge.umd.js +5 -5
  18. package/bundles/material-badge.umd.js.map +1 -1
  19. package/bundles/material-badge.umd.min.js +1 -1
  20. package/bundles/material-badge.umd.min.js.map +1 -1
  21. package/bundles/material-bottom-sheet-testing.umd.js +5 -5
  22. package/bundles/material-bottom-sheet-testing.umd.js.map +1 -1
  23. package/bundles/material-bottom-sheet-testing.umd.min.js +1 -1
  24. package/bundles/material-bottom-sheet-testing.umd.min.js.map +1 -1
  25. package/bundles/material-bottom-sheet.umd.js +10 -6
  26. package/bundles/material-bottom-sheet.umd.js.map +1 -1
  27. package/bundles/material-bottom-sheet.umd.min.js +1 -1
  28. package/bundles/material-bottom-sheet.umd.min.js.map +1 -1
  29. package/bundles/material-button-testing.umd.js +5 -5
  30. package/bundles/material-button-testing.umd.js.map +1 -1
  31. package/bundles/material-button-testing.umd.min.js +1 -1
  32. package/bundles/material-button-testing.umd.min.js.map +1 -1
  33. package/bundles/material-button-toggle-testing.umd.js +5 -5
  34. package/bundles/material-button-toggle-testing.umd.js.map +1 -1
  35. package/bundles/material-button-toggle-testing.umd.min.js +1 -1
  36. package/bundles/material-button-toggle-testing.umd.min.js.map +1 -1
  37. package/bundles/material-button-toggle.umd.js +6 -8
  38. package/bundles/material-button-toggle.umd.js.map +1 -1
  39. package/bundles/material-button-toggle.umd.min.js +1 -1
  40. package/bundles/material-button-toggle.umd.min.js.map +1 -1
  41. package/bundles/material-button.umd.js +5 -5
  42. package/bundles/material-button.umd.js.map +1 -1
  43. package/bundles/material-button.umd.min.js +1 -1
  44. package/bundles/material-button.umd.min.js.map +1 -1
  45. package/bundles/material-card-testing.umd.js +5 -5
  46. package/bundles/material-card-testing.umd.js.map +1 -1
  47. package/bundles/material-card-testing.umd.min.js +1 -1
  48. package/bundles/material-card-testing.umd.min.js.map +1 -1
  49. package/bundles/material-checkbox-testing.umd.js +8 -8
  50. package/bundles/material-checkbox-testing.umd.js.map +1 -1
  51. package/bundles/material-checkbox-testing.umd.min.js +1 -1
  52. package/bundles/material-checkbox-testing.umd.min.js.map +1 -1
  53. package/bundles/material-checkbox.umd.js +11 -11
  54. package/bundles/material-checkbox.umd.js.map +1 -1
  55. package/bundles/material-checkbox.umd.min.js +3 -3
  56. package/bundles/material-checkbox.umd.min.js.map +1 -1
  57. package/bundles/material-chips-testing.umd.js +5 -5
  58. package/bundles/material-chips-testing.umd.js.map +1 -1
  59. package/bundles/material-chips-testing.umd.min.js +1 -1
  60. package/bundles/material-chips-testing.umd.min.js.map +1 -1
  61. package/bundles/material-chips.umd.js +8 -6
  62. package/bundles/material-chips.umd.js.map +1 -1
  63. package/bundles/material-chips.umd.min.js +4 -4
  64. package/bundles/material-chips.umd.min.js.map +1 -1
  65. package/bundles/material-core-testing.umd.js +5 -5
  66. package/bundles/material-core-testing.umd.js.map +1 -1
  67. package/bundles/material-core-testing.umd.min.js +2 -2
  68. package/bundles/material-core-testing.umd.min.js.map +1 -1
  69. package/bundles/material-core.umd.js +9 -8
  70. package/bundles/material-core.umd.js.map +1 -1
  71. package/bundles/material-core.umd.min.js +4 -4
  72. package/bundles/material-core.umd.min.js.map +1 -1
  73. package/bundles/material-datepicker-testing.umd.js +5 -5
  74. package/bundles/material-datepicker-testing.umd.js.map +1 -1
  75. package/bundles/material-datepicker-testing.umd.min.js +1 -1
  76. package/bundles/material-datepicker-testing.umd.min.js.map +1 -1
  77. package/bundles/material-datepicker.umd.js +31 -11
  78. package/bundles/material-datepicker.umd.js.map +1 -1
  79. package/bundles/material-datepicker.umd.min.js +5 -5
  80. package/bundles/material-datepicker.umd.min.js.map +1 -1
  81. package/bundles/material-dialog-testing.umd.js +5 -5
  82. package/bundles/material-dialog-testing.umd.js.map +1 -1
  83. package/bundles/material-dialog-testing.umd.min.js +2 -2
  84. package/bundles/material-dialog-testing.umd.min.js.map +1 -1
  85. package/bundles/material-dialog.umd.js +5 -5
  86. package/bundles/material-dialog.umd.js.map +1 -1
  87. package/bundles/material-dialog.umd.min.js +4 -4
  88. package/bundles/material-dialog.umd.min.js.map +1 -1
  89. package/bundles/material-divider-testing.umd.js +5 -5
  90. package/bundles/material-divider-testing.umd.js.map +1 -1
  91. package/bundles/material-divider-testing.umd.min.js +1 -1
  92. package/bundles/material-divider-testing.umd.min.js.map +1 -1
  93. package/bundles/material-expansion-testing.umd.js +5 -5
  94. package/bundles/material-expansion-testing.umd.js.map +1 -1
  95. package/bundles/material-expansion-testing.umd.min.js +1 -1
  96. package/bundles/material-expansion-testing.umd.min.js.map +1 -1
  97. package/bundles/material-expansion.umd.js +14 -10
  98. package/bundles/material-expansion.umd.js.map +1 -1
  99. package/bundles/material-expansion.umd.min.js +6 -6
  100. package/bundles/material-expansion.umd.min.js.map +1 -1
  101. package/bundles/material-form-field-testing-control.umd.js +5 -5
  102. package/bundles/material-form-field-testing-control.umd.js.map +1 -1
  103. package/bundles/material-form-field-testing-control.umd.min.js +2 -2
  104. package/bundles/material-form-field-testing-control.umd.min.js.map +1 -1
  105. package/bundles/material-form-field-testing.umd.js +5 -5
  106. package/bundles/material-form-field-testing.umd.js.map +1 -1
  107. package/bundles/material-form-field-testing.umd.min.js +3 -3
  108. package/bundles/material-form-field-testing.umd.min.js.map +1 -1
  109. package/bundles/material-form-field.umd.js +5 -5
  110. package/bundles/material-form-field.umd.js.map +1 -1
  111. package/bundles/material-form-field.umd.min.js +1 -1
  112. package/bundles/material-form-field.umd.min.js.map +1 -1
  113. package/bundles/material-grid-list-testing.umd.js +5 -5
  114. package/bundles/material-grid-list-testing.umd.js.map +1 -1
  115. package/bundles/material-grid-list-testing.umd.min.js +1 -1
  116. package/bundles/material-grid-list-testing.umd.min.js.map +1 -1
  117. package/bundles/material-grid-list.umd.js +5 -5
  118. package/bundles/material-grid-list.umd.js.map +1 -1
  119. package/bundles/material-grid-list.umd.min.js +1 -1
  120. package/bundles/material-grid-list.umd.min.js.map +1 -1
  121. package/bundles/material-icon-testing.umd.js +5 -5
  122. package/bundles/material-icon-testing.umd.js.map +1 -1
  123. package/bundles/material-icon-testing.umd.min.js +1 -1
  124. package/bundles/material-icon-testing.umd.min.js.map +1 -1
  125. package/bundles/material-icon.umd.js +5 -5
  126. package/bundles/material-icon.umd.js.map +1 -1
  127. package/bundles/material-icon.umd.min.js +3 -3
  128. package/bundles/material-icon.umd.min.js.map +1 -1
  129. package/bundles/material-input-testing.umd.js +5 -5
  130. package/bundles/material-input-testing.umd.js.map +1 -1
  131. package/bundles/material-input-testing.umd.min.js +1 -1
  132. package/bundles/material-input-testing.umd.min.js.map +1 -1
  133. package/bundles/material-input.umd.js +6 -5
  134. package/bundles/material-input.umd.js.map +1 -1
  135. package/bundles/material-input.umd.min.js +3 -3
  136. package/bundles/material-input.umd.min.js.map +1 -1
  137. package/bundles/material-list-testing.umd.js +5 -5
  138. package/bundles/material-list-testing.umd.js.map +1 -1
  139. package/bundles/material-list-testing.umd.min.js +1 -1
  140. package/bundles/material-list-testing.umd.min.js.map +1 -1
  141. package/bundles/material-list.umd.js +5 -5
  142. package/bundles/material-list.umd.js.map +1 -1
  143. package/bundles/material-list.umd.min.js +1 -1
  144. package/bundles/material-list.umd.min.js.map +1 -1
  145. package/bundles/material-menu-testing.umd.js +5 -5
  146. package/bundles/material-menu-testing.umd.js.map +1 -1
  147. package/bundles/material-menu-testing.umd.min.js +1 -1
  148. package/bundles/material-menu-testing.umd.min.js.map +1 -1
  149. package/bundles/material-menu.umd.js +10 -5
  150. package/bundles/material-menu.umd.js.map +1 -1
  151. package/bundles/material-menu.umd.min.js +5 -5
  152. package/bundles/material-menu.umd.min.js.map +1 -1
  153. package/bundles/material-paginator-testing.umd.js +5 -5
  154. package/bundles/material-paginator-testing.umd.js.map +1 -1
  155. package/bundles/material-paginator-testing.umd.min.js +1 -1
  156. package/bundles/material-paginator-testing.umd.min.js.map +1 -1
  157. package/bundles/material-paginator.umd.js +10 -9
  158. package/bundles/material-paginator.umd.js.map +1 -1
  159. package/bundles/material-paginator.umd.min.js +2 -2
  160. package/bundles/material-paginator.umd.min.js.map +1 -1
  161. package/bundles/material-progress-bar-testing.umd.js +5 -5
  162. package/bundles/material-progress-bar-testing.umd.js.map +1 -1
  163. package/bundles/material-progress-bar-testing.umd.min.js +1 -1
  164. package/bundles/material-progress-bar-testing.umd.min.js.map +1 -1
  165. package/bundles/material-progress-bar.umd.js +5 -5
  166. package/bundles/material-progress-bar.umd.js.map +1 -1
  167. package/bundles/material-progress-bar.umd.min.js +1 -1
  168. package/bundles/material-progress-bar.umd.min.js.map +1 -1
  169. package/bundles/material-progress-spinner-testing.umd.js +5 -5
  170. package/bundles/material-progress-spinner-testing.umd.js.map +1 -1
  171. package/bundles/material-progress-spinner-testing.umd.min.js +1 -1
  172. package/bundles/material-progress-spinner-testing.umd.min.js.map +1 -1
  173. package/bundles/material-progress-spinner.umd.js +5 -5
  174. package/bundles/material-progress-spinner.umd.js.map +1 -1
  175. package/bundles/material-progress-spinner.umd.min.js +1 -1
  176. package/bundles/material-progress-spinner.umd.min.js.map +1 -1
  177. package/bundles/material-radio-testing.umd.js +5 -5
  178. package/bundles/material-radio-testing.umd.js.map +1 -1
  179. package/bundles/material-radio-testing.umd.min.js +1 -1
  180. package/bundles/material-radio-testing.umd.min.js.map +1 -1
  181. package/bundles/material-radio.umd.js +10 -7
  182. package/bundles/material-radio.umd.js.map +1 -1
  183. package/bundles/material-radio.umd.min.js +2 -2
  184. package/bundles/material-radio.umd.min.js.map +1 -1
  185. package/bundles/material-select-testing.umd.js +5 -5
  186. package/bundles/material-select-testing.umd.js.map +1 -1
  187. package/bundles/material-select-testing.umd.min.js +1 -1
  188. package/bundles/material-select-testing.umd.min.js.map +1 -1
  189. package/bundles/material-select.umd.js +12 -8
  190. package/bundles/material-select.umd.js.map +1 -1
  191. package/bundles/material-select.umd.min.js +3 -3
  192. package/bundles/material-select.umd.min.js.map +1 -1
  193. package/bundles/material-sidenav-testing.umd.js +5 -5
  194. package/bundles/material-sidenav-testing.umd.js.map +1 -1
  195. package/bundles/material-sidenav-testing.umd.min.js +1 -1
  196. package/bundles/material-sidenav-testing.umd.min.js.map +1 -1
  197. package/bundles/material-sidenav.umd.js +5 -5
  198. package/bundles/material-sidenav.umd.js.map +1 -1
  199. package/bundles/material-sidenav.umd.min.js +1 -1
  200. package/bundles/material-sidenav.umd.min.js.map +1 -1
  201. package/bundles/material-slide-toggle-testing.umd.js +5 -5
  202. package/bundles/material-slide-toggle-testing.umd.js.map +1 -1
  203. package/bundles/material-slide-toggle-testing.umd.min.js +1 -1
  204. package/bundles/material-slide-toggle-testing.umd.min.js.map +1 -1
  205. package/bundles/material-slide-toggle.umd.js +5 -5
  206. package/bundles/material-slide-toggle.umd.js.map +1 -1
  207. package/bundles/material-slide-toggle.umd.min.js +1 -1
  208. package/bundles/material-slide-toggle.umd.min.js.map +1 -1
  209. package/bundles/material-slider-testing.umd.js +5 -5
  210. package/bundles/material-slider-testing.umd.js.map +1 -1
  211. package/bundles/material-slider-testing.umd.min.js +1 -1
  212. package/bundles/material-slider-testing.umd.min.js.map +1 -1
  213. package/bundles/material-slider.umd.js +6 -6
  214. package/bundles/material-slider.umd.js.map +1 -1
  215. package/bundles/material-slider.umd.min.js +1 -1
  216. package/bundles/material-slider.umd.min.js.map +1 -1
  217. package/bundles/material-snack-bar-testing.umd.js +5 -5
  218. package/bundles/material-snack-bar-testing.umd.js.map +1 -1
  219. package/bundles/material-snack-bar-testing.umd.min.js +1 -1
  220. package/bundles/material-snack-bar-testing.umd.min.js.map +1 -1
  221. package/bundles/material-snack-bar.umd.js +5 -5
  222. package/bundles/material-snack-bar.umd.js.map +1 -1
  223. package/bundles/material-snack-bar.umd.min.js +1 -1
  224. package/bundles/material-snack-bar.umd.min.js.map +1 -1
  225. package/bundles/material-sort-testing.umd.js +5 -5
  226. package/bundles/material-sort-testing.umd.js.map +1 -1
  227. package/bundles/material-sort-testing.umd.min.js +1 -1
  228. package/bundles/material-sort-testing.umd.min.js.map +1 -1
  229. package/bundles/material-sort.umd.js +6 -6
  230. package/bundles/material-sort.umd.js.map +1 -1
  231. package/bundles/material-sort.umd.min.js +2 -2
  232. package/bundles/material-sort.umd.min.js.map +1 -1
  233. package/bundles/material-stepper-testing.umd.js +5 -5
  234. package/bundles/material-stepper-testing.umd.js.map +1 -1
  235. package/bundles/material-stepper-testing.umd.min.js +2 -2
  236. package/bundles/material-stepper-testing.umd.min.js.map +1 -1
  237. package/bundles/material-stepper.umd.js +5 -5
  238. package/bundles/material-stepper.umd.js.map +1 -1
  239. package/bundles/material-stepper.umd.min.js +1 -1
  240. package/bundles/material-stepper.umd.min.js.map +1 -1
  241. package/bundles/material-table-testing.umd.js +5 -5
  242. package/bundles/material-table-testing.umd.js.map +1 -1
  243. package/bundles/material-table-testing.umd.min.js +1 -1
  244. package/bundles/material-table-testing.umd.min.js.map +1 -1
  245. package/bundles/material-table.umd.js +5 -5
  246. package/bundles/material-table.umd.js.map +1 -1
  247. package/bundles/material-table.umd.min.js +1 -1
  248. package/bundles/material-table.umd.min.js.map +1 -1
  249. package/bundles/material-tabs-testing.umd.js +5 -5
  250. package/bundles/material-tabs-testing.umd.js.map +1 -1
  251. package/bundles/material-tabs-testing.umd.min.js +1 -1
  252. package/bundles/material-tabs-testing.umd.min.js.map +1 -1
  253. package/bundles/material-tabs.umd.js +5 -5
  254. package/bundles/material-tabs.umd.js.map +1 -1
  255. package/bundles/material-tabs.umd.min.js +5 -5
  256. package/bundles/material-tabs.umd.min.js.map +1 -1
  257. package/bundles/material-toolbar-testing.umd.js +5 -5
  258. package/bundles/material-toolbar-testing.umd.js.map +1 -1
  259. package/bundles/material-toolbar-testing.umd.min.js +1 -1
  260. package/bundles/material-toolbar-testing.umd.min.js.map +1 -1
  261. package/bundles/material-toolbar.umd.js +5 -5
  262. package/bundles/material-toolbar.umd.js.map +1 -1
  263. package/bundles/material-toolbar.umd.min.js +1 -1
  264. package/bundles/material-toolbar.umd.min.js.map +1 -1
  265. package/bundles/material-tooltip-testing.umd.js +5 -5
  266. package/bundles/material-tooltip-testing.umd.js.map +1 -1
  267. package/bundles/material-tooltip-testing.umd.min.js +1 -1
  268. package/bundles/material-tooltip-testing.umd.min.js.map +1 -1
  269. package/bundles/material-tooltip.umd.js +5 -5
  270. package/bundles/material-tooltip.umd.js.map +1 -1
  271. package/bundles/material-tooltip.umd.min.js.map +1 -1
  272. package/bundles/material-tree-testing.umd.js +5 -5
  273. package/bundles/material-tree-testing.umd.js.map +1 -1
  274. package/bundles/material-tree-testing.umd.min.js +1 -1
  275. package/bundles/material-tree-testing.umd.min.js.map +1 -1
  276. package/bundles/material-tree.umd.js +5 -5
  277. package/bundles/material-tree.umd.js.map +1 -1
  278. package/bundles/material-tree.umd.min.js +3 -3
  279. package/bundles/material-tree.umd.min.js.map +1 -1
  280. package/button-toggle/index.metadata.json +1 -1
  281. package/checkbox/index.metadata.json +1 -1
  282. package/checkbox/testing/checkbox-harness.d.ts +3 -3
  283. package/chips/index.metadata.json +1 -1
  284. package/core/index.metadata.json +1 -1
  285. package/core/typography/_typography.scss +28 -0
  286. package/datepicker/calendar.d.ts +1 -0
  287. package/datepicker/datepicker-input-base.d.ts +2 -0
  288. package/datepicker/index.metadata.json +1 -1
  289. package/datepicker/month-view.d.ts +1 -1
  290. package/esm2015/autocomplete/autocomplete-trigger.js +3 -2
  291. package/esm2015/autocomplete/autocomplete.js +11 -2
  292. package/esm2015/bottom-sheet/bottom-sheet-container.js +6 -2
  293. package/esm2015/button-toggle/button-toggle.js +2 -4
  294. package/esm2015/checkbox/checkbox.js +8 -8
  295. package/esm2015/checkbox/testing/checkbox-harness.js +4 -4
  296. package/esm2015/chips/chip.js +3 -2
  297. package/esm2015/chips/chips-module.js +3 -2
  298. package/esm2015/core/common-behaviors/common-module.js +1 -1
  299. package/esm2015/core/option/index.js +3 -2
  300. package/esm2015/core/selection/index.js +3 -1
  301. package/esm2015/core/version.js +1 -1
  302. package/esm2015/datepicker/calendar.js +5 -2
  303. package/esm2015/datepicker/date-range-input.js +11 -2
  304. package/esm2015/datepicker/datepicker-base.js +1 -1
  305. package/esm2015/datepicker/datepicker-input-base.js +7 -3
  306. package/esm2015/datepicker/datepicker-input.js +5 -2
  307. package/esm2015/datepicker/datepicker-module.js +3 -1
  308. package/esm2015/datepicker/month-view.js +1 -1
  309. package/esm2015/expansion/accordion.js +6 -2
  310. package/esm2015/expansion/expansion-module.js +3 -2
  311. package/esm2015/input/input-module.js +3 -2
  312. package/esm2015/menu/menu.js +6 -1
  313. package/esm2015/paginator/paginator-module.js +3 -1
  314. package/esm2015/radio/radio.js +6 -3
  315. package/esm2015/select/select.js +8 -4
  316. package/esm2015/slider/slider.js +2 -2
  317. package/esm2015/sort/sort-module.js +3 -2
  318. package/expansion/accordion.d.ts +3 -2
  319. package/expansion/index.metadata.json +1 -1
  320. package/fesm2015/autocomplete.js +12 -2
  321. package/fesm2015/autocomplete.js.map +1 -1
  322. package/fesm2015/bottom-sheet.js +5 -1
  323. package/fesm2015/bottom-sheet.js.map +1 -1
  324. package/fesm2015/button-toggle.js +1 -3
  325. package/fesm2015/button-toggle.js.map +1 -1
  326. package/fesm2015/checkbox/testing.js +3 -3
  327. package/fesm2015/checkbox/testing.js.map +1 -1
  328. package/fesm2015/checkbox.js +6 -6
  329. package/fesm2015/checkbox.js.map +1 -1
  330. package/fesm2015/chips.js +4 -2
  331. package/fesm2015/chips.js.map +1 -1
  332. package/fesm2015/core.js +4 -3
  333. package/fesm2015/core.js.map +1 -1
  334. package/fesm2015/datepicker.js +27 -7
  335. package/fesm2015/datepicker.js.map +1 -1
  336. package/fesm2015/expansion.js +6 -1
  337. package/fesm2015/expansion.js.map +1 -1
  338. package/fesm2015/input.js +2 -1
  339. package/fesm2015/input.js.map +1 -1
  340. package/fesm2015/menu.js +5 -0
  341. package/fesm2015/menu.js.map +1 -1
  342. package/fesm2015/paginator.js +2 -1
  343. package/fesm2015/paginator.js.map +1 -1
  344. package/fesm2015/radio.js +5 -2
  345. package/fesm2015/radio.js.map +1 -1
  346. package/fesm2015/select.js +7 -3
  347. package/fesm2015/select.js.map +1 -1
  348. package/fesm2015/slider.js +1 -1
  349. package/fesm2015/slider.js.map +1 -1
  350. package/fesm2015/sort.js +2 -2
  351. package/fesm2015/sort.js.map +1 -1
  352. package/input/index.metadata.json +1 -1
  353. package/menu/_menu-theme.scss +3 -1
  354. package/menu/index.metadata.json +1 -1
  355. package/package.json +6 -6
  356. package/paginator/index.metadata.json +1 -1
  357. package/prebuilt-themes/deeppurple-amber.css +1 -1
  358. package/prebuilt-themes/indigo-pink.css +1 -1
  359. package/prebuilt-themes/pink-bluegrey.css +1 -1
  360. package/prebuilt-themes/purple-green.css +1 -1
  361. package/radio/index.metadata.json +1 -1
  362. package/schematics/migration.json +5 -0
  363. package/schematics/ng-add/index.js +2 -2
  364. package/schematics/ng-update/index.d.ts +2 -0
  365. package/schematics/ng-update/index.js +7 -2
  366. package/select/index.metadata.json +1 -1
  367. package/sort/index.metadata.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["src/material/material-datepicker-testing.umd.js"],"names":["global","factory","exports","module","require","define","amd","self","ng","material","datepicker","testing","cdk","coercion","this","extendStatics","d","b","Object","setPrototypeOf","__proto__","Array","p","hasOwnProperty","__extends","__","constructor","prototype","create","__awaiter","thisArg","_arguments","P","generator","Promise","resolve","reject","fulfilled","value","step","next","e","rejected","result","done","adopt","then","apply","__generator","body","f","y","t","g","_","label","sent","trys","ops","verb","throw","return","Symbol","iterator","n","v","op","TypeError","call","pop","length","push","__read","o","m","r","i","ar","error","__spread","arguments","concat","getInputPredicate","type","options","HarnessPredicate","addOption","harness","stringMatches","getValue","placeholder","getPlaceholder","MatDatepickerInputHarnessBase","_super","isDisabled","_a","host","getProperty","isRequired","setValue","newValue","inputEl","clear","sendKeys","dispatchEvent","focus","blur","isFocused","getMin","getAttribute","getMax","ComponentHarness","MatCalendarCellHarness","_this","_content","locatorFor","with","text","getText","selected","isSelected","active","isActive","disabled","today","isToday","inRange","isInRange","inComparisonRange","isInComparisonRange","inPreviewRange","isInPreviewRange","getAriaLabel","_hasState","hasClass","select","click","hover","mouseAway","isRangeStart","isRangeEnd","isComparisonRangeStart","isComparisonRangeEnd","isPreviewRangeStart","isPreviewRangeEnd","name","hostSelector","MatCalendarHarness","_periodButton","getCells","filter","locatorForAll","getCurrentView","locatorForOptional","getCurrentViewLabel","changeView","previous","selectCell","cells","Error","JSON","stringify","DatepickerTriggerHarnessBase","openCalendar","hasCalendar","_b","all","_openCalendar","closeCalendar","isCalendarOpen","getCalendarId","documentRootLocatorFactory","forceStabilize","getCalendar","calendarId","documentLocator","backdropSelector","assign","selector","MatDatepickerInputHarness","alt","TestKey","DOWN_ARROW","MatDatepickerToggleHarness","_button","button","coerceBooleanProperty","MatStartDateHarness","MatEndDateHarness","MatDateRangeInputHarness","end","separator","getStartInput","input","getEndInput","getSeparator","endDisabled","defineProperty"],"mappings":"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","sourcesContent":["(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/cdk/testing'), require('@angular/cdk/coercion')) :\n typeof define === 'function' && define.amd ? define('@angular/material/datepicker/testing', ['exports', '@angular/cdk/testing', '@angular/cdk/coercion'], factory) :\n (global = global || self, factory((global.ng = global.ng || {}, global.ng.material = global.ng.material || {}, global.ng.material.datepicker = global.ng.material.datepicker || {}, global.ng.material.datepicker.testing = {}), global.ng.cdk.testing, global.ng.cdk.coercion));\n}(this, (function (exports, testing, coercion) { 'use strict';\n\n /*! *****************************************************************************\n Copyright (c) Microsoft Corporation.\n\n Permission to use, copy, modify, and/or distribute this software for any\n purpose with or without fee is hereby granted.\n\n THE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\n REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\n AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\n INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\n LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\n OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\n PERFORMANCE OF THIS SOFTWARE.\n ***************************************************************************** */\n /* global Reflect, Promise */\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b)\n if (b.hasOwnProperty(p))\n d[p] = b[p]; };\n return extendStatics(d, b);\n };\n function __extends(d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n }\n var __assign = function () {\n __assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s)\n if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n };\n function __rest(s, e) {\n var t = {};\n for (var p in s)\n if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n }\n function __decorate(decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\")\n r = Reflect.decorate(decorators, target, key, desc);\n else\n for (var i = decorators.length - 1; i >= 0; i--)\n if (d = decorators[i])\n r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n }\n function __param(paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); };\n }\n function __metadata(metadataKey, metadataValue) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\")\n return Reflect.metadata(metadataKey, metadataValue);\n }\n function __awaiter(thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try {\n step(generator.next(value));\n }\n catch (e) {\n reject(e);\n } }\n function rejected(value) { try {\n step(generator[\"throw\"](value));\n }\n catch (e) {\n reject(e);\n } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n }\n function __generator(thisArg, body) {\n var _ = { label: 0, sent: function () { if (t[0] & 1)\n throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function () { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f)\n throw new TypeError(\"Generator is already executing.\");\n while (_)\n try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done)\n return t;\n if (y = 0, t)\n op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0:\n case 1:\n t = op;\n break;\n case 4:\n _.label++;\n return { value: op[1], done: false };\n case 5:\n _.label++;\n y = op[1];\n op = [0];\n continue;\n case 7:\n op = _.ops.pop();\n _.trys.pop();\n continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {\n _ = 0;\n continue;\n }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) {\n _.label = op[1];\n break;\n }\n if (op[0] === 6 && _.label < t[1]) {\n _.label = t[1];\n t = op;\n break;\n }\n if (t && _.label < t[2]) {\n _.label = t[2];\n _.ops.push(op);\n break;\n }\n if (t[2])\n _.ops.pop();\n _.trys.pop();\n continue;\n }\n op = body.call(thisArg, _);\n }\n catch (e) {\n op = [6, e];\n y = 0;\n }\n finally {\n f = t = 0;\n }\n if (op[0] & 5)\n throw op[1];\n return { value: op[0] ? op[1] : void 0, done: true };\n }\n }\n var __createBinding = Object.create ? (function (o, m, k, k2) {\n if (k2 === undefined)\n k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function () { return m[k]; } });\n }) : (function (o, m, k, k2) {\n if (k2 === undefined)\n k2 = k;\n o[k2] = m[k];\n });\n function __exportStar(m, exports) {\n for (var p in m)\n if (p !== \"default\" && !exports.hasOwnProperty(p))\n __createBinding(exports, m, p);\n }\n function __values(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m)\n return m.call(o);\n if (o && typeof o.length === \"number\")\n return {\n next: function () {\n if (o && i >= o.length)\n o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n }\n function __read(o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m)\n return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done)\n ar.push(r.value);\n }\n catch (error) {\n e = { error: error };\n }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"]))\n m.call(i);\n }\n finally {\n if (e)\n throw e.error;\n }\n }\n return ar;\n }\n function __spread() {\n for (var ar = [], i = 0; i < arguments.length; i++)\n ar = ar.concat(__read(arguments[i]));\n return ar;\n }\n function __spreadArrays() {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++)\n s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n }\n ;\n function __await(v) {\n return this instanceof __await ? (this.v = v, this) : new __await(v);\n }\n function __asyncGenerator(thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator)\n throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\n function verb(n) { if (g[n])\n i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\n function resume(n, v) { try {\n step(g[n](v));\n }\n catch (e) {\n settle(q[0][3], e);\n } }\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\n function fulfill(value) { resume(\"next\", value); }\n function reject(value) { resume(\"throw\", value); }\n function settle(f, v) { if (f(v), q.shift(), q.length)\n resume(q[0][0], q[0][1]); }\n }\n function __asyncDelegator(o) {\n var i, p;\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\n }\n function __asyncValues(o) {\n if (!Symbol.asyncIterator)\n throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator], i;\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function (v) { resolve({ value: v, done: d }); }, reject); }\n }\n function __makeTemplateObject(cooked, raw) {\n if (Object.defineProperty) {\n Object.defineProperty(cooked, \"raw\", { value: raw });\n }\n else {\n cooked.raw = raw;\n }\n return cooked;\n }\n ;\n var __setModuleDefault = Object.create ? (function (o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n }) : function (o, v) {\n o[\"default\"] = v;\n };\n function __importStar(mod) {\n if (mod && mod.__esModule)\n return mod;\n var result = {};\n if (mod != null)\n for (var k in mod)\n if (Object.hasOwnProperty.call(mod, k))\n __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n }\n function __importDefault(mod) {\n return (mod && mod.__esModule) ? mod : { default: mod };\n }\n function __classPrivateFieldGet(receiver, privateMap) {\n if (!privateMap.has(receiver)) {\n throw new TypeError(\"attempted to get private field on non-instance\");\n }\n return privateMap.get(receiver);\n }\n function __classPrivateFieldSet(receiver, privateMap, value) {\n if (!privateMap.has(receiver)) {\n throw new TypeError(\"attempted to set private field on non-instance\");\n }\n privateMap.set(receiver, value);\n return value;\n }\n\n /** Sets up the filter predicates for a datepicker input harness. */\n function getInputPredicate(type, options) {\n return new testing.HarnessPredicate(type, options)\n .addOption('value', options.value, function (harness, value) {\n return testing.HarnessPredicate.stringMatches(harness.getValue(), value);\n })\n .addOption('placeholder', options.placeholder, function (harness, placeholder) {\n return testing.HarnessPredicate.stringMatches(harness.getPlaceholder(), placeholder);\n });\n }\n /** Base class for datepicker input harnesses. */\n var MatDatepickerInputHarnessBase = /** @class */ (function (_super) {\n __extends(MatDatepickerInputHarnessBase, _super);\n function MatDatepickerInputHarnessBase() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /** Whether the input is disabled. */\n MatDatepickerInputHarnessBase.prototype.isDisabled = function () {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this.host()];\n case 1: return [2 /*return*/, (_a.sent()).getProperty('disabled')];\n }\n });\n });\n };\n /** Whether the input is required. */\n MatDatepickerInputHarnessBase.prototype.isRequired = function () {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this.host()];\n case 1: return [2 /*return*/, (_a.sent()).getProperty('required')];\n }\n });\n });\n };\n /** Gets the value of the input. */\n MatDatepickerInputHarnessBase.prototype.getValue = function () {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this.host()];\n case 1: return [4 /*yield*/, (_a.sent()).getProperty('value')];\n case 2: \n // The \"value\" property of the native input is always defined.\n return [2 /*return*/, (_a.sent())];\n }\n });\n });\n };\n /**\n * Sets the value of the input. The value will be set by simulating\n * keypresses that correspond to the given value.\n */\n MatDatepickerInputHarnessBase.prototype.setValue = function (newValue) {\n return __awaiter(this, void 0, void 0, function () {\n var inputEl;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this.host()];\n case 1:\n inputEl = _a.sent();\n return [4 /*yield*/, inputEl.clear()];\n case 2:\n _a.sent();\n if (!newValue) return [3 /*break*/, 4];\n return [4 /*yield*/, inputEl.sendKeys(newValue)];\n case 3:\n _a.sent();\n _a.label = 4;\n case 4:\n if (!inputEl.dispatchEvent) return [3 /*break*/, 6];\n return [4 /*yield*/, inputEl.dispatchEvent('change')];\n case 5:\n _a.sent();\n _a.label = 6;\n case 6: return [2 /*return*/];\n }\n });\n });\n };\n /** Gets the placeholder of the input. */\n MatDatepickerInputHarnessBase.prototype.getPlaceholder = function () {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this.host()];\n case 1: return [4 /*yield*/, (_a.sent()).getProperty('placeholder')];\n case 2: return [2 /*return*/, (_a.sent())];\n }\n });\n });\n };\n /**\n * Focuses the input and returns a promise that indicates when the\n * action is complete.\n */\n MatDatepickerInputHarnessBase.prototype.focus = function () {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this.host()];\n case 1: return [2 /*return*/, (_a.sent()).focus()];\n }\n });\n });\n };\n /**\n * Blurs the input and returns a promise that indicates when the\n * action is complete.\n */\n MatDatepickerInputHarnessBase.prototype.blur = function () {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this.host()];\n case 1: return [2 /*return*/, (_a.sent()).blur()];\n }\n });\n });\n };\n /** Whether the input is focused. */\n MatDatepickerInputHarnessBase.prototype.isFocused = function () {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this.host()];\n case 1: return [2 /*return*/, (_a.sent()).isFocused()];\n }\n });\n });\n };\n /** Gets the formatted minimum date for the input's value. */\n MatDatepickerInputHarnessBase.prototype.getMin = function () {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this.host()];\n case 1: return [2 /*return*/, (_a.sent()).getAttribute('min')];\n }\n });\n });\n };\n /** Gets the formatted maximum date for the input's value. */\n MatDatepickerInputHarnessBase.prototype.getMax = function () {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this.host()];\n case 1: return [2 /*return*/, (_a.sent()).getAttribute('max')];\n }\n });\n });\n };\n return MatDatepickerInputHarnessBase;\n }(testing.ComponentHarness));\n\n /** Harness for interacting with a standard Material calendar cell in tests. */\n var MatCalendarCellHarness = /** @class */ (function (_super) {\n __extends(MatCalendarCellHarness, _super);\n function MatCalendarCellHarness() {\n var _this = _super.apply(this, __spread(arguments)) || this;\n /** Reference to the inner content element inside the cell. */\n _this._content = _this.locatorFor('.mat-calendar-body-cell-content');\n return _this;\n }\n /**\n * Gets a `HarnessPredicate` that can be used to search for a `MatCalendarCellHarness`\n * that meets certain criteria.\n * @param options Options for filtering which cell instances are considered a match.\n * @return a `HarnessPredicate` configured with the given options.\n */\n MatCalendarCellHarness.with = function (options) {\n var _this = this;\n if (options === void 0) { options = {}; }\n return new testing.HarnessPredicate(MatCalendarCellHarness, options)\n .addOption('text', options.text, function (harness, text) {\n return testing.HarnessPredicate.stringMatches(harness.getText(), text);\n })\n .addOption('selected', options.selected, function (harness, selected) { return __awaiter(_this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, harness.isSelected()];\n case 1: return [2 /*return*/, (_a.sent()) === selected];\n }\n });\n }); })\n .addOption('active', options.active, function (harness, active) { return __awaiter(_this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, harness.isActive()];\n case 1: return [2 /*return*/, (_a.sent()) === active];\n }\n });\n }); })\n .addOption('disabled', options.disabled, function (harness, disabled) { return __awaiter(_this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, harness.isDisabled()];\n case 1: return [2 /*return*/, (_a.sent()) === disabled];\n }\n });\n }); })\n .addOption('today', options.today, function (harness, today) { return __awaiter(_this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, harness.isToday()];\n case 1: return [2 /*return*/, (_a.sent()) === today];\n }\n });\n }); })\n .addOption('inRange', options.inRange, function (harness, inRange) { return __awaiter(_this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, harness.isInRange()];\n case 1: return [2 /*return*/, (_a.sent()) === inRange];\n }\n });\n }); })\n .addOption('inComparisonRange', options.inComparisonRange, function (harness, inComparisonRange) { return __awaiter(_this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, harness.isInComparisonRange()];\n case 1: return [2 /*return*/, (_a.sent()) === inComparisonRange];\n }\n });\n }); })\n .addOption('inPreviewRange', options.inPreviewRange, function (harness, inPreviewRange) { return __awaiter(_this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, harness.isInPreviewRange()];\n case 1: return [2 /*return*/, (_a.sent()) === inPreviewRange];\n }\n });\n }); });\n };\n /** Gets the text of the calendar cell. */\n MatCalendarCellHarness.prototype.getText = function () {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this._content()];\n case 1: return [2 /*return*/, (_a.sent()).text()];\n }\n });\n });\n };\n /** Gets the aria-label of the calendar cell. */\n MatCalendarCellHarness.prototype.getAriaLabel = function () {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this.host()];\n case 1: \n // We're guaranteed for the `aria-label` to be defined\n // since this is a private element that we control.\n return [2 /*return*/, (_a.sent()).getAttribute('aria-label')];\n }\n });\n });\n };\n /** Whether the cell is selected. */\n MatCalendarCellHarness.prototype.isSelected = function () {\n return __awaiter(this, void 0, void 0, function () {\n var host;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this.host()];\n case 1:\n host = _a.sent();\n return [4 /*yield*/, host.getAttribute('aria-selected')];\n case 2: return [2 /*return*/, (_a.sent()) === 'true'];\n }\n });\n });\n };\n /** Whether the cell is disabled. */\n MatCalendarCellHarness.prototype.isDisabled = function () {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n return [2 /*return*/, this._hasState('disabled')];\n });\n });\n };\n /** Whether the cell is currently activated using keyboard navigation. */\n MatCalendarCellHarness.prototype.isActive = function () {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n return [2 /*return*/, this._hasState('active')];\n });\n });\n };\n /** Whether the cell represents today's date. */\n MatCalendarCellHarness.prototype.isToday = function () {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this._content()];\n case 1: return [2 /*return*/, (_a.sent()).hasClass('mat-calendar-body-today')];\n }\n });\n });\n };\n /** Selects the calendar cell. Won't do anything if the cell is disabled. */\n MatCalendarCellHarness.prototype.select = function () {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this.host()];\n case 1: return [2 /*return*/, (_a.sent()).click()];\n }\n });\n });\n };\n /** Hovers over the calendar cell. */\n MatCalendarCellHarness.prototype.hover = function () {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this.host()];\n case 1: return [2 /*return*/, (_a.sent()).hover()];\n }\n });\n });\n };\n /** Moves the mouse away from the calendar cell. */\n MatCalendarCellHarness.prototype.mouseAway = function () {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this.host()];\n case 1: return [2 /*return*/, (_a.sent()).mouseAway()];\n }\n });\n });\n };\n /** Focuses the calendar cell. */\n MatCalendarCellHarness.prototype.focus = function () {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this.host()];\n case 1: return [2 /*return*/, (_a.sent()).focus()];\n }\n });\n });\n };\n /** Removes focus from the calendar cell. */\n MatCalendarCellHarness.prototype.blur = function () {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this.host()];\n case 1: return [2 /*return*/, (_a.sent()).blur()];\n }\n });\n });\n };\n /** Whether the cell is the start of the main range. */\n MatCalendarCellHarness.prototype.isRangeStart = function () {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n return [2 /*return*/, this._hasState('range-start')];\n });\n });\n };\n /** Whether the cell is the end of the main range. */\n MatCalendarCellHarness.prototype.isRangeEnd = function () {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n return [2 /*return*/, this._hasState('range-end')];\n });\n });\n };\n /** Whether the cell is part of the main range. */\n MatCalendarCellHarness.prototype.isInRange = function () {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n return [2 /*return*/, this._hasState('in-range')];\n });\n });\n };\n /** Whether the cell is the start of the comparison range. */\n MatCalendarCellHarness.prototype.isComparisonRangeStart = function () {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n return [2 /*return*/, this._hasState('comparison-start')];\n });\n });\n };\n /** Whether the cell is the end of the comparison range. */\n MatCalendarCellHarness.prototype.isComparisonRangeEnd = function () {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n return [2 /*return*/, this._hasState('comparison-end')];\n });\n });\n };\n /** Whether the cell is inside of the comparison range. */\n MatCalendarCellHarness.prototype.isInComparisonRange = function () {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n return [2 /*return*/, this._hasState('in-comparison-range')];\n });\n });\n };\n /** Whether the cell is the start of the preview range. */\n MatCalendarCellHarness.prototype.isPreviewRangeStart = function () {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n return [2 /*return*/, this._hasState('preview-start')];\n });\n });\n };\n /** Whether the cell is the end of the preview range. */\n MatCalendarCellHarness.prototype.isPreviewRangeEnd = function () {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n return [2 /*return*/, this._hasState('preview-end')];\n });\n });\n };\n /** Whether the cell is inside of the preview range. */\n MatCalendarCellHarness.prototype.isInPreviewRange = function () {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n return [2 /*return*/, this._hasState('in-preview')];\n });\n });\n };\n /** Returns whether the cell has a particular CSS class-based state. */\n MatCalendarCellHarness.prototype._hasState = function (name) {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this.host()];\n case 1: return [2 /*return*/, (_a.sent()).hasClass(\"mat-calendar-body-\" + name)];\n }\n });\n });\n };\n return MatCalendarCellHarness;\n }(testing.ComponentHarness));\n MatCalendarCellHarness.hostSelector = '.mat-calendar-body-cell';\n\n /** Harness for interacting with a standard Material calendar in tests. */\n var MatCalendarHarness = /** @class */ (function (_super) {\n __extends(MatCalendarHarness, _super);\n function MatCalendarHarness() {\n var _this = _super.apply(this, __spread(arguments)) || this;\n /** Queries for the calendar's period toggle button. */\n _this._periodButton = _this.locatorFor('.mat-calendar-period-button');\n return _this;\n }\n /**\n * Gets a `HarnessPredicate` that can be used to search for a `MatCalendarHarness`\n * that meets certain criteria.\n * @param options Options for filtering which calendar instances are considered a match.\n * @return a `HarnessPredicate` configured with the given options.\n */\n MatCalendarHarness.with = function (options) {\n if (options === void 0) { options = {}; }\n return new testing.HarnessPredicate(MatCalendarHarness, options);\n };\n /**\n * Gets a list of cells inside the calendar.\n * @param filter Optionally filters which cells are included.\n */\n MatCalendarHarness.prototype.getCells = function (filter) {\n if (filter === void 0) { filter = {}; }\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n return [2 /*return*/, this.locatorForAll(MatCalendarCellHarness.with(filter))()];\n });\n });\n };\n /** Gets the current view that is being shown inside the calendar. */\n MatCalendarHarness.prototype.getCurrentView = function () {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this.locatorForOptional('mat-multi-year-view')()];\n case 1:\n if (_a.sent()) {\n return [2 /*return*/, 2 /* MULTI_YEAR */];\n }\n return [4 /*yield*/, this.locatorForOptional('mat-year-view')()];\n case 2:\n if (_a.sent()) {\n return [2 /*return*/, 1 /* YEAR */];\n }\n return [2 /*return*/, 0 /* MONTH */];\n }\n });\n });\n };\n /** Gets the label of the current calendar view. */\n MatCalendarHarness.prototype.getCurrentViewLabel = function () {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this._periodButton()];\n case 1: return [2 /*return*/, (_a.sent()).text()];\n }\n });\n });\n };\n /** Changes the calendar view by clicking on the view toggle button. */\n MatCalendarHarness.prototype.changeView = function () {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this._periodButton()];\n case 1: return [2 /*return*/, (_a.sent()).click()];\n }\n });\n });\n };\n /** Goes to the next page of the current view (e.g. next month when inside the month view). */\n MatCalendarHarness.prototype.next = function () {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this.locatorFor('.mat-calendar-next-button')()];\n case 1: return [2 /*return*/, (_a.sent()).click()];\n }\n });\n });\n };\n /**\n * Goes to the previous page of the current view\n * (e.g. previous month when inside the month view).\n */\n MatCalendarHarness.prototype.previous = function () {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this.locatorFor('.mat-calendar-previous-button')()];\n case 1: return [2 /*return*/, (_a.sent()).click()];\n }\n });\n });\n };\n /**\n * Selects a cell in the current calendar view.\n * @param filter An optional filter to apply to the cells. The first cell matching the filter\n * will be selected.\n */\n MatCalendarHarness.prototype.selectCell = function (filter) {\n if (filter === void 0) { filter = {}; }\n return __awaiter(this, void 0, void 0, function () {\n var cells;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this.getCells(filter)];\n case 1:\n cells = _a.sent();\n if (!cells.length) {\n throw Error(\"Cannot find calendar cell matching filter \" + JSON.stringify(filter));\n }\n return [4 /*yield*/, cells[0].select()];\n case 2:\n _a.sent();\n return [2 /*return*/];\n }\n });\n });\n };\n return MatCalendarHarness;\n }(testing.ComponentHarness));\n MatCalendarHarness.hostSelector = '.mat-calendar';\n\n /** Base class for harnesses that can trigger a calendar. */\n var DatepickerTriggerHarnessBase = /** @class */ (function (_super) {\n __extends(DatepickerTriggerHarnessBase, _super);\n function DatepickerTriggerHarnessBase() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /** Opens the calendar if the trigger is enabled and it has a calendar. */\n DatepickerTriggerHarnessBase.prototype.openCalendar = function () {\n return __awaiter(this, void 0, void 0, function () {\n var _a, isDisabled, hasCalendar;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0: return [4 /*yield*/, Promise.all([this.isDisabled(), this.hasCalendar()])];\n case 1:\n _a = __read.apply(void 0, [_b.sent(), 2]), isDisabled = _a[0], hasCalendar = _a[1];\n if (!isDisabled && hasCalendar) {\n return [2 /*return*/, this._openCalendar()];\n }\n return [2 /*return*/];\n }\n });\n });\n };\n /** Closes the calendar if it is open. */\n DatepickerTriggerHarnessBase.prototype.closeCalendar = function () {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this.isCalendarOpen()];\n case 1:\n if (!_a.sent()) return [3 /*break*/, 4];\n return [4 /*yield*/, closeCalendar(getCalendarId(this.host()), this.documentRootLocatorFactory())];\n case 2:\n _a.sent();\n // This is necessary so that we wait for the closing animation to finish in touch UI mode.\n return [4 /*yield*/, this.forceStabilize()];\n case 3:\n // This is necessary so that we wait for the closing animation to finish in touch UI mode.\n _a.sent();\n _a.label = 4;\n case 4: return [2 /*return*/];\n }\n });\n });\n };\n /** Gets whether there is a calendar associated with the trigger. */\n DatepickerTriggerHarnessBase.prototype.hasCalendar = function () {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, getCalendarId(this.host())];\n case 1: return [2 /*return*/, (_a.sent()) != null];\n }\n });\n });\n };\n /**\n * Gets the `MatCalendarHarness` that is associated with the trigger.\n * @param filter Optionally filters which calendar is included.\n */\n DatepickerTriggerHarnessBase.prototype.getCalendar = function (filter) {\n if (filter === void 0) { filter = {}; }\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n return [2 /*return*/, getCalendar(filter, this.host(), this.documentRootLocatorFactory())];\n });\n });\n };\n return DatepickerTriggerHarnessBase;\n }(testing.ComponentHarness));\n /** Gets the ID of the calendar that a particular test element can trigger. */\n function getCalendarId(host) {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, host];\n case 1: return [2 /*return*/, (_a.sent()).getAttribute('data-mat-calendar')];\n }\n });\n });\n }\n /** Closes the calendar with a specific ID. */\n function closeCalendar(calendarId, documentLocator) {\n return __awaiter(this, void 0, void 0, function () {\n var backdropSelector, _a;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n _a = \".\";\n return [4 /*yield*/, calendarId];\n case 1:\n backdropSelector = _a + (_b.sent()) + \"-backdrop\";\n return [4 /*yield*/, documentLocator.locatorFor(backdropSelector)()];\n case 2: return [2 /*return*/, (_b.sent()).click()];\n }\n });\n });\n }\n /** Gets the test harness for a calendar associated with a particular host. */\n function getCalendar(filter, host, documentLocator) {\n return __awaiter(this, void 0, void 0, function () {\n var calendarId;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, getCalendarId(host)];\n case 1:\n calendarId = _a.sent();\n if (!calendarId) {\n throw Error(\"Element is not associated with a calendar\");\n }\n return [2 /*return*/, documentLocator.locatorFor(MatCalendarHarness.with(Object.assign(Object.assign({}, filter), { selector: \"#\" + calendarId })))()];\n }\n });\n });\n }\n\n /** Harness for interacting with a standard Material datepicker inputs in tests. */\n var MatDatepickerInputHarness = /** @class */ (function (_super) {\n __extends(MatDatepickerInputHarness, _super);\n function MatDatepickerInputHarness() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * Gets a `HarnessPredicate` that can be used to search for a `MatDatepickerInputHarness`\n * that meets certain criteria.\n * @param options Options for filtering which input instances are considered a match.\n * @return a `HarnessPredicate` configured with the given options.\n */\n MatDatepickerInputHarness.with = function (options) {\n if (options === void 0) { options = {}; }\n return getInputPredicate(MatDatepickerInputHarness, options);\n };\n /** Gets whether the calendar associated with the input is open. */\n MatDatepickerInputHarness.prototype.isCalendarOpen = function () {\n return __awaiter(this, void 0, void 0, function () {\n var host;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this.host()];\n case 1:\n host = _a.sent();\n return [4 /*yield*/, host.getAttribute('aria-owns')];\n case 2: return [2 /*return*/, (_a.sent()) != null];\n }\n });\n });\n };\n /** Opens the calendar associated with the input. */\n MatDatepickerInputHarness.prototype.openCalendar = function () {\n return __awaiter(this, void 0, void 0, function () {\n var _a, isDisabled, hasCalendar, host;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0: return [4 /*yield*/, Promise.all([this.isDisabled(), this.hasCalendar()])];\n case 1:\n _a = __read.apply(void 0, [_b.sent(), 2]), isDisabled = _a[0], hasCalendar = _a[1];\n if (!(!isDisabled && hasCalendar)) return [3 /*break*/, 3];\n return [4 /*yield*/, this.host()];\n case 2:\n host = _b.sent();\n return [2 /*return*/, host.sendKeys({ alt: true }, testing.TestKey.DOWN_ARROW)];\n case 3: return [2 /*return*/];\n }\n });\n });\n };\n /** Closes the calendar associated with the input. */\n MatDatepickerInputHarness.prototype.closeCalendar = function () {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this.isCalendarOpen()];\n case 1:\n if (!_a.sent()) return [3 /*break*/, 4];\n return [4 /*yield*/, closeCalendar(getCalendarId(this.host()), this.documentRootLocatorFactory())];\n case 2:\n _a.sent();\n // This is necessary so that we wait for the closing animation to finish in touch UI mode.\n return [4 /*yield*/, this.forceStabilize()];\n case 3:\n // This is necessary so that we wait for the closing animation to finish in touch UI mode.\n _a.sent();\n _a.label = 4;\n case 4: return [2 /*return*/];\n }\n });\n });\n };\n /** Whether a calendar is associated with the input. */\n MatDatepickerInputHarness.prototype.hasCalendar = function () {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, getCalendarId(this.host())];\n case 1: return [2 /*return*/, (_a.sent()) != null];\n }\n });\n });\n };\n /**\n * Gets the `MatCalendarHarness` that is associated with the trigger.\n * @param filter Optionally filters which calendar is included.\n */\n MatDatepickerInputHarness.prototype.getCalendar = function (filter) {\n if (filter === void 0) { filter = {}; }\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n return [2 /*return*/, getCalendar(filter, this.host(), this.documentRootLocatorFactory())];\n });\n });\n };\n return MatDatepickerInputHarness;\n }(MatDatepickerInputHarnessBase));\n MatDatepickerInputHarness.hostSelector = '.mat-datepicker-input';\n\n /** Harness for interacting with a standard Material datepicker toggle in tests. */\n var MatDatepickerToggleHarness = /** @class */ (function (_super) {\n __extends(MatDatepickerToggleHarness, _super);\n function MatDatepickerToggleHarness() {\n var _this = _super.apply(this, __spread(arguments)) || this;\n /** The clickable button inside the toggle. */\n _this._button = _this.locatorFor('button');\n return _this;\n }\n /**\n * Gets a `HarnessPredicate` that can be used to search for a `MatDatepickerToggleHarness` that\n * meets certain criteria.\n * @param options Options for filtering which datepicker toggle instances are considered a match.\n * @return a `HarnessPredicate` configured with the given options.\n */\n MatDatepickerToggleHarness.with = function (options) {\n if (options === void 0) { options = {}; }\n return new testing.HarnessPredicate(MatDatepickerToggleHarness, options);\n };\n /** Gets whether the calendar associated with the toggle is open. */\n MatDatepickerToggleHarness.prototype.isCalendarOpen = function () {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this.host()];\n case 1: return [2 /*return*/, (_a.sent()).hasClass('mat-datepicker-toggle-active')];\n }\n });\n });\n };\n /** Whether the toggle is disabled. */\n MatDatepickerToggleHarness.prototype.isDisabled = function () {\n return __awaiter(this, void 0, void 0, function () {\n var button, _a;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0: return [4 /*yield*/, this._button()];\n case 1:\n button = _b.sent();\n _a = coercion.coerceBooleanProperty;\n return [4 /*yield*/, button.getAttribute('disabled')];\n case 2: return [2 /*return*/, _a.apply(void 0, [_b.sent()])];\n }\n });\n });\n };\n MatDatepickerToggleHarness.prototype._openCalendar = function () {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this._button()];\n case 1: return [2 /*return*/, (_a.sent()).click()];\n }\n });\n });\n };\n return MatDatepickerToggleHarness;\n }(DatepickerTriggerHarnessBase));\n MatDatepickerToggleHarness.hostSelector = '.mat-datepicker-toggle';\n\n /** Harness for interacting with a standard Material date range start input in tests. */\n var MatStartDateHarness = /** @class */ (function (_super) {\n __extends(MatStartDateHarness, _super);\n function MatStartDateHarness() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * Gets a `HarnessPredicate` that can be used to search for a `MatStartDateHarness`\n * that meets certain criteria.\n * @param options Options for filtering which input instances are considered a match.\n * @return a `HarnessPredicate` configured with the given options.\n */\n MatStartDateHarness.with = function (options) {\n if (options === void 0) { options = {}; }\n return getInputPredicate(MatStartDateHarness, options);\n };\n return MatStartDateHarness;\n }(MatDatepickerInputHarnessBase));\n MatStartDateHarness.hostSelector = '.mat-start-date';\n /** Harness for interacting with a standard Material date range end input in tests. */\n var MatEndDateHarness = /** @class */ (function (_super) {\n __extends(MatEndDateHarness, _super);\n function MatEndDateHarness() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * Gets a `HarnessPredicate` that can be used to search for a `MatEndDateHarness`\n * that meets certain criteria.\n * @param options Options for filtering which input instances are considered a match.\n * @return a `HarnessPredicate` configured with the given options.\n */\n MatEndDateHarness.with = function (options) {\n if (options === void 0) { options = {}; }\n return getInputPredicate(MatEndDateHarness, options);\n };\n return MatEndDateHarness;\n }(MatDatepickerInputHarnessBase));\n MatEndDateHarness.hostSelector = '.mat-end-date';\n /** Harness for interacting with a standard Material date range input in tests. */\n var MatDateRangeInputHarness = /** @class */ (function (_super) {\n __extends(MatDateRangeInputHarness, _super);\n function MatDateRangeInputHarness() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * Gets a `HarnessPredicate` that can be used to search for a `MatDateRangeInputHarness`\n * that meets certain criteria.\n * @param options Options for filtering which input instances are considered a match.\n * @return a `HarnessPredicate` configured with the given options.\n */\n MatDateRangeInputHarness.with = function (options) {\n if (options === void 0) { options = {}; }\n return new testing.HarnessPredicate(MatDateRangeInputHarness, options)\n .addOption('value', options.value, function (harness, value) { return testing.HarnessPredicate.stringMatches(harness.getValue(), value); });\n };\n /** Gets the combined value of the start and end inputs, including the separator. */\n MatDateRangeInputHarness.prototype.getValue = function () {\n return __awaiter(this, void 0, void 0, function () {\n var _a, start, end, separator;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0: return [4 /*yield*/, Promise.all([\n this.getStartInput().then(function (input) { return input.getValue(); }),\n this.getEndInput().then(function (input) { return input.getValue(); }),\n this.getSeparator()\n ])];\n case 1:\n _a = __read.apply(void 0, [_b.sent(), 3]), start = _a[0], end = _a[1], separator = _a[2];\n return [2 /*return*/, start + (\"\" + (end ? \" \" + separator + \" \" + end : ''))];\n }\n });\n });\n };\n /** Gets the inner start date input inside the range input. */\n MatDateRangeInputHarness.prototype.getStartInput = function () {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n // Don't pass in filters here since the start input is required and there can only be one.\n return [2 /*return*/, this.locatorFor(MatStartDateHarness)()];\n });\n });\n };\n /** Gets the inner start date input inside the range input. */\n MatDateRangeInputHarness.prototype.getEndInput = function () {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n // Don't pass in filters here since the end input is required and there can only be one.\n return [2 /*return*/, this.locatorFor(MatEndDateHarness)()];\n });\n });\n };\n /** Gets the separator text between the values of the two inputs. */\n MatDateRangeInputHarness.prototype.getSeparator = function () {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this.locatorFor('.mat-date-range-input-separator')()];\n case 1: return [2 /*return*/, (_a.sent()).text()];\n }\n });\n });\n };\n /** Gets whether the range input is disabled. */\n MatDateRangeInputHarness.prototype.isDisabled = function () {\n return __awaiter(this, void 0, void 0, function () {\n var _a, startDisabled, endDisabled;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0: return [4 /*yield*/, Promise.all([\n this.getStartInput().then(function (input) { return input.isDisabled(); }),\n this.getEndInput().then(function (input) { return input.isDisabled(); })\n ])];\n case 1:\n _a = __read.apply(void 0, [_b.sent(), 2]), startDisabled = _a[0], endDisabled = _a[1];\n return [2 /*return*/, startDisabled && endDisabled];\n }\n });\n });\n };\n /** Gets whether the range input is required. */\n MatDateRangeInputHarness.prototype.isRequired = function () {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this.host()];\n case 1: return [2 /*return*/, (_a.sent()).hasClass('mat-date-range-input-required')];\n }\n });\n });\n };\n /** Opens the calendar associated with the input. */\n MatDateRangeInputHarness.prototype.isCalendarOpen = function () {\n return __awaiter(this, void 0, void 0, function () {\n var startHost;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this.getStartInput()];\n case 1: return [4 /*yield*/, (_a.sent()).host()];\n case 2:\n startHost = _a.sent();\n return [4 /*yield*/, startHost.getAttribute('aria-owns')];\n case 3: return [2 /*return*/, (_a.sent()) != null];\n }\n });\n });\n };\n MatDateRangeInputHarness.prototype._openCalendar = function () {\n return __awaiter(this, void 0, void 0, function () {\n var startHost;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this.getStartInput()];\n case 1: return [4 /*yield*/, (_a.sent()).host()];\n case 2:\n startHost = _a.sent();\n return [2 /*return*/, startHost.sendKeys({ alt: true }, testing.TestKey.DOWN_ARROW)];\n }\n });\n });\n };\n return MatDateRangeInputHarness;\n }(DatepickerTriggerHarnessBase));\n MatDateRangeInputHarness.hostSelector = '.mat-date-range-input';\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.io/license\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.io/license\n */\n\n exports.MatCalendarCellHarness = MatCalendarCellHarness;\n exports.MatCalendarHarness = MatCalendarHarness;\n exports.MatDateRangeInputHarness = MatDateRangeInputHarness;\n exports.MatDatepickerInputHarness = MatDatepickerInputHarness;\n exports.MatDatepickerToggleHarness = MatDatepickerToggleHarness;\n exports.MatEndDateHarness = MatEndDateHarness;\n exports.MatStartDateHarness = MatStartDateHarness;\n\n Object.defineProperty(exports, '__esModule', { value: true });\n\n})));\n//# sourceMappingURL=material-datepicker-testing.umd.js.map\n"]}
1
+ {"version":3,"sources":["src/material/material-datepicker-testing.umd.js"],"names":["global","factory","exports","module","require","define","amd","self","ng","material","datepicker","testing","cdk","coercion","this","extendStatics","d","b","Object","setPrototypeOf","__proto__","Array","p","prototype","hasOwnProperty","call","__extends","__","constructor","create","__awaiter","thisArg","_arguments","P","generator","Promise","resolve","reject","fulfilled","value","step","next","e","rejected","result","done","adopt","then","apply","__generator","body","f","y","t","g","_","label","sent","trys","ops","verb","throw","return","Symbol","iterator","n","v","op","TypeError","pop","length","push","__read","o","m","r","i","ar","error","__spread","arguments","concat","getInputPredicate","type","options","HarnessPredicate","addOption","harness","stringMatches","getValue","placeholder","getPlaceholder","MatDatepickerInputHarnessBase","_super","isDisabled","_a","host","getProperty","isRequired","setValue","newValue","inputEl","clear","sendKeys","dispatchEvent","focus","blur","isFocused","getMin","getAttribute","getMax","ComponentHarness","MatCalendarCellHarness","_this","_content","locatorFor","with","text","getText","selected","isSelected","active","isActive","disabled","today","isToday","inRange","isInRange","inComparisonRange","isInComparisonRange","inPreviewRange","isInPreviewRange","getAriaLabel","_hasState","hasClass","select","click","hover","mouseAway","isRangeStart","isRangeEnd","isComparisonRangeStart","isComparisonRangeEnd","isPreviewRangeStart","isPreviewRangeEnd","name","hostSelector","MatCalendarHarness","_periodButton","getCells","filter","locatorForAll","getCurrentView","locatorForOptional","getCurrentViewLabel","changeView","previous","selectCell","cells","Error","JSON","stringify","DatepickerTriggerHarnessBase","openCalendar","hasCalendar","_b","all","_openCalendar","closeCalendar","isCalendarOpen","getCalendarId","documentRootLocatorFactory","forceStabilize","getCalendar","calendarId","documentLocator","backdropSelector","assign","selector","MatDatepickerInputHarness","alt","TestKey","DOWN_ARROW","MatDatepickerToggleHarness","_button","button","coerceBooleanProperty","MatStartDateHarness","MatEndDateHarness","MatDateRangeInputHarness","end","separator","getStartInput","input","getEndInput","getSeparator","endDisabled","defineProperty"],"mappings":"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","sourcesContent":["(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/cdk/testing'), require('@angular/cdk/coercion')) :\n typeof define === 'function' && define.amd ? define('@angular/material/datepicker/testing', ['exports', '@angular/cdk/testing', '@angular/cdk/coercion'], factory) :\n (global = global || self, factory((global.ng = global.ng || {}, global.ng.material = global.ng.material || {}, global.ng.material.datepicker = global.ng.material.datepicker || {}, global.ng.material.datepicker.testing = {}), global.ng.cdk.testing, global.ng.cdk.coercion));\n}(this, (function (exports, testing, coercion) { 'use strict';\n\n /*! *****************************************************************************\n Copyright (c) Microsoft Corporation.\n\n Permission to use, copy, modify, and/or distribute this software for any\n purpose with or without fee is hereby granted.\n\n THE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\n REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\n AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\n INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\n LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\n OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\n PERFORMANCE OF THIS SOFTWARE.\n ***************************************************************************** */\n /* global Reflect, Promise */\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b)\n if (Object.prototype.hasOwnProperty.call(b, p))\n d[p] = b[p]; };\n return extendStatics(d, b);\n };\n function __extends(d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n }\n var __assign = function () {\n __assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s)\n if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n };\n function __rest(s, e) {\n var t = {};\n for (var p in s)\n if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n }\n function __decorate(decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\")\n r = Reflect.decorate(decorators, target, key, desc);\n else\n for (var i = decorators.length - 1; i >= 0; i--)\n if (d = decorators[i])\n r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n }\n function __param(paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); };\n }\n function __metadata(metadataKey, metadataValue) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\")\n return Reflect.metadata(metadataKey, metadataValue);\n }\n function __awaiter(thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try {\n step(generator.next(value));\n }\n catch (e) {\n reject(e);\n } }\n function rejected(value) { try {\n step(generator[\"throw\"](value));\n }\n catch (e) {\n reject(e);\n } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n }\n function __generator(thisArg, body) {\n var _ = { label: 0, sent: function () { if (t[0] & 1)\n throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function () { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f)\n throw new TypeError(\"Generator is already executing.\");\n while (_)\n try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done)\n return t;\n if (y = 0, t)\n op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0:\n case 1:\n t = op;\n break;\n case 4:\n _.label++;\n return { value: op[1], done: false };\n case 5:\n _.label++;\n y = op[1];\n op = [0];\n continue;\n case 7:\n op = _.ops.pop();\n _.trys.pop();\n continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {\n _ = 0;\n continue;\n }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) {\n _.label = op[1];\n break;\n }\n if (op[0] === 6 && _.label < t[1]) {\n _.label = t[1];\n t = op;\n break;\n }\n if (t && _.label < t[2]) {\n _.label = t[2];\n _.ops.push(op);\n break;\n }\n if (t[2])\n _.ops.pop();\n _.trys.pop();\n continue;\n }\n op = body.call(thisArg, _);\n }\n catch (e) {\n op = [6, e];\n y = 0;\n }\n finally {\n f = t = 0;\n }\n if (op[0] & 5)\n throw op[1];\n return { value: op[0] ? op[1] : void 0, done: true };\n }\n }\n var __createBinding = Object.create ? (function (o, m, k, k2) {\n if (k2 === undefined)\n k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function () { return m[k]; } });\n }) : (function (o, m, k, k2) {\n if (k2 === undefined)\n k2 = k;\n o[k2] = m[k];\n });\n function __exportStar(m, o) {\n for (var p in m)\n if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p))\n __createBinding(o, m, p);\n }\n function __values(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m)\n return m.call(o);\n if (o && typeof o.length === \"number\")\n return {\n next: function () {\n if (o && i >= o.length)\n o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n }\n function __read(o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m)\n return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done)\n ar.push(r.value);\n }\n catch (error) {\n e = { error: error };\n }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"]))\n m.call(i);\n }\n finally {\n if (e)\n throw e.error;\n }\n }\n return ar;\n }\n function __spread() {\n for (var ar = [], i = 0; i < arguments.length; i++)\n ar = ar.concat(__read(arguments[i]));\n return ar;\n }\n function __spreadArrays() {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++)\n s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n }\n ;\n function __await(v) {\n return this instanceof __await ? (this.v = v, this) : new __await(v);\n }\n function __asyncGenerator(thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator)\n throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\n function verb(n) { if (g[n])\n i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\n function resume(n, v) { try {\n step(g[n](v));\n }\n catch (e) {\n settle(q[0][3], e);\n } }\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\n function fulfill(value) { resume(\"next\", value); }\n function reject(value) { resume(\"throw\", value); }\n function settle(f, v) { if (f(v), q.shift(), q.length)\n resume(q[0][0], q[0][1]); }\n }\n function __asyncDelegator(o) {\n var i, p;\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\n }\n function __asyncValues(o) {\n if (!Symbol.asyncIterator)\n throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator], i;\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function (v) { resolve({ value: v, done: d }); }, reject); }\n }\n function __makeTemplateObject(cooked, raw) {\n if (Object.defineProperty) {\n Object.defineProperty(cooked, \"raw\", { value: raw });\n }\n else {\n cooked.raw = raw;\n }\n return cooked;\n }\n ;\n var __setModuleDefault = Object.create ? (function (o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n }) : function (o, v) {\n o[\"default\"] = v;\n };\n function __importStar(mod) {\n if (mod && mod.__esModule)\n return mod;\n var result = {};\n if (mod != null)\n for (var k in mod)\n if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k))\n __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n }\n function __importDefault(mod) {\n return (mod && mod.__esModule) ? mod : { default: mod };\n }\n function __classPrivateFieldGet(receiver, privateMap) {\n if (!privateMap.has(receiver)) {\n throw new TypeError(\"attempted to get private field on non-instance\");\n }\n return privateMap.get(receiver);\n }\n function __classPrivateFieldSet(receiver, privateMap, value) {\n if (!privateMap.has(receiver)) {\n throw new TypeError(\"attempted to set private field on non-instance\");\n }\n privateMap.set(receiver, value);\n return value;\n }\n\n /** Sets up the filter predicates for a datepicker input harness. */\n function getInputPredicate(type, options) {\n return new testing.HarnessPredicate(type, options)\n .addOption('value', options.value, function (harness, value) {\n return testing.HarnessPredicate.stringMatches(harness.getValue(), value);\n })\n .addOption('placeholder', options.placeholder, function (harness, placeholder) {\n return testing.HarnessPredicate.stringMatches(harness.getPlaceholder(), placeholder);\n });\n }\n /** Base class for datepicker input harnesses. */\n var MatDatepickerInputHarnessBase = /** @class */ (function (_super) {\n __extends(MatDatepickerInputHarnessBase, _super);\n function MatDatepickerInputHarnessBase() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /** Whether the input is disabled. */\n MatDatepickerInputHarnessBase.prototype.isDisabled = function () {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this.host()];\n case 1: return [2 /*return*/, (_a.sent()).getProperty('disabled')];\n }\n });\n });\n };\n /** Whether the input is required. */\n MatDatepickerInputHarnessBase.prototype.isRequired = function () {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this.host()];\n case 1: return [2 /*return*/, (_a.sent()).getProperty('required')];\n }\n });\n });\n };\n /** Gets the value of the input. */\n MatDatepickerInputHarnessBase.prototype.getValue = function () {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this.host()];\n case 1: return [4 /*yield*/, (_a.sent()).getProperty('value')];\n case 2: \n // The \"value\" property of the native input is always defined.\n return [2 /*return*/, (_a.sent())];\n }\n });\n });\n };\n /**\n * Sets the value of the input. The value will be set by simulating\n * keypresses that correspond to the given value.\n */\n MatDatepickerInputHarnessBase.prototype.setValue = function (newValue) {\n return __awaiter(this, void 0, void 0, function () {\n var inputEl;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this.host()];\n case 1:\n inputEl = _a.sent();\n return [4 /*yield*/, inputEl.clear()];\n case 2:\n _a.sent();\n if (!newValue) return [3 /*break*/, 4];\n return [4 /*yield*/, inputEl.sendKeys(newValue)];\n case 3:\n _a.sent();\n _a.label = 4;\n case 4:\n if (!inputEl.dispatchEvent) return [3 /*break*/, 6];\n return [4 /*yield*/, inputEl.dispatchEvent('change')];\n case 5:\n _a.sent();\n _a.label = 6;\n case 6: return [2 /*return*/];\n }\n });\n });\n };\n /** Gets the placeholder of the input. */\n MatDatepickerInputHarnessBase.prototype.getPlaceholder = function () {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this.host()];\n case 1: return [4 /*yield*/, (_a.sent()).getProperty('placeholder')];\n case 2: return [2 /*return*/, (_a.sent())];\n }\n });\n });\n };\n /**\n * Focuses the input and returns a promise that indicates when the\n * action is complete.\n */\n MatDatepickerInputHarnessBase.prototype.focus = function () {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this.host()];\n case 1: return [2 /*return*/, (_a.sent()).focus()];\n }\n });\n });\n };\n /**\n * Blurs the input and returns a promise that indicates when the\n * action is complete.\n */\n MatDatepickerInputHarnessBase.prototype.blur = function () {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this.host()];\n case 1: return [2 /*return*/, (_a.sent()).blur()];\n }\n });\n });\n };\n /** Whether the input is focused. */\n MatDatepickerInputHarnessBase.prototype.isFocused = function () {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this.host()];\n case 1: return [2 /*return*/, (_a.sent()).isFocused()];\n }\n });\n });\n };\n /** Gets the formatted minimum date for the input's value. */\n MatDatepickerInputHarnessBase.prototype.getMin = function () {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this.host()];\n case 1: return [2 /*return*/, (_a.sent()).getAttribute('min')];\n }\n });\n });\n };\n /** Gets the formatted maximum date for the input's value. */\n MatDatepickerInputHarnessBase.prototype.getMax = function () {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this.host()];\n case 1: return [2 /*return*/, (_a.sent()).getAttribute('max')];\n }\n });\n });\n };\n return MatDatepickerInputHarnessBase;\n }(testing.ComponentHarness));\n\n /** Harness for interacting with a standard Material calendar cell in tests. */\n var MatCalendarCellHarness = /** @class */ (function (_super) {\n __extends(MatCalendarCellHarness, _super);\n function MatCalendarCellHarness() {\n var _this = _super.apply(this, __spread(arguments)) || this;\n /** Reference to the inner content element inside the cell. */\n _this._content = _this.locatorFor('.mat-calendar-body-cell-content');\n return _this;\n }\n /**\n * Gets a `HarnessPredicate` that can be used to search for a `MatCalendarCellHarness`\n * that meets certain criteria.\n * @param options Options for filtering which cell instances are considered a match.\n * @return a `HarnessPredicate` configured with the given options.\n */\n MatCalendarCellHarness.with = function (options) {\n var _this = this;\n if (options === void 0) { options = {}; }\n return new testing.HarnessPredicate(MatCalendarCellHarness, options)\n .addOption('text', options.text, function (harness, text) {\n return testing.HarnessPredicate.stringMatches(harness.getText(), text);\n })\n .addOption('selected', options.selected, function (harness, selected) { return __awaiter(_this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, harness.isSelected()];\n case 1: return [2 /*return*/, (_a.sent()) === selected];\n }\n });\n }); })\n .addOption('active', options.active, function (harness, active) { return __awaiter(_this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, harness.isActive()];\n case 1: return [2 /*return*/, (_a.sent()) === active];\n }\n });\n }); })\n .addOption('disabled', options.disabled, function (harness, disabled) { return __awaiter(_this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, harness.isDisabled()];\n case 1: return [2 /*return*/, (_a.sent()) === disabled];\n }\n });\n }); })\n .addOption('today', options.today, function (harness, today) { return __awaiter(_this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, harness.isToday()];\n case 1: return [2 /*return*/, (_a.sent()) === today];\n }\n });\n }); })\n .addOption('inRange', options.inRange, function (harness, inRange) { return __awaiter(_this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, harness.isInRange()];\n case 1: return [2 /*return*/, (_a.sent()) === inRange];\n }\n });\n }); })\n .addOption('inComparisonRange', options.inComparisonRange, function (harness, inComparisonRange) { return __awaiter(_this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, harness.isInComparisonRange()];\n case 1: return [2 /*return*/, (_a.sent()) === inComparisonRange];\n }\n });\n }); })\n .addOption('inPreviewRange', options.inPreviewRange, function (harness, inPreviewRange) { return __awaiter(_this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, harness.isInPreviewRange()];\n case 1: return [2 /*return*/, (_a.sent()) === inPreviewRange];\n }\n });\n }); });\n };\n /** Gets the text of the calendar cell. */\n MatCalendarCellHarness.prototype.getText = function () {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this._content()];\n case 1: return [2 /*return*/, (_a.sent()).text()];\n }\n });\n });\n };\n /** Gets the aria-label of the calendar cell. */\n MatCalendarCellHarness.prototype.getAriaLabel = function () {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this.host()];\n case 1: \n // We're guaranteed for the `aria-label` to be defined\n // since this is a private element that we control.\n return [2 /*return*/, (_a.sent()).getAttribute('aria-label')];\n }\n });\n });\n };\n /** Whether the cell is selected. */\n MatCalendarCellHarness.prototype.isSelected = function () {\n return __awaiter(this, void 0, void 0, function () {\n var host;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this.host()];\n case 1:\n host = _a.sent();\n return [4 /*yield*/, host.getAttribute('aria-selected')];\n case 2: return [2 /*return*/, (_a.sent()) === 'true'];\n }\n });\n });\n };\n /** Whether the cell is disabled. */\n MatCalendarCellHarness.prototype.isDisabled = function () {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n return [2 /*return*/, this._hasState('disabled')];\n });\n });\n };\n /** Whether the cell is currently activated using keyboard navigation. */\n MatCalendarCellHarness.prototype.isActive = function () {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n return [2 /*return*/, this._hasState('active')];\n });\n });\n };\n /** Whether the cell represents today's date. */\n MatCalendarCellHarness.prototype.isToday = function () {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this._content()];\n case 1: return [2 /*return*/, (_a.sent()).hasClass('mat-calendar-body-today')];\n }\n });\n });\n };\n /** Selects the calendar cell. Won't do anything if the cell is disabled. */\n MatCalendarCellHarness.prototype.select = function () {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this.host()];\n case 1: return [2 /*return*/, (_a.sent()).click()];\n }\n });\n });\n };\n /** Hovers over the calendar cell. */\n MatCalendarCellHarness.prototype.hover = function () {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this.host()];\n case 1: return [2 /*return*/, (_a.sent()).hover()];\n }\n });\n });\n };\n /** Moves the mouse away from the calendar cell. */\n MatCalendarCellHarness.prototype.mouseAway = function () {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this.host()];\n case 1: return [2 /*return*/, (_a.sent()).mouseAway()];\n }\n });\n });\n };\n /** Focuses the calendar cell. */\n MatCalendarCellHarness.prototype.focus = function () {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this.host()];\n case 1: return [2 /*return*/, (_a.sent()).focus()];\n }\n });\n });\n };\n /** Removes focus from the calendar cell. */\n MatCalendarCellHarness.prototype.blur = function () {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this.host()];\n case 1: return [2 /*return*/, (_a.sent()).blur()];\n }\n });\n });\n };\n /** Whether the cell is the start of the main range. */\n MatCalendarCellHarness.prototype.isRangeStart = function () {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n return [2 /*return*/, this._hasState('range-start')];\n });\n });\n };\n /** Whether the cell is the end of the main range. */\n MatCalendarCellHarness.prototype.isRangeEnd = function () {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n return [2 /*return*/, this._hasState('range-end')];\n });\n });\n };\n /** Whether the cell is part of the main range. */\n MatCalendarCellHarness.prototype.isInRange = function () {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n return [2 /*return*/, this._hasState('in-range')];\n });\n });\n };\n /** Whether the cell is the start of the comparison range. */\n MatCalendarCellHarness.prototype.isComparisonRangeStart = function () {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n return [2 /*return*/, this._hasState('comparison-start')];\n });\n });\n };\n /** Whether the cell is the end of the comparison range. */\n MatCalendarCellHarness.prototype.isComparisonRangeEnd = function () {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n return [2 /*return*/, this._hasState('comparison-end')];\n });\n });\n };\n /** Whether the cell is inside of the comparison range. */\n MatCalendarCellHarness.prototype.isInComparisonRange = function () {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n return [2 /*return*/, this._hasState('in-comparison-range')];\n });\n });\n };\n /** Whether the cell is the start of the preview range. */\n MatCalendarCellHarness.prototype.isPreviewRangeStart = function () {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n return [2 /*return*/, this._hasState('preview-start')];\n });\n });\n };\n /** Whether the cell is the end of the preview range. */\n MatCalendarCellHarness.prototype.isPreviewRangeEnd = function () {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n return [2 /*return*/, this._hasState('preview-end')];\n });\n });\n };\n /** Whether the cell is inside of the preview range. */\n MatCalendarCellHarness.prototype.isInPreviewRange = function () {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n return [2 /*return*/, this._hasState('in-preview')];\n });\n });\n };\n /** Returns whether the cell has a particular CSS class-based state. */\n MatCalendarCellHarness.prototype._hasState = function (name) {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this.host()];\n case 1: return [2 /*return*/, (_a.sent()).hasClass(\"mat-calendar-body-\" + name)];\n }\n });\n });\n };\n return MatCalendarCellHarness;\n }(testing.ComponentHarness));\n MatCalendarCellHarness.hostSelector = '.mat-calendar-body-cell';\n\n /** Harness for interacting with a standard Material calendar in tests. */\n var MatCalendarHarness = /** @class */ (function (_super) {\n __extends(MatCalendarHarness, _super);\n function MatCalendarHarness() {\n var _this = _super.apply(this, __spread(arguments)) || this;\n /** Queries for the calendar's period toggle button. */\n _this._periodButton = _this.locatorFor('.mat-calendar-period-button');\n return _this;\n }\n /**\n * Gets a `HarnessPredicate` that can be used to search for a `MatCalendarHarness`\n * that meets certain criteria.\n * @param options Options for filtering which calendar instances are considered a match.\n * @return a `HarnessPredicate` configured with the given options.\n */\n MatCalendarHarness.with = function (options) {\n if (options === void 0) { options = {}; }\n return new testing.HarnessPredicate(MatCalendarHarness, options);\n };\n /**\n * Gets a list of cells inside the calendar.\n * @param filter Optionally filters which cells are included.\n */\n MatCalendarHarness.prototype.getCells = function (filter) {\n if (filter === void 0) { filter = {}; }\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n return [2 /*return*/, this.locatorForAll(MatCalendarCellHarness.with(filter))()];\n });\n });\n };\n /** Gets the current view that is being shown inside the calendar. */\n MatCalendarHarness.prototype.getCurrentView = function () {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this.locatorForOptional('mat-multi-year-view')()];\n case 1:\n if (_a.sent()) {\n return [2 /*return*/, 2 /* MULTI_YEAR */];\n }\n return [4 /*yield*/, this.locatorForOptional('mat-year-view')()];\n case 2:\n if (_a.sent()) {\n return [2 /*return*/, 1 /* YEAR */];\n }\n return [2 /*return*/, 0 /* MONTH */];\n }\n });\n });\n };\n /** Gets the label of the current calendar view. */\n MatCalendarHarness.prototype.getCurrentViewLabel = function () {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this._periodButton()];\n case 1: return [2 /*return*/, (_a.sent()).text()];\n }\n });\n });\n };\n /** Changes the calendar view by clicking on the view toggle button. */\n MatCalendarHarness.prototype.changeView = function () {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this._periodButton()];\n case 1: return [2 /*return*/, (_a.sent()).click()];\n }\n });\n });\n };\n /** Goes to the next page of the current view (e.g. next month when inside the month view). */\n MatCalendarHarness.prototype.next = function () {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this.locatorFor('.mat-calendar-next-button')()];\n case 1: return [2 /*return*/, (_a.sent()).click()];\n }\n });\n });\n };\n /**\n * Goes to the previous page of the current view\n * (e.g. previous month when inside the month view).\n */\n MatCalendarHarness.prototype.previous = function () {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this.locatorFor('.mat-calendar-previous-button')()];\n case 1: return [2 /*return*/, (_a.sent()).click()];\n }\n });\n });\n };\n /**\n * Selects a cell in the current calendar view.\n * @param filter An optional filter to apply to the cells. The first cell matching the filter\n * will be selected.\n */\n MatCalendarHarness.prototype.selectCell = function (filter) {\n if (filter === void 0) { filter = {}; }\n return __awaiter(this, void 0, void 0, function () {\n var cells;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this.getCells(filter)];\n case 1:\n cells = _a.sent();\n if (!cells.length) {\n throw Error(\"Cannot find calendar cell matching filter \" + JSON.stringify(filter));\n }\n return [4 /*yield*/, cells[0].select()];\n case 2:\n _a.sent();\n return [2 /*return*/];\n }\n });\n });\n };\n return MatCalendarHarness;\n }(testing.ComponentHarness));\n MatCalendarHarness.hostSelector = '.mat-calendar';\n\n /** Base class for harnesses that can trigger a calendar. */\n var DatepickerTriggerHarnessBase = /** @class */ (function (_super) {\n __extends(DatepickerTriggerHarnessBase, _super);\n function DatepickerTriggerHarnessBase() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /** Opens the calendar if the trigger is enabled and it has a calendar. */\n DatepickerTriggerHarnessBase.prototype.openCalendar = function () {\n return __awaiter(this, void 0, void 0, function () {\n var _a, isDisabled, hasCalendar;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0: return [4 /*yield*/, Promise.all([this.isDisabled(), this.hasCalendar()])];\n case 1:\n _a = __read.apply(void 0, [_b.sent(), 2]), isDisabled = _a[0], hasCalendar = _a[1];\n if (!isDisabled && hasCalendar) {\n return [2 /*return*/, this._openCalendar()];\n }\n return [2 /*return*/];\n }\n });\n });\n };\n /** Closes the calendar if it is open. */\n DatepickerTriggerHarnessBase.prototype.closeCalendar = function () {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this.isCalendarOpen()];\n case 1:\n if (!_a.sent()) return [3 /*break*/, 4];\n return [4 /*yield*/, closeCalendar(getCalendarId(this.host()), this.documentRootLocatorFactory())];\n case 2:\n _a.sent();\n // This is necessary so that we wait for the closing animation to finish in touch UI mode.\n return [4 /*yield*/, this.forceStabilize()];\n case 3:\n // This is necessary so that we wait for the closing animation to finish in touch UI mode.\n _a.sent();\n _a.label = 4;\n case 4: return [2 /*return*/];\n }\n });\n });\n };\n /** Gets whether there is a calendar associated with the trigger. */\n DatepickerTriggerHarnessBase.prototype.hasCalendar = function () {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, getCalendarId(this.host())];\n case 1: return [2 /*return*/, (_a.sent()) != null];\n }\n });\n });\n };\n /**\n * Gets the `MatCalendarHarness` that is associated with the trigger.\n * @param filter Optionally filters which calendar is included.\n */\n DatepickerTriggerHarnessBase.prototype.getCalendar = function (filter) {\n if (filter === void 0) { filter = {}; }\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n return [2 /*return*/, getCalendar(filter, this.host(), this.documentRootLocatorFactory())];\n });\n });\n };\n return DatepickerTriggerHarnessBase;\n }(testing.ComponentHarness));\n /** Gets the ID of the calendar that a particular test element can trigger. */\n function getCalendarId(host) {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, host];\n case 1: return [2 /*return*/, (_a.sent()).getAttribute('data-mat-calendar')];\n }\n });\n });\n }\n /** Closes the calendar with a specific ID. */\n function closeCalendar(calendarId, documentLocator) {\n return __awaiter(this, void 0, void 0, function () {\n var backdropSelector, _a;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n _a = \".\";\n return [4 /*yield*/, calendarId];\n case 1:\n backdropSelector = _a + (_b.sent()) + \"-backdrop\";\n return [4 /*yield*/, documentLocator.locatorFor(backdropSelector)()];\n case 2: return [2 /*return*/, (_b.sent()).click()];\n }\n });\n });\n }\n /** Gets the test harness for a calendar associated with a particular host. */\n function getCalendar(filter, host, documentLocator) {\n return __awaiter(this, void 0, void 0, function () {\n var calendarId;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, getCalendarId(host)];\n case 1:\n calendarId = _a.sent();\n if (!calendarId) {\n throw Error(\"Element is not associated with a calendar\");\n }\n return [2 /*return*/, documentLocator.locatorFor(MatCalendarHarness.with(Object.assign(Object.assign({}, filter), { selector: \"#\" + calendarId })))()];\n }\n });\n });\n }\n\n /** Harness for interacting with a standard Material datepicker inputs in tests. */\n var MatDatepickerInputHarness = /** @class */ (function (_super) {\n __extends(MatDatepickerInputHarness, _super);\n function MatDatepickerInputHarness() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * Gets a `HarnessPredicate` that can be used to search for a `MatDatepickerInputHarness`\n * that meets certain criteria.\n * @param options Options for filtering which input instances are considered a match.\n * @return a `HarnessPredicate` configured with the given options.\n */\n MatDatepickerInputHarness.with = function (options) {\n if (options === void 0) { options = {}; }\n return getInputPredicate(MatDatepickerInputHarness, options);\n };\n /** Gets whether the calendar associated with the input is open. */\n MatDatepickerInputHarness.prototype.isCalendarOpen = function () {\n return __awaiter(this, void 0, void 0, function () {\n var host;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this.host()];\n case 1:\n host = _a.sent();\n return [4 /*yield*/, host.getAttribute('aria-owns')];\n case 2: return [2 /*return*/, (_a.sent()) != null];\n }\n });\n });\n };\n /** Opens the calendar associated with the input. */\n MatDatepickerInputHarness.prototype.openCalendar = function () {\n return __awaiter(this, void 0, void 0, function () {\n var _a, isDisabled, hasCalendar, host;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0: return [4 /*yield*/, Promise.all([this.isDisabled(), this.hasCalendar()])];\n case 1:\n _a = __read.apply(void 0, [_b.sent(), 2]), isDisabled = _a[0], hasCalendar = _a[1];\n if (!(!isDisabled && hasCalendar)) return [3 /*break*/, 3];\n return [4 /*yield*/, this.host()];\n case 2:\n host = _b.sent();\n return [2 /*return*/, host.sendKeys({ alt: true }, testing.TestKey.DOWN_ARROW)];\n case 3: return [2 /*return*/];\n }\n });\n });\n };\n /** Closes the calendar associated with the input. */\n MatDatepickerInputHarness.prototype.closeCalendar = function () {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this.isCalendarOpen()];\n case 1:\n if (!_a.sent()) return [3 /*break*/, 4];\n return [4 /*yield*/, closeCalendar(getCalendarId(this.host()), this.documentRootLocatorFactory())];\n case 2:\n _a.sent();\n // This is necessary so that we wait for the closing animation to finish in touch UI mode.\n return [4 /*yield*/, this.forceStabilize()];\n case 3:\n // This is necessary so that we wait for the closing animation to finish in touch UI mode.\n _a.sent();\n _a.label = 4;\n case 4: return [2 /*return*/];\n }\n });\n });\n };\n /** Whether a calendar is associated with the input. */\n MatDatepickerInputHarness.prototype.hasCalendar = function () {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, getCalendarId(this.host())];\n case 1: return [2 /*return*/, (_a.sent()) != null];\n }\n });\n });\n };\n /**\n * Gets the `MatCalendarHarness` that is associated with the trigger.\n * @param filter Optionally filters which calendar is included.\n */\n MatDatepickerInputHarness.prototype.getCalendar = function (filter) {\n if (filter === void 0) { filter = {}; }\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n return [2 /*return*/, getCalendar(filter, this.host(), this.documentRootLocatorFactory())];\n });\n });\n };\n return MatDatepickerInputHarness;\n }(MatDatepickerInputHarnessBase));\n MatDatepickerInputHarness.hostSelector = '.mat-datepicker-input';\n\n /** Harness for interacting with a standard Material datepicker toggle in tests. */\n var MatDatepickerToggleHarness = /** @class */ (function (_super) {\n __extends(MatDatepickerToggleHarness, _super);\n function MatDatepickerToggleHarness() {\n var _this = _super.apply(this, __spread(arguments)) || this;\n /** The clickable button inside the toggle. */\n _this._button = _this.locatorFor('button');\n return _this;\n }\n /**\n * Gets a `HarnessPredicate` that can be used to search for a `MatDatepickerToggleHarness` that\n * meets certain criteria.\n * @param options Options for filtering which datepicker toggle instances are considered a match.\n * @return a `HarnessPredicate` configured with the given options.\n */\n MatDatepickerToggleHarness.with = function (options) {\n if (options === void 0) { options = {}; }\n return new testing.HarnessPredicate(MatDatepickerToggleHarness, options);\n };\n /** Gets whether the calendar associated with the toggle is open. */\n MatDatepickerToggleHarness.prototype.isCalendarOpen = function () {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this.host()];\n case 1: return [2 /*return*/, (_a.sent()).hasClass('mat-datepicker-toggle-active')];\n }\n });\n });\n };\n /** Whether the toggle is disabled. */\n MatDatepickerToggleHarness.prototype.isDisabled = function () {\n return __awaiter(this, void 0, void 0, function () {\n var button, _a;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0: return [4 /*yield*/, this._button()];\n case 1:\n button = _b.sent();\n _a = coercion.coerceBooleanProperty;\n return [4 /*yield*/, button.getAttribute('disabled')];\n case 2: return [2 /*return*/, _a.apply(void 0, [_b.sent()])];\n }\n });\n });\n };\n MatDatepickerToggleHarness.prototype._openCalendar = function () {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this._button()];\n case 1: return [2 /*return*/, (_a.sent()).click()];\n }\n });\n });\n };\n return MatDatepickerToggleHarness;\n }(DatepickerTriggerHarnessBase));\n MatDatepickerToggleHarness.hostSelector = '.mat-datepicker-toggle';\n\n /** Harness for interacting with a standard Material date range start input in tests. */\n var MatStartDateHarness = /** @class */ (function (_super) {\n __extends(MatStartDateHarness, _super);\n function MatStartDateHarness() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * Gets a `HarnessPredicate` that can be used to search for a `MatStartDateHarness`\n * that meets certain criteria.\n * @param options Options for filtering which input instances are considered a match.\n * @return a `HarnessPredicate` configured with the given options.\n */\n MatStartDateHarness.with = function (options) {\n if (options === void 0) { options = {}; }\n return getInputPredicate(MatStartDateHarness, options);\n };\n return MatStartDateHarness;\n }(MatDatepickerInputHarnessBase));\n MatStartDateHarness.hostSelector = '.mat-start-date';\n /** Harness for interacting with a standard Material date range end input in tests. */\n var MatEndDateHarness = /** @class */ (function (_super) {\n __extends(MatEndDateHarness, _super);\n function MatEndDateHarness() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * Gets a `HarnessPredicate` that can be used to search for a `MatEndDateHarness`\n * that meets certain criteria.\n * @param options Options for filtering which input instances are considered a match.\n * @return a `HarnessPredicate` configured with the given options.\n */\n MatEndDateHarness.with = function (options) {\n if (options === void 0) { options = {}; }\n return getInputPredicate(MatEndDateHarness, options);\n };\n return MatEndDateHarness;\n }(MatDatepickerInputHarnessBase));\n MatEndDateHarness.hostSelector = '.mat-end-date';\n /** Harness for interacting with a standard Material date range input in tests. */\n var MatDateRangeInputHarness = /** @class */ (function (_super) {\n __extends(MatDateRangeInputHarness, _super);\n function MatDateRangeInputHarness() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * Gets a `HarnessPredicate` that can be used to search for a `MatDateRangeInputHarness`\n * that meets certain criteria.\n * @param options Options for filtering which input instances are considered a match.\n * @return a `HarnessPredicate` configured with the given options.\n */\n MatDateRangeInputHarness.with = function (options) {\n if (options === void 0) { options = {}; }\n return new testing.HarnessPredicate(MatDateRangeInputHarness, options)\n .addOption('value', options.value, function (harness, value) { return testing.HarnessPredicate.stringMatches(harness.getValue(), value); });\n };\n /** Gets the combined value of the start and end inputs, including the separator. */\n MatDateRangeInputHarness.prototype.getValue = function () {\n return __awaiter(this, void 0, void 0, function () {\n var _a, start, end, separator;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0: return [4 /*yield*/, Promise.all([\n this.getStartInput().then(function (input) { return input.getValue(); }),\n this.getEndInput().then(function (input) { return input.getValue(); }),\n this.getSeparator()\n ])];\n case 1:\n _a = __read.apply(void 0, [_b.sent(), 3]), start = _a[0], end = _a[1], separator = _a[2];\n return [2 /*return*/, start + (\"\" + (end ? \" \" + separator + \" \" + end : ''))];\n }\n });\n });\n };\n /** Gets the inner start date input inside the range input. */\n MatDateRangeInputHarness.prototype.getStartInput = function () {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n // Don't pass in filters here since the start input is required and there can only be one.\n return [2 /*return*/, this.locatorFor(MatStartDateHarness)()];\n });\n });\n };\n /** Gets the inner start date input inside the range input. */\n MatDateRangeInputHarness.prototype.getEndInput = function () {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n // Don't pass in filters here since the end input is required and there can only be one.\n return [2 /*return*/, this.locatorFor(MatEndDateHarness)()];\n });\n });\n };\n /** Gets the separator text between the values of the two inputs. */\n MatDateRangeInputHarness.prototype.getSeparator = function () {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this.locatorFor('.mat-date-range-input-separator')()];\n case 1: return [2 /*return*/, (_a.sent()).text()];\n }\n });\n });\n };\n /** Gets whether the range input is disabled. */\n MatDateRangeInputHarness.prototype.isDisabled = function () {\n return __awaiter(this, void 0, void 0, function () {\n var _a, startDisabled, endDisabled;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0: return [4 /*yield*/, Promise.all([\n this.getStartInput().then(function (input) { return input.isDisabled(); }),\n this.getEndInput().then(function (input) { return input.isDisabled(); })\n ])];\n case 1:\n _a = __read.apply(void 0, [_b.sent(), 2]), startDisabled = _a[0], endDisabled = _a[1];\n return [2 /*return*/, startDisabled && endDisabled];\n }\n });\n });\n };\n /** Gets whether the range input is required. */\n MatDateRangeInputHarness.prototype.isRequired = function () {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this.host()];\n case 1: return [2 /*return*/, (_a.sent()).hasClass('mat-date-range-input-required')];\n }\n });\n });\n };\n /** Opens the calendar associated with the input. */\n MatDateRangeInputHarness.prototype.isCalendarOpen = function () {\n return __awaiter(this, void 0, void 0, function () {\n var startHost;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this.getStartInput()];\n case 1: return [4 /*yield*/, (_a.sent()).host()];\n case 2:\n startHost = _a.sent();\n return [4 /*yield*/, startHost.getAttribute('aria-owns')];\n case 3: return [2 /*return*/, (_a.sent()) != null];\n }\n });\n });\n };\n MatDateRangeInputHarness.prototype._openCalendar = function () {\n return __awaiter(this, void 0, void 0, function () {\n var startHost;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this.getStartInput()];\n case 1: return [4 /*yield*/, (_a.sent()).host()];\n case 2:\n startHost = _a.sent();\n return [2 /*return*/, startHost.sendKeys({ alt: true }, testing.TestKey.DOWN_ARROW)];\n }\n });\n });\n };\n return MatDateRangeInputHarness;\n }(DatepickerTriggerHarnessBase));\n MatDateRangeInputHarness.hostSelector = '.mat-date-range-input';\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.io/license\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.io/license\n */\n\n exports.MatCalendarCellHarness = MatCalendarCellHarness;\n exports.MatCalendarHarness = MatCalendarHarness;\n exports.MatDateRangeInputHarness = MatDateRangeInputHarness;\n exports.MatDatepickerInputHarness = MatDatepickerInputHarness;\n exports.MatDatepickerToggleHarness = MatDatepickerToggleHarness;\n exports.MatEndDateHarness = MatEndDateHarness;\n exports.MatStartDateHarness = MatStartDateHarness;\n\n Object.defineProperty(exports, '__esModule', { value: true });\n\n})));\n//# sourceMappingURL=material-datepicker-testing.umd.js.map\n"]}
@@ -384,7 +384,7 @@
384
384
  extendStatics = Object.setPrototypeOf ||
385
385
  ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
386
386
  function (d, b) { for (var p in b)
387
- if (b.hasOwnProperty(p))
387
+ if (Object.prototype.hasOwnProperty.call(b, p))
388
388
  d[p] = b[p]; };
389
389
  return extendStatics(d, b);
390
390
  };
@@ -531,10 +531,10 @@
531
531
  k2 = k;
532
532
  o[k2] = m[k];
533
533
  });
534
- function __exportStar(m, exports) {
534
+ function __exportStar(m, o) {
535
535
  for (var p in m)
536
- if (p !== "default" && !exports.hasOwnProperty(p))
537
- __createBinding(exports, m, p);
536
+ if (p !== "default" && !Object.prototype.hasOwnProperty.call(o, p))
537
+ __createBinding(o, m, p);
538
538
  }
539
539
  function __values(o) {
540
540
  var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
@@ -644,7 +644,7 @@
644
644
  var result = {};
645
645
  if (mod != null)
646
646
  for (var k in mod)
647
- if (Object.hasOwnProperty.call(mod, k))
647
+ if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k))
648
648
  __createBinding(result, mod, k);
649
649
  __setModuleDefault(result, mod);
650
650
  return result;
@@ -1761,6 +1761,8 @@
1761
1761
  * Use of this source code is governed by an MIT-style license that can be
1762
1762
  * found in the LICENSE file at https://angular.io/license
1763
1763
  */
1764
+ /** Counter used to generate unique IDs. */
1765
+ var uniqueId = 0;
1764
1766
  /** Default header for MatCalendar */
1765
1767
  var MatCalendarHeader = /** @class */ (function () {
1766
1768
  function MatCalendarHeader(_intl, calendar, _dateAdapter, _dateFormats, changeDetectorRef) {
@@ -1768,6 +1770,7 @@
1768
1770
  this.calendar = calendar;
1769
1771
  this._dateAdapter = _dateAdapter;
1770
1772
  this._dateFormats = _dateFormats;
1773
+ this._buttonDescriptionId = "mat-calendar-button-" + uniqueId++;
1771
1774
  this.calendar.stateChanges.subscribe(function () { return changeDetectorRef.markForCheck(); });
1772
1775
  }
1773
1776
  Object.defineProperty(MatCalendarHeader.prototype, "periodButtonText", {
@@ -1872,7 +1875,7 @@
1872
1875
  MatCalendarHeader.decorators = [
1873
1876
  { type: i0.Component, args: [{
1874
1877
  selector: 'mat-calendar-header',
1875
- template: "<div class=\"mat-calendar-header\">\n <div class=\"mat-calendar-controls\">\n <button mat-button type=\"button\" class=\"mat-calendar-period-button\"\n (click)=\"currentPeriodClicked()\" [attr.aria-label]=\"periodButtonLabel\"\n cdkAriaLive=\"polite\">\n {{periodButtonText}}\n <div class=\"mat-calendar-arrow\"\n [class.mat-calendar-invert]=\"calendar.currentView != 'month'\"></div>\n </button>\n\n <div class=\"mat-calendar-spacer\"></div>\n\n <ng-content></ng-content>\n\n <button mat-icon-button type=\"button\" class=\"mat-calendar-previous-button\"\n [disabled]=\"!previousEnabled()\" (click)=\"previousClicked()\"\n [attr.aria-label]=\"prevButtonLabel\">\n </button>\n\n <button mat-icon-button type=\"button\" class=\"mat-calendar-next-button\"\n [disabled]=\"!nextEnabled()\" (click)=\"nextClicked()\"\n [attr.aria-label]=\"nextButtonLabel\">\n </button>\n </div>\n</div>\n",
1878
+ template: "<div class=\"mat-calendar-header\">\n <div class=\"mat-calendar-controls\">\n <button mat-button type=\"button\" class=\"mat-calendar-period-button\"\n (click)=\"currentPeriodClicked()\" [attr.aria-label]=\"periodButtonLabel\"\n [attr.aria-describedby]=\"_buttonDescriptionId\"\n cdkAriaLive=\"polite\">\n <span [attr.id]=\"_buttonDescriptionId\">{{periodButtonText}}</span>\n <div class=\"mat-calendar-arrow\"\n [class.mat-calendar-invert]=\"calendar.currentView !== 'month'\"></div>\n </button>\n\n <div class=\"mat-calendar-spacer\"></div>\n\n <ng-content></ng-content>\n\n <button mat-icon-button type=\"button\" class=\"mat-calendar-previous-button\"\n [disabled]=\"!previousEnabled()\" (click)=\"previousClicked()\"\n [attr.aria-label]=\"prevButtonLabel\">\n </button>\n\n <button mat-icon-button type=\"button\" class=\"mat-calendar-next-button\"\n [disabled]=\"!nextEnabled()\" (click)=\"nextClicked()\"\n [attr.aria-label]=\"nextButtonLabel\">\n </button>\n </div>\n</div>\n",
1876
1879
  exportAs: 'matCalendarHeader',
1877
1880
  encapsulation: i0.ViewEncapsulation.None,
1878
1881
  changeDetection: i0.ChangeDetectionStrategy.OnPush
@@ -2269,7 +2272,7 @@
2269
2272
  encapsulation: i0.ViewEncapsulation.None,
2270
2273
  changeDetection: i0.ChangeDetectionStrategy.OnPush,
2271
2274
  inputs: ['color'],
2272
- styles: [".mat-datepicker-content{display:block;border-radius:4px}.mat-datepicker-content .mat-calendar{width:296px;height:354px}.mat-datepicker-content-touch{display:block;max-height:80vh;overflow:auto;margin:-24px}.mat-datepicker-content-touch .mat-calendar{min-width:250px;min-height:312px;max-width:750px;max-height:788px}.mat-datepicker-close-button{position:absolute;top:100%;left:0;margin-top:8px}@media all and (orientation: landscape){.mat-datepicker-content-touch .mat-calendar{width:64vh;height:80vh}}@media all and (orientation: portrait){.mat-datepicker-content-touch .mat-calendar{width:80vw;height:100vw}}\n"]
2275
+ styles: [".mat-datepicker-content{display:block;border-radius:4px}.mat-datepicker-content .mat-calendar{width:296px;height:354px}.mat-datepicker-content .mat-datepicker-close-button{position:absolute;top:100%;left:0;margin-top:8px}.mat-datepicker-content-touch{display:block;max-height:80vh;overflow:auto;margin:-24px}.mat-datepicker-content-touch .mat-calendar{min-width:250px;min-height:312px;max-width:750px;max-height:788px}@media all and (orientation: landscape){.mat-datepicker-content-touch .mat-calendar{width:64vh;height:80vh}}@media all and (orientation: portrait){.mat-datepicker-content-touch .mat-calendar{width:80vw;height:100vw}}\n"]
2273
2276
  },] }
2274
2277
  ];
2275
2278
  MatDatepickerContent.ctorParameters = function () { return [
@@ -2748,8 +2751,7 @@
2748
2751
  /** The form control validator for the date filter. */
2749
2752
  this._filterValidator = function (control) {
2750
2753
  var controlValue = _this._dateAdapter.getValidDateOrNull(_this._dateAdapter.deserialize(control.value));
2751
- var dateFilter = _this._getDateFilter();
2752
- return !dateFilter || !controlValue || dateFilter(controlValue) ?
2754
+ return !controlValue || _this._matchesFilter(controlValue) ?
2753
2755
  null : { 'matDatepickerFilter': true };
2754
2756
  };
2755
2757
  /** The form control validator for the min date. */
@@ -2964,6 +2966,11 @@
2964
2966
  MatDatepickerInputBase.prototype._parentDisabled = function () {
2965
2967
  return false;
2966
2968
  };
2969
+ /** Gets whether a value matches the current date filter. */
2970
+ MatDatepickerInputBase.prototype._matchesFilter = function (value) {
2971
+ var filter = this._getDateFilter();
2972
+ return !filter || filter(value);
2973
+ };
2967
2974
  return MatDatepickerInputBase;
2968
2975
  }());
2969
2976
  MatDatepickerInputBase.decorators = [
@@ -3073,8 +3080,11 @@
3073
3080
  /** Function that can be used to filter out dates within the datepicker. */
3074
3081
  get: function () { return this._dateFilter; },
3075
3082
  set: function (value) {
3083
+ var wasMatchingValue = this._matchesFilter(this.value);
3076
3084
  this._dateFilter = value;
3077
- this._validatorOnChange();
3085
+ if (this._matchesFilter(this.value) !== wasMatchingValue) {
3086
+ this._validatorOnChange();
3087
+ }
3078
3088
  },
3079
3089
  enumerable: false,
3080
3090
  configurable: true
@@ -3658,8 +3668,17 @@
3658
3668
  /** Function that can be used to filter out dates within the date range picker. */
3659
3669
  get: function () { return this._dateFilter; },
3660
3670
  set: function (value) {
3671
+ var start = this._startInput;
3672
+ var end = this._endInput;
3673
+ var wasMatchingStart = start && start._matchesFilter(start.value);
3674
+ var wasMatchingEnd = end && end._matchesFilter(start.value);
3661
3675
  this._dateFilter = value;
3662
- this._revalidate();
3676
+ if (start && start._matchesFilter(start.value) !== wasMatchingStart) {
3677
+ start._validatorOnChange();
3678
+ }
3679
+ if (end && end._matchesFilter(end.value) !== wasMatchingEnd) {
3680
+ end._validatorOnChange();
3681
+ }
3663
3682
  },
3664
3683
  enumerable: false,
3665
3684
  configurable: true
@@ -3937,6 +3956,7 @@
3937
3956
  overlay.OverlayModule,
3938
3957
  a11y.A11yModule,
3939
3958
  portal.PortalModule,
3959
+ core.MatCommonModule,
3940
3960
  ],
3941
3961
  exports: [
3942
3962
  scrolling.CdkScrollableModule,