@openui5/sap.m 1.126.1 → 1.128.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 (510) hide show
  1. package/THIRDPARTY.txt +1 -1
  2. package/package.json +4 -4
  3. package/src/sap/m/.library +1 -1
  4. package/src/sap/m/AccButton.js +1 -1
  5. package/src/sap/m/ActionListItem.js +1 -1
  6. package/src/sap/m/ActionSelect.js +1 -1
  7. package/src/sap/m/ActionSheet.js +1 -1
  8. package/src/sap/m/ActionTile.js +1 -1
  9. package/src/sap/m/ActionTileContent.js +1 -1
  10. package/src/sap/m/AdditionalTextButton.js +1 -1
  11. package/src/sap/m/App.js +1 -1
  12. package/src/sap/m/AssociativeOverflowToolbar.js +1 -1
  13. package/src/sap/m/Avatar.js +1 -1
  14. package/src/sap/m/Bar.js +1 -1
  15. package/src/sap/m/Breadcrumbs.js +7 -13
  16. package/src/sap/m/BusyDialog.js +1 -1
  17. package/src/sap/m/BusyIndicator.js +1 -1
  18. package/src/sap/m/Button.js +1 -1
  19. package/src/sap/m/Carousel.js +3 -2
  20. package/src/sap/m/CarouselLayout.js +1 -1
  21. package/src/sap/m/CheckBox.js +2 -2
  22. package/src/sap/m/ColorPalette.js +1 -1
  23. package/src/sap/m/ColorPalettePopover.js +1 -1
  24. package/src/sap/m/Column.js +4 -3
  25. package/src/sap/m/ColumnHeaderPopover.js +1 -1
  26. package/src/sap/m/ColumnListItem.js +1 -1
  27. package/src/sap/m/ColumnPopoverActionItem.js +1 -1
  28. package/src/sap/m/ColumnPopoverCustomItem.js +1 -1
  29. package/src/sap/m/ColumnPopoverItem.js +1 -1
  30. package/src/sap/m/ColumnPopoverSelectListItem.js +1 -1
  31. package/src/sap/m/ColumnPopoverSortItem.js +1 -1
  32. package/src/sap/m/ComboBox.js +1 -1
  33. package/src/sap/m/ComboBoxBase.js +2 -2
  34. package/src/sap/m/ComboBoxTextField.js +1 -1
  35. package/src/sap/m/ContentConfig.js +1 -1
  36. package/src/sap/m/CustomListItem.js +1 -1
  37. package/src/sap/m/CustomTile.js +1 -1
  38. package/src/sap/m/CustomTreeItem.js +1 -1
  39. package/src/sap/m/DatePicker.js +15 -3
  40. package/src/sap/m/DateRangeSelection.js +11 -2
  41. package/src/sap/m/DateTimeField.js +1 -1
  42. package/src/sap/m/DateTimeInput.js +1 -1
  43. package/src/sap/m/DateTimePicker.js +14 -2
  44. package/src/sap/m/Dialog.js +15 -15
  45. package/src/sap/m/DialogRenderer.js +11 -3
  46. package/src/sap/m/DisplayListItem.js +1 -1
  47. package/src/sap/m/DraftIndicator.js +1 -1
  48. package/src/sap/m/DynamicDate.js +1 -1
  49. package/src/sap/m/DynamicDateOption.js +1 -1
  50. package/src/sap/m/DynamicDateRange.js +2 -2
  51. package/src/sap/m/DynamicDateValueHelpUIType.js +1 -1
  52. package/src/sap/m/ExpandableText.js +2 -2
  53. package/src/sap/m/FacetFilter.js +1 -1
  54. package/src/sap/m/FacetFilterItem.js +1 -1
  55. package/src/sap/m/FacetFilterList.js +1 -1
  56. package/src/sap/m/FeedContent.js +1 -1
  57. package/src/sap/m/FeedInput.js +1 -1
  58. package/src/sap/m/FeedListItem.js +1 -1
  59. package/src/sap/m/FeedListItemAction.js +1 -1
  60. package/src/sap/m/FeedListItemRenderer.js +15 -14
  61. package/src/sap/m/Fiori20Adapter.js +40 -19
  62. package/src/sap/m/FlexBox.js +1 -1
  63. package/src/sap/m/FlexItemData.js +1 -1
  64. package/src/sap/m/FormattedText.js +1 -1
  65. package/src/sap/m/GenericTag.js +11 -5
  66. package/src/sap/m/GenericTile.js +1 -2
  67. package/src/sap/m/GenericTileRenderer.js +5 -1
  68. package/src/sap/m/GroupHeaderListItem.js +1 -1
  69. package/src/sap/m/GrowingList.js +1 -1
  70. package/src/sap/m/HBox.js +1 -1
  71. package/src/sap/m/HeaderContainer.js +1 -1
  72. package/src/sap/m/HeaderContainerItemNavigator.js +1 -1
  73. package/src/sap/m/IconTabBar.js +1 -1
  74. package/src/sap/m/IconTabBarSelectList.js +1 -1
  75. package/src/sap/m/IconTabFilter.js +1 -1
  76. package/src/sap/m/IconTabFilterExpandButtonBadge.js +1 -1
  77. package/src/sap/m/IconTabHeader.js +1 -1
  78. package/src/sap/m/IconTabSeparator.js +1 -1
  79. package/src/sap/m/IllustratedMessage.js +1 -1
  80. package/src/sap/m/Illustration.js +1 -1
  81. package/src/sap/m/Image.js +1 -1
  82. package/src/sap/m/ImageContent.js +1 -1
  83. package/src/sap/m/Input.js +15 -23
  84. package/src/sap/m/InputBase.js +16 -2
  85. package/src/sap/m/InputListItem.js +1 -1
  86. package/src/sap/m/Label.js +1 -1
  87. package/src/sap/m/LightBox.js +1 -1
  88. package/src/sap/m/LightBoxItem.js +1 -1
  89. package/src/sap/m/Link.js +120 -5
  90. package/src/sap/m/LinkRenderer.js +18 -0
  91. package/src/sap/m/LinkTileContent.js +1 -1
  92. package/src/sap/m/List.js +1 -1
  93. package/src/sap/m/ListBase.js +96 -13
  94. package/src/sap/m/ListItemBase.js +2 -2
  95. package/src/sap/m/MaskEnabler.js +1 -1
  96. package/src/sap/m/MaskInput.js +1 -1
  97. package/src/sap/m/MaskInputRule.js +1 -1
  98. package/src/sap/m/Menu.js +168 -57
  99. package/src/sap/m/MenuButton.js +1 -1
  100. package/src/sap/m/MenuItem.js +86 -12
  101. package/src/sap/m/MenuItemGroup.js +448 -0
  102. package/src/sap/m/MenuListItem.js +45 -2
  103. package/src/sap/m/MenuListItemRenderer.js +59 -23
  104. package/src/sap/m/MessageItem.js +14 -6
  105. package/src/sap/m/MessageListItem.js +2 -2
  106. package/src/sap/m/MessagePage.js +1 -1
  107. package/src/sap/m/MessagePopover.js +1 -1
  108. package/src/sap/m/MessagePopoverItem.js +1 -1
  109. package/src/sap/m/MessageStrip.js +2 -2
  110. package/src/sap/m/MessageToast.js +1 -1
  111. package/src/sap/m/MessageView.js +10 -7
  112. package/src/sap/m/MultiComboBox.js +1 -1
  113. package/src/sap/m/MultiEditField.js +1 -1
  114. package/src/sap/m/MultiInput.js +1 -1
  115. package/src/sap/m/NavContainer.js +1 -1
  116. package/src/sap/m/NewsContent.js +24 -1
  117. package/src/sap/m/NewsContentRenderer.js +16 -11
  118. package/src/sap/m/NotificationList.js +1 -1
  119. package/src/sap/m/NotificationListBase.js +2 -2
  120. package/src/sap/m/NotificationListGroup.js +1 -1
  121. package/src/sap/m/NotificationListItem.js +3 -3
  122. package/src/sap/m/NumericContent.js +1 -1
  123. package/src/sap/m/NumericInput.js +1 -1
  124. package/src/sap/m/ObjectAttribute.js +1 -1
  125. package/src/sap/m/ObjectHeader.js +1 -1
  126. package/src/sap/m/ObjectIdentifier.js +12 -5
  127. package/src/sap/m/ObjectListItem.js +1 -1
  128. package/src/sap/m/ObjectMarker.js +1 -1
  129. package/src/sap/m/ObjectNumber.js +4 -4
  130. package/src/sap/m/ObjectNumberRenderer.js +0 -9
  131. package/src/sap/m/ObjectStatus.js +13 -7
  132. package/src/sap/m/ObjectStatusRenderer.js +8 -0
  133. package/src/sap/m/OverflowToolbar.js +64 -7
  134. package/src/sap/m/OverflowToolbarAssociativePopover.js +1 -1
  135. package/src/sap/m/OverflowToolbarButton.js +1 -1
  136. package/src/sap/m/OverflowToolbarLayoutData.js +1 -1
  137. package/src/sap/m/OverflowToolbarMenuButton.js +1 -1
  138. package/src/sap/m/OverflowToolbarToggleButton.js +1 -1
  139. package/src/sap/m/P13nAnyFilterItem.js +1 -1
  140. package/src/sap/m/P13nColumnsItem.js +1 -1
  141. package/src/sap/m/P13nColumnsPanel.js +1 -1
  142. package/src/sap/m/P13nConditionPanel.js +3 -5
  143. package/src/sap/m/P13nDialog.js +1 -1
  144. package/src/sap/m/P13nDimMeasureItem.js +1 -1
  145. package/src/sap/m/P13nDimMeasurePanel.js +1 -1
  146. package/src/sap/m/P13nFilterItem.js +1 -1
  147. package/src/sap/m/P13nFilterPanel.js +1 -1
  148. package/src/sap/m/P13nGroupItem.js +1 -1
  149. package/src/sap/m/P13nGroupPanel.js +1 -1
  150. package/src/sap/m/P13nItem.js +1 -1
  151. package/src/sap/m/P13nPanel.js +1 -1
  152. package/src/sap/m/P13nSelectionItem.js +1 -1
  153. package/src/sap/m/P13nSelectionPanel.js +1 -1
  154. package/src/sap/m/P13nSortItem.js +1 -1
  155. package/src/sap/m/P13nSortPanel.js +1 -1
  156. package/src/sap/m/PDFViewer.js +1 -1
  157. package/src/sap/m/Page.js +1 -4
  158. package/src/sap/m/PageAccessibleLandmarkInfo.js +1 -1
  159. package/src/sap/m/PagingButton.js +1 -1
  160. package/src/sap/m/Panel.js +1 -1
  161. package/src/sap/m/PlanningCalendar.js +22 -6
  162. package/src/sap/m/PlanningCalendarHeader.js +1 -1
  163. package/src/sap/m/PlanningCalendarLegend.js +1 -1
  164. package/src/sap/m/PlanningCalendarLegendRenderer.js +4 -1
  165. package/src/sap/m/PlanningCalendarRow.js +11 -5
  166. package/src/sap/m/PlanningCalendarView.js +1 -1
  167. package/src/sap/m/Popover.js +16 -5
  168. package/src/sap/m/PopoverRenderer.js +13 -3
  169. package/src/sap/m/ProgressIndicator.js +1 -1
  170. package/src/sap/m/PullToRefresh.js +1 -1
  171. package/src/sap/m/QuickView.js +1 -1
  172. package/src/sap/m/QuickViewBase.js +1 -1
  173. package/src/sap/m/QuickViewCard.js +1 -1
  174. package/src/sap/m/QuickViewGroup.js +1 -1
  175. package/src/sap/m/QuickViewGroupElement.js +1 -1
  176. package/src/sap/m/QuickViewPage.js +1 -1
  177. package/src/sap/m/RadioButton.js +1 -1
  178. package/src/sap/m/RadioButtonGroup.js +1 -1
  179. package/src/sap/m/RangeSlider.js +1 -1
  180. package/src/sap/m/RatingIndicator.js +1 -1
  181. package/src/sap/m/RatingIndicatorRenderer.js +1 -2
  182. package/src/sap/m/ResponsivePopover.js +1 -1
  183. package/src/sap/m/ResponsiveScale.js +1 -1
  184. package/src/sap/m/ScrollBar.js +1 -1
  185. package/src/sap/m/ScrollContainer.js +1 -1
  186. package/src/sap/m/SearchField.js +1 -1
  187. package/src/sap/m/SegmentedButton.js +1 -1
  188. package/src/sap/m/SegmentedButtonItem.js +1 -1
  189. package/src/sap/m/Select.js +36 -4
  190. package/src/sap/m/SelectDialog.js +14 -10
  191. package/src/sap/m/SelectDialogBase.js +21 -13
  192. package/src/sap/m/SelectList.js +2 -2
  193. package/src/sap/m/SelectionDetails.js +1 -29
  194. package/src/sap/m/SelectionDetailsFacade.js +2 -2
  195. package/src/sap/m/SelectionDetailsItem.js +1 -1
  196. package/src/sap/m/SelectionDetailsItemLine.js +1 -1
  197. package/src/sap/m/Shell.js +1 -1
  198. package/src/sap/m/SimpleFixFlex.js +1 -1
  199. package/src/sap/m/SinglePlanningCalendar.js +15 -2
  200. package/src/sap/m/SinglePlanningCalendarDayView.js +1 -1
  201. package/src/sap/m/SinglePlanningCalendarGrid.js +81 -25
  202. package/src/sap/m/SinglePlanningCalendarGridRenderer.js +88 -17
  203. package/src/sap/m/SinglePlanningCalendarMonthGrid.js +68 -7
  204. package/src/sap/m/SinglePlanningCalendarMonthGridRenderer.js +18 -8
  205. package/src/sap/m/SinglePlanningCalendarMonthView.js +1 -1
  206. package/src/sap/m/SinglePlanningCalendarView.js +1 -1
  207. package/src/sap/m/SinglePlanningCalendarWeekView.js +1 -1
  208. package/src/sap/m/SinglePlanningCalendarWorkWeekView.js +1 -1
  209. package/src/sap/m/SlideTile.js +1 -1
  210. package/src/sap/m/SlideTileRenderer.js +3 -0
  211. package/src/sap/m/Slider.js +1 -1
  212. package/src/sap/m/SliderTooltip.js +1 -1
  213. package/src/sap/m/SliderTooltipBase.js +1 -1
  214. package/src/sap/m/SliderTooltipContainer.js +1 -1
  215. package/src/sap/m/SplitApp.js +1 -1
  216. package/src/sap/m/SplitButton.js +1 -1
  217. package/src/sap/m/SplitContainer.js +1 -1
  218. package/src/sap/m/StandardDynamicDateOption.js +3 -3
  219. package/src/sap/m/StandardListItem.js +1 -1
  220. package/src/sap/m/StandardTile.js +1 -1
  221. package/src/sap/m/StandardTreeItem.js +1 -1
  222. package/src/sap/m/StepInput.js +1 -1
  223. package/src/sap/m/SuggestionItem.js +1 -1
  224. package/src/sap/m/SuggestionsPopover.js +1 -1
  225. package/src/sap/m/Switch.js +1 -1
  226. package/src/sap/m/TabContainer.js +1 -1
  227. package/src/sap/m/TabContainerItem.js +1 -1
  228. package/src/sap/m/TabStrip.js +1 -1
  229. package/src/sap/m/TabStripItem.js +1 -1
  230. package/src/sap/m/Table.js +2 -2
  231. package/src/sap/m/TablePersoController.js +1 -1
  232. package/src/sap/m/TablePersoDialog.js +1 -1
  233. package/src/sap/m/TablePersoProvider.js +1 -1
  234. package/src/sap/m/TableRenderer.js +4 -3
  235. package/src/sap/m/TableSelectDialog.js +14 -12
  236. package/src/sap/m/Text.js +2 -2
  237. package/src/sap/m/TextArea.js +1 -1
  238. package/src/sap/m/Tile.js +1 -1
  239. package/src/sap/m/TileContainer.js +1 -1
  240. package/src/sap/m/TileContent.js +1 -1
  241. package/src/sap/m/TileContentRenderer.js +3 -0
  242. package/src/sap/m/TileInfo.js +1 -1
  243. package/src/sap/m/TimePicker.js +18 -2
  244. package/src/sap/m/TimePickerClock.js +1 -1
  245. package/src/sap/m/TimePickerClocks.js +1 -1
  246. package/src/sap/m/TimePickerInputs.js +1 -1
  247. package/src/sap/m/TimePickerInternals.js +1 -1
  248. package/src/sap/m/TimePickerSlider.js +1 -1
  249. package/src/sap/m/TimePickerSliders.js +1 -1
  250. package/src/sap/m/Title.js +1 -1
  251. package/src/sap/m/TitlePropagationSupport.js +1 -1
  252. package/src/sap/m/ToggleButton.js +1 -1
  253. package/src/sap/m/Token.js +3 -3
  254. package/src/sap/m/Tokenizer.js +1 -1
  255. package/src/sap/m/Toolbar.js +117 -3
  256. package/src/sap/m/ToolbarLayoutData.js +1 -1
  257. package/src/sap/m/ToolbarRenderer.js +12 -8
  258. package/src/sap/m/ToolbarSeparator.js +1 -1
  259. package/src/sap/m/ToolbarSpacer.js +1 -1
  260. package/src/sap/m/Tree.js +1 -1
  261. package/src/sap/m/TreeItemBase.js +1 -1
  262. package/src/sap/m/UploadCollection.js +1 -1
  263. package/src/sap/m/UploadCollectionItem.js +1 -1
  264. package/src/sap/m/UploadCollectionParameter.js +1 -1
  265. package/src/sap/m/UploadCollectionToolbarPlaceholder.js +1 -1
  266. package/src/sap/m/VBox.js +1 -1
  267. package/src/sap/m/ValueStateHeader.js +1 -1
  268. package/src/sap/m/VariantItem.js +1 -0
  269. package/src/sap/m/ViewSettingsCustomItem.js +1 -1
  270. package/src/sap/m/ViewSettingsCustomTab.js +1 -1
  271. package/src/sap/m/ViewSettingsDialog.js +1 -1
  272. package/src/sap/m/ViewSettingsFilterItem.js +1 -1
  273. package/src/sap/m/ViewSettingsItem.js +1 -1
  274. package/src/sap/m/VisibleItem.js +1 -1
  275. package/src/sap/m/WheelSlider.js +1 -1
  276. package/src/sap/m/WheelSliderContainer.js +1 -1
  277. package/src/sap/m/Wizard.js +1 -1
  278. package/src/sap/m/WizardProgressNavigator.js +1 -1
  279. package/src/sap/m/WizardStep.js +1 -1
  280. package/src/sap/m/changeHandler/AddTableColumn.js +1 -1
  281. package/src/sap/m/changeHandler/ChangeLinkTarget.js +1 -1
  282. package/src/sap/m/changeHandler/CombineButtons.js +1 -1
  283. package/src/sap/m/changeHandler/MoveTableColumns.js +1 -1
  284. package/src/sap/m/changeHandler/SelectIconTabBarFilter.js +1 -1
  285. package/src/sap/m/changeHandler/SplitMenuButton.js +1 -1
  286. package/src/sap/m/designtime/messagebundle_en_US_sappsd.properties +4 -4
  287. package/src/sap/m/designtime/messagebundle_en_US_saptrc.properties +91 -91
  288. package/src/sap/m/library.js +19 -4
  289. package/src/sap/m/messagebundle.properties +25 -8
  290. package/src/sap/m/messagebundle_ar.properties +12 -2
  291. package/src/sap/m/messagebundle_bg.properties +12 -2
  292. package/src/sap/m/messagebundle_ca.properties +13 -3
  293. package/src/sap/m/messagebundle_cnr.properties +12 -2
  294. package/src/sap/m/messagebundle_cs.properties +12 -2
  295. package/src/sap/m/messagebundle_cy.properties +12 -2
  296. package/src/sap/m/messagebundle_da.properties +14 -4
  297. package/src/sap/m/messagebundle_de.properties +12 -2
  298. package/src/sap/m/messagebundle_el.properties +15 -5
  299. package/src/sap/m/messagebundle_en.properties +15 -5
  300. package/src/sap/m/messagebundle_en_GB.properties +15 -5
  301. package/src/sap/m/messagebundle_en_US_sappsd.properties +193 -105
  302. package/src/sap/m/messagebundle_en_US_saprigi.properties +15 -5
  303. package/src/sap/m/messagebundle_en_US_saptrc.properties +1226 -1138
  304. package/src/sap/m/messagebundle_es.properties +13 -3
  305. package/src/sap/m/messagebundle_es_MX.properties +13 -3
  306. package/src/sap/m/messagebundle_et.properties +12 -2
  307. package/src/sap/m/messagebundle_fi.properties +12 -2
  308. package/src/sap/m/messagebundle_fr.properties +12 -2
  309. package/src/sap/m/messagebundle_fr_CA.properties +12 -2
  310. package/src/sap/m/messagebundle_hi.properties +15 -5
  311. package/src/sap/m/messagebundle_hr.properties +12 -2
  312. package/src/sap/m/messagebundle_hu.properties +13 -3
  313. package/src/sap/m/messagebundle_id.properties +25 -15
  314. package/src/sap/m/messagebundle_it.properties +15 -5
  315. package/src/sap/m/messagebundle_iw.properties +12 -2
  316. package/src/sap/m/messagebundle_ja.properties +10 -0
  317. package/src/sap/m/messagebundle_kk.properties +16 -6
  318. package/src/sap/m/messagebundle_ko.properties +10 -0
  319. package/src/sap/m/messagebundle_lt.properties +12 -2
  320. package/src/sap/m/messagebundle_lv.properties +17 -7
  321. package/src/sap/m/messagebundle_mk.properties +14 -4
  322. package/src/sap/m/messagebundle_ms.properties +12 -2
  323. package/src/sap/m/messagebundle_nl.properties +12 -2
  324. package/src/sap/m/messagebundle_no.properties +12 -2
  325. package/src/sap/m/messagebundle_pl.properties +15 -5
  326. package/src/sap/m/messagebundle_pt.properties +12 -2
  327. package/src/sap/m/messagebundle_pt_PT.properties +12 -2
  328. package/src/sap/m/messagebundle_ro.properties +12 -2
  329. package/src/sap/m/messagebundle_ru.properties +14 -4
  330. package/src/sap/m/messagebundle_sh.properties +12 -2
  331. package/src/sap/m/messagebundle_sk.properties +12 -2
  332. package/src/sap/m/messagebundle_sl.properties +19 -9
  333. package/src/sap/m/messagebundle_sr.properties +12 -2
  334. package/src/sap/m/messagebundle_sv.properties +12 -2
  335. package/src/sap/m/messagebundle_th.properties +12 -2
  336. package/src/sap/m/messagebundle_tr.properties +12 -2
  337. package/src/sap/m/messagebundle_uk.properties +12 -2
  338. package/src/sap/m/messagebundle_vi.properties +13 -3
  339. package/src/sap/m/messagebundle_zh_CN.properties +14 -4
  340. package/src/sap/m/messagebundle_zh_TW.properties +15 -5
  341. package/src/sap/m/p13n/AbstractContainer.js +2 -2
  342. package/src/sap/m/p13n/AbstractContainerItem.js +2 -2
  343. package/src/sap/m/p13n/BasePanel.js +2 -2
  344. package/src/sap/m/p13n/Container.js +1 -1
  345. package/src/sap/m/p13n/Engine.js +12 -13
  346. package/src/sap/m/p13n/FilterController.js +1 -1
  347. package/src/sap/m/p13n/FilterPanel.js +1 -1
  348. package/src/sap/m/p13n/GroupController.js +1 -1
  349. package/src/sap/m/p13n/GroupPanel.js +1 -1
  350. package/src/sap/m/p13n/MessageStrip.js +64 -0
  351. package/src/sap/m/p13n/Popup.js +1 -1
  352. package/src/sap/m/p13n/QueryPanel.js +1 -1
  353. package/src/sap/m/p13n/SelectionController.js +1 -1
  354. package/src/sap/m/p13n/SelectionPanel.js +1 -1
  355. package/src/sap/m/p13n/SortController.js +1 -1
  356. package/src/sap/m/p13n/SortPanel.js +1 -1
  357. package/src/sap/m/p13n/handler/xConfigHandler.js +5 -7
  358. package/src/sap/m/p13n/modules/DefaultProviderRegistry.js +1 -1
  359. package/src/sap/m/p13n/modules/StateHandlerRegistry.js +1 -1
  360. package/src/sap/m/p13n/modules/UIManager.js +1 -1
  361. package/src/sap/m/plugins/CellSelector.js +23 -13
  362. package/src/sap/m/plugins/ColumnResizer.js +1 -1
  363. package/src/sap/m/plugins/ContextMenuSetting.js +1 -1
  364. package/src/sap/m/plugins/CopyProvider.js +1 -1
  365. package/src/sap/m/plugins/DataStateIndicator.js +1 -1
  366. package/src/sap/m/plugins/PasteProvider.js +1 -1
  367. package/src/sap/m/plugins/PluginBase.js +1 -1
  368. package/src/sap/m/plugins/UploadSetwithTable.js +1 -1
  369. package/src/sap/m/semantic/AddAction.js +1 -1
  370. package/src/sap/m/semantic/CancelAction.js +1 -1
  371. package/src/sap/m/semantic/DeleteAction.js +1 -1
  372. package/src/sap/m/semantic/DetailPage.js +1 -1
  373. package/src/sap/m/semantic/DiscussInJamAction.js +1 -1
  374. package/src/sap/m/semantic/EditAction.js +1 -1
  375. package/src/sap/m/semantic/FavoriteAction.js +1 -1
  376. package/src/sap/m/semantic/FilterAction.js +1 -1
  377. package/src/sap/m/semantic/FilterSelect.js +1 -1
  378. package/src/sap/m/semantic/FlagAction.js +1 -1
  379. package/src/sap/m/semantic/ForwardAction.js +1 -1
  380. package/src/sap/m/semantic/FullscreenPage.js +1 -1
  381. package/src/sap/m/semantic/GroupAction.js +1 -1
  382. package/src/sap/m/semantic/GroupSelect.js +1 -1
  383. package/src/sap/m/semantic/MainAction.js +1 -1
  384. package/src/sap/m/semantic/MasterPage.js +1 -1
  385. package/src/sap/m/semantic/MessagesIndicator.js +1 -1
  386. package/src/sap/m/semantic/MultiSelectAction.js +1 -1
  387. package/src/sap/m/semantic/NegativeAction.js +1 -1
  388. package/src/sap/m/semantic/OpenInAction.js +1 -1
  389. package/src/sap/m/semantic/PositiveAction.js +1 -1
  390. package/src/sap/m/semantic/PrintAction.js +1 -1
  391. package/src/sap/m/semantic/SaveAction.js +1 -1
  392. package/src/sap/m/semantic/Segment.js +1 -1
  393. package/src/sap/m/semantic/SegmentedContainer.js +1 -1
  394. package/src/sap/m/semantic/SemanticButton.js +1 -1
  395. package/src/sap/m/semantic/SemanticConfiguration.js +1 -1
  396. package/src/sap/m/semantic/SemanticControl.js +1 -1
  397. package/src/sap/m/semantic/SemanticOverflowToolbarButton.js +1 -1
  398. package/src/sap/m/semantic/SemanticOverflowToolbarToggleButton.js +1 -1
  399. package/src/sap/m/semantic/SemanticPage.js +1 -1
  400. package/src/sap/m/semantic/SemanticSelect.js +1 -1
  401. package/src/sap/m/semantic/SemanticToggleButton.js +1 -1
  402. package/src/sap/m/semantic/SendEmailAction.js +1 -1
  403. package/src/sap/m/semantic/SendMessageAction.js +1 -1
  404. package/src/sap/m/semantic/ShareInJamAction.js +1 -1
  405. package/src/sap/m/semantic/ShareMenu.js +1 -1
  406. package/src/sap/m/semantic/ShareMenuPage.js +1 -1
  407. package/src/sap/m/semantic/SortAction.js +1 -1
  408. package/src/sap/m/semantic/SortSelect.js +1 -1
  409. package/src/sap/m/table/ColumnWidthController.js +1 -1
  410. package/src/sap/m/table/Util.js +2 -40
  411. package/src/sap/m/table/columnmenu/ActionItem.js +1 -1
  412. package/src/sap/m/table/columnmenu/Entry.js +1 -1
  413. package/src/sap/m/table/columnmenu/Item.js +1 -1
  414. package/src/sap/m/table/columnmenu/ItemBase.js +1 -1
  415. package/src/sap/m/table/columnmenu/Menu.js +29 -18
  416. package/src/sap/m/table/columnmenu/MenuBase.js +1 -1
  417. package/src/sap/m/table/columnmenu/QuickAction.js +1 -1
  418. package/src/sap/m/table/columnmenu/QuickActionBase.js +1 -1
  419. package/src/sap/m/table/columnmenu/QuickActionItem.js +1 -1
  420. package/src/sap/m/table/columnmenu/QuickGroup.js +1 -1
  421. package/src/sap/m/table/columnmenu/QuickGroupItem.js +1 -1
  422. package/src/sap/m/table/columnmenu/QuickSort.js +1 -1
  423. package/src/sap/m/table/columnmenu/QuickSortItem.js +1 -1
  424. package/src/sap/m/table/columnmenu/QuickTotal.js +1 -1
  425. package/src/sap/m/table/columnmenu/QuickTotalItem.js +1 -1
  426. package/src/sap/m/themes/base/ActionTile.less +377 -307
  427. package/src/sap/m/themes/base/ActionTileContent.less +4 -1
  428. package/src/sap/m/themes/base/Breadcrumbs.less +15 -12
  429. package/src/sap/m/themes/base/BusyIndicator.less +17 -6
  430. package/src/sap/m/themes/base/Button.less +242 -213
  431. package/src/sap/m/themes/base/Carousel.less +93 -57
  432. package/src/sap/m/themes/base/CellSelector.less +33 -33
  433. package/src/sap/m/themes/base/Dialog.less +38 -11
  434. package/src/sap/m/themes/base/FeedContent.less +1 -1
  435. package/src/sap/m/themes/base/FeedListItem.less +6 -8
  436. package/src/sap/m/themes/base/GenericTile.less +41 -5
  437. package/src/sap/m/themes/base/HeaderContainer.less +1 -1
  438. package/src/sap/m/themes/base/IconTabBar.less +10 -2
  439. package/src/sap/m/themes/base/ImageContent.less +2 -2
  440. package/src/sap/m/themes/base/Link.less +27 -4
  441. package/src/sap/m/themes/base/MenuListItem.less +22 -0
  442. package/src/sap/m/themes/base/MessageView.less +4 -0
  443. package/src/sap/m/themes/base/MultiUnitPopover.less +0 -9
  444. package/src/sap/m/themes/base/NewsContent.less +27 -15
  445. package/src/sap/m/themes/base/NumericContent.less +1 -21
  446. package/src/sap/m/themes/base/ObjectStatus.less +5 -2
  447. package/src/sap/m/themes/base/Popover.less +23 -10
  448. package/src/sap/m/themes/base/SinglePlanningCalendarGrid.less +1 -4
  449. package/src/sap/m/themes/base/SinglePlanningCalendarMonthGrid.less +4 -0
  450. package/src/sap/m/themes/base/SlideTile.less +4 -0
  451. package/src/sap/m/themes/base/TileContent.less +42 -0
  452. package/src/sap/m/themes/base/Token.less +1 -1
  453. package/src/sap/m/themes/base/UploadSet.less +0 -4
  454. package/src/sap/m/themes/base/illustrations/sapIllus-Dialog-BalloonSky.svg +44 -32
  455. package/src/sap/m/themes/base/illustrations/sapIllus-Dialog-EmptyCalendar.svg +76 -73
  456. package/src/sap/m/themes/base/illustrations/sapIllus-Dialog-FilterTable.svg +64 -40
  457. package/src/sap/m/themes/base/illustrations/sapIllus-Dialog-NoTasks_v1.svg +61 -52
  458. package/src/sap/m/themes/base/illustrations/sapIllus-Dialog-PageNotFound.svg +23 -24
  459. package/src/sap/m/themes/base/illustrations/sapIllus-Dialog-ReloadScreen.svg +47 -33
  460. package/src/sap/m/themes/base/illustrations/sapIllus-Dialog-SearchFolder.svg +36 -26
  461. package/src/sap/m/themes/base/illustrations/sapIllus-Dialog-SuccessHighFive.svg +21 -42
  462. package/src/sap/m/themes/base/illustrations/sapIllus-Dialog-SuccessScreen.svg +46 -31
  463. package/src/sap/m/themes/base/illustrations/sapIllus-Dialog-UploadCollection.svg +26 -28
  464. package/src/sap/m/themes/base/illustrations/sapIllus-Scene-BalloonSky.svg +52 -41
  465. package/src/sap/m/themes/base/illustrations/sapIllus-Scene-EmptyCalendar.svg +89 -86
  466. package/src/sap/m/themes/base/illustrations/sapIllus-Scene-FilterTable.svg +61 -55
  467. package/src/sap/m/themes/base/illustrations/sapIllus-Scene-NoTasks_v1.svg +85 -89
  468. package/src/sap/m/themes/base/illustrations/sapIllus-Scene-PageNotFound.svg +28 -32
  469. package/src/sap/m/themes/base/illustrations/sapIllus-Scene-ReloadScreen.svg +61 -79
  470. package/src/sap/m/themes/base/illustrations/sapIllus-Scene-SearchFolder.svg +43 -35
  471. package/src/sap/m/themes/base/illustrations/sapIllus-Scene-SuccessHighFive.svg +22 -24
  472. package/src/sap/m/themes/base/illustrations/sapIllus-Scene-SuccessScreen.svg +60 -77
  473. package/src/sap/m/themes/base/illustrations/sapIllus-Scene-UploadCollection.svg +28 -29
  474. package/src/sap/m/themes/base/illustrations/sapIllus-Spot-BalloonSky.svg +42 -28
  475. package/src/sap/m/themes/base/illustrations/sapIllus-Spot-EmptyCalendar.svg +45 -42
  476. package/src/sap/m/themes/base/illustrations/sapIllus-Spot-FilterTable.svg +55 -41
  477. package/src/sap/m/themes/base/illustrations/sapIllus-Spot-GroupTable.svg +84 -65
  478. package/src/sap/m/themes/base/illustrations/sapIllus-Spot-NoTasks_v1.svg +21 -14
  479. package/src/sap/m/themes/base/illustrations/sapIllus-Spot-PageNotFound.svg +19 -26
  480. package/src/sap/m/themes/base/illustrations/sapIllus-Spot-ReloadScreen.svg +34 -30
  481. package/src/sap/m/themes/base/illustrations/sapIllus-Spot-ResizeColumn.svg +44 -36
  482. package/src/sap/m/themes/base/illustrations/sapIllus-Spot-SearchFolder.svg +36 -24
  483. package/src/sap/m/themes/base/illustrations/sapIllus-Spot-SuccessHighFive.svg +20 -27
  484. package/src/sap/m/themes/base/illustrations/sapIllus-Spot-SuccessScreen.svg +33 -30
  485. package/src/sap/m/themes/base/illustrations/sapIllus-Spot-UploadCollection.svg +29 -27
  486. package/src/sap/m/themes/sap_hcb/base_FeedListItem.less +0 -7
  487. package/src/sap/m/themes/sap_hcb/base_HeaderContainer.less +0 -5
  488. package/src/sap/m/themes/sap_hcb/base_ImageContent.less +0 -7
  489. package/src/sap/m/themes/sap_hcb/base_MultiUnitPopover.less +0 -9
  490. package/src/sap/m/themes/sap_hcb/base_NumericContent.less +1 -21
  491. package/src/sap/m/themes/sap_hcb/library.source.less +0 -1
  492. package/src/sap/m/upload/ActionsPlaceholder.js +1 -1
  493. package/src/sap/m/upload/Column.js +1 -1
  494. package/src/sap/m/upload/FilePreviewDialog.js +1 -1
  495. package/src/sap/m/upload/UploadItem.js +1 -1
  496. package/src/sap/m/upload/UploadItemConfiguration.js +1 -1
  497. package/src/sap/m/upload/UploadSet.js +28 -16
  498. package/src/sap/m/upload/UploadSetItem.js +3 -3
  499. package/src/sap/m/upload/UploadSetToolbarPlaceholder.js +1 -1
  500. package/src/sap/m/upload/UploadSetwithTable.js +1 -1
  501. package/src/sap/m/upload/UploadSetwithTableItem.js +1 -1
  502. package/src/sap/m/upload/UploaderTableItem.js +1 -1
  503. package/src/sap/m/upload/p13n/PersManager.js +1 -1
  504. package/src/sap/m/upload/p13n/mediator/BaseMediator.js +1 -1
  505. package/src/sap/m/upload/p13n/mediator/ColumnsMediator.js +1 -1
  506. package/src/sap/m/upload/p13n/mediator/FilterMediator.js +1 -1
  507. package/src/sap/m/upload/p13n/mediator/GroupMediator.js +1 -1
  508. package/src/sap/m/upload/p13n/mediator/SortMediator.js +1 -1
  509. package/src/sap/m/upload/p13n/modules/PersPopupManager.js +1 -1
  510. package/src/sap/m/themes/sap_hcb/NewsContent.less +0 -8
