Skip to content

Commit 832bf17

Browse files
authored
Merge pull request #9385 from IgniteUI/vslavov/date-picker-toggle-event-args
fix(date-picker): emit proper event args on open/close events
2 parents 4aa7d48 + 375a84a commit 832bf17

File tree

2 files changed

+18
-15
lines changed

2 files changed

+18
-15
lines changed

projects/igniteui-angular/src/lib/date-picker/date-picker.component.spec.ts

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -220,11 +220,11 @@ describe('IgxDatePicker', () => {
220220
onClosed: new EventEmitter<OverlayEventArgs>(),
221221
onClosing: new EventEmitter<OverlayClosingEventArgs>(),
222222
show(..._args) {
223-
this.onOpening.emit(mockOverlayEventArgs);
223+
this.onOpening.emit(Object.assign({}, mockOverlayEventArgs, { cancel: false }));
224224
this.onOpened.emit(mockOverlayEventArgs);
225225
},
226226
hide(..._args) {
227-
this.onClosing.emit(mockOverlayEventArgs);
227+
this.onClosing.emit(Object.assign({}, mockOverlayEventArgs, { cancel: false }));
228228
this.onClosed.emit(mockOverlayEventArgs);
229229
},
230230
detach: (..._args) => { },
@@ -297,7 +297,7 @@ describe('IgxDatePicker', () => {
297297
//#endregion
298298

299299
//#region Events
300-
xit('should properly emit open/close events', () => {
300+
it('should properly emit open/close events', () => {
301301
spyOn(datePicker.opened, 'emit');
302302
spyOn(datePicker.closed, 'emit');
303303

@@ -310,17 +310,17 @@ describe('IgxDatePicker', () => {
310310
expect(datePicker.closed.emit).toHaveBeenCalledWith({ owner: datePicker });
311311
});
312312

313-
xit('should properly emit opening/closing events', () => {
313+
it('should properly emit opening/closing events', () => {
314314
spyOn(datePicker.opening, 'emit');
315315
spyOn(datePicker.closing, 'emit');
316316

317317
datePicker.ngAfterViewInit();
318318

319319
datePicker.open();
320-
expect(datePicker.opening.emit).toHaveBeenCalledWith({ owner: datePicker, cancel: false });
320+
expect(datePicker.opening.emit).toHaveBeenCalledWith({ owner: datePicker, event: undefined, cancel: false });
321321

322322
datePicker.close();
323-
expect(datePicker.closing.emit).toHaveBeenCalledWith({ owner: datePicker, cancel: false });
323+
expect(datePicker.closing.emit).toHaveBeenCalledWith({ owner: datePicker, event: undefined, cancel: false });
324324
});
325325

326326
it('should emit valueChange when the value changes', () => {

projects/igniteui-angular/src/lib/date-picker/date-picker.component.ts

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,6 @@ import { fadeIn, fadeOut } from '../animations/fade';
3232
import { PickerBaseDirective } from '../date-common/picker-base.directive';
3333
import { DisplayDensityToken, IDisplayDensityOptions } from '../core/density';
3434
import { DatePart, DatePartDeltas, IgxDateTimeEditorDirective } from '../directives/date-time-editor/public_api';
35-
import { DeprecateProperty } from '../core/deprecateDecorators';
3635
import { DateTimeUtil } from '../date-common/util/date-time.util';
3736
import { PickerHeaderOrientation as PickerHeaderOrientation } from '../date-common/types';
3837
import { IDatePickerValidationFailedEventArgs } from './date-picker.common';
@@ -843,9 +842,10 @@ export class IgxDatePickerComponent extends PickerBaseDirective implements Contr
843842
}
844843

845844
private subscribeToOverlayEvents() {
846-
this._overlayService.onOpening.pipe(...this._overlaySubFilter).subscribe((eventArgs) => {
847-
const args = eventArgs as IBaseCancelableBrowserEventArgs;
845+
this._overlayService.onOpening.pipe(...this._overlaySubFilter).subscribe((eventArgs: OverlayCancelableEventArgs) => {
846+
const args: IBaseCancelableBrowserEventArgs = { owner: this, event: eventArgs.event, cancel: eventArgs.cancel };
848847
this.opening.emit(args);
848+
eventArgs.cancel = args.cancel;
849849
if (args.cancel) {
850850
this._overlayService.detach(this._overlayId);
851851
return;
@@ -855,8 +855,9 @@ export class IgxDatePickerComponent extends PickerBaseDirective implements Contr
855855
this._collapsed = false;
856856
});
857857

858-
this._overlayService.onOpened.pipe(...this._overlaySubFilter).subscribe((eventArgs) => {
859-
this.opened.emit(eventArgs as IBaseEventArgs);
858+
this._overlayService.onOpened.pipe(...this._overlaySubFilter).subscribe((_eventArgs) => {
859+
const args: IBaseEventArgs = { owner: this };
860+
this.opened.emit(args);
860861
if (this._calendar?.daysView?.selectedDates) {
861862
this._calendar?.daysView?.focusActiveDate();
862863
return;
@@ -868,9 +869,10 @@ export class IgxDatePickerComponent extends PickerBaseDirective implements Contr
868869
}
869870
});
870871

871-
this._overlayService.onClosing.pipe(...this._overlaySubFilter).subscribe((eventArgs) => {
872-
const args = eventArgs as IBaseCancelableBrowserEventArgs;
872+
this._overlayService.onClosing.pipe(...this._overlaySubFilter).subscribe((eventArgs: OverlayCancelableEventArgs) => {
873+
const args: IBaseCancelableBrowserEventArgs = { owner: this, event: eventArgs.event, cancel: eventArgs.cancel };
873874
this.closing.emit(args);
875+
eventArgs.cancel = args.cancel;
874876
if (args.cancel) {
875877
return;
876878
}
@@ -880,8 +882,9 @@ export class IgxDatePickerComponent extends PickerBaseDirective implements Contr
880882
}
881883
});
882884

883-
this._overlayService.onClosed.pipe(...this._overlaySubFilter).subscribe((event) => {
884-
this.closed.emit(event as IBaseEventArgs);
885+
this._overlayService.onClosed.pipe(...this._overlaySubFilter).subscribe((_event) => {
886+
const args: IBaseEventArgs = { owner: this };
887+
this.closed.emit(args);
885888
this._overlayService.detach(this._overlayId);
886889
this._collapsed = true;
887890
this._overlayId = null;

0 commit comments

Comments
 (0)