Skip to content

Commit

Permalink
test(material/slider): add slider dialog demo (#26151)
Browse files Browse the repository at this point in the history
* test(material/slider): add slider dialog demo

* fixup! test(material/slider): add slider dialog demo
  • Loading branch information
wagnermaciel committed Dec 12, 2022
1 parent bcd9487 commit de6848e
Show file tree
Hide file tree
Showing 4 changed files with 61 additions and 2 deletions.
2 changes: 2 additions & 0 deletions src/dev-app/slider/BUILD.bazel
Expand Up @@ -10,8 +10,10 @@ ng_module(
":slider_demo_scss",
],
deps = [
"//src/material/button",
"//src/material/button-toggle",
"//src/material/checkbox",
"//src/material/dialog",
"//src/material/slider",
"//src/material/tabs",
"@npm//@angular/forms",
Expand Down
6 changes: 6 additions & 0 deletions src/dev-app/slider/slider-demo.html
Expand Up @@ -180,4 +180,10 @@
<input matSliderEndThumb #ngEndThumb4 />
</mat-slider>
</mat-tab>

<mat-tab label="Slider in a dialog">
<div class="demo-dialog-trigger-container">
<button mat-raised-button [color]="colorModel" (click)="openDialog()">Open dialog</button>
</div>
</mat-tab>
</mat-tab-group>
8 changes: 8 additions & 0 deletions src/dev-app/slider/slider-demo.scss
Expand Up @@ -46,3 +46,11 @@
min-width: 300px;
margin-top: 30px;
}

.demo-dialog-trigger-container {
padding: 25px 0;
text-align: center;
}
.demo-dialog-content {
overflow: visible;
}
47 changes: 45 additions & 2 deletions src/dev-app/slider/slider-demo.ts
Expand Up @@ -6,21 +6,31 @@
* found in the LICENSE file at https://angular.io/license
*/

import {Component} from '@angular/core';
import {Component, Inject} from '@angular/core';
import {FormControl, FormsModule, ReactiveFormsModule} from '@angular/forms';
import {MatSliderModule} from '@angular/material/slider';
import {MatTabsModule} from '@angular/material/tabs';
import {MatButtonToggleModule} from '@angular/material/button-toggle';
import {MatCheckboxModule} from '@angular/material/checkbox';
import {MatDialog, MatDialogModule, MAT_DIALOG_DATA} from '@angular/material/dialog';
import {MatButtonModule} from '@angular/material/button';

interface DialogData {
color: string;
discrete: boolean;
showTickMarks: boolean;
}

@Component({
selector: 'slider-demo',
templateUrl: 'slider-demo.html',
standalone: true,
imports: [
FormsModule,
MatCheckboxModule,
MatButtonModule,
MatButtonToggleModule,
MatCheckboxModule,
MatDialogModule,
MatSliderModule,
MatTabsModule,
ReactiveFormsModule,
Expand Down Expand Up @@ -49,6 +59,8 @@ export class SliderDemo {

control = new FormControl('0');

constructor(public dialog: MatDialog) {}

updateValue(input: EventTarget | null): void {
if (!input) {
return;
Expand Down Expand Up @@ -91,4 +103,35 @@ export class SliderDemo {
}
(input as HTMLInputElement).checked ? this.control.disable() : this.control.enable();
}
openDialog() {
this.dialog.open(SliderDialogDemo, {
data: {
color: this.colorModel,
discrete: this.discrete,
showTickMarks: this.showTickMarks,
},
});
}
}

@Component({
selector: 'slider-dialog-demo',
styleUrls: ['slider-demo.css'],
template: `
<h1 mat-dialog-title>Slider in a dialog</h1>
<div class="demo-dialog-content" mat-dialog-content>
<mat-slider [discrete]="this.data.discrete" [showTickMarks]="this.data.showTickMarks" [color]="this.data.color" step="10">
<input value="50" matSliderThumb>
</mat-slider>
<mat-slider [discrete]="this.data.discrete" [showTickMarks]="this.data.showTickMarks" [color]="this.data.color" step="10">
<input value="30" matSliderStartThumb>
<input value="70" matSliderEndThumb>
</mat-slider>
</div>
`,
standalone: true,
imports: [MatDialogModule, MatSliderModule],
})
export class SliderDialogDemo {
constructor(@Inject(MAT_DIALOG_DATA) public data: DialogData) {}
}

0 comments on commit de6848e

Please sign in to comment.