@clr/angular 18.2.2 → 18.4.0

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 (112) hide show
  1. package/fesm2022/clr-angular-accordion.mjs +28 -28
  2. package/fesm2022/clr-angular-accordion.mjs.map +1 -1
  3. package/fesm2022/clr-angular-button.mjs +27 -27
  4. package/fesm2022/clr-angular-button.mjs.map +1 -1
  5. package/fesm2022/clr-angular-card.mjs +417 -0
  6. package/fesm2022/clr-angular-card.mjs.map +1 -0
  7. package/fesm2022/clr-angular-collapsible-panel.mjs +6 -6
  8. package/fesm2022/clr-angular-collapsible-panel.mjs.map +1 -1
  9. package/fesm2022/clr-angular-data-datagrid.mjs +1578 -415
  10. package/fesm2022/clr-angular-data-datagrid.mjs.map +1 -1
  11. package/fesm2022/clr-angular-data-stack-view.mjs +23 -23
  12. package/fesm2022/clr-angular-data-stack-view.mjs.map +1 -1
  13. package/fesm2022/clr-angular-data-tree-view.mjs +283 -48
  14. package/fesm2022/clr-angular-data-tree-view.mjs.map +1 -1
  15. package/fesm2022/clr-angular-data.mjs +4 -4
  16. package/fesm2022/clr-angular-data.mjs.map +1 -1
  17. package/fesm2022/clr-angular-emphasis-alert.mjs +26 -26
  18. package/fesm2022/clr-angular-emphasis-alert.mjs.map +1 -1
  19. package/fesm2022/clr-angular-emphasis-badge.mjs +3 -3
  20. package/fesm2022/clr-angular-emphasis-badge.mjs.map +1 -1
  21. package/fesm2022/clr-angular-emphasis-label.mjs +3 -3
  22. package/fesm2022/clr-angular-emphasis-label.mjs.map +1 -1
  23. package/fesm2022/clr-angular-emphasis.mjs +4 -4
  24. package/fesm2022/clr-angular-emphasis.mjs.map +1 -1
  25. package/fesm2022/clr-angular-forms-checkbox.mjs +23 -14
  26. package/fesm2022/clr-angular-forms-checkbox.mjs.map +1 -1
  27. package/fesm2022/clr-angular-forms-combobox.mjs +35 -35
  28. package/fesm2022/clr-angular-forms-combobox.mjs.map +1 -1
  29. package/fesm2022/clr-angular-forms-common.mjs +69 -69
  30. package/fesm2022/clr-angular-forms-common.mjs.map +1 -1
  31. package/fesm2022/clr-angular-forms-datalist.mjs +17 -17
  32. package/fesm2022/clr-angular-forms-datalist.mjs.map +1 -1
  33. package/fesm2022/clr-angular-forms-datepicker.mjs +73 -73
  34. package/fesm2022/clr-angular-forms-datepicker.mjs.map +1 -1
  35. package/fesm2022/clr-angular-forms-file-input.mjs +36 -36
  36. package/fesm2022/clr-angular-forms-file-input.mjs.map +1 -1
  37. package/fesm2022/clr-angular-forms-input.mjs +10 -10
  38. package/fesm2022/clr-angular-forms-input.mjs.map +1 -1
  39. package/fesm2022/clr-angular-forms-number-input.mjs +12 -12
  40. package/fesm2022/clr-angular-forms-number-input.mjs.map +1 -1
  41. package/fesm2022/clr-angular-forms-password.mjs +11 -11
  42. package/fesm2022/clr-angular-forms-password.mjs.map +1 -1
  43. package/fesm2022/clr-angular-forms-radio.mjs +17 -24
  44. package/fesm2022/clr-angular-forms-radio.mjs.map +1 -1
  45. package/fesm2022/clr-angular-forms-range.mjs +10 -10
  46. package/fesm2022/clr-angular-forms-range.mjs.map +1 -1
  47. package/fesm2022/clr-angular-forms-select.mjs +10 -10
  48. package/fesm2022/clr-angular-forms-select.mjs.map +1 -1
  49. package/fesm2022/clr-angular-forms-textarea.mjs +10 -10
  50. package/fesm2022/clr-angular-forms-textarea.mjs.map +1 -1
  51. package/fesm2022/clr-angular-forms.mjs +4 -4
  52. package/fesm2022/clr-angular-forms.mjs.map +1 -1
  53. package/fesm2022/clr-angular-icon.mjs +101 -47
  54. package/fesm2022/clr-angular-icon.mjs.map +1 -1
  55. package/fesm2022/clr-angular-layout-breadcrumbs.mjs +10 -10
  56. package/fesm2022/clr-angular-layout-breadcrumbs.mjs.map +1 -1
  57. package/fesm2022/clr-angular-layout-main-container.mjs +7 -7
  58. package/fesm2022/clr-angular-layout-main-container.mjs.map +1 -1
  59. package/fesm2022/clr-angular-layout-nav.mjs +22 -22
  60. package/fesm2022/clr-angular-layout-nav.mjs.map +1 -1
  61. package/fesm2022/clr-angular-layout-tabs.mjs +35 -35
  62. package/fesm2022/clr-angular-layout-tabs.mjs.map +1 -1
  63. package/fesm2022/clr-angular-layout-vertical-nav.mjs +31 -31
  64. package/fesm2022/clr-angular-layout-vertical-nav.mjs.map +1 -1
  65. package/fesm2022/clr-angular-layout.mjs +4 -4
  66. package/fesm2022/clr-angular-layout.mjs.map +1 -1
  67. package/fesm2022/clr-angular-modal.mjs +29 -27
  68. package/fesm2022/clr-angular-modal.mjs.map +1 -1
  69. package/fesm2022/clr-angular-popover-common.mjs +70 -35
  70. package/fesm2022/clr-angular-popover-common.mjs.map +1 -1
  71. package/fesm2022/clr-angular-popover-dropdown.mjs +63 -26
  72. package/fesm2022/clr-angular-popover-dropdown.mjs.map +1 -1
  73. package/fesm2022/clr-angular-popover-signpost.mjs +27 -25
  74. package/fesm2022/clr-angular-popover-signpost.mjs.map +1 -1
  75. package/fesm2022/clr-angular-popover-tooltip.mjs +19 -19
  76. package/fesm2022/clr-angular-popover-tooltip.mjs.map +1 -1
  77. package/fesm2022/clr-angular-popover.mjs +4 -4
  78. package/fesm2022/clr-angular-popover.mjs.map +1 -1
  79. package/fesm2022/clr-angular-progress-progress-bars.mjs +7 -7
  80. package/fesm2022/clr-angular-progress-progress-bars.mjs.map +1 -1
  81. package/fesm2022/clr-angular-progress-spinner.mjs +7 -7
  82. package/fesm2022/clr-angular-progress-spinner.mjs.map +1 -1
  83. package/fesm2022/clr-angular-stepper.mjs +31 -31
  84. package/fesm2022/clr-angular-stepper.mjs.map +1 -1
  85. package/fesm2022/clr-angular-timeline.mjs +24 -24
  86. package/fesm2022/clr-angular-timeline.mjs.map +1 -1
  87. package/fesm2022/clr-angular-utils-conditional.mjs +16 -16
  88. package/fesm2022/clr-angular-utils-conditional.mjs.map +1 -1
  89. package/fesm2022/clr-angular-utils-loading.mjs +7 -7
  90. package/fesm2022/clr-angular-utils-loading.mjs.map +1 -1
  91. package/fesm2022/clr-angular-utils.mjs +149 -150
  92. package/fesm2022/clr-angular-utils.mjs.map +1 -1
  93. package/fesm2022/clr-angular-wizard.mjs +51 -51
  94. package/fesm2022/clr-angular-wizard.mjs.map +1 -1
  95. package/fesm2022/clr-angular.mjs +9 -4
  96. package/fesm2022/clr-angular.mjs.map +1 -1
  97. package/package.json +9 -5
  98. package/types/clr-angular-card.d.ts +110 -0
  99. package/types/clr-angular-data-datagrid.d.ts +427 -57
  100. package/types/clr-angular-data-tree-view.d.ts +126 -88
  101. package/types/clr-angular-forms-checkbox.d.ts +3 -0
  102. package/types/clr-angular-forms-datepicker.d.ts +1 -1
  103. package/types/clr-angular-forms-file-input.d.ts +1 -1
  104. package/types/clr-angular-forms-radio.d.ts +1 -2
  105. package/types/clr-angular-icon.d.ts +22 -2
  106. package/types/clr-angular-popover-common.d.ts +6 -0
  107. package/types/clr-angular-popover-dropdown.d.ts +33 -4
  108. package/types/clr-angular-utils.d.ts +61 -20
  109. package/types/clr-angular.d.ts +8 -6
  110. package/schematics/vitest.config.d.ts +0 -2
  111. package/schematics/vitest.config.js +0 -17
  112. package/schematics/vitest.config.js.map +0 -1
@@ -58,10 +58,10 @@ class TabsService {
58
58
  this.children.splice(index, 1);
59
59
  }
60
60
  }
61
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: TabsService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
62
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: TabsService }); }
61
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: TabsService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
62
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: TabsService }); }
63
63
  }
