@angular/material 16.0.0-next.4 → 16.0.0-next.5

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 (791) hide show
  1. package/autocomplete/index.d.ts +3 -3
  2. package/badge/index.d.ts +1 -1
  3. package/button/_icon-button-theme.scss +85 -35
  4. package/button/index.d.ts +52 -11
  5. package/button-toggle/index.d.ts +2 -2
  6. package/card/index.d.ts +2 -2
  7. package/checkbox/index.d.ts +2 -2
  8. package/chips/index.d.ts +9 -10
  9. package/core/index.d.ts +7 -7
  10. package/core/mdc-helpers/_mdc-helpers.scss +31 -3
  11. package/core/tokens/_token-utils.scss +1 -1
  12. package/core/tokens/m2/{mdc/_table.scss → mat/_radio.scss} +15 -15
  13. package/core/tokens/m2/mdc/_dialog.scss +115 -0
  14. package/core/tokens/m2/mdc/_icon-button.scss +79 -0
  15. package/core/tokens/m2/mdc/_linear-progress.scss +60 -0
  16. package/core/tokens/m2/mdc/_radio.scss +94 -0
  17. package/core/typography/_typography-utils.scss +7 -5
  18. package/datepicker/index.d.ts +13 -13
  19. package/dialog/_dialog-theme.scss +5 -37
  20. package/dialog/index.d.ts +3 -3
  21. package/divider/index.d.ts +1 -1
  22. package/esm2020/autocomplete/autocomplete-origin.mjs +6 -6
  23. package/esm2020/autocomplete/autocomplete-trigger.mjs +6 -6
  24. package/esm2020/autocomplete/autocomplete.mjs +9 -9
  25. package/esm2020/autocomplete/module.mjs +4 -4
  26. package/esm2020/badge/badge-module.mjs +4 -4
  27. package/esm2020/badge/badge.mjs +3 -3
  28. package/esm2020/bottom-sheet/bottom-sheet-container.mjs +3 -3
  29. package/esm2020/bottom-sheet/bottom-sheet-module.mjs +4 -4
  30. package/esm2020/bottom-sheet/bottom-sheet.mjs +3 -3
  31. package/esm2020/button/button-base.mjs +39 -14
  32. package/esm2020/button/button-lazy-loader.mjs +114 -0
  33. package/esm2020/button/button.mjs +9 -10
  34. package/esm2020/button/fab.mjs +17 -18
  35. package/esm2020/button/icon-button.mjs +21 -10
  36. package/esm2020/button/module.mjs +4 -4
  37. package/esm2020/button-toggle/button-toggle-module.mjs +4 -4
  38. package/esm2020/button-toggle/button-toggle.mjs +6 -6
  39. package/esm2020/card/card.mjs +42 -42
  40. package/esm2020/card/module.mjs +4 -4
  41. package/esm2020/checkbox/checkbox-required-validator.mjs +3 -3
  42. package/esm2020/checkbox/checkbox.mjs +6 -6
  43. package/esm2020/checkbox/module.mjs +8 -8
  44. package/esm2020/chips/chip-action.mjs +3 -3
  45. package/esm2020/chips/chip-edit-input.mjs +3 -3
  46. package/esm2020/chips/chip-grid.mjs +3 -3
  47. package/esm2020/chips/chip-icons.mjs +9 -9
  48. package/esm2020/chips/chip-input.mjs +6 -12
  49. package/esm2020/chips/chip-listbox.mjs +3 -3
  50. package/esm2020/chips/chip-option.mjs +3 -3
  51. package/esm2020/chips/chip-row.mjs +3 -3
  52. package/esm2020/chips/chip-set.mjs +3 -3
  53. package/esm2020/chips/chip.mjs +3 -3
  54. package/esm2020/chips/module.mjs +4 -4
  55. package/esm2020/core/common-behaviors/common-module.mjs +4 -4
  56. package/esm2020/core/datetime/index.mjs +8 -8
  57. package/esm2020/core/datetime/native-date-adapter.mjs +3 -3
  58. package/esm2020/core/error/error-options.mjs +6 -6
  59. package/esm2020/core/line/line.mjs +7 -7
  60. package/esm2020/core/option/index.mjs +4 -4
  61. package/esm2020/core/option/optgroup.mjs +6 -6
  62. package/esm2020/core/option/option.mjs +6 -6
  63. package/esm2020/core/ripple/index.mjs +4 -4
  64. package/esm2020/core/ripple/ripple.mjs +5 -5
  65. package/esm2020/core/selection/pseudo-checkbox/pseudo-checkbox-module.mjs +4 -4
  66. package/esm2020/core/selection/pseudo-checkbox/pseudo-checkbox.mjs +3 -3
  67. package/esm2020/core/version.mjs +1 -1
  68. package/esm2020/datepicker/calendar-body.mjs +3 -3
  69. package/esm2020/datepicker/calendar.mjs +6 -6
  70. package/esm2020/datepicker/date-range-input-parts.mjs +9 -9
  71. package/esm2020/datepicker/date-range-input.mjs +3 -3
  72. package/esm2020/datepicker/date-range-picker.mjs +3 -3
  73. package/esm2020/datepicker/date-range-selection-strategy.mjs +3 -3
  74. package/esm2020/datepicker/date-selection-model.mjs +9 -9
  75. package/esm2020/datepicker/datepicker-actions.mjs +9 -9
  76. package/esm2020/datepicker/datepicker-base.mjs +6 -6
  77. package/esm2020/datepicker/datepicker-input-base.mjs +3 -3
  78. package/esm2020/datepicker/datepicker-input.mjs +3 -3
  79. package/esm2020/datepicker/datepicker-intl.mjs +3 -3
  80. package/esm2020/datepicker/datepicker-module.mjs +4 -4
  81. package/esm2020/datepicker/datepicker-toggle.mjs +6 -6
  82. package/esm2020/datepicker/datepicker.mjs +3 -3
  83. package/esm2020/datepicker/month-view.mjs +3 -3
  84. package/esm2020/datepicker/multi-year-view.mjs +3 -3
  85. package/esm2020/datepicker/year-view.mjs +3 -3
  86. package/esm2020/dialog/dialog-container.mjs +7 -7
  87. package/esm2020/dialog/dialog-content-directives.mjs +12 -12
  88. package/esm2020/dialog/dialog.mjs +6 -6
  89. package/esm2020/dialog/module.mjs +4 -4
  90. package/esm2020/divider/divider-module.mjs +4 -4
  91. package/esm2020/divider/divider.mjs +3 -3
  92. package/esm2020/expansion/accordion.mjs +3 -3
  93. package/esm2020/expansion/expansion-module.mjs +4 -4
  94. package/esm2020/expansion/expansion-panel-content.mjs +3 -3
  95. package/esm2020/expansion/expansion-panel-header.mjs +9 -9
  96. package/esm2020/expansion/expansion-panel.mjs +6 -6
  97. package/esm2020/form-field/directives/error.mjs +3 -3
  98. package/esm2020/form-field/directives/floating-label.mjs +3 -3
  99. package/esm2020/form-field/directives/hint.mjs +3 -3
  100. package/esm2020/form-field/directives/label.mjs +3 -3
  101. package/esm2020/form-field/directives/line-ripple.mjs +3 -3
  102. package/esm2020/form-field/directives/notched-outline.mjs +3 -3
  103. package/esm2020/form-field/directives/prefix.mjs +3 -3
  104. package/esm2020/form-field/directives/suffix.mjs +3 -3
  105. package/esm2020/form-field/form-field-control.mjs +3 -3
  106. package/esm2020/form-field/form-field.mjs +3 -3
  107. package/esm2020/form-field/module.mjs +4 -4
  108. package/esm2020/grid-list/grid-list-module.mjs +4 -4
  109. package/esm2020/grid-list/grid-list.mjs +3 -3
  110. package/esm2020/grid-list/grid-tile.mjs +15 -15
  111. package/esm2020/icon/icon-module.mjs +4 -4
  112. package/esm2020/icon/icon-registry.mjs +3 -3
  113. package/esm2020/icon/icon.mjs +3 -3
  114. package/esm2020/icon/testing/fake-icon-registry.mjs +7 -7
  115. package/esm2020/input/input.mjs +3 -3
  116. package/esm2020/input/module.mjs +4 -4
  117. package/esm2020/legacy-autocomplete/autocomplete-module.mjs +4 -4
  118. package/esm2020/legacy-autocomplete/autocomplete-origin.mjs +3 -3
  119. package/esm2020/legacy-autocomplete/autocomplete-trigger.mjs +3 -3
  120. package/esm2020/legacy-autocomplete/autocomplete.mjs +3 -3
  121. package/esm2020/legacy-button/button-module.mjs +4 -4
  122. package/esm2020/legacy-button/button.mjs +6 -6
  123. package/esm2020/legacy-card/card-module.mjs +4 -4
  124. package/esm2020/legacy-card/card.mjs +42 -42
  125. package/esm2020/legacy-checkbox/checkbox-module.mjs +4 -4
  126. package/esm2020/legacy-checkbox/checkbox.mjs +3 -3
  127. package/esm2020/legacy-chips/chip-input.mjs +6 -12
  128. package/esm2020/legacy-chips/chip-list.mjs +3 -3
  129. package/esm2020/legacy-chips/chip.mjs +12 -12
  130. package/esm2020/legacy-chips/chips-module.mjs +4 -4
  131. package/esm2020/legacy-core/option/index.mjs +4 -4
  132. package/esm2020/legacy-core/option/optgroup.mjs +3 -3
  133. package/esm2020/legacy-core/option/option.mjs +3 -3
  134. package/esm2020/legacy-dialog/dialog-container.mjs +3 -3
  135. package/esm2020/legacy-dialog/dialog-content-directives.mjs +12 -12
  136. package/esm2020/legacy-dialog/dialog-module.mjs +4 -4
  137. package/esm2020/legacy-dialog/dialog.mjs +3 -3
  138. package/esm2020/legacy-form-field/error.mjs +3 -3
  139. package/esm2020/legacy-form-field/form-field-module.mjs +4 -4
  140. package/esm2020/legacy-form-field/form-field.mjs +3 -3
  141. package/esm2020/legacy-form-field/hint.mjs +3 -3
  142. package/esm2020/legacy-form-field/label.mjs +3 -3
  143. package/esm2020/legacy-form-field/placeholder.mjs +3 -3
  144. package/esm2020/legacy-form-field/prefix.mjs +3 -3
  145. package/esm2020/legacy-form-field/suffix.mjs +3 -3
  146. package/esm2020/legacy-input/input-module.mjs +4 -4
  147. package/esm2020/legacy-input/input.mjs +3 -3
  148. package/esm2020/legacy-list/list-module.mjs +4 -4
  149. package/esm2020/legacy-list/list.mjs +18 -18
  150. package/esm2020/legacy-list/selection-list.mjs +6 -6
  151. package/esm2020/legacy-menu/menu-content.mjs +3 -3
  152. package/esm2020/legacy-menu/menu-item.mjs +3 -3
  153. package/esm2020/legacy-menu/menu-module.mjs +4 -4
  154. package/esm2020/legacy-menu/menu-trigger.mjs +3 -3
  155. package/esm2020/legacy-menu/menu.mjs +3 -3
  156. package/esm2020/legacy-paginator/paginator-module.mjs +4 -4
  157. package/esm2020/legacy-paginator/paginator.mjs +3 -3
  158. package/esm2020/legacy-progress-bar/progress-bar-module.mjs +4 -4
  159. package/esm2020/legacy-progress-bar/progress-bar.mjs +3 -3
  160. package/esm2020/legacy-progress-spinner/progress-spinner-module.mjs +4 -4
  161. package/esm2020/legacy-progress-spinner/progress-spinner.mjs +3 -3
  162. package/esm2020/legacy-radio/radio-module.mjs +4 -4
  163. package/esm2020/legacy-radio/radio.mjs +6 -6
  164. package/esm2020/legacy-select/select-module.mjs +4 -4
  165. package/esm2020/legacy-select/select.mjs +6 -6
  166. package/esm2020/legacy-slide-toggle/slide-toggle-module.mjs +4 -4
  167. package/esm2020/legacy-slide-toggle/slide-toggle.mjs +3 -3
  168. package/esm2020/legacy-slider/slider-module.mjs +4 -4
  169. package/esm2020/legacy-slider/slider.mjs +3 -3
  170. package/esm2020/legacy-snack-bar/simple-snack-bar.mjs +3 -3
  171. package/esm2020/legacy-snack-bar/snack-bar-container.mjs +3 -3
  172. package/esm2020/legacy-snack-bar/snack-bar-module.mjs +4 -4
  173. package/esm2020/legacy-snack-bar/snack-bar.mjs +3 -3
  174. package/esm2020/legacy-table/cell.mjs +21 -21
  175. package/esm2020/legacy-table/row.mjs +21 -21
  176. package/esm2020/legacy-table/table-module.mjs +4 -4
  177. package/esm2020/legacy-table/table.mjs +6 -6
  178. package/esm2020/legacy-table/text-column.mjs +3 -3
  179. package/esm2020/legacy-tabs/ink-bar.mjs +3 -3
  180. package/esm2020/legacy-tabs/tab-body.mjs +6 -6
  181. package/esm2020/legacy-tabs/tab-content.mjs +3 -3
  182. package/esm2020/legacy-tabs/tab-group.mjs +3 -3
  183. package/esm2020/legacy-tabs/tab-header.mjs +3 -3
  184. package/esm2020/legacy-tabs/tab-label-wrapper.mjs +3 -3
  185. package/esm2020/legacy-tabs/tab-label.mjs +3 -3
  186. package/esm2020/legacy-tabs/tab-nav-bar/tab-nav-bar.mjs +9 -9
  187. package/esm2020/legacy-tabs/tab.mjs +3 -3
  188. package/esm2020/legacy-tabs/tabs-module.mjs +4 -4
  189. package/esm2020/legacy-tooltip/tooltip-module.mjs +4 -4
  190. package/esm2020/legacy-tooltip/tooltip.mjs +9 -11
  191. package/esm2020/list/action-list.mjs +3 -3
  192. package/esm2020/list/list-base.mjs +6 -6
  193. package/esm2020/list/list-item-sections.mjs +18 -18
  194. package/esm2020/list/list-module.mjs +4 -4
  195. package/esm2020/list/list-option.mjs +5 -5
  196. package/esm2020/list/list.mjs +6 -6
  197. package/esm2020/list/nav-list.mjs +3 -3
  198. package/esm2020/list/selection-list.mjs +3 -3
  199. package/esm2020/list/subheader.mjs +3 -3
  200. package/esm2020/menu/menu-content.mjs +6 -6
  201. package/esm2020/menu/menu-item.mjs +3 -3
  202. package/esm2020/menu/menu-trigger.mjs +6 -6
  203. package/esm2020/menu/menu.mjs +14 -17
  204. package/esm2020/menu/module.mjs +4 -4
  205. package/esm2020/paginator/module.mjs +4 -4
  206. package/esm2020/paginator/paginator-intl.mjs +3 -3
  207. package/esm2020/paginator/paginator.mjs +6 -6
  208. package/esm2020/progress-bar/module.mjs +4 -4
  209. package/esm2020/progress-bar/progress-bar.mjs +4 -4
  210. package/esm2020/progress-spinner/module.mjs +4 -4
  211. package/esm2020/progress-spinner/progress-spinner.mjs +3 -3
  212. package/esm2020/radio/module.mjs +4 -4
  213. package/esm2020/radio/radio.mjs +13 -13
  214. package/esm2020/select/module.mjs +4 -4
  215. package/esm2020/select/select.mjs +9 -9
  216. package/esm2020/sidenav/drawer.mjs +9 -9
  217. package/esm2020/sidenav/sidenav-module.mjs +4 -4
  218. package/esm2020/sidenav/sidenav.mjs +9 -9
  219. package/esm2020/slide-toggle/module.mjs +8 -8
  220. package/esm2020/slide-toggle/slide-toggle-required-validator.mjs +3 -3
  221. package/esm2020/slide-toggle/slide-toggle.mjs +6 -6
  222. package/esm2020/slider/module.mjs +4 -4
  223. package/esm2020/slider/slider-input.mjs +6 -6
  224. package/esm2020/slider/slider-thumb.mjs +3 -3
  225. package/esm2020/slider/slider.mjs +3 -3
  226. package/esm2020/snack-bar/module.mjs +4 -4
  227. package/esm2020/snack-bar/simple-snack-bar.mjs +3 -3
  228. package/esm2020/snack-bar/snack-bar-container.mjs +6 -6
  229. package/esm2020/snack-bar/snack-bar-content.mjs +9 -9
  230. package/esm2020/snack-bar/snack-bar.mjs +6 -6
  231. package/esm2020/sort/sort-header-intl.mjs +3 -3
  232. package/esm2020/sort/sort-header.mjs +3 -3
  233. package/esm2020/sort/sort-module.mjs +4 -4
  234. package/esm2020/sort/sort.mjs +3 -3
  235. package/esm2020/stepper/step-content.mjs +3 -3
  236. package/esm2020/stepper/step-header.mjs +3 -3
  237. package/esm2020/stepper/step-label.mjs +3 -3
  238. package/esm2020/stepper/stepper-button.mjs +6 -6
  239. package/esm2020/stepper/stepper-icon.mjs +3 -3
  240. package/esm2020/stepper/stepper-intl.mjs +3 -3
  241. package/esm2020/stepper/stepper-module.mjs +4 -4
  242. package/esm2020/stepper/stepper.mjs +6 -6
  243. package/esm2020/table/cell.mjs +21 -21
  244. package/esm2020/table/module.mjs +4 -4
  245. package/esm2020/table/row.mjs +21 -21
  246. package/esm2020/table/table.mjs +6 -6
  247. package/esm2020/table/text-column.mjs +3 -3
  248. package/esm2020/tabs/module.mjs +4 -4
  249. package/esm2020/tabs/paginated-tab-header.mjs +3 -3
  250. package/esm2020/tabs/tab-body.mjs +9 -9
  251. package/esm2020/tabs/tab-content.mjs +3 -3
  252. package/esm2020/tabs/tab-group.mjs +6 -6
  253. package/esm2020/tabs/tab-header.mjs +6 -6
  254. package/esm2020/tabs/tab-label-wrapper.mjs +6 -6
  255. package/esm2020/tabs/tab-label.mjs +3 -3
  256. package/esm2020/tabs/tab-nav-bar/tab-nav-bar.mjs +15 -15
  257. package/esm2020/tabs/tab.mjs +6 -6
  258. package/esm2020/toolbar/toolbar-module.mjs +4 -4
  259. package/esm2020/toolbar/toolbar.mjs +6 -6
  260. package/esm2020/tooltip/module.mjs +4 -4
  261. package/esm2020/tooltip/tooltip.mjs +27 -19
  262. package/esm2020/tree/node.mjs +9 -9
  263. package/esm2020/tree/outlet.mjs +3 -3
  264. package/esm2020/tree/padding.mjs +3 -3
  265. package/esm2020/tree/toggle.mjs +3 -3
  266. package/esm2020/tree/tree-module.mjs +4 -4
  267. package/esm2020/tree/tree.mjs +4 -4
  268. package/expansion/index.d.ts +3 -3
  269. package/fesm2015/autocomplete/testing.mjs +0 -16
  270. package/fesm2015/autocomplete/testing.mjs.map +1 -1
  271. package/fesm2015/autocomplete.mjs +24 -75
  272. package/fesm2015/autocomplete.mjs.map +1 -1
  273. package/fesm2015/badge/testing.mjs +0 -16
  274. package/fesm2015/badge/testing.mjs.map +1 -1
  275. package/fesm2015/badge.mjs +7 -30
  276. package/fesm2015/badge.mjs.map +1 -1
  277. package/fesm2015/bottom-sheet/testing.mjs +0 -16
  278. package/fesm2015/bottom-sheet/testing.mjs.map +1 -1
  279. package/fesm2015/bottom-sheet.mjs +10 -61
  280. package/fesm2015/bottom-sheet.mjs.map +1 -1
  281. package/fesm2015/button/testing.mjs +0 -16
  282. package/fesm2015/button/testing.mjs.map +1 -1
  283. package/fesm2015/button-toggle/testing.mjs +0 -16
  284. package/fesm2015/button-toggle/testing.mjs.map +1 -1
  285. package/fesm2015/button-toggle.mjs +10 -33
  286. package/fesm2015/button-toggle.mjs.map +1 -1
  287. package/fesm2015/button.mjs +198 -86
  288. package/fesm2015/button.mjs.map +1 -1
  289. package/fesm2015/card/testing.mjs +0 -16
  290. package/fesm2015/card/testing.mjs.map +1 -1
  291. package/fesm2015/card.mjs +46 -76
  292. package/fesm2015/card.mjs.map +1 -1
  293. package/fesm2015/checkbox/testing.mjs +0 -16
  294. package/fesm2015/checkbox/testing.mjs.map +1 -1
  295. package/fesm2015/checkbox.mjs +17 -61
  296. package/fesm2015/checkbox.mjs.map +1 -1
  297. package/fesm2015/chips/testing.mjs +0 -23
  298. package/fesm2015/chips/testing.mjs.map +1 -1
  299. package/fesm2015/chips.mjs +42 -148
  300. package/fesm2015/chips.mjs.map +1 -1
  301. package/fesm2015/core/testing.mjs +0 -16
  302. package/fesm2015/core/testing.mjs.map +1 -1
  303. package/fesm2015/core.mjs +60 -246
  304. package/fesm2015/core.mjs.map +1 -1
  305. package/fesm2015/datepicker/testing.mjs +0 -16
  306. package/fesm2015/datepicker/testing.mjs.map +1 -1
  307. package/fesm2015/datepicker.mjs +82 -238
  308. package/fesm2015/datepicker.mjs.map +1 -1
  309. package/fesm2015/dialog/testing.mjs +0 -23
  310. package/fesm2015/dialog/testing.mjs.map +1 -1
  311. package/fesm2015/dialog.mjs +29 -87
  312. package/fesm2015/dialog.mjs.map +1 -1
  313. package/fesm2015/divider/testing.mjs +0 -16
  314. package/fesm2015/divider/testing.mjs.map +1 -1
  315. package/fesm2015/divider.mjs +7 -37
  316. package/fesm2015/divider.mjs.map +1 -1
  317. package/fesm2015/expansion/testing.mjs +0 -16
  318. package/fesm2015/expansion/testing.mjs.map +1 -1
  319. package/fesm2015/expansion.mjs +25 -83
  320. package/fesm2015/expansion.mjs.map +1 -1
  321. package/fesm2015/form-field/testing/control.mjs +0 -15
  322. package/fesm2015/form-field/testing/control.mjs.map +1 -1
  323. package/fesm2015/form-field/testing.mjs +1 -15
  324. package/fesm2015/form-field/testing.mjs.map +1 -1
  325. package/fesm2015/form-field.mjs +34 -127
  326. package/fesm2015/form-field.mjs.map +1 -1
  327. package/fesm2015/grid-list/testing.mjs +0 -16
  328. package/fesm2015/grid-list/testing.mjs.map +1 -1
  329. package/fesm2015/grid-list.mjs +22 -79
  330. package/fesm2015/grid-list.mjs.map +1 -1
  331. package/fesm2015/icon/testing.mjs +7 -30
  332. package/fesm2015/icon/testing.mjs.map +1 -1
  333. package/fesm2015/icon.mjs +10 -54
  334. package/fesm2015/icon.mjs.map +1 -1
  335. package/fesm2015/input/testing.mjs +0 -16
  336. package/fesm2015/input/testing.mjs.map +1 -1
  337. package/fesm2015/input.mjs +7 -51
  338. package/fesm2015/input.mjs.map +1 -1
  339. package/fesm2015/legacy-autocomplete/testing.mjs +0 -16
  340. package/fesm2015/legacy-autocomplete/testing.mjs.map +1 -1
  341. package/fesm2015/legacy-autocomplete.mjs +13 -57
  342. package/fesm2015/legacy-autocomplete.mjs.map +1 -1
  343. package/fesm2015/legacy-button/testing.mjs +0 -16
  344. package/fesm2015/legacy-button/testing.mjs.map +1 -1
  345. package/fesm2015/legacy-button.mjs +10 -33
  346. package/fesm2015/legacy-button.mjs.map +1 -1
  347. package/fesm2015/legacy-card/testing.mjs +0 -16
  348. package/fesm2015/legacy-card/testing.mjs.map +1 -1
  349. package/fesm2015/legacy-card.mjs +46 -76
  350. package/fesm2015/legacy-card.mjs.map +1 -1
  351. package/fesm2015/legacy-checkbox/testing.mjs +0 -16
  352. package/fesm2015/legacy-checkbox/testing.mjs.map +1 -1
  353. package/fesm2015/legacy-checkbox.mjs +7 -30
  354. package/fesm2015/legacy-checkbox.mjs.map +1 -1
  355. package/fesm2015/legacy-chips/testing.mjs +0 -23
  356. package/fesm2015/legacy-chips/testing.mjs.map +1 -1
  357. package/fesm2015/legacy-chips.mjs +24 -74
  358. package/fesm2015/legacy-chips.mjs.map +1 -1
  359. package/fesm2015/legacy-core/testing.mjs +0 -16
  360. package/fesm2015/legacy-core/testing.mjs.map +1 -1
  361. package/fesm2015/legacy-core.mjs +10 -47
  362. package/fesm2015/legacy-core.mjs.map +1 -1
  363. package/fesm2015/legacy-dialog/testing.mjs +0 -30
  364. package/fesm2015/legacy-dialog/testing.mjs.map +1 -1
  365. package/fesm2015/legacy-dialog.mjs +22 -80
  366. package/fesm2015/legacy-dialog.mjs.map +1 -1
  367. package/fesm2015/legacy-form-field/testing.mjs +0 -23
  368. package/fesm2015/legacy-form-field/testing.mjs.map +1 -1
  369. package/fesm2015/legacy-form-field.mjs +25 -90
  370. package/fesm2015/legacy-form-field.mjs.map +1 -1
  371. package/fesm2015/legacy-input/testing.mjs +0 -16
  372. package/fesm2015/legacy-input/testing.mjs.map +1 -1
  373. package/fesm2015/legacy-input.mjs +7 -37
  374. package/fesm2015/legacy-input.mjs.map +1 -1
  375. package/fesm2015/legacy-list/testing.mjs +0 -23
  376. package/fesm2015/legacy-list/testing.mjs.map +1 -1
  377. package/fesm2015/legacy-list.mjs +28 -65
  378. package/fesm2015/legacy-list.mjs.map +1 -1
  379. package/fesm2015/legacy-menu/testing.mjs +0 -16
  380. package/fesm2015/legacy-menu/testing.mjs.map +1 -1
  381. package/fesm2015/legacy-menu.mjs +16 -67
  382. package/fesm2015/legacy-menu.mjs.map +1 -1
  383. package/fesm2015/legacy-paginator/testing.mjs +0 -23
  384. package/fesm2015/legacy-paginator/testing.mjs.map +1 -1
  385. package/fesm2015/legacy-paginator.mjs +7 -37
  386. package/fesm2015/legacy-paginator.mjs.map +1 -1
  387. package/fesm2015/legacy-progress-bar/testing.mjs +0 -16
  388. package/fesm2015/legacy-progress-bar/testing.mjs.map +1 -1
  389. package/fesm2015/legacy-progress-bar.mjs +7 -37
  390. package/fesm2015/legacy-progress-bar.mjs.map +1 -1
  391. package/fesm2015/legacy-progress-spinner/testing.mjs +0 -16
  392. package/fesm2015/legacy-progress-spinner/testing.mjs.map +1 -1
  393. package/fesm2015/legacy-progress-spinner.mjs +7 -36
  394. package/fesm2015/legacy-progress-spinner.mjs.map +1 -1
  395. package/fesm2015/legacy-radio/testing.mjs +0 -16
  396. package/fesm2015/legacy-radio/testing.mjs.map +1 -1
  397. package/fesm2015/legacy-radio.mjs +10 -33
  398. package/fesm2015/legacy-radio.mjs.map +1 -1
  399. package/fesm2015/legacy-select/testing.mjs +0 -16
  400. package/fesm2015/legacy-select/testing.mjs.map +1 -1
  401. package/fesm2015/legacy-select.mjs +10 -40
  402. package/fesm2015/legacy-select.mjs.map +1 -1
  403. package/fesm2015/legacy-slide-toggle/testing.mjs +0 -16
  404. package/fesm2015/legacy-slide-toggle/testing.mjs.map +1 -1
  405. package/fesm2015/legacy-slide-toggle.mjs +7 -37
  406. package/fesm2015/legacy-slide-toggle.mjs.map +1 -1
  407. package/fesm2015/legacy-slider/testing.mjs +0 -16
  408. package/fesm2015/legacy-slider/testing.mjs.map +1 -1
  409. package/fesm2015/legacy-slider.mjs +7 -30
  410. package/fesm2015/legacy-slider.mjs.map +1 -1
  411. package/fesm2015/legacy-snack-bar/testing.mjs +0 -16
  412. package/fesm2015/legacy-snack-bar/testing.mjs.map +1 -1
  413. package/fesm2015/legacy-snack-bar.mjs +13 -50
  414. package/fesm2015/legacy-snack-bar.mjs.map +1 -1
  415. package/fesm2015/legacy-table/testing.mjs +0 -37
  416. package/fesm2015/legacy-table/testing.mjs.map +1 -1
  417. package/fesm2015/legacy-table.mjs +55 -113
  418. package/fesm2015/legacy-table.mjs.map +1 -1
  419. package/fesm2015/legacy-tabs/testing.mjs +0 -16
  420. package/fesm2015/legacy-tabs/testing.mjs.map +1 -1
  421. package/fesm2015/legacy-tabs.mjs +40 -120
  422. package/fesm2015/legacy-tabs.mjs.map +1 -1
  423. package/fesm2015/legacy-tooltip/testing.mjs +0 -23
  424. package/fesm2015/legacy-tooltip/testing.mjs.map +1 -1
  425. package/fesm2015/legacy-tooltip.mjs +12 -44
  426. package/fesm2015/legacy-tooltip.mjs.map +1 -1
  427. package/fesm2015/list/testing.mjs +0 -23
  428. package/fesm2015/list/testing.mjs.map +1 -1
  429. package/fesm2015/list.mjs +51 -137
  430. package/fesm2015/list.mjs.map +1 -1
  431. package/fesm2015/material.mjs +0 -7
  432. package/fesm2015/material.mjs.map +1 -1
  433. package/fesm2015/menu/testing.mjs +0 -16
  434. package/fesm2015/menu/testing.mjs.map +1 -1
  435. package/fesm2015/menu.mjs +32 -107
  436. package/fesm2015/menu.mjs.map +1 -1
  437. package/fesm2015/paginator/testing.mjs +0 -16
  438. package/fesm2015/paginator/testing.mjs.map +1 -1
  439. package/fesm2015/paginator.mjs +13 -50
  440. package/fesm2015/paginator.mjs.map +1 -1
  441. package/fesm2015/progress-bar/testing.mjs +0 -16
  442. package/fesm2015/progress-bar/testing.mjs.map +1 -1
  443. package/fesm2015/progress-bar.mjs +8 -38
  444. package/fesm2015/progress-bar.mjs.map +1 -1
  445. package/fesm2015/progress-spinner/testing.mjs +0 -16
  446. package/fesm2015/progress-spinner/testing.mjs.map +1 -1
  447. package/fesm2015/progress-spinner.mjs +7 -37
  448. package/fesm2015/progress-spinner.mjs.map +1 -1
  449. package/fesm2015/radio/testing.mjs +0 -16
  450. package/fesm2015/radio/testing.mjs.map +1 -1
  451. package/fesm2015/radio.mjs +17 -47
  452. package/fesm2015/radio.mjs.map +1 -1
  453. package/fesm2015/select/testing.mjs +0 -16
  454. package/fesm2015/select/testing.mjs.map +1 -1
  455. package/fesm2015/select.mjs +13 -57
  456. package/fesm2015/select.mjs.map +1 -1
  457. package/fesm2015/sidenav/testing.mjs +0 -30
  458. package/fesm2015/sidenav/testing.mjs.map +1 -1
  459. package/fesm2015/sidenav.mjs +22 -59
  460. package/fesm2015/sidenav.mjs.map +1 -1
  461. package/fesm2015/slide-toggle/testing.mjs +0 -16
  462. package/fesm2015/slide-toggle/testing.mjs.map +1 -1
  463. package/fesm2015/slide-toggle.mjs +17 -61
  464. package/fesm2015/slide-toggle.mjs.map +1 -1
  465. package/fesm2015/slider/testing.mjs +0 -16
  466. package/fesm2015/slider/testing.mjs.map +1 -1
  467. package/fesm2015/slider.mjs +16 -60
  468. package/fesm2015/slider.mjs.map +1 -1
  469. package/fesm2015/snack-bar/testing.mjs +0 -16
  470. package/fesm2015/snack-bar/testing.mjs.map +1 -1
  471. package/fesm2015/snack-bar.mjs +28 -93
  472. package/fesm2015/snack-bar.mjs.map +1 -1
  473. package/fesm2015/sort/testing.mjs +0 -16
  474. package/fesm2015/sort/testing.mjs.map +1 -1
  475. package/fesm2015/sort.mjs +13 -64
  476. package/fesm2015/sort.mjs.map +1 -1
  477. package/fesm2015/stepper/testing.mjs +0 -16
  478. package/fesm2015/stepper/testing.mjs.map +1 -1
  479. package/fesm2015/stepper.mjs +31 -96
  480. package/fesm2015/stepper.mjs.map +1 -1
  481. package/fesm2015/table/testing.mjs +0 -16
  482. package/fesm2015/table/testing.mjs.map +1 -1
  483. package/fesm2015/table.mjs +55 -113
  484. package/fesm2015/table.mjs.map +1 -1
  485. package/fesm2015/tabs/testing.mjs +0 -16
  486. package/fesm2015/tabs/testing.mjs.map +1 -1
  487. package/fesm2015/tabs.mjs +61 -168
  488. package/fesm2015/tabs.mjs.map +1 -1
  489. package/fesm2015/toolbar/testing.mjs +0 -16
  490. package/fesm2015/toolbar/testing.mjs.map +1 -1
  491. package/fesm2015/toolbar.mjs +10 -33
  492. package/fesm2015/toolbar.mjs.map +1 -1
  493. package/fesm2015/tooltip/testing.mjs +0 -16
  494. package/fesm2015/tooltip/testing.mjs.map +1 -1
  495. package/fesm2015/tooltip.mjs +30 -59
  496. package/fesm2015/tooltip.mjs.map +1 -1
  497. package/fesm2015/tree/testing.mjs +0 -16
  498. package/fesm2015/tree/testing.mjs.map +1 -1
  499. package/fesm2015/tree.mjs +25 -90
  500. package/fesm2015/tree.mjs.map +1 -1
  501. package/fesm2020/autocomplete/testing.mjs +0 -31
  502. package/fesm2020/autocomplete/testing.mjs.map +1 -1
  503. package/fesm2020/autocomplete.mjs +24 -75
  504. package/fesm2020/autocomplete.mjs.map +1 -1
  505. package/fesm2020/badge/testing.mjs +0 -31
  506. package/fesm2020/badge/testing.mjs.map +1 -1
  507. package/fesm2020/badge.mjs +7 -37
  508. package/fesm2020/badge.mjs.map +1 -1
  509. package/fesm2020/bottom-sheet/testing.mjs +0 -31
  510. package/fesm2020/bottom-sheet/testing.mjs.map +1 -1
  511. package/fesm2020/bottom-sheet.mjs +10 -61
  512. package/fesm2020/bottom-sheet.mjs.map +1 -1
  513. package/fesm2020/button/testing.mjs +0 -31
  514. package/fesm2020/button/testing.mjs.map +1 -1
  515. package/fesm2020/button-toggle/testing.mjs +0 -46
  516. package/fesm2020/button-toggle/testing.mjs.map +1 -1
  517. package/fesm2020/button-toggle.mjs +10 -40
  518. package/fesm2020/button-toggle.mjs.map +1 -1
  519. package/fesm2020/button.mjs +194 -107
  520. package/fesm2020/button.mjs.map +1 -1
  521. package/fesm2020/card/testing.mjs +0 -31
  522. package/fesm2020/card/testing.mjs.map +1 -1
  523. package/fesm2020/card.mjs +46 -76
  524. package/fesm2020/card.mjs.map +1 -1
  525. package/fesm2020/checkbox/testing.mjs +0 -23
  526. package/fesm2020/checkbox/testing.mjs.map +1 -1
  527. package/fesm2020/checkbox.mjs +17 -61
  528. package/fesm2020/checkbox.mjs.map +1 -1
  529. package/fesm2020/chips/testing.mjs +0 -94
  530. package/fesm2020/chips/testing.mjs.map +1 -1
  531. package/fesm2020/chips.mjs +42 -156
  532. package/fesm2020/chips.mjs.map +1 -1
  533. package/fesm2020/core/testing.mjs +0 -46
  534. package/fesm2020/core/testing.mjs.map +1 -1
  535. package/fesm2020/core.mjs +60 -267
  536. package/fesm2020/core.mjs.map +1 -1
  537. package/fesm2020/datepicker/testing.mjs +0 -73
  538. package/fesm2020/datepicker/testing.mjs.map +1 -1
  539. package/fesm2020/datepicker.mjs +82 -245
  540. package/fesm2020/datepicker.mjs.map +1 -1
  541. package/fesm2020/dialog/testing.mjs +0 -30
  542. package/fesm2020/dialog/testing.mjs.map +1 -1
  543. package/fesm2020/dialog.mjs +29 -94
  544. package/fesm2020/dialog.mjs.map +1 -1
  545. package/fesm2020/divider/testing.mjs +0 -31
  546. package/fesm2020/divider/testing.mjs.map +1 -1
  547. package/fesm2020/divider.mjs +7 -37
  548. package/fesm2020/divider.mjs.map +1 -1
  549. package/fesm2020/expansion/testing.mjs +0 -38
  550. package/fesm2020/expansion/testing.mjs.map +1 -1
  551. package/fesm2020/expansion.mjs +25 -90
  552. package/fesm2020/expansion.mjs.map +1 -1
  553. package/fesm2020/form-field/testing/control.mjs +0 -15
  554. package/fesm2020/form-field/testing/control.mjs.map +1 -1
  555. package/fesm2020/form-field/testing.mjs +1 -37
  556. package/fesm2020/form-field/testing.mjs.map +1 -1
  557. package/fesm2020/form-field.mjs +34 -134
  558. package/fesm2020/form-field.mjs.map +1 -1
  559. package/fesm2020/grid-list/testing.mjs +0 -38
  560. package/fesm2020/grid-list/testing.mjs.map +1 -1
  561. package/fesm2020/grid-list.mjs +22 -79
  562. package/fesm2020/grid-list.mjs.map +1 -1
  563. package/fesm2020/icon/testing.mjs +7 -45
  564. package/fesm2020/icon/testing.mjs.map +1 -1
  565. package/fesm2020/icon.mjs +10 -54
  566. package/fesm2020/icon.mjs.map +1 -1
  567. package/fesm2020/input/testing.mjs +0 -53
  568. package/fesm2020/input/testing.mjs.map +1 -1
  569. package/fesm2020/input.mjs +7 -51
  570. package/fesm2020/input.mjs.map +1 -1
  571. package/fesm2020/legacy-autocomplete/testing.mjs +0 -23
  572. package/fesm2020/legacy-autocomplete/testing.mjs.map +1 -1
  573. package/fesm2020/legacy-autocomplete.mjs +13 -57
  574. package/fesm2020/legacy-autocomplete.mjs.map +1 -1
  575. package/fesm2020/legacy-button/testing.mjs +0 -23
  576. package/fesm2020/legacy-button/testing.mjs.map +1 -1
  577. package/fesm2020/legacy-button.mjs +10 -40
  578. package/fesm2020/legacy-button.mjs.map +1 -1
  579. package/fesm2020/legacy-card/testing.mjs +0 -23
  580. package/fesm2020/legacy-card/testing.mjs.map +1 -1
  581. package/fesm2020/legacy-card.mjs +46 -76
  582. package/fesm2020/legacy-card.mjs.map +1 -1
  583. package/fesm2020/legacy-checkbox/testing.mjs +0 -23
  584. package/fesm2020/legacy-checkbox/testing.mjs.map +1 -1
  585. package/fesm2020/legacy-checkbox.mjs +7 -37
  586. package/fesm2020/legacy-checkbox.mjs.map +1 -1
  587. package/fesm2020/legacy-chips/testing.mjs +0 -65
  588. package/fesm2020/legacy-chips/testing.mjs.map +1 -1
  589. package/fesm2020/legacy-chips.mjs +24 -74
  590. package/fesm2020/legacy-chips.mjs.map +1 -1
  591. package/fesm2020/legacy-core/testing.mjs +0 -46
  592. package/fesm2020/legacy-core/testing.mjs.map +1 -1
  593. package/fesm2020/legacy-core.mjs +10 -47
  594. package/fesm2020/legacy-core.mjs.map +1 -1
  595. package/fesm2020/legacy-dialog/testing.mjs +0 -30
  596. package/fesm2020/legacy-dialog/testing.mjs.map +1 -1
  597. package/fesm2020/legacy-dialog.mjs +22 -80
  598. package/fesm2020/legacy-dialog.mjs.map +1 -1
  599. package/fesm2020/legacy-form-field/testing.mjs +0 -30
  600. package/fesm2020/legacy-form-field/testing.mjs.map +1 -1
  601. package/fesm2020/legacy-form-field.mjs +25 -97
  602. package/fesm2020/legacy-form-field.mjs.map +1 -1
  603. package/fesm2020/legacy-input/testing.mjs +0 -16
  604. package/fesm2020/legacy-input/testing.mjs.map +1 -1
  605. package/fesm2020/legacy-input.mjs +7 -37
  606. package/fesm2020/legacy-input.mjs.map +1 -1
  607. package/fesm2020/legacy-list/testing.mjs +0 -58
  608. package/fesm2020/legacy-list/testing.mjs.map +1 -1
  609. package/fesm2020/legacy-list.mjs +28 -65
  610. package/fesm2020/legacy-list.mjs.map +1 -1
  611. package/fesm2020/legacy-menu/testing.mjs +0 -23
  612. package/fesm2020/legacy-menu/testing.mjs.map +1 -1
  613. package/fesm2020/legacy-menu.mjs +16 -67
  614. package/fesm2020/legacy-menu.mjs.map +1 -1
  615. package/fesm2020/legacy-paginator/testing.mjs +0 -23
  616. package/fesm2020/legacy-paginator/testing.mjs.map +1 -1
  617. package/fesm2020/legacy-paginator.mjs +7 -37
  618. package/fesm2020/legacy-paginator.mjs.map +1 -1
  619. package/fesm2020/legacy-progress-bar/testing.mjs +0 -23
  620. package/fesm2020/legacy-progress-bar/testing.mjs.map +1 -1
  621. package/fesm2020/legacy-progress-bar.mjs +7 -37
  622. package/fesm2020/legacy-progress-bar.mjs.map +1 -1
  623. package/fesm2020/legacy-progress-spinner/testing.mjs +0 -23
  624. package/fesm2020/legacy-progress-spinner/testing.mjs.map +1 -1
  625. package/fesm2020/legacy-progress-spinner.mjs +7 -36
  626. package/fesm2020/legacy-progress-spinner.mjs.map +1 -1
  627. package/fesm2020/legacy-radio/testing.mjs +0 -23
  628. package/fesm2020/legacy-radio/testing.mjs.map +1 -1
  629. package/fesm2020/legacy-radio.mjs +10 -40
  630. package/fesm2020/legacy-radio.mjs.map +1 -1
  631. package/fesm2020/legacy-select/testing.mjs +0 -23
  632. package/fesm2020/legacy-select/testing.mjs.map +1 -1
  633. package/fesm2020/legacy-select.mjs +10 -40
  634. package/fesm2020/legacy-select.mjs.map +1 -1
  635. package/fesm2020/legacy-slide-toggle/testing.mjs +0 -23
  636. package/fesm2020/legacy-slide-toggle/testing.mjs.map +1 -1
  637. package/fesm2020/legacy-slide-toggle.mjs +7 -44
  638. package/fesm2020/legacy-slide-toggle.mjs.map +1 -1
  639. package/fesm2020/legacy-slider/testing.mjs +0 -23
  640. package/fesm2020/legacy-slider/testing.mjs.map +1 -1
  641. package/fesm2020/legacy-slider.mjs +7 -37
  642. package/fesm2020/legacy-slider.mjs.map +1 -1
  643. package/fesm2020/legacy-snack-bar/testing.mjs +0 -23
  644. package/fesm2020/legacy-snack-bar/testing.mjs.map +1 -1
  645. package/fesm2020/legacy-snack-bar.mjs +13 -57
  646. package/fesm2020/legacy-snack-bar.mjs.map +1 -1
  647. package/fesm2020/legacy-table/testing.mjs +0 -37
  648. package/fesm2020/legacy-table/testing.mjs.map +1 -1
  649. package/fesm2020/legacy-table.mjs +55 -113
  650. package/fesm2020/legacy-table.mjs.map +1 -1
  651. package/fesm2020/legacy-tabs/testing.mjs +0 -51
  652. package/fesm2020/legacy-tabs/testing.mjs.map +1 -1
  653. package/fesm2020/legacy-tabs.mjs +40 -134
  654. package/fesm2020/legacy-tabs.mjs.map +1 -1
  655. package/fesm2020/legacy-tooltip/testing.mjs +0 -23
  656. package/fesm2020/legacy-tooltip/testing.mjs.map +1 -1
  657. package/fesm2020/legacy-tooltip.mjs +12 -51
  658. package/fesm2020/legacy-tooltip.mjs.map +1 -1
  659. package/fesm2020/list/testing.mjs +0 -66
  660. package/fesm2020/list/testing.mjs.map +1 -1
  661. package/fesm2020/list.mjs +51 -144
  662. package/fesm2020/list.mjs.map +1 -1
  663. package/fesm2020/material.mjs +0 -7
  664. package/fesm2020/material.mjs.map +1 -1
  665. package/fesm2020/menu/testing.mjs +0 -31
  666. package/fesm2020/menu/testing.mjs.map +1 -1
  667. package/fesm2020/menu.mjs +32 -115
  668. package/fesm2020/menu.mjs.map +1 -1
  669. package/fesm2020/paginator/testing.mjs +0 -31
  670. package/fesm2020/paginator/testing.mjs.map +1 -1
  671. package/fesm2020/paginator.mjs +13 -50
  672. package/fesm2020/paginator.mjs.map +1 -1
  673. package/fesm2020/progress-bar/testing.mjs +0 -31
  674. package/fesm2020/progress-bar/testing.mjs.map +1 -1
  675. package/fesm2020/progress-bar.mjs +8 -38
  676. package/fesm2020/progress-bar.mjs.map +1 -1
  677. package/fesm2020/progress-spinner/testing.mjs +0 -31
  678. package/fesm2020/progress-spinner/testing.mjs.map +1 -1
  679. package/fesm2020/progress-spinner.mjs +7 -37
  680. package/fesm2020/progress-spinner.mjs.map +1 -1
  681. package/fesm2020/radio/testing.mjs +0 -31
  682. package/fesm2020/radio/testing.mjs.map +1 -1
  683. package/fesm2020/radio.mjs +17 -47
  684. package/fesm2020/radio.mjs.map +1 -1
  685. package/fesm2020/select/testing.mjs +0 -31
  686. package/fesm2020/select/testing.mjs.map +1 -1
  687. package/fesm2020/select.mjs +13 -57
  688. package/fesm2020/select.mjs.map +1 -1
  689. package/fesm2020/sidenav/testing.mjs +0 -66
  690. package/fesm2020/sidenav/testing.mjs.map +1 -1
  691. package/fesm2020/sidenav.mjs +22 -59
  692. package/fesm2020/sidenav.mjs.map +1 -1
  693. package/fesm2020/slide-toggle/testing.mjs +0 -31
  694. package/fesm2020/slide-toggle/testing.mjs.map +1 -1
  695. package/fesm2020/slide-toggle.mjs +17 -61
  696. package/fesm2020/slide-toggle.mjs.map +1 -1
  697. package/fesm2020/slider/testing.mjs +0 -30
  698. package/fesm2020/slider/testing.mjs.map +1 -1
  699. package/fesm2020/slider.mjs +16 -67
  700. package/fesm2020/slider.mjs.map +1 -1
  701. package/fesm2020/snack-bar/testing.mjs +0 -31
  702. package/fesm2020/snack-bar/testing.mjs.map +1 -1
  703. package/fesm2020/snack-bar.mjs +28 -100
  704. package/fesm2020/snack-bar.mjs.map +1 -1
  705. package/fesm2020/sort/testing.mjs +0 -30
  706. package/fesm2020/sort/testing.mjs.map +1 -1
  707. package/fesm2020/sort.mjs +13 -79
  708. package/fesm2020/sort.mjs.map +1 -1
  709. package/fesm2020/stepper/testing.mjs +0 -37
  710. package/fesm2020/stepper/testing.mjs.map +1 -1
  711. package/fesm2020/stepper.mjs +31 -110
  712. package/fesm2020/stepper.mjs.map +1 -1
  713. package/fesm2020/table/testing.mjs +0 -37
  714. package/fesm2020/table/testing.mjs.map +1 -1
  715. package/fesm2020/table.mjs +55 -113
  716. package/fesm2020/table.mjs.map +1 -1
  717. package/fesm2020/tabs/testing.mjs +0 -51
  718. package/fesm2020/tabs/testing.mjs.map +1 -1
  719. package/fesm2020/tabs.mjs +61 -168
  720. package/fesm2020/tabs.mjs.map +1 -1
  721. package/fesm2020/toolbar/testing.mjs +0 -31
  722. package/fesm2020/toolbar/testing.mjs.map +1 -1
  723. package/fesm2020/toolbar.mjs +10 -40
  724. package/fesm2020/toolbar.mjs.map +1 -1
  725. package/fesm2020/tooltip/testing.mjs +0 -31
  726. package/fesm2020/tooltip/testing.mjs.map +1 -1
  727. package/fesm2020/tooltip.mjs +30 -59
  728. package/fesm2020/tooltip.mjs.map +1 -1
  729. package/fesm2020/tree/testing.mjs +0 -38
  730. package/fesm2020/tree/testing.mjs.map +1 -1
  731. package/fesm2020/tree.mjs +25 -90
  732. package/fesm2020/tree.mjs.map +1 -1
  733. package/form-field/index.d.ts +7 -7
  734. package/grid-list/index.d.ts +2 -2
  735. package/icon/index.d.ts +1 -1
  736. package/input/index.d.ts +1 -1
  737. package/legacy-autocomplete/index.d.ts +1 -1
  738. package/legacy-button/index.d.ts +2 -2
  739. package/legacy-card/index.d.ts +1 -1
  740. package/legacy-checkbox/index.d.ts +1 -1
  741. package/legacy-chips/index.d.ts +4 -5
  742. package/legacy-core/index.d.ts +1 -1
  743. package/legacy-dialog/index.d.ts +3 -3
  744. package/legacy-form-field/index.d.ts +3 -3
  745. package/legacy-list/index.d.ts +5 -5
  746. package/legacy-menu/index.d.ts +1 -1
  747. package/legacy-paginator/index.d.ts +1 -1
  748. package/legacy-prebuilt-themes/legacy-deeppurple-amber.css +1 -1
  749. package/legacy-prebuilt-themes/legacy-indigo-pink.css +1 -1
  750. package/legacy-prebuilt-themes/legacy-pink-bluegrey.css +1 -1
  751. package/legacy-prebuilt-themes/legacy-purple-green.css +1 -1
  752. package/legacy-progress-bar/index.d.ts +1 -1
  753. package/legacy-progress-spinner/index.d.ts +1 -1
  754. package/legacy-radio/index.d.ts +1 -1
  755. package/legacy-select/index.d.ts +1 -1
  756. package/legacy-slide-toggle/index.d.ts +1 -1
  757. package/legacy-slider/index.d.ts +1 -1
  758. package/legacy-table/index.d.ts +4 -4
  759. package/legacy-tabs/index.d.ts +7 -7
  760. package/legacy-tooltip/index.d.ts +1 -2
  761. package/list/_list-theme.scss +20 -23
  762. package/list/index.d.ts +5 -5
  763. package/menu/index.d.ts +3 -4
  764. package/package.json +2 -2
  765. package/paginator/index.d.ts +2 -2
  766. package/prebuilt-themes/deeppurple-amber.css +1 -1
  767. package/prebuilt-themes/indigo-pink.css +1 -1
  768. package/prebuilt-themes/pink-bluegrey.css +1 -1
  769. package/prebuilt-themes/purple-green.css +1 -1
  770. package/progress-bar/_progress-bar-theme.scss +17 -24
  771. package/progress-bar/index.d.ts +1 -1
  772. package/progress-spinner/index.d.ts +1 -1
  773. package/radio/_radio-theme.scss +33 -17
  774. package/radio/index.d.ts +3 -3
  775. package/schematics/ng-add/index.js +1 -1
  776. package/schematics/ng-add/index.mjs +1 -1
  777. package/schematics/ng-generate/mdc-migration/index_bundled.js +833 -404
  778. package/schematics/ng-generate/mdc-migration/index_bundled.js.map +2 -2
  779. package/schematics/ng-update/index_bundled.js +25 -25
  780. package/select/index.d.ts +2 -2
  781. package/sidenav/index.d.ts +3 -3
  782. package/slide-toggle/index.d.ts +2 -2
  783. package/slider/index.d.ts +3 -3
  784. package/sort/index.d.ts +2 -2
  785. package/stepper/index.d.ts +6 -6
  786. package/table/index.d.ts +4 -4
  787. package/tabs/index.d.ts +14 -14
  788. package/toolbar/index.d.ts +1 -1
  789. package/tooltip/index.d.ts +1 -1
  790. package/tree/index.d.ts +5 -5
  791. package/radio/_radio-private.scss +0 -60
