@@ -1202,3 +1300,31 @@ class TabGroupWithSpaceAbove {
})
class NestedTabGroupWithLabel {
}
+
+
+@Component({
+ template: `
+
+
+ Tab one content
+
+
+ Tab two content
+
+
+ Tab three content
+
+
+ Tab four content
+
+
+ Tab five content
+
+
+ `,
+})
+class TabsWithClassesTestApp {
+ @ViewChildren(MatTab) tabs: QueryList
;
+ labelClassList?: string | string[];
+ bodyClassList?: string | string[];
+}
diff --git a/src/material-experimental/mdc-tabs/tab.ts b/src/material-experimental/mdc-tabs/tab.ts
index eac99fce3a52..bf3875890ad3 100644
--- a/src/material-experimental/mdc-tabs/tab.ts
+++ b/src/material-experimental/mdc-tabs/tab.ts
@@ -12,6 +12,8 @@ import {
ViewEncapsulation,
TemplateRef,
ContentChild,
+ OnChanges,
+ SimpleChanges,
} from '@angular/core';
import {MatTab as BaseMatTab, MAT_TAB} from '@angular/material/tabs';
import {MatTabContent} from './tab-content';
@@ -30,7 +32,7 @@ import {MatTabLabel} from './tab-label';
exportAs: 'matTab',
providers: [{provide: MAT_TAB, useExisting: MatTab}]
})
-export class MatTab extends BaseMatTab {
+export class MatTab extends BaseMatTab implements OnChanges {
/**
* Template provided in the tab content that will be used if present, used to enable lazy-loading
*/
@@ -41,4 +43,16 @@ export class MatTab extends BaseMatTab {
@ContentChild(MatTabLabel)
override get templateLabel(): MatTabLabel { return this._templateLabel; }
override set templateLabel(value: MatTabLabel) { this._setTemplateLabelInput(value); }
+
+ override ngOnChanges(changes: SimpleChanges): void {
+ super.ngOnChanges(changes);
+
+ // Triggering ChangeDetectorRef.markForCheck()
+ if (changes.hasOwnProperty('ariaLabel')
+ || changes.hasOwnProperty('ariaLabelledby')
+ || changes.hasOwnProperty('labelClass')
+ || changes.hasOwnProperty('bodyClass')) {
+ this._stateChanges.next();
+ }
+ }
}
diff --git a/src/material/tabs/tab-group.html b/src/material/tabs/tab-group.html
index 268ed3076d1e..3d974cdc6b70 100644
--- a/src/material/tabs/tab-group.html
+++ b/src/material/tabs/tab-group.html
@@ -4,17 +4,19 @@
[disablePagination]="disablePagination"
(indexFocused)="_focusChanged($event)"
(selectFocusedIndex)="selectedIndex = $event">
-
-
+
- {{tab.textLabel}}
+ {{tab.textLabel}}
@@ -38,16 +40,17 @@
[class._mat-animation-noopable]="_animationMode === 'NoopAnimations'"
#tabBodyWrapper>