@angular/material 10.1.1 → 10.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (663) hide show
  1. package/_theming.scss +46 -20
  2. package/autocomplete/autocomplete-origin.d.ts +8 -5
  3. package/autocomplete/autocomplete-trigger.d.ts +23 -17
  4. package/autocomplete/autocomplete.d.ts +23 -12
  5. package/autocomplete/index.metadata.json +1 -1
  6. package/badge/badge.d.ts +3 -1
  7. package/badge/index.metadata.json +1 -1
  8. package/bottom-sheet/index.metadata.json +1 -1
  9. package/bundles/material-autocomplete-testing.umd.js +316 -256
  10. package/bundles/material-autocomplete-testing.umd.js.map +1 -1
  11. package/bundles/material-autocomplete-testing.umd.min.js +2 -16
  12. package/bundles/material-autocomplete-testing.umd.min.js.map +1 -1
  13. package/bundles/material-autocomplete.umd.js +553 -436
  14. package/bundles/material-autocomplete.umd.js.map +1 -1
  15. package/bundles/material-autocomplete.umd.min.js +3 -25
  16. package/bundles/material-autocomplete.umd.min.js.map +1 -1
  17. package/bundles/material-badge-testing.umd.js +301 -243
  18. package/bundles/material-badge-testing.umd.js.map +1 -1
  19. package/bundles/material-badge-testing.umd.min.js +2 -16
  20. package/bundles/material-badge-testing.umd.min.js.map +1 -1
  21. package/bundles/material-badge.umd.js +356 -282
  22. package/bundles/material-badge.umd.js.map +1 -1
  23. package/bundles/material-badge.umd.min.js +2 -2
  24. package/bundles/material-badge.umd.min.js.map +1 -1
  25. package/bundles/material-bottom-sheet-testing.umd.js +302 -244
  26. package/bundles/material-bottom-sheet-testing.umd.js.map +1 -1
  27. package/bundles/material-bottom-sheet-testing.umd.min.js +2 -16
  28. package/bundles/material-bottom-sheet-testing.umd.min.js.map +1 -1
  29. package/bundles/material-bottom-sheet.umd.js +376 -302
  30. package/bundles/material-bottom-sheet.umd.js.map +1 -1
  31. package/bundles/material-bottom-sheet.umd.min.js +17 -2
  32. package/bundles/material-bottom-sheet.umd.min.js.map +1 -1
  33. package/bundles/material-button-testing.umd.js +310 -252
  34. package/bundles/material-button-testing.umd.js.map +1 -1
  35. package/bundles/material-button-testing.umd.min.js +2 -16
  36. package/bundles/material-button-testing.umd.min.js.map +1 -1
  37. package/bundles/material-button-toggle-testing.umd.js +304 -261
  38. package/bundles/material-button-toggle-testing.umd.js.map +1 -1
  39. package/bundles/material-button-toggle-testing.umd.min.js +2 -31
  40. package/bundles/material-button-toggle-testing.umd.min.js.map +1 -1
  41. package/bundles/material-button-toggle.umd.js +388 -322
  42. package/bundles/material-button-toggle.umd.js.map +1 -1
  43. package/bundles/material-button-toggle.umd.min.js +2 -10
  44. package/bundles/material-button-toggle.umd.min.js.map +1 -1
  45. package/bundles/material-button.umd.js +375 -309
  46. package/bundles/material-button.umd.js.map +1 -1
  47. package/bundles/material-button.umd.min.js +2 -10
  48. package/bundles/material-button.umd.min.js.map +1 -1
  49. package/bundles/material-card-testing.umd.js +306 -250
  50. package/bundles/material-card-testing.umd.js.map +1 -1
  51. package/bundles/material-card-testing.umd.min.js +2 -16
  52. package/bundles/material-card-testing.umd.min.js.map +1 -1
  53. package/bundles/material-card.umd.js +139 -139
  54. package/bundles/material-card.umd.js.map +1 -1
  55. package/bundles/material-card.umd.min.js +2 -2
  56. package/bundles/material-card.umd.min.js.map +1 -1
  57. package/bundles/material-checkbox-testing.umd.js +302 -244
  58. package/bundles/material-checkbox-testing.umd.js.map +1 -1
  59. package/bundles/material-checkbox-testing.umd.min.js +2 -16
  60. package/bundles/material-checkbox-testing.umd.min.js.map +1 -1
  61. package/bundles/material-checkbox.umd.js +371 -312
  62. package/bundles/material-checkbox.umd.js.map +1 -1
  63. package/bundles/material-checkbox.umd.min.js +2 -9
  64. package/bundles/material-checkbox.umd.min.js.map +1 -1
  65. package/bundles/material-chips-testing.umd.js +802 -0
  66. package/bundles/material-chips-testing.umd.js.map +1 -0
  67. package/bundles/material-chips-testing.umd.min.js +30 -0
  68. package/bundles/material-chips-testing.umd.min.js.map +1 -0
  69. package/bundles/material-chips.umd.js +598 -551
  70. package/bundles/material-chips.umd.js.map +1 -1
  71. package/bundles/material-chips.umd.min.js +18 -3
  72. package/bundles/material-chips.umd.min.js.map +1 -1
  73. package/bundles/material-core-testing.umd.js +304 -261
  74. package/bundles/material-core-testing.umd.js.map +1 -1
  75. package/bundles/material-core-testing.umd.min.js +2 -31
  76. package/bundles/material-core-testing.umd.min.js.map +1 -1
  77. package/bundles/material-core.umd.js +605 -540
  78. package/bundles/material-core.umd.js.map +1 -1
  79. package/bundles/material-core.umd.min.js +37 -12
  80. package/bundles/material-core.umd.min.js.map +1 -1
  81. package/bundles/material-datepicker-testing.umd.js +1342 -0
  82. package/bundles/material-datepicker-testing.umd.js.map +1 -0
  83. package/bundles/material-datepicker-testing.umd.min.js +30 -0
  84. package/bundles/material-datepicker-testing.umd.min.js.map +1 -0
  85. package/bundles/material-datepicker.umd.js +1014 -981
  86. package/bundles/material-datepicker.umd.js.map +1 -1
  87. package/bundles/material-datepicker.umd.min.js +43 -9
  88. package/bundles/material-datepicker.umd.min.js.map +1 -1
  89. package/bundles/material-dialog-testing.umd.js +303 -245
  90. package/bundles/material-dialog-testing.umd.js.map +1 -1
  91. package/bundles/material-dialog-testing.umd.min.js +2 -16
  92. package/bundles/material-dialog-testing.umd.min.js.map +1 -1
  93. package/bundles/material-dialog.umd.js +597 -476
  94. package/bundles/material-dialog.umd.js.map +1 -1
  95. package/bundles/material-dialog.umd.min.js +10 -8
  96. package/bundles/material-dialog.umd.min.js.map +1 -1
  97. package/bundles/material-divider-testing.umd.js +300 -242
  98. package/bundles/material-divider-testing.umd.js.map +1 -1
  99. package/bundles/material-divider-testing.umd.min.js +2 -16
  100. package/bundles/material-divider-testing.umd.min.js.map +1 -1
  101. package/bundles/material-divider.umd.js +28 -28
  102. package/bundles/material-divider.umd.js.map +1 -1
  103. package/bundles/material-divider.umd.min.js +2 -9
  104. package/bundles/material-divider.umd.min.js.map +1 -1
  105. package/bundles/material-expansion-testing.umd.js +303 -254
  106. package/bundles/material-expansion-testing.umd.js.map +1 -1
  107. package/bundles/material-expansion-testing.umd.min.js +2 -17
  108. package/bundles/material-expansion-testing.umd.min.js.map +1 -1
  109. package/bundles/material-expansion.umd.js +471 -433
  110. package/bundles/material-expansion.umd.js.map +1 -1
  111. package/bundles/material-expansion.umd.min.js +12 -4
  112. package/bundles/material-expansion.umd.min.js.map +1 -1
  113. package/bundles/material-form-field-testing-control.umd.js +299 -233
  114. package/bundles/material-form-field-testing-control.umd.js.map +1 -1
  115. package/bundles/material-form-field-testing-control.umd.min.js.map +1 -1
  116. package/bundles/material-form-field-testing.umd.js +301 -243
  117. package/bundles/material-form-field-testing.umd.js.map +1 -1
  118. package/bundles/material-form-field-testing.umd.min.js +3 -17
  119. package/bundles/material-form-field-testing.umd.min.js.map +1 -1
  120. package/bundles/material-form-field.umd.js +480 -417
  121. package/bundles/material-form-field.umd.js.map +1 -1
  122. package/bundles/material-form-field.umd.min.js +51 -4
  123. package/bundles/material-form-field.umd.min.js.map +1 -1
  124. package/bundles/material-grid-list-testing.umd.js +311 -260
  125. package/bundles/material-grid-list-testing.umd.js.map +1 -1
  126. package/bundles/material-grid-list-testing.umd.min.js +2 -24
  127. package/bundles/material-grid-list-testing.umd.min.js.map +1 -1
  128. package/bundles/material-grid-list.umd.js +414 -340
  129. package/bundles/material-grid-list.umd.js.map +1 -1
  130. package/bundles/material-grid-list.umd.min.js +20 -5
  131. package/bundles/material-grid-list.umd.min.js.map +1 -1
  132. package/bundles/material-icon-testing.umd.js +409 -12
  133. package/bundles/material-icon-testing.umd.js.map +1 -1
  134. package/bundles/material-icon-testing.umd.min.js +18 -3
  135. package/bundles/material-icon-testing.umd.min.js.map +1 -1
  136. package/bundles/material-icon.umd.js +404 -336
  137. package/bundles/material-icon.umd.js.map +1 -1
  138. package/bundles/material-icon.umd.min.js +2 -9
  139. package/bundles/material-icon.umd.min.js.map +1 -1
  140. package/bundles/material-input-testing.umd.js +309 -262
  141. package/bundles/material-input-testing.umd.js.map +1 -1
  142. package/bundles/material-input-testing.umd.min.js +2 -16
  143. package/bundles/material-input-testing.umd.min.js.map +1 -1
  144. package/bundles/material-input.umd.js +399 -333
  145. package/bundles/material-input.umd.js.map +1 -1
  146. package/bundles/material-input.umd.min.js +5 -18
  147. package/bundles/material-input.umd.min.js.map +1 -1
  148. package/bundles/material-list-testing.umd.js +333 -311
  149. package/bundles/material-list-testing.umd.js.map +1 -1
  150. package/bundles/material-list-testing.umd.min.js +1 -9
  151. package/bundles/material-list-testing.umd.min.js.map +1 -1
  152. package/bundles/material-list.umd.js +527 -466
  153. package/bundles/material-list.umd.js.map +1 -1
  154. package/bundles/material-list.umd.min.js +2 -10
  155. package/bundles/material-list.umd.min.js.map +1 -1
  156. package/bundles/material-menu-testing.umd.js +305 -247
  157. package/bundles/material-menu-testing.umd.js.map +1 -1
  158. package/bundles/material-menu-testing.umd.min.js +2 -17
  159. package/bundles/material-menu-testing.umd.min.js.map +1 -1
  160. package/bundles/material-menu.umd.js +476 -429
  161. package/bundles/material-menu.umd.js.map +1 -1
  162. package/bundles/material-menu.umd.min.js +3 -17
  163. package/bundles/material-menu.umd.min.js.map +1 -1
  164. package/bundles/material-paginator-testing.umd.js +302 -244
  165. package/bundles/material-paginator-testing.umd.js.map +1 -1
  166. package/bundles/material-paginator-testing.umd.min.js +2 -16
  167. package/bundles/material-paginator-testing.umd.min.js.map +1 -1
  168. package/bundles/material-paginator.umd.js +349 -280
  169. package/bundles/material-paginator.umd.js.map +1 -1
  170. package/bundles/material-paginator.umd.min.js +2 -9
  171. package/bundles/material-paginator.umd.min.js.map +1 -1
  172. package/bundles/material-progress-bar-testing.umd.js +301 -243
  173. package/bundles/material-progress-bar-testing.umd.js.map +1 -1
  174. package/bundles/material-progress-bar-testing.umd.min.js +2 -16
  175. package/bundles/material-progress-bar-testing.umd.min.js.map +1 -1
  176. package/bundles/material-progress-bar.umd.js +339 -266
  177. package/bundles/material-progress-bar.umd.js.map +1 -1
  178. package/bundles/material-progress-bar.umd.min.js +4 -3
  179. package/bundles/material-progress-bar.umd.min.js.map +1 -1
  180. package/bundles/material-progress-spinner-testing.umd.js +301 -243
  181. package/bundles/material-progress-spinner-testing.umd.js.map +1 -1
  182. package/bundles/material-progress-spinner-testing.umd.min.js +2 -16
  183. package/bundles/material-progress-spinner-testing.umd.min.js.map +1 -1
  184. package/bundles/material-progress-spinner.umd.js +420 -365
  185. package/bundles/material-progress-spinner.umd.js.map +1 -1
  186. package/bundles/material-progress-spinner.umd.min.js +3 -11
  187. package/bundles/material-progress-spinner.umd.min.js.map +1 -1
  188. package/bundles/material-radio-testing.umd.js +304 -246
  189. package/bundles/material-radio-testing.umd.js.map +1 -1
  190. package/bundles/material-radio-testing.umd.min.js +2 -17
  191. package/bundles/material-radio-testing.umd.min.js.map +1 -1
  192. package/bundles/material-radio.umd.js +405 -339
  193. package/bundles/material-radio.umd.js.map +1 -1
  194. package/bundles/material-radio.umd.min.js +2 -10
  195. package/bundles/material-radio.umd.min.js.map +1 -1
  196. package/bundles/material-select-testing.umd.js +316 -260
  197. package/bundles/material-select-testing.umd.js.map +1 -1
  198. package/bundles/material-select-testing.umd.min.js +2 -16
  199. package/bundles/material-select-testing.umd.min.js.map +1 -1
  200. package/bundles/material-select.umd.js +469 -389
  201. package/bundles/material-select.umd.js.map +1 -1
  202. package/bundles/material-select.umd.min.js +5 -12
  203. package/bundles/material-select.umd.min.js.map +1 -1
  204. package/bundles/material-sidenav-testing.umd.js +303 -252
  205. package/bundles/material-sidenav-testing.umd.js.map +1 -1
  206. package/bundles/material-sidenav-testing.umd.min.js +1 -23
  207. package/bundles/material-sidenav-testing.umd.min.js.map +1 -1
  208. package/bundles/material-sidenav.umd.js +535 -496
  209. package/bundles/material-sidenav.umd.js.map +1 -1
  210. package/bundles/material-sidenav.umd.min.js +3 -3
  211. package/bundles/material-sidenav.umd.min.js.map +1 -1
  212. package/bundles/material-slide-toggle-testing.umd.js +302 -244
  213. package/bundles/material-slide-toggle-testing.umd.js.map +1 -1
  214. package/bundles/material-slide-toggle-testing.umd.min.js +2 -16
  215. package/bundles/material-slide-toggle-testing.umd.min.js.map +1 -1
  216. package/bundles/material-slide-toggle.umd.js +373 -314
  217. package/bundles/material-slide-toggle.umd.js.map +1 -1
  218. package/bundles/material-slide-toggle.umd.min.js +2 -9
  219. package/bundles/material-slide-toggle.umd.min.js.map +1 -1
  220. package/bundles/material-slider-testing.umd.js +302 -236
  221. package/bundles/material-slider-testing.umd.js.map +1 -1
  222. package/bundles/material-slider-testing.umd.min.js +2 -9
  223. package/bundles/material-slider-testing.umd.min.js.map +1 -1
  224. package/bundles/material-slider.umd.js +479 -448
  225. package/bundles/material-slider.umd.js.map +1 -1
  226. package/bundles/material-slider.umd.min.js +4 -3
  227. package/bundles/material-slider.umd.min.js.map +1 -1
  228. package/bundles/material-snack-bar-testing.umd.js +304 -246
  229. package/bundles/material-snack-bar-testing.umd.js.map +1 -1
  230. package/bundles/material-snack-bar-testing.umd.min.js +2 -16
  231. package/bundles/material-snack-bar-testing.umd.min.js.map +1 -1
  232. package/bundles/material-snack-bar.umd.js +394 -317
  233. package/bundles/material-snack-bar.umd.js.map +1 -1
  234. package/bundles/material-snack-bar.umd.min.js +26 -2
  235. package/bundles/material-snack-bar.umd.min.js.map +1 -1
  236. package/bundles/material-sort-testing.umd.js +302 -243
  237. package/bundles/material-sort-testing.umd.js.map +1 -1
  238. package/bundles/material-sort-testing.umd.min.js +2 -17
  239. package/bundles/material-sort-testing.umd.min.js.map +1 -1
  240. package/bundles/material-sort.umd.js +383 -326
  241. package/bundles/material-sort.umd.js.map +1 -1
  242. package/bundles/material-sort.umd.min.js +3 -33
  243. package/bundles/material-sort.umd.min.js.map +1 -1
  244. package/bundles/material-stepper-testing.umd.js +727 -0
  245. package/bundles/material-stepper-testing.umd.js.map +1 -0
  246. package/bundles/material-stepper-testing.umd.min.js +30 -0
  247. package/bundles/material-stepper-testing.umd.min.js.map +1 -0
  248. package/bundles/material-stepper.umd.js +496 -446
  249. package/bundles/material-stepper.umd.js.map +1 -1
  250. package/bundles/material-stepper.umd.min.js +4 -11
  251. package/bundles/material-stepper.umd.min.js.map +1 -1
  252. package/bundles/material-table-testing.umd.js +317 -265
  253. package/bundles/material-table-testing.umd.js.map +1 -1
  254. package/bundles/material-table-testing.umd.min.js +2 -24
  255. package/bundles/material-table-testing.umd.min.js.map +1 -1
  256. package/bundles/material-table.umd.js +521 -465
  257. package/bundles/material-table.umd.js.map +1 -1
  258. package/bundles/material-table.umd.min.js +4 -11
  259. package/bundles/material-table.umd.min.js.map +1 -1
  260. package/bundles/material-tabs-testing.umd.js +303 -244
  261. package/bundles/material-tabs-testing.umd.js.map +1 -1
  262. package/bundles/material-tabs-testing.umd.min.js +1 -16
  263. package/bundles/material-tabs-testing.umd.min.js.map +1 -1
  264. package/bundles/material-tabs.umd.js +677 -646
  265. package/bundles/material-tabs.umd.js.map +1 -1
  266. package/bundles/material-tabs.umd.min.js +29 -4
  267. package/bundles/material-tabs.umd.min.js.map +1 -1
  268. package/bundles/material-toolbar-testing.umd.js +301 -243
  269. package/bundles/material-toolbar-testing.umd.js.map +1 -1
  270. package/bundles/material-toolbar-testing.umd.min.js +2 -16
  271. package/bundles/material-toolbar-testing.umd.min.js.map +1 -1
  272. package/bundles/material-toolbar.umd.js +350 -286
  273. package/bundles/material-toolbar.umd.js.map +1 -1
  274. package/bundles/material-toolbar.umd.min.js +4 -3
  275. package/bundles/material-toolbar.umd.min.js.map +1 -1
  276. package/bundles/material-tooltip-testing.umd.js +301 -243
  277. package/bundles/material-tooltip-testing.umd.js.map +1 -1
  278. package/bundles/material-tooltip-testing.umd.min.js +2 -16
  279. package/bundles/material-tooltip-testing.umd.min.js.map +1 -1
  280. package/bundles/material-tooltip.umd.js +424 -324
  281. package/bundles/material-tooltip.umd.js.map +1 -1
  282. package/bundles/material-tooltip.umd.min.js +11 -3
  283. package/bundles/material-tooltip.umd.min.js.map +1 -1
  284. package/bundles/material-tree.umd.js +446 -385
  285. package/bundles/material-tree.umd.js.map +1 -1
  286. package/bundles/material-tree.umd.min.js +3 -3
  287. package/bundles/material-tree.umd.min.js.map +1 -1
  288. package/button/index.metadata.json +1 -1
  289. package/chips/chip-default-options.d.ts +1 -1
  290. package/chips/chip-input.d.ts +1 -1
  291. package/chips/chip.d.ts +2 -2
  292. package/chips/index.metadata.json +1 -1
  293. package/chips/testing/chip-harness-filters.d.ts +28 -0
  294. package/chips/testing/chip-harness.d.ts +41 -0
  295. package/chips/testing/chip-input-harness.d.ts +47 -0
  296. package/chips/testing/chip-list-harness.d.ts +49 -0
  297. package/chips/testing/chip-remove-harness.d.ts +22 -0
  298. package/chips/testing/index.d.ts +8 -0
  299. package/chips/testing/package.json +9 -0
  300. package/chips/testing/public-api.d.ts +12 -0
  301. package/core/common-behaviors/color.d.ts +2 -0
  302. package/core/common-behaviors/constructor.d.ts +7 -0
  303. package/core/common-behaviors/disable-ripple.d.ts +2 -2
  304. package/core/common-behaviors/tabindex.d.ts +4 -2
  305. package/core/datetime/date-adapter.d.ts +9 -2
  306. package/core/index.metadata.json +1 -1
  307. package/core/option/optgroup.d.ts +8 -6
  308. package/core/option/option.d.ts +12 -9
  309. package/core/style/_vendor-prefixes.scss +5 -0
  310. package/datepicker/_datepicker-theme.scss +42 -21
  311. package/datepicker/calendar-body.d.ts +15 -4
  312. package/datepicker/calendar.d.ts +2 -7
  313. package/datepicker/date-range-input.d.ts +0 -5
  314. package/datepicker/date-range-selection-strategy.d.ts +5 -1
  315. package/datepicker/datepicker-base.d.ts +9 -11
  316. package/datepicker/datepicker-input-base.d.ts +0 -5
  317. package/datepicker/index.d.ts +4 -3
  318. package/datepicker/index.metadata.json +1 -1
  319. package/datepicker/month-view.d.ts +5 -9
  320. package/datepicker/multi-year-view.d.ts +3 -6
  321. package/datepicker/public-api.d.ts +1 -1
  322. package/datepicker/testing/calendar-cell-harness.d.ts +64 -0
  323. package/datepicker/testing/calendar-harness.d.ts +53 -0
  324. package/datepicker/testing/date-range-input-harness.d.ts +59 -0
  325. package/datepicker/testing/datepicker-harness-filters.d.ts +45 -0
  326. package/datepicker/testing/datepicker-input-harness-base.d.ts +43 -0
  327. package/datepicker/testing/datepicker-input-harness.d.ts +36 -0
  328. package/datepicker/testing/datepicker-toggle-harness.d.ts +28 -0
  329. package/datepicker/testing/datepicker-trigger-harness-base.d.ts +44 -0
  330. package/datepicker/testing/index.d.ts +8 -0
  331. package/datepicker/testing/package.json +9 -0
  332. package/datepicker/testing/public-api.d.ts +13 -0
  333. package/datepicker/year-view.d.ts +3 -6
  334. package/dialog/dialog-config.d.ts +1 -1
  335. package/dialog/dialog-container.d.ts +39 -22
  336. package/dialog/dialog-ref.d.ts +3 -3
  337. package/dialog/dialog.d.ts +25 -14
  338. package/dialog/index.metadata.json +1 -1
  339. package/esm2015/autocomplete/autocomplete-module.js +10 -5
  340. package/esm2015/autocomplete/autocomplete-origin.js +15 -9
  341. package/esm2015/autocomplete/autocomplete-trigger.js +73 -53
  342. package/esm2015/autocomplete/autocomplete.js +35 -22
  343. package/esm2015/autocomplete/testing/autocomplete-harness-filters.js +1 -0
  344. package/esm2015/badge/badge.js +15 -7
  345. package/esm2015/badge/testing/badge-harness-filters.js +1 -0
  346. package/esm2015/bottom-sheet/bottom-sheet-container.js +2 -2
  347. package/esm2015/bottom-sheet/bottom-sheet-ref.js +3 -3
  348. package/esm2015/bottom-sheet/bottom-sheet.js +14 -13
  349. package/esm2015/bottom-sheet/testing/bottom-sheet-harness-filters.js +1 -0
  350. package/esm2015/button/button.js +3 -3
  351. package/esm2015/button/testing/button-harness-filters.js +1 -0
  352. package/esm2015/button-toggle/button-toggle.js +2 -2
  353. package/esm2015/button-toggle/testing/button-toggle-group-harness-filters.js +1 -0
  354. package/esm2015/button-toggle/testing/button-toggle-group-harness.js +2 -2
  355. package/esm2015/button-toggle/testing/button-toggle-harness-filters.js +1 -0
  356. package/esm2015/button-toggle/testing/button-toggle-harness.js +2 -2
  357. package/esm2015/card/testing/card-harness-filters.js +1 -0
  358. package/esm2015/card/testing/card-harness.js +2 -2
  359. package/esm2015/checkbox/checkbox.js +2 -2
  360. package/esm2015/checkbox/testing/checkbox-harness-filters.js +1 -0
  361. package/esm2015/checkbox/testing/checkbox-harness.js +2 -2
  362. package/esm2015/chips/chip-default-options.js +1 -1
  363. package/esm2015/chips/chip-input.js +3 -8
  364. package/esm2015/chips/chip-list.js +7 -13
  365. package/esm2015/chips/chip-text-control.js +1 -0
  366. package/esm2015/chips/chip.js +1 -2
  367. package/esm2015/chips/testing/chip-harness-filters.js +2 -0
  368. package/esm2015/chips/testing/chip-harness.js +82 -0
  369. package/esm2015/chips/testing/chip-input-harness.js +101 -0
  370. package/esm2015/chips/testing/chip-list-harness.js +94 -0
  371. package/esm2015/chips/testing/chip-remove-harness.js +29 -0
  372. package/esm2015/chips/testing/index.js +9 -0
  373. package/esm2015/chips/testing/public-api.js +13 -0
  374. package/esm2015/chips/testing/testing.externs.js +0 -0
  375. package/esm2015/core/common-behaviors/color.js +3 -2
  376. package/esm2015/core/common-behaviors/common-module.js +6 -2
  377. package/esm2015/core/common-behaviors/constructor.js +2 -1
  378. package/esm2015/core/common-behaviors/disable-ripple.js +7 -3
  379. package/esm2015/core/common-behaviors/initialized.js +2 -2
  380. package/esm2015/core/common-behaviors/tabindex.js +11 -4
  381. package/esm2015/core/datetime/date-adapter.js +12 -3
  382. package/esm2015/core/datetime/native-date-adapter.js +11 -9
  383. package/esm2015/core/option/optgroup.js +16 -11
  384. package/esm2015/core/option/option.js +29 -16
  385. package/esm2015/core/testing/optgroup-harness-filters.js +1 -0
  386. package/esm2015/core/testing/option-harness-filters.js +1 -0
  387. package/esm2015/core/version.js +1 -1
  388. package/esm2015/datepicker/calendar-body.js +20 -5
  389. package/esm2015/datepicker/calendar.js +13 -18
  390. package/esm2015/datepicker/date-range-input-parts.js +5 -5
  391. package/esm2015/datepicker/date-range-input.js +15 -16
  392. package/esm2015/datepicker/date-range-picker.js +6 -2
  393. package/esm2015/datepicker/date-range-selection-strategy.js +12 -2
  394. package/esm2015/datepicker/date-selection-model.js +2 -2
  395. package/esm2015/datepicker/datepicker-base.js +17 -19
  396. package/esm2015/datepicker/datepicker-input-base.js +13 -18
  397. package/esm2015/datepicker/datepicker-input.js +7 -3
  398. package/esm2015/datepicker/datepicker-module.js +2 -7
  399. package/esm2015/datepicker/datepicker-toggle.js +3 -1
  400. package/esm2015/datepicker/index.js +5 -4
  401. package/esm2015/datepicker/month-view.js +19 -18
  402. package/esm2015/datepicker/multi-year-view.js +12 -16
  403. package/esm2015/datepicker/public-api.js +2 -2
  404. package/esm2015/datepicker/testing/calendar-cell-harness.js +181 -0
  405. package/esm2015/datepicker/testing/calendar-harness.js +91 -0
  406. package/esm2015/datepicker/testing/date-range-input-harness.js +116 -0
  407. package/esm2015/datepicker/testing/datepicker-harness-filters.js +9 -0
  408. package/esm2015/datepicker/testing/datepicker-input-harness-base.js +100 -0
  409. package/esm2015/datepicker/testing/datepicker-input-harness.js +69 -0
  410. package/esm2015/datepicker/testing/datepicker-toggle-harness.js +48 -0
  411. package/esm2015/datepicker/testing/datepicker-trigger-harness-base.js +77 -0
  412. package/esm2015/datepicker/testing/index.js +9 -0
  413. package/esm2015/datepicker/testing/public-api.js +14 -0
  414. package/esm2015/datepicker/testing/testing.externs.js +0 -0
  415. package/esm2015/datepicker/year-view.js +18 -20
  416. package/esm2015/dialog/dialog-config.js +1 -1
  417. package/esm2015/dialog/dialog-container.js +73 -50
  418. package/esm2015/dialog/dialog-content-directives.js +9 -3
  419. package/esm2015/dialog/dialog-ref.js +8 -8
  420. package/esm2015/dialog/dialog.js +58 -29
  421. package/esm2015/dialog/testing/dialog-harness-filters.js +1 -0
  422. package/esm2015/divider/testing/divider-harness-filters.js +1 -0
  423. package/esm2015/divider/testing/divider-harness.js +2 -2
  424. package/esm2015/expansion/accordion.js +3 -20
  425. package/esm2015/expansion/expansion-panel-header.js +7 -13
  426. package/esm2015/expansion/expansion-panel.js +7 -6
  427. package/esm2015/expansion/testing/expansion-harness-filters.js +1 -0
  428. package/esm2015/form-field/form-field-control.js +1 -1
  429. package/esm2015/form-field/form-field.js +26 -17
  430. package/esm2015/form-field/testing/form-field-harness-filters.js +1 -0
  431. package/esm2015/grid-list/grid-list.js +2 -2
  432. package/esm2015/grid-list/testing/grid-list-harness-filters.js +1 -0
  433. package/esm2015/grid-list/tile-coordinator.js +2 -2
  434. package/esm2015/grid-list/tile-styler.js +4 -3
  435. package/esm2015/icon/icon-registry.js +44 -52
  436. package/esm2015/icon/icon.js +13 -2
  437. package/esm2015/icon/testing/icon-harness-filters.js +9 -0
  438. package/esm2015/icon/testing/icon-harness.js +63 -0
  439. package/esm2015/icon/testing/public-api.js +3 -1
  440. package/esm2015/input/input.js +17 -10
  441. package/esm2015/input/testing/input-harness-filters.js +1 -0
  442. package/esm2015/input/testing/input-harness.js +7 -7
  443. package/esm2015/list/list.js +2 -2
  444. package/esm2015/list/selection-list.js +33 -31
  445. package/esm2015/list/testing/action-list-harness.js +2 -2
  446. package/esm2015/list/testing/list-harness-filters.js +1 -0
  447. package/esm2015/list/testing/list-harness.js +2 -2
  448. package/esm2015/list/testing/list-item-harness-base.js +2 -2
  449. package/esm2015/list/testing/nav-list-harness.js +2 -2
  450. package/esm2015/list/testing/selection-list-harness.js +3 -3
  451. package/esm2015/menu/menu-positions.js +1 -0
  452. package/esm2015/menu/menu-trigger.js +12 -6
  453. package/esm2015/menu/menu.js +11 -14
  454. package/esm2015/menu/testing/menu-harness-filters.js +1 -0
  455. package/esm2015/paginator/paginator.js +6 -3
  456. package/esm2015/paginator/testing/paginator-harness-filters.js +1 -0
  457. package/esm2015/progress-bar/testing/progress-bar-harness-filters.js +1 -0
  458. package/esm2015/progress-bar/testing/progress-bar-harness.js +2 -2
  459. package/esm2015/progress-spinner/progress-spinner.js +25 -16
  460. package/esm2015/progress-spinner/testing/progress-spinner-harness-filters.js +1 -0
  461. package/esm2015/progress-spinner/testing/progress-spinner-harness.js +2 -2
  462. package/esm2015/radio/radio.js +1 -1
  463. package/esm2015/radio/testing/radio-harness-filters.js +1 -0
  464. package/esm2015/radio/testing/radio-harness.js +3 -3
  465. package/esm2015/select/select.js +71 -57
  466. package/esm2015/select/testing/select-harness-filters.js +1 -0
  467. package/esm2015/select/testing/select-harness.js +2 -3
  468. package/esm2015/sidenav/drawer.js +23 -28
  469. package/esm2015/sidenav/testing/drawer-harness-filters.js +1 -0
  470. package/esm2015/slide-toggle/testing/slide-toggle-harness-filters.js +1 -0
  471. package/esm2015/slide-toggle/testing/slide-toggle-harness.js +2 -2
  472. package/esm2015/slider/slider.js +28 -31
  473. package/esm2015/slider/testing/slider-harness-filters.js +1 -0
  474. package/esm2015/slider/testing/slider-harness.js +2 -2
  475. package/esm2015/snack-bar/snack-bar-container.js +3 -3
  476. package/esm2015/snack-bar/snack-bar-ref.js +3 -3
  477. package/esm2015/snack-bar/snack-bar.js +13 -9
  478. package/esm2015/snack-bar/testing/snack-bar-harness-filters.js +1 -0
  479. package/esm2015/sort/sort-direction.js +1 -0
  480. package/esm2015/sort/sort-header.js +6 -3
  481. package/esm2015/sort/sort.js +11 -8
  482. package/esm2015/sort/testing/sort-harness-filters.js +1 -0
  483. package/esm2015/stepper/step-header.js +2 -2
  484. package/esm2015/stepper/stepper-button.js +3 -1
  485. package/esm2015/stepper/stepper.js +7 -4
  486. package/esm2015/stepper/testing/index.js +9 -0
  487. package/esm2015/stepper/testing/public-api.js +12 -0
  488. package/esm2015/stepper/testing/step-harness-filters.js +2 -0
  489. package/esm2015/stepper/testing/step-harness.js +132 -0
  490. package/esm2015/stepper/testing/stepper-button-harnesses.js +55 -0
  491. package/esm2015/stepper/testing/stepper-harness.js +57 -0
  492. package/esm2015/stepper/testing/testing.externs.js +0 -0
  493. package/esm2015/table/cell.js +15 -26
  494. package/esm2015/table/table-data-source.js +14 -1
  495. package/esm2015/table/table.js +11 -4
  496. package/esm2015/table/testing/table-harness-filters.js +1 -0
  497. package/esm2015/tabs/paginated-tab-header.js +3 -10
  498. package/esm2015/tabs/tab-nav-bar/tab-nav-bar.js +3 -3
  499. package/esm2015/tabs/tab.js +17 -10
  500. package/esm2015/tabs/testing/tab-harness-filters.js +1 -0
  501. package/esm2015/toolbar/testing/toolbar-harness-filters.js +1 -0
  502. package/esm2015/toolbar/testing/toolbar-harness.js +2 -2
  503. package/esm2015/toolbar/toolbar.js +15 -17
  504. package/esm2015/tooltip/testing/tooltip-harness-filters.js +1 -0
  505. package/esm2015/tooltip/tooltip.js +53 -31
  506. package/esm2015/tree/node.js +2 -2
  507. package/esm2015/tree/padding.js +7 -1
  508. package/esm2015/tree/toggle.js +8 -4
  509. package/expansion/expansion-panel-header.d.ts +6 -12
  510. package/expansion/expansion-panel.d.ts +5 -4
  511. package/expansion/index.metadata.json +1 -1
  512. package/fesm2015/autocomplete.js +128 -84
  513. package/fesm2015/autocomplete.js.map +1 -1
  514. package/fesm2015/badge.js +14 -6
  515. package/fesm2015/badge.js.map +1 -1
  516. package/fesm2015/bottom-sheet.js +17 -16
  517. package/fesm2015/bottom-sheet.js.map +1 -1
  518. package/fesm2015/button-toggle/testing.js +2 -2
  519. package/fesm2015/button-toggle/testing.js.map +1 -1
  520. package/fesm2015/button-toggle.js +1 -1
  521. package/fesm2015/button-toggle.js.map +1 -1
  522. package/fesm2015/button.js +2 -2
  523. package/fesm2015/button.js.map +1 -1
  524. package/fesm2015/card/testing.js +1 -1
  525. package/fesm2015/card/testing.js.map +1 -1
  526. package/fesm2015/checkbox/testing.js +1 -1
  527. package/fesm2015/checkbox/testing.js.map +1 -1
  528. package/fesm2015/checkbox.js +1 -1
  529. package/fesm2015/checkbox.js.map +1 -1
  530. package/fesm2015/chips/testing.js +316 -0
  531. package/fesm2015/chips/testing.js.map +1 -0
  532. package/fesm2015/chips.js +7 -19
  533. package/fesm2015/chips.js.map +1 -1
  534. package/fesm2015/core.js +87 -42
  535. package/fesm2015/core.js.map +1 -1
  536. package/fesm2015/datepicker/testing.js +690 -0
  537. package/fesm2015/datepicker/testing.js.map +1 -0
  538. package/fesm2015/datepicker.js +146 -134
  539. package/fesm2015/datepicker.js.map +1 -1
  540. package/fesm2015/dialog.js +143 -85
  541. package/fesm2015/dialog.js.map +1 -1
  542. package/fesm2015/divider/testing.js +1 -1
  543. package/fesm2015/divider/testing.js.map +1 -1
  544. package/fesm2015/expansion.js +9 -30
  545. package/fesm2015/expansion.js.map +1 -1
  546. package/fesm2015/form-field.js +25 -16
  547. package/fesm2015/form-field.js.map +1 -1
  548. package/fesm2015/grid-list.js +5 -4
  549. package/fesm2015/grid-list.js.map +1 -1
  550. package/fesm2015/icon/testing.js +72 -1
  551. package/fesm2015/icon/testing.js.map +1 -1
  552. package/fesm2015/icon.js +56 -53
  553. package/fesm2015/icon.js.map +1 -1
  554. package/fesm2015/input/testing.js +6 -6
  555. package/fesm2015/input/testing.js.map +1 -1
  556. package/fesm2015/input.js +15 -8
  557. package/fesm2015/input.js.map +1 -1
  558. package/fesm2015/list/testing.js +6 -6
  559. package/fesm2015/list/testing.js.map +1 -1
  560. package/fesm2015/list.js +33 -31
  561. package/fesm2015/list.js.map +1 -1
  562. package/fesm2015/menu.js +20 -17
  563. package/fesm2015/menu.js.map +1 -1
  564. package/fesm2015/paginator.js +5 -2
  565. package/fesm2015/paginator.js.map +1 -1
  566. package/fesm2015/progress-bar/testing.js +1 -1
  567. package/fesm2015/progress-bar/testing.js.map +1 -1
  568. package/fesm2015/progress-spinner/testing.js +1 -1
  569. package/fesm2015/progress-spinner/testing.js.map +1 -1
  570. package/fesm2015/progress-spinner.js +24 -15
  571. package/fesm2015/progress-spinner.js.map +1 -1
  572. package/fesm2015/radio/testing.js +2 -2
  573. package/fesm2015/radio/testing.js.map +1 -1
  574. package/fesm2015/radio.js.map +1 -1
  575. package/fesm2015/select/testing.js +1 -2
  576. package/fesm2015/select/testing.js.map +1 -1
  577. package/fesm2015/select.js +70 -56
  578. package/fesm2015/select.js.map +1 -1
  579. package/fesm2015/sidenav.js +22 -27
  580. package/fesm2015/sidenav.js.map +1 -1
  581. package/fesm2015/slide-toggle/testing.js +1 -1
  582. package/fesm2015/slide-toggle/testing.js.map +1 -1
  583. package/fesm2015/slider/testing.js +1 -1
  584. package/fesm2015/slider/testing.js.map +1 -1
  585. package/fesm2015/slider.js +27 -30
  586. package/fesm2015/slider.js.map +1 -1
  587. package/fesm2015/snack-bar.js +17 -13
  588. package/fesm2015/snack-bar.js.map +1 -1
  589. package/fesm2015/sort.js +15 -9
  590. package/fesm2015/sort.js.map +1 -1
  591. package/fesm2015/stepper/testing.js +258 -0
  592. package/fesm2015/stepper/testing.js.map +1 -0
  593. package/fesm2015/stepper.js +10 -5
  594. package/fesm2015/stepper.js.map +1 -1
  595. package/fesm2015/table.js +37 -28
  596. package/fesm2015/table.js.map +1 -1
  597. package/fesm2015/tabs.js +20 -20
  598. package/fesm2015/tabs.js.map +1 -1
  599. package/fesm2015/toolbar/testing.js +1 -1
  600. package/fesm2015/toolbar/testing.js.map +1 -1
  601. package/fesm2015/toolbar.js +14 -16
  602. package/fesm2015/toolbar.js.map +1 -1
  603. package/fesm2015/tooltip.js +52 -30
  604. package/fesm2015/tooltip.js.map +1 -1
  605. package/fesm2015/tree.js +13 -4
  606. package/fesm2015/tree.js.map +1 -1
  607. package/form-field/form-field-control.d.ts +5 -0
  608. package/form-field/form-field.d.ts +8 -5
  609. package/form-field/index.metadata.json +1 -1
  610. package/icon/icon-registry.d.ts +4 -6
  611. package/icon/icon.d.ts +3 -1
  612. package/icon/index.metadata.json +1 -1
  613. package/icon/testing/icon-harness-filters.d.ts +22 -0
  614. package/icon/testing/icon-harness.d.ts +29 -0
  615. package/icon/testing/index.metadata.json +1 -1
  616. package/icon/testing/public-api.d.ts +2 -0
  617. package/input/index.metadata.json +1 -1
  618. package/input/input.d.ts +6 -3
  619. package/list/index.metadata.json +1 -1
  620. package/list/selection-list.d.ts +3 -7
  621. package/menu/index.metadata.json +1 -1
  622. package/package.json +2 -2
  623. package/paginator/index.metadata.json +1 -1
  624. package/paginator/paginator.d.ts +5 -0
  625. package/prebuilt-themes/deeppurple-amber.css +1 -1
  626. package/prebuilt-themes/indigo-pink.css +1 -1
  627. package/prebuilt-themes/pink-bluegrey.css +1 -1
  628. package/prebuilt-themes/purple-green.css +1 -1
  629. package/progress-spinner/index.metadata.json +1 -1
  630. package/progress-spinner/progress-spinner.d.ts +9 -5
  631. package/radio/index.metadata.json +1 -1
  632. package/radio/radio.d.ts +2 -2
  633. package/schematics/ng-add/index.js +1 -1
  634. package/schematics/ng-generate/tree/files/__path__/__name@dasherize@if-flat__/__name@dasherize__.component.html.template +1 -1
  635. package/schematics/ng-update/data/index.js +1 -1
  636. package/select/index.metadata.json +1 -1
  637. package/select/select.d.ts +9 -8
  638. package/sidenav/drawer.d.ts +5 -5
  639. package/sidenav/index.metadata.json +1 -1
  640. package/slider/index.metadata.json +1 -1
  641. package/slider/slider.d.ts +8 -10
  642. package/snack-bar/index.metadata.json +1 -1
  643. package/sort/index.metadata.json +1 -1
  644. package/stepper/index.metadata.json +1 -1
  645. package/stepper/stepper.d.ts +3 -1
  646. package/stepper/testing/index.d.ts +8 -0
  647. package/stepper/testing/package.json +9 -0
  648. package/stepper/testing/public-api.d.ts +11 -0
  649. package/stepper/testing/step-harness-filters.d.ts +37 -0
  650. package/stepper/testing/step-harness.d.ts +57 -0
  651. package/stepper/testing/stepper-button-harnesses.d.ts +41 -0
  652. package/stepper/testing/stepper-harness.d.ts +35 -0
  653. package/table/cell.d.ts +9 -5
  654. package/table/index.metadata.json +1 -1
  655. package/table/table.d.ts +2 -0
  656. package/tabs/index.metadata.json +1 -1
  657. package/tabs/tab.d.ts +8 -1
  658. package/toolbar/index.metadata.json +1 -1
  659. package/tooltip/index.metadata.json +1 -1
  660. package/tooltip/tooltip.d.ts +6 -2
  661. package/tree/index.metadata.json +1 -1
  662. package/tree/padding.d.ts +4 -2
  663. package/tree/toggle.d.ts +2 -1
