From 84edfefdfaea46356a7e8918a787d13f8190c2ef Mon Sep 17 00:00:00 2001 From: Daniel Tsanev Date: Mon, 25 Nov 2024 10:18:44 +0200 Subject: [PATCH] feat(tabs): add actions section (#1620) Please check if your PR fulfills the following requirements: - [ ] Tests for the changes have been added (for bug fixes / features) - [ ] Docs have been added / updated (for bug fixes / features) - [ ] If applicable, have a visual design approval What kind of change does this PR introduce? 1: Slot which is being projected inside the header so basically `Whatever content you put here`. 2: Directive `clrTabsAction` which you put on the element you want to be interactable and part of the navigation of tabs ( arrows ). - [ ] Bugfix - [X] Feature - [ ] Code style update (formatting, local variables) - [ ] Refactoring (no functional changes, no api changes) - [ ] Build related changes - [ ] CI related changes - [ ] Documentation content changes - [ ] Other... Please describe: Issue Number: CDE-2391 - [ ] Yes - [X] No --------- Co-authored-by: GitHub --- .../stories/tabs/tabs-actions.stories.ts | 99 +++++++++++ projects/angular/clarity.api.md | 49 ++++-- .../src/layout/tabs/_tabs.clarity.scss | 159 ++++++++++-------- projects/angular/src/layout/tabs/index.ts | 2 + .../layout/tabs/tab-action.directive.spec.ts | 58 +++++++ .../src/layout/tabs/tab-action.directive.ts | 16 ++ .../src/layout/tabs/tabs-actions.spec.ts | 43 +++++ .../angular/src/layout/tabs/tabs-actions.ts | 27 +++ .../angular/src/layout/tabs/tabs.module.ts | 4 + projects/angular/src/layout/tabs/tabs.ts | 32 +++- .../app/tabs/tabs-actions-angular.demo.html | 85 ++++++++++ .../demo/src/app/tabs/tabs-actions-angular.ts | 40 +++++ projects/demo/src/app/tabs/tabs.demo.html | 1 + .../demo/src/app/tabs/tabs.demo.module.ts | 5 +- .../demo/src/app/tabs/tabs.demo.routing.ts | 2 + ...s-actions--tabs-actions-left-core-dark.png | Bin 0 -> 5081 bytes ...-actions--tabs-actions-left-core-light.png | Bin 0 -> 5010 bytes .../tabs/tabs-actions--tabs-core-dark.png | Bin 0 -> 5078 bytes .../tabs/tabs-actions--tabs-core-light.png | Bin 0 -> 5012 bytes ...abs-actions--tabs-responsive-core-dark.png | Bin 0 -> 5078 bytes ...bs-actions--tabs-responsive-core-light.png | Bin 0 -> 5012 bytes .../tabs-actions--vertical-tabs-core-dark.png | Bin 0 -> 6843 bytes ...tabs-actions--vertical-tabs-core-light.png | Bin 0 -> 6728 bytes ...s-actions--tabs-actions-left-core-dark.png | Bin 0 -> 8992 bytes ...-actions--tabs-actions-left-core-light.png | Bin 0 -> 9062 bytes .../tabs/tabs-actions--tabs-core-dark.png | Bin 0 -> 9121 bytes .../tabs/tabs-actions--tabs-core-light.png | Bin 0 -> 9107 bytes ...abs-actions--tabs-responsive-core-dark.png | Bin 0 -> 9121 bytes ...bs-actions--tabs-responsive-core-light.png | Bin 0 -> 9107 bytes .../tabs-actions--vertical-tabs-core-dark.png | Bin 0 -> 13598 bytes ...tabs-actions--vertical-tabs-core-light.png | Bin 0 -> 13514 bytes 31 files changed, 529 insertions(+), 93 deletions(-) create mode 100644 .storybook/stories/tabs/tabs-actions.stories.ts create mode 100644 projects/angular/src/layout/tabs/tab-action.directive.spec.ts create mode 100644 projects/angular/src/layout/tabs/tab-action.directive.ts create mode 100644 projects/angular/src/layout/tabs/tabs-actions.spec.ts create mode 100644 projects/angular/src/layout/tabs/tabs-actions.ts create mode 100644 projects/demo/src/app/tabs/tabs-actions-angular.demo.html create mode 100644 projects/demo/src/app/tabs/tabs-actions-angular.ts create mode 100644 tests/snapshots/chromium/tabs/tabs-actions--tabs-actions-left-core-dark.png create mode 100644 tests/snapshots/chromium/tabs/tabs-actions--tabs-actions-left-core-light.png create mode 100644 tests/snapshots/chromium/tabs/tabs-actions--tabs-core-dark.png create mode 100644 tests/snapshots/chromium/tabs/tabs-actions--tabs-core-light.png create mode 100644 tests/snapshots/chromium/tabs/tabs-actions--tabs-responsive-core-dark.png create mode 100644 tests/snapshots/chromium/tabs/tabs-actions--tabs-responsive-core-light.png create mode 100644 tests/snapshots/chromium/tabs/tabs-actions--vertical-tabs-core-dark.png create mode 100644 tests/snapshots/chromium/tabs/tabs-actions--vertical-tabs-core-light.png create mode 100644 tests/snapshots/firefox/tabs/tabs-actions--tabs-actions-left-core-dark.png create mode 100644 tests/snapshots/firefox/tabs/tabs-actions--tabs-actions-left-core-light.png create mode 100644 tests/snapshots/firefox/tabs/tabs-actions--tabs-core-dark.png create mode 100644 tests/snapshots/firefox/tabs/tabs-actions--tabs-core-light.png create mode 100644 tests/snapshots/firefox/tabs/tabs-actions--tabs-responsive-core-dark.png create mode 100644 tests/snapshots/firefox/tabs/tabs-actions--tabs-responsive-core-light.png create mode 100644 tests/snapshots/firefox/tabs/tabs-actions--vertical-tabs-core-dark.png create mode 100644 tests/snapshots/firefox/tabs/tabs-actions--vertical-tabs-core-light.png diff --git a/.storybook/stories/tabs/tabs-actions.stories.ts b/.storybook/stories/tabs/tabs-actions.stories.ts new file mode 100644 index 0000000000..339c2e935d --- /dev/null +++ b/.storybook/stories/tabs/tabs-actions.stories.ts @@ -0,0 +1,99 @@ +/* + * Copyright (c) 2016-2024 Broadcom. All Rights Reserved. + * The term "Broadcom" refers to Broadcom Inc. and/or its subsidiaries. + * This software is released under MIT license. + * The full license information can be found in LICENSE in the root directory of this project. + */ + +import { ClrTabs, ClrTabsModule } from '@clr/angular'; +import { moduleMetadata, StoryFn, StoryObj } from '@storybook/angular'; + +import { TabsLayout } from '../../../projects/angular/src/layout/tabs/enums/tabs-layout.enum'; + +export default { + title: 'Tabs/Tabs Actions', + decorators: [ + moduleMetadata({ + imports: [ClrTabsModule], + }), + ], + component: ClrTabs, + argTypes: { + // inputs + clrLayout: { control: 'inline-radio', options: TabsLayout }, + tabsActionsPosition: { control: 'inline-radio', options: ['left', 'right'] }, + // methods + closeOnEscapeKey: { control: { disable: true }, table: { disable: true } }, + closeOnFocusOut: { control: { disable: true }, table: { disable: true } }, + closeOnOutsideClick: { control: { disable: true }, table: { disable: true } }, + openOverflowOnFocus: { control: { disable: true }, table: { disable: true } }, + resetKeyFocusCurrentToActive: { control: { disable: true }, table: { disable: true } }, + toggleOverflowOnClick: { control: { disable: true }, table: { disable: true } }, + toggleOverflowOnPosition: { control: { disable: true }, table: { disable: true } }, + // story helpers + createArray: { control: { disable: true }, table: { disable: true } }, + clickTabAction: { control: { disable: true }, table: { disable: true } }, + tabCount: { control: { type: 'number', min: 1, max: 100 } }, + activeTab: { control: { type: 'number', min: 1, max: 100 } }, + }, + args: { + // inputs + clrLayout: TabsLayout.HORIZONTAL, + tabsActionsPosition: 'right', + // story helpers + createArray: n => new Array(n), + clickTabAction: () => alert('Tab action clicked!'), + tabCount: 4, + activeTab: 1, + title: 'Tab', + content: 'Tab Content', + }, +}; + +const tabsTemplate: StoryFn = args => ({ + template: ` + + + + + + + +

{{ content }} {{ i + 1 }}

+
+
+
+ `, + props: { ...args }, +}); + +export const Tabs: StoryObj = { + render: tabsTemplate, +}; + +export const VerticalTabs: StoryObj = { + render: tabsTemplate, + args: { + tabsActionsPosition: 'left', + clrLayout: TabsLayout.VERTICAL, + }, +}; + +export const TabsResponsive: StoryObj = { + render: tabsTemplate, + parameters: { + viewport: { + defaultViewport: 'large', + }, + }, +}; + +export const TabsActionsLeft: StoryObj = { + render: tabsTemplate, + args: { + tabsActionsPosition: 'left', + }, +}; diff --git a/projects/angular/clarity.api.md b/projects/angular/clarity.api.md index 90ebcdbe62..9d33fe2ae6 100644 --- a/projects/angular/clarity.api.md +++ b/projects/angular/clarity.api.md @@ -96,9 +96,9 @@ export class ClarityModule { // Warning: (ae-forgotten-export) The symbol "i8_6" needs to be exported by the entry point index.d.ts // Warning: (ae-forgotten-export) The symbol "i9_2" needs to be exported by the entry point index.d.ts // Warning: (ae-forgotten-export) The symbol "i10_4" needs to be exported by the entry point index.d.ts - // Warning: (ae-forgotten-export) The symbol "i11_4" needs to be exported by the entry point index.d.ts + // Warning: (ae-forgotten-export) The symbol "i11_3" needs to be exported by the entry point index.d.ts // Warning: (ae-forgotten-export) The symbol "i12_3" needs to be exported by the entry point index.d.ts - // Warning: (ae-forgotten-export) The symbol "i13_3" needs to be exported by the entry point index.d.ts + // Warning: (ae-forgotten-export) The symbol "i13_4" needs to be exported by the entry point index.d.ts // Warning: (ae-forgotten-export) The symbol "i14_2" needs to be exported by the entry point index.d.ts // Warning: (ae-forgotten-export) The symbol "i15_2" needs to be exported by the entry point index.d.ts // Warning: (ae-forgotten-export) The symbol "i16_2" needs to be exported by the entry point index.d.ts @@ -106,7 +106,7 @@ export class ClarityModule { // Warning: (ae-forgotten-export) The symbol "i18_2" needs to be exported by the entry point index.d.ts // // (undocumented) - static ɵmod: i0.ɵɵNgModuleDeclaration; + static ɵmod: i0.ɵɵNgModuleDeclaration; } // @public (undocumented) @@ -3886,10 +3886,10 @@ export class ClrStepperModule { // Warning: (ae-forgotten-export) The symbol "i3_27" needs to be exported by the entry point index.d.ts // Warning: (ae-forgotten-export) The symbol "i4_18" needs to be exported by the entry point index.d.ts // Warning: (ae-forgotten-export) The symbol "i5_14" needs to be exported by the entry point index.d.ts - // Warning: (ae-forgotten-export) The symbol "i8_8" needs to be exported by the entry point index.d.ts + // Warning: (ae-forgotten-export) The symbol "i8_9" needs to be exported by the entry point index.d.ts // // (undocumented) - static ɵmod: i0.ɵɵNgModuleDeclaration; + static ɵmod: i0.ɵɵNgModuleDeclaration; } // @public (undocumented) @@ -3953,6 +3953,14 @@ export class ClrTab { static ɵfac: i0.ɵɵFactoryDeclaration; } +// @public (undocumented) +export class ClrTabAction { + // (undocumented) + static ɵdir: i0.ɵɵDirectiveDeclaration; + // (undocumented) + static ɵfac: i0.ɵɵFactoryDeclaration; +} + // @public (undocumented) export class ClrTabContent implements OnDestroy { constructor(ifActiveService: IfActiveService, id: number, tabsService: TabsService); @@ -4065,6 +4073,8 @@ export class ClrTabs implements AfterContentInit, OnDestroy { // (undocumented) set tabOverflowEl(value: ElementRef); // (undocumented) + tabsActions: QueryList; + // (undocumented) tabsId: number; // (undocumented) tabsService: TabsService; @@ -4075,11 +4085,24 @@ export class ClrTabs implements AfterContentInit, OnDestroy { // (undocumented) toggleService: ClrPopoverToggleService; // (undocumented) - static ɵcmp: i0.ɵɵComponentDeclaration; + static ɵcmp: i0.ɵɵComponentDeclaration; // (undocumented) static ɵfac: i0.ɵɵFactoryDeclaration; } +// @public (undocumented) +export class ClrTabsActions { + // (undocumented) + position: ClrTabsActionsPosition; + // (undocumented) + static ɵcmp: i0.ɵɵComponentDeclaration; + // (undocumented) + static ɵfac: i0.ɵɵFactoryDeclaration; +} + +// @public (undocumented) +export type ClrTabsActionsPosition = 'left' | 'right'; + // @public (undocumented) export class ClrTabsModule { constructor(); @@ -4094,10 +4117,12 @@ export class ClrTabsModule { // Warning: (ae-forgotten-export) The symbol "i5_11" needs to be exported by the entry point index.d.ts // Warning: (ae-forgotten-export) The symbol "i6_8" needs to be exported by the entry point index.d.ts // Warning: (ae-forgotten-export) The symbol "i7_7" needs to be exported by the entry point index.d.ts - // Warning: (ae-forgotten-export) The symbol "i11_3" needs to be exported by the entry point index.d.ts + // Warning: (ae-forgotten-export) The symbol "i8_7" needs to be exported by the entry point index.d.ts + // Warning: (ae-forgotten-export) The symbol "i9_6" needs to be exported by the entry point index.d.ts + // Warning: (ae-forgotten-export) The symbol "i13_3" needs to be exported by the entry point index.d.ts // // (undocumented) - static ɵmod: i0.ɵɵNgModuleDeclaration; + static ɵmod: i0.ɵɵNgModuleDeclaration; } // @public (undocumented) @@ -4683,13 +4708,13 @@ export class ClrWizardModule { // Warning: (ae-forgotten-export) The symbol "i5_13" needs to be exported by the entry point index.d.ts // Warning: (ae-forgotten-export) The symbol "i6_9" needs to be exported by the entry point index.d.ts // Warning: (ae-forgotten-export) The symbol "i7_8" needs to be exported by the entry point index.d.ts - // Warning: (ae-forgotten-export) The symbol "i8_7" needs to be exported by the entry point index.d.ts - // Warning: (ae-forgotten-export) The symbol "i9_6" needs to be exported by the entry point index.d.ts + // Warning: (ae-forgotten-export) The symbol "i8_8" needs to be exported by the entry point index.d.ts + // Warning: (ae-forgotten-export) The symbol "i9_7" needs to be exported by the entry point index.d.ts // Warning: (ae-forgotten-export) The symbol "i10_5" needs to be exported by the entry point index.d.ts - // Warning: (ae-forgotten-export) The symbol "i11_5" needs to be exported by the entry point index.d.ts + // Warning: (ae-forgotten-export) The symbol "i11_4" needs to be exported by the entry point index.d.ts // // (undocumented) - static ɵmod: i0.ɵɵNgModuleDeclaration; + static ɵmod: i0.ɵɵNgModuleDeclaration; } // @public diff --git a/projects/angular/src/layout/tabs/_tabs.clarity.scss b/projects/angular/src/layout/tabs/_tabs.clarity.scss index 3ea34ea79f..c7b722ffcc 100644 --- a/projects/angular/src/layout/tabs/_tabs.clarity.scss +++ b/projects/angular/src/layout/tabs/_tabs.clarity.scss @@ -46,101 +46,112 @@ [data-hidden='true'] { display: none; } -} - -button.nav-link { - border-radius: 0; - text-transform: capitalize; - min-width: 0; -} + button.nav-link { + border-radius: 0; + text-transform: capitalize; + min-width: 0; + } -.tabs-overflow { - position: relative; + .tabs-overflow { + position: relative; - .nav-item { - margin-right: 0; + .nav-item { + margin-right: 0; + } } -} -.tab-content { - display: inline; -} - -@include mixins.fixForIE11AndUp { .tab-content { - display: inline-block; - width: 100%; + display: inline; } -} -.tabs-vertical { - display: flex; - - // Must be direct child, so horizontal tabs can be nested in vertical tabs - & > .nav { - height: auto; - box-shadow: none; - flex-direction: column; - align-items: stretch; - margin-right: variables.$clr_baselineRem_1; - overflow: auto; - flex-shrink: 0; - padding: variables.$clr_baselineRem_4px; - width: variables.$clr_baselineRem_10; - min-width: variables.$clr_baselineRem_2; - - @include mixins.css-var(gap, clr-nav-vertical-gap-size, 0, variables.$clr-use-custom-properties); - - // ATM - remove - .nav-item { - @include mixins.css-var( - margin-right, - clr-nav-item-margin-right, - variables.$clr_baselineRem_1, - variables.$clr-use-custom-properties - ); + @include mixins.fixForIE11AndUp { + .tab-content { + display: inline-block; + width: 100%; } + } - .nav-link { - text-align: left; - @include mixins.css-var( - padding, - clr-nav-vertical-link-padding, - 0 variables.$clr_baselineRem_0_5, - variables.$clr-use-custom-properties - ); - border: none; + .tabs-vertical { + display: flex; + + // Must be direct child, so horizontal tabs can be nested in vertical tabs + & > .nav { + height: auto; + box-shadow: none; + flex-direction: column; + align-items: stretch; + margin-right: variables.$clr_baselineRem_1; + overflow: auto; flex-shrink: 0; - margin-top: 0; - margin-left: 0; - width: 100%; + padding: variables.$clr_baselineRem_4px; + width: variables.$clr_baselineRem_10; + min-width: variables.$clr_baselineRem_2; - // ATM - remove - &.btn { - margin-bottom: variables.$clr_baselineRem_1px; - } + @include mixins.css-var(gap, clr-nav-vertical-gap-size, 0, variables.$clr-use-custom-properties); - &.active, - &:hover { - @include nav-link-border-appearence('left'); - } - &:not(:active).active { + // ATM - remove + .nav-item { @include mixins.css-var( - background-color, - clr-nav-selected-bg-color, - variables.$clr-global-selection-color, + margin-right, + clr-nav-item-margin-right, + variables.$clr_baselineRem_1, variables.$clr-use-custom-properties ); } - &:not(.active):hover { + .nav-link { + text-align: left; @include mixins.css-var( - background-color, - clr-nav-hover-bg-color, - tabs-variables.$clr-nav-hover-bg-color, + padding, + clr-nav-vertical-link-padding, + 0 variables.$clr_baselineRem_0_5, variables.$clr-use-custom-properties ); + border: none; + flex-shrink: 0; + margin-top: 0; + margin-left: 0; + width: 100%; + + // ATM - remove + &.btn { + margin-bottom: variables.$clr_baselineRem_1px; + } + + &.active, + &:hover { + @include nav-link-border-appearence('left'); + } + &:not(:active).active { + @include mixins.css-var( + background-color, + clr-nav-selected-bg-color, + variables.$clr-global-selection-color, + variables.$clr-use-custom-properties + ); + } + + &:not(.active):hover { + @include mixins.css-var( + background-color, + clr-nav-hover-bg-color, + tabs-variables.$clr-nav-hover-bg-color, + variables.$clr-use-custom-properties + ); + } } } } + + .tabs-actions { + display: inline-flex; + width: 100%; + + &[position~='left'] { + justify-content: start; + } + &[position~='right'] { + justify-content: end; + } + } } diff --git a/projects/angular/src/layout/tabs/index.ts b/projects/angular/src/layout/tabs/index.ts index 4ace03ce07..9dc6b5946f 100644 --- a/projects/angular/src/layout/tabs/index.ts +++ b/projects/angular/src/layout/tabs/index.ts @@ -6,10 +6,12 @@ */ export * from './tabs'; +export * from './tabs-actions'; export * from './tab'; export * from './tab-content'; export * from './tab-overflow-content'; export * from './tab-link.directive'; +export * from './tab-action.directive'; export * from './tabs.module'; export { TabsWillyWonka as ÇlrTabsWillyWonka } from './chocolate/tabs-willy-wonka'; diff --git a/projects/angular/src/layout/tabs/tab-action.directive.spec.ts b/projects/angular/src/layout/tabs/tab-action.directive.spec.ts new file mode 100644 index 0000000000..684b55980e --- /dev/null +++ b/projects/angular/src/layout/tabs/tab-action.directive.spec.ts @@ -0,0 +1,58 @@ +/* + * Copyright (c) 2016-2024 Broadcom. All Rights Reserved. + * The term "Broadcom" refers to Broadcom Inc. and/or its subsidiaries. + * This software is released under MIT license. + * The full license information can be found in LICENSE in the root directory of this project. + */ + +import { Component, ElementRef, QueryList, ViewChildren } from '@angular/core'; +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { ClrTabAction } from './tab-action.directive'; +import { ClrTabsModule } from './tabs.module'; + +@Component({ + template: ` + + + + + + + + + + + + `, +}) +class TestComponent { + @ViewChildren(ClrTabAction, { read: ElementRef }) tabsActions: QueryList; +} + +describe('TabAction Directive', () => { + let fixture: ComponentFixture; + let instance: any; + + beforeEach(() => { + TestBed.configureTestingModule({ + imports: [ClrTabsModule], + declarations: [TestComponent], + providers: [], + }); + + fixture = TestBed.createComponent(TestComponent); + fixture.detectChanges(); + instance = fixture.componentInstance; + }); + + afterEach(() => { + fixture.destroy(); + }); + + it('has the correct tabIndex value', () => { + const tabsActions: QueryList = instance.tabsActions; + expect(tabsActions.length).toBe(1); + expect(tabsActions.get(0).nativeElement.tabIndex).toBe(0); + }); +}); diff --git a/projects/angular/src/layout/tabs/tab-action.directive.ts b/projects/angular/src/layout/tabs/tab-action.directive.ts new file mode 100644 index 0000000000..bd24511b15 --- /dev/null +++ b/projects/angular/src/layout/tabs/tab-action.directive.ts @@ -0,0 +1,16 @@ +/* + * Copyright (c) 2016-2024 Broadcom. All Rights Reserved. + * The term "Broadcom" refers to Broadcom Inc. and/or its subsidiaries. + * This software is released under MIT license. + * The full license information can be found in LICENSE in the root directory of this project. + */ + +import { Directive } from '@angular/core'; + +@Directive({ + selector: '[clrTabAction]', + host: { + tabindex: '0', + }, +}) +export class ClrTabAction {} diff --git a/projects/angular/src/layout/tabs/tabs-actions.spec.ts b/projects/angular/src/layout/tabs/tabs-actions.spec.ts new file mode 100644 index 0000000000..e839e06621 --- /dev/null +++ b/projects/angular/src/layout/tabs/tabs-actions.spec.ts @@ -0,0 +1,43 @@ +/* + * Copyright (c) 2016-2024 Broadcom. All Rights Reserved. + * The term "Broadcom" refers to Broadcom Inc. and/or its subsidiaries. + * This software is released under MIT license. + * The full license information can be found in LICENSE in the root directory of this project. + */ + +import { Component } from '@angular/core'; +import { ComponentFixture, TestBed } from '@angular/core/testing'; +import { By } from '@angular/platform-browser'; + +import { ClrTabsActions } from './tabs-actions'; +import { ClrTabsModule } from './tabs.module'; + +@Component({ + template: `Hello world`, +}) +class TestComponent {} + +describe('TabsActions', () => { + let fixture: ComponentFixture; + let compiled: any; + + beforeEach(() => { + TestBed.configureTestingModule({ + imports: [ClrTabsModule], + declarations: [TestComponent], + providers: [], + }); + fixture = TestBed.createComponent(TestComponent); + compiled = fixture.nativeElement; + fixture.detectChanges(); + }); + + it('projects content', () => { + expect(compiled.textContent.trim()).toMatch('Hello world'); + }); + + it('adds a .tabs-actions class on the host element', () => { + const tabsActionsElement = fixture.debugElement.query(By.directive(ClrTabsActions)).nativeElement; + expect(tabsActionsElement.classList.contains('tabs-actions')).toBe(true); + }); +}); diff --git a/projects/angular/src/layout/tabs/tabs-actions.ts b/projects/angular/src/layout/tabs/tabs-actions.ts new file mode 100644 index 0000000000..431dc93c06 --- /dev/null +++ b/projects/angular/src/layout/tabs/tabs-actions.ts @@ -0,0 +1,27 @@ +/* + * Copyright (c) 2016-2024 Broadcom. All Rights Reserved. + * The term "Broadcom" refers to Broadcom Inc. and/or its subsidiaries. + * This software is released under MIT license. + * The full license information can be found in LICENSE in the root directory of this project. + */ + +import { Component, HostBinding, Input } from '@angular/core'; + +export type ClrTabsActionsPosition = 'left' | 'right'; + +@Component({ + selector: 'clr-tabs-actions', + template: ` +
+ +
+ `, + host: { + '[class.tabs-actions]': 'true', + }, +}) +export class ClrTabsActions { + @Input() + @HostBinding('attr.position') + position: ClrTabsActionsPosition = 'right'; +} diff --git a/projects/angular/src/layout/tabs/tabs.module.ts b/projects/angular/src/layout/tabs/tabs.module.ts index ec9125c971..b95d8254fa 100644 --- a/projects/angular/src/layout/tabs/tabs.module.ts +++ b/projects/angular/src/layout/tabs/tabs.module.ts @@ -16,10 +16,12 @@ import { ClrTemplateRefModule } from '../../utils/template-ref/template-ref.modu import { ActiveOompaLoompa } from './chocolate/active-oompa-loompa'; import { TabsWillyWonka } from './chocolate/tabs-willy-wonka'; import { ClrTab } from './tab'; +import { ClrTabAction } from './tab-action.directive'; import { ClrTabContent } from './tab-content'; import { ClrTabLink } from './tab-link.directive'; import { ClrTabOverflowContent } from './tab-overflow-content'; import { ClrTabs } from './tabs'; +import { ClrTabsActions } from './tabs-actions'; export const CLR_TABS_DIRECTIVES: Type[] = [ ClrTabContent, @@ -27,6 +29,8 @@ export const CLR_TABS_DIRECTIVES: Type[] = [ ClrTabs, ClrTabOverflowContent, ClrTabLink, + ClrTabAction, + ClrTabsActions, TabsWillyWonka, ActiveOompaLoompa, ]; diff --git a/projects/angular/src/layout/tabs/tabs.ts b/projects/angular/src/layout/tabs/tabs.ts index d5bbc0a1bb..7f9195e243 100644 --- a/projects/angular/src/layout/tabs/tabs.ts +++ b/projects/angular/src/layout/tabs/tabs.ts @@ -29,6 +29,7 @@ import { ClrPopoverToggleService } from '../../utils/popover/providers/popover-t import { TabsLayout } from './enums/tabs-layout.enum'; import { TabsService } from './providers/tabs.service'; import { ClrTab } from './tab'; +import { ClrTabAction } from './tab-action.directive'; import { ClrTabLink } from './tab-link.directive'; import { ClrTabOverflowContent } from './tab-overflow-content'; import { TABS_ID, TABS_ID_PROVIDER } from './tabs-id.provider'; @@ -91,6 +92,7 @@ import { TABS_ID, TABS_ID_PROVIDER } from './tabs-id.provider'; + `, @@ -106,6 +108,7 @@ export class ClrTabs implements AfterContentInit, OnDestroy { @ViewChild(ClrKeyFocus, { static: true }) keyFocus: ClrKeyFocus; + @ContentChildren(ClrTabAction, { read: ElementRef, descendants: true }) tabsActions: QueryList; @ContentChildren(ClrTab) private tabs: QueryList; private subscriptions: Subscription[] = []; @@ -178,6 +181,7 @@ export class ClrTabs implements AfterContentInit, OnDestroy { ngAfterContentInit() { this.subscriptions.push(this.listenForTabLinkChanges()); + this.subscriptions.push(this.listedForTabsActionsChanges()); if (typeof this.ifActiveService.current === 'undefined' && this.tabLinkDirectives[0]) { this.tabLinkDirectives[0].activate(); @@ -252,7 +256,14 @@ export class ClrTabs implements AfterContentInit, OnDestroy { // This is because we have another handler on the tabOverflowTrigger element itself. // As this handler method is on the document level so the event bubbles up to it and conflicts // with the tabOverflowTrigger handler resulting in opening the tab overflow and closing it right away consecutively. - if (event.target === tabOverflowTrigger || tabOverflowTrigger.contains(event.target as HTMLElement)) { + const isTabsAction = this.tabsActions.some(action => + (action.nativeElement as HTMLElement).contains(event.target as HTMLElement) + ); + if ( + event.target === tabOverflowTrigger || + tabOverflowTrigger.contains(event.target as HTMLElement) || + isTabsAction + ) { return; } @@ -262,10 +273,21 @@ export class ClrTabs implements AfterContentInit, OnDestroy { } } + private setTabLinkElements() { + this._tabLinkDirectives = this.tabs.map(tab => tab.tabLink); + this.tabLinkElements = this._tabLinkDirectives.map(tab => tab.el.nativeElement); + if (this.tabsActions && this.tabsActions) { + this.tabLinkElements.push(...this.tabsActions.map(action => action.nativeElement)); + } + } + private listenForTabLinkChanges() { - return this.tabs.changes.pipe(startWith(this.tabs.map(tab => tab.tabLink))).subscribe(() => { - this._tabLinkDirectives = this.tabs.map(tab => tab.tabLink); - this.tabLinkElements = this._tabLinkDirectives.map(tab => tab.el.nativeElement); - }); + return this.tabs.changes + .pipe(startWith(this.tabs.map(tab => tab.tabLink))) + .subscribe(() => this.setTabLinkElements()); + } + + private listedForTabsActionsChanges() { + return this.tabsActions.changes.subscribe(() => this.setTabLinkElements()); } } diff --git a/projects/demo/src/app/tabs/tabs-actions-angular.demo.html b/projects/demo/src/app/tabs/tabs-actions-angular.demo.html new file mode 100644 index 0000000000..b7c28fa997 --- /dev/null +++ b/projects/demo/src/app/tabs/tabs-actions-angular.demo.html @@ -0,0 +1,85 @@ + + +
+

Action after the last tab

+ + + + + + + + +

{{ tab.content }}

+ +
+
+
+

Action at the end

+ + + + + + + +

{{ tab.content }}

+ +
+
+
+

Vertical Action at the end

+ + + + + + + +

{{ tab.content }}

+ +
+
+
+

With overflow tabs

+ + + + + + + +

{{ tab.content }}

+ +
+
+
+
diff --git a/projects/demo/src/app/tabs/tabs-actions-angular.ts b/projects/demo/src/app/tabs/tabs-actions-angular.ts new file mode 100644 index 0000000000..17c1c1efd8 --- /dev/null +++ b/projects/demo/src/app/tabs/tabs-actions-angular.ts @@ -0,0 +1,40 @@ +/* + * Copyright (c) 2016-2024 Broadcom. All Rights Reserved. + * The term "Broadcom" refers to Broadcom Inc. and/or its subsidiaries. + * This software is released under MIT license. + * The full license information can be found in LICENSE in the root directory of this project. + */ + +import { Component } from '@angular/core'; + +@Component({ + selector: 'clr-modal-tabs-actions-angular', + styleUrls: ['./tabs.demo.scss'], + templateUrl: './tabs-actions-angular.demo.html', +}) +export class TabsActionsAngularDemo { + layout = 'vertical'; + inOverflow = false; + tabs = [ + { + title: 'Dashboard', + content: `Content for Dashboard tab. Here is a link that can be accessed via clicking or + through keyboard via tabbing.`, + }, + { + title: 'Management', + content: 'Content for Management tab.', + }, + ]; + + addTab() { + this.tabs.push({ + title: `Inserted Tab ${this.tabs.length + 1}`, + content: `Content for Inserted Tab ${this.tabs.length + 1}`, + }); + } + + removeTab(index) { + this.tabs.splice(index, 1); + } +} diff --git a/projects/demo/src/app/tabs/tabs.demo.html b/projects/demo/src/app/tabs/tabs.demo.html index 7f4ca29b61..b46dfb88f9 100644 --- a/projects/demo/src/app/tabs/tabs.demo.html +++ b/projects/demo/src/app/tabs/tabs.demo.html @@ -10,6 +10,7 @@

Tabs

diff --git a/projects/demo/src/app/tabs/tabs.demo.module.ts b/projects/demo/src/app/tabs/tabs.demo.module.ts index 866128ab52..cf7e2a2e86 100644 --- a/projects/demo/src/app/tabs/tabs.demo.module.ts +++ b/projects/demo/src/app/tabs/tabs.demo.module.ts @@ -10,6 +10,7 @@ import { NgModule } from '@angular/core'; import { ClarityModule } from '@clr/angular'; import { ClrKeyFocusModule } from '../../../../angular/src/utils/focus/key-focus/key-focus.module'; +import { TabsActionsAngularDemo } from './tabs-actions-angular'; import { TabsAngularDemo } from './tabs-angular'; import { TabsStaticDemo } from './tabs-static'; import { TabsDemo } from './tabs.demo'; @@ -17,7 +18,7 @@ import { ROUTING } from './tabs.demo.routing'; @NgModule({ imports: [CommonModule, ClarityModule, ROUTING, ClrKeyFocusModule], - declarations: [TabsDemo, TabsStaticDemo, TabsAngularDemo], - exports: [TabsDemo, TabsStaticDemo, TabsAngularDemo], + declarations: [TabsDemo, TabsStaticDemo, TabsAngularDemo, TabsActionsAngularDemo], + exports: [TabsDemo, TabsStaticDemo, TabsAngularDemo, TabsActionsAngularDemo], }) export class TabsDemoModule {} diff --git a/projects/demo/src/app/tabs/tabs.demo.routing.ts b/projects/demo/src/app/tabs/tabs.demo.routing.ts index df3a901737..cd22e8be90 100644 --- a/projects/demo/src/app/tabs/tabs.demo.routing.ts +++ b/projects/demo/src/app/tabs/tabs.demo.routing.ts @@ -8,6 +8,7 @@ import { ModuleWithProviders } from '@angular/core'; import { RouterModule, Routes } from '@angular/router'; +import { TabsActionsAngularDemo } from './tabs-actions-angular'; import { TabsAngularDemo } from './tabs-angular'; import { TabsStaticDemo } from './tabs-static'; import { TabsDemo } from './tabs.demo'; @@ -20,6 +21,7 @@ const ROUTES: Routes = [ { path: '', redirectTo: 'static', pathMatch: 'full' }, { path: 'static', component: TabsStaticDemo }, { path: 'angular', component: TabsAngularDemo }, + { path: 'actions-angular', component: TabsActionsAngularDemo }, ], }, ]; diff --git a/tests/snapshots/chromium/tabs/tabs-actions--tabs-actions-left-core-dark.png b/tests/snapshots/chromium/tabs/tabs-actions--tabs-actions-left-core-dark.png new file mode 100644 index 0000000000000000000000000000000000000000..e1f4f580e34c4e1f668466133d77ba0fd5145f67 GIT binary patch literal 5081 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 literal 0 HcmV?d00001 diff --git a/tests/snapshots/chromium/tabs/tabs-actions--tabs-actions-left-core-light.png b/tests/snapshots/chromium/tabs/tabs-actions--tabs-actions-left-core-light.png new file mode 100644 index 0000000000000000000000000000000000000000..ba79fa60f52b952e44332bb9d2c34a35909d3587 GIT binary patch literal 5010 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 O`b0xty%cEu=6?W&G3M?7 literal 0 HcmV?d00001 diff --git a/tests/snapshots/chromium/tabs/tabs-actions--tabs-core-light.png b/tests/snapshots/chromium/tabs/tabs-actions--tabs-core-light.png new file mode 100644 index 0000000000000000000000000000000000000000..bd5e4b25428680966cbfb1c853f391d29e567bea GIT binary patch literal 5012 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 O`b0xty%cEu=6?W&G3M?7 literal 0 HcmV?d00001 diff --git a/tests/snapshots/chromium/tabs/tabs-actions--tabs-responsive-core-light.png b/tests/snapshots/chromium/tabs/tabs-actions--tabs-responsive-core-light.png new file mode 100644 index 0000000000000000000000000000000000000000..bd5e4b25428680966cbfb1c853f391d29e567bea GIT binary patch literal 5012 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

711Fk|HmcfhDZ9;P#b|C& zqF&N)=$=&XId=Ila*YUFxj|N!a(xN{lA(apps*DnNx1;V2;*;O(0_6{tvsB}$z!#> zdyzs2*ob3Tewaj=9^DhC9j}KM6aY5ujdW?1Vty@c9~cjMc2QfcOIB<)CEmUyu5 zGJw2e)<0b;mm``8!E2E*6tcSKfyDY5fZ0`!uAp4Bri%T7Xu(hp$sKJJ><@JzWm6Y8 zqU$!_pA39pXPykPkWW^2n`mtG)Y7;dpsm&SnbOP+9|bu(&RoltPJK)=-IYlmwc9Wb;1SuEqyFriBy4GGn56H2|rjO6AcB1D!c zgwx^R1J@{i2{|=XPY3NT{vx3-@LRA{b=0tQ!017@MrN;U%UC!9(vWyz%ae#}Iy}jxXU>&dNU9fLg)8+Yz>=XiT^M{Kxa53@lvZ zD7AEz`EaU!_-D$f#j}7?AR;jV-*Y%OG*t<(>nZZ0;6DH=hO;66YO(omWqFx=I9*Yz z7(&82|5a1NMhDtAe+n?qr4Bdc7>OnxA~Je^8#;TV0!n$Qp>4H2BZqJ^|Ex^>7?9B( znR^zu<*xZ(yIgCnST@DwH+sCX~|J(aOs+wgEbq0MbG>kkz?NV`bRecqq=E zdP`C}*m;j!f-^(F7o~>x9Z5}7HY&hQoD>pG+|OQUXDJsNAi~n3agup;PF*d$QV{~N z=S+6&v{WX>i`-1E0{d0s1vsu#J)jSsw5q5(ACW~%4}P|cL)mStzY-XN<&B(+f{#fK zWL}AQSZkD_PRtRE zFk7gU{XVH8e%gc%k@2ddFaEImOQVF$!18{4h#Ub5XEoEO$Op5Si+duNn-0tIubJZ+ zfZ{r@VD}uvmujwAfz;!I*9`6+Bv(wPl_IwdHN-qeWrExGcsnfyJVP39%WV`0n<4h6 zTl$@cdgX!evUj81k&jrbCuU*>YlGvoc-3~k))8bV*HKTGm#r(Ehl$^7hN51pL<(#Z zzQ6*~Zq(Y{_VMwYO3&|$*Qpe@#r3okyKF~L^h#v_n~VoTWR5zb(r=i7O!Myj6qe+J z!PA!@d*(f{QGR@~ZL%&OOo@7Fg2s75iC&h_wf2`^my)~WjJ1NNT414#?!sRCtMS*p zhfgvf#lh8u=A`uY=gZi!)!D3k{!|IYX$qXcbLa%n`0cUe-u%0rf;6!TwkejjKQ-5w zW2DCE6-VUl6v>$i+BJoMRhK_592XUVK(NW>t|r0cZLRp@@x$10WL=Leb5O^rvsY9k zcE=mXDhQQ$RDgVeDG6!P$Us^I1PVTq#M@TNnmlH`b+p9I?-~i279gkcRwr(4^kPc4 zNe4H9SbtC46`#h`a2}>w3_!wYGZpI02bVfb4LjTh!DCg92l~<2;pK_hIq;6lWFCsF zF>A++wPbc-jO0-7P`eNUKwSYq&3CYrdPxTs7P6{{``dTZ`MB?%PdgoCg!_A zgO}rx@5bw%4yyqRF4-;whMRJyb91MUZ?AqdMV?WH?M;bDkR{8lFKI}o2{zu=NeTKs zlJ{;3XG~vRw3P{~F!rQ;is_VmP&7`>7NQ!cu)Rpu{OVZ^653zR0a;3`BMgL!jivd0 zpRsT1R2jN%Mcj?XBAI)CjDW#f6Ic58*bkK z*$I4*q{2lLH6LoZw#bN=xgyubP;6D^rZ&7+RZYg0U{B35GhQjSWiB}gLfQ;0JS^Ai ziRpD<{4;*05b@?0TJ!c6#BDYDKo~&(hoa}8Jjs2e0g3+^fB{t5RwF*m>vee1c~1Yo zZ|Zi+qayX$8w&WJfnh>~!lBY{fU$b~-=uv0t-1aGSbXQu_xY}b%Xx+*fDp()4|2Eo I&eP}r1+=gEFaQ7m literal 0 HcmV?d00001 diff --git a/tests/snapshots/chromium/tabs/tabs-actions--vertical-tabs-core-light.png b/tests/snapshots/chromium/tabs/tabs-actions--vertical-tabs-core-light.png new file mode 100644 index 0000000000000000000000000000000000000000..193da0332703dd80c391fd39ac0dec694e3ade0a GIT binary patch literal 6728 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 Db;h;` literal 0 HcmV?d00001 diff --git a/tests/snapshots/firefox/tabs/tabs-actions--tabs-actions-left-core-dark.png b/tests/snapshots/firefox/tabs/tabs-actions--tabs-actions-left-core-dark.png new file mode 100644 index 0000000000000000000000000000000000000000..5f1c34275f8e11f25295b3a4bf5831d1ab0cd980 GIT binary patch literal 8992 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 literal 0 HcmV?d00001 diff --git a/tests/snapshots/firefox/tabs/tabs-actions--tabs-actions-left-core-light.png b/tests/snapshots/firefox/tabs/tabs-actions--tabs-actions-left-core-light.png new file mode 100644 index 0000000000000000000000000000000000000000..a7719e528e99440cd25460d26c75f645e13de39a GIT binary patch literal 9062 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 mUm^ZCtbdW~{}vVZ-J=BmcEE2vBM;r|7nqlrNP literal 0 HcmV?d00001 diff --git a/tests/snapshots/firefox/tabs/tabs-actions--tabs-core-dark.png b/tests/snapshots/firefox/tabs/tabs-actions--tabs-core-dark.png new file mode 100644 index 0000000000000000000000000000000000000000..7f2bf686212e673ebd8afead39f61671a31546b6 GIT binary patch literal 9121 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 Y4wmK6h&5CHYy(_VhhE9QbmzhU0C>r!4gdfE literal 0 HcmV?d00001 diff --git a/tests/snapshots/firefox/tabs/tabs-actions--tabs-responsive-core-dark.png b/tests/snapshots/firefox/tabs/tabs-actions--tabs-responsive-core-dark.png new file mode 100644 index 0000000000000000000000000000000000000000..7f2bf686212e673ebd8afead39f61671a31546b6 GIT binary patch literal 9121 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 Y4wmK6h&5CHYy(_VhhE9QbmzhU0C>r!4gdfE literal 0 HcmV?d00001 diff --git a/tests/snapshots/firefox/tabs/tabs-actions--vertical-tabs-core-dark.png b/tests/snapshots/firefox/tabs/tabs-actions--vertical-tabs-core-dark.png new file mode 100644 index 0000000000000000000000000000000000000000..d47a681a8b8cb900868d33a2ec54e11b4aa24ab1 GIT binary patch literal 13598 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 J{nh!_{{mI$_TT^j literal 0 HcmV?d00001 diff --git a/tests/snapshots/firefox/tabs/tabs-actions--vertical-tabs-core-light.png b/tests/snapshots/firefox/tabs/tabs-actions--vertical-tabs-core-light.png new file mode 100644 index 0000000000000000000000000000000000000000..647e3f66c9a7f995b024613c882df29658e6f643 GIT binary patch literal 13514 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