@@ -111,7 +111,7 @@ function(
111
111
  * @extends sap.ui.core.Control
112
112
  *
113
113
  * @author SAP SE
114
- * @version 1.126.1
114
+ * @version 1.128.0
115
115
  *
116
116
  * @constructor
117
117
  * @public
@@ -294,7 +294,20 @@ function(
294
294
  aggregation: "appointments"
295
295
  }
296
296
  },
297
-
297
+ /**
298
+ * Sets the provided period to be displayed as a non-working.
299
+ *
300
+ * <b>Note:</b> The visualization of non-working periods is present in all views that include hours representation.
301
+ * @since 1.128
302
+ */
303
+ nonWorkingPeriods: {
304
+ type: "sap.ui.unified.NonWorkingPeriod",
305
+ multiple: true,
306
+ forwarding: {
307
+ getter: "_getCurrentGrid",
308
+ aggregation: "nonWorkingPeriods"
309
+ }
310
+ },
298
311
  /**
299
312
  * Views of the <code>SinglePlanningCalendar</code>.
300
313
  *
@@ -25,7 +25,7 @@ function (library, SinglePlanningCalendarView) {
25
25
  * @extends sap.m.SinglePlanningCalendarView
26
26
  *
27
27
  * @author SAP SE
28
- * @version 1.126.1
28
+ * @version 1.128.0
29
29
  *
30
30
  * @constructor
31
31
  * @public
@@ -115,7 +115,7 @@ sap.ui.define([
115
115
  * @extends sap.ui.core.Control
116
116
  *
117
117
  * @author SAP SE
118
- * @version 1.126.1
118
+ * @version 1.128.0
119
119
  *
120
120
  * @constructor
121
121
  * @private
@@ -254,6 +254,12 @@ sap.ui.define([
254
254
  */
