carbon-components-angular 6.0.0-rc.21 → 6.0.0-rc.22

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 (217) hide show
  1. package/aspect-ratio/aspect-ratio.directive.d.ts +1 -1
  2. package/aspect-ratio/aspect-ratio.module.d.ts +1 -1
  3. package/datepicker/datepicker.component.d.ts +1 -0
  4. package/datepicker-input/datepicker-input.component.d.ts +1 -0
  5. package/docs/documentation/components/AILabelComponent.html +2 -2
  6. package/docs/documentation/components/ActionableNotification.html +3 -3
  7. package/docs/documentation/components/ButtonSet.html +5 -5
  8. package/docs/documentation/components/ComboButtonComponent.html +3 -3
  9. package/docs/documentation/components/ContextMenuItemComponent.html +3 -3
  10. package/docs/documentation/components/DatePicker.html +242 -155
  11. package/docs/documentation/components/DatePickerInput.html +239 -149
  12. package/docs/documentation/components/IconTab.html +48 -50
  13. package/docs/documentation/components/Label.html +38 -44
  14. package/docs/documentation/components/MenuButtonComponent.html +3 -3
  15. package/docs/documentation/components/PaginationOverflow.html +3 -3
  16. package/docs/documentation/components/Select.html +183 -65
  17. package/docs/documentation/components/Tab.html +56 -59
  18. package/docs/documentation/components/TabHeaderComponent.html +5 -5
  19. package/docs/documentation/components/TableBody.html +3 -3
  20. package/docs/documentation/components/TableContainer.html +3 -3
  21. package/docs/documentation/components/TableHead.html +3 -3
  22. package/docs/documentation/components/TableHeader.html +3 -3
  23. package/docs/documentation/components/TableRadio.html +22 -24
  24. package/docs/documentation/components/TableRowComponent.html +3 -3
  25. package/docs/documentation/components/Tabs.html +36 -40
  26. package/docs/documentation/components/TabsVertical.html +34 -36
  27. package/docs/documentation/components/TabsVerticalGrouped.html +3 -3
  28. package/docs/documentation/components/Tag.html +5 -5
  29. package/docs/documentation/components/TagFilter.html +2 -2
  30. package/docs/documentation/components/TagOperationalComponent.html +2 -2
  31. package/docs/documentation/components/TagSelectableComponent.html +2 -2
  32. package/docs/documentation/components/Tile.html +19 -23
  33. package/docs/documentation/components/TimePickerSelect.html +104 -32
  34. package/docs/documentation/components/Toggle.html +460 -1680
  35. package/docs/documentation/components/Toggletip.html +5 -5
  36. package/docs/documentation/coverage.html +17 -17
  37. package/docs/documentation/directives/AspectRatioDirective.html +23 -24
  38. package/docs/documentation/directives/PasswordInput.html +1 -1
  39. package/docs/documentation/directives/TextInput.html +1 -1
  40. package/docs/documentation/graph/dependencies.svg +179 -179
  41. package/docs/documentation/js/menu-wc.js +6 -3
  42. package/docs/documentation/js/menu-wc_es5.js +1 -1
  43. package/docs/documentation/js/search/search_index.js +2 -2
  44. package/docs/documentation/miscellaneous/enumerations.html +0 -37
  45. package/docs/documentation/modules/AspectRatioModule/dependencies.svg +4 -4
  46. package/docs/documentation/modules/AspectRatioModule.html +9 -8
  47. package/docs/documentation/modules/ContextMenuModule/dependencies.svg +4 -4
  48. package/docs/documentation/modules/ContextMenuModule.html +4 -4
  49. package/docs/documentation/modules/DialogModule/dependencies.svg +80 -80
  50. package/docs/documentation/modules/DialogModule.html +80 -80
  51. package/docs/documentation/modules/DropdownModule/dependencies.svg +4 -4
  52. package/docs/documentation/modules/DropdownModule.html +4 -4
  53. package/docs/documentation/modules/GridModule/dependencies.svg +4 -4
  54. package/docs/documentation/modules/GridModule.html +4 -4
  55. package/docs/documentation/modules/HeaderModule/dependencies.svg +4 -4
  56. package/docs/documentation/modules/HeaderModule.html +4 -4
  57. package/docs/documentation/modules/I18nModule/dependencies.svg +4 -4
  58. package/docs/documentation/modules/I18nModule.html +4 -4
  59. package/docs/documentation/modules/InputModule/dependencies.svg +4 -4
  60. package/docs/documentation/modules/InputModule.html +4 -4
  61. package/docs/documentation/modules/LayerModule/dependencies.svg +4 -4
  62. package/docs/documentation/modules/LayerModule.html +4 -4
  63. package/docs/documentation/modules/LayoutModule/dependencies.svg +4 -4
  64. package/docs/documentation/modules/LayoutModule.html +4 -4
  65. package/docs/documentation/modules/ListModule/dependencies.svg +4 -4
  66. package/docs/documentation/modules/ListModule.html +4 -4
  67. package/docs/documentation/modules/LoadingModule/dependencies.svg +4 -4
  68. package/docs/documentation/modules/LoadingModule.html +4 -4
  69. package/docs/documentation/modules/MenuButton/dependencies.svg +4 -4
  70. package/docs/documentation/modules/MenuButton.html +4 -4
  71. package/docs/documentation/modules/ModalModule/dependencies.svg +4 -4
  72. package/docs/documentation/modules/ModalModule.html +4 -4
  73. package/docs/documentation/modules/NFormsModule/dependencies.svg +4 -4
  74. package/docs/documentation/modules/NFormsModule.html +4 -4
  75. package/docs/documentation/modules/PaginationModule/dependencies.svg +4 -4
  76. package/docs/documentation/modules/PaginationModule.html +4 -4
  77. package/docs/documentation/modules/PlaceholderModule/dependencies.svg +4 -4
  78. package/docs/documentation/modules/PlaceholderModule.html +4 -4
  79. package/docs/documentation/modules/PopoverModule/dependencies.svg +4 -4
  80. package/docs/documentation/modules/PopoverModule.html +4 -4
  81. package/docs/documentation/modules/RadioModule/dependencies.svg +4 -4
  82. package/docs/documentation/modules/RadioModule.html +4 -4
  83. package/docs/documentation/modules/TableModule/dependencies.svg +4 -4
  84. package/docs/documentation/modules/TableModule.html +4 -4
  85. package/docs/documentation/modules/ThemeModule/dependencies.svg +4 -4
  86. package/docs/documentation/modules/ThemeModule.html +4 -4
  87. package/docs/documentation/modules/TimePickerSelectModule/dependencies.svg +4 -4
  88. package/docs/documentation/modules/TimePickerSelectModule.html +4 -4
  89. package/docs/documentation/modules/ToggleModule/dependencies.svg +4 -4
  90. package/docs/documentation/modules/ToggleModule.html +4 -4
  91. package/docs/documentation/modules/ToggletipModule/dependencies.svg +4 -4
  92. package/docs/documentation/modules/ToggletipModule.html +4 -4
  93. package/docs/documentation/modules/TreeviewModule/dependencies.svg +4 -4
  94. package/docs/documentation/modules/TreeviewModule.html +4 -4
  95. package/docs/documentation/overview.html +179 -179
  96. package/docs/documentation.json +872 -1252
  97. package/docs/storybook/117.bb979a2a.iframe.bundle.js +1 -0
  98. package/docs/storybook/{3419.8754f6b3.iframe.bundle.js → 3419.fbf4e882.iframe.bundle.js} +1 -1
  99. package/docs/storybook/{4333.ab38752d.iframe.bundle.js → 4333.fefbcaa4.iframe.bundle.js} +1 -1
  100. package/docs/storybook/4539.cd802ae1.iframe.bundle.js +1 -0
  101. package/docs/storybook/5028.4f8835f2.iframe.bundle.js +1 -0
  102. package/docs/storybook/{5118.d8e064f1.iframe.bundle.js → 5118.02beb793.iframe.bundle.js} +1 -1
  103. package/docs/storybook/{6372.9f376681.iframe.bundle.js → 6372.f041a629.iframe.bundle.js} +1 -1
  104. package/docs/storybook/{6878.5ee808b5.iframe.bundle.js → 6878.c010cd64.iframe.bundle.js} +1 -1
  105. package/docs/storybook/{6931.bca31e10.iframe.bundle.js → 6931.723d7595.iframe.bundle.js} +1 -1
  106. package/docs/storybook/880.f7aa41d3.iframe.bundle.js +1 -0
  107. package/docs/storybook/9851.97cd4b72.iframe.bundle.js +1 -0
  108. package/docs/storybook/{aspect-ratio-aspect-ratio-stories.a66b9c60.iframe.bundle.js → aspect-ratio-aspect-ratio-stories.8433112e.iframe.bundle.js} +1 -1
  109. package/docs/storybook/breadcrumb-breadcrumb-stories.f128b6d0.iframe.bundle.js +1 -0
  110. package/docs/storybook/button-button-set-stories.c2612349.iframe.bundle.js +1 -0
  111. package/docs/storybook/button-button-stories.30b119cd.iframe.bundle.js +1 -0
  112. package/docs/storybook/button-icon-button-stories.0da0527f.iframe.bundle.js +1 -0
  113. package/docs/storybook/checkbox-checkbox-stories.2ebd0a3e.iframe.bundle.js +1 -0
  114. package/docs/storybook/code-snippet-code-snippet-stories.395927b5.iframe.bundle.js +1 -0
  115. package/docs/storybook/combo-button-combo-button-stories.06cafdbe.iframe.bundle.js +1 -0
  116. package/docs/storybook/contained-list-contained-list-stories.0ef7351b.iframe.bundle.js +1 -0
  117. package/docs/storybook/datepicker-datepicker-stories.402c0d61.iframe.bundle.js +1 -0
  118. package/docs/storybook/dialog-overflow-menu-overflow-menu-stories.1820773f.iframe.bundle.js +1 -0
  119. package/docs/storybook/file-uploader-file-stories.f98094f5.iframe.bundle.js +1 -0
  120. package/docs/storybook/iframe.html +2 -2
  121. package/docs/storybook/index-stories.dc944c09.iframe.bundle.js +1 -0
  122. package/docs/storybook/inline-loading-inline-loading-stories.4eb2d84e.iframe.bundle.js +1 -0
  123. package/docs/storybook/input-password-stories.30fb2577.iframe.bundle.js +1 -0
  124. package/docs/storybook/main.80067634.iframe.bundle.js +1 -0
  125. package/docs/storybook/menu-button-menu-button-stories.bdfe8d92.iframe.bundle.js +1 -0
  126. package/docs/storybook/modal-modal-stories.2a043fe5.iframe.bundle.js +1 -0
  127. package/docs/storybook/pagination-pagination-nav-stories.0f81f31c.iframe.bundle.js +1 -0
  128. package/docs/storybook/pagination-pagination-stories.eec922d6.iframe.bundle.js +1 -0
  129. package/docs/storybook/patterns-dialogs-modal-with-table-stories.5d05e9a4.iframe.bundle.js +1 -0
  130. package/docs/storybook/patterns-filtering-multiple-categories-stories.3ae46ebd.iframe.bundle.js +1 -0
  131. package/docs/storybook/patterns-forms-multi-step-form-stories.fe0953e3.iframe.bundle.js +1 -0
  132. package/docs/storybook/patterns-loading-large-loading-stories.66bf3964.iframe.bundle.js +1 -0
  133. package/docs/storybook/project.json +1 -1
  134. package/docs/storybook/{runtime~main.e29a4f3e.iframe.bundle.js → runtime~main.d45fe031.iframe.bundle.js} +1 -1
  135. package/docs/storybook/{select-select-stories.e5a6b6fd.iframe.bundle.js → select-select-stories.6494aa35.iframe.bundle.js} +1 -1
  136. package/docs/storybook/tag-tag-stories.c0c023cc.iframe.bundle.js +1 -0
  137. package/docs/storybook/toggle-toggle-stories.fa8a4852.iframe.bundle.js +1 -0
  138. package/docs/storybook/toggletip-toggletip-stories.9b065bb4.iframe.bundle.js +1 -0
  139. package/fesm2022/carbon-components-angular-ai-label.mjs +1 -1
  140. package/fesm2022/carbon-components-angular-ai-label.mjs.map +1 -1
  141. package/fesm2022/carbon-components-angular-aspect-ratio.mjs +4 -5
  142. package/fesm2022/carbon-components-angular-aspect-ratio.mjs.map +1 -1
  143. package/fesm2022/carbon-components-angular-button.mjs +4 -4
  144. package/fesm2022/carbon-components-angular-button.mjs.map +1 -1
  145. package/fesm2022/carbon-components-angular-combo-button.mjs +2 -2
  146. package/fesm2022/carbon-components-angular-combo-button.mjs.map +1 -1
  147. package/fesm2022/carbon-components-angular-context-menu.mjs +2 -2
  148. package/fesm2022/carbon-components-angular-context-menu.mjs.map +1 -1
  149. package/fesm2022/carbon-components-angular-datepicker-input.mjs +7 -5
  150. package/fesm2022/carbon-components-angular-datepicker-input.mjs.map +1 -1
  151. package/fesm2022/carbon-components-angular-datepicker.mjs +7 -7
  152. package/fesm2022/carbon-components-angular-datepicker.mjs.map +1 -1
  153. package/fesm2022/carbon-components-angular-forms.mjs +1 -1
  154. package/fesm2022/carbon-components-angular-forms.mjs.map +1 -1
  155. package/fesm2022/carbon-components-angular-input.mjs +8 -14
  156. package/fesm2022/carbon-components-angular-input.mjs.map +1 -1
  157. package/fesm2022/carbon-components-angular-menu-button.mjs +2 -2
  158. package/fesm2022/carbon-components-angular-menu-button.mjs.map +1 -1
  159. package/fesm2022/carbon-components-angular-notification.mjs +2 -2
  160. package/fesm2022/carbon-components-angular-notification.mjs.map +1 -1
  161. package/fesm2022/carbon-components-angular-pagination.mjs +2 -2
  162. package/fesm2022/carbon-components-angular-pagination.mjs.map +1 -1
  163. package/fesm2022/carbon-components-angular-select.mjs +14 -14
  164. package/fesm2022/carbon-components-angular-select.mjs.map +1 -1
  165. package/fesm2022/carbon-components-angular-table.mjs +12 -14
  166. package/fesm2022/carbon-components-angular-table.mjs.map +1 -1
  167. package/fesm2022/carbon-components-angular-tabs.mjs +38 -48
  168. package/fesm2022/carbon-components-angular-tabs.mjs.map +1 -1
  169. package/fesm2022/carbon-components-angular-tag.mjs +6 -6
  170. package/fesm2022/carbon-components-angular-tag.mjs.map +1 -1
  171. package/fesm2022/carbon-components-angular-tiles.mjs +4 -8
  172. package/fesm2022/carbon-components-angular-tiles.mjs.map +1 -1
  173. package/fesm2022/carbon-components-angular-toggle.mjs +73 -31
  174. package/fesm2022/carbon-components-angular-toggle.mjs.map +1 -1
  175. package/fesm2022/carbon-components-angular-toggletip.mjs +4 -4
  176. package/fesm2022/carbon-components-angular-toggletip.mjs.map +1 -1
  177. package/forms/index.d.ts +1 -1
  178. package/input/input.directive.d.ts +1 -1
  179. package/input/password.directive.d.ts +1 -1
  180. package/package.json +1 -1
  181. package/select/select.component.d.ts +2 -0
  182. package/tag/tag-filter.component.d.ts +1 -1
  183. package/tag/tag-operational.component.d.ts +1 -1
  184. package/tag/tag-selectable.component.d.ts +1 -1
  185. package/tag/tag.component.d.ts +1 -1
  186. package/toggle/toggle.component.d.ts +36 -21
  187. package/docs/storybook/117.97eb4444.iframe.bundle.js +0 -1
  188. package/docs/storybook/4539.3c2d13f6.iframe.bundle.js +0 -1
  189. package/docs/storybook/5028.d2f8d70a.iframe.bundle.js +0 -1
  190. package/docs/storybook/880.b32b1797.iframe.bundle.js +0 -1
  191. package/docs/storybook/9851.65fc740b.iframe.bundle.js +0 -1
  192. package/docs/storybook/breadcrumb-breadcrumb-stories.8b85700c.iframe.bundle.js +0 -1
  193. package/docs/storybook/button-button-set-stories.fa675e32.iframe.bundle.js +0 -1
  194. package/docs/storybook/button-button-stories.018cbff3.iframe.bundle.js +0 -1
  195. package/docs/storybook/button-icon-button-stories.dd6cbcba.iframe.bundle.js +0 -1
  196. package/docs/storybook/checkbox-checkbox-stories.5ef654f3.iframe.bundle.js +0 -1
  197. package/docs/storybook/code-snippet-code-snippet-stories.3613f4e0.iframe.bundle.js +0 -1
  198. package/docs/storybook/combo-button-combo-button-stories.d30cbfba.iframe.bundle.js +0 -1
  199. package/docs/storybook/contained-list-contained-list-stories.fa371c0d.iframe.bundle.js +0 -1
  200. package/docs/storybook/datepicker-datepicker-stories.b2c80ef4.iframe.bundle.js +0 -1
  201. package/docs/storybook/dialog-overflow-menu-overflow-menu-stories.23d0247a.iframe.bundle.js +0 -1
  202. package/docs/storybook/file-uploader-file-stories.81d58618.iframe.bundle.js +0 -1
  203. package/docs/storybook/index-stories.1efbdb52.iframe.bundle.js +0 -1
  204. package/docs/storybook/inline-loading-inline-loading-stories.af3ae602.iframe.bundle.js +0 -1
  205. package/docs/storybook/input-password-stories.f98ce325.iframe.bundle.js +0 -1
  206. package/docs/storybook/main.05801aa6.iframe.bundle.js +0 -1
  207. package/docs/storybook/menu-button-menu-button-stories.76c3d1f4.iframe.bundle.js +0 -1
  208. package/docs/storybook/modal-modal-stories.0a4034f4.iframe.bundle.js +0 -1
  209. package/docs/storybook/pagination-pagination-nav-stories.1580b524.iframe.bundle.js +0 -1
  210. package/docs/storybook/pagination-pagination-stories.a3328d94.iframe.bundle.js +0 -1
  211. package/docs/storybook/patterns-dialogs-modal-with-table-stories.1051be79.iframe.bundle.js +0 -1
  212. package/docs/storybook/patterns-filtering-multiple-categories-stories.77608d33.iframe.bundle.js +0 -1
  213. package/docs/storybook/patterns-forms-multi-step-form-stories.73cd2f55.iframe.bundle.js +0 -1
  214. package/docs/storybook/patterns-loading-large-loading-stories.66a25868.iframe.bundle.js +0 -1
  215. package/docs/storybook/tag-tag-stories.eed011b8.iframe.bundle.js +0 -1
  216. package/docs/storybook/toggle-toggle-stories.5c291417.iframe.bundle.js +0 -1
  217. package/docs/storybook/toggletip-toggletip-stories.2987ef51.iframe.bundle.js +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"carbon-components-angular-tabs.mjs","sources":["../../src/tabs/base-tab-header.component.ts","../../src/tabs/tab-header.directive.ts","../../src/tabs/tab-header-group.component.ts","../../src/tabs/tab-header-group-vertical.component.ts","../../src/tabs/tab-header.component.ts","../../src/tabs/tab.component.ts","../../src/tabs/tab-headers.component.ts","../../src/tabs/tab-headers-vertical.component.ts","../../src/tabs/icon-tab.component.ts","../../src/tabs/tab-skeleton.component.ts","../../src/tabs/tabs.component.ts","../../src/tabs/tabs-vertical.component.ts","../../src/tabs/tabs-vertical-grouped.component.ts","../../src/tabs/tabs.module.ts","../../src/tabs/carbon-components-angular-tabs.ts"],"sourcesContent":["import {\n\tComponent,\n\tInput,\n\tViewChild,\n\tElementRef,\n\tTemplateRef,\n\tChangeDetectorRef,\n\tHostBinding,\n\tRenderer2\n} from \"@angular/core\";\nimport { EventService } from \"carbon-components-angular/utils\";\n\n/**\n * There are two ways to create a tab, this class is a collection of features\n * & metadata required by both.\n */\n@Component({\n\ttemplate: \"\",\n\tstandalone: true,\n\tproviders: [EventService]\n})\nexport class BaseTabHeader {\n\t/**\n\t * Set to `true` to have `Tab` items cached and not reloaded on tab switching.\n\t * Duplicated from `cds-tabs` to support standalone headers.\n\t */\n\t@Input() cacheActive = false;\n\t/**\n\t * Set to 'true' to have tabs automatically activated and have their content displayed when they receive focus.\n\t */\n\t@Input() followFocus: boolean;\n\t/**\n\t * Sets the aria label on the nav element.\n\t */\n\t@Input() ariaLabel: string;\n\t/**\n\t * Sets the aria labelledby on the nav element.\n\t */\n\t@Input() ariaLabelledby: string;\n\n\t/**\n\t * Template projected before tab items inside the tab list.\n\t */\n\t@Input() contentBefore: TemplateRef<any>;\n\t/**\n\t * Template projected after tab items inside the tab list.\n\t */\n\t@Input() contentAfter: TemplateRef<any>;\n\n\t/**\n\t * Visual style of the tab list: `line` or `contained`.\n\t */\n\t@Input() type: \"line\" | \"contained\" = \"line\";\n\t/**\n\t * Theme for contained tabs: `dark` or `light`.\n\t */\n\t@Input() theme: \"dark\" | \"light\" = \"dark\";\n\n\t/**\n\t * When using icon-only tabs, icon size: `default` (16px) or `lg` (20px).\n\t */\n\t@Input() iconSize: \"default\" | \"lg\";\n\n\t/**\n\t * **Contained only**: Evenly sized tabs across the row (**must** have fewer than 9 tabs).\n\t */\n\t@Input() fullWidth = false;\n\n\t/**\n\t * Show a close control on each tab.\n\t */\n\t@Input() dismissable = false;\n\n\t/**\n\t * Scroll the active tab into view on focus/select.\n\t */\n\t@Input() scrollIntoView = false;\n\n\t/**\n\t * Debounce (ms) for tab list scroll events; affects overflow chevron updates.\n\t */\n\t@Input() scrollDebounceWait = 200;\n\n\t@HostBinding(\"class.cds--tabs\") tabsClass = true;\n\t@HostBinding(\"class.cds--tabs--contained\") get containedClass() {\n\t\treturn this.type === \"contained\";\n\t}\n\t@HostBinding(\"class.cds--tabs--light\") get themeClass() {\n\t\treturn this.theme === \"light\";\n\t}\n\t@HostBinding(\"class.cds--tabs--dismissable\") get dismissableClass() {\n\t\treturn this.dismissable;\n\t}\n\t@HostBinding(\"class.cds--tabs__icon--default\") get iconSizeDefaultClass() {\n\t\treturn this.iconSize === \"default\";\n\t}\n\t@HostBinding(\"class.cds--tabs__icon--lg\") get iconSizeLgClass() {\n\t\treturn this.iconSize === \"lg\";\n\t}\n\t@HostBinding(\"class.cds--layout--size-lg\") get layoutSizeLgClass() {\n\t\treturn this.iconSize === \"lg\";\n\t}\n\n\t/**\n\t * Gets the Unordered List element that holds the `Tab` headings from the view DOM.\n\t */\n\t@ViewChild(\"tabList\", { static: true }) headerContainer;\n\n\t/**\n\t * Controls the manual focusing done by tabbing through headings.\n\t */\n\tcurrentSelectedTab: number;\n\t// width of the overflow buttons\n\treadonly OVERFLOW_BUTTON_OFFSET = 44;\n\treadonly longPressMultiplier = 3;\n\treadonly clickMultiplier = 1.5;\n\n\tprotected longPressInterval = null;\n\tprotected tickInterval = null;\n\tprotected scrollDebounceTimer: any = null;\n\n\tget hasHorizontalOverflow() {\n\t\tconst tabList = this.headerContainer.nativeElement;\n\t\treturn tabList.scrollWidth > tabList.clientWidth;\n\t}\n\n\tget leftOverflowNavButtonHidden() {\n\t\tconst tabList = this.headerContainer.nativeElement;\n\t\treturn !this.hasHorizontalOverflow || !tabList.scrollLeft;\n\t}\n\n\tget rightOverflowNavButtonHidden() {\n\t\tconst tabList = this.headerContainer.nativeElement;\n\t\treturn !this.hasHorizontalOverflow ||\n\t\t\t(tabList.scrollLeft + tabList.clientWidth) === tabList.scrollWidth;\n\t}\n\n\tconstructor(\n\t\tprotected elementRef: ElementRef,\n\t\tprotected changeDetectorRef: ChangeDetectorRef,\n\t\tprotected eventService: EventService,\n\t\tprotected renderer: Renderer2\n\t) {}\n\n\thandleScroll() {\n\t\t// Debounce the change detection trigger so the scroll arrow visibility\n\t\t// updates do not fire on every scroll tick.\n\t\tif (this.scrollDebounceWait <= 0) {\n\t\t\tthis.changeDetectorRef.markForCheck();\n\t\t\treturn;\n\t\t}\n\t\tclearTimeout(this.scrollDebounceTimer);\n\t\tthis.scrollDebounceTimer = setTimeout(() => {\n\t\t\tthis.changeDetectorRef.markForCheck();\n\t\t}, this.scrollDebounceWait);\n\t}\n\n\thandleOverflowNavClick(direction: number, numOftabs = 0) {\n\t\tconst tabList = this.headerContainer.nativeElement;\n\n\t\tconst { clientWidth, scrollLeft, scrollWidth } = tabList;\n\t\tif (direction > 0) {\n\t\t\ttabList.scrollLeft = Math.min(scrollLeft + (scrollWidth / numOftabs) * this.clickMultiplier,\n\t\t\t\tscrollWidth - clientWidth);\n\t\t} else if (direction < 0) {\n\t\t\ttabList.scrollLeft = Math.max(scrollLeft - (scrollWidth / numOftabs) * this.clickMultiplier, 0);\n\t\t}\n\t}\n\n\thandleOverflowNavMouseDown(direction: number) {\n\t\tconst tabList = this.headerContainer.nativeElement;\n\n\t\tthis.longPressInterval = setTimeout(() => {\n\t\t\t// Manually overriding scroll behvior to `auto` to make animation work correctly\n\t\t\tthis.renderer.setStyle(tabList, \"scroll-behavior\", \"auto\");\n\n\t\t\tthis.tickInterval = setInterval(() => {\n\t\t\t\ttabList.scrollLeft += (direction * this.longPressMultiplier);\n\t\t\t\t// clear interval if scroll reaches left or right edge\n\t\t\t\tif (this.leftOverflowNavButtonHidden || this.rightOverflowNavButtonHidden) {\n\t\t\t\t\treturn () => {\n\t\t\t\t\t\tclearInterval(this.tickInterval);\n\t\t\t\t\t\tthis.handleOverflowNavMouseUp();\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t});\n\n\t\t\treturn () => clearInterval(this.longPressInterval);\n\t\t}, 500);\n\t}\n\n\t/**\n\t * Clear intervals/Timeout & reset scroll behavior\n\t */\n\thandleOverflowNavMouseUp() {\n\t\tclearInterval(this.tickInterval);\n\t\tclearTimeout(this.longPressInterval);\n\n\t\t// Reset scroll behavior\n\t\tthis.renderer.setStyle(this.headerContainer.nativeElement, \"scroll-behavior\", \"smooth\");\n\t}\n}\n","import {\n\tDirective,\n\tInput,\n\tOutput,\n\tEventEmitter,\n\tElementRef,\n\tAfterViewInit,\n\tHostBinding,\n\tHostListener,\n\tTemplateRef,\n\tforwardRef\n} from \"@angular/core\";\n\nimport { Tab } from \"./tab.component\";\n\n/**\n * Shared inputs, outputs, and selection logic for `[cdsTabHeader]`\n * and `cds-tab-header` as we prepare for deprecation.\n * Groups use `@ContentChildren(TabHeaderBase)` so both forms appear in DOM order,\n * subclasses supply the template and host behavior.\n */\n@Directive()\n\nexport abstract class TabHeaderBase {\n\t/**\n\t * Set to 'true' to have pane reference cached and not reloaded on tab switching.\n\t */\n\t@Input() set cacheActive(shouldCache: boolean) {\n\t\tthis._cacheActive = shouldCache;\n\n\t\t// Updates the pane references associated with the tab header when cache active is changed.\n\t\tif (this.paneReference) {\n\t\t\tthis.paneReference.cacheActive = this.cacheActive;\n\t\t}\n\t}\n\n\tget cacheActive() {\n\t\treturn this._cacheActive;\n\t}\n\n\t/**\n\t * Sets `tabIndex` on the linked `Tab` pane when the pane reference is set.\n\t */\n\t@Input() set paneTabIndex(tabIndex: number | null) {\n\t\tif (this.paneReference) {\n\t\t\tthis.paneReference.tabIndex = tabIndex;\n\t\t}\n\t}\n\n\t/**\n\t * Selected tab; controls whether the linked pane content is shown.\n\t */\n\t@Input() active = false;\n\n\t/**\n\t * Indicates whether or not the `Tab` item is disabled.\n\t */\n\t@Input() disabled = false;\n\n\t/**\n\t * Icon template; used with `cds-tab-header` / `cds-tab-header-group`.\n\t */\n\t@Input() icon: TemplateRef<any>;\n\n\t/**\n\t * Optional secondary label rendered below the primary tab label.\n\t * Only displayed when the parent group is using `type=\"contained\"`.\n\t */\n\t@Input() secondaryLabel: string;\n\n\t/**\n\t * Set to `true` to render this tab header as dismissable.\n\t */\n\t@Input() dismissable = false;\n\n\t/**\n\t * Reference to the corresponding tab pane.\n\t */\n\t@Input() paneReference: Tab;\n\n\t/**\n\t * Title attribute used as the tooltip for the tab item. Falls back to the tab item's text content if not provided.\n\t */\n\t@Input() title: string;\n\n\t/**\n\t * Emits when this header becomes selected.\n\t */\n\t@Output() selected = new EventEmitter<any>();\n\n\t/**\n\t * Emits when this tabs's close button is pressed.\n\t */\n\t@Output() tabClose = new EventEmitter<void>();\n\n\tprotected _cacheActive = false;\n\n\t/**\n\t * Move keyboard focus to the tab item.\n\t */\n\tabstract focus(): void;\n\n\t/**\n\t * Activates the linked pane and emits `selected`.\n\t */\n\tselectTab() {\n\t\tthis.focus();\n\t\tif (!this.disabled) {\n\t\t\tthis.selected.emit();\n\t\t\tthis.active = true;\n\t\t\tif (this.paneReference) {\n\t\t\t\tthis.paneReference.active = true;\n\t\t\t}\n\t\t}\n\t}\n}\n\n/**\n * Tab header as an attribute on a focusable host inside `cds-tab-header-group`.\n *\n * @deprecated as of v5.\n * Prefer `cds-tab-header` for icons, secondary labels, dismissable close, and icon-only tabs.\n */\n@Directive({\n\tselector: \"[cdsTabHeader], [ibmTabHeader]\",\n\tstandalone: true,\n\tproviders: [\n\t\t{ provide: TabHeaderBase, useExisting: forwardRef(() => TabHeader) }\n\t]\n})\nexport class TabHeader extends TabHeaderBase implements AfterViewInit {\n\t@HostBinding(\"attr.tabIndex\") get tabIndex() {\n\t\treturn this.active ? 0 : -1;\n\t}\n\n\t@HostBinding(\"class.cds--tabs__nav-item--selected\") get isSelected() {\n\t\treturn this.active;\n\t}\n\n\t@HostBinding(\"class.cds--tabs__nav-item--disabled\") get isDisabled() {\n\t\treturn this.disabled;\n\t}\n\n\t@HostBinding(\"attr.type\") type = \"button\";\n\t@HostBinding(\"attr.aria-selected\") get ariaSelected() {\n\t\treturn this.active;\n\t}\n\t@HostBinding(\"attr.aria-disabled\") get ariaDisabled() {\n\t\treturn this.disabled;\n\t}\n\t@HostBinding(\"class.cds--tabs__nav-item\") navItem = true;\n\t@HostBinding(\"class.cds--tabs__nav-link\") navLink = true;\n\t@HostBinding(\"attr.title\") get hostTitle() {\n\t\treturn this.title ?? null;\n\t}\n\n\tconstructor(private host: ElementRef) {\n\t\tsuper();\n\t}\n\n\t@HostListener(\"click\")\n\tonClick() {\n\t\tthis.selectTab();\n\t}\n\n\t@HostListener(\"keydown\", [\"$event\"])\n\tonKeyDown(event: KeyboardEvent) {\n\t\tif (this.dismissable && event.key === \"Delete\") {\n\t\t\tevent.stopPropagation();\n\t\t\tthis.tabClose.emit();\n\t\t}\n\t}\n\n\tngAfterViewInit() {\n\t\tsetTimeout(() => {\n\t\t\tthis.title = this.title ? this.title : this.host.nativeElement.textContent;\n\t\t});\n\t}\n\n\tfocus() {\n\t\tthis.host.nativeElement.focus();\n\t}\n}\n","import {\n\tComponent,\n\tQueryList,\n\tInput,\n\tOutput,\n\tEventEmitter,\n\tHostBinding,\n\tHostListener,\n\tContentChildren,\n\tAfterContentInit,\n\tElementRef,\n\tOnChanges,\n\tSimpleChanges,\n\tChangeDetectorRef,\n\tViewChild,\n\tOnInit,\n\tOnDestroy,\n\tRenderer2\n} from \"@angular/core\";\n\nimport { Subscription } from \"rxjs\";\nimport { EventService } from \"carbon-components-angular/utils\";\nimport { I18n } from \"carbon-components-angular/i18n\";\n\nimport { TabHeaderBase } from \"./tab-header.directive\";\nimport { BaseTabHeader } from \"./base-tab-header.component\";\nimport { NgClass, NgTemplateOutlet } from \"@angular/common\";\n\n@Component({\n\tselector: \"cds-tab-header-group, ibm-tab-header-group\",\n\ttemplate: `\n\t\t<button\n\t\t\ttype=\"button\"\n\t\t\tclass=\"cds--tab--overflow-nav-button cds--tab--overflow-nav-button--previous\"\n\t\t\t[ngClass]=\"{\n\t\t\t\t'cds--tab--overflow-nav-button--hidden': leftOverflowNavButtonHidden\n\t\t\t}\"\n\t\t\t[attr.aria-hidden]=\"leftOverflowNavButtonHidden\"\n\t\t\t[attr.tabindex]=\"-1\"\n\t\t\t[attr.aria-label]=\"translations.BUTTON_ARIA_LEFT\"\n\t\t\t[attr.title]=\"translations.BUTTON_ARIA_LEFT\"\n\t\t\t(click)=\"handleOverflowNavClick(-1, tabHeaderQuery.length)\"\n\t\t\t(pointerdown)=\"handleOverflowNavMouseDown(-1)\"\n\t\t\t(pointerup)=\"handleOverflowNavMouseUp()\"\n\t\t\t(pointerleave)=\"handleOverflowNavMouseUp()\"\n\t\t\t(pointerout)=\"handleOverflowNavMouseUp()\"\n\t\t\t(pointercancel)=\"handleOverflowNavMouseUp()\">\n\t\t\t<svg\n\t\t\t\tfocusable=\"false\"\n\t\t\t\tpreserveAspectRatio=\"xMidYMid meet\"\n\t\t\t\txmlns=\"http://www.w3.org/2000/svg\"\n\t\t\t\tfill=\"currentColor\"\n\t\t\t\twidth=\"16\"\n\t\t\t\theight=\"16\"\n\t\t\t\tviewBox=\"0 0 16 16\"\n\t\t\t\taria-hidden=\"true\">\n\t\t\t\t<path d=\"M5 8L10 3 10.7 3.7 6.4 8 10.7 12.3 10 13z\"></path>\n\t\t\t</svg>\n\t\t</button>\n\t\t<div\n\t\t\tclass=\"cds--tab--list\"\n\t\t\trole=\"tablist\"\n\t\t\t[attr.aria-label]=\"ariaLabel || translations.HEADER_ARIA_LABEL\"\n\t\t\t[attr.aria-labelledby]=\"ariaLabelledby || null\"\n\t\t\t(scroll)=\"handleScroll()\"\n\t\t\t#tabList>\n\t\t\t<ng-container [ngTemplateOutlet]=\"contentBefore\" />\n\t\t\t<ng-content />\n\t\t\t<ng-container [ngTemplateOutlet]=\"contentAfter\" />\n\t\t</div>\n\t\t<button\n\t\t\ttype=\"button\"\n\t\t\tclass=\"cds--tab--overflow-nav-button cds--tab--overflow-nav-button--next\"\n\t\t\t[ngClass]=\"{\n\t\t\t\t'cds--tab--overflow-nav-button--hidden': rightOverflowNavButtonHidden\n\t\t\t}\"\n\t\t\t[attr.aria-hidden]=\"rightOverflowNavButtonHidden\"\n\t\t\t[attr.tabindex]=\"-1\"\n\t\t\t[attr.aria-label]=\"translations.BUTTON_ARIA_RIGHT\"\n\t\t\t[attr.title]=\"translations.BUTTON_ARIA_RIGHT\"\n\t\t\t(click)=\"handleOverflowNavClick(1, tabHeaderQuery.length)\"\n\t\t\t(pointerdown)=\"handleOverflowNavMouseDown(1)\"\n\t\t\t(pointerup)=\"handleOverflowNavMouseUp()\"\n\t\t\t(pointerleave)=\"handleOverflowNavMouseUp()\"\n\t\t\t(pointerout)=\"handleOverflowNavMouseUp()\"\n\t\t\t(pointercancel)=\"handleOverflowNavMouseUp()\">\n\t\t\t<svg\n\t\t\t\tfocusable=\"false\"\n\t\t\t\tpreserveAspectRatio=\"xMidYMid meet\"\n\t\t\t\txmlns=\"http://www.w3.org/2000/svg\"\n\t\t\t\tfill=\"currentColor\"\n\t\t\t\twidth=\"16\"\n\t\t\t\theight=\"16\"\n\t\t\t\tviewBox=\"0 0 16 16\"\n\t\t\t\taria-hidden=\"true\">\n\t\t\t\t<path d=\"M11 8L6 13 5.3 12.3 9.6 8 5.3 3.7 6 3z\"></path>\n\t\t\t</svg>\n\t\t</button>\n\t`,\n\tproviders: [EventService],\n\timports: [NgClass, NgTemplateOutlet]\n})\nexport class TabHeaderGroup extends BaseTabHeader implements AfterContentInit, OnChanges, OnInit, OnDestroy {\n\n\t@HostBinding(\"class.cds--tabs--full-width\") get fullWidthClass() {\n\t\treturn this.distributeWidth;\n\t}\n\n\t/**\n\t * We use taller rows when any header has a secondary label.\n\t */\n\t@HostBinding(\"class.cds--tabs--tall\") get tallClass(): boolean {\n\t\treturn this.hasSecondaryLabelTabs;\n\t}\n\n\tget hasSecondaryLabelTabs(): boolean {\n\t\tif (!this.tabHeaderQuery || this.type !== \"contained\") {\n\t\t\treturn false;\n\t\t}\n\t\treturn this.tabHeaderQuery.toArray().some(\n\t\t\th =>\n\t\t\t\th.secondaryLabel != null &&\n\t\t\t\tString(h.secondaryLabel).trim() !== \"\"\n\t\t);\n\t}\n\n\t/**\n\t * True when `fullWidth` applies (contained, fewer than 9 headers).\n\t */\n\tget distributeWidth(): boolean {\n\t\treturn (\n\t\t\tthis.fullWidth &&\n\t\t\tthis.type === \"contained\" &&\n\t\t\t(this.tabHeaderQuery ? this.tabHeaderQuery.length < 9 : false)\n\t\t);\n\t}\n\t/**\n\t * i18n strings for overflow controls and the tab list `aria-label` fallback.\n\t */\n\t@Input() translations = this.i18n.get().TABS;\n\n\t/**\n\t * When `true`, sets each tab panel `tabindex` to `-1` for navigation-style usage.\n\t */\n\t@Input() isNavigation = false;\n\n\t/**\n\t * Emits when a tab close control is used (with `dismissable`).\n\t * The emitted value is the tab index.\n\t */\n\t@Output() tabClose: EventEmitter<number> = new EventEmitter<number>();\n\n\t/**\n\t * Projected tab headers (`TabHeaderBase`: directive or `cds-tab-header`).\n\t */\n\t@ContentChildren(TabHeaderBase) tabHeaderQuery: QueryList<TabHeaderBase>;\n\n\t@ViewChild(\"tabList\", { static: true }) headerContainer;\n\tselectedSubscriptionTracker = new Subscription();\n\tcloseSubscriptionTracker = new Subscription();\n\n\t/**\n\t * Index of the selected tab for keyboard logic.\n\t */\n\tcurrentSelectedTab = 0;\n\n\t/**\n\t * Focused tab index when `followFocus` is false (manual activation).\n\t */\n\tactiveIndex: number | null = null;\n\n\tconstructor(\n\t\tprotected elementRef: ElementRef,\n\t\tprotected changeDetectorRef: ChangeDetectorRef,\n\t\tprotected eventService: EventService,\n\t\tprotected renderer: Renderer2,\n\t\tprotected i18n: I18n\n\t) {\n\t\tsuper(elementRef, changeDetectorRef, eventService, renderer);\n\t}\n\n\t@HostListener(\"keydown\", [\"$event\"])\n\tkeyboardInput(event) {\n\t\tconst tabHeadersArray = this.tabHeaderQuery.toArray();\n\n\t\tif (event.key === \"ArrowRight\") {\n\t\t\tif (this.currentSelectedTab < tabHeadersArray.length - 1) {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tif (this.followFocus && !tabHeadersArray[this.currentSelectedTab + 1].disabled) {\n\t\t\t\t\ttabHeadersArray[this.currentSelectedTab + 1].selectTab();\n\t\t\t\t} else {\n\t\t\t\t\ttabHeadersArray[this.currentSelectedTab + 1].focus();\n\t\t\t\t\tthis.currentSelectedTab++;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tif (this.followFocus && !tabHeadersArray[0].disabled) {\n\t\t\t\t\ttabHeadersArray[0].selectTab();\n\t\t\t\t} else {\n\t\t\t\t\ttabHeadersArray[0].focus();\n\t\t\t\t\tthis.currentSelectedTab = 0;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif (event.key === \"ArrowLeft\") {\n\t\t\tif (this.currentSelectedTab > 0) {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tif (this.followFocus && !tabHeadersArray[this.currentSelectedTab - 1].disabled) {\n\t\t\t\t\ttabHeadersArray[this.currentSelectedTab - 1].selectTab();\n\t\t\t\t} else {\n\t\t\t\t\ttabHeadersArray[this.currentSelectedTab - 1].focus();\n\t\t\t\t\tthis.currentSelectedTab--;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tif (this.followFocus && !tabHeadersArray[tabHeadersArray.length - 1].disabled) {\n\t\t\t\t\ttabHeadersArray[tabHeadersArray.length - 1].selectTab();\n\t\t\t\t} else {\n\t\t\t\t\ttabHeadersArray[tabHeadersArray.length - 1].focus();\n\t\t\t\t\tthis.currentSelectedTab = tabHeadersArray.length - 1;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif (event.key === \"Home\") {\n\t\t\tevent.preventDefault();\n\t\t\tif (this.followFocus && !tabHeadersArray[0].disabled) {\n\t\t\t\ttabHeadersArray[0].selectTab();\n\t\t\t} else {\n\t\t\t\ttabHeadersArray[0].focus();\n\t\t\t\tthis.currentSelectedTab = 0;\n\t\t\t}\n\t\t}\n\n\t\tif (event.key === \"End\") {\n\t\t\tevent.preventDefault();\n\t\t\tif (this.followFocus && !tabHeadersArray[tabHeadersArray.length - 1].disabled) {\n\t\t\t\ttabHeadersArray[tabHeadersArray.length - 1].selectTab();\n\t\t\t} else {\n\t\t\t\ttabHeadersArray[tabHeadersArray.length - 1].focus();\n\t\t\t\tthis.currentSelectedTab = tabHeadersArray.length - 1;\n\t\t\t}\n\t\t}\n\n\t\tif ((event.key === \" \") && !this.followFocus) {\n\t\t\ttabHeadersArray[this.currentSelectedTab].selectTab();\n\t\t}\n\t}\n\n\tngOnInit() {\n\t\tthis.eventService.on(window as any, \"resize\", () => this.handleScroll());\n\t}\n\n\tngAfterContentInit() {\n\t\t// Reallocate trackers because subscriptions are permanently closed after unsubscribe\n\t\tthis.selectedSubscriptionTracker.unsubscribe();\n\t\tthis.closeSubscriptionTracker.unsubscribe();\n\t\tthis.selectedSubscriptionTracker = new Subscription();\n\t\tthis.closeSubscriptionTracker = new Subscription();\n\n\t\tif (this.tabHeaderQuery) {\n\t\t\tthis.tabHeaderQuery.toArray()\n\t\t\t\t.forEach(tabHeader => {\n\t\t\t\t\ttabHeader.cacheActive = this.cacheActive;\n\t\t\t\t\ttabHeader.dismissable = this.dismissable;\n\t\t\t\t\ttabHeader.paneTabIndex = this.isNavigation ? null : 0;\n\t\t\t\t});\n\t\t}\n\n\t\tconst headersArray = this.tabHeaderQuery.toArray();\n\n\t\theadersArray.forEach(tabHeader => {\n\t\t\tthis.selectedSubscriptionTracker.add(\n\t\t\t\ttabHeader.selected.subscribe(() => {\n\t\t\t\t\tthis.currentSelectedTab = this.tabHeaderQuery.toArray().indexOf(tabHeader);\n\t\t\t\t\t// The Filter takes the current selected tab out, then all other headers are\n\t\t\t\t\t// deactivated and their associated pane references are also deactivated.\n\t\t\t\t\tthis.tabHeaderQuery.toArray().filter(header => header !== tabHeader)\n\t\t\t\t\t\t.forEach(filteredHeader => {\n\t\t\t\t\t\t\tfilteredHeader.active = false;\n\t\t\t\t\t\t\tif (filteredHeader.paneReference) {\n\t\t\t\t\t\t\t\tfilteredHeader.paneReference.active = false;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t\t})\n\t\t\t);\n\n\t\t\tthis.closeSubscriptionTracker.add(\n\t\t\t\ttabHeader.tabClose.subscribe(() => {\n\t\t\t\t\tconst index = this.tabHeaderQuery.toArray().indexOf(tabHeader);\n\t\t\t\t\tthis.tabClose.emit(index);\n\t\t\t\t})\n\t\t\t);\n\t\t});\n\n\t\tthis.setFirstTab();\n\t}\n\n\tngOnDestroy() {\n\t\tthis.selectedSubscriptionTracker.unsubscribe();\n\t\tthis.closeSubscriptionTracker.unsubscribe();\n\t\tclearTimeout(this.scrollDebounceTimer);\n\t}\n\n\tngOnChanges(changes: SimpleChanges) {\n\t\tif (this.tabHeaderQuery) {\n\t\t\tif (changes.cacheActive) {\n\t\t\t\tthis.tabHeaderQuery.toArray().forEach(tabHeader => tabHeader.cacheActive = this.cacheActive);\n\t\t\t}\n\n\t\t\tif (changes.dismissable) {\n\t\t\t\tthis.tabHeaderQuery.toArray().forEach(tabHeader => tabHeader.dismissable = this.dismissable);\n\t\t\t}\n\n\t\t\tif (changes.isNavigation) {\n\t\t\t\tthis.tabHeaderQuery.toArray()\n\t\t\t\t\t.forEach(tabHeader => tabHeader.paneTabIndex = this.isNavigation ? null : 0);\n\t\t\t}\n\t\t}\n\t}\n\n\tgetSelectedTab(): any {\n\t\tconst selected = this.tabHeaderQuery.toArray()[this.currentSelectedTab];\n\t\tif (selected) {\n\t\t\treturn selected;\n\t\t}\n\t\treturn {\n\t\t\theadingIsTemplate: false,\n\t\t\theading: \"\"\n\t\t};\n\t}\n\n\t/**\n\t * Determines which `Tab` is initially selected.\n\t */\n\tprotected setFirstTab() {\n\t\tsetTimeout(() => {\n\t\t\tconst headers = this.tabHeaderQuery.toArray();\n\t\t\tlet selectedHeader = headers.find(h => h.active || h.paneReference?.active);\n\t\t\tif (!selectedHeader && headers.length > 0) {\n\t\t\t\tselectedHeader = headers[0];\n\t\t\t}\n\t\t\tif (selectedHeader) {\n\t\t\t\tselectedHeader.selectTab();\n\t\t\t\tthis.activeIndex = this.currentSelectedTab;\n\t\t\t\tthis.changeDetectorRef.markForCheck();\n\t\t\t}\n\t\t});\n\t}\n}\n","import {\r\n\tAfterContentInit,\r\n\tChangeDetectorRef,\r\n\tComponent,\r\n\tContentChildren,\r\n\tElementRef,\r\n\tEventEmitter,\r\n\tHostBinding,\r\n\tHostListener,\r\n\tInput,\r\n\tOnChanges,\r\n\tOnDestroy,\r\n\tOnInit,\r\n\tOutput,\r\n\tQueryList,\r\n\tRenderer2,\r\n\tSimpleChanges,\r\n\tViewChild\r\n} from \"@angular/core\";\r\nimport { Subscription } from \"rxjs\";\r\nimport { EventService } from \"carbon-components-angular/utils\";\r\nimport { I18n } from \"carbon-components-angular/i18n\";\r\n\r\nimport { BaseTabHeader } from \"./base-tab-header.component\";\r\nimport { TabHeaderBase } from \"./tab-header.directive\";\r\nimport { NgTemplateOutlet } from \"@angular/common\";\r\n\r\nconst VERTICAL_TAB_HEIGHT = 64;\r\n\r\n/**\r\n * Vertical tab header group: same children as `cds-tab-header-group`, with\r\n * up/down (and Home/End) keys, gradient overflow, and always-contained type.\r\n *\r\n *\r\n * ```html\r\n * <cds-tabs-vertical-grouped height=\"400px\">\r\n * <cds-tab-header-group-vertical>\r\n * <cds-tab-header [paneReference]=\"a\">A</cds-tab-header>\r\n * <cds-tab-header [paneReference]=\"b\">B</cds-tab-header>\r\n * </cds-tab-header-group-vertical>\r\n * <cds-tab #a>...</cds-tab>\r\n * <cds-tab #b>...</cds-tab>\r\n * </cds-tabs-vertical-grouped>\r\n * ```\r\n */\r\n@Component({\n\tselector: \"cds-tab-header-group-vertical, ibm-tab-header-group-vertical\",\n\ttemplate: `\r\n\t\t@if (isOverflowingTop) {\r\n\t\t\t<div class=\"cds--tab--list-gradient_top\"></div>\r\n\t\t}\r\n\t\t<div\r\n\t\t\t#tabList\r\n\t\t\tclass=\"cds--tab--list\"\r\n\t\t\trole=\"tablist\"\r\n\t\t\t[attr.aria-label]=\"ariaLabel || translations.HEADER_ARIA_LABEL\"\r\n\t\t\t[attr.aria-labelledby]=\"ariaLabelledby || null\">\r\n\t\t\t<ng-container [ngTemplateOutlet]=\"contentBefore\"></ng-container>\r\n\t\t\t<ng-content></ng-content>\r\n\t\t\t<ng-container [ngTemplateOutlet]=\"contentAfter\"></ng-container>\r\n\t\t</div>\r\n\t\t@if (isOverflowingBottom) {\r\n\t\t\t<div class=\"cds--tab--list-gradient_bottom\"></div>\r\n\t\t}\r\n\t`,\n\timports: [NgTemplateOutlet]\n})\r\nexport class TabHeaderGroupVertical\r\n\textends BaseTabHeader\r\n\timplements AfterContentInit, OnChanges, OnInit, OnDestroy {\r\n\t/**\r\n\t * i18n strings for the tab list `aria-label` fallback.\r\n\t */\r\n\t@Input() translations = this.i18n.get().TABS;\r\n\r\n\t/**\r\n\t * When `true`, sets each tab panel `tabindex` to `-1` for navigation-style usage.\r\n\t */\r\n\t@Input() isNavigation = false;\r\n\r\n\t/**\r\n\t * Fires with tab index when a close control is used (with `dismissable`).\r\n\t */\r\n\t@Output() tabClose = new EventEmitter<number>();\r\n\r\n\t/**\r\n\t * Set to 'true' to have tabs automatically activated and have their content displayed when they receive focus.\r\n\t */\r\n\t@Input() followFocus = true;\r\n\r\n\t/**\r\n\t * ContentChildren of all the tab headers (both directive and component\r\n\t * forms — see `TabHeaderBase`).\r\n\t */\r\n\t@ContentChildren(TabHeaderBase) tabHeaderQuery: QueryList<TabHeaderBase>;\r\n\r\n\t@ViewChild(\"tabList\", { static: true }) headerContainer: ElementRef<HTMLElement>;\r\n\r\n\t@HostBinding(\"class.cds--tabs--vertical\") verticalClass = true;\r\n\r\n\t/**\r\n\t * Index of the selected tab for keyboard logic\r\n\t */\r\n\tcurrentSelectedTab = 0;\r\n\r\n\t/**\r\n\t * Focused tab index when `followFocus` is false (manual activation).\r\n\t */\r\n\tactiveIndex: number | null = null;\r\n\r\n\tisOverflowingTop = false;\r\n\tisOverflowingBottom = false;\r\n\r\n\t/**\r\n\t * We use taller rows when any header has a secondary label.\r\n\t */\r\n\t@HostBinding(\"class.cds--tabs--tall\") get tallClass(): boolean {\r\n\t\treturn this.hasSecondaryLabelTabs;\r\n\t}\r\n\r\n\tget hasSecondaryLabelTabs(): boolean {\r\n\t\tif (!this.tabHeaderQuery) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\t\treturn this.tabHeaderQuery\r\n\t\t\t.toArray()\r\n\t\t\t.some((h) => h.secondaryLabel != null && h.secondaryLabel !== \"\");\r\n\t}\r\n\r\n\tprivate selectedSubscriptionTracker = new Subscription();\r\n\tprivate closeSubscriptionTracker = new Subscription();\r\n\r\n\tprivate resizeObserver: ResizeObserver | null = null;\r\n\tprivate boundListScrollHandler: () => void;\r\n\r\n\tconstructor(\r\n\t\tprotected elementRef: ElementRef,\r\n\t\tprotected changeDetectorRef: ChangeDetectorRef,\r\n\t\tprotected eventService: EventService,\r\n\t\tprotected renderer: Renderer2,\r\n\t\tprotected i18n: I18n\r\n\t) {\r\n\t\tsuper(elementRef, changeDetectorRef, eventService, renderer);\r\n\t\tthis.type = \"contained\";\r\n\t\t// Cache a stable reference for add/removeEventListener.\r\n\t\tthis.boundListScrollHandler = () => this.updateOverflowState();\r\n\t}\r\n\r\n\t@HostListener(\"keydown\", [\"$event\"])\r\n\tkeyboardInput(event: KeyboardEvent) {\r\n\t\tif (!this.tabHeaderQuery) {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tconst tabHeadersArray = this.tabHeaderQuery.toArray();\r\n\t\tconst enabledHeaders = tabHeadersArray.filter((h) => !h.disabled);\r\n\t\tif (enabledHeaders.length === 0) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tconst referenceIndex = this.followFocus\r\n\t\t\t? this.currentSelectedTab\r\n\t\t\t: (this.activeIndex !== null ? this.activeIndex : this.currentSelectedTab);\r\n\t\tconst currentEnabledIndex = Math.max(0, enabledHeaders.indexOf(tabHeadersArray[referenceIndex]));\r\n\r\n\t\tlet nextEnabledIndex = currentEnabledIndex;\r\n\t\tlet handled = false;\r\n\r\n\t\tif (event.key === \"ArrowDown\") {\r\n\t\t\tnextEnabledIndex = (currentEnabledIndex + 1) % enabledHeaders.length;\r\n\t\t\thandled = true;\r\n\t\t} else if (event.key === \"ArrowUp\") {\r\n\t\t\tnextEnabledIndex = (enabledHeaders.length + currentEnabledIndex - 1) % enabledHeaders.length;\r\n\t\t\thandled = true;\r\n\t\t} else if (event.key === \"Home\") {\r\n\t\t\tnextEnabledIndex = 0;\r\n\t\t\thandled = true;\r\n\t\t} else if (event.key === \"End\") {\r\n\t\t\tnextEnabledIndex = enabledHeaders.length - 1;\r\n\t\t\thandled = true;\r\n\t\t}\r\n\r\n\t\tif (handled) {\r\n\t\t\tevent.preventDefault();\r\n\t\t\tconst nextHeader = enabledHeaders[nextEnabledIndex];\r\n\t\t\tconst nextIndex = tabHeadersArray.indexOf(nextHeader);\r\n\r\n\t\t\tif (this.followFocus) {\r\n\t\t\t\tnextHeader.selectTab();\r\n\t\t\t\tthis.currentSelectedTab = nextIndex;\r\n\t\t\t} else {\r\n\t\t\t\tnextHeader.focus();\r\n\t\t\t\tthis.activeIndex = nextIndex;\r\n\t\t\t}\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif ((event.key === \" \" || event.key === \"Spacebar\") && !this.followFocus) {\r\n\t\t\tconst focusIndex = this.activeIndex !== null ? this.activeIndex : this.currentSelectedTab;\r\n\t\t\ttabHeadersArray[focusIndex].selectTab();\r\n\t\t\tthis.currentSelectedTab = focusIndex;\r\n\t\t}\r\n\t}\r\n\r\n\t@HostListener(\"blur\", [\"$event\"])\r\n\thandleBlur(event: FocusEvent) {\r\n\t\tconst relatedTarget = event.relatedTarget as Node | null;\r\n\t\tconst container = this.headerContainer?.nativeElement;\r\n\t\tif (container && relatedTarget && container.contains(relatedTarget)) {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tif (!this.followFocus) {\r\n\t\t\tthis.activeIndex = this.currentSelectedTab;\r\n\t\t}\r\n\t}\r\n\r\n\tngOnInit() {\r\n\t\tthis.resizeObserver = new ResizeObserver(() => {\r\n\t\t\tthis.updateOverflowState();\r\n\t\t\tthis.changeDetectorRef.detectChanges();\r\n\t\t});\r\n\t\tthis.resizeObserver.observe(this.headerContainer.nativeElement);\r\n\t\tthis.headerContainer.nativeElement.addEventListener(\r\n\t\t\t\"scroll\",\r\n\t\t\tthis.boundListScrollHandler\r\n\t\t);\r\n\t}\r\n\r\n\tngOnDestroy() {\r\n\t\tthis.selectedSubscriptionTracker.unsubscribe();\r\n\t\tthis.closeSubscriptionTracker.unsubscribe();\r\n\t\tthis.resizeObserver?.unobserve(this.headerContainer.nativeElement);\r\n\t\tthis.resizeObserver = null;\r\n\t\tthis.headerContainer.nativeElement.removeEventListener(\r\n\t\t\t\"scroll\",\r\n\t\t\tthis.boundListScrollHandler\r\n\t\t);\r\n\t}\r\n\r\n\tngAfterContentInit() {\r\n\t\t// Reallocate trackers because subscriptions are permanently closed after unsubscribe\r\n\t\tthis.selectedSubscriptionTracker.unsubscribe();\r\n\t\tthis.closeSubscriptionTracker.unsubscribe();\r\n\t\tthis.selectedSubscriptionTracker = new Subscription();\r\n\t\tthis.closeSubscriptionTracker = new Subscription();\r\n\r\n\t\tthis.applyHeaderInputs();\r\n\t\tthis.wireSubscriptions();\r\n\r\n\t\tthis.tabHeaderQuery.changes.subscribe(() => {\r\n\t\t\t// Re-wire when the projected list changes.\r\n\t\t\tthis.selectedSubscriptionTracker.unsubscribe();\r\n\t\t\tthis.closeSubscriptionTracker.unsubscribe();\r\n\t\t\tthis.selectedSubscriptionTracker = new Subscription();\r\n\t\t\tthis.closeSubscriptionTracker = new Subscription();\r\n\t\t\tthis.applyHeaderInputs();\r\n\t\t\tthis.wireSubscriptions();\r\n\t\t\tthis.changeDetectorRef.markForCheck();\r\n\t\t});\r\n\r\n\t\tsetTimeout(() => {\r\n\t\t\tconst headers = this.tabHeaderQuery.toArray();\r\n\t\t\tconst activeIdx = headers.findIndex(h => h.active || h.paneReference?.active);\r\n\t\t\tconst initialIndex = activeIdx >= 0 ? activeIdx : 0;\r\n\t\t\tthis.currentSelectedTab = initialIndex;\r\n\t\t\tthis.activeIndex = initialIndex;\r\n\t\t\theaders[initialIndex]?.selectTab();\r\n\t\t\tthis.updateOverflowState();\r\n\t\t});\r\n\t}\r\n\r\n\tngOnChanges(changes: SimpleChanges) {\r\n\t\tif (this.tabHeaderQuery) {\r\n\t\t\tif (changes.cacheActive) {\r\n\t\t\t\tthis.tabHeaderQuery.toArray().forEach(h => h.cacheActive = this.cacheActive);\r\n\t\t\t}\r\n\t\t\tif (changes.dismissable) {\r\n\t\t\t\tthis.tabHeaderQuery.toArray().forEach(h => h.dismissable = this.dismissable);\r\n\t\t\t}\r\n\t\t\tif (changes.isNavigation) {\r\n\t\t\t\tthis.tabHeaderQuery.toArray()\r\n\t\t\t\t\t.forEach(h => h.paneTabIndex = this.isNavigation ? null : 0);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tprotected updateOverflowState() {\r\n\t\tconst element = this.headerContainer?.nativeElement;\r\n\t\tif (!element) {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tconst halfTabHeight = VERTICAL_TAB_HEIGHT / 2;\r\n\t\tthis.isOverflowingBottom =\r\n\t\t\telement.scrollTop + element.clientHeight + halfTabHeight <= element.scrollHeight;\r\n\t\tthis.isOverflowingTop = element.scrollTop > halfTabHeight;\r\n\t\tthis.changeDetectorRef.markForCheck();\r\n\t}\r\n\r\n\tprotected scrollSelectedTabIntoView() {\r\n\t\tif (!this.scrollIntoView) {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tconst container = this.headerContainer?.nativeElement;\r\n\t\tif (!container) {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tcontainer.scrollTo({\r\n\t\t\ttop: Math.max(0, (this.currentSelectedTab - 1) * VERTICAL_TAB_HEIGHT),\r\n\t\t\tbehavior: \"smooth\"\r\n\t\t});\r\n\t}\r\n\r\n\tprivate applyHeaderInputs() {\r\n\t\tthis.tabHeaderQuery.toArray().forEach((header) => {\r\n\t\t\theader.cacheActive = this.cacheActive;\r\n\t\t\theader.dismissable = this.dismissable;\r\n\t\t\theader.paneTabIndex = this.isNavigation ? null : 0;\r\n\t\t});\r\n\t}\r\n\r\n\tprivate wireSubscriptions() {\r\n\t\tthis.tabHeaderQuery.toArray().forEach((header) => {\r\n\t\t\tthis.selectedSubscriptionTracker.add(\r\n\t\t\t\theader.selected.subscribe(() => {\r\n\t\t\t\t\tthis.currentSelectedTab = this.tabHeaderQuery\r\n\t\t\t\t\t\t.toArray()\r\n\t\t\t\t\t\t.indexOf(header);\r\n\t\t\t\t\tthis.tabHeaderQuery\r\n\t\t\t\t\t\t.toArray()\r\n\t\t\t\t\t\t.filter((h) => h !== header)\r\n\t\t\t\t\t\t.forEach((other) => {\r\n\t\t\t\t\t\t\tother.active = false;\r\n\t\t\t\t\t\t\tif (other.paneReference) {\r\n\t\t\t\t\t\t\t\tother.paneReference.active = false;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\tthis.scrollSelectedTabIntoView();\r\n\t\t\t\t})\r\n\t\t\t);\r\n\r\n\t\t\tthis.closeSubscriptionTracker.add(\r\n\t\t\t\theader.tabClose.subscribe(() => {\r\n\t\t\t\t\tconst index = this.tabHeaderQuery.toArray().indexOf(header);\r\n\t\t\t\t\tthis.tabClose.emit(index);\r\n\t\t\t\t})\r\n\t\t\t);\r\n\t\t});\r\n\t}\r\n}\r\n","import {\r\n\tAfterViewInit,\r\n\tComponent,\r\n\tElementRef,\r\n\tforwardRef,\r\n\tHostBinding,\r\n\tInput,\r\n\tViewChild\r\n} from \"@angular/core\";\r\n\r\nimport { TabHeaderBase } from \"./tab-header.directive\";\r\n\r\nimport { Tooltip } from \"carbon-components-angular/tooltip\";\r\nimport { NgClass, NgTemplateOutlet } from \"@angular/common\";\r\n\r\n/**\r\n * Tab header with template for label, optional icon, secondary label, badge, and dismissable close.\r\n *\r\n * ```html\r\n * <cds-tab-header-group>\r\n * <cds-tab-header [paneReference]=\"c1\">Dashboard</cds-tab-header>\r\n * <cds-tab-header [paneReference]=\"c2\" [icon]=\"iconTpl\" secondaryLabel=\"(1/4)\">\r\n * Monitoring\r\n * </cds-tab-header>\r\n * </cds-tab-header-group>\r\n * <cds-tab #c1>...</cds-tab>\r\n * <cds-tab #c2>...</cds-tab>\r\n * ```\r\n */\r\n@Component({\n\tselector: \"cds-tab-header, ibm-tab-header\",\n\tproviders: [\n\t\t{ provide: TabHeaderBase, useExisting: forwardRef(() => TabHeaderComponent) }\n\t],\n\ttemplate: `\r\n\t\t@if (iconOnly) {\r\n\t\t\t<cds-tooltip\r\n\t\t\t\talign=\"bottom\"\r\n\t\t\t\t[autoAlign]=\"true\"\r\n\t\t\t\tclass=\"cds--icon-tooltip\"\r\n\t\t\t\t[description]=\"iconLabel\"\r\n\t\t\t\t[enterDelayMs]=\"enterDelayMs\"\r\n\t\t\t\t[leaveDelayMs]=\"leaveDelayMs\"\r\n\t\t\t\t[isOpen]=\"isTooltipOpen\"\r\n\t\t\t\t[disabled]=\"disabled\">\r\n\t\t\t\t<ng-container *ngTemplateOutlet=\"tabButtonTemplate\"></ng-container>\r\n\t\t\t</cds-tooltip>\r\n\t\t} @else {\r\n\t\t\t<ng-container *ngTemplateOutlet=\"tabButtonTemplate\"></ng-container>\r\n\t\t}\r\n\r\n\t\t<ng-template #tabButtonTemplate>\r\n\t\t\t<button\r\n\t\t\t\t#tabButton\r\n\t\t\t\ttype=\"button\"\r\n\t\t\t\trole=\"tab\"\r\n\t\t\t\tclass=\"cds--tabs__nav-item cds--tabs__nav-link\"\r\n\t\t\t\t[ngClass]=\"{\r\n\t\t\t\t\t'cds--tabs__nav-item--selected': active,\r\n\t\t\t\t\t'cds--tabs__nav-item--disabled': disabled,\r\n\t\t\t\t\t'cds--tabs__nav-item--icon-only': iconOnly,\r\n\t\t\t\t\t'cds--tabs__nav-item--icon-only__20': iconOnly && iconSize === 'lg'\r\n\t\t\t\t}\"\r\n\t\t\t\t[attr.aria-selected]=\"active\"\r\n\t\t\t\t[attr.aria-disabled]=\"disabled\"\r\n\t\t\t\t[attr.aria-controls]=\"paneReference?.id || null\"\r\n\t\t\t\t[attr.aria-label]=\"iconOnly ? iconLabel : null\"\r\n\t\t\t\t[attr.tabindex]=\"active ? 0 : -1\"\r\n\t\t\t\t[attr.title]=\"resolvedTitle\"\r\n\t\t\t\t[disabled]=\"disabled\"\r\n\t\t\t\t(click)=\"onTabButtonClick()\"\r\n\t\t\t\t(keydown)=\"onTabButtonKeyDown($event)\">\r\n\t\t\t\t@if (iconOnly) {\r\n\t\t\t\t\t<ng-container [ngTemplateOutlet]=\"icon\"></ng-container>\r\n\t\t\t\t\t@if (!disabled && badgeIndicator) {\r\n\t\t\t\t\t\t<span\r\n\t\t\t\t\t\t\tclass=\"cds--badge-indicator\"\r\n\t\t\t\t\t\t\taria-hidden=\"true\">\r\n\t\t\t\t\t\t</span>\r\n\t\t\t\t\t}\r\n\t\t\t\t} @else {\r\n\t\t\t\t\t<div class=\"cds--tabs__nav-item-label-wrapper\">\r\n\t\t\t\t\t\t@if (dismissable && icon) {\r\n\t\t\t\t\t\t\t<div class=\"cds--tabs__nav-item--icon-left\">\r\n\t\t\t\t\t\t\t\t<ng-container [ngTemplateOutlet]=\"icon\"></ng-container>\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t<span class=\"cds--tabs__nav-item-label\">\r\n\t\t\t\t\t\t\t<ng-content></ng-content>\r\n\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t@if (!dismissable && icon) {\r\n\t\t\t\t\t\t\t<div class=\"cds--tabs__nav-item--icon\">\r\n\t\t\t\t\t\t\t\t<ng-container [ngTemplateOutlet]=\"icon\"></ng-container>\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t@if (secondaryLabel) {\r\n\t\t\t\t\t\t<div\r\n\t\t\t\t\t\t\tclass=\"cds--tabs__nav-item-secondary-label\"\r\n\t\t\t\t\t\t\t[attr.title]=\"secondaryLabel\">\r\n\t\t\t\t\t\t\t{{ secondaryLabel }}\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t</button>\r\n\t\t</ng-template>\r\n\t\t@if (dismissable) {\r\n\t\t\t<div class=\"cds--tabs__nav-item--close\">\r\n\t\t\t\t<button\r\n\t\t\t\t\ttype=\"button\"\r\n\t\t\t\t\tclass=\"cds--tabs__nav-item--close-icon\"\r\n\t\t\t\t\t[attr.tabindex]=\"-1\"\r\n\t\t\t\t\t[attr.aria-disabled]=\"disabled\"\r\n\t\t\t\t\t[attr.aria-hidden]=\"!(active && !disabled)\"\r\n\t\t\t\t\t[ngClass]=\"{\r\n\t\t\t\t\t\t'cds--tabs__nav-item--close-icon--selected': active,\r\n\t\t\t\t\t\t'cds--tabs__nav-item--close-icon--disabled': disabled\r\n\t\t\t\t\t}\"\r\n\t\t\t\t\t[disabled]=\"disabled\"\r\n\t\t\t\t\t[attr.title]=\"closeButtonTitle\"\r\n\t\t\t\t\t(click)=\"onClose($event)\">\r\n\t\t\t\t\t<svg\r\n\t\t\t\t\t\tfocusable=\"false\"\r\n\t\t\t\t\t\tpreserveAspectRatio=\"xMidYMid meet\"\r\n\t\t\t\t\t\txmlns=\"http://www.w3.org/2000/svg\"\r\n\t\t\t\t\t\tfill=\"currentColor\"\r\n\t\t\t\t\t\twidth=\"16\"\r\n\t\t\t\t\t\theight=\"16\"\r\n\t\t\t\t\t\tviewBox=\"0 0 32 32\"\r\n\t\t\t\t\t\t[attr.aria-label]=\"closeButtonAriaLabel\"\r\n\t\t\t\t\t\t[attr.aria-hidden]=\"!(active && !disabled)\">\r\n\t\t\t\t\t\t<path d=\"M17.4141 16L24 9.4141 22.5859 8 16 14.5859 9.4143 8 8 9.4141 14.5859 16 8 22.5859 9.4143 24 16 17.4141 22.5859 24 24 22.5859 17.4141 16z\"></path>\r\n\t\t\t\t\t</svg>\r\n\t\t\t\t</button>\r\n\t\t\t</div>\r\n\t\t}\r\n\t`,\n\timports: [Tooltip, NgClass, NgTemplateOutlet]\n})\r\nexport class TabHeaderComponent extends TabHeaderBase implements AfterViewInit {\r\n\t/**\r\n\t * Icon-only tab: set `icon` and `iconLabel`.\r\n\t */\r\n\t@Input() iconOnly = false;\r\n\t/**\r\n\t * Icon-only tabs: accessible name (`aria-label` / `title`).\r\n\t */\r\n\t@Input() iconLabel: string;\r\n\t/**\r\n\t * **Preview**: Icon-only tabs — show a notification dot on the icon.\r\n\t */\r\n\t@Input() badgeIndicator = false;\r\n\t/**\r\n\t * Icon-only tabs: icon size `default` (16px) or `lg` (20px); usually set on the parent group.\r\n\t */\r\n\t@Input() iconSize: \"default\" | \"lg\" = \"default\";\r\n\t/**\r\n\t * `aria-label` for the dismissable close button.\r\n\t */\r\n\t@Input() closeButtonAriaLabel = \"Press delete to remove tab\";\r\n\t/**\r\n\t * Icon-only tabs: tooltip show delay (ms).\r\n\t */\r\n\t@Input() enterDelayMs: number;\r\n\t/**\r\n\t * Icon-only tabs: tooltip hide delay (ms).\r\n\t */\r\n\t@Input() leaveDelayMs: number;\r\n\t/**\r\n\t * Icon-only tabs: open the tooltip on first render.\r\n\t */\r\n\t@Input() isTooltipOpen = false;\r\n\r\n\t@HostBinding(\"style.display\") displayContents = \"contents\";\r\n\r\n\t@ViewChild(\"tabButton\") tabButton: ElementRef<HTMLButtonElement>;\r\n\r\n\tngAfterViewInit() {\r\n\t\t// Mirror the deprecated directive's title-fallback behavior, but read\r\n\t\t// from the inner rendered button rather than the `display: contents` host.\r\n\t\tsetTimeout(() => {\r\n\t\t\tif (!this.title && this.tabButton?.nativeElement) {\r\n\t\t\t\tconst text = this.tabButton.nativeElement.textContent?.trim();\r\n\t\t\t\tif (text) {\r\n\t\t\t\t\tthis.title = text;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\t/**\r\n\t * Focus the rendered tab button (not the host).\r\n\t */\r\n\tfocus() {\r\n\t\tthis.tabButton?.nativeElement?.focus();\r\n\t}\r\n\r\n\tonTabButtonClick() {\r\n\t\tthis.selectTab();\r\n\t}\r\n\r\n\t/**\r\n\t * `Delete` closes dismissable tabs when focus is on the tab.\r\n\t */\r\n\tonTabButtonKeyDown(event: KeyboardEvent) {\r\n\t\tif (this.dismissable && event.key === \"Delete\") {\r\n\t\t\tevent.stopPropagation();\r\n\t\t\tthis.tabClose.emit();\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Close button click; stops propagation so the tab does not activate.\r\n\t */\r\n\tonClose(event: Event) {\r\n\t\tevent.stopPropagation();\r\n\t\tif (this.disabled) {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tthis.tabClose.emit();\r\n\t}\r\n\r\n\tget resolvedTitle(): string | null {\r\n\t\tif (this.iconOnly) {\r\n\t\t\treturn this.iconLabel || null;\r\n\t\t}\r\n\t\treturn this.title || null;\r\n\t}\r\n\r\n\tget closeButtonTitle(): string {\r\n\t\tconst label = this.tabButton?.nativeElement?.textContent?.trim();\r\n\t\treturn label ? `Remove ${label} tab` : \"Remove tab\";\r\n\t}\r\n}\r\n","import {\n\tComponent,\n\tOnInit,\n\tInput,\n\tOutput,\n\tEventEmitter,\n\tHostBinding,\n\tTemplateRef\n} from \"@angular/core\";\nimport { NgStyle, NgTemplateOutlet } from \"@angular/common\";\n\n/**\n* The `Tab` component is a child of the `Tabs` component.\n* It represents one `Tab` item and its content within a panel of other `Tab` items.\n*\n* `Tab` takes a string or `TemplateRef` for the header, and any content for the body of the tab.\n* Disabled states should be handled by the application (ie. switch to the tab, but display some\n* indication as to _why_ the tab is disabled).\n*\n* When the tab is selected the `select` output will be triggered.\n* The `select` output will also be triggered for the active tab when the tabs are loaded or updated.\n*\n*\n* Tab with string header:\n *\n * ```html\n* <cds-tab heading='tab1'>\n* \ttab 1 content\n* </cds-tab>\n* ```\n*\n* Tab with custom header:\n*\n* ```html\n* <ng-template #tabHeading>\n* \t<svg cdsIcon=\"facebook\"\n* \t\tsize=\"sm\"\n* \t\tstyle=\"margin-right: 7px;\">\n* \t</svg>\n* \tHello Tab 1\n* </ng-template>\n* <cds-tabs>\n* \t<cds-tab [heading]=\"tabHeading\">\n* \t\tTab 1 content <svg cdsIcon=\"alert\" size=\"lg\"></svg>\n* \t</cds-tab>\n* \t<cds-tab heading='Tab2'>\n* \t\tTab 2 content\n* \t</cds-tab>\n* \t<cds-tab heading='Tab3'>\n* \t\tTab 3 content\n* \t</cds-tab>\n* </cds-tabs>\n * ```\n */\n@Component({\n\tselector: \"cds-tab, ibm-tab\",\n\ttemplate: `\n\t\t@if (shouldRender()) {\n\t\t\t@if (isTemplate(tabContent)) {\n\t\t\t\t<ng-template\n\t\t\t\t\t[ngTemplateOutlet]=\"tabContent\"\n\t\t\t\t\t[ngTemplateOutletContext]=\"{ $implicit: templateContext }\">\n\t\t\t\t</ng-template>\n\t\t\t}\n\t\t\t<ng-content></ng-content>\n\t\t}\n\t`,\n\timports: [NgStyle, NgTemplateOutlet]\n})\nexport class Tab implements OnInit {\n\t@HostBinding(\"attr.id\") get hostId() {\n\t\treturn this.id;\n\t}\n\t@HostBinding(\"attr.aria-labelledby\") get hostAriaLabelledby() {\n\t\treturn `${this.id}-header`;\n\t}\n\t@HostBinding(\"attr.tabindex\") get hostTabIndex() {\n\t\treturn this.tabIndex;\n\t}\n\t/**\n\t * `hidden` + display keep inactive panels out of layout; `null` display when active preserves grid/flex.\n\t */\n\t@HostBinding(\"attr.hidden\") get hostHidden() {\n\t\treturn this.active ? null : \"\";\n\t}\n\t@HostBinding(\"style.display\") get hostDisplay() {\n\t\treturn this.active ? \"block\" : \"none\";\n\t}\n\t/**\n\t * Set to `true` to have `Tab` items cached and not reloaded on tab switching.\n\t */\n\t@Input() set cacheActive(shouldCache: boolean) {\n\t\tthis._cacheActive = shouldCache;\n\t}\n\n\tget cacheActive() {\n\t\treturn this._cacheActive;\n\t}\n\tprivate static counter = 0;\n\t@HostBinding(\"class.cds--tab-content\") tabContentClass = true;\n\t@HostBinding(\"attr.role\") panelRole = \"tabpanel\";\n\t@HostBinding(\"attr.aria-live\") panelAriaLive = \"polite\";\n\t/**\n\t * Boolean value reflects if the `Tab` is using a custom template for the heading.\n\t * Default value is false.\n\t */\n\tpublic headingIsTemplate = false;\n\n\t/**\n\t * The `Tab`'s title to be displayed or custom template for the `Tab` heading.\n\t */\n\t@Input() heading: string | TemplateRef<any>;\n\t/**\n\t * Optional override for the `tabItem's`'s title attribute which is set in `TabHeaders`.\n\t * `tabItem`'s title attribute is automatically set to `heading`.\n\t *\n\t * You might want to use this if you set `heading` to a `TemplateRef`.\n\t */\n\t@Input() title: string;\n\t/**\n\t * Allows the user to pass data to the custom template for the `Tab` heading.\n\t */\n\t@Input() context: any;\n\t/**\n\t * Indicates whether the `Tab` is active/selected.\n\t * Determines whether its tab panel content is rendered.\n\t */\n\t@Input() active = false;\n\t/**\n\t * Indicates whether or not the `Tab` item is disabled.\n\t */\n\t@Input() disabled = false;\n\n\t/**\n\t * `tabindex` on the tab panel, the parent may set this to `null` when `isNavigation` is `true`.\n\t */\n\t@Input() tabIndex = 0;\n\t/**\n\t * Sets the id of the `Tab`. Will be uniquely generated if not provided.\n\t */\n\t@Input() id = `n-tab-${Tab.counter++}`;\n\t/**\n\t * Allows lifecycle hooks to be called on the rendered content.\n\t */\n\t@Input() tabContent: TemplateRef<any>;\n\t/**\n\t * Optional data for templates passed as implicit context.\n\t */\n\t@Input() templateContext: any;\n\t/**\n\t * Optional template that renders an icon inside the `Tab` header.\n\t * Useful for rendering a `cdsIcon` or any other icon next to the tab label.\n\t */\n\t@Input() icon: TemplateRef<any>;\n\t/**\n\t * Optional secondary label rendered below the primary tab label.\n\t * Only displayed when the parent `Tabs` is using `type=\"contained\"`.\n\t */\n\t@Input() secondaryLabel: string;\n\t/**\n\t * Sets the aria-label of the close button when the parent `Tabs` uses `dismissable`.\n\t */\n\t@Input() closeButtonAriaLabel = \"Press delete to remove tab\";\n\t/**\n\t * Icon-only tab: pair with `icon` and `iconLabel`.\n\t */\n\t@Input() iconOnly = false;\n\t/**\n\t * Icon-only tabs: accessible name and tooltip text.\n\t */\n\t@Input() iconLabel: string;\n\t/**\n\t * **Preview**: Icon-only tabs — show a notification dot on the icon.\n\t */\n\t@Input() badgeIndicator = false;\n\t/**\n\t * Icon-only tabs: tooltip show delay (ms).\n\t */\n\t@Input() enterDelayMs: number;\n\t/**\n\t * Icon-only tabs: tooltip hide delay (ms).\n\t */\n\t@Input() leaveDelayMs: number;\n\t/**\n\t * Icon-only tabs: open the tooltip on first render.\n\t */\n\t@Input() isTooltipOpen = false;\n\t/**\n\t * Emits when this tab becomes selected.\n\t */\n\t@Output() selected: EventEmitter<void> = new EventEmitter<void>();\n\t/**\n\t * Emits when this tab's close button is pressed.\n\t */\n\t@Output() tabClose: EventEmitter<void> = new EventEmitter<void>();\n\n\tprotected _cacheActive = false;\n\n\t/**\n\t * Checks for custom heading template on initialization and updates the value\n\t * of the boolean 'headingIsTemplate'.\n\t */\n\tngOnInit() {\n\t\tif (this.heading instanceof TemplateRef) {\n\t\t\tthis.headingIsTemplate = true;\n\t\t}\n\t}\n\n\t/**\n\t * Emit the status of the `Tab`, specifically 'select' and 'selected' properties.\n\t */\n\tdoSelect() {\n\t\tthis.selected.emit();\n\t}\n\n\t/**\n\t* Returns value indicating whether this `Tab` should be rendered in a tab panel.\n\t */\n\tshouldRender() {\n\t\treturn this.active || this.cacheActive;\n\t}\n\n\tpublic isTemplate(value) {\n\t\treturn value instanceof TemplateRef;\n\t}\n}\n","import {\n\tComponent,\n\tQueryList,\n\tInput,\n\tOutput,\n\tEventEmitter,\n\tHostListener,\n\tHostBinding,\n\tViewChild,\n\tContentChildren,\n\tAfterContentInit,\n\tViewChildren,\n\tElementRef,\n\tOnChanges,\n\tSimpleChanges,\n\tOnDestroy,\n\tOnInit,\n\tChangeDetectorRef,\n\tRenderer2\n} from \"@angular/core\";\nimport { EventService } from \"carbon-components-angular/utils\";\nimport { I18n } from \"carbon-components-angular/i18n\";\n\nimport { BaseTabHeader } from \"./base-tab-header.component\";\nimport { Tab } from \"./tab.component\";\nimport { NgClass, NgTemplateOutlet } from \"@angular/common\";\nimport { Tooltip } from \"carbon-components-angular/tooltip\";\n\n/**\n * The `TabHeaders` component contains the `Tab` items and controls scroll functionality\n * if content has overflow.\n */\n@Component({\n\tselector: \"cds-tab-headers, ibm-tab-headers\",\n\ttemplate: `\n\t\t<button\n\t\t\ttype=\"button\"\n\t\t\t(click)=\"handleOverflowNavClick(-1, tabs.length)\"\n\t\t\t(pointerdown)=\"handleOverflowNavMouseDown(-1)\"\n\t\t\t(pointerup)=\"handleOverflowNavMouseUp()\"\n\t\t\t(pointerleave)=\"handleOverflowNavMouseUp()\"\n\t\t\t(pointerout)=\"handleOverflowNavMouseUp()\"\n\t\t\tclass=\"cds--tab--overflow-nav-button cds--tab--overflow-nav-button--previous\"\n\t\t\t[ngClass]=\"{\n\t\t\t\t'cds--tab--overflow-nav-button--hidden': leftOverflowNavButtonHidden\n\t\t\t}\"\n\t\t\t[attr.aria-hidden]=\"leftOverflowNavButtonHidden\"\n\t\t\t[attr.tabindex]=\"-1\"\n\t\t\t[attr.aria-label]=\"translations.BUTTON_ARIA_LEFT\"\n\t\t\t[attr.title]=\"translations.BUTTON_ARIA_LEFT\">\n\t\t\t<svg\n\t\t\t\tfocusable=\"false\"\n\t\t\t\tpreserveAspectRatio=\"xMidYMid meet\"\n\t\t\t\txmlns=\"http://www.w3.org/2000/svg\"\n\t\t\t\tfill=\"currentColor\"\n\t\t\t\twidth=\"16\"\n\t\t\t\theight=\"16\"\n\t\t\t\tviewBox=\"0 0 16 16\"\n\t\t\t\taria-hidden=\"true\">\n\t\t\t\t<path d=\"M5 8L10 3 10.7 3.7 6.4 8 10.7 12.3 10 13z\"></path>\n\t\t\t</svg>\n\t\t</button>\n\t\t<div\n\t\t\t#tabList\n\t\t\tclass=\"cds--tab--list\"\n\t\t\trole=\"tablist\"\n\t\t\t[attr.aria-label]=\"ariaLabel || translations.HEADER_ARIA_LABEL\"\n\t\t\t[attr.aria-labelledby]=\"ariaLabelledby || null\"\n\t\t\t(scroll)=\"handleScroll()\">\n\t\t\t<ng-container [ngTemplateOutlet]=\"contentBefore\"></ng-container>\n\t\t\t@for (tab of tabs; track tab; let i = $index) {\n\t\t\t\t@if (tab.iconOnly) {\n\t\t\t\t\t<cds-tooltip\n\t\t\t\t\t\talign=\"bottom\"\n\t\t\t\t\t\t[autoAlign]=\"true\"\n\t\t\t\t\t\tclass=\"cds--icon-tooltip\"\n\t\t\t\t\t\t[description]=\"tab.iconLabel\"\n\t\t\t\t\t\t[enterDelayMs]=\"tab.enterDelayMs ?? 100\"\n\t\t\t\t\t\t[leaveDelayMs]=\"tab.leaveDelayMs ?? 300\"\n\t\t\t\t\t\t[isOpen]=\"tab.isTooltipOpen\"\n\t\t\t\t\t\t[disabled]=\"tab.disabled\">\n\t\t\t\t\t\t<ng-container *ngTemplateOutlet=\"tabItemTpl; context: { tab: tab, i: i }\"></ng-container>\n\t\t\t\t\t</cds-tooltip>\n\t\t\t\t} @else {\n\t\t\t\t\t<ng-container *ngTemplateOutlet=\"tabItemTpl; context: { tab: tab, i: i }\"></ng-container>\n\t\t\t\t}\n\t\t\t\t@if (dismissable) {\n\t\t\t\t\t<div class=\"cds--tabs__nav-item--close\">\n\t\t\t\t\t\t<button\n\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\t[attr.tabindex]=\"-1\"\n\t\t\t\t\t\t\t[attr.aria-disabled]=\"tab.disabled\"\n\t\t\t\t\t\t\t[attr.aria-hidden]=\"!(tab.active && !tab.disabled)\"\n\t\t\t\t\t\t\t[disabled]=\"tab.disabled\"\n\t\t\t\t\t\t\tclass=\"cds--tabs__nav-item--close-icon\"\n\t\t\t\t\t\t\t[ngClass]=\"{\n\t\t\t\t\t\t\t\t'cds--tabs__nav-item--close-icon--selected': tab.active,\n\t\t\t\t\t\t\t\t'cds--tabs__nav-item--close-icon--disabled': tab.disabled\n\t\t\t\t\t\t\t}\"\n\t\t\t\t\t\t\t[attr.title]=\"getCloseTitle(tab)\"\n\t\t\t\t\t\t\t(click)=\"handleClose($event, tab, i)\">\n\t\t\t\t\t\t\t<svg\n\t\t\t\t\t\t\t\tfocusable=\"false\"\n\t\t\t\t\t\t\t\tpreserveAspectRatio=\"xMidYMid meet\"\n\t\t\t\t\t\t\t\txmlns=\"http://www.w3.org/2000/svg\"\n\t\t\t\t\t\t\t\tfill=\"currentColor\"\n\t\t\t\t\t\t\t\twidth=\"16\"\n\t\t\t\t\t\t\t\theight=\"16\"\n\t\t\t\t\t\t\t\tviewBox=\"0 0 32 32\"\n\t\t\t\t\t\t\t\t[attr.aria-label]=\"tab.closeButtonAriaLabel\"\n\t\t\t\t\t\t\t\t[attr.aria-hidden]=\"!(tab.active && !tab.disabled)\">\n\t\t\t\t\t\t\t\t<path d=\"M17.4141 16L24 9.4141 22.5859 8 16 14.5859 9.4143 8 8 9.4141 14.5859 16 8 22.5859 9.4143 24 16 17.4141 22.5859 24 24 22.5859 17.4141 16z\"></path>\n\t\t\t\t\t\t\t</svg>\n\t\t\t\t\t\t</button>\n\t\t\t\t\t</div>\n\t\t\t\t}\n\t\t\t}\n\t\t\t<ng-container [ngTemplateOutlet]=\"contentAfter\"></ng-container>\n\t\t</div>\n\t\t<ng-template #tabItemTpl let-tab=\"tab\" let-i=\"i\">\n\t\t\t<button\n\t\t\t\t#tabItem\n\t\t\t\trole=\"tab\"\n\t\t\t\t[attr.aria-selected]=\"tab.active\"\n\t\t\t\t[attr.tabindex]=\"(tab.active?0:-1)\"\n\t\t\t\t[attr.aria-controls]=\"tab.id\"\n\t\t\t\t[attr.aria-disabled]=\"tab.disabled\"\n\t\t\t\t[attr.aria-label]=\"tab.iconOnly ? tab.iconLabel : null\"\n\t\t\t\t[disabled]=\"tab.disabled\"\n\t\t\t\t[ngClass]=\"{\n\t\t\t\t\t'cds--tabs__nav-item--selected': tab.active,\n\t\t\t\t\t'cds--tabs__nav-item--disabled': tab.disabled,\n\t\t\t\t\t'cds--tabs__nav-item--icon-only': tab.iconOnly,\n\t\t\t\t\t'cds--tabs__nav-item--icon-only__20': tab.iconOnly && iconSize === 'lg'\n\t\t\t\t}\"\n\t\t\t\tclass=\"cds--tabs__nav-item cds--tabs__nav-link\"\n\t\t\t\ttype=\"button\"\n\t\t\t\tdraggable=\"false\"\n\t\t\t\tid=\"{{tab.id}}-header\"\n\t\t\t\t[attr.title]=\"tab.iconOnly ? tab.iconLabel : (tab.title || (!tab.headingIsTemplate ? tab.heading : null))\"\n\t\t\t\t(focus)=\"onTabFocus(tabItem, i)\"\n\t\t\t\t(keydown)=\"handleTabKeyDown($event, tab, i)\"\n\t\t\t\t(click)=\"selectTab(tabItem, tab, i)\">\n\t\t\t\t@if (tab.iconOnly) {\n\t\t\t\t\t<ng-container [ngTemplateOutlet]=\"tab.icon\"></ng-container>\n\t\t\t\t\t@if (!tab.disabled && tab.badgeIndicator) {\n\t\t\t\t\t\t<span\n\t\t\t\t\t\t\tclass=\"cds--badge-indicator\"\n\t\t\t\t\t\t\taria-hidden=\"true\">\n\t\t\t\t\t\t</span>\n\t\t\t\t\t}\n\t\t\t\t} @else {\n\t\t\t\t\t<div class=\"cds--tabs__nav-item-label-wrapper\">\n\t\t\t\t\t\t@if (dismissable && tab.icon) {\n\t\t\t\t\t\t\t<div class=\"cds--tabs__nav-item--icon-left\">\n\t\t\t\t\t\t\t\t<ng-container [ngTemplateOutlet]=\"tab.icon\"></ng-container>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t}\n\t\t\t\t\t\t<span class=\"cds--tabs__nav-item-label\">\n\t\t\t\t\t\t\t@if (!tab.headingIsTemplate) {\n\t\t\t\t\t\t\t\t{{ tab.heading }}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t@if (tab.headingIsTemplate) {\n\t\t\t\t\t\t\t\t<ng-template\n\t\t\t\t\t\t\t\t\t[ngTemplateOutlet]=\"tab.heading\"\n\t\t\t\t\t\t\t\t\t[ngTemplateOutletContext]=\"{$implicit: tab.context}\">\n\t\t\t\t\t\t\t\t</ng-template>\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t</span>\n\t\t\t\t\t\t@if (!dismissable && tab.icon) {\n\t\t\t\t\t\t\t<div class=\"cds--tabs__nav-item--icon\">\n\t\t\t\t\t\t\t\t<ng-container [ngTemplateOutlet]=\"tab.icon\"></ng-container>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t}\n\t\t\t\t\t</div>\n\t\t\t\t\t@if (hasSecondaryLabelTabs && tab.secondaryLabel) {\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tclass=\"cds--tabs__nav-item-secondary-label\"\n\t\t\t\t\t\t\t[attr.title]=\"tab.secondaryLabel\">\n\t\t\t\t\t\t\t{{ tab.secondaryLabel }}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t</button>\n\t\t</ng-template>\n\t\t<button\n\t\t\ttype=\"button\"\n\t\t\t(click)=\"handleOverflowNavClick(1, tabs.length)\"\n\t\t\t(pointerdown)=\"handleOverflowNavMouseDown(1)\"\n\t\t\t(pointerup)=\"handleOverflowNavMouseUp()\"\n\t\t\t(pointerleave)=\"handleOverflowNavMouseUp()\"\n\t\t\t(pointerout)=\"handleOverflowNavMouseUp()\"\n\t\t\tclass=\"cds--tab--overflow-nav-button cds--tab--overflow-nav-button--next\"\n\t\t\t[ngClass]=\"{\n\t\t\t\t'cds--tab--overflow-nav-button--hidden': rightOverflowNavButtonHidden\n\t\t\t}\"\n\t\t\t[attr.aria-hidden]=\"rightOverflowNavButtonHidden\"\n\t\t\t[attr.tabindex]=\"-1\"\n\t\t\t[attr.aria-label]=\"translations.BUTTON_ARIA_RIGHT\"\n\t\t\t[attr.title]=\"translations.BUTTON_ARIA_RIGHT\">\n\t\t\t<svg\n\t\t\t\tfocusable=\"false\"\n\t\t\t\tpreserveAspectRatio=\"xMidYMid meet\"\n\t\t\t\txmlns=\"http://www.w3.org/2000/svg\"\n\t\t\t\tfill=\"currentColor\"\n\t\t\t\twidth=\"16\"\n\t\t\t\theight=\"16\"\n\t\t\t\tviewBox=\"0 0 16 16\"\n\t\t\t\taria-hidden=\"true\">\n\t\t\t\t<path d=\"M11 8L6 13 5.3 12.3 9.6 8 5.3 3.7 6 3z\"></path>\n\t\t\t</svg>\n\t\t</button>\n\t`,\n\tproviders: [EventService],\n\timports: [NgClass, NgTemplateOutlet, Tooltip]\n})\n\nexport class TabHeaders extends BaseTabHeader implements AfterContentInit, OnChanges, OnDestroy, OnInit {\n\t/**\n\t * List of `Tab` components.\n\t */\n\t// disable the next line because we need to rename the input\n\t// eslint-disable-next-line @angular-eslint/no-input-rename\n\t@Input(\"tabs\") tabInput: QueryList<Tab>;\n\n\t/**\n\t * i18n strings for overflow controls and the tab list `aria-label` fallback.\n\t */\n\t@Input() translations = this.i18n.get().TABS;\n\n\t/**\n\t * Emits when a tab close control is used (with `dismissable`).\n\t * The emitted value is the tab index.\n\t */\n\t@Output() tabClose: EventEmitter<number> = new EventEmitter<number>();\n\n\t/**\n\t * Gets the Unordered List element that holds the `Tab` headings from the view DOM.\n\t */\n\t@ViewChild(\"tabList\", { static: true }) headerContainer: ElementRef<HTMLElement>;\n\t/**\n\t * ContentChild of all the tabs\n\t */\n\t@ContentChildren(Tab) tabQuery: QueryList<Tab>;\n\t/**\n\t * Set to tabQuery if tabInput is empty\n\t */\n\ttabs: QueryList<Tab>;\n\t/**\n\t * The index of the first visible tab.\n\t */\n\tfirstVisibleTab = 0;\n\t/**\n\t * The DOM element containing the `Tab` headings displayed.\n\t */\n\t@ViewChildren(\"tabItem\") allTabHeaders: QueryList<ElementRef>;\n\n\t/**\n\t * Focused tab index when `followFocus` is false (manual activation).\n\t */\n\tactiveIndex: number | null = null;\n\n\t@HostBinding(\"class.cds--tabs--tall\") get tallClass() {\n\t\treturn this.hasSecondaryLabelTabs;\n\t}\n\n\t@HostBinding(\"class.cds--tabs--full-width\") get fullWidthClass() {\n\t\treturn this.distributeWidth;\n\t}\n\n\tprivate resizeObserver: ResizeObserver;\n\n\tconstructor(\n\t\tprotected elementRef: ElementRef,\n\t\tprotected changeDetectorRef: ChangeDetectorRef,\n\t\tprotected eventService: EventService,\n\t\tprotected renderer: Renderer2,\n\t\tprotected i18n: I18n\n\t) {\n\t\tsuper(elementRef, changeDetectorRef, eventService, renderer);\n\t}\n\n\tget hasSecondaryLabelTabs(): boolean {\n\t\tif (!this.tabs || this.type !== \"contained\") {\n\t\t\treturn false;\n\t\t}\n\t\treturn this.tabs.toArray().some(tab => typeof tab.secondaryLabel !== \"undefined\" && tab.secondaryLabel !== null);\n\t}\n\n\t/**\n\t * True when `fullWidth` applies (contained, fewer than 9 tabs).\n\t */\n\tget distributeWidth(): boolean {\n\t\treturn (\n\t\t\tthis.fullWidth &&\n\t\t\tthis.type === \"contained\" &&\n\t\t\t(this.tabs ? this.tabs.length < 9 : false)\n\t\t);\n\t}\n\n\t// keyboard accessibility\n\t/**\n\t * Controls the keydown events used for tabbing through the headings.\n\t */\n\t@HostListener(\"keydown\", [\"$event\"])\n\tkeyboardInput(event) {\n\t\tconst tabsArray = this.tabs.toArray();\n\t\tconst enabledTabs = tabsArray.filter(tab => !tab.disabled);\n\t\tif (enabledTabs.length === 0) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst referenceIndex = this.followFocus ?\n\t\t\tthis.currentSelectedTab :\n\t\t\t(this.activeIndex !== null ? this.activeIndex : this.currentSelectedTab);\n\t\tconst currentEnabledIndex = Math.max(0, enabledTabs.indexOf(tabsArray[referenceIndex]));\n\n\t\tlet nextEnabledIndex = currentEnabledIndex;\n\t\tlet handled = false;\n\n\t\tif (event.key === \"ArrowRight\") {\n\t\t\tnextEnabledIndex = (currentEnabledIndex + 1) % enabledTabs.length;\n\t\t\thandled = true;\n\t\t} else if (event.key === \"ArrowLeft\") {\n\t\t\tnextEnabledIndex = (enabledTabs.length + currentEnabledIndex - 1) % enabledTabs.length;\n\t\t\thandled = true;\n\t\t} else if (event.key === \"Home\") {\n\t\t\tnextEnabledIndex = 0;\n\t\t\thandled = true;\n\t\t} else if (event.key === \"End\") {\n\t\t\tnextEnabledIndex = enabledTabs.length - 1;\n\t\t\thandled = true;\n\t\t}\n\n\t\tif (handled) {\n\t\t\tevent.preventDefault();\n\t\t\tconst nextTab = enabledTabs[nextEnabledIndex];\n\t\t\tconst nextIndex = tabsArray.indexOf(nextTab);\n\n\t\t\tif (this.followFocus) {\n\t\t\t\tthis.selectTab(this.allTabHeaders.toArray()[nextIndex].nativeElement, nextTab, nextIndex);\n\t\t\t} else {\n\t\t\t\tthis.activeIndex = nextIndex;\n\t\t\t}\n\t\t\tthis.allTabHeaders.toArray()[nextIndex].nativeElement.focus();\n\t\t\treturn;\n\t\t}\n\n\t\tif ((event.key === \" \" || event.key === \"Spacebar\") && !this.followFocus) {\n\t\t\tconst focusIndex = this.activeIndex !== null ? this.activeIndex : this.currentSelectedTab;\n\t\t\tthis.selectTab(this.allTabHeaders.toArray()[focusIndex].nativeElement, tabsArray[focusIndex], focusIndex);\n\t\t}\n\t}\n\n\t@HostListener(\"blur\", [\"$event\"])\n\thandleBlur(event: FocusEvent) {\n\t\tconst relatedTarget = event.relatedTarget as Node | null;\n\t\tconst container = this.headerContainer?.nativeElement;\n\t\tif (container && relatedTarget && container.contains(relatedTarget)) {\n\t\t\treturn;\n\t\t}\n\t\t// Reset active index to selected tab index when followFocus is false\n\t\tif (!this.followFocus) {\n\t\t\tthis.activeIndex = this.currentSelectedTab;\n\t\t}\n\t}\n\n\t/**\n\t * `Delete` closes dismissable tabs.\n\t */\n\thandleTabKeyDown(event: KeyboardEvent, tab: Tab, index: number) {\n\t\tif (this.dismissable && event.key === \"Delete\") {\n\t\t\tthis.handleClose(event, tab, index);\n\t\t}\n\t}\n\n\tngOnInit(): void {\n\t\t// Update scroll on resize\n\t\tthis.resizeObserver = new ResizeObserver(() => {\n\t\t\t// Need to explicitly trigger change detection since this runs outside Angular zone\n\t\t\tthis.changeDetectorRef.detectChanges();\n\t\t});\n\t\tthis.resizeObserver.observe(this.headerContainer.nativeElement);\n\t}\n\n\tngOnDestroy(): void {\n\t\tthis.resizeObserver?.unobserve(this.headerContainer.nativeElement);\n\t\tclearTimeout(this.scrollDebounceTimer);\n\t}\n\n\tngAfterContentInit() {\n\t\tif (!this.tabInput) {\n\t\t\tthis.tabs = this.tabQuery;\n\t\t} else {\n\t\t\tthis.tabs = this.tabInput;\n\t\t}\n\n\t\tthis.tabs.forEach(tab => tab.cacheActive = this.cacheActive);\n\t\tthis.tabs.changes.subscribe(() => {\n\t\t\tthis.setFirstTab();\n\t\t\tthis.changeDetectorRef.markForCheck();\n\t\t});\n\t\tthis.setFirstTab();\n\t}\n\n\tngOnChanges(changes: SimpleChanges) {\n\t\tif (this.tabs && changes.cacheActive) {\n\t\t\tthis.tabs.forEach(tab => tab.cacheActive = this.cacheActive);\n\t\t}\n\t}\n\n\t/**\n\t * Controls manually focusing tabs.\n\t */\n\tonTabFocus(ref: HTMLElement, index: number) {\n\t\tif (this.followFocus) {\n\t\t\tthis.currentSelectedTab = index;\n\t\t} else {\n\t\t\tthis.activeIndex = index;\n\t\t}\n\t\t// reset scroll left because we're already handling it\n\t\tthis.headerContainer.nativeElement.parentElement.scrollLeft = 0;\n\n\t\tif (this.scrollIntoView) {\n\t\t\tthis.scrollTabIntoView(this.allTabHeaders.toArray()[index]?.nativeElement);\n\t\t}\n\t}\n\n\tgetSelectedTab(): any {\n\t\tconst selected = this.tabs.find(tab => tab.active);\n\t\tif (selected) {\n\t\t\treturn selected;\n\t\t}\n\t\treturn { headingIsTemplate: false, heading: \"\" };\n\t}\n\n\t/**\n\t * Selects `Tab` 'tab' and moves it into view on the view DOM if it is not already.\n\t */\n\tselectTab(ref: HTMLElement, tab: Tab, tabIndex: number) {\n\t\tif (tab.disabled) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.currentSelectedTab = tabIndex;\n\t\tthis.activeIndex = tabIndex;\n\t\tthis.tabs.forEach(_tab => _tab.active = false);\n\t\ttab.active = true;\n\t\ttab.doSelect();\n\n\t\tif (this.scrollIntoView) {\n\t\t\tthis.scrollTabIntoView(this.allTabHeaders.toArray()[tabIndex]?.nativeElement);\n\t\t}\n\t}\n\n\t/**\n\t * Emit close index and move focus to a nearby enabled tab.\n\t */\n\thandleClose(event: Event, tab: Tab, tabIndex: number) {\n\t\tevent.stopPropagation();\n\t\tif (tab.disabled) {\n\t\t\treturn;\n\t\t}\n\t\ttab.tabClose.emit();\n\t\tthis.tabClose.emit(tabIndex);\n\n\t\t// Move focus to a neighboring enabled tab (next-then-previous).\n\t\tconst headers = this.allTabHeaders?.toArray() ?? [];\n\t\tconst findNextEnabled = (start: number, step: number) => {\n\t\t\tlet i = start;\n\t\t\twhile (i >= 0 && i < headers.length) {\n\t\t\t\tconst candidate = this.tabs.toArray()[i];\n\t\t\t\tif (candidate && !candidate.disabled && i !== tabIndex) {\n\t\t\t\t\treturn headers[i]?.nativeElement;\n\t\t\t\t}\n\t\t\t\ti += step;\n\t\t\t}\n\t\t\treturn null;\n\t\t};\n\t\tconst nextEl = findNextEnabled(tabIndex + 1, 1) || findNextEnabled(tabIndex - 1, -1);\n\t\tif (nextEl) {\n\t\t\t(nextEl as HTMLElement).focus();\n\t\t}\n\t}\n\n\tgetCloseTitle(tab: Tab): string {\n\t\tconst label = !tab.headingIsTemplate && typeof tab.heading === \"string\" ? ` ${tab.heading}` : \"\";\n\t\treturn `Remove${label} tab`;\n\t}\n\n\t/**\n\t * Scroll the given tab element into view if it is not already visible.\n\t */\n\tprotected scrollTabIntoView(tabEl: HTMLElement | null) {\n\t\tif (!tabEl || !this.headerContainer?.nativeElement) {\n\t\t\treturn;\n\t\t}\n\t\tconst container = this.headerContainer.nativeElement;\n\t\tif (container.scrollWidth <= container.clientWidth) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst buttonWidth = this.OVERFLOW_BUTTON_OFFSET;\n\t\tconst tabWidth = tabEl.getBoundingClientRect().width;\n\t\tconst start = tabEl.offsetLeft;\n\t\tconst end = start + tabWidth;\n\t\tconst visibleStart = container.scrollLeft + buttonWidth;\n\t\tconst visibleEnd = container.scrollLeft + container.clientWidth - buttonWidth;\n\n\t\tif (start < visibleStart) {\n\t\t\tcontainer.scrollLeft = start - buttonWidth;\n\t\t} else if (end > visibleEnd) {\n\t\t\tcontainer.scrollLeft = end + buttonWidth - container.clientWidth;\n\t\t}\n\t}\n\n\t/**\n\t * Determines which `Tab` is initially selected.\n\t */\n\tprotected setFirstTab() {\n\t\tsetTimeout(() => {\n\t\t\tlet firstTab = this.tabs.find(tab => tab.active);\n\t\t\tif (!firstTab && this.tabs.first) {\n\t\t\t\tfirstTab = this.tabs.first;\n\t\t\t\tfirstTab.active = true;\n\t\t\t}\n\t\t\tif (firstTab) {\n\t\t\t\tthis.currentSelectedTab = this.tabs.toArray().indexOf(firstTab);\n\t\t\t\tthis.activeIndex = this.currentSelectedTab;\n\t\t\t\tfirstTab.doSelect();\n\t\t\t}\n\t\t});\n\t}\n}\n","import {\r\n\tComponent,\r\n\tQueryList,\r\n\tInput,\r\n\tHostListener,\r\n\tHostBinding,\r\n\tViewChild,\r\n\tContentChildren,\r\n\tAfterContentInit,\r\n\tViewChildren,\r\n\tElementRef,\r\n\tOnChanges,\r\n\tSimpleChanges,\r\n\tOnDestroy,\r\n\tOnInit,\r\n\tChangeDetectorRef,\r\n\tRenderer2\r\n} from \"@angular/core\";\r\nimport { EventService } from \"carbon-components-angular/utils\";\r\nimport { I18n } from \"carbon-components-angular/i18n\";\r\n\r\nimport { BaseTabHeader } from \"./base-tab-header.component\";\r\nimport { Tab } from \"./tab.component\";\r\nimport { NgClass, NgTemplateOutlet } from \"@angular/common\";\r\n\r\nconst VERTICAL_TAB_HEIGHT = 64;\r\n\r\n/**\r\n * The `TabHeadersVertical` component renders tab headers in a vertical\r\n * orientation. It contains the `Tab` items and supports keyboard navigation\r\n * via ArrowUp/ArrowDown/Home/End.\r\n */\r\n@Component({\r\n\tselector: \"cds-tab-headers-vertical, ibm-tab-headers-vertical\",\r\n\ttemplate: `\r\n\t\t@if (isOverflowingTop) {\r\n\t\t\t<div class=\"cds--tab--list-gradient_top\"></div>\r\n\t\t}\r\n\t\t<div\r\n\t\t\t#tabList\r\n\t\t\tclass=\"cds--tab--list\"\r\n\t\t\trole=\"tablist\"\r\n\t\t\t[attr.aria-label]=\"ariaLabel || translations.HEADER_ARIA_LABEL\"\r\n\t\t\t[attr.aria-labelledby]=\"ariaLabelledby || null\">\r\n\t\t\t<ng-container [ngTemplateOutlet]=\"contentBefore\"></ng-container>\r\n\t\t\t@for (tab of tabs; track tab; let i = $index) {\r\n\t\t\t\t<button\r\n\t\t\t\t\t#tabItem\r\n\t\t\t\t\trole=\"tab\"\r\n\t\t\t\t\t[attr.aria-selected]=\"tab.active\"\r\n\t\t\t\t\t[attr.tabindex]=\"(tab.active?0:-1)\"\r\n\t\t\t\t\t[attr.aria-controls]=\"tab.id\"\r\n\t\t\t\t\t[attr.aria-disabled]=\"tab.disabled\"\r\n\t\t\t\t\t[disabled]=\"tab.disabled\"\r\n\t\t\t\t\t[ngClass]=\"{\r\n\t\t\t\t\t\t'cds--tabs__nav-item--selected': tab.active,\r\n\t\t\t\t\t\t'cds--tabs__nav-item--disabled': tab.disabled\r\n\t\t\t\t\t}\"\r\n\t\t\t\t\tclass=\"cds--tabs__nav-item cds--tabs__nav-link\"\r\n\t\t\t\t\ttype=\"button\"\r\n\t\t\t\t\tdraggable=\"false\"\r\n\t\t\t\t\tid=\"{{tab.id}}-header\"\r\n\t\t\t\t\t[attr.title]=\"tab.title || (!tab.headingIsTemplate ? tab.heading : null)\"\r\n\t\t\t\t\t(focus)=\"onTabFocus(i)\"\r\n\t\t\t\t\t(click)=\"selectTab(tab, i)\">\r\n\t\t\t\t\t<div class=\"cds--tabs__nav-item-label-wrapper\">\r\n\t\t\t\t\t\t<span class=\"cds--tabs__nav-item-label\">\r\n\t\t\t\t\t\t\t@if (!tab.headingIsTemplate) {\r\n\t\t\t\t\t\t\t\t{{ tab.heading }}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t@if (tab.headingIsTemplate) {\r\n\t\t\t\t\t\t\t\t<ng-template\r\n\t\t\t\t\t\t\t\t\t[ngTemplateOutlet]=\"tab.heading\"\r\n\t\t\t\t\t\t\t\t\t[ngTemplateOutletContext]=\"{$implicit: tab.context}\">\r\n\t\t\t\t\t\t\t\t</ng-template>\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t</span>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</button>\r\n\t\t\t}\r\n\t\t\t<ng-container [ngTemplateOutlet]=\"contentAfter\"></ng-container>\r\n\t\t</div>\r\n\t\t@if (isOverflowingBottom) {\r\n\t\t\t<div class=\"cds--tab--list-gradient_bottom\"></div>\r\n\t\t}\r\n\t`,\r\n\timports: [NgClass, NgTemplateOutlet]\r\n})\r\nexport class TabHeadersVertical extends BaseTabHeader implements AfterContentInit, OnChanges, OnDestroy, OnInit {\r\n\t/**\r\n\t * List of `Tab` components.\r\n\t */\r\n\t// Template/API uses `[tabs]`; property name differs to avoid clashing with the `tabs` field populated from content.\r\n\t// eslint-disable-next-line @angular-eslint/no-input-rename -- intentional alias for public `[tabs]` binding\r\n\t@Input(\"tabs\") tabInput: QueryList<Tab>;\r\n\r\n\t/**\r\n\t * i18n strings for the tab list `aria-label` fallback.\r\n\t */\r\n\t@Input() translations = this.i18n.get().TABS;\r\n\r\n\t@HostBinding(\"class.cds--tabs--vertical\") verticalClass = true;\r\n\r\n\t@ViewChild(\"tabList\", { static: true }) headerContainer: ElementRef<HTMLElement>;\r\n\r\n\t/**\r\n\t * ContentChild of all the tabs\r\n\t */\r\n\t@ContentChildren(Tab) tabQuery: QueryList<Tab>;\r\n\ttabs: QueryList<Tab>;\r\n\r\n\t@ViewChildren(\"tabItem\") allTabHeaders: QueryList<ElementRef>;\r\n\r\n\t/**\r\n\t * Focused tab index when `followFocus` is false (manual activation)\r\n\t */\r\n\tactiveIndex: number | null = null;\r\n\r\n\t/**\r\n\t * Whether the tab list is overflowing at the top (some tabs are clipped).\r\n\t */\r\n\tisOverflowingTop = false;\r\n\t/**\r\n\t * Whether the tab list is overflowing at the bottom (some tabs are clipped).\r\n\t */\r\n\tisOverflowingBottom = false;\r\n\r\n\tprivate resizeObserver: ResizeObserver;\r\n\r\n\tconstructor(\r\n\t\tprotected elementRef: ElementRef,\r\n\t\tprotected changeDetectorRef: ChangeDetectorRef,\r\n\t\tprotected eventService: EventService,\r\n\t\tprotected renderer: Renderer2,\r\n\t\tprotected i18n: I18n\r\n\t) {\r\n\t\tsuper(elementRef, changeDetectorRef, eventService, renderer);\r\n\t\tthis.type = \"contained\";\r\n\t}\r\n\r\n\t@HostListener(\"keydown\", [\"$event\"])\r\n\tkeyboardInput(event: KeyboardEvent) {\r\n\t\tif (!this.tabs) {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tconst tabsArray = this.tabs.toArray();\r\n\t\tconst enabledTabs = tabsArray.filter(tab => !tab.disabled);\r\n\t\tif (enabledTabs.length === 0) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tconst referenceIndex = this.followFocus ?\r\n\t\t\tthis.currentSelectedTab :\r\n\t\t\t(this.activeIndex !== null ? this.activeIndex : this.currentSelectedTab);\r\n\t\tconst currentEnabledIndex = Math.max(0, enabledTabs.indexOf(tabsArray[referenceIndex]));\r\n\r\n\t\tlet nextEnabledIndex = currentEnabledIndex;\r\n\t\tlet handled = false;\r\n\r\n\t\tif (event.key === \"ArrowDown\") {\r\n\t\t\tnextEnabledIndex = (currentEnabledIndex + 1) % enabledTabs.length;\r\n\t\t\thandled = true;\r\n\t\t} else if (event.key === \"ArrowUp\") {\r\n\t\t\tnextEnabledIndex = (enabledTabs.length + currentEnabledIndex - 1) % enabledTabs.length;\r\n\t\t\thandled = true;\r\n\t\t} else if (event.key === \"Home\") {\r\n\t\t\tnextEnabledIndex = 0;\r\n\t\t\thandled = true;\r\n\t\t} else if (event.key === \"End\") {\r\n\t\t\tnextEnabledIndex = enabledTabs.length - 1;\r\n\t\t\thandled = true;\r\n\t\t}\r\n\r\n\t\tif (handled) {\r\n\t\t\tevent.preventDefault();\r\n\t\t\tconst nextTab = enabledTabs[nextEnabledIndex];\r\n\t\t\tconst nextIndex = tabsArray.indexOf(nextTab);\r\n\r\n\t\t\tif (this.followFocus) {\r\n\t\t\t\tthis.selectTab(nextTab, nextIndex);\r\n\t\t\t} else {\r\n\t\t\t\tthis.activeIndex = nextIndex;\r\n\t\t\t}\r\n\t\t\tthis.allTabHeaders.toArray()[nextIndex].nativeElement.focus();\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif ((event.key === \" \" || event.key === \"Spacebar\") && !this.followFocus) {\r\n\t\t\tconst focusIndex = this.activeIndex !== null ? this.activeIndex : this.currentSelectedTab;\r\n\t\t\tthis.selectTab(tabsArray[focusIndex], focusIndex);\r\n\t\t}\r\n\t}\r\n\r\n\t@HostListener(\"blur\", [\"$event\"])\r\n\thandleBlur(event: FocusEvent) {\r\n\t\tconst relatedTarget = event.relatedTarget as Node | null;\r\n\t\tconst container = this.headerContainer?.nativeElement;\r\n\t\tif (container && relatedTarget && container.contains(relatedTarget)) {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tif (!this.followFocus) {\r\n\t\t\tthis.activeIndex = this.currentSelectedTab;\r\n\t\t}\r\n\t}\r\n\r\n\tngOnInit(): void {\r\n\t\tthis.resizeObserver = new ResizeObserver(() => {\r\n\t\t\tthis.updateOverflowState();\r\n\t\t\tthis.changeDetectorRef.detectChanges();\r\n\t\t});\r\n\t\tthis.resizeObserver.observe(this.headerContainer.nativeElement);\r\n\t\tthis.headerContainer.nativeElement.addEventListener(\"scroll\", this.listScrollHandler);\r\n\t}\r\n\r\n\tngOnDestroy(): void {\r\n\t\tthis.resizeObserver?.unobserve(this.headerContainer.nativeElement);\r\n\t\tthis.headerContainer.nativeElement.removeEventListener(\"scroll\", this.listScrollHandler);\r\n\t}\r\n\r\n\tngAfterContentInit() {\r\n\t\tif (!this.tabInput) {\r\n\t\t\tthis.tabs = this.tabQuery;\r\n\t\t} else {\r\n\t\t\tthis.tabs = this.tabInput;\r\n\t\t}\r\n\r\n\t\tthis.tabs.forEach(tab => tab.cacheActive = this.cacheActive);\r\n\t\tthis.tabs.changes.subscribe(() => {\r\n\t\t\tthis.setFirstTab();\r\n\t\t\tthis.changeDetectorRef.markForCheck();\r\n\t\t});\r\n\t\tthis.setFirstTab();\r\n\t}\r\n\r\n\tngOnChanges(changes: SimpleChanges) {\r\n\t\tif (this.tabs && changes.cacheActive) {\r\n\t\t\tthis.tabs.forEach(tab => tab.cacheActive = this.cacheActive);\r\n\t\t}\r\n\t}\r\n\r\n\tonTabFocus(index: number) {\r\n\t\tif (this.followFocus) {\r\n\t\t\tthis.currentSelectedTab = index;\r\n\t\t} else {\r\n\t\t\tthis.activeIndex = index;\r\n\t\t}\r\n\t\tthis.scrollSelectedTabIntoView();\r\n\t}\r\n\r\n\tselectTab(tab: Tab, tabIndex: number) {\r\n\t\tif (tab.disabled) {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tthis.currentSelectedTab = tabIndex;\r\n\t\tthis.activeIndex = tabIndex;\r\n\t\tthis.tabs.forEach(_tab => _tab.active = false);\r\n\t\ttab.active = true;\r\n\t\ttab.doSelect();\r\n\t\tthis.scrollSelectedTabIntoView();\r\n\t}\r\n\r\n\tgetSelectedTab(): any {\r\n\t\tconst selected = this.tabs.find(tab => tab.active);\r\n\t\tif (selected) {\r\n\t\t\treturn selected;\r\n\t\t}\r\n\t\treturn { headingIsTemplate: false, heading: \"\" };\r\n\t}\r\n\r\n\tprotected updateOverflowState() {\r\n\t\tconst element = this.headerContainer?.nativeElement;\r\n\t\tif (!element) {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tconst halfTabHeight = VERTICAL_TAB_HEIGHT / 2;\r\n\t\tthis.isOverflowingBottom =\r\n\t\t\telement.scrollTop + element.clientHeight + halfTabHeight <= element.scrollHeight;\r\n\t\tthis.isOverflowingTop = element.scrollTop > halfTabHeight;\r\n\t\tthis.changeDetectorRef.markForCheck();\r\n\t}\r\n\r\n\tprotected scrollSelectedTabIntoView() {\r\n\t\tconst container = this.headerContainer?.nativeElement;\r\n\t\tif (!container) {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tconst selectedHeader = this.allTabHeaders?.toArray()[this.currentSelectedTab]?.nativeElement;\r\n\t\tif (!selectedHeader) {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tconst containerRect = container.getBoundingClientRect();\r\n\t\tconst selectedRect = selectedHeader.getBoundingClientRect();\r\n\t\tconst halfTabHeight = VERTICAL_TAB_HEIGHT / 2;\r\n\r\n\t\tif (\r\n\t\t\tselectedRect.top - halfTabHeight < containerRect.top ||\r\n\t\t\tselectedRect.top - containerRect.top + VERTICAL_TAB_HEIGHT + halfTabHeight > containerRect.height\r\n\t\t) {\r\n\t\t\tcontainer.scrollTo({\r\n\t\t\t\ttop: Math.max(0, (this.currentSelectedTab - 1) * VERTICAL_TAB_HEIGHT),\r\n\t\t\t\tbehavior: \"smooth\"\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\tprotected setFirstTab() {\r\n\t\tsetTimeout(() => {\r\n\t\t\tlet firstTab = this.tabs.find(tab => tab.active);\r\n\t\t\tif (!firstTab && this.tabs.first) {\r\n\t\t\t\tfirstTab = this.tabs.first;\r\n\t\t\t\tfirstTab.active = true;\r\n\t\t\t}\r\n\t\t\tif (firstTab) {\r\n\t\t\t\tthis.currentSelectedTab = this.tabs.toArray().indexOf(firstTab);\r\n\t\t\t\tthis.activeIndex = this.currentSelectedTab;\r\n\t\t\t\tfirstTab.doSelect();\r\n\t\t\t\tthis.updateOverflowState();\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\tprivate listScrollHandler = () => this.updateOverflowState();\r\n}\r\n","import {\n\tComponent,\n\tforwardRef,\n\tInput\n} from \"@angular/core\";\nimport { NgTemplateOutlet } from \"@angular/common\";\nimport { Tab } from \"./tab.component\";\n\n/**\n * Icon-only approach for `cds-tab` variant: `[icon]` template plus `label` for tooltip.\n *\n * ```html\n * <ng-template #i><svg cdsIcon=\"activity\" size=\"16\"></svg></ng-template>\n * <cds-tabs>\n * <cds-icon-tab label=\"Activity\" [icon]=\"i\">Panel</cds-icon-tab>\n * </cds-tabs>\n * ```\n */\n@Component({\n\tselector: \"cds-icon-tab, ibm-icon-tab\",\n\ttemplate: `\n\t\t@if (shouldRender()) {\n\t\t\t@if (isTemplate(tabContent)) {\n\t\t\t\t<ng-template\n\t\t\t\t\t[ngTemplateOutlet]=\"tabContent\"\n\t\t\t\t\t[ngTemplateOutletContext]=\"{ $implicit: templateContext }\">\n\t\t\t\t</ng-template>\n\t\t\t}\n\t\t\t<ng-content></ng-content>\n\t\t}\n\t`,\n\tproviders: [\n\t\t{ provide: Tab, useExisting: forwardRef(() => IconTab) }\n\t],\n\timports: [NgTemplateOutlet]\n})\nexport class IconTab extends Tab {\n\t/**\n\t * Accessible label and tooltip text for the icon tab.\n\t */\n\t@Input()\n\tset label(value: string) {\n\t\tthis.iconLabel = value;\n\t}\n\n\tget label(): string {\n\t\treturn this.iconLabel;\n\t}\n\n\t/**\n\t * Icon tabs are only for icons, so iconOnly by default\n\t */\n\toverride iconOnly = true;\n}\n","import {\n\tComponent,\n\tHostBinding,\n\tInput\n} from \"@angular/core\";\n\n/**\n * Skeleton component for tabs\n */\n@Component({\n\tselector: \"cds-tabs-skeleton, ibm-tabs-skeleton\",\n\ttemplate: `\n\t\t<ul class=\"cds--tabs__nav\">\n\t\t\t@for (i of numOfSkeletonTabs; track i) {\n\t\t\t\t<li class=\"cds--tabs__nav-item\">\n\t\t\t\t\t<div class=\"cds--tabs__nav-link\">\n\t\t\t\t\t\t<span></span>\n\t\t\t\t\t</div>\n\t\t\t\t</li>\n\t\t\t}\n\t\t</ul>\n\t`,\n\tstandalone: true\n})\nexport class TabSkeleton {\n\t/**\n\t * Number of skeleton tab placeholders to render, default is 5\n\t */\n\t@Input() set numOftabs(num: number) {\n\t\tthis.numOfSkeletonTabs = new Array(num);\n\t}\n\n\t/**\n\t * Set to `true` to render the contained variant of the skeleton tabs.\n\t */\n\t@Input() contained = false;\n\n\t/**\n\t * Set to `true` to put tabs in a loading state.\n\t */\n\t@HostBinding(\"class.cds--skeleton\") skeleton = true;\n\t@HostBinding(\"class.cds--tabs\") tabs = true;\n\t@HostBinding(\"class.cds--tabs--contained\") get containedClass() {\n\t\treturn this.contained;\n\t}\n\tnumOfSkeletonTabs = new Array(5);\n}\n","import {\n\tComponent,\n\tInput,\n\tOutput,\n\tEventEmitter,\n\tContentChildren,\n\tQueryList,\n\tAfterContentInit,\n\tContentChild,\n\tOnChanges,\n\tSimpleChanges\n} from \"@angular/core\";\nimport { Tab } from \"./tab.component\";\nimport { TabHeaders } from \"./tab-headers.component\";\nimport { TabSkeleton } from \"./tab-skeleton.component\";\n\n/**\n * Build out your application's tabs using this component.\n * This is the parent of the `Tab` and `TabHeader` components.\n *\n * [See demo](../../?path=/story/components-tabs--basic)\n *\n * `Tabs` expects a set of `n-tab` elements\n *\n * ```html\n * <cds-tabs>\n * \t<cds-tab heading='tab1'>\n * \t\ttab 1 content\n * \t</cds-tab>\n * \t<cds-tab heading='tab1'>\n * \t\ttab 2 content\n * \t</cds-tab>\n * \t<!-- ... -->\n * \t<cds-tab heading='tab1'>\n * \t\ttab n content\n * \t</cds-tab>\n * </cds-tabs>\n * ```\n */\n@Component({\n\tselector: \"cds-tabs, ibm-tabs\",\n\ttemplate: `\n\t\t@if (skeleton) {\n\t\t\t<cds-tabs-skeleton [contained]=\"type === 'contained'\"></cds-tabs-skeleton>\n\t\t}\n\t\t@if (!skeleton) {\n\t\t\t@if (hasTabHeaders() && position === 'top') {\n\t\t\t\t<cds-tab-headers\n\t\t\t\t\t[theme]=\"theme\"\n\t\t\t\t\t[tabs]=\"tabs\"\n\t\t\t\t\t[followFocus]=\"followFocus\"\n\t\t\t\t\t[cacheActive]=\"cacheActive\"\n\t\t\t\t\t[contentBefore]=\"before\"\n\t\t\t\t\t[contentAfter]=\"after\"\n\t\t\t\t\t[ariaLabel]=\"ariaLabel\"\n\t\t\t\t\t[ariaLabelledby]=\"ariaLabelledby\"\n\t\t\t\t\t[type]=\"type\"\n\t\t\t\t\t[iconSize]=\"iconSize\"\n\t\t\t\t\t[fullWidth]=\"fullWidth\"\n\t\t\t\t\t[dismissable]=\"dismissable\"\n\t\t\t\t\t[scrollIntoView]=\"scrollIntoView\"\n\t\t\t\t\t[scrollDebounceWait]=\"scrollDebounceWait\"\n\t\t\t\t\t(tabClose)=\"tabClose.emit($event)\">\n\t\t\t\t</cds-tab-headers>\n\t\t\t}\n\t\t\t<ng-content></ng-content>\n\t\t\t<ng-template #before>\n\t\t\t\t<ng-content select=\"[before]\"></ng-content>\n\t\t\t</ng-template>\n\t\t\t<ng-template #after>\n\t\t\t\t<ng-content select=\"[after]\"></ng-content>\n\t\t\t</ng-template>\n\t\t\t@if (hasTabHeaders() && position === 'bottom') {\n\t\t\t\t<cds-tab-headers\n\t\t\t\t\t[tabs]=\"tabs\"\n\t\t\t\t\t[cacheActive]=\"cacheActive\"\n\t\t\t\t\t[type]=\"type\"\n\t\t\t\t\t[iconSize]=\"iconSize\"\n\t\t\t\t\t[fullWidth]=\"fullWidth\"\n\t\t\t\t\t[dismissable]=\"dismissable\"\n\t\t\t\t\t[scrollIntoView]=\"scrollIntoView\"\n\t\t\t\t\t[scrollDebounceWait]=\"scrollDebounceWait\"\n\t\t\t\t\t(tabClose)=\"tabClose.emit($event)\">\n\t\t\t\t</cds-tab-headers>\n\t\t\t}\n\t\t}\n\t`,\n\timports: [TabSkeleton, TabHeaders]\n})\nexport class Tabs implements AfterContentInit, OnChanges {\n\t/**\n\t * Takes either `top` or `bottom` to place `TabHeader` relative to the tab panels.\n\t */\n\t@Input() position: \"top\" | \"bottom\" = \"top\";\n\t/**\n\t * Set to `true` to have `Tab` items cached and not reloaded on tab switching.\n\t */\n\t@Input() cacheActive = false;\n\t/**\n\t * Set to 'true' to have tabs automatically activated and have their content displayed when they receive focus.\n\t */\n\t@Input() followFocus = true;\n\t/**\n\t * When `true`, sets each tab panel `tabindex` to `-1` for navigation-style usage.\n\t */\n\t@Input() isNavigation = false;\n\t/**\n\t * Sets the aria label on the `TabHeader`s nav element.\n\t */\n\t@Input() ariaLabel: string;\n\t/**\n\t * Sets the aria labelledby on the `TabHeader`s nav element.\n\t */\n\t@Input() ariaLabelledby: string;\n\t/**\n\t * Visual style of the tab headers: `line` or `contained`.\n\t */\n\t@Input() type: \"line\" | \"contained\" = \"line\";\n\t/**\n\t * Theme for tab headers: `light` or `dark`.\n\t */\n\t@Input() theme: \"light\" | \"dark\" = \"dark\";\n\t/**\n\t * When `true`, renders the tabs skeleton loading state.\n\t */\n\t@Input() skeleton = false;\n\t/**\n\t * When using icon-only tabs, icon size: `default` (16px) or `lg` (20px).\n\t */\n\t@Input() iconSize: \"default\" | \"lg\";\n\t/**\n\t * Evenly sized tabs across the row (contained, fewer than 9 tabs).\n\t */\n\t@Input() fullWidth = false;\n\t/**\n\t * Show a close control on each tab.\n\t */\n\t@Input() dismissable = false;\n\t/**\n\t * Scroll the active tab into view on focus/select.\n\t */\n\t@Input() scrollIntoView = false;\n\t/**\n\t * Debounce (ms) for tab list scroll events; affects overflow chevron updates.\n\t */\n\t@Input() scrollDebounceWait = 200;\n\n\t/**\n\t * Emits when a tab close control is used (with `dismissable`).\n\t * The emitted value is the tab index.\n\t */\n\t@Output() tabClose: EventEmitter<number> = new EventEmitter<number>();\n\n\t/**\n\t * Maintains a `QueryList` of the `Tab` elements and updates if `Tab`s are added or removed.\n\t */\n\t@ContentChildren(Tab, { descendants: false }) tabs: QueryList<Tab>;\n\t/**\n\t * Content child of the projected header component\n\t */\n\t@ContentChild(TabHeaders) tabHeaders;\n\n\t/**\n\t * After content is initialized update `Tab`s to cache (if turned on) and set the initial\n\t * selected Tab item.\n\t */\n\tngAfterContentInit() {\n\t\tif (this.tabHeaders) {\n\t\t\tthis.tabHeaders.cacheActive = this.cacheActive;\n\t\t}\n\n\t\tthis.tabs.forEach(tab => {\n\t\t\ttab.tabIndex = this.isNavigation ? null : 0;\n\t\t});\n\t}\n\n\tngOnChanges(changes: SimpleChanges) {\n\t\tif (this.tabHeaders && changes.cacheActive) {\n\t\t\tthis.tabHeaders.cacheActive = this.cacheActive;\n\t\t}\n\n\t\tif (this.tabs && changes.isNavigation) {\n\t\t\tthis.tabs.forEach(tab => {\n\t\t\t\ttab.tabIndex = this.isNavigation ? null : 0;\n\t\t\t});\n\t\t}\n\t}\n\n\t/**\n\t * true if the cds-tab's are passed directly to the component as children\n\t */\n\thasTabHeaders() {\n\t\treturn this.tabs.length > 0;\n\t}\n}\n","import {\r\n\tComponent,\r\n\tInput,\r\n\tContentChildren,\r\n\tQueryList,\r\n\tAfterContentInit,\r\n\tContentChild,\r\n\tHostBinding,\r\n\tOnChanges,\r\n\tSimpleChanges\r\n} from \"@angular/core\";\r\nimport { Tab } from \"./tab.component\";\r\nimport { TabHeadersVertical } from \"./tab-headers-vertical.component\";\r\nimport { TabSkeleton } from \"./tab-skeleton.component\";\r\n\r\n/**\r\n * `TabsVertical` is a vertical-orientation variant of `Tabs`. It expects a set\r\n * of `<cds-tab>` elements as children and renders the headers vertically.\r\n *\r\n * ```html\r\n * <cds-tabs-vertical>\r\n * \t<cds-tab heading='tab1'>tab 1 content</cds-tab>\r\n * \t<cds-tab heading='tab2'>tab 2 content</cds-tab>\r\n * </cds-tabs-vertical>\r\n * ```\r\n */\r\n@Component({\n\tselector: \"cds-tabs-vertical, ibm-tabs-vertical\",\n\ttemplate: `\r\n\t\t@if (skeleton) {\r\n\t\t\t<cds-tabs-skeleton [contained]=\"true\"></cds-tabs-skeleton>\r\n\t\t}\r\n\t\t@if (!skeleton) {\r\n\t\t\t@if (hasTabHeaders()) {\r\n\t\t\t\t<cds-tab-headers-vertical\r\n\t\t\t\t\t[tabs]=\"tabs\"\r\n\t\t\t\t\t[followFocus]=\"followFocus\"\r\n\t\t\t\t\t[cacheActive]=\"cacheActive\"\r\n\t\t\t\t\t[contentBefore]=\"before\"\r\n\t\t\t\t\t[contentAfter]=\"after\"\r\n\t\t\t\t\t[ariaLabel]=\"ariaLabel\"\r\n\t\t\t\t\t[ariaLabelledby]=\"ariaLabelledby\">\r\n\t\t\t\t</cds-tab-headers-vertical>\r\n\t\t\t}\r\n\t\t\t<ng-content></ng-content>\r\n\t\t\t<ng-template #before>\r\n\t\t\t\t<ng-content select=\"[before]\"></ng-content>\r\n\t\t\t</ng-template>\r\n\t\t\t<ng-template #after>\r\n\t\t\t\t<ng-content select=\"[after]\"></ng-content>\r\n\t\t\t</ng-template>\r\n\t\t}\r\n\t`,\n\timports: [TabSkeleton, TabHeadersVertical]\n})\r\nexport class TabsVertical implements AfterContentInit, OnChanges {\r\n\t@HostBinding(\"class.cds--css-grid\") cssGridClass = true;\r\n\t@HostBinding(\"style.height\") get hostHeight() {\r\n\t\treturn this.height || null;\r\n\t}\r\n\t/**\r\n\t * Set to `true` to have `Tab` items cached and not reloaded on tab switching.\r\n\t */\r\n\t@Input() cacheActive = false;\r\n\t/**\r\n\t * Set to 'true' to have tabs automatically activated and have their content displayed when they receive focus.\r\n\t */\r\n\t@Input() followFocus = true;\r\n\t/**\r\n\t * When `true`, sets each tab panel `tabindex` to `-1` for navigation-style usage.\r\n\t */\r\n\t@Input() isNavigation = false;\r\n\t/**\r\n\t * Sets the aria label on the `TabHeadersVertical`s nav element.\r\n\t */\r\n\t@Input() ariaLabel: string;\r\n\t/**\r\n\t * Sets the aria labelledby on the `TabHeadersVertical`s nav element.\r\n\t */\r\n\t@Input() ariaLabelledby: string;\r\n\t/**\r\n\t * **Optional**: explicit height for the vertical tab list container; accepts any\r\n\t * valid CSS height value.\r\n\t */\r\n\t@Input() height: string;\r\n\t/**\r\n\t * When `true`, renders the tabs skeleton loading state.\r\n\t */\r\n\t@Input() skeleton = false;\r\n\r\n\t/**\r\n\t * Maintains a `QueryList` of the `Tab` elements and updates if `Tab`s are added or removed.\r\n\t */\r\n\t@ContentChildren(Tab, { descendants: false }) tabs: QueryList<Tab>;\r\n\t/**\r\n\t * Content child of the projected header component.\r\n\t */\r\n\t@ContentChild(TabHeadersVertical) tabHeaders;\r\n\r\n\tngAfterContentInit() {\r\n\t\tif (this.tabHeaders) {\r\n\t\t\tthis.tabHeaders.cacheActive = this.cacheActive;\r\n\t\t}\r\n\t\tthis.tabs.forEach(tab => {\r\n\t\t\ttab.tabIndex = this.isNavigation ? null : 0;\r\n\t\t});\r\n\t}\r\n\r\n\tngOnChanges(changes: SimpleChanges) {\r\n\t\tif (this.tabHeaders && changes.cacheActive) {\r\n\t\t\tthis.tabHeaders.cacheActive = this.cacheActive;\r\n\t\t}\r\n\t\tif (this.tabs && changes.isNavigation) {\r\n\t\t\tthis.tabs.forEach(tab => {\r\n\t\t\t\ttab.tabIndex = this.isNavigation ? null : 0;\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\thasTabHeaders() {\r\n\t\treturn this.tabs.length > 0;\r\n\t}\r\n}\r\n","import {\r\n\tComponent,\r\n\tHostBinding,\r\n\tInput\r\n} from \"@angular/core\";\r\n\r\n/**\r\n * `TabsVerticalGrouped` is the vertical-orientation counterpart of the\r\n * \"tab-header-group\" composition pattern. It is a thin wrapper that\r\n * supplies the layout context (`cds--css-grid` and an explicit height).\r\n *\r\n * ```html\r\n * <cds-tabs-vertical-grouped height=\"400px\">\r\n * <cds-tab-header-group-vertical>\r\n * <cds-tab-header [paneReference]=\"content1\">Dashboard</cds-tab-header>\r\n * <cds-tab-header [paneReference]=\"content2\"\r\n * secondaryLabel=\"(21/25)\" [dismissable]=\"true\">\r\n * Monitoring\r\n * </cds-tab-header>\r\n * </cds-tab-header-group-vertical>\r\n *\r\n * <cds-tab #content1>Tab Content 1</cds-tab>\r\n * <cds-tab #content2>Tab Content 2</cds-tab>\r\n * </cds-tabs-vertical-grouped>\r\n * ```\r\n */\r\n@Component({\r\n\tselector: \"cds-tabs-vertical-grouped, ibm-tabs-vertical-grouped\",\r\n\ttemplate: `<ng-content></ng-content>`,\r\n\tstandalone: true\r\n})\r\nexport class TabsVerticalGrouped {\r\n\t/**\r\n\t * **Optional**: explicit height for the vertical tab list container. Accepts\r\n\t * any valid CSS height value.\r\n\t */\r\n\t@Input() height: string;\r\n\r\n\t@HostBinding(\"class.cds--css-grid\") cssGridClass = true;\r\n\r\n\t@HostBinding(\"style.height\") get hostHeight() {\r\n\t\treturn this.height || null;\r\n\t}\r\n}\r\n","import { NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\nimport { UtilsModule } from \"carbon-components-angular/utils\";\nimport { I18nModule } from \"carbon-components-angular/i18n\";\n\nimport { TabSkeleton } from \"./tab-skeleton.component\";\nimport { BaseTabHeader } from \"./base-tab-header.component\";\nimport { Tabs } from \"./tabs.component\";\nimport { TabsVertical } from \"./tabs-vertical.component\";\nimport { TabsVerticalGrouped } from \"./tabs-vertical-grouped.component\";\nimport { Tab } from \"./tab.component\";\nimport { IconTab } from \"./icon-tab.component\";\nimport { TabHeader } from \"./tab-header.directive\";\nimport { TabHeaderComponent } from \"./tab-header.component\";\nimport { TabHeaders } from \"./tab-headers.component\";\nimport { TabHeadersVertical } from \"./tab-headers-vertical.component\";\nimport { TabHeaderGroup } from \"./tab-header-group.component\";\nimport { TabHeaderGroupVertical } from \"./tab-header-group-vertical.component\";\n\n@NgModule({\n\texports: [\n\t\tTabs,\n\t\tTabsVertical,\n\t\tTabsVerticalGrouped,\n\t\tTab,\n\t\tIconTab,\n\t\tTabHeader,\n\t\tTabHeaderComponent,\n\t\tTabHeaders,\n\t\tTabHeadersVertical,\n\t\tTabHeaderGroup,\n\t\tTabHeaderGroupVertical,\n\t\tTabSkeleton\n\t],\n\timports: [\n\t\tCommonModule,\n\t\tUtilsModule,\n\t\tI18nModule,\n\t\tBaseTabHeader,\n\t\tTabs,\n\t\tTabsVertical,\n\t\tTabsVerticalGrouped,\n\t\tTab,\n\t\tIconTab,\n\t\tTabHeader,\n\t\tTabHeaderComponent,\n\t\tTabHeaders,\n\t\tTabHeadersVertical,\n\t\tTabHeaderGroup,\n\t\tTabHeaderGroupVertical,\n\t\tTabSkeleton\n\t]\n})\nexport class TabsModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["VERTICAL_TAB_HEIGHT"],"mappings":"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"}
1
+ {"version":3,"file":"carbon-components-angular-tabs.mjs","sources":["../../src/tabs/base-tab-header.component.ts","../../src/tabs/tab-header.directive.ts","../../src/tabs/tab-header-group.component.ts","../../src/tabs/tab-header-group-vertical.component.ts","../../src/tabs/tab-header.component.ts","../../src/tabs/tab.component.ts","../../src/tabs/tab-headers.component.ts","../../src/tabs/tab-headers-vertical.component.ts","../../src/tabs/icon-tab.component.ts","../../src/tabs/tab-skeleton.component.ts","../../src/tabs/tabs.component.ts","../../src/tabs/tabs-vertical.component.ts","../../src/tabs/tabs-vertical-grouped.component.ts","../../src/tabs/tabs.module.ts","../../src/tabs/carbon-components-angular-tabs.ts"],"sourcesContent":["import {\n\tComponent,\n\tInput,\n\tViewChild,\n\tElementRef,\n\tTemplateRef,\n\tChangeDetectorRef,\n\tHostBinding,\n\tRenderer2\n} from \"@angular/core\";\nimport { EventService } from \"carbon-components-angular/utils\";\n\n/**\n * There are two ways to create a tab, this class is a collection of features\n * & metadata required by both.\n */\n@Component({\n\ttemplate: \"\",\n\tstandalone: true,\n\tproviders: [EventService]\n})\nexport class BaseTabHeader {\n\t/**\n\t * Set to `true` to have `Tab` items cached and not reloaded on tab switching.\n\t * Duplicated from `cds-tabs` to support standalone headers.\n\t */\n\t@Input() cacheActive = false;\n\t/**\n\t * Set to 'true' to have tabs automatically activated and have their content displayed when they receive focus.\n\t */\n\t@Input() followFocus: boolean;\n\t/**\n\t * Sets the aria label on the nav element.\n\t */\n\t@Input() ariaLabel: string;\n\t/**\n\t * Sets the aria labelledby on the nav element.\n\t */\n\t@Input() ariaLabelledby: string;\n\n\t/**\n\t * Template projected before tab items inside the tab list.\n\t */\n\t@Input() contentBefore: TemplateRef<any>;\n\t/**\n\t * Template projected after tab items inside the tab list.\n\t */\n\t@Input() contentAfter: TemplateRef<any>;\n\n\t/**\n\t * Visual style of the tab list: `line` or `contained`.\n\t */\n\t@Input() type: \"line\" | \"contained\" = \"line\";\n\t/**\n\t * Theme for contained tabs: `dark` or `light`.\n\t */\n\t@Input() theme: \"dark\" | \"light\" = \"dark\";\n\n\t/**\n\t * When using icon-only tabs, icon size: `default` (16px) or `lg` (20px).\n\t */\n\t@Input() iconSize: \"default\" | \"lg\";\n\n\t/**\n\t * **Contained only**: Evenly sized tabs across the row (**must** have fewer than 9 tabs).\n\t */\n\t@Input() fullWidth = false;\n\n\t/**\n\t * Show a close control on each tab.\n\t */\n\t@Input() dismissable = false;\n\n\t/**\n\t * Scroll the active tab into view on focus/select.\n\t */\n\t@Input() scrollIntoView = false;\n\n\t/**\n\t * Debounce (ms) for tab list scroll events; affects overflow chevron updates.\n\t */\n\t@Input() scrollDebounceWait = 200;\n\n\t@HostBinding(\"class.cds--tabs\") tabsClass = true;\n\t@HostBinding(\"class.cds--tabs--contained\") get containedClass() {\n\t\treturn this.type === \"contained\";\n\t}\n\t@HostBinding(\"class.cds--tabs--light\") get themeClass() {\n\t\treturn this.theme === \"light\";\n\t}\n\t@HostBinding(\"class.cds--tabs--dismissable\") get dismissableClass() {\n\t\treturn this.dismissable;\n\t}\n\t@HostBinding(\"class.cds--tabs__icon--default\") get iconSizeDefaultClass() {\n\t\treturn this.iconSize === \"default\";\n\t}\n\t@HostBinding(\"class.cds--tabs__icon--lg\") get iconSizeLgClass() {\n\t\treturn this.iconSize === \"lg\";\n\t}\n\t@HostBinding(\"class.cds--layout--size-lg\") get layoutSizeLgClass() {\n\t\treturn this.iconSize === \"lg\";\n\t}\n\n\t/**\n\t * Gets the Unordered List element that holds the `Tab` headings from the view DOM.\n\t */\n\t@ViewChild(\"tabList\", { static: true }) headerContainer;\n\n\t/**\n\t * Controls the manual focusing done by tabbing through headings.\n\t */\n\tcurrentSelectedTab: number;\n\t// width of the overflow buttons\n\treadonly OVERFLOW_BUTTON_OFFSET = 44;\n\treadonly longPressMultiplier = 3;\n\treadonly clickMultiplier = 1.5;\n\n\tprotected longPressInterval = null;\n\tprotected tickInterval = null;\n\tprotected scrollDebounceTimer: any = null;\n\n\tget hasHorizontalOverflow() {\n\t\tconst tabList = this.headerContainer.nativeElement;\n\t\treturn tabList.scrollWidth > tabList.clientWidth;\n\t}\n\n\tget leftOverflowNavButtonHidden() {\n\t\tconst tabList = this.headerContainer.nativeElement;\n\t\treturn !this.hasHorizontalOverflow || !tabList.scrollLeft;\n\t}\n\n\tget rightOverflowNavButtonHidden() {\n\t\tconst tabList = this.headerContainer.nativeElement;\n\t\treturn !this.hasHorizontalOverflow ||\n\t\t\t(tabList.scrollLeft + tabList.clientWidth) === tabList.scrollWidth;\n\t}\n\n\tconstructor(\n\t\tprotected elementRef: ElementRef,\n\t\tprotected changeDetectorRef: ChangeDetectorRef,\n\t\tprotected eventService: EventService,\n\t\tprotected renderer: Renderer2\n\t) {}\n\n\thandleScroll() {\n\t\t// Debounce the change detection trigger so the scroll arrow visibility\n\t\t// updates do not fire on every scroll tick.\n\t\tif (this.scrollDebounceWait <= 0) {\n\t\t\tthis.changeDetectorRef.markForCheck();\n\t\t\treturn;\n\t\t}\n\t\tclearTimeout(this.scrollDebounceTimer);\n\t\tthis.scrollDebounceTimer = setTimeout(() => {\n\t\t\tthis.changeDetectorRef.markForCheck();\n\t\t}, this.scrollDebounceWait);\n\t}\n\n\thandleOverflowNavClick(direction: number, numOftabs = 0) {\n\t\tconst tabList = this.headerContainer.nativeElement;\n\n\t\tconst { clientWidth, scrollLeft, scrollWidth } = tabList;\n\t\tif (direction > 0) {\n\t\t\ttabList.scrollLeft = Math.min(scrollLeft + (scrollWidth / numOftabs) * this.clickMultiplier,\n\t\t\t\tscrollWidth - clientWidth);\n\t\t} else if (direction < 0) {\n\t\t\ttabList.scrollLeft = Math.max(scrollLeft - (scrollWidth / numOftabs) * this.clickMultiplier, 0);\n\t\t}\n\t}\n\n\thandleOverflowNavMouseDown(direction: number) {\n\t\tconst tabList = this.headerContainer.nativeElement;\n\n\t\tthis.longPressInterval = setTimeout(() => {\n\t\t\t// Manually overriding scroll behvior to `auto` to make animation work correctly\n\t\t\tthis.renderer.setStyle(tabList, \"scroll-behavior\", \"auto\");\n\n\t\t\tthis.tickInterval = setInterval(() => {\n\t\t\t\ttabList.scrollLeft += (direction * this.longPressMultiplier);\n\t\t\t\t// clear interval if scroll reaches left or right edge\n\t\t\t\tif (this.leftOverflowNavButtonHidden || this.rightOverflowNavButtonHidden) {\n\t\t\t\t\treturn () => {\n\t\t\t\t\t\tclearInterval(this.tickInterval);\n\t\t\t\t\t\tthis.handleOverflowNavMouseUp();\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t});\n\n\t\t\treturn () => clearInterval(this.longPressInterval);\n\t\t}, 500);\n\t}\n\n\t/**\n\t * Clear intervals/Timeout & reset scroll behavior\n\t */\n\thandleOverflowNavMouseUp() {\n\t\tclearInterval(this.tickInterval);\n\t\tclearTimeout(this.longPressInterval);\n\n\t\t// Reset scroll behavior\n\t\tthis.renderer.setStyle(this.headerContainer.nativeElement, \"scroll-behavior\", \"smooth\");\n\t}\n}\n","import {\n\tDirective,\n\tInput,\n\tOutput,\n\tEventEmitter,\n\tElementRef,\n\tAfterViewInit,\n\tHostBinding,\n\tHostListener,\n\tTemplateRef,\n\tforwardRef\n} from \"@angular/core\";\n\nimport { Tab } from \"./tab.component\";\n\n/**\n * Shared inputs, outputs, and selection logic for `[cdsTabHeader]`\n * and `cds-tab-header` as we prepare for deprecation.\n * Groups use `@ContentChildren(TabHeaderBase)` so both forms appear in DOM order,\n * subclasses supply the template and host behavior.\n */\n@Directive()\n\nexport abstract class TabHeaderBase {\n\t/**\n\t * Set to 'true' to have pane reference cached and not reloaded on tab switching.\n\t */\n\t@Input() set cacheActive(shouldCache: boolean) {\n\t\tthis._cacheActive = shouldCache;\n\n\t\t// Updates the pane references associated with the tab header when cache active is changed.\n\t\tif (this.paneReference) {\n\t\t\tthis.paneReference.cacheActive = this.cacheActive;\n\t\t}\n\t}\n\n\tget cacheActive() {\n\t\treturn this._cacheActive;\n\t}\n\n\t/**\n\t * Sets `tabIndex` on the linked `Tab` pane when the pane reference is set.\n\t */\n\t@Input() set paneTabIndex(tabIndex: number | null) {\n\t\tif (this.paneReference) {\n\t\t\tthis.paneReference.tabIndex = tabIndex;\n\t\t}\n\t}\n\n\t/**\n\t * Selected tab; controls whether the linked pane content is shown.\n\t */\n\t@Input() active = false;\n\n\t/**\n\t * Indicates whether or not the `Tab` item is disabled.\n\t */\n\t@Input() disabled = false;\n\n\t/**\n\t * Icon template; used with `cds-tab-header` / `cds-tab-header-group`.\n\t */\n\t@Input() icon: TemplateRef<any>;\n\n\t/**\n\t * Optional secondary label rendered below the primary tab label.\n\t * Only displayed when the parent group is using `type=\"contained\"`.\n\t */\n\t@Input() secondaryLabel: string;\n\n\t/**\n\t * Set to `true` to render this tab header as dismissable.\n\t */\n\t@Input() dismissable = false;\n\n\t/**\n\t * Reference to the corresponding tab pane.\n\t */\n\t@Input() paneReference: Tab;\n\n\t/**\n\t * Title attribute used as the tooltip for the tab item. Falls back to the tab item's text content if not provided.\n\t */\n\t@Input() title: string;\n\n\t/**\n\t * Emits when this header becomes selected.\n\t */\n\t@Output() selected = new EventEmitter<any>();\n\n\t/**\n\t * Emits when this tabs's close button is pressed.\n\t */\n\t@Output() tabClose = new EventEmitter<void>();\n\n\tprotected _cacheActive = false;\n\n\t/**\n\t * Move keyboard focus to the tab item.\n\t */\n\tabstract focus(): void;\n\n\t/**\n\t * Activates the linked pane and emits `selected`.\n\t */\n\tselectTab() {\n\t\tthis.focus();\n\t\tif (!this.disabled) {\n\t\t\tthis.selected.emit();\n\t\t\tthis.active = true;\n\t\t\tif (this.paneReference) {\n\t\t\t\tthis.paneReference.active = true;\n\t\t\t}\n\t\t}\n\t}\n}\n\n/**\n * Tab header as an attribute on a focusable host inside `cds-tab-header-group`.\n *\n * @deprecated as of v5.\n * Prefer `cds-tab-header` for icons, secondary labels, dismissable close, and icon-only tabs.\n */\n@Directive({\n\tselector: \"[cdsTabHeader], [ibmTabHeader]\",\n\tstandalone: true,\n\tproviders: [\n\t\t{ provide: TabHeaderBase, useExisting: forwardRef(() => TabHeader) }\n\t]\n})\nexport class TabHeader extends TabHeaderBase implements AfterViewInit {\n\t@HostBinding(\"attr.tabIndex\") get tabIndex() {\n\t\treturn this.active ? 0 : -1;\n\t}\n\n\t@HostBinding(\"class.cds--tabs__nav-item--selected\") get isSelected() {\n\t\treturn this.active;\n\t}\n\n\t@HostBinding(\"class.cds--tabs__nav-item--disabled\") get isDisabled() {\n\t\treturn this.disabled;\n\t}\n\n\t@HostBinding(\"attr.type\") type = \"button\";\n\t@HostBinding(\"attr.aria-selected\") get ariaSelected() {\n\t\treturn this.active;\n\t}\n\t@HostBinding(\"attr.aria-disabled\") get ariaDisabled() {\n\t\treturn this.disabled;\n\t}\n\t@HostBinding(\"class.cds--tabs__nav-item\") navItem = true;\n\t@HostBinding(\"class.cds--tabs__nav-link\") navLink = true;\n\t@HostBinding(\"attr.title\") get hostTitle() {\n\t\treturn this.title ?? null;\n\t}\n\n\tconstructor(private host: ElementRef) {\n\t\tsuper();\n\t}\n\n\t@HostListener(\"click\")\n\tonClick() {\n\t\tthis.selectTab();\n\t}\n\n\t@HostListener(\"keydown\", [\"$event\"])\n\tonKeyDown(event: KeyboardEvent) {\n\t\tif (this.dismissable && event.key === \"Delete\") {\n\t\t\tevent.stopPropagation();\n\t\t\tthis.tabClose.emit();\n\t\t}\n\t}\n\n\tngAfterViewInit() {\n\t\tsetTimeout(() => {\n\t\t\tthis.title = this.title ? this.title : this.host.nativeElement.textContent;\n\t\t});\n\t}\n\n\tfocus() {\n\t\tthis.host.nativeElement.focus();\n\t}\n}\n","import {\n\tComponent,\n\tQueryList,\n\tInput,\n\tOutput,\n\tEventEmitter,\n\tHostBinding,\n\tHostListener,\n\tContentChildren,\n\tAfterContentInit,\n\tElementRef,\n\tOnChanges,\n\tSimpleChanges,\n\tChangeDetectorRef,\n\tViewChild,\n\tOnInit,\n\tOnDestroy,\n\tRenderer2\n} from \"@angular/core\";\n\nimport { Subscription } from \"rxjs\";\nimport { EventService } from \"carbon-components-angular/utils\";\nimport { I18n } from \"carbon-components-angular/i18n\";\n\nimport { TabHeaderBase } from \"./tab-header.directive\";\nimport { BaseTabHeader } from \"./base-tab-header.component\";\nimport { NgClass, NgTemplateOutlet } from \"@angular/common\";\n\n@Component({\n\tselector: \"cds-tab-header-group, ibm-tab-header-group\",\n\ttemplate: `\n\t\t<button\n\t\t\ttype=\"button\"\n\t\t\tclass=\"cds--tab--overflow-nav-button cds--tab--overflow-nav-button--previous\"\n\t\t\t[ngClass]=\"{\n\t\t\t\t'cds--tab--overflow-nav-button--hidden': leftOverflowNavButtonHidden\n\t\t\t}\"\n\t\t\t[attr.aria-hidden]=\"leftOverflowNavButtonHidden\"\n\t\t\t[attr.tabindex]=\"-1\"\n\t\t\t[attr.aria-label]=\"translations.BUTTON_ARIA_LEFT\"\n\t\t\t[attr.title]=\"translations.BUTTON_ARIA_LEFT\"\n\t\t\t(click)=\"handleOverflowNavClick(-1, tabHeaderQuery.length)\"\n\t\t\t(pointerdown)=\"handleOverflowNavMouseDown(-1)\"\n\t\t\t(pointerup)=\"handleOverflowNavMouseUp()\"\n\t\t\t(pointerleave)=\"handleOverflowNavMouseUp()\"\n\t\t\t(pointerout)=\"handleOverflowNavMouseUp()\"\n\t\t\t(pointercancel)=\"handleOverflowNavMouseUp()\">\n\t\t\t<svg\n\t\t\t\tfocusable=\"false\"\n\t\t\t\tpreserveAspectRatio=\"xMidYMid meet\"\n\t\t\t\txmlns=\"http://www.w3.org/2000/svg\"\n\t\t\t\tfill=\"currentColor\"\n\t\t\t\twidth=\"16\"\n\t\t\t\theight=\"16\"\n\t\t\t\tviewBox=\"0 0 16 16\"\n\t\t\t\taria-hidden=\"true\">\n\t\t\t\t<path d=\"M5 8L10 3 10.7 3.7 6.4 8 10.7 12.3 10 13z\"></path>\n\t\t\t</svg>\n\t\t</button>\n\t\t<div\n\t\t\tclass=\"cds--tab--list\"\n\t\t\trole=\"tablist\"\n\t\t\t[attr.aria-label]=\"ariaLabel || translations.HEADER_ARIA_LABEL\"\n\t\t\t[attr.aria-labelledby]=\"ariaLabelledby || null\"\n\t\t\t(scroll)=\"handleScroll()\"\n\t\t\t#tabList>\n\t\t\t<ng-container [ngTemplateOutlet]=\"contentBefore\" />\n\t\t\t<ng-content />\n\t\t\t<ng-container [ngTemplateOutlet]=\"contentAfter\" />\n\t\t</div>\n\t\t<button\n\t\t\ttype=\"button\"\n\t\t\tclass=\"cds--tab--overflow-nav-button cds--tab--overflow-nav-button--next\"\n\t\t\t[ngClass]=\"{\n\t\t\t\t'cds--tab--overflow-nav-button--hidden': rightOverflowNavButtonHidden\n\t\t\t}\"\n\t\t\t[attr.aria-hidden]=\"rightOverflowNavButtonHidden\"\n\t\t\t[attr.tabindex]=\"-1\"\n\t\t\t[attr.aria-label]=\"translations.BUTTON_ARIA_RIGHT\"\n\t\t\t[attr.title]=\"translations.BUTTON_ARIA_RIGHT\"\n\t\t\t(click)=\"handleOverflowNavClick(1, tabHeaderQuery.length)\"\n\t\t\t(pointerdown)=\"handleOverflowNavMouseDown(1)\"\n\t\t\t(pointerup)=\"handleOverflowNavMouseUp()\"\n\t\t\t(pointerleave)=\"handleOverflowNavMouseUp()\"\n\t\t\t(pointerout)=\"handleOverflowNavMouseUp()\"\n\t\t\t(pointercancel)=\"handleOverflowNavMouseUp()\">\n\t\t\t<svg\n\t\t\t\tfocusable=\"false\"\n\t\t\t\tpreserveAspectRatio=\"xMidYMid meet\"\n\t\t\t\txmlns=\"http://www.w3.org/2000/svg\"\n\t\t\t\tfill=\"currentColor\"\n\t\t\t\twidth=\"16\"\n\t\t\t\theight=\"16\"\n\t\t\t\tviewBox=\"0 0 16 16\"\n\t\t\t\taria-hidden=\"true\">\n\t\t\t\t<path d=\"M11 8L6 13 5.3 12.3 9.6 8 5.3 3.7 6 3z\"></path>\n\t\t\t</svg>\n\t\t</button>\n\t`,\n\tproviders: [EventService],\n\timports: [NgClass, NgTemplateOutlet]\n})\nexport class TabHeaderGroup extends BaseTabHeader implements AfterContentInit, OnChanges, OnInit, OnDestroy {\n\n\t@HostBinding(\"class.cds--tabs--full-width\") get fullWidthClass() {\n\t\treturn this.distributeWidth;\n\t}\n\n\t/**\n\t * We use taller rows when any header has a secondary label.\n\t */\n\t@HostBinding(\"class.cds--tabs--tall\") get tallClass(): boolean {\n\t\treturn this.hasSecondaryLabelTabs;\n\t}\n\n\tget hasSecondaryLabelTabs(): boolean {\n\t\tif (!this.tabHeaderQuery || this.type !== \"contained\") {\n\t\t\treturn false;\n\t\t}\n\t\treturn this.tabHeaderQuery.toArray().some(\n\t\t\th =>\n\t\t\t\th.secondaryLabel != null &&\n\t\t\t\tString(h.secondaryLabel).trim() !== \"\"\n\t\t);\n\t}\n\n\t/**\n\t * True when `fullWidth` applies (contained, fewer than 9 headers).\n\t */\n\tget distributeWidth(): boolean {\n\t\treturn (\n\t\t\tthis.fullWidth &&\n\t\t\tthis.type === \"contained\" &&\n\t\t\t(this.tabHeaderQuery ? this.tabHeaderQuery.length < 9 : false)\n\t\t);\n\t}\n\t/**\n\t * i18n strings for overflow controls and the tab list `aria-label` fallback.\n\t */\n\t@Input() translations = this.i18n.get().TABS;\n\n\t/**\n\t * When `true`, sets each tab panel `tabindex` to `-1` for navigation-style usage.\n\t */\n\t@Input() isNavigation = false;\n\n\t/**\n\t * Emits when a tab close control is used (with `dismissable`).\n\t * The emitted value is the tab index.\n\t */\n\t@Output() tabClose: EventEmitter<number> = new EventEmitter<number>();\n\n\t/**\n\t * Projected tab headers (`TabHeaderBase`: directive or `cds-tab-header`).\n\t */\n\t@ContentChildren(TabHeaderBase) tabHeaderQuery: QueryList<TabHeaderBase>;\n\n\t@ViewChild(\"tabList\", { static: true }) headerContainer;\n\tselectedSubscriptionTracker = new Subscription();\n\tcloseSubscriptionTracker = new Subscription();\n\n\t/**\n\t * Index of the selected tab for keyboard logic.\n\t */\n\tcurrentSelectedTab = 0;\n\n\t/**\n\t * Focused tab index when `followFocus` is false (manual activation).\n\t */\n\tactiveIndex: number | null = null;\n\n\tconstructor(\n\t\tprotected elementRef: ElementRef,\n\t\tprotected changeDetectorRef: ChangeDetectorRef,\n\t\tprotected eventService: EventService,\n\t\tprotected renderer: Renderer2,\n\t\tprotected i18n: I18n\n\t) {\n\t\tsuper(elementRef, changeDetectorRef, eventService, renderer);\n\t}\n\n\t@HostListener(\"keydown\", [\"$event\"])\n\tkeyboardInput(event) {\n\t\tconst tabHeadersArray = this.tabHeaderQuery.toArray();\n\n\t\tif (event.key === \"ArrowRight\") {\n\t\t\tif (this.currentSelectedTab < tabHeadersArray.length - 1) {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tif (this.followFocus && !tabHeadersArray[this.currentSelectedTab + 1].disabled) {\n\t\t\t\t\ttabHeadersArray[this.currentSelectedTab + 1].selectTab();\n\t\t\t\t} else {\n\t\t\t\t\ttabHeadersArray[this.currentSelectedTab + 1].focus();\n\t\t\t\t\tthis.currentSelectedTab++;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tif (this.followFocus && !tabHeadersArray[0].disabled) {\n\t\t\t\t\ttabHeadersArray[0].selectTab();\n\t\t\t\t} else {\n\t\t\t\t\ttabHeadersArray[0].focus();\n\t\t\t\t\tthis.currentSelectedTab = 0;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif (event.key === \"ArrowLeft\") {\n\t\t\tif (this.currentSelectedTab > 0) {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tif (this.followFocus && !tabHeadersArray[this.currentSelectedTab - 1].disabled) {\n\t\t\t\t\ttabHeadersArray[this.currentSelectedTab - 1].selectTab();\n\t\t\t\t} else {\n\t\t\t\t\ttabHeadersArray[this.currentSelectedTab - 1].focus();\n\t\t\t\t\tthis.currentSelectedTab--;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tif (this.followFocus && !tabHeadersArray[tabHeadersArray.length - 1].disabled) {\n\t\t\t\t\ttabHeadersArray[tabHeadersArray.length - 1].selectTab();\n\t\t\t\t} else {\n\t\t\t\t\ttabHeadersArray[tabHeadersArray.length - 1].focus();\n\t\t\t\t\tthis.currentSelectedTab = tabHeadersArray.length - 1;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif (event.key === \"Home\") {\n\t\t\tevent.preventDefault();\n\t\t\tif (this.followFocus && !tabHeadersArray[0].disabled) {\n\t\t\t\ttabHeadersArray[0].selectTab();\n\t\t\t} else {\n\t\t\t\ttabHeadersArray[0].focus();\n\t\t\t\tthis.currentSelectedTab = 0;\n\t\t\t}\n\t\t}\n\n\t\tif (event.key === \"End\") {\n\t\t\tevent.preventDefault();\n\t\t\tif (this.followFocus && !tabHeadersArray[tabHeadersArray.length - 1].disabled) {\n\t\t\t\ttabHeadersArray[tabHeadersArray.length - 1].selectTab();\n\t\t\t} else {\n\t\t\t\ttabHeadersArray[tabHeadersArray.length - 1].focus();\n\t\t\t\tthis.currentSelectedTab = tabHeadersArray.length - 1;\n\t\t\t}\n\t\t}\n\n\t\tif ((event.key === \" \") && !this.followFocus) {\n\t\t\ttabHeadersArray[this.currentSelectedTab].selectTab();\n\t\t}\n\t}\n\n\tngOnInit() {\n\t\tthis.eventService.on(window as any, \"resize\", () => this.handleScroll());\n\t}\n\n\tngAfterContentInit() {\n\t\t// Reallocate trackers because subscriptions are permanently closed after unsubscribe\n\t\tthis.selectedSubscriptionTracker.unsubscribe();\n\t\tthis.closeSubscriptionTracker.unsubscribe();\n\t\tthis.selectedSubscriptionTracker = new Subscription();\n\t\tthis.closeSubscriptionTracker = new Subscription();\n\n\t\tif (this.tabHeaderQuery) {\n\t\t\tthis.tabHeaderQuery.toArray()\n\t\t\t\t.forEach(tabHeader => {\n\t\t\t\t\ttabHeader.cacheActive = this.cacheActive;\n\t\t\t\t\ttabHeader.dismissable = this.dismissable;\n\t\t\t\t\ttabHeader.paneTabIndex = this.isNavigation ? null : 0;\n\t\t\t\t});\n\t\t}\n\n\t\tconst headersArray = this.tabHeaderQuery.toArray();\n\n\t\theadersArray.forEach(tabHeader => {\n\t\t\tthis.selectedSubscriptionTracker.add(\n\t\t\t\ttabHeader.selected.subscribe(() => {\n\t\t\t\t\tthis.currentSelectedTab = this.tabHeaderQuery.toArray().indexOf(tabHeader);\n\t\t\t\t\t// The Filter takes the current selected tab out, then all other headers are\n\t\t\t\t\t// deactivated and their associated pane references are also deactivated.\n\t\t\t\t\tthis.tabHeaderQuery.toArray().filter(header => header !== tabHeader)\n\t\t\t\t\t\t.forEach(filteredHeader => {\n\t\t\t\t\t\t\tfilteredHeader.active = false;\n\t\t\t\t\t\t\tif (filteredHeader.paneReference) {\n\t\t\t\t\t\t\t\tfilteredHeader.paneReference.active = false;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t\t})\n\t\t\t);\n\n\t\t\tthis.closeSubscriptionTracker.add(\n\t\t\t\ttabHeader.tabClose.subscribe(() => {\n\t\t\t\t\tconst index = this.tabHeaderQuery.toArray().indexOf(tabHeader);\n\t\t\t\t\tthis.tabClose.emit(index);\n\t\t\t\t})\n\t\t\t);\n\t\t});\n\n\t\tthis.setFirstTab();\n\t}\n\n\tngOnDestroy() {\n\t\tthis.selectedSubscriptionTracker.unsubscribe();\n\t\tthis.closeSubscriptionTracker.unsubscribe();\n\t\tclearTimeout(this.scrollDebounceTimer);\n\t}\n\n\tngOnChanges(changes: SimpleChanges) {\n\t\tif (this.tabHeaderQuery) {\n\t\t\tif (changes.cacheActive) {\n\t\t\t\tthis.tabHeaderQuery.toArray().forEach(tabHeader => tabHeader.cacheActive = this.cacheActive);\n\t\t\t}\n\n\t\t\tif (changes.dismissable) {\n\t\t\t\tthis.tabHeaderQuery.toArray().forEach(tabHeader => tabHeader.dismissable = this.dismissable);\n\t\t\t}\n\n\t\t\tif (changes.isNavigation) {\n\t\t\t\tthis.tabHeaderQuery.toArray()\n\t\t\t\t\t.forEach(tabHeader => tabHeader.paneTabIndex = this.isNavigation ? null : 0);\n\t\t\t}\n\t\t}\n\t}\n\n\tgetSelectedTab(): any {\n\t\tconst selected = this.tabHeaderQuery.toArray()[this.currentSelectedTab];\n\t\tif (selected) {\n\t\t\treturn selected;\n\t\t}\n\t\treturn {\n\t\t\theadingIsTemplate: false,\n\t\t\theading: \"\"\n\t\t};\n\t}\n\n\t/**\n\t * Determines which `Tab` is initially selected.\n\t */\n\tprotected setFirstTab() {\n\t\tsetTimeout(() => {\n\t\t\tconst headers = this.tabHeaderQuery.toArray();\n\t\t\tlet selectedHeader = headers.find(h => h.active || h.paneReference?.active);\n\t\t\tif (!selectedHeader && headers.length > 0) {\n\t\t\t\tselectedHeader = headers[0];\n\t\t\t}\n\t\t\tif (selectedHeader) {\n\t\t\t\tselectedHeader.selectTab();\n\t\t\t\tthis.activeIndex = this.currentSelectedTab;\n\t\t\t\tthis.changeDetectorRef.markForCheck();\n\t\t\t}\n\t\t});\n\t}\n}\n","import {\r\n\tAfterContentInit,\r\n\tChangeDetectorRef,\r\n\tComponent,\r\n\tContentChildren,\r\n\tElementRef,\r\n\tEventEmitter,\r\n\tHostBinding,\r\n\tHostListener,\r\n\tInput,\r\n\tOnChanges,\r\n\tOnDestroy,\r\n\tOnInit,\r\n\tOutput,\r\n\tQueryList,\r\n\tRenderer2,\r\n\tSimpleChanges,\r\n\tViewChild\r\n} from \"@angular/core\";\r\nimport { Subscription } from \"rxjs\";\r\nimport { EventService } from \"carbon-components-angular/utils\";\r\nimport { I18n } from \"carbon-components-angular/i18n\";\r\n\r\nimport { BaseTabHeader } from \"./base-tab-header.component\";\r\nimport { TabHeaderBase } from \"./tab-header.directive\";\r\nimport { NgTemplateOutlet } from \"@angular/common\";\r\n\r\nconst VERTICAL_TAB_HEIGHT = 64;\r\n\r\n/**\r\n * Vertical tab header group: same children as `cds-tab-header-group`, with\r\n * up/down (and Home/End) keys, gradient overflow, and always-contained type.\r\n *\r\n *\r\n * ```html\r\n * <cds-tabs-vertical-grouped height=\"400px\">\r\n * <cds-tab-header-group-vertical>\r\n * <cds-tab-header [paneReference]=\"a\">A</cds-tab-header>\r\n * <cds-tab-header [paneReference]=\"b\">B</cds-tab-header>\r\n * </cds-tab-header-group-vertical>\r\n * <cds-tab #a>...</cds-tab>\r\n * <cds-tab #b>...</cds-tab>\r\n * </cds-tabs-vertical-grouped>\r\n * ```\r\n */\r\n@Component({\n\tselector: \"cds-tab-header-group-vertical, ibm-tab-header-group-vertical\",\n\ttemplate: `\r\n\t\t@if (isOverflowingTop) {\r\n\t\t\t<div class=\"cds--tab--list-gradient_top\"></div>\r\n\t\t}\r\n\t\t<div\r\n\t\t\t#tabList\r\n\t\t\tclass=\"cds--tab--list\"\r\n\t\t\trole=\"tablist\"\r\n\t\t\t[attr.aria-label]=\"ariaLabel || translations.HEADER_ARIA_LABEL\"\r\n\t\t\t[attr.aria-labelledby]=\"ariaLabelledby || null\">\r\n\t\t\t<ng-container [ngTemplateOutlet]=\"contentBefore\"></ng-container>\r\n\t\t\t<ng-content></ng-content>\r\n\t\t\t<ng-container [ngTemplateOutlet]=\"contentAfter\"></ng-container>\r\n\t\t</div>\r\n\t\t@if (isOverflowingBottom) {\r\n\t\t\t<div class=\"cds--tab--list-gradient_bottom\"></div>\r\n\t\t}\r\n\t`,\n\timports: [NgTemplateOutlet]\n})\r\nexport class TabHeaderGroupVertical\r\n\textends BaseTabHeader\r\n\timplements AfterContentInit, OnChanges, OnInit, OnDestroy {\r\n\t/**\r\n\t * i18n strings for the tab list `aria-label` fallback.\r\n\t */\r\n\t@Input() translations = this.i18n.get().TABS;\r\n\r\n\t/**\r\n\t * When `true`, sets each tab panel `tabindex` to `-1` for navigation-style usage.\r\n\t */\r\n\t@Input() isNavigation = false;\r\n\r\n\t/**\r\n\t * Fires with tab index when a close control is used (with `dismissable`).\r\n\t */\r\n\t@Output() tabClose = new EventEmitter<number>();\r\n\r\n\t/**\r\n\t * Set to 'true' to have tabs automatically activated and have their content displayed when they receive focus.\r\n\t */\r\n\t@Input() followFocus = true;\r\n\r\n\t/**\r\n\t * ContentChildren of all the tab headers (both directive and component\r\n\t * forms — see `TabHeaderBase`).\r\n\t */\r\n\t@ContentChildren(TabHeaderBase) tabHeaderQuery: QueryList<TabHeaderBase>;\r\n\r\n\t@ViewChild(\"tabList\", { static: true }) headerContainer: ElementRef<HTMLElement>;\r\n\r\n\t@HostBinding(\"class.cds--tabs--vertical\") verticalClass = true;\r\n\r\n\t/**\r\n\t * Index of the selected tab for keyboard logic\r\n\t */\r\n\tcurrentSelectedTab = 0;\r\n\r\n\t/**\r\n\t * Focused tab index when `followFocus` is false (manual activation).\r\n\t */\r\n\tactiveIndex: number | null = null;\r\n\r\n\tisOverflowingTop = false;\r\n\tisOverflowingBottom = false;\r\n\r\n\t/**\r\n\t * We use taller rows when any header has a secondary label.\r\n\t */\r\n\t@HostBinding(\"class.cds--tabs--tall\") get tallClass(): boolean {\r\n\t\treturn this.hasSecondaryLabelTabs;\r\n\t}\r\n\r\n\tget hasSecondaryLabelTabs(): boolean {\r\n\t\tif (!this.tabHeaderQuery) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\t\treturn this.tabHeaderQuery\r\n\t\t\t.toArray()\r\n\t\t\t.some((h) => h.secondaryLabel != null && h.secondaryLabel !== \"\");\r\n\t}\r\n\r\n\tprivate selectedSubscriptionTracker = new Subscription();\r\n\tprivate closeSubscriptionTracker = new Subscription();\r\n\r\n\tprivate resizeObserver: ResizeObserver | null = null;\r\n\tprivate boundListScrollHandler: () => void;\r\n\r\n\tconstructor(\r\n\t\tprotected elementRef: ElementRef,\r\n\t\tprotected changeDetectorRef: ChangeDetectorRef,\r\n\t\tprotected eventService: EventService,\r\n\t\tprotected renderer: Renderer2,\r\n\t\tprotected i18n: I18n\r\n\t) {\r\n\t\tsuper(elementRef, changeDetectorRef, eventService, renderer);\r\n\t\tthis.type = \"contained\";\r\n\t\t// Cache a stable reference for add/removeEventListener.\r\n\t\tthis.boundListScrollHandler = () => this.updateOverflowState();\r\n\t}\r\n\r\n\t@HostListener(\"keydown\", [\"$event\"])\r\n\tkeyboardInput(event: KeyboardEvent) {\r\n\t\tif (!this.tabHeaderQuery) {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tconst tabHeadersArray = this.tabHeaderQuery.toArray();\r\n\t\tconst enabledHeaders = tabHeadersArray.filter((h) => !h.disabled);\r\n\t\tif (enabledHeaders.length === 0) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tconst referenceIndex = this.followFocus\r\n\t\t\t? this.currentSelectedTab\r\n\t\t\t: (this.activeIndex !== null ? this.activeIndex : this.currentSelectedTab);\r\n\t\tconst currentEnabledIndex = Math.max(0, enabledHeaders.indexOf(tabHeadersArray[referenceIndex]));\r\n\r\n\t\tlet nextEnabledIndex = currentEnabledIndex;\r\n\t\tlet handled = false;\r\n\r\n\t\tif (event.key === \"ArrowDown\") {\r\n\t\t\tnextEnabledIndex = (currentEnabledIndex + 1) % enabledHeaders.length;\r\n\t\t\thandled = true;\r\n\t\t} else if (event.key === \"ArrowUp\") {\r\n\t\t\tnextEnabledIndex = (enabledHeaders.length + currentEnabledIndex - 1) % enabledHeaders.length;\r\n\t\t\thandled = true;\r\n\t\t} else if (event.key === \"Home\") {\r\n\t\t\tnextEnabledIndex = 0;\r\n\t\t\thandled = true;\r\n\t\t} else if (event.key === \"End\") {\r\n\t\t\tnextEnabledIndex = enabledHeaders.length - 1;\r\n\t\t\thandled = true;\r\n\t\t}\r\n\r\n\t\tif (handled) {\r\n\t\t\tevent.preventDefault();\r\n\t\t\tconst nextHeader = enabledHeaders[nextEnabledIndex];\r\n\t\t\tconst nextIndex = tabHeadersArray.indexOf(nextHeader);\r\n\r\n\t\t\tif (this.followFocus) {\r\n\t\t\t\tnextHeader.selectTab();\r\n\t\t\t\tthis.currentSelectedTab = nextIndex;\r\n\t\t\t} else {\r\n\t\t\t\tnextHeader.focus();\r\n\t\t\t\tthis.activeIndex = nextIndex;\r\n\t\t\t}\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif ((event.key === \" \" || event.key === \"Spacebar\") && !this.followFocus) {\r\n\t\t\tconst focusIndex = this.activeIndex !== null ? this.activeIndex : this.currentSelectedTab;\r\n\t\t\ttabHeadersArray[focusIndex].selectTab();\r\n\t\t\tthis.currentSelectedTab = focusIndex;\r\n\t\t}\r\n\t}\r\n\r\n\t@HostListener(\"blur\", [\"$event\"])\r\n\thandleBlur(event: FocusEvent) {\r\n\t\tconst relatedTarget = event.relatedTarget as Node | null;\r\n\t\tconst container = this.headerContainer?.nativeElement;\r\n\t\tif (container && relatedTarget && container.contains(relatedTarget)) {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tif (!this.followFocus) {\r\n\t\t\tthis.activeIndex = this.currentSelectedTab;\r\n\t\t}\r\n\t}\r\n\r\n\tngOnInit() {\r\n\t\tthis.resizeObserver = new ResizeObserver(() => {\r\n\t\t\tthis.updateOverflowState();\r\n\t\t\tthis.changeDetectorRef.detectChanges();\r\n\t\t});\r\n\t\tthis.resizeObserver.observe(this.headerContainer.nativeElement);\r\n\t\tthis.headerContainer.nativeElement.addEventListener(\r\n\t\t\t\"scroll\",\r\n\t\t\tthis.boundListScrollHandler\r\n\t\t);\r\n\t}\r\n\r\n\tngOnDestroy() {\r\n\t\tthis.selectedSubscriptionTracker.unsubscribe();\r\n\t\tthis.closeSubscriptionTracker.unsubscribe();\r\n\t\tthis.resizeObserver?.unobserve(this.headerContainer.nativeElement);\r\n\t\tthis.resizeObserver = null;\r\n\t\tthis.headerContainer.nativeElement.removeEventListener(\r\n\t\t\t\"scroll\",\r\n\t\t\tthis.boundListScrollHandler\r\n\t\t);\r\n\t}\r\n\r\n\tngAfterContentInit() {\r\n\t\t// Reallocate trackers because subscriptions are permanently closed after unsubscribe\r\n\t\tthis.selectedSubscriptionTracker.unsubscribe();\r\n\t\tthis.closeSubscriptionTracker.unsubscribe();\r\n\t\tthis.selectedSubscriptionTracker = new Subscription();\r\n\t\tthis.closeSubscriptionTracker = new Subscription();\r\n\r\n\t\tthis.applyHeaderInputs();\r\n\t\tthis.wireSubscriptions();\r\n\r\n\t\tthis.tabHeaderQuery.changes.subscribe(() => {\r\n\t\t\t// Re-wire when the projected list changes.\r\n\t\t\tthis.selectedSubscriptionTracker.unsubscribe();\r\n\t\t\tthis.closeSubscriptionTracker.unsubscribe();\r\n\t\t\tthis.selectedSubscriptionTracker = new Subscription();\r\n\t\t\tthis.closeSubscriptionTracker = new Subscription();\r\n\t\t\tthis.applyHeaderInputs();\r\n\t\t\tthis.wireSubscriptions();\r\n\t\t\tthis.changeDetectorRef.markForCheck();\r\n\t\t});\r\n\r\n\t\tsetTimeout(() => {\r\n\t\t\tconst headers = this.tabHeaderQuery.toArray();\r\n\t\t\tconst activeIdx = headers.findIndex(h => h.active || h.paneReference?.active);\r\n\t\t\tconst initialIndex = activeIdx >= 0 ? activeIdx : 0;\r\n\t\t\tthis.currentSelectedTab = initialIndex;\r\n\t\t\tthis.activeIndex = initialIndex;\r\n\t\t\theaders[initialIndex]?.selectTab();\r\n\t\t\tthis.updateOverflowState();\r\n\t\t});\r\n\t}\r\n\r\n\tngOnChanges(changes: SimpleChanges) {\r\n\t\tif (this.tabHeaderQuery) {\r\n\t\t\tif (changes.cacheActive) {\r\n\t\t\t\tthis.tabHeaderQuery.toArray().forEach(h => h.cacheActive = this.cacheActive);\r\n\t\t\t}\r\n\t\t\tif (changes.dismissable) {\r\n\t\t\t\tthis.tabHeaderQuery.toArray().forEach(h => h.dismissable = this.dismissable);\r\n\t\t\t}\r\n\t\t\tif (changes.isNavigation) {\r\n\t\t\t\tthis.tabHeaderQuery.toArray()\r\n\t\t\t\t\t.forEach(h => h.paneTabIndex = this.isNavigation ? null : 0);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tprotected updateOverflowState() {\r\n\t\tconst element = this.headerContainer?.nativeElement;\r\n\t\tif (!element) {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tconst halfTabHeight = VERTICAL_TAB_HEIGHT / 2;\r\n\t\tthis.isOverflowingBottom =\r\n\t\t\telement.scrollTop + element.clientHeight + halfTabHeight <= element.scrollHeight;\r\n\t\tthis.isOverflowingTop = element.scrollTop > halfTabHeight;\r\n\t\tthis.changeDetectorRef.markForCheck();\r\n\t}\r\n\r\n\tprotected scrollSelectedTabIntoView() {\r\n\t\tif (!this.scrollIntoView) {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tconst container = this.headerContainer?.nativeElement;\r\n\t\tif (!container) {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tcontainer.scrollTo({\r\n\t\t\ttop: Math.max(0, (this.currentSelectedTab - 1) * VERTICAL_TAB_HEIGHT),\r\n\t\t\tbehavior: \"smooth\"\r\n\t\t});\r\n\t}\r\n\r\n\tprivate applyHeaderInputs() {\r\n\t\tthis.tabHeaderQuery.toArray().forEach((header) => {\r\n\t\t\theader.cacheActive = this.cacheActive;\r\n\t\t\theader.dismissable = this.dismissable;\r\n\t\t\theader.paneTabIndex = this.isNavigation ? null : 0;\r\n\t\t});\r\n\t}\r\n\r\n\tprivate wireSubscriptions() {\r\n\t\tthis.tabHeaderQuery.toArray().forEach((header) => {\r\n\t\t\tthis.selectedSubscriptionTracker.add(\r\n\t\t\t\theader.selected.subscribe(() => {\r\n\t\t\t\t\tthis.currentSelectedTab = this.tabHeaderQuery\r\n\t\t\t\t\t\t.toArray()\r\n\t\t\t\t\t\t.indexOf(header);\r\n\t\t\t\t\tthis.tabHeaderQuery\r\n\t\t\t\t\t\t.toArray()\r\n\t\t\t\t\t\t.filter((h) => h !== header)\r\n\t\t\t\t\t\t.forEach((other) => {\r\n\t\t\t\t\t\t\tother.active = false;\r\n\t\t\t\t\t\t\tif (other.paneReference) {\r\n\t\t\t\t\t\t\t\tother.paneReference.active = false;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\tthis.scrollSelectedTabIntoView();\r\n\t\t\t\t})\r\n\t\t\t);\r\n\r\n\t\t\tthis.closeSubscriptionTracker.add(\r\n\t\t\t\theader.tabClose.subscribe(() => {\r\n\t\t\t\t\tconst index = this.tabHeaderQuery.toArray().indexOf(header);\r\n\t\t\t\t\tthis.tabClose.emit(index);\r\n\t\t\t\t})\r\n\t\t\t);\r\n\t\t});\r\n\t}\r\n}\r\n","import {\r\n\tAfterViewInit,\r\n\tComponent,\r\n\tElementRef,\r\n\tforwardRef,\r\n\tHostBinding,\r\n\tInput,\r\n\tViewChild\r\n} from \"@angular/core\";\r\n\r\nimport { TabHeaderBase } from \"./tab-header.directive\";\r\n\r\nimport { Tooltip } from \"carbon-components-angular/tooltip\";\r\nimport { NgClass, NgTemplateOutlet } from \"@angular/common\";\r\n\r\n/**\r\n * Tab header with template for label, optional icon, secondary label, badge, and dismissable close.\r\n *\r\n * ```html\r\n * <cds-tab-header-group>\r\n * <cds-tab-header [paneReference]=\"c1\">Dashboard</cds-tab-header>\r\n * <cds-tab-header [paneReference]=\"c2\" [icon]=\"iconTpl\" secondaryLabel=\"(1/4)\">\r\n * Monitoring\r\n * </cds-tab-header>\r\n * </cds-tab-header-group>\r\n * <cds-tab #c1>...</cds-tab>\r\n * <cds-tab #c2>...</cds-tab>\r\n * ```\r\n */\r\n@Component({\n\tselector: \"cds-tab-header, ibm-tab-header\",\n\tproviders: [\n\t\t{ provide: TabHeaderBase, useExisting: forwardRef(() => TabHeaderComponent) }\n\t],\n\ttemplate: `\r\n\t\t@if (iconOnly) {\r\n\t\t\t<cds-tooltip\r\n\t\t\t\talign=\"bottom\"\r\n\t\t\t\t[autoAlign]=\"true\"\r\n\t\t\t\tclass=\"cds--icon-tooltip\"\r\n\t\t\t\t[description]=\"iconLabel\"\r\n\t\t\t\t[enterDelayMs]=\"enterDelayMs\"\r\n\t\t\t\t[leaveDelayMs]=\"leaveDelayMs\"\r\n\t\t\t\t[isOpen]=\"isTooltipOpen\"\r\n\t\t\t\t[disabled]=\"disabled\">\r\n\t\t\t\t<ng-container *ngTemplateOutlet=\"tabButtonTemplate\" />\r\n\t\t\t</cds-tooltip>\r\n\t\t} @else {\r\n\t\t\t<ng-container *ngTemplateOutlet=\"tabButtonTemplate\" />\r\n\t\t}\r\n\r\n\t\t<ng-template #tabButtonTemplate>\r\n\t\t\t<button\r\n\t\t\t\t#tabButton\r\n\t\t\t\ttype=\"button\"\r\n\t\t\t\trole=\"tab\"\r\n\t\t\t\tclass=\"cds--tabs__nav-item cds--tabs__nav-link\"\r\n\t\t\t\t[ngClass]=\"{\r\n\t\t\t\t\t'cds--tabs__nav-item--selected': active,\r\n\t\t\t\t\t'cds--tabs__nav-item--disabled': disabled,\r\n\t\t\t\t\t'cds--tabs__nav-item--icon-only': iconOnly,\r\n\t\t\t\t\t'cds--tabs__nav-item--icon-only__20': iconOnly && iconSize === 'lg'\r\n\t\t\t\t}\"\r\n\t\t\t\t[attr.aria-selected]=\"active\"\r\n\t\t\t\t[attr.aria-disabled]=\"disabled\"\r\n\t\t\t\t[attr.aria-controls]=\"paneReference?.id || null\"\r\n\t\t\t\t[attr.aria-label]=\"iconOnly ? iconLabel : null\"\r\n\t\t\t\t[attr.tabindex]=\"active ? 0 : -1\"\r\n\t\t\t\t[attr.title]=\"resolvedTitle\"\r\n\t\t\t\t[disabled]=\"disabled\"\r\n\t\t\t\t(click)=\"onTabButtonClick()\"\r\n\t\t\t\t(keydown)=\"onTabButtonKeyDown($event)\">\r\n\t\t\t\t@if (iconOnly) {\r\n\t\t\t\t\t<ng-container [ngTemplateOutlet]=\"icon\"></ng-container>\r\n\t\t\t\t\t@if (!disabled && badgeIndicator) {\r\n\t\t\t\t\t\t<span\r\n\t\t\t\t\t\t\tclass=\"cds--badge-indicator\"\r\n\t\t\t\t\t\t\taria-hidden=\"true\">\r\n\t\t\t\t\t\t</span>\r\n\t\t\t\t\t}\r\n\t\t\t\t} @else {\r\n\t\t\t\t\t<div class=\"cds--tabs__nav-item-label-wrapper\">\r\n\t\t\t\t\t\t@if (dismissable && icon) {\r\n\t\t\t\t\t\t\t<div class=\"cds--tabs__nav-item--icon-left\">\r\n\t\t\t\t\t\t\t\t<ng-container [ngTemplateOutlet]=\"icon\"></ng-container>\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t<span class=\"cds--tabs__nav-item-label\">\r\n\t\t\t\t\t\t\t<ng-content></ng-content>\r\n\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t@if (!dismissable && icon) {\r\n\t\t\t\t\t\t\t<div class=\"cds--tabs__nav-item--icon\">\r\n\t\t\t\t\t\t\t\t<ng-container [ngTemplateOutlet]=\"icon\"></ng-container>\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t@if (secondaryLabel) {\r\n\t\t\t\t\t\t<div\r\n\t\t\t\t\t\t\tclass=\"cds--tabs__nav-item-secondary-label\"\r\n\t\t\t\t\t\t\t[attr.title]=\"secondaryLabel\">\r\n\t\t\t\t\t\t\t{{ secondaryLabel }}\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t</button>\r\n\t\t</ng-template>\r\n\t\t@if (dismissable) {\r\n\t\t\t<div class=\"cds--tabs__nav-item--close\">\r\n\t\t\t\t<button\r\n\t\t\t\t\ttype=\"button\"\r\n\t\t\t\t\tclass=\"cds--tabs__nav-item--close-icon\"\r\n\t\t\t\t\t[attr.tabindex]=\"-1\"\r\n\t\t\t\t\t[attr.aria-disabled]=\"disabled\"\r\n\t\t\t\t\t[attr.aria-hidden]=\"!(active && !disabled)\"\r\n\t\t\t\t\t[ngClass]=\"{\r\n\t\t\t\t\t\t'cds--tabs__nav-item--close-icon--selected': active,\r\n\t\t\t\t\t\t'cds--tabs__nav-item--close-icon--disabled': disabled\r\n\t\t\t\t\t}\"\r\n\t\t\t\t\t[disabled]=\"disabled\"\r\n\t\t\t\t\t[attr.title]=\"closeButtonTitle\"\r\n\t\t\t\t\t(click)=\"onClose($event)\">\r\n\t\t\t\t\t<svg\r\n\t\t\t\t\t\tfocusable=\"false\"\r\n\t\t\t\t\t\tpreserveAspectRatio=\"xMidYMid meet\"\r\n\t\t\t\t\t\txmlns=\"http://www.w3.org/2000/svg\"\r\n\t\t\t\t\t\tfill=\"currentColor\"\r\n\t\t\t\t\t\twidth=\"16\"\r\n\t\t\t\t\t\theight=\"16\"\r\n\t\t\t\t\t\tviewBox=\"0 0 32 32\"\r\n\t\t\t\t\t\t[attr.aria-label]=\"closeButtonAriaLabel\"\r\n\t\t\t\t\t\t[attr.aria-hidden]=\"!(active && !disabled)\">\r\n\t\t\t\t\t\t<path d=\"M17.4141 16L24 9.4141 22.5859 8 16 14.5859 9.4143 8 8 9.4141 14.5859 16 8 22.5859 9.4143 24 16 17.4141 22.5859 24 24 22.5859 17.4141 16z\"></path>\r\n\t\t\t\t\t</svg>\r\n\t\t\t\t</button>\r\n\t\t\t</div>\r\n\t\t}\r\n\t`,\n\timports: [Tooltip, NgClass, NgTemplateOutlet]\n})\r\nexport class TabHeaderComponent extends TabHeaderBase implements AfterViewInit {\r\n\t/**\r\n\t * Icon-only tab: set `icon` and `iconLabel`.\r\n\t */\r\n\t@Input() iconOnly = false;\r\n\t/**\r\n\t * Icon-only tabs: accessible name (`aria-label` / `title`).\r\n\t */\r\n\t@Input() iconLabel: string;\r\n\t/**\r\n\t * **Preview**: Icon-only tabs — show a notification dot on the icon.\r\n\t */\r\n\t@Input() badgeIndicator = false;\r\n\t/**\r\n\t * Icon-only tabs: icon size `default` (16px) or `lg` (20px); usually set on the parent group.\r\n\t */\r\n\t@Input() iconSize: \"default\" | \"lg\" = \"default\";\r\n\t/**\r\n\t * `aria-label` for the dismissable close button.\r\n\t */\r\n\t@Input() closeButtonAriaLabel = \"Press delete to remove tab\";\r\n\t/**\r\n\t * Icon-only tabs: tooltip show delay (ms).\r\n\t */\r\n\t@Input() enterDelayMs: number;\r\n\t/**\r\n\t * Icon-only tabs: tooltip hide delay (ms).\r\n\t */\r\n\t@Input() leaveDelayMs: number;\r\n\t/**\r\n\t * Icon-only tabs: open the tooltip on first render.\r\n\t */\r\n\t@Input() isTooltipOpen = false;\r\n\r\n\t@HostBinding(\"style.display\") displayContents = \"contents\";\r\n\r\n\t@ViewChild(\"tabButton\") tabButton: ElementRef<HTMLButtonElement>;\r\n\r\n\tngAfterViewInit() {\r\n\t\t// Mirror the deprecated directive's title-fallback behavior, but read\r\n\t\t// from the inner rendered button rather than the `display: contents` host.\r\n\t\tsetTimeout(() => {\r\n\t\t\tif (!this.title && this.tabButton?.nativeElement) {\r\n\t\t\t\tconst text = this.tabButton.nativeElement.textContent?.trim();\r\n\t\t\t\tif (text) {\r\n\t\t\t\t\tthis.title = text;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\t/**\r\n\t * Focus the rendered tab button (not the host).\r\n\t */\r\n\tfocus() {\r\n\t\tthis.tabButton?.nativeElement?.focus();\r\n\t}\r\n\r\n\tonTabButtonClick() {\r\n\t\tthis.selectTab();\r\n\t}\r\n\r\n\t/**\r\n\t * `Delete` closes dismissable tabs when focus is on the tab.\r\n\t */\r\n\tonTabButtonKeyDown(event: KeyboardEvent) {\r\n\t\tif (this.dismissable && event.key === \"Delete\") {\r\n\t\t\tevent.stopPropagation();\r\n\t\t\tthis.tabClose.emit();\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Close button click; stops propagation so the tab does not activate.\r\n\t */\r\n\tonClose(event: Event) {\r\n\t\tevent.stopPropagation();\r\n\t\tif (this.disabled) {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tthis.tabClose.emit();\r\n\t}\r\n\r\n\tget resolvedTitle(): string | null {\r\n\t\tif (this.iconOnly) {\r\n\t\t\treturn this.iconLabel || null;\r\n\t\t}\r\n\t\treturn this.title || null;\r\n\t}\r\n\r\n\tget closeButtonTitle(): string {\r\n\t\tconst label = this.tabButton?.nativeElement?.textContent?.trim();\r\n\t\treturn label ? `Remove ${label} tab` : \"Remove tab\";\r\n\t}\r\n}\r\n","import {\n\tComponent,\n\tOnInit,\n\tInput,\n\tOutput,\n\tEventEmitter,\n\tHostBinding,\n\tTemplateRef\n} from \"@angular/core\";\nimport { NgStyle, NgTemplateOutlet } from \"@angular/common\";\n\n/**\n* The `Tab` component is a child of the `Tabs` component.\n* It represents one `Tab` item and its content within a panel of other `Tab` items.\n*\n* `Tab` takes a string or `TemplateRef` for the header, and any content for the body of the tab.\n* Disabled states should be handled by the application (ie. switch to the tab, but display some\n* indication as to _why_ the tab is disabled).\n*\n* When the tab is selected the `select` output will be triggered.\n* The `select` output will also be triggered for the active tab when the tabs are loaded or updated.\n*\n*\n* Tab with string header:\n *\n * ```html\n* <cds-tab heading='tab1'>\n* \ttab 1 content\n* </cds-tab>\n* ```\n*\n* Tab with custom header:\n*\n* ```html\n* <ng-template #tabHeading>\n* \t<svg cdsIcon=\"facebook\"\n* \t\tsize=\"sm\"\n* \t\tstyle=\"margin-right: 7px;\">\n* \t</svg>\n* \tHello Tab 1\n* </ng-template>\n* <cds-tabs>\n* \t<cds-tab [heading]=\"tabHeading\">\n* \t\tTab 1 content <svg cdsIcon=\"alert\" size=\"lg\"></svg>\n* \t</cds-tab>\n* \t<cds-tab heading='Tab2'>\n* \t\tTab 2 content\n* \t</cds-tab>\n* \t<cds-tab heading='Tab3'>\n* \t\tTab 3 content\n* \t</cds-tab>\n* </cds-tabs>\n * ```\n */\n@Component({\n\tselector: \"cds-tab, ibm-tab\",\n\ttemplate: `\n\t\t@if (shouldRender()) {\n\t\t\t@if (isTemplate(tabContent)) {\n\t\t\t\t<ng-template\n\t\t\t\t\t[ngTemplateOutlet]=\"tabContent\"\n\t\t\t\t\t[ngTemplateOutletContext]=\"{ $implicit: templateContext }\" />\n\t\t\t}\n\t\t\t<ng-content />\n\t\t}\n\t`,\n\timports: [NgTemplateOutlet]\n})\nexport class Tab implements OnInit {\n\t@HostBinding(\"attr.id\") get hostId() {\n\t\treturn this.id;\n\t}\n\t@HostBinding(\"attr.aria-labelledby\") get hostAriaLabelledby() {\n\t\treturn `${this.id}-header`;\n\t}\n\t@HostBinding(\"attr.tabindex\") get hostTabIndex() {\n\t\treturn this.tabIndex;\n\t}\n\t/**\n\t * `hidden` + display keep inactive panels out of layout; `null` display when active preserves grid/flex.\n\t */\n\t@HostBinding(\"attr.hidden\") get hostHidden() {\n\t\treturn this.active ? null : \"\";\n\t}\n\t@HostBinding(\"style.display\") get hostDisplay() {\n\t\treturn this.active ? \"block\" : \"none\";\n\t}\n\t/**\n\t * Set to `true` to have `Tab` items cached and not reloaded on tab switching.\n\t */\n\t@Input() set cacheActive(shouldCache: boolean) {\n\t\tthis._cacheActive = shouldCache;\n\t}\n\n\tget cacheActive() {\n\t\treturn this._cacheActive;\n\t}\n\tprivate static counter = 0;\n\t@HostBinding(\"class.cds--tab-content\") tabContentClass = true;\n\t@HostBinding(\"attr.role\") panelRole = \"tabpanel\";\n\t@HostBinding(\"attr.aria-live\") panelAriaLive = \"polite\";\n\t/**\n\t * Boolean value reflects if the `Tab` is using a custom template for the heading.\n\t * Default value is false.\n\t */\n\tpublic headingIsTemplate = false;\n\n\t/**\n\t * The `Tab`'s title to be displayed or custom template for the `Tab` heading.\n\t */\n\t@Input() heading: string | TemplateRef<any>;\n\t/**\n\t * Optional override for the `tabItem's`'s title attribute which is set in `TabHeaders`.\n\t * `tabItem`'s title attribute is automatically set to `heading`.\n\t *\n\t * You might want to use this if you set `heading` to a `TemplateRef`.\n\t */\n\t@Input() title: string;\n\t/**\n\t * Allows the user to pass data to the custom template for the `Tab` heading.\n\t */\n\t@Input() context: any;\n\t/**\n\t * Indicates whether the `Tab` is active/selected.\n\t * Determines whether its tab panel content is rendered.\n\t */\n\t@Input() active = false;\n\t/**\n\t * Indicates whether or not the `Tab` item is disabled.\n\t */\n\t@Input() disabled = false;\n\n\t/**\n\t * `tabindex` on the tab panel, the parent may set this to `null` when `isNavigation` is `true`.\n\t */\n\t@Input() tabIndex = 0;\n\t/**\n\t * Sets the id of the `Tab`. Will be uniquely generated if not provided.\n\t */\n\t@Input() id = `n-tab-${Tab.counter++}`;\n\t/**\n\t * Allows lifecycle hooks to be called on the rendered content.\n\t */\n\t@Input() tabContent: TemplateRef<any>;\n\t/**\n\t * Optional data for templates passed as implicit context.\n\t */\n\t@Input() templateContext: any;\n\t/**\n\t * Optional template that renders an icon inside the `Tab` header.\n\t * Useful for rendering a `cdsIcon` or any other icon next to the tab label.\n\t */\n\t@Input() icon: TemplateRef<any>;\n\t/**\n\t * Optional secondary label rendered below the primary tab label.\n\t * Only displayed when the parent `Tabs` is using `type=\"contained\"`.\n\t */\n\t@Input() secondaryLabel: string;\n\t/**\n\t * Sets the aria-label of the close button when the parent `Tabs` uses `dismissable`.\n\t */\n\t@Input() closeButtonAriaLabel = \"Press delete to remove tab\";\n\t/**\n\t * Icon-only tab: pair with `icon` and `iconLabel`.\n\t */\n\t@Input() iconOnly = false;\n\t/**\n\t * Icon-only tabs: accessible name and tooltip text.\n\t */\n\t@Input() iconLabel: string;\n\t/**\n\t * **Preview**: Icon-only tabs — show a notification dot on the icon.\n\t */\n\t@Input() badgeIndicator = false;\n\t/**\n\t * Icon-only tabs: tooltip show delay (ms).\n\t */\n\t@Input() enterDelayMs: number;\n\t/**\n\t * Icon-only tabs: tooltip hide delay (ms).\n\t */\n\t@Input() leaveDelayMs: number;\n\t/**\n\t * Icon-only tabs: open the tooltip on first render.\n\t */\n\t@Input() isTooltipOpen = false;\n\t/**\n\t * Emits when this tab becomes selected.\n\t */\n\t@Output() selected: EventEmitter<void> = new EventEmitter<void>();\n\t/**\n\t * Emits when this tab's close button is pressed.\n\t */\n\t@Output() tabClose: EventEmitter<void> = new EventEmitter<void>();\n\n\tprotected _cacheActive = false;\n\n\t/**\n\t * Checks for custom heading template on initialization and updates the value\n\t * of the boolean 'headingIsTemplate'.\n\t */\n\tngOnInit() {\n\t\tif (this.heading instanceof TemplateRef) {\n\t\t\tthis.headingIsTemplate = true;\n\t\t}\n\t}\n\n\t/**\n\t * Emit the status of the `Tab`, specifically 'select' and 'selected' properties.\n\t */\n\tdoSelect() {\n\t\tthis.selected.emit();\n\t}\n\n\t/**\n\t* Returns value indicating whether this `Tab` should be rendered in a tab panel.\n\t */\n\tshouldRender() {\n\t\treturn this.active || this.cacheActive;\n\t}\n\n\tpublic isTemplate(value) {\n\t\treturn value instanceof TemplateRef;\n\t}\n}\n","import {\n\tComponent,\n\tQueryList,\n\tInput,\n\tOutput,\n\tEventEmitter,\n\tHostListener,\n\tHostBinding,\n\tViewChild,\n\tContentChildren,\n\tAfterContentInit,\n\tViewChildren,\n\tElementRef,\n\tOnChanges,\n\tSimpleChanges,\n\tOnDestroy,\n\tOnInit,\n\tChangeDetectorRef,\n\tRenderer2\n} from \"@angular/core\";\nimport { EventService } from \"carbon-components-angular/utils\";\nimport { I18n } from \"carbon-components-angular/i18n\";\n\nimport { BaseTabHeader } from \"./base-tab-header.component\";\nimport { Tab } from \"./tab.component\";\nimport { NgClass, NgTemplateOutlet } from \"@angular/common\";\nimport { Tooltip } from \"carbon-components-angular/tooltip\";\n\n/**\n * The `TabHeaders` component contains the `Tab` items and controls scroll functionality\n * if content has overflow.\n */\n@Component({\n\tselector: \"cds-tab-headers, ibm-tab-headers\",\n\ttemplate: `\n\t\t<button\n\t\t\ttype=\"button\"\n\t\t\t(click)=\"handleOverflowNavClick(-1, tabs.length)\"\n\t\t\t(pointerdown)=\"handleOverflowNavMouseDown(-1)\"\n\t\t\t(pointerup)=\"handleOverflowNavMouseUp()\"\n\t\t\t(pointerleave)=\"handleOverflowNavMouseUp()\"\n\t\t\t(pointerout)=\"handleOverflowNavMouseUp()\"\n\t\t\tclass=\"cds--tab--overflow-nav-button cds--tab--overflow-nav-button--previous\"\n\t\t\t[ngClass]=\"{\n\t\t\t\t'cds--tab--overflow-nav-button--hidden': leftOverflowNavButtonHidden\n\t\t\t}\"\n\t\t\t[attr.aria-hidden]=\"leftOverflowNavButtonHidden\"\n\t\t\t[attr.tabindex]=\"-1\"\n\t\t\t[attr.aria-label]=\"translations.BUTTON_ARIA_LEFT\"\n\t\t\t[attr.title]=\"translations.BUTTON_ARIA_LEFT\">\n\t\t\t<svg\n\t\t\t\tfocusable=\"false\"\n\t\t\t\tpreserveAspectRatio=\"xMidYMid meet\"\n\t\t\t\txmlns=\"http://www.w3.org/2000/svg\"\n\t\t\t\tfill=\"currentColor\"\n\t\t\t\twidth=\"16\"\n\t\t\t\theight=\"16\"\n\t\t\t\tviewBox=\"0 0 16 16\"\n\t\t\t\taria-hidden=\"true\">\n\t\t\t\t<path d=\"M5 8L10 3 10.7 3.7 6.4 8 10.7 12.3 10 13z\"></path>\n\t\t\t</svg>\n\t\t</button>\n\t\t<div\n\t\t\t#tabList\n\t\t\tclass=\"cds--tab--list\"\n\t\t\trole=\"tablist\"\n\t\t\t[attr.aria-label]=\"ariaLabel || translations.HEADER_ARIA_LABEL\"\n\t\t\t[attr.aria-labelledby]=\"ariaLabelledby || null\"\n\t\t\t(scroll)=\"handleScroll()\">\n\t\t\t<ng-container [ngTemplateOutlet]=\"contentBefore\"></ng-container>\n\t\t\t@for (tab of tabs; track tab; let i = $index) {\n\t\t\t\t@if (tab.iconOnly) {\n\t\t\t\t\t<cds-tooltip\n\t\t\t\t\t\talign=\"bottom\"\n\t\t\t\t\t\t[autoAlign]=\"true\"\n\t\t\t\t\t\tclass=\"cds--icon-tooltip\"\n\t\t\t\t\t\t[description]=\"tab.iconLabel\"\n\t\t\t\t\t\t[enterDelayMs]=\"tab.enterDelayMs ?? 100\"\n\t\t\t\t\t\t[leaveDelayMs]=\"tab.leaveDelayMs ?? 300\"\n\t\t\t\t\t\t[isOpen]=\"tab.isTooltipOpen\"\n\t\t\t\t\t\t[disabled]=\"tab.disabled\">\n\t\t\t\t\t\t<ng-container *ngTemplateOutlet=\"tabItemTpl; context: { tab: tab, i: i }\"></ng-container>\n\t\t\t\t\t</cds-tooltip>\n\t\t\t\t} @else {\n\t\t\t\t\t<ng-container *ngTemplateOutlet=\"tabItemTpl; context: { tab: tab, i: i }\"></ng-container>\n\t\t\t\t}\n\t\t\t\t@if (dismissable) {\n\t\t\t\t\t<div class=\"cds--tabs__nav-item--close\">\n\t\t\t\t\t\t<button\n\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\t[attr.tabindex]=\"-1\"\n\t\t\t\t\t\t\t[attr.aria-disabled]=\"tab.disabled\"\n\t\t\t\t\t\t\t[attr.aria-hidden]=\"!(tab.active && !tab.disabled)\"\n\t\t\t\t\t\t\t[disabled]=\"tab.disabled\"\n\t\t\t\t\t\t\tclass=\"cds--tabs__nav-item--close-icon\"\n\t\t\t\t\t\t\t[ngClass]=\"{\n\t\t\t\t\t\t\t\t'cds--tabs__nav-item--close-icon--selected': tab.active,\n\t\t\t\t\t\t\t\t'cds--tabs__nav-item--close-icon--disabled': tab.disabled\n\t\t\t\t\t\t\t}\"\n\t\t\t\t\t\t\t[attr.title]=\"getCloseTitle(tab)\"\n\t\t\t\t\t\t\t(click)=\"handleClose($event, tab, i)\">\n\t\t\t\t\t\t\t<svg\n\t\t\t\t\t\t\t\tfocusable=\"false\"\n\t\t\t\t\t\t\t\tpreserveAspectRatio=\"xMidYMid meet\"\n\t\t\t\t\t\t\t\txmlns=\"http://www.w3.org/2000/svg\"\n\t\t\t\t\t\t\t\tfill=\"currentColor\"\n\t\t\t\t\t\t\t\twidth=\"16\"\n\t\t\t\t\t\t\t\theight=\"16\"\n\t\t\t\t\t\t\t\tviewBox=\"0 0 32 32\"\n\t\t\t\t\t\t\t\t[attr.aria-label]=\"tab.closeButtonAriaLabel\"\n\t\t\t\t\t\t\t\t[attr.aria-hidden]=\"!(tab.active && !tab.disabled)\">\n\t\t\t\t\t\t\t\t<path d=\"M17.4141 16L24 9.4141 22.5859 8 16 14.5859 9.4143 8 8 9.4141 14.5859 16 8 22.5859 9.4143 24 16 17.4141 22.5859 24 24 22.5859 17.4141 16z\"></path>\n\t\t\t\t\t\t\t</svg>\n\t\t\t\t\t\t</button>\n\t\t\t\t\t</div>\n\t\t\t\t}\n\t\t\t}\n\t\t\t<ng-container [ngTemplateOutlet]=\"contentAfter\"></ng-container>\n\t\t</div>\n\t\t<ng-template #tabItemTpl let-tab=\"tab\" let-i=\"i\">\n\t\t\t<button\n\t\t\t\t#tabItem\n\t\t\t\trole=\"tab\"\n\t\t\t\t[attr.aria-selected]=\"tab.active\"\n\t\t\t\t[attr.tabindex]=\"(tab.active?0:-1)\"\n\t\t\t\t[attr.aria-controls]=\"tab.id\"\n\t\t\t\t[attr.aria-disabled]=\"tab.disabled\"\n\t\t\t\t[attr.aria-label]=\"tab.iconOnly ? tab.iconLabel : null\"\n\t\t\t\t[disabled]=\"tab.disabled\"\n\t\t\t\t[ngClass]=\"{\n\t\t\t\t\t'cds--tabs__nav-item--selected': tab.active,\n\t\t\t\t\t'cds--tabs__nav-item--disabled': tab.disabled,\n\t\t\t\t\t'cds--tabs__nav-item--icon-only': tab.iconOnly,\n\t\t\t\t\t'cds--tabs__nav-item--icon-only__20': tab.iconOnly && iconSize === 'lg'\n\t\t\t\t}\"\n\t\t\t\tclass=\"cds--tabs__nav-item cds--tabs__nav-link\"\n\t\t\t\ttype=\"button\"\n\t\t\t\tdraggable=\"false\"\n\t\t\t\tid=\"{{tab.id}}-header\"\n\t\t\t\t[attr.title]=\"tab.iconOnly ? tab.iconLabel : (tab.title || (!tab.headingIsTemplate ? tab.heading : null))\"\n\t\t\t\t(focus)=\"onTabFocus(tabItem, i)\"\n\t\t\t\t(keydown)=\"handleTabKeyDown($event, tab, i)\"\n\t\t\t\t(click)=\"selectTab(tabItem, tab, i)\">\n\t\t\t\t@if (tab.iconOnly) {\n\t\t\t\t\t<ng-container [ngTemplateOutlet]=\"tab.icon\"></ng-container>\n\t\t\t\t\t@if (!tab.disabled && tab.badgeIndicator) {\n\t\t\t\t\t\t<span\n\t\t\t\t\t\t\tclass=\"cds--badge-indicator\"\n\t\t\t\t\t\t\taria-hidden=\"true\">\n\t\t\t\t\t\t</span>\n\t\t\t\t\t}\n\t\t\t\t} @else {\n\t\t\t\t\t<div class=\"cds--tabs__nav-item-label-wrapper\">\n\t\t\t\t\t\t@if (dismissable && tab.icon) {\n\t\t\t\t\t\t\t<div class=\"cds--tabs__nav-item--icon-left\">\n\t\t\t\t\t\t\t\t<ng-container [ngTemplateOutlet]=\"tab.icon\"></ng-container>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t}\n\t\t\t\t\t\t<span class=\"cds--tabs__nav-item-label\">\n\t\t\t\t\t\t\t@if (!tab.headingIsTemplate) {\n\t\t\t\t\t\t\t\t{{ tab.heading }}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t@if (tab.headingIsTemplate) {\n\t\t\t\t\t\t\t\t<ng-template\n\t\t\t\t\t\t\t\t\t[ngTemplateOutlet]=\"tab.heading\"\n\t\t\t\t\t\t\t\t\t[ngTemplateOutletContext]=\"{$implicit: tab.context}\">\n\t\t\t\t\t\t\t\t</ng-template>\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t</span>\n\t\t\t\t\t\t@if (!dismissable && tab.icon) {\n\t\t\t\t\t\t\t<div class=\"cds--tabs__nav-item--icon\">\n\t\t\t\t\t\t\t\t<ng-container [ngTemplateOutlet]=\"tab.icon\"></ng-container>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t}\n\t\t\t\t\t</div>\n\t\t\t\t\t@if (hasSecondaryLabelTabs && tab.secondaryLabel) {\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tclass=\"cds--tabs__nav-item-secondary-label\"\n\t\t\t\t\t\t\t[attr.title]=\"tab.secondaryLabel\">\n\t\t\t\t\t\t\t{{ tab.secondaryLabel }}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t</button>\n\t\t</ng-template>\n\t\t<button\n\t\t\ttype=\"button\"\n\t\t\t(click)=\"handleOverflowNavClick(1, tabs.length)\"\n\t\t\t(pointerdown)=\"handleOverflowNavMouseDown(1)\"\n\t\t\t(pointerup)=\"handleOverflowNavMouseUp()\"\n\t\t\t(pointerleave)=\"handleOverflowNavMouseUp()\"\n\t\t\t(pointerout)=\"handleOverflowNavMouseUp()\"\n\t\t\tclass=\"cds--tab--overflow-nav-button cds--tab--overflow-nav-button--next\"\n\t\t\t[ngClass]=\"{\n\t\t\t\t'cds--tab--overflow-nav-button--hidden': rightOverflowNavButtonHidden\n\t\t\t}\"\n\t\t\t[attr.aria-hidden]=\"rightOverflowNavButtonHidden\"\n\t\t\t[attr.tabindex]=\"-1\"\n\t\t\t[attr.aria-label]=\"translations.BUTTON_ARIA_RIGHT\"\n\t\t\t[attr.title]=\"translations.BUTTON_ARIA_RIGHT\">\n\t\t\t<svg\n\t\t\t\tfocusable=\"false\"\n\t\t\t\tpreserveAspectRatio=\"xMidYMid meet\"\n\t\t\t\txmlns=\"http://www.w3.org/2000/svg\"\n\t\t\t\tfill=\"currentColor\"\n\t\t\t\twidth=\"16\"\n\t\t\t\theight=\"16\"\n\t\t\t\tviewBox=\"0 0 16 16\"\n\t\t\t\taria-hidden=\"true\">\n\t\t\t\t<path d=\"M11 8L6 13 5.3 12.3 9.6 8 5.3 3.7 6 3z\"></path>\n\t\t\t</svg>\n\t\t</button>\n\t`,\n\tproviders: [EventService],\n\timports: [NgClass, NgTemplateOutlet, Tooltip]\n})\n\nexport class TabHeaders extends BaseTabHeader implements AfterContentInit, OnChanges, OnDestroy, OnInit {\n\t/**\n\t * List of `Tab` components.\n\t */\n\t// disable the next line because we need to rename the input\n\t// eslint-disable-next-line @angular-eslint/no-input-rename\n\t@Input(\"tabs\") tabInput: QueryList<Tab>;\n\n\t/**\n\t * i18n strings for overflow controls and the tab list `aria-label` fallback.\n\t */\n\t@Input() translations = this.i18n.get().TABS;\n\n\t/**\n\t * Emits when a tab close control is used (with `dismissable`).\n\t * The emitted value is the tab index.\n\t */\n\t@Output() tabClose: EventEmitter<number> = new EventEmitter<number>();\n\n\t/**\n\t * Gets the Unordered List element that holds the `Tab` headings from the view DOM.\n\t */\n\t@ViewChild(\"tabList\", { static: true }) headerContainer: ElementRef<HTMLElement>;\n\t/**\n\t * ContentChild of all the tabs\n\t */\n\t@ContentChildren(Tab) tabQuery: QueryList<Tab>;\n\t/**\n\t * Set to tabQuery if tabInput is empty\n\t */\n\ttabs: QueryList<Tab>;\n\t/**\n\t * The index of the first visible tab.\n\t */\n\tfirstVisibleTab = 0;\n\t/**\n\t * The DOM element containing the `Tab` headings displayed.\n\t */\n\t@ViewChildren(\"tabItem\") allTabHeaders: QueryList<ElementRef>;\n\n\t/**\n\t * Focused tab index when `followFocus` is false (manual activation).\n\t */\n\tactiveIndex: number | null = null;\n\n\t@HostBinding(\"class.cds--tabs--tall\") get tallClass() {\n\t\treturn this.hasSecondaryLabelTabs;\n\t}\n\n\t@HostBinding(\"class.cds--tabs--full-width\") get fullWidthClass() {\n\t\treturn this.distributeWidth;\n\t}\n\n\tprivate resizeObserver: ResizeObserver;\n\n\tconstructor(\n\t\tprotected elementRef: ElementRef,\n\t\tprotected changeDetectorRef: ChangeDetectorRef,\n\t\tprotected eventService: EventService,\n\t\tprotected renderer: Renderer2,\n\t\tprotected i18n: I18n\n\t) {\n\t\tsuper(elementRef, changeDetectorRef, eventService, renderer);\n\t}\n\n\tget hasSecondaryLabelTabs(): boolean {\n\t\tif (!this.tabs || this.type !== \"contained\") {\n\t\t\treturn false;\n\t\t}\n\t\treturn this.tabs.toArray().some(tab => typeof tab.secondaryLabel !== \"undefined\" && tab.secondaryLabel !== null);\n\t}\n\n\t/**\n\t * True when `fullWidth` applies (contained, fewer than 9 tabs).\n\t */\n\tget distributeWidth(): boolean {\n\t\treturn (\n\t\t\tthis.fullWidth &&\n\t\t\tthis.type === \"contained\" &&\n\t\t\t(this.tabs ? this.tabs.length < 9 : false)\n\t\t);\n\t}\n\n\t// keyboard accessibility\n\t/**\n\t * Controls the keydown events used for tabbing through the headings.\n\t */\n\t@HostListener(\"keydown\", [\"$event\"])\n\tkeyboardInput(event) {\n\t\tconst tabsArray = this.tabs.toArray();\n\t\tconst enabledTabs = tabsArray.filter(tab => !tab.disabled);\n\t\tif (enabledTabs.length === 0) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst referenceIndex = this.followFocus ?\n\t\t\tthis.currentSelectedTab :\n\t\t\t(this.activeIndex !== null ? this.activeIndex : this.currentSelectedTab);\n\t\tconst currentEnabledIndex = Math.max(0, enabledTabs.indexOf(tabsArray[referenceIndex]));\n\n\t\tlet nextEnabledIndex = currentEnabledIndex;\n\t\tlet handled = false;\n\n\t\tif (event.key === \"ArrowRight\") {\n\t\t\tnextEnabledIndex = (currentEnabledIndex + 1) % enabledTabs.length;\n\t\t\thandled = true;\n\t\t} else if (event.key === \"ArrowLeft\") {\n\t\t\tnextEnabledIndex = (enabledTabs.length + currentEnabledIndex - 1) % enabledTabs.length;\n\t\t\thandled = true;\n\t\t} else if (event.key === \"Home\") {\n\t\t\tnextEnabledIndex = 0;\n\t\t\thandled = true;\n\t\t} else if (event.key === \"End\") {\n\t\t\tnextEnabledIndex = enabledTabs.length - 1;\n\t\t\thandled = true;\n\t\t}\n\n\t\tif (handled) {\n\t\t\tevent.preventDefault();\n\t\t\tconst nextTab = enabledTabs[nextEnabledIndex];\n\t\t\tconst nextIndex = tabsArray.indexOf(nextTab);\n\n\t\t\tif (this.followFocus) {\n\t\t\t\tthis.selectTab(this.allTabHeaders.toArray()[nextIndex].nativeElement, nextTab, nextIndex);\n\t\t\t} else {\n\t\t\t\tthis.activeIndex = nextIndex;\n\t\t\t}\n\t\t\tthis.allTabHeaders.toArray()[nextIndex].nativeElement.focus();\n\t\t\treturn;\n\t\t}\n\n\t\tif ((event.key === \" \" || event.key === \"Spacebar\") && !this.followFocus) {\n\t\t\tconst focusIndex = this.activeIndex !== null ? this.activeIndex : this.currentSelectedTab;\n\t\t\tthis.selectTab(this.allTabHeaders.toArray()[focusIndex].nativeElement, tabsArray[focusIndex], focusIndex);\n\t\t}\n\t}\n\n\t@HostListener(\"blur\", [\"$event\"])\n\thandleBlur(event: FocusEvent) {\n\t\tconst relatedTarget = event.relatedTarget as Node | null;\n\t\tconst container = this.headerContainer?.nativeElement;\n\t\tif (container && relatedTarget && container.contains(relatedTarget)) {\n\t\t\treturn;\n\t\t}\n\t\t// Reset active index to selected tab index when followFocus is false\n\t\tif (!this.followFocus) {\n\t\t\tthis.activeIndex = this.currentSelectedTab;\n\t\t}\n\t}\n\n\t/**\n\t * `Delete` closes dismissable tabs.\n\t */\n\thandleTabKeyDown(event: KeyboardEvent, tab: Tab, index: number) {\n\t\tif (this.dismissable && event.key === \"Delete\") {\n\t\t\tthis.handleClose(event, tab, index);\n\t\t}\n\t}\n\n\tngOnInit(): void {\n\t\t// Update scroll on resize\n\t\tthis.resizeObserver = new ResizeObserver(() => {\n\t\t\t// Need to explicitly trigger change detection since this runs outside Angular zone\n\t\t\tthis.changeDetectorRef.detectChanges();\n\t\t});\n\t\tthis.resizeObserver.observe(this.headerContainer.nativeElement);\n\t}\n\n\tngOnDestroy(): void {\n\t\tthis.resizeObserver?.unobserve(this.headerContainer.nativeElement);\n\t\tclearTimeout(this.scrollDebounceTimer);\n\t}\n\n\tngAfterContentInit() {\n\t\tif (!this.tabInput) {\n\t\t\tthis.tabs = this.tabQuery;\n\t\t} else {\n\t\t\tthis.tabs = this.tabInput;\n\t\t}\n\n\t\tthis.tabs.forEach(tab => tab.cacheActive = this.cacheActive);\n\t\tthis.tabs.changes.subscribe(() => {\n\t\t\tthis.setFirstTab();\n\t\t\tthis.changeDetectorRef.markForCheck();\n\t\t});\n\t\tthis.setFirstTab();\n\t}\n\n\tngOnChanges(changes: SimpleChanges) {\n\t\tif (this.tabs && changes.cacheActive) {\n\t\t\tthis.tabs.forEach(tab => tab.cacheActive = this.cacheActive);\n\t\t}\n\t}\n\n\t/**\n\t * Controls manually focusing tabs.\n\t */\n\tonTabFocus(ref: HTMLElement, index: number) {\n\t\tif (this.followFocus) {\n\t\t\tthis.currentSelectedTab = index;\n\t\t} else {\n\t\t\tthis.activeIndex = index;\n\t\t}\n\t\t// reset scroll left because we're already handling it\n\t\tthis.headerContainer.nativeElement.parentElement.scrollLeft = 0;\n\n\t\tif (this.scrollIntoView) {\n\t\t\tthis.scrollTabIntoView(this.allTabHeaders.toArray()[index]?.nativeElement);\n\t\t}\n\t}\n\n\tgetSelectedTab(): any {\n\t\tconst selected = this.tabs.find(tab => tab.active);\n\t\tif (selected) {\n\t\t\treturn selected;\n\t\t}\n\t\treturn { headingIsTemplate: false, heading: \"\" };\n\t}\n\n\t/**\n\t * Selects `Tab` 'tab' and moves it into view on the view DOM if it is not already.\n\t */\n\tselectTab(ref: HTMLElement, tab: Tab, tabIndex: number) {\n\t\tif (tab.disabled) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.currentSelectedTab = tabIndex;\n\t\tthis.activeIndex = tabIndex;\n\t\tthis.tabs.forEach(_tab => _tab.active = false);\n\t\ttab.active = true;\n\t\ttab.doSelect();\n\n\t\tif (this.scrollIntoView) {\n\t\t\tthis.scrollTabIntoView(this.allTabHeaders.toArray()[tabIndex]?.nativeElement);\n\t\t}\n\t}\n\n\t/**\n\t * Emit close index and move focus to a nearby enabled tab.\n\t */\n\thandleClose(event: Event, tab: Tab, tabIndex: number) {\n\t\tevent.stopPropagation();\n\t\tif (tab.disabled) {\n\t\t\treturn;\n\t\t}\n\t\ttab.tabClose.emit();\n\t\tthis.tabClose.emit(tabIndex);\n\n\t\t// Move focus to a neighboring enabled tab (next-then-previous).\n\t\tconst headers = this.allTabHeaders?.toArray() ?? [];\n\t\tconst findNextEnabled = (start: number, step: number) => {\n\t\t\tlet i = start;\n\t\t\twhile (i >= 0 && i < headers.length) {\n\t\t\t\tconst candidate = this.tabs.toArray()[i];\n\t\t\t\tif (candidate && !candidate.disabled && i !== tabIndex) {\n\t\t\t\t\treturn headers[i]?.nativeElement;\n\t\t\t\t}\n\t\t\t\ti += step;\n\t\t\t}\n\t\t\treturn null;\n\t\t};\n\t\tconst nextEl = findNextEnabled(tabIndex + 1, 1) || findNextEnabled(tabIndex - 1, -1);\n\t\tif (nextEl) {\n\t\t\t(nextEl as HTMLElement).focus();\n\t\t}\n\t}\n\n\tgetCloseTitle(tab: Tab): string {\n\t\tconst label = !tab.headingIsTemplate && typeof tab.heading === \"string\" ? ` ${tab.heading}` : \"\";\n\t\treturn `Remove${label} tab`;\n\t}\n\n\t/**\n\t * Scroll the given tab element into view if it is not already visible.\n\t */\n\tprotected scrollTabIntoView(tabEl: HTMLElement | null) {\n\t\tif (!tabEl || !this.headerContainer?.nativeElement) {\n\t\t\treturn;\n\t\t}\n\t\tconst container = this.headerContainer.nativeElement;\n\t\tif (container.scrollWidth <= container.clientWidth) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst buttonWidth = this.OVERFLOW_BUTTON_OFFSET;\n\t\tconst tabWidth = tabEl.getBoundingClientRect().width;\n\t\tconst start = tabEl.offsetLeft;\n\t\tconst end = start + tabWidth;\n\t\tconst visibleStart = container.scrollLeft + buttonWidth;\n\t\tconst visibleEnd = container.scrollLeft + container.clientWidth - buttonWidth;\n\n\t\tif (start < visibleStart) {\n\t\t\tcontainer.scrollLeft = start - buttonWidth;\n\t\t} else if (end > visibleEnd) {\n\t\t\tcontainer.scrollLeft = end + buttonWidth - container.clientWidth;\n\t\t}\n\t}\n\n\t/**\n\t * Determines which `Tab` is initially selected.\n\t */\n\tprotected setFirstTab() {\n\t\tsetTimeout(() => {\n\t\t\tlet firstTab = this.tabs.find(tab => tab.active);\n\t\t\tif (!firstTab && this.tabs.first) {\n\t\t\t\tfirstTab = this.tabs.first;\n\t\t\t\tfirstTab.active = true;\n\t\t\t}\n\t\t\tif (firstTab) {\n\t\t\t\tthis.currentSelectedTab = this.tabs.toArray().indexOf(firstTab);\n\t\t\t\tthis.activeIndex = this.currentSelectedTab;\n\t\t\t\tfirstTab.doSelect();\n\t\t\t}\n\t\t});\n\t}\n}\n","import {\r\n\tComponent,\r\n\tQueryList,\r\n\tInput,\r\n\tHostListener,\r\n\tHostBinding,\r\n\tViewChild,\r\n\tContentChildren,\r\n\tAfterContentInit,\r\n\tViewChildren,\r\n\tElementRef,\r\n\tOnChanges,\r\n\tSimpleChanges,\r\n\tOnDestroy,\r\n\tOnInit,\r\n\tChangeDetectorRef,\r\n\tRenderer2\r\n} from \"@angular/core\";\r\nimport { EventService } from \"carbon-components-angular/utils\";\r\nimport { I18n } from \"carbon-components-angular/i18n\";\r\n\r\nimport { BaseTabHeader } from \"./base-tab-header.component\";\r\nimport { Tab } from \"./tab.component\";\r\nimport { NgClass, NgTemplateOutlet } from \"@angular/common\";\r\n\r\nconst VERTICAL_TAB_HEIGHT = 64;\r\n\r\n/**\r\n * The `TabHeadersVertical` component renders tab headers in a vertical\r\n * orientation. It contains the `Tab` items and supports keyboard navigation\r\n * via ArrowUp/ArrowDown/Home/End.\r\n */\r\n@Component({\r\n\tselector: \"cds-tab-headers-vertical, ibm-tab-headers-vertical\",\r\n\ttemplate: `\r\n\t\t@if (isOverflowingTop) {\r\n\t\t\t<div class=\"cds--tab--list-gradient_top\"></div>\r\n\t\t}\r\n\t\t<div\r\n\t\t\t#tabList\r\n\t\t\tclass=\"cds--tab--list\"\r\n\t\t\trole=\"tablist\"\r\n\t\t\t[attr.aria-label]=\"ariaLabel || translations.HEADER_ARIA_LABEL\"\r\n\t\t\t[attr.aria-labelledby]=\"ariaLabelledby || null\">\r\n\t\t\t<ng-container [ngTemplateOutlet]=\"contentBefore\"></ng-container>\r\n\t\t\t@for (tab of tabs; track tab; let i = $index) {\r\n\t\t\t\t<button\r\n\t\t\t\t\t#tabItem\r\n\t\t\t\t\trole=\"tab\"\r\n\t\t\t\t\t[attr.aria-selected]=\"tab.active\"\r\n\t\t\t\t\t[attr.tabindex]=\"(tab.active?0:-1)\"\r\n\t\t\t\t\t[attr.aria-controls]=\"tab.id\"\r\n\t\t\t\t\t[attr.aria-disabled]=\"tab.disabled\"\r\n\t\t\t\t\t[disabled]=\"tab.disabled\"\r\n\t\t\t\t\t[ngClass]=\"{\r\n\t\t\t\t\t\t'cds--tabs__nav-item--selected': tab.active,\r\n\t\t\t\t\t\t'cds--tabs__nav-item--disabled': tab.disabled\r\n\t\t\t\t\t}\"\r\n\t\t\t\t\tclass=\"cds--tabs__nav-item cds--tabs__nav-link\"\r\n\t\t\t\t\ttype=\"button\"\r\n\t\t\t\t\tdraggable=\"false\"\r\n\t\t\t\t\tid=\"{{tab.id}}-header\"\r\n\t\t\t\t\t[attr.title]=\"tab.title || (!tab.headingIsTemplate ? tab.heading : null)\"\r\n\t\t\t\t\t(focus)=\"onTabFocus(i)\"\r\n\t\t\t\t\t(click)=\"selectTab(tab, i)\">\r\n\t\t\t\t\t<div class=\"cds--tabs__nav-item-label-wrapper\">\r\n\t\t\t\t\t\t<span class=\"cds--tabs__nav-item-label\">\r\n\t\t\t\t\t\t\t@if (!tab.headingIsTemplate) {\r\n\t\t\t\t\t\t\t\t{{ tab.heading }}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t@if (tab.headingIsTemplate) {\r\n\t\t\t\t\t\t\t\t<ng-template\r\n\t\t\t\t\t\t\t\t\t[ngTemplateOutlet]=\"tab.heading\"\r\n\t\t\t\t\t\t\t\t\t[ngTemplateOutletContext]=\"{$implicit: tab.context}\">\r\n\t\t\t\t\t\t\t\t</ng-template>\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t</span>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</button>\r\n\t\t\t}\r\n\t\t\t<ng-container [ngTemplateOutlet]=\"contentAfter\"></ng-container>\r\n\t\t</div>\r\n\t\t@if (isOverflowingBottom) {\r\n\t\t\t<div class=\"cds--tab--list-gradient_bottom\"></div>\r\n\t\t}\r\n\t`,\r\n\timports: [NgClass, NgTemplateOutlet]\r\n})\r\nexport class TabHeadersVertical extends BaseTabHeader implements AfterContentInit, OnChanges, OnDestroy, OnInit {\r\n\t/**\r\n\t * List of `Tab` components.\r\n\t */\r\n\t// Template/API uses `[tabs]`; property name differs to avoid clashing with the `tabs` field populated from content.\r\n\t// eslint-disable-next-line @angular-eslint/no-input-rename -- intentional alias for public `[tabs]` binding\r\n\t@Input(\"tabs\") tabInput: QueryList<Tab>;\r\n\r\n\t/**\r\n\t * i18n strings for the tab list `aria-label` fallback.\r\n\t */\r\n\t@Input() translations = this.i18n.get().TABS;\r\n\r\n\t@HostBinding(\"class.cds--tabs--vertical\") verticalClass = true;\r\n\r\n\t@ViewChild(\"tabList\", { static: true }) headerContainer: ElementRef<HTMLElement>;\r\n\r\n\t/**\r\n\t * ContentChild of all the tabs\r\n\t */\r\n\t@ContentChildren(Tab) tabQuery: QueryList<Tab>;\r\n\ttabs: QueryList<Tab>;\r\n\r\n\t@ViewChildren(\"tabItem\") allTabHeaders: QueryList<ElementRef>;\r\n\r\n\t/**\r\n\t * Focused tab index when `followFocus` is false (manual activation)\r\n\t */\r\n\tactiveIndex: number | null = null;\r\n\r\n\t/**\r\n\t * Whether the tab list is overflowing at the top (some tabs are clipped).\r\n\t */\r\n\tisOverflowingTop = false;\r\n\t/**\r\n\t * Whether the tab list is overflowing at the bottom (some tabs are clipped).\r\n\t */\r\n\tisOverflowingBottom = false;\r\n\r\n\tprivate resizeObserver: ResizeObserver;\r\n\r\n\tconstructor(\r\n\t\tprotected elementRef: ElementRef,\r\n\t\tprotected changeDetectorRef: ChangeDetectorRef,\r\n\t\tprotected eventService: EventService,\r\n\t\tprotected renderer: Renderer2,\r\n\t\tprotected i18n: I18n\r\n\t) {\r\n\t\tsuper(elementRef, changeDetectorRef, eventService, renderer);\r\n\t\tthis.type = \"contained\";\r\n\t}\r\n\r\n\t@HostListener(\"keydown\", [\"$event\"])\r\n\tkeyboardInput(event: KeyboardEvent) {\r\n\t\tif (!this.tabs) {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tconst tabsArray = this.tabs.toArray();\r\n\t\tconst enabledTabs = tabsArray.filter(tab => !tab.disabled);\r\n\t\tif (enabledTabs.length === 0) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tconst referenceIndex = this.followFocus ?\r\n\t\t\tthis.currentSelectedTab :\r\n\t\t\t(this.activeIndex !== null ? this.activeIndex : this.currentSelectedTab);\r\n\t\tconst currentEnabledIndex = Math.max(0, enabledTabs.indexOf(tabsArray[referenceIndex]));\r\n\r\n\t\tlet nextEnabledIndex = currentEnabledIndex;\r\n\t\tlet handled = false;\r\n\r\n\t\tif (event.key === \"ArrowDown\") {\r\n\t\t\tnextEnabledIndex = (currentEnabledIndex + 1) % enabledTabs.length;\r\n\t\t\thandled = true;\r\n\t\t} else if (event.key === \"ArrowUp\") {\r\n\t\t\tnextEnabledIndex = (enabledTabs.length + currentEnabledIndex - 1) % enabledTabs.length;\r\n\t\t\thandled = true;\r\n\t\t} else if (event.key === \"Home\") {\r\n\t\t\tnextEnabledIndex = 0;\r\n\t\t\thandled = true;\r\n\t\t} else if (event.key === \"End\") {\r\n\t\t\tnextEnabledIndex = enabledTabs.length - 1;\r\n\t\t\thandled = true;\r\n\t\t}\r\n\r\n\t\tif (handled) {\r\n\t\t\tevent.preventDefault();\r\n\t\t\tconst nextTab = enabledTabs[nextEnabledIndex];\r\n\t\t\tconst nextIndex = tabsArray.indexOf(nextTab);\r\n\r\n\t\t\tif (this.followFocus) {\r\n\t\t\t\tthis.selectTab(nextTab, nextIndex);\r\n\t\t\t} else {\r\n\t\t\t\tthis.activeIndex = nextIndex;\r\n\t\t\t}\r\n\t\t\tthis.allTabHeaders.toArray()[nextIndex].nativeElement.focus();\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif ((event.key === \" \" || event.key === \"Spacebar\") && !this.followFocus) {\r\n\t\t\tconst focusIndex = this.activeIndex !== null ? this.activeIndex : this.currentSelectedTab;\r\n\t\t\tthis.selectTab(tabsArray[focusIndex], focusIndex);\r\n\t\t}\r\n\t}\r\n\r\n\t@HostListener(\"blur\", [\"$event\"])\r\n\thandleBlur(event: FocusEvent) {\r\n\t\tconst relatedTarget = event.relatedTarget as Node | null;\r\n\t\tconst container = this.headerContainer?.nativeElement;\r\n\t\tif (container && relatedTarget && container.contains(relatedTarget)) {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tif (!this.followFocus) {\r\n\t\t\tthis.activeIndex = this.currentSelectedTab;\r\n\t\t}\r\n\t}\r\n\r\n\tngOnInit(): void {\r\n\t\tthis.resizeObserver = new ResizeObserver(() => {\r\n\t\t\tthis.updateOverflowState();\r\n\t\t\tthis.changeDetectorRef.detectChanges();\r\n\t\t});\r\n\t\tthis.resizeObserver.observe(this.headerContainer.nativeElement);\r\n\t\tthis.headerContainer.nativeElement.addEventListener(\"scroll\", this.listScrollHandler);\r\n\t}\r\n\r\n\tngOnDestroy(): void {\r\n\t\tthis.resizeObserver?.unobserve(this.headerContainer.nativeElement);\r\n\t\tthis.headerContainer.nativeElement.removeEventListener(\"scroll\", this.listScrollHandler);\r\n\t}\r\n\r\n\tngAfterContentInit() {\r\n\t\tif (!this.tabInput) {\r\n\t\t\tthis.tabs = this.tabQuery;\r\n\t\t} else {\r\n\t\t\tthis.tabs = this.tabInput;\r\n\t\t}\r\n\r\n\t\tthis.tabs.forEach(tab => tab.cacheActive = this.cacheActive);\r\n\t\tthis.tabs.changes.subscribe(() => {\r\n\t\t\tthis.setFirstTab();\r\n\t\t\tthis.changeDetectorRef.markForCheck();\r\n\t\t});\r\n\t\tthis.setFirstTab();\r\n\t}\r\n\r\n\tngOnChanges(changes: SimpleChanges) {\r\n\t\tif (this.tabs && changes.cacheActive) {\r\n\t\t\tthis.tabs.forEach(tab => tab.cacheActive = this.cacheActive);\r\n\t\t}\r\n\t}\r\n\r\n\tonTabFocus(index: number) {\r\n\t\tif (this.followFocus) {\r\n\t\t\tthis.currentSelectedTab = index;\r\n\t\t} else {\r\n\t\t\tthis.activeIndex = index;\r\n\t\t}\r\n\t\tthis.scrollSelectedTabIntoView();\r\n\t}\r\n\r\n\tselectTab(tab: Tab, tabIndex: number) {\r\n\t\tif (tab.disabled) {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tthis.currentSelectedTab = tabIndex;\r\n\t\tthis.activeIndex = tabIndex;\r\n\t\tthis.tabs.forEach(_tab => _tab.active = false);\r\n\t\ttab.active = true;\r\n\t\ttab.doSelect();\r\n\t\tthis.scrollSelectedTabIntoView();\r\n\t}\r\n\r\n\tgetSelectedTab(): any {\r\n\t\tconst selected = this.tabs.find(tab => tab.active);\r\n\t\tif (selected) {\r\n\t\t\treturn selected;\r\n\t\t}\r\n\t\treturn { headingIsTemplate: false, heading: \"\" };\r\n\t}\r\n\r\n\tprotected updateOverflowState() {\r\n\t\tconst element = this.headerContainer?.nativeElement;\r\n\t\tif (!element) {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tconst halfTabHeight = VERTICAL_TAB_HEIGHT / 2;\r\n\t\tthis.isOverflowingBottom =\r\n\t\t\telement.scrollTop + element.clientHeight + halfTabHeight <= element.scrollHeight;\r\n\t\tthis.isOverflowingTop = element.scrollTop > halfTabHeight;\r\n\t\tthis.changeDetectorRef.markForCheck();\r\n\t}\r\n\r\n\tprotected scrollSelectedTabIntoView() {\r\n\t\tconst container = this.headerContainer?.nativeElement;\r\n\t\tif (!container) {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tconst selectedHeader = this.allTabHeaders?.toArray()[this.currentSelectedTab]?.nativeElement;\r\n\t\tif (!selectedHeader) {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tconst containerRect = container.getBoundingClientRect();\r\n\t\tconst selectedRect = selectedHeader.getBoundingClientRect();\r\n\t\tconst halfTabHeight = VERTICAL_TAB_HEIGHT / 2;\r\n\r\n\t\tif (\r\n\t\t\tselectedRect.top - halfTabHeight < containerRect.top ||\r\n\t\t\tselectedRect.top - containerRect.top + VERTICAL_TAB_HEIGHT + halfTabHeight > containerRect.height\r\n\t\t) {\r\n\t\t\tcontainer.scrollTo({\r\n\t\t\t\ttop: Math.max(0, (this.currentSelectedTab - 1) * VERTICAL_TAB_HEIGHT),\r\n\t\t\t\tbehavior: \"smooth\"\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\tprotected setFirstTab() {\r\n\t\tsetTimeout(() => {\r\n\t\t\tlet firstTab = this.tabs.find(tab => tab.active);\r\n\t\t\tif (!firstTab && this.tabs.first) {\r\n\t\t\t\tfirstTab = this.tabs.first;\r\n\t\t\t\tfirstTab.active = true;\r\n\t\t\t}\r\n\t\t\tif (firstTab) {\r\n\t\t\t\tthis.currentSelectedTab = this.tabs.toArray().indexOf(firstTab);\r\n\t\t\t\tthis.activeIndex = this.currentSelectedTab;\r\n\t\t\t\tfirstTab.doSelect();\r\n\t\t\t\tthis.updateOverflowState();\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\tprivate listScrollHandler = () => this.updateOverflowState();\r\n}\r\n","import {\n\tComponent,\n\tforwardRef,\n\tInput\n} from \"@angular/core\";\nimport { NgTemplateOutlet } from \"@angular/common\";\nimport { Tab } from \"./tab.component\";\n\n/**\n * Icon-only approach for `cds-tab` variant: `[icon]` template plus `label` for tooltip.\n *\n * ```html\n * <ng-template #i><svg cdsIcon=\"activity\" size=\"16\"></svg></ng-template>\n * <cds-tabs>\n * <cds-icon-tab label=\"Activity\" [icon]=\"i\">Panel</cds-icon-tab>\n * </cds-tabs>\n * ```\n */\n@Component({\n\tselector: \"cds-icon-tab, ibm-icon-tab\",\n\ttemplate: `\n\t\t@if (shouldRender()) {\n\t\t\t@if (isTemplate(tabContent)) {\n\t\t\t\t<ng-template\n\t\t\t\t\t[ngTemplateOutlet]=\"tabContent\"\n\t\t\t\t\t[ngTemplateOutletContext]=\"{ $implicit: templateContext }\" />\n\t\t\t}\n\t\t\t<ng-content />\n\t\t}\n\t`,\n\tproviders: [\n\t\t{ provide: Tab, useExisting: forwardRef(() => IconTab) }\n\t],\n\timports: [NgTemplateOutlet]\n})\nexport class IconTab extends Tab {\n\t/**\n\t * Accessible label and tooltip text for the icon tab.\n\t */\n\t@Input()\n\tset label(value: string) {\n\t\tthis.iconLabel = value;\n\t}\n\n\tget label(): string {\n\t\treturn this.iconLabel;\n\t}\n\n\t/**\n\t * Icon tabs are only for icons, so iconOnly by default\n\t */\n\toverride iconOnly = true;\n}\n","import {\n\tComponent,\n\tHostBinding,\n\tInput\n} from \"@angular/core\";\n\n/**\n * Skeleton component for tabs\n */\n@Component({\n\tselector: \"cds-tabs-skeleton, ibm-tabs-skeleton\",\n\ttemplate: `\n\t\t<ul class=\"cds--tabs__nav\">\n\t\t\t@for (i of numOfSkeletonTabs; track i) {\n\t\t\t\t<li class=\"cds--tabs__nav-item\">\n\t\t\t\t\t<div class=\"cds--tabs__nav-link\">\n\t\t\t\t\t\t<span></span>\n\t\t\t\t\t</div>\n\t\t\t\t</li>\n\t\t\t}\n\t\t</ul>\n\t`,\n\tstandalone: true\n})\nexport class TabSkeleton {\n\t/**\n\t * Number of skeleton tab placeholders to render, default is 5\n\t */\n\t@Input() set numOftabs(num: number) {\n\t\tthis.numOfSkeletonTabs = new Array(num);\n\t}\n\n\t/**\n\t * Set to `true` to render the contained variant of the skeleton tabs.\n\t */\n\t@Input() contained = false;\n\n\t/**\n\t * Set to `true` to put tabs in a loading state.\n\t */\n\t@HostBinding(\"class.cds--skeleton\") skeleton = true;\n\t@HostBinding(\"class.cds--tabs\") tabs = true;\n\t@HostBinding(\"class.cds--tabs--contained\") get containedClass() {\n\t\treturn this.contained;\n\t}\n\tnumOfSkeletonTabs = new Array(5);\n}\n","import {\n\tComponent,\n\tInput,\n\tOutput,\n\tEventEmitter,\n\tContentChildren,\n\tQueryList,\n\tAfterContentInit,\n\tContentChild,\n\tOnChanges,\n\tSimpleChanges\n} from \"@angular/core\";\nimport { Tab } from \"./tab.component\";\nimport { TabHeaders } from \"./tab-headers.component\";\nimport { TabSkeleton } from \"./tab-skeleton.component\";\n\n/**\n * Build out your application's tabs using this component.\n * This is the parent of the `Tab` and `TabHeader` components.\n *\n * [See demo](../../?path=/story/components-tabs--basic)\n *\n * `Tabs` expects a set of `n-tab` elements\n *\n * ```html\n * <cds-tabs>\n * \t<cds-tab heading='tab1'>\n * \t\ttab 1 content\n * \t</cds-tab>\n * \t<cds-tab heading='tab1'>\n * \t\ttab 2 content\n * \t</cds-tab>\n * \t<!-- ... -->\n * \t<cds-tab heading='tab1'>\n * \t\ttab n content\n * \t</cds-tab>\n * </cds-tabs>\n * ```\n */\n@Component({\n\tselector: \"cds-tabs, ibm-tabs\",\n\ttemplate: `\n\t\t@if (skeleton) {\n\t\t\t<cds-tabs-skeleton [contained]=\"type === 'contained'\" />\n\t\t}\n\t\t@if (!skeleton) {\n\t\t\t@if (hasTabHeaders() && position === 'top') {\n\t\t\t\t<cds-tab-headers\n\t\t\t\t\t[theme]=\"theme\"\n\t\t\t\t\t[tabs]=\"tabs\"\n\t\t\t\t\t[followFocus]=\"followFocus\"\n\t\t\t\t\t[cacheActive]=\"cacheActive\"\n\t\t\t\t\t[contentBefore]=\"before\"\n\t\t\t\t\t[contentAfter]=\"after\"\n\t\t\t\t\t[ariaLabel]=\"ariaLabel\"\n\t\t\t\t\t[ariaLabelledby]=\"ariaLabelledby\"\n\t\t\t\t\t[type]=\"type\"\n\t\t\t\t\t[iconSize]=\"iconSize\"\n\t\t\t\t\t[fullWidth]=\"fullWidth\"\n\t\t\t\t\t[dismissable]=\"dismissable\"\n\t\t\t\t\t[scrollIntoView]=\"scrollIntoView\"\n\t\t\t\t\t[scrollDebounceWait]=\"scrollDebounceWait\"\n\t\t\t\t\t(tabClose)=\"tabClose.emit($event)\" />\n\t\t\t}\n\t\t\t<ng-content />\n\t\t\t<ng-template #before>\n\t\t\t\t<ng-content select=\"[before]\" />\n\t\t\t</ng-template>\n\t\t\t<ng-template #after>\n\t\t\t\t<ng-content select=\"[after]\" />\n\t\t\t</ng-template>\n\t\t\t@if (hasTabHeaders() && position === 'bottom') {\n\t\t\t\t<cds-tab-headers\n\t\t\t\t\t[tabs]=\"tabs\"\n\t\t\t\t\t[cacheActive]=\"cacheActive\"\n\t\t\t\t\t[type]=\"type\"\n\t\t\t\t\t[iconSize]=\"iconSize\"\n\t\t\t\t\t[fullWidth]=\"fullWidth\"\n\t\t\t\t\t[dismissable]=\"dismissable\"\n\t\t\t\t\t[scrollIntoView]=\"scrollIntoView\"\n\t\t\t\t\t[scrollDebounceWait]=\"scrollDebounceWait\"\n\t\t\t\t\t(tabClose)=\"tabClose.emit($event)\" />\n\t\t\t}\n\t\t}\n\t`,\n\timports: [TabSkeleton, TabHeaders]\n})\nexport class Tabs implements AfterContentInit, OnChanges {\n\t/**\n\t * Takes either `top` or `bottom` to place `TabHeader` relative to the tab panels.\n\t */\n\t@Input() position: \"top\" | \"bottom\" = \"top\";\n\t/**\n\t * Set to `true` to have `Tab` items cached and not reloaded on tab switching.\n\t */\n\t@Input() cacheActive = false;\n\t/**\n\t * Set to 'true' to have tabs automatically activated and have their content displayed when they receive focus.\n\t */\n\t@Input() followFocus = true;\n\t/**\n\t * When `true`, sets each tab panel `tabindex` to `-1` for navigation-style usage.\n\t */\n\t@Input() isNavigation = false;\n\t/**\n\t * Sets the aria label on the `TabHeader`s nav element.\n\t */\n\t@Input() ariaLabel: string;\n\t/**\n\t * Sets the aria labelledby on the `TabHeader`s nav element.\n\t */\n\t@Input() ariaLabelledby: string;\n\t/**\n\t * Visual style of the tab headers: `line` or `contained`.\n\t */\n\t@Input() type: \"line\" | \"contained\" = \"line\";\n\t/**\n\t * Theme for tab headers: `light` or `dark`.\n\t */\n\t@Input() theme: \"light\" | \"dark\" = \"dark\";\n\t/**\n\t * When `true`, renders the tabs skeleton loading state.\n\t */\n\t@Input() skeleton = false;\n\t/**\n\t * When using icon-only tabs, icon size: `default` (16px) or `lg` (20px).\n\t */\n\t@Input() iconSize: \"default\" | \"lg\";\n\t/**\n\t * Evenly sized tabs across the row (contained, fewer than 9 tabs).\n\t */\n\t@Input() fullWidth = false;\n\t/**\n\t * Show a close control on each tab.\n\t */\n\t@Input() dismissable = false;\n\t/**\n\t * Scroll the active tab into view on focus/select.\n\t */\n\t@Input() scrollIntoView = false;\n\t/**\n\t * Debounce (ms) for tab list scroll events; affects overflow chevron updates.\n\t */\n\t@Input() scrollDebounceWait = 200;\n\n\t/**\n\t * Emits when a tab close control is used (with `dismissable`).\n\t * The emitted value is the tab index.\n\t */\n\t@Output() tabClose: EventEmitter<number> = new EventEmitter<number>();\n\n\t/**\n\t * Maintains a `QueryList` of the `Tab` elements and updates if `Tab`s are added or removed.\n\t */\n\t@ContentChildren(Tab, { descendants: false }) tabs: QueryList<Tab>;\n\t/**\n\t * Content child of the projected header component\n\t */\n\t@ContentChild(TabHeaders) tabHeaders;\n\n\t/**\n\t * After content is initialized update `Tab`s to cache (if turned on) and set the initial\n\t * selected Tab item.\n\t */\n\tngAfterContentInit() {\n\t\tif (this.tabHeaders) {\n\t\t\tthis.tabHeaders.cacheActive = this.cacheActive;\n\t\t}\n\n\t\tthis.tabs.forEach(tab => {\n\t\t\ttab.tabIndex = this.isNavigation ? null : 0;\n\t\t});\n\t}\n\n\tngOnChanges(changes: SimpleChanges) {\n\t\tif (this.tabHeaders && changes.cacheActive) {\n\t\t\tthis.tabHeaders.cacheActive = this.cacheActive;\n\t\t}\n\n\t\tif (this.tabs && changes.isNavigation) {\n\t\t\tthis.tabs.forEach(tab => {\n\t\t\t\ttab.tabIndex = this.isNavigation ? null : 0;\n\t\t\t});\n\t\t}\n\t}\n\n\t/**\n\t * true if the cds-tab's are passed directly to the component as children\n\t */\n\thasTabHeaders() {\n\t\treturn this.tabs.length > 0;\n\t}\n}\n","import {\r\n\tComponent,\r\n\tInput,\r\n\tContentChildren,\r\n\tQueryList,\r\n\tAfterContentInit,\r\n\tContentChild,\r\n\tHostBinding,\r\n\tOnChanges,\r\n\tSimpleChanges\r\n} from \"@angular/core\";\r\nimport { Tab } from \"./tab.component\";\r\nimport { TabHeadersVertical } from \"./tab-headers-vertical.component\";\r\nimport { TabSkeleton } from \"./tab-skeleton.component\";\r\n\r\n/**\r\n * `TabsVertical` is a vertical-orientation variant of `Tabs`. It expects a set\r\n * of `<cds-tab>` elements as children and renders the headers vertically.\r\n *\r\n * ```html\r\n * <cds-tabs-vertical>\r\n * \t<cds-tab heading='tab1'>tab 1 content</cds-tab>\r\n * \t<cds-tab heading='tab2'>tab 2 content</cds-tab>\r\n * </cds-tabs-vertical>\r\n * ```\r\n */\r\n@Component({\r\n\tselector: \"cds-tabs-vertical, ibm-tabs-vertical\",\r\n\ttemplate: `\r\n\t\t@if (skeleton) {\r\n\t\t\t<cds-tabs-skeleton [contained]=\"true\" />\r\n\t\t}\r\n\t\t@if (!skeleton) {\r\n\t\t\t@if (hasTabHeaders()) {\r\n\t\t\t\t<cds-tab-headers-vertical\r\n\t\t\t\t\t[tabs]=\"tabs\"\r\n\t\t\t\t\t[followFocus]=\"followFocus\"\r\n\t\t\t\t\t[cacheActive]=\"cacheActive\"\r\n\t\t\t\t\t[contentBefore]=\"before\"\r\n\t\t\t\t\t[contentAfter]=\"after\"\r\n\t\t\t\t\t[ariaLabel]=\"ariaLabel\"\r\n\t\t\t\t\t[ariaLabelledby]=\"ariaLabelledby\" />\r\n\t\t\t}\r\n\t\t\t<ng-content />\r\n\t\t\t<ng-template #before>\r\n\t\t\t\t<ng-content select=\"[before]\" />\r\n\t\t\t</ng-template>\r\n\t\t\t<ng-template #after>\r\n\t\t\t\t<ng-content select=\"[after]\" />\r\n\t\t\t</ng-template>\r\n\t\t}\r\n\t`,\r\n\timports: [TabSkeleton, TabHeadersVertical]\r\n})\r\nexport class TabsVertical implements AfterContentInit, OnChanges {\r\n\t@HostBinding(\"class.cds--css-grid\") cssGridClass = true;\r\n\t@HostBinding(\"style.height\") get hostHeight() {\r\n\t\treturn this.height || null;\r\n\t}\r\n\t/**\r\n\t * Set to `true` to have `Tab` items cached and not reloaded on tab switching.\r\n\t */\r\n\t@Input() cacheActive = false;\r\n\t/**\r\n\t * Set to 'true' to have tabs automatically activated and have their content displayed when they receive focus.\r\n\t */\r\n\t@Input() followFocus = true;\r\n\t/**\r\n\t * When `true`, sets each tab panel `tabindex` to `-1` for navigation-style usage.\r\n\t */\r\n\t@Input() isNavigation = false;\r\n\t/**\r\n\t * Sets the aria label on the `TabHeadersVertical`s nav element.\r\n\t */\r\n\t@Input() ariaLabel: string;\r\n\t/**\r\n\t * Sets the aria labelledby on the `TabHeadersVertical`s nav element.\r\n\t */\r\n\t@Input() ariaLabelledby: string;\r\n\t/**\r\n\t * **Optional**: explicit height for the vertical tab list container; accepts any\r\n\t * valid CSS height value.\r\n\t */\r\n\t@Input() height: string;\r\n\t/**\r\n\t * When `true`, renders the tabs skeleton loading state.\r\n\t */\r\n\t@Input() skeleton = false;\r\n\r\n\t/**\r\n\t * Maintains a `QueryList` of the `Tab` elements and updates if `Tab`s are added or removed.\r\n\t */\r\n\t@ContentChildren(Tab, { descendants: false }) tabs: QueryList<Tab>;\r\n\t/**\r\n\t * Content child of the projected header component.\r\n\t */\r\n\t@ContentChild(TabHeadersVertical) tabHeaders;\r\n\r\n\tngAfterContentInit() {\r\n\t\tif (this.tabHeaders) {\r\n\t\t\tthis.tabHeaders.cacheActive = this.cacheActive;\r\n\t\t}\r\n\t\tthis.tabs.forEach(tab => {\r\n\t\t\ttab.tabIndex = this.isNavigation ? null : 0;\r\n\t\t});\r\n\t}\r\n\r\n\tngOnChanges(changes: SimpleChanges) {\r\n\t\tif (this.tabHeaders && changes.cacheActive) {\r\n\t\t\tthis.tabHeaders.cacheActive = this.cacheActive;\r\n\t\t}\r\n\t\tif (this.tabs && changes.isNavigation) {\r\n\t\t\tthis.tabs.forEach(tab => {\r\n\t\t\t\ttab.tabIndex = this.isNavigation ? null : 0;\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\thasTabHeaders() {\r\n\t\treturn this.tabs.length > 0;\r\n\t}\r\n}\r\n","import {\r\n\tComponent,\r\n\tHostBinding,\r\n\tInput\r\n} from \"@angular/core\";\r\n\r\n/**\r\n * `TabsVerticalGrouped` is the vertical-orientation counterpart of the\r\n * \"tab-header-group\" composition pattern. It is a thin wrapper that\r\n * supplies the layout context (`cds--css-grid` and an explicit height).\r\n *\r\n * ```html\r\n * <cds-tabs-vertical-grouped height=\"400px\">\r\n * <cds-tab-header-group-vertical>\r\n * <cds-tab-header [paneReference]=\"content1\">Dashboard</cds-tab-header>\r\n * <cds-tab-header [paneReference]=\"content2\"\r\n * secondaryLabel=\"(21/25)\" [dismissable]=\"true\">\r\n * Monitoring\r\n * </cds-tab-header>\r\n * </cds-tab-header-group-vertical>\r\n *\r\n * <cds-tab #content1>Tab Content 1</cds-tab>\r\n * <cds-tab #content2>Tab Content 2</cds-tab>\r\n * </cds-tabs-vertical-grouped>\r\n * ```\r\n */\r\n@Component({\r\n\tselector: \"cds-tabs-vertical-grouped, ibm-tabs-vertical-grouped\",\r\n\ttemplate: `<ng-content />`,\r\n\tstandalone: true\r\n})\r\nexport class TabsVerticalGrouped {\r\n\t/**\r\n\t * **Optional**: explicit height for the vertical tab list container. Accepts\r\n\t * any valid CSS height value.\r\n\t */\r\n\t@Input() height: string;\r\n\r\n\t@HostBinding(\"class.cds--css-grid\") cssGridClass = true;\r\n\r\n\t@HostBinding(\"style.height\") get hostHeight() {\r\n\t\treturn this.height || null;\r\n\t}\r\n}\r\n","import { NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\nimport { UtilsModule } from \"carbon-components-angular/utils\";\nimport { I18nModule } from \"carbon-components-angular/i18n\";\n\nimport { TabSkeleton } from \"./tab-skeleton.component\";\nimport { BaseTabHeader } from \"./base-tab-header.component\";\nimport { Tabs } from \"./tabs.component\";\nimport { TabsVertical } from \"./tabs-vertical.component\";\nimport { TabsVerticalGrouped } from \"./tabs-vertical-grouped.component\";\nimport { Tab } from \"./tab.component\";\nimport { IconTab } from \"./icon-tab.component\";\nimport { TabHeader } from \"./tab-header.directive\";\nimport { TabHeaderComponent } from \"./tab-header.component\";\nimport { TabHeaders } from \"./tab-headers.component\";\nimport { TabHeadersVertical } from \"./tab-headers-vertical.component\";\nimport { TabHeaderGroup } from \"./tab-header-group.component\";\nimport { TabHeaderGroupVertical } from \"./tab-header-group-vertical.component\";\n\n@NgModule({\n\texports: [\n\t\tTabs,\n\t\tTabsVertical,\n\t\tTabsVerticalGrouped,\n\t\tTab,\n\t\tIconTab,\n\t\tTabHeader,\n\t\tTabHeaderComponent,\n\t\tTabHeaders,\n\t\tTabHeadersVertical,\n\t\tTabHeaderGroup,\n\t\tTabHeaderGroupVertical,\n\t\tTabSkeleton\n\t],\n\timports: [\n\t\tCommonModule,\n\t\tUtilsModule,\n\t\tI18nModule,\n\t\tBaseTabHeader,\n\t\tTabs,\n\t\tTabsVertical,\n\t\tTabsVerticalGrouped,\n\t\tTab,\n\t\tIconTab,\n\t\tTabHeader,\n\t\tTabHeaderComponent,\n\t\tTabHeaders,\n\t\tTabHeadersVertical,\n\t\tTabHeaderGroup,\n\t\tTabHeaderGroupVertical,\n\t\tTabSkeleton\n\t]\n})\nexport class TabsModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["VERTICAL_TAB_HEIGHT"],"mappings":"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"}