@angular/material 19.0.0-next.0 → 19.0.0-next.2

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 (646) hide show
  1. package/_index.scss +4 -5
  2. package/button/_button-base.scss +2 -4
  3. package/button/index.d.ts +2 -10
  4. package/checkbox/_checkbox-common.scss +7 -7
  5. package/checkbox/index.d.ts +0 -7
  6. package/chips/index.d.ts +1 -10
  7. package/core/_core.scss +9 -7
  8. package/core/focus-indicators/_private.scss +20 -81
  9. package/core/index.d.ts +8 -10
  10. package/core/selection/pseudo-checkbox/_pseudo-checkbox-theme.scss +5 -4
  11. package/core/style/_elevation.scss +1 -1
  12. package/core/style/_list-common.scss +2 -2
  13. package/core/style/_menu-common.scss +1 -0
  14. package/core/theming/_palettes.scss +132 -45
  15. package/core/tokens/_m3-system.scss +228 -0
  16. package/core/tokens/_m3-tokens.scss +8 -149
  17. package/core/tokens/_token-utils.scss +13 -12
  18. package/core/tokens/m2/mat/_datepicker.scss +1 -1
  19. package/core/tokens/m3/mat/_datepicker.scss +2 -2
  20. package/core/tokens/m3/mat/_sidenav.scss +0 -1
  21. package/dialog/index.d.ts +2 -2
  22. package/fesm2022/autocomplete.mjs +2 -2
  23. package/fesm2022/autocomplete.mjs.map +1 -1
  24. package/fesm2022/badge.mjs +7 -20
  25. package/fesm2022/badge.mjs.map +1 -1
  26. package/fesm2022/bottom-sheet.mjs +2 -2
  27. package/fesm2022/bottom-sheet.mjs.map +1 -1
  28. package/fesm2022/button-toggle.mjs +2 -2
  29. package/fesm2022/button-toggle.mjs.map +1 -1
  30. package/fesm2022/button.mjs +16 -27
  31. package/fesm2022/button.mjs.map +1 -1
  32. package/fesm2022/card.mjs +2 -2
  33. package/fesm2022/card.mjs.map +1 -1
  34. package/fesm2022/checkbox.mjs +2 -5
  35. package/fesm2022/checkbox.mjs.map +1 -1
  36. package/fesm2022/chips.mjs +8 -19
  37. package/fesm2022/chips.mjs.map +1 -1
  38. package/fesm2022/core.mjs +64 -40
  39. package/fesm2022/core.mjs.map +1 -1
  40. package/fesm2022/datepicker.mjs +8 -8
  41. package/fesm2022/datepicker.mjs.map +1 -1
  42. package/fesm2022/dialog.mjs +5 -5
  43. package/fesm2022/dialog.mjs.map +1 -1
  44. package/fesm2022/divider.mjs +2 -2
  45. package/fesm2022/divider.mjs.map +1 -1
  46. package/fesm2022/expansion.mjs +4 -4
  47. package/fesm2022/expansion.mjs.map +1 -1
  48. package/fesm2022/form-field.mjs +2 -2
  49. package/fesm2022/form-field.mjs.map +1 -1
  50. package/fesm2022/icon.mjs +4 -5
  51. package/fesm2022/icon.mjs.map +1 -1
  52. package/fesm2022/input/testing.mjs +7 -1
  53. package/fesm2022/input/testing.mjs.map +1 -1
  54. package/fesm2022/input.mjs +43 -9
  55. package/fesm2022/input.mjs.map +1 -1
  56. package/fesm2022/list.mjs +14 -14
  57. package/fesm2022/list.mjs.map +1 -1
  58. package/fesm2022/menu.mjs +4 -4
  59. package/fesm2022/menu.mjs.map +1 -1
  60. package/fesm2022/paginator.mjs +2 -2
  61. package/fesm2022/paginator.mjs.map +1 -1
  62. package/fesm2022/progress-bar.mjs +2 -2
  63. package/fesm2022/progress-bar.mjs.map +1 -1
  64. package/fesm2022/progress-spinner.mjs +2 -2
  65. package/fesm2022/progress-spinner.mjs.map +1 -1
  66. package/fesm2022/radio.mjs +2 -2
  67. package/fesm2022/radio.mjs.map +1 -1
  68. package/fesm2022/select.mjs +6 -6
  69. package/fesm2022/select.mjs.map +1 -1
  70. package/fesm2022/sidenav.mjs +4 -4
  71. package/fesm2022/sidenav.mjs.map +1 -1
  72. package/fesm2022/slide-toggle.mjs +2 -2
  73. package/fesm2022/slide-toggle.mjs.map +1 -1
  74. package/fesm2022/slider.mjs +4 -4
  75. package/fesm2022/slider.mjs.map +1 -1
  76. package/fesm2022/snack-bar.mjs +2 -2
  77. package/fesm2022/snack-bar.mjs.map +1 -1
  78. package/fesm2022/stepper.mjs +4 -4
  79. package/fesm2022/stepper.mjs.map +1 -1
  80. package/fesm2022/table.mjs +2 -2
  81. package/fesm2022/table.mjs.map +1 -1
  82. package/fesm2022/tabs.mjs +9 -9
  83. package/fesm2022/tabs.mjs.map +1 -1
  84. package/fesm2022/toolbar.mjs +2 -2
  85. package/fesm2022/toolbar.mjs.map +1 -1
  86. package/fesm2022/tooltip.mjs +16 -4
  87. package/fesm2022/tooltip.mjs.map +1 -1
  88. package/fesm2022/tree.mjs +2 -2
  89. package/fesm2022/tree.mjs.map +1 -1
  90. package/form-field/_mdc-text-field-structure.scss +6 -0
  91. package/input/index.d.ts +18 -1
  92. package/package.json +2 -146
  93. package/prebuilt-themes/azure-blue.css +1 -1
  94. package/prebuilt-themes/cyan-orange.css +1 -1
  95. package/prebuilt-themes/deeppurple-amber.css +1 -1
  96. package/prebuilt-themes/indigo-pink.css +1 -1
  97. package/prebuilt-themes/magenta-violet.css +1 -1
  98. package/prebuilt-themes/pink-bluegrey.css +1 -1
  99. package/prebuilt-themes/purple-green.css +1 -1
  100. package/prebuilt-themes/rose-red.css +1 -1
  101. package/schematics/ng-add/index.js +1 -1
  102. package/schematics/ng-add/index.mjs +1 -1
  103. package/select/index.d.ts +2 -2
  104. package/slide-toggle/_slide-toggle-theme.scss +8 -6
  105. package/tabs/_tabs-common.scss +12 -10
  106. package/core/focus-indicators/_focus-indicators-theme.scss +0 -11
  107. package/core/focus-indicators/_focus-indicators.scss +0 -6
  108. package/esm2022/autocomplete/animations.mjs +0 -24
  109. package/esm2022/autocomplete/autocomplete-origin.mjs +0 -31
  110. package/esm2022/autocomplete/autocomplete-trigger.mjs +0 -902
  111. package/esm2022/autocomplete/autocomplete.mjs +0 -238
  112. package/esm2022/autocomplete/autocomplete_public_index.mjs +0 -5
  113. package/esm2022/autocomplete/index.mjs +0 -9
  114. package/esm2022/autocomplete/module.mjs +0 -61
  115. package/esm2022/autocomplete/public-api.mjs +0 -14
  116. package/esm2022/autocomplete/testing/autocomplete-harness-filters.mjs +0 -9
  117. package/esm2022/autocomplete/testing/autocomplete-harness.mjs +0 -105
  118. package/esm2022/autocomplete/testing/index.mjs +0 -9
  119. package/esm2022/autocomplete/testing/public-api.mjs +0 -10
  120. package/esm2022/badge/badge-module.mjs +0 -27
  121. package/esm2022/badge/badge.mjs +0 -301
  122. package/esm2022/badge/badge_public_index.mjs +0 -5
  123. package/esm2022/badge/index.mjs +0 -9
  124. package/esm2022/badge/public-api.mjs +0 -10
  125. package/esm2022/badge/testing/badge-harness-filters.mjs +0 -9
  126. package/esm2022/badge/testing/badge-harness.mjs +0 -71
  127. package/esm2022/badge/testing/index.mjs +0 -9
  128. package/esm2022/badge/testing/public-api.mjs +0 -10
  129. package/esm2022/bottom-sheet/bottom-sheet-animations.mjs +0 -26
  130. package/esm2022/bottom-sheet/bottom-sheet-config.mjs +0 -48
  131. package/esm2022/bottom-sheet/bottom-sheet-container.mjs +0 -85
  132. package/esm2022/bottom-sheet/bottom-sheet-module.mjs +0 -28
  133. package/esm2022/bottom-sheet/bottom-sheet-ref.mjs +0 -104
  134. package/esm2022/bottom-sheet/bottom-sheet.mjs +0 -115
  135. package/esm2022/bottom-sheet/bottom-sheet_public_index.mjs +0 -5
  136. package/esm2022/bottom-sheet/index.mjs +0 -9
  137. package/esm2022/bottom-sheet/public-api.mjs +0 -14
  138. package/esm2022/bottom-sheet/testing/bottom-sheet-harness-filters.mjs +0 -9
  139. package/esm2022/bottom-sheet/testing/bottom-sheet-harness.mjs +0 -35
  140. package/esm2022/bottom-sheet/testing/index.mjs +0 -9
  141. package/esm2022/bottom-sheet/testing/public-api.mjs +0 -10
  142. package/esm2022/button/button-base.mjs +0 -230
  143. package/esm2022/button/button.mjs +0 -67
  144. package/esm2022/button/button_public_index.mjs +0 -5
  145. package/esm2022/button/fab.mjs +0 -166
  146. package/esm2022/button/icon-button.mjs +0 -56
  147. package/esm2022/button/index.mjs +0 -9
  148. package/esm2022/button/module.mjs +0 -65
  149. package/esm2022/button/public-api.mjs +0 -13
  150. package/esm2022/button/testing/button-harness-filters.mjs +0 -9
  151. package/esm2022/button/testing/button-harness.mjs +0 -80
  152. package/esm2022/button/testing/index.mjs +0 -9
  153. package/esm2022/button/testing/public-api.mjs +0 -10
  154. package/esm2022/button-toggle/button-toggle-module.mjs +0 -24
  155. package/esm2022/button-toggle/button-toggle.mjs +0 -651
  156. package/esm2022/button-toggle/button-toggle_public_index.mjs +0 -5
  157. package/esm2022/button-toggle/index.mjs +0 -9
  158. package/esm2022/button-toggle/public-api.mjs +0 -10
  159. package/esm2022/button-toggle/testing/button-toggle-group-harness-filters.mjs +0 -9
  160. package/esm2022/button-toggle/testing/button-toggle-group-harness.mjs +0 -47
  161. package/esm2022/button-toggle/testing/button-toggle-harness-filters.mjs +0 -9
  162. package/esm2022/button-toggle/testing/button-toggle-harness.mjs +0 -105
  163. package/esm2022/button-toggle/testing/index.mjs +0 -9
  164. package/esm2022/button-toggle/testing/public-api.mjs +0 -12
  165. package/esm2022/card/card.mjs +0 -273
  166. package/esm2022/card/card_public_index.mjs +0 -5
  167. package/esm2022/card/index.mjs +0 -9
  168. package/esm2022/card/module.mjs +0 -67
  169. package/esm2022/card/public-api.mjs +0 -10
  170. package/esm2022/card/testing/card-harness-filters.mjs +0 -9
  171. package/esm2022/card/testing/card-harness.mjs +0 -50
  172. package/esm2022/card/testing/index.mjs +0 -9
  173. package/esm2022/card/testing/public-api.mjs +0 -10
  174. package/esm2022/checkbox/checkbox-config.mjs +0 -22
  175. package/esm2022/checkbox/checkbox-required-validator.mjs +0 -41
  176. package/esm2022/checkbox/checkbox.mjs +0 -443
  177. package/esm2022/checkbox/checkbox_public_index.mjs +0 -5
  178. package/esm2022/checkbox/index.mjs +0 -9
  179. package/esm2022/checkbox/module.mjs +0 -41
  180. package/esm2022/checkbox/public-api.mjs +0 -12
  181. package/esm2022/checkbox/testing/checkbox-harness-filters.mjs +0 -9
  182. package/esm2022/checkbox/testing/checkbox-harness.mjs +0 -138
  183. package/esm2022/checkbox/testing/index.mjs +0 -9
  184. package/esm2022/checkbox/testing/public-api.mjs +0 -9
  185. package/esm2022/chips/chip-action.mjs +0 -113
  186. package/esm2022/chips/chip-edit-input.mjs +0 -61
  187. package/esm2022/chips/chip-grid.mjs +0 -420
  188. package/esm2022/chips/chip-icons.mjs +0 -107
  189. package/esm2022/chips/chip-input.mjs +0 -192
  190. package/esm2022/chips/chip-listbox.mjs +0 -369
  191. package/esm2022/chips/chip-option.mjs +0 -190
  192. package/esm2022/chips/chip-row.mjs +0 -173
  193. package/esm2022/chips/chip-set.mjs +0 -283
  194. package/esm2022/chips/chip-text-control.mjs +0 -9
  195. package/esm2022/chips/chip.mjs +0 -322
  196. package/esm2022/chips/chips_public_index.mjs +0 -5
  197. package/esm2022/chips/index.mjs +0 -9
  198. package/esm2022/chips/module.mjs +0 -85
  199. package/esm2022/chips/public-api.mjs +0 -20
  200. package/esm2022/chips/testing/chip-avatar-harness.mjs +0 -22
  201. package/esm2022/chips/testing/chip-edit-input-harness.mjs +0 -33
  202. package/esm2022/chips/testing/chip-grid-harness.mjs +0 -45
  203. package/esm2022/chips/testing/chip-harness-filters.mjs +0 -9
  204. package/esm2022/chips/testing/chip-harness.mjs +0 -62
  205. package/esm2022/chips/testing/chip-input-harness.mjs +0 -85
  206. package/esm2022/chips/testing/chip-listbox-harness.mjs +0 -61
  207. package/esm2022/chips/testing/chip-option-harness.mjs +0 -45
  208. package/esm2022/chips/testing/chip-remove-harness.mjs +0 -26
  209. package/esm2022/chips/testing/chip-row-harness.mjs +0 -40
  210. package/esm2022/chips/testing/chip-set-harness.mjs +0 -26
  211. package/esm2022/chips/testing/index.mjs +0 -9
  212. package/esm2022/chips/testing/public-api.mjs +0 -19
  213. package/esm2022/chips/tokens.mjs +0 -39
  214. package/esm2022/core/animation/animation.mjs +0 -21
  215. package/esm2022/core/common-behaviors/color.mjs +0 -33
  216. package/esm2022/core/common-behaviors/common-module.mjs +0 -127
  217. package/esm2022/core/common-behaviors/constructor.mjs +0 -9
  218. package/esm2022/core/common-behaviors/disable-ripple.mjs +0 -24
  219. package/esm2022/core/common-behaviors/disabled.mjs +0 -23
  220. package/esm2022/core/common-behaviors/error-state.mjs +0 -66
  221. package/esm2022/core/common-behaviors/index.mjs +0 -15
  222. package/esm2022/core/common-behaviors/initialized.mjs +0 -62
  223. package/esm2022/core/common-behaviors/tabindex.mjs +0 -25
  224. package/esm2022/core/core_public_index.mjs +0 -5
  225. package/esm2022/core/datetime/date-adapter.mjs +0 -109
  226. package/esm2022/core/datetime/date-formats.mjs +0 -10
  227. package/esm2022/core/datetime/index.mjs +0 -46
  228. package/esm2022/core/datetime/native-date-adapter.mjs +0 -221
  229. package/esm2022/core/datetime/native-date-formats.mjs +0 -19
  230. package/esm2022/core/error/error-options.mjs +0 -33
  231. package/esm2022/core/index.mjs +0 -9
  232. package/esm2022/core/internal-form-field/internal-form-field.mjs +0 -29
  233. package/esm2022/core/line/line.mjs +0 -64
  234. package/esm2022/core/option/index.mjs +0 -30
  235. package/esm2022/core/option/optgroup.mjs +0 -71
  236. package/esm2022/core/option/option-parent.mjs +0 -13
  237. package/esm2022/core/option/option.mjs +0 -283
  238. package/esm2022/core/private/index.mjs +0 -9
  239. package/esm2022/core/private/ripple-loader.mjs +0 -160
  240. package/esm2022/core/public-api.mjs +0 -19
  241. package/esm2022/core/ripple/index.mjs +0 -27
  242. package/esm2022/core/ripple/ripple-event-manager.mjs +0 -69
  243. package/esm2022/core/ripple/ripple-ref.mjs +0 -39
  244. package/esm2022/core/ripple/ripple-renderer.mjs +0 -354
  245. package/esm2022/core/ripple/ripple.mjs +0 -156
  246. package/esm2022/core/selection/index.mjs +0 -10
  247. package/esm2022/core/selection/pseudo-checkbox/pseudo-checkbox-module.mjs +0 -24
  248. package/esm2022/core/selection/pseudo-checkbox/pseudo-checkbox.mjs +0 -62
  249. package/esm2022/core/testing/index.mjs +0 -9
  250. package/esm2022/core/testing/optgroup-harness-filters.mjs +0 -9
  251. package/esm2022/core/testing/optgroup-harness.mjs +0 -43
  252. package/esm2022/core/testing/option-harness-filters.mjs +0 -9
  253. package/esm2022/core/testing/option-harness.mjs +0 -53
  254. package/esm2022/core/testing/public-api.mjs +0 -12
  255. package/esm2022/core/version.mjs +0 -11
  256. package/esm2022/datepicker/aria-accessible-name.mjs +0 -159
  257. package/esm2022/datepicker/calendar-body.mjs +0 -509
  258. package/esm2022/datepicker/calendar.mjs +0 -426
  259. package/esm2022/datepicker/date-range-input-parts.mjs +0 -372
  260. package/esm2022/datepicker/date-range-input.mjs +0 -369
  261. package/esm2022/datepicker/date-range-picker.mjs +0 -51
  262. package/esm2022/datepicker/date-range-selection-strategy.mjs +0 -97
  263. package/esm2022/datepicker/date-selection-model.mjs +0 -188
  264. package/esm2022/datepicker/datepicker-actions.mjs +0 -91
  265. package/esm2022/datepicker/datepicker-animations.mjs +0 -35
  266. package/esm2022/datepicker/datepicker-base.mjs +0 -609
  267. package/esm2022/datepicker/datepicker-errors.mjs +0 -14
  268. package/esm2022/datepicker/datepicker-input-base.mjs +0 -311
  269. package/esm2022/datepicker/datepicker-input.mjs +0 -200
  270. package/esm2022/datepicker/datepicker-intl.mjs +0 -69
  271. package/esm2022/datepicker/datepicker-module.mjs +0 -138
  272. package/esm2022/datepicker/datepicker-toggle.mjs +0 -113
  273. package/esm2022/datepicker/datepicker.mjs +0 -38
  274. package/esm2022/datepicker/datepicker_public_index.mjs +0 -5
  275. package/esm2022/datepicker/index.mjs +0 -9
  276. package/esm2022/datepicker/month-view.mjs +0 -460
  277. package/esm2022/datepicker/multi-year-view.mjs +0 -330
  278. package/esm2022/datepicker/public-api.mjs +0 -27
  279. package/esm2022/datepicker/testing/calendar-cell-harness.mjs +0 -138
  280. package/esm2022/datepicker/testing/calendar-harness.mjs +0 -83
  281. package/esm2022/datepicker/testing/date-range-input-harness.mjs +0 -98
  282. package/esm2022/datepicker/testing/datepicker-harness-filters.mjs +0 -9
  283. package/esm2022/datepicker/testing/datepicker-input-harness-base.mjs +0 -81
  284. package/esm2022/datepicker/testing/datepicker-input-harness.mjs +0 -58
  285. package/esm2022/datepicker/testing/datepicker-toggle-harness.mjs +0 -41
  286. package/esm2022/datepicker/testing/datepicker-trigger-harness-base.mjs +0 -65
  287. package/esm2022/datepicker/testing/index.mjs +0 -9
  288. package/esm2022/datepicker/testing/public-api.mjs +0 -14
  289. package/esm2022/datepicker/year-view.mjs +0 -324
  290. package/esm2022/dialog/dialog-animations.mjs +0 -38
  291. package/esm2022/dialog/dialog-config.mjs +0 -59
  292. package/esm2022/dialog/dialog-container.mjs +0 -253
  293. package/esm2022/dialog/dialog-content-directives.mjs +0 -212
  294. package/esm2022/dialog/dialog-ref.mjs +0 -177
  295. package/esm2022/dialog/dialog.mjs +0 -212
  296. package/esm2022/dialog/dialog_public_index.mjs +0 -5
  297. package/esm2022/dialog/index.mjs +0 -9
  298. package/esm2022/dialog/module.mjs +0 -45
  299. package/esm2022/dialog/public-api.mjs +0 -15
  300. package/esm2022/dialog/testing/dialog-harness-filters.mjs +0 -9
  301. package/esm2022/dialog/testing/dialog-harness.mjs +0 -84
  302. package/esm2022/dialog/testing/dialog-opener.mjs +0 -58
  303. package/esm2022/dialog/testing/index.mjs +0 -10
  304. package/esm2022/dialog/testing/public-api.mjs +0 -10
  305. package/esm2022/divider/divider-module.mjs +0 -24
  306. package/esm2022/divider/divider.mjs +0 -48
  307. package/esm2022/divider/divider_public_index.mjs +0 -5
  308. package/esm2022/divider/index.mjs +0 -9
  309. package/esm2022/divider/public-api.mjs +0 -10
  310. package/esm2022/divider/testing/divider-harness-filters.mjs +0 -9
  311. package/esm2022/divider/testing/divider-harness.mjs +0 -22
  312. package/esm2022/divider/testing/index.mjs +0 -9
  313. package/esm2022/divider/testing/public-api.mjs +0 -10
  314. package/esm2022/expansion/accordion-base.mjs +0 -14
  315. package/esm2022/expansion/accordion.mjs +0 -96
  316. package/esm2022/expansion/expansion-animations.mjs +0 -51
  317. package/esm2022/expansion/expansion-module.mjs +0 -65
  318. package/esm2022/expansion/expansion-panel-base.mjs +0 -14
  319. package/esm2022/expansion/expansion-panel-content.mjs +0 -35
  320. package/esm2022/expansion/expansion-panel-header.mjs +0 -218
  321. package/esm2022/expansion/expansion-panel.mjs +0 -211
  322. package/esm2022/expansion/expansion_public_index.mjs +0 -5
  323. package/esm2022/expansion/index.mjs +0 -9
  324. package/esm2022/expansion/public-api.mjs +0 -16
  325. package/esm2022/expansion/testing/accordion-harness.mjs +0 -31
  326. package/esm2022/expansion/testing/expansion-harness-filters.mjs +0 -9
  327. package/esm2022/expansion/testing/expansion-harness.mjs +0 -128
  328. package/esm2022/expansion/testing/index.mjs +0 -9
  329. package/esm2022/expansion/testing/public-api.mjs +0 -11
  330. package/esm2022/form-field/directives/error.mjs +0 -48
  331. package/esm2022/form-field/directives/floating-label.mjs +0 -135
  332. package/esm2022/form-field/directives/hint.mjs +0 -40
  333. package/esm2022/form-field/directives/label.mjs +0 -22
  334. package/esm2022/form-field/directives/line-ripple.mjs +0 -60
  335. package/esm2022/form-field/directives/notched-outline.mjs +0 -66
  336. package/esm2022/form-field/directives/prefix.mjs +0 -38
  337. package/esm2022/form-field/directives/suffix.mjs +0 -38
  338. package/esm2022/form-field/form-field-animations.mjs +0 -24
  339. package/esm2022/form-field/form-field-control.mjs +0 -11
  340. package/esm2022/form-field/form-field-errors.mjs +0 -20
  341. package/esm2022/form-field/form-field.mjs +0 -620
  342. package/esm2022/form-field/form-field_public_index.mjs +0 -5
  343. package/esm2022/form-field/index.mjs +0 -9
  344. package/esm2022/form-field/module.mjs +0 -51
  345. package/esm2022/form-field/public-api.mjs +0 -18
  346. package/esm2022/form-field/testing/control/form-field-control-harness.mjs +0 -15
  347. package/esm2022/form-field/testing/control/index.mjs +0 -9
  348. package/esm2022/form-field/testing/error-harness.mjs +0 -29
  349. package/esm2022/form-field/testing/form-field-harness-filters.mjs +0 -9
  350. package/esm2022/form-field/testing/form-field-harness.mjs +0 -179
  351. package/esm2022/form-field/testing/index.mjs +0 -9
  352. package/esm2022/form-field/testing/public-api.mjs +0 -15
  353. package/esm2022/grid-list/grid-list-base.mjs +0 -14
  354. package/esm2022/grid-list/grid-list-module.mjs +0 -59
  355. package/esm2022/grid-list/grid-list.mjs +0 -146
  356. package/esm2022/grid-list/grid-list_public_index.mjs +0 -5
  357. package/esm2022/grid-list/grid-tile.mjs +0 -128
  358. package/esm2022/grid-list/index.mjs +0 -9
  359. package/esm2022/grid-list/public-api.mjs +0 -14
  360. package/esm2022/grid-list/testing/grid-list-harness-filters.mjs +0 -9
  361. package/esm2022/grid-list/testing/grid-list-harness.mjs +0 -76
  362. package/esm2022/grid-list/testing/grid-tile-harness.mjs +0 -71
  363. package/esm2022/grid-list/testing/index.mjs +0 -9
  364. package/esm2022/grid-list/testing/public-api.mjs +0 -11
  365. package/esm2022/grid-list/tile-coordinator.mjs +0 -145
  366. package/esm2022/grid-list/tile-styler.mjs +0 -231
  367. package/esm2022/icon/fake-svgs.mjs +0 -62
  368. package/esm2022/icon/icon-module.mjs +0 -24
  369. package/esm2022/icon/icon-registry.mjs +0 -593
  370. package/esm2022/icon/icon.mjs +0 -379
  371. package/esm2022/icon/icon_public_index.mjs +0 -5
  372. package/esm2022/icon/index.mjs +0 -9
  373. package/esm2022/icon/public-api.mjs +0 -11
  374. package/esm2022/icon/testing/fake-icon-registry.mjs +0 -92
  375. package/esm2022/icon/testing/icon-harness-filters.mjs +0 -14
  376. package/esm2022/icon/testing/icon-harness.mjs +0 -60
  377. package/esm2022/icon/testing/index.mjs +0 -9
  378. package/esm2022/icon/testing/public-api.mjs +0 -11
  379. package/esm2022/icon/testing/testing_public_index.mjs +0 -5
  380. package/esm2022/icon/trusted-types.mjs +0 -43
  381. package/esm2022/index.mjs +0 -14
  382. package/esm2022/input/index.mjs +0 -9
  383. package/esm2022/input/input-errors.mjs +0 -12
  384. package/esm2022/input/input-value-accessor.mjs +0 -16
  385. package/esm2022/input/input.mjs +0 -490
  386. package/esm2022/input/input_public_index.mjs +0 -5
  387. package/esm2022/input/module.mjs +0 -26
  388. package/esm2022/input/public-api.mjs +0 -14
  389. package/esm2022/input/testing/index.mjs +0 -9
  390. package/esm2022/input/testing/input-harness-filters.mjs +0 -9
  391. package/esm2022/input/testing/input-harness.mjs +0 -113
  392. package/esm2022/input/testing/native-option-harness.mjs +0 -42
  393. package/esm2022/input/testing/native-select-harness-filters.mjs +0 -9
  394. package/esm2022/input/testing/native-select-harness.mjs +0 -79
  395. package/esm2022/input/testing/public-api.mjs +0 -13
  396. package/esm2022/list/action-list.mjs +0 -31
  397. package/esm2022/list/index.mjs +0 -9
  398. package/esm2022/list/list-base.mjs +0 -284
  399. package/esm2022/list/list-item-sections.mjs +0 -144
  400. package/esm2022/list/list-module.mjs +0 -97
  401. package/esm2022/list/list-option-types.mjs +0 -16
  402. package/esm2022/list/list-option.mjs +0 -295
  403. package/esm2022/list/list.mjs +0 -103
  404. package/esm2022/list/list_public_index.mjs +0 -5
  405. package/esm2022/list/nav-list.mjs +0 -37
  406. package/esm2022/list/public-api.mjs +0 -18
  407. package/esm2022/list/selection-list.mjs +0 -391
  408. package/esm2022/list/subheader.mjs +0 -28
  409. package/esm2022/list/testing/action-list-harness.mjs +0 -59
  410. package/esm2022/list/testing/index.mjs +0 -9
  411. package/esm2022/list/testing/list-harness-base.mjs +0 -95
  412. package/esm2022/list/testing/list-harness-filters.mjs +0 -9
  413. package/esm2022/list/testing/list-harness.mjs +0 -41
  414. package/esm2022/list/testing/list-item-harness-base.mjs +0 -162
  415. package/esm2022/list/testing/nav-list-harness.mjs +0 -69
  416. package/esm2022/list/testing/public-api.mjs +0 -14
  417. package/esm2022/list/testing/selection-list-harness.mjs +0 -122
  418. package/esm2022/list/tokens.mjs +0 -11
  419. package/esm2022/menu/index.mjs +0 -9
  420. package/esm2022/menu/menu-animations.mjs +0 -61
  421. package/esm2022/menu/menu-content.mjs +0 -87
  422. package/esm2022/menu/menu-errors.mjs +0 -35
  423. package/esm2022/menu/menu-item.mjs +0 -148
  424. package/esm2022/menu/menu-panel.mjs +0 -14
  425. package/esm2022/menu/menu-positions.mjs +0 -9
  426. package/esm2022/menu/menu-trigger.mjs +0 -542
  427. package/esm2022/menu/menu.mjs +0 -405
  428. package/esm2022/menu/menu_public_index.mjs +0 -5
  429. package/esm2022/menu/module.mjs +0 -63
  430. package/esm2022/menu/public-api.mjs +0 -16
  431. package/esm2022/menu/testing/index.mjs +0 -9
  432. package/esm2022/menu/testing/menu-harness-filters.mjs +0 -9
  433. package/esm2022/menu/testing/menu-harness.mjs +0 -166
  434. package/esm2022/menu/testing/public-api.mjs +0 -10
  435. package/esm2022/paginator/index.mjs +0 -9
  436. package/esm2022/paginator/module.mjs +0 -28
  437. package/esm2022/paginator/paginator-intl.mjs +0 -62
  438. package/esm2022/paginator/paginator.mjs +0 -266
  439. package/esm2022/paginator/paginator_public_index.mjs +0 -5
  440. package/esm2022/paginator/public-api.mjs +0 -11
  441. package/esm2022/paginator/testing/index.mjs +0 -9
  442. package/esm2022/paginator/testing/paginator-harness-filters.mjs +0 -9
  443. package/esm2022/paginator/testing/paginator-harness.mjs +0 -98
  444. package/esm2022/paginator/testing/public-api.mjs +0 -10
  445. package/esm2022/progress-bar/index.mjs +0 -9
  446. package/esm2022/progress-bar/module.mjs +0 -24
  447. package/esm2022/progress-bar/progress-bar.mjs +0 -181
  448. package/esm2022/progress-bar/progress-bar_public_index.mjs +0 -5
  449. package/esm2022/progress-bar/public-api.mjs +0 -10
  450. package/esm2022/progress-bar/testing/index.mjs +0 -9
  451. package/esm2022/progress-bar/testing/progress-bar-harness-filters.mjs +0 -9
  452. package/esm2022/progress-bar/testing/progress-bar-harness.mjs +0 -33
  453. package/esm2022/progress-bar/testing/public-api.mjs +0 -10
  454. package/esm2022/progress-bar/testing/testing_public_index.mjs +0 -5
  455. package/esm2022/progress-spinner/index.mjs +0 -9
  456. package/esm2022/progress-spinner/module.mjs +0 -25
  457. package/esm2022/progress-spinner/progress-spinner.mjs +0 -166
  458. package/esm2022/progress-spinner/progress-spinner_public_index.mjs +0 -5
  459. package/esm2022/progress-spinner/public-api.mjs +0 -10
  460. package/esm2022/progress-spinner/testing/index.mjs +0 -9
  461. package/esm2022/progress-spinner/testing/progress-spinner-harness-filters.mjs +0 -9
  462. package/esm2022/progress-spinner/testing/progress-spinner-harness.mjs +0 -35
  463. package/esm2022/progress-spinner/testing/public-api.mjs +0 -10
  464. package/esm2022/progress-spinner/testing/testing_public_index.mjs +0 -5
  465. package/esm2022/radio/index.mjs +0 -9
  466. package/esm2022/radio/module.mjs +0 -25
  467. package/esm2022/radio/public-api.mjs +0 -10
  468. package/esm2022/radio/radio.mjs +0 -680
  469. package/esm2022/radio/radio_public_index.mjs +0 -5
  470. package/esm2022/radio/testing/index.mjs +0 -9
  471. package/esm2022/radio/testing/public-api.mjs +0 -10
  472. package/esm2022/radio/testing/radio-harness-filters.mjs +0 -9
  473. package/esm2022/radio/testing/radio-harness.mjs +0 -228
  474. package/esm2022/select/index.mjs +0 -9
  475. package/esm2022/select/module.mjs +0 -59
  476. package/esm2022/select/public-api.mjs +0 -15
  477. package/esm2022/select/select-animations.mjs +0 -38
  478. package/esm2022/select/select-errors.mjs +0 -35
  479. package/esm2022/select/select.mjs +0 -1160
  480. package/esm2022/select/select_public_index.mjs +0 -5
  481. package/esm2022/select/testing/index.mjs +0 -9
  482. package/esm2022/select/testing/public-api.mjs +0 -10
  483. package/esm2022/select/testing/select-harness-filters.mjs +0 -9
  484. package/esm2022/select/testing/select-harness.mjs +0 -129
  485. package/esm2022/sidenav/drawer-animations.mjs +0 -33
  486. package/esm2022/sidenav/drawer.mjs +0 -863
  487. package/esm2022/sidenav/index.mjs +0 -9
  488. package/esm2022/sidenav/public-api.mjs +0 -12
  489. package/esm2022/sidenav/sidenav-module.mjs +0 -60
  490. package/esm2022/sidenav/sidenav.mjs +0 -148
  491. package/esm2022/sidenav/sidenav_public_index.mjs +0 -5
  492. package/esm2022/sidenav/testing/drawer-container-harness.mjs +0 -36
  493. package/esm2022/sidenav/testing/drawer-content-harness.mjs +0 -23
  494. package/esm2022/sidenav/testing/drawer-harness-filters.mjs +0 -9
  495. package/esm2022/sidenav/testing/drawer-harness.mjs +0 -49
  496. package/esm2022/sidenav/testing/index.mjs +0 -9
  497. package/esm2022/sidenav/testing/public-api.mjs +0 -15
  498. package/esm2022/sidenav/testing/sidenav-container-harness.mjs +0 -36
  499. package/esm2022/sidenav/testing/sidenav-content-harness.mjs +0 -23
  500. package/esm2022/sidenav/testing/sidenav-harness.mjs +0 -28
  501. package/esm2022/slide-toggle/index.mjs +0 -9
  502. package/esm2022/slide-toggle/module.mjs +0 -41
  503. package/esm2022/slide-toggle/public-api.mjs +0 -12
  504. package/esm2022/slide-toggle/slide-toggle-config.mjs +0 -14
  505. package/esm2022/slide-toggle/slide-toggle-required-validator.mjs +0 -44
  506. package/esm2022/slide-toggle/slide-toggle.mjs +0 -273
  507. package/esm2022/slide-toggle/slide-toggle_public_index.mjs +0 -5
  508. package/esm2022/slide-toggle/testing/index.mjs +0 -9
  509. package/esm2022/slide-toggle/testing/public-api.mjs +0 -10
  510. package/esm2022/slide-toggle/testing/slide-toggle-harness-filters.mjs +0 -9
  511. package/esm2022/slide-toggle/testing/slide-toggle-harness.mjs +0 -110
  512. package/esm2022/slider/index.mjs +0 -9
  513. package/esm2022/slider/module.mjs +0 -39
  514. package/esm2022/slider/public-api.mjs +0 -13
  515. package/esm2022/slider/slider-input.mjs +0 -701
  516. package/esm2022/slider/slider-interface.mjs +0 -56
  517. package/esm2022/slider/slider-thumb.mjs +0 -231
  518. package/esm2022/slider/slider.mjs +0 -746
  519. package/esm2022/slider/slider_public_index.mjs +0 -5
  520. package/esm2022/slider/testing/index.mjs +0 -9
  521. package/esm2022/slider/testing/public-api.mjs +0 -11
  522. package/esm2022/slider/testing/slider-harness-filters.mjs +0 -7
  523. package/esm2022/slider/testing/slider-harness.mjs +0 -67
  524. package/esm2022/slider/testing/slider-thumb-harness.mjs +0 -95
  525. package/esm2022/snack-bar/index.mjs +0 -9
  526. package/esm2022/snack-bar/module.mjs +0 -47
  527. package/esm2022/snack-bar/public-api.mjs +0 -16
  528. package/esm2022/snack-bar/simple-snack-bar.mjs +0 -40
  529. package/esm2022/snack-bar/snack-bar-animations.mjs +0 -30
  530. package/esm2022/snack-bar/snack-bar-config.mjs +0 -33
  531. package/esm2022/snack-bar/snack-bar-container.mjs +0 -277
  532. package/esm2022/snack-bar/snack-bar-content.mjs +0 -55
  533. package/esm2022/snack-bar/snack-bar-ref.mjs +0 -89
  534. package/esm2022/snack-bar/snack-bar.mjs +0 -267
  535. package/esm2022/snack-bar/snack-bar_public_index.mjs +0 -5
  536. package/esm2022/snack-bar/testing/index.mjs +0 -9
  537. package/esm2022/snack-bar/testing/public-api.mjs +0 -10
  538. package/esm2022/snack-bar/testing/snack-bar-harness-filters.mjs +0 -9
  539. package/esm2022/snack-bar/testing/snack-bar-harness.mjs +0 -101
  540. package/esm2022/sort/index.mjs +0 -9
  541. package/esm2022/sort/public-api.mjs +0 -14
  542. package/esm2022/sort/sort-animations.mjs +0 -69
  543. package/esm2022/sort/sort-direction.mjs +0 -9
  544. package/esm2022/sort/sort-errors.mjs +0 -24
  545. package/esm2022/sort/sort-header-intl.mjs +0 -41
  546. package/esm2022/sort/sort-header.mjs +0 -317
  547. package/esm2022/sort/sort-module.mjs +0 -27
  548. package/esm2022/sort/sort.mjs +0 -155
  549. package/esm2022/sort/sort_public_index.mjs +0 -5
  550. package/esm2022/sort/testing/index.mjs +0 -9
  551. package/esm2022/sort/testing/public-api.mjs +0 -11
  552. package/esm2022/sort/testing/sort-harness-filters.mjs +0 -2
  553. package/esm2022/sort/testing/sort-harness.mjs +0 -36
  554. package/esm2022/sort/testing/sort-header-harness.mjs +0 -56
  555. package/esm2022/stepper/index.mjs +0 -9
  556. package/esm2022/stepper/public-api.mjs +0 -17
  557. package/esm2022/stepper/step-content.mjs +0 -27
  558. package/esm2022/stepper/step-header.mjs +0 -105
  559. package/esm2022/stepper/step-label.mjs +0 -22
  560. package/esm2022/stepper/stepper-animations.mjs +0 -47
  561. package/esm2022/stepper/stepper-button.mjs +0 -43
  562. package/esm2022/stepper/stepper-icon.mjs +0 -30
  563. package/esm2022/stepper/stepper-intl.mjs +0 -43
  564. package/esm2022/stepper/stepper-module.mjs +0 -88
  565. package/esm2022/stepper/stepper.mjs +0 -205
  566. package/esm2022/stepper/stepper_public_index.mjs +0 -5
  567. package/esm2022/stepper/testing/index.mjs +0 -9
  568. package/esm2022/stepper/testing/public-api.mjs +0 -12
  569. package/esm2022/stepper/testing/step-harness-filters.mjs +0 -7
  570. package/esm2022/stepper/testing/step-harness.mjs +0 -90
  571. package/esm2022/stepper/testing/stepper-button-harnesses.mjs +0 -48
  572. package/esm2022/stepper/testing/stepper-harness.mjs +0 -51
  573. package/esm2022/table/cell.mjs +0 -147
  574. package/esm2022/table/index.mjs +0 -9
  575. package/esm2022/table/module.mjs +0 -93
  576. package/esm2022/table/public-api.mjs +0 -14
  577. package/esm2022/table/row.mjs +0 -163
  578. package/esm2022/table/table-data-source.mjs +0 -317
  579. package/esm2022/table/table.mjs +0 -122
  580. package/esm2022/table/table_public_index.mjs +0 -5
  581. package/esm2022/table/testing/cell-harness.mjs +0 -77
  582. package/esm2022/table/testing/index.mjs +0 -9
  583. package/esm2022/table/testing/public-api.mjs +0 -12
  584. package/esm2022/table/testing/row-harness.mjs +0 -84
  585. package/esm2022/table/testing/table-harness-filters.mjs +0 -2
  586. package/esm2022/table/testing/table-harness.mjs +0 -86
  587. package/esm2022/table/text-column.mjs +0 -60
  588. package/esm2022/tabs/index.mjs +0 -9
  589. package/esm2022/tabs/ink-bar.mjs +0 -149
  590. package/esm2022/tabs/module.mjs +0 -60
  591. package/esm2022/tabs/paginated-tab-header.mjs +0 -539
  592. package/esm2022/tabs/public-api.mjs +0 -21
  593. package/esm2022/tabs/tab-body.mjs +0 -199
  594. package/esm2022/tabs/tab-config.mjs +0 -11
  595. package/esm2022/tabs/tab-content.mjs +0 -32
  596. package/esm2022/tabs/tab-group.mjs +0 -469
  597. package/esm2022/tabs/tab-header.mjs +0 -86
  598. package/esm2022/tabs/tab-label-wrapper.mjs +0 -49
  599. package/esm2022/tabs/tab-label.mjs +0 -44
  600. package/esm2022/tabs/tab-nav-bar/tab-nav-bar.mjs +0 -388
  601. package/esm2022/tabs/tab.mjs +0 -128
  602. package/esm2022/tabs/tabs-animations.mjs +0 -45
  603. package/esm2022/tabs/tabs_public_index.mjs +0 -5
  604. package/esm2022/tabs/testing/index.mjs +0 -9
  605. package/esm2022/tabs/testing/public-api.mjs +0 -13
  606. package/esm2022/tabs/testing/tab-group-harness.mjs +0 -56
  607. package/esm2022/tabs/testing/tab-harness-filters.mjs +0 -2
  608. package/esm2022/tabs/testing/tab-harness.mjs +0 -66
  609. package/esm2022/tabs/testing/tab-link-harness.mjs +0 -40
  610. package/esm2022/tabs/testing/tab-nav-bar-harness.mjs +0 -66
  611. package/esm2022/tabs/testing/tab-nav-panel-harness.mjs +0 -27
  612. package/esm2022/toolbar/index.mjs +0 -9
  613. package/esm2022/toolbar/public-api.mjs +0 -10
  614. package/esm2022/toolbar/testing/index.mjs +0 -9
  615. package/esm2022/toolbar/testing/public-api.mjs +0 -10
  616. package/esm2022/toolbar/testing/toolbar-harness-filters.mjs +0 -9
  617. package/esm2022/toolbar/testing/toolbar-harness.mjs +0 -44
  618. package/esm2022/toolbar/toolbar-module.mjs +0 -24
  619. package/esm2022/toolbar/toolbar.mjs +0 -84
  620. package/esm2022/toolbar/toolbar_public_index.mjs +0 -5
  621. package/esm2022/tooltip/index.mjs +0 -9
  622. package/esm2022/tooltip/module.mjs +0 -29
  623. package/esm2022/tooltip/public-api.mjs +0 -11
  624. package/esm2022/tooltip/testing/index.mjs +0 -9
  625. package/esm2022/tooltip/testing/public-api.mjs +0 -10
  626. package/esm2022/tooltip/testing/tooltip-harness-filters.mjs +0 -9
  627. package/esm2022/tooltip/testing/tooltip-harness.mjs +0 -66
  628. package/esm2022/tooltip/tooltip-animations.mjs +0 -24
  629. package/esm2022/tooltip/tooltip.mjs +0 -920
  630. package/esm2022/tooltip/tooltip_public_index.mjs +0 -5
  631. package/esm2022/tree/data-source/flat-data-source.mjs +0 -156
  632. package/esm2022/tree/data-source/nested-data-source.mjs +0 -38
  633. package/esm2022/tree/index.mjs +0 -9
  634. package/esm2022/tree/node.mjs +0 -220
  635. package/esm2022/tree/outlet.mjs +0 -46
  636. package/esm2022/tree/padding.mjs +0 -46
  637. package/esm2022/tree/public-api.mjs +0 -16
  638. package/esm2022/tree/testing/index.mjs +0 -9
  639. package/esm2022/tree/testing/node-harness.mjs +0 -73
  640. package/esm2022/tree/testing/public-api.mjs +0 -11
  641. package/esm2022/tree/testing/tree-harness-filters.mjs +0 -9
  642. package/esm2022/tree/testing/tree-harness.mjs +0 -123
  643. package/esm2022/tree/toggle.mjs +0 -27
  644. package/esm2022/tree/tree-module.mjs +0 -50
  645. package/esm2022/tree/tree.mjs +0 -34
  646. package/esm2022/tree/tree_public_index.mjs +0 -5
