@angular/material-experimental 13.2.0-next.0 → 13.2.0-next.1

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 (148) hide show
  1. package/LICENSE +1 -1
  2. package/esm2020/mdc-button/button.mjs +4 -4
  3. package/esm2020/mdc-button/fab.mjs +3 -3
  4. package/esm2020/mdc-checkbox/checkbox.mjs +2 -2
  5. package/esm2020/mdc-chips/chip-action.mjs +123 -0
  6. package/esm2020/mdc-chips/chip-edit-input.mjs +3 -3
  7. package/esm2020/mdc-chips/chip-grid.mjs +45 -93
  8. package/esm2020/mdc-chips/chip-icons.mjs +36 -98
  9. package/esm2020/mdc-chips/chip-input.mjs +3 -10
  10. package/esm2020/mdc-chips/chip-listbox.mjs +50 -155
  11. package/esm2020/mdc-chips/chip-option.mjs +82 -93
  12. package/esm2020/mdc-chips/chip-row.mjs +81 -89
  13. package/esm2020/mdc-chips/chip-set.mjs +118 -119
  14. package/esm2020/mdc-chips/chip.mjs +187 -179
  15. package/esm2020/mdc-chips/emit-event.mjs +27 -0
  16. package/esm2020/mdc-chips/module.mjs +5 -7
  17. package/esm2020/mdc-chips/testing/chip-harness.mjs +5 -1
  18. package/esm2020/mdc-chips/testing/chip-option-harness.mjs +2 -2
  19. package/esm2020/mdc-chips/testing/chip-row-harness.mjs +10 -1
  20. package/esm2020/mdc-core/public-api.mjs +2 -2
  21. package/esm2020/mdc-dialog/dialog-container.mjs +2 -2
  22. package/esm2020/mdc-list/action-list.mjs +2 -2
  23. package/esm2020/mdc-list/list-base.mjs +133 -36
  24. package/esm2020/mdc-list/list-item-sections.mjs +138 -0
  25. package/esm2020/mdc-list/list-option.mjs +22 -14
  26. package/esm2020/mdc-list/list.mjs +20 -14
  27. package/esm2020/mdc-list/module.mjs +43 -20
  28. package/esm2020/mdc-list/nav-list.mjs +2 -2
  29. package/esm2020/mdc-list/public-api.mjs +3 -2
  30. package/esm2020/mdc-list/selection-list.mjs +5 -5
  31. package/esm2020/mdc-list/subheader.mjs +27 -0
  32. package/esm2020/mdc-list/testing/list-harness-filters.mjs +1 -1
  33. package/esm2020/mdc-list/testing/list-item-harness-base.mjs +96 -12
  34. package/esm2020/mdc-list/testing/public-api.mjs +2 -1
  35. package/esm2020/mdc-select/select.mjs +2 -2
  36. package/esm2020/mdc-slide-toggle/slide-toggle.mjs +3 -3
  37. package/esm2020/mdc-slider/slider.mjs +26 -5
  38. package/esm2020/mdc-table/table.mjs +2 -2
  39. package/esm2020/mdc-tabs/module.mjs +6 -2
  40. package/esm2020/mdc-tabs/public-api.mjs +2 -2
  41. package/esm2020/mdc-tabs/tab-nav-bar/tab-nav-bar.mjs +42 -5
  42. package/esm2020/mdc-tabs/testing/tab-harness-filters.mjs +1 -1
  43. package/esm2020/mdc-tabs/testing/tab-nav-bar-harness.mjs +13 -1
  44. package/esm2020/mdc-tabs/testing/tab-nav-panel-harness.mjs +27 -0
  45. package/esm2020/version.mjs +1 -1
  46. package/fesm2015/material-experimental.mjs +1 -1
  47. package/fesm2015/material-experimental.mjs.map +1 -1
  48. package/fesm2015/mdc-button.mjs +6 -6
  49. package/fesm2015/mdc-button.mjs.map +1 -1
  50. package/fesm2015/mdc-checkbox.mjs +2 -2
  51. package/fesm2015/mdc-chips/testing.mjs +18 -8
  52. package/fesm2015/mdc-chips/testing.mjs.map +1 -1
  53. package/fesm2015/mdc-chips.mjs +732 -1040
  54. package/fesm2015/mdc-chips.mjs.map +1 -1
  55. package/fesm2015/mdc-core.mjs +1 -1
  56. package/fesm2015/mdc-core.mjs.map +1 -1
  57. package/fesm2015/mdc-dialog.mjs +2 -2
  58. package/fesm2015/mdc-list/testing.mjs +104 -12
  59. package/fesm2015/mdc-list/testing.mjs.map +1 -1
  60. package/fesm2015/mdc-list.mjs +328 -123
  61. package/fesm2015/mdc-list.mjs.map +1 -1
  62. package/fesm2015/mdc-select.mjs +2 -2
  63. package/fesm2015/mdc-slide-toggle.mjs +2 -2
  64. package/fesm2015/mdc-slide-toggle.mjs.map +1 -1
  65. package/fesm2015/mdc-slider.mjs +25 -4
  66. package/fesm2015/mdc-slider.mjs.map +1 -1
  67. package/fesm2015/mdc-table.mjs +2 -2
  68. package/fesm2015/mdc-tabs/testing.mjs +34 -0
  69. package/fesm2015/mdc-tabs/testing.mjs.map +1 -1
  70. package/fesm2015/mdc-tabs.mjs +46 -5
  71. package/fesm2015/mdc-tabs.mjs.map +1 -1
  72. package/fesm2020/material-experimental.mjs +1 -1
  73. package/fesm2020/material-experimental.mjs.map +1 -1
  74. package/fesm2020/mdc-button.mjs +6 -6
  75. package/fesm2020/mdc-button.mjs.map +1 -1
  76. package/fesm2020/mdc-checkbox.mjs +2 -2
  77. package/fesm2020/mdc-chips/testing.mjs +14 -1
  78. package/fesm2020/mdc-chips/testing.mjs.map +1 -1
  79. package/fesm2020/mdc-chips.mjs +712 -1045
  80. package/fesm2020/mdc-chips.mjs.map +1 -1
  81. package/fesm2020/mdc-core.mjs +1 -1
  82. package/fesm2020/mdc-core.mjs.map +1 -1
  83. package/fesm2020/mdc-dialog.mjs +2 -2
  84. package/fesm2020/mdc-list/testing.mjs +96 -12
  85. package/fesm2020/mdc-list/testing.mjs.map +1 -1
  86. package/fesm2020/mdc-list.mjs +326 -123
  87. package/fesm2020/mdc-list.mjs.map +1 -1
  88. package/fesm2020/mdc-select.mjs +2 -2
  89. package/fesm2020/mdc-slide-toggle.mjs +2 -2
  90. package/fesm2020/mdc-slide-toggle.mjs.map +1 -1
  91. package/fesm2020/mdc-slider.mjs +25 -4
  92. package/fesm2020/mdc-slider.mjs.map +1 -1
  93. package/fesm2020/mdc-table.mjs +2 -2
  94. package/fesm2020/mdc-tabs/testing.mjs +37 -0
  95. package/fesm2020/mdc-tabs/testing.mjs.map +1 -1
  96. package/fesm2020/mdc-tabs.mjs +46 -5
  97. package/fesm2020/mdc-tabs.mjs.map +1 -1
  98. package/mdc-button/fab.d.ts +1 -1
  99. package/mdc-checkbox/_checkbox-theme.scss +32 -30
  100. package/mdc-chips/_chips-theme.scss +53 -53
  101. package/mdc-chips/chip-action.d.ts +40 -0
  102. package/mdc-chips/chip-grid.d.ts +6 -22
  103. package/mdc-chips/chip-icons.d.ts +14 -37
  104. package/mdc-chips/chip-listbox.d.ts +4 -40
  105. package/mdc-chips/chip-option.d.ts +15 -11
  106. package/mdc-chips/chip-row.d.ts +13 -28
  107. package/mdc-chips/chip-set.d.ts +25 -42
  108. package/mdc-chips/chip.d.ts +37 -36
  109. package/mdc-chips/emit-event.d.ts +16 -0
  110. package/mdc-chips/module.d.ts +13 -12
  111. package/mdc-chips/testing/chip-harness.d.ts +1 -0
  112. package/mdc-chips/testing/chip-row-harness.d.ts +4 -0
  113. package/mdc-core/public-api.d.ts +1 -1
  114. package/mdc-helpers/_focus-indicators.scss +15 -3
  115. package/mdc-list/_interactive-list-theme.scss +17 -11
  116. package/mdc-list/_list-option-theme.scss +2 -2
  117. package/mdc-list/_list-theme.scss +7 -3
  118. package/mdc-list/list-base.d.ts +56 -11
  119. package/mdc-list/list-item-sections.d.ts +77 -0
  120. package/mdc-list/list-option.d.ts +11 -8
  121. package/mdc-list/list.d.ts +6 -2
  122. package/mdc-list/module.d.ts +7 -5
  123. package/mdc-list/public-api.d.ts +2 -1
  124. package/mdc-list/subheader.d.ts +9 -0
  125. package/mdc-list/testing/list-harness-filters.d.ts +8 -0
  126. package/mdc-list/testing/list-item-harness-base.d.ts +34 -3
  127. package/mdc-list/testing/public-api.d.ts +1 -1
  128. package/mdc-select/_select-theme.scss +6 -27
  129. package/mdc-slider/slider.d.ts +13 -1
  130. package/mdc-table/_table-theme.scss +1 -1
  131. package/mdc-tabs/module.d.ts +1 -1
  132. package/mdc-tabs/public-api.d.ts +1 -1
  133. package/mdc-tabs/tab-nav-bar/tab-nav-bar.d.ts +11 -0
  134. package/mdc-tabs/testing/tab-harness-filters.d.ts +3 -0
  135. package/mdc-tabs/testing/tab-nav-bar-harness.d.ts +3 -0
  136. package/mdc-tabs/testing/tab-nav-panel-harness.d.ts +23 -0
  137. package/mdc-theming/prebuilt/deeppurple-amber.css +1 -0
  138. package/mdc-theming/prebuilt/indigo-pink.css +1 -1
  139. package/mdc-theming/prebuilt/pink-bluegrey.css +1 -0
  140. package/mdc-theming/prebuilt/purple-green.css +1 -0
  141. package/mdc-tooltip/_tooltip-theme.scss +1 -1
  142. package/package.json +16 -2
  143. package/esm2020/mdc-chips/grid-focus-key-manager.mjs +0 -21
  144. package/esm2020/mdc-chips/grid-key-manager.mjs +0 -218
  145. package/esm2020/mdc-list/list-styling.mjs +0 -92
  146. package/mdc-chips/grid-focus-key-manager.d.ts +0 -28
  147. package/mdc-chips/grid-key-manager.d.ts +0 -116
  148. package/mdc-list/list-styling.d.ts +0 -40