@@ -7,8 +7,9 @@
7
7
  */
8
8
  import { FocusMonitor } from '@angular/cdk/a11y';
9
9
  import { Platform } from '@angular/cdk/platform';
10
- import { Directive, ElementRef, inject, NgZone, ViewChild, } from '@angular/core';
11
- import { MatRipple, mixinColor, mixinDisabled, mixinDisableRipple, } from '@angular/material/core';
10
+ import { Directive, ElementRef, inject, NgZone, } from '@angular/core';
11
+ import { mixinColor, mixinDisabled, mixinDisableRipple, } from '@angular/material/core';
12
+ import { MAT_BUTTON_RIPPLE_UNINITIALIZED, MatButtonLazyLoader } from './button-lazy-loader';
12
13
  import * as i0 from "@angular/core";
13
14
  import * as i1 from "@angular/cdk/platform";
14
15
  /** Inputs common to all buttons. */
@@ -24,6 +25,9 @@ export const MAT_BUTTON_HOST = {
24
25
  // Add a class that applies to all buttons. This makes it easier to target if somebody
25
26
  // wants to target all Material buttons.
26
27
  '[class.mat-mdc-button-base]': 'true',
28
+ [MAT_BUTTON_RIPPLE_UNINITIALIZED]: '',
29
+ '[attr.mat-button-disabled]': '_isRippleDisabled()',
30
+ '[attr.mat-button-is-fab]': '_isFab',
27
31
  };
