Skip to content

Commit 7490b8a

Browse files
committed
refactor(material/timepicker): switch to tree shakeable overlay APIs
Reworks the module to use the new tree-shakeable APIs for creating overlays.
1 parent 16eb87c commit 7490b8a

File tree

2 files changed

+17
-14
lines changed

2 files changed

+17
-14
lines changed

src/material/timepicker/timepicker.spec.ts

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import {Component, inject, Provider, signal, ViewChild, ViewEncapsulation} from '@angular/core';
1+
import {Component, Injector, Provider, signal, ViewChild, ViewEncapsulation} from '@angular/core';
22
import {ComponentFixture, fakeAsync, flush, TestBed} from '@angular/core/testing';
33
import {DateAdapter, MATERIAL_ANIMATIONS, provideNativeDateAdapter} from '../core';
44
import {
@@ -28,7 +28,7 @@ import {MatTimepickerToggle} from './timepicker-toggle';
2828
import {MAT_TIMEPICKER_CONFIG, MatTimepickerOption} from './util';
2929
import {FormControl, ReactiveFormsModule, Validators} from '@angular/forms';
3030
import {ScrollDispatcher} from '@angular/cdk/scrolling';
31-
import {Overlay} from '@angular/cdk/overlay';
31+
import {createCloseScrollStrategy} from '@angular/cdk/overlay';
3232
import {Subject} from 'rxjs';
3333

3434
describe('MatTimepicker', () => {
@@ -463,10 +463,7 @@ describe('MatTimepicker', () => {
463463
},
464464
{
465465
provide: MAT_TIMEPICKER_SCROLL_STRATEGY,
466-
useFactory: () => {
467-
const overlay = inject(Overlay);
468-
return () => overlay.scrollStrategies.close();
469-
},
466+
useFactory: () => () => createCloseScrollStrategy(TestBed.inject(Injector)),
470467
},
471468
]);
472469

src/material/timepicker/timepicker.ts

Lines changed: 14 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,13 @@ import {
4242
MatOptionParentComponent,
4343
} from '../core';
4444
import {Directionality} from '@angular/cdk/bidi';
45-
import {Overlay, OverlayRef, ScrollStrategy} from '@angular/cdk/overlay';
45+
import {
46+
createFlexibleConnectedPositionStrategy,
47+
createOverlayRef,
48+
createRepositionScrollStrategy,
49+
OverlayRef,
50+
ScrollStrategy,
51+
} from '@angular/cdk/overlay';
4652
import {TemplatePortal} from '@angular/cdk/portal';
4753
import {_getEventTarget} from '@angular/cdk/platform';
4854
import {ENTER, ESCAPE, hasModifierKey, TAB} from '@angular/cdk/keycodes';
@@ -69,8 +75,8 @@ export const MAT_TIMEPICKER_SCROLL_STRATEGY = new InjectionToken<() => ScrollStr
6975
{
7076
providedIn: 'root',
7177
factory: () => {
72-
const overlay = inject(Overlay);
73-
return () => overlay.scrollStrategies.reposition();
78+
const injector = inject(Injector);
79+
return () => createRepositionScrollStrategy(injector);
7480
},
7581
},
7682
);
@@ -95,7 +101,6 @@ export const MAT_TIMEPICKER_SCROLL_STRATEGY = new InjectionToken<() => ScrollStr
95101
],
96102
})
97103
export class MatTimepicker<D> implements OnDestroy, MatOptionParentComponent {
98-
private _overlay = inject(Overlay);
99104
private _dir = inject(Directionality, {optional: true});
100105
private _viewContainerRef = inject(ViewContainerRef);
101106
private _injector = inject(Injector);
@@ -316,9 +321,10 @@ export class MatTimepicker<D> implements OnDestroy, MatOptionParentComponent {
316321
return this._overlayRef;
317322
}
318323

319-
const positionStrategy = this._overlay
320-
.position()
321-
.flexibleConnectedTo(this._input()!.getOverlayOrigin())
324+
const positionStrategy = createFlexibleConnectedPositionStrategy(
325+
this._injector,
326+
this._input()!.getOverlayOrigin(),
327+
)
322328
.withFlexibleDimensions(false)
323329
.withPush(false)
324330
.withTransformOriginOn('.mat-timepicker-panel')
@@ -338,7 +344,7 @@ export class MatTimepicker<D> implements OnDestroy, MatOptionParentComponent {
338344
},
339345
]);
340346

341-
this._overlayRef = this._overlay.create({
347+
this._overlayRef = createOverlayRef(this._injector, {
342348
positionStrategy,
343349
scrollStrategy: this._scrollStrategyFactory(),
344350
direction: this._dir || 'ltr',

0 commit comments

Comments
 (0)