@@ -1 +1 @@
1
- {"version":3,"file":"testing.mjs","sources":["../../../../../../../src/material-experimental/mdc-tabs/testing/tab-harness.ts","../../../../../../../src/material-experimental/mdc-tabs/testing/tab-group-harness.ts","../../../../../../../src/material-experimental/mdc-tabs/testing/tab-link-harness.ts","../../../../../../../src/material-experimental/mdc-tabs/testing/tab-nav-bar-harness.ts","../../../../../../../src/material-experimental/mdc-tabs/testing/public-api.ts","../../../../../../../src/material-experimental/mdc-tabs/testing/index.ts"],"sourcesContent":["/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {\n ContentContainerComponentHarness,\n HarnessLoader,\n HarnessPredicate,\n} from '@angular/cdk/testing';\nimport {TabHarnessFilters} from './tab-harness-filters';\n\n/** Harness for interacting with an MDC_based Angular Material tab in tests. */\nexport class MatTabHarness extends ContentContainerComponentHarness<string> {\n /** The selector for the host element of a `MatTab` instance. */\n static hostSelector = '.mat-mdc-tab';\n\n /**\n * Gets a `HarnessPredicate` that can be used to search for a `MatTabHarness` that meets\n * certain criteria.\n * @param options Options for filtering which tab instances are considered a match.\n * @return a `HarnessPredicate` configured with the given options.\n */\n static with(options: TabHarnessFilters = {}): HarnessPredicate<MatTabHarness> {\n return new HarnessPredicate(MatTabHarness, options).addOption(\n 'label',\n options.label,\n (harness, label) => HarnessPredicate.stringMatches(harness.getLabel(), label),\n );\n }\n\n /** Gets the label of the tab. */\n async getLabel(): Promise<string> {\n return (await this.host()).text();\n }\n\n /** Gets the aria-label of the tab. */\n async getAriaLabel(): Promise<string | null> {\n return (await this.host()).getAttribute('aria-label');\n }\n\n /** Gets the value of the \"aria-labelledby\" attribute. */\n async getAriaLabelledby(): Promise<string | null> {\n return (await this.host()).getAttribute('aria-labelledby');\n }\n\n /** Whether the tab is selected. */\n async isSelected(): Promise<boolean> {\n const hostEl = await this.host();\n return (await hostEl.getAttribute('aria-selected')) === 'true';\n }\n\n /** Whether the tab is disabled. */\n async isDisabled(): Promise<boolean> {\n const hostEl = await this.host();\n return (await hostEl.getAttribute('aria-disabled')) === 'true';\n }\n\n /** Selects the given tab by clicking on the label. Tab cannot be selected if disabled. */\n async select(): Promise<void> {\n await (await this.host()).click('center');\n }\n\n /** Gets the text content of the tab. */\n async getTextContent(): Promise<string> {\n const contentId = await this._getContentId();\n const contentEl = await this.documentRootLocatorFactory().locatorFor(`#${contentId}`)();\n return contentEl.text();\n }\n\n protected override async getRootHarnessLoader(): Promise<HarnessLoader> {\n const contentId = await this._getContentId();\n return this.documentRootLocatorFactory().harnessLoaderFor(`#${contentId}`);\n }\n\n /** Gets the element id for the content of the current tab. */\n private async _getContentId(): Promise<string> {\n const hostEl = await this.host();\n // Tabs never have an empty \"aria-controls\" attribute.\n return (await hostEl.getAttribute('aria-controls'))!;\n }\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {ComponentHarness, HarnessPredicate, parallel} from '@angular/cdk/testing';\nimport {TabGroupHarnessFilters, TabHarnessFilters} from './tab-harness-filters';\nimport {MatTabHarness} from './tab-harness';\n\n/** Harness for interacting with an MDC-based mat-tab-group in tests. */\nexport class MatTabGroupHarness extends ComponentHarness {\n /** The selector for the host element of a `MatTabGroup` instance. */\n static hostSelector = '.mat-mdc-tab-group';\n\n /**\n * Gets a `HarnessPredicate` that can be used to search for a `MatTabGroupHarness` that meets\n * certain criteria.\n * @param options Options for filtering which tab group instances are considered a match.\n * @return a `HarnessPredicate` configured with the given options.\n */\n static with(options: TabGroupHarnessFilters = {}): HarnessPredicate<MatTabGroupHarness> {\n return new HarnessPredicate(MatTabGroupHarness, options).addOption(\n 'selectedTabLabel',\n options.selectedTabLabel,\n async (harness, label) => {\n const selectedTab = await harness.getSelectedTab();\n return HarnessPredicate.stringMatches(await selectedTab.getLabel(), label);\n },\n );\n }\n\n /**\n * Gets the list of tabs in the tab group.\n * @param filter Optionally filters which tabs are included.\n */\n async getTabs(filter: TabHarnessFilters = {}): Promise<MatTabHarness[]> {\n return this.locatorForAll(MatTabHarness.with(filter))();\n }\n\n /** Gets the selected tab of the tab group. */\n async getSelectedTab(): Promise<MatTabHarness> {\n const tabs = await this.getTabs();\n const isSelected = await parallel(() => tabs.map(t => t.isSelected()));\n for (let i = 0; i < tabs.length; i++) {\n if (isSelected[i]) {\n return tabs[i];\n }\n }\n throw new Error('No selected tab could be found.');\n }\n\n /**\n * Selects a tab in this tab group.\n * @param filter An optional filter to apply to the child tabs. The first tab matching the filter\n * will be selected.\n */\n async selectTab(filter: TabHarnessFilters = {}): Promise<void> {\n const tabs = await this.getTabs(filter);\n if (!tabs.length) {\n throw Error(`Cannot find mat-tab matching filter ${JSON.stringify(filter)}`);\n }\n await tabs[0].select();\n }\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {ComponentHarness, HarnessPredicate} from '@angular/cdk/testing';\nimport {TabLinkHarnessFilters} from './tab-harness-filters';\n\n/** Harness for interacting with an MDC-based Angular Material tab link in tests. */\nexport class MatTabLinkHarness extends ComponentHarness {\n /** The selector for the host element of a `MatTabLink` instance. */\n static hostSelector = '.mat-mdc-tab-link';\n\n /**\n * Gets a `HarnessPredicate` that can be used to search for a `MatTabLinkHarness` that meets\n * certain criteria.\n * @param options Options for filtering which tab link instances are considered a match.\n * @return a `HarnessPredicate` configured with the given options.\n */\n static with(options: TabLinkHarnessFilters = {}): HarnessPredicate<MatTabLinkHarness> {\n return new HarnessPredicate(MatTabLinkHarness, options).addOption(\n 'label',\n options.label,\n (harness, label) => HarnessPredicate.stringMatches(harness.getLabel(), label),\n );\n }\n\n /** Gets the label of the link. */\n async getLabel(): Promise<string> {\n return (await this.host()).text();\n }\n\n /** Whether the link is active. */\n async isActive(): Promise<boolean> {\n const host = await this.host();\n return host.hasClass('mdc-tab--active');\n }\n\n /** Whether the link is disabled. */\n async isDisabled(): Promise<boolean> {\n const host = await this.host();\n return host.hasClass('mat-mdc-tab-disabled');\n }\n\n /** Clicks on the link. */\n async click(): Promise<void> {\n await (await this.host()).click();\n }\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {ComponentHarness, HarnessPredicate, parallel} from '@angular/cdk/testing';\nimport {TabNavBarHarnessFilters, TabLinkHarnessFilters} from './tab-harness-filters';\nimport {MatTabLinkHarness} from './tab-link-harness';\n\n/** Harness for interacting with an MDC-based mat-tab-nav-bar in tests. */\nexport class MatTabNavBarHarness extends ComponentHarness {\n /** The selector for the host element of a `MatTabNavBar` instance. */\n static hostSelector = '.mat-mdc-tab-nav-bar';\n\n /**\n * Gets a `HarnessPredicate` that can be used to search for a `MatTabNavBar` that meets\n * certain criteria.\n * @param options Options for filtering which tab nav bar instances are considered a match.\n * @return a `HarnessPredicate` configured with the given options.\n */\n static with(options: TabNavBarHarnessFilters = {}): HarnessPredicate<MatTabNavBarHarness> {\n return new HarnessPredicate(MatTabNavBarHarness, options);\n }\n\n /**\n * Gets the list of links in the nav bar.\n * @param filter Optionally filters which links are included.\n */\n async getLinks(filter: TabLinkHarnessFilters = {}): Promise<MatTabLinkHarness[]> {\n return this.locatorForAll(MatTabLinkHarness.with(filter))();\n }\n\n /** Gets the active link in the nav bar. */\n async getActiveLink(): Promise<MatTabLinkHarness> {\n const links = await this.getLinks();\n const isActive = await parallel(() => links.map(t => t.isActive()));\n for (let i = 0; i < links.length; i++) {\n if (isActive[i]) {\n return links[i];\n }\n }\n throw new Error('No active link could be found.');\n }\n\n /**\n * Clicks a link inside the nav bar.\n * @param filter An optional filter to apply to the child link. The first link matching the filter\n * will be clicked.\n */\n async clickLink(filter: TabLinkHarnessFilters = {}): Promise<void> {\n const tabs = await this.getLinks(filter);\n if (!tabs.length) {\n throw Error(`Cannot find mat-tab-link matching filter ${JSON.stringify(filter)}`);\n }\n await tabs[0].click();\n }\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nexport * from './tab-group-harness';\nexport * from './tab-harness';\nexport * from './tab-harness-filters';\nexport * from './tab-nav-bar-harness';\nexport * from './tab-link-harness';\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"testing.mjs","sources":["../../../../../../../src/material-experimental/mdc-tabs/testing/tab-harness.ts","../../../../../../../src/material-experimental/mdc-tabs/testing/tab-group-harness.ts","../../../../../../../src/material-experimental/mdc-tabs/testing/tab-link-harness.ts","../../../../../../../src/material-experimental/mdc-tabs/testing/tab-nav-panel-harness.ts","../../../../../../../src/material-experimental/mdc-tabs/testing/tab-nav-bar-harness.ts","../../../../../../../src/material-experimental/mdc-tabs/testing/public-api.ts","../../../../../../../src/material-experimental/mdc-tabs/testing/index.ts"],"sourcesContent":["/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {\n ContentContainerComponentHarness,\n HarnessLoader,\n HarnessPredicate,\n} from '@angular/cdk/testing';\nimport {TabHarnessFilters} from './tab-harness-filters';\n\n/** Harness for interacting with an MDC_based Angular Material tab in tests. */\nexport class MatTabHarness extends ContentContainerComponentHarness<string> {\n /** The selector for the host element of a `MatTab` instance. */\n static hostSelector = '.mat-mdc-tab';\n\n /**\n * Gets a `HarnessPredicate` that can be used to search for a `MatTabHarness` that meets\n * certain criteria.\n * @param options Options for filtering which tab instances are considered a match.\n * @return a `HarnessPredicate` configured with the given options.\n */\n static with(options: TabHarnessFilters = {}): HarnessPredicate<MatTabHarness> {\n return new HarnessPredicate(MatTabHarness, options).addOption(\n 'label',\n options.label,\n (harness, label) => HarnessPredicate.stringMatches(harness.getLabel(), label),\n );\n }\n\n /** Gets the label of the tab. */\n async getLabel(): Promise<string> {\n return (await this.host()).text();\n }\n\n /** Gets the aria-label of the tab. */\n async getAriaLabel(): Promise<string | null> {\n return (await this.host()).getAttribute('aria-label');\n }\n\n /** Gets the value of the \"aria-labelledby\" attribute. */\n async getAriaLabelledby(): Promise<string | null> {\n return (await this.host()).getAttribute('aria-labelledby');\n }\n\n /** Whether the tab is selected. */\n async isSelected(): Promise<boolean> {\n const hostEl = await this.host();\n return (await hostEl.getAttribute('aria-selected')) === 'true';\n }\n\n /** Whether the tab is disabled. */\n async isDisabled(): Promise<boolean> {\n const hostEl = await this.host();\n return (await hostEl.getAttribute('aria-disabled')) === 'true';\n }\n\n /** Selects the given tab by clicking on the label. Tab cannot be selected if disabled. */\n async select(): Promise<void> {\n await (await this.host()).click('center');\n }\n\n /** Gets the text content of the tab. */\n async getTextContent(): Promise<string> {\n const contentId = await this._getContentId();\n const contentEl = await this.documentRootLocatorFactory().locatorFor(`#${contentId}`)();\n return contentEl.text();\n }\n\n protected override async getRootHarnessLoader(): Promise<HarnessLoader> {\n const contentId = await this._getContentId();\n return this.documentRootLocatorFactory().harnessLoaderFor(`#${contentId}`);\n }\n\n /** Gets the element id for the content of the current tab. */\n private async _getContentId(): Promise<string> {\n const hostEl = await this.host();\n // Tabs never have an empty \"aria-controls\" attribute.\n return (await hostEl.getAttribute('aria-controls'))!;\n }\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {ComponentHarness, HarnessPredicate, parallel} from '@angular/cdk/testing';\nimport {TabGroupHarnessFilters, TabHarnessFilters} from './tab-harness-filters';\nimport {MatTabHarness} from './tab-harness';\n\n/** Harness for interacting with an MDC-based mat-tab-group in tests. */\nexport class MatTabGroupHarness extends ComponentHarness {\n /** The selector for the host element of a `MatTabGroup` instance. */\n static hostSelector = '.mat-mdc-tab-group';\n\n /**\n * Gets a `HarnessPredicate` that can be used to search for a `MatTabGroupHarness` that meets\n * certain criteria.\n * @param options Options for filtering which tab group instances are considered a match.\n * @return a `HarnessPredicate` configured with the given options.\n */\n static with(options: TabGroupHarnessFilters = {}): HarnessPredicate<MatTabGroupHarness> {\n return new HarnessPredicate(MatTabGroupHarness, options).addOption(\n 'selectedTabLabel',\n options.selectedTabLabel,\n async (harness, label) => {\n const selectedTab = await harness.getSelectedTab();\n return HarnessPredicate.stringMatches(await selectedTab.getLabel(), label);\n },\n );\n }\n\n /**\n * Gets the list of tabs in the tab group.\n * @param filter Optionally filters which tabs are included.\n */\n async getTabs(filter: TabHarnessFilters = {}): Promise<MatTabHarness[]> {\n return this.locatorForAll(MatTabHarness.with(filter))();\n }\n\n /** Gets the selected tab of the tab group. */\n async getSelectedTab(): Promise<MatTabHarness> {\n const tabs = await this.getTabs();\n const isSelected = await parallel(() => tabs.map(t => t.isSelected()));\n for (let i = 0; i < tabs.length; i++) {\n if (isSelected[i]) {\n return tabs[i];\n }\n }\n throw new Error('No selected tab could be found.');\n }\n\n /**\n * Selects a tab in this tab group.\n * @param filter An optional filter to apply to the child tabs. The first tab matching the filter\n * will be selected.\n */\n async selectTab(filter: TabHarnessFilters = {}): Promise<void> {\n const tabs = await this.getTabs(filter);\n if (!tabs.length) {\n throw Error(`Cannot find mat-tab matching filter ${JSON.stringify(filter)}`);\n }\n await tabs[0].select();\n }\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {ComponentHarness, HarnessPredicate} from '@angular/cdk/testing';\nimport {TabLinkHarnessFilters} from './tab-harness-filters';\n\n/** Harness for interacting with an MDC-based Angular Material tab link in tests. */\nexport class MatTabLinkHarness extends ComponentHarness {\n /** The selector for the host element of a `MatTabLink` instance. */\n static hostSelector = '.mat-mdc-tab-link';\n\n /**\n * Gets a `HarnessPredicate` that can be used to search for a `MatTabLinkHarness` that meets\n * certain criteria.\n * @param options Options for filtering which tab link instances are considered a match.\n * @return a `HarnessPredicate` configured with the given options.\n */\n static with(options: TabLinkHarnessFilters = {}): HarnessPredicate<MatTabLinkHarness> {\n return new HarnessPredicate(MatTabLinkHarness, options).addOption(\n 'label',\n options.label,\n (harness, label) => HarnessPredicate.stringMatches(harness.getLabel(), label),\n );\n }\n\n /** Gets the label of the link. */\n async getLabel(): Promise<string> {\n return (await this.host()).text();\n }\n\n /** Whether the link is active. */\n async isActive(): Promise<boolean> {\n const host = await this.host();\n return host.hasClass('mdc-tab--active');\n }\n\n /** Whether the link is disabled. */\n async isDisabled(): Promise<boolean> {\n const host = await this.host();\n return host.hasClass('mat-mdc-tab-disabled');\n }\n\n /** Clicks on the link. */\n async click(): Promise<void> {\n await (await this.host()).click();\n }\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {ContentContainerComponentHarness, HarnessPredicate} from '@angular/cdk/testing';\nimport {TabNavPanelHarnessFilters} from './tab-harness-filters';\n\n/** Harness for interacting with a standard mat-tab-nav-panel in tests. */\nexport class MatTabNavPanelHarness extends ContentContainerComponentHarness {\n /** The selector for the host element of a `MatTabNavPanel` instance. */\n static hostSelector = '.mat-mdc-tab-nav-panel';\n\n /**\n * Gets a `HarnessPredicate` that can be used to search for a `MatTabNavPanel` that meets\n * certain criteria.\n * @param options Options for filtering which tab nav panel instances are considered a match.\n * @return a `HarnessPredicate` configured with the given options.\n */\n static with(options: TabNavPanelHarnessFilters = {}): HarnessPredicate<MatTabNavPanelHarness> {\n return new HarnessPredicate(MatTabNavPanelHarness, options);\n }\n\n /** Gets the tab panel text content. */\n async getTextContent(): Promise<string> {\n return (await this.host()).text();\n }\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {ComponentHarness, HarnessPredicate, parallel} from '@angular/cdk/testing';\nimport {\n TabNavBarHarnessFilters,\n TabNavPanelHarnessFilters,\n TabLinkHarnessFilters,\n} from './tab-harness-filters';\nimport {MatTabLinkHarness} from './tab-link-harness';\nimport {MatTabNavPanelHarness} from './tab-nav-panel-harness';\n\n/** Harness for interacting with an MDC-based mat-tab-nav-bar in tests. */\nexport class MatTabNavBarHarness extends ComponentHarness {\n /** The selector for the host element of a `MatTabNavBar` instance. */\n static hostSelector = '.mat-mdc-tab-nav-bar';\n\n /**\n * Gets a `HarnessPredicate` that can be used to search for a `MatTabNavBar` that meets\n * certain criteria.\n * @param options Options for filtering which tab nav bar instances are considered a match.\n * @return a `HarnessPredicate` configured with the given options.\n */\n static with(options: TabNavBarHarnessFilters = {}): HarnessPredicate<MatTabNavBarHarness> {\n return new HarnessPredicate(MatTabNavBarHarness, options);\n }\n\n /**\n * Gets the list of links in the nav bar.\n * @param filter Optionally filters which links are included.\n */\n async getLinks(filter: TabLinkHarnessFilters = {}): Promise<MatTabLinkHarness[]> {\n return this.locatorForAll(MatTabLinkHarness.with(filter))();\n }\n\n /** Gets the active link in the nav bar. */\n async getActiveLink(): Promise<MatTabLinkHarness> {\n const links = await this.getLinks();\n const isActive = await parallel(() => links.map(t => t.isActive()));\n for (let i = 0; i < links.length; i++) {\n if (isActive[i]) {\n return links[i];\n }\n }\n throw new Error('No active link could be found.');\n }\n\n /**\n * Clicks a link inside the nav bar.\n * @param filter An optional filter to apply to the child link. The first link matching the filter\n * will be clicked.\n */\n async clickLink(filter: TabLinkHarnessFilters = {}): Promise<void> {\n const tabs = await this.getLinks(filter);\n if (!tabs.length) {\n throw Error(`Cannot find mat-tab-link matching filter ${JSON.stringify(filter)}`);\n }\n await tabs[0].click();\n }\n\n /** Gets the panel associated with the nav bar. */\n async getPanel(): Promise<MatTabNavPanelHarness> {\n const link = await this.getActiveLink();\n const host = await link.host();\n const panelId = await host.getAttribute('aria-controls');\n if (!panelId) {\n throw Error('No panel is controlled by the nav bar.');\n }\n\n const filter: TabNavPanelHarnessFilters = {selector: `#${panelId}`};\n return await this.documentRootLocatorFactory().locatorFor(MatTabNavPanelHarness.with(filter))();\n }\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nexport * from './tab-group-harness';\nexport * from './tab-harness';\nexport * from './tab-harness-filters';\nexport * from './tab-nav-bar-harness';\nexport * from './tab-link-harness';\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -516,10 +516,11 @@ class MatTabNav extends _MatTabNavBase {
516
516
  }
517
517
  }
518
518
  MatTabNav.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.0", ngImport: i0, type: MatTabNav, deps: [{ token: i0.ElementRef }, { token: i1.Directionality, optional: true }, { token: i0.NgZone }, { token: i0.ChangeDetectorRef }, { token: i1$1.ViewportRuler }, { token: i3.Platform }, { token: ANIMATION_MODULE_TYPE, optional: true }, { token: MAT_TABS_CONFIG, optional: true }], target: i0.ɵɵFactoryTarget.Component });
519
- MatTabNav.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.0", type: MatTabNav, selector: "[mat-tab-nav-bar]", inputs: { color: "color", fitInkBarToContent: "fitInkBarToContent" }, host: { properties: { "class.mat-mdc-tab-header-pagination-controls-enabled": "_showPaginationControls", "class.mat-mdc-tab-header-rtl": "_getLayoutDirection() == 'rtl'", "class.mat-primary": "color !== \"warn\" && color !== \"accent\"", "class.mat-accent": "color === \"accent\"", "class.mat-warn": "color === \"warn\"", "class._mat-animation-noopable": "_animationMode === \"NoopAnimations\"" }, classAttribute: "mat-mdc-tab-nav-bar mat-mdc-tab-header" }, queries: [{ propertyName: "_items", predicate: i0.forwardRef(function () { return MatTabLink; }), descendants: true }], viewQueries: [{ propertyName: "_tabListContainer", first: true, predicate: ["tabListContainer"], descendants: true, static: true }, { propertyName: "_tabList", first: true, predicate: ["tabList"], descendants: true, static: true }, { propertyName: "_tabListInner", first: true, predicate: ["tabListInner"], descendants: true, static: true }, { propertyName: "_nextPaginator", first: true, predicate: ["nextPaginator"], descendants: true }, { propertyName: "_previousPaginator", first: true, predicate: ["previousPaginator"], descendants: true }], exportAs: ["matTabNavBar", "matTabNav"], usesInheritance: true, ngImport: i0, template: "<!-- TODO: this also had `mat-elevation-z4`. Figure out what we should do with it. -->\n<div class=\"mat-mdc-tab-header-pagination mat-mdc-tab-header-pagination-before\"\n #previousPaginator\n aria-hidden=\"true\"\n mat-ripple [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<!-- TODO: this also had `mat-elevation-z4`. Figure out what we should do with it. -->\n<div class=\"mat-mdc-tab-header-pagination mat-mdc-tab-header-pagination-after\"\n #nextPaginator\n aria-hidden=\"true\"\n mat-ripple [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", styles: [".mdc-tab{position:relative}.mdc-tab.mdc-ripple-upgraded--background-focused.mdc-tab--active .mdc-tab__focus-ring,.mdc-tab:not(.mdc-ripple-upgraded):focus.mdc-tab--active .mdc-tab__focus-ring{pointer-events:none;border:2px solid transparent;border-radius:8px;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);height:calc(\n 100% + -12px\n );width:calc(\n 100% + -8px\n );margin-top:-2px;z-index:2}@media screen and (forced-colors: active){.mdc-tab.mdc-ripple-upgraded--background-focused.mdc-tab--active .mdc-tab__focus-ring,.mdc-tab:not(.mdc-ripple-upgraded):focus.mdc-tab--active .mdc-tab__focus-ring{border-color:CanvasText}}.mdc-tab.mdc-ripple-upgraded--background-focused.mdc-tab--active .mdc-tab__focus-ring::after,.mdc-tab:not(.mdc-ripple-upgraded):focus.mdc-tab--active .mdc-tab__focus-ring::after{content:\"\";border:2px solid transparent;border-radius:10px;display:block;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);height:calc(100% + 4px);width:calc(100% + 4px)}@media screen and (forced-colors: active){.mdc-tab.mdc-ripple-upgraded--background-focused.mdc-tab--active .mdc-tab__focus-ring::after,.mdc-tab:not(.mdc-ripple-upgraded):focus.mdc-tab--active .mdc-tab__focus-ring::after{border-color:CanvasText}}.mdc-tab.mdc-ripple-upgraded--background-focused .mdc-tab__focus-ring,.mdc-tab:not(.mdc-ripple-upgraded):focus .mdc-tab__focus-ring{pointer-events:none;border:2px solid transparent;border-radius:8px;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);height:calc(\n 100% + -8px\n );width:calc(\n 100% + -8px\n );z-index:2}@media screen and (forced-colors: active){.mdc-tab.mdc-ripple-upgraded--background-focused .mdc-tab__focus-ring,.mdc-tab:not(.mdc-ripple-upgraded):focus .mdc-tab__focus-ring{border-color:CanvasText}}.mdc-tab.mdc-ripple-upgraded--background-focused .mdc-tab__focus-ring::after,.mdc-tab:not(.mdc-ripple-upgraded):focus .mdc-tab__focus-ring::after{content:\"\";border:2px solid transparent;border-radius:10px;display:block;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);height:calc(100% + 4px);width:calc(100% + 4px)}@media screen and (forced-colors: active){.mdc-tab.mdc-ripple-upgraded--background-focused .mdc-tab__focus-ring::after,.mdc-tab:not(.mdc-ripple-upgraded):focus .mdc-tab__focus-ring::after{border-color:CanvasText}}.mdc-tab__content{position:relative}.mdc-tab__icon{width:24px;height:24px;font-size:24px}.mdc-tab{background:none}.mdc-tab{min-width:90px;padding-right:24px;padding-left:24px;display:flex;flex:1 0 auto;justify-content:center;box-sizing:border-box;margin:0;padding-top:0;padding-bottom:0;border:none;outline:none;text-align:center;white-space:nowrap;cursor:pointer;-webkit-appearance:none;z-index:1}.mdc-tab::-moz-focus-inner{padding:0;border:0}.mdc-tab--min-width{flex:0 1 auto}.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__icon{transition:150ms color linear;z-index:2}.mdc-tab--stacked .mdc-tab__content{flex-direction:column;align-items:center;justify-content:center}.mdc-tab--stacked .mdc-tab__text-label{padding-top:6px;padding-bottom:4px}.mdc-tab--active .mdc-tab__text-label,.mdc-tab--active .mdc-tab__icon{transition-delay:100ms}.mdc-tab:not(.mdc-tab--stacked) .mdc-tab__icon+.mdc-tab__text-label{padding-left:8px;padding-right:0}[dir=rtl] .mdc-tab:not(.mdc-tab--stacked) .mdc-tab__icon+.mdc-tab__text-label,.mdc-tab:not(.mdc-tab--stacked) .mdc-tab__icon+.mdc-tab__text-label[dir=rtl]{padding-left:0;padding-right:8px}.mdc-tab-indicator .mdc-tab-indicator__content--underline{border-top-width:2px}.mdc-tab-indicator .mdc-tab-indicator__content--icon{height:34px;font-size:34px}.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{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__content--icon{align-self:center;margin:0 auto}.mdc-tab-indicator--active .mdc-tab-indicator__content{opacity:1}.mdc-tab-indicator .mdc-tab-indicator__content{transition:250ms transform cubic-bezier(0.4, 0, 0.2, 1)}.mdc-tab-indicator--no-transition .mdc-tab-indicator__content{transition:none}.mdc-tab-indicator--fade .mdc-tab-indicator__content{transition:150ms opacity linear}.mdc-tab-indicator--active.mdc-tab-indicator--fade .mdc-tab-indicator__content{transition-delay:100ms}.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}.mat-mdc-tab-header-pagination{-webkit-user-select:none;-moz-user-select:none;user-select:none;position:relative;display:none;justify-content:center;align-items:center;min-width:32px;cursor:pointer;z-index:2;-webkit-tap-highlight-color:transparent;touch-action:none}.mat-mdc-tab-header-pagination .mat-ripple-element{opacity:.12}.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}.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-animation-noopable span.mdc-tab-indicator__content{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}.mat-mdc-tab-link-container{display:flex;flex-grow:1;overflow:hidden;z-index:1}\n"], directives: [{ type: i4.MatRipple, selector: "[mat-ripple], [matRipple]", inputs: ["matRippleColor", "matRippleUnbounded", "matRippleCentered", "matRippleRadius", "matRippleAnimation", "matRippleDisabled", "matRippleTrigger"], exportAs: ["matRipple"] }, { type: i5.CdkObserveContent, selector: "[cdkObserveContent]", inputs: ["cdkObserveContentDisabled", "debounce"], outputs: ["cdkObserveContent"], exportAs: ["cdkObserveContent"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
519
+ MatTabNav.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.0", type: MatTabNav, selector: "[mat-tab-nav-bar]", inputs: { color: "color", fitInkBarToContent: "fitInkBarToContent" }, host: { properties: { "attr.role": "_getRole()", "class.mat-mdc-tab-header-pagination-controls-enabled": "_showPaginationControls", "class.mat-mdc-tab-header-rtl": "_getLayoutDirection() == 'rtl'", "class.mat-primary": "color !== \"warn\" && color !== \"accent\"", "class.mat-accent": "color === \"accent\"", "class.mat-warn": "color === \"warn\"", "class._mat-animation-noopable": "_animationMode === \"NoopAnimations\"" }, classAttribute: "mat-mdc-tab-nav-bar mat-mdc-tab-header" }, queries: [{ propertyName: "_items", predicate: i0.forwardRef(function () { return MatTabLink; }), descendants: true }], viewQueries: [{ propertyName: "_tabListContainer", first: true, predicate: ["tabListContainer"], descendants: true, static: true }, { propertyName: "_tabList", first: true, predicate: ["tabList"], descendants: true, static: true }, { propertyName: "_tabListInner", first: true, predicate: ["tabListInner"], descendants: true, static: true }, { propertyName: "_nextPaginator", first: true, predicate: ["nextPaginator"], descendants: true }, { propertyName: "_previousPaginator", first: true, predicate: ["previousPaginator"], descendants: true }], exportAs: ["matTabNavBar", "matTabNav"], usesInheritance: true, ngImport: i0, template: "<!-- TODO: this also had `mat-elevation-z4`. Figure out what we should do with it. -->\n<div class=\"mat-mdc-tab-header-pagination mat-mdc-tab-header-pagination-before\"\n #previousPaginator\n aria-hidden=\"true\"\n mat-ripple [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<!-- TODO: this also had `mat-elevation-z4`. Figure out what we should do with it. -->\n<div class=\"mat-mdc-tab-header-pagination mat-mdc-tab-header-pagination-after\"\n #nextPaginator\n aria-hidden=\"true\"\n mat-ripple [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", styles: [".mdc-tab{position:relative}.mdc-tab.mdc-ripple-upgraded--background-focused.mdc-tab--active .mdc-tab__focus-ring,.mdc-tab:not(.mdc-ripple-upgraded):focus.mdc-tab--active .mdc-tab__focus-ring{pointer-events:none;border:2px solid transparent;border-radius:8px;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);height:calc(\n 100% + -12px\n );width:calc(\n 100% + -8px\n );margin-top:-2px;z-index:2}@media screen and (forced-colors: active){.mdc-tab.mdc-ripple-upgraded--background-focused.mdc-tab--active .mdc-tab__focus-ring,.mdc-tab:not(.mdc-ripple-upgraded):focus.mdc-tab--active .mdc-tab__focus-ring{border-color:CanvasText}}.mdc-tab.mdc-ripple-upgraded--background-focused.mdc-tab--active .mdc-tab__focus-ring::after,.mdc-tab:not(.mdc-ripple-upgraded):focus.mdc-tab--active .mdc-tab__focus-ring::after{content:\"\";border:2px solid transparent;border-radius:10px;display:block;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);height:calc(100% + 4px);width:calc(100% + 4px)}@media screen and (forced-colors: active){.mdc-tab.mdc-ripple-upgraded--background-focused.mdc-tab--active .mdc-tab__focus-ring::after,.mdc-tab:not(.mdc-ripple-upgraded):focus.mdc-tab--active .mdc-tab__focus-ring::after{border-color:CanvasText}}.mdc-tab.mdc-ripple-upgraded--background-focused .mdc-tab__focus-ring,.mdc-tab:not(.mdc-ripple-upgraded):focus .mdc-tab__focus-ring{pointer-events:none;border:2px solid transparent;border-radius:8px;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);height:calc(\n 100% + -8px\n );width:calc(\n 100% + -8px\n );z-index:2}@media screen and (forced-colors: active){.mdc-tab.mdc-ripple-upgraded--background-focused .mdc-tab__focus-ring,.mdc-tab:not(.mdc-ripple-upgraded):focus .mdc-tab__focus-ring{border-color:CanvasText}}.mdc-tab.mdc-ripple-upgraded--background-focused .mdc-tab__focus-ring::after,.mdc-tab:not(.mdc-ripple-upgraded):focus .mdc-tab__focus-ring::after{content:\"\";border:2px solid transparent;border-radius:10px;display:block;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);height:calc(100% + 4px);width:calc(100% + 4px)}@media screen and (forced-colors: active){.mdc-tab.mdc-ripple-upgraded--background-focused .mdc-tab__focus-ring::after,.mdc-tab:not(.mdc-ripple-upgraded):focus .mdc-tab__focus-ring::after{border-color:CanvasText}}.mdc-tab__content{position:relative}.mdc-tab__icon{width:24px;height:24px;font-size:24px}.mdc-tab{background:none}.mdc-tab{min-width:90px;padding-right:24px;padding-left:24px;display:flex;flex:1 0 auto;justify-content:center;box-sizing:border-box;margin:0;padding-top:0;padding-bottom:0;border:none;outline:none;text-align:center;white-space:nowrap;cursor:pointer;-webkit-appearance:none;z-index:1}.mdc-tab::-moz-focus-inner{padding:0;border:0}.mdc-tab--min-width{flex:0 1 auto}.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__icon{transition:150ms color linear;z-index:2}.mdc-tab--stacked .mdc-tab__content{flex-direction:column;align-items:center;justify-content:center}.mdc-tab--stacked .mdc-tab__text-label{padding-top:6px;padding-bottom:4px}.mdc-tab--active .mdc-tab__text-label,.mdc-tab--active .mdc-tab__icon{transition-delay:100ms}.mdc-tab:not(.mdc-tab--stacked) .mdc-tab__icon+.mdc-tab__text-label{padding-left:8px;padding-right:0}[dir=rtl] .mdc-tab:not(.mdc-tab--stacked) .mdc-tab__icon+.mdc-tab__text-label,.mdc-tab:not(.mdc-tab--stacked) .mdc-tab__icon+.mdc-tab__text-label[dir=rtl]{padding-left:0;padding-right:8px}.mdc-tab-indicator .mdc-tab-indicator__content--underline{border-top-width:2px}.mdc-tab-indicator .mdc-tab-indicator__content--icon{height:34px;font-size:34px}.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{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__content--icon{align-self:center;margin:0 auto}.mdc-tab-indicator--active .mdc-tab-indicator__content{opacity:1}.mdc-tab-indicator .mdc-tab-indicator__content{transition:250ms transform cubic-bezier(0.4, 0, 0.2, 1)}.mdc-tab-indicator--no-transition .mdc-tab-indicator__content{transition:none}.mdc-tab-indicator--fade .mdc-tab-indicator__content{transition:150ms opacity linear}.mdc-tab-indicator--active.mdc-tab-indicator--fade .mdc-tab-indicator__content{transition-delay:100ms}.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}.mat-mdc-tab-header-pagination{-webkit-user-select:none;-moz-user-select:none;user-select:none;position:relative;display:none;justify-content:center;align-items:center;min-width:32px;cursor:pointer;z-index:2;-webkit-tap-highlight-color:transparent;touch-action:none}.mat-mdc-tab-header-pagination .mat-ripple-element{opacity:.12}.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}.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-animation-noopable span.mdc-tab-indicator__content{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}.mat-mdc-tab-link-container{display:flex;flex-grow:1;overflow:hidden;z-index:1}\n"], directives: [{ type: i4.MatRipple, selector: "[mat-ripple], [matRipple]", inputs: ["matRippleColor", "matRippleUnbounded", "matRippleCentered", "matRippleRadius", "matRippleAnimation", "matRippleDisabled", "matRippleTrigger"], exportAs: ["matRipple"] }, { type: i5.CdkObserveContent, selector: "[cdkObserveContent]", inputs: ["cdkObserveContentDisabled", "debounce"], outputs: ["cdkObserveContent"], exportAs: ["cdkObserveContent"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
520
520
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.0", ngImport: i0, type: MatTabNav, decorators: [{
521
521
  type: Component,
522
522
  args: [{ selector: '[mat-tab-nav-bar]', exportAs: 'matTabNavBar, matTabNav', inputs: ['color'], host: {
523
+ '[attr.role]': '_getRole()',
523
524
  'class': 'mat-mdc-tab-nav-bar mat-mdc-tab-header',
524
525
  '[class.mat-mdc-tab-header-pagination-controls-enabled]': '_showPaginationControls',
525
526
  '[class.mat-mdc-tab-header-rtl]': "_getLayoutDirection() == 'rtl'",
@@ -587,17 +588,22 @@ class MatTabLink extends _MatTabLinkBase {
587
588
  }
588
589
  }
589
590
  MatTabLink.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.0", ngImport: i0, type: MatTabLink, deps: [{ token: MatTabNav }, { token: i0.ElementRef }, { token: MAT_RIPPLE_GLOBAL_OPTIONS, optional: true }, { token: 'tabindex', attribute: true }, { token: i6.FocusMonitor }, { token: DOCUMENT }, { token: ANIMATION_MODULE_TYPE, optional: true }], target: i0.ɵɵFactoryTarget.Component });
590
- MatTabLink.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.0", type: MatTabLink, selector: "[mat-tab-link], [matTabLink]", inputs: { disabled: "disabled", disableRipple: "disableRipple", tabIndex: "tabIndex" }, host: { listeners: { "focus": "_handleFocus()" }, properties: { "attr.aria-current": "active ? \"page\" : null", "attr.aria-disabled": "disabled", "attr.tabIndex": "tabIndex", "class.mat-mdc-tab-disabled": "disabled", "class.mdc-tab--active": "active" }, classAttribute: "mdc-tab mat-mdc-tab-link mat-mdc-focus-indicator" }, exportAs: ["matTabLink"], usesInheritance: true, ngImport: i0, 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", styles: [".mat-mdc-tab-link.mdc-tab{height:48px;flex-grow:0}.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}.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}.cdk-high-contrast-active .mat-mdc-tab-link.cdk-program-focused,.cdk-high-contrast-active .mat-mdc-tab-link.cdk-keyboard-focused{outline:dotted 2px;outline-offset:-2px}.cdk-high-contrast-active :host .mat-mdc-tab-link.cdk-program-focused,.cdk-high-contrast-active :host .mat-mdc-tab-link.cdk-keyboard-focused{outline:dotted 2px;outline-offset:-2px}.mat-mdc-tab-link .mat-ripple-element{opacity:.12}.mat-mdc-tab-link.mat-mdc-tab-disabled{pointer-events:none;opacity:.4}.mat-mdc-tab-header[mat-stretch-tabs] .mat-mdc-tab-link{flex-grow:1}@media(max-width: 599px){.mat-mdc-tab-link{min-width:72px}}\n"], directives: [{ type: i4.MatRipple, selector: "[mat-ripple], [matRipple]", inputs: ["matRippleColor", "matRippleUnbounded", "matRippleCentered", "matRippleRadius", "matRippleAnimation", "matRippleDisabled", "matRippleTrigger"], exportAs: ["matRipple"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
591
+ MatTabLink.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.0", type: MatTabLink, selector: "[mat-tab-link], [matTabLink]", inputs: { disabled: "disabled", disableRipple: "disableRipple", tabIndex: "tabIndex" }, host: { listeners: { "focus": "_handleFocus()", "keydown": "_handleKeydown($event)" }, properties: { "attr.aria-controls": "_getAriaControls()", "attr.aria-current": "_getAriaCurrent()", "attr.aria-disabled": "disabled", "attr.aria-selected": "_getAriaSelected()", "attr.id": "id", "attr.tabIndex": "_getTabIndex()", "attr.role": "_getRole()", "class.mat-mdc-tab-disabled": "disabled", "class.mdc-tab--active": "active" }, classAttribute: "mdc-tab mat-mdc-tab-link mat-mdc-focus-indicator" }, exportAs: ["matTabLink"], usesInheritance: true, ngImport: i0, 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", styles: [".mat-mdc-tab-link.mdc-tab{height:48px;flex-grow:0}.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}.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}.cdk-high-contrast-active .mat-mdc-tab-link.cdk-program-focused,.cdk-high-contrast-active .mat-mdc-tab-link.cdk-keyboard-focused{outline:dotted 2px;outline-offset:-2px}.cdk-high-contrast-active :host .mat-mdc-tab-link.cdk-program-focused,.cdk-high-contrast-active :host .mat-mdc-tab-link.cdk-keyboard-focused{outline:dotted 2px;outline-offset:-2px}.mat-mdc-tab-link .mat-ripple-element{opacity:.12}.mat-mdc-tab-link.mat-mdc-tab-disabled{pointer-events:none;opacity:.4}.mat-mdc-tab-header[mat-stretch-tabs] .mat-mdc-tab-link{flex-grow:1}@media(max-width: 599px){.mat-mdc-tab-link{min-width:72px}}\n"], directives: [{ type: i4.MatRipple, selector: "[mat-ripple], [matRipple]", inputs: ["matRippleColor", "matRippleUnbounded", "matRippleCentered", "matRippleRadius", "matRippleAnimation", "matRippleDisabled", "matRippleTrigger"], exportAs: ["matRipple"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
591
592
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.0", ngImport: i0, type: MatTabLink, decorators: [{
592
593
  type: Component,
593
594
  args: [{ selector: '[mat-tab-link], [matTabLink]', exportAs: 'matTabLink', inputs: ['disabled', 'disableRipple', 'tabIndex'], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: {
594
595
  'class': 'mdc-tab mat-mdc-tab-link mat-mdc-focus-indicator',
595
- '[attr.aria-current]': 'active ? "page" : null',
596
+ '[attr.aria-controls]': '_getAriaControls()',
597
+ '[attr.aria-current]': '_getAriaCurrent()',
596
598
  '[attr.aria-disabled]': 'disabled',
597
- '[attr.tabIndex]': 'tabIndex',
599
+ '[attr.aria-selected]': '_getAriaSelected()',
600
+ '[attr.id]': 'id',
601
+ '[attr.tabIndex]': '_getTabIndex()',
602
+ '[attr.role]': '_getRole()',
598
603
  '[class.mat-mdc-tab-disabled]': 'disabled',
599
604
  '[class.mdc-tab--active]': 'active',
600
605
  '(focus)': '_handleFocus()',
606
+ '(keydown)': '_handleKeydown($event)',
601
607
  }, 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", styles: [".mat-mdc-tab-link.mdc-tab{height:48px;flex-grow:0}.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}.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}.cdk-high-contrast-active .mat-mdc-tab-link.cdk-program-focused,.cdk-high-contrast-active .mat-mdc-tab-link.cdk-keyboard-focused{outline:dotted 2px;outline-offset:-2px}.cdk-high-contrast-active :host .mat-mdc-tab-link.cdk-program-focused,.cdk-high-contrast-active :host .mat-mdc-tab-link.cdk-keyboard-focused{outline:dotted 2px;outline-offset:-2px}.mat-mdc-tab-link .mat-ripple-element{opacity:.12}.mat-mdc-tab-link.mat-mdc-tab-disabled{pointer-events:none;opacity:.4}.mat-mdc-tab-header[mat-stretch-tabs] .mat-mdc-tab-link{flex-grow:1}@media(max-width: 599px){.mat-mdc-tab-link{min-width:72px}}\n"] }]
602
608
  }], ctorParameters: function () {
603
609
  return [{ type: MatTabNav }, { type: i0.ElementRef }, { type: undefined, decorators: [{
@@ -618,6 +624,37 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.0", ngImpor
618
624
  args: [ANIMATION_MODULE_TYPE]
619
625
  }] }];
620
626
  } });
627
+ // Increasing integer for generating unique ids for tab nav components.
628
+ let nextUniqueId = 0;
629
+ /**
630
+ * Tab panel component associated with MatTabNav.
631
+ */
632
+ class MatTabNavPanel {
633
+ constructor() {
634
+ /** Unique id for the tab panel. */
635
+ this.id = `mat-tab-nav-panel-${nextUniqueId++}`;
636
+ }
637
+ }
638
+ MatTabNavPanel.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.0", ngImport: i0, type: MatTabNavPanel, deps: [], target: i0.ɵɵFactoryTarget.Component });
639
+ MatTabNavPanel.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.0", type: MatTabNavPanel, selector: "mat-tab-nav-panel", inputs: { id: "id" }, host: { attributes: { "role": "tabpanel" }, properties: { "attr.aria-labelledby": "_activeTabId", "attr.id": "id" }, classAttribute: "mat-mdc-tab-nav-panel" }, exportAs: ["matTabNavPanel"], ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
640
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.0", ngImport: i0, type: MatTabNavPanel, decorators: [{
641
+ type: Component,
642
+ args: [{
643
+ selector: 'mat-tab-nav-panel',
644
+ exportAs: 'matTabNavPanel',
645
+ template: '<ng-content></ng-content>',
646
+ host: {
647
+ '[attr.aria-labelledby]': '_activeTabId',
648
+ '[attr.id]': 'id',
649
+ 'class': 'mat-mdc-tab-nav-panel',
650
+ 'role': 'tabpanel',
651
+ },
652
+ encapsulation: ViewEncapsulation.None,
653
+ changeDetection: ChangeDetectionStrategy.OnPush,
654
+ }]
655
+ }], propDecorators: { id: [{
656
+ type: Input
657
+ }] } });
621
658
 
