igniteui-angular-sovn
Version:
Ignite UI for Angular is a dependency-free Angular toolkit for building modern web apps
145 lines (94 loc) • 4.49 kB
Markdown
# igxMonthPicker Component
The **igxMonthPicker** provides a way for the user to select a month.
## Dependencies
In order to be able to use **igxMonthPicker** you should keep in mind that it is dependent on **BrowserAnimationsModule**,
which must be imported **only once** in your application's AppModule, for example:
```typescript
import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
@NgModule({
imports: [
BrowserAnimationsModule,
...
]
})
export class AppModule {
}
```
Also the **igxMonthPicker** uses the [Intl](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/DateTimeFormat) WebAPI for localization and formatting of dates. Consider using the [appropriate polyfills](https://github.com/andyearnshaw/Intl.js/) if your target platform does not support them.
## Usage
Importing the month picker in your application
```typescript
import { IgxMonthPickerComponent } from "igniteui-angular-sovn";
```
Instantiate a month picker component and pass a date object.
```html
<igx-month-picker [value]="dateValue" [viewDate]="viewDate"></igx-month-picker>
```
The **igxMonthPicker** implements the `ControlValueAccessor` interface, providing two-way data-binding
and the expected behavior when used both in Template-driven or Reactive Forms.
```html
<igx-month-picker [(ngModel)]="dateValue"></igx-month-picker>
```
Customize the format, set the views to be formatted and the locale
```typescript
public formatViews = { month: true, year: true };
public formatOptions = { month: 'long', year: 'numeric' };
public localeDe = 'de';
```
```html
<igx-month-picker [formatOptions]="formatOptions" [formatViews]="formatViews" [locale]="localeDe"></igx-month-picker>
```
### Keyboard navigation
When the **igxMonthPicker** component is focused:
- `PageUp` will move to the previous year.
- `PageDown` will move to the next year.
- `Home` will focus the first month of the current year.
- `End` will focus the last month of the current year.
- `Tab` will navigate through the subheader buttons;
When `prev` or `next` year buttons (in the subheader) are focused:
- `Space` or `Enter` will scroll into view the next or previous year.
When `years` button (in the subheader) is focused:
- `Space` or `Enter` will open the years view.
When a month inside the months view is focused:
- Arrow keys will navigate through the months.
- `Home` will focus the first month inside the months view.
- `End` will focus the last month inside the months view.
- `Enter` will select the currently focused month and close the view.
- `Tab` will navigate through the months;
## API Summary
### Inputs
- `id: string`
Unique identifier of the component. If not provided it will be automatically generated.
- `locale: string`
Controls the locale used for formatting and displaying the dates in the month picker.
The expected string should be a [BCP 47 language tag](http://tools.ietf.org/html/rfc5646).
The default value is `en`.
- `viewDate: Date`
Controls the year/month that will be presented in the default view when the month picker renders. By default it is the first day of the current year/month.
- `value: Date`
Gets and sets the selected date in the month picker component.
- `formatOptions: Object`
Controls the date-time components to use in formatted output, and their desired representations.
Consult [this](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/DateTimeFormat)
for additional information on the available options.
The defaul values are listed below.
```typescript
{ month: 'short', year: 'numeric' }
```
- `formatViews: Object`
Controls whether the date parts in the different month picker views should be formatted according to the provided
`locale` and `formatOptions`.
The default values are listed below.
```typescript
{ month: true, year: false }
```
### Outputs
- `onSelection(): Date | Date[]`
Event fired when a value is selected through UI interaction.
Returns the selected value (depending on the type of selection).
- `viewDateChanged(): IViewDateChangeEventArgs`
Event fired after the month/year presented in the view is changed.
Emits an object containing the previous and current value of the `viewDate` property.
- `activeViewChanged(): CalendarView`
Event fired after the active view is changed.
Emits an CalendarView enum, indicating the `activeView` property value.