@ui5/webcomponents 2.7.0-rc.2 → 2.7.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +26 -0
- package/cypress/specs/{Button.cy.ts → Button.cy.tsx} +42 -37
- package/cypress/specs/CalendarLegend.cy.tsx +77 -0
- package/cypress/specs/{Card.cy.ts → Card.cy.tsx} +28 -28
- package/cypress/specs/ColorPalette.cy.tsx +213 -0
- package/cypress/specs/{ColorPicker.cy.ts → ColorPicker.cy.tsx} +7 -9
- package/cypress/specs/{ComboBox.cy.ts → ComboBox.cy.tsx} +9 -10
- package/cypress/specs/{Dialog.cy.ts → Dialog.cy.tsx} +15 -13
- package/cypress/specs/{ExpandableText.cy.ts → ExpandableText.cy.tsx} +25 -22
- package/cypress/specs/{F6.cy.ts → F6.cy.tsx} +346 -301
- package/cypress/specs/{Form.cy.ts → Form.cy.tsx} +326 -324
- package/cypress/specs/{FormSupport.cy.ts → FormSupport.cy.tsx} +270 -285
- package/cypress/specs/{Input.cy.ts → Input.cy.tsx} +38 -40
- package/cypress/specs/{Label.cy.ts → Label.cy.tsx} +62 -46
- package/cypress/specs/{Link.cy.ts → Link.cy.tsx} +2 -3
- package/cypress/specs/{List.cy.ts → List.cy.tsx} +34 -36
- package/cypress/specs/{LitKeyFunction.cy.ts → LitKeyFunction.cy.tsx} +10 -9
- package/cypress/specs/{Menu.cy.ts → Menu.cy.tsx} +182 -102
- package/cypress/specs/MessageStrip.cy.tsx +164 -0
- package/cypress/specs/{MultiComboBox.cy.ts → MultiComboBox.cy.tsx} +16 -18
- package/cypress/specs/{MultiInput.cy.ts → MultiInput.cy.tsx} +15 -14
- package/cypress/specs/{Popover.cy.ts → Popover.cy.tsx} +28 -25
- package/cypress/specs/RTL.cy.tsx +18 -0
- package/cypress/specs/{RatingIndicator.cy.ts → RatingIndicator.cy.tsx} +28 -16
- package/cypress/specs/{ResponsivePopover.mobile.cy.ts → ResponsivePopover.mobile.cy.tsx} +35 -16
- package/cypress/specs/{Select.cy.ts → Select.cy.tsx} +14 -16
- package/cypress/specs/{StepInput.cy.ts → StepInput.cy.tsx} +4 -6
- package/cypress/specs/Table.cy.tsx +665 -0
- package/cypress/specs/{TableDragAndDrop.cy.ts → TableDragAndDrop.cy.tsx} +27 -24
- package/cypress/specs/{TableGrowing.cy.ts → TableGrowing.cy.tsx} +83 -75
- package/cypress/specs/TableLoading.cy.tsx +48 -0
- package/cypress/specs/{TableRowActions.cy.ts → TableRowActions.cy.tsx} +67 -61
- package/cypress/specs/{TableVirtualizer.cy.ts → TableVirtualizer.cy.tsx} +12 -15
- package/cypress/specs/{Tag.cy.ts → Tag.cy.tsx} +53 -31
- package/cypress/specs/{Text.cy.ts → Text.cy.tsx} +6 -7
- package/cypress/specs/{TextArea.cy.ts → TextArea.cy.tsx} +62 -49
- package/cypress/specs/Title.cy.tsx +36 -0
- package/cypress/specs/{Toast.cy.ts → Toast.cy.tsx} +17 -16
- package/cypress/specs/Tokenizer.cy.tsx +173 -0
- package/cypress/specs/{Toolbar.cy.ts → Toolbar.cy.tsx} +61 -63
- package/cypress/specs/{Tree.cy.ts → Tree.cy.tsx} +13 -12
- package/cypress/specs/base/{AccessibilityTextsHelper.cy.ts → AccessibilityTextsHelper.cy.tsx} +52 -41
- package/cypress/specs/base/{Events.cy.ts → Events.cy.tsx} +59 -57
- package/cypress/specs/base/{IconCollection.cy.ts → IconCollection.cy.tsx} +4 -4
- package/cypress/specs/base/{IgnoreCustomElements.cy.ts → IgnoreCustomElements.cy.tsx} +15 -12
- package/cypress/specs/base/Tooltips.cy.tsx +62 -0
- package/cypress/support/commands/ColorPalette.commands.ts +21 -3
- package/cypress/support/commands/Menu.commands.ts +7 -7
- package/cypress/support/commands.ts +1 -0
- package/cypress/tsconfig.json +2 -0
- package/dist/.tsbuildinfo +1 -1
- package/dist/Calendar.d.ts +1 -0
- package/dist/Calendar.js +8 -3
- package/dist/Calendar.js.map +1 -1
- package/dist/DayPicker.d.ts +2 -0
- package/dist/DayPicker.js +12 -3
- package/dist/DayPicker.js.map +1 -1
- package/dist/DayPickerTemplate.js +1 -1
- package/dist/DayPickerTemplate.js.map +1 -1
- package/dist/FileUploader.js +1 -1
- package/dist/FileUploader.js.map +1 -1
- package/dist/List.js +4 -0
- package/dist/List.js.map +1 -1
- package/dist/MenuItem.d.ts +5 -5
- package/dist/MenuItem.js.map +1 -1
- package/dist/MenuItemTemplate.js +1 -1
- package/dist/MenuItemTemplate.js.map +1 -1
- package/dist/MessageStrip.js +1 -3
- package/dist/MessageStrip.js.map +1 -1
- package/dist/Select.d.ts +1 -0
- package/dist/Select.js +3 -0
- package/dist/Select.js.map +1 -1
- package/dist/SelectPopoverTemplate.js +1 -1
- package/dist/SelectPopoverTemplate.js.map +1 -1
- package/dist/SpecialCalendarDate.d.ts +6 -0
- package/dist/SpecialCalendarDate.js +9 -0
- package/dist/SpecialCalendarDate.js.map +1 -1
- package/dist/TableVirtualizer.js +4 -2
- package/dist/TableVirtualizer.js.map +1 -1
- package/dist/Tokenizer.js +1 -1
- package/dist/Tokenizer.js.map +1 -1
- package/dist/YearPicker.js +2 -2
- package/dist/YearPicker.js.map +1 -1
- package/dist/css/themes/Avatar.css +1 -1
- package/dist/css/themes/AvatarGroup.css +1 -1
- package/dist/css/themes/Bar.css +1 -1
- package/dist/css/themes/Breadcrumbs.css +1 -1
- package/dist/css/themes/BusyIndicator.css +1 -1
- package/dist/css/themes/Button.css +1 -1
- package/dist/css/themes/ButtonBadge.css +1 -1
- package/dist/css/themes/Calendar.css +1 -1
- package/dist/css/themes/CalendarHeader.css +1 -1
- package/dist/css/themes/CalendarLegend.css +1 -1
- package/dist/css/themes/CalendarLegendItem.css +1 -1
- package/dist/css/themes/Card.css +1 -1
- package/dist/css/themes/CardHeader.css +1 -1
- package/dist/css/themes/Carousel.css +1 -1
- package/dist/css/themes/CheckBox.css +1 -1
- package/dist/css/themes/ColorPalette.css +1 -1
- package/dist/css/themes/ColorPaletteItem.css +1 -1
- package/dist/css/themes/ColorPalettePopover.css +1 -1
- package/dist/css/themes/ColorPicker.css +1 -1
- package/dist/css/themes/ComboBox.css +1 -1
- package/dist/css/themes/ComboBoxItem.css +1 -1
- package/dist/css/themes/DatePicker.css +1 -1
- package/dist/css/themes/DateTimePickerPopover.css +1 -1
- package/dist/css/themes/DayPicker.css +1 -1
- package/dist/css/themes/Dialog.css +1 -1
- package/dist/css/themes/FileUploader.css +1 -1
- package/dist/css/themes/Form.css +1 -1
- package/dist/css/themes/FormItem.css +1 -1
- package/dist/css/themes/FormItemSpan.css +1 -1
- package/dist/css/themes/GrowingButton.css +1 -1
- package/dist/css/themes/Icon.css +1 -1
- package/dist/css/themes/Input.css +1 -1
- package/dist/css/themes/InputIcon.css +1 -1
- package/dist/css/themes/InputSharedStyles.css +1 -1
- package/dist/css/themes/Link.css +1 -1
- package/dist/css/themes/List.css +1 -1
- package/dist/css/themes/ListItem.css +1 -1
- package/dist/css/themes/ListItemBase.css +1 -1
- package/dist/css/themes/ListItemCustom.css +1 -1
- package/dist/css/themes/ListItemGroup.css +1 -1
- package/dist/css/themes/ListItemGroupHeader.css +1 -1
- package/dist/css/themes/ListItemIcon.css +1 -1
- package/dist/css/themes/Menu.css +1 -1
- package/dist/css/themes/MenuItem.css +1 -1
- package/dist/css/themes/MessageStrip.css +1 -1
- package/dist/css/themes/MonthPicker.css +1 -1
- package/dist/css/themes/MultiComboBox.css +1 -1
- package/dist/css/themes/MultiComboBoxItem.css +1 -1
- package/dist/css/themes/MultiComboBoxPopover.css +1 -1
- package/dist/css/themes/MultiInput.css +1 -1
- package/dist/css/themes/OptionBase.css +1 -1
- package/dist/css/themes/Panel.css +1 -1
- package/dist/css/themes/Popover.css +1 -1
- package/dist/css/themes/PopupsCommon.css +1 -1
- package/dist/css/themes/ProgressIndicator.css +1 -1
- package/dist/css/themes/RadioButton.css +1 -1
- package/dist/css/themes/RangeSlider.css +1 -1
- package/dist/css/themes/RatingIndicator.css +1 -1
- package/dist/css/themes/ResponsivePopover.css +1 -1
- package/dist/css/themes/ResponsivePopoverCommon.css +1 -1
- package/dist/css/themes/SegmentedButton.css +1 -1
- package/dist/css/themes/SegmentedButtonItem.css +1 -1
- package/dist/css/themes/Select.css +1 -1
- package/dist/css/themes/SliderBase.css +1 -1
- package/dist/css/themes/SplitButton.css +1 -1
- package/dist/css/themes/StepInput.css +1 -1
- package/dist/css/themes/SuggestionItem.css +1 -1
- package/dist/css/themes/SuggestionItemCustom.css +1 -1
- package/dist/css/themes/Switch.css +1 -1
- package/dist/css/themes/TabContainer.css +1 -1
- package/dist/css/themes/TabInOverflow.css +1 -1
- package/dist/css/themes/TabInStrip.css +1 -1
- package/dist/css/themes/TabSemanticIcon.css +1 -1
- package/dist/css/themes/TabSeparatorInOverflow.css +1 -1
- package/dist/css/themes/Table.css +1 -1
- package/dist/css/themes/TableCellBase.css +1 -1
- package/dist/css/themes/TableHeaderRow.css +1 -1
- package/dist/css/themes/TableRow.css +1 -1
- package/dist/css/themes/TableRowActionBase.css +1 -1
- package/dist/css/themes/TableRowBase.css +1 -1
- package/dist/css/themes/Tag.css +1 -1
- package/dist/css/themes/Text.css +1 -1
- package/dist/css/themes/TextArea.css +1 -1
- package/dist/css/themes/TimePicker.css +1 -1
- package/dist/css/themes/Toast.css +1 -1
- package/dist/css/themes/ToggleButton.css +1 -1
- package/dist/css/themes/Token.css +1 -1
- package/dist/css/themes/Tokenizer.css +1 -1
- package/dist/css/themes/TokenizerPopover.css +1 -1
- package/dist/css/themes/Toolbar.css +1 -1
- package/dist/css/themes/ToolbarPopover.css +1 -1
- package/dist/css/themes/TreeItem.css +1 -1
- package/dist/css/themes/ValueStateMessage.css +1 -1
- package/dist/css/themes/YearPicker.css +1 -1
- package/dist/css/themes/sap_fiori_3/parameters-bundle.css +1 -1
- package/dist/css/themes/sap_fiori_3_dark/parameters-bundle.css +1 -1
- package/dist/css/themes/sap_fiori_3_hcb/parameters-bundle.css +1 -1
- package/dist/css/themes/sap_fiori_3_hcw/parameters-bundle.css +1 -1
- package/dist/css/themes/sap_horizon/parameters-bundle.css +1 -1
- package/dist/css/themes/sap_horizon_dark/parameters-bundle.css +1 -1
- package/dist/css/themes/sap_horizon_hcb/parameters-bundle.css +1 -1
- package/dist/css/themes/sap_horizon_hcw/parameters-bundle.css +1 -1
- package/dist/custom-elements-internal.json +2 -2
- package/dist/custom-elements.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_en_US_saprigi.json +1 -1
- package/dist/generated/assets/themes/sap_fiori_3/parameters-bundle.css.json +1 -1
- package/dist/generated/assets/themes/sap_fiori_3_dark/parameters-bundle.css.json +1 -1
- package/dist/generated/assets/themes/sap_fiori_3_hcb/parameters-bundle.css.json +1 -1
- package/dist/generated/assets/themes/sap_fiori_3_hcw/parameters-bundle.css.json +1 -1
- package/dist/generated/assets/themes/sap_horizon/parameters-bundle.css.json +1 -1
- package/dist/generated/assets/themes/sap_horizon_dark/parameters-bundle.css.json +1 -1
- package/dist/generated/assets/themes/sap_horizon_hcb/parameters-bundle.css.json +1 -1
- package/dist/generated/assets/themes/sap_horizon_hcw/parameters-bundle.css.json +1 -1
- package/dist/generated/templates/TableGrowingTemplate.lit.js +2 -3
- package/dist/generated/templates/TableGrowingTemplate.lit.js.map +1 -1
- package/dist/generated/themes/Avatar.css.d.ts +1 -1
- package/dist/generated/themes/Avatar.css.js +1 -1
- package/dist/generated/themes/Avatar.css.js.map +1 -1
- package/dist/generated/themes/AvatarGroup.css.d.ts +1 -1
- package/dist/generated/themes/AvatarGroup.css.js +1 -1
- package/dist/generated/themes/AvatarGroup.css.js.map +1 -1
- package/dist/generated/themes/Bar.css.d.ts +1 -1
- package/dist/generated/themes/Bar.css.js +1 -1
- package/dist/generated/themes/Bar.css.js.map +1 -1
- package/dist/generated/themes/Breadcrumbs.css.d.ts +1 -1
- package/dist/generated/themes/Breadcrumbs.css.js +1 -1
- package/dist/generated/themes/Breadcrumbs.css.js.map +1 -1
- package/dist/generated/themes/BusyIndicator.css.d.ts +1 -1
- package/dist/generated/themes/BusyIndicator.css.js +1 -1
- package/dist/generated/themes/BusyIndicator.css.js.map +1 -1
- package/dist/generated/themes/Button.css.d.ts +1 -1
- package/dist/generated/themes/Button.css.js +1 -1
- package/dist/generated/themes/Button.css.js.map +1 -1
- package/dist/generated/themes/ButtonBadge.css.d.ts +1 -1
- package/dist/generated/themes/ButtonBadge.css.js +1 -1
- package/dist/generated/themes/ButtonBadge.css.js.map +1 -1
- package/dist/generated/themes/Calendar.css.d.ts +1 -1
- package/dist/generated/themes/Calendar.css.js +1 -1
- package/dist/generated/themes/Calendar.css.js.map +1 -1
- package/dist/generated/themes/CalendarHeader.css.d.ts +1 -1
- package/dist/generated/themes/CalendarHeader.css.js +1 -1
- package/dist/generated/themes/CalendarHeader.css.js.map +1 -1
- package/dist/generated/themes/CalendarLegend.css.d.ts +1 -1
- package/dist/generated/themes/CalendarLegend.css.js +1 -1
- package/dist/generated/themes/CalendarLegend.css.js.map +1 -1
- package/dist/generated/themes/CalendarLegendItem.css.d.ts +1 -1
- package/dist/generated/themes/CalendarLegendItem.css.js +1 -1
- package/dist/generated/themes/CalendarLegendItem.css.js.map +1 -1
- package/dist/generated/themes/Card.css.d.ts +1 -1
- package/dist/generated/themes/Card.css.js +1 -1
- package/dist/generated/themes/Card.css.js.map +1 -1
- package/dist/generated/themes/CardHeader.css.d.ts +1 -1
- package/dist/generated/themes/CardHeader.css.js +1 -1
- package/dist/generated/themes/CardHeader.css.js.map +1 -1
- package/dist/generated/themes/Carousel.css.d.ts +1 -1
- package/dist/generated/themes/Carousel.css.js +1 -1
- package/dist/generated/themes/Carousel.css.js.map +1 -1
- package/dist/generated/themes/CheckBox.css.d.ts +1 -1
- package/dist/generated/themes/CheckBox.css.js +1 -1
- package/dist/generated/themes/CheckBox.css.js.map +1 -1
- package/dist/generated/themes/ColorPalette.css.d.ts +1 -1
- package/dist/generated/themes/ColorPalette.css.js +1 -1
- package/dist/generated/themes/ColorPalette.css.js.map +1 -1
- package/dist/generated/themes/ColorPaletteItem.css.d.ts +1 -1
- package/dist/generated/themes/ColorPaletteItem.css.js +1 -1
- package/dist/generated/themes/ColorPaletteItem.css.js.map +1 -1
- package/dist/generated/themes/ColorPalettePopover.css.d.ts +1 -1
- package/dist/generated/themes/ColorPalettePopover.css.js +1 -1
- package/dist/generated/themes/ColorPalettePopover.css.js.map +1 -1
- package/dist/generated/themes/ColorPicker.css.d.ts +1 -1
- package/dist/generated/themes/ColorPicker.css.js +1 -1
- package/dist/generated/themes/ColorPicker.css.js.map +1 -1
- package/dist/generated/themes/ComboBox.css.d.ts +1 -1
- package/dist/generated/themes/ComboBox.css.js +1 -1
- package/dist/generated/themes/ComboBox.css.js.map +1 -1
- package/dist/generated/themes/ComboBoxItem.css.d.ts +1 -1
- package/dist/generated/themes/ComboBoxItem.css.js +1 -1
- package/dist/generated/themes/ComboBoxItem.css.js.map +1 -1
- package/dist/generated/themes/DatePicker.css.d.ts +1 -1
- package/dist/generated/themes/DatePicker.css.js +1 -1
- package/dist/generated/themes/DatePicker.css.js.map +1 -1
- package/dist/generated/themes/DateTimePickerPopover.css.d.ts +1 -1
- package/dist/generated/themes/DateTimePickerPopover.css.js +1 -1
- package/dist/generated/themes/DateTimePickerPopover.css.js.map +1 -1
- package/dist/generated/themes/DayPicker.css.d.ts +1 -1
- package/dist/generated/themes/DayPicker.css.js +1 -1
- package/dist/generated/themes/DayPicker.css.js.map +1 -1
- package/dist/generated/themes/Dialog.css.d.ts +1 -1
- package/dist/generated/themes/Dialog.css.js +1 -1
- package/dist/generated/themes/Dialog.css.js.map +1 -1
- package/dist/generated/themes/FileUploader.css.d.ts +1 -1
- package/dist/generated/themes/FileUploader.css.js +1 -1
- package/dist/generated/themes/FileUploader.css.js.map +1 -1
- package/dist/generated/themes/Form.css.d.ts +1 -1
- package/dist/generated/themes/Form.css.js +1 -1
- package/dist/generated/themes/Form.css.js.map +1 -1
- package/dist/generated/themes/FormItem.css.d.ts +1 -1
- package/dist/generated/themes/FormItem.css.js +1 -1
- package/dist/generated/themes/FormItem.css.js.map +1 -1
- package/dist/generated/themes/FormItemSpan.css.d.ts +1 -1
- package/dist/generated/themes/FormItemSpan.css.js +1 -1
- package/dist/generated/themes/FormItemSpan.css.js.map +1 -1
- package/dist/generated/themes/GrowingButton.css.d.ts +1 -1
- package/dist/generated/themes/GrowingButton.css.js +1 -1
- package/dist/generated/themes/GrowingButton.css.js.map +1 -1
- package/dist/generated/themes/Icon.css.d.ts +1 -1
- package/dist/generated/themes/Icon.css.js +1 -1
- package/dist/generated/themes/Icon.css.js.map +1 -1
- package/dist/generated/themes/Input.css.d.ts +1 -1
- package/dist/generated/themes/Input.css.js +1 -1
- package/dist/generated/themes/Input.css.js.map +1 -1
- package/dist/generated/themes/InputIcon.css.d.ts +1 -1
- package/dist/generated/themes/InputIcon.css.js +1 -1
- package/dist/generated/themes/InputIcon.css.js.map +1 -1
- package/dist/generated/themes/InputSharedStyles.css.d.ts +1 -1
- package/dist/generated/themes/InputSharedStyles.css.js +1 -1
- package/dist/generated/themes/InputSharedStyles.css.js.map +1 -1
- package/dist/generated/themes/Link.css.d.ts +1 -1
- package/dist/generated/themes/Link.css.js +1 -1
- package/dist/generated/themes/Link.css.js.map +1 -1
- package/dist/generated/themes/List.css.d.ts +1 -1
- package/dist/generated/themes/List.css.js +1 -1
- package/dist/generated/themes/List.css.js.map +1 -1
- package/dist/generated/themes/ListItem.css.d.ts +1 -1
- package/dist/generated/themes/ListItem.css.js +1 -1
- package/dist/generated/themes/ListItem.css.js.map +1 -1
- package/dist/generated/themes/ListItemBase.css.d.ts +1 -1
- package/dist/generated/themes/ListItemBase.css.js +1 -1
- package/dist/generated/themes/ListItemBase.css.js.map +1 -1
- package/dist/generated/themes/ListItemCustom.css.d.ts +1 -1
- package/dist/generated/themes/ListItemCustom.css.js +1 -1
- package/dist/generated/themes/ListItemCustom.css.js.map +1 -1
- package/dist/generated/themes/ListItemGroup.css.d.ts +1 -1
- package/dist/generated/themes/ListItemGroup.css.js +1 -1
- package/dist/generated/themes/ListItemGroup.css.js.map +1 -1
- package/dist/generated/themes/ListItemGroupHeader.css.d.ts +1 -1
- package/dist/generated/themes/ListItemGroupHeader.css.js +1 -1
- package/dist/generated/themes/ListItemGroupHeader.css.js.map +1 -1
- package/dist/generated/themes/ListItemIcon.css.d.ts +1 -1
- package/dist/generated/themes/ListItemIcon.css.js +1 -1
- package/dist/generated/themes/ListItemIcon.css.js.map +1 -1
- package/dist/generated/themes/Menu.css.d.ts +1 -1
- package/dist/generated/themes/Menu.css.js +1 -1
- package/dist/generated/themes/Menu.css.js.map +1 -1
- package/dist/generated/themes/MenuItem.css.d.ts +1 -1
- package/dist/generated/themes/MenuItem.css.js +1 -1
- package/dist/generated/themes/MenuItem.css.js.map +1 -1
- package/dist/generated/themes/MessageStrip.css.d.ts +1 -1
- package/dist/generated/themes/MessageStrip.css.js +1 -1
- package/dist/generated/themes/MessageStrip.css.js.map +1 -1
- package/dist/generated/themes/MonthPicker.css.d.ts +1 -1
- package/dist/generated/themes/MonthPicker.css.js +1 -1
- package/dist/generated/themes/MonthPicker.css.js.map +1 -1
- package/dist/generated/themes/MultiComboBox.css.d.ts +1 -1
- package/dist/generated/themes/MultiComboBox.css.js +1 -1
- package/dist/generated/themes/MultiComboBox.css.js.map +1 -1
- package/dist/generated/themes/MultiComboBoxItem.css.d.ts +1 -1
- package/dist/generated/themes/MultiComboBoxItem.css.js +1 -1
- package/dist/generated/themes/MultiComboBoxItem.css.js.map +1 -1
- package/dist/generated/themes/MultiComboBoxPopover.css.d.ts +1 -1
- package/dist/generated/themes/MultiComboBoxPopover.css.js +1 -1
- package/dist/generated/themes/MultiComboBoxPopover.css.js.map +1 -1
- package/dist/generated/themes/MultiInput.css.d.ts +1 -1
- package/dist/generated/themes/MultiInput.css.js +1 -1
- package/dist/generated/themes/MultiInput.css.js.map +1 -1
- package/dist/generated/themes/OptionBase.css.d.ts +1 -1
- package/dist/generated/themes/OptionBase.css.js +1 -1
- package/dist/generated/themes/OptionBase.css.js.map +1 -1
- package/dist/generated/themes/Panel.css.d.ts +1 -1
- package/dist/generated/themes/Panel.css.js +1 -1
- package/dist/generated/themes/Panel.css.js.map +1 -1
- package/dist/generated/themes/Popover.css.d.ts +1 -1
- package/dist/generated/themes/Popover.css.js +1 -1
- package/dist/generated/themes/Popover.css.js.map +1 -1
- package/dist/generated/themes/PopupsCommon.css.d.ts +1 -1
- package/dist/generated/themes/PopupsCommon.css.js +1 -1
- package/dist/generated/themes/PopupsCommon.css.js.map +1 -1
- package/dist/generated/themes/ProgressIndicator.css.d.ts +1 -1
- package/dist/generated/themes/ProgressIndicator.css.js +1 -1
- package/dist/generated/themes/ProgressIndicator.css.js.map +1 -1
- package/dist/generated/themes/RadioButton.css.d.ts +1 -1
- package/dist/generated/themes/RadioButton.css.js +1 -1
- package/dist/generated/themes/RadioButton.css.js.map +1 -1
- package/dist/generated/themes/RangeSlider.css.d.ts +1 -1
- package/dist/generated/themes/RangeSlider.css.js +1 -1
- package/dist/generated/themes/RangeSlider.css.js.map +1 -1
- package/dist/generated/themes/RatingIndicator.css.d.ts +1 -1
- package/dist/generated/themes/RatingIndicator.css.js +1 -1
- package/dist/generated/themes/RatingIndicator.css.js.map +1 -1
- package/dist/generated/themes/ResponsivePopover.css.d.ts +1 -1
- package/dist/generated/themes/ResponsivePopover.css.js +1 -1
- package/dist/generated/themes/ResponsivePopover.css.js.map +1 -1
- package/dist/generated/themes/ResponsivePopoverCommon.css.d.ts +1 -1
- package/dist/generated/themes/ResponsivePopoverCommon.css.js +1 -1
- package/dist/generated/themes/ResponsivePopoverCommon.css.js.map +1 -1
- package/dist/generated/themes/SegmentedButton.css.d.ts +1 -1
- package/dist/generated/themes/SegmentedButton.css.js +1 -1
- package/dist/generated/themes/SegmentedButton.css.js.map +1 -1
- package/dist/generated/themes/SegmentedButtonItem.css.d.ts +1 -1
- package/dist/generated/themes/SegmentedButtonItem.css.js +1 -1
- package/dist/generated/themes/SegmentedButtonItem.css.js.map +1 -1
- package/dist/generated/themes/Select.css.d.ts +1 -1
- package/dist/generated/themes/Select.css.js +1 -1
- package/dist/generated/themes/Select.css.js.map +1 -1
- package/dist/generated/themes/SliderBase.css.d.ts +1 -1
- package/dist/generated/themes/SliderBase.css.js +1 -1
- package/dist/generated/themes/SliderBase.css.js.map +1 -1
- package/dist/generated/themes/SplitButton.css.d.ts +1 -1
- package/dist/generated/themes/SplitButton.css.js +1 -1
- package/dist/generated/themes/SplitButton.css.js.map +1 -1
- package/dist/generated/themes/StepInput.css.d.ts +1 -1
- package/dist/generated/themes/StepInput.css.js +1 -1
- package/dist/generated/themes/StepInput.css.js.map +1 -1
- package/dist/generated/themes/SuggestionItem.css.d.ts +1 -1
- package/dist/generated/themes/SuggestionItem.css.js +1 -1
- package/dist/generated/themes/SuggestionItem.css.js.map +1 -1
- package/dist/generated/themes/SuggestionItemCustom.css.d.ts +1 -1
- package/dist/generated/themes/SuggestionItemCustom.css.js +1 -1
- package/dist/generated/themes/SuggestionItemCustom.css.js.map +1 -1
- package/dist/generated/themes/Switch.css.d.ts +1 -1
- package/dist/generated/themes/Switch.css.js +1 -1
- package/dist/generated/themes/Switch.css.js.map +1 -1
- package/dist/generated/themes/TabContainer.css.d.ts +1 -1
- package/dist/generated/themes/TabContainer.css.js +1 -1
- package/dist/generated/themes/TabContainer.css.js.map +1 -1
- package/dist/generated/themes/TabInOverflow.css.d.ts +1 -1
- package/dist/generated/themes/TabInOverflow.css.js +1 -1
- package/dist/generated/themes/TabInOverflow.css.js.map +1 -1
- package/dist/generated/themes/TabInStrip.css.d.ts +1 -1
- package/dist/generated/themes/TabInStrip.css.js +1 -1
- package/dist/generated/themes/TabInStrip.css.js.map +1 -1
- package/dist/generated/themes/TabSemanticIcon.css.d.ts +1 -1
- package/dist/generated/themes/TabSemanticIcon.css.js +1 -1
- package/dist/generated/themes/TabSemanticIcon.css.js.map +1 -1
- package/dist/generated/themes/TabSeparatorInOverflow.css.d.ts +1 -1
- package/dist/generated/themes/TabSeparatorInOverflow.css.js +1 -1
- package/dist/generated/themes/TabSeparatorInOverflow.css.js.map +1 -1
- package/dist/generated/themes/Table.css.d.ts +1 -1
- package/dist/generated/themes/Table.css.js +1 -1
- package/dist/generated/themes/Table.css.js.map +1 -1
- package/dist/generated/themes/TableCellBase.css.d.ts +1 -1
- package/dist/generated/themes/TableCellBase.css.js +1 -1
- package/dist/generated/themes/TableCellBase.css.js.map +1 -1
- package/dist/generated/themes/TableHeaderRow.css.d.ts +1 -1
- package/dist/generated/themes/TableHeaderRow.css.js +1 -1
- package/dist/generated/themes/TableHeaderRow.css.js.map +1 -1
- package/dist/generated/themes/TableRow.css.d.ts +1 -1
- package/dist/generated/themes/TableRow.css.js +1 -1
- package/dist/generated/themes/TableRow.css.js.map +1 -1
- package/dist/generated/themes/TableRowActionBase.css.d.ts +1 -1
- package/dist/generated/themes/TableRowActionBase.css.js +1 -1
- package/dist/generated/themes/TableRowActionBase.css.js.map +1 -1
- package/dist/generated/themes/TableRowBase.css.d.ts +1 -1
- package/dist/generated/themes/TableRowBase.css.js +1 -1
- package/dist/generated/themes/TableRowBase.css.js.map +1 -1
- package/dist/generated/themes/Tag.css.d.ts +1 -1
- package/dist/generated/themes/Tag.css.js +1 -1
- package/dist/generated/themes/Tag.css.js.map +1 -1
- package/dist/generated/themes/Text.css.d.ts +1 -1
- package/dist/generated/themes/Text.css.js +1 -1
- package/dist/generated/themes/Text.css.js.map +1 -1
- package/dist/generated/themes/TextArea.css.d.ts +1 -1
- package/dist/generated/themes/TextArea.css.js +1 -1
- package/dist/generated/themes/TextArea.css.js.map +1 -1
- package/dist/generated/themes/TimePicker.css.d.ts +1 -1
- package/dist/generated/themes/TimePicker.css.js +1 -1
- package/dist/generated/themes/TimePicker.css.js.map +1 -1
- package/dist/generated/themes/Toast.css.d.ts +1 -1
- package/dist/generated/themes/Toast.css.js +1 -1
- package/dist/generated/themes/Toast.css.js.map +1 -1
- package/dist/generated/themes/ToggleButton.css.d.ts +1 -1
- package/dist/generated/themes/ToggleButton.css.js +1 -1
- package/dist/generated/themes/ToggleButton.css.js.map +1 -1
- package/dist/generated/themes/Token.css.d.ts +1 -1
- package/dist/generated/themes/Token.css.js +1 -1
- package/dist/generated/themes/Token.css.js.map +1 -1
- package/dist/generated/themes/Tokenizer.css.d.ts +1 -1
- package/dist/generated/themes/Tokenizer.css.js +1 -1
- package/dist/generated/themes/Tokenizer.css.js.map +1 -1
- package/dist/generated/themes/TokenizerPopover.css.d.ts +1 -1
- package/dist/generated/themes/TokenizerPopover.css.js +1 -1
- package/dist/generated/themes/TokenizerPopover.css.js.map +1 -1
- package/dist/generated/themes/Toolbar.css.d.ts +1 -1
- package/dist/generated/themes/Toolbar.css.js +1 -1
- package/dist/generated/themes/Toolbar.css.js.map +1 -1
- package/dist/generated/themes/ToolbarPopover.css.d.ts +1 -1
- package/dist/generated/themes/ToolbarPopover.css.js +1 -1
- package/dist/generated/themes/ToolbarPopover.css.js.map +1 -1
- package/dist/generated/themes/TreeItem.css.d.ts +1 -1
- package/dist/generated/themes/TreeItem.css.js +1 -1
- package/dist/generated/themes/TreeItem.css.js.map +1 -1
- package/dist/generated/themes/ValueStateMessage.css.d.ts +1 -1
- package/dist/generated/themes/ValueStateMessage.css.js +1 -1
- package/dist/generated/themes/ValueStateMessage.css.js.map +1 -1
- package/dist/generated/themes/YearPicker.css.d.ts +1 -1
- package/dist/generated/themes/YearPicker.css.js +1 -1
- package/dist/generated/themes/YearPicker.css.js.map +1 -1
- package/dist/generated/themes/sap_fiori_3/parameters-bundle.css.d.ts +1 -1
- package/dist/generated/themes/sap_fiori_3/parameters-bundle.css.js +1 -1
- package/dist/generated/themes/sap_fiori_3/parameters-bundle.css.js.map +1 -1
- package/dist/generated/themes/sap_fiori_3_dark/parameters-bundle.css.d.ts +1 -1
- package/dist/generated/themes/sap_fiori_3_dark/parameters-bundle.css.js +1 -1
- package/dist/generated/themes/sap_fiori_3_dark/parameters-bundle.css.js.map +1 -1
- package/dist/generated/themes/sap_fiori_3_hcb/parameters-bundle.css.d.ts +1 -1
- package/dist/generated/themes/sap_fiori_3_hcb/parameters-bundle.css.js +1 -1
- package/dist/generated/themes/sap_fiori_3_hcb/parameters-bundle.css.js.map +1 -1
- package/dist/generated/themes/sap_fiori_3_hcw/parameters-bundle.css.d.ts +1 -1
- package/dist/generated/themes/sap_fiori_3_hcw/parameters-bundle.css.js +1 -1
- package/dist/generated/themes/sap_fiori_3_hcw/parameters-bundle.css.js.map +1 -1
- package/dist/generated/themes/sap_horizon/parameters-bundle.css.d.ts +1 -1
- package/dist/generated/themes/sap_horizon/parameters-bundle.css.js +1 -1
- package/dist/generated/themes/sap_horizon/parameters-bundle.css.js.map +1 -1
- package/dist/generated/themes/sap_horizon_dark/parameters-bundle.css.d.ts +1 -1
- package/dist/generated/themes/sap_horizon_dark/parameters-bundle.css.js +1 -1
- package/dist/generated/themes/sap_horizon_dark/parameters-bundle.css.js.map +1 -1
- package/dist/generated/themes/sap_horizon_hcb/parameters-bundle.css.d.ts +1 -1
- package/dist/generated/themes/sap_horizon_hcb/parameters-bundle.css.js +1 -1
- package/dist/generated/themes/sap_horizon_hcb/parameters-bundle.css.js.map +1 -1
- package/dist/generated/themes/sap_horizon_hcw/parameters-bundle.css.d.ts +1 -1
- package/dist/generated/themes/sap_horizon_hcw/parameters-bundle.css.js +1 -1
- package/dist/generated/themes/sap_horizon_hcw/parameters-bundle.css.js.map +1 -1
- package/dist/vscode.html-custom-data.json +1 -1
- package/dist/web-types.json +4 -4
- package/package.json +12 -10
- package/src/DayPickerTemplate.tsx +1 -0
- package/src/MenuItemTemplate.tsx +0 -10
- package/src/SelectPopoverTemplate.tsx +1 -1
- package/src/TableGrowing.hbs +17 -19
- package/src/i18n/messagebundle_en_US_saprigi.properties +0 -2
- package/src/themes/DayPicker.css +1 -0
- package/src/themes/MenuItem.css +5 -1
- package/cypress/specs/ColorPalette.cy.ts +0 -46
- package/cypress/specs/MessageStrip.cy.ts +0 -91
- package/cypress/specs/RTL.cy.ts +0 -17
- package/cypress/specs/Table.cy.ts +0 -636
- package/cypress/specs/TableLoading.cy.ts +0 -44
- package/cypress/specs/Title.cy.ts +0 -37
- package/cypress/specs/Tokenizer.cy.ts +0 -114
- package/cypress/specs/base/Tooltips.cy.ts +0 -55
- /package/cypress/specs/{TableUtils.cy.ts → TableUtils.cy.tsx} +0 -0
- /package/cypress/specs/base/{InvisibleMessage.cy.ts → InvisibleMessage.cy.tsx} +0 -0
package/dist/Calendar.d.ts
CHANGED
package/dist/Calendar.js
CHANGED
|
@@ -271,6 +271,10 @@ let Calendar = Calendar_1 = class Calendar extends CalendarPart {
|
|
|
271
271
|
: true;
|
|
272
272
|
return isTypeMatch && dateValue && this._isValidCalendarDate(dateValue);
|
|
273
273
|
});
|
|
274
|
+
validSpecialDates.forEach(date => {
|
|
275
|
+
const refLegendItem = this.calendarLegend.length ? this.calendarLegend[0].items.find(item => item.type === date.type) : undefined;
|
|
276
|
+
date._tooltip = refLegendItem?.text || "";
|
|
277
|
+
});
|
|
274
278
|
const uniqueDates = new Set();
|
|
275
279
|
const uniqueSpecialDates = [];
|
|
276
280
|
validSpecialDates.forEach(date => {
|
|
@@ -280,7 +284,8 @@ let Calendar = Calendar_1 = class Calendar extends CalendarPart {
|
|
|
280
284
|
uniqueDates.add(timestamp);
|
|
281
285
|
const specialDateTimestamp = CalendarDateComponent.fromLocalJSDate(dateFromValue).valueOf() / 1000;
|
|
282
286
|
const type = date.type;
|
|
283
|
-
|
|
287
|
+
const tooltip = date._tooltip;
|
|
288
|
+
uniqueSpecialDates.push({ specialDateTimestamp, type, tooltip });
|
|
284
289
|
}
|
|
285
290
|
});
|
|
286
291
|
return uniqueSpecialDates;
|
|
@@ -406,7 +411,7 @@ let Calendar = Calendar_1 = class Calendar extends CalendarPart {
|
|
|
406
411
|
const secondYearFormat = DateFormat.getDateInstance({ format: "y", calendarType: this._secondaryCalendarType });
|
|
407
412
|
const dateInSecType = transformDateToSecondaryType(this._primaryCalendarType, this._secondaryCalendarType, this._timestamp);
|
|
408
413
|
const secondMonthInfo = convertMonthNumbersToMonthNames(dateInSecType.firstDate.getMonth(), dateInSecType.lastDate.getMonth(), this._secondaryCalendarType);
|
|
409
|
-
const secondYearText = secondYearFormat.format(localDate
|
|
414
|
+
const secondYearText = secondYearFormat.format(localDate);
|
|
410
415
|
return {
|
|
411
416
|
yearButtonText: secondYearText,
|
|
412
417
|
monthButtonText: secondMonthInfo.text,
|
|
@@ -613,7 +618,7 @@ __decorate([
|
|
|
613
618
|
property({ noAttribute: true })
|
|
614
619
|
], Calendar.prototype, "_pickersMode", void 0);
|
|
615
620
|
__decorate([
|
|
616
|
-
slot({ type: HTMLElement })
|
|
621
|
+
slot({ type: HTMLElement, invalidateOnChildChange: true })
|
|
617
622
|
], Calendar.prototype, "calendarLegend", void 0);
|
|
618
623
|
__decorate([
|
|
619
624
|
slot({ type: HTMLElement, invalidateOnChildChange: true, "default": true })
|
package/dist/Calendar.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Calendar.js","sourceRoot":"","sources":["../src/Calendar.ts"],"names":[],"mappings":"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","sourcesContent":["import customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport type UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport type { ChangeInfo } from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event-strict.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot.js\";\nimport i18n from \"@ui5/webcomponents-base/dist/decorators/i18n.js\";\nimport transformDateToSecondaryType from \"@ui5/webcomponents-localization/dist/dates/transformDateToSecondaryType.js\";\nimport convertMonthNumbersToMonthNames from \"@ui5/webcomponents-localization/dist/dates/convertMonthNumbersToMonthNames.js\";\nimport CalendarDateComponent from \"@ui5/webcomponents-localization/dist/dates/CalendarDate.js\";\nimport { renderFinished } from \"@ui5/webcomponents-base/dist/Render.js\";\nimport {\n\tisEnter,\n\tisF4,\n\tisF4Shift,\n\tisSpace,\n} from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport getCachedLocaleDataInstance from \"@ui5/webcomponents-localization/dist/getCachedLocaleDataInstance.js\";\nimport getLocale from \"@ui5/webcomponents-base/dist/locale/getLocale.js\";\nimport DateFormat from \"@ui5/webcomponents-localization/dist/DateFormat.js\";\nimport UI5Date from \"@ui5/webcomponents-localization/dist/dates/UI5Date.js\";\nimport \"@ui5/webcomponents-icons/dist/slim-arrow-left.js\";\nimport \"@ui5/webcomponents-icons/dist/slim-arrow-right.js\";\nimport CalendarDate from \"./CalendarDate.js\";\nimport CalendarDateRange from \"./CalendarDateRange.js\";\nimport \"./SpecialCalendarDate.js\";\nimport CalendarPart from \"./CalendarPart.js\";\nimport type { DayPickerChangeEventDetail } from \"./DayPicker.js\";\nimport type { MonthPickerChangeEventDetail } from \"./MonthPicker.js\";\nimport type { YearPickerChangeEventDetail } from \"./YearPicker.js\";\nimport CalendarSelectionMode from \"./types/CalendarSelectionMode.js\";\nimport CalendarPickersMode from \"./types/CalendarPickersMode.js\";\nimport type CalendarLegend from \"./CalendarLegend.js\";\nimport type { CalendarLegendItemSelectionChangeEventDetail } from \"./CalendarLegend.js\";\nimport type SpecialCalendarDate from \"./SpecialCalendarDate.js\";\nimport type CalendarLegendItemType from \"./types/CalendarLegendItemType.js\";\n\n// Default calendar for bundling\nimport \"@ui5/webcomponents-localization/dist/features/calendar/Gregorian.js\";\n\n// Template\nimport CalendarTemplate from \"./CalendarTemplate.js\";\n\n// Styles\nimport calendarCSS from \"./generated/themes/Calendar.css.js\";\nimport CalendarHeaderCss from \"./generated/themes/CalendarHeader.css.js\";\nimport { CALENDAR_HEADER_NEXT_BUTTON, CALENDAR_HEADER_PREVIOUS_BUTTON } from \"./generated/i18n/i18n-defaults.js\";\n\ninterface ICalendarPicker {\n\t_showPreviousPage: () => void,\n\t_showNextPage: () => void,\n\t_hasPreviousPage: () => boolean,\n\t_hasNextPage: () => boolean,\n\t_autoFocus?: boolean,\n\t_firstYear?: number,\n\t_lastYear?: number,\n}\n\n/**\n * Interface for components that may be slotted inside a `ui5-calendar`.\n *\n * **Note:** Use with `ui5-date` or `ui5-date-range` as calendar date selection types.\n * @public\n */\ninterface ICalendarSelectedDates extends UI5Element {\n\tvalue?: string,\n\tstartValue?: string,\n\tendValue?: string\n}\n\ntype CalendarSelectionChangeEventDetail = {\n\tselectedValues: Array<string>,\n\tselectedDates: Array<number>,\n\ttimestamp: number | undefined,\n}\n\ntype SpecialCalendarDateT = {\n\tspecialDateTimestamp: number;\n\ttype: `${CalendarLegendItemType}`;\n};\n\n/**\n * @class\n *\n * ### Overview\n *\n * The `ui5-calendar` component allows users to select one or more dates.\n *\n * Currently selected dates are represented with instances of `ui5-date` as\n * children of the `ui5-calendar`. The value property of each `ui5-date` must be a\n * date string, correctly formatted according to the `ui5-calendar`'s `formatPattern` property.\n * Whenever the user changes the date selection, `ui5-calendar` will automatically create/remove instances\n * of `ui5-date` in itself, unless you prevent this behavior by calling `preventDefault()` for the\n * `selection-change` event. This is useful if you want to control the selected dates externally.\n *\n * ### Usage\n *\n * The user can navigate to a particular date by:\n *\n * - Pressing over a month inside the months view\n * - Pressing over an year inside the years view\n *\n * The user can confirm a date selection by pressing over a date inside the days view.\n *\n * ### Keyboard Handling\n * The `ui5-calendar` provides advanced keyboard handling.\n * When a picker is showed and focused the user can use the following keyboard\n * shortcuts in order to perform a navigation:\n *\n * - Day picker:\n *\n * - [F4] - Shows month picker\n * - [Shift] + [F4] - Shows year picker\n * - [Page Up] - Navigate to the previous month\n * - [Page Down] - Navigate to the next month\n * - [Shift] + [Page Up] - Navigate to the previous year\n * - [Shift] + [Page Down] - Navigate to the next year\n * - [Ctrl] + [Shift] + [Page Up] - Navigate ten years backwards\n * - [Ctrl] + [Shift] + [Page Down] - Navigate ten years forwards\n * - [Home] - Navigate to the first day of the week\n * - [End] - Navigate to the last day of the week\n * - [Ctrl] + [Home] - Navigate to the first day of the month\n * - [Ctrl] + [End] - Navigate to the last day of the month\n *\n * - Month picker:\n *\n * - [Page Up] - Navigate to the previous year\n * - [Page Down] - Navigate to the next year\n * - [Home] - Navigate to the first month of the current row\n * - [End] - Navigate to the last month of the current row\n * - [Ctrl] + [Home] - Navigate to the first month of the current year\n * - [Ctrl] + [End] - Navigate to the last month of the year\n *\n * - Year picker:\n *\n * - [Page Up] - Navigate to the previous year range\n * - [Page Down] - Navigate the next year range\n * - [Home] - Navigate to the first year of the current row\n * - [End] - Navigate to the last year of the current row\n * - [Ctrl] + [Home] - Navigate to the first year of the current year range\n * - [Ctrl] + [End] - Navigate to the last year of the current year range\n *\n * #### Fast Navigation\n * This component provides a build in fast navigation group which can be used via [F6] / [Shift] + [F6] / [Ctrl] + [Alt/Option] / [Down] or [Ctrl] + [Alt/Option] + [Up].\n * In order to use this functionality, you need to import the following module:\n * `import \"@ui5/webcomponents-base/dist/features/F6Navigation.js\"`\n *\n * ### Calendar types\n * The component supports several calendar types - Gregorian, Buddhist, Islamic, Japanese and Persian.\n * By default the Gregorian Calendar is used. In order to use the Buddhist, Islamic, Japanese or Persian calendar,\n * you need to set the `primaryCalendarType` property and import one or more of the following modules:\n *\n * `import \"@ui5/webcomponents-localization/dist/features/calendar/Buddhist.js\";`\n *\n * `import \"@ui5/webcomponents-localization/dist/features/calendar/Islamic.js\";`\n *\n * `import \"@ui5/webcomponents-localization/dist/features/calendar/Japanese.js\";`\n *\n * `import \"@ui5/webcomponents-localization/dist/features/calendar/Persian.js\";`\n *\n * Or, you can use the global configuration and set the `calendarType` key:\n *\n * ```html\n * <script data-id=\"sap-ui-config\" type=\"application/json\">\n * \t{\n * \t\t\"calendarType\": \"Japanese\"\n * \t}\n * </script>\n * ```\n *\n * ### ES6 Module Import\n *\n * `import \"@ui5/webcomponents/dist/Calendar.js\";`\n * @constructor\n * @extends CalendarPart\n * @public\n * @csspart day-cell - Used to style the day cells.\n * @csspart day-cell-selected - Used to style the day cells when selected.\n * @csspart day-cell-selected-between - Used to style the day cells in between of selected dates in range.\n * @csspart month-cell - Used to style the month cells.\n * @csspart month-cell-selected - Used to style the month cells when selected.\n * @csspart month-cell-selected-between - Used to style the day cells in between of selected months in range.\n * @csspart year-cell - Used to style the year cells.\n * @csspart year-cell-selected - Used to style the year cells when selected.\n * @csspart year-cell-selected-between - Used to style the day cells in between of selected years in range.\n * @since 1.0.0-rc.11\n */\n@customElement({\n\ttag: \"ui5-calendar\",\n\tfastNavigation: true,\n\ttemplate: CalendarTemplate,\n\tstyles: [calendarCSS, CalendarHeaderCss],\n})\n/**\n * Fired when the selected dates change.\n *\n * **Note:** If you call `preventDefault()` for this event, the component will not\n * create instances of `ui5-date` for the newly selected dates. In that case you should do this manually.\n * @param {Array<string>} selectedValues The selected dates\n * @param {Array<number>} selectedDates The selected dates as UTC timestamps\n * @public\n */\n@event(\"selection-change\", {\n\tbubbles: true,\n\tcancelable: true,\n})\n\n@event(\"show-month-view\", {\n\tbubbles: true,\n})\n@event(\"show-year-view\", {\n\tbubbles: true,\n})\nclass Calendar extends CalendarPart {\n\teventDetails!: CalendarPart[\"eventDetails\"] & {\n\t\t\"selection-change\": CalendarSelectionChangeEventDetail,\n\t\t\"show-month-view\": void,\n\t\t\"show-year-view\": void,\n\t}\n\t/**\n\t * Defines the type of selection used in the calendar component.\n\t * Accepted property values are:\n\t *\n\t * - `CalendarSelectionMode.Single` - enables a single date selection.(default value)\n\t * - `CalendarSelectionMode.Range` - enables selection of a date range.\n\t * - `CalendarSelectionMode.Multiple` - enables selection of multiple dates.\n\t * @default \"Single\"\n\t * @public\n\t */\n\t@property()\n\tselectionMode: `${CalendarSelectionMode}` = \"Single\";\n\n\t/**\n\t * Defines the visibility of the week numbers column.\n\t *\n\t * **Note:** For calendars other than Gregorian,\n\t * the week numbers are not displayed regardless of what is set.\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\thideWeekNumbers = false;\n\n\t/**\n\t * Which picker is currently visible to the user: day/month/year\n\t * @private\n\t */\n\t@property()\n\t_currentPicker: \"day\" | \"month\" | \"year\" = \"day\"\n\n\t@property({ type: Boolean })\n\t_previousButtonDisabled = false;\n\n\t@property({ type: Boolean })\n\t_nextButtonDisabled = false;\n\n\t@property()\n\t_headerMonthButtonText?: string;\n\n\t@property()\n\t_headerYearButtonText?: string;\n\n\t@property()\n\t_headerYearButtonTextSecType?: string;\n\n\t@property({ noAttribute: true })\n\t_pickersMode: `${CalendarPickersMode}` = \"DAY_MONTH_YEAR\";\n\n\t_valueIsProcessed = false;\n\n\t/**\n\t * Defines the calendar legend of the component.\n\t * @public\n\t * @since 1.23.0\n\t */\n\t@slot({ type: HTMLElement })\n\tcalendarLegend!: Array<CalendarLegend>;\n\n\t/**\n\t * Defines the selected date or dates (depending on the `selectionMode` property)\n\t * for this calendar as instances of `ui5-date` or `ui5-date-range`.\n\t * Use `ui5-date` for single or multiple selection, and `ui5-date-range` for range selection.\n\t * @public\n\t */\n\t@slot({ type: HTMLElement, invalidateOnChildChange: true, \"default\": true })\n\tdates!: Array<ICalendarSelectedDates>;\n\n\t/**\n\t * Defines the special dates, visually emphasized in the calendar.\n\t * @public\n\t * @since 1.23.0\n\t */\n\t@slot({ type: HTMLElement, invalidateOnChildChange: true })\n\tspecialDates!: Array<SpecialCalendarDate>;\n\n\t/**\n\t * Defines the selected item type of the calendar legend item (if such exists).\n\t * @private\n\t */\n\t@property()\n\t_selectedItemType: `${CalendarLegendItemType}` = \"None\";\n\n\t@i18n(\"@ui5/webcomponents\")\n\tstatic i18nBundle: I18nBundle;\n\n\tconstructor() {\n\t\tsuper();\n\n\t\tthis._valueIsProcessed = false;\n\t}\n\n\t/**\n\t * @private\n\t */\n\tget _selectedDatesTimestamps(): Array<number> {\n\t\tlet selectedDates: Array<number> = [];\n\n\t\tif (this.selectionMode === CalendarSelectionMode.Range) {\n\t\t\tconst range = this.dates.find(date => date.hasAttribute(\"ui5-date-range\"));\n\t\t\tconst startDate = range && range.startValue && this.getFormat().parse(range.startValue, true) as Date;\n\t\t\tconst endDate = range && range.endValue && this.getFormat().parse(range.endValue, true) as Date;\n\n\t\t\tif (startDate) {\n\t\t\t\tselectedDates.push(startDate.getTime() / 1000);\n\t\t\t}\n\n\t\t\tif (endDate) {\n\t\t\t\tselectedDates.push(endDate.getTime() / 1000);\n\t\t\t}\n\t\t} else {\n\t\t\tselectedDates = this.dates\n\t\t\t\t.filter(dateElement => {\n\t\t\t\t\treturn dateElement.hasAttribute(\"ui5-date\")\n\t\t\t\t\t\t&& dateElement.value\n\t\t\t\t\t\t&& this._isValidCalendarDate(dateElement.value)\n\t\t\t\t\t\t&& this._getTimeStampFromString(dateElement.value);\n\t\t\t\t})\n\t\t\t\t.map(dateElement => Number(this._getTimeStampFromString(dateElement.value!)) / 1000);\n\t\t}\n\n\t\treturn selectedDates;\n\t}\n\n\t/**\n\t * @private\n\t */\n\t_setSelectedDates(selectedDates: Array<number>) {\n\t\tconst selectedUTCDates = selectedDates.map(timestamp => this.getFormat().format(UI5Date.getInstance(timestamp * 1000), true));\n\n\t\tif (this.selectionMode === CalendarSelectionMode.Range) {\n\t\t\t// Create tags for the selected dates that don't already exist in DOM\n\t\t\tif (selectedUTCDates.length) {\n\t\t\t\tlet dateRange = this.dates.find(dateElement => dateElement.hasAttribute(\"ui5-date-range\") && dateElement.startValue === selectedUTCDates[0]);\n\t\t\t\tif (!dateRange) {\n\t\t\t\t\tdateRange = document.createElement(CalendarDateRange.getMetadata().getTag()) as CalendarDateRange;\n\t\t\t\t\tdateRange.startValue = selectedUTCDates[0];\n\t\t\t\t\tthis.appendChild(dateRange);\n\t\t\t\t} else {\n\t\t\t\t\tdateRange.endValue = selectedUTCDates[1];\n\t\t\t\t}\n\t\t\t\t// Remove all elements for dates that are no longer selected\n\t\t\t\tthis.dates\n\t\t\t\t\t.filter(dateElement => {\n\t\t\t\t\t\treturn dateElement.hasAttribute(\"ui5-date\")\n\t\t\t\t\t\t\t|| (dateRange && dateElement.startValue !== dateRange.startValue);\n\t\t\t\t\t})\n\t\t\t\t\t.forEach(dateElement => {\n\t\t\t\t\t\tthis.removeChild(dateElement);\n\t\t\t\t\t});\n\t\t\t}\n\t\t} else {\n\t\t\tconst valuesInDOM = this._selectedDatesTimestamps.map(timestamp => this.getFormat().format(UI5Date.getInstance(timestamp * 1000)));\n\n\t\t\t// Remove all elements for dates that are no longer selected\n\t\t\tthis.dates\n\t\t\t\t.filter(dateElement => {\n\t\t\t\t\treturn dateElement.hasAttribute(\"ui5-date-range\")\n\t\t\t\t\t\t|| (dateElement.hasAttribute(\"ui5-date\") && !selectedUTCDates.includes(dateElement.value!));\n\t\t\t\t})\n\t\t\t\t.forEach(dateElement => {\n\t\t\t\t\tthis.removeChild(dateElement);\n\t\t\t\t});\n\n\t\t\t// Create tags for the selected dates that don't already exist in DOM\n\t\t\tselectedUTCDates\n\t\t\t\t.filter(value => !valuesInDOM.includes(value))\n\t\t\t\t.forEach(value => {\n\t\t\t\t\tconst dateElement = document.createElement(CalendarDate.getMetadata().getTag()) as CalendarDate;\n\t\t\t\t\tdateElement.value = value;\n\t\t\t\t\tthis.appendChild(dateElement);\n\t\t\t\t});\n\t\t}\n\t}\n\n\t_isValidCalendarDate(dateString: string): boolean {\n\t\tconst date = this.getFormat().parse(dateString);\n\t\treturn !!date;\n\t}\n\n\tget _specialCalendarDates() {\n\t\tconst hasSelectedType = this._specialDates.some(date => date.type === this._selectedItemType);\n\t\tconst validSpecialDates = this._specialDates.filter(date => {\n\t\t\tconst dateType = date.type;\n\t\t\tconst dateValue = date.value;\n\t\t\tconst isTypeMatch = hasSelectedType\n\t\t\t\t? (dateType === this._selectedItemType || dateType === \"Working\" || dateType === \"NonWorking\")\n\t\t\t\t: true;\n\t\t\treturn isTypeMatch && dateValue && this._isValidCalendarDate(dateValue);\n\t\t});\n\n\t\tconst uniqueDates = new Set();\n\t\tconst uniqueSpecialDates: Array<SpecialCalendarDateT> = [];\n\n\t\tvalidSpecialDates.forEach(date => {\n\t\t\tconst dateFromValue = this.getFormat().parse(date.value) as Date | UI5Date;\n\t\t\tconst timestamp = dateFromValue.getTime();\n\n\t\t\tif (!uniqueDates.has(timestamp)) {\n\t\t\t\tuniqueDates.add(timestamp);\n\t\t\t\tconst specialDateTimestamp = CalendarDateComponent.fromLocalJSDate(dateFromValue).valueOf() / 1000;\n\t\t\t\tconst type = date.type;\n\t\t\t\tuniqueSpecialDates.push({ specialDateTimestamp, type });\n\t\t\t}\n\t\t});\n\n\t\treturn uniqueSpecialDates;\n\t}\n\n\t_onCalendarLegendSelectionChange(e: CustomEvent<CalendarLegendItemSelectionChangeEventDetail>) {\n\t\tconst defaultTypes = [\"Working\", \"NonWorking\", \"Selected\", \"Today\"];\n\t\tthis._selectedItemType = e.detail.item.type;\n\n\t\tif (defaultTypes.includes(this._selectedItemType)) {\n\t\t\tthis._selectedItemType = \"None\"; // In order to avoid filtering of default types\n\t\t}\n\t\tthis._currentPickerDOM._autoFocus = false;\n\t}\n\n\t/**\n\t * Makes sure that _currentPicker is always set to a value, allowed by _pickersMode\n\t */\n\t_normalizeCurrentPicker() {\n\t\tif (this._currentPicker === \"day\" && this._pickersMode !== CalendarPickersMode.DAY_MONTH_YEAR) {\n\t\t\tthis._currentPicker = \"month\";\n\t\t}\n\n\t\tif (this._currentPicker === \"month\" && this._pickersMode === CalendarPickersMode.YEAR) {\n\t\t\tthis._currentPicker = \"year\";\n\t\t}\n\t}\n\n\tonBeforeRendering() {\n\t\tthis._normalizeCurrentPicker();\n\n\t\tif (!this._valueIsProcessed) {\n\t\t\tif (this._selectedDatesTimestamps) {\n\t\t\t\tthis.timestamp = this._selectedDatesTimestamps[0];\n\t\t\t}\n\n\t\t\tthis._valueIsProcessed = true;\n\t\t}\n\t}\n\n\tasync onAfterRendering() {\n\t\tawait renderFinished(); // Await for the current picker to render and then ask if it has previous/next pages\n\t\tthis._previousButtonDisabled = !this._currentPickerDOM._hasPreviousPage();\n\t\tthis._nextButtonDisabled = !this._currentPickerDOM._hasNextPage();\n\n\t\tconst yearFormat = DateFormat.getDateInstance({ format: \"y\", calendarType: this.primaryCalendarType });\n\t\tconst localeData = getCachedLocaleDataInstance(getLocale());\n\t\tthis._headerMonthButtonText = localeData.getMonthsStandAlone(\"wide\", this.primaryCalendarType)[this._calendarDate.getMonth()];\n\n\t\tif (this._currentPicker === \"year\") {\n\t\t\tconst rangeStart = new CalendarDateComponent(this._calendarDate, this._primaryCalendarType);\n\t\t\tconst rangeEnd = new CalendarDateComponent(this._calendarDate, this._primaryCalendarType);\n\t\t\trangeStart.setYear(this._currentPickerDOM._firstYear!);\n\t\t\trangeEnd.setYear(this._currentPickerDOM._lastYear!);\n\n\t\t\tthis._headerYearButtonText = `${yearFormat.format(rangeStart.toLocalJSDate(), true)} - ${yearFormat.format(rangeEnd.toLocalJSDate(), true)}`;\n\t\t} else {\n\t\t\tthis._headerYearButtonText = String(yearFormat.format(this._localDate, true));\n\t\t}\n\n\t\tthis._secondaryCalendarType && this._setSecondaryCalendarTypeButtonText();\n\t}\n\n\tonInvalidation(changeInfo: ChangeInfo) {\n\t\tif (changeInfo.reason === \"childchange\") {\n\t\t\tthis._valueIsProcessed = false;\n\t\t}\n\t}\n\n\t/**\n\t * The user clicked the \"month\" button in the header\n\t */\n\tonHeaderShowMonthPress() {\n\t\tthis.showMonth();\n\t\tthis.fireDecoratorEvent(\"show-month-view\");\n\t}\n\n\tshowMonth() {\n\t\tthis._currentPickerDOM._autoFocus = false;\n\t\tthis._currentPicker = \"month\";\n\t}\n\n\t/**\n\t * The user clicked the \"year\" button in the header\n\t */\n\tonHeaderShowYearPress() {\n\t\tthis.showYear();\n\t\tthis.fireDecoratorEvent(\"show-year-view\");\n\t}\n\n\tshowYear() {\n\t\tthis._currentPickerDOM._autoFocus = false;\n\t\tthis._currentPicker = \"year\";\n\t}\n\n\tget _currentPickerDOM() {\n\t\t// Calendar's shadowRoot and all the pickers are always present - the \"!\" is safe to be used.\n\t\treturn this.shadowRoot!.querySelector(`[ui5-${this._currentPicker}picker]`)! as unknown as ICalendarPicker;\n\t}\n\n\t/**\n\t * The year clicked the \"Previous\" button in the header\n\t */\n\tonHeaderPreviousPress() {\n\t\tthis._currentPickerDOM._showPreviousPage();\n\n\t\tif (this.calendarLegend) {\n\t\t\tthis._currentPickerDOM._autoFocus = true;\n\t\t}\n\t}\n\n\t/**\n\t * The year clicked the \"Next\" button in the header\n\t */\n\tonHeaderNextPress() {\n\t\tthis._currentPickerDOM._showNextPage();\n\n\t\tif (this.calendarLegend) {\n\t\t\tthis._currentPickerDOM._autoFocus = true;\n\t\t}\n\t}\n\n\t_setSecondaryCalendarTypeButtonText() {\n\t\tconst yearFormatSecType = DateFormat.getDateInstance({ format: \"y\", calendarType: this._secondaryCalendarType });\n\n\t\tif (this._currentPicker === \"year\") {\n\t\t\tconst rangeStart = new CalendarDateComponent(this._calendarDate, this._primaryCalendarType);\n\t\t\tconst rangeEnd = new CalendarDateComponent(this._calendarDate, this._primaryCalendarType);\n\t\t\trangeStart.setYear(this._currentPickerDOM._firstYear!);\n\t\t\trangeEnd.setYear(this._currentPickerDOM._lastYear!);\n\n\t\t\tconst rangeStartSecType = transformDateToSecondaryType(this.primaryCalendarType, this._secondaryCalendarType, rangeStart.valueOf() / 1000, true)\n\t\t\t\t.firstDate;\n\t\t\tconst rangeEndSecType = transformDateToSecondaryType(this.primaryCalendarType, this._secondaryCalendarType, rangeEnd.valueOf() / 1000, true)\n\t\t\t\t.lastDate;\n\t\t\tthis._headerYearButtonTextSecType = `${yearFormatSecType.format(rangeStartSecType.toLocalJSDate(), true)} - ${yearFormatSecType.format(rangeEndSecType.toLocalJSDate(), true)}`;\n\t\t} else {\n\t\t\tthis._headerYearButtonTextSecType = String(yearFormatSecType.format(this._localDate, true));\n\t\t}\n\t}\n\n\tget secondaryCalendarTypeButtonText() {\n\t\tif (!this.hasSecondaryCalendarType) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst localDate = UI5Date.getInstance(this._timestamp * 1000);\n\t\tconst secondYearFormat = DateFormat.getDateInstance({ format: \"y\", calendarType: this._secondaryCalendarType });\n\t\tconst dateInSecType = transformDateToSecondaryType(this._primaryCalendarType, this._secondaryCalendarType, this._timestamp);\n\t\tconst secondMonthInfo = convertMonthNumbersToMonthNames(dateInSecType.firstDate.getMonth(), dateInSecType.lastDate.getMonth(), this._secondaryCalendarType);\n\t\tconst secondYearText = secondYearFormat.format(localDate, true);\n\n\t\treturn {\n\t\t\tyearButtonText: secondYearText,\n\t\t\tmonthButtonText: secondMonthInfo.text,\n\t\t\tmonthButtonInfo: secondMonthInfo.textInfo,\n\t\t};\n\t}\n\n\t/**\n\t * The month button is hidden when the month picker or year picker is shown\n\t * @private\n\t */\n\tget _isHeaderMonthButtonHidden(): boolean {\n\t\treturn this._currentPicker === \"month\" || this._currentPicker === \"year\";\n\t}\n\n\t/**\n\t * The year button is hidden when the year picker is shown\n\t * @private\n\t */\n\tget _isHeaderYearButtonHidden(): boolean {\n\t\treturn this._currentPicker === \"year\";\n\t}\n\n\tget _isDayPickerHidden() {\n\t\treturn this._currentPicker !== \"day\";\n\t}\n\n\tget _isMonthPickerHidden() {\n\t\treturn this._currentPicker !== \"month\";\n\t}\n\n\tget _isYearPickerHidden() {\n\t\treturn this._currentPicker !== \"year\";\n\t}\n\n\t_fireEventAndUpdateSelectedDates(selectedDates: Array<number>) {\n\t\tconst datesValues = selectedDates.map(timestamp => {\n\t\t\tconst calendarDate = CalendarDateComponent.fromTimestamp(timestamp * 1000, this._primaryCalendarType);\n\t\t\treturn this.getFormat().format(calendarDate.toUTCJSDate(), true);\n\t\t});\n\n\t\tconst defaultPrevented = !this.fireDecoratorEvent(\"selection-change\", { timestamp: this.timestamp, selectedDates: [...selectedDates], selectedValues: datesValues });\n\t\tif (!defaultPrevented) {\n\t\t\tthis._setSelectedDates(selectedDates);\n\t\t}\n\t}\n\n\tonSelectedDatesChange(e: CustomEvent<DayPickerChangeEventDetail>) {\n\t\tthis.timestamp = e.detail.timestamp;\n\t\tthis._fireEventAndUpdateSelectedDates(e.detail.dates);\n\t}\n\n\tonSelectedMonthChange(e: CustomEvent<MonthPickerChangeEventDetail>) {\n\t\tthis.timestamp = e.detail.timestamp;\n\n\t\tif (this._pickersMode === CalendarPickersMode.DAY_MONTH_YEAR) {\n\t\t\tthis._currentPicker = \"day\";\n\t\t} else {\n\t\t\tthis._fireEventAndUpdateSelectedDates(e.detail.dates);\n\t\t}\n\n\t\tthis._currentPickerDOM._autoFocus = true;\n\t}\n\n\tonSelectedYearChange(e: CustomEvent<YearPickerChangeEventDetail>) {\n\t\tthis.timestamp = e.detail.timestamp;\n\n\t\tif (this._pickersMode === CalendarPickersMode.DAY_MONTH_YEAR) {\n\t\t\tthis._currentPicker = \"day\";\n\t\t} else if (this._pickersMode === CalendarPickersMode.MONTH_YEAR) {\n\t\t\tthis._currentPicker = \"month\";\n\t\t} else {\n\t\t\tthis._fireEventAndUpdateSelectedDates(e.detail.dates);\n\t\t}\n\n\t\tthis._currentPickerDOM._autoFocus = true;\n\t}\n\n\tonNavigate(e: CustomEvent) {\n\t\tthis.timestamp = e.detail.timestamp;\n\t}\n\n\t_onkeydown(e: KeyboardEvent) {\n\t\tif (isF4(e) && this._currentPicker !== \"month\") {\n\t\t\tthis._currentPicker = \"month\";\n\t\t\tthis.fireDecoratorEvent(\"show-month-view\");\n\t\t}\n\n\t\tif (isF4Shift(e) && this._currentPicker !== \"year\") {\n\t\t\tthis._currentPicker = \"year\";\n\t\t\tthis.fireDecoratorEvent(\"show-year-view\");\n\t\t}\n\t}\n\n\t_onLegendFocusOut() {\n\t\tthis._selectedItemType = \"None\";\n\t}\n\n\tget _specialDates() {\n\t\treturn this.getSlottedNodes<SpecialCalendarDate>(\"specialDates\");\n\t}\n\n\tget classes() {\n\t\treturn {\n\t\t\tprevButton: {\n\t\t\t\t\"ui5-calheader-arrowbtn\": true,\n\t\t\t\t\"ui5-calheader-arrowbtn-disabled\": this._previousButtonDisabled,\n\t\t\t},\n\t\t\tnextButton: {\n\t\t\t\t\"ui5-calheader-arrowbtn\": true,\n\t\t\t\t\"ui5-calheader-arrowbtn-disabled\": this._nextButtonDisabled,\n\t\t\t},\n\t\t};\n\t}\n\n\tget accInfo() {\n\t\treturn {\n\t\t\tariaLabelMonthButton: this.hasSecondaryCalendarType\n\t\t\t\t? `${this._headerMonthButtonText}, ${this.secondMonthButtonText}` : `${this._headerMonthButtonText}`,\n\t\t};\n\t}\n\n\tget headerPreviousButtonText() {\n\t\treturn Calendar.i18nBundle?.getText(CALENDAR_HEADER_PREVIOUS_BUTTON);\n\t}\n\n\tget headerNextButtonText() {\n\t\treturn Calendar.i18nBundle?.getText(CALENDAR_HEADER_NEXT_BUTTON);\n\t}\n\n\tget secondMonthButtonText() {\n\t\tconst secondMonthButtonText = this.secondaryCalendarTypeButtonText?.monthButtonText as string;\n\n\t\treturn secondMonthButtonText;\n\t}\n\n\tonMonthButtonKeyDown(e: KeyboardEvent) {\n\t\tif (isSpace(e)) {\n\t\t\te.preventDefault();\n\t\t}\n\n\t\tif (isEnter(e)) {\n\t\t\tthis.showMonth();\n\t\t\tthis.fireDecoratorEvent(\"show-month-view\");\n\t\t}\n\t}\n\n\tonMonthButtonKeyUp(e: KeyboardEvent) {\n\t\tif (isSpace(e)) {\n\t\t\te.preventDefault();\n\t\t\tthis.showMonth();\n\t\t\tthis.fireDecoratorEvent(\"show-month-view\");\n\t\t}\n\t}\n\n\tonYearButtonKeyDown(e: KeyboardEvent) {\n\t\tif (isSpace(e)) {\n\t\t\te.preventDefault();\n\t\t}\n\n\t\tif (isEnter(e)) {\n\t\t\tthis.showYear();\n\t\t\tthis.fireDecoratorEvent(\"show-year-view\");\n\t\t}\n\t}\n\n\tonYearButtonKeyUp(e: KeyboardEvent) {\n\t\tif (isSpace(e)) {\n\t\t\tthis.showYear();\n\t\t\tthis.fireDecoratorEvent(\"show-year-view\");\n\t\t}\n\t}\n\n\tonPrevButtonClick(e: MouseEvent) {\n\t\tif (this._previousButtonDisabled) {\n\t\t\te.preventDefault();\n\t\t\treturn;\n\t\t}\n\n\t\tthis.onHeaderPreviousPress();\n\t\te.preventDefault();\n\t}\n\n\tonNextButtonClick(e: MouseEvent) {\n\t\tif (this._nextButtonDisabled) {\n\t\t\te.preventDefault();\n\t\t\treturn;\n\t\t}\n\n\t\tthis.onHeaderNextPress();\n\t\te.preventDefault();\n\t}\n\n\t/**\n\t * Returns an array of UTC timestamps, representing the selected dates.\n\t * @protected\n\t * @deprecated\n\t */\n\tget selectedDates(): Array<number> {\n\t\treturn this._selectedDatesTimestamps;\n\t}\n\n\t/**\n\t * Creates instances of `ui5-date` or `ui5-date-range` inside this `ui5-calendar` with values, equal to the provided UTC timestamps\n\t * @protected\n\t * @deprecated\n\t * @param selectedDates Array of UTC timestamps\n\t */\n\tset selectedDates(selectedDates: Array<number>) {\n\t\tthis._setSelectedDates(selectedDates);\n\t}\n}\n\nCalendar.define();\n\nexport default Calendar;\nexport type {\n\tICalendarPicker,\n\tICalendarSelectedDates,\n\tCalendarSelectionChangeEventDetail,\n\tSpecialCalendarDateT,\n};\n"]}
|
|
1
|
+
{"version":3,"file":"Calendar.js","sourceRoot":"","sources":["../src/Calendar.ts"],"names":[],"mappings":"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","sourcesContent":["import customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport type UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport type { ChangeInfo } from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event-strict.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot.js\";\nimport i18n from \"@ui5/webcomponents-base/dist/decorators/i18n.js\";\nimport transformDateToSecondaryType from \"@ui5/webcomponents-localization/dist/dates/transformDateToSecondaryType.js\";\nimport convertMonthNumbersToMonthNames from \"@ui5/webcomponents-localization/dist/dates/convertMonthNumbersToMonthNames.js\";\nimport CalendarDateComponent from \"@ui5/webcomponents-localization/dist/dates/CalendarDate.js\";\nimport { renderFinished } from \"@ui5/webcomponents-base/dist/Render.js\";\nimport {\n\tisEnter,\n\tisF4,\n\tisF4Shift,\n\tisSpace,\n} from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport getCachedLocaleDataInstance from \"@ui5/webcomponents-localization/dist/getCachedLocaleDataInstance.js\";\nimport getLocale from \"@ui5/webcomponents-base/dist/locale/getLocale.js\";\nimport DateFormat from \"@ui5/webcomponents-localization/dist/DateFormat.js\";\nimport UI5Date from \"@ui5/webcomponents-localization/dist/dates/UI5Date.js\";\nimport \"@ui5/webcomponents-icons/dist/slim-arrow-left.js\";\nimport \"@ui5/webcomponents-icons/dist/slim-arrow-right.js\";\nimport CalendarDate from \"./CalendarDate.js\";\nimport CalendarDateRange from \"./CalendarDateRange.js\";\nimport \"./SpecialCalendarDate.js\";\nimport CalendarPart from \"./CalendarPart.js\";\nimport type { DayPickerChangeEventDetail } from \"./DayPicker.js\";\nimport type { MonthPickerChangeEventDetail } from \"./MonthPicker.js\";\nimport type { YearPickerChangeEventDetail } from \"./YearPicker.js\";\nimport CalendarSelectionMode from \"./types/CalendarSelectionMode.js\";\nimport CalendarPickersMode from \"./types/CalendarPickersMode.js\";\nimport type CalendarLegend from \"./CalendarLegend.js\";\nimport type { CalendarLegendItemSelectionChangeEventDetail } from \"./CalendarLegend.js\";\nimport type SpecialCalendarDate from \"./SpecialCalendarDate.js\";\nimport type CalendarLegendItemType from \"./types/CalendarLegendItemType.js\";\n\n// Default calendar for bundling\nimport \"@ui5/webcomponents-localization/dist/features/calendar/Gregorian.js\";\n\n// Template\nimport CalendarTemplate from \"./CalendarTemplate.js\";\n\n// Styles\nimport calendarCSS from \"./generated/themes/Calendar.css.js\";\nimport CalendarHeaderCss from \"./generated/themes/CalendarHeader.css.js\";\nimport { CALENDAR_HEADER_NEXT_BUTTON, CALENDAR_HEADER_PREVIOUS_BUTTON } from \"./generated/i18n/i18n-defaults.js\";\n\ninterface ICalendarPicker {\n\t_showPreviousPage: () => void,\n\t_showNextPage: () => void,\n\t_hasPreviousPage: () => boolean,\n\t_hasNextPage: () => boolean,\n\t_autoFocus?: boolean,\n\t_firstYear?: number,\n\t_lastYear?: number,\n}\n\n/**\n * Interface for components that may be slotted inside a `ui5-calendar`.\n *\n * **Note:** Use with `ui5-date` or `ui5-date-range` as calendar date selection types.\n * @public\n */\ninterface ICalendarSelectedDates extends UI5Element {\n\tvalue?: string,\n\tstartValue?: string,\n\tendValue?: string\n}\n\ntype CalendarSelectionChangeEventDetail = {\n\tselectedValues: Array<string>,\n\tselectedDates: Array<number>,\n\ttimestamp: number | undefined,\n}\n\ntype SpecialCalendarDateT = {\n\tspecialDateTimestamp: number;\n\ttype: `${CalendarLegendItemType}`;\n\ttooltip?: string;\n};\n\n/**\n * @class\n *\n * ### Overview\n *\n * The `ui5-calendar` component allows users to select one or more dates.\n *\n * Currently selected dates are represented with instances of `ui5-date` as\n * children of the `ui5-calendar`. The value property of each `ui5-date` must be a\n * date string, correctly formatted according to the `ui5-calendar`'s `formatPattern` property.\n * Whenever the user changes the date selection, `ui5-calendar` will automatically create/remove instances\n * of `ui5-date` in itself, unless you prevent this behavior by calling `preventDefault()` for the\n * `selection-change` event. This is useful if you want to control the selected dates externally.\n *\n * ### Usage\n *\n * The user can navigate to a particular date by:\n *\n * - Pressing over a month inside the months view\n * - Pressing over an year inside the years view\n *\n * The user can confirm a date selection by pressing over a date inside the days view.\n *\n * ### Keyboard Handling\n * The `ui5-calendar` provides advanced keyboard handling.\n * When a picker is showed and focused the user can use the following keyboard\n * shortcuts in order to perform a navigation:\n *\n * - Day picker:\n *\n * - [F4] - Shows month picker\n * - [Shift] + [F4] - Shows year picker\n * - [Page Up] - Navigate to the previous month\n * - [Page Down] - Navigate to the next month\n * - [Shift] + [Page Up] - Navigate to the previous year\n * - [Shift] + [Page Down] - Navigate to the next year\n * - [Ctrl] + [Shift] + [Page Up] - Navigate ten years backwards\n * - [Ctrl] + [Shift] + [Page Down] - Navigate ten years forwards\n * - [Home] - Navigate to the first day of the week\n * - [End] - Navigate to the last day of the week\n * - [Ctrl] + [Home] - Navigate to the first day of the month\n * - [Ctrl] + [End] - Navigate to the last day of the month\n *\n * - Month picker:\n *\n * - [Page Up] - Navigate to the previous year\n * - [Page Down] - Navigate to the next year\n * - [Home] - Navigate to the first month of the current row\n * - [End] - Navigate to the last month of the current row\n * - [Ctrl] + [Home] - Navigate to the first month of the current year\n * - [Ctrl] + [End] - Navigate to the last month of the year\n *\n * - Year picker:\n *\n * - [Page Up] - Navigate to the previous year range\n * - [Page Down] - Navigate the next year range\n * - [Home] - Navigate to the first year of the current row\n * - [End] - Navigate to the last year of the current row\n * - [Ctrl] + [Home] - Navigate to the first year of the current year range\n * - [Ctrl] + [End] - Navigate to the last year of the current year range\n *\n * #### Fast Navigation\n * This component provides a build in fast navigation group which can be used via [F6] / [Shift] + [F6] / [Ctrl] + [Alt/Option] / [Down] or [Ctrl] + [Alt/Option] + [Up].\n * In order to use this functionality, you need to import the following module:\n * `import \"@ui5/webcomponents-base/dist/features/F6Navigation.js\"`\n *\n * ### Calendar types\n * The component supports several calendar types - Gregorian, Buddhist, Islamic, Japanese and Persian.\n * By default the Gregorian Calendar is used. In order to use the Buddhist, Islamic, Japanese or Persian calendar,\n * you need to set the `primaryCalendarType` property and import one or more of the following modules:\n *\n * `import \"@ui5/webcomponents-localization/dist/features/calendar/Buddhist.js\";`\n *\n * `import \"@ui5/webcomponents-localization/dist/features/calendar/Islamic.js\";`\n *\n * `import \"@ui5/webcomponents-localization/dist/features/calendar/Japanese.js\";`\n *\n * `import \"@ui5/webcomponents-localization/dist/features/calendar/Persian.js\";`\n *\n * Or, you can use the global configuration and set the `calendarType` key:\n *\n * ```html\n * <script data-id=\"sap-ui-config\" type=\"application/json\">\n * \t{\n * \t\t\"calendarType\": \"Japanese\"\n * \t}\n * </script>\n * ```\n *\n * ### ES6 Module Import\n *\n * `import \"@ui5/webcomponents/dist/Calendar.js\";`\n * @constructor\n * @extends CalendarPart\n * @public\n * @csspart day-cell - Used to style the day cells.\n * @csspart day-cell-selected - Used to style the day cells when selected.\n * @csspart day-cell-selected-between - Used to style the day cells in between of selected dates in range.\n * @csspart month-cell - Used to style the month cells.\n * @csspart month-cell-selected - Used to style the month cells when selected.\n * @csspart month-cell-selected-between - Used to style the day cells in between of selected months in range.\n * @csspart year-cell - Used to style the year cells.\n * @csspart year-cell-selected - Used to style the year cells when selected.\n * @csspart year-cell-selected-between - Used to style the day cells in between of selected years in range.\n * @since 1.0.0-rc.11\n */\n@customElement({\n\ttag: \"ui5-calendar\",\n\tfastNavigation: true,\n\ttemplate: CalendarTemplate,\n\tstyles: [calendarCSS, CalendarHeaderCss],\n})\n/**\n * Fired when the selected dates change.\n *\n * **Note:** If you call `preventDefault()` for this event, the component will not\n * create instances of `ui5-date` for the newly selected dates. In that case you should do this manually.\n * @param {Array<string>} selectedValues The selected dates\n * @param {Array<number>} selectedDates The selected dates as UTC timestamps\n * @public\n */\n@event(\"selection-change\", {\n\tbubbles: true,\n\tcancelable: true,\n})\n\n@event(\"show-month-view\", {\n\tbubbles: true,\n})\n@event(\"show-year-view\", {\n\tbubbles: true,\n})\nclass Calendar extends CalendarPart {\n\teventDetails!: CalendarPart[\"eventDetails\"] & {\n\t\t\"selection-change\": CalendarSelectionChangeEventDetail,\n\t\t\"show-month-view\": void,\n\t\t\"show-year-view\": void,\n\t}\n\t/**\n\t * Defines the type of selection used in the calendar component.\n\t * Accepted property values are:\n\t *\n\t * - `CalendarSelectionMode.Single` - enables a single date selection.(default value)\n\t * - `CalendarSelectionMode.Range` - enables selection of a date range.\n\t * - `CalendarSelectionMode.Multiple` - enables selection of multiple dates.\n\t * @default \"Single\"\n\t * @public\n\t */\n\t@property()\n\tselectionMode: `${CalendarSelectionMode}` = \"Single\";\n\n\t/**\n\t * Defines the visibility of the week numbers column.\n\t *\n\t * **Note:** For calendars other than Gregorian,\n\t * the week numbers are not displayed regardless of what is set.\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\thideWeekNumbers = false;\n\n\t/**\n\t * Which picker is currently visible to the user: day/month/year\n\t * @private\n\t */\n\t@property()\n\t_currentPicker: \"day\" | \"month\" | \"year\" = \"day\"\n\n\t@property({ type: Boolean })\n\t_previousButtonDisabled = false;\n\n\t@property({ type: Boolean })\n\t_nextButtonDisabled = false;\n\n\t@property()\n\t_headerMonthButtonText?: string;\n\n\t@property()\n\t_headerYearButtonText?: string;\n\n\t@property()\n\t_headerYearButtonTextSecType?: string;\n\n\t@property({ noAttribute: true })\n\t_pickersMode: `${CalendarPickersMode}` = \"DAY_MONTH_YEAR\";\n\n\t_valueIsProcessed = false;\n\n\t/**\n\t * Defines the calendar legend of the component.\n\t * @public\n\t * @since 1.23.0\n\t */\n\t@slot({ type: HTMLElement, invalidateOnChildChange: true })\n\tcalendarLegend!: Array<CalendarLegend>;\n\n\t/**\n\t * Defines the selected date or dates (depending on the `selectionMode` property)\n\t * for this calendar as instances of `ui5-date` or `ui5-date-range`.\n\t * Use `ui5-date` for single or multiple selection, and `ui5-date-range` for range selection.\n\t * @public\n\t */\n\t@slot({ type: HTMLElement, invalidateOnChildChange: true, \"default\": true })\n\tdates!: Array<ICalendarSelectedDates>;\n\n\t/**\n\t * Defines the special dates, visually emphasized in the calendar.\n\t * @public\n\t * @since 1.23.0\n\t */\n\t@slot({ type: HTMLElement, invalidateOnChildChange: true })\n\tspecialDates!: Array<SpecialCalendarDate>;\n\n\t/**\n\t * Defines the selected item type of the calendar legend item (if such exists).\n\t * @private\n\t */\n\t@property()\n\t_selectedItemType: `${CalendarLegendItemType}` = \"None\";\n\n\t@i18n(\"@ui5/webcomponents\")\n\tstatic i18nBundle: I18nBundle;\n\n\tconstructor() {\n\t\tsuper();\n\n\t\tthis._valueIsProcessed = false;\n\t}\n\n\t/**\n\t * @private\n\t */\n\tget _selectedDatesTimestamps(): Array<number> {\n\t\tlet selectedDates: Array<number> = [];\n\n\t\tif (this.selectionMode === CalendarSelectionMode.Range) {\n\t\t\tconst range = this.dates.find(date => date.hasAttribute(\"ui5-date-range\"));\n\t\t\tconst startDate = range && range.startValue && this.getFormat().parse(range.startValue, true) as Date;\n\t\t\tconst endDate = range && range.endValue && this.getFormat().parse(range.endValue, true) as Date;\n\n\t\t\tif (startDate) {\n\t\t\t\tselectedDates.push(startDate.getTime() / 1000);\n\t\t\t}\n\n\t\t\tif (endDate) {\n\t\t\t\tselectedDates.push(endDate.getTime() / 1000);\n\t\t\t}\n\t\t} else {\n\t\t\tselectedDates = this.dates\n\t\t\t\t.filter(dateElement => {\n\t\t\t\t\treturn dateElement.hasAttribute(\"ui5-date\")\n\t\t\t\t\t\t&& dateElement.value\n\t\t\t\t\t\t&& this._isValidCalendarDate(dateElement.value)\n\t\t\t\t\t\t&& this._getTimeStampFromString(dateElement.value);\n\t\t\t\t})\n\t\t\t\t.map(dateElement => Number(this._getTimeStampFromString(dateElement.value!)) / 1000);\n\t\t}\n\n\t\treturn selectedDates;\n\t}\n\n\t/**\n\t * @private\n\t */\n\t_setSelectedDates(selectedDates: Array<number>) {\n\t\tconst selectedUTCDates = selectedDates.map(timestamp => this.getFormat().format(UI5Date.getInstance(timestamp * 1000), true));\n\n\t\tif (this.selectionMode === CalendarSelectionMode.Range) {\n\t\t\t// Create tags for the selected dates that don't already exist in DOM\n\t\t\tif (selectedUTCDates.length) {\n\t\t\t\tlet dateRange = this.dates.find(dateElement => dateElement.hasAttribute(\"ui5-date-range\") && dateElement.startValue === selectedUTCDates[0]);\n\t\t\t\tif (!dateRange) {\n\t\t\t\t\tdateRange = document.createElement(CalendarDateRange.getMetadata().getTag()) as CalendarDateRange;\n\t\t\t\t\tdateRange.startValue = selectedUTCDates[0];\n\t\t\t\t\tthis.appendChild(dateRange);\n\t\t\t\t} else {\n\t\t\t\t\tdateRange.endValue = selectedUTCDates[1];\n\t\t\t\t}\n\t\t\t\t// Remove all elements for dates that are no longer selected\n\t\t\t\tthis.dates\n\t\t\t\t\t.filter(dateElement => {\n\t\t\t\t\t\treturn dateElement.hasAttribute(\"ui5-date\")\n\t\t\t\t\t\t\t|| (dateRange && dateElement.startValue !== dateRange.startValue);\n\t\t\t\t\t})\n\t\t\t\t\t.forEach(dateElement => {\n\t\t\t\t\t\tthis.removeChild(dateElement);\n\t\t\t\t\t});\n\t\t\t}\n\t\t} else {\n\t\t\tconst valuesInDOM = this._selectedDatesTimestamps.map(timestamp => this.getFormat().format(UI5Date.getInstance(timestamp * 1000)));\n\n\t\t\t// Remove all elements for dates that are no longer selected\n\t\t\tthis.dates\n\t\t\t\t.filter(dateElement => {\n\t\t\t\t\treturn dateElement.hasAttribute(\"ui5-date-range\")\n\t\t\t\t\t\t|| (dateElement.hasAttribute(\"ui5-date\") && !selectedUTCDates.includes(dateElement.value!));\n\t\t\t\t})\n\t\t\t\t.forEach(dateElement => {\n\t\t\t\t\tthis.removeChild(dateElement);\n\t\t\t\t});\n\n\t\t\t// Create tags for the selected dates that don't already exist in DOM\n\t\t\tselectedUTCDates\n\t\t\t\t.filter(value => !valuesInDOM.includes(value))\n\t\t\t\t.forEach(value => {\n\t\t\t\t\tconst dateElement = document.createElement(CalendarDate.getMetadata().getTag()) as CalendarDate;\n\t\t\t\t\tdateElement.value = value;\n\t\t\t\t\tthis.appendChild(dateElement);\n\t\t\t\t});\n\t\t}\n\t}\n\n\t_isValidCalendarDate(dateString: string): boolean {\n\t\tconst date = this.getFormat().parse(dateString);\n\t\treturn !!date;\n\t}\n\n\tget _specialCalendarDates() {\n\t\tconst hasSelectedType = this._specialDates.some(date => date.type === this._selectedItemType);\n\t\tconst validSpecialDates = this._specialDates.filter(date => {\n\t\t\tconst dateType = date.type;\n\t\t\tconst dateValue = date.value;\n\t\t\tconst isTypeMatch = hasSelectedType\n\t\t\t\t? (dateType === this._selectedItemType || dateType === \"Working\" || dateType === \"NonWorking\")\n\t\t\t\t: true;\n\t\t\treturn isTypeMatch && dateValue && this._isValidCalendarDate(dateValue);\n\t\t});\n\n\t\tvalidSpecialDates.forEach(date => {\n\t\t\tconst refLegendItem = this.calendarLegend.length ? this.calendarLegend[0].items.find(item => item.type === date.type) : undefined;\n\t\t\tdate._tooltip = refLegendItem?.text || \"\";\n\t\t});\n\n\t\tconst uniqueDates = new Set();\n\t\tconst uniqueSpecialDates: Array<SpecialCalendarDateT> = [];\n\n\t\tvalidSpecialDates.forEach(date => {\n\t\t\tconst dateFromValue = this.getFormat().parse(date.value) as Date | UI5Date;\n\t\t\tconst timestamp = dateFromValue.getTime();\n\n\t\t\tif (!uniqueDates.has(timestamp)) {\n\t\t\t\tuniqueDates.add(timestamp);\n\t\t\t\tconst specialDateTimestamp = CalendarDateComponent.fromLocalJSDate(dateFromValue).valueOf() / 1000;\n\t\t\t\tconst type = date.type;\n\t\t\t\tconst tooltip = date._tooltip;\n\t\t\t\tuniqueSpecialDates.push({ specialDateTimestamp, type, tooltip });\n\t\t\t}\n\t\t});\n\n\t\treturn uniqueSpecialDates;\n\t}\n\n\t_onCalendarLegendSelectionChange(e: CustomEvent<CalendarLegendItemSelectionChangeEventDetail>) {\n\t\tconst defaultTypes = [\"Working\", \"NonWorking\", \"Selected\", \"Today\"];\n\t\tthis._selectedItemType = e.detail.item.type;\n\n\t\tif (defaultTypes.includes(this._selectedItemType)) {\n\t\t\tthis._selectedItemType = \"None\"; // In order to avoid filtering of default types\n\t\t}\n\t\tthis._currentPickerDOM._autoFocus = false;\n\t}\n\n\t/**\n\t * Makes sure that _currentPicker is always set to a value, allowed by _pickersMode\n\t */\n\t_normalizeCurrentPicker() {\n\t\tif (this._currentPicker === \"day\" && this._pickersMode !== CalendarPickersMode.DAY_MONTH_YEAR) {\n\t\t\tthis._currentPicker = \"month\";\n\t\t}\n\n\t\tif (this._currentPicker === \"month\" && this._pickersMode === CalendarPickersMode.YEAR) {\n\t\t\tthis._currentPicker = \"year\";\n\t\t}\n\t}\n\n\tonBeforeRendering() {\n\t\tthis._normalizeCurrentPicker();\n\n\t\tif (!this._valueIsProcessed) {\n\t\t\tif (this._selectedDatesTimestamps) {\n\t\t\t\tthis.timestamp = this._selectedDatesTimestamps[0];\n\t\t\t}\n\n\t\t\tthis._valueIsProcessed = true;\n\t\t}\n\t}\n\n\tasync onAfterRendering() {\n\t\tawait renderFinished(); // Await for the current picker to render and then ask if it has previous/next pages\n\t\tthis._previousButtonDisabled = !this._currentPickerDOM._hasPreviousPage();\n\t\tthis._nextButtonDisabled = !this._currentPickerDOM._hasNextPage();\n\n\t\tconst yearFormat = DateFormat.getDateInstance({ format: \"y\", calendarType: this.primaryCalendarType });\n\t\tconst localeData = getCachedLocaleDataInstance(getLocale());\n\t\tthis._headerMonthButtonText = localeData.getMonthsStandAlone(\"wide\", this.primaryCalendarType)[this._calendarDate.getMonth()];\n\n\t\tif (this._currentPicker === \"year\") {\n\t\t\tconst rangeStart = new CalendarDateComponent(this._calendarDate, this._primaryCalendarType);\n\t\t\tconst rangeEnd = new CalendarDateComponent(this._calendarDate, this._primaryCalendarType);\n\t\t\trangeStart.setYear(this._currentPickerDOM._firstYear!);\n\t\t\trangeEnd.setYear(this._currentPickerDOM._lastYear!);\n\n\t\t\tthis._headerYearButtonText = `${yearFormat.format(rangeStart.toLocalJSDate(), true)} - ${yearFormat.format(rangeEnd.toLocalJSDate(), true)}`;\n\t\t} else {\n\t\t\tthis._headerYearButtonText = String(yearFormat.format(this._localDate, true));\n\t\t}\n\n\t\tthis._secondaryCalendarType && this._setSecondaryCalendarTypeButtonText();\n\t}\n\n\tonInvalidation(changeInfo: ChangeInfo) {\n\t\tif (changeInfo.reason === \"childchange\") {\n\t\t\tthis._valueIsProcessed = false;\n\t\t}\n\t}\n\n\t/**\n\t * The user clicked the \"month\" button in the header\n\t */\n\tonHeaderShowMonthPress() {\n\t\tthis.showMonth();\n\t\tthis.fireDecoratorEvent(\"show-month-view\");\n\t}\n\n\tshowMonth() {\n\t\tthis._currentPickerDOM._autoFocus = false;\n\t\tthis._currentPicker = \"month\";\n\t}\n\n\t/**\n\t * The user clicked the \"year\" button in the header\n\t */\n\tonHeaderShowYearPress() {\n\t\tthis.showYear();\n\t\tthis.fireDecoratorEvent(\"show-year-view\");\n\t}\n\n\tshowYear() {\n\t\tthis._currentPickerDOM._autoFocus = false;\n\t\tthis._currentPicker = \"year\";\n\t}\n\n\tget _currentPickerDOM() {\n\t\t// Calendar's shadowRoot and all the pickers are always present - the \"!\" is safe to be used.\n\t\treturn this.shadowRoot!.querySelector(`[ui5-${this._currentPicker}picker]`)! as unknown as ICalendarPicker;\n\t}\n\n\t/**\n\t * The year clicked the \"Previous\" button in the header\n\t */\n\tonHeaderPreviousPress() {\n\t\tthis._currentPickerDOM._showPreviousPage();\n\n\t\tif (this.calendarLegend) {\n\t\t\tthis._currentPickerDOM._autoFocus = true;\n\t\t}\n\t}\n\n\t/**\n\t * The year clicked the \"Next\" button in the header\n\t */\n\tonHeaderNextPress() {\n\t\tthis._currentPickerDOM._showNextPage();\n\n\t\tif (this.calendarLegend) {\n\t\t\tthis._currentPickerDOM._autoFocus = true;\n\t\t}\n\t}\n\n\t_setSecondaryCalendarTypeButtonText() {\n\t\tconst yearFormatSecType = DateFormat.getDateInstance({ format: \"y\", calendarType: this._secondaryCalendarType });\n\n\t\tif (this._currentPicker === \"year\") {\n\t\t\tconst rangeStart = new CalendarDateComponent(this._calendarDate, this._primaryCalendarType);\n\t\t\tconst rangeEnd = new CalendarDateComponent(this._calendarDate, this._primaryCalendarType);\n\t\t\trangeStart.setYear(this._currentPickerDOM._firstYear!);\n\t\t\trangeEnd.setYear(this._currentPickerDOM._lastYear!);\n\n\t\t\tconst rangeStartSecType = transformDateToSecondaryType(this.primaryCalendarType, this._secondaryCalendarType, rangeStart.valueOf() / 1000, true)\n\t\t\t\t.firstDate;\n\t\t\tconst rangeEndSecType = transformDateToSecondaryType(this.primaryCalendarType, this._secondaryCalendarType, rangeEnd.valueOf() / 1000, true)\n\t\t\t\t.lastDate;\n\t\t\tthis._headerYearButtonTextSecType = `${yearFormatSecType.format(rangeStartSecType.toLocalJSDate(), true)} - ${yearFormatSecType.format(rangeEndSecType.toLocalJSDate(), true)}`;\n\t\t} else {\n\t\t\tthis._headerYearButtonTextSecType = String(yearFormatSecType.format(this._localDate, true));\n\t\t}\n\t}\n\n\tget secondaryCalendarTypeButtonText() {\n\t\tif (!this.hasSecondaryCalendarType) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst localDate = UI5Date.getInstance(this._timestamp * 1000);\n\t\tconst secondYearFormat = DateFormat.getDateInstance({ format: \"y\", calendarType: this._secondaryCalendarType });\n\t\tconst dateInSecType = transformDateToSecondaryType(this._primaryCalendarType, this._secondaryCalendarType, this._timestamp);\n\t\tconst secondMonthInfo = convertMonthNumbersToMonthNames(dateInSecType.firstDate.getMonth(), dateInSecType.lastDate.getMonth(), this._secondaryCalendarType);\n\t\tconst secondYearText = secondYearFormat.format(localDate);\n\n\t\treturn {\n\t\t\tyearButtonText: secondYearText,\n\t\t\tmonthButtonText: secondMonthInfo.text,\n\t\t\tmonthButtonInfo: secondMonthInfo.textInfo,\n\t\t};\n\t}\n\n\t/**\n\t * The month button is hidden when the month picker or year picker is shown\n\t * @private\n\t */\n\tget _isHeaderMonthButtonHidden(): boolean {\n\t\treturn this._currentPicker === \"month\" || this._currentPicker === \"year\";\n\t}\n\n\t/**\n\t * The year button is hidden when the year picker is shown\n\t * @private\n\t */\n\tget _isHeaderYearButtonHidden(): boolean {\n\t\treturn this._currentPicker === \"year\";\n\t}\n\n\tget _isDayPickerHidden() {\n\t\treturn this._currentPicker !== \"day\";\n\t}\n\n\tget _isMonthPickerHidden() {\n\t\treturn this._currentPicker !== \"month\";\n\t}\n\n\tget _isYearPickerHidden() {\n\t\treturn this._currentPicker !== \"year\";\n\t}\n\n\t_fireEventAndUpdateSelectedDates(selectedDates: Array<number>) {\n\t\tconst datesValues = selectedDates.map(timestamp => {\n\t\t\tconst calendarDate = CalendarDateComponent.fromTimestamp(timestamp * 1000, this._primaryCalendarType);\n\t\t\treturn this.getFormat().format(calendarDate.toUTCJSDate(), true);\n\t\t});\n\n\t\tconst defaultPrevented = !this.fireDecoratorEvent(\"selection-change\", { timestamp: this.timestamp, selectedDates: [...selectedDates], selectedValues: datesValues });\n\t\tif (!defaultPrevented) {\n\t\t\tthis._setSelectedDates(selectedDates);\n\t\t}\n\t}\n\n\tonSelectedDatesChange(e: CustomEvent<DayPickerChangeEventDetail>) {\n\t\tthis.timestamp = e.detail.timestamp;\n\t\tthis._fireEventAndUpdateSelectedDates(e.detail.dates);\n\t}\n\n\tonSelectedMonthChange(e: CustomEvent<MonthPickerChangeEventDetail>) {\n\t\tthis.timestamp = e.detail.timestamp;\n\n\t\tif (this._pickersMode === CalendarPickersMode.DAY_MONTH_YEAR) {\n\t\t\tthis._currentPicker = \"day\";\n\t\t} else {\n\t\t\tthis._fireEventAndUpdateSelectedDates(e.detail.dates);\n\t\t}\n\n\t\tthis._currentPickerDOM._autoFocus = true;\n\t}\n\n\tonSelectedYearChange(e: CustomEvent<YearPickerChangeEventDetail>) {\n\t\tthis.timestamp = e.detail.timestamp;\n\n\t\tif (this._pickersMode === CalendarPickersMode.DAY_MONTH_YEAR) {\n\t\t\tthis._currentPicker = \"day\";\n\t\t} else if (this._pickersMode === CalendarPickersMode.MONTH_YEAR) {\n\t\t\tthis._currentPicker = \"month\";\n\t\t} else {\n\t\t\tthis._fireEventAndUpdateSelectedDates(e.detail.dates);\n\t\t}\n\n\t\tthis._currentPickerDOM._autoFocus = true;\n\t}\n\n\tonNavigate(e: CustomEvent) {\n\t\tthis.timestamp = e.detail.timestamp;\n\t}\n\n\t_onkeydown(e: KeyboardEvent) {\n\t\tif (isF4(e) && this._currentPicker !== \"month\") {\n\t\t\tthis._currentPicker = \"month\";\n\t\t\tthis.fireDecoratorEvent(\"show-month-view\");\n\t\t}\n\n\t\tif (isF4Shift(e) && this._currentPicker !== \"year\") {\n\t\t\tthis._currentPicker = \"year\";\n\t\t\tthis.fireDecoratorEvent(\"show-year-view\");\n\t\t}\n\t}\n\n\t_onLegendFocusOut() {\n\t\tthis._selectedItemType = \"None\";\n\t}\n\n\tget _specialDates() {\n\t\treturn this.getSlottedNodes<SpecialCalendarDate>(\"specialDates\");\n\t}\n\n\tget classes() {\n\t\treturn {\n\t\t\tprevButton: {\n\t\t\t\t\"ui5-calheader-arrowbtn\": true,\n\t\t\t\t\"ui5-calheader-arrowbtn-disabled\": this._previousButtonDisabled,\n\t\t\t},\n\t\t\tnextButton: {\n\t\t\t\t\"ui5-calheader-arrowbtn\": true,\n\t\t\t\t\"ui5-calheader-arrowbtn-disabled\": this._nextButtonDisabled,\n\t\t\t},\n\t\t};\n\t}\n\n\tget accInfo() {\n\t\treturn {\n\t\t\tariaLabelMonthButton: this.hasSecondaryCalendarType\n\t\t\t\t? `${this._headerMonthButtonText}, ${this.secondMonthButtonText}` : `${this._headerMonthButtonText}`,\n\t\t};\n\t}\n\n\tget headerPreviousButtonText() {\n\t\treturn Calendar.i18nBundle?.getText(CALENDAR_HEADER_PREVIOUS_BUTTON);\n\t}\n\n\tget headerNextButtonText() {\n\t\treturn Calendar.i18nBundle?.getText(CALENDAR_HEADER_NEXT_BUTTON);\n\t}\n\n\tget secondMonthButtonText() {\n\t\tconst secondMonthButtonText = this.secondaryCalendarTypeButtonText?.monthButtonText as string;\n\n\t\treturn secondMonthButtonText;\n\t}\n\n\tonMonthButtonKeyDown(e: KeyboardEvent) {\n\t\tif (isSpace(e)) {\n\t\t\te.preventDefault();\n\t\t}\n\n\t\tif (isEnter(e)) {\n\t\t\tthis.showMonth();\n\t\t\tthis.fireDecoratorEvent(\"show-month-view\");\n\t\t}\n\t}\n\n\tonMonthButtonKeyUp(e: KeyboardEvent) {\n\t\tif (isSpace(e)) {\n\t\t\te.preventDefault();\n\t\t\tthis.showMonth();\n\t\t\tthis.fireDecoratorEvent(\"show-month-view\");\n\t\t}\n\t}\n\n\tonYearButtonKeyDown(e: KeyboardEvent) {\n\t\tif (isSpace(e)) {\n\t\t\te.preventDefault();\n\t\t}\n\n\t\tif (isEnter(e)) {\n\t\t\tthis.showYear();\n\t\t\tthis.fireDecoratorEvent(\"show-year-view\");\n\t\t}\n\t}\n\n\tonYearButtonKeyUp(e: KeyboardEvent) {\n\t\tif (isSpace(e)) {\n\t\t\tthis.showYear();\n\t\t\tthis.fireDecoratorEvent(\"show-year-view\");\n\t\t}\n\t}\n\n\tonPrevButtonClick(e: MouseEvent) {\n\t\tif (this._previousButtonDisabled) {\n\t\t\te.preventDefault();\n\t\t\treturn;\n\t\t}\n\n\t\tthis.onHeaderPreviousPress();\n\t\te.preventDefault();\n\t}\n\n\tonNextButtonClick(e: MouseEvent) {\n\t\tif (this._nextButtonDisabled) {\n\t\t\te.preventDefault();\n\t\t\treturn;\n\t\t}\n\n\t\tthis.onHeaderNextPress();\n\t\te.preventDefault();\n\t}\n\n\t/**\n\t * Returns an array of UTC timestamps, representing the selected dates.\n\t * @protected\n\t * @deprecated\n\t */\n\tget selectedDates(): Array<number> {\n\t\treturn this._selectedDatesTimestamps;\n\t}\n\n\t/**\n\t * Creates instances of `ui5-date` or `ui5-date-range` inside this `ui5-calendar` with values, equal to the provided UTC timestamps\n\t * @protected\n\t * @deprecated\n\t * @param selectedDates Array of UTC timestamps\n\t */\n\tset selectedDates(selectedDates: Array<number>) {\n\t\tthis._setSelectedDates(selectedDates);\n\t}\n}\n\nCalendar.define();\n\nexport default Calendar;\nexport type {\n\tICalendarPicker,\n\tICalendarSelectedDates,\n\tCalendarSelectionChangeEventDetail,\n\tSpecialCalendarDateT,\n};\n"]}
|
package/dist/DayPicker.d.ts
CHANGED
|
@@ -17,6 +17,7 @@ type Day = {
|
|
|
17
17
|
selected: boolean;
|
|
18
18
|
_isSecondaryCalendarType: boolean;
|
|
19
19
|
classes: string;
|
|
20
|
+
tooltip?: string;
|
|
20
21
|
ariaLabel: string;
|
|
21
22
|
ariaSelected: boolean;
|
|
22
23
|
ariaDisabled: boolean | undefined;
|
|
@@ -220,6 +221,7 @@ declare class DayPicker extends CalendarPart implements ICalendarPicker {
|
|
|
220
221
|
get shouldHideWeekNumbers(): boolean;
|
|
221
222
|
_isWeekend(oDate: CalendarDate): boolean;
|
|
222
223
|
_isDayPressed(target: HTMLElement): boolean;
|
|
224
|
+
_isDefaultCalendarLegendType(type: string): boolean;
|
|
223
225
|
_getSecondaryDay(tempDate: CalendarDate): CalendarDate;
|
|
224
226
|
_getFirstDay(): CalendarDate;
|
|
225
227
|
_getFirstDayOfWeek(): number;
|
package/dist/DayPicker.js
CHANGED
|
@@ -115,6 +115,8 @@ let DayPicker = DayPicker_1 = class DayPicker extends CalendarPart {
|
|
|
115
115
|
}
|
|
116
116
|
const specialCalendarDate = specialCalendarDates.find(specialDate => specialDate.specialDateTimestamp === timestamp);
|
|
117
117
|
const specialDayType = specialCalendarDate ? specialCalendarDate.type : "";
|
|
118
|
+
const specialDayTooltip = specialCalendarDate ? specialCalendarDate.tooltip : "";
|
|
119
|
+
const unnamedCalendarTypeLabel = specialDayTooltip && !this._isDefaultCalendarLegendType(specialDayType) ? specialDayTooltip : "";
|
|
118
120
|
const isFocused = tempDate.getMonth() === calendarDate.getMonth() && tempDate.getDate() === calendarDate.getDate();
|
|
119
121
|
const isSelected = this._isDaySelected(timestamp);
|
|
120
122
|
const isSelectedBetween = this._isDayInsideSelectionRange(timestamp);
|
|
@@ -123,14 +125,17 @@ let DayPicker = DayPicker_1 = class DayPicker extends CalendarPart {
|
|
|
123
125
|
const isDisabled = tempDate.valueOf() < minDate.valueOf() || tempDate.valueOf() > maxDate.valueOf();
|
|
124
126
|
const isToday = tempDate.isSame(todayDate);
|
|
125
127
|
const isFirstDayOfWeek = tempDate.getDay() === firstDayOfWeek;
|
|
126
|
-
const nonWorkingAriaLabel = isWeekend
|
|
128
|
+
const nonWorkingAriaLabel = (isWeekend || specialDayType === "NonWorking") && specialDayType !== "Working"
|
|
129
|
+
? `${nonWorkingDayLabel} `
|
|
130
|
+
: "";
|
|
127
131
|
const todayAriaLabel = isToday ? `${todayLabel} ` : "";
|
|
128
132
|
const tempSecondDateNumber = tempSecondDate ? tempSecondDate.getDate() : "";
|
|
129
133
|
const tempSecondYearNumber = tempSecondDate ? tempSecondDate.getYear() : "";
|
|
130
134
|
const secondaryMonthsNamesString = secondaryMonthsNames.length > 0 ? secondaryMonthsNames[tempSecondDate.getMonth()] : "";
|
|
135
|
+
const tooltip = `${todayAriaLabel}${nonWorkingAriaLabel}${unnamedCalendarTypeLabel}`;
|
|
131
136
|
const ariaLabel = this.hasSecondaryCalendarType
|
|
132
|
-
? `${
|
|
133
|
-
: `${
|
|
137
|
+
? `${monthsNames[tempDate.getMonth()]} ${tempDate.getDate()}, ${tempDate.getYear()}; ${secondaryMonthsNamesString} ${tempSecondDateNumber}, ${tempSecondYearNumber} ${tooltip} `
|
|
138
|
+
: `${monthsNames[tempDate.getMonth()]} ${tempDate.getDate()}, ${tempDate.getYear()} ${tooltip}`;
|
|
134
139
|
const day = {
|
|
135
140
|
timestamp: timestamp.toString(),
|
|
136
141
|
focusRef: isFocused,
|
|
@@ -140,6 +145,7 @@ let DayPicker = DayPicker_1 = class DayPicker extends CalendarPart {
|
|
|
140
145
|
secondDay: this.hasSecondaryCalendarType ? tempSecondDate.getDate() : undefined,
|
|
141
146
|
_isSecondaryCalendarType: this.hasSecondaryCalendarType,
|
|
142
147
|
classes: `ui5-dp-item ui5-dp-wday${dayOfTheWeek}`,
|
|
148
|
+
tooltip,
|
|
143
149
|
ariaLabel,
|
|
144
150
|
ariaSelected: isSelected || isSelectedBetween,
|
|
145
151
|
ariaDisabled: isDisabled || isOtherMonth,
|
|
@@ -602,6 +608,9 @@ let DayPicker = DayPicker_1 = class DayPicker extends CalendarPart {
|
|
|
602
608
|
const targetParent = target.parentNode;
|
|
603
609
|
return (target.className.indexOf("ui5-dp-item") > -1) || (targetParent && targetParent.classList && targetParent.classList.contains("ui5-dp-item"));
|
|
604
610
|
}
|
|
611
|
+
_isDefaultCalendarLegendType(type) {
|
|
612
|
+
return ["NonWorking", "Working", "Today", "Selected", "None"].includes(type);
|
|
613
|
+
}
|
|
605
614
|
_getSecondaryDay(tempDate) {
|
|
606
615
|
return new CalendarDate(tempDate, this.secondaryCalendarType);
|
|
607
616
|
}
|
package/dist/DayPicker.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DayPicker.js","sourceRoot":"","sources":["../src/DayPicker.ts"],"names":[],"mappings":"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","sourcesContent":["import customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event-strict.js\";\nimport i18n from \"@ui5/webcomponents-base/dist/decorators/i18n.js\";\nimport getLocale from \"@ui5/webcomponents-base/dist/locale/getLocale.js\";\nimport type LocaleData from \"@ui5/webcomponents-localization/dist/LocaleData.js\";\nimport getCachedLocaleDataInstance from \"@ui5/webcomponents-localization/dist/getCachedLocaleDataInstance.js\";\nimport InvisibleMessageMode from \"@ui5/webcomponents-base/dist/types/InvisibleMessageMode.js\";\nimport announce from \"@ui5/webcomponents-base/dist/util/InvisibleMessage.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport {\n\tisSpace,\n\tisSpaceShift,\n\tisEnter,\n\tisEnterShift,\n\tisUp,\n\tisDown,\n\tisLeft,\n\tisRight,\n\tisHome,\n\tisEnd,\n\tisHomeCtrl,\n\tisEndCtrl,\n\tisPageUp,\n\tisPageDown,\n\tisPageUpShift,\n\tisPageUpAlt,\n\tisPageUpShiftCtrl,\n\tisPageDownShift,\n\tisPageDownAlt,\n\tisPageDownShiftCtrl,\n} from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport CalendarDate from \"@ui5/webcomponents-localization/dist/dates/CalendarDate.js\";\nimport CalendarType from \"@ui5/webcomponents-base/dist/types/CalendarType.js\";\nimport UI5Date from \"@ui5/webcomponents-localization/dist/dates/UI5Date.js\";\nimport CalendarUtils from \"@ui5/webcomponents-localization/dist/CalendarUtils.js\";\nimport DateFormat from \"@ui5/webcomponents-localization/dist/DateFormat.js\";\nimport CalendarSelectionMode from \"./types/CalendarSelectionMode.js\";\nimport CalendarPart from \"./CalendarPart.js\";\nimport type {\n\tICalendarPicker,\n\tSpecialCalendarDateT,\n} from \"./Calendar.js\";\n\nimport {\n\tDAY_PICKER_WEEK_NUMBER_TEXT,\n\tDAY_PICKER_NON_WORKING_DAY,\n\tDAY_PICKER_TODAY,\n\tLIST_ITEM_SELECTED,\n} from \"./generated/i18n/i18n-defaults.js\";\n\n// Template\nimport DayPickerTemplate from \"./DayPickerTemplate.js\";\n\n// Styles\nimport dayPickerCSS from \"./generated/themes/DayPicker.css.js\";\n\nconst isBetween = (x: number, num1: number, num2: number) => x > Math.min(num1, num2) && x < Math.max(num1, num2);\nconst DAYS_IN_WEEK = 7;\n\ntype DayName = {\n\tname: string,\n\tclasses: string,\n\tultraShortName?: string,\n}\n\ntype Day = {\n\ttimestamp: string,\n\tday: number,\n\tfocusRef: boolean,\n\t_tabIndex: number,\n\tselected: boolean,\n\t_isSecondaryCalendarType: boolean,\n\tclasses: string,\n\tariaLabel: string,\n\tariaSelected: boolean,\n\tariaDisabled: boolean | undefined,\n\tdisabled: boolean,\n\tsecondDay?: number,\n\tweekNum?: number,\n\tisHidden?: boolean,\n\ttype?: string,\n\tparts: string,\n}\n\ntype WeekNumber = {\n\tweekNum: number,\n\tisHidden: boolean,\n}\n\ntype Week = Array<Day | WeekNumber>;\n\ntype DayPickerChangeEventDetail = {\n\tdates: Array<number>,\n\ttimestamp?: number,\n}\n\ntype DayPickerNavigateEventDetail = {\n\ttimestamp: number,\n}\n\n/**\n * @class\n *\n * Represents the days inside a single month view of the `ui5-calendar` component.\n * @constructor\n * @extends CalendarPart\n * @private\n */\n@customElement({\n\ttag: \"ui5-daypicker\",\n\tstyles: dayPickerCSS,\n\ttemplate: DayPickerTemplate,\n})\n/**\n * Fired when the selected date(s) change\n */\n@event(\"change\", {\n\tbubbles: true,\n})\n/**\n * Fired when the timestamp changes (user navigates with the keyboard) or clicks with the mouse\n */\n@event(\"navigate\", {\n\tbubbles: true,\n})\nclass DayPicker extends CalendarPart implements ICalendarPicker {\n\teventDetails!: CalendarPart[\"eventDetails\"] & {\n\t\t\"change\": DayPickerChangeEventDetail,\n\t\t\"navigate\": DayPickerNavigateEventDetail,\n\t};\n\n\t/**\n\t * An array of UTC timestamps representing the selected date or dates depending on the capabilities of the picker component.\n\t * @default []\n\t */\n\t@property({ type: Array })\n\tselectedDates: Array<number> = [];\n\n\t/**\n\t * Defines the type of selection used in the day picker component.\n\t * Accepted property values are:\n\t *\n\t * - `CalendarSelectionMode.Single` - enables a single date selection.(default value)\n\t * - `CalendarSelectionMode.Range` - enables selection of a date range.\n\t * - `CalendarSelectionMode.Multiple` - enables selection of multiple dates.\n\t * @default \"Single\"\n\t */\n\t@property()\n\tselectionMode: `${CalendarSelectionMode}` = \"Single\";\n\n\t/**\n\t * Defines the visibility of the week numbers column.\n\t *\n\t * **Note:** For calendars other than Gregorian,\n\t * the week numbers are not displayed regardless of what is set.\n\t * @default false\n\t * @since 1.0.0-rc.8\n\t */\n\t@property({ type: Boolean })\n\thideWeekNumbers = false;\n\n\t/**\n\t * @private\n\t */\n\t@property({ type: Array })\n\t_weeks: Array<Week> = [];\n\n\t@property({ type: Array })\n\t_dayNames: Array<DayName> = [];\n\n\t/**\n\t * When set, the component will skip all work in onBeforeRendering and will not automatically set the focus on itself\n\t * @private\n\t */\n\t@property({ type: Boolean, noAttribute: true })\n\t_hidden = false;\n\n\t/**\n\t * When selectionMode=\"Range\" and the first day in the range is selected, this is the currently hovered (when using mouse) or focused (when using keyboard) day by the user\n\t * @private\n\t */\n\t @property({ type: Number })\n\t_secondTimestamp?: number;\n\n\t/**\n\t * Array of special calendar dates (if such are passed) from the calendar.\n\t * @private\n\t */\n\t@property({ type: Array })\n\tspecialCalendarDates: Array<SpecialCalendarDateT> = [];\n\n\t_autoFocus?: boolean;\n\n\t@i18n(\"@ui5/webcomponents\")\n\tstatic i18nBundle: I18nBundle;\n\n\tonBeforeRendering() {\n\t\tconst localeData = getCachedLocaleDataInstance(getLocale());\n\t\tthis._buildWeeks(localeData);\n\t\tthis._buildDayNames(localeData);\n\t}\n\n\t/**\n\t * Builds the \"_weeks\" object that represents the month.\n\t * @param localeData\n\t * @private\n\t */\n\t_buildWeeks(localeData: LocaleData) {\n\t\tif (this._hidden) {\n\t\t\treturn; // Optimization to not do any work unless the current picker\n\t\t}\n\n\t\tthis._weeks = [];\n\n\t\tconst firstDayOfWeek = this._getFirstDayOfWeek();\n\t\tconst specialCalendarDates = this._specialCalendarDates;\n\t\tconst monthsNames = localeData.getMonths(\"wide\", this._primaryCalendarType) as Array<string>;\n\t\tconst secondaryMonthsNames = this.hasSecondaryCalendarType ? localeData.getMonths(\"wide\", this.secondaryCalendarType) as Array<string> : [];\n\t\tconst nonWorkingDayLabel = DayPicker.i18nBundle.getText(DAY_PICKER_NON_WORKING_DAY);\n\t\tconst todayLabel = DayPicker.i18nBundle.getText(DAY_PICKER_TODAY);\n\t\tconst tempDate = this._getFirstDay(); // date that will be changed by 1 day 42 times\n\t\tconst todayDate = CalendarDate.fromLocalJSDate(UI5Date.getInstance(), this._primaryCalendarType); // current day date - calculate once\n\t\tconst calendarDate = this._calendarDate; // store the _calendarDate value as this getter is expensive and degrades IE11 perf\n\t\tconst minDate = this._minDate; // store the _minDate (expensive getter)\n\t\tconst maxDate = this._maxDate; // store the _maxDate (expensive getter)\n\n\t\tconst tempSecondDate = this.hasSecondaryCalendarType ? this._getSecondaryDay(tempDate) : undefined;\n\n\t\tlet week: Week = [];\n\t\tfor (let i = 0; i < DAYS_IN_WEEK * 6; i++) { // always show 6 weeks total, 42 days to avoid jumping\n\t\t\tconst timestamp = tempDate.valueOf() / 1000; // no need to round because CalendarDate does it\n\n\t\t\tlet dayOfTheWeek = tempDate.getDay() - firstDayOfWeek;\n\t\t\tif (dayOfTheWeek < 0) {\n\t\t\t\tdayOfTheWeek += DAYS_IN_WEEK;\n\t\t\t}\n\n\t\t\tconst specialCalendarDate = specialCalendarDates.find(specialDate => specialDate.specialDateTimestamp === timestamp);\n\t\t\tconst specialDayType = specialCalendarDate ? specialCalendarDate.type : \"\";\n\n\t\t\tconst isFocused = tempDate.getMonth() === calendarDate.getMonth() && tempDate.getDate() === calendarDate.getDate();\n\t\t\tconst isSelected = this._isDaySelected(timestamp);\n\t\t\tconst isSelectedBetween = this._isDayInsideSelectionRange(timestamp);\n\t\t\tconst isOtherMonth = tempDate.getMonth() !== calendarDate.getMonth();\n\t\t\tconst isWeekend = this._isWeekend(tempDate);\n\t\t\tconst isDisabled = tempDate.valueOf() < minDate.valueOf() || tempDate.valueOf() > maxDate.valueOf();\n\t\t\tconst isToday = tempDate.isSame(todayDate);\n\t\t\tconst isFirstDayOfWeek = tempDate.getDay() === firstDayOfWeek;\n\n\t\t\tconst nonWorkingAriaLabel = isWeekend ? `${nonWorkingDayLabel} ` : \"\";\n\t\t\tconst todayAriaLabel = isToday ? `${todayLabel} ` : \"\";\n\n\t\t\tconst tempSecondDateNumber = tempSecondDate ? tempSecondDate.getDate() : \"\";\n\t\t\tconst tempSecondYearNumber = tempSecondDate ? tempSecondDate.getYear() : \"\";\n\t\t\tconst secondaryMonthsNamesString = secondaryMonthsNames.length > 0 ? secondaryMonthsNames[tempSecondDate!.getMonth()] : \"\";\n\n\t\t\tconst ariaLabel = this.hasSecondaryCalendarType\n\t\t\t\t? `${todayAriaLabel}${nonWorkingAriaLabel}${monthsNames[tempDate.getMonth()]} ${tempDate.getDate()}, ${tempDate.getYear()}; ${secondaryMonthsNamesString} ${tempSecondDateNumber}, ${tempSecondYearNumber}`\n\t\t\t\t: `${todayAriaLabel}${nonWorkingAriaLabel}${monthsNames[tempDate.getMonth()]} ${tempDate.getDate()}, ${tempDate.getYear()}`;\n\n\t\t\tconst day: Day = {\n\t\t\t\ttimestamp: timestamp.toString(),\n\t\t\t\tfocusRef: isFocused,\n\t\t\t\t_tabIndex: isFocused ? 0 : -1,\n\t\t\t\tselected: isSelected || isSelectedBetween,\n\t\t\t\tday: tempDate.getDate(),\n\t\t\t\tsecondDay: this.hasSecondaryCalendarType ? (tempSecondDate as CalendarDate).getDate() : undefined,\n\t\t\t\t_isSecondaryCalendarType: this.hasSecondaryCalendarType,\n\t\t\t\tclasses: `ui5-dp-item ui5-dp-wday${dayOfTheWeek}`,\n\t\t\t\tariaLabel,\n\t\t\t\tariaSelected: isSelected || isSelectedBetween,\n\t\t\t\tariaDisabled: isDisabled || isOtherMonth,\n\t\t\t\tdisabled: isDisabled,\n\t\t\t\ttype: specialDayType,\n\t\t\t\tparts: \"day-cell\",\n\t\t\t};\n\n\t\t\tif (isFirstDayOfWeek) {\n\t\t\t\tday.classes += \" ui5-dp-firstday\";\n\t\t\t}\n\n\t\t\tif (isSelected) {\n\t\t\t\tday.classes += \" ui5-dp-item--selected\";\n\t\t\t\tday.parts += \" day-cell-selected\";\n\t\t\t}\n\n\t\t\tif (isSelectedBetween) {\n\t\t\t\tday.classes += \" ui5-dp-item--selected-between\";\n\t\t\t\tday.parts += \" day-cell-selected-between\";\n\t\t\t}\n\n\t\t\tif (isToday) {\n\t\t\t\tday.classes += \" ui5-dp-item--now\";\n\t\t\t}\n\n\t\t\tif (isOtherMonth) {\n\t\t\t\tday.classes += \" ui5-dp-item--othermonth\";\n\t\t\t}\n\n\t\t\tif ((isWeekend || specialDayType === \"NonWorking\") && specialDayType !== \"Working\") {\n\t\t\t\tday.classes += \" ui5-dp-item--weekend\";\n\t\t\t}\n\n\t\t\tif (isDisabled) {\n\t\t\t\tday.classes += \" ui5-dp-item--disabled\";\n\t\t\t}\n\n\t\t\tif (this.hasSecondaryCalendarType) {\n\t\t\t\tday.classes += \" ui5-dp-item--withsecondtype\";\n\t\t\t}\n\n\t\t\tweek.push(day);\n\n\t\t\tif (dayOfTheWeek === DAYS_IN_WEEK - 1) { // 0-indexed so 6 is the last day of the week\n\t\t\t\tconst weekNumber = this._calculateWeekNumber(tempDate.toLocalJSDate());\n\n\t\t\t\tweek.unshift({\n\t\t\t\t\tweekNum: weekNumber,\n\t\t\t\t\tisHidden: this.shouldHideWeekNumbers,\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tif (week.length === DAYS_IN_WEEK + 1) { // 7 entries for each day + 1 for the week numbers\n\t\t\t\tthis._weeks.push(week);\n\t\t\t\tweek = [];\n\t\t\t}\n\n\t\t\ttempDate.setDate(tempDate.getDate() + 1);\n\t\t\tif (this.hasSecondaryCalendarType && tempSecondDate) {\n\t\t\t\ttempSecondDate.setDate(tempSecondDate.getDate() + 1);\n\t\t\t}\n\t\t}\n\t}\n\n\t_calculateWeekNumber(date: Date): number {\n\t\tconst oDateFormat = DateFormat.getDateInstance({ pattern: \"w\", calendarType: this.primaryCalendarType, calendarWeekNumbering: this.calendarWeekNumbering });\n\t\tconst weekNumber = oDateFormat.format(date);\n\n\t\treturn Number(weekNumber);\n\t}\n\n\t/**\n\t * Builds the dayNames object (header of the month).\n\t * @param localeData\n\t * @private\n\t */\n\t_buildDayNames(localeData: LocaleData) {\n\t\tif (this._hidden) {\n\t\t\treturn; // Optimization to not do any work unless the current picker\n\t\t}\n\n\t\tlet dayOfTheWeek;\n\n\t\tconst aDayNamesWide = localeData.getDays(\"wide\", this._primaryCalendarType) as Array<string>;\n\t\tlet aDayNamesAbbreviated = localeData.getDays(\"abbreviated\", this._primaryCalendarType) as Array<string>;\n\t\tlet dayName;\n\n\t\tif (this.namesTooLong(aDayNamesAbbreviated)) {\n\t\t\taDayNamesAbbreviated = localeData.getDays(\"narrow\", this._primaryCalendarType) as Array<string>;\n\t\t}\n\n\t\tthis._dayNames = [];\n\t\tthis._dayNames.push({\n\t\t\tclasses: \"ui5-dp-dayname\",\n\t\t\tname: DayPicker.i18nBundle.getText(DAY_PICKER_WEEK_NUMBER_TEXT),\n\t\t});\n\t\tfor (let i = 0; i < DAYS_IN_WEEK; i++) {\n\t\t\tdayOfTheWeek = i + this._getFirstDayOfWeek();\n\t\t\tif (dayOfTheWeek > DAYS_IN_WEEK - 1) { // 0-indexed so index of 6 is the maximum allowed\n\t\t\t\tdayOfTheWeek -= DAYS_IN_WEEK;\n\t\t\t}\n\t\t\tdayName = {\n\t\t\t\tname: aDayNamesWide[dayOfTheWeek],\n\t\t\t\tultraShortName: aDayNamesAbbreviated[dayOfTheWeek],\n\t\t\t\tclasses: \"ui5-dp-dayname\",\n\t\t\t};\n\t\t\tthis._dayNames.push(dayName);\n\t\t}\n\t\tthis._dayNames[1].classes += \" ui5-dp-firstday\";\n\t\tif (this.shouldHideWeekNumbers) {\n\t\t\tthis._dayNames.shift();\n\t\t}\n\t}\n\n\t/**\n\t * Tells if any of the days is more than 4 characters(too long to render).\n\t * @param dayNames\n\t * @private\n\t */\n\tnamesTooLong(dayNames: Array<string>): boolean {\n\t\treturn dayNames.some(dayName => dayName.length > 4);\n\t}\n\n\tonAfterRendering() {\n\t\tif (this._autoFocus && !this._hidden) {\n\t\t\tthis.focus();\n\t\t}\n\n\t\tconst focusedDay = this.shadowRoot!.querySelector<HTMLElement>(\"[data-sap-focus-ref]\");\n\n\t\tif (focusedDay && document.activeElement !== focusedDay && this._specialCalendarDates.length === 0) {\n\t\t\tfocusedDay.focus();\n\t\t}\n\t}\n\n\t_onfocusin() {\n\t\tthis._autoFocus = true;\n\t}\n\n\t_onfocusout() {\n\t\tthis._autoFocus = false;\n\t}\n\n\t/**\n\t * Tells if the day is selected (dark blue).\n\t * @param timestamp\n\t * @private\n\t */\n\t_isDaySelected(timestamp: number): boolean {\n\t\tif (this.selectionMode === CalendarSelectionMode.Single) {\n\t\t\treturn timestamp === this.selectedDates[0];\n\t\t}\n\n\t\tif (this.selectionMode === CalendarSelectionMode.Multiple) {\n\t\t\treturn this.selectedDates.includes(timestamp);\n\t\t}\n\n\t\treturn timestamp === this.selectedDates[0] || timestamp === this.selectedDates[this.selectedDates.length - 1];\n\t}\n\n\t/**\n\t * Tells if the day is inside a selection range (light blue).\n\t * @param timestamp\n\t * @private\n\t */\n\t_isDayInsideSelectionRange(timestamp: number): boolean {\n\t\t// No selection at all (or not in range selection mode)\n\t\tif (this.selectionMode !== CalendarSelectionMode.Range || !this.selectedDates.length) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Only one date selected - the user is hovering with the mouse or navigating with the keyboard to select the second one\n\t\tif (this.selectedDates.length === 1 && this._secondTimestamp) {\n\t\t\treturn isBetween(timestamp, this.selectedDates[0], this._secondTimestamp);\n\t\t}\n\n\t\t// Two dates selected - stable range\n\t\treturn isBetween(timestamp, this.selectedDates[0], this.selectedDates[this.selectedDates.length - 1]);\n\t}\n\n\t/**\n\t * Selects/deselects a day.\n\t * @param e\n\t * @param isShift true if the user did Click+Shift or Enter+Shift (but not Space+Shift)\n\t * @private\n\t */\n\t_selectDate(e: Event, isShift: boolean) {\n\t\tlet target = e.target as HTMLElement;\n\n\t\tif (!target.hasAttribute(\"data-sap-timestamp\")) {\n\t\t\ttarget = target.parentNode as HTMLElement;\n\t\t}\n\n\t\tif (!this._isDayPressed(target)) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst timestamp = this._getTimestampFromDom(target);\n\n\t\tthis._safelySetTimestamp(timestamp);\n\t\tthis._updateSecondTimestamp();\n\t\tthis._updateSelectedDates(timestamp, isShift);\n\n\t\tthis.fireDecoratorEvent(\"change\", {\n\t\t\ttimestamp: this.timestamp,\n\t\t\tdates: this.selectedDates,\n\t\t});\n\t}\n\n\t_updateSelectedDates(timestamp: number, isShift: boolean) {\n\t\tif (this.selectionMode === CalendarSelectionMode.Multiple) {\n\t\t\tif (this.selectedDates.length > 0 && isShift) {\n\t\t\t\tthis._multipleSelection(timestamp);\n\t\t\t} else {\n\t\t\t\tthis._toggleTimestampInSelection(timestamp);\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\n\t\tannounce(DayPicker.i18nBundle.getText(LIST_ITEM_SELECTED), InvisibleMessageMode.Assertive);\n\t\tif (this.selectionMode === CalendarSelectionMode.Range && this.selectedDates.length === 1) {\n\t\t\tthis.selectedDates = [this.selectedDates[0], timestamp];\n\t\t\treturn;\n\t\t}\n\n\t\tthis.selectedDates = [timestamp];\n\t}\n\n\t/**\n\t * Selects/deselects the whole row (week).\n\t * @private\n\t */\n\t_selectWeek() {\n\t\tthis._weeks.forEach((week: Week) => {\n\t\t\tconst _week = week as Array<Day>;\n\t\t\tconst dayInThisWeek = _week.findIndex((item: Day) => {\n\t\t\t\tconst date = CalendarDate.fromTimestamp(parseInt(item.timestamp) * 1000);\n\t\t\t\treturn date.getMonth() === this._calendarDate.getMonth() && date.getDate() === this._calendarDate.getDate();\n\t\t\t}) !== -1;\n\t\t\tif (dayInThisWeek) { // The current day is in this week\n\t\t\t\tconst notAllDaysOfThisWeekSelected = _week.some(item => item.timestamp && !this.selectedDates.includes(parseInt(item.timestamp)));\n\t\t\t\tif (notAllDaysOfThisWeekSelected) { // even if one day is not selected, select the whole week\n\t\t\t\t\t_week.filter(item => item.timestamp).forEach(item => {\n\t\t\t\t\t\tthis._addTimestampToSelection(parseInt(item.timestamp));\n\t\t\t\t\t});\n\t\t\t\t} else { // only if all days of this week are selected, deselect them\n\t\t\t\t\t_week.filter(item => item.timestamp).forEach(item => {\n\t\t\t\t\t\tthis._removeTimestampFromSelection(parseInt(item.timestamp));\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\n\t\tthis.fireDecoratorEvent(\"change\", {\n\t\t\ttimestamp: this.timestamp,\n\t\t\tdates: this.selectedDates,\n\t\t});\n\t}\n\n\t_toggleTimestampInSelection(timestamp: number) {\n\t\tif (this.selectedDates.includes(timestamp)) {\n\t\t\tthis._removeTimestampFromSelection(timestamp);\n\t\t} else {\n\t\t\tthis._addTimestampToSelection(timestamp);\n\t\t\tannounce(DayPicker.i18nBundle.getText(LIST_ITEM_SELECTED), InvisibleMessageMode.Assertive);\n\t\t}\n\t}\n\n\t_addTimestampToSelection(timestamp: number) {\n\t\tif (!this.selectedDates.includes(timestamp)) {\n\t\t\tthis.selectedDates = [...this.selectedDates, timestamp];\n\t\t}\n\t}\n\n\t_removeTimestampFromSelection(timestamp: number) {\n\t\tthis.selectedDates = this.selectedDates.filter(value => value !== timestamp);\n\t}\n\n\t/**\n\t * Called when at least one day is selected and the user presses \"Shift\".\n\t * @param timestamp\n\t * @private\n\t */\n\t_multipleSelection(timestamp: number) {\n\t\tconst min = Math.min(...this.selectedDates);\n\t\tconst max = Math.max(...this.selectedDates);\n\t\tlet start;\n\t\tlet end;\n\t\tlet toggle = false;\n\n\t\tif (timestamp < min) {\n\t\t\tstart = timestamp;\n\t\t\tend = min;\n\t\t} else if (timestamp >= min && timestamp <= max) { // inside the current range - toggle all between the selected and focused\n\t\t\tconst distanceToMin = Math.abs(timestamp - min);\n\t\t\tconst distanceToMax = Math.abs(timestamp - max);\n\n\t\t\tif (distanceToMin < distanceToMax) {\n\t\t\t\tstart = timestamp;\n\t\t\t\tend = max;\n\t\t\t} else {\n\t\t\t\tstart = min;\n\t\t\t\tend = timestamp;\n\t\t\t}\n\t\t\ttoggle = true;\n\t\t} else {\n\t\t\tstart = max;\n\t\t\tend = timestamp;\n\t\t}\n\n\t\tconst startDate = CalendarDate.fromTimestamp(start * 1000);\n\t\tconst endDate = CalendarDate.fromTimestamp(end * 1000);\n\n\t\twhile (startDate.valueOf() <= endDate.valueOf()) {\n\t\t\tthis[toggle ? \"_toggleTimestampInSelection\" : \"_addTimestampToSelection\"](startDate.valueOf() / 1000);\n\t\t\tstartDate.setDate(startDate.getDate() + 1);\n\t\t}\n\t}\n\n\t/**\n\t * Set the hovered day as the \"_secondTimestamp\".\n\t * @param e\n\t * @private\n\t */\n\t_onmouseover(e: MouseEvent) {\n\t\tconst target = e.target as HTMLElement;\n\t\tconst hoveredItem = target.closest(\".ui5-dp-item\") as HTMLElement;\n\t\tif (hoveredItem && this.selectionMode === CalendarSelectionMode.Range && this.selectedDates.length === 1) {\n\t\t\tthis._secondTimestamp = this._getTimestampFromDom(hoveredItem);\n\t\t}\n\t}\n\n\t_onkeydown(e: KeyboardEvent) {\n\t\tlet preventDefault = true;\n\n\t\tif (isEnter(e) || isEnterShift(e)) {\n\t\t\tthis._selectDate(e, isEnterShift(e));\n\t\t} else if (isSpace(e) || isSpaceShift(e)) {\n\t\t\te.preventDefault();\n\t\t} else if (isLeft(e)) {\n\t\t\tthis._modifyTimestampBy(-1, \"day\", false);\n\t\t} else if (isRight(e)) {\n\t\t\tthis._modifyTimestampBy(1, \"day\", false);\n\t\t} else if (isUp(e)) {\n\t\t\tthis._modifyTimestampBy(-7, \"day\", false);\n\t\t} else if (isDown(e)) {\n\t\t\tthis._modifyTimestampBy(7, \"day\", false);\n\t\t} else if (isPageUp(e)) {\n\t\t\tthis._modifyTimestampBy(-1, \"month\");\n\t\t} else if (isPageDown(e)) {\n\t\t\tthis._modifyTimestampBy(1, \"month\");\n\t\t} else if (isPageUpShift(e) || isPageUpAlt(e)) {\n\t\t\tthis._modifyTimestampBy(-1, \"year\");\n\t\t} else if (isPageDownShift(e) || isPageDownAlt(e)) {\n\t\t\tthis._modifyTimestampBy(1, \"year\");\n\t\t} else if (isPageUpShiftCtrl(e)) {\n\t\t\tthis._modifyTimestampBy(-10, \"year\");\n\t\t} else if (isPageDownShiftCtrl(e)) {\n\t\t\tthis._modifyTimestampBy(10, \"year\");\n\t\t} else if (isHome(e) || isEnd(e)) {\n\t\t\tthis._onHomeOrEnd(isHome(e));\n\t\t} else if (isHomeCtrl(e)) {\n\t\t\tconst tempDate = new CalendarDate(this._calendarDate, this._primaryCalendarType);\n\t\t\ttempDate.setDate(1); // Set the first day of the month\n\t\t\tthis._setTimestamp(tempDate.valueOf() / 1000);\n\t\t} else if (isEndCtrl(e)) {\n\t\t\tconst tempDate = new CalendarDate(this._calendarDate, this._primaryCalendarType);\n\t\t\ttempDate.setMonth(tempDate.getMonth() + 1);\n\t\t\ttempDate.setDate(0); // Set the last day of the month (0th day of next month)\n\t\t\tthis._setTimestamp(tempDate.valueOf() / 1000);\n\t\t} else {\n\t\t\tpreventDefault = false;\n\t\t}\n\n\t\tif (preventDefault) {\n\t\t\te.preventDefault();\n\t\t}\n\t}\n\n\t_onkeyup(e: KeyboardEvent) {\n\t\t// Even if Space+Shift was pressed, ignore the shift unless in Multiple selection\n\t\tif (isSpace(e) || (isSpaceShift(e) && this.selectionMode !== CalendarSelectionMode.Multiple)) {\n\t\t\tthis._selectDate(e, false);\n\t\t} else if (isSpaceShift(e)) {\n\t\t\tthis._selectWeek();\n\t\t}\n\t}\n\n\t/**\n\t * Click is the same as \"Enter\".\n\t * **Note:** \"Click+Shift\" has the same effect as \"Enter+Shift\".\n\t * @param e\n\t * @private\n\t */\n\t_onclick(e: MouseEvent) {\n\t\tthis._selectDate(e, e.shiftKey);\n\t}\n\n\t/**\n\t * Called upon \"Home\" or \"End\" - moves the focus to the first or last item in the row.\n\t * @param homePressed\n\t * @private\n\t */\n\t_onHomeOrEnd(homePressed: boolean) {\n\t\tthis._weeks.forEach(week => {\n\t\t\tconst _week = week as Array<Day>;\n\t\t\tconst dayInThisWeek = _week.findIndex(item => {\n\t\t\t\tconst date = CalendarDate.fromTimestamp(parseInt(item.timestamp) * 1000);\n\t\t\t\treturn date.getMonth() === this._calendarDate.getMonth() && date.getDate() === this._calendarDate.getDate();\n\t\t\t}) !== -1;\n\t\t\tif (dayInThisWeek) { // The current day is in this week\n\t\t\t\tconst index = homePressed ? 1 : 7; // select the first (if Home) or last (if End) day of the week\n\t\t\t\tthis._setTimestamp(parseInt(_week[index].timestamp));\n\t\t\t}\n\t\t});\n\t}\n\n\t/**\n\t * Called by the Calendar component.\n\t * @protected\n\t */\n\t_hasPreviousPage(): boolean {\n\t\treturn !(this._calendarDate.getMonth() === this._minDate.getMonth() && this._calendarDate.getYear() === this._minDate.getYear());\n\t}\n\n\t/**\n\t * Called by the Calendar component.\n\t * @protected\n\t */\n\t_hasNextPage(): boolean {\n\t\treturn !(this._calendarDate.getMonth() === this._maxDate.getMonth() && this._calendarDate.getYear() === this._maxDate.getYear());\n\t}\n\n\t/**\n\t * Called by the Calendar component.\n\t * @protected\n\t */\n\t_showPreviousPage() {\n\t\tthis._modifyTimestampBy(-1, \"month\", false);\n\t}\n\n\t/**\n\t * Called by the Calendar component.\n\t * @protected\n\t */\n\t_showNextPage() {\n\t\tthis._modifyTimestampBy(1, \"month\", false);\n\t}\n\n\t/**\n\t * Modifies the timestamp by a certain amount of days/months/years.\n\t * @param amount\n\t * @param unit\n\t * @param preserveDate whether to preserve the day of the month (f.e. 15th of March + 1 month = 15th of April)\n\t * @private\n\t */\n\t_modifyTimestampBy(amount: number, unit: string, preserveDate?: boolean) {\n\t\t// Modify the current timestamp\n\t\tthis._safelyModifyTimestampBy(amount, unit, preserveDate);\n\t\tthis._updateSecondTimestamp();\n\n\t\t// Notify the calendar to update its timestamp\n\t\tthis.fireDecoratorEvent(\"navigate\", { timestamp: this.timestamp! });\n\t}\n\n\t/**\n\t * Sets the timestamp to an absolute value.\n\t * @param value\n\t * @private\n\t */\n\t_setTimestamp(value: number) {\n\t\tthis._safelySetTimestamp(value);\n\t\tthis._updateSecondTimestamp();\n\t\tthis.fireDecoratorEvent(\"navigate\", { timestamp: this.timestamp! });\n\t}\n\n\t/**\n\t * During range selection, when the user is navigating with the keyboard,\n\t * the currently focused day is considered the \"second day\".\n\t * @private\n\t */\n\t_updateSecondTimestamp() {\n\t\tif (this.selectionMode === CalendarSelectionMode.Range && (this.selectedDates.length === 1 || this.selectedDates.length === 2)) {\n\t\t\tthis._secondTimestamp = this.timestamp;\n\t\t}\n\t}\n\n\tget _specialCalendarDates() {\n\t\treturn this.specialCalendarDates;\n\t}\n\n\tget shouldHideWeekNumbers() {\n\t\tif (this._primaryCalendarType !== CalendarType.Gregorian) {\n\t\t\treturn true;\n\t\t}\n\n\t\treturn this.hideWeekNumbers;\n\t}\n\n\t_isWeekend(oDate: CalendarDate): boolean {\n\t\tconst localeData = getCachedLocaleDataInstance(getLocale());\n\n\t\tconst iWeekDay = oDate.getDay(),\n\t\t\tiWeekendStart = localeData.getWeekendStart(),\n\t\t\tiWeekendEnd = localeData.getWeekendEnd();\n\n\t\treturn (iWeekDay >= iWeekendStart && iWeekDay <= iWeekendEnd)\n\t\t\t|| (iWeekendEnd < iWeekendStart && (iWeekDay >= iWeekendStart || iWeekDay <= iWeekendEnd));\n\t}\n\n\t_isDayPressed(target: HTMLElement): boolean {\n\t\tconst targetParent = target.parentNode as HTMLElement;\n\t\treturn (target.className.indexOf(\"ui5-dp-item\") > -1) || (targetParent && targetParent.classList && targetParent.classList.contains(\"ui5-dp-item\"));\n\t}\n\n\t_getSecondaryDay(tempDate: CalendarDate): CalendarDate {\n\t\treturn new CalendarDate(tempDate, this.secondaryCalendarType);\n\t}\n\n\t_getFirstDay(): CalendarDate {\n\t\tlet daysFromPreviousMonth;\n\n\t\tconst firstDayOfWeek = this._getFirstDayOfWeek();\n\n\t\t// determine weekday of first day in month\n\t\tconst firstDay = new CalendarDate(this._calendarDate, this._primaryCalendarType);\n\t\tfirstDay.setDate(1);\n\n\t\tdaysFromPreviousMonth = firstDay.getDay() - firstDayOfWeek;\n\n\t\tif (daysFromPreviousMonth < 0) {\n\t\t\tdaysFromPreviousMonth = 7 + daysFromPreviousMonth;\n\t\t}\n\n\t\tif (daysFromPreviousMonth > 0) {\n\t\t\tfirstDay.setDate(1 - daysFromPreviousMonth);\n\t\t}\n\n\t\treturn firstDay;\n\t}\n\n\t_getFirstDayOfWeek(): number {\n\t\tconst result = CalendarUtils.getWeekConfigurationValues(this.calendarWeekNumbering);\n\n\t\tconst localeData = getCachedLocaleDataInstance(getLocale());\n\t\treturn result?.firstDayOfWeek ? result.firstDayOfWeek : localeData.getFirstDayOfWeek();\n\t}\n\n\tget styles() {\n\t\treturn {\n\t\t\twrapper: {\n\t\t\t\tdisplay: this._hidden ? \"none\" : \"flex\",\n\t\t\t\t\"justify-content\": \"center\",\n\t\t\t},\n\t\t\tmain: {\n\t\t\t\twidth: \"100%\",\n\t\t\t},\n\t\t};\n\t}\n\n\tget ariaRoledescription() {\n\t\treturn this.hasSecondaryCalendarType\n\t\t\t? `${this._primaryCalendarType} calendar with secondary ${this.secondaryCalendarType as string} calendar`\n\t\t\t: `${this._primaryCalendarType} calendar`;\n\t}\n}\n\nDayPicker.define();\n\nexport default DayPicker;\nexport type {\n\tDayPickerNavigateEventDetail,\n\tDayPickerChangeEventDetail,\n};\n"]}
|
|
1
|
+
{"version":3,"file":"DayPicker.js","sourceRoot":"","sources":["../src/DayPicker.ts"],"names":[],"mappings":"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","sourcesContent":["import customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event-strict.js\";\nimport i18n from \"@ui5/webcomponents-base/dist/decorators/i18n.js\";\nimport getLocale from \"@ui5/webcomponents-base/dist/locale/getLocale.js\";\nimport type LocaleData from \"@ui5/webcomponents-localization/dist/LocaleData.js\";\nimport getCachedLocaleDataInstance from \"@ui5/webcomponents-localization/dist/getCachedLocaleDataInstance.js\";\nimport InvisibleMessageMode from \"@ui5/webcomponents-base/dist/types/InvisibleMessageMode.js\";\nimport announce from \"@ui5/webcomponents-base/dist/util/InvisibleMessage.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport {\n\tisSpace,\n\tisSpaceShift,\n\tisEnter,\n\tisEnterShift,\n\tisUp,\n\tisDown,\n\tisLeft,\n\tisRight,\n\tisHome,\n\tisEnd,\n\tisHomeCtrl,\n\tisEndCtrl,\n\tisPageUp,\n\tisPageDown,\n\tisPageUpShift,\n\tisPageUpAlt,\n\tisPageUpShiftCtrl,\n\tisPageDownShift,\n\tisPageDownAlt,\n\tisPageDownShiftCtrl,\n} from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport CalendarDate from \"@ui5/webcomponents-localization/dist/dates/CalendarDate.js\";\nimport CalendarType from \"@ui5/webcomponents-base/dist/types/CalendarType.js\";\nimport UI5Date from \"@ui5/webcomponents-localization/dist/dates/UI5Date.js\";\nimport CalendarUtils from \"@ui5/webcomponents-localization/dist/CalendarUtils.js\";\nimport DateFormat from \"@ui5/webcomponents-localization/dist/DateFormat.js\";\nimport CalendarSelectionMode from \"./types/CalendarSelectionMode.js\";\nimport CalendarPart from \"./CalendarPart.js\";\nimport type {\n\tICalendarPicker,\n\tSpecialCalendarDateT,\n} from \"./Calendar.js\";\n\nimport {\n\tDAY_PICKER_WEEK_NUMBER_TEXT,\n\tDAY_PICKER_NON_WORKING_DAY,\n\tDAY_PICKER_TODAY,\n\tLIST_ITEM_SELECTED,\n} from \"./generated/i18n/i18n-defaults.js\";\n\n// Template\nimport DayPickerTemplate from \"./DayPickerTemplate.js\";\n\n// Styles\nimport dayPickerCSS from \"./generated/themes/DayPicker.css.js\";\n\nconst isBetween = (x: number, num1: number, num2: number) => x > Math.min(num1, num2) && x < Math.max(num1, num2);\nconst DAYS_IN_WEEK = 7;\n\ntype DayName = {\n\tname: string,\n\tclasses: string,\n\tultraShortName?: string,\n}\n\ntype Day = {\n\ttimestamp: string,\n\tday: number,\n\tfocusRef: boolean,\n\t_tabIndex: number,\n\tselected: boolean,\n\t_isSecondaryCalendarType: boolean,\n\tclasses: string,\n\ttooltip?: string,\n\tariaLabel: string,\n\tariaSelected: boolean,\n\tariaDisabled: boolean | undefined,\n\tdisabled: boolean,\n\tsecondDay?: number,\n\tweekNum?: number,\n\tisHidden?: boolean,\n\ttype?: string,\n\tparts: string,\n}\n\ntype WeekNumber = {\n\tweekNum: number,\n\tisHidden: boolean,\n}\n\ntype Week = Array<Day | WeekNumber>;\n\ntype DayPickerChangeEventDetail = {\n\tdates: Array<number>,\n\ttimestamp?: number,\n}\n\ntype DayPickerNavigateEventDetail = {\n\ttimestamp: number,\n}\n\n/**\n * @class\n *\n * Represents the days inside a single month view of the `ui5-calendar` component.\n * @constructor\n * @extends CalendarPart\n * @private\n */\n@customElement({\n\ttag: \"ui5-daypicker\",\n\tstyles: dayPickerCSS,\n\ttemplate: DayPickerTemplate,\n})\n/**\n * Fired when the selected date(s) change\n */\n@event(\"change\", {\n\tbubbles: true,\n})\n/**\n * Fired when the timestamp changes (user navigates with the keyboard) or clicks with the mouse\n */\n@event(\"navigate\", {\n\tbubbles: true,\n})\nclass DayPicker extends CalendarPart implements ICalendarPicker {\n\teventDetails!: CalendarPart[\"eventDetails\"] & {\n\t\t\"change\": DayPickerChangeEventDetail,\n\t\t\"navigate\": DayPickerNavigateEventDetail,\n\t};\n\n\t/**\n\t * An array of UTC timestamps representing the selected date or dates depending on the capabilities of the picker component.\n\t * @default []\n\t */\n\t@property({ type: Array })\n\tselectedDates: Array<number> = [];\n\n\t/**\n\t * Defines the type of selection used in the day picker component.\n\t * Accepted property values are:\n\t *\n\t * - `CalendarSelectionMode.Single` - enables a single date selection.(default value)\n\t * - `CalendarSelectionMode.Range` - enables selection of a date range.\n\t * - `CalendarSelectionMode.Multiple` - enables selection of multiple dates.\n\t * @default \"Single\"\n\t */\n\t@property()\n\tselectionMode: `${CalendarSelectionMode}` = \"Single\";\n\n\t/**\n\t * Defines the visibility of the week numbers column.\n\t *\n\t * **Note:** For calendars other than Gregorian,\n\t * the week numbers are not displayed regardless of what is set.\n\t * @default false\n\t * @since 1.0.0-rc.8\n\t */\n\t@property({ type: Boolean })\n\thideWeekNumbers = false;\n\n\t/**\n\t * @private\n\t */\n\t@property({ type: Array })\n\t_weeks: Array<Week> = [];\n\n\t@property({ type: Array })\n\t_dayNames: Array<DayName> = [];\n\n\t/**\n\t * When set, the component will skip all work in onBeforeRendering and will not automatically set the focus on itself\n\t * @private\n\t */\n\t@property({ type: Boolean, noAttribute: true })\n\t_hidden = false;\n\n\t/**\n\t * When selectionMode=\"Range\" and the first day in the range is selected, this is the currently hovered (when using mouse) or focused (when using keyboard) day by the user\n\t * @private\n\t */\n\t @property({ type: Number })\n\t_secondTimestamp?: number;\n\n\t/**\n\t * Array of special calendar dates (if such are passed) from the calendar.\n\t * @private\n\t */\n\t@property({ type: Array })\n\tspecialCalendarDates: Array<SpecialCalendarDateT> = [];\n\n\t_autoFocus?: boolean;\n\n\t@i18n(\"@ui5/webcomponents\")\n\tstatic i18nBundle: I18nBundle;\n\n\tonBeforeRendering() {\n\t\tconst localeData = getCachedLocaleDataInstance(getLocale());\n\t\tthis._buildWeeks(localeData);\n\t\tthis._buildDayNames(localeData);\n\t}\n\n\t/**\n\t * Builds the \"_weeks\" object that represents the month.\n\t * @param localeData\n\t * @private\n\t */\n\t_buildWeeks(localeData: LocaleData) {\n\t\tif (this._hidden) {\n\t\t\treturn; // Optimization to not do any work unless the current picker\n\t\t}\n\n\t\tthis._weeks = [];\n\n\t\tconst firstDayOfWeek = this._getFirstDayOfWeek();\n\t\tconst specialCalendarDates = this._specialCalendarDates;\n\t\tconst monthsNames = localeData.getMonths(\"wide\", this._primaryCalendarType) as Array<string>;\n\t\tconst secondaryMonthsNames = this.hasSecondaryCalendarType ? localeData.getMonths(\"wide\", this.secondaryCalendarType) as Array<string> : [];\n\t\tconst nonWorkingDayLabel = DayPicker.i18nBundle.getText(DAY_PICKER_NON_WORKING_DAY);\n\t\tconst todayLabel = DayPicker.i18nBundle.getText(DAY_PICKER_TODAY);\n\t\tconst tempDate = this._getFirstDay(); // date that will be changed by 1 day 42 times\n\t\tconst todayDate = CalendarDate.fromLocalJSDate(UI5Date.getInstance(), this._primaryCalendarType); // current day date - calculate once\n\t\tconst calendarDate = this._calendarDate; // store the _calendarDate value as this getter is expensive and degrades IE11 perf\n\t\tconst minDate = this._minDate; // store the _minDate (expensive getter)\n\t\tconst maxDate = this._maxDate; // store the _maxDate (expensive getter)\n\n\t\tconst tempSecondDate = this.hasSecondaryCalendarType ? this._getSecondaryDay(tempDate) : undefined;\n\n\t\tlet week: Week = [];\n\t\tfor (let i = 0; i < DAYS_IN_WEEK * 6; i++) { // always show 6 weeks total, 42 days to avoid jumping\n\t\t\tconst timestamp = tempDate.valueOf() / 1000; // no need to round because CalendarDate does it\n\n\t\t\tlet dayOfTheWeek = tempDate.getDay() - firstDayOfWeek;\n\t\t\tif (dayOfTheWeek < 0) {\n\t\t\t\tdayOfTheWeek += DAYS_IN_WEEK;\n\t\t\t}\n\n\t\t\tconst specialCalendarDate = specialCalendarDates.find(specialDate => specialDate.specialDateTimestamp === timestamp);\n\t\t\tconst specialDayType = specialCalendarDate ? specialCalendarDate.type : \"\";\n\t\t\tconst specialDayTooltip = specialCalendarDate ? specialCalendarDate.tooltip : \"\";\n\t\t\tconst unnamedCalendarTypeLabel = specialDayTooltip && !this._isDefaultCalendarLegendType(specialDayType) ? specialDayTooltip : \"\";\n\n\t\t\tconst isFocused = tempDate.getMonth() === calendarDate.getMonth() && tempDate.getDate() === calendarDate.getDate();\n\t\t\tconst isSelected = this._isDaySelected(timestamp);\n\t\t\tconst isSelectedBetween = this._isDayInsideSelectionRange(timestamp);\n\t\t\tconst isOtherMonth = tempDate.getMonth() !== calendarDate.getMonth();\n\t\t\tconst isWeekend = this._isWeekend(tempDate);\n\t\t\tconst isDisabled = tempDate.valueOf() < minDate.valueOf() || tempDate.valueOf() > maxDate.valueOf();\n\t\t\tconst isToday = tempDate.isSame(todayDate);\n\t\t\tconst isFirstDayOfWeek = tempDate.getDay() === firstDayOfWeek;\n\n\t\t\tconst nonWorkingAriaLabel = (isWeekend || specialDayType === \"NonWorking\") && specialDayType !== \"Working\"\n\t\t\t\t? `${nonWorkingDayLabel} `\n\t\t\t\t: \"\";\n\t\t\tconst todayAriaLabel = isToday ? `${todayLabel} ` : \"\";\n\n\t\t\tconst tempSecondDateNumber = tempSecondDate ? tempSecondDate.getDate() : \"\";\n\t\t\tconst tempSecondYearNumber = tempSecondDate ? tempSecondDate.getYear() : \"\";\n\t\t\tconst secondaryMonthsNamesString = secondaryMonthsNames.length > 0 ? secondaryMonthsNames[tempSecondDate!.getMonth()] : \"\";\n\n\t\t\tconst tooltip = `${todayAriaLabel}${nonWorkingAriaLabel}${unnamedCalendarTypeLabel}`;\n\n\t\t\tconst ariaLabel = this.hasSecondaryCalendarType\n\t\t\t\t? `${monthsNames[tempDate.getMonth()]} ${tempDate.getDate()}, ${tempDate.getYear()}; ${secondaryMonthsNamesString} ${tempSecondDateNumber}, ${tempSecondYearNumber} ${tooltip} `\n\t\t\t\t: `${monthsNames[tempDate.getMonth()]} ${tempDate.getDate()}, ${tempDate.getYear()} ${tooltip}`;\n\n\t\t\tconst day: Day = {\n\t\t\t\ttimestamp: timestamp.toString(),\n\t\t\t\tfocusRef: isFocused,\n\t\t\t\t_tabIndex: isFocused ? 0 : -1,\n\t\t\t\tselected: isSelected || isSelectedBetween,\n\t\t\t\tday: tempDate.getDate(),\n\t\t\t\tsecondDay: this.hasSecondaryCalendarType ? (tempSecondDate as CalendarDate).getDate() : undefined,\n\t\t\t\t_isSecondaryCalendarType: this.hasSecondaryCalendarType,\n\t\t\t\tclasses: `ui5-dp-item ui5-dp-wday${dayOfTheWeek}`,\n\t\t\t\ttooltip,\n\t\t\t\tariaLabel,\n\t\t\t\tariaSelected: isSelected || isSelectedBetween,\n\t\t\t\tariaDisabled: isDisabled || isOtherMonth,\n\t\t\t\tdisabled: isDisabled,\n\t\t\t\ttype: specialDayType,\n\t\t\t\tparts: \"day-cell\",\n\t\t\t};\n\n\t\t\tif (isFirstDayOfWeek) {\n\t\t\t\tday.classes += \" ui5-dp-firstday\";\n\t\t\t}\n\n\t\t\tif (isSelected) {\n\t\t\t\tday.classes += \" ui5-dp-item--selected\";\n\t\t\t\tday.parts += \" day-cell-selected\";\n\t\t\t}\n\n\t\t\tif (isSelectedBetween) {\n\t\t\t\tday.classes += \" ui5-dp-item--selected-between\";\n\t\t\t\tday.parts += \" day-cell-selected-between\";\n\t\t\t}\n\n\t\t\tif (isToday) {\n\t\t\t\tday.classes += \" ui5-dp-item--now\";\n\t\t\t}\n\n\t\t\tif (isOtherMonth) {\n\t\t\t\tday.classes += \" ui5-dp-item--othermonth\";\n\t\t\t}\n\n\t\t\tif ((isWeekend || specialDayType === \"NonWorking\") && specialDayType !== \"Working\") {\n\t\t\t\tday.classes += \" ui5-dp-item--weekend\";\n\t\t\t}\n\n\t\t\tif (isDisabled) {\n\t\t\t\tday.classes += \" ui5-dp-item--disabled\";\n\t\t\t}\n\n\t\t\tif (this.hasSecondaryCalendarType) {\n\t\t\t\tday.classes += \" ui5-dp-item--withsecondtype\";\n\t\t\t}\n\n\t\t\tweek.push(day);\n\n\t\t\tif (dayOfTheWeek === DAYS_IN_WEEK - 1) { // 0-indexed so 6 is the last day of the week\n\t\t\t\tconst weekNumber = this._calculateWeekNumber(tempDate.toLocalJSDate());\n\n\t\t\t\tweek.unshift({\n\t\t\t\t\tweekNum: weekNumber,\n\t\t\t\t\tisHidden: this.shouldHideWeekNumbers,\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tif (week.length === DAYS_IN_WEEK + 1) { // 7 entries for each day + 1 for the week numbers\n\t\t\t\tthis._weeks.push(week);\n\t\t\t\tweek = [];\n\t\t\t}\n\n\t\t\ttempDate.setDate(tempDate.getDate() + 1);\n\t\t\tif (this.hasSecondaryCalendarType && tempSecondDate) {\n\t\t\t\ttempSecondDate.setDate(tempSecondDate.getDate() + 1);\n\t\t\t}\n\t\t}\n\t}\n\n\t_calculateWeekNumber(date: Date): number {\n\t\tconst oDateFormat = DateFormat.getDateInstance({ pattern: \"w\", calendarType: this.primaryCalendarType, calendarWeekNumbering: this.calendarWeekNumbering });\n\t\tconst weekNumber = oDateFormat.format(date);\n\n\t\treturn Number(weekNumber);\n\t}\n\n\t/**\n\t * Builds the dayNames object (header of the month).\n\t * @param localeData\n\t * @private\n\t */\n\t_buildDayNames(localeData: LocaleData) {\n\t\tif (this._hidden) {\n\t\t\treturn; // Optimization to not do any work unless the current picker\n\t\t}\n\n\t\tlet dayOfTheWeek;\n\n\t\tconst aDayNamesWide = localeData.getDays(\"wide\", this._primaryCalendarType) as Array<string>;\n\t\tlet aDayNamesAbbreviated = localeData.getDays(\"abbreviated\", this._primaryCalendarType) as Array<string>;\n\t\tlet dayName;\n\n\t\tif (this.namesTooLong(aDayNamesAbbreviated)) {\n\t\t\taDayNamesAbbreviated = localeData.getDays(\"narrow\", this._primaryCalendarType) as Array<string>;\n\t\t}\n\n\t\tthis._dayNames = [];\n\t\tthis._dayNames.push({\n\t\t\tclasses: \"ui5-dp-dayname\",\n\t\t\tname: DayPicker.i18nBundle.getText(DAY_PICKER_WEEK_NUMBER_TEXT),\n\t\t});\n\t\tfor (let i = 0; i < DAYS_IN_WEEK; i++) {\n\t\t\tdayOfTheWeek = i + this._getFirstDayOfWeek();\n\t\t\tif (dayOfTheWeek > DAYS_IN_WEEK - 1) { // 0-indexed so index of 6 is the maximum allowed\n\t\t\t\tdayOfTheWeek -= DAYS_IN_WEEK;\n\t\t\t}\n\t\t\tdayName = {\n\t\t\t\tname: aDayNamesWide[dayOfTheWeek],\n\t\t\t\tultraShortName: aDayNamesAbbreviated[dayOfTheWeek],\n\t\t\t\tclasses: \"ui5-dp-dayname\",\n\t\t\t};\n\t\t\tthis._dayNames.push(dayName);\n\t\t}\n\t\tthis._dayNames[1].classes += \" ui5-dp-firstday\";\n\t\tif (this.shouldHideWeekNumbers) {\n\t\t\tthis._dayNames.shift();\n\t\t}\n\t}\n\n\t/**\n\t * Tells if any of the days is more than 4 characters(too long to render).\n\t * @param dayNames\n\t * @private\n\t */\n\tnamesTooLong(dayNames: Array<string>): boolean {\n\t\treturn dayNames.some(dayName => dayName.length > 4);\n\t}\n\n\tonAfterRendering() {\n\t\tif (this._autoFocus && !this._hidden) {\n\t\t\tthis.focus();\n\t\t}\n\n\t\tconst focusedDay = this.shadowRoot!.querySelector<HTMLElement>(\"[data-sap-focus-ref]\");\n\n\t\tif (focusedDay && document.activeElement !== focusedDay && this._specialCalendarDates.length === 0) {\n\t\t\tfocusedDay.focus();\n\t\t}\n\t}\n\n\t_onfocusin() {\n\t\tthis._autoFocus = true;\n\t}\n\n\t_onfocusout() {\n\t\tthis._autoFocus = false;\n\t}\n\n\t/**\n\t * Tells if the day is selected (dark blue).\n\t * @param timestamp\n\t * @private\n\t */\n\t_isDaySelected(timestamp: number): boolean {\n\t\tif (this.selectionMode === CalendarSelectionMode.Single) {\n\t\t\treturn timestamp === this.selectedDates[0];\n\t\t}\n\n\t\tif (this.selectionMode === CalendarSelectionMode.Multiple) {\n\t\t\treturn this.selectedDates.includes(timestamp);\n\t\t}\n\n\t\treturn timestamp === this.selectedDates[0] || timestamp === this.selectedDates[this.selectedDates.length - 1];\n\t}\n\n\t/**\n\t * Tells if the day is inside a selection range (light blue).\n\t * @param timestamp\n\t * @private\n\t */\n\t_isDayInsideSelectionRange(timestamp: number): boolean {\n\t\t// No selection at all (or not in range selection mode)\n\t\tif (this.selectionMode !== CalendarSelectionMode.Range || !this.selectedDates.length) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Only one date selected - the user is hovering with the mouse or navigating with the keyboard to select the second one\n\t\tif (this.selectedDates.length === 1 && this._secondTimestamp) {\n\t\t\treturn isBetween(timestamp, this.selectedDates[0], this._secondTimestamp);\n\t\t}\n\n\t\t// Two dates selected - stable range\n\t\treturn isBetween(timestamp, this.selectedDates[0], this.selectedDates[this.selectedDates.length - 1]);\n\t}\n\n\t/**\n\t * Selects/deselects a day.\n\t * @param e\n\t * @param isShift true if the user did Click+Shift or Enter+Shift (but not Space+Shift)\n\t * @private\n\t */\n\t_selectDate(e: Event, isShift: boolean) {\n\t\tlet target = e.target as HTMLElement;\n\n\t\tif (!target.hasAttribute(\"data-sap-timestamp\")) {\n\t\t\ttarget = target.parentNode as HTMLElement;\n\t\t}\n\n\t\tif (!this._isDayPressed(target)) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst timestamp = this._getTimestampFromDom(target);\n\n\t\tthis._safelySetTimestamp(timestamp);\n\t\tthis._updateSecondTimestamp();\n\t\tthis._updateSelectedDates(timestamp, isShift);\n\n\t\tthis.fireDecoratorEvent(\"change\", {\n\t\t\ttimestamp: this.timestamp,\n\t\t\tdates: this.selectedDates,\n\t\t});\n\t}\n\n\t_updateSelectedDates(timestamp: number, isShift: boolean) {\n\t\tif (this.selectionMode === CalendarSelectionMode.Multiple) {\n\t\t\tif (this.selectedDates.length > 0 && isShift) {\n\t\t\t\tthis._multipleSelection(timestamp);\n\t\t\t} else {\n\t\t\t\tthis._toggleTimestampInSelection(timestamp);\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\n\t\tannounce(DayPicker.i18nBundle.getText(LIST_ITEM_SELECTED), InvisibleMessageMode.Assertive);\n\t\tif (this.selectionMode === CalendarSelectionMode.Range && this.selectedDates.length === 1) {\n\t\t\tthis.selectedDates = [this.selectedDates[0], timestamp];\n\t\t\treturn;\n\t\t}\n\n\t\tthis.selectedDates = [timestamp];\n\t}\n\n\t/**\n\t * Selects/deselects the whole row (week).\n\t * @private\n\t */\n\t_selectWeek() {\n\t\tthis._weeks.forEach((week: Week) => {\n\t\t\tconst _week = week as Array<Day>;\n\t\t\tconst dayInThisWeek = _week.findIndex((item: Day) => {\n\t\t\t\tconst date = CalendarDate.fromTimestamp(parseInt(item.timestamp) * 1000);\n\t\t\t\treturn date.getMonth() === this._calendarDate.getMonth() && date.getDate() === this._calendarDate.getDate();\n\t\t\t}) !== -1;\n\t\t\tif (dayInThisWeek) { // The current day is in this week\n\t\t\t\tconst notAllDaysOfThisWeekSelected = _week.some(item => item.timestamp && !this.selectedDates.includes(parseInt(item.timestamp)));\n\t\t\t\tif (notAllDaysOfThisWeekSelected) { // even if one day is not selected, select the whole week\n\t\t\t\t\t_week.filter(item => item.timestamp).forEach(item => {\n\t\t\t\t\t\tthis._addTimestampToSelection(parseInt(item.timestamp));\n\t\t\t\t\t});\n\t\t\t\t} else { // only if all days of this week are selected, deselect them\n\t\t\t\t\t_week.filter(item => item.timestamp).forEach(item => {\n\t\t\t\t\t\tthis._removeTimestampFromSelection(parseInt(item.timestamp));\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\n\t\tthis.fireDecoratorEvent(\"change\", {\n\t\t\ttimestamp: this.timestamp,\n\t\t\tdates: this.selectedDates,\n\t\t});\n\t}\n\n\t_toggleTimestampInSelection(timestamp: number) {\n\t\tif (this.selectedDates.includes(timestamp)) {\n\t\t\tthis._removeTimestampFromSelection(timestamp);\n\t\t} else {\n\t\t\tthis._addTimestampToSelection(timestamp);\n\t\t\tannounce(DayPicker.i18nBundle.getText(LIST_ITEM_SELECTED), InvisibleMessageMode.Assertive);\n\t\t}\n\t}\n\n\t_addTimestampToSelection(timestamp: number) {\n\t\tif (!this.selectedDates.includes(timestamp)) {\n\t\t\tthis.selectedDates = [...this.selectedDates, timestamp];\n\t\t}\n\t}\n\n\t_removeTimestampFromSelection(timestamp: number) {\n\t\tthis.selectedDates = this.selectedDates.filter(value => value !== timestamp);\n\t}\n\n\t/**\n\t * Called when at least one day is selected and the user presses \"Shift\".\n\t * @param timestamp\n\t * @private\n\t */\n\t_multipleSelection(timestamp: number) {\n\t\tconst min = Math.min(...this.selectedDates);\n\t\tconst max = Math.max(...this.selectedDates);\n\t\tlet start;\n\t\tlet end;\n\t\tlet toggle = false;\n\n\t\tif (timestamp < min) {\n\t\t\tstart = timestamp;\n\t\t\tend = min;\n\t\t} else if (timestamp >= min && timestamp <= max) { // inside the current range - toggle all between the selected and focused\n\t\t\tconst distanceToMin = Math.abs(timestamp - min);\n\t\t\tconst distanceToMax = Math.abs(timestamp - max);\n\n\t\t\tif (distanceToMin < distanceToMax) {\n\t\t\t\tstart = timestamp;\n\t\t\t\tend = max;\n\t\t\t} else {\n\t\t\t\tstart = min;\n\t\t\t\tend = timestamp;\n\t\t\t}\n\t\t\ttoggle = true;\n\t\t} else {\n\t\t\tstart = max;\n\t\t\tend = timestamp;\n\t\t}\n\n\t\tconst startDate = CalendarDate.fromTimestamp(start * 1000);\n\t\tconst endDate = CalendarDate.fromTimestamp(end * 1000);\n\n\t\twhile (startDate.valueOf() <= endDate.valueOf()) {\n\t\t\tthis[toggle ? \"_toggleTimestampInSelection\" : \"_addTimestampToSelection\"](startDate.valueOf() / 1000);\n\t\t\tstartDate.setDate(startDate.getDate() + 1);\n\t\t}\n\t}\n\n\t/**\n\t * Set the hovered day as the \"_secondTimestamp\".\n\t * @param e\n\t * @private\n\t */\n\t_onmouseover(e: MouseEvent) {\n\t\tconst target = e.target as HTMLElement;\n\t\tconst hoveredItem = target.closest(\".ui5-dp-item\") as HTMLElement;\n\t\tif (hoveredItem && this.selectionMode === CalendarSelectionMode.Range && this.selectedDates.length === 1) {\n\t\t\tthis._secondTimestamp = this._getTimestampFromDom(hoveredItem);\n\t\t}\n\t}\n\n\t_onkeydown(e: KeyboardEvent) {\n\t\tlet preventDefault = true;\n\n\t\tif (isEnter(e) || isEnterShift(e)) {\n\t\t\tthis._selectDate(e, isEnterShift(e));\n\t\t} else if (isSpace(e) || isSpaceShift(e)) {\n\t\t\te.preventDefault();\n\t\t} else if (isLeft(e)) {\n\t\t\tthis._modifyTimestampBy(-1, \"day\", false);\n\t\t} else if (isRight(e)) {\n\t\t\tthis._modifyTimestampBy(1, \"day\", false);\n\t\t} else if (isUp(e)) {\n\t\t\tthis._modifyTimestampBy(-7, \"day\", false);\n\t\t} else if (isDown(e)) {\n\t\t\tthis._modifyTimestampBy(7, \"day\", false);\n\t\t} else if (isPageUp(e)) {\n\t\t\tthis._modifyTimestampBy(-1, \"month\");\n\t\t} else if (isPageDown(e)) {\n\t\t\tthis._modifyTimestampBy(1, \"month\");\n\t\t} else if (isPageUpShift(e) || isPageUpAlt(e)) {\n\t\t\tthis._modifyTimestampBy(-1, \"year\");\n\t\t} else if (isPageDownShift(e) || isPageDownAlt(e)) {\n\t\t\tthis._modifyTimestampBy(1, \"year\");\n\t\t} else if (isPageUpShiftCtrl(e)) {\n\t\t\tthis._modifyTimestampBy(-10, \"year\");\n\t\t} else if (isPageDownShiftCtrl(e)) {\n\t\t\tthis._modifyTimestampBy(10, \"year\");\n\t\t} else if (isHome(e) || isEnd(e)) {\n\t\t\tthis._onHomeOrEnd(isHome(e));\n\t\t} else if (isHomeCtrl(e)) {\n\t\t\tconst tempDate = new CalendarDate(this._calendarDate, this._primaryCalendarType);\n\t\t\ttempDate.setDate(1); // Set the first day of the month\n\t\t\tthis._setTimestamp(tempDate.valueOf() / 1000);\n\t\t} else if (isEndCtrl(e)) {\n\t\t\tconst tempDate = new CalendarDate(this._calendarDate, this._primaryCalendarType);\n\t\t\ttempDate.setMonth(tempDate.getMonth() + 1);\n\t\t\ttempDate.setDate(0); // Set the last day of the month (0th day of next month)\n\t\t\tthis._setTimestamp(tempDate.valueOf() / 1000);\n\t\t} else {\n\t\t\tpreventDefault = false;\n\t\t}\n\n\t\tif (preventDefault) {\n\t\t\te.preventDefault();\n\t\t}\n\t}\n\n\t_onkeyup(e: KeyboardEvent) {\n\t\t// Even if Space+Shift was pressed, ignore the shift unless in Multiple selection\n\t\tif (isSpace(e) || (isSpaceShift(e) && this.selectionMode !== CalendarSelectionMode.Multiple)) {\n\t\t\tthis._selectDate(e, false);\n\t\t} else if (isSpaceShift(e)) {\n\t\t\tthis._selectWeek();\n\t\t}\n\t}\n\n\t/**\n\t * Click is the same as \"Enter\".\n\t * **Note:** \"Click+Shift\" has the same effect as \"Enter+Shift\".\n\t * @param e\n\t * @private\n\t */\n\t_onclick(e: MouseEvent) {\n\t\tthis._selectDate(e, e.shiftKey);\n\t}\n\n\t/**\n\t * Called upon \"Home\" or \"End\" - moves the focus to the first or last item in the row.\n\t * @param homePressed\n\t * @private\n\t */\n\t_onHomeOrEnd(homePressed: boolean) {\n\t\tthis._weeks.forEach(week => {\n\t\t\tconst _week = week as Array<Day>;\n\t\t\tconst dayInThisWeek = _week.findIndex(item => {\n\t\t\t\tconst date = CalendarDate.fromTimestamp(parseInt(item.timestamp) * 1000);\n\t\t\t\treturn date.getMonth() === this._calendarDate.getMonth() && date.getDate() === this._calendarDate.getDate();\n\t\t\t}) !== -1;\n\t\t\tif (dayInThisWeek) { // The current day is in this week\n\t\t\t\tconst index = homePressed ? 1 : 7; // select the first (if Home) or last (if End) day of the week\n\t\t\t\tthis._setTimestamp(parseInt(_week[index].timestamp));\n\t\t\t}\n\t\t});\n\t}\n\n\t/**\n\t * Called by the Calendar component.\n\t * @protected\n\t */\n\t_hasPreviousPage(): boolean {\n\t\treturn !(this._calendarDate.getMonth() === this._minDate.getMonth() && this._calendarDate.getYear() === this._minDate.getYear());\n\t}\n\n\t/**\n\t * Called by the Calendar component.\n\t * @protected\n\t */\n\t_hasNextPage(): boolean {\n\t\treturn !(this._calendarDate.getMonth() === this._maxDate.getMonth() && this._calendarDate.getYear() === this._maxDate.getYear());\n\t}\n\n\t/**\n\t * Called by the Calendar component.\n\t * @protected\n\t */\n\t_showPreviousPage() {\n\t\tthis._modifyTimestampBy(-1, \"month\", false);\n\t}\n\n\t/**\n\t * Called by the Calendar component.\n\t * @protected\n\t */\n\t_showNextPage() {\n\t\tthis._modifyTimestampBy(1, \"month\", false);\n\t}\n\n\t/**\n\t * Modifies the timestamp by a certain amount of days/months/years.\n\t * @param amount\n\t * @param unit\n\t * @param preserveDate whether to preserve the day of the month (f.e. 15th of March + 1 month = 15th of April)\n\t * @private\n\t */\n\t_modifyTimestampBy(amount: number, unit: string, preserveDate?: boolean) {\n\t\t// Modify the current timestamp\n\t\tthis._safelyModifyTimestampBy(amount, unit, preserveDate);\n\t\tthis._updateSecondTimestamp();\n\n\t\t// Notify the calendar to update its timestamp\n\t\tthis.fireDecoratorEvent(\"navigate\", { timestamp: this.timestamp! });\n\t}\n\n\t/**\n\t * Sets the timestamp to an absolute value.\n\t * @param value\n\t * @private\n\t */\n\t_setTimestamp(value: number) {\n\t\tthis._safelySetTimestamp(value);\n\t\tthis._updateSecondTimestamp();\n\t\tthis.fireDecoratorEvent(\"navigate\", { timestamp: this.timestamp! });\n\t}\n\n\t/**\n\t * During range selection, when the user is navigating with the keyboard,\n\t * the currently focused day is considered the \"second day\".\n\t * @private\n\t */\n\t_updateSecondTimestamp() {\n\t\tif (this.selectionMode === CalendarSelectionMode.Range && (this.selectedDates.length === 1 || this.selectedDates.length === 2)) {\n\t\t\tthis._secondTimestamp = this.timestamp;\n\t\t}\n\t}\n\n\tget _specialCalendarDates() {\n\t\treturn this.specialCalendarDates;\n\t}\n\n\tget shouldHideWeekNumbers() {\n\t\tif (this._primaryCalendarType !== CalendarType.Gregorian) {\n\t\t\treturn true;\n\t\t}\n\n\t\treturn this.hideWeekNumbers;\n\t}\n\n\t_isWeekend(oDate: CalendarDate): boolean {\n\t\tconst localeData = getCachedLocaleDataInstance(getLocale());\n\n\t\tconst iWeekDay = oDate.getDay(),\n\t\t\tiWeekendStart = localeData.getWeekendStart(),\n\t\t\tiWeekendEnd = localeData.getWeekendEnd();\n\n\t\treturn (iWeekDay >= iWeekendStart && iWeekDay <= iWeekendEnd)\n\t\t\t|| (iWeekendEnd < iWeekendStart && (iWeekDay >= iWeekendStart || iWeekDay <= iWeekendEnd));\n\t}\n\n\t_isDayPressed(target: HTMLElement): boolean {\n\t\tconst targetParent = target.parentNode as HTMLElement;\n\t\treturn (target.className.indexOf(\"ui5-dp-item\") > -1) || (targetParent && targetParent.classList && targetParent.classList.contains(\"ui5-dp-item\"));\n\t}\n\n\t_isDefaultCalendarLegendType(type: string): boolean {\n\t\treturn [\"NonWorking\", \"Working\", \"Today\", \"Selected\", \"None\"].includes(type);\n\t}\n\n\t_getSecondaryDay(tempDate: CalendarDate): CalendarDate {\n\t\treturn new CalendarDate(tempDate, this.secondaryCalendarType);\n\t}\n\n\t_getFirstDay(): CalendarDate {\n\t\tlet daysFromPreviousMonth;\n\n\t\tconst firstDayOfWeek = this._getFirstDayOfWeek();\n\n\t\t// determine weekday of first day in month\n\t\tconst firstDay = new CalendarDate(this._calendarDate, this._primaryCalendarType);\n\t\tfirstDay.setDate(1);\n\n\t\tdaysFromPreviousMonth = firstDay.getDay() - firstDayOfWeek;\n\n\t\tif (daysFromPreviousMonth < 0) {\n\t\t\tdaysFromPreviousMonth = 7 + daysFromPreviousMonth;\n\t\t}\n\n\t\tif (daysFromPreviousMonth > 0) {\n\t\t\tfirstDay.setDate(1 - daysFromPreviousMonth);\n\t\t}\n\n\t\treturn firstDay;\n\t}\n\n\t_getFirstDayOfWeek(): number {\n\t\tconst result = CalendarUtils.getWeekConfigurationValues(this.calendarWeekNumbering);\n\n\t\tconst localeData = getCachedLocaleDataInstance(getLocale());\n\t\treturn result?.firstDayOfWeek ? result.firstDayOfWeek : localeData.getFirstDayOfWeek();\n\t}\n\n\tget styles() {\n\t\treturn {\n\t\t\twrapper: {\n\t\t\t\tdisplay: this._hidden ? \"none\" : \"flex\",\n\t\t\t\t\"justify-content\": \"center\",\n\t\t\t},\n\t\t\tmain: {\n\t\t\t\twidth: \"100%\",\n\t\t\t},\n\t\t};\n\t}\n\n\tget ariaRoledescription() {\n\t\treturn this.hasSecondaryCalendarType\n\t\t\t? `${this._primaryCalendarType} calendar with secondary ${this.secondaryCalendarType as string} calendar`\n\t\t\t: `${this._primaryCalendarType} calendar`;\n\t}\n}\n\nDayPicker.define();\n\nexport default DayPicker;\nexport type {\n\tDayPickerNavigateEventDetail,\n\tDayPickerChangeEventDetail,\n};\n"]}
|
|
@@ -10,7 +10,7 @@ export default function DayPickerTemplate() {
|
|
|
10
10
|
return week.length > 0 ?
|
|
11
11
|
_jsx("div", { class: "ui5-dp-weeks-row", role: "row", children: week.map(day => {
|
|
12
12
|
return "timestamp" in day ?
|
|
13
|
-
_jsxs("div", { "data-ui5-special-day": day.type ? day.type : undefined, tabindex: day._tabIndex, "data-sap-focus-ref": day.focusRef ? "true" : undefined, "data-sap-timestamp": day.timestamp, role: "gridcell", "aria-selected": day.ariaSelected, "aria-label": day.ariaLabel, "aria-disabled": day.ariaDisabled, class: day.classes, part: day.parts, children: [_jsx("span", { class: "ui5-dp-daytext", "data-sap-timestamp": day.timestamp, children: day.day }), day._isSecondaryCalendarType &&
|
|
13
|
+
_jsxs("div", { "data-ui5-special-day": day.type ? day.type : undefined, tabindex: day._tabIndex, "data-sap-focus-ref": day.focusRef ? "true" : undefined, "data-sap-timestamp": day.timestamp, role: "gridcell", title: day.tooltip, "aria-selected": day.ariaSelected, "aria-label": day.ariaLabel, "aria-disabled": day.ariaDisabled, class: day.classes, part: day.parts, children: [_jsx("span", { class: "ui5-dp-daytext", "data-sap-timestamp": day.timestamp, children: day.day }), day._isSecondaryCalendarType &&
|
|
14
14
|
_jsx("span", { class: "ui5-dp-daytext ui5-dp-daysectext", children: day.secondDay }), day.type &&
|
|
15
15
|
_jsx("div", { class: `ui5-dp-specialday ${day.type}` })] })
|
|
16
16
|
:
|