622
659
  /**
623
660
  * @license
@@ -634,6 +671,7 @@ MatTabsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version:
634
671
  MatTab,
635
672
  MatTabGroup,
636
673
  MatTabNav,
674
+ MatTabNavPanel,
637
675
  MatTabLink,
638
676
  // Private directives, should not be exported.
639
677
  MatTabBody,
@@ -650,6 +688,7 @@ MatTabsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version:
650
688
  MatTab,
651
689
  MatTabGroup,
652
690
  MatTabNav,
691
+ MatTabNavPanel,
653
692
  MatTabLink] });
654
693
  MatTabsModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.1.0", ngImport: i0, type: MatTabsModule, imports: [[
655
694
  CommonModule,
@@ -677,6 +716,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.0", ngImpor
677
716
  MatTab,
678
717
  MatTabGroup,
679
718
  MatTabNav,
719
+ MatTabNavPanel,
680
720
  MatTabLink,
681
721
  ],
682
722
  declarations: [
@@ -685,6 +725,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.0", ngImpor
685
725
  MatTab,
686
726
  MatTabGroup,
687
727
  MatTabNav,
728
+ MatTabNavPanel,
688
729
  MatTabLink,
689
730
  // Private directives, should not be exported.
690
731
  MatTabBody,
@@ -715,5 +756,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.0", ngImpor
715
756
  * Generated bundle index. Do not edit.
716
757
  */