255
255
  specialDates : {type : "sap.ui.unified.DateTypeRange", multiple : true, singularName : "specialDate"},
256
256
 
257
+ /**
258
+ * Sets the provided period to be displayed as a non-working.
259
+ * @since 1.128
260
+ */
261
+ nonWorkingPeriods: {type: "sap.ui.unified.NonWorkingPeriod", multiple: true},
262
+
257
263
  /**
258
264
  * Hidden, for internal use only.
259
265
  * The date row which shows the header of the columns in the <code>SinglePlanningCalendarGrid</code>.
@@ -1290,6 +1296,17 @@ sap.ui.define([
1290
1296
  }
1291
1297
  };
1292
1298
 
1299
+ SinglePlanningCalendarGrid.prototype._findGridHeaderCell = function (oEvent) {
1300
+ const oGridCell = oEvent.target;
1301
+ const oColumnGridHeaderCell = oGridCell.classList.contains("sapUiCalItem") ? oGridCell : oGridCell.parentElement;
1302
+
1303
+ if (!oColumnGridHeaderCell?.getAttribute("data-sap-day") || !oColumnGridHeaderCell.classList.contains("sapUiCalItem")) {
1304
+ return null;
1305
+ }
1306
+
1307
+ return oColumnGridHeaderCell;
1308
+ };
1309
+
1293
1310
  SinglePlanningCalendarGrid.prototype.onmouseup = function (oEvent) {
1294
1311
  var bMultiDateSelection = SinglePlanningCalendarSelectionMode.MultiSelect === this.getDateSelectionMode();
1295
1312
  if (!bMultiDateSelection && !(oEvent.metaKey || oEvent.ctrlKey)) {
@@ -1309,15 +1326,23 @@ sap.ui.define([
1309
1326
  * @param {jQuery.Event} oEvent The event object.
1310
1327
  */
