@angular/material 13.0.0-next.7 → 13.0.0-next.8

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 (1655) hide show
  1. package/autocomplete/autocomplete-module.d.ts +11 -7
  2. package/autocomplete/autocomplete-origin.d.ts +5 -0
  3. package/autocomplete/autocomplete-trigger.d.ts +5 -0
  4. package/autocomplete/autocomplete.d.ts +6 -1
  5. package/autocomplete/package.json +5 -5
  6. package/autocomplete/testing/package.json +5 -5
  7. package/badge/badge-module.d.ts +7 -7
  8. package/badge/badge.d.ts +4 -1
  9. package/badge/package.json +5 -5
  10. package/badge/testing/package.json +5 -5
  11. package/bottom-sheet/bottom-sheet-container.d.ts +3 -0
  12. package/bottom-sheet/bottom-sheet-module.d.ts +8 -7
  13. package/bottom-sheet/bottom-sheet.d.ts +3 -7
  14. package/bottom-sheet/package.json +5 -5
  15. package/bottom-sheet/testing/package.json +5 -5
  16. package/button/button-module.d.ts +6 -7
  17. package/button/button.d.ts +6 -1
  18. package/button/package.json +5 -5
  19. package/button/testing/package.json +5 -5
  20. package/button-toggle/button-toggle-module.d.ts +6 -7
  21. package/button-toggle/button-toggle.d.ts +6 -1
  22. package/button-toggle/package.json +5 -5
  23. package/button-toggle/testing/package.json +5 -5
  24. package/card/card-module.d.ts +6 -7
  25. package/card/card.d.ts +29 -7
  26. package/card/package.json +5 -5
  27. package/card/testing/package.json +5 -5
  28. package/checkbox/checkbox-module.d.ts +11 -7
  29. package/checkbox/checkbox-required-validator.d.ts +3 -0
  30. package/checkbox/checkbox.d.ts +4 -1
  31. package/checkbox/package.json +5 -5
  32. package/checkbox/testing/package.json +5 -5
  33. package/chips/chip-input.d.ts +3 -0
  34. package/chips/chip-list.d.ts +4 -1
  35. package/chips/chip.d.ts +10 -1
  36. package/chips/chips-module.d.ts +8 -7
  37. package/chips/package.json +5 -5
  38. package/chips/testing/package.json +5 -5
  39. package/core/common-behaviors/common-module.d.ts +5 -0
  40. package/core/common-behaviors/index.d.ts +1 -0
  41. package/core/datetime/index.d.ts +8 -7
  42. package/core/datetime/native-date-adapter.d.ts +3 -0
  43. package/core/error/error-options.d.ts +5 -7
  44. package/core/index.d.ts +0 -1
  45. package/core/line/line.d.ts +7 -0
  46. package/core/option/index.d.ts +10 -7
  47. package/core/option/optgroup.d.ts +6 -1
  48. package/core/option/option.d.ts +5 -0
  49. package/core/package.json +5 -5
  50. package/core/ripple/index.d.ts +7 -7
  51. package/core/ripple/ripple.d.ts +3 -0
  52. package/core/selection/index.d.ts +6 -7
  53. package/core/selection/pseudo-checkbox/pseudo-checkbox.d.ts +3 -7
  54. package/core/testing/package.json +5 -5
  55. package/datepicker/calendar-body.d.ts +3 -0
  56. package/datepicker/calendar.d.ts +5 -0
  57. package/datepicker/date-range-input-parts.d.ts +8 -1
  58. package/datepicker/date-range-input.d.ts +3 -0
  59. package/datepicker/date-range-picker.d.ts +3 -7
  60. package/datepicker/date-range-selection-strategy.d.ts +3 -0
  61. package/datepicker/date-selection-model.d.ts +7 -0
  62. package/datepicker/datepicker-actions.d.ts +7 -0
  63. package/datepicker/datepicker-base.d.ts +6 -1
  64. package/datepicker/datepicker-input-base.d.ts +3 -0
  65. package/datepicker/datepicker-input.d.ts +3 -0
  66. package/datepicker/datepicker-intl.d.ts +3 -7
  67. package/datepicker/datepicker-module.d.ts +24 -7
  68. package/datepicker/datepicker-toggle.d.ts +5 -0
  69. package/datepicker/datepicker.d.ts +3 -7
  70. package/datepicker/index.d.ts +0 -4
  71. package/datepicker/month-view.d.ts +3 -7
  72. package/datepicker/multi-year-view.d.ts +3 -7
  73. package/datepicker/package.json +5 -5
  74. package/datepicker/testing/package.json +5 -5
  75. package/datepicker/year-view.d.ts +3 -7
  76. package/dialog/dialog-container.d.ts +5 -0
  77. package/dialog/dialog-content-directives.d.ts +9 -0
  78. package/dialog/dialog-module.d.ts +9 -7
  79. package/dialog/dialog.d.ts +5 -7
  80. package/dialog/package.json +5 -5
  81. package/dialog/testing/dialog-harness.d.ts +14 -11
  82. package/dialog/testing/package.json +5 -5
  83. package/divider/divider-module.d.ts +6 -7
  84. package/divider/divider.d.ts +3 -7
  85. package/divider/package.json +5 -5
  86. package/divider/testing/package.json +5 -5
  87. package/esm2020/autocomplete/autocomplete-module.mjs +58 -0
  88. package/esm2020/autocomplete/autocomplete-origin.mjs +38 -0
  89. package/esm2020/autocomplete/autocomplete-trigger.mjs +651 -0
  90. package/esm2020/autocomplete/autocomplete.mjs +216 -0
  91. package/{esm2015/autocomplete/index.js → esm2020/autocomplete/index.mjs} +0 -0
  92. package/{esm2015/autocomplete/public-api.js → esm2020/autocomplete/public-api.mjs} +0 -0
  93. package/{esm2015/autocomplete/testing/autocomplete-harness-filters.js → esm2020/autocomplete/testing/autocomplete-harness-filters.mjs} +0 -0
  94. package/esm2020/autocomplete/testing/autocomplete-harness.mjs +101 -0
  95. package/{esm2015/autocomplete/testing/index.js → esm2020/autocomplete/testing/index.mjs} +0 -0
  96. package/{esm2015/autocomplete/testing/public-api.js → esm2020/autocomplete/testing/public-api.mjs} +0 -0
  97. package/esm2020/badge/badge-module.mjs +33 -0
  98. package/esm2020/badge/badge.mjs +228 -0
  99. package/{esm2015/badge/index.js → esm2020/badge/index.mjs} +0 -0
  100. package/{esm2015/badge/public-api.js → esm2020/badge/public-api.mjs} +0 -0
  101. package/{esm2015/badge/testing/badge-harness-filters.js → esm2020/badge/testing/badge-harness-filters.mjs} +0 -0
  102. package/esm2020/badge/testing/badge-harness.mjs +72 -0
  103. package/{esm2015/badge/testing/index.js → esm2020/badge/testing/index.mjs} +0 -0
  104. package/{esm2015/badge/testing/public-api.js → esm2020/badge/testing/public-api.mjs} +0 -0
  105. package/{esm2015/bottom-sheet/bottom-sheet-animations.js → esm2020/bottom-sheet/bottom-sheet-animations.mjs} +0 -0
  106. package/{esm2015/bottom-sheet/bottom-sheet-config.js → esm2020/bottom-sheet/bottom-sheet-config.mjs} +0 -0
  107. package/esm2020/bottom-sheet/bottom-sheet-container.mjs +230 -0
  108. package/esm2020/bottom-sheet/bottom-sheet-module.mjs +38 -0
  109. package/esm2020/bottom-sheet/bottom-sheet-ref.mjs +91 -0
  110. package/esm2020/bottom-sheet/bottom-sheet.mjs +172 -0
  111. package/{esm2015/bottom-sheet/index.js → esm2020/bottom-sheet/index.mjs} +0 -0
  112. package/{esm2015/bottom-sheet/public-api.js → esm2020/bottom-sheet/public-api.mjs} +0 -0
  113. package/{esm2015/bottom-sheet/testing/bottom-sheet-harness-filters.js → esm2020/bottom-sheet/testing/bottom-sheet-harness-filters.mjs} +0 -0
  114. package/esm2020/bottom-sheet/testing/bottom-sheet-harness.mjs +35 -0
  115. package/{esm2015/bottom-sheet/testing/index.js → esm2020/bottom-sheet/testing/index.mjs} +0 -0
  116. package/{esm2015/bottom-sheet/testing/public-api.js → esm2020/bottom-sheet/testing/public-api.mjs} +0 -0
  117. package/esm2020/button/button-module.mjs +42 -0
  118. package/esm2020/button/button.mjs +153 -0
  119. package/{esm2015/button/index.js → esm2020/button/index.mjs} +0 -0
  120. package/{esm2015/button/public-api.js → esm2020/button/public-api.mjs} +0 -0
  121. package/{esm2015/button/testing/button-harness-filters.js → esm2020/button/testing/button-harness-filters.mjs} +0 -0
  122. package/esm2020/button/testing/button-harness.mjs +51 -0
  123. package/{esm2015/button/testing/index.js → esm2020/button/testing/index.mjs} +0 -0
  124. package/{esm2015/button/testing/public-api.js → esm2020/button/testing/public-api.mjs} +0 -0
  125. package/esm2020/button-toggle/button-toggle-module.mjs +25 -0
  126. package/esm2020/button-toggle/button-toggle.mjs +470 -0
  127. package/{esm2015/button-toggle/index.js → esm2020/button-toggle/index.mjs} +0 -0
  128. package/{esm2015/button-toggle/public-api.js → esm2020/button-toggle/public-api.mjs} +0 -0
  129. package/{esm2015/button-toggle/testing/button-toggle-group-harness-filters.js → esm2020/button-toggle/testing/button-toggle-group-harness-filters.mjs} +0 -0
  130. package/esm2020/button-toggle/testing/button-toggle-group-harness.mjs +45 -0
  131. package/{esm2015/button-toggle/testing/button-toggle-harness-filters.js → esm2020/button-toggle/testing/button-toggle-harness-filters.mjs} +0 -0
  132. package/esm2020/button-toggle/testing/button-toggle-harness.mjs +98 -0
  133. package/{esm2015/button-toggle/testing/index.js → esm2020/button-toggle/testing/index.mjs} +0 -0
  134. package/{esm2015/button-toggle/testing/public-api.js → esm2020/button-toggle/testing/public-api.mjs} +0 -0
  135. package/esm2020/card/card-module.mjs +61 -0
  136. package/esm2020/card/card.mjs +247 -0
  137. package/{esm2015/card/index.js → esm2020/card/index.mjs} +0 -0
  138. package/{esm2015/card/public-api.js → esm2020/card/public-api.mjs} +0 -0
  139. package/{esm2015/card/testing/card-harness-filters.js → esm2020/card/testing/card-harness-filters.mjs} +0 -0
  140. package/esm2020/card/testing/card-harness.mjs +43 -0
  141. package/{esm2015/card/testing/index.js → esm2020/card/testing/index.mjs} +0 -0
  142. package/{esm2015/card/testing/public-api.js → esm2020/card/testing/public-api.mjs} +0 -0
  143. package/{esm2015/checkbox/checkbox-config.js → esm2020/checkbox/checkbox-config.mjs} +0 -0
  144. package/esm2020/checkbox/checkbox-module.mjs +46 -0
  145. package/esm2020/checkbox/checkbox-required-validator.mjs +33 -0
  146. package/esm2020/checkbox/checkbox.mjs +403 -0
  147. package/{esm2015/checkbox/index.js → esm2020/checkbox/index.mjs} +0 -0
  148. package/{esm2015/checkbox/public-api.js → esm2020/checkbox/public-api.mjs} +0 -0
  149. package/{esm2015/checkbox/testing/checkbox-harness-filters.js → esm2020/checkbox/testing/checkbox-harness-filters.mjs} +0 -0
  150. package/esm2020/checkbox/testing/checkbox-harness.mjs +123 -0
  151. package/{esm2015/checkbox/testing/index.js → esm2020/checkbox/testing/index.mjs} +0 -0
  152. package/{esm2015/checkbox/testing/public-api.js → esm2020/checkbox/testing/public-api.mjs} +0 -0
  153. package/{esm2015/chips/chip-default-options.js → esm2020/chips/chip-default-options.mjs} +0 -0
  154. package/esm2020/chips/chip-input.mjs +192 -0
  155. package/esm2020/chips/chip-list.mjs +673 -0
  156. package/{esm2015/chips/chip-text-control.js → esm2020/chips/chip-text-control.mjs} +0 -0
  157. package/esm2020/chips/chip.mjs +415 -0
  158. package/esm2020/chips/chips-module.mjs +64 -0
  159. package/{esm2015/chips/index.js → esm2020/chips/index.mjs} +0 -0
  160. package/{esm2015/chips/public-api.js → esm2020/chips/public-api.mjs} +0 -0
  161. package/{esm2015/chips/testing/chip-avatar-harness.js → esm2020/chips/testing/chip-avatar-harness.mjs} +0 -0
  162. package/{esm2015/chips/testing/chip-harness-filters.js → esm2020/chips/testing/chip-harness-filters.mjs} +0 -0
  163. package/esm2020/chips/testing/chip-harness.mjs +91 -0
  164. package/esm2020/chips/testing/chip-input-harness.mjs +82 -0
  165. package/esm2020/chips/testing/chip-list-harness.mjs +82 -0
  166. package/esm2020/chips/testing/chip-listbox-harness.mjs +44 -0
  167. package/esm2020/chips/testing/chip-option-harness.mjs +45 -0
  168. package/esm2020/chips/testing/chip-remove-harness.mjs +26 -0
  169. package/{esm2015/chips/testing/index.js → esm2020/chips/testing/index.mjs} +0 -0
  170. package/{esm2015/chips/testing/public-api.js → esm2020/chips/testing/public-api.mjs} +0 -0
  171. package/{esm2015/core/animation/animation.js → esm2020/core/animation/animation.mjs} +0 -0
  172. package/{esm2015/core/common-behaviors/color.js → esm2020/core/common-behaviors/color.mjs} +0 -0
  173. package/esm2020/core/common-behaviors/common-module.mjs +122 -0
  174. package/{esm2015/core/common-behaviors/constructor.js → esm2020/core/common-behaviors/constructor.mjs} +0 -0
  175. package/{esm2015/core/common-behaviors/disable-ripple.js → esm2020/core/common-behaviors/disable-ripple.mjs} +0 -0
  176. package/{esm2015/core/common-behaviors/disabled.js → esm2020/core/common-behaviors/disabled.mjs} +0 -0
  177. package/{esm2015/core/common-behaviors/error-state.js → esm2020/core/common-behaviors/error-state.mjs} +0 -0
  178. package/esm2020/core/common-behaviors/index.mjs +15 -0
  179. package/{esm2015/core/common-behaviors/initialized.js → esm2020/core/common-behaviors/initialized.mjs} +0 -0
  180. package/{esm2015/core/common-behaviors/tabindex.js → esm2020/core/common-behaviors/tabindex.mjs} +0 -0
  181. package/{esm2015/core/datetime/date-adapter.js → esm2020/core/datetime/date-adapter.mjs} +0 -0
  182. package/{esm2015/core/datetime/date-formats.js → esm2020/core/datetime/date-formats.mjs} +0 -0
  183. package/esm2020/core/datetime/index.mjs +47 -0
  184. package/esm2020/core/datetime/native-date-adapter.mjs +218 -0
  185. package/{esm2015/core/datetime/native-date-formats.js → esm2020/core/datetime/native-date-formats.mjs} +0 -0
  186. package/esm2020/core/error/error-options.mjs +33 -0
  187. package/esm2020/core/index.mjs +5 -0
  188. package/esm2020/core/line/line.mjs +64 -0
  189. package/esm2020/core/option/index.mjs +32 -0
  190. package/esm2020/core/option/optgroup.mjs +73 -0
  191. package/{esm2015/core/option/option-parent.js → esm2020/core/option/option-parent.mjs} +0 -0
  192. package/esm2020/core/option/option.mjs +276 -0
  193. package/{esm2015/core/public-api.js → esm2020/core/public-api.mjs} +0 -0
  194. package/esm2020/core/ripple/index.mjs +29 -0
  195. package/{esm2015/core/ripple/ripple-ref.js → esm2020/core/ripple/ripple-ref.mjs} +0 -0
  196. package/esm2020/core/ripple/ripple-renderer.mjs +261 -0
  197. package/esm2020/core/ripple/ripple.mjs +152 -0
  198. package/esm2020/core/selection/index.mjs +26 -0
  199. package/esm2020/core/selection/pseudo-checkbox/pseudo-checkbox.mjs +54 -0
  200. package/{esm2015/core/testing/index.js → esm2020/core/testing/index.mjs} +0 -0
  201. package/{esm2015/core/testing/optgroup-harness-filters.js → esm2020/core/testing/optgroup-harness-filters.mjs} +0 -0
  202. package/esm2020/core/testing/optgroup-harness.mjs +44 -0
  203. package/{esm2015/core/testing/option-harness-filters.js → esm2020/core/testing/option-harness-filters.mjs} +0 -0
  204. package/esm2020/core/testing/option-harness.mjs +54 -0
  205. package/{esm2015/core/testing/public-api.js → esm2020/core/testing/public-api.mjs} +0 -0
  206. package/esm2020/core/version.mjs +11 -0
  207. package/esm2020/datepicker/calendar-body.mjs +298 -0
  208. package/esm2020/datepicker/calendar.mjs +354 -0
  209. package/esm2020/datepicker/date-range-input-parts.mjs +342 -0
  210. package/esm2020/datepicker/date-range-input.mjs +331 -0
  211. package/esm2020/datepicker/date-range-picker.mjs +48 -0
  212. package/esm2020/datepicker/date-range-selection-strategy.mjs +59 -0
  213. package/esm2020/datepicker/date-selection-model.mjs +187 -0
  214. package/esm2020/datepicker/datepicker-actions.mjs +89 -0
  215. package/{esm2015/datepicker/datepicker-animations.js → esm2020/datepicker/datepicker-animations.mjs} +0 -0
  216. package/esm2020/datepicker/datepicker-base.mjs +549 -0
  217. package/{esm2015/datepicker/datepicker-errors.js → esm2020/datepicker/datepicker-errors.mjs} +0 -0
  218. package/esm2020/datepicker/datepicker-input-base.mjs +298 -0
  219. package/esm2020/datepicker/datepicker-input.mjs +183 -0
  220. package/esm2020/datepicker/datepicker-intl.mjs +53 -0
  221. package/esm2020/datepicker/datepicker-module.mjs +148 -0
  222. package/esm2020/datepicker/datepicker-toggle.mjs +113 -0
  223. package/esm2020/datepicker/datepicker.mjs +37 -0
  224. package/esm2020/datepicker/index.mjs +5 -0
  225. package/esm2020/datepicker/month-view.mjs +364 -0
  226. package/esm2020/datepicker/multi-year-view.mjs +289 -0
  227. package/{esm2015/datepicker/public-api.js → esm2020/datepicker/public-api.mjs} +0 -0
  228. package/esm2020/datepicker/testing/calendar-cell-harness.mjs +138 -0
  229. package/esm2020/datepicker/testing/calendar-harness.mjs +76 -0
  230. package/esm2020/datepicker/testing/date-range-input-harness.mjs +99 -0
  231. package/{esm2015/datepicker/testing/datepicker-harness-filters.js → esm2020/datepicker/testing/datepicker-harness-filters.mjs} +0 -0
  232. package/esm2020/datepicker/testing/datepicker-input-harness-base.mjs +81 -0
  233. package/esm2020/datepicker/testing/datepicker-input-harness.mjs +58 -0
  234. package/esm2020/datepicker/testing/datepicker-toggle-harness.mjs +41 -0
  235. package/esm2020/datepicker/testing/datepicker-trigger-harness-base.mjs +65 -0
  236. package/{esm2015/datepicker/testing/index.js → esm2020/datepicker/testing/index.mjs} +0 -0
  237. package/{esm2015/datepicker/testing/public-api.js → esm2020/datepicker/testing/public-api.mjs} +0 -0
  238. package/esm2020/datepicker/year-view.mjs +281 -0
  239. package/{esm2015/dialog/dialog-animations.js → esm2020/dialog/dialog-animations.mjs} +0 -0
  240. package/{esm2015/dialog/dialog-config.js → esm2020/dialog/dialog-config.mjs} +0 -0
  241. package/esm2020/dialog/dialog-container.mjs +282 -0
  242. package/esm2020/dialog/dialog-content-directives.mjs +172 -0
  243. package/esm2020/dialog/dialog-module.mjs +69 -0
  244. package/esm2020/dialog/dialog-ref.mjs +196 -0
  245. package/esm2020/dialog/dialog.mjs +358 -0
  246. package/{esm2015/dialog/index.js → esm2020/dialog/index.mjs} +0 -0
  247. package/{esm2015/dialog/public-api.js → esm2020/dialog/public-api.mjs} +0 -0
  248. package/{esm2015/dialog/testing/dialog-harness-filters.js → esm2020/dialog/testing/dialog-harness-filters.mjs} +0 -0
  249. package/esm2020/dialog/testing/dialog-harness.mjs +83 -0
  250. package/{esm2015/dialog/testing/index.js → esm2020/dialog/testing/index.mjs} +0 -0
  251. package/{esm2015/dialog/testing/public-api.js → esm2020/dialog/testing/public-api.mjs} +0 -0
  252. package/esm2020/divider/divider-module.mjs +25 -0
  253. package/esm2020/divider/divider.mjs +40 -0
  254. package/{esm2015/divider/index.js → esm2020/divider/index.mjs} +0 -0
  255. package/{esm2015/divider/public-api.js → esm2020/divider/public-api.mjs} +0 -0
  256. package/{esm2015/divider/testing/divider-harness-filters.js → esm2020/divider/testing/divider-harness-filters.mjs} +0 -0
  257. package/esm2020/divider/testing/divider-harness.mjs +22 -0
  258. package/{esm2015/divider/testing/index.js → esm2020/divider/testing/index.mjs} +0 -0
  259. package/{esm2015/divider/testing/public-api.js → esm2020/divider/testing/public-api.mjs} +0 -0
  260. package/{esm2015/expansion/accordion-base.js → esm2020/expansion/accordion-base.mjs} +0 -0
  261. package/esm2020/expansion/accordion.mjs +93 -0
  262. package/{esm2015/expansion/expansion-animations.js → esm2020/expansion/expansion-animations.mjs} +0 -0
  263. package/esm2020/expansion/expansion-module.mjs +59 -0
  264. package/esm2020/expansion/expansion-panel-content.mjs +27 -0
  265. package/esm2020/expansion/expansion-panel-header.mjs +226 -0
  266. package/esm2020/expansion/expansion-panel.mjs +195 -0
  267. package/{esm2015/expansion/index.js → esm2020/expansion/index.mjs} +0 -0
  268. package/{esm2015/expansion/public-api.js → esm2020/expansion/public-api.mjs} +0 -0
  269. package/esm2020/expansion/testing/accordion-harness.mjs +31 -0
  270. package/{esm2015/expansion/testing/expansion-harness-filters.js → esm2020/expansion/testing/expansion-harness-filters.mjs} +0 -0
  271. package/esm2020/expansion/testing/expansion-harness.mjs +120 -0
  272. package/{esm2015/expansion/testing/index.js → esm2020/expansion/testing/index.mjs} +0 -0
  273. package/{esm2015/expansion/testing/public-api.js → esm2020/expansion/testing/public-api.mjs} +0 -0
  274. package/esm2020/form-field/error.mjs +47 -0
  275. package/{esm2015/form-field/form-field-animations.js → esm2020/form-field/form-field-animations.mjs} +0 -0
  276. package/esm2020/form-field/form-field-control.mjs +11 -0
  277. package/{esm2015/form-field/form-field-errors.js → esm2020/form-field/form-field-errors.mjs} +0 -0
  278. package/esm2020/form-field/form-field-module.mjs +73 -0
  279. package/esm2020/form-field/form-field.mjs +510 -0
  280. package/esm2020/form-field/hint.mjs +49 -0
  281. package/{esm2015/form-field/index.js → esm2020/form-field/index.mjs} +0 -0
  282. package/esm2020/form-field/label.mjs +21 -0
  283. package/esm2020/form-field/placeholder.mjs +26 -0
  284. package/esm2020/form-field/prefix.mjs +28 -0
  285. package/{esm2015/form-field/public-api.js → esm2020/form-field/public-api.mjs} +0 -0
  286. package/esm2020/form-field/suffix.mjs +28 -0
  287. package/{esm2015/form-field/testing/control/form-field-control-harness.js → esm2020/form-field/testing/control/form-field-control-harness.mjs} +0 -0
  288. package/{esm2015/form-field/testing/control/index.js → esm2020/form-field/testing/control/index.mjs} +0 -0
  289. package/{esm2015/form-field/testing/form-field-harness-filters.js → esm2020/form-field/testing/form-field-harness-filters.mjs} +0 -0
  290. package/esm2020/form-field/testing/form-field-harness.mjs +181 -0
  291. package/{esm2015/form-field/testing/index.js → esm2020/form-field/testing/index.mjs} +0 -0
  292. package/{esm2015/form-field/testing/public-api.js → esm2020/form-field/testing/public-api.mjs} +0 -0
  293. package/{esm2015/grid-list/grid-list-base.js → esm2020/grid-list/grid-list-base.mjs} +0 -0
  294. package/esm2020/grid-list/grid-list-module.mjs +55 -0
  295. package/esm2020/grid-list/grid-list.mjs +135 -0
  296. package/esm2020/grid-list/grid-tile.mjs +117 -0
  297. package/esm2020/grid-list/index.mjs +5 -0
  298. package/{esm2015/grid-list/public-api.js → esm2020/grid-list/public-api.mjs} +0 -0
  299. package/{esm2015/grid-list/testing/grid-list-harness-filters.js → esm2020/grid-list/testing/grid-list-harness-filters.mjs} +0 -0
  300. package/esm2020/grid-list/testing/grid-list-harness.mjs +72 -0
  301. package/esm2020/grid-list/testing/grid-tile-harness.mjs +65 -0
  302. package/{esm2015/grid-list/testing/index.js → esm2020/grid-list/testing/index.mjs} +0 -0
  303. package/{esm2015/grid-list/testing/public-api.js → esm2020/grid-list/testing/public-api.mjs} +0 -0
  304. package/{esm2015/grid-list/tile-coordinator.js → esm2020/grid-list/tile-coordinator.mjs} +0 -0
  305. package/{esm2015/grid-list/tile-styler.js → esm2020/grid-list/tile-styler.mjs} +0 -0
  306. package/{esm2015/icon/fake-svgs.js → esm2020/icon/fake-svgs.mjs} +0 -0
  307. package/esm2020/icon/icon-module.mjs +25 -0
  308. package/esm2020/icon/icon-registry.mjs +582 -0
  309. package/esm2020/icon/icon.mjs +357 -0
  310. package/{esm2015/icon/index.js → esm2020/icon/index.mjs} +0 -0
  311. package/{esm2015/icon/public-api.js → esm2020/icon/public-api.mjs} +0 -0
  312. package/esm2020/icon/testing/fake-icon-registry.mjs +92 -0
  313. package/{esm2015/icon/testing/icon-harness-filters.js → esm2020/icon/testing/icon-harness-filters.mjs} +0 -0
  314. package/esm2020/icon/testing/icon-harness.mjs +54 -0
  315. package/{esm2015/icon/testing/index.js → esm2020/icon/testing/index.mjs} +0 -0
  316. package/{esm2015/icon/testing/public-api.js → esm2020/icon/testing/public-api.mjs} +0 -0
  317. package/esm2020/icon/trusted-types.mjs +43 -0
  318. package/{esm2015/index.js → esm2020/index.mjs} +0 -0
  319. package/{esm2015/input/index.js → esm2020/input/index.mjs} +0 -0
  320. package/{esm2015/input/input-errors.js → esm2020/input/input-errors.mjs} +0 -0
  321. package/esm2020/input/input-module.mjs +51 -0
  322. package/{esm2015/input/input-value-accessor.js → esm2020/input/input-value-accessor.mjs} +0 -0
  323. package/esm2020/input/input.mjs +428 -0
  324. package/{esm2015/input/public-api.js → esm2020/input/public-api.mjs} +0 -0
  325. package/{esm2015/input/testing/index.js → esm2020/input/testing/index.mjs} +0 -0
  326. package/{esm2015/input/testing/input-harness-filters.js → esm2020/input/testing/input-harness-filters.mjs} +0 -0
  327. package/esm2020/input/testing/input-harness.mjs +113 -0
  328. package/esm2020/input/testing/native-option-harness.mjs +42 -0
  329. package/{esm2015/input/testing/native-select-harness-filters.js → esm2020/input/testing/native-select-harness-filters.mjs} +0 -0
  330. package/esm2020/input/testing/native-select-harness.mjs +79 -0
  331. package/{esm2015/input/testing/public-api.js → esm2020/input/testing/public-api.mjs} +0 -0
  332. package/{esm2015/list/index.js → esm2020/list/index.mjs} +0 -0
  333. package/esm2020/list/list-module.mjs +71 -0
  334. package/esm2020/list/list.mjs +216 -0
  335. package/{esm2015/list/public-api.js → esm2020/list/public-api.mjs} +0 -0
  336. package/esm2020/list/selection-list.mjs +612 -0
  337. package/esm2020/list/testing/action-list-harness.mjs +59 -0
  338. package/{esm2015/list/testing/index.js → esm2020/list/testing/index.mjs} +0 -0
  339. package/esm2020/list/testing/list-harness-base.mjs +88 -0
  340. package/{esm2015/list/testing/list-harness-filters.js → esm2020/list/testing/list-harness-filters.mjs} +0 -0
  341. package/{esm2015/list/testing/list-harness.js → esm2020/list/testing/list-harness.mjs} +0 -0
  342. package/esm2020/list/testing/list-item-harness-base.mjs +72 -0
  343. package/esm2020/list/testing/nav-list-harness.mjs +64 -0
  344. package/{esm2015/list/testing/public-api.js → esm2020/list/testing/public-api.mjs} +0 -0
  345. package/esm2020/list/testing/selection-list-harness.mjs +125 -0
  346. package/esm2020/menu/index.mjs +5 -0
  347. package/{esm2015/menu/menu-animations.js → esm2020/menu/menu-animations.mjs} +0 -0
  348. package/esm2020/menu/menu-content.mjs +97 -0
  349. package/{esm2015/menu/menu-errors.js → esm2020/menu/menu-errors.mjs} +0 -0
  350. package/esm2020/menu/menu-item.mjs +164 -0
  351. package/esm2020/menu/menu-module.mjs +58 -0
  352. package/{esm2015/menu/menu-panel.js → esm2020/menu/menu-panel.mjs} +0 -0
  353. package/{esm2015/menu/menu-positions.js → esm2020/menu/menu-positions.mjs} +0 -0
  354. package/esm2020/menu/menu-trigger.mjs +540 -0
  355. package/esm2020/menu/menu.mjs +401 -0
  356. package/{esm2015/menu/public-api.js → esm2020/menu/public-api.mjs} +0 -0
  357. package/{esm2015/menu/testing/index.js → esm2020/menu/testing/index.mjs} +0 -0
  358. package/{esm2015/menu/testing/menu-harness-filters.js → esm2020/menu/testing/menu-harness-filters.mjs} +0 -0
  359. package/esm2020/menu/testing/menu-harness.mjs +183 -0
  360. package/{esm2015/menu/testing/public-api.js → esm2020/menu/testing/public-api.mjs} +0 -0
  361. package/{esm2015/paginator/index.js → esm2020/paginator/index.mjs} +0 -0
  362. package/esm2020/paginator/paginator-intl.mjs +64 -0
  363. package/esm2020/paginator/paginator-module.mjs +47 -0
  364. package/esm2020/paginator/paginator.mjs +268 -0
  365. package/{esm2015/paginator/public-api.js → esm2020/paginator/public-api.mjs} +0 -0
  366. package/{esm2015/paginator/testing/index.js → esm2020/paginator/testing/index.mjs} +0 -0
  367. package/{esm2015/paginator/testing/paginator-harness-filters.js → esm2020/paginator/testing/paginator-harness-filters.mjs} +0 -0
  368. package/esm2020/paginator/testing/paginator-harness.mjs +91 -0
  369. package/{esm2015/paginator/testing/public-api.js → esm2020/paginator/testing/public-api.mjs} +0 -0
  370. package/{esm2015/progress-bar/index.js → esm2020/progress-bar/index.mjs} +0 -0
  371. package/esm2020/progress-bar/progress-bar-module.mjs +26 -0
  372. package/esm2020/progress-bar/progress-bar.mjs +187 -0
  373. package/{esm2015/progress-bar/public-api.js → esm2020/progress-bar/public-api.mjs} +0 -0
  374. package/{esm2015/progress-bar/testing/index.js → esm2020/progress-bar/testing/index.mjs} +0 -0
  375. package/{esm2015/progress-bar/testing/progress-bar-harness-filters.js → esm2020/progress-bar/testing/progress-bar-harness-filters.mjs} +0 -0
  376. package/esm2020/progress-bar/testing/progress-bar-harness.mjs +34 -0
  377. package/{esm2015/progress-bar/testing/public-api.js → esm2020/progress-bar/testing/public-api.mjs} +0 -0
  378. package/{esm2015/progress-spinner/index.js → esm2020/progress-spinner/index.mjs} +0 -0
  379. package/esm2020/progress-spinner/progress-spinner-module.mjs +36 -0
  380. package/esm2020/progress-spinner/progress-spinner.mjs +280 -0
  381. package/{esm2015/progress-spinner/public-api.js → esm2020/progress-spinner/public-api.mjs} +0 -0
  382. package/{esm2015/progress-spinner/testing/index.js → esm2020/progress-spinner/testing/index.mjs} +0 -0
  383. package/{esm2015/progress-spinner/testing/progress-spinner-harness-filters.js → esm2020/progress-spinner/testing/progress-spinner-harness-filters.mjs} +0 -0
  384. package/esm2020/progress-spinner/testing/progress-spinner-harness.mjs +35 -0
  385. package/{esm2015/progress-spinner/testing/public-api.js → esm2020/progress-spinner/testing/public-api.mjs} +0 -0
  386. package/{esm2015/radio/index.js → esm2020/radio/index.mjs} +0 -0
  387. package/{esm2015/radio/public-api.js → esm2020/radio/public-api.mjs} +0 -0
  388. package/esm2020/radio/radio-module.mjs +25 -0
  389. package/esm2020/radio/radio.mjs +570 -0
  390. package/{esm2015/radio/testing/index.js → esm2020/radio/testing/index.mjs} +0 -0
  391. package/{esm2015/radio/testing/public-api.js → esm2020/radio/testing/public-api.mjs} +0 -0
  392. package/{esm2015/radio/testing/radio-harness-filters.js → esm2020/radio/testing/radio-harness-filters.mjs} +0 -0
  393. package/esm2020/radio/testing/radio-harness.mjs +231 -0
  394. package/{esm2015/select/index.js → esm2020/select/index.mjs} +0 -0
  395. package/{esm2015/select/public-api.js → esm2020/select/public-api.mjs} +0 -0
  396. package/{esm2015/select/select-animations.js → esm2020/select/select-animations.mjs} +0 -0
  397. package/{esm2015/select/select-errors.js → esm2020/select/select-errors.mjs} +0 -0
  398. package/esm2020/select/select-module.mjs +58 -0
  399. package/esm2020/select/select.mjs +1188 -0
  400. package/{esm2015/select/testing/index.js → esm2020/select/testing/index.mjs} +0 -0
  401. package/{esm2015/select/testing/public-api.js → esm2020/select/testing/public-api.mjs} +0 -0
  402. package/{esm2015/select/testing/select-harness-filters.js → esm2020/select/testing/select-harness-filters.mjs} +0 -0
  403. package/esm2020/select/testing/select-harness.mjs +130 -0
  404. package/{esm2015/sidenav/drawer-animations.js → esm2020/sidenav/drawer-animations.mjs} +0 -0
  405. package/esm2020/sidenav/drawer.mjs +788 -0
  406. package/esm2020/sidenav/index.mjs +5 -0
  407. package/{esm2015/sidenav/public-api.js → esm2020/sidenav/public-api.mjs} +0 -0
  408. package/esm2020/sidenav/sidenav-module.mjs +71 -0
  409. package/esm2020/sidenav/sidenav.mjs +115 -0
  410. package/esm2020/sidenav/testing/drawer-container-harness.mjs +36 -0
  411. package/{esm2015/sidenav/testing/drawer-content-harness.js → esm2020/sidenav/testing/drawer-content-harness.mjs} +0 -0
  412. package/{esm2015/sidenav/testing/drawer-harness-filters.js → esm2020/sidenav/testing/drawer-harness-filters.mjs} +0 -0
  413. package/esm2020/sidenav/testing/drawer-harness.mjs +50 -0
  414. package/{esm2015/sidenav/testing/index.js → esm2020/sidenav/testing/index.mjs} +0 -0
  415. package/{esm2015/sidenav/testing/public-api.js → esm2020/sidenav/testing/public-api.mjs} +0 -0
  416. package/esm2020/sidenav/testing/sidenav-container-harness.mjs +36 -0
  417. package/{esm2015/sidenav/testing/sidenav-content-harness.js → esm2020/sidenav/testing/sidenav-content-harness.mjs} +0 -0
  418. package/esm2020/sidenav/testing/sidenav-harness.mjs +29 -0
  419. package/{esm2015/slide-toggle/index.js → esm2020/slide-toggle/index.mjs} +0 -0
  420. package/{esm2015/slide-toggle/public-api.js → esm2020/slide-toggle/public-api.mjs} +0 -0
  421. package/{esm2015/slide-toggle/slide-toggle-config.js → esm2020/slide-toggle/slide-toggle-config.mjs} +0 -0
  422. package/esm2020/slide-toggle/slide-toggle-module.mjs +57 -0
  423. package/esm2020/slide-toggle/slide-toggle-required-validator.mjs +36 -0
  424. package/esm2020/slide-toggle/slide-toggle.mjs +253 -0
  425. package/{esm2015/slide-toggle/testing/index.js → esm2020/slide-toggle/testing/index.mjs} +0 -0
  426. package/{esm2015/slide-toggle/testing/public-api.js → esm2020/slide-toggle/testing/public-api.mjs} +0 -0
  427. package/{esm2015/slide-toggle/testing/slide-toggle-harness-filters.js → esm2020/slide-toggle/testing/slide-toggle-harness-filters.mjs} +0 -0
  428. package/esm2020/slide-toggle/testing/slide-toggle-harness.mjs +110 -0
  429. package/{esm2015/slider/index.js → esm2020/slider/index.mjs} +0 -0
  430. package/{esm2015/slider/public-api.js → esm2020/slider/public-api.mjs} +0 -0
  431. package/esm2020/slider/slider-module.mjs +26 -0
  432. package/esm2020/slider/slider.mjs +801 -0
  433. package/{esm2015/slider/testing/index.js → esm2020/slider/testing/index.mjs} +0 -0
  434. package/{esm2015/slider/testing/public-api.js → esm2020/slider/testing/public-api.mjs} +0 -0
  435. package/{esm2015/slider/testing/slider-harness-filters.js → esm2020/slider/testing/slider-harness-filters.mjs} +0 -0
  436. package/esm2020/slider/testing/slider-harness.mjs +114 -0
  437. package/{esm2015/snack-bar/index.js → esm2020/snack-bar/index.mjs} +0 -0
  438. package/{esm2015/snack-bar/public-api.js → esm2020/snack-bar/public-api.mjs} +0 -0
  439. package/esm2020/snack-bar/simple-snack-bar.mjs +44 -0
  440. package/{esm2015/snack-bar/snack-bar-animations.js → esm2020/snack-bar/snack-bar-animations.mjs} +0 -0
  441. package/{esm2015/snack-bar/snack-bar-config.js → esm2020/snack-bar/snack-bar-config.mjs} +0 -0
  442. package/esm2020/snack-bar/snack-bar-container.mjs +205 -0
  443. package/esm2020/snack-bar/snack-bar-module.mjs +47 -0
  444. package/esm2020/snack-bar/snack-bar-ref.mjs +90 -0
  445. package/esm2020/snack-bar/snack-bar.mjs +265 -0
  446. package/{esm2015/snack-bar/testing/index.js → esm2020/snack-bar/testing/index.mjs} +0 -0
  447. package/{esm2015/snack-bar/testing/public-api.js → esm2020/snack-bar/testing/public-api.mjs} +0 -0
  448. package/{esm2015/snack-bar/testing/snack-bar-harness-filters.js → esm2020/snack-bar/testing/snack-bar-harness-filters.mjs} +0 -0
  449. package/esm2020/snack-bar/testing/snack-bar-harness.mjs +118 -0
  450. package/{esm2015/sort/index.js → esm2020/sort/index.mjs} +0 -0
  451. package/{esm2015/sort/public-api.js → esm2020/sort/public-api.mjs} +0 -0
  452. package/{esm2015/sort/sort-animations.js → esm2020/sort/sort-animations.mjs} +0 -0
  453. package/{esm2015/sort/sort-direction.js → esm2020/sort/sort-direction.mjs} +0 -0
  454. package/{esm2015/sort/sort-errors.js → esm2020/sort/sort-errors.mjs} +0 -0
  455. package/esm2020/sort/sort-header-intl.mjs +43 -0
  456. package/esm2020/sort/sort-header.mjs +275 -0
  457. package/esm2020/sort/sort-module.mjs +29 -0
  458. package/esm2020/sort/sort.mjs +154 -0
  459. package/{esm2015/sort/testing/index.js → esm2020/sort/testing/index.mjs} +0 -0
  460. package/{esm2015/sort/testing/public-api.js → esm2020/sort/testing/public-api.mjs} +0 -0
  461. package/{esm2015/sort/testing/sort-harness-filters.js → esm2020/sort/testing/sort-harness-filters.mjs} +0 -0
  462. package/esm2020/sort/testing/sort-harness.mjs +36 -0
  463. package/esm2020/sort/testing/sort-header-harness.mjs +56 -0
  464. package/{esm2015/stepper/index.js → esm2020/stepper/index.mjs} +0 -0
  465. package/{esm2015/stepper/public-api.js → esm2020/stepper/public-api.mjs} +0 -0
  466. package/esm2020/stepper/step-content.mjs +26 -0
  467. package/esm2020/stepper/step-header.mjs +110 -0
  468. package/esm2020/stepper/step-label.mjs +21 -0
  469. package/{esm2015/stepper/stepper-animations.js → esm2020/stepper/stepper-animations.mjs} +0 -0
  470. package/esm2020/stepper/stepper-button.mjs +43 -0
  471. package/esm2020/stepper/stepper-icon.mjs +29 -0
  472. package/esm2020/stepper/stepper-intl.mjs +43 -0
  473. package/esm2020/stepper/stepper-module.mjs +97 -0
  474. package/esm2020/stepper/stepper.mjs +213 -0
  475. package/{esm2015/stepper/testing/index.js → esm2020/stepper/testing/index.mjs} +0 -0
  476. package/{esm2015/stepper/testing/public-api.js → esm2020/stepper/testing/public-api.mjs} +0 -0
  477. package/{esm2015/stepper/testing/step-harness-filters.js → esm2020/stepper/testing/step-harness-filters.mjs} +0 -0
  478. package/esm2020/stepper/testing/step-harness.mjs +90 -0
  479. package/esm2020/stepper/testing/stepper-button-harnesses.mjs +50 -0
  480. package/esm2020/stepper/testing/stepper-harness.mjs +50 -0
  481. package/esm2020/table/cell.mjs +139 -0
  482. package/{esm2015/table/index.js → esm2020/table/index.mjs} +0 -0
  483. package/{esm2015/table/public-api.js → esm2020/table/public-api.mjs} +0 -0
  484. package/esm2020/table/row.mjs +139 -0
  485. package/esm2020/table/table-data-source.mjs +310 -0
  486. package/esm2020/table/table-module.mjs +101 -0
  487. package/esm2020/table/table.mjs +71 -0
  488. package/esm2020/table/testing/cell-harness.mjs +72 -0
  489. package/{esm2015/table/testing/index.js → esm2020/table/testing/index.mjs} +0 -0
  490. package/{esm2015/table/testing/public-api.js → esm2020/table/testing/public-api.mjs} +0 -0
  491. package/esm2020/table/testing/row-harness.mjs +84 -0
  492. package/{esm2015/table/testing/table-harness-filters.js → esm2020/table/testing/table-harness-filters.mjs} +0 -0
  493. package/esm2020/table/testing/table-harness.mjs +88 -0
  494. package/esm2020/table/text-column.mjs +58 -0
  495. package/esm2020/tabs/index.mjs +5 -0
  496. package/esm2020/tabs/ink-bar.mjs +93 -0
  497. package/esm2020/tabs/paginated-tab-header.mjs +480 -0
  498. package/{esm2015/tabs/public-api.js → esm2020/tabs/public-api.mjs} +0 -0
  499. package/esm2020/tabs/tab-body.mjs +214 -0
  500. package/{esm2015/tabs/tab-config.js → esm2020/tabs/tab-config.mjs} +0 -0
  501. package/esm2020/tabs/tab-content.mjs +32 -0
  502. package/esm2020/tabs/tab-group.mjs +382 -0
  503. package/esm2020/tabs/tab-header.mjs +101 -0
  504. package/esm2020/tabs/tab-label-wrapper.mjs +41 -0
  505. package/esm2020/tabs/tab-label.mjs +43 -0
  506. package/{esm2015/tabs/tab-nav-bar/index.js → esm2020/tabs/tab-nav-bar/index.mjs} +0 -0
  507. package/esm2020/tabs/tab-nav-bar/tab-nav-bar.mjs +263 -0
  508. package/esm2020/tabs/tab.mjs +106 -0
  509. package/{esm2015/tabs/tabs-animations.js → esm2020/tabs/tabs-animations.mjs} +0 -0
  510. package/esm2020/tabs/tabs-module.mjs +93 -0
  511. package/{esm2015/tabs/testing/index.js → esm2020/tabs/testing/index.mjs} +0 -0
  512. package/{esm2015/tabs/testing/public-api.js → esm2020/tabs/testing/public-api.mjs} +0 -0
  513. package/esm2020/tabs/testing/tab-group-harness.mjs +58 -0
  514. package/{esm2015/tabs/testing/tab-harness-filters.js → esm2020/tabs/testing/tab-harness-filters.mjs} +0 -0
  515. package/esm2020/tabs/testing/tab-harness.mjs +66 -0
  516. package/esm2020/tabs/testing/tab-link-harness.mjs +42 -0
  517. package/esm2020/tabs/testing/tab-nav-bar-harness.mjs +54 -0
  518. package/{esm2015/toolbar/index.js → esm2020/toolbar/index.mjs} +0 -0
  519. package/{esm2015/toolbar/public-api.js → esm2020/toolbar/public-api.mjs} +0 -0
  520. package/{esm2015/toolbar/testing/index.js → esm2020/toolbar/testing/index.mjs} +0 -0
  521. package/{esm2015/toolbar/testing/public-api.js → esm2020/toolbar/testing/public-api.mjs} +0 -0
  522. package/{esm2015/toolbar/testing/toolbar-harness-filters.js → esm2020/toolbar/testing/toolbar-harness-filters.mjs} +0 -0
  523. package/esm2020/toolbar/testing/toolbar-harness.mjs +40 -0
  524. package/esm2020/toolbar/toolbar-module.mjs +25 -0
  525. package/esm2020/toolbar/toolbar.mjs +88 -0
  526. package/{esm2015/tooltip/index.js → esm2020/tooltip/index.mjs} +0 -0
  527. package/{esm2015/tooltip/public-api.js → esm2020/tooltip/public-api.mjs} +0 -0
  528. package/{esm2015/tooltip/testing/index.js → esm2020/tooltip/testing/index.mjs} +0 -0
  529. package/{esm2015/tooltip/testing/public-api.js → esm2020/tooltip/testing/public-api.mjs} +0 -0
  530. package/{esm2015/tooltip/testing/tooltip-harness-filters.js → esm2020/tooltip/testing/tooltip-harness-filters.mjs} +0 -0
  531. package/esm2020/tooltip/testing/tooltip-harness.mjs +57 -0
  532. package/{esm2015/tooltip/tooltip-animations.js → esm2020/tooltip/tooltip-animations.mjs} +0 -0
  533. package/esm2020/tooltip/tooltip-module.mjs +44 -0
  534. package/esm2020/tooltip/tooltip.mjs +739 -0
  535. package/{esm2015/tree/data-source/flat-data-source.js → esm2020/tree/data-source/flat-data-source.mjs} +0 -0
  536. package/{esm2015/tree/data-source/nested-data-source.js → esm2020/tree/data-source/nested-data-source.mjs} +0 -0
  537. package/{esm2015/tree/index.js → esm2020/tree/index.mjs} +0 -0
  538. package/esm2020/tree/node.mjs +143 -0
  539. package/esm2020/tree/outlet.mjs +41 -0
  540. package/esm2020/tree/padding.mjs +37 -0
  541. package/{esm2015/tree/public-api.js → esm2020/tree/public-api.mjs} +0 -0
  542. package/{esm2015/tree/testing/index.js → esm2020/tree/testing/index.mjs} +0 -0
  543. package/esm2020/tree/testing/node-harness.mjs +69 -0
  544. package/{esm2015/tree/testing/public-api.js → esm2020/tree/testing/public-api.mjs} +0 -0
  545. package/{esm2015/tree/testing/tree-harness-filters.js → esm2020/tree/testing/tree-harness-filters.mjs} +0 -0
  546. package/esm2020/tree/testing/tree-harness.mjs +123 -0
  547. package/esm2020/tree/toggle.mjs +36 -0
  548. package/esm2020/tree/tree-module.mjs +51 -0
  549. package/esm2020/tree/tree.mjs +37 -0
  550. package/expansion/accordion.d.ts +3 -0
  551. package/expansion/expansion-module.d.ts +12 -7
  552. package/expansion/expansion-panel-content.d.ts +3 -0
  553. package/expansion/expansion-panel-header.d.ts +8 -1
  554. package/expansion/expansion-panel.d.ts +5 -0
  555. package/expansion/package.json +5 -5
  556. package/expansion/testing/package.json +5 -5
  557. package/fesm2015/autocomplete/testing.mjs +132 -0
  558. package/fesm2015/autocomplete/testing.mjs.map +1 -0
  559. package/fesm2015/autocomplete.mjs +958 -0
  560. package/fesm2015/autocomplete.mjs.map +1 -0
  561. package/fesm2015/badge/testing.mjs +97 -0
  562. package/fesm2015/badge/testing.mjs.map +1 -0
  563. package/fesm2015/badge.mjs +266 -0
  564. package/fesm2015/badge.mjs.map +1 -0
  565. package/fesm2015/bottom-sheet/testing.mjs +52 -0
  566. package/fesm2015/bottom-sheet/testing.mjs.map +1 -0
  567. package/fesm2015/bottom-sheet.mjs +596 -0
  568. package/fesm2015/bottom-sheet.mjs.map +1 -0
  569. package/fesm2015/button/testing.mjs +76 -0
  570. package/fesm2015/button/testing.mjs.map +1 -0
  571. package/fesm2015/button-toggle/testing.mjs +181 -0
  572. package/fesm2015/button-toggle/testing.mjs.map +1 -0
  573. package/fesm2015/button-toggle.mjs +502 -0
  574. package/fesm2015/button-toggle.mjs.map +1 -0
  575. package/fesm2015/button.mjs +202 -0
  576. package/fesm2015/button.mjs.map +1 -0
  577. package/fesm2015/card/testing.mjs +64 -0
  578. package/fesm2015/card/testing.mjs.map +1 -0
  579. package/fesm2015/card.mjs +322 -0
  580. package/fesm2015/card.mjs.map +1 -0
  581. package/fesm2015/checkbox/testing.mjs +168 -0
  582. package/fesm2015/checkbox/testing.mjs.map +1 -0
  583. package/fesm2015/checkbox.mjs +503 -0
  584. package/fesm2015/checkbox.mjs.map +1 -0
  585. package/fesm2015/chips/testing.mjs +423 -0
  586. package/fesm2015/chips/testing.mjs.map +1 -0
  587. package/fesm2015/chips.mjs +1354 -0
  588. package/fesm2015/chips.mjs.map +1 -0
  589. package/fesm2015/core/testing.mjs +120 -0
  590. package/fesm2015/core/testing.mjs.map +1 -0
  591. package/fesm2015/core.mjs +1719 -0
  592. package/fesm2015/core.mjs.map +1 -0
  593. package/fesm2015/datepicker/testing.mjs +635 -0
  594. package/fesm2015/datepicker/testing.mjs.map +1 -0
  595. package/fesm2015/datepicker.mjs +3948 -0
  596. package/fesm2015/datepicker.mjs.map +1 -0
  597. package/fesm2015/dialog/testing.mjs +119 -0
  598. package/fesm2015/dialog/testing.mjs.map +1 -0
  599. package/fesm2015/dialog.mjs +1155 -0
  600. package/fesm2015/dialog.mjs.map +1 -0
  601. package/fesm2015/divider/testing.mjs +39 -0
  602. package/fesm2015/divider/testing.mjs.map +1 -0
  603. package/fesm2015/divider.mjs +77 -0
  604. package/fesm2015/divider.mjs.map +1 -0
  605. package/fesm2015/expansion/testing.mjs +187 -0
  606. package/fesm2015/expansion/testing.mjs.map +1 -0
  607. package/fesm2015/expansion.mjs +641 -0
  608. package/fesm2015/expansion.mjs.map +1 -0
  609. package/fesm2015/form-field/testing/control.mjs +26 -0
  610. package/fesm2015/form-field/testing/control.mjs.map +1 -0
  611. package/fesm2015/form-field/testing.mjs +231 -0
  612. package/fesm2015/form-field/testing.mjs.map +1 -0
  613. package/fesm2015/form-field.mjs +814 -0
  614. package/fesm2015/form-field.mjs.map +1 -0
  615. package/fesm2015/grid-list/testing.mjs +161 -0
  616. package/fesm2015/grid-list/testing.mjs.map +1 -0
  617. package/fesm2015/grid-list.mjs +700 -0
  618. package/fesm2015/grid-list.mjs.map +1 -0
  619. package/fesm2015/icon/testing.mjs +163 -0
  620. package/fesm2015/icon/testing.mjs.map +1 -0
  621. package/fesm2015/icon.mjs +1016 -0
  622. package/fesm2015/icon.mjs.map +1 -0
  623. package/fesm2015/input/testing.mjs +281 -0
  624. package/fesm2015/input/testing.mjs.map +1 -0
  625. package/fesm2015/input.mjs +515 -0
  626. package/fesm2015/input.mjs.map +1 -0
  627. package/fesm2015/list/testing.mjs +486 -0
  628. package/fesm2015/list/testing.mjs.map +1 -0
  629. package/fesm2015/list.mjs +908 -0
  630. package/fesm2015/list.mjs.map +1 -0
  631. package/fesm2015/material.mjs +16 -0
  632. package/fesm2015/material.mjs.map +1 -0
  633. package/fesm2015/menu/testing.mjs +235 -0
  634. package/fesm2015/menu/testing.mjs.map +1 -0
  635. package/fesm2015/menu.mjs +1363 -0
  636. package/fesm2015/menu.mjs.map +1 -0
  637. package/fesm2015/paginator/testing.mjs +118 -0
  638. package/fesm2015/paginator/testing.mjs.map +1 -0
  639. package/fesm2015/paginator.mjs +387 -0
  640. package/fesm2015/paginator.mjs.map +1 -0
  641. package/fesm2015/progress-bar/testing.mjs +51 -0
  642. package/fesm2015/progress-bar/testing.mjs.map +1 -0
  643. package/fesm2015/progress-bar.mjs +225 -0
  644. package/fesm2015/progress-bar.mjs.map +1 -0
  645. package/fesm2015/progress-spinner/testing.mjs +52 -0
  646. package/fesm2015/progress-spinner/testing.mjs.map +1 -0
  647. package/fesm2015/progress-spinner.mjs +330 -0
  648. package/fesm2015/progress-spinner.mjs.map +1 -0
  649. package/fesm2015/radio/testing.mjs +284 -0
  650. package/fesm2015/radio/testing.mjs.map +1 -0
  651. package/fesm2015/radio.mjs +599 -0
  652. package/fesm2015/radio.mjs.map +1 -0
  653. package/fesm2015/select/testing.mjs +169 -0
  654. package/fesm2015/select/testing.mjs.map +1 -0
  655. package/fesm2015/select.mjs +1346 -0
  656. package/fesm2015/select.mjs.map +1 -0
  657. package/fesm2015/sidenav/testing.mjs +195 -0
  658. package/fesm2015/sidenav/testing.mjs.map +1 -0
  659. package/fesm2015/sidenav.mjs +1013 -0
  660. package/fesm2015/sidenav.mjs.map +1 -0
  661. package/fesm2015/slide-toggle/testing.mjs +151 -0
  662. package/fesm2015/slide-toggle/testing.mjs.map +1 -0
  663. package/fesm2015/slide-toggle.mjs +359 -0
  664. package/fesm2015/slide-toggle.mjs.map +1 -0
  665. package/fesm2015/slider/testing.mjs +153 -0
  666. package/fesm2015/slider/testing.mjs.map +1 -0
  667. package/fesm2015/slider.mjs +830 -0
  668. package/fesm2015/slider.mjs.map +1 -0
  669. package/fesm2015/snack-bar/testing.mjs +153 -0
  670. package/fesm2015/snack-bar/testing.mjs.map +1 -0
  671. package/fesm2015/snack-bar.mjs +698 -0
  672. package/fesm2015/snack-bar.mjs.map +1 -0
  673. package/fesm2015/sort/testing.mjs +110 -0
  674. package/fesm2015/sort/testing.mjs.map +1 -0
  675. package/fesm2015/sort.mjs +605 -0
  676. package/fesm2015/sort.mjs.map +1 -0
  677. package/fesm2015/stepper/testing.mjs +216 -0
  678. package/fesm2015/stepper/testing.mjs.map +1 -0
  679. package/fesm2015/stepper.mjs +579 -0
  680. package/fesm2015/stepper.mjs.map +1 -0
  681. package/fesm2015/table/testing.mjs +259 -0
  682. package/fesm2015/table/testing.mjs.map +1 -0
  683. package/fesm2015/table.mjs +817 -0
  684. package/fesm2015/table.mjs.map +1 -0
  685. package/fesm2015/tabs/testing.mjs +245 -0
  686. package/fesm2015/tabs/testing.mjs.map +1 -0
  687. package/fesm2015/tabs.mjs +1846 -0
  688. package/fesm2015/tabs.mjs.map +1 -0
  689. package/fesm2015/toolbar/testing.mjs +59 -0
  690. package/fesm2015/toolbar/testing.mjs.map +1 -0
  691. package/fesm2015/toolbar.mjs +118 -0
  692. package/fesm2015/toolbar.mjs.map +1 -0
  693. package/fesm2015/tooltip/testing.mjs +80 -0
  694. package/fesm2015/tooltip/testing.mjs.map +1 -0
  695. package/fesm2015/tooltip.mjs +820 -0
  696. package/fesm2015/tooltip.mjs.map +1 -0
  697. package/fesm2015/tree/testing.mjs +215 -0
  698. package/fesm2015/tree/testing.mjs.map +1 -0
  699. package/fesm2015/tree.mjs +520 -0
  700. package/fesm2015/tree.mjs.map +1 -0
  701. package/fesm2020/autocomplete/testing.mjs +128 -0
  702. package/fesm2020/autocomplete/testing.mjs.map +1 -0
  703. package/fesm2020/autocomplete.mjs +958 -0
  704. package/fesm2020/autocomplete.mjs.map +1 -0
  705. package/fesm2020/badge/testing.mjs +99 -0
  706. package/fesm2020/badge/testing.mjs.map +1 -0
  707. package/fesm2020/badge.mjs +271 -0
  708. package/fesm2020/badge.mjs.map +1 -0
  709. package/fesm2020/bottom-sheet/testing.mjs +62 -0
  710. package/fesm2020/bottom-sheet/testing.mjs.map +1 -0
  711. package/fesm2020/bottom-sheet.mjs +592 -0
  712. package/fesm2020/bottom-sheet.mjs.map +1 -0
  713. package/fesm2020/button/testing.mjs +78 -0
  714. package/fesm2020/button/testing.mjs.map +1 -0
  715. package/fesm2020/button-toggle/testing.mjs +176 -0
  716. package/fesm2020/button-toggle/testing.mjs.map +1 -0
  717. package/fesm2020/button-toggle.mjs +505 -0
  718. package/fesm2020/button-toggle.mjs.map +1 -0
  719. package/fesm2020/button.mjs +205 -0
  720. package/fesm2020/button.mjs.map +1 -0
  721. package/fesm2020/card/testing.mjs +70 -0
  722. package/fesm2020/card/testing.mjs.map +1 -0
  723. package/fesm2020/card.mjs +320 -0
  724. package/fesm2020/card.mjs.map +1 -0
  725. package/fesm2020/checkbox/testing.mjs +150 -0
  726. package/fesm2020/checkbox/testing.mjs.map +1 -0
  727. package/fesm2020/checkbox.mjs +507 -0
  728. package/fesm2020/checkbox.mjs.map +1 -0
  729. package/fesm2020/chips/testing.mjs +398 -0
  730. package/fesm2020/chips/testing.mjs.map +1 -0
  731. package/fesm2020/chips.mjs +1346 -0
  732. package/fesm2020/chips.mjs.map +1 -0
  733. package/fesm2020/core/testing.mjs +131 -0
  734. package/fesm2020/core/testing.mjs.map +1 -0
  735. package/fesm2020/core.mjs +1731 -0
  736. package/fesm2020/core.mjs.map +1 -0
  737. package/fesm2020/datepicker/testing.mjs +572 -0
  738. package/fesm2020/datepicker/testing.mjs.map +1 -0
  739. package/fesm2020/datepicker.mjs +3921 -0
  740. package/fesm2020/datepicker.mjs.map +1 -0
  741. package/fesm2020/dialog/testing.mjs +110 -0
  742. package/fesm2020/dialog/testing.mjs.map +1 -0
  743. package/fesm2020/dialog.mjs +1147 -0
  744. package/fesm2020/dialog.mjs.map +1 -0
  745. package/fesm2020/divider/testing.mjs +49 -0
  746. package/fesm2020/divider/testing.mjs.map +1 -0
  747. package/fesm2020/divider.mjs +77 -0
  748. package/fesm2020/divider.mjs.map +1 -0
  749. package/fesm2020/expansion/testing.mjs +176 -0
  750. package/fesm2020/expansion/testing.mjs.map +1 -0
  751. package/fesm2020/expansion.mjs +644 -0
  752. package/fesm2020/expansion.mjs.map +1 -0
  753. package/fesm2020/form-field/testing/control.mjs +26 -0
  754. package/fesm2020/form-field/testing/control.mjs.map +1 -0
  755. package/fesm2020/form-field/testing.mjs +209 -0
  756. package/fesm2020/form-field/testing.mjs.map +1 -0
  757. package/fesm2020/form-field.mjs +817 -0
  758. package/fesm2020/form-field.mjs.map +1 -0
  759. package/fesm2020/grid-list/testing.mjs +162 -0
  760. package/fesm2020/grid-list/testing.mjs.map +1 -0
  761. package/fesm2020/grid-list.mjs +696 -0
  762. package/fesm2020/grid-list.mjs.map +1 -0
  763. package/fesm2020/icon/testing.mjs +169 -0
  764. package/fesm2020/icon/testing.mjs.map +1 -0
  765. package/fesm2020/icon.mjs +1010 -0
  766. package/fesm2020/icon.mjs.map +1 -0
  767. package/fesm2020/input/testing.mjs +265 -0
  768. package/fesm2020/input/testing.mjs.map +1 -0
  769. package/fesm2020/input.mjs +512 -0
  770. package/fesm2020/input.mjs.map +1 -0
  771. package/fesm2020/list/testing.mjs +464 -0
  772. package/fesm2020/list/testing.mjs.map +1 -0
  773. package/fesm2020/list.mjs +901 -0
  774. package/fesm2020/list.mjs.map +1 -0
  775. package/fesm2020/material.mjs +16 -0
  776. package/fesm2020/material.mjs.map +1 -0
  777. package/fesm2020/menu/testing.mjs +210 -0
  778. package/fesm2020/menu/testing.mjs.map +1 -0
  779. package/fesm2020/menu.mjs +1365 -0
  780. package/fesm2020/menu.mjs.map +1 -0
  781. package/fesm2020/paginator/testing.mjs +118 -0
  782. package/fesm2020/paginator/testing.mjs.map +1 -0
  783. package/fesm2020/paginator.mjs +385 -0
  784. package/fesm2020/paginator.mjs.map +1 -0
  785. package/fesm2020/progress-bar/testing.mjs +61 -0
  786. package/fesm2020/progress-bar/testing.mjs.map +1 -0
  787. package/fesm2020/progress-bar.mjs +223 -0
  788. package/fesm2020/progress-bar.mjs.map +1 -0
  789. package/fesm2020/progress-spinner/testing.mjs +62 -0
  790. package/fesm2020/progress-spinner/testing.mjs.map +1 -0
  791. package/fesm2020/progress-spinner.mjs +326 -0
  792. package/fesm2020/progress-spinner.mjs.map +1 -0
  793. package/fesm2020/radio/testing.mjs +258 -0
  794. package/fesm2020/radio/testing.mjs.map +1 -0
  795. package/fesm2020/radio.mjs +604 -0
  796. package/fesm2020/radio.mjs.map +1 -0
  797. package/fesm2020/select/testing.mjs +157 -0
  798. package/fesm2020/select/testing.mjs.map +1 -0
  799. package/fesm2020/select.mjs +1338 -0
  800. package/fesm2020/select.mjs.map +1 -0
  801. package/fesm2020/sidenav/testing.mjs +214 -0
  802. package/fesm2020/sidenav/testing.mjs.map +1 -0
  803. package/fesm2020/sidenav.mjs +1004 -0
  804. package/fesm2020/sidenav.mjs.map +1 -0
  805. package/fesm2020/slide-toggle/testing.mjs +137 -0
  806. package/fesm2020/slide-toggle/testing.mjs.map +1 -0
  807. package/fesm2020/slide-toggle.mjs +364 -0
  808. package/fesm2020/slide-toggle.mjs.map +1 -0
  809. package/fesm2020/slider/testing.mjs +133 -0
  810. package/fesm2020/slider/testing.mjs.map +1 -0
  811. package/fesm2020/slider.mjs +835 -0
  812. package/fesm2020/slider.mjs.map +1 -0
  813. package/fesm2020/snack-bar/testing.mjs +145 -0
  814. package/fesm2020/snack-bar/testing.mjs.map +1 -0
  815. package/fesm2020/snack-bar.mjs +701 -0
  816. package/fesm2020/snack-bar.mjs.map +1 -0
  817. package/fesm2020/sort/testing.mjs +109 -0
  818. package/fesm2020/sort/testing.mjs.map +1 -0
  819. package/fesm2020/sort.mjs +609 -0
  820. package/fesm2020/sort.mjs.map +1 -0
  821. package/fesm2020/stepper/testing.mjs +206 -0
  822. package/fesm2020/stepper/testing.mjs.map +1 -0
  823. package/fesm2020/stepper.mjs +589 -0
  824. package/fesm2020/stepper.mjs.map +1 -0
  825. package/fesm2020/table/testing.mjs +259 -0
  826. package/fesm2020/table/testing.mjs.map +1 -0
  827. package/fesm2020/table.mjs +814 -0
  828. package/fesm2020/table.mjs.map +1 -0
  829. package/fesm2020/tabs/testing.mjs +234 -0
  830. package/fesm2020/tabs/testing.mjs.map +1 -0
  831. package/fesm2020/tabs.mjs +1829 -0
  832. package/fesm2020/tabs.mjs.map +1 -0
  833. package/fesm2020/toolbar/testing.mjs +67 -0
  834. package/fesm2020/toolbar/testing.mjs.map +1 -0
  835. package/fesm2020/toolbar.mjs +123 -0
  836. package/fesm2020/toolbar.mjs.map +1 -0
  837. package/fesm2020/tooltip/testing.mjs +84 -0
  838. package/fesm2020/tooltip/testing.mjs.map +1 -0
  839. package/fesm2020/tooltip.mjs +815 -0
  840. package/fesm2020/tooltip.mjs.map +1 -0
  841. package/fesm2020/tree/testing.mjs +217 -0
  842. package/fesm2020/tree/testing.mjs.map +1 -0
  843. package/fesm2020/tree.mjs +514 -0
  844. package/fesm2020/tree.mjs.map +1 -0
  845. package/form-field/error.d.ts +3 -0
  846. package/form-field/form-field-control.d.ts +3 -0
  847. package/form-field/form-field-module.d.ts +14 -7
  848. package/form-field/form-field.d.ts +4 -1
  849. package/form-field/hint.d.ts +3 -0
  850. package/form-field/label.d.ts +3 -7
  851. package/form-field/package.json +5 -5
  852. package/form-field/placeholder.d.ts +3 -7
  853. package/form-field/prefix.d.ts +3 -0
  854. package/form-field/suffix.d.ts +3 -0
  855. package/form-field/testing/control/package.json +5 -5
  856. package/form-field/testing/package.json +5 -5
  857. package/grid-list/grid-list-module.d.ts +7 -7
  858. package/grid-list/grid-list.d.ts +3 -0
  859. package/grid-list/grid-tile.d.ts +11 -0
  860. package/grid-list/index.d.ts +0 -1
  861. package/grid-list/package.json +5 -5
  862. package/grid-list/testing/package.json +5 -5
  863. package/icon/icon-module.d.ts +6 -7
  864. package/icon/icon-registry.d.ts +3 -7
  865. package/icon/icon.d.ts +4 -1
  866. package/icon/package.json +5 -5
  867. package/icon/testing/fake-icon-registry.d.ts +6 -0
  868. package/icon/testing/package.json +5 -5
  869. package/input/input-module.d.ts +8 -7
  870. package/input/input.d.ts +4 -1
  871. package/input/package.json +5 -5
  872. package/input/testing/package.json +5 -5
  873. package/list/list-module.d.ts +9 -7
  874. package/list/list.d.ts +15 -2
  875. package/list/package.json +5 -5
  876. package/list/selection-list.d.ts +7 -2
  877. package/list/testing/package.json +5 -5
  878. package/menu/index.d.ts +0 -2
  879. package/menu/menu-content.d.ts +5 -7
  880. package/menu/menu-item.d.ts +4 -1
  881. package/menu/menu-module.d.ts +12 -7
  882. package/menu/menu-trigger.d.ts +5 -0
  883. package/menu/menu.d.ts +5 -0
  884. package/menu/package.json +5 -5
  885. package/menu/testing/package.json +5 -5
  886. package/package.json +612 -8
  887. package/paginator/package.json +5 -5
  888. package/paginator/paginator-intl.d.ts +3 -0
  889. package/paginator/paginator-module.d.ts +10 -7
  890. package/paginator/paginator.d.ts +6 -1
  891. package/paginator/testing/package.json +5 -5
  892. package/progress-bar/package.json +5 -5
  893. package/progress-bar/progress-bar-module.d.ts +7 -7
  894. package/progress-bar/progress-bar.d.ts +4 -1
  895. package/progress-bar/testing/package.json +5 -5
  896. package/progress-spinner/package.json +5 -5
  897. package/progress-spinner/progress-spinner-module.d.ts +7 -0
  898. package/progress-spinner/progress-spinner.d.ts +6 -1
  899. package/progress-spinner/testing/package.json +5 -5
  900. package/radio/package.json +5 -5
  901. package/radio/radio-module.d.ts +6 -7
  902. package/radio/radio.d.ts +10 -1
  903. package/radio/testing/package.json +5 -5
  904. package/schematics/ng-add/fonts/material-fonts.js +8 -17
  905. package/schematics/ng-add/fonts/material-fonts.mjs +8 -17
  906. package/schematics/ng-add/index.js +8 -8
  907. package/schematics/ng-add/index.mjs +8 -8
  908. package/schematics/ng-add/setup-project.js +23 -32
  909. package/schematics/ng-add/setup-project.mjs +23 -32
  910. package/schematics/ng-add/theming/create-custom-theme.js +2 -2
  911. package/schematics/ng-add/theming/create-custom-theme.mjs +2 -2
  912. package/schematics/ng-add/theming/theming.js +35 -46
  913. package/schematics/ng-add/theming/theming.mjs +35 -46
  914. package/schematics/ng-generate/address-form/index.js +13 -22
  915. package/schematics/ng-generate/address-form/index.mjs +13 -22
  916. package/schematics/ng-generate/dashboard/index.js +13 -22
  917. package/schematics/ng-generate/dashboard/index.mjs +13 -22
  918. package/schematics/ng-generate/navigation/index.js +13 -22
  919. package/schematics/ng-generate/navigation/index.mjs +13 -22
  920. package/schematics/ng-generate/table/index.js +10 -19
  921. package/schematics/ng-generate/table/index.mjs +10 -19
  922. package/schematics/ng-generate/tree/index.js +10 -19
  923. package/schematics/ng-generate/tree/index.mjs +10 -19
  924. package/schematics/ng-update/index.js +9 -9
  925. package/schematics/ng-update/index.mjs +9 -9
  926. package/schematics/ng-update/migrations/hammer-gestures-v9/hammer-gestures-migration.js +24 -24
  927. package/schematics/ng-update/migrations/hammer-gestures-v9/hammer-gestures-migration.mjs +24 -24
  928. package/schematics/ng-update/migrations/hammer-gestures-v9/import-manager.js +5 -5
  929. package/schematics/ng-update/migrations/hammer-gestures-v9/import-manager.mjs +5 -5
  930. package/schematics/ng-update/migrations/misc-checks/misc-class-inheritance.js +2 -2
  931. package/schematics/ng-update/migrations/misc-checks/misc-class-inheritance.mjs +2 -2
  932. package/schematics/ng-update/migrations/misc-checks/misc-imports.js +2 -2
  933. package/schematics/ng-update/migrations/misc-checks/misc-imports.mjs +2 -2
  934. package/schematics/ng-update/migrations/misc-checks/misc-template.js +4 -4
  935. package/schematics/ng-update/migrations/misc-checks/misc-template.mjs +4 -4
  936. package/schematics/ng-update/migrations/misc-ripples-v7/ripple-speed-factor-migration.js +7 -7
  937. package/schematics/ng-update/migrations/misc-ripples-v7/ripple-speed-factor-migration.mjs +7 -7
  938. package/schematics/ng-update/migrations/package-imports-v8/secondary-entry-points-migration.js +2 -3
  939. package/schematics/ng-update/migrations/package-imports-v8/secondary-entry-points-migration.mjs +2 -3
  940. package/schematics/ng-update/migrations/theming-api-v12/migration.d.ts +6 -6
  941. package/schematics/ng-update/migrations/theming-api-v12/migration.js +12 -12
  942. package/schematics/ng-update/migrations/theming-api-v12/migration.mjs +12 -12
  943. package/schematics/ng-update/migrations/theming-api-v12/theming-api-migration.js +3 -3
  944. package/schematics/ng-update/migrations/theming-api-v12/theming-api-migration.mjs +3 -3
  945. package/schematics/ng-update/typescript/module-specifiers.js +3 -3
  946. package/schematics/ng-update/typescript/module-specifiers.mjs +3 -3
  947. package/schematics/package.json +3 -0
  948. package/schematics/paths.js +3 -3
  949. package/schematics/paths.mjs +3 -3
  950. package/select/package.json +5 -5
  951. package/select/select-module.d.ts +10 -7
  952. package/select/select.d.ts +8 -1
  953. package/select/testing/package.json +5 -5
  954. package/sidenav/drawer.d.ts +7 -0
  955. package/sidenav/index.d.ts +0 -1
  956. package/sidenav/package.json +5 -5
  957. package/sidenav/sidenav-module.d.ts +10 -0
  958. package/sidenav/sidenav.d.ts +7 -0
  959. package/sidenav/testing/package.json +5 -5
  960. package/slide-toggle/package.json +5 -5
  961. package/slide-toggle/slide-toggle-module.d.ts +11 -7
  962. package/slide-toggle/slide-toggle-required-validator.d.ts +3 -0
  963. package/slide-toggle/slide-toggle.d.ts +4 -1
  964. package/slide-toggle/testing/package.json +5 -5
  965. package/slider/package.json +5 -5
  966. package/slider/slider-module.d.ts +7 -7
  967. package/slider/slider.d.ts +4 -1
  968. package/slider/testing/package.json +5 -5
  969. package/snack-bar/package.json +5 -5
  970. package/snack-bar/simple-snack-bar.d.ts +3 -7
  971. package/snack-bar/snack-bar-container.d.ts +3 -0
  972. package/snack-bar/snack-bar-module.d.ts +11 -7
  973. package/snack-bar/snack-bar.d.ts +3 -0
  974. package/snack-bar/testing/package.json +5 -5
  975. package/sort/package.json +5 -5
  976. package/sort/sort-header-intl.d.ts +3 -0
  977. package/sort/sort-header.d.ts +4 -1
  978. package/sort/sort-module.d.ts +8 -7
  979. package/sort/sort.d.ts +4 -1
  980. package/sort/testing/package.json +5 -5
  981. package/stepper/package.json +5 -5
  982. package/stepper/step-content.d.ts +3 -0
  983. package/stepper/step-header.d.ts +6 -1
  984. package/stepper/step-label.d.ts +3 -7
  985. package/stepper/stepper-button.d.ts +5 -0
  986. package/stepper/stepper-icon.d.ts +3 -0
  987. package/stepper/stepper-intl.d.ts +7 -0
  988. package/stepper/stepper-module.d.ts +16 -7
  989. package/stepper/stepper.d.ts +11 -0
  990. package/stepper/testing/package.json +5 -5
  991. package/table/cell.d.ts +15 -7
  992. package/table/package.json +5 -5
  993. package/table/row.d.ts +15 -0
  994. package/table/table-module.d.ts +10 -7
  995. package/table/table.d.ts +5 -0
  996. package/table/testing/package.json +5 -5
  997. package/table/text-column.d.ts +3 -0
  998. package/tabs/index.d.ts +0 -4
  999. package/tabs/ink-bar.d.ts +3 -0
  1000. package/tabs/package.json +5 -5
  1001. package/tabs/paginated-tab-header.d.ts +3 -0
  1002. package/tabs/tab-body.d.ts +7 -0
  1003. package/tabs/tab-content.d.ts +3 -0
  1004. package/tabs/tab-group.d.ts +6 -1
  1005. package/tabs/tab-header.d.ts +5 -0
  1006. package/tabs/tab-label-wrapper.d.ts +4 -1
  1007. package/tabs/tab-label.d.ts +3 -0
  1008. package/tabs/tab-nav-bar/tab-nav-bar.d.ts +10 -1
  1009. package/tabs/tab.d.ts +4 -1
  1010. package/tabs/tabs-module.d.ts +18 -7
  1011. package/tabs/testing/package.json +5 -5
  1012. package/toolbar/package.json +5 -5
  1013. package/toolbar/testing/package.json +5 -5
  1014. package/toolbar/toolbar-module.d.ts +6 -7
  1015. package/toolbar/toolbar.d.ts +6 -1
  1016. package/tooltip/package.json +5 -5
  1017. package/tooltip/testing/package.json +5 -5
  1018. package/tooltip/tooltip-module.d.ts +10 -7
  1019. package/tooltip/tooltip.d.ts +11 -2
  1020. package/tree/node.d.ts +8 -1
  1021. package/tree/outlet.d.ts +3 -0
  1022. package/tree/package.json +5 -5
  1023. package/tree/padding.d.ts +3 -0
  1024. package/tree/testing/package.json +5 -5
  1025. package/tree/toggle.d.ts +3 -7
  1026. package/tree/tree-module.d.ts +11 -7
  1027. package/tree/tree.d.ts +3 -0
  1028. package/autocomplete/index.metadata.json +0 -1
  1029. package/badge/index.metadata.json +0 -1
  1030. package/bottom-sheet/index.metadata.json +0 -1
  1031. package/bundles/material-autocomplete-testing.umd.js +0 -564
  1032. package/bundles/material-autocomplete-testing.umd.js.map +0 -1
  1033. package/bundles/material-autocomplete.umd.js +0 -1266
  1034. package/bundles/material-autocomplete.umd.js.map +0 -1
  1035. package/bundles/material-badge-testing.umd.js +0 -474
  1036. package/bundles/material-badge-testing.umd.js.map +0 -1
  1037. package/bundles/material-badge.umd.js +0 -604
  1038. package/bundles/material-badge.umd.js.map +0 -1
  1039. package/bundles/material-bottom-sheet-testing.umd.js +0 -396
  1040. package/bundles/material-bottom-sheet-testing.umd.js.map +0 -1
  1041. package/bundles/material-bottom-sheet.umd.js +0 -948
  1042. package/bundles/material-bottom-sheet.umd.js.map +0 -1
  1043. package/bundles/material-button-testing.umd.js +0 -444
  1044. package/bundles/material-button-testing.umd.js.map +0 -1
  1045. package/bundles/material-button-toggle-testing.umd.js +0 -628
  1046. package/bundles/material-button-toggle-testing.umd.js.map +0 -1
  1047. package/bundles/material-button-toggle.umd.js +0 -850
  1048. package/bundles/material-button-toggle.umd.js.map +0 -1
  1049. package/bundles/material-button.umd.js +0 -545
  1050. package/bundles/material-button.umd.js.map +0 -1
  1051. package/bundles/material-card-testing.umd.js +0 -408
  1052. package/bundles/material-card-testing.umd.js.map +0 -1
  1053. package/bundles/material-card.umd.js +0 -337
  1054. package/bundles/material-card.umd.js.map +0 -1
  1055. package/bundles/material-checkbox-testing.umd.js +0 -615
  1056. package/bundles/material-checkbox-testing.umd.js.map +0 -1
  1057. package/bundles/material-checkbox.umd.js +0 -829
  1058. package/bundles/material-checkbox.umd.js.map +0 -1
  1059. package/bundles/material-chips-testing.umd.js +0 -1023
  1060. package/bundles/material-chips-testing.umd.js.map +0 -1
  1061. package/bundles/material-chips.umd.js +0 -1753
  1062. package/bundles/material-chips.umd.js.map +0 -1
  1063. package/bundles/material-core-testing.umd.js +0 -518
  1064. package/bundles/material-core-testing.umd.js.map +0 -1
  1065. package/bundles/material-core.umd.js +0 -2175
  1066. package/bundles/material-core.umd.js.map +0 -1
  1067. package/bundles/material-datepicker-testing.umd.js +0 -1366
  1068. package/bundles/material-datepicker-testing.umd.js.map +0 -1
  1069. package/bundles/material-datepicker.umd.js +0 -4332
  1070. package/bundles/material-datepicker.umd.js.map +0 -1
  1071. package/bundles/material-dialog-testing.umd.js +0 -500
  1072. package/bundles/material-dialog-testing.umd.js.map +0 -1
  1073. package/bundles/material-dialog.umd.js +0 -1487
  1074. package/bundles/material-dialog.umd.js.map +0 -1
  1075. package/bundles/material-divider-testing.umd.js +0 -380
  1076. package/bundles/material-divider-testing.umd.js.map +0 -1
  1077. package/bundles/material-divider.umd.js +0 -95
  1078. package/bundles/material-divider.umd.js.map +0 -1
  1079. package/bundles/material-expansion-testing.umd.js +0 -627
  1080. package/bundles/material-expansion-testing.umd.js.map +0 -1
  1081. package/bundles/material-expansion.umd.js +0 -949
  1082. package/bundles/material-expansion.umd.js.map +0 -1
  1083. package/bundles/material-form-field-testing-control.umd.js +0 -350
  1084. package/bundles/material-form-field-testing-control.umd.js.map +0 -1
  1085. package/bundles/material-form-field-testing.umd.js +0 -708
  1086. package/bundles/material-form-field-testing.umd.js.map +0 -1
  1087. package/bundles/material-form-field.umd.js +0 -1131
  1088. package/bundles/material-form-field.umd.js.map +0 -1
  1089. package/bundles/material-grid-list-testing.umd.js +0 -566
  1090. package/bundles/material-grid-list-testing.umd.js.map +0 -1
  1091. package/bundles/material-grid-list.umd.js +0 -1070
  1092. package/bundles/material-grid-list.umd.js.map +0 -1
  1093. package/bundles/material-icon-testing.umd.js +0 -527
  1094. package/bundles/material-icon-testing.umd.js.map +0 -1
  1095. package/bundles/material-icon.umd.js +0 -1391
  1096. package/bundles/material-icon.umd.js.map +0 -1
  1097. package/bundles/material-input-testing.umd.js +0 -806
  1098. package/bundles/material-input-testing.umd.js.map +0 -1
  1099. package/bundles/material-input.umd.js +0 -817
  1100. package/bundles/material-input.umd.js.map +0 -1
  1101. package/bundles/material-list-testing.umd.js +0 -1092
  1102. package/bundles/material-list-testing.umd.js.map +0 -1
  1103. package/bundles/material-list.umd.js +0 -1284
  1104. package/bundles/material-list.umd.js.map +0 -1
  1105. package/bundles/material-menu-testing.umd.js +0 -722
  1106. package/bundles/material-menu-testing.umd.js.map +0 -1
  1107. package/bundles/material-menu.umd.js +0 -1677
  1108. package/bundles/material-menu.umd.js.map +0 -1
  1109. package/bundles/material-paginator-testing.umd.js +0 -504
  1110. package/bundles/material-paginator-testing.umd.js.map +0 -1
  1111. package/bundles/material-paginator.umd.js +0 -746
  1112. package/bundles/material-paginator.umd.js.map +0 -1
  1113. package/bundles/material-progress-bar-testing.umd.js +0 -395
  1114. package/bundles/material-progress-bar-testing.umd.js.map +0 -1
  1115. package/bundles/material-progress-bar.umd.js +0 -546
  1116. package/bundles/material-progress-bar.umd.js.map +0 -1
  1117. package/bundles/material-progress-spinner-testing.umd.js +0 -399
  1118. package/bundles/material-progress-spinner-testing.umd.js.map +0 -1
  1119. package/bundles/material-progress-spinner.umd.js +0 -631
  1120. package/bundles/material-progress-spinner.umd.js.map +0 -1
  1121. package/bundles/material-radio-testing.umd.js +0 -812
  1122. package/bundles/material-radio-testing.umd.js.map +0 -1
  1123. package/bundles/material-radio.umd.js +0 -971
  1124. package/bundles/material-radio.umd.js.map +0 -1
  1125. package/bundles/material-select-testing.umd.js +0 -620
  1126. package/bundles/material-select-testing.umd.js.map +0 -1
  1127. package/bundles/material-select.umd.js +0 -1667
  1128. package/bundles/material-select.umd.js.map +0 -1
  1129. package/bundles/material-sidenav-testing.umd.js +0 -603
  1130. package/bundles/material-sidenav-testing.umd.js.map +0 -1
  1131. package/bundles/material-sidenav.umd.js +0 -1368
  1132. package/bundles/material-sidenav.umd.js.map +0 -1
  1133. package/bundles/material-slide-toggle-testing.umd.js +0 -582
  1134. package/bundles/material-slide-toggle-testing.umd.js.map +0 -1
  1135. package/bundles/material-slide-toggle.umd.js +0 -670
  1136. package/bundles/material-slide-toggle.umd.js.map +0 -1
  1137. package/bundles/material-slider-testing.umd.js +0 -587
  1138. package/bundles/material-slider-testing.umd.js.map +0 -1
  1139. package/bundles/material-slider.umd.js +0 -1186
  1140. package/bundles/material-slider.umd.js.map +0 -1
  1141. package/bundles/material-snack-bar-testing.umd.js +0 -553
  1142. package/bundles/material-snack-bar-testing.umd.js.map +0 -1
  1143. package/bundles/material-snack-bar.umd.js +0 -1075
  1144. package/bundles/material-snack-bar.umd.js.map +0 -1
  1145. package/bundles/material-sort-testing.umd.js +0 -493
  1146. package/bundles/material-sort-testing.umd.js.map +0 -1
  1147. package/bundles/material-sort.umd.js +0 -943
  1148. package/bundles/material-sort.umd.js.map +0 -1
  1149. package/bundles/material-stepper-testing.umd.js +0 -703
  1150. package/bundles/material-stepper-testing.umd.js.map +0 -1
  1151. package/bundles/material-stepper.umd.js +0 -893
  1152. package/bundles/material-stepper.umd.js.map +0 -1
  1153. package/bundles/material-table-testing.umd.js +0 -700
  1154. package/bundles/material-table-testing.umd.js.map +0 -1
  1155. package/bundles/material-table.umd.js +0 -1121
  1156. package/bundles/material-table.umd.js.map +0 -1
  1157. package/bundles/material-tabs-testing.umd.js +0 -744
  1158. package/bundles/material-tabs-testing.umd.js.map +0 -1
  1159. package/bundles/material-tabs.umd.js +0 -2183
  1160. package/bundles/material-tabs.umd.js.map +0 -1
  1161. package/bundles/material-toolbar-testing.umd.js +0 -406
  1162. package/bundles/material-toolbar-testing.umd.js.map +0 -1
  1163. package/bundles/material-toolbar.umd.js +0 -454
  1164. package/bundles/material-toolbar.umd.js.map +0 -1
  1165. package/bundles/material-tooltip-testing.umd.js +0 -460
  1166. package/bundles/material-tooltip-testing.umd.js.map +0 -1
  1167. package/bundles/material-tooltip.umd.js +0 -1170
  1168. package/bundles/material-tooltip.umd.js.map +0 -1
  1169. package/bundles/material-tree-testing.umd.js +0 -636
  1170. package/bundles/material-tree-testing.umd.js.map +0 -1
  1171. package/bundles/material-tree.umd.js +0 -837
  1172. package/bundles/material-tree.umd.js.map +0 -1
  1173. package/bundles/material.umd.js +0 -26
  1174. package/bundles/material.umd.js.map +0 -1
  1175. package/button/index.metadata.json +0 -1
  1176. package/button-toggle/index.metadata.json +0 -1
  1177. package/card/index.metadata.json +0 -1
  1178. package/checkbox/index.metadata.json +0 -1
  1179. package/chips/index.metadata.json +0 -1
  1180. package/core/index.metadata.json +0 -1
  1181. package/datepicker/index.metadata.json +0 -1
  1182. package/dialog/index.metadata.json +0 -1
  1183. package/divider/index.metadata.json +0 -1
  1184. package/esm2015/autocomplete/autocomplete-module.js +0 -38
  1185. package/esm2015/autocomplete/autocomplete-origin.js +0 -35
  1186. package/esm2015/autocomplete/autocomplete-trigger.js +0 -627
  1187. package/esm2015/autocomplete/autocomplete.externs.js +0 -6
  1188. package/esm2015/autocomplete/autocomplete.js +0 -202
  1189. package/esm2015/autocomplete/testing/autocomplete-harness.js +0 -120
  1190. package/esm2015/autocomplete/testing/testing.externs.js +0 -0
  1191. package/esm2015/badge/badge-module.js +0 -24
  1192. package/esm2015/badge/badge.externs.js +0 -6
  1193. package/esm2015/badge/badge.js +0 -213
  1194. package/esm2015/badge/testing/badge-harness.js +0 -85
  1195. package/esm2015/badge/testing/testing.externs.js +0 -0
  1196. package/esm2015/bottom-sheet/bottom-sheet-container.js +0 -246
  1197. package/esm2015/bottom-sheet/bottom-sheet-module.js +0 -27
  1198. package/esm2015/bottom-sheet/bottom-sheet-ref.js +0 -91
  1199. package/esm2015/bottom-sheet/bottom-sheet.externs.js +0 -6
  1200. package/esm2015/bottom-sheet/bottom-sheet.js +0 -167
  1201. package/esm2015/bottom-sheet/testing/bottom-sheet-harness.js +0 -40
  1202. package/esm2015/bottom-sheet/testing/testing.externs.js +0 -0
  1203. package/esm2015/button/button-module.js +0 -30
  1204. package/esm2015/button/button.externs.js +0 -6
  1205. package/esm2015/button/button.js +0 -163
  1206. package/esm2015/button/testing/button-harness.js +0 -64
  1207. package/esm2015/button/testing/testing.externs.js +0 -0
  1208. package/esm2015/button-toggle/button-toggle-module.js +0 -20
  1209. package/esm2015/button-toggle/button-toggle.externs.js +0 -6
  1210. package/esm2015/button-toggle/button-toggle.js +0 -441
  1211. package/esm2015/button-toggle/testing/button-toggle-group-harness.js +0 -54
  1212. package/esm2015/button-toggle/testing/button-toggle-harness.js +0 -125
  1213. package/esm2015/button-toggle/testing/testing.externs.js +0 -0
  1214. package/esm2015/card/card-module.js +0 -40
  1215. package/esm2015/card/card.externs.js +0 -6
  1216. package/esm2015/card/card.js +0 -223
  1217. package/esm2015/card/testing/card-harness.js +0 -52
  1218. package/esm2015/card/testing/testing.externs.js +0 -0
  1219. package/esm2015/checkbox/checkbox-module.js +0 -34
  1220. package/esm2015/checkbox/checkbox-required-validator.js +0 -29
  1221. package/esm2015/checkbox/checkbox.externs.js +0 -6
  1222. package/esm2015/checkbox/checkbox.js +0 -385
  1223. package/esm2015/checkbox/testing/checkbox-harness.js +0 -156
  1224. package/esm2015/checkbox/testing/testing.externs.js +0 -0
  1225. package/esm2015/chips/chip-input.js +0 -180
  1226. package/esm2015/chips/chip-list.js +0 -663
  1227. package/esm2015/chips/chip.js +0 -394
  1228. package/esm2015/chips/chips-module.js +0 -43
  1229. package/esm2015/chips/chips.externs.js +0 -6
  1230. package/esm2015/chips/testing/chip-harness.js +0 -110
  1231. package/esm2015/chips/testing/chip-input-harness.js +0 -101
  1232. package/esm2015/chips/testing/chip-list-harness.js +0 -99
  1233. package/esm2015/chips/testing/chip-listbox-harness.js +0 -49
  1234. package/esm2015/chips/testing/chip-option-harness.js +0 -54
  1235. package/esm2015/chips/testing/chip-remove-harness.js +0 -29
  1236. package/esm2015/chips/testing/testing.externs.js +0 -0
  1237. package/esm2015/core/common-behaviors/common-module.js +0 -113
  1238. package/esm2015/core/common-behaviors/index.js +0 -15
  1239. package/esm2015/core/core.externs.js +0 -6
  1240. package/esm2015/core/datetime/index.js +0 -38
  1241. package/esm2015/core/datetime/native-date-adapter.js +0 -213
  1242. package/esm2015/core/error/error-options.js +0 -29
  1243. package/esm2015/core/index.js +0 -6
  1244. package/esm2015/core/line/line.js +0 -56
  1245. package/esm2015/core/option/index.js +0 -27
  1246. package/esm2015/core/option/optgroup.js +0 -84
  1247. package/esm2015/core/option/option.js +0 -274
  1248. package/esm2015/core/ripple/index.js +0 -24
  1249. package/esm2015/core/ripple/ripple-renderer.js +0 -261
  1250. package/esm2015/core/ripple/ripple.js +0 -128
  1251. package/esm2015/core/selection/index.js +0 -21
  1252. package/esm2015/core/selection/pseudo-checkbox/pseudo-checkbox.js +0 -55
  1253. package/esm2015/core/testing/optgroup-harness.js +0 -51
  1254. package/esm2015/core/testing/option-harness.js +0 -67
  1255. package/esm2015/core/testing/testing.externs.js +0 -0
  1256. package/esm2015/core/version.js +0 -11
  1257. package/esm2015/datepicker/calendar-body.js +0 -291
  1258. package/esm2015/datepicker/calendar.js +0 -330
  1259. package/esm2015/datepicker/date-range-input-parts.js +0 -315
  1260. package/esm2015/datepicker/date-range-input.js +0 -316
  1261. package/esm2015/datepicker/date-range-picker.js +0 -40
  1262. package/esm2015/datepicker/date-range-selection-strategy.js +0 -58
  1263. package/esm2015/datepicker/date-selection-model.js +0 -189
  1264. package/esm2015/datepicker/datepicker-actions.js +0 -89
  1265. package/esm2015/datepicker/datepicker-base.js +0 -529
  1266. package/esm2015/datepicker/datepicker-input-base.js +0 -290
  1267. package/esm2015/datepicker/datepicker-input.js +0 -164
  1268. package/esm2015/datepicker/datepicker-intl.js +0 -51
  1269. package/esm2015/datepicker/datepicker-module.js +0 -93
  1270. package/esm2015/datepicker/datepicker-toggle.js +0 -104
  1271. package/esm2015/datepicker/datepicker.externs.js +0 -6
  1272. package/esm2015/datepicker/datepicker.js +0 -30
  1273. package/esm2015/datepicker/index.js +0 -9
  1274. package/esm2015/datepicker/month-view.js +0 -344
  1275. package/esm2015/datepicker/multi-year-view.js +0 -280
  1276. package/esm2015/datepicker/testing/calendar-cell-harness.js +0 -181
  1277. package/esm2015/datepicker/testing/calendar-harness.js +0 -91
  1278. package/esm2015/datepicker/testing/date-range-input-harness.js +0 -116
  1279. package/esm2015/datepicker/testing/datepicker-input-harness-base.js +0 -102
  1280. package/esm2015/datepicker/testing/datepicker-input-harness.js +0 -69
  1281. package/esm2015/datepicker/testing/datepicker-toggle-harness.js +0 -48
  1282. package/esm2015/datepicker/testing/datepicker-trigger-harness-base.js +0 -77
  1283. package/esm2015/datepicker/testing/testing.externs.js +0 -0
  1284. package/esm2015/datepicker/year-view.js +0 -268
  1285. package/esm2015/dialog/dialog-container.js +0 -295
  1286. package/esm2015/dialog/dialog-content-directives.js +0 -159
  1287. package/esm2015/dialog/dialog-module.js +0 -46
  1288. package/esm2015/dialog/dialog-ref.js +0 -196
  1289. package/esm2015/dialog/dialog.externs.js +0 -6
  1290. package/esm2015/dialog/dialog.js +0 -353
  1291. package/esm2015/dialog/testing/dialog-harness.js +0 -103
  1292. package/esm2015/dialog/testing/testing.externs.js +0 -0
  1293. package/esm2015/divider/divider-module.js +0 -20
  1294. package/esm2015/divider/divider.externs.js +0 -6
  1295. package/esm2015/divider/divider.js +0 -43
  1296. package/esm2015/divider/testing/divider-harness.js +0 -27
  1297. package/esm2015/divider/testing/testing.externs.js +0 -0
  1298. package/esm2015/expansion/accordion.js +0 -83
  1299. package/esm2015/expansion/expansion-module.js +0 -42
  1300. package/esm2015/expansion/expansion-panel-content.js +0 -26
  1301. package/esm2015/expansion/expansion-panel-header.js +0 -214
  1302. package/esm2015/expansion/expansion-panel.js +0 -186
  1303. package/esm2015/expansion/expansion.externs.js +0 -6
  1304. package/esm2015/expansion/testing/accordion-harness.js +0 -36
  1305. package/esm2015/expansion/testing/expansion-harness.js +0 -149
  1306. package/esm2015/expansion/testing/testing.externs.js +0 -0
  1307. package/esm2015/form-field/error.js +0 -45
  1308. package/esm2015/form-field/form-field-control.js +0 -15
  1309. package/esm2015/form-field/form-field-module.js +0 -49
  1310. package/esm2015/form-field/form-field.externs.js +0 -6
  1311. package/esm2015/form-field/form-field.js +0 -482
  1312. package/esm2015/form-field/hint.js +0 -45
  1313. package/esm2015/form-field/label.js +0 -17
  1314. package/esm2015/form-field/placeholder.js +0 -22
  1315. package/esm2015/form-field/prefix.js +0 -24
  1316. package/esm2015/form-field/suffix.js +0 -24
  1317. package/esm2015/form-field/testing/control/control.externs.js +0 -0
  1318. package/esm2015/form-field/testing/form-field-harness.js +0 -218
  1319. package/esm2015/form-field/testing/testing.externs.js +0 -0
  1320. package/esm2015/grid-list/grid-list-module.js +0 -37
  1321. package/esm2015/grid-list/grid-list.externs.js +0 -6
  1322. package/esm2015/grid-list/grid-list.js +0 -135
  1323. package/esm2015/grid-list/grid-tile.js +0 -116
  1324. package/esm2015/grid-list/index.js +0 -6
  1325. package/esm2015/grid-list/testing/grid-list-harness.js +0 -79
  1326. package/esm2015/grid-list/testing/grid-tile-harness.js +0 -80
  1327. package/esm2015/grid-list/testing/testing.externs.js +0 -0
  1328. package/esm2015/icon/icon-module.js +0 -20
  1329. package/esm2015/icon/icon-registry.js +0 -581
  1330. package/esm2015/icon/icon.externs.js +0 -6
  1331. package/esm2015/icon/icon.js +0 -362
  1332. package/esm2015/icon/testing/fake-icon-registry.js +0 -85
  1333. package/esm2015/icon/testing/icon-harness.js +0 -63
  1334. package/esm2015/icon/testing/testing.externs.js +0 -6
  1335. package/esm2015/icon/trusted-types.js +0 -44
  1336. package/esm2015/input/input-module.js +0 -33
  1337. package/esm2015/input/input.externs.js +0 -6
  1338. package/esm2015/input/input.js +0 -395
  1339. package/esm2015/input/testing/input-harness.js +0 -138
  1340. package/esm2015/input/testing/native-option-harness.js +0 -51
  1341. package/esm2015/input/testing/native-select-harness.js +0 -100
  1342. package/esm2015/input/testing/testing.externs.js +0 -0
  1343. package/esm2015/list/list-module.js +0 -45
  1344. package/esm2015/list/list.externs.js +0 -6
  1345. package/esm2015/list/list.js +0 -218
  1346. package/esm2015/list/selection-list.js +0 -608
  1347. package/esm2015/list/testing/action-list-harness.js +0 -68
  1348. package/esm2015/list/testing/list-harness-base.js +0 -97
  1349. package/esm2015/list/testing/list-item-harness-base.js +0 -85
  1350. package/esm2015/list/testing/nav-list-harness.js +0 -75
  1351. package/esm2015/list/testing/selection-list-harness.js +0 -152
  1352. package/esm2015/list/testing/testing.externs.js +0 -0
  1353. package/esm2015/material.externs.js +0 -0
  1354. package/esm2015/menu/index.js +0 -7
  1355. package/esm2015/menu/menu-content.js +0 -97
  1356. package/esm2015/menu/menu-item.js +0 -164
  1357. package/esm2015/menu/menu-module.js +0 -39
  1358. package/esm2015/menu/menu-trigger.js +0 -505
  1359. package/esm2015/menu/menu.externs.js +0 -6
  1360. package/esm2015/menu/menu.js +0 -381
  1361. package/esm2015/menu/testing/menu-harness.js +0 -223
  1362. package/esm2015/menu/testing/testing.externs.js +0 -0
  1363. package/esm2015/paginator/paginator-intl.js +0 -62
  1364. package/esm2015/paginator/paginator-module.js +0 -32
  1365. package/esm2015/paginator/paginator.externs.js +0 -6
  1366. package/esm2015/paginator/paginator.js +0 -263
  1367. package/esm2015/paginator/testing/paginator-harness.js +0 -106
  1368. package/esm2015/paginator/testing/testing.externs.js +0 -0
  1369. package/esm2015/progress-bar/progress-bar-module.js +0 -21
  1370. package/esm2015/progress-bar/progress-bar.externs.js +0 -6
  1371. package/esm2015/progress-bar/progress-bar.js +0 -179
  1372. package/esm2015/progress-bar/testing/progress-bar-harness.js +0 -39
  1373. package/esm2015/progress-bar/testing/testing.externs.js +0 -0
  1374. package/esm2015/progress-spinner/progress-spinner-module.js +0 -28
  1375. package/esm2015/progress-spinner/progress-spinner.externs.js +0 -6
  1376. package/esm2015/progress-spinner/progress-spinner.js +0 -274
  1377. package/esm2015/progress-spinner/testing/progress-spinner-harness.js +0 -40
  1378. package/esm2015/progress-spinner/testing/testing.externs.js +0 -0
  1379. package/esm2015/radio/radio-module.js +0 -20
  1380. package/esm2015/radio/radio.externs.js +0 -6
  1381. package/esm2015/radio/radio.js +0 -546
  1382. package/esm2015/radio/testing/radio-harness.js +0 -272
  1383. package/esm2015/radio/testing/testing.externs.js +0 -0
  1384. package/esm2015/select/select-module.js +0 -37
  1385. package/esm2015/select/select.externs.js +0 -6
  1386. package/esm2015/select/select.js +0 -1140
  1387. package/esm2015/select/testing/select-harness.js +0 -157
  1388. package/esm2015/select/testing/testing.externs.js +0 -0
  1389. package/esm2015/sidenav/drawer.js +0 -766
  1390. package/esm2015/sidenav/index.js +0 -6
  1391. package/esm2015/sidenav/sidenav-module.js +0 -45
  1392. package/esm2015/sidenav/sidenav.externs.js +0 -6
  1393. package/esm2015/sidenav/sidenav.js +0 -118
  1394. package/esm2015/sidenav/testing/drawer-container-harness.js +0 -41
  1395. package/esm2015/sidenav/testing/drawer-harness.js +0 -57
  1396. package/esm2015/sidenav/testing/sidenav-container-harness.js +0 -41
  1397. package/esm2015/sidenav/testing/sidenav-harness.js +0 -32
  1398. package/esm2015/sidenav/testing/testing.externs.js +0 -0
  1399. package/esm2015/slide-toggle/slide-toggle-module.js +0 -40
  1400. package/esm2015/slide-toggle/slide-toggle-required-validator.js +0 -32
  1401. package/esm2015/slide-toggle/slide-toggle.externs.js +0 -6
  1402. package/esm2015/slide-toggle/slide-toggle.js +0 -236
  1403. package/esm2015/slide-toggle/testing/slide-toggle-harness.js +0 -139
  1404. package/esm2015/slide-toggle/testing/testing.externs.js +0 -0
  1405. package/esm2015/slider/slider-module.js +0 -21
  1406. package/esm2015/slider/slider.externs.js +0 -6
  1407. package/esm2015/slider/slider.js +0 -788
  1408. package/esm2015/slider/testing/slider-harness.js +0 -141
  1409. package/esm2015/slider/testing/testing.externs.js +0 -0
  1410. package/esm2015/snack-bar/simple-snack-bar.js +0 -45
  1411. package/esm2015/snack-bar/snack-bar-container.js +0 -224
  1412. package/esm2015/snack-bar/snack-bar-module.js +0 -32
  1413. package/esm2015/snack-bar/snack-bar-ref.js +0 -90
  1414. package/esm2015/snack-bar/snack-bar.externs.js +0 -6
  1415. package/esm2015/snack-bar/snack-bar.js +0 -264
  1416. package/esm2015/snack-bar/testing/snack-bar-harness.js +0 -141
  1417. package/esm2015/snack-bar/testing/testing.externs.js +0 -0
  1418. package/esm2015/sort/sort-header-intl.js +0 -41
  1419. package/esm2015/sort/sort-header.js +0 -268
  1420. package/esm2015/sort/sort-module.js +0 -24
  1421. package/esm2015/sort/sort.externs.js +0 -6
  1422. package/esm2015/sort/sort.js +0 -140
  1423. package/esm2015/sort/testing/sort-harness.js +0 -41
  1424. package/esm2015/sort/testing/sort-header-harness.js +0 -67
  1425. package/esm2015/sort/testing/testing.externs.js +0 -0
  1426. package/esm2015/stepper/step-content.js +0 -25
  1427. package/esm2015/stepper/step-header.js +0 -108
  1428. package/esm2015/stepper/step-label.js +0 -17
  1429. package/esm2015/stepper/stepper-button.js +0 -36
  1430. package/esm2015/stepper/stepper-icon.js +0 -28
  1431. package/esm2015/stepper/stepper-intl.js +0 -37
  1432. package/esm2015/stepper/stepper-module.js +0 -61
  1433. package/esm2015/stepper/stepper.externs.js +0 -6
  1434. package/esm2015/stepper/stepper.js +0 -187
  1435. package/esm2015/stepper/testing/step-harness.js +0 -111
  1436. package/esm2015/stepper/testing/stepper-button-harnesses.js +0 -55
  1437. package/esm2015/stepper/testing/stepper-harness.js +0 -57
  1438. package/esm2015/stepper/testing/testing.externs.js +0 -0
  1439. package/esm2015/table/cell.js +0 -114
  1440. package/esm2015/table/row.js +0 -116
  1441. package/esm2015/table/table-data-source.js +0 -312
  1442. package/esm2015/table/table-module.js +0 -50
  1443. package/esm2015/table/table.externs.js +0 -6
  1444. package/esm2015/table/table.js +0 -63
  1445. package/esm2015/table/testing/cell-harness.js +0 -77
  1446. package/esm2015/table/testing/row-harness.js +0 -91
  1447. package/esm2015/table/testing/table-harness.js +0 -99
  1448. package/esm2015/table/testing/testing.externs.js +0 -0
  1449. package/esm2015/table/text-column.js +0 -44
  1450. package/esm2015/tabs/index.js +0 -9
  1451. package/esm2015/tabs/ink-bar.js +0 -87
  1452. package/esm2015/tabs/paginated-tab-header.js +0 -477
  1453. package/esm2015/tabs/tab-body.js +0 -212
  1454. package/esm2015/tabs/tab-content.js +0 -31
  1455. package/esm2015/tabs/tab-group.js +0 -357
  1456. package/esm2015/tabs/tab-header.js +0 -94
  1457. package/esm2015/tabs/tab-label-wrapper.js +0 -47
  1458. package/esm2015/tabs/tab-label.js +0 -39
  1459. package/esm2015/tabs/tab-nav-bar/tab-nav-bar.js +0 -241
  1460. package/esm2015/tabs/tab.js +0 -107
  1461. package/esm2015/tabs/tabs-module.js +0 -60
  1462. package/esm2015/tabs/tabs.externs.js +0 -6
  1463. package/esm2015/tabs/testing/tab-group-harness.js +0 -65
  1464. package/esm2015/tabs/testing/tab-harness.js +0 -85
  1465. package/esm2015/tabs/testing/tab-link-harness.js +0 -51
  1466. package/esm2015/tabs/testing/tab-nav-bar-harness.js +0 -61
  1467. package/esm2015/tabs/testing/testing.externs.js +0 -0
  1468. package/esm2015/toolbar/testing/testing.externs.js +0 -0
  1469. package/esm2015/toolbar/testing/toolbar-harness.js +0 -47
  1470. package/esm2015/toolbar/toolbar-module.js +0 -20
  1471. package/esm2015/toolbar/toolbar.externs.js +0 -6
  1472. package/esm2015/toolbar/toolbar.js +0 -91
  1473. package/esm2015/tooltip/testing/testing.externs.js +0 -0
  1474. package/esm2015/tooltip/testing/tooltip-harness.js +0 -68
  1475. package/esm2015/tooltip/tooltip-module.js +0 -31
  1476. package/esm2015/tooltip/tooltip.externs.js +0 -6
  1477. package/esm2015/tooltip/tooltip.js +0 -737
  1478. package/esm2015/tree/node.js +0 -131
  1479. package/esm2015/tree/outlet.js +0 -33
  1480. package/esm2015/tree/padding.js +0 -31
  1481. package/esm2015/tree/testing/node-harness.js +0 -84
  1482. package/esm2015/tree/testing/testing.externs.js +0 -0
  1483. package/esm2015/tree/testing/tree-harness.js +0 -129
  1484. package/esm2015/tree/toggle.js +0 -32
  1485. package/esm2015/tree/tree-module.js +0 -34
  1486. package/esm2015/tree/tree.externs.js +0 -6
  1487. package/esm2015/tree/tree.js +0 -43
  1488. package/expansion/index.metadata.json +0 -1
  1489. package/fesm2015/autocomplete/testing.js +0 -147
  1490. package/fesm2015/autocomplete/testing.js.map +0 -1
  1491. package/fesm2015/autocomplete.js +0 -901
  1492. package/fesm2015/autocomplete.js.map +0 -1
  1493. package/fesm2015/badge/testing.js +0 -112
  1494. package/fesm2015/badge/testing.js.map +0 -1
  1495. package/fesm2015/badge.js +0 -248
  1496. package/fesm2015/badge.js.map +0 -1
  1497. package/fesm2015/bottom-sheet/testing.js +0 -67
  1498. package/fesm2015/bottom-sheet/testing.js.map +0 -1
  1499. package/fesm2015/bottom-sheet.js +0 -596
  1500. package/fesm2015/bottom-sheet.js.map +0 -1
  1501. package/fesm2015/button/testing.js +0 -91
  1502. package/fesm2015/button/testing.js.map +0 -1
  1503. package/fesm2015/button-toggle/testing.js +0 -211
  1504. package/fesm2015/button-toggle/testing.js.map +0 -1
  1505. package/fesm2015/button-toggle.js +0 -473
  1506. package/fesm2015/button-toggle.js.map +0 -1
  1507. package/fesm2015/button.js +0 -205
  1508. package/fesm2015/button.js.map +0 -1
  1509. package/fesm2015/card/testing.js +0 -79
  1510. package/fesm2015/card/testing.js.map +0 -1
  1511. package/fesm2015/card.js +0 -276
  1512. package/fesm2015/card.js.map +0 -1
  1513. package/fesm2015/checkbox/testing.js +0 -183
  1514. package/fesm2015/checkbox/testing.js.map +0 -1
  1515. package/fesm2015/checkbox.js +0 -476
  1516. package/fesm2015/checkbox.js.map +0 -1
  1517. package/fesm2015/chips/testing.js +0 -465
  1518. package/fesm2015/chips/testing.js.map +0 -1
  1519. package/fesm2015/chips.js +0 -1286
  1520. package/fesm2015/chips.js.map +0 -1
  1521. package/fesm2015/core/testing.js +0 -150
  1522. package/fesm2015/core/testing.js.map +0 -1
  1523. package/fesm2015/core.js +0 -1681
  1524. package/fesm2015/core.js.map +0 -1
  1525. package/fesm2015/datepicker/testing.js +0 -692
  1526. package/fesm2015/datepicker/testing.js.map +0 -1
  1527. package/fesm2015/datepicker.js +0 -3733
  1528. package/fesm2015/datepicker.js.map +0 -1
  1529. package/fesm2015/dialog/testing.js +0 -130
  1530. package/fesm2015/dialog/testing.js.map +0 -1
  1531. package/fesm2015/dialog.js +0 -1127
  1532. package/fesm2015/dialog.js.map +0 -1
  1533. package/fesm2015/divider/testing.js +0 -54
  1534. package/fesm2015/divider/testing.js.map +0 -1
  1535. package/fesm2015/divider.js +0 -76
  1536. package/fesm2015/divider.js.map +0 -1
  1537. package/fesm2015/expansion/testing.js +0 -209
  1538. package/fesm2015/expansion/testing.js.map +0 -1
  1539. package/fesm2015/expansion.js +0 -600
  1540. package/fesm2015/expansion.js.map +0 -1
  1541. package/fesm2015/form-field/testing/control.js +0 -26
  1542. package/fesm2015/form-field/testing/control.js.map +0 -1
  1543. package/fesm2015/form-field/testing.js +0 -246
  1544. package/fesm2015/form-field/testing.js.map +0 -1
  1545. package/fesm2015/form-field.js +0 -757
  1546. package/fesm2015/form-field.js.map +0 -1
  1547. package/fesm2015/grid-list/testing.js +0 -183
  1548. package/fesm2015/grid-list/testing.js.map +0 -1
  1549. package/fesm2015/grid-list.js +0 -680
  1550. package/fesm2015/grid-list.js.map +0 -1
  1551. package/fesm2015/icon/testing.js +0 -171
  1552. package/fesm2015/icon/testing.js.map +0 -1
  1553. package/fesm2015/icon.js +0 -1012
  1554. package/fesm2015/icon.js.map +0 -1
  1555. package/fesm2015/input/testing.js +0 -318
  1556. package/fesm2015/input/testing.js.map +0 -1
  1557. package/fesm2015/input.js +0 -463
  1558. package/fesm2015/input.js.map +0 -1
  1559. package/fesm2015/list/testing.js +0 -529
  1560. package/fesm2015/list/testing.js.map +0 -1
  1561. package/fesm2015/list.js +0 -876
  1562. package/fesm2015/list.js.map +0 -1
  1563. package/fesm2015/material.js +0 -16
  1564. package/fesm2015/material.js.map +0 -1
  1565. package/fesm2015/menu/testing.js +0 -250
  1566. package/fesm2015/menu/testing.js.map +0 -1
  1567. package/fesm2015/menu.js +0 -1299
  1568. package/fesm2015/menu.js.map +0 -1
  1569. package/fesm2015/paginator/testing.js +0 -133
  1570. package/fesm2015/paginator/testing.js.map +0 -1
  1571. package/fesm2015/paginator.js +0 -366
  1572. package/fesm2015/paginator.js.map +0 -1
  1573. package/fesm2015/progress-bar/testing.js +0 -66
  1574. package/fesm2015/progress-bar/testing.js.map +0 -1
  1575. package/fesm2015/progress-bar.js +0 -211
  1576. package/fesm2015/progress-bar.js.map +0 -1
  1577. package/fesm2015/progress-spinner/testing.js +0 -67
  1578. package/fesm2015/progress-spinner/testing.js.map +0 -1
  1579. package/fesm2015/progress-spinner.js +0 -313
  1580. package/fesm2015/progress-spinner.js.map +0 -1
  1581. package/fesm2015/radio/testing.js +0 -299
  1582. package/fesm2015/radio/testing.js.map +0 -1
  1583. package/fesm2015/radio.js +0 -578
  1584. package/fesm2015/radio.js.map +0 -1
  1585. package/fesm2015/select/testing.js +0 -184
  1586. package/fesm2015/select/testing.js.map +0 -1
  1587. package/fesm2015/select.js +0 -1271
  1588. package/fesm2015/select.js.map +0 -1
  1589. package/fesm2015/sidenav/testing.js +0 -231
  1590. package/fesm2015/sidenav/testing.js.map +0 -1
  1591. package/fesm2015/sidenav.js +0 -965
  1592. package/fesm2015/sidenav.js.map +0 -1
  1593. package/fesm2015/slide-toggle/testing.js +0 -166
  1594. package/fesm2015/slide-toggle/testing.js.map +0 -1
  1595. package/fesm2015/slide-toggle.js +0 -329
  1596. package/fesm2015/slide-toggle.js.map +0 -1
  1597. package/fesm2015/slider/testing.js +0 -160
  1598. package/fesm2015/slider/testing.js.map +0 -1
  1599. package/fesm2015/slider.js +0 -820
  1600. package/fesm2015/slider.js.map +0 -1
  1601. package/fesm2015/snack-bar/testing.js +0 -168
  1602. package/fesm2015/snack-bar/testing.js.map +0 -1
  1603. package/fesm2015/snack-bar.js +0 -712
  1604. package/fesm2015/snack-bar.js.map +0 -1
  1605. package/fesm2015/sort/testing.js +0 -124
  1606. package/fesm2015/sort/testing.js.map +0 -1
  1607. package/fesm2015/sort.js +0 -587
  1608. package/fesm2015/sort.js.map +0 -1
  1609. package/fesm2015/stepper/testing.js +0 -237
  1610. package/fesm2015/stepper/testing.js.map +0 -1
  1611. package/fesm2015/stepper.js +0 -519
  1612. package/fesm2015/stepper.js.map +0 -1
  1613. package/fesm2015/table/testing.js +0 -280
  1614. package/fesm2015/table/testing.js.map +0 -1
  1615. package/fesm2015/table.js +0 -701
  1616. package/fesm2015/table.js.map +0 -1
  1617. package/fesm2015/tabs/testing.js +0 -273
  1618. package/fesm2015/tabs/testing.js.map +0 -1
  1619. package/fesm2015/tabs.js +0 -1761
  1620. package/fesm2015/tabs.js.map +0 -1
  1621. package/fesm2015/toolbar/testing.js +0 -74
  1622. package/fesm2015/toolbar/testing.js.map +0 -1
  1623. package/fesm2015/toolbar.js +0 -123
  1624. package/fesm2015/toolbar.js.map +0 -1
  1625. package/fesm2015/tooltip/testing.js +0 -95
  1626. package/fesm2015/tooltip/testing.js.map +0 -1
  1627. package/fesm2015/tooltip.js +0 -802
  1628. package/fesm2015/tooltip.js.map +0 -1
  1629. package/fesm2015/tree/testing.js +0 -237
  1630. package/fesm2015/tree/testing.js.map +0 -1
  1631. package/fesm2015/tree.js +0 -479
  1632. package/fesm2015/tree.js.map +0 -1
  1633. package/form-field/index.metadata.json +0 -1
  1634. package/grid-list/index.metadata.json +0 -1
  1635. package/icon/index.metadata.json +0 -1
  1636. package/icon/testing/index.metadata.json +0 -1
  1637. package/input/index.metadata.json +0 -1
  1638. package/list/index.metadata.json +0 -1
  1639. package/menu/index.metadata.json +0 -1
  1640. package/paginator/index.metadata.json +0 -1
  1641. package/progress-bar/index.metadata.json +0 -1
  1642. package/progress-spinner/index.metadata.json +0 -1
  1643. package/radio/index.metadata.json +0 -1
  1644. package/select/index.metadata.json +0 -1
  1645. package/sidenav/index.metadata.json +0 -1
  1646. package/slide-toggle/index.metadata.json +0 -1
  1647. package/slider/index.metadata.json +0 -1
  1648. package/snack-bar/index.metadata.json +0 -1
  1649. package/sort/index.metadata.json +0 -1
  1650. package/stepper/index.metadata.json +0 -1
  1651. package/table/index.metadata.json +0 -1
  1652. package/tabs/index.metadata.json +0 -1
  1653. package/toolbar/index.metadata.json +0 -1
  1654. package/tooltip/index.metadata.json +0 -1
  1655. package/tree/index.metadata.json +0 -1