717
758
 
718
- export { MatInkBar, MatTab, MatTabBody, MatTabBodyPortal, MatTabContent, MatTabGroup, MatTabHeader, MatTabLabel, MatTabLabelWrapper, MatTabLink, MatTabNav, MatTabsModule };
759
+ export { MatInkBar, MatTab, MatTabBody, MatTabBodyPortal, MatTabContent, MatTabGroup, MatTabHeader, MatTabLabel, MatTabLabelWrapper, MatTabLink, MatTabNav, MatTabNavPanel, MatTabsModule };
719
760
  //# sourceMappingURL=mdc-tabs.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"mdc-tabs.mjs","sources":["../../../../../../src/material-experimental/mdc-tabs/tab-body.ts","../../../../../../src/material-experimental/mdc-tabs/tab-body.html","../../../../../../src/material-experimental/mdc-tabs/tab-content.ts","../../../../../../src/material-experimental/mdc-tabs/tab-label.ts","../../../../../../src/material-experimental/mdc-tabs/ink-bar.ts","../../../../../../src/material-experimental/mdc-tabs/tab-label-wrapper.ts","../../../../../../src/material-experimental/mdc-tabs/tab.ts","../../../../../../src/material-experimental/mdc-tabs/tab.html","../../../../../../src/material-experimental/mdc-tabs/tab-header.ts","../../../../../../src/material-experimental/mdc-tabs/tab-header.html","../../../../../../src/material-experimental/mdc-tabs/tab-group.ts","../../../../../../src/material-experimental/mdc-tabs/tab-group.html","../../../../../../src/material-experimental/mdc-tabs/tab-nav-bar/tab-nav-bar.ts","../../../../../../src/material-experimental/mdc-tabs/tab-nav-bar/tab-nav-bar.html","../../../../../../src/material-experimental/mdc-tabs/tab-nav-bar/tab-link.html","../../../../../../src/material-experimental/mdc-tabs/module.ts","../../../../../../src/material-experimental/mdc-tabs/public-api.ts","../../../../../../src/material-experimental/mdc-tabs/index.ts","../../../../../../src/material-experimental/mdc-tabs/mdc-tabs_public_index.ts"],"sourcesContent":["/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {\n Component,\n Directive,\n ViewEncapsulation,\n ChangeDetectionStrategy,\n ViewChild,\n ComponentFactoryResolver,\n ViewContainerRef,\n Inject,\n forwardRef,\n ChangeDetectorRef,\n Optional,\n ElementRef,\n} from '@angular/core';\nimport {\n MatTabBodyPortal as BaseMatTabBodyPortal,\n matTabsAnimations,\n _MatTabBodyBase,\n} from '@angular/material/tabs';\nimport {CdkPortalOutlet} from '@angular/cdk/portal';\nimport {Directionality} from '@angular/cdk/bidi';\nimport {DOCUMENT} from '@angular/common';\n\n/**\n * The portal host directive for the contents of the tab.\n * @docs-private\n */\n@Directive({\n selector: '[matTabBodyHost]',\n})\nexport class MatTabBodyPortal extends BaseMatTabBodyPortal {\n constructor(\n componentFactoryResolver: ComponentFactoryResolver,\n viewContainerRef: ViewContainerRef,\n @Inject(forwardRef(() => MatTabBody)) host: MatTabBody,\n @Inject(DOCUMENT) _document: any,\n ) {\n super(componentFactoryResolver, viewContainerRef, host, _document);\n }\n}\n\n/**\n * Wrapper for the contents of a tab.\n * @docs-private\n */\n@Component({\n selector: 'mat-tab-body',\n templateUrl: 'tab-body.html',\n styleUrls: ['tab-body.css'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n animations: [matTabsAnimations.translateTab],\n host: {\n 'class': 'mat-mdc-tab-body',\n },\n})\nexport class MatTabBody extends _MatTabBodyBase {\n @ViewChild(CdkPortalOutlet) _portalHost: CdkPortalOutlet;\n\n constructor(\n elementRef: ElementRef<HTMLElement>,\n @Optional() dir: Directionality,\n changeDetectorRef: ChangeDetectorRef,\n ) {\n super(elementRef, dir, changeDetectorRef);\n }\n}\n","<div class=\"mat-mdc-tab-body-content\" #content\n [@translateTab]=\"{\n value: _position,\n params: {animationDuration: animationDuration}\n }\"\n (@translateTab.start)=\"_onTranslateTabStarted($event)\"\n (@translateTab.done)=\"_translateTabComplete.next($event)\"\n cdkScrollable>\n <ng-template matTabBodyHost></ng-template>\n</div>\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {Directive} from '@angular/core';\nimport {MatTabContent as BaseMatTabContent} from '@angular/material/tabs';\n\n/** Decorates the `ng-template` tags and reads out the template from it. */\n@Directive({selector: '[matTabContent]'})\nexport class MatTabContent extends BaseMatTabContent {}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {Directive} from '@angular/core';\nimport {MatTabLabel as BaseMatTabLabel} from '@angular/material/tabs';\n\n/** Used to flag tab labels for use with the portal directive */\n@Directive({\n selector: '[mat-tab-label], [matTabLabel]',\n})\nexport class MatTabLabel extends BaseMatTabLabel {}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {ElementRef, QueryList} from '@angular/core';\nimport {\n MDCSlidingTabIndicatorFoundation,\n MDCTabIndicatorAdapter,\n MDCTabIndicatorFoundation,\n} from '@material/tab-indicator';\n\n/**\n * Item inside a tab header relative to which the ink bar can be aligned.\n * @docs-private\n */\nexport interface MatInkBarItem {\n _foundation: MatInkBarFoundation;\n elementRef: ElementRef<HTMLElement>;\n}\n\n/**\n * Abstraction around the MDC tab indicator that acts as the tab header's ink bar.\n * @docs-private\n */\nexport class MatInkBar {\n /** Item to which the ink bar is aligned currently. */\n private _currentItem: MatInkBarItem | undefined;\n\n constructor(private _items: QueryList<MatInkBarItem>) {}\n\n /** Hides the ink bar. */\n hide() {\n this._items.forEach(item => item._foundation.deactivate());\n }\n\n /** Aligns the ink bar to a DOM node. */\n alignToElement(element: HTMLElement) {\n const correspondingItem = this._items.find(item => item.elementRef.nativeElement === element);\n const currentItem = this._currentItem;\n\n if (currentItem) {\n currentItem._foundation.deactivate();\n }\n\n if (correspondingItem) {\n const clientRect = currentItem\n ? currentItem._foundation.computeContentClientRect()\n : undefined;\n\n // The ink bar won't animate unless we give it the `ClientRect` of the previous item.\n correspondingItem._foundation.activate(clientRect);\n this._currentItem = correspondingItem;\n }\n }\n}\n\n/**\n * Implementation of MDC's sliding tab indicator (ink bar) foundation.\n * @docs-private\n */\nexport class MatInkBarFoundation {\n private _destroyed: boolean;\n private _foundation: MDCTabIndicatorFoundation;\n private _inkBarElement: HTMLElement;\n private _inkBarContentElement: HTMLElement;\n private _fitToContent = false;\n private _adapter: MDCTabIndicatorAdapter = {\n addClass: className => {\n if (!this._destroyed) {\n this._hostElement.classList.add(className);\n }\n },\n removeClass: className => {\n if (!this._destroyed) {\n this._hostElement.classList.remove(className);\n }\n },\n setContentStyleProperty: (propName, value) => {\n this._inkBarContentElement.style.setProperty(propName, value);\n },\n computeContentClientRect: () => {\n // `getBoundingClientRect` isn't available on the server.\n return this._destroyed || !this._inkBarContentElement.getBoundingClientRect\n ? ({\n width: 0,\n height: 0,\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n x: 0,\n y: 0,\n } as ClientRect)\n : this._inkBarContentElement.getBoundingClientRect();\n },\n };\n\n constructor(private _hostElement: HTMLElement, private _document: Document) {\n this._foundation = new MDCSlidingTabIndicatorFoundation(this._adapter);\n }\n\n /** Aligns the ink bar to the current item. */\n activate(clientRect?: ClientRect) {\n this._foundation.activate(clientRect);\n }\n\n /** Removes the ink bar from the current item. */\n deactivate() {\n this._foundation.deactivate();\n }\n\n /** Gets the ClientRect of the ink bar. */\n computeContentClientRect() {\n return this._foundation.computeContentClientRect();\n }\n\n /** Initializes the foundation. */\n init() {\n this._createInkBarElement();\n this._foundation.init();\n }\n\n /** Destroys the foundation. */\n destroy() {\n this._inkBarElement.remove();\n this._hostElement = this._inkBarElement = this._inkBarContentElement = null!;\n this._foundation.destroy();\n this._destroyed = true;\n }\n\n /**\n * Sets whether the ink bar should be appended to the content, which will cause the ink bar\n * to match the width of the content rather than the tab host element.\n */\n setFitToContent(fitToContent: boolean) {\n if (this._fitToContent !== fitToContent) {\n this._fitToContent = fitToContent;\n if (this._inkBarElement) {\n this._appendInkBarElement();\n }\n }\n }\n\n /**\n * Gets whether the ink bar should be appended to the content, which will cause the ink bar\n * to match the width of the content rather than the tab host element.\n */\n getFitToContent(): boolean {\n return this._fitToContent;\n }\n\n /** Creates and appends the ink bar element. */\n private _createInkBarElement() {\n this._inkBarElement = this._document.createElement('span');\n this._inkBarContentElement = this._document.createElement('span');\n\n this._inkBarElement.className = 'mdc-tab-indicator';\n this._inkBarContentElement.className =\n 'mdc-tab-indicator__content' + ' mdc-tab-indicator__content--underline';\n\n this._inkBarElement.appendChild(this._inkBarContentElement);\n this._appendInkBarElement();\n }\n\n /**\n * Appends the ink bar to the tab host element or content, depending on whether\n * the ink bar should fit to content.\n */\n private _appendInkBarElement() {\n if (!this._inkBarElement && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throw Error('Ink bar element has not been created and cannot be appended');\n }\n\n const parentElement = this._fitToContent\n ? this._hostElement.querySelector('.mdc-tab__content')\n : this._hostElement;\n\n if (!parentElement && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throw Error('Missing element to host the ink bar');\n }\n\n parentElement!.appendChild(this._inkBarElement);\n }\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {Directive, ElementRef, Inject, Input, OnDestroy, OnInit} from '@angular/core';\nimport {DOCUMENT} from '@angular/common';\nimport {MatTabLabelWrapper as BaseMatTabLabelWrapper} from '@angular/material/tabs';\nimport {MatInkBarFoundation, MatInkBarItem} from './ink-bar';\nimport {BooleanInput, coerceBooleanProperty} from '@angular/cdk/coercion';\n\n/**\n * Used in the `mat-tab-group` view to display tab labels.\n * @docs-private\n */\n@Directive({\n selector: '[matTabLabelWrapper]',\n inputs: ['disabled'],\n host: {\n '[class.mat-mdc-tab-disabled]': 'disabled',\n '[attr.aria-disabled]': '!!disabled',\n },\n})\nexport class MatTabLabelWrapper\n extends BaseMatTabLabelWrapper\n implements MatInkBarItem, OnInit, OnDestroy\n{\n private _document: Document;\n\n _foundation: MatInkBarFoundation;\n\n /** Whether the ink bar should fit its width to the size of the tab label content. */\n @Input()\n get fitInkBarToContent(): boolean {\n return this._foundation.getFitToContent();\n }\n set fitInkBarToContent(v: BooleanInput) {\n this._foundation.setFitToContent(coerceBooleanProperty(v));\n }\n\n constructor(elementRef: ElementRef, @Inject(DOCUMENT) _document: any) {\n super(elementRef);\n this._document = _document;\n this._foundation = new MatInkBarFoundation(elementRef.nativeElement, this._document);\n }\n\n ngOnInit() {\n this._foundation.init();\n }\n\n ngOnDestroy() {\n this._foundation.destroy();\n }\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n TemplateRef,\n ContentChild,\n} from '@angular/core';\nimport {MatTab as BaseMatTab, MAT_TAB} from '@angular/material/tabs';\nimport {MatTabContent} from './tab-content';\nimport {MatTabLabel} from './tab-label';\n\n@Component({\n selector: 'mat-tab',\n\n // Note that usually we'd go through a bit more trouble and set up another class so that\n // the inlined template of `MatTab` isn't duplicated, however the template is small enough\n // that creating the extra class will generate more code than just duplicating the template.\n templateUrl: 'tab.html',\n inputs: ['disabled'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n exportAs: 'matTab',\n providers: [{provide: MAT_TAB, useExisting: MatTab}],\n})\nexport class MatTab extends BaseMatTab {\n /**\n * Template provided in the tab content that will be used if present, used to enable lazy-loading\n */\n @ContentChild(MatTabContent, {read: TemplateRef, static: true})\n override _explicitContent: TemplateRef<any>;\n\n /** Content for the tab label given by `<ng-template mat-tab-label>`. */\n @ContentChild(MatTabLabel)\n override get templateLabel(): MatTabLabel {\n return this._templateLabel;\n }\n override set templateLabel(value: MatTabLabel) {\n this._setTemplateLabelInput(value);\n }\n}\n","<!-- 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","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n ContentChildren,\n ViewChild,\n ElementRef,\n QueryList,\n AfterContentInit,\n Optional,\n ChangeDetectorRef,\n NgZone,\n Inject,\n} from '@angular/core';\nimport {_MatTabHeaderBase} from '@angular/material/tabs';\nimport {ViewportRuler} from '@angular/cdk/scrolling';\nimport {Platform} from '@angular/cdk/platform';\nimport {Directionality} from '@angular/cdk/bidi';\nimport {ANIMATION_MODULE_TYPE} from '@angular/platform-browser/animations';\nimport {MatTabLabelWrapper} from './tab-label-wrapper';\nimport {MatInkBar} from './ink-bar';\n\n/**\n * The header of the tab group which displays a list of all the tabs in the tab group. Includes\n * an ink bar that follows the currently selected tab. When the tabs list's width exceeds the\n * width of the header container, then arrows will be displayed to allow the user to scroll\n * left and right across the header.\n * @docs-private\n */\n@Component({\n selector: 'mat-tab-header',\n templateUrl: 'tab-header.html',\n styleUrls: ['tab-header.css'],\n inputs: ['selectedIndex'],\n outputs: ['selectFocusedIndex', 'indexFocused'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n 'class': 'mat-mdc-tab-header',\n '[class.mat-mdc-tab-header-pagination-controls-enabled]': '_showPaginationControls',\n '[class.mat-mdc-tab-header-rtl]': \"_getLayoutDirection() == 'rtl'\",\n },\n})\nexport class MatTabHeader extends _MatTabHeaderBase implements AfterContentInit {\n @ContentChildren(MatTabLabelWrapper, {descendants: false}) _items: QueryList<MatTabLabelWrapper>;\n @ViewChild('tabListContainer', {static: true}) _tabListContainer: ElementRef;\n @ViewChild('tabList', {static: true}) _tabList: ElementRef;\n @ViewChild('tabListInner', {static: true}) _tabListInner: ElementRef;\n @ViewChild('nextPaginator') _nextPaginator: ElementRef<HTMLElement>;\n @ViewChild('previousPaginator') _previousPaginator: ElementRef<HTMLElement>;\n _inkBar: MatInkBar;\n\n constructor(\n elementRef: ElementRef,\n changeDetectorRef: ChangeDetectorRef,\n viewportRuler: ViewportRuler,\n @Optional() dir: Directionality,\n ngZone: NgZone,\n platform: Platform,\n @Optional() @Inject(ANIMATION_MODULE_TYPE) animationMode?: string,\n ) {\n super(elementRef, changeDetectorRef, viewportRuler, dir, ngZone, platform, animationMode);\n }\n\n override ngAfterContentInit() {\n this._inkBar = new MatInkBar(this._items);\n super.ngAfterContentInit();\n }\n}\n","<!-- TODO: this also had `mat-elevation-z4`. Figure out what we should do with it. -->\n<div class=\"mat-mdc-tab-header-pagination mat-mdc-tab-header-pagination-before\"\n #previousPaginator\n aria-hidden=\"true\"\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]=\"_animationMode === 'NoopAnimations'\">\n <div\n #tabList\n class=\"mat-mdc-tab-list\"\n role=\"tablist\"\n (cdkObserveContent)=\"_onContentChanges()\">\n <div class=\"mat-mdc-tab-labels\" #tabListInner>\n <ng-content></ng-content>\n </div>\n </div>\n</div>\n\n<!-- TODO: this also had `mat-elevation-z4`. Figure out what we should do with it. -->\n<div class=\"mat-mdc-tab-header-pagination mat-mdc-tab-header-pagination-after\"\n #nextPaginator\n aria-hidden=\"true\"\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","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChildren,\n ElementRef,\n Inject,\n Input,\n Optional,\n QueryList,\n ViewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport {\n _MatTabGroupBase,\n MAT_TAB_GROUP,\n MAT_TABS_CONFIG,\n MatTabsConfig,\n} from '@angular/material/tabs';\nimport {ANIMATION_MODULE_TYPE} from '@angular/platform-browser/animations';\nimport {MatTab} from './tab';\nimport {MatTabHeader} from './tab-header';\nimport {BooleanInput, coerceBooleanProperty} from '@angular/cdk/coercion';\n\n/**\n * Material design tab-group component. Supports basic tab pairs (label + content) and includes\n * animated ink-bar, keyboard navigation, and screen reader.\n * See: https://material.io/design/components/tabs.html\n */\n@Component({\n selector: 'mat-tab-group',\n exportAs: 'matTabGroup',\n templateUrl: 'tab-group.html',\n styleUrls: ['tab-group.css'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n inputs: ['color', 'disableRipple'],\n providers: [\n {\n provide: MAT_TAB_GROUP,\n useExisting: MatTabGroup,\n },\n ],\n host: {\n 'class': 'mat-mdc-tab-group',\n '[class.mat-mdc-tab-group-dynamic-height]': 'dynamicHeight',\n '[class.mat-mdc-tab-group-inverted-header]': 'headerPosition === \"below\"',\n },\n})\nexport class MatTabGroup extends _MatTabGroupBase {\n @ContentChildren(MatTab, {descendants: true}) _allTabs: QueryList<MatTab>;\n @ViewChild('tabBodyWrapper') _tabBodyWrapper: ElementRef;\n @ViewChild('tabHeader') _tabHeader: MatTabHeader;\n\n /** Whether the ink bar should fit its width to the size of the tab label content. */\n @Input()\n get fitInkBarToContent(): boolean {\n return this._fitInkBarToContent;\n }\n set fitInkBarToContent(v: BooleanInput) {\n this._fitInkBarToContent = coerceBooleanProperty(v);\n this._changeDetectorRef.markForCheck();\n }\n private _fitInkBarToContent = false;\n\n constructor(\n elementRef: ElementRef,\n changeDetectorRef: ChangeDetectorRef,\n @Inject(MAT_TABS_CONFIG) @Optional() defaultConfig?: MatTabsConfig,\n @Optional() @Inject(ANIMATION_MODULE_TYPE) animationMode?: string,\n ) {\n super(elementRef, changeDetectorRef, defaultConfig, animationMode);\n this.fitInkBarToContent =\n defaultConfig && defaultConfig.fitInkBarToContent != null\n ? defaultConfig.fitInkBarToContent\n : false;\n }\n}\n","<mat-tab-header #tabHeader\n [selectedIndex]=\"selectedIndex || 0\"\n [disableRipple]=\"disableRipple\"\n (indexFocused)=\"_focusChanged($event)\"\n (selectFocusedIndex)=\"selectedIndex = $event\">\n\n <div class=\"mdc-tab mat-mdc-tab mat-mdc-focus-indicator\"\n #tabNode\n role=\"tab\"\n matTabLabelWrapper\n cdkMonitorElementFocus\n *ngFor=\"let tab of _tabs; let i = index\"\n [id]=\"_getTabLabelId(i)\"\n [attr.tabIndex]=\"_getTabIndex(tab, i)\"\n [attr.aria-posinset]=\"i + 1\"\n [attr.aria-setsize]=\"_tabs.length\"\n [attr.aria-controls]=\"_getTabContentId(i)\"\n [attr.aria-selected]=\"selectedIndex == i\"\n [attr.aria-label]=\"tab.ariaLabel || null\"\n [attr.aria-labelledby]=\"(!tab.ariaLabel && tab.ariaLabelledby) ? tab.ariaLabelledby : null\"\n [class.mdc-tab--active]=\"selectedIndex == i\"\n [disabled]=\"tab.disabled\"\n [fitInkBarToContent]=\"fitInkBarToContent\"\n (click)=\"_handleClick(tab, tabHeader, i)\"\n (cdkFocusChange)=\"_tabFocusChanged($event, i)\">\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 <!-- If there is a label template, use it. -->\n <ng-template [ngIf]=\"tab.templateLabel\">\n <ng-template [cdkPortalOutlet]=\"tab.templateLabel\"></ng-template>\n </ng-template>\n\n <!-- If there is not a label template, fall back to the text label. -->\n <ng-template [ngIf]=\"!tab.templateLabel\">{{tab.textLabel}}</ng-template>\n </span>\n </span>\n </div>\n</mat-tab-header>\n\n<div\n class=\"mat-mdc-tab-body-wrapper\"\n [class._mat-animation-noopable]=\"_animationMode === 'NoopAnimations'\"\n #tabBodyWrapper>\n <mat-tab-body role=\"tabpanel\"\n *ngFor=\"let tab of _tabs; let i = index\"\n [id]=\"_getTabContentId(i)\"\n [attr.tabindex]=\"(contentTabIndex != null && selectedIndex === i) ? contentTabIndex : null\"\n [attr.aria-labelledby]=\"_getTabLabelId(i)\"\n [class.mat-mdc-tab-body-active]=\"selectedIndex === i\"\n [content]=\"tab.content!\"\n [position]=\"tab.position!\"\n [origin]=\"tab.origin\"\n [animationDuration]=\"animationDuration\"\n (_onCentered)=\"_removeTabBodyWrapperHeight()\"\n (_onCentering)=\"_setTabBodyWrapperHeight($event)\">\n </mat-tab-body>\n</div>\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport {\n ChangeDetectionStrategy,\n Component,\n ContentChildren,\n ElementRef,\n forwardRef,\n QueryList,\n ViewChild,\n ViewEncapsulation,\n Optional,\n Inject,\n Attribute,\n OnDestroy,\n AfterContentInit,\n NgZone,\n ChangeDetectorRef,\n OnInit,\n Input,\n} from '@angular/core';\nimport {ANIMATION_MODULE_TYPE} from '@angular/platform-browser/animations';\nimport {\n MAT_RIPPLE_GLOBAL_OPTIONS,\n RippleGlobalOptions,\n} from '@angular/material-experimental/mdc-core';\nimport {FocusMonitor} from '@angular/cdk/a11y';\nimport {\n _MatTabNavBase,\n _MatTabLinkBase,\n MAT_TABS_CONFIG,\n MatTabsConfig,\n} from '@angular/material/tabs';\nimport {DOCUMENT} from '@angular/common';\nimport {Directionality} from '@angular/cdk/bidi';\nimport {ViewportRuler} from '@angular/cdk/scrolling';\nimport {Platform} from '@angular/cdk/platform';\nimport {MatInkBar, MatInkBarItem, MatInkBarFoundation} from '../ink-bar';\nimport {BooleanInput, coerceBooleanProperty} from '@angular/cdk/coercion';\nimport {BehaviorSubject, Subject} from 'rxjs';\nimport {takeUntil} from 'rxjs/operators';\n\n/**\n * Navigation component matching the styles of the tab group header.\n * Provides anchored navigation with animated ink bar.\n */\n@Component({\n selector: '[mat-tab-nav-bar]',\n exportAs: 'matTabNavBar, matTabNav',\n inputs: ['color'],\n templateUrl: 'tab-nav-bar.html',\n styleUrls: ['tab-nav-bar.css'],\n host: {\n 'class': 'mat-mdc-tab-nav-bar mat-mdc-tab-header',\n '[class.mat-mdc-tab-header-pagination-controls-enabled]': '_showPaginationControls',\n '[class.mat-mdc-tab-header-rtl]': \"_getLayoutDirection() == 'rtl'\",\n '[class.mat-primary]': 'color !== \"warn\" && color !== \"accent\"',\n '[class.mat-accent]': 'color === \"accent\"',\n '[class.mat-warn]': 'color === \"warn\"',\n '[class._mat-animation-noopable]': '_animationMode === \"NoopAnimations\"',\n },\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class MatTabNav extends _MatTabNavBase implements AfterContentInit {\n /** Whether the ink bar should fit its width to the size of the tab label content. */\n @Input()\n get fitInkBarToContent(): boolean {\n return this._fitInkBarToContent.value;\n }\n set fitInkBarToContent(v: BooleanInput) {\n this._fitInkBarToContent.next(coerceBooleanProperty(v));\n this._changeDetectorRef.markForCheck();\n }\n _fitInkBarToContent = new BehaviorSubject(false);\n\n @ContentChildren(forwardRef(() => MatTabLink), {descendants: true}) _items: QueryList<MatTabLink>;\n @ViewChild('tabListContainer', {static: true}) _tabListContainer: ElementRef;\n @ViewChild('tabList', {static: true}) _tabList: ElementRef;\n @ViewChild('tabListInner', {static: true}) _tabListInner: ElementRef;\n @ViewChild('nextPaginator') _nextPaginator: ElementRef<HTMLElement>;\n @ViewChild('previousPaginator') _previousPaginator: ElementRef<HTMLElement>;\n _inkBar: MatInkBar;\n\n constructor(\n elementRef: ElementRef,\n @Optional() dir: Directionality,\n ngZone: NgZone,\n changeDetectorRef: ChangeDetectorRef,\n viewportRuler: ViewportRuler,\n platform: Platform,\n @Optional() @Inject(ANIMATION_MODULE_TYPE) animationMode?: string,\n @Optional() @Inject(MAT_TABS_CONFIG) defaultConfig?: MatTabsConfig,\n ) {\n super(elementRef, dir, ngZone, changeDetectorRef, viewportRuler, platform, animationMode);\n this.disablePagination =\n defaultConfig && defaultConfig.disablePagination != null\n ? defaultConfig.disablePagination\n : false;\n this.fitInkBarToContent =\n defaultConfig && defaultConfig.fitInkBarToContent != null\n ? defaultConfig.fitInkBarToContent\n : false;\n }\n\n override ngAfterContentInit() {\n this._inkBar = new MatInkBar(this._items);\n super.ngAfterContentInit();\n }\n}\n\n/**\n * Link inside of a `mat-tab-nav-bar`.\n */\n@Component({\n selector: '[mat-tab-link], [matTabLink]',\n exportAs: 'matTabLink',\n inputs: ['disabled', 'disableRipple', 'tabIndex'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n templateUrl: 'tab-link.html',\n styleUrls: ['tab-link.css'],\n host: {\n 'class': 'mdc-tab mat-mdc-tab-link mat-mdc-focus-indicator',\n '[attr.aria-current]': 'active ? \"page\" : null',\n '[attr.aria-disabled]': 'disabled',\n '[attr.tabIndex]': 'tabIndex',\n '[class.mat-mdc-tab-disabled]': 'disabled',\n '[class.mdc-tab--active]': 'active',\n '(focus)': '_handleFocus()',\n },\n})\nexport class MatTabLink extends _MatTabLinkBase implements MatInkBarItem, OnInit, OnDestroy {\n _foundation = new MatInkBarFoundation(this.elementRef.nativeElement, this._document);\n\n private readonly _destroyed = new Subject<void>();\n\n constructor(\n tabNavBar: MatTabNav,\n elementRef: ElementRef,\n @Optional() @Inject(MAT_RIPPLE_GLOBAL_OPTIONS) globalRippleOptions: RippleGlobalOptions | null,\n @Attribute('tabindex') tabIndex: string,\n focusMonitor: FocusMonitor,\n @Inject(DOCUMENT) private _document: any,\n @Optional() @Inject(ANIMATION_MODULE_TYPE) animationMode?: string,\n ) {\n super(tabNavBar, elementRef, globalRippleOptions, tabIndex, focusMonitor, animationMode);\n\n tabNavBar._fitInkBarToContent.pipe(takeUntil(this._destroyed)).subscribe(fitInkBarToContent => {\n this._foundation.setFitToContent(fitInkBarToContent);\n });\n }\n\n ngOnInit() {\n this._foundation.init();\n }\n\n override ngOnDestroy() {\n this._destroyed.next();\n this._destroyed.complete();\n super.ngOnDestroy();\n this._foundation.destroy();\n }\n}\n","<!-- TODO: this also had `mat-elevation-z4`. Figure out what we should do with it. -->\n<div class=\"mat-mdc-tab-header-pagination mat-mdc-tab-header-pagination-before\"\n #previousPaginator\n aria-hidden=\"true\"\n mat-ripple [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<!-- TODO: this also had `mat-elevation-z4`. Figure out what we should do with it. -->\n<div class=\"mat-mdc-tab-header-pagination mat-mdc-tab-header-pagination-after\"\n #nextPaginator\n aria-hidden=\"true\"\n mat-ripple [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","<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","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {MatCommonModule, MatRippleModule} from '@angular/material-experimental/mdc-core';\nimport {PortalModule} from '@angular/cdk/portal';\nimport {ObserversModule} from '@angular/cdk/observers';\nimport {A11yModule} from '@angular/cdk/a11y';\nimport {MatTabBody, MatTabBodyPortal} from './tab-body';\nimport {MatTabContent} from './tab-content';\nimport {MatTabLabel} from './tab-label';\nimport {MatTabLabelWrapper} from './tab-label-wrapper';\nimport {MatTab} from './tab';\nimport {MatTabHeader} from './tab-header';\nimport {MatTabGroup} from './tab-group';\nimport {MatTabNav, MatTabLink} from './tab-nav-bar/tab-nav-bar';\n\n@NgModule({\n imports: [\n CommonModule,\n MatCommonModule,\n PortalModule,\n MatRippleModule,\n ObserversModule,\n A11yModule,\n ],\n exports: [\n MatCommonModule,\n MatTabContent,\n MatTabLabel,\n MatTab,\n MatTabGroup,\n MatTabNav,\n MatTabLink,\n ],\n declarations: [\n MatTabContent,\n MatTabLabel,\n MatTab,\n MatTabGroup,\n MatTabNav,\n MatTabLink,\n\n // Private directives, should not be exported.\n MatTabBody,\n MatTabBodyPortal,\n MatTabLabelWrapper,\n MatTabHeader,\n ],\n})\nexport class MatTabsModule {}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nexport * from './module';\nexport {MatTabBodyPortal, MatTabBody} from './tab-body';\nexport {MatTabContent} from './tab-content';\nexport {MatTabLabel} from './tab-label';\nexport {MatTabLabelWrapper} from './tab-label-wrapper';\nexport {MatTab} from './tab';\nexport {MatInkBar} from './ink-bar';\nexport {MatTabHeader} from './tab-header';\nexport {MatTabGroup} from './tab-group';\nexport {MatTabNav, MatTabLink} from './tab-nav-bar/tab-nav-bar';\n\nexport {\n MatTabBodyPositionState,\n MatTabBodyOriginState,\n matTabsAnimations,\n _MatInkBarPositioner,\n _MAT_INK_BAR_POSITIONER,\n MatTabChangeEvent,\n MatTabHeaderPosition,\n MatTabsConfig,\n MAT_TABS_CONFIG,\n MAT_TAB_GROUP,\n MAT_TAB,\n ScrollDirection,\n} from '@angular/material/tabs';\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nexport * from './public-api';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["BaseMatTabBodyPortal","BaseMatTabContent","BaseMatTabLabel","BaseMatTabLabelWrapper","BaseMatTab"],"mappings":"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"}
