Skip to content

Commit

Permalink
docs(material/dialog): Update dialog examples (#29242)
Browse files Browse the repository at this point in the history
(cherry picked from commit 2c0833c)
  • Loading branch information
mmalerba committed Jun 13, 2024
1 parent 6312961 commit 42f1a0e
Show file tree
Hide file tree
Showing 8 changed files with 57 additions and 45 deletions.
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
import {Component} from '@angular/core';
import {ChangeDetectionStrategy, Component, inject} from '@angular/core';
import {MatButtonModule} from '@angular/material/button';
import {
MatDialog,
MatDialogRef,
MatDialogActions,
MatDialogClose,
MatDialogTitle,
MatDialogContent,
MatDialogRef,
MatDialogTitle,
} from '@angular/material/dialog';
import {MatButtonModule} from '@angular/material/button';

/**
* @title Dialog Animations
Expand All @@ -18,9 +18,10 @@ import {MatButtonModule} from '@angular/material/button';
templateUrl: 'dialog-animations-example.html',
standalone: true,
imports: [MatButtonModule],
changeDetection: ChangeDetectionStrategy.OnPush,
})
export class DialogAnimationsExample {
constructor(public dialog: MatDialog) {}
readonly dialog = inject(MatDialog);

openDialog(enterAnimationDuration: string, exitAnimationDuration: string): void {
this.dialog.open(DialogAnimationsExampleDialog, {
Expand All @@ -36,7 +37,8 @@ export class DialogAnimationsExample {
templateUrl: 'dialog-animations-example-dialog.html',
standalone: true,
imports: [MatButtonModule, MatDialogActions, MatDialogClose, MatDialogTitle, MatDialogContent],
changeDetection: ChangeDetectionStrategy.OnPush,
})
export class DialogAnimationsExampleDialog {
constructor(public dialogRef: MatDialogRef<DialogAnimationsExampleDialog>) {}
readonly dialogRef = inject(MatDialogRef<DialogAnimationsExampleDialog>);
}
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import {Component} from '@angular/core';
import {MatDialog, MatDialogModule} from '@angular/material/dialog';
import {ChangeDetectionStrategy, Component, inject} from '@angular/core';
import {MatButtonModule} from '@angular/material/button';
import {MatDialog, MatDialogModule} from '@angular/material/dialog';

/**
* @title Dialog with header, scrollable content and actions
Expand All @@ -10,9 +10,10 @@ import {MatButtonModule} from '@angular/material/button';
templateUrl: 'dialog-content-example.html',
standalone: true,
imports: [MatButtonModule, MatDialogModule],
changeDetection: ChangeDetectionStrategy.OnPush,
})
export class DialogContentExample {
constructor(public dialog: MatDialog) {}
readonly dialog = inject(MatDialog);

openDialog() {
const dialogRef = this.dialog.open(DialogContentExampleDialog);
Expand All @@ -28,5 +29,6 @@ export class DialogContentExample {
templateUrl: 'dialog-content-example-dialog.html',
standalone: true,
imports: [MatDialogModule, MatButtonModule],
changeDetection: ChangeDetectionStrategy.OnPush,
})
export class DialogContentExampleDialog {}
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
import {Component} from '@angular/core';
import {ChangeDetectionStrategy, Component, inject} from '@angular/core';
import {MatButtonModule} from '@angular/material/button';
import {
MatDialog,
MatDialogActions,
MatDialogClose,
MatDialogContent,
MatDialogTitle,
} from '@angular/material/dialog';
import {MatButtonModule} from '@angular/material/button';

/**
* @title Dialog elements
Expand All @@ -16,9 +16,10 @@ import {MatButtonModule} from '@angular/material/button';
templateUrl: 'dialog-elements-example.html',
standalone: true,
imports: [MatButtonModule],
changeDetection: ChangeDetectionStrategy.OnPush,
})
export class DialogElementsExample {
constructor(public dialog: MatDialog) {}
readonly dialog = inject(MatDialog);

openDialog() {
this.dialog.open(DialogElementsExampleDialog);
Expand All @@ -30,5 +31,6 @@ export class DialogElementsExample {
templateUrl: 'dialog-elements-example-dialog.html',
standalone: true,
imports: [MatDialogTitle, MatDialogContent, MatDialogActions, MatDialogClose, MatButtonModule],
changeDetection: ChangeDetectionStrategy.OnPush,
})
export class DialogElementsExampleDialog {}
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
import {Component, ViewChild} from '@angular/core';
import {ChangeDetectionStrategy, Component, inject, viewChild} from '@angular/core';
import {MatButtonModule} from '@angular/material/button';
import {
MatDialog,
MatDialogActions,
MatDialogClose,
MatDialogContent,
} from '@angular/material/dialog';
import {MatMenuTrigger, MatMenuModule} from '@angular/material/menu';
import {MatButtonModule} from '@angular/material/button';
import {MatMenuModule, MatMenuTrigger} from '@angular/material/menu';
/**
* @title Dialog launched from a menu
*/
Expand All @@ -15,19 +15,20 @@ import {MatButtonModule} from '@angular/material/button';
templateUrl: 'dialog-from-menu-example.html',
standalone: true,
imports: [MatButtonModule, MatMenuModule],
changeDetection: ChangeDetectionStrategy.OnPush,
})
export class DialogFromMenuExample {
@ViewChild('menuTrigger') menuTrigger: MatMenuTrigger;
readonly menuTrigger = viewChild.required(MatMenuTrigger);

constructor(public dialog: MatDialog) {}
readonly dialog = inject(MatDialog);

openDialog() {
// #docregion focus-restoration
const dialogRef = this.dialog.open(DialogFromMenuExampleDialog, {restoreFocus: false});

// Manually restore focus to the menu trigger since the element that
// opens the dialog won't be in the DOM any more when the dialog closes.
dialogRef.afterClosed().subscribe(() => this.menuTrigger.focus());
dialogRef.afterClosed().subscribe(() => this.menuTrigger().focus());
// #enddocregion focus-restoration
}
}
Expand All @@ -37,5 +38,6 @@ export class DialogFromMenuExample {
templateUrl: 'dialog-from-menu-example-dialog.html',
standalone: true,
imports: [MatDialogContent, MatDialogActions, MatDialogClose, MatButtonModule],
changeDetection: ChangeDetectionStrategy.OnPush,
})
export class DialogFromMenuExampleDialog {}
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import {Component, TemplateRef, ViewChild} from '@angular/core';
import {ChangeDetectionStrategy, Component, TemplateRef, inject, viewChild} from '@angular/core';
import {MatDialog, MatDialogConfig} from '@angular/material/dialog';