28
32
  /** List of classes to add to buttons instances based on host attribute selector. */
29
33
  const HOST_SELECTOR_MDC_CLASS_PAIR = [
@@ -65,12 +69,31 @@ export const _MatButtonMixin = mixinColor(mixinDisabled(mixinDisableRipple(class
65
69
  })));
66
70
  /** Base class for all buttons. */
67
71
  class MatButtonBase extends _MatButtonMixin {
72
+ /**
73
+ * Reference to the MatRipple instance of the button.
74
+ * @deprecated Considered an implementation detail. To be removed.
75
+ * @breaking-change 17.0.0
76
+ */
77
+ get ripple() {
78
+ if (!this._ripple && this._rippleLoader) {
79
+ this._ripple = this._rippleLoader._createMatRipple(this._elementRef.nativeElement);
80
+ }
81
+ return this._ripple;
82
+ }
83
+ set ripple(v) {
84
+ this._ripple = v;
85
+ }
68
86
  constructor(elementRef, _platform, _ngZone, _animationMode) {
69
87
  super(elementRef);
70
88
  this._platform = _platform;
71
89
  this._ngZone = _ngZone;
72
90
  this._animationMode = _animationMode;
73
91
  this._focusMonitor = inject(FocusMonitor);
92
+ /**
93
+ * Handles the lazy creation of the MatButton ripple.
94
+ * Used to improve initial load time of large applications.
95
+ */
96
+ this._rippleLoader = inject(MatButtonLazyLoader);
74
97
  /** Whether this button is a FAB. Used to apply the correct class on the ripple. */
75
98
  this._isFab = false;
76
99
  const classList = elementRef.nativeElement.classList;
@@ -104,18 +127,17 @@ class MatButtonBase extends _MatButtonMixin {
104
127
  return attributes.some(attribute => this._elementRef.nativeElement.hasAttribute(attribute));
105
128
  }
106
129
  _isRippleDisabled() {
107
- return this.disableRipple || this.disabled;
130
+ if (this._ripple) {
131
+ this._ripple.disabled = this.disableRipple || this.disabled;
132
+ }
108
133
  }
109
134
  }
110
- MatButtonBase.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0-next.2", ngImport: i0, type: MatButtonBase, deps: "invalid", target: i0.ɵɵFactoryTarget.Directive });
111
- MatButtonBase.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.0.0-next.2", type: MatButtonBase, viewQueries: [{ propertyName: "ripple", first: true, predicate: MatRipple, descendants: true }], usesInheritance: true, ngImport: i0 });
135
+ MatButtonBase.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0-next.7", ngImport: i0, type: MatButtonBase, deps: "invalid", target: i0.ɵɵFactoryTarget.Directive });
136
+ MatButtonBase.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.0.0-next.7", type: MatButtonBase, usesInheritance: true, ngImport: i0 });
112
137
  export { MatButtonBase };
113
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0-next.2", ngImport: i0, type: MatButtonBase, decorators: [{
138
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0-next.7", ngImport: i0, type: MatButtonBase, decorators: [{
114
139
  type: Directive
115
- }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1.Platform }, { type: i0.NgZone }, { type: undefined }]; }, propDecorators: { ripple: [{
116
- type: ViewChild,
117
- args: [MatRipple]
118
- }] } });
140
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1.Platform }, { type: i0.NgZone }, { type: undefined }]; } });
119
141
  /** Shared inputs by buttons using the `<a>` tag */
