@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
@@ -6,6 +6,8 @@
6
6
 
7
7
  // Provides control sap.m.SinglePlanningCalendarMonthGrid.
8
8
  sap.ui.define([
9
+ 'sap/base/i18n/Formatting',
10
+ 'sap/ui/core/Element',
9
11
  'sap/ui/core/Control',
10
12
  'sap/ui/core/format/DateFormat',
11
13
  'sap/ui/unified/calendar/CalendarDate',
@@ -27,13 +29,13 @@ sap.ui.define([
27
29
  'sap/ui/thirdparty/jquery',
28
30
  'sap/ui/core/InvisibleMessage',
29
31
  'sap/ui/core/library',
30
- "sap/ui/core/date/CalendarWeekNumbering",
31
- "sap/ui/core/date/CalendarUtils",
32
- "sap/ui/core/Configuration",
33
- "sap/ui/core/date/UI5Date",
34
- "sap/ui/unified/DateRange"
32
+ 'sap/ui/core/date/CalendarUtils',
33
+ 'sap/ui/core/date/UI5Date',
34
+ 'sap/ui/unified/DateRange'
35
35
  ],
36
36
  function (
37
+ Formatting,
38
+ Element,
37
39
  Control,
38
40
  DateFormat,
39
41
  CalendarDate,
@@ -55,9 +57,7 @@ sap.ui.define([
55
57
  jQuery,
56
58
  InvisibleMessage,
57
59
  coreLibrary,
58
- CalendarWeekNumbering,
59
60
  CalendarDateUtils,
60
- Configuration,
61
61
  UI5Date,
62
62
  DateRange
63
63
  ) {
@@ -97,7 +97,7 @@ sap.ui.define([
97
97
  * @extends sap.ui.core.Control
98
98
  *
99
99
  * @author SAP SE
100
- * @version 1.120.6
100
+ * @version 1.121.0
101
101
  *
102
102
  * @constructor
103
103
  * @private
@@ -155,9 +155,37 @@ sap.ui.define([
155
155
  appointments: { type: "sap.ui.unified.CalendarAppointment", multiple: true, singularName: "appointment", dnd: { draggable: true }},
156
156
 
157
157
  /**
158
- * The special days in the header visualized as a date range with type.
158
+ * Special days in the header visualized as a date range with type.
159
+ *
160
+ * <b>Note:</b> In case there are multiple <code>sap.ui.unified.DateTypeRange</code> instances given for a single date,
161
+ * only the first <code>sap.ui.unified.DateTypeRange</code> instance will be used.
162
+ * For example, using the following sample, the 1st of November will be displayed as a working day of type "Type10":
163
+ *
164
+ *
165
+ * <pre>
166
+ * new DateTypeRange({
167
+ * startDate: UI5Date.getInstance(2023, 10, 1),
168
+ * type: CalendarDayType.Type10,
169
+ * }),
170
+ * new DateTypeRange({
171
+ * startDate: UI5Date.getInstance(2023, 10, 1),
172
+ * type: CalendarDayType.NonWorking
173
+ * })
174
+ * </pre>
175
+ *
176
+ * If you want the first of November to be displayed as a non-working day and also as "Type10," the following should be done:
177
+ * <pre>
178
+ * new DateTypeRange({
179
+ * startDate: UI5Date.getInstance(2023, 10, 1),
180
+ * type: CalendarDayType.Type10,
181
+ * secondaryType: CalendarDayType.NonWorking
182
+ * })
183
+ * </pre>
184
+ *
185
+ * You can use only one of the following types for a given date: <code>sap.ui.unified.CalendarDayType.NonWorking</code>,
186
+ * <code>sap.ui.unified.CalendarDayType.Working</code> or <code>sap.ui.unified.CalendarDayType.None</code>.
187
+ * Assigning more than one of these values in combination for the same date will lead to unpredictable results.
159
188
  *
160
- * <b>Note:</b> If one day is assigned to more than one type, only the first type is used.
161
189
  */
162
190
  specialDates: { type: "sap.ui.unified.DateTypeRange", multiple: true, singularName: "specialDate" },
163
191
 
@@ -261,20 +289,75 @@ sap.ui.define([
261
289
  });
262
290
 
263
291
  SinglePlanningCalendarMonthGrid.prototype.init = function() {
292
+ const iCellsInView = 42;
293
+
264
294
  this._aLinks = [];
265
295
  this._handleMorePress = this._handleMorePress.bind(this);
266
296
  this._oDateFormat = DateFormat.getDateTimeInstance({ pattern: "YYYYMMdd" });
267
297
  this._oFormatAriaApp = DateFormat.getDateTimeInstance({
268
- pattern: "EEEE dd/MM/YYYY 'at' " + this._getCoreLocaleData().getTimePattern("medium")
298
+ pattern: "EEEE, MMMM d, yyyy 'at' " + this._getCoreLocaleData().getTimePattern("medium")
269
299
  });
270
300
  this._oFormatAriaFullDayCell = DateFormat.getDateTimeInstance({
271
- pattern: "EEEE dd/MM/YYYY"
301
+ pattern: "EEEE, MMMM d, yyyy"
272
302
  });
273
303
 
274
304
  this.setStartDate(UI5Date.getInstance());
275
305
  this._configureAppointmentsDragAndDrop();
276
306
 
277
307
  this._oUnifiedRB = sap.ui.getCore().getLibraryResourceBundle("sap.ui.unified");
308
+
309
+ this._aMoreCountPerDay = [];
310
+ this._aMoreCountPerDay.length = iCellsInView;
311
+ this._aMoreCountPerDay.fill(0);
312
+ };
313
+
314
+ SinglePlanningCalendarMonthGrid.prototype._getDateColumn = function(aCells, oNextDate, iColumns) {
315
+ let iCol = 0;
316
+
317
+ for (let i = 0; i < aCells.length; i++) {
318
+ if (aCells[i] && oNextDate.isSame(aCells[i])) {
319
+ break;
320
+ }
321
+ iCol++;
322
+
323
+ if (iCol === iColumns) {
324
+ iCol = 0;
325
+ }
326
+ }
327
+
328
+ return iCol;
329
+ };
330
+
331
+
332
+ SinglePlanningCalendarMonthGrid.prototype._getDateRow = function(aCells, oDate, iColumns) {
333
+ let iRow = 0;
334
+
335
+ for (let i = 0; i < aCells.length; i++) {
336
+ if (aCells[i] && oDate.isSame(aCells[i])) {
337
+ iRow = Math.floor(i / iColumns);
338
+ break;
339
+ }
340
+ iRow += 1;
341
+
342
+ if (iRow === iColumns - 1) {
343
+ iRow = 0;
344
+ }
345
+ }
346
+
347
+ return iRow;
348
+ };
349
+
350
+ SinglePlanningCalendarMonthGrid.prototype._getRowEndIndex = function (aDays, iCellIndex, iColumns) {
351
+ let iRowEndIndex = 0;
352
+
353
+ for (let i = 1; i < aDays.length; i++) {
354
+ if (iCellIndex <= i * iColumns - 1) {
355
+ iRowEndIndex = i * iColumns - 1;
356
+ break;
357
+ }
358
+ }
359
+
360
+ return iRowEndIndex;
278
361
  };
279
362
 
280
363
  SinglePlanningCalendarMonthGrid.prototype.exit = function() {
@@ -293,8 +376,10 @@ sap.ui.define([
293
376
  };
294
377
 
295
378
  SinglePlanningCalendarMonthGrid.prototype.onBeforeRendering = function() {
296
- var oStartDate = this.getStartDate();
379
+ const oStartDate = this.getStartDate(),
380
+ aCells = this._getCells();
297
381
 
382
+ this._iStartDayOffset = aCells.indexOf(aCells.find((day) => day.getDate() === 1));
298
383
  this._oAppointmentsToRender = this._calculateAppointmentsNodes(oStartDate);
299
384
  this._createAppointmentsDndPlaceholders(oStartDate);
300
385
  this._oInvisibleMessage = InvisibleMessage.getInstance();
@@ -329,6 +414,7 @@ sap.ui.define([
329
414
 
330
415
  SinglePlanningCalendarMonthGrid.prototype.onAfterRendering = function() {
331
416
  this._initItemNavigation();
417
+ this._aMoreCountPerDay.fill(0);
332
418
  };
333
419
 
334
420
  SinglePlanningCalendarMonthGrid.prototype._getColumns = function() {
@@ -362,7 +448,8 @@ sap.ui.define([
362
448
  end: app.end,
363
449
  len: app.len,
364
450
  level: app.level,
365
- width: app.width
451
+ width: app.width,
452
+ _nextDay: app._nextDay
366
453
  };
367
454
 
368
455
  newApp.width -= CalendarUtils._daysBetween(oDate, app.start);
@@ -427,7 +514,8 @@ sap.ui.define([
427
514
 
428
515
  if (oEvent.which === KeyCodes.SPACE || oEvent.which === KeyCodes.ENTER || oEvent.which === KeyCodes.ARROW_UP ||
429
516
  oEvent.which === KeyCodes.ARROW_DOWN || oEvent.which === KeyCodes.ARROW_LEFT || oEvent.which === KeyCodes.ARROW_RIGHT) {
430
- if (oEvent.which === KeyCodes.SPACE && !oEvent.shiftKey && bMultiDateSelection) {
517
+ if (oEvent.which === KeyCodes.SPACE && !oEvent.shiftKey) {
518
+ this.removeAllSelectedDates();
431
519
  this._bMultiDateSelect = true;
432
520
  } else if (oEvent.which === KeyCodes.SPACE && oEvent.shiftKey && bMultiDateSelection) {
433
521
  this._bCurrentWeekSelection = true;
@@ -451,18 +539,20 @@ sap.ui.define([
451
539
  }
452
540
  };
453
541
 
454
- SinglePlanningCalendarMonthGrid.prototype._findSrcControl = function (oEvent) {
542
+ SinglePlanningCalendarMonthGrid.prototype._isSelectAppointment = function (oEvent) {
543
+ return oEvent.target.classList.contains("sapUiCalendarRowApps") || (oEvent.target.parentElement && oEvent.target.parentElement.classList.contains("sapUiCalendarRowApps"));
544
+ };
545
+
546
+ SinglePlanningCalendarMonthGrid.prototype._findSelectedAppointment = function (oTarget) {
455
547
  // data-sap-ui-related - This is a relation to appointment object.
456
548
  // This is the connection between the DOM Element and the Object representing an appointment.
457
- var oTargetElement = oEvent.target,
458
- oTargetsParentElement = oTargetElement.parentElement,
549
+ var oParentElement = oTarget.parentElement,
459
550
  sAppointmentId;
460
- if (!oTargetsParentElement || oTargetsParentElement.classList.contains("sapMSPCMonthDays")) {
461
- return oEvent.srcControl;
462
- } else if (oTargetsParentElement.classList.contains("sapUiCalendarRowApps")) {
463
- sAppointmentId = oTargetsParentElement.getAttribute("data-sap-ui-related") || oTargetsParentElement.id;
551
+
552
+ if (oParentElement.classList.contains("sapUiCalendarRowApps")) {
553
+ sAppointmentId = oParentElement.getAttribute("data-sap-ui-related") || oParentElement.id;
464
554
  } else {
465
- sAppointmentId = oTargetElement.getAttribute("data-sap-ui-related") || oTargetElement.id;
555
+ sAppointmentId = oTarget.getAttribute("data-sap-ui-related") || oTarget.id;
466
556
  }
467
557
 
468
558
  // finding the appointment
@@ -471,6 +561,30 @@ sap.ui.define([
471
561
  });
472
562
  };
473
563
 
564
+ SinglePlanningCalendarMonthGrid.prototype._findSelectedRow = function (oEvent) {
565
+ var oSelectedCell = this._findSelectCell(oEvent.target),
566
+ oRow = oSelectedCell.parentElement;
567
+ if (!oRow || oRow.classList.contains("sapMSPCMonthDays")) {
568
+ return oEvent.srcControl;
569
+ }
570
+ };
571
+
572
+ SinglePlanningCalendarMonthGrid.prototype._findSelectCell = function (target) {
573
+ if (target.classList.contains("sapMSPCMonthDayNumber") || target.classList.contains("specialDateIndicator")){
574
+ return target.parentElement;
575
+ }
576
+ return target;
577
+ };
578
+
579
+ SinglePlanningCalendarMonthGrid.prototype._findSrcControl = function (oEvent) {
580
+ var oTarget = oEvent.target;
581
+
582
+ if (this._isSelectAppointment(oEvent)) {
583
+ return this._findSelectedAppointment(oTarget);
584
+ }
585
+ return this._findSelectedRow(oEvent);
586
+ };
587
+
474
588
  SinglePlanningCalendarMonthGrid.prototype._handelMultiDateSelection = function (oTarget, oStartDate, oEndDate, oEvent) {
475
589
 
476
590
  if (this._bMultiDateSelect) {
@@ -496,7 +610,7 @@ sap.ui.define([
496
610
 
497
611
  } else if (this._bCurrentWeekSelection && SinglePlanningCalendarSelectionMode.MultiSelect === this.getDateSelectionMode()){
498
612
  var iStartDate = oStartDate.getDate(),
499
- oWeekConfigurationValues = CalendarDateUtils.getWeekConfigurationValues(this.getCalendarWeekNumbering(), new Locale(Configuration.getFormatSettings().getFormatLocale().toString())),
613
+ oWeekConfigurationValues = CalendarDateUtils.getWeekConfigurationValues(this.getCalendarWeekNumbering(), new Locale(new Locale(Formatting.getLanguageTag()).toString())),
500
614
  iAPIFirstDayOfWeek = this.getFirstDayOfWeek(),
501
615
  iFirstDayOfWeek,
502
616
  iWeekStartDate;
@@ -531,7 +645,8 @@ sap.ui.define([
531
645
  SinglePlanningCalendarMonthGrid.prototype._fireSelectionEvent = function (oEvent) {
532
646
  var oSrcControl = this._findSrcControl(oEvent),
533
647
  oTarget = oEvent.target,
534
- bIsCell = oTarget && oTarget.classList.contains("sapMSPCMonthDay"),
648
+ oSelectedCell = this._findSelectCell(oEvent.target),
649
+ bIsCell = oTarget && !!oSelectedCell,
535
650
  bIsLink = oTarget && oTarget.classList.contains("sapMLnk"),
536
651
  bWeekNumberSelect = oTarget && oTarget.classList.contains("sapMSPCMonthWeekNumber"),
537
652
  oFirstSiblingElement = bWeekNumberSelect && oEvent.originalEvent.target.nextSibling.children[0],
@@ -540,7 +655,7 @@ sap.ui.define([
540
655
  oEndDate;
541
656
 
542
657
  if (oSrcControl && oSrcControl.isA("sap.m.SinglePlanningCalendarMonthGrid") && bIsCell && !bIsLink) {
543
- iTimestamp = parseInt(oTarget.getAttribute("sap-ui-date"));
658
+ iTimestamp = parseInt(oSelectedCell.getAttribute("sap-ui-date"));
544
659
 
545
660
  oStartDate = UI5Date.getInstance(iTimestamp);
546
661
  oStartDate = UI5Date.getInstance(oStartDate.getUTCFullYear(), oStartDate.getUTCMonth(), oStartDate.getUTCDate());
@@ -548,7 +663,7 @@ sap.ui.define([
548
663
  oEndDate = UI5Date.getInstance(oStartDate);
549
664
  oEndDate.setDate(oEndDate.getDate() + 1);
550
665
  if (this._bMultiDateSelect || this._bCurrentWeekSelection || this._bMultiDateSelectWithArrow) {
551
- this._handelMultiDateSelection(oTarget, oStartDate, oEndDate, oEvent);
666
+ this._handelMultiDateSelection(oSelectedCell, oStartDate, oEndDate, oEvent);
552
667
  this.fireEvent("selectDate", {startDate: oStartDate, endDate: oEndDate});
553
668
  }
554
669
 
@@ -567,7 +682,7 @@ sap.ui.define([
567
682
 
568
683
  this._bCurrentWeekSelection = true;
569
684
  this._bMultiDateSelect = false;
570
- this._handelMultiDateSelection(oTarget, oStartDate, oEndDate, oEvent);
685
+ this._handelMultiDateSelection(oSelectedCell, oStartDate, oEndDate, oEvent);
571
686
  this.fireEvent("selectDate", {startDate: oStartDate, endDate: oEndDate});
572
687
 
573
688
  } else if (oSrcControl && oSrcControl.isA("sap.ui.unified.CalendarAppointment")) {
@@ -696,7 +811,7 @@ sap.ui.define([
696
811
  var aDays = this._getVisibleDays(this.getStartDate()),
697
812
  iColumns = this._getColumns(),
698
813
  aResult = [],
699
- sLocale = Core.getConfiguration().getFormatLocale().toString();
814
+ sLocale = new Locale(Formatting.getLanguageTag()).toString();
700
815
 
701
816
  for (var i = 0; i < this._getRows(); i++) {
702
817
  var oDateFormat = DateFormat.getInstance({pattern: "w", calendarType: "Gregorian", calendarWeekNumbering: this.getCalendarWeekNumbering()}, new Locale(sLocale));
@@ -754,7 +869,7 @@ sap.ui.define([
754
869
  if (this.getFirstDayOfWeek() < 0 || this.getFirstDayOfWeek() > 6) {
755
870
  oWeekConfigurationValues = CalendarDateUtils.getWeekConfigurationValues(
756
871
  this.getCalendarWeekNumbering(),
757
- new Locale(Configuration.getFormatSettings().getFormatLocale().toString())
872
+ new Locale(new Locale(Formatting.getLanguageTag()).toString())
758
873
  );
759
874
 
760
875
  if (oWeekConfigurationValues) {
@@ -801,27 +916,33 @@ sap.ui.define([
801
916
  && CalendarUtils._isBetween(oLastVisibleDay, oFirstVisibleDay, app.end,true)); // ...and ends after the view port
802
917
  // Sort by start date
803
918
  }).sort(function compare(a, b) {
804
- return a.start.valueOf() - b.start.valueOf();
919
+ return a.data.getStartDate().getTime() - b.data.getStartDate().getTime();
805
920
  }),
806
921
  // Array of taken levels per visible day
807
922
  aVisibleDaysLevels = [],
923
+ aDays = this._getVisibleDays(oStartDate),
924
+ iMaxAppointmentsRendered = this._getMaxAppointments(),
925
+ iNextFreeDayIndex,
926
+ iNextFreeLevelIndex,
927
+ aFreeDayAndLevelIndexes,
928
+ bNextLevelIsWithinBounds,
929
+ bHasSpaceToRender,
808
930
  oApp,
809
931
  iAppointmentStartIndex,
932
+ iAppStartIndex,
810
933
  iAppointmentEndIndex,
811
- iFirstFreeIndex,
812
- i,
813
- j,
814
- k;
934
+ iFirstFreeIndex;
815
935
 
816
- for (i = 0; i < aVisibleDays.length; i++) {
936
+ for (let i = 0; i < aVisibleDays.length; i++) {
817
937
  aVisibleDaysLevels.push([]);
818
938
  }
819
939
 
820
940
  // Each appointment gets its width and level
821
- for (i = 0; i < aApps.length; i++) {
941
+ for (let i = 0; i < aApps.length; i++) {
822
942
  oApp = aApps[i];
823
943
  iAppointmentStartIndex = CalendarUtils._daysBetween(oApp.start, aVisibleDays[0]);
824
944
  iAppointmentEndIndex = iAppointmentStartIndex + oApp.len;
945
+ iAppStartIndex = this._findStartDateIndex(aDays, oApp, this._iStartDayOffset);
825
946
 
826
947
  // If appointment is out of bounds, set it in bounds
827
948
  iAppointmentStartIndex = iAppointmentStartIndex > 0 ? iAppointmentStartIndex : 0;
@@ -836,15 +957,55 @@ sap.ui.define([
836
957
  }
837
958
 
838
959
  // Rendered position of appointment in day
839
- oApp.level = iFirstFreeIndex;
960
+ aFreeDayAndLevelIndexes = this._findNextFreeDayAndLevel(oApp, aVisibleDaysLevels, iAppointmentStartIndex, iFirstFreeIndex);
961
+ iNextFreeDayIndex = aFreeDayAndLevelIndexes.freeDayIndex;
962
+ iNextFreeLevelIndex = aFreeDayAndLevelIndexes.freeLevelIndex;
963
+ oApp.level = iNextFreeLevelIndex;
964
+ oApp._nextDay = iNextFreeDayIndex;
840
965
 
841
966
  // Adjust the taken levels for all days of the current appointment
842
- for (j = iAppointmentStartIndex; j <= iAppointmentEndIndex; j++) {
843
- aVisibleDaysLevels[j][iFirstFreeIndex] = false;
967
+ if (oApp.len && iNextFreeDayIndex > iAppStartIndex) {
968
+ oApp._overflows = true;
969
+ } else {
970
+ oApp._overflows = false;
971
+ if (oApp._nextDay > -1) {
972
+ oApp._nextDay = iAppointmentStartIndex;
973
+ }
974
+ }
975
+
976
+ if (oApp._nextDay > -1) {
977
+ bHasSpaceToRender = true;
978
+ }
844
979
 
845
- for (k = 0; k < iFirstFreeIndex; k++) {
846
- if (aVisibleDaysLevels[j][k] === undefined) {
847
- aVisibleDaysLevels[j][k] = true;
980
+ if (bHasSpaceToRender && oApp._overflows && oApp.len && oApp.level < iMaxAppointmentsRendered) {
981
+
982
+ oApp._nextDayLevel = iNextFreeLevelIndex;
983
+ oApp._nextDay = iNextFreeDayIndex;
984
+
985
+ if (bHasSpaceToRender) {
986
+ for (let q = 0; q <= oApp.width; q++) {
987
+ bNextLevelIsWithinBounds = iNextFreeDayIndex + q <= iAppointmentEndIndex;
988
+ if (bNextLevelIsWithinBounds) {
989
+ aVisibleDaysLevels[iNextFreeDayIndex + q][iNextFreeLevelIndex] = true;
990
+ }
991
+ }
992
+ }
993
+
994
+ for (let q = this._findStartDateIndex(aDays, oApp, this._iStartDayOffset); q < iNextFreeDayIndex; q++) {
995
+ if (q > -1) {
996
+ this._aMoreCountPerDay[q] += 1;
997
+ }
998
+ }
999
+ } else {
1000
+ aFreeDayAndLevelIndexes = this._findNextFreeDayAndLevel(oApp, aVisibleDaysLevels, iAppointmentStartIndex, iFirstFreeIndex);
1001
+ iFirstFreeIndex = aFreeDayAndLevelIndexes.freeLevelIndex;
1002
+ oApp.level = iFirstFreeIndex;
1003
+
1004
+ for (let j = iAppointmentStartIndex; j <= iAppointmentEndIndex; j++) {
1005
+ aVisibleDaysLevels[j][iFirstFreeIndex] = true;
1006
+
1007
+ if (!oApp._nextDay && oApp._nextDay !== 0 || iFirstFreeIndex >= iMaxAppointmentsRendered - 1) {
1008
+ this._aMoreCountPerDay[j] += 1;
848
1009
  }
849
1010
  }
850
1011
  }
@@ -855,6 +1016,54 @@ sap.ui.define([
855
1016
  return aApps;
856
1017
  };
857
1018
 
1019
+ SinglePlanningCalendarMonthGrid.prototype._findStartDateIndex = function (aDays, oApp) {
1020
+ const oDayInDays = aDays.find(
1021
+ (oDay) => oDay.isSame(oApp.start)
1022
+ );
1023
+
1024
+ return aDays.indexOf(oDayInDays);
1025
+ };
1026
+
1027
+ SinglePlanningCalendarMonthGrid.prototype._findNextFreeDayAndLevel = function (oApp, aVisibleDaysLevels, iAppointmentStartIndex, iDefaultLevel) {
1028
+ const iMaxAppointmentLevels = this._isCompact() ? 3 : 2;
1029
+ let iNextFreeLevelIndex = iDefaultLevel,
1030
+ iNextFreeDayIndex,
1031
+ aDayLevels,
1032
+ bHasFreeFirstOrSecondLevel,
1033
+ bHasFreeThirdLevel,
1034
+ bLevelIsFree;
1035
+
1036
+ for (let i = 0; i < oApp.width; i++) {
1037
+ aDayLevels = aVisibleDaysLevels[iAppointmentStartIndex + i];
1038
+ if (!aDayLevels) {
1039
+ break;
1040
+ }
1041
+ bHasFreeFirstOrSecondLevel = aDayLevels && !aDayLevels[0] || !aDayLevels[1];
1042
+ bHasFreeThirdLevel = aDayLevels && !aDayLevels[2] && this._isCompact();
1043
+
1044
+ if (bHasFreeFirstOrSecondLevel || bHasFreeThirdLevel) {
1045
+ iNextFreeDayIndex = iAppointmentStartIndex + i;
1046
+ for (let j = 0; j < iMaxAppointmentLevels; j++) {
1047
+ bLevelIsFree = !aDayLevels[j];
1048
+
1049
+ if (bLevelIsFree) {
1050
+ iNextFreeDayIndex = iAppointmentStartIndex + i;
1051
+ iNextFreeLevelIndex = j;
1052
+ break;
1053
+ }
1054
+ }
1055
+ break;
1056
+ } else {
1057
+ iNextFreeLevelIndex = aDayLevels.length;
1058
+ }
1059
+ }
1060
+
1061
+ return {
1062
+ freeDayIndex: iNextFreeDayIndex,
1063
+ freeLevelIndex: iNextFreeLevelIndex
1064
+ };
1065
+ };
1066
+
858
1067
  SinglePlanningCalendarMonthGrid.prototype._getMoreCountPerCell = function(iCellIndex) {
859
1068
  var aLevelsForADay = this._aAppsLevelsPerDay[iCellIndex];
860
1069
  var iMaxAppointmentsRendered = this._getMaxAppointments();
@@ -870,9 +1079,11 @@ sap.ui.define([
870
1079
  iMoreCount++;
871
1080
  }
872
1081
  }
1082
+
873
1083
  return iMoreCount;
874
1084
  };
875
1085
 
1086
+
876
1087
  SinglePlanningCalendarMonthGrid.prototype._configureAppointmentsDragAndDrop = function() {
877
1088
  this.addDragDropConfig(new DragDropInfo({
878
1089
  sourceAggregation: "appointments",
@@ -1055,14 +1266,52 @@ sap.ui.define([
1055
1266
  };
1056
1267
 
1057
1268
  SinglePlanningCalendarMonthGrid.prototype._getAppointmentAnnouncementInfo = function(oAppointment) {
1058
- var oUnifiedRB = Core.getLibraryResourceBundle("sap.ui.unified"),
1059
- sStartTime = oUnifiedRB.getText("CALENDAR_START_TIME"),
1060
- sEndTime = oUnifiedRB.getText("CALENDAR_END_TIME"),
1061
- sFormattedStartDate = this._oFormatAriaApp.format(oAppointment.getStartDate()),
1062
- sFormattedEndDate = this._oFormatAriaApp.format(oAppointment.getEndDate()),
1063
- sAppInfo = sStartTime + ": " + sFormattedStartDate + "; " + sEndTime + ": " + sFormattedEndDate;
1064
-
1065
- return sAppInfo + "; " + PlanningCalendarLegend.findLegendItemForItem(Core.byId(this._sLegendId), oAppointment);
1269
+ var oStartDate = oAppointment.getStartDate(),
1270
+ oEndDate = oAppointment.getEndDate(),
1271
+ bFullDay = this._isAllDayAppointment(oStartDate, oEndDate),
1272
+ bSingleDay = this._isSingleDayAppointment(oStartDate, oEndDate),
1273
+ sLegendInfo = PlanningCalendarLegend.findLegendItemForItem(Core.byId(this._sLegendId), oAppointment),
1274
+ sFormattedDate;
1275
+
1276
+ if (bFullDay && bSingleDay) {
1277
+ sFormattedDate = this._oUnifiedRB.getText("CALENDAR_ALL_DAY_INFO", [this._oFormatAriaFullDayCell.format(oStartDate)]);
1278
+ } else if (bFullDay) {
1279
+ sFormattedDate = this._oUnifiedRB.getText( "CALENDAR_APPOINTMENT_INFO", [
1280
+ this._oFormatAriaFullDayCell.format(oStartDate),
1281
+ this._oFormatAriaFullDayCell.format(oEndDate)
1282
+ ]);
1283
+ } else {
1284
+ sFormattedDate = this._oUnifiedRB.getText( "CALENDAR_APPOINTMENT_INFO", [
1285
+ this._oFormatAriaApp.format(oStartDate),
1286
+ this._oFormatAriaApp.format(oEndDate)
1287
+ ]);
1288
+ }
1289
+
1290
+ return sFormattedDate + ", " + sLegendInfo;
1291
+ };
1292
+
1293
+ /**
1294
+ * Returns whether an appointment starts at 00:00 and ends in 00:00 on any day in the future.
1295
+ *
1296
+ * @param {Date|module:sap/ui/core/date/UI5Date} oAppStartDate - Start date of the appointment
1297
+ * @param {Date|module:sap/ui/core/date/UI5Date} oAppEndDate - End date of the appointment
1298
+ * @returns {boolean}
1299
+ * @private
1300
+ */
1301
+ SinglePlanningCalendarMonthGrid.prototype._isAllDayAppointment = function(oAppStartDate, oAppEndDate) {
1302
+ return CalendarUtils._isMidnight(oAppStartDate) && CalendarUtils._isMidnight(oAppEndDate);
1303
+ };
1304
+
1305
+ /**
1306
+ * Returns whether an appointment starts and ends on the same day.
1307
+ *
1308
+ * @param {Date|module:sap/ui/core/date/UI5Date} oAppStartDate - Start date of the appointment
1309
+ * @param {Date|module:sap/ui/core/date/UI5Date} oAppEndDate - End date of the appointment
1310
+ * @returns {boolean}
1311
+ * @private
1312
+ */
1313
+ SinglePlanningCalendarMonthGrid.prototype._isSingleDayAppointment = function(oAppStartDate, oAppEndDate) {
1314
+ return !oAppEndDate || oAppStartDate.getDate() === oAppEndDate.getDate();
1066
1315
  };
1067
1316
 
1068
1317
  SinglePlanningCalendarMonthGrid.prototype._getMaxAppointments = function() {
@@ -1114,19 +1363,24 @@ sap.ui.define([
1114
1363
  };
1115
1364
 
1116
1365
  SinglePlanningCalendarMonthGrid.prototype._isNonWorkingDay = function(oCalendarDate) {
1117
- return this._getSpecialDates().filter(function(oDateRange) {
1118
- return oDateRange.getType() === unifiedLibrary.CalendarDayType.NonWorking;
1119
- }).map(function(oDateRange) {
1120
- return CalendarDate.fromLocalJSDate(oDateRange.getStartDate());
1121
- }).some(function(oDate) {
1122
- return oDate.isSame(oCalendarDate);
1366
+ const aSpecialDates = this._getSpecialDates().filter((oDateRange) => {
1367
+ return oDateRange.getStartDate() && CalendarDate.fromLocalJSDate(oDateRange.getStartDate()).isSame(oCalendarDate);
1123
1368
  });
1369
+ const sType = aSpecialDates.length > 0 && aSpecialDates[0].getType();
1370
+ const sSecondaryType = aSpecialDates.length > 0 && aSpecialDates[0].getSecondaryType();
1371
+ const bNonWorkingWeekend = CalendarUtils._isWeekend(oCalendarDate, this._getCoreLocaleData())
1372
+ && sType !== unifiedLibrary.CalendarDayType.Working
1373
+ && sSecondaryType !== unifiedLibrary.CalendarDayType.Working;
1374
+
1375
+ return sType === unifiedLibrary.CalendarDayType.NonWorking
1376
+ || sSecondaryType === unifiedLibrary.CalendarDayType.NonWorking
1377
+ || bNonWorkingWeekend;
1124
1378
  };
1125
1379
 
1126
- SinglePlanningCalendarMonthGrid.prototype.applyFocusInfo = function() {
1127
- // directly focus appointment part, if there is any selected
1128
- this._sSelectedAppointment && this._sSelectedAppointment.focus();
1129
- return this;
1380
+ SinglePlanningCalendarMonthGrid.prototype.getFocusDomRef = function() {
1381
+ return this._sSelectedAppointment
1382
+ ? this._sSelectedAppointment.getDomRef()
1383
+ : Element.prototype.getFocusDomRef.apply(this, arguments);
1130
1384
  };
1131
1385
 
1132
1386
  return SinglePlanningCalendarMonthGrid;