/**
Expand All @@ -8,13 +8,14 @@ import {MatDialog, MatDialogConfig} from '@angular/material/dialog';
selector: 'dialog-harness-example',
templateUrl: 'dialog-harness-example.html',
standalone: true,
changeDetection: ChangeDetectionStrategy.OnPush,
})
export class DialogHarnessExample {
@ViewChild(TemplateRef) dialogTemplate: TemplateRef<any>;
readonly dialogTemplate = viewChild.required(TemplateRef);

constructor(readonly dialog: MatDialog) {}
readonly dialog = inject(MatDialog);

open(config?: MatDialogConfig) {
return this.dialog.open(this.dialogTemplate, config);
return this.dialog.open(this.dialogTemplate(), config);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,10 @@ <h2 mat-dialog-title>Hi {{data.name}}</h2>
<p>What's your favorite animal?</p>
<mat-form-field>
<mat-label>Favorite Animal</mat-label>
<input matInput [(ngModel)]="data.animal">
<input matInput [(ngModel)]="animal" />
</mat-form-field>
</mat-dialog-content>
<mat-dialog-actions>
<button mat-button (click)="onNoClick()">No Thanks</button>
<button mat-button [mat-dialog-close]="data.animal" cdkFocusInitial>Ok</button>
<button mat-button [mat-dialog-close]="animal()" cdkFocusInitial>Ok</button>
</mat-dialog-actions>
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,15 @@
<li>
<mat-form-field>
<mat-label>What's your name?</mat-label>
<input matInput [(ngModel)]="name">
<input matInput [(ngModel)]="name" />
</mat-form-field>
</li>
<li>
<button mat-raised-button (click)="openDialog()">Pick one</button>
</li>
@if (animal) {
<li>You chose: <em>{{animal}}</em></li>
@if (animal()) {
<li>
You chose: <em>{{animal()}}</em>
</li>
}
</ol>
Original file line number Diff line number Diff line change
@@ -1,17 +1,17 @@
import {Component, Inject} from '@angular/core';
import {ChangeDetectionStrategy, Component, inject, model, signal} from '@angular/core';
import {FormsModule} from '@angular/forms';
import {MatButtonModule} from '@angular/material/button';
import {
MatDialog,
MAT_DIALOG_DATA,
MatDialogRef,
MatDialogTitle,
MatDialogContent,
MatDialog,
MatDialogActions,
MatDialogClose,
MatDialogContent,
MatDialogRef,
MatDialogTitle,
} from '@angular/material/dialog';
import {MatButtonModule} from '@angular/material/button';
import {FormsModule} from '@angular/forms';
import {MatInputModule} from '@angular/material/input';
import {MatFormFieldModule} from '@angular/material/form-field';
import {MatInputModule} from '@angular/material/input';

export interface DialogData {
animal: string;
Expand All @@ -26,21 +26,23 @@ export interface DialogData {
templateUrl: 'dialog-overview-example.html',
standalone: true,
imports: [MatFormFieldModule, MatInputModule, FormsModule, MatButtonModule],
changeDetection: ChangeDetectionStrategy.OnPush,
})
export class DialogOverviewExample {
animal: string;
name: string;

constructor(public dialog: MatDialog) {}
readonly animal = signal('');
readonly name = model('');
readonly dialog = inject(MatDialog);

openDialog(): void {
const dialogRef = this.dialog.open(DialogOverviewExampleDialog, {
data: {name: this.name, animal: this.animal},
data: {name: this.name(), animal: this.animal()},
});

dialogRef.afterClosed().subscribe(result => {
console.log('The dialog was closed');
this.animal = result;
if (result !== undefined) {
this.animal.set(result);
}
});
}
}
Expand All @@ -61,10 +63,9 @@ export class DialogOverviewExample {
],
})
export class DialogOverviewExampleDialog {
constructor(
public dialogRef: MatDialogRef<DialogOverviewExampleDialog>,
@Inject(MAT_DIALOG_DATA) public data: DialogData,
) {}
readonly dialogRef = inject(MatDialogRef<DialogOverviewExampleDialog>);
readonly data = inject<DialogData>(MAT_DIALOG_DATA);
readonly animal = model(this.data.animal);

onNoClick(): void {
this.dialogRef.close();
Expand Down

0 comments on commit 42f1a0e

Please sign in to comment.