@ui5/webcomponents 2.13.0-rc.0 → 2.13.0-rc.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +23 -0
- package/dist/.tsbuildinfo +1 -1
- package/dist/ComboBox.d.ts +23 -6
- package/dist/ComboBox.js +128 -54
- package/dist/ComboBox.js.map +1 -1
- package/dist/ComboBoxPopoverTemplate.js +0 -1
- package/dist/ComboBoxPopoverTemplate.js.map +1 -1
- package/dist/ComboBoxTemplate.js +2 -1
- package/dist/ComboBoxTemplate.js.map +1 -1
- package/dist/FileUploader.d.ts +52 -13
- package/dist/FileUploader.js +165 -48
- package/dist/FileUploader.js.map +1 -1
- package/dist/FileUploaderPopoverTemplate.js +1 -3
- package/dist/FileUploaderPopoverTemplate.js.map +1 -1
- package/dist/FileUploaderTemplate.js +5 -4
- package/dist/FileUploaderTemplate.js.map +1 -1
- package/dist/Input.d.ts +19 -5
- package/dist/Input.js +115 -17
- package/dist/Input.js.map +1 -1
- package/dist/InputTemplate.js +2 -1
- package/dist/InputTemplate.js.map +1 -1
- package/dist/ListItemStandard.d.ts +12 -8
- package/dist/ListItemStandard.js +3 -8
- package/dist/ListItemStandard.js.map +1 -1
- package/dist/MultiComboBox.d.ts +20 -1
- package/dist/MultiComboBox.js +120 -20
- package/dist/MultiComboBox.js.map +1 -1
- package/dist/MultiComboBoxPopoverTemplate.js +1 -1
- package/dist/MultiComboBoxPopoverTemplate.js.map +1 -1
- package/dist/MultiComboBoxTemplate.js +2 -1
- package/dist/MultiComboBoxTemplate.js.map +1 -1
- package/dist/MultiInput.js +1 -1
- package/dist/MultiInput.js.map +1 -1
- package/dist/SplitButtonTemplate.js +1 -1
- package/dist/SplitButtonTemplate.js.map +1 -1
- package/dist/Tokenizer.js +4 -0
- package/dist/Tokenizer.js.map +1 -1
- package/dist/TokenizerPopoverTemplate.js +1 -1
- package/dist/TokenizerPopoverTemplate.js.map +1 -1
- package/dist/css/themes/Avatar.css +1 -1
- package/dist/css/themes/AvatarGroup.css +1 -1
- package/dist/css/themes/Bar.css +1 -1
- package/dist/css/themes/Breadcrumbs.css +1 -1
- package/dist/css/themes/BusyIndicator.css +1 -1
- package/dist/css/themes/Button.css +1 -1
- package/dist/css/themes/ButtonBadge.css +1 -1
- package/dist/css/themes/Calendar.css +1 -1
- package/dist/css/themes/CalendarHeader.css +1 -1
- package/dist/css/themes/CalendarLegend.css +1 -1
- package/dist/css/themes/CalendarLegendItem.css +1 -1
- package/dist/css/themes/Card.css +1 -1
- package/dist/css/themes/CardHeader.css +1 -1
- package/dist/css/themes/Carousel.css +1 -1
- package/dist/css/themes/CheckBox.css +1 -1
- package/dist/css/themes/ColorPalette.css +1 -1
- package/dist/css/themes/ColorPaletteItem.css +1 -1
- package/dist/css/themes/ColorPalettePopover.css +1 -1
- package/dist/css/themes/ColorPicker.css +1 -1
- package/dist/css/themes/ComboBox.css +1 -1
- package/dist/css/themes/ComboBoxItem.css +1 -1
- package/dist/css/themes/DatePicker.css +1 -1
- package/dist/css/themes/DateTimePickerPopover.css +1 -1
- package/dist/css/themes/DayPicker.css +1 -1
- package/dist/css/themes/Dialog.css +1 -1
- package/dist/css/themes/DynamicDateRange.css +1 -1
- package/dist/css/themes/DynamicDateRangePopover.css +1 -1
- package/dist/css/themes/FileUploader.css +1 -1
- package/dist/css/themes/Form.css +1 -1
- package/dist/css/themes/FormItem.css +1 -1
- package/dist/css/themes/FormItemSpan.css +1 -1
- package/dist/css/themes/GrowingButton.css +1 -1
- package/dist/css/themes/Icon.css +1 -1
- package/dist/css/themes/Input.css +1 -1
- package/dist/css/themes/InputIcon.css +1 -1
- package/dist/css/themes/InputSharedStyles.css +1 -1
- package/dist/css/themes/Link.css +1 -1
- package/dist/css/themes/List.css +1 -1
- package/dist/css/themes/ListItem.css +1 -1
- package/dist/css/themes/ListItemBase.css +1 -1
- package/dist/css/themes/ListItemCustom.css +1 -1
- package/dist/css/themes/ListItemGroup.css +1 -1
- package/dist/css/themes/ListItemGroupHeader.css +1 -1
- package/dist/css/themes/ListItemIcon.css +1 -1
- package/dist/css/themes/Menu.css +1 -1
- package/dist/css/themes/MenuItem.css +1 -1
- package/dist/css/themes/MessageStrip.css +1 -1
- package/dist/css/themes/MonthPicker.css +1 -1
- package/dist/css/themes/MultiComboBox.css +1 -1
- package/dist/css/themes/MultiComboBoxItem.css +1 -1
- package/dist/css/themes/MultiComboBoxPopover.css +1 -1
- package/dist/css/themes/MultiInput.css +1 -1
- package/dist/css/themes/OptionBase.css +1 -1
- package/dist/css/themes/Panel.css +1 -1
- package/dist/css/themes/Popover.css +1 -1
- package/dist/css/themes/PopupsCommon.css +1 -1
- package/dist/css/themes/ProgressIndicator.css +1 -1
- package/dist/css/themes/RadioButton.css +1 -1
- package/dist/css/themes/RangeSlider.css +1 -1
- package/dist/css/themes/RatingIndicator.css +1 -1
- package/dist/css/themes/ResponsivePopover.css +1 -1
- package/dist/css/themes/ResponsivePopoverCommon.css +1 -1
- package/dist/css/themes/SegmentedButton.css +1 -1
- package/dist/css/themes/SegmentedButtonItem.css +1 -1
- package/dist/css/themes/Select.css +1 -1
- package/dist/css/themes/SliderBase.css +1 -1
- package/dist/css/themes/SplitButton.css +1 -1
- package/dist/css/themes/StepInput.css +1 -1
- package/dist/css/themes/SuggestionItem.css +1 -1
- package/dist/css/themes/SuggestionItemCustom.css +1 -1
- package/dist/css/themes/Switch.css +1 -1
- package/dist/css/themes/TabContainer.css +1 -1
- package/dist/css/themes/TabInOverflow.css +1 -1
- package/dist/css/themes/TabInStrip.css +1 -1
- package/dist/css/themes/TabSemanticIcon.css +1 -1
- package/dist/css/themes/TabSeparatorInOverflow.css +1 -1
- package/dist/css/themes/TableCellBase.css +1 -1
- package/dist/css/themes/TableHeaderRow.css +1 -1
- package/dist/css/themes/TableRow.css +1 -1
- package/dist/css/themes/TableRowActionBase.css +1 -1
- package/dist/css/themes/TableRowBase.css +1 -1
- package/dist/css/themes/Tag.css +1 -1
- package/dist/css/themes/Text.css +1 -1
- package/dist/css/themes/TextArea.css +1 -1
- package/dist/css/themes/TimePicker.css +1 -1
- package/dist/css/themes/Toast.css +1 -1
- package/dist/css/themes/ToggleButton.css +1 -1
- package/dist/css/themes/Token.css +1 -1
- package/dist/css/themes/Tokenizer.css +1 -1
- package/dist/css/themes/TokenizerPopover.css +1 -1
- package/dist/css/themes/Toolbar.css +1 -1
- package/dist/css/themes/ToolbarPopover.css +1 -1
- package/dist/css/themes/ToolbarSeparator.css +1 -1
- package/dist/css/themes/TreeItem.css +1 -1
- package/dist/css/themes/ValueStateMessage.css +1 -1
- package/dist/css/themes/ValueStateVariables.css +1 -0
- package/dist/css/themes/YearPicker.css +1 -1
- package/dist/css/themes/YearRangePicker.css +1 -1
- package/dist/css/themes/sap_fiori_3/parameters-bundle.css +1 -1
- package/dist/css/themes/sap_fiori_3_dark/parameters-bundle.css +1 -1
- package/dist/css/themes/sap_fiori_3_hcb/parameters-bundle.css +1 -1
- package/dist/css/themes/sap_fiori_3_hcw/parameters-bundle.css +1 -1
- package/dist/css/themes/sap_horizon/parameters-bundle.css +1 -1
- package/dist/css/themes/sap_horizon_dark/parameters-bundle.css +1 -1
- package/dist/css/themes/sap_horizon_hcb/parameters-bundle.css +1 -1
- package/dist/css/themes/sap_horizon_hcw/parameters-bundle.css +1 -1
- package/dist/custom-elements-internal.json +67 -9
- package/dist/custom-elements.json +65 -8
- package/dist/features/InputSuggestions.d.ts +0 -3
- package/dist/features/InputSuggestions.js +4 -50
- package/dist/features/InputSuggestions.js.map +1 -1
- package/dist/features/InputSuggestionsTemplate.js +0 -1
- package/dist/features/InputSuggestionsTemplate.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_hcb/parameters-bundle.css.json +1 -1
- package/dist/generated/assets/themes/sap_horizon_hcw/parameters-bundle.css.json +1 -1
- package/dist/generated/i18n/i18n-defaults.d.ts +11 -3
- package/dist/generated/i18n/i18n-defaults.js +11 -3
- package/dist/generated/i18n/i18n-defaults.js.map +1 -1
- package/dist/generated/themes/Avatar.css.d.ts +1 -1
- package/dist/generated/themes/Avatar.css.js +1 -1
- package/dist/generated/themes/Avatar.css.js.map +1 -1
- package/dist/generated/themes/AvatarGroup.css.d.ts +1 -1
- package/dist/generated/themes/AvatarGroup.css.js +1 -1
- package/dist/generated/themes/AvatarGroup.css.js.map +1 -1
- package/dist/generated/themes/Bar.css.d.ts +1 -1
- package/dist/generated/themes/Bar.css.js +1 -1
- package/dist/generated/themes/Bar.css.js.map +1 -1
- package/dist/generated/themes/Breadcrumbs.css.d.ts +1 -1
- package/dist/generated/themes/Breadcrumbs.css.js +1 -1
- package/dist/generated/themes/Breadcrumbs.css.js.map +1 -1
- package/dist/generated/themes/BusyIndicator.css.d.ts +1 -1
- package/dist/generated/themes/BusyIndicator.css.js +1 -1
- package/dist/generated/themes/BusyIndicator.css.js.map +1 -1
- package/dist/generated/themes/Button.css.d.ts +1 -1
- package/dist/generated/themes/Button.css.js +1 -1
- package/dist/generated/themes/Button.css.js.map +1 -1
- package/dist/generated/themes/ButtonBadge.css.d.ts +1 -1
- package/dist/generated/themes/ButtonBadge.css.js +1 -1
- package/dist/generated/themes/ButtonBadge.css.js.map +1 -1
- package/dist/generated/themes/Calendar.css.d.ts +1 -1
- package/dist/generated/themes/Calendar.css.js +1 -1
- package/dist/generated/themes/Calendar.css.js.map +1 -1
- package/dist/generated/themes/CalendarHeader.css.d.ts +1 -1
- package/dist/generated/themes/CalendarHeader.css.js +1 -1
- package/dist/generated/themes/CalendarHeader.css.js.map +1 -1
- package/dist/generated/themes/CalendarLegend.css.d.ts +1 -1
- package/dist/generated/themes/CalendarLegend.css.js +1 -1
- package/dist/generated/themes/CalendarLegend.css.js.map +1 -1
- package/dist/generated/themes/CalendarLegendItem.css.d.ts +1 -1
- package/dist/generated/themes/CalendarLegendItem.css.js +1 -1
- package/dist/generated/themes/CalendarLegendItem.css.js.map +1 -1
- package/dist/generated/themes/Card.css.d.ts +1 -1
- package/dist/generated/themes/Card.css.js +1 -1
- package/dist/generated/themes/Card.css.js.map +1 -1
- package/dist/generated/themes/CardHeader.css.d.ts +1 -1
- package/dist/generated/themes/CardHeader.css.js +1 -1
- package/dist/generated/themes/CardHeader.css.js.map +1 -1
- package/dist/generated/themes/Carousel.css.d.ts +1 -1
- package/dist/generated/themes/Carousel.css.js +1 -1
- package/dist/generated/themes/Carousel.css.js.map +1 -1
- package/dist/generated/themes/CheckBox.css.d.ts +1 -1
- package/dist/generated/themes/CheckBox.css.js +1 -1
- package/dist/generated/themes/CheckBox.css.js.map +1 -1
- package/dist/generated/themes/ColorPalette.css.d.ts +1 -1
- package/dist/generated/themes/ColorPalette.css.js +1 -1
- package/dist/generated/themes/ColorPalette.css.js.map +1 -1
- package/dist/generated/themes/ColorPaletteItem.css.d.ts +1 -1
- package/dist/generated/themes/ColorPaletteItem.css.js +1 -1
- package/dist/generated/themes/ColorPaletteItem.css.js.map +1 -1
- package/dist/generated/themes/ColorPalettePopover.css.d.ts +1 -1
- package/dist/generated/themes/ColorPalettePopover.css.js +1 -1
- package/dist/generated/themes/ColorPalettePopover.css.js.map +1 -1
- package/dist/generated/themes/ColorPicker.css.d.ts +1 -1
- package/dist/generated/themes/ColorPicker.css.js +1 -1
- package/dist/generated/themes/ColorPicker.css.js.map +1 -1
- package/dist/generated/themes/ComboBox.css.d.ts +1 -1
- package/dist/generated/themes/ComboBox.css.js +1 -1
- package/dist/generated/themes/ComboBox.css.js.map +1 -1
- package/dist/generated/themes/ComboBoxItem.css.d.ts +1 -1
- package/dist/generated/themes/ComboBoxItem.css.js +1 -1
- package/dist/generated/themes/ComboBoxItem.css.js.map +1 -1
- package/dist/generated/themes/DatePicker.css.d.ts +1 -1
- package/dist/generated/themes/DatePicker.css.js +1 -1
- package/dist/generated/themes/DatePicker.css.js.map +1 -1
- package/dist/generated/themes/DateTimePickerPopover.css.d.ts +1 -1
- package/dist/generated/themes/DateTimePickerPopover.css.js +1 -1
- package/dist/generated/themes/DateTimePickerPopover.css.js.map +1 -1
- package/dist/generated/themes/DayPicker.css.d.ts +1 -1
- package/dist/generated/themes/DayPicker.css.js +1 -1
- package/dist/generated/themes/DayPicker.css.js.map +1 -1
- package/dist/generated/themes/Dialog.css.d.ts +1 -1
- package/dist/generated/themes/Dialog.css.js +1 -1
- package/dist/generated/themes/Dialog.css.js.map +1 -1
- package/dist/generated/themes/DynamicDateRange.css.d.ts +1 -1
- package/dist/generated/themes/DynamicDateRange.css.js +1 -1
- package/dist/generated/themes/DynamicDateRange.css.js.map +1 -1
- package/dist/generated/themes/DynamicDateRangePopover.css.d.ts +1 -1
- package/dist/generated/themes/DynamicDateRangePopover.css.js +1 -1
- package/dist/generated/themes/DynamicDateRangePopover.css.js.map +1 -1
- package/dist/generated/themes/FileUploader.css.d.ts +1 -1
- package/dist/generated/themes/FileUploader.css.js +1 -1
- package/dist/generated/themes/FileUploader.css.js.map +1 -1
- package/dist/generated/themes/Form.css.d.ts +1 -1
- package/dist/generated/themes/Form.css.js +1 -1
- package/dist/generated/themes/Form.css.js.map +1 -1
- package/dist/generated/themes/FormItem.css.d.ts +1 -1
- package/dist/generated/themes/FormItem.css.js +1 -1
- package/dist/generated/themes/FormItem.css.js.map +1 -1
- package/dist/generated/themes/FormItemSpan.css.d.ts +1 -1
- package/dist/generated/themes/FormItemSpan.css.js +1 -1
- package/dist/generated/themes/FormItemSpan.css.js.map +1 -1
- package/dist/generated/themes/GrowingButton.css.d.ts +1 -1
- package/dist/generated/themes/GrowingButton.css.js +1 -1
- package/dist/generated/themes/GrowingButton.css.js.map +1 -1
- package/dist/generated/themes/Icon.css.d.ts +1 -1
- package/dist/generated/themes/Icon.css.js +1 -1
- package/dist/generated/themes/Icon.css.js.map +1 -1
- package/dist/generated/themes/Input.css.d.ts +1 -1
- package/dist/generated/themes/Input.css.js +1 -1
- package/dist/generated/themes/Input.css.js.map +1 -1
- package/dist/generated/themes/InputIcon.css.d.ts +1 -1
- package/dist/generated/themes/InputIcon.css.js +1 -1
- package/dist/generated/themes/InputIcon.css.js.map +1 -1
- package/dist/generated/themes/InputSharedStyles.css.d.ts +1 -1
- package/dist/generated/themes/InputSharedStyles.css.js +1 -1
- package/dist/generated/themes/InputSharedStyles.css.js.map +1 -1
- package/dist/generated/themes/Link.css.d.ts +1 -1
- package/dist/generated/themes/Link.css.js +1 -1
- package/dist/generated/themes/Link.css.js.map +1 -1
- package/dist/generated/themes/List.css.d.ts +1 -1
- package/dist/generated/themes/List.css.js +1 -1
- package/dist/generated/themes/List.css.js.map +1 -1
- package/dist/generated/themes/ListItem.css.d.ts +1 -1
- package/dist/generated/themes/ListItem.css.js +1 -1
- package/dist/generated/themes/ListItem.css.js.map +1 -1
- package/dist/generated/themes/ListItemBase.css.d.ts +1 -1
- package/dist/generated/themes/ListItemBase.css.js +1 -1
- package/dist/generated/themes/ListItemBase.css.js.map +1 -1
- package/dist/generated/themes/ListItemCustom.css.d.ts +1 -1
- package/dist/generated/themes/ListItemCustom.css.js +1 -1
- package/dist/generated/themes/ListItemCustom.css.js.map +1 -1
- package/dist/generated/themes/ListItemGroup.css.d.ts +1 -1
- package/dist/generated/themes/ListItemGroup.css.js +1 -1
- package/dist/generated/themes/ListItemGroup.css.js.map +1 -1
- package/dist/generated/themes/ListItemGroupHeader.css.d.ts +1 -1
- package/dist/generated/themes/ListItemGroupHeader.css.js +1 -1
- package/dist/generated/themes/ListItemGroupHeader.css.js.map +1 -1
- package/dist/generated/themes/ListItemIcon.css.d.ts +1 -1
- package/dist/generated/themes/ListItemIcon.css.js +1 -1
- package/dist/generated/themes/ListItemIcon.css.js.map +1 -1
- package/dist/generated/themes/Menu.css.d.ts +1 -1
- package/dist/generated/themes/Menu.css.js +1 -1
- package/dist/generated/themes/Menu.css.js.map +1 -1
- package/dist/generated/themes/MenuItem.css.d.ts +1 -1
- package/dist/generated/themes/MenuItem.css.js +1 -1
- package/dist/generated/themes/MenuItem.css.js.map +1 -1
- package/dist/generated/themes/MessageStrip.css.d.ts +1 -1
- package/dist/generated/themes/MessageStrip.css.js +1 -1
- package/dist/generated/themes/MessageStrip.css.js.map +1 -1
- package/dist/generated/themes/MonthPicker.css.d.ts +1 -1
- package/dist/generated/themes/MonthPicker.css.js +1 -1
- package/dist/generated/themes/MonthPicker.css.js.map +1 -1
- package/dist/generated/themes/MultiComboBox.css.d.ts +1 -1
- package/dist/generated/themes/MultiComboBox.css.js +1 -1
- package/dist/generated/themes/MultiComboBox.css.js.map +1 -1
- package/dist/generated/themes/MultiComboBoxItem.css.d.ts +1 -1
- package/dist/generated/themes/MultiComboBoxItem.css.js +1 -1
- package/dist/generated/themes/MultiComboBoxItem.css.js.map +1 -1
- package/dist/generated/themes/MultiComboBoxPopover.css.d.ts +1 -1
- package/dist/generated/themes/MultiComboBoxPopover.css.js +1 -1
- package/dist/generated/themes/MultiComboBoxPopover.css.js.map +1 -1
- package/dist/generated/themes/MultiInput.css.d.ts +1 -1
- package/dist/generated/themes/MultiInput.css.js +1 -1
- package/dist/generated/themes/MultiInput.css.js.map +1 -1
- package/dist/generated/themes/OptionBase.css.d.ts +1 -1
- package/dist/generated/themes/OptionBase.css.js +1 -1
- package/dist/generated/themes/OptionBase.css.js.map +1 -1
- package/dist/generated/themes/Panel.css.d.ts +1 -1
- package/dist/generated/themes/Panel.css.js +1 -1
- package/dist/generated/themes/Panel.css.js.map +1 -1
- package/dist/generated/themes/Popover.css.d.ts +1 -1
- package/dist/generated/themes/Popover.css.js +1 -1
- package/dist/generated/themes/Popover.css.js.map +1 -1
- package/dist/generated/themes/PopupsCommon.css.d.ts +1 -1
- package/dist/generated/themes/PopupsCommon.css.js +1 -1
- package/dist/generated/themes/PopupsCommon.css.js.map +1 -1
- package/dist/generated/themes/ProgressIndicator.css.d.ts +1 -1
- package/dist/generated/themes/ProgressIndicator.css.js +1 -1
- package/dist/generated/themes/ProgressIndicator.css.js.map +1 -1
- package/dist/generated/themes/RadioButton.css.d.ts +1 -1
- package/dist/generated/themes/RadioButton.css.js +1 -1
- package/dist/generated/themes/RadioButton.css.js.map +1 -1
- package/dist/generated/themes/RangeSlider.css.d.ts +1 -1
- package/dist/generated/themes/RangeSlider.css.js +1 -1
- package/dist/generated/themes/RangeSlider.css.js.map +1 -1
- package/dist/generated/themes/RatingIndicator.css.d.ts +1 -1
- package/dist/generated/themes/RatingIndicator.css.js +1 -1
- package/dist/generated/themes/RatingIndicator.css.js.map +1 -1
- package/dist/generated/themes/ResponsivePopover.css.d.ts +1 -1
- package/dist/generated/themes/ResponsivePopover.css.js +1 -1
- package/dist/generated/themes/ResponsivePopover.css.js.map +1 -1
- package/dist/generated/themes/ResponsivePopoverCommon.css.d.ts +1 -1
- package/dist/generated/themes/ResponsivePopoverCommon.css.js +1 -1
- package/dist/generated/themes/ResponsivePopoverCommon.css.js.map +1 -1
- package/dist/generated/themes/SegmentedButton.css.d.ts +1 -1
- package/dist/generated/themes/SegmentedButton.css.js +1 -1
- package/dist/generated/themes/SegmentedButton.css.js.map +1 -1
- package/dist/generated/themes/SegmentedButtonItem.css.d.ts +1 -1
- package/dist/generated/themes/SegmentedButtonItem.css.js +1 -1
- package/dist/generated/themes/SegmentedButtonItem.css.js.map +1 -1
- package/dist/generated/themes/Select.css.d.ts +1 -1
- package/dist/generated/themes/Select.css.js +1 -1
- package/dist/generated/themes/Select.css.js.map +1 -1
- package/dist/generated/themes/SliderBase.css.d.ts +1 -1
- package/dist/generated/themes/SliderBase.css.js +1 -1
- package/dist/generated/themes/SliderBase.css.js.map +1 -1
- package/dist/generated/themes/SplitButton.css.d.ts +1 -1
- package/dist/generated/themes/SplitButton.css.js +1 -1
- package/dist/generated/themes/SplitButton.css.js.map +1 -1
- package/dist/generated/themes/StepInput.css.d.ts +1 -1
- package/dist/generated/themes/StepInput.css.js +1 -1
- package/dist/generated/themes/StepInput.css.js.map +1 -1
- package/dist/generated/themes/SuggestionItem.css.d.ts +1 -1
- package/dist/generated/themes/SuggestionItem.css.js +1 -1
- package/dist/generated/themes/SuggestionItem.css.js.map +1 -1
- package/dist/generated/themes/SuggestionItemCustom.css.d.ts +1 -1
- package/dist/generated/themes/SuggestionItemCustom.css.js +1 -1
- package/dist/generated/themes/SuggestionItemCustom.css.js.map +1 -1
- package/dist/generated/themes/Switch.css.d.ts +1 -1
- package/dist/generated/themes/Switch.css.js +1 -1
- package/dist/generated/themes/Switch.css.js.map +1 -1
- package/dist/generated/themes/TabContainer.css.d.ts +1 -1
- package/dist/generated/themes/TabContainer.css.js +1 -1
- package/dist/generated/themes/TabContainer.css.js.map +1 -1
- package/dist/generated/themes/TabInOverflow.css.d.ts +1 -1
- package/dist/generated/themes/TabInOverflow.css.js +1 -1
- package/dist/generated/themes/TabInOverflow.css.js.map +1 -1
- package/dist/generated/themes/TabInStrip.css.d.ts +1 -1
- package/dist/generated/themes/TabInStrip.css.js +1 -1
- package/dist/generated/themes/TabInStrip.css.js.map +1 -1
- package/dist/generated/themes/TabSemanticIcon.css.d.ts +1 -1
- package/dist/generated/themes/TabSemanticIcon.css.js +1 -1
- package/dist/generated/themes/TabSemanticIcon.css.js.map +1 -1
- package/dist/generated/themes/TabSeparatorInOverflow.css.d.ts +1 -1
- package/dist/generated/themes/TabSeparatorInOverflow.css.js +1 -1
- package/dist/generated/themes/TabSeparatorInOverflow.css.js.map +1 -1
- package/dist/generated/themes/TableCellBase.css.d.ts +1 -1
- package/dist/generated/themes/TableCellBase.css.js +1 -1
- package/dist/generated/themes/TableCellBase.css.js.map +1 -1
- package/dist/generated/themes/TableHeaderRow.css.d.ts +1 -1
- package/dist/generated/themes/TableHeaderRow.css.js +1 -1
- package/dist/generated/themes/TableHeaderRow.css.js.map +1 -1
- package/dist/generated/themes/TableRow.css.d.ts +1 -1
- package/dist/generated/themes/TableRow.css.js +1 -1
- package/dist/generated/themes/TableRow.css.js.map +1 -1
- package/dist/generated/themes/TableRowActionBase.css.d.ts +1 -1
- package/dist/generated/themes/TableRowActionBase.css.js +1 -1
- package/dist/generated/themes/TableRowActionBase.css.js.map +1 -1
- package/dist/generated/themes/TableRowBase.css.d.ts +1 -1
- package/dist/generated/themes/TableRowBase.css.js +1 -1
- package/dist/generated/themes/TableRowBase.css.js.map +1 -1
- package/dist/generated/themes/Tag.css.d.ts +1 -1
- package/dist/generated/themes/Tag.css.js +1 -1
- package/dist/generated/themes/Tag.css.js.map +1 -1
- package/dist/generated/themes/Text.css.d.ts +1 -1
- package/dist/generated/themes/Text.css.js +1 -1
- package/dist/generated/themes/Text.css.js.map +1 -1
- package/dist/generated/themes/TextArea.css.d.ts +1 -1
- package/dist/generated/themes/TextArea.css.js +1 -1
- package/dist/generated/themes/TextArea.css.js.map +1 -1
- package/dist/generated/themes/TimePicker.css.d.ts +1 -1
- package/dist/generated/themes/TimePicker.css.js +1 -1
- package/dist/generated/themes/TimePicker.css.js.map +1 -1
- package/dist/generated/themes/Toast.css.d.ts +1 -1
- package/dist/generated/themes/Toast.css.js +1 -1
- package/dist/generated/themes/Toast.css.js.map +1 -1
- package/dist/generated/themes/ToggleButton.css.d.ts +1 -1
- package/dist/generated/themes/ToggleButton.css.js +1 -1
- package/dist/generated/themes/ToggleButton.css.js.map +1 -1
- package/dist/generated/themes/Token.css.d.ts +1 -1
- package/dist/generated/themes/Token.css.js +1 -1
- package/dist/generated/themes/Token.css.js.map +1 -1
- package/dist/generated/themes/Tokenizer.css.d.ts +1 -1
- package/dist/generated/themes/Tokenizer.css.js +1 -1
- package/dist/generated/themes/Tokenizer.css.js.map +1 -1
- package/dist/generated/themes/TokenizerPopover.css.d.ts +1 -1
- package/dist/generated/themes/TokenizerPopover.css.js +1 -1
- package/dist/generated/themes/TokenizerPopover.css.js.map +1 -1
- package/dist/generated/themes/Toolbar.css.d.ts +1 -1
- package/dist/generated/themes/Toolbar.css.js +1 -1
- package/dist/generated/themes/Toolbar.css.js.map +1 -1
- package/dist/generated/themes/ToolbarPopover.css.d.ts +1 -1
- package/dist/generated/themes/ToolbarPopover.css.js +1 -1
- package/dist/generated/themes/ToolbarPopover.css.js.map +1 -1
- package/dist/generated/themes/ToolbarSeparator.css.d.ts +1 -1
- package/dist/generated/themes/ToolbarSeparator.css.js +1 -1
- package/dist/generated/themes/ToolbarSeparator.css.js.map +1 -1
- package/dist/generated/themes/TreeItem.css.d.ts +1 -1
- package/dist/generated/themes/TreeItem.css.js +1 -1
- package/dist/generated/themes/TreeItem.css.js.map +1 -1
- package/dist/generated/themes/ValueStateMessage.css.d.ts +1 -1
- package/dist/generated/themes/ValueStateMessage.css.js +1 -1
- package/dist/generated/themes/ValueStateMessage.css.js.map +1 -1
- package/dist/generated/themes/ValueStateVariables.css.d.ts +2 -0
- package/dist/generated/themes/ValueStateVariables.css.js +8 -0
- package/dist/generated/themes/ValueStateVariables.css.js.map +1 -0
- package/dist/generated/themes/YearPicker.css.d.ts +1 -1
- package/dist/generated/themes/YearPicker.css.js +1 -1
- package/dist/generated/themes/YearPicker.css.js.map +1 -1
- package/dist/generated/themes/YearRangePicker.css.d.ts +1 -1
- package/dist/generated/themes/YearRangePicker.css.js +1 -1
- package/dist/generated/themes/YearRangePicker.css.js.map +1 -1
- package/dist/generated/themes/sap_fiori_3/parameters-bundle.css.d.ts +1 -1
- package/dist/generated/themes/sap_fiori_3/parameters-bundle.css.js +1 -1
- package/dist/generated/themes/sap_fiori_3/parameters-bundle.css.js.map +1 -1
- package/dist/generated/themes/sap_fiori_3_dark/parameters-bundle.css.d.ts +1 -1
- package/dist/generated/themes/sap_fiori_3_dark/parameters-bundle.css.js +1 -1
- package/dist/generated/themes/sap_fiori_3_dark/parameters-bundle.css.js.map +1 -1
- package/dist/generated/themes/sap_fiori_3_hcb/parameters-bundle.css.d.ts +1 -1
- package/dist/generated/themes/sap_fiori_3_hcb/parameters-bundle.css.js +1 -1
- package/dist/generated/themes/sap_fiori_3_hcb/parameters-bundle.css.js.map +1 -1
- package/dist/generated/themes/sap_fiori_3_hcw/parameters-bundle.css.d.ts +1 -1
- package/dist/generated/themes/sap_fiori_3_hcw/parameters-bundle.css.js +1 -1
- package/dist/generated/themes/sap_fiori_3_hcw/parameters-bundle.css.js.map +1 -1
- package/dist/generated/themes/sap_horizon/parameters-bundle.css.d.ts +1 -1
- package/dist/generated/themes/sap_horizon/parameters-bundle.css.js +1 -1
- package/dist/generated/themes/sap_horizon/parameters-bundle.css.js.map +1 -1
- package/dist/generated/themes/sap_horizon_dark/parameters-bundle.css.d.ts +1 -1
- package/dist/generated/themes/sap_horizon_dark/parameters-bundle.css.js +1 -1
- package/dist/generated/themes/sap_horizon_dark/parameters-bundle.css.js.map +1 -1
- package/dist/generated/themes/sap_horizon_hcb/parameters-bundle.css.d.ts +1 -1
- package/dist/generated/themes/sap_horizon_hcb/parameters-bundle.css.js +1 -1
- package/dist/generated/themes/sap_horizon_hcb/parameters-bundle.css.js.map +1 -1
- package/dist/generated/themes/sap_horizon_hcw/parameters-bundle.css.d.ts +1 -1
- package/dist/generated/themes/sap_horizon_hcw/parameters-bundle.css.js +1 -1
- package/dist/generated/themes/sap_horizon_hcw/parameters-bundle.css.js.map +1 -1
- package/dist/vscode.html-custom-data.json +20 -5
- package/dist/web-types.json +38 -8
- package/package.json +9 -9
- package/src/ComboBoxPopoverTemplate.tsx +0 -1
- package/src/ComboBoxTemplate.tsx +4 -1
- package/src/FileUploaderPopoverTemplate.tsx +1 -3
- package/src/FileUploaderTemplate.tsx +77 -25
- package/src/InputTemplate.tsx +4 -0
- package/src/MultiComboBoxPopoverTemplate.tsx +1 -1
- package/src/MultiComboBoxTemplate.tsx +4 -0
- package/src/SplitButtonTemplate.tsx +1 -1
- package/src/TokenizerPopoverTemplate.tsx +1 -1
- package/src/features/InputSuggestionsTemplate.tsx +0 -1
- package/src/i18n/messagebundle.properties +28 -3
- package/src/themes/Button.css +2 -2
- package/src/themes/FileUploader.css +140 -32
- package/src/themes/ValueStateMessage.css +1 -1
- package/src/themes/ValueStateVariables.css +27 -0
- package/src/themes/base/FileUploader-parameters.css +2 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ListItemStandard.js","sourceRoot":"","sources":["../src/ListItemStandard.ts"],"names":[],"mappings":";;;;;;;AAAA,OAAO,aAAa,MAAM,0DAA0D,CAAC;AACrF,OAAO,WAAW,MAAM,sDAAsD,CAAC;AAC/E,OAAO,QAAQ,MAAM,qDAAqD,CAAC;AAC3E,OAAO,IAAI,MAAM,iDAAiD,CAAC;AAEnE,OAAO,QAAQ,MAAM,eAAe,CAAC;AAGrC,OAAO,wBAAwB,MAAM,+BAA+B,CAAC;AAGrE;;;GAGG;AACH,MAAM,qBAAqB,GAAG,GAAG,CAAC;AAElC;;;GAGG;AACH,MAAM,qBAAqB,GAAG,GAAG,CAAC;AAKlC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAMH,IAAM,gBAAgB,wBAAtB,MAAM,gBAAiB,SAAQ,QAAQ;IAAvC;;QAgCC;;;;;WAKG;QAEH,YAAO,GAAG,KAAK,CAAC;QAWhB;;;;;;;WAOG;QAEH,wBAAmB,GAAoB,MAAM,CAAC;QAE9C;;;;;WAKG;QAEH,YAAO,GAAG,KAAK,CAAC;QAYhB;;;;;;;;;;;;;;;;WAgBG;QAEH,iBAAY,GAAsB,MAAM,CAAC;QAEzC;;;WAGG;QAEH,aAAQ,GAAG,KAAK,CAAC;QAGjB,cAAS,GAAG,KAAK,CAAC;IAuEnB,CAAC;IAlDA,iBAAiB;QAChB,KAAK,CAAC,iBAAiB,EAAE,CAAC;QAC1B,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,WAAW,CAAC,CAAC;QAClD,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC;QAE/B,wDAAwD;QACxD,IAAI,IAAI,CAAC,YAAY,KAAK,QAAQ,EAAE,CAAC;YACpC,0IAA0I;YAC1I,IAAI,kBAAgB,CAAC,sBAAsB,EAAE,CAAC;gBAC7C,IAAI,CAAC,sBAAsB,GAAG,kBAAgB,CAAC,sBAAsB,CAAC;gBACvE,6DAA6D;YAC7D,CAAC;iBAAM,CAAC;gBACP,MAAM,CAAC,sDAAsD,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;oBAC5E,IAAI,CAAC,sBAAsB,GAAG,MAAM,CAAC,OAAO,CAAC;gBAC9C,CAAC,CAAC,CAAC;YACJ,CAAC;QACF,CAAC;IACF,CAAC;IAED;;;OAGG;IACH,IAAI,YAAY;QACf,OAAO,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,WAAW,IAAI,EAAE,CAAC;IAC5C,CAAC;IAED;;;;;OAKG;IACH,IAAI,cAAc;QACjB,OAAO,IAAI,CAAC,UAAU,KAAK,GAAG,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,qBAAqB,CAAC;IAChF,CAAC;IAED,IAAI,gBAAgB;QACnB,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACvC,CAAC;IAED,IAAI,cAAc;QACjB,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC;IACtC,CAAC;IAED,IAAI,QAAQ;QACX,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;IAC5B,CAAC;CAGD,CAAA;AA1KA;IADC,QAAQ,EAAE;8CACG;AASd;IADC,QAAQ,EAAE;qDACU;AAYrB;IADC,QAAQ,EAAE;8CACG;AASd;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;iDACZ;AAShB;IADC,QAAQ,EAAE;wDACa;AAWxB;IADC,QAAQ,EAAE;6DACmC;AAS9C;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;iDACZ;AAUR;IADP,QAAQ,EAAE;wDACqB;AAoBhC;IADC,QAAQ,EAAE;sDAC8B;AAOzC;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;kDACX;AAGjB;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;mDACV;AAOlB;IADC,QAAQ,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;gEACgB;AAYhD;IADC,IAAI,EAAE;+CACoB;AA/HtB,gBAAgB;IALrB,aAAa,CAAC;QACd,GAAG,EAAE,QAAQ;QACb,QAAQ,EAAE,WAAW;QACrB,QAAQ,EAAE,wBAAwB;KAClC,CAAC;GACI,gBAAgB,CAmLrB;AAED,gBAAgB,CAAC,MAAM,EAAE,CAAC;AAE1B,eAAe,gBAAgB,CAAC","sourcesContent":["import customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport jsxRenderer from \"@ui5/webcomponents-base/dist/renderer/JsxRenderer.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot.js\";\nimport type ValueState from \"@ui5/webcomponents-base/dist/types/ValueState.js\";\nimport ListItem from \"./ListItem.js\";\nimport type { IAccessibleListItem } from \"./ListItem.js\";\nimport type WrappingType from \"./types/WrappingType.js\";\nimport ListItemStandardTemplate from \"./ListItemStandardTemplate.js\";\nimport type { ExpandableTextTemplateParams } from \"./types/ExpandableTextTemplateParams.js\";\n\n/**\n * Maximum number of characters to display for small screens (Size S)\n * @private\n */\nconst MAX_CHARACTERS_SIZE_S = 100;\n\n/**\n * Maximum number of characters to display for medium and larger screens (Size M and above)\n * @private\n */\nconst MAX_CHARACTERS_SIZE_M = 300;\n\n// Specific template type for expandable text\ntype ExpandableTextTemplate = (this: ListItemStandard, params: ExpandableTextTemplateParams) => JSX.Element;\n\n/**\n * @class\n * The `ui5-li` represents the simplest type of item for a `ui5-list`.\n *\n * This is a list item,\n * providing the most common use cases such as `text`,\n * `image` and `icon`.\n\n * @csspart title - Used to style the title of the list item\n * @csspart description - Used to style the description of the list item\n * @csspart additional-text - Used to style the additionalText of the list item\n * @csspart icon - Used to style the icon of the list item\n * @csspart native-li - Used to style the main li tag of the list item\n * @csspart content - Used to style the content area of the list item\n * @csspart detail-button - Used to style the button rendered when the list item is of type detail\n * @csspart delete-button - Used to style the button rendered when the list item is in delete mode\n * @csspart radio - Used to style the radio button rendered when the list item is in single selection mode\n * @csspart checkbox - Used to style the checkbox rendered when the list item is in multiple selection mode\n * @slot {Node[]} default - Defines the custom formatted text of the component.\n *\n * **Note:** For optimal text wrapping and a consistent layout, it is strongly recommended to use the `text` property.\n *\n * Use the `default` slot only when custom formatting with HTML elements (e.g., `<b>`, `<i>`) is required.\n * Be aware that wrapping (via `wrappingType=\"Normal\"`) may not function correctly with custom HTML content in the `default` slot.\n *\n * If both `text` and `default` slot are used, the `text` property takes precedence.\n * @constructor\n * @extends ListItem\n * @public\n */\n@customElement({\n\ttag: \"ui5-li\",\n\trenderer: jsxRenderer,\n\ttemplate: ListItemStandardTemplate,\n})\nclass ListItemStandard extends ListItem implements IAccessibleListItem {\n\t/**\n\t * Defines the text of the component.\n\t *\n\t * @default undefined\n\t * @public\n\t * @since 2.10.0\n\t */\n\t@property()\n\ttext?: string;\n\n\t/**\n\t * Defines the description displayed right under the item text, if such is present.\n\t * @default undefined\n\t * @public\n\t * @since 0.8.0\n\t */\n\t@property()\n\tdescription?: string;\n\n\t/**\n\t * Defines the `icon` source URI.\n\t *\n\t * **Note:**\n\t * SAP-icons font provides numerous built-in icons. To find all the available icons, see the\n\t * [Icon Explorer](https://sdk.openui5.org/test-resources/sap/m/demokit/iconExplorer/webapp/index.html).\n\t * @default undefined\n\t * @public\n\t */\n\t@property()\n\ticon?: string;\n\n\t/**\n\t * Defines whether the `icon` should be displayed in the beginning of the list item or in the end.\n\t *\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\ticonEnd = false;\n\n\t/**\n\t * Defines the `additionalText`, displayed in the end of the list item.\n\t * @default undefined\n\t * @public\n\t * @since 1.0.0-rc.15\n\t */\n\t@property()\n\tadditionalText?: string;\n\n\t/**\n\t * Defines the state of the `additionalText`.\n\t *\n\t * Available options are: `\"None\"` (by default), `\"Positive\"`, `\"Critical\"`, `\"Information\"` and `\"Negative\"`.\n\t * @default \"None\"\n\t * @public\n\t * @since 1.0.0-rc.15\n\t */\n\t@property()\n\tadditionalTextState: `${ValueState}` = \"None\";\n\n\t/**\n\t * Defines whether the item is movable.\n\t * @default false\n\t * @public\n\t * @since 2.0.0\n\t */\n\t@property({ type: Boolean })\n\tmovable = false;\n\n\t/**\n\t * Defines the text alternative of the component.\n\t * Note: If not provided a default text alternative will be set, if present.\n\t * @default undefined\n\t * @public\n\t * @since 1.0.0-rc.15\n\t */\n\t@property()\n\tdeclare accessibleName?: string;\n\n\t/**\n\t * Defines if the text of the component should wrap when it's too long.\n\t * When set to \"Normal\", the content (title, description) will be wrapped\n\t * using the `ui5-expandable-text` component.<br/>\n\t *\n\t * The text can wrap up to 100 characters on small screens (size S) and\n\t * up to 300 characters on larger screens (size M and above). When text exceeds\n\t * these limits, it truncates with an ellipsis followed by a text expansion trigger.\n\t *\n\t * Available options are:\n\t * - `None` (default) - The text will truncate with an ellipsis.\n\t * - `Normal` - The text will wrap (without truncation).\n\t *\n\t * @default \"None\"\n\t * @public\n\t * @since 2.10.0\n\t */\n\t@property()\n\twrappingType: `${WrappingType}` = \"None\";\n\n\t/**\n\t * Indicates if the list item has text content.\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\thasTitle = false;\n\n\t@property({ type: Boolean })\n\t_hasImage = false;\n\n\t/**\n\t * The expandableText template.\n\t * @private\n\t */\n\t@property({ noAttribute: true })\n\texpandableTextTemplate?: ExpandableTextTemplate;\n\n\t/**\n\t * **Note:** While the slot allows option for setting custom avatar, to match the\n\t * design guidelines, please use the `ui5-avatar` with it's default size - S.\n\t *\n\t * **Note:** If bigger `ui5-avatar` needs to be used, then the size of the\n\t * `ui5-li` should be customized in order to fit.\n\t * @since 2.0.0\n\t * @public\n\t */\n\t@slot()\n\timage!: Array<HTMLElement>;\n\n\tonBeforeRendering() {\n\t\tsuper.onBeforeRendering();\n\t\tthis.hasTitle = !!(this.text || this.textContent);\n\t\tthis._hasImage = this.hasImage;\n\n\t\t// Only load ExpandableText if \"Normal\" wrapping is used\n\t\tif (this.wrappingType === \"Normal\") {\n\t\t\t// If feature is already loaded (preloaded by the user via importing ListItemStandardExpandableText.js), the template is already available\n\t\t\tif (ListItemStandard.ExpandableTextTemplate) {\n\t\t\t\tthis.expandableTextTemplate = ListItemStandard.ExpandableTextTemplate;\n\t\t\t// If feature is not preloaded, load the template dynamically\n\t\t\t} else {\n\t\t\t\timport(\"./features/ListItemStandardExpandableTextTemplate.js\").then(module => {\n\t\t\t\t\tthis.expandableTextTemplate = module.default;\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Returns the content text, either from text property or from the default slot\n\t * @private\n\t */\n\tget _textContent(): string {\n\t\treturn this.text || this.textContent || \"\";\n\t}\n\n\t/**\n\t * Determines the maximum characters to display based on the current media range.\n\t * - Size S: 100 characters\n\t * - Size M and larger: 300 characters\n\t * @private\n\t */\n\tget _maxCharacters(): number {\n\t\treturn this.mediaRange === \"S\" ? MAX_CHARACTERS_SIZE_S : MAX_CHARACTERS_SIZE_M;\n\t}\n\n\tget displayIconBegin(): boolean {\n\t\treturn !!(this.icon && !this.iconEnd);\n\t}\n\n\tget displayIconEnd(): boolean {\n\t\treturn !!(this.icon && this.iconEnd);\n\t}\n\n\tget hasImage(): boolean {\n\t\treturn !!this.image.length;\n\t}\n\n\tstatic ExpandableTextTemplate?: ExpandableTextTemplate;\n}\n\nListItemStandard.define();\n\nexport default ListItemStandard;\n"]}
|
|
1
|
+
{"version":3,"file":"ListItemStandard.js","sourceRoot":"","sources":["../src/ListItemStandard.ts"],"names":[],"mappings":"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","sourcesContent":["import customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport jsxRenderer from \"@ui5/webcomponents-base/dist/renderer/JsxRenderer.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot.js\";\nimport type ValueState from \"@ui5/webcomponents-base/dist/types/ValueState.js\";\nimport ListItem from \"./ListItem.js\";\nimport type { IAccessibleListItem } from \"./ListItem.js\";\nimport type WrappingType from \"./types/WrappingType.js\";\nimport ListItemStandardTemplate from \"./ListItemStandardTemplate.js\";\nimport type { ExpandableTextTemplateParams } from \"./types/ExpandableTextTemplateParams.js\";\n\n/**\n * Maximum number of characters to display for small screens (Size S)\n * @private\n */\nconst MAX_CHARACTERS_SIZE_S = 100;\n\n/**\n * Maximum number of characters to display for medium and larger screens (Size M and above)\n * @private\n */\nconst MAX_CHARACTERS_SIZE_M = 300;\n\n// Specific template type for expandable text\ntype ExpandableTextTemplate = (this: ListItemStandard, params: ExpandableTextTemplateParams) => JSX.Element;\n\n/**\n * @class\n * The `ui5-li` represents the simplest type of item for a `ui5-list`.\n *\n * This is a list item,\n * providing the most common use cases such as `text`,\n * `image` and `icon`.\n\n * @csspart title - Used to style the title of the list item\n * @csspart description - Used to style the description of the list item\n * @csspart additional-text - Used to style the additionalText of the list item\n * @csspart icon - Used to style the icon of the list item\n * @csspart native-li - Used to style the main li tag of the list item\n * @csspart content - Used to style the content area of the list item\n * @csspart detail-button - Used to style the button rendered when the list item is of type detail\n * @csspart delete-button - Used to style the button rendered when the list item is in delete mode\n * @csspart radio - Used to style the radio button rendered when the list item is in single selection mode\n * @csspart checkbox - Used to style the checkbox rendered when the list item is in multiple selection mode\n * @constructor\n * @extends ListItem\n * @public\n */\n@customElement({\n\ttag: \"ui5-li\",\n\trenderer: jsxRenderer,\n\ttemplate: ListItemStandardTemplate,\n})\nclass ListItemStandard extends ListItem implements IAccessibleListItem {\n\t/**\n\t * Defines the text of the component.\n\t *\n\t * @default undefined\n\t * @public\n\t * @since 2.10.0\n\t */\n\t@property()\n\ttext?: string;\n\n\t/**\n\t * Defines the description displayed right under the item text, if such is present.\n\t * @default undefined\n\t * @public\n\t * @since 0.8.0\n\t */\n\t@property()\n\tdescription?: string;\n\n\t/**\n\t * Defines the `icon` source URI.\n\t *\n\t * **Note:**\n\t * SAP-icons font provides numerous built-in icons. To find all the available icons, see the\n\t * [Icon Explorer](https://sdk.openui5.org/test-resources/sap/m/demokit/iconExplorer/webapp/index.html).\n\t * @default undefined\n\t * @public\n\t */\n\t@property()\n\ticon?: string;\n\n\t/**\n\t * Defines whether the `icon` should be displayed in the beginning of the list item or in the end.\n\t *\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\ticonEnd = false;\n\n\t/**\n\t * Defines the `additionalText`, displayed in the end of the list item.\n\t * @default undefined\n\t * @public\n\t * @since 1.0.0-rc.15\n\t */\n\t@property()\n\tadditionalText?: string;\n\n\t/**\n\t * Defines the state of the `additionalText`.\n\t *\n\t * Available options are: `\"None\"` (by default), `\"Positive\"`, `\"Critical\"`, `\"Information\"` and `\"Negative\"`.\n\t * @default \"None\"\n\t * @public\n\t * @since 1.0.0-rc.15\n\t */\n\t@property()\n\tadditionalTextState: `${ValueState}` = \"None\";\n\n\t/**\n\t * Defines whether the item is movable.\n\t * @default false\n\t * @public\n\t * @since 2.0.0\n\t */\n\t@property({ type: Boolean })\n\tmovable = false;\n\n\t/**\n\t * Defines the text alternative of the component.\n\t * Note: If not provided a default text alternative will be set, if present.\n\t * @default undefined\n\t * @public\n\t * @since 1.0.0-rc.15\n\t */\n\t@property()\n\tdeclare accessibleName?: string;\n\n\t/**\n\t * Defines if the text of the component should wrap when it's too long.\n\t * When set to \"Normal\", the content (title, description) will be wrapped\n\t * using the `ui5-expandable-text` component.<br/>\n\t *\n\t * The text can wrap up to 100 characters on small screens (size S) and\n\t * up to 300 characters on larger screens (size M and above). When text exceeds\n\t * these limits, it truncates with an ellipsis followed by a text expansion trigger.\n\t *\n\t * Available options are:\n\t * - `None` (default) - The text will truncate with an ellipsis.\n\t * - `Normal` - The text will wrap (without truncation).\n\t *\n\t * @default \"None\"\n\t * @public\n\t * @since 2.10.0\n\t */\n\t@property()\n\twrappingType: `${WrappingType}` = \"None\";\n\n\t/**\n\t * Indicates if the list item has text content.\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\thasTitle = false;\n\n\t@property({ type: Boolean })\n\t_hasImage = false;\n\n\t/**\n\t * The expandableText template.\n\t * @private\n\t */\n\t@property({ noAttribute: true })\n\texpandableTextTemplate?: ExpandableTextTemplate;\n\n\t/**\n\t * Defines the custom formatted text of the component.\n\t *\n\t * **Note:** For optimal text wrapping and a consistent layout, it is strongly recommended to use the `text` property.\n\t *\n\t * Use the `default` slot only when custom formatting with HTML elements (e.g., `<b>`, `<i>`) is required.\n\t * Be aware that wrapping (via `wrappingType=\"Normal\"`) may not function correctly with custom HTML content in the `default` slot.\n\t *\n\t * If both `text` and `default` slot are used, the `text` property takes precedence.\n\t * @public\n\t */\n\t@slot({ type: Node, \"default\": true })\n\tcontent!: Array<Node>;\n\n\t/**\n\t * **Note:** While the slot allows option for setting custom avatar, to match the\n\t * design guidelines, please use the `ui5-avatar` with it's default size - S.\n\t *\n\t * **Note:** If bigger `ui5-avatar` needs to be used, then the size of the\n\t * `ui5-li` should be customized in order to fit.\n\t * @since 2.0.0\n\t * @public\n\t */\n\t@slot()\n\timage!: Array<HTMLElement>;\n\n\tonBeforeRendering() {\n\t\tsuper.onBeforeRendering();\n\t\tthis.hasTitle = !!(this.text || this.textContent);\n\t\tthis._hasImage = this.hasImage;\n\n\t\t// Only load ExpandableText if \"Normal\" wrapping is used\n\t\tif (this.wrappingType === \"Normal\") {\n\t\t\t// If feature is already loaded (preloaded by the user via importing ListItemStandardExpandableText.js), the template is already available\n\t\t\tif (ListItemStandard.ExpandableTextTemplate) {\n\t\t\t\tthis.expandableTextTemplate = ListItemStandard.ExpandableTextTemplate;\n\t\t\t\t// If feature is not preloaded, load the template dynamically\n\t\t\t} else {\n\t\t\t\timport(\"./features/ListItemStandardExpandableTextTemplate.js\").then(module => {\n\t\t\t\t\tthis.expandableTextTemplate = module.default;\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Returns the content text, either from text property or from the default slot\n\t * @private\n\t */\n\tget _textContent(): string {\n\t\treturn this.text || this.textContent || \"\";\n\t}\n\n\t/**\n\t * Determines the maximum characters to display based on the current media range.\n\t * - Size S: 100 characters\n\t * - Size M and larger: 300 characters\n\t * @private\n\t */\n\tget _maxCharacters(): number {\n\t\treturn this.mediaRange === \"S\" ? MAX_CHARACTERS_SIZE_S : MAX_CHARACTERS_SIZE_M;\n\t}\n\n\tget displayIconBegin(): boolean {\n\t\treturn !!(this.icon && !this.iconEnd);\n\t}\n\n\tget displayIconEnd(): boolean {\n\t\treturn !!(this.icon && this.iconEnd);\n\t}\n\n\tget hasImage(): boolean {\n\t\treturn !!this.image.length;\n\t}\n\n\tstatic ExpandableTextTemplate?: ExpandableTextTemplate;\n}\n\nListItemStandard.define();\n\nexport default ListItemStandard;\n"]}
|
package/dist/MultiComboBox.d.ts
CHANGED
|
@@ -70,6 +70,7 @@ type MultiComboboxItemWithSelection = {
|
|
|
70
70
|
* you can open or close the drop-down by pressing [F4], [Alt] + [Up] or [Alt] + [Down] keys.
|
|
71
71
|
* Once the drop-down is opened, you can use the `UP` and `DOWN` arrow keys
|
|
72
72
|
* to navigate through the available options and select one by pressing the `Space` or `Enter` keys.
|
|
73
|
+
* [Ctrl]+[Alt]+[F8] or [Command]+[Option]+[F8] - Focuses the first link in the value state message, if available. Pressing [Tab] moves the focus to the next link in the value state message, or closes the value state message if there are no more links.
|
|
73
74
|
*
|
|
74
75
|
* #### Tokens
|
|
75
76
|
*
|
|
@@ -233,6 +234,17 @@ declare class MultiComboBox extends UI5Element implements IFormInputElement {
|
|
|
233
234
|
* @private
|
|
234
235
|
*/
|
|
235
236
|
tokenizerAvailable: boolean;
|
|
237
|
+
/**
|
|
238
|
+
* Indicates whether link navigation is being handled.
|
|
239
|
+
* @private
|
|
240
|
+
* @since 2.11.0
|
|
241
|
+
* @default false
|
|
242
|
+
*/
|
|
243
|
+
_handleLinkNavigation: boolean;
|
|
244
|
+
/**
|
|
245
|
+
* @private
|
|
246
|
+
*/
|
|
247
|
+
_linksListenersArray: Array<(args: any) => void>;
|
|
236
248
|
/**
|
|
237
249
|
* Defines the component items.
|
|
238
250
|
* @public
|
|
@@ -275,6 +287,7 @@ declare class MultiComboBox extends UI5Element implements IFormInputElement {
|
|
|
275
287
|
_itemToFocus?: IMultiComboBoxItem;
|
|
276
288
|
_itemsBeforeOpen: Array<MultiComboboxItemWithSelection>;
|
|
277
289
|
selectedItems: Array<IMultiComboBoxItem>;
|
|
290
|
+
_valueStateLinks: Array<HTMLElement>;
|
|
278
291
|
static i18nBundle: I18nBundle;
|
|
279
292
|
get formValidityMessage(): string;
|
|
280
293
|
get formValidity(): ValidityStateFlags;
|
|
@@ -324,6 +337,7 @@ declare class MultiComboBox extends UI5Element implements IFormInputElement {
|
|
|
324
337
|
_onItemTab(): void;
|
|
325
338
|
_handleArrowNavigation(e: KeyboardEvent, isDownControl: boolean): void;
|
|
326
339
|
_handleArrowDown(): Promise<void>;
|
|
340
|
+
_handleCtrlALtF8(): void;
|
|
327
341
|
_handleItemRangeSelection(e: KeyboardEvent): void;
|
|
328
342
|
_navigateToNextItem(): void;
|
|
329
343
|
_navigateToPrevItem(): void;
|
|
@@ -352,6 +366,8 @@ declare class MultiComboBox extends UI5Element implements IFormInputElement {
|
|
|
352
366
|
_beforeClose(): void;
|
|
353
367
|
_afterClose(): void;
|
|
354
368
|
_beforeOpen(): void;
|
|
369
|
+
_addLinksEventListeners(): void;
|
|
370
|
+
_removeLinksEventListeners(): void;
|
|
355
371
|
_handleTypeAhead(item: IMultiComboBoxItem, filterValue: string): void;
|
|
356
372
|
_getFirstMatchingItem(current: string): IMultiComboBoxItem | undefined;
|
|
357
373
|
_startsWithMatchingItems(str: string): IMultiComboBoxItem[];
|
|
@@ -381,12 +397,15 @@ declare class MultiComboBox extends UI5Element implements IFormInputElement {
|
|
|
381
397
|
get hasValueStateMessage(): boolean;
|
|
382
398
|
get ariaValueStateHiddenText(): string | undefined;
|
|
383
399
|
get valueStateDefaultText(): string;
|
|
384
|
-
get valueStateTextId(): "ui5-multi-combobox-valueStateDesc"
|
|
400
|
+
get valueStateTextId(): "" | "ui5-multi-combobox-valueStateDesc";
|
|
385
401
|
get ariaLabelText(): string | undefined;
|
|
386
402
|
/**
|
|
387
403
|
* This method is relevant for sap_horizon theme only
|
|
388
404
|
*/
|
|
389
405
|
get _valueStateMessageIcon(): string;
|
|
406
|
+
get linksInAriaValueStateHiddenText(): HTMLElement[];
|
|
407
|
+
get getValueStateLinksShortcutsTextAcc(): string;
|
|
408
|
+
get _valueStateLinksShortcutsTextAccId(): "" | "hiddenText-value-state-link-shortcut";
|
|
390
409
|
get _tokensCountText(): string | undefined;
|
|
391
410
|
get _tokensCountTextId(): string;
|
|
392
411
|
get _selectedTokensCount(): number;
|
package/dist/MultiComboBox.js
CHANGED
|
@@ -13,16 +13,18 @@ import event from "@ui5/webcomponents-base/dist/decorators/event-strict.js";
|
|
|
13
13
|
import jsxRender from "@ui5/webcomponents-base/dist/renderer/JsxRenderer.js";
|
|
14
14
|
import ResizeHandler from "@ui5/webcomponents-base/dist/delegate/ResizeHandler.js";
|
|
15
15
|
import ValueState from "@ui5/webcomponents-base/dist/types/ValueState.js";
|
|
16
|
-
import { isShow, isDown, isUp, isSpace, isSpaceCtrl, isSpaceShift, isRight, isLeft, isHome, isEnd, isTabNext, isTabPrevious, isUpShift, isDownShift, isLeftCtrl, isRightCtrl, isUpCtrl, isDownCtrl, isHomeCtrl, isEndCtrl, isCtrlA, isInsertShift, isBackSpace, isDelete, isEscape, isEnter, } from "@ui5/webcomponents-base/dist/Keys.js";
|
|
16
|
+
import { isShow, isDown, isUp, isSpace, isSpaceCtrl, isSpaceShift, isRight, isLeft, isHome, isEnd, isTabNext, isTabPrevious, isUpShift, isDownShift, isLeftCtrl, isRightCtrl, isUpCtrl, isDownCtrl, isHomeCtrl, isEndCtrl, isCtrlA, isInsertShift, isBackSpace, isDelete, isEscape, isEnter, isCtrlAltF8, } from "@ui5/webcomponents-base/dist/Keys.js";
|
|
17
17
|
import "@ui5/webcomponents-icons/dist/slim-arrow-down.js";
|
|
18
18
|
import { renderFinished } from "@ui5/webcomponents-base/dist/Render.js";
|
|
19
|
-
import { isPhone, isAndroid, isFirefox, } from "@ui5/webcomponents-base/dist/Device.js";
|
|
19
|
+
import { isPhone, isAndroid, isFirefox, isMac, } from "@ui5/webcomponents-base/dist/Device.js";
|
|
20
|
+
import { attachListeners } from "@ui5/webcomponents-base/dist/util/valueStateNavigation.js";
|
|
20
21
|
import i18n from "@ui5/webcomponents-base/dist/decorators/i18n.js";
|
|
21
22
|
import "@ui5/webcomponents-icons/dist/error.js";
|
|
22
23
|
import "@ui5/webcomponents-icons/dist/alert.js";
|
|
23
24
|
import "@ui5/webcomponents-icons/dist/sys-enter-2.js";
|
|
24
25
|
import "@ui5/webcomponents-icons/dist/information.js";
|
|
25
26
|
import { getAssociatedLabelForTexts, getEffectiveAriaLabelText } from "@ui5/webcomponents-base/dist/util/AccessibilityTextsHelper.js";
|
|
27
|
+
import arraysAreEqual from "@ui5/webcomponents-base/dist/util/arraysAreEqual.js";
|
|
26
28
|
import { getScopedVarName } from "@ui5/webcomponents-base/dist/CustomElementsScope.js";
|
|
27
29
|
import { submitForm } from "@ui5/webcomponents-base/dist/features/InputElementsFormSupport.js";
|
|
28
30
|
import MultiComboBoxItem, { isInstanceOfMultiComboBoxItem } from "./MultiComboBoxItem.js";
|
|
@@ -38,7 +40,7 @@ import ListItemStandard from "./ListItemStandard.js";
|
|
|
38
40
|
import ToggleButton from "./ToggleButton.js";
|
|
39
41
|
import * as Filters from "./Filters.js";
|
|
40
42
|
import Button from "./Button.js";
|
|
41
|
-
import { VALUE_STATE_SUCCESS, VALUE_STATE_ERROR, VALUE_STATE_WARNING, VALUE_STATE_INFORMATION, VALUE_STATE_TYPE_SUCCESS, VALUE_STATE_TYPE_INFORMATION, VALUE_STATE_TYPE_ERROR, VALUE_STATE_TYPE_WARNING, INPUT_SUGGESTIONS_TITLE, SELECT_OPTIONS, SHOW_SELECTED_BUTTON, MULTICOMBOBOX_DIALOG_OK_BUTTON, COMBOBOX_AVAILABLE_OPTIONS, VALUE_STATE_ERROR_ALREADY_SELECTED, MCB_SELECTED_ITEMS, INPUT_CLEAR_ICON_ACC_NAME, FORM_MIXED_TEXTFIELD_REQUIRED, } from "./generated/i18n/i18n-defaults.js";
|
|
43
|
+
import { VALUE_STATE_SUCCESS, VALUE_STATE_ERROR, VALUE_STATE_WARNING, VALUE_STATE_INFORMATION, VALUE_STATE_TYPE_SUCCESS, VALUE_STATE_TYPE_INFORMATION, VALUE_STATE_TYPE_ERROR, VALUE_STATE_TYPE_WARNING, VALUE_STATE_LINK, VALUE_STATE_LINKS, VALUE_STATE_LINK_MAC, VALUE_STATE_LINKS_MAC, INPUT_SUGGESTIONS_TITLE, SELECT_OPTIONS, SHOW_SELECTED_BUTTON, MULTICOMBOBOX_DIALOG_OK_BUTTON, COMBOBOX_AVAILABLE_OPTIONS, VALUE_STATE_ERROR_ALREADY_SELECTED, MCB_SELECTED_ITEMS, INPUT_CLEAR_ICON_ACC_NAME, FORM_MIXED_TEXTFIELD_REQUIRED, } from "./generated/i18n/i18n-defaults.js";
|
|
42
44
|
// Templates
|
|
43
45
|
import MultiComboBoxTemplate from "./MultiComboBoxTemplate.js";
|
|
44
46
|
// Styles
|
|
@@ -76,6 +78,7 @@ import SuggestionItem from "./SuggestionItem.js";
|
|
|
76
78
|
* you can open or close the drop-down by pressing [F4], [Alt] + [Up] or [Alt] + [Down] keys.
|
|
77
79
|
* Once the drop-down is opened, you can use the `UP` and `DOWN` arrow keys
|
|
78
80
|
* to navigate through the available options and select one by pressing the `Space` or `Enter` keys.
|
|
81
|
+
* [Ctrl]+[Alt]+[F8] or [Command]+[Option]+[F8] - Focuses the first link in the value state message, if available. Pressing [Tab] moves the focus to the next link in the value state message, or closes the value state message if there are no more links.
|
|
79
82
|
*
|
|
80
83
|
* #### Tokens
|
|
81
84
|
*
|
|
@@ -222,6 +225,17 @@ let MultiComboBox = MultiComboBox_1 = class MultiComboBox extends UI5Element {
|
|
|
222
225
|
* @private
|
|
223
226
|
*/
|
|
224
227
|
this.tokenizerAvailable = false;
|
|
228
|
+
/**
|
|
229
|
+
* Indicates whether link navigation is being handled.
|
|
230
|
+
* @private
|
|
231
|
+
* @since 2.11.0
|
|
232
|
+
* @default false
|
|
233
|
+
*/
|
|
234
|
+
this._handleLinkNavigation = false;
|
|
235
|
+
/**
|
|
236
|
+
* @private
|
|
237
|
+
*/
|
|
238
|
+
this._linksListenersArray = [];
|
|
225
239
|
this._filteredItems = [];
|
|
226
240
|
this.selectedItems = [];
|
|
227
241
|
this._previouslySelectedItems = [];
|
|
@@ -234,12 +248,14 @@ let MultiComboBox = MultiComboBox_1 = class MultiComboBox extends UI5Element {
|
|
|
234
248
|
this.valueBeforeAutoComplete = "";
|
|
235
249
|
this._lastValue = this.getAttribute("value") || "";
|
|
236
250
|
this.currentItemIdx = -1;
|
|
251
|
+
this._valueStateLinks = [];
|
|
237
252
|
}
|
|
238
253
|
onEnterDOM() {
|
|
239
254
|
ResizeHandler.register(this, this._handleResizeBound);
|
|
240
255
|
}
|
|
241
256
|
onExitDOM() {
|
|
242
257
|
ResizeHandler.deregister(this, this._handleResizeBound);
|
|
258
|
+
this._removeLinksEventListeners();
|
|
243
259
|
}
|
|
244
260
|
_handleResize() {
|
|
245
261
|
this._inputWidth = this.offsetWidth;
|
|
@@ -393,7 +409,7 @@ let MultiComboBox = MultiComboBox_1 = class MultiComboBox extends UI5Element {
|
|
|
393
409
|
this._handleArrowKey("rtl");
|
|
394
410
|
}
|
|
395
411
|
_onPopoverFocusOut() {
|
|
396
|
-
if (!isPhone()) {
|
|
412
|
+
if (!isPhone() || !this._handleLinkNavigation) {
|
|
397
413
|
this._tokenizer.expanded = this.open;
|
|
398
414
|
}
|
|
399
415
|
}
|
|
@@ -458,6 +474,9 @@ let MultiComboBox = MultiComboBox_1 = class MultiComboBox extends UI5Element {
|
|
|
458
474
|
if (isSpaceShift(e)) {
|
|
459
475
|
e.preventDefault();
|
|
460
476
|
}
|
|
477
|
+
if (isCtrlAltF8(e)) {
|
|
478
|
+
return this._handleCtrlALtF8();
|
|
479
|
+
}
|
|
461
480
|
if (e.key === "ArrowLeft"
|
|
462
481
|
|| e.key === "ArrowRight"
|
|
463
482
|
|| e.key === "Show"
|
|
@@ -610,13 +629,10 @@ let MultiComboBox = MultiComboBox_1 = class MultiComboBox extends UI5Element {
|
|
|
610
629
|
this._handleArrowDown();
|
|
611
630
|
}
|
|
612
631
|
if (isArrowUp || isUpCtrl(e)) {
|
|
613
|
-
if (e.target === this.valueStateHeader ||
|
|
632
|
+
if (e.target === this.valueStateHeader || (this.showSelectAll && isSelectAllFocused)) {
|
|
614
633
|
this._shouldAutocomplete = true;
|
|
615
634
|
return this._inputDom.focus();
|
|
616
635
|
}
|
|
617
|
-
if (this.showSelectAll && isSelectAllFocused) {
|
|
618
|
-
this.valueStateHeader?.focus();
|
|
619
|
-
}
|
|
620
636
|
}
|
|
621
637
|
}
|
|
622
638
|
_handleSelectAllCheckboxClick(e) {
|
|
@@ -658,6 +674,9 @@ let MultiComboBox = MultiComboBox_1 = class MultiComboBox extends UI5Element {
|
|
|
658
674
|
this.list?.getSlottedNodes("items")[this.list?._itemNavigation._currentIndex].focus();
|
|
659
675
|
}
|
|
660
676
|
e.preventDefault();
|
|
677
|
+
if (isCtrlAltF8(e)) {
|
|
678
|
+
return this._handleCtrlALtF8();
|
|
679
|
+
}
|
|
661
680
|
if (isDownShift(e) || isUpShift(e)) {
|
|
662
681
|
this._handleItemRangeSelection(e);
|
|
663
682
|
return;
|
|
@@ -685,9 +704,6 @@ let MultiComboBox = MultiComboBox_1 = class MultiComboBox extends UI5Element {
|
|
|
685
704
|
}
|
|
686
705
|
this._getResponsivePopover().querySelector(".ui5-mcb-select-all-checkbox").focus();
|
|
687
706
|
}
|
|
688
|
-
else if (this.valueStateHeader) {
|
|
689
|
-
this.valueStateHeader.focus();
|
|
690
|
-
}
|
|
691
707
|
else {
|
|
692
708
|
this._inputDom.focus();
|
|
693
709
|
this._shouldAutocomplete = true;
|
|
@@ -718,11 +734,6 @@ let MultiComboBox = MultiComboBox_1 = class MultiComboBox extends UI5Element {
|
|
|
718
734
|
this._setValueStateHeader();
|
|
719
735
|
}
|
|
720
736
|
if (isArrowDown && this.open) {
|
|
721
|
-
if (this.valueStateHeader) {
|
|
722
|
-
this.value = this.valueBeforeAutoComplete || this.value;
|
|
723
|
-
this.valueStateHeader.focus();
|
|
724
|
-
return;
|
|
725
|
-
}
|
|
726
737
|
if (this.showSelectAll) {
|
|
727
738
|
this._getResponsivePopover().querySelector(".ui5-mcb-select-all-checkbox").focus();
|
|
728
739
|
return;
|
|
@@ -749,6 +760,13 @@ let MultiComboBox = MultiComboBox_1 = class MultiComboBox extends UI5Element {
|
|
|
749
760
|
this._navigateToNextItem();
|
|
750
761
|
}
|
|
751
762
|
}
|
|
763
|
+
_handleCtrlALtF8() {
|
|
764
|
+
const links = this.linksInAriaValueStateHiddenText;
|
|
765
|
+
if (links.length > 0) {
|
|
766
|
+
links[0].focus();
|
|
767
|
+
}
|
|
768
|
+
this._handleLinkNavigation = true;
|
|
769
|
+
}
|
|
752
770
|
_handleItemRangeSelection(e) {
|
|
753
771
|
const items = this._getItems();
|
|
754
772
|
const listItems = this.list?.getSlottedNodes("items");
|
|
@@ -1047,6 +1065,44 @@ let MultiComboBox = MultiComboBox_1 = class MultiComboBox extends UI5Element {
|
|
|
1047
1065
|
this.selectedItems = this._getItems().filter((item, idx, allItems) => MultiComboBox_1._groupItemFilter(item, ++idx, allItems, selectedItems) || selectedItems.indexOf(item) !== -1);
|
|
1048
1066
|
}
|
|
1049
1067
|
}
|
|
1068
|
+
_addLinksEventListeners() {
|
|
1069
|
+
const links = this.linksInAriaValueStateHiddenText;
|
|
1070
|
+
links.forEach((link, index) => {
|
|
1071
|
+
this._linksListenersArray.push((e) => {
|
|
1072
|
+
attachListeners(e, links, index, {
|
|
1073
|
+
closeValueState: () => {
|
|
1074
|
+
if (this.open) {
|
|
1075
|
+
this.open = false;
|
|
1076
|
+
}
|
|
1077
|
+
if (this.valueStateOpen) {
|
|
1078
|
+
this.valueStateOpen = false;
|
|
1079
|
+
}
|
|
1080
|
+
},
|
|
1081
|
+
navigateToItem: () => {
|
|
1082
|
+
this._handleLinkNavigation = false;
|
|
1083
|
+
if (this.open) {
|
|
1084
|
+
this._forwardFocusToInner();
|
|
1085
|
+
this._handleArrowDown();
|
|
1086
|
+
}
|
|
1087
|
+
},
|
|
1088
|
+
focusInput: () => {
|
|
1089
|
+
this._handleLinkNavigation = false;
|
|
1090
|
+
this._forwardFocusToInner();
|
|
1091
|
+
},
|
|
1092
|
+
isPopoverOpen: () => this.open,
|
|
1093
|
+
});
|
|
1094
|
+
});
|
|
1095
|
+
link.addEventListener("keydown", this._linksListenersArray[index]);
|
|
1096
|
+
});
|
|
1097
|
+
}
|
|
1098
|
+
_removeLinksEventListeners() {
|
|
1099
|
+
const links = this.linksInAriaValueStateHiddenText;
|
|
1100
|
+
links.forEach((link, index) => {
|
|
1101
|
+
link.removeEventListener("keydown", this._linksListenersArray[index]);
|
|
1102
|
+
});
|
|
1103
|
+
this._linksListenersArray = [];
|
|
1104
|
+
this._handleLinkNavigation = false;
|
|
1105
|
+
}
|
|
1050
1106
|
_handleTypeAhead(item, filterValue) {
|
|
1051
1107
|
if (!item) {
|
|
1052
1108
|
return;
|
|
@@ -1119,7 +1175,7 @@ let MultiComboBox = MultiComboBox_1 = class MultiComboBox extends UI5Element {
|
|
|
1119
1175
|
}
|
|
1120
1176
|
onAfterRendering() {
|
|
1121
1177
|
this._getList();
|
|
1122
|
-
this.valueStateOpen = this.shouldDisplayOnlyValueStateMessage;
|
|
1178
|
+
this.valueStateOpen = this.shouldDisplayOnlyValueStateMessage || (this._handleLinkNavigation && !this.open);
|
|
1123
1179
|
this.storeResponsivePopoverWidth();
|
|
1124
1180
|
this._deleting = false;
|
|
1125
1181
|
// force resize of the tokenizer on invalidation
|
|
@@ -1131,6 +1187,11 @@ let MultiComboBox = MultiComboBox_1 = class MultiComboBox extends UI5Element {
|
|
|
1131
1187
|
if (this._tokenizer.expanded && this.hasAttribute("focused")) {
|
|
1132
1188
|
this._tokenizer.scrollToEnd();
|
|
1133
1189
|
}
|
|
1190
|
+
if (!arraysAreEqual(this._valueStateLinks, this.linksInAriaValueStateHiddenText)) {
|
|
1191
|
+
this._removeLinksEventListeners();
|
|
1192
|
+
this._addLinksEventListeners();
|
|
1193
|
+
this._valueStateLinks = this.linksInAriaValueStateHiddenText;
|
|
1194
|
+
}
|
|
1134
1195
|
}
|
|
1135
1196
|
get _isPhone() {
|
|
1136
1197
|
return isPhone();
|
|
@@ -1221,7 +1282,7 @@ let MultiComboBox = MultiComboBox_1 = class MultiComboBox extends UI5Element {
|
|
|
1221
1282
|
const popover = this._getPopover();
|
|
1222
1283
|
const focusIsGoingInPopover = [responsivePopover, popover].some(popup => popup?.contains(e.relatedTarget));
|
|
1223
1284
|
const focusIsGoingInValueStatePopup = this?.contains(e.relatedTarget);
|
|
1224
|
-
if (focusIsGoingInValueStatePopup) {
|
|
1285
|
+
if (focusIsGoingInValueStatePopup || this._handleLinkNavigation) {
|
|
1225
1286
|
this.focused = false;
|
|
1226
1287
|
e.stopImmediatePropagation();
|
|
1227
1288
|
return;
|
|
@@ -1272,6 +1333,9 @@ let MultiComboBox = MultiComboBox_1 = class MultiComboBox extends UI5Element {
|
|
|
1272
1333
|
if (this.shouldDisplayDefaultValueStateMessage) {
|
|
1273
1334
|
return `${text} ${this.valueStateDefaultText || ""}`;
|
|
1274
1335
|
}
|
|
1336
|
+
if (this.getValueStateLinksShortcutsTextAcc) {
|
|
1337
|
+
return `${text}`.concat(" ", this.getValueStateLinksShortcutsTextAcc, " ", this.valueStateMessage.map(el => el.textContent).join(" "));
|
|
1338
|
+
}
|
|
1275
1339
|
return `${text}`.concat(" ", this.valueStateMessage.map(el => el.textContent).join(" "));
|
|
1276
1340
|
}
|
|
1277
1341
|
get valueStateDefaultText() {
|
|
@@ -1285,7 +1349,7 @@ let MultiComboBox = MultiComboBox_1 = class MultiComboBox extends UI5Element {
|
|
|
1285
1349
|
return this.valueStateTextMappings[valueState];
|
|
1286
1350
|
}
|
|
1287
1351
|
get valueStateTextId() {
|
|
1288
|
-
return this.hasValueState ? `ui5-multi-combobox-valueStateDesc` :
|
|
1352
|
+
return this.hasValueState ? `ui5-multi-combobox-valueStateDesc` : "";
|
|
1289
1353
|
}
|
|
1290
1354
|
get ariaLabelText() {
|
|
1291
1355
|
return getEffectiveAriaLabelText(this) || getAssociatedLabelForTexts(this);
|
|
@@ -1305,6 +1369,36 @@ let MultiComboBox = MultiComboBox_1 = class MultiComboBox extends UI5Element {
|
|
|
1305
1369
|
[ValueState.Information]: "information",
|
|
1306
1370
|
}[valueState];
|
|
1307
1371
|
}
|
|
1372
|
+
get linksInAriaValueStateHiddenText() {
|
|
1373
|
+
const links = [];
|
|
1374
|
+
if (this.valueStateMessage) {
|
|
1375
|
+
this.valueStateMessage.forEach(element => {
|
|
1376
|
+
if (element.children.length) {
|
|
1377
|
+
element.querySelectorAll("ui5-link").forEach(link => {
|
|
1378
|
+
links.push(link);
|
|
1379
|
+
});
|
|
1380
|
+
}
|
|
1381
|
+
});
|
|
1382
|
+
}
|
|
1383
|
+
return links;
|
|
1384
|
+
}
|
|
1385
|
+
get getValueStateLinksShortcutsTextAcc() {
|
|
1386
|
+
const links = this.linksInAriaValueStateHiddenText;
|
|
1387
|
+
if (!links.length) {
|
|
1388
|
+
return "";
|
|
1389
|
+
}
|
|
1390
|
+
if (isMac()) {
|
|
1391
|
+
return links.length === 1
|
|
1392
|
+
? MultiComboBox_1.i18nBundle.getText(VALUE_STATE_LINK_MAC)
|
|
1393
|
+
: MultiComboBox_1.i18nBundle.getText(VALUE_STATE_LINKS_MAC);
|
|
1394
|
+
}
|
|
1395
|
+
return links.length === 1
|
|
1396
|
+
? MultiComboBox_1.i18nBundle.getText(VALUE_STATE_LINK)
|
|
1397
|
+
: MultiComboBox_1.i18nBundle.getText(VALUE_STATE_LINKS);
|
|
1398
|
+
}
|
|
1399
|
+
get _valueStateLinksShortcutsTextAccId() {
|
|
1400
|
+
return this.linksInAriaValueStateHiddenText.length > 0 ? `hiddenText-value-state-link-shortcut` : "";
|
|
1401
|
+
}
|
|
1308
1402
|
get _tokensCountText() {
|
|
1309
1403
|
if (!this._tokenizer) {
|
|
1310
1404
|
return;
|
|
@@ -1318,7 +1412,7 @@ let MultiComboBox = MultiComboBox_1 = class MultiComboBox extends UI5Element {
|
|
|
1318
1412
|
return this._tokenizer.tokens.filter(token => token.selected).length;
|
|
1319
1413
|
}
|
|
1320
1414
|
get ariaDescribedByText() {
|
|
1321
|
-
return
|
|
1415
|
+
return `${this._tokensCountTextId} ${this.valueStateTextId} ${this._valueStateLinksShortcutsTextAccId}`.trim();
|
|
1322
1416
|
}
|
|
1323
1417
|
get shouldDisplayDefaultValueStateMessage() {
|
|
1324
1418
|
return !this.valueStateMessage.length && this.hasValueStateMessage;
|
|
@@ -1533,6 +1627,12 @@ __decorate([
|
|
|
1533
1627
|
__decorate([
|
|
1534
1628
|
property({ type: Boolean })
|
|
1535
1629
|
], MultiComboBox.prototype, "tokenizerAvailable", void 0);
|
|
1630
|
+
__decorate([
|
|
1631
|
+
property({ type: Boolean })
|
|
1632
|
+
], MultiComboBox.prototype, "_handleLinkNavigation", void 0);
|
|
1633
|
+
__decorate([
|
|
1634
|
+
property({ type: Array })
|
|
1635
|
+
], MultiComboBox.prototype, "_linksListenersArray", void 0);
|
|
1536
1636
|
__decorate([
|
|
1537
1637
|
slot({
|
|
1538
1638
|
type: HTMLElement,
|