@@ -0,0 +1,382 @@
1
+ /**
2
+ * @license
3
+ * Copyright Google LLC All Rights Reserved.
4
+ *
5
+ * Use of this source code is governed by an MIT-style license that can be
6
+ * found in the LICENSE file at https://angular.io/license
7
+ */
8
+ import { coerceBooleanProperty, coerceNumberProperty } from '@angular/cdk/coercion';
9
+ import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ContentChildren, Directive, ElementRef, EventEmitter, Inject, Input, Optional, Output, QueryList, ViewChild, ViewEncapsulation, } from '@angular/core';
10
+ import { mixinColor, mixinDisableRipple, } from '@angular/material/core';
11
+ import { ANIMATION_MODULE_TYPE } from '@angular/platform-browser/animations';
12
+ import { merge, Subscription } from 'rxjs';
13
+ import { startWith } from 'rxjs/operators';
14
+ import { MAT_TAB_GROUP, MatTab } from './tab';
15
+ import { MAT_TABS_CONFIG } from './tab-config';
16
+ import * as i0 from "@angular/core";
17
+ import * as i1 from "./tab-header";
18
+ import * as i2 from "./tab-body";
19
+ import * as i3 from "@angular/common";
20
+ import * as i4 from "./tab-label-wrapper";
21
+ import * as i5 from "@angular/material/core";
22
+ import * as i6 from "@angular/cdk/a11y";
23
+ import * as i7 from "@angular/cdk/portal";
24
+ /** Used to generate unique ID's for each tab component */
25
+ let nextId = 0;
26
+ /** A simple change event emitted on focus or selection changes. */
27
+ export class MatTabChangeEvent {
28
+ }
29
+ // Boilerplate for applying mixins to MatTabGroup.
30
+ /** @docs-private */
31
+ const _MatTabGroupMixinBase = mixinColor(mixinDisableRipple(class {
32
+ constructor(_elementRef) {
33
+ this._elementRef = _elementRef;
34
+ }
35
+ }), 'primary');
36
+ /**
37
+ * Base class with all of the `MatTabGroupBase` functionality.
38
+ * @docs-private
39
+ */
40
+ export class _MatTabGroupBase extends _MatTabGroupMixinBase {
41
+ constructor(elementRef, _changeDetectorRef, defaultConfig, _animationMode) {
42
+ super(elementRef);
43
+ this._changeDetectorRef = _changeDetectorRef;
44
+ this._animationMode = _animationMode;
45
+ /** All of the tabs that belong to the group. */
46
+ this._tabs = new QueryList();
47
+ /** The tab index that should be selected after the content has been checked. */
48
+ this._indexToSelect = 0;
49
+ /** Snapshot of the height of the tab body wrapper before another tab is activated. */
50
+ this._tabBodyWrapperHeight = 0;
51
+ /** Subscription to tabs being added/removed. */
52
+ this._tabsSubscription = Subscription.EMPTY;
53
+ /** Subscription to changes in the tab labels. */
54
+ this._tabLabelSubscription = Subscription.EMPTY;
55
+ this._selectedIndex = null;
56
+ /** Position of the tab header. */
57
+ this.headerPosition = 'above';
58
+ /** Output to enable support for two-way binding on `[(selectedIndex)]` */
59
+ this.selectedIndexChange = new EventEmitter();
60
+ /** Event emitted when focus has changed within a tab group. */
61
+ this.focusChange = new EventEmitter();
62
+ /** Event emitted when the body animation has completed */
63
+ this.animationDone = new EventEmitter();
64
+ /** Event emitted when the tab selection has changed. */
65
+ this.selectedTabChange = new EventEmitter(true);
66
+ this._groupId = nextId++;
67
+ this.animationDuration = defaultConfig && defaultConfig.animationDuration ?
68
+ defaultConfig.animationDuration : '500ms';
69
+ this.disablePagination = defaultConfig && defaultConfig.disablePagination != null ?
70
+ defaultConfig.disablePagination : false;
71
+ this.dynamicHeight = defaultConfig && defaultConfig.dynamicHeight != null ?
72
+ defaultConfig.dynamicHeight : false;
73
+ this.contentTabIndex = defaultConfig?.contentTabIndex ?? null;
74
+ }
75
+ /** Whether the tab group should grow to the size of the active tab. */
76
+ get dynamicHeight() { return this._dynamicHeight; }
77
+ set dynamicHeight(value) { this._dynamicHeight = coerceBooleanProperty(value); }
78
+ /** The index of the active tab. */
79
+ get selectedIndex() { return this._selectedIndex; }
80
+ set selectedIndex(value) {
81
+ this._indexToSelect = coerceNumberProperty(value, null);
82
+ }
83
+ /** Duration for the tab animation. Will be normalized to milliseconds if no units are set. */
84
+ get animationDuration() { return this._animationDuration; }
85
+ set animationDuration(value) {
86
+ this._animationDuration = /^\d+$/.test(value) ? value + 'ms' : value;
87
+ }
88
+ /**
89
+ * `tabindex` to be set on the inner element that wraps the tab content. Can be used for improved
90
+ * accessibility when the tab does not have focusable elements or if it has scrollable content.
91
+ * The `tabindex` will be removed automatically for inactive tabs.
92
+ * Read more at https://www.w3.org/TR/wai-aria-practices/examples/tabs/tabs-2/tabs.html
93
+ */
94
+ get contentTabIndex() { return this._contentTabIndex; }
95
+ set contentTabIndex(value) {
96
+ this._contentTabIndex = coerceNumberProperty(value, null);
97
+ }
98
+ /** Background color of the tab group. */
99
+ get backgroundColor() { return this._backgroundColor; }
100
+ set backgroundColor(value) {
101
+ const nativeElement = this._elementRef.nativeElement;
102
+ nativeElement.classList.remove(`mat-background-${this.backgroundColor}`);
103
+ if (value) {
104
+ nativeElement.classList.add(`mat-background-${value}`);
105
+ }
106
+ this._backgroundColor = value;
107
+ }
108
+ /**
109
+ * After the content is checked, this component knows what tabs have been defined
110
+ * and what the selected index should be. This is where we can know exactly what position
111
+ * each tab should be in according to the new selected index, and additionally we know how
112
+ * a new selected tab should transition in (from the left or right).
113
+ */
114
+ ngAfterContentChecked() {
115
+ // Don't clamp the `indexToSelect` immediately in the setter because it can happen that
116
+ // the amount of tabs changes before the actual change detection runs.
117
+ const indexToSelect = this._indexToSelect = this._clampTabIndex(this._indexToSelect);
118
+ // If there is a change in selected index, emit a change event. Should not trigger if
119
+ // the selected index has not yet been initialized.
120
+ if (this._selectedIndex != indexToSelect) {
121
+ const isFirstRun = this._selectedIndex == null;
122
+ if (!isFirstRun) {
123
+ this.selectedTabChange.emit(this._createChangeEvent(indexToSelect));
124
+ // Preserve the height so page doesn't scroll up during tab change.
125
+ // Fixes https://stackblitz.com/edit/mat-tabs-scroll-page-top-on-tab-change
126
+ const wrapper = this._tabBodyWrapper.nativeElement;
127
+ wrapper.style.minHeight = wrapper.clientHeight + 'px';
128
+ }
129
+ // Changing these values after change detection has run
130
+ // since the checked content may contain references to them.
131
+ Promise.resolve().then(() => {
132
+ this._tabs.forEach((tab, index) => tab.isActive = index === indexToSelect);
133
+ if (!isFirstRun) {
134
+ this.selectedIndexChange.emit(indexToSelect);
135
+ // Clear the min-height, this was needed during tab change to avoid
136
+ // unnecessary scrolling.
137
+ this._tabBodyWrapper.nativeElement.style.minHeight = '';
138
+ }
139
+ });
140
+ }
141
+ // Setup the position for each tab and optionally setup an origin on the next selected tab.
142
+ this._tabs.forEach((tab, index) => {
143
+ tab.position = index - indexToSelect;
144
+ // If there is already a selected tab, then set up an origin for the next selected tab
145
+ // if it doesn't have one already.
146
+ if (this._selectedIndex != null && tab.position == 0 && !tab.origin) {
147
+ tab.origin = indexToSelect - this._selectedIndex;
148
+ }
149
+ });
150
+ if (this._selectedIndex !== indexToSelect) {
151
+ this._selectedIndex = indexToSelect;
152
+ this._changeDetectorRef.markForCheck();
153
+ }
154
+ }
155
+ ngAfterContentInit() {
156
+ this._subscribeToAllTabChanges();
157
+ this._subscribeToTabLabels();
158
+ // Subscribe to changes in the amount of tabs, in order to be
159
+ // able to re-render the content as new tabs are added or removed.
160
+ this._tabsSubscription = this._tabs.changes.subscribe(() => {
161
+ const indexToSelect = this._clampTabIndex(this._indexToSelect);
162
+ // Maintain the previously-selected tab if a new tab is added or removed and there is no
163
+ // explicit change that selects a different tab.
164
+ if (indexToSelect === this._selectedIndex) {
165
+ const tabs = this._tabs.toArray();
166
+ for (let i = 0; i < tabs.length; i++) {
167
+ if (tabs[i].isActive) {
168
+ // Assign both to the `_indexToSelect` and `_selectedIndex` so we don't fire a changed
169
+ // event, otherwise the consumer may end up in an infinite loop in some edge cases like
170
+ // adding a tab within the `selectedIndexChange` event.
171
+ this._indexToSelect = this._selectedIndex = i;
172
+ break;
173
+ }
174
+ }
175
+ }
176
+ this._changeDetectorRef.markForCheck();
177
+ });
178
+ }
179
+ /** Listens to changes in all of the tabs. */
180
+ _subscribeToAllTabChanges() {
181
+ // Since we use a query with `descendants: true` to pick up the tabs, we may end up catching
182
+ // some that are inside of nested tab groups. We filter them out manually by checking that
183
+ // the closest group to the tab is the current one.
184
+ this._allTabs.changes
185
+ .pipe(startWith(this._allTabs))
186
+ .subscribe((tabs) => {
187
+ this._tabs.reset(tabs.filter(tab => {
188
+ return tab._closestTabGroup === this || !tab._closestTabGroup;
189
+ }));
190
+ this._tabs.notifyOnChanges();
191
+ });
192
+ }
193
+ ngOnDestroy() {
194
+ this._tabs.destroy();
195
+ this._tabsSubscription.unsubscribe();
196
+ this._tabLabelSubscription.unsubscribe();
197
+ }
198
+ /** Re-aligns the ink bar to the selected tab element. */
199
+ realignInkBar() {
200
+ if (this._tabHeader) {
201
+ this._tabHeader._alignInkBarToSelectedTab();
202
+ }
203
+ }
204
+ /**
205
+ * Sets focus to a particular tab.
206
+ * @param index Index of the tab to be focused.
207
+ */
208
+ focusTab(index) {
209
+ const header = this._tabHeader;
210
+ if (header) {
211
+ header.focusIndex = index;
212
+ }
213
+ }
214
+ _focusChanged(index) {
215
+ this.focusChange.emit(this._createChangeEvent(index));
216
+ }
217
+ _createChangeEvent(index) {
218
+ const event = new MatTabChangeEvent;
219
+ event.index = index;
220
+ if (this._tabs && this._tabs.length) {
221
+ event.tab = this._tabs.toArray()[index];
222
+ }
223
+ return event;
224
+ }
225
+ /**
226
+ * Subscribes to changes in the tab labels. This is needed, because the @Input for the label is
227
+ * on the MatTab component, whereas the data binding is inside the MatTabGroup. In order for the
228
+ * binding to be updated, we need to subscribe to changes in it and trigger change detection
229
+ * manually.
230
+ */
231
+ _subscribeToTabLabels() {
232
+ if (this._tabLabelSubscription) {
233
+ this._tabLabelSubscription.unsubscribe();
234
+ }
235
+ this._tabLabelSubscription = merge(...this._tabs.map(tab => tab._stateChanges))
236
+ .subscribe(() => this._changeDetectorRef.markForCheck());
237
+ }
238
+ /** Clamps the given index to the bounds of 0 and the tabs length. */
239
+ _clampTabIndex(index) {
240
+ // Note the `|| 0`, which ensures that values like NaN can't get through
241
+ // and which would otherwise throw the component into an infinite loop
242
+ // (since Math.max(NaN, 0) === NaN).
243
+ return Math.min(this._tabs.length - 1, Math.max(index || 0, 0));
244
+ }
245
+ /** Returns a unique id for each tab label element */
246
+ _getTabLabelId(i) {
247
+ return `mat-tab-label-${this._groupId}-${i}`;
248
+ }
249
+ /** Returns a unique id for each tab content element */
250
+ _getTabContentId(i) {
251
+ return `mat-tab-content-${this._groupId}-${i}`;
252
+ }
253
+ /**
254
+ * Sets the height of the body wrapper to the height of the activating tab if dynamic
255
+ * height property is true.
256
+ */
257
+ _setTabBodyWrapperHeight(tabHeight) {
258
+ if (!this._dynamicHeight || !this._tabBodyWrapperHeight) {
259
+ return;
260
+ }
261
+ const wrapper = this._tabBodyWrapper.nativeElement;
262
+ wrapper.style.height = this._tabBodyWrapperHeight + 'px';
263
+ // This conditional forces the browser to paint the height so that
264
+ // the animation to the new height can have an origin.
265
+ if (this._tabBodyWrapper.nativeElement.offsetHeight) {
266
+ wrapper.style.height = tabHeight + 'px';
267
+ }
268
+ }
269
+ /** Removes the height of the tab body wrapper. */
270
+ _removeTabBodyWrapperHeight() {
271
+ const wrapper = this._tabBodyWrapper.nativeElement;
272
+ this._tabBodyWrapperHeight = wrapper.clientHeight;
273
+ wrapper.style.height = '';
274
+ this.animationDone.emit();
275
+ }
276
+ /** Handle click events, setting new selected index if appropriate. */
277
+ _handleClick(tab, tabHeader, index) {
278
+ if (!tab.disabled) {
279
+ this.selectedIndex = tabHeader.focusIndex = index;
280
+ }
281
+ }
282
+ /** Retrieves the tabindex for the tab. */
283
+ _getTabIndex(tab, idx) {
284
+ if (tab.disabled) {
285
+ return null;
286
+ }
287
+ return this.selectedIndex === idx ? 0 : -1;
288
+ }
289
+ /** Callback for when the focused state of a tab has changed. */
290
+ _tabFocusChanged(focusOrigin, index) {
291
+ // Mouse/touch focus happens during the `mousedown`/`touchstart` phase which
292
+ // can cause the tab to be moved out from under the pointer, interrupting the
293
+ // click sequence (see #21898). We don't need to scroll the tab into view for
294
+ // such cases anyway, because it will be done when the tab becomes selected.
295
+ if (focusOrigin && focusOrigin !== 'mouse' && focusOrigin !== 'touch') {
296
+ this._tabHeader.focusIndex = index;
297
+ }
298
+ }
299
+ }
300
+ _MatTabGroupBase.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.0-next.15", ngImport: i0, type: _MatTabGroupBase, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: MAT_TABS_CONFIG, optional: true }, { token: ANIMATION_MODULE_TYPE, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
301
+ _MatTabGroupBase.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.0-next.15", type: _MatTabGroupBase, inputs: { dynamicHeight: "dynamicHeight", selectedIndex: "selectedIndex", headerPosition: "headerPosition", animationDuration: "animationDuration", contentTabIndex: "contentTabIndex", disablePagination: "disablePagination", backgroundColor: "backgroundColor" }, outputs: { selectedIndexChange: "selectedIndexChange", focusChange: "focusChange", animationDone: "animationDone", selectedTabChange: "selectedTabChange" }, usesInheritance: true, ngImport: i0 });
302
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0-next.15", ngImport: i0, type: _MatTabGroupBase, decorators: [{
303
+ type: Directive
304
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: undefined, decorators: [{
305
+ type: Inject,
306
+ args: [MAT_TABS_CONFIG]
307
+ }, {
308
+ type: Optional
309
+ }] }, { type: undefined, decorators: [{
310
+ type: Optional
311
+ }, {
312
+ type: Inject,
313
+ args: [ANIMATION_MODULE_TYPE]
314
+ }] }]; }, propDecorators: { dynamicHeight: [{
315
+ type: Input
316
+ }], selectedIndex: [{
317
+ type: Input
318
+ }], headerPosition: [{
319
+ type: Input
320
+ }], animationDuration: [{
321
+ type: Input
322
+ }], contentTabIndex: [{
323
+ type: Input
324
+ }], disablePagination: [{
325
+ type: Input
326
+ }], backgroundColor: [{
327
+ type: Input
328
+ }], selectedIndexChange: [{
329
+ type: Output
330
+ }], focusChange: [{
331
+ type: Output
332
+ }], animationDone: [{
333
+ type: Output
334
+ }], selectedTabChange: [{
335
+ type: Output
336
+ }] } });
337
+ /**
338
+ * Material design tab-group component. Supports basic tab pairs (label + content) and includes
339
+ * animated ink-bar, keyboard navigation, and screen reader.
340
+ * See: https://material.io/design/components/tabs.html
341
+ */
342
+ export class MatTabGroup extends _MatTabGroupBase {
343
+ constructor(elementRef, changeDetectorRef, defaultConfig, animationMode) {
344
+ super(elementRef, changeDetectorRef, defaultConfig, animationMode);
345
+ }
346
+ }
347
+ MatTabGroup.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.0-next.15", ngImport: i0, type: MatTabGroup, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: MAT_TABS_CONFIG, optional: true }, { token: ANIMATION_MODULE_TYPE, optional: true }], target: i0.ɵɵFactoryTarget.Component });
348
+ MatTabGroup.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.0-next.15", type: MatTabGroup, selector: "mat-tab-group", inputs: { color: "color", disableRipple: "disableRipple" }, host: { properties: { "class.mat-tab-group-dynamic-height": "dynamicHeight", "class.mat-tab-group-inverted-header": "headerPosition === \"below\"" }, classAttribute: "mat-tab-group" }, providers: [{
349
+ provide: MAT_TAB_GROUP,
350
+ useExisting: MatTabGroup
351
+ }], queries: [{ propertyName: "_allTabs", predicate: MatTab, descendants: true }], viewQueries: [{ propertyName: "_tabBodyWrapper", first: true, predicate: ["tabBodyWrapper"], descendants: true }, { propertyName: "_tabHeader", first: true, predicate: ["tabHeader"], descendants: true }], exportAs: ["matTabGroup"], usesInheritance: true, ngImport: i0, template: "<mat-tab-header #tabHeader\n [selectedIndex]=\"selectedIndex || 0\"\n [disableRipple]=\"disableRipple\"\n [disablePagination]=\"disablePagination\"\n (indexFocused)=\"_focusChanged($event)\"\n (selectFocusedIndex)=\"selectedIndex = $event\">\n <div class=\"mat-tab-label mat-focus-indicator\" role=\"tab\" matTabLabelWrapper mat-ripple cdkMonitorElementFocus\n *ngFor=\"let tab of _tabs; let i = index\"\n [id]=\"_getTabLabelId(i)\"\n [attr.tabIndex]=\"_getTabIndex(tab, i)\"\n [attr.aria-posinset]=\"i + 1\"\n [attr.aria-setsize]=\"_tabs.length\"\n [attr.aria-controls]=\"_getTabContentId(i)\"\n [attr.aria-selected]=\"selectedIndex == i\"\n [attr.aria-label]=\"tab.ariaLabel || null\"\n [attr.aria-labelledby]=\"(!tab.ariaLabel && tab.ariaLabelledby) ? tab.ariaLabelledby : null\"\n [class.mat-tab-label-active]=\"selectedIndex == i\"\n [disabled]=\"tab.disabled\"\n [matRippleDisabled]=\"tab.disabled || disableRipple\"\n (click)=\"_handleClick(tab, tabHeader, i)\"\n (cdkFocusChange)=\"_tabFocusChanged($event, i)\">\n\n\n <div class=\"mat-tab-label-content\">\n <!-- If there is a label template, use it. -->\n <ng-template [ngIf]=\"tab.templateLabel\">\n <ng-template [cdkPortalOutlet]=\"tab.templateLabel\"></ng-template>\n </ng-template>\n\n <!-- If there is not a label template, fall back to the text label. -->\n <ng-template [ngIf]=\"!tab.templateLabel\">{{tab.textLabel}}</ng-template>\n </div>\n </div>\n</mat-tab-header>\n\n<div\n class=\"mat-tab-body-wrapper\"\n [class._mat-animation-noopable]=\"_animationMode === 'NoopAnimations'\"\n #tabBodyWrapper>\n <mat-tab-body role=\"tabpanel\"\n *ngFor=\"let tab of _tabs; let i = index\"\n [id]=\"_getTabContentId(i)\"\n [attr.tabindex]=\"(contentTabIndex != null && selectedIndex === i) ? contentTabIndex : null\"\n [attr.aria-labelledby]=\"_getTabLabelId(i)\"\n [class.mat-tab-body-active]=\"selectedIndex === i\"\n [content]=\"tab.content!\"\n [position]=\"tab.position!\"\n [origin]=\"tab.origin\"\n [animationDuration]=\"animationDuration\"\n (_onCentered)=\"_removeTabBodyWrapperHeight()\"\n (_onCentering)=\"_setTabBodyWrapperHeight($event)\">\n </mat-tab-body>\n</div>\n", styles: [".mat-tab-group{display:flex;flex-direction:column;max-width:100%}.mat-tab-group.mat-tab-group-inverted-header{flex-direction:column-reverse}.mat-tab-label{height:48px;padding:0 24px;cursor:pointer;box-sizing:border-box;opacity:.6;min-width:160px;text-align:center;display:inline-flex;justify-content:center;align-items:center;white-space:nowrap;position:relative}.mat-tab-label:focus{outline:none}.mat-tab-label:focus:not(.mat-tab-disabled){opacity:1}.cdk-high-contrast-active .mat-tab-label:focus{outline:dotted 2px;outline-offset:-2px}.mat-tab-label.mat-tab-disabled{cursor:default}.cdk-high-contrast-active .mat-tab-label.mat-tab-disabled{opacity:.5}.mat-tab-label .mat-tab-label-content{display:inline-flex;justify-content:center;align-items:center;white-space:nowrap}.cdk-high-contrast-active .mat-tab-label{opacity:1}@media(max-width: 599px){.mat-tab-label{padding:0 12px}}@media(max-width: 959px){.mat-tab-label{padding:0 12px}}.mat-tab-group[mat-stretch-tabs]>.mat-tab-header .mat-tab-label{flex-basis:0;flex-grow:1}.mat-tab-body-wrapper{position:relative;overflow:hidden;display:flex;transition:height 500ms cubic-bezier(0.35, 0, 0.25, 1)}._mat-animation-noopable.mat-tab-body-wrapper{transition:none;animation:none}.mat-tab-body{top:0;left:0;right:0;bottom:0;position:absolute;display:block;overflow:hidden;outline:0;flex-basis:100%}.mat-tab-body.mat-tab-body-active{position:relative;overflow-x:hidden;overflow-y:auto;z-index:1;flex-grow:1}.mat-tab-group.mat-tab-group-dynamic-height .mat-tab-body.mat-tab-body-active{overflow-y:hidden}\n"], components: [{ type: i1.MatTabHeader, selector: "mat-tab-header", inputs: ["selectedIndex"], outputs: ["selectFocusedIndex", "indexFocused"] }, { type: i2.MatTabBody, selector: "mat-tab-body" }], directives: [{ type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i4.MatTabLabelWrapper, selector: "[matTabLabelWrapper]", inputs: ["disabled"] }, { type: i5.MatRipple, selector: "[mat-ripple], [matRipple]", inputs: ["matRippleColor", "matRippleUnbounded", "matRippleCentered", "matRippleRadius", "matRippleAnimation", "matRippleDisabled", "matRippleTrigger"], exportAs: ["matRipple"] }, { type: i6.CdkMonitorFocus, selector: "[cdkMonitorElementFocus], [cdkMonitorSubtreeFocus]", outputs: ["cdkFocusChange"] }, { type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i7.CdkPortalOutlet, selector: "[cdkPortalOutlet]", inputs: ["cdkPortalOutlet"], outputs: ["attached"], exportAs: ["cdkPortalOutlet"] }], changeDetection: i0.ChangeDetectionStrategy.Default, encapsulation: i0.ViewEncapsulation.None });
352
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0-next.15", ngImport: i0, type: MatTabGroup, decorators: [{
353
+ type: Component,
354
+ args: [{ selector: 'mat-tab-group', exportAs: 'matTabGroup', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.Default, inputs: ['color', 'disableRipple'], providers: [{
355
+ provide: MAT_TAB_GROUP,
356
+ useExisting: MatTabGroup
357
+ }], host: {
358
+ 'class': 'mat-tab-group',
359
+ '[class.mat-tab-group-dynamic-height]': 'dynamicHeight',
360
+ '[class.mat-tab-group-inverted-header]': 'headerPosition === "below"',
361
+ }, template: "<mat-tab-header #tabHeader\n [selectedIndex]=\"selectedIndex || 0\"\n [disableRipple]=\"disableRipple\"\n [disablePagination]=\"disablePagination\"\n (indexFocused)=\"_focusChanged($event)\"\n (selectFocusedIndex)=\"selectedIndex = $event\">\n <div class=\"mat-tab-label mat-focus-indicator\" role=\"tab\" matTabLabelWrapper mat-ripple cdkMonitorElementFocus\n *ngFor=\"let tab of _tabs; let i = index\"\n [id]=\"_getTabLabelId(i)\"\n [attr.tabIndex]=\"_getTabIndex(tab, i)\"\n [attr.aria-posinset]=\"i + 1\"\n [attr.aria-setsize]=\"_tabs.length\"\n [attr.aria-controls]=\"_getTabContentId(i)\"\n [attr.aria-selected]=\"selectedIndex == i\"\n [attr.aria-label]=\"tab.ariaLabel || null\"\n [attr.aria-labelledby]=\"(!tab.ariaLabel && tab.ariaLabelledby) ? tab.ariaLabelledby : null\"\n [class.mat-tab-label-active]=\"selectedIndex == i\"\n [disabled]=\"tab.disabled\"\n [matRippleDisabled]=\"tab.disabled || disableRipple\"\n (click)=\"_handleClick(tab, tabHeader, i)\"\n (cdkFocusChange)=\"_tabFocusChanged($event, i)\">\n\n\n <div class=\"mat-tab-label-content\">\n <!-- If there is a label template, use it. -->\n <ng-template [ngIf]=\"tab.templateLabel\">\n <ng-template [cdkPortalOutlet]=\"tab.templateLabel\"></ng-template>\n </ng-template>\n\n <!-- If there is not a label template, fall back to the text label. -->\n <ng-template [ngIf]=\"!tab.templateLabel\">{{tab.textLabel}}</ng-template>\n </div>\n </div>\n</mat-tab-header>\n\n<div\n class=\"mat-tab-body-wrapper\"\n [class._mat-animation-noopable]=\"_animationMode === 'NoopAnimations'\"\n #tabBodyWrapper>\n <mat-tab-body role=\"tabpanel\"\n *ngFor=\"let tab of _tabs; let i = index\"\n [id]=\"_getTabContentId(i)\"\n [attr.tabindex]=\"(contentTabIndex != null && selectedIndex === i) ? contentTabIndex : null\"\n [attr.aria-labelledby]=\"_getTabLabelId(i)\"\n [class.mat-tab-body-active]=\"selectedIndex === i\"\n [content]=\"tab.content!\"\n [position]=\"tab.position!\"\n [origin]=\"tab.origin\"\n [animationDuration]=\"animationDuration\"\n (_onCentered)=\"_removeTabBodyWrapperHeight()\"\n (_onCentering)=\"_setTabBodyWrapperHeight($event)\">\n </mat-tab-body>\n</div>\n", styles: [".mat-tab-group{display:flex;flex-direction:column;max-width:100%}.mat-tab-group.mat-tab-group-inverted-header{flex-direction:column-reverse}.mat-tab-label{height:48px;padding:0 24px;cursor:pointer;box-sizing:border-box;opacity:.6;min-width:160px;text-align:center;display:inline-flex;justify-content:center;align-items:center;white-space:nowrap;position:relative}.mat-tab-label:focus{outline:none}.mat-tab-label:focus:not(.mat-tab-disabled){opacity:1}.cdk-high-contrast-active .mat-tab-label:focus{outline:dotted 2px;outline-offset:-2px}.mat-tab-label.mat-tab-disabled{cursor:default}.cdk-high-contrast-active .mat-tab-label.mat-tab-disabled{opacity:.5}.mat-tab-label .mat-tab-label-content{display:inline-flex;justify-content:center;align-items:center;white-space:nowrap}.cdk-high-contrast-active .mat-tab-label{opacity:1}@media(max-width: 599px){.mat-tab-label{padding:0 12px}}@media(max-width: 959px){.mat-tab-label{padding:0 12px}}.mat-tab-group[mat-stretch-tabs]>.mat-tab-header .mat-tab-label{flex-basis:0;flex-grow:1}.mat-tab-body-wrapper{position:relative;overflow:hidden;display:flex;transition:height 500ms cubic-bezier(0.35, 0, 0.25, 1)}._mat-animation-noopable.mat-tab-body-wrapper{transition:none;animation:none}.mat-tab-body{top:0;left:0;right:0;bottom:0;position:absolute;display:block;overflow:hidden;outline:0;flex-basis:100%}.mat-tab-body.mat-tab-body-active{position:relative;overflow-x:hidden;overflow-y:auto;z-index:1;flex-grow:1}.mat-tab-group.mat-tab-group-dynamic-height .mat-tab-body.mat-tab-body-active{overflow-y:hidden}\n"] }]
362
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: undefined, decorators: [{
363
+ type: Inject,
364
+ args: [MAT_TABS_CONFIG]
365
+ }, {
366
+ type: Optional
367
+ }] }, { type: undefined, decorators: [{
368
+ type: Optional
369
+ }, {
370
+ type: Inject,
371
+ args: [ANIMATION_MODULE_TYPE]
372
+ }] }]; }, propDecorators: { _allTabs: [{
373
+ type: ContentChildren,
374
+ args: [MatTab, { descendants: true }]
375
+ }], _tabBodyWrapper: [{
376
+ type: ViewChild,
377
+ args: ['tabBodyWrapper']
378
+ }], _tabHeader: [{
379
+ type: ViewChild,
380
+ args: ['tabHeader']
381
+ }] } });
382
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFiLWdyb3VwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL21hdGVyaWFsL3RhYnMvdGFiLWdyb3VwLnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL21hdGVyaWFsL3RhYnMvdGFiLWdyb3VwLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HO0FBRUgsT0FBTyxFQUVMLHFCQUFxQixFQUNyQixvQkFBb0IsRUFFckIsTUFBTSx1QkFBdUIsQ0FBQztBQUMvQixPQUFPLEVBR0wsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsZUFBZSxFQUNmLFNBQVMsRUFDVCxVQUFVLEVBQ1YsWUFBWSxFQUNaLE1BQU0sRUFDTixLQUFLLEVBRUwsUUFBUSxFQUNSLE1BQU0sRUFDTixTQUFTLEVBQ1QsU0FBUyxFQUNULGlCQUFpQixHQUNsQixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBR0wsVUFBVSxFQUNWLGtCQUFrQixHQUVuQixNQUFNLHdCQUF3QixDQUFDO0FBQ2hDLE9BQU8sRUFBQyxxQkFBcUIsRUFBQyxNQUFNLHNDQUFzQyxDQUFDO0FBQzNFLE9BQU8sRUFBQyxLQUFLLEVBQUUsWUFBWSxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQ3pDLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6QyxPQUFPLEVBQUMsYUFBYSxFQUFFLE1BQU0sRUFBQyxNQUFNLE9BQU8sQ0FBQztBQUM1QyxPQUFPLEVBQUMsZUFBZSxFQUFnQixNQUFNLGNBQWMsQ0FBQzs7Ozs7Ozs7O0FBRzVELDBEQUEwRDtBQUMxRCxJQUFJLE1BQU0sR0FBRyxDQUFDLENBQUM7QUFFZixtRUFBbUU7QUFDbkUsTUFBTSxPQUFPLGlCQUFpQjtDQUs3QjtBQUtELGtEQUFrRDtBQUNsRCxvQkFBb0I7QUFDcEIsTUFBTSxxQkFBcUIsR0FBRyxVQUFVLENBQUMsa0JBQWtCLENBQUM7SUFDMUQs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QWEsQ0FBQyxDQUFDO0lBQ3JFLENBQUM7O2dIQVZVLFdBQVcsNkVBT0YsZUFBZSw2QkFDSCxxQkFBcUI7b0dBUjFDLFdBQVcsNlJBVlgsQ0FBQztZQUNWLE9BQU8sRUFBRSxhQUFhO1lBQ3RCLFdBQVcsRUFBRSxXQUFXO1NBQ3pCLENBQUMsbURBUWUsTUFBTSwrU0NsY3pCLDg3RUFxREE7bUdENFlhLFdBQVc7a0JBbkJ2QixTQUFTOytCQUNFLGVBQWUsWUFDZixhQUFhLGlCQUdSLGlCQUFpQixDQUFDLElBQUksbUJBRXBCLHVCQUF1QixDQUFDLE9BQU8sVUFDeEMsQ0FBQyxPQUFPLEVBQUUsZUFBZSxDQUFDLGFBQ3ZCLENBQUM7NEJBQ1YsT0FBTyxFQUFFLGFBQWE7NEJBQ3RCLFdBQVcsYUFBYTt5QkFDekIsQ0FBQyxRQUNJO3dCQUNKLE9BQU8sRUFBRSxlQUFlO3dCQUN4QixzQ0FBc0MsRUFBRSxlQUFlO3dCQUN2RCx1Q0FBdUMsRUFBRSw0QkFBNEI7cUJBQ3RFOzswQkFTWSxNQUFNOzJCQUFDLGVBQWU7OzBCQUFHLFFBQVE7OzBCQUNqQyxRQUFROzswQkFBSSxNQUFNOzJCQUFDLHFCQUFxQjs0Q0FQUCxRQUFRO3NCQUFyRCxlQUFlO3VCQUFDLE1BQU0sRUFBRSxFQUFDLFdBQVcsRUFBRSxJQUFJLEVBQUM7Z0JBQ2YsZUFBZTtzQkFBM0MsU0FBUzt1QkFBQyxnQkFBZ0I7Z0JBQ0gsVUFBVTtzQkFBakMsU0FBUzt1QkFBQyxXQUFXIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5cbmltcG9ydCB7XG4gIEJvb2xlYW5JbnB1dCxcbiAgY29lcmNlQm9vbGVhblByb3BlcnR5LFxuICBjb2VyY2VOdW1iZXJQcm9wZXJ0eSxcbiAgTnVtYmVySW5wdXRcbn0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvZXJjaW9uJztcbmltcG9ydCB7XG4gIEFmdGVyQ29udGVudENoZWNrZWQsXG4gIEFmdGVyQ29udGVudEluaXQsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBDb250ZW50Q2hpbGRyZW4sXG4gIERpcmVjdGl2ZSxcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBJbmplY3QsXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIE9wdGlvbmFsLFxuICBPdXRwdXQsXG4gIFF1ZXJ5TGlzdCxcbiAgVmlld0NoaWxkLFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0ZvY3VzT3JpZ2lufSBmcm9tICdAYW5ndWxhci9jZGsvYTExeSc7XG5pbXBvcnQge1xuICBDYW5Db2xvcixcbiAgQ2FuRGlzYWJsZVJpcHBsZSxcbiAgbWl4aW5Db2xvcixcbiAgbWl4aW5EaXNhYmxlUmlwcGxlLFxuICBUaGVtZVBhbGV0dGUsXG59IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NvcmUnO1xuaW1wb3J0IHtBTklNQVRJT05fTU9EVUxFX1RZUEV9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXIvYW5pbWF0aW9ucyc7XG5pbXBvcnQge21lcmdlLCBTdWJzY3JpcHRpb259IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtzdGFydFdpdGh9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7TUFUX1RBQl9HUk9VUCwgTWF0VGFifSBmcm9tICcuL3RhYic7XG5pbXBvcnQge01BVF9UQUJTX0NPTkZJRywgTWF0VGFic0NvbmZpZ30gZnJvbSAnLi90YWItY29uZmlnJztcblxuXG4vKiogVXNlZCB0byBnZW5lcmF0ZSB1bmlxdWUgSUQncyBmb3IgZWFjaCB0YWIgY29tcG9uZW50ICovXG5sZXQgbmV4dElkID0gMDtcblxuLyoqIEEgc2ltcGxlIGNoYW5nZSBldmVudCBlbWl0dGVkIG9uIGZvY3VzIG9yIHNlbGVjdGlvbiBjaGFuZ2VzLiAqL1xuZXhwb3J0IGNsYXNzIE1hdFRhYkNoYW5nZUV2ZW50IHtcbiAgLyoqIEluZGV4IG9mIHRoZSBjdXJyZW50bHktc2VsZWN0ZWQgdGFiLiAqL1xuICBpbmRleDogbnVtYmVyO1xuICAvKiogUmVmZXJlbmNlIHRvIHRoZSBjdXJyZW50bHktc2VsZWN0ZWQgdGFiLiAqL1xuICB0YWI6IE1hdFRhYjtcbn1cblxuLyoqIFBvc3NpYmxlIHBvc2l0aW9ucyBmb3IgdGhlIHRhYiBoZWFkZXIuICovXG5leHBvcnQgdHlwZSBNYXRUYWJIZWFkZXJQb3NpdGlvbiA9ICdhYm92ZScgfCAnYmVsb3cnO1xuXG4vLyBCb2lsZXJwbGF0ZSBmb3IgYXBwbHlpbmcgbWl4aW5zIHRvIE1hdFRhYkdyb3VwLlxuLyoqIEBkb2NzLXByaXZhdGUgKi9cbmNvbnN0IF9NYXRUYWJHcm91cE1peGluQmFzZSA9IG1peGluQ29sb3IobWl4aW5EaXNhYmxlUmlwcGxlKGNsYXNzIHtcbiAgY29uc3RydWN0b3IocHVibGljIF9lbGVtZW50UmVmOiBFbGVtZW50UmVmKSB7fVxufSksICdwcmltYXJ5Jyk7XG5cbmludGVyZmFjZSBNYXRUYWJHcm91cEJhc2VIZWFkZXIge1xuICBfYWxpZ25JbmtCYXJUb1NlbGVjdGVkVGFiOiAoKSA9PiB2b2lkO1xuICBmb2N1c0luZGV4OiBudW1iZXI7XG59XG5cbi8qKlxuICogQmFzZSBjbGFzcyB3aXRoIGFsbCBvZiB0aGUgYE1hdFRhYkdyb3VwQmFzZWAgZnVuY3Rpb25hbGl0eS5cbiAqIEBkb2NzLXByaXZhdGVcbiAqL1xuQERpcmVjdGl2ZSgpXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgX01hdFRhYkdyb3VwQmFzZSBleHRlbmRzIF9NYXRUYWJHcm91cE1peGluQmFzZSBpbXBsZW1lbnRzIEFmdGVyQ29udGVudEluaXQsXG4gICAgQWZ0ZXJDb250ZW50Q2hlY2tlZCwgT25EZXN0cm95LCBDYW5Db2xvciwgQ2FuRGlzYWJsZVJpcHBsZSB7XG5cbiAgLyoqXG4gICAqIEFsbCB0YWJzIGluc2lkZSB0aGUgdGFiIGdyb3VwLiBUaGlzIGluY2x1ZGVzIHRhYnMgdGhhdCBiZWxvbmcgdG8gZ3JvdXBzIHRoYXQgYXJlIG5lc3RlZFxuICAgKiBpbnNpZGUgdGhlIGN1cnJlbnQgb25lLiBXZSBmaWx0ZXIgb3V0IG9ubHkgdGhlIHRhYnMgdGhhdCBiZWxvbmcgdG8gdGhpcyBncm91cCBpbiBgX3RhYnNgLlxuICAgKi9cbiAgYWJzdHJhY3QgX2FsbFRhYnM6IFF1ZXJ5TGlzdDxNYXRUYWI+O1xuICBhYnN0cmFjdCBfdGFiQm9keVdyYXBwZXI6IEVsZW1lbnRSZWY7XG4gIGFic3RyYWN0IF90YWJIZWFkZXI6IE1hdFRhYkdyb3VwQmFzZUhlYWRlcjtcblxuICAvKiogQWxsIG9mIHRoZSB0YWJzIHRoYXQgYmVsb25nIHRvIHRoZSBncm91cC4gKi9cbiAgX3RhYnM6IFF1ZXJ5TGlzdDxNYXRUYWI+ID0gbmV3IFF1ZXJ5TGlzdDxNYXRUYWI+KCk7XG5cbiAgLyoqIFRoZSB0YWIgaW5kZXggdGhhdCBzaG91bGQgYmUgc2VsZWN0ZWQgYWZ0ZXIgdGhlIGNvbnRlbnQgaGFzIGJlZW4gY2hlY2tlZC4gKi9cbiAgcHJpdmF0ZSBfaW5kZXhUb1NlbGVjdDogbnVtYmVyIHwgbnVsbCA9IDA7XG5cbiAgLyoqIFNuYXBzaG90IG9mIHRoZSBoZWlnaHQgb2YgdGhlIHRhYiBib2R5IHdyYXBwZXIgYmVmb3JlIGFub3RoZXIgdGFiIGlzIGFjdGl2YXRlZC4gKi9cbiAgcHJpdmF0ZSBfdGFiQm9keVdyYXBwZXJIZWlnaHQ6IG51bWJlciA9IDA7XG5cbiAgLyoqIFN1YnNjcmlwdGlvbiB0byB0YWJzIGJlaW5nIGFkZGVkL3JlbW92ZWQuICovXG4gIHByaXZhdGUgX3RhYnNTdWJzY3JpcHRpb24gPSBTdWJzY3JpcHRpb24uRU1QVFk7XG5cbiAgLyoqIFN1YnNjcmlwdGlvbiB0byBjaGFuZ2VzIGluIHRoZSB0YWIgbGFiZWxzLiAqL1xuICBwcml2YXRlIF90YWJMYWJlbFN1YnNjcmlwdGlvbiA9IFN1YnNjcmlwdGlvbi5FTVBUWTtcblxuICAvKiogV2hldGhlciB0aGUgdGFiIGdyb3VwIHNob3VsZCBncm93IHRvIHRoZSBzaXplIG9mIHRoZSBhY3RpdmUgdGFiLiAqL1xuICBASW5wdXQoKVxuICBnZXQgZHluYW1pY0hlaWdodCgpOiBib29sZWFuIHsgcmV0dXJuIHRoaXMuX2R5bmFtaWNIZWlnaHQ7IH1cbiAgc2V0IGR5bmFtaWNIZWlnaHQodmFsdWU6IGJvb2xlYW4pIHsgdGhpcy5fZHluYW1pY0hlaWdodCA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7IH1cbiAgcHJpdmF0ZSBfZHluYW1pY0hlaWdodDogYm9vbGVhbjtcblxuICAvKiogVGhlIGluZGV4IG9mIHRoZSBhY3RpdmUgdGFiLiAqL1xuICBASW5wdXQoKVxuICBnZXQgc2VsZWN0ZWRJbmRleCgpOiBudW1iZXIgfCBudWxsIHsgcmV0dXJuIHRoaXMuX3NlbGVjdGVkSW5kZXg7IH1cbiAgc2V0IHNlbGVjdGVkSW5kZXgodmFsdWU6IG51bWJlciB8IG51bGwpIHtcbiAgICB0aGlzLl9pbmRleFRvU2VsZWN0ID0gY29lcmNlTnVtYmVyUHJvcGVydHkodmFsdWUsIG51bGwpO1xuICB9XG4gIHByaXZhdGUgX3NlbGVjdGVkSW5kZXg6IG51bWJlciB8IG51bGwgPSBudWxsO1xuXG4gIC8qKiBQb3NpdGlvbiBvZiB0aGUgdGFiIGhlYWRlci4gKi9cbiAgQElucHV0KCkgaGVhZGVyUG9zaXRpb246IE1hdFRhYkhlYWRlclBvc2l0aW9uID0gJ2Fib3ZlJztcblxuICAvKiogRHVyYXRpb24gZm9yIHRoZSB0YWIgYW5pbWF0aW9uLiBXaWxsIGJlIG5vcm1hbGl6ZWQgdG8gbWlsbGlzZWNvbmRzIGlmIG5vIHVuaXRzIGFyZSBzZXQuICovXG4gIEBJbnB1dCgpXG4gIGdldCBhbmltYXRpb25EdXJhdGlvbigpOiBzdHJpbmcgeyByZXR1cm4gdGhpcy5fYW5pbWF0aW9uRHVyYXRpb247IH1cbiAgc2V0IGFuaW1hdGlvbkR1cmF0aW9uKHZhbHVlOiBzdHJpbmcpIHtcbiAgICB0aGlzLl9hbmltYXRpb25EdXJhdGlvbiA9IC9eXFxkKyQvLnRlc3QodmFsdWUpID8gdmFsdWUgKyAnbXMnIDogdmFsdWU7XG4gIH1cbiAgcHJpdmF0ZSBfYW5pbWF0aW9uRHVyYXRpb246IHN0cmluZztcblxuICAvKipcbiAgICogYHRhYmluZGV4YCB0byBiZSBzZXQgb24gdGhlIGlubmVyIGVsZW1lbnQgdGhhdCB3cmFwcyB0aGUgdGFiIGNvbnRlbnQuIENhbiBiZSB1c2VkIGZvciBpbXByb3ZlZFxuICAgKiBhY2Nlc3NpYmlsaXR5IHdoZW4gdGhlIHRhYiBkb2VzIG5vdCBoYXZlIGZvY3VzYWJsZSBlbGVtZW50cyBvciBpZiBpdCBoYXMgc2Nyb2xsYWJsZSBjb250ZW50LlxuICAgKiBUaGUgYHRhYmluZGV4YCB3aWxsIGJlIHJlbW92ZWQgYXV0b21hdGljYWxseSBmb3IgaW5hY3RpdmUgdGFicy5cbiAgICogUmVhZCBtb3JlIGF0IGh0dHBzOi8vd3d3LnczLm9yZy9UUi93YWktYXJpYS1wcmFjdGljZXMvZXhhbXBsZXMvdGFicy90YWJzLTIvdGFicy5odG1sXG4gICAqL1xuICBASW5wdXQoKVxuICBnZXQgY29udGVudFRhYkluZGV4KCk6IG51bWJlciB8IG51bGwgeyByZXR1cm4gdGhpcy5fY29udGVudFRhYkluZGV4OyB9XG4gIHNldCBjb250ZW50VGFiSW5kZXgodmFsdWU6IG51bWJlciB8IG51bGwpIHtcbiAgICB0aGlzLl9jb250ZW50VGFiSW5kZXggPSBjb2VyY2VOdW1iZXJQcm9wZXJ0eSh2YWx1ZSwgbnVsbCk7XG4gIH1cbiAgcHJpdmF0ZSBfY29udGVudFRhYkluZGV4OiBudW1iZXIgfCBudWxsO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHBhZ2luYXRpb24gc2hvdWxkIGJlIGRpc2FibGVkLiBUaGlzIGNhbiBiZSB1c2VkIHRvIGF2b2lkIHVubmVjZXNzYXJ5XG4gICAqIGxheW91dCByZWNhbGN1bGF0aW9ucyBpZiBpdCdzIGtub3duIHRoYXQgcGFnaW5hdGlvbiB3b24ndCBiZSByZXF1aXJlZC5cbiAgICovXG4gIEBJbnB1dCgpXG4gIGRpc2FibGVQYWdpbmF0aW9uOiBib29sZWFuO1xuXG4gIC8qKiBCYWNrZ3JvdW5kIGNvbG9yIG9mIHRoZSB0YWIgZ3JvdXAuICovXG4gIEBJbnB1dCgpXG4gIGdldCBiYWNrZ3JvdW5kQ29sb3IoKTogVGhlbWVQYWxldHRlIHsgcmV0dXJuIHRoaXMuX2JhY2tncm91bmRDb2xvcjsgfVxuICBzZXQgYmFja2dyb3VuZENvbG9yKHZhbHVlOiBUaGVtZVBhbGV0dGUpIHtcbiAgICBjb25zdCBuYXRpdmVFbGVtZW50OiBIVE1MRWxlbWVudCA9IHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudDtcblxuICAgIG5hdGl2ZUVsZW1lbnQuY2xhc3NMaXN0LnJlbW92ZShgbWF0LWJhY2tncm91bmQtJHt0aGlzLmJhY2tncm91bmRDb2xvcn1gKTtcblxuICAgIGlmICh2YWx1ZSkge1xuICAgICAgbmF0aXZlRWxlbWVudC5jbGFzc0xpc3QuYWRkKGBtYXQtYmFja2dyb3VuZC0ke3ZhbHVlfWApO1xuICAgIH1cblxuICAgIHRoaXMuX2JhY2tncm91bmRDb2xvciA9IHZhbHVlO1xuICB9XG4gIHByaXZhdGUgX2JhY2tncm91bmRDb2xvcjogVGhlbWVQYWxldHRlO1xuXG4gIC8qKiBPdXRwdXQgdG8gZW5hYmxlIHN1cHBvcnQgZm9yIHR3by13YXkgYmluZGluZyBvbiBgWyhzZWxlY3RlZEluZGV4KV1gICovXG4gIEBPdXRwdXQoKSByZWFkb25seSBzZWxlY3RlZEluZGV4Q2hhbmdlOiBFdmVudEVtaXR0ZXI8bnVtYmVyPiA9IG5ldyBFdmVudEVtaXR0ZXI8bnVtYmVyPigpO1xuXG4gIC8qKiBFdmVudCBlbWl0dGVkIHdoZW4gZm9jdXMgaGFzIGNoYW5nZWQgd2l0aGluIGEgdGFiIGdyb3VwLiAqL1xuICBAT3V0cHV0KCkgcmVhZG9ubHkgZm9jdXNDaGFuZ2U6IEV2ZW50RW1pdHRlcjxNYXRUYWJDaGFuZ2VFdmVudD4gPVxuICAgICAgbmV3IEV2ZW50RW1pdHRlcjxNYXRUYWJDaGFuZ2VFdmVudD4oKTtcblxuICAvKiogRXZlbnQgZW1pdHRlZCB3aGVuIHRoZSBib2R5IGFuaW1hdGlvbiBoYXMgY29tcGxldGVkICovXG4gIEBPdXRwdXQoKSByZWFkb25seSBhbmltYXRpb25Eb25lOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgLyoqIEV2ZW50IGVtaXR0ZWQgd2hlbiB0aGUgdGFiIHNlbGVjdGlvbiBoYXMgY2hhbmdlZC4gKi9cbiAgQE91dHB1dCgpIHJlYWRvbmx5IHNlbGVjdGVkVGFiQ2hhbmdlOiBFdmVudEVtaXR0ZXI8TWF0VGFiQ2hhbmdlRXZlbnQ+ID1cbiAgICAgIG5ldyBFdmVudEVtaXR0ZXI8TWF0VGFiQ2hhbmdlRXZlbnQ+KHRydWUpO1xuXG4gIHByaXZhdGUgX2dyb3VwSWQ6IG51bWJlcjtcblxuICBjb25zdHJ1Y3RvcihlbGVtZW50UmVmOiBFbGVtZW50UmVmLFxuICAgICAgICAgICAgICBwcm90ZWN0ZWQgX2NoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICAgICAgICAgICAgQEluamVjdChNQVRfVEFCU19DT05GSUcpIEBPcHRpb25hbCgpIGRlZmF1bHRDb25maWc/OiBNYXRUYWJzQ29uZmlnLFxuICAgICAgICAgICAgICBAT3B0aW9uYWwoKSBASW5qZWN0KEFOSU1BVElPTl9NT0RVTEVfVFlQRSkgcHVibGljIF9hbmltYXRpb25Nb2RlPzogc3RyaW5nKSB7XG4gICAgc3VwZXIoZWxlbWVudFJlZik7XG4gICAgdGhpcy5fZ3JvdXBJZCA9IG5leHRJZCsrO1xuICAgIHRoaXMuYW5pbWF0aW9uRHVyYXRpb24gPSBkZWZhdWx0Q29uZmlnICYmIGRlZmF1bHRDb25maWcuYW5pbWF0aW9uRHVyYXRpb24gP1xuICAgICAgICBkZWZhdWx0Q29uZmlnLmFuaW1hdGlvbkR1cmF0aW9uIDogJzUwMG1zJztcbiAgICB0aGlzLmRpc2FibGVQYWdpbmF0aW9uID0gZGVmYXVsdENvbmZpZyAmJiBkZWZhdWx0Q29uZmlnLmRpc2FibGVQYWdpbmF0aW9uICE9IG51bGwgP1xuICAgICAgICBkZWZhdWx0Q29uZmlnLmRpc2FibGVQYWdpbmF0aW9uIDogZmFsc2U7XG4gICAgdGhpcy5keW5hbWljSGVpZ2h0ID0gZGVmYXVsdENvbmZpZyAmJiBkZWZhdWx0Q29uZmlnLmR5bmFtaWNIZWlnaHQgIT0gbnVsbCA/XG4gICAgICAgIGRlZmF1bHRDb25maWcuZHluYW1pY0hlaWdodCA6IGZhbHNlO1xuICAgIHRoaXMuY29udGVudFRhYkluZGV4ID0gZGVmYXVsdENvbmZpZz8uY29udGVudFRhYkluZGV4ID8/IG51bGw7XG4gIH1cblxuICAvKipcbiAgICogQWZ0ZXIgdGhlIGNvbnRlbnQgaXMgY2hlY2tlZCwgdGhpcyBjb21wb25lbnQga25vd3Mgd2hhdCB0YWJzIGhhdmUgYmVlbiBkZWZpbmVkXG4gICAqIGFuZCB3aGF0IHRoZSBzZWxlY3RlZCBpbmRleCBzaG91bGQgYmUuIFRoaXMgaXMgd2hlcmUgd2UgY2FuIGtub3cgZXhhY3RseSB3aGF0IHBvc2l0aW9uXG4gICAqIGVhY2ggdGFiIHNob3VsZCBiZSBpbiBhY2NvcmRpbmcgdG8gdGhlIG5ldyBzZWxlY3RlZCBpbmRleCwgYW5kIGFkZGl0aW9uYWxseSB3ZSBrbm93IGhvd1xuICAgKiBhIG5ldyBzZWxlY3RlZCB0YWIgc2hvdWxkIHRyYW5zaXRpb24gaW4gKGZyb20gdGhlIGxlZnQgb3IgcmlnaHQpLlxuICAgKi9cbiAgbmdBZnRlckNvbnRlbnRDaGVja2VkKCkge1xuICAgIC8vIERvbid0IGNsYW1wIHRoZSBgaW5kZXhUb1NlbGVjdGAgaW1tZWRpYXRlbHkgaW4gdGhlIHNldHRlciBiZWNhdXNlIGl0IGNhbiBoYXBwZW4gdGhhdFxuICAgIC8vIHRoZSBhbW91bnQgb2YgdGFicyBjaGFuZ2VzIGJlZm9yZSB0aGUgYWN0dWFsIGNoYW5nZSBkZXRlY3Rpb24gcnVucy5cbiAgICBjb25zdCBpbmRleFRvU2VsZWN0ID0gdGhpcy5faW5kZXhUb1NlbGVjdCA9IHRoaXMuX2NsYW1wVGFiSW5kZXgodGhpcy5faW5kZXhUb1NlbGVjdCk7XG5cbiAgICAvLyBJZiB0aGVyZSBpcyBhIGNoYW5nZSBpbiBzZWxlY3RlZCBpbmRleCwgZW1pdCBhIGNoYW5nZSBldmVudC4gU2hvdWxkIG5vdCB0cmlnZ2VyIGlmXG4gICAgLy8gdGhlIHNlbGVjdGVkIGluZGV4IGhhcyBub3QgeWV0IGJlZW4gaW5pdGlhbGl6ZWQuXG4gICAgaWYgKHRoaXMuX3NlbGVjdGVkSW5kZXggIT0gaW5kZXhUb1NlbGVjdCkge1xuICAgICAgY29uc3QgaXNGaXJzdFJ1biA9IHRoaXMuX3NlbGVjdGVkSW5kZXggPT0gbnVsbDtcblxuICAgICAgaWYgKCFpc0ZpcnN0UnVuKSB7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRUYWJDaGFuZ2UuZW1pdCh0aGlzLl9jcmVhdGVDaGFuZ2VFdmVudChpbmRleFRvU2VsZWN0KSk7XG4gICAgICAgIC8vIFByZXNlcnZlIHRoZSBoZWlnaHQgc28gcGFnZSBkb2Vzbid0IHNjcm9sbCB1cCBkdXJpbmcgdGFiIGNoYW5nZS5cbiAgICAgICAgLy8gRml4ZXMgaHR0cHM6Ly9zdGFja2JsaXR6LmNvbS9lZGl0L21hdC10YWJzLXNjcm9sbC1wYWdlLXRvcC1vbi10YWItY2hhbmdlXG4gICAgICAgIGNvbnN0IHdyYXBwZXIgPSB0aGlzLl90YWJCb2R5V3JhcHBlci5uYXRpdmVFbGVtZW50O1xuICAgICAgICB3cmFwcGVyLnN0eWxlLm1pbkhlaWdodCA9IHdyYXBwZXIuY2xpZW50SGVpZ2h0ICsgJ3B4JztcbiAgICAgIH1cblxuICAgICAgLy8gQ2hhbmdpbmcgdGhlc2UgdmFsdWVzIGFmdGVyIGNoYW5nZSBkZXRlY3Rpb24gaGFzIHJ1blxuICAgICAgLy8gc2luY2UgdGhlIGNoZWNrZWQgY29udGVudCBtYXkgY29udGFpbiByZWZlcmVuY2VzIHRvIHRoZW0uXG4gICAgICBQcm9taXNlLnJlc29sdmUoKS50aGVuKCgpID0+IHtcbiAgICAgICAgdGhpcy5fdGFicy5mb3JFYWNoKCh0YWIsIGluZGV4KSA9PiB0YWIuaXNBY3RpdmUgPSBpbmRleCA9PT0gaW5kZXhUb1NlbGVjdCk7XG5cbiAgICAgICAgaWYgKCFpc0ZpcnN0UnVuKSB7XG4gICAgICAgICAgdGhpcy5zZWxlY3RlZEluZGV4Q2hhbmdlLmVtaXQoaW5kZXhUb1NlbGVjdCk7XG4gICAgICAgICAgLy8gQ2xlYXIgdGhlIG1pbi1oZWlnaHQsIHRoaXMgd2FzIG5lZWRlZCBkdXJpbmcgdGFiIGNoYW5nZSB0byBhdm9pZFxuICAgICAgICAgIC8vIHVubmVjZXNzYXJ5IHNjcm9sbGluZy5cbiAgICAgICAgICB0aGlzLl90YWJCb2R5V3JhcHBlci5uYXRpdmVFbGVtZW50LnN0eWxlLm1pbkhlaWdodCA9ICcnO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICAvLyBTZXR1cCB0aGUgcG9zaXRpb24gZm9yIGVhY2ggdGFiIGFuZCBvcHRpb25hbGx5IHNldHVwIGFuIG9yaWdpbiBvbiB0aGUgbmV4dCBzZWxlY3RlZCB0YWIuXG4gICAgdGhpcy5fdGFicy5mb3JFYWNoKCh0YWI6IE1hdFRhYiwgaW5kZXg6IG51bWJlcikgPT4ge1xuICAgICAgdGFiLnBvc2l0aW9uID0gaW5kZXggLSBpbmRleFRvU2VsZWN0O1xuXG4gICAgICAvLyBJZiB0aGVyZSBpcyBhbHJlYWR5IGEgc2VsZWN0ZWQgdGFiLCB0aGVuIHNldCB1cCBhbiBvcmlnaW4gZm9yIHRoZSBuZXh0IHNlbGVjdGVkIHRhYlxuICAgICAgLy8gaWYgaXQgZG9lc24ndCBoYXZlIG9uZSBhbHJlYWR5LlxuICAgICAgaWYgKHRoaXMuX3NlbGVjdGVkSW5kZXggIT0gbnVsbCAmJiB0YWIucG9zaXRpb24gPT0gMCAmJiAhdGFiLm9yaWdpbikge1xuICAgICAgICB0YWIub3JpZ2luID0gaW5kZXhUb1NlbGVjdCAtIHRoaXMuX3NlbGVjdGVkSW5kZXg7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBpZiAodGhpcy5fc2VsZWN0ZWRJbmRleCAhPT0gaW5kZXhUb1NlbGVjdCkge1xuICAgICAgdGhpcy5fc2VsZWN0ZWRJbmRleCA9IGluZGV4VG9TZWxlY3Q7XG4gICAgICB0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgICB9XG4gIH1cblxuICBuZ0FmdGVyQ29udGVudEluaXQoKSB7XG4gICAgdGhpcy5fc3Vic2NyaWJlVG9BbGxUYWJDaGFuZ2VzKCk7XG4gICAgdGhpcy5fc3Vic2NyaWJlVG9UYWJMYWJlbHMoKTtcblxuICAgIC8vIFN1YnNjcmliZSB0byBjaGFuZ2VzIGluIHRoZSBhbW91bnQgb2YgdGFicywgaW4gb3JkZXIgdG8gYmVcbiAgICAvLyBhYmxlIHRvIHJlLXJlbmRlciB0aGUgY29udGVudCBhcyBuZXcgdGFicyBhcmUgYWRkZWQgb3IgcmVtb3ZlZC5cbiAgICB0aGlzLl90YWJzU3Vic2NyaXB0aW9uID0gdGhpcy5fdGFicy5jaGFuZ2VzLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICBjb25zdCBpbmRleFRvU2VsZWN0ID0gdGhpcy5fY2xhbXBUYWJJbmRleCh0aGlzLl9pbmRleFRvU2VsZWN0KTtcblxuICAgICAgLy8gTWFpbnRhaW4gdGhlIHByZXZpb3VzbHktc2VsZWN0ZWQgdGFiIGlmIGEgbmV3IHRhYiBpcyBhZGRlZCBvciByZW1vdmVkIGFuZCB0aGVyZSBpcyBub1xuICAgICAgLy8gZXhwbGljaXQgY2hhbmdlIHRoYXQgc2VsZWN0cyBhIGRpZmZlcmVudCB0YWIuXG4gICAgICBpZiAoaW5kZXhUb1NlbGVjdCA9PT0gdGhpcy5fc2VsZWN0ZWRJbmRleCkge1xuICAgICAgICBjb25zdCB0YWJzID0gdGhpcy5fdGFicy50b0FycmF5KCk7XG5cbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0YWJzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgaWYgKHRhYnNbaV0uaXNBY3RpdmUpIHtcbiAgICAgICAgICAgIC8vIEFzc2lnbiBib3RoIHRvIHRoZSBgX2luZGV4VG9TZWxlY3RgIGFuZCBgX3NlbGVjdGVkSW5kZXhgIHNvIHdlIGRvbid0IGZpcmUgYSBjaGFuZ2VkXG4gICAgICAgICAgICAvLyBldmVudCwgb3RoZXJ3aXNlIHRoZSBjb25zdW1lciBtYXkgZW5kIHVwIGluIGFuIGluZmluaXRlIGxvb3AgaW4gc29tZSBlZGdlIGNhc2VzIGxpa2VcbiAgICAgICAgICAgIC8vIGFkZGluZyBhIHRhYiB3aXRoaW4gdGhlIGBzZWxlY3RlZEluZGV4Q2hhbmdlYCBldmVudC5cbiAgICAgICAgICAgIHRoaXMuX2luZGV4VG9TZWxlY3QgPSB0aGlzLl9zZWxlY3RlZEluZGV4ID0gaTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICB0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKiBMaXN0ZW5zIHRvIGNoYW5nZXMgaW4gYWxsIG9mIHRoZSB0YWJzLiAqL1xuICBwcml2YXRlIF9zdWJzY3JpYmVUb0FsbFRhYkNoYW5nZXMoKSB7XG4gICAgLy8gU2luY2Ugd2UgdXNlIGEgcXVlcnkgd2l0aCBgZGVzY2VuZGFudHM6IHRydWVgIHRvIHBpY2sgdXAgdGhlIHRhYnMsIHdlIG1heSBlbmQgdXAgY2F0Y2hpbmdcbiAgICAvLyBzb21lIHRoYXQgYXJlIGluc2lkZSBvZiBuZXN0ZWQgdGFiIGdyb3Vwcy4gV2UgZmlsdGVyIHRoZW0gb3V0IG1hbnVhbGx5IGJ5IGNoZWNraW5nIHRoYXRcbiAgICAvLyB0aGUgY2xvc2VzdCBncm91cCB0byB0aGUgdGFiIGlzIHRoZSBjdXJyZW50IG9uZS5cbiAgICB0aGlzLl9hbGxUYWJzLmNoYW5nZXNcbiAgICAgIC5waXBlKHN0YXJ0V2l0aCh0aGlzLl9hbGxUYWJzKSlcbiAgICAgIC5zdWJzY3JpYmUoKHRhYnM6IFF1ZXJ5TGlzdDxNYXRUYWI+KSA9PiB7XG4gICAgICAgIHRoaXMuX3RhYnMucmVzZXQodGFicy5maWx0ZXIodGFiID0+IHtcbiAgICAgICAgICByZXR1cm4gdGFiLl9jbG9zZXN0VGFiR3JvdXAgPT09IHRoaXMgfHwgIXRhYi5fY2xvc2VzdFRhYkdyb3VwO1xuICAgICAgICB9KSk7XG4gICAgICAgIHRoaXMuX3RhYnMubm90aWZ5T25DaGFuZ2VzKCk7XG4gICAgICB9KTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMuX3RhYnMuZGVzdHJveSgpO1xuICAgIHRoaXMuX3RhYnNTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICB0aGlzLl90YWJMYWJlbFN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICB9XG5cbiAgLyoqIFJlLWFsaWducyB0aGUgaW5rIGJhciB0byB0aGUgc2VsZWN0ZWQgdGFiIGVsZW1lbnQuICovXG4gIHJlYWxpZ25JbmtCYXIoKSB7XG4gICAgaWYgKHRoaXMuX3RhYkhlYWRlcikge1xuICAgICAgdGhpcy5fdGFiSGVhZGVyLl9hbGlnbklua0JhclRvU2VsZWN0ZWRUYWIoKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogU2V0cyBmb2N1cyB0byBhIHBhcnRpY3VsYXIgdGFiLlxuICAgKiBAcGFyYW0gaW5kZXggSW5kZXggb2YgdGhlIHRhYiB0byBiZSBmb2N1c2VkLlxuICAgKi9cbiAgZm9jdXNUYWIoaW5kZXg6IG51bWJlcikge1xuICAgIGNvbnN0IGhlYWRlciA9IHRoaXMuX3RhYkhlYWRlcjtcblxuICAgIGlmIChoZWFkZXIpIHtcbiAgICAgIGhlYWRlci5mb2N1c0luZGV4ID0gaW5kZXg7XG4gICAgfVxuICB9XG5cbiAgX2ZvY3VzQ2hhbmdlZChpbmRleDogbnVtYmVyKSB7XG4gICAgdGhpcy5mb2N1c0NoYW5nZS5lbWl0KHRoaXMuX2NyZWF0ZUNoYW5nZUV2ZW50KGluZGV4KSk7XG4gIH1cblxuICBwcml2YXRlIF9jcmVhdGVDaGFuZ2VFdmVudChpbmRleDogbnVtYmVyKTogTWF0VGFiQ2hhbmdlRXZlbnQge1xuICAgIGNvbnN0IGV2ZW50ID0gbmV3IE1hdFRhYkNoYW5nZUV2ZW50O1xuICAgIGV2ZW50LmluZGV4ID0gaW5kZXg7XG4gICAgaWYgKHRoaXMuX3RhYnMgJiYgdGhpcy5fdGFicy5sZW5ndGgpIHtcbiAgICAgIGV2ZW50LnRhYiA9IHRoaXMuX3RhYnMudG9BcnJheSgpW2luZGV4XTtcbiAgICB9XG4gICAgcmV0dXJuIGV2ZW50O1xuICB9XG5cbiAgLyoqXG4gICAqIFN1YnNjcmliZXMgdG8gY2hhbmdlcyBpbiB0aGUgdGFiIGxhYmVscy4gVGhpcyBpcyBuZWVkZWQsIGJlY2F1c2UgdGhlIEBJbnB1dCBmb3IgdGhlIGxhYmVsIGlzXG4gICAqIG9uIHRoZSBNYXRUYWIgY29tcG9uZW50LCB3aGVyZWFzIHRoZSBkYXRhIGJpbmRpbmcgaXMgaW5zaWRlIHRoZSBNYXRUYWJHcm91cC4gSW4gb3JkZXIgZm9yIHRoZVxuICAgKiBiaW5kaW5nIHRvIGJlIHVwZGF0ZWQsIHdlIG5lZWQgdG8gc3Vic2NyaWJlIHRvIGNoYW5nZXMgaW4gaXQgYW5kIHRyaWdnZXIgY2hhbmdlIGRldGVjdGlvblxuICAgKiBtYW51YWxseS5cbiAgICovXG4gIHByaXZhdGUgX3N1YnNjcmliZVRvVGFiTGFiZWxzKCkge1xuICAgIGlmICh0aGlzLl90YWJMYWJlbFN1YnNjcmlwdGlvbikge1xuICAgICAgdGhpcy5fdGFiTGFiZWxTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICB9XG5cbiAgICB0aGlzLl90YWJMYWJlbFN1YnNjcmlwdGlvbiA9IG1lcmdlKC4uLnRoaXMuX3RhYnMubWFwKHRhYiA9PiB0YWIuX3N0YXRlQ2hhbmdlcykpXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHRoaXMuX2NoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpKTtcbiAgfVxuXG4gIC8qKiBDbGFtcHMgdGhlIGdpdmVuIGluZGV4IHRvIHRoZSBib3VuZHMgb2YgMCBhbmQgdGhlIHRhYnMgbGVuZ3RoLiAqL1xuICBwcml2YXRlIF9jbGFtcFRhYkluZGV4KGluZGV4OiBudW1iZXIgfCBudWxsKTogbnVtYmVyIHtcbiAgICAvLyBOb3RlIHRoZSBgfHwgMGAsIHdoaWNoIGVuc3VyZXMgdGhhdCB2YWx1ZXMgbGlrZSBOYU4gY2FuJ3QgZ2V0IHRocm91Z2hcbiAgICAvLyBhbmQgd2hpY2ggd291bGQgb3RoZXJ3aXNlIHRocm93IHRoZSBjb21wb25lbnQgaW50byBhbiBpbmZpbml0ZSBsb29wXG4gICAgLy8gKHNpbmNlIE1hdGgubWF4KE5hTiwgMCkgPT09IE5hTikuXG4gICAgcmV0dXJuIE1hdGgubWluKHRoaXMuX3RhYnMubGVuZ3RoIC0gMSwgTWF0aC5tYXgoaW5kZXggfHwgMCwgMCkpO1xuICB9XG5cbiAgLyoqIFJldHVybnMgYSB1bmlxdWUgaWQgZm9yIGVhY2ggdGFiIGxhYmVsIGVsZW1lbnQgKi9cbiAgX2dldFRhYkxhYmVsSWQoaTogbnVtYmVyKTogc3RyaW5nIHtcbiAgICByZXR1cm4gYG1hdC10YWItbGFiZWwtJHt0aGlzLl9ncm91cElkfS0ke2l9YDtcbiAgfVxuXG4gIC8qKiBSZXR1cm5zIGEgdW5pcXVlIGlkIGZvciBlYWNoIHRhYiBjb250ZW50IGVsZW1lbnQgKi9cbiAgX2dldFRhYkNvbnRlbnRJZChpOiBudW1iZXIpOiBzdHJpbmcge1xuICAgIHJldHVybiBgbWF0LXRhYi1jb250ZW50LSR7dGhpcy5fZ3JvdXBJZH0tJHtpfWA7XG4gIH1cblxuICAvKipcbiAgICogU2V0cyB0aGUgaGVpZ2h0IG9mIHRoZSBib2R5IHdyYXBwZXIgdG8gdGhlIGhlaWdodCBvZiB0aGUgYWN0aXZhdGluZyB0YWIgaWYgZHluYW1pY1xuICAgKiBoZWlnaHQgcHJvcGVydHkgaXMgdHJ1ZS5cbiAgICovXG4gIF9zZXRUYWJCb2R5V3JhcHBlckhlaWdodCh0YWJIZWlnaHQ6IG51bWJlcik6IHZvaWQge1xuICAgIGlmICghdGhpcy5fZHluYW1pY0hlaWdodCB8fCAhdGhpcy5fdGFiQm9keVdyYXBwZXJIZWlnaHQpIHsgcmV0dXJuOyB9XG5cbiAgICBjb25zdCB3cmFwcGVyOiBIVE1MRWxlbWVudCA9IHRoaXMuX3RhYkJvZHlXcmFwcGVyLm5hdGl2ZUVsZW1lbnQ7XG5cbiAgICB3cmFwcGVyLnN0eWxlLmhlaWdodCA9IHRoaXMuX3RhYkJvZHlXcmFwcGVySGVpZ2h0ICsgJ3B4JztcblxuICAgIC8vIFRoaXMgY29uZGl0aW9uYWwgZm9yY2VzIHRoZSBicm93c2VyIHRvIHBhaW50IHRoZSBoZWlnaHQgc28gdGhhdFxuICAgIC8vIHRoZSBhbmltYXRpb24gdG8gdGhlIG5ldyBoZWlnaHQgY2FuIGhhdmUgYW4gb3JpZ2luLlxuICAgIGlmICh0aGlzLl90YWJCb2R5V3JhcHBlci5uYXRpdmVFbGVtZW50Lm9mZnNldEhlaWdodCkge1xuICAgICAgd3JhcHBlci5zdHlsZS5oZWlnaHQgPSB0YWJIZWlnaHQgKyAncHgnO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBSZW1vdmVzIHRoZSBoZWlnaHQgb2YgdGhlIHRhYiBib2R5IHdyYXBwZXIuICovXG4gIF9yZW1vdmVUYWJCb2R5V3JhcHBlckhlaWdodCgpOiB2b2lkIHtcbiAgICBjb25zdCB3cmFwcGVyID0gdGhpcy5fdGFiQm9keVdyYXBwZXIubmF0aXZlRWxlbWVudDtcbiAgICB0aGlzLl90YWJCb2R5V3JhcHBlckhlaWdodCA9IHdyYXBwZXIuY2xpZW50SGVpZ2h0O1xuICAgIHdyYXBwZXIuc3R5bGUuaGVpZ2h0ID0gJyc7XG4gICAgdGhpcy5hbmltYXRpb25Eb25lLmVtaXQoKTtcbiAgfVxuXG4gIC8qKiBIYW5kbGUgY2xpY2sgZXZlbnRzLCBzZXR0aW5nIG5ldyBzZWxlY3RlZCBpbmRleCBpZiBhcHByb3ByaWF0ZS4gKi9cbiAgX2hhbmRsZUNsaWNrKHRhYjogTWF0VGFiLCB0YWJIZWFkZXI6IE1hdFRhYkdyb3VwQmFzZUhlYWRlciwgaW5kZXg6IG51bWJlcikge1xuICAgIGlmICghdGFiLmRpc2FibGVkKSB7XG4gICAgICB0aGlzLnNlbGVjdGVkSW5kZXggPSB0YWJIZWFkZXIuZm9jdXNJbmRleCA9IGluZGV4O1xuICAgIH1cbiAgfVxuXG4gIC8qKiBSZXRyaWV2ZXMgdGhlIHRhYmluZGV4IGZvciB0aGUgdGFiLiAqL1xuICBfZ2V0VGFiSW5kZXgodGFiOiBNYXRUYWIsIGlkeDogbnVtYmVyKTogbnVtYmVyIHwgbnVsbCB7XG4gICAgaWYgKHRhYi5kaXNhYmxlZCkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLnNlbGVjdGVkSW5kZXggPT09IGlkeCA/IDAgOiAtMTtcbiAgfVxuXG4gIC8qKiBDYWxsYmFjayBmb3Igd2hlbiB0aGUgZm9jdXNlZCBzdGF0ZSBvZiBhIHRhYiBoYXMgY2hhbmdlZC4gKi9cbiAgX3RhYkZvY3VzQ2hhbmdlZChmb2N1c09yaWdpbjogRm9jdXNPcmlnaW4sIGluZGV4OiBudW1iZXIpIHtcbiAgICAvLyBNb3VzZS90b3VjaCBmb2N1cyBoYXBwZW5zIGR1cmluZyB0aGUgYG1vdXNlZG93bmAvYHRvdWNoc3RhcnRgIHBoYXNlIHdoaWNoXG4gICAgLy8gY2FuIGNhdXNlIHRoZSB0YWIgdG8gYmUgbW92ZWQgb3V0IGZyb20gdW5kZXIgdGhlIHBvaW50ZXIsIGludGVycnVwdGluZyB0aGVcbiAgICAvLyBjbGljayBzZXF1ZW5jZSAoc2VlICMyMTg5OCkuIFdlIGRvbid0IG5lZWQgdG8gc2Nyb2xsIHRoZSB0YWIgaW50byB2aWV3IGZvclxuICAgIC8vIHN1Y2ggY2FzZXMgYW55d2F5LCBiZWNhdXNlIGl0IHdpbGwgYmUgZG9uZSB3aGVuIHRoZSB0YWIgYmVjb21lcyBzZWxlY3RlZC5cbiAgICBpZiAoZm9jdXNPcmlnaW4gJiYgZm9jdXNPcmlnaW4gIT09ICdtb3VzZScgJiYgZm9jdXNPcmlnaW4gIT09ICd0b3VjaCcpIHtcbiAgICAgIHRoaXMuX3RhYkhlYWRlci5mb2N1c0luZGV4ID0gaW5kZXg7XG4gICAgfVxuICB9XG5cbiAgc3RhdGljIG5nQWNjZXB0SW5wdXRUeXBlX2R5bmFtaWNIZWlnaHQ6IEJvb2xlYW5JbnB1dDtcbiAgc3RhdGljIG5nQWNjZXB0SW5wdXRUeXBlX2FuaW1hdGlvbkR1cmF0aW9uOiBOdW1iZXJJbnB1dDtcbiAgc3RhdGljIG5nQWNjZXB0SW5wdXRUeXBlX3NlbGVjdGVkSW5kZXg6IE51bWJlcklucHV0O1xuICBzdGF0aWMgbmdBY2NlcHRJbnB1dFR5cGVfZGlzYWJsZVJpcHBsZTogQm9vbGVhbklucHV0O1xuICBzdGF0aWMgbmdBY2NlcHRJbnB1dFR5cGVfY29udGVudFRhYkluZGV4OiBOdW1iZXJJbnB1dDtcbn1cblxuLyoqXG4gKiBNYXRlcmlhbCBkZXNpZ24gdGFiLWdyb3VwIGNvbXBvbmVudC4gU3VwcG9ydHMgYmFzaWMgdGFiIHBhaXJzIChsYWJlbCArIGNvbnRlbnQpIGFuZCBpbmNsdWRlc1xuICogYW5pbWF0ZWQgaW5rLWJhciwga2V5Ym9hcmQgbmF2aWdhdGlvbiwgYW5kIHNjcmVlbiByZWFkZXIuXG4gKiBTZWU6IGh0dHBzOi8vbWF0ZXJpYWwuaW8vZGVzaWduL2NvbXBvbmVudHMvdGFicy5odG1sXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ21hdC10YWItZ3JvdXAnLFxuICBleHBvcnRBczogJ21hdFRhYkdyb3VwJyxcbiAgdGVtcGxhdGVVcmw6ICd0YWItZ3JvdXAuaHRtbCcsXG4gIHN0eWxlVXJsczogWyd0YWItZ3JvdXAuY3NzJ10sXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTp2YWxpZGF0ZS1kZWNvcmF0b3JzXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuRGVmYXVsdCxcbiAgaW5wdXRzOiBbJ2NvbG9yJywgJ2Rpc2FibGVSaXBwbGUnXSxcbiAgcHJvdmlkZXJzOiBbe1xuICAgIHByb3ZpZGU6IE1BVF9UQUJfR1JPVVAsXG4gICAgdXNlRXhpc3Rpbmc6IE1hdFRhYkdyb3VwXG4gIH1dLFxuICBob3N0OiB7XG4gICAgJ2NsYXNzJzogJ21hdC10YWItZ3JvdXAnLFxuICAgICdbY2xhc3MubWF0LXRhYi1ncm91cC1keW5hbWljLWhlaWdodF0nOiAnZHluYW1pY0hlaWdodCcsXG4gICAgJ1tjbGFzcy5tYXQtdGFiLWdyb3VwLWludmVydGVkLWhlYWRlcl0nOiAnaGVhZGVyUG9zaXRpb24gPT09IFwiYmVsb3dcIicsXG4gIH0sXG59KVxuZXhwb3J0IGNsYXNzIE1hdFRhYkdyb3VwIGV4dGVuZHMgX01hdFRhYkdyb3VwQmFzZSB7XG4gIEBDb250ZW50Q2hpbGRyZW4oTWF0VGFiLCB7ZGVzY2VuZGFudHM6IHRydWV9KSBfYWxsVGFiczogUXVlcnlMaXN0PE1hdFRhYj47XG4gIEBWaWV3Q2hpbGQoJ3RhYkJvZHlXcmFwcGVyJykgX3RhYkJvZHlXcmFwcGVyOiBFbGVtZW50UmVmO1xuICBAVmlld0NoaWxkKCd0YWJIZWFkZXInKSBfdGFiSGVhZGVyOiBNYXRUYWJHcm91cEJhc2VIZWFkZXI7XG5cbiAgY29uc3RydWN0b3IoZWxlbWVudFJlZjogRWxlbWVudFJlZixcbiAgICAgICAgICAgICAgY2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmLFxuICAgICAgICAgICAgICBASW5qZWN0KE1BVF9UQUJTX0NPTkZJRykgQE9wdGlvbmFsKCkgZGVmYXVsdENvbmZpZz86IE1hdFRhYnNDb25maWcsXG4gICAgICAgICAgICAgIEBPcHRpb25hbCgpIEBJbmplY3QoQU5JTUFUSU9OX01PRFVMRV9UWVBFKSBhbmltYXRpb25Nb2RlPzogc3RyaW5nKSB7XG4gICAgc3VwZXIoZWxlbWVudFJlZiwgY2hhbmdlRGV0ZWN0b3JSZWYsIGRlZmF1bHRDb25maWcsIGFuaW1hdGlvbk1vZGUpO1xuICB9XG59XG4iLCI8bWF0LXRhYi1oZWFkZXIgI3RhYkhlYWRlclxuICAgICAgICAgICAgICAgW3NlbGVjdGVkSW5kZXhdPVwic2VsZWN0ZWRJbmRleCB8fCAwXCJcbiAgICAgICAgICAgICAgIFtkaXNhYmxlUmlwcGxlXT1cImRpc2FibGVSaXBwbGVcIlxuICAgICAgICAgICAgICAgW2Rpc2FibGVQYWdpbmF0aW9uXT1cImRpc2FibGVQYWdpbmF0aW9uXCJcbiAgICAgICAgICAgICAgIChpbmRleEZvY3VzZWQpPVwiX2ZvY3VzQ2hhbmdlZCgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgIChzZWxlY3RGb2N1c2VkSW5kZXgpPVwic2VsZWN0ZWRJbmRleCA9ICRldmVudFwiPlxuICA8ZGl2IGNsYXNzPVwibWF0LXRhYi1sYWJlbCBtYXQtZm9jdXMtaW5kaWNhdG9yXCIgcm9sZT1cInRhYlwiIG1hdFRhYkxhYmVsV3JhcHBlciBtYXQtcmlwcGxlIGNka01vbml0b3JFbGVtZW50Rm9jdXNcbiAgICAgICAqbmdGb3I9XCJsZXQgdGFiIG9mIF90YWJzOyBsZXQgaSA9IGluZGV4XCJcbiAgICAgICBbaWRdPVwiX2dldFRhYkxhYmVsSWQoaSlcIlxuICAgICAgIFthdHRyLnRhYkluZGV4XT1cIl9nZXRUYWJJbmRleCh0YWIsIGkpXCJcbiAgICAgICBbYXR0ci5hcmlhLXBvc2luc2V0XT1cImkgKyAxXCJcbiAgICAgICBbYXR0ci5hcmlhLXNldHNpemVdPVwiX3RhYnMubGVuZ3RoXCJcbiAgICAgICBbYXR0ci5hcmlhLWNvbnRyb2xzXT1cIl9nZXRUYWJDb250ZW50SWQoaSlcIlxuICAgICAgIFthdHRyLmFyaWEtc2VsZWN0ZWRdPVwic2VsZWN0ZWRJbmRleCA9PSBpXCJcbiAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cInRhYi5hcmlhTGFiZWwgfHwgbnVsbFwiXG4gICAgICAgW2F0dHIuYXJpYS1sYWJlbGxlZGJ5XT1cIighdGFiLmFyaWFMYWJlbCAmJiB0YWIuYXJpYUxhYmVsbGVkYnkpID8gdGFiLmFyaWFMYWJlbGxlZGJ5IDogbnVsbFwiXG4gICAgICAgW2NsYXNzLm1hdC10YWItbGFiZWwtYWN0aXZlXT1cInNlbGVjdGVkSW5kZXggPT0gaVwiXG4gICAgICAgW2Rpc2FibGVkXT1cInRhYi5kaXNhYmxlZFwiXG4gICAgICAgW21hdFJpcHBsZURpc2FibGVkXT1cInRhYi5kaXNhYmxlZCB8fCBkaXNhYmxlUmlwcGxlXCJcbiAgICAgICAoY2xpY2spPVwiX2hhbmRsZUNsaWNrKHRhYiwgdGFiSGVhZGVyLCBpKVwiXG4gICAgICAgKGNka0ZvY3VzQ2hhbmdlKT1cIl90YWJGb2N1c0NoYW5nZWQoJGV2ZW50LCBpKVwiPlxuXG5cbiAgICA8ZGl2IGNsYXNzPVwibWF0LXRhYi1sYWJlbC1jb250ZW50XCI+XG4gICAgICA8IS0tIElmIHRoZXJlIGlzIGEgbGFiZWwgdGVtcGxhdGUsIHVzZSBpdC4gLS0+XG4gICAgICA8bmctdGVtcGxhdGUgW25nSWZdPVwidGFiLnRlbXBsYXRlTGFiZWxcIj5cbiAgICAgICAgPG5nLXRlbXBsYXRlIFtjZGtQb3J0YWxPdXRsZXRdPVwidGFiLnRlbXBsYXRlTGFiZWxcIj48L25nLXRlbXBsYXRlPlxuICAgICAgPC9uZy10ZW1wbGF0ZT5cblxuICAgICAgPCEtLSBJZiB0aGVyZSBpcyBub3QgYSBsYWJlbCB0ZW1wbGF0ZSwgZmFsbCBiYWNrIHRvIHRoZSB0ZXh0IGxhYmVsLiAtLT5cbiAgICAgIDxuZy10ZW1wbGF0ZSBbbmdJZl09XCIhdGFiLnRlbXBsYXRlTGFiZWxcIj57e3RhYi50ZXh0TGFiZWx9fTwvbmctdGVtcGxhdGU+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9tYXQtdGFiLWhlYWRlcj5cblxuPGRpdlxuICBjbGFzcz1cIm1hdC10YWItYm9keS13cmFwcGVyXCJcbiAgW2NsYXNzLl9tYXQtYW5pbWF0aW9uLW5vb3BhYmxlXT1cIl9hbmltYXRpb25Nb2RlID09PSAnTm9vcEFuaW1hdGlvbnMnXCJcbiAgI3RhYkJvZHlXcmFwcGVyPlxuICA8bWF0LXRhYi1ib2R5IHJvbGU9XCJ0YWJwYW5lbFwiXG4gICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgdGFiIG9mIF90YWJzOyBsZXQgaSA9IGluZGV4XCJcbiAgICAgICAgICAgICAgIFtpZF09XCJfZ2V0VGFiQ29udGVudElkKGkpXCJcbiAgICAgICAgICAgICAgIFthdHRyLnRhYmluZGV4XT1cIihjb250ZW50VGFiSW5kZXggIT0gbnVsbCAmJiBzZWxlY3RlZEluZGV4ID09PSBpKSA/IGNvbnRlbnRUYWJJbmRleCA6IG51bGxcIlxuICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbGxlZGJ5XT1cIl9nZXRUYWJMYWJlbElkKGkpXCJcbiAgICAgICAgICAgICAgIFtjbGFzcy5tYXQtdGFiLWJvZHktYWN0aXZlXT1cInNlbGVjdGVkSW5kZXggPT09IGlcIlxuICAgICAgICAgICAgICAgW2NvbnRlbnRdPVwidGFiLmNvbnRlbnQhXCJcbiAgICAgICAgICAgICAgIFtwb3NpdGlvbl09XCJ0YWIucG9zaXRpb24hXCJcbiAgICAgICAgICAgICAgIFtvcmlnaW5dPVwidGFiLm9yaWdpblwiXG4gICAgICAgICAgICAgICBbYW5pbWF0aW9uRHVyYXRpb25dPVwiYW5pbWF0aW9uRHVyYXRpb25cIlxuICAgICAgICAgICAgICAgKF9vbkNlbnRlcmVkKT1cIl9yZW1vdmVUYWJCb2R5V3JhcHBlckhlaWdodCgpXCJcbiAgICAgICAgICAgICAgIChfb25DZW50ZXJpbmcpPVwiX3NldFRhYkJvZHlXcmFwcGVySGVpZ2h0KCRldmVudClcIj5cbiAgPC9tYXQtdGFiLWJvZHk+XG48L2Rpdj5cbiJdfQ==
@@ -0,0 +1,101 @@
1
+ /**
2
+ * @license
3
+ * Copyright Google LLC All Rights Reserved.
4
+ *
5
+ * Use of this source code is governed by an MIT-style license that can be
6
+ * found in the LICENSE file at https://angular.io/license
7
+ */
8
+ import { Directionality } from '@angular/cdk/bidi';
9
+ import { ViewportRuler } from '@angular/cdk/scrolling';
10
+ import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ContentChildren, ElementRef, NgZone, Optional, QueryList, ViewChild, ViewEncapsulation, Input, Inject, Directive, } from '@angular/core';
11
+ import { ANIMATION_MODULE_TYPE } from '@angular/platform-browser/animations';
12
+ import { coerceBooleanProperty } from '@angular/cdk/coercion';
13
+ import { MatInkBar } from './ink-bar';
14
+ import { MatTabLabelWrapper } from './tab-label-wrapper';
15
+ import { Platform } from '@angular/cdk/platform';
16
+ import { MatPaginatedTabHeader } from './paginated-tab-header';
17
+ import * as i0 from "@angular/core";
18
+ import * as i1 from "@angular/cdk/scrolling";
19
+ import * as i2 from "@angular/cdk/bidi";
20
+ import * as i3 from "@angular/cdk/platform";
21
+ import * as i4 from "@angular/material/core";
22
+ import * as i5 from "@angular/cdk/observers";
23
+ import * as i6 from "./ink-bar";
24
+ /**
25
+ * Base class with all of the `MatTabHeader` functionality.
26
+ * @docs-private
27
+ */
28
+ export class _MatTabHeaderBase extends MatPaginatedTabHeader {
29
+ constructor(elementRef, changeDetectorRef, viewportRuler, dir, ngZone, platform, animationMode) {
30
+ super(elementRef, changeDetectorRef, viewportRuler, dir, ngZone, platform, animationMode);
31
+ this._disableRipple = false;
32
+ }
33
+ /** Whether the ripple effect is disabled or not. */
34
+ get disableRipple() { return this._disableRipple; }
35
+ set disableRipple(value) { this._disableRipple = coerceBooleanProperty(value); }
36
+ _itemSelected(event) {
37
+ event.preventDefault();
38
+ }
39
+ }
40
+ _MatTabHeaderBase.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.0-next.15", ngImport: i0, type: _MatTabHeaderBase, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i1.ViewportRuler }, { token: i2.Directionality, optional: true }, { token: i0.NgZone }, { token: i3.Platform }, { token: ANIMATION_MODULE_TYPE, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
41
+ _MatTabHeaderBase.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.0-next.15", type: _MatTabHeaderBase, inputs: { disableRipple: "disableRipple" }, usesInheritance: true, ngImport: i0 });
42
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0-next.15", ngImport: i0, type: _MatTabHeaderBase, decorators: [{
43
+ type: Directive
44
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i1.ViewportRuler }, { type: i2.Directionality, decorators: [{
45
+ type: Optional
46
+ }] }, { type: i0.NgZone }, { type: i3.Platform }, { type: undefined, decorators: [{
47
+ type: Optional
48
+ }, {
49
+ type: Inject,
50
+ args: [ANIMATION_MODULE_TYPE]
51
+ }] }]; }, propDecorators: { disableRipple: [{
52
+ type: Input
53
+ }] } });
54
+ /**
55
+ * The header of the tab group which displays a list of all the tabs in the tab group. Includes
56
+ * an ink bar that follows the currently selected tab. When the tabs list's width exceeds the
57
+ * width of the header container, then arrows will be displayed to allow the user to scroll
58
+ * left and right across the header.
59
+ * @docs-private
60
+ */
61
+ export class MatTabHeader extends _MatTabHeaderBase {
62
+ constructor(elementRef, changeDetectorRef, viewportRuler, dir, ngZone, platform, animationMode) {
63
+ super(elementRef, changeDetectorRef, viewportRuler, dir, ngZone, platform, animationMode);
64
+ }
65
+ }
66
+ MatTabHeader.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.0-next.15", ngImport: i0, type: MatTabHeader, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i1.ViewportRuler }, { token: i2.Directionality, optional: true }, { token: i0.NgZone }, { token: i3.Platform }, { token: ANIMATION_MODULE_TYPE, optional: true }], target: i0.ɵɵFactoryTarget.Component });
67
+ MatTabHeader.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.0-next.15", type: MatTabHeader, selector: "mat-tab-header", inputs: { selectedIndex: "selectedIndex" }, outputs: { selectFocusedIndex: "selectFocusedIndex", indexFocused: "indexFocused" }, host: { properties: { "class.mat-tab-header-pagination-controls-enabled": "_showPaginationControls", "class.mat-tab-header-rtl": "_getLayoutDirection() == 'rtl'" }, classAttribute: "mat-tab-header" }, queries: [{ propertyName: "_items", predicate: MatTabLabelWrapper }], viewQueries: [{ propertyName: "_inkBar", first: true, predicate: MatInkBar, descendants: true, static: true }, { propertyName: "_tabListContainer", first: true, predicate: ["tabListContainer"], descendants: true, static: true }, { propertyName: "_tabList", first: true, predicate: ["tabList"], descendants: true, static: true }, { propertyName: "_nextPaginator", first: true, predicate: ["nextPaginator"], descendants: true }, { propertyName: "_previousPaginator", first: true, predicate: ["previousPaginator"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"mat-tab-header-pagination mat-tab-header-pagination-before mat-elevation-z4\"\n #previousPaginator\n aria-hidden=\"true\"\n mat-ripple [matRippleDisabled]=\"_disableScrollBefore || disableRipple\"\n [class.mat-tab-header-pagination-disabled]=\"_disableScrollBefore\"\n (click)=\"_handlePaginatorClick('before')\"\n (mousedown)=\"_handlePaginatorPress('before', $event)\"\n (touchend)=\"_stopInterval()\">\n <div class=\"mat-tab-header-pagination-chevron\"></div>\n</div>\n\n<div class=\"mat-tab-label-container\" #tabListContainer (keydown)=\"_handleKeydown($event)\">\n <div\n #tabList\n class=\"mat-tab-list\"\n [class._mat-animation-noopable]=\"_animationMode === 'NoopAnimations'\"\n role=\"tablist\"\n (cdkObserveContent)=\"_onContentChanges()\">\n <div class=\"mat-tab-labels\">\n <ng-content></ng-content>\n </div>\n <mat-ink-bar></mat-ink-bar>\n </div>\n</div>\n\n<div class=\"mat-tab-header-pagination mat-tab-header-pagination-after mat-elevation-z4\"\n #nextPaginator\n aria-hidden=\"true\"\n mat-ripple [matRippleDisabled]=\"_disableScrollAfter || disableRipple\"\n [class.mat-tab-header-pagination-disabled]=\"_disableScrollAfter\"\n (mousedown)=\"_handlePaginatorPress('after', $event)\"\n (click)=\"_handlePaginatorClick('after')\"\n (touchend)=\"_stopInterval()\">\n <div class=\"mat-tab-header-pagination-chevron\"></div>\n</div>\n", styles: [".mat-tab-header{display:flex;overflow:hidden;position:relative;flex-shrink:0}.mat-tab-header-pagination{-webkit-user-select:none;-moz-user-select:none;user-select:none;position:relative;display:none;justify-content:center;align-items:center;min-width:32px;cursor:pointer;z-index:2;-webkit-tap-highlight-color:transparent;touch-action:none}.mat-tab-header-pagination-controls-enabled .mat-tab-header-pagination{display:flex}.mat-tab-header-pagination-before,.mat-tab-header-rtl .mat-tab-header-pagination-after{padding-left:4px}.mat-tab-header-pagination-before .mat-tab-header-pagination-chevron,.mat-tab-header-rtl .mat-tab-header-pagination-after .mat-tab-header-pagination-chevron{transform:rotate(-135deg)}.mat-tab-header-rtl .mat-tab-header-pagination-before,.mat-tab-header-pagination-after{padding-right:4px}.mat-tab-header-rtl .mat-tab-header-pagination-before .mat-tab-header-pagination-chevron,.mat-tab-header-pagination-after .mat-tab-header-pagination-chevron{transform:rotate(45deg)}.mat-tab-header-pagination-chevron{border-style:solid;border-width:2px 2px 0 0;content:\"\";height:8px;width:8px}.mat-tab-header-pagination-disabled{box-shadow:none;cursor:default}.mat-tab-list{flex-grow:1;position:relative;transition:transform 500ms cubic-bezier(0.35, 0, 0.25, 1)}.mat-ink-bar{position:absolute;bottom:0;height:2px;transition:500ms cubic-bezier(0.35, 0, 0.25, 1)}._mat-animation-noopable.mat-ink-bar{transition:none;animation:none}.mat-tab-group-inverted-header .mat-ink-bar{bottom:auto;top:0}.cdk-high-contrast-active .mat-ink-bar{outline:solid 2px;height:0}.mat-tab-labels{display:flex}[mat-align-tabs=center]>.mat-tab-header .mat-tab-labels{justify-content:center}[mat-align-tabs=end]>.mat-tab-header .mat-tab-labels{justify-content:flex-end}.mat-tab-label-container{display:flex;flex-grow:1;overflow:hidden;z-index:1}._mat-animation-noopable.mat-tab-list{transition:none;animation:none}.mat-tab-label{height:48px;padding:0 24px;cursor:pointer;box-sizing:border-box;opacity:.6;min-width:160px;text-align:center;display:inline-flex;justify-content:center;align-items:center;white-space:nowrap;position:relative}.mat-tab-label:focus{outline:none}.mat-tab-label:focus:not(.mat-tab-disabled){opacity:1}.cdk-high-contrast-active .mat-tab-label:focus{outline:dotted 2px;outline-offset:-2px}.mat-tab-label.mat-tab-disabled{cursor:default}.cdk-high-contrast-active .mat-tab-label.mat-tab-disabled{opacity:.5}.mat-tab-label .mat-tab-label-content{display:inline-flex;justify-content:center;align-items:center;white-space:nowrap}.cdk-high-contrast-active .mat-tab-label{opacity:1}@media(max-width: 599px){.mat-tab-label{min-width:72px}}\n"], directives: [{ type: i4.MatRipple, selector: "[mat-ripple], [matRipple]", inputs: ["matRippleColor", "matRippleUnbounded", "matRippleCentered", "matRippleRadius", "matRippleAnimation", "matRippleDisabled", "matRippleTrigger"], exportAs: ["matRipple"] }, { type: i5.CdkObserveContent, selector: "[cdkObserveContent]", inputs: ["cdkObserveContentDisabled", "debounce"], outputs: ["cdkObserveContent"], exportAs: ["cdkObserveContent"] }, { type: i6.MatInkBar, selector: "mat-ink-bar" }], changeDetection: i0.ChangeDetectionStrategy.Default, encapsulation: i0.ViewEncapsulation.None });
68
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0-next.15", ngImport: i0, type: MatTabHeader, decorators: [{
69
+ type: Component,
70
+ args: [{ selector: 'mat-tab-header', inputs: ['selectedIndex'], outputs: ['selectFocusedIndex', 'indexFocused'], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.Default, host: {
71
+ 'class': 'mat-tab-header',
72
+ '[class.mat-tab-header-pagination-controls-enabled]': '_showPaginationControls',
73
+ '[class.mat-tab-header-rtl]': "_getLayoutDirection() == 'rtl'",
74
+ }, template: "<div class=\"mat-tab-header-pagination mat-tab-header-pagination-before mat-elevation-z4\"\n #previousPaginator\n aria-hidden=\"true\"\n mat-ripple [matRippleDisabled]=\"_disableScrollBefore || disableRipple\"\n [class.mat-tab-header-pagination-disabled]=\"_disableScrollBefore\"\n (click)=\"_handlePaginatorClick('before')\"\n (mousedown)=\"_handlePaginatorPress('before', $event)\"\n (touchend)=\"_stopInterval()\">\n <div class=\"mat-tab-header-pagination-chevron\"></div>\n</div>\n\n<div class=\"mat-tab-label-container\" #tabListContainer (keydown)=\"_handleKeydown($event)\">\n <div\n #tabList\n class=\"mat-tab-list\"\n [class._mat-animation-noopable]=\"_animationMode === 'NoopAnimations'\"\n role=\"tablist\"\n (cdkObserveContent)=\"_onContentChanges()\">\n <div class=\"mat-tab-labels\">\n <ng-content></ng-content>\n </div>\n <mat-ink-bar></mat-ink-bar>\n </div>\n</div>\n\n<div class=\"mat-tab-header-pagination mat-tab-header-pagination-after mat-elevation-z4\"\n #nextPaginator\n aria-hidden=\"true\"\n mat-ripple [matRippleDisabled]=\"_disableScrollAfter || disableRipple\"\n [class.mat-tab-header-pagination-disabled]=\"_disableScrollAfter\"\n (mousedown)=\"_handlePaginatorPress('after', $event)\"\n (click)=\"_handlePaginatorClick('after')\"\n (touchend)=\"_stopInterval()\">\n <div class=\"mat-tab-header-pagination-chevron\"></div>\n</div>\n", styles: [".mat-tab-header{display:flex;overflow:hidden;position:relative;flex-shrink:0}.mat-tab-header-pagination{-webkit-user-select:none;-moz-user-select:none;user-select:none;position:relative;display:none;justify-content:center;align-items:center;min-width:32px;cursor:pointer;z-index:2;-webkit-tap-highlight-color:transparent;touch-action:none}.mat-tab-header-pagination-controls-enabled .mat-tab-header-pagination{display:flex}.mat-tab-header-pagination-before,.mat-tab-header-rtl .mat-tab-header-pagination-after{padding-left:4px}.mat-tab-header-pagination-before .mat-tab-header-pagination-chevron,.mat-tab-header-rtl .mat-tab-header-pagination-after .mat-tab-header-pagination-chevron{transform:rotate(-135deg)}.mat-tab-header-rtl .mat-tab-header-pagination-before,.mat-tab-header-pagination-after{padding-right:4px}.mat-tab-header-rtl .mat-tab-header-pagination-before .mat-tab-header-pagination-chevron,.mat-tab-header-pagination-after .mat-tab-header-pagination-chevron{transform:rotate(45deg)}.mat-tab-header-pagination-chevron{border-style:solid;border-width:2px 2px 0 0;content:\"\";height:8px;width:8px}.mat-tab-header-pagination-disabled{box-shadow:none;cursor:default}.mat-tab-list{flex-grow:1;position:relative;transition:transform 500ms cubic-bezier(0.35, 0, 0.25, 1)}.mat-ink-bar{position:absolute;bottom:0;height:2px;transition:500ms cubic-bezier(0.35, 0, 0.25, 1)}._mat-animation-noopable.mat-ink-bar{transition:none;animation:none}.mat-tab-group-inverted-header .mat-ink-bar{bottom:auto;top:0}.cdk-high-contrast-active .mat-ink-bar{outline:solid 2px;height:0}.mat-tab-labels{display:flex}[mat-align-tabs=center]>.mat-tab-header .mat-tab-labels{justify-content:center}[mat-align-tabs=end]>.mat-tab-header .mat-tab-labels{justify-content:flex-end}.mat-tab-label-container{display:flex;flex-grow:1;overflow:hidden;z-index:1}._mat-animation-noopable.mat-tab-list{transition:none;animation:none}.mat-tab-label{height:48px;padding:0 24px;cursor:pointer;box-sizing:border-box;opacity:.6;min-width:160px;text-align:center;display:inline-flex;justify-content:center;align-items:center;white-space:nowrap;position:relative}.mat-tab-label:focus{outline:none}.mat-tab-label:focus:not(.mat-tab-disabled){opacity:1}.cdk-high-contrast-active .mat-tab-label:focus{outline:dotted 2px;outline-offset:-2px}.mat-tab-label.mat-tab-disabled{cursor:default}.cdk-high-contrast-active .mat-tab-label.mat-tab-disabled{opacity:.5}.mat-tab-label .mat-tab-label-content{display:inline-flex;justify-content:center;align-items:center;white-space:nowrap}.cdk-high-contrast-active .mat-tab-label{opacity:1}@media(max-width: 599px){.mat-tab-label{min-width:72px}}\n"] }]
75
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i1.ViewportRuler }, { type: i2.Directionality, decorators: [{
76
+ type: Optional
77
+ }] }, { type: i0.NgZone }, { type: i3.Platform }, { type: undefined, decorators: [{
78
+ type: Optional
79
+ }, {
80
+ type: Inject,
81
+ args: [ANIMATION_MODULE_TYPE]
82
+ }] }]; }, propDecorators: { _items: [{
83
+ type: ContentChildren,
84
+ args: [MatTabLabelWrapper, { descendants: false }]
85
+ }], _inkBar: [{
86
+ type: ViewChild,
87
+ args: [MatInkBar, { static: true }]
88
+ }], _tabListContainer: [{
89
+ type: ViewChild,
90
+ args: ['tabListContainer', { static: true }]
91
+ }], _tabList: [{
92
+ type: ViewChild,
93
+ args: ['tabList', { static: true }]
94
+ }], _nextPaginator: [{
95
+ type: ViewChild,
96
+ args: ['nextPaginator']
97
+ }], _previousPaginator: [{
98
+ type: ViewChild,
99
+ args: ['previousPaginator']
100
+ }] } });
101
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFiLWhlYWRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9tYXRlcmlhbC90YWJzL3RhYi1oZWFkZXIudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbWF0ZXJpYWwvdGFicy90YWItaGVhZGVyLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HO0FBRUgsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLG1CQUFtQixDQUFDO0FBQ2pELE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQztBQUNyRCxPQUFPLEVBR0wsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsZUFBZSxFQUNmLFVBQVUsRUFDVixNQUFNLEVBRU4sUUFBUSxFQUNSLFNBQVMsRUFDVCxTQUFTLEVBQ1QsaUJBQWlCLEVBRWpCLEtBQUssRUFDTCxNQUFNLEVBQ04sU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxxQkFBcUIsRUFBQyxNQUFNLHNDQUFzQyxDQUFDO0FBQzNFLE9BQU8sRUFBZSxxQkFBcUIsRUFBQyxNQUFNLHVCQUF1QixDQUFDO0FBQzFFLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxXQUFXLENBQUM7QUFDcEMsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFDdkQsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLHVCQUF1QixDQUFDO0FBQy9DLE9BQU8sRUFBQyxxQkFBcUIsRUFBQyxNQUFNLHdCQUF3QixDQUFDOzs7Ozs7OztBQUU3RDs7O0dBR0c7QUFFSCxNQUFNLE9BQWdCLGlCQUFrQixTQUFRLHFCQUFxQjtJQVNuRSxZQUFZLFVBQXNCLEVBQ3RCLGlCQUFvQyxFQUNwQyxhQUE0QixFQUNoQixHQUFtQixFQUMvQixNQUFjLEVBQ2QsUUFBa0IsRUFDeUIsYUFBc0I7UUFDM0UsS0FBSyxDQUFDLFVBQVUsRUFBRSxpQkFBaUIsRUFBRSxhQUFhLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsYUFBYSxDQUFDLENBQUM7UUFUcEYsbUJBQWMsR0FBWSxLQUFLLENBQUM7SUFVeEMsQ0FBQztJQWRELG9EQUFvRDtJQUNwRCxJQUNJLGFBQWEsS0FBSyxPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDO0lBQ25ELElBQUksYUFBYSxDQUFDLEtBQVUsSUFBSSxJQUFJLENBQUMsY0FBYyxHQUFHLHFCQUFxQixDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztJQWEzRSxhQUFhLENBQUMsS0FBb0I7UUFDMUMsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO0lBQ3pCLENBQUM7O3NIQXJCbUIsaUJBQWlCLHNNQWVMLHFCQUFxQjswR0FmakMsaUJBQWlCO21HQUFqQixpQkFBaUI7a0JBRHRDLFNBQVM7OzBCQWFLLFFBQVE7OzBCQUdSLFFBQVE7OzBCQUFJLE1BQU07MkJBQUMscUJBQXFCOzRDQVZqRCxhQUFhO3NCQURoQixLQUFLOztBQW9CUjs7Ozs7O0dBTUc7QUFnQkgsTUFBTSxPQUFPLFlBQWEsU0FBUSxpQkFBaUI7SUFRakQsWUFBWSxVQUFzQixFQUN0QixpQkFBb0MsRUFDcEMsYUFBNEIsRUFDaEIsR0FBbUIsRUFDL0IsTUFBYyxFQUNkLFFBQWtCLEVBQ3lCLGFBQXNCO1FBQzNFLEtBQUssQ0FBQyxVQUFVLEVBQUUsaUJBQWlCLEVBQUUsYUFBYSxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLGFBQWEsQ0FBQyxDQUFDO0lBQzVGLENBQUM7O2lIQWhCVSxZQUFZLHNNQWNTLHFCQUFxQjtxR0FkMUMsWUFBWSx1WkFDTixrQkFBa0Isc0VBQ3hCLFNBQVMsMmZDekZ0Qiw0NkNBbUNBO21HRG9EYSxZQUFZO2tCQWZ4QixTQUFTOytCQUNFLGdCQUFnQixVQUdsQixDQUFDLGVBQWUsQ0FBQyxXQUNoQixDQUFDLG9CQUFvQixFQUFFLGNBQWMsQ0FBQyxpQkFDaEMsaUJBQWlCLENBQUMsSUFBSSxtQkFFcEIsdUJBQXVCLENBQUMsT0FBTyxRQUMxQzt3QkFDSixPQUFPLEVBQUUsZ0JBQWdCO3dCQUN6QixvREFBb0QsRUFBRSx5QkFBeUI7d0JBQy9FLDRCQUE0QixFQUFFLGdDQUFnQztxQkFDL0Q7OzBCQWFZLFFBQVE7OzBCQUdSLFFBQVE7OzBCQUFJLE1BQU07MkJBQUMscUJBQXFCOzRDQWJNLE1BQU07c0JBQWhFLGVBQWU7dUJBQUMsa0JBQWtCLEVBQUUsRUFBQyxXQUFXLEVBQUUsS0FBSyxFQUFDO2dCQUNuQixPQUFPO3NCQUE1QyxTQUFTO3VCQUFDLFNBQVMsRUFBRSxFQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUM7Z0JBQ1csaUJBQWlCO3NCQUEvRCxTQUFTO3VCQUFDLGtCQUFrQixFQUFFLEVBQUMsTUFBTSxFQUFFLElBQUksRUFBQztnQkFDUCxRQUFRO3NCQUE3QyxTQUFTO3VCQUFDLFNBQVMsRUFBRSxFQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUM7Z0JBQ1IsY0FBYztzQkFBekMsU0FBUzt1QkFBQyxlQUFlO2dCQUNNLGtCQUFrQjtzQkFBakQsU0FBUzt1QkFBQyxtQkFBbUIiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cblxuaW1wb3J0IHtEaXJlY3Rpb25hbGl0eX0gZnJvbSAnQGFuZ3VsYXIvY2RrL2JpZGknO1xuaW1wb3J0IHtWaWV3cG9ydFJ1bGVyfSBmcm9tICdAYW5ndWxhci9jZGsvc2Nyb2xsaW5nJztcbmltcG9ydCB7XG4gIEFmdGVyQ29udGVudENoZWNrZWQsXG4gIEFmdGVyQ29udGVudEluaXQsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBDb250ZW50Q2hpbGRyZW4sXG4gIEVsZW1lbnRSZWYsXG4gIE5nWm9uZSxcbiAgT25EZXN0cm95LFxuICBPcHRpb25hbCxcbiAgUXVlcnlMaXN0LFxuICBWaWV3Q2hpbGQsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxuICBBZnRlclZpZXdJbml0LFxuICBJbnB1dCxcbiAgSW5qZWN0LFxuICBEaXJlY3RpdmUsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtBTklNQVRJT05fTU9EVUxFX1RZUEV9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXIvYW5pbWF0aW9ucyc7XG5pbXBvcnQge0Jvb2xlYW5JbnB1dCwgY29lcmNlQm9vbGVhblByb3BlcnR5fSBmcm9tICdAYW5ndWxhci9jZGsvY29lcmNpb24nO1xuaW1wb3J0IHtNYXRJbmtCYXJ9IGZyb20gJy4vaW5rLWJhcic7XG5pbXBvcnQge01hdFRhYkxhYmVsV3JhcHBlcn0gZnJvbSAnLi90YWItbGFiZWwtd3JhcHBlcic7XG5pbXBvcnQge1BsYXRmb3JtfSBmcm9tICdAYW5ndWxhci9jZGsvcGxhdGZvcm0nO1xuaW1wb3J0IHtNYXRQYWdpbmF0ZWRUYWJIZWFkZXJ9IGZyb20gJy4vcGFnaW5hdGVkLXRhYi1oZWFkZXInO1xuXG4vKipcbiAqIEJhc2UgY2xhc3Mgd2l0aCBhbGwgb2YgdGhlIGBNYXRUYWJIZWFkZXJgIGZ1bmN0aW9uYWxpdHkuXG4gKiBAZG9jcy1wcml2YXRlXG4gKi9cbkBEaXJlY3RpdmUoKVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIF9NYXRUYWJIZWFkZXJCYXNlIGV4dGVuZHMgTWF0UGFnaW5hdGVkVGFiSGVhZGVyIGltcGxlbWVudHNcbiAgQWZ0ZXJDb250ZW50Q2hlY2tlZCwgQWZ0ZXJDb250ZW50SW5pdCwgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcblxuICAvKiogV2hldGhlciB0aGUgcmlwcGxlIGVmZmVjdCBpcyBkaXNhYmxlZCBvciBub3QuICovXG4gIEBJbnB1dCgpXG4gIGdldCBkaXNhYmxlUmlwcGxlKCkgeyByZXR1cm4gdGhpcy5fZGlzYWJsZVJpcHBsZTsgfVxuICBzZXQgZGlzYWJsZVJpcHBsZSh2YWx1ZTogYW55KSB7IHRoaXMuX2Rpc2FibGVSaXBwbGUgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpOyB9XG4gIHByaXZhdGUgX2Rpc2FibGVSaXBwbGU6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBjb25zdHJ1Y3RvcihlbGVtZW50UmVmOiBFbGVtZW50UmVmLFxuICAgICAgICAgICAgICBjaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgICAgICAgICAgIHZpZXdwb3J0UnVsZXI6IFZpZXdwb3J0UnVsZXIsXG4gICAgICAgICAgICAgIEBPcHRpb25hbCgpIGRpcjogRGlyZWN0aW9uYWxpdHksXG4gICAgICAgICAgICAgIG5nWm9uZTogTmdab25lLFxuICAgICAgICAgICAgICBwbGF0Zm9ybTogUGxhdGZvcm0sXG4gICAgICAgICAgICAgIEBPcHRpb25hbCgpIEBJbmplY3QoQU5JTUFUSU9OX01PRFVMRV9UWVBFKSBhbmltYXRpb25Nb2RlPzogc3RyaW5nKSB7XG4gICAgc3VwZXIoZWxlbWVudFJlZiwgY2hhbmdlRGV0ZWN0b3JSZWYsIHZpZXdwb3J0UnVsZXIsIGRpciwgbmdab25lLCBwbGF0Zm9ybSwgYW5pbWF0aW9uTW9kZSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgX2l0ZW1TZWxlY3RlZChldmVudDogS2V5Ym9hcmRFdmVudCkge1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gIH1cbn1cblxuLyoqXG4gKiBUaGUgaGVhZGVyIG9mIHRoZSB0YWIgZ3JvdXAgd2hpY2ggZGlzcGxheXMgYSBsaXN0IG9mIGFsbCB0aGUgdGFicyBpbiB0aGUgdGFiIGdyb3VwLiBJbmNsdWRlc1xuICogYW4gaW5rIGJhciB0aGF0IGZvbGxvd3MgdGhlIGN1cnJlbnRseSBzZWxlY3RlZCB0YWIuIFdoZW4gdGhlIHRhYnMgbGlzdCdzIHdpZHRoIGV4Y2VlZHMgdGhlXG4gKiB3aWR0aCBvZiB0aGUgaGVhZGVyIGNvbnRhaW5lciwgdGhlbiBhcnJvd3Mgd2lsbCBiZSBkaXNwbGF5ZWQgdG8gYWxsb3cgdGhlIHVzZXIgdG8gc2Nyb2xsXG4gKiBsZWZ0IGFuZCByaWdodCBhY3Jvc3MgdGhlIGhlYWRlci5cbiAqIEBkb2NzLXByaXZhdGVcbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbWF0LXRhYi1oZWFkZXInLFxuICB0ZW1wbGF0ZVVybDogJ3RhYi1oZWFkZXIuaHRtbCcsXG4gIHN0eWxlVXJsczogWyd0YWItaGVhZGVyLmNzcyddLFxuICBpbnB1dHM6IFsnc2VsZWN0ZWRJbmRleCddLFxuICBvdXRwdXRzOiBbJ3NlbGVjdEZvY3VzZWRJbmRleCcsICdpbmRleEZvY3VzZWQnXSxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOnZhbGlkYXRlLWRlY29yYXRvcnNcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5EZWZhdWx0LFxuICBob3N0OiB7XG4gICAgJ2NsYXNzJzogJ21hdC10YWItaGVhZGVyJyxcbiAgICAnW2NsYXNzLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY29udHJvbHMtZW5hYmxlZF0nOiAnX3Nob3dQYWdpbmF0aW9uQ29udHJvbHMnLFxuICAgICdbY2xhc3MubWF0LXRhYi1oZWFkZXItcnRsXSc6IFwiX2dldExheW91dERpcmVjdGlvbigpID09ICdydGwnXCIsXG4gIH0sXG59KVxuZXhwb3J0IGNsYXNzIE1hdFRhYkhlYWRlciBleHRlbmRzIF9NYXRUYWJIZWFkZXJCYXNlIHtcbiAgQENvbnRlbnRDaGlsZHJlbihNYXRUYWJMYWJlbFdyYXBwZXIsIHtkZXNjZW5kYW50czogZmFsc2V9KSBfaXRlbXM6IFF1ZXJ5TGlzdDxNYXRUYWJMYWJlbFdyYXBwZXI+O1xuICBAVmlld0NoaWxkKE1hdElua0Jhciwge3N0YXRpYzogdHJ1ZX0pIF9pbmtCYXI6IE1hdElua0JhcjtcbiAgQFZpZXdDaGlsZCgndGFiTGlzdENvbnRhaW5lcicsIHtzdGF0aWM6IHRydWV9KSBfdGFiTGlzdENvbnRhaW5lcjogRWxlbWVudFJlZjtcbiAgQFZpZXdDaGlsZCgndGFiTGlzdCcsIHtzdGF0aWM6IHRydWV9KSBfdGFiTGlzdDogRWxlbWVudFJlZjtcbiAgQFZpZXdDaGlsZCgnbmV4dFBhZ2luYXRvcicpIF9uZXh0UGFnaW5hdG9yOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PjtcbiAgQFZpZXdDaGlsZCgncHJldmlvdXNQYWdpbmF0b3InKSBfcHJldmlvdXNQYWdpbmF0b3I6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xuXG4gIGNvbnN0cnVjdG9yKGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXG4gICAgICAgICAgICAgIGNoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICAgICAgICAgICAgdmlld3BvcnRSdWxlcjogVmlld3BvcnRSdWxlcixcbiAgICAgICAgICAgICAgQE9wdGlvbmFsKCkgZGlyOiBEaXJlY3Rpb25hbGl0eSxcbiAgICAgICAgICAgICAgbmdab25lOiBOZ1pvbmUsXG4gICAgICAgICAgICAgIHBsYXRmb3JtOiBQbGF0Zm9ybSxcbiAgICAgICAgICAgICAgQE9wdGlvbmFsKCkgQEluamVjdChBTklNQVRJT05fTU9EVUxFX1RZUEUpIGFuaW1hdGlvbk1vZGU/OiBzdHJpbmcpIHtcbiAgICBzdXBlcihlbGVtZW50UmVmLCBjaGFuZ2VEZXRlY3RvclJlZiwgdmlld3BvcnRSdWxlciwgZGlyLCBuZ1pvbmUsIHBsYXRmb3JtLCBhbmltYXRpb25Nb2RlKTtcbiAgfVxuXG4gIHN0YXRpYyBuZ0FjY2VwdElucHV0VHlwZV9kaXNhYmxlUmlwcGxlOiBCb29sZWFuSW5wdXQ7XG59XG4iLCI8ZGl2IGNsYXNzPVwibWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbiBtYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWJlZm9yZSBtYXQtZWxldmF0aW9uLXo0XCJcbiAgICAgI3ByZXZpb3VzUGFnaW5hdG9yXG4gICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgIG1hdC1yaXBwbGUgW21hdFJpcHBsZURpc2FibGVkXT1cIl9kaXNhYmxlU2Nyb2xsQmVmb3JlIHx8IGRpc2FibGVSaXBwbGVcIlxuICAgICBbY2xhc3MubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1kaXNhYmxlZF09XCJfZGlzYWJsZVNjcm9sbEJlZm9yZVwiXG4gICAgIChjbGljayk9XCJfaGFuZGxlUGFnaW5hdG9yQ2xpY2soJ2JlZm9yZScpXCJcbiAgICAgKG1vdXNlZG93bik9XCJfaGFuZGxlUGFnaW5hdG9yUHJlc3MoJ2JlZm9yZScsICRldmVudClcIlxuICAgICAodG91Y2hlbmQpPVwiX3N0b3BJbnRlcnZhbCgpXCI+XG4gIDxkaXYgY2xhc3M9XCJtYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWNoZXZyb25cIj48L2Rpdj5cbjwvZGl2PlxuXG48ZGl2IGNsYXNzPVwibWF0LXRhYi1sYWJlbC1jb250YWluZXJcIiAjdGFiTGlzdENvbnRhaW5lciAoa2V5ZG93bik9XCJfaGFuZGxlS2V5ZG93bigkZXZlbnQpXCI+XG4gIDxkaXZcbiAgICAjdGFiTGlzdFxuICAgIGNsYXNzPVwibWF0LXRhYi1saXN0XCJcbiAgICBbY2xhc3MuX21hdC1hbmltYXRpb24tbm9vcGFibGVdPVwiX2FuaW1hdGlvbk1vZGUgPT09ICdOb29wQW5pbWF0aW9ucydcIlxuICAgIHJvbGU9XCJ0YWJsaXN0XCJcbiAgICAoY2RrT2JzZXJ2ZUNvbnRlbnQpPVwiX29uQ29udGVudENoYW5nZXMoKVwiPlxuICAgIDxkaXYgY2xhc3M9XCJtYXQtdGFiLWxhYmVsc1wiPlxuICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICAgIDwvZGl2PlxuICAgIDxtYXQtaW5rLWJhcj48L21hdC1pbmstYmFyPlxuICA8L2Rpdj5cbjwvZGl2PlxuXG48ZGl2IGNsYXNzPVwibWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbiBtYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWFmdGVyIG1hdC1lbGV2YXRpb24tejRcIlxuICAgICAjbmV4dFBhZ2luYXRvclxuICAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxuICAgICBtYXQtcmlwcGxlIFttYXRSaXBwbGVEaXNhYmxlZF09XCJfZGlzYWJsZVNjcm9sbEFmdGVyIHx8IGRpc2FibGVSaXBwbGVcIlxuICAgICBbY2xhc3MubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1kaXNhYmxlZF09XCJfZGlzYWJsZVNjcm9sbEFmdGVyXCJcbiAgICAgKG1vdXNlZG93bik9XCJfaGFuZGxlUGFnaW5hdG9yUHJlc3MoJ2FmdGVyJywgJGV2ZW50KVwiXG4gICAgIChjbGljayk9XCJfaGFuZGxlUGFnaW5hdG9yQ2xpY2soJ2FmdGVyJylcIlxuICAgICAodG91Y2hlbmQpPVwiX3N0b3BJbnRlcnZhbCgpXCI+XG4gIDxkaXYgY2xhc3M9XCJtYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWNoZXZyb25cIj48L2Rpdj5cbjwvZGl2PlxuIl19