@openui5/sap.m 1.120.6 → 1.121.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.
Files changed (549) hide show
  1. package/.reuse/dep5 +23 -21
  2. package/THIRDPARTY.txt +6 -43
  3. package/package.json +4 -4
  4. package/src/sap/m/.library +18 -2
  5. package/src/sap/m/AccButton.js +1 -1
  6. package/src/sap/m/ActionListItem.js +1 -1
  7. package/src/sap/m/ActionSelect.js +11 -11
  8. package/src/sap/m/ActionSheet.js +12 -8
  9. package/src/sap/m/ActionSheetRenderer.js +4 -4
  10. package/src/sap/m/ActionTile.js +7 -1
  11. package/src/sap/m/ActionTileContent.js +86 -7
  12. package/src/sap/m/ActionTileContentRenderer.js +4 -41
  13. package/src/sap/m/AdditionalTextButton.js +1 -1
  14. package/src/sap/m/App.js +1 -1
  15. package/src/sap/m/AssociativeOverflowToolbar.js +6 -6
  16. package/src/sap/m/Avatar.js +32 -14
  17. package/src/sap/m/Bar.js +5 -5
  18. package/src/sap/m/BarRenderer.js +3 -3
  19. package/src/sap/m/Breadcrumbs.js +12 -4
  20. package/src/sap/m/BreadcrumbsRenderer.js +1 -1
  21. package/src/sap/m/BusyDialog.js +19 -33
  22. package/src/sap/m/BusyIndicator.js +1 -1
  23. package/src/sap/m/Button.js +8 -8
  24. package/src/sap/m/ButtonRenderer.js +0 -4
  25. package/src/sap/m/Carousel.js +53 -25
  26. package/src/sap/m/CarouselLayout.js +14 -3
  27. package/src/sap/m/CarouselRenderer.js +4 -4
  28. package/src/sap/m/CheckBox.js +46 -5
  29. package/src/sap/m/CheckBoxRenderer.js +10 -3
  30. package/src/sap/m/ColorPalette.js +4 -2
  31. package/src/sap/m/ColorPalettePopover.js +5 -3
  32. package/src/sap/m/ColorPaletteRenderer.js +3 -3
  33. package/src/sap/m/Column.js +3 -4
  34. package/src/sap/m/ColumnHeaderPopover.js +1 -1
  35. package/src/sap/m/ColumnListItem.js +59 -20
  36. package/src/sap/m/ColumnListItemRenderer.js +8 -9
  37. package/src/sap/m/ColumnPopoverActionItem.js +1 -1
  38. package/src/sap/m/ColumnPopoverCustomItem.js +1 -1
  39. package/src/sap/m/ColumnPopoverItem.js +1 -1
  40. package/src/sap/m/ColumnPopoverSelectListItem.js +1 -1
  41. package/src/sap/m/ColumnPopoverSortItem.js +6 -6
  42. package/src/sap/m/ComboBox.js +16 -9
  43. package/src/sap/m/ComboBoxBase.js +10 -9
  44. package/src/sap/m/ComboBoxTextField.js +6 -4
  45. package/src/sap/m/ContentConfig.js +142 -0
  46. package/src/sap/m/CustomListItem.js +1 -1
  47. package/src/sap/m/CustomTile.js +1 -1
  48. package/src/sap/m/CustomTreeItem.js +1 -1
  49. package/src/sap/m/DatePicker.js +19 -18
  50. package/src/sap/m/DatePickerRenderer.js +3 -3
  51. package/src/sap/m/DateRangeSelection.js +16 -13
  52. package/src/sap/m/DateRangeSelectionRenderer.js +3 -3
  53. package/src/sap/m/DateTimeField.js +17 -9
  54. package/src/sap/m/DateTimeInput.js +6 -4
  55. package/src/sap/m/DateTimePicker.js +39 -30
  56. package/src/sap/m/DateTimePickerRenderer.js +4 -2
  57. package/src/sap/m/Dialog.js +21 -9
  58. package/src/sap/m/DialogRenderer.js +10 -3
  59. package/src/sap/m/DisplayListItem.js +1 -1
  60. package/src/sap/m/DraftIndicator.js +5 -5
  61. package/src/sap/m/DynamicDate.js +5 -3
  62. package/src/sap/m/DynamicDateFormat.js +7 -6
  63. package/src/sap/m/DynamicDateOption.js +10 -5
  64. package/src/sap/m/DynamicDateRange.js +56 -43
  65. package/src/sap/m/DynamicDateUtil.js +3 -3
  66. package/src/sap/m/DynamicDateValueHelpUIType.js +1 -1
  67. package/src/sap/m/ExpandableText.js +5 -9
  68. package/src/sap/m/ExpandableTextRenderer.js +3 -3
  69. package/src/sap/m/FacetFilter.js +17 -8
  70. package/src/sap/m/FacetFilterItem.js +1 -1
  71. package/src/sap/m/FacetFilterList.js +7 -7
  72. package/src/sap/m/FacetFilterRenderer.js +4 -4
  73. package/src/sap/m/FeedContent.js +1 -1
  74. package/src/sap/m/FeedInput.js +1 -1
  75. package/src/sap/m/FeedListItem.js +4 -4
  76. package/src/sap/m/FeedListItemAction.js +1 -1
  77. package/src/sap/m/FeedListItemRenderer.js +3 -3
  78. package/src/sap/m/Fiori20Adapter.js +9 -9
  79. package/src/sap/m/FlexBox.js +2 -2
  80. package/src/sap/m/FlexItemData.js +17 -17
  81. package/src/sap/m/FormattedText.js +7 -6
  82. package/src/sap/m/GenericTag.js +1 -1
  83. package/src/sap/m/GenericTagRenderer.js +5 -5
  84. package/src/sap/m/GenericTile.js +102 -14
  85. package/src/sap/m/GenericTileLineModeRenderer.js +3 -3
  86. package/src/sap/m/GenericTileRenderer.js +3 -3
  87. package/src/sap/m/GroupHeaderListItem.js +1 -1
  88. package/src/sap/m/GroupHeaderListItemRenderer.js +3 -3
  89. package/src/sap/m/GrowingEnablement.js +7 -6
  90. package/src/sap/m/GrowingList.js +1 -1
  91. package/src/sap/m/HBox.js +1 -1
  92. package/src/sap/m/HeaderContainer.js +5 -5
  93. package/src/sap/m/HeaderContainerItemNavigator.js +1 -1
  94. package/src/sap/m/IconTabBar.js +4 -4
  95. package/src/sap/m/IconTabBarDragAndDropUtil.js +5 -5
  96. package/src/sap/m/IconTabBarSelectList.js +2 -2
  97. package/src/sap/m/IconTabFilter.js +27 -15
  98. package/src/sap/m/IconTabFilterExpandButtonBadge.js +4 -4
  99. package/src/sap/m/IconTabHeader.js +61 -28
  100. package/src/sap/m/IconTabHeaderRenderer.js +5 -5
  101. package/src/sap/m/IconTabSeparator.js +7 -7
  102. package/src/sap/m/IllustratedMessage.js +8 -6
  103. package/src/sap/m/IllustratedMessageType.js +12 -0
  104. package/src/sap/m/Illustration.js +4 -4
  105. package/src/sap/m/IllustrationPool.js +3 -3
  106. package/src/sap/m/Image.js +6 -3
  107. package/src/sap/m/ImageContent.js +1 -1
  108. package/src/sap/m/Input.js +65 -36
  109. package/src/sap/m/InputBase.js +33 -8
  110. package/src/sap/m/InputBaseRenderer.js +3 -3
  111. package/src/sap/m/InputListItem.js +1 -1
  112. package/src/sap/m/InputRenderer.js +5 -6
  113. package/src/sap/m/Label.js +6 -6
  114. package/src/sap/m/LightBox.js +4 -4
  115. package/src/sap/m/LightBoxItem.js +1 -1
  116. package/src/sap/m/Link.js +30 -6
  117. package/src/sap/m/LinkRenderer.js +4 -4
  118. package/src/sap/m/LinkTileContent.js +1 -1
  119. package/src/sap/m/List.js +1 -1
  120. package/src/sap/m/ListBase.js +43 -24
  121. package/src/sap/m/ListItemBase.js +7 -6
  122. package/src/sap/m/ListItemBaseRenderer.js +3 -0
  123. package/src/sap/m/MaskEnabler.js +8 -6
  124. package/src/sap/m/MaskInput.js +1 -1
  125. package/src/sap/m/MaskInputRenderer.js +2 -2
  126. package/src/sap/m/MaskInputRule.js +1 -1
  127. package/src/sap/m/Menu.js +19 -17
  128. package/src/sap/m/MenuButton.js +8 -6
  129. package/src/sap/m/MenuItem.js +9 -9
  130. package/src/sap/m/MenuListItem.js +5 -4
  131. package/src/sap/m/MessageBox.js +5 -3
  132. package/src/sap/m/MessageItem.js +1 -1
  133. package/src/sap/m/MessageListItem.js +4 -3
  134. package/src/sap/m/MessagePage.js +4 -2
  135. package/src/sap/m/MessagePopover.js +9 -6
  136. package/src/sap/m/MessagePopoverItem.js +1 -1
  137. package/src/sap/m/MessageStrip.js +9 -7
  138. package/src/sap/m/MessageStripRenderer.js +5 -2
  139. package/src/sap/m/MessageStripUtilities.js +6 -4
  140. package/src/sap/m/MessageToast.js +8 -7
  141. package/src/sap/m/MessageView.js +29 -6
  142. package/src/sap/m/MessageViewRenderer.js +2 -2
  143. package/src/sap/m/MultiComboBox.js +36 -17
  144. package/src/sap/m/MultiComboBoxRenderer.js +4 -4
  145. package/src/sap/m/MultiEditField.js +4 -4
  146. package/src/sap/m/MultiInput.js +66 -19
  147. package/src/sap/m/MultiInputRenderer.js +3 -3
  148. package/src/sap/m/NavContainer.js +14 -9
  149. package/src/sap/m/NewsContent.js +1 -1
  150. package/src/sap/m/NotificationList.js +1 -1
  151. package/src/sap/m/NotificationListBase.js +4 -4
  152. package/src/sap/m/NotificationListGroup.js +4 -4
  153. package/src/sap/m/NotificationListItem.js +4 -4
  154. package/src/sap/m/NumericContent.js +6 -6
  155. package/src/sap/m/NumericInput.js +1 -1
  156. package/src/sap/m/NumericInputRenderer.js +6 -6
  157. package/src/sap/m/ObjectAttribute.js +7 -6
  158. package/src/sap/m/ObjectAttributeRenderer.js +3 -3
  159. package/src/sap/m/ObjectHeader.js +15 -11
  160. package/src/sap/m/ObjectHeaderRenderer.js +4 -4
  161. package/src/sap/m/ObjectIdentifier.js +37 -8
  162. package/src/sap/m/ObjectIdentifierRenderer.js +3 -3
  163. package/src/sap/m/ObjectListItem.js +4 -4
  164. package/src/sap/m/ObjectMarker.js +6 -4
  165. package/src/sap/m/ObjectNumber.js +4 -3
  166. package/src/sap/m/ObjectNumberRenderer.js +6 -6
  167. package/src/sap/m/ObjectStatus.js +28 -22
  168. package/src/sap/m/ObjectStatusRenderer.js +26 -20
  169. package/src/sap/m/OverflowToolbar.js +2 -2
  170. package/src/sap/m/OverflowToolbarAssociativePopover.js +3 -3
  171. package/src/sap/m/OverflowToolbarButton.js +1 -1
  172. package/src/sap/m/OverflowToolbarLayoutData.js +2 -2
  173. package/src/sap/m/OverflowToolbarMenuButton.js +1 -1
  174. package/src/sap/m/OverflowToolbarToggleButton.js +1 -1
  175. package/src/sap/m/P13nAnyFilterItem.js +1 -1
  176. package/src/sap/m/P13nColumnsItem.js +1 -1
  177. package/src/sap/m/P13nColumnsPanel.js +33 -11
  178. package/src/sap/m/P13nConditionPanel.js +6 -4
  179. package/src/sap/m/P13nDialog.js +27 -13
  180. package/src/sap/m/P13nDimMeasureItem.js +1 -1
  181. package/src/sap/m/P13nDimMeasurePanel.js +18 -12
  182. package/src/sap/m/P13nFilterItem.js +1 -1
  183. package/src/sap/m/P13nFilterPanel.js +71 -49
  184. package/src/sap/m/P13nGroupItem.js +1 -1
  185. package/src/sap/m/P13nGroupPanel.js +5 -4
  186. package/src/sap/m/P13nItem.js +1 -1
  187. package/src/sap/m/P13nPanel.js +1 -1
  188. package/src/sap/m/P13nSelectionItem.js +1 -1
  189. package/src/sap/m/P13nSelectionPanel.js +28 -7
  190. package/src/sap/m/P13nSortItem.js +1 -1
  191. package/src/sap/m/P13nSortPanel.js +6 -5
  192. package/src/sap/m/PDFViewer.js +3 -6
  193. package/src/sap/m/Page.js +4 -8
  194. package/src/sap/m/PageAccessibleLandmarkInfo.js +1 -1
  195. package/src/sap/m/PagingButton.js +5 -4
  196. package/src/sap/m/Panel.js +10 -5
  197. package/src/sap/m/PlanningCalendar.js +160 -109
  198. package/src/sap/m/PlanningCalendarHeader.js +9 -7
  199. package/src/sap/m/PlanningCalendarLegend.js +5 -5
  200. package/src/sap/m/PlanningCalendarRow.js +26 -15
  201. package/src/sap/m/PlanningCalendarView.js +1 -4
  202. package/src/sap/m/Popover.js +19 -21
  203. package/src/sap/m/PopoverRenderer.js +4 -4
  204. package/src/sap/m/ProgressIndicator.js +15 -13
  205. package/src/sap/m/ProgressIndicatorRenderer.js +3 -4
  206. package/src/sap/m/PullToRefresh.js +4 -3
  207. package/src/sap/m/QuickView.js +1 -1
  208. package/src/sap/m/QuickViewBase.js +1 -1
  209. package/src/sap/m/QuickViewCard.js +1 -1
  210. package/src/sap/m/QuickViewCardRenderer.js +3 -3
  211. package/src/sap/m/QuickViewGroup.js +1 -1
  212. package/src/sap/m/QuickViewGroupElement.js +1 -1
  213. package/src/sap/m/QuickViewPage.js +29 -17
  214. package/src/sap/m/RadioButton.js +4 -4
  215. package/src/sap/m/RadioButtonGroup.js +38 -5
  216. package/src/sap/m/RadioButtonGroupRenderer.js +4 -4
  217. package/src/sap/m/RadioButtonRenderer.js +3 -3
  218. package/src/sap/m/RangeSlider.js +9 -7
  219. package/src/sap/m/RangeSliderRenderer.js +2 -2
  220. package/src/sap/m/RatingIndicator.js +7 -6
  221. package/src/sap/m/RatingIndicatorRenderer.js +4 -4
  222. package/src/sap/m/ResponsivePopover.js +1 -3
  223. package/src/sap/m/ResponsiveScale.js +1 -1
  224. package/src/sap/m/ScrollBar.js +3 -3
  225. package/src/sap/m/ScrollContainer.js +6 -6
  226. package/src/sap/m/SearchField.js +1 -1
  227. package/src/sap/m/SegmentedButton.js +7 -5
  228. package/src/sap/m/SegmentedButtonItem.js +1 -1
  229. package/src/sap/m/Select.js +30 -16
  230. package/src/sap/m/SelectDialog.js +5 -3
  231. package/src/sap/m/SelectDialogBase.js +6 -6
  232. package/src/sap/m/SelectList.js +6 -6
  233. package/src/sap/m/SelectionDetails.js +7 -3
  234. package/src/sap/m/SelectionDetailsFacade.js +2 -2
  235. package/src/sap/m/SelectionDetailsItem.js +1 -1
  236. package/src/sap/m/SelectionDetailsItemLine.js +1 -1
  237. package/src/sap/m/Shell.js +4 -4
  238. package/src/sap/m/ShellRenderer.js +3 -2
  239. package/src/sap/m/SimpleFixFlex.js +1 -1
  240. package/src/sap/m/SinglePlanningCalendar.js +41 -9
  241. package/src/sap/m/SinglePlanningCalendarDayView.js +1 -1
  242. package/src/sap/m/SinglePlanningCalendarGrid.js +122 -54
  243. package/src/sap/m/SinglePlanningCalendarGridRenderer.js +22 -20
  244. package/src/sap/m/SinglePlanningCalendarMonthGrid.js +315 -61
  245. package/src/sap/m/SinglePlanningCalendarMonthGridRenderer.js +88 -35
  246. package/src/sap/m/SinglePlanningCalendarMonthView.js +3 -4
  247. package/src/sap/m/SinglePlanningCalendarView.js +1 -1
  248. package/src/sap/m/SinglePlanningCalendarWeekView.js +5 -5
  249. package/src/sap/m/SinglePlanningCalendarWorkWeekView.js +6 -5
  250. package/src/sap/m/SlideTile.js +6 -6
  251. package/src/sap/m/SlideTileRenderer.js +1 -3
  252. package/src/sap/m/Slider.js +38 -11
  253. package/src/sap/m/SliderRenderer.js +4 -4
  254. package/src/sap/m/SliderTooltip.js +4 -4
  255. package/src/sap/m/SliderTooltipBase.js +1 -1
  256. package/src/sap/m/SliderTooltipContainer.js +10 -8
  257. package/src/sap/m/SliderTooltipRenderer.js +3 -3
  258. package/src/sap/m/SplitApp.js +2 -1
  259. package/src/sap/m/SplitButton.js +5 -3
  260. package/src/sap/m/SplitContainer.js +20 -11
  261. package/src/sap/m/StandardDynamicDateOption.js +16 -12
  262. package/src/sap/m/StandardListItem.js +4 -3
  263. package/src/sap/m/StandardListItemRenderer.js +3 -3
  264. package/src/sap/m/StandardTile.js +1 -1
  265. package/src/sap/m/StandardTreeItem.js +1 -1
  266. package/src/sap/m/StepInput.js +6 -4
  267. package/src/sap/m/Suggest.js +5 -5
  268. package/src/sap/m/SuggestionItem.js +1 -1
  269. package/src/sap/m/SuggestionsList.js +9 -7
  270. package/src/sap/m/SuggestionsListRenderer.js +2 -2
  271. package/src/sap/m/SuggestionsPopover.js +1 -1
  272. package/src/sap/m/Switch.js +13 -11
  273. package/src/sap/m/SwitchRenderer.js +3 -3
  274. package/src/sap/m/TabContainer.js +9 -6
  275. package/src/sap/m/TabContainerItem.js +5 -8
  276. package/src/sap/m/TabStrip.js +23 -12
  277. package/src/sap/m/TabStripItem.js +7 -10
  278. package/src/sap/m/TabStripRenderer.js +2 -2
  279. package/src/sap/m/Table.js +4 -5
  280. package/src/sap/m/TablePersoController.js +10 -8
  281. package/src/sap/m/TablePersoDialog.js +19 -16
  282. package/src/sap/m/TablePersoProvider.js +1 -1
  283. package/src/sap/m/TableRenderer.js +4 -4
  284. package/src/sap/m/TableSelectDialog.js +5 -3
  285. package/src/sap/m/Text.js +36 -39
  286. package/src/sap/m/TextArea.js +5 -3
  287. package/src/sap/m/TextRenderer.js +2 -7
  288. package/src/sap/m/Tile.js +1 -1
  289. package/src/sap/m/TileAttribute.js +64 -0
  290. package/src/sap/m/TileAttributeRenderer.js +70 -0
  291. package/src/sap/m/TileContainer.js +10 -8
  292. package/src/sap/m/TileContent.js +8 -4
  293. package/src/sap/m/TileRenderer.js +3 -3
  294. package/src/sap/m/TimePicker.js +24 -19
  295. package/src/sap/m/TimePickerClock.js +4 -3
  296. package/src/sap/m/TimePickerClocks.js +1 -1
  297. package/src/sap/m/TimePickerInputs.js +1 -1
  298. package/src/sap/m/TimePickerInternals.js +12 -10
  299. package/src/sap/m/TimePickerSlider.js +9 -7
  300. package/src/sap/m/TimePickerSliders.js +17 -13
  301. package/src/sap/m/TimePickerSlidersRenderer.js +3 -3
  302. package/src/sap/m/Title.js +5 -4
  303. package/src/sap/m/TitlePropagationSupport.js +4 -4
  304. package/src/sap/m/ToggleButton.js +4 -3
  305. package/src/sap/m/Token.js +6 -6
  306. package/src/sap/m/Tokenizer.js +16 -10
  307. package/src/sap/m/Toolbar.js +4 -4
  308. package/src/sap/m/ToolbarLayoutData.js +1 -1
  309. package/src/sap/m/ToolbarSeparator.js +1 -1
  310. package/src/sap/m/ToolbarSpacer.js +1 -1
  311. package/src/sap/m/Tree.js +4 -2
  312. package/src/sap/m/TreeItemBase.js +4 -3
  313. package/src/sap/m/TreeItemBaseRenderer.js +3 -3
  314. package/src/sap/m/UploadCollection.js +28 -24
  315. package/src/sap/m/UploadCollectionItem.js +1 -1
  316. package/src/sap/m/UploadCollectionParameter.js +1 -1
  317. package/src/sap/m/UploadCollectionToolbarPlaceholder.js +1 -1
  318. package/src/sap/m/VBox.js +1 -1
  319. package/src/sap/m/ValueStateHeader.js +5 -5
  320. package/src/sap/m/VariantItem.js +8 -3
  321. package/src/sap/m/VariantManagement.js +112 -33
  322. package/src/sap/m/ViewSettingsCustomItem.js +1 -1
  323. package/src/sap/m/ViewSettingsCustomTab.js +1 -1
  324. package/src/sap/m/ViewSettingsDialog.js +34 -21
  325. package/src/sap/m/ViewSettingsFilterItem.js +1 -1
  326. package/src/sap/m/ViewSettingsItem.js +9 -2
  327. package/src/sap/m/VisibleItem.js +1 -1
  328. package/src/sap/m/WheelSlider.js +4 -3
  329. package/src/sap/m/WheelSliderContainer.js +1 -1
  330. package/src/sap/m/WheelSliderContainerRenderer.js +3 -3
  331. package/src/sap/m/Wizard.js +17 -15
  332. package/src/sap/m/WizardProgressNavigator.js +18 -2
  333. package/src/sap/m/WizardProgressNavigatorRenderer.js +9 -5
  334. package/src/sap/m/WizardRenderer.js +6 -4
  335. package/src/sap/m/WizardStep.js +9 -11
  336. package/src/sap/m/changeHandler/AddTableColumn.js +3 -7
  337. package/src/sap/m/changeHandler/ChangeLinkTarget.js +1 -1
  338. package/src/sap/m/changeHandler/CombineButtons.js +4 -4
  339. package/src/sap/m/changeHandler/MoveTableColumns.js +3 -2
  340. package/src/sap/m/changeHandler/SelectIconTabBarFilter.js +1 -1
  341. package/src/sap/m/changeHandler/SplitMenuButton.js +1 -1
  342. package/src/sap/m/delegate/ValueStateMessage.js +3 -3
  343. package/src/sap/m/designtime/IconTabBar.designtime.js +3 -2
  344. package/src/sap/m/designtime/Link.designtime.js +4 -4
  345. package/src/sap/m/designtime/MenuButton.designtime.js +3 -0
  346. package/src/sap/m/designtime/ObjectIdentifier.designtime.js +0 -4
  347. package/src/sap/m/designtime/messagebundle_en_US_saprigi.properties +91 -91
  348. package/src/sap/m/flexibility/EngineFlex.js +14 -8
  349. package/src/sap/m/flexibility/MenuButton.flexibility.js +1 -0
  350. package/src/sap/m/inputUtils/SuggestionsPopoverPopoverMixin.js +4 -4
  351. package/src/sap/m/library.js +181 -59
  352. package/src/sap/m/messagebundle.properties +113 -90
  353. package/src/sap/m/messagebundle_ar.properties +16 -10
  354. package/src/sap/m/messagebundle_bg.properties +19 -13
  355. package/src/sap/m/messagebundle_ca.properties +16 -10
  356. package/src/sap/m/messagebundle_cnr.properties +21 -15
  357. package/src/sap/m/messagebundle_cs.properties +16 -10
  358. package/src/sap/m/messagebundle_cy.properties +19 -13
  359. package/src/sap/m/messagebundle_da.properties +14 -8
  360. package/src/sap/m/messagebundle_de.properties +12 -6
  361. package/src/sap/m/messagebundle_el.properties +27 -21
  362. package/src/sap/m/messagebundle_en.properties +1164 -22
  363. package/src/sap/m/messagebundle_en_GB.properties +23 -17
  364. package/src/sap/m/messagebundle_en_US_saprigi.properties +34 -22
  365. package/src/sap/m/messagebundle_es.properties +19 -13
  366. package/src/sap/m/messagebundle_es_MX.properties +18 -12
  367. package/src/sap/m/messagebundle_et.properties +14 -8
  368. package/src/sap/m/messagebundle_fi.properties +21 -15
  369. package/src/sap/m/messagebundle_fr.properties +15 -9
  370. package/src/sap/m/messagebundle_fr_CA.properties +11 -5
  371. package/src/sap/m/messagebundle_hi.properties +24 -18
  372. package/src/sap/m/messagebundle_hr.properties +15 -9
  373. package/src/sap/m/messagebundle_hu.properties +20 -14
  374. package/src/sap/m/messagebundle_id.properties +15 -9
  375. package/src/sap/m/messagebundle_it.properties +17 -11
  376. package/src/sap/m/messagebundle_iw.properties +13 -7
  377. package/src/sap/m/messagebundle_ja.properties +23 -17
  378. package/src/sap/m/messagebundle_kk.properties +14 -8
  379. package/src/sap/m/messagebundle_ko.properties +18 -12
  380. package/src/sap/m/messagebundle_lt.properties +17 -11
  381. package/src/sap/m/messagebundle_lv.properties +26 -20
  382. package/src/sap/m/messagebundle_mk.properties +20 -14
  383. package/src/sap/m/messagebundle_ms.properties +13 -7
  384. package/src/sap/m/messagebundle_nl.properties +16 -10
  385. package/src/sap/m/messagebundle_no.properties +15 -9
  386. package/src/sap/m/messagebundle_pl.properties +16 -10
  387. package/src/sap/m/messagebundle_pt.properties +16 -10
  388. package/src/sap/m/messagebundle_pt_PT.properties +13 -7
  389. package/src/sap/m/messagebundle_ro.properties +13 -7
  390. package/src/sap/m/messagebundle_ru.properties +15 -9
  391. package/src/sap/m/messagebundle_sh.properties +21 -15
  392. package/src/sap/m/messagebundle_sk.properties +13 -7
  393. package/src/sap/m/messagebundle_sl.properties +14 -8
  394. package/src/sap/m/messagebundle_sr.properties +21 -15
  395. package/src/sap/m/messagebundle_sv.properties +15 -9
  396. package/src/sap/m/messagebundle_th.properties +12 -6
  397. package/src/sap/m/messagebundle_tr.properties +15 -9
  398. package/src/sap/m/messagebundle_uk.properties +15 -9
  399. package/src/sap/m/messagebundle_vi.properties +16 -10
  400. package/src/sap/m/messagebundle_zh_CN.properties +12 -6
  401. package/src/sap/m/messagebundle_zh_TW.properties +12 -6
  402. package/src/sap/m/p13n/.eslintrc.json +19 -0
  403. package/src/sap/m/p13n/AbstractContainer.js +43 -29
  404. package/src/sap/m/p13n/AbstractContainerItem.js +8 -8
  405. package/src/sap/m/p13n/BasePanel.js +123 -76
  406. package/src/sap/m/p13n/Container.js +80 -50
  407. package/src/sap/m/p13n/Engine.js +331 -294
  408. package/src/sap/m/p13n/FilterController.js +335 -0
  409. package/src/sap/m/p13n/FilterPanel.js +291 -0
  410. package/src/sap/m/p13n/FlexUtil.js +23 -21
  411. package/src/sap/m/p13n/GroupController.js +97 -85
  412. package/src/sap/m/p13n/GroupPanel.js +30 -25
  413. package/src/sap/m/p13n/MetadataHelper.js +65 -21
  414. package/src/sap/m/p13n/PersistenceProvider.js +11 -9
  415. package/src/sap/m/p13n/Popup.js +63 -45
  416. package/src/sap/m/p13n/QueryPanel.js +117 -93
  417. package/src/sap/m/p13n/SelectionController.js +302 -237
  418. package/src/sap/m/p13n/SelectionPanel.js +117 -83
  419. package/src/sap/m/p13n/SortController.js +100 -89
  420. package/src/sap/m/p13n/SortPanel.js +46 -31
  421. package/src/sap/m/p13n/enums/PersistenceMode.js +57 -0
  422. package/src/sap/m/p13n/{enum → enums}/ProcessingStrategy.js +10 -8
  423. package/src/sap/m/p13n/handler/xConfigHandler.js +175 -161
  424. package/src/sap/m/p13n/modification/FlexModificationHandler.js +151 -133
  425. package/src/sap/m/p13n/modification/LocalStorageModificationHandler.js +28 -28
  426. package/src/sap/m/p13n/modification/ModificationHandler.js +15 -15
  427. package/src/sap/m/p13n/modules/AdaptationProvider.js +7 -7
  428. package/src/sap/m/p13n/modules/DefaultProviderRegistry.js +20 -18
  429. package/src/sap/m/p13n/modules/StateHandlerRegistry.js +7 -7
  430. package/src/sap/m/p13n/modules/UIManager.js +119 -117
  431. package/src/sap/m/p13n/modules/xConfigAPI.js +74 -68
  432. package/src/sap/m/plugins/CellSelector.js +142 -26
  433. package/src/sap/m/plugins/ColumnResizer.js +12 -17
  434. package/src/sap/m/plugins/ContextMenuSetting.js +155 -0
  435. package/src/sap/m/plugins/CopyProvider.js +170 -110
  436. package/src/sap/m/plugins/DataStateIndicator.js +9 -6
  437. package/src/sap/m/plugins/PasteProvider.js +18 -10
  438. package/src/sap/m/plugins/PluginBase.js +39 -15
  439. package/src/sap/m/semantic/AddAction.js +1 -1
  440. package/src/sap/m/semantic/CancelAction.js +1 -1
  441. package/src/sap/m/semantic/DeleteAction.js +1 -1
  442. package/src/sap/m/semantic/DetailPage.js +3 -3
  443. package/src/sap/m/semantic/DiscussInJamAction.js +1 -1
  444. package/src/sap/m/semantic/EditAction.js +1 -1
  445. package/src/sap/m/semantic/FavoriteAction.js +1 -1
  446. package/src/sap/m/semantic/FilterAction.js +1 -1
  447. package/src/sap/m/semantic/FilterSelect.js +1 -1
  448. package/src/sap/m/semantic/FlagAction.js +1 -1
  449. package/src/sap/m/semantic/ForwardAction.js +1 -1
  450. package/src/sap/m/semantic/FullscreenPage.js +1 -1
  451. package/src/sap/m/semantic/GroupAction.js +1 -1
  452. package/src/sap/m/semantic/GroupSelect.js +1 -1
  453. package/src/sap/m/semantic/MainAction.js +1 -1
  454. package/src/sap/m/semantic/MasterPage.js +3 -3
  455. package/src/sap/m/semantic/MessagesIndicator.js +1 -1
  456. package/src/sap/m/semantic/MultiSelectAction.js +3 -3
  457. package/src/sap/m/semantic/NegativeAction.js +1 -1
  458. package/src/sap/m/semantic/OpenInAction.js +1 -1
  459. package/src/sap/m/semantic/PositiveAction.js +1 -1
  460. package/src/sap/m/semantic/PrintAction.js +1 -1
  461. package/src/sap/m/semantic/SaveAction.js +1 -1
  462. package/src/sap/m/semantic/Segment.js +1 -1
  463. package/src/sap/m/semantic/SegmentedContainer.js +1 -1
  464. package/src/sap/m/semantic/SemanticButton.js +1 -1
  465. package/src/sap/m/semantic/SemanticConfiguration.js +7 -5
  466. package/src/sap/m/semantic/SemanticControl.js +1 -1
  467. package/src/sap/m/semantic/SemanticOverflowToolbarButton.js +1 -1
  468. package/src/sap/m/semantic/SemanticOverflowToolbarToggleButton.js +1 -1
  469. package/src/sap/m/semantic/SemanticPage.js +4 -2
  470. package/src/sap/m/semantic/SemanticSelect.js +1 -1
  471. package/src/sap/m/semantic/SemanticToggleButton.js +1 -1
  472. package/src/sap/m/semantic/SendEmailAction.js +1 -1
  473. package/src/sap/m/semantic/SendMessageAction.js +1 -1
  474. package/src/sap/m/semantic/ShareInJamAction.js +1 -1
  475. package/src/sap/m/semantic/ShareMenu.js +6 -12
  476. package/src/sap/m/semantic/ShareMenuPage.js +1 -1
  477. package/src/sap/m/semantic/SortAction.js +1 -1
  478. package/src/sap/m/semantic/SortSelect.js +1 -1
  479. package/src/sap/m/table/ColumnWidthController.js +2 -3
  480. package/src/sap/m/table/Util.js +67 -40
  481. package/src/sap/m/table/columnmenu/ActionItem.js +1 -1
  482. package/src/sap/m/table/columnmenu/Entry.js +1 -1
  483. package/src/sap/m/table/columnmenu/Item.js +5 -5
  484. package/src/sap/m/table/columnmenu/ItemBase.js +1 -1
  485. package/src/sap/m/table/columnmenu/Menu.js +14 -21
  486. package/src/sap/m/table/columnmenu/QuickAction.js +1 -1
  487. package/src/sap/m/table/columnmenu/QuickActionBase.js +1 -1
  488. package/src/sap/m/table/columnmenu/QuickActionItem.js +1 -1
  489. package/src/sap/m/table/columnmenu/QuickGroup.js +7 -5
  490. package/src/sap/m/table/columnmenu/QuickGroupItem.js +1 -1
  491. package/src/sap/m/table/columnmenu/QuickSort.js +6 -4
  492. package/src/sap/m/table/columnmenu/QuickSortItem.js +6 -4
  493. package/src/sap/m/table/columnmenu/QuickTotal.js +7 -5
  494. package/src/sap/m/table/columnmenu/QuickTotalItem.js +1 -1
  495. package/src/sap/m/themes/base/ActionSheet.less +10 -3
  496. package/src/sap/m/themes/base/ActionTile.less +7 -4
  497. package/src/sap/m/themes/base/Carousel.less +1 -1
  498. package/src/sap/m/themes/base/ContextMenuSetting.less +3 -0
  499. package/src/sap/m/themes/base/IconTabBar.less +2 -2
  500. package/src/sap/m/themes/base/Label.less +2 -1
  501. package/src/sap/m/themes/base/Link.less +1 -1
  502. package/src/sap/m/themes/base/ListItemBase.less +1 -1
  503. package/src/sap/m/themes/base/MenuButton.less +2 -2
  504. package/src/sap/m/themes/base/MessageView.less +6 -0
  505. package/src/sap/m/themes/base/MultiComboBox.less +7 -4
  506. package/src/sap/m/themes/base/NumericContent.less +2 -2
  507. package/src/sap/m/themes/base/ObjectListItem.less +1 -1
  508. package/src/sap/m/themes/base/ObjectNumber.less +4 -4
  509. package/src/sap/m/themes/base/ObjectStatus.less +263 -160
  510. package/src/sap/m/themes/base/Panel.less +18 -4
  511. package/src/sap/m/themes/base/Popover.less +5 -0
  512. package/src/sap/m/themes/base/SinglePlanningCalendarMonthGrid.less +21 -0
  513. package/src/sap/m/themes/base/StandardListItem.less +1 -1
  514. package/src/sap/m/themes/base/SuggestionItem.less +6 -0
  515. package/src/sap/m/themes/base/Table.less +0 -5
  516. package/src/sap/m/themes/base/TablePersoDialog.less +4 -2
  517. package/src/sap/m/themes/base/Text.less +2 -1
  518. package/src/sap/m/themes/base/UploadCollection.less +2 -2
  519. package/src/sap/m/themes/base/UploadSet.less +55 -0
  520. package/src/sap/m/themes/base/VariantManagement.less +2 -1
  521. package/src/sap/m/themes/base/illustrations/sapIllus-Dialog-NewMail.svg +27 -0
  522. package/src/sap/m/themes/base/illustrations/sapIllus-Dialog-SignOut.svg +24 -0
  523. package/src/sap/m/themes/base/illustrations/sapIllus-Dot-NewMail.svg +9 -0
  524. package/src/sap/m/themes/base/illustrations/sapIllus-Dot-SignOut.svg +12 -0
  525. package/src/sap/m/themes/base/illustrations/sapIllus-Scene-NewMail.svg +59 -0
  526. package/src/sap/m/themes/base/illustrations/sapIllus-Scene-SignOut.svg +113 -0
  527. package/src/sap/m/themes/base/illustrations/sapIllus-Spot-NewMail.svg +27 -0
  528. package/src/sap/m/themes/base/illustrations/sapIllus-Spot-SignOut.svg +23 -0
  529. package/src/sap/m/themes/base/library.source.less +2 -1
  530. package/src/sap/m/upload/ActionsPlaceholder.js +1 -1
  531. package/src/sap/m/upload/Column.js +1 -1
  532. package/src/sap/m/upload/FilePreviewDialog.js +5 -5
  533. package/src/sap/m/upload/FilterPanel.js +5 -3
  534. package/src/sap/m/upload/UploadSet.js +122 -61
  535. package/src/sap/m/upload/UploadSetItem.js +31 -7
  536. package/src/sap/m/upload/UploadSetToolbarPlaceholder.js +1 -1
  537. package/src/sap/m/upload/UploadSetwithTable.js +7 -6
  538. package/src/sap/m/upload/UploadSetwithTableItem.js +5 -5
  539. package/src/sap/m/upload/UploaderTableItem.js +1 -1
  540. package/src/sap/m/upload/p13n/PersManager.js +4 -2
  541. package/src/sap/m/upload/p13n/mediator/BaseMediator.js +1 -1
  542. package/src/sap/m/upload/p13n/mediator/ColumnsMediator.js +5 -4
  543. package/src/sap/m/upload/p13n/mediator/FilterMediator.js +5 -2
  544. package/src/sap/m/upload/p13n/mediator/GroupMediator.js +5 -4
  545. package/src/sap/m/upload/p13n/mediator/SortMediator.js +5 -4
  546. package/src/sap/m/upload/p13n/modules/PersPopupManager.js +3 -3
  547. package/LICENSES/BSD-2-Clause.txt +0 -22
  548. package/src/sap/m/CustomAttribute.js +0 -53
  549. package/src/sap/m/p13n/enum/PersistenceMode.js +0 -55