@@ -4,241 +4,307 @@
4
4
  (global = global || self, factory((global.ng = global.ng || {}, global.ng.material = global.ng.material || {}, global.ng.material.autocomplete = {}), global.ng.cdk.a11y, global.ng.cdk.coercion, global.ng.core, global.ng.material.core, global.rxjs, global.ng.common, global.ng.cdk.overlay, global.ng.cdk.scrolling, global.ng.cdk.bidi, global.ng.cdk.keycodes, global.ng.cdk.platform, global.ng.cdk.portal, global.ng.forms, global.ng.material.formField, global.rxjs.operators));
5
5
  }(this, (function (exports, a11y, coercion, core, core$1, rxjs, common, overlay, scrolling, bidi, keycodes, platform, portal, forms, formField, operators) { 'use strict';
6
6
 
7
- /*! *****************************************************************************
8
- Copyright (c) Microsoft Corporation.
9
-
10
- Permission to use, copy, modify, and/or distribute this software for any
11
- purpose with or without fee is hereby granted.
12
-
13
- THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
14
- REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
15
- AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
16
- INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
17
- LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
18
- OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
19
- PERFORMANCE OF THIS SOFTWARE.
20
- ***************************************************************************** */
21
- /* global Reflect, Promise */
22
-
23
- var extendStatics = function(d, b) {
24
- extendStatics = Object.setPrototypeOf ||
25
- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
26
- function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
27
- return extendStatics(d, b);
28
- };
29
-
30
- function __extends(d, b) {
31
- extendStatics(d, b);
32
- function __() { this.constructor = d; }
33
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
34
- }
35
-
36
- var __assign = function() {
37
- __assign = Object.assign || function __assign(t) {
38
- for (var s, i = 1, n = arguments.length; i < n; i++) {
39
- s = arguments[i];
40
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
41
- }
42
- return t;
43
- };
44
- return __assign.apply(this, arguments);
45
- };
46
-
47
- function __rest(s, e) {
48
- var t = {};
49
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
50
- t[p] = s[p];
51
- if (s != null && typeof Object.getOwnPropertySymbols === "function")
52
- for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
53
- if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
54
- t[p[i]] = s[p[i]];
55
- }
56
- return t;
57
- }
58
-
59
- function __decorate(decorators, target, key, desc) {
60
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
61
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
62
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
63
- return c > 3 && r && Object.defineProperty(target, key, r), r;
64
- }
65
-
66
- function __param(paramIndex, decorator) {
67
- return function (target, key) { decorator(target, key, paramIndex); }
68
- }
69
-
70
- function __metadata(metadataKey, metadataValue) {
71
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(metadataKey, metadataValue);
72
- }
73
-
74
- function __awaiter(thisArg, _arguments, P, generator) {
75
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
76
- return new (P || (P = Promise))(function (resolve, reject) {
77
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
78
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
79
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
80
- step((generator = generator.apply(thisArg, _arguments || [])).next());
81
- });
82
- }
83
-
84
- function __generator(thisArg, body) {
85
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
86
- return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
87
- function verb(n) { return function (v) { return step([n, v]); }; }
88
- function step(op) {
89
- if (f) throw new TypeError("Generator is already executing.");
90
- while (_) try {
91
- 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) return t;
92
- if (y = 0, t) op = [op[0] & 2, t.value];
93
- switch (op[0]) {
94
- case 0: case 1: t = op; break;
95
- case 4: _.label++; return { value: op[1], done: false };
96
- case 5: _.label++; y = op[1]; op = [0]; continue;
97
- case 7: op = _.ops.pop(); _.trys.pop(); continue;
98
- default:
99
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
100
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
101
- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
102
- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
103
- if (t[2]) _.ops.pop();
104
- _.trys.pop(); continue;
105
- }
106
- op = body.call(thisArg, _);
107
- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
108
- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
109
- }
110
- }
111
-
112
- var __createBinding = Object.create ? (function(o, m, k, k2) {
113
- if (k2 === undefined) k2 = k;
114
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
115
- }) : (function(o, m, k, k2) {
116
- if (k2 === undefined) k2 = k;
117
- o[k2] = m[k];
118
- });
119
-
120
- function __exportStar(m, exports) {
121
- for (var p in m) if (p !== "default" && !exports.hasOwnProperty(p)) __createBinding(exports, m, p);
122
- }
123
-
124
- function __values(o) {
125
- var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
126
- if (m) return m.call(o);
127
- if (o && typeof o.length === "number") return {
128
- next: function () {
129
- if (o && i >= o.length) o = void 0;
130
- return { value: o && o[i++], done: !o };
131
- }
132
- };
133
- throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
134
- }
135
-
136
- function __read(o, n) {
137
- var m = typeof Symbol === "function" && o[Symbol.iterator];
138
- if (!m) return o;
139
- var i = m.call(o), r, ar = [], e;
140
- try {
141
- while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
142
- }
143
- catch (error) { e = { error: error }; }
144
- finally {
145
- try {
146
- if (r && !r.done && (m = i["return"])) m.call(i);
147
- }
148
- finally { if (e) throw e.error; }
149
- }
150
- return ar;
151
- }
152
-
153
- function __spread() {
154
- for (var ar = [], i = 0; i < arguments.length; i++)
155
- ar = ar.concat(__read(arguments[i]));
156
- return ar;
157
- }
158
-
159
- function __spreadArrays() {
160
- for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;
161
- for (var r = Array(s), k = 0, i = 0; i < il; i++)
162
- for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)
163
- r[k] = a[j];
164
- return r;
165
- };
166
-
167
- function __await(v) {
168
- return this instanceof __await ? (this.v = v, this) : new __await(v);
169
- }
170
-
171
- function __asyncGenerator(thisArg, _arguments, generator) {
172
- if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
173
- var g = generator.apply(thisArg, _arguments || []), i, q = [];
174
- return i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i;
175
- function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }
176
- function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }
177
- function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }
178
- function fulfill(value) { resume("next", value); }
179
- function reject(value) { resume("throw", value); }
180
- function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }
181
- }
182
-
183
- function __asyncDelegator(o) {
184
- var i, p;
185
- return i = {}, verb("next"), verb("throw", function (e) { throw e; }), verb("return"), i[Symbol.iterator] = function () { return this; }, i;
186
- 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; }
187
- }
188
-
189
- function __asyncValues(o) {
190
- if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
191
- var m = o[Symbol.asyncIterator], i;
192
- 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);
193
- 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); }); }; }
194
- function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }
195
- }
196
-
197
- function __makeTemplateObject(cooked, raw) {
198
- if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; }
199
- return cooked;
200
- };
201
-
202
- var __setModuleDefault = Object.create ? (function(o, v) {
203
- Object.defineProperty(o, "default", { enumerable: true, value: v });
204
- }) : function(o, v) {
205
- o["default"] = v;
206
- };
207
-
208
- function __importStar(mod) {
209
- if (mod && mod.__esModule) return mod;
210
- var result = {};
211
- if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
212
- __setModuleDefault(result, mod);
213
- return result;
214
- }
215
-
216
- function __importDefault(mod) {
217
- return (mod && mod.__esModule) ? mod : { default: mod };
218
- }
219
-
220
- function __classPrivateFieldGet(receiver, privateMap) {
221
- if (!privateMap.has(receiver)) {
222
- throw new TypeError("attempted to get private field on non-instance");
223
- }
224
- return privateMap.get(receiver);
225
- }
226
-
227
- function __classPrivateFieldSet(receiver, privateMap, value) {
228
- if (!privateMap.has(receiver)) {
229
- throw new TypeError("attempted to set private field on non-instance");
230
- }
231
- privateMap.set(receiver, value);
232
- return value;
7
+ /*! *****************************************************************************
8
+ Copyright (c) Microsoft Corporation.
9
+
10
+ Permission to use, copy, modify, and/or distribute this software for any
11
+ purpose with or without fee is hereby granted.
12
+
13
+ THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
14
+ REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
15
+ AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
16
+ INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
17
+ LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
18
+ OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
19
+ PERFORMANCE OF THIS SOFTWARE.
20
+ ***************************************************************************** */
21
+ /* global Reflect, Promise */
22
+ var extendStatics = function (d, b) {
23
+ extendStatics = Object.setPrototypeOf ||
24
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
25
+ function (d, b) { for (var p in b)
26
+ if (b.hasOwnProperty(p))
27
+ d[p] = b[p]; };
28
+ return extendStatics(d, b);
29
+ };
30
+ function __extends(d, b) {
31
+ extendStatics(d, b);
32
+ function __() { this.constructor = d; }
33
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
34
+ }
35
+ var __assign = function () {
36
+ __assign = Object.assign || function __assign(t) {
37
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
38
+ s = arguments[i];
39
+ for (var p in s)
40
+ if (Object.prototype.hasOwnProperty.call(s, p))
41
+ t[p] = s[p];
42
+ }
43
+ return t;
44
+ };
45
+ return __assign.apply(this, arguments);
46
+ };
47
+ function __rest(s, e) {
48
+ var t = {};
49
+ for (var p in s)
50
+ if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
51
+ t[p] = s[p];
52
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
53
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
54
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
55
+ t[p[i]] = s[p[i]];
56
+ }
57
+ return t;
58
+ }
59
+ function __decorate(decorators, target, key, desc) {
60
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
61
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
62
+ r = Reflect.decorate(decorators, target, key, desc);
63
+ else
64
+ for (var i = decorators.length - 1; i >= 0; i--)
65
+ if (d = decorators[i])
66
+ r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
67
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
68
+ }
69
+ function __param(paramIndex, decorator) {
70
+ return function (target, key) { decorator(target, key, paramIndex); };
71
+ }
72
+ function __metadata(metadataKey, metadataValue) {
73
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function")
74
+ return Reflect.metadata(metadataKey, metadataValue);
75
+ }
76
+ function __awaiter(thisArg, _arguments, P, generator) {
77
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
78
+ return new (P || (P = Promise))(function (resolve, reject) {
79
+ function fulfilled(value) { try {
80
+ step(generator.next(value));
81
+ }
82
+ catch (e) {
83
+ reject(e);
84
+ } }
85
+ function rejected(value) { try {
86
+ step(generator["throw"](value));
87
+ }
88
+ catch (e) {
89
+ reject(e);
90
+ } }
91
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
92
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
93
+ });
94
+ }
95
+ function __generator(thisArg, body) {
96
+ var _ = { label: 0, sent: function () { if (t[0] & 1)
97
+ throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
98
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function () { return this; }), g;
99
+ function verb(n) { return function (v) { return step([n, v]); }; }
100
+ function step(op) {
101
+ if (f)
102
+ throw new TypeError("Generator is already executing.");
103
+ while (_)
104
+ try {
105
+ 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)
106
+ return t;
107
+ if (y = 0, t)
108
+ op = [op[0] & 2, t.value];
109
+ switch (op[0]) {
110
+ case 0:
111
+ case 1:
112
+ t = op;
113
+ break;
114
+ case 4:
115
+ _.label++;
116
+ return { value: op[1], done: false };
117
+ case 5:
118
+ _.label++;
119
+ y = op[1];
120
+ op = [0];
121
+ continue;
122
+ case 7:
123
+ op = _.ops.pop();
124
+ _.trys.pop();
125
+ continue;
126
+ default:
127
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
128
+ _ = 0;
129
+ continue;
130
+ }
131
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) {
132
+ _.label = op[1];
133
+ break;
134
+ }
135
+ if (op[0] === 6 && _.label < t[1]) {
136
+ _.label = t[1];
137
+ t = op;
138
+ break;
139
+ }
140
+ if (t && _.label < t[2]) {
141
+ _.label = t[2];
142
+ _.ops.push(op);
143
+ break;
144
+ }
145
+ if (t[2])
146
+ _.ops.pop();
147
+ _.trys.pop();
148
+ continue;
149
+ }
150
+ op = body.call(thisArg, _);
151
+ }
152
+ catch (e) {
153
+ op = [6, e];
154
+ y = 0;
155
+ }
156
+ finally {
157
+ f = t = 0;
158
+ }
159
+ if (op[0] & 5)
160
+ throw op[1];
161
+ return { value: op[0] ? op[1] : void 0, done: true };
162
+ }
163
+ }
164
+ var __createBinding = Object.create ? (function (o, m, k, k2) {
165
+ if (k2 === undefined)
166
+ k2 = k;
167
+ Object.defineProperty(o, k2, { enumerable: true, get: function () { return m[k]; } });
168
+ }) : (function (o, m, k, k2) {
169
+ if (k2 === undefined)
170
+ k2 = k;
171
+ o[k2] = m[k];
172
+ });
173
+ function __exportStar(m, exports) {
174
+ for (var p in m)
175
+ if (p !== "default" && !exports.hasOwnProperty(p))
176
+ __createBinding(exports, m, p);
177
+ }
178
+ function __values(o) {
179
+ var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
180
+ if (m)
181
+ return m.call(o);
182
+ if (o && typeof o.length === "number")
183
+ return {
184
+ next: function () {
185
+ if (o && i >= o.length)
186
+ o = void 0;
187
+ return { value: o && o[i++], done: !o };
188
+ }
189
+ };
190
+ throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
191
+ }
192
+ function __read(o, n) {
193
+ var m = typeof Symbol === "function" && o[Symbol.iterator];
194
+ if (!m)
195
+ return o;
196
+ var i = m.call(o), r, ar = [], e;
197
+ try {
198
+ while ((n === void 0 || n-- > 0) && !(r = i.next()).done)
199
+ ar.push(r.value);
200
+ }
201
+ catch (error) {
202
+ e = { error: error };
203
+ }
204
+ finally {
205
+ try {
206
+ if (r && !r.done && (m = i["return"]))
207
+ m.call(i);
208
+ }
209
+ finally {
210
+ if (e)
211
+ throw e.error;
212
+ }
213
+ }
214
+ return ar;
215
+ }
216
+ function __spread() {
217
+ for (var ar = [], i = 0; i < arguments.length; i++)
218
+ ar = ar.concat(__read(arguments[i]));
219
+ return ar;
220
+ }
221
+ function __spreadArrays() {
222
+ for (var s = 0, i = 0, il = arguments.length; i < il; i++)
223
+ s += arguments[i].length;
224
+ for (var r = Array(s), k = 0, i = 0; i < il; i++)
225
+ for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)
226
+ r[k] = a[j];
227
+ return r;
228
+ }
229
+ ;
230
+ function __await(v) {
231
+ return this instanceof __await ? (this.v = v, this) : new __await(v);
232
+ }
233
+ function __asyncGenerator(thisArg, _arguments, generator) {
234
+ if (!Symbol.asyncIterator)
235
+ throw new TypeError("Symbol.asyncIterator is not defined.");
236
+ var g = generator.apply(thisArg, _arguments || []), i, q = [];
237
+ return i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i;
238
+ function verb(n) { if (g[n])
239
+ i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }
240
+ function resume(n, v) { try {
241
+ step(g[n](v));
242
+ }
243
+ catch (e) {
244
+ settle(q[0][3], e);
245
+ } }
246
+ function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }
247
+ function fulfill(value) { resume("next", value); }
248
+ function reject(value) { resume("throw", value); }
249
+ function settle(f, v) { if (f(v), q.shift(), q.length)
250
+ resume(q[0][0], q[0][1]); }
251
+ }
252
+ function __asyncDelegator(o) {
253
+ var i, p;
254
+ return i = {}, verb("next"), verb("throw", function (e) { throw e; }), verb("return"), i[Symbol.iterator] = function () { return this; }, i;
255
+ 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; }
256
+ }
257
+ function __asyncValues(o) {
258
+ if (!Symbol.asyncIterator)
259
+ throw new TypeError("Symbol.asyncIterator is not defined.");
260
+ var m = o[Symbol.asyncIterator], i;
261
+ 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);
262
+ 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); }); }; }
263
+ function settle(resolve, reject, d, v) { Promise.resolve(v).then(function (v) { resolve({ value: v, done: d }); }, reject); }
264
+ }
265
+ function __makeTemplateObject(cooked, raw) {
266
+ if (Object.defineProperty) {
267
+ Object.defineProperty(cooked, "raw", { value: raw });
268
+ }
269
+ else {
270
+ cooked.raw = raw;
271
+ }
272
+ return cooked;
273
+ }
274
+ ;
275
+ var __setModuleDefault = Object.create ? (function (o, v) {
276
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
277
+ }) : function (o, v) {
278
+ o["default"] = v;
279
+ };
280
+ function __importStar(mod) {
281
+ if (mod && mod.__esModule)
282
+ return mod;
283
+ var result = {};
284
+ if (mod != null)
285
+ for (var k in mod)
286
+ if (Object.hasOwnProperty.call(mod, k))
287
+ __createBinding(result, mod, k);
288
+ __setModuleDefault(result, mod);
289
+ return result;
290
+ }
291
+ function __importDefault(mod) {
292
+ return (mod && mod.__esModule) ? mod : { default: mod };
293
+ }
294
+ function __classPrivateFieldGet(receiver, privateMap) {
295
+ if (!privateMap.has(receiver)) {
296
+ throw new TypeError("attempted to get private field on non-instance");
297
+ }
298
+ return privateMap.get(receiver);
299
+ }
300
+ function __classPrivateFieldSet(receiver, privateMap, value) {
301
+ if (!privateMap.has(receiver)) {
302
+ throw new TypeError("attempted to set private field on non-instance");
303
+ }
304
+ privateMap.set(receiver, value);
305
+ return value;
233
306
  }
