package.dist.DatePicker.js Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of webcomponents Show documentation
Show all versions of webcomponents Show documentation
UI5 Web Components: webcomponents.main
The newest version!
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
return c > 3 && r && Object.defineProperty(target, key, r), r;
};
var DatePicker_1;
import customElement from "@ui5/webcomponents-base/dist/decorators/customElement.js";
import property from "@ui5/webcomponents-base/dist/decorators/property.js";
import slot from "@ui5/webcomponents-base/dist/decorators/slot.js";
import event from "@ui5/webcomponents-base/dist/decorators/event.js";
import CalendarDate from "@ui5/webcomponents-localization/dist/dates/CalendarDate.js";
import modifyDateBy from "@ui5/webcomponents-localization/dist/dates/modifyDateBy.js";
import getRoundedTimestamp from "@ui5/webcomponents-localization/dist/dates/getRoundedTimestamp.js";
import getTodayUTCTimestamp from "@ui5/webcomponents-localization/dist/dates/getTodayUTCTimestamp.js";
import ValueState from "@ui5/webcomponents-base/dist/types/ValueState.js";
import { getEffectiveAriaLabelText } from "@ui5/webcomponents-base/dist/util/AriaLabelHelper.js";
import { submitForm } from "@ui5/webcomponents-base/dist/features/InputElementsFormSupport.js";
import { isPageUp, isPageDown, isPageUpShift, isPageDownShift, isPageUpShiftCtrl, isPageDownShiftCtrl, isShow, isF4, isEnter, isTabNext, isTabPrevious, isF6Next, isF6Previous, } from "@ui5/webcomponents-base/dist/Keys.js";
import AriaHasPopup from "@ui5/webcomponents-base/dist/types/AriaHasPopup.js";
import { isPhone, isDesktop } from "@ui5/webcomponents-base/dist/Device.js";
import CalendarPickersMode from "./types/CalendarPickersMode.js";
import "@ui5/webcomponents-icons/dist/appointment-2.js";
import "@ui5/webcomponents-icons/dist/decline.js";
import { DATEPICKER_OPEN_ICON_TITLE, DATEPICKER_DATE_DESCRIPTION, INPUT_SUGGESTIONS_TITLE, FORM_TEXTFIELD_REQUIRED, DATEPICKER_POPOVER_ACCESSIBLE_NAME, } from "./generated/i18n/i18n-defaults.js";
import DateComponentBase from "./DateComponentBase.js";
import Icon from "./Icon.js";
import Button from "./Button.js";
import ResponsivePopover from "./ResponsivePopover.js";
import Calendar from "./Calendar.js";
import CalendarDateComponent from "./CalendarDate.js";
import Input from "./Input.js";
import InputType from "./types/InputType.js";
import IconMode from "./types/IconMode.js";
import DatePickerTemplate from "./generated/templates/DatePickerTemplate.lit.js";
// default calendar for bundling
import "@ui5/webcomponents-localization/dist/features/calendar/Gregorian.js";
// Styles
import datePickerCss from "./generated/themes/DatePicker.css.js";
import datePickerPopoverCss from "./generated/themes/DatePickerPopover.css.js";
import ResponsivePopoverCommonCss from "./generated/themes/ResponsivePopoverCommon.css.js";
/**
* @class
*
* ### Overview
*
* The `ui5-date-picker` component provides an input field with assigned calendar which opens on user action.
* The `ui5-date-picker` allows users to select a localized date using touch,
* mouse, or keyboard input. It consists of two parts: the date input field and the
* date picker.
*
* ### Usage
*
* The user can enter a date by:
*
* - Using the calendar that opens in a popup
* - Typing it in directly in the input field
*
* When the user makes an entry and presses the enter key, the calendar shows the corresponding date.
* When the user directly triggers the calendar display, the actual date is displayed.
*
* ### Formatting
*
* If a date is entered by typing it into
* the input field, it must fit to the used date format.
*
* Supported format options are pattern-based on Unicode LDML Date Format notation.
* For more information, see [UTS #35: Unicode Locale Data Markup Language](http://unicode.org/reports/tr35/#Date_Field_Symbol_Table).
*
* For example, if the `format-pattern` is "yyyy-MM-dd",
* a valid value string is "2015-07-30" and the same is displayed in the input.
*
* ### Keyboard Handling
* The `ui5-date-picker` provides advanced keyboard handling.
* If the `ui5-date-picker` is focused,
* you can open or close the drop-down by pressing [F4], [Alt] + [Up] or [Alt] + [Down] keys.
* Once the drop-down is opened, you can use the [Up], [Down], [Left] or [Right] arrow keys
* to navigate through the dates and select one by pressing the `Space` or `Enter` keys. Moreover you can
* use TAB to reach the buttons for changing month and year.
*
* If the `ui5-date-picker` input field is focused and its corresponding picker dialog is not opened,
* then users can increment or decrement the date referenced by `dateValue` property
* by using the following shortcuts:
*
* - [Page Down] - Decrements the corresponding day of the month by one
* - [Shift] + [Page Down] - Decrements the corresponding month by one
* - [Shift] + [Ctrl] + [Page Down] - Decrements the corresponding year by one
* - [Page Up] - Increments the corresponding day of the month by one
* - [Shift] + [Page Up] - Increments the corresponding month by one
* - [Shift] + [Ctrl] + [Page Up] - Increments the corresponding year by one
*
* ### Calendar types
* The component supports several calendar types - Gregorian, Buddhist, Islamic, Japanese and Persian.
* By default the Gregorian Calendar is used. In order to use the Buddhist, Islamic, Japanese or Persian calendar,
* you need to set the `primaryCalendarType` property and import one or more of the following modules:
*
* `import "@ui5/webcomponents-localization/dist/features/calendar/Buddhist.js";`
*
* `import "@ui5/webcomponents-localization/dist/features/calendar/Islamic.js";`
*
* `import "@ui5/webcomponents-localization/dist/features/calendar/Japanese.js";`
*
* `import "@ui5/webcomponents-localization/dist/features/calendar/Persian.js";`
*
* Or, you can use the global configuration and set the `calendarType` key:
*
* ```html
*