Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
<input matStartDate placeholder="Start date" formControlName="start">
<input matEndDate placeholder="End date" formControlName="end">
</mat-date-range-input>
<mat-hint>MM/DD/YYYY – MM/DD/YYYY</mat-hint>
<mat-datepicker-toggle matSuffix [for]="campaignOnePicker"></mat-datepicker-toggle>
<mat-date-range-picker #campaignOnePicker></mat-date-range-picker>
</mat-form-field>
Expand All @@ -23,5 +24,6 @@
<input matEndDate placeholder="End date" formControlName="end">
</mat-date-range-input>
<mat-datepicker-toggle matSuffix [for]="campaignTwoPicker"></mat-datepicker-toggle>
<mat-hint>MM/DD/YYYY – MM/DD/YYYY</mat-hint>
<mat-date-range-picker #campaignTwoPicker></mat-date-range-picker>
</mat-form-field>
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
<input matStartDate formControlName="start" placeholder="Start date">
<input matEndDate formControlName="end" placeholder="End date">
</mat-date-range-input>
<mat-hint>MM/DD/YYYY – MM/DD/YYYY</mat-hint>
<mat-datepicker-toggle matSuffix [for]="picker"></mat-datepicker-toggle>
<mat-date-range-picker #picker></mat-date-range-picker>

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
<input matStartDate placeholder="Start date">
<input matEndDate placeholder="End date">
</mat-date-range-input>
<mat-hint>MM/DD/YYYY – MM/DD/YYYY</mat-hint>
<mat-datepicker-toggle matSuffix [for]="picker"></mat-datepicker-toggle>
<mat-date-range-picker #picker></mat-date-range-picker>
</mat-form-field>
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
<input matStartDate placeholder="Start date">
<input matEndDate placeholder="End date">
</mat-date-range-input>
<mat-hint>MM/DD/YYYY – MM/DD/YYYY</mat-hint>
<mat-datepicker-toggle matSuffix [for]="picker"></mat-datepicker-toggle>
<mat-date-range-picker #picker></mat-date-range-picker>
</mat-form-field>
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
<mat-form-field appearance="fill" class="example-form-field">
<mat-label>Choose a date</mat-label>
<input matInput [matDatepicker]="datepicker">
<mat-hint>MM/DD/YYYY</mat-hint>
<mat-datepicker-toggle matSuffix [for]="datepicker"></mat-datepicker-toggle>
<!-- #docregion datepicker-actions -->
<mat-datepicker #datepicker>
Expand All @@ -18,6 +19,7 @@
<input matStartDate placeholder="Start date">
<input matEndDate placeholder="End date">
</mat-date-range-input>
<mat-hint>MM/DD/YYYY – MM/DD/YYYY</mat-hint>
<mat-datepicker-toggle matSuffix [for]="rangePicker"></mat-datepicker-toggle>
<!-- #docregion date-range-picker-actions -->
<mat-date-range-picker #rangePicker>
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
<mat-form-field class="example-full-width" appearance="fill">
<mat-label>Choose a date</mat-label>
<input matInput [matDatepicker]="picker">
<mat-hint>MM/DD/YYYY</mat-hint>
<mat-datepicker #picker></mat-datepicker>
</mat-form-field>
<button mat-raised-button (click)="picker.open()">Open</button>
Original file line number Diff line number Diff line change
@@ -1,13 +1,15 @@
<mat-form-field color="accent" appearance="fill">
<mat-label>Inherited calendar color</mat-label>
<input matInput [matDatepicker]="picker1">
<mat-hint>MM/DD/YYYY</mat-hint>
<mat-datepicker-toggle matSuffix [for]="picker1"></mat-datepicker-toggle>
<mat-datepicker #picker1></mat-datepicker>
</mat-form-field>

