diff --git a/goldens/material/menu/index.api.md b/goldens/material/menu/index.api.md index 9cbce4760179..0a6dd25c09c3 100644 --- a/goldens/material/menu/index.api.md +++ b/goldens/material/menu/index.api.md @@ -120,6 +120,7 @@ export class MatMenu implements AfterContentInit, MatMenuPanel, OnI overlapTrigger: boolean; overlayPanelClass: string | string[]; _panelAnimationState: 'void' | 'enter'; + get panelClass(): string; set panelClass(classes: string); // (undocumented) readonly panelId: string; diff --git a/src/material/menu/menu.spec.ts b/src/material/menu/menu.spec.ts index 159fa1e0c10d..cb9401540919 100644 --- a/src/material/menu/menu.spec.ts +++ b/src/material/menu/menu.spec.ts @@ -568,6 +568,15 @@ describe('MatMenu', () => { expect(panel.classList).toContain('custom-two'); }); + it('should expose the configured classes via the getter', () => { + const fixture = TestBed.createComponent(SimpleMenu); + fixture.componentInstance.panelClass = 'custom-one custom-two'; + fixture.detectChanges(); + + expect(fixture.componentInstance.menu.panelClass).toBe('custom-one custom-two'); + expect(fixture.componentInstance.menu.classList).toBe('custom-one custom-two'); + }); + it('should set the "menu" role on the overlay panel', () => { const fixture = TestBed.createComponent(SimpleMenu); fixture.detectChanges(); diff --git a/src/material/menu/menu.ts b/src/material/menu/menu.ts index 9368dc81c3aa..f04927647846 100644 --- a/src/material/menu/menu.ts +++ b/src/material/menu/menu.ts @@ -221,6 +221,9 @@ export class MatMenu implements AfterContentInit, MatMenuPanel, OnI * @param classes list of class names */ @Input('class') + get panelClass(): string { + return this._previousPanelClass; + } set panelClass(classes: string) { const previousPanelClass = this._previousPanelClass; const newClassList = {...this._classList}; @@ -243,7 +246,7 @@ export class MatMenu implements AfterContentInit, MatMenuPanel, OnI this._classList = newClassList; } - private _previousPanelClass!: string; + private _previousPanelClass: string = ''; /** * This method takes classes set on the host mat-menu element and applies them on the