@depup/angular__material 21.2.2-depup.19

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 (578) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +31 -0
  3. package/_index.scss +145 -0
  4. package/autocomplete/_autocomplete-theme.scss +76 -0
  5. package/autocomplete/_m2-autocomplete.scss +19 -0
  6. package/autocomplete/_m3-autocomplete.scss +26 -0
  7. package/badge/_badge-theme.scss +106 -0
  8. package/badge/_m2-badge.scss +73 -0
  9. package/badge/_m3-badge.scss +52 -0
  10. package/bottom-sheet/_bottom-sheet-theme.scss +76 -0
  11. package/bottom-sheet/_m2-bottom-sheet.scss +24 -0
  12. package/bottom-sheet/_m3-bottom-sheet.scss +25 -0
  13. package/button/_button-theme.scss +113 -0
  14. package/button/_fab-theme.scss +111 -0
  15. package/button/_icon-button-theme.scss +136 -0
  16. package/button/_m2-button.scss +194 -0
  17. package/button/_m2-fab.scss +101 -0
  18. package/button/_m2-icon-button.scss +59 -0
  19. package/button/_m3-button.scss +170 -0
  20. package/button/_m3-fab.scss +92 -0
  21. package/button/_m3-icon-button.scss +54 -0
  22. package/button-toggle/_button-toggle-theme.scss +93 -0
  23. package/button-toggle/_m2-button-toggle.scss +68 -0
  24. package/button-toggle/_m3-button-toggle.scss +72 -0
  25. package/card/_card-theme.scss +76 -0
  26. package/card/_m2-card.scss +39 -0
  27. package/card/_m3-card.scss +44 -0
  28. package/changes.json +10 -0
  29. package/checkbox/_checkbox-theme.scss +105 -0
  30. package/checkbox/_m2-checkbox.scss +78 -0
  31. package/checkbox/_m3-checkbox.scss +68 -0
  32. package/chips/_chips-theme.scss +115 -0
  33. package/chips/_m2-chip.scss +85 -0
  34. package/chips/_m3-chip.scss +81 -0
  35. package/core/_core-theme.scss +125 -0
  36. package/core/_core.scss +50 -0
  37. package/core/_m2-app.scss +24 -0
  38. package/core/_m3-app.scss +44 -0
  39. package/core/color/_all-color.scss +17 -0
  40. package/core/density/private/_all-density.scss +78 -0
  41. package/core/focus-indicators/_private.scss +126 -0
  42. package/core/m2/_index.scss +52 -0
  43. package/core/m2/_palette.scss +748 -0
  44. package/core/m2/_theming.scss +340 -0
  45. package/core/m2/_typography-utils.scss +81 -0
  46. package/core/m2/_typography.scss +388 -0
  47. package/core/option/_m2-optgroup.scss +21 -0
  48. package/core/option/_m2-option.scss +38 -0
  49. package/core/option/_m3-optgroup.scss +25 -0
  50. package/core/option/_m3-option.scss +37 -0
  51. package/core/option/_optgroup-theme.scss +76 -0
  52. package/core/option/_option-theme.scss +103 -0
  53. package/core/ripple/_m2-ripple.scss +17 -0
  54. package/core/ripple/_m3-ripple.scss +17 -0
  55. package/core/ripple/_ripple-theme.scss +75 -0
  56. package/core/ripple/_ripple.scss +56 -0
  57. package/core/selection/pseudo-checkbox/_m2-pseudo-checkbox.scss +32 -0
  58. package/core/selection/pseudo-checkbox/_m3-pseudo-checkbox.scss +34 -0
  59. package/core/selection/pseudo-checkbox/_pseudo-checkbox-common.scss +86 -0
  60. package/core/selection/pseudo-checkbox/_pseudo-checkbox-theme.scss +110 -0
  61. package/core/style/_checkbox-common.scss +11 -0
  62. package/core/style/_elevation.scss +208 -0
  63. package/core/style/_layout-common.scss +8 -0
  64. package/core/style/_private.scss +27 -0
  65. package/core/style/_sass-utils.scss +57 -0
  66. package/core/style/_validation.scss +52 -0
  67. package/core/style/_variables.scss +44 -0
  68. package/core/style/_vendor-prefixes.scss +56 -0
  69. package/core/theming/_all-theme.scss +168 -0
  70. package/core/theming/_color-api-backwards-compatibility.scss +159 -0
  71. package/core/theming/_config-validation.scss +174 -0
  72. package/core/theming/_definition.scss +141 -0
  73. package/core/theming/_inspection.scss +289 -0
  74. package/core/theming/_m2-inspection.scss +243 -0
  75. package/core/theming/_palettes.scss +1036 -0
  76. package/core/theming/_theming.scss +193 -0
  77. package/core/theming/_validation.scss +5 -0
  78. package/core/tokens/_classes.scss +398 -0
  79. package/core/tokens/_m2-utils.scss +25 -0
  80. package/core/tokens/_m3-tokens.scss +126 -0
  81. package/core/tokens/_m3-utils.scss +36 -0
  82. package/core/tokens/_system.scss +398 -0
  83. package/core/tokens/_token-utils.scss +119 -0
  84. package/core/tokens/m2/_index.scss +6 -0
  85. package/core/tokens/m2/_md-sys-color-internal.scss +11 -0
  86. package/core/tokens/m2/_md-sys-color.scss +123 -0
  87. package/core/tokens/m2/_md-sys-elevation.scss +10 -0
  88. package/core/tokens/m2/_md-sys-motion.scss +30 -0
  89. package/core/tokens/m2/_md-sys-shape.scss +16 -0
  90. package/core/tokens/m2/_md-sys-state.scss +8 -0
  91. package/core/tokens/m2/_md-sys-typescale.scss +68 -0
  92. package/core/tokens/m3/_index.scss +7 -0
  93. package/core/tokens/m3/_md-sys-color-internal.scss +11 -0
  94. package/core/tokens/m3/_md-sys-color.scss +118 -0
  95. package/core/tokens/m3/_md-sys-elevation.scss +15 -0
  96. package/core/tokens/m3/_md-sys-motion.scss +35 -0
  97. package/core/tokens/m3/_md-sys-shape.scss +21 -0
  98. package/core/tokens/m3/_md-sys-state.scss +13 -0
  99. package/core/tokens/m3/_md-sys-typescale-internal.scss +5 -0
  100. package/core/tokens/m3/_md-sys-typescale.scss +114 -0
  101. package/core/tokens/m3/_theme.scss +35 -0
  102. package/core/typography/_all-typography.scss +104 -0
  103. package/core/typography/_typography-utils.scss +31 -0
  104. package/core/typography/_typography.scss +269 -0
  105. package/core/typography/_versioning.scss +90 -0
  106. package/datepicker/_datepicker-theme.scss +132 -0
  107. package/datepicker/_m2-datepicker.scss +81 -0
  108. package/datepicker/_m3-datepicker.scss +74 -0
  109. package/dialog/_dialog-legacy-padding.scss +31 -0
  110. package/dialog/_dialog-theme.scss +76 -0
  111. package/dialog/_m2-dialog.scss +43 -0
  112. package/dialog/_m3-dialog.scss +47 -0
  113. package/divider/_divider-theme.scss +75 -0
  114. package/divider/_m2-divider.scss +17 -0
  115. package/divider/_m3-divider.scss +19 -0
  116. package/expansion/_expansion-theme.scss +76 -0
  117. package/expansion/_m2-expansion.scss +64 -0
  118. package/expansion/_m3-expansion.scss +61 -0
  119. package/fesm2022/_animation-chunk.mjs +22 -0
  120. package/fesm2022/_animation-chunk.mjs.map +1 -0
  121. package/fesm2022/_date-formats-chunk.mjs +86 -0
  122. package/fesm2022/_date-formats-chunk.mjs.map +1 -0
  123. package/fesm2022/_date-range-input-harness-chunk.mjs +322 -0
  124. package/fesm2022/_date-range-input-harness-chunk.mjs.map +1 -0
  125. package/fesm2022/_error-options-chunk.mjs +66 -0
  126. package/fesm2022/_error-options-chunk.mjs.map +1 -0
  127. package/fesm2022/_error-state-chunk.mjs +30 -0
  128. package/fesm2022/_error-state-chunk.mjs.map +1 -0
  129. package/fesm2022/_form-field-chunk.mjs +1351 -0
  130. package/fesm2022/_form-field-chunk.mjs.map +1 -0
  131. package/fesm2022/_icon-button-chunk.mjs +268 -0
  132. package/fesm2022/_icon-button-chunk.mjs.map +1 -0
  133. package/fesm2022/_icon-registry-chunk.mjs +368 -0
  134. package/fesm2022/_icon-registry-chunk.mjs.map +1 -0
  135. package/fesm2022/_input-harness-chunk.mjs +67 -0
  136. package/fesm2022/_input-harness-chunk.mjs.map +1 -0
  137. package/fesm2022/_input-value-accessor-chunk.mjs +6 -0
  138. package/fesm2022/_input-value-accessor-chunk.mjs.map +1 -0
  139. package/fesm2022/_internal-form-field-chunk.mjs +67 -0
  140. package/fesm2022/_internal-form-field-chunk.mjs.map +1 -0
  141. package/fesm2022/_line-chunk.mjs +99 -0
  142. package/fesm2022/_line-chunk.mjs.map +1 -0
  143. package/fesm2022/_option-chunk.mjs +385 -0
  144. package/fesm2022/_option-chunk.mjs.map +1 -0
  145. package/fesm2022/_option-harness-chunk.mjs +30 -0
  146. package/fesm2022/_option-harness-chunk.mjs.map +1 -0
  147. package/fesm2022/_option-module-chunk.mjs +48 -0
  148. package/fesm2022/_option-module-chunk.mjs.map +1 -0
  149. package/fesm2022/_pseudo-checkbox-chunk.mjs +88 -0
  150. package/fesm2022/_pseudo-checkbox-chunk.mjs.map +1 -0
  151. package/fesm2022/_pseudo-checkbox-module-chunk.mjs +46 -0
  152. package/fesm2022/_pseudo-checkbox-module-chunk.mjs.map +1 -0
  153. package/fesm2022/_public-api-chunk.mjs +84 -0
  154. package/fesm2022/_public-api-chunk.mjs.map +1 -0
  155. package/fesm2022/_ripple-chunk.mjs +544 -0
  156. package/fesm2022/_ripple-chunk.mjs.map +1 -0
  157. package/fesm2022/_ripple-loader-chunk.mjs +144 -0
  158. package/fesm2022/_ripple-loader-chunk.mjs.map +1 -0
  159. package/fesm2022/_ripple-module-chunk.mjs +46 -0
  160. package/fesm2022/_ripple-module-chunk.mjs.map +1 -0
  161. package/fesm2022/_structural-styles-chunk.mjs +45 -0
  162. package/fesm2022/_structural-styles-chunk.mjs.map +1 -0
  163. package/fesm2022/_tooltip-chunk.mjs +848 -0
  164. package/fesm2022/_tooltip-chunk.mjs.map +1 -0
  165. package/fesm2022/autocomplete-testing.mjs +75 -0
  166. package/fesm2022/autocomplete-testing.mjs.map +1 -0
  167. package/fesm2022/autocomplete.mjs +1068 -0
  168. package/fesm2022/autocomplete.mjs.map +1 -0
  169. package/fesm2022/badge-testing.mjs +48 -0
  170. package/fesm2022/badge-testing.mjs.map +1 -0
  171. package/fesm2022/badge.mjs +357 -0
  172. package/fesm2022/badge.mjs.map +1 -0
  173. package/fesm2022/bottom-sheet-testing.mjs +17 -0
  174. package/fesm2022/bottom-sheet-testing.mjs.map +1 -0
  175. package/fesm2022/bottom-sheet.mjs +390 -0
  176. package/fesm2022/bottom-sheet.mjs.map +1 -0
  177. package/fesm2022/button-testing.mjs +81 -0
  178. package/fesm2022/button-testing.mjs.map +1 -0
  179. package/fesm2022/button-toggle-testing.mjs +87 -0
  180. package/fesm2022/button-toggle-testing.mjs.map +1 -0
  181. package/fesm2022/button-toggle.mjs +789 -0
  182. package/fesm2022/button-toggle.mjs.map +1 -0
  183. package/fesm2022/button.mjs +308 -0
  184. package/fesm2022/button.mjs.map +1 -0
  185. package/fesm2022/card-testing.mjs +29 -0
  186. package/fesm2022/card-testing.mjs.map +1 -0
  187. package/fesm2022/card.mjs +615 -0
  188. package/fesm2022/card.mjs.map +1 -0
  189. package/fesm2022/checkbox-testing.mjs +79 -0
  190. package/fesm2022/checkbox-testing.mjs.map +1 -0
  191. package/fesm2022/checkbox.mjs +551 -0
  192. package/fesm2022/checkbox.mjs.map +1 -0
  193. package/fesm2022/chips-testing.mjs +239 -0
  194. package/fesm2022/chips-testing.mjs.map +1 -0
  195. package/fesm2022/chips.mjs +2663 -0
  196. package/fesm2022/chips.mjs.map +1 -0
  197. package/fesm2022/core-testing.mjs +22 -0
  198. package/fesm2022/core-testing.mjs.map +1 -0
  199. package/fesm2022/core.mjs +408 -0
  200. package/fesm2022/core.mjs.map +1 -0
  201. package/fesm2022/datepicker-testing.mjs +26 -0
  202. package/fesm2022/datepicker-testing.mjs.map +1 -0
  203. package/fesm2022/datepicker.mjs +5015 -0
  204. package/fesm2022/datepicker.mjs.map +1 -0
  205. package/fesm2022/dialog-testing.mjs +123 -0
  206. package/fesm2022/dialog-testing.mjs.map +1 -0
  207. package/fesm2022/dialog.mjs +873 -0
  208. package/fesm2022/dialog.mjs.map +1 -0
  209. package/fesm2022/divider-testing.mjs +17 -0
  210. package/fesm2022/divider-testing.mjs.map +1 -0
  211. package/fesm2022/divider.mjs +132 -0
  212. package/fesm2022/divider.mjs.map +1 -0
  213. package/fesm2022/expansion-testing.mjs +87 -0
  214. package/fesm2022/expansion-testing.mjs.map +1 -0
  215. package/fesm2022/expansion.mjs +749 -0
  216. package/fesm2022/expansion.mjs.map +1 -0
  217. package/fesm2022/form-field-testing-control.mjs +24 -0
  218. package/fesm2022/form-field-testing-control.mjs.map +1 -0
  219. package/fesm2022/form-field-testing.mjs +135 -0
  220. package/fesm2022/form-field-testing.mjs.map +1 -0
  221. package/fesm2022/form-field.mjs +57 -0
  222. package/fesm2022/form-field.mjs.map +1 -0
  223. package/fesm2022/grid-list-testing.mjs +80 -0
  224. package/fesm2022/grid-list-testing.mjs.map +1 -0
  225. package/fesm2022/grid-list.mjs +604 -0
  226. package/fesm2022/grid-list.mjs.map +1 -0
  227. package/fesm2022/icon-testing.mjs +172 -0
  228. package/fesm2022/icon-testing.mjs.map +1 -0
  229. package/fesm2022/icon.mjs +366 -0
  230. package/fesm2022/icon.mjs.map +1 -0
  231. package/fesm2022/input-testing.mjs +73 -0
  232. package/fesm2022/input-testing.mjs.map +1 -0
  233. package/fesm2022/input.mjs +495 -0
  234. package/fesm2022/input.mjs.map +1 -0
  235. package/fesm2022/list-testing.mjs +295 -0
  236. package/fesm2022/list-testing.mjs.map +1 -0
  237. package/fesm2022/list.mjs +1604 -0
  238. package/fesm2022/list.mjs.map +1 -0
  239. package/fesm2022/material.mjs +4 -0
  240. package/fesm2022/material.mjs.map +1 -0
  241. package/fesm2022/menu-testing.mjs +174 -0
  242. package/fesm2022/menu-testing.mjs.map +1 -0
  243. package/fesm2022/menu.mjs +1421 -0
  244. package/fesm2022/menu.mjs.map +1 -0
  245. package/fesm2022/paginator-testing.mjs +69 -0
  246. package/fesm2022/paginator-testing.mjs.map +1 -0
  247. package/fesm2022/paginator.mjs +445 -0
  248. package/fesm2022/paginator.mjs.map +1 -0
  249. package/fesm2022/progress-bar-testing.mjs +20 -0
  250. package/fesm2022/progress-bar-testing.mjs.map +1 -0
  251. package/fesm2022/progress-bar.mjs +247 -0
  252. package/fesm2022/progress-bar.mjs.map +1 -0
  253. package/fesm2022/progress-spinner-testing.mjs +21 -0
  254. package/fesm2022/progress-spinner-testing.mjs.map +1 -0
  255. package/fesm2022/progress-spinner.mjs +258 -0
  256. package/fesm2022/progress-spinner.mjs.map +1 -0
  257. package/fesm2022/radio-testing.mjs +143 -0
  258. package/fesm2022/radio-testing.mjs.map +1 -0
  259. package/fesm2022/radio.mjs +751 -0
  260. package/fesm2022/radio.mjs.map +1 -0
  261. package/fesm2022/select-testing.mjs +92 -0
  262. package/fesm2022/select-testing.mjs.map +1 -0
  263. package/fesm2022/select.mjs +1181 -0
  264. package/fesm2022/select.mjs.map +1 -0
  265. package/fesm2022/sidenav-testing.mjs +80 -0
  266. package/fesm2022/sidenav-testing.mjs.map +1 -0
  267. package/fesm2022/sidenav.mjs +1151 -0
  268. package/fesm2022/sidenav.mjs.map +1 -0
  269. package/fesm2022/slide-toggle-testing.mjs +68 -0
  270. package/fesm2022/slide-toggle-testing.mjs.map +1 -0
  271. package/fesm2022/slide-toggle.mjs +403 -0
  272. package/fesm2022/slide-toggle.mjs.map +1 -0
  273. package/fesm2022/slider-testing.mjs +105 -0
  274. package/fesm2022/slider-testing.mjs.map +1 -0
  275. package/fesm2022/slider.mjs +1720 -0
  276. package/fesm2022/slider.mjs.map +1 -0
  277. package/fesm2022/snack-bar-testing.mjs +47 -0
  278. package/fesm2022/snack-bar-testing.mjs.map +1 -0
  279. package/fesm2022/snack-bar.mjs +820 -0
  280. package/fesm2022/snack-bar.mjs.map +1 -0
  281. package/fesm2022/sort-testing.mjs +55 -0
  282. package/fesm2022/sort-testing.mjs.map +1 -0
  283. package/fesm2022/sort.mjs +470 -0
  284. package/fesm2022/sort.mjs.map +1 -0
  285. package/fesm2022/stepper-testing.mjs +99 -0
  286. package/fesm2022/stepper-testing.mjs.map +1 -0
  287. package/fesm2022/stepper.mjs +900 -0
  288. package/fesm2022/stepper.mjs.map +1 -0
  289. package/fesm2022/table-testing.mjs +152 -0
  290. package/fesm2022/table-testing.mjs.map +1 -0
  291. package/fesm2022/table.mjs +1151 -0
  292. package/fesm2022/table.mjs.map +1 -0
  293. package/fesm2022/tabs-testing.mjs +144 -0
  294. package/fesm2022/tabs-testing.mjs.map +1 -0
  295. package/fesm2022/tabs.mjs +2435 -0
  296. package/fesm2022/tabs.mjs.map +1 -0
  297. package/fesm2022/timepicker-testing.mjs +128 -0
  298. package/fesm2022/timepicker-testing.mjs.map +1 -0
  299. package/fesm2022/timepicker.mjs +1284 -0
  300. package/fesm2022/timepicker.mjs.map +1 -0
  301. package/fesm2022/toolbar-testing.mjs +26 -0
  302. package/fesm2022/toolbar-testing.mjs.map +1 -0
  303. package/fesm2022/toolbar.mjs +182 -0
  304. package/fesm2022/toolbar.mjs.map +1 -0
  305. package/fesm2022/tooltip-testing.mjs +48 -0
  306. package/fesm2022/tooltip-testing.mjs.map +1 -0
  307. package/fesm2022/tooltip.mjs +58 -0
  308. package/fesm2022/tooltip.mjs.map +1 -0
  309. package/fesm2022/tree-testing.mjs +104 -0
  310. package/fesm2022/tree-testing.mjs.map +1 -0
  311. package/fesm2022/tree.mjs +681 -0
  312. package/fesm2022/tree.mjs.map +1 -0
  313. package/form-field/_form-field-theme.scss +96 -0
  314. package/form-field/_m2-form-field.scss +226 -0
  315. package/form-field/_m3-form-field.scss +137 -0
  316. package/grid-list/_grid-list-theme.scss +76 -0
  317. package/grid-list/_m2-grid-list.scss +21 -0
  318. package/grid-list/_m3-grid-list.scss +20 -0
  319. package/icon/_icon-theme.scss +109 -0
  320. package/icon/_m2-icon.scss +15 -0
  321. package/icon/_m3-icon.scss +21 -0
  322. package/input/_input-theme.scss +36 -0
  323. package/list/_list-theme.scss +201 -0
  324. package/list/_m2-list.scss +92 -0
  325. package/list/_m3-list.scss +93 -0
  326. package/menu/_m2-menu.scss +44 -0
  327. package/menu/_m3-menu.scss +42 -0
  328. package/menu/_menu-theme.scss +76 -0
  329. package/package.json +404 -0
  330. package/paginator/_m2-paginator.scss +69 -0
  331. package/paginator/_m3-paginator.scss +46 -0
  332. package/paginator/_paginator-theme.scss +76 -0
  333. package/prebuilt-themes/azure-blue.css +1 -0
  334. package/prebuilt-themes/cyan-orange.css +1 -0
  335. package/prebuilt-themes/deeppurple-amber.css +1 -0
  336. package/prebuilt-themes/indigo-pink.css +1 -0
  337. package/prebuilt-themes/magenta-violet.css +1 -0
  338. package/prebuilt-themes/pink-bluegrey.css +1 -0
  339. package/prebuilt-themes/purple-green.css +1 -0
  340. package/prebuilt-themes/rose-red.css +1 -0
  341. package/progress-bar/_m2-progress-bar.scss +36 -0
  342. package/progress-bar/_m3-progress-bar.scss +29 -0
  343. package/progress-bar/_progress-bar-theme.scss +93 -0
  344. package/progress-spinner/_m2-progress-spinner.scss +25 -0
  345. package/progress-spinner/_m3-progress-spinner.scss +27 -0
  346. package/progress-spinner/_progress-spinner-theme.scss +95 -0
  347. package/radio/_m2-radio.scss +67 -0
  348. package/radio/_m3-radio.scss +65 -0
  349. package/radio/_radio-theme.scss +102 -0
  350. package/schematics/collection.json +55 -0
  351. package/schematics/migration.json +15 -0
  352. package/schematics/ng-add/fonts/material-fonts.d.ts +11 -0
  353. package/schematics/ng-add/fonts/material-fonts.js +41 -0
  354. package/schematics/ng-add/fonts/material-fonts.js.map +1 -0
  355. package/schematics/ng-add/index.d.ts +17 -0
  356. package/schematics/ng-add/index.js +54 -0
  357. package/schematics/ng-add/index.js.map +1 -0
  358. package/schematics/ng-add/package-config.d.ts +12 -0
  359. package/schematics/ng-add/package-config.js +51 -0
  360. package/schematics/ng-add/package-config.js.map +1 -0
  361. package/schematics/ng-add/schema.d.ts +15 -0
  362. package/schematics/ng-add/schema.js +10 -0
  363. package/schematics/ng-add/schema.js.map +1 -0
  364. package/schematics/ng-add/schema.json +43 -0
  365. package/schematics/ng-add/setup-project.d.ts +15 -0
  366. package/schematics/ng-add/setup-project.js +36 -0
  367. package/schematics/ng-add/setup-project.js.map +1 -0
  368. package/schematics/ng-add/theming/create-theme.d.ts +9 -0
  369. package/schematics/ng-add/theming/create-theme.js +58 -0
  370. package/schematics/ng-add/theming/create-theme.js.map +1 -0
  371. package/schematics/ng-add/theming/theming.d.ts +11 -0
  372. package/schematics/ng-add/theming/theming.js +133 -0
  373. package/schematics/ng-add/theming/theming.js.map +1 -0
  374. package/schematics/ng-generate/address-form/files/__path__/__name@dasherize@if-flat__/__name@dasherize__.component.__style__.template +27 -0
  375. package/schematics/ng-generate/address-form/files/__path__/__name@dasherize@if-flat__/__name@dasherize__.component.html.template +99 -0
  376. package/schematics/ng-generate/address-form/files/__path__/__name@dasherize@if-flat__/__name@dasherize__.component.spec.ts.template +38 -0
  377. package/schematics/ng-generate/address-form/files/__path__/__name@dasherize@if-flat__/__name@dasherize__.component.ts.template +118 -0
  378. package/schematics/ng-generate/address-form/index.d.ts +14 -0
  379. package/schematics/ng-generate/address-form/index.js +43 -0
  380. package/schematics/ng-generate/address-form/index.js.map +1 -0
  381. package/schematics/ng-generate/address-form/schema.d.ts +10 -0
  382. package/schematics/ng-generate/address-form/schema.js +10 -0
  383. package/schematics/ng-generate/address-form/schema.js.map +1 -0
  384. package/schematics/ng-generate/address-form/schema.json +100 -0
  385. package/schematics/ng-generate/dashboard/files/__path__/__name@dasherize@if-flat__/__name@dasherize__.component.__style__.template +21 -0
  386. package/schematics/ng-generate/dashboard/files/__path__/__name@dasherize@if-flat__/__name@dasherize__.component.html.template +26 -0
  387. package/schematics/ng-generate/dashboard/files/__path__/__name@dasherize@if-flat__/__name@dasherize__.component.spec.ts.template +36 -0
  388. package/schematics/ng-generate/dashboard/files/__path__/__name@dasherize@if-flat__/__name@dasherize__.component.ts.template +56 -0
  389. package/schematics/ng-generate/dashboard/index.d.ts +14 -0
  390. package/schematics/ng-generate/dashboard/index.js +42 -0
  391. package/schematics/ng-generate/dashboard/index.js.map +1 -0
  392. package/schematics/ng-generate/dashboard/schema.d.ts +10 -0
  393. package/schematics/ng-generate/dashboard/schema.js +10 -0
  394. package/schematics/ng-generate/dashboard/schema.js.map +1 -0
  395. package/schematics/ng-generate/dashboard/schema.json +100 -0
  396. package/schematics/ng-generate/navigation/files/__path__/__name@dasherize@if-flat__/__name@dasherize__.component.__style__.template +17 -0
  397. package/schematics/ng-generate/navigation/files/__path__/__name@dasherize@if-flat__/__name@dasherize__.component.html.template +28 -0
  398. package/schematics/ng-generate/navigation/files/__path__/__name@dasherize@if-flat__/__name@dasherize__.component.spec.ts.template +36 -0
  399. package/schematics/ng-generate/navigation/files/__path__/__name@dasherize@if-flat__/__name@dasherize__.component.ts.template +42 -0
  400. package/schematics/ng-generate/navigation/index.d.ts +14 -0
  401. package/schematics/ng-generate/navigation/index.js +42 -0
  402. package/schematics/ng-generate/navigation/index.js.map +1 -0
  403. package/schematics/ng-generate/navigation/schema.d.ts +10 -0
  404. package/schematics/ng-generate/navigation/schema.js +10 -0
  405. package/schematics/ng-generate/navigation/schema.js.map +1 -0
  406. package/schematics/ng-generate/navigation/schema.json +105 -0
  407. package/schematics/ng-generate/table/files/__path__/__name@dasherize@if-flat__/__name@dasherize__-datasource.ts.template +111 -0
  408. package/schematics/ng-generate/table/files/__path__/__name@dasherize@if-flat__/__name@dasherize__.component.__style__.template +3 -0
  409. package/schematics/ng-generate/table/files/__path__/__name@dasherize@if-flat__/__name@dasherize__.component.html.template +26 -0
  410. package/schematics/ng-generate/table/files/__path__/__name@dasherize@if-flat__/__name@dasherize__.component.spec.ts.template +32 -0
  411. package/schematics/ng-generate/table/files/__path__/__name@dasherize@if-flat__/__name@dasherize__.component.ts.template +36 -0
  412. package/schematics/ng-generate/table/index.d.ts +14 -0
  413. package/schematics/ng-generate/table/index.js +40 -0
  414. package/schematics/ng-generate/table/index.js.map +1 -0
  415. package/schematics/ng-generate/table/schema.d.ts +10 -0
  416. package/schematics/ng-generate/table/schema.js +10 -0
  417. package/schematics/ng-generate/table/schema.js.map +1 -0
  418. package/schematics/ng-generate/table/schema.json +100 -0
  419. package/schematics/ng-generate/theme-color/index_bundled.js +6561 -0
  420. package/schematics/ng-generate/theme-color/index_bundled.js.map +6 -0
  421. package/schematics/ng-generate/theme-color/schema.json +55 -0
  422. package/schematics/ng-generate/tree/files/__path__/__name@dasherize@if-flat__/__name@dasherize__.component.__style__.template +4 -0
  423. package/schematics/ng-generate/tree/files/__path__/__name@dasherize@if-flat__/__name@dasherize__.component.html.template +22 -0
  424. package/schematics/ng-generate/tree/files/__path__/__name@dasherize@if-flat__/__name@dasherize__.component.spec.ts.template +32 -0
  425. package/schematics/ng-generate/tree/files/__path__/__name@dasherize@if-flat__/__name@dasherize__.component.ts.template +93 -0
  426. package/schematics/ng-generate/tree/files/__path__/__name@dasherize@if-flat__/example-data.ts.template +47 -0
  427. package/schematics/ng-generate/tree/index.d.ts +14 -0
  428. package/schematics/ng-generate/tree/index.js +40 -0
  429. package/schematics/ng-generate/tree/index.js.map +1 -0
  430. package/schematics/ng-generate/tree/schema.d.ts +10 -0
  431. package/schematics/ng-generate/tree/schema.js +10 -0
  432. package/schematics/ng-generate/tree/schema.js.map +1 -0
  433. package/schematics/ng-generate/tree/schema.json +100 -0
  434. package/schematics/ng-update/index_bundled.js +204 -0
  435. package/schematics/ng-update/index_bundled.js.map +6 -0
  436. package/schematics/package.json +3 -0
  437. package/select/_m2-select.scss +49 -0
  438. package/select/_m3-select.scss +54 -0
  439. package/select/_select-theme.scss +99 -0
  440. package/sidenav/_m2-sidenav.scss +48 -0
  441. package/sidenav/_m3-sidenav.scss +26 -0
  442. package/sidenav/_sidenav-theme.scss +75 -0
  443. package/slide-toggle/_m2-slide-toggle.scss +134 -0
  444. package/slide-toggle/_m3-slide-toggle.scss +133 -0
  445. package/slide-toggle/_slide-toggle-theme.scss +119 -0
  446. package/slider/_m2-slider.scss +73 -0
  447. package/slider/_m3-slider.scss +69 -0
  448. package/slider/_slider-theme.scss +103 -0
  449. package/snack-bar/_m2-snack-bar.scss +24 -0
  450. package/snack-bar/_m3-snack-bar.scss +26 -0
  451. package/snack-bar/_snack-bar-theme.scss +77 -0
  452. package/sort/_m2-sort.scss +16 -0
  453. package/sort/_m3-sort.scss +20 -0
  454. package/sort/_sort-theme.scss +76 -0
  455. package/stepper/_m2-stepper.scss +65 -0
  456. package/stepper/_m3-stepper.scss +66 -0
  457. package/stepper/_stepper-theme.scss +102 -0
  458. package/table/_m2-table.scss +63 -0
  459. package/table/_m3-table.scss +52 -0
  460. package/table/_table-theme.scss +76 -0
  461. package/tabs/_m2-tabs.scss +68 -0
  462. package/tabs/_m3-tabs.scss +58 -0
  463. package/tabs/_tabs-theme.scss +131 -0
  464. package/timepicker/_m2-timepicker.scss +19 -0
  465. package/timepicker/_m3-timepicker.scss +21 -0
  466. package/timepicker/_timepicker-theme.scss +81 -0
  467. package/toolbar/_m2-toolbar.scss +43 -0
  468. package/toolbar/_m3-toolbar.scss +41 -0
  469. package/toolbar/_toolbar-theme.scss +114 -0
  470. package/tooltip/_m2-tooltip.scss +24 -0
  471. package/tooltip/_m3-tooltip.scss +25 -0
  472. package/tooltip/_tooltip-theme.scss +76 -0
  473. package/tree/_m2-tree.scss +30 -0
  474. package/tree/_m3-tree.scss +37 -0
  475. package/tree/_tree-theme.scss +76 -0
  476. package/types/_badge-chunk.d.ts +100 -0
  477. package/types/_button-toggle-chunk.d.ts +252 -0
  478. package/types/_date-adapter-chunk.d.ts +261 -0
  479. package/types/_date-range-input-harness-chunk.d.ts +284 -0
  480. package/types/_dialog-chunk.d.ts +336 -0
  481. package/types/_error-options-chunk.d.ts +17 -0
  482. package/types/_form-field-chunk.d.ts +375 -0
  483. package/types/_form-field-control-chunk.d.ts +64 -0
  484. package/types/_form-field-control-harness-chunk.d.ts +20 -0
  485. package/types/_form-field-module-chunk.d.ts +18 -0
  486. package/types/_icon-module-chunk.d.ts +162 -0
  487. package/types/_icon-registry-chunk.d.ts +271 -0
  488. package/types/_input-harness-chunk.d.ts +61 -0
  489. package/types/_line-chunk.d.ts +25 -0
  490. package/types/_list-option-types-chunk.d.ts +15 -0
  491. package/types/_option-chunk.d.ts +146 -0
  492. package/types/_option-harness-chunk.d.ts +35 -0
  493. package/types/_option-module-chunk.d.ts +13 -0
  494. package/types/_option-parent-chunk.d.ts +20 -0
  495. package/types/_paginator-chunk.d.ts +184 -0
  496. package/types/_palette-chunk.d.ts +4 -0
  497. package/types/_progress-spinner-chunk.d.ts +91 -0
  498. package/types/_pseudo-checkbox-module-chunk.d.ts +45 -0
  499. package/types/_ripple-chunk.d.ts +256 -0
  500. package/types/_ripple-loader-chunk.d.ts +48 -0
  501. package/types/_ripple-module-chunk.d.ts +11 -0
  502. package/types/_sort-chunk.d.ts +88 -0
  503. package/types/_sort-direction-chunk.d.ts +3 -0
  504. package/types/_tooltip-chunk.d.ts +315 -0
  505. package/types/autocomplete-testing.d.ts +53 -0
  506. package/types/autocomplete.d.ts +420 -0
  507. package/types/badge-testing.d.ts +36 -0
  508. package/types/badge.d.ts +14 -0
  509. package/types/bottom-sheet-testing.d.ts +26 -0
  510. package/types/bottom-sheet.d.ts +192 -0
  511. package/types/button-testing.d.ts +70 -0
  512. package/types/button-toggle-testing.d.ts +97 -0
  513. package/types/button-toggle.d.ts +16 -0
  514. package/types/button.d.ts +210 -0
  515. package/types/card-testing.d.ts +41 -0
  516. package/types/card.d.ts +156 -0
  517. package/types/checkbox-testing.d.ts +86 -0
  518. package/types/checkbox.d.ts +216 -0
  519. package/types/chips-testing.d.ts +270 -0
  520. package/types/chips.d.ts +993 -0
  521. package/types/core-testing.d.ts +32 -0
  522. package/types/core.d.ts +185 -0
  523. package/types/datepicker-testing.d.ts +25 -0
  524. package/types/datepicker.d.ts +1746 -0
  525. package/types/dialog-testing.d.ts +83 -0
  526. package/types/dialog.d.ts +84 -0
  527. package/types/divider-testing.d.ts +15 -0
  528. package/types/divider.d.ts +24 -0
  529. package/types/expansion-testing.d.ts +101 -0
  530. package/types/expansion.d.ts +258 -0
  531. package/types/form-field-testing-control.d.ts +13 -0
  532. package/types/form-field-testing.d.ts +127 -0
  533. package/types/form-field.d.ts +19 -0
  534. package/types/grid-list-testing.d.ts +82 -0
  535. package/types/grid-list.d.ts +207 -0
  536. package/types/icon-testing.d.ts +81 -0
  537. package/types/icon.d.ts +8 -0
  538. package/types/input-testing.d.ts +73 -0
  539. package/types/input.d.ts +208 -0
  540. package/types/list-testing.d.ts +354 -0
  541. package/types/list.d.ts +516 -0
  542. package/types/material.d.ts +3 -0
  543. package/types/menu-testing.d.ts +141 -0
  544. package/types/menu.d.ts +547 -0
  545. package/types/paginator-testing.d.ts +51 -0
  546. package/types/paginator.d.ts +36 -0
  547. package/types/progress-bar-testing.d.ts +24 -0
  548. package/types/progress-bar.d.ts +106 -0
  549. package/types/progress-spinner-testing.d.ts +28 -0
  550. package/types/progress-spinner.d.ts +13 -0
  551. package/types/radio-testing.d.ts +109 -0
  552. package/types/radio.d.ts +295 -0
  553. package/types/select-testing.d.ts +63 -0
  554. package/types/select.d.ts +448 -0
  555. package/types/sidenav-testing.d.ts +122 -0
  556. package/types/sidenav.d.ts +335 -0
  557. package/types/slide-toggle-testing.d.ts +66 -0
  558. package/types/slide-toggle.d.ts +151 -0
  559. package/types/slider-testing.d.ts +90 -0
  560. package/types/slider.d.ts +662 -0
  561. package/types/snack-bar-testing.d.ts +64 -0
  562. package/types/snack-bar.d.ts +328 -0
  563. package/types/sort-testing.d.ts +48 -0
  564. package/types/sort.d.ts +126 -0
  565. package/types/stepper-testing.d.ts +136 -0
  566. package/types/stepper.d.ts +225 -0
  567. package/types/table-testing.d.ts +174 -0
  568. package/types/table.d.ts +302 -0
  569. package/types/tabs-testing.d.ts +145 -0
  570. package/types/tabs.d.ts +890 -0
  571. package/types/timepicker-testing.d.ts +108 -0
  572. package/types/timepicker.d.ts +318 -0
  573. package/types/toolbar-testing.d.ts +33 -0
  574. package/types/toolbar.d.ts +44 -0
  575. package/types/tooltip-testing.d.ts +35 -0
  576. package/types/tooltip.d.ts +17 -0
  577. package/types/tree-testing.d.ts +119 -0
  578. package/types/tree.d.ts +233 -0
