@angular/material 20.0.0-next.1 → 20.0.0-next.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (265) hide show
  1. package/autocomplete/_autocomplete-theme.scss +4 -4
  2. package/autocomplete/index.d.ts +9 -4
  3. package/badge/_badge-theme.scss +5 -5
  4. package/badge/index.d.ts +2 -2
  5. package/badge/testing/index.d.ts +1 -1
  6. package/{badge.d-49a8a74b.d.ts → badge.d-d42103d0.d.ts} +1 -1
  7. package/bottom-sheet/_bottom-sheet-theme.scss +3 -3
  8. package/bottom-sheet/index.d.ts +1 -0
  9. package/button/_button-theme.scss +84 -32
  10. package/button/_fab-theme.scss +13 -13
  11. package/button/_icon-button-theme.scss +5 -5
  12. package/button/index.d.ts +4 -4
  13. package/button/testing/index.d.ts +9 -2
  14. package/button-toggle/_button-toggle-theme.scss +8 -8
  15. package/button-toggle/index.d.ts +4 -4
  16. package/button-toggle/testing/index.d.ts +1 -1
  17. package/{button-toggle.d-edc8acff.d.ts → button-toggle.d-e3ddc80f.d.ts} +1 -1
  18. package/card/_card-theme.scss +12 -12
  19. package/checkbox/_checkbox-theme.scss +10 -10
  20. package/checkbox/index.d.ts +1 -1
  21. package/chips/_chips-theme.scss +14 -14
  22. package/chips/index.d.ts +13 -3
  23. package/core/_core-theme.scss +2 -2
  24. package/core/index.d.ts +11 -6
  25. package/core/option/_optgroup-theme.scss +2 -2
  26. package/core/option/_option-theme.scss +4 -4
  27. package/core/ripple/_ripple-theme.scss +3 -3
  28. package/core/selection/pseudo-checkbox/_pseudo-checkbox-theme.scss +4 -4
  29. package/core/theming/_color-api-backwards-compatibility.scss +19 -8
  30. package/core/tokens/_density.scss +3 -0
  31. package/core/tokens/_token-definition.scss +1 -2
  32. package/core/tokens/_token-utils.scss +20 -5
  33. package/core/tokens/m2/_index.scss +2 -0
  34. package/core/tokens/m2/mat/_tonal-button.scss +110 -0
  35. package/core/tokens/m3/_index.scss +2 -0
  36. package/core/tokens/m3/definitions/_index.scss +1 -1
  37. package/core/tokens/m3/definitions/_md-comp-elevated-card.scss +3 -1
  38. package/core/tokens/m3/definitions/_md-sys-color.scss +44 -2
  39. package/core/tokens/m3/definitions/_md-sys-typescale.scss +20 -1
  40. package/core/tokens/m3/mat/_tonal-button.scss +101 -0
  41. package/datepicker/_datepicker-theme.scss +8 -7
  42. package/datepicker/index.d.ts +5 -4
  43. package/dialog/_dialog-theme.scss +6 -6
  44. package/dialog/index.d.ts +2 -2
  45. package/dialog/testing/index.d.ts +1 -1
  46. package/{dialog.d-57867441.d.ts → dialog.d-4ffbd89c.d.ts} +1 -1
  47. package/divider/_divider-theme.scss +2 -2
  48. package/expansion/_expansion-theme.scss +4 -4
  49. package/fesm2022/animation-5f89c9a6.mjs +33 -0
  50. package/fesm2022/animation-5f89c9a6.mjs.map +1 -0
  51. package/fesm2022/autocomplete/testing.mjs +2 -2
  52. package/fesm2022/autocomplete.mjs +16 -10
  53. package/fesm2022/autocomplete.mjs.map +1 -1
  54. package/fesm2022/badge.mjs +5 -4
  55. package/fesm2022/badge.mjs.map +1 -1
  56. package/fesm2022/bottom-sheet/testing.mjs.map +1 -1
  57. package/fesm2022/bottom-sheet.mjs +5 -2
  58. package/fesm2022/bottom-sheet.mjs.map +1 -1
  59. package/fesm2022/button/testing.mjs +34 -15
  60. package/fesm2022/button/testing.mjs.map +1 -1
  61. package/fesm2022/button-toggle/testing.mjs.map +1 -1
  62. package/fesm2022/button-toggle.mjs +7 -6
  63. package/fesm2022/button-toggle.mjs.map +1 -1
  64. package/fesm2022/button.mjs +6 -5
  65. package/fesm2022/button.mjs.map +1 -1
  66. package/fesm2022/card/testing.mjs.map +1 -1
  67. package/fesm2022/checkbox/testing.mjs.map +1 -1
  68. package/fesm2022/checkbox.mjs +7 -6
  69. package/fesm2022/checkbox.mjs.map +1 -1
  70. package/fesm2022/chips/testing.mjs +7 -1
  71. package/fesm2022/chips/testing.mjs.map +1 -1
  72. package/fesm2022/chips.mjs +32 -16
  73. package/fesm2022/chips.mjs.map +1 -1
  74. package/fesm2022/core/testing.mjs +2 -2
  75. package/fesm2022/core.mjs +10 -31
  76. package/fesm2022/core.mjs.map +1 -1
  77. package/fesm2022/{date-range-input-harness-ee47cdb0.mjs → date-range-input-harness-3718a667.mjs} +2 -2
  78. package/fesm2022/date-range-input-harness-3718a667.mjs.map +1 -0
  79. package/fesm2022/datepicker/testing.mjs +3 -3
  80. package/fesm2022/datepicker/testing.mjs.map +1 -1
  81. package/fesm2022/datepicker.mjs +17 -14
  82. package/fesm2022/datepicker.mjs.map +1 -1
  83. package/fesm2022/dialog/testing.mjs +2 -1
  84. package/fesm2022/dialog/testing.mjs.map +1 -1
  85. package/fesm2022/dialog.mjs +2 -1
  86. package/fesm2022/dialog.mjs.map +1 -1
  87. package/fesm2022/divider/testing.mjs +1 -1
  88. package/fesm2022/{divider-harness-3394f29a.mjs → divider-harness-8099453f.mjs} +1 -1
  89. package/fesm2022/divider-harness-8099453f.mjs.map +1 -0
  90. package/fesm2022/expansion/testing.mjs.map +1 -1
  91. package/fesm2022/expansion.mjs +3 -2
  92. package/fesm2022/expansion.mjs.map +1 -1
  93. package/fesm2022/form-field/testing/control.mjs +1 -1
  94. package/fesm2022/form-field/testing.mjs +6 -6
  95. package/fesm2022/form-field/testing.mjs.map +1 -1
  96. package/fesm2022/{form-field-6d755764.mjs → form-field-8a19bb72.mjs} +4 -4
  97. package/fesm2022/form-field-8a19bb72.mjs.map +1 -0
  98. package/fesm2022/{form-field-control-harness-af6fd278.mjs → form-field-control-harness-efefd4cf.mjs} +1 -1
  99. package/fesm2022/form-field-control-harness-efefd4cf.mjs.map +1 -0
  100. package/fesm2022/form-field.mjs +3 -2
  101. package/fesm2022/form-field.mjs.map +1 -1
  102. package/fesm2022/grid-list/testing.mjs.map +1 -1
  103. package/fesm2022/icon-button-b4a4e8c0.mjs +212 -0
  104. package/fesm2022/icon-button-b4a4e8c0.mjs.map +1 -0
  105. package/fesm2022/{index-1763d3a6.mjs → index-26a22e6d.mjs} +4 -4
  106. package/fesm2022/{index-1763d3a6.mjs.map → index-26a22e6d.mjs.map} +1 -1
  107. package/fesm2022/{index-4bc1d6d3.mjs → index-8309af79.mjs} +2 -2
  108. package/fesm2022/{index-4bc1d6d3.mjs.map → index-8309af79.mjs.map} +1 -1
  109. package/fesm2022/input/testing.mjs +2 -2
  110. package/fesm2022/input/testing.mjs.map +1 -1
  111. package/fesm2022/{input-harness-ed59decc.mjs → input-harness-e68bb132.mjs} +2 -2
  112. package/fesm2022/input-harness-e68bb132.mjs.map +1 -0
  113. package/fesm2022/input.mjs +4 -3
  114. package/fesm2022/input.mjs.map +1 -1
  115. package/fesm2022/list/testing.mjs +1 -1
  116. package/fesm2022/list/testing.mjs.map +1 -1
  117. package/fesm2022/list.mjs +7 -8
  118. package/fesm2022/list.mjs.map +1 -1
  119. package/fesm2022/menu/testing.mjs.map +1 -1
  120. package/fesm2022/menu.mjs +7 -5
  121. package/fesm2022/menu.mjs.map +1 -1
  122. package/fesm2022/{module-d757bba0.mjs → module-47679371.mjs} +2 -2
  123. package/fesm2022/{module-d757bba0.mjs.map → module-47679371.mjs.map} +1 -1
  124. package/fesm2022/{module-47e3be58.mjs → module-4a8034fc.mjs} +7 -7
  125. package/fesm2022/module-4a8034fc.mjs.map +1 -0
  126. package/fesm2022/{module-3bf2775f.mjs → module-57e0986f.mjs} +10 -9
  127. package/fesm2022/module-57e0986f.mjs.map +1 -0
  128. package/fesm2022/module-5a2afb59.mjs +214 -0
  129. package/fesm2022/module-5a2afb59.mjs.map +1 -0
  130. package/fesm2022/{module-a5f9ab72.mjs → module-5f02bfe9.mjs} +10 -6
  131. package/fesm2022/module-5f02bfe9.mjs.map +1 -0
  132. package/fesm2022/{optgroup-harness-5e66b138.mjs → optgroup-harness-d5cf72ed.mjs} +2 -2
  133. package/fesm2022/optgroup-harness-d5cf72ed.mjs.map +1 -0
  134. package/fesm2022/{option-07c3c660.mjs → option-636f0562.mjs} +3 -3
  135. package/fesm2022/{option-07c3c660.mjs.map → option-636f0562.mjs.map} +1 -1
  136. package/fesm2022/{option-harness-3b7c1106.mjs → option-harness-b4971f41.mjs} +1 -1
  137. package/fesm2022/option-harness-b4971f41.mjs.map +1 -0
  138. package/fesm2022/paginator/testing.mjs +4 -4
  139. package/fesm2022/paginator/testing.mjs.map +1 -1
  140. package/fesm2022/paginator.mjs +16 -15
  141. package/fesm2022/paginator.mjs.map +1 -1
  142. package/fesm2022/progress-bar.mjs +3 -4
  143. package/fesm2022/progress-bar.mjs.map +1 -1
  144. package/fesm2022/progress-spinner.mjs +3 -4
  145. package/fesm2022/progress-spinner.mjs.map +1 -1
  146. package/fesm2022/{pseudo-checkbox-af5a4ea4.mjs → pseudo-checkbox-0115d33e.mjs} +6 -5
  147. package/fesm2022/pseudo-checkbox-0115d33e.mjs.map +1 -0
  148. package/fesm2022/{pseudo-checkbox-module-216fae38.mjs → pseudo-checkbox-module-89d964bd.mjs} +2 -2
  149. package/fesm2022/{pseudo-checkbox-module-216fae38.mjs.map → pseudo-checkbox-module-89d964bd.mjs.map} +1 -1
  150. package/fesm2022/radio/testing.mjs.map +1 -1
  151. package/fesm2022/radio.mjs +5 -6
  152. package/fesm2022/radio.mjs.map +1 -1
  153. package/fesm2022/{ripple-9939d1f5.mjs → ripple-c405b061.mjs} +5 -4
  154. package/fesm2022/{ripple-9939d1f5.mjs.map → ripple-c405b061.mjs.map} +1 -1
  155. package/fesm2022/{ripple-loader-f2078c66.mjs → ripple-loader-37620555.mjs} +10 -10
  156. package/fesm2022/ripple-loader-37620555.mjs.map +1 -0
  157. package/fesm2022/select/testing.mjs +4 -4
  158. package/fesm2022/{select-harness-8c55824d.mjs → select-harness-30466074.mjs} +4 -4
  159. package/fesm2022/select-harness-30466074.mjs.map +1 -0
  160. package/fesm2022/select.mjs +10 -9
  161. package/fesm2022/select.mjs.map +1 -1
  162. package/fesm2022/sidenav/testing.mjs.map +1 -1
  163. package/fesm2022/sidenav.mjs +4 -3
  164. package/fesm2022/sidenav.mjs.map +1 -1
  165. package/fesm2022/slide-toggle/testing.mjs.map +1 -1
  166. package/fesm2022/slide-toggle.mjs +4 -5
  167. package/fesm2022/slide-toggle.mjs.map +1 -1
  168. package/fesm2022/slider/testing.mjs.map +1 -1
  169. package/fesm2022/slider.mjs +10 -8
  170. package/fesm2022/slider.mjs.map +1 -1
  171. package/fesm2022/snack-bar/testing.mjs.map +1 -1
  172. package/fesm2022/snack-bar.mjs +12 -9
  173. package/fesm2022/snack-bar.mjs.map +1 -1
  174. package/fesm2022/sort/testing.mjs.map +1 -1
  175. package/fesm2022/sort.mjs +5 -4
  176. package/fesm2022/sort.mjs.map +1 -1
  177. package/fesm2022/stepper/testing.mjs.map +1 -1
  178. package/fesm2022/stepper.mjs +7 -6
  179. package/fesm2022/stepper.mjs.map +1 -1
  180. package/fesm2022/table/testing.mjs.map +1 -1
  181. package/fesm2022/tabs/testing.mjs.map +1 -1
  182. package/fesm2022/tabs.mjs +15 -22
  183. package/fesm2022/tabs.mjs.map +1 -1
  184. package/fesm2022/timepicker/testing.mjs +1 -1
  185. package/fesm2022/timepicker/testing.mjs.map +1 -1
  186. package/fesm2022/timepicker.mjs +20 -15
  187. package/fesm2022/timepicker.mjs.map +1 -1
  188. package/fesm2022/toolbar/testing.mjs.map +1 -1
  189. package/fesm2022/tooltip/testing.mjs.map +1 -1
  190. package/fesm2022/tooltip.mjs +2 -1
  191. package/fesm2022/tooltip.mjs.map +1 -1
  192. package/fesm2022/tree/testing.mjs.map +1 -1
  193. package/form-field/_form-field-theme.scss +16 -16
  194. package/grid-list/_grid-list-theme.scss +1 -1
  195. package/icon/_icon-theme.scss +2 -2
  196. package/{index.d-0536b706.d.ts → index.d-cc6e48d4.d.ts} +1 -1
  197. package/{index.d-37e31cd3.d.ts → index.d-d77f0821.d.ts} +2 -2
  198. package/list/_list-theme.scss +15 -15
  199. package/list/index.d.ts +3 -3
  200. package/menu/_menu-theme.scss +3 -3
  201. package/menu/index.d.ts +3 -2
  202. package/{module.d-74a721b9.d.ts → module.d-9a0cb968.d.ts} +1 -0
  203. package/{module.d-ba05faa6.d.ts → module.d-a23953f5.d.ts} +1 -1
  204. package/{module.d-18a67f56.d.ts → module.d-d86ca350.d.ts} +35 -28
  205. package/package.json +2 -2
  206. package/paginator/_paginator-theme.scss +3 -3
  207. package/paginator/index.d.ts +8 -8
  208. package/prebuilt-themes/deeppurple-amber.css +1 -1
  209. package/prebuilt-themes/indigo-pink.css +1 -1
  210. package/prebuilt-themes/pink-bluegrey.css +1 -1
  211. package/prebuilt-themes/purple-green.css +1 -1
  212. package/progress-bar/_progress-bar-theme.scss +2 -2
  213. package/progress-bar/index.d.ts +0 -1
  214. package/progress-spinner/_progress-spinner-theme.scss +4 -4
  215. package/{pseudo-checkbox-module.d-3abc0461.d.ts → pseudo-checkbox-module.d-d21de92b.d.ts} +1 -1
  216. package/radio/_radio-theme.scss +12 -12
  217. package/radio/index.d.ts +2 -2
  218. package/{ripple-loader.d-8aac2988.d.ts → ripple-loader.d-e5ac6c14.d.ts} +1 -1
  219. package/{ripple.d-2fb57d04.d.ts → ripple.d-f2cd74cf.d.ts} +1 -1
  220. package/schematics/ng-add/index.js +1 -1
  221. package/schematics/ng-add/index.mjs +1 -1
  222. package/schematics/ng-generate/address-form/files/__path__/__name@dasherize@if-flat__/__name@dasherize__.component.html.template +2 -2
  223. package/schematics/ng-generate/dashboard/files/__path__/__name@dasherize@if-flat__/__name@dasherize__.component.html.template +1 -1
  224. package/schematics/ng-generate/navigation/files/__path__/__name@dasherize@if-flat__/__name@dasherize__.component.html.template +1 -1
  225. package/schematics/ng-generate/tree/files/__path__/__name@dasherize@if-flat__/__name@dasherize__.component.html.template +2 -2
  226. package/select/_select-theme.scss +6 -6
  227. package/select/index.d.ts +5 -5
  228. package/sidenav/_sidenav-theme.scss +2 -2
  229. package/sidenav/index.d.ts +1 -1
  230. package/slide-toggle/_slide-toggle-theme.scss +10 -10
  231. package/slider/_slider-theme.scss +10 -10
  232. package/slider/index.d.ts +2 -2
  233. package/snack-bar/_snack-bar-theme.scss +4 -4
  234. package/snack-bar/index.d.ts +5 -4
  235. package/sort/_sort-theme.scss +3 -3
  236. package/sort/index.d.ts +1 -1
  237. package/stepper/_stepper-theme.scss +5 -5
  238. package/stepper/index.d.ts +3 -3
  239. package/table/_table-theme.scss +4 -4
  240. package/tabs/_tabs-theme.scss +16 -16
  241. package/tabs/index.d.ts +4 -4
  242. package/timepicker/_timepicker-theme.scss +4 -4
  243. package/timepicker/index.d.ts +0 -1
  244. package/toolbar/_toolbar-theme.scss +4 -4
  245. package/tooltip/_tooltip-theme.scss +4 -4
  246. package/tooltip/index.d.ts +1 -1
  247. package/tree/_tree-theme.scss +3 -3
  248. package/fesm2022/date-range-input-harness-ee47cdb0.mjs.map +0 -1
  249. package/fesm2022/divider-harness-3394f29a.mjs.map +0 -1
  250. package/fesm2022/form-field-6d755764.mjs.map +0 -1
  251. package/fesm2022/form-field-control-harness-af6fd278.mjs.map +0 -1
  252. package/fesm2022/icon-button-47f1b5d9.mjs +0 -248
  253. package/fesm2022/icon-button-47f1b5d9.mjs.map +0 -1
  254. package/fesm2022/input-harness-ed59decc.mjs.map +0 -1
  255. package/fesm2022/module-3bf2775f.mjs.map +0 -1
  256. package/fesm2022/module-47e3be58.mjs.map +0 -1
  257. package/fesm2022/module-a5f9ab72.mjs.map +0 -1
  258. package/fesm2022/module-df9f7af3.mjs +0 -152
  259. package/fesm2022/module-df9f7af3.mjs.map +0 -1
  260. package/fesm2022/optgroup-harness-5e66b138.mjs.map +0 -1
  261. package/fesm2022/option-harness-3b7c1106.mjs.map +0 -1
  262. package/fesm2022/pseudo-checkbox-af5a4ea4.mjs.map +0 -1
  263. package/fesm2022/ripple-loader-f2078c66.mjs.map +0 -1
  264. package/fesm2022/select-harness-8c55824d.mjs.map +0 -1
  265. /package/core/tokens/m3/definitions/{unused/_md-comp-filled-tonal-button.scss → _md-comp-filled-tonal-button.scss} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"testing.mjs","sources":["../../../../../../../src/material/tooltip/testing/tooltip-harness.ts"],"sourcesContent":["/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {\n ComponentHarness,\n ComponentHarnessConstructor,\n HarnessPredicate,\n} from '@angular/cdk/testing';\nimport {TooltipHarnessFilters} from './tooltip-harness-filters';\n\n/** Harness for interacting with a mat-tooltip in tests. */\nexport class MatTooltipHarness extends ComponentHarness {\n static hostSelector = '.mat-mdc-tooltip-trigger';\n\n private _optionalPanel = this.documentRootLocatorFactory().locatorForOptional('.mat-mdc-tooltip');\n private _hiddenClass = 'mat-mdc-tooltip-hide';\n private _disabledClass = 'mat-mdc-tooltip-disabled';\n private _showAnimationName = 'mat-mdc-tooltip-show';\n private _hideAnimationName = 'mat-mdc-tooltip-hide';\n\n /**\n * Gets a `HarnessPredicate` that can be used to search for a tooltip trigger with specific\n * attributes.\n * @param options Options for narrowing the search.\n * @return a `HarnessPredicate` configured with the given options.\n */\n static with<T extends MatTooltipHarness>(\n this: ComponentHarnessConstructor<T>,\n options: TooltipHarnessFilters = {},\n ): HarnessPredicate<T> {\n return new HarnessPredicate(this, options);\n }\n\n /** Shows the tooltip. */\n async show(): Promise<void> {\n const host = await this.host();\n\n // We need to dispatch both `touchstart` and a hover event, because the tooltip binds\n // different events depending on the device. The `changedTouches` is there in case the\n // element has ripples.\n await host.dispatchEvent('touchstart', {changedTouches: []});\n await host.hover();\n const panel = await this._optionalPanel();\n await panel?.dispatchEvent('animationend', {animationName: this._showAnimationName});\n }\n\n /** Hides the tooltip. */\n async hide(): Promise<void> {\n const host = await this.host();\n\n // We need to dispatch both `touchstart` and a hover event, because\n // the tooltip binds different events depending on the device.\n await host.dispatchEvent('touchend');\n await host.mouseAway();\n const panel = await this._optionalPanel();\n await panel?.dispatchEvent('animationend', {animationName: this._hideAnimationName});\n }\n\n /** Gets whether the tooltip is open. */\n async isOpen(): Promise<boolean> {\n const panel = await this._optionalPanel();\n return !!panel && !(await panel.hasClass(this._hiddenClass));\n }\n\n /** Gets whether the tooltip is disabled */\n async isDisabled(): Promise<boolean> {\n const host = await this.host();\n return host.hasClass(this._disabledClass);\n }\n\n /** Gets a promise for the tooltip panel's text. */\n async getTooltipText(): Promise<string> {\n const panel = await this._optionalPanel();\n return panel ? panel.text() : '';\n }\n}\n"],"names":[],"mappings":";;AAeA;AACM,MAAO,iBAAkB,SAAQ,gBAAgB,CAAA;AACrD,IAAA,OAAO,YAAY,GAAG,0BAA0B,CAAA;IAExC,cAAc,GAAG,IAAI,CAAC,0BAA0B,EAAE,CAAC,kBAAkB,CAAC,kBAAkB,CAAC,CAAA;IACzF,YAAY,GAAG,sBAAsB,CAAA;IACrC,cAAc,GAAG,0BAA0B,CAAA;IAC3C,kBAAkB,GAAG,sBAAsB,CAAA;IAC3C,kBAAkB,GAAG,sBAAsB,CAAA;AAEnD;;;;;AAKG;AACH,IAAA,OAAO,IAAI,CAET,OAAA,GAAiC,EAAE,EAAA;AAEnC,QAAA,OAAO,IAAI,gBAAgB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;KAC5C;;AAGA,IAAA,MAAM,IAAI,GAAA;AACR,QAAA,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,EAAE,CAAA;;;;AAK9B,QAAA,MAAM,IAAI,CAAC,aAAa,CAAC,YAAY,EAAE,EAAC,cAAc,EAAE,EAAE,EAAC,CAAC,CAAA;AAC5D,QAAA,MAAM,IAAI,CAAC,KAAK,EAAE,CAAA;AAClB,QAAA,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,cAAc,EAAE,CAAA;AACzC,QAAA,MAAM,KAAK,EAAE,aAAa,CAAC,cAAc,EAAE,EAAC,aAAa,EAAE,IAAI,CAAC,kBAAkB,EAAC,CAAC,CAAA;KACtF;;AAGA,IAAA,MAAM,IAAI,GAAA;AACR,QAAA,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,EAAE,CAAA;;;AAI9B,QAAA,MAAM,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,CAAA;AACpC,QAAA,MAAM,IAAI,CAAC,SAAS,EAAE,CAAA;AACtB,QAAA,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,cAAc,EAAE,CAAA;AACzC,QAAA,MAAM,KAAK,EAAE,aAAa,CAAC,cAAc,EAAE,EAAC,aAAa,EAAE,IAAI,CAAC,kBAAkB,EAAC,CAAC,CAAA;KACtF;;AAGA,IAAA,MAAM,MAAM,GAAA;AACV,QAAA,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,cAAc,EAAE,CAAA;AACzC,QAAA,OAAO,CAAC,CAAC,KAAK,IAAI,EAAE,MAAM,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAA;KAC9D;;AAGA,IAAA,MAAM,UAAU,GAAA;AACd,QAAA,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,EAAE,CAAA;QAC9B,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,cAAc,CAAC,CAAA;KAC3C;;AAGA,IAAA,MAAM,cAAc,GAAA;AAClB,QAAA,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,cAAc,EAAE,CAAA;AACzC,QAAA,OAAO,KAAK,GAAG,KAAK,CAAC,IAAI,EAAE,GAAG,EAAE,CAAA;KAClC;;;;;"}
