@openui5/sap.m 1.123.0 → 1.124.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/package.json +4 -4
- package/src/sap/m/.library +6 -1
- package/src/sap/m/AccButton.js +1 -1
- package/src/sap/m/ActionListItem.js +1 -1
- package/src/sap/m/ActionSelect.js +2 -2
- package/src/sap/m/ActionSheet.js +1 -1
- package/src/sap/m/ActionTile.js +33 -11
- package/src/sap/m/ActionTileContent.js +9 -4
- package/src/sap/m/AdditionalTextButton.js +1 -1
- package/src/sap/m/App.js +1 -1
- package/src/sap/m/AssociativeOverflowToolbar.js +1 -1
- package/src/sap/m/Avatar.js +53 -13
- package/src/sap/m/AvatarColor.js +3 -1
- package/src/sap/m/AvatarImageFitType.js +3 -1
- package/src/sap/m/AvatarRenderer.js +4 -3
- package/src/sap/m/AvatarShape.js +3 -1
- package/src/sap/m/AvatarSize.js +3 -1
- package/src/sap/m/AvatarType.js +3 -1
- package/src/sap/m/Bar.js +1 -1
- package/src/sap/m/Breadcrumbs.js +1 -1
- package/src/sap/m/BusyDialog.js +1 -1
- package/src/sap/m/BusyIndicator.js +1 -1
- package/src/sap/m/Button.js +1 -1
- package/src/sap/m/Carousel.js +1 -1
- package/src/sap/m/CarouselLayout.js +1 -1
- package/src/sap/m/CheckBox.js +1 -1
- package/src/sap/m/ColorPalette.js +1 -1
- package/src/sap/m/ColorPalettePopover.js +1 -1
- package/src/sap/m/Column.js +1 -1
- package/src/sap/m/ColumnHeaderPopover.js +1 -1
- package/src/sap/m/ColumnListItem.js +1 -1
- package/src/sap/m/ColumnPopoverActionItem.js +1 -1
- package/src/sap/m/ColumnPopoverCustomItem.js +1 -1
- package/src/sap/m/ColumnPopoverItem.js +1 -1
- package/src/sap/m/ColumnPopoverSelectListItem.js +1 -1
- package/src/sap/m/ColumnPopoverSortItem.js +1 -1
- package/src/sap/m/ComboBox.js +1 -1
- package/src/sap/m/ComboBoxBase.js +2 -1
- package/src/sap/m/ComboBoxTextField.js +1 -1
- package/src/sap/m/ContentConfig.js +1 -1
- package/src/sap/m/CustomListItem.js +1 -1
- package/src/sap/m/CustomTile.js +1 -1
- package/src/sap/m/CustomTreeItem.js +1 -1
- package/src/sap/m/DatePicker.js +1 -1
- package/src/sap/m/DateRangeSelection.js +2 -2
- package/src/sap/m/DateTimeField.js +1 -1
- package/src/sap/m/DateTimeInput.js +1 -1
- package/src/sap/m/DateTimePicker.js +1 -3
- package/src/sap/m/Dialog.js +1 -1
- package/src/sap/m/DisplayListItem.js +1 -1
- package/src/sap/m/DraftIndicator.js +1 -1
- package/src/sap/m/DynamicDate.js +1 -1
- package/src/sap/m/DynamicDateOption.js +1 -1
- package/src/sap/m/DynamicDateRange.js +2 -6
- package/src/sap/m/DynamicDateValueHelpUIType.js +1 -1
- package/src/sap/m/ExpandableText.js +1 -1
- package/src/sap/m/FacetFilter.js +1 -1
- package/src/sap/m/FacetFilterItem.js +1 -1
- package/src/sap/m/FacetFilterList.js +1 -1
- package/src/sap/m/FeedContent.js +1 -1
- package/src/sap/m/FeedInput.js +1 -1
- package/src/sap/m/FeedListItem.js +1 -1
- package/src/sap/m/FeedListItemAction.js +1 -1
- package/src/sap/m/Fiori20Adapter.js +2 -2
- package/src/sap/m/FlexBox.js +1 -1
- package/src/sap/m/FlexItemData.js +1 -1
- package/src/sap/m/FormattedText.js +1 -1
- package/src/sap/m/GenericTag.js +1 -1
- package/src/sap/m/GenericTile.js +40 -17
- package/src/sap/m/GenericTileRenderer.js +103 -11
- package/src/sap/m/GroupHeaderListItem.js +1 -1
- package/src/sap/m/GrowingList.js +1 -1
- package/src/sap/m/HBox.js +1 -1
- package/src/sap/m/HeaderContainer.js +8 -2
- package/src/sap/m/HeaderContainerItemNavigator.js +1 -1
- package/src/sap/m/HeaderContainerRenderer.js +3 -0
- package/src/sap/m/IconTabBar.js +1 -1
- package/src/sap/m/IconTabBarSelectList.js +1 -1
- package/src/sap/m/IconTabFilter.js +2 -2
- package/src/sap/m/IconTabFilterExpandButtonBadge.js +1 -1
- package/src/sap/m/IconTabHeader.js +1 -1
- package/src/sap/m/IconTabSeparator.js +1 -1
- package/src/sap/m/IllustratedMessage.js +19 -3
- package/src/sap/m/IllustratedMessageSize.js +3 -1
- package/src/sap/m/IllustratedMessageType.js +3 -1
- package/src/sap/m/Illustration.js +1 -1
- package/src/sap/m/Image.js +1 -1
- package/src/sap/m/ImageContent.js +1 -1
- package/src/sap/m/Input.js +53 -34
- package/src/sap/m/InputBase.js +5 -9
- package/src/sap/m/InputListItem.js +1 -1
- package/src/sap/m/InputRenderer.js +6 -9
- package/src/sap/m/Label.js +1 -1
- package/src/sap/m/LightBox.js +1 -1
- package/src/sap/m/LightBoxItem.js +1 -1
- package/src/sap/m/Link.js +1 -1
- package/src/sap/m/LinkTileContent.js +1 -1
- package/src/sap/m/List.js +1 -1
- package/src/sap/m/ListBase.js +6 -6
- package/src/sap/m/ListItemBase.js +3 -6
- package/src/sap/m/MaskEnabler.js +1 -1
- package/src/sap/m/MaskInput.js +1 -1
- package/src/sap/m/MaskInputRule.js +1 -1
- package/src/sap/m/Menu.js +1 -1
- package/src/sap/m/MenuButton.js +1 -1
- package/src/sap/m/MenuItem.js +1 -1
- package/src/sap/m/MenuListItem.js +1 -1
- package/src/sap/m/MessageBox.js +25 -7
- package/src/sap/m/MessageItem.js +1 -1
- package/src/sap/m/MessageListItem.js +3 -6
- package/src/sap/m/MessagePage.js +1 -1
- package/src/sap/m/MessagePopover.js +1 -1
- package/src/sap/m/MessagePopoverItem.js +1 -1
- package/src/sap/m/MessageStrip.js +4 -4
- package/src/sap/m/MessageToast.js +1 -1
- package/src/sap/m/MessageView.js +3 -4
- package/src/sap/m/MultiComboBox.js +1 -6
- package/src/sap/m/MultiEditField.js +1 -1
- package/src/sap/m/MultiInput.js +36 -3
- package/src/sap/m/NavContainer.js +1 -1
- package/src/sap/m/NewsContent.js +1 -1
- package/src/sap/m/NotificationList.js +1 -1
- package/src/sap/m/NotificationListBase.js +1 -1
- package/src/sap/m/NotificationListGroup.js +1 -1
- package/src/sap/m/NotificationListItem.js +1 -1
- package/src/sap/m/NumericContent.js +1 -1
- package/src/sap/m/NumericInput.js +1 -1
- package/src/sap/m/ObjectAttribute.js +1 -1
- package/src/sap/m/ObjectHeader.js +1 -1
- package/src/sap/m/ObjectIdentifier.js +1 -1
- package/src/sap/m/ObjectListItem.js +1 -1
- package/src/sap/m/ObjectMarker.js +1 -1
- package/src/sap/m/ObjectNumber.js +1 -1
- package/src/sap/m/ObjectStatus.js +1 -1
- package/src/sap/m/OverflowToolbar.js +1 -1
- package/src/sap/m/OverflowToolbarAssociativePopover.js +1 -1
- package/src/sap/m/OverflowToolbarAssociativePopoverControls.js +1 -1
- package/src/sap/m/OverflowToolbarButton.js +1 -1
- package/src/sap/m/OverflowToolbarLayoutData.js +1 -1
- package/src/sap/m/OverflowToolbarMenuButton.js +1 -1
- package/src/sap/m/OverflowToolbarToggleButton.js +1 -1
- package/src/sap/m/P13nAnyFilterItem.js +2 -1
- package/src/sap/m/P13nColumnsItem.js +2 -2
- package/src/sap/m/P13nColumnsPanel.js +2 -2
- package/src/sap/m/P13nConditionPanel.js +2 -1
- package/src/sap/m/P13nDialog.js +4 -7
- package/src/sap/m/P13nDimMeasureItem.js +2 -2
- package/src/sap/m/P13nDimMeasurePanel.js +2 -2
- package/src/sap/m/P13nFilterItem.js +2 -1
- package/src/sap/m/P13nFilterPanel.js +3 -1
- package/src/sap/m/P13nGroupItem.js +2 -2
- package/src/sap/m/P13nGroupPanel.js +2 -2
- package/src/sap/m/P13nItem.js +2 -1
- package/src/sap/m/P13nOperationsHelper.js +2 -0
- package/src/sap/m/P13nPanel.js +2 -1
- package/src/sap/m/P13nSelectionItem.js +2 -1
- package/src/sap/m/P13nSelectionPanel.js +2 -1
- package/src/sap/m/P13nSortItem.js +2 -2
- package/src/sap/m/P13nSortPanel.js +2 -2
- package/src/sap/m/PDFViewer.js +2 -2
- package/src/sap/m/Page.js +12 -6
- package/src/sap/m/PageAccessibleLandmarkInfo.js +1 -1
- package/src/sap/m/PagingButton.js +1 -1
- package/src/sap/m/Panel.js +1 -1
- package/src/sap/m/PlanningCalendar.js +1 -1
- package/src/sap/m/PlanningCalendarHeader.js +1 -1
- package/src/sap/m/PlanningCalendarLegend.js +1 -1
- package/src/sap/m/PlanningCalendarRow.js +1 -1
- package/src/sap/m/PlanningCalendarView.js +1 -1
- package/src/sap/m/Popover.js +1 -1
- package/src/sap/m/ProgressIndicator.js +1 -1
- package/src/sap/m/PullToRefresh.js +1 -1
- package/src/sap/m/QuickView.js +1 -1
- package/src/sap/m/QuickViewBase.js +1 -1
- package/src/sap/m/QuickViewCard.js +1 -1
- package/src/sap/m/QuickViewGroup.js +1 -1
- package/src/sap/m/QuickViewGroupElement.js +1 -1
- package/src/sap/m/QuickViewPage.js +1 -1
- package/src/sap/m/RadioButton.js +1 -1
- package/src/sap/m/RadioButtonGroup.js +1 -1
- package/src/sap/m/RangeSlider.js +1 -1
- package/src/sap/m/RatingIndicator.js +1 -1
- package/src/sap/m/ResponsivePopover.js +1 -1
- package/src/sap/m/ResponsiveScale.js +1 -1
- package/src/sap/m/ScrollBar.js +1 -1
- package/src/sap/m/ScrollContainer.js +1 -1
- package/src/sap/m/SearchField.js +1 -1
- package/src/sap/m/SegmentedButton.js +1 -1
- package/src/sap/m/SegmentedButtonItem.js +1 -1
- package/src/sap/m/Select.js +1 -1
- package/src/sap/m/SelectDialog.js +1 -1
- package/src/sap/m/SelectDialogBase.js +1 -1
- package/src/sap/m/SelectList.js +1 -1
- package/src/sap/m/SelectionDetails.js +1 -1
- package/src/sap/m/SelectionDetailsFacade.js +2 -2
- package/src/sap/m/SelectionDetailsItem.js +1 -1
- package/src/sap/m/SelectionDetailsItemLine.js +1 -1
- package/src/sap/m/Shell.js +1 -1
- package/src/sap/m/SimpleFixFlex.js +1 -1
- package/src/sap/m/SinglePlanningCalendar.js +1 -1
- package/src/sap/m/SinglePlanningCalendarDayView.js +1 -1
- package/src/sap/m/SinglePlanningCalendarGrid.js +1 -3
- package/src/sap/m/SinglePlanningCalendarMonthGrid.js +1 -1
- package/src/sap/m/SinglePlanningCalendarMonthView.js +1 -1
- package/src/sap/m/SinglePlanningCalendarView.js +1 -1
- package/src/sap/m/SinglePlanningCalendarWeekView.js +1 -1
- package/src/sap/m/SinglePlanningCalendarWorkWeekView.js +1 -1
- package/src/sap/m/SlideTile.js +1 -1
- package/src/sap/m/Slider.js +1 -1
- package/src/sap/m/SliderTooltip.js +1 -1
- package/src/sap/m/SliderTooltipBase.js +1 -1
- package/src/sap/m/SliderTooltipContainer.js +1 -1
- package/src/sap/m/SplitApp.js +1 -1
- package/src/sap/m/SplitButton.js +1 -1
- package/src/sap/m/SplitContainer.js +1 -1
- package/src/sap/m/StandardDynamicDateOption.js +1 -1
- package/src/sap/m/StandardListItem.js +1 -1
- package/src/sap/m/StandardTile.js +1 -1
- package/src/sap/m/StandardTreeItem.js +1 -1
- package/src/sap/m/StepInput.js +1 -1
- package/src/sap/m/SuggestionItem.js +1 -1
- package/src/sap/m/SuggestionsPopover.js +1 -1
- package/src/sap/m/Switch.js +1 -1
- package/src/sap/m/TabContainer.js +16 -1
- package/src/sap/m/TabContainerItem.js +1 -1
- package/src/sap/m/TabStrip.js +1 -1
- package/src/sap/m/TabStripItem.js +1 -1
- package/src/sap/m/Table.js +3 -3
- package/src/sap/m/TablePersoController.js +1 -1
- package/src/sap/m/TablePersoDialog.js +1 -1
- package/src/sap/m/TablePersoProvider.js +1 -1
- package/src/sap/m/TableSelectDialog.js +1 -1
- package/src/sap/m/Text.js +1 -1
- package/src/sap/m/TextArea.js +1 -1
- package/src/sap/m/Tile.js +1 -1
- package/src/sap/m/TileContainer.js +1 -1
- package/src/sap/m/TileContent.js +1 -1
- package/src/sap/m/TileInfo.js +65 -0
- package/src/sap/m/TimePicker.js +1 -1
- package/src/sap/m/TimePickerClock.js +5 -3
- package/src/sap/m/TimePickerClocks.js +1 -1
- package/src/sap/m/TimePickerInputs.js +1 -1
- package/src/sap/m/TimePickerInternals.js +1 -1
- package/src/sap/m/TimePickerSlider.js +1 -1
- package/src/sap/m/TimePickerSliders.js +1 -1
- package/src/sap/m/Title.js +1 -1
- package/src/sap/m/TitlePropagationSupport.js +1 -1
- package/src/sap/m/ToggleButton.js +1 -1
- package/src/sap/m/Token.js +1 -1
- package/src/sap/m/Tokenizer.js +1 -3
- package/src/sap/m/Toolbar.js +1 -1
- package/src/sap/m/ToolbarLayoutData.js +1 -1
- package/src/sap/m/ToolbarSeparator.js +1 -1
- package/src/sap/m/ToolbarSpacer.js +1 -1
- package/src/sap/m/Tree.js +1 -1
- package/src/sap/m/TreeItemBase.js +1 -1
- package/src/sap/m/UploadCollection.js +1 -1
- package/src/sap/m/UploadCollectionItem.js +1 -1
- package/src/sap/m/UploadCollectionParameter.js +1 -1
- package/src/sap/m/UploadCollectionToolbarPlaceholder.js +1 -1
- package/src/sap/m/VBox.js +1 -1
- package/src/sap/m/ValueStateHeader.js +1 -1
- package/src/sap/m/VariantManagement.js +1 -2
- package/src/sap/m/ViewSettingsCustomItem.js +1 -1
- package/src/sap/m/ViewSettingsCustomTab.js +1 -1
- package/src/sap/m/ViewSettingsDialog.js +1 -1
- package/src/sap/m/ViewSettingsFilterItem.js +1 -1
- package/src/sap/m/ViewSettingsItem.js +1 -1
- package/src/sap/m/VisibleItem.js +1 -1
- package/src/sap/m/WheelSlider.js +1 -1
- package/src/sap/m/WheelSliderContainer.js +1 -1
- package/src/sap/m/Wizard.js +1 -1
- package/src/sap/m/WizardProgressNavigator.js +1 -1
- package/src/sap/m/WizardStep.js +1 -1
- package/src/sap/m/changeHandler/AddTableColumn.js +1 -2
- package/src/sap/m/changeHandler/ChangeLinkTarget.js +1 -1
- package/src/sap/m/changeHandler/CombineButtons.js +1 -1
- package/src/sap/m/changeHandler/MoveTableColumns.js +1 -1
- package/src/sap/m/changeHandler/SelectIconTabBarFilter.js +1 -1
- package/src/sap/m/changeHandler/SplitMenuButton.js +1 -1
- package/src/sap/m/designtime/Table.designtime.js +1 -2
- package/src/sap/m/designtime/messagebundle_sh.properties +5 -5
- package/src/sap/m/flexibility/Table.flexibility.js +14 -2
- package/src/sap/m/library.js +252 -3
- package/src/sap/m/messagebundle.properties +3 -0
- package/src/sap/m/messagebundle_ar.properties +2 -0
- package/src/sap/m/messagebundle_bg.properties +2 -0
- package/src/sap/m/messagebundle_ca.properties +2 -0
- package/src/sap/m/messagebundle_cnr.properties +2 -0
- package/src/sap/m/messagebundle_cs.properties +2 -0
- package/src/sap/m/messagebundle_cy.properties +2 -0
- package/src/sap/m/messagebundle_da.properties +2 -0
- package/src/sap/m/messagebundle_de.properties +2 -0
- package/src/sap/m/messagebundle_el.properties +2 -0
- package/src/sap/m/messagebundle_en.properties +2 -0
- package/src/sap/m/messagebundle_en_GB.properties +2 -0
- package/src/sap/m/messagebundle_en_US_saprigi.properties +2 -0
- package/src/sap/m/messagebundle_es.properties +2 -0
- package/src/sap/m/messagebundle_es_MX.properties +2 -0
- package/src/sap/m/messagebundle_et.properties +2 -0
- package/src/sap/m/messagebundle_fi.properties +2 -0
- package/src/sap/m/messagebundle_fr.properties +3 -1
- package/src/sap/m/messagebundle_fr_CA.properties +2 -0
- package/src/sap/m/messagebundle_hi.properties +2 -0
- package/src/sap/m/messagebundle_hr.properties +2 -0
- package/src/sap/m/messagebundle_hu.properties +2 -0
- package/src/sap/m/messagebundle_id.properties +2 -0
- package/src/sap/m/messagebundle_it.properties +2 -0
- package/src/sap/m/messagebundle_iw.properties +2 -0
- package/src/sap/m/messagebundle_ja.properties +2 -0
- package/src/sap/m/messagebundle_kk.properties +2 -0
- package/src/sap/m/messagebundle_ko.properties +2 -0
- package/src/sap/m/messagebundle_lt.properties +2 -0
- package/src/sap/m/messagebundle_lv.properties +2 -0
- package/src/sap/m/messagebundle_mk.properties +2 -0
- package/src/sap/m/messagebundle_ms.properties +2 -0
- package/src/sap/m/messagebundle_nl.properties +2 -0
- package/src/sap/m/messagebundle_no.properties +2 -0
- package/src/sap/m/messagebundle_pl.properties +2 -0
- package/src/sap/m/messagebundle_pt.properties +2 -0
- package/src/sap/m/messagebundle_pt_PT.properties +2 -0
- package/src/sap/m/messagebundle_ro.properties +2 -0
- package/src/sap/m/messagebundle_ru.properties +2 -0
- package/src/sap/m/messagebundle_sh.properties +259 -257
- package/src/sap/m/messagebundle_sk.properties +2 -0
- package/src/sap/m/messagebundle_sl.properties +2 -0
- package/src/sap/m/messagebundle_sr.properties +2 -0
- package/src/sap/m/messagebundle_sv.properties +2 -0
- package/src/sap/m/messagebundle_th.properties +2 -0
- package/src/sap/m/messagebundle_tr.properties +2 -0
- package/src/sap/m/messagebundle_uk.properties +2 -0
- package/src/sap/m/messagebundle_vi.properties +2 -0
- package/src/sap/m/messagebundle_zh_CN.properties +3 -1
- package/src/sap/m/messagebundle_zh_TW.properties +2 -0
- package/src/sap/m/p13n/AbstractContainer.js +2 -2
- package/src/sap/m/p13n/AbstractContainerItem.js +2 -2
- package/src/sap/m/p13n/BasePanel.js +1 -1
- package/src/sap/m/p13n/Container.js +1 -1
- package/src/sap/m/p13n/Engine.js +3 -6
- package/src/sap/m/p13n/FilterController.js +1 -1
- package/src/sap/m/p13n/FilterPanel.js +1 -1
- package/src/sap/m/p13n/GroupController.js +1 -1
- package/src/sap/m/p13n/GroupPanel.js +2 -1
- package/src/sap/m/p13n/Popup.js +10 -3
- package/src/sap/m/p13n/QueryPanel.js +1 -1
- package/src/sap/m/p13n/SelectionController.js +13 -8
- package/src/sap/m/p13n/SelectionPanel.js +1 -1
- package/src/sap/m/p13n/SortController.js +1 -1
- package/src/sap/m/p13n/SortPanel.js +1 -1
- package/src/sap/m/p13n/handler/xConfigHandler.js +6 -10
- package/src/sap/m/p13n/modules/DefaultProviderRegistry.js +1 -1
- package/src/sap/m/p13n/modules/StateHandlerRegistry.js +1 -1
- package/src/sap/m/p13n/modules/UIManager.js +7 -1
- package/src/sap/m/p13n/modules/xConfigAPI.js +67 -4
- package/src/sap/m/plugins/CellSelector.js +238 -133
- package/src/sap/m/plugins/ColumnResizer.js +1 -1
- package/src/sap/m/plugins/ContextMenuSetting.js +1 -1
- package/src/sap/m/plugins/CopyProvider.js +6 -4
- package/src/sap/m/plugins/DataStateIndicator.js +1 -1
- package/src/sap/m/plugins/PasteProvider.js +1 -1
- package/src/sap/m/plugins/PluginBase.js +1 -1
- package/src/sap/m/plugins/UploadSetwithTable.js +2067 -0
- package/src/sap/m/rules/Table.support.js +2 -3
- package/src/sap/m/semantic/AddAction.js +1 -1
- package/src/sap/m/semantic/CancelAction.js +1 -1
- package/src/sap/m/semantic/DeleteAction.js +1 -1
- package/src/sap/m/semantic/DetailPage.js +1 -1
- package/src/sap/m/semantic/DiscussInJamAction.js +1 -1
- package/src/sap/m/semantic/EditAction.js +1 -1
- package/src/sap/m/semantic/FavoriteAction.js +1 -1
- package/src/sap/m/semantic/FilterAction.js +1 -1
- package/src/sap/m/semantic/FilterSelect.js +1 -1
- package/src/sap/m/semantic/FlagAction.js +1 -1
- package/src/sap/m/semantic/ForwardAction.js +1 -1
- package/src/sap/m/semantic/FullscreenPage.js +1 -1
- package/src/sap/m/semantic/GroupAction.js +1 -1
- package/src/sap/m/semantic/GroupSelect.js +1 -1
- package/src/sap/m/semantic/MainAction.js +1 -1
- package/src/sap/m/semantic/MasterPage.js +1 -1
- package/src/sap/m/semantic/MessagesIndicator.js +1 -1
- package/src/sap/m/semantic/MultiSelectAction.js +1 -1
- package/src/sap/m/semantic/NegativeAction.js +1 -1
- package/src/sap/m/semantic/OpenInAction.js +1 -1
- package/src/sap/m/semantic/PositiveAction.js +1 -1
- package/src/sap/m/semantic/PrintAction.js +1 -1
- package/src/sap/m/semantic/SaveAction.js +1 -1
- package/src/sap/m/semantic/Segment.js +1 -1
- package/src/sap/m/semantic/SegmentedContainer.js +1 -1
- package/src/sap/m/semantic/SemanticButton.js +1 -1
- package/src/sap/m/semantic/SemanticConfiguration.js +1 -1
- package/src/sap/m/semantic/SemanticControl.js +1 -1
- package/src/sap/m/semantic/SemanticOverflowToolbarButton.js +1 -1
- package/src/sap/m/semantic/SemanticOverflowToolbarToggleButton.js +1 -1
- package/src/sap/m/semantic/SemanticPage.js +1 -1
- package/src/sap/m/semantic/SemanticSelect.js +1 -1
- package/src/sap/m/semantic/SemanticToggleButton.js +1 -1
- package/src/sap/m/semantic/SendEmailAction.js +1 -1
- package/src/sap/m/semantic/SendMessageAction.js +1 -1
- package/src/sap/m/semantic/ShareInJamAction.js +1 -1
- package/src/sap/m/semantic/ShareMenu.js +1 -1
- package/src/sap/m/semantic/ShareMenuPage.js +1 -1
- package/src/sap/m/semantic/SortAction.js +1 -1
- package/src/sap/m/semantic/SortSelect.js +1 -1
- package/src/sap/m/table/ColumnWidthController.js +1 -1
- package/src/sap/m/table/Util.js +1 -1
- package/src/sap/m/table/columnmenu/ActionItem.js +1 -1
- package/src/sap/m/table/columnmenu/Entry.js +1 -1
- package/src/sap/m/table/columnmenu/Item.js +1 -1
- package/src/sap/m/table/columnmenu/ItemBase.js +1 -1
- package/src/sap/m/table/columnmenu/Menu.js +1 -1
- package/src/sap/m/table/columnmenu/QuickAction.js +1 -1
- package/src/sap/m/table/columnmenu/QuickActionBase.js +1 -1
- package/src/sap/m/table/columnmenu/QuickActionItem.js +1 -1
- package/src/sap/m/table/columnmenu/QuickGroup.js +1 -1
- package/src/sap/m/table/columnmenu/QuickGroupItem.js +1 -1
- package/src/sap/m/table/columnmenu/QuickSort.js +1 -1
- package/src/sap/m/table/columnmenu/QuickSortItem.js +1 -1
- package/src/sap/m/table/columnmenu/QuickTotal.js +1 -1
- package/src/sap/m/table/columnmenu/QuickTotalItem.js +1 -1
- package/src/sap/m/themes/base/ActionTile.less +171 -152
- package/src/sap/m/themes/base/ActionTileContent.less +62 -0
- package/src/sap/m/themes/base/CellSelector.less +77 -5
- package/src/sap/m/themes/base/Dialog.less +0 -4
- package/src/sap/m/themes/base/GenericTile.less +397 -12
- package/src/sap/m/themes/base/HeaderContainer.less +8 -0
- package/src/sap/m/themes/base/IconTabBar.less +18 -0
- package/src/sap/m/themes/base/ObjectNumber.less +7 -1
- package/src/sap/m/themes/base/ObjectStatus.less +5 -0
- package/src/sap/m/themes/base/Title.less +1 -1
- package/src/sap/m/themes/base/Toolbar.less +4 -0
- package/src/sap/m/themes/base/UploadSetwithTable.less +20 -0
- package/src/sap/m/themes/base/VariantManagement.less +3 -0
- package/src/sap/m/themes/base/library.source.less +1 -0
- package/src/sap/m/upload/ActionsPlaceholder.js +12 -2
- package/src/sap/m/upload/Column.js +1 -1
- package/src/sap/m/upload/FilePreviewDialog.js +6 -6
- package/src/sap/m/upload/UploadItem.js +322 -0
- package/src/sap/m/upload/UploadItemConfiguration.js +191 -0
- package/src/sap/m/upload/UploadSet.js +1 -1
- package/src/sap/m/upload/UploadSetItem.js +4 -5
- package/src/sap/m/upload/UploadSetToolbarPlaceholder.js +1 -1
- package/src/sap/m/upload/UploadSetwithTable.js +4 -3
- package/src/sap/m/upload/UploadSetwithTableItem.js +2 -3
- package/src/sap/m/upload/UploaderTableItem.js +19 -12
- package/src/sap/m/upload/p13n/PersManager.js +1 -1
- package/src/sap/m/upload/p13n/mediator/BaseMediator.js +4 -4
- package/src/sap/m/upload/p13n/mediator/ColumnsMediator.js +1 -1
- package/src/sap/m/upload/p13n/mediator/FilterMediator.js +1 -1
- package/src/sap/m/upload/p13n/mediator/GroupMediator.js +1 -1
- package/src/sap/m/upload/p13n/mediator/SortMediator.js +1 -1
- package/src/sap/m/upload/p13n/modules/PersPopupManager.js +3 -3
|
@@ -14,10 +14,8 @@ sap.ui.define([
|
|
|
14
14
|
"use strict";
|
|
15
15
|
|
|
16
16
|
const ListMode = library.ListMode;
|
|
17
|
-
const
|
|
18
|
-
const DELAY_SHORT = 250; //TBD Are 2 different delays necessary?
|
|
17
|
+
const DELAY_SHORT = 250; //TBD: Are 2 different delays necessary?
|
|
19
18
|
const DELAY_LONG = DELAY_SHORT * 2;
|
|
20
|
-
|
|
21
19
|
const DIRECTION = {
|
|
22
20
|
ROW: "row",
|
|
23
21
|
COL: "col"
|
|
@@ -29,7 +27,7 @@ sap.ui.define([
|
|
|
29
27
|
*/
|
|
30
28
|
Cell: "Cell",
|
|
31
29
|
/**
|
|
32
|
-
* Cells that
|
|
30
|
+
* Cells that require special handling or look different.
|
|
33
31
|
*/
|
|
34
32
|
Other: "Other",
|
|
35
33
|
/**
|
|
@@ -48,14 +46,15 @@ sap.ui.define([
|
|
|
48
46
|
* The <code>CellSelector</code> plugin enables cell selection inside the table when it is added as a dependent to the control.
|
|
49
47
|
* It allows the user to individually select a cell block.
|
|
50
48
|
*
|
|
51
|
-
*
|
|
49
|
+
* Currently, the <code>CellSelector</code> plugin does not offer touch support.
|
|
52
50
|
*
|
|
53
|
-
* The <code>CellSelector</code> plugin
|
|
51
|
+
* The <code>CellSelector</code> plugin can be used with the {@link sap.ui.table.Table} and {@link sap.m.Table} unless the following applies:
|
|
54
52
|
* <ul>
|
|
55
53
|
* <li>Drag for rows is active</li>
|
|
56
|
-
*
|
|
57
|
-
* <li>If
|
|
58
|
-
*
|
|
54
|
+
* <li>If used in combination with {@link sap.ui.table.Table#cellClick} or {@link sap.m.Table#itemPress}</li>
|
|
55
|
+
* <li>If the <code>sap.ui.table.SelectionBehavior.RowOnly</code> or <code>sap.ui.table.SelectionBehavior.Row</code> selection behavior is used
|
|
56
|
+
* in the <code>sap.ui.table.Table</code></li>
|
|
57
|
+
* <li>If the <code>sap.m.ListType.SingleSelectMaster</code> mode is used in the <code>sap.m.Table</code></li>
|
|
59
58
|
* </ul>
|
|
60
59
|
*
|
|
61
60
|
* When the <code>CellSelector</code> is used in combination with the {@link sap.ui.mdc.Table}, modifying the following settings on the {@link sap.ui.mdc.Table} may lead to problems:
|
|
@@ -65,11 +64,10 @@ sap.ui.define([
|
|
|
65
64
|
* </ul>
|
|
66
65
|
*
|
|
67
66
|
* @extends sap.ui.core.Element
|
|
68
|
-
* @version 1.
|
|
67
|
+
* @version 1.124.0
|
|
69
68
|
* @author SAP SE
|
|
70
69
|
*
|
|
71
70
|
* @public
|
|
72
|
-
* @experimental Since 1.119. This class is experimental. The API might be changed in the future.
|
|
73
71
|
* @since 1.119
|
|
74
72
|
* @alias sap.m.plugins.CellSelector
|
|
75
73
|
* @borrows sap.m.plugins.PluginBase.findOn as findOn
|
|
@@ -79,7 +77,7 @@ sap.ui.define([
|
|
|
79
77
|
library: "sap.m",
|
|
80
78
|
properties: {
|
|
81
79
|
/**
|
|
82
|
-
*
|
|
80
|
+
* Defines the number of row contexts for the {@link sap.ui.table.Table} control that need to be retrieved from the binding
|
|
83
81
|
* when the range selection (e.g. enhancing the cell selection block to cover all rows of a column) is triggered by the user.
|
|
84
82
|
* This helps to make the contexts already available for the user actions after the cell selection (e.g. copy to clipboard).
|
|
85
83
|
* This property accepts positive integer values.
|
|
@@ -120,12 +118,12 @@ sap.ui.define([
|
|
|
120
118
|
* Consists of a row index and a column index describing the position of the cell in the table.
|
|
121
119
|
* @private
|
|
122
120
|
* @typedef {object} sap.m.plugins.CellSelector.CellPosition
|
|
123
|
-
* @property {number} rowIndex
|
|
124
|
-
* @property {number} colIndex
|
|
121
|
+
* @property {number} rowIndex Row index of the cell
|
|
122
|
+
* @property {number} colIndex Column index of the cell
|
|
125
123
|
*/
|
|
126
124
|
|
|
127
125
|
/**
|
|
128
|
-
*
|
|
126
|
+
* Delegate containing events that are fired after control events.
|
|
129
127
|
*/
|
|
130
128
|
const EventDelegate = {
|
|
131
129
|
onkeydown: function(oEvent) {
|
|
@@ -147,13 +145,13 @@ sap.ui.define([
|
|
|
147
145
|
};
|
|
148
146
|
|
|
149
147
|
/**
|
|
150
|
-
* Delegate containing events
|
|
148
|
+
* Delegate containing events that are fired before control events.
|
|
151
149
|
*/
|
|
152
150
|
const PriorityDelegate = {
|
|
153
151
|
onBeforeRendering: function() {
|
|
154
152
|
this._iBtt = this.getConfig("isBottomToTop", this.getControl()) ? -1 : 1;
|
|
155
153
|
if (this._oResizer) {
|
|
156
|
-
//
|
|
154
|
+
// Remove resizer, as due to rerendering table element may be gone
|
|
157
155
|
this._oResizer.remove();
|
|
158
156
|
this._oResizer = null;
|
|
159
157
|
}
|
|
@@ -175,7 +173,7 @@ sap.ui.define([
|
|
|
175
173
|
},
|
|
176
174
|
onsapspace: function(oEvent) {
|
|
177
175
|
if (isSelectableCell(oEvent.target, this.getConfig("selectableCells"))) {
|
|
178
|
-
oEvent.preventDefault(); //
|
|
176
|
+
oEvent.preventDefault(); // Prevent default, otherwise m.Table will scroll
|
|
179
177
|
}
|
|
180
178
|
},
|
|
181
179
|
onsapleftmodifiers: function(oEvent) {
|
|
@@ -209,7 +207,7 @@ sap.ui.define([
|
|
|
209
207
|
this._startSelection(oEvent, false);
|
|
210
208
|
oEvent.setMarked();
|
|
211
209
|
} else if (isKeyCombination(oEvent, KeyCodes.SPACE, true, false)) {
|
|
212
|
-
|
|
210
|
+
const oInfo = this.getConfig("getCellInfo", this.getControl(), oEvent.target, this._oPreviousCell);
|
|
213
211
|
if (!this._inSelection(oEvent.target)) {
|
|
214
212
|
mBounds.from = mBounds.to = {};
|
|
215
213
|
mBounds.from.rowIndex = mBounds.to.rowIndex = oInfo.rowIndex;
|
|
@@ -222,7 +220,7 @@ sap.ui.define([
|
|
|
222
220
|
} else if (isKeyCombination(oEvent, KeyCodes.SPACE, false, true) && this._getSelectableCell(oEvent.target)) {
|
|
223
221
|
if (!this._inSelection(oEvent.target)) {
|
|
224
222
|
// If focus is on cell outside of selection, select focused column
|
|
225
|
-
|
|
223
|
+
const oInfo = this.getConfig("getCellInfo", this.getControl(), oEvent.target, this._oPreviousCell);
|
|
226
224
|
mBounds.from = Object.assign({}, oInfo);
|
|
227
225
|
mBounds.to = Object.assign({}, oInfo);
|
|
228
226
|
}
|
|
@@ -240,16 +238,19 @@ sap.ui.define([
|
|
|
240
238
|
return;
|
|
241
239
|
}
|
|
242
240
|
|
|
243
|
-
if (oEvent.ctrlKey || oEvent.metaKey) {
|
|
244
|
-
this._startSelection(oEvent);
|
|
245
|
-
}
|
|
246
|
-
|
|
247
241
|
var oSelectableCell = this._getSelectableCell(oEvent.target);
|
|
248
242
|
if (oSelectableCell) {
|
|
249
243
|
this._bMouseDown = true;
|
|
250
244
|
this._mClickedCell = this.getConfig("getCellInfo", this.getControl(), oSelectableCell, this._oPreviousCell);
|
|
251
245
|
this._oPreviousCell = this._mClickedCell;
|
|
252
246
|
}
|
|
247
|
+
|
|
248
|
+
if (oEvent.ctrlKey || oEvent.metaKey) {
|
|
249
|
+
this._startSelection(oEvent);
|
|
250
|
+
if (this._mClickedCell) {
|
|
251
|
+
this.getConfig("focusCell", this.getControl(), this._mClickedCell);
|
|
252
|
+
}
|
|
253
|
+
}
|
|
253
254
|
},
|
|
254
255
|
onmouseup: function(oEvent) {
|
|
255
256
|
clearTimeout(this._iTimer);
|
|
@@ -260,7 +261,15 @@ sap.ui.define([
|
|
|
260
261
|
this._oPreviousCell = undefined;
|
|
261
262
|
this._mTempCell = undefined;
|
|
262
263
|
this._oHoveredCell = undefined;
|
|
264
|
+
this._endSelection(oEvent);
|
|
263
265
|
this._clearScroller();
|
|
266
|
+
setTimeout(() => { this._startTarget = null; }, 0);
|
|
267
|
+
},
|
|
268
|
+
onclick: function(oEvent) {
|
|
269
|
+
var oTarget = this._getSelectableCell(oEvent.target);
|
|
270
|
+
if (oTarget && this._startTarget === oTarget) {
|
|
271
|
+
oEvent.stopPropagation();
|
|
272
|
+
}
|
|
264
273
|
}
|
|
265
274
|
};
|
|
266
275
|
|
|
@@ -278,6 +287,9 @@ sap.ui.define([
|
|
|
278
287
|
this.removeSelection();
|
|
279
288
|
};
|
|
280
289
|
|
|
290
|
+
/**
|
|
291
|
+
* @inheritDoc
|
|
292
|
+
*/
|
|
281
293
|
CellSelector.prototype.onActivate = function (oControl) {
|
|
282
294
|
oControl.addDelegate(PriorityDelegate, true, this);
|
|
283
295
|
oControl.addDelegate(EventDelegate, false, this);
|
|
@@ -300,13 +312,17 @@ sap.ui.define([
|
|
|
300
312
|
this._fnOnMouseOut = this._onmouseout.bind(this);
|
|
301
313
|
this._fnOnMouseMove = this._onmousemove.bind(this);
|
|
302
314
|
this._fnOnMouseUp = PriorityDelegate.onmouseup.bind(this);
|
|
315
|
+
this._fnOnClick = PriorityDelegate.onclick.bind(this);
|
|
303
316
|
this._fnRemoveSelection = this.removeSelection.bind(this);
|
|
304
317
|
|
|
305
|
-
// Register Events
|
|
318
|
+
// Register Events as adding dependent does not trigger rerendering
|
|
306
319
|
this._registerEvents();
|
|
307
320
|
this._onSelectableChange();
|
|
308
321
|
};
|
|
309
322
|
|
|
323
|
+
/**
|
|
324
|
+
* @inheritDoc
|
|
325
|
+
*/
|
|
310
326
|
CellSelector.prototype.onDeactivate = function (oControl) {
|
|
311
327
|
oControl.removeDelegate(PriorityDelegate, this);
|
|
312
328
|
oControl.removeDelegate(EventDelegate, this);
|
|
@@ -333,10 +349,10 @@ sap.ui.define([
|
|
|
333
349
|
};
|
|
334
350
|
|
|
335
351
|
/**
|
|
336
|
-
* Determines whether cells are selectable
|
|
352
|
+
* Determines whether cells are selectable.
|
|
337
353
|
*
|
|
338
354
|
* @private
|
|
339
|
-
* @returns {boolean} Whether cells are selectable
|
|
355
|
+
* @returns {boolean} Whether cells are selectable
|
|
340
356
|
* @ui5-restricted sap.m.plugins.CopyProvider
|
|
341
357
|
*/
|
|
342
358
|
CellSelector.prototype.isSelectable = function() {
|
|
@@ -344,10 +360,10 @@ sap.ui.define([
|
|
|
344
360
|
};
|
|
345
361
|
|
|
346
362
|
/**
|
|
347
|
-
* Determines whether there is a cell selection
|
|
363
|
+
* Determines whether there is a cell selection.
|
|
348
364
|
*
|
|
349
365
|
* @private
|
|
350
|
-
* @returns {boolean} Whether there is a cell selection
|
|
366
|
+
* @returns {boolean} Whether there is a cell selection
|
|
351
367
|
* @ui5-restricted sap.m.plugins.CopyProvider
|
|
352
368
|
*/
|
|
353
369
|
CellSelector.prototype.hasSelection = function() {
|
|
@@ -368,11 +384,13 @@ sap.ui.define([
|
|
|
368
384
|
if (oControl) {
|
|
369
385
|
this.getConfig("scrollEvent") && oControl.attachEvent(this.getConfig("scrollEvent"), this._fnControlUpdate);
|
|
370
386
|
this.getConfig("attachSelectionChange", oControl, this._fnRemoveSelection);
|
|
387
|
+
this.getConfig("attachBindingUpdate", oControl, this);
|
|
371
388
|
var oScrollArea = oControl.getDomRef(this.getConfig("scrollArea"));
|
|
372
389
|
if (oScrollArea) {
|
|
373
390
|
oScrollArea.addEventListener("mouseleave", this._fnOnMouseOut);
|
|
374
391
|
oScrollArea.addEventListener("mouseenter", this._fnOnMouseEnter);
|
|
375
392
|
oScrollArea.addEventListener("mousemove", this._fnOnMouseMove);
|
|
393
|
+
oScrollArea.addEventListener("click", this._fnOnClick);
|
|
376
394
|
}
|
|
377
395
|
}
|
|
378
396
|
document.addEventListener("mouseup", this._fnOnMouseUp);
|
|
@@ -383,11 +401,13 @@ sap.ui.define([
|
|
|
383
401
|
if (oControl) {
|
|
384
402
|
oControl.detachEvent(this.getConfig("scrollEvent"), this._fnControlUpdate);
|
|
385
403
|
this.getConfig("detachSelectionChange", oControl, this._fnRemoveSelection);
|
|
404
|
+
this.getConfig("detachBindingUpdate", oControl, this._fnOnBindingUpdate);
|
|
386
405
|
var oScrollArea = oControl.getDomRef(this.getConfig("scrollArea"));
|
|
387
406
|
if (oScrollArea) {
|
|
388
407
|
oScrollArea.removeEventListener("mouseleave", this._fnOnMouseOut);
|
|
389
408
|
oScrollArea.removeEventListener("mouseenter", this._fnOnMouseEnter);
|
|
390
409
|
oScrollArea.removeEventListener("mousemove", this._fnOnMouseMove);
|
|
410
|
+
oScrollArea.removeEventListener("click", this._fnOnClick);
|
|
391
411
|
}
|
|
392
412
|
}
|
|
393
413
|
document.removeEventListener("mouseup", this._fnOnMouseUp);
|
|
@@ -397,9 +417,8 @@ sap.ui.define([
|
|
|
397
417
|
* Returns the cell selection range.
|
|
398
418
|
* The value <code>Infinity</code> in <code>rowIndex</code> indicates that the limit is reached.
|
|
399
419
|
*
|
|
400
|
-
* <b>Note</b>: This method is subject to change.
|
|
401
420
|
* @param {boolean} bIgnore Ignore group header rows within selection range
|
|
402
|
-
* @returns {{from: {rowIndex: int, colIndex: int}, to: {rowIndex: int, colIndex: int}}
|
|
421
|
+
* @returns {object} {{from: {rowIndex: int, colIndex: int}, to: {rowIndex: int, colIndex: int}} The selection range
|
|
403
422
|
* @ui5-restricted sap.m.plugins.CopyProvider
|
|
404
423
|
* @private
|
|
405
424
|
*/
|
|
@@ -437,7 +456,6 @@ sap.ui.define([
|
|
|
437
456
|
/**
|
|
438
457
|
* Returns the row binding context of the current selection.
|
|
439
458
|
*
|
|
440
|
-
* Note: This method is subject to change.
|
|
441
459
|
* @returns {sap.ui.model.Context[]} The binding context of selected rows
|
|
442
460
|
* @private
|
|
443
461
|
* @ui5-restricted sap.m.plugins.CopyProvider
|
|
@@ -452,7 +470,7 @@ sap.ui.define([
|
|
|
452
470
|
};
|
|
453
471
|
|
|
454
472
|
/**
|
|
455
|
-
* Returns the selected cells separated into
|
|
473
|
+
* Returns the selected cells separated into selected rows and columns.
|
|
456
474
|
*
|
|
457
475
|
* Example:
|
|
458
476
|
* If the cells from (0, 0) to (2, 4) are selected, this method will return the following object:
|
|
@@ -468,8 +486,8 @@ sap.ui.define([
|
|
|
468
486
|
*
|
|
469
487
|
* @param {boolean} bIgnore Ignores group headers from selection
|
|
470
488
|
* @returns {sap.m.plugins.CellSelector.Selection} An object containing the selected cells separated into rows and columns
|
|
471
|
-
* @
|
|
472
|
-
* @
|
|
489
|
+
* @public
|
|
490
|
+
* @since 1.124
|
|
473
491
|
*/
|
|
474
492
|
CellSelector.prototype.getSelection = function(bIgnore) {
|
|
475
493
|
var mSelectionRange = this.getSelectionRange();
|
|
@@ -525,6 +543,10 @@ sap.ui.define([
|
|
|
525
543
|
|
|
526
544
|
var oInfo = this.getConfig("getCellInfo", this.getControl(), oSelectableCell, this._oPreviousCell);
|
|
527
545
|
|
|
546
|
+
if (oInfo.rowIndex < 0 || oInfo.colIndex < 0) {
|
|
547
|
+
return;
|
|
548
|
+
}
|
|
549
|
+
|
|
528
550
|
if (!this._inSelection(oEvent.target) || !this._oSession.mSource || !this._oSession.mTarget) {
|
|
529
551
|
if (this.getConfig("isRowSelected", this.getControl(), oInfo.rowIndex)) {
|
|
530
552
|
return;
|
|
@@ -564,11 +586,12 @@ sap.ui.define([
|
|
|
564
586
|
};
|
|
565
587
|
|
|
566
588
|
/**
|
|
567
|
-
* Event handler for
|
|
589
|
+
* Event handler for <code>mousemove</code>. Handles <code>mousemove</code> event during cell selection. Takes on tasks like:
|
|
568
590
|
* - updating resizer positions
|
|
569
591
|
* - mouse selection via cell click and move
|
|
570
592
|
* - selection enhancement via border and edge
|
|
571
|
-
* @param {
|
|
593
|
+
* @param {jQuery.Event} oEvent The mouse event
|
|
594
|
+
* @private
|
|
572
595
|
*/
|
|
573
596
|
CellSelector.prototype._onmousemove = function(oEvent) {
|
|
574
597
|
function select() {
|
|
@@ -592,7 +615,8 @@ sap.ui.define([
|
|
|
592
615
|
this._oHoveredCell = oInfo;
|
|
593
616
|
}
|
|
594
617
|
|
|
595
|
-
|
|
618
|
+
|
|
619
|
+
// Only update the resizer if during selection the border is not pressed
|
|
596
620
|
if (this._bSelecting && !this._bMouseDown && this._bRenderResizer) {
|
|
597
621
|
const mBounds = this._getNormalizedBounds(this._oSession.mSource, this._oSession.mTarget);
|
|
598
622
|
this._updateResizers(mBounds, oEvent.clientX, oEvent.clientY);
|
|
@@ -600,20 +624,24 @@ sap.ui.define([
|
|
|
600
624
|
|
|
601
625
|
var oSelectableCell = this._getSelectableCell(oEvent.target);
|
|
602
626
|
if (!oSelectableCell || !this._bMouseDown) {
|
|
603
|
-
// if mouse is not down
|
|
627
|
+
// Selection logic should not execute if mouse is not down or target is not a cell
|
|
604
628
|
return;
|
|
605
629
|
}
|
|
606
630
|
|
|
607
631
|
clearTimeout(this._iTimer);
|
|
608
|
-
oEvent.stopImmediatePropagation(); //
|
|
632
|
+
oEvent.stopImmediatePropagation(); // Stop propagation to surpress other actions such as column resizing
|
|
609
633
|
|
|
610
634
|
var oInfo = this.getConfig("getCellInfo", this.getControl(), oSelectableCell, this._oPreviousCell);
|
|
635
|
+
if (oInfo.rowIndex < 0 || oInfo.colIndex < 0) {
|
|
636
|
+
return;
|
|
637
|
+
}
|
|
638
|
+
|
|
611
639
|
const bClickedHovered = oInfo.rowIndex == this._oPreviousCell?.rowIndex && oInfo.colIndex == this._oPreviousCell?.colIndex;
|
|
612
640
|
if (bClickedHovered || oInfo.type == CellType.Ignore) {
|
|
613
641
|
return;
|
|
614
642
|
}
|
|
615
643
|
|
|
616
|
-
// If previously hovered cell is the same as the currently hovered one, do not execute anything
|
|
644
|
+
// If previously hovered cell is the same as the currently hovered one, do not execute anything (except the hovered cell is of type Other.
|
|
617
645
|
if (oInfo.type == CellType.Other && this._oHoveredCell?.rowIndex == oInfo.rowIndex && this._oHoveredCell?.colIndex == oInfo.colIndex) {
|
|
618
646
|
return;
|
|
619
647
|
}
|
|
@@ -649,7 +677,12 @@ sap.ui.define([
|
|
|
649
677
|
}
|
|
650
678
|
};
|
|
651
679
|
|
|
652
|
-
/**
|
|
680
|
+
/**
|
|
681
|
+
* Event handler for mouse selection (leaving table, etc.)
|
|
682
|
+
*
|
|
683
|
+
* @param {jQuery.Event} oEvent The mouse event
|
|
684
|
+
* @private
|
|
685
|
+
*/
|
|
653
686
|
CellSelector.prototype._onmouseout = function(oEvent) {
|
|
654
687
|
var oScrollAreaRef = this.getControl().getDomRef(this.getConfig("scrollArea"));
|
|
655
688
|
|
|
@@ -725,13 +758,14 @@ sap.ui.define([
|
|
|
725
758
|
this._oSession.border = Object.assign({}, this._oCurrentBorder);
|
|
726
759
|
this._bBorderDown = true;
|
|
727
760
|
this._bMouseDown = true;
|
|
728
|
-
// TODO:
|
|
761
|
+
// TODO: When borderdown, make "border" active
|
|
729
762
|
};
|
|
730
763
|
|
|
731
764
|
/**
|
|
732
|
-
*
|
|
733
|
-
* @param {HTMLELement} oDomRef
|
|
734
|
-
* @returns {HTMLELement|null}
|
|
765
|
+
* For a given DOM reference it returns the closest selectable cell.
|
|
766
|
+
* @param {HTMLELement} oDomRef DOM reference
|
|
767
|
+
* @returns {HTMLELement|null} Selectable cell DOM reference
|
|
768
|
+
* @private
|
|
735
769
|
*/
|
|
736
770
|
CellSelector.prototype._getSelectableCell = function (oDomRef) {
|
|
737
771
|
if (!oDomRef) {
|
|
@@ -766,6 +800,14 @@ sap.ui.define([
|
|
|
766
800
|
return;
|
|
767
801
|
}
|
|
768
802
|
|
|
803
|
+
if (!this._bSelectionInProgress) {
|
|
804
|
+
this.getConfig("onSelectionStart", this.getControl(), oEvent);
|
|
805
|
+
this._bSelectionInProgress = true;
|
|
806
|
+
if (this._oPreviousCell) {
|
|
807
|
+
this._startTarget = this.getConfig("getCellRef", this.getControl(), this._oPreviousCell);
|
|
808
|
+
}
|
|
809
|
+
}
|
|
810
|
+
|
|
769
811
|
if (this._inSelection(oTarget) && !bMove) {
|
|
770
812
|
this.removeSelection();
|
|
771
813
|
} else {
|
|
@@ -782,8 +824,26 @@ sap.ui.define([
|
|
|
782
824
|
oEvent.setMarked && oEvent.setMarked();
|
|
783
825
|
};
|
|
784
826
|
|
|
827
|
+
CellSelector.prototype._endSelection = function(oEvent) {
|
|
828
|
+
if (!this._bSelectionInProgress) {
|
|
829
|
+
return;
|
|
830
|
+
}
|
|
831
|
+
this._bSelectionInProgress = false;
|
|
832
|
+
|
|
833
|
+
var oTarget = this._getSelectableCell(oEvent.target);
|
|
834
|
+
if (!oTarget) {
|
|
835
|
+
return;
|
|
836
|
+
}
|
|
837
|
+
|
|
838
|
+
this.getConfig("onSelectionEnd", this.getControl(), oEvent);
|
|
839
|
+
};
|
|
840
|
+
|
|
785
841
|
/**
|
|
786
842
|
* Selects the next cells in a specific direction (ROW, COL).
|
|
843
|
+
* @param iRowDiff {int}
|
|
844
|
+
* @param iColDiff {int}
|
|
845
|
+
* @param mOldFocus {object}
|
|
846
|
+
* @returns {object} The updated bounding
|
|
787
847
|
* @private
|
|
788
848
|
*/
|
|
789
849
|
CellSelector.prototype._getUpdatedBounds = function(iRowDiff, iColDiff, mOldFocus) {
|
|
@@ -825,8 +885,8 @@ sap.ui.define([
|
|
|
825
885
|
* a) source cell to target cell or
|
|
826
886
|
* b) source cell to current lower right cell.
|
|
827
887
|
* The bigger bounding box of the two will be inspected.
|
|
828
|
-
* @param {sap.m.plugins.CellSelector.CellPosition} mFrom
|
|
829
|
-
* @param {sap.m.plugins.CellSelector.CellPosition} mTo
|
|
888
|
+
* @param {sap.m.plugins.CellSelector.CellPosition} mFrom Source cell coordinates
|
|
889
|
+
* @param {sap.m.plugins.CellSelector.CellPosition} mTo Target cell coordinates
|
|
830
890
|
* @private
|
|
831
891
|
*/
|
|
832
892
|
CellSelector.prototype._selectCells = function (mFrom, mTo) {
|
|
@@ -972,8 +1032,9 @@ sap.ui.define([
|
|
|
972
1032
|
};
|
|
973
1033
|
|
|
974
1034
|
/**
|
|
975
|
-
* Retrieves the resizer element. If none
|
|
976
|
-
* @returns {HTMLELement}
|
|
1035
|
+
* Retrieves the resizer element. If none exists, creates an element.
|
|
1036
|
+
* @returns {HTMLELement} Resizer element
|
|
1037
|
+
* @private
|
|
977
1038
|
*/
|
|
978
1039
|
CellSelector.prototype._getResizer = function() {
|
|
979
1040
|
if (!this._oResizer) {
|
|
@@ -1002,15 +1063,12 @@ sap.ui.define([
|
|
|
1002
1063
|
|
|
1003
1064
|
/**
|
|
1004
1065
|
* Returns an object containing normalized coordinates for the given bounding area.
|
|
1005
|
-
* <code>from</code>
|
|
1006
|
-
*
|
|
1007
|
-
* @param {Object} mFrom
|
|
1008
|
-
* @param {
|
|
1009
|
-
* @param {
|
|
1010
|
-
* @
|
|
1011
|
-
* @param {int} mTo.rowIndex row index
|
|
1012
|
-
* @param {int} mTo.colIndex column index
|
|
1013
|
-
* @returns object containing coordinates for from and to
|
|
1066
|
+
* <code>from</code> contains the coordinates for the upper left corner of the bounding area,
|
|
1067
|
+
* <code>to</code> contains the coordinates of the lower right corner of the bounding area.
|
|
1068
|
+
* @param {Object} mFrom Source cell coordinates
|
|
1069
|
+
* @param {Object} mTo Target cell coordinates
|
|
1070
|
+
* @param {boolean} bKeepBounds
|
|
1071
|
+
* @returns {object} Object containing coordinates for the bounding area
|
|
1014
1072
|
*/
|
|
1015
1073
|
CellSelector.prototype._getNormalizedBounds = function(mFrom, mTo, bKeepBounds) {
|
|
1016
1074
|
const iMaxColumns = this.getConfig("numberOfColumns", this.getControl());
|
|
@@ -1061,22 +1119,24 @@ sap.ui.define([
|
|
|
1061
1119
|
}
|
|
1062
1120
|
|
|
1063
1121
|
/**
|
|
1064
|
-
*
|
|
1065
|
-
*
|
|
1066
|
-
* @param {
|
|
1067
|
-
* @param {
|
|
1068
|
-
* @param {boolean}
|
|
1069
|
-
* @
|
|
1122
|
+
* Checks whether the key press event is a key combination.
|
|
1123
|
+
*
|
|
1124
|
+
* @param {sap.ui.base.Event} oEvent The keyboard event
|
|
1125
|
+
* @param {string} sKeyCode Key code
|
|
1126
|
+
* @param {boolean} bShift Shift key pressed
|
|
1127
|
+
* @param {boolean} bCtrl Control key pressed
|
|
1128
|
+
* @returns {boolean} Whether the key press event is a key combination
|
|
1129
|
+
* @private
|
|
1070
1130
|
*/
|
|
1071
1131
|
function isKeyCombination(oEvent, sKeyCode, bShift, bCtrl) {
|
|
1072
1132
|
return oEvent.keyCode == sKeyCode && oEvent.shiftKey == bShift && (oEvent.ctrlKey == bCtrl || oEvent.metaKey == bCtrl);
|
|
1073
1133
|
}
|
|
1074
1134
|
|
|
1075
1135
|
/**
|
|
1076
|
-
* Checks
|
|
1077
|
-
* @param {sap.ui.core.Control} oControl
|
|
1078
|
-
* @param {string} sAffectedAggregation
|
|
1079
|
-
* @returns {boolean}
|
|
1136
|
+
* Checks whether drag on the rows/items aggregation is activated.
|
|
1137
|
+
* @param {sap.ui.core.Control} oControl Control to be checked
|
|
1138
|
+
* @param {string} sAffectedAggregation Name of the aggregation which is affected by D&D
|
|
1139
|
+
* @returns {boolean} Whether drag on rows is enabled
|
|
1080
1140
|
*/
|
|
1081
1141
|
function hasDragEnabled(oControl, sAffectedAggregation) {
|
|
1082
1142
|
return oControl.getDragDropConfig().some((oConfig) => oConfig.getSourceAggregation?.() == sAffectedAggregation && oConfig.getEnabled());
|
|
@@ -1093,8 +1153,8 @@ sap.ui.define([
|
|
|
1093
1153
|
oTable.attachEvent("EventHandlerChange", oPlugin, this._onEventHandlerChange);
|
|
1094
1154
|
},
|
|
1095
1155
|
onDeactivate: function(oTable, oPlugin) {
|
|
1096
|
-
oTable.detachEvent("_change",
|
|
1097
|
-
oTable.detachEvent("EventHandlerChange",
|
|
1156
|
+
oTable.detachEvent("_change", this._onPropertyChange);
|
|
1157
|
+
oTable.detachEvent("EventHandlerChange", this._onEventHandlerChange);
|
|
1098
1158
|
},
|
|
1099
1159
|
_onPropertyChange: function(oEvent, oPlugin) {
|
|
1100
1160
|
oEvent.getParameter("name") == "selectionBehavior" && oPlugin._onSelectableChange();
|
|
@@ -1103,9 +1163,9 @@ sap.ui.define([
|
|
|
1103
1163
|
oEvent.getParameter("EventId") == "cellClick" && oPlugin._onSelectableChange();
|
|
1104
1164
|
},
|
|
1105
1165
|
/**
|
|
1106
|
-
* Checks
|
|
1107
|
-
* @param {sap.ui.table.Table} oTable
|
|
1108
|
-
* @returns {boolean}
|
|
1166
|
+
* Checks whether the table is compatible with cell selection.
|
|
1167
|
+
* @param {sap.ui.table.Table} oTable Table instance
|
|
1168
|
+
* @returns {boolean} Compatibility with cell selection
|
|
1109
1169
|
*/
|
|
1110
1170
|
isSupported: function(oTable, oPlugin) {
|
|
1111
1171
|
return !oTable.hasListeners("cellClick")
|
|
@@ -1116,9 +1176,9 @@ sap.ui.define([
|
|
|
1116
1176
|
return false;
|
|
1117
1177
|
},
|
|
1118
1178
|
/**
|
|
1119
|
-
*
|
|
1120
|
-
* @param {sap.ui.table.Table} oTable
|
|
1121
|
-
* @returns {sap.ui.table.Column[]}
|
|
1179
|
+
* Returns the visible columns of the table.
|
|
1180
|
+
* @param {sap.ui.table.Table} oTable Table instance
|
|
1181
|
+
* @returns {sap.ui.table.Column[]} Array of visible columns
|
|
1122
1182
|
*/
|
|
1123
1183
|
getVisibleColumns: function (oTable) {
|
|
1124
1184
|
return oTable.getColumns().filter(function (oColumn) {
|
|
@@ -1127,9 +1187,9 @@ sap.ui.define([
|
|
|
1127
1187
|
},
|
|
1128
1188
|
/**
|
|
1129
1189
|
* Retrieve the number of visible columns in the table.
|
|
1130
|
-
* @param {sap.ui.table.Table} oTable
|
|
1131
|
-
* @param {boolean} bIncludeSpecial
|
|
1132
|
-
* @returns {number}
|
|
1190
|
+
* @param {sap.ui.table.Table} oTable Table instance
|
|
1191
|
+
* @param {boolean} bIncludeSpecial Include special columns as separate columns
|
|
1192
|
+
* @returns {number} Number of columns
|
|
1133
1193
|
*/
|
|
1134
1194
|
numberOfColumns: function(oTable, bIncludeSpecial) {
|
|
1135
1195
|
return this.getVisibleColumns(oTable).length;
|
|
@@ -1141,6 +1201,7 @@ sap.ui.define([
|
|
|
1141
1201
|
* Retrieve the cell reference for a given position
|
|
1142
1202
|
* @param {sap.ui.table.Table} oTable table instance
|
|
1143
1203
|
* @param {sap.m.plugins.CellSelector.CellPosition} mPosition position of cell
|
|
1204
|
+
* @param {boolean} bRange
|
|
1144
1205
|
* @returns {HTMLElement|undefined} cell's DOM element or undefined if the row or column index are invalid
|
|
1145
1206
|
*/
|
|
1146
1207
|
getCellRef: function (oTable, mPosition, bRange) {
|
|
@@ -1155,9 +1216,9 @@ sap.ui.define([
|
|
|
1155
1216
|
},
|
|
1156
1217
|
/**
|
|
1157
1218
|
* Retrieve cell information for a given DOM element.
|
|
1158
|
-
* @param {sap.ui.table.Table} oTable
|
|
1159
|
-
* @param {HTMLElement} oTarget DOM
|
|
1160
|
-
* @returns {object}
|
|
1219
|
+
* @param {sap.ui.table.Table} oTable Table instance
|
|
1220
|
+
* @param {HTMLElement} oTarget DOM reference of cell
|
|
1221
|
+
* @returns {object} Cell information containing rowIndex, colIndex and cell type
|
|
1161
1222
|
*/
|
|
1162
1223
|
getCellInfo: function (oTable, oTarget) {
|
|
1163
1224
|
return {
|
|
@@ -1168,9 +1229,9 @@ sap.ui.define([
|
|
|
1168
1229
|
},
|
|
1169
1230
|
/**
|
|
1170
1231
|
* Returns the cell type of the given target cell.
|
|
1171
|
-
* @param {sap.ui.table.Table} oTable
|
|
1172
|
-
* @param {HTMLELement} oTarget
|
|
1173
|
-
* @returns {string}
|
|
1232
|
+
* @param {sap.ui.table.Table} oTable Table instance
|
|
1233
|
+
* @param {HTMLELement} oTarget Cell reference
|
|
1234
|
+
* @returns {string} Cell type
|
|
1174
1235
|
*/
|
|
1175
1236
|
getCellType: function(oTable, oTarget) {
|
|
1176
1237
|
const oRow = Element.closestTo(oTarget, true);
|
|
@@ -1203,11 +1264,12 @@ sap.ui.define([
|
|
|
1203
1264
|
return aContexts;
|
|
1204
1265
|
},
|
|
1205
1266
|
/**
|
|
1206
|
-
*
|
|
1267
|
+
* Selects the rows with indices between iFrom and iTo.
|
|
1207
1268
|
* @param {sap.ui.table.Table} oTable The table instance
|
|
1208
|
-
* @param {int} iFrom
|
|
1209
|
-
* @param {int} iTo
|
|
1210
|
-
* @param {int}
|
|
1269
|
+
* @param {int} iFrom Start row index
|
|
1270
|
+
* @param {int} iTo End row index
|
|
1271
|
+
* @param {int} iFocus Focused row index
|
|
1272
|
+
* @returns {boolean} Returns true if the selection was successful
|
|
1211
1273
|
*/
|
|
1212
1274
|
selectRows: function(oTable, iFrom, iTo, iFocus) {
|
|
1213
1275
|
var oSelectionOwner = this._getSelectionOwner(oTable);
|
|
@@ -1243,9 +1305,9 @@ sap.ui.define([
|
|
|
1243
1305
|
},
|
|
1244
1306
|
/**
|
|
1245
1307
|
* Checks if the given row is selected.
|
|
1246
|
-
* @param {sap.ui.table.Table} oTable
|
|
1247
|
-
* @param {number|sap.ui.table.Row} vRow
|
|
1248
|
-
* @returns {boolean}
|
|
1308
|
+
* @param {sap.ui.table.Table} oTable Table instance
|
|
1309
|
+
* @param {number|sap.ui.table.Row} vRow Either row index or row instance
|
|
1310
|
+
* @returns {boolean} Selection state
|
|
1249
1311
|
*/
|
|
1250
1312
|
isRowSelected: function(oTable, vRow) {
|
|
1251
1313
|
var oSelectionOwner = this._getSelectionOwner(oTable);
|
|
@@ -1302,6 +1364,18 @@ sap.ui.define([
|
|
|
1302
1364
|
}
|
|
1303
1365
|
oSelectionOwner.detachRowSelectionChange(fnCallback);
|
|
1304
1366
|
},
|
|
1367
|
+
attachBindingUpdate: function(oTable, oPlugin) {
|
|
1368
|
+
oTable.attachEvent("_rowsUpdated", oPlugin, this._fnOnRowsUpdated);
|
|
1369
|
+
},
|
|
1370
|
+
detachBindingUpdate: function(oTable, oPlugin) {
|
|
1371
|
+
oTable.detachEvent("_rowsUpdated", this._fnOnRowsUpdated);
|
|
1372
|
+
},
|
|
1373
|
+
_fnOnRowsUpdated: function(oEvent, oPlugin) {
|
|
1374
|
+
// TreeTable does not rerender after expand/collapse, so we need to remove the selection
|
|
1375
|
+
if (["collapse", "expand"].includes(oEvent.getParameter("reason"))) {
|
|
1376
|
+
oPlugin.removeSelection();
|
|
1377
|
+
}
|
|
1378
|
+
},
|
|
1305
1379
|
_getSelectionOwner: function(oTable) {
|
|
1306
1380
|
return PluginBase.getPlugin(oTable, "sap.ui.table.plugins.SelectionPlugin") || oTable;
|
|
1307
1381
|
},
|
|
@@ -1343,13 +1417,14 @@ sap.ui.define([
|
|
|
1343
1417
|
"sap.m.Table": {
|
|
1344
1418
|
selectableCells: ".sapMLIBFocusable, .sapMListTblCell, .sapMListTblSubRowCell, .sapMListTblSubCnt",
|
|
1345
1419
|
scrollArea: "listUl",
|
|
1420
|
+
eventClearedAll: "sapMTableClearAll",
|
|
1346
1421
|
onActivate: function(oTable, oPlugin) {
|
|
1347
1422
|
oTable.attachEvent("_change", oPlugin, this._onPropertyChange);
|
|
1348
1423
|
oTable.attachEvent("EventHandlerChange", oPlugin, this._onEventHandlerChange);
|
|
1349
1424
|
},
|
|
1350
1425
|
onDeactivate: function(oTable, oPlugin) {
|
|
1351
|
-
oTable.detachEvent("_change",
|
|
1352
|
-
oTable.detachEvent("EventHandlerChange",
|
|
1426
|
+
oTable.detachEvent("_change", this._onPropertyChange);
|
|
1427
|
+
oTable.detachEvent("EventHandlerChange", this._onEventHandlerChange);
|
|
1353
1428
|
},
|
|
1354
1429
|
_onPropertyChange: function(oEvent, oPlugin) {
|
|
1355
1430
|
oEvent.getParameter("name") == "mode" && oPlugin._onSelectableChange();
|
|
@@ -1361,21 +1436,21 @@ sap.ui.define([
|
|
|
1361
1436
|
return oTable.getVisibleItems();
|
|
1362
1437
|
},
|
|
1363
1438
|
/**
|
|
1364
|
-
* Checks
|
|
1365
|
-
* @param {sap.m.Table} oTable
|
|
1366
|
-
* @returns {boolean}
|
|
1439
|
+
* Checks whether the table is compatible with cell selection.
|
|
1440
|
+
* @param {sap.m.Table} oTable Table instance
|
|
1441
|
+
* @returns {boolean} Whether the table is compatible with cell selection
|
|
1367
1442
|
*/
|
|
1368
1443
|
isSupported: function(oTable, oPlugin) {
|
|
1369
|
-
return
|
|
1370
|
-
&& !hasDragEnabled(oTable, "items");
|
|
1444
|
+
return oTable.getMode() != ListMode.SingleSelectMaster && !hasDragEnabled(oTable, "items");
|
|
1371
1445
|
},
|
|
1372
1446
|
isBottomToTop: function(oTable) {
|
|
1373
1447
|
return oTable.getGrowingDirection() == "Upwards";
|
|
1374
1448
|
},
|
|
1375
1449
|
/**
|
|
1376
|
-
*
|
|
1377
|
-
* @param {sap.m.Table} oTable
|
|
1378
|
-
* @
|
|
1450
|
+
* Returns the visible columns of the table.
|
|
1451
|
+
* @param {sap.m.Table} oTable Table instance
|
|
1452
|
+
* @param {boolean} bIncludeSpecial Include special columns such as popins as separate columns
|
|
1453
|
+
* @returns {sap.m.Column[]} Array of visible columns
|
|
1379
1454
|
*/
|
|
1380
1455
|
getVisibleColumns: function (oTable, bIncludeSpecial) {
|
|
1381
1456
|
return oTable.getColumns(true).filter(function (oColumn) {
|
|
@@ -1384,28 +1459,29 @@ sap.ui.define([
|
|
|
1384
1459
|
});
|
|
1385
1460
|
},
|
|
1386
1461
|
/**
|
|
1387
|
-
*
|
|
1388
|
-
* @param {sap.m.Table} oTable
|
|
1389
|
-
* @param {boolean} bIncludeSpecial
|
|
1390
|
-
* @returns {number}
|
|
1462
|
+
* Retrieves the number of visible columns in the table.
|
|
1463
|
+
* @param {sap.m.Table} oTable Table instance
|
|
1464
|
+
* @param {boolean} bIncludeSpecial Include special columns, such as popins as separate columns
|
|
1465
|
+
* @returns {number} Number of columns
|
|
1391
1466
|
*/
|
|
1392
1467
|
numberOfColumns: function(oTable, bIncludeSpecial) {
|
|
1393
1468
|
var iColCount = this.getVisibleColumns(oTable, bIncludeSpecial).length;
|
|
1394
1469
|
return bIncludeSpecial ? iColCount : iColCount + oTable.hasPopin();
|
|
1395
1470
|
},
|
|
1396
1471
|
/**
|
|
1397
|
-
*
|
|
1398
|
-
* @param {sap.m.Table} oTable
|
|
1399
|
-
* @returns {number}
|
|
1472
|
+
* Retrieves the current row count.
|
|
1473
|
+
* @param {sap.m.Table} oTable Table instance
|
|
1474
|
+
* @returns {number} Row count
|
|
1400
1475
|
*/
|
|
1401
1476
|
getRowCount: function(oTable) {
|
|
1402
1477
|
return this._getVisibleItems(oTable).length;
|
|
1403
1478
|
},
|
|
1404
1479
|
/**
|
|
1405
|
-
*
|
|
1406
|
-
* @param {sap.m.Table} oTable
|
|
1407
|
-
* @param {sap.m.plugins.CellSelector.CellPosition} mPosition
|
|
1408
|
-
* @
|
|
1480
|
+
* Retrieves the cell reference for a given position.
|
|
1481
|
+
* @param {sap.m.Table} oTable Table instance
|
|
1482
|
+
* @param {sap.m.plugins.CellSelector.CellPosition} mPosition Position of cell
|
|
1483
|
+
* @param {boolean} bRange
|
|
1484
|
+
* @returns {HTMLElement|undefined} DOM reference of the cell, or undefined if the row or column index is invalid
|
|
1409
1485
|
*/
|
|
1410
1486
|
getCellRef: function (oTable, mPosition, bRange) {
|
|
1411
1487
|
const aRows = this._getVisibleItems(oTable);
|
|
@@ -1427,10 +1503,11 @@ sap.ui.define([
|
|
|
1427
1503
|
return oColumn && getCellDOM(oRow.getCells(), oColumn.getInitialOrder(), this.selectableCells);
|
|
1428
1504
|
},
|
|
1429
1505
|
/**
|
|
1430
|
-
*
|
|
1431
|
-
* @param {sap.m.Table} oTable
|
|
1432
|
-
* @param {HTMLElement} oTarget DOM
|
|
1433
|
-
* @
|
|
1506
|
+
* Retrieves cell information for a given DOM element.
|
|
1507
|
+
* @param {sap.m.Table} oTable Table instance
|
|
1508
|
+
* @param {HTMLElement} oTarget DOM reference of cell
|
|
1509
|
+
* @param {object} mPrevious DOM reference of previous cell
|
|
1510
|
+
* @returns {object} Cell information containing rowIndex, colIndex and cell type
|
|
1434
1511
|
*/
|
|
1435
1512
|
getCellInfo: function (oTable, oTarget, mPrevious) {
|
|
1436
1513
|
const aColumns = this.getVisibleColumns(oTable);
|
|
@@ -1455,9 +1532,9 @@ sap.ui.define([
|
|
|
1455
1532
|
},
|
|
1456
1533
|
/**
|
|
1457
1534
|
* Returns the cell type of the given target cell.
|
|
1458
|
-
* @param {sap.m.Table} oTable
|
|
1459
|
-
* @param {HTMLELement} oTarget
|
|
1460
|
-
* @returns {string}
|
|
1535
|
+
* @param {sap.m.Table} oTable Table instance
|
|
1536
|
+
* @param {HTMLELement} oTarget Cell reference
|
|
1537
|
+
* @returns {string|undefined} Cell type
|
|
1461
1538
|
*/
|
|
1462
1539
|
getCellType: function (oTable, oTarget) {
|
|
1463
1540
|
const oColumn = Element.getElementById(oTarget.getAttribute("data-sap-ui-column"));
|
|
@@ -1497,11 +1574,12 @@ sap.ui.define([
|
|
|
1497
1574
|
.map((oItem) => oItem?.getBindingContext(oTable.getBindingInfo("items")?.model));
|
|
1498
1575
|
},
|
|
1499
1576
|
/**
|
|
1500
|
-
*
|
|
1577
|
+
* Selects rows between indices iFrom and iTo.
|
|
1501
1578
|
* @param {sap.m.Table} oTable The table instance
|
|
1502
|
-
* @param {int} iFrom
|
|
1503
|
-
* @param {int} iTo
|
|
1504
|
-
* @param {int}
|
|
1579
|
+
* @param {int} iFrom Start row index
|
|
1580
|
+
* @param {int} iTo End row index
|
|
1581
|
+
* @param {int} iFocus Focused row index
|
|
1582
|
+
* @returns {boolean} Whether the selection was successful
|
|
1505
1583
|
*/
|
|
1506
1584
|
selectRows: function(oTable, iFrom, iTo, iFocus) {
|
|
1507
1585
|
var sSelectionMode = oTable.getMode();
|
|
@@ -1521,10 +1599,10 @@ sap.ui.define([
|
|
|
1521
1599
|
return true;
|
|
1522
1600
|
},
|
|
1523
1601
|
/**
|
|
1524
|
-
*
|
|
1525
|
-
* @param {sap.m.Table} oTable
|
|
1526
|
-
* @param {number|sap.m.ListBase} vRow
|
|
1527
|
-
* @returns {boolean}
|
|
1602
|
+
* Returns whether the given row is selected
|
|
1603
|
+
* @param {sap.m.Table} oTable Table instance
|
|
1604
|
+
* @param {number|sap.m.ListBase} vRow Either row index or row instance
|
|
1605
|
+
* @returns {boolean} Selection state
|
|
1528
1606
|
*/
|
|
1529
1607
|
isRowSelected: function(oTable, vRow) {
|
|
1530
1608
|
if (typeof vRow === "number") {
|
|
@@ -1538,9 +1616,7 @@ sap.ui.define([
|
|
|
1538
1616
|
return;
|
|
1539
1617
|
}
|
|
1540
1618
|
|
|
1541
|
-
|
|
1542
|
-
const oRow = getRow(oTable.getItems(), mFocus.rowIndex, false, (oRow) => aRows.indexOf(oRow));
|
|
1543
|
-
oRow?.focus();
|
|
1619
|
+
this.getCellRef(oTable, mFocus)?.focus();
|
|
1544
1620
|
},
|
|
1545
1621
|
scroll: function(oTable, bForward, bVertical) {
|
|
1546
1622
|
return Promise.resolve();
|
|
@@ -1551,6 +1627,18 @@ sap.ui.define([
|
|
|
1551
1627
|
detachSelectionChange: function(oTable, fnCallback) {
|
|
1552
1628
|
oTable.detachSelectionChange(fnCallback);
|
|
1553
1629
|
},
|
|
1630
|
+
attachBindingUpdate: function(oTable, oPlugin) {
|
|
1631
|
+
oTable.attachUpdateFinished(oPlugin, this._fnOnUpdateFinished);
|
|
1632
|
+
},
|
|
1633
|
+
detachBindingUpdate: function(oTable, oPlugin) {
|
|
1634
|
+
oTable.detachUpdateFinished(this._fnOnUpdateFinished);
|
|
1635
|
+
},
|
|
1636
|
+
_fnOnUpdateFinished: function(oEvent, oPlugin) {
|
|
1637
|
+
// ResponsiveTable does not rerender after sort/filter, so we need to clear the selection
|
|
1638
|
+
if (["Sort", "Filter"].includes(oEvent.getParameter("reason"))) {
|
|
1639
|
+
oPlugin.removeSelection();
|
|
1640
|
+
}
|
|
1641
|
+
},
|
|
1554
1642
|
getBinding: function(oTable) {
|
|
1555
1643
|
return oTable.getBinding("items");
|
|
1556
1644
|
},
|
|
@@ -1573,7 +1661,24 @@ sap.ui.define([
|
|
|
1573
1661
|
|
|
1574
1662
|
return [oCellRef];
|
|
1575
1663
|
},
|
|
1576
|
-
|
|
1664
|
+
onSelectionStart: function(oTable, oEvent) {
|
|
1665
|
+
if (oEvent.type.startsWith("mouse")) {
|
|
1666
|
+
// Remove focus and hover
|
|
1667
|
+
oTable.getItems().forEach(function(oItem) {
|
|
1668
|
+
oItem.setActive(false);
|
|
1669
|
+
oItem.getDomRef().classList.remove("sapMLIBHoverable");
|
|
1670
|
+
});
|
|
1671
|
+
}
|
|
1672
|
+
},
|
|
1673
|
+
onSelectionEnd: function(oTable, oEvent) {
|
|
1674
|
+
if (oEvent.type.startsWith("mouse")) {
|
|
1675
|
+
// Add focus and hover
|
|
1676
|
+
oTable.getItems().forEach(function(oItem) {
|
|
1677
|
+
if (oItem.isActionable()) {
|
|
1678
|
+
oItem.getDomRef().classList.add("sapMLIBHoverable");
|
|
1679
|
+
}
|
|
1680
|
+
});
|
|
1681
|
+
}
|
|
1577
1682
|
}
|
|
1578
1683
|
}
|
|
1579
1684
|
}, CellSelector);
|