120
142
  export const MAT_ANCHOR_INPUTS = ['disabled', 'disableRipple', 'color', 'tabIndex'];
121
143
  /** Shared host configuration for buttons using the `<a>` tag. */
@@ -134,6 +156,9 @@ export const MAT_ANCHOR_HOST = {
134
156
  // Add a class that applies to all buttons. This makes it easier to target if somebody
135
157
  // wants to target all Material buttons.
136
158
  '[class.mat-mdc-button-base]': 'true',
159
+ [MAT_BUTTON_RIPPLE_UNINITIALIZED]: '',
160
+ '[attr.mat-button-disabled]': '_isRippleDisabled()',
161
+ '[attr.mat-button-is-fab]': '_isFab',
137
162
  };
138
163
  /**
139
164
  * Anchor button base.
@@ -159,10 +184,10 @@ class MatAnchorBase extends MatButtonBase {
159
184
  this._elementRef.nativeElement.removeEventListener('click', this._haltDisabledEvents);
160
185
  }
161
186
  }
162
- MatAnchorBase.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0-next.2", ngImport: i0, type: MatAnchorBase, deps: "invalid", target: i0.ɵɵFactoryTarget.Directive });
163
- MatAnchorBase.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.0.0-next.2", type: MatAnchorBase, usesInheritance: true, ngImport: i0 });
187
+ MatAnchorBase.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0-next.7", ngImport: i0, type: MatAnchorBase, deps: "invalid", target: i0.ɵɵFactoryTarget.Directive });
188
+ MatAnchorBase.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.0.0-next.7", type: MatAnchorBase, usesInheritance: true, ngImport: i0 });
164
189
  export { MatAnchorBase };
165
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0-next.2", ngImport: i0, type: MatAnchorBase, decorators: [{
190
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0-next.7", ngImport: i0, type: MatAnchorBase, decorators: [{
166
191
  type: Directive
167
192
  }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1.Platform }, { type: i0.NgZone }, { type: undefined }]; } });
168
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnV0dG9uLWJhc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbWF0ZXJpYWwvYnV0dG9uL2J1dHRvbi1iYXNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7R0FNRztBQUVILE9BQU8sRUFBQyxZQUFZLEVBQWMsTUFBTSxtQkFBbUIsQ0FBQztBQUM1RCxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sdUJBQXVCLENBQUM7QUFDL0MsT0FBTyxFQUVMLFNBQVMsRUFDVCxVQUFVLEVBQ1YsTUFBTSxFQUNOLE1BQU0sRUFHTixTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUlMLFNBQVMsRUFDVCxVQUFVLEVBQ1YsYUFBYSxFQUNiLGtCQUFrQixHQUNuQixNQUFNLHdCQUF3QixDQUFDOzs7QUFFaEMsb0NBQW9DO0FBQ3BDLE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFHLENBQUMsVUFBVSxFQUFFLGVBQWUsRUFBRSxPQUFPLENBQUMsQ0FBQztBQUV4RSxnREFBZ0Q7QUFDaEQsTUFBTSxDQUFDLE1BQU0sZUFBZSxHQUFHO0lBQzdCLGlCQUFpQixFQUFFLGtCQUFrQjtJQUNyQyxpQ0FBaUMsRUFBRSxxQ0FBcUM7SUFDeEUsMEZBQTBGO0lBQzFGLHNGQUFzRjtJQUN0RixpQ0FBaUM7SUFDakMsc0JBQXNCLEVBQUUsUUFBUTtJQUNoQyxzRkFBc0Y7SUFDdEYsd0NBQXdDO0lBQ3hDLDZCQUE2QixFQUFFLE1BQU07Q0FDdEMsQ0FBQztBQUVGLG9GQUFvRjtBQUNwRixNQUFNLDRCQUE0QixHQUErQztJQUMvRTtRQUNFLFFBQVEsRUFBRSxZQUFZO1FBQ3RCLFVBQVUsRUFBRSxDQUFDLFlBQVksRUFBRSxnQkFBZ0IsQ0FBQztLQUM3QztJQUNEO1FBQ0UsUUFBUSxFQUFFLGlCQUFpQjtRQUMzQixVQUFVLEVBQUUsQ0FBQyxZQUFZLEVBQUUsd0JBQXdCLEVBQUUsMkJBQTJCLENBQUM7S0FD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LENBQUMsaUJBQWlCLENBQUMsR0FBRyxFQUFFO1lBQ2xDLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsbUJBQW1CLENBQUMsQ0FBQztRQUNyRixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFUSxXQUFXO1FBQ2xCLEtBQUssQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNwQixJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQyxtQkFBbUIsQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLG1CQUFtQixDQUFDLENBQUM7SUFDeEYsQ0FBQzs7aUhBaEJVLGFBQWE7cUdBQWIsYUFBYTtTQUFiLGFBQWE7a0dBQWIsYUFBYTtrQkFEekIsU0FBUyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuXG5pbXBvcnQge0ZvY3VzTW9uaXRvciwgRm9jdXNPcmlnaW59IGZyb20gJ0Bhbmd1bGFyL2Nkay9hMTF5JztcbmltcG9ydCB7UGxhdGZvcm19IGZyb20gJ0Bhbmd1bGFyL2Nkay9wbGF0Zm9ybSc7XG5pbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBEaXJlY3RpdmUsXG4gIEVsZW1lbnRSZWYsXG4gIGluamVjdCxcbiAgTmdab25lLFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIENhbkNvbG9yLFxuICBDYW5EaXNhYmxlLFxuICBDYW5EaXNhYmxlUmlwcGxlLFxuICBNYXRSaXBwbGUsXG4gIG1peGluQ29sb3IsXG4gIG1peGluRGlzYWJsZWQsXG4gIG1peGluRGlzYWJsZVJpcHBsZSxcbn0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY29yZSc7XG5cbi8qKiBJbnB1dHMgY29tbW9uIHRvIGFsbCBidXR0b25zLiAqL1xuZXhwb3J0IGNvbnN0IE1BVF9CVVRUT05fSU5QVVRTID0gWydkaXNhYmxlZCcsICdkaXNhYmxlUmlwcGxlJywgJ2NvbG9yJ107XG5cbi8qKiBTaGFyZWQgaG9zdCBjb25maWd1cmF0aW9uIGZvciBhbGwgYnV0dG9ucyAqL1xuZXhwb3J0IGNvbnN0IE1BVF9CVVRUT05fSE9TVCA9IHtcbiAgJ1thdHRyLmRpc2FibGVkXSc6ICdkaXNhYmxlZCB8fCBudWxsJyxcbiAgJ1tjbGFzcy5fbWF0LWFuaW1hdGlvbi1ub29wYWJsZV0nOiAnX2FuaW1hdGlvbk1vZGUgPT09IFwiTm9vcEFuaW1hdGlvbnNcIicsXG4gIC8vIE1EQyBhdXRvbWF0aWNhbGx5IGFwcGxpZXMgdGhlIHByaW1hcnkgdGhlbWUgY29sb3IgdG8gdGhlIGJ1dHRvbiwgYnV0IHdlIHdhbnQgdG8gc3VwcG9ydFxuICAvLyBhbiB1bnRoZW1lZCB2ZXJzaW9uLiBJZiBjb2xvciBpcyB1bmRlZmluZWQsIGFwcGx5IGEgQ1NTIGNsYXNzIHRoYXQgbWFrZXMgaXQgZWFzeSB0b1xuICAvLyBzZWxlY3QgYW5kIHN0eWxlIHRoaXMgXCJ0aGVtZVwiLlxuICAnW2NsYXNzLm1hdC11bnRoZW1lZF0nOiAnIWNvbG9yJyxcbiAgLy8gQWRkIGEgY2xhc3MgdGhhdCBhcHBsaWVzIHRvIGFsbCBidXR0b25zLiBUaGlzIG1ha2VzIGl0IGVhc2llciB0byB0YXJnZXQgaWYgc29tZWJvZHlcbiAgLy8gd2FudHMgdG8gdGFyZ2V0IGFsbCBNYXRlcmlhbCBidXR0b25zLlxuICAnW2NsYXNzLm1hdC1tZGMtYnV0dG9uLWJhc2VdJzogJ3RydWUnLFxufTtcblxuLyoqIExpc3Qgb2YgY2xhc3NlcyB0byBhZGQgdG8gYnV0dG9ucyBpbnN0YW5jZXMgYmFzZWQgb24gaG9zdCBhdHRyaWJ1dGUgc2VsZWN0b3IuICovXG5jb25zdCBIT1NUX1NFTEVDVE9SX01EQ19DTEFTU19QQUlSOiB7c2VsZWN0b3I6IHN0cmluZzsgbWRjQ2xhc3Nlczogc3RyaW5nW119W10gPSBbXG4gIHtcbiAgICBzZWxlY3RvcjogJ21hdC1idXR0b24nLFxuICAgIG1kY0NsYXNzZXM6IFsnbWRjLWJ1dHRvbicsICdtYXQtbWRjLWJ1dHRvbiddLFxuICB9LFxuICB7XG4gICAgc2VsZWN0b3I6ICdtYXQtZmxhdC1idXR0b24nLFxuICAgIG1kY0NsYXNzZXM6IFsnbWRjLWJ1dHRvbicsICdtZGMtYnV0dG9uLS11bmVsZXZhdGVkJywgJ21hdC1tZGMtdW5lbGV2YXRlZC1idXR0b24nXSxcbiAgfSxcbiAge1xuICAgIHNlbGVjdG9yOiAnbWF0LXJhaXNlZC1idXR0b24nLFxuICAgIG1kY0NsYXNzZXM6IFsnbWRjLWJ1dHRvbicsICdtZGMtYnV0dG9uLS1yYWlzZWQnLCAnbWF0LW1kYy1yYWlzZWQtYnV0dG9uJ10sXG4gIH0sXG4gIHtcbiAgICBzZWxlY3RvcjogJ21hdC1zdHJva2VkLWJ1dHRvbicsXG4gICAgbWRjQ2xhc3NlczogWydtZGMtYnV0dG9uJywgJ21kYy1idXR0b24tLW91dGxpbmVkJywgJ21hdC1tZGMtb3V0bGluZWQtYnV0dG9uJ10sXG4gIH0sXG4gIHtcbiAgICBzZWxlY3RvcjogJ21hdC1mYWInLFxuICAgIG1kY0NsYXNzZXM6IFsnbWRjLWZhYicsICdtYXQtbWRjLWZhYiddLFxuICB9LFxuICB7XG4gICAgc2VsZWN0b3I6ICdtYXQtbWluaS1mYWInLFxuICAgIG1kY0NsYXNzZXM6IFsnbWRjLWZhYicsICdtZGMtZmFiLS1taW5pJywgJ21hdC1tZGMtbWluaS1mYWInXSxcbiAgfSxcbiAge1xuICAgIHNlbGVjdG9yOiAnbWF0LWljb24tYnV0dG9uJyxcbiAgICBtZGNDbGFzc2VzOiBbJ21kYy1pY29uLWJ1dHRvbicsICdtYXQtbWRjLWljb24tYnV0dG9uJ10sXG4gIH0sXG5dO1xuXG4vLyBCb2lsZXJwbGF0ZSBmb3IgYXBwbHlpbmcgbWl4aW5zIHRvIE1hdEJ1dHRvbi5cbi8qKiBAZG9jcy1wcml2YXRlICovXG5leHBvcnQgY29uc3QgX01hdEJ1dHRvbk1peGluID0gbWl4aW5Db2xvcihcbiAgbWl4aW5EaXNhYmxlZChcbiAgICBtaXhpbkRpc2FibGVSaXBwbGUoXG4gICAgICBjbGFzcyB7XG4gICAgICAgIGNvbnN0cnVjdG9yKHB1YmxpYyBfZWxlbWVudFJlZjogRWxlbWVudFJlZikge31cbiAgICAgIH0sXG4gICAgKSxcbiAgKSxcbik7XG5cbi8qKiBCYXNlIGNsYXNzIGZvciBhbGwgYnV0dG9ucy4gICovXG5ARGlyZWN0aXZlKClcbmV4cG9ydCBjbGFzcyBNYXRCdXR0b25CYXNlXG4gIGV4dGVuZHMgX01hdEJ1dHRvbk1peGluXG4gIGltcGxlbWVudHMgQ2FuRGlzYWJsZSwgQ2FuQ29sb3IsIENhbkRpc2FibGVSaXBwbGUsIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveVxue1xuICBwcml2YXRlIHJlYWRvbmx5IF9mb2N1c01vbml0b3IgPSBpbmplY3QoRm9jdXNNb25pdG9yKTtcblxuICAvKiogV2hldGhlciB0aGlzIGJ1dHRvbiBpcyBhIEZBQi4gVXNlZCB0byBhcHBseSB0aGUgY29ycmVjdCBjbGFzcyBvbiB0aGUgcmlwcGxlLiAqL1xuICBfaXNGYWIgPSBmYWxzZTtcblxuICAvKiogUmVmZXJlbmNlIHRvIHRoZSBNYXRSaXBwbGUgaW5zdGFuY2Ugb2YgdGhlIGJ1dHRvbi4gKi9cbiAgQFZpZXdDaGlsZChNYXRSaXBwbGUpIHJpcHBsZTogTWF0UmlwcGxlO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXG4gICAgcHVibGljIF9wbGF0Zm9ybTogUGxhdGZvcm0sXG4gICAgcHVibGljIF9uZ1pvbmU6IE5nWm9uZSxcbiAgICBwdWJsaWMgX2FuaW1hdGlvbk1vZGU/OiBzdHJpbmcsXG4gICkge1xuICAgIHN1cGVyKGVsZW1lbnRSZWYpO1xuXG4gICAgY29uc3QgY2xhc3NMaXN0ID0gKGVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCBhcyBIVE1MRWxlbWVudCkuY2xhc3NMaXN0O1xuXG4gICAgLy8gRm9yIGVhY2ggb2YgdGhlIHZhcmlhbnQgc2VsZWN0b3JzIHRoYXQgaXMgcHJlc2VudCBpbiB0aGUgYnV0dG9uJ3MgaG9zdFxuICAgIC8vIGF0dHJpYnV0ZXMsIGFkZCB0aGUgY29ycmVjdCBjb3JyZXNwb25kaW5nIE1EQyBjbGFzc2VzLlxuICAgIGZvciAoY29uc3QgcGFpciBvZiBIT1NUX1NFTEVDVE9SX01EQ19DTEFTU19QQUlSKSB7XG4gICAgICBpZiAodGhpcy5faGFzSG9zdEF0dHJpYnV0ZXMocGFpci5zZWxlY3RvcikpIHtcbiAgICAgICAgcGFpci5tZGNDbGFzc2VzLmZvckVhY2goKGNsYXNzTmFtZTogc3RyaW5nKSA9PiB7XG4gICAgICAgICAgY2xhc3NMaXN0LmFkZChjbGFzc05hbWUpO1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgdGhpcy5fZm9jdXNNb25pdG9yLm1vbml0b3IodGhpcy5fZWxlbWVudFJlZiwgdHJ1ZSk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLl9mb2N1c01vbml0b3Iuc3RvcE1vbml0b3JpbmcodGhpcy5fZWxlbWVudFJlZik7XG4gIH1cblxuICAvKiogRm9jdXNlcyB0aGUgYnV0dG9uLiAqL1xuICBmb2N1cyhfb3JpZ2luOiBGb2N1c09yaWdpbiA9ICdwcm9ncmFtJywgb3B0aW9ucz86IEZvY3VzT3B0aW9ucyk6IHZvaWQge1xuICAgIGlmIChfb3JpZ2luKSB7XG4gICAgICB0aGlzLl9mb2N1c01vbml0b3IuZm9jdXNWaWEodGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCBfb3JpZ2luLCBvcHRpb25zKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmZvY3VzKG9wdGlvbnMpO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBHZXRzIHdoZXRoZXIgdGhlIGJ1dHRvbiBoYXMgb25lIG9mIHRoZSBnaXZlbiBhdHRyaWJ1dGVzLiAqL1xuICBwcml2YXRlIF9oYXNIb3N0QXR0cmlidXRlcyguLi5hdHRyaWJ1dGVzOiBzdHJpbmdbXSkge1xuICAgIHJldHVybiBhdHRyaWJ1dGVzLnNvbWUoYXR0cmlidXRlID0+IHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5oYXNBdHRyaWJ1dGUoYXR0cmlidXRlKSk7XG4gIH1cblxuICBfaXNSaXBwbGVEaXNhYmxlZCgpIHtcbiAgICByZXR1cm4gdGhpcy5kaXNhYmxlUmlwcGxlIHx8IHRoaXMuZGlzYWJsZWQ7XG4gIH1cbn1cblxuLyoqIFNoYXJlZCBpbnB1dHMgYnkgYnV0dG9ucyB1c2luZyB0aGUgYDxhPmAgdGFnICovXG5leHBvcnQgY29uc3QgTUFUX0FOQ0hPUl9JTlBVVFMgPSBbJ2Rpc2FibGVkJywgJ2Rpc2FibGVSaXBwbGUnLCAnY29sb3InLCAndGFiSW5kZXgnXTtcblxuLyoqIFNoYXJlZCBob3N0IGNvbmZpZ3VyYXRpb24gZm9yIGJ1dHRvbnMgdXNpbmcgdGhlIGA8YT5gIHRhZy4gKi9cbmV4cG9ydCBjb25zdCBNQVRfQU5DSE9SX0hPU1QgPSB7XG4gICdbYXR0ci5kaXNhYmxlZF0nOiAnZGlzYWJsZWQgfHwgbnVsbCcsXG4gICdbY2xhc3MuX21hdC1hbmltYXRpb24tbm9vcGFibGVdJzogJ19hbmltYXRpb25Nb2RlID09PSBcIk5vb3BBbmltYXRpb25zXCInLFxuXG4gIC8vIE5vdGUgdGhhdCB3ZSBpZ25vcmUgdGhlIHVzZXItc3BlY2lmaWVkIHRhYmluZGV4IHdoZW4gaXQncyBkaXNhYmxlZCBmb3JcbiAgLy8gY29uc2lzdGVuY3kgd2l0aCB0aGUgYG1hdC1idXR0b25gIGFwcGxpZWQgb24gbmF0aXZlIGJ1dHRvbnMgd2hlcmUgZXZlblxuICAvLyB0aG91Z2ggdGhleSBoYXZlIGFuIGluZGV4LCB0aGV5J3JlIG5vdCB0YWJiYWJsZS5cbiAgJ1thdHRyLnRhYmluZGV4XSc6ICdkaXNhYmxlZCA/IC0xIDogdGFiSW5kZXgnLFxuICAnW2F0dHIuYXJpYS1kaXNhYmxlZF0nOiAnZGlzYWJsZWQudG9TdHJpbmcoKScsXG4gIC8vIE1EQyBhdXRvbWF0aWNhbGx5IGFwcGxpZXMgdGhlIHByaW1hcnkgdGhlbWUgY29sb3IgdG8gdGhlIGJ1dHRvbiwgYnV0IHdlIHdhbnQgdG8gc3VwcG9ydFxuICAvLyBhbiB1bnRoZW1lZCB2ZXJzaW9uLiBJZiBjb2xvciBpcyB1bmRlZmluZWQsIGFwcGx5IGEgQ1NTIGNsYXNzIHRoYXQgbWFrZXMgaXQgZWFzeSB0b1xuICAvLyBzZWxlY3QgYW5kIHN0eWxlIHRoaXMgXCJ0aGVtZVwiLlxuICAnW2NsYXNzLm1hdC11bnRoZW1lZF0nOiAnIWNvbG9yJyxcbiAgLy8gQWRkIGEgY2xhc3MgdGhhdCBhcHBsaWVzIHRvIGFsbCBidXR0b25zLiBUaGlzIG1ha2VzIGl0IGVhc2llciB0byB0YXJnZXQgaWYgc29tZWJvZHlcbiAgLy8gd2FudHMgdG8gdGFyZ2V0IGFsbCBNYXRlcmlhbCBidXR0b25zLlxuICAnW2NsYXNzLm1hdC1tZGMtYnV0dG9uLWJhc2VdJzogJ3RydWUnLFxufTtcblxuLyoqXG4gKiBBbmNob3IgYnV0dG9uIGJhc2UuXG4gKi9cbkBEaXJlY3RpdmUoKVxuZXhwb3J0IGNsYXNzIE1hdEFuY2hvckJhc2UgZXh0ZW5kcyBNYXRCdXR0b25CYXNlIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICB0YWJJbmRleDogbnVtYmVyO1xuXG4gIGNvbnN0cnVjdG9yKGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsIHBsYXRmb3JtOiBQbGF0Zm9ybSwgbmdab25lOiBOZ1pvbmUsIGFuaW1hdGlvbk1vZGU/OiBzdHJpbmcpIHtcbiAgICBzdXBlcihlbGVtZW50UmVmLCBwbGF0Zm9ybSwgbmdab25lLCBhbmltYXRpb25Nb2RlKTtcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuX25nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCB0aGlzLl9oYWx0RGlzYWJsZWRFdmVudHMpO1xuICAgIH0pO1xuICB9XG5cbiAgb3ZlcnJpZGUgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgc3VwZXIubmdPbkRlc3Ryb3koKTtcbiAgICB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignY2xpY2snLCB0aGlzLl9oYWx0RGlzYWJsZWRFdmVudHMpO1xuICB9XG5cbiAgX2hhbHREaXNhYmxlZEV2ZW50cyA9IChldmVudDogRXZlbnQpOiB2b2lkID0+IHtcbiAgICAvLyBBIGRpc2FibGVkIGJ1dHRvbiBzaG91bGRuJ3QgYXBwbHkgYW55IGFjdGlvbnNcbiAgICBpZiAodGhpcy5kaXNhYmxlZCkge1xuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgIGV2ZW50LnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpO1xuICAgIH1cbiAgfTtcbn1cbiJdfQ==
193
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnV0dG9uLWJhc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbWF0ZXJpYWwvYnV0dG9uL2J1dHRvbi1iYXNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7R0FNRztBQUVILE9BQU8sRUFBQyxZQUFZLEVBQWMsTUFBTSxtQkFBbUIsQ0FBQztBQUM1RCxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sdUJBQXVCLENBQUM7QUFDL0MsT0FBTyxFQUVMLFNBQVMsRUFDVCxVQUFVLEVBQ1YsTUFBTSxFQUNOLE1BQU0sR0FHUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBS0wsVUFBVSxFQUNWLGFBQWEsRUFDYixrQkFBa0IsR0FDbkIsTUFBTSx3QkFBd0IsQ0FBQztBQUNoQyxPQUFPLEVBQUMsK0JBQStCLEVBQUUsbUJBQW1CLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQzs7O0FBRTFGLG9DQUFvQztBQUNwQyxNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRyxDQUFDLFVBQVUsRUFBRSxlQUFlLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFFeEUsZ0RBQWdEO0FBQ2hELE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBRztJQUM3QixpQkFBaUIsRUFBRSxrQkFBa0I7SUFDckMsaUNBQWlDLEVBQUUscUNBQXFDO0lBQ3hFLDBGQUEwRjtJQUMxRixzRkFBc0Y7SUFDdEYsaUNBQWlDO0lBQ2pDLHNCQUFzQixFQUFFLFFBQVE7SUFDaEMsc0ZBQXNGO0lBQ3RGLHdDQUF3QztJQUN4Qyw2QkFBNkIsRUFBRSxNQUFNO0lBQ3JDLENBQUMsK0JBQStCLENBQUMsRUFBRSxFQUFFO0lBQ3JDLDRCQUE0QixFQUFFLHFCQUFxQjtJQUNuRCwwQkFBMEIsRUFBRSxRQUFRO0NBQ3JDLENBQUM7QUFFRixvRkFBb0Y7QUFDcEYsTUFBTSw0QkFBNEIsR0FBK0M7SUFDL0U7UUFDRSxRQUFRLEVBQUUsWUFBWTtRQUN0QixVQUFVLEVBQUUs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LFNBQVMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cblxuaW1wb3J0IHtGb2N1c01vbml0b3IsIEZvY3VzT3JpZ2lufSBmcm9tICdAYW5ndWxhci9jZGsvYTExeSc7XG5pbXBvcnQge1BsYXRmb3JtfSBmcm9tICdAYW5ndWxhci9jZGsvcGxhdGZvcm0nO1xuaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgRGlyZWN0aXZlLFxuICBFbGVtZW50UmVmLFxuICBpbmplY3QsXG4gIE5nWm9uZSxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgQ2FuQ29sb3IsXG4gIENhbkRpc2FibGUsXG4gIENhbkRpc2FibGVSaXBwbGUsXG4gIE1hdFJpcHBsZSxcbiAgbWl4aW5Db2xvcixcbiAgbWl4aW5EaXNhYmxlZCxcbiAgbWl4aW5EaXNhYmxlUmlwcGxlLFxufSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jb3JlJztcbmltcG9ydCB7TUFUX0JVVFRPTl9SSVBQTEVfVU5JTklUSUFMSVpFRCwgTWF0QnV0dG9uTGF6eUxvYWRlcn0gZnJvbSAnLi9idXR0b24tbGF6eS1sb2FkZXInO1xuXG4vKiogSW5wdXRzIGNvbW1vbiB0byBhbGwgYnV0dG9ucy4gKi9cbmV4cG9ydCBjb25zdCBNQVRfQlVUVE9OX0lOUFVUUyA9IFsnZGlzYWJsZWQnLCAnZGlzYWJsZVJpcHBsZScsICdjb2xvciddO1xuXG4vKiogU2hhcmVkIGhvc3QgY29uZmlndXJhdGlvbiBmb3IgYWxsIGJ1dHRvbnMgKi9cbmV4cG9ydCBjb25zdCBNQVRfQlVUVE9OX0hPU1QgPSB7XG4gICdbYXR0ci5kaXNhYmxlZF0nOiAnZGlzYWJsZWQgfHwgbnVsbCcsXG4gICdbY2xhc3MuX21hdC1hbmltYXRpb24tbm9vcGFibGVdJzogJ19hbmltYXRpb25Nb2RlID09PSBcIk5vb3BBbmltYXRpb25zXCInLFxuICAvLyBNREMgYXV0b21hdGljYWxseSBhcHBsaWVzIHRoZSBwcmltYXJ5IHRoZW1lIGNvbG9yIHRvIHRoZSBidXR0b24sIGJ1dCB3ZSB3YW50IHRvIHN1cHBvcnRcbiAgLy8gYW4gdW50aGVtZWQgdmVyc2lvbi4gSWYgY29sb3IgaXMgdW5kZWZpbmVkLCBhcHBseSBhIENTUyBjbGFzcyB0aGF0IG1ha2VzIGl0IGVhc3kgdG9cbiAgLy8gc2VsZWN0IGFuZCBzdHlsZSB0aGlzIFwidGhlbWVcIi5cbiAgJ1tjbGFzcy5tYXQtdW50aGVtZWRdJzogJyFjb2xvcicsXG4gIC8vIEFkZCBhIGNsYXNzIHRoYXQgYXBwbGllcyB0byBhbGwgYnV0dG9ucy4gVGhpcyBtYWtlcyBpdCBlYXNpZXIgdG8gdGFyZ2V0IGlmIHNvbWVib2R5XG4gIC8vIHdhbnRzIHRvIHRhcmdldCBhbGwgTWF0ZXJpYWwgYnV0dG9ucy5cbiAgJ1tjbGFzcy5tYXQtbWRjLWJ1dHRvbi1iYXNlXSc6ICd0cnVlJyxcbiAgW01BVF9CVVRUT05fUklQUExFX1VOSU5JVElBTElaRURdOiAnJyxcbiAgJ1thdHRyLm1hdC1idXR0b24tZGlzYWJsZWRdJzogJ19pc1JpcHBsZURpc2FibGVkKCknLFxuICAnW2F0dHIubWF0LWJ1dHRvbi1pcy1mYWJdJzogJ19pc0ZhYicsXG59O1xuXG4vKiogTGlzdCBvZiBjbGFzc2VzIHRvIGFkZCB0byBidXR0b25zIGluc3RhbmNlcyBiYXNlZCBvbiBob3N0IGF0dHJpYnV0ZSBzZWxlY3Rvci4gKi9cbmNvbnN0IEhPU1RfU0VMRUNUT1JfTURDX0NMQVNTX1BBSVI6IHtzZWxlY3Rvcjogc3RyaW5nOyBtZGNDbGFzc2VzOiBzdHJpbmdbXX1bXSA9IFtcbiAge1xuICAgIHNlbGVjdG9yOiAnbWF0LWJ1dHRvbicsXG4gICAgbWRjQ2xhc3NlczogWydtZGMtYnV0dG9uJywgJ21hdC1tZGMtYnV0dG9uJ10sXG4gIH0sXG4gIHtcbiAgICBzZWxlY3RvcjogJ21hdC1mbGF0LWJ1dHRvbicsXG4gICAgbWRjQ2xhc3NlczogWydtZGMtYnV0dG9uJywgJ21kYy1idXR0b24tLXVuZWxldmF0ZWQnLCAnbWF0LW1kYy11bmVsZXZhdGVkLWJ1dHRvbiddLFxuICB9LFxuICB7XG4gICAgc2VsZWN0b3I6ICdtYXQtcmFpc2VkLWJ1dHRvbicsXG4gICAgbWRjQ2xhc3NlczogWydtZGMtYnV0dG9uJywgJ21kYy1idXR0b24tLXJhaXNlZCcsICdtYXQtbWRjLXJhaXNlZC1idXR0b24nXSxcbiAgfSxcbiAge1xuICAgIHNlbGVjdG9yOiAnbWF0LXN0cm9rZWQtYnV0dG9uJyxcbiAgICBtZGNDbGFzc2VzOiBbJ21kYy1idXR0b24nLCAnbWRjLWJ1dHRvbi0tb3V0bGluZWQnLCAnbWF0LW1kYy1vdXRsaW5lZC1idXR0b24nXSxcbiAgfSxcbiAge1xuICAgIHNlbGVjdG9yOiAnbWF0LWZhYicsXG4gICAgbWRjQ2xhc3NlczogWydtZGMtZmFiJywgJ21hdC1tZGMtZmFiJ10sXG4gIH0sXG4gIHtcbiAgICBzZWxlY3RvcjogJ21hdC1taW5pLWZhYicsXG4gICAgbWRjQ2xhc3NlczogWydtZGMtZmFiJywgJ21kYy1mYWItLW1pbmknLCAnbWF0LW1kYy1taW5pLWZhYiddLFxuICB9LFxuICB7XG4gICAgc2VsZWN0b3I6ICdtYXQtaWNvbi1idXR0b24nLFxuICAgIG1kY0NsYXNzZXM6IFsnbWRjLWljb24tYnV0dG9uJywgJ21hdC1tZGMtaWNvbi1idXR0b24nXSxcbiAgfSxcbl07XG5cbi8vIEJvaWxlcnBsYXRlIGZvciBhcHBseWluZyBtaXhpbnMgdG8gTWF0QnV0dG9uLlxuLyoqIEBkb2NzLXByaXZhdGUgKi9cbmV4cG9ydCBjb25zdCBfTWF0QnV0dG9uTWl4aW4gPSBtaXhpbkNvbG9yKFxuICBtaXhpbkRpc2FibGVkKFxuICAgIG1peGluRGlzYWJsZVJpcHBsZShcbiAgICAgIGNsYXNzIHtcbiAgICAgICAgY29uc3RydWN0b3IocHVibGljIF9lbGVtZW50UmVmOiBFbGVtZW50UmVmKSB7fVxuICAgICAgfSxcbiAgICApLFxuICApLFxuKTtcblxuLyoqIEJhc2UgY2xhc3MgZm9yIGFsbCBidXR0b25zLiAgKi9cbkBEaXJlY3RpdmUoKVxuZXhwb3J0IGNsYXNzIE1hdEJ1dHRvbkJhc2VcbiAgZXh0ZW5kcyBfTWF0QnV0dG9uTWl4aW5cbiAgaW1wbGVtZW50cyBDYW5EaXNhYmxlLCBDYW5Db2xvciwgQ2FuRGlzYWJsZVJpcHBsZSwgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95XG57XG4gIHByaXZhdGUgcmVhZG9ubHkgX2ZvY3VzTW9uaXRvciA9IGluamVjdChGb2N1c01vbml0b3IpO1xuXG4gIC8qKlxuICAgKiBIYW5kbGVzIHRoZSBsYXp5IGNyZWF0aW9uIG9mIHRoZSBNYXRCdXR0b24gcmlwcGxlLlxuICAgKiBVc2VkIHRvIGltcHJvdmUgaW5pdGlhbCBsb2FkIHRpbWUgb2YgbGFyZ2UgYXBwbGljYXRpb25zLlxuICAgKi9cbiAgX3JpcHBsZUxvYWRlcjogTWF0QnV0dG9uTGF6eUxvYWRlciA9IGluamVjdChNYXRCdXR0b25MYXp5TG9hZGVyKTtcblxuICAvKiogV2hldGhlciB0aGlzIGJ1dHRvbiBpcyBhIEZBQi4gVXNlZCB0byBhcHBseSB0aGUgY29ycmVjdCBjbGFzcyBvbiB0aGUgcmlwcGxlLiAqL1xuICBfaXNGYWIgPSBmYWxzZTtcblxuICAvKipcbiAgICogUmVmZXJlbmNlIHRvIHRoZSBNYXRSaXBwbGUgaW5zdGFuY2Ugb2YgdGhlIGJ1dHRvbi5cbiAgICogQGRlcHJlY2F0ZWQgQ29uc2lkZXJlZCBhbiBpbXBsZW1lbnRhdGlvbiBkZXRhaWwuIFRvIGJlIHJlbW92ZWQuXG4gICAqIEBicmVha2luZy1jaGFuZ2UgMTcuMC4wXG4gICAqL1xuICBnZXQgcmlwcGxlKCk6IE1hdFJpcHBsZSB7XG4gICAgaWYgKCF0aGlzLl9yaXBwbGUgJiYgdGhpcy5fcmlwcGxlTG9hZGVyKSB7XG4gICAgICB0aGlzLl9yaXBwbGUgPSB0aGlzLl9yaXBwbGVMb2FkZXIuX2NyZWF0ZU1hdFJpcHBsZSh0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQpO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5fcmlwcGxlITtcbiAgfVxuICBzZXQgcmlwcGxlKHY6IE1hdFJpcHBsZSkge1xuICAgIHRoaXMuX3JpcHBsZSA9IHY7XG4gIH1cblxuICAvKiogQGRvY3MtcHJpdmF0ZSBSZWZlcmVuY2UgdG8gdGhlIE1hdFJpcHBsZSBpbnN0YW5jZSBvZiB0aGUgYnV0dG9uLiAqL1xuICBwcm90ZWN0ZWQgX3JpcHBsZT86IE1hdFJpcHBsZTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBlbGVtZW50UmVmOiBFbGVtZW50UmVmLFxuICAgIHB1YmxpYyBfcGxhdGZvcm06IFBsYXRmb3JtLFxuICAgIHB1YmxpYyBfbmdab25lOiBOZ1pvbmUsXG4gICAgcHVibGljIF9hbmltYXRpb25Nb2RlPzogc3RyaW5nLFxuICApIHtcbiAgICBzdXBlcihlbGVtZW50UmVmKTtcblxuICAgIGNvbnN0IGNsYXNzTGlzdCA9IChlbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQgYXMgSFRNTEVsZW1lbnQpLmNsYXNzTGlzdDtcblxuICAgIC8vIEZvciBlYWNoIG9mIHRoZSB2YXJpYW50IHNlbGVjdG9ycyB0aGF0IGlzIHByZXNlbnQgaW4gdGhlIGJ1dHRvbidzIGhvc3RcbiAgICAvLyBhdHRyaWJ1dGVzLCBhZGQgdGhlIGNvcnJlY3QgY29ycmVzcG9uZGluZyBNREMgY2xhc3Nlcy5cbiAgICBmb3IgKGNvbnN0IHBhaXIgb2YgSE9TVF9TRUxFQ1RPUl9NRENfQ0xBU1NfUEFJUikge1xuICAgICAgaWYgKHRoaXMuX2hhc0hvc3RBdHRyaWJ1dGVzKHBhaXIuc2VsZWN0b3IpKSB7XG4gICAgICAgIHBhaXIubWRjQ2xhc3Nlcy5mb3JFYWNoKChjbGFzc05hbWU6IHN0cmluZykgPT4ge1xuICAgICAgICAgIGNsYXNzTGlzdC5hZGQoY2xhc3NOYW1lKTtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIHRoaXMuX2ZvY3VzTW9uaXRvci5tb25pdG9yKHRoaXMuX2VsZW1lbnRSZWYsIHRydWUpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5fZm9jdXNNb25pdG9yLnN0b3BNb25pdG9yaW5nKHRoaXMuX2VsZW1lbnRSZWYpO1xuICB9XG5cbiAgLyoqIEZvY3VzZXMgdGhlIGJ1dHRvbi4gKi9cbiAgZm9jdXMoX29yaWdpbjogRm9jdXNPcmlnaW4gPSAncHJvZ3JhbScsIG9wdGlvbnM/OiBGb2N1c09wdGlvbnMpOiB2b2lkIHtcbiAgICBpZiAoX29yaWdpbikge1xuICAgICAgdGhpcy5fZm9jdXNNb25pdG9yLmZvY3VzVmlhKHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgX29yaWdpbiwgb3B0aW9ucyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5mb2N1cyhvcHRpb25zKTtcbiAgICB9XG4gIH1cblxuICAvKiogR2V0cyB3aGV0aGVyIHRoZSBidXR0b24gaGFzIG9uZSBvZiB0aGUgZ2l2ZW4gYXR0cmlidXRlcy4gKi9cbiAgcHJpdmF0ZSBfaGFzSG9zdEF0dHJpYnV0ZXMoLi4uYXR0cmlidXRlczogc3RyaW5nW10pIHtcbiAgICByZXR1cm4gYXR0cmlidXRlcy5zb21lKGF0dHJpYnV0ZSA9PiB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuaGFzQXR0cmlidXRlKGF0dHJpYnV0ZSkpO1xuICB9XG5cbiAgX2lzUmlwcGxlRGlzYWJsZWQoKSB7XG4gICAgaWYgKHRoaXMuX3JpcHBsZSkge1xuICAgICAgdGhpcy5fcmlwcGxlLmRpc2FibGVkID0gdGhpcy5kaXNhYmxlUmlwcGxlIHx8IHRoaXMuZGlzYWJsZWQ7XG4gICAgfVxuICB9XG59XG5cbi8qKiBTaGFyZWQgaW5wdXRzIGJ5IGJ1dHRvbnMgdXNpbmcgdGhlIGA8YT5gIHRhZyAqL1xuZXhwb3J0IGNvbnN0IE1BVF9BTkNIT1JfSU5QVVRTID0gWydkaXNhYmxlZCcsICdkaXNhYmxlUmlwcGxlJywgJ2NvbG9yJywgJ3RhYkluZGV4J107XG5cbi8qKiBTaGFyZWQgaG9zdCBjb25maWd1cmF0aW9uIGZvciBidXR0b25zIHVzaW5nIHRoZSBgPGE+YCB0YWcuICovXG5leHBvcnQgY29uc3QgTUFUX0FOQ0hPUl9IT1NUID0ge1xuICAnW2F0dHIuZGlzYWJsZWRdJzogJ2Rpc2FibGVkIHx8IG51bGwnLFxuICAnW2NsYXNzLl9tYXQtYW5pbWF0aW9uLW5vb3BhYmxlXSc6ICdfYW5pbWF0aW9uTW9kZSA9PT0gXCJOb29wQW5pbWF0aW9uc1wiJyxcblxuICAvLyBOb3RlIHRoYXQgd2UgaWdub3JlIHRoZSB1c2VyLXNwZWNpZmllZCB0YWJpbmRleCB3aGVuIGl0J3MgZGlzYWJsZWQgZm9yXG4gIC8vIGNvbnNpc3RlbmN5IHdpdGggdGhlIGBtYXQtYnV0dG9uYCBhcHBsaWVkIG9uIG5hdGl2ZSBidXR0b25zIHdoZXJlIGV2ZW5cbiAgLy8gdGhvdWdoIHRoZXkgaGF2ZSBhbiBpbmRleCwgdGhleSdyZSBub3QgdGFiYmFibGUuXG4gICdbYXR0ci50YWJpbmRleF0nOiAnZGlzYWJsZWQgPyAtMSA6IHRhYkluZGV4JyxcbiAgJ1thdHRyLmFyaWEtZGlzYWJsZWRdJzogJ2Rpc2FibGVkLnRvU3RyaW5nKCknLFxuICAvLyBNREMgYXV0b21hdGljYWxseSBhcHBsaWVzIHRoZSBwcmltYXJ5IHRoZW1lIGNvbG9yIHRvIHRoZSBidXR0b24sIGJ1dCB3ZSB3YW50IHRvIHN1cHBvcnRcbiAgLy8gYW4gdW50aGVtZWQgdmVyc2lvbi4gSWYgY29sb3IgaXMgdW5kZWZpbmVkLCBhcHBseSBhIENTUyBjbGFzcyB0aGF0IG1ha2VzIGl0IGVhc3kgdG9cbiAgLy8gc2VsZWN0IGFuZCBzdHlsZSB0aGlzIFwidGhlbWVcIi5cbiAgJ1tjbGFzcy5tYXQtdW50aGVtZWRdJzogJyFjb2xvcicsXG4gIC8vIEFkZCBhIGNsYXNzIHRoYXQgYXBwbGllcyB0byBhbGwgYnV0dG9ucy4gVGhpcyBtYWtlcyBpdCBlYXNpZXIgdG8gdGFyZ2V0IGlmIHNvbWVib2R5XG4gIC8vIHdhbnRzIHRvIHRhcmdldCBhbGwgTWF0ZXJpYWwgYnV0dG9ucy5cbiAgJ1tjbGFzcy5tYXQtbWRjLWJ1dHRvbi1iYXNlXSc6ICd0cnVlJyxcbiAgW01BVF9CVVRUT05fUklQUExFX1VOSU5JVElBTElaRURdOiAnJyxcbiAgJ1thdHRyLm1hdC1idXR0b24tZGlzYWJsZWRdJzogJ19pc1JpcHBsZURpc2FibGVkKCknLFxuICAnW2F0dHIubWF0LWJ1dHRvbi1pcy1mYWJdJzogJ19pc0ZhYicsXG59O1xuXG4vKipcbiAqIEFuY2hvciBidXR0b24gYmFzZS5cbiAqL1xuQERpcmVjdGl2ZSgpXG5leHBvcnQgY2xhc3MgTWF0QW5jaG9yQmFzZSBleHRlbmRzIE1hdEJ1dHRvbkJhc2UgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIHRhYkluZGV4OiBudW1iZXI7XG5cbiAgY29uc3RydWN0b3IoZWxlbWVudFJlZjogRWxlbWVudFJlZiwgcGxhdGZvcm06IFBsYXRmb3JtLCBuZ1pvbmU6IE5nWm9uZSwgYW5pbWF0aW9uTW9kZT86IHN0cmluZykge1xuICAgIHN1cGVyKGVsZW1lbnRSZWYsIHBsYXRmb3JtLCBuZ1pvbmUsIGFuaW1hdGlvbk1vZGUpO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5fbmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgIHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIHRoaXMuX2hhbHREaXNhYmxlZEV2ZW50cyk7XG4gICAgfSk7XG4gIH1cblxuICBvdmVycmlkZSBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICBzdXBlci5uZ09uRGVzdHJveSgpO1xuICAgIHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdjbGljaycsIHRoaXMuX2hhbHREaXNhYmxlZEV2ZW50cyk7XG4gIH1cblxuICBfaGFsdERpc2FibGVkRXZlbnRzID0gKGV2ZW50OiBFdmVudCk6IHZvaWQgPT4ge1xuICAgIC8vIEEgZGlzYWJsZWQgYnV0dG9uIHNob3VsZG4ndCBhcHBseSBhbnkgYWN0aW9uc1xuICAgIGlmICh0aGlzLmRpc2FibGVkKSB7XG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgZXZlbnQuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCk7XG4gICAgfVxuICB9O1xufVxuIl19
@@ -0,0 +1,114 @@
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 { DOCUMENT } from '@angular/common';
9
+ import { ANIMATION_MODULE_TYPE, ElementRef, Injectable, NgZone, inject, } from '@angular/core';
10
+ import { MAT_RIPPLE_GLOBAL_OPTIONS, MatRipple, RippleRenderer, } from '@angular/material/core';
11
+ import { Platform } from '@angular/cdk/platform';
12
+ import * as i0 from "@angular/core";
13
+ /** The options for the MatButtonRippleLoader's event listeners. */
14
+ const eventListenerOptions = { capture: true };
15
+ /** The events that should trigger the initialization of the ripple. */
16
+ const rippleInteractionEvents = ['focus', 'click', 'mouseenter', 'touchstart'];
17
+ /** The attribute attached to a mat-button whose ripple has not yet been initialized. */
18
+ export const MAT_BUTTON_RIPPLE_UNINITIALIZED = 'mat-button-ripple-uninitialized';
19
+ /**
20
+ * Handles attaching the MatButton's ripple on demand.
21
+ *
22
+ * This service allows us to avoid eagerly creating & attaching the MatButton's ripple.
23
+ * It works by creating & attaching the ripple only when a MatButton is first interacted with.
24
+ */
25
+ class MatButtonLazyLoader {
26
+ constructor() {
27
+ this._document = inject(DOCUMENT, { optional: true });
28
+ this._animationMode = inject(ANIMATION_MODULE_TYPE, { optional: true });
29
+ this._globalRippleOptions = inject(MAT_RIPPLE_GLOBAL_OPTIONS, { optional: true });
30
+ this._platform = inject(Platform);
31
+ this._ngZone = inject(NgZone);
32
+ /** Handles creating and attaching button internals when a button is initially interacted with. */
33
+ this._onInteraction = (event) => {
34
+ if (event.target === this._document) {
35
+ return;
36
+ }
37
+ const eventTarget = event.target;
38
+ // TODO(wagnermaciel): Consider batching these events to improve runtime performance.
39
+ const button = eventTarget.closest(`[${MAT_BUTTON_RIPPLE_UNINITIALIZED}]`);
40
+ if (button) {
41
+ button.removeAttribute(MAT_BUTTON_RIPPLE_UNINITIALIZED);
42
+ this._appendRipple(button);
43
+ }
44
+ };
45
+ this._ngZone.runOutsideAngular(() => {
46
+ for (const event of rippleInteractionEvents) {
47
+ this._document?.addEventListener(event, this._onInteraction, eventListenerOptions);
48
+ }
49
+ });
50
+ }
51
+ ngOnDestroy() {
52
+ for (const event of rippleInteractionEvents) {
53
+ this._document?.removeEventListener(event, this._onInteraction, eventListenerOptions);
54
+ }
55
+ }
56
+ /** Creates a MatButtonRipple and appends it to the given button element. */
57
+ _appendRipple(button) {
58
+ if (!this._document) {
59
+ return;
60
+ }
61
+ const ripple = this._document.createElement('span');
62
+ ripple.classList.add('mat-mdc-button-ripple');
63
+ const target = new MatButtonRippleTarget(button, this._globalRippleOptions ? this._globalRippleOptions : undefined, this._animationMode ? this._animationMode : undefined);
64
+ target.rippleConfig.centered = button.hasAttribute('mat-icon-button');
65
+ const rippleRenderer = new RippleRenderer(target, this._ngZone, ripple, this._platform);
66
+ rippleRenderer.setupTriggerEvents(button);
67
+ button.append(ripple);
68
+ }
69
+ _createMatRipple(button) {
70
+ if (!this._document) {
71
+ return;
72
+ }
73
+ button.querySelector('.mat-mdc-button-ripple')?.remove();
74
+ button.removeAttribute(MAT_BUTTON_RIPPLE_UNINITIALIZED);
75
+ const rippleEl = this._document.createElement('span');
76
+ rippleEl.classList.add('mat-mdc-button-ripple');
77
+ const ripple = new MatRipple(new ElementRef(rippleEl), this._ngZone, this._platform, this._globalRippleOptions ? this._globalRippleOptions : undefined, this._animationMode ? this._animationMode : undefined);
78
+ ripple._isInitialized = true;
79
+ ripple.trigger = button;
80
+ button.append(rippleEl);
81
+ return ripple;
82
+ }
83
+ }
84
+ MatButtonLazyLoader.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0-next.7", ngImport: i0, type: MatButtonLazyLoader, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
85
+ MatButtonLazyLoader.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.0.0-next.7", ngImport: i0, type: MatButtonLazyLoader, providedIn: 'root' });
86
+ export { MatButtonLazyLoader };
87
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0-next.7", ngImport: i0, type: MatButtonLazyLoader, decorators: [{
88
+ type: Injectable,
89
+ args: [{ providedIn: 'root' }]
90
+ }], ctorParameters: function () { return []; } });
91
+ /**
92
+ * The RippleTarget for the lazily rendered MatButton ripple.
93
+ * It handles ripple configuration and disabled state for ripples interactions.
94
+ *
95
+ * Note that this configuration is usually handled by the MatRipple, but the MatButtonLazyLoader does not use the
96
+ * MatRipple Directive. In order to create & attach a ripple on demand, it uses the "lower level" RippleRenderer.
97
+ */
98
+ class MatButtonRippleTarget {
99
+ constructor(_button, _globalRippleOptions, animationMode) {
100
+ this._button = _button;
101
+ this._globalRippleOptions = _globalRippleOptions;
102
+ this._setRippleConfig(_globalRippleOptions, animationMode);
103
+ }
104
+ _setRippleConfig(globalRippleOptions, animationMode) {
105
+ this.rippleConfig = globalRippleOptions || {};
106
+ if (animationMode === 'NoopAnimations') {
107
+ this.rippleConfig.animation = { enterDuration: 0, exitDuration: 0 };
108
+ }
109
+ }
110
+ get rippleDisabled() {
111
+ return this._button.hasAttribute('disabled') || !!this._globalRippleOptions?.disabled;
112
+ }
113
+ }
114
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnV0dG9uLWxhenktbG9hZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL21hdGVyaWFsL2J1dHRvbi9idXR0b24tbGF6eS1sb2FkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HO0FBRUgsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQ3pDLE9BQU8sRUFDTCxxQkFBcUIsRUFDckIsVUFBVSxFQUNWLFVBQVUsRUFDVixNQUFNLEVBRU4sTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFDTCx5QkFBeUIsRUFDekIsU0FBUyxFQUdULGNBQWMsR0FFZixNQUFNLHdCQUF3QixDQUFDO0FBQ2hDLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQzs7QUFFL0MsbUVBQW1FO0FBQ25FLE1BQU0sb0JBQW9CLEdBQUcsRUFBQyxPQUFPLEVBQUUsSUFBSSxFQUFDLENBQUM7QUFFN0MsdUVBQXVFO0FBQ3ZFLE1BQU0sdUJBQXVCLEdBQUcsQ0FBQyxPQUFPLEVBQUUsT0FBTyxFQUFFLFlBQVksRUFBRSxZQUFZLENBQUMsQ0FBQztBQUUvRSx3RkFBd0Y7QUFDeEYsTUFBTSxDQUFDLE1BQU0sK0JBQStCLEdBQUcsaUNBQWlDLENBQUM7QUFFakY7Ozs7O0dBS0c7QUFDSCxNQUNhLG1CQUFtQjtJQU85QjtRQU5RLGNBQVMsR0FBRyxNQUFNLENBQUMsUUFBUSxFQUFFLEVBQUMsUUFBUSxFQUFFLElBQUksRUFBQyxDQUFDLENBQUM7UUFDL0MsbUJBQWMsR0FBRyxNQUFNLENBQUMscUJBQXFCLEVBQUUsRUFBQyxRQUFRLEVBQUUsSUFBSSxFQUFDLENBQUMsQ0FBQztRQUNqRSx5QkFBb0IsR0FBRyxNQUFNLENBQUMseUJBQXlCLEVBQUUsRUFBQyxRQUFRLEVBQUUsSUFBSSxFQUFDLENBQUMsQ0FBQztRQUMzRSxjQUFTLEdBQUcsTUFBTSxDQUFD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T0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLG9CQUFvQixFQUFFLFFBQVEsQ0FBQztJQUN4RixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cblxuaW1wb3J0IHtET0NVTUVOVH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIEFOSU1BVElPTl9NT0RVTEVfVFlQRSxcbiAgRWxlbWVudFJlZixcbiAgSW5qZWN0YWJsZSxcbiAgTmdab25lLFxuICBPbkRlc3Ryb3ksXG4gIGluamVjdCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBNQVRfUklQUExFX0dMT0JBTF9PUFRJT05TLFxuICBNYXRSaXBwbGUsXG4gIFJpcHBsZUNvbmZpZyxcbiAgUmlwcGxlR2xvYmFsT3B0aW9ucyxcbiAgUmlwcGxlUmVuZGVyZXIsXG4gIFJpcHBsZVRhcmdldCxcbn0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY29yZSc7XG5pbXBvcnQge1BsYXRmb3JtfSBmcm9tICdAYW5ndWxhci9jZGsvcGxhdGZvcm0nO1xuXG4vKiogVGhlIG9wdGlvbnMgZm9yIHRoZSBNYXRCdXR0b25SaXBwbGVMb2FkZXIncyBldmVudCBsaXN0ZW5lcnMuICovXG5jb25zdCBldmVudExpc3RlbmVyT3B0aW9ucyA9IHtjYXB0dXJlOiB0cnVlfTtcblxuLyoqIFRoZSBldmVudHMgdGhhdCBzaG91bGQgdHJpZ2dlciB0aGUgaW5pdGlhbGl6YXRpb24gb2YgdGhlIHJpcHBsZS4gKi9cbmNvbnN0IHJpcHBsZUludGVyYWN0aW9uRXZlbnRzID0gWydmb2N1cycsICdjbGljaycsICdtb3VzZWVudGVyJywgJ3RvdWNoc3RhcnQnXTtcblxuLyoqIFRoZSBhdHRyaWJ1dGUgYXR0YWNoZWQgdG8gYSBtYXQtYnV0dG9uIHdob3NlIHJpcHBsZSBoYXMgbm90IHlldCBiZWVuIGluaXRpYWxpemVkLiAqL1xuZXhwb3J0IGNvbnN0IE1BVF9CVVRUT05fUklQUExFX1VOSU5JVElBTElaRUQgPSAnbWF0LWJ1dHRvbi1yaXBwbGUtdW5pbml0aWFsaXplZCc7XG5cbi8qKlxuICogSGFuZGxlcyBhdHRhY2hpbmcgdGhlIE1hdEJ1dHRvbidzIHJpcHBsZSBvbiBkZW1hbmQuXG4gKlxuICogVGhpcyBzZXJ2aWNlIGFsbG93cyB1cyB0byBhdm9pZCBlYWdlcmx5IGNyZWF0aW5nICYgYXR0YWNoaW5nIHRoZSBNYXRCdXR0b24ncyByaXBwbGUuXG4gKiBJdCB3b3JrcyBieSBjcmVhdGluZyAmIGF0dGFjaGluZyB0aGUgcmlwcGxlIG9ubHkgd2hlbiBhIE1hdEJ1dHRvbiBpcyBmaXJzdCBpbnRlcmFjdGVkIHdpdGguXG4gKi9cbkBJbmplY3RhYmxlKHtwcm92aWRlZEluOiAncm9vdCd9KVxuZXhwb3J0IGNsYXNzIE1hdEJ1dHRvbkxhenlMb2FkZXIgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICBwcml2YXRlIF9kb2N1bWVudCA9IGluamVjdChET0NVTUVOVCwge29wdGlvbmFsOiB0cnVlfSk7XG4gIHByaXZhdGUgX2FuaW1hdGlvbk1vZGUgPSBpbmplY3QoQU5JTUFUSU9OX01PRFVMRV9UWVBFLCB7b3B0aW9uYWw6IHRydWV9KTtcbiAgcHJpdmF0ZSBfZ2xvYmFsUmlwcGxlT3B0aW9ucyA9IGluamVjdChNQVRfUklQUExFX0dMT0JBTF9PUFRJT05TLCB7b3B0aW9uYWw6IHRydWV9KTtcbiAgcHJpdmF0ZSBfcGxhdGZvcm0gPSBpbmplY3QoUGxhdGZvcm0pO1xuICBwcml2YXRlIF9uZ1pvbmUgPSBpbmplY3QoTmdab25lKTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICB0aGlzLl9uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgZm9yIChjb25zdCBldmVudCBvZiByaXBwbGVJbnRlcmFjdGlvbkV2ZW50cykge1xuICAgICAgICB0aGlzLl9kb2N1bWVudD8uYWRkRXZlbnRMaXN0ZW5lcihldmVudCwgdGhpcy5fb25JbnRlcmFjdGlvbiwgZXZlbnRMaXN0ZW5lck9wdGlvbnMpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgZm9yIChjb25zdCBldmVudCBvZiByaXBwbGVJbnRlcmFjdGlvbkV2ZW50cykge1xuICAgICAgdGhpcy5fZG9jdW1lbnQ/LnJlbW92ZUV2ZW50TGlzdGVuZXIoZXZlbnQsIHRoaXMuX29uSW50ZXJhY3Rpb24sIGV2ZW50TGlzdGVuZXJPcHRpb25zKTtcbiAgICB9XG4gIH1cblxuICAvKiogSGFuZGxlcyBjcmVhdGluZyBhbmQgYXR0YWNoaW5nIGJ1dHRvbiBpbnRlcm5hbHMgd2hlbiBhIGJ1dHRvbiBpcyBpbml0aWFsbHkgaW50ZXJhY3RlZCB3aXRoLiAqL1xuICBwcml2YXRlIF9vbkludGVyYWN0aW9uID0gKGV2ZW50OiBFdmVudCkgPT4ge1xuICAgIGlmIChldmVudC50YXJnZXQgPT09IHRoaXMuX2RvY3VtZW50KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IGV2ZW50VGFyZ2V0ID0gZXZlbnQudGFyZ2V0IGFzIEVsZW1lbnQ7XG5cbiAgICAvLyBUT0RPKHdhZ25lcm1hY2llbCk6IENvbnNpZGVyIGJhdGNoaW5nIHRoZXNlIGV2ZW50cyB0byBpbXByb3ZlIHJ1bnRpbWUgcGVyZm9ybWFuY2UuXG5cbiAgICBjb25zdCBidXR0b24gPSBldmVudFRhcmdldC5jbG9zZXN0KGBbJHtNQVRfQlVUVE9OX1JJUFBMRV9VTklOSVRJQUxJWkVEfV1gKTtcbiAgICBpZiAoYnV0dG9uKSB7XG4gICAgICBidXR0b24ucmVtb3ZlQXR0cmlidXRlKE1BVF9CVVRUT05fUklQUExFX1VOSU5JVElBTElaRUQpO1xuICAgICAgdGhpcy5fYXBwZW5kUmlwcGxlKGJ1dHRvbiBhcyBIVE1MRWxlbWVudCk7XG4gICAgfVxuICB9O1xuXG4gIC8qKiBDcmVhdGVzIGEgTWF0QnV0dG9uUmlwcGxlIGFuZCBhcHBlbmRzIGl0IHRvIHRoZSBnaXZlbiBidXR0b24gZWxlbWVudC4gKi9cbiAgcHJpdmF0ZSBfYXBwZW5kUmlwcGxlKGJ1dHRvbjogSFRNTEVsZW1lbnQpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuX2RvY3VtZW50KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IHJpcHBsZSA9IHRoaXMuX2RvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NwYW4nKTtcbiAgICByaXBwbGUuY2xhc3NMaXN0LmFkZCgnbWF0LW1kYy1idXR0b24tcmlwcGxlJyk7XG5cbiAgICBjb25zdCB0YXJnZXQgPSBuZXcgTWF0QnV0dG9uUmlwcGxlVGFyZ2V0KFxuICAgICAgYnV0dG9uLFxuICAgICAgdGhpcy5fZ2xvYmFsUmlwcGxlT3B0aW9ucyA/IHRoaXMuX2dsb2JhbFJpcHBsZU9wdGlvbnMgOiB1bmRlZmluZWQsXG4gICAgICB0aGlzLl9hbmltYXRpb25Nb2RlID8gdGhpcy5fYW5pbWF0aW9uTW9kZSA6IHVuZGVmaW5lZCxcbiAgICApO1xuICAgIHRhcmdldC5yaXBwbGVDb25maWcuY2VudGVyZWQgPSBidXR0b24uaGFzQXR0cmlidXRlKCdtYXQtaWNvbi1idXR0b24nKTtcblxuICAgIGNvbnN0IHJpcHBsZVJlbmRlcmVyID0gbmV3IFJpcHBsZVJlbmRlcmVyKHRhcmdldCwgdGhpcy5fbmdab25lLCByaXBwbGUsIHRoaXMuX3BsYXRmb3JtKTtcbiAgICByaXBwbGVSZW5kZXJlci5zZXR1cFRyaWdnZXJFdmVudHMoYnV0dG9uKTtcbiAgICBidXR0b24uYXBwZW5kKHJpcHBsZSk7XG4gIH1cblxuICBfY3JlYXRlTWF0UmlwcGxlKGJ1dHRvbjogSFRNTEVsZW1lbnQpOiBNYXRSaXBwbGUgfCB1bmRlZmluZWQge1xuICAgIGlmICghdGhpcy5fZG9jdW1lbnQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgYnV0dG9uLnF1ZXJ5U2VsZWN0b3IoJy5tYXQtbWRjLWJ1dHRvbi1yaXBwbGUnKT8ucmVtb3ZlKCk7XG4gICAgYnV0dG9uLnJlbW92ZUF0dHJpYnV0ZShNQVRfQlVUVE9OX1JJUFBMRV9VTklOSVRJQUxJWkVEKTtcbiAgICBjb25zdCByaXBwbGVFbCA9IHRoaXMuX2RvY3VtZW50IS5jcmVhdGVFbGVtZW50KCdzcGFuJyk7XG4gICAgcmlwcGxlRWwuY2xhc3NMaXN0LmFkZCgnbWF0LW1kYy1idXR0b24tcmlwcGxlJyk7XG4gICAgY29uc3QgcmlwcGxlID0gbmV3IE1hdFJpcHBsZShcbiAgICAgIG5ldyBFbGVtZW50UmVmKHJpcHBsZUVsKSxcbiAgICAgIHRoaXMuX25nWm9uZSxcbiAgICAgIHRoaXMuX3BsYXRmb3JtLFxuICAgICAgdGhpcy5fZ2xvYmFsUmlwcGxlT3B0aW9ucyA/IHRoaXMuX2dsb2JhbFJpcHBsZU9wdGlvbnMgOiB1bmRlZmluZWQsXG4gICAgICB0aGlzLl9hbmltYXRpb25Nb2RlID8gdGhpcy5fYW5pbWF0aW9uTW9kZSA6IHVuZGVmaW5lZCxcbiAgICApO1xuICAgIHJpcHBsZS5faXNJbml0aWFsaXplZCA9IHRydWU7XG4gICAgcmlwcGxlLnRyaWdnZXIgPSBidXR0b247XG4gICAgYnV0dG9uLmFwcGVuZChyaXBwbGVFbCk7XG4gICAgcmV0dXJuIHJpcHBsZTtcbiAgfVxufVxuXG4vKipcbiAqIFRoZSBSaXBwbGVUYXJnZXQgZm9yIHRoZSBsYXppbHkgcmVuZGVyZWQgTWF0QnV0dG9uIHJpcHBsZS5cbiAqIEl0IGhhbmRsZXMgcmlwcGxlIGNvbmZpZ3VyYXRpb24gYW5kIGRpc2FibGVkIHN0YXRlIGZvciByaXBwbGVzIGludGVyYWN0aW9ucy5cbiAqXG4gKiBOb3RlIHRoYXQgdGhpcyBjb25maWd1cmF0aW9uIGlzIHVzdWFsbHkgaGFuZGxlZCBieSB0aGUgTWF0UmlwcGxlLCBidXQgdGhlIE1hdEJ1dHRvbkxhenlMb2FkZXIgZG9lcyBub3QgdXNlIHRoZVxuICogTWF0UmlwcGxlIERpcmVjdGl2ZS4gSW4gb3JkZXIgdG8gY3JlYXRlICYgYXR0YWNoIGEgcmlwcGxlIG9uIGRlbWFuZCwgaXQgdXNlcyB0aGUgXCJsb3dlciBsZXZlbFwiIFJpcHBsZVJlbmRlcmVyLlxuICovXG5jbGFzcyBNYXRCdXR0b25SaXBwbGVUYXJnZXQgaW1wbGVtZW50cyBSaXBwbGVUYXJnZXQge1xuICByaXBwbGVDb25maWc6IFJpcHBsZUNvbmZpZyAmIFJpcHBsZUdsb2JhbE9wdGlvbnM7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBfYnV0dG9uOiBIVE1MRWxlbWVudCxcbiAgICBwcml2YXRlIF9nbG9iYWxSaXBwbGVPcHRpb25zPzogUmlwcGxlR2xvYmFsT3B0aW9ucyxcbiAgICBhbmltYXRpb25Nb2RlPzogc3RyaW5nLFxuICApIHtcbiAgICB0aGlzLl9zZXRSaXBwbGVDb25maWcoX2dsb2JhbFJpcHBsZU9wdGlvbnMsIGFuaW1hdGlvbk1vZGUpO1xuICB9XG5cbiAgcHJpdmF0ZSBfc2V0UmlwcGxlQ29uZmlnKGdsb2JhbFJpcHBsZU9wdGlvbnM/OiBSaXBwbGVHbG9iYWxPcHRpb25zLCBhbmltYXRpb25Nb2RlPzogc3RyaW5nKSB7XG4gICAgdGhpcy5yaXBwbGVDb25maWcgPSBnbG9iYWxSaXBwbGVPcHRpb25zIHx8IHt9O1xuICAgIGlmIChhbmltYXRpb25Nb2RlID09PSAnTm9vcEFuaW1hdGlvbnMnKSB7XG4gICAgICB0aGlzLnJpcHBsZUNvbmZpZy5hbmltYXRpb24gPSB7ZW50ZXJEdXJhdGlvbjogMCwgZXhpdER1cmF0aW9uOiAwfTtcbiAgICB9XG4gIH1cblxuICBnZXQgcmlwcGxlRGlzYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX2J1dHRvbi5oYXNBdHRyaWJ1dGUoJ2Rpc2FibGVkJykgfHwgISF0aGlzLl9nbG9iYWxSaXBwbGVPcHRpb25zPy5kaXNhYmxlZDtcbiAgfVxufVxuIl19