<mat-form-field color="accent" appearance="fill">
<mat-label>Custom calendar color</mat-label>
<input matInput [matDatepicker]="picker2">
<mat-hint>MM/DD/YYYY</mat-hint>
<mat-datepicker-toggle matSuffix [for]="picker2"></mat-datepicker-toggle>
<mat-datepicker #picker2 color="primary"></mat-datepicker>
</mat-form-field>
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
<mat-form-field appearance="fill">
<mat-label>Custom calendar header</mat-label>
<input matInput [matDatepicker]="picker">
<mat-hint>MM/DD/YYYY</mat-hint>
<mat-datepicker-toggle matSuffix [for]="picker"></mat-datepicker-toggle>
<mat-datepicker #picker [calendarHeaderComponent]="exampleHeader"></mat-datepicker>
</mat-form-field>
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
<mat-form-field class="example-full-width" appearance="fill">
<mat-label>Choose a date</mat-label>
<input matInput [matDatepicker]="picker">
<mat-hint>MM/DD/YYYY</mat-hint>
<mat-datepicker-toggle matSuffix [for]="picker">
<mat-icon matDatepickerToggleIcon>keyboard_arrow_down</mat-icon>
</mat-datepicker-toggle>
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
<mat-form-field class="example-full-width" appearance="fill">
<mat-label>Choose a date</mat-label>
<input matInput [matDatepicker]="picker">
<mat-hint>MM/DD/YYYY</mat-hint>
<mat-datepicker-toggle matSuffix [for]="picker"></mat-datepicker-toggle>
<mat-datepicker [dateClass]="dateClass" #picker></mat-datepicker>
</mat-form-field>
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
<mat-form-field appearance="fill">
<mat-label>Completely disabled</mat-label>
<input matInput [matDatepicker]="dp1" disabled>
<mat-hint>MM/DD/YYYY</mat-hint>
<mat-datepicker-toggle matSuffix [for]="dp1"></mat-datepicker-toggle>
<mat-datepicker #dp1></mat-datepicker>
</mat-form-field>
Expand All @@ -11,6 +12,7 @@
<mat-form-field appearance="fill">
<mat-label>Popup disabled</mat-label>
<input matInput [matDatepicker]="dp2">
<mat-hint>MM/DD/YYYY</mat-hint>
<mat-datepicker-toggle matSuffix [for]="dp2" disabled></mat-datepicker-toggle>
<mat-datepicker #dp2></mat-datepicker>
</mat-form-field>
Expand All @@ -20,6 +22,7 @@
<mat-form-field appearance="fill">
<mat-label>Input disabled</mat-label>
<input matInput [matDatepicker]="dp3" disabled>
<mat-hint>MM/DD/YYYY</mat-hint>
<mat-datepicker-toggle matSuffix [for]="dp3"></mat-datepicker-toggle>
<mat-datepicker #dp3 disabled="false"></mat-datepicker>
</mat-form-field>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
<mat-label>Input & change events</mat-label>
<input matInput [matDatepicker]="picker"
(dateInput)="addEvent('input', $event)" (dateChange)="addEvent('change', $event)">
<mat-hint>MM/DD/YYYY</mat-hint>
<mat-datepicker-toggle matSuffix [for]="picker"></mat-datepicker-toggle>
<mat-datepicker #picker></mat-datepicker>
</mat-form-field>
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
<mat-form-field class="example-full-width" appearance="fill">
<mat-label>Choose a date</mat-label>
<input matInput [matDatepickerFilter]="myFilter" [matDatepicker]="picker">
<mat-hint>MM/DD/YYYY</mat-hint>
<mat-datepicker-toggle matSuffix [for]="picker"></mat-datepicker-toggle>
<mat-datepicker #picker></mat-datepicker>
</mat-form-field>
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
<mat-form-field appearance="fill">
<mat-label>Verbose datepicker</mat-label>
<input matInput [matDatepicker]="dp" [formControl]="date">
<mat-hint>MMMM DD, YYYY</mat-hint>
<mat-datepicker-toggle matSuffix [for]="dp"></mat-datepicker-toggle>
<mat-datepicker #dp></mat-datepicker>
</mat-form-field>
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
<mat-form-field appearance="fill">
<mat-label>Different locale</mat-label>
<input matInput [matDatepicker]="dp">
<mat-hint>{{getDateFormatString()}}</mat-hint>
<mat-datepicker-toggle matSuffix [for]="dp"></mat-datepicker-toggle>
<mat-datepicker #dp></mat-datepicker>
</mat-form-field>

