diff --git a/src/lib/datepicker/datepicker-input.ts b/src/lib/datepicker/datepicker-input.ts index 8e78529a4133..f9e2ff231e99 100644 --- a/src/lib/datepicker/datepicker-input.ts +++ b/src/lib/datepicker/datepicker-input.ts @@ -254,14 +254,13 @@ export class MatDatepickerInput implements AfterContentInit, ControlValueAcce ngAfterContentInit() { if (this._datepicker) { - this._datepickerSubscription = - this._datepicker.selectedChanged.subscribe((selected: D) => { - this.value = selected; - this._cvaOnChange(selected); - this._onTouched(); - this.dateInput.emit(new MatDatepickerInputEvent(this, this._elementRef.nativeElement)); - this.dateChange.emit(new MatDatepickerInputEvent(this, this._elementRef.nativeElement)); - }); + this._datepickerSubscription = this._datepicker._selectedChanged.subscribe((selected: D) => { + this.value = selected; + this._cvaOnChange(selected); + this._onTouched(); + this.dateInput.emit(new MatDatepickerInputEvent(this, this._elementRef.nativeElement)); + this.dateChange.emit(new MatDatepickerInputEvent(this, this._elementRef.nativeElement)); + }); } } diff --git a/src/lib/datepicker/datepicker.spec.ts b/src/lib/datepicker/datepicker.spec.ts index a9036b15c7a7..a8f51229bd0a 100644 --- a/src/lib/datepicker/datepicker.spec.ts +++ b/src/lib/datepicker/datepicker.spec.ts @@ -232,7 +232,7 @@ describe('MatDatepicker', () => { it('clicking the currently selected date should close the calendar ' + 'without firing selectedChanged', fakeAsync(() => { const selectedChangedSpy = - spyOn(testComponent.datepicker.selectedChanged, 'emit').and.callThrough(); + spyOn(testComponent.datepicker._selectedChanged, 'next').and.callThrough(); for (let changeCount = 1; changeCount < 3; changeCount++) { const currentDay = changeCount; @@ -256,7 +256,7 @@ describe('MatDatepicker', () => { it('pressing enter on the currently selected date should close the calendar without ' + 'firing selectedChanged', () => { const selectedChangedSpy = - spyOn(testComponent.datepicker.selectedChanged, 'emit').and.callThrough(); + spyOn(testComponent.datepicker._selectedChanged, 'next').and.callThrough(); testComponent.datepicker.open(); fixture.detectChanges(); diff --git a/src/lib/datepicker/datepicker.ts b/src/lib/datepicker/datepicker.ts index c06e7d513fd7..e12aa47b1a46 100644 --- a/src/lib/datepicker/datepicker.ts +++ b/src/lib/datepicker/datepicker.ts @@ -236,13 +236,6 @@ export class MatDatepicker implements OnDestroy, CanColor { } private _disabled: boolean; - /** - * Emits new selected date when selected date changes. - * @deprecated Switch to the `dateChange` and `dateInput` binding on the input element. - * @deletion-target 6.0.0 - */ - @Output() readonly selectedChanged: EventEmitter = new EventEmitter(); - /** * Emits selected year in multiyear view. * This doesn't imply a change on the selected date. @@ -317,6 +310,9 @@ export class MatDatepicker implements OnDestroy, CanColor { /** Emits when the datepicker is disabled. */ readonly _disabledChange = new Subject(); + /** Emits new selected date when selected date changes. */ + readonly _selectedChanged = new Subject(); + constructor(private _dialog: MatDialog, private _overlay: Overlay, private _ngZone: NgZone, @@ -346,7 +342,7 @@ export class MatDatepicker implements OnDestroy, CanColor { let oldValue = this._selected; this._selected = date; if (!this._dateAdapter.sameDate(oldValue, this._selected)) { - this.selectedChanged.emit(date); + this._selectedChanged.next(date); } }