234
307
 
235
- /**
236
- * @license
237
- * Copyright Google LLC All Rights Reserved.
238
- *
239
- * Use of this source code is governed by an MIT-style license that can be
240
- * found in the LICENSE file at https://angular.io/license
241
- */
242
308
  /**
243
309
  * Autocomplete IDs need to be unique across components, so this counter exists outside of
244
310
  * the component definition.
@@ -273,9 +339,10 @@
273
339
  function MAT_AUTOCOMPLETE_DEFAULT_OPTIONS_FACTORY() {
274
340
  return { autoActiveFirstOption: false };
275
341
  }
276
- var MatAutocomplete = /** @class */ (function (_super) {
277
- __extends(MatAutocomplete, _super);
278
- function MatAutocomplete(_changeDetectorRef, _elementRef, defaults) {
342
+ /** Base class with all of the `MatAutocomplete` functionality. */
343
+ var _MatAutocompleteBase = /** @class */ (function (_super) {
344
+ __extends(_MatAutocompleteBase, _super);
345
+ function _MatAutocompleteBase(_changeDetectorRef, _elementRef, defaults) {
279
346
  var _this = _super.call(this) || this;
280
347
  _this._changeDetectorRef = _changeDetectorRef;
281
348
  _this._elementRef = _elementRef;
@@ -299,13 +366,13 @@
299
366
  _this._autoActiveFirstOption = !!defaults.autoActiveFirstOption;
300
367
  return _this;
301
368
  }
302
- Object.defineProperty(MatAutocomplete.prototype, "isOpen", {
369
+ Object.defineProperty(_MatAutocompleteBase.prototype, "isOpen", {
303
370
  /** Whether the autocomplete panel is open. */
304
371
  get: function () { return this._isOpen && this.showPanel; },
305
372
  enumerable: false,
306
373
  configurable: true
307
374
  });
308
- Object.defineProperty(MatAutocomplete.prototype, "autoActiveFirstOption", {
375
+ Object.defineProperty(_MatAutocompleteBase.prototype, "autoActiveFirstOption", {
309
376
  /**
310
377
  * Whether the first option should be highlighted when the autocomplete panel is opened.
311
378
  * Can be configured globally through the `MAT_AUTOCOMPLETE_DEFAULT_OPTIONS` token.
@@ -317,7 +384,7 @@
317
384
  enumerable: false,
318
385
  configurable: true
319
386
  });
320
- Object.defineProperty(MatAutocomplete.prototype, "classList", {
387
+ Object.defineProperty(_MatAutocompleteBase.prototype, "classList", {
321
388
  /**
322
389
  * Takes classes set on the host mat-autocomplete element and applies them to the panel
323
390
  * inside the overlay container to allow for easy styling.
@@ -338,7 +405,7 @@
338
405
  enumerable: false,
339
406
  configurable: true
340
407
  });
341
- MatAutocomplete.prototype.ngAfterContentInit = function () {
408
+ _MatAutocompleteBase.prototype.ngAfterContentInit = function () {
342
409
  var _this = this;
343
410
  this._keyManager = new a11y.ActiveDescendantKeyManager(this.options).withWrap();
344
411
  this._activeOptionChanges = this._keyManager.change.subscribe(function (index) {
@@ -347,114 +414,108 @@
347
414
  // Set the initial visibility state.
348
415
  this._setVisibility();
349
416
  };
350
- MatAutocomplete.prototype.ngOnDestroy = function () {
417
+ _MatAutocompleteBase.prototype.ngOnDestroy = function () {
351
418
  this._activeOptionChanges.unsubscribe();
352
419
  };
353
420
  /**
354
421
  * Sets the panel scrollTop. This allows us to manually scroll to display options
355
422
  * above or below the fold, as they are not actually being focused when active.
356
423
  */
357
- MatAutocomplete.prototype._setScrollTop = function (scrollTop) {
424
+ _MatAutocompleteBase.prototype._setScrollTop = function (scrollTop) {
358
425
  if (this.panel) {
359
426
  this.panel.nativeElement.scrollTop = scrollTop;
360
427
  }
361
428
  };
362
429
  /** Returns the panel's scrollTop. */
363
- MatAutocomplete.prototype._getScrollTop = function () {
430
+ _MatAutocompleteBase.prototype._getScrollTop = function () {
364
431
  return this.panel ? this.panel.nativeElement.scrollTop : 0;
365
432
  };
366
433
  /** Panel should hide itself when the option list is empty. */
367
- MatAutocomplete.prototype._setVisibility = function () {
434
+ _MatAutocompleteBase.prototype._setVisibility = function () {
368
435
  this.showPanel = !!this.options.length;
369
436
  this._setVisibilityClasses(this._classList);
370
437
  this._changeDetectorRef.markForCheck();
371
438
  };
372
439
  /** Emits the `select` event. */
373
- MatAutocomplete.prototype._emitSelectEvent = function (option) {
440
+ _MatAutocompleteBase.prototype._emitSelectEvent = function (option) {
374
441
  var event = new MatAutocompleteSelectedEvent(this, option);
375
442
  this.optionSelected.emit(event);
376
443
  };
377
444
  /** Sets the autocomplete visibility classes on a classlist based on the panel is visible. */
378
- MatAutocomplete.prototype._setVisibilityClasses = function (classList) {
379
- classList['mat-autocomplete-visible'] = this.showPanel;
380
- classList['mat-autocomplete-hidden'] = !this.showPanel;
381
- };
382
- MatAutocomplete.decorators = [
383
- { type: core.Component, args: [{
384
- selector: 'mat-autocomplete',
385
- template: "<ng-template>\n <div class=\"mat-autocomplete-panel\" role=\"listbox\" [id]=\"id\" [ngClass]=\"_classList\" #panel>\n <ng-content></ng-content>\n </div>\n</ng-template>\n",
386
- encapsulation: core.ViewEncapsulation.None,
387
- changeDetection: core.ChangeDetectionStrategy.OnPush,
388
- exportAs: 'matAutocomplete',
389
- inputs: ['disableRipple'],
390
- host: {
391
- 'class': 'mat-autocomplete'
392
- },
393
- providers: [
394
- { provide: core$1.MAT_OPTION_PARENT_COMPONENT, useExisting: MatAutocomplete }
395
- ],
396
- styles: [".mat-autocomplete-panel{min-width:112px;max-width:280px;overflow:auto;-webkit-overflow-scrolling:touch;visibility:hidden;max-width:none;max-height:256px;position:relative;width:100%;border-bottom-left-radius:4px;border-bottom-right-radius:4px}.mat-autocomplete-panel.mat-autocomplete-visible{visibility:visible}.mat-autocomplete-panel.mat-autocomplete-hidden{visibility:hidden}.mat-autocomplete-panel-above .mat-autocomplete-panel{border-radius:0;border-top-left-radius:4px;border-top-right-radius:4px}.mat-autocomplete-panel .mat-divider-horizontal{margin-top:-1px}.cdk-high-contrast-active .mat-autocomplete-panel{outline:solid 1px}\n"]
397
- },] }
398
- ];
399
- MatAutocomplete.ctorParameters = function () { return [
400
- { type: core.ChangeDetectorRef },
401
- { type: core.ElementRef },
402
- { type: undefined, decorators: [{ type: core.Inject, args: [MAT_AUTOCOMPLETE_DEFAULT_OPTIONS,] }] }
403
- ]; };
404
- MatAutocomplete.propDecorators = {
405
- template: [{ type: core.ViewChild, args: [core.TemplateRef, { static: true },] }],
406
- panel: [{ type: core.ViewChild, args: ['panel',] }],
407
- options: [{ type: core.ContentChildren, args: [core$1.MatOption, { descendants: true },] }],
408
- optionGroups: [{ type: core.ContentChildren, args: [core$1.MAT_OPTGROUP, { descendants: true },] }],
409
- displayWith: [{ type: core.Input }],
410
- autoActiveFirstOption: [{ type: core.Input }],
411
- panelWidth: [{ type: core.Input }],
412
- optionSelected: [{ type: core.Output }],
413
- opened: [{ type: core.Output }],
414
- closed: [{ type: core.Output }],
415
- optionActivated: [{ type: core.Output }],
416
- classList: [{ type: core.Input, args: ['class',] }]
445
+ _MatAutocompleteBase.prototype._setVisibilityClasses = function (classList) {
446
+ classList[this._visibleClass] = this.showPanel;
447
+ classList[this._hiddenClass] = !this.showPanel;
417
448
  };
418
- return MatAutocomplete;
449
+ return _MatAutocompleteBase;
419
450
  }(_MatAutocompleteMixinBase));
420
-
421
- /**
422
- * @license
423
- * Copyright Google LLC All Rights Reserved.
424
- *
425
- * Use of this source code is governed by an MIT-style license that can be
426
- * found in the LICENSE file at https://angular.io/license
427
- */
428
- /**
429
- * Directive applied to an element to make it usable
430
- * as a connection point for an autocomplete panel.
431
- */
432
- var MatAutocompleteOrigin = /** @class */ (function () {
433
- function MatAutocompleteOrigin(
434
- /** Reference to the element on which the directive is applied. */
435
- elementRef) {
436
- this.elementRef = elementRef;
451
+ _MatAutocompleteBase.decorators = [
452
+ { type: core.Directive }
453
+ ];
454
+ _MatAutocompleteBase.ctorParameters = function () { return [
455
+ { type: core.ChangeDetectorRef },
456
+ { type: core.ElementRef },
457
+ { type: undefined, decorators: [{ type: core.Inject, args: [MAT_AUTOCOMPLETE_DEFAULT_OPTIONS,] }] }
458
+ ]; };
459
+ _MatAutocompleteBase.propDecorators = {
460
+ template: [{ type: core.ViewChild, args: [core.TemplateRef, { static: true },] }],
461
+ panel: [{ type: core.ViewChild, args: ['panel',] }],
462
+ displayWith: [{ type: core.Input }],
463
+ autoActiveFirstOption: [{ type: core.Input }],
464
+ panelWidth: [{ type: core.Input }],
465
+ optionSelected: [{ type: core.Output }],
466
+ opened: [{ type: core.Output }],
467
+ closed: [{ type: core.Output }],
468
+ optionActivated: [{ type: core.Output }],
469
+ classList: [{ type: core.Input, args: ['class',] }]
470
+ };
471
+ var MatAutocomplete = /** @class */ (function (_super) {
472
+ __extends(MatAutocomplete, _super);
473
+ function MatAutocomplete() {
474
+ var _this = _super.apply(this, __spread(arguments)) || this;
475
+ _this._visibleClass = 'mat-autocomplete-visible';
476
+ _this._hiddenClass = 'mat-autocomplete-hidden';
477
+ return _this;
437
478
  }
438
- MatAutocompleteOrigin.decorators = [
439
- { type: core.Directive, args: [{
440
- selector: '[matAutocompleteOrigin]',
441
- exportAs: 'matAutocompleteOrigin',
442
- },] }
443
- ];
444
- MatAutocompleteOrigin.ctorParameters = function () { return [
445
- { type: core.ElementRef }
446
- ]; };
447
- return MatAutocompleteOrigin;
448
- }());
479
+ return MatAutocomplete;
480
+ }(_MatAutocompleteBase));
481
+ MatAutocomplete.decorators = [
482
+ { type: core.Component, args: [{
483
+ selector: 'mat-autocomplete',
484
+ template: "<ng-template>\n <div class=\"mat-autocomplete-panel\" role=\"listbox\" [id]=\"id\" [ngClass]=\"_classList\" #panel>\n <ng-content></ng-content>\n </div>\n</ng-template>\n",
485
+ encapsulation: core.ViewEncapsulation.None,
486
+ changeDetection: core.ChangeDetectionStrategy.OnPush,
487
+ exportAs: 'matAutocomplete',
488
+ inputs: ['disableRipple'],
489
+ host: {
490
+ 'class': 'mat-autocomplete'
491
+ },
492
+ providers: [
493
+ { provide: core$1.MAT_OPTION_PARENT_COMPONENT, useExisting: MatAutocomplete }
494
+ ],
495
+ styles: [".mat-autocomplete-panel{min-width:112px;max-width:280px;overflow:auto;-webkit-overflow-scrolling:touch;visibility:hidden;max-width:none;max-height:256px;position:relative;width:100%;border-bottom-left-radius:4px;border-bottom-right-radius:4px}.mat-autocomplete-panel.mat-autocomplete-visible{visibility:visible}.mat-autocomplete-panel.mat-autocomplete-hidden{visibility:hidden}.mat-autocomplete-panel-above .mat-autocomplete-panel{border-radius:0;border-top-left-radius:4px;border-top-right-radius:4px}.mat-autocomplete-panel .mat-divider-horizontal{margin-top:-1px}.cdk-high-contrast-active .mat-autocomplete-panel{outline:solid 1px}\n"]
496
+ },] }
497
+ ];
498
+ MatAutocomplete.propDecorators = {
499
+ optionGroups: [{ type: core.ContentChildren, args: [core$1.MAT_OPTGROUP, { descendants: true },] }],
500
+ options: [{ type: core.ContentChildren, args: [core$1.MatOption, { descendants: true },] }]
501
+ };
449
502
 
450
503
  /**
451
504
  * The following style constants are necessary to save here in order
452
505
  * to properly calculate the scrollTop of the panel. Because we are not
453
506
  * actually focusing the active item, scroll must be handled manually.
454
507
  */
455
- /** The height of each autocomplete option. */
508
+ /**
509
+ * The height of each autocomplete option.
510
+ * @deprecated No longer being used. To be removed.
511
+ * @breaking-change 11.0.0
512
+ */
456
513
  var AUTOCOMPLETE_OPTION_HEIGHT = 48;
457
- /** The total height of the autocomplete panel. */
514
+ /**
515
+ * The total height of the autocomplete panel.
516
+ * @deprecated No longer being used. To be removed.
517
+ * @breaking-change 11.0.0
518
+ */
458
519
  var AUTOCOMPLETE_PANEL_HEIGHT = 256;
459
520
  /** Injection token that determines the scroll handling while the autocomplete panel is open. */
460
521
  var MAT_AUTOCOMPLETE_SCROLL_STRATEGY = new core.InjectionToken('mat-autocomplete-scroll-strategy');
@@ -486,8 +547,9 @@
486
547
  'Make sure that the id passed to the `matAutocomplete` is correct and that ' +
487
548
  'you\'re attempting to open it after the ngAfterContentInit hook.');
488
549
  }
489
- var MatAutocompleteTrigger = /** @class */ (function () {
490
- function MatAutocompleteTrigger(_element, _overlay, _viewContainerRef, _zone, _changeDetectorRef, scrollStrategy, _dir, _formField, _document, _viewportRuler) {
550
+ /** Base class with all of the `MatAutocompleteTrigger` functionality. */
551
+ var _MatAutocompleteTriggerBase = /** @class */ (function () {
552
+ function _MatAutocompleteTriggerBase(_element, _overlay, _viewContainerRef, _zone, _changeDetectorRef, scrollStrategy, _dir, _formField, _document, _viewportRuler) {
491
553
  var _this = this;
492
554
  this._element = _element;
493
555
  this._overlay = _overlay;
@@ -549,12 +611,11 @@
549
611
  // If there are any subscribers before `ngAfterViewInit`, the `autocomplete` will be undefined.
550
612
  // Return a stream that we'll replace with the real one once everything is in place.
551
613
  return _this._zone.onStable
552
- .asObservable()
553
614
  .pipe(operators.take(1), operators.switchMap(function () { return _this.optionSelections; }));
554
615
  });
555
616
  this._scrollStrategy = scrollStrategy;
556
617
  }
557
- Object.defineProperty(MatAutocompleteTrigger.prototype, "autocompleteDisabled", {
618
+ Object.defineProperty(_MatAutocompleteTriggerBase.prototype, "autocompleteDisabled", {
558
619
  /**
559
620
  * Whether the autocomplete is disabled. When disabled, the element will
560
621
  * act as a regular input and the user won't be able to open the panel.
@@ -566,14 +627,14 @@
566
627
  enumerable: false,
567
628
  configurable: true
568
629
  });
569
- MatAutocompleteTrigger.prototype.ngAfterViewInit = function () {
630
+ _MatAutocompleteTriggerBase.prototype.ngAfterViewInit = function () {
570
631
  var _this = this;
571
632
  var window = this._getWindow();
572
633
  if (typeof window !== 'undefined') {
573
634
  this._zone.runOutsideAngular(function () { return window.addEventListener('blur', _this._windowBlurHandler); });
574
635
  }
575
636
  };
576
- MatAutocompleteTrigger.prototype.ngOnChanges = function (changes) {
637
+ _MatAutocompleteTriggerBase.prototype.ngOnChanges = function (changes) {
577
638
  if (changes['position'] && this._positionStrategy) {
578
639
  this._setStrategyPositions(this._positionStrategy);
579
640
  if (this.panelOpen) {
@@ -581,7 +642,7 @@
581
642
  }
582
643
  }
583
644
  };
584
- MatAutocompleteTrigger.prototype.ngOnDestroy = function () {
645
+ _MatAutocompleteTriggerBase.prototype.ngOnDestroy = function () {
585
646
  var window = this._getWindow();
586
647
  if (typeof window !== 'undefined') {
587
648
  window.removeEventListener('blur', this._windowBlurHandler);
@@ -591,7 +652,7 @@
591
652
  this._destroyPanel();
592
653
  this._closeKeyEventStream.complete();
593
654
  };
594
- Object.defineProperty(MatAutocompleteTrigger.prototype, "panelOpen", {
655
+ Object.defineProperty(_MatAutocompleteTriggerBase.prototype, "panelOpen", {
595
656
  /** Whether or not the autocomplete panel is open. */
596
657
  get: function () {
597
658
  return this._overlayAttached && this.autocomplete.showPanel;
@@ -600,12 +661,12 @@
600
661
  configurable: true
601
662
  });
602
663
  /** Opens the autocomplete suggestion panel. */
603
- MatAutocompleteTrigger.prototype.openPanel = function () {
664
+ _MatAutocompleteTriggerBase.prototype.openPanel = function () {
604
665
  this._attachOverlay();
605
666
  this._floatLabel();
606
667
  };
607
668
  /** Closes the autocomplete suggestion panel. */
608
- MatAutocompleteTrigger.prototype.closePanel = function () {
669
+ _MatAutocompleteTriggerBase.prototype.closePanel = function () {
609
670
  this._resetLabel();
610
671
  if (!this._overlayAttached) {
611
672
  return;
@@ -633,12 +694,12 @@
633
694
  * Updates the position of the autocomplete suggestion panel to ensure that it fits all options
634
695
  * within the viewport.
635
696
  */
636
- MatAutocompleteTrigger.prototype.updatePosition = function () {
697
+ _MatAutocompleteTriggerBase.prototype.updatePosition = function () {
637
698
  if (this._overlayAttached) {
638
699
  this._overlayRef.updatePosition();
639
700
  }
640
701
  };
641
- Object.defineProperty(MatAutocompleteTrigger.prototype, "panelClosingActions", {
702
+ Object.defineProperty(_MatAutocompleteTriggerBase.prototype, "panelClosingActions", {
642
703
  /**
643
704
  * A stream of actions that should close the autocomplete panel, including
644
705
  * when an option is selected, on blur, and when TAB is pressed.
@@ -654,7 +715,7 @@
654
715
  enumerable: false,
655
716
  configurable: true
656
717
  });
657
- Object.defineProperty(MatAutocompleteTrigger.prototype, "activeOption", {
718
+ Object.defineProperty(_MatAutocompleteTriggerBase.prototype, "activeOption", {
658
719
  /** The currently active option, coerced to MatOption type. */
659
720
  get: function () {
660
721
  if (this.autocomplete && this.autocomplete._keyManager) {
@@ -666,7 +727,7 @@
666
727
  configurable: true
667
728
  });
668
729
  /** Stream of clicks outside of the autocomplete panel. */
669
- MatAutocompleteTrigger.prototype._getOutsideClickStream = function () {
730
+ _MatAutocompleteTriggerBase.prototype._getOutsideClickStream = function () {
670
731
  var _this = this;
671
732
  return rxjs.merge(rxjs.fromEvent(this._document, 'click'), rxjs.fromEvent(this._document, 'touchend'))
672
733
  .pipe(operators.filter(function (event) {
@@ -683,23 +744,23 @@
683
744
  }));
684
745
  };
685
746
  // Implemented as part of ControlValueAccessor.
686
- MatAutocompleteTrigger.prototype.writeValue = function (value) {
747
+ _MatAutocompleteTriggerBase.prototype.writeValue = function (value) {
687
748
  var _this = this;
688
749
  Promise.resolve(null).then(function () { return _this._setTriggerValue(value); });
689
750
  };
690
751
  // Implemented as part of ControlValueAccessor.
691
- MatAutocompleteTrigger.prototype.registerOnChange = function (fn) {
752
+ _MatAutocompleteTriggerBase.prototype.registerOnChange = function (fn) {
692
753
  this._onChange = fn;
693
754
  };
694
755
  // Implemented as part of ControlValueAccessor.
695
- MatAutocompleteTrigger.prototype.registerOnTouched = function (fn) {
756
+ _MatAutocompleteTriggerBase.prototype.registerOnTouched = function (fn) {
696
757
  this._onTouched = fn;
697
758
  };
698
759
  // Implemented as part of ControlValueAccessor.
699
- MatAutocompleteTrigger.prototype.setDisabledState = function (isDisabled) {
760
+ _MatAutocompleteTriggerBase.prototype.setDisabledState = function (isDisabled) {
700
761
  this._element.nativeElement.disabled = isDisabled;
701
762
  };
702
- MatAutocompleteTrigger.prototype._handleKeydown = function (event) {
763
+ _MatAutocompleteTriggerBase.prototype._handleKeydown = function (event) {
703
764
  var keyCode = event.keyCode;
704
765
  // Prevent the default action on all escape key presses. This is here primarily to bring IE
705
766
  // in line with other browsers. By default, pressing escape on IE will cause it to revert
@@ -723,11 +784,11 @@
723
784
  this.openPanel();
724
785
  }
725
786
  if (isArrowKey || this.autocomplete._keyManager.activeItem !== prevActiveItem) {
726
- this._scrollToOption();
787
+ this._scrollToOption(this.autocomplete._keyManager.activeItemIndex || 0);
727
788
  }
728
789
  }
729
790
  };
730
- MatAutocompleteTrigger.prototype._handleInput = function (event) {
791
+ _MatAutocompleteTriggerBase.prototype._handleInput = function (event) {
731
792
  var target = event.target;
732
793
  var value = target.value;
733
794
  // Based on `NumberValueAccessor` from forms.
@@ -747,7 +808,7 @@
747
808
  }
748
809
  }
749
810
  };
750
- MatAutocompleteTrigger.prototype._handleFocus = function () {
811
+ _MatAutocompleteTriggerBase.prototype._handleFocus = function () {
751
812
  if (!this._canOpenOnNextFocus) {
752
813
  this._canOpenOnNextFocus = true;
753
814
  }
@@ -763,7 +824,7 @@
763
824
  * This method manually floats the label until the panel can be closed.
764
825
  * @param shouldAnimate Whether the label should be animated when it is floated.
765
826
  */
766
- MatAutocompleteTrigger.prototype._floatLabel = function (shouldAnimate) {
827
+ _MatAutocompleteTriggerBase.prototype._floatLabel = function (shouldAnimate) {
767
828
  if (shouldAnimate === void 0) { shouldAnimate = false; }
768
829
  if (this._formField && this._formField.floatLabel === 'auto') {
769
830
  if (shouldAnimate) {
@@ -776,42 +837,19 @@
776
837
  }
777
838
  };
778
839
  /** If the label has been manually elevated, return it to its normal state. */
779
- MatAutocompleteTrigger.prototype._resetLabel = function () {
840
+ _MatAutocompleteTriggerBase.prototype._resetLabel = function () {
780
841
  if (this._manuallyFloatingLabel) {
781
842
  this._formField.floatLabel = 'auto';
782
843
  this._manuallyFloatingLabel = false;
783
844
  }
784
845
  };
785
- /**
786
- * Given that we are not actually focusing active options, we must manually adjust scroll
787
- * to reveal options below the fold. First, we find the offset of the option from the top
788
- * of the panel. If that offset is below the fold, the new scrollTop will be the offset -
789
- * the panel height + the option height, so the active option will be just visible at the
790
- * bottom of the panel. If that offset is above the top of the visible panel, the new scrollTop
791
- * will become the offset. If that offset is visible within the panel already, the scrollTop is
792
- * not adjusted.
793
- */
794
- MatAutocompleteTrigger.prototype._scrollToOption = function () {
795
- var index = this.autocomplete._keyManager.activeItemIndex || 0;
796
- var labelCount = core$1._countGroupLabelsBeforeOption(index, this.autocomplete.options, this.autocomplete.optionGroups);
797
- if (index === 0 && labelCount === 1) {
798
- // If we've got one group label before the option and we're at the top option,
799
- // scroll the list to the top. This is better UX than scrolling the list to the
800
- // top of the option, because it allows the user to read the top group's label.
801
- this.autocomplete._setScrollTop(0);
802
- }
803
- else {
804
- var newScrollPosition = core$1._getOptionScrollPosition(index + labelCount, AUTOCOMPLETE_OPTION_HEIGHT, this.autocomplete._getScrollTop(), AUTOCOMPLETE_PANEL_HEIGHT);
805
- this.autocomplete._setScrollTop(newScrollPosition);
806
- }
807
- };
808
846
  /**
809
847
  * This method listens to a stream of panel closing actions and resets the
810
848
  * stream every time the option list changes.
811
849
  */
812
- MatAutocompleteTrigger.prototype._subscribeToClosingActions = function () {
850
+ _MatAutocompleteTriggerBase.prototype._subscribeToClosingActions = function () {
813
851
  var _this = this;
814
- var firstStable = this._zone.onStable.asObservable().pipe(operators.take(1));
852
+ var firstStable = this._zone.onStable.pipe(operators.take(1));
815
853
  var optionChanges = this.autocomplete.options.changes.pipe(operators.tap(function () { return _this._positionStrategy.reapplyLastPosition(); }),
816
854
  // Defer emitting to the stream until the next tick, because changing
817
855
  // bindings in here will cause "changed after checked" errors.
@@ -843,14 +881,14 @@
843
881
  .subscribe(function (event) { return _this._setValueAndClose(event); });
844
882
  };
845
883
  /** Destroys the autocomplete suggestion panel. */
846
- MatAutocompleteTrigger.prototype._destroyPanel = function () {
884
+ _MatAutocompleteTriggerBase.prototype._destroyPanel = function () {
847
885
  if (this._overlayRef) {
848
886
  this.closePanel();
849
887
  this._overlayRef.dispose();
850
888
  this._overlayRef = null;
851
889
  }
852
890
  };
853
- MatAutocompleteTrigger.prototype._setTriggerValue = function (value) {
891
+ _MatAutocompleteTriggerBase.prototype._setTriggerValue = function (value) {
854
892
  var toDisplay = this.autocomplete && this.autocomplete.displayWith ?
855
893
  this.autocomplete.displayWith(value) :
856
894
  value;
@@ -872,7 +910,7 @@
872
910
  * control to that value. It will also mark the control as dirty if this interaction
873
911
  * stemmed from the user.
874
912
  */
875
- MatAutocompleteTrigger.prototype._setValueAndClose = function (event) {
913
+ _MatAutocompleteTriggerBase.prototype._setValueAndClose = function (event) {
876
914
  if (event && event.source) {
877
915
  this._clearPreviousSelectedOption(event.source);
878
916
  this._setTriggerValue(event.source.value);
@@ -885,16 +923,16 @@
885
923
  /**
886
924
  * Clear any previous selected option and emit a selection change event for this option
887
925
  */
888
- MatAutocompleteTrigger.prototype._clearPreviousSelectedOption = function (skip) {
926
+ _MatAutocompleteTriggerBase.prototype._clearPreviousSelectedOption = function (skip) {
889
927
  this.autocomplete.options.forEach(function (option) {
890
928
  if (option != skip && option.selected) {
891
929
  option.deselect();
892
930
  }
893
931
  });
894
932
  };
895
- MatAutocompleteTrigger.prototype._attachOverlay = function () {
933
+ _MatAutocompleteTriggerBase.prototype._attachOverlay = function () {
896
934
  var _this = this;
897
- if (!this.autocomplete) {
935
+ if (!this.autocomplete && (typeof ngDevMode === 'undefined' || ngDevMode)) {
898
936
  throw getMatAutocompleteMissingPanelError();
899
937
  }
900
938
  // We want to resolve this once, as late as possible so that we can be
@@ -945,7 +983,7 @@
945
983
  this.autocomplete.opened.emit();
946
984
  }
947
985
  };
948
- MatAutocompleteTrigger.prototype._getOverlayConfig = function () {
986
+ _MatAutocompleteTriggerBase.prototype._getOverlayConfig = function () {
949
987
  return new overlay.OverlayConfig({
950
988
  positionStrategy: this._getOverlayPosition(),
951
989
  scrollStrategy: this._scrollStrategy(),
@@ -953,7 +991,7 @@
953
991
  direction: this._dir
954
992
  });
955
993
  };
956
- MatAutocompleteTrigger.prototype._getOverlayPosition = function () {
994
+ _MatAutocompleteTriggerBase.prototype._getOverlayPosition = function () {
957
995
  var strategy = this._overlay.position()
958
996
  .flexibleConnectedTo(this._getConnectedElement())
959
997
  .withFlexibleDimensions(false)
@@ -963,7 +1001,7 @@
963
1001
  return strategy;
964
1002
  };
965
1003
  /** Sets the positions on a position strategy based on the directive's input state. */
966
- MatAutocompleteTrigger.prototype._setStrategyPositions = function (positionStrategy) {
1004
+ _MatAutocompleteTriggerBase.prototype._setStrategyPositions = function (positionStrategy) {
967
1005
  // Note that we provide horizontal fallback positions, even though by default the dropdown
968
1006
  // width matches the input, because consumers can override the width. See #18854.
969
1007
  var belowPositions = [
@@ -973,7 +1011,7 @@
973
1011
  // The overlay edge connected to the trigger should have squared corners, while
974
1012
  // the opposite end has rounded corners. We apply a CSS class to swap the
975
1013
  // border-radius based on the overlay position.
976
- var panelClass = 'mat-autocomplete-panel-above';
1014
+ var panelClass = this._aboveClass;
977
1015
  var abovePositions = [
978
1016
  { originX: 'start', originY: 'top', overlayX: 'start', overlayY: 'bottom', panelClass: panelClass },
979
1017
  { originX: 'end', originY: 'top', overlayX: 'end', overlayY: 'bottom', panelClass: panelClass }
@@ -990,80 +1028,151 @@
990
1028
  }
991
1029
  positionStrategy.withPositions(positions);
992
1030
  };
993
- MatAutocompleteTrigger.prototype._getConnectedElement = function () {
1031
+ _MatAutocompleteTriggerBase.prototype._getConnectedElement = function () {
994
1032
  if (this.connectedTo) {
995
1033
  return this.connectedTo.elementRef;
996
1034
  }
997
1035
  return this._formField ? this._formField.getConnectedOverlayOrigin() : this._element;
998
1036
  };
999
- MatAutocompleteTrigger.prototype._getPanelWidth = function () {
1037
+ _MatAutocompleteTriggerBase.prototype._getPanelWidth = function () {
1000
1038
  return this.autocomplete.panelWidth || this._getHostWidth();
1001
1039
  };
1002
1040
  /** Returns the width of the input element, so the panel width can match it. */
1003
- MatAutocompleteTrigger.prototype._getHostWidth = function () {
1041
+ _MatAutocompleteTriggerBase.prototype._getHostWidth = function () {
1004
1042
  return this._getConnectedElement().nativeElement.getBoundingClientRect().width;
1005
1043
  };
1006
1044
  /**
1007
1045
  * Resets the active item to -1 so arrow events will activate the
1008
1046
  * correct options, or to 0 if the consumer opted into it.
1009
1047
  */
1010
- MatAutocompleteTrigger.prototype._resetActiveItem = function () {
1048
+ _MatAutocompleteTriggerBase.prototype._resetActiveItem = function () {
1011
1049
  this.autocomplete._keyManager.setActiveItem(this.autocomplete.autoActiveFirstOption ? 0 : -1);
1012
1050
  };
1013
1051
  /** Determines whether the panel can be opened. */
1014
- MatAutocompleteTrigger.prototype._canOpen = function () {
1052
+ _MatAutocompleteTriggerBase.prototype._canOpen = function () {
1015
1053
  var element = this._element.nativeElement;
1016
1054
  return !element.readOnly && !element.disabled && !this._autocompleteDisabled;
1017
1055
  };
1018
1056
  /** Use defaultView of injected document if available or fallback to global window reference */
1019
- MatAutocompleteTrigger.prototype._getWindow = function () {
1057
+ _MatAutocompleteTriggerBase.prototype._getWindow = function () {
1020
1058
  var _a;
1021
1059
  return ((_a = this._document) === null || _a === void 0 ? void 0 : _a.defaultView) || window;
1022
1060
  };
1023
- MatAutocompleteTrigger.decorators = [
1024
- { type: core.Directive, args: [{
1025
- selector: "input[matAutocomplete], textarea[matAutocomplete]",
1026
- host: {
1027
- 'class': 'mat-autocomplete-trigger',
1028
- '[attr.autocomplete]': 'autocompleteAttribute',
1029
- '[attr.role]': 'autocompleteDisabled ? null : "combobox"',
1030
- '[attr.aria-autocomplete]': 'autocompleteDisabled ? null : "list"',
1031
- '[attr.aria-activedescendant]': '(panelOpen && activeOption) ? activeOption.id : null',
1032
- '[attr.aria-expanded]': 'autocompleteDisabled ? null : panelOpen.toString()',
1033
- '[attr.aria-owns]': '(autocompleteDisabled || !panelOpen) ? null : autocomplete?.id',
1034
- '[attr.aria-haspopup]': '!autocompleteDisabled',
1035
- // Note: we use `focusin`, as opposed to `focus`, in order to open the panel
1036
- // a little earlier. This avoids issues where IE delays the focusing of the input.
1037
- '(focusin)': '_handleFocus()',
1038
- '(blur)': '_onTouched()',
1039
- '(input)': '_handleInput($event)',
1040
- '(keydown)': '_handleKeydown($event)',
1041
- },
1042
- exportAs: 'matAutocompleteTrigger',
1043
- providers: [MAT_AUTOCOMPLETE_VALUE_ACCESSOR]
1044
- },] }
1045
- ];
1046
- MatAutocompleteTrigger.ctorParameters = function () { return [
1047
- { type: core.ElementRef },
1048
- { type: overlay.Overlay },
1049
- { type: core.ViewContainerRef },
1050
- { type: core.NgZone },
1051
- { type: core.ChangeDetectorRef },
1052
- { type: undefined, decorators: [{ type: core.Inject, args: [MAT_AUTOCOMPLETE_SCROLL_STRATEGY,] }] },
1053
- { type: bidi.Directionality, decorators: [{ type: core.Optional }] },
1054
- { type: formField.MatFormField, decorators: [{ type: core.Optional }, { type: core.Inject, args: [formField.MAT_FORM_FIELD,] }, { type: core.Host }] },
1055
- { type: undefined, decorators: [{ type: core.Optional }, { type: core.Inject, args: [common.DOCUMENT,] }] },
1056
- { type: scrolling.ViewportRuler }
1057
- ]; };
1058
- MatAutocompleteTrigger.propDecorators = {
1059
- autocomplete: [{ type: core.Input, args: ['matAutocomplete',] }],
1060
- position: [{ type: core.Input, args: ['matAutocompletePosition',] }],
1061
- connectedTo: [{ type: core.Input, args: ['matAutocompleteConnectedTo',] }],
1062
- autocompleteAttribute: [{ type: core.Input, args: ['autocomplete',] }],
1063
- autocompleteDisabled: [{ type: core.Input, args: ['matAutocompleteDisabled',] }]
1061
+ /** Scrolls to a particular option in the list. */
1062
+ _MatAutocompleteTriggerBase.prototype._scrollToOption = function (index) {
1063
+ // Given that we are not actually focusing active options, we must manually adjust scroll
1064
+ // to reveal options below the fold. First, we find the offset of the option from the top
1065
+ // of the panel. If that offset is below the fold, the new scrollTop will be the offset -
1066
+ // the panel height + the option height, so the active option will be just visible at the
1067
+ // bottom of the panel. If that offset is above the top of the visible panel, the new scrollTop
1068
+ // will become the offset. If that offset is visible within the panel already, the scrollTop is
1069
+ // not adjusted.
1070
+ var autocomplete = this.autocomplete;
1071
+ var labelCount = core$1._countGroupLabelsBeforeOption(index, autocomplete.options, autocomplete.optionGroups);
1072
+ if (index === 0 && labelCount === 1) {
1073
+ // If we've got one group label before the option and we're at the top option,
1074
+ // scroll the list to the top. This is better UX than scrolling the list to the
1075
+ // top of the option, because it allows the user to read the top group's label.
1076
+ autocomplete._setScrollTop(0);
1077
+ }
1078
+ else {
1079
+ var option = autocomplete.options.toArray()[index];
1080
+ if (option) {
1081
+ var element = option._getHostElement();
1082
+ var newScrollPosition = core$1._getOptionScrollPosition(element.offsetTop, element.offsetHeight, autocomplete._getScrollTop(), autocomplete.panel.nativeElement.offsetHeight);
1083
+ autocomplete._setScrollTop(newScrollPosition);
1084
+ }
1085
+ }
1064
1086
  };
1087
+ return _MatAutocompleteTriggerBase;
1088
+ }());
1089
+ _MatAutocompleteTriggerBase.decorators = [
1090
+ { type: core.Directive }
1091
+ ];
1092
+ _MatAutocompleteTriggerBase.ctorParameters = function () { return [
1093
+ { type: core.ElementRef },
1094
+ { type: overlay.Overlay },
1095
+ { type: core.ViewContainerRef },
1096
+ { type: core.NgZone },
1097
+ { type: core.ChangeDetectorRef },
1098
+ { type: undefined, decorators: [{ type: core.Inject, args: [MAT_AUTOCOMPLETE_SCROLL_STRATEGY,] }] },
1099
+ { type: bidi.Directionality, decorators: [{ type: core.Optional }] },
1100
+ { type: formField.MatFormField, decorators: [{ type: core.Optional }, { type: core.Inject, args: [formField.MAT_FORM_FIELD,] }, { type: core.Host }] },
1101
+ { type: undefined, decorators: [{ type: core.Optional }, { type: core.Inject, args: [common.DOCUMENT,] }] },
1102
+ { type: scrolling.ViewportRuler }
1103
+ ]; };
1104
+ _MatAutocompleteTriggerBase.propDecorators = {
1105
+ autocomplete: [{ type: core.Input, args: ['matAutocomplete',] }],
1106
+ position: [{ type: core.Input, args: ['matAutocompletePosition',] }],
1107
+ connectedTo: [{ type: core.Input, args: ['matAutocompleteConnectedTo',] }],
1108
+ autocompleteAttribute: [{ type: core.Input, args: ['autocomplete',] }],
1109
+ autocompleteDisabled: [{ type: core.Input, args: ['matAutocompleteDisabled',] }]
1110
+ };
1111
+ var MatAutocompleteTrigger = /** @class */ (function (_super) {
1112
+ __extends(MatAutocompleteTrigger, _super);
1113
+ function MatAutocompleteTrigger() {
1114
+ var _this = _super.apply(this, __spread(arguments)) || this;
1115
+ _this._aboveClass = 'mat-autocomplete-panel-above';
1116
+ return _this;
1117
+ }
1065
1118
  return MatAutocompleteTrigger;
1119
+ }(_MatAutocompleteTriggerBase));
1120
+ MatAutocompleteTrigger.decorators = [
1121
+ { type: core.Directive, args: [{
1122
+ selector: "input[matAutocomplete], textarea[matAutocomplete]",
1123
+ host: {
1124
+ 'class': 'mat-autocomplete-trigger',
1125
+ '[attr.autocomplete]': 'autocompleteAttribute',
1126
+ '[attr.role]': 'autocompleteDisabled ? null : "combobox"',
1127
+ '[attr.aria-autocomplete]': 'autocompleteDisabled ? null : "list"',
1128
+ '[attr.aria-activedescendant]': '(panelOpen && activeOption) ? activeOption.id : null',
1129
+ '[attr.aria-expanded]': 'autocompleteDisabled ? null : panelOpen.toString()',
1130
+ '[attr.aria-owns]': '(autocompleteDisabled || !panelOpen) ? null : autocomplete?.id',
1131
+ '[attr.aria-haspopup]': '!autocompleteDisabled',
1132
+ // Note: we use `focusin`, as opposed to `focus`, in order to open the panel
1133
+ // a little earlier. This avoids issues where IE delays the focusing of the input.
1134
+ '(focusin)': '_handleFocus()',
1135
+ '(blur)': '_onTouched()',
1136
+ '(input)': '_handleInput($event)',
1137
+ '(keydown)': '_handleKeydown($event)',
1138
+ },
1139
+ exportAs: 'matAutocompleteTrigger',
1140
+ providers: [MAT_AUTOCOMPLETE_VALUE_ACCESSOR]
1141
+ },] }
1142
+ ];
1143
+
1144
+ /** Base class containing all of the functionality for `MatAutocompleteOrigin`. */
1145
+ var _MatAutocompleteOriginBase = /** @class */ (function () {
1146
+ function _MatAutocompleteOriginBase(
1147
+ /** Reference to the element on which the directive is applied. */
1148
+ elementRef) {
1149
+ this.elementRef = elementRef;
1150
+ }
1151
+ return _MatAutocompleteOriginBase;
1066
1152
  }());
1153
+ _MatAutocompleteOriginBase.decorators = [
1154
+ { type: core.Directive }
1155
+ ];
1156
+ _MatAutocompleteOriginBase.ctorParameters = function () { return [
1157
+ { type: core.ElementRef }
1158
+ ]; };
1159
+ /**
1160
+ * Directive applied to an element to make it usable
1161
+ * as a connection point for an autocomplete panel.
1162
+ */
1163
+ var MatAutocompleteOrigin = /** @class */ (function (_super) {
1164
+ __extends(MatAutocompleteOrigin, _super);
1165
+ function MatAutocompleteOrigin() {
1166
+ return _super !== null && _super.apply(this, arguments) || this;
1167
+ }
1168
+ return MatAutocompleteOrigin;
1169
+ }(_MatAutocompleteOriginBase));
1170
+ MatAutocompleteOrigin.decorators = [
1171
+ { type: core.Directive, args: [{
1172
+ selector: '[matAutocompleteOrigin]',
1173
+ exportAs: 'matAutocompleteOrigin',
1174
+ },] }
1175
+ ];
1067
1176
 
1068
1177
  /**
1069
1178
  * @license
@@ -1075,23 +1184,28 @@
1075
1184
  var MatAutocompleteModule = /** @class */ (function () {
1076
1185
  function MatAutocompleteModule() {
1077
1186
  }
1078
- MatAutocompleteModule.decorators = [
1079
- { type: core.NgModule, args: [{
1080
- imports: [core$1.MatOptionModule, overlay.OverlayModule, core$1.MatCommonModule, common.CommonModule],
1081
- exports: [
1082
- scrolling.CdkScrollableModule,
1083
- MatAutocomplete,
1084
- core$1.MatOptionModule,
1085
- MatAutocompleteTrigger,
1086
- MatAutocompleteOrigin,
1087
- core$1.MatCommonModule
1088
- ],
1089
- declarations: [MatAutocomplete, MatAutocompleteTrigger, MatAutocompleteOrigin],
1090
- providers: [MAT_AUTOCOMPLETE_SCROLL_STRATEGY_FACTORY_PROVIDER],
1091
- },] }
1092
- ];
1093
1187
  return MatAutocompleteModule;
1094
1188
  }());
1189
+ MatAutocompleteModule.decorators = [
1190
+ { type: core.NgModule, args: [{
1191
+ imports: [
1192
+ overlay.OverlayModule,
1193
+ core$1.MatOptionModule,
1194
+ core$1.MatCommonModule,
1195
+ common.CommonModule
1196
+ ],
1197
+ exports: [
1198
+ MatAutocomplete,
1199
+ MatAutocompleteTrigger,
1200
+ MatAutocompleteOrigin,
1201
+ scrolling.CdkScrollableModule,
1202
+ core$1.MatOptionModule,
1203
+ core$1.MatCommonModule,
1204
+ ],
1205
+ declarations: [MatAutocomplete, MatAutocompleteTrigger, MatAutocompleteOrigin],
1206
+ providers: [MAT_AUTOCOMPLETE_SCROLL_STRATEGY_FACTORY_PROVIDER],
1207
+ },] }
1208
+ ];
1095
1209
 
1096
1210
  /**
1097
1211
  * @license
@@ -1118,6 +1232,9 @@
1118
1232
  exports.MatAutocompleteOrigin = MatAutocompleteOrigin;
1119
1233
  exports.MatAutocompleteSelectedEvent = MatAutocompleteSelectedEvent;
1120
1234
  exports.MatAutocompleteTrigger = MatAutocompleteTrigger;
1235
+ exports._MatAutocompleteBase = _MatAutocompleteBase;
1236
+ exports._MatAutocompleteOriginBase = _MatAutocompleteOriginBase;
1237
+ exports._MatAutocompleteTriggerBase = _MatAutocompleteTriggerBase;
1121
1238
  exports.getMatAutocompleteMissingPanelError = getMatAutocompleteMissingPanelError;
1122
1239
 
1123
1240
  Object.defineProperty(exports, '__esModule', { value: true });