<button mat-button (click)="french()">Dynamically switch to French</button>
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import {Component} from '@angular/core';
import {Component, Inject} from '@angular/core';
import {
MAT_MOMENT_DATE_FORMATS,
MomentDateAdapter,
Expand Down Expand Up @@ -30,9 +30,22 @@ import 'moment/locale/fr';
],
})
export class DatepickerLocaleExample {
constructor(private _adapter: DateAdapter<any>) {}
constructor(
private _adapter: DateAdapter<any>,
@Inject(MAT_DATE_LOCALE) private _locale: string,
) {}

french() {
this._adapter.setLocale('fr');
this._locale = 'fr';
this._adapter.setLocale(this._locale);
}

getDateFormatString(): string {
if (this._locale === 'ja-JP') {
return 'YYYY/MM/DD';
} else if (this._locale === 'fr') {
return 'DD/MM/YYYY';
}
return '';
}
}
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
<mat-form-field class="example-full-width" appearance="fill">
<mat-label>Choose a date</mat-label>
<input matInput [min]="minDate" [max]="maxDate" [matDatepicker]="picker">
<mat-hint>MM/DD/YYYY</mat-hint>
<mat-datepicker-toggle matSuffix [for]="picker"></mat-datepicker-toggle>
<mat-datepicker #picker></mat-datepicker>
</mat-form-field>
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
<mat-form-field appearance="fill">
<mat-label>Moment.js datepicker</mat-label>
<input matInput [matDatepicker]="dp" [formControl]="date">
<mat-hint>MM/DD/YYYY</mat-hint>
<mat-datepicker-toggle matSuffix [for]="dp"></mat-datepicker-toggle>
<mat-datepicker #dp></mat-datepicker>
</mat-form-field>
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
<mat-label>Choose a date</mat-label>
<!-- #docregion toggle -->
<input matInput [matDatepicker]="picker">
<mat-hint>MM/DD/YYYY</mat-hint>
<mat-datepicker-toggle matSuffix [for]="picker"></mat-datepicker-toggle>
<mat-datepicker #picker></mat-datepicker>
<!-- #enddocregion toggle -->
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
<mat-form-field appearance="fill">
<mat-label>Choose a date</mat-label>
<input matInput [matDatepicker]="picker">
<mat-hint>MM/DD/YYYY</mat-hint>
<mat-datepicker-toggle matSuffix [for]="picker"></mat-datepicker-toggle>
<mat-datepicker #picker startView="year" [startAt]="startDate"></mat-datepicker>
</mat-form-field>
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
<mat-form-field class="example-full-width" appearance="fill">
<mat-label>Choose a date</mat-label>
<input matInput [matDatepicker]="picker">
<mat-hint>MM/DD/YYYY</mat-hint>
<mat-datepicker-toggle matSuffix [for]="picker"></mat-datepicker-toggle>
<mat-datepicker touchUi #picker></mat-datepicker>
</mat-form-field>
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
<mat-form-field appearance="fill">
<mat-label>Angular forms</mat-label>
<input matInput [matDatepicker]="picker1" [formControl]="date">
<mat-hint>MM/DD/YYYY</mat-hint>
<mat-datepicker-toggle matSuffix [for]="picker1"></mat-datepicker-toggle>
<mat-datepicker #picker1></mat-datepicker>
</mat-form-field>
Expand All @@ -9,13 +10,15 @@
<mat-label>Angular forms (w/ deserialization)</mat-label>
<input matInput [matDatepicker]="picker2"
[formControl]="serializedDate">
<mat-hint>MM/DD/YYYY</mat-hint>
<mat-datepicker-toggle matSuffix [for]="picker2"></mat-datepicker-toggle>
<mat-datepicker #picker2></mat-datepicker>
</mat-form-field>

<mat-form-field appearance="fill">
<mat-label>Value binding</mat-label>
<input matInput [matDatepicker]="picker3" [value]="date.value">
<mat-hint>MM/DD/YYYY</mat-hint>
<mat-datepicker-toggle matSuffix [for]="picker3"></mat-datepicker-toggle>
<mat-datepicker #picker3></mat-datepicker>
</mat-form-field>
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
<mat-form-field appearance="fill">
<mat-label>Month and Year</mat-label>
<input matInput [matDatepicker]="dp" [formControl]="date">
<mat-hint>MM/YYYY</mat-hint>
<mat-datepicker-toggle matSuffix [for]="dp"></mat-datepicker-toggle>
<mat-datepicker #dp
startView="multi-year"
Expand Down
8 changes: 7 additions & 1 deletion src/components-examples/material/datepicker/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ import {NgModule} from '@angular/core';
import {FormsModule, ReactiveFormsModule} from '@angular/forms';
import {MatButtonModule} from '@angular/material/button';
import {MatCardModule} from '@angular/material/card';
import {MatNativeDateModule} from '@angular/material/core';
import {MatNativeDateModule, MAT_DATE_LOCALE} from '@angular/material/core';
import {MatDatepickerModule} from '@angular/material/datepicker';
import {MatIconModule} from '@angular/material/icon';
import {MatInputModule} from '@angular/material/input';
Expand Down Expand Up @@ -106,5 +106,11 @@ const EXAMPLES = [
],
declarations: EXAMPLES,
exports: EXAMPLES,
providers: [
// Except in specific examples, use 'en-US' locale in datepicker examples. This ensures that
// the hardcoded date format strings displayed in `<mat-hint>` will match the format used by
// `NativeDateModule`.
{provide: MAT_DATE_LOCALE, useValue: 'en-US'},
],
})
export class DatepickerExamplesModule {}
3 changes: 3 additions & 0 deletions src/material/datepicker/datepicker.md
Original file line number Diff line number Diff line change
Expand Up @@ -588,6 +588,9 @@ attribute to the native input and button elements, respectively.
the datepicker text input a meaningful label via `<mat-label>`, `aria-label`, `aria-labelledby` or
`MatDatepickerIntl`.

Always communicate the date format (e.g. 'MM/DD/YYYY'). This can be accomplished using `<mat-hint>`
or by providing an additional label adjacent to the form field.

`MatDatepickerInput` adds <kbd>>Alt</kbd> + <kbd>Down Arrow</kbd> as a keyboard short to open the
datepicker pop-up. However, ChromeOS intercepts this key combination at the OS level such that the
browser only receives a `PageDown` key event. Because of this behavior, you should always include an
Expand Down