Skip to content

Commit 7b0657b

Browse files
committed
refactor(dialog): normalize event names
A while ago we made the output names of components consistent (e.g. #8053 and #8052), however that didn't cover the methods on the dialog. These changes align the dialog event names with the ones on the various components.
1 parent 9062640 commit 7b0657b

File tree

8 files changed

+98
-32
lines changed

8 files changed

+98
-32
lines changed

src/cdk-experimental/dialog/dialog-ref.ts

Lines changed: 31 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ export class DialogRef<T, R = any> {
4444
});
4545
}
4646

47-
this.beforeClose().subscribe(() => {
47+
this.beforeClosed().subscribe(() => {
4848
this._overlayRef.detachBackdrop();
4949
});
5050

@@ -127,22 +127,49 @@ export class DialogRef<T, R = any> {
127127
}
128128

129129
/** Gets an observable that emits when dialog begins opening. */
130-
beforeOpen(): Observable<void> {
130+
beforeOpened(): Observable<void> {
131131
return this._containerInstance._beforeEnter.asObservable();
132132
}
133133

134134
/** Gets an observable that emits when dialog is finished opening. */
135-
afterOpen(): Observable<void> {
135+
afterOpened(): Observable<void> {
136136
return this._containerInstance._afterEnter.asObservable();
137137
}
138138

139139
/** Gets an observable that emits when dialog begins closing. */
140-
beforeClose(): Observable<R | undefined> {
140+
beforeClosed(): Observable<R | undefined> {
141141
return this._containerInstance._beforeExit.pipe(map(() => this._result));
142142
}
143143

144144
/** Gets an observable that emits when dialog is finished closing. */
145145
afterClosed(): Observable<R | undefined> {
146146
return this._containerInstance._afterExit.pipe(map(() => this._result));
147147
}
148+
149+
/**
150+
* Gets an observable that emits when dialog is finished opening.
151+
* @deprecated Use `afterOpened` instead.
152+
* @deletion-target 7.0.0
153+
*/
154+
afterOpen(): Observable<void> {
155+
return this.afterOpened();
156+
}
157+
158+
/**
159+
* Gets an observable that emits when dialog begins opening.
160+
* @deprecated Use `beforeOpened` instead.
161+
* @deletion-target 7.0.0
162+
*/
163+
beforeOpen(): Observable<void> {
164+
return this.beforeOpened();
165+
}
166+
167+
/**
168+
* Gets an observable that emits when dialog begins closing.
169+
* @deprecated Use `beforeClosed` instead.
170+
* @deletion-target 7.0.0
171+
*/
172+
beforeClose(): Observable<R | undefined> {
173+
return this.beforeClosed();
174+
}
148175
}

src/cdk-experimental/dialog/dialog.spec.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -108,7 +108,7 @@ describe('Dialog', () => {
108108
const dialogRef = dialog.openFromComponent(PizzaMsg, {viewContainerRef: testViewContainerRef});
109109
const spy = jasmine.createSpy('afterOpen spy');
110110

111-
dialogRef.afterOpen().subscribe(spy);
111+
dialogRef.afterOpened().subscribe(spy);
112112

113113
viewContainerFixture.detectChanges();
114114

@@ -203,7 +203,7 @@ describe('Dialog', () => {
203203
.not.toBeNull('dialog container exists when beforeClose is called');
204204
});
205205

206-
dialogRef.beforeClose().subscribe(beforeCloseHandler);
206+
dialogRef.beforeClosed().subscribe(beforeCloseHandler);
207207
dialogRef.close('Bulbasaur');
208208
viewContainerFixture.detectChanges();
209209
flush();
@@ -298,7 +298,7 @@ describe('Dialog', () => {
298298
}));
299299

300300
it('should notify the observers if a dialog has been opened', () => {
301-
dialog.afterOpen.subscribe(ref => {
301+
dialog.afterOpened.subscribe(ref => {
302302
expect(dialog.openFromComponent(PizzaMsg, {
303303
viewContainerRef: testViewContainerRef
304304
})).toBe(ref);

src/cdk-experimental/dialog/dialog.ts

Lines changed: 18 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -53,10 +53,19 @@ export class Dialog {
5353
this._afterAllClosed : this._afterAllClosed.pipe(startWith(undefined)));
5454

5555
/** Stream that emits when a dialog is opened. */
56+
get afterOpened(): Subject<DialogRef<any>> {
57+
return this._parentDialog ? this._parentDialog.afterOpened : this._afterOpened;
58+
}
59+
_afterOpened: Subject<DialogRef<any>> = new Subject();
60+
61+
/**
62+
* Stream that emits when a dialog is opened.
63+
* @deprecated Use `afterOpened` instead.
64+
* @deletion-target 7.0.0
65+
*/
5666
get afterOpen(): Subject<DialogRef<any>> {
57-
return this._parentDialog ? this._parentDialog.afterOpen : this._afterOpen;
67+
return this.afterOpened;
5868
}
59-
_afterOpen: Subject<DialogRef<any>> = new Subject();
6069

6170
/** Stream that emits when a dialog is opened. */
6271
get openDialogs(): DialogRef<any>[] {
@@ -130,14 +139,17 @@ export class Dialog {
130139
private registerDialogRef(dialogRef: DialogRef<any>): void {
131140
this.openDialogs.push(dialogRef);
132141

133-
let dialogOpenSub = dialogRef.afterOpen().subscribe(() => {
142+
const dialogOpenSub = dialogRef.afterOpened().subscribe(() => {
134143
this.afterOpen.next(dialogRef);
135144
dialogOpenSub.unsubscribe();
136145
});
137146

138-
let dialogCloseSub = dialogRef.afterClosed().subscribe(() => {
139-
let dialogIdx = this._openDialogs.indexOf(dialogRef);
140-
if (dialogIdx !== -1) { this._openDialogs.splice(dialogIdx, 1); }
147+
const dialogCloseSub = dialogRef.afterClosed().subscribe(() => {
148+
let dialogIndex = this._openDialogs.indexOf(dialogRef);
149+
150+
if (dialogIndex > -1) {
151+
this._openDialogs.splice(dialogIndex, 1);
152+
}
141153

142154
if (!this._openDialogs.length) {
143155
this._afterAllClosedBase.next();

src/demo-app/dialog/dialog-demo.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ export class DialogDemo {
6666
openJazz() {
6767
this.dialogRef = this.dialog.open(JazzDialog, this.config);
6868

69-
this.dialogRef.beforeClose().subscribe((result: string) => {
69+
this.dialogRef.beforeClosed().subscribe((result: string) => {
7070
this.lastBeforeCloseResult = result;
7171
});
7272
this.dialogRef.afterClosed().subscribe((result: string) => {

src/lib/dialog/dialog-ref.ts

Lines changed: 28 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -31,13 +31,13 @@ export class MatDialogRef<T, R = any> {
3131
disableClose: boolean | undefined = this._containerInstance._config.disableClose;
3232

3333
/** Subject for notifying the user that the dialog has finished opening. */
34-
private readonly _afterOpen = new Subject<void>();
34+
private readonly _afterOpened = new Subject<void>();
3535

3636
/** Subject for notifying the user that the dialog has finished closing. */
3737
private readonly _afterClosed = new Subject<R | undefined>();
3838

3939
/** Subject for notifying the user that the dialog has started closing. */
40-
private readonly _beforeClose = new Subject<R | undefined>();
40+
private readonly _beforeClosed = new Subject<R | undefined>();
4141

4242
/** Result to be passed to afterClosed. */
4343
private _result: R | undefined;
@@ -60,8 +60,8 @@ export class MatDialogRef<T, R = any> {
6060
take(1)
6161
)
6262
.subscribe(() => {
63-
this._afterOpen.next();
64-
this._afterOpen.complete();
63+
this._afterOpened.next();
64+
this._afterOpened.complete();
6565
});
6666

6767
// Dispose overlay when closing animation is complete
@@ -106,8 +106,8 @@ export class MatDialogRef<T, R = any> {
106106
take(1)
107107
)
108108
.subscribe(() => {
109-
this._beforeClose.next(dialogResult);
110-
this._beforeClose.complete();
109+
this._beforeClosed.next(dialogResult);
110+
this._beforeClosed.complete();
111111
this._overlayRef.detachBackdrop();
112112
});
113113

@@ -117,8 +117,8 @@ export class MatDialogRef<T, R = any> {
117117
/**
118118
* Gets an observable that is notified when the dialog is finished opening.
119119
*/
120-
afterOpen(): Observable<void> {
121-
return this._afterOpen.asObservable();
120+
afterOpened(): Observable<void> {
121+
return this._afterOpened.asObservable();
122122
}
123123

124124
/**
@@ -131,8 +131,8 @@ export class MatDialogRef<T, R = any> {
131131
/**
132132
* Gets an observable that is notified when the dialog has started closing.
133133
*/
134-
beforeClose(): Observable<R | undefined> {
135-
return this._beforeClose.asObservable();
134+
beforeClosed(): Observable<R | undefined> {
135+
return this._beforeClosed.asObservable();
136136
}
137137

138138
/**
@@ -184,6 +184,24 @@ export class MatDialogRef<T, R = any> {
184184
return this;
185185
}
186186

187+
/**
188+
* Gets an observable that is notified when the dialog is finished opening.
189+
* @deprecated Use `afterOpened` instead.
190+
* @deletion-target 7.0.0
191+
*/
192+
afterOpen(): Observable<void> {
193+
return this.afterOpened();
194+
}
195+
196+
/**
197+
* Gets an observable that is notified when the dialog has started closing.
198+
* @deprecated Use `beforeClosed` instead.
199+
* @deletion-target 7.0.0
200+
*/
201+
beforeClose(): Observable<R | undefined> {
202+
return this.beforeClosed();
203+
}
204+
187205
/** Fetches the position strategy object from the overlay ref. */
188206
private _getPositionStrategy(): GlobalPositionStrategy {
189207
return this._overlayRef.getConfig().positionStrategy as GlobalPositionStrategy;

src/lib/dialog/dialog.spec.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -117,7 +117,7 @@ describe('MatDialog', () => {
117117
const dialogRef = dialog.open(PizzaMsg, {viewContainerRef: testViewContainerRef});
118118
const spy = jasmine.createSpy('afterOpen spy');
119119

120-
dialogRef.afterOpen().subscribe(spy);
120+
dialogRef.afterOpened().subscribe(spy);
121121

122122
viewContainerFixture.detectChanges();
123123

@@ -200,7 +200,7 @@ describe('MatDialog', () => {
200200
.not.toBeNull('dialog container exists when beforeClose is called');
201201
});
202202

203-
dialogRef.beforeClose().subscribe(beforeCloseHandler);
203+
dialogRef.beforeClosed().subscribe(beforeCloseHandler);
204204
dialogRef.close('Bulbasaur');
205205
viewContainerFixture.detectChanges();
206206
flush();
@@ -303,7 +303,7 @@ describe('MatDialog', () => {
303303
}));
304304

305305
it('should notify the observers if a dialog has been opened', () => {
306-
dialog.afterOpen.subscribe(ref => {
306+
dialog.afterOpened.subscribe(ref => {
307307
expect(dialog.open(PizzaMsg, {
308308
viewContainerRef: testViewContainerRef
309309
})).toBe(ref);

src/lib/dialog/dialog.ts

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ export const MAT_DIALOG_SCROLL_STRATEGY_PROVIDER = {
6969
export class MatDialog {
7070
private _openDialogsAtThisLevel: MatDialogRef<any>[] = [];
7171
private readonly _afterAllClosedAtThisLevel = new Subject<void>();
72-
private readonly _afterOpenAtThisLevel = new Subject<MatDialogRef<any>>();
72+
private readonly _afterOpenedAtThisLevel = new Subject<MatDialogRef<any>>();
7373
private _ariaHiddenElements = new Map<Element, string|null>();
7474

7575
/** Keeps track of the currently-open dialogs. */
@@ -78,8 +78,17 @@ export class MatDialog {
7878
}
7979

8080
/** Stream that emits when a dialog has been opened. */
81+
get afterOpened(): Subject<MatDialogRef<any>> {
82+
return this._parentDialog ? this._parentDialog.afterOpened : this._afterOpenedAtThisLevel;
83+
}
84+
85+
/**
86+
* Stream that emits when a dialog has been opened.
87+
* @deprecated Use `afterOpened` instead.
88+
* @deletion-target 7.0.0
89+
*/
8190
get afterOpen(): Subject<MatDialogRef<any>> {
82-
return this._parentDialog ? this._parentDialog.afterOpen : this._afterOpenAtThisLevel;
91+
return this.afterOpened;
8392
}
8493

8594
get _afterAllClosed() {
@@ -134,7 +143,7 @@ export class MatDialog {
134143

135144
this.openDialogs.push(dialogRef);
136145
dialogRef.afterClosed().subscribe(() => this._removeOpenDialog(dialogRef));
137-
this.afterOpen.next(dialogRef);
146+
this.afterOpened.next(dialogRef);
138147

139148
return dialogRef;
140149
}

src/lib/select/select.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -417,8 +417,8 @@ export class MatSelect extends _MatSelectMixinBase implements AfterContentInit,
417417
.pipe(take(1), switchMap(() => this.optionSelectionChanges));
418418
});
419419

420-
/** Event emitted when the select panel has been toggled. */
421-
@Output() readonly openedChange: EventEmitter<boolean> = new EventEmitter<boolean>();
420+
/** Event emitted when the select panel has been toggled. */
421+
@Output() readonly openedChange: EventEmitter<boolean> = new EventEmitter<boolean>();
422422

423423
/** Event emitted when the select has been opened. */
424424
@Output('opened') readonly _openedStream: Observable<void> =

0 commit comments

Comments
 (0)