|
6 | 6 | * found in the LICENSE file at https://angular.io/license
|
7 | 7 | */
|
8 | 8 |
|
9 |
| -import {Component} from '@angular/core'; |
| 9 | +import {Component, Inject} from '@angular/core'; |
10 | 10 | import {FormControl, FormsModule, ReactiveFormsModule} from '@angular/forms';
|
11 | 11 | import {MatSliderModule} from '@angular/material/slider';
|
12 | 12 | import {MatTabsModule} from '@angular/material/tabs';
|
13 | 13 | import {MatButtonToggleModule} from '@angular/material/button-toggle';
|
14 | 14 | import {MatCheckboxModule} from '@angular/material/checkbox';
|
| 15 | +import {MatDialog, MatDialogModule, MAT_DIALOG_DATA} from '@angular/material/dialog'; |
| 16 | +import {MatButtonModule} from '@angular/material/button'; |
| 17 | + |
| 18 | +interface DialogData { |
| 19 | + color: string; |
| 20 | + discrete: boolean; |
| 21 | + showTickMarks: boolean; |
| 22 | +} |
15 | 23 |
|
16 | 24 | @Component({
|
17 | 25 | selector: 'slider-demo',
|
18 | 26 | templateUrl: 'slider-demo.html',
|
19 | 27 | standalone: true,
|
20 | 28 | imports: [
|
21 | 29 | FormsModule,
|
22 |
| - MatCheckboxModule, |
| 30 | + MatButtonModule, |
23 | 31 | MatButtonToggleModule,
|
| 32 | + MatCheckboxModule, |
| 33 | + MatDialogModule, |
24 | 34 | MatSliderModule,
|
25 | 35 | MatTabsModule,
|
26 | 36 | ReactiveFormsModule,
|
@@ -49,6 +59,8 @@ export class SliderDemo {
|
49 | 59 |
|
50 | 60 | control = new FormControl('0');
|
51 | 61 |
|
| 62 | + constructor(public dialog: MatDialog) {} |
| 63 | + |
52 | 64 | updateValue(input: EventTarget | null): void {
|
53 | 65 | if (!input) {
|
54 | 66 | return;
|
@@ -91,4 +103,35 @@ export class SliderDemo {
|
91 | 103 | }
|
92 | 104 | (input as HTMLInputElement).checked ? this.control.disable() : this.control.enable();
|
93 | 105 | }
|
| 106 | + openDialog() { |
| 107 | + this.dialog.open(SliderDialogDemo, { |
| 108 | + data: { |
| 109 | + color: this.colorModel, |
| 110 | + discrete: this.discrete, |
| 111 | + showTickMarks: this.showTickMarks, |
| 112 | + }, |
| 113 | + }); |
| 114 | + } |
| 115 | +} |
| 116 | + |
| 117 | +@Component({ |
| 118 | + selector: 'slider-dialog-demo', |
| 119 | + styleUrls: ['slider-demo.css'], |
| 120 | + template: ` |
| 121 | + <h1 mat-dialog-title>Slider in a dialog</h1> |
| 122 | + <div class="demo-dialog-content" mat-dialog-content> |
| 123 | + <mat-slider [discrete]="this.data.discrete" [showTickMarks]="this.data.showTickMarks" [color]="this.data.color" step="10"> |
| 124 | + <input value="50" matSliderThumb> |
| 125 | + </mat-slider> |
| 126 | + <mat-slider [discrete]="this.data.discrete" [showTickMarks]="this.data.showTickMarks" [color]="this.data.color" step="10"> |
| 127 | + <input value="30" matSliderStartThumb> |
| 128 | + <input value="70" matSliderEndThumb> |
| 129 | + </mat-slider> |
| 130 | + </div> |
| 131 | + `, |
| 132 | + standalone: true, |
| 133 | + imports: [MatDialogModule, MatSliderModule], |
| 134 | +}) |
| 135 | +export class SliderDialogDemo { |
| 136 | + constructor(@Inject(MAT_DIALOG_DATA) public data: DialogData) {} |
94 | 137 | }
|
0 commit comments