@@ -5,11 +5,12 @@
5
5
  */
6
6
  sap.ui.define([
7
7
  "./PluginBase",
8
+ "sap/base/i18n/Localization",
9
+ "sap/base/util/deepEqual",
8
10
  "sap/ui/events/KeyCodes",
9
- "sap/ui/core/Core",
10
11
  "sap/ui/core/Element",
11
12
  "sap/base/Log"
12
- ], function (PluginBase, KeyCodes, Core, Element, Log) {
13
+ ], function (PluginBase, Localization, deepEqual, KeyCodes, Element, Log) {
13
14
  "use strict";
14
15
 
15
16
  var DIRECTION = {
@@ -44,13 +45,14 @@ sap.ui.define([
44
45
  * </ul>
45
46
  *
46
47
  * @extends sap.ui.core.Element
47
- * @version 1.120.6
48
+ * @version 1.121.0
48
49
  * @author SAP SE
49
50
  *
50
51
  * @public
51
52
  * @experimental Since 1.119. This class is experimental. The API might be changed in the future.
52
53
  * @since 1.119
53
54
  * @alias sap.m.plugins.CellSelector
55
+ * @borrows sap.m.plugins.PluginBase.findOn as findOn
54
56
  */
55
57
  var CellSelector = PluginBase.extend("sap.m.plugins.CellSelector", /** @lends sap.m.plugins.CellSelector.prototype */ {
56
58
  metadata: {
@@ -79,6 +81,19 @@ sap.ui.define([
79
81
  }
80
82
  });
81
83
 
84
+ CellSelector.findOn = PluginBase.findOn;
85
+
86
+ /**
87
+ * A selection object representing the selected cells.
88
+ *
89
+ * The selection object contains the selected cells separated into rows and columns.
90
+ * Rows are represented by their context, while columns are the column instance, which may vary depending on the table type.
91
+ * @public
92
+ * @typedef {object} sap.m.plugins.CellSelector.Selection
93
+ * @property {sap.ui.model.Context[]} rows The row contexts of the selected cells.
94
+ * @property {sap.ui.core.Element[]} columns The column instances of the selected cells; the content is based on the owner control.
95
+ */
96
+
82
97
  /**
83
98
  * Event Delegate that containts events, that need to be executed after control events.
84
99
  */
@@ -103,12 +118,15 @@ sap.ui.define([
103
118
  */
104
119
  const PriorityDelegate = {
105
120
  onBeforeRendering: function() {
106
- this._iRtl = Core.getConfiguration().getRTL() ? -1 : 1;
121
+ this._iRtl = Localization.getRTL() ? -1 : 1;
107
122
  if (this._oResizer) {
108
123
  // remove resizer, as due to rerendering table element may be gone
109
124
  this._oResizer.remove();
110
125
  this._oResizer = null;
111
126
  }
127
+ if (this._bSelecting) {
128
+ this.removeSelection();
129
+ }
112
130
  },
113
131
  onAfterRendering: function() {
114
132
  this._deregisterEvents();
@@ -182,7 +200,7 @@ sap.ui.define([
182
200
  var oSelectableCell = this._getSelectableCell(oEvent.target);
183
201
  if (oSelectableCell) {
184
202
  this._bMouseDown = true;
185
- this._mClickedCell = this.getConfig("getCellInfo", this.getControl(), oSelectableCell);
203
+ this._mClickedCell = this._oPreviousCell = this.getConfig("getCellInfo", this.getControl(), oSelectableCell);
186
204
  }
187
205
  },
188
206
  onmouseup: function(oEvent) {
@@ -190,6 +208,7 @@ sap.ui.define([
190
208
  this._bBorderDown = false;
191
209
  this._mClickedCell = undefined;
192
210
  this._bScrolling = false;
211
+ this._oPreviousCell = undefined;
193
212
  this._clearScroller();
194
213
  }
195
214
  };
@@ -204,7 +223,11 @@ sap.ui.define([
204
223
  if (this._bScrolling) {
205
224
  this._scrollSelect(this._oSession.scrollForward, this._oSession.isVertical, oEvent);
206
225
  } else {
207
- this._selectCells();
226
+ if (!this._oSession.mSource || !this._oSession.mTarget) {
227
+ return;
228
+ }
229
+ const mBounds = this._getNormalizedBounds(this._oSession.mSource, this._oSession.mTarget);
230
+ this._drawSelection(mBounds);
208
231
  }
209
232
  }.bind(this);
210
233
  this._fnOnMouseEnter = this._onmouseenter.bind(this);
@@ -247,15 +270,31 @@ sap.ui.define([
247
270
  * Determines whether cells are selectable or not.
248
271
  *
249
272
  * @private
273
+ * @returns {boolean} Whether cells are selectable or not
250
274
  * @ui5-restricted sap.m.plugins.CopyProvider
251
275
  */
252
276
  CellSelector.prototype.isSelectable = function() {
253
277
  return this.isActive() ? this.getConfig("isSupported", this.getControl()) : false;
254
278
  };
255
279
 
280
+ /**
281
+ * Determines whether there is a cell selection or not.
282
+ *
283
+ * @private
284
+ * @returns {boolean} Whether there is a cell selection or not
285
+ * @ui5-restricted sap.m.plugins.CopyProvider
286
+ */
287
+ CellSelector.prototype.hasSelection = function() {
288
+ return Boolean(this._bSelecting && this._oSession?.mSource);
289
+ };
290
+
256
291
  CellSelector.prototype._onSelectableChange = function() {
257
- const oCopyProvider = this.getPlugin("sap.m.plugins.CopyProvider");
258
- oCopyProvider?.onCellSelectorSelectableChange(this.isSelectable());
292
+ this.getPlugin("sap.m.plugins.CopyProvider")?.onCellSelectorSelectableChange(this);
293
+ };
294
+
295
+ CellSelector.prototype._onSelectionChange = function() {
296
+ /* @ui5-restricted sap.m.plugins.CopyProvider */
297
+ this.fireEvent("selectionChange");
259
298
  };
260
299
 
261
300
  CellSelector.prototype._registerEvents = function() {
@@ -290,15 +329,15 @@ sap.ui.define([
290
329
 
291
330
  /**
292
331
  * Returns the cell selection range.
293
- * The value <code>Infinity</code> in <code>rowIndex</code> meant for until the limit is reached.
332
+ * The value <code>Infinity</code> in <code>rowIndex</code> indicates that the limit is reached.
294
333
  *
295
- * Note: This method is subject to change.
334
+ * <b>Note</b>: This method is subject to change.
335
+ * @param {boolean} bIgnore Ignore group header rows within selection range
296
336
  * @returns {{from: {rowIndex: int, colIndex: int}, to: {rowIndex: int, colIndex: int}} The range of the selection
297
- * @private
298
- * @experimental Since 1.110
299
337
  * @ui5-restricted sap.m.plugins.CopyProvider
338
+ * @private
300
339
  */
301
- CellSelector.prototype.getSelectionRange = function () {
340
+ CellSelector.prototype.getSelectionRange = function (bIgnore) {
302
341
  if (!this._bSelecting) {
303
342
  return null;
304
343
  }
@@ -312,6 +351,18 @@ sap.ui.define([
312
351
  mSelectionRange.from.colIndex = Math.max(mSelectionRange.from.colIndex, 0);
313
352
  mSelectionRange.to.colIndex = Math.min(mSelectionRange.to.colIndex, iMaxColumnIndex);
314
353
  mSelectionRange.from.rowIndex = Math.max(mSelectionRange.from.rowIndex, 0);
354
+
355
+ if (bIgnore) {
356
+ mSelectionRange.ignoredRows = [];
357
+ const aContexts = this.getSelectedRowContexts();
358
+ aContexts.forEach((oContext, iIndex) => {
359
+ const iRowIndex = mSelectionRange.from.rowIndex + iIndex;
360
+ if (isGroupRow(this._getBinding(), oContext, iRowIndex)) {
361
+ mSelectionRange.ignoredRows.push(iRowIndex);
362
+ }
363
+ });
364
+ }
365
+
315
366
  return mSelectionRange;
316
367
  };
317
368
 
@@ -321,7 +372,6 @@ sap.ui.define([
321
372
  * Note: This method is subject to change.
322
373
  * @returns {sap.ui.model.Context[]} The binding context of selected rows
323
374
  * @private
324
- * @experimental Since 1.110
325
375
  * @ui5-restricted sap.m.plugins.CopyProvider
326
376
  */
327
377
  CellSelector.prototype.getSelectedRowContexts = function () {
@@ -330,7 +380,51 @@ sap.ui.define([
330
380
  return [];
331
381
  }
332
382
 
333
- return this.getConfig("rowContexts", this.getControl(), mSelectionRange.from.rowIndex, mSelectionRange.to.rowIndex, this.getRangeLimit());
383
+ return this.getConfig("getSelectedRowContexts", this.getControl(), mSelectionRange.from.rowIndex, mSelectionRange.to.rowIndex, this.getRangeLimit());
384
+ };
385
+
386
+ /**
387
+ * Returns the selected cells separated into the selected rows and columns.
388
+ *
389
+ * Example:
390
+ * If the cells from (0, 0) to (2, 4) are selected, this method will return the following object:
391
+ * <pre>
392
+ * {
393
+ * rows: [Row0_Context, Row1_Context, Row2_Context],
394
+ * columns: [Column0, Column1, Column2, Column3, Column4]
395
+ * }
396
+ * </pre>
397
+ *
398
+ * <b>Note:</b> The content of the <code>rows</code> and <code>columns</code> depends on the owner control.
399
+ * The type of the column that is returned depends on the table type for which the plugin is used (for example, <code>sap.ui.table.Column</code> for <code>sap.ui.table.Table</code>).
400
+ *
401
+ * @param {boolean} bIgnore Ignores group headers from selection
402
+ * @returns {sap.m.plugins.CellSelector.Selection} An object containing the selected cells separated into rows and columns
403
+ * @private
404
+ * @ui5-restricted sap.fe, sap.suite.ui.generic.template
405
+ */
406
+ CellSelector.prototype.getSelection = function(bIgnore) {
407
+ var mSelectionRange = this.getSelectionRange();
408
+ if (!mSelectionRange) {
409
+ return {rows: [], columns: []};
410
+ }
411
+
412
+ var aSelection = this.getConfig("getSelectedRowContexts", this.getControl(), mSelectionRange.from.rowIndex, mSelectionRange.to.rowIndex, this.getRangeLimit());
413
+ if (bIgnore) {
414
+ aSelection = aSelection.filter((oContext, iIndex) => !isGroupRow(this._getBinding(), oContext, iIndex + mSelectionRange.from.rowIndex));
415
+ }
416
+
417
+ var aSelectedColumns = this.getConfig("getVisibleColumns", this.getControl()).slice(mSelectionRange.from.colIndex, mSelectionRange.to.colIndex + 1);
418
+ if (this.getControl().getParent().isA("sap.ui.mdc.Table")) {
419
+ aSelectedColumns = aSelectedColumns.map(function(oSelectedColumn) {
420
+ return Element.getElementById(oSelectedColumn.getId().replace(/\-innerColumn$/, ""));
421
+ });
422
+ }
423
+
424
+ return {
425
+ rows: aSelection,
426
+ columns: aSelectedColumns
427
+ };
334
428
  };
335
429
 
336
430
  CellSelector.prototype._onsaparrowmodifiers = function(oEvent, sDirectionType, iRowDiff, iColDiff) {
@@ -392,11 +486,11 @@ sap.ui.define([
392
486
 
393
487
  // If clicked cell (=starting cell) is equal to currently hovered cell, don't do anything
394
488
  var oInfo = this.getConfig("getCellInfo", this.getControl(), oSelectableCell);
395
- if (this._mClickedCell
396
- && oInfo.rowIndex == this._mClickedCell.rowIndex
397
- && oInfo.colIndex == this._mClickedCell.colIndex) {
489
+ if (oInfo.rowIndex == this._oPreviousCell?.rowIndex && oInfo.colIndex == this._oPreviousCell?.colIndex) {
490
+ // If currently hovered cell is the same as previous cell, nothing needs to be done.
398
491
  return;
399
492
  }
493
+ this._oPreviousCell = oInfo;
400
494
 
401
495
  // Remove text selection during mouse cell selection
402
496
  window.getSelection().removeAllRanges();
@@ -593,13 +687,11 @@ sap.ui.define([
593
687
  * @param {int} mTo.colIndex column index
594
688
  * @private
595
689
  */
596
- CellSelector.prototype._selectCells = function (mFrom, mTo, mFocus) {
690
+ CellSelector.prototype._selectCells = function (mFrom, mTo) {
597
691
  if (!this._bSelecting) {
598
692
  return;
599
693
  }
600
694
 
601
- this._clearSelection();
602
-
603
695
  mFrom = mFrom ? mFrom : this._oSession.mSource;
604
696
  mTo = mTo ? mTo : this._oSession.mTarget;
605
697
  var mBounds = this._getNormalizedBounds(mFrom, mTo);
@@ -610,8 +702,11 @@ sap.ui.define([
610
702
 
611
703
  this._drawSelection(mBounds);
612
704
 
613
- this._oSession.mSource = mFrom;
614
- this._oSession.mTarget = mTo;
705
+ if (!deepEqual(this._oSession.mSource, mFrom) || !deepEqual(this._oSession.mTarget, mTo)) {
706
+ this._oSession.mSource = mFrom;
707
+ this._oSession.mTarget = mTo;
708
+ this._onSelectionChange();
709
+ }
615
710
  };
616
711
 
617
712
  /**
@@ -626,6 +721,8 @@ sap.ui.define([
626
721
  return;
627
722
  }
628
723
 
724
+ this._clearSelection();
725
+
629
726
  this._oSession.cellRefs = [];
630
727
  for (var iRow = mBounds.from.rowIndex; iRow <= mBounds.to.rowIndex; iRow++) {
631
728
  for (var iCol = mBounds.from.colIndex; iCol <= mBounds.to.colIndex; iCol++) {
@@ -761,8 +858,12 @@ sap.ui.define([
761
858
  CellSelector.prototype.removeSelection = function () {
762
859
  this._clearSelection();
763
860
 
861
+ const bSelectionChange = this._oSession?.mSource || this._oSession?.mTarget;
764
862
  this._bSelecting = false;
765
863
  this._oSession = { cellRefs: [] };
864
+ if (bSelectionChange) {
865
+ this._onSelectionChange();
866
+ }
766
867
  };
767
868
 
768
869
  /**
@@ -798,10 +899,22 @@ sap.ui.define([
798
899
  return !oEvent.isMarked?.() && this.getConfig("isSupported", this.getControl());
799
900
  };
800
901
 
902
+ CellSelector.prototype._getBinding = function() {
903
+ return this.getConfig("getBinding", this.getControl());
904
+ };
905
+
801
906
  function isCell(oTarget, sCell) {
802
907
  return oTarget.classList.contains(sCell);
803
908
  }
804
909
 
910
+ function isGroupRow(oBinding, oContext, iIndex) {
911
+ const oRowContext = oBinding?.getNodeByIndex?.(iIndex) ?? oContext;
912
+ if (oBinding?.nodeHasChildren) {
913
+ return oBinding.nodeHasChildren(oRowContext);
914
+ }
915
+ return !(oRowContext.getProperty("@ui5.node.isExpanded") === undefined);
916
+ }
917
+
805
918
  /**
806
919
  * Check if the given key combination applies to the event.
807
920
  * @param {sap.ui.base.Event} oEvent event instance
@@ -872,7 +985,7 @@ sap.ui.define([
872
985
  });
873
986
  if (oRow) {
874
987
  var oColumn = this.getVisibleColumns(oTable)[mPosition.colIndex];
875
- var oCell = oColumn && oRow.getCells()[mPosition.colIndex];
988
+ var oCell = oColumn && oRow.getCells()[oColumn.getIndex()];
876
989
  if (oCell) {
877
990
  return oCell.$().closest(`.${this.selectableCells}`)[0];
878
991
  }
@@ -903,7 +1016,7 @@ sap.ui.define([
903
1016
  getCellInfo: function (oTable, oTarget) {
904
1017
  return {
905
1018
  rowIndex: Element.closestTo(oTarget, true).getIndex(),
906
- colIndex: this.getVisibleColumns(oTable).indexOf(Core.byId(oTarget.getAttribute("data-sap-ui-colid")))
1019
+ colIndex: this.getVisibleColumns(oTable).indexOf(Element.getElementById(oTarget.getAttribute("data-sap-ui-colid")))
907
1020
  };
908
1021
  },
909
1022
  /**
@@ -929,7 +1042,7 @@ sap.ui.define([
929
1042
  * @param {int} iLimit The range limit
930
1043
  * @returns {sap.ui.model.Context[]} A portion of the row binding contexts
931
1044
  */
932
- rowContexts: function(oTable, iFromIndex, iToIndex, iLimit) {
1045
+ getSelectedRowContexts: function(oTable, iFromIndex, iToIndex, iLimit) {
933
1046
  if (iToIndex == Infinity) {
934
1047
  var iMaxIndex = oTable.getBinding("rows").getAllCurrentContexts().length - 1;
935
1048
  iToIndex = Math.min(iToIndex, iFromIndex + iLimit - 1, iMaxIndex);
@@ -1026,6 +1139,9 @@ sap.ui.define([
1026
1139
  },
1027
1140
  _getSelectionOwner: function(oTable) {
1028
1141
  return PluginBase.getPlugin(oTable, "sap.ui.table.plugins.SelectionPlugin") || oTable;
1142
+ },
1143
+ getBinding: function(oTable) {
1144
+ return oTable.getBinding("rows");
1029
1145
  }
1030
1146
  }
1031
1147
  }, CellSelector);
@@ -6,25 +6,18 @@
6
6
 
7
7
  sap.ui.define([
8
8
  "./PluginBase",
9
- "sap/ui/core/Core",
9
+ "sap/base/i18n/Localization",
10
10
  "sap/ui/core/Element",
11
11
  "sap/ui/core/InvisibleText",
12
12
  "sap/ui/Device",
13
13
  "sap/m/ColumnPopoverActionItem",
14
14
  "sap/m/table/columnmenu/QuickAction",
15
15
  "sap/m/Button",
16
+ "sap/ui/core/Lib",
16
17
  "sap/ui/thirdparty/jquery",
17
- "sap/ui/dom/jquery/Aria" // jQuery Plugin "aria"
18
- ], function(PluginBase,
19
- Core,
20
- Element,
21
- InvisibleText,
22
- Device,
23
- ColumnPopoverActionItem,
24
- QuickAction,
25
- Button,
26
- jQuery
27
- ) {
18
+ // jQuery Plugin "aria"
19
+ "sap/ui/dom/jquery/Aria"
20
+ ], function(PluginBase, Localization, Element, InvisibleText, Device, ColumnPopoverActionItem, QuickAction, Button, Library, jQuery) {
28
21
  "use strict";
29
22
 
30
23
  /**
@@ -40,11 +33,12 @@ sap.ui.define([
40
33
  *
41
34
  * @extends sap.ui.core.Element
42
35
  * @author SAP SE
43
- * @version 1.120.6
36
+ * @version 1.121.0
44
37
  *
45
38
  * @public
46
39
  * @since 1.91
47
40
  * @alias sap.m.plugins.ColumnResizer
41
+ * @borrows sap.m.plugins.PluginBase.findOn as findOn
48
42
  */
49
43
  var ColumnResizer = PluginBase.extend("sap.m.plugins.ColumnResizer", /** @lends sap.m.plugins.ColumnResizer.prototype */ { metadata: {
50
44
  library: "sap.m",
@@ -75,12 +69,13 @@ sap.ui.define([
75
69
  var oSession = {};
76
70
  var bResizing = false;
77
71
  var CSS_CLASS = "sapMPluginsColumnResizer";
78
- var bRTL = Core.getConfiguration().getRTL();
72
+ var bRTL = Localization.getRTL();
79
73
  var sBeginDirection = bRTL ? "right" : "left";
80
74
  var sEndDirection = bRTL ? "left" : "right";
81
75
  var iDirectionFactor = bRTL ? -1 : 1;
82
76
 
83
- ColumnResizer.getPlugin = PluginBase.getPlugin;
77
+ //TBD Remove the ColumnResizer.getPlugin part when usages (SmartTable) are cleaned up and use findOn instead.
78
+ ColumnResizer.findOn = ColumnResizer.getPlugin = PluginBase.findOn;
84
79
 
85
80
  ColumnResizer.prototype.init = function() {
86
81
  this._iHoveredColumnIndex = -1;
@@ -516,7 +511,7 @@ sap.ui.define([
516
511
 
517
512
  return new QuickAction({
518
513
  content: new Button({
519
- text: Core.getLibraryResourceBundle("sap.m").getText("table.COLUMNMENU_RESIZE"),
514
+ text: Library.getResourceBundleFor("sap.m").getText("table.COLUMNMENU_RESIZE"),
520
515
  press: function() {
521
516
  oColumnMenu.close();
522
517
  this.startResizing(oColumn.getDomRef());
@@ -538,7 +533,7 @@ sap.ui.define([
538
533
  }
539
534
 
540
535
  return new ColumnPopoverActionItem({
541
- text: Core.getLibraryResourceBundle("sap.m").getText("COLUMNRESIZER_RESIZE_BUTTON"),
536
+ text: Library.getResourceBundleFor("sap.m").getText("COLUMNRESIZER_RESIZE_BUTTON"),
542
537
  icon: "sap-icon://resize-horizontal",
543
538
  press: this.startResizing.bind(this, oColumn.getDomRef())
544
539
  });
@@ -0,0 +1,155 @@
1
+ /*
2
+ * OpenUI5
3
+ * (c) Copyright 2009-2024 SAP SE or an SAP affiliate company.
4
+ * Licensed under the Apache License, Version 2.0 - see LICENSE.txt.
5
+ */
6
+ sap.ui.define([
7
+ "sap/ui/core/Element",
8
+ "./PluginBase",
9
+ "../library",
10
+ "sap/ui/base/ManagedObjectObserver"
11
+ ], function(
12
+ Element,
13
+ PluginBase,
14
+ library,
15
+ ManagedObjectObserver
16
+ ) {
17
+
18
+ "use strict";
19
+
20
+ const ContextMenuScope = library.plugins.ContextMenuScope;
21
+ /**
22
+ * Constructs an instance of sap.m.plugins.ContextMenuSetting
23
+ *
24
+ * @class Provides configuration options and an extended behavior for the context menu that is applied to the related control.
25
+ * @extends sap.ui.core.Element
26
+ * @author SAP SE
27
+ * @version 1.121.0
28
+ * @public
29
+ * @since 1.121
30
+ * @alias sap.m.plugins.ContextMenuSetting
31
+ * @borrows sap.m.plugins.PluginBase.findOn as findOn
32
+ */
33
+ const ContextMenuSetting = PluginBase.extend("sap.m.plugins.ContextMenuSetting", {metadata: {
34
+ library: "sap.m",
35
+ properties: {
36
+
37
+ /**
38
+ * Defines the scope of the context menu actions.
39
+ *
40
+ * The scope of the context menu is visually represented to the user by providing a clear indication of the affected items.
41
+ * The visual cues help users understand the potential impact of their actions.
42
+ *
43
+ * <b>Note:</b> The scope visualization is only supported if a <code>sap.m.Menu</code> is used as context menu.
44
+ */
45
+ scope: {type: "sap.m.plugins.ContextMenuScope", group: "Behavior", defaultValue: ContextMenuScope.Default}
46
+ },
47
+ events: {}
48
+ }});
49
+
50
+ ContextMenuSetting.findOn = PluginBase.findOn;
51
+
52
+ ContextMenuSetting.prototype.init = function(oControl) {
53
+ this._oObserver = new ManagedObjectObserver(this._observeChanges.bind(this));
54
+ };
55
+
56
+ ContextMenuSetting.prototype.exit = function() {
57
+ this._oObserver.destroy();
58
+ this._oObserver = null;
59
+ };
60
+
61
+ ContextMenuSetting.prototype._observeChanges = function(mChange) {
62
+ if (mChange.mutation == "insert") {
63
+ this._monkeypatch(mChange.child);
64
+ } else {
65
+ this._cleanupMonkeypatch(mChange.child);
66
+ }
67
+ };
68
+
69
+ /**
70
+ * Overrides the original openAsContextMenu
71
+ *
72
+ * @param {sap.ui.core.IContextMenu} oMenu Context Menu.
73
+ */
74
+ ContextMenuSetting.prototype._monkeypatch = function(oMenu) {
75
+ if (!oMenu || !oMenu.isA("sap.m.Menu")) {
76
+ return;
77
+ }
78
+
79
+ const that = this;
80
+ this._original_openAsContextMenu = oMenu.openAsContextMenu;
81
+
82
+ oMenu.openAsContextMenu = function(oEvent, vActiveItem) {
83
+ if (that.getScope() !== ContextMenuScope.Selection) {
84
+ return that._original_openAsContextMenu.apply(this, arguments);
85
+ }
86
+
87
+ const oControl = that.getControl();
88
+ const aItems = that.getConfig("items", oControl);
89
+
90
+ if (vActiveItem instanceof HTMLElement) {
91
+ vActiveItem = Element.closestTo(vActiveItem, true);
92
+ }
93
+ const bActiveItemSelected = that.getConfig("isItemSelected", oControl, vActiveItem);
94
+
95
+ aItems.forEach((oItem) => {
96
+ const bItemSelected = that.getConfig("isItemSelected", oControl, oItem);
97
+ if (oItem !== vActiveItem && !(bActiveItemSelected && bItemSelected)) {
98
+ oItem.addStyleClass("sapMContextMenuSettingContentOpacity");
99
+ }
100
+ });
101
+
102
+ this.attachEventOnce("closed", () => {
103
+ aItems.forEach((oItem) => {
104
+ oItem.removeStyleClass("sapMContextMenuSettingContentOpacity");
105
+ });
106
+ });
107
+ return that._original_openAsContextMenu.apply(this, arguments);
108
+ };
109
+ };
110
+
111
+ ContextMenuSetting.prototype._cleanupMonkeypatch = function(oMenu) {
112
+ if (oMenu && this._original_openAsContextMenu) {
113
+ oMenu.openAsContextMenu = this._original_openAsContextMenu;
114
+ this._original_openAsContextMenu = null;
115
+ }
116
+ };
117
+
118
+ ContextMenuSetting.prototype.onActivate = function(oControl) {
119
+ const sAggr = this.getConfig("contextMenuAggregation");
120
+ this._monkeypatch(oControl.getAggregation(sAggr));
121
+ this._oObserver.observe(oControl, {aggregations: [sAggr]});
122
+ };
123
+
124
+ ContextMenuSetting.prototype.onDeactivate = function(oControl) {
125
+ const sAggr = this.getConfig("contextMenuAggregation");
126
+ this._cleanupMonkeypatch(oControl.getAggregation(sAggr));
127
+ this._oObserver?.unobserve(oControl, {aggregations: [sAggr]});
128
+ };
129
+
130
+ /**
131
+ * Plugin-specific control configurations.
132
+ */
133
+ PluginBase.setConfigs({
134
+ "sap.m.ListBase": {
135
+ items: function(oList) {
136
+ return oList.getItems();
137
+ },
138
+ isItemSelected: function(oTable, oItem) {
139
+ return oItem.getSelected();
140
+ },
141
+ contextMenuAggregation: "contextMenu"
142
+ },
143
+ "sap.ui.table.Table": {
144
+ items: function(oTable) {
145
+ return oTable.getRows();
146
+ },
147
+ isItemSelected: function(oTable, oItem) {
148
+ return oTable._getSelectionPlugin().isSelected(oItem);
149
+ },
150
+ contextMenuAggregation: "contextMenu"
151
+ }
152
+ }, ContextMenuSetting);
153
+
154
+ return ContextMenuSetting;
155
+ });