Skip to content

Commit de6848e

Browse files
authored
test(material/slider): add slider dialog demo (#26151)
* test(material/slider): add slider dialog demo * fixup! test(material/slider): add slider dialog demo
1 parent bcd9487 commit de6848e

File tree

4 files changed

+61
-2
lines changed

4 files changed

+61
-2
lines changed

src/dev-app/slider/BUILD.bazel

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,10 @@ ng_module(
1010
":slider_demo_scss",
1111
],
1212
deps = [
13+
"//src/material/button",
1314
"//src/material/button-toggle",
1415
"//src/material/checkbox",
16+
"//src/material/dialog",
1517
"//src/material/slider",
1618
"//src/material/tabs",
1719
"@npm//@angular/forms",

src/dev-app/slider/slider-demo.html

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -180,4 +180,10 @@
180180
<input matSliderEndThumb #ngEndThumb4 />
181181
</mat-slider>
182182
</mat-tab>
183+
184+
<mat-tab label="Slider in a dialog">
185+
<div class="demo-dialog-trigger-container">
186+
<button mat-raised-button [color]="colorModel" (click)="openDialog()">Open dialog</button>
187+
</div>
188+
</mat-tab>
183189
</mat-tab-group>

src/dev-app/slider/slider-demo.scss

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,3 +46,11 @@
4646
min-width: 300px;
4747
margin-top: 30px;
4848
}
49+
50+
.demo-dialog-trigger-container {
51+
padding: 25px 0;
52+
text-align: center;
53+
}
54+
.demo-dialog-content {
55+
overflow: visible;
56+
}

src/dev-app/slider/slider-demo.ts

Lines changed: 45 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,21 +6,31 @@
66
* found in the LICENSE file at https://angular.io/license
77
*/
88

9-
import {Component} from '@angular/core';
9+
import {Component, Inject} from '@angular/core';
1010
import {FormControl, FormsModule, ReactiveFormsModule} from '@angular/forms';
1111
import {MatSliderModule} from '@angular/material/slider';
1212
import {MatTabsModule} from '@angular/material/tabs';
1313
import {MatButtonToggleModule} from '@angular/material/button-toggle';
1414
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+
}
1523

1624
@Component({
1725
selector: 'slider-demo',
1826
templateUrl: 'slider-demo.html',
1927
standalone: true,
2028
imports: [
2129
FormsModule,
22-
MatCheckboxModule,
30+
MatButtonModule,
2331
MatButtonToggleModule,
32+
MatCheckboxModule,
33+
MatDialogModule,
2434
MatSliderModule,
2535
MatTabsModule,
2636
ReactiveFormsModule,
@@ -49,6 +59,8 @@ export class SliderDemo {
4959

5060
control = new FormControl('0');
5161

62+
constructor(public dialog: MatDialog) {}
63+
5264
updateValue(input: EventTarget | null): void {
5365
if (!input) {
5466
return;
@@ -91,4 +103,35 @@ export class SliderDemo {
91103
}
92104
(input as HTMLInputElement).checked ? this.control.disable() : this.control.enable();
93105
}
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) {}
94137
}

0 commit comments

Comments
 (0)