@ui5/webcomponents 2.3.0-rc.1 → 2.3.0-rc.3
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 +34 -0
- package/cypress/specs/base/AriaLabelHelper.cy.ts +282 -0
- package/cypress/specs/base/IconCollection.cy.ts +58 -0
- package/cypress/specs/base/IgnoreCustomElements.cy.ts +35 -0
- package/cypress/specs/base/InvisibleMessage.cy.ts +31 -0
- package/cypress/specs/base/Tooltips.cy.ts +55 -0
- package/cypress/specs/base/css/redfish.custom.theme.css +13 -0
- package/dist/.tsbuildinfo +1 -1
- package/dist/Calendar.js +4 -1
- package/dist/Calendar.js.map +1 -1
- package/dist/FileUploader.d.ts +0 -1
- package/dist/FileUploader.js +0 -3
- package/dist/FileUploader.js.map +1 -1
- package/dist/Form.d.ts +4 -1
- package/dist/Form.js +4 -1
- package/dist/Form.js.map +1 -1
- package/dist/MultiComboBox.js +1 -1
- package/dist/MultiComboBox.js.map +1 -1
- package/dist/MultiInput.js +3 -0
- package/dist/MultiInput.js.map +1 -1
- package/dist/Select.js +1 -0
- package/dist/Select.js.map +1 -1
- package/dist/Table.d.ts +1 -0
- package/dist/Table.js +1 -0
- package/dist/Table.js.map +1 -1
- package/dist/bundle.common.bootstrap.d.ts +11 -0
- package/dist/bundle.common.bootstrap.js +2 -0
- package/dist/bundle.common.bootstrap.js.map +1 -1
- package/dist/bundle.esm.d.ts +11 -0
- 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/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/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/FormLabelSpan.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/MultiComboBoxPopover.css +1 -1
- package/dist/css/themes/MultiInput.css +1 -1
- package/dist/css/themes/NavigationMenu.css +1 -1
- package/dist/css/themes/NavigationMenuItem.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/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_dark_exp/parameters-bundle.css +1 -1
- package/dist/css/themes/sap_horizon_exp/parameters-bundle.css +1 -1
- package/dist/css/themes/sap_horizon_hcb/parameters-bundle.css +1 -1
- package/dist/css/themes/sap_horizon_hcb_exp/parameters-bundle.css +1 -1
- package/dist/css/themes/sap_horizon_hcw/parameters-bundle.css +1 -1
- package/dist/css/themes/sap_horizon_hcw_exp/parameters-bundle.css +1 -1
- package/dist/custom-elements-internal.json +2 -2
- package/dist/custom-elements.json +1 -1
- package/dist/features/InputSuggestions.js +6 -1
- package/dist/features/InputSuggestions.js.map +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_dark_exp/parameters-bundle.css.json +1 -1
- package/dist/generated/assets/themes/sap_horizon_exp/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_hcb_exp/parameters-bundle.css.json +1 -1
- package/dist/generated/assets/themes/sap_horizon_hcw/parameters-bundle.css.json +1 -1
- package/dist/generated/assets/themes/sap_horizon_hcw_exp/parameters-bundle.css.json +1 -1
- package/dist/generated/templates/FileUploaderPopoverTemplate.lit.js +2 -3
- package/dist/generated/templates/FileUploaderPopoverTemplate.lit.js.map +1 -1
- package/dist/generated/templates/FileUploaderTemplate.lit.js +2 -3
- package/dist/generated/templates/FileUploaderTemplate.lit.js.map +1 -1
- package/dist/generated/templates/SegmentedButtonItemTemplate.lit.js +1 -1
- package/dist/generated/templates/SegmentedButtonItemTemplate.lit.js.map +1 -1
- package/dist/generated/templates/SliderTemplate.lit.js +1 -1
- package/dist/generated/templates/SliderTemplate.lit.js.map +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.js +1 -1
- package/dist/generated/themes/AvatarGroup.css.js.map +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.js +1 -1
- package/dist/generated/themes/Breadcrumbs.css.js.map +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.js +1 -1
- package/dist/generated/themes/Button.css.js.map +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.js +1 -1
- package/dist/generated/themes/CalendarHeader.css.js.map +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.js +1 -1
- package/dist/generated/themes/CalendarLegendItem.css.js.map +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.js +1 -1
- package/dist/generated/themes/CardHeader.css.js.map +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.js +1 -1
- package/dist/generated/themes/CheckBox.css.js.map +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.js +1 -1
- package/dist/generated/themes/ColorPaletteItem.css.js.map +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.js +1 -1
- package/dist/generated/themes/ColorPicker.css.js.map +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/DatePicker.css.js +1 -1
- package/dist/generated/themes/DatePicker.css.js.map +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.js +1 -1
- package/dist/generated/themes/DayPicker.css.js.map +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.js +1 -1
- package/dist/generated/themes/FileUploader.css.js.map +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.js +1 -1
- package/dist/generated/themes/FormItem.css.js.map +1 -1
- package/dist/generated/themes/FormLabelSpan.css.js +1 -1
- package/dist/generated/themes/FormLabelSpan.css.js.map +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.js +1 -1
- package/dist/generated/themes/Icon.css.js.map +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.js +1 -1
- package/dist/generated/themes/InputIcon.css.js.map +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.js +1 -1
- package/dist/generated/themes/Link.css.js.map +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.js +1 -1
- package/dist/generated/themes/ListItem.css.js.map +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.js +1 -1
- package/dist/generated/themes/ListItemCustom.css.js.map +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.js +1 -1
- package/dist/generated/themes/ListItemGroupHeader.css.js.map +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.js +1 -1
- package/dist/generated/themes/Menu.css.js.map +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.js +1 -1
- package/dist/generated/themes/MessageStrip.css.js.map +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.js +1 -1
- package/dist/generated/themes/MultiComboBox.css.js.map +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.js +1 -1
- package/dist/generated/themes/MultiInput.css.js.map +1 -1
- package/dist/generated/themes/NavigationMenu.css.js +1 -1
- package/dist/generated/themes/NavigationMenu.css.js.map +1 -1
- package/dist/generated/themes/NavigationMenuItem.css.js +1 -1
- package/dist/generated/themes/NavigationMenuItem.css.js.map +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.js +1 -1
- package/dist/generated/themes/Panel.css.js.map +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.js +1 -1
- package/dist/generated/themes/PopupsCommon.css.js.map +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.js +1 -1
- package/dist/generated/themes/RadioButton.css.js.map +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.js +1 -1
- package/dist/generated/themes/RatingIndicator.css.js.map +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.js +1 -1
- package/dist/generated/themes/ResponsivePopoverCommon.css.js.map +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.js +1 -1
- package/dist/generated/themes/SegmentedButtonItem.css.js.map +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.js +1 -1
- package/dist/generated/themes/SliderBase.css.js.map +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.js +1 -1
- package/dist/generated/themes/StepInput.css.js.map +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.js +1 -1
- package/dist/generated/themes/SuggestionItemCustom.css.js.map +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.js +1 -1
- package/dist/generated/themes/TabContainer.css.js.map +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.js +1 -1
- package/dist/generated/themes/TabInStrip.css.js.map +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.js +1 -1
- package/dist/generated/themes/TabSeparatorInOverflow.css.js.map +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.js +1 -1
- package/dist/generated/themes/TableCellBase.css.js.map +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.js +1 -1
- package/dist/generated/themes/TableRow.css.js.map +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.js +1 -1
- package/dist/generated/themes/Tag.css.js.map +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.js +1 -1
- package/dist/generated/themes/TextArea.css.js.map +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.js +1 -1
- package/dist/generated/themes/Toast.css.js.map +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.js +1 -1
- package/dist/generated/themes/Token.css.js.map +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.js +1 -1
- package/dist/generated/themes/TokenizerPopover.css.js.map +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.js +1 -1
- package/dist/generated/themes/ToolbarPopover.css.js.map +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.js +1 -1
- package/dist/generated/themes/ValueStateMessage.css.js.map +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.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.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.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.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.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.js +1 -1
- package/dist/generated/themes/sap_horizon_dark/parameters-bundle.css.js.map +1 -1
- package/dist/generated/themes/sap_horizon_dark_exp/parameters-bundle.css.js +1 -1
- package/dist/generated/themes/sap_horizon_dark_exp/parameters-bundle.css.js.map +1 -1
- package/dist/generated/themes/sap_horizon_exp/parameters-bundle.css.js +1 -1
- package/dist/generated/themes/sap_horizon_exp/parameters-bundle.css.js.map +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_hcb_exp/parameters-bundle.css.js +1 -1
- package/dist/generated/themes/sap_horizon_hcb_exp/parameters-bundle.css.js.map +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/generated/themes/sap_horizon_hcw_exp/parameters-bundle.css.js +1 -1
- package/dist/generated/themes/sap_horizon_hcw_exp/parameters-bundle.css.js.map +1 -1
- package/dist/vscode.html-custom-data.json +1 -1
- package/dist/web-types.json +2 -2
- package/package.json +10 -10
- package/src/FileUploaderPopover.hbs +1 -3
- package/src/SegmentedButtonItem.hbs +1 -1
- package/src/Slider.hbs +1 -1
- package/src/themes/Bar.css +2 -2
- package/src/themes/Dialog.css +5 -1
- package/src/themes/Popover.css +1 -0
- package/src/themes/base/Dialog-parameters.css +0 -1
- package/src/themes/base/PopupBlockLayer-parameters.css +1 -0
- package/src/themes/sap_fiori_3_hcb/Dialog-parameters.css +0 -1
- package/src/themes/sap_fiori_3_hcb/PopupBlockLayer-parameters.css +5 -0
- package/src/themes/sap_fiori_3_hcb/parameters-bundle.css +1 -1
- package/src/themes/sap_fiori_3_hcw/Dialog-parameters.css +0 -1
- package/src/themes/sap_fiori_3_hcw/PopupBlockLayer-parameters.css +5 -0
- package/src/themes/sap_fiori_3_hcw/parameters-bundle.css +1 -1
- package/src/themes/sap_horizon_hcb/Dialog-parameters.css +0 -1
- package/src/themes/sap_horizon_hcb/PopupBlockLayer-parameters.css +5 -0
- package/src/themes/sap_horizon_hcb/parameters-bundle.css +1 -1
- package/src/themes/sap_horizon_hcw/Dialog-parameters.css +0 -1
- package/src/themes/sap_horizon_hcw/PopupBlockLayer-parameters.css +5 -0
- package/src/themes/sap_horizon_hcw/parameters-bundle.css +1 -1
package/dist/Calendar.js
CHANGED
|
@@ -186,7 +186,10 @@ let Calendar = Calendar_1 = class Calendar extends CalendarPart {
|
|
|
186
186
|
this._valueIsProcessed = false;
|
|
187
187
|
}
|
|
188
188
|
static async onDefine() {
|
|
189
|
-
Calendar_1.i18nBundle = await
|
|
189
|
+
[Calendar_1.i18nBundle] = await Promise.all([
|
|
190
|
+
getI18nBundle("@ui5/webcomponents"),
|
|
191
|
+
super.onDefine(),
|
|
192
|
+
]);
|
|
190
193
|
}
|
|
191
194
|
/**
|
|
192
195
|
* @private
|
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.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot.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 getCachedLocaleDataInstance from \"@ui5/webcomponents-localization/dist/getCachedLocaleDataInstance.js\";\nimport getLocale from \"@ui5/webcomponents-base/dist/locale/getLocale.js\";\nimport { getI18nBundle } from \"@ui5/webcomponents-base/dist/i18nBundle.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 CalendarPart from \"./CalendarPart.js\";\nimport DayPicker from \"./DayPicker.js\";\nimport type { DayPickerChangeEventDetail } from \"./DayPicker.js\";\nimport MonthPicker from \"./MonthPicker.js\";\nimport type { MonthPickerChangeEventDetail } from \"./MonthPicker.js\";\nimport YearPicker from \"./YearPicker.js\";\nimport type { YearPickerChangeEventDetail } from \"./YearPicker.js\";\nimport CalendarSelectionMode from \"./types/CalendarSelectionMode.js\";\nimport CalendarPickersMode from \"./types/CalendarPickersMode.js\";\nimport CalendarLegend from \"./CalendarLegend.js\";\nimport type { CalendarLegendItemSelectionChangeEventDetail } from \"./CalendarLegend.js\";\nimport SpecialCalendarDate from \"./SpecialCalendarDate.js\";\nimport type CalendarLegendItemType from \"./types/CalendarLegendItemType.js\";\nimport Icon from \"./Icon.js\";\n\n// Default calendar for bundling\nimport \"@ui5/webcomponents-localization/dist/features/calendar/Gregorian.js\";\n\n// Template\nimport CalendarTemplate from \"./generated/templates/CalendarTemplate.lit.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\tdependencies: [\n\t\tSpecialCalendarDate,\n\t\tCalendarDate,\n\t\tCalendarDateRange,\n\t\tDayPicker,\n\t\tMonthPicker,\n\t\tYearPicker,\n\t\tCalendarLegend,\n\t\tIcon,\n\t],\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 * @allowPreventDefault\n * @param {Array<string>} selectedValues The selected dates\n * @param {Array<number>} selectedDates The selected dates as UTC timestamps\n * @public\n */\n@event<CalendarSelectionChangeEventDetail>(\"selection-change\", {\n\tdetail: {\n\t\t/**\n\t\t * @public\n\t\t */\n\t\tselectedDates: { type: Array },\n\t\t/**\n\t\t * @public\n\t\t */\n\t\tselectedValues: { type: Array },\n\n\t\ttimestamp: { type: Number },\n\t},\n})\n\n@event(\"show-month-view\")\n@event(\"show-year-view\")\nclass Calendar extends CalendarPart {\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\tconstructor() {\n\t\tsuper();\n\n\t\tthis._valueIsProcessed = false;\n\t}\n\n\tstatic async onDefine() {\n\t\tCalendar.i18nBundle = await getI18nBundle(\"@ui5/webcomponents\");\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(e: CustomEvent) {\n\t\tthis.showMonth();\n\t\tthis.fireEvent(\"show-month-view\", e);\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(e: CustomEvent) {\n\t\tthis.showYear();\n\t\tthis.fireEvent(\"show-year-view\", e);\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.fireEvent<CalendarSelectionChangeEventDetail>(\"selection-change\", { timestamp: this.timestamp, selectedDates: [...selectedDates], selectedValues: datesValues }, true);\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.fireEvent(\"show-month-view\", e);\n\t\t}\n\n\t\tif (isF4Shift(e) && this._currentPicker !== \"year\") {\n\t\t\tthis._currentPicker = \"year\";\n\t\t\tthis.fireEvent(\"show-year-view\", e);\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.fireEvent(\"show-month-view\", e);\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.fireEvent(\"show-month-view\", e);\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.fireEvent(\"show-year-view\", e);\n\t\t}\n\t}\n\n\tonYearButtonKeyUp(e: KeyboardEvent) {\n\t\tif (isSpace(e)) {\n\t\t\tthis.showYear();\n\t\t\tthis.fireEvent(\"show-year-view\", e);\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.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot.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 getCachedLocaleDataInstance from \"@ui5/webcomponents-localization/dist/getCachedLocaleDataInstance.js\";\nimport getLocale from \"@ui5/webcomponents-base/dist/locale/getLocale.js\";\nimport { getI18nBundle } from \"@ui5/webcomponents-base/dist/i18nBundle.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 CalendarPart from \"./CalendarPart.js\";\nimport DayPicker from \"./DayPicker.js\";\nimport type { DayPickerChangeEventDetail } from \"./DayPicker.js\";\nimport MonthPicker from \"./MonthPicker.js\";\nimport type { MonthPickerChangeEventDetail } from \"./MonthPicker.js\";\nimport YearPicker from \"./YearPicker.js\";\nimport type { YearPickerChangeEventDetail } from \"./YearPicker.js\";\nimport CalendarSelectionMode from \"./types/CalendarSelectionMode.js\";\nimport CalendarPickersMode from \"./types/CalendarPickersMode.js\";\nimport CalendarLegend from \"./CalendarLegend.js\";\nimport type { CalendarLegendItemSelectionChangeEventDetail } from \"./CalendarLegend.js\";\nimport SpecialCalendarDate from \"./SpecialCalendarDate.js\";\nimport type CalendarLegendItemType from \"./types/CalendarLegendItemType.js\";\nimport Icon from \"./Icon.js\";\n\n// Default calendar for bundling\nimport \"@ui5/webcomponents-localization/dist/features/calendar/Gregorian.js\";\n\n// Template\nimport CalendarTemplate from \"./generated/templates/CalendarTemplate.lit.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\tdependencies: [\n\t\tSpecialCalendarDate,\n\t\tCalendarDate,\n\t\tCalendarDateRange,\n\t\tDayPicker,\n\t\tMonthPicker,\n\t\tYearPicker,\n\t\tCalendarLegend,\n\t\tIcon,\n\t],\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 * @allowPreventDefault\n * @param {Array<string>} selectedValues The selected dates\n * @param {Array<number>} selectedDates The selected dates as UTC timestamps\n * @public\n */\n@event<CalendarSelectionChangeEventDetail>(\"selection-change\", {\n\tdetail: {\n\t\t/**\n\t\t * @public\n\t\t */\n\t\tselectedDates: { type: Array },\n\t\t/**\n\t\t * @public\n\t\t */\n\t\tselectedValues: { type: Array },\n\n\t\ttimestamp: { type: Number },\n\t},\n})\n\n@event(\"show-month-view\")\n@event(\"show-year-view\")\nclass Calendar extends CalendarPart {\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\tconstructor() {\n\t\tsuper();\n\n\t\tthis._valueIsProcessed = false;\n\t}\n\n\tstatic async onDefine() {\n\t\t[Calendar.i18nBundle] = await Promise.all([\n\t\t\tgetI18nBundle(\"@ui5/webcomponents\"),\n\t\t\tsuper.onDefine(),\n\t\t]);\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(e: CustomEvent) {\n\t\tthis.showMonth();\n\t\tthis.fireEvent(\"show-month-view\", e);\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(e: CustomEvent) {\n\t\tthis.showYear();\n\t\tthis.fireEvent(\"show-year-view\", e);\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.fireEvent<CalendarSelectionChangeEventDetail>(\"selection-change\", { timestamp: this.timestamp, selectedDates: [...selectedDates], selectedValues: datesValues }, true);\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.fireEvent(\"show-month-view\", e);\n\t\t}\n\n\t\tif (isF4Shift(e) && this._currentPicker !== \"year\") {\n\t\t\tthis._currentPicker = \"year\";\n\t\t\tthis.fireEvent(\"show-year-view\", e);\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.fireEvent(\"show-month-view\", e);\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.fireEvent(\"show-month-view\", e);\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.fireEvent(\"show-year-view\", e);\n\t\t}\n\t}\n\n\tonYearButtonKeyUp(e: KeyboardEvent) {\n\t\tif (isSpace(e)) {\n\t\t\tthis.showYear();\n\t\t\tthis.fireEvent(\"show-year-view\", e);\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/FileUploader.d.ts
CHANGED
|
@@ -174,7 +174,6 @@ declare class FileUploader extends UI5Element implements IFormInputElement {
|
|
|
174
174
|
get valueStateText(): string;
|
|
175
175
|
get hasValueState(): boolean;
|
|
176
176
|
get hasValueStateText(): boolean;
|
|
177
|
-
get valueStateMessageText(): Node[];
|
|
178
177
|
get shouldDisplayDefaultValueStateMessage(): boolean;
|
|
179
178
|
get shouldOpenValueStateMessagePopover(): boolean;
|
|
180
179
|
/**
|
package/dist/FileUploader.js
CHANGED
|
@@ -290,9 +290,6 @@ let FileUploader = FileUploader_1 = class FileUploader extends UI5Element {
|
|
|
290
290
|
get hasValueStateText() {
|
|
291
291
|
return this.hasValueState && this.valueState !== ValueState.Positive;
|
|
292
292
|
}
|
|
293
|
-
get valueStateMessageText() {
|
|
294
|
-
return this.getSlottedNodes("valueStateMessage").map(el => el.cloneNode(true));
|
|
295
|
-
}
|
|
296
293
|
get shouldDisplayDefaultValueStateMessage() {
|
|
297
294
|
return !this.valueStateMessage.length && this.hasValueStateText;
|
|
298
295
|
}
|
package/dist/FileUploader.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FileUploader.js","sourceRoot":"","sources":["../src/FileUploader.ts"],"names":[],"mappings":"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","sourcesContent":["import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport 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.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot.js\";\nimport ValueState from \"@ui5/webcomponents-base/dist/types/ValueState.js\";\nimport litRender from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\nimport { getI18nBundle } from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport { getEventMark } from \"@ui5/webcomponents-base/dist/MarkedEvents.js\";\nimport { isEnter, isSpace } from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport type { IFormInputElement } from \"@ui5/webcomponents-base/dist/features/InputElementsFormSupport.js\";\nimport {\n\tFILEUPLOAD_BROWSE,\n\tFILEUPLOADER_TITLE,\n\tVALUE_STATE_SUCCESS,\n\tVALUE_STATE_INFORMATION,\n\tVALUE_STATE_ERROR,\n\tVALUE_STATE_WARNING,\n} from \"./generated/i18n/i18n-defaults.js\";\n\nimport Input from \"./Input.js\";\nimport Popover from \"./Popover.js\";\nimport Icon from \"./Icon.js\";\n\n// Template\nimport FileUploaderTemplate from \"./generated/templates/FileUploaderTemplate.lit.js\";\n\n// Styles\nimport FileUploaderCss from \"./generated/themes/FileUploader.css.js\";\nimport ResponsivePopoverCommonCss from \"./generated/themes/ResponsivePopoverCommon.css.js\";\nimport ValueStateMessageCss from \"./generated/themes/ValueStateMessage.css.js\";\n\nconst convertBytesToMegabytes = (bytes: number) => (bytes / 1024) / 1024;\n\ntype FileData = {\n\tfileName: string,\n\tfileSize: number,\n}\n\ntype FileUploaderFileSizeExceedEventDetail = {\n\tfilesData: Array<FileData>,\n}\n\ntype FileUploaderChangeEventDetail = {\n\tfiles: FileList | null,\n}\n\n/**\n * @class\n *\n * ### Overview\n *\n * The `ui5-file-uploader` opens a file explorer dialog and enables users to upload files.\n * The component consists of input field, but you can provide an HTML element by your choice\n * to trigger the file upload, by using the default slot.\n * Furthermore, you can set the property \"hideInput\" to \"true\" to hide the input field.\n *\n * To get all selected files, you can simply use the read-only \"files\" property.\n * To restrict the types of files the user can select, you can use the \"accept\" property.\n *\n * And, similar to all input based components, the FileUploader supports \"valueState\", \"placeholder\", \"name\", and \"disabled\" properties.\n *\n * For the `ui5-file-uploader`\n * ### ES6 Module Import\n *\n * `import \"@ui5/webcomponents/dist/FileUploader.js\";`\n * @constructor\n * @since 1.0.0-rc.6\n * @extends UI5Element\n * @public\n */\n@customElement({\n\ttag: \"ui5-file-uploader\",\n\tlanguageAware: true,\n\tformAssociated: true,\n\trenderer: litRender,\n\tstyles: [\n\t\tFileUploaderCss,\n\t\tResponsivePopoverCommonCss,\n\t\tValueStateMessageCss,\n\t],\n\ttemplate: FileUploaderTemplate,\n\tdependencies: [\n\t\tInput,\n\t\tPopover,\n\t\tIcon,\n\t],\n})\n/**\n * Event is fired when the value of the file path has been changed.\n *\n * **Note:** Keep in mind that because of the HTML input element of type file, the event is also fired in Chrome browser when the Cancel button of the uploads window is pressed.\n * @param {FileList | null} files The current files.\n * @public\n */\n@event<FileUploaderChangeEventDetail>(\"change\", {\n\tdetail: {\n\t\t/**\n\t\t * @public\n\t\t */\n\t\tfiles: { type: FileList },\n\t},\n})\n/**\n * Event is fired when the size of a file is above the `maxFileSize` property value.\n * @param {Array<FileData>} filesData An array of `FileData` objects containing the`fileName` and `fileSize` in MB of each file that exceeds the upload limit.\n * @since 2.2.0\n * @public\n */\n@event<FileUploaderFileSizeExceedEventDetail>(\"file-size-exceed\", {\n\tdetail: {\n\t\t/**\n\t\t * @public\n\t\t */\n\t\tfilesData: { type: Array<FileData> },\n\t},\n})\nclass FileUploader extends UI5Element implements IFormInputElement {\n\t/**\n\t * Comma-separated list of file types that the component should accept.\n\t *\n\t * **Note:** Please make sure you are adding the `.` in front on the file type, e.g. `.png` in case you want to accept png's only.\n\t * @default undefined\n\t * @public\n\t */\n\t@property()\n\taccept?: string;\n\n\t/**\n\t * If set to \"true\", the input field of component will not be rendered. Only the default slot that is passed will be rendered.\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\thideInput = false;\n\n\t/**\n\t * Defines whether the component is in disabled state.\n\t *\n\t * **Note:** A disabled component is completely noninteractive.\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\tdisabled = false;\n\n\t/**\n\t * Allows multiple files to be chosen.\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\tmultiple = false;\n\n\t/**\n\t * Determines the name by which the component will be identified upon submission in an HTML form.\n\t *\n\t * **Note:** This property is only applicable within the context of an HTML Form element.\n\t * @default undefined\n\t * @public\n\t */\n\t@property()\n\tname?: string;\n\n\t/**\n\t * Defines a short hint intended to aid the user with data entry when the component has no value.\n\t * @default undefined\n\t * @public\n\t */\n\t@property()\n\tplaceholder?: string;\n\n\t/**\n\t * Defines the name/names of the file/files to upload.\n\t * @default \"\"\n\t * @formEvents change\n\t * @formProperty\n\t * @public\n\t */\n\t@property()\n\tvalue = \"\";\n\n\t/**\n\t * Defines the maximum file size in megabytes which prevents the upload if at least one file exceeds it.\n\t * @default undefined\n\t * @since 2.2.0\n\t * @public\n\t */\n\t@property({ type: Number })\n\tmaxFileSize?: number;\n\n\t/**\n\t * Defines the value state of the component.\n\t * @default \"None\"\n\t * @public\n\t */\n\t@property()\n\tvalueState: `${ValueState}` = \"None\";\n\n\t/**\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\tfocused = false;\n\n\t/**\n\t * By default the component contains a single input field. With this slot you can pass any content that you wish to add. See the samples for more information.\n\t *\n\t * **Note:** If no content is provided in this slot, the component will only consist of an input field and will not be interactable using the keyboard.\n\t * Also it is not recommended to use any non-interactable components, as it may lead to poor accessibility experience.\n\t * @public\n\t */\n\t@slot({ type: HTMLElement, \"default\": true })\n\tcontent!: Array<HTMLElement>;\n\n\t/**\n\t * Defines the value state message that will be displayed as pop up under the component.\n\t *\n\t * **Note:** If not specified, a default text (in the respective language) will be displayed.\n\t *\n\t * **Note:** The `valueStateMessage` would be displayed,\n\t * when the component is in `Information`, `Critical` or `Negative` value state.\n\t * @since 1.0.0-rc.9\n\t * @public\n\t */\n\t@slot()\n\tvalueStateMessage!: Array<HTMLElement>;\n\n\tstatic emptyInput: HTMLInputElement;\n\n\tstatic i18nBundle: I18nBundle;\n\n\tasync formElementAnchor() {\n\t\treturn this.getFocusDomRefAsync();\n\t}\n\n\t/**\n\t * @override\n\t */\n\tgetFocusDomRef(): HTMLElement | undefined {\n\t\treturn this.content[0];\n\t}\n\n\tget formFormattedValue() {\n\t\tif (this.files && this.name) {\n\t\t\tconst formData = new FormData();\n\n\t\t\tfor (let i = 0; i < this.files.length; i++) {\n\t\t\t\tformData.append(this.name, this.files[i]);\n\t\t\t}\n\n\t\t\treturn formData;\n\t\t}\n\n\t\treturn null;\n\t}\n\n\t_onmouseover() {\n\t\tthis.content.forEach(item => {\n\t\t\titem.classList.add(\"ui5_hovered\");\n\t\t});\n\t}\n\n\t_onmouseout() {\n\t\tthis.content.forEach(item => {\n\t\t\titem.classList.remove(\"ui5_hovered\");\n\t\t});\n\t}\n\n\t_onclick(e: MouseEvent) {\n\t\tif (getEventMark(e) === \"button\") {\n\t\t\tthis._input.click();\n\t\t}\n\t}\n\n\t_onkeydown(e: KeyboardEvent) {\n\t\tif (isEnter(e)) {\n\t\t\tthis._input.click();\n\t\t\te.preventDefault();\n\t\t}\n\t}\n\n\t_onkeyup(e: KeyboardEvent) {\n\t\tif (isSpace(e)) {\n\t\t\tthis._input.click();\n\t\t\te.preventDefault();\n\t\t}\n\t}\n\n\t_ondrag(e: DragEvent) {\n\t\te.preventDefault();\n\t\te.stopPropagation();\n\t}\n\n\t_ondrop(e: DragEvent) {\n\t\te.preventDefault();\n\t\te.stopPropagation();\n\t\tconst files = e.dataTransfer?.files;\n\n\t\tif (!files) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst validatedFiles = this._validateFiles(files);\n\n\t\tif (!this.value && !validatedFiles.length) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._input.files = validatedFiles;\n\t\tthis._updateValue(validatedFiles);\n\t\tthis.fireEvent<FileUploaderChangeEventDetail>(\"change\", {\n\t\t\tfiles: validatedFiles,\n\t\t});\n\t}\n\n\t_onfocusin() {\n\t\tthis.focused = true;\n\t}\n\n\t_onfocusout() {\n\t\tthis.focused = false;\n\t}\n\n\t/**\n\t * FileList of all selected files.\n\t * @public\n\t * @default null\n\t */\n\tget files(): FileList | null {\n\t\tif (this._input) {\n\t\t\treturn this._input.files;\n\t\t}\n\n\t\treturn FileUploader._emptyFilesList;\n\t}\n\n\tonAfterRendering() {\n\t\tif (!this.value) {\n\t\t\tthis._input.value = \"\";\n\t\t}\n\n\t\tthis.toggleValueStatePopover(this.shouldOpenValueStateMessagePopover);\n\t}\n\n\t_onChange(e: Event) {\n\t\tlet changedFiles = (e.target as HTMLInputElement).files;\n\n\t\tif (changedFiles) {\n\t\t\tchangedFiles = this._validateFiles(changedFiles);\n\t\t}\n\n\t\tif (!this.value && !changedFiles?.length) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._updateValue(changedFiles);\n\t\tthis.fireEvent<FileUploaderChangeEventDetail>(\"change\", {\n\t\t\tfiles: changedFiles,\n\t\t});\n\t}\n\n\t_updateValue(files: FileList | null) {\n\t\tthis.value = Array.from(files || []).reduce((acc, currFile) => {\n\t\t\treturn `${acc}\"${currFile.name}\" `;\n\t\t}, \"\");\n\t}\n\n\t/**\n\t * Checks whether all files are below `maxFileSize` (if set),\n\t * and fires a `file-size-exceed` event if any file exceeds it.\n\t * @private\n\t */\n\t_validateFiles(changedFiles: FileList): FileList {\n\t\tconst exceededFilesData = this.maxFileSize ? this._getExceededFiles(changedFiles) : [];\n\n\t\tif (exceededFilesData.length) {\n\t\t\tthis.fireEvent<FileUploaderFileSizeExceedEventDetail>(\"file-size-exceed\", {\n\t\t\t\tfilesData: exceededFilesData,\n\t\t\t});\n\t\t\tchangedFiles = new DataTransfer().files;\n\t\t}\n\n\t\treturn changedFiles;\n\t}\n\n\t_getExceededFiles(files: FileList): Array<FileData> {\n\t\tconst filesArray = Array.from(files);\n\t\tconst exceededFiles: Array<FileData> = [];\n\n\t\tfor (let i = 0; i < filesArray.length; i++) {\n\t\t\tconst fileSize = convertBytesToMegabytes(filesArray[i].size);\n\t\t\tif (fileSize > this.maxFileSize!) {\n\t\t\t\texceededFiles.push({\n\t\t\t\t\tfileName: filesArray[i].name,\n\t\t\t\t\tfileSize,\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t\treturn exceededFiles;\n\t}\n\n\ttoggleValueStatePopover(open: boolean) {\n\t\tif (open) {\n\t\t\tthis.openValueStatePopover();\n\t\t} else {\n\t\t\tthis.closeValueStatePopover();\n\t\t}\n\t}\n\n\topenValueStatePopover() {\n\t\tconst popover = this._getPopover();\n\n\t\tif (popover) {\n\t\t\tpopover.opener = this;\n\t\t\tpopover.open = true;\n\t\t}\n\t}\n\n\tcloseValueStatePopover() {\n\t\tconst popover = this._getPopover();\n\n\t\tif (popover) {\n\t\t\tpopover.open = false;\n\t\t}\n\t}\n\n\t_getPopover(): Popover {\n\t\treturn this.shadowRoot!.querySelector<Popover>(\".ui5-valuestatemessage-popover\")!;\n\t}\n\n\t/**\n\t * in case when the component is not placed in the DOM, return empty FileList, like native input would do\n\t * @private\n\t */\n\tstatic get _emptyFilesList() {\n\t\tif (!this.emptyInput) {\n\t\t\tthis.emptyInput = document.createElement(\"input\");\n\t\t\tthis.emptyInput.type = \"file\";\n\t\t}\n\t\treturn this.emptyInput.files;\n\t}\n\n\tget browseText(): string {\n\t\treturn FileUploader.i18nBundle.getText(FILEUPLOAD_BROWSE);\n\t}\n\n\tget titleText(): string {\n\t\treturn FileUploader.i18nBundle.getText(FILEUPLOADER_TITLE);\n\t}\n\n\tget _input(): HTMLInputElement {\n\t\treturn (this.shadowRoot!.querySelector<HTMLInputElement>(\"input[type=file]\") || this.querySelector<HTMLInputElement>(\"input[type=file][data-ui5-form-support]\"))!;\n\t}\n\n\tget valueStateTextMappings(): Record<string, string> {\n\t\treturn {\n\t\t\t\"Positive\": FileUploader.i18nBundle.getText(VALUE_STATE_SUCCESS),\n\t\t\t\"Information\": FileUploader.i18nBundle.getText(VALUE_STATE_INFORMATION),\n\t\t\t\"Negative\": FileUploader.i18nBundle.getText(VALUE_STATE_ERROR),\n\t\t\t\"Critical\": FileUploader.i18nBundle.getText(VALUE_STATE_WARNING),\n\t\t};\n\t}\n\n\tget valueStateText(): string {\n\t\treturn this.valueStateTextMappings[this.valueState];\n\t}\n\n\tget hasValueState(): boolean {\n\t\treturn this.valueState !== ValueState.None;\n\t}\n\n\tget hasValueStateText(): boolean {\n\t\treturn this.hasValueState && this.valueState !== ValueState.Positive;\n\t}\n\n\tget valueStateMessageText() {\n\t\treturn this.getSlottedNodes(\"valueStateMessage\").map(el => el.cloneNode(true));\n\t}\n\n\tget shouldDisplayDefaultValueStateMessage(): boolean {\n\t\treturn !this.valueStateMessage.length && this.hasValueStateText;\n\t}\n\n\tget shouldOpenValueStateMessagePopover(): boolean {\n\t\treturn this.focused && this.hasValueStateText && !this.hideInput;\n\t}\n\n\t/**\n\t * This method is relevant for sap_horizon theme only\n\t */\n\tget _valueStateMessageInputIcon(): string {\n\t\tconst iconPerValueState = {\n\t\t\tNegative: \"error\",\n\t\t\tCritical: \"alert\",\n\t\t\tPositive: \"sys-enter-2\",\n\t\t\tInformation: \"information\",\n\t\t};\n\n\t\treturn this.valueState !== ValueState.None ? iconPerValueState[this.valueState] : \"\";\n\t}\n\n\tget classes() {\n\t\treturn {\n\t\t\tpopoverValueState: {\n\t\t\t\t\"ui5-valuestatemessage-root\": true,\n\t\t\t\t\"ui5-valuestatemessage--success\": this.valueState === ValueState.Positive,\n\t\t\t\t\"ui5-valuestatemessage--error\": this.valueState === ValueState.Negative,\n\t\t\t\t\"ui5-valuestatemessage--warning\": this.valueState === ValueState.Critical,\n\t\t\t\t\"ui5-valuestatemessage--information\": this.valueState === ValueState.Information,\n\t\t\t},\n\t\t};\n\t}\n\n\tget styles() {\n\t\treturn {\n\t\t\tpopoverHeader: {\n\t\t\t\t\"width\": `${this.ui5Input ? this.ui5Input.offsetWidth : 0}px`,\n\t\t\t},\n\t\t};\n\t}\n\n\tget ui5Input() {\n\t\treturn this.shadowRoot!.querySelector<Input>(\".ui5-file-uploader-input\");\n\t}\n\n\tstatic async onDefine() {\n\t\tFileUploader.i18nBundle = await getI18nBundle(\"@ui5/webcomponents\");\n\t}\n}\n\nFileUploader.define();\n\nexport default FileUploader;\nexport type {\n\tFileData,\n\tFileUploaderChangeEventDetail,\n\tFileUploaderFileSizeExceedEventDetail,\n};\n"]}
|
|
1
|
+
{"version":3,"file":"FileUploader.js","sourceRoot":"","sources":["../src/FileUploader.ts"],"names":[],"mappings":"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","sourcesContent":["import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport 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.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot.js\";\nimport ValueState from \"@ui5/webcomponents-base/dist/types/ValueState.js\";\nimport litRender from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\nimport { getI18nBundle } from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport { getEventMark } from \"@ui5/webcomponents-base/dist/MarkedEvents.js\";\nimport { isEnter, isSpace } from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport type { IFormInputElement } from \"@ui5/webcomponents-base/dist/features/InputElementsFormSupport.js\";\nimport {\n\tFILEUPLOAD_BROWSE,\n\tFILEUPLOADER_TITLE,\n\tVALUE_STATE_SUCCESS,\n\tVALUE_STATE_INFORMATION,\n\tVALUE_STATE_ERROR,\n\tVALUE_STATE_WARNING,\n} from \"./generated/i18n/i18n-defaults.js\";\n\nimport Input from \"./Input.js\";\nimport Popover from \"./Popover.js\";\nimport Icon from \"./Icon.js\";\n\n// Template\nimport FileUploaderTemplate from \"./generated/templates/FileUploaderTemplate.lit.js\";\n\n// Styles\nimport FileUploaderCss from \"./generated/themes/FileUploader.css.js\";\nimport ResponsivePopoverCommonCss from \"./generated/themes/ResponsivePopoverCommon.css.js\";\nimport ValueStateMessageCss from \"./generated/themes/ValueStateMessage.css.js\";\n\nconst convertBytesToMegabytes = (bytes: number) => (bytes / 1024) / 1024;\n\ntype FileData = {\n\tfileName: string,\n\tfileSize: number,\n}\n\ntype FileUploaderFileSizeExceedEventDetail = {\n\tfilesData: Array<FileData>,\n}\n\ntype FileUploaderChangeEventDetail = {\n\tfiles: FileList | null,\n}\n\n/**\n * @class\n *\n * ### Overview\n *\n * The `ui5-file-uploader` opens a file explorer dialog and enables users to upload files.\n * The component consists of input field, but you can provide an HTML element by your choice\n * to trigger the file upload, by using the default slot.\n * Furthermore, you can set the property \"hideInput\" to \"true\" to hide the input field.\n *\n * To get all selected files, you can simply use the read-only \"files\" property.\n * To restrict the types of files the user can select, you can use the \"accept\" property.\n *\n * And, similar to all input based components, the FileUploader supports \"valueState\", \"placeholder\", \"name\", and \"disabled\" properties.\n *\n * For the `ui5-file-uploader`\n * ### ES6 Module Import\n *\n * `import \"@ui5/webcomponents/dist/FileUploader.js\";`\n * @constructor\n * @since 1.0.0-rc.6\n * @extends UI5Element\n * @public\n */\n@customElement({\n\ttag: \"ui5-file-uploader\",\n\tlanguageAware: true,\n\tformAssociated: true,\n\trenderer: litRender,\n\tstyles: [\n\t\tFileUploaderCss,\n\t\tResponsivePopoverCommonCss,\n\t\tValueStateMessageCss,\n\t],\n\ttemplate: FileUploaderTemplate,\n\tdependencies: [\n\t\tInput,\n\t\tPopover,\n\t\tIcon,\n\t],\n})\n/**\n * Event is fired when the value of the file path has been changed.\n *\n * **Note:** Keep in mind that because of the HTML input element of type file, the event is also fired in Chrome browser when the Cancel button of the uploads window is pressed.\n * @param {FileList | null} files The current files.\n * @public\n */\n@event<FileUploaderChangeEventDetail>(\"change\", {\n\tdetail: {\n\t\t/**\n\t\t * @public\n\t\t */\n\t\tfiles: { type: FileList },\n\t},\n})\n/**\n * Event is fired when the size of a file is above the `maxFileSize` property value.\n * @param {Array<FileData>} filesData An array of `FileData` objects containing the`fileName` and `fileSize` in MB of each file that exceeds the upload limit.\n * @since 2.2.0\n * @public\n */\n@event<FileUploaderFileSizeExceedEventDetail>(\"file-size-exceed\", {\n\tdetail: {\n\t\t/**\n\t\t * @public\n\t\t */\n\t\tfilesData: { type: Array<FileData> },\n\t},\n})\nclass FileUploader extends UI5Element implements IFormInputElement {\n\t/**\n\t * Comma-separated list of file types that the component should accept.\n\t *\n\t * **Note:** Please make sure you are adding the `.` in front on the file type, e.g. `.png` in case you want to accept png's only.\n\t * @default undefined\n\t * @public\n\t */\n\t@property()\n\taccept?: string;\n\n\t/**\n\t * If set to \"true\", the input field of component will not be rendered. Only the default slot that is passed will be rendered.\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\thideInput = false;\n\n\t/**\n\t * Defines whether the component is in disabled state.\n\t *\n\t * **Note:** A disabled component is completely noninteractive.\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\tdisabled = false;\n\n\t/**\n\t * Allows multiple files to be chosen.\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\tmultiple = false;\n\n\t/**\n\t * Determines the name by which the component will be identified upon submission in an HTML form.\n\t *\n\t * **Note:** This property is only applicable within the context of an HTML Form element.\n\t * @default undefined\n\t * @public\n\t */\n\t@property()\n\tname?: string;\n\n\t/**\n\t * Defines a short hint intended to aid the user with data entry when the component has no value.\n\t * @default undefined\n\t * @public\n\t */\n\t@property()\n\tplaceholder?: string;\n\n\t/**\n\t * Defines the name/names of the file/files to upload.\n\t * @default \"\"\n\t * @formEvents change\n\t * @formProperty\n\t * @public\n\t */\n\t@property()\n\tvalue = \"\";\n\n\t/**\n\t * Defines the maximum file size in megabytes which prevents the upload if at least one file exceeds it.\n\t * @default undefined\n\t * @since 2.2.0\n\t * @public\n\t */\n\t@property({ type: Number })\n\tmaxFileSize?: number;\n\n\t/**\n\t * Defines the value state of the component.\n\t * @default \"None\"\n\t * @public\n\t */\n\t@property()\n\tvalueState: `${ValueState}` = \"None\";\n\n\t/**\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\tfocused = false;\n\n\t/**\n\t * By default the component contains a single input field. With this slot you can pass any content that you wish to add. See the samples for more information.\n\t *\n\t * **Note:** If no content is provided in this slot, the component will only consist of an input field and will not be interactable using the keyboard.\n\t * Also it is not recommended to use any non-interactable components, as it may lead to poor accessibility experience.\n\t * @public\n\t */\n\t@slot({ type: HTMLElement, \"default\": true })\n\tcontent!: Array<HTMLElement>;\n\n\t/**\n\t * Defines the value state message that will be displayed as pop up under the component.\n\t *\n\t * **Note:** If not specified, a default text (in the respective language) will be displayed.\n\t *\n\t * **Note:** The `valueStateMessage` would be displayed,\n\t * when the component is in `Information`, `Critical` or `Negative` value state.\n\t * @since 1.0.0-rc.9\n\t * @public\n\t */\n\t@slot()\n\tvalueStateMessage!: Array<HTMLElement>;\n\n\tstatic emptyInput: HTMLInputElement;\n\n\tstatic i18nBundle: I18nBundle;\n\n\tasync formElementAnchor() {\n\t\treturn this.getFocusDomRefAsync();\n\t}\n\n\t/**\n\t * @override\n\t */\n\tgetFocusDomRef(): HTMLElement | undefined {\n\t\treturn this.content[0];\n\t}\n\n\tget formFormattedValue() {\n\t\tif (this.files && this.name) {\n\t\t\tconst formData = new FormData();\n\n\t\t\tfor (let i = 0; i < this.files.length; i++) {\n\t\t\t\tformData.append(this.name, this.files[i]);\n\t\t\t}\n\n\t\t\treturn formData;\n\t\t}\n\n\t\treturn null;\n\t}\n\n\t_onmouseover() {\n\t\tthis.content.forEach(item => {\n\t\t\titem.classList.add(\"ui5_hovered\");\n\t\t});\n\t}\n\n\t_onmouseout() {\n\t\tthis.content.forEach(item => {\n\t\t\titem.classList.remove(\"ui5_hovered\");\n\t\t});\n\t}\n\n\t_onclick(e: MouseEvent) {\n\t\tif (getEventMark(e) === \"button\") {\n\t\t\tthis._input.click();\n\t\t}\n\t}\n\n\t_onkeydown(e: KeyboardEvent) {\n\t\tif (isEnter(e)) {\n\t\t\tthis._input.click();\n\t\t\te.preventDefault();\n\t\t}\n\t}\n\n\t_onkeyup(e: KeyboardEvent) {\n\t\tif (isSpace(e)) {\n\t\t\tthis._input.click();\n\t\t\te.preventDefault();\n\t\t}\n\t}\n\n\t_ondrag(e: DragEvent) {\n\t\te.preventDefault();\n\t\te.stopPropagation();\n\t}\n\n\t_ondrop(e: DragEvent) {\n\t\te.preventDefault();\n\t\te.stopPropagation();\n\t\tconst files = e.dataTransfer?.files;\n\n\t\tif (!files) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst validatedFiles = this._validateFiles(files);\n\n\t\tif (!this.value && !validatedFiles.length) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._input.files = validatedFiles;\n\t\tthis._updateValue(validatedFiles);\n\t\tthis.fireEvent<FileUploaderChangeEventDetail>(\"change\", {\n\t\t\tfiles: validatedFiles,\n\t\t});\n\t}\n\n\t_onfocusin() {\n\t\tthis.focused = true;\n\t}\n\n\t_onfocusout() {\n\t\tthis.focused = false;\n\t}\n\n\t/**\n\t * FileList of all selected files.\n\t * @public\n\t * @default null\n\t */\n\tget files(): FileList | null {\n\t\tif (this._input) {\n\t\t\treturn this._input.files;\n\t\t}\n\n\t\treturn FileUploader._emptyFilesList;\n\t}\n\n\tonAfterRendering() {\n\t\tif (!this.value) {\n\t\t\tthis._input.value = \"\";\n\t\t}\n\n\t\tthis.toggleValueStatePopover(this.shouldOpenValueStateMessagePopover);\n\t}\n\n\t_onChange(e: Event) {\n\t\tlet changedFiles = (e.target as HTMLInputElement).files;\n\n\t\tif (changedFiles) {\n\t\t\tchangedFiles = this._validateFiles(changedFiles);\n\t\t}\n\n\t\tif (!this.value && !changedFiles?.length) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._updateValue(changedFiles);\n\t\tthis.fireEvent<FileUploaderChangeEventDetail>(\"change\", {\n\t\t\tfiles: changedFiles,\n\t\t});\n\t}\n\n\t_updateValue(files: FileList | null) {\n\t\tthis.value = Array.from(files || []).reduce((acc, currFile) => {\n\t\t\treturn `${acc}\"${currFile.name}\" `;\n\t\t}, \"\");\n\t}\n\n\t/**\n\t * Checks whether all files are below `maxFileSize` (if set),\n\t * and fires a `file-size-exceed` event if any file exceeds it.\n\t * @private\n\t */\n\t_validateFiles(changedFiles: FileList): FileList {\n\t\tconst exceededFilesData = this.maxFileSize ? this._getExceededFiles(changedFiles) : [];\n\n\t\tif (exceededFilesData.length) {\n\t\t\tthis.fireEvent<FileUploaderFileSizeExceedEventDetail>(\"file-size-exceed\", {\n\t\t\t\tfilesData: exceededFilesData,\n\t\t\t});\n\t\t\tchangedFiles = new DataTransfer().files;\n\t\t}\n\n\t\treturn changedFiles;\n\t}\n\n\t_getExceededFiles(files: FileList): Array<FileData> {\n\t\tconst filesArray = Array.from(files);\n\t\tconst exceededFiles: Array<FileData> = [];\n\n\t\tfor (let i = 0; i < filesArray.length; i++) {\n\t\t\tconst fileSize = convertBytesToMegabytes(filesArray[i].size);\n\t\t\tif (fileSize > this.maxFileSize!) {\n\t\t\t\texceededFiles.push({\n\t\t\t\t\tfileName: filesArray[i].name,\n\t\t\t\t\tfileSize,\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t\treturn exceededFiles;\n\t}\n\n\ttoggleValueStatePopover(open: boolean) {\n\t\tif (open) {\n\t\t\tthis.openValueStatePopover();\n\t\t} else {\n\t\t\tthis.closeValueStatePopover();\n\t\t}\n\t}\n\n\topenValueStatePopover() {\n\t\tconst popover = this._getPopover();\n\n\t\tif (popover) {\n\t\t\tpopover.opener = this;\n\t\t\tpopover.open = true;\n\t\t}\n\t}\n\n\tcloseValueStatePopover() {\n\t\tconst popover = this._getPopover();\n\n\t\tif (popover) {\n\t\t\tpopover.open = false;\n\t\t}\n\t}\n\n\t_getPopover(): Popover {\n\t\treturn this.shadowRoot!.querySelector<Popover>(\".ui5-valuestatemessage-popover\")!;\n\t}\n\n\t/**\n\t * in case when the component is not placed in the DOM, return empty FileList, like native input would do\n\t * @private\n\t */\n\tstatic get _emptyFilesList() {\n\t\tif (!this.emptyInput) {\n\t\t\tthis.emptyInput = document.createElement(\"input\");\n\t\t\tthis.emptyInput.type = \"file\";\n\t\t}\n\t\treturn this.emptyInput.files;\n\t}\n\n\tget browseText(): string {\n\t\treturn FileUploader.i18nBundle.getText(FILEUPLOAD_BROWSE);\n\t}\n\n\tget titleText(): string {\n\t\treturn FileUploader.i18nBundle.getText(FILEUPLOADER_TITLE);\n\t}\n\n\tget _input(): HTMLInputElement {\n\t\treturn (this.shadowRoot!.querySelector<HTMLInputElement>(\"input[type=file]\") || this.querySelector<HTMLInputElement>(\"input[type=file][data-ui5-form-support]\"))!;\n\t}\n\n\tget valueStateTextMappings(): Record<string, string> {\n\t\treturn {\n\t\t\t\"Positive\": FileUploader.i18nBundle.getText(VALUE_STATE_SUCCESS),\n\t\t\t\"Information\": FileUploader.i18nBundle.getText(VALUE_STATE_INFORMATION),\n\t\t\t\"Negative\": FileUploader.i18nBundle.getText(VALUE_STATE_ERROR),\n\t\t\t\"Critical\": FileUploader.i18nBundle.getText(VALUE_STATE_WARNING),\n\t\t};\n\t}\n\n\tget valueStateText(): string {\n\t\treturn this.valueStateTextMappings[this.valueState];\n\t}\n\n\tget hasValueState(): boolean {\n\t\treturn this.valueState !== ValueState.None;\n\t}\n\n\tget hasValueStateText(): boolean {\n\t\treturn this.hasValueState && this.valueState !== ValueState.Positive;\n\t}\n\n\tget shouldDisplayDefaultValueStateMessage(): boolean {\n\t\treturn !this.valueStateMessage.length && this.hasValueStateText;\n\t}\n\n\tget shouldOpenValueStateMessagePopover(): boolean {\n\t\treturn this.focused && this.hasValueStateText && !this.hideInput;\n\t}\n\n\t/**\n\t * This method is relevant for sap_horizon theme only\n\t */\n\tget _valueStateMessageInputIcon(): string {\n\t\tconst iconPerValueState = {\n\t\t\tNegative: \"error\",\n\t\t\tCritical: \"alert\",\n\t\t\tPositive: \"sys-enter-2\",\n\t\t\tInformation: \"information\",\n\t\t};\n\n\t\treturn this.valueState !== ValueState.None ? iconPerValueState[this.valueState] : \"\";\n\t}\n\n\tget classes() {\n\t\treturn {\n\t\t\tpopoverValueState: {\n\t\t\t\t\"ui5-valuestatemessage-root\": true,\n\t\t\t\t\"ui5-valuestatemessage--success\": this.valueState === ValueState.Positive,\n\t\t\t\t\"ui5-valuestatemessage--error\": this.valueState === ValueState.Negative,\n\t\t\t\t\"ui5-valuestatemessage--warning\": this.valueState === ValueState.Critical,\n\t\t\t\t\"ui5-valuestatemessage--information\": this.valueState === ValueState.Information,\n\t\t\t},\n\t\t};\n\t}\n\n\tget styles() {\n\t\treturn {\n\t\t\tpopoverHeader: {\n\t\t\t\t\"width\": `${this.ui5Input ? this.ui5Input.offsetWidth : 0}px`,\n\t\t\t},\n\t\t};\n\t}\n\n\tget ui5Input() {\n\t\treturn this.shadowRoot!.querySelector<Input>(\".ui5-file-uploader-input\");\n\t}\n\n\tstatic async onDefine() {\n\t\tFileUploader.i18nBundle = await getI18nBundle(\"@ui5/webcomponents\");\n\t}\n}\n\nFileUploader.define();\n\nexport default FileUploader;\nexport type {\n\tFileData,\n\tFileUploaderChangeEventDetail,\n\tFileUploaderFileSizeExceedEventDetail,\n};\n"]}
|
package/dist/Form.d.ts
CHANGED
|
@@ -33,6 +33,9 @@ type ItemsInfo = {
|
|
|
33
33
|
* The Form is a layout component that arranges labels and form fields (like input fields) pairs
|
|
34
34
|
* into a specific number of columns.
|
|
35
35
|
*
|
|
36
|
+
* **Note:** The Form web component is a layout component, it isn't a replacement for the native `form` HTML element.
|
|
37
|
+
* The Form web component does not provide any APIs for form submission.
|
|
38
|
+
*
|
|
36
39
|
* ### Structure
|
|
37
40
|
*
|
|
38
41
|
* - **Form** (`ui5-form`) is the top-level container component, responsible for the content layout and responsiveness.
|
|
@@ -47,7 +50,7 @@ type ItemsInfo = {
|
|
|
47
50
|
* This is enabled by the FormGroup (`ui5-form-group`) component.
|
|
48
51
|
* In this case, the Form is structured into FormGroups and each FormGroup consists of FormItems.
|
|
49
52
|
*
|
|
50
|
-
*
|
|
53
|
+
* ### Responsiveness
|
|
51
54
|
*
|
|
52
55
|
* The Form component reacts and changes its layout on predefined breakpoints.
|
|
53
56
|
* Depending on its size, the Form content (FormGroups and FormItems) gets divided into one or more columns as follows:
|
package/dist/Form.js
CHANGED
|
@@ -29,6 +29,9 @@ const StepColumn = {
|
|
|
29
29
|
* The Form is a layout component that arranges labels and form fields (like input fields) pairs
|
|
30
30
|
* into a specific number of columns.
|
|
31
31
|
*
|
|
32
|
+
* **Note:** The Form web component is a layout component, it isn't a replacement for the native `form` HTML element.
|
|
33
|
+
* The Form web component does not provide any APIs for form submission.
|
|
34
|
+
*
|
|
32
35
|
* ### Structure
|
|
33
36
|
*
|
|
34
37
|
* - **Form** (`ui5-form`) is the top-level container component, responsible for the content layout and responsiveness.
|
|
@@ -43,7 +46,7 @@ const StepColumn = {
|
|
|
43
46
|
* This is enabled by the FormGroup (`ui5-form-group`) component.
|
|
44
47
|
* In this case, the Form is structured into FormGroups and each FormGroup consists of FormItems.
|
|
45
48
|
*
|
|
46
|
-
*
|
|
49
|
+
* ### Responsiveness
|
|
47
50
|
*
|
|
48
51
|
* The Form component reacts and changes its layout on predefined breakpoints.
|
|
49
52
|
* Depending on its size, the Form content (FormGroups and FormItems) gets divided into one or more columns as follows:
|
package/dist/Form.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Form.js","sourceRoot":"","sources":["../src/Form.ts"],"names":[],"mappings":"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","sourcesContent":["import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot.js\";\nimport litRender from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\n\n// Template\nimport FormTemplate from \"./generated/templates/FormTemplate.lit.js\";\n\n// Styles\nimport FormCss from \"./generated/themes/Form.css.js\";\n\nimport Title from \"./Title.js\";\nimport type FormItemSpacing from \"./types/FormItemSpacing.js\";\nimport type FormGroup from \"./FormGroup.js\";\n\nconst additionalStylesMap = new Map<string, string>();\n\nconst StepColumn = {\n\t\"S\": 1,\n\t\"M\": 2,\n\t\"L\": 3,\n\t\"XL\": 6,\n};\n\n/**\n * Interface for components that can be slotted inside `ui5-form` as items.\n * @public\n * @experimental\n * @since 2.0.0\n */\ninterface IFormItem extends HTMLElement {\n\tlabelSpan: string\n\titemSpacing: `${FormItemSpacing}`;\n\treadonly isGroup: boolean;\n\tcolsXl?: number;\n\tcolsL?: number;\n\tcolsM?: number;\n\tcolsS?: number;\n\tcolumnSpan?: number;\n}\n\ntype GroupItemsInfo = {\n\tgroupItem: IFormItem,\n\tclasses: string,\n\titems: Array<ItemsInfo>,\n}\n\ntype ItemsInfo = {\n\titem: IFormItem,\n\tclasses: string,\n}\n\n/**\n * @class\n *\n * ### Overview\n *\n * The Form is a layout component that arranges labels and form fields (like input fields) pairs\n * into a specific number of columns.\n *\n * ### Structure\n *\n * - **Form** (`ui5-form`) is the top-level container component, responsible for the content layout and responsiveness.\n * - **FormGroup** (`ui5-form-group`) enables the grouping of the Form content.\n * - **FormItem** (`ui5-form-item`) is a pair of label and form fields and can be used directly in a Form, or as part of a FormGroup.\n *\n * The simplest Form (`ui5-form`) consists of a header area on top,\n * displaying a header text (see the `headingText` property) and content below - an arbitrary number of FormItems (ui5-form-item),\n * representing the pairs of label and form fields.\n *\n * And, there is also \"grouping\" available to assist the implementation of richer UIs.\n * This is enabled by the FormGroup (`ui5-form-group`) component.\n * In this case, the Form is structured into FormGroups and each FormGroup consists of FormItems.\n *\n * ### Responsiveness\n *\n * The Form component reacts and changes its layout on predefined breakpoints.\n * Depending on its size, the Form content (FormGroups and FormItems) gets divided into one or more columns as follows:\n * - **S** (< 600px) – 1 column is recommended (default: 1)\n * - **M** (600px - 1022px) – up to 2 columns are recommended (default: 1)\n * - **L** (1023px - 1439px) - up to 3 columns are recommended (default: 2)\n * - **XL** (> 1439px) – up to 6 columns are recommended (default: 2)\n *\n * To change the layout, use the `layout` property - f.e. layout=\"S1 M2 L3 XL6\".\n *\n * ### Groups\n *\n * To make better use of screen space, there is built-in logic to determine how many columns should a FormGroup occupy.\n *\n * - **Example #1** (perfect match):\n * 4 columns and 4 groups: each group will use 1 column.\n *\n * - **Example #2** (balanced distribution):\n * 4 columns and 2 groups: each group will use 2 columns.\n * 6 columns and 2 groups: each group will use 3 columns.\n *\n * - **Example #3** (unbalanced distribution):\n * 3 columns and 2 groups: the larger one will use 2 columns, the smaller 1 column.\n * 5 columns and 3 groups: two of the groups will use 2 columns each, the smallest 1 column.\n *\n * **Note:** The size of a group element is determined by the number of FormItems assigned to it.\n * In the case of equality, the first in the DOM will use more columns, and the last - fewer columns.\n *\n * - **Example #4** (more groups than columns):\n * 3 columns and 4 groups: each FormGroup uses only 1 column, the last FormGroup will wrap on the second row.\n *\n * ### Groups Column Span\n *\n * To influence the built-in group distribution, described in the previous section,\n * you can use the FormGroup's `columnSpan` property, that defines how many columns the group should expand to.\n *\n * ### Items Column Span\n *\n * FormItem's columnSpan property defines how many columns the form item should expand to inside a form group or the form.\n *\n * ### Items Label Span\n *\n * The placement of the labels depends on the size of the used column.\n * If there is enough space, the labels are next to their associated fields, otherwise - above the fields.\n * By default, the labels take 4/12 of the FormItem, leaving 8/12 parts to associated fields.\n * You can control what space the labels should take via the `labelSpan` property.\n *\n * **For example:** To always place the labels on top set: `labelSpan=\"S12 M12 L12 XL12\"` property.\n *\n * ### ES6 Module Import\n *\n * - import @ui5/webcomponents/dist/Form.js\";\n * - import @ui5/webcomponents/dist/FormGroup.js\";\n * - import @ui5/webcomponents/dist/FormItem.js\";\n *\n * @csspart header - Used to style the wrapper of the header.\n * @csspart layout - Used to style the element defining the form column layout.\n * @csspart column - Used to style a single column of the form column layout.\n *\n * @public\n * @since 2.0.0\n * @experimental This component is availabe since 2.0 under an experimental flag and its API and behaviour are subject to change.\n * @extends UI5Element\n */\n@customElement({\n\ttag: \"ui5-form\",\n\trenderer: litRender,\n\tstyles: FormCss,\n\ttemplate: FormTemplate,\n\tdependencies: [Title],\n})\nclass Form extends UI5Element {\n\t/**\n\t * Defines the number of columns to distribute the form content by breakpoint.\n\t *\n\t * Supported values:\n\t * - `S` - 1 column by default (1 column is recommended)\n\t * - `M` - 1 column by default (up to 2 columns are recommended)\n\t * - `L` - 2 columns by default (up to 3 columns are recommended)\n\t * - `XL` - 2 columns by default (up to 6 columns are recommended)\n\t *\n\t * @default \"S1 M1 L2 XL2\"\n\t * @public\n\t */\n\t@property()\n\tlayout = \"S1 M1 L2 XL2\"\n\n\t/**\n\t * Defines the width proportion of the labels and fields of a FormItem by breakpoint.\n\t *\n\t * By default, the labels take 4/12 (or 1/3) of the form item in M,L and XL sizes,\n\t * and 12/12 in S size, e.g in S the label is on top of its associated field.\n\t *\n\t * The supported values are between 1 and 12. Greater the number, more space the label will use.\n\t *\n\t * **Note:** If \"12\" is set, the label will be displayed on top of its assosiated field.\n\t * @default \"S12 M4 L4 XL4\"\n\t * @public\n\t */\n\t@property()\n\tlabelSpan = \"S12 M4 L4 XL4\";\n\n\t/**\n\t * Defines the header text of the component.\n\t *\n\t * **Note:** The property gets overridden by the `header` slot.\n\t *\n\t * @default undefined\n\t * @public\n\t */\n\t@property()\n\theaderText?: string;\n\n\t/**\n\t * Defines the vertical spacing between form items.\n\t *\n\t * **Note:** If the Form is meant to be switched between \"non-edit\" and \"edit\" modes,\n\t * we recommend using \"Large\" item spacing in \"non-edit\" mode, and \"Normal\" - for \"edit\" mode,\n\t * to avoid \"jumping\" effect, caused by the hight difference between texts in \"non-edit\" mode and the input fields in \"edit\" mode.\n\t *\n\t * @default \"Normal\"\n\t * @public\n\t */\n\t@property()\n\titemSpacing: `${FormItemSpacing}` = \"Normal\";\n\n\t/**\n\t * Defines the component header area.\n\t *\n\t * **Note:** When a `header` is provided, the `headerText` property is ignored.\n\t * @public\n\t */\n\t@slot({ type: HTMLElement })\n\theader!: Array<HTMLElement>;\n\n\t/**\n\t * Defines the component content - FormGroups or FormItems.\n\t *\n\t * **Note:** Mixing FormGroups and standalone FormItems (not belonging to a group) is not supported.\n\t * Either use FormGroups and make sure all FormItems are part of a FormGroup, or use just FormItems without any FormGroups.\n\t * @public\n\t */\n\t@slot({\n\t\ttype: HTMLElement,\n\t\t\"default\": true,\n\t\tindividualSlots: true,\n\t\tinvalidateOnChildChange: true,\n\t})\n\titems!: Array<IFormItem>;\n\n\t/**\n\t * @private\n\t */\n\t@property({ type: Number })\n\tcolumnsS = 1;\n\t@property({ type: Number })\n\tlabelSpanS = 12\n\n\t@property({ type: Number })\n\tcolumnsM = 1;\n\t@property({ type: Number })\n\tlabelSpanM = 4;\n\n\t@property({ type: Number })\n\tcolumnsL = 2;\n\t@property({ type: Number })\n\tlabelSpanL = 4;\n\n\t@property({ type: Number })\n\tcolumnsXl = 2;\n\t@property({ type: Number })\n\tlabelSpanXl = 4;\n\n\tonBeforeRendering() {\n\t\t// Parse the layout and set it to the FormGroups/FormItems.\n\t\tthis.setColumnLayout();\n\n\t\t// Parse the labelSpan and set it to the FormGroups/FormItems.\n\t\tthis.setLabelSpan();\n\n\t\t// Define how many columns a group should take.\n\t\tthis.setGroupsColSpan();\n\t}\n\n\tonAfterRendering() {\n\t\t// Create additional CSS for number of columns that are not supported by default.\n\t\tthis.createAdditionalCSSStyleSheet();\n\t}\n\n\tsetColumnLayout() {\n\t\tconst layoutArr = this.layout.split(\" \");\n\t\tlayoutArr.forEach((breakpoint: string) => {\n\t\t\tif (breakpoint.startsWith(\"S\")) {\n\t\t\t\tthis.columnsS = parseInt(breakpoint.slice(1));\n\t\t\t} else if (breakpoint.startsWith(\"M\")) {\n\t\t\t\tthis.columnsM = parseInt(breakpoint.slice(1));\n\t\t\t} else if (breakpoint.startsWith(\"L\")) {\n\t\t\t\tthis.columnsL = parseInt(breakpoint.slice(1));\n\t\t\t} else if (breakpoint.startsWith(\"XL\")) {\n\t\t\t\tthis.columnsXl = parseInt(breakpoint.slice(2));\n\t\t\t}\n\t\t});\n\t}\n\n\tsetLabelSpan() {\n\t\tthis.labelSpan.split(\" \").forEach((breakpoint: string) => {\n\t\t\tif (breakpoint.startsWith(\"S\")) {\n\t\t\t\tthis.labelSpanS = parseInt(breakpoint.slice(1));\n\t\t\t} else if (breakpoint.startsWith(\"M\")) {\n\t\t\t\tthis.labelSpanM = parseInt(breakpoint.slice(1));\n\t\t\t} else if (breakpoint.startsWith(\"L\")) {\n\t\t\t\tthis.labelSpanL = parseInt(breakpoint.slice(1));\n\t\t\t} else if (breakpoint.startsWith(\"XL\")) {\n\t\t\t\tthis.labelSpanXl = parseInt(breakpoint.slice(2));\n\t\t\t}\n\t\t});\n\n\t\tthis.items.forEach((item: IFormItem) => {\n\t\t\titem.labelSpan = this.labelSpan;\n\t\t\titem.itemSpacing = this.itemSpacing;\n\t\t});\n\t}\n\n\tsetGroupsColSpan() {\n\t\tif (!this.hasGroupItems) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst itemsCount = this.items.length;\n\t\tconst sortedItems = [...this.items].sort((itemA: IFormItem, itemB: IFormItem) => {\n\t\t\treturn (itemB as FormGroup)?.items.length - (itemA as FormGroup)?.items.length;\n\t\t});\n\n\t\tsortedItems.forEach((item: IFormItem, idx: number) => {\n\t\t\titem.colsXl = this.getGroupsColSpan(this.columnsXl, itemsCount, idx, item);\n\t\t\titem.colsL = this.getGroupsColSpan(this.columnsL, itemsCount, idx, item);\n\t\t\titem.colsM = this.getGroupsColSpan(this.columnsM, itemsCount, idx, item);\n\t\t\titem.colsS = this.getGroupsColSpan(this.columnsS, itemsCount, idx, item);\n\t\t});\n\t}\n\n\tgetGroupsColSpan(cols: number, groups: number, index: number, group: IFormItem): number {\n\t\t// Case 0: column span is set from outside.\n\t\tif (group.columnSpan) {\n\t\t\treturn group.columnSpan;\n\t\t}\n\n\t\t// CASE 1: The number of available columns match the number of groups, or only 1 column is available - each group takes 1 column.\n\t\t// For example: 1 column - 1 group, 2 columns - 2 groups, 3 columns - 3 groups, 4columns - 4 groups\n\t\tif (cols === 1 || cols <= groups) {\n\t\t\treturn 1;\n\t\t}\n\n\t\t// CASE 2: The number of available columns IS multiple of the number of groups.\n\t\t// For example: 2 column - 1 group, 3 columns - 1 groups, 4 columns - 1 group, 4 columns - 2 groups\n\t\tif (cols % groups === 0) {\n\t\t\treturn cols / groups;\n\t\t}\n\n\t\t// CASE 3: The number of available columns IS NOT multiple of the number of groups.\n\t\tconst MIN_COL_SPAN = 1;\n\t\tconst delta = cols - groups;\n\n\t\t// 7 cols & 4 groups => 2, 2, 2, 1\n\t\tif (delta <= groups) {\n\t\t\treturn index < delta ? MIN_COL_SPAN + 1 : MIN_COL_SPAN;\n\t\t}\n\n\t\t// 7 cols & 3 groups => 3, 2, 2\n\t\treturn index === 0 ? MIN_COL_SPAN + (delta - groups) + 1 : MIN_COL_SPAN + 1;\n\t}\n\n\tget hasGroupItems(): boolean {\n\t\treturn this.items.some((item: IFormItem) => item.isGroup);\n\t}\n\n\tget hasHeader(): boolean {\n\t\treturn this.hasCustomHeader || !!this.headerText;\n\t}\n\n\tget hasCustomHeader(): boolean {\n\t\treturn !!this.header.length;\n\t}\n\n\tget ariaLabelledByID(): string | undefined {\n\t\treturn this.hasCustomHeader ? undefined : `${this._id}-header-text`;\n\t}\n\n\tget groupItemsInfo(): Array<GroupItemsInfo> {\n\t\treturn this.items.map((groupItem: IFormItem) => {\n\t\t\treturn {\n\t\t\t\tgroupItem,\n\t\t\t\tclasses: `ui5-form-column-spanL-${groupItem.colsL} ui5-form-column-spanXL-${groupItem.colsXl} ui5-form-column-spanM-${groupItem.colsM} ui5-form-column-spanS-${groupItem.colsS}`,\n\t\t\t\titems: this.getItemsInfo((Array.from(groupItem.children) as Array<IFormItem>)),\n\t\t\t};\n\t\t});\n\t}\n\n\tget itemsInfo(): Array<ItemsInfo> {\n\t\treturn this.getItemsInfo();\n\t}\n\n\tgetItemsInfo(items?: Array<IFormItem>): Array<ItemsInfo> {\n\t\treturn (items || this.items).map((item: IFormItem) => {\n\t\t\treturn {\n\t\t\t\titem,\n\t\t\t\tclasses: item.columnSpan ? `ui5-form-item-span-${item.columnSpan}` : \"\",\n\t\t\t};\n\t\t});\n\t}\n\n\tcreateAdditionalCSSStyleSheet() {\n\t\t[\n\t\t\t{ breakpoint: \"S\", columns: this.columnsS },\n\t\t\t{ breakpoint: \"M\", columns: this.columnsM },\n\t\t\t{ breakpoint: \"L\", columns: this.columnsL },\n\t\t\t{ breakpoint: \"XL\", columns: this.columnsXl },\n\t\t].forEach(step => {\n\t\t\tconst additionalStyle: string | undefined = this.getAdditionalCSS(step.breakpoint, step.columns);\n\n\t\t\tif (additionalStyle) {\n\t\t\t\tthis.shadowRoot!.adoptedStyleSheets = [...this.shadowRoot!.adoptedStyleSheets, this.getCSSStyleSheet(additionalStyle)];\n\t\t\t}\n\t\t});\n\t}\n\n\tgetAdditionalCSS(step: string, colsNumber: number): string | undefined {\n\t\tif (StepColumn[step as keyof typeof StepColumn] >= colsNumber) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst key = `${step}-${colsNumber}`;\n\n\t\tif (!additionalStylesMap.has(key)) {\n\t\t\tlet containerQuery;\n\t\t\tlet supporedColumnsNumber = StepColumn.S;\n\t\t\tlet stepSpanCSS = \"\";\n\t\t\tlet cols = colsNumber;\n\n\t\t\tif (step === \"S\") {\n\t\t\t\tsupporedColumnsNumber = StepColumn.S;\n\t\t\t\tcontainerQuery = `@container (max-width: 599px) {`;\n\t\t\t} else if (step === \"M\") {\n\t\t\t\tsupporedColumnsNumber = StepColumn.M;\n\t\t\t\tcontainerQuery = `@container (width > 599px) and (width < 1024px) {`;\n\t\t\t} else if (step === \"L\") {\n\t\t\t\tsupporedColumnsNumber = StepColumn.L;\n\t\t\t\tcontainerQuery = `@container (width > 1023px) and (width < 1439px) {`;\n\t\t\t} else if (step === \"XL\") {\n\t\t\t\tcontainerQuery = `@container (min-width: 1440px) {`;\n\t\t\t\tsupporedColumnsNumber = StepColumn.XL;\n\t\t\t}\n\n\t\t\twhile (cols > supporedColumnsNumber) {\n\t\t\t\tstepSpanCSS += `\n\t\t\t\t:host([columns-${step.toLocaleLowerCase()}=\"${cols}\"]) .ui5-form-layout {\n\t\t\t\t\tgrid-template-columns: repeat(${cols}, 1fr);\n\t\t\t\t}\n\n\t\t\t\t.ui5-form-column-span${step}-${cols},\n\t\t\t\t.ui5-form-item-span-${cols} {\n\t\t\t\t\tgrid-column: span ${cols};\n\t\t\t\t}\n\n\t\t\t\t.ui5-form-column-span${step}-${cols} .ui5-form-group-layout {\n\t\t\t\t\tgrid-template-columns: repeat(${cols}, 1fr);\n\t\t\t\t}\n\t\t\t\t`;\n\t\t\t\tcols--;\n\t\t\t}\n\n\t\t\tconst css = `${containerQuery}${stepSpanCSS}}`;\n\t\t\tadditionalStylesMap.set(key, css);\n\t\t}\n\n\t\treturn additionalStylesMap.get(key)!;\n\t}\n\n\tgetCSSStyleSheet(cssText: string): CSSStyleSheet {\n\t\tconst style = new CSSStyleSheet();\n\t\tstyle.replaceSync(cssText);\n\t\treturn style;\n\t}\n}\n\nForm.define();\n\nexport default Form;\nexport {\n\tIFormItem,\n};\n"]}
|
|
1
|
+
{"version":3,"file":"Form.js","sourceRoot":"","sources":["../src/Form.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,UAAU,MAAM,4CAA4C,CAAC;AACpE,OAAO,aAAa,MAAM,0DAA0D,CAAC;AACrF,OAAO,QAAQ,MAAM,qDAAqD,CAAC;AAC3E,OAAO,IAAI,MAAM,iDAAiD,CAAC;AACnE,OAAO,SAAS,MAAM,sDAAsD,CAAC;AAE7E,WAAW;AACX,OAAO,YAAY,MAAM,2CAA2C,CAAC;AAErE,SAAS;AACT,OAAO,OAAO,MAAM,gCAAgC,CAAC;AAErD,OAAO,KAAK,MAAM,YAAY,CAAC;AAI/B,MAAM,mBAAmB,GAAG,IAAI,GAAG,EAAkB,CAAC;AAEtD,MAAM,UAAU,GAAG;IAClB,GAAG,EAAE,CAAC;IACN,GAAG,EAAE,CAAC;IACN,GAAG,EAAE,CAAC;IACN,IAAI,EAAE,CAAC;CACP,CAAC;AA8BF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyFG;AAQH,IAAM,IAAI,GAAV,MAAM,IAAK,SAAQ,UAAU;IAA7B;;QACC;;;;;;;;;;;WAWG;QAEH,WAAM,GAAG,cAAc,CAAA;QAEvB;;;;;;;;;;;WAWG;QAEH,cAAS,GAAG,eAAe,CAAC;QAa5B;;;;;;;;;WASG;QAEH,gBAAW,GAAyB,QAAQ,CAAC;QA0B7C;;WAEG;QAEH,aAAQ,GAAG,CAAC,CAAC;QAEb,eAAU,GAAG,EAAE,CAAA;QAGf,aAAQ,GAAG,CAAC,CAAC;QAEb,eAAU,GAAG,CAAC,CAAC;QAGf,aAAQ,GAAG,CAAC,CAAC;QAEb,eAAU,GAAG,CAAC,CAAC;QAGf,cAAS,GAAG,CAAC,CAAC;QAEd,gBAAW,GAAG,CAAC,CAAC;IAoNjB,CAAC;IAlNA,iBAAiB;QAChB,2DAA2D;QAC3D,IAAI,CAAC,eAAe,EAAE,CAAC;QAEvB,8DAA8D;QAC9D,IAAI,CAAC,YAAY,EAAE,CAAC;QAEpB,+CAA+C;QAC/C,IAAI,CAAC,gBAAgB,EAAE,CAAC;IACzB,CAAC;IAED,gBAAgB;QACf,iFAAiF;QACjF,IAAI,CAAC,6BAA6B,EAAE,CAAC;IACtC,CAAC;IAED,eAAe;QACd,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACzC,SAAS,CAAC,OAAO,CAAC,CAAC,UAAkB,EAAE,EAAE;YACxC,IAAI,UAAU,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE;gBAC/B,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;aAC9C;iBAAM,IAAI,UAAU,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE;gBACtC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;aAC9C;iBAAM,IAAI,UAAU,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE;gBACtC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;aAC9C;iBAAM,IAAI,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE;gBACvC,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;aAC/C;QACF,CAAC,CAAC,CAAC;IACJ,CAAC;IAED,YAAY;QACX,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,UAAkB,EAAE,EAAE;YACxD,IAAI,UAAU,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE;gBAC/B,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;aAChD;iBAAM,IAAI,UAAU,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE;gBACtC,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;aAChD;iBAAM,IAAI,UAAU,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE;gBACtC,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;aAChD;iBAAM,IAAI,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE;gBACvC,IAAI,CAAC,WAAW,GAAG,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;aACjD;QACF,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAe,EAAE,EAAE;YACtC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;YAChC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QACrC,CAAC,CAAC,CAAC;IACJ,CAAC;IAED,gBAAgB;QACf,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;YACxB,OAAO;SACP;QAED,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;QACrC,MAAM,WAAW,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,KAAgB,EAAE,KAAgB,EAAE,EAAE;YAC/E,OAAQ,KAAmB,EAAE,KAAK,CAAC,MAAM,GAAI,KAAmB,EAAE,KAAK,CAAC,MAAM,CAAC;QAChF,CAAC,CAAC,CAAC;QAEH,WAAW,CAAC,OAAO,CAAC,CAAC,IAAe,EAAE,GAAW,EAAE,EAAE;YACpD,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,SAAS,EAAE,UAAU,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;YAC3E,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,QAAQ,EAAE,UAAU,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;YACzE,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,QAAQ,EAAE,UAAU,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;YACzE,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,QAAQ,EAAE,UAAU,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;QAC1E,CAAC,CAAC,CAAC;IACJ,CAAC;IAED,gBAAgB,CAAC,IAAY,EAAE,MAAc,EAAE,KAAa,EAAE,KAAgB;QAC7E,2CAA2C;QAC3C,IAAI,KAAK,CAAC,UAAU,EAAE;YACrB,OAAO,KAAK,CAAC,UAAU,CAAC;SACxB;QAED,iIAAiI;QACjI,mGAAmG;QACnG,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,MAAM,EAAE;YACjC,OAAO,CAAC,CAAC;SACT;QAED,+EAA+E;QAC/E,mGAAmG;QACnG,IAAI,IAAI,GAAG,MAAM,KAAK,CAAC,EAAE;YACxB,OAAO,IAAI,GAAG,MAAM,CAAC;SACrB;QAED,mFAAmF;QACnF,MAAM,YAAY,GAAG,CAAC,CAAC;QACvB,MAAM,KAAK,GAAG,IAAI,GAAG,MAAM,CAAC;QAE5B,kCAAkC;QAClC,IAAI,KAAK,IAAI,MAAM,EAAE;YACpB,OAAO,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC;SACvD;QAED,+BAA+B;QAC/B,OAAO,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,YAAY,GAAG,CAAC,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,YAAY,GAAG,CAAC,CAAC;IAC7E,CAAC;IAED,IAAI,aAAa;QAChB,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAe,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC3D,CAAC;IAED,IAAI,SAAS;QACZ,OAAO,IAAI,CAAC,eAAe,IAAI,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC;IAClD,CAAC;IAED,IAAI,eAAe;QAClB,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;IAC7B,CAAC;IAED,IAAI,gBAAgB;QACnB,OAAO,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,cAAc,CAAC;IACrE,CAAC;IAED,IAAI,cAAc;QACjB,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,SAAoB,EAAE,EAAE;YAC9C,OAAO;gBACN,SAAS;gBACT,OAAO,EAAE,yBAAyB,SAAS,CAAC,KAAK,2BAA2B,SAAS,CAAC,MAAM,0BAA0B,SAAS,CAAC,KAAK,0BAA0B,SAAS,CAAC,KAAK,EAAE;gBAChL,KAAK,EAAE,IAAI,CAAC,YAAY,CAAE,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAsB,CAAC;aAC9E,CAAC;QACH,CAAC,CAAC,CAAC;IACJ,CAAC;IAED,IAAI,SAAS;QACZ,OAAO,IAAI,CAAC,YAAY,EAAE,CAAC;IAC5B,CAAC;IAED,YAAY,CAAC,KAAwB;QACpC,OAAO,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,IAAe,EAAE,EAAE;YACpD,OAAO;gBACN,IAAI;gBACJ,OAAO,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,sBAAsB,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE;aACvE,CAAC;QACH,CAAC,CAAC,CAAC;IACJ,CAAC;IAED,6BAA6B;QAC5B;YACC,EAAE,UAAU,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,CAAC,QAAQ,EAAE;YAC3C,EAAE,UAAU,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,CAAC,QAAQ,EAAE;YAC3C,EAAE,UAAU,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,CAAC,QAAQ,EAAE;YAC3C,EAAE,UAAU,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,SAAS,EAAE;SAC7C,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;YAChB,MAAM,eAAe,GAAuB,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;YAEjG,IAAI,eAAe,EAAE;gBACpB,IAAI,CAAC,UAAW,CAAC,kBAAkB,GAAG,CAAC,GAAG,IAAI,CAAC,UAAW,CAAC,kBAAkB,EAAE,IAAI,CAAC,gBAAgB,CAAC,eAAe,CAAC,CAAC,CAAC;aACvH;QACF,CAAC,CAAC,CAAC;IACJ,CAAC;IAED,gBAAgB,CAAC,IAAY,EAAE,UAAkB;QAChD,IAAI,UAAU,CAAC,IAA+B,CAAC,IAAI,UAAU,EAAE;YAC9D,OAAO;SACP;QAED,MAAM,GAAG,GAAG,GAAG,IAAI,IAAI,UAAU,EAAE,CAAC;QAEpC,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;YAClC,IAAI,cAAc,CAAC;YACnB,IAAI,qBAAqB,GAAG,UAAU,CAAC,CAAC,CAAC;YACzC,IAAI,WAAW,GAAG,EAAE,CAAC;YACrB,IAAI,IAAI,GAAG,UAAU,CAAC;YAEtB,IAAI,IAAI,KAAK,GAAG,EAAE;gBACjB,qBAAqB,GAAG,UAAU,CAAC,CAAC,CAAC;gBACrC,cAAc,GAAG,iCAAiC,CAAC;aACnD;iBAAM,IAAI,IAAI,KAAK,GAAG,EAAE;gBACxB,qBAAqB,GAAG,UAAU,CAAC,CAAC,CAAC;gBACrC,cAAc,GAAG,mDAAmD,CAAC;aACrE;iBAAM,IAAI,IAAI,KAAK,GAAG,EAAE;gBACxB,qBAAqB,GAAG,UAAU,CAAC,CAAC,CAAC;gBACrC,cAAc,GAAG,oDAAoD,CAAC;aACtE;iBAAM,IAAI,IAAI,KAAK,IAAI,EAAE;gBACzB,cAAc,GAAG,kCAAkC,CAAC;gBACpD,qBAAqB,GAAG,UAAU,CAAC,EAAE,CAAC;aACtC;YAED,OAAO,IAAI,GAAG,qBAAqB,EAAE;gBACpC,WAAW,IAAI;qBACE,IAAI,CAAC,iBAAiB,EAAE,KAAK,IAAI;qCACjB,IAAI;;;2BAGd,IAAI,IAAI,IAAI;0BACb,IAAI;yBACL,IAAI;;;2BAGF,IAAI,IAAI,IAAI;qCACF,IAAI;;KAEpC,CAAC;gBACF,IAAI,EAAE,CAAC;aACP;YAED,MAAM,GAAG,GAAG,GAAG,cAAc,GAAG,WAAW,GAAG,CAAC;YAC/C,mBAAmB,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;SAClC;QAED,OAAO,mBAAmB,CAAC,GAAG,CAAC,GAAG,CAAE,CAAC;IACtC,CAAC;IAED,gBAAgB,CAAC,OAAe;QAC/B,MAAM,KAAK,GAAG,IAAI,aAAa,EAAE,CAAC;QAClC,KAAK,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QAC3B,OAAO,KAAK,CAAC;IACd,CAAC;CACD,CAAA;AA1SA;IADC,QAAQ,EAAE;oCACY;AAevB;IADC,QAAQ,EAAE;uCACiB;AAW5B;IADC,QAAQ,EAAE;wCACS;AAapB;IADC,QAAQ,EAAE;yCACkC;AAS7C;IADC,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC;oCACA;AAe5B;IANC,IAAI,CAAC;QACL,IAAI,EAAE,WAAW;QACjB,SAAS,EAAE,IAAI;QACf,eAAe,EAAE,IAAI;QACrB,uBAAuB,EAAE,IAAI;KAC7B,CAAC;mCACuB;AAMzB;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;sCACd;AAEb;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;wCACZ;AAGf;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;sCACd;AAEb;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;wCACZ;AAGf;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;sCACd;AAEb;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;wCACZ;AAGf;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;uCACb;AAEd;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;yCACX;AApGX,IAAI;IAPT,aAAa,CAAC;QACd,GAAG,EAAE,UAAU;QACf,QAAQ,EAAE,SAAS;QACnB,MAAM,EAAE,OAAO;QACf,QAAQ,EAAE,YAAY;QACtB,YAAY,EAAE,CAAC,KAAK,CAAC;KACrB,CAAC;GACI,IAAI,CAwTT;AAED,IAAI,CAAC,MAAM,EAAE,CAAC;AAEd,eAAe,IAAI,CAAC","sourcesContent":["import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot.js\";\nimport litRender from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\n\n// Template\nimport FormTemplate from \"./generated/templates/FormTemplate.lit.js\";\n\n// Styles\nimport FormCss from \"./generated/themes/Form.css.js\";\n\nimport Title from \"./Title.js\";\nimport type FormItemSpacing from \"./types/FormItemSpacing.js\";\nimport type FormGroup from \"./FormGroup.js\";\n\nconst additionalStylesMap = new Map<string, string>();\n\nconst StepColumn = {\n\t\"S\": 1,\n\t\"M\": 2,\n\t\"L\": 3,\n\t\"XL\": 6,\n};\n\n/**\n * Interface for components that can be slotted inside `ui5-form` as items.\n * @public\n * @experimental\n * @since 2.0.0\n */\ninterface IFormItem extends HTMLElement {\n\tlabelSpan: string\n\titemSpacing: `${FormItemSpacing}`;\n\treadonly isGroup: boolean;\n\tcolsXl?: number;\n\tcolsL?: number;\n\tcolsM?: number;\n\tcolsS?: number;\n\tcolumnSpan?: number;\n}\n\ntype GroupItemsInfo = {\n\tgroupItem: IFormItem,\n\tclasses: string,\n\titems: Array<ItemsInfo>,\n}\n\ntype ItemsInfo = {\n\titem: IFormItem,\n\tclasses: string,\n}\n\n/**\n * @class\n *\n * ### Overview\n *\n * The Form is a layout component that arranges labels and form fields (like input fields) pairs\n * into a specific number of columns.\n *\n * **Note:** The Form web component is a layout component, it isn't a replacement for the native `form` HTML element.\n * The Form web component does not provide any APIs for form submission.\n *\n * ### Structure\n *\n * - **Form** (`ui5-form`) is the top-level container component, responsible for the content layout and responsiveness.\n * - **FormGroup** (`ui5-form-group`) enables the grouping of the Form content.\n * - **FormItem** (`ui5-form-item`) is a pair of label and form fields and can be used directly in a Form, or as part of a FormGroup.\n *\n * The simplest Form (`ui5-form`) consists of a header area on top,\n * displaying a header text (see the `headingText` property) and content below - an arbitrary number of FormItems (ui5-form-item),\n * representing the pairs of label and form fields.\n *\n * And, there is also \"grouping\" available to assist the implementation of richer UIs.\n * This is enabled by the FormGroup (`ui5-form-group`) component.\n * In this case, the Form is structured into FormGroups and each FormGroup consists of FormItems.\n *\n * ### Responsiveness\n *\n * The Form component reacts and changes its layout on predefined breakpoints.\n * Depending on its size, the Form content (FormGroups and FormItems) gets divided into one or more columns as follows:\n * - **S** (< 600px) – 1 column is recommended (default: 1)\n * - **M** (600px - 1022px) – up to 2 columns are recommended (default: 1)\n * - **L** (1023px - 1439px) - up to 3 columns are recommended (default: 2)\n * - **XL** (> 1439px) – up to 6 columns are recommended (default: 2)\n *\n * To change the layout, use the `layout` property - f.e. layout=\"S1 M2 L3 XL6\".\n *\n * ### Groups\n *\n * To make better use of screen space, there is built-in logic to determine how many columns should a FormGroup occupy.\n *\n * - **Example #1** (perfect match):\n * 4 columns and 4 groups: each group will use 1 column.\n *\n * - **Example #2** (balanced distribution):\n * 4 columns and 2 groups: each group will use 2 columns.\n * 6 columns and 2 groups: each group will use 3 columns.\n *\n * - **Example #3** (unbalanced distribution):\n * 3 columns and 2 groups: the larger one will use 2 columns, the smaller 1 column.\n * 5 columns and 3 groups: two of the groups will use 2 columns each, the smallest 1 column.\n *\n * **Note:** The size of a group element is determined by the number of FormItems assigned to it.\n * In the case of equality, the first in the DOM will use more columns, and the last - fewer columns.\n *\n * - **Example #4** (more groups than columns):\n * 3 columns and 4 groups: each FormGroup uses only 1 column, the last FormGroup will wrap on the second row.\n *\n * ### Groups Column Span\n *\n * To influence the built-in group distribution, described in the previous section,\n * you can use the FormGroup's `columnSpan` property, that defines how many columns the group should expand to.\n *\n * ### Items Column Span\n *\n * FormItem's columnSpan property defines how many columns the form item should expand to inside a form group or the form.\n *\n * ### Items Label Span\n *\n * The placement of the labels depends on the size of the used column.\n * If there is enough space, the labels are next to their associated fields, otherwise - above the fields.\n * By default, the labels take 4/12 of the FormItem, leaving 8/12 parts to associated fields.\n * You can control what space the labels should take via the `labelSpan` property.\n *\n * **For example:** To always place the labels on top set: `labelSpan=\"S12 M12 L12 XL12\"` property.\n *\n * ### ES6 Module Import\n *\n * - import @ui5/webcomponents/dist/Form.js\";\n * - import @ui5/webcomponents/dist/FormGroup.js\";\n * - import @ui5/webcomponents/dist/FormItem.js\";\n *\n * @csspart header - Used to style the wrapper of the header.\n * @csspart layout - Used to style the element defining the form column layout.\n * @csspart column - Used to style a single column of the form column layout.\n *\n * @public\n * @since 2.0.0\n * @experimental This component is availabe since 2.0 under an experimental flag and its API and behaviour are subject to change.\n * @extends UI5Element\n */\n@customElement({\n\ttag: \"ui5-form\",\n\trenderer: litRender,\n\tstyles: FormCss,\n\ttemplate: FormTemplate,\n\tdependencies: [Title],\n})\nclass Form extends UI5Element {\n\t/**\n\t * Defines the number of columns to distribute the form content by breakpoint.\n\t *\n\t * Supported values:\n\t * - `S` - 1 column by default (1 column is recommended)\n\t * - `M` - 1 column by default (up to 2 columns are recommended)\n\t * - `L` - 2 columns by default (up to 3 columns are recommended)\n\t * - `XL` - 2 columns by default (up to 6 columns are recommended)\n\t *\n\t * @default \"S1 M1 L2 XL2\"\n\t * @public\n\t */\n\t@property()\n\tlayout = \"S1 M1 L2 XL2\"\n\n\t/**\n\t * Defines the width proportion of the labels and fields of a FormItem by breakpoint.\n\t *\n\t * By default, the labels take 4/12 (or 1/3) of the form item in M,L and XL sizes,\n\t * and 12/12 in S size, e.g in S the label is on top of its associated field.\n\t *\n\t * The supported values are between 1 and 12. Greater the number, more space the label will use.\n\t *\n\t * **Note:** If \"12\" is set, the label will be displayed on top of its assosiated field.\n\t * @default \"S12 M4 L4 XL4\"\n\t * @public\n\t */\n\t@property()\n\tlabelSpan = \"S12 M4 L4 XL4\";\n\n\t/**\n\t * Defines the header text of the component.\n\t *\n\t * **Note:** The property gets overridden by the `header` slot.\n\t *\n\t * @default undefined\n\t * @public\n\t */\n\t@property()\n\theaderText?: string;\n\n\t/**\n\t * Defines the vertical spacing between form items.\n\t *\n\t * **Note:** If the Form is meant to be switched between \"non-edit\" and \"edit\" modes,\n\t * we recommend using \"Large\" item spacing in \"non-edit\" mode, and \"Normal\" - for \"edit\" mode,\n\t * to avoid \"jumping\" effect, caused by the hight difference between texts in \"non-edit\" mode and the input fields in \"edit\" mode.\n\t *\n\t * @default \"Normal\"\n\t * @public\n\t */\n\t@property()\n\titemSpacing: `${FormItemSpacing}` = \"Normal\";\n\n\t/**\n\t * Defines the component header area.\n\t *\n\t * **Note:** When a `header` is provided, the `headerText` property is ignored.\n\t * @public\n\t */\n\t@slot({ type: HTMLElement })\n\theader!: Array<HTMLElement>;\n\n\t/**\n\t * Defines the component content - FormGroups or FormItems.\n\t *\n\t * **Note:** Mixing FormGroups and standalone FormItems (not belonging to a group) is not supported.\n\t * Either use FormGroups and make sure all FormItems are part of a FormGroup, or use just FormItems without any FormGroups.\n\t * @public\n\t */\n\t@slot({\n\t\ttype: HTMLElement,\n\t\t\"default\": true,\n\t\tindividualSlots: true,\n\t\tinvalidateOnChildChange: true,\n\t})\n\titems!: Array<IFormItem>;\n\n\t/**\n\t * @private\n\t */\n\t@property({ type: Number })\n\tcolumnsS = 1;\n\t@property({ type: Number })\n\tlabelSpanS = 12\n\n\t@property({ type: Number })\n\tcolumnsM = 1;\n\t@property({ type: Number })\n\tlabelSpanM = 4;\n\n\t@property({ type: Number })\n\tcolumnsL = 2;\n\t@property({ type: Number })\n\tlabelSpanL = 4;\n\n\t@property({ type: Number })\n\tcolumnsXl = 2;\n\t@property({ type: Number })\n\tlabelSpanXl = 4;\n\n\tonBeforeRendering() {\n\t\t// Parse the layout and set it to the FormGroups/FormItems.\n\t\tthis.setColumnLayout();\n\n\t\t// Parse the labelSpan and set it to the FormGroups/FormItems.\n\t\tthis.setLabelSpan();\n\n\t\t// Define how many columns a group should take.\n\t\tthis.setGroupsColSpan();\n\t}\n\n\tonAfterRendering() {\n\t\t// Create additional CSS for number of columns that are not supported by default.\n\t\tthis.createAdditionalCSSStyleSheet();\n\t}\n\n\tsetColumnLayout() {\n\t\tconst layoutArr = this.layout.split(\" \");\n\t\tlayoutArr.forEach((breakpoint: string) => {\n\t\t\tif (breakpoint.startsWith(\"S\")) {\n\t\t\t\tthis.columnsS = parseInt(breakpoint.slice(1));\n\t\t\t} else if (breakpoint.startsWith(\"M\")) {\n\t\t\t\tthis.columnsM = parseInt(breakpoint.slice(1));\n\t\t\t} else if (breakpoint.startsWith(\"L\")) {\n\t\t\t\tthis.columnsL = parseInt(breakpoint.slice(1));\n\t\t\t} else if (breakpoint.startsWith(\"XL\")) {\n\t\t\t\tthis.columnsXl = parseInt(breakpoint.slice(2));\n\t\t\t}\n\t\t});\n\t}\n\n\tsetLabelSpan() {\n\t\tthis.labelSpan.split(\" \").forEach((breakpoint: string) => {\n\t\t\tif (breakpoint.startsWith(\"S\")) {\n\t\t\t\tthis.labelSpanS = parseInt(breakpoint.slice(1));\n\t\t\t} else if (breakpoint.startsWith(\"M\")) {\n\t\t\t\tthis.labelSpanM = parseInt(breakpoint.slice(1));\n\t\t\t} else if (breakpoint.startsWith(\"L\")) {\n\t\t\t\tthis.labelSpanL = parseInt(breakpoint.slice(1));\n\t\t\t} else if (breakpoint.startsWith(\"XL\")) {\n\t\t\t\tthis.labelSpanXl = parseInt(breakpoint.slice(2));\n\t\t\t}\n\t\t});\n\n\t\tthis.items.forEach((item: IFormItem) => {\n\t\t\titem.labelSpan = this.labelSpan;\n\t\t\titem.itemSpacing = this.itemSpacing;\n\t\t});\n\t}\n\n\tsetGroupsColSpan() {\n\t\tif (!this.hasGroupItems) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst itemsCount = this.items.length;\n\t\tconst sortedItems = [...this.items].sort((itemA: IFormItem, itemB: IFormItem) => {\n\t\t\treturn (itemB as FormGroup)?.items.length - (itemA as FormGroup)?.items.length;\n\t\t});\n\n\t\tsortedItems.forEach((item: IFormItem, idx: number) => {\n\t\t\titem.colsXl = this.getGroupsColSpan(this.columnsXl, itemsCount, idx, item);\n\t\t\titem.colsL = this.getGroupsColSpan(this.columnsL, itemsCount, idx, item);\n\t\t\titem.colsM = this.getGroupsColSpan(this.columnsM, itemsCount, idx, item);\n\t\t\titem.colsS = this.getGroupsColSpan(this.columnsS, itemsCount, idx, item);\n\t\t});\n\t}\n\n\tgetGroupsColSpan(cols: number, groups: number, index: number, group: IFormItem): number {\n\t\t// Case 0: column span is set from outside.\n\t\tif (group.columnSpan) {\n\t\t\treturn group.columnSpan;\n\t\t}\n\n\t\t// CASE 1: The number of available columns match the number of groups, or only 1 column is available - each group takes 1 column.\n\t\t// For example: 1 column - 1 group, 2 columns - 2 groups, 3 columns - 3 groups, 4columns - 4 groups\n\t\tif (cols === 1 || cols <= groups) {\n\t\t\treturn 1;\n\t\t}\n\n\t\t// CASE 2: The number of available columns IS multiple of the number of groups.\n\t\t// For example: 2 column - 1 group, 3 columns - 1 groups, 4 columns - 1 group, 4 columns - 2 groups\n\t\tif (cols % groups === 0) {\n\t\t\treturn cols / groups;\n\t\t}\n\n\t\t// CASE 3: The number of available columns IS NOT multiple of the number of groups.\n\t\tconst MIN_COL_SPAN = 1;\n\t\tconst delta = cols - groups;\n\n\t\t// 7 cols & 4 groups => 2, 2, 2, 1\n\t\tif (delta <= groups) {\n\t\t\treturn index < delta ? MIN_COL_SPAN + 1 : MIN_COL_SPAN;\n\t\t}\n\n\t\t// 7 cols & 3 groups => 3, 2, 2\n\t\treturn index === 0 ? MIN_COL_SPAN + (delta - groups) + 1 : MIN_COL_SPAN + 1;\n\t}\n\n\tget hasGroupItems(): boolean {\n\t\treturn this.items.some((item: IFormItem) => item.isGroup);\n\t}\n\n\tget hasHeader(): boolean {\n\t\treturn this.hasCustomHeader || !!this.headerText;\n\t}\n\n\tget hasCustomHeader(): boolean {\n\t\treturn !!this.header.length;\n\t}\n\n\tget ariaLabelledByID(): string | undefined {\n\t\treturn this.hasCustomHeader ? undefined : `${this._id}-header-text`;\n\t}\n\n\tget groupItemsInfo(): Array<GroupItemsInfo> {\n\t\treturn this.items.map((groupItem: IFormItem) => {\n\t\t\treturn {\n\t\t\t\tgroupItem,\n\t\t\t\tclasses: `ui5-form-column-spanL-${groupItem.colsL} ui5-form-column-spanXL-${groupItem.colsXl} ui5-form-column-spanM-${groupItem.colsM} ui5-form-column-spanS-${groupItem.colsS}`,\n\t\t\t\titems: this.getItemsInfo((Array.from(groupItem.children) as Array<IFormItem>)),\n\t\t\t};\n\t\t});\n\t}\n\n\tget itemsInfo(): Array<ItemsInfo> {\n\t\treturn this.getItemsInfo();\n\t}\n\n\tgetItemsInfo(items?: Array<IFormItem>): Array<ItemsInfo> {\n\t\treturn (items || this.items).map((item: IFormItem) => {\n\t\t\treturn {\n\t\t\t\titem,\n\t\t\t\tclasses: item.columnSpan ? `ui5-form-item-span-${item.columnSpan}` : \"\",\n\t\t\t};\n\t\t});\n\t}\n\n\tcreateAdditionalCSSStyleSheet() {\n\t\t[\n\t\t\t{ breakpoint: \"S\", columns: this.columnsS },\n\t\t\t{ breakpoint: \"M\", columns: this.columnsM },\n\t\t\t{ breakpoint: \"L\", columns: this.columnsL },\n\t\t\t{ breakpoint: \"XL\", columns: this.columnsXl },\n\t\t].forEach(step => {\n\t\t\tconst additionalStyle: string | undefined = this.getAdditionalCSS(step.breakpoint, step.columns);\n\n\t\t\tif (additionalStyle) {\n\t\t\t\tthis.shadowRoot!.adoptedStyleSheets = [...this.shadowRoot!.adoptedStyleSheets, this.getCSSStyleSheet(additionalStyle)];\n\t\t\t}\n\t\t});\n\t}\n\n\tgetAdditionalCSS(step: string, colsNumber: number): string | undefined {\n\t\tif (StepColumn[step as keyof typeof StepColumn] >= colsNumber) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst key = `${step}-${colsNumber}`;\n\n\t\tif (!additionalStylesMap.has(key)) {\n\t\t\tlet containerQuery;\n\t\t\tlet supporedColumnsNumber = StepColumn.S;\n\t\t\tlet stepSpanCSS = \"\";\n\t\t\tlet cols = colsNumber;\n\n\t\t\tif (step === \"S\") {\n\t\t\t\tsupporedColumnsNumber = StepColumn.S;\n\t\t\t\tcontainerQuery = `@container (max-width: 599px) {`;\n\t\t\t} else if (step === \"M\") {\n\t\t\t\tsupporedColumnsNumber = StepColumn.M;\n\t\t\t\tcontainerQuery = `@container (width > 599px) and (width < 1024px) {`;\n\t\t\t} else if (step === \"L\") {\n\t\t\t\tsupporedColumnsNumber = StepColumn.L;\n\t\t\t\tcontainerQuery = `@container (width > 1023px) and (width < 1439px) {`;\n\t\t\t} else if (step === \"XL\") {\n\t\t\t\tcontainerQuery = `@container (min-width: 1440px) {`;\n\t\t\t\tsupporedColumnsNumber = StepColumn.XL;\n\t\t\t}\n\n\t\t\twhile (cols > supporedColumnsNumber) {\n\t\t\t\tstepSpanCSS += `\n\t\t\t\t:host([columns-${step.toLocaleLowerCase()}=\"${cols}\"]) .ui5-form-layout {\n\t\t\t\t\tgrid-template-columns: repeat(${cols}, 1fr);\n\t\t\t\t}\n\n\t\t\t\t.ui5-form-column-span${step}-${cols},\n\t\t\t\t.ui5-form-item-span-${cols} {\n\t\t\t\t\tgrid-column: span ${cols};\n\t\t\t\t}\n\n\t\t\t\t.ui5-form-column-span${step}-${cols} .ui5-form-group-layout {\n\t\t\t\t\tgrid-template-columns: repeat(${cols}, 1fr);\n\t\t\t\t}\n\t\t\t\t`;\n\t\t\t\tcols--;\n\t\t\t}\n\n\t\t\tconst css = `${containerQuery}${stepSpanCSS}}`;\n\t\t\tadditionalStylesMap.set(key, css);\n\t\t}\n\n\t\treturn additionalStylesMap.get(key)!;\n\t}\n\n\tgetCSSStyleSheet(cssText: string): CSSStyleSheet {\n\t\tconst style = new CSSStyleSheet();\n\t\tstyle.replaceSync(cssText);\n\t\treturn style;\n\t}\n}\n\nForm.define();\n\nexport default Form;\nexport {\n\tIFormItem,\n};\n"]}
|
package/dist/MultiComboBox.js
CHANGED
|
@@ -1305,7 +1305,7 @@ let MultiComboBox = MultiComboBox_1 = class MultiComboBox extends UI5Element {
|
|
|
1305
1305
|
if (!this._tokenizer) {
|
|
1306
1306
|
return;
|
|
1307
1307
|
}
|
|
1308
|
-
return getTokensCountText(this.
|
|
1308
|
+
return getTokensCountText(this.selectedValues.length);
|
|
1309
1309
|
}
|
|
1310
1310
|
get _tokensCountTextId() {
|
|
1311
1311
|
return "ui5-multi-combobox-hiddenText-nMore";
|