@@ -0,0 +1,2435 @@
1
+ import { FocusKeyManager, _IdGenerator, CdkMonitorFocus, FocusMonitor } from '@angular/cdk/a11y';
2
+ import { Directionality, BidiModule } from '@angular/cdk/bidi';
3
+ import { hasModifierKey, SPACE, ENTER } from '@angular/cdk/keycodes';
4
+ import { SharedResizeObserver } from '@angular/cdk/observers/private';
5
+ import { Platform } from '@angular/cdk/platform';
6
+ import { ViewportRuler, CdkScrollable } from '@angular/cdk/scrolling';
7
+ import * as i0 from '@angular/core';
8
+ import { InjectionToken, inject, TemplateRef, Directive, ViewContainerRef, booleanAttribute, Component, ChangeDetectionStrategy, ViewEncapsulation, Input, ContentChild, ViewChild, ElementRef, ChangeDetectorRef, NgZone, Injector, Renderer2, EventEmitter, afterNextRender, numberAttribute, Output, ContentChildren, QueryList, ViewChildren, signal, forwardRef, computed, HostAttributeToken, NgModule } from '@angular/core';
9
+ import { Subject, of, merge, EMPTY, Observable, timer, Subscription, BehaviorSubject } from 'rxjs';
10
+ import { debounceTime, takeUntil, startWith, switchMap, skip, filter } from 'rxjs/operators';
11
+ import { _animationsDisabled } from './_animation-chunk.mjs';
12
+ import { CdkPortal, TemplatePortal, CdkPortalOutlet } from '@angular/cdk/portal';
13
+ import { _CdkPrivateStyleLoader } from '@angular/cdk/private';
14
+ import { _StructuralStylesLoader } from './_structural-styles-chunk.mjs';
15
+ import { CdkObserveContent } from '@angular/cdk/observers';
16
+ import { MatRipple, MAT_RIPPLE_GLOBAL_OPTIONS } from './_ripple-chunk.mjs';
17
+ import '@angular/cdk/layout';
18
+ import '@angular/cdk/coercion';
19
+
20
+ const MAT_TAB_CONTENT = new InjectionToken('MatTabContent');
21
+ class MatTabContent {
22
+ template = inject(TemplateRef);
23
+ constructor() {}
24
+ static ɵfac = i0.ɵɵngDeclareFactory({
25
+ minVersion: "12.0.0",
26
+ version: "22.0.0-next.1",
27
+ ngImport: i0,
28
+ type: MatTabContent,
29
+ deps: [],
30
+ target: i0.ɵɵFactoryTarget.Directive
31
+ });
32
+ static ɵdir = i0.ɵɵngDeclareDirective({
33
+ minVersion: "14.0.0",
34
+ version: "22.0.0-next.1",
35
+ type: MatTabContent,
36
+ isStandalone: true,
37
+ selector: "[matTabContent]",
38
+ providers: [{
39
+ provide: MAT_TAB_CONTENT,
40
+ useExisting: MatTabContent
41
+ }],
42
+ ngImport: i0
43
+ });
44
+ }
45
+ i0.ɵɵngDeclareClassMetadata({
46
+ minVersion: "12.0.0",
47
+ version: "22.0.0-next.1",
48
+ ngImport: i0,
49
+ type: MatTabContent,
50
+ decorators: [{
51
+ type: Directive,
52
+ args: [{
53
+ selector: '[matTabContent]',
54
+ providers: [{
55
+ provide: MAT_TAB_CONTENT,
56
+ useExisting: MatTabContent
57
+ }]
58
+ }]
59
+ }],
60
+ ctorParameters: () => []
61
+ });
62
+
63
+ const MAT_TAB_LABEL = new InjectionToken('MatTabLabel');
64
+ const MAT_TAB = new InjectionToken('MAT_TAB');
65
+ class MatTabLabel extends CdkPortal {
66
+ _closestTab = inject(MAT_TAB, {
67
+ optional: true
68
+ });
69
+ static ɵfac = i0.ɵɵngDeclareFactory({
70
+ minVersion: "12.0.0",
71
+ version: "22.0.0-next.1",
72
+ ngImport: i0,
73
+ type: MatTabLabel,
74
+ deps: null,
75
+ target: i0.ɵɵFactoryTarget.Directive
76
+ });
77
+ static ɵdir = i0.ɵɵngDeclareDirective({
78
+ minVersion: "14.0.0",
79
+ version: "22.0.0-next.1",
80
+ type: MatTabLabel,
81
+ isStandalone: true,
82
+ selector: "[mat-tab-label], [matTabLabel]",
83
+ providers: [{
84
+ provide: MAT_TAB_LABEL,
85
+ useExisting: MatTabLabel
86
+ }],
87
+ usesInheritance: true,
88
+ ngImport: i0
89
+ });
90
+ }
91
+ i0.ɵɵngDeclareClassMetadata({
92
+ minVersion: "12.0.0",
93
+ version: "22.0.0-next.1",
94
+ ngImport: i0,
95
+ type: MatTabLabel,
96
+ decorators: [{
97
+ type: Directive,
98
+ args: [{
99
+ selector: '[mat-tab-label], [matTabLabel]',
100
+ providers: [{
101
+ provide: MAT_TAB_LABEL,
102
+ useExisting: MatTabLabel
103
+ }]
104
+ }]
105
+ }]
106
+ });
107
+
108
+ const MAT_TAB_GROUP = new InjectionToken('MAT_TAB_GROUP');
109
+ class MatTab {
110
+ _viewContainerRef = inject(ViewContainerRef);
111
+ _closestTabGroup = inject(MAT_TAB_GROUP, {
112
+ optional: true
113
+ });
114
+ disabled = false;
115
+ get templateLabel() {
116
+ return this._templateLabel;
117
+ }
118
+ set templateLabel(value) {
119
+ this._setTemplateLabelInput(value);
120
+ }
121
+ _templateLabel;
122
+ _explicitContent = undefined;
123
+ _implicitContent;
124
+ textLabel = '';
125
+ ariaLabel;
126
+ ariaLabelledby;
127
+ labelClass;
128
+ bodyClass;
129
+ id = null;
130
+ _contentPortal = null;
131
+ get content() {
132
+ return this._contentPortal;
133
+ }
134
+ _stateChanges = new Subject();
135
+ position = null;
136
+ origin = null;
137
+ isActive = false;
138
+ constructor() {
139
+ inject(_CdkPrivateStyleLoader).load(_StructuralStylesLoader);
140
+ }
141
+ ngOnChanges(changes) {
142
+ if (changes.hasOwnProperty('textLabel') || changes.hasOwnProperty('disabled')) {
143
+ this._stateChanges.next();
144
+ }
145
+ }
146
+ ngOnDestroy() {
147
+ this._stateChanges.complete();
148
+ }
149
+ ngOnInit() {
150
+ this._contentPortal = new TemplatePortal(this._explicitContent || this._implicitContent, this._viewContainerRef);
151
+ }
152
+ _setTemplateLabelInput(value) {
153
+ if (value && value._closestTab === this) {
154
+ this._templateLabel = value;
155
+ }
156
+ }
157
+ static ɵfac = i0.ɵɵngDeclareFactory({
158
+ minVersion: "12.0.0",
159
+ version: "22.0.0-next.1",
160
+ ngImport: i0,
161
+ type: MatTab,
162
+ deps: [],
163
+ target: i0.ɵɵFactoryTarget.Component
164
+ });
165
+ static ɵcmp = i0.ɵɵngDeclareComponent({
166
+ minVersion: "16.1.0",
167
+ version: "22.0.0-next.1",
168
+ type: MatTab,
169
+ isStandalone: true,
170
+ selector: "mat-tab",
171
+ inputs: {
172
+ disabled: ["disabled", "disabled", booleanAttribute],
173
+ textLabel: ["label", "textLabel"],
174
+ ariaLabel: ["aria-label", "ariaLabel"],
175
+ ariaLabelledby: ["aria-labelledby", "ariaLabelledby"],
176
+ labelClass: "labelClass",
177
+ bodyClass: "bodyClass",
178
+ id: "id"
179
+ },
180
+ host: {
181
+ attributes: {
182
+ "hidden": ""
183
+ },
184
+ properties: {
185
+ "attr.id": "null"
186
+ }
187
+ },
188
+ providers: [{
189
+ provide: MAT_TAB,
190
+ useExisting: MatTab
191
+ }],
192
+ queries: [{
193
+ propertyName: "templateLabel",
194
+ first: true,
195
+ predicate: MatTabLabel,
196
+ descendants: true
197
+ }, {
198
+ propertyName: "_explicitContent",
199
+ first: true,
200
+ predicate: MatTabContent,
201
+ descendants: true,
202
+ read: TemplateRef,
203
+ static: true
204
+ }],
205
+ viewQueries: [{
206
+ propertyName: "_implicitContent",
207
+ first: true,
208
+ predicate: TemplateRef,
209
+ descendants: true,
210
+ static: true
211
+ }],
212
+ exportAs: ["matTab"],
213
+ usesOnChanges: true,
214
+ ngImport: i0,
215
+ template: "<!-- Create a template for the content of the <mat-tab> so that we can grab a reference to this\n TemplateRef and use it in a Portal to render the tab content in the appropriate place in the\n tab-group. -->\n<ng-template><ng-content></ng-content></ng-template>\n",
216
+ changeDetection: i0.ChangeDetectionStrategy.Eager,
217
+ encapsulation: i0.ViewEncapsulation.None
218
+ });
219
+ }
220
+ i0.ɵɵngDeclareClassMetadata({
221
+ minVersion: "12.0.0",
222
+ version: "22.0.0-next.1",
223
+ ngImport: i0,
224
+ type: MatTab,
225
+ decorators: [{
226
+ type: Component,
227
+ args: [{
228
+ selector: 'mat-tab',
229
+ changeDetection: ChangeDetectionStrategy.Default,
230
+ encapsulation: ViewEncapsulation.None,
231
+ exportAs: 'matTab',
232
+ providers: [{
233
+ provide: MAT_TAB,
234
+ useExisting: MatTab
235
+ }],
236
+ host: {
237
+ 'hidden': '',
238
+ '[attr.id]': 'null'
239
+ },
240
+ template: "<!-- Create a template for the content of the <mat-tab> so that we can grab a reference to this\n TemplateRef and use it in a Portal to render the tab content in the appropriate place in the\n tab-group. -->\n<ng-template><ng-content></ng-content></ng-template>\n"
241
+ }]
242
+ }],
243
+ ctorParameters: () => [],
244
+ propDecorators: {
245
+ disabled: [{
246
+ type: Input,
247
+ args: [{
248
+ transform: booleanAttribute
249
+ }]
250
+ }],
251
+ templateLabel: [{
252
+ type: ContentChild,
253
+ args: [MatTabLabel]
254
+ }],
255
+ _explicitContent: [{
256
+ type: ContentChild,
257
+ args: [MatTabContent, {
258
+ read: TemplateRef,
259
+ static: true
260
+ }]
261
+ }],
262
+ _implicitContent: [{
263
+ type: ViewChild,
264
+ args: [TemplateRef, {
265
+ static: true
266
+ }]
267
+ }],
268
+ textLabel: [{
269
+ type: Input,
270
+ args: ['label']
271
+ }],
272
+ ariaLabel: [{
273
+ type: Input,
274
+ args: ['aria-label']
275
+ }],
276
+ ariaLabelledby: [{
277
+ type: Input,
278
+ args: ['aria-labelledby']
279
+ }],
280
+ labelClass: [{
281
+ type: Input
282
+ }],
283
+ bodyClass: [{
284
+ type: Input
285
+ }],
286
+ id: [{
287
+ type: Input
288
+ }]
289
+ }
290
+ });
291
+
292
+ const ACTIVE_CLASS = 'mdc-tab-indicator--active';
293
+ const NO_TRANSITION_CLASS = 'mdc-tab-indicator--no-transition';
294
+ class MatInkBar {
295
+ _items;
296
+ _currentItem;
297
+ constructor(_items) {
298
+ this._items = _items;
299
+ }
300
+ hide() {
301
+ this._items.forEach(item => item.deactivateInkBar());
302
+ this._currentItem = undefined;
303
+ }
304
+ alignToElement(element) {
305
+ const correspondingItem = this._items.find(item => item.elementRef.nativeElement === element);
306
+ const currentItem = this._currentItem;
307
+ if (correspondingItem === currentItem) {
308
+ return;
309
+ }
310
+ currentItem?.deactivateInkBar();
311
+ if (correspondingItem) {
312
+ const domRect = currentItem?.elementRef.nativeElement.getBoundingClientRect?.();
313
+ correspondingItem.activateInkBar(domRect);
314
+ this._currentItem = correspondingItem;
315
+ }
316
+ }
317
+ }
318
+ class InkBarItem {
319
+ _elementRef = inject(ElementRef);
320
+ _inkBarElement = null;
321
+ _inkBarContentElement = null;
322
+ _fitToContent = false;
323
+ get fitInkBarToContent() {
324
+ return this._fitToContent;
325
+ }
326
+ set fitInkBarToContent(newValue) {
327
+ if (this._fitToContent !== newValue) {
328
+ this._fitToContent = newValue;
329
+ if (this._inkBarElement) {
330
+ this._appendInkBarElement();
331
+ }
332
+ }
333
+ }
334
+ activateInkBar(previousIndicatorClientRect) {
335
+ const element = this._elementRef.nativeElement;
336
+ if (!previousIndicatorClientRect || !element.getBoundingClientRect || !this._inkBarContentElement) {
337
+ element.classList.add(ACTIVE_CLASS);
338
+ return;
339
+ }
340
+ const currentClientRect = element.getBoundingClientRect();
341
+ const widthDelta = previousIndicatorClientRect.width / currentClientRect.width;
342
+ const xPosition = previousIndicatorClientRect.left - currentClientRect.left;
343
+ element.classList.add(NO_TRANSITION_CLASS);
344
+ this._inkBarContentElement.style.setProperty('transform', `translateX(${xPosition}px) scaleX(${widthDelta})`);
345
+ element.getBoundingClientRect();
346
+ element.classList.remove(NO_TRANSITION_CLASS);
347
+ element.classList.add(ACTIVE_CLASS);
348
+ this._inkBarContentElement.style.setProperty('transform', '');
349
+ }
350
+ deactivateInkBar() {
351
+ this._elementRef.nativeElement.classList.remove(ACTIVE_CLASS);
352
+ }
353
+ ngOnInit() {
354
+ this._createInkBarElement();
355
+ }
356
+ ngOnDestroy() {
357
+ this._inkBarElement?.remove();
358
+ this._inkBarElement = this._inkBarContentElement = null;
359
+ }
360
+ _createInkBarElement() {
361
+ const documentNode = this._elementRef.nativeElement.ownerDocument || document;
362
+ const inkBarElement = this._inkBarElement = documentNode.createElement('span');
363
+ const inkBarContentElement = this._inkBarContentElement = documentNode.createElement('span');
364
+ inkBarElement.className = 'mdc-tab-indicator';
365
+ inkBarContentElement.className = 'mdc-tab-indicator__content mdc-tab-indicator__content--underline';
366
+ inkBarElement.appendChild(this._inkBarContentElement);
367
+ this._appendInkBarElement();
368
+ }
369
+ _appendInkBarElement() {
370
+ if (!this._inkBarElement && (typeof ngDevMode === 'undefined' || ngDevMode)) {
371
+ throw Error('Ink bar element has not been created and cannot be appended');
372
+ }
373
+ const parentElement = this._fitToContent ? this._elementRef.nativeElement.querySelector('.mdc-tab__content') : this._elementRef.nativeElement;
374
+ if (!parentElement && (typeof ngDevMode === 'undefined' || ngDevMode)) {
375
+ throw Error('Missing element to host the ink bar');
376
+ }
377
+ parentElement.appendChild(this._inkBarElement);
378
+ }
379
+ static ɵfac = i0.ɵɵngDeclareFactory({
380
+ minVersion: "12.0.0",
381
+ version: "22.0.0-next.1",
382
+ ngImport: i0,
383
+ type: InkBarItem,
384
+ deps: [],
385
+ target: i0.ɵɵFactoryTarget.Directive
386
+ });
387
+ static ɵdir = i0.ɵɵngDeclareDirective({
388
+ minVersion: "16.1.0",
389
+ version: "22.0.0-next.1",
390
+ type: InkBarItem,
391
+ isStandalone: true,
392
+ inputs: {
393
+ fitInkBarToContent: ["fitInkBarToContent", "fitInkBarToContent", booleanAttribute]
394
+ },
395
+ ngImport: i0
396
+ });
397
+ }
398
+ i0.ɵɵngDeclareClassMetadata({
399
+ minVersion: "12.0.0",
400
+ version: "22.0.0-next.1",
401
+ ngImport: i0,
402
+ type: InkBarItem,
403
+ decorators: [{
404
+ type: Directive
405
+ }],
406
+ propDecorators: {
407
+ fitInkBarToContent: [{
408
+ type: Input,
409
+ args: [{
410
+ transform: booleanAttribute
411
+ }]
412
+ }]
413
+ }
414
+ });
415
+ const _MAT_INK_BAR_POSITIONER = new InjectionToken('MatInkBarPositioner', {
416
+ providedIn: 'root',
417
+ factory: () => {
418
+ const method = element => ({
419
+ left: element ? (element.offsetLeft || 0) + 'px' : '0',
420
+ width: element ? (element.offsetWidth || 0) + 'px' : '0'
421
+ });
422
+ return method;
423
+ }
424
+ });
425
+
426
+ class MatTabLabelWrapper extends InkBarItem {
427
+ elementRef = inject(ElementRef);
428
+ disabled = false;
429
+ focus() {
430
+ this.elementRef.nativeElement.focus();
431
+ }
432
+ getOffsetLeft() {
433
+ return this.elementRef.nativeElement.offsetLeft;
434
+ }
435
+ getOffsetWidth() {
436
+ return this.elementRef.nativeElement.offsetWidth;
437
+ }
438
+ static ɵfac = i0.ɵɵngDeclareFactory({
439
+ minVersion: "12.0.0",
440
+ version: "22.0.0-next.1",
441
+ ngImport: i0,
442
+ type: MatTabLabelWrapper,
443
+ deps: null,
444
+ target: i0.ɵɵFactoryTarget.Directive
445
+ });
446
+ static ɵdir = i0.ɵɵngDeclareDirective({
447
+ minVersion: "16.1.0",
448
+ version: "22.0.0-next.1",
449
+ type: MatTabLabelWrapper,
450
+ isStandalone: true,
451
+ selector: "[matTabLabelWrapper]",
452
+ inputs: {
453
+ disabled: ["disabled", "disabled", booleanAttribute]
454
+ },
455
+ host: {
456
+ properties: {
457
+ "class.mat-mdc-tab-disabled": "disabled",
458
+ "attr.aria-disabled": "!!disabled"
459
+ }
460
+ },
461
+ usesInheritance: true,
462
+ ngImport: i0
463
+ });
464
+ }
465
+ i0.ɵɵngDeclareClassMetadata({
466
+ minVersion: "12.0.0",
467
+ version: "22.0.0-next.1",
468
+ ngImport: i0,
469
+ type: MatTabLabelWrapper,
470
+ decorators: [{
471
+ type: Directive,
472
+ args: [{
473
+ selector: '[matTabLabelWrapper]',
474
+ host: {
475
+ '[class.mat-mdc-tab-disabled]': 'disabled',
476
+ '[attr.aria-disabled]': '!!disabled'
477
+ }
478
+ }]
479
+ }],
480
+ propDecorators: {
481
+ disabled: [{
482
+ type: Input,
483
+ args: [{
484
+ transform: booleanAttribute
485
+ }]
486
+ }]
487
+ }
488
+ });
489
+
490
+ const passiveEventListenerOptions = {
491
+ passive: true
492
+ };
493
+ const HEADER_SCROLL_DELAY = 650;
494
+ const HEADER_SCROLL_INTERVAL = 100;
495
+ class MatPaginatedTabHeader {
496
+ _elementRef = inject(ElementRef);
497
+ _changeDetectorRef = inject(ChangeDetectorRef);
498
+ _viewportRuler = inject(ViewportRuler);
499
+ _dir = inject(Directionality, {
500
+ optional: true
501
+ });
502
+ _ngZone = inject(NgZone);
503
+ _platform = inject(Platform);
504
+ _sharedResizeObserver = inject(SharedResizeObserver);
505
+ _injector = inject(Injector);
506
+ _renderer = inject(Renderer2);
507
+ _animationsDisabled = _animationsDisabled();
508
+ _eventCleanups;
509
+ _scrollDistance = 0;
510
+ _selectedIndexChanged = false;
511
+ _destroyed = new Subject();
512
+ _showPaginationControls = false;
513
+ _disableScrollAfter = true;
514
+ _disableScrollBefore = true;
515
+ _tabLabelCount;
516
+ _scrollDistanceChanged = false;
517
+ _keyManager;
518
+ _currentTextContent;
519
+ _stopScrolling = new Subject();
520
+ disablePagination = false;
521
+ get selectedIndex() {
522
+ return this._selectedIndex;
523
+ }
524
+ set selectedIndex(v) {
525
+ const value = isNaN(v) ? 0 : v;
526
+ if (this._selectedIndex != value) {
527
+ this._selectedIndexChanged = true;
528
+ this._selectedIndex = value;
529
+ if (this._keyManager) {
530
+ this._keyManager.updateActiveItem(value);
531
+ }
532
+ }
533
+ }
534
+ _selectedIndex = 0;
535
+ selectFocusedIndex = new EventEmitter();
536
+ indexFocused = new EventEmitter();
537
+ constructor() {
538
+ this._eventCleanups = this._ngZone.runOutsideAngular(() => [this._renderer.listen(this._elementRef.nativeElement, 'mouseleave', () => this._stopInterval())]);
539
+ }
540
+ ngAfterViewInit() {
541
+ this._eventCleanups.push(this._renderer.listen(this._previousPaginator.nativeElement, 'touchstart', () => this._handlePaginatorPress('before'), passiveEventListenerOptions), this._renderer.listen(this._nextPaginator.nativeElement, 'touchstart', () => this._handlePaginatorPress('after'), passiveEventListenerOptions));
542
+ }
543
+ ngAfterContentInit() {
544
+ const dirChange = this._dir ? this._dir.change : of('ltr');
545
+ const resize = this._sharedResizeObserver.observe(this._elementRef.nativeElement).pipe(debounceTime(32), takeUntil(this._destroyed));
546
+ const viewportResize = this._viewportRuler.change(150).pipe(takeUntil(this._destroyed));
547
+ const realign = () => {
548
+ this.updatePagination();
549
+ this._alignInkBarToSelectedTab();
550
+ };
551
+ this._keyManager = new FocusKeyManager(this._items).withHorizontalOrientation(this._getLayoutDirection()).withHomeAndEnd().withWrap().skipPredicate(() => false);
552
+ this._keyManager.updateActiveItem(Math.max(this._selectedIndex, 0));
553
+ afterNextRender(realign, {
554
+ injector: this._injector
555
+ });
556
+ merge(dirChange, viewportResize, resize, this._items.changes, this._itemsResized()).pipe(takeUntil(this._destroyed)).subscribe(() => {
557
+ this._ngZone.run(() => {
558
+ Promise.resolve().then(() => {
559
+ this._scrollDistance = Math.max(0, Math.min(this._getMaxScrollDistance(), this._scrollDistance));
560
+ realign();
561
+ });
562
+ });
563
+ this._keyManager?.withHorizontalOrientation(this._getLayoutDirection());
564
+ });
565
+ this._keyManager.change.subscribe(newFocusIndex => {
566
+ this.indexFocused.emit(newFocusIndex);
567
+ this._setTabFocus(newFocusIndex);
568
+ });
569
+ }
570
+ _itemsResized() {
571
+ if (typeof ResizeObserver !== 'function') {
572
+ return EMPTY;
573
+ }
574
+ return this._items.changes.pipe(startWith(this._items), switchMap(tabItems => new Observable(observer => this._ngZone.runOutsideAngular(() => {
575
+ const resizeObserver = new ResizeObserver(entries => observer.next(entries));
576
+ tabItems.forEach(item => resizeObserver.observe(item.elementRef.nativeElement));
577
+ return () => {
578
+ resizeObserver.disconnect();
579
+ };
580
+ }))), skip(1), filter(entries => entries.some(e => e.contentRect.width > 0 && e.contentRect.height > 0)));
581
+ }
582
+ ngAfterContentChecked() {
583
+ if (this._tabLabelCount != this._items.length) {
584
+ this.updatePagination();
585
+ this._tabLabelCount = this._items.length;
586
+ this._changeDetectorRef.markForCheck();
587
+ }
588
+ if (this._selectedIndexChanged) {
589
+ this._scrollToLabel(this._selectedIndex);
590
+ this._checkScrollingControls();
591
+ this._alignInkBarToSelectedTab();
592
+ this._selectedIndexChanged = false;
593
+ this._changeDetectorRef.markForCheck();
594
+ }
595
+ if (this._scrollDistanceChanged) {
596
+ this._updateTabScrollPosition();
597
+ this._scrollDistanceChanged = false;
598
+ this._changeDetectorRef.markForCheck();
599
+ }
600
+ }
601
+ ngOnDestroy() {
602
+ this._eventCleanups.forEach(cleanup => cleanup());
603
+ this._keyManager?.destroy();
604
+ this._destroyed.next();
605
+ this._destroyed.complete();
606
+ this._stopScrolling.complete();
607
+ }
608
+ _handleKeydown(event) {
609
+ if (hasModifierKey(event)) {
610
+ return;
611
+ }
612
+ switch (event.keyCode) {
613
+ case ENTER:
614
+ case SPACE:
615
+ if (this.focusIndex !== this.selectedIndex) {
616
+ const item = this._items.get(this.focusIndex);
617
+ if (item && !item.disabled) {
618
+ this.selectFocusedIndex.emit(this.focusIndex);
619
+ this._itemSelected(event);
620
+ }
621
+ }
622
+ break;
623
+ default:
624
+ this._keyManager?.onKeydown(event);
625
+ }
626
+ }
627
+ _onContentChanges() {
628
+ const textContent = this._elementRef.nativeElement.textContent;
629
+ if (textContent !== this._currentTextContent) {
630
+ this._currentTextContent = textContent || '';
631
+ this._ngZone.run(() => {
632
+ this.updatePagination();
633
+ this._alignInkBarToSelectedTab();
634
+ this._changeDetectorRef.markForCheck();
635
+ });
636
+ }
637
+ }
638
+ updatePagination() {
639
+ this._checkPaginationEnabled();
640
+ this._checkScrollingControls();
641
+ this._updateTabScrollPosition();
642
+ }
643
+ get focusIndex() {
644
+ return this._keyManager ? this._keyManager.activeItemIndex : 0;
645
+ }
646
+ set focusIndex(value) {
647
+ if (!this._isValidIndex(value) || this.focusIndex === value || !this._keyManager) {
648
+ return;
649
+ }
650
+ this._keyManager.setActiveItem(value);
651
+ }
652
+ _isValidIndex(index) {
653
+ return this._items ? !!this._items.toArray()[index] : true;
654
+ }
655
+ _setTabFocus(tabIndex) {
656
+ if (this._showPaginationControls) {
657
+ this._scrollToLabel(tabIndex);
658
+ }
659
+ if (this._items && this._items.length) {
660
+ this._items.toArray()[tabIndex].focus();
661
+ const containerEl = this._tabListContainer.nativeElement;
662
+ const dir = this._getLayoutDirection();
663
+ if (dir == 'ltr') {
664
+ containerEl.scrollLeft = 0;
665
+ } else {
666
+ containerEl.scrollLeft = containerEl.scrollWidth - containerEl.offsetWidth;
667
+ }
668
+ }
669
+ }
670
+ _getLayoutDirection() {
671
+ return this._dir && this._dir.value === 'rtl' ? 'rtl' : 'ltr';
672
+ }
673
+ _updateTabScrollPosition() {
674
+ if (this.disablePagination) {
675
+ return;
676
+ }
677
+ const scrollDistance = this.scrollDistance;
678
+ const translateX = this._getLayoutDirection() === 'ltr' ? -scrollDistance : scrollDistance;
679
+ this._tabList.nativeElement.style.transform = `translateX(${Math.round(translateX)}px)`;
680
+ if (this._platform.TRIDENT || this._platform.EDGE) {
681
+ this._tabListContainer.nativeElement.scrollLeft = 0;
682
+ }
683
+ }
684
+ get scrollDistance() {
685
+ return this._scrollDistance;
686
+ }
687
+ set scrollDistance(value) {
688
+ this._scrollTo(value);
689
+ }
690
+ _scrollHeader(direction) {
691
+ const viewLength = this._tabListContainer.nativeElement.offsetWidth;
692
+ const scrollAmount = (direction == 'before' ? -1 : 1) * viewLength / 3;
693
+ return this._scrollTo(this._scrollDistance + scrollAmount);
694
+ }
695
+ _handlePaginatorClick(direction) {
696
+ this._stopInterval();
697
+ this._scrollHeader(direction);
698
+ }
699
+ _scrollToLabel(labelIndex) {
700
+ if (this.disablePagination) {
701
+ return;
702
+ }
703
+ const selectedLabel = this._items ? this._items.toArray()[labelIndex] : null;
704
+ if (!selectedLabel) {
705
+ return;
706
+ }
707
+ const viewLength = this._tabListContainer.nativeElement.offsetWidth;
708
+ const {
709
+ offsetLeft,
710
+ offsetWidth
711
+ } = selectedLabel.elementRef.nativeElement;
712
+ let labelBeforePos, labelAfterPos;
713
+ if (this._getLayoutDirection() == 'ltr') {
714
+ labelBeforePos = offsetLeft;
715
+ labelAfterPos = labelBeforePos + offsetWidth;
716
+ } else {
717
+ labelAfterPos = this._tabListInner.nativeElement.offsetWidth - offsetLeft;
718
+ labelBeforePos = labelAfterPos - offsetWidth;
719
+ }
720
+ const beforeVisiblePos = this.scrollDistance;
721
+ const afterVisiblePos = this.scrollDistance + viewLength;
722
+ if (labelBeforePos < beforeVisiblePos) {
723
+ this.scrollDistance -= beforeVisiblePos - labelBeforePos;
724
+ } else if (labelAfterPos > afterVisiblePos) {
725
+ this.scrollDistance += Math.min(labelAfterPos - afterVisiblePos, labelBeforePos - beforeVisiblePos);
726
+ }
727
+ }
728
+ _checkPaginationEnabled() {
729
+ if (this.disablePagination) {
730
+ this._showPaginationControls = false;
731
+ } else {
732
+ const scrollWidth = this._tabListInner.nativeElement.scrollWidth;
733
+ const containerWidth = this._elementRef.nativeElement.offsetWidth;
734
+ const isEnabled = scrollWidth - containerWidth >= 5;
735
+ if (!isEnabled) {
736
+ this.scrollDistance = 0;
737
+ }
738
+ if (isEnabled !== this._showPaginationControls) {
739
+ this._showPaginationControls = isEnabled;
740
+ this._changeDetectorRef.markForCheck();
741
+ }
742
+ }
743
+ }
744
+ _checkScrollingControls() {
745
+ if (this.disablePagination) {
746
+ this._disableScrollAfter = this._disableScrollBefore = true;
747
+ } else {
748
+ this._disableScrollBefore = this.scrollDistance == 0;
749
+ this._disableScrollAfter = this.scrollDistance == this._getMaxScrollDistance();
750
+ this._changeDetectorRef.markForCheck();
751
+ }
752
+ }
753
+ _getMaxScrollDistance() {
754
+ const lengthOfTabList = this._tabListInner.nativeElement.scrollWidth;
755
+ const viewLength = this._tabListContainer.nativeElement.offsetWidth;
756
+ return lengthOfTabList - viewLength || 0;
757
+ }
758
+ _alignInkBarToSelectedTab() {
759
+ const selectedItem = this._items && this._items.length ? this._items.toArray()[this.selectedIndex] : null;
760
+ const selectedLabelWrapper = selectedItem ? selectedItem.elementRef.nativeElement : null;
761
+ if (selectedLabelWrapper) {
762
+ this._inkBar.alignToElement(selectedLabelWrapper);
763
+ } else {
764
+ this._inkBar.hide();
765
+ }
766
+ }
767
+ _stopInterval() {
768
+ this._stopScrolling.next();
769
+ }
770
+ _handlePaginatorPress(direction, mouseEvent) {
771
+ if (mouseEvent && mouseEvent.button != null && mouseEvent.button !== 0) {
772
+ return;
773
+ }
774
+ this._stopInterval();
775
+ timer(HEADER_SCROLL_DELAY, HEADER_SCROLL_INTERVAL).pipe(takeUntil(merge(this._stopScrolling, this._destroyed))).subscribe(() => {
776
+ const {
777
+ maxScrollDistance,
778
+ distance
779
+ } = this._scrollHeader(direction);
780
+ if (distance === 0 || distance >= maxScrollDistance) {
781
+ this._stopInterval();
782
+ }
783
+ });
784
+ }
785
+ _scrollTo(position) {
786
+ if (this.disablePagination) {
787
+ return {
788
+ maxScrollDistance: 0,
789
+ distance: 0
790
+ };
791
+ }
792
+ const maxScrollDistance = this._getMaxScrollDistance();
793
+ this._scrollDistance = Math.max(0, Math.min(maxScrollDistance, position));
794
+ this._scrollDistanceChanged = true;
795
+ this._checkScrollingControls();
796
+ return {
797
+ maxScrollDistance,
798
+ distance: this._scrollDistance
799
+ };
800
+ }
801
+ static ɵfac = i0.ɵɵngDeclareFactory({
802
+ minVersion: "12.0.0",
803
+ version: "22.0.0-next.1",
804
+ ngImport: i0,
805
+ type: MatPaginatedTabHeader,
806
+ deps: [],
807
+ target: i0.ɵɵFactoryTarget.Directive
808
+ });
809
+ static ɵdir = i0.ɵɵngDeclareDirective({
810
+ minVersion: "16.1.0",
811
+ version: "22.0.0-next.1",
812
+ type: MatPaginatedTabHeader,
813
+ isStandalone: true,
814
+ inputs: {
815
+ disablePagination: ["disablePagination", "disablePagination", booleanAttribute],
816
+ selectedIndex: ["selectedIndex", "selectedIndex", numberAttribute]
817
+ },
818
+ outputs: {
819
+ selectFocusedIndex: "selectFocusedIndex",
820
+ indexFocused: "indexFocused"
821
+ },
822
+ ngImport: i0
823
+ });
824
+ }
825
+ i0.ɵɵngDeclareClassMetadata({
826
+ minVersion: "12.0.0",
827
+ version: "22.0.0-next.1",
828
+ ngImport: i0,
829
+ type: MatPaginatedTabHeader,
830
+ decorators: [{
831
+ type: Directive
832
+ }],
833
+ ctorParameters: () => [],
834
+ propDecorators: {
835
+ disablePagination: [{
836
+ type: Input,
837
+ args: [{
838
+ transform: booleanAttribute
839
+ }]
840
+ }],
841
+ selectedIndex: [{
842
+ type: Input,
843
+ args: [{
844
+ transform: numberAttribute
845
+ }]
846
+ }],
847
+ selectFocusedIndex: [{
848
+ type: Output
849
+ }],
850
+ indexFocused: [{
851
+ type: Output
852
+ }]
853
+ }
854
+ });
855
+
856
+ class MatTabHeader extends MatPaginatedTabHeader {
857
+ _items;
858
+ _tabListContainer;
859
+ _tabList;
860
+ _tabListInner;
861
+ _nextPaginator;
862
+ _previousPaginator;
863
+ _inkBar;
864
+ ariaLabel;
865
+ ariaLabelledby;
866
+ disableRipple = false;
867
+ ngAfterContentInit() {
868
+ this._inkBar = new MatInkBar(this._items);
869
+ super.ngAfterContentInit();
870
+ }
871
+ _itemSelected(event) {
872
+ event.preventDefault();
873
+ }
874
+ static ɵfac = i0.ɵɵngDeclareFactory({
875
+ minVersion: "12.0.0",
876
+ version: "22.0.0-next.1",
877
+ ngImport: i0,
878
+ type: MatTabHeader,
879
+ deps: null,
880
+ target: i0.ɵɵFactoryTarget.Component
881
+ });
882
+ static ɵcmp = i0.ɵɵngDeclareComponent({
883
+ minVersion: "16.1.0",
884
+ version: "22.0.0-next.1",
885
+ type: MatTabHeader,
886
+ isStandalone: true,
887
+ selector: "mat-tab-header",
888
+ inputs: {
889
+ ariaLabel: ["aria-label", "ariaLabel"],
890
+ ariaLabelledby: ["aria-labelledby", "ariaLabelledby"],
891
+ disableRipple: ["disableRipple", "disableRipple", booleanAttribute]
892
+ },
893
+ host: {
894
+ properties: {
895
+ "class.mat-mdc-tab-header-pagination-controls-enabled": "_showPaginationControls",
896
+ "class.mat-mdc-tab-header-rtl": "_getLayoutDirection() == 'rtl'"
897
+ },
898
+ classAttribute: "mat-mdc-tab-header"
899
+ },
900
+ queries: [{
901
+ propertyName: "_items",
902
+ predicate: MatTabLabelWrapper
903
+ }],
904
+ viewQueries: [{
905
+ propertyName: "_tabListContainer",
906
+ first: true,
907
+ predicate: ["tabListContainer"],
908
+ descendants: true,
909
+ static: true
910
+ }, {
911
+ propertyName: "_tabList",
912
+ first: true,
913
+ predicate: ["tabList"],
914
+ descendants: true,
915
+ static: true
916
+ }, {
917
+ propertyName: "_tabListInner",
918
+ first: true,
919
+ predicate: ["tabListInner"],
920
+ descendants: true,
921
+ static: true
922
+ }, {
923
+ propertyName: "_nextPaginator",
924
+ first: true,
925
+ predicate: ["nextPaginator"],
926
+ descendants: true
927
+ }, {
928
+ propertyName: "_previousPaginator",
929
+ first: true,
930
+ predicate: ["previousPaginator"],
931
+ descendants: true
932
+ }],
933
+ usesInheritance: true,
934
+ ngImport: i0,
935
+ template: "<!--\n Note that this intentionally uses a `div` instead of a `button`, because it's not part of\n the regular tabs flow and is only here to support mouse users. It should also not be focusable.\n-->\n<div class=\"mat-mdc-tab-header-pagination mat-mdc-tab-header-pagination-before\"\n #previousPaginator\n mat-ripple\n [matRippleDisabled]=\"_disableScrollBefore || disableRipple\"\n [class.mat-mdc-tab-header-pagination-disabled]=\"_disableScrollBefore\"\n (click)=\"_handlePaginatorClick('before')\"\n (mousedown)=\"_handlePaginatorPress('before', $event)\"\n (touchend)=\"_stopInterval()\">\n <div class=\"mat-mdc-tab-header-pagination-chevron\"></div>\n</div>\n\n<div\n class=\"mat-mdc-tab-label-container\"\n #tabListContainer\n (keydown)=\"_handleKeydown($event)\"\n [class._mat-animation-noopable]=\"_animationsDisabled\">\n <div\n #tabList\n class=\"mat-mdc-tab-list\"\n role=\"tablist\"\n [attr.aria-label]=\"ariaLabel || null\"\n [attr.aria-labelledby]=\"ariaLabelledby || null\"\n (cdkObserveContent)=\"_onContentChanges()\">\n <div class=\"mat-mdc-tab-labels\" #tabListInner>\n <ng-content></ng-content>\n </div>\n </div>\n</div>\n\n<div class=\"mat-mdc-tab-header-pagination mat-mdc-tab-header-pagination-after\"\n #nextPaginator\n mat-ripple\n [matRippleDisabled]=\"_disableScrollAfter || disableRipple\"\n [class.mat-mdc-tab-header-pagination-disabled]=\"_disableScrollAfter\"\n (mousedown)=\"_handlePaginatorPress('after', $event)\"\n (click)=\"_handlePaginatorClick('after')\"\n (touchend)=\"_stopInterval()\">\n <div class=\"mat-mdc-tab-header-pagination-chevron\"></div>\n</div>\n",
936
+ styles: [".mat-mdc-tab-header{display:flex;overflow:hidden;position:relative;flex-shrink:0}.mdc-tab-indicator .mdc-tab-indicator__content{transition-duration:var(--mat-tab-animation-duration, 250ms)}.mat-mdc-tab-header-pagination{-webkit-user-select:none;user-select:none;position:relative;display:none;justify-content:center;align-items:center;min-width:32px;cursor:pointer;z-index:2;-webkit-tap-highlight-color:rgba(0,0,0,0);touch-action:none;box-sizing:content-box;outline:0}.mat-mdc-tab-header-pagination::-moz-focus-inner{border:0}.mat-mdc-tab-header-pagination .mat-ripple-element{opacity:.12;background-color:var(--mat-tab-inactive-ripple-color, var(--mat-sys-on-surface))}.mat-mdc-tab-header-pagination-controls-enabled .mat-mdc-tab-header-pagination{display:flex}.mat-mdc-tab-header-pagination-before,.mat-mdc-tab-header-rtl .mat-mdc-tab-header-pagination-after{padding-left:4px}.mat-mdc-tab-header-pagination-before .mat-mdc-tab-header-pagination-chevron,.mat-mdc-tab-header-rtl .mat-mdc-tab-header-pagination-after .mat-mdc-tab-header-pagination-chevron{transform:rotate(-135deg)}.mat-mdc-tab-header-rtl .mat-mdc-tab-header-pagination-before,.mat-mdc-tab-header-pagination-after{padding-right:4px}.mat-mdc-tab-header-rtl .mat-mdc-tab-header-pagination-before .mat-mdc-tab-header-pagination-chevron,.mat-mdc-tab-header-pagination-after .mat-mdc-tab-header-pagination-chevron{transform:rotate(45deg)}.mat-mdc-tab-header-pagination-chevron{border-style:solid;border-width:2px 2px 0 0;height:8px;width:8px;border-color:var(--mat-tab-pagination-icon-color, var(--mat-sys-on-surface))}.mat-mdc-tab-header-pagination-disabled{box-shadow:none;cursor:default;pointer-events:none}.mat-mdc-tab-header-pagination-disabled .mat-mdc-tab-header-pagination-chevron{opacity:.4}.mat-mdc-tab-list{flex-grow:1;position:relative;transition:transform 500ms cubic-bezier(0.35, 0, 0.25, 1)}._mat-animation-noopable .mat-mdc-tab-list{transition:none}.mat-mdc-tab-label-container{display:flex;flex-grow:1;overflow:hidden;z-index:1;border-bottom-style:solid;border-bottom-width:var(--mat-tab-divider-height, 1px);border-bottom-color:var(--mat-tab-divider-color, var(--mat-sys-surface-variant))}.mat-mdc-tab-group-inverted-header .mat-mdc-tab-label-container{border-bottom:none;border-top-style:solid;border-top-width:var(--mat-tab-divider-height, 1px);border-top-color:var(--mat-tab-divider-color, var(--mat-sys-surface-variant))}.mat-mdc-tab-labels{display:flex;flex:1 0 auto}[mat-align-tabs=center]>.mat-mdc-tab-header .mat-mdc-tab-labels{justify-content:center}[mat-align-tabs=end]>.mat-mdc-tab-header .mat-mdc-tab-labels{justify-content:flex-end}.cdk-drop-list .mat-mdc-tab-labels,.mat-mdc-tab-labels.cdk-drop-list{min-height:var(--mat-tab-container-height, 48px)}.mat-mdc-tab::before{margin:5px}@media(forced-colors: active){.mat-mdc-tab[aria-disabled=true]{color:GrayText}}\n"],
937
+ dependencies: [{
938
+ kind: "directive",
939
+ type: MatRipple,
940
+ selector: "[mat-ripple], [matRipple]",
941
+ inputs: ["matRippleColor", "matRippleUnbounded", "matRippleCentered", "matRippleRadius", "matRippleAnimation", "matRippleDisabled", "matRippleTrigger"],
942
+ exportAs: ["matRipple"]
943
+ }, {
944
+ kind: "directive",
945
+ type: CdkObserveContent,
946
+ selector: "[cdkObserveContent]",
947
+ inputs: ["cdkObserveContentDisabled", "debounce"],
948
+ outputs: ["cdkObserveContent"],
949
+ exportAs: ["cdkObserveContent"]
950
+ }],
951
+ changeDetection: i0.ChangeDetectionStrategy.Eager,
952
+ encapsulation: i0.ViewEncapsulation.None
953
+ });
954
+ }
955
+ i0.ɵɵngDeclareClassMetadata({
956
+ minVersion: "12.0.0",
957
+ version: "22.0.0-next.1",
958
+ ngImport: i0,
959
+ type: MatTabHeader,
960
+ decorators: [{
961
+ type: Component,
962
+ args: [{
963
+ selector: 'mat-tab-header',
964
+ encapsulation: ViewEncapsulation.None,
965
+ changeDetection: ChangeDetectionStrategy.Default,
966
+ host: {
967
+ 'class': 'mat-mdc-tab-header',
968
+ '[class.mat-mdc-tab-header-pagination-controls-enabled]': '_showPaginationControls',
969
+ '[class.mat-mdc-tab-header-rtl]': "_getLayoutDirection() == 'rtl'"
970
+ },
971
+ imports: [MatRipple, CdkObserveContent],
972
+ template: "<!--\n Note that this intentionally uses a `div` instead of a `button`, because it's not part of\n the regular tabs flow and is only here to support mouse users. It should also not be focusable.\n-->\n<div class=\"mat-mdc-tab-header-pagination mat-mdc-tab-header-pagination-before\"\n #previousPaginator\n mat-ripple\n [matRippleDisabled]=\"_disableScrollBefore || disableRipple\"\n [class.mat-mdc-tab-header-pagination-disabled]=\"_disableScrollBefore\"\n (click)=\"_handlePaginatorClick('before')\"\n (mousedown)=\"_handlePaginatorPress('before', $event)\"\n (touchend)=\"_stopInterval()\">\n <div class=\"mat-mdc-tab-header-pagination-chevron\"></div>\n</div>\n\n<div\n class=\"mat-mdc-tab-label-container\"\n #tabListContainer\n (keydown)=\"_handleKeydown($event)\"\n [class._mat-animation-noopable]=\"_animationsDisabled\">\n <div\n #tabList\n class=\"mat-mdc-tab-list\"\n role=\"tablist\"\n [attr.aria-label]=\"ariaLabel || null\"\n [attr.aria-labelledby]=\"ariaLabelledby || null\"\n (cdkObserveContent)=\"_onContentChanges()\">\n <div class=\"mat-mdc-tab-labels\" #tabListInner>\n <ng-content></ng-content>\n </div>\n </div>\n</div>\n\n<div class=\"mat-mdc-tab-header-pagination mat-mdc-tab-header-pagination-after\"\n #nextPaginator\n mat-ripple\n [matRippleDisabled]=\"_disableScrollAfter || disableRipple\"\n [class.mat-mdc-tab-header-pagination-disabled]=\"_disableScrollAfter\"\n (mousedown)=\"_handlePaginatorPress('after', $event)\"\n (click)=\"_handlePaginatorClick('after')\"\n (touchend)=\"_stopInterval()\">\n <div class=\"mat-mdc-tab-header-pagination-chevron\"></div>\n</div>\n",
973
+ styles: [".mat-mdc-tab-header{display:flex;overflow:hidden;position:relative;flex-shrink:0}.mdc-tab-indicator .mdc-tab-indicator__content{transition-duration:var(--mat-tab-animation-duration, 250ms)}.mat-mdc-tab-header-pagination{-webkit-user-select:none;user-select:none;position:relative;display:none;justify-content:center;align-items:center;min-width:32px;cursor:pointer;z-index:2;-webkit-tap-highlight-color:rgba(0,0,0,0);touch-action:none;box-sizing:content-box;outline:0}.mat-mdc-tab-header-pagination::-moz-focus-inner{border:0}.mat-mdc-tab-header-pagination .mat-ripple-element{opacity:.12;background-color:var(--mat-tab-inactive-ripple-color, var(--mat-sys-on-surface))}.mat-mdc-tab-header-pagination-controls-enabled .mat-mdc-tab-header-pagination{display:flex}.mat-mdc-tab-header-pagination-before,.mat-mdc-tab-header-rtl .mat-mdc-tab-header-pagination-after{padding-left:4px}.mat-mdc-tab-header-pagination-before .mat-mdc-tab-header-pagination-chevron,.mat-mdc-tab-header-rtl .mat-mdc-tab-header-pagination-after .mat-mdc-tab-header-pagination-chevron{transform:rotate(-135deg)}.mat-mdc-tab-header-rtl .mat-mdc-tab-header-pagination-before,.mat-mdc-tab-header-pagination-after{padding-right:4px}.mat-mdc-tab-header-rtl .mat-mdc-tab-header-pagination-before .mat-mdc-tab-header-pagination-chevron,.mat-mdc-tab-header-pagination-after .mat-mdc-tab-header-pagination-chevron{transform:rotate(45deg)}.mat-mdc-tab-header-pagination-chevron{border-style:solid;border-width:2px 2px 0 0;height:8px;width:8px;border-color:var(--mat-tab-pagination-icon-color, var(--mat-sys-on-surface))}.mat-mdc-tab-header-pagination-disabled{box-shadow:none;cursor:default;pointer-events:none}.mat-mdc-tab-header-pagination-disabled .mat-mdc-tab-header-pagination-chevron{opacity:.4}.mat-mdc-tab-list{flex-grow:1;position:relative;transition:transform 500ms cubic-bezier(0.35, 0, 0.25, 1)}._mat-animation-noopable .mat-mdc-tab-list{transition:none}.mat-mdc-tab-label-container{display:flex;flex-grow:1;overflow:hidden;z-index:1;border-bottom-style:solid;border-bottom-width:var(--mat-tab-divider-height, 1px);border-bottom-color:var(--mat-tab-divider-color, var(--mat-sys-surface-variant))}.mat-mdc-tab-group-inverted-header .mat-mdc-tab-label-container{border-bottom:none;border-top-style:solid;border-top-width:var(--mat-tab-divider-height, 1px);border-top-color:var(--mat-tab-divider-color, var(--mat-sys-surface-variant))}.mat-mdc-tab-labels{display:flex;flex:1 0 auto}[mat-align-tabs=center]>.mat-mdc-tab-header .mat-mdc-tab-labels{justify-content:center}[mat-align-tabs=end]>.mat-mdc-tab-header .mat-mdc-tab-labels{justify-content:flex-end}.cdk-drop-list .mat-mdc-tab-labels,.mat-mdc-tab-labels.cdk-drop-list{min-height:var(--mat-tab-container-height, 48px)}.mat-mdc-tab::before{margin:5px}@media(forced-colors: active){.mat-mdc-tab[aria-disabled=true]{color:GrayText}}\n"]
974
+ }]
975
+ }],
976
+ propDecorators: {
977
+ _items: [{
978
+ type: ContentChildren,
979
+ args: [MatTabLabelWrapper, {
980
+ descendants: false
981
+ }]
982
+ }],
983
+ _tabListContainer: [{
984
+ type: ViewChild,
985
+ args: ['tabListContainer', {
986
+ static: true
987
+ }]
988
+ }],
989
+ _tabList: [{
990
+ type: ViewChild,
991
+ args: ['tabList', {
992
+ static: true
993
+ }]
994
+ }],
995
+ _tabListInner: [{
996
+ type: ViewChild,
997
+ args: ['tabListInner', {
998
+ static: true
999
+ }]
1000
+ }],
1001
+ _nextPaginator: [{
1002
+ type: ViewChild,
1003
+ args: ['nextPaginator']
1004
+ }],
1005
+ _previousPaginator: [{
1006
+ type: ViewChild,
1007
+ args: ['previousPaginator']
1008
+ }],
1009
+ ariaLabel: [{
1010
+ type: Input,
1011
+ args: ['aria-label']
1012
+ }],
1013
+ ariaLabelledby: [{
1014
+ type: Input,
1015
+ args: ['aria-labelledby']
1016
+ }],
1017
+ disableRipple: [{
1018
+ type: Input,
1019
+ args: [{
1020
+ transform: booleanAttribute
1021
+ }]
1022
+ }]
1023
+ }
1024
+ });
1025
+
1026
+ const MAT_TABS_CONFIG = new InjectionToken('MAT_TABS_CONFIG');
1027
+
1028
+ class MatTabBodyPortal extends CdkPortalOutlet {
1029
+ _host = inject(MatTabBody);
1030
+ _ngZone = inject(NgZone);
1031
+ _centeringSub = Subscription.EMPTY;
1032
+ _leavingSub = Subscription.EMPTY;
1033
+ constructor() {
1034
+ super();
1035
+ }
1036
+ ngOnInit() {
1037
+ super.ngOnInit();
1038
+ this._centeringSub = this._host._beforeCentering.pipe(startWith(this._host._isCenterPosition())).subscribe(isCentering => {
1039
+ if (this._host._content && isCentering && !this.hasAttached()) {
1040
+ this._ngZone.run(() => {
1041
+ Promise.resolve().then();
1042
+ this.attach(this._host._content);
1043
+ });
1044
+ }
1045
+ });
1046
+ this._leavingSub = this._host._afterLeavingCenter.subscribe(() => {
1047
+ if (!this._host.preserveContent) {
1048
+ this._ngZone.run(() => this.detach());
1049
+ }
1050
+ });
1051
+ }
1052
+ ngOnDestroy() {
1053
+ super.ngOnDestroy();
1054
+ this._centeringSub.unsubscribe();
1055
+ this._leavingSub.unsubscribe();
1056
+ }
1057
+ static ɵfac = i0.ɵɵngDeclareFactory({
1058
+ minVersion: "12.0.0",
1059
+ version: "22.0.0-next.1",
1060
+ ngImport: i0,
1061
+ type: MatTabBodyPortal,
1062
+ deps: [],
1063
+ target: i0.ɵɵFactoryTarget.Directive
1064
+ });
1065
+ static ɵdir = i0.ɵɵngDeclareDirective({
1066
+ minVersion: "14.0.0",
1067
+ version: "22.0.0-next.1",
1068
+ type: MatTabBodyPortal,
1069
+ isStandalone: true,
1070
+ selector: "[matTabBodyHost]",
1071
+ usesInheritance: true,
1072
+ ngImport: i0
1073
+ });
1074
+ }
1075
+ i0.ɵɵngDeclareClassMetadata({
1076
+ minVersion: "12.0.0",
1077
+ version: "22.0.0-next.1",
1078
+ ngImport: i0,
1079
+ type: MatTabBodyPortal,
1080
+ decorators: [{
1081
+ type: Directive,
1082
+ args: [{
1083
+ selector: '[matTabBodyHost]'
1084
+ }]
1085
+ }],
1086
+ ctorParameters: () => []
1087
+ });
1088
+ class MatTabBody {
1089
+ _elementRef = inject(ElementRef);
1090
+ _dir = inject(Directionality, {
1091
+ optional: true
1092
+ });
1093
+ _ngZone = inject(NgZone);
1094
+ _injector = inject(Injector);
1095
+ _renderer = inject(Renderer2);
1096
+ _diAnimationsDisabled = _animationsDisabled();
1097
+ _eventCleanups;
1098
+ _initialized = false;
1099
+ _fallbackTimer;
1100
+ _positionIndex;
1101
+ _dirChangeSubscription = Subscription.EMPTY;
1102
+ _position;
1103
+ _previousPosition;
1104
+ _onCentering = new EventEmitter();
1105
+ _beforeCentering = new EventEmitter();
1106
+ _afterLeavingCenter = new EventEmitter();
1107
+ _onCentered = new EventEmitter(true);
1108
+ _portalHost;
1109
+ _contentElement;
1110
+ _content;
1111
+ animationDuration = '500ms';
1112
+ preserveContent = false;
1113
+ set position(position) {
1114
+ this._positionIndex = position;
1115
+ this._computePositionAnimationState();
1116
+ }
1117
+ constructor() {
1118
+ if (this._dir) {
1119
+ const changeDetectorRef = inject(ChangeDetectorRef);
1120
+ this._dirChangeSubscription = this._dir.change.subscribe(dir => {
1121
+ this._computePositionAnimationState(dir);
1122
+ changeDetectorRef.markForCheck();
1123
+ });
1124
+ }
1125
+ }
1126
+ ngOnInit() {
1127
+ this._bindTransitionEvents();
1128
+ if (this._position === 'center') {
1129
+ this._setActiveClass(true);
1130
+ afterNextRender(() => this._onCentering.emit(this._elementRef.nativeElement.clientHeight), {
1131
+ injector: this._injector
1132
+ });
1133
+ }
1134
+ this._initialized = true;
1135
+ }
1136
+ ngOnDestroy() {
1137
+ clearTimeout(this._fallbackTimer);
1138
+ this._eventCleanups?.forEach(cleanup => cleanup());
1139
+ this._dirChangeSubscription.unsubscribe();
1140
+ }
1141
+ _bindTransitionEvents() {
1142
+ this._ngZone.runOutsideAngular(() => {
1143
+ const element = this._elementRef.nativeElement;
1144
+ const transitionDone = event => {
1145
+ if (event.target === this._contentElement?.nativeElement) {
1146
+ this._elementRef.nativeElement.classList.remove('mat-tab-body-animating');
1147
+ if (event.type === 'transitionend') {
1148
+ this._transitionDone();
1149
+ }
1150
+ }
1151
+ };
1152
+ this._eventCleanups = [this._renderer.listen(element, 'transitionstart', event => {
1153
+ if (event.target === this._contentElement?.nativeElement) {
1154
+ this._elementRef.nativeElement.classList.add('mat-tab-body-animating');
1155
+ this._transitionStarted();
1156
+ }
1157
+ }), this._renderer.listen(element, 'transitionend', transitionDone), this._renderer.listen(element, 'transitioncancel', transitionDone)];
1158
+ });
1159
+ }
1160
+ _transitionStarted() {
1161
+ clearTimeout(this._fallbackTimer);
1162
+ const isCentering = this._position === 'center';
1163
+ this._beforeCentering.emit(isCentering);
1164
+ if (isCentering) {
1165
+ this._onCentering.emit(this._elementRef.nativeElement.clientHeight);
1166
+ }
1167
+ }
1168
+ _transitionDone() {
1169
+ if (this._position === 'center') {
1170
+ this._onCentered.emit();
1171
+ } else if (this._previousPosition === 'center') {
1172
+ this._afterLeavingCenter.emit();
1173
+ }
1174
+ }
1175
+ _setActiveClass(isActive) {
1176
+ this._elementRef.nativeElement.classList.toggle('mat-mdc-tab-body-active', isActive);
1177
+ }
1178
+ _getLayoutDirection() {
1179
+ return this._dir && this._dir.value === 'rtl' ? 'rtl' : 'ltr';
1180
+ }
1181
+ _isCenterPosition() {
1182
+ return this._positionIndex === 0;
1183
+ }
1184
+ _computePositionAnimationState(dir = this._getLayoutDirection()) {
1185
+ this._previousPosition = this._position;
1186
+ if (this._positionIndex < 0) {
1187
+ this._position = dir == 'ltr' ? 'left' : 'right';
1188
+ } else if (this._positionIndex > 0) {
1189
+ this._position = dir == 'ltr' ? 'right' : 'left';
1190
+ } else {
1191
+ this._position = 'center';
1192
+ }
1193
+ if (this._animationsDisabled()) {
1194
+ this._simulateTransitionEvents();
1195
+ } else if (this._initialized && (this._position === 'center' || this._previousPosition === 'center')) {
1196
+ clearTimeout(this._fallbackTimer);
1197
+ this._fallbackTimer = this._ngZone.runOutsideAngular(() => setTimeout(() => this._simulateTransitionEvents(), 100));
1198
+ }
1199
+ }
1200
+ _simulateTransitionEvents() {
1201
+ this._transitionStarted();
1202
+ afterNextRender(() => this._transitionDone(), {
1203
+ injector: this._injector
1204
+ });
1205
+ }
1206
+ _animationsDisabled() {
1207
+ return this._diAnimationsDisabled || this.animationDuration === '0ms' || this.animationDuration === '0s';
1208
+ }
1209
+ static ɵfac = i0.ɵɵngDeclareFactory({
1210
+ minVersion: "12.0.0",
1211
+ version: "22.0.0-next.1",
1212
+ ngImport: i0,
1213
+ type: MatTabBody,
1214
+ deps: [],
1215
+ target: i0.ɵɵFactoryTarget.Component
1216
+ });
1217
+ static ɵcmp = i0.ɵɵngDeclareComponent({
1218
+ minVersion: "14.0.0",
1219
+ version: "22.0.0-next.1",
1220
+ type: MatTabBody,
1221
+ isStandalone: true,
1222
+ selector: "mat-tab-body",
1223
+ inputs: {
1224
+ _content: ["content", "_content"],
1225
+ animationDuration: "animationDuration",
1226
+ preserveContent: "preserveContent",
1227
+ position: "position"
1228
+ },
1229
+ outputs: {
1230
+ _onCentering: "_onCentering",
1231
+ _beforeCentering: "_beforeCentering",
1232
+ _onCentered: "_onCentered"
1233
+ },
1234
+ host: {
1235
+ properties: {
1236
+ "attr.inert": "_position === \"center\" ? null : \"\""
1237
+ },
1238
+ classAttribute: "mat-mdc-tab-body"
1239
+ },
1240
+ viewQueries: [{
1241
+ propertyName: "_portalHost",
1242
+ first: true,
1243
+ predicate: MatTabBodyPortal,
1244
+ descendants: true
1245
+ }, {
1246
+ propertyName: "_contentElement",
1247
+ first: true,
1248
+ predicate: ["content"],
1249
+ descendants: true
1250
+ }],
1251
+ ngImport: i0,
1252
+ template: "<div\n class=\"mat-mdc-tab-body-content\"\n #content\n cdkScrollable\n [class.mat-tab-body-content-left]=\"_position === 'left'\"\n [class.mat-tab-body-content-right]=\"_position === 'right'\"\n [class.mat-tab-body-content-can-animate]=\"_position === 'center' || _previousPosition === 'center'\">\n <ng-template matTabBodyHost></ng-template>\n</div>\n",
1253
+ styles: [".mat-mdc-tab-body{top:0;left:0;right:0;bottom:0;position:absolute;display:block;overflow:hidden;outline:0;flex-basis:100%}.mat-mdc-tab-body.mat-mdc-tab-body-active{position:relative;overflow-x:hidden;overflow-y:auto;z-index:1;flex-grow:1}.mat-mdc-tab-group.mat-mdc-tab-group-dynamic-height .mat-mdc-tab-body.mat-mdc-tab-body-active{overflow-y:hidden}.mat-mdc-tab-body-content{height:100%;overflow:auto;transform:none;visibility:hidden}.mat-tab-body-animating>.mat-mdc-tab-body-content,.mat-mdc-tab-body-active>.mat-mdc-tab-body-content{visibility:visible}.mat-tab-body-animating>.mat-mdc-tab-body-content{min-height:1px}.mat-mdc-tab-group-dynamic-height .mat-mdc-tab-body-content{overflow:hidden}.mat-tab-body-content-can-animate{transition:transform var(--mat-tab-animation-duration) 1ms cubic-bezier(0.35, 0, 0.25, 1)}.mat-mdc-tab-body-wrapper._mat-animation-noopable .mat-tab-body-content-can-animate{transition:none}.mat-tab-body-content-left{transform:translate3d(-100%, 0, 0)}.mat-tab-body-content-right{transform:translate3d(100%, 0, 0)}\n"],
1254
+ dependencies: [{
1255
+ kind: "directive",
1256
+ type: MatTabBodyPortal,
1257
+ selector: "[matTabBodyHost]"
1258
+ }, {
1259
+ kind: "directive",
1260
+ type: CdkScrollable,
1261
+ selector: "[cdk-scrollable], [cdkScrollable]"
1262
+ }],
1263
+ changeDetection: i0.ChangeDetectionStrategy.Eager,
1264
+ encapsulation: i0.ViewEncapsulation.None
1265
+ });
1266
+ }
1267
+ i0.ɵɵngDeclareClassMetadata({
1268
+ minVersion: "12.0.0",
1269
+ version: "22.0.0-next.1",
1270
+ ngImport: i0,
1271
+ type: MatTabBody,
1272
+ decorators: [{
1273
+ type: Component,
1274
+ args: [{
1275
+ selector: 'mat-tab-body',
1276
+ encapsulation: ViewEncapsulation.None,
1277
+ changeDetection: ChangeDetectionStrategy.Default,
1278
+ host: {
1279
+ 'class': 'mat-mdc-tab-body',
1280
+ '[attr.inert]': '_position === "center" ? null : ""'
1281
+ },
1282
+ imports: [MatTabBodyPortal, CdkScrollable],
1283
+ template: "<div\n class=\"mat-mdc-tab-body-content\"\n #content\n cdkScrollable\n [class.mat-tab-body-content-left]=\"_position === 'left'\"\n [class.mat-tab-body-content-right]=\"_position === 'right'\"\n [class.mat-tab-body-content-can-animate]=\"_position === 'center' || _previousPosition === 'center'\">\n <ng-template matTabBodyHost></ng-template>\n</div>\n",
1284
+ styles: [".mat-mdc-tab-body{top:0;left:0;right:0;bottom:0;position:absolute;display:block;overflow:hidden;outline:0;flex-basis:100%}.mat-mdc-tab-body.mat-mdc-tab-body-active{position:relative;overflow-x:hidden;overflow-y:auto;z-index:1;flex-grow:1}.mat-mdc-tab-group.mat-mdc-tab-group-dynamic-height .mat-mdc-tab-body.mat-mdc-tab-body-active{overflow-y:hidden}.mat-mdc-tab-body-content{height:100%;overflow:auto;transform:none;visibility:hidden}.mat-tab-body-animating>.mat-mdc-tab-body-content,.mat-mdc-tab-body-active>.mat-mdc-tab-body-content{visibility:visible}.mat-tab-body-animating>.mat-mdc-tab-body-content{min-height:1px}.mat-mdc-tab-group-dynamic-height .mat-mdc-tab-body-content{overflow:hidden}.mat-tab-body-content-can-animate{transition:transform var(--mat-tab-animation-duration) 1ms cubic-bezier(0.35, 0, 0.25, 1)}.mat-mdc-tab-body-wrapper._mat-animation-noopable .mat-tab-body-content-can-animate{transition:none}.mat-tab-body-content-left{transform:translate3d(-100%, 0, 0)}.mat-tab-body-content-right{transform:translate3d(100%, 0, 0)}\n"]
1285
+ }]
1286
+ }],
1287
+ ctorParameters: () => [],
1288
+ propDecorators: {
1289
+ _onCentering: [{
1290
+ type: Output
1291
+ }],
1292
+ _beforeCentering: [{
1293
+ type: Output
1294
+ }],
1295
+ _onCentered: [{
1296
+ type: Output
1297
+ }],
1298
+ _portalHost: [{
1299
+ type: ViewChild,
1300
+ args: [MatTabBodyPortal]
1301
+ }],
1302
+ _contentElement: [{
1303
+ type: ViewChild,
1304
+ args: ['content']
1305
+ }],
1306
+ _content: [{
1307
+ type: Input,
1308
+ args: ['content']
1309
+ }],
1310
+ animationDuration: [{
1311
+ type: Input
1312
+ }],
1313
+ preserveContent: [{
1314
+ type: Input
1315
+ }],
1316
+ position: [{
1317
+ type: Input
1318
+ }]
1319
+ }
1320
+ });
1321
+
1322
+ class MatTabGroup {
1323
+ _elementRef = inject(ElementRef);
1324
+ _changeDetectorRef = inject(ChangeDetectorRef);
1325
+ _ngZone = inject(NgZone);
1326
+ _tabsSubscription = Subscription.EMPTY;
1327
+ _tabLabelSubscription = Subscription.EMPTY;
1328
+ _tabBodySubscription = Subscription.EMPTY;
1329
+ _diAnimationsDisabled = _animationsDisabled();
1330
+ _allTabs;
1331
+ _tabBodies;
1332
+ _tabBodyWrapper;
1333
+ _tabHeader;
1334
+ _tabs = new QueryList();
1335
+ _indexToSelect = 0;
1336
+ _lastFocusedTabIndex = null;
1337
+ _tabBodyWrapperHeight = 0;
1338
+ color;
1339
+ get fitInkBarToContent() {
1340
+ return this._fitInkBarToContent;
1341
+ }
1342
+ set fitInkBarToContent(value) {
1343
+ this._fitInkBarToContent = value;
1344
+ this._changeDetectorRef.markForCheck();
1345
+ }
1346
+ _fitInkBarToContent = false;
1347
+ stretchTabs = true;
1348
+ alignTabs = null;
1349
+ dynamicHeight = false;
1350
+ get selectedIndex() {
1351
+ return this._selectedIndex;
1352
+ }
1353
+ set selectedIndex(value) {
1354
+ this._indexToSelect = isNaN(value) ? null : value;
1355
+ }
1356
+ _selectedIndex = null;
1357
+ headerPosition = 'above';
1358
+ get animationDuration() {
1359
+ return this._animationDuration;
1360
+ }
1361
+ set animationDuration(value) {
1362
+ const stringValue = value + '';
1363
+ this._animationDuration = /^\d+$/.test(stringValue) ? value + 'ms' : stringValue;
1364
+ }
1365
+ _animationDuration;
1366
+ get contentTabIndex() {
1367
+ return this._contentTabIndex;
1368
+ }
1369
+ set contentTabIndex(value) {
1370
+ this._contentTabIndex = isNaN(value) ? null : value;
1371
+ }
1372
+ _contentTabIndex = null;
1373
+ disablePagination = false;
1374
+ disableRipple = false;
1375
+ preserveContent = false;
1376
+ get backgroundColor() {
1377
+ return this._backgroundColor;
1378
+ }
1379
+ set backgroundColor(value) {
1380
+ const classList = this._elementRef.nativeElement.classList;
1381
+ classList.remove('mat-tabs-with-background', `mat-background-${this.backgroundColor}`);
1382
+ if (value) {
1383
+ classList.add('mat-tabs-with-background', `mat-background-${value}`);
1384
+ }
1385
+ this._backgroundColor = value;
1386
+ }
1387
+ _backgroundColor;
1388
+ ariaLabel;
1389
+ ariaLabelledby;
1390
+ selectedIndexChange = new EventEmitter();
1391
+ focusChange = new EventEmitter();
1392
+ animationDone = new EventEmitter();
1393
+ selectedTabChange = new EventEmitter(true);
1394
+ _groupId;
1395
+ _isServer = !inject(Platform).isBrowser;
1396
+ constructor() {
1397
+ const defaultConfig = inject(MAT_TABS_CONFIG, {
1398
+ optional: true
1399
+ });
1400
+ this._groupId = inject(_IdGenerator).getId('mat-tab-group-');
1401
+ this.animationDuration = defaultConfig && defaultConfig.animationDuration ? defaultConfig.animationDuration : '500ms';
1402
+ this.disablePagination = defaultConfig && defaultConfig.disablePagination != null ? defaultConfig.disablePagination : false;
1403
+ this.dynamicHeight = defaultConfig && defaultConfig.dynamicHeight != null ? defaultConfig.dynamicHeight : false;
1404
+ if (defaultConfig?.contentTabIndex != null) {
1405
+ this.contentTabIndex = defaultConfig.contentTabIndex;
1406
+ }
1407
+ this.preserveContent = !!defaultConfig?.preserveContent;
1408
+ this.fitInkBarToContent = defaultConfig && defaultConfig.fitInkBarToContent != null ? defaultConfig.fitInkBarToContent : false;
1409
+ this.stretchTabs = defaultConfig && defaultConfig.stretchTabs != null ? defaultConfig.stretchTabs : true;
1410
+ this.alignTabs = defaultConfig && defaultConfig.alignTabs != null ? defaultConfig.alignTabs : null;
1411
+ }
1412
+ ngAfterContentChecked() {
1413
+ const indexToSelect = this._indexToSelect = this._clampTabIndex(this._indexToSelect);
1414
+ if (this._selectedIndex != indexToSelect) {
1415
+ const isFirstRun = this._selectedIndex == null;
1416
+ if (!isFirstRun) {
1417
+ this.selectedTabChange.emit(this._createChangeEvent(indexToSelect));
1418
+ const wrapper = this._tabBodyWrapper.nativeElement;
1419
+ wrapper.style.minHeight = wrapper.clientHeight + 'px';
1420
+ }
1421
+ Promise.resolve().then(() => {
1422
+ this._tabs.forEach((tab, index) => tab.isActive = index === indexToSelect);
1423
+ if (!isFirstRun) {
1424
+ this.selectedIndexChange.emit(indexToSelect);
1425
+ this._tabBodyWrapper.nativeElement.style.minHeight = '';
1426
+ }
1427
+ });
1428
+ }
1429
+ this._tabs.forEach((tab, index) => {
1430
+ tab.position = index - indexToSelect;
1431
+ if (this._selectedIndex != null && tab.position == 0 && !tab.origin) {
1432
+ tab.origin = indexToSelect - this._selectedIndex;
1433
+ }
1434
+ });
1435
+ if (this._selectedIndex !== indexToSelect) {
1436
+ this._selectedIndex = indexToSelect;
1437
+ this._lastFocusedTabIndex = null;
1438
+ this._changeDetectorRef.markForCheck();
1439
+ }
1440
+ }
1441
+ ngAfterContentInit() {
1442
+ this._subscribeToAllTabChanges();
1443
+ this._subscribeToTabLabels();
1444
+ this._tabsSubscription = this._tabs.changes.subscribe(() => {
1445
+ const indexToSelect = this._clampTabIndex(this._indexToSelect);
1446
+ if (indexToSelect === this._selectedIndex) {
1447
+ const tabs = this._tabs.toArray();
1448
+ let selectedTab;
1449
+ for (let i = 0; i < tabs.length; i++) {
1450
+ if (tabs[i].isActive) {
1451
+ this._indexToSelect = this._selectedIndex = i;
1452
+ this._lastFocusedTabIndex = null;
1453
+ selectedTab = tabs[i];
1454
+ break;
1455
+ }
1456
+ }
1457
+ if (!selectedTab && tabs[indexToSelect]) {
1458
+ Promise.resolve().then(() => {
1459
+ tabs[indexToSelect].isActive = true;
1460
+ this.selectedTabChange.emit(this._createChangeEvent(indexToSelect));
1461
+ });
1462
+ }
1463
+ }
1464
+ this._changeDetectorRef.markForCheck();
1465
+ });
1466
+ }
1467
+ ngAfterViewInit() {
1468
+ this._tabBodySubscription = this._tabBodies.changes.subscribe(() => this._bodyCentered(true));
1469
+ }
1470
+ _subscribeToAllTabChanges() {
1471
+ this._allTabs.changes.pipe(startWith(this._allTabs)).subscribe(tabs => {
1472
+ this._tabs.reset(tabs.filter(tab => {
1473
+ return tab._closestTabGroup === this || !tab._closestTabGroup;
1474
+ }));
1475
+ this._tabs.notifyOnChanges();
1476
+ });
1477
+ }
1478
+ ngOnDestroy() {
1479
+ this._tabs.destroy();
1480
+ this._tabsSubscription.unsubscribe();
1481
+ this._tabLabelSubscription.unsubscribe();
1482
+ this._tabBodySubscription.unsubscribe();
1483
+ }
1484
+ realignInkBar() {
1485
+ if (this._tabHeader) {
1486
+ this._tabHeader._alignInkBarToSelectedTab();
1487
+ }
1488
+ }
1489
+ updatePagination() {
1490
+ if (this._tabHeader) {
1491
+ this._tabHeader.updatePagination();
1492
+ }
1493
+ }
1494
+ focusTab(index) {
1495
+ const header = this._tabHeader;
1496
+ if (header) {
1497
+ header.focusIndex = index;
1498
+ }
1499
+ }
1500
+ _focusChanged(index) {
1501
+ this._lastFocusedTabIndex = index;
1502
+ this.focusChange.emit(this._createChangeEvent(index));
1503
+ }
1504
+ _createChangeEvent(index) {
1505
+ const event = new MatTabChangeEvent();
1506
+ event.index = index;
1507
+ if (this._tabs && this._tabs.length) {
1508
+ event.tab = this._tabs.toArray()[index];
1509
+ }
1510
+ return event;
1511
+ }
1512
+ _subscribeToTabLabels() {
1513
+ if (this._tabLabelSubscription) {
1514
+ this._tabLabelSubscription.unsubscribe();
1515
+ }
1516
+ this._tabLabelSubscription = merge(...this._tabs.map(tab => tab._stateChanges)).subscribe(() => this._changeDetectorRef.markForCheck());
1517
+ }
1518
+ _clampTabIndex(index) {
1519
+ return Math.min(this._tabs.length - 1, Math.max(index || 0, 0));
1520
+ }
1521
+ _getTabLabelId(tab, index) {
1522
+ return tab.id || `${this._groupId}-label-${index}`;
1523
+ }
1524
+ _getTabContentId(index) {
1525
+ return `${this._groupId}-content-${index}`;
1526
+ }
1527
+ _setTabBodyWrapperHeight(tabHeight) {
1528
+ if (!this.dynamicHeight || !this._tabBodyWrapperHeight) {
1529
+ this._tabBodyWrapperHeight = tabHeight;
1530
+ return;
1531
+ }
1532
+ const wrapper = this._tabBodyWrapper.nativeElement;
1533
+ wrapper.style.height = this._tabBodyWrapperHeight + 'px';
1534
+ if (this._tabBodyWrapper.nativeElement.offsetHeight) {
1535
+ wrapper.style.height = tabHeight + 'px';
1536
+ }
1537
+ }
1538
+ _removeTabBodyWrapperHeight() {
1539
+ const wrapper = this._tabBodyWrapper.nativeElement;
1540
+ this._tabBodyWrapperHeight = wrapper.clientHeight;
1541
+ wrapper.style.height = '';
1542
+ this._ngZone.run(() => this.animationDone.emit());
1543
+ }
1544
+ _handleClick(tab, tabHeader, index) {
1545
+ tabHeader.focusIndex = index;
1546
+ if (!tab.disabled) {
1547
+ this.selectedIndex = index;
1548
+ }
1549
+ }
1550
+ _getTabIndex(index) {
1551
+ const targetIndex = this._lastFocusedTabIndex ?? this.selectedIndex;
1552
+ return index === targetIndex ? 0 : -1;
1553
+ }
1554
+ _tabFocusChanged(focusOrigin, index) {
1555
+ if (focusOrigin && focusOrigin !== 'mouse' && focusOrigin !== 'touch') {
1556
+ this._tabHeader.focusIndex = index;
1557
+ }
1558
+ }
1559
+ _bodyCentered(isCenter) {
1560
+ if (isCenter) {
1561
+ this._tabBodies?.forEach((body, i) => body._setActiveClass(i === this._selectedIndex));
1562
+ }
1563
+ }
1564
+ _animationsDisabled() {
1565
+ return this._diAnimationsDisabled || this.animationDuration === '0' || this.animationDuration === '0ms';
1566
+ }
1567
+ static ɵfac = i0.ɵɵngDeclareFactory({
1568
+ minVersion: "12.0.0",
1569
+ version: "22.0.0-next.1",
1570
+ ngImport: i0,
1571
+ type: MatTabGroup,
1572
+ deps: [],
1573
+ target: i0.ɵɵFactoryTarget.Component
1574
+ });
1575
+ static ɵcmp = i0.ɵɵngDeclareComponent({
1576
+ minVersion: "17.0.0",
1577
+ version: "22.0.0-next.1",
1578
+ type: MatTabGroup,
1579
+ isStandalone: true,
1580
+ selector: "mat-tab-group",
1581
+ inputs: {
1582
+ color: "color",
1583
+ fitInkBarToContent: ["fitInkBarToContent", "fitInkBarToContent", booleanAttribute],
1584
+ stretchTabs: ["mat-stretch-tabs", "stretchTabs", booleanAttribute],
1585
+ alignTabs: ["mat-align-tabs", "alignTabs"],
1586
+ dynamicHeight: ["dynamicHeight", "dynamicHeight", booleanAttribute],
1587
+ selectedIndex: ["selectedIndex", "selectedIndex", numberAttribute],
1588
+ headerPosition: "headerPosition",
1589
+ animationDuration: "animationDuration",
1590
+ contentTabIndex: ["contentTabIndex", "contentTabIndex", numberAttribute],
1591
+ disablePagination: ["disablePagination", "disablePagination", booleanAttribute],
1592
+ disableRipple: ["disableRipple", "disableRipple", booleanAttribute],
1593
+ preserveContent: ["preserveContent", "preserveContent", booleanAttribute],
1594
+ backgroundColor: "backgroundColor",
1595
+ ariaLabel: ["aria-label", "ariaLabel"],
1596
+ ariaLabelledby: ["aria-labelledby", "ariaLabelledby"]
1597
+ },
1598
+ outputs: {
1599
+ selectedIndexChange: "selectedIndexChange",
1600
+ focusChange: "focusChange",
1601
+ animationDone: "animationDone",
1602
+ selectedTabChange: "selectedTabChange"
1603
+ },
1604
+ host: {
1605
+ properties: {
1606
+ "class": "\"mat-\" + (color || \"primary\")",
1607
+ "class.mat-mdc-tab-group-dynamic-height": "dynamicHeight",
1608
+ "class.mat-mdc-tab-group-inverted-header": "headerPosition === \"below\"",
1609
+ "class.mat-mdc-tab-group-stretch-tabs": "stretchTabs",
1610
+ "attr.mat-align-tabs": "alignTabs",
1611
+ "style.--mat-tab-animation-duration": "animationDuration"
1612
+ },
1613
+ classAttribute: "mat-mdc-tab-group"
1614
+ },
1615
+ providers: [{
1616
+ provide: MAT_TAB_GROUP,
1617
+ useExisting: MatTabGroup
1618
+ }],
1619
+ queries: [{
1620
+ propertyName: "_allTabs",
1621
+ predicate: MatTab,
1622
+ descendants: true
1623
+ }],
1624
+ viewQueries: [{
1625
+ propertyName: "_tabBodyWrapper",
1626
+ first: true,
1627
+ predicate: ["tabBodyWrapper"],
1628
+ descendants: true
1629
+ }, {
1630
+ propertyName: "_tabHeader",
1631
+ first: true,
1632
+ predicate: ["tabHeader"],
1633
+ descendants: true
1634
+ }, {
1635
+ propertyName: "_tabBodies",
1636
+ predicate: MatTabBody,
1637
+ descendants: true
1638
+ }],
1639
+ exportAs: ["matTabGroup"],
1640
+ ngImport: i0,
1641
+ template: "<mat-tab-header #tabHeader\n [selectedIndex]=\"selectedIndex || 0\"\n [disableRipple]=\"disableRipple\"\n [disablePagination]=\"disablePagination\"\n [aria-label]=\"ariaLabel\"\n [aria-labelledby]=\"ariaLabelledby\"\n (indexFocused)=\"_focusChanged($event)\"\n (selectFocusedIndex)=\"selectedIndex = $event\">\n\n @for (tab of _tabs; track tab) {\n <div class=\"mdc-tab mat-mdc-tab mat-focus-indicator\"\n #tabNode\n role=\"tab\"\n matTabLabelWrapper\n cdkMonitorElementFocus\n [id]=\"_getTabLabelId(tab, $index)\"\n [attr.tabIndex]=\"_getTabIndex($index)\"\n [attr.aria-posinset]=\"$index + 1\"\n [attr.aria-setsize]=\"_tabs.length\"\n [attr.aria-controls]=\"_getTabContentId($index)\"\n [attr.aria-selected]=\"selectedIndex === $index\"\n [attr.aria-label]=\"tab.ariaLabel || null\"\n [attr.aria-labelledby]=\"(!tab.ariaLabel && tab.ariaLabelledby) ? tab.ariaLabelledby : null\"\n [class.mdc-tab--active]=\"selectedIndex === $index\"\n [class]=\"tab.labelClass\"\n [disabled]=\"tab.disabled\"\n [fitInkBarToContent]=\"fitInkBarToContent\"\n (click)=\"_handleClick(tab, tabHeader, $index)\"\n (cdkFocusChange)=\"_tabFocusChanged($event, $index)\">\n <span class=\"mdc-tab__ripple\"></span>\n\n <!-- Needs to be a separate element, because we can't put\n `overflow: hidden` on tab due to the ink bar. -->\n <div\n class=\"mat-mdc-tab-ripple\"\n mat-ripple\n [matRippleTrigger]=\"tabNode\"\n [matRippleDisabled]=\"tab.disabled || disableRipple\"></div>\n\n <span class=\"mdc-tab__content\">\n <span class=\"mdc-tab__text-label\">\n <!--\n If there is a label template, use it, otherwise fall back to the text label.\n Note that we don't have indentation around the text label, because it adds\n whitespace around the text which breaks some internal tests.\n -->\n @if (tab.templateLabel) {\n <ng-template [cdkPortalOutlet]=\"tab.templateLabel\"></ng-template>\n } @else {{{tab.textLabel}}}\n </span>\n </span>\n </div>\n }\n</mat-tab-header>\n\n<!--\n We need to project the content somewhere to avoid hydration errors. Some observations:\n 1. This is only necessary on the server.\n 2. We get a hydration error if there aren't any nodes after the `ng-content`.\n 3. We get a hydration error if `ng-content` is wrapped in another element.\n-->\n@if (_isServer) {\n <ng-content/>\n}\n\n<div\n class=\"mat-mdc-tab-body-wrapper\"\n [class._mat-animation-noopable]=\"_animationsDisabled()\"\n #tabBodyWrapper>\n @for (tab of _tabs; track tab;) {\n <mat-tab-body role=\"tabpanel\"\n [id]=\"_getTabContentId($index)\"\n [attr.tabindex]=\"(contentTabIndex != null && selectedIndex === $index) ? contentTabIndex : null\"\n [attr.aria-labelledby]=\"_getTabLabelId(tab, $index)\"\n [attr.aria-hidden]=\"selectedIndex !== $index\"\n [class]=\"tab.bodyClass\"\n [content]=\"tab.content!\"\n [position]=\"tab.position!\"\n [animationDuration]=\"animationDuration\"\n [preserveContent]=\"preserveContent\"\n (_onCentered)=\"_removeTabBodyWrapperHeight()\"\n (_onCentering)=\"_setTabBodyWrapperHeight($event)\"\n (_beforeCentering)=\"_bodyCentered($event)\"/>\n }\n</div>\n",
1642
+ styles: [".mdc-tab{min-width:90px;padding:0 24px;display:flex;flex:1 0 auto;justify-content:center;box-sizing:border-box;border:none;outline:none;text-align:center;white-space:nowrap;cursor:pointer;z-index:1;touch-action:manipulation}.mdc-tab__content{display:flex;align-items:center;justify-content:center;height:inherit;pointer-events:none}.mdc-tab__text-label{transition:150ms color linear;display:inline-block;line-height:1;z-index:2}.mdc-tab--active .mdc-tab__text-label{transition-delay:100ms}._mat-animation-noopable .mdc-tab__text-label{transition:none}.mdc-tab-indicator{display:flex;position:absolute;top:0;left:0;justify-content:center;width:100%;height:100%;pointer-events:none;z-index:1}.mdc-tab-indicator__content{transition:var(--mat-tab-animation-duration, 250ms) transform cubic-bezier(0.4, 0, 0.2, 1);transform-origin:left;opacity:0}.mdc-tab-indicator__content--underline{align-self:flex-end;box-sizing:border-box;width:100%;border-top-style:solid}.mdc-tab-indicator--active .mdc-tab-indicator__content{opacity:1}._mat-animation-noopable .mdc-tab-indicator__content,.mdc-tab-indicator--no-transition .mdc-tab-indicator__content{transition:none}.mat-mdc-tab-ripple.mat-mdc-tab-ripple{position:absolute;top:0;left:0;bottom:0;right:0;pointer-events:none}.mat-mdc-tab{-webkit-tap-highlight-color:rgba(0,0,0,0);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-decoration:none;background:none;height:var(--mat-tab-container-height, 48px);font-family:var(--mat-tab-label-text-font, var(--mat-sys-title-small-font));font-size:var(--mat-tab-label-text-size, var(--mat-sys-title-small-size));letter-spacing:var(--mat-tab-label-text-tracking, var(--mat-sys-title-small-tracking));line-height:var(--mat-tab-label-text-line-height, var(--mat-sys-title-small-line-height));font-weight:var(--mat-tab-label-text-weight, var(--mat-sys-title-small-weight))}.mat-mdc-tab.mdc-tab{flex-grow:0}.mat-mdc-tab .mdc-tab-indicator__content--underline{border-color:var(--mat-tab-active-indicator-color, var(--mat-sys-primary));border-top-width:var(--mat-tab-active-indicator-height, 2px);border-radius:var(--mat-tab-active-indicator-shape, 0)}.mat-mdc-tab:hover .mdc-tab__text-label{color:var(--mat-tab-inactive-hover-label-text-color, var(--mat-sys-on-surface))}.mat-mdc-tab:focus .mdc-tab__text-label{color:var(--mat-tab-inactive-focus-label-text-color, var(--mat-sys-on-surface))}.mat-mdc-tab.mdc-tab--active .mdc-tab__text-label{color:var(--mat-tab-active-label-text-color, var(--mat-sys-on-surface))}.mat-mdc-tab.mdc-tab--active .mdc-tab__ripple::before,.mat-mdc-tab.mdc-tab--active .mat-ripple-element{background-color:var(--mat-tab-active-ripple-color, var(--mat-sys-on-surface))}.mat-mdc-tab.mdc-tab--active:hover .mdc-tab__text-label{color:var(--mat-tab-active-hover-label-text-color, var(--mat-sys-on-surface))}.mat-mdc-tab.mdc-tab--active:hover .mdc-tab-indicator__content--underline{border-color:var(--mat-tab-active-hover-indicator-color, var(--mat-sys-primary))}.mat-mdc-tab.mdc-tab--active:focus .mdc-tab__text-label{color:var(--mat-tab-active-focus-label-text-color, var(--mat-sys-on-surface))}.mat-mdc-tab.mdc-tab--active:focus .mdc-tab-indicator__content--underline{border-color:var(--mat-tab-active-focus-indicator-color, var(--mat-sys-primary))}.mat-mdc-tab.mat-mdc-tab-disabled{opacity:.4;pointer-events:none}.mat-mdc-tab.mat-mdc-tab-disabled .mdc-tab__content{pointer-events:none}.mat-mdc-tab.mat-mdc-tab-disabled .mdc-tab__ripple::before,.mat-mdc-tab.mat-mdc-tab-disabled .mat-ripple-element{background-color:var(--mat-tab-disabled-ripple-color, var(--mat-sys-on-surface-variant))}.mat-mdc-tab .mdc-tab__ripple::before{content:\"\";display:block;position:absolute;top:0;left:0;right:0;bottom:0;opacity:0;pointer-events:none;background-color:var(--mat-tab-inactive-ripple-color, var(--mat-sys-on-surface))}.mat-mdc-tab .mdc-tab__text-label{color:var(--mat-tab-inactive-label-text-color, var(--mat-sys-on-surface));display:inline-flex;align-items:center}.mat-mdc-tab .mdc-tab__content{position:relative;pointer-events:auto}.mat-mdc-tab:hover .mdc-tab__ripple::before{opacity:.04}.mat-mdc-tab.cdk-program-focused .mdc-tab__ripple::before,.mat-mdc-tab.cdk-keyboard-focused .mdc-tab__ripple::before{opacity:.12}.mat-mdc-tab .mat-ripple-element{opacity:.12;background-color:var(--mat-tab-inactive-ripple-color, var(--mat-sys-on-surface))}.mat-mdc-tab-group.mat-mdc-tab-group-stretch-tabs>.mat-mdc-tab-header .mat-mdc-tab{flex-grow:1}.mat-mdc-tab-group{display:flex;flex-direction:column;max-width:100%}.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header,.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header-pagination{background-color:var(--mat-tab-background-color)}.mat-mdc-tab-group.mat-tabs-with-background.mat-primary>.mat-mdc-tab-header .mat-mdc-tab .mdc-tab__text-label{color:var(--mat-tab-foreground-color)}.mat-mdc-tab-group.mat-tabs-with-background.mat-primary>.mat-mdc-tab-header .mdc-tab-indicator__content--underline{border-color:var(--mat-tab-foreground-color)}.mat-mdc-tab-group.mat-tabs-with-background:not(.mat-primary)>.mat-mdc-tab-header .mat-mdc-tab:not(.mdc-tab--active) .mdc-tab__text-label{color:var(--mat-tab-foreground-color)}.mat-mdc-tab-group.mat-tabs-with-background:not(.mat-primary)>.mat-mdc-tab-header .mat-mdc-tab:not(.mdc-tab--active) .mdc-tab-indicator__content--underline{border-color:var(--mat-tab-foreground-color)}.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header .mat-mdc-tab-header-pagination-chevron,.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header .mat-focus-indicator::before,.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header-pagination .mat-mdc-tab-header-pagination-chevron,.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header-pagination .mat-focus-indicator::before{border-color:var(--mat-tab-foreground-color)}.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header .mat-ripple-element,.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header .mdc-tab__ripple::before,.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header-pagination .mat-ripple-element,.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header-pagination .mdc-tab__ripple::before{background-color:var(--mat-tab-foreground-color)}.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header .mat-mdc-tab-header-pagination-chevron,.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header-pagination .mat-mdc-tab-header-pagination-chevron{color:var(--mat-tab-foreground-color)}.mat-mdc-tab-group.mat-mdc-tab-group-inverted-header{flex-direction:column-reverse}.mat-mdc-tab-group.mat-mdc-tab-group-inverted-header .mdc-tab-indicator__content--underline{align-self:flex-start}.mat-mdc-tab-body-wrapper{position:relative;overflow:hidden;display:flex;transition:height 500ms cubic-bezier(0.35, 0, 0.25, 1)}.mat-mdc-tab-body-wrapper._mat-animation-noopable{transition:none !important;animation:none !important}\n"],
1643
+ dependencies: [{
1644
+ kind: "component",
1645
+ type: MatTabHeader,
1646
+ selector: "mat-tab-header",
1647
+ inputs: ["aria-label", "aria-labelledby", "disableRipple"]
1648
+ }, {
1649
+ kind: "directive",
1650
+ type: MatTabLabelWrapper,
1651
+ selector: "[matTabLabelWrapper]",
1652
+ inputs: ["disabled"]
1653
+ }, {
1654
+ kind: "directive",
1655
+ type: CdkMonitorFocus,
1656
+ selector: "[cdkMonitorElementFocus], [cdkMonitorSubtreeFocus]",
1657
+ outputs: ["cdkFocusChange"],
1658
+ exportAs: ["cdkMonitorFocus"]
1659
+ }, {
1660
+ kind: "directive",
1661
+ type: MatRipple,
1662
+ selector: "[mat-ripple], [matRipple]",
1663
+ inputs: ["matRippleColor", "matRippleUnbounded", "matRippleCentered", "matRippleRadius", "matRippleAnimation", "matRippleDisabled", "matRippleTrigger"],
1664
+ exportAs: ["matRipple"]
1665
+ }, {
1666
+ kind: "directive",
1667
+ type: CdkPortalOutlet,
1668
+ selector: "[cdkPortalOutlet]",
1669
+ inputs: ["cdkPortalOutlet"],
1670
+ outputs: ["attached"],
1671
+ exportAs: ["cdkPortalOutlet"]
1672
+ }, {
1673
+ kind: "component",
1674
+ type: MatTabBody,
1675
+ selector: "mat-tab-body",
1676
+ inputs: ["content", "animationDuration", "preserveContent", "position"],
1677
+ outputs: ["_onCentering", "_beforeCentering", "_onCentered"]
1678
+ }],
1679
+ changeDetection: i0.ChangeDetectionStrategy.Eager,
1680
+ encapsulation: i0.ViewEncapsulation.None
1681
+ });
1682
+ }
1683
+ i0.ɵɵngDeclareClassMetadata({
1684
+ minVersion: "12.0.0",
1685
+ version: "22.0.0-next.1",
1686
+ ngImport: i0,
1687
+ type: MatTabGroup,
1688
+ decorators: [{
1689
+ type: Component,
1690
+ args: [{
1691
+ selector: 'mat-tab-group',
1692
+ exportAs: 'matTabGroup',
1693
+ encapsulation: ViewEncapsulation.None,
1694
+ changeDetection: ChangeDetectionStrategy.Default,
1695
+ providers: [{
1696
+ provide: MAT_TAB_GROUP,
1697
+ useExisting: MatTabGroup
1698
+ }],
1699
+ host: {
1700
+ 'class': 'mat-mdc-tab-group',
1701
+ '[class]': '"mat-" + (color || "primary")',
1702
+ '[class.mat-mdc-tab-group-dynamic-height]': 'dynamicHeight',
1703
+ '[class.mat-mdc-tab-group-inverted-header]': 'headerPosition === "below"',
1704
+ '[class.mat-mdc-tab-group-stretch-tabs]': 'stretchTabs',
1705
+ '[attr.mat-align-tabs]': 'alignTabs',
1706
+ '[style.--mat-tab-animation-duration]': 'animationDuration'
1707
+ },
1708
+ imports: [MatTabHeader, MatTabLabelWrapper, CdkMonitorFocus, MatRipple, CdkPortalOutlet, MatTabBody],
1709
+ template: "<mat-tab-header #tabHeader\n [selectedIndex]=\"selectedIndex || 0\"\n [disableRipple]=\"disableRipple\"\n [disablePagination]=\"disablePagination\"\n [aria-label]=\"ariaLabel\"\n [aria-labelledby]=\"ariaLabelledby\"\n (indexFocused)=\"_focusChanged($event)\"\n (selectFocusedIndex)=\"selectedIndex = $event\">\n\n @for (tab of _tabs; track tab) {\n <div class=\"mdc-tab mat-mdc-tab mat-focus-indicator\"\n #tabNode\n role=\"tab\"\n matTabLabelWrapper\n cdkMonitorElementFocus\n [id]=\"_getTabLabelId(tab, $index)\"\n [attr.tabIndex]=\"_getTabIndex($index)\"\n [attr.aria-posinset]=\"$index + 1\"\n [attr.aria-setsize]=\"_tabs.length\"\n [attr.aria-controls]=\"_getTabContentId($index)\"\n [attr.aria-selected]=\"selectedIndex === $index\"\n [attr.aria-label]=\"tab.ariaLabel || null\"\n [attr.aria-labelledby]=\"(!tab.ariaLabel && tab.ariaLabelledby) ? tab.ariaLabelledby : null\"\n [class.mdc-tab--active]=\"selectedIndex === $index\"\n [class]=\"tab.labelClass\"\n [disabled]=\"tab.disabled\"\n [fitInkBarToContent]=\"fitInkBarToContent\"\n (click)=\"_handleClick(tab, tabHeader, $index)\"\n (cdkFocusChange)=\"_tabFocusChanged($event, $index)\">\n <span class=\"mdc-tab__ripple\"></span>\n\n <!-- Needs to be a separate element, because we can't put\n `overflow: hidden` on tab due to the ink bar. -->\n <div\n class=\"mat-mdc-tab-ripple\"\n mat-ripple\n [matRippleTrigger]=\"tabNode\"\n [matRippleDisabled]=\"tab.disabled || disableRipple\"></div>\n\n <span class=\"mdc-tab__content\">\n <span class=\"mdc-tab__text-label\">\n <!--\n If there is a label template, use it, otherwise fall back to the text label.\n Note that we don't have indentation around the text label, because it adds\n whitespace around the text which breaks some internal tests.\n -->\n @if (tab.templateLabel) {\n <ng-template [cdkPortalOutlet]=\"tab.templateLabel\"></ng-template>\n } @else {{{tab.textLabel}}}\n </span>\n </span>\n </div>\n }\n</mat-tab-header>\n\n<!--\n We need to project the content somewhere to avoid hydration errors. Some observations:\n 1. This is only necessary on the server.\n 2. We get a hydration error if there aren't any nodes after the `ng-content`.\n 3. We get a hydration error if `ng-content` is wrapped in another element.\n-->\n@if (_isServer) {\n <ng-content/>\n}\n\n<div\n class=\"mat-mdc-tab-body-wrapper\"\n [class._mat-animation-noopable]=\"_animationsDisabled()\"\n #tabBodyWrapper>\n @for (tab of _tabs; track tab;) {\n <mat-tab-body role=\"tabpanel\"\n [id]=\"_getTabContentId($index)\"\n [attr.tabindex]=\"(contentTabIndex != null && selectedIndex === $index) ? contentTabIndex : null\"\n [attr.aria-labelledby]=\"_getTabLabelId(tab, $index)\"\n [attr.aria-hidden]=\"selectedIndex !== $index\"\n [class]=\"tab.bodyClass\"\n [content]=\"tab.content!\"\n [position]=\"tab.position!\"\n [animationDuration]=\"animationDuration\"\n [preserveContent]=\"preserveContent\"\n (_onCentered)=\"_removeTabBodyWrapperHeight()\"\n (_onCentering)=\"_setTabBodyWrapperHeight($event)\"\n (_beforeCentering)=\"_bodyCentered($event)\"/>\n }\n</div>\n",
1710
+ styles: [".mdc-tab{min-width:90px;padding:0 24px;display:flex;flex:1 0 auto;justify-content:center;box-sizing:border-box;border:none;outline:none;text-align:center;white-space:nowrap;cursor:pointer;z-index:1;touch-action:manipulation}.mdc-tab__content{display:flex;align-items:center;justify-content:center;height:inherit;pointer-events:none}.mdc-tab__text-label{transition:150ms color linear;display:inline-block;line-height:1;z-index:2}.mdc-tab--active .mdc-tab__text-label{transition-delay:100ms}._mat-animation-noopable .mdc-tab__text-label{transition:none}.mdc-tab-indicator{display:flex;position:absolute;top:0;left:0;justify-content:center;width:100%;height:100%;pointer-events:none;z-index:1}.mdc-tab-indicator__content{transition:var(--mat-tab-animation-duration, 250ms) transform cubic-bezier(0.4, 0, 0.2, 1);transform-origin:left;opacity:0}.mdc-tab-indicator__content--underline{align-self:flex-end;box-sizing:border-box;width:100%;border-top-style:solid}.mdc-tab-indicator--active .mdc-tab-indicator__content{opacity:1}._mat-animation-noopable .mdc-tab-indicator__content,.mdc-tab-indicator--no-transition .mdc-tab-indicator__content{transition:none}.mat-mdc-tab-ripple.mat-mdc-tab-ripple{position:absolute;top:0;left:0;bottom:0;right:0;pointer-events:none}.mat-mdc-tab{-webkit-tap-highlight-color:rgba(0,0,0,0);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-decoration:none;background:none;height:var(--mat-tab-container-height, 48px);font-family:var(--mat-tab-label-text-font, var(--mat-sys-title-small-font));font-size:var(--mat-tab-label-text-size, var(--mat-sys-title-small-size));letter-spacing:var(--mat-tab-label-text-tracking, var(--mat-sys-title-small-tracking));line-height:var(--mat-tab-label-text-line-height, var(--mat-sys-title-small-line-height));font-weight:var(--mat-tab-label-text-weight, var(--mat-sys-title-small-weight))}.mat-mdc-tab.mdc-tab{flex-grow:0}.mat-mdc-tab .mdc-tab-indicator__content--underline{border-color:var(--mat-tab-active-indicator-color, var(--mat-sys-primary));border-top-width:var(--mat-tab-active-indicator-height, 2px);border-radius:var(--mat-tab-active-indicator-shape, 0)}.mat-mdc-tab:hover .mdc-tab__text-label{color:var(--mat-tab-inactive-hover-label-text-color, var(--mat-sys-on-surface))}.mat-mdc-tab:focus .mdc-tab__text-label{color:var(--mat-tab-inactive-focus-label-text-color, var(--mat-sys-on-surface))}.mat-mdc-tab.mdc-tab--active .mdc-tab__text-label{color:var(--mat-tab-active-label-text-color, var(--mat-sys-on-surface))}.mat-mdc-tab.mdc-tab--active .mdc-tab__ripple::before,.mat-mdc-tab.mdc-tab--active .mat-ripple-element{background-color:var(--mat-tab-active-ripple-color, var(--mat-sys-on-surface))}.mat-mdc-tab.mdc-tab--active:hover .mdc-tab__text-label{color:var(--mat-tab-active-hover-label-text-color, var(--mat-sys-on-surface))}.mat-mdc-tab.mdc-tab--active:hover .mdc-tab-indicator__content--underline{border-color:var(--mat-tab-active-hover-indicator-color, var(--mat-sys-primary))}.mat-mdc-tab.mdc-tab--active:focus .mdc-tab__text-label{color:var(--mat-tab-active-focus-label-text-color, var(--mat-sys-on-surface))}.mat-mdc-tab.mdc-tab--active:focus .mdc-tab-indicator__content--underline{border-color:var(--mat-tab-active-focus-indicator-color, var(--mat-sys-primary))}.mat-mdc-tab.mat-mdc-tab-disabled{opacity:.4;pointer-events:none}.mat-mdc-tab.mat-mdc-tab-disabled .mdc-tab__content{pointer-events:none}.mat-mdc-tab.mat-mdc-tab-disabled .mdc-tab__ripple::before,.mat-mdc-tab.mat-mdc-tab-disabled .mat-ripple-element{background-color:var(--mat-tab-disabled-ripple-color, var(--mat-sys-on-surface-variant))}.mat-mdc-tab .mdc-tab__ripple::before{content:\"\";display:block;position:absolute;top:0;left:0;right:0;bottom:0;opacity:0;pointer-events:none;background-color:var(--mat-tab-inactive-ripple-color, var(--mat-sys-on-surface))}.mat-mdc-tab .mdc-tab__text-label{color:var(--mat-tab-inactive-label-text-color, var(--mat-sys-on-surface));display:inline-flex;align-items:center}.mat-mdc-tab .mdc-tab__content{position:relative;pointer-events:auto}.mat-mdc-tab:hover .mdc-tab__ripple::before{opacity:.04}.mat-mdc-tab.cdk-program-focused .mdc-tab__ripple::before,.mat-mdc-tab.cdk-keyboard-focused .mdc-tab__ripple::before{opacity:.12}.mat-mdc-tab .mat-ripple-element{opacity:.12;background-color:var(--mat-tab-inactive-ripple-color, var(--mat-sys-on-surface))}.mat-mdc-tab-group.mat-mdc-tab-group-stretch-tabs>.mat-mdc-tab-header .mat-mdc-tab{flex-grow:1}.mat-mdc-tab-group{display:flex;flex-direction:column;max-width:100%}.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header,.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header-pagination{background-color:var(--mat-tab-background-color)}.mat-mdc-tab-group.mat-tabs-with-background.mat-primary>.mat-mdc-tab-header .mat-mdc-tab .mdc-tab__text-label{color:var(--mat-tab-foreground-color)}.mat-mdc-tab-group.mat-tabs-with-background.mat-primary>.mat-mdc-tab-header .mdc-tab-indicator__content--underline{border-color:var(--mat-tab-foreground-color)}.mat-mdc-tab-group.mat-tabs-with-background:not(.mat-primary)>.mat-mdc-tab-header .mat-mdc-tab:not(.mdc-tab--active) .mdc-tab__text-label{color:var(--mat-tab-foreground-color)}.mat-mdc-tab-group.mat-tabs-with-background:not(.mat-primary)>.mat-mdc-tab-header .mat-mdc-tab:not(.mdc-tab--active) .mdc-tab-indicator__content--underline{border-color:var(--mat-tab-foreground-color)}.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header .mat-mdc-tab-header-pagination-chevron,.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header .mat-focus-indicator::before,.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header-pagination .mat-mdc-tab-header-pagination-chevron,.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header-pagination .mat-focus-indicator::before{border-color:var(--mat-tab-foreground-color)}.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header .mat-ripple-element,.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header .mdc-tab__ripple::before,.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header-pagination .mat-ripple-element,.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header-pagination .mdc-tab__ripple::before{background-color:var(--mat-tab-foreground-color)}.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header .mat-mdc-tab-header-pagination-chevron,.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header-pagination .mat-mdc-tab-header-pagination-chevron{color:var(--mat-tab-foreground-color)}.mat-mdc-tab-group.mat-mdc-tab-group-inverted-header{flex-direction:column-reverse}.mat-mdc-tab-group.mat-mdc-tab-group-inverted-header .mdc-tab-indicator__content--underline{align-self:flex-start}.mat-mdc-tab-body-wrapper{position:relative;overflow:hidden;display:flex;transition:height 500ms cubic-bezier(0.35, 0, 0.25, 1)}.mat-mdc-tab-body-wrapper._mat-animation-noopable{transition:none !important;animation:none !important}\n"]
1711
+ }]
1712
+ }],
1713
+ ctorParameters: () => [],
1714
+ propDecorators: {
1715
+ _allTabs: [{
1716
+ type: ContentChildren,
1717
+ args: [MatTab, {
1718
+ descendants: true
1719
+ }]
1720
+ }],
1721
+ _tabBodies: [{
1722
+ type: ViewChildren,
1723
+ args: [MatTabBody]
1724
+ }],
1725
+ _tabBodyWrapper: [{
1726
+ type: ViewChild,
1727
+ args: ['tabBodyWrapper']
1728
+ }],
1729
+ _tabHeader: [{
1730
+ type: ViewChild,
1731
+ args: ['tabHeader']
1732
+ }],
1733
+ color: [{
1734
+ type: Input
1735
+ }],
1736
+ fitInkBarToContent: [{
1737
+ type: Input,
1738
+ args: [{
1739
+ transform: booleanAttribute
1740
+ }]
1741
+ }],
1742
+ stretchTabs: [{
1743
+ type: Input,
1744
+ args: [{
1745
+ alias: 'mat-stretch-tabs',
1746
+ transform: booleanAttribute
1747
+ }]
1748
+ }],
1749
+ alignTabs: [{
1750
+ type: Input,
1751
+ args: [{
1752
+ alias: 'mat-align-tabs'
1753
+ }]
1754
+ }],
1755
+ dynamicHeight: [{
1756
+ type: Input,
1757
+ args: [{
1758
+ transform: booleanAttribute
1759
+ }]
1760
+ }],
1761
+ selectedIndex: [{
1762
+ type: Input,
1763
+ args: [{
1764
+ transform: numberAttribute
1765
+ }]
1766
+ }],
1767
+ headerPosition: [{
1768
+ type: Input
1769
+ }],
1770
+ animationDuration: [{
1771
+ type: Input
1772
+ }],
1773
+ contentTabIndex: [{
1774
+ type: Input,
1775
+ args: [{
1776
+ transform: numberAttribute
1777
+ }]
1778
+ }],
1779
+ disablePagination: [{
1780
+ type: Input,
1781
+ args: [{
1782
+ transform: booleanAttribute
1783
+ }]
1784
+ }],
1785
+ disableRipple: [{
1786
+ type: Input,
1787
+ args: [{
1788
+ transform: booleanAttribute
1789
+ }]
1790
+ }],
1791
+ preserveContent: [{
1792
+ type: Input,
1793
+ args: [{
1794
+ transform: booleanAttribute
1795
+ }]
1796
+ }],
1797
+ backgroundColor: [{
1798
+ type: Input
1799
+ }],
1800
+ ariaLabel: [{
1801
+ type: Input,
1802
+ args: ['aria-label']
1803
+ }],
1804
+ ariaLabelledby: [{
1805
+ type: Input,
1806
+ args: ['aria-labelledby']
1807
+ }],
1808
+ selectedIndexChange: [{
1809
+ type: Output
1810
+ }],
1811
+ focusChange: [{
1812
+ type: Output
1813
+ }],
1814
+ animationDone: [{
1815
+ type: Output
1816
+ }],
1817
+ selectedTabChange: [{
1818
+ type: Output
1819
+ }]
1820
+ }
1821
+ });
1822
+ class MatTabChangeEvent {
1823
+ index;
1824
+ tab;
1825
+ }
1826
+
1827
+ class MatTabNav extends MatPaginatedTabHeader {
1828
+ _focusedItem = signal(null, ...(ngDevMode ? [{
1829
+ debugName: "_focusedItem"
1830
+ }] : []));
1831
+ get fitInkBarToContent() {
1832
+ return this._fitInkBarToContent.value;
1833
+ }
1834
+ set fitInkBarToContent(value) {
1835
+ this._fitInkBarToContent.next(value);
1836
+ this._changeDetectorRef.markForCheck();
1837
+ }
1838
+ _fitInkBarToContent = new BehaviorSubject(false);
1839
+ stretchTabs = true;
1840
+ get animationDuration() {
1841
+ return this._animationDuration;
1842
+ }
1843
+ set animationDuration(value) {
1844
+ const stringValue = value + '';
1845
+ this._animationDuration = /^\d+$/.test(stringValue) ? value + 'ms' : stringValue;
1846
+ }
1847
+ _animationDuration;
1848
+ _items;
1849
+ get backgroundColor() {
1850
+ return this._backgroundColor;
1851
+ }
1852
+ set backgroundColor(value) {
1853
+ const classList = this._elementRef.nativeElement.classList;
1854
+ classList.remove('mat-tabs-with-background', `mat-background-${this.backgroundColor}`);
1855
+ if (value) {
1856
+ classList.add('mat-tabs-with-background', `mat-background-${value}`);
1857
+ }
1858
+ this._backgroundColor = value;
1859
+ }
1860
+ _backgroundColor;
1861
+ get disableRipple() {
1862
+ return this._disableRipple();
1863
+ }
1864
+ set disableRipple(value) {
1865
+ this._disableRipple.set(value);
1866
+ }
1867
+ _disableRipple = signal(false, ...(ngDevMode ? [{
1868
+ debugName: "_disableRipple"
1869
+ }] : []));
1870
+ color = 'primary';
1871
+ tabPanel;
1872
+ _tabListContainer;
1873
+ _tabList;
1874
+ _tabListInner;
1875
+ _nextPaginator;
1876
+ _previousPaginator;
1877
+ _inkBar;
1878
+ constructor() {
1879
+ const defaultConfig = inject(MAT_TABS_CONFIG, {
1880
+ optional: true
1881
+ });
1882
+ super();
1883
+ this.disablePagination = defaultConfig && defaultConfig.disablePagination != null ? defaultConfig.disablePagination : false;
1884
+ this.fitInkBarToContent = defaultConfig && defaultConfig.fitInkBarToContent != null ? defaultConfig.fitInkBarToContent : false;
1885
+ this.stretchTabs = defaultConfig && defaultConfig.stretchTabs != null ? defaultConfig.stretchTabs : true;
1886
+ }
1887
+ _itemSelected() {}
1888
+ ngAfterContentInit() {
1889
+ this._inkBar = new MatInkBar(this._items);
1890
+ this._items.changes.pipe(startWith(null), takeUntil(this._destroyed)).subscribe(() => this.updateActiveLink());
1891
+ super.ngAfterContentInit();
1892
+ this._keyManager.change.pipe(startWith(null), takeUntil(this._destroyed)).subscribe(() => this._focusedItem.set(this._keyManager?.activeItem || null));
1893
+ }
1894
+ ngAfterViewInit() {
1895
+ if (!this.tabPanel && (typeof ngDevMode === 'undefined' || ngDevMode)) {
1896
+ throw new Error('A mat-tab-nav-panel must be specified via [tabPanel].');
1897
+ }
1898
+ super.ngAfterViewInit();
1899
+ }
1900
+ updateActiveLink() {
1901
+ if (!this._items) {
1902
+ return;
1903
+ }
1904
+ const items = this._items.toArray();
1905
+ for (let i = 0; i < items.length; i++) {
1906
+ if (items[i].active) {
1907
+ this.selectedIndex = i;
1908
+ if (this.tabPanel) {
1909
+ this.tabPanel._activeTabId = items[i].id;
1910
+ }
1911
+ this._focusedItem.set(items[i]);
1912
+ this._changeDetectorRef.markForCheck();
1913
+ return;
1914
+ }
1915
+ }
1916
+ this.selectedIndex = -1;
1917
+ }
1918
+ _getRole() {
1919
+ return this.tabPanel ? 'tablist' : this._elementRef.nativeElement.getAttribute('role');
1920
+ }
1921
+ _hasFocus(link) {
1922
+ return this._keyManager?.activeItem === link;
1923
+ }
1924
+ static ɵfac = i0.ɵɵngDeclareFactory({
1925
+ minVersion: "12.0.0",
1926
+ version: "22.0.0-next.1",
1927
+ ngImport: i0,
1928
+ type: MatTabNav,
1929
+ deps: [],
1930
+ target: i0.ɵɵFactoryTarget.Component
1931
+ });
1932
+ static ɵcmp = i0.ɵɵngDeclareComponent({
1933
+ minVersion: "16.1.0",
1934
+ version: "22.0.0-next.1",
1935
+ type: MatTabNav,
1936
+ isStandalone: true,
1937
+ selector: "[mat-tab-nav-bar]",
1938
+ inputs: {
1939
+ fitInkBarToContent: ["fitInkBarToContent", "fitInkBarToContent", booleanAttribute],
1940
+ stretchTabs: ["mat-stretch-tabs", "stretchTabs", booleanAttribute],
1941
+ animationDuration: "animationDuration",
1942
+ backgroundColor: "backgroundColor",
1943
+ disableRipple: ["disableRipple", "disableRipple", booleanAttribute],
1944
+ color: "color",
1945
+ tabPanel: "tabPanel"
1946
+ },
1947
+ host: {
1948
+ properties: {
1949
+ "attr.role": "_getRole()",
1950
+ "class.mat-mdc-tab-header-pagination-controls-enabled": "_showPaginationControls",
1951
+ "class.mat-mdc-tab-header-rtl": "_getLayoutDirection() == 'rtl'",
1952
+ "class.mat-mdc-tab-nav-bar-stretch-tabs": "stretchTabs",
1953
+ "class.mat-primary": "color !== \"warn\" && color !== \"accent\"",
1954
+ "class.mat-accent": "color === \"accent\"",
1955
+ "class.mat-warn": "color === \"warn\"",
1956
+ "class._mat-animation-noopable": "_animationsDisabled",
1957
+ "style.--mat-tab-animation-duration": "animationDuration"
1958
+ },
1959
+ classAttribute: "mat-mdc-tab-nav-bar mat-mdc-tab-header"
1960
+ },
1961
+ queries: [{
1962
+ propertyName: "_items",
1963
+ predicate: i0.forwardRef(() => MatTabLink),
1964
+ descendants: true
1965
+ }],
1966
+ viewQueries: [{
1967
+ propertyName: "_tabListContainer",
1968
+ first: true,
1969
+ predicate: ["tabListContainer"],
1970
+ descendants: true,
1971
+ static: true
1972
+ }, {
1973
+ propertyName: "_tabList",
1974
+ first: true,
1975
+ predicate: ["tabList"],
1976
+ descendants: true,
1977
+ static: true
1978
+ }, {
1979
+ propertyName: "_tabListInner",
1980
+ first: true,
1981
+ predicate: ["tabListInner"],
1982
+ descendants: true,
1983
+ static: true
1984
+ }, {
1985
+ propertyName: "_nextPaginator",
1986
+ first: true,
1987
+ predicate: ["nextPaginator"],
1988
+ descendants: true
1989
+ }, {
1990
+ propertyName: "_previousPaginator",
1991
+ first: true,
1992
+ predicate: ["previousPaginator"],
1993
+ descendants: true
1994
+ }],
1995
+ exportAs: ["matTabNavBar", "matTabNav"],
1996
+ usesInheritance: true,
1997
+ ngImport: i0,
1998
+ template: "<!--\n Note that this intentionally uses a `div` instead of a `button`, because it's not part of\n the regular tabs flow and is only here to support mouse users. It should also not be focusable.\n-->\n<div class=\"mat-mdc-tab-header-pagination mat-mdc-tab-header-pagination-before\"\n #previousPaginator\n mat-ripple\n [matRippleDisabled]=\"_disableScrollBefore || disableRipple\"\n [class.mat-mdc-tab-header-pagination-disabled]=\"_disableScrollBefore\"\n (click)=\"_handlePaginatorClick('before')\"\n (mousedown)=\"_handlePaginatorPress('before', $event)\"\n (touchend)=\"_stopInterval()\">\n <div class=\"mat-mdc-tab-header-pagination-chevron\"></div>\n</div>\n\n<div class=\"mat-mdc-tab-link-container\" #tabListContainer (keydown)=\"_handleKeydown($event)\">\n <div class=\"mat-mdc-tab-list\" #tabList (cdkObserveContent)=\"_onContentChanges()\">\n <div class=\"mat-mdc-tab-links\" #tabListInner>\n <ng-content></ng-content>\n </div>\n </div>\n</div>\n\n<div class=\"mat-mdc-tab-header-pagination mat-mdc-tab-header-pagination-after\"\n #nextPaginator\n mat-ripple\n [matRippleDisabled]=\"_disableScrollAfter || disableRipple\"\n [class.mat-mdc-tab-header-pagination-disabled]=\"_disableScrollAfter\"\n (mousedown)=\"_handlePaginatorPress('after', $event)\"\n (click)=\"_handlePaginatorClick('after')\"\n (touchend)=\"_stopInterval()\">\n <div class=\"mat-mdc-tab-header-pagination-chevron\"></div>\n</div>\n",
1999
+ styles: [".mdc-tab{min-width:90px;padding:0 24px;display:flex;flex:1 0 auto;justify-content:center;box-sizing:border-box;border:none;outline:none;text-align:center;white-space:nowrap;cursor:pointer;z-index:1;touch-action:manipulation}.mdc-tab__content{display:flex;align-items:center;justify-content:center;height:inherit;pointer-events:none}.mdc-tab__text-label{transition:150ms color linear;display:inline-block;line-height:1;z-index:2}.mdc-tab--active .mdc-tab__text-label{transition-delay:100ms}._mat-animation-noopable .mdc-tab__text-label{transition:none}.mdc-tab-indicator{display:flex;position:absolute;top:0;left:0;justify-content:center;width:100%;height:100%;pointer-events:none;z-index:1}.mdc-tab-indicator__content{transition:var(--mat-tab-animation-duration, 250ms) transform cubic-bezier(0.4, 0, 0.2, 1);transform-origin:left;opacity:0}.mdc-tab-indicator__content--underline{align-self:flex-end;box-sizing:border-box;width:100%;border-top-style:solid}.mdc-tab-indicator--active .mdc-tab-indicator__content{opacity:1}._mat-animation-noopable .mdc-tab-indicator__content,.mdc-tab-indicator--no-transition .mdc-tab-indicator__content{transition:none}.mat-mdc-tab-ripple.mat-mdc-tab-ripple{position:absolute;top:0;left:0;bottom:0;right:0;pointer-events:none}.mat-mdc-tab-header{display:flex;overflow:hidden;position:relative;flex-shrink:0}.mdc-tab-indicator .mdc-tab-indicator__content{transition-duration:var(--mat-tab-animation-duration, 250ms)}.mat-mdc-tab-header-pagination{-webkit-user-select:none;user-select:none;position:relative;display:none;justify-content:center;align-items:center;min-width:32px;cursor:pointer;z-index:2;-webkit-tap-highlight-color:rgba(0,0,0,0);touch-action:none;box-sizing:content-box;outline:0}.mat-mdc-tab-header-pagination::-moz-focus-inner{border:0}.mat-mdc-tab-header-pagination .mat-ripple-element{opacity:.12;background-color:var(--mat-tab-inactive-ripple-color, var(--mat-sys-on-surface))}.mat-mdc-tab-header-pagination-controls-enabled .mat-mdc-tab-header-pagination{display:flex}.mat-mdc-tab-header-pagination-before,.mat-mdc-tab-header-rtl .mat-mdc-tab-header-pagination-after{padding-left:4px}.mat-mdc-tab-header-pagination-before .mat-mdc-tab-header-pagination-chevron,.mat-mdc-tab-header-rtl .mat-mdc-tab-header-pagination-after .mat-mdc-tab-header-pagination-chevron{transform:rotate(-135deg)}.mat-mdc-tab-header-rtl .mat-mdc-tab-header-pagination-before,.mat-mdc-tab-header-pagination-after{padding-right:4px}.mat-mdc-tab-header-rtl .mat-mdc-tab-header-pagination-before .mat-mdc-tab-header-pagination-chevron,.mat-mdc-tab-header-pagination-after .mat-mdc-tab-header-pagination-chevron{transform:rotate(45deg)}.mat-mdc-tab-header-pagination-chevron{border-style:solid;border-width:2px 2px 0 0;height:8px;width:8px;border-color:var(--mat-tab-pagination-icon-color, var(--mat-sys-on-surface))}.mat-mdc-tab-header-pagination-disabled{box-shadow:none;cursor:default;pointer-events:none}.mat-mdc-tab-header-pagination-disabled .mat-mdc-tab-header-pagination-chevron{opacity:.4}.mat-mdc-tab-list{flex-grow:1;position:relative;transition:transform 500ms cubic-bezier(0.35, 0, 0.25, 1)}._mat-animation-noopable .mat-mdc-tab-list{transition:none}.mat-mdc-tab-links{display:flex;flex:1 0 auto}[mat-align-tabs=center]>.mat-mdc-tab-link-container .mat-mdc-tab-links{justify-content:center}[mat-align-tabs=end]>.mat-mdc-tab-link-container .mat-mdc-tab-links{justify-content:flex-end}.cdk-drop-list .mat-mdc-tab-links,.mat-mdc-tab-links.cdk-drop-list{min-height:var(--mat-tab-container-height, 48px)}.mat-mdc-tab-link-container{display:flex;flex-grow:1;overflow:hidden;z-index:1;border-bottom-style:solid;border-bottom-width:var(--mat-tab-divider-height, 1px);border-bottom-color:var(--mat-tab-divider-color, var(--mat-sys-surface-variant))}.mat-mdc-tab-nav-bar.mat-tabs-with-background>.mat-mdc-tab-link-container,.mat-mdc-tab-nav-bar.mat-tabs-with-background>.mat-mdc-tab-header-pagination{background-color:var(--mat-tab-background-color)}.mat-mdc-tab-nav-bar.mat-tabs-with-background.mat-primary>.mat-mdc-tab-link-container .mat-mdc-tab-link .mdc-tab__text-label{color:var(--mat-tab-foreground-color)}.mat-mdc-tab-nav-bar.mat-tabs-with-background.mat-primary>.mat-mdc-tab-link-container .mdc-tab-indicator__content--underline{border-color:var(--mat-tab-foreground-color)}.mat-mdc-tab-nav-bar.mat-tabs-with-background:not(.mat-primary)>.mat-mdc-tab-link-container .mat-mdc-tab-link:not(.mdc-tab--active) .mdc-tab__text-label{color:var(--mat-tab-foreground-color)}.mat-mdc-tab-nav-bar.mat-tabs-with-background:not(.mat-primary)>.mat-mdc-tab-link-container .mat-mdc-tab-link:not(.mdc-tab--active) .mdc-tab-indicator__content--underline{border-color:var(--mat-tab-foreground-color)}.mat-mdc-tab-nav-bar.mat-tabs-with-background>.mat-mdc-tab-link-container .mat-mdc-tab-header-pagination-chevron,.mat-mdc-tab-nav-bar.mat-tabs-with-background>.mat-mdc-tab-link-container .mat-focus-indicator::before,.mat-mdc-tab-nav-bar.mat-tabs-with-background>.mat-mdc-tab-header-pagination .mat-mdc-tab-header-pagination-chevron,.mat-mdc-tab-nav-bar.mat-tabs-with-background>.mat-mdc-tab-header-pagination .mat-focus-indicator::before{border-color:var(--mat-tab-foreground-color)}.mat-mdc-tab-nav-bar.mat-tabs-with-background>.mat-mdc-tab-link-container .mat-ripple-element,.mat-mdc-tab-nav-bar.mat-tabs-with-background>.mat-mdc-tab-link-container .mdc-tab__ripple::before,.mat-mdc-tab-nav-bar.mat-tabs-with-background>.mat-mdc-tab-header-pagination .mat-ripple-element,.mat-mdc-tab-nav-bar.mat-tabs-with-background>.mat-mdc-tab-header-pagination .mdc-tab__ripple::before{background-color:var(--mat-tab-foreground-color)}.mat-mdc-tab-nav-bar.mat-tabs-with-background>.mat-mdc-tab-link-container .mat-mdc-tab-header-pagination-chevron,.mat-mdc-tab-nav-bar.mat-tabs-with-background>.mat-mdc-tab-header-pagination .mat-mdc-tab-header-pagination-chevron{color:var(--mat-tab-foreground-color)}\n"],
2000
+ dependencies: [{
2001
+ kind: "directive",
2002
+ type: MatRipple,
2003
+ selector: "[mat-ripple], [matRipple]",
2004
+ inputs: ["matRippleColor", "matRippleUnbounded", "matRippleCentered", "matRippleRadius", "matRippleAnimation", "matRippleDisabled", "matRippleTrigger"],
2005
+ exportAs: ["matRipple"]
2006
+ }, {
2007
+ kind: "directive",
2008
+ type: CdkObserveContent,
2009
+ selector: "[cdkObserveContent]",
2010
+ inputs: ["cdkObserveContentDisabled", "debounce"],
2011
+ outputs: ["cdkObserveContent"],
2012
+ exportAs: ["cdkObserveContent"]
2013
+ }],
2014
+ changeDetection: i0.ChangeDetectionStrategy.Eager,
2015
+ encapsulation: i0.ViewEncapsulation.None
2016
+ });
2017
+ }
2018
+ i0.ɵɵngDeclareClassMetadata({
2019
+ minVersion: "12.0.0",
2020
+ version: "22.0.0-next.1",
2021
+ ngImport: i0,
2022
+ type: MatTabNav,
2023
+ decorators: [{
2024
+ type: Component,
2025
+ args: [{
2026
+ selector: '[mat-tab-nav-bar]',
2027
+ exportAs: 'matTabNavBar, matTabNav',
2028
+ host: {
2029
+ '[attr.role]': '_getRole()',
2030
+ 'class': 'mat-mdc-tab-nav-bar mat-mdc-tab-header',
2031
+ '[class.mat-mdc-tab-header-pagination-controls-enabled]': '_showPaginationControls',
2032
+ '[class.mat-mdc-tab-header-rtl]': "_getLayoutDirection() == 'rtl'",
2033
+ '[class.mat-mdc-tab-nav-bar-stretch-tabs]': 'stretchTabs',
2034
+ '[class.mat-primary]': 'color !== "warn" && color !== "accent"',
2035
+ '[class.mat-accent]': 'color === "accent"',
2036
+ '[class.mat-warn]': 'color === "warn"',
2037
+ '[class._mat-animation-noopable]': '_animationsDisabled',
2038
+ '[style.--mat-tab-animation-duration]': 'animationDuration'
2039
+ },
2040
+ encapsulation: ViewEncapsulation.None,
2041
+ changeDetection: ChangeDetectionStrategy.Default,
2042
+ imports: [MatRipple, CdkObserveContent],
2043
+ template: "<!--\n Note that this intentionally uses a `div` instead of a `button`, because it's not part of\n the regular tabs flow and is only here to support mouse users. It should also not be focusable.\n-->\n<div class=\"mat-mdc-tab-header-pagination mat-mdc-tab-header-pagination-before\"\n #previousPaginator\n mat-ripple\n [matRippleDisabled]=\"_disableScrollBefore || disableRipple\"\n [class.mat-mdc-tab-header-pagination-disabled]=\"_disableScrollBefore\"\n (click)=\"_handlePaginatorClick('before')\"\n (mousedown)=\"_handlePaginatorPress('before', $event)\"\n (touchend)=\"_stopInterval()\">\n <div class=\"mat-mdc-tab-header-pagination-chevron\"></div>\n</div>\n\n<div class=\"mat-mdc-tab-link-container\" #tabListContainer (keydown)=\"_handleKeydown($event)\">\n <div class=\"mat-mdc-tab-list\" #tabList (cdkObserveContent)=\"_onContentChanges()\">\n <div class=\"mat-mdc-tab-links\" #tabListInner>\n <ng-content></ng-content>\n </div>\n </div>\n</div>\n\n<div class=\"mat-mdc-tab-header-pagination mat-mdc-tab-header-pagination-after\"\n #nextPaginator\n mat-ripple\n [matRippleDisabled]=\"_disableScrollAfter || disableRipple\"\n [class.mat-mdc-tab-header-pagination-disabled]=\"_disableScrollAfter\"\n (mousedown)=\"_handlePaginatorPress('after', $event)\"\n (click)=\"_handlePaginatorClick('after')\"\n (touchend)=\"_stopInterval()\">\n <div class=\"mat-mdc-tab-header-pagination-chevron\"></div>\n</div>\n",
2044
+ styles: [".mdc-tab{min-width:90px;padding:0 24px;display:flex;flex:1 0 auto;justify-content:center;box-sizing:border-box;border:none;outline:none;text-align:center;white-space:nowrap;cursor:pointer;z-index:1;touch-action:manipulation}.mdc-tab__content{display:flex;align-items:center;justify-content:center;height:inherit;pointer-events:none}.mdc-tab__text-label{transition:150ms color linear;display:inline-block;line-height:1;z-index:2}.mdc-tab--active .mdc-tab__text-label{transition-delay:100ms}._mat-animation-noopable .mdc-tab__text-label{transition:none}.mdc-tab-indicator{display:flex;position:absolute;top:0;left:0;justify-content:center;width:100%;height:100%;pointer-events:none;z-index:1}.mdc-tab-indicator__content{transition:var(--mat-tab-animation-duration, 250ms) transform cubic-bezier(0.4, 0, 0.2, 1);transform-origin:left;opacity:0}.mdc-tab-indicator__content--underline{align-self:flex-end;box-sizing:border-box;width:100%;border-top-style:solid}.mdc-tab-indicator--active .mdc-tab-indicator__content{opacity:1}._mat-animation-noopable .mdc-tab-indicator__content,.mdc-tab-indicator--no-transition .mdc-tab-indicator__content{transition:none}.mat-mdc-tab-ripple.mat-mdc-tab-ripple{position:absolute;top:0;left:0;bottom:0;right:0;pointer-events:none}.mat-mdc-tab-header{display:flex;overflow:hidden;position:relative;flex-shrink:0}.mdc-tab-indicator .mdc-tab-indicator__content{transition-duration:var(--mat-tab-animation-duration, 250ms)}.mat-mdc-tab-header-pagination{-webkit-user-select:none;user-select:none;position:relative;display:none;justify-content:center;align-items:center;min-width:32px;cursor:pointer;z-index:2;-webkit-tap-highlight-color:rgba(0,0,0,0);touch-action:none;box-sizing:content-box;outline:0}.mat-mdc-tab-header-pagination::-moz-focus-inner{border:0}.mat-mdc-tab-header-pagination .mat-ripple-element{opacity:.12;background-color:var(--mat-tab-inactive-ripple-color, var(--mat-sys-on-surface))}.mat-mdc-tab-header-pagination-controls-enabled .mat-mdc-tab-header-pagination{display:flex}.mat-mdc-tab-header-pagination-before,.mat-mdc-tab-header-rtl .mat-mdc-tab-header-pagination-after{padding-left:4px}.mat-mdc-tab-header-pagination-before .mat-mdc-tab-header-pagination-chevron,.mat-mdc-tab-header-rtl .mat-mdc-tab-header-pagination-after .mat-mdc-tab-header-pagination-chevron{transform:rotate(-135deg)}.mat-mdc-tab-header-rtl .mat-mdc-tab-header-pagination-before,.mat-mdc-tab-header-pagination-after{padding-right:4px}.mat-mdc-tab-header-rtl .mat-mdc-tab-header-pagination-before .mat-mdc-tab-header-pagination-chevron,.mat-mdc-tab-header-pagination-after .mat-mdc-tab-header-pagination-chevron{transform:rotate(45deg)}.mat-mdc-tab-header-pagination-chevron{border-style:solid;border-width:2px 2px 0 0;height:8px;width:8px;border-color:var(--mat-tab-pagination-icon-color, var(--mat-sys-on-surface))}.mat-mdc-tab-header-pagination-disabled{box-shadow:none;cursor:default;pointer-events:none}.mat-mdc-tab-header-pagination-disabled .mat-mdc-tab-header-pagination-chevron{opacity:.4}.mat-mdc-tab-list{flex-grow:1;position:relative;transition:transform 500ms cubic-bezier(0.35, 0, 0.25, 1)}._mat-animation-noopable .mat-mdc-tab-list{transition:none}.mat-mdc-tab-links{display:flex;flex:1 0 auto}[mat-align-tabs=center]>.mat-mdc-tab-link-container .mat-mdc-tab-links{justify-content:center}[mat-align-tabs=end]>.mat-mdc-tab-link-container .mat-mdc-tab-links{justify-content:flex-end}.cdk-drop-list .mat-mdc-tab-links,.mat-mdc-tab-links.cdk-drop-list{min-height:var(--mat-tab-container-height, 48px)}.mat-mdc-tab-link-container{display:flex;flex-grow:1;overflow:hidden;z-index:1;border-bottom-style:solid;border-bottom-width:var(--mat-tab-divider-height, 1px);border-bottom-color:var(--mat-tab-divider-color, var(--mat-sys-surface-variant))}.mat-mdc-tab-nav-bar.mat-tabs-with-background>.mat-mdc-tab-link-container,.mat-mdc-tab-nav-bar.mat-tabs-with-background>.mat-mdc-tab-header-pagination{background-color:var(--mat-tab-background-color)}.mat-mdc-tab-nav-bar.mat-tabs-with-background.mat-primary>.mat-mdc-tab-link-container .mat-mdc-tab-link .mdc-tab__text-label{color:var(--mat-tab-foreground-color)}.mat-mdc-tab-nav-bar.mat-tabs-with-background.mat-primary>.mat-mdc-tab-link-container .mdc-tab-indicator__content--underline{border-color:var(--mat-tab-foreground-color)}.mat-mdc-tab-nav-bar.mat-tabs-with-background:not(.mat-primary)>.mat-mdc-tab-link-container .mat-mdc-tab-link:not(.mdc-tab--active) .mdc-tab__text-label{color:var(--mat-tab-foreground-color)}.mat-mdc-tab-nav-bar.mat-tabs-with-background:not(.mat-primary)>.mat-mdc-tab-link-container .mat-mdc-tab-link:not(.mdc-tab--active) .mdc-tab-indicator__content--underline{border-color:var(--mat-tab-foreground-color)}.mat-mdc-tab-nav-bar.mat-tabs-with-background>.mat-mdc-tab-link-container .mat-mdc-tab-header-pagination-chevron,.mat-mdc-tab-nav-bar.mat-tabs-with-background>.mat-mdc-tab-link-container .mat-focus-indicator::before,.mat-mdc-tab-nav-bar.mat-tabs-with-background>.mat-mdc-tab-header-pagination .mat-mdc-tab-header-pagination-chevron,.mat-mdc-tab-nav-bar.mat-tabs-with-background>.mat-mdc-tab-header-pagination .mat-focus-indicator::before{border-color:var(--mat-tab-foreground-color)}.mat-mdc-tab-nav-bar.mat-tabs-with-background>.mat-mdc-tab-link-container .mat-ripple-element,.mat-mdc-tab-nav-bar.mat-tabs-with-background>.mat-mdc-tab-link-container .mdc-tab__ripple::before,.mat-mdc-tab-nav-bar.mat-tabs-with-background>.mat-mdc-tab-header-pagination .mat-ripple-element,.mat-mdc-tab-nav-bar.mat-tabs-with-background>.mat-mdc-tab-header-pagination .mdc-tab__ripple::before{background-color:var(--mat-tab-foreground-color)}.mat-mdc-tab-nav-bar.mat-tabs-with-background>.mat-mdc-tab-link-container .mat-mdc-tab-header-pagination-chevron,.mat-mdc-tab-nav-bar.mat-tabs-with-background>.mat-mdc-tab-header-pagination .mat-mdc-tab-header-pagination-chevron{color:var(--mat-tab-foreground-color)}\n"]
2045
+ }]
2046
+ }],
2047
+ ctorParameters: () => [],
2048
+ propDecorators: {
2049
+ fitInkBarToContent: [{
2050
+ type: Input,
2051
+ args: [{
2052
+ transform: booleanAttribute
2053
+ }]
2054
+ }],
2055
+ stretchTabs: [{
2056
+ type: Input,
2057
+ args: [{
2058
+ alias: 'mat-stretch-tabs',
2059
+ transform: booleanAttribute
2060
+ }]
2061
+ }],
2062
+ animationDuration: [{
2063
+ type: Input
2064
+ }],
2065
+ _items: [{
2066
+ type: ContentChildren,
2067
+ args: [forwardRef(() => MatTabLink), {
2068
+ descendants: true
2069
+ }]
2070
+ }],
2071
+ backgroundColor: [{
2072
+ type: Input
2073
+ }],
2074
+ disableRipple: [{
2075
+ type: Input,
2076
+ args: [{
2077
+ transform: booleanAttribute
2078
+ }]
2079
+ }],
2080
+ color: [{
2081
+ type: Input
2082
+ }],
2083
+ tabPanel: [{
2084
+ type: Input
2085
+ }],
2086
+ _tabListContainer: [{
2087
+ type: ViewChild,
2088
+ args: ['tabListContainer', {
2089
+ static: true
2090
+ }]
2091
+ }],
2092
+ _tabList: [{
2093
+ type: ViewChild,
2094
+ args: ['tabList', {
2095
+ static: true
2096
+ }]
2097
+ }],
2098
+ _tabListInner: [{
2099
+ type: ViewChild,
2100
+ args: ['tabListInner', {
2101
+ static: true
2102
+ }]
2103
+ }],
2104
+ _nextPaginator: [{
2105
+ type: ViewChild,
2106
+ args: ['nextPaginator']
2107
+ }],
2108
+ _previousPaginator: [{
2109
+ type: ViewChild,
2110
+ args: ['previousPaginator']
2111
+ }]
2112
+ }
2113
+ });
2114
+ class MatTabLink extends InkBarItem {
2115
+ _tabNavBar = inject(MatTabNav);
2116
+ elementRef = inject(ElementRef);
2117
+ _focusMonitor = inject(FocusMonitor);
2118
+ _destroyed = new Subject();
2119
+ _isActive = false;
2120
+ _tabIndex = computed(() => this._tabNavBar._focusedItem() === this ? this.tabIndex : -1, ...(ngDevMode ? [{
2121
+ debugName: "_tabIndex"
2122
+ }] : []));
2123
+ get active() {
2124
+ return this._isActive;
2125
+ }
2126
+ set active(value) {
2127
+ if (value !== this._isActive) {
2128
+ this._isActive = value;
2129
+ this._tabNavBar.updateActiveLink();
2130
+ }
2131
+ }
2132
+ disabled = false;
2133
+ get disableRipple() {
2134
+ return this._disableRipple();
2135
+ }
2136
+ set disableRipple(value) {
2137
+ this._disableRipple.set(value);
2138
+ }
2139
+ _disableRipple = signal(false, ...(ngDevMode ? [{
2140
+ debugName: "_disableRipple"
2141
+ }] : []));
2142
+ tabIndex = 0;
2143
+ rippleConfig;
2144
+ get rippleDisabled() {
2145
+ return this.disabled || this.disableRipple || this._tabNavBar.disableRipple || !!this.rippleConfig.disabled;
2146
+ }
2147
+ id = inject(_IdGenerator).getId('mat-tab-link-');
2148
+ constructor() {
2149
+ super();
2150
+ inject(_CdkPrivateStyleLoader).load(_StructuralStylesLoader);
2151
+ const globalRippleOptions = inject(MAT_RIPPLE_GLOBAL_OPTIONS, {
2152
+ optional: true
2153
+ });
2154
+ const tabIndex = inject(new HostAttributeToken('tabindex'), {
2155
+ optional: true
2156
+ });
2157
+ this.rippleConfig = globalRippleOptions || {};
2158
+ this.tabIndex = tabIndex == null ? 0 : parseInt(tabIndex) || 0;
2159
+ if (_animationsDisabled()) {
2160
+ this.rippleConfig.animation = {
2161
+ enterDuration: 0,
2162
+ exitDuration: 0
2163
+ };
2164
+ }
2165
+ this._tabNavBar._fitInkBarToContent.pipe(takeUntil(this._destroyed)).subscribe(fitInkBarToContent => {
2166
+ this.fitInkBarToContent = fitInkBarToContent;
2167
+ });
2168
+ }
2169
+ focus() {
2170
+ this.elementRef.nativeElement.focus();
2171
+ }
2172
+ ngAfterViewInit() {
2173
+ this._focusMonitor.monitor(this.elementRef);
2174
+ }
2175
+ ngOnDestroy() {
2176
+ this._destroyed.next();
2177
+ this._destroyed.complete();
2178
+ super.ngOnDestroy();
2179
+ this._focusMonitor.stopMonitoring(this.elementRef);
2180
+ }
2181
+ _handleFocus() {
2182
+ this._tabNavBar.focusIndex = this._tabNavBar._items.toArray().indexOf(this);
2183
+ }
2184
+ _handleKeydown(event) {
2185
+ if (event.keyCode === SPACE || event.keyCode === ENTER) {
2186
+ if (this.disabled) {
2187
+ event.preventDefault();
2188
+ } else if (this._tabNavBar.tabPanel) {
2189
+ if (event.keyCode === SPACE) {
2190
+ event.preventDefault();
2191
+ }
2192
+ this.elementRef.nativeElement.click();
2193
+ }
2194
+ }
2195
+ }
2196
+ _getAriaControls() {
2197
+ return this._tabNavBar.tabPanel ? this._tabNavBar.tabPanel?.id : this.elementRef.nativeElement.getAttribute('aria-controls');
2198
+ }
2199
+ _getAriaSelected() {
2200
+ if (this._tabNavBar.tabPanel) {
2201
+ return this.active ? 'true' : 'false';
2202
+ } else {
2203
+ return this.elementRef.nativeElement.getAttribute('aria-selected');
2204
+ }
2205
+ }
2206
+ _getAriaCurrent() {
2207
+ return this.active && !this._tabNavBar.tabPanel ? 'page' : null;
2208
+ }
2209
+ _getRole() {
2210
+ return this._tabNavBar.tabPanel ? 'tab' : this.elementRef.nativeElement.getAttribute('role');
2211
+ }
2212
+ static ɵfac = i0.ɵɵngDeclareFactory({
2213
+ minVersion: "12.0.0",
2214
+ version: "22.0.0-next.1",
2215
+ ngImport: i0,
2216
+ type: MatTabLink,
2217
+ deps: [],
2218
+ target: i0.ɵɵFactoryTarget.Component
2219
+ });
2220
+ static ɵcmp = i0.ɵɵngDeclareComponent({
2221
+ minVersion: "16.1.0",
2222
+ version: "22.0.0-next.1",
2223
+ type: MatTabLink,
2224
+ isStandalone: true,
2225
+ selector: "[mat-tab-link], [matTabLink]",
2226
+ inputs: {
2227
+ active: ["active", "active", booleanAttribute],
2228
+ disabled: ["disabled", "disabled", booleanAttribute],
2229
+ disableRipple: ["disableRipple", "disableRipple", booleanAttribute],
2230
+ tabIndex: ["tabIndex", "tabIndex", value => value == null ? 0 : numberAttribute(value)],
2231
+ id: "id"
2232
+ },
2233
+ host: {
2234
+ listeners: {
2235
+ "focus": "_handleFocus()",
2236
+ "keydown": "_handleKeydown($event)"
2237
+ },
2238
+ properties: {
2239
+ "attr.aria-controls": "_getAriaControls()",
2240
+ "attr.aria-current": "_getAriaCurrent()",
2241
+ "attr.aria-disabled": "disabled",
2242
+ "attr.aria-selected": "_getAriaSelected()",
2243
+ "attr.id": "id",
2244
+ "attr.tabIndex": "_tabIndex()",
2245
+ "attr.role": "_getRole()",
2246
+ "class.mat-mdc-tab-disabled": "disabled",
2247
+ "class.mdc-tab--active": "active"
2248
+ },
2249
+ classAttribute: "mdc-tab mat-mdc-tab-link mat-focus-indicator"
2250
+ },
2251
+ exportAs: ["matTabLink"],
2252
+ usesInheritance: true,
2253
+ ngImport: i0,
2254
+ template: "<span class=\"mdc-tab__ripple\"></span>\n\n<div\n class=\"mat-mdc-tab-ripple\"\n mat-ripple\n [matRippleTrigger]=\"elementRef.nativeElement\"\n [matRippleDisabled]=\"rippleDisabled\"></div>\n\n<span class=\"mdc-tab__content\">\n <span class=\"mdc-tab__text-label\">\n <ng-content></ng-content>\n </span>\n</span>\n\n",
2255
+ styles: [".mat-mdc-tab-link{-webkit-tap-highlight-color:rgba(0,0,0,0);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-decoration:none;background:none;height:var(--mat-tab-container-height, 48px);font-family:var(--mat-tab-label-text-font, var(--mat-sys-title-small-font));font-size:var(--mat-tab-label-text-size, var(--mat-sys-title-small-size));letter-spacing:var(--mat-tab-label-text-tracking, var(--mat-sys-title-small-tracking));line-height:var(--mat-tab-label-text-line-height, var(--mat-sys-title-small-line-height));font-weight:var(--mat-tab-label-text-weight, var(--mat-sys-title-small-weight))}.mat-mdc-tab-link.mdc-tab{flex-grow:0}.mat-mdc-tab-link .mdc-tab-indicator__content--underline{border-color:var(--mat-tab-active-indicator-color, var(--mat-sys-primary));border-top-width:var(--mat-tab-active-indicator-height, 2px);border-radius:var(--mat-tab-active-indicator-shape, 0)}.mat-mdc-tab-link:hover .mdc-tab__text-label{color:var(--mat-tab-inactive-hover-label-text-color, var(--mat-sys-on-surface))}.mat-mdc-tab-link:focus .mdc-tab__text-label{color:var(--mat-tab-inactive-focus-label-text-color, var(--mat-sys-on-surface))}.mat-mdc-tab-link.mdc-tab--active .mdc-tab__text-label{color:var(--mat-tab-active-label-text-color, var(--mat-sys-on-surface))}.mat-mdc-tab-link.mdc-tab--active .mdc-tab__ripple::before,.mat-mdc-tab-link.mdc-tab--active .mat-ripple-element{background-color:var(--mat-tab-active-ripple-color, var(--mat-sys-on-surface))}.mat-mdc-tab-link.mdc-tab--active:hover .mdc-tab__text-label{color:var(--mat-tab-active-hover-label-text-color, var(--mat-sys-on-surface))}.mat-mdc-tab-link.mdc-tab--active:hover .mdc-tab-indicator__content--underline{border-color:var(--mat-tab-active-hover-indicator-color, var(--mat-sys-primary))}.mat-mdc-tab-link.mdc-tab--active:focus .mdc-tab__text-label{color:var(--mat-tab-active-focus-label-text-color, var(--mat-sys-on-surface))}.mat-mdc-tab-link.mdc-tab--active:focus .mdc-tab-indicator__content--underline{border-color:var(--mat-tab-active-focus-indicator-color, var(--mat-sys-primary))}.mat-mdc-tab-link.mat-mdc-tab-disabled{opacity:.4;pointer-events:none}.mat-mdc-tab-link.mat-mdc-tab-disabled .mdc-tab__content{pointer-events:none}.mat-mdc-tab-link.mat-mdc-tab-disabled .mdc-tab__ripple::before,.mat-mdc-tab-link.mat-mdc-tab-disabled .mat-ripple-element{background-color:var(--mat-tab-disabled-ripple-color, var(--mat-sys-on-surface-variant))}.mat-mdc-tab-link .mdc-tab__ripple::before{content:\"\";display:block;position:absolute;top:0;left:0;right:0;bottom:0;opacity:0;pointer-events:none;background-color:var(--mat-tab-inactive-ripple-color, var(--mat-sys-on-surface))}.mat-mdc-tab-link .mdc-tab__text-label{color:var(--mat-tab-inactive-label-text-color, var(--mat-sys-on-surface));display:inline-flex;align-items:center}.mat-mdc-tab-link .mdc-tab__content{position:relative;pointer-events:auto}.mat-mdc-tab-link:hover .mdc-tab__ripple::before{opacity:.04}.mat-mdc-tab-link.cdk-program-focused .mdc-tab__ripple::before,.mat-mdc-tab-link.cdk-keyboard-focused .mdc-tab__ripple::before{opacity:.12}.mat-mdc-tab-link .mat-ripple-element{opacity:.12;background-color:var(--mat-tab-inactive-ripple-color, var(--mat-sys-on-surface))}.mat-mdc-tab-header.mat-mdc-tab-nav-bar-stretch-tabs .mat-mdc-tab-link{flex-grow:1}.mat-mdc-tab-link::before{margin:5px}@media(max-width: 599px){.mat-mdc-tab-link{min-width:72px}}\n"],
2256
+ dependencies: [{
2257
+ kind: "directive",
2258
+ type: MatRipple,
2259
+ selector: "[mat-ripple], [matRipple]",
2260
+ inputs: ["matRippleColor", "matRippleUnbounded", "matRippleCentered", "matRippleRadius", "matRippleAnimation", "matRippleDisabled", "matRippleTrigger"],
2261
+ exportAs: ["matRipple"]
2262
+ }],
2263
+ changeDetection: i0.ChangeDetectionStrategy.OnPush,
2264
+ encapsulation: i0.ViewEncapsulation.None
2265
+ });
2266
+ }
2267
+ i0.ɵɵngDeclareClassMetadata({
2268
+ minVersion: "12.0.0",
2269
+ version: "22.0.0-next.1",
2270
+ ngImport: i0,
2271
+ type: MatTabLink,
2272
+ decorators: [{
2273
+ type: Component,
2274
+ args: [{
2275
+ selector: '[mat-tab-link], [matTabLink]',
2276
+ exportAs: 'matTabLink',
2277
+ changeDetection: ChangeDetectionStrategy.OnPush,
2278
+ encapsulation: ViewEncapsulation.None,
2279
+ host: {
2280
+ 'class': 'mdc-tab mat-mdc-tab-link mat-focus-indicator',
2281
+ '[attr.aria-controls]': '_getAriaControls()',
2282
+ '[attr.aria-current]': '_getAriaCurrent()',
2283
+ '[attr.aria-disabled]': 'disabled',
2284
+ '[attr.aria-selected]': '_getAriaSelected()',
2285
+ '[attr.id]': 'id',
2286
+ '[attr.tabIndex]': '_tabIndex()',
2287
+ '[attr.role]': '_getRole()',
2288
+ '[class.mat-mdc-tab-disabled]': 'disabled',
2289
+ '[class.mdc-tab--active]': 'active',
2290
+ '(focus)': '_handleFocus()',
2291
+ '(keydown)': '_handleKeydown($event)'
2292
+ },
2293
+ imports: [MatRipple],
2294
+ template: "<span class=\"mdc-tab__ripple\"></span>\n\n<div\n class=\"mat-mdc-tab-ripple\"\n mat-ripple\n [matRippleTrigger]=\"elementRef.nativeElement\"\n [matRippleDisabled]=\"rippleDisabled\"></div>\n\n<span class=\"mdc-tab__content\">\n <span class=\"mdc-tab__text-label\">\n <ng-content></ng-content>\n </span>\n</span>\n\n",
2295
+ styles: [".mat-mdc-tab-link{-webkit-tap-highlight-color:rgba(0,0,0,0);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-decoration:none;background:none;height:var(--mat-tab-container-height, 48px);font-family:var(--mat-tab-label-text-font, var(--mat-sys-title-small-font));font-size:var(--mat-tab-label-text-size, var(--mat-sys-title-small-size));letter-spacing:var(--mat-tab-label-text-tracking, var(--mat-sys-title-small-tracking));line-height:var(--mat-tab-label-text-line-height, var(--mat-sys-title-small-line-height));font-weight:var(--mat-tab-label-text-weight, var(--mat-sys-title-small-weight))}.mat-mdc-tab-link.mdc-tab{flex-grow:0}.mat-mdc-tab-link .mdc-tab-indicator__content--underline{border-color:var(--mat-tab-active-indicator-color, var(--mat-sys-primary));border-top-width:var(--mat-tab-active-indicator-height, 2px);border-radius:var(--mat-tab-active-indicator-shape, 0)}.mat-mdc-tab-link:hover .mdc-tab__text-label{color:var(--mat-tab-inactive-hover-label-text-color, var(--mat-sys-on-surface))}.mat-mdc-tab-link:focus .mdc-tab__text-label{color:var(--mat-tab-inactive-focus-label-text-color, var(--mat-sys-on-surface))}.mat-mdc-tab-link.mdc-tab--active .mdc-tab__text-label{color:var(--mat-tab-active-label-text-color, var(--mat-sys-on-surface))}.mat-mdc-tab-link.mdc-tab--active .mdc-tab__ripple::before,.mat-mdc-tab-link.mdc-tab--active .mat-ripple-element{background-color:var(--mat-tab-active-ripple-color, var(--mat-sys-on-surface))}.mat-mdc-tab-link.mdc-tab--active:hover .mdc-tab__text-label{color:var(--mat-tab-active-hover-label-text-color, var(--mat-sys-on-surface))}.mat-mdc-tab-link.mdc-tab--active:hover .mdc-tab-indicator__content--underline{border-color:var(--mat-tab-active-hover-indicator-color, var(--mat-sys-primary))}.mat-mdc-tab-link.mdc-tab--active:focus .mdc-tab__text-label{color:var(--mat-tab-active-focus-label-text-color, var(--mat-sys-on-surface))}.mat-mdc-tab-link.mdc-tab--active:focus .mdc-tab-indicator__content--underline{border-color:var(--mat-tab-active-focus-indicator-color, var(--mat-sys-primary))}.mat-mdc-tab-link.mat-mdc-tab-disabled{opacity:.4;pointer-events:none}.mat-mdc-tab-link.mat-mdc-tab-disabled .mdc-tab__content{pointer-events:none}.mat-mdc-tab-link.mat-mdc-tab-disabled .mdc-tab__ripple::before,.mat-mdc-tab-link.mat-mdc-tab-disabled .mat-ripple-element{background-color:var(--mat-tab-disabled-ripple-color, var(--mat-sys-on-surface-variant))}.mat-mdc-tab-link .mdc-tab__ripple::before{content:\"\";display:block;position:absolute;top:0;left:0;right:0;bottom:0;opacity:0;pointer-events:none;background-color:var(--mat-tab-inactive-ripple-color, var(--mat-sys-on-surface))}.mat-mdc-tab-link .mdc-tab__text-label{color:var(--mat-tab-inactive-label-text-color, var(--mat-sys-on-surface));display:inline-flex;align-items:center}.mat-mdc-tab-link .mdc-tab__content{position:relative;pointer-events:auto}.mat-mdc-tab-link:hover .mdc-tab__ripple::before{opacity:.04}.mat-mdc-tab-link.cdk-program-focused .mdc-tab__ripple::before,.mat-mdc-tab-link.cdk-keyboard-focused .mdc-tab__ripple::before{opacity:.12}.mat-mdc-tab-link .mat-ripple-element{opacity:.12;background-color:var(--mat-tab-inactive-ripple-color, var(--mat-sys-on-surface))}.mat-mdc-tab-header.mat-mdc-tab-nav-bar-stretch-tabs .mat-mdc-tab-link{flex-grow:1}.mat-mdc-tab-link::before{margin:5px}@media(max-width: 599px){.mat-mdc-tab-link{min-width:72px}}\n"]
2296
+ }]
2297
+ }],
2298
+ ctorParameters: () => [],
2299
+ propDecorators: {
2300
+ active: [{
2301
+ type: Input,
2302
+ args: [{
2303
+ transform: booleanAttribute
2304
+ }]
2305
+ }],
2306
+ disabled: [{
2307
+ type: Input,
2308
+ args: [{
2309
+ transform: booleanAttribute
2310
+ }]
2311
+ }],
2312
+ disableRipple: [{
2313
+ type: Input,
2314
+ args: [{
2315
+ transform: booleanAttribute
2316
+ }]
2317
+ }],
2318
+ tabIndex: [{
2319
+ type: Input,
2320
+ args: [{
2321
+ transform: value => value == null ? 0 : numberAttribute(value)
2322
+ }]
2323
+ }],
2324
+ id: [{
2325
+ type: Input
2326
+ }]
2327
+ }
2328
+ });
2329
+ class MatTabNavPanel {
2330
+ id = inject(_IdGenerator).getId('mat-tab-nav-panel-');
2331
+ _activeTabId;
2332
+ static ɵfac = i0.ɵɵngDeclareFactory({
2333
+ minVersion: "12.0.0",
2334
+ version: "22.0.0-next.1",
2335
+ ngImport: i0,
2336
+ type: MatTabNavPanel,
2337
+ deps: [],
2338
+ target: i0.ɵɵFactoryTarget.Component
2339
+ });
2340
+ static ɵcmp = i0.ɵɵngDeclareComponent({
2341
+ minVersion: "14.0.0",
2342
+ version: "22.0.0-next.1",
2343
+ type: MatTabNavPanel,
2344
+ isStandalone: true,
2345
+ selector: "mat-tab-nav-panel",
2346
+ inputs: {
2347
+ id: "id"
2348
+ },
2349
+ host: {
2350
+ attributes: {
2351
+ "role": "tabpanel"
2352
+ },
2353
+ properties: {
2354
+ "attr.aria-labelledby": "_activeTabId",
2355
+ "attr.id": "id"
2356
+ },
2357
+ classAttribute: "mat-mdc-tab-nav-panel"
2358
+ },
2359
+ exportAs: ["matTabNavPanel"],
2360
+ ngImport: i0,
2361
+ template: '<ng-content></ng-content>',
2362
+ isInline: true,
2363
+ changeDetection: i0.ChangeDetectionStrategy.OnPush,
2364
+ encapsulation: i0.ViewEncapsulation.None
2365
+ });
2366
+ }
2367
+ i0.ɵɵngDeclareClassMetadata({
2368
+ minVersion: "12.0.0",
2369
+ version: "22.0.0-next.1",
2370
+ ngImport: i0,
2371
+ type: MatTabNavPanel,
2372
+ decorators: [{
2373
+ type: Component,
2374
+ args: [{
2375
+ selector: 'mat-tab-nav-panel',
2376
+ exportAs: 'matTabNavPanel',
2377
+ template: '<ng-content></ng-content>',
2378
+ host: {
2379
+ '[attr.aria-labelledby]': '_activeTabId',
2380
+ '[attr.id]': 'id',
2381
+ 'class': 'mat-mdc-tab-nav-panel',
2382
+ 'role': 'tabpanel'
2383
+ },
2384
+ encapsulation: ViewEncapsulation.None,
2385
+ changeDetection: ChangeDetectionStrategy.OnPush
2386
+ }]
2387
+ }],
2388
+ propDecorators: {
2389
+ id: [{
2390
+ type: Input
2391
+ }]
2392
+ }
2393
+ });
2394
+
2395
+ class MatTabsModule {
2396
+ static ɵfac = i0.ɵɵngDeclareFactory({
2397
+ minVersion: "12.0.0",
2398
+ version: "22.0.0-next.1",
2399
+ ngImport: i0,
2400
+ type: MatTabsModule,
2401
+ deps: [],
2402
+ target: i0.ɵɵFactoryTarget.NgModule
2403
+ });
2404
+ static ɵmod = i0.ɵɵngDeclareNgModule({
2405
+ minVersion: "14.0.0",
2406
+ version: "22.0.0-next.1",
2407
+ ngImport: i0,
2408
+ type: MatTabsModule,
2409
+ imports: [MatTabContent, MatTabLabel, MatTab, MatTabGroup, MatTabNav, MatTabNavPanel, MatTabLink],
2410
+ exports: [BidiModule, MatTabContent, MatTabLabel, MatTab, MatTabGroup, MatTabNav, MatTabNavPanel, MatTabLink]
2411
+ });
2412
+ static ɵinj = i0.ɵɵngDeclareInjector({
2413
+ minVersion: "12.0.0",
2414
+ version: "22.0.0-next.1",
2415
+ ngImport: i0,
2416
+ type: MatTabsModule,
2417
+ imports: [BidiModule]
2418
+ });
2419
+ }
2420
+ i0.ɵɵngDeclareClassMetadata({
2421
+ minVersion: "12.0.0",
2422
+ version: "22.0.0-next.1",
2423
+ ngImport: i0,
2424
+ type: MatTabsModule,
2425
+ decorators: [{
2426
+ type: NgModule,
2427
+ args: [{
2428
+ imports: [MatTabContent, MatTabLabel, MatTab, MatTabGroup, MatTabNav, MatTabNavPanel, MatTabLink],
2429
+ exports: [BidiModule, MatTabContent, MatTabLabel, MatTab, MatTabGroup, MatTabNav, MatTabNavPanel, MatTabLink]
2430
+ }]
2431
+ }]
2432
+ });
2433
+
2434
+ export { MAT_TAB, MAT_TABS_CONFIG, MAT_TAB_CONTENT, MAT_TAB_GROUP, MAT_TAB_LABEL, MatInkBar, MatPaginatedTabHeader, MatTab, MatTabBody, MatTabBodyPortal, MatTabChangeEvent, MatTabContent, MatTabGroup, MatTabHeader, MatTabLabel, MatTabLabelWrapper, MatTabLink, MatTabNav, MatTabNavPanel, MatTabsModule, _MAT_INK_BAR_POSITIONER };
2435
+ //# sourceMappingURL=tabs.mjs.map