@@ -1,301 +0,0 @@
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 { AriaDescriber, InteractivityChecker } from '@angular/cdk/a11y';
9
- import { DOCUMENT } from '@angular/common';
10
- import { ApplicationRef, booleanAttribute, ChangeDetectionStrategy, Component, createComponent, Directive, ElementRef, EnvironmentInjector, inject, Inject, Input, NgZone, Optional, Renderer2, ViewEncapsulation, ANIMATION_MODULE_TYPE, } from '@angular/core';
11
- import * as i0 from "@angular/core";
12
- import * as i1 from "@angular/cdk/a11y";
13
- let nextId = 0;
14
- const BADGE_CONTENT_CLASS = 'mat-badge-content';
15
- /** Keeps track of the apps currently containing badges. */
16
- const badgeApps = new Set();
17
- /**
18
- * Component used to load the structural styles of the badge.
19
- * @docs-private
20
- */
21
- export class _MatBadgeStyleLoader {
22
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0-next.2", ngImport: i0, type: _MatBadgeStyleLoader, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
23
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.0-next.2", type: _MatBadgeStyleLoader, isStandalone: true, selector: "ng-component", ngImport: i0, template: '', isInline: true, styles: [".mat-badge{position:relative}.mat-badge.mat-badge{overflow:visible}.mat-badge-content{position:absolute;text-align:center;display:inline-block;transition:transform 200ms ease-in-out;transform:scale(0.6);overflow:hidden;white-space:nowrap;text-overflow:ellipsis;box-sizing:border-box;pointer-events:none;background-color:var(--mat-badge-background-color, var(--mat-app-error));color:var(--mat-badge-text-color, var(--mat-app-on-error));font-family:var(--mat-badge-text-font, var(--mat-app-label-small-font));font-weight:var(--mat-badge-text-weight, var(--mat-app-label-small-weight));border-radius:var(--mat-badge-container-shape, var(--mat-app-corner-full))}.cdk-high-contrast-active .mat-badge-content{outline:solid 1px;border-radius:0}.mat-badge-above .mat-badge-content{bottom:100%}.mat-badge-below .mat-badge-content{top:100%}.mat-badge-before .mat-badge-content{right:100%}[dir=rtl] .mat-badge-before .mat-badge-content{right:auto;left:100%}.mat-badge-after .mat-badge-content{left:100%}[dir=rtl] .mat-badge-after .mat-badge-content{left:auto;right:100%}.mat-badge-disabled .mat-badge-content{background-color:var(--mat-badge-disabled-state-background-color);color:var(--mat-badge-disabled-state-text-color, var(--mat-app-on-error))}.mat-badge-hidden .mat-badge-content{display:none}.ng-animate-disabled .mat-badge-content,.mat-badge-content._mat-animation-noopable{transition:none}.mat-badge-content.mat-badge-active{transform:none}.mat-badge-small .mat-badge-content{width:var(--mat-badge-legacy-small-size-container-size, unset);height:var(--mat-badge-legacy-small-size-container-size, unset);min-width:var(--mat-badge-small-size-container-size, unset);min-height:var(--mat-badge-small-size-container-size, unset);line-height:var(--mat-badge-legacy-small-size-container-size, var(--mat-badge-small-size-container-size));padding:var(--mat-badge-small-size-container-padding);font-size:var(--mat-badge-small-size-text-size);margin:var(--mat-badge-small-size-container-offset)}.mat-badge-small.mat-badge-overlap .mat-badge-content{margin:var(--mat-badge-small-size-container-overlap-offset)}.mat-badge-medium .mat-badge-content{width:var(--mat-badge-legacy-container-size, unset);height:var(--mat-badge-legacy-container-size, unset);min-width:var(--mat-badge-container-size, unset);min-height:var(--mat-badge-container-size, unset);line-height:var(--mat-badge-legacy-container-size, var(--mat-badge-container-size));padding:var(--mat-badge-container-padding);font-size:var(--mat-badge-text-size, var(--mat-app-label-small-size));margin:var(--mat-badge-container-offset)}.mat-badge-medium.mat-badge-overlap .mat-badge-content{margin:var(--mat-badge-container-overlap-offset)}.mat-badge-large .mat-badge-content{width:var(--mat-badge-legacy-large-size-container-size, unset);height:var(--mat-badge-legacy-large-size-container-size, unset);min-width:var(--mat-badge-large-size-container-size, unset);min-height:var(--mat-badge-large-size-container-size, unset);line-height:var(--mat-badge-legacy-large-size-container-size, var(--mat-badge-large-size-container-size));padding:var(--mat-badge-large-size-container-padding);font-size:var(--mat-badge-large-size-text-size, var(--mat-app-label-small-size));margin:var(--mat-badge-large-size-container-offset)}.mat-badge-large.mat-badge-overlap .mat-badge-content{margin:var(--mat-badge-large-size-container-overlap-offset)}"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
24
- }
25
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0-next.2", ngImport: i0, type: _MatBadgeStyleLoader, decorators: [{
26
- type: Component,
27
- args: [{ standalone: true, encapsulation: ViewEncapsulation.None, template: '', changeDetection: ChangeDetectionStrategy.OnPush, styles: [".mat-badge{position:relative}.mat-badge.mat-badge{overflow:visible}.mat-badge-content{position:absolute;text-align:center;display:inline-block;transition:transform 200ms ease-in-out;transform:scale(0.6);overflow:hidden;white-space:nowrap;text-overflow:ellipsis;box-sizing:border-box;pointer-events:none;background-color:var(--mat-badge-background-color, var(--mat-app-error));color:var(--mat-badge-text-color, var(--mat-app-on-error));font-family:var(--mat-badge-text-font, var(--mat-app-label-small-font));font-weight:var(--mat-badge-text-weight, var(--mat-app-label-small-weight));border-radius:var(--mat-badge-container-shape, var(--mat-app-corner-full))}.cdk-high-contrast-active .mat-badge-content{outline:solid 1px;border-radius:0}.mat-badge-above .mat-badge-content{bottom:100%}.mat-badge-below .mat-badge-content{top:100%}.mat-badge-before .mat-badge-content{right:100%}[dir=rtl] .mat-badge-before .mat-badge-content{right:auto;left:100%}.mat-badge-after .mat-badge-content{left:100%}[dir=rtl] .mat-badge-after .mat-badge-content{left:auto;right:100%}.mat-badge-disabled .mat-badge-content{background-color:var(--mat-badge-disabled-state-background-color);color:var(--mat-badge-disabled-state-text-color, var(--mat-app-on-error))}.mat-badge-hidden .mat-badge-content{display:none}.ng-animate-disabled .mat-badge-content,.mat-badge-content._mat-animation-noopable{transition:none}.mat-badge-content.mat-badge-active{transform:none}.mat-badge-small .mat-badge-content{width:var(--mat-badge-legacy-small-size-container-size, unset);height:var(--mat-badge-legacy-small-size-container-size, unset);min-width:var(--mat-badge-small-size-container-size, unset);min-height:var(--mat-badge-small-size-container-size, unset);line-height:var(--mat-badge-legacy-small-size-container-size, var(--mat-badge-small-size-container-size));padding:var(--mat-badge-small-size-container-padding);font-size:var(--mat-badge-small-size-text-size);margin:var(--mat-badge-small-size-container-offset)}.mat-badge-small.mat-badge-overlap .mat-badge-content{margin:var(--mat-badge-small-size-container-overlap-offset)}.mat-badge-medium .mat-badge-content{width:var(--mat-badge-legacy-container-size, unset);height:var(--mat-badge-legacy-container-size, unset);min-width:var(--mat-badge-container-size, unset);min-height:var(--mat-badge-container-size, unset);line-height:var(--mat-badge-legacy-container-size, var(--mat-badge-container-size));padding:var(--mat-badge-container-padding);font-size:var(--mat-badge-text-size, var(--mat-app-label-small-size));margin:var(--mat-badge-container-offset)}.mat-badge-medium.mat-badge-overlap .mat-badge-content{margin:var(--mat-badge-container-overlap-offset)}.mat-badge-large .mat-badge-content{width:var(--mat-badge-legacy-large-size-container-size, unset);height:var(--mat-badge-legacy-large-size-container-size, unset);min-width:var(--mat-badge-large-size-container-size, unset);min-height:var(--mat-badge-large-size-container-size, unset);line-height:var(--mat-badge-legacy-large-size-container-size, var(--mat-badge-large-size-container-size));padding:var(--mat-badge-large-size-container-padding);font-size:var(--mat-badge-large-size-text-size, var(--mat-app-label-small-size));margin:var(--mat-badge-large-size-container-offset)}.mat-badge-large.mat-badge-overlap .mat-badge-content{margin:var(--mat-badge-large-size-container-overlap-offset)}"] }]
28
- }] });
29
- /** Directive to display a text badge. */
30
- export class MatBadge {
31
- /**
32
- * Theme color of the badge. This API is supported in M2 themes only, it
33
- * has no effect in M3 themes.
34
- *
35
- * For information on applying color variants in M3, see
36
- * https://material.angular.io/guide/theming#using-component-color-variants.
37
- */
38
- get color() {
39
- return this._color;
40
- }
41
- set color(value) {
42
- this._setColor(value);
43
- this._color = value;
44
- }
45
- /** The content for the badge */
46
- get content() {
47
- return this._content;
48
- }
49
- set content(newContent) {
50
- this._updateRenderedContent(newContent);
51
- }
52
- /** Message used to describe the decorated element via aria-describedby */
53
- get description() {
54
- return this._description;
55
- }
56
- set description(newDescription) {
57
- this._updateDescription(newDescription);
58
- }
59
- constructor(_ngZone, _elementRef, _ariaDescriber, _renderer, _animationMode) {
60
- this._ngZone = _ngZone;
61
- this._elementRef = _elementRef;
62
- this._ariaDescriber = _ariaDescriber;
63
- this._renderer = _renderer;
64
- this._animationMode = _animationMode;
65
- this._color = 'primary';
66
- /** Whether the badge should overlap its contents or not */
67
- this.overlap = true;
68
- /**
69
- * Position the badge should reside.
70
- * Accepts any combination of 'above'|'below' and 'before'|'after'
71
- */
72
- this.position = 'above after';
73
- /** Size of the badge. Can be 'small', 'medium', or 'large'. */
74
- this.size = 'medium';
75
- /** Unique id for the badge */
76
- this._id = nextId++;
77
- /** Whether the OnInit lifecycle hook has run yet */
78
- this._isInitialized = false;
79
- /** InteractivityChecker to determine if the badge host is focusable. */
80
- this._interactivityChecker = inject(InteractivityChecker);
81
- this._document = inject(DOCUMENT);
82
- const appRef = inject(ApplicationRef);
83
- if (!badgeApps.has(appRef)) {
84
- badgeApps.add(appRef);
85
- const componentRef = createComponent(_MatBadgeStyleLoader, {
86
- environmentInjector: inject(EnvironmentInjector),
87
- });
88
- appRef.onDestroy(() => {
89
- badgeApps.delete(appRef);
90
- if (badgeApps.size === 0) {
91
- componentRef.destroy();
92
- }
93
- });
94
- }
95
- if (typeof ngDevMode === 'undefined' || ngDevMode) {
96
- const nativeElement = _elementRef.nativeElement;
97
- if (nativeElement.nodeType !== nativeElement.ELEMENT_NODE) {
98
- throw Error('matBadge must be attached to an element node.');
99
- }
100
- const matIconTagName = 'mat-icon';
101
- // Heads-up for developers to avoid putting matBadge on <mat-icon>
102
- // as it is aria-hidden by default docs mention this at:
103
- // https://material.angular.io/components/badge/overview#accessibility
104
- if (nativeElement.tagName.toLowerCase() === matIconTagName &&
105
- nativeElement.getAttribute('aria-hidden') === 'true') {
106
- console.warn(`Detected a matBadge on an "aria-hidden" "<mat-icon>". ` +
107
- `Consider setting aria-hidden="false" in order to surface the information assistive technology.` +
108
- `\n${nativeElement.outerHTML}`);
109
- }
110
- }
111
- }
112
- /** Whether the badge is above the host or not */
113
- isAbove() {
114
- return this.position.indexOf('below') === -1;
115
- }
116
- /** Whether the badge is after the host or not */
117
- isAfter() {
118
- return this.position.indexOf('before') === -1;
119
- }
120
- /**
121
- * Gets the element into which the badge's content is being rendered. Undefined if the element
122
- * hasn't been created (e.g. if the badge doesn't have content).
123
- */
124
- getBadgeElement() {
125
- return this._badgeElement;
126
- }
127
- ngOnInit() {
128
- // We may have server-side rendered badge that we need to clear.
129
- // We need to do this in ngOnInit because the full content of the component
130
- // on which the badge is attached won't necessarily be in the DOM until this point.
131
- this._clearExistingBadges();
132
- if (this.content && !this._badgeElement) {
133
- this._badgeElement = this._createBadgeElement();
134
- this._updateRenderedContent(this.content);
135
- }
136
- this._isInitialized = true;
137
- }
138
- ngOnDestroy() {
139
- // ViewEngine only: when creating a badge through the Renderer, Angular remembers its index.
140
- // We have to destroy it ourselves, otherwise it'll be retained in memory.
141
- if (this._renderer.destroyNode) {
142
- this._renderer.destroyNode(this._badgeElement);
143
- this._inlineBadgeDescription?.remove();
144
- }
145
- this._ariaDescriber.removeDescription(this._elementRef.nativeElement, this.description);
146
- }
147
- /** Gets whether the badge's host element is interactive. */
148
- _isHostInteractive() {
149
- // Ignore visibility since it requires an expensive style caluclation.
150
- return this._interactivityChecker.isFocusable(this._elementRef.nativeElement, {
151
- ignoreVisibility: true,
152
- });
153
- }
154
- /** Creates the badge element */
155
- _createBadgeElement() {
156
- const badgeElement = this._renderer.createElement('span');
157
- const activeClass = 'mat-badge-active';
158
- badgeElement.setAttribute('id', `mat-badge-content-${this._id}`);
159
- // The badge is aria-hidden because we don't want it to appear in the page's navigation
160
- // flow. Instead, we use the badge to describe the decorated element with aria-describedby.
161
- badgeElement.setAttribute('aria-hidden', 'true');
162
- badgeElement.classList.add(BADGE_CONTENT_CLASS);
163
- if (this._animationMode === 'NoopAnimations') {
164
- badgeElement.classList.add('_mat-animation-noopable');
165
- }
166
- this._elementRef.nativeElement.appendChild(badgeElement);
167
- // animate in after insertion
168
- if (typeof requestAnimationFrame === 'function' && this._animationMode !== 'NoopAnimations') {
169
- this._ngZone.runOutsideAngular(() => {
170
- requestAnimationFrame(() => {
171
- badgeElement.classList.add(activeClass);
172
- });
173
- });
174
- }
175
- else {
176
- badgeElement.classList.add(activeClass);
177
- }
178
- return badgeElement;
179
- }
180
- /** Update the text content of the badge element in the DOM, creating the element if necessary. */
181
- _updateRenderedContent(newContent) {
182
- const newContentNormalized = `${newContent ?? ''}`.trim();
183
- // Don't create the badge element if the directive isn't initialized because we want to
184
- // append the badge element to the *end* of the host element's content for backwards
185
- // compatibility.
186
- if (this._isInitialized && newContentNormalized && !this._badgeElement) {
187
- this._badgeElement = this._createBadgeElement();
188
- }
189
- if (this._badgeElement) {
190
- this._badgeElement.textContent = newContentNormalized;
191
- }
192
- this._content = newContentNormalized;
193
- }
194
- /** Updates the host element's aria description via AriaDescriber. */
195
- _updateDescription(newDescription) {
196
- // Always start by removing the aria-describedby; we will add a new one if necessary.
197
- this._ariaDescriber.removeDescription(this._elementRef.nativeElement, this.description);
198
- // NOTE: We only check whether the host is interactive here, which happens during
199
- // when then badge content changes. It is possible that the host changes
200
- // interactivity status separate from one of these. However, watching the interactivity
201
- // status of the host would require a `MutationObserver`, which is likely more code + overhead
202
- // than it's worth; from usages inside Google, we see that the vats majority of badges either
203
- // never change interactivity, or also set `matBadgeHidden` based on the same condition.
204
- if (!newDescription || this._isHostInteractive()) {
205
- this._removeInlineDescription();
206
- }
207
- this._description = newDescription;
208
- // We don't add `aria-describedby` for non-interactive hosts elements because we
209
- // instead insert the description inline.
210
- if (this._isHostInteractive()) {
211
- this._ariaDescriber.describe(this._elementRef.nativeElement, newDescription);
212
- }
213
- else {
214
- this._updateInlineDescription();
215
- }
216
- }
217
- _updateInlineDescription() {
218
- // Create the inline description element if it doesn't exist
219
- if (!this._inlineBadgeDescription) {
220
- this._inlineBadgeDescription = this._document.createElement('span');
221
- this._inlineBadgeDescription.classList.add('cdk-visually-hidden');
222
- }
223
- this._inlineBadgeDescription.textContent = this.description;
224
- this._badgeElement?.appendChild(this._inlineBadgeDescription);
225
- }
226
- _removeInlineDescription() {
227
- this._inlineBadgeDescription?.remove();
228
- this._inlineBadgeDescription = undefined;
229
- }
230
- /** Adds css theme class given the color to the component host */
231
- _setColor(colorPalette) {
232
- const classList = this._elementRef.nativeElement.classList;
233
- classList.remove(`mat-badge-${this._color}`);
234
- if (colorPalette) {
235
- classList.add(`mat-badge-${colorPalette}`);
236
- }
237
- }
238
- /** Clears any existing badges that might be left over from server-side rendering. */
239
- _clearExistingBadges() {
240
- // Only check direct children of this host element in order to avoid deleting
241
- // any badges that might exist in descendant elements.
242
- const badges = this._elementRef.nativeElement.querySelectorAll(`:scope > .${BADGE_CONTENT_CLASS}`);
243
- for (const badgeElement of Array.from(badges)) {
244
- if (badgeElement !== this._badgeElement) {
245
- badgeElement.remove();
246
- }
247
- }
248
- }
249
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0-next.2", ngImport: i0, type: MatBadge, deps: [{ token: i0.NgZone }, { token: i0.ElementRef }, { token: i1.AriaDescriber }, { token: i0.Renderer2 }, { token: ANIMATION_MODULE_TYPE, optional: true }], target: i0.ɵɵFactoryTarget.Directive }); }
250
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "18.2.0-next.2", type: MatBadge, isStandalone: true, selector: "[matBadge]", inputs: { color: ["matBadgeColor", "color"], overlap: ["matBadgeOverlap", "overlap", booleanAttribute], disabled: ["matBadgeDisabled", "disabled", booleanAttribute], position: ["matBadgePosition", "position"], content: ["matBadge", "content"], description: ["matBadgeDescription", "description"], size: ["matBadgeSize", "size"], hidden: ["matBadgeHidden", "hidden", booleanAttribute] }, host: { properties: { "class.mat-badge-overlap": "overlap", "class.mat-badge-above": "isAbove()", "class.mat-badge-below": "!isAbove()", "class.mat-badge-before": "!isAfter()", "class.mat-badge-after": "isAfter()", "class.mat-badge-small": "size === \"small\"", "class.mat-badge-medium": "size === \"medium\"", "class.mat-badge-large": "size === \"large\"", "class.mat-badge-hidden": "hidden || !content", "class.mat-badge-disabled": "disabled" }, classAttribute: "mat-badge" }, ngImport: i0 }); }
251
- }
252
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0-next.2", ngImport: i0, type: MatBadge, decorators: [{
253
- type: Directive,
254
- args: [{
255
- selector: '[matBadge]',
256
- host: {
257
- 'class': 'mat-badge',
258
- '[class.mat-badge-overlap]': 'overlap',
259
- '[class.mat-badge-above]': 'isAbove()',
260
- '[class.mat-badge-below]': '!isAbove()',
261
- '[class.mat-badge-before]': '!isAfter()',
262
- '[class.mat-badge-after]': 'isAfter()',
263
- '[class.mat-badge-small]': 'size === "small"',
264
- '[class.mat-badge-medium]': 'size === "medium"',
265
- '[class.mat-badge-large]': 'size === "large"',
266
- '[class.mat-badge-hidden]': 'hidden || !content',
267
- '[class.mat-badge-disabled]': 'disabled',
268
- },
269
- standalone: true,
270
- }]
271
- }], ctorParameters: () => [{ type: i0.NgZone }, { type: i0.ElementRef }, { type: i1.AriaDescriber }, { type: i0.Renderer2 }, { type: undefined, decorators: [{
272
- type: Optional
273
- }, {
274
- type: Inject,
275
- args: [ANIMATION_MODULE_TYPE]
276
- }] }], propDecorators: { color: [{
277
- type: Input,
278
- args: ['matBadgeColor']
279
- }], overlap: [{
280
- type: Input,
281
- args: [{ alias: 'matBadgeOverlap', transform: booleanAttribute }]
282
- }], disabled: [{
283
- type: Input,
284
- args: [{ alias: 'matBadgeDisabled', transform: booleanAttribute }]
285
- }], position: [{
286
- type: Input,
287
- args: ['matBadgePosition']
288
- }], content: [{
289
- type: Input,
290
- args: ['matBadge']
291
- }], description: [{
292
- type: Input,
293
- args: ['matBadgeDescription']
294
- }], size: [{
295
- type: Input,
296
- args: ['matBadgeSize']
297
- }], hidden: [{
298
- type: Input,
299
- args: [{ alias: 'matBadgeHidden', transform: booleanAttribute }]
300
- }] } });
301
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFkZ2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbWF0ZXJpYWwvYmFkZ2UvYmFkZ2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HO0FBRUgsT0FBTyxFQUFDLGFBQWEsRUFBRSxvQkFBb0IsRUFBQyxNQUFNLG1CQUFtQixDQUFDO0FBQ3RFLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUN6QyxPQUFPLEVBQ0wsY0FBYyxFQUNkLGdCQUFnQixFQUNoQix1QkFBdUIsRUFDdkIsU0FBUyxFQUNULGVBQWUsRUFDZixTQUFTLEVBQ1QsVUFBVSxFQUNWLG1CQUFtQixFQUNuQixNQUFNLEVBQ04sTUFBTSxFQUNOLEtBQUssRUFDTCxNQUFNLEVBR04sUUFBUSxFQUNSLFNBQVMsRUFDVCxpQkFBaUIsRUFDakIscUJBQXFCLEdBQ3RCLE1BQU0sZUFBZSxDQUFDOzs7QUFHdkIsSUFBSSxNQUFNLEdBQUcsQ0FBQyxDQUFDO0FBZ0JmLE1BQU0sbUJBQW1CLEdBQUcsbUJBQW1CLENBQUM7QUFFaEQsMkRBQTJEO0FBQzNELE1BQU0sU0FBUyxHQUFHLElBQUksR0FBRyxFQUFrQixDQUFDO0FBRTVDOzs7R0FHRztBQVFILE1BQU0sT0FBTyxvQkFBb0I7cUhBQXBCLG9CQUFvQjt5R0FBcEIsb0JBQW9CLHdFQUhyQixFQUFFOztrR0FHRCxvQkFBb0I7a0JBUGhDLFNBQVM7aUNBQ0ksSUFBSSxpQkFFRCxpQkFBaUIsQ0FBQyxJQUFJLFlBQzNCLEVBQUUsbUJBQ0ssdUJBQXVCLENBQUMsTUFBTTs7QUFJakQseUNBQXlDO0FBa0J6QyxNQUFNLE9BQU8sUUFBUTtJQUNuQjs7Ozs7O09BTUc7SUFDSCxJQUNJLEtBQUs7UUFDUCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUM7SUFDckIsQ0FBQztJQUNELElBQUksS0FBSyxDQUFDLEtBQW1CO1FBQzNCLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDdEIsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7SUFDdEIsQ0FBQztJQWVELGdDQUFnQztJQUNoQyxJQUNJLE9BQU87UUFDVCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDdkIsQ0FBQztJQUNELElBQUksT0FBTyxDQUFDLFVBQThDO1FBQ3hELElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBR0QsMEVBQTBFO0lBQzFFLElBQ0ksV0FBVztRQUNiLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQztJQUMzQixDQUFDO0lBQ0QsSUFBSSxXQUFXLENBQUMsY0FBc0I7UUFDcEMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUEwQkQsWUFDVSxPQUFlLEVBQ2YsV0FBb0MsRUFDcEMsY0FBNkIsRUFDN0IsU0FBb0IsRUFDdUIsY0FBdUI7UUFKbEUsWUFBTyxHQUFQLE9BQU8sQ0FBUTtRQUNmLGdCQUFXLEdBQVgsV0FBVyxDQUF5QjtRQUNwQyxtQkFBYyxHQUFkLGNBQWMsQ0FBZTtRQUM3QixjQUFTLEdBQVQsU0FBUyxDQUFXO1FBQ3VCLG1CQUFjLEdBQWQsY0FBYyxDQUFTO1FBOURwRSxXQUFNLEdBQWlCLFNBQVMsQ0FBQztRQUV6QywyREFBMkQ7UUFDSyxZQUFPLEdBQVksSUFBSSxDQUFDO1FBS3hGOzs7V0FHRztRQUN3QixhQUFRLEdBQXFCLGFBQWEsQ0FBQztRQXNCdEUsK0RBQStEO1FBQ3hDLFNBQUksR0FBaUIsUUFBUSxDQUFDO1FBS3JELDhCQUE4QjtRQUM5QixRQUFHLEdBQVcsTUFBTSxFQUFFLENBQUM7UUFRdkIsb0RBQW9EO1FBQzVDLG1CQUFjLEdBQUcsS0FBSyxDQUFDO1FBRS9CLHdFQUF3RTtRQUNoRSwwQkFBcUIsR0FBRyxNQUFNLENBQUMsb0JBQW9CLENBQUMsQ0FBQztRQUVyRCxjQUFTLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBU25DLE1BQU0sTUFBTSxHQUFHLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUV0QyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO1lBQzNCLFNBQVMsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUM7WUFFdEIsTUFBTSxZQUFZLEdBQUcsZUFBZSxDQUFDLG9CQUFvQixFQUFFO2dCQUN6RCxtQkFBbUIsRUFBRSxNQUFNLENBQUMsbUJBQW1CLENBQUM7YUFDakQsQ0FBQyxDQUFDO1lBRUgsTUFBTSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7Z0JBQ3BCLFNBQVMsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7Z0JBQ3pCLElBQUksU0FBUyxDQUFDLElBQUksS0FBSyxDQUFDLEVBQUUsQ0FBQztvQkFDekIsWUFBWSxDQUFDLE9BQU8sRUFBRSxDQUFDO2dCQUN6QixDQUFDO1lBQ0gsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDO1FBRUQsSUFBSSxPQUFPLFNBQVMsS0FBSyxXQUFXLElBQUksU0FBUyxFQUFFLENBQUM7WUFDbEQsTUFBTSxhQUFhLEdBQUcsV0FBVyxDQUFDLGFBQWEsQ0FBQztZQUNoRCxJQUFJLGFBQWEsQ0FBQyxRQUFRLEtBQUssYUFBYSxDQUFDLFlBQVksRUFBRSxDQUFDO2dCQUMxRCxNQUFNLEtBQUssQ0FBQywrQ0FBK0MsQ0FBQyxDQUFDO1lBQy9ELENBQUM7WUFFRCxNQUFNLGNBQWMsR0FBVyxVQUFVLENBQUM7WUFFMUMsa0VBQWtFO1lBQ2xFLHdEQUF3RDtZQUN4RCxzRUFBc0U7WUFDdEUsSUFDRSxhQUFhLENBQUMsT0FBTyxDQUFDLFdBQVcsRUFBRSxLQUFLLGNBQWM7Z0JBQ3RELGFBQWEsQ0FBQyxZQUFZLENBQUMsYUFBYSxDQUFDLEtBQUssTUFBTSxFQUNwRCxDQUFDO2dCQUNELE9BQU8sQ0FBQyxJQUFJLENBQ1Ysd0RBQXdEO29CQUN0RCxnR0FBZ0c7b0JBQ2hHLEtBQUssYUFBYSxDQUFDLFNBQVMsRUFBRSxDQUNqQyxDQUFDO1lBQ0osQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0lBRUQsaURBQWlEO0lBQ2pELE9BQU87UUFDTCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQy9DLENBQUM7SUFFRCxpREFBaUQ7SUFDakQsT0FBTztRQUNMLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDaEQsQ0FBQztJQUVEOzs7T0FHRztJQUNILGVBQWU7UUFDYixPQUFPLElBQUksQ0FBQyxhQUFhLENBQUM7SUFDNUIsQ0FBQztJQUVELFFBQVE7UUFDTixnRUFBZ0U7UUFDaEUsMkVBQTJFO1FBQzNFLG1GQUFtRjtRQUNuRixJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztRQUU1QixJQUFJLElBQUksQ0FBQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDeEMsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztZQUNoRCxJQUFJLENBQUMsc0JBQXNCLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzVDLENBQUM7UUFFRCxJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQztJQUM3QixDQUFDO0lBRUQsV0FBVztRQUNULDRGQUE0RjtRQUM1RiwwRUFBMEU7UUFDMUUsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQy9CLElBQUksQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztZQUMvQyxJQUFJLENBQUMsdUJBQXVCLEVBQUUsTUFBTSxFQUFFLENBQUM7UUFDekMsQ0FBQztRQUVELElBQUksQ0FBQyxjQUFjLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQzFGLENBQUM7SUFFRCw0REFBNEQ7SUFDcEQsa0JBQWtCO1FBQ3hCLHNFQUFzRTtRQUN0RSxPQUFPLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLEVBQUU7WUFDNUUsZ0JBQWdCLEVBQUUsSUFBSTtTQUN2QixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsZ0NBQWdDO0lBQ3hCLG1CQUFtQjtRQUN6QixNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUMxRCxNQUFNLFdBQVcsR0FBRyxrQkFBa0IsQ0FBQztRQUV2QyxZQUFZLENBQUMsWUFBWSxDQUFDLElBQUksRUFBRSxxQkFBcUIsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUM7UUFFakUsdUZBQXVGO1FBQ3ZGLDJGQUEyRjtRQUMzRixZQUFZLENBQUMsWUFBWSxDQUFDLGFBQWEsRUFBRSxNQUFNLENBQUMsQ0FBQztRQUNqRCxZQUFZLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1FBRWhELElBQUksSUFBSSxDQUFDLGNBQWMsS0FBSyxnQkFBZ0IsRUFBRSxDQUFDO1lBQzdDLFlBQVksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLHlCQUF5QixDQUFDLENBQUM7UUFDeEQsQ0FBQztRQUVELElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFDLFdBQVcsQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUV6RCw2QkFBNkI7UUFDN0IsSUFBSSxPQUFPLHFCQUFxQixLQUFLLFVBQVUsSUFBSSxJQUFJLENBQUMsY0FBYyxLQUFLLGdCQUFnQixFQUFFLENBQUM7WUFDNUYsSUFBSSxDQUFDLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLEVBQUU7Z0JBQ2xDLHFCQUFxQixDQUFDLEdBQUcsRUFBRTtvQkFDekIsWUFBWSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLENBQUM7Z0JBQzFDLENBQUMsQ0FBQyxDQUFDO1lBQ0wsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDO2FBQU0sQ0FBQztZQUNOLFlBQVksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQzFDLENBQUM7UUFFRCxPQUFPLFlBQVksQ0FBQztJQUN0QixDQUFDO0lBRUQsa0dBQWtHO0lBQzFGLHNCQUFzQixDQUFDLFVBQThDO1FBQzNFLE1BQU0sb0JBQW9CLEdBQVcsR0FBRyxVQUFVLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLENBQUM7UUFFbEUsdUZBQXVGO1FBQ3ZGLG9GQUFvRjtRQUNwRixpQkFBaUI7UUFDakIsSUFBSSxJQUFJLENBQUMsY0FBYyxJQUFJLG9CQUFvQixJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQ3ZFLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7UUFDbEQsQ0FBQztRQUVELElBQUksSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQ3ZCLElBQUksQ0FBQyxhQUFhLENBQUMsV0FBVyxHQUFHLG9CQUFvQixDQUFDO1FBQ3hELENBQUM7UUFFRCxJQUFJLENBQUMsUUFBUSxHQUFHLG9CQUFvQixDQUFDO0lBQ3ZDLENBQUM7SUFFRCxxRUFBcUU7SUFDN0Qsa0JBQWtCLENBQUMsY0FBc0I7UUFDL0MscUZBQXFGO1FBQ3JGLElBQUksQ0FBQyxjQUFjLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBRXhGLGlGQUFpRjtRQUNqRix3RUFBd0U7UUFDeEUsdUZBQXVGO1FBQ3ZGLDhGQUE4RjtRQUM5Riw2RkFBNkY7UUFDN0Ysd0ZBQXdGO1FBRXhGLElBQUksQ0FBQyxjQUFjLElBQUksSUFBSSxDQUFDLGtCQUFrQixFQUFFLEVBQUUsQ0FBQztZQUNqRCxJQUFJLENBQUMsd0JBQXdCLEVBQUUsQ0FBQztRQUNsQyxDQUFDO1FBRUQsSUFBSSxDQUFDLFlBQVksR0FBRyxjQUFjLENBQUM7UUFFbkMsZ0ZBQWdGO1FBQ2hGLHlDQUF5QztRQUN6QyxJQUFJLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxFQUFFLENBQUM7WUFDOUIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLEVBQUUsY0FBYyxDQUFDLENBQUM7UUFDL0UsQ0FBQzthQUFNLENBQUM7WUFDTixJQUFJLENBQUMsd0JBQXdCLEVBQUUsQ0FBQztRQUNsQyxDQUFDO0lBQ0gsQ0FBQztJQUVPLHdCQUF3QjtRQUM5Qiw0REFBNEQ7UUFDNUQsSUFBSSxDQUFDLElBQUksQ0FBQyx1QkFBdUIsRUFBRSxDQUFDO1lBQ2xDLElBQUksQ0FBQyx1QkFBdUIsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUNwRSxJQUFJLENBQUMsdUJBQXVCLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1FBQ3BFLENBQUM7UUFFRCxJQUFJLENBQUMsdUJBQXVCLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUM7UUFDNUQsSUFBSSxDQUFDLGFBQWEsRUFBRSxXQUFXLENBQUMsSUFBSSxDQUFDLHVCQUF1QixDQUFDLENBQUM7SUFDaEUsQ0FBQztJQUVPLHdCQUF3QjtRQUM5QixJQUFJLENBQUMsdUJBQXVCLEVBQUUsTUFBTSxFQUFFLENBQUM7UUFDdkMsSUFBSSxDQUFDLHVCQUF1QixHQUFHLFNBQVMsQ0FBQztJQUMzQyxDQUFDO0lBRUQsaUVBQWlFO0lBQ3pELFNBQVMsQ0FBQyxZQUEwQjtRQUMxQyxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUM7UUFDM0QsU0FBUyxDQUFDLE1BQU0sQ0FBQyxhQUFhLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO1FBQzdDLElBQUksWUFBWSxFQUFFLENBQUM7WUFDakIsU0FBUyxDQUFDLEdBQUcsQ0FBQyxhQUFhLFlBQVksRUFBRSxDQUFDLENBQUM7UUFDN0MsQ0FBQztJQUNILENBQUM7SUFFRCxxRkFBcUY7SUFDN0Usb0JBQW9CO1FBQzFCLDZFQUE2RTtRQUM3RSxzREFBc0Q7UUFDdEQsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUMsZ0JBQWdCLENBQzVELGFBQWEsbUJBQW1CLEVBQUUsQ0FDbkMsQ0FBQztRQUNGLEtBQUssTUFBTSxZQUFZLElBQUksS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO1lBQzlDLElBQUksWUFBWSxLQUFLLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztnQkFDeEMsWUFBWSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ3hCLENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQztxSEE5UlUsUUFBUSx3SEE4RUcscUJBQXFCO3lHQTlFaEMsUUFBUSxtSUFtQjBCLGdCQUFnQiw4Q0FHZixnQkFBZ0IsMk1BZ0NsQixnQkFBZ0I7O2tHQXREakQsUUFBUTtrQkFqQnBCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLFlBQVk7b0JBQ3RCLElBQUksRUFBRTt3QkFDSixPQUFPLEVBQUUsV0FBVzt3QkFDcEIsMkJBQTJCLEVBQUUsU0FBUzt3QkFDdEMseUJBQXlCLEVBQUUsV0FBVzt3QkFDdEMseUJBQXlCLEVBQUUsWUFBWTt3QkFDdkMsMEJBQTBCLEVBQUUsWUFBWTt3QkFDeEMseUJBQXlCLEVBQUUsV0FBVzt3QkFDdEMseUJBQXlCLEVBQUUsa0JBQWtCO3dCQUM3QywwQkFBMEIsRUFBRSxtQkFBbUI7d0JBQy9DLHlCQUF5QixFQUFFLGtCQUFrQjt3QkFDN0MsMEJBQTBCLEVBQUUsb0JBQW9CO3dCQUNoRCw0QkFBNEIsRUFBRSxVQUFVO3FCQUN6QztvQkFDRCxVQUFVLEVBQUUsSUFBSTtpQkFDakI7OzBCQStFSSxRQUFROzswQkFBSSxNQUFNOzJCQUFDLHFCQUFxQjt5Q0FyRXZDLEtBQUs7c0JBRFIsS0FBSzt1QkFBQyxlQUFlO2dCQVcwQyxPQUFPO3NCQUF0RSxLQUFLO3VCQUFDLEVBQUMsS0FBSyxFQUFFLGlCQUFpQixFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBQztnQkFHRyxRQUFRO3NCQUF4RSxLQUFLO3VCQUFDLEVBQUMsS0FBSyxFQUFFLGtCQUFrQixFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBQztnQkFNcEMsUUFBUTtzQkFBbEMsS0FBSzt1QkFBQyxrQkFBa0I7Z0JBSXJCLE9BQU87c0JBRFYsS0FBSzt1QkFBQyxVQUFVO2dCQVdiLFdBQVc7c0JBRGQsS0FBSzt1QkFBQyxxQkFBcUI7Z0JBVUwsSUFBSTtzQkFBMUIsS0FBSzt1QkFBQyxjQUFjO2dCQUcwQyxNQUFNO3NCQUFwRSxLQUFLO3VCQUFDLEVBQUMsS0FBSyxFQUFFLGdCQUFnQixFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuXG5pbXBvcnQge0FyaWFEZXNjcmliZXIsIEludGVyYWN0aXZpdHlDaGVja2VyfSBmcm9tICdAYW5ndWxhci9jZGsvYTExeSc7XG5pbXBvcnQge0RPQ1VNRU5UfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgQXBwbGljYXRpb25SZWYsXG4gIGJvb2xlYW5BdHRyaWJ1dGUsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIGNyZWF0ZUNvbXBvbmVudCxcbiAgRGlyZWN0aXZlLFxuICBFbGVtZW50UmVmLFxuICBFbnZpcm9ubWVudEluamVjdG9yLFxuICBpbmplY3QsXG4gIEluamVjdCxcbiAgSW5wdXQsXG4gIE5nWm9uZSxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG4gIE9wdGlvbmFsLFxuICBSZW5kZXJlcjIsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxuICBBTklNQVRJT05fTU9EVUxFX1RZUEUsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtUaGVtZVBhbGV0dGV9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NvcmUnO1xuXG5sZXQgbmV4dElkID0gMDtcblxuLyoqIEFsbG93ZWQgcG9zaXRpb24gb3B0aW9ucyBmb3IgbWF0QmFkZ2VQb3NpdGlvbiAqL1xuZXhwb3J0IHR5cGUgTWF0QmFkZ2VQb3NpdGlvbiA9XG4gIHwgJ2Fib3ZlIGFmdGVyJ1xuICB8ICdhYm92ZSBiZWZvcmUnXG4gIHwgJ2JlbG93IGJlZm9yZSdcbiAgfCAnYmVsb3cgYWZ0ZXInXG4gIHwgJ2JlZm9yZSdcbiAgfCAnYWZ0ZXInXG4gIHwgJ2Fib3ZlJ1xuICB8ICdiZWxvdyc7XG5cbi8qKiBBbGxvd2VkIHNpemUgb3B0aW9ucyBmb3IgbWF0QmFkZ2VTaXplICovXG5leHBvcnQgdHlwZSBNYXRCYWRnZVNpemUgPSAnc21hbGwnIHwgJ21lZGl1bScgfCAnbGFyZ2UnO1xuXG5jb25zdCBCQURHRV9DT05URU5UX0NMQVNTID0gJ21hdC1iYWRnZS1jb250ZW50JztcblxuLyoqIEtlZXBzIHRyYWNrIG9mIHRoZSBhcHBzIGN1cnJlbnRseSBjb250YWluaW5nIGJhZGdlcy4gKi9cbmNvbnN0IGJhZGdlQXBwcyA9IG5ldyBTZXQ8QXBwbGljYXRpb25SZWY+KCk7XG5cbi8qKlxuICogQ29tcG9uZW50IHVzZWQgdG8gbG9hZCB0aGUgc3RydWN0dXJhbCBzdHlsZXMgb2YgdGhlIGJhZGdlLlxuICogQGRvY3MtcHJpdmF0ZVxuICovXG5AQ29tcG9uZW50KHtcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgc3R5bGVVcmw6ICdiYWRnZS5jc3MnLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICB0ZW1wbGF0ZTogJycsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBfTWF0QmFkZ2VTdHlsZUxvYWRlciB7fVxuXG4vKiogRGlyZWN0aXZlIHRvIGRpc3BsYXkgYSB0ZXh0IGJhZGdlLiAqL1xuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW21hdEJhZGdlXScsXG4gIGhvc3Q6IHtcbiAgICAnY2xhc3MnOiAnbWF0LWJhZGdlJyxcbiAgICAnW2NsYXNzLm1hdC1iYWRnZS1vdmVybGFwXSc6ICdvdmVybGFwJyxcbiAgICAnW2NsYXNzLm1hdC1iYWRnZS1hYm92ZV0nOiAnaXNBYm92ZSgpJyxcbiAgICAnW2NsYXNzLm1hdC1iYWRnZS1iZWxvd10nOiAnIWlzQWJvdmUoKScsXG4gICAgJ1tjbGFzcy5tYXQtYmFkZ2UtYmVmb3JlXSc6ICchaXNBZnRlcigpJyxcbiAgICAnW2NsYXNzLm1hdC1iYWRnZS1hZnRlcl0nOiAnaXNBZnRlcigpJyxcbiAgICAnW2NsYXNzLm1hdC1iYWRnZS1zbWFsbF0nOiAnc2l6ZSA9PT0gXCJzbWFsbFwiJyxcbiAgICAnW2NsYXNzLm1hdC1iYWRnZS1tZWRpdW1dJzogJ3NpemUgPT09IFwibWVkaXVtXCInLFxuICAgICdbY2xhc3MubWF0LWJhZGdlLWxhcmdlXSc6ICdzaXplID09PSBcImxhcmdlXCInLFxuICAgICdbY2xhc3MubWF0LWJhZGdlLWhpZGRlbl0nOiAnaGlkZGVuIHx8ICFjb250ZW50JyxcbiAgICAnW2NsYXNzLm1hdC1iYWRnZS1kaXNhYmxlZF0nOiAnZGlzYWJsZWQnLFxuICB9LFxuICBzdGFuZGFsb25lOiB0cnVlLFxufSlcbmV4cG9ydCBjbGFzcyBNYXRCYWRnZSBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgLyoqXG4gICAqIFRoZW1lIGNvbG9yIG9mIHRoZSBiYWRnZS4gVGhpcyBBUEkgaXMgc3VwcG9ydGVkIGluIE0yIHRoZW1lcyBvbmx5LCBpdFxuICAgKiBoYXMgbm8gZWZmZWN0IGluIE0zIHRoZW1lcy5cbiAgICpcbiAgICogRm9yIGluZm9ybWF0aW9uIG9uIGFwcGx5aW5nIGNvbG9yIHZhcmlhbnRzIGluIE0zLCBzZWVcbiAgICogaHR0cHM6Ly9tYXRlcmlhbC5hbmd1bGFyLmlvL2d1aWRlL3RoZW1pbmcjdXNpbmctY29tcG9uZW50LWNvbG9yLXZhcmlhbnRzLlxuICAgKi9cbiAgQElucHV0KCdtYXRCYWRnZUNvbG9yJylcbiAgZ2V0IGNvbG9yKCk6IFRoZW1lUGFsZXR0ZSB7XG4gICAgcmV0dXJuIHRoaXMuX2NvbG9yO1xuICB9XG4gIHNldCBjb2xvcih2YWx1ZTogVGhlbWVQYWxldHRlKSB7XG4gICAgdGhpcy5fc2V0Q29sb3IodmFsdWUpO1xuICAgIHRoaXMuX2NvbG9yID0gdmFsdWU7XG4gIH1cbiAgcHJpdmF0ZSBfY29sb3I6IFRoZW1lUGFsZXR0ZSA9ICdwcmltYXJ5JztcblxuICAvKiogV2hldGhlciB0aGUgYmFkZ2Ugc2hvdWxkIG92ZXJsYXAgaXRzIGNvbnRlbnRzIG9yIG5vdCAqL1xuICBASW5wdXQoe2FsaWFzOiAnbWF0QmFkZ2VPdmVybGFwJywgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlfSkgb3ZlcmxhcDogYm9vbGVhbiA9IHRydWU7XG5cbiAgLyoqIFdoZXRoZXIgdGhlIGJhZGdlIGlzIGRpc2FibGVkLiAqL1xuICBASW5wdXQoe2FsaWFzOiAnbWF0QmFkZ2VEaXNhYmxlZCcsIHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZX0pIGRpc2FibGVkOiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBQb3NpdGlvbiB0aGUgYmFkZ2Ugc2hvdWxkIHJlc2lkZS5cbiAgICogQWNjZXB0cyBhbnkgY29tYmluYXRpb24gb2YgJ2Fib3ZlJ3wnYmVsb3cnIGFuZCAnYmVmb3JlJ3wnYWZ0ZXInXG4gICAqL1xuICBASW5wdXQoJ21hdEJhZGdlUG9zaXRpb24nKSBwb3NpdGlvbjogTWF0QmFkZ2VQb3NpdGlvbiA9ICdhYm92ZSBhZnRlcic7XG5cbiAgLyoqIFRoZSBjb250ZW50IGZvciB0aGUgYmFkZ2UgKi9cbiAgQElucHV0KCdtYXRCYWRnZScpXG4gIGdldCBjb250ZW50KCk6IHN0cmluZyB8IG51bWJlciB8IHVuZGVmaW5lZCB8IG51bGwge1xuICAgIHJldHVybiB0aGlzLl9jb250ZW50O1xuICB9XG4gIHNldCBjb250ZW50KG5ld0NvbnRlbnQ6IHN0cmluZyB8IG51bWJlciB8IHVuZGVmaW5lZCB8IG51bGwpIHtcbiAgICB0aGlzLl91cGRhdGVSZW5kZXJlZENvbnRlbnQobmV3Q29udGVudCk7XG4gIH1cbiAgcHJpdmF0ZSBfY29udGVudDogc3RyaW5nIHwgbnVtYmVyIHwgdW5kZWZpbmVkIHwgbnVsbDtcblxuICAvKiogTWVzc2FnZSB1c2VkIHRvIGRlc2NyaWJlIHRoZSBkZWNvcmF0ZWQgZWxlbWVudCB2aWEgYXJpYS1kZXNjcmliZWRieSAqL1xuICBASW5wdXQoJ21hdEJhZGdlRGVzY3JpcHRpb24nKVxuICBnZXQgZGVzY3JpcHRpb24oKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5fZGVzY3JpcHRpb247XG4gIH1cbiAgc2V0IGRlc2NyaXB0aW9uKG5ld0Rlc2NyaXB0aW9uOiBzdHJpbmcpIHtcbiAgICB0aGlzLl91cGRhdGVEZXNjcmlwdGlvbihuZXdEZXNjcmlwdGlvbik7XG4gIH1cbiAgcHJpdmF0ZSBfZGVzY3JpcHRpb246IHN0cmluZztcblxuICAvKiogU2l6ZSBvZiB0aGUgYmFkZ2UuIENhbiBiZSAnc21hbGwnLCAnbWVkaXVtJywgb3IgJ2xhcmdlJy4gKi9cbiAgQElucHV0KCdtYXRCYWRnZVNpemUnKSBzaXplOiBNYXRCYWRnZVNpemUgPSAnbWVkaXVtJztcblxuICAvKiogV2hldGhlciB0aGUgYmFkZ2UgaXMgaGlkZGVuLiAqL1xuICBASW5wdXQoe2FsaWFzOiAnbWF0QmFkZ2VIaWRkZW4nLCB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGV9KSBoaWRkZW46IGJvb2xlYW47XG5cbiAgLyoqIFVuaXF1ZSBpZCBmb3IgdGhlIGJhZGdlICovXG4gIF9pZDogbnVtYmVyID0gbmV4dElkKys7XG5cbiAgLyoqIFZpc2libGUgYmFkZ2UgZWxlbWVudC4gKi9cbiAgcHJpdmF0ZSBfYmFkZ2VFbGVtZW50OiBIVE1MRWxlbWVudCB8IHVuZGVmaW5lZDtcblxuICAvKiogSW5saW5lIGJhZGdlIGRlc2NyaXB0aW9uLiBVc2VkIHdoZW4gdGhlIGJhZGdlIGlzIGFwcGxpZWQgdG8gbm9uLWludGVyYWN0aXZlIGhvc3QgZWxlbWVudHMuICovXG4gIHByaXZhdGUgX2lubGluZUJhZGdlRGVzY3JpcHRpb246IEhUTUxFbGVtZW50IHwgdW5kZWZpbmVkO1xuXG4gIC8qKiBXaGV0aGVyIHRoZSBPbkluaXQgbGlmZWN5Y2xlIGhvb2sgaGFzIHJ1biB5ZXQgKi9cbiAgcHJpdmF0ZSBfaXNJbml0aWFsaXplZCA9IGZhbHNlO1xuXG4gIC8qKiBJbnRlcmFjdGl2aXR5Q2hlY2tlciB0byBkZXRlcm1pbmUgaWYgdGhlIGJhZGdlIGhvc3QgaXMgZm9jdXNhYmxlLiAqL1xuICBwcml2YXRlIF9pbnRlcmFjdGl2aXR5Q2hlY2tlciA9IGluamVjdChJbnRlcmFjdGl2aXR5Q2hlY2tlcik7XG5cbiAgcHJpdmF0ZSBfZG9jdW1lbnQgPSBpbmplY3QoRE9DVU1FTlQpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgX25nWm9uZTogTmdab25lLFxuICAgIHByaXZhdGUgX2VsZW1lbnRSZWY6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+LFxuICAgIHByaXZhdGUgX2FyaWFEZXNjcmliZXI6IEFyaWFEZXNjcmliZXIsXG4gICAgcHJpdmF0ZSBfcmVuZGVyZXI6IFJlbmRlcmVyMixcbiAgICBAT3B0aW9uYWwoKSBASW5qZWN0KEFOSU1BVElPTl9NT0RVTEVfVFlQRSkgcHJpdmF0ZSBfYW5pbWF0aW9uTW9kZT86IHN0cmluZyxcbiAgKSB7XG4gICAgY29uc3QgYXBwUmVmID0gaW5qZWN0KEFwcGxpY2F0aW9uUmVmKTtcblxuICAgIGlmICghYmFkZ2VBcHBzLmhhcyhhcHBSZWYpKSB7XG4gICAgICBiYWRnZUFwcHMuYWRkKGFwcFJlZik7XG5cbiAgICAgIGNvbnN0IGNvbXBvbmVudFJlZiA9IGNyZWF0ZUNvbXBvbmVudChfTWF0QmFkZ2VTdHlsZUxvYWRlciwge1xuICAgICAgICBlbnZpcm9ubWVudEluamVjdG9yOiBpbmplY3QoRW52aXJvbm1lbnRJbmplY3RvciksXG4gICAgICB9KTtcblxuICAgICAgYXBwUmVmLm9uRGVzdHJveSgoKSA9PiB7XG4gICAgICAgIGJhZGdlQXBwcy5kZWxldGUoYXBwUmVmKTtcbiAgICAgICAgaWYgKGJhZGdlQXBwcy5zaXplID09PSAwKSB7XG4gICAgICAgICAgY29tcG9uZW50UmVmLmRlc3Ryb3koKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgaWYgKHR5cGVvZiBuZ0Rldk1vZGUgPT09ICd1bmRlZmluZWQnIHx8IG5nRGV2TW9kZSkge1xuICAgICAgY29uc3QgbmF0aXZlRWxlbWVudCA9IF9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7XG4gICAgICBpZiAobmF0aXZlRWxlbWVudC5ub2RlVHlwZSAhPT0gbmF0aXZlRWxlbWVudC5FTEVNRU5UX05PREUpIHtcbiAgICAgICAgdGhyb3cgRXJyb3IoJ21hdEJhZGdlIG11c3QgYmUgYXR0YWNoZWQgdG8gYW4gZWxlbWVudCBub2RlLicpO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBtYXRJY29uVGFnTmFtZTogc3RyaW5nID0gJ21hdC1pY29uJztcblxuICAgICAgLy8gSGVhZHMtdXAgZm9yIGRldmVsb3BlcnMgdG8gYXZvaWQgcHV0dGluZyBtYXRCYWRnZSBvbiA8bWF0LWljb24+XG4gICAgICAvLyBhcyBpdCBpcyBhcmlhLWhpZGRlbiBieSBkZWZhdWx0IGRvY3MgbWVudGlvbiB0aGlzIGF0OlxuICAgICAgLy8gaHR0cHM6Ly9tYXRlcmlhbC5hbmd1bGFyLmlvL2NvbXBvbmVudHMvYmFkZ2Uvb3ZlcnZpZXcjYWNjZXNzaWJpbGl0eVxuICAgICAgaWYgKFxuICAgICAgICBuYXRpdmVFbGVtZW50LnRhZ05hbWUudG9Mb3dlckNhc2UoKSA9PT0gbWF0SWNvblRhZ05hbWUgJiZcbiAgICAgICAgbmF0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoJ2FyaWEtaGlkZGVuJykgPT09ICd0cnVlJ1xuICAgICAgKSB7XG4gICAgICAgIGNvbnNvbGUud2FybihcbiAgICAgICAgICBgRGV0ZWN0ZWQgYSBtYXRCYWRnZSBvbiBhbiBcImFyaWEtaGlkZGVuXCIgXCI8bWF0LWljb24+XCIuIGAgK1xuICAgICAgICAgICAgYENvbnNpZGVyIHNldHRpbmcgYXJpYS1oaWRkZW49XCJmYWxzZVwiIGluIG9yZGVyIHRvIHN1cmZhY2UgdGhlIGluZm9ybWF0aW9uIGFzc2lzdGl2ZSB0ZWNobm9sb2d5LmAgK1xuICAgICAgICAgICAgYFxcbiR7bmF0aXZlRWxlbWVudC5vdXRlckhUTUx9YCxcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvKiogV2hldGhlciB0aGUgYmFkZ2UgaXMgYWJvdmUgdGhlIGhvc3Qgb3Igbm90ICovXG4gIGlzQWJvdmUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMucG9zaXRpb24uaW5kZXhPZignYmVsb3cnKSA9PT0gLTE7XG4gIH1cblxuICAvKiogV2hldGhlciB0aGUgYmFkZ2UgaXMgYWZ0ZXIgdGhlIGhvc3Qgb3Igbm90ICovXG4gIGlzQWZ0ZXIoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMucG9zaXRpb24uaW5kZXhPZignYmVmb3JlJykgPT09IC0xO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIGVsZW1lbnQgaW50byB3aGljaCB0aGUgYmFkZ2UncyBjb250ZW50IGlzIGJlaW5nIHJlbmRlcmVkLiBVbmRlZmluZWQgaWYgdGhlIGVsZW1lbnRcbiAgICogaGFzbid0IGJlZW4gY3JlYXRlZCAoZS5nLiBpZiB0aGUgYmFkZ2UgZG9lc24ndCBoYXZlIGNvbnRlbnQpLlxuICAgKi9cbiAgZ2V0QmFkZ2VFbGVtZW50KCk6IEhUTUxFbGVtZW50IHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5fYmFkZ2VFbGVtZW50O1xuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgLy8gV2UgbWF5IGhhdmUgc2VydmVyLXNpZGUgcmVuZGVyZWQgYmFkZ2UgdGhhdCB3ZSBuZWVkIHRvIGNsZWFyLlxuICAgIC8vIFdlIG5lZWQgdG8gZG8gdGhpcyBpbiBuZ09uSW5pdCBiZWNhdXNlIHRoZSBmdWxsIGNvbnRlbnQgb2YgdGhlIGNvbXBvbmVudFxuICAgIC8vIG9uIHdoaWNoIHRoZSBiYWRnZSBpcyBhdHRhY2hlZCB3b24ndCBuZWNlc3NhcmlseSBiZSBpbiB0aGUgRE9NIHVudGlsIHRoaXMgcG9pbnQuXG4gICAgdGhpcy5fY2xlYXJFeGlzdGluZ0JhZGdlcygpO1xuXG4gICAgaWYgKHRoaXMuY29udGVudCAmJiAhdGhpcy5fYmFkZ2VFbGVtZW50KSB7XG4gICAgICB0aGlzLl9iYWRnZUVsZW1lbnQgPSB0aGlzLl9jcmVhdGVCYWRnZUVsZW1lbnQoKTtcbiAgICAgIHRoaXMuX3VwZGF0ZVJlbmRlcmVkQ29udGVudCh0aGlzLmNvbnRlbnQpO1xuICAgIH1cblxuICAgIHRoaXMuX2lzSW5pdGlhbGl6ZWQgPSB0cnVlO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgLy8gVmlld0VuZ2luZSBvbmx5OiB3aGVuIGNyZWF0aW5nIGEgYmFkZ2UgdGhyb3VnaCB0aGUgUmVuZGVyZXIsIEFuZ3VsYXIgcmVtZW1iZXJzIGl0cyBpbmRleC5cbiAgICAvLyBXZSBoYXZlIHRvIGRlc3Ryb3kgaXQgb3Vyc2VsdmVzLCBvdGhlcndpc2UgaXQnbGwgYmUgcmV0YWluZWQgaW4gbWVtb3J5LlxuICAgIGlmICh0aGlzLl9yZW5kZXJlci5kZXN0cm95Tm9kZSkge1xuICAgICAgdGhpcy5fcmVuZGVyZXIuZGVzdHJveU5vZGUodGhpcy5fYmFkZ2VFbGVtZW50KTtcbiAgICAgIHRoaXMuX2lubGluZUJhZGdlRGVzY3JpcHRpb24/LnJlbW92ZSgpO1xuICAgIH1cblxuICAgIHRoaXMuX2FyaWFEZXNjcmliZXIucmVtb3ZlRGVzY3JpcHRpb24odGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCB0aGlzLmRlc2NyaXB0aW9uKTtcbiAgfVxuXG4gIC8qKiBHZXRzIHdoZXRoZXIgdGhlIGJhZGdlJ3MgaG9zdCBlbGVtZW50IGlzIGludGVyYWN0aXZlLiAqL1xuICBwcml2YXRlIF9pc0hvc3RJbnRlcmFjdGl2ZSgpOiBib29sZWFuIHtcbiAgICAvLyBJZ25vcmUgdmlzaWJpbGl0eSBzaW5jZSBpdCByZXF1aXJlcyBhbiBleHBlbnNpdmUgc3R5bGUgY2FsdWNsYXRpb24uXG4gICAgcmV0dXJuIHRoaXMuX2ludGVyYWN0aXZpdHlDaGVja2VyLmlzRm9jdXNhYmxlKHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwge1xuICAgICAgaWdub3JlVmlzaWJpbGl0eTogdHJ1ZSxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKiBDcmVhdGVzIHRoZSBiYWRnZSBlbGVtZW50ICovXG4gIHByaXZhdGUgX2NyZWF0ZUJhZGdlRWxlbWVudCgpOiBIVE1MRWxlbWVudCB7XG4gICAgY29uc3QgYmFkZ2VFbGVtZW50ID0gdGhpcy5fcmVuZGVyZXIuY3JlYXRlRWxlbWVudCgnc3BhbicpO1xuICAgIGNvbnN0IGFjdGl2ZUNsYXNzID0gJ21hdC1iYWRnZS1hY3RpdmUnO1xuXG4gICAgYmFkZ2VFbGVtZW50LnNldEF0dHJpYnV0ZSgnaWQnLCBgbWF0LWJhZGdlLWNvbnRlbnQtJHt0aGlzLl9pZH1gKTtcblxuICAgIC8vIFRoZSBiYWRnZSBpcyBhcmlhLWhpZGRlbiBiZWNhdXNlIHdlIGRvbid0IHdhbnQgaXQgdG8gYXBwZWFyIGluIHRoZSBwYWdlJ3MgbmF2aWdhdGlvblxuICAgIC8vIGZsb3cuIEluc3RlYWQsIHdlIHVzZSB0aGUgYmFkZ2UgdG8gZGVzY3JpYmUgdGhlIGRlY29yYXRlZCBlbGVtZW50IHdpdGggYXJpYS1kZXNjcmliZWRieS5cbiAgICBiYWRnZUVsZW1lbnQuc2V0QXR0cmlidXRlKCdhcmlhLWhpZGRlbicsICd0cnVlJyk7XG4gICAgYmFkZ2VFbGVtZW50LmNsYXNzTGlzdC5hZGQoQkFER0VfQ09OVEVOVF9DTEFTUyk7XG5cbiAgICBpZiAodGhpcy5fYW5pbWF0aW9uTW9kZSA9PT0gJ05vb3BBbmltYXRpb25zJykge1xuICAgICAgYmFkZ2VFbGVtZW50LmNsYXNzTGlzdC5hZGQoJ19tYXQtYW5pbWF0aW9uLW5vb3BhYmxlJyk7XG4gICAgfVxuXG4gICAgdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmFwcGVuZENoaWxkKGJhZGdlRWxlbWVudCk7XG5cbiAgICAvLyBhbmltYXRlIGluIGFmdGVyIGluc2VydGlvblxuICAgIGlmICh0eXBlb2YgcmVxdWVzdEFuaW1hdGlvbkZyYW1lID09PSAnZnVuY3Rpb24nICYmIHRoaXMuX2FuaW1hdGlvbk1vZGUgIT09ICdOb29wQW5pbWF0aW9ucycpIHtcbiAgICAgIHRoaXMuX25nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7XG4gICAgICAgICAgYmFkZ2VFbGVtZW50LmNsYXNzTGlzdC5hZGQoYWN0aXZlQ2xhc3MpO1xuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICBiYWRnZUVsZW1lbnQuY2xhc3NMaXN0LmFkZChhY3RpdmVDbGFzcyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGJhZGdlRWxlbWVudDtcbiAgfVxuXG4gIC8qKiBVcGRhdGUgdGhlIHRleHQgY29udGVudCBvZiB0aGUgYmFkZ2UgZWxlbWVudCBpbiB0aGUgRE9NLCBjcmVhdGluZyB0aGUgZWxlbWVudCBpZiBuZWNlc3NhcnkuICovXG4gIHByaXZhdGUgX3VwZGF0ZVJlbmRlcmVkQ29udGVudChuZXdDb250ZW50OiBzdHJpbmcgfCBudW1iZXIgfCB1bmRlZmluZWQgfCBudWxsKTogdm9pZCB7XG4gICAgY29uc3QgbmV3Q29udGVudE5vcm1hbGl6ZWQ6IHN0cmluZyA9IGAke25ld0NvbnRlbnQgPz8gJyd9YC50cmltKCk7XG5cbiAgICAvLyBEb24ndCBjcmVhdGUgdGhlIGJhZGdlIGVsZW1lbnQgaWYgdGhlIGRpcmVjdGl2ZSBpc24ndCBpbml0aWFsaXplZCBiZWNhdXNlIHdlIHdhbnQgdG9cbiAgICAvLyBhcHBlbmQgdGhlIGJhZGdlIGVsZW1lbnQgdG8gdGhlICplbmQqIG9mIHRoZSBob3N0IGVsZW1lbnQncyBjb250ZW50IGZvciBiYWNrd2FyZHNcbiAgICAvLyBjb21wYXRpYmlsaXR5LlxuICAgIGlmICh0aGlzLl9pc0luaXRpYWxpemVkICYmIG5ld0NvbnRlbnROb3JtYWxpemVkICYmICF0aGlzLl9iYWRnZUVsZW1lbnQpIHtcbiAgICAgIHRoaXMuX2JhZGdlRWxlbWVudCA9IHRoaXMuX2NyZWF0ZUJhZGdlRWxlbWVudCgpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLl9iYWRnZUVsZW1lbnQpIHtcbiAgICAgIHRoaXMuX2JhZGdlRWxlbWVudC50ZXh0Q29udGVudCA9IG5ld0NvbnRlbnROb3JtYWxpemVkO1xuICAgIH1cblxuICAgIHRoaXMuX2NvbnRlbnQgPSBuZXdDb250ZW50Tm9ybWFsaXplZDtcbiAgfVxuXG4gIC8qKiBVcGRhdGVzIHRoZSBob3N0IGVsZW1lbnQncyBhcmlhIGRlc2NyaXB0aW9uIHZpYSBBcmlhRGVzY3JpYmVyLiAqL1xuICBwcml2YXRlIF91cGRhdGVEZXNjcmlwdGlvbihuZXdEZXNjcmlwdGlvbjogc3RyaW5nKTogdm9pZCB7XG4gICAgLy8gQWx3YXlzIHN0YXJ0IGJ5IHJlbW92aW5nIHRoZSBhcmlhLWRlc2NyaWJlZGJ5OyB3ZSB3aWxsIGFkZCBhIG5ldyBvbmUgaWYgbmVjZXNzYXJ5LlxuICAgIHRoaXMuX2FyaWFEZXNjcmliZXIucmVtb3ZlRGVzY3JpcHRpb24odGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCB0aGlzLmRlc2NyaXB0aW9uKTtcblxuICAgIC8vIE5PVEU6IFdlIG9ubHkgY2hlY2sgd2hldGhlciB0aGUgaG9zdCBpcyBpbnRlcmFjdGl2ZSBoZXJlLCB3aGljaCBoYXBwZW5zIGR1cmluZ1xuICAgIC8vIHdoZW4gdGhlbiBiYWRnZSBjb250ZW50IGNoYW5nZXMuIEl0IGlzIHBvc3NpYmxlIHRoYXQgdGhlIGhvc3QgY2hhbmdlc1xuICAgIC8vIGludGVyYWN0aXZpdHkgc3RhdHVzIHNlcGFyYXRlIGZyb20gb25lIG9mIHRoZXNlLiBIb3dldmVyLCB3YXRjaGluZyB0aGUgaW50ZXJhY3Rpdml0eVxuICAgIC8vIHN0YXR1cyBvZiB0aGUgaG9zdCB3b3VsZCByZXF1aXJlIGEgYE11dGF0aW9uT2JzZXJ2ZXJgLCB3aGljaCBpcyBsaWtlbHkgbW9yZSBjb2RlICsgb3ZlcmhlYWRcbiAgICAvLyB0aGFuIGl0J3Mgd29ydGg7IGZyb20gdXNhZ2VzIGluc2lkZSBHb29nbGUsIHdlIHNlZSB0aGF0IHRoZSB2YXRzIG1ham9yaXR5IG9mIGJhZGdlcyBlaXRoZXJcbiAgICAvLyBuZXZlciBjaGFuZ2UgaW50ZXJhY3Rpdml0eSwgb3IgYWxzbyBzZXQgYG1hdEJhZGdlSGlkZGVuYCBiYXNlZCBvbiB0aGUgc2FtZSBjb25kaXRpb24uXG5cbiAgICBpZiAoIW5ld0Rlc2NyaXB0aW9uIHx8IHRoaXMuX2lzSG9zdEludGVyYWN0aXZlKCkpIHtcbiAgICAgIHRoaXMuX3JlbW92ZUlubGluZURlc2NyaXB0aW9uKCk7XG4gICAgfVxuXG4gICAgdGhpcy5fZGVzY3JpcHRpb24gPSBuZXdEZXNjcmlwdGlvbjtcblxuICAgIC8vIFdlIGRvbid0IGFkZCBgYXJpYS1kZXNjcmliZWRieWAgZm9yIG5vbi1pbnRlcmFjdGl2ZSBob3N0cyBlbGVtZW50cyBiZWNhdXNlIHdlXG4gICAgLy8gaW5zdGVhZCBpbnNlcnQgdGhlIGRlc2NyaXB0aW9uIGlubGluZS5cbiAgICBpZiAodGhpcy5faXNIb3N0SW50ZXJhY3RpdmUoKSkge1xuICAgICAgdGhpcy5fYXJpYURlc2NyaWJlci5kZXNjcmliZSh0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsIG5ld0Rlc2NyaXB0aW9uKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5fdXBkYXRlSW5saW5lRGVzY3JpcHRpb24oKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF91cGRhdGVJbmxpbmVEZXNjcmlwdGlvbigpIHtcbiAgICAvLyBDcmVhdGUgdGhlIGlubGluZSBkZXNjcmlwdGlvbiBlbGVtZW50IGlmIGl0IGRvZXNuJ3QgZXhpc3RcbiAgICBpZiAoIXRoaXMuX2lubGluZUJhZGdlRGVzY3JpcHRpb24pIHtcbiAgICAgIHRoaXMuX2lubGluZUJhZGdlRGVzY3JpcHRpb24gPSB0aGlzLl9kb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzcGFuJyk7XG4gICAgICB0aGlzLl9pbmxpbmVCYWRnZURlc2NyaXB0aW9uLmNsYXNzTGlzdC5hZGQoJ2Nkay12aXN1YWxseS1oaWRkZW4nKTtcbiAgICB9XG5cbiAgICB0aGlzLl9pbmxpbmVCYWRnZURlc2NyaXB0aW9uLnRleHRDb250ZW50ID0gdGhpcy5kZXNjcmlwdGlvbjtcbiAgICB0aGlzLl9iYWRnZUVsZW1lbnQ/LmFwcGVuZENoaWxkKHRoaXMuX2lubGluZUJhZGdlRGVzY3JpcHRpb24pO1xuICB9XG5cbiAgcHJpdmF0ZSBfcmVtb3ZlSW5saW5lRGVzY3JpcHRpb24oKSB7XG4gICAgdGhpcy5faW5saW5lQmFkZ2VEZXNjcmlwdGlvbj8ucmVtb3ZlKCk7XG4gICAgdGhpcy5faW5saW5lQmFkZ2VEZXNjcmlwdGlvbiA9IHVuZGVmaW5lZDtcbiAgfVxuXG4gIC8qKiBBZGRzIGNzcyB0aGVtZSBjbGFzcyBnaXZlbiB0aGUgY29sb3IgdG8gdGhlIGNvbXBvbmVudCBob3N0ICovXG4gIHByaXZhdGUgX3NldENvbG9yKGNvbG9yUGFsZXR0ZTogVGhlbWVQYWxldHRlKSB7XG4gICAgY29uc3QgY2xhc3NMaXN0ID0gdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmNsYXNzTGlzdDtcbiAgICBjbGFzc0xpc3QucmVtb3ZlKGBtYXQtYmFkZ2UtJHt0aGlzLl9jb2xvcn1gKTtcbiAgICBpZiAoY29sb3JQYWxldHRlKSB7XG4gICAgICBjbGFzc0xpc3QuYWRkKGBtYXQtYmFkZ2UtJHtjb2xvclBhbGV0dGV9YCk7XG4gICAgfVxuICB9XG5cbiAgLyoqIENsZWFycyBhbnkgZXhpc3RpbmcgYmFkZ2VzIHRoYXQgbWlnaHQgYmUgbGVmdCBvdmVyIGZyb20gc2VydmVyLXNpZGUgcmVuZGVyaW5nLiAqL1xuICBwcml2YXRlIF9jbGVhckV4aXN0aW5nQmFkZ2VzKCkge1xuICAgIC8vIE9ubHkgY2hlY2sgZGlyZWN0IGNoaWxkcmVuIG9mIHRoaXMgaG9zdCBlbGVtZW50IGluIG9yZGVyIHRvIGF2b2lkIGRlbGV0aW5nXG4gICAgLy8gYW55IGJhZGdlcyB0aGF0IG1pZ2h0IGV4aXN0IGluIGRlc2NlbmRhbnQgZWxlbWVudHMuXG4gICAgY29uc3QgYmFkZ2VzID0gdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoXG4gICAgICBgOnNjb3BlID4gLiR7QkFER0VfQ09OVEVOVF9DTEFTU31gLFxuICAgICk7XG4gICAgZm9yIChjb25zdCBiYWRnZUVsZW1lbnQgb2YgQXJyYXkuZnJvbShiYWRnZXMpKSB7XG4gICAgICBpZiAoYmFkZ2VFbGVtZW50ICE9PSB0aGlzLl9iYWRnZUVsZW1lbnQpIHtcbiAgICAgICAgYmFkZ2VFbGVtZW50LnJlbW92ZSgpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIl19
@@ -1,5 +0,0 @@
1
- /**
2
- * Generated bundle index. Do not edit.
3
- */
4
- export * from './index';
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFkZ2VfcHVibGljX2luZGV4LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL21hdGVyaWFsL2JhZGdlL2JhZGdlX3B1YmxpY19pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ==
@@ -1,9 +0,0 @@
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
- export * from './public-api';
9
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbWF0ZXJpYWwvYmFkZ2UvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HO0FBRUgsY0FBYyxjQUFjLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9wdWJsaWMtYXBpJztcbiJdfQ==
@@ -1,10 +0,0 @@
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
- export * from './badge-module';
9
- export { MatBadge } from './badge';
10
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9tYXRlcmlhbC9iYWRnZS9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7R0FNRztBQUVILGNBQWMsZ0JBQWdCLENBQUM7QUFDL0IsT0FBTyxFQUFDLFFBQVEsRUFBaUMsTUFBTSxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9iYWRnZS1tb2R1bGUnO1xuZXhwb3J0IHtNYXRCYWRnZSwgTWF0QmFkZ2VQb3NpdGlvbiwgTWF0QmFkZ2VTaXplfSBmcm9tICcuL2JhZGdlJztcbiJdfQ==
@@ -1,9 +0,0 @@
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
- export {};
9
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFkZ2UtaGFybmVzcy1maWx0ZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL21hdGVyaWFsL2JhZGdlL3Rlc3RpbmcvYmFkZ2UtaGFybmVzcy1maWx0ZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7R0FNRyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuXG5pbXBvcnQge0Jhc2VIYXJuZXNzRmlsdGVyc30gZnJvbSAnQGFuZ3VsYXIvY2RrL3Rlc3RpbmcnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEJhZGdlSGFybmVzc0ZpbHRlcnMgZXh0ZW5kcyBCYXNlSGFybmVzc0ZpbHRlcnMge1xuICB0ZXh0Pzogc3RyaW5nIHwgUmVnRXhwO1xufVxuIl19
@@ -1,71 +0,0 @@
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 { ComponentHarness, HarnessPredicate } from '@angular/cdk/testing';
9
- /** Harness for interacting with a standard Material badge in tests. */
10
- export class MatBadgeHarness extends ComponentHarness {
11
- constructor() {
12
- super(...arguments);
13
- this._badgeElement = this.locatorFor('.mat-badge-content');
14
- }
15
- static { this.hostSelector = '.mat-badge'; }
16
- /**
17
- * Gets a `HarnessPredicate` that can be used to search for a badge with specific attributes.
18
- * @param options Options for narrowing the search:
19
- * - `text` finds a badge host with a particular text.
20
- * @return a `HarnessPredicate` configured with the given options.
21
- */
22
- static with(options = {}) {
23
- return new HarnessPredicate(MatBadgeHarness, options).addOption('text', options.text, (harness, text) => HarnessPredicate.stringMatches(harness.getText(), text));
24
- }
25
- /** Gets a promise for the badge text. */
26
- async getText() {
27
- return (await this._badgeElement()).text();
28
- }
29
- /** Gets whether the badge is overlapping the content. */
30
- async isOverlapping() {
31
- return (await this.host()).hasClass('mat-badge-overlap');
32
- }
33
- /** Gets the position of the badge. */
34
- async getPosition() {
35
- const host = await this.host();
36
- let result = '';
37
- if (await host.hasClass('mat-badge-above')) {
38
- result += 'above';
39
- }
40
- else if (await host.hasClass('mat-badge-below')) {
41
- result += 'below';
42
- }
43
- if (await host.hasClass('mat-badge-before')) {
44
- result += ' before';
45
- }
46
- else if (await host.hasClass('mat-badge-after')) {
47
- result += ' after';
48
- }
49
- return result.trim();
50
- }
51
- /** Gets the size of the badge. */
52
- async getSize() {
53
- const host = await this.host();
54
- if (await host.hasClass('mat-badge-small')) {
55
- return 'small';
56
- }
57
- else if (await host.hasClass('mat-badge-large')) {
58
- return 'large';
59
- }
60
- return 'medium';
61
- }
62
- /** Gets whether the badge is hidden. */
63
- async isHidden() {
64
- return (await this.host()).hasClass('mat-badge-hidden');
65
- }
66
- /** Gets whether the badge is disabled. */
67
- async isDisabled() {
68
- return (await this.host()).hasClass('mat-badge-disabled');
69
- }
70
- }
71
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFkZ2UtaGFybmVzcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9tYXRlcmlhbC9iYWRnZS90ZXN0aW5nL2JhZGdlLWhhcm5lc3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HO0FBRUgsT0FBTyxFQUFDLGdCQUFnQixFQUFFLGdCQUFnQixFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFJeEUsdUVBQXVFO0FBQ3ZFLE1BQU0sT0FBTyxlQUFnQixTQUFRLGdCQUFnQjtJQUFyRDs7UUFpQlUsa0JBQWEsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLG9CQUFvQixDQUFDLENBQUM7SUFzRGhFLENBQUM7YUF0RVEsaUJBQVksR0FBRyxZQUFZLEFBQWYsQ0FBZ0I7SUFFbkM7Ozs7O09BS0c7SUFDSCxNQUFNLENBQUMsSUFBSSxDQUFDLFVBQStCLEVBQUU7UUFDM0MsT0FBTyxJQUFJLGdCQUFnQixDQUFDLGVBQWUsRUFBRSxPQUFPLENBQUMsQ0FBQyxTQUFTLENBQzdELE1BQU0sRUFDTixPQUFPLENBQUMsSUFBSSxFQUNaLENBQUMsT0FBTyxFQUFFLElBQUksRUFBRSxFQUFFLENBQUMsZ0JBQWdCLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsRUFBRSxJQUFJLENBQUMsQ0FDM0UsQ0FBQztJQUNKLENBQUM7SUFJRCx5Q0FBeUM7SUFDekMsS0FBSyxDQUFDLE9BQU87UUFDWCxPQUFPLENBQUMsTUFBTSxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUM3QyxDQUFDO0lBRUQseURBQXlEO0lBQ3pELEtBQUssQ0FBQyxhQUFhO1FBQ2pCLE9BQU8sQ0FBQyxNQUFNLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO0lBQzNELENBQUM7SUFFRCxzQ0FBc0M7SUFDdEMsS0FBSyxDQUFDLFdBQVc7UUFDZixNQUFNLElBQUksR0FBRyxNQUFNLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUMvQixJQUFJLE1BQU0sR0FBRyxFQUFFLENBQUM7UUFFaEIsSUFBSSxNQUFNLElBQUksQ0FBQyxRQUFRLENBQUMsaUJBQWlCLENBQUMsRUFBRSxDQUFDO1lBQzNDLE1BQU0sSUFBSSxPQUFPLENBQUM7UUFDcEIsQ0FBQzthQUFNLElBQUksTUFBTSxJQUFJLENBQUMsUUFBUSxDQUFDLGlCQUFpQixDQUFDLEVBQUUsQ0FBQztZQUNsRCxNQUFNLElBQUksT0FBTyxDQUFDO1FBQ3BCLENBQUM7UUFFRCxJQUFJLE1BQU0sSUFBSSxDQUFDLFFBQVEsQ0FBQyxrQkFBa0IsQ0FBQyxFQUFFLENBQUM7WUFDNUMsTUFBTSxJQUFJLFNBQVMsQ0FBQztRQUN0QixDQUFDO2FBQU0sSUFBSSxNQUFNLElBQUksQ0FBQyxRQUFRLENBQUMsaUJBQWlCLENBQUMsRUFBRSxDQUFDO1lBQ2xELE1BQU0sSUFBSSxRQUFRLENBQUM7UUFDckIsQ0FBQztRQUVELE9BQU8sTUFBTSxDQUFDLElBQUksRUFBc0IsQ0FBQztJQUMzQyxDQUFDO0lBRUQsa0NBQWtDO0lBQ2xDLEtBQUssQ0FBQyxPQUFPO1FBQ1gsTUFBTSxJQUFJLEdBQUcsTUFBTSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7UUFFL0IsSUFBSSxNQUFNLElBQUksQ0FBQyxRQUFRLENBQUMsaUJBQWlCLENBQUMsRUFBRSxDQUFDO1lBQzNDLE9BQU8sT0FBTyxDQUFDO1FBQ2pCLENBQUM7YUFBTSxJQUFJLE1BQU0sSUFBSSxDQUFDLFFBQVEsQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFLENBQUM7WUFDbEQsT0FBTyxPQUFPLENBQUM7UUFDakIsQ0FBQztRQUVELE9BQU8sUUFBUSxDQUFDO0lBQ2xCLENBQUM7SUFFRCx3Q0FBd0M7SUFDeEMsS0FBSyxDQUFDLFFBQVE7UUFDWixPQUFPLENBQUMsTUFBTSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxRQUFRLENBQUMsa0JBQWtCLENBQUMsQ0FBQztJQUMxRCxDQUFDO0lBRUQsMENBQTBDO0lBQzFDLEtBQUssQ0FBQyxVQUFVO1FBQ2QsT0FBTyxDQUFDLE1BQU0sSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsUUFBUSxDQUFDLG9CQUFvQixDQUFDLENBQUM7SUFDNUQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuXG5pbXBvcnQge0NvbXBvbmVudEhhcm5lc3MsIEhhcm5lc3NQcmVkaWNhdGV9IGZyb20gJ0Bhbmd1bGFyL2Nkay90ZXN0aW5nJztcbmltcG9ydCB7TWF0QmFkZ2VQb3NpdGlvbiwgTWF0QmFkZ2VTaXplfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9iYWRnZSc7XG5pbXBvcnQge0JhZGdlSGFybmVzc0ZpbHRlcnN9IGZyb20gJy4vYmFkZ2UtaGFybmVzcy1maWx0ZXJzJztcblxuLyoqIEhhcm5lc3MgZm9yIGludGVyYWN0aW5nIHdpdGggYSBzdGFuZGFyZCBNYXRlcmlhbCBiYWRnZSBpbiB0ZXN0cy4gKi9cbmV4cG9ydCBjbGFzcyBNYXRCYWRnZUhhcm5lc3MgZXh0ZW5kcyBDb21wb25lbnRIYXJuZXNzIHtcbiAgc3RhdGljIGhvc3RTZWxlY3RvciA9ICcubWF0LWJhZGdlJztcblxuICAvKipcbiAgICogR2V0cyBhIGBIYXJuZXNzUHJlZGljYXRlYCB0aGF0IGNhbiBiZSB1c2VkIHRvIHNlYXJjaCBmb3IgYSBiYWRnZSB3aXRoIHNwZWNpZmljIGF0dHJpYnV0ZXMuXG4gICAqIEBwYXJhbSBvcHRpb25zIE9wdGlvbnMgZm9yIG5hcnJvd2luZyB0aGUgc2VhcmNoOlxuICAgKiAgIC0gYHRleHRgIGZpbmRzIGEgYmFkZ2UgaG9zdCB3aXRoIGEgcGFydGljdWxhciB0ZXh0LlxuICAgKiBAcmV0dXJuIGEgYEhhcm5lc3NQcmVkaWNhdGVgIGNvbmZpZ3VyZWQgd2l0aCB0aGUgZ2l2ZW4gb3B0aW9ucy5cbiAgICovXG4gIHN0YXRpYyB3aXRoKG9wdGlvbnM6IEJhZGdlSGFybmVzc0ZpbHRlcnMgPSB7fSk6IEhhcm5lc3NQcmVkaWNhdGU8TWF0QmFkZ2VIYXJuZXNzPiB7XG4gICAgcmV0dXJuIG5ldyBIYXJuZXNzUHJlZGljYXRlKE1hdEJhZGdlSGFybmVzcywgb3B0aW9ucykuYWRkT3B0aW9uKFxuICAgICAgJ3RleHQnLFxuICAgICAgb3B0aW9ucy50ZXh0LFxuICAgICAgKGhhcm5lc3MsIHRleHQpID0+IEhhcm5lc3NQcmVkaWNhdGUuc3RyaW5nTWF0Y2hlcyhoYXJuZXNzLmdldFRleHQoKSwgdGV4dCksXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgX2JhZGdlRWxlbWVudCA9IHRoaXMubG9jYXRvckZvcignLm1hdC1iYWRnZS1jb250ZW50Jyk7XG5cbiAgLyoqIEdldHMgYSBwcm9taXNlIGZvciB0aGUgYmFkZ2UgdGV4dC4gKi9cbiAgYXN5bmMgZ2V0VGV4dCgpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIHJldHVybiAoYXdhaXQgdGhpcy5fYmFkZ2VFbGVtZW50KCkpLnRleHQoKTtcbiAgfVxuXG4gIC8qKiBHZXRzIHdoZXRoZXIgdGhlIGJhZGdlIGlzIG92ZXJsYXBwaW5nIHRoZSBjb250ZW50LiAqL1xuICBhc3luYyBpc092ZXJsYXBwaW5nKCk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIHJldHVybiAoYXdhaXQgdGhpcy5ob3N0KCkpLmhhc0NsYXNzKCdtYXQtYmFkZ2Utb3ZlcmxhcCcpO1xuICB9XG5cbiAgLyoqIEdldHMgdGhlIHBvc2l0aW9uIG9mIHRoZSBiYWRnZS4gKi9cbiAgYXN5bmMgZ2V0UG9zaXRpb24oKTogUHJvbWlzZTxNYXRCYWRnZVBvc2l0aW9uPiB7XG4gICAgY29uc3QgaG9zdCA9IGF3YWl0IHRoaXMuaG9zdCgpO1xuICAgIGxldCByZXN1bHQgPSAnJztcblxuICAgIGlmIChhd2FpdCBob3N0Lmhhc0NsYXNzKCdtYXQtYmFkZ2UtYWJvdmUnKSkge1xuICAgICAgcmVzdWx0ICs9ICdhYm92ZSc7XG4gICAgfSBlbHNlIGlmIChhd2FpdCBob3N0Lmhhc0NsYXNzKCdtYXQtYmFkZ2UtYmVsb3cnKSkge1xuICAgICAgcmVzdWx0ICs9ICdiZWxvdyc7XG4gICAgfVxuXG4gICAgaWYgKGF3YWl0IGhvc3QuaGFzQ2xhc3MoJ21hdC1iYWRnZS1iZWZvcmUnKSkge1xuICAgICAgcmVzdWx0ICs9ICcgYmVmb3JlJztcbiAgICB9IGVsc2UgaWYgKGF3YWl0IGhvc3QuaGFzQ2xhc3MoJ21hdC1iYWRnZS1hZnRlcicpKSB7XG4gICAgICByZXN1bHQgKz0gJyBhZnRlcic7XG4gICAgfVxuXG4gICAgcmV0dXJuIHJlc3VsdC50cmltKCkgYXMgTWF0QmFkZ2VQb3NpdGlvbjtcbiAgfVxuXG4gIC8qKiBHZXRzIHRoZSBzaXplIG9mIHRoZSBiYWRnZS4gKi9cbiAgYXN5bmMgZ2V0U2l6ZSgpOiBQcm9taXNlPE1hdEJhZGdlU2l6ZT4ge1xuICAgIGNvbnN0IGhvc3QgPSBhd2FpdCB0aGlzLmhvc3QoKTtcblxuICAgIGlmIChhd2FpdCBob3N0Lmhhc0NsYXNzKCdtYXQtYmFkZ2Utc21hbGwnKSkge1xuICAgICAgcmV0dXJuICdzbWFsbCc7XG4gICAgfSBlbHNlIGlmIChhd2FpdCBob3N0Lmhhc0NsYXNzKCdtYXQtYmFkZ2UtbGFyZ2UnKSkge1xuICAgICAgcmV0dXJuICdsYXJnZSc7XG4gICAgfVxuXG4gICAgcmV0dXJuICdtZWRpdW0nO1xuICB9XG5cbiAgLyoqIEdldHMgd2hldGhlciB0aGUgYmFkZ2UgaXMgaGlkZGVuLiAqL1xuICBhc3luYyBpc0hpZGRlbigpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gKGF3YWl0IHRoaXMuaG9zdCgpKS5oYXNDbGFzcygnbWF0LWJhZGdlLWhpZGRlbicpO1xuICB9XG5cbiAgLyoqIEdldHMgd2hldGhlciB0aGUgYmFkZ2UgaXMgZGlzYWJsZWQuICovXG4gIGFzeW5jIGlzRGlzYWJsZWQoKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgcmV0dXJuIChhd2FpdCB0aGlzLmhvc3QoKSkuaGFzQ2xhc3MoJ21hdC1iYWRnZS1kaXNhYmxlZCcpO1xuICB9XG59XG4iXX0=
@@ -1,9 +0,0 @@
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
- export * from './public-api';
9
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbWF0ZXJpYWwvYmFkZ2UvdGVzdGluZy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0dBTUc7QUFFSCxjQUFjLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL3B1YmxpYy1hcGknO1xuIl19
@@ -1,10 +0,0 @@
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
- export * from './badge-harness';
9
- export * from './badge-harness-filters';
10
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9tYXRlcmlhbC9iYWRnZS90ZXN0aW5nL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HO0FBRUgsY0FBYyxpQkFBaUIsQ0FBQztBQUNoQyxjQUFjLHlCQUF5QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vYmFkZ2UtaGFybmVzcyc7XG5leHBvcnQgKiBmcm9tICcuL2JhZGdlLWhhcm5lc3MtZmlsdGVycyc7XG4iXX0=
@@ -1,26 +0,0 @@
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 { animate, state, style, transition, trigger, group, query, animateChild, } from '@angular/animations';
9
- import { AnimationCurves, AnimationDurations } from '@angular/material/core';
10
- /** Animations used by the Material bottom sheet. */
11
- export const matBottomSheetAnimations = {
12
- /** Animation that shows and hides a bottom sheet. */
13
- bottomSheetState: trigger('state', [
14
- state('void, hidden', style({ transform: 'translateY(100%)' })),
15
- state('visible', style({ transform: 'translateY(0%)' })),
16
- transition('visible => void, visible => hidden', group([
17
- animate(`${AnimationDurations.COMPLEX} ${AnimationCurves.ACCELERATION_CURVE}`),
18
- query('@*', animateChild(), { optional: true }),
19
- ])),
20
- transition('void => visible', group([
21
- animate(`${AnimationDurations.EXITING} ${AnimationCurves.DECELERATION_CURVE}`),
22
- query('@*', animateChild(), { optional: true }),
23
- ])),
24
- ]),
25
- };
26
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm90dG9tLXNoZWV0LWFuaW1hdGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbWF0ZXJpYWwvYm90dG9tLXNoZWV0L2JvdHRvbS1zaGVldC1hbmltYXRpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7R0FNRztBQUNILE9BQU8sRUFDTCxPQUFPLEVBQ1AsS0FBSyxFQUNMLEtBQUssRUFDTCxVQUFVLEVBQ1YsT0FBTyxFQUVQLEtBQUssRUFDTCxLQUFLLEVBQ0wsWUFBWSxHQUNiLE1BQU0scUJBQXFCLENBQUM7QUFDN0IsT0FBTyxFQUFDLGVBQWUsRUFBRSxrQkFBa0IsRUFBQyxNQUFNLHdCQUF3QixDQUFDO0FBRTNFLG9EQUFvRDtBQUNwRCxNQUFNLENBQUMsTUFBTSx3QkFBd0IsR0FFakM7SUFDRixxREFBcUQ7SUFDckQsZ0JBQWdCLEVBQUUsT0FBTyxDQUFDLE9BQU8sRUFBRTtRQUNqQyxLQUFLLENBQUMsY0FBYyxFQUFFLEtBQUssQ0FBQyxFQUFDLFNBQVMsRUFBRSxrQkFBa0IsRUFBQyxDQUFDLENBQUM7UUFDN0QsS0FBSyxDQUFDLFNBQVMsRUFBRSxLQUFLLENBQUMsRUFBQyxTQUFTLEVBQUUsZ0JBQWdCLEVBQUMsQ0FBQyxDQUFDO1FBQ3RELFVBQVUsQ0FDUixvQ0FBb0MsRUFDcEMsS0FBSyxDQUFDO1lBQ0osT0FBTyxDQUFDLEdBQUcsa0JBQWtCLENBQUMsT0FBTyxJQUFJLGVBQWUsQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1lBQzlFLEtBQUssQ0FBQyxJQUFJLEVBQUUsWUFBWSxFQUFFLEVBQUUsRUFBQyxRQUFRLEVBQUUsSUFBSSxFQUFDLENBQUM7U0FDOUMsQ0FBQyxDQUNIO1FBQ0QsVUFBVSxDQUNSLGlCQUFpQixFQUNqQixLQUFLLENBQUM7WUFDSixPQUFPLENBQUMsR0FBRyxrQkFBa0IsQ0FBQyxPQUFPLElBQUksZUFBZSxDQUFDLGtCQUFrQixFQUFFLENBQUM7WUFDOUUsS0FBSyxDQUFDLElBQUksRUFBRSxZQUFZLEVBQUUsRUFBRSxFQUFDLFFBQVEsRUFBRSxJQUFJLEVBQUMsQ0FBQztTQUM5QyxDQUFDLENBQ0g7S0FDRixDQUFDO0NBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuaW1wb3J0IHtcbiAgYW5pbWF0ZSxcbiAgc3RhdGUsXG4gIHN0eWxlLFxuICB0cmFuc2l0aW9uLFxuICB0cmlnZ2VyLFxuICBBbmltYXRpb25UcmlnZ2VyTWV0YWRhdGEsXG4gIGdyb3VwLFxuICBxdWVyeSxcbiAgYW5pbWF0ZUNoaWxkLFxufSBmcm9tICdAYW5ndWxhci9hbmltYXRpb25zJztcbmltcG9ydCB7QW5pbWF0aW9uQ3VydmVzLCBBbmltYXRpb25EdXJhdGlvbnN9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NvcmUnO1xuXG4vKiogQW5pbWF0aW9ucyB1c2VkIGJ5IHRoZSBNYXRlcmlhbCBib3R0b20gc2hlZXQuICovXG5leHBvcnQgY29uc3QgbWF0Qm90dG9tU2hlZXRBbmltYXRpb25zOiB7XG4gIHJlYWRvbmx5IGJvdHRvbVNoZWV0U3RhdGU6IEFuaW1hdGlvblRyaWdnZXJNZXRhZGF0YTtcbn0gPSB7XG4gIC8qKiBBbmltYXRpb24gdGhhdCBzaG93cyBhbmQgaGlkZXMgYSBib3R0b20gc2hlZXQuICovXG4gIGJvdHRvbVNoZWV0U3RhdGU6IHRyaWdnZXIoJ3N0YXRlJywgW1xuICAgIHN0YXRlKCd2b2lkLCBoaWRkZW4nLCBzdHlsZSh7dHJhbnNmb3JtOiAndHJhbnNsYXRlWSgxMDAlKSd9KSksXG4gICAgc3RhdGUoJ3Zpc2libGUnLCBzdHlsZSh7dHJhbnNmb3JtOiAndHJhbnNsYXRlWSgwJSknfSkpLFxuICAgIHRyYW5zaXRpb24oXG4gICAgICAndmlzaWJsZSA9PiB2b2lkLCB2aXNpYmxlID0+IGhpZGRlbicsXG4gICAgICBncm91cChbXG4gICAgICAgIGFuaW1hdGUoYCR7QW5pbWF0aW9uRHVyYXRpb25zLkNPTVBMRVh9ICR7QW5pbWF0aW9uQ3VydmVzLkFDQ0VMRVJBVElPTl9DVVJWRX1gKSxcbiAgICAgICAgcXVlcnkoJ0AqJywgYW5pbWF0ZUNoaWxkKCksIHtvcHRpb25hbDogdHJ1ZX0pLFxuICAgICAgXSksXG4gICAgKSxcbiAgICB0cmFuc2l0aW9uKFxuICAgICAgJ3ZvaWQgPT4gdmlzaWJsZScsXG4gICAgICBncm91cChbXG4gICAgICAgIGFuaW1hdGUoYCR7QW5pbWF0aW9uRHVyYXRpb25zLkVYSVRJTkd9ICR7QW5pbWF0aW9uQ3VydmVzLkRFQ0VMRVJBVElPTl9DVVJWRX1gKSxcbiAgICAgICAgcXVlcnkoJ0AqJywgYW5pbWF0ZUNoaWxkKCksIHtvcHRpb25hbDogdHJ1ZX0pLFxuICAgICAgXSksXG4gICAgKSxcbiAgXSksXG59O1xuIl19
@@ -1,48 +0,0 @@
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 { InjectionToken } from '@angular/core';
9
- /** Injection token that can be used to access the data that was passed in to a bottom sheet. */
10
- export const MAT_BOTTOM_SHEET_DATA = new InjectionToken('MatBottomSheetData');
11
- /**
12
- * Configuration used when opening a bottom sheet.
13
- */
14
- export class MatBottomSheetConfig {
15
- constructor() {
16
- /** Data being injected into the child component. */
17
- this.data = null;
18
- /** Whether the bottom sheet has a backdrop. */
19
- this.hasBackdrop = true;
20
- /** Whether the user can use escape or clicking outside to close the bottom sheet. */
21
- this.disableClose = false;
22
- /** Aria label to assign to the bottom sheet element. */
23
- this.ariaLabel = null;
24
- /** Whether this is a modal bottom sheet. Used to set the `aria-modal` attribute. */
25
- this.ariaModal = true;
26
- /**
27
- * Whether the bottom sheet should close when the user goes backwards/forwards in history.
28
- * Note that this usually doesn't include clicking on links (unless the user is using
29
- * the `HashLocationStrategy`).
30
- */
31
- this.closeOnNavigation = true;
32
- // Note that this is set to 'dialog' by default, because while the a11y recommendations
33
- // are to focus the first focusable element, doing so prevents screen readers from reading out the
34
- // rest of the bottom sheet content.
35
- /**
36
- * Where the bottom sheet should focus on open.
37
- * @breaking-change 14.0.0 Remove boolean option from autoFocus. Use string or
38
- * AutoFocusTarget instead.
39
- */
40
- this.autoFocus = 'dialog';
41
- /**
42
- * Whether the bottom sheet should restore focus to the
43
- * previously-focused element, after it's closed.
44
- */
45
- this.restoreFocus = true;
46
- }
47
- }
48
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm90dG9tLXNoZWV0LWNvbmZpZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9tYXRlcmlhbC9ib3R0b20tc2hlZXQvYm90dG9tLXNoZWV0LWNvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0dBTUc7QUFJSCxPQUFPLEVBQUMsY0FBYyxFQUFtQixNQUFNLGVBQWUsQ0FBQztBQUsvRCxnR0FBZ0c7QUFDaEcsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQUcsSUFBSSxjQUFjLENBQU0sb0JBQW9CLENBQUMsQ0FBQztBQUVuRjs7R0FFRztBQUNILE1BQU0sT0FBTyxvQkFBb0I7SUFBakM7UUFVRSxvREFBb0Q7UUFDcEQsU0FBSSxHQUFjLElBQUksQ0FBQztRQUV2QiwrQ0FBK0M7UUFDL0MsZ0JBQVcsR0FBYSxJQUFJLENBQUM7UUFLN0IscUZBQXFGO1FBQ3JGLGlCQUFZLEdBQWEsS0FBSyxDQUFDO1FBRS9CLHdEQUF3RDtRQUN4RCxjQUFTLEdBQW1CLElBQUksQ0FBQztRQUVqQyxvRkFBb0Y7UUFDcEYsY0FBUyxHQUFhLElBQUksQ0FBQztRQUUzQjs7OztXQUlHO1FBQ0gsc0JBQWlCLEdBQWEsSUFBSSxDQUFDO1FBRW5DLHVGQUF1RjtRQUN2RixrR0FBa0c7UUFDbEcsb0NBQW9DO1FBQ3BDOzs7O1dBSUc7UUFDSCxjQUFTLEdBQXdDLFFBQVEsQ0FBQztRQUUxRDs7O1dBR0c7UUFDSCxpQkFBWSxHQUFhLElBQUksQ0FBQztJQUloQyxDQUFDO0NBQUEiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cblxuaW1wb3J0IHtEaXJlY3Rpb259IGZyb20gJ0Bhbmd1bGFyL2Nkay9iaWRpJztcbmltcG9ydCB7U2Nyb2xsU3RyYXRlZ3l9IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcbmltcG9ydCB7SW5qZWN0aW9uVG9rZW4sIFZpZXdDb250YWluZXJSZWZ9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG4vKiogT3B0aW9ucyBmb3Igd2hlcmUgdG8gc2V0IGZvY3VzIHRvIGF1dG9tYXRpY2FsbHkgb24gZGlhbG9nIG9wZW4gKi9cbmV4cG9ydCB0eXBlIEF1dG9Gb2N1c1RhcmdldCA9ICdkaWFsb2cnIHwgJ2ZpcnN0LXRhYmJhYmxlJyB8ICdmaXJzdC1oZWFkaW5nJztcblxuLyoqIEluamVjdGlvbiB0b2tlbiB0aGF0IGNhbiBiZSB1c2VkIHRvIGFjY2VzcyB0aGUgZGF0YSB0aGF0IHdhcyBwYXNzZWQgaW4gdG8gYSBib3R0b20gc2hlZXQuICovXG5leHBvcnQgY29uc3QgTUFUX0JPVFRPTV9TSEVFVF9EQVRBID0gbmV3IEluamVjdGlvblRva2VuPGFueT4oJ01hdEJvdHRvbVNoZWV0RGF0YScpO1xuXG4vKipcbiAqIENvbmZpZ3VyYXRpb24gdXNlZCB3aGVuIG9wZW5pbmcgYSBib3R0b20gc2hlZXQuXG4gKi9cbmV4cG9ydCBjbGFzcyBNYXRCb3R0b21TaGVldENvbmZpZzxEID0gYW55PiB7XG4gIC8qKiBUaGUgdmlldyBjb250YWluZXIgdG8gcGxhY2UgdGhlIG92ZXJsYXkgZm9yIHRoZSBib3R0b20gc2hlZXQgaW50by4gKi9cbiAgdmlld0NvbnRhaW5lclJlZj86IFZpZXdDb250YWluZXJSZWY7XG5cbiAgLyoqIEV4dHJhIENTUyBjbGFzc2VzIHRvIGJlIGFkZGVkIHRvIHRoZSBib3R0b20gc2hlZXQgY29udGFpbmVyLiAqL1xuICBwYW5lbENsYXNzPzogc3RyaW5nIHwgc3RyaW5nW107XG5cbiAgLyoqIFRleHQgbGF5b3V0IGRpcmVjdGlvbiBmb3IgdGhlIGJvdHRvbSBzaGVldC4gKi9cbiAgZGlyZWN0aW9uPzogRGlyZWN0aW9uO1xuXG4gIC8qKiBEYXRhIGJlaW5nIGluamVjdGVkIGludG8gdGhlIGNoaWxkIGNvbXBvbmVudC4gKi9cbiAgZGF0YT86IEQgfCBudWxsID0gbnVsbDtcblxuICAvKiogV2hldGhlciB0aGUgYm90dG9tIHNoZWV0IGhhcyBhIGJhY2tkcm9wLiAqL1xuICBoYXNCYWNrZHJvcD86IGJvb2xlYW4gPSB0cnVlO1xuXG4gIC8qKiBDdXN0b20gY2xhc3MgZm9yIHRoZSBiYWNrZHJvcC4gKi9cbiAgYmFja2Ryb3BDbGFzcz86IHN0cmluZztcblxuICAvKiogV2hldGhlciB0aGUgdXNlciBjYW4gdXNlIGVzY2FwZSBvciBjbGlja2luZyBvdXRzaWRlIHRvIGNsb3NlIHRoZSBib3R0b20gc2hlZXQuICovXG4gIGRpc2FibGVDbG9zZT86IGJvb2xlYW4gPSBmYWxzZTtcblxuICAvKiogQXJpYSBsYWJlbCB0byBhc3NpZ24gdG8gdGhlIGJvdHRvbSBzaGVldCBlbGVtZW50LiAqL1xuICBhcmlhTGFiZWw/OiBzdHJpbmcgfCBudWxsID0gbnVsbDtcblxuICAvKiogV2hldGhlciB0aGlzIGlzIGEgbW9kYWwgYm90dG9tIHNoZWV0LiBVc2VkIHRvIHNldCB0aGUgYGFyaWEtbW9kYWxgIGF0dHJpYnV0ZS4gKi9cbiAgYXJpYU1vZGFsPzogYm9vbGVhbiA9IHRydWU7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhlIGJvdHRvbSBzaGVldCBzaG91bGQgY2xvc2Ugd2hlbiB0aGUgdXNlciBnb2VzIGJhY2t3YXJkcy9mb3J3YXJkcyBpbiBoaXN0b3J5LlxuICAgKiBOb3RlIHRoYXQgdGhpcyB1c3VhbGx5IGRvZXNuJ3QgaW5jbHVkZSBjbGlja2luZyBvbiBsaW5rcyAodW5sZXNzIHRoZSB1c2VyIGlzIHVzaW5nXG4gICAqIHRoZSBgSGFzaExvY2F0aW9uU3RyYXRlZ3lgKS5cbiAgICovXG4gIGNsb3NlT25OYXZpZ2F0aW9uPzogYm9vbGVhbiA9IHRydWU7XG5cbiAgLy8gTm90ZSB0aGF0IHRoaXMgaXMgc2V0IHRvICdkaWFsb2cnIGJ5IGRlZmF1bHQsIGJlY2F1c2Ugd2hpbGUgdGhlIGExMXkgcmVjb21tZW5kYXRpb25zXG4gIC8vIGFyZSB0byBmb2N1cyB0aGUgZmlyc3QgZm9jdXNhYmxlIGVsZW1lbnQsIGRvaW5nIHNvIHByZXZlbnRzIHNjcmVlbiByZWFkZXJzIGZyb20gcmVhZGluZyBvdXQgdGhlXG4gIC8vIHJlc3Qgb2YgdGhlIGJvdHRvbSBzaGVldCBjb250ZW50LlxuICAvKipcbiAgICogV2hlcmUgdGhlIGJvdHRvbSBzaGVldCBzaG91bGQgZm9jdXMgb24gb3Blbi5cbiAgICogQGJyZWFraW5nLWNoYW5nZSAxNC4wLjAgUmVtb3ZlIGJvb2xlYW4gb3B0aW9uIGZyb20gYXV0b0ZvY3VzLiBVc2Ugc3RyaW5nIG9yXG4gICAqIEF1dG9Gb2N1c1RhcmdldCBpbnN0ZWFkLlxuICAgKi9cbiAgYXV0b0ZvY3VzPzogQXV0b0ZvY3VzVGFyZ2V0IHwgc3RyaW5nIHwgYm9vbGVhbiA9ICdkaWFsb2cnO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRoZSBib3R0b20gc2hlZXQgc2hvdWxkIHJlc3RvcmUgZm9jdXMgdG8gdGhlXG4gICAqIHByZXZpb3VzbHktZm9jdXNlZCBlbGVtZW50LCBhZnRlciBpdCdzIGNsb3NlZC5cbiAgICovXG4gIHJlc3RvcmVGb2N1cz86IGJvb2xlYW4gPSB0cnVlO1xuXG4gIC8qKiBTY3JvbGwgc3RyYXRlZ3kgdG8gYmUgdXNlZCBmb3IgdGhlIGJvdHRvbSBzaGVldC4gKi9cbiAgc2Nyb2xsU3RyYXRlZ3k/OiBTY3JvbGxTdHJhdGVneTtcbn1cbiJdfQ==