@ui5/webcomponents 2.8.0-rc.1 → 2.8.0-rc.2
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 +21 -0
- package/cypress/specs/Avatar.cy.tsx +15 -0
- package/cypress/specs/Input.cy.tsx +60 -0
- package/cypress/specs/Popover.cy.tsx +91 -0
- package/cypress/specs/Table.cy.tsx +83 -61
- package/cypress/specs/TableSelection.cy.tsx +243 -0
- package/cypress/specs/base/Events.cy.tsx +4 -5
- package/dist/.tsbuildinfo +1 -1
- package/dist/AvatarTemplate.js +1 -1
- package/dist/AvatarTemplate.js.map +1 -1
- package/dist/ExpandableText.d.ts +0 -1
- package/dist/ExpandableText.js +0 -7
- package/dist/ExpandableText.js.map +1 -1
- package/dist/ExpandableTextTemplate.js +1 -1
- package/dist/ExpandableTextTemplate.js.map +1 -1
- package/dist/Input.js +1 -3
- package/dist/Input.js.map +1 -1
- package/dist/InputPopoverTemplate.d.ts +4 -1
- package/dist/InputPopoverTemplate.js +3 -2
- package/dist/InputPopoverTemplate.js.map +1 -1
- package/dist/InputTemplate.d.ts +3 -1
- package/dist/InputTemplate.js +2 -1
- package/dist/InputTemplate.js.map +1 -1
- package/dist/ListTemplate.js +1 -1
- package/dist/ListTemplate.js.map +1 -1
- package/dist/Popover.js +8 -5
- package/dist/Popover.js.map +1 -1
- package/dist/Select.js +1 -3
- package/dist/Select.js.map +1 -1
- package/dist/Table.d.ts +2 -2
- package/dist/Table.js +16 -14
- package/dist/Table.js.map +1 -1
- package/dist/TableCellBase.d.ts +1 -0
- package/dist/TableCellBase.js +4 -0
- package/dist/TableCellBase.js.map +1 -1
- package/dist/TableHeaderCell.d.ts +11 -0
- package/dist/TableHeaderCell.js +14 -0
- package/dist/TableHeaderCell.js.map +1 -1
- package/dist/TableHeaderCellActionAI.d.ts +1 -0
- package/dist/TableHeaderCellActionAI.js +1 -0
- package/dist/TableHeaderCellActionAI.js.map +1 -1
- package/dist/TableHeaderRow.js +1 -1
- package/dist/TableHeaderRow.js.map +1 -1
- package/dist/TableRow.js +1 -1
- package/dist/TableRow.js.map +1 -1
- package/dist/TableRowAction.d.ts +1 -0
- package/dist/TableRowAction.js +1 -0
- package/dist/TableRowAction.js.map +1 -1
- package/dist/TableRowActionNavigation.d.ts +1 -0
- package/dist/TableRowActionNavigation.js +1 -0
- package/dist/TableRowActionNavigation.js.map +1 -1
- package/dist/TableRowBase.js +1 -1
- package/dist/TableRowBase.js.map +1 -1
- package/dist/css/themes/Avatar.css +1 -1
- package/dist/css/themes/AvatarGroup.css +1 -1
- package/dist/css/themes/Bar.css +1 -1
- package/dist/css/themes/Breadcrumbs.css +1 -1
- package/dist/css/themes/BusyIndicator.css +1 -1
- package/dist/css/themes/Button.css +1 -1
- package/dist/css/themes/ButtonBadge.css +1 -1
- package/dist/css/themes/Calendar.css +1 -1
- package/dist/css/themes/CalendarHeader.css +1 -1
- package/dist/css/themes/CalendarLegend.css +1 -1
- package/dist/css/themes/CalendarLegendItem.css +1 -1
- package/dist/css/themes/Card.css +1 -1
- package/dist/css/themes/CardHeader.css +1 -1
- package/dist/css/themes/Carousel.css +1 -1
- package/dist/css/themes/CheckBox.css +1 -1
- package/dist/css/themes/ColorPalette.css +1 -1
- package/dist/css/themes/ColorPaletteItem.css +1 -1
- package/dist/css/themes/ColorPalettePopover.css +1 -1
- package/dist/css/themes/ColorPicker.css +1 -1
- package/dist/css/themes/ComboBox.css +1 -1
- package/dist/css/themes/ComboBoxItem.css +1 -1
- package/dist/css/themes/DatePicker.css +1 -1
- package/dist/css/themes/DateTimePickerPopover.css +1 -1
- package/dist/css/themes/DayPicker.css +1 -1
- package/dist/css/themes/Dialog.css +1 -1
- package/dist/css/themes/FileUploader.css +1 -1
- package/dist/css/themes/Form.css +1 -1
- package/dist/css/themes/FormItem.css +1 -1
- package/dist/css/themes/FormItemSpan.css +1 -1
- package/dist/css/themes/GrowingButton.css +1 -1
- package/dist/css/themes/Icon.css +1 -1
- package/dist/css/themes/Input.css +1 -1
- package/dist/css/themes/InputIcon.css +1 -1
- package/dist/css/themes/InputSharedStyles.css +1 -1
- package/dist/css/themes/Link.css +1 -1
- package/dist/css/themes/List.css +1 -1
- package/dist/css/themes/ListItem.css +1 -1
- package/dist/css/themes/ListItemBase.css +1 -1
- package/dist/css/themes/ListItemCustom.css +1 -1
- package/dist/css/themes/ListItemGroup.css +1 -1
- package/dist/css/themes/ListItemGroupHeader.css +1 -1
- package/dist/css/themes/ListItemIcon.css +1 -1
- package/dist/css/themes/Menu.css +1 -1
- package/dist/css/themes/MenuItem.css +1 -1
- package/dist/css/themes/MessageStrip.css +1 -1
- package/dist/css/themes/MonthPicker.css +1 -1
- package/dist/css/themes/MultiComboBox.css +1 -1
- package/dist/css/themes/MultiComboBoxItem.css +1 -1
- package/dist/css/themes/MultiComboBoxPopover.css +1 -1
- package/dist/css/themes/MultiInput.css +1 -1
- package/dist/css/themes/OptionBase.css +1 -1
- package/dist/css/themes/Panel.css +1 -1
- package/dist/css/themes/Popover.css +1 -1
- package/dist/css/themes/PopupsCommon.css +1 -1
- package/dist/css/themes/ProgressIndicator.css +1 -1
- package/dist/css/themes/RadioButton.css +1 -1
- package/dist/css/themes/RangeSlider.css +1 -1
- package/dist/css/themes/RatingIndicator.css +1 -1
- package/dist/css/themes/ResponsivePopover.css +1 -1
- package/dist/css/themes/ResponsivePopoverCommon.css +1 -1
- package/dist/css/themes/SegmentedButton.css +1 -1
- package/dist/css/themes/SegmentedButtonItem.css +1 -1
- package/dist/css/themes/Select.css +1 -1
- package/dist/css/themes/SliderBase.css +1 -1
- package/dist/css/themes/SplitButton.css +1 -1
- package/dist/css/themes/StepInput.css +1 -1
- package/dist/css/themes/SuggestionItem.css +1 -1
- package/dist/css/themes/SuggestionItemCustom.css +1 -1
- package/dist/css/themes/Switch.css +1 -1
- package/dist/css/themes/TabContainer.css +1 -1
- package/dist/css/themes/TabInOverflow.css +1 -1
- package/dist/css/themes/TabInStrip.css +1 -1
- package/dist/css/themes/TabSemanticIcon.css +1 -1
- package/dist/css/themes/TabSeparatorInOverflow.css +1 -1
- package/dist/css/themes/Table.css +1 -1
- package/dist/css/themes/TableCellBase.css +1 -1
- package/dist/css/themes/TableHeaderRow.css +1 -1
- package/dist/css/themes/TableRow.css +1 -1
- package/dist/css/themes/TableRowActionBase.css +1 -1
- package/dist/css/themes/TableRowBase.css +1 -1
- package/dist/css/themes/Tag.css +1 -1
- package/dist/css/themes/Text.css +1 -1
- package/dist/css/themes/TextArea.css +1 -1
- package/dist/css/themes/TimePicker.css +1 -1
- package/dist/css/themes/Toast.css +1 -1
- package/dist/css/themes/ToggleButton.css +1 -1
- package/dist/css/themes/Token.css +1 -1
- package/dist/css/themes/Tokenizer.css +1 -1
- package/dist/css/themes/TokenizerPopover.css +1 -1
- package/dist/css/themes/Toolbar.css +1 -1
- package/dist/css/themes/ToolbarPopover.css +1 -1
- package/dist/css/themes/TreeItem.css +1 -1
- package/dist/css/themes/ValueStateMessage.css +1 -1
- package/dist/css/themes/YearPicker.css +1 -1
- package/dist/css/themes/sap_fiori_3/parameters-bundle.css +1 -1
- package/dist/css/themes/sap_fiori_3_dark/parameters-bundle.css +1 -1
- package/dist/css/themes/sap_fiori_3_hcb/parameters-bundle.css +1 -1
- package/dist/css/themes/sap_fiori_3_hcw/parameters-bundle.css +1 -1
- package/dist/css/themes/sap_horizon/parameters-bundle.css +1 -1
- package/dist/css/themes/sap_horizon_dark/parameters-bundle.css +1 -1
- package/dist/css/themes/sap_horizon_hcb/parameters-bundle.css +1 -1
- package/dist/css/themes/sap_horizon_hcw/parameters-bundle.css +1 -1
- package/dist/custom-elements-internal.json +30 -3
- package/dist/custom-elements.json +19 -0
- package/dist/features/InputSuggestionsTemplate.d.ts +5 -1
- package/dist/features/InputSuggestionsTemplate.js +7 -4
- package/dist/features/InputSuggestionsTemplate.js.map +1 -1
- package/dist/generated/assets/i18n/messagebundle_en_US_sappsd.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_en_US_saprigi.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_en_US_saptrc.json +1 -1
- package/dist/generated/assets/themes/sap_fiori_3/parameters-bundle.css.json +1 -1
- package/dist/generated/assets/themes/sap_fiori_3_dark/parameters-bundle.css.json +1 -1
- package/dist/generated/assets/themes/sap_fiori_3_hcb/parameters-bundle.css.json +1 -1
- package/dist/generated/assets/themes/sap_fiori_3_hcw/parameters-bundle.css.json +1 -1
- package/dist/generated/assets/themes/sap_horizon/parameters-bundle.css.json +1 -1
- package/dist/generated/assets/themes/sap_horizon_dark/parameters-bundle.css.json +1 -1
- package/dist/generated/assets/themes/sap_horizon_hcb/parameters-bundle.css.json +1 -1
- package/dist/generated/assets/themes/sap_horizon_hcw/parameters-bundle.css.json +1 -1
- package/dist/generated/themes/Avatar.css.d.ts +1 -1
- package/dist/generated/themes/Avatar.css.js +1 -1
- package/dist/generated/themes/Avatar.css.js.map +1 -1
- package/dist/generated/themes/AvatarGroup.css.d.ts +1 -1
- package/dist/generated/themes/AvatarGroup.css.js +1 -1
- package/dist/generated/themes/AvatarGroup.css.js.map +1 -1
- package/dist/generated/themes/Bar.css.d.ts +1 -1
- package/dist/generated/themes/Bar.css.js +1 -1
- package/dist/generated/themes/Bar.css.js.map +1 -1
- package/dist/generated/themes/Breadcrumbs.css.d.ts +1 -1
- package/dist/generated/themes/Breadcrumbs.css.js +1 -1
- package/dist/generated/themes/Breadcrumbs.css.js.map +1 -1
- package/dist/generated/themes/BusyIndicator.css.d.ts +1 -1
- package/dist/generated/themes/BusyIndicator.css.js +1 -1
- package/dist/generated/themes/BusyIndicator.css.js.map +1 -1
- package/dist/generated/themes/Button.css.d.ts +1 -1
- package/dist/generated/themes/Button.css.js +1 -1
- package/dist/generated/themes/Button.css.js.map +1 -1
- package/dist/generated/themes/ButtonBadge.css.d.ts +1 -1
- package/dist/generated/themes/ButtonBadge.css.js +1 -1
- package/dist/generated/themes/ButtonBadge.css.js.map +1 -1
- package/dist/generated/themes/Calendar.css.d.ts +1 -1
- package/dist/generated/themes/Calendar.css.js +1 -1
- package/dist/generated/themes/Calendar.css.js.map +1 -1
- package/dist/generated/themes/CalendarHeader.css.d.ts +1 -1
- package/dist/generated/themes/CalendarHeader.css.js +1 -1
- package/dist/generated/themes/CalendarHeader.css.js.map +1 -1
- package/dist/generated/themes/CalendarLegend.css.d.ts +1 -1
- package/dist/generated/themes/CalendarLegend.css.js +1 -1
- package/dist/generated/themes/CalendarLegend.css.js.map +1 -1
- package/dist/generated/themes/CalendarLegendItem.css.d.ts +1 -1
- package/dist/generated/themes/CalendarLegendItem.css.js +1 -1
- package/dist/generated/themes/CalendarLegendItem.css.js.map +1 -1
- package/dist/generated/themes/Card.css.d.ts +1 -1
- package/dist/generated/themes/Card.css.js +1 -1
- package/dist/generated/themes/Card.css.js.map +1 -1
- package/dist/generated/themes/CardHeader.css.d.ts +1 -1
- package/dist/generated/themes/CardHeader.css.js +1 -1
- package/dist/generated/themes/CardHeader.css.js.map +1 -1
- package/dist/generated/themes/Carousel.css.d.ts +1 -1
- package/dist/generated/themes/Carousel.css.js +1 -1
- package/dist/generated/themes/Carousel.css.js.map +1 -1
- package/dist/generated/themes/CheckBox.css.d.ts +1 -1
- package/dist/generated/themes/CheckBox.css.js +1 -1
- package/dist/generated/themes/CheckBox.css.js.map +1 -1
- package/dist/generated/themes/ColorPalette.css.d.ts +1 -1
- package/dist/generated/themes/ColorPalette.css.js +1 -1
- package/dist/generated/themes/ColorPalette.css.js.map +1 -1
- package/dist/generated/themes/ColorPaletteItem.css.d.ts +1 -1
- package/dist/generated/themes/ColorPaletteItem.css.js +1 -1
- package/dist/generated/themes/ColorPaletteItem.css.js.map +1 -1
- package/dist/generated/themes/ColorPalettePopover.css.d.ts +1 -1
- package/dist/generated/themes/ColorPalettePopover.css.js +1 -1
- package/dist/generated/themes/ColorPalettePopover.css.js.map +1 -1
- package/dist/generated/themes/ColorPicker.css.d.ts +1 -1
- package/dist/generated/themes/ColorPicker.css.js +1 -1
- package/dist/generated/themes/ColorPicker.css.js.map +1 -1
- package/dist/generated/themes/ComboBox.css.d.ts +1 -1
- package/dist/generated/themes/ComboBox.css.js +1 -1
- package/dist/generated/themes/ComboBox.css.js.map +1 -1
- package/dist/generated/themes/ComboBoxItem.css.d.ts +1 -1
- package/dist/generated/themes/ComboBoxItem.css.js +1 -1
- package/dist/generated/themes/ComboBoxItem.css.js.map +1 -1
- package/dist/generated/themes/DatePicker.css.d.ts +1 -1
- package/dist/generated/themes/DatePicker.css.js +1 -1
- package/dist/generated/themes/DatePicker.css.js.map +1 -1
- package/dist/generated/themes/DateTimePickerPopover.css.d.ts +1 -1
- package/dist/generated/themes/DateTimePickerPopover.css.js +1 -1
- package/dist/generated/themes/DateTimePickerPopover.css.js.map +1 -1
- package/dist/generated/themes/DayPicker.css.d.ts +1 -1
- package/dist/generated/themes/DayPicker.css.js +1 -1
- package/dist/generated/themes/DayPicker.css.js.map +1 -1
- package/dist/generated/themes/Dialog.css.d.ts +1 -1
- package/dist/generated/themes/Dialog.css.js +1 -1
- package/dist/generated/themes/Dialog.css.js.map +1 -1
- package/dist/generated/themes/FileUploader.css.d.ts +1 -1
- package/dist/generated/themes/FileUploader.css.js +1 -1
- package/dist/generated/themes/FileUploader.css.js.map +1 -1
- package/dist/generated/themes/Form.css.d.ts +1 -1
- package/dist/generated/themes/Form.css.js +1 -1
- package/dist/generated/themes/Form.css.js.map +1 -1
- package/dist/generated/themes/FormItem.css.d.ts +1 -1
- package/dist/generated/themes/FormItem.css.js +1 -1
- package/dist/generated/themes/FormItem.css.js.map +1 -1
- package/dist/generated/themes/FormItemSpan.css.d.ts +1 -1
- package/dist/generated/themes/FormItemSpan.css.js +1 -1
- package/dist/generated/themes/FormItemSpan.css.js.map +1 -1
- package/dist/generated/themes/GrowingButton.css.d.ts +1 -1
- package/dist/generated/themes/GrowingButton.css.js +1 -1
- package/dist/generated/themes/GrowingButton.css.js.map +1 -1
- package/dist/generated/themes/Icon.css.d.ts +1 -1
- package/dist/generated/themes/Icon.css.js +1 -1
- package/dist/generated/themes/Icon.css.js.map +1 -1
- package/dist/generated/themes/Input.css.d.ts +1 -1
- package/dist/generated/themes/Input.css.js +1 -1
- package/dist/generated/themes/Input.css.js.map +1 -1
- package/dist/generated/themes/InputIcon.css.d.ts +1 -1
- package/dist/generated/themes/InputIcon.css.js +1 -1
- package/dist/generated/themes/InputIcon.css.js.map +1 -1
- package/dist/generated/themes/InputSharedStyles.css.d.ts +1 -1
- package/dist/generated/themes/InputSharedStyles.css.js +1 -1
- package/dist/generated/themes/InputSharedStyles.css.js.map +1 -1
- package/dist/generated/themes/Link.css.d.ts +1 -1
- package/dist/generated/themes/Link.css.js +1 -1
- package/dist/generated/themes/Link.css.js.map +1 -1
- package/dist/generated/themes/List.css.d.ts +1 -1
- package/dist/generated/themes/List.css.js +1 -1
- package/dist/generated/themes/List.css.js.map +1 -1
- package/dist/generated/themes/ListItem.css.d.ts +1 -1
- package/dist/generated/themes/ListItem.css.js +1 -1
- package/dist/generated/themes/ListItem.css.js.map +1 -1
- package/dist/generated/themes/ListItemBase.css.d.ts +1 -1
- package/dist/generated/themes/ListItemBase.css.js +1 -1
- package/dist/generated/themes/ListItemBase.css.js.map +1 -1
- package/dist/generated/themes/ListItemCustom.css.d.ts +1 -1
- package/dist/generated/themes/ListItemCustom.css.js +1 -1
- package/dist/generated/themes/ListItemCustom.css.js.map +1 -1
- package/dist/generated/themes/ListItemGroup.css.d.ts +1 -1
- package/dist/generated/themes/ListItemGroup.css.js +1 -1
- package/dist/generated/themes/ListItemGroup.css.js.map +1 -1
- package/dist/generated/themes/ListItemGroupHeader.css.d.ts +1 -1
- package/dist/generated/themes/ListItemGroupHeader.css.js +1 -1
- package/dist/generated/themes/ListItemGroupHeader.css.js.map +1 -1
- package/dist/generated/themes/ListItemIcon.css.d.ts +1 -1
- package/dist/generated/themes/ListItemIcon.css.js +1 -1
- package/dist/generated/themes/ListItemIcon.css.js.map +1 -1
- package/dist/generated/themes/Menu.css.d.ts +1 -1
- package/dist/generated/themes/Menu.css.js +1 -1
- package/dist/generated/themes/Menu.css.js.map +1 -1
- package/dist/generated/themes/MenuItem.css.d.ts +1 -1
- package/dist/generated/themes/MenuItem.css.js +1 -1
- package/dist/generated/themes/MenuItem.css.js.map +1 -1
- package/dist/generated/themes/MessageStrip.css.d.ts +1 -1
- package/dist/generated/themes/MessageStrip.css.js +1 -1
- package/dist/generated/themes/MessageStrip.css.js.map +1 -1
- package/dist/generated/themes/MonthPicker.css.d.ts +1 -1
- package/dist/generated/themes/MonthPicker.css.js +1 -1
- package/dist/generated/themes/MonthPicker.css.js.map +1 -1
- package/dist/generated/themes/MultiComboBox.css.d.ts +1 -1
- package/dist/generated/themes/MultiComboBox.css.js +1 -1
- package/dist/generated/themes/MultiComboBox.css.js.map +1 -1
- package/dist/generated/themes/MultiComboBoxItem.css.d.ts +1 -1
- package/dist/generated/themes/MultiComboBoxItem.css.js +1 -1
- package/dist/generated/themes/MultiComboBoxItem.css.js.map +1 -1
- package/dist/generated/themes/MultiComboBoxPopover.css.d.ts +1 -1
- package/dist/generated/themes/MultiComboBoxPopover.css.js +1 -1
- package/dist/generated/themes/MultiComboBoxPopover.css.js.map +1 -1
- package/dist/generated/themes/MultiInput.css.d.ts +1 -1
- package/dist/generated/themes/MultiInput.css.js +1 -1
- package/dist/generated/themes/MultiInput.css.js.map +1 -1
- package/dist/generated/themes/OptionBase.css.d.ts +1 -1
- package/dist/generated/themes/OptionBase.css.js +1 -1
- package/dist/generated/themes/OptionBase.css.js.map +1 -1
- package/dist/generated/themes/Panel.css.d.ts +1 -1
- package/dist/generated/themes/Panel.css.js +1 -1
- package/dist/generated/themes/Panel.css.js.map +1 -1
- package/dist/generated/themes/Popover.css.d.ts +1 -1
- package/dist/generated/themes/Popover.css.js +1 -1
- package/dist/generated/themes/Popover.css.js.map +1 -1
- package/dist/generated/themes/PopupsCommon.css.d.ts +1 -1
- package/dist/generated/themes/PopupsCommon.css.js +1 -1
- package/dist/generated/themes/PopupsCommon.css.js.map +1 -1
- package/dist/generated/themes/ProgressIndicator.css.d.ts +1 -1
- package/dist/generated/themes/ProgressIndicator.css.js +1 -1
- package/dist/generated/themes/ProgressIndicator.css.js.map +1 -1
- package/dist/generated/themes/RadioButton.css.d.ts +1 -1
- package/dist/generated/themes/RadioButton.css.js +1 -1
- package/dist/generated/themes/RadioButton.css.js.map +1 -1
- package/dist/generated/themes/RangeSlider.css.d.ts +1 -1
- package/dist/generated/themes/RangeSlider.css.js +1 -1
- package/dist/generated/themes/RangeSlider.css.js.map +1 -1
- package/dist/generated/themes/RatingIndicator.css.d.ts +1 -1
- package/dist/generated/themes/RatingIndicator.css.js +1 -1
- package/dist/generated/themes/RatingIndicator.css.js.map +1 -1
- package/dist/generated/themes/ResponsivePopover.css.d.ts +1 -1
- package/dist/generated/themes/ResponsivePopover.css.js +1 -1
- package/dist/generated/themes/ResponsivePopover.css.js.map +1 -1
- package/dist/generated/themes/ResponsivePopoverCommon.css.d.ts +1 -1
- package/dist/generated/themes/ResponsivePopoverCommon.css.js +1 -1
- package/dist/generated/themes/ResponsivePopoverCommon.css.js.map +1 -1
- package/dist/generated/themes/SegmentedButton.css.d.ts +1 -1
- package/dist/generated/themes/SegmentedButton.css.js +1 -1
- package/dist/generated/themes/SegmentedButton.css.js.map +1 -1
- package/dist/generated/themes/SegmentedButtonItem.css.d.ts +1 -1
- package/dist/generated/themes/SegmentedButtonItem.css.js +1 -1
- package/dist/generated/themes/SegmentedButtonItem.css.js.map +1 -1
- package/dist/generated/themes/Select.css.d.ts +1 -1
- package/dist/generated/themes/Select.css.js +1 -1
- package/dist/generated/themes/Select.css.js.map +1 -1
- package/dist/generated/themes/SliderBase.css.d.ts +1 -1
- package/dist/generated/themes/SliderBase.css.js +1 -1
- package/dist/generated/themes/SliderBase.css.js.map +1 -1
- package/dist/generated/themes/SplitButton.css.d.ts +1 -1
- package/dist/generated/themes/SplitButton.css.js +1 -1
- package/dist/generated/themes/SplitButton.css.js.map +1 -1
- package/dist/generated/themes/StepInput.css.d.ts +1 -1
- package/dist/generated/themes/StepInput.css.js +1 -1
- package/dist/generated/themes/StepInput.css.js.map +1 -1
- package/dist/generated/themes/SuggestionItem.css.d.ts +1 -1
- package/dist/generated/themes/SuggestionItem.css.js +1 -1
- package/dist/generated/themes/SuggestionItem.css.js.map +1 -1
- package/dist/generated/themes/SuggestionItemCustom.css.d.ts +1 -1
- package/dist/generated/themes/SuggestionItemCustom.css.js +1 -1
- package/dist/generated/themes/SuggestionItemCustom.css.js.map +1 -1
- package/dist/generated/themes/Switch.css.d.ts +1 -1
- package/dist/generated/themes/Switch.css.js +1 -1
- package/dist/generated/themes/Switch.css.js.map +1 -1
- package/dist/generated/themes/TabContainer.css.d.ts +1 -1
- package/dist/generated/themes/TabContainer.css.js +1 -1
- package/dist/generated/themes/TabContainer.css.js.map +1 -1
- package/dist/generated/themes/TabInOverflow.css.d.ts +1 -1
- package/dist/generated/themes/TabInOverflow.css.js +1 -1
- package/dist/generated/themes/TabInOverflow.css.js.map +1 -1
- package/dist/generated/themes/TabInStrip.css.d.ts +1 -1
- package/dist/generated/themes/TabInStrip.css.js +1 -1
- package/dist/generated/themes/TabInStrip.css.js.map +1 -1
- package/dist/generated/themes/TabSemanticIcon.css.d.ts +1 -1
- package/dist/generated/themes/TabSemanticIcon.css.js +1 -1
- package/dist/generated/themes/TabSemanticIcon.css.js.map +1 -1
- package/dist/generated/themes/TabSeparatorInOverflow.css.d.ts +1 -1
- package/dist/generated/themes/TabSeparatorInOverflow.css.js +1 -1
- package/dist/generated/themes/TabSeparatorInOverflow.css.js.map +1 -1
- package/dist/generated/themes/Table.css.d.ts +1 -1
- package/dist/generated/themes/Table.css.js +1 -1
- package/dist/generated/themes/Table.css.js.map +1 -1
- package/dist/generated/themes/TableCellBase.css.d.ts +1 -1
- package/dist/generated/themes/TableCellBase.css.js +1 -1
- package/dist/generated/themes/TableCellBase.css.js.map +1 -1
- package/dist/generated/themes/TableHeaderRow.css.d.ts +1 -1
- package/dist/generated/themes/TableHeaderRow.css.js +1 -1
- package/dist/generated/themes/TableHeaderRow.css.js.map +1 -1
- package/dist/generated/themes/TableRow.css.d.ts +1 -1
- package/dist/generated/themes/TableRow.css.js +1 -1
- package/dist/generated/themes/TableRow.css.js.map +1 -1
- package/dist/generated/themes/TableRowActionBase.css.d.ts +1 -1
- package/dist/generated/themes/TableRowActionBase.css.js +1 -1
- package/dist/generated/themes/TableRowActionBase.css.js.map +1 -1
- package/dist/generated/themes/TableRowBase.css.d.ts +1 -1
- package/dist/generated/themes/TableRowBase.css.js +1 -1
- package/dist/generated/themes/TableRowBase.css.js.map +1 -1
- package/dist/generated/themes/Tag.css.d.ts +1 -1
- package/dist/generated/themes/Tag.css.js +1 -1
- package/dist/generated/themes/Tag.css.js.map +1 -1
- package/dist/generated/themes/Text.css.d.ts +1 -1
- package/dist/generated/themes/Text.css.js +1 -1
- package/dist/generated/themes/Text.css.js.map +1 -1
- package/dist/generated/themes/TextArea.css.d.ts +1 -1
- package/dist/generated/themes/TextArea.css.js +1 -1
- package/dist/generated/themes/TextArea.css.js.map +1 -1
- package/dist/generated/themes/TimePicker.css.d.ts +1 -1
- package/dist/generated/themes/TimePicker.css.js +1 -1
- package/dist/generated/themes/TimePicker.css.js.map +1 -1
- package/dist/generated/themes/Toast.css.d.ts +1 -1
- package/dist/generated/themes/Toast.css.js +1 -1
- package/dist/generated/themes/Toast.css.js.map +1 -1
- package/dist/generated/themes/ToggleButton.css.d.ts +1 -1
- package/dist/generated/themes/ToggleButton.css.js +1 -1
- package/dist/generated/themes/ToggleButton.css.js.map +1 -1
- package/dist/generated/themes/Token.css.d.ts +1 -1
- package/dist/generated/themes/Token.css.js +1 -1
- package/dist/generated/themes/Token.css.js.map +1 -1
- package/dist/generated/themes/Tokenizer.css.d.ts +1 -1
- package/dist/generated/themes/Tokenizer.css.js +1 -1
- package/dist/generated/themes/Tokenizer.css.js.map +1 -1
- package/dist/generated/themes/TokenizerPopover.css.d.ts +1 -1
- package/dist/generated/themes/TokenizerPopover.css.js +1 -1
- package/dist/generated/themes/TokenizerPopover.css.js.map +1 -1
- package/dist/generated/themes/Toolbar.css.d.ts +1 -1
- package/dist/generated/themes/Toolbar.css.js +1 -1
- package/dist/generated/themes/Toolbar.css.js.map +1 -1
- package/dist/generated/themes/ToolbarPopover.css.d.ts +1 -1
- package/dist/generated/themes/ToolbarPopover.css.js +1 -1
- package/dist/generated/themes/ToolbarPopover.css.js.map +1 -1
- package/dist/generated/themes/TreeItem.css.d.ts +1 -1
- package/dist/generated/themes/TreeItem.css.js +1 -1
- package/dist/generated/themes/TreeItem.css.js.map +1 -1
- package/dist/generated/themes/ValueStateMessage.css.d.ts +1 -1
- package/dist/generated/themes/ValueStateMessage.css.js +1 -1
- package/dist/generated/themes/ValueStateMessage.css.js.map +1 -1
- package/dist/generated/themes/YearPicker.css.d.ts +1 -1
- package/dist/generated/themes/YearPicker.css.js +1 -1
- package/dist/generated/themes/YearPicker.css.js.map +1 -1
- package/dist/generated/themes/sap_fiori_3/parameters-bundle.css.d.ts +1 -1
- package/dist/generated/themes/sap_fiori_3/parameters-bundle.css.js +1 -1
- package/dist/generated/themes/sap_fiori_3/parameters-bundle.css.js.map +1 -1
- package/dist/generated/themes/sap_fiori_3_dark/parameters-bundle.css.d.ts +1 -1
- package/dist/generated/themes/sap_fiori_3_dark/parameters-bundle.css.js +1 -1
- package/dist/generated/themes/sap_fiori_3_dark/parameters-bundle.css.js.map +1 -1
- package/dist/generated/themes/sap_fiori_3_hcb/parameters-bundle.css.d.ts +1 -1
- package/dist/generated/themes/sap_fiori_3_hcb/parameters-bundle.css.js +1 -1
- package/dist/generated/themes/sap_fiori_3_hcb/parameters-bundle.css.js.map +1 -1
- package/dist/generated/themes/sap_fiori_3_hcw/parameters-bundle.css.d.ts +1 -1
- package/dist/generated/themes/sap_fiori_3_hcw/parameters-bundle.css.js +1 -1
- package/dist/generated/themes/sap_fiori_3_hcw/parameters-bundle.css.js.map +1 -1
- package/dist/generated/themes/sap_horizon/parameters-bundle.css.d.ts +1 -1
- package/dist/generated/themes/sap_horizon/parameters-bundle.css.js +1 -1
- package/dist/generated/themes/sap_horizon/parameters-bundle.css.js.map +1 -1
- package/dist/generated/themes/sap_horizon_dark/parameters-bundle.css.d.ts +1 -1
- package/dist/generated/themes/sap_horizon_dark/parameters-bundle.css.js +1 -1
- package/dist/generated/themes/sap_horizon_dark/parameters-bundle.css.js.map +1 -1
- package/dist/generated/themes/sap_horizon_hcb/parameters-bundle.css.d.ts +1 -1
- package/dist/generated/themes/sap_horizon_hcb/parameters-bundle.css.js +1 -1
- package/dist/generated/themes/sap_horizon_hcb/parameters-bundle.css.js.map +1 -1
- package/dist/generated/themes/sap_horizon_hcw/parameters-bundle.css.d.ts +1 -1
- package/dist/generated/themes/sap_horizon_hcw/parameters-bundle.css.js +1 -1
- package/dist/generated/themes/sap_horizon_hcw/parameters-bundle.css.js.map +1 -1
- package/dist/types/TableCellHorizontalAlign.d.ts +1 -0
- package/dist/types/TableCellHorizontalAlign.js +1 -0
- package/dist/types/TableCellHorizontalAlign.js.map +1 -1
- package/dist/types/TableGrowingMode.d.ts +1 -0
- package/dist/types/TableGrowingMode.js +1 -0
- package/dist/types/TableGrowingMode.js.map +1 -1
- package/dist/types/TableOverflowMode.d.ts +1 -0
- package/dist/types/TableOverflowMode.js +1 -0
- package/dist/types/TableOverflowMode.js.map +1 -1
- package/dist/types/TableSelectionMode.d.ts +1 -0
- package/dist/types/TableSelectionMode.js +1 -0
- package/dist/types/TableSelectionMode.js.map +1 -1
- package/dist/vscode.html-custom-data.json +5 -0
- package/dist/web-types.json +11 -1
- package/package.json +10 -10
- package/src/AvatarTemplate.tsx +1 -1
- package/src/ExpandableTextTemplate.tsx +0 -1
- package/src/InputPopoverTemplate.tsx +5 -2
- package/src/InputTemplate.tsx +5 -3
- package/src/ListTemplate.tsx +1 -1
- package/src/features/InputSuggestionsTemplate.tsx +10 -6
- package/src/i18n/messagebundle_en_US_sappsd.properties +2 -0
- package/src/i18n/messagebundle_en_US_saprigi.properties +2 -0
- package/src/i18n/messagebundle_en_US_saptrc.properties +2 -0
- package/src/themes/CheckBox.css +1 -1
- package/src/themes/List.css +1 -1
- package/src/themes/Tag.css +1 -6
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,27 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
# [2.8.0-rc.2](https://github.com/SAP/ui5-webcomponents/compare/v2.8.0-rc.1...v2.8.0-rc.2) (2025-02-20)
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
### Bug Fixes
|
|
10
|
+
|
|
11
|
+
* **ui5-avatar:** fix acc-name announcement ([#10854](https://github.com/SAP/ui5-webcomponents/issues/10854)) ([cb37653](https://github.com/SAP/ui5-webcomponents/commit/cb37653ae80a82ba0a588d127490798f787705af)), closes [#10461](https://github.com/SAP/ui5-webcomponents/issues/10461)
|
|
12
|
+
* **ui5-checkbox:** ensure consistent focus behavior ([#10639](https://github.com/SAP/ui5-webcomponents/issues/10639)) ([a73c8d8](https://github.com/SAP/ui5-webcomponents/commit/a73c8d814e7769d81ba43d2239f51269a6fe0859))
|
|
13
|
+
* **ui5-list:** add correct focus style and accessibility roles for no-data item ([#10503](https://github.com/SAP/ui5-webcomponents/issues/10503)) ([9a0bc7c](https://github.com/SAP/ui5-webcomponents/commit/9a0bc7c33f3ff104c50e84f7ffecf69f7dfe116a)), closes [#10436](https://github.com/SAP/ui5-webcomponents/issues/10436)
|
|
14
|
+
* **ui5-popover:** don't close the popover if the opener is clicked ([#10780](https://github.com/SAP/ui5-webcomponents/issues/10780)) ([bc9eb08](https://github.com/SAP/ui5-webcomponents/commit/bc9eb0841074918d5c26ee7a37b51f8284ce87ae))
|
|
15
|
+
* **ui5-popover:** popover is opened from header slot ([#10856](https://github.com/SAP/ui5-webcomponents/issues/10856)) ([c224672](https://github.com/SAP/ui5-webcomponents/commit/c22467261d7598fdc080fde214bf737142715865)), closes [#10544](https://github.com/SAP/ui5-webcomponents/issues/10544)
|
|
16
|
+
* **ui5-tag:** fix tag alignment ([#10852](https://github.com/SAP/ui5-webcomponents/issues/10852)) ([ae629dc](https://github.com/SAP/ui5-webcomponents/commit/ae629dce61baa751819e7b968cb4fa779309f4e1)), closes [#10810](https://github.com/SAP/ui5-webcomponents/issues/10810)
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
### Features
|
|
20
|
+
|
|
21
|
+
* **ui5-table-header-cell:** add popinHidden property ([#10834](https://github.com/SAP/ui5-webcomponents/issues/10834)) ([12e7dcd](https://github.com/SAP/ui5-webcomponents/commit/12e7dcd187f9f94150643bab7cbdc8ad7590337c))
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
|
|
6
27
|
# [2.8.0-rc.1](https://github.com/SAP/ui5-webcomponents/compare/v2.8.0-rc.0...v2.8.0-rc.1) (2025-02-13)
|
|
7
28
|
|
|
8
29
|
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import Avatar from "../../src/Avatar.js";
|
|
2
|
+
import "@ui5/webcomponents-icons/dist/supplier.js";
|
|
2
3
|
|
|
3
4
|
describe("Accessibility", () => {
|
|
4
5
|
it("checks if initials of avatar are correctly announced", () => {
|
|
@@ -15,4 +16,18 @@ describe("Accessibility", () => {
|
|
|
15
16
|
.find(".ui5-avatar-root")
|
|
16
17
|
.should("have.attr", "aria-label", expectedLabel);
|
|
17
18
|
});
|
|
19
|
+
|
|
20
|
+
it("checks if accessible-name is correctly passed to the icon", () => {
|
|
21
|
+
const ACCESSIBLE_NAME = "Supplier Icon";
|
|
22
|
+
const ICON_NAME = "supplier";
|
|
23
|
+
|
|
24
|
+
cy.mount(<Avatar id="avatar-with-icon" icon={ICON_NAME} accessible-name={ACCESSIBLE_NAME}></Avatar>);
|
|
25
|
+
|
|
26
|
+
cy.get("#avatar-with-icon")
|
|
27
|
+
.shadow()
|
|
28
|
+
.find("ui5-icon")
|
|
29
|
+
.shadow()
|
|
30
|
+
.find("svg")
|
|
31
|
+
.should("have.attr", "aria-label", ACCESSIBLE_NAME);
|
|
32
|
+
});
|
|
18
33
|
});
|
|
@@ -2,6 +2,8 @@ import Input from "../../src/Input.js";
|
|
|
2
2
|
import SuggestionItem from "../../src/SuggestionItem.js";
|
|
3
3
|
import SuggestionItemCustom from "../../src/SuggestionItemCustom.js";
|
|
4
4
|
import SuggestionItemGroup from "../../src/SuggestionItemGroup.js";
|
|
5
|
+
import Dialog from "../../src/Dialog.js";
|
|
6
|
+
import Button from "../../src/Button.js";
|
|
5
7
|
|
|
6
8
|
describe("Input Tests", () => {
|
|
7
9
|
it("tets input event prevention", () => {
|
|
@@ -534,4 +536,62 @@ describe("Change event behavior when selecting the same suggestion item", () =>
|
|
|
534
536
|
expect(changeCount).to.equal(1);
|
|
535
537
|
});
|
|
536
538
|
});
|
|
539
|
+
|
|
540
|
+
it("should not close the dialog when item is selected", () => {
|
|
541
|
+
cy.mount(
|
|
542
|
+
<>
|
|
543
|
+
<Button>Open</Button>
|
|
544
|
+
<Dialog>
|
|
545
|
+
<Input showSuggestions={true}>
|
|
546
|
+
<SuggestionItem text="First item"></SuggestionItem>
|
|
547
|
+
<SuggestionItem text="Second item"></SuggestionItem>
|
|
548
|
+
</Input>
|
|
549
|
+
</Dialog>
|
|
550
|
+
</>
|
|
551
|
+
);
|
|
552
|
+
|
|
553
|
+
cy.get("[ui5-button]")
|
|
554
|
+
.as("button");
|
|
555
|
+
|
|
556
|
+
cy.get("[ui5-dialog]")
|
|
557
|
+
.as("dialog");
|
|
558
|
+
|
|
559
|
+
cy.get("[ui5-input]")
|
|
560
|
+
.as("input");
|
|
561
|
+
|
|
562
|
+
cy.get("@button")
|
|
563
|
+
.then($btn => {
|
|
564
|
+
$btn[0].addEventListener("click", () => {
|
|
565
|
+
cy.get("@dialog").then($dialog => {
|
|
566
|
+
$dialog[0].setAttribute("open", "");
|
|
567
|
+
});
|
|
568
|
+
});
|
|
569
|
+
});
|
|
570
|
+
|
|
571
|
+
cy.get("@dialog")
|
|
572
|
+
.then($dialog => {
|
|
573
|
+
$dialog[0].addEventListener("close", () => {
|
|
574
|
+
$dialog[0].removeAttribute("open");
|
|
575
|
+
});
|
|
576
|
+
});
|
|
577
|
+
|
|
578
|
+
cy.get("@button")
|
|
579
|
+
.realClick();
|
|
580
|
+
|
|
581
|
+
cy.get("@input")
|
|
582
|
+
.realClick();
|
|
583
|
+
|
|
584
|
+
cy.get("@input")
|
|
585
|
+
.realType("f");
|
|
586
|
+
|
|
587
|
+
cy.get("[ui5-suggestion-item")
|
|
588
|
+
.eq(0)
|
|
589
|
+
.as("suggestion-item");
|
|
590
|
+
|
|
591
|
+
cy.get("@suggestion-item")
|
|
592
|
+
.click();
|
|
593
|
+
|
|
594
|
+
cy.get("@dialog")
|
|
595
|
+
.should("have.attr", "open");
|
|
596
|
+
});
|
|
537
597
|
});
|
|
@@ -63,3 +63,94 @@ describe("Popover opener", () => {
|
|
|
63
63
|
cy.get("#btnClosePopover").realClick();
|
|
64
64
|
});
|
|
65
65
|
});
|
|
66
|
+
|
|
67
|
+
describe("Popover interaction", () => {
|
|
68
|
+
describe("Automatic Closing", () => {
|
|
69
|
+
it("tests clicking outside the popover", () => {
|
|
70
|
+
cy.mount(
|
|
71
|
+
<>
|
|
72
|
+
<button id="opener">Open</button>
|
|
73
|
+
<Popover id="pop" open={true} opener="opener">
|
|
74
|
+
<Button id="btnClosePopover">Close</Button>
|
|
75
|
+
</Popover>
|
|
76
|
+
</>
|
|
77
|
+
);
|
|
78
|
+
|
|
79
|
+
cy.get("#pop").should("be.visible");
|
|
80
|
+
|
|
81
|
+
// act
|
|
82
|
+
cy.get("body").realClick();
|
|
83
|
+
|
|
84
|
+
// assert
|
|
85
|
+
cy.get("#pop").should("not.be.visible");
|
|
86
|
+
});
|
|
87
|
+
|
|
88
|
+
it("tests clicking on the opener", () => {
|
|
89
|
+
cy.mount(
|
|
90
|
+
<>
|
|
91
|
+
<button id="opener">Open</button>
|
|
92
|
+
<Popover id="pop" open={true} opener="opener">
|
|
93
|
+
<Button id="btnClosePopover">Close</Button>
|
|
94
|
+
</Popover>
|
|
95
|
+
</>
|
|
96
|
+
);
|
|
97
|
+
|
|
98
|
+
cy.get("#pop").should("be.visible");
|
|
99
|
+
|
|
100
|
+
// act
|
|
101
|
+
cy.get("#opener").realClick();
|
|
102
|
+
|
|
103
|
+
// assert
|
|
104
|
+
cy.get("#pop").should("be.visible");
|
|
105
|
+
});
|
|
106
|
+
|
|
107
|
+
it("tests clicking on the opener if both the popover and the opener are located in a shadow root", () => {
|
|
108
|
+
class OpenerShadowRootTest extends HTMLElement {
|
|
109
|
+
_shadow: ShadowRoot | null = null;
|
|
110
|
+
|
|
111
|
+
constructor() {
|
|
112
|
+
super();
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
connectedCallback() {
|
|
116
|
+
if (this._shadow) {
|
|
117
|
+
return;
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
this._shadow = this.attachShadow({ mode: "open" });
|
|
121
|
+
|
|
122
|
+
const btn = document.createElement("button");
|
|
123
|
+
btn.textContent = "Opener in Shadow Root";
|
|
124
|
+
btn.setAttribute("id", "opener");
|
|
125
|
+
|
|
126
|
+
const pop = document.createElement("ui5-popover") as Popover;
|
|
127
|
+
pop.opener = "opener";
|
|
128
|
+
pop.open = true;
|
|
129
|
+
|
|
130
|
+
this._shadow.appendChild(btn);
|
|
131
|
+
this._shadow.appendChild(pop);
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
cy.window().then(win => {
|
|
136
|
+
win.customElements.define("opener-shadow-root-test", OpenerShadowRootTest);
|
|
137
|
+
});
|
|
138
|
+
|
|
139
|
+
cy.mount(
|
|
140
|
+
<>
|
|
141
|
+
{/* @ts-expect-error */}
|
|
142
|
+
<opener-shadow-root-test id="openerShadowRooTest"></opener-shadow-root-test>
|
|
143
|
+
</>
|
|
144
|
+
);
|
|
145
|
+
|
|
146
|
+
// assert
|
|
147
|
+
cy.get("#openerShadowRooTest").shadow().find("[ui5-popover]").should("be.visible");
|
|
148
|
+
|
|
149
|
+
// act
|
|
150
|
+
cy.get("#openerShadowRooTest").shadow().find("button").realClick();
|
|
151
|
+
|
|
152
|
+
// assert
|
|
153
|
+
cy.get("#openerShadowRooTest").shadow().find("[ui5-popover]").should("be.visible");
|
|
154
|
+
});
|
|
155
|
+
});
|
|
156
|
+
});
|
|
@@ -60,38 +60,64 @@ describe("Table - Rendering", () => {
|
|
|
60
60
|
});
|
|
61
61
|
|
|
62
62
|
describe("Table - Popin Mode", () => {
|
|
63
|
-
|
|
63
|
+
function checkPopinState(expectedState: { poppedIn: string[], hidden: string[] }) {
|
|
64
|
+
cy.get("ui5-table-header-cell").each(($cell, index) => {
|
|
65
|
+
const id = $cell.attr("id") ?? "";
|
|
66
|
+
const shouldBePoppedIn = expectedState.poppedIn.includes(id);
|
|
67
|
+
const shouldBeHidden = expectedState.hidden.includes(id);
|
|
68
|
+
const roleCondition = shouldBePoppedIn || shouldBeHidden ? "not.have.attr" : "have.attr";
|
|
69
|
+
|
|
70
|
+
cy.wrap($cell)
|
|
71
|
+
.should(roleCondition, "role", ROLE_COLUMN_HEADER);
|
|
72
|
+
cy.get("ui5-table-header-row")
|
|
73
|
+
.shadow()
|
|
74
|
+
.find(`slot[name=default-${index + 1}]`)
|
|
75
|
+
.should(shouldBePoppedIn || shouldBeHidden ? "not.exist" : "exist");
|
|
76
|
+
});
|
|
77
|
+
|
|
78
|
+
cy.get("ui5-table-row").each($row => {
|
|
79
|
+
cy.wrap($row).find("ui5-table-cell").each(($cell, index) => {
|
|
80
|
+
const id = $cell.attr("id") ?? "NOT_FOUND";
|
|
81
|
+
const shouldBeHidden = expectedState.hidden.some(hiddenId => id.includes(hiddenId));
|
|
82
|
+
cy.wrap($row).shadow().find(`slot[name=default-${index + 1}]`)
|
|
83
|
+
.should(shouldBeHidden ? "not.exist" : "exist");
|
|
84
|
+
});
|
|
85
|
+
});
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
function mounTable(popinHidden = false) {
|
|
64
89
|
cy.mount(
|
|
65
90
|
<Table id="table" overflowMode="Popin">
|
|
66
91
|
<TableHeaderRow slot="headerRow">
|
|
67
92
|
<TableHeaderCell id="colA" minWidth="300px"><span>ColumnA</span></TableHeaderCell>
|
|
68
93
|
<TableHeaderCell id="colB" minWidth="200px">Column B</TableHeaderCell>
|
|
69
94
|
<TableHeaderCell id="colC" minWidth="200px">Column C</TableHeaderCell>
|
|
70
|
-
<TableHeaderCell id="colD" minWidth="150px" popinText="Column ?">Column D</TableHeaderCell>
|
|
95
|
+
<TableHeaderCell id="colD" minWidth="150px" popinText="Column ?" popinHidden={popinHidden}>Column D</TableHeaderCell>
|
|
71
96
|
</TableHeaderRow>
|
|
72
97
|
<TableRow>
|
|
73
|
-
<TableCell><Label>Cell A</Label></TableCell>
|
|
74
|
-
<TableCell><Label>Cell B</Label></TableCell>
|
|
75
|
-
<TableCell><Label>Cell C</Label></TableCell>
|
|
76
|
-
<TableCell><Label>Cell D</Label></TableCell>
|
|
98
|
+
<TableCell id="row-1-colA"><Label>Cell A</Label></TableCell>
|
|
99
|
+
<TableCell id="row-1-colB"><Label>Cell B</Label></TableCell>
|
|
100
|
+
<TableCell id="row-1-colC"><Label>Cell C</Label></TableCell>
|
|
101
|
+
<TableCell id="row-1-colD"><Label>Cell D</Label></TableCell>
|
|
77
102
|
</TableRow>
|
|
78
103
|
<TableRow>
|
|
79
|
-
<TableCell><Label>Cell A</Label></TableCell>
|
|
80
|
-
<TableCell><Label>Cell B</Label></TableCell>
|
|
81
|
-
<TableCell><Label>Cell C</Label></TableCell>
|
|
82
|
-
<TableCell><Label>Cell D</Label></TableCell>
|
|
104
|
+
<TableCell id="row-2-colA"><Label>Cell A</Label></TableCell>
|
|
105
|
+
<TableCell id="row-2-colB"><Label>Cell B</Label></TableCell>
|
|
106
|
+
<TableCell id="row-2-colC"><Label>Cell C</Label></TableCell>
|
|
107
|
+
<TableCell id="row-2-colD"><Label>Cell D</Label></TableCell>
|
|
83
108
|
</TableRow>
|
|
84
109
|
<TableRow>
|
|
85
|
-
<TableCell><Label>Cell A</Label></TableCell>
|
|
86
|
-
<TableCell><Label>Cell B</Label></TableCell>
|
|
87
|
-
<TableCell><Label>Cell C</Label></TableCell>
|
|
88
|
-
<TableCell><Label>Cell D</Label></TableCell>
|
|
110
|
+
<TableCell id="row-3-colA"><Label>Cell A</Label></TableCell>
|
|
111
|
+
<TableCell id="row-3-colB"><Label>Cell B</Label></TableCell>
|
|
112
|
+
<TableCell id="row-3-colC"><Label>Cell C</Label></TableCell>
|
|
113
|
+
<TableCell id="row-3-colD"><Label>Cell D</Label></TableCell>
|
|
89
114
|
</TableRow>
|
|
90
115
|
</Table>
|
|
91
116
|
);
|
|
92
|
-
}
|
|
117
|
+
}
|
|
93
118
|
|
|
94
119
|
it("no pop-in width 'optimal' table width", () => {
|
|
120
|
+
mounTable();
|
|
95
121
|
cy.get("ui5-table").then($table => {
|
|
96
122
|
$table.css("width", "850px");
|
|
97
123
|
});
|
|
@@ -103,17 +129,11 @@ describe("Table - Popin Mode", () => {
|
|
|
103
129
|
cy.get("ui5-table-header-cell")
|
|
104
130
|
.should("have.length", 4);
|
|
105
131
|
|
|
106
|
-
|
|
107
|
-
cy.wrap($cell)
|
|
108
|
-
.should("have.attr", "role", ROLE_COLUMN_HEADER);
|
|
109
|
-
cy.get("ui5-table-header-row")
|
|
110
|
-
.shadow()
|
|
111
|
-
.find(`slot[name=default-${index + 1}]`)
|
|
112
|
-
.should("exist");
|
|
113
|
-
});
|
|
132
|
+
checkPopinState({ poppedIn: [], hidden: [] });
|
|
114
133
|
});
|
|
115
134
|
|
|
116
135
|
it("test with one by one popping in", () => {
|
|
136
|
+
mounTable();
|
|
117
137
|
const testWidths = [
|
|
118
138
|
{ width: 850, poppedIn: [] },
|
|
119
139
|
{ width: 700, poppedIn: ["colD"] },
|
|
@@ -127,22 +147,12 @@ describe("Table - Popin Mode", () => {
|
|
|
127
147
|
$table.css("width", `${width}px`);
|
|
128
148
|
});
|
|
129
149
|
|
|
130
|
-
|
|
131
|
-
const id = $cell.attr("id") ?? "";
|
|
132
|
-
const shouldBePoppedIn = poppedIn.includes(id);
|
|
133
|
-
const roleCondition = shouldBePoppedIn ? "not.have.attr" : "have.attr";
|
|
134
|
-
|
|
135
|
-
cy.wrap($cell)
|
|
136
|
-
.should(roleCondition, "role", ROLE_COLUMN_HEADER);
|
|
137
|
-
cy.get("ui5-table-header-row")
|
|
138
|
-
.shadow()
|
|
139
|
-
.find(`slot[name=default-${index + 1}]`)
|
|
140
|
-
.should(shouldBePoppedIn ? "not.exist" : "exist");
|
|
141
|
-
});
|
|
150
|
+
checkPopinState({ poppedIn, hidden: [] });
|
|
142
151
|
});
|
|
143
152
|
});
|
|
144
153
|
|
|
145
154
|
it("test with one by one popping out", () => {
|
|
155
|
+
mounTable();
|
|
146
156
|
const testWidths = [
|
|
147
157
|
{ width: 150, poppedIn: ["colD", "colC", "colB"] },
|
|
148
158
|
{ width: 300, poppedIn: ["colD", "colC", "colB"] },
|
|
@@ -156,22 +166,12 @@ describe("Table - Popin Mode", () => {
|
|
|
156
166
|
$table.css("width", `${width}px`);
|
|
157
167
|
});
|
|
158
168
|
|
|
159
|
-
|
|
160
|
-
const id = $cell.attr("id") ?? "";
|
|
161
|
-
const shouldBePoppedIn = poppedIn.includes(id);
|
|
162
|
-
const roleCondition = shouldBePoppedIn ? "not.have.attr" : "have.attr";
|
|
163
|
-
|
|
164
|
-
cy.wrap($cell)
|
|
165
|
-
.should(roleCondition, "role", ROLE_COLUMN_HEADER);
|
|
166
|
-
cy.get("ui5-table-header-row")
|
|
167
|
-
.shadow()
|
|
168
|
-
.find(`slot[name=default-${index + 1}]`)
|
|
169
|
-
.should(shouldBePoppedIn ? "not.exist" : "exist");
|
|
170
|
-
});
|
|
169
|
+
checkPopinState({ poppedIn, hidden: [] });
|
|
171
170
|
});
|
|
172
171
|
});
|
|
173
172
|
|
|
174
173
|
it("test with random widths", () => {
|
|
174
|
+
mounTable();
|
|
175
175
|
const expectedStates = [
|
|
176
176
|
{ width: 500, poppedIn: ["colD", "colC", "colB"] },
|
|
177
177
|
{ width: 700, poppedIn: ["colD", "colC"] },
|
|
@@ -187,24 +187,12 @@ describe("Table - Popin Mode", () => {
|
|
|
187
187
|
});
|
|
188
188
|
|
|
189
189
|
const expectedState = expectedStates.find(state => state.width >= randomWidth);
|
|
190
|
-
|
|
191
|
-
cy.get("ui5-table-header-cell").each(($cell, index) => {
|
|
192
|
-
const id = $cell.attr("id") ?? "";
|
|
193
|
-
const shouldBePoppedIn = expectedState?.poppedIn.includes(id);
|
|
194
|
-
const roleCondition = shouldBePoppedIn ? "not.have.attr" : "have.attr";
|
|
195
|
-
|
|
196
|
-
cy.wrap($cell)
|
|
197
|
-
.should(roleCondition, "role", ROLE_COLUMN_HEADER);
|
|
198
|
-
|
|
199
|
-
cy.get("ui5-table-header-row")
|
|
200
|
-
.shadow()
|
|
201
|
-
.find(`slot[name=default-${index + 1}]`)
|
|
202
|
-
.should(shouldBePoppedIn ? "not.exist" : "exist");
|
|
203
|
-
});
|
|
190
|
+
checkPopinState({ poppedIn: expectedState?.poppedIn ?? [], hidden: [] });
|
|
204
191
|
}
|
|
205
192
|
});
|
|
206
193
|
|
|
207
194
|
it("should show the popin-text in the popin area", () => {
|
|
195
|
+
mounTable();
|
|
208
196
|
cy.get("ui5-table").then($table => {
|
|
209
197
|
$table.css("width", "150px");
|
|
210
198
|
});
|
|
@@ -232,6 +220,40 @@ describe("Table - Popin Mode", () => {
|
|
|
232
220
|
return popinCellCount && popinCellCount === validPopinTextCount;
|
|
233
221
|
}).should("be.true");
|
|
234
222
|
});
|
|
223
|
+
|
|
224
|
+
it("should hide column in popin if popinHidden is set", () => {
|
|
225
|
+
mounTable(true);
|
|
226
|
+
|
|
227
|
+
const testWidths = [
|
|
228
|
+
{ width: 150, poppedIn: ["colC", "colB"], hidden: ["colD"] },
|
|
229
|
+
{ width: 300, poppedIn: ["colC", "colB"], hidden: ["colD"] },
|
|
230
|
+
{ width: 500, poppedIn: ["colC"], hidden: ["colD"] },
|
|
231
|
+
{ width: 700, poppedIn: [], hidden: ["colD"] },
|
|
232
|
+
{ width: 850, poppedIn: [], hidden: [] },
|
|
233
|
+
];
|
|
234
|
+
|
|
235
|
+
testWidths.forEach(({ width, poppedIn, hidden }) => {
|
|
236
|
+
cy.get("ui5-table").then($table => {
|
|
237
|
+
$table.css("width", `${width}px`);
|
|
238
|
+
});
|
|
239
|
+
|
|
240
|
+
checkPopinState({ poppedIn, hidden });
|
|
241
|
+
});
|
|
242
|
+
});
|
|
243
|
+
|
|
244
|
+
it("should hide popin if popinHidden, shows it if changed on runtime", () => {
|
|
245
|
+
mounTable(true);
|
|
246
|
+
cy.get("ui5-table").then($table => {
|
|
247
|
+
$table.css("width", "150px");
|
|
248
|
+
});
|
|
249
|
+
|
|
250
|
+
checkPopinState({ poppedIn: ["colC", "colB"], hidden: ["colD"] });
|
|
251
|
+
|
|
252
|
+
cy.get("#colD")
|
|
253
|
+
.invoke("removeAttr", "popin-hidden");
|
|
254
|
+
|
|
255
|
+
checkPopinState({ poppedIn: ["colC", "colB", "colD"], hidden: [] });
|
|
256
|
+
});
|
|
235
257
|
});
|
|
236
258
|
|
|
237
259
|
describe("Table - Horizontal alignment of cells", () => {
|
|
@@ -0,0 +1,243 @@
|
|
|
1
|
+
import Label from "../../src/Label.js";
|
|
2
|
+
import Table from "../../src/Table.js";
|
|
3
|
+
import TableHeaderRow from "../../src/TableHeaderRow.js";
|
|
4
|
+
import TableHeaderCell from "../../src/TableHeaderCell.js";
|
|
5
|
+
import TableRow from "../../src/TableRow.js";
|
|
6
|
+
import TableCell from "../../src/TableCell.js";
|
|
7
|
+
import TableSelectionMode from "../../src/types/TableSelectionMode.js";
|
|
8
|
+
import TableSelection from "../../src/TableSelection.js";
|
|
9
|
+
|
|
10
|
+
function mountTestpage(selectionMode: TableSelectionMode) {
|
|
11
|
+
cy.mount(
|
|
12
|
+
<>
|
|
13
|
+
<Table id="table0" noDataText="No data found">
|
|
14
|
+
<TableSelection id="selection" slot="features" mode={selectionMode}></TableSelection>
|
|
15
|
+
<TableHeaderRow slot="headerRow">
|
|
16
|
+
<TableHeaderCell id="colA"><span>ColumnA</span></TableHeaderCell>
|
|
17
|
+
<TableHeaderCell id="colB">Column B</TableHeaderCell>
|
|
18
|
+
<TableHeaderCell id="colC">Column C</TableHeaderCell>
|
|
19
|
+
<TableHeaderCell id="colD">Column D</TableHeaderCell>
|
|
20
|
+
</TableHeaderRow>
|
|
21
|
+
<TableRow rowKey="0">
|
|
22
|
+
<TableCell><Label>Cell A</Label></TableCell>
|
|
23
|
+
<TableCell><Label>Cell B</Label></TableCell>
|
|
24
|
+
<TableCell><Label>Cell C</Label></TableCell>
|
|
25
|
+
<TableCell><Label>Cell D</Label></TableCell>
|
|
26
|
+
</TableRow>
|
|
27
|
+
<TableRow rowKey="1">
|
|
28
|
+
<TableCell><Label>Cell A</Label></TableCell>
|
|
29
|
+
<TableCell><Label>Cell B</Label></TableCell>
|
|
30
|
+
<TableCell><Label>Cell C</Label></TableCell>
|
|
31
|
+
<TableCell><Label>Cell D</Label></TableCell>
|
|
32
|
+
</TableRow>
|
|
33
|
+
<TableRow rowKey="2">
|
|
34
|
+
<TableCell><Label>Cell A</Label></TableCell>
|
|
35
|
+
<TableCell><Label>Cell B</Label></TableCell>
|
|
36
|
+
<TableCell><Label>Cell C</Label></TableCell>
|
|
37
|
+
<TableCell><Label>Cell D</Label></TableCell>
|
|
38
|
+
</TableRow>
|
|
39
|
+
<TableRow rowKey="3">
|
|
40
|
+
<TableCell><Label>Cell A</Label></TableCell>
|
|
41
|
+
<TableCell><Label>Cell B</Label></TableCell>
|
|
42
|
+
<TableCell><Label>Cell C</Label></TableCell>
|
|
43
|
+
<TableCell><Label>Cell D</Label></TableCell>
|
|
44
|
+
</TableRow>
|
|
45
|
+
<TableRow rowKey="4">
|
|
46
|
+
<TableCell><Label>Cell A</Label></TableCell>
|
|
47
|
+
<TableCell><Label>Cell B</Label></TableCell>
|
|
48
|
+
<TableCell><Label>Cell C</Label></TableCell>
|
|
49
|
+
<TableCell><Label>Cell D</Label></TableCell>
|
|
50
|
+
</TableRow>
|
|
51
|
+
</Table>
|
|
52
|
+
</>
|
|
53
|
+
);
|
|
54
|
+
|
|
55
|
+
cy.get("#table0").children("ui5-table-header-row").first().as("headerRow");
|
|
56
|
+
cy.get("#table0").children("ui5-table-row").get("[row-key=\"0\"]").as("row0");
|
|
57
|
+
cy.get("#table0").children("ui5-table-row").get("[row-key=\"4\"]").as("row4");
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
describe("Mode - None", () => {
|
|
61
|
+
before(() => {
|
|
62
|
+
mountTestpage(TableSelectionMode.None);
|
|
63
|
+
});
|
|
64
|
+
|
|
65
|
+
it("selection should be not active", () => {
|
|
66
|
+
cy.get("#selection").should("have.attr", "mode", TableSelectionMode.None);
|
|
67
|
+
cy.get("@headerRow").shadow().find("#selection-cell")
|
|
68
|
+
.should("not.exist");
|
|
69
|
+
cy.get("@row0").shadow().find("#selection-cell")
|
|
70
|
+
.should("not.exist");
|
|
71
|
+
});
|
|
72
|
+
});
|
|
73
|
+
|
|
74
|
+
const testConfig = {
|
|
75
|
+
"Single": {
|
|
76
|
+
"config": {
|
|
77
|
+
"mode": "Single",
|
|
78
|
+
},
|
|
79
|
+
"cases": {
|
|
80
|
+
"BOXES": {
|
|
81
|
+
"header": {
|
|
82
|
+
"exists": true,
|
|
83
|
+
"checkbox": false,
|
|
84
|
+
},
|
|
85
|
+
"row": {
|
|
86
|
+
"exists": true,
|
|
87
|
+
"checkbox": true,
|
|
88
|
+
},
|
|
89
|
+
},
|
|
90
|
+
"SPACE": {
|
|
91
|
+
"space_0": "0",
|
|
92
|
+
"space_4": "4",
|
|
93
|
+
},
|
|
94
|
+
"ARROWS_BOX": {
|
|
95
|
+
"arrow_initial": "0",
|
|
96
|
+
"arrow_down": "1",
|
|
97
|
+
"arrow_up": "0",
|
|
98
|
+
},
|
|
99
|
+
"MOUSE": {
|
|
100
|
+
"mouse_0": "0",
|
|
101
|
+
"mouse_4": "4",
|
|
102
|
+
},
|
|
103
|
+
"RANGE_MOUSE": {
|
|
104
|
+
"range_mouse_initial": "0",
|
|
105
|
+
"range_mouse_final": "4",
|
|
106
|
+
"range_mouse_edge": "0",
|
|
107
|
+
},
|
|
108
|
+
"RANGE_KEYBOARD": {
|
|
109
|
+
"initial": "0",
|
|
110
|
+
"block_1": "0",
|
|
111
|
+
"block_2": "3",
|
|
112
|
+
},
|
|
113
|
+
},
|
|
114
|
+
},
|
|
115
|
+
"Multiple": {
|
|
116
|
+
"config": {
|
|
117
|
+
"mode": "Multiple",
|
|
118
|
+
},
|
|
119
|
+
"cases": {
|
|
120
|
+
"BOXES": {
|
|
121
|
+
"header": {
|
|
122
|
+
"exists": true,
|
|
123
|
+
"checkbox": true
|
|
124
|
+
},
|
|
125
|
+
"row": {
|
|
126
|
+
"exists": true,
|
|
127
|
+
"checkbox": true
|
|
128
|
+
}
|
|
129
|
+
},
|
|
130
|
+
"SPACE": {
|
|
131
|
+
"space_0": "0",
|
|
132
|
+
"space_4": "0 4"
|
|
133
|
+
},
|
|
134
|
+
"ARROWS_BOX": {
|
|
135
|
+
"arrow_initial": "0",
|
|
136
|
+
"arrow_down": "0",
|
|
137
|
+
"arrow_up": "0"
|
|
138
|
+
},
|
|
139
|
+
"MOUSE": {
|
|
140
|
+
"mouse_0": "0",
|
|
141
|
+
"mouse_4": "0 4"
|
|
142
|
+
},
|
|
143
|
+
"RANGE_MOUSE": {
|
|
144
|
+
"range_mouse_initial": "0",
|
|
145
|
+
"range_mouse_final": "0 1 2 3 4",
|
|
146
|
+
"range_mouse_edge": "0 1 2 3 4"
|
|
147
|
+
},
|
|
148
|
+
"RANGE_KEYBOARD": {
|
|
149
|
+
"initial": "0",
|
|
150
|
+
"block_1": "0 1",
|
|
151
|
+
"block_2": "0 1 3 4"
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
};
|
|
156
|
+
|
|
157
|
+
// I've had to check the attribute this way because
|
|
158
|
+
// should("have.attr"... and similar functions always returned '' instead of the actual value
|
|
159
|
+
// It could be a timing issue but .wait didn't help either
|
|
160
|
+
function checkSelection(rowIndex: string) {
|
|
161
|
+
cy.get("#selection").then(sel => {
|
|
162
|
+
expect(sel.get(0).getAttribute("selected")).to.equal(rowIndex);
|
|
163
|
+
});
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
Object.entries(testConfig).forEach(([mode, testConfigEntry]) => {
|
|
167
|
+
describe(`Mode - ${mode}`, () => {
|
|
168
|
+
beforeEach(() => {
|
|
169
|
+
mountTestpage(testConfigEntry.config.mode as TableSelectionMode);
|
|
170
|
+
});
|
|
171
|
+
|
|
172
|
+
it("Correct boxes are shown", () => {
|
|
173
|
+
cy.get("@headerRow").shadow().find("#selection-cell")
|
|
174
|
+
.should(testConfigEntry.cases.BOXES.header.exists ? "exist" : "not.exist");
|
|
175
|
+
cy.get("@row0").shadow().find("#selection-cell")
|
|
176
|
+
.should(testConfigEntry.cases.BOXES.row.exists ? "exist" : "not.exist");
|
|
177
|
+
|
|
178
|
+
cy.get("@headerRow").shadow().find("#selection-component")
|
|
179
|
+
.should(testConfigEntry.cases.BOXES.header.checkbox ? "exist" : "not.exist");
|
|
180
|
+
cy.get("@row0").shadow().find("#selection-component")
|
|
181
|
+
.should(testConfigEntry.cases.BOXES.row.checkbox ? "exist" : "not.exist");
|
|
182
|
+
});
|
|
183
|
+
|
|
184
|
+
it("select row via SPACE", () => {
|
|
185
|
+
cy.get("@row0").realClick({ position: "left" });
|
|
186
|
+
cy.get("@row0").realPress("Space");
|
|
187
|
+
checkSelection(testConfigEntry.cases.SPACE.space_0);
|
|
188
|
+
|
|
189
|
+
cy.get("@row4").realClick();
|
|
190
|
+
cy.get("@row4").realPress("Space");
|
|
191
|
+
cy.get("#selection").should("have.attr", "mode", testConfigEntry.config.mode);
|
|
192
|
+
checkSelection(testConfigEntry.cases.SPACE.space_4);
|
|
193
|
+
});
|
|
194
|
+
|
|
195
|
+
it("select row via arrows (radio focus)", () => {
|
|
196
|
+
cy.get("@row0").shadow().find("#selection-component").realClick();
|
|
197
|
+
checkSelection(testConfigEntry.cases.ARROWS_BOX.arrow_initial);
|
|
198
|
+
|
|
199
|
+
cy.realPress("ArrowDown");
|
|
200
|
+
checkSelection(testConfigEntry.cases.ARROWS_BOX.arrow_down);
|
|
201
|
+
|
|
202
|
+
cy.realPress("ArrowUp");
|
|
203
|
+
checkSelection(testConfigEntry.cases.ARROWS_BOX.arrow_up);
|
|
204
|
+
});
|
|
205
|
+
|
|
206
|
+
it("select row via mouse", () => {
|
|
207
|
+
cy.get("@row0").shadow().find("#selection-component").realClick();
|
|
208
|
+
checkSelection(testConfigEntry.cases.MOUSE.mouse_0);
|
|
209
|
+
|
|
210
|
+
cy.get("@row4").shadow().find("#selection-component").realClick();
|
|
211
|
+
checkSelection(testConfigEntry.cases.MOUSE.mouse_4);
|
|
212
|
+
});
|
|
213
|
+
|
|
214
|
+
it("range selection with mouse", () => {
|
|
215
|
+
cy.get("@row0").shadow().find("#selection-component").realClick();
|
|
216
|
+
checkSelection(testConfigEntry.cases.RANGE_MOUSE.range_mouse_initial);
|
|
217
|
+
|
|
218
|
+
// Need to simulate keydown with SHIFT key to set range selection flag shiftKeyPressed
|
|
219
|
+
// Cypress does not trigger keydown when just calling realClick with shiftKey: true
|
|
220
|
+
// That is why selection of the row is not supressed, and we end up with 0 4 1 2 3
|
|
221
|
+
cy.get("@row4").trigger("keydown", { bubbles: true, key: "Shift", shiftKey: true });
|
|
222
|
+
cy.get("@row4").shadow().find("#selection-component").realClick({ shiftKey: true });
|
|
223
|
+
checkSelection(testConfigEntry.cases.RANGE_MOUSE.range_mouse_final);
|
|
224
|
+
|
|
225
|
+
cy.get("@row4").trigger("keydown", { bubbles: true, key: "Shift", shiftKey: true });
|
|
226
|
+
cy.get("@row0").shadow().find("#selection-component").realClick();
|
|
227
|
+
checkSelection(testConfigEntry.cases.RANGE_MOUSE.range_mouse_edge);
|
|
228
|
+
});
|
|
229
|
+
|
|
230
|
+
it("range selection with keyboard", () => {
|
|
231
|
+
cy.get("@row0").realClick({ position: "center" });
|
|
232
|
+
cy.get("@row0").realPress("Space");
|
|
233
|
+
checkSelection(testConfigEntry.cases.RANGE_KEYBOARD.initial);
|
|
234
|
+
|
|
235
|
+
cy.realPress(["Shift", "ArrowDown", "ArrowDown", "ArrowDown", "ArrowUp", "ArrowUp"]);
|
|
236
|
+
checkSelection(testConfigEntry.cases.RANGE_KEYBOARD.block_1);
|
|
237
|
+
|
|
238
|
+
cy.realPress(["ArrowDown", "ArrowDown", "Space"]);
|
|
239
|
+
cy.realPress(["Shift", "ArrowDown"]);
|
|
240
|
+
checkSelection(testConfigEntry.cases.RANGE_KEYBOARD.block_2);
|
|
241
|
+
});
|
|
242
|
+
});
|
|
243
|
+
});
|