1
+ {"version":3,"file":"testing.mjs","sources":["../../../../../../k8-fastbuild-ST-70f2edae98f4/bin/src/material/tooltip/testing/tooltip-harness.ts"],"sourcesContent":["/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {\n ComponentHarness,\n ComponentHarnessConstructor,\n HarnessPredicate,\n} from '@angular/cdk/testing';\nimport {TooltipHarnessFilters} from './tooltip-harness-filters';\n\n/** Harness for interacting with a mat-tooltip in tests. */\nexport class MatTooltipHarness extends ComponentHarness {\n static hostSelector = '.mat-mdc-tooltip-trigger';\n\n private _optionalPanel = this.documentRootLocatorFactory().locatorForOptional('.mat-mdc-tooltip');\n private _hiddenClass = 'mat-mdc-tooltip-hide';\n private _disabledClass = 'mat-mdc-tooltip-disabled';\n private _showAnimationName = 'mat-mdc-tooltip-show';\n private _hideAnimationName = 'mat-mdc-tooltip-hide';\n\n /**\n * Gets a `HarnessPredicate` that can be used to search for a tooltip trigger with specific\n * attributes.\n * @param options Options for narrowing the search.\n * @return a `HarnessPredicate` configured with the given options.\n */\n static with<T extends MatTooltipHarness>(\n this: ComponentHarnessConstructor<T>,\n options: TooltipHarnessFilters = {},\n ): HarnessPredicate<T> {\n return new HarnessPredicate(this, options);\n }\n\n /** Shows the tooltip. */\n async show(): Promise<void> {\n const host = await this.host();\n\n // We need to dispatch both `touchstart` and a hover event, because the tooltip binds\n // different events depending on the device. The `changedTouches` is there in case the\n // element has ripples.\n await host.dispatchEvent('touchstart', {changedTouches: []});\n await host.hover();\n const panel = await this._optionalPanel();\n await panel?.dispatchEvent('animationend', {animationName: this._showAnimationName});\n }\n\n /** Hides the tooltip. */\n async hide(): Promise<void> {\n const host = await this.host();\n\n // We need to dispatch both `touchstart` and a hover event, because\n // the tooltip binds different events depending on the device.\n await host.dispatchEvent('touchend');\n await host.mouseAway();\n const panel = await this._optionalPanel();\n await panel?.dispatchEvent('animationend', {animationName: this._hideAnimationName});\n }\n\n /** Gets whether the tooltip is open. */\n async isOpen(): Promise<boolean> {\n const panel = await this._optionalPanel();\n return !!panel && !(await panel.hasClass(this._hiddenClass));\n }\n\n /** Gets whether the tooltip is disabled */\n async isDisabled(): Promise<boolean> {\n const host = await this.host();\n return host.hasClass(this._disabledClass);\n }\n\n /** Gets a promise for the tooltip panel's text. */\n async getTooltipText(): Promise<string> {\n const panel = await this._optionalPanel();\n return panel ? panel.text() : '';\n }\n}\n"],"names":[],"mappings":";;AAeA;AACM,MAAO,iBAAkB,SAAQ,gBAAgB,CAAA;AACrD,IAAA,OAAO,YAAY,GAAG,0BAA0B,CAAA;IAExC,cAAc,GAAG,IAAI,CAAC,0BAA0B,EAAE,CAAC,kBAAkB,CAAC,kBAAkB,CAAC,CAAA;IACzF,YAAY,GAAG,sBAAsB,CAAA;IACrC,cAAc,GAAG,0BAA0B,CAAA;IAC3C,kBAAkB,GAAG,sBAAsB,CAAA;IAC3C,kBAAkB,GAAG,sBAAsB,CAAA;AAEnD;;;;;AAKG;AACH,IAAA,OAAO,IAAI,CAET,OAAA,GAAiC,EAAE,EAAA;AAEnC,QAAA,OAAO,IAAI,gBAAgB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;KAC5C;;AAGA,IAAA,MAAM,IAAI,GAAA;AACR,QAAA,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,EAAE,CAAA;;;;AAK9B,QAAA,MAAM,IAAI,CAAC,aAAa,CAAC,YAAY,EAAE,EAAC,cAAc,EAAE,EAAE,EAAC,CAAC,CAAA;AAC5D,QAAA,MAAM,IAAI,CAAC,KAAK,EAAE,CAAA;AAClB,QAAA,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,cAAc,EAAE,CAAA;AACzC,QAAA,MAAM,KAAK,EAAE,aAAa,CAAC,cAAc,EAAE,EAAC,aAAa,EAAE,IAAI,CAAC,kBAAkB,EAAC,CAAC,CAAA;KACtF;;AAGA,IAAA,MAAM,IAAI,GAAA;AACR,QAAA,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,EAAE,CAAA;;;AAI9B,QAAA,MAAM,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,CAAA;AACpC,QAAA,MAAM,IAAI,CAAC,SAAS,EAAE,CAAA;AACtB,QAAA,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,cAAc,EAAE,CAAA;AACzC,QAAA,MAAM,KAAK,EAAE,aAAa,CAAC,cAAc,EAAE,EAAC,aAAa,EAAE,IAAI,CAAC,kBAAkB,EAAC,CAAC,CAAA;KACtF;;AAGA,IAAA,MAAM,MAAM,GAAA;AACV,QAAA,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,cAAc,EAAE,CAAA;AACzC,QAAA,OAAO,CAAC,CAAC,KAAK,IAAI,EAAE,MAAM,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAA;KAC9D;;AAGA,IAAA,MAAM,UAAU,GAAA;AACd,QAAA,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,EAAE,CAAA;QAC9B,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,cAAc,CAAC,CAAA;KAC3C;;AAGA,IAAA,MAAM,cAAc,GAAA;AAClB,QAAA,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,cAAc,EAAE,CAAA;AACzC,QAAA,OAAO,KAAK,GAAG,KAAK,CAAC,IAAI,EAAE,GAAG,EAAE,CAAA;KAClC;;;;;"}
@@ -1,4 +1,4 @@
1
- export { f as MAT_TOOLTIP_DEFAULT_OPTIONS, e as MAT_TOOLTIP_DEFAULT_OPTIONS_FACTORY, b as MAT_TOOLTIP_SCROLL_STRATEGY, c as MAT_TOOLTIP_SCROLL_STRATEGY_FACTORY, d as MAT_TOOLTIP_SCROLL_STRATEGY_FACTORY_PROVIDER, M as MatTooltip, a as MatTooltipModule, S as SCROLL_THROTTLE_MS, T as TOOLTIP_PANEL_CLASS, h as TooltipComponent, g as getMatTooltipInvalidPositionError } from './module-47e3be58.mjs';
1
+ export { f as MAT_TOOLTIP_DEFAULT_OPTIONS, e as MAT_TOOLTIP_DEFAULT_OPTIONS_FACTORY, b as MAT_TOOLTIP_SCROLL_STRATEGY, c as MAT_TOOLTIP_SCROLL_STRATEGY_FACTORY, d as MAT_TOOLTIP_SCROLL_STRATEGY_FACTORY_PROVIDER, M as MatTooltip, a as MatTooltipModule, S as SCROLL_THROTTLE_MS, T as TOOLTIP_PANEL_CLASS, h as TooltipComponent, g as getMatTooltipInvalidPositionError } from './module-4a8034fc.mjs';
2
2
  import '@angular/core';
