@ui5/webcomponents 2.4.0 → 2.5.0-rc.0
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 +33 -0
- package/cypress/specs/ColorPicker.cy.ts +27 -0
- package/cypress/specs/Form.cy.ts +250 -44
- package/cypress/specs/LitKeyFunction.cy.ts +20 -13
- package/cypress/specs/TableGrowing.cy.ts +358 -0
- package/cypress/specs/Tokenizer.cy.ts +114 -0
- package/cypress/specs/Toolbar.cy.ts +25 -0
- package/cypress/specs/Tree.cy.ts +29 -0
- package/cypress/specs/base/{AriaLabelHelper.cy.ts → AccessibilityTextsHelper.cy.ts} +37 -1
- package/cypress/specs/base/Events.cy.ts +34 -5
- package/cypress/support/commands/Menu.commands.ts +1 -2
- package/cypress/support/commands.ts +1 -0
- package/dist/.tsbuildinfo +1 -1
- package/dist/Button.js +1 -1
- package/dist/Button.js.map +1 -1
- package/dist/Card.js +1 -1
- package/dist/Card.js.map +1 -1
- package/dist/CardHeader.d.ts +1 -1
- package/dist/CardHeader.js +1 -1
- package/dist/CardHeader.js.map +1 -1
- package/dist/Carousel.js +1 -1
- package/dist/Carousel.js.map +1 -1
- package/dist/CheckBox.js +1 -1
- package/dist/CheckBox.js.map +1 -1
- package/dist/ColorPicker.d.ts +9 -0
- package/dist/ColorPicker.js +14 -0
- package/dist/ColorPicker.js.map +1 -1
- package/dist/ComboBox.d.ts +0 -1
- package/dist/ComboBox.js +11 -13
- package/dist/ComboBox.js.map +1 -1
- package/dist/ComboBoxItem.d.ts +11 -5
- package/dist/ComboBoxItem.js +21 -8
- package/dist/ComboBoxItem.js.map +1 -1
- package/dist/ComboBoxItemGroup.d.ts +5 -20
- package/dist/ComboBoxItemGroup.js +9 -26
- package/dist/ComboBoxItemGroup.js.map +1 -1
- package/dist/DatePicker.js +3 -3
- package/dist/DatePicker.js.map +1 -1
- package/dist/Form.d.ts +12 -2
- package/dist/Form.js +21 -1
- package/dist/Form.js.map +1 -1
- package/dist/FormGroup.js +4 -1
- package/dist/FormGroup.js.map +1 -1
- package/dist/Input.js +1 -1
- package/dist/Input.js.map +1 -1
- package/dist/Link.js +1 -1
- package/dist/Link.js.map +1 -1
- package/dist/List.d.ts +27 -1
- package/dist/List.js +25 -4
- package/dist/List.js.map +1 -1
- package/dist/Menu.js +1 -1
- package/dist/Menu.js.map +1 -1
- package/dist/MultiComboBox.d.ts +1 -4
- package/dist/MultiComboBox.js +46 -37
- package/dist/MultiComboBox.js.map +1 -1
- package/dist/MultiComboBoxItem.d.ts +5 -1
- package/dist/MultiComboBoxItem.js +34 -4
- package/dist/MultiComboBoxItem.js.map +1 -1
- package/dist/MultiComboBoxItemGroup.d.ts +5 -10
- package/dist/MultiComboBoxItemGroup.js +12 -9
- package/dist/MultiComboBoxItemGroup.js.map +1 -1
- package/dist/Popover.js +4 -3
- package/dist/Popover.js.map +1 -1
- package/dist/Popup.js +1 -1
- package/dist/Popup.js.map +1 -1
- package/dist/RadioButton.js +1 -1
- package/dist/RadioButton.js.map +1 -1
- package/dist/RatingIndicator.js +1 -1
- package/dist/RatingIndicator.js.map +1 -1
- package/dist/SegmentedButtonItem.js +1 -1
- package/dist/SegmentedButtonItem.js.map +1 -1
- package/dist/Select.js +11 -1
- package/dist/Select.js.map +1 -1
- package/dist/StepInput.js +1 -1
- package/dist/StepInput.js.map +1 -1
- package/dist/Switch.js +1 -1
- package/dist/Switch.js.map +1 -1
- package/dist/Table.js +1 -1
- package/dist/Table.js.map +1 -1
- package/dist/TableGrowing.d.ts +5 -0
- package/dist/TableGrowing.js +21 -12
- package/dist/TableGrowing.js.map +1 -1
- package/dist/TextArea.js +1 -1
- package/dist/TextArea.js.map +1 -1
- package/dist/TimePicker.js +1 -1
- package/dist/TimePicker.js.map +1 -1
- package/dist/Tokenizer.d.ts +23 -2
- package/dist/Tokenizer.js +72 -15
- package/dist/Tokenizer.js.map +1 -1
- package/dist/Toolbar.js +1 -1
- package/dist/Toolbar.js.map +1 -1
- package/dist/Tree.d.ts +14 -1
- package/dist/Tree.js +6 -4
- package/dist/Tree.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/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 -0
- package/dist/css/themes/DatePicker.css +1 -1
- package/dist/css/themes/DateTimePickerPopover.css +1 -1
- package/dist/css/themes/DayPicker.css +1 -1
- package/dist/css/themes/Dialog.css +1 -1
- package/dist/css/themes/FileUploader.css +1 -1
- package/dist/css/themes/Form.css +1 -1
- package/dist/css/themes/FormItem.css +1 -1
- package/dist/css/themes/FormLabelSpan.css +1 -1
- package/dist/css/themes/GrowingButton.css +1 -1
- package/dist/css/themes/Icon.css +1 -1
- package/dist/css/themes/Input.css +1 -1
- package/dist/css/themes/InputIcon.css +1 -1
- package/dist/css/themes/InputSharedStyles.css +1 -1
- package/dist/css/themes/Link.css +1 -1
- package/dist/css/themes/List.css +1 -1
- package/dist/css/themes/ListItem.css +1 -1
- package/dist/css/themes/ListItemBase.css +1 -1
- package/dist/css/themes/ListItemCustom.css +1 -1
- package/dist/css/themes/ListItemGroup.css +1 -1
- package/dist/css/themes/ListItemGroupHeader.css +1 -1
- package/dist/css/themes/ListItemIcon.css +1 -1
- package/dist/css/themes/Menu.css +1 -1
- package/dist/css/themes/MenuItem.css +1 -1
- package/dist/css/themes/MessageStrip.css +1 -1
- package/dist/css/themes/MonthPicker.css +1 -1
- package/dist/css/themes/MultiComboBox.css +1 -1
- package/dist/css/themes/MultiComboBoxItem.css +1 -0
- package/dist/css/themes/MultiComboBoxPopover.css +1 -1
- package/dist/css/themes/MultiInput.css +1 -1
- package/dist/css/themes/NavigationMenu.css +1 -1
- package/dist/css/themes/NavigationMenuItem.css +1 -1
- package/dist/css/themes/OptionBase.css +1 -1
- package/dist/css/themes/Panel.css +1 -1
- package/dist/css/themes/Popover.css +1 -1
- package/dist/css/themes/PopupsCommon.css +1 -1
- package/dist/css/themes/ProgressIndicator.css +1 -1
- package/dist/css/themes/RadioButton.css +1 -1
- package/dist/css/themes/RangeSlider.css +1 -1
- package/dist/css/themes/RatingIndicator.css +1 -1
- package/dist/css/themes/ResponsivePopover.css +1 -1
- package/dist/css/themes/ResponsivePopoverCommon.css +1 -1
- package/dist/css/themes/SegmentedButton.css +1 -1
- package/dist/css/themes/SegmentedButtonItem.css +1 -1
- package/dist/css/themes/Select.css +1 -1
- package/dist/css/themes/SliderBase.css +1 -1
- package/dist/css/themes/SplitButton.css +1 -1
- package/dist/css/themes/StepInput.css +1 -1
- package/dist/css/themes/SuggestionItem.css +1 -1
- package/dist/css/themes/SuggestionItemCustom.css +1 -1
- package/dist/css/themes/Switch.css +1 -1
- package/dist/css/themes/TabContainer.css +1 -1
- package/dist/css/themes/TabInOverflow.css +1 -1
- package/dist/css/themes/TabInStrip.css +1 -1
- package/dist/css/themes/TabSemanticIcon.css +1 -1
- package/dist/css/themes/TabSeparatorInOverflow.css +1 -1
- package/dist/css/themes/Table.css +1 -1
- package/dist/css/themes/TableCellBase.css +1 -1
- package/dist/css/themes/TableHeaderRow.css +1 -1
- package/dist/css/themes/TableRow.css +1 -1
- package/dist/css/themes/TableRowBase.css +1 -1
- package/dist/css/themes/Tag.css +1 -1
- package/dist/css/themes/Text.css +1 -1
- package/dist/css/themes/TextArea.css +1 -1
- package/dist/css/themes/TimePicker.css +1 -1
- package/dist/css/themes/Toast.css +1 -1
- package/dist/css/themes/ToggleButton.css +1 -1
- package/dist/css/themes/Token.css +1 -1
- package/dist/css/themes/Tokenizer.css +1 -1
- package/dist/css/themes/TokenizerPopover.css +1 -1
- package/dist/css/themes/Toolbar.css +1 -1
- package/dist/css/themes/ToolbarPopover.css +1 -1
- package/dist/css/themes/TreeItem.css +1 -1
- package/dist/css/themes/ValueStateMessage.css +1 -1
- package/dist/css/themes/YearPicker.css +1 -1
- package/dist/css/themes/sap_fiori_3/parameters-bundle.css +1 -1
- package/dist/css/themes/sap_fiori_3_dark/parameters-bundle.css +1 -1
- package/dist/css/themes/sap_fiori_3_hcb/parameters-bundle.css +1 -1
- package/dist/css/themes/sap_fiori_3_hcw/parameters-bundle.css +1 -1
- package/dist/css/themes/sap_horizon/parameters-bundle.css +1 -1
- package/dist/css/themes/sap_horizon_dark/parameters-bundle.css +1 -1
- package/dist/css/themes/sap_horizon_dark_exp/parameters-bundle.css +1 -1
- package/dist/css/themes/sap_horizon_exp/parameters-bundle.css +1 -1
- package/dist/css/themes/sap_horizon_hcb/parameters-bundle.css +1 -1
- package/dist/css/themes/sap_horizon_hcb_exp/parameters-bundle.css +1 -1
- package/dist/css/themes/sap_horizon_hcw/parameters-bundle.css +1 -1
- package/dist/css/themes/sap_horizon_hcw_exp/parameters-bundle.css +1 -1
- package/dist/custom-elements-internal.json +540 -99
- package/dist/custom-elements.json +366 -46
- package/dist/generated/assets/i18n/messagebundle_sv.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_dark_exp/parameters-bundle.css.json +1 -1
- package/dist/generated/assets/themes/sap_horizon_exp/parameters-bundle.css.json +1 -1
- package/dist/generated/assets/themes/sap_horizon_hcb/parameters-bundle.css.json +1 -1
- package/dist/generated/assets/themes/sap_horizon_hcb_exp/parameters-bundle.css.json +1 -1
- package/dist/generated/assets/themes/sap_horizon_hcw/parameters-bundle.css.json +1 -1
- package/dist/generated/assets/themes/sap_horizon_hcw_exp/parameters-bundle.css.json +1 -1
- package/dist/generated/i18n/i18n-defaults.d.ts +2 -1
- package/dist/generated/i18n/i18n-defaults.js +2 -1
- package/dist/generated/i18n/i18n-defaults.js.map +1 -1
- package/dist/generated/templates/ColorPickerTemplate.lit.js +3 -1
- package/dist/generated/templates/ColorPickerTemplate.lit.js.map +1 -1
- package/dist/generated/templates/ComboBoxItemGroupTemplate.lit.d.ts +4 -0
- package/dist/generated/templates/ComboBoxItemGroupTemplate.lit.js +10 -0
- package/dist/generated/templates/ComboBoxItemGroupTemplate.lit.js.map +1 -0
- package/dist/generated/templates/ComboBoxItemTemplate.lit.d.ts +4 -0
- package/dist/generated/templates/ComboBoxItemTemplate.lit.js +6 -0
- package/dist/generated/templates/ComboBoxItemTemplate.lit.js.map +1 -0
- package/dist/generated/templates/ComboBoxPopoverTemplate.lit.js +6 -11
- package/dist/generated/templates/ComboBoxPopoverTemplate.lit.js.map +1 -1
- package/dist/generated/templates/ComboBoxTemplate.lit.js +6 -11
- package/dist/generated/templates/ComboBoxTemplate.lit.js.map +1 -1
- package/dist/generated/templates/FormTemplate.lit.js +3 -3
- package/dist/generated/templates/FormTemplate.lit.js.map +1 -1
- package/dist/generated/templates/ListTemplate.lit.js +1 -1
- package/dist/generated/templates/ListTemplate.lit.js.map +1 -1
- package/dist/generated/templates/MultiComboBoxItemGroupTemplate.lit.d.ts +4 -0
- package/dist/generated/templates/MultiComboBoxItemGroupTemplate.lit.js +10 -0
- package/dist/generated/templates/MultiComboBoxItemGroupTemplate.lit.js.map +1 -0
- package/dist/generated/templates/MultiComboBoxItemTemplate.lit.d.ts +4 -0
- package/dist/generated/templates/MultiComboBoxItemTemplate.lit.js +6 -0
- package/dist/generated/templates/MultiComboBoxItemTemplate.lit.js.map +1 -0
- package/dist/generated/templates/MultiComboBoxPopoverTemplate.lit.js +11 -19
- package/dist/generated/templates/MultiComboBoxPopoverTemplate.lit.js.map +1 -1
- package/dist/generated/templates/MultiComboBoxTemplate.lit.js +11 -19
- package/dist/generated/templates/MultiComboBoxTemplate.lit.js.map +1 -1
- package/dist/generated/templates/TokenizerTemplate.lit.js +7 -6
- package/dist/generated/templates/TokenizerTemplate.lit.js.map +1 -1
- package/dist/generated/templates/TreeTemplate.lit.js +1 -1
- package/dist/generated/templates/TreeTemplate.lit.js.map +1 -1
- package/dist/generated/themes/Avatar.css.js +1 -1
- package/dist/generated/themes/Avatar.css.js.map +1 -1
- package/dist/generated/themes/AvatarGroup.css.js +1 -1
- package/dist/generated/themes/AvatarGroup.css.js.map +1 -1
- package/dist/generated/themes/Bar.css.js +1 -1
- package/dist/generated/themes/Bar.css.js.map +1 -1
- package/dist/generated/themes/Breadcrumbs.css.js +1 -1
- package/dist/generated/themes/Breadcrumbs.css.js.map +1 -1
- package/dist/generated/themes/BusyIndicator.css.js +1 -1
- package/dist/generated/themes/BusyIndicator.css.js.map +1 -1
- package/dist/generated/themes/Button.css.js +1 -1
- package/dist/generated/themes/Button.css.js.map +1 -1
- package/dist/generated/themes/Calendar.css.js +1 -1
- package/dist/generated/themes/Calendar.css.js.map +1 -1
- package/dist/generated/themes/CalendarHeader.css.js +1 -1
- package/dist/generated/themes/CalendarHeader.css.js.map +1 -1
- package/dist/generated/themes/CalendarLegend.css.js +1 -1
- package/dist/generated/themes/CalendarLegend.css.js.map +1 -1
- package/dist/generated/themes/CalendarLegendItem.css.js +1 -1
- package/dist/generated/themes/CalendarLegendItem.css.js.map +1 -1
- package/dist/generated/themes/Card.css.js +1 -1
- package/dist/generated/themes/Card.css.js.map +1 -1
- package/dist/generated/themes/CardHeader.css.js +1 -1
- package/dist/generated/themes/CardHeader.css.js.map +1 -1
- package/dist/generated/themes/Carousel.css.js +1 -1
- package/dist/generated/themes/Carousel.css.js.map +1 -1
- package/dist/generated/themes/CheckBox.css.js +1 -1
- package/dist/generated/themes/CheckBox.css.js.map +1 -1
- package/dist/generated/themes/ColorPalette.css.js +1 -1
- package/dist/generated/themes/ColorPalette.css.js.map +1 -1
- package/dist/generated/themes/ColorPaletteItem.css.js +1 -1
- package/dist/generated/themes/ColorPaletteItem.css.js.map +1 -1
- package/dist/generated/themes/ColorPalettePopover.css.js +1 -1
- package/dist/generated/themes/ColorPalettePopover.css.js.map +1 -1
- package/dist/generated/themes/ColorPicker.css.js +1 -1
- package/dist/generated/themes/ColorPicker.css.js.map +1 -1
- package/dist/generated/themes/ComboBox.css.js +1 -1
- package/dist/generated/themes/ComboBox.css.js.map +1 -1
- package/dist/generated/themes/ComboBoxItem.css.d.ts +3 -0
- package/dist/generated/themes/ComboBoxItem.css.js +9 -0
- package/dist/generated/themes/ComboBoxItem.css.js.map +1 -0
- package/dist/generated/themes/DatePicker.css.js +1 -1
- package/dist/generated/themes/DatePicker.css.js.map +1 -1
- package/dist/generated/themes/DateTimePickerPopover.css.js +1 -1
- package/dist/generated/themes/DateTimePickerPopover.css.js.map +1 -1
- package/dist/generated/themes/DayPicker.css.js +1 -1
- package/dist/generated/themes/DayPicker.css.js.map +1 -1
- package/dist/generated/themes/Dialog.css.js +1 -1
- package/dist/generated/themes/Dialog.css.js.map +1 -1
- package/dist/generated/themes/FileUploader.css.js +1 -1
- package/dist/generated/themes/FileUploader.css.js.map +1 -1
- package/dist/generated/themes/Form.css.js +1 -1
- package/dist/generated/themes/Form.css.js.map +1 -1
- package/dist/generated/themes/FormItem.css.js +1 -1
- package/dist/generated/themes/FormItem.css.js.map +1 -1
- package/dist/generated/themes/FormLabelSpan.css.js +1 -1
- package/dist/generated/themes/FormLabelSpan.css.js.map +1 -1
- package/dist/generated/themes/GrowingButton.css.js +1 -1
- package/dist/generated/themes/GrowingButton.css.js.map +1 -1
- package/dist/generated/themes/Icon.css.js +1 -1
- package/dist/generated/themes/Icon.css.js.map +1 -1
- package/dist/generated/themes/Input.css.js +1 -1
- package/dist/generated/themes/Input.css.js.map +1 -1
- package/dist/generated/themes/InputIcon.css.js +1 -1
- package/dist/generated/themes/InputIcon.css.js.map +1 -1
- package/dist/generated/themes/InputSharedStyles.css.js +1 -1
- package/dist/generated/themes/InputSharedStyles.css.js.map +1 -1
- package/dist/generated/themes/Link.css.js +1 -1
- package/dist/generated/themes/Link.css.js.map +1 -1
- package/dist/generated/themes/List.css.js +1 -1
- package/dist/generated/themes/List.css.js.map +1 -1
- package/dist/generated/themes/ListItem.css.js +1 -1
- package/dist/generated/themes/ListItem.css.js.map +1 -1
- package/dist/generated/themes/ListItemBase.css.js +1 -1
- package/dist/generated/themes/ListItemBase.css.js.map +1 -1
- package/dist/generated/themes/ListItemCustom.css.js +1 -1
- package/dist/generated/themes/ListItemCustom.css.js.map +1 -1
- package/dist/generated/themes/ListItemGroup.css.js +1 -1
- package/dist/generated/themes/ListItemGroup.css.js.map +1 -1
- package/dist/generated/themes/ListItemGroupHeader.css.js +1 -1
- package/dist/generated/themes/ListItemGroupHeader.css.js.map +1 -1
- package/dist/generated/themes/ListItemIcon.css.js +1 -1
- package/dist/generated/themes/ListItemIcon.css.js.map +1 -1
- package/dist/generated/themes/Menu.css.js +1 -1
- package/dist/generated/themes/Menu.css.js.map +1 -1
- package/dist/generated/themes/MenuItem.css.js +1 -1
- package/dist/generated/themes/MenuItem.css.js.map +1 -1
- package/dist/generated/themes/MessageStrip.css.js +1 -1
- package/dist/generated/themes/MessageStrip.css.js.map +1 -1
- package/dist/generated/themes/MonthPicker.css.js +1 -1
- package/dist/generated/themes/MonthPicker.css.js.map +1 -1
- package/dist/generated/themes/MultiComboBox.css.js +1 -1
- package/dist/generated/themes/MultiComboBox.css.js.map +1 -1
- package/dist/generated/themes/MultiComboBoxItem.css.d.ts +3 -0
- package/dist/generated/themes/MultiComboBoxItem.css.js +9 -0
- package/dist/generated/themes/MultiComboBoxItem.css.js.map +1 -0
- package/dist/generated/themes/MultiComboBoxPopover.css.js +1 -1
- package/dist/generated/themes/MultiComboBoxPopover.css.js.map +1 -1
- package/dist/generated/themes/MultiInput.css.js +1 -1
- package/dist/generated/themes/MultiInput.css.js.map +1 -1
- package/dist/generated/themes/NavigationMenu.css.js +1 -1
- package/dist/generated/themes/NavigationMenu.css.js.map +1 -1
- package/dist/generated/themes/NavigationMenuItem.css.js +1 -1
- package/dist/generated/themes/NavigationMenuItem.css.js.map +1 -1
- package/dist/generated/themes/OptionBase.css.js +1 -1
- package/dist/generated/themes/OptionBase.css.js.map +1 -1
- package/dist/generated/themes/Panel.css.js +1 -1
- package/dist/generated/themes/Panel.css.js.map +1 -1
- package/dist/generated/themes/Popover.css.js +1 -1
- package/dist/generated/themes/Popover.css.js.map +1 -1
- package/dist/generated/themes/PopupsCommon.css.js +1 -1
- package/dist/generated/themes/PopupsCommon.css.js.map +1 -1
- package/dist/generated/themes/ProgressIndicator.css.js +1 -1
- package/dist/generated/themes/ProgressIndicator.css.js.map +1 -1
- package/dist/generated/themes/RadioButton.css.js +1 -1
- package/dist/generated/themes/RadioButton.css.js.map +1 -1
- package/dist/generated/themes/RangeSlider.css.js +1 -1
- package/dist/generated/themes/RangeSlider.css.js.map +1 -1
- package/dist/generated/themes/RatingIndicator.css.js +1 -1
- package/dist/generated/themes/RatingIndicator.css.js.map +1 -1
- package/dist/generated/themes/ResponsivePopover.css.js +1 -1
- package/dist/generated/themes/ResponsivePopover.css.js.map +1 -1
- package/dist/generated/themes/ResponsivePopoverCommon.css.js +1 -1
- package/dist/generated/themes/ResponsivePopoverCommon.css.js.map +1 -1
- package/dist/generated/themes/SegmentedButton.css.js +1 -1
- package/dist/generated/themes/SegmentedButton.css.js.map +1 -1
- package/dist/generated/themes/SegmentedButtonItem.css.js +1 -1
- package/dist/generated/themes/SegmentedButtonItem.css.js.map +1 -1
- package/dist/generated/themes/Select.css.js +1 -1
- package/dist/generated/themes/Select.css.js.map +1 -1
- package/dist/generated/themes/SliderBase.css.js +1 -1
- package/dist/generated/themes/SliderBase.css.js.map +1 -1
- package/dist/generated/themes/SplitButton.css.js +1 -1
- package/dist/generated/themes/SplitButton.css.js.map +1 -1
- package/dist/generated/themes/StepInput.css.js +1 -1
- package/dist/generated/themes/StepInput.css.js.map +1 -1
- package/dist/generated/themes/SuggestionItem.css.js +1 -1
- package/dist/generated/themes/SuggestionItem.css.js.map +1 -1
- package/dist/generated/themes/SuggestionItemCustom.css.js +1 -1
- package/dist/generated/themes/SuggestionItemCustom.css.js.map +1 -1
- package/dist/generated/themes/Switch.css.js +1 -1
- package/dist/generated/themes/Switch.css.js.map +1 -1
- package/dist/generated/themes/TabContainer.css.js +1 -1
- package/dist/generated/themes/TabContainer.css.js.map +1 -1
- package/dist/generated/themes/TabInOverflow.css.js +1 -1
- package/dist/generated/themes/TabInOverflow.css.js.map +1 -1
- package/dist/generated/themes/TabInStrip.css.js +1 -1
- package/dist/generated/themes/TabInStrip.css.js.map +1 -1
- package/dist/generated/themes/TabSemanticIcon.css.js +1 -1
- package/dist/generated/themes/TabSemanticIcon.css.js.map +1 -1
- package/dist/generated/themes/TabSeparatorInOverflow.css.js +1 -1
- package/dist/generated/themes/TabSeparatorInOverflow.css.js.map +1 -1
- package/dist/generated/themes/Table.css.js +1 -1
- package/dist/generated/themes/Table.css.js.map +1 -1
- package/dist/generated/themes/TableCellBase.css.js +1 -1
- package/dist/generated/themes/TableCellBase.css.js.map +1 -1
- package/dist/generated/themes/TableHeaderRow.css.js +1 -1
- package/dist/generated/themes/TableHeaderRow.css.js.map +1 -1
- package/dist/generated/themes/TableRow.css.js +1 -1
- package/dist/generated/themes/TableRow.css.js.map +1 -1
- package/dist/generated/themes/TableRowBase.css.js +1 -1
- package/dist/generated/themes/TableRowBase.css.js.map +1 -1
- package/dist/generated/themes/Tag.css.js +1 -1
- package/dist/generated/themes/Tag.css.js.map +1 -1
- package/dist/generated/themes/Text.css.js +1 -1
- package/dist/generated/themes/Text.css.js.map +1 -1
- package/dist/generated/themes/TextArea.css.js +1 -1
- package/dist/generated/themes/TextArea.css.js.map +1 -1
- package/dist/generated/themes/TimePicker.css.js +1 -1
- package/dist/generated/themes/TimePicker.css.js.map +1 -1
- package/dist/generated/themes/Toast.css.js +1 -1
- package/dist/generated/themes/Toast.css.js.map +1 -1
- package/dist/generated/themes/ToggleButton.css.js +1 -1
- package/dist/generated/themes/ToggleButton.css.js.map +1 -1
- package/dist/generated/themes/Token.css.js +1 -1
- package/dist/generated/themes/Token.css.js.map +1 -1
- package/dist/generated/themes/Tokenizer.css.js +1 -1
- package/dist/generated/themes/Tokenizer.css.js.map +1 -1
- package/dist/generated/themes/TokenizerPopover.css.js +1 -1
- package/dist/generated/themes/TokenizerPopover.css.js.map +1 -1
- package/dist/generated/themes/Toolbar.css.js +1 -1
- package/dist/generated/themes/Toolbar.css.js.map +1 -1
- package/dist/generated/themes/ToolbarPopover.css.js +1 -1
- package/dist/generated/themes/ToolbarPopover.css.js.map +1 -1
- package/dist/generated/themes/TreeItem.css.js +1 -1
- package/dist/generated/themes/TreeItem.css.js.map +1 -1
- package/dist/generated/themes/ValueStateMessage.css.js +1 -1
- package/dist/generated/themes/ValueStateMessage.css.js.map +1 -1
- package/dist/generated/themes/YearPicker.css.js +1 -1
- package/dist/generated/themes/YearPicker.css.js.map +1 -1
- package/dist/generated/themes/sap_fiori_3/parameters-bundle.css.js +1 -1
- package/dist/generated/themes/sap_fiori_3/parameters-bundle.css.js.map +1 -1
- package/dist/generated/themes/sap_fiori_3_dark/parameters-bundle.css.js +1 -1
- package/dist/generated/themes/sap_fiori_3_dark/parameters-bundle.css.js.map +1 -1
- package/dist/generated/themes/sap_fiori_3_hcb/parameters-bundle.css.js +1 -1
- package/dist/generated/themes/sap_fiori_3_hcb/parameters-bundle.css.js.map +1 -1
- package/dist/generated/themes/sap_fiori_3_hcw/parameters-bundle.css.js +1 -1
- package/dist/generated/themes/sap_fiori_3_hcw/parameters-bundle.css.js.map +1 -1
- package/dist/generated/themes/sap_horizon/parameters-bundle.css.js +1 -1
- package/dist/generated/themes/sap_horizon/parameters-bundle.css.js.map +1 -1
- package/dist/generated/themes/sap_horizon_dark/parameters-bundle.css.js +1 -1
- package/dist/generated/themes/sap_horizon_dark/parameters-bundle.css.js.map +1 -1
- package/dist/generated/themes/sap_horizon_dark_exp/parameters-bundle.css.js +1 -1
- package/dist/generated/themes/sap_horizon_dark_exp/parameters-bundle.css.js.map +1 -1
- package/dist/generated/themes/sap_horizon_exp/parameters-bundle.css.js +1 -1
- package/dist/generated/themes/sap_horizon_exp/parameters-bundle.css.js.map +1 -1
- package/dist/generated/themes/sap_horizon_hcb/parameters-bundle.css.js +1 -1
- package/dist/generated/themes/sap_horizon_hcb/parameters-bundle.css.js.map +1 -1
- package/dist/generated/themes/sap_horizon_hcb_exp/parameters-bundle.css.js +1 -1
- package/dist/generated/themes/sap_horizon_hcb_exp/parameters-bundle.css.js.map +1 -1
- package/dist/generated/themes/sap_horizon_hcw/parameters-bundle.css.js +1 -1
- package/dist/generated/themes/sap_horizon_hcw/parameters-bundle.css.js.map +1 -1
- package/dist/generated/themes/sap_horizon_hcw_exp/parameters-bundle.css.js +1 -1
- package/dist/generated/themes/sap_horizon_hcw_exp/parameters-bundle.css.js.map +1 -1
- package/dist/types/ColorPickerDisplayMode.d.ts +17 -0
- package/dist/types/ColorPickerDisplayMode.js +19 -0
- package/dist/types/ColorPickerDisplayMode.js.map +1 -0
- package/dist/vscode.html-custom-data.json +60 -10
- package/dist/web-types.json +170 -31
- package/package.json +9 -9
- package/src/ColorPicker.hbs +60 -56
- package/src/ComboBoxItem.hbs +18 -0
- package/src/ComboBoxItemGroup.hbs +9 -0
- package/src/ComboBoxPopover.hbs +2 -31
- package/src/Form.hbs +3 -3
- package/src/List.hbs +1 -0
- package/src/ListItemGroup.hbs +11 -4
- package/src/MultiComboBox.hbs +10 -12
- package/src/MultiComboBoxItem.hbs +19 -0
- package/src/MultiComboBoxItemGroup.hbs +9 -0
- package/src/MultiComboBoxPopover.hbs +5 -36
- package/src/Tokenizer.hbs +28 -17
- package/src/Tree.hbs +4 -1
- package/src/i18n/messagebundle.properties +3 -0
- package/src/i18n/messagebundle_sv.properties +1 -1
- package/src/themes/ComboBoxItem.css +14 -0
- package/src/themes/MultiComboBoxItem.css +19 -0
- package/src/themes/MultiComboBoxPopover.css +5 -1
- package/src/themes/Table.css +1 -4
- package/src/themes/Tokenizer.css +45 -0
- package/cypress/specs/Eventing.cy.ts +0 -44
|
@@ -0,0 +1,358 @@
|
|
|
1
|
+
import { html } from "lit";
|
|
2
|
+
|
|
3
|
+
import "../../src/Table.js";
|
|
4
|
+
import "../../src/TableHeaderRow.js";
|
|
5
|
+
import "../../src/TableCell.js";
|
|
6
|
+
import "../../src/TableRow.js";
|
|
7
|
+
import "../../src/TableGrowing.js";
|
|
8
|
+
|
|
9
|
+
import type TableGrowing from "../../src/TableGrowing.js";
|
|
10
|
+
|
|
11
|
+
describe("TableGrowing - Button", () => {
|
|
12
|
+
function mountTable() {
|
|
13
|
+
cy.mount(html`
|
|
14
|
+
<ui5-table id="table">
|
|
15
|
+
<ui5-table-growing slot="features"></ui5-table-growing>
|
|
16
|
+
<ui5-table-header-row slot="headerRow">
|
|
17
|
+
<ui5-table-header-cell><span>ColumnA</span></ui5-table-header-cell>
|
|
18
|
+
</ui5-table-header-row>
|
|
19
|
+
<ui5-table-row>
|
|
20
|
+
<ui5-table-cell><ui5-label>Cell A</ui5-label></ui5-table-cell>
|
|
21
|
+
</ui5-table-row>
|
|
22
|
+
</ui5-table>
|
|
23
|
+
`);
|
|
24
|
+
}
|
|
25
|
+
describe("Rendering", () => {
|
|
26
|
+
it("tests button is rendered", () => {
|
|
27
|
+
mountTable();
|
|
28
|
+
|
|
29
|
+
cy.get("[ui5-table-growing]")
|
|
30
|
+
.shadow()
|
|
31
|
+
.find("#growing-button")
|
|
32
|
+
.should("exist")
|
|
33
|
+
.should("have.attr", "role", "button")
|
|
34
|
+
.should("have.attr", "aria-labelledby", "growing-text growing-subtext");
|
|
35
|
+
|
|
36
|
+
cy.get("[ui5-table")
|
|
37
|
+
.shadow()
|
|
38
|
+
.find("#growing-row")
|
|
39
|
+
.should("exist");
|
|
40
|
+
|
|
41
|
+
cy.get("[ui5-table-growing]")
|
|
42
|
+
.shadow()
|
|
43
|
+
.find("#growing-text")
|
|
44
|
+
.should("have.text", "More");
|
|
45
|
+
});
|
|
46
|
+
|
|
47
|
+
it("tests correct custom texts are rendered", () => {
|
|
48
|
+
const growingText = "My Custom Growing Text",
|
|
49
|
+
growingSubtext = "My Custom Growing Subtext";
|
|
50
|
+
cy.mount(html`
|
|
51
|
+
<ui5-table>
|
|
52
|
+
<ui5-table-growing slot="features" growing-text="${growingText}" growing-sub-text="${growingSubtext}"/>
|
|
53
|
+
<ui5-table-header-row slot="headerRow">
|
|
54
|
+
<ui5-table-header-cell><span>ColumnA</span></ui5-table-header-cell>
|
|
55
|
+
</ui5-table-header-row>
|
|
56
|
+
<ui5-table-row>
|
|
57
|
+
<ui5-table-cell><ui5-label>Cell A</ui5-label></ui5-table-cell>
|
|
58
|
+
</ui5-table-row>
|
|
59
|
+
</ui5-table>
|
|
60
|
+
`);
|
|
61
|
+
|
|
62
|
+
cy.get("[ui5-table-growing]")
|
|
63
|
+
.shadow()
|
|
64
|
+
.find("#growing-button")
|
|
65
|
+
.should("exist")
|
|
66
|
+
.should("have.attr", "role", "button")
|
|
67
|
+
.should("have.attr", "aria-labelledby", "growing-text growing-subtext");
|
|
68
|
+
|
|
69
|
+
cy.get("[ui5-table-growing]")
|
|
70
|
+
.shadow()
|
|
71
|
+
.find("#growing-text")
|
|
72
|
+
.should("have.text", growingText);
|
|
73
|
+
|
|
74
|
+
cy.get("[ui5-table-growing]")
|
|
75
|
+
.shadow()
|
|
76
|
+
.find("#growing-subtext")
|
|
77
|
+
.should("have.text", growingSubtext);
|
|
78
|
+
});
|
|
79
|
+
|
|
80
|
+
it("tests diabled state", () => {
|
|
81
|
+
cy.mount(html`
|
|
82
|
+
<ui5-table>
|
|
83
|
+
<ui5-table-growing slot="features" disabled></ui5-table-growing>
|
|
84
|
+
<ui5-table-header-row slot="headerRow">
|
|
85
|
+
<ui5-table-header-cell><span>ColumnA</span></ui5-table-header-cell>
|
|
86
|
+
</ui5-table-header-row>
|
|
87
|
+
<ui5-table-row>
|
|
88
|
+
<ui5-table-cell><ui5-label>Cell A</ui5-label></ui5-table-cell>
|
|
89
|
+
</ui5-table-row>
|
|
90
|
+
</ui5-table>
|
|
91
|
+
`);
|
|
92
|
+
|
|
93
|
+
cy.get("[ui5-table]")
|
|
94
|
+
.shadow()
|
|
95
|
+
.find("#growing-row")
|
|
96
|
+
.should("not.exist");
|
|
97
|
+
|
|
98
|
+
cy.get("[ui5-table-growing]")
|
|
99
|
+
.shadow()
|
|
100
|
+
.find("#growing-button")
|
|
101
|
+
.should("not.exist");
|
|
102
|
+
});
|
|
103
|
+
|
|
104
|
+
it("tests dynamically setting disabled state", () => {
|
|
105
|
+
mountTable();
|
|
106
|
+
|
|
107
|
+
cy.get("[ui5-table]")
|
|
108
|
+
.shadow()
|
|
109
|
+
.find("#growing-row")
|
|
110
|
+
.should("exist");
|
|
111
|
+
|
|
112
|
+
cy.get<TableGrowing>("[ui5-table-growing]")
|
|
113
|
+
.then(table => { table.get(0).disabled = true; });
|
|
114
|
+
|
|
115
|
+
cy.get("[ui5-table]")
|
|
116
|
+
.shadow()
|
|
117
|
+
.find("#growing-row")
|
|
118
|
+
.should("not.exist");
|
|
119
|
+
});
|
|
120
|
+
|
|
121
|
+
it("tests growing button not shown when no data", () => {
|
|
122
|
+
cy.mount(html`
|
|
123
|
+
<ui5-table>
|
|
124
|
+
<ui5-table-growing slot="features"></ui5-table-growing>
|
|
125
|
+
<ui5-table-header-row slot="headerRow">
|
|
126
|
+
<ui5-table-header-cell><span>ColumnA</span></ui5-table-header-cell>
|
|
127
|
+
</ui5-table-header-row>
|
|
128
|
+
</ui5-table>
|
|
129
|
+
`);
|
|
130
|
+
|
|
131
|
+
cy.get("[ui5-table]")
|
|
132
|
+
.shadow()
|
|
133
|
+
.find("#growing-row")
|
|
134
|
+
.should("not.exist");
|
|
135
|
+
});
|
|
136
|
+
});
|
|
137
|
+
|
|
138
|
+
describe("Event & Focus", () => {
|
|
139
|
+
it("tests loadMore event fired upon pressing button", () => {
|
|
140
|
+
mountTable();
|
|
141
|
+
|
|
142
|
+
cy.get<TableGrowing>("[ui5-table-growing]")
|
|
143
|
+
.then(tableGrowing => tableGrowing.get(0).addEventListener("load-more", cy.stub().as("loadMore")))
|
|
144
|
+
.click();
|
|
145
|
+
|
|
146
|
+
cy.get("@loadMore")
|
|
147
|
+
.should("have.been.calledOnce");
|
|
148
|
+
});
|
|
149
|
+
|
|
150
|
+
it("test loadMore event fired upon pressing Enter", () => {
|
|
151
|
+
mountTable();
|
|
152
|
+
|
|
153
|
+
cy.get<TableGrowing>("[ui5-table-growing]")
|
|
154
|
+
.then(tableGrowing => tableGrowing.get(0).addEventListener("load-more", cy.stub().as("loadMore")))
|
|
155
|
+
.shadow()
|
|
156
|
+
.find("#growing-button")
|
|
157
|
+
.focus();
|
|
158
|
+
|
|
159
|
+
cy.realPress("Enter");
|
|
160
|
+
|
|
161
|
+
cy.get("@loadMore")
|
|
162
|
+
.should("have.been.calledOnce");
|
|
163
|
+
|
|
164
|
+
cy.get<TableGrowing>("[ui5-table-growing]")
|
|
165
|
+
.shadow()
|
|
166
|
+
.find("#growing-button")
|
|
167
|
+
.focus();
|
|
168
|
+
|
|
169
|
+
cy.realPress("Space");
|
|
170
|
+
|
|
171
|
+
cy.get("@loadMore")
|
|
172
|
+
.should("have.been.calledTwice");
|
|
173
|
+
});
|
|
174
|
+
|
|
175
|
+
it("tests focus is set to first newly added row", () => {
|
|
176
|
+
mountTable();
|
|
177
|
+
|
|
178
|
+
cy.get<TableGrowing>("[ui5-table-growing]")
|
|
179
|
+
.then(tableGrowing => {
|
|
180
|
+
tableGrowing.get(0).addEventListener("load-more", () => {
|
|
181
|
+
const table = document.getElementById("table");
|
|
182
|
+
const row = document.createElement("ui5-table-row");
|
|
183
|
+
row.id = "new-row";
|
|
184
|
+
row.innerHTML = "<ui5-table-cell><ui5-label>Cell B</ui5-label></ui5-table-cell>";
|
|
185
|
+
table!.appendChild(row);
|
|
186
|
+
});
|
|
187
|
+
})
|
|
188
|
+
.click();
|
|
189
|
+
|
|
190
|
+
cy.get("[ui5-table]")
|
|
191
|
+
.children("ui5-table-row")
|
|
192
|
+
.should("have.length", 2);
|
|
193
|
+
|
|
194
|
+
cy.get("#new-row")
|
|
195
|
+
.should("exist")
|
|
196
|
+
.should("have.focus");
|
|
197
|
+
});
|
|
198
|
+
|
|
199
|
+
it("tests focus is set to growing button when no new rows are added", () => {
|
|
200
|
+
mountTable();
|
|
201
|
+
|
|
202
|
+
cy.get<TableGrowing>("[ui5-table-growing]")
|
|
203
|
+
.click();
|
|
204
|
+
|
|
205
|
+
cy.get("[ui5-table-growing]")
|
|
206
|
+
.should("have.focus");
|
|
207
|
+
});
|
|
208
|
+
});
|
|
209
|
+
});
|
|
210
|
+
|
|
211
|
+
describe("TableGrowing - Scroll", () => {
|
|
212
|
+
function mountTable(rowCount: number = 10, overflow = false) {
|
|
213
|
+
cy.mount(html`
|
|
214
|
+
<div id="wrapper" style="height: 200px; ${overflow ? "overflow: auto" : ""}">
|
|
215
|
+
<ui5-table id="table">
|
|
216
|
+
<ui5-table-growing slot="features" type="Scroll"></ui5-table-growing>
|
|
217
|
+
<ui5-table-header-row slot="headerRow">
|
|
218
|
+
<ui5-table-header-cell><span>ColumnA</span></ui5-table-header-cell>
|
|
219
|
+
</ui5-table-header-row>
|
|
220
|
+
${Array.from({ length: rowCount }).map(() => html`
|
|
221
|
+
<ui5-table-row>
|
|
222
|
+
<ui5-table-cell><ui5-label>Cell A</ui5-label></ui5-table-cell>
|
|
223
|
+
</ui5-table-row>
|
|
224
|
+
`)}
|
|
225
|
+
</ui5-table>
|
|
226
|
+
</div>
|
|
227
|
+
`);
|
|
228
|
+
}
|
|
229
|
+
|
|
230
|
+
describe("Rendering", () => {
|
|
231
|
+
it("tests no button shown, when scrollable", () => {
|
|
232
|
+
mountTable(10, true);
|
|
233
|
+
|
|
234
|
+
cy.get("[ui5-table-growing]")
|
|
235
|
+
.shadow()
|
|
236
|
+
.find("#growing-button")
|
|
237
|
+
.should("not.exist");
|
|
238
|
+
|
|
239
|
+
cy.get("[ui5-table]")
|
|
240
|
+
.shadow()
|
|
241
|
+
.find("#growing-row")
|
|
242
|
+
.should("not.exist");
|
|
243
|
+
});
|
|
244
|
+
|
|
245
|
+
it("tests button shown when not scrollable", () => {
|
|
246
|
+
mountTable(1, false);
|
|
247
|
+
|
|
248
|
+
cy.get("[ui5-table-growing]")
|
|
249
|
+
.shadow()
|
|
250
|
+
.find("#growing-button")
|
|
251
|
+
.should("exist");
|
|
252
|
+
|
|
253
|
+
cy.get("[ui5-table]")
|
|
254
|
+
.shadow()
|
|
255
|
+
.find("#growing-row")
|
|
256
|
+
.should("exist");
|
|
257
|
+
});
|
|
258
|
+
|
|
259
|
+
it("tests button not shown when not scrollable and disabled", () => {
|
|
260
|
+
mountTable(1, true);
|
|
261
|
+
|
|
262
|
+
cy.get<TableGrowing>("[ui5-table-growing]")
|
|
263
|
+
.then(tableGrowing => { tableGrowing.get(0).disabled = true; });
|
|
264
|
+
|
|
265
|
+
cy.get("[ui5-table]")
|
|
266
|
+
.shadow()
|
|
267
|
+
.find("#growing-row")
|
|
268
|
+
.should("not.exist");
|
|
269
|
+
|
|
270
|
+
cy.get("[ui5-table-growing]")
|
|
271
|
+
.shadow()
|
|
272
|
+
.find("#growing-button")
|
|
273
|
+
.should("not.exist");
|
|
274
|
+
});
|
|
275
|
+
});
|
|
276
|
+
|
|
277
|
+
describe("Event", () => {
|
|
278
|
+
it("tests loadMore event fire upon scrolling to table end", () => {
|
|
279
|
+
mountTable(10, true);
|
|
280
|
+
|
|
281
|
+
cy.get<TableGrowing>("[ui5-table-growing]")
|
|
282
|
+
.then(tableGrowing => tableGrowing.get(0).addEventListener("load-more", cy.stub().as("loadMore")));
|
|
283
|
+
|
|
284
|
+
cy.get("[ui5-table-row]:last-child")
|
|
285
|
+
.scrollIntoView();
|
|
286
|
+
|
|
287
|
+
cy.get("@loadMore")
|
|
288
|
+
.should("have.been.calledOnce");
|
|
289
|
+
});
|
|
290
|
+
|
|
291
|
+
it("tests button fires load-more, button vanishes, scroll to end fires load-more", () => {
|
|
292
|
+
mountTable(1, true);
|
|
293
|
+
|
|
294
|
+
cy.get<TableGrowing>("[ui5-table-growing]")
|
|
295
|
+
.then(tableGrowing => {
|
|
296
|
+
tableGrowing.get(0).addEventListener("load-more", () => {
|
|
297
|
+
const table = document.getElementById("table");
|
|
298
|
+
Array.from({ length: 10 }).forEach(() => {
|
|
299
|
+
const row = document.createElement("ui5-table-row");
|
|
300
|
+
row.innerHTML = "<ui5-table-cell><ui5-label>Cell B</ui5-label></ui5-table-cell>";
|
|
301
|
+
table!.appendChild(row);
|
|
302
|
+
});
|
|
303
|
+
});
|
|
304
|
+
tableGrowing.get(0).addEventListener("load-more", cy.stub().as("loadMore"));
|
|
305
|
+
})
|
|
306
|
+
.click();
|
|
307
|
+
|
|
308
|
+
cy.get("@loadMore")
|
|
309
|
+
.should("have.been.calledOnce");
|
|
310
|
+
|
|
311
|
+
cy.get("[ui5-table]")
|
|
312
|
+
.children("ui5-table-row")
|
|
313
|
+
.should("have.length", 11);
|
|
314
|
+
|
|
315
|
+
cy.get("[ui5-table-growing]")
|
|
316
|
+
.shadow()
|
|
317
|
+
.find("#growing-button")
|
|
318
|
+
.should("not.exist");
|
|
319
|
+
|
|
320
|
+
cy.get("[ui5-table]")
|
|
321
|
+
.shadow()
|
|
322
|
+
.find("#growing-row")
|
|
323
|
+
.should("not.exist");
|
|
324
|
+
|
|
325
|
+
for (let i = 2; i <= 6; i++) {
|
|
326
|
+
cy.get("#wrapper")
|
|
327
|
+
.scrollTo("bottom", { duration: 300 });
|
|
328
|
+
|
|
329
|
+
cy.get("@loadMore")
|
|
330
|
+
.should("have.callCount", i);
|
|
331
|
+
|
|
332
|
+
cy.get("[ui5-table]")
|
|
333
|
+
.children("ui5-table-row")
|
|
334
|
+
.should("have.length", 1 + 10 * i);
|
|
335
|
+
}
|
|
336
|
+
});
|
|
337
|
+
|
|
338
|
+
it("tests load-more not fired when disabled", () => {
|
|
339
|
+
mountTable(11, true);
|
|
340
|
+
|
|
341
|
+
cy.get<TableGrowing>("[ui5-table-growing]")
|
|
342
|
+
.then(tableGrowing => {
|
|
343
|
+
tableGrowing.get(0).disabled = true;
|
|
344
|
+
tableGrowing.get(0).addEventListener("load-more", cy.stub().as("loadMore"));
|
|
345
|
+
});
|
|
346
|
+
|
|
347
|
+
cy.get("[ui5-table-row]:last-child")
|
|
348
|
+
.scrollIntoView();
|
|
349
|
+
|
|
350
|
+
cy.get("[ui5-table]")
|
|
351
|
+
.children("ui5-table-row")
|
|
352
|
+
.should("have.length", 11);
|
|
353
|
+
|
|
354
|
+
cy.get("@loadMore")
|
|
355
|
+
.should("not.have.been.called");
|
|
356
|
+
});
|
|
357
|
+
});
|
|
358
|
+
});
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
import { html } from "lit";
|
|
2
|
+
import "../../src/Tokenizer.js";
|
|
3
|
+
import type Tokenizer from "../../src/Tokenizer.js";
|
|
4
|
+
|
|
5
|
+
describe("Tokenizer - multi-line and Clear All", () => {
|
|
6
|
+
it("'Clear All' link is rendered for multi-line tokenizer and show-clear-all set to true", () => {
|
|
7
|
+
cy.mount(html`<ui5-tokenizer show-clear-all multi-line>
|
|
8
|
+
<ui5-token text="Andora"></ui5-token>
|
|
9
|
+
<ui5-token text="Bulgaria"></ui5-token>
|
|
10
|
+
<ui5-token text="Canada"></ui5-token>
|
|
11
|
+
<ui5-token text="Denmark"></ui5-token>
|
|
12
|
+
<ui5-token text="Estonia"></ui5-token>
|
|
13
|
+
<ui5-token text="Finland"></ui5-token>
|
|
14
|
+
<ui5-token text="Germany"></ui5-token>
|
|
15
|
+
</ui5-tokenizer>`);
|
|
16
|
+
|
|
17
|
+
cy.get<Tokenizer>("[ui5-tokenizer]")
|
|
18
|
+
.shadow()
|
|
19
|
+
.find(".ui5-tokenizer--clear-all")
|
|
20
|
+
.should("exist");
|
|
21
|
+
});
|
|
22
|
+
|
|
23
|
+
it("'Clear All' link is rendered even for 1 token when in multi-line mode", () => {
|
|
24
|
+
cy.mount(html`<ui5-tokenizer show-clear-all multi-line>
|
|
25
|
+
<ui5-token text="Andora"></ui5-token>
|
|
26
|
+
</ui5-tokenizer>`);
|
|
27
|
+
|
|
28
|
+
cy.get<Tokenizer>("[ui5-tokenizer]")
|
|
29
|
+
.shadow()
|
|
30
|
+
.find(".ui5-tokenizer--clear-all")
|
|
31
|
+
.should("exist");
|
|
32
|
+
});
|
|
33
|
+
|
|
34
|
+
it("'Clear All' link is not rendered for single-line tokenizer even when show-clear-all is set to true", () => {
|
|
35
|
+
cy.mount(html`<ui5-tokenizer show-clear-all>
|
|
36
|
+
<ui5-token text="Andora"></ui5-token>
|
|
37
|
+
</ui5-tokenizer>`);
|
|
38
|
+
|
|
39
|
+
cy.get<Tokenizer>("[ui5-tokenizer]")
|
|
40
|
+
.shadow()
|
|
41
|
+
.find(".ui5-tokenizer--clear-all")
|
|
42
|
+
.should("not.exist");
|
|
43
|
+
});
|
|
44
|
+
|
|
45
|
+
it("'Clear All' link is not rendered for multi-line tokenizer when show-clear-all is set to false", () => {
|
|
46
|
+
cy.mount(html`<ui5-tokenizer multi-line>
|
|
47
|
+
<ui5-token text="Andora"></ui5-token>
|
|
48
|
+
<ui5-token text="Bulgaria"></ui5-token>
|
|
49
|
+
<ui5-token text="Canada"></ui5-token>
|
|
50
|
+
<ui5-token text="Denmark"></ui5-token>
|
|
51
|
+
<ui5-token text="Estonia"></ui5-token>
|
|
52
|
+
<ui5-token text="Finland"></ui5-token>
|
|
53
|
+
<ui5-token text="Germany"></ui5-token>
|
|
54
|
+
</ui5-tokenizer>`);
|
|
55
|
+
|
|
56
|
+
cy.get<Tokenizer>("[ui5-tokenizer]")
|
|
57
|
+
.shadow()
|
|
58
|
+
.find(".ui5-tokenizer--clear-all")
|
|
59
|
+
.should("not.exist");
|
|
60
|
+
});
|
|
61
|
+
|
|
62
|
+
it("'Clear All' link is not rendered for multi-line readonly tokenizer when show-clear-all 'true'", () => {
|
|
63
|
+
cy.mount(html`<ui5-tokenizer multi-line show-clear-all readonly>
|
|
64
|
+
<ui5-token text="Andora"></ui5-token>
|
|
65
|
+
<ui5-token text="Bulgaria"></ui5-token>
|
|
66
|
+
<ui5-token text="Canada"></ui5-token>
|
|
67
|
+
<ui5-token text="Denmark"></ui5-token>
|
|
68
|
+
<ui5-token text="Estonia"></ui5-token>
|
|
69
|
+
<ui5-token text="Finland"></ui5-token>
|
|
70
|
+
<ui5-token text="Germany"></ui5-token>
|
|
71
|
+
</ui5-tokenizer>`);
|
|
72
|
+
|
|
73
|
+
cy.get<Tokenizer>("[ui5-tokenizer]")
|
|
74
|
+
.shadow()
|
|
75
|
+
.find(".ui5-tokenizer--clear-all")
|
|
76
|
+
.should("not.exist");
|
|
77
|
+
});
|
|
78
|
+
|
|
79
|
+
it("'n-more' link is not rendered for multi-line tokenizer", () => {
|
|
80
|
+
cy.mount(html`<ui5-tokenizer multi-line style="width: 100px;">
|
|
81
|
+
<ui5-token text="Andora"></ui5-token>
|
|
82
|
+
<ui5-token text="Bulgaria"></ui5-token>
|
|
83
|
+
<ui5-token text="Canada"></ui5-token>
|
|
84
|
+
<ui5-token text="Denmark"></ui5-token>
|
|
85
|
+
<ui5-token text="Estonia"></ui5-token>
|
|
86
|
+
<ui5-token text="Finland"></ui5-token>
|
|
87
|
+
<ui5-token text="Germany"></ui5-token>
|
|
88
|
+
</ui5-tokenizer>`);
|
|
89
|
+
|
|
90
|
+
cy.get<Tokenizer>("[ui5-tokenizer]")
|
|
91
|
+
.shadow()
|
|
92
|
+
.find(".ui5-tokenizer--more-text")
|
|
93
|
+
.should("not.exist");
|
|
94
|
+
});
|
|
95
|
+
|
|
96
|
+
it("Pressing 'Clear All' link fires token-delete event", () => {
|
|
97
|
+
cy.mount(html`<ui5-tokenizer show-clear-all multi-line>
|
|
98
|
+
<ui5-token text="Andora"></ui5-token>
|
|
99
|
+
<ui5-token text="Bulgaria"></ui5-token>
|
|
100
|
+
<ui5-token text="Canada"></ui5-token>
|
|
101
|
+
</ui5-tokenizer>`);
|
|
102
|
+
|
|
103
|
+
cy.get<Tokenizer>("[ui5-tokenizer]").then($tokenizer => $tokenizer.get(0).addEventListener("token-delete", cy.stub().as("delete")));
|
|
104
|
+
|
|
105
|
+
cy.get<Tokenizer>("[ui5-tokenizer]")
|
|
106
|
+
.shadow()
|
|
107
|
+
.find(".ui5-tokenizer--clear-all")
|
|
108
|
+
.eq(0)
|
|
109
|
+
.click();
|
|
110
|
+
|
|
111
|
+
cy.get("@delete")
|
|
112
|
+
.should("have.been.calledOnce");
|
|
113
|
+
});
|
|
114
|
+
});
|
|
@@ -4,7 +4,11 @@ import "../../src/ToolbarButton.js";
|
|
|
4
4
|
import "../../src/ToolbarSelect.js";
|
|
5
5
|
import "../../src/ToolbarSelectOption.js";
|
|
6
6
|
import "../../src/ToolbarSeparator.js";
|
|
7
|
+
import "../../src/Popover.js";
|
|
7
8
|
import type ToolbarItem from "../../src/ToolbarItem.js";
|
|
9
|
+
import "@ui5/webcomponents-icons/dist/add.js";
|
|
10
|
+
import "@ui5/webcomponents-icons/dist/decline.js";
|
|
11
|
+
import "@ui5/webcomponents-icons/dist/employee.js";
|
|
8
12
|
|
|
9
13
|
describe("Toolbar general interaction", () => {
|
|
10
14
|
it("Should not return null upon calling getDomRef for all direct child items", () => {
|
|
@@ -40,4 +44,25 @@ describe("Toolbar general interaction", () => {
|
|
|
40
44
|
.should("not.be.undefined");
|
|
41
45
|
});
|
|
42
46
|
});
|
|
47
|
+
|
|
48
|
+
it("should be able to use toolbar button as popover opener", () => {
|
|
49
|
+
cy.mount(html`
|
|
50
|
+
<ui5-toolbar id="tb">
|
|
51
|
+
<ui5-toolbar-button icon="add" text="Left 1 (long)" id="clickCounter"></ui5-toolbar-button>
|
|
52
|
+
<ui5-toolbar-button icon="decline" text="Left 2" id="clearCounter"></ui5-toolbar-button>
|
|
53
|
+
<ui5-toolbar-button icon="employee" text="Left 3"></ui5-toolbar-button>
|
|
54
|
+
<ui5-toolbar-separator></ui5-toolbar-separator>
|
|
55
|
+
<ui5-toolbar-button icon="decline" text="Left 4"></ui5-toolbar-button>
|
|
56
|
+
<ui5-toolbar-button id="btnOpenMenu" text="Open Menu" prevent-overflow-closing></ui5-toolbar-button>
|
|
57
|
+
</ui5-toolbar>
|
|
58
|
+
<ui5-popover id="popup" opener="btnOpenMenu">
|
|
59
|
+
Hello World
|
|
60
|
+
</ui5-popover>
|
|
61
|
+
`);
|
|
62
|
+
|
|
63
|
+
cy.get("#popup").invoke("prop", "open", "true");
|
|
64
|
+
|
|
65
|
+
cy.get("#popup")
|
|
66
|
+
.should("be.visible");
|
|
67
|
+
});
|
|
43
68
|
});
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { html } from "lit";
|
|
2
|
+
import "../../src/Tree.js";
|
|
3
|
+
import "../../src/TreeItem.js";
|
|
4
|
+
|
|
5
|
+
describe("Tree Tests", () => {
|
|
6
|
+
it("tests accessibility properties forwarded to the list", () => {
|
|
7
|
+
cy.mount(html`
|
|
8
|
+
<ui5-tree
|
|
9
|
+
accessible-name="Tree"
|
|
10
|
+
accessible-name-ref="lblDesc1"
|
|
11
|
+
accessible-description="Description"
|
|
12
|
+
accessible-description-ref="lblDesc2"
|
|
13
|
+
></ui5-tree>
|
|
14
|
+
<div id="lblDesc1">Tree</div>
|
|
15
|
+
<div id="lblDesc2">Description</div>
|
|
16
|
+
`);
|
|
17
|
+
|
|
18
|
+
cy.get("[ui5-tree]")
|
|
19
|
+
.as("tree");
|
|
20
|
+
|
|
21
|
+
cy.get("@tree")
|
|
22
|
+
.shadow()
|
|
23
|
+
.find(".ui5-tree-root")
|
|
24
|
+
.should("have.attr", "accessible-name", "Tree")
|
|
25
|
+
.and("have.attr", "accessible-name-ref", "lblDesc1")
|
|
26
|
+
.and("have.attr", "accessible-description", "Description")
|
|
27
|
+
.and("have.attr", "accessible-description-ref", "lblDesc2");
|
|
28
|
+
});
|
|
29
|
+
});
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import { html } from "lit";
|
|
2
2
|
import "../../../src/Label.js";
|
|
3
3
|
import "../../../src/Input.js";
|
|
4
|
+
import "../../../src/List.js";
|
|
4
5
|
|
|
5
|
-
describe("
|
|
6
|
+
describe("AccessibilityTextsHelper", () => {
|
|
6
7
|
it("Label-for tests", () => {
|
|
7
8
|
cy.mount(html`
|
|
8
9
|
<ui5-input id="myInput" placeholder="input placeholder" class="field"></ui5-input>
|
|
@@ -277,4 +278,39 @@ describe("AriaLabelHelper", () => {
|
|
|
277
278
|
cy.get("@input")
|
|
278
279
|
.should("have.attr", "aria-label", "Desc1X Desc4X");
|
|
279
280
|
});
|
|
281
|
+
|
|
282
|
+
it("Tests accessibleDescription and accessibleDescriptionRef with ui5-list", () => {
|
|
283
|
+
cy.mount(html`
|
|
284
|
+
<ui5-label id="lblDesc1">Desc1</ui5-label>
|
|
285
|
+
<ui5-label id="lblDesc2">Desc2</ui5-label>
|
|
286
|
+
<ui5-list id="list" accessible-description-ref="lblDesc1 lblDesc2" accessible-description="Desc3"></ui5-list>
|
|
287
|
+
`);
|
|
288
|
+
|
|
289
|
+
cy.get("#list")
|
|
290
|
+
.shadow()
|
|
291
|
+
.find("ul")
|
|
292
|
+
.as("list");
|
|
293
|
+
|
|
294
|
+
// assert
|
|
295
|
+
cy.get("@list")
|
|
296
|
+
.should("have.attr", "aria-description", "Desc1 Desc2");
|
|
297
|
+
|
|
298
|
+
// act - update text of referenced label
|
|
299
|
+
cy.get("#lblDesc1")
|
|
300
|
+
.then($el => {
|
|
301
|
+
$el.get(0).innerHTML = `${$el.get(0).innerHTML}X`;
|
|
302
|
+
});
|
|
303
|
+
|
|
304
|
+
// assert
|
|
305
|
+
cy.get("@list")
|
|
306
|
+
.should("have.attr", "aria-description", "Desc1X Desc2");
|
|
307
|
+
|
|
308
|
+
// act - update accessible-description-ref
|
|
309
|
+
cy.get("#list")
|
|
310
|
+
.invoke("removeAttr", "accessible-description-ref");
|
|
311
|
+
|
|
312
|
+
// assert
|
|
313
|
+
cy.get("@list")
|
|
314
|
+
.should("have.attr", "aria-description", "Desc3");
|
|
315
|
+
});
|
|
280
316
|
});
|
|
@@ -9,8 +9,11 @@ import "../../../src/MessageStrip.js";
|
|
|
9
9
|
import "../../../src/MultiComboBox.js";
|
|
10
10
|
import "../../../src/MultiComboBoxItem.js";
|
|
11
11
|
import "../../../src/Panel.js";
|
|
12
|
+
import "../../../src/Button.js";
|
|
12
13
|
import "../../../src/CheckBox.js";
|
|
13
14
|
import "../../../src/Label.js";
|
|
15
|
+
import "../../../src/MenuItem.js";
|
|
16
|
+
import "../../../src/Menu.js";
|
|
14
17
|
|
|
15
18
|
describe("Event bubbling", () => {
|
|
16
19
|
it("test bubbling events", () => {
|
|
@@ -126,7 +129,13 @@ describe("Event bubbling", () => {
|
|
|
126
129
|
<ui5-option>Hello</ui5-option>
|
|
127
130
|
<ui5-option>World</ui5-option>
|
|
128
131
|
<ui5-option>Hello</ui5-option>
|
|
129
|
-
</ui5-select>
|
|
132
|
+
</ui5-select>
|
|
133
|
+
|
|
134
|
+
<ui5-button id="btnOpen">Open Menu</ui5-button>
|
|
135
|
+
<ui5-menu id="myMenu" header-text="Menu" opener="btnOpen">
|
|
136
|
+
<ui5-menu-item text="New File"></ui5-menu-item>
|
|
137
|
+
<ui5-menu-item text="New Folder"></ui5-menu-item>
|
|
138
|
+
</ui5-menu>
|
|
130
139
|
|
|
131
140
|
<ui5-multi-combobox id="myMCB">
|
|
132
141
|
<ui5-mcb-item text="Cosy"></ui5-mcb-item>
|
|
@@ -138,12 +147,19 @@ describe("Event bubbling", () => {
|
|
|
138
147
|
|
|
139
148
|
cy.get("#app")
|
|
140
149
|
.as("app");
|
|
150
|
+
|
|
141
151
|
cy.get("[ui5-dialog]")
|
|
142
152
|
.as("dialog");
|
|
153
|
+
|
|
143
154
|
cy.get("[ui5-select]")
|
|
144
155
|
.as("select");
|
|
156
|
+
|
|
157
|
+
cy.get("[ui5-menu]")
|
|
158
|
+
.as("menu");
|
|
159
|
+
|
|
145
160
|
cy.get("[ui5-multi-combobox]")
|
|
146
161
|
.as("multiCombobox");
|
|
162
|
+
|
|
147
163
|
cy.get("[ui5-multi-combobox]")
|
|
148
164
|
.shadow()
|
|
149
165
|
.find(".inputIcon")
|
|
@@ -164,6 +180,11 @@ describe("Event bubbling", () => {
|
|
|
164
180
|
select.get(0).addEventListener("ui5-close", cy.stub().as("selClosed"));
|
|
165
181
|
});
|
|
166
182
|
|
|
183
|
+
cy.get("@menu")
|
|
184
|
+
.then(menu => {
|
|
185
|
+
menu.get(0).addEventListener("ui5-close", cy.stub().as("menuClosed"));
|
|
186
|
+
});
|
|
187
|
+
|
|
167
188
|
cy.get("@multiCombobox")
|
|
168
189
|
.then(multiCombobox => {
|
|
169
190
|
multiCombobox.get(0).addEventListener("ui5-close", cy.stub().as("mcbClosed"));
|
|
@@ -180,24 +201,32 @@ describe("Event bubbling", () => {
|
|
|
180
201
|
.eq(1)
|
|
181
202
|
.realClick();
|
|
182
203
|
|
|
183
|
-
// act - open the MultiComboBox
|
|
204
|
+
// act - open/close the MultiComboBox
|
|
184
205
|
cy.get("@multiComboboxIcon")
|
|
185
206
|
.realClick();
|
|
186
207
|
|
|
187
208
|
cy.get("@multiCombobox")
|
|
188
|
-
.
|
|
189
|
-
.find("[ui5-responsive-popover]")
|
|
209
|
+
.find("[ui5-mcb-item]")
|
|
190
210
|
.should("be.visible");
|
|
191
211
|
|
|
192
|
-
// act - close the MultiComboBox
|
|
193
212
|
cy.get("@multiComboboxIcon")
|
|
194
213
|
.realClick();
|
|
195
214
|
|
|
215
|
+
// act - open/close Menu
|
|
216
|
+
cy.get("@menu")
|
|
217
|
+
.ui5MenuOpen();
|
|
218
|
+
|
|
219
|
+
cy.get("[ui5-menu-item]")
|
|
220
|
+
.first()
|
|
221
|
+
.ui5MenuItemClick();
|
|
222
|
+
|
|
196
223
|
// assert - the close events of the Select and MultiComboBox do not bubble
|
|
197
224
|
cy.get("@selClosed")
|
|
198
225
|
.should("have.been.calledOnce");
|
|
199
226
|
cy.get("@mcbClosed")
|
|
200
227
|
.should("have.been.calledOnce");
|
|
228
|
+
cy.get("@menuClosed")
|
|
229
|
+
.should("have.been.calledOnce");
|
|
201
230
|
cy.get("@dialogClosed")
|
|
202
231
|
.should("not.be.called");
|
|
203
232
|
cy.get("@appClosed")
|