Skip to content

Commit 08851de

Browse files
authored
fix(material/menu): add constructor overloads for non-deprecated signatures (#24860)
In #24116 I explored using constructor overload for deprecations, but I forgot to add an overload for the non-deprecated signatures. Fixes #24740.
1 parent 2c64ae3 commit 08851de

File tree

5 files changed

+55
-2
lines changed

5 files changed

+55
-2
lines changed

src/material/menu/menu-content.ts

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,16 @@ export abstract class _MatMenuContentBase implements OnDestroy {
3737
/** Emits when the menu content has been attached. */
3838
readonly _attached = new Subject<void>();
3939

40+
constructor(
41+
template: TemplateRef<any>,
42+
componentFactoryResolver: ComponentFactoryResolver,
43+
appRef: ApplicationRef,
44+
injector: Injector,
45+
viewContainerRef: ViewContainerRef,
46+
document: any,
47+
changeDetectorRef: ChangeDetectorRef,
48+
);
49+
4050
/**
4151
* @deprecated `changeDetectorRef` is now a required parameter.
4252
* @breaking-change 9.0.0

src/material/menu/menu-item.ts

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -75,8 +75,16 @@ export class MatMenuItem
7575
/** Whether the menu item acts as a trigger for a sub-menu. */
7676
_triggersSubmenu: boolean = false;
7777

78+
constructor(
79+
elementRef: ElementRef<HTMLElement>,
80+
document: any,
81+
focusMonitor: FocusMonitor,
82+
parentMenu: MatMenuPanel<MatMenuItem> | undefined,
83+
changeDetectorRef: ChangeDetectorRef,
84+
);
85+
7886
/**
79-
* @deprecated `_document`, `changeDetectorRef` and `focusMonitor` to become required.
87+
* @deprecated `document`, `changeDetectorRef` and `focusMonitor` to become required.
8088
* @breaking-change 12.0.0
8189
*/
8290
constructor(

src/material/menu/menu-trigger.ts

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -196,6 +196,18 @@ export abstract class _MatMenuTriggerBase implements AfterContentInit, OnDestroy
196196
// tslint:disable-next-line:no-output-on-prefix
197197
@Output() readonly onMenuClose: EventEmitter<void> = this.menuClosed;
198198

199+
constructor(
200+
overlay: Overlay,
201+
element: ElementRef<HTMLElement>,
202+
viewContainerRef: ViewContainerRef,
203+
scrollStrategy: any,
204+
parentMenu: MatMenuPanel,
205+
menuItemInstance: MatMenuItem,
206+
dir: Directionality,
207+
focusMonitor: FocusMonitor,
208+
ngZone: NgZone,
209+
);
210+
199211
/**
200212
* @deprecated `focusMonitor` will become a required parameter.
201213
* @breaking-change 8.0.0

src/material/menu/menu.ts

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -269,6 +269,24 @@ export class _MatMenuBase
269269

270270
readonly panelId = `mat-menu-panel-${menuPanelUid++}`;
271271

272+
constructor(
273+
elementRef: ElementRef<HTMLElement>,
274+
ngZone: NgZone,
275+
defaultOptions: MatMenuDefaultOptions,
276+
changeDetectorRef: ChangeDetectorRef,
277+
);
278+
279+
/**
280+
* @deprecated `_changeDetectorRef` to become a required parameter.
281+
* @breaking-change 15.0.0
282+
*/
283+
constructor(
284+
elementRef: ElementRef<HTMLElement>,
285+
ngZone: NgZone,
286+
defaultOptions: MatMenuDefaultOptions,
287+
changeDetectorRef?: ChangeDetectorRef,
288+
);
289+
272290
constructor(
273291
private _elementRef: ElementRef<HTMLElement>,
274292
private _ngZone: NgZone,

tools/public_api_guard/material/menu.md

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,9 @@ export const matMenuAnimations: {
9191

9292
// @public
9393
export class _MatMenuBase implements AfterContentInit, MatMenuPanel<MatMenuItem>, OnInit, OnDestroy {
94-
constructor(_elementRef: ElementRef<HTMLElement>, _ngZone: NgZone, _defaultOptions: MatMenuDefaultOptions, _changeDetectorRef?: ChangeDetectorRef | undefined);
94+
constructor(elementRef: ElementRef<HTMLElement>, ngZone: NgZone, defaultOptions: MatMenuDefaultOptions, changeDetectorRef: ChangeDetectorRef);
95+
// @deprecated
96+
constructor(elementRef: ElementRef<HTMLElement>, ngZone: NgZone, defaultOptions: MatMenuDefaultOptions, changeDetectorRef?: ChangeDetectorRef);
9597
// (undocumented)
9698
addItem(_item: MatMenuItem): void;
9799
_allItems: QueryList<MatMenuItem>;
@@ -169,6 +171,7 @@ export class MatMenuContent extends _MatMenuContentBase {
169171

170172
// @public (undocumented)
171173
export abstract class _MatMenuContentBase implements OnDestroy {
174+
constructor(template: TemplateRef<any>, componentFactoryResolver: ComponentFactoryResolver, appRef: ApplicationRef, injector: Injector, viewContainerRef: ViewContainerRef, document: any, changeDetectorRef: ChangeDetectorRef);
172175
// @deprecated
173176
constructor(template: TemplateRef<any>, componentFactoryResolver: ComponentFactoryResolver, appRef: ApplicationRef, injector: Injector, viewContainerRef: ViewContainerRef, document: any, changeDetectorRef?: ChangeDetectorRef);
174177
attach(context?: any): void;
@@ -194,6 +197,7 @@ export interface MatMenuDefaultOptions {
194197

195198
// @public
196199
export class MatMenuItem extends _MatMenuItemBase implements FocusableOption, CanDisable, CanDisableRipple, AfterViewInit, OnDestroy {
200+
constructor(elementRef: ElementRef<HTMLElement>, document: any, focusMonitor: FocusMonitor, parentMenu: MatMenuPanel<MatMenuItem> | undefined, changeDetectorRef: ChangeDetectorRef);
197201
// @deprecated
198202
constructor(elementRef: ElementRef<HTMLElement>, document?: any, focusMonitor?: FocusMonitor, parentMenu?: MatMenuPanel<MatMenuItem>, changeDetectorRef?: ChangeDetectorRef);
199203
_checkDisabled(event: Event): void;
@@ -283,6 +287,7 @@ export class MatMenuTrigger extends _MatMenuTriggerBase {
283287

284288
// @public (undocumented)
285289
export abstract class _MatMenuTriggerBase implements AfterContentInit, OnDestroy {
290+
constructor(overlay: Overlay, element: ElementRef<HTMLElement>, viewContainerRef: ViewContainerRef, scrollStrategy: any, parentMenu: MatMenuPanel, menuItemInstance: MatMenuItem, dir: Directionality, focusMonitor: FocusMonitor, ngZone: NgZone);
286291
// @deprecated
287292
constructor(overlay: Overlay, element: ElementRef<HTMLElement>, viewContainerRef: ViewContainerRef, scrollStrategy: any, parentMenu: MatMenuPanel, menuItemInstance: MatMenuItem, dir: Directionality, focusMonitor?: FocusMonitor | null);
288293
// @deprecated

0 commit comments

Comments
 (0)