1311
1328
  SinglePlanningCalendarGrid.prototype.onkeyup = function(oEvent) {
1312
- var bMultiDateSelection = SinglePlanningCalendarSelectionMode.MultiSelect === this.getDateSelectionMode();
1313
- if ((oEvent.which === KeyCodes.ARROW_LEFT || oEvent.which === KeyCodes.ARROW_RIGHT) && oEvent.shiftKey && bMultiDateSelection) {
1329
+ if (!this._findGridHeaderCell(oEvent)){
1330
+ return;
1331
+ }
1332
+
1333
+ const bMultiDateSelection = SinglePlanningCalendarSelectionMode.MultiSelect === this.getDateSelectionMode();
1334
+ const bArrowNavigation = oEvent.which === KeyCodes.ARROW_LEFT || oEvent.which === KeyCodes.ARROW_RIGHT;
1335
+ const bSpaceOrEnter = oEvent.which === KeyCodes.SPACE || oEvent.which === KeyCodes.ENTER;
1336
+
1337
+ if (bArrowNavigation && oEvent.shiftKey && bMultiDateSelection) {
1314
1338
  this._bMultiDateSelectWithArrow = true;
1315
1339
  } else if (oEvent.which === KeyCodes.SPACE && !oEvent.shiftKey && bMultiDateSelection) {
1316
1340
  this._bMultiDateSelect = true;
1317
- } else if ((oEvent.which === KeyCodes.SPACE || oEvent.which === KeyCodes.ENTER) && !oEvent.shiftKey) {
1341
+ } else if (bSpaceOrEnter && !oEvent.shiftKey) {
1318
1342
  this.removeAllSelectedDates();
1319
1343
  this._bMultiDateSelect = true;
1320
1344
  }
1345
+
1321
1346
  this._fireSelectionEvent(oEvent);
1322
1347
  // Prevent scrolling
1323
1348
  oEvent.preventDefault();
@@ -1329,9 +1354,10 @@ sap.ui.define([
1329
1354
  * @param {jQuery.Event} oEvent The event object.
1330
1355
  */
1331
1356
  SinglePlanningCalendarGrid.prototype.onkeydown = function (oEvent) {
1332
- var bMultiDateSelection = SinglePlanningCalendarSelectionMode.MultiSelect === this.getDateSelectionMode();
1333
- if (oEvent.which === KeyCodes.SPACE || oEvent.which === KeyCodes.ENTER ||
1334
- oEvent.which === KeyCodes.ARROW_LEFT || oEvent.which === KeyCodes.ARROW_RIGHT) {
1357
+ const bMultiDateSelection = SinglePlanningCalendarSelectionMode.MultiSelect === this.getDateSelectionMode();
1358
+ const bSpaceOrEnter = oEvent.which === KeyCodes.SPACE || oEvent.which === KeyCodes.ENTER;
1359
+
1360
+ if (bSpaceOrEnter) {
1335
1361
  if (oEvent.which === KeyCodes.SPACE && oEvent.shiftKey && bMultiDateSelection) {
1336
1362
  this._bCurrentWeekSelection = true;
1337
1363
  }
@@ -1339,9 +1365,8 @@ sap.ui.define([
1339
1365
  this._fireSelectionEvent(oEvent);
1340
1366
 
1341
1367
  var oControl = this._findSrcControl(oEvent);
1342
- if (oControl && oControl.isA("sap.ui.unified.CalendarAppointment")) {
1343
- var sBundleKey = oControl.getSelected() ? "APPOINTMENT_SELECTED" : "APPOINTMENT_UNSELECTED";
1344
- this._oInvisibleMessage.announce(this._oUnifiedRB.getText(sBundleKey), InvisibleMessageMode.Polite);
1368
+ if (oControl && oControl.isA("sap.ui.unified.CalendarAppointment") && !oControl.getSelected()) {
1369
+ this._oInvisibleMessage.announce(this._oUnifiedRB.getText("APPOINTMENT_UNSELECTED"), InvisibleMessageMode.Polite);
1345
1370
  }
1346
1371
 
1347
1372
  // Prevent scrolling
@@ -1375,6 +1400,9 @@ sap.ui.define([
1375
1400
  * @param {jQuery.Event} oEvent The event object.
1376
1401
  */
1377
1402
  SinglePlanningCalendarGrid.prototype._fireSelectionEvent = function (oEvent) {
1403
+ const oColumnGridHeaderCell = this._findGridHeaderCell(oEvent);
1404
+ const bArrowNavigation = oEvent.which === KeyCodes.ARROW_LEFT || oEvent.which === KeyCodes.ARROW_RIGHT;
1405
+
1378
1406
  var oControl = this._findSrcControl(oEvent),
1379
1407
  oGridCell = oEvent.target;
1380
1408
 
@@ -1390,7 +1418,7 @@ sap.ui.define([
1390
1418
  appointment: undefined,
1391
1419
  appointments: this._toggleAppointmentSelection(undefined, true)
1392
1420
  });
1393
- } else if (oControl && oControl.isA("sap.ui.unified.CalendarAppointment")) {
1421
+ } else if (oControl && oControl.isA("sap.ui.unified.CalendarAppointment") && !oColumnGridHeaderCell && !bArrowNavigation) {
1394
1422
 
1395
1423
  // add suffix in appointment
1396
1424
  if (oGridCell.parentElement && oGridCell.parentElement.getAttribute("id")) {
@@ -1408,17 +1436,7 @@ sap.ui.define([
1408
1436
  appointment: oControl,
1409
1437
  appointments: this._toggleAppointmentSelection(oControl, !(oEvent.ctrlKey || oEvent.metaKey))
1410
1438
  });
1411
- } else {
1412
- var oColumnGridHeaderCell;
1413
- if (!oGridCell.classList.contains("sapUiCalItem")){
1414
- oColumnGridHeaderCell = oGridCell.parentElement;
1415
- } else {
1416
- oColumnGridHeaderCell = oGridCell;
1417
- }
1418
-
1419
- if (!oColumnGridHeaderCell.getAttribute("data-sap-day")) {
1420
- return;
1421
- }
1439
+ } else if (oColumnGridHeaderCell?.getAttribute("data-sap-day")) {
1422
1440
  var oStartDateFromGrid = this._oFormatYyyymmdd.parse(oColumnGridHeaderCell.getAttribute("data-sap-day"));
1423
1441
  var oStartDate = new CalendarDate(oStartDateFromGrid.getFullYear(),oStartDateFromGrid.getMonth(), oStartDateFromGrid.getDate());
1424
1442
  this._handelMultiDateSelection(oStartDate, oColumnGridHeaderCell);
@@ -1484,7 +1502,7 @@ sap.ui.define([
1484
1502
 
1485
1503
  for (var i = 0; i < aSelectedDates.length; i++){
1486
1504
  var oSelectStartDate = aSelectedDates[i].getStartDate();
1487
- if (CalendarDate.fromLocalJSDate(oSelectStartDate).isSame(CalendarDate.fromLocalJSDate(oStartDate))) {
1505
+ if (CalendarDate.fromLocalJSDate(oSelectStartDate).isSame(oStartDate)) {
1488
1506
  this.removeAggregation("selectedDates", i);
1489
1507
  break;
1490
1508
  }
@@ -1522,6 +1540,44 @@ sap.ui.define([
1522
1540
  return false;
1523
1541
  };
1524
1542
 
1543
+ /**
1544
+ * Checks whether there are appointments related to a given grid cell
1545
+ * @param {Date} oStart The start date date of the grid cell
1546
+ * @param {Date} oEnd The end date of the grid cell
1547
+ * @returns {boolean} Indicator if there are appointments related to a given grid cell
1548
+ */
1549
+ SinglePlanningCalendarGrid.prototype._doesContainAppointments = function(oStart, oEnd) {
1550
+ const oStartDate = UI5Date.getInstance(oStart);
1551
+ const oEndDate = UI5Date.getInstance(oEnd);
1552
+ return this.getAppointments().some((oAppointment) => {
1553
+ const oAppStartDate = UI5Date.getInstance(oAppointment.getStartDate());
1554
+ const oAppEndDate = UI5Date.getInstance(oAppointment.getEndDate());
1555
+ return oAppStartDate.getTime() >= oStartDate.getTime() && oAppStartDate.getTime() < oEndDate.getTime()
1556
+ || oAppEndDate.getTime() > oStartDate.getTime() && oAppEndDate.getTime() <= oEndDate.getTime();
1557
+ });
1558
+ };
1559
+
1560
+ /**
1561
+ * Checks whether there are appointments related to a given grid cell
1562
+ * @param {sap.ui.unified.calendar.CalendarDate} oDay The date of the grid cell
1563
+ * @returns {boolean} Indicator if there are appointments realted to the grid cell
1564
+ */
1565
+ SinglePlanningCalendarGrid.prototype._doesContainBlockers = function(oDay) {
1566
+ return this.getAppointments().some((oAppointment) => {
1567
+ if (oAppointment.getStartDate() && oAppointment.getEndDate()) {
1568
+ const oStartDate = CalendarDate.fromLocalJSDate(oAppointment.getStartDate());
1569
+ const oEndDate = CalendarDate.fromLocalJSDate(oAppointment.getEndDate());
1570
+
1571
+ return oDay.isSameOrAfter(oStartDate) && oDay.isBefore(oEndDate);
1572
+ }
1573
+ return false;
1574
+ });
1575
+ };
1576
+
1577
+ SinglePlanningCalendarGrid.prototype._getCellDescription = function () {
1578
+ return Core.getLibraryResourceBundle("sap.m").getText("SPC_CELL_DESCRIPTION");
1579
+ };
1580
+
1525
1581
  /**
1526
1582
  * Determines which is the first visible hour of the grid.
1527
1583
  *
@@ -2288,9 +2344,9 @@ sap.ui.define([
2288
2344
  bFullDay = !oEndDate;
2289
2345
 
2290
2346
  if (bFullDay) {
2291
- return sStartTime + ": " + this._oFormatAriaFullDayCell.format(oStartDate) + "; ";
2347
+ return sStartTime + ": " + this._oFormatAriaFullDayCell.format(oStartDate);
2292
2348
  }
2293
- return sStartTime + ": " + this._oFormatStartEndInfoAria.format(oStartDate) + "; " + sEndTime + ": " + this._oFormatStartEndInfoAria.format(oEndDate);
2349
+ return sStartTime + ": " + this._oFormatStartEndInfoAria.format(oStartDate) + ", " + sEndTime + ": " + this._oFormatStartEndInfoAria.format(oEndDate);
2294
2350
  };
2295
2351
 
2296
2352
  /**
@@ -5,7 +5,7 @@
5
5
  */
6
6
 
7
7
  sap.ui.define([
8
- "sap/base/i18n/Localization",
8
+ 'sap/base/i18n/Localization',
9
9
  "sap/ui/core/Element",
10
10
  'sap/ui/unified/calendar/CalendarDate',
11
11
  'sap/ui/unified/calendar/CalendarUtils',
@@ -14,7 +14,8 @@ sap.ui.define([
14
14
  'sap/ui/core/InvisibleText',
15
15
  './PlanningCalendarLegend',
16
16
  'sap/ui/unified/library',
17
- "sap/ui/core/date/UI5Date"
17
+ 'sap/ui/unified/calendar/RecurrenceUtils',
18
+ 'sap/ui/core/date/UI5Date'
18
19
  ],
19
20
  function(
20
21
  Localization,
@@ -26,6 +27,7 @@ sap.ui.define([
26
27
  InvisibleText,
27
28
  PlanningCalendarLegend,
28
29
  unifiedLibrary,
30
+ RecurrenceUtils,
29
31
  UI5Date
30
32
  ) {
31
33
  "use strict";
@@ -58,7 +60,6 @@ sap.ui.define([
58
60
  oRm.renderControl(oControl.getAggregation("_columnHeaders"));
59
61
  this.renderBlockersContainer(oRm, oControl);
60
62
  oRm.openStart("div");
61
- oRm.attr("role", "grid");
62
63
  oRm.class("sapMSinglePCGridContent");
63
64
  oRm.openEnd();
64
65
  this.renderRowHeaders(oRm, oControl);
@@ -139,6 +140,9 @@ sap.ui.define([
139
140
  if (oControl._sLegendId && sLegendItemType) {
140
141
  oRm.text(sLegendItemType);
141
142
  }
143
+ if (oControl._doesContainBlockers(oColumnCalDate)) {
144
+ oRm.text(oControl._getCellDescription());
145
+ }
142
146
  oRm.close("span");
143
147
 
144
148
  oRm.close("div"); // END .sapMSinglePCColumn
@@ -176,6 +180,10 @@ sap.ui.define([
176
180
  var that = this,
177
181
  oBlockersList = oControl._getBlockersToRender().oBlockersList;
178
182
 
183
+ oRm.openStart("div");
184
+ oRm.attr("role", "gridcell");
185
+ oRm.openEnd();
186
+
179
187
  oRm.openStart("div");
180
188
  oRm.attr("role", "list");
181
189
  oRm.attr("aria-labelledby", InvisibleText.getStaticId("sap.m", "SPC_BLOCKERS"));
@@ -187,6 +195,8 @@ sap.ui.define([
187
195
  that.renderBlockerAppointment(oRm, oControl, oBlocker);
188
196
  });
189
197
  oRm.close("div"); // END .sapMSinglePCBlockers
198
+
199
+ oRm.close("div");
190
200
  };
191
201
 
192
202
  SinglePlanningCalendarGridRenderer.renderBlockerAppointment = function(oRm, oControl, oBlockerNode) {
@@ -242,7 +252,10 @@ sap.ui.define([
242
252
  }
243
253
 
244
254
  if (oBlocker.getSelected()) {
245
- mAccProps["labelledby"].value = mAccProps["labelledby"].value + " " + InvisibleText.getStaticId("sap.ui.unified", "APPOINTMENT_SELECTED");
255
+ mAccProps["describedby"] = {
256
+ value: InvisibleText.getStaticId("sap.ui.unified", "APPOINTMENT_SELECTED"),
257
+ append: true
258
+ };
246
259
  }
247
260
 
248
261
  oRm.openStart("div", oBlocker);
@@ -293,7 +306,7 @@ sap.ui.define([
293
306
  oRm.openStart("div");
294
307
  oRm.class("sapUiCalendarAppCont");
295
308
 
296
- if (sColor) {
309
+ if (sColor && !oBlocker.getSelected()) {
297
310
  oRm.style("background-color", oBlocker._getCSSColorForBackground(sColor));
298
311
  }
299
312
 
@@ -416,7 +429,7 @@ sap.ui.define([
416
429
 
417
430
  this.renderDndPlaceholders(oRm, oControl, oControl._dndPlaceholdersMap[oColumnCalDate]);
418
431
 
419
- this.renderRows(oRm, oControl, sDate);
432
+ this.renderRows(oRm, oControl, sDate, oColumnCalDate);
420
433
  this.renderAppointments(oRm, oControl, oAppointmentsToRender[sDate], oColumnCalDate, i);
421
434
  oRm.close("div"); // END .sapMSinglePCColumn
422
435
  }
@@ -432,16 +445,29 @@ sap.ui.define([
432
445
  oRm.close("div");
433
446
  };
434
447
 
435
- SinglePlanningCalendarGridRenderer.renderRows = function (oRm, oControl, sDate) {
436
- var iStartHour = oControl._getVisibleStartHour(),
437
- iEndHour = oControl._getVisibleEndHour(),
438
- oFormat = oControl._getDateFormatter(),
439
- oCellStartDate,
440
- oCellEndDate;
448
+ SinglePlanningCalendarGridRenderer.renderRows = function (oRm, oControl, sDate, oColumnCalDate) {
449
+ const iStartHour = oControl._getVisibleStartHour();
450
+ const iEndHour = oControl._getVisibleEndHour();
451
+ const oFormat = oControl._getDateFormatter();
452
+ const oDate = oControl._parseDateStringAndHours(sDate, 0);
453
+ const aRecurrenceNonWorkingForDay = oControl._isNonWorkingDay(oColumnCalDate) ? [] : oControl.getNonWorkingPeriods().filter((oPeriod) => {
454
+ if (!oPeriod.isRecurring()) {
455
+ return oPeriod.getStartDate() >= oDate && oPeriod.getEndDate() <= oDate;
456
+ }
457
+ const hasOccurrenceOnDate = RecurrenceUtils.hasOccurrenceOnDate.bind(oPeriod);
458
+ return hasOccurrenceOnDate(oDate);
459
+ }).sort((oCalendarItemA, oCalendarItemB) => {
460
+ return oCalendarItemA.getStartDate().getMinutes() - oCalendarItemB.getStartDate().getMinutes() ||
461
+ oCalendarItemA.getEndDate().getMinutes() - oCalendarItemB.getEndDate().getMinutes();
462
+ });
441
463
 
442
- for (var i = iStartHour; i <= iEndHour; i++) {
443
- oCellStartDate = oControl._parseDateStringAndHours(sDate, i);
444
- oCellEndDate = UI5Date.getInstance(oCellStartDate.getFullYear(), oCellStartDate.getMonth(), oCellStartDate.getDate(), oCellStartDate.getHours() + 1);
464
+ for (let i = iStartHour; i <= iEndHour; i++) {
465
+ const oCellStartDate = oControl._parseDateStringAndHours(sDate, i);
466
+ const oCellEndDate = UI5Date.getInstance(oCellStartDate.getFullYear(), oCellStartDate.getMonth(), oCellStartDate.getDate(), oCellStartDate.getHours() + 1);
467
+
468
+ const aNonWorkingPartsForHour = aRecurrenceNonWorkingForDay.filter((oCalendarItem) => {
469
+ return oCalendarItem.hasNonWorkingAtHour(oCellStartDate);
470
+ });
445
471
 
446
472
  oRm.openStart("div");
447
473
  oRm.attr("role", "gridcell");
@@ -461,8 +487,25 @@ sap.ui.define([
461
487
  oRm.class("sapUiInvisibleText");
462
488
  oRm.openEnd();
463
489
  oRm.text(oControl._getCellStartEndInfo(oCellStartDate, oCellEndDate));
490
+
491
+ if (oControl._doesContainAppointments(oCellStartDate, oCellEndDate)) {
492
+ oRm.text(oControl._getCellDescription());
493
+ }
464
494
  oRm.close("span");
465
495
 
496
+ if (!aNonWorkingPartsForHour?.length) {
497
+ oRm.close("div"); // END .sapMSinglePCRow
498
+ continue;
499
+ }
500
+
501
+ RecurrenceUtils.getWorkingAndNonWorkingSegments(oCellStartDate, aNonWorkingPartsForHour).forEach((oHourParts) => {
502
+ if (oHourParts.type === "working") {
503
+ this.renderWorkingParts(oRm, oHourParts.duration);
504
+ } else {
505
+ this.renderNonWorkingParts(oRm, oHourParts.duration);
506
+ }
507
+ });
508
+
466
509
  oRm.close("div"); // END .sapMSinglePCRow
467
510
  }
468
511
  };
@@ -472,12 +515,17 @@ sap.ui.define([
472
515
  iIndex = 0;
473
516
 
474
517
  if (oAppointmentsByDate) {
518
+ oRm.openStart("div");
519
+ oRm.attr("role", "gridcell");
520
+ oRm.openEnd();
521
+
475
522
  oRm.openStart("div");
476
523
  oRm.attr("role", "list");
477
524
  oRm.class("sapMSinglePCAppointments");
478
525
  oRm.class("sapUiCalendarRowVisFilled"); // TODO: when refactor the CSS of appointments maybe we won't need this class
479
526
 
480
527
  oRm.openEnd();
528
+
481
529
  oAppointmentsByDate.oAppointmentsList.getIterator().forEach(function (oAppointmentNode) {
482
530
  var iMaxLevel = oAppointmentsByDate.iMaxLevel,
483
531
  iLevel = oAppointmentNode.level,
@@ -488,6 +536,7 @@ sap.ui.define([
488
536
  iIndex++;
489
537
  });
490
538
  oRm.close("div");
539
+ oRm.close("div");
491
540
  }
492
541
  };
493
542
 
@@ -561,7 +610,10 @@ sap.ui.define([
561
610
  }
562
611
 
563
612
  if (oAppointment.getSelected()) {
564
- mAccProps["labelledby"].value = mAccProps["labelledby"].value + " " + InvisibleText.getStaticId("sap.ui.unified", "APPOINTMENT_SELECTED");
613
+ mAccProps["describedby"] = {
614
+ value: InvisibleText.getStaticId("sap.ui.unified", "APPOINTMENT_SELECTED"),
615
+ append: true
616
+ };
565
617
  }
566
618
 
567
619
  oRm.openStart("div", oAppointment.getId() + "-" + iColumn + "_" + iIndex);
@@ -616,7 +668,7 @@ sap.ui.define([
616
668
  oRm.openStart("div");
617
669
  oRm.class("sapUiCalendarAppCont");
618
670
 
619
- if (sColor) {
671
+ if (sColor && !oAppointment.getSelected()) {
620
672
  oRm.style("background-color", oAppointment._getCSSColorForBackground(sColor));
621
673
  }
622
674
 
@@ -762,6 +814,25 @@ sap.ui.define([
762
814
  }
763
815
  };
764
816
 
817
+ SinglePlanningCalendarGridRenderer.renderWorkingParts = function (oRm, iDuration){
818
+ const iHeight = iDuration / 60 * 100;
819
+
820
+ oRm.openStart("div");
821
+ oRm.style("height",`${iHeight}%`);
822
+ oRm.openEnd();
823
+ oRm.close("div");
824
+ };
825
+
826
+ SinglePlanningCalendarGridRenderer.renderNonWorkingParts = function (oRm, iDuration){
827
+ const iHeight = iDuration / 60 * 100;
828
+
829
+ oRm.openStart("div");
830
+ oRm.class("sapMSinglePCNonWorkingPeriod");
831
+ oRm.style("height",`${iHeight}%`);
832
+ oRm.openEnd();
833
+ oRm.close("div");
834
+ };
835
+
765
836
  return SinglePlanningCalendarGridRenderer;
766
837
 
767
838
  }, true /* bExport */);
@@ -95,7 +95,7 @@ sap.ui.define([
95
95
  * @extends sap.ui.core.Control
96
96
  *
97
97
  * @author SAP SE
98
- * @version 1.126.1
98
+ * @version 1.128.0
99
99
  *
100
100
  * @constructor
101
101
  * @private
@@ -444,6 +444,27 @@ sap.ui.define([
444
444
  return false;
445
445
  };
446
446
 
447
+ /**
448
+ * Checks whether there are appointments related to a given grid cell
449
+ * @param {sap.ui.unified.calendar.CalendarDate} oDay The date of the grid cell
450
+ * @returns {boolean} Indicator if there are appointments realted to the grid cell
451
+ */
452
+ SinglePlanningCalendarMonthGrid.prototype._doesContainAppointments = function(oDay) {
453
+ return this.getAppointments().some((oAppointment) => {
454
+ if (oAppointment.getStartDate() && oAppointment.getEndDate()) {
455
+ const oStartDate = CalendarDate.fromLocalJSDate(oAppointment.getStartDate());
456
+ const oEndDate = CalendarDate.fromLocalJSDate(oAppointment.getEndDate());
457
+
458
+ return oDay.isSameOrAfter(oStartDate) && oDay.isBefore(oEndDate);
459
+ }
460
+ return false;
461
+ });
462
+ };
463
+
464
+ SinglePlanningCalendarMonthGrid.prototype._getCellDescription = function () {
465
+ return Core.getLibraryResourceBundle("sap.m").getText("SPC_CELL_DESCRIPTION");
466
+ };
467
+
447
468
  SinglePlanningCalendarMonthGrid.prototype.onAfterRendering = function() {
448
469
  this._initItemNavigation();
449
470
  this._aMoreCountPerDay.fill(0);
@@ -520,7 +541,7 @@ sap.ui.define([
520
541
  return;
521
542
  }
522
543
 
523
- const oFirstSiblingElement = oEvent.originalEvent.target.nextSibling.children[0];
544
+ const oFirstSiblingElement = oEvent.target.nextSibling.querySelectorAll(".sapMSPCMonthDay")[0];
524
545
  const iIndex = this._aGridCells.indexOf(oFirstSiblingElement);
525
546
  this._oItemNavigation.focusItem(iIndex);
526
547
  };
@@ -578,14 +599,52 @@ sap.ui.define([
578
599
  }
579
600
 
580
601
  var oControl = this._findSrcControl(oEvent);
581
- if (oControl && oControl.isA("sap.ui.unified.CalendarAppointment")) {
582
- var sBundleKey = oControl.getSelected() ? "APPOINTMENT_SELECTED" : "APPOINTMENT_UNSELECTED";
583
- this._oInvisibleMessage.announce(this._oUnifiedRB.getText(sBundleKey), InvisibleMessageMode.Polite);
602
+ if (oControl && oControl.isA("sap.ui.unified.CalendarAppointment") && !oControl.getSelected()) {
603
+ this._oInvisibleMessage.announce(this._oUnifiedRB.getText("APPOINTMENT_UNSELECTED"), InvisibleMessageMode.Polite);
584
604
  }
585
605
 
586
606
  // Prevent scrolling
587
607
  oEvent.preventDefault();
588
608
  }
609
+
610
+ if (oEvent.which !== KeyCodes.TAB) {
611
+ return;
612
+ }
613
+
614
+ if (oEvent.target.classList.contains("sapMSPCMonthDay")) {
615
+ const parentContainer = oEvent.target.parentElement;
616
+ const aAppointments = parentContainer.querySelectorAll(".sapUiCalendarRowApps");
617
+ if (aAppointments.length) {
618
+ oEvent.preventDefault();
619
+ aAppointments[0].focus();
620
+ }
621
+ } else if (oEvent.shiftKey && oEvent.target.classList.contains("sapMLnk")) {
622
+ const parentContainer = oEvent.target.parentElement.parentElement.parentElement;
623
+ const aLinks = parentContainer.querySelectorAll(".sapMSPCMonthLnkMore");
624
+ const oFirstLink = aLinks[0].querySelector(".sapMLnk");
625
+
626
+ if (oFirstLink.id === oEvent.target.id) {
627
+ const aAppointments = parentContainer.querySelectorAll(".sapUiCalendarRowApps");
628
+ if (aAppointments.length) {
629
+ const oLastApp = aAppointments[aAppointments.length - 1];
630
+ oEvent.preventDefault();
631
+ oLastApp.focus();
632
+ }
633
+ }
634
+ } else if (!oEvent.shiftKey && oEvent.target.classList.contains("sapUiCalendarRowApps")) {
635
+ const parentContainer = oEvent.target.parentElement;
636
+ const aAppointments = parentContainer.children;
637
+ if (aAppointments.length) {
638
+ const oLastApp = aAppointments[aAppointments.length - 1];
639
+ if (oLastApp.id === oEvent.target.id) {
640
+ const oMoreLink = parentContainer.parentElement.querySelector(".sapMSPCMonthLnkMore > .sapMLnk");
641
+ if (oMoreLink) {
642
+ oEvent.preventDefault();
643
+ oMoreLink.focus();
644
+ }
645
+ }
646
+ }
647
+ }
589
648
  };
590
649
 
591
650
  SinglePlanningCalendarMonthGrid.prototype._isSelectAppointment = function (oEvent) {
@@ -755,7 +814,9 @@ sap.ui.define([
755
814
  SinglePlanningCalendarMonthGrid.prototype._fireGridCellSelectionEvent = function (oEvent, bWeekNumberSelect){
756
815
  const iExtraDayCount = 6;
757
816
  const iSingleDay = 1;
758
- const oSelectedCell = bWeekNumberSelect ? oEvent.originalEvent.target.nextSibling.children[0] : this._findSelectCell(oEvent.target);
817
+ const oSelectedCell = bWeekNumberSelect
818
+ ? oEvent.target.nextSibling.querySelectorAll(".sapMSPCMonthDay")[0]
819
+ : this._findSelectCell(oEvent.target);
759
820
  const iNextDays = bWeekNumberSelect ? iExtraDayCount : iSingleDay;
760
821
  const iTimestamp = parseInt(oSelectedCell.getAttribute("sap-ui-date"));
761
822
  let oStartDate = UI5Date.getInstance(iTimestamp);
@@ -1345,7 +1406,7 @@ sap.ui.define([
1345
1406
  .getLibraryResourceBundle("sap.ui.unified")
1346
1407
  .getText("CALENDAR_START_TIME");
1347
1408
 
1348
- return sStartTime + ": " + this._oFormatAriaFullDayCell.format(oStartDate) + "; ";
1409
+ return sStartTime + ": " + this._oFormatAriaFullDayCell.format(oStartDate);
1349
1410
  };
1350
1411
 
1351
1412
  SinglePlanningCalendarMonthGrid.prototype._getAppointmentAnnouncementInfo = function(oAppointment) {
@@ -122,11 +122,9 @@ sap.ui.define([
122
122
  oRm.attr("role", "row");
123
123
  oRm.openEnd();
124
124
 
125
- for (j = 0; j < iColumns; j++) {
126
- iCellIndex = i * iColumns + j;
127
- oDay = aCells[iCellIndex];
128
- this.renderDay(oRm, oControl, oDay, oLocaleData, aMoreCountPerCell[iCellIndex], iCellIndex);
129
- }
125
+ oRm.openStart("div");
126
+ oRm.attr("role", "gridcell" );
127
+ oRm.openEnd();
130
128
 
131
129
  oRm.openStart("div");
132
130
  oRm.class("sapMSinglePCBlockers");
@@ -147,6 +145,13 @@ sap.ui.define([
147
145
  }
148
146
 
149
147
  oRm.close("div"); // end appointments
148
+ oRm.close("div");
149
+
150
+ for (j = 0; j < iColumns; j++) {
151
+ iCellIndex = i * iColumns + j;
152
+ oDay = aCells[iCellIndex];
153
+ this.renderDay(oRm, oControl, oDay, oLocaleData, aMoreCountPerCell[iCellIndex], iCellIndex);
154
+ }
150
155
  oRm.close("div"); // end cells
151
156
  oRm.close("div"); // end grid
152
157
  }
@@ -238,6 +243,9 @@ sap.ui.define([
238
243
  if (oControl._sLegendId && sLegendItemType) {
239
244
  oRm.text(sLegendItemType);
240
245
  }
246
+ if (oControl._doesContainAppointments(oDay)) {
247
+ oRm.text(oControl._getCellDescription());
248
+ }
241
249
  oRm.close("span");
242
250
 
243
251
  if (bToday) {
@@ -375,7 +383,10 @@ sap.ui.define([
375
383
  }
376
384
 
377
385
  if (oAppointment.getSelected()) {
378
- mAccProps["labelledby"].value = mAccProps["labelledby"].value + " " + InvisibleText.getStaticId("sap.ui.unified", "APPOINTMENT_SELECTED");
386
+ mAccProps["describedby"] = {
387
+ value: InvisibleText.getStaticId("sap.ui.unified", "APPOINTMENT_SELECTED"),
388
+ append: true
389
+ };
379
390
  }
380
391
 
381
392
  oRm.openStart("div", oAppointment.getId() + "-" + iColumn + "_" + iRow);
@@ -428,7 +439,7 @@ sap.ui.define([
428
439
  oRm.openStart("div");
429
440
  oRm.class("sapUiCalendarAppCont");
430
441
 
431
- if (sColor) {
442
+ if (sColor && !oAppointment.getSelected()) {
432
443
  oRm.style("background-color", oAppointment._getCSSColorForBackground(sColor));
433
444
  }
434
445
 
@@ -514,7 +525,6 @@ sap.ui.define([
514
525
  oFirstRenderedDate.setDate(oFirstRenderedDate.getDate() + 1);
515
526
 
516
527
  oRm.accessibilityState(null, {
517
- role: "columnheader",
518
528
  label: aWeekDaysWide[iDayIndex]
519
529
  });
520
530
  oRm.openEnd();
@@ -28,7 +28,7 @@ sap.ui.define([
28
28
  * @extends sap.m.SinglePlanningCalendarView
29
29
  *
30
30
  * @author SAP SE
31
- * @version 1.126.1
31
+ * @version 1.128.0
32
32
  *
33
33
  * @constructor
34
34
  * @public
@@ -26,7 +26,7 @@ function (library, Log, Element) {
26
26
  * @extends sap.ui.core.Element
27
27
  *
28
28
  * @author SAP SE
29
- * @version 1.126.1
29
+ * @version 1.128.0
30
30
  *
31
31
  * @constructor
32
32
  * @public
@@ -31,7 +31,7 @@ function (library, SinglePlanningCalendarView, Formatting, LocaleData, CalendarD
31
31
  * @extends sap.m.SinglePlanningCalendarView
32
32
  *
33
33
  * @author SAP SE
34
- * @version 1.126.1
34
+ * @version 1.128.0
35
35
  *
36
36
  * @constructor
37
37
  * @public