64
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: TabsService, decorators: [{
64
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: TabsService, decorators: [{
65
65
  type: Injectable
66
66
  }] });
67
67
 
@@ -99,8 +99,8 @@ class ClrTabContent {
99
99
  this.tabsService.tabContentViewContainer.remove(index);
100
100
  }
101
101
  }
102
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: ClrTabContent, deps: [{ token: i1.IfActiveService }, { token: IF_ACTIVE_ID }, { token: TabsService }], target: i0.ɵɵFactoryTarget.Component }); }
103
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.1.3", type: ClrTabContent, isStandalone: false, selector: "clr-tab-content", inputs: { tabContentId: ["id", "tabContentId"] }, viewQueries: [{ propertyName: "templateRef", first: true, predicate: ["tabContentProjectedRef"], descendants: true, static: true }], ngImport: i0, template: `
102
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: ClrTabContent, deps: [{ token: i1.IfActiveService }, { token: IF_ACTIVE_ID }, { token: TabsService }], target: i0.ɵɵFactoryTarget.Component }); }
103
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.25", type: ClrTabContent, isStandalone: false, selector: "clr-tab-content", inputs: { tabContentId: ["id", "tabContentId"] }, viewQueries: [{ propertyName: "templateRef", first: true, predicate: ["tabContentProjectedRef"], descendants: true, static: true }], ngImport: i0, template: `
104
104
  <ng-template #tabContentProjectedRef>
105
105
  <section
106
106
  [id]="tabContentId"
@@ -116,7 +116,7 @@ class ClrTabContent {
116
116
  </ng-template>
117
117
  `, isInline: true }); }
118
118
  }
119
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: ClrTabContent, decorators: [{
119
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: ClrTabContent, decorators: [{
120
120
  type: Component,
121
121
  args: [{
122
122
  selector: 'clr-tab-content',
@@ -209,10 +209,10 @@ class ClrTabLink {
209
209
  activate() {
210
210
  this.ifActiveService.current = this.id;
211
211
  }
212
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: ClrTabLink, deps: [{ token: i1.IfActiveService }, { token: IF_ACTIVE_ID }, { token: i0.ElementRef }, { token: i0.ViewContainerRef }, { token: TabsService }, { token: TABS_ID }], target: i0.ɵɵFactoryTarget.Directive }); }
213
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.1.3", type: ClrTabLink, isStandalone: false, selector: "[clrTabLink]", inputs: { tabLinkId: ["id", "tabLinkId"], inOverflow: ["clrTabLinkInOverflow", "inOverflow"] }, host: { attributes: { "role": "tab", "type": "button" }, listeners: { "click": "activate()" }, properties: { "class.btn": "true", "id": "this.tabLinkId", "class.btn-link": "this.addLinkClasses", "class.nav-link": "this.addLinkClasses", "attr.aria-controls": "this.ariaControls", "class.active": "this.active", "attr.aria-selected": "this.active", "attr.tabindex": "this.tabindex" } }, ngImport: i0 }); }
212
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: ClrTabLink, deps: [{ token: i1.IfActiveService }, { token: IF_ACTIVE_ID }, { token: i0.ElementRef }, { token: i0.ViewContainerRef }, { token: TabsService }, { token: TABS_ID }], target: i0.ɵɵFactoryTarget.Directive }); }
213
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.25", type: ClrTabLink, isStandalone: false, selector: "[clrTabLink]", inputs: { tabLinkId: ["id", "tabLinkId"], inOverflow: ["clrTabLinkInOverflow", "inOverflow"] }, host: { attributes: { "role": "tab", "type": "button" }, listeners: { "click": "activate()" }, properties: { "class.btn": "true", "id": "this.tabLinkId", "class.btn-link": "this.addLinkClasses", "class.nav-link": "this.addLinkClasses", "attr.aria-controls": "this.ariaControls", "class.active": "this.active", "attr.aria-selected": "this.active", "attr.tabindex": "this.tabindex" } }, ngImport: i0 }); }
214
214
  }
215
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: ClrTabLink, decorators: [{
215
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: ClrTabLink, decorators: [{
216
216
  type: Directive,
217
217
  args: [{
218
218
  selector: '[clrTabLink]',
@@ -280,10 +280,10 @@ class ClrTab {
280
280
  ngOnDestroy() {
281
281
  this.tabsService.unregister(this);
282
282
  }
283
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: ClrTab, deps: [{ token: i1.IfActiveService }, { token: IF_ACTIVE_ID }, { token: TabsService }], target: i0.ɵɵFactoryTarget.Component }); }
284
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.1.3", type: ClrTab, isStandalone: false, selector: "clr-tab", providers: [IF_ACTIVE_ID_PROVIDER], queries: [{ propertyName: "tabLink", first: true, predicate: ClrTabLink, descendants: true, static: true }, { propertyName: "tabContent", first: true, predicate: ClrTabContent, descendants: true, static: true }], ngImport: i0, template: `<ng-content></ng-content>`, isInline: true }); }
283
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: ClrTab, deps: [{ token: i1.IfActiveService }, { token: IF_ACTIVE_ID }, { token: TabsService }], target: i0.ɵɵFactoryTarget.Component }); }
284
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.25", type: ClrTab, isStandalone: false, selector: "clr-tab", providers: [IF_ACTIVE_ID_PROVIDER], queries: [{ propertyName: "tabLink", first: true, predicate: ClrTabLink, descendants: true, static: true }, { propertyName: "tabContent", first: true, predicate: ClrTabContent, descendants: true, static: true }], ngImport: i0, template: `<ng-content></ng-content>`, isInline: true }); }
285
285
  }
286
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: ClrTab, decorators: [{
286
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: ClrTab, decorators: [{
287
287
  type: Component,
288
288
  args: [{
289
289
  selector: 'clr-tab',
@@ -309,10 +309,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", ngImpor
309
309
  * The full license information can be found in LICENSE in the root directory of this project.
310
310
  */
311
311
  class ClrTabAction {
312
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: ClrTabAction, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
313
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.1.3", type: ClrTabAction, isStandalone: false, selector: "[clrTabAction]", host: { attributes: { "tabindex": "0" } }, ngImport: i0 }); }
312
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: ClrTabAction, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
313
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.25", type: ClrTabAction, isStandalone: false, selector: "[clrTabAction]", host: { attributes: { "tabindex": "0" } }, ngImport: i0 }); }
314
314
  }
315
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: ClrTabAction, decorators: [{
315
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: ClrTabAction, decorators: [{
316
316
  type: Directive,
317
317
  args: [{
318
318
  selector: '[clrTabAction]',
@@ -330,10 +330,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", ngImpor
330
330
  * The full license information can be found in LICENSE in the root directory of this project.
331
331
  */
332
332
  class ClrTabOverflowContent {
333
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: ClrTabOverflowContent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
334
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.1.3", type: ClrTabOverflowContent, isStandalone: false, selector: "clr-tab-overflow-content", host: { properties: { "class.dropdown-menu": "true" } }, ngImport: i0, template: `<ng-content></ng-content>`, isInline: true }); }
333
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: ClrTabOverflowContent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
334
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.25", type: ClrTabOverflowContent, isStandalone: false, selector: "clr-tab-overflow-content", host: { properties: { "class.dropdown-menu": "true" } }, ngImport: i0, template: `<ng-content></ng-content>`, isInline: true }); }
335
335
  }
336
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: ClrTabOverflowContent, decorators: [{
336
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: ClrTabOverflowContent, decorators: [{
337
337
  type: Component,
338
338
  args: [{
339
339
  selector: 'clr-tab-overflow-content',
@@ -496,8 +496,8 @@ class ClrTabs {
496
496
  listedForTabsActionsChanges() {
497
497
  return this.tabsActions.changes.subscribe(() => this.setTabLinkElements());
498
498
  }
499
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: ClrTabs, deps: [{ token: i1.IfActiveService }, { token: i2.ClrPopoverService }, { token: TabsService }, { token: TABS_ID }, { token: i1.ClrCommonStringsService }], target: i0.ɵɵFactoryTarget.Component }); }
500
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.3", type: ClrTabs, isStandalone: false, selector: "clr-tabs", inputs: { layout: ["clrLayout", "layout"] }, host: { properties: { "class.tabs-vertical": "this.isVertical" } }, providers: [IfActiveService, TabsService, TABS_ID_PROVIDER], queries: [{ propertyName: "tabsActions", predicate: ClrTabAction, descendants: true, read: ElementRef }, { propertyName: "tabs", predicate: ClrTab }], viewQueries: [{ propertyName: "keyFocus", first: true, predicate: ClrKeyFocus, descendants: true, static: true }, { propertyName: "tabOverflowEl", first: true, predicate: ClrTabOverflowContent, descendants: true, read: ElementRef }, { propertyName: "tabContentViewContainer", first: true, predicate: ["tabContentViewContainer"], descendants: true, read: ViewContainerRef, static: true }], hostDirectives: [{ directive: i2.ClrPopoverHostDirective }], ngImport: i0, template: `
499
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: ClrTabs, deps: [{ token: i1.IfActiveService }, { token: i2.ClrPopoverService }, { token: TabsService }, { token: TABS_ID }, { token: i1.ClrCommonStringsService }], target: i0.ɵɵFactoryTarget.Component }); }
500
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.25", type: ClrTabs, isStandalone: false, selector: "clr-tabs", inputs: { layout: ["clrLayout", "layout"] }, host: { properties: { "class.tabs-vertical": "this.isVertical" } }, providers: [IfActiveService, TabsService, TABS_ID_PROVIDER], queries: [{ propertyName: "tabsActions", predicate: ClrTabAction, descendants: true, read: ElementRef }, { propertyName: "tabs", predicate: ClrTab }], viewQueries: [{ propertyName: "keyFocus", first: true, predicate: ClrKeyFocus, descendants: true, static: true }, { propertyName: "tabOverflowEl", first: true, predicate: ClrTabOverflowContent, descendants: true, read: ElementRef }, { propertyName: "tabContentViewContainer", first: true, predicate: ["tabContentViewContainer"], descendants: true, read: ViewContainerRef, static: true }], hostDirectives: [{ directive: i2.ClrPopoverHostDirective }], ngImport: i0, template: `
501
501
  <ul
