import { Story, Meta, html } from '@open-wc/demoing-storybook'; import { loadDefaultFeedbackMessages, MinMaxDate, IsDateDisabled } from '@lion/validate'; import { formatDate } from '@lion/localize'; import '../lion-input-datepicker.js'; # Input Datepicker `lion-input-datepicker` component is based on the date text input field. Its purpose is to provide a way for users to fill in a date with a datepicker. For an input field with a big range, such as `birthday-input`, a datepicker is not the best choice due to the high variance between possible inputs. We encourage using the standard [lion-input-date](?path=/docs/form-component-input-date) for this. {() => { loadDefaultFeedbackMessages(); return html` `; }} ```html ``` ## Features - Input field with a datepicker to help to choose a date - Based on [lion-input-date](?path=/docs/form-component-input-date) - Makes use of [lion-calendar](?path=/docs/calendar-standalone) inside the datepicker - Makes use of [formatDate](?path=/docs/localize-dates--formatting)) for formatting and parsing. - Option to overwrite locale to change the formatting and parsing - Can make use of date specific [validators](?path=/docs/forms-validation-overview--page) with corresponding error messages in different languages - IsDate (default) - MinDate - MaxDate - MinMaxDate - IsDateDisabled ## How to use ### Installation ```sh npm i --save @lion/input-datepicker ``` ```js import '@lion/input-datepicker/lion-input-datepicker.js'; ``` ## Examples ### Validation Below are examples of different validators for dates. {html`
Enter a date between ${formatDate(new Date('2018/05/24'))} and ${formatDate(new Date('2018/06/24'))}.
d.getDate() === 15)]} > `}
```js import { loadDefaultFeedbackMessages, MinMaxDate, IsDateDisabled } from '@lion/validate'; import { formatDate } from '@lion/localize'; loadDefaultFeedbackMessages(); ``` ```html
Enter a date between ${formatDate(new Date('2018/05/24'))} and ${formatDate(new Date('2018/06/24'))}.
``` ```html d.getDate() === 15)]} > ``` ### Calendar heading You can modify the heading of the calendar with the `.calendarHeading` property or `calendar-heading` attribute for simple values. By default, it will take the label value. {html` `} ```html ``` ### Disabled You can disable datepicker inputs. {html` `} ```html ``` ### Read only You can set datepicker inputs to `readonly`, which will prevent the user from opening the calendar popup. {html` `} ```html ```