1
+ {"version":3,"file":"mdc-tabs.mjs","sources":["../../../../../../src/material-experimental/mdc-tabs/tab-body.ts","../../../../../../src/material-experimental/mdc-tabs/tab-body.html","../../../../../../src/material-experimental/mdc-tabs/tab-content.ts","../../../../../../src/material-experimental/mdc-tabs/tab-label.ts","../../../../../../src/material-experimental/mdc-tabs/ink-bar.ts","../../../../../../src/material-experimental/mdc-tabs/tab-label-wrapper.ts","../../../../../../src/material-experimental/mdc-tabs/tab.ts","../../../../../../src/material-experimental/mdc-tabs/tab.html","../../../../../../src/material-experimental/mdc-tabs/tab-header.ts","../../../../../../src/material-experimental/mdc-tabs/tab-header.html","../../../../../../src/material-experimental/mdc-tabs/tab-group.ts","../../../../../../src/material-experimental/mdc-tabs/tab-group.html","../../../../../../src/material-experimental/mdc-tabs/tab-nav-bar/tab-nav-bar.ts","../../../../../../src/material-experimental/mdc-tabs/tab-nav-bar/tab-nav-bar.html","../../../../../../src/material-experimental/mdc-tabs/tab-nav-bar/tab-link.html","../../../../../../src/material-experimental/mdc-tabs/module.ts","../../../../../../src/material-experimental/mdc-tabs/public-api.ts","../../../../../../src/material-experimental/mdc-tabs/index.ts","../../../../../../src/material-experimental/mdc-tabs/mdc-tabs_public_index.ts"],"sourcesContent":["/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {\n Component,\n Directive,\n ViewEncapsulation,\n ChangeDetectionStrategy,\n ViewChild,\n ComponentFactoryResolver,\n ViewContainerRef,\n Inject,\n forwardRef,\n ChangeDetectorRef,\n Optional,\n ElementRef,\n} from '@angular/core';\nimport {\n MatTabBodyPortal as BaseMatTabBodyPortal,\n matTabsAnimations,\n _MatTabBodyBase,\n} from '@angular/material/tabs';\nimport {CdkPortalOutlet} from '@angular/cdk/portal';\nimport {Directionality} from '@angular/cdk/bidi';\nimport {DOCUMENT} from '@angular/common';\n\n/**\n * The portal host directive for the contents of the tab.\n * @docs-private\n */\n@Directive({\n selector: '[matTabBodyHost]',\n})\nexport class MatTabBodyPortal extends BaseMatTabBodyPortal {\n constructor(\n componentFactoryResolver: ComponentFactoryResolver,\n viewContainerRef: ViewContainerRef,\n @Inject(forwardRef(() => MatTabBody)) host: MatTabBody,\n @Inject(DOCUMENT) _document: any,\n ) {\n super(componentFactoryResolver, viewContainerRef, host, _document);\n }\n}\n\n/**\n * Wrapper for the contents of a tab.\n * @docs-private\n */\n@Component({\n selector: 'mat-tab-body',\n templateUrl: 'tab-body.html',\n styleUrls: ['tab-body.css'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n animations: [matTabsAnimations.translateTab],\n host: {\n 'class': 'mat-mdc-tab-body',\n },\n})\nexport class MatTabBody extends _MatTabBodyBase {\n @ViewChild(CdkPortalOutlet) _portalHost: CdkPortalOutlet;\n\n constructor(\n elementRef: ElementRef<HTMLElement>,\n @Optional() dir: Directionality,\n changeDetectorRef: ChangeDetectorRef,\n ) {\n super(elementRef, dir, changeDetectorRef);\n }\n}\n","<div class=\"mat-mdc-tab-body-content\" #content\n [@translateTab]=\"{\n value: _position,\n params: {animationDuration: animationDuration}\n }\"\n (@translateTab.start)=\"_onTranslateTabStarted($event)\"\n (@translateTab.done)=\"_translateTabComplete.next($event)\"\n cdkScrollable>\n <ng-template matTabBodyHost></ng-template>\n</div>\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {Directive} from '@angular/core';\nimport {MatTabContent as BaseMatTabContent} from '@angular/material/tabs';\n\n/** Decorates the `ng-template` tags and reads out the template from it. */\n@Directive({selector: '[matTabContent]'})\nexport class MatTabContent extends BaseMatTabContent {}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {Directive} from '@angular/core';\nimport {MatTabLabel as BaseMatTabLabel} from '@angular/material/tabs';\n\n/** Used to flag tab labels for use with the portal directive */\n@Directive({\n selector: '[mat-tab-label], [matTabLabel]',\n})\nexport class MatTabLabel extends BaseMatTabLabel {}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {ElementRef, QueryList} from '@angular/core';\nimport {\n MDCSlidingTabIndicatorFoundation,\n MDCTabIndicatorAdapter,\n MDCTabIndicatorFoundation,\n} from '@material/tab-indicator';\n\n/**\n * Item inside a tab header relative to which the ink bar can be aligned.\n * @docs-private\n */\nexport interface MatInkBarItem {\n _foundation: MatInkBarFoundation;\n elementRef: ElementRef<HTMLElement>;\n}\n\n/**\n * Abstraction around the MDC tab indicator that acts as the tab header's ink bar.\n * @docs-private\n */\nexport class MatInkBar {\n /** Item to which the ink bar is aligned currently. */\n private _currentItem: MatInkBarItem | undefined;\n\n constructor(private _items: QueryList<MatInkBarItem>) {}\n\n /** Hides the ink bar. */\n hide() {\n this._items.forEach(item => item._foundation.deactivate());\n }\n\n /** Aligns the ink bar to a DOM node. */\n alignToElement(element: HTMLElement) {\n const correspondingItem = this._items.find(item => item.elementRef.nativeElement === element);\n const currentItem = this._currentItem;\n\n if (currentItem) {\n currentItem._foundation.deactivate();\n }\n\n if (correspondingItem) {\n const clientRect = currentItem\n ? currentItem._foundation.computeContentClientRect()\n : undefined;\n\n // The ink bar won't animate unless we give it the `ClientRect` of the previous item.\n correspondingItem._foundation.activate(clientRect);\n this._currentItem = correspondingItem;\n }\n }\n}\n\n/**\n * Implementation of MDC's sliding tab indicator (ink bar) foundation.\n * @docs-private\n */\nexport class MatInkBarFoundation {\n private _destroyed: boolean;\n private _foundation: MDCTabIndicatorFoundation;\n private _inkBarElement: HTMLElement;\n private _inkBarContentElement: HTMLElement;\n private _fitToContent = false;\n private _adapter: MDCTabIndicatorAdapter = {\n addClass: className => {\n if (!this._destroyed) {\n this._hostElement.classList.add(className);\n }\n },\n removeClass: className => {\n if (!this._destroyed) {\n this._hostElement.classList.remove(className);\n }\n },\n setContentStyleProperty: (propName, value) => {\n this._inkBarContentElement.style.setProperty(propName, value);\n },\n computeContentClientRect: () => {\n // `getBoundingClientRect` isn't available on the server.\n return this._destroyed || !this._inkBarContentElement.getBoundingClientRect\n ? ({\n width: 0,\n height: 0,\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n x: 0,\n y: 0,\n } as ClientRect)\n : this._inkBarContentElement.getBoundingClientRect();\n },\n };\n\n constructor(private _hostElement: HTMLElement, private _document: Document) {\n this._foundation = new MDCSlidingTabIndicatorFoundation(this._adapter);\n }\n\n /** Aligns the ink bar to the current item. */\n activate(clientRect?: ClientRect) {\n this._foundation.activate(clientRect);\n }\n\n /** Removes the ink bar from the current item. */\n deactivate() {\n this._foundation.deactivate();\n }\n\n /** Gets the ClientRect of the ink bar. */\n computeContentClientRect() {\n return this._foundation.computeContentClientRect();\n }\n\n /** Initializes the foundation. */\n init() {\n this._createInkBarElement();\n this._foundation.init();\n }\n\n /** Destroys the foundation. */\n destroy() {\n this._inkBarElement.remove();\n this._hostElement = this._inkBarElement = this._inkBarContentElement = null!;\n this._foundation.destroy();\n this._destroyed = true;\n }\n\n /**\n * Sets whether the ink bar should be appended to the content, which will cause the ink bar\n * to match the width of the content rather than the tab host element.\n */\n setFitToContent(fitToContent: boolean) {\n if (this._fitToContent !== fitToContent) {\n this._fitToContent = fitToContent;\n if (this._inkBarElement) {\n this._appendInkBarElement();\n }\n }\n }\n\n /**\n * Gets whether the ink bar should be appended to the content, which will cause the ink bar\n * to match the width of the content rather than the tab host element.\n */\n getFitToContent(): boolean {\n return this._fitToContent;\n }\n\n /** Creates and appends the ink bar element. */\n private _createInkBarElement() {\n this._inkBarElement = this._document.createElement('span');\n this._inkBarContentElement = this._document.createElement('span');\n\n this._inkBarElement.className = 'mdc-tab-indicator';\n this._inkBarContentElement.className =\n 'mdc-tab-indicator__content' + ' mdc-tab-indicator__content--underline';\n\n this._inkBarElement.appendChild(this._inkBarContentElement);\n this._appendInkBarElement();\n }\n\n /**\n * Appends the ink bar to the tab host element or content, depending on whether\n * the ink bar should fit to content.\n */\n private _appendInkBarElement() {\n if (!this._inkBarElement && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throw Error('Ink bar element has not been created and cannot be appended');\n }\n\n const parentElement = this._fitToContent\n ? this._hostElement.querySelector('.mdc-tab__content')\n : this._hostElement;\n\n if (!parentElement && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throw Error('Missing element to host the ink bar');\n }\n\n parentElement!.appendChild(this._inkBarElement);\n }\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {Directive, ElementRef, Inject, Input, OnDestroy, OnInit} from '@angular/core';\nimport {DOCUMENT} from '@angular/common';\nimport {MatTabLabelWrapper as BaseMatTabLabelWrapper} from '@angular/material/tabs';\nimport {MatInkBarFoundation, MatInkBarItem} from './ink-bar';\nimport {BooleanInput, coerceBooleanProperty} from '@angular/cdk/coercion';\n\n/**\n * Used in the `mat-tab-group` view to display tab labels.\n * @docs-private\n */\n@Directive({\n selector: '[matTabLabelWrapper]',\n inputs: ['disabled'],\n host: {\n '[class.mat-mdc-tab-disabled]': 'disabled',\n '[attr.aria-disabled]': '!!disabled',\n },\n})\nexport class MatTabLabelWrapper\n extends BaseMatTabLabelWrapper\n implements MatInkBarItem, OnInit, OnDestroy\n{\n private _document: Document;\n\n _foundation: MatInkBarFoundation;\n\n /** Whether the ink bar should fit its width to the size of the tab label content. */\n @Input()\n get fitInkBarToContent(): boolean {\n return this._foundation.getFitToContent();\n }\n set fitInkBarToContent(v: BooleanInput) {\n this._foundation.setFitToContent(coerceBooleanProperty(v));\n }\n\n constructor(elementRef: ElementRef, @Inject(DOCUMENT) _document: any) {\n super(elementRef);\n this._document = _document;\n this._foundation = new MatInkBarFoundation(elementRef.nativeElement, this._document);\n }\n\n ngOnInit() {\n this._foundation.init();\n }\n\n ngOnDestroy() {\n this._foundation.destroy();\n }\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n TemplateRef,\n ContentChild,\n} from '@angular/core';\nimport {MatTab as BaseMatTab, MAT_TAB} from '@angular/material/tabs';\nimport {MatTabContent} from './tab-content';\nimport {MatTabLabel} from './tab-label';\n\n@Component({\n selector: 'mat-tab',\n\n // Note that usually we'd go through a bit more trouble and set up another class so that\n // the inlined template of `MatTab` isn't duplicated, however the template is small enough\n // that creating the extra class will generate more code than just duplicating the template.\n templateUrl: 'tab.html',\n inputs: ['disabled'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n exportAs: 'matTab',\n providers: [{provide: MAT_TAB, useExisting: MatTab}],\n})\nexport class MatTab extends BaseMatTab {\n /**\n * Template provided in the tab content that will be used if present, used to enable lazy-loading\n */\n @ContentChild(MatTabContent, {read: TemplateRef, static: true})\n override _explicitContent: TemplateRef<any>;\n\n /** Content for the tab label given by `<ng-template mat-tab-label>`. */\n @ContentChild(MatTabLabel)\n override get templateLabel(): MatTabLabel {\n return this._templateLabel;\n }\n override set templateLabel(value: MatTabLabel) {\n this._setTemplateLabelInput(value);\n }\n}\n","<!-- 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","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n ContentChildren,\n ViewChild,\n ElementRef,\n QueryList,\n AfterContentInit,\n Optional,\n ChangeDetectorRef,\n NgZone,\n Inject,\n} from '@angular/core';\nimport {_MatTabHeaderBase} from '@angular/material/tabs';\nimport {ViewportRuler} from '@angular/cdk/scrolling';\nimport {Platform} from '@angular/cdk/platform';\nimport {Directionality} from '@angular/cdk/bidi';\nimport {ANIMATION_MODULE_TYPE} from '@angular/platform-browser/animations';\nimport {MatTabLabelWrapper} from './tab-label-wrapper';\nimport {MatInkBar} from './ink-bar';\n\n/**\n * The header of the tab group which displays a list of all the tabs in the tab group. Includes\n * an ink bar that follows the currently selected tab. When the tabs list's width exceeds the\n * width of the header container, then arrows will be displayed to allow the user to scroll\n * left and right across the header.\n * @docs-private\n */\n@Component({\n selector: 'mat-tab-header',\n templateUrl: 'tab-header.html',\n styleUrls: ['tab-header.css'],\n inputs: ['selectedIndex'],\n outputs: ['selectFocusedIndex', 'indexFocused'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n 'class': 'mat-mdc-tab-header',\n '[class.mat-mdc-tab-header-pagination-controls-enabled]': '_showPaginationControls',\n '[class.mat-mdc-tab-header-rtl]': \"_getLayoutDirection() == 'rtl'\",\n },\n})\nexport class MatTabHeader extends _MatTabHeaderBase implements AfterContentInit {\n @ContentChildren(MatTabLabelWrapper, {descendants: false}) _items: QueryList<MatTabLabelWrapper>;\n @ViewChild('tabListContainer', {static: true}) _tabListContainer: ElementRef;\n @ViewChild('tabList', {static: true}) _tabList: ElementRef;\n @ViewChild('tabListInner', {static: true}) _tabListInner: ElementRef;\n @ViewChild('nextPaginator') _nextPaginator: ElementRef<HTMLElement>;\n @ViewChild('previousPaginator') _previousPaginator: ElementRef<HTMLElement>;\n _inkBar: MatInkBar;\n\n constructor(\n elementRef: ElementRef,\n changeDetectorRef: ChangeDetectorRef,\n viewportRuler: ViewportRuler,\n @Optional() dir: Directionality,\n ngZone: NgZone,\n platform: Platform,\n @Optional() @Inject(ANIMATION_MODULE_TYPE) animationMode?: string,\n ) {\n super(elementRef, changeDetectorRef, viewportRuler, dir, ngZone, platform, animationMode);\n }\n\n override ngAfterContentInit() {\n this._inkBar = new MatInkBar(this._items);\n super.ngAfterContentInit();\n }\n}\n","<!-- TODO: this also had `mat-elevation-z4`. Figure out what we should do with it. -->\n<div class=\"mat-mdc-tab-header-pagination mat-mdc-tab-header-pagination-before\"\n #previousPaginator\n aria-hidden=\"true\"\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]=\"_animationMode === 'NoopAnimations'\">\n <div\n #tabList\n class=\"mat-mdc-tab-list\"\n role=\"tablist\"\n (cdkObserveContent)=\"_onContentChanges()\">\n <div class=\"mat-mdc-tab-labels\" #tabListInner>\n <ng-content></ng-content>\n </div>\n </div>\n</div>\n\n<!-- TODO: this also had `mat-elevation-z4`. Figure out what we should do with it. -->\n<div class=\"mat-mdc-tab-header-pagination mat-mdc-tab-header-pagination-after\"\n #nextPaginator\n aria-hidden=\"true\"\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","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChildren,\n ElementRef,\n Inject,\n Input,\n Optional,\n QueryList,\n ViewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport {\n _MatTabGroupBase,\n MAT_TAB_GROUP,\n MAT_TABS_CONFIG,\n MatTabsConfig,\n} from '@angular/material/tabs';\nimport {ANIMATION_MODULE_TYPE} from '@angular/platform-browser/animations';\nimport {MatTab} from './tab';\nimport {MatTabHeader} from './tab-header';\nimport {BooleanInput, coerceBooleanProperty} from '@angular/cdk/coercion';\n\n/**\n * Material design tab-group component. Supports basic tab pairs (label + content) and includes\n * animated ink-bar, keyboard navigation, and screen reader.\n * See: https://material.io/design/components/tabs.html\n */\n@Component({\n selector: 'mat-tab-group',\n exportAs: 'matTabGroup',\n templateUrl: 'tab-group.html',\n styleUrls: ['tab-group.css'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n inputs: ['color', 'disableRipple'],\n providers: [\n {\n provide: MAT_TAB_GROUP,\n useExisting: MatTabGroup,\n },\n ],\n host: {\n 'class': 'mat-mdc-tab-group',\n '[class.mat-mdc-tab-group-dynamic-height]': 'dynamicHeight',\n '[class.mat-mdc-tab-group-inverted-header]': 'headerPosition === \"below\"',\n },\n})\nexport class MatTabGroup extends _MatTabGroupBase {\n @ContentChildren(MatTab, {descendants: true}) _allTabs: QueryList<MatTab>;\n @ViewChild('tabBodyWrapper') _tabBodyWrapper: ElementRef;\n @ViewChild('tabHeader') _tabHeader: MatTabHeader;\n\n /** Whether the ink bar should fit its width to the size of the tab label content. */\n @Input()\n get fitInkBarToContent(): boolean {\n return this._fitInkBarToContent;\n }\n set fitInkBarToContent(v: BooleanInput) {\n this._fitInkBarToContent = coerceBooleanProperty(v);\n this._changeDetectorRef.markForCheck();\n }\n private _fitInkBarToContent = false;\n\n constructor(\n elementRef: ElementRef,\n changeDetectorRef: ChangeDetectorRef,\n @Inject(MAT_TABS_CONFIG) @Optional() defaultConfig?: MatTabsConfig,\n @Optional() @Inject(ANIMATION_MODULE_TYPE) animationMode?: string,\n ) {\n super(elementRef, changeDetectorRef, defaultConfig, animationMode);\n this.fitInkBarToContent =\n defaultConfig && defaultConfig.fitInkBarToContent != null\n ? defaultConfig.fitInkBarToContent\n : false;\n }\n}\n","<mat-tab-header #tabHeader\n [selectedIndex]=\"selectedIndex || 0\"\n [disableRipple]=\"disableRipple\"\n (indexFocused)=\"_focusChanged($event)\"\n (selectFocusedIndex)=\"selectedIndex = $event\">\n\n <div class=\"mdc-tab mat-mdc-tab mat-mdc-focus-indicator\"\n #tabNode\n role=\"tab\"\n matTabLabelWrapper\n cdkMonitorElementFocus\n *ngFor=\"let tab of _tabs; let i = index\"\n [id]=\"_getTabLabelId(i)\"\n [attr.tabIndex]=\"_getTabIndex(tab, i)\"\n [attr.aria-posinset]=\"i + 1\"\n [attr.aria-setsize]=\"_tabs.length\"\n [attr.aria-controls]=\"_getTabContentId(i)\"\n [attr.aria-selected]=\"selectedIndex == i\"\n [attr.aria-label]=\"tab.ariaLabel || null\"\n [attr.aria-labelledby]=\"(!tab.ariaLabel && tab.ariaLabelledby) ? tab.ariaLabelledby : null\"\n [class.mdc-tab--active]=\"selectedIndex == i\"\n [disabled]=\"tab.disabled\"\n [fitInkBarToContent]=\"fitInkBarToContent\"\n (click)=\"_handleClick(tab, tabHeader, i)\"\n (cdkFocusChange)=\"_tabFocusChanged($event, i)\">\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 <!-- If there is a label template, use it. -->\n <ng-template [ngIf]=\"tab.templateLabel\">\n <ng-template [cdkPortalOutlet]=\"tab.templateLabel\"></ng-template>\n </ng-template>\n\n <!-- If there is not a label template, fall back to the text label. -->\n <ng-template [ngIf]=\"!tab.templateLabel\">{{tab.textLabel}}</ng-template>\n </span>\n </span>\n </div>\n</mat-tab-header>\n\n<div\n class=\"mat-mdc-tab-body-wrapper\"\n [class._mat-animation-noopable]=\"_animationMode === 'NoopAnimations'\"\n #tabBodyWrapper>\n <mat-tab-body role=\"tabpanel\"\n *ngFor=\"let tab of _tabs; let i = index\"\n [id]=\"_getTabContentId(i)\"\n [attr.tabindex]=\"(contentTabIndex != null && selectedIndex === i) ? contentTabIndex : null\"\n [attr.aria-labelledby]=\"_getTabLabelId(i)\"\n [class.mat-mdc-tab-body-active]=\"selectedIndex === i\"\n [content]=\"tab.content!\"\n [position]=\"tab.position!\"\n [origin]=\"tab.origin\"\n [animationDuration]=\"animationDuration\"\n (_onCentered)=\"_removeTabBodyWrapperHeight()\"\n (_onCentering)=\"_setTabBodyWrapperHeight($event)\">\n </mat-tab-body>\n</div>\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport {\n ChangeDetectionStrategy,\n Component,\n ContentChildren,\n ElementRef,\n forwardRef,\n QueryList,\n ViewChild,\n ViewEncapsulation,\n Optional,\n Inject,\n Attribute,\n OnDestroy,\n AfterContentInit,\n NgZone,\n ChangeDetectorRef,\n OnInit,\n Input,\n} from '@angular/core';\nimport {ANIMATION_MODULE_TYPE} from '@angular/platform-browser/animations';\nimport {\n MAT_RIPPLE_GLOBAL_OPTIONS,\n RippleGlobalOptions,\n} from '@angular/material-experimental/mdc-core';\nimport {FocusMonitor} from '@angular/cdk/a11y';\nimport {\n _MatTabNavBase,\n _MatTabLinkBase,\n MAT_TABS_CONFIG,\n MatTabsConfig,\n} from '@angular/material/tabs';\nimport {DOCUMENT} from '@angular/common';\nimport {Directionality} from '@angular/cdk/bidi';\nimport {ViewportRuler} from '@angular/cdk/scrolling';\nimport {Platform} from '@angular/cdk/platform';\nimport {MatInkBar, MatInkBarItem, MatInkBarFoundation} from '../ink-bar';\nimport {BooleanInput, coerceBooleanProperty} from '@angular/cdk/coercion';\nimport {BehaviorSubject, Subject} from 'rxjs';\nimport {takeUntil} from 'rxjs/operators';\n\n/**\n * Navigation component matching the styles of the tab group header.\n * Provides anchored navigation with animated ink bar.\n */\n@Component({\n selector: '[mat-tab-nav-bar]',\n exportAs: 'matTabNavBar, matTabNav',\n inputs: ['color'],\n templateUrl: 'tab-nav-bar.html',\n styleUrls: ['tab-nav-bar.css'],\n host: {\n '[attr.role]': '_getRole()',\n 'class': 'mat-mdc-tab-nav-bar mat-mdc-tab-header',\n '[class.mat-mdc-tab-header-pagination-controls-enabled]': '_showPaginationControls',\n '[class.mat-mdc-tab-header-rtl]': \"_getLayoutDirection() == 'rtl'\",\n '[class.mat-primary]': 'color !== \"warn\" && color !== \"accent\"',\n '[class.mat-accent]': 'color === \"accent\"',\n '[class.mat-warn]': 'color === \"warn\"',\n '[class._mat-animation-noopable]': '_animationMode === \"NoopAnimations\"',\n },\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class MatTabNav extends _MatTabNavBase implements AfterContentInit {\n /** Whether the ink bar should fit its width to the size of the tab label content. */\n @Input()\n get fitInkBarToContent(): boolean {\n return this._fitInkBarToContent.value;\n }\n set fitInkBarToContent(v: BooleanInput) {\n this._fitInkBarToContent.next(coerceBooleanProperty(v));\n this._changeDetectorRef.markForCheck();\n }\n _fitInkBarToContent = new BehaviorSubject(false);\n\n @ContentChildren(forwardRef(() => MatTabLink), {descendants: true}) _items: QueryList<MatTabLink>;\n @ViewChild('tabListContainer', {static: true}) _tabListContainer: ElementRef;\n @ViewChild('tabList', {static: true}) _tabList: ElementRef;\n @ViewChild('tabListInner', {static: true}) _tabListInner: ElementRef;\n @ViewChild('nextPaginator') _nextPaginator: ElementRef<HTMLElement>;\n @ViewChild('previousPaginator') _previousPaginator: ElementRef<HTMLElement>;\n _inkBar: MatInkBar;\n\n constructor(\n elementRef: ElementRef,\n @Optional() dir: Directionality,\n ngZone: NgZone,\n changeDetectorRef: ChangeDetectorRef,\n viewportRuler: ViewportRuler,\n platform: Platform,\n @Optional() @Inject(ANIMATION_MODULE_TYPE) animationMode?: string,\n @Optional() @Inject(MAT_TABS_CONFIG) defaultConfig?: MatTabsConfig,\n ) {\n super(elementRef, dir, ngZone, changeDetectorRef, viewportRuler, platform, animationMode);\n this.disablePagination =\n defaultConfig && defaultConfig.disablePagination != null\n ? defaultConfig.disablePagination\n : false;\n this.fitInkBarToContent =\n defaultConfig && defaultConfig.fitInkBarToContent != null\n ? defaultConfig.fitInkBarToContent\n : false;\n }\n\n override ngAfterContentInit() {\n this._inkBar = new MatInkBar(this._items);\n super.ngAfterContentInit();\n }\n}\n\n/**\n * Link inside of a `mat-tab-nav-bar`.\n */\n@Component({\n selector: '[mat-tab-link], [matTabLink]',\n exportAs: 'matTabLink',\n inputs: ['disabled', 'disableRipple', 'tabIndex'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n templateUrl: 'tab-link.html',\n styleUrls: ['tab-link.css'],\n host: {\n 'class': 'mdc-tab mat-mdc-tab-link mat-mdc-focus-indicator',\n '[attr.aria-controls]': '_getAriaControls()',\n '[attr.aria-current]': '_getAriaCurrent()',\n '[attr.aria-disabled]': 'disabled',\n '[attr.aria-selected]': '_getAriaSelected()',\n '[attr.id]': 'id',\n '[attr.tabIndex]': '_getTabIndex()',\n '[attr.role]': '_getRole()',\n '[class.mat-mdc-tab-disabled]': 'disabled',\n '[class.mdc-tab--active]': 'active',\n '(focus)': '_handleFocus()',\n '(keydown)': '_handleKeydown($event)',\n },\n})\nexport class MatTabLink extends _MatTabLinkBase implements MatInkBarItem, OnInit, OnDestroy {\n _foundation = new MatInkBarFoundation(this.elementRef.nativeElement, this._document);\n\n private readonly _destroyed = new Subject<void>();\n\n constructor(\n tabNavBar: MatTabNav,\n elementRef: ElementRef,\n @Optional() @Inject(MAT_RIPPLE_GLOBAL_OPTIONS) globalRippleOptions: RippleGlobalOptions | null,\n @Attribute('tabindex') tabIndex: string,\n focusMonitor: FocusMonitor,\n @Inject(DOCUMENT) private _document: any,\n @Optional() @Inject(ANIMATION_MODULE_TYPE) animationMode?: string,\n ) {\n super(tabNavBar, elementRef, globalRippleOptions, tabIndex, focusMonitor, animationMode);\n\n tabNavBar._fitInkBarToContent.pipe(takeUntil(this._destroyed)).subscribe(fitInkBarToContent => {\n this._foundation.setFitToContent(fitInkBarToContent);\n });\n }\n\n ngOnInit() {\n this._foundation.init();\n }\n\n override ngOnDestroy() {\n this._destroyed.next();\n this._destroyed.complete();\n super.ngOnDestroy();\n this._foundation.destroy();\n }\n}\n\n// Increasing integer for generating unique ids for tab nav components.\nlet nextUniqueId = 0;\n\n/**\n * Tab panel component associated with MatTabNav.\n */\n@Component({\n selector: 'mat-tab-nav-panel',\n exportAs: 'matTabNavPanel',\n template: '<ng-content></ng-content>',\n host: {\n '[attr.aria-labelledby]': '_activeTabId',\n '[attr.id]': 'id',\n 'class': 'mat-mdc-tab-nav-panel',\n 'role': 'tabpanel',\n },\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class MatTabNavPanel {\n /** Unique id for the tab panel. */\n @Input() id = `mat-tab-nav-panel-${nextUniqueId++}`;\n\n /** Id of the active tab in the nav bar. */\n _activeTabId?: string;\n}\n","<!-- TODO: this also had `mat-elevation-z4`. Figure out what we should do with it. -->\n<div class=\"mat-mdc-tab-header-pagination mat-mdc-tab-header-pagination-before\"\n #previousPaginator\n aria-hidden=\"true\"\n mat-ripple [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<!-- TODO: this also had `mat-elevation-z4`. Figure out what we should do with it. -->\n<div class=\"mat-mdc-tab-header-pagination mat-mdc-tab-header-pagination-after\"\n #nextPaginator\n aria-hidden=\"true\"\n mat-ripple [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","<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","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {MatCommonModule, MatRippleModule} from '@angular/material-experimental/mdc-core';\nimport {PortalModule} from '@angular/cdk/portal';\nimport {ObserversModule} from '@angular/cdk/observers';\nimport {A11yModule} from '@angular/cdk/a11y';\nimport {MatTabBody, MatTabBodyPortal} from './tab-body';\nimport {MatTabContent} from './tab-content';\nimport {MatTabLabel} from './tab-label';\nimport {MatTabLabelWrapper} from './tab-label-wrapper';\nimport {MatTab} from './tab';\nimport {MatTabHeader} from './tab-header';\nimport {MatTabGroup} from './tab-group';\nimport {MatTabNav, MatTabNavPanel, MatTabLink} from './tab-nav-bar/tab-nav-bar';\n\n@NgModule({\n imports: [\n CommonModule,\n MatCommonModule,\n PortalModule,\n MatRippleModule,\n ObserversModule,\n A11yModule,\n ],\n exports: [\n MatCommonModule,\n MatTabContent,\n MatTabLabel,\n MatTab,\n MatTabGroup,\n MatTabNav,\n MatTabNavPanel,\n MatTabLink,\n ],\n declarations: [\n MatTabContent,\n MatTabLabel,\n MatTab,\n MatTabGroup,\n MatTabNav,\n MatTabNavPanel,\n MatTabLink,\n\n // Private directives, should not be exported.\n MatTabBody,\n MatTabBodyPortal,\n MatTabLabelWrapper,\n MatTabHeader,\n ],\n})\nexport class MatTabsModule {}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nexport * from './module';\nexport {MatTabBodyPortal, MatTabBody} from './tab-body';\nexport {MatTabContent} from './tab-content';\nexport {MatTabLabel} from './tab-label';\nexport {MatTabLabelWrapper} from './tab-label-wrapper';\nexport {MatTab} from './tab';\nexport {MatInkBar} from './ink-bar';\nexport {MatTabHeader} from './tab-header';\nexport {MatTabGroup} from './tab-group';\nexport {MatTabNav, MatTabNavPanel, MatTabLink} from './tab-nav-bar/tab-nav-bar';\n\nexport {\n MatTabBodyPositionState,\n MatTabBodyOriginState,\n matTabsAnimations,\n _MatInkBarPositioner,\n _MAT_INK_BAR_POSITIONER,\n MatTabChangeEvent,\n MatTabHeaderPosition,\n MatTabsConfig,\n MAT_TABS_CONFIG,\n MAT_TAB_GROUP,\n MAT_TAB,\n ScrollDirection,\n} from '@angular/material/tabs';\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nexport * from './public-api';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["BaseMatTabBodyPortal","BaseMatTabContent","BaseMatTabLabel","BaseMatTabLabelWrapper","BaseMatTab"],"mappings":"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"}
@@ -8,7 +8,7 @@ import { Version } from '@angular/core';
8
8
  * found in the LICENSE file at https://angular.io/license
9
9
  */
10
10
  /** Current version of the Material experimental package. */
11
- const VERSION = new Version('13.2.0-next.0');
11
+ const VERSION = new Version('13.2.0-next.1');
12
12
 
13
13
  /**
14
14
  * @license
@@ -1 +1 @@
1
- {"version":3,"file":"material-experimental.mjs","sources":["../../../../../../src/material-experimental/version.ts","../../../../../../src/material-experimental/public-api.ts","../../../../../../src/material-experimental/index.ts"],"sourcesContent":["/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {Version} from '@angular/core';\n\n/** Current version of the Material experimental package. */\nexport const VERSION = new Version('13.2.0-next.0');\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nexport * from './version';\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;AAAA;;;;;;;AAUA;MACa,OAAO,GAAG,IAAI,OAAO,CAAC,mBAAmB;;ACXtD;;;;;;;;ACAA;;;;;;;;;;"}
1
+ {"version":3,"file":"material-experimental.mjs","sources":["../../../../../../src/material-experimental/version.ts","../../../../../../src/material-experimental/public-api.ts","../../../../../../src/material-experimental/index.ts"],"sourcesContent":["/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {Version} from '@angular/core';\n\n/** Current version of the Material experimental package. */\nexport const VERSION = new Version('13.2.0-next.1');\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nexport * from './version';\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;AAAA;;;;;;;AAUA;MACa,OAAO,GAAG,IAAI,OAAO,CAAC,mBAAmB;;ACXtD;;;;;;;;ACAA;;;;;;;;;;"}