502
502
  class="nav"
503
503
  role="tablist"
@@ -556,9 +556,9 @@ class ClrTabs {
556
556
  <ng-content select="clr-tabs-actions"></ng-content>
557
557
  </ul>
558
558
  <ng-container #tabContentViewContainer></ng-container>
559
- `, isInline: true, dependencies: [{ kind: "directive", type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i5.ClrIcon, selector: "clr-icon, cds-icon", inputs: ["shape", "size", "direction", "flip", "solid", "status", "inverse", "badge"] }, { kind: "component", type: i1.ClrKeyFocus, selector: "[clrKeyFocus]", inputs: ["clrDirection", "clrFocusOnLoad", "clrKeyFocus"], outputs: ["clrFocusChange"] }, { kind: "component", type: ClrTabOverflowContent, selector: "clr-tab-overflow-content" }] }); }
559
+ `, isInline: true, dependencies: [{ kind: "directive", type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i5.ClrIcon, selector: "clr-icon, cds-icon", inputs: ["shape", "size", "direction", "flip", "solid", "status", "inverse", "badge", "innerOffset"] }, { kind: "component", type: i1.ClrKeyFocus, selector: "[clrKeyFocus]", inputs: ["clrDirection", "clrFocusOnLoad", "clrKeyFocus"], outputs: ["clrFocusChange"] }, { kind: "component", type: ClrTabOverflowContent, selector: "clr-tab-overflow-content" }] }); }
560
560
  }