3
3
  import '@angular/cdk/a11y';
4
4
  import '@angular/cdk/overlay';
@@ -11,6 +11,7 @@ import '@angular/cdk/platform';
11
11
  import '@angular/cdk/bidi';
12
12
  import '@angular/cdk/portal';
13
13
  import 'rxjs';
14
+ import './animation-5f89c9a6.mjs';
14
15
  import './common-module-2d64df09.mjs';
15
16
 
16
17
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"tooltip.mjs","sources":["../../../../../../src/material/tooltip/tooltip-animations.ts"],"sourcesContent":["/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\n/**\n * Animations used by MatTooltip.\n * @docs-private\n * @deprecated No longer being used, to be removed.\n * @breaking-change 21.0.0\n */\nexport const matTooltipAnimations: {\n readonly tooltipState: any;\n} = {\n // Represents:\n // trigger('state', [\n // state('initial, void, hidden', style({opacity: 0, transform: 'scale(0.8)'})),\n // state('visible', style({transform: 'scale(1)'})),\n // transition('* => visible', animate('150ms cubic-bezier(0, 0, 0.2, 1)')),\n // transition('* => hidden', animate('75ms cubic-bezier(0.4, 0, 1, 1)')),\n // ])\n\n /** Animation that transitions a tooltip in and out. */\n tooltipState: {\n type: 7,\n name: 'state',\n definitions: [\n {\n type: 0,\n name: 'initial, void, hidden',\n styles: {type: 6, styles: {opacity: 0, transform: 'scale(0.8)'}, offset: null},\n },\n {\n type: 0,\n name: 'visible',\n styles: {type: 6, styles: {transform: 'scale(1)'}, offset: null},\n },\n {\n type: 1,\n expr: '* => visible',\n animation: {type: 4, styles: null, timings: '150ms cubic-bezier(0, 0, 0.2, 1)'},\n options: null,\n },\n {\n type: 1,\n expr: '* => hidden',\n animation: {type: 4, styles: null, timings: '75ms cubic-bezier(0.4, 0, 1, 1)'},\n options: null,\n },\n ],\n options: {},\n },\n};\n"],"names":[],"mappings":";;;;;;;;;;;;;;;AAQA;;;;;AAKG;AACU,MAAA,oBAAoB,GAE7B;;;;;;;;;AAUF,IAAA,YAAY,EAAE;AACZ,QAAA,IAAI,EAAE,CAAC;AACP,QAAA,IAAI,EAAE,OAAO;AACb,QAAA,WAAW,EAAE;AACX,YAAA;AACE,gBAAA,IAAI,EAAE,CAAC;AACP,gBAAA,IAAI,EAAE,uBAAuB;gBAC7B,MAAM,EAAE,EAAC,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,EAAC,OAAO,EAAE,CAAC,EAAE,SAAS,EAAE,YAAY,EAAC,EAAE,MAAM,EAAE,IAAI,EAAC;AAC/E,aAAA;AACD,YAAA;AACE,gBAAA,IAAI,EAAE,CAAC;AACP,gBAAA,IAAI,EAAE,SAAS;AACf,gBAAA,MAAM,EAAE,EAAC,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,EAAC,SAAS,EAAE,UAAU,EAAC,EAAE,MAAM,EAAE,IAAI,EAAC;AACjE,aAAA;AACD,YAAA;AACE,gBAAA,IAAI,EAAE,CAAC;AACP,gBAAA,IAAI,EAAE,cAAc;AACpB,gBAAA,SAAS,EAAE,EAAC,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,kCAAkC,EAAC;AAC/E,gBAAA,OAAO,EAAE,IAAI;AACd,aAAA;AACD,YAAA;AACE,gBAAA,IAAI,EAAE,CAAC;AACP,gBAAA,IAAI,EAAE,aAAa;AACnB,gBAAA,SAAS,EAAE,EAAC,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,iCAAiC,EAAC;AAC9E,gBAAA,OAAO,EAAE,IAAI;AACd,aAAA;AACF,SAAA;AACD,QAAA,OAAO,EAAE,EAAE;AACZ,KAAA;;;;;"}
1
+ {"version":3,"file":"tooltip.mjs","sources":["../../../../../../src/material/tooltip/tooltip-animations.ts"],"sourcesContent":["/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\n/**\n * Animations used by MatTooltip.\n * @docs-private\n * @deprecated No longer being used, to be removed.\n * @breaking-change 21.0.0\n */\nexport const matTooltipAnimations: {\n readonly tooltipState: any;\n} = {\n // Represents:\n // trigger('state', [\n // state('initial, void, hidden', style({opacity: 0, transform: 'scale(0.8)'})),\n // state('visible', style({transform: 'scale(1)'})),\n // transition('* => visible', animate('150ms cubic-bezier(0, 0, 0.2, 1)')),\n // transition('* => hidden', animate('75ms cubic-bezier(0.4, 0, 1, 1)')),\n // ])\n\n /** Animation that transitions a tooltip in and out. */\n tooltipState: {\n type: 7,\n name: 'state',\n definitions: [\n {\n type: 0,\n name: 'initial, void, hidden',\n styles: {type: 6, styles: {opacity: 0, transform: 'scale(0.8)'}, offset: null},\n },\n {\n type: 0,\n name: 'visible',\n styles: {type: 6, styles: {transform: 'scale(1)'}, offset: null},\n },\n {\n type: 1,\n expr: '* => visible',\n animation: {type: 4, styles: null, timings: '150ms cubic-bezier(0, 0, 0.2, 1)'},\n options: null,\n },\n {\n type: 1,\n expr: '* => hidden',\n animation: {type: 4, styles: null, timings: '75ms cubic-bezier(0.4, 0, 1, 1)'},\n options: null,\n },\n ],\n options: {},\n },\n};\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAQA;;;;;AAKG;AACU,MAAA,oBAAoB,GAE7B;;;;;;;;;AAUF,IAAA,YAAY,EAAE;AACZ,QAAA,IAAI,EAAE,CAAC;AACP,QAAA,IAAI,EAAE,OAAO;AACb,QAAA,WAAW,EAAE;AACX,YAAA;AACE,gBAAA,IAAI,EAAE,CAAC;AACP,gBAAA,IAAI,EAAE,uBAAuB;gBAC7B,MAAM,EAAE,EAAC,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,EAAC,OAAO,EAAE,CAAC,EAAE,SAAS,EAAE,YAAY,EAAC,EAAE,MAAM,EAAE,IAAI,EAAC;AAC/E,aAAA;AACD,YAAA;AACE,gBAAA,IAAI,EAAE,CAAC;AACP,gBAAA,IAAI,EAAE,SAAS;AACf,gBAAA,MAAM,EAAE,EAAC,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,EAAC,SAAS,EAAE,UAAU,EAAC,EAAE,MAAM,EAAE,IAAI,EAAC;AACjE,aAAA;AACD,YAAA;AACE,gBAAA,IAAI,EAAE,CAAC;AACP,gBAAA,IAAI,EAAE,cAAc;AACpB,gBAAA,SAAS,EAAE,EAAC,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,kCAAkC,EAAC;AAC/E,gBAAA,OAAO,EAAE,IAAI;AACd,aAAA;AACD,YAAA;AACE,gBAAA,IAAI,EAAE,CAAC;AACP,gBAAA,IAAI,EAAE,aAAa;AACnB,gBAAA,SAAS,EAAE,EAAC,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,iCAAiC,EAAC;AAC9E,gBAAA,OAAO,EAAE,IAAI;AACd,aAAA;AACF,SAAA;AACD,QAAA,OAAO,EAAE,EAAE;AACZ,KAAA;;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"testing.mjs","sources":["../../../../../../../src/material/tree/testing/node-harness.ts","../../../../../../../src/material/tree/testing/tree-harness.ts"],"sourcesContent":["/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {\n ComponentHarnessConstructor,\n ContentContainerComponentHarness,\n HarnessPredicate,\n} from '@angular/cdk/testing';\nimport {TreeNodeHarnessFilters} from './tree-harness-filters';\nimport {coerceBooleanProperty, coerceNumberProperty} from '@angular/cdk/coercion';\n\n/** Harness for interacting with a standard Angular Material tree node. */\nexport class MatTreeNodeHarness extends ContentContainerComponentHarness<string> {\n /** The selector of the host element of a `MatTreeNode` instance. */\n static hostSelector = '.mat-tree-node, .mat-nested-tree-node';\n\n _toggle = this.locatorForOptional('[matTreeNodeToggle]');\n\n /**\n * Gets a `HarnessPredicate` that can be used to search for a tree node with specific attributes.\n * @param options Options for narrowing the search\n * @return a `HarnessPredicate` configured with the given options.\n */\n static with(options: TreeNodeHarnessFilters = {}): HarnessPredicate<MatTreeNodeHarness> {\n return getNodePredicate(MatTreeNodeHarness, options);\n }\n\n /** Whether the tree node is expanded. */\n async isExpanded(): Promise<boolean> {\n return coerceBooleanProperty(await (await this.host()).getAttribute('aria-expanded'));\n }\n\n /** Whether the tree node is expandable. */\n async isExpandable(): Promise<boolean> {\n return (await (await this.host()).getAttribute('aria-expanded')) !== null;\n }\n\n /** Whether the tree node is disabled. */\n async isDisabled(): Promise<boolean> {\n return coerceBooleanProperty(await (await this.host()).getProperty('aria-disabled'));\n }\n\n /** Gets the level of the tree node. Note that this gets the aria-level and is 1 indexed. */\n async getLevel(): Promise<number> {\n return coerceNumberProperty(await (await this.host()).getAttribute('aria-level'));\n }\n\n /** Gets the tree node's text. */\n async getText(): Promise<string> {\n return (await this.host()).text({exclude: '.mat-tree-node, .mat-nested-tree-node, button'});\n }\n\n /** Toggles node between expanded/collapsed. Only works when node is not disabled. */\n async toggle(): Promise<void> {\n const toggle = await this._toggle();\n if (toggle) {\n return toggle.click();\n }\n }\n\n /** Expands the node if it is collapsed. Only works when node is not disabled. */\n async expand(): Promise<void> {\n if (!(await this.isExpanded())) {\n await this.toggle();\n }\n }\n\n /** Collapses the node if it is expanded. Only works when node is not disabled. */\n async collapse(): Promise<void> {\n if (await this.isExpanded()) {\n await this.toggle();\n }\n }\n}\n\nfunction getNodePredicate<T extends MatTreeNodeHarness>(\n type: ComponentHarnessConstructor<T>,\n options: TreeNodeHarnessFilters,\n): HarnessPredicate<T> {\n return new HarnessPredicate(type, options)\n .addOption('text', options.text, (harness, text) =>\n HarnessPredicate.stringMatches(harness.getText(), text),\n )\n .addOption(\n 'disabled',\n options.disabled,\n async (harness, disabled) => (await harness.isDisabled()) === disabled,\n )\n .addOption(\n 'expanded',\n options.expanded,\n async (harness, expanded) => (await harness.isExpanded()) === expanded,\n )\n .addOption(\n 'level',\n options.level,\n async (harness, level) => (await harness.getLevel()) === level,\n );\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {ComponentHarness, HarnessPredicate, parallel} from '@angular/cdk/testing';\nimport {MatTreeNodeHarness} from './node-harness';\nimport {TreeHarnessFilters, TreeNodeHarnessFilters} from './tree-harness-filters';\n\nexport type TextTree = {\n text?: string;\n children?: TextTree[];\n};\n\n/** Harness for interacting with a standard mat-tree in tests. */\nexport class MatTreeHarness extends ComponentHarness {\n /** The selector for the host element of a `MatTableHarness` instance. */\n static hostSelector = '.mat-tree';\n\n /**\n * Gets a `HarnessPredicate` that can be used to search for a tree with specific attributes.\n * @param options Options for narrowing the search\n * @return a `HarnessPredicate` configured with the given options.\n */\n static with(options: TreeHarnessFilters = {}): HarnessPredicate<MatTreeHarness> {\n return new HarnessPredicate(MatTreeHarness, options);\n }\n\n /** Gets all of the nodes in the tree. */\n async getNodes(filter: TreeNodeHarnessFilters = {}): Promise<MatTreeNodeHarness[]> {\n return this.locatorForAll(MatTreeNodeHarness.with(filter))();\n }\n\n /**\n * Gets an object representation for the visible tree structure\n * If a node is under an unexpanded node it will not be included.\n * Eg.\n * Tree (all nodes expanded):\n * `\n * <mat-tree>\n * <mat-tree-node>Node 1<mat-tree-node>\n * <mat-nested-tree-node>\n * Node 2\n * <mat-nested-tree-node>\n * Node 2.1\n * <mat-tree-node>\n * Node 2.1.1\n * <mat-tree-node>\n * <mat-nested-tree-node>\n * <mat-tree-node>\n * Node 2.2\n * <mat-tree-node>\n * <mat-nested-tree-node>\n * </mat-tree>`\n *\n * Tree structure:\n * {\n * children: [\n * {\n * text: 'Node 1',\n * children: [\n * {\n * text: 'Node 2',\n * children: [\n * {\n * text: 'Node 2.1',\n * children: [{text: 'Node 2.1.1'}]\n * },\n * {text: 'Node 2.2'}\n * ]\n * }\n * ]\n * }\n * ]\n * };\n */\n async getTreeStructure(): Promise<TextTree> {\n const nodes = await this.getNodes();\n const nodeInformation = await parallel(() =>\n nodes.map(node => {\n return parallel(() => [node.getLevel(), node.getText(), node.isExpanded()]);\n }),\n );\n return this._getTreeStructure(nodeInformation, 1, true);\n }\n\n /**\n * Recursively collect the structured text of the tree nodes.\n * @param nodes A list of tree nodes\n * @param level The level of nodes that are being accounted for during this iteration\n * @param parentExpanded Whether the parent of the first node in param nodes is expanded\n */\n private _getTreeStructure(\n nodes: [number, string, boolean][],\n level: number,\n parentExpanded: boolean,\n ): TextTree {\n const result: TextTree = {};\n for (let i = 0; i < nodes.length; i++) {\n const [nodeLevel, text, expanded] = nodes[i];\n const nextNodeLevel = nodes[i + 1]?.[0] ?? -1;\n\n // Return the accumulated value for the current level once we reach a shallower level node\n if (nodeLevel < level) {\n return result;\n }\n // Skip deeper level nodes during this iteration, they will be picked up in a later iteration\n if (nodeLevel > level) {\n continue;\n }\n // Only add to representation if it is visible (parent is expanded)\n if (parentExpanded) {\n // Collect the data under this node according to the following rules:\n // 1. If the next node in the list is a sibling of the current node add it to the child list\n // 2. If the next node is a child of the current node, get the sub-tree structure for the\n // child and add it under this node\n // 3. If the next node has a shallower level, we've reached the end of the child nodes for\n // the current parent.\n if (nextNodeLevel === level) {\n this._addChildToNode(result, {text});\n } else if (nextNodeLevel > level) {\n let children = this._getTreeStructure(\n nodes.slice(i + 1),\n nextNodeLevel,\n expanded,\n )?.children;\n let child = children ? {text, children} : {text};\n this._addChildToNode(result, child);\n } else {\n this._addChildToNode(result, {text});\n return result;\n }\n }\n }\n return result;\n }\n\n private _addChildToNode(result: TextTree, child: TextTree) {\n result.children ? result.children.push(child) : (result.children = [child]);\n }\n}\n"],"names":[],"mappings":";;;AAgBA;AACM,MAAO,kBAAmB,SAAQ,gCAAwC,CAAA;;AAE9E,IAAA,OAAO,YAAY,GAAG,uCAAuC,CAAA;AAE7D,IAAA,OAAO,GAAG,IAAI,CAAC,kBAAkB,CAAC,qBAAqB,CAAC,CAAA;AAExD;;;;AAIG;AACH,IAAA,OAAO,IAAI,CAAC,OAAA,GAAkC,EAAE,EAAA;AAC9C,QAAA,OAAO,gBAAgB,CAAC,kBAAkB,EAAE,OAAO,CAAC,CAAA;KACtD;;AAGA,IAAA,MAAM,UAAU,GAAA;AACd,QAAA,OAAO,qBAAqB,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,IAAI,EAAE,EAAE,YAAY,CAAC,eAAe,CAAC,CAAC,CAAA;KACvF;;AAGA,IAAA,MAAM,YAAY,GAAA;AAChB,QAAA,OAAO,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,IAAI,EAAE,EAAE,YAAY,CAAC,eAAe,CAAC,MAAM,IAAI,CAAA;KAC3E;;AAGA,IAAA,MAAM,UAAU,GAAA;AACd,QAAA,OAAO,qBAAqB,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,IAAI,EAAE,EAAE,WAAW,CAAC,eAAe,CAAC,CAAC,CAAA;KACtF;;AAGA,IAAA,MAAM,QAAQ,GAAA;AACZ,QAAA,OAAO,oBAAoB,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,IAAI,EAAE,EAAE,YAAY,CAAC,YAAY,CAAC,CAAC,CAAA;KACnF;;AAGA,IAAA,MAAM,OAAO,GAAA;AACX,QAAA,OAAO,CAAC,MAAM,IAAI,CAAC,IAAI,EAAE,EAAE,IAAI,CAAC,EAAC,OAAO,EAAE,+CAA+C,EAAC,CAAC,CAAA;KAC7F;;AAGA,IAAA,MAAM,MAAM,GAAA;AACV,QAAA,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,EAAE,CAAA;QACnC,IAAI,MAAM,EAAE;AACV,YAAA,OAAO,MAAM,CAAC,KAAK,EAAE,CAAA;SACvB;KACF;;AAGA,IAAA,MAAM,MAAM,GAAA;QACV,IAAI,EAAE,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC,EAAE;AAC9B,YAAA,MAAM,IAAI,CAAC,MAAM,EAAE,CAAA;SACrB;KACF;;AAGA,IAAA,MAAM,QAAQ,GAAA;AACZ,QAAA,IAAI,MAAM,IAAI,CAAC,UAAU,EAAE,EAAE;AAC3B,YAAA,MAAM,IAAI,CAAC,MAAM,EAAE,CAAA;SACrB;KACF;;AAGF,SAAS,gBAAgB,CACvB,IAAoC,EACpC,OAA+B,EAAA;AAE/B,IAAA,OAAO,IAAI,gBAAgB,CAAC,IAAI,EAAE,OAAO,CAAA;SACtC,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC,OAAO,EAAE,IAAI,KAC7C,gBAAgB,CAAC,aAAa,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,IAAI,CAAC,CAAA;SAExD,SAAS,CACR,UAAU,EACV,OAAO,CAAC,QAAQ,EAChB,OAAO,OAAO,EAAE,QAAQ,KAAK,CAAC,MAAM,OAAO,CAAC,UAAU,EAAE,MAAM,QAAQ,CAAA;SAEvE,SAAS,CACR,UAAU,EACV,OAAO,CAAC,QAAQ,EAChB,OAAO,OAAO,EAAE,QAAQ,KAAK,CAAC,MAAM,OAAO,CAAC,UAAU,EAAE,MAAM,QAAQ,CAAA;SAEvE,SAAS,CACR,OAAO,EACP,OAAO,CAAC,KAAK,EACb,OAAO,OAAO,EAAE,KAAK,KAAK,CAAC,MAAM,OAAO,CAAC,QAAQ,EAAE,MAAM,KAAK,CAC/D,CAAA;AACL;;ACtFA;AACM,MAAO,cAAe,SAAQ,gBAAgB,CAAA;;AAElD,IAAA,OAAO,YAAY,GAAG,WAAW,CAAA;AAEjC;;;;AAIG;AACH,IAAA,OAAO,IAAI,CAAC,OAAA,GAA8B,EAAE,EAAA;AAC1C,QAAA,OAAO,IAAI,gBAAgB,CAAC,cAAc,EAAE,OAAO,CAAC,CAAA;KACtD;;AAGA,IAAA,MAAM,QAAQ,CAAC,MAAA,GAAiC,EAAE,EAAA;AAChD,QAAA,OAAO,IAAI,CAAC,aAAa,CAAC,kBAAkB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAA;KAC9D;AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA0CG;AACH,IAAA,MAAM,gBAAgB,GAAA;AACpB,QAAA,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAA;AACnC,QAAA,MAAM,eAAe,GAAG,MAAM,QAAQ,CAAC,MACrC,KAAK,CAAC,GAAG,CAAC,IAAI,IAAG;YACf,OAAO,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,IAAI,CAAC,OAAO,EAAE,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,CAAA;SAC5E,CAAC,CACH,CAAA;QACD,OAAO,IAAI,CAAC,iBAAiB,CAAC,eAAe,EAAE,CAAC,EAAE,IAAI,CAAC,CAAA;KACzD;AAEA;;;;;AAKG;AACK,IAAA,iBAAiB,CACvB,KAAkC,EAClC,KAAa,EACb,cAAuB,EAAA;QAEvB,MAAM,MAAM,GAAa,EAAE,CAAA;AAC3B,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACrC,YAAA,MAAM,CAAC,SAAS,EAAE,IAAI,EAAE,QAAQ,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAA;AAC5C,YAAA,MAAM,aAAa,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAA;;AAG7C,YAAA,IAAI,SAAS,GAAG,KAAK,EAAE;AACrB,gBAAA,OAAO,MAAM,CAAA;aACf;;AAEA,YAAA,IAAI,SAAS,GAAG,KAAK,EAAE;gBACrB,SAAS;aACX;;YAEA,IAAI,cAAc,EAAE;;;;;;;AAOlB,gBAAA,IAAI,aAAa,KAAK,KAAK,EAAE;oBAC3B,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,EAAC,IAAI,EAAC,CAAC,CAAA;iBACtC;AAAO,qBAAA,IAAI,aAAa,GAAG,KAAK,EAAE;oBAChC,IAAI,QAAQ,GAAG,IAAI,CAAC,iBAAiB,CACnC,KAAK,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,EAClB,aAAa,EACb,QAAQ,CACT,EAAE,QAAQ,CAAA;AACX,oBAAA,IAAI,KAAK,GAAG,QAAQ,GAAG,EAAC,IAAI,EAAE,QAAQ,EAAC,GAAG,EAAC,IAAI,EAAC,CAAA;AAChD,oBAAA,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA;iBACrC;qBAAO;oBACL,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,EAAC,IAAI,EAAC,CAAC,CAAA;AACpC,oBAAA,OAAO,MAAM,CAAA;iBACf;aACF;SACF;AACA,QAAA,OAAO,MAAM,CAAA;KACf;IAEQ,eAAe,CAAC,MAAgB,EAAE,KAAe,EAAA;QACvD,MAAM,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,QAAQ,GAAG,CAAC,KAAK,CAAC,CAAC,CAAA;KAC7E;;;;;"}
1
+ {"version":3,"file":"testing.mjs","sources":["../../../../../../k8-fastbuild-ST-70f2edae98f4/bin/src/material/tree/testing/node-harness.ts","../../../../../../k8-fastbuild-ST-70f2edae98f4/bin/src/material/tree/testing/tree-harness.ts"],"sourcesContent":["/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {\n ComponentHarnessConstructor,\n ContentContainerComponentHarness,\n HarnessPredicate,\n} from '@angular/cdk/testing';\nimport {TreeNodeHarnessFilters} from './tree-harness-filters';\nimport {coerceBooleanProperty, coerceNumberProperty} from '@angular/cdk/coercion';\n\n/** Harness for interacting with a standard Angular Material tree node. */\nexport class MatTreeNodeHarness extends ContentContainerComponentHarness<string> {\n /** The selector of the host element of a `MatTreeNode` instance. */\n static hostSelector = '.mat-tree-node, .mat-nested-tree-node';\n\n _toggle = this.locatorForOptional('[matTreeNodeToggle]');\n\n /**\n * Gets a `HarnessPredicate` that can be used to search for a tree node with specific attributes.\n * @param options Options for narrowing the search\n * @return a `HarnessPredicate` configured with the given options.\n */\n static with(options: TreeNodeHarnessFilters = {}): HarnessPredicate<MatTreeNodeHarness> {\n return getNodePredicate(MatTreeNodeHarness, options);\n }\n\n /** Whether the tree node is expanded. */\n async isExpanded(): Promise<boolean> {\n return coerceBooleanProperty(await (await this.host()).getAttribute('aria-expanded'));\n }\n\n /** Whether the tree node is expandable. */\n async isExpandable(): Promise<boolean> {\n return (await (await this.host()).getAttribute('aria-expanded')) !== null;\n }\n\n /** Whether the tree node is disabled. */\n async isDisabled(): Promise<boolean> {\n return coerceBooleanProperty(await (await this.host()).getProperty('aria-disabled'));\n }\n\n /** Gets the level of the tree node. Note that this gets the aria-level and is 1 indexed. */\n async getLevel(): Promise<number> {\n return coerceNumberProperty(await (await this.host()).getAttribute('aria-level'));\n }\n\n /** Gets the tree node's text. */\n async getText(): Promise<string> {\n return (await this.host()).text({exclude: '.mat-tree-node, .mat-nested-tree-node, button'});\n }\n\n /** Toggles node between expanded/collapsed. Only works when node is not disabled. */\n async toggle(): Promise<void> {\n const toggle = await this._toggle();\n if (toggle) {\n return toggle.click();\n }\n }\n\n /** Expands the node if it is collapsed. Only works when node is not disabled. */\n async expand(): Promise<void> {\n if (!(await this.isExpanded())) {\n await this.toggle();\n }\n }\n\n /** Collapses the node if it is expanded. Only works when node is not disabled. */\n async collapse(): Promise<void> {\n if (await this.isExpanded()) {\n await this.toggle();\n }\n }\n}\n\nfunction getNodePredicate<T extends MatTreeNodeHarness>(\n type: ComponentHarnessConstructor<T>,\n options: TreeNodeHarnessFilters,\n): HarnessPredicate<T> {\n return new HarnessPredicate(type, options)\n .addOption('text', options.text, (harness, text) =>\n HarnessPredicate.stringMatches(harness.getText(), text),\n )\n .addOption(\n 'disabled',\n options.disabled,\n async (harness, disabled) => (await harness.isDisabled()) === disabled,\n )\n .addOption(\n 'expanded',\n options.expanded,\n async (harness, expanded) => (await harness.isExpanded()) === expanded,\n )\n .addOption(\n 'level',\n options.level,\n async (harness, level) => (await harness.getLevel()) === level,\n );\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {ComponentHarness, HarnessPredicate, parallel} from '@angular/cdk/testing';\nimport {MatTreeNodeHarness} from './node-harness';\nimport {TreeHarnessFilters, TreeNodeHarnessFilters} from './tree-harness-filters';\n\nexport type TextTree = {\n text?: string;\n children?: TextTree[];\n};\n\n/** Harness for interacting with a standard mat-tree in tests. */\nexport class MatTreeHarness extends ComponentHarness {\n /** The selector for the host element of a `MatTableHarness` instance. */\n static hostSelector = '.mat-tree';\n\n /**\n * Gets a `HarnessPredicate` that can be used to search for a tree with specific attributes.\n * @param options Options for narrowing the search\n * @return a `HarnessPredicate` configured with the given options.\n */\n static with(options: TreeHarnessFilters = {}): HarnessPredicate<MatTreeHarness> {\n return new HarnessPredicate(MatTreeHarness, options);\n }\n\n /** Gets all of the nodes in the tree. */\n async getNodes(filter: TreeNodeHarnessFilters = {}): Promise<MatTreeNodeHarness[]> {\n return this.locatorForAll(MatTreeNodeHarness.with(filter))();\n }\n\n /**\n * Gets an object representation for the visible tree structure\n * If a node is under an unexpanded node it will not be included.\n * Eg.\n * Tree (all nodes expanded):\n * `\n * <mat-tree>\n * <mat-tree-node>Node 1<mat-tree-node>\n * <mat-nested-tree-node>\n * Node 2\n * <mat-nested-tree-node>\n * Node 2.1\n * <mat-tree-node>\n * Node 2.1.1\n * <mat-tree-node>\n * <mat-nested-tree-node>\n * <mat-tree-node>\n * Node 2.2\n * <mat-tree-node>\n * <mat-nested-tree-node>\n * </mat-tree>`\n *\n * Tree structure:\n * {\n * children: [\n * {\n * text: 'Node 1',\n * children: [\n * {\n * text: 'Node 2',\n * children: [\n * {\n * text: 'Node 2.1',\n * children: [{text: 'Node 2.1.1'}]\n * },\n * {text: 'Node 2.2'}\n * ]\n * }\n * ]\n * }\n * ]\n * };\n */\n async getTreeStructure(): Promise<TextTree> {\n const nodes = await this.getNodes();\n const nodeInformation = await parallel(() =>\n nodes.map(node => {\n return parallel(() => [node.getLevel(), node.getText(), node.isExpanded()]);\n }),\n );\n return this._getTreeStructure(nodeInformation, 1, true);\n }\n\n /**\n * Recursively collect the structured text of the tree nodes.\n * @param nodes A list of tree nodes\n * @param level The level of nodes that are being accounted for during this iteration\n * @param parentExpanded Whether the parent of the first node in param nodes is expanded\n */\n private _getTreeStructure(\n nodes: [number, string, boolean][],\n level: number,\n parentExpanded: boolean,\n ): TextTree {\n const result: TextTree = {};\n for (let i = 0; i < nodes.length; i++) {\n const [nodeLevel, text, expanded] = nodes[i];\n const nextNodeLevel = nodes[i + 1]?.[0] ?? -1;\n\n // Return the accumulated value for the current level once we reach a shallower level node\n if (nodeLevel < level) {\n return result;\n }\n // Skip deeper level nodes during this iteration, they will be picked up in a later iteration\n if (nodeLevel > level) {\n continue;\n }\n // Only add to representation if it is visible (parent is expanded)\n if (parentExpanded) {\n // Collect the data under this node according to the following rules:\n // 1. If the next node in the list is a sibling of the current node add it to the child list\n // 2. If the next node is a child of the current node, get the sub-tree structure for the\n // child and add it under this node\n // 3. If the next node has a shallower level, we've reached the end of the child nodes for\n // the current parent.\n if (nextNodeLevel === level) {\n this._addChildToNode(result, {text});\n } else if (nextNodeLevel > level) {\n let children = this._getTreeStructure(\n nodes.slice(i + 1),\n nextNodeLevel,\n expanded,\n )?.children;\n let child = children ? {text, children} : {text};\n this._addChildToNode(result, child);\n } else {\n this._addChildToNode(result, {text});\n return result;\n }\n }\n }\n return result;\n }\n\n private _addChildToNode(result: TextTree, child: TextTree) {\n result.children ? result.children.push(child) : (result.children = [child]);\n }\n}\n"],"names":[],"mappings":"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"}
@@ -16,15 +16,15 @@
16
16
  @include _theme-from-tokens(inspection.get-theme-tokens($theme, base));
17
17
  } @else {
18
18
  @include sass-utils.current-selector-or-root() {
19
- @include token-utils.create-token-values(
19
+ @include token-utils.create-token-values-mixed(
20
20
  tokens-mdc-filled-text-field.$prefix,
21
21
  tokens-mdc-filled-text-field.get-unthemable-tokens()
22
22
  );
23
- @include token-utils.create-token-values(
23
+ @include token-utils.create-token-values-mixed(
24
24
  tokens-mdc-outlined-text-field.$prefix,
25
25
  tokens-mdc-outlined-text-field.get-unthemable-tokens()
26
26
  );
27
- @include token-utils.create-token-values(
27
+ @include token-utils.create-token-values-mixed(
28
28
  tokens-mat-form-field.$prefix,
29
29
  tokens-mat-form-field.get-unthemable-tokens()
30
30
  );
@@ -42,45 +42,45 @@
42
42
  @include _theme-from-tokens(inspection.get-theme-tokens($theme, color), $options...);
43
43
  } @else {
44
44
  @include sass-utils.current-selector-or-root() {
45
- @include token-utils.create-token-values(
45
+ @include token-utils.create-token-values-mixed(
46
46
  tokens-mdc-filled-text-field.$prefix,
47
47
  tokens-mdc-filled-text-field.get-color-tokens($theme)
48
48
  );
49
- @include token-utils.create-token-values(
49
+ @include token-utils.create-token-values-mixed(
50
50
  tokens-mdc-outlined-text-field.$prefix,
51
51
  tokens-mdc-outlined-text-field.get-color-tokens($theme)
52
52
  );
53
- @include token-utils.create-token-values(
53
+ @include token-utils.create-token-values-mixed(
54
54
  tokens-mat-form-field.$prefix,
55
55
  tokens-mat-form-field.get-color-tokens($theme)
56
56
  );
57
57
  }
58
58
 
59
59
  .mat-mdc-form-field.mat-accent {
60
- @include token-utils.create-token-values(
60
+ @include token-utils.create-token-values-mixed(
61
61
  tokens-mdc-filled-text-field.$prefix,
62
62
  tokens-mdc-filled-text-field.private-get-color-palette-color-tokens($theme, accent)
63
63
  );
64
- @include token-utils.create-token-values(
64
+ @include token-utils.create-token-values-mixed(
65
65
  tokens-mdc-outlined-text-field.$prefix,
66
66
  tokens-mdc-outlined-text-field.private-get-color-palette-color-tokens($theme, accent)
67
67
  );
68
- @include token-utils.create-token-values(
68
+ @include token-utils.create-token-values-mixed(
69
69
  tokens-mat-form-field.$prefix,
70
70
  tokens-mat-form-field.private-get-color-palette-color-tokens($theme, accent)
71
71
  );
72
72
  }
73
73
 
74
74
  .mat-mdc-form-field.mat-warn {
75
- @include token-utils.create-token-values(
75
+ @include token-utils.create-token-values-mixed(
76
76
  tokens-mdc-filled-text-field.$prefix,
77
77
  tokens-mdc-filled-text-field.private-get-color-palette-color-tokens($theme, warn)
78
78
  );
79
- @include token-utils.create-token-values(
79
+ @include token-utils.create-token-values-mixed(
80
80
  tokens-mdc-outlined-text-field.$prefix,
81
81
  tokens-mdc-outlined-text-field.private-get-color-palette-color-tokens($theme, warn)
82
82
  );
83
- @include token-utils.create-token-values(
83
+ @include token-utils.create-token-values-mixed(
84
84
  tokens-mat-form-field.$prefix,
85
85
  tokens-mat-form-field.private-get-color-palette-color-tokens($theme, warn)
86
86
  );
@@ -95,15 +95,15 @@
95
95
  @include _theme-from-tokens(inspection.get-theme-tokens($theme, typography));
96
96
  } @else {
97
97
  @include sass-utils.current-selector-or-root() {
98
- @include token-utils.create-token-values(
98
+ @include token-utils.create-token-values-mixed(
99
99
  tokens-mdc-filled-text-field.$prefix,
100
100
  tokens-mdc-filled-text-field.get-typography-tokens($theme)
101
101
  );
102
- @include token-utils.create-token-values(
102
+ @include token-utils.create-token-values-mixed(
103
103
  tokens-mdc-outlined-text-field.$prefix,
104
104
  tokens-mdc-outlined-text-field.get-typography-tokens($theme)
105
105
  );
106
- @include token-utils.create-token-values(
106
+ @include token-utils.create-token-values-mixed(
107
107
  tokens-mat-form-field.$prefix,
108
108
  tokens-mat-form-field.get-typography-tokens($theme)
109
109
  );
@@ -118,7 +118,7 @@
118
118
  @include _theme-from-tokens(inspection.get-theme-tokens($theme, density));
119
119
  } @else {
120
120
  @include sass-utils.current-selector-or-root() {
121
- @include token-utils.create-token-values(
121
+ @include token-utils.create-token-values-mixed(
122
122
  tokens-mat-form-field.$prefix,
123
123
  tokens-mat-form-field.get-density-tokens($theme)
124
124
  );
@@ -27,7 +27,7 @@
27
27
  @include _theme-from-tokens(inspection.get-theme-tokens($theme, typography));
28
28
  } @else {
29
29
  @include sass-utils.current-selector-or-root() {
30
- @include token-utils.create-token-values(
30
+ @include token-utils.create-token-values-mixed(
31
31
  tokens-mat-grid-list.$prefix,
32
32
  tokens-mat-grid-list.get-typography-tokens($theme)
33
33
  );
@@ -8,7 +8,7 @@
8
8
  @mixin _palette-colors($theme, $palette-name) {
9
9
  $color: inspection.get-theme-color($theme, $palette-name, text);
10
10
  $tokens: tokens-mat-icon.private-get-icon-color-tokens($color);
11
- @include token-utils.create-token-values(tokens-mat-icon.$prefix, $tokens);
11
+ @include token-utils.create-token-values-mixed(tokens-mat-icon.$prefix, $tokens);
12
12
  }
13
13
 
14
14
  /// Outputs base theme styles (styles not dependent on the color, typography, or density settings)
@@ -31,7 +31,7 @@
31
31
  @include _theme-from-tokens(inspection.get-theme-tokens($theme, color), $options...);
32
32
  } @else {
33
33
  @include sass-utils.current-selector-or-root() {
34
- @include token-utils.create-token-values(
34
+ @include token-utils.create-token-values-mixed(
35
35
  tokens-mat-icon.$prefix,
36
36
  tokens-mat-icon.get-color-tokens($theme)
37
37
  );
@@ -1,6 +1,6 @@
1
1
  import * as i0 from '@angular/core';
2
2
  import { M as MatCommonModule } from './common-module.d-0e6515ae.js';
3
- import { M as MatRipple } from './ripple.d-2fb57d04.js';
3
+ import { M as MatRipple } from './ripple.d-f2cd74cf.js';
4
4
 
5
5
  declare class MatRippleModule {
6
6
  static ɵfac: i0.ɵɵFactoryDeclaration<MatRippleModule, never>;
@@ -1,7 +1,7 @@
1
1
  import * as i0 from '@angular/core';
2
- import { M as MatRippleModule } from './index.d-0536b706.js';
2
+ import { M as MatRippleModule } from './index.d-cc6e48d4.js';
3
3
  import { M as MatCommonModule } from './common-module.d-0e6515ae.js';
4
- import { M as MatPseudoCheckboxModule } from './pseudo-checkbox-module.d-3abc0461.js';
4
+ import { M as MatPseudoCheckboxModule } from './pseudo-checkbox-module.d-d21de92b.js';
5
5
  import { M as MatOption, a as MatOptgroup } from './option.d-6f493d78.js';
6
6
 
7
7
  declare class MatOptionModule {
@@ -17,11 +17,11 @@
17
17
  @include _theme-from-tokens(inspection.get-theme-tokens($theme, base));
18
18
  } @else {
19
19
  @include sass-utils.current-selector-or-root() {
20
- @include token-utils.create-token-values(
20
+ @include token-utils.create-token-values-mixed(
21
21
  tokens-mdc-list.$prefix,
22
22
  tokens-mdc-list.get-unthemable-tokens()
23
23
  );
24
- @include token-utils.create-token-values(
24
+ @include token-utils.create-token-values-mixed(
25
25
  tokens-mat-list.$prefix,
26
26
  tokens-mat-list.get-unthemable-tokens()
27
27
  );
@@ -34,11 +34,11 @@
34
34
  @include _theme-from-tokens(inspection.get-theme-tokens($theme, color));
35
35
  } @else {
36
36
  @include sass-utils.current-selector-or-root() {
37
- @include token-utils.create-token-values(
37
+ @include token-utils.create-token-values-mixed(
38
38
  tokens-mdc-list.$prefix,
39
39
  tokens-mdc-list.get-color-tokens($theme)
40
40
  );
41
- @include token-utils.create-token-values(
41
+ @include token-utils.create-token-values-mixed(
42
42
  tokens-mat-list.$prefix,
43
43
  tokens-mat-list.get-color-tokens($theme)
44
44
  );
@@ -46,7 +46,7 @@
46
46
 
47
47
  .mdc-list-item__start,
48
48
  .mdc-list-item__end {
49
- @include token-utils.create-token-values(
49
+ @include token-utils.create-token-values-mixed(
50
50
  tokens-mdc-radio.$prefix,
51
51
  tokens-mdc-radio.get-color-tokens($theme, primary)
52
52
  );
@@ -55,7 +55,7 @@
55
55
  .mat-accent {
56
56
  .mdc-list-item__start,
57
57
  .mdc-list-item__end {
58
- @include token-utils.create-token-values(
58
+ @include token-utils.create-token-values-mixed(
59
59
  tokens-mdc-radio.$prefix,
60
60
  tokens-mdc-radio.get-color-tokens($theme, accent)
61
61
  );
@@ -65,7 +65,7 @@
65
65
  .mat-warn {
66
66
  .mdc-list-item__start,
67
67
  .mdc-list-item__end {
68
- @include token-utils.create-token-values(
68
+ @include token-utils.create-token-values-mixed(
69
69
  tokens-mdc-radio.$prefix,
70
70
  tokens-mdc-radio.get-color-tokens($theme, warn)
71
71
  );
@@ -73,19 +73,19 @@
73
73
  }
74
74
 
75
75
  .mat-mdc-list-option {
76
- @include token-utils.create-token-values(
76
+ @include token-utils.create-token-values-mixed(
77
77
  tokens-mdc-checkbox.$prefix,
78
78
  tokens-mdc-checkbox.get-color-tokens($theme, primary)
79
79
  );
80
80
  }
81
81
  .mat-mdc-list-option.mat-accent {
82
- @include token-utils.create-token-values(
82
+ @include token-utils.create-token-values-mixed(
83
83
  tokens-mdc-checkbox.$prefix,
84
84
  tokens-mdc-checkbox.get-color-tokens($theme, accent)
85
85
  );
86
86
  }
87
87
  .mat-mdc-list-option.mat-warn {
88
- @include token-utils.create-token-values(
88
+ @include token-utils.create-token-values-mixed(
89
89
  tokens-mdc-checkbox.$prefix,
90
90
  tokens-mdc-checkbox.get-color-tokens($theme, warn)
91
91
  );
@@ -123,11 +123,11 @@
123
123
  $density-scale: inspection.get-theme-density($theme);
124
124
 
125
125
  @include sass-utils.current-selector-or-root() {
126
- @include token-utils.create-token-values(
126
+ @include token-utils.create-token-values-mixed(
127
127
  tokens-mdc-list.$prefix,
128
128
  tokens-mdc-list.get-density-tokens($theme)
129
129
  );
130
- @include token-utils.create-token-values(
130
+ @include token-utils.create-token-values-mixed(
131
131
  tokens-mat-list.$prefix,
132
132
  tokens-mat-list.get-density-tokens($theme)
133
133
  );
@@ -135,7 +135,7 @@
135
135
 
136
136
  .mdc-list-item__start,
137
137
  .mdc-list-item__end {
138
- @include token-utils.create-token-values(
138
+ @include token-utils.create-token-values-mixed(
139
139
  tokens-mdc-radio.$prefix,
140
140
  tokens-mdc-radio.get-density-tokens($theme)
141
141
  );
@@ -185,11 +185,11 @@
185
185
  @include _theme-from-tokens(inspection.get-theme-tokens($theme, typography));
186
186
  } @else {
187
187
  @include sass-utils.current-selector-or-root() {
188
- @include token-utils.create-token-values(
188
+ @include token-utils.create-token-values-mixed(
189
189
  tokens-mdc-list.$prefix,
190
190
  tokens-mdc-list.get-typography-tokens($theme)
191
191
  );
192
- @include token-utils.create-token-values(
192
+ @include token-utils.create-token-values-mixed(
193
193
  tokens-mat-list.$prefix,
194
194
  tokens-mat-list.get-typography-tokens($theme)
195
195
  );
package/list/index.d.ts CHANGED
@@ -1,15 +1,15 @@
1
1
  import * as i0 from '@angular/core';
2
2
  import { InjectionToken, ElementRef, AfterViewInit, OnDestroy, NgZone, QueryList, OnInit, EventEmitter, OnChanges, SimpleChanges } from '@angular/core';
3
3
  import { BooleanInput } from '@angular/cdk/coercion';
4
- import { a as RippleTarget, f as RippleConfig, b as RippleGlobalOptions } from '../ripple.d-2fb57d04.js';
4
+ import { a as RippleTarget, f as RippleConfig, b as RippleGlobalOptions } from '../ripple.d-f2cd74cf.js';
5
5
  import { L as ListOption, M as MatListOptionTogglePosition } from '../list-option-types.d-8739f903.js';
6
6
  export { M as MatListOptionCheckboxPosition, M as MatListOptionTogglePosition } from '../list-option-types.d-8739f903.js';
7
7
  import * as i12 from '@angular/material/divider';
8
8
  export { MatDivider } from '@angular/material/divider';
9
9
  import * as i2 from '@angular/cdk/observers';
10
10
  import { M as MatCommonModule } from '../common-module.d-0e6515ae.js';
11
- import { M as MatRippleModule } from '../index.d-0536b706.js';
12
- import { M as MatPseudoCheckboxModule } from '../pseudo-checkbox-module.d-3abc0461.js';
11
+ import { M as MatRippleModule } from '../index.d-cc6e48d4.js';
12
+ import { M as MatPseudoCheckboxModule } from '../pseudo-checkbox-module.d-d21de92b.js';
13
13
  import { SelectionModel } from '@angular/cdk/collections';
14
14
  import { ControlValueAccessor } from '@angular/forms';
15
15
  import { T as ThemePalette } from '../palette.d-ec4a617c.js';
@@ -12,7 +12,7 @@
12
12
  @include _theme-from-tokens(inspection.get-theme-tokens($theme, base));
13
13
  } @else {
14
14
  @include sass-utils.current-selector-or-root() {
15
- @include token-utils.create-token-values(
15
+ @include token-utils.create-token-values-mixed(
16
16
  tokens-mat-menu.$prefix,
17
17
  tokens-mat-menu.get-unthemable-tokens()
18
18
  );
@@ -25,7 +25,7 @@
25
25
  @include _theme-from-tokens(inspection.get-theme-tokens($theme, color));
26
26
  } @else {
27
27
  @include sass-utils.current-selector-or-root() {
28
- @include token-utils.create-token-values(
28
+ @include token-utils.create-token-values-mixed(
29
29
  tokens-mat-menu.$prefix,
30
30
  tokens-mat-menu.get-color-tokens($theme)
31
31
  );
@@ -38,7 +38,7 @@
38
38
  @include _theme-from-tokens(inspection.get-theme-tokens($theme, typography));
39
39
  } @else {
40
40
  @include sass-utils.current-selector-or-root() {
41
- @include token-utils.create-token-values(
41
+ @include token-utils.create-token-values-mixed(
42
42
  tokens-mat-menu.$prefix,
43
43
  tokens-mat-menu.get-typography-tokens($theme)
44
44
  );
package/menu/index.d.ts CHANGED
@@ -5,10 +5,10 @@ import { Direction } from '@angular/cdk/bidi';
5
5
  import { Subject, Observable } from 'rxjs';
6
6
  import * as i2 from '@angular/cdk/overlay';
7
7
  import { ScrollStrategy, Overlay } from '@angular/cdk/overlay';
8
- import { M as MatRippleModule } from '../index.d-0536b706.js';
8
+ import { M as MatRippleModule } from '../index.d-cc6e48d4.js';
9
9
  import { M as MatCommonModule } from '../common-module.d-0e6515ae.js';
10
10
  import * as i5 from '@angular/cdk/scrolling';
11
- import '../ripple.d-2fb57d04.js';
11
+ import '../ripple.d-f2cd74cf.js';
12
12
  import '@angular/cdk/platform';
13
13
 
14
14
  type MenuPositionX = 'before' | 'after';
@@ -337,6 +337,7 @@ declare class MatMenuTrigger implements AfterContentInit, OnDestroy {
337
337
  private _ngZone;
338
338
  private _scrollStrategy;
339
339
  private _changeDetectorRef;
340
+ private _animationsDisabled;
340
341
  private _cleanupTouchstart;
341
342
  private _portal;
342
343
  private _overlayRef;
@@ -99,6 +99,7 @@ declare class MatTooltip implements OnDestroy, AfterViewInit {
99
99
  protected _dir: Directionality;
100
100
  private _injector;
101
101
  private _viewContainerRef;
102
+ private _animationsDisabled;
102
103
  private _defaultOptions;
103
104
  _overlayRef: OverlayRef | null;
104
105
  _tooltipInstance: TooltipComponent | null;
@@ -2,7 +2,7 @@ import * as i0 from '@angular/core';
2
2
  import { InjectionToken, AfterContentInit, OnChanges, OnDestroy, OnInit, DoCheck, ChangeDetectorRef, ElementRef, QueryList, EventEmitter, SimpleChanges } from '@angular/core';
3
3
  import * as i2 from '@angular/cdk/overlay';
4
4
  import { ScrollStrategy, Overlay, ConnectedPosition, CdkOverlayOrigin, CdkConnectedOverlay } from '@angular/cdk/overlay';
5
- import { M as MatOptionModule } from './index.d-37e31cd3.js';
5
+ import { M as MatOptionModule } from './index.d-d77f0821.js';
6
6
  import { M as MatCommonModule } from './common-module.d-0e6515ae.js';
7
7
  import { ActiveDescendantKeyManager } from '@angular/cdk/a11y';
8
8
  import { SelectionModel } from '@angular/cdk/collections';
@@ -1,25 +1,33 @@
1
1
  import * as i0 from '@angular/core';
2
2
  import { InjectionToken, AfterViewInit, OnDestroy, ElementRef, NgZone } from '@angular/core';
3
3
  import { M as MatCommonModule } from './common-module.d-0e6515ae.js';
4
- import { M as MatRippleModule } from './index.d-0536b706.js';
4
+ import { M as MatRippleModule } from './index.d-cc6e48d4.js';
5
5
  import { FocusOrigin } from '@angular/cdk/a11y';
6
6
  import { T as ThemePalette } from './palette.d-ec4a617c.js';
7
- import { M as MatRippleLoader } from './ripple-loader.d-8aac2988.js';
7
+ import { M as MatRippleLoader } from './ripple-loader.d-e5ac6c14.js';
8
8
 
9
+ /**
10
+ * Possible appearances for a `MatButton`.
11
+ * See https://m3.material.io/components/buttons/overview
12
+ */
13
+ type MatButtonAppearance = 'text' | 'filled' | 'elevated' | 'outlined' | 'tonal';
9
14
  /** Object that can be used to configure the default options for the button component. */
10
15
  interface MatButtonConfig {
11
16
  /** Whether disabled buttons should be interactive. */
12
17
  disabledInteractive?: boolean;
13
18
  /** Default palette color to apply to buttons. */
14
19
  color?: ThemePalette;
20
+ /** Default appearance for plain buttons (not icon buttons or FABs). */
21
+ defaultAppearance?: MatButtonAppearance;
15
22
  }
16
23
  /** Injection token that can be used to provide the default options the button component. */
17
24
  declare const MAT_BUTTON_CONFIG: InjectionToken<MatButtonConfig>;
18
- /** Base class for all buttons. */
25
+ /** Base class for all buttons. */
19
26
  declare class MatButtonBase implements AfterViewInit, OnDestroy {
20
- _elementRef: ElementRef<any>;
21
- _ngZone: NgZone;
22
- _animationMode: "NoopAnimations" | "BrowserAnimations" | null;
27
+ _elementRef: ElementRef<HTMLElement>;
28
+ protected _ngZone: NgZone;
29
+ protected _animationsDisabled: boolean;
30
+ protected readonly _config: MatButtonConfig | null;
23
31
  private readonly _focusMonitor;
24
32
  private _cleanupClick;
25
33
  private _renderer;
@@ -53,7 +61,9 @@ declare class MatButtonBase implements AfterViewInit, OnDestroy {
53
61
  /**
54
62
  * Natively disabled buttons prevent focus and any pointer events from reaching the button.
55
63
  * In some scenarios this might not be desirable, because it can prevent users from finding out
56
- * why the button is disabled (e.g. via tooltip).
64
+ * why the button is disabled (e.g. via tooltip). This is also useful for buttons that may
65
+ * become disabled when activated, which would cause focus to be transferred to the document
66
+ * body instead of remaining on the button.
57
67
  *
58
68
  * Enabling this input will change the button so that it is styled to be disabled and will be
59
69
  * marked as `aria-disabled`, but it will allow the button to receive events and focus.
@@ -91,26 +101,23 @@ declare class MatButtonBase implements AfterViewInit, OnDestroy {
91
101
 
92
102
  /**
93
103
  * Material Design button component. Users interact with a button to perform an action.
94
- * See https://material.io/components/buttons
95
- *
96
- * The `MatButton` class applies to native button elements and captures the appearances for
97
- * "text button", "outlined button", and "contained button" per the Material Design
98
- * specification. `MatButton` additionally captures an additional "flat" appearance, which matches
99
- * "contained" but without elevation.
104
+ * See https://m3.material.io/components/buttons/overview
100
105
  */
101
106
  declare class MatButton extends MatButtonBase {
107
+ /** Appearance of the button. */
108
+ get appearance(): MatButtonAppearance | null;
109
+ set appearance(value: MatButtonAppearance | '');
110
+ private _appearance;
111
+ constructor(...args: unknown[]);
112
+ /** Programmatically sets the appearance of the button. */
113
+ setAppearance(appearance: MatButtonAppearance): void;
102
114
  static ɵfac: i0.ɵɵFactoryDeclaration<MatButton, never>;
103
- static ɵcmp: i0.ɵɵComponentDeclaration<MatButton, " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] ", ["matButton", "matAnchor"], {}, {}, never, [".material-icons:not([iconPositionEnd]), mat-icon:not([iconPositionEnd]), [matButtonIcon]:not([iconPositionEnd])", "*", ".material-icons[iconPositionEnd], mat-icon[iconPositionEnd], [matButtonIcon][iconPositionEnd]"], true, never>;
115
+ static ɵcmp: i0.ɵɵComponentDeclaration<MatButton, " button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] ", ["matButton", "matAnchor"], { "appearance": { "alias": "matButton"; "required": false; }; }, {}, never, [".material-icons:not([iconPositionEnd]), mat-icon:not([iconPositionEnd]), [matButtonIcon]:not([iconPositionEnd])", "*", ".material-icons[iconPositionEnd], mat-icon[iconPositionEnd], [matButtonIcon][iconPositionEnd]"], true, never>;
104
116
  }
105
117
  /**
106
118
  * Material Design button component for anchor elements. Anchor elements are used to provide
107
119
  * links for the user to navigate across different routes or pages.
108
- * See https://material.io/components/buttons
109
- *
110
- * The `MatAnchor` class applies to native anchor elements and captures the appearances for
111
- * "text button", "outlined button", and "contained button" per the Material Design
112
- * specification. `MatAnchor` additionally captures an additional "flat" appearance, which matches
113
- * "contained" but without elevation.
120
+ * See https://m3.material.io/components/buttons/overview
114
121
  */
115
122
  declare const MatAnchor: typeof MatButton;
116
123
  type MatAnchor = MatButton;
@@ -137,7 +144,7 @@ declare function MAT_FAB_DEFAULT_OPTIONS_FACTORY(): MatFabDefaultOptions;
137
144
  /**
138
145
  * Material Design floating action button (FAB) component. These buttons represent the primary
139
146
  * or most common action for users to interact with.
140
- * See https://material.io/components/buttons-floating-action-button/
147
+ * See https://m3.material.io/components/floating-action-button/overview
141
148
  *
142
149
  * The `MatFabButton` class has two appearances: normal and extended.
143
150
  */
@@ -147,25 +154,25 @@ declare class MatFabButton extends MatButtonBase {
147
154
  extended: boolean;
148
155
  constructor(...args: unknown[]);
149
156
  static ɵfac: i0.ɵɵFactoryDeclaration<MatFabButton, never>;
150
- static ɵcmp: i0.ɵɵComponentDeclaration<MatFabButton, "button[mat-fab], a[mat-fab]", ["matButton", "matAnchor"], { "extended": { "alias": "extended"; "required": false; }; }, {}, never, [".material-icons:not([iconPositionEnd]), mat-icon:not([iconPositionEnd]), [matButtonIcon]:not([iconPositionEnd])", "*", ".material-icons[iconPositionEnd], mat-icon[iconPositionEnd], [matButtonIcon][iconPositionEnd]"], true, never>;
157
+ static ɵcmp: i0.ɵɵComponentDeclaration<MatFabButton, "button[mat-fab], a[mat-fab], button[matFab], a[matFab]", ["matButton", "matAnchor"], { "extended": { "alias": "extended"; "required": false; }; }, {}, never, [".material-icons:not([iconPositionEnd]), mat-icon:not([iconPositionEnd]), [matButtonIcon]:not([iconPositionEnd])", "*", ".material-icons[iconPositionEnd], mat-icon[iconPositionEnd], [matButtonIcon][iconPositionEnd]"], true, never>;
151
158
  static ngAcceptInputType_extended: unknown;
152
159
  }
153
160
  /**
154
161
  * Material Design mini floating action button (FAB) component. These buttons represent the primary
155
162
  * or most common action for users to interact with.
156
- * See https://material.io/components/buttons-floating-action-button/
163
+ * See https://m3.material.io/components/floating-action-button/overview
157
164
  */
158
165
  declare class MatMiniFabButton extends MatButtonBase {
159
166
  private _options;
160
167
  _isFab: boolean;
161
168
  constructor(...args: unknown[]);
162
169
  static ɵfac: i0.ɵɵFactoryDeclaration<MatMiniFabButton, never>;
163
- static ɵcmp: i0.ɵɵComponentDeclaration<MatMiniFabButton, "button[mat-mini-fab], a[mat-mini-fab]", ["matButton", "matAnchor"], {}, {}, never, [".material-icons:not([iconPositionEnd]), mat-icon:not([iconPositionEnd]), [matButtonIcon]:not([iconPositionEnd])", "*", ".material-icons[iconPositionEnd], mat-icon[iconPositionEnd], [matButtonIcon][iconPositionEnd]"], true, never>;
170
+ static ɵcmp: i0.ɵɵComponentDeclaration<MatMiniFabButton, "button[mat-mini-fab], a[mat-mini-fab], button[matMiniFab], a[matMiniFab]", ["matButton", "matAnchor"], {}, {}, never, [".material-icons:not([iconPositionEnd]), mat-icon:not([iconPositionEnd]), [matButtonIcon]:not([iconPositionEnd])", "*", ".material-icons[iconPositionEnd], mat-icon[iconPositionEnd], [matButtonIcon][iconPositionEnd]"], true, never>;
164
171
  }
165
172
  /**
166
173
  * Material Design floating action button (FAB) component for anchor elements. Anchor elements
167
174
  * are used to provide links for the user to navigate across different routes or pages.
168
- * See https://material.io/components/buttons-floating-action-button/
175
+ * See https://m3.material.io/components/floating-action-button/overview
169
176
  *
170
177
  * The `MatFabAnchor` class has two appearances: normal and extended.
171
178
  */
@@ -174,7 +181,7 @@ type MatFabAnchor = MatFabButton;
174
181
  /**
175
182
  * Material Design mini floating action button (FAB) component for anchor elements. Anchor elements
176
183
  * are used to provide links for the user to navigate across different routes or pages.
177
- * See https://material.io/components/buttons-floating-action-button/
184
+ * See https://m3.material.io/components/floating-action-button/overview
178
185
  */
179
186
  declare const MatMiniFabAnchor: typeof MatMiniFabButton;
180
187
  type MatMiniFabAnchor = MatMiniFabButton;
@@ -187,7 +194,7 @@ type MatMiniFabAnchor = MatMiniFabButton;
187
194
  declare class MatIconButton extends MatButtonBase {
188
195
  constructor(...args: unknown[]);
189
196
  static ɵfac: i0.ɵɵFactoryDeclaration<MatIconButton, never>;
190
- static ɵcmp: i0.ɵɵComponentDeclaration<MatIconButton, "button[mat-icon-button], a[mat-icon-button]", ["matButton", "matAnchor"], {}, {}, never, ["*"], true, never>;
197
+ static ɵcmp: i0.ɵɵComponentDeclaration<MatIconButton, "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", ["matButton", "matAnchor"], {}, {}, never, ["*"], true, never>;
191
198
  }
192
199
  /**
193
200
  * Material Design icon button component for anchor elements. This button displays a single
@@ -203,4 +210,4 @@ declare class MatButtonModule {
203
210
  static ɵinj: i0.ɵɵInjectorDeclaration<MatButtonModule>;
204
211
  }
205
212
 
206
- export { MAT_BUTTON_CONFIG as M, type MatButtonConfig as a, MatButton as b, MatAnchor as c, type MatFabDefaultOptions as d, MAT_FAB_DEFAULT_OPTIONS as e, MAT_FAB_DEFAULT_OPTIONS_FACTORY as f, MatFabButton as g, MatMiniFabButton as h, MatFabAnchor as i, MatMiniFabAnchor as j, MatIconButton as k, MatIconAnchor as l, MatButtonModule as m };
213
+ export { MAT_BUTTON_CONFIG as M, type MatButtonAppearance as a, type MatButtonConfig as b, MatButton as c, MatAnchor as d, type MatFabDefaultOptions as e, MAT_FAB_DEFAULT_OPTIONS as f, MAT_FAB_DEFAULT_OPTIONS_FACTORY as g, MatFabButton as h, MatMiniFabButton as i, MatFabAnchor as j, MatMiniFabAnchor as k, MatIconButton as l, MatIconAnchor as m, MatButtonModule as n };