@ui5/webcomponents 2.8.0-rc.2 → 2.8.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 +47 -0
- package/cypress/specs/AvatarGroup.cy.tsx +36 -0
- package/cypress/specs/Dialog.cy.tsx +89 -0
- package/cypress/specs/Input.cy.tsx +170 -1
- package/cypress/specs/Link.cy.tsx +199 -14
- package/cypress/specs/Popover.cy.tsx +176 -0
- package/cypress/specs/Select.cy.tsx +15 -0
- package/cypress/specs/TabContainer.cy.tsx +29 -0
- package/cypress/specs/Table.cy.tsx +5 -24
- package/cypress/specs/TableDragAndDrop.cy.tsx +1 -1
- package/cypress/specs/TableNavigation.cy.tsx +223 -0
- package/cypress/specs/TableNavigationFixedHeader.cy.tsx +199 -0
- package/cypress/specs/TableSelection.cy.tsx +37 -0
- package/cypress/specs/TableSelections.cy.tsx +296 -0
- package/cypress/specs/Text.cy.tsx +19 -3
- package/cypress/specs/Tokenizer.cy.tsx +36 -0
- package/cypress/specs/Toolbar.cy.tsx +22 -0
- package/dist/.tsbuildinfo +1 -1
- package/dist/Avatar.d.ts +4 -1
- package/dist/Avatar.js.map +1 -1
- package/dist/AvatarGroup.js +1 -0
- package/dist/AvatarGroup.js.map +1 -1
- package/dist/ColorPicker.d.ts +4 -1
- package/dist/ColorPicker.js +1 -1
- package/dist/ColorPicker.js.map +1 -1
- package/dist/ComboBoxItemGroupTemplate.js +2 -2
- package/dist/ComboBoxItemGroupTemplate.js.map +1 -1
- package/dist/Input.d.ts +1 -1
- package/dist/Input.js +10 -5
- package/dist/Input.js.map +1 -1
- package/dist/List.d.ts +5 -2
- package/dist/List.js +24 -2
- package/dist/List.js.map +1 -1
- package/dist/ListBoxItemGroupTemplate.d.ts +4 -0
- package/dist/ListBoxItemGroupTemplate.js +13 -0
- package/dist/ListBoxItemGroupTemplate.js.map +1 -0
- package/dist/ListItemGroupHeader.d.ts +6 -0
- package/dist/ListItemGroupHeader.js +20 -3
- package/dist/ListItemGroupHeader.js.map +1 -1
- package/dist/ListItemGroupHeaderTemplate.js +3 -3
- package/dist/ListItemGroupHeaderTemplate.js.map +1 -1
- package/dist/ListItemGroupTemplate.d.ts +1 -3
- package/dist/ListItemGroupTemplate.js +5 -8
- package/dist/ListItemGroupTemplate.js.map +1 -1
- package/dist/ListTemplate.js +1 -1
- package/dist/ListTemplate.js.map +1 -1
- package/dist/MultiComboBoxItemGroupTemplate.js +2 -2
- package/dist/MultiComboBoxItemGroupTemplate.js.map +1 -1
- package/dist/Popover.d.ts +0 -6
- package/dist/Popover.js +0 -9
- package/dist/Popover.js.map +1 -1
- package/dist/Popup.js +3 -1
- package/dist/Popup.js.map +1 -1
- package/dist/Select.d.ts +7 -0
- package/dist/Select.js +3 -0
- package/dist/Select.js.map +1 -1
- package/dist/SelectTemplate.js +2 -2
- package/dist/SelectTemplate.js.map +1 -1
- package/dist/SuggestionItemGroup.js +2 -0
- package/dist/SuggestionItemGroup.js.map +1 -1
- package/dist/TabContainer.d.ts +11 -0
- package/dist/TabContainer.js +18 -4
- package/dist/TabContainer.js.map +1 -1
- package/dist/TabContainerTemplate.js +1 -0
- package/dist/TabContainerTemplate.js.map +1 -1
- package/dist/Table.d.ts +17 -11
- package/dist/Table.js +16 -35
- package/dist/Table.js.map +1 -1
- package/dist/TableCell.d.ts +1 -0
- package/dist/TableCell.js +8 -1
- package/dist/TableCell.js.map +1 -1
- package/dist/TableCellBase.js +2 -2
- package/dist/TableCellBase.js.map +1 -1
- package/dist/TableCellTemplate.d.ts +2 -0
- package/dist/TableCellTemplate.js +6 -0
- package/dist/TableCellTemplate.js.map +1 -0
- package/dist/TableGrowing.js +4 -4
- package/dist/TableGrowing.js.map +1 -1
- package/dist/TableGrowingTemplate.d.ts +2 -0
- package/dist/TableGrowingTemplate.js +6 -0
- package/dist/TableGrowingTemplate.js.map +1 -0
- package/dist/TableHeaderCell.d.ts +0 -3
- package/dist/TableHeaderCell.js +1 -10
- package/dist/TableHeaderCell.js.map +1 -1
- package/dist/TableHeaderCellActionBase.js +5 -6
- package/dist/TableHeaderCellActionBase.js.map +1 -1
- package/dist/TableHeaderCellActionBaseTemplate.d.ts +2 -0
- package/dist/TableHeaderCellActionBaseTemplate.js +6 -0
- package/dist/TableHeaderCellActionBaseTemplate.js.map +1 -0
- package/dist/TableHeaderCellTemplate.d.ts +2 -0
- package/dist/TableHeaderCellTemplate.js +19 -0
- package/dist/TableHeaderCellTemplate.js.map +1 -0
- package/dist/TableHeaderRow.d.ts +2 -3
- package/dist/TableHeaderRow.js +1 -6
- package/dist/TableHeaderRow.js.map +1 -1
- package/dist/TableHeaderRowTemplate.d.ts +2 -0
- package/dist/TableHeaderRowTemplate.js +11 -0
- package/dist/TableHeaderRowTemplate.js.map +1 -0
- package/dist/TableNavigation.js +3 -3
- package/dist/TableNavigation.js.map +1 -1
- package/dist/TableRow.d.ts +7 -5
- package/dist/TableRow.js +4 -14
- package/dist/TableRow.js.map +1 -1
- package/dist/TableRowAction.d.ts +9 -8
- package/dist/TableRowAction.js +9 -11
- package/dist/TableRowAction.js.map +1 -1
- package/dist/TableRowActionBase.js +3 -6
- package/dist/TableRowActionBase.js.map +1 -1
- package/dist/TableRowActionBaseTemplate.d.ts +2 -0
- package/dist/TableRowActionBaseTemplate.js +13 -0
- package/dist/TableRowActionBaseTemplate.js.map +1 -0
- package/dist/TableRowBase.d.ts +4 -4
- package/dist/TableRowBase.js +10 -10
- package/dist/TableRowBase.js.map +1 -1
- package/dist/TableRowTemplate.d.ts +2 -0
- package/dist/TableRowTemplate.js +17 -0
- package/dist/TableRowTemplate.js.map +1 -0
- package/dist/TableSelection.d.ts +9 -7
- package/dist/TableSelection.js +34 -30
- package/dist/TableSelection.js.map +1 -1
- package/dist/TableSelectionBase.d.ts +79 -0
- package/dist/TableSelectionBase.js +108 -0
- package/dist/TableSelectionBase.js.map +1 -0
- package/dist/TableSelectionMulti.d.ts +92 -0
- package/dist/TableSelectionMulti.js +260 -0
- package/dist/TableSelectionMulti.js.map +1 -0
- package/dist/TableSelectionSingle.d.ts +49 -0
- package/dist/TableSelectionSingle.js +67 -0
- package/dist/TableSelectionSingle.js.map +1 -0
- package/dist/TableTemplate.d.ts +2 -0
- package/dist/TableTemplate.js +18 -0
- package/dist/TableTemplate.js.map +1 -0
- package/dist/TableUtils.js +1 -1
- package/dist/TableUtils.js.map +1 -1
- package/dist/Tokenizer.js +2 -2
- package/dist/Tokenizer.js.map +1 -1
- package/dist/Toolbar.d.ts +3 -0
- package/dist/Toolbar.js +4 -1
- package/dist/Toolbar.js.map +1 -1
- package/dist/ToolbarPopoverTemplate.js +1 -1
- package/dist/ToolbarPopoverTemplate.js.map +1 -1
- package/dist/bundle.esm.js +2 -0
- package/dist/bundle.esm.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/TableCell.css +1 -1
- package/dist/css/themes/TableCellBase.css +1 -1
- package/dist/css/themes/TableGrowing.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 +762 -31
- package/dist/custom-elements.json +725 -31
- package/dist/features/InputSuggestions.js +0 -2
- package/dist/features/InputSuggestions.js.map +1 -1
- package/dist/features/InputSuggestionsTemplate.js +2 -1
- package/dist/features/InputSuggestionsTemplate.js.map +1 -1
- package/dist/generated/assets/i18n/messagebundle_ar.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_bg.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_ca.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_cnr.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_cs.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_cy.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_da.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_de.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_el.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_en.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_en_GB.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_en_US_saprigi.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_es.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_es_MX.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_et.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_fi.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_fr.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_fr_CA.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_hi.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_hr.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_hu.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_it.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_iw.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_ja.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_kk.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_ko.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_lt.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_lv.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_mk.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_ms.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_nl.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_no.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_pl.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_pt.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_pt_PT.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_ro.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_ru.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_sh.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_sk.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_sl.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_sr.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_sv.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_th.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_tr.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_uk.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_vi.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_zh_CN.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_zh_TW.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/i18n/i18n-defaults.d.ts +4 -1
- package/dist/generated/i18n/i18n-defaults.js +4 -1
- package/dist/generated/i18n/i18n-defaults.js.map +1 -1
- package/dist/generated/themes/Avatar.css.d.ts +1 -1
- package/dist/generated/themes/Avatar.css.js +1 -1
- package/dist/generated/themes/Avatar.css.js.map +1 -1
- package/dist/generated/themes/AvatarGroup.css.d.ts +1 -1
- package/dist/generated/themes/AvatarGroup.css.js +1 -1
- package/dist/generated/themes/AvatarGroup.css.js.map +1 -1
- package/dist/generated/themes/Bar.css.d.ts +1 -1
- package/dist/generated/themes/Bar.css.js +1 -1
- package/dist/generated/themes/Bar.css.js.map +1 -1
- package/dist/generated/themes/Breadcrumbs.css.d.ts +1 -1
- package/dist/generated/themes/Breadcrumbs.css.js +1 -1
- package/dist/generated/themes/Breadcrumbs.css.js.map +1 -1
- package/dist/generated/themes/BusyIndicator.css.d.ts +1 -1
- package/dist/generated/themes/BusyIndicator.css.js +1 -1
- package/dist/generated/themes/BusyIndicator.css.js.map +1 -1
- package/dist/generated/themes/Button.css.d.ts +1 -1
- package/dist/generated/themes/Button.css.js +1 -1
- package/dist/generated/themes/Button.css.js.map +1 -1
- package/dist/generated/themes/ButtonBadge.css.d.ts +1 -1
- package/dist/generated/themes/ButtonBadge.css.js +1 -1
- package/dist/generated/themes/ButtonBadge.css.js.map +1 -1
- package/dist/generated/themes/Calendar.css.d.ts +1 -1
- package/dist/generated/themes/Calendar.css.js +1 -1
- package/dist/generated/themes/Calendar.css.js.map +1 -1
- package/dist/generated/themes/CalendarHeader.css.d.ts +1 -1
- package/dist/generated/themes/CalendarHeader.css.js +1 -1
- package/dist/generated/themes/CalendarHeader.css.js.map +1 -1
- package/dist/generated/themes/CalendarLegend.css.d.ts +1 -1
- package/dist/generated/themes/CalendarLegend.css.js +1 -1
- package/dist/generated/themes/CalendarLegend.css.js.map +1 -1
- package/dist/generated/themes/CalendarLegendItem.css.d.ts +1 -1
- package/dist/generated/themes/CalendarLegendItem.css.js +1 -1
- package/dist/generated/themes/CalendarLegendItem.css.js.map +1 -1
- package/dist/generated/themes/Card.css.d.ts +1 -1
- package/dist/generated/themes/Card.css.js +1 -1
- package/dist/generated/themes/Card.css.js.map +1 -1
- package/dist/generated/themes/CardHeader.css.d.ts +1 -1
- package/dist/generated/themes/CardHeader.css.js +1 -1
- package/dist/generated/themes/CardHeader.css.js.map +1 -1
- package/dist/generated/themes/Carousel.css.d.ts +1 -1
- package/dist/generated/themes/Carousel.css.js +1 -1
- package/dist/generated/themes/Carousel.css.js.map +1 -1
- package/dist/generated/themes/CheckBox.css.d.ts +1 -1
- package/dist/generated/themes/CheckBox.css.js +1 -1
- package/dist/generated/themes/CheckBox.css.js.map +1 -1
- package/dist/generated/themes/ColorPalette.css.d.ts +1 -1
- package/dist/generated/themes/ColorPalette.css.js +1 -1
- package/dist/generated/themes/ColorPalette.css.js.map +1 -1
- package/dist/generated/themes/ColorPaletteItem.css.d.ts +1 -1
- package/dist/generated/themes/ColorPaletteItem.css.js +1 -1
- package/dist/generated/themes/ColorPaletteItem.css.js.map +1 -1
- package/dist/generated/themes/ColorPalettePopover.css.d.ts +1 -1
- package/dist/generated/themes/ColorPalettePopover.css.js +1 -1
- package/dist/generated/themes/ColorPalettePopover.css.js.map +1 -1
- package/dist/generated/themes/ColorPicker.css.d.ts +1 -1
- package/dist/generated/themes/ColorPicker.css.js +1 -1
- package/dist/generated/themes/ColorPicker.css.js.map +1 -1
- package/dist/generated/themes/ComboBox.css.d.ts +1 -1
- package/dist/generated/themes/ComboBox.css.js +1 -1
- package/dist/generated/themes/ComboBox.css.js.map +1 -1
- package/dist/generated/themes/ComboBoxItem.css.d.ts +1 -1
- package/dist/generated/themes/ComboBoxItem.css.js +1 -1
- package/dist/generated/themes/ComboBoxItem.css.js.map +1 -1
- package/dist/generated/themes/DatePicker.css.d.ts +1 -1
- package/dist/generated/themes/DatePicker.css.js +1 -1
- package/dist/generated/themes/DatePicker.css.js.map +1 -1
- package/dist/generated/themes/DateTimePickerPopover.css.d.ts +1 -1
- package/dist/generated/themes/DateTimePickerPopover.css.js +1 -1
- package/dist/generated/themes/DateTimePickerPopover.css.js.map +1 -1
- package/dist/generated/themes/DayPicker.css.d.ts +1 -1
- package/dist/generated/themes/DayPicker.css.js +1 -1
- package/dist/generated/themes/DayPicker.css.js.map +1 -1
- package/dist/generated/themes/Dialog.css.d.ts +1 -1
- package/dist/generated/themes/Dialog.css.js +1 -1
- package/dist/generated/themes/Dialog.css.js.map +1 -1
- package/dist/generated/themes/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/TableCell.css.d.ts +1 -1
- package/dist/generated/themes/TableCell.css.js +1 -1
- package/dist/generated/themes/TableCell.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/TableGrowing.css.d.ts +1 -1
- package/dist/generated/themes/TableGrowing.css.js +1 -1
- package/dist/generated/themes/TableGrowing.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/popup-utils/PopoverRegistry.js +2 -2
- package/dist/popup-utils/PopoverRegistry.js.map +1 -1
- package/dist/types/ListItemAccessibleRole.d.ts +5 -0
- package/dist/types/ListItemAccessibleRole.js +5 -0
- package/dist/types/ListItemAccessibleRole.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 +51 -10
- package/dist/web-types.json +99 -23
- package/package.json +9 -9
- package/src/ComboBoxItemGroupTemplate.tsx +2 -2
- package/src/ListBoxItemGroupTemplate.tsx +33 -0
- package/src/ListItemGroupHeaderTemplate.tsx +5 -3
- package/src/ListItemGroupTemplate.tsx +21 -19
- package/src/ListTemplate.tsx +1 -0
- package/src/MultiComboBoxItemGroupTemplate.tsx +2 -2
- package/src/SelectTemplate.tsx +2 -0
- package/src/TabContainerTemplate.tsx +1 -0
- package/src/TableCellTemplate.tsx +15 -0
- package/src/TableGrowingTemplate.tsx +23 -0
- package/src/TableHeaderCellActionBaseTemplate.tsx +13 -0
- package/src/TableHeaderCellTemplate.tsx +27 -0
- package/src/TableHeaderRowTemplate.tsx +44 -0
- package/src/TableRowActionBaseTemplate.tsx +28 -0
- package/src/TableRowTemplate.tsx +76 -0
- package/src/TableTemplate.tsx +76 -0
- package/src/ToolbarPopoverTemplate.tsx +1 -0
- package/src/features/InputSuggestionsTemplate.tsx +2 -0
- package/src/i18n/messagebundle.properties +9 -0
- package/src/i18n/messagebundle_ar.properties +2 -0
- package/src/i18n/messagebundle_bg.properties +2 -0
- package/src/i18n/messagebundle_ca.properties +2 -0
- package/src/i18n/messagebundle_cnr.properties +2 -0
- package/src/i18n/messagebundle_cs.properties +2 -0
- package/src/i18n/messagebundle_cy.properties +2 -0
- package/src/i18n/messagebundle_da.properties +2 -0
- package/src/i18n/messagebundle_de.properties +2 -0
- package/src/i18n/messagebundle_el.properties +2 -0
- package/src/i18n/messagebundle_en.properties +2 -0
- package/src/i18n/messagebundle_en_GB.properties +2 -0
- package/src/i18n/messagebundle_en_US_saprigi.properties +4 -0
- package/src/i18n/messagebundle_es.properties +2 -0
- package/src/i18n/messagebundle_es_MX.properties +2 -0
- package/src/i18n/messagebundle_et.properties +2 -0
- package/src/i18n/messagebundle_fi.properties +2 -0
- package/src/i18n/messagebundle_fr.properties +2 -0
- package/src/i18n/messagebundle_fr_CA.properties +2 -0
- package/src/i18n/messagebundle_hi.properties +2 -0
- package/src/i18n/messagebundle_hr.properties +2 -0
- package/src/i18n/messagebundle_hu.properties +2 -0
- package/src/i18n/messagebundle_id.properties +2 -0
- package/src/i18n/messagebundle_it.properties +2 -0
- package/src/i18n/messagebundle_iw.properties +2 -0
- package/src/i18n/messagebundle_ja.properties +2 -0
- package/src/i18n/messagebundle_kk.properties +2 -0
- package/src/i18n/messagebundle_ko.properties +2 -0
- package/src/i18n/messagebundle_lt.properties +2 -0
- package/src/i18n/messagebundle_lv.properties +2 -0
- package/src/i18n/messagebundle_mk.properties +2 -0
- package/src/i18n/messagebundle_ms.properties +2 -0
- package/src/i18n/messagebundle_nl.properties +2 -0
- package/src/i18n/messagebundle_no.properties +2 -0
- package/src/i18n/messagebundle_pl.properties +2 -0
- package/src/i18n/messagebundle_pt.properties +2 -0
- package/src/i18n/messagebundle_pt_PT.properties +2 -0
- package/src/i18n/messagebundle_ro.properties +2 -0
- package/src/i18n/messagebundle_ru.properties +2 -0
- package/src/i18n/messagebundle_sh.properties +2 -0
- package/src/i18n/messagebundle_sk.properties +2 -0
- package/src/i18n/messagebundle_sl.properties +2 -0
- package/src/i18n/messagebundle_sr.properties +2 -0
- package/src/i18n/messagebundle_sv.properties +2 -0
- package/src/i18n/messagebundle_th.properties +2 -0
- package/src/i18n/messagebundle_tr.properties +2 -0
- package/src/i18n/messagebundle_uk.properties +2 -0
- package/src/i18n/messagebundle_vi.properties +2 -0
- package/src/i18n/messagebundle_zh_CN.properties +2 -0
- package/src/i18n/messagebundle_zh_TW.properties +2 -0
- package/src/themes/Avatar.css +51 -2
- package/src/themes/Menu.css +7 -0
- package/src/themes/PopupsCommon.css +7 -4
- package/src/themes/TabContainer.css +4 -0
- package/src/themes/TableCell.css +5 -1
- package/src/themes/TableCellBase.css +1 -1
- package/src/themes/TableGrowing.css +4 -1
- package/src/themes/Text.css +9 -5
- package/src/themes/Toast.css +1 -1
- package/src/themes/Token.css +10 -10
- package/src/themes/base/Avatar-parameters.css +1 -1
- package/src/themes/base/Toast-parameters.css +2 -2
- package/src/themes/sap_horizon/Avatar-parameters.css +3 -2
- package/src/themes/sap_horizon/Switch-parameters.css +7 -7
- package/src/themes/sap_horizon_dark/Avatar-parameters.css +2 -1
- package/src/themes/sap_horizon_dark/Switch-parameters.css +7 -7
- package/src/themes/sap_horizon_hcb/Avatar-parameters.css +3 -2
- package/src/themes/sap_horizon_hcb/Switch-parameters.css +7 -28
- package/src/themes/sap_horizon_hcw/Avatar-parameters.css +3 -2
- package/src/themes/sap_horizon_hcw/Switch-parameters.css +7 -7
- package/dist/SuggestionItemGroupTemplate.d.ts +0 -2
- package/dist/SuggestionItemGroupTemplate.js +0 -5
- package/dist/SuggestionItemGroupTemplate.js.map +0 -1
- package/dist/generated/templates/TableGrowingTemplate.lit.d.ts +0 -3
- package/dist/generated/templates/TableGrowingTemplate.lit.js +0 -8
- package/dist/generated/templates/TableGrowingTemplate.lit.js.map +0 -1
- package/dist/generated/templates/TableHeaderCellActionBaseTemplate.lit.d.ts +0 -3
- package/dist/generated/templates/TableHeaderCellActionBaseTemplate.lit.js +0 -7
- package/dist/generated/templates/TableHeaderCellActionBaseTemplate.lit.js.map +0 -1
- package/dist/generated/templates/TableHeaderCellTemplate.lit.d.ts +0 -3
- package/dist/generated/templates/TableHeaderCellTemplate.lit.js +0 -8
- package/dist/generated/templates/TableHeaderCellTemplate.lit.js.map +0 -1
- package/dist/generated/templates/TableHeaderRowTemplate.lit.d.ts +0 -3
- package/dist/generated/templates/TableHeaderRowTemplate.lit.js +0 -12
- package/dist/generated/templates/TableHeaderRowTemplate.lit.js.map +0 -1
- package/dist/generated/templates/TableRowActionBaseTemplate.lit.d.ts +0 -3
- package/dist/generated/templates/TableRowActionBaseTemplate.lit.js +0 -11
- package/dist/generated/templates/TableRowActionBaseTemplate.lit.js.map +0 -1
- package/dist/generated/templates/TableRowTemplate.lit.d.ts +0 -3
- package/dist/generated/templates/TableRowTemplate.lit.js +0 -18
- package/dist/generated/templates/TableRowTemplate.lit.js.map +0 -1
- package/dist/generated/templates/TableTemplate.lit.d.ts +0 -3
- package/dist/generated/templates/TableTemplate.lit.js +0 -12
- package/dist/generated/templates/TableTemplate.lit.js.map +0 -1
- package/src/SuggestionItemGroupTemplate.tsx +0 -6
- package/src/Table.hbs +0 -63
- package/src/TableGrowing.hbs +0 -17
- package/src/TableHeaderCell.hbs +0 -5
- package/src/TableHeaderCellActionBase.hbs +0 -6
- package/src/TableHeaderRow.hbs +0 -28
- package/src/TableRow.hbs +0 -55
- package/src/TableRowActionBase.hbs +0 -16
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import UI5Element from "@ui5/webcomponents-base/dist/UI5Element.js";
|
|
2
|
+
import type Table from "./Table.js";
|
|
3
|
+
import type TableRowBase from "./TableRowBase.js";
|
|
4
|
+
import type TableRow from "./TableRow.js";
|
|
5
|
+
import type { ITableFeature } from "./Table.js";
|
|
6
|
+
/**
|
|
7
|
+
* Fired when selection is changed by user interaction.
|
|
8
|
+
*
|
|
9
|
+
* @public
|
|
10
|
+
*/
|
|
11
|
+
type TableSelectionBaseChangeEventDetail = void;
|
|
12
|
+
/**
|
|
13
|
+
* Fired when the selection is changed by user interaction.
|
|
14
|
+
*
|
|
15
|
+
* @public
|
|
16
|
+
*/
|
|
17
|
+
declare abstract class TableSelectionBase extends UI5Element implements ITableFeature {
|
|
18
|
+
eventDetails: {
|
|
19
|
+
change: TableSelectionBaseChangeEventDetail;
|
|
20
|
+
};
|
|
21
|
+
/**
|
|
22
|
+
* Defines the selected elements of the component.
|
|
23
|
+
*
|
|
24
|
+
* @default undefined
|
|
25
|
+
* @public
|
|
26
|
+
*/
|
|
27
|
+
selected?: string;
|
|
28
|
+
readonly identifier = "TableSelection";
|
|
29
|
+
protected _table?: Table;
|
|
30
|
+
onTableActivate(table: Table): void;
|
|
31
|
+
onExitDOM(): void;
|
|
32
|
+
onBeforeRendering(): void;
|
|
33
|
+
isSelectable(): boolean;
|
|
34
|
+
/**
|
|
35
|
+
* Determines if the component allows multiple selection.
|
|
36
|
+
*/
|
|
37
|
+
isMultiSelectable(): boolean;
|
|
38
|
+
/**
|
|
39
|
+
* Determines whether a row selector (for example, `radiobutton` or `checkbox`) is rendered.
|
|
40
|
+
*/
|
|
41
|
+
isRowSelectorRequired(): boolean;
|
|
42
|
+
/**
|
|
43
|
+
* Returns the unique key associated with the table row.
|
|
44
|
+
*
|
|
45
|
+
* @param row The row instance
|
|
46
|
+
* @public
|
|
47
|
+
*/
|
|
48
|
+
getRowKey(row: TableRow): string;
|
|
49
|
+
/**
|
|
50
|
+
* Returns the table row instance for the given row key.
|
|
51
|
+
*
|
|
52
|
+
* @param rowKey The row key
|
|
53
|
+
* @public
|
|
54
|
+
*/
|
|
55
|
+
getRowByKey(rowKey: string): TableRow | undefined;
|
|
56
|
+
/**
|
|
57
|
+
* Determines whether the specified table row is currently selected.
|
|
58
|
+
*
|
|
59
|
+
* @param row The row instance
|
|
60
|
+
* @public
|
|
61
|
+
*/
|
|
62
|
+
abstract isSelected(row: TableRowBase): boolean;
|
|
63
|
+
/**
|
|
64
|
+
* Sets the selected state of the specified table row.
|
|
65
|
+
*
|
|
66
|
+
* @param row The row instance
|
|
67
|
+
* @param selected Whether the row is selected
|
|
68
|
+
* @public
|
|
69
|
+
*/
|
|
70
|
+
abstract setSelected(row: TableRowBase, selected: boolean, _fireEvent: boolean): void;
|
|
71
|
+
/**
|
|
72
|
+
* Invalidates the table and its rows to re-evaluate the selection.
|
|
73
|
+
*
|
|
74
|
+
* @protected
|
|
75
|
+
*/
|
|
76
|
+
protected _invalidateTableAndRows(): void;
|
|
77
|
+
}
|
|
78
|
+
export default TableSelectionBase;
|
|
79
|
+
export type { TableSelectionBaseChangeEventDetail, };
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
import UI5Element from "@ui5/webcomponents-base/dist/UI5Element.js";
|
|
8
|
+
import { property, eventStrict } from "@ui5/webcomponents-base/dist/decorators.js";
|
|
9
|
+
import { isInstanceOfTable } from "./TableUtils.js";
|
|
10
|
+
/**
|
|
11
|
+
* Fired when the selection is changed by user interaction.
|
|
12
|
+
*
|
|
13
|
+
* @public
|
|
14
|
+
*/
|
|
15
|
+
let TableSelectionBase =
|
|
16
|
+
/**
|
|
17
|
+
* @class
|
|
18
|
+
* The `TableSelectionBase` class serves as a foundation for table selections.
|
|
19
|
+
* @constructor
|
|
20
|
+
* @extends UI5Element
|
|
21
|
+
* @since 2.8.0
|
|
22
|
+
* @public
|
|
23
|
+
*/
|
|
24
|
+
class TableSelectionBase extends UI5Element {
|
|
25
|
+
constructor() {
|
|
26
|
+
super(...arguments);
|
|
27
|
+
this.identifier = "TableSelection";
|
|
28
|
+
}
|
|
29
|
+
onTableActivate(table) {
|
|
30
|
+
this._table = table;
|
|
31
|
+
this._invalidateTableAndRows();
|
|
32
|
+
}
|
|
33
|
+
onExitDOM() {
|
|
34
|
+
this._invalidateTableAndRows();
|
|
35
|
+
this._table = undefined;
|
|
36
|
+
}
|
|
37
|
+
onBeforeRendering() {
|
|
38
|
+
if (!this._table && this.parentElement && isInstanceOfTable(this.parentElement)) {
|
|
39
|
+
this._table = this.parentElement;
|
|
40
|
+
}
|
|
41
|
+
this._invalidateTableAndRows();
|
|
42
|
+
}
|
|
43
|
+
// this will be removed when the legacy selection component is removed
|
|
44
|
+
isSelectable() {
|
|
45
|
+
return true;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Determines if the component allows multiple selection.
|
|
49
|
+
*/
|
|
50
|
+
isMultiSelectable() {
|
|
51
|
+
return false;
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Determines whether a row selector (for example, `radiobutton` or `checkbox`) is rendered.
|
|
55
|
+
*/
|
|
56
|
+
isRowSelectorRequired() {
|
|
57
|
+
return true;
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Returns the unique key associated with the table row.
|
|
61
|
+
*
|
|
62
|
+
* @param row The row instance
|
|
63
|
+
* @public
|
|
64
|
+
*/
|
|
65
|
+
getRowKey(row) {
|
|
66
|
+
return row.rowKey || "";
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Returns the table row instance for the given row key.
|
|
70
|
+
*
|
|
71
|
+
* @param rowKey The row key
|
|
72
|
+
* @public
|
|
73
|
+
*/
|
|
74
|
+
getRowByKey(rowKey) {
|
|
75
|
+
if (this._table && rowKey) {
|
|
76
|
+
return this._table.rows.find(row => this.getRowKey(row) === rowKey);
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Invalidates the table and its rows to re-evaluate the selection.
|
|
81
|
+
*
|
|
82
|
+
* @protected
|
|
83
|
+
*/
|
|
84
|
+
_invalidateTableAndRows() {
|
|
85
|
+
if (this._table) {
|
|
86
|
+
this._table._invalidate++;
|
|
87
|
+
this._table.rows.forEach(row => row._invalidate++);
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
};
|
|
91
|
+
__decorate([
|
|
92
|
+
property()
|
|
93
|
+
], TableSelectionBase.prototype, "selected", void 0);
|
|
94
|
+
TableSelectionBase = __decorate([
|
|
95
|
+
eventStrict("change", {
|
|
96
|
+
bubbles: false,
|
|
97
|
+
})
|
|
98
|
+
/**
|
|
99
|
+
* @class
|
|
100
|
+
* The `TableSelectionBase` class serves as a foundation for table selections.
|
|
101
|
+
* @constructor
|
|
102
|
+
* @extends UI5Element
|
|
103
|
+
* @since 2.8.0
|
|
104
|
+
* @public
|
|
105
|
+
*/
|
|
106
|
+
], TableSelectionBase);
|
|
107
|
+
export default TableSelectionBase;
|
|
108
|
+
//# sourceMappingURL=TableSelectionBase.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TableSelectionBase.js","sourceRoot":"","sources":["../src/TableSelectionBase.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,UAAU,MAAM,4CAA4C,CAAC;AACpE,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,4CAA4C,CAAC;AACnF,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAapD;;;;GAIG;AAaH,IAAe,kBAAkB;AARjC;;;;;;;GAOG;AACH,MAAe,kBAAmB,SAAQ,UAAU;IAApD;;QAcU,eAAU,GAAG,gBAAgB,CAAC;IAyFxC,CAAC;IAtFA,eAAe,CAAC,KAAY;QAC3B,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACpB,IAAI,CAAC,uBAAuB,EAAE,CAAC;IAChC,CAAC;IAED,SAAS;QACR,IAAI,CAAC,uBAAuB,EAAE,CAAC;QAC/B,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC;IACzB,CAAC;IAED,iBAAiB;QAChB,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,aAAa,IAAI,iBAAiB,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC;YACjF,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC;QAClC,CAAC;QACD,IAAI,CAAC,uBAAuB,EAAE,CAAC;IAChC,CAAC;IAED,sEAAsE;IACtE,YAAY;QACX,OAAO,IAAI,CAAC;IACb,CAAC;IAED;;OAEG;IACH,iBAAiB;QAChB,OAAO,KAAK,CAAC;IACd,CAAC;IAED;;OAEG;IACH,qBAAqB;QACpB,OAAO,IAAI,CAAC;IACb,CAAC;IAED;;;;;OAKG;IACH,SAAS,CAAC,GAAa;QACtB,OAAO,GAAG,CAAC,MAAM,IAAI,EAAE,CAAC;IACzB,CAAC;IAED;;;;;OAKG;IACH,WAAW,CAAC,MAAc;QACzB,IAAI,IAAI,CAAC,MAAM,IAAI,MAAM,EAAE,CAAC;YAC3B,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,MAAM,CAAC,CAAC;QACrE,CAAC;IACF,CAAC;IAmBD;;;;OAIG;IACO,uBAAuB;QAChC,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YACjB,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;YAC1B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC;QACpD,CAAC;IACF,CAAC;CACD,CAAA;AA3FA;IADC,QAAQ,EAAE;oDACO;AAZJ,kBAAkB;IAZhC,WAAW,CAAC,QAAQ,EAAE;QACtB,OAAO,EAAE,KAAK;KACd,CAAC;IAEF;;;;;;;OAOG;GACY,kBAAkB,CAuGhC;AAED,eAAe,kBAAkB,CAAC","sourcesContent":["import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport { property, eventStrict } from \"@ui5/webcomponents-base/dist/decorators.js\";\nimport { isInstanceOfTable } from \"./TableUtils.js\";\nimport type Table from \"./Table.js\";\nimport type TableRowBase from \"./TableRowBase.js\";\nimport type TableRow from \"./TableRow.js\";\nimport type { ITableFeature } from \"./Table.js\";\n\n/**\n * Fired when selection is changed by user interaction.\n *\n * @public\n */\ntype TableSelectionBaseChangeEventDetail = void;\n\n/**\n * Fired when the selection is changed by user interaction.\n *\n * @public\n */\n@eventStrict(\"change\", {\n\tbubbles: false,\n})\n\n/**\n * @class\n * The `TableSelectionBase` class serves as a foundation for table selections.\n * @constructor\n * @extends UI5Element\n * @since 2.8.0\n * @public\n */\nabstract class TableSelectionBase extends UI5Element implements ITableFeature {\n\teventDetails!: {\n\t\tchange: TableSelectionBaseChangeEventDetail,\n\t}\n\n\t/**\n\t * Defines the selected elements of the component.\n\t *\n\t * @default undefined\n\t * @public\n\t */\n\t@property()\n\tselected?: string;\n\n\treadonly identifier = \"TableSelection\";\n\tprotected _table?: Table;\n\n\tonTableActivate(table: Table) {\n\t\tthis._table = table;\n\t\tthis._invalidateTableAndRows();\n\t}\n\n\tonExitDOM() {\n\t\tthis._invalidateTableAndRows();\n\t\tthis._table = undefined;\n\t}\n\n\tonBeforeRendering() {\n\t\tif (!this._table && this.parentElement && isInstanceOfTable(this.parentElement)) {\n\t\t\tthis._table = this.parentElement;\n\t\t}\n\t\tthis._invalidateTableAndRows();\n\t}\n\n\t// this will be removed when the legacy selection component is removed\n\tisSelectable(): boolean {\n\t\treturn true;\n\t}\n\n\t/**\n\t * Determines if the component allows multiple selection.\n\t */\n\tisMultiSelectable(): boolean {\n\t\treturn false;\n\t}\n\n\t/**\n\t * Determines whether a row selector (for example, `radiobutton` or `checkbox`) is rendered.\n\t */\n\tisRowSelectorRequired(): boolean {\n\t\treturn true;\n\t}\n\n\t/**\n\t * Returns the unique key associated with the table row.\n\t *\n\t * @param row The row instance\n\t * @public\n\t */\n\tgetRowKey(row: TableRow): string {\n\t\treturn row.rowKey || \"\";\n\t}\n\n\t/**\n\t * Returns the table row instance for the given row key.\n\t *\n\t * @param rowKey The row key\n\t * @public\n\t */\n\tgetRowByKey(rowKey: string): TableRow | undefined {\n\t\tif (this._table && rowKey) {\n\t\t\treturn this._table.rows.find(row => this.getRowKey(row) === rowKey);\n\t\t}\n\t}\n\n\t/**\n\t * Determines whether the specified table row is currently selected.\n\t *\n\t * @param row The row instance\n\t * @public\n\t */\n\tabstract isSelected(row: TableRowBase): boolean;\n\n\t/**\n\t * Sets the selected state of the specified table row.\n\t *\n\t * @param row The row instance\n\t * @param selected Whether the row is selected\n\t * @public\n\t */\n\tabstract setSelected(row: TableRowBase, selected: boolean, _fireEvent: boolean): void;\n\n\t/**\n\t * Invalidates the table and its rows to re-evaluate the selection.\n\t *\n\t * @protected\n\t */\n\tprotected _invalidateTableAndRows() {\n\t\tif (this._table) {\n\t\t\tthis._table._invalidate++;\n\t\t\tthis._table.rows.forEach(row => row._invalidate++);\n\t\t}\n\t}\n}\n\nexport default TableSelectionBase;\n\nexport type {\n\tTableSelectionBaseChangeEventDetail,\n};\n"]}
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
import TableSelectionBase from "./TableSelectionBase.js";
|
|
2
|
+
import type TableRow from "./TableRow.js";
|
|
3
|
+
import type TableRowBase from "./TableRowBase.js";
|
|
4
|
+
/**
|
|
5
|
+
* @class
|
|
6
|
+
*
|
|
7
|
+
* ### Overview
|
|
8
|
+
*
|
|
9
|
+
* The `ui5-table-selection-multi` component is used inside the `ui5-table` to add multi-selection capabilities to the `ui5-table`.
|
|
10
|
+
* Since selection is key-based, each `ui5-table-row` must define a unique `row-key` property.
|
|
11
|
+
*
|
|
12
|
+
* ### Usage
|
|
13
|
+
*
|
|
14
|
+
* The `ui5-table-selection-multi` component is a feature designed exclusively for use within the `ui5-table` component.
|
|
15
|
+
* It must be placed inside the `features` slot of `ui5-table`.
|
|
16
|
+
* This component is not intended for standalone use.
|
|
17
|
+
*
|
|
18
|
+
* ```html
|
|
19
|
+
* <ui5-table>
|
|
20
|
+
* <ui5-table-selection-multi slot="features" selected="Row1 Row3"></ui5-table-selection-multi>
|
|
21
|
+
* </ui5-table>
|
|
22
|
+
* ```
|
|
23
|
+
*
|
|
24
|
+
* ### ES6 Module Import
|
|
25
|
+
*
|
|
26
|
+
* `import "@ui5/webcomponents/dist/TableSelectionMulti.js";`
|
|
27
|
+
*
|
|
28
|
+
* @constructor
|
|
29
|
+
* @extends TableSelectionBase
|
|
30
|
+
* @since 2.8.0
|
|
31
|
+
* @public
|
|
32
|
+
*/
|
|
33
|
+
declare class TableSelectionMulti extends TableSelectionBase {
|
|
34
|
+
/**
|
|
35
|
+
* Defines the `row-key` values of selected rows, with each value separated by a space.
|
|
36
|
+
*
|
|
37
|
+
* @default undefined
|
|
38
|
+
* @public
|
|
39
|
+
*/
|
|
40
|
+
selected?: string;
|
|
41
|
+
private _rowsLength;
|
|
42
|
+
private _rangeSelection?;
|
|
43
|
+
onTableBeforeRendering(): void;
|
|
44
|
+
isMultiSelectable(): boolean;
|
|
45
|
+
isSelected(row: TableRowBase): boolean;
|
|
46
|
+
setSelected(row: TableRowBase, selected: boolean, _fireEvent?: boolean): void;
|
|
47
|
+
/**
|
|
48
|
+
* Returns an array of the selected rows.
|
|
49
|
+
*
|
|
50
|
+
* @public
|
|
51
|
+
*/
|
|
52
|
+
getSelectedRows(): TableRow[];
|
|
53
|
+
/**
|
|
54
|
+
* Determines whether all rows are selected.
|
|
55
|
+
*
|
|
56
|
+
* @public
|
|
57
|
+
*/
|
|
58
|
+
areAllRowsSelected(): boolean;
|
|
59
|
+
/**
|
|
60
|
+
* Returns the `selected` property as a set of unique `row-key` values.
|
|
61
|
+
*
|
|
62
|
+
* @public
|
|
63
|
+
*/
|
|
64
|
+
getSelectedAsSet(): Set<string>;
|
|
65
|
+
/**
|
|
66
|
+
* Sets the `selected` property using the provided set of unique `row-key` values.
|
|
67
|
+
*
|
|
68
|
+
* @param selectedSet A set of `row-key` values
|
|
69
|
+
* @public
|
|
70
|
+
*/
|
|
71
|
+
setSelectedAsSet(selectedSet: Set<string>): void;
|
|
72
|
+
_invalidateTableAndRows(): void;
|
|
73
|
+
_onkeydown(e: KeyboardEvent): void;
|
|
74
|
+
_onkeyup(e: KeyboardEvent, eventOrigin: HTMLElement): void;
|
|
75
|
+
_onclick(e: MouseEvent): void;
|
|
76
|
+
/**
|
|
77
|
+
* Start the range selection and initialises the range selection state
|
|
78
|
+
* @param row starting row
|
|
79
|
+
* @private
|
|
80
|
+
*/
|
|
81
|
+
_startRangeSelection(row: TableRow, isMouse?: boolean): void;
|
|
82
|
+
/**
|
|
83
|
+
* Handles the range selection
|
|
84
|
+
* @param targetRow Row that is currently focused
|
|
85
|
+
* @param change indicates direction
|
|
86
|
+
* @private
|
|
87
|
+
*/
|
|
88
|
+
_handleRangeSelection(targetRow: TableRow, change: number): void;
|
|
89
|
+
_stopRangeSelection(): void;
|
|
90
|
+
_reverseRangeSelection(): void;
|
|
91
|
+
}
|
|
92
|
+
export default TableSelectionMulti;
|
|
@@ -0,0 +1,260 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
import { customElement, property } from "@ui5/webcomponents-base/dist/decorators.js";
|
|
8
|
+
import TableSelectionBase from "./TableSelectionBase.js";
|
|
9
|
+
import getActiveElement from "@ui5/webcomponents-base/dist/util/getActiveElement.js";
|
|
10
|
+
import { isSelectionCheckbox, isHeaderSelector, findRowInPath } from "./TableUtils.js";
|
|
11
|
+
import { isUpShift } from "@ui5/webcomponents-base/dist/Keys.js";
|
|
12
|
+
/**
|
|
13
|
+
* @class
|
|
14
|
+
*
|
|
15
|
+
* ### Overview
|
|
16
|
+
*
|
|
17
|
+
* The `ui5-table-selection-multi` component is used inside the `ui5-table` to add multi-selection capabilities to the `ui5-table`.
|
|
18
|
+
* Since selection is key-based, each `ui5-table-row` must define a unique `row-key` property.
|
|
19
|
+
*
|
|
20
|
+
* ### Usage
|
|
21
|
+
*
|
|
22
|
+
* The `ui5-table-selection-multi` component is a feature designed exclusively for use within the `ui5-table` component.
|
|
23
|
+
* It must be placed inside the `features` slot of `ui5-table`.
|
|
24
|
+
* This component is not intended for standalone use.
|
|
25
|
+
*
|
|
26
|
+
* ```html
|
|
27
|
+
* <ui5-table>
|
|
28
|
+
* <ui5-table-selection-multi slot="features" selected="Row1 Row3"></ui5-table-selection-multi>
|
|
29
|
+
* </ui5-table>
|
|
30
|
+
* ```
|
|
31
|
+
*
|
|
32
|
+
* ### ES6 Module Import
|
|
33
|
+
*
|
|
34
|
+
* `import "@ui5/webcomponents/dist/TableSelectionMulti.js";`
|
|
35
|
+
*
|
|
36
|
+
* @constructor
|
|
37
|
+
* @extends TableSelectionBase
|
|
38
|
+
* @since 2.8.0
|
|
39
|
+
* @public
|
|
40
|
+
*/
|
|
41
|
+
let TableSelectionMulti = class TableSelectionMulti extends TableSelectionBase {
|
|
42
|
+
constructor() {
|
|
43
|
+
super(...arguments);
|
|
44
|
+
this._rowsLength = 0;
|
|
45
|
+
}
|
|
46
|
+
onTableBeforeRendering() {
|
|
47
|
+
if (this._table && this._table.headerRow[0] && this._rowsLength !== this._table.rows.length) {
|
|
48
|
+
this._rowsLength = this._table.rows.length;
|
|
49
|
+
this._table.headerRow[0]._invalidate++;
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
isMultiSelectable() {
|
|
53
|
+
return true;
|
|
54
|
+
}
|
|
55
|
+
isSelected(row) {
|
|
56
|
+
if (row.isHeaderRow()) {
|
|
57
|
+
return this.areAllRowsSelected();
|
|
58
|
+
}
|
|
59
|
+
const rowKey = this.getRowKey(row);
|
|
60
|
+
return this.getSelectedAsSet().has(rowKey);
|
|
61
|
+
}
|
|
62
|
+
setSelected(row, selected, _fireEvent = false) {
|
|
63
|
+
if (this._rangeSelection?.isMouse && this._rangeSelection.shiftPressed) {
|
|
64
|
+
return;
|
|
65
|
+
}
|
|
66
|
+
const tableRows = row.isHeaderRow() ? this._table.rows : [row];
|
|
67
|
+
const selectedSet = this.getSelectedAsSet();
|
|
68
|
+
tableRows.forEach(tableRow => {
|
|
69
|
+
const rowKey = this.getRowKey(tableRow);
|
|
70
|
+
selectedSet[selected ? "add" : "delete"](rowKey);
|
|
71
|
+
});
|
|
72
|
+
this.setSelectedAsSet(selectedSet);
|
|
73
|
+
_fireEvent && this.fireDecoratorEvent("change");
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Returns an array of the selected rows.
|
|
77
|
+
*
|
|
78
|
+
* @public
|
|
79
|
+
*/
|
|
80
|
+
getSelectedRows() {
|
|
81
|
+
return this._table ? this._table.rows.filter(row => this.isSelected(row)) : [];
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Determines whether all rows are selected.
|
|
85
|
+
*
|
|
86
|
+
* @public
|
|
87
|
+
*/
|
|
88
|
+
areAllRowsSelected() {
|
|
89
|
+
if (!this._table || !this._table.rows.length) {
|
|
90
|
+
return false;
|
|
91
|
+
}
|
|
92
|
+
const selectedSet = this.getSelectedAsSet();
|
|
93
|
+
return this._table.rows.every(row => {
|
|
94
|
+
const rowKey = this.getRowKey(row);
|
|
95
|
+
return selectedSet.has(rowKey);
|
|
96
|
+
});
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* Returns the `selected` property as a set of unique `row-key` values.
|
|
100
|
+
*
|
|
101
|
+
* @public
|
|
102
|
+
*/
|
|
103
|
+
getSelectedAsSet() {
|
|
104
|
+
const selected = this.selected || "";
|
|
105
|
+
const selectedArray = selected.split(" ").filter(String);
|
|
106
|
+
return new Set(selectedArray);
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* Sets the `selected` property using the provided set of unique `row-key` values.
|
|
110
|
+
*
|
|
111
|
+
* @param selectedSet A set of `row-key` values
|
|
112
|
+
* @public
|
|
113
|
+
*/
|
|
114
|
+
setSelectedAsSet(selectedSet) {
|
|
115
|
+
this.selected = [...selectedSet].join(" ");
|
|
116
|
+
}
|
|
117
|
+
_invalidateTableAndRows() {
|
|
118
|
+
super._invalidateTableAndRows();
|
|
119
|
+
const headerRow = this._table?.headerRow[0];
|
|
120
|
+
headerRow && headerRow._invalidate++;
|
|
121
|
+
}
|
|
122
|
+
_onkeydown(e) {
|
|
123
|
+
if (!this._table || !e.shiftKey) {
|
|
124
|
+
return;
|
|
125
|
+
}
|
|
126
|
+
const focusedElement = getActiveElement(); // Assumption: The focused element is always the "next" row after navigation.
|
|
127
|
+
if (!(focusedElement?.hasAttribute("ui5-table-row") || this._rangeSelection?.isMouse || focusedElement?.hasAttribute("ui5-growing-row"))) {
|
|
128
|
+
this._stopRangeSelection();
|
|
129
|
+
return;
|
|
130
|
+
}
|
|
131
|
+
if (!this._rangeSelection) {
|
|
132
|
+
// If no range selection is active, start one
|
|
133
|
+
this._startRangeSelection(focusedElement);
|
|
134
|
+
}
|
|
135
|
+
else if (e.key === "ArrowUp" || e.key === "ArrowDown") {
|
|
136
|
+
const change = isUpShift(e) ? -1 : 1;
|
|
137
|
+
this._handleRangeSelection(focusedElement, change);
|
|
138
|
+
}
|
|
139
|
+
if (this._rangeSelection) {
|
|
140
|
+
this._rangeSelection.shiftPressed = e.shiftKey;
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
_onkeyup(e, eventOrigin) {
|
|
144
|
+
if (!this._table) {
|
|
145
|
+
return;
|
|
146
|
+
}
|
|
147
|
+
if (!eventOrigin.hasAttribute("ui5-table-row") || !this._rangeSelection || !e.shiftKey) {
|
|
148
|
+
// Stop range selection if a) Shift is relased or b) the event target is not a row
|
|
149
|
+
this._stopRangeSelection();
|
|
150
|
+
}
|
|
151
|
+
if (this._rangeSelection) {
|
|
152
|
+
this._rangeSelection.shiftPressed = e.shiftKey;
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
_onclick(e) {
|
|
156
|
+
if (!this._table) {
|
|
157
|
+
return;
|
|
158
|
+
}
|
|
159
|
+
if (isHeaderSelector(e)) {
|
|
160
|
+
this._stopRangeSelection();
|
|
161
|
+
return;
|
|
162
|
+
}
|
|
163
|
+
if (!isSelectionCheckbox(e)) {
|
|
164
|
+
this._stopRangeSelection();
|
|
165
|
+
return;
|
|
166
|
+
}
|
|
167
|
+
const row = findRowInPath(e.composedPath());
|
|
168
|
+
if (e.shiftKey && this._rangeSelection?.isMouse) {
|
|
169
|
+
const startRow = this._rangeSelection.rows[0];
|
|
170
|
+
const startIndex = this._table.rows.indexOf(startRow);
|
|
171
|
+
const endIndex = this._table.rows.indexOf(row);
|
|
172
|
+
// When doing a range selection and clicking on an already selected row, the checked status should not change
|
|
173
|
+
// Therefore, we need to manually set the checked attribute again, as clicking it would deselect it and leads to
|
|
174
|
+
// a visual inconsistency.
|
|
175
|
+
row.shadowRoot?.querySelector("#selection-component")?.toggleAttribute("checked", true);
|
|
176
|
+
if (startIndex === -1 || endIndex === -1 || row.rowKey === startRow.rowKey || row.rowKey === this._rangeSelection.rows[this._rangeSelection.rows.length - 1].rowKey) {
|
|
177
|
+
return;
|
|
178
|
+
}
|
|
179
|
+
const change = endIndex - startIndex;
|
|
180
|
+
this._handleRangeSelection(row, change);
|
|
181
|
+
}
|
|
182
|
+
else if (row) {
|
|
183
|
+
this._startRangeSelection(row, true);
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
/**
|
|
187
|
+
* Start the range selection and initialises the range selection state
|
|
188
|
+
* @param row starting row
|
|
189
|
+
* @private
|
|
190
|
+
*/
|
|
191
|
+
_startRangeSelection(row, isMouse = false) {
|
|
192
|
+
const selected = this.isSelected(row);
|
|
193
|
+
if (isMouse && !selected) {
|
|
194
|
+
// Do not initiate range selection if the row is not selected
|
|
195
|
+
return;
|
|
196
|
+
}
|
|
197
|
+
this._rangeSelection = {
|
|
198
|
+
selected,
|
|
199
|
+
isUp: null,
|
|
200
|
+
rows: [row],
|
|
201
|
+
isMouse,
|
|
202
|
+
shiftPressed: false,
|
|
203
|
+
};
|
|
204
|
+
}
|
|
205
|
+
/**
|
|
206
|
+
* Handles the range selection
|
|
207
|
+
* @param targetRow Row that is currently focused
|
|
208
|
+
* @param change indicates direction
|
|
209
|
+
* @private
|
|
210
|
+
*/
|
|
211
|
+
_handleRangeSelection(targetRow, change) {
|
|
212
|
+
if (!this._rangeSelection) {
|
|
213
|
+
return;
|
|
214
|
+
}
|
|
215
|
+
const isUp = change > 0;
|
|
216
|
+
this._rangeSelection.isUp ??= isUp;
|
|
217
|
+
const shouldReverseSelection = isUp !== this._rangeSelection.isUp && !this._rangeSelection.isMouse;
|
|
218
|
+
let selectionChanged = shouldReverseSelection && this.isSelected(targetRow);
|
|
219
|
+
if (shouldReverseSelection) {
|
|
220
|
+
this._reverseRangeSelection();
|
|
221
|
+
}
|
|
222
|
+
else {
|
|
223
|
+
const rowIndex = this._table.rows.indexOf(targetRow);
|
|
224
|
+
const [startIndex, endIndex] = [rowIndex, rowIndex - change].sort((a, b) => a - b);
|
|
225
|
+
const selectedSet = this.getSelectedAsSet();
|
|
226
|
+
selectionChanged = this._table?.rows.slice(startIndex, endIndex + 1).reduce((changed, row) => {
|
|
227
|
+
const isRowNotInSelection = !this._rangeSelection?.rows.includes(row);
|
|
228
|
+
const isRowSelectionDifferent = this.isSelected(row) !== this._rangeSelection.selected;
|
|
229
|
+
if (isRowNotInSelection) {
|
|
230
|
+
this._rangeSelection?.rows.push(row);
|
|
231
|
+
}
|
|
232
|
+
selectedSet[this._rangeSelection.selected ? "add" : "delete"](this.getRowKey(row));
|
|
233
|
+
return changed || isRowSelectionDifferent;
|
|
234
|
+
}, selectionChanged) || false;
|
|
235
|
+
this.setSelectedAsSet(selectedSet);
|
|
236
|
+
}
|
|
237
|
+
selectionChanged && this.fireDecoratorEvent("change");
|
|
238
|
+
}
|
|
239
|
+
_stopRangeSelection() {
|
|
240
|
+
this._rangeSelection = null;
|
|
241
|
+
}
|
|
242
|
+
_reverseRangeSelection() {
|
|
243
|
+
const row = this._rangeSelection?.rows.pop();
|
|
244
|
+
if (row) {
|
|
245
|
+
this.setSelected(row, false);
|
|
246
|
+
}
|
|
247
|
+
if (this._rangeSelection?.rows.length === 1) {
|
|
248
|
+
this._rangeSelection.isUp = null;
|
|
249
|
+
}
|
|
250
|
+
}
|
|
251
|
+
};
|
|
252
|
+
__decorate([
|
|
253
|
+
property()
|
|
254
|
+
], TableSelectionMulti.prototype, "selected", void 0);
|
|
255
|
+
TableSelectionMulti = __decorate([
|
|
256
|
+
customElement({ tag: "ui5-table-selection-multi" })
|
|
257
|
+
], TableSelectionMulti);
|
|
258
|
+
TableSelectionMulti.define();
|
|
259
|
+
export default TableSelectionMulti;
|
|
260
|
+
//# sourceMappingURL=TableSelectionMulti.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TableSelectionMulti.js","sourceRoot":"","sources":["../src/TableSelectionMulti.ts"],"names":[],"mappings":"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","sourcesContent":["import { customElement, property } from \"@ui5/webcomponents-base/dist/decorators.js\";\nimport TableSelectionBase from \"./TableSelectionBase.js\";\nimport getActiveElement from \"@ui5/webcomponents-base/dist/util/getActiveElement.js\";\nimport { isSelectionCheckbox, isHeaderSelector, findRowInPath } from \"./TableUtils.js\";\nimport { isUpShift } from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport type TableRow from \"./TableRow.js\";\nimport type TableRowBase from \"./TableRowBase.js\";\n\n/**\n * @class\n *\n * ### Overview\n *\n * The `ui5-table-selection-multi` component is used inside the `ui5-table` to add multi-selection capabilities to the `ui5-table`.\n * Since selection is key-based, each `ui5-table-row` must define a unique `row-key` property.\n *\n * ### Usage\n *\n * The `ui5-table-selection-multi` component is a feature designed exclusively for use within the `ui5-table` component.\n * It must be placed inside the `features` slot of `ui5-table`.\n * This component is not intended for standalone use.\n *\n * ```html\n * <ui5-table>\n * \t<ui5-table-selection-multi slot=\"features\" selected=\"Row1 Row3\"></ui5-table-selection-multi>\n * </ui5-table>\n * ```\n *\n * ### ES6 Module Import\n *\n * `import \"@ui5/webcomponents/dist/TableSelectionMulti.js\";`\n *\n * @constructor\n * @extends TableSelectionBase\n * @since 2.8.0\n * @public\n */\n@customElement({ tag: \"ui5-table-selection-multi\" })\n\nclass TableSelectionMulti extends TableSelectionBase {\n\t/**\n\t * Defines the `row-key` values of selected rows, with each value separated by a space.\n\t *\n\t * @default undefined\n\t * @public\n\t */\n\t@property()\n\tselected?: string;\n\n\tprivate _rowsLength = 0;\n\tprivate _rangeSelection?: {\n\t\tselected: boolean,\n\t\tisUp: boolean | null,\n\t\trows: TableRow[],\n\t\tisMouse: boolean,\n\t\tshiftPressed: boolean\n\t} | null;\n\n\tonTableBeforeRendering() {\n\t\tif (this._table && this._table.headerRow[0] && this._rowsLength !== this._table.rows.length) {\n\t\t\tthis._rowsLength = this._table.rows.length;\n\t\t\tthis._table.headerRow[0]._invalidate++;\n\t\t}\n\t}\n\n\tisMultiSelectable(): boolean {\n\t\treturn true;\n\t}\n\n\tisSelected(row: TableRowBase): boolean {\n\t\tif (row.isHeaderRow()) {\n\t\t\treturn this.areAllRowsSelected();\n\t\t}\n\n\t\tconst rowKey = this.getRowKey(row as TableRow);\n\t\treturn this.getSelectedAsSet().has(rowKey);\n\t}\n\n\tsetSelected(row: TableRowBase, selected: boolean, _fireEvent: boolean = false) {\n\t\tif (this._rangeSelection?.isMouse && this._rangeSelection.shiftPressed) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst tableRows = row.isHeaderRow() ? this._table!.rows : [row as TableRow];\n\t\tconst selectedSet = this.getSelectedAsSet();\n\t\ttableRows.forEach(tableRow => {\n\t\t\tconst rowKey = this.getRowKey(tableRow);\n\t\t\tselectedSet[selected ? \"add\" : \"delete\"](rowKey);\n\t\t});\n\n\t\tthis.setSelectedAsSet(selectedSet);\n\t\t_fireEvent && this.fireDecoratorEvent(\"change\");\n\t}\n\n\t/**\n\t * Returns an array of the selected rows.\n\t *\n\t * @public\n\t */\n\tgetSelectedRows(): TableRow[] {\n\t\treturn this._table ? this._table.rows.filter(row => this.isSelected(row)) : [];\n\t}\n\n\t/**\n\t * Determines whether all rows are selected.\n\t *\n\t * @public\n\t */\n\tareAllRowsSelected(): boolean {\n\t\tif (!this._table || !this._table.rows.length) {\n\t\t\treturn false;\n\t\t}\n\n\t\tconst selectedSet = this.getSelectedAsSet();\n\t\treturn this._table.rows.every(row => {\n\t\t\tconst rowKey = this.getRowKey(row);\n\t\t\treturn selectedSet.has(rowKey);\n\t\t});\n\t}\n\n\t/**\n\t * Returns the `selected` property as a set of unique `row-key` values.\n\t *\n\t * @public\n\t */\n\tgetSelectedAsSet(): Set<string> {\n\t\tconst selected = this.selected || \"\";\n\t\tconst selectedArray = selected.split(\" \").filter(String);\n\t\treturn new Set(selectedArray);\n\t}\n\n\t/**\n\t * Sets the `selected` property using the provided set of unique `row-key` values.\n\t *\n\t * @param selectedSet A set of `row-key` values\n\t * @public\n\t */\n\tsetSelectedAsSet(selectedSet: Set<string>): void {\n\t\tthis.selected = [...selectedSet].join(\" \");\n\t}\n\n\t_invalidateTableAndRows() {\n\t\tsuper._invalidateTableAndRows();\n\t\tconst headerRow = this._table?.headerRow[0];\n\t\theaderRow && headerRow._invalidate++;\n\t}\n\n\t_onkeydown(e: KeyboardEvent) {\n\t\tif (!this._table || !e.shiftKey) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst focusedElement = getActiveElement(); // Assumption: The focused element is always the \"next\" row after navigation.\n\n\t\tif (!(focusedElement?.hasAttribute(\"ui5-table-row\") || this._rangeSelection?.isMouse || focusedElement?.hasAttribute(\"ui5-growing-row\"))) {\n\t\t\tthis._stopRangeSelection();\n\t\t\treturn;\n\t\t}\n\n\t\tif (!this._rangeSelection) {\n\t\t\t// If no range selection is active, start one\n\t\t\tthis._startRangeSelection(focusedElement as TableRow);\n\t\t} else if (e.key === \"ArrowUp\" || e.key === \"ArrowDown\") {\n\t\t\tconst change = isUpShift(e) ? -1 : 1;\n\t\t\tthis._handleRangeSelection(focusedElement as TableRow, change);\n\t\t}\n\n\t\tif (this._rangeSelection) {\n\t\t\tthis._rangeSelection.shiftPressed = e.shiftKey;\n\t\t}\n\t}\n\n\t_onkeyup(e: KeyboardEvent, eventOrigin: HTMLElement) {\n\t\tif (!this._table) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (!eventOrigin.hasAttribute(\"ui5-table-row\") || !this._rangeSelection || !e.shiftKey) {\n\t\t\t// Stop range selection if a) Shift is relased or b) the event target is not a row\n\t\t\tthis._stopRangeSelection();\n\t\t}\n\n\t\tif (this._rangeSelection) {\n\t\t\tthis._rangeSelection.shiftPressed = e.shiftKey;\n\t\t}\n\t}\n\n\t_onclick(e: MouseEvent) {\n\t\tif (!this._table) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (isHeaderSelector(e)) {\n\t\t\tthis._stopRangeSelection();\n\t\t\treturn;\n\t\t}\n\n\t\tif (!isSelectionCheckbox(e)) {\n\t\t\tthis._stopRangeSelection();\n\t\t\treturn;\n\t\t}\n\n\t\tconst row = findRowInPath(e.composedPath());\n\n\t\tif (e.shiftKey && this._rangeSelection?.isMouse) {\n\t\t\tconst startRow = this._rangeSelection.rows[0];\n\t\t\tconst startIndex = this._table.rows.indexOf(startRow);\n\t\t\tconst endIndex = this._table.rows.indexOf(row);\n\n\t\t\t// When doing a range selection and clicking on an already selected row, the checked status should not change\n\t\t\t// Therefore, we need to manually set the checked attribute again, as clicking it would deselect it and leads to\n\t\t\t// a visual inconsistency.\n\t\t\trow.shadowRoot?.querySelector(\"#selection-component\")?.toggleAttribute(\"checked\", true);\n\n\t\t\tif (startIndex === -1 || endIndex === -1 || row.rowKey === startRow.rowKey || row.rowKey === this._rangeSelection.rows[this._rangeSelection.rows.length - 1].rowKey) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst change = endIndex - startIndex;\n\t\t\tthis._handleRangeSelection(row, change);\n\t\t} else if (row) {\n\t\t\tthis._startRangeSelection(row, true);\n\t\t}\n\t}\n\n\t/**\n\t * Start the range selection and initialises the range selection state\n\t * @param row starting row\n\t * @private\n\t */\n\t_startRangeSelection(row: TableRow, isMouse = false) {\n\t\tconst selected = this.isSelected(row);\n\t\tif (isMouse && !selected) {\n\t\t\t// Do not initiate range selection if the row is not selected\n\t\t\treturn;\n\t\t}\n\n\t\tthis._rangeSelection = {\n\t\t\tselected,\n\t\t\tisUp: null,\n\t\t\trows: [row],\n\t\t\tisMouse,\n\t\t\tshiftPressed: false,\n\t\t};\n\t}\n\n\t/**\n\t * Handles the range selection\n\t * @param targetRow Row that is currently focused\n\t * @param change indicates direction\n\t * @private\n\t */\n\t_handleRangeSelection(targetRow: TableRow, change: number) {\n\t\tif (!this._rangeSelection) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst isUp = change > 0;\n\t\tthis._rangeSelection.isUp ??= isUp;\n\n\t\tconst shouldReverseSelection = isUp !== this._rangeSelection.isUp && !this._rangeSelection.isMouse;\n\t\tlet selectionChanged = shouldReverseSelection && this.isSelected(targetRow);\n\n\t\tif (shouldReverseSelection) {\n\t\t\tthis._reverseRangeSelection();\n\t\t} else {\n\t\t\tconst rowIndex = this._table!.rows.indexOf(targetRow);\n\t\t\tconst [startIndex, endIndex] = [rowIndex, rowIndex - change].sort((a, b) => a - b);\n\t\t\tconst selectedSet = this.getSelectedAsSet();\n\n\t\t\tselectionChanged = this._table?.rows.slice(startIndex, endIndex + 1).reduce((changed, row) => {\n\t\t\t\tconst isRowNotInSelection = !this._rangeSelection?.rows.includes(row);\n\t\t\t\tconst isRowSelectionDifferent = this.isSelected(row) !== this._rangeSelection!.selected;\n\n\t\t\t\tif (isRowNotInSelection) {\n\t\t\t\t\tthis._rangeSelection?.rows.push(row);\n\t\t\t\t}\n\n\t\t\t\tselectedSet[this._rangeSelection!.selected ? \"add\" : \"delete\"](this.getRowKey(row));\n\n\t\t\t\treturn changed || isRowSelectionDifferent;\n\t\t\t}, selectionChanged) || false;\n\n\t\t\tthis.setSelectedAsSet(selectedSet);\n\t\t}\n\n\t\tselectionChanged && this.fireDecoratorEvent(\"change\");\n\t}\n\n\t_stopRangeSelection() {\n\t\tthis._rangeSelection = null;\n\t}\n\n\t_reverseRangeSelection() {\n\t\tconst row = this._rangeSelection?.rows.pop();\n\t\tif (row) {\n\t\t\tthis.setSelected(row, false);\n\t\t}\n\n\t\tif (this._rangeSelection?.rows.length === 1) {\n\t\t\tthis._rangeSelection.isUp = null;\n\t\t}\n\t}\n}\n\nTableSelectionMulti.define();\n\nexport default TableSelectionMulti;\n"]}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import TableSelectionBase from "./TableSelectionBase.js";
|
|
2
|
+
import type TableRow from "./TableRow.js";
|
|
3
|
+
/**
|
|
4
|
+
* @class
|
|
5
|
+
*
|
|
6
|
+
* ### Overview
|
|
7
|
+
*
|
|
8
|
+
* The `ui5-table-selection-single` component is used inside the `ui5-table` to add single selection capabilities to the `ui5-table`.
|
|
9
|
+
* Since selection is key-based, each `ui5-table-row` must define a unique `row-key` property.
|
|
10
|
+
*
|
|
11
|
+
* ### Usage
|
|
12
|
+
*
|
|
13
|
+
* The `ui5-table-selection-single` component is a feature designed exclusively for use within the `ui5-table` component.
|
|
14
|
+
* It must be placed inside the `features` slot of `ui5-table`.
|
|
15
|
+
* This component is not intended for standalone use.
|
|
16
|
+
*
|
|
17
|
+
* ```html
|
|
18
|
+
* <ui5-table>
|
|
19
|
+
* <ui5-table-selection-single slot="features" selected="Row1"></ui5-table-selection-single>
|
|
20
|
+
* </ui5-table>
|
|
21
|
+
* ```
|
|
22
|
+
*
|
|
23
|
+
* ### ES6 Module Import
|
|
24
|
+
*
|
|
25
|
+
* `import "@ui5/webcomponents/dist/TableSelectionSingle.js";`
|
|
26
|
+
*
|
|
27
|
+
* @constructor
|
|
28
|
+
* @extends TableSelectionBase
|
|
29
|
+
* @since 2.8.0
|
|
30
|
+
* @public
|
|
31
|
+
*/
|
|
32
|
+
declare class TableSelectionSingle extends TableSelectionBase {
|
|
33
|
+
/**
|
|
34
|
+
* Defines the `row-key` value of the selected row.
|
|
35
|
+
*
|
|
36
|
+
* @default undefined
|
|
37
|
+
* @public
|
|
38
|
+
*/
|
|
39
|
+
selected?: string;
|
|
40
|
+
isSelected(row: TableRow): boolean;
|
|
41
|
+
setSelected(row: TableRow, selected: boolean, _fireEvent?: boolean): void;
|
|
42
|
+
/**
|
|
43
|
+
* Returns the selected row.
|
|
44
|
+
*
|
|
45
|
+
* @public
|
|
46
|
+
*/
|
|
47
|
+
getSelectedRow(): TableRow | undefined;
|
|
48
|
+
}
|
|
49
|
+
export default TableSelectionSingle;
|