561
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: ClrTabs, decorators: [{
561
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: ClrTabs, decorators: [{
562
562
  type: Component,
563
563
  args: [{
564
564
  selector: 'clr-tabs',
@@ -662,14 +662,14 @@ class ClrTabsActions {
662
662
  constructor() {
663
663
  this.position = 'right';
664
664
  }
665
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: ClrTabsActions, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
666
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.1.3", type: ClrTabsActions, isStandalone: false, selector: "clr-tabs-actions", inputs: { position: "position" }, host: { properties: { "class.tabs-actions": "true", "attr.position": "this.position" } }, ngImport: i0, template: `
665
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: ClrTabsActions, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
666
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.25", type: ClrTabsActions, isStandalone: false, selector: "clr-tabs-actions", inputs: { position: "position" }, host: { properties: { "class.tabs-actions": "true", "attr.position": "this.position" } }, ngImport: i0, template: `
667
667
  <div class="tabs-actions-wrapper">
668
668
  <ng-content></ng-content>
669
669
  </div>
670
670
  `, isInline: true }); }
671
671
  }
672
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: ClrTabsActions, decorators: [{
672
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: ClrTabsActions, decorators: [{
673
673
  type: Component,
674
674
  args: [{
675
675
  selector: 'clr-tabs-actions',
@@ -697,10 +697,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", ngImpor
697
697
  * The full license information can be found in LICENSE in the root directory of this project.
698
698
  */
699
699
  class TabsWillyWonka extends WillyWonka {
700
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: TabsWillyWonka, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
701
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.1.3", type: TabsWillyWonka, isStandalone: false, selector: "clr-tabs", usesInheritance: true, ngImport: i0 }); }
700
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: TabsWillyWonka, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
701
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.25", type: TabsWillyWonka, isStandalone: false, selector: "clr-tabs", usesInheritance: true, ngImport: i0 }); }
702
702
  }
703
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: TabsWillyWonka, decorators: [{
703
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: TabsWillyWonka, decorators: [{
704
704
  type: Directive,
705
705
  args: [{
706
706
  selector: 'clr-tabs',
@@ -726,10 +726,10 @@ class ActiveOompaLoompa extends OompaLoompa {
726
726
  get flavor() {
727
727
  return this.ifActive.current === this.id;
728
728
  }
729
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: ActiveOompaLoompa, deps: [{ token: i0.ChangeDetectorRef }, { token: TabsWillyWonka, optional: true }, { token: IF_ACTIVE_ID }, { token: i1.IfActiveService }], target: i0.ɵɵFactoryTarget.Directive }); }
730
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.1.3", type: ActiveOompaLoompa, isStandalone: false, selector: "[clrTabLink], clr-tab-content", usesInheritance: true, ngImport: i0 }); }
729
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: ActiveOompaLoompa, deps: [{ token: i0.ChangeDetectorRef }, { token: TabsWillyWonka, optional: true }, { token: IF_ACTIVE_ID }, { token: i1.IfActiveService }], target: i0.ɵɵFactoryTarget.Directive }); }
730
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.25", type: ActiveOompaLoompa, isStandalone: false, selector: "[clrTabLink], clr-tab-content", usesInheritance: true, ngImport: i0 }); }
731
731
  }
732
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: ActiveOompaLoompa, decorators: [{
732
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: ActiveOompaLoompa, decorators: [{
733
733
  type: Directive,
734
734
  args: [{
735
735
  selector: '[clrTabLink], clr-tab-content',
@@ -763,8 +763,8 @@ class ClrTabsModule {
763
763
  constructor() {
764
764
  ClarityIcons.addIcons(ellipsisHorizontalIcon);
765
765
  }
766
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: ClrTabsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
767
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.1.3", ngImport: i0, type: ClrTabsModule, declarations: [ClrTabContent,
766
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: ClrTabsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
767
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.2.25", ngImport: i0, type: ClrTabsModule, declarations: [ClrTabContent,
768
768
  ClrTab,
769
769
  ClrTabs,
770
770
  ClrTabOverflowContent,
@@ -781,9 +781,9 @@ class ClrTabsModule {
781
781
  ClrTabsActions,
782
782
  TabsWillyWonka,
783
783
  ActiveOompaLoompa, ClrConditionalModule] }); }
784
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: ClrTabsModule, imports: [CommonModule, ClrConditionalModule, ClrIcon, ClrTemplateRefModule, ClrKeyFocusModule, ClrConditionalModule] }); }
784
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: ClrTabsModule, imports: [CommonModule, ClrConditionalModule, ClrIcon, ClrTemplateRefModule, ClrKeyFocusModule, ClrConditionalModule] }); }
785
785
  }
786
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: ClrTabsModule, decorators: [{
786
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: ClrTabsModule, decorators: [{
787
787
  type: NgModule,
788
788
  args: [{
789
789
  imports: [CommonModule, ClrConditionalModule, ClrIcon, ClrTemplateRefModule, ClrKeyFocusModule],
@@ -1 +1 @@
1
- {"version":3,"file":"clr-angular-layout-tabs.mjs","sources":["../../../projects/angular/layout/tabs/enums/tabs-layout.enum.ts","../../../projects/angular/layout/tabs/providers/tabs.service.ts","../../../projects/angular/layout/tabs/tab-content.ts","../../../projects/angular/layout/tabs/tabs-id.provider.ts","../../../projects/angular/layout/tabs/tab-link.directive.ts","../../../projects/angular/layout/tabs/tab.ts","../../../projects/angular/layout/tabs/tab-action.directive.ts","../../../projects/angular/layout/tabs/tab-overflow-content.ts","../../../projects/angular/layout/tabs/tabs.ts","../../../projects/angular/layout/tabs/tabs-actions.ts","../../../projects/angular/layout/tabs/chocolate/tabs-willy-wonka.ts","../../../projects/angular/layout/tabs/chocolate/active-oompa-loompa.ts","../../../projects/angular/layout/tabs/tabs.module.ts","../../../projects/angular/layout/tabs/index.ts","../../../projects/angular/layout/tabs/clr-angular-layout-tabs.ts"],"sourcesContent":["/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\nexport enum TabsLayout {\n HORIZONTAL = 'horizontal',\n VERTICAL = 'vertical',\n}\n","/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\nimport { Injectable, ViewContainerRef } from '@angular/core';\n\nimport { TabsLayout } from '../enums/tabs-layout.enum';\nimport { ClrTab } from '../tab';\n\n@Injectable()\nexport class TabsService {\n layout: TabsLayout | string = TabsLayout.HORIZONTAL;\n tabContentViewContainer: ViewContainerRef;\n\n private _children: ClrTab[] = [];\n\n get children() {\n return this._children;\n }\n\n get activeTab() {\n return this.children.find((tab: ClrTab) => {\n return tab.active;\n });\n }\n\n get overflowTabs() {\n if (this.layout === TabsLayout.VERTICAL) {\n return [];\n } else {\n return this.children.filter((tab: ClrTab) => tab.tabLink.inOverflow === true);\n }\n }\n\n register(tab: ClrTab) {\n this._children.push(tab);\n }\n\n unregister(tab: ClrTab) {\n const index = this.children.indexOf(tab);\n if (index > -1) {\n this.children.splice(index, 1);\n }\n }\n}\n","/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\nimport { Component, EmbeddedViewRef, Inject, Input, OnDestroy, TemplateRef, ViewChild } from '@angular/core';\nimport { IF_ACTIVE_ID, IfActiveService } from '@clr/angular/utils';\n\nimport { TabsService } from './providers/tabs.service';\n\nlet nbTabContentComponents = 0;\n\n@Component({\n selector: 'clr-tab-content',\n template: `\n <ng-template #tabContentProjectedRef>\n <section\n [id]=\"tabContentId\"\n role=\"tabpanel\"\n class=\"tab-content\"\n [class.active]=\"active\"\n [hidden]=\"!active\"\n [attr.aria-labelledby]=\"ariaLabelledBy\"\n [attr.aria-hidden]=\"!active\"\n >\n <ng-content></ng-content>\n </section>\n </ng-template>\n `,\n standalone: false,\n})\nexport class ClrTabContent implements OnDestroy {\n @Input('id') tabContentId: string;\n\n private viewRef: EmbeddedViewRef<ClrTabContent>;\n\n constructor(\n public ifActiveService: IfActiveService,\n @Inject(IF_ACTIVE_ID) public id: number,\n private tabsService: TabsService\n ) {\n if (!this.tabContentId) {\n this.tabContentId = 'clr-tab-content-' + nbTabContentComponents++;\n }\n }\n\n get active() {\n return this.ifActiveService.current === this.id;\n }\n\n get ariaLabelledBy(): string {\n return this.tabsService.children.find(tab => tab.tabLink.id === this.id)?.tabLink?.tabLinkId;\n }\n\n // The template must be applied on the top-down phase of view-child initialization to prevent\n // components in the content from initializing before a content container exists.\n // Some child components need their container for sizing calculations.\n @ViewChild('tabContentProjectedRef', { static: true })\n private set templateRef(value: TemplateRef<ClrTabContent>) {\n this.viewRef = this.tabsService.tabContentViewContainer.createEmbeddedView(value);\n }\n\n ngOnDestroy(): void {\n const index = this.tabsService.tabContentViewContainer.indexOf(this.viewRef);\n if (index > -1) {\n this.tabsService.tabContentViewContainer.remove(index);\n }\n }\n}\n","/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\nimport { InjectionToken } from '@angular/core';\n\nlet nbTabsComponent = 0;\n\nexport const TABS_ID = new InjectionToken<number>('TABS_ID');\n\nexport function tokenFactory() {\n return 'clr-tabs-' + nbTabsComponent++;\n}\n\nexport const TABS_ID_PROVIDER = {\n provide: TABS_ID,\n useFactory: tokenFactory,\n};\n","/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\nimport { Directive, ElementRef, HostBinding, HostListener, Inject, Input, ViewContainerRef } from '@angular/core';\nimport { IF_ACTIVE_ID, IfActiveService, TemplateRefContainer } from '@clr/angular/utils';\n\nimport { TabsLayout } from './enums/tabs-layout.enum';\nimport { TabsService } from './providers/tabs.service';\nimport { TABS_ID } from './tabs-id.provider';\n\nlet nbTabLinkComponents = 0;\n\n@Directive({\n selector: '[clrTabLink]',\n host: {\n '[class.btn]': 'true',\n role: 'tab',\n type: 'button',\n },\n standalone: false,\n})\nexport class ClrTabLink {\n @Input('id') @HostBinding('id') tabLinkId: string;\n\n templateRefContainer: TemplateRefContainer;\n\n private _inOverflow: boolean;\n\n constructor(\n public ifActiveService: IfActiveService,\n @Inject(IF_ACTIVE_ID) readonly id: number,\n public el: ElementRef<HTMLElement>,\n viewContainerRef: ViewContainerRef,\n private tabsService: TabsService,\n @Inject(TABS_ID) public tabsId: number\n ) {\n if (!this.tabLinkId) {\n this.tabLinkId = 'clr-tab-link-' + nbTabLinkComponents++;\n }\n\n // Tab links can be rendered in one of two places: in the main area or inside the overflow dropdown menu.\n // Here, we create a container so that its template can be used to create embeddedView on the fly.\n // See TabsService's renderView() method and how it's used in Tabs class for an example.\n this.templateRefContainer = viewContainerRef.createComponent(TemplateRefContainer, {\n projectableNodes: [[el.nativeElement]],\n }).instance;\n }\n\n @Input('clrTabLinkInOverflow')\n get inOverflow(): boolean {\n return this._inOverflow && this.tabsService.layout !== TabsLayout.VERTICAL;\n }\n set inOverflow(inOverflow) {\n this._inOverflow = inOverflow;\n }\n\n @HostBinding('class.btn-link')\n @HostBinding('class.nav-link')\n get addLinkClasses() {\n return !this.inOverflow;\n }\n\n @HostBinding('attr.aria-controls')\n get ariaControls(): string {\n return this.tabsService.children.find(tab => tab.tabLink === this)?.tabContent?.tabContentId;\n }\n\n @HostBinding('class.active')\n @HostBinding('attr.aria-selected')\n get active() {\n return this.ifActiveService.current === this.id;\n }\n\n @HostBinding('attr.tabindex')\n get tabindex(): 0 | -1 {\n return this.active ? 0 : -1;\n }\n\n @HostListener('click')\n activate() {\n this.ifActiveService.current = this.id;\n }\n}\n","/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\nimport { Component, ContentChild, Inject } from '@angular/core';\nimport { IF_ACTIVE_ID, IF_ACTIVE_ID_PROVIDER, IfActiveService } from '@clr/angular/utils';\n\nimport { TabsService } from './providers/tabs.service';\nimport { ClrTabContent } from './tab-content';\nimport { ClrTabLink } from './tab-link.directive';\n\n@Component({\n selector: 'clr-tab',\n template: `<ng-content></ng-content>`,\n providers: [IF_ACTIVE_ID_PROVIDER],\n standalone: false,\n})\nexport class ClrTab {\n @ContentChild(ClrTabLink, { static: true }) tabLink: ClrTabLink;\n @ContentChild(ClrTabContent, { static: true }) tabContent: ClrTabContent;\n\n constructor(\n public ifActiveService: IfActiveService,\n @Inject(IF_ACTIVE_ID) public id: number,\n private tabsService: TabsService\n ) {\n tabsService.register(this);\n }\n\n get active() {\n return this.ifActiveService.current === this.id;\n }\n\n ngOnDestroy() {\n this.tabsService.unregister(this);\n }\n}\n","/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\nimport { Directive } from '@angular/core';\n\n@Directive({\n selector: '[clrTabAction]',\n host: {\n tabindex: '0',\n },\n standalone: false,\n})\nexport class ClrTabAction {}\n","/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\nimport { Component } from '@angular/core';\n\n@Component({\n selector: 'clr-tab-overflow-content',\n template: `<ng-content></ng-content>`,\n host: {\n '[class.dropdown-menu]': 'true',\n },\n standalone: false,\n})\nexport class ClrTabOverflowContent {}\n","/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\nimport {\n AfterContentInit,\n Component,\n ContentChildren,\n ElementRef,\n HostBinding,\n Inject,\n Input,\n OnDestroy,\n QueryList,\n ViewChild,\n ViewContainerRef,\n} from '@angular/core';\nimport { ClrPopoverHostDirective, ClrPopoverService } from '@clr/angular/popover/common';\nimport { ClrCommonStringsService, ClrKeyFocus, IfActiveService } from '@clr/angular/utils';\nimport { Subscription } from 'rxjs';\nimport { startWith } from 'rxjs/operators';\n\nimport { TabsLayout } from './enums/tabs-layout.enum';\nimport { TabsService } from './providers/tabs.service';\nimport { ClrTab } from './tab';\nimport { ClrTabAction } from './tab-action.directive';\nimport { ClrTabLink } from './tab-link.directive';\nimport { ClrTabOverflowContent } from './tab-overflow-content';\nimport { TABS_ID, TABS_ID_PROVIDER } from './tabs-id.provider';\n@Component({\n selector: 'clr-tabs',\n template: `\n <ul\n class=\"nav\"\n role=\"tablist\"\n [clrKeyFocus]=\"tabLinkElements\"\n clrDirection=\"both\"\n (clrFocusChange)=\"toggleOverflowOnPosition($event)\"\n (focusout)=\"resetKeyFocusCurrentToActive($event)\"\n >\n <!--tab links-->\n @for (link of tabLinkDirectives; track link) {\n @if (link.tabsId === tabsId && !link.inOverflow) {\n <li role=\"presentation\" class=\"nav-item\">\n <ng-container [ngTemplateOutlet]=\"link.templateRefContainer.template\"></ng-container>\n </li>\n }\n }\n @if (tabsService.overflowTabs.length > 0) {\n <div class=\"tabs-overflow bottom-right\" role=\"presentation\" [class.open]=\"popoverService.open\">\n <li role=\"application\" class=\"nav-item\">\n <button\n #tabOverflowTrigger\n class=\"btn btn-link nav-link dropdown-toggle\"\n type=\"button\"\n aria-hidden=\"true\"\n [attr.tabindex]=\"activeTabInOverflow && !popoverService.open ? 0 : -1\"\n [class.active]=\"activeTabInOverflow\"\n [class.open]=\"popoverService.open\"\n (mousedown)=\"_mousedown = true\"\n (focus)=\"openOverflowOnFocus()\"\n (click)=\"toggleOverflowOnClick()\"\n [attr.title]=\"commonStrings.keys.more\"\n >\n <cds-icon\n shape=\"ellipsis-horizontal\"\n [status]=\"popoverService.open ? 'info' : null\"\n [attr.title]=\"commonStrings.keys.more\"\n ></cds-icon>\n </button>\n </li>\n <!--tab links in overflow menu-->\n @if (popoverService.open) {\n <clr-tab-overflow-content\n (document:keydown.escape)=\"closeOnEscapeKey()\"\n (document:click)=\"closeOnOutsideClick($event, tabOverflowTrigger)\"\n (focusout)=\"closeOnFocusOut($event)\"\n >\n @for (link of tabLinkDirectives; track link) {\n @if (link.tabsId === tabsId && link.inOverflow) {\n <ng-container [ngTemplateOutlet]=\"link.templateRefContainer.template\"></ng-container>\n }\n }\n </clr-tab-overflow-content>\n }\n </div>\n }\n <ng-content select=\"clr-tabs-actions\"></ng-content>\n </ul>\n <ng-container #tabContentViewContainer></ng-container>\n `,\n providers: [IfActiveService, TabsService, TABS_ID_PROVIDER],\n hostDirectives: [ClrPopoverHostDirective],\n standalone: false,\n})\nexport class ClrTabs implements AfterContentInit, OnDestroy {\n tabLinkElements: HTMLElement[] = [];\n\n // in order to check focus is triggered by click\n // we are using this _mousedown flag\n _mousedown = false;\n\n @ViewChild(ClrKeyFocus, { static: true }) keyFocus: ClrKeyFocus;\n\n @ContentChildren(ClrTabAction, { read: ElementRef, descendants: true }) tabsActions: QueryList<ElementRef>;\n @ContentChildren(ClrTab) private tabs: QueryList<ClrTab>;\n\n private subscriptions: Subscription[] = [];\n private _tabOverflowEl: HTMLElement;\n private _tabLinkDirectives: ClrTabLink[] = [];\n\n constructor(\n public ifActiveService: IfActiveService,\n public popoverService: ClrPopoverService,\n public tabsService: TabsService,\n @Inject(TABS_ID) public tabsId: number,\n public commonStrings: ClrCommonStringsService\n ) {}\n\n @Input('clrLayout')\n get layout(): TabsLayout | string {\n return this.tabsService.layout;\n }\n set layout(layout: TabsLayout | string) {\n if (\n Object.keys(TabsLayout)\n .map(key => {\n return (TabsLayout as Record<string, any>)[key];\n })\n .indexOf(layout) >= 0\n ) {\n this.tabsService.layout = layout;\n }\n }\n\n get tabLinkDirectives(): ClrTabLink[] {\n return this._tabLinkDirectives;\n }\n\n get activeTabInOverflow() {\n return this.tabsService.overflowTabs.indexOf(this.tabsService.activeTab) > -1;\n }\n\n get activeTabPosition() {\n return this._tabLinkDirectives.findIndex(link => link.active);\n }\n\n get isCurrentInOverflow() {\n return this.keyFocus.current >= this.overflowPosition;\n }\n\n @HostBinding('class.tabs-vertical')\n get isVertical() {\n return this.layout === TabsLayout.VERTICAL;\n }\n\n @ViewChild(ClrTabOverflowContent, { read: ElementRef })\n set tabOverflowEl(value: ElementRef<HTMLElement>) {\n this._tabOverflowEl = value && value.nativeElement;\n if (this.popoverService.open && value) {\n // only when tab overflow view element is registered,\n // we need to move the focus to the first item\n this.keyFocus.focusCurrent();\n }\n }\n\n private get overflowPosition() {\n return this._tabLinkDirectives.filter(link => !link.inOverflow).length;\n }\n\n @ViewChild('tabContentViewContainer', { static: true, read: ViewContainerRef })\n private set tabContentViewContainer(value: ViewContainerRef) {\n this.tabsService.tabContentViewContainer = value;\n }\n\n ngAfterContentInit() {\n this.subscriptions.push(this.listenForTabLinkChanges());\n this.subscriptions.push(this.listedForTabsActionsChanges());\n\n if (typeof this.ifActiveService.current === 'undefined' && this.tabLinkDirectives[0]) {\n this.tabLinkDirectives[0].activate();\n }\n\n // set initial current position\n this.keyFocus.current = this.activeTabPosition;\n }\n\n ngOnDestroy() {\n this.subscriptions.forEach(sub => {\n sub.unsubscribe();\n });\n }\n\n toggleOverflowOnPosition(position: number) {\n // we need to check current position to determine\n // whether we need to open the tab overflow or not\n this.popoverService.open = position >= this.overflowPosition;\n }\n\n resetKeyFocusCurrentToActive(event: FocusEvent) {\n const keyFocusContainsFocus = this.keyFocus.nativeElement.contains(event.relatedTarget as HTMLElement);\n if (!keyFocusContainsFocus && this.keyFocus.current !== this.activeTabPosition) {\n this.keyFocus.current = this.activeTabPosition;\n }\n }\n\n toggleOverflowOnClick() {\n if (this.isCurrentInOverflow && this.popoverService.open) {\n this.keyFocus.moveTo(this.overflowPosition - 1);\n } else {\n this.keyFocus.moveTo(this.overflowPosition);\n }\n\n // once click handler completes running,\n // reset the _mousedown flag\n this._mousedown = false;\n }\n\n openOverflowOnFocus() {\n // This method should be called only on keyboard generated focus\n // when the active tab is in the overflow\n if (!this._mousedown && !this.popoverService.open) {\n this.keyFocus.moveTo(this.activeTabPosition);\n }\n }\n\n closeOnFocusOut(event: FocusEvent) {\n if (\n !this._tabOverflowEl.contains(event.relatedTarget as HTMLElement) &&\n this.popoverService.open &&\n !this._mousedown\n ) {\n this.popoverService.open = false;\n\n // if the focus is out of overflow and lands on the active tab link\n // which is currently visible, set the key focus current to activeTabPosition\n if (this.tabLinkElements[this.activeTabPosition] === event.relatedTarget) {\n this.keyFocus.current = this.activeTabPosition;\n }\n }\n }\n\n closeOnEscapeKey() {\n // Move current to the last visible focusable item\n this.keyFocus.moveTo(this.overflowPosition - 1);\n }\n\n closeOnOutsideClick(event: Event, tabOverflowTrigger: HTMLElement) {\n // Exit early if the event target is the trigger element itself or element that's inside the trigger element.\n // This is because we have another handler on the tabOverflowTrigger element itself.\n // As this handler method is on the document level so the event bubbles up to it and conflicts\n // with the tabOverflowTrigger handler resulting in opening the tab overflow and closing it right away consecutively.\n const isTabsAction = this.tabsActions.some(action =>\n (action.nativeElement as HTMLElement).contains(event.target as HTMLElement)\n );\n if (\n event.target === tabOverflowTrigger ||\n tabOverflowTrigger.contains(event.target as HTMLElement) ||\n isTabsAction\n ) {\n return;\n }\n\n // Move current to the last visible focusable item\n if (!this._tabOverflowEl.contains(event.target as HTMLElement) && this.isCurrentInOverflow) {\n this.keyFocus.moveTo(this.overflowPosition - 1);\n }\n }\n\n private setTabLinkElements() {\n this._tabLinkDirectives = this.tabs.map(tab => tab.tabLink);\n this.tabLinkElements = this._tabLinkDirectives.map(tab => tab.el.nativeElement);\n if (this.tabsActions && this.tabsActions) {\n this.tabLinkElements.push(...this.tabsActions.map(action => action.nativeElement));\n }\n }\n\n private listenForTabLinkChanges() {\n return this.tabs.changes\n .pipe(startWith(this.tabs.map(tab => tab.tabLink)))\n .subscribe(() => this.setTabLinkElements());\n }\n\n private listedForTabsActionsChanges() {\n return this.tabsActions.changes.subscribe(() => this.setTabLinkElements());\n }\n}\n","/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\nimport { Component, HostBinding, Input } from '@angular/core';\n\nexport type ClrTabsActionsPosition = 'left' | 'right';\n\n@Component({\n selector: 'clr-tabs-actions',\n template: `\n <div class=\"tabs-actions-wrapper\">\n <ng-content></ng-content>\n </div>\n `,\n host: {\n '[class.tabs-actions]': 'true',\n },\n standalone: false,\n})\nexport class ClrTabsActions {\n @Input()\n @HostBinding('attr.position')\n position: ClrTabsActionsPosition = 'right';\n}\n","/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\nimport { Directive } from '@angular/core';\nimport { WillyWonka } from '@clr/angular/utils';\n\n@Directive({\n selector: 'clr-tabs',\n standalone: false,\n})\nexport class TabsWillyWonka extends WillyWonka {}\n","/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\nimport { ChangeDetectorRef, Directive, Inject, Optional } from '@angular/core';\nimport { IF_ACTIVE_ID, IfActiveService, OompaLoompa } from '@clr/angular/utils';\n\nimport { TabsWillyWonka } from './tabs-willy-wonka';\n\n@Directive({\n selector: '[clrTabLink], clr-tab-content',\n standalone: false,\n})\nexport class ActiveOompaLoompa extends OompaLoompa {\n private ifActive: IfActiveService;\n private id: number;\n\n constructor(\n cdr: ChangeDetectorRef,\n @Optional() willyWonka: TabsWillyWonka,\n @Inject(IF_ACTIVE_ID) id: number,\n ifActive: IfActiveService\n ) {\n if (!willyWonka) {\n throw new Error('clrTabLink and clr-tab-content should only be used inside of a clr-tabs');\n }\n super(cdr, willyWonka);\n this.ifActive = ifActive;\n this.id = id;\n }\n\n get flavor() {\n return this.ifActive.current === this.id;\n }\n}\n","/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\nimport { CommonModule } from '@angular/common';\nimport { NgModule, Type } from '@angular/core';\nimport { ClarityIcons, ClrIcon, ellipsisHorizontalIcon } from '@clr/angular/icon';\nimport { ClrConditionalModule, ClrKeyFocusModule, ClrTemplateRefModule } from '@clr/angular/utils';\n\nimport { ActiveOompaLoompa } from './chocolate/active-oompa-loompa';\nimport { TabsWillyWonka } from './chocolate/tabs-willy-wonka';\nimport { ClrTab } from './tab';\nimport { ClrTabAction } from './tab-action.directive';\nimport { ClrTabContent } from './tab-content';\nimport { ClrTabLink } from './tab-link.directive';\nimport { ClrTabOverflowContent } from './tab-overflow-content';\nimport { ClrTabs } from './tabs';\nimport { ClrTabsActions } from './tabs-actions';\n\nexport const CLR_TABS_DIRECTIVES: Type<any>[] = [\n ClrTabContent,\n ClrTab,\n ClrTabs,\n ClrTabOverflowContent,\n ClrTabLink,\n ClrTabAction,\n ClrTabsActions,\n TabsWillyWonka,\n ActiveOompaLoompa,\n];\n\n@NgModule({\n imports: [CommonModule, ClrConditionalModule, ClrIcon, ClrTemplateRefModule, ClrKeyFocusModule],\n declarations: [CLR_TABS_DIRECTIVES],\n exports: [CLR_TABS_DIRECTIVES, ClrConditionalModule],\n})\nexport class ClrTabsModule {\n constructor() {\n ClarityIcons.addIcons(ellipsisHorizontalIcon);\n }\n}\n","/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\nexport * from './tabs';\nexport * from './tabs-actions';\nexport * from './tab';\nexport * from './tab-content';\nexport * from './tab-overflow-content';\nexport * from './tab-link.directive';\nexport * from './tab-action.directive';\nexport * from './tabs.module';\nexport * from './tabs-actions';\nexport * from './chocolate/tabs-willy-wonka';\nexport * from './chocolate/active-oompa-loompa';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i2.TabsService","i6.ClrTabOverflowContent","i2"],"mappings":"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"}
1
+ {"version":3,"file":"clr-angular-layout-tabs.mjs","sources":["../../../projects/angular/layout/tabs/enums/tabs-layout.enum.ts","../../../projects/angular/layout/tabs/providers/tabs.service.ts","../../../projects/angular/layout/tabs/tab-content.ts","../../../projects/angular/layout/tabs/tabs-id.provider.ts","../../../projects/angular/layout/tabs/tab-link.directive.ts","../../../projects/angular/layout/tabs/tab.ts","../../../projects/angular/layout/tabs/tab-action.directive.ts","../../../projects/angular/layout/tabs/tab-overflow-content.ts","../../../projects/angular/layout/tabs/tabs.ts","../../../projects/angular/layout/tabs/tabs-actions.ts","../../../projects/angular/layout/tabs/chocolate/tabs-willy-wonka.ts","../../../projects/angular/layout/tabs/chocolate/active-oompa-loompa.ts","../../../projects/angular/layout/tabs/tabs.module.ts","../../../projects/angular/layout/tabs/index.ts","../../../projects/angular/layout/tabs/clr-angular-layout-tabs.ts"],"sourcesContent":["/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\nexport enum TabsLayout {\n HORIZONTAL = 'horizontal',\n VERTICAL = 'vertical',\n}\n","/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\nimport { Injectable, ViewContainerRef } from '@angular/core';\n\nimport { TabsLayout } from '../enums/tabs-layout.enum';\nimport { ClrTab } from '../tab';\n\n@Injectable()\nexport class TabsService {\n layout: TabsLayout | string = TabsLayout.HORIZONTAL;\n tabContentViewContainer: ViewContainerRef;\n\n private _children: ClrTab[] = [];\n\n get children() {\n return this._children;\n }\n\n get activeTab() {\n return this.children.find((tab: ClrTab) => {\n return tab.active;\n });\n }\n\n get overflowTabs() {\n if (this.layout === TabsLayout.VERTICAL) {\n return [];\n } else {\n return this.children.filter((tab: ClrTab) => tab.tabLink.inOverflow === true);\n }\n }\n\n register(tab: ClrTab) {\n this._children.push(tab);\n }\n\n unregister(tab: ClrTab) {\n const index = this.children.indexOf(tab);\n if (index > -1) {\n this.children.splice(index, 1);\n }\n }\n}\n","/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\nimport { Component, EmbeddedViewRef, Inject, Input, OnDestroy, TemplateRef, ViewChild } from '@angular/core';\nimport { IF_ACTIVE_ID, IfActiveService } from '@clr/angular/utils';\n\nimport { TabsService } from './providers/tabs.service';\n\nlet nbTabContentComponents = 0;\n\n@Component({\n selector: 'clr-tab-content',\n template: `\n <ng-template #tabContentProjectedRef>\n <section\n [id]=\"tabContentId\"\n role=\"tabpanel\"\n class=\"tab-content\"\n [class.active]=\"active\"\n [hidden]=\"!active\"\n [attr.aria-labelledby]=\"ariaLabelledBy\"\n [attr.aria-hidden]=\"!active\"\n >\n <ng-content></ng-content>\n </section>\n </ng-template>\n `,\n standalone: false,\n})\nexport class ClrTabContent implements OnDestroy {\n @Input('id') tabContentId: string;\n\n private viewRef: EmbeddedViewRef<ClrTabContent>;\n\n constructor(\n public ifActiveService: IfActiveService,\n @Inject(IF_ACTIVE_ID) public id: number,\n private tabsService: TabsService\n ) {\n if (!this.tabContentId) {\n this.tabContentId = 'clr-tab-content-' + nbTabContentComponents++;\n }\n }\n\n get active() {\n return this.ifActiveService.current === this.id;\n }\n\n get ariaLabelledBy(): string {\n return this.tabsService.children.find(tab => tab.tabLink.id === this.id)?.tabLink?.tabLinkId;\n }\n\n // The template must be applied on the top-down phase of view-child initialization to prevent\n // components in the content from initializing before a content container exists.\n // Some child components need their container for sizing calculations.\n @ViewChild('tabContentProjectedRef', { static: true })\n private set templateRef(value: TemplateRef<ClrTabContent>) {\n this.viewRef = this.tabsService.tabContentViewContainer.createEmbeddedView(value);\n }\n\n ngOnDestroy(): void {\n const index = this.tabsService.tabContentViewContainer.indexOf(this.viewRef);\n if (index > -1) {\n this.tabsService.tabContentViewContainer.remove(index);\n }\n }\n}\n","/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\nimport { InjectionToken } from '@angular/core';\n\nlet nbTabsComponent = 0;\n\nexport const TABS_ID = new InjectionToken<number>('TABS_ID');\n\nexport function tokenFactory() {\n return 'clr-tabs-' + nbTabsComponent++;\n}\n\nexport const TABS_ID_PROVIDER = {\n provide: TABS_ID,\n useFactory: tokenFactory,\n};\n","/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\nimport { Directive, ElementRef, HostBinding, HostListener, Inject, Input, ViewContainerRef } from '@angular/core';\nimport { IF_ACTIVE_ID, IfActiveService, TemplateRefContainer } from '@clr/angular/utils';\n\nimport { TabsLayout } from './enums/tabs-layout.enum';\nimport { TabsService } from './providers/tabs.service';\nimport { TABS_ID } from './tabs-id.provider';\n\nlet nbTabLinkComponents = 0;\n\n@Directive({\n selector: '[clrTabLink]',\n host: {\n '[class.btn]': 'true',\n role: 'tab',\n type: 'button',\n },\n standalone: false,\n})\nexport class ClrTabLink {\n @Input('id') @HostBinding('id') tabLinkId: string;\n\n templateRefContainer: TemplateRefContainer;\n\n private _inOverflow: boolean;\n\n constructor(\n public ifActiveService: IfActiveService,\n @Inject(IF_ACTIVE_ID) readonly id: number,\n public el: ElementRef<HTMLElement>,\n viewContainerRef: ViewContainerRef,\n private tabsService: TabsService,\n @Inject(TABS_ID) public tabsId: number\n ) {\n if (!this.tabLinkId) {\n this.tabLinkId = 'clr-tab-link-' + nbTabLinkComponents++;\n }\n\n // Tab links can be rendered in one of two places: in the main area or inside the overflow dropdown menu.\n // Here, we create a container so that its template can be used to create embeddedView on the fly.\n // See TabsService's renderView() method and how it's used in Tabs class for an example.\n this.templateRefContainer = viewContainerRef.createComponent(TemplateRefContainer, {\n projectableNodes: [[el.nativeElement]],\n }).instance;\n }\n\n @Input('clrTabLinkInOverflow')\n get inOverflow(): boolean {\n return this._inOverflow && this.tabsService.layout !== TabsLayout.VERTICAL;\n }\n set inOverflow(inOverflow) {\n this._inOverflow = inOverflow;\n }\n\n @HostBinding('class.btn-link')\n @HostBinding('class.nav-link')\n get addLinkClasses() {\n return !this.inOverflow;\n }\n\n @HostBinding('attr.aria-controls')\n get ariaControls(): string {\n return this.tabsService.children.find(tab => tab.tabLink === this)?.tabContent?.tabContentId;\n }\n\n @HostBinding('class.active')\n @HostBinding('attr.aria-selected')\n get active() {\n return this.ifActiveService.current === this.id;\n }\n\n @HostBinding('attr.tabindex')\n get tabindex(): 0 | -1 {\n return this.active ? 0 : -1;\n }\n\n @HostListener('click')\n activate() {\n this.ifActiveService.current = this.id;\n }\n}\n","/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\nimport { Component, ContentChild, Inject } from '@angular/core';\nimport { IF_ACTIVE_ID, IF_ACTIVE_ID_PROVIDER, IfActiveService } from '@clr/angular/utils';\n\nimport { TabsService } from './providers/tabs.service';\nimport { ClrTabContent } from './tab-content';\nimport { ClrTabLink } from './tab-link.directive';\n\n@Component({\n selector: 'clr-tab',\n template: `<ng-content></ng-content>`,\n providers: [IF_ACTIVE_ID_PROVIDER],\n standalone: false,\n})\nexport class ClrTab {\n @ContentChild(ClrTabLink, { static: true }) tabLink: ClrTabLink;\n @ContentChild(ClrTabContent, { static: true }) tabContent: ClrTabContent;\n\n constructor(\n public ifActiveService: IfActiveService,\n @Inject(IF_ACTIVE_ID) public id: number,\n private tabsService: TabsService\n ) {\n tabsService.register(this);\n }\n\n get active() {\n return this.ifActiveService.current === this.id;\n }\n\n ngOnDestroy() {\n this.tabsService.unregister(this);\n }\n}\n","/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\nimport { Directive } from '@angular/core';\n\n@Directive({\n selector: '[clrTabAction]',\n host: {\n tabindex: '0',\n },\n standalone: false,\n})\nexport class ClrTabAction {}\n","/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\nimport { Component } from '@angular/core';\n\n@Component({\n selector: 'clr-tab-overflow-content',\n template: `<ng-content></ng-content>`,\n host: {\n '[class.dropdown-menu]': 'true',\n },\n standalone: false,\n})\nexport class ClrTabOverflowContent {}\n","/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\nimport {\n AfterContentInit,\n Component,\n ContentChildren,\n ElementRef,\n HostBinding,\n Inject,\n Input,\n OnDestroy,\n QueryList,\n ViewChild,\n ViewContainerRef,\n} from '@angular/core';\nimport { ClrPopoverHostDirective, ClrPopoverService } from '@clr/angular/popover/common';\nimport { ClrCommonStringsService, ClrKeyFocus, IfActiveService } from '@clr/angular/utils';\nimport { Subscription } from 'rxjs';\nimport { startWith } from 'rxjs/operators';\n\nimport { TabsLayout } from './enums/tabs-layout.enum';\nimport { TabsService } from './providers/tabs.service';\nimport { ClrTab } from './tab';\nimport { ClrTabAction } from './tab-action.directive';\nimport { ClrTabLink } from './tab-link.directive';\nimport { ClrTabOverflowContent } from './tab-overflow-content';\nimport { TABS_ID, TABS_ID_PROVIDER } from './tabs-id.provider';\n@Component({\n selector: 'clr-tabs',\n template: `\n <ul\n class=\"nav\"\n role=\"tablist\"\n [clrKeyFocus]=\"tabLinkElements\"\n clrDirection=\"both\"\n (clrFocusChange)=\"toggleOverflowOnPosition($event)\"\n (focusout)=\"resetKeyFocusCurrentToActive($event)\"\n >\n <!--tab links-->\n @for (link of tabLinkDirectives; track link) {\n @if (link.tabsId === tabsId && !link.inOverflow) {\n <li role=\"presentation\" class=\"nav-item\">\n <ng-container [ngTemplateOutlet]=\"link.templateRefContainer.template\"></ng-container>\n </li>\n }\n }\n @if (tabsService.overflowTabs.length > 0) {\n <div class=\"tabs-overflow bottom-right\" role=\"presentation\" [class.open]=\"popoverService.open\">\n <li role=\"application\" class=\"nav-item\">\n <button\n #tabOverflowTrigger\n class=\"btn btn-link nav-link dropdown-toggle\"\n type=\"button\"\n aria-hidden=\"true\"\n [attr.tabindex]=\"activeTabInOverflow && !popoverService.open ? 0 : -1\"\n [class.active]=\"activeTabInOverflow\"\n [class.open]=\"popoverService.open\"\n (mousedown)=\"_mousedown = true\"\n (focus)=\"openOverflowOnFocus()\"\n (click)=\"toggleOverflowOnClick()\"\n [attr.title]=\"commonStrings.keys.more\"\n >\n <cds-icon\n shape=\"ellipsis-horizontal\"\n [status]=\"popoverService.open ? 'info' : null\"\n [attr.title]=\"commonStrings.keys.more\"\n ></cds-icon>\n </button>\n </li>\n <!--tab links in overflow menu-->\n @if (popoverService.open) {\n <clr-tab-overflow-content\n (document:keydown.escape)=\"closeOnEscapeKey()\"\n (document:click)=\"closeOnOutsideClick($event, tabOverflowTrigger)\"\n (focusout)=\"closeOnFocusOut($event)\"\n >\n @for (link of tabLinkDirectives; track link) {\n @if (link.tabsId === tabsId && link.inOverflow) {\n <ng-container [ngTemplateOutlet]=\"link.templateRefContainer.template\"></ng-container>\n }\n }\n </clr-tab-overflow-content>\n }\n </div>\n }\n <ng-content select=\"clr-tabs-actions\"></ng-content>\n </ul>\n <ng-container #tabContentViewContainer></ng-container>\n `,\n providers: [IfActiveService, TabsService, TABS_ID_PROVIDER],\n hostDirectives: [ClrPopoverHostDirective],\n standalone: false,\n})\nexport class ClrTabs implements AfterContentInit, OnDestroy {\n tabLinkElements: HTMLElement[] = [];\n\n // in order to check focus is triggered by click\n // we are using this _mousedown flag\n _mousedown = false;\n\n @ViewChild(ClrKeyFocus, { static: true }) keyFocus: ClrKeyFocus;\n\n @ContentChildren(ClrTabAction, { read: ElementRef, descendants: true }) tabsActions: QueryList<ElementRef>;\n @ContentChildren(ClrTab) private tabs: QueryList<ClrTab>;\n\n private subscriptions: Subscription[] = [];\n private _tabOverflowEl: HTMLElement;\n private _tabLinkDirectives: ClrTabLink[] = [];\n\n constructor(\n public ifActiveService: IfActiveService,\n public popoverService: ClrPopoverService,\n public tabsService: TabsService,\n @Inject(TABS_ID) public tabsId: number,\n public commonStrings: ClrCommonStringsService\n ) {}\n\n @Input('clrLayout')\n get layout(): TabsLayout | string {\n return this.tabsService.layout;\n }\n set layout(layout: TabsLayout | string) {\n if (\n Object.keys(TabsLayout)\n .map(key => {\n return (TabsLayout as Record<string, any>)[key];\n })\n .indexOf(layout) >= 0\n ) {\n this.tabsService.layout = layout;\n }\n }\n\n get tabLinkDirectives(): ClrTabLink[] {\n return this._tabLinkDirectives;\n }\n\n get activeTabInOverflow() {\n return this.tabsService.overflowTabs.indexOf(this.tabsService.activeTab) > -1;\n }\n\n get activeTabPosition() {\n return this._tabLinkDirectives.findIndex(link => link.active);\n }\n\n get isCurrentInOverflow() {\n return this.keyFocus.current >= this.overflowPosition;\n }\n\n @HostBinding('class.tabs-vertical')\n get isVertical() {\n return this.layout === TabsLayout.VERTICAL;\n }\n\n @ViewChild(ClrTabOverflowContent, { read: ElementRef })\n set tabOverflowEl(value: ElementRef<HTMLElement>) {\n this._tabOverflowEl = value && value.nativeElement;\n if (this.popoverService.open && value) {\n // only when tab overflow view element is registered,\n // we need to move the focus to the first item\n this.keyFocus.focusCurrent();\n }\n }\n\n private get overflowPosition() {\n return this._tabLinkDirectives.filter(link => !link.inOverflow).length;\n }\n\n @ViewChild('tabContentViewContainer', { static: true, read: ViewContainerRef })\n private set tabContentViewContainer(value: ViewContainerRef) {\n this.tabsService.tabContentViewContainer = value;\n }\n\n ngAfterContentInit() {\n this.subscriptions.push(this.listenForTabLinkChanges());\n this.subscriptions.push(this.listedForTabsActionsChanges());\n\n if (typeof this.ifActiveService.current === 'undefined' && this.tabLinkDirectives[0]) {\n this.tabLinkDirectives[0].activate();\n }\n\n // set initial current position\n this.keyFocus.current = this.activeTabPosition;\n }\n\n ngOnDestroy() {\n this.subscriptions.forEach(sub => {\n sub.unsubscribe();\n });\n }\n\n toggleOverflowOnPosition(position: number) {\n // we need to check current position to determine\n // whether we need to open the tab overflow or not\n this.popoverService.open = position >= this.overflowPosition;\n }\n\n resetKeyFocusCurrentToActive(event: FocusEvent) {\n const keyFocusContainsFocus = this.keyFocus.nativeElement.contains(event.relatedTarget as HTMLElement);\n if (!keyFocusContainsFocus && this.keyFocus.current !== this.activeTabPosition) {\n this.keyFocus.current = this.activeTabPosition;\n }\n }\n\n toggleOverflowOnClick() {\n if (this.isCurrentInOverflow && this.popoverService.open) {\n this.keyFocus.moveTo(this.overflowPosition - 1);\n } else {\n this.keyFocus.moveTo(this.overflowPosition);\n }\n\n // once click handler completes running,\n // reset the _mousedown flag\n this._mousedown = false;\n }\n\n openOverflowOnFocus() {\n // This method should be called only on keyboard generated focus\n // when the active tab is in the overflow\n if (!this._mousedown && !this.popoverService.open) {\n this.keyFocus.moveTo(this.activeTabPosition);\n }\n }\n\n closeOnFocusOut(event: FocusEvent) {\n if (\n !this._tabOverflowEl.contains(event.relatedTarget as HTMLElement) &&\n this.popoverService.open &&\n !this._mousedown\n ) {\n this.popoverService.open = false;\n\n // if the focus is out of overflow and lands on the active tab link\n // which is currently visible, set the key focus current to activeTabPosition\n if (this.tabLinkElements[this.activeTabPosition] === event.relatedTarget) {\n this.keyFocus.current = this.activeTabPosition;\n }\n }\n }\n\n closeOnEscapeKey() {\n // Move current to the last visible focusable item\n this.keyFocus.moveTo(this.overflowPosition - 1);\n }\n\n closeOnOutsideClick(event: Event, tabOverflowTrigger: HTMLElement) {\n // Exit early if the event target is the trigger element itself or element that's inside the trigger element.\n // This is because we have another handler on the tabOverflowTrigger element itself.\n // As this handler method is on the document level so the event bubbles up to it and conflicts\n // with the tabOverflowTrigger handler resulting in opening the tab overflow and closing it right away consecutively.\n const isTabsAction = this.tabsActions.some(action =>\n (action.nativeElement as HTMLElement).contains(event.target as HTMLElement)\n );\n if (\n event.target === tabOverflowTrigger ||\n tabOverflowTrigger.contains(event.target as HTMLElement) ||\n isTabsAction\n ) {\n return;\n }\n\n // Move current to the last visible focusable item\n if (!this._tabOverflowEl.contains(event.target as HTMLElement) && this.isCurrentInOverflow) {\n this.keyFocus.moveTo(this.overflowPosition - 1);\n }\n }\n\n private setTabLinkElements() {\n this._tabLinkDirectives = this.tabs.map(tab => tab.tabLink);\n this.tabLinkElements = this._tabLinkDirectives.map(tab => tab.el.nativeElement);\n if (this.tabsActions && this.tabsActions) {\n this.tabLinkElements.push(...this.tabsActions.map(action => action.nativeElement));\n }\n }\n\n private listenForTabLinkChanges() {\n return this.tabs.changes\n .pipe(startWith(this.tabs.map(tab => tab.tabLink)))\n .subscribe(() => this.setTabLinkElements());\n }\n\n private listedForTabsActionsChanges() {\n return this.tabsActions.changes.subscribe(() => this.setTabLinkElements());\n }\n}\n","/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\nimport { Component, HostBinding, Input } from '@angular/core';\n\nexport type ClrTabsActionsPosition = 'left' | 'right';\n\n@Component({\n selector: 'clr-tabs-actions',\n template: `\n <div class=\"tabs-actions-wrapper\">\n <ng-content></ng-content>\n </div>\n `,\n host: {\n '[class.tabs-actions]': 'true',\n },\n standalone: false,\n})\nexport class ClrTabsActions {\n @Input()\n @HostBinding('attr.position')\n position: ClrTabsActionsPosition = 'right';\n}\n","/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\nimport { Directive } from '@angular/core';\nimport { WillyWonka } from '@clr/angular/utils';\n\n@Directive({\n selector: 'clr-tabs',\n standalone: false,\n})\nexport class TabsWillyWonka extends WillyWonka {}\n","/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\nimport { ChangeDetectorRef, Directive, Inject, Optional } from '@angular/core';\nimport { IF_ACTIVE_ID, IfActiveService, OompaLoompa } from '@clr/angular/utils';\n\nimport { TabsWillyWonka } from './tabs-willy-wonka';\n\n@Directive({\n selector: '[clrTabLink], clr-tab-content',\n standalone: false,\n})\nexport class ActiveOompaLoompa extends OompaLoompa {\n private ifActive: IfActiveService;\n private id: number;\n\n constructor(\n cdr: ChangeDetectorRef,\n @Optional() willyWonka: TabsWillyWonka,\n @Inject(IF_ACTIVE_ID) id: number,\n ifActive: IfActiveService\n ) {\n if (!willyWonka) {\n throw new Error('clrTabLink and clr-tab-content should only be used inside of a clr-tabs');\n }\n super(cdr, willyWonka);\n this.ifActive = ifActive;\n this.id = id;\n }\n\n get flavor() {\n return this.ifActive.current === this.id;\n }\n}\n","/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\nimport { CommonModule } from '@angular/common';\nimport { NgModule, Type } from '@angular/core';\nimport { ClarityIcons, ClrIcon, ellipsisHorizontalIcon } from '@clr/angular/icon';\nimport { ClrConditionalModule, ClrKeyFocusModule, ClrTemplateRefModule } from '@clr/angular/utils';\n\nimport { ActiveOompaLoompa } from './chocolate/active-oompa-loompa';\nimport { TabsWillyWonka } from './chocolate/tabs-willy-wonka';\nimport { ClrTab } from './tab';\nimport { ClrTabAction } from './tab-action.directive';\nimport { ClrTabContent } from './tab-content';\nimport { ClrTabLink } from './tab-link.directive';\nimport { ClrTabOverflowContent } from './tab-overflow-content';\nimport { ClrTabs } from './tabs';\nimport { ClrTabsActions } from './tabs-actions';\n\nexport const CLR_TABS_DIRECTIVES: Type<any>[] = [\n ClrTabContent,\n ClrTab,\n ClrTabs,\n ClrTabOverflowContent,\n ClrTabLink,\n ClrTabAction,\n ClrTabsActions,\n TabsWillyWonka,\n ActiveOompaLoompa,\n];\n\n@NgModule({\n imports: [CommonModule, ClrConditionalModule, ClrIcon, ClrTemplateRefModule, ClrKeyFocusModule],\n declarations: [CLR_TABS_DIRECTIVES],\n exports: [CLR_TABS_DIRECTIVES, ClrConditionalModule],\n})\nexport class ClrTabsModule {\n constructor() {\n ClarityIcons.addIcons(ellipsisHorizontalIcon);\n }\n}\n","/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\nexport * from './tabs';\nexport * from './tabs-actions';\nexport * from './tab';\nexport * from './tab-content';\nexport * from './tab-overflow-content';\nexport * from './tab-link.directive';\nexport * from './tab-action.directive';\nexport * from './tabs.module';\nexport * from './tabs-actions';\nexport * from './chocolate/tabs-willy-wonka';\nexport * from './chocolate/active-oompa-loompa';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i2.TabsService","i6.ClrTabOverflowContent","i2"],"mappings":"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"}