@openui5/sap.m 1.92.0 → 1.95.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 (463) hide show
  1. package/.reuse/dep5 +1 -6
  2. package/THIRDPARTY.txt +4 -10
  3. package/package.json +4 -4
  4. package/src/sap/m/.library +1 -1
  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 +1 -1
  8. package/src/sap/m/ActionSheet.js +1 -1
  9. package/src/sap/m/App.js +5 -1
  10. package/src/sap/m/AssociativeOverflowToolbar.js +1 -1
  11. package/src/sap/m/Avatar.js +1 -4
  12. package/src/sap/m/Bar.js +26 -7
  13. package/src/sap/m/Breadcrumbs.js +2 -2
  14. package/src/sap/m/BusyDialog.js +1 -1
  15. package/src/sap/m/BusyIndicator.js +1 -1
  16. package/src/sap/m/Button.js +42 -6
  17. package/src/sap/m/Carousel.js +11 -3
  18. package/src/sap/m/CarouselLayout.js +1 -1
  19. package/src/sap/m/CheckBox.js +9 -4
  20. package/src/sap/m/CheckBoxRenderer.js +12 -3
  21. package/src/sap/m/ColorPalette.js +1 -1
  22. package/src/sap/m/ColorPalettePopover.js +1 -1
  23. package/src/sap/m/Column.js +9 -1
  24. package/src/sap/m/ColumnHeaderPopover.js +1 -1
  25. package/src/sap/m/ColumnListItem.js +8 -2
  26. package/src/sap/m/ColumnPopoverActionItem.js +1 -1
  27. package/src/sap/m/ColumnPopoverCustomItem.js +1 -1
  28. package/src/sap/m/ColumnPopoverItem.js +1 -1
  29. package/src/sap/m/ColumnPopoverSelectListItem.js +1 -1
  30. package/src/sap/m/ColumnPopoverSortItem.js +1 -1
  31. package/src/sap/m/ComboBox.js +1 -1
  32. package/src/sap/m/ComboBoxBase.js +5 -2
  33. package/src/sap/m/ComboBoxRenderer.js +25 -9
  34. package/src/sap/m/ComboBoxTextField.js +1 -1
  35. package/src/sap/m/CustomDynamicDateOption.js +6 -2
  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 +30 -3
  40. package/src/sap/m/DatePickerRenderer.js +1 -1
  41. package/src/sap/m/DateRangeSelection.js +2 -2
  42. package/src/sap/m/DateTimeField.js +69 -1
  43. package/src/sap/m/DateTimeInput.js +1 -1
  44. package/src/sap/m/DateTimePicker.js +15 -8
  45. package/src/sap/m/Dialog.js +31 -93
  46. package/src/sap/m/DialogRenderer.js +1 -1
  47. package/src/sap/m/DisplayListItem.js +1 -1
  48. package/src/sap/m/DraftIndicator.js +1 -1
  49. package/src/sap/m/DynamicDate.js +67 -13
  50. package/src/sap/m/DynamicDateFormat.js +12 -1
  51. package/src/sap/m/DynamicDateOption.js +56 -16
  52. package/src/sap/m/DynamicDateRange.js +136 -23
  53. package/src/sap/m/DynamicDateUtil.js +20 -2
  54. package/src/sap/m/DynamicDateValueHelpUIType.js +1 -1
  55. package/src/sap/m/ExpandableText.js +4 -2
  56. package/src/sap/m/FacetFilter.js +47 -16
  57. package/src/sap/m/FacetFilterItem.js +1 -1
  58. package/src/sap/m/FacetFilterList.js +2 -2
  59. package/src/sap/m/FeedContent.js +1 -1
  60. package/src/sap/m/FeedInput.js +5 -2
  61. package/src/sap/m/FeedListItem.js +1 -1
  62. package/src/sap/m/FeedListItemAction.js +1 -1
  63. package/src/sap/m/Fiori20Adapter.js +2 -2
  64. package/src/sap/m/FlexBox.js +32 -67
  65. package/src/sap/m/FlexItemData.js +1 -1
  66. package/src/sap/m/FormattedText.js +1 -1
  67. package/src/sap/m/GenericTag.js +1 -1
  68. package/src/sap/m/GenericTile.js +9 -3
  69. package/src/sap/m/GenericTileRenderer.js +46 -8
  70. package/src/sap/m/GroupHeaderListItem.js +1 -1
  71. package/src/sap/m/GrowingEnablement.js +31 -34
  72. package/src/sap/m/GrowingList.js +1 -1
  73. package/src/sap/m/HBox.js +1 -1
  74. package/src/sap/m/HeaderContainer.js +53 -1
  75. package/src/sap/m/HeaderContainerItemNavigator.js +1 -1
  76. package/src/sap/m/IconTabBar.js +2 -2
  77. package/src/sap/m/IconTabBarSelectList.js +1 -1
  78. package/src/sap/m/IconTabFilter.js +75 -37
  79. package/src/sap/m/IconTabFilterExpandButtonBadge.js +1 -1
  80. package/src/sap/m/IconTabHeader.js +21 -7
  81. package/src/sap/m/IconTabHeaderRenderer.js +1 -0
  82. package/src/sap/m/IconTabSeparator.js +1 -1
  83. package/src/sap/m/Image.js +1 -1
  84. package/src/sap/m/ImageContent.js +1 -1
  85. package/src/sap/m/Input.js +131 -37
  86. package/src/sap/m/InputBase.js +13 -6
  87. package/src/sap/m/InputListItem.js +1 -1
  88. package/src/sap/m/Label.js +1 -1
  89. package/src/sap/m/LightBox.js +2 -2
  90. package/src/sap/m/LightBoxItem.js +1 -1
  91. package/src/sap/m/Link.js +2 -2
  92. package/src/sap/m/List.js +1 -1
  93. package/src/sap/m/ListBase.js +61 -24
  94. package/src/sap/m/ListItemBase.js +22 -21
  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 +1 -1
  99. package/src/sap/m/MenuButton.js +21 -4
  100. package/src/sap/m/MenuButtonRenderer.js +1 -0
  101. package/src/sap/m/MenuItem.js +1 -1
  102. package/src/sap/m/MenuListItem.js +1 -1
  103. package/src/sap/m/MessageBox.js +31 -1
  104. package/src/sap/m/MessageItem.js +1 -1
  105. package/src/sap/m/MessageListItem.js +1 -1
  106. package/src/sap/m/MessagePage.js +1 -1
  107. package/src/sap/m/MessagePopover.js +1 -4
  108. package/src/sap/m/MessagePopoverItem.js +1 -1
  109. package/src/sap/m/MessageStrip.js +1 -1
  110. package/src/sap/m/MessageStripUtilities.js +15 -2
  111. package/src/sap/m/MessageToast.js +2 -2
  112. package/src/sap/m/MessageView.js +10 -10
  113. package/src/sap/m/MultiComboBox.js +164 -163
  114. package/src/sap/m/MultiEditField.js +1 -1
  115. package/src/sap/m/MultiInput.js +54 -6
  116. package/src/sap/m/NavContainer.js +20 -9
  117. package/src/sap/m/NewsContent.js +1 -1
  118. package/src/sap/m/NotificationList.js +1 -1
  119. package/src/sap/m/NotificationListBase.js +1 -1
  120. package/src/sap/m/NotificationListGroup.js +1 -1
  121. package/src/sap/m/NotificationListItem.js +1 -1
  122. package/src/sap/m/NumericContent.js +1 -1
  123. package/src/sap/m/ObjectAttribute.js +1 -1
  124. package/src/sap/m/ObjectHeader.js +1 -1
  125. package/src/sap/m/ObjectHeaderRenderer.js +9 -7
  126. package/src/sap/m/ObjectIdentifier.js +1 -1
  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 +13 -1
  130. package/src/sap/m/ObjectStatus.js +1 -1
  131. package/src/sap/m/OverflowToolbar.js +8 -2
  132. package/src/sap/m/OverflowToolbarAssociativePopover.js +1 -1
  133. package/src/sap/m/OverflowToolbarButton.js +1 -1
  134. package/src/sap/m/OverflowToolbarLayoutData.js +1 -1
  135. package/src/sap/m/OverflowToolbarToggleButton.js +1 -1
  136. package/src/sap/m/P13nAnyFilterItem.js +1 -1
  137. package/src/sap/m/P13nColumnsItem.js +1 -1
  138. package/src/sap/m/P13nColumnsPanel.js +1 -1
  139. package/src/sap/m/P13nConditionPanel.js +2 -2
  140. package/src/sap/m/P13nDialog.js +1 -1
  141. package/src/sap/m/P13nDimMeasureItem.js +1 -1
  142. package/src/sap/m/P13nDimMeasurePanel.js +1 -1
  143. package/src/sap/m/P13nFilterItem.js +1 -1
  144. package/src/sap/m/P13nFilterPanel.js +1 -1
  145. package/src/sap/m/P13nGroupItem.js +1 -1
  146. package/src/sap/m/P13nGroupPanel.js +1 -1
  147. package/src/sap/m/P13nItem.js +1 -1
  148. package/src/sap/m/P13nPanel.js +1 -1
  149. package/src/sap/m/P13nSelectionItem.js +1 -1
  150. package/src/sap/m/P13nSelectionPanel.js +1 -1
  151. package/src/sap/m/P13nSortItem.js +1 -1
  152. package/src/sap/m/P13nSortPanel.js +1 -1
  153. package/src/sap/m/PDFViewer.js +14 -5
  154. package/src/sap/m/Page.js +1 -1
  155. package/src/sap/m/PageAccessibleLandmarkInfo.js +1 -1
  156. package/src/sap/m/PagingButton.js +1 -1
  157. package/src/sap/m/Panel.js +1 -1
  158. package/src/sap/m/PlanningCalendar.js +260 -54
  159. package/src/sap/m/PlanningCalendarHeader.js +36 -5
  160. package/src/sap/m/PlanningCalendarLegend.js +1 -1
  161. package/src/sap/m/PlanningCalendarLegendRenderer.js +2 -0
  162. package/src/sap/m/PlanningCalendarRow.js +1 -1
  163. package/src/sap/m/PlanningCalendarView.js +26 -2
  164. package/src/sap/m/Popover.js +15 -6
  165. package/src/sap/m/ProgressIndicator.js +1 -1
  166. package/src/sap/m/PullToRefresh.js +1 -1
  167. package/src/sap/m/QuickView.js +1 -1
  168. package/src/sap/m/QuickViewBase.js +1 -1
  169. package/src/sap/m/QuickViewCard.js +1 -1
  170. package/src/sap/m/QuickViewGroup.js +1 -1
  171. package/src/sap/m/QuickViewGroupElement.js +1 -1
  172. package/src/sap/m/QuickViewPage.js +5 -5
  173. package/src/sap/m/RadioButton.js +1 -1
  174. package/src/sap/m/RadioButtonGroup.js +1 -1
  175. package/src/sap/m/RangeSlider.js +1 -1
  176. package/src/sap/m/RatingIndicator.js +78 -36
  177. package/src/sap/m/ResponsivePopover.js +1 -1
  178. package/src/sap/m/ResponsiveScale.js +1 -1
  179. package/src/sap/m/ScrollBar.js +1 -1
  180. package/src/sap/m/ScrollContainer.js +1 -1
  181. package/src/sap/m/SearchField.js +38 -20
  182. package/src/sap/m/SearchFieldRenderer.js +29 -15
  183. package/src/sap/m/SegmentedButton.js +12 -17
  184. package/src/sap/m/SegmentedButtonItem.js +1 -1
  185. package/src/sap/m/Select.js +36 -17
  186. package/src/sap/m/SelectDialog.js +21 -49
  187. package/src/sap/m/SelectDialogBase.js +148 -0
  188. package/src/sap/m/SelectList.js +13 -3
  189. package/src/sap/m/SelectRenderer.js +15 -3
  190. package/src/sap/m/SelectionDetails.js +5 -2
  191. package/src/sap/m/SelectionDetailsFacade.js +2 -2
  192. package/src/sap/m/SelectionDetailsItem.js +1 -1
  193. package/src/sap/m/SelectionDetailsItemLine.js +1 -1
  194. package/src/sap/m/Shell.js +9 -17
  195. package/src/sap/m/SimpleFixFlex.js +1 -1
  196. package/src/sap/m/SinglePlanningCalendar.js +4 -1
  197. package/src/sap/m/SinglePlanningCalendarDayView.js +1 -1
  198. package/src/sap/m/SinglePlanningCalendarGrid.js +57 -7
  199. package/src/sap/m/SinglePlanningCalendarGridRenderer.js +27 -19
  200. package/src/sap/m/SinglePlanningCalendarMonthGrid.js +11 -1
  201. package/src/sap/m/SinglePlanningCalendarMonthView.js +1 -1
  202. package/src/sap/m/SinglePlanningCalendarView.js +1 -1
  203. package/src/sap/m/SinglePlanningCalendarWeekView.js +1 -1
  204. package/src/sap/m/SinglePlanningCalendarWorkWeekView.js +1 -1
  205. package/src/sap/m/SlideTile.js +3 -3
  206. package/src/sap/m/Slider.js +1 -1
  207. package/src/sap/m/SliderRenderer.js +2 -2
  208. package/src/sap/m/SliderTooltip.js +1 -1
  209. package/src/sap/m/SliderTooltipBase.js +1 -1
  210. package/src/sap/m/SliderTooltipContainer.js +1 -1
  211. package/src/sap/m/SplitApp.js +1 -1
  212. package/src/sap/m/SplitButton.js +3 -7
  213. package/src/sap/m/SplitContainer.js +4 -5
  214. package/src/sap/m/StandardDynamicDateOption.js +45 -10
  215. package/src/sap/m/StandardListItem.js +63 -13
  216. package/src/sap/m/StandardListItemRenderer.js +21 -9
  217. package/src/sap/m/StandardTile.js +1 -1
  218. package/src/sap/m/StandardTreeItem.js +1 -1
  219. package/src/sap/m/StepInput.js +22 -5
  220. package/src/sap/m/Suggest.js +25 -25
  221. package/src/sap/m/SuggestionItem.js +1 -1
  222. package/src/sap/m/SuggestionsPopover.js +1 -1
  223. package/src/sap/m/Switch.js +1 -1
  224. package/src/sap/m/TabContainer.js +1 -1
  225. package/src/sap/m/TabContainerItem.js +1 -1
  226. package/src/sap/m/TabStrip.js +1 -1
  227. package/src/sap/m/TabStripItem.js +1 -1
  228. package/src/sap/m/Table.js +49 -9
  229. package/src/sap/m/TablePersoController.js +1 -1
  230. package/src/sap/m/TablePersoDialog.js +1 -1
  231. package/src/sap/m/TablePersoProvider.js +1 -1
  232. package/src/sap/m/TableRenderer.js +6 -5
  233. package/src/sap/m/TableSelectDialog.js +21 -46
  234. package/src/sap/m/Text.js +2 -2
  235. package/src/sap/m/TextArea.js +2 -2
  236. package/src/sap/m/Tile.js +1 -1
  237. package/src/sap/m/TileContainer.js +2 -2
  238. package/src/sap/m/TileContent.js +1 -1
  239. package/src/sap/m/TimePicker.js +11 -5
  240. package/src/sap/m/TimePickerClock.js +2 -2
  241. package/src/sap/m/TimePickerClocks.js +4 -1
  242. package/src/sap/m/TimePickerInputs.js +5 -3
  243. package/src/sap/m/TimePickerInternals.js +1 -1
  244. package/src/sap/m/TimePickerSlider.js +2 -2
  245. package/src/sap/m/TimePickerSliders.js +1 -1
  246. package/src/sap/m/TimePickerSlidersRenderer.js +0 -1
  247. package/src/sap/m/Title.js +1 -1
  248. package/src/sap/m/TitlePropagationSupport.js +1 -1
  249. package/src/sap/m/ToggleButton.js +1 -1
  250. package/src/sap/m/Token.js +1 -1
  251. package/src/sap/m/Tokenizer.js +45 -3
  252. package/src/sap/m/TokenizerRenderer.js +6 -0
  253. package/src/sap/m/Toolbar.js +1 -1
  254. package/src/sap/m/ToolbarLayoutData.js +1 -1
  255. package/src/sap/m/ToolbarSeparator.js +1 -1
  256. package/src/sap/m/ToolbarSpacer.js +1 -1
  257. package/src/sap/m/Tree.js +1 -1
  258. package/src/sap/m/TreeItemBase.js +4 -4
  259. package/src/sap/m/UploadCollection.js +2 -2
  260. package/src/sap/m/UploadCollectionItem.js +1 -1
  261. package/src/sap/m/UploadCollectionParameter.js +1 -1
  262. package/src/sap/m/UploadCollectionToolbarPlaceholder.js +1 -1
  263. package/src/sap/m/VBox.js +1 -1
  264. package/src/sap/m/ValueStateHeader.js +1 -1
  265. package/src/sap/m/ViewSettingsCustomItem.js +1 -1
  266. package/src/sap/m/ViewSettingsCustomTab.js +1 -1
  267. package/src/sap/m/ViewSettingsDialog.js +7 -7
  268. package/src/sap/m/ViewSettingsFilterItem.js +1 -1
  269. package/src/sap/m/ViewSettingsItem.js +1 -1
  270. package/src/sap/m/VisibleItem.js +1 -1
  271. package/src/sap/m/WheelSlider.js +2 -2
  272. package/src/sap/m/WheelSliderContainer.js +1 -1
  273. package/src/sap/m/Wizard.js +1 -1
  274. package/src/sap/m/WizardProgressNavigator.js +1 -1
  275. package/src/sap/m/WizardStep.js +1 -1
  276. package/src/sap/m/changeHandler/AddTableColumn.js +76 -44
  277. package/src/sap/m/changeHandler/ChangeLinkTarget.js +18 -23
  278. package/src/sap/m/changeHandler/CombineButtons.js +281 -175
  279. package/src/sap/m/changeHandler/MoveTableColumns.js +143 -111
  280. package/src/sap/m/changeHandler/SelectIconTabBarFilter.js +77 -0
  281. package/src/sap/m/changeHandler/SplitMenuButton.js +147 -93
  282. package/src/sap/m/designtime/IconTabBar.designtime.js +82 -2
  283. package/src/sap/m/designtime/IconTabBarSelectTab.fragment.xml +17 -0
  284. package/src/sap/m/designtime/ObjectIdentifier.designtime.js +16 -12
  285. package/src/sap/m/designtime/messagebundle.properties +9 -0
  286. package/src/sap/m/designtime/messagebundle_ar.properties +6 -0
  287. package/src/sap/m/designtime/messagebundle_bg.properties +6 -0
  288. package/src/sap/m/designtime/messagebundle_ca.properties +6 -0
  289. package/src/sap/m/designtime/messagebundle_cs.properties +6 -0
  290. package/src/sap/m/designtime/messagebundle_cy.properties +6 -0
  291. package/src/sap/m/designtime/messagebundle_da.properties +6 -0
  292. package/src/sap/m/designtime/messagebundle_de.properties +6 -0
  293. package/src/sap/m/designtime/messagebundle_el.properties +6 -0
  294. package/src/sap/m/designtime/messagebundle_en.properties +6 -0
  295. package/src/sap/m/designtime/messagebundle_en_GB.properties +6 -0
  296. package/src/sap/m/designtime/messagebundle_en_US_sappsd.properties +6 -0
  297. package/src/sap/m/designtime/messagebundle_en_US_saptrc.properties +6 -0
  298. package/src/sap/m/designtime/messagebundle_es.properties +6 -0
  299. package/src/sap/m/designtime/messagebundle_es_MX.properties +6 -0
  300. package/src/sap/m/designtime/messagebundle_et.properties +6 -0
  301. package/src/sap/m/designtime/messagebundle_fi.properties +6 -0
  302. package/src/sap/m/designtime/messagebundle_fr.properties +6 -0
  303. package/src/sap/m/designtime/messagebundle_fr_CA.properties +6 -0
  304. package/src/sap/m/designtime/messagebundle_hi.properties +6 -0
  305. package/src/sap/m/designtime/messagebundle_hr.properties +6 -0
  306. package/src/sap/m/designtime/messagebundle_hu.properties +6 -0
  307. package/src/sap/m/designtime/messagebundle_id.properties +6 -0
  308. package/src/sap/m/designtime/messagebundle_it.properties +6 -0
  309. package/src/sap/m/designtime/messagebundle_iw.properties +6 -0
  310. package/src/sap/m/designtime/messagebundle_ja.properties +6 -0
  311. package/src/sap/m/designtime/messagebundle_kk.properties +6 -0
  312. package/src/sap/m/designtime/messagebundle_ko.properties +6 -0
  313. package/src/sap/m/designtime/messagebundle_lt.properties +6 -0
  314. package/src/sap/m/designtime/messagebundle_lv.properties +6 -0
  315. package/src/sap/m/designtime/messagebundle_ms.properties +6 -0
  316. package/src/sap/m/designtime/messagebundle_nl.properties +6 -0
  317. package/src/sap/m/designtime/messagebundle_no.properties +6 -0
  318. package/src/sap/m/designtime/messagebundle_pl.properties +6 -0
  319. package/src/sap/m/designtime/messagebundle_pt.properties +6 -0
  320. package/src/sap/m/designtime/messagebundle_pt_PT.properties +6 -0
  321. package/src/sap/m/designtime/messagebundle_ro.properties +6 -0
  322. package/src/sap/m/designtime/messagebundle_ru.properties +6 -0
  323. package/src/sap/m/designtime/messagebundle_sh.properties +6 -0
  324. package/src/sap/m/designtime/messagebundle_sk.properties +6 -0
  325. package/src/sap/m/designtime/messagebundle_sl.properties +6 -0
  326. package/src/sap/m/designtime/messagebundle_sv.properties +6 -0
  327. package/src/sap/m/designtime/messagebundle_th.properties +6 -0
  328. package/src/sap/m/designtime/messagebundle_tr.properties +6 -0
  329. package/src/sap/m/designtime/messagebundle_uk.properties +6 -0
  330. package/src/sap/m/designtime/messagebundle_vi.properties +6 -0
  331. package/src/sap/m/designtime/messagebundle_zh_CN.properties +6 -0
  332. package/src/sap/m/designtime/messagebundle_zh_TW.properties +6 -0
  333. package/src/sap/m/flexibility/IconTabBar.flexibility.js +21 -0
  334. package/src/sap/m/inputUtils/calculateSelectionStart.js +1 -1
  335. package/src/sap/m/inputUtils/wordStartsWithValue.js +5 -1
  336. package/src/sap/m/library.js +28 -5
  337. package/src/sap/m/messagebundle.properties +22 -5
  338. package/src/sap/m/messagebundle_ar.properties +13 -0
  339. package/src/sap/m/messagebundle_bg.properties +13 -0
  340. package/src/sap/m/messagebundle_ca.properties +13 -0
  341. package/src/sap/m/messagebundle_cs.properties +24 -11
  342. package/src/sap/m/messagebundle_cy.properties +13 -0
  343. package/src/sap/m/messagebundle_da.properties +14 -1
  344. package/src/sap/m/messagebundle_de.properties +18 -5
  345. package/src/sap/m/messagebundle_el.properties +14 -1
  346. package/src/sap/m/messagebundle_en.properties +15 -2
  347. package/src/sap/m/messagebundle_en_GB.properties +13 -0
  348. package/src/sap/m/messagebundle_en_US_sappsd.properties +15 -2
  349. package/src/sap/m/messagebundle_en_US_saptrc.properties +18 -5
  350. package/src/sap/m/messagebundle_es.properties +13 -0
  351. package/src/sap/m/messagebundle_es_MX.properties +16 -3
  352. package/src/sap/m/messagebundle_et.properties +13 -0
  353. package/src/sap/m/messagebundle_fi.properties +13 -0
  354. package/src/sap/m/messagebundle_fr.properties +19 -6
  355. package/src/sap/m/messagebundle_fr_CA.properties +13 -0
  356. package/src/sap/m/messagebundle_hi.properties +13 -0
  357. package/src/sap/m/messagebundle_hr.properties +13 -0
  358. package/src/sap/m/messagebundle_hu.properties +13 -0
  359. package/src/sap/m/messagebundle_id.properties +15 -2
  360. package/src/sap/m/messagebundle_it.properties +19 -6
  361. package/src/sap/m/messagebundle_iw.properties +13 -0
  362. package/src/sap/m/messagebundle_ja.properties +13 -0
  363. package/src/sap/m/messagebundle_kk.properties +13 -0
  364. package/src/sap/m/messagebundle_ko.properties +14 -1
  365. package/src/sap/m/messagebundle_lt.properties +13 -0
  366. package/src/sap/m/messagebundle_lv.properties +13 -0
  367. package/src/sap/m/messagebundle_ms.properties +14 -1
  368. package/src/sap/m/messagebundle_nl.properties +15 -2
  369. package/src/sap/m/messagebundle_no.properties +25 -12
  370. package/src/sap/m/messagebundle_pl.properties +17 -4
  371. package/src/sap/m/messagebundle_pt.properties +16 -3
  372. package/src/sap/m/messagebundle_pt_PT.properties +13 -0
  373. package/src/sap/m/messagebundle_ro.properties +18 -5
  374. package/src/sap/m/messagebundle_ru.properties +14 -1
  375. package/src/sap/m/messagebundle_sh.properties +14 -1
  376. package/src/sap/m/messagebundle_sk.properties +13 -0
  377. package/src/sap/m/messagebundle_sl.properties +13 -0
  378. package/src/sap/m/messagebundle_sv.properties +13 -0
  379. package/src/sap/m/messagebundle_th.properties +13 -0
  380. package/src/sap/m/messagebundle_tr.properties +13 -0
  381. package/src/sap/m/messagebundle_uk.properties +16 -3
  382. package/src/sap/m/messagebundle_vi.properties +14 -1
  383. package/src/sap/m/messagebundle_zh_CN.properties +13 -0
  384. package/src/sap/m/messagebundle_zh_TW.properties +13 -0
  385. package/src/sap/m/plugins/ColumnResizer.js +23 -2
  386. package/src/sap/m/plugins/DataStateIndicator.js +5 -3
  387. package/src/sap/m/plugins/PasteProvider.js +9 -1
  388. package/src/sap/m/plugins/PluginBase.js +1 -1
  389. package/src/sap/m/routing/TargetHandler.js +15 -18
  390. package/src/sap/m/routing/async/Target.js +3 -2
  391. package/src/sap/m/semantic/AddAction.js +1 -1
  392. package/src/sap/m/semantic/CancelAction.js +1 -1
  393. package/src/sap/m/semantic/DeleteAction.js +1 -1
  394. package/src/sap/m/semantic/DetailPage.js +1 -1
  395. package/src/sap/m/semantic/DiscussInJamAction.js +1 -1
  396. package/src/sap/m/semantic/EditAction.js +1 -1
  397. package/src/sap/m/semantic/FavoriteAction.js +1 -1
  398. package/src/sap/m/semantic/FilterAction.js +1 -1
  399. package/src/sap/m/semantic/FilterSelect.js +1 -1
  400. package/src/sap/m/semantic/FlagAction.js +1 -1
  401. package/src/sap/m/semantic/ForwardAction.js +1 -1
  402. package/src/sap/m/semantic/FullscreenPage.js +1 -1
  403. package/src/sap/m/semantic/GroupAction.js +1 -1
  404. package/src/sap/m/semantic/GroupSelect.js +1 -1
  405. package/src/sap/m/semantic/MainAction.js +1 -1
  406. package/src/sap/m/semantic/MasterPage.js +1 -1
  407. package/src/sap/m/semantic/MessagesIndicator.js +1 -1
  408. package/src/sap/m/semantic/MultiSelectAction.js +1 -1
  409. package/src/sap/m/semantic/NegativeAction.js +1 -1
  410. package/src/sap/m/semantic/OpenInAction.js +1 -1
  411. package/src/sap/m/semantic/PositiveAction.js +1 -1
  412. package/src/sap/m/semantic/PrintAction.js +1 -1
  413. package/src/sap/m/semantic/SaveAction.js +1 -1
  414. package/src/sap/m/semantic/Segment.js +1 -1
  415. package/src/sap/m/semantic/SegmentedContainer.js +1 -1
  416. package/src/sap/m/semantic/SemanticButton.js +1 -1
  417. package/src/sap/m/semantic/SemanticConfiguration.js +1 -1
  418. package/src/sap/m/semantic/SemanticControl.js +1 -1
  419. package/src/sap/m/semantic/SemanticOverflowToolbarButton.js +1 -1
  420. package/src/sap/m/semantic/SemanticOverflowToolbarToggleButton.js +2 -2
  421. package/src/sap/m/semantic/SemanticPage.js +1 -1
  422. package/src/sap/m/semantic/SemanticSelect.js +1 -1
  423. package/src/sap/m/semantic/SemanticToggleButton.js +1 -1
  424. package/src/sap/m/semantic/SendEmailAction.js +1 -1
  425. package/src/sap/m/semantic/SendMessageAction.js +1 -1
  426. package/src/sap/m/semantic/ShareInJamAction.js +1 -1
  427. package/src/sap/m/semantic/ShareMenu.js +1 -1
  428. package/src/sap/m/semantic/ShareMenuPage.js +1 -1
  429. package/src/sap/m/semantic/SortAction.js +1 -1
  430. package/src/sap/m/semantic/SortSelect.js +1 -1
  431. package/src/sap/m/themes/base/CheckBox.less +1 -1
  432. package/src/sap/m/themes/base/ColumnListItem.less +2 -2
  433. package/src/sap/m/themes/base/Dialog.less +11 -28
  434. package/src/sap/m/themes/base/FeedInput.less +5 -6
  435. package/src/sap/m/themes/base/GenericTile.less +129 -6
  436. package/src/sap/m/themes/base/IconTabBar.less +169 -61
  437. package/src/sap/m/themes/base/IconTabBarSelectList.less +8 -0
  438. package/src/sap/m/themes/base/Input.less +12 -0
  439. package/src/sap/m/themes/base/ListBase.less +7 -5
  440. package/src/sap/m/themes/base/MessagePage.less +1 -7
  441. package/src/sap/m/themes/base/MessageView.less +4 -0
  442. package/src/sap/m/themes/base/ObjectHeader.less +2 -1
  443. package/src/sap/m/themes/base/ObjectMarker.less +3 -0
  444. package/src/sap/m/themes/base/ObjectNumber.less +1 -1
  445. package/src/sap/m/themes/base/ObjectStatus.less +19 -2
  446. package/src/sap/m/themes/base/OverflowToolbarAssociativePopover.less +0 -6
  447. package/src/sap/m/themes/base/PlanningCalendar.less +23 -7
  448. package/src/sap/m/themes/base/Popover.less +1 -1
  449. package/src/sap/m/themes/base/ProgressIndicator.less +7 -6
  450. package/src/sap/m/themes/base/RadioButton.less +3 -0
  451. package/src/sap/m/themes/base/SearchField.less +1 -1
  452. package/src/sap/m/themes/base/StandardListItem.less +9 -0
  453. package/src/sap/m/themes/base/Table.less +14 -23
  454. package/src/sap/m/themes/base/TextArea.less +1 -1
  455. package/src/sap/m/themes/base/TimePicker.less +5 -1
  456. package/src/sap/m/themes/base/TimePickerSliders.less +1 -5
  457. package/src/sap/m/themes/base/Tokenizer.less +6 -0
  458. package/src/sap/m/themes/base/Toolbar.less +6 -0
  459. package/src/sap/m/themes/base/UploadSet.less +5 -0
  460. package/src/sap/m/themes/base/ViewSettingsDialog.less +29 -2
  461. package/src/sap/m/themes/sap_hcb/IconTabBar.less +3 -3
  462. package/src/sap/m/upload/UploadSet.js +35 -6
  463. package/src/sap/m/upload/UploadSetItem.js +18 -3
@@ -0,0 +1,148 @@
1
+ /*!
2
+ * OpenUI5
3
+ * (c) Copyright 2009-2021 SAP SE or an SAP affiliate company.
4
+ * Licensed under the Apache License, Version 2.0 - see LICENSE.txt.
5
+ */
6
+
7
+ // Provides control sap.m.SelectDialogBase.
8
+ sap.ui.define([
9
+ 'sap/ui/Device',
10
+ 'sap/ui/core/Control'
11
+ ],
12
+ function(
13
+ Device,
14
+ Control
15
+ ) {
16
+ "use strict";
17
+
18
+ /**
19
+ * Constructor for a new SelectDialogBase.
20
+ *
21
+ * @param {string} [sId] ID for the new control, generated automatically if no ID is given
22
+ * @param {object} [mSettings] Initial settings for the new control
23
+ *
24
+ * @class
25
+ * The <code>sap.m.SelectDialogBase</code> control provides a base functionality of the
26
+ * <code>sap.m.SelectDialog</code> and <code>sap.m.TableSelectDialog</code> controls.
27
+ * @extends sap.ui.core.Control
28
+ *
29
+ * @author SAP SE
30
+ * @version 1.95.0
31
+ *
32
+ * @constructor
33
+ * @public
34
+ * @abstract
35
+ * @since 1.93
36
+ * @alias sap.m.SelectDialogBase
37
+ * @ui5-metamodel This control/element also will be described in the UI5 (legacy) designtime metamodel
38
+ */
39
+ var SelectDialogBase = Control.extend("sap.m.SelectDialogBase", /** @lends sap.m.SelectDialogBase.prototype */ {
40
+ metadata: {
41
+ library: "sap.m",
42
+ "abstract": true,
43
+ properties: {},
44
+ aggregations: {},
45
+ events: {
46
+ /**
47
+ * Fires before <code>items</code> binding is updated (e.g. sorting, filtering)
48
+ *
49
+ * <b>Note:</b> Event handler should not invalidate the control. *
50
+ * @since 1.93
51
+ */
52
+ updateStarted : {
53
+ parameters : {
54
+
55
+ /**
56
+ * The reason of the update, e.g. Binding, Filter, Sort, Growing, Change, Refresh, Context.
57
+ */
58
+ reason : {type : "string"},
59
+
60
+ /**
61
+ * Actual number of items.
62
+ */
63
+ actual : {type : "int"},
64
+
65
+ /**
66
+ * The total count of bound items. This can be used if the <code>growing</code> property is set to <code>true</code>.
67
+ */
68
+ total : {type : "int"}
69
+ }
70
+ },
71
+
72
+ /**
73
+ * Fires after <code>items</code> binding is updated and processed by the control.
74
+ * @since 1.93
75
+ */
76
+ updateFinished : {
77
+ parameters : {
78
+
79
+ /**
80
+ * The reason of the update, e.g. Binding, Filter, Sort, Growing, Change, Refresh, Context.
81
+ */
82
+ reason : {type : "string"},
83
+
84
+ /**
85
+ * Actual number of items.
86
+ */
87
+ actual : {type : "int"},
88
+
89
+ /**
90
+ * The total count of bound items. This can be used if the <code>growing</code> property is set to <code>true</code>.
91
+ */
92
+ total : {type : "int"}
93
+ }
94
+ },
95
+
96
+ /**
97
+ * Fires when selection is changed via user interaction inside the control.
98
+ * @since 1.93
99
+ */
100
+ selectionChange : {
101
+ parameters : {
102
+
103
+ /**
104
+ * The item whose selection has changed. In <code>MultiSelect</code> mode, only the up-most selected item is returned. This parameter can be used for single-selection modes.
105
+ */
106
+ listItem : {type : "sap.m.ListItemBase"},
107
+
108
+ /**
109
+ * Array of items whose selection has changed. This parameter can be used for <code>MultiSelect</code> mode.
110
+ */
111
+ listItems : {type : "sap.m.ListItemBase[]"},
112
+
113
+ /**
114
+ * Indicates whether the <code>listItem</code> parameter is selected or not.
115
+ */
116
+ selected : {type : "boolean"},
117
+
118
+ /**
119
+ * Indicates whether the select all action is triggered or not.
120
+ */
121
+ selectAll : {type : "boolean"}
122
+ }
123
+ }
124
+ }
125
+ },
126
+ renderer: {
127
+ apiVersion: 2,
128
+ render: function () {
129
+ }
130
+ }
131
+ });
132
+
133
+ SelectDialogBase.prototype._setInitialFocus = function () {
134
+ if (!Device.system.desktop) {
135
+ return;
136
+ }
137
+
138
+ var oInitiallyFocusedControl = this._oSearchField;
139
+
140
+ if (this.getItems().length) {
141
+ oInitiallyFocusedControl = this.getItems()[0];
142
+ }
143
+
144
+ this._oDialog.setInitialFocus(oInitiallyFocusedControl);
145
+ };
146
+
147
+ return SelectDialogBase;
148
+ });
@@ -37,7 +37,7 @@ sap.ui.define([
37
37
  * @extends sap.ui.core.Control
38
38
  *
39
39
  * @author SAP SE
40
- * @version 1.92.0
40
+ * @version 1.95.0
41
41
  *
42
42
  * @constructor
43
43
  * @public
@@ -256,7 +256,7 @@ sap.ui.define([
256
256
  }
257
257
  };
258
258
 
259
- SelectList.prototype.updateItems = function(sReason) {
259
+ SelectList.prototype.updateItems = function(sReason, oEventInfo) {
260
260
  this.bItemsUpdated = false;
261
261
 
262
262
  // note: for backward compatibility and to keep the old data binding behavior,
@@ -265,6 +265,16 @@ sap.ui.define([
265
265
  this.updateAggregation("items");
266
266
  this.bItemsUpdated = true;
267
267
 
268
+ // Do not try to synchronize selection when updateItems is called with reason Add/Remove VirtualContext,
269
+ // as in some cases, when forceSelection is "true", unwanted PATCH requests with null value may be triggered
270
+ if (oEventInfo && (oEventInfo.detailedReason === "AddVirtualContext"
271
+ || oEventInfo.detailedReason === "RemoveVirtualContext")) {
272
+ this._bHasVirtualContext = true;
273
+ return;
274
+ }
275
+
276
+ this._bHasVirtualContext = false;
277
+
268
278
  // Try to synchronize the selection (synchronous), but if any item's key match with the value of the "selectedKey" property,
269
279
  // don't force the first enabled item to be selected when the forceSelection property is set to true.
270
280
  // It could be possible that the items' properties (models and bindingContext) are not propagated at this point.
@@ -612,7 +622,7 @@ sap.ui.define([
612
622
 
613
623
  // the aggregation items is not bound or
614
624
  // it is bound and the data is already available
615
- } else if (bForceSelection && this.getDefaultSelectedItem() && (!this.isBound("items") || this.bItemsUpdated)) {
625
+ } else if (bForceSelection && !this._bHasVirtualContext && this.getDefaultSelectedItem() && (!this.isBound("items") || this.bItemsUpdated)) {
616
626
  try {
617
627
  this.setSelection(this.getDefaultSelectedItem());
618
628
  } catch (e) {
@@ -178,6 +178,9 @@ sap.ui.define(['sap/ui/core/Renderer', 'sap/ui/core/IconPool', 'sap/m/library',
178
178
  oRm.attr("tabindex", "-1");
179
179
  oRm.attr("aria-hidden", "true");
180
180
 
181
+ //The hidden field is not shown to the user, but the data is sent when the form is submitted.
182
+ oRm.attr("type", "hidden");
183
+
181
184
  // Classes
182
185
  oRm.class("sapUiPseudoInvisibleText");
183
186
 
@@ -196,12 +199,19 @@ sap.ui.define(['sap/ui/core/Renderer', 'sap/ui/core/IconPool', 'sap/m/library',
196
199
  sTextDir = oSelect.getTextDirection(),
197
200
  sTextAlign = Renderer.getTextAlign(oSelect.getTextAlign(), sTextDir),
198
201
  CSS_CLASS = SelectRenderer.CSS_CLASS,
199
- bEditabledAndEnabled = oSelect.getEnabled() && oSelect.getEditable();
202
+ bEditabledAndEnabled = oSelect.getEnabled() && oSelect.getEditable(),
203
+ sTooltip = oSelect.getTooltip_AsString();
200
204
 
201
205
  oRm.openStart("span", oSelect.getId() + "-label");
202
206
  oRm.attr("aria-hidden", true);
203
207
  oRm.class(CSS_CLASS + "Label");
204
208
 
209
+ // since focusable element has sapUiPseudoInvisibleText class
210
+ // the tooltip is also set to the label element to be visually displayed
211
+ if (sTooltip) {
212
+ oRm.attr("title", sTooltip);
213
+ }
214
+
205
215
  if (oSelect.getValueState() !== ValueState.None && bEditabledAndEnabled) {
206
216
  oRm.class(CSS_CLASS + "LabelState");
207
217
  oRm.class(CSS_CLASS + "Label" + oSelect.getValueState());
@@ -264,11 +274,13 @@ sap.ui.define(['sap/ui/core/Renderer', 'sap/ui/core/IconPool', 'sap/m/library',
264
274
  * @private
265
275
  */
266
276
  SelectRenderer.renderIcon = function(oRm, oSelect) {
267
- var sTooltip = oSelect.getTooltip_AsString();
277
+ var sTooltip = oSelect.getTooltip_AsString(),
278
+ oIconInfo = IconPool.getIconInfo(oSelect.getIcon()),
279
+ sIconText = oIconInfo && oIconInfo.text;
268
280
 
269
281
  oRm.icon(oSelect.getIcon(), SelectRenderer.CSS_CLASS + "Icon", {
270
282
  id: oSelect.getId() + "-icon",
271
- title: sTooltip || null
283
+ title: sTooltip || sIconText || null
272
284
  });
273
285
  };
274
286
 
@@ -39,7 +39,7 @@ function(
39
39
  * <b><i>Note:</i></b>It is protected and should only be used within the framework itself.
40
40
  *
41
41
  * @author SAP SE
42
- * @version 1.92.0
42
+ * @version 1.95.0
43
43
  *
44
44
  * @extends sap.ui.core.Control
45
45
  * @constructor
@@ -617,7 +617,10 @@ function(
617
617
  * @private
618
618
  */
619
619
  SelectionDetails.prototype._getNavContainer = function(NavContainer) {
620
- return this._oNavContainer || (this._oNavContainer = new NavContainer(this.getId() + "-nav-container"));
620
+ if (!this._oNavContainer) {
621
+ this._oNavContainer = new NavContainer(this.getId() + "-nav-container");
622
+ }
623
+ return this._oNavContainer;
621
624
  };
622
625
 
623
626
  /**
@@ -10,7 +10,7 @@
10
10
  * @since 1.48.0
11
11
  * @public
12
12
  * @author SAP SE
13
- * @version 1.92.0
13
+ * @version 1.95.0
14
14
  * @borrows sap.ui.core.Element#addCustomData as #addCustomData
15
15
  * @borrows sap.ui.core.Element#getCustomData as #getCustomData
16
16
  * @borrows sap.ui.core.Element#indexOfCustomData as #indexOfCustomData
@@ -45,7 +45,7 @@
45
45
  * @since 1.48.0
46
46
  * @public
47
47
  * @author SAP SE
48
- * @version 1.92.0
48
+ * @version 1.95.0
49
49
  * @borrows sap.ui.core.Element#addCustomData as #addCustomData
50
50
  * @borrows sap.ui.core.Element#getCustomData as #getCustomData
51
51
  * @borrows sap.ui.core.Element#indexOfCustomData as #indexOfCustomData
@@ -54,7 +54,7 @@ sap.ui.define([
54
54
  * @extends sap.ui.core.Element
55
55
  *
56
56
  * @author SAP SE
57
- * @version 1.92.0
57
+ * @version 1.95.0
58
58
  *
59
59
  * @constructor
60
60
  * @protected
@@ -23,7 +23,7 @@ sap.ui.define(["sap/ui/core/Element", "sap/base/Log", "sap/base/util/isPlainObje
23
23
  * @extends sap.ui.core.Element
24
24
  *
25
25
  * @author SAP SE
26
- * @version 1.92.0
26
+ * @version 1.95.0
27
27
  *
28
28
  * @constructor
29
29
  * @protected
@@ -13,9 +13,9 @@ sap.ui.define([
13
13
  'sap/m/ShellRenderer',
14
14
  "sap/ui/util/Mobile",
15
15
  "sap/base/Log",
16
- "sap/ui/thirdparty/jquery"
16
+ "sap/ui/core/theming/Parameters"
17
17
  ],
18
- function(library, Core, Control, coreLibrary, ShellRenderer, Mobile, Log, jQuery) {
18
+ function(library, Core, Control, coreLibrary, ShellRenderer, Mobile, Log, ThemeParameters) {
19
19
  "use strict";
20
20
 
21
21
 
@@ -35,7 +35,7 @@ sap.ui.define([
35
35
  * The Shell control can be used as root element of applications. It can contain an App or a <code>SplitApp</code> control.
36
36
  * The Shell provides some overarching functionality for the overall application and takes care of visual adaptation, such as a frame around the App, on desktop browser platforms.
37
37
  * @extends sap.ui.core.Control
38
- * @version 1.92.0
38
+ * @version 1.95.0
39
39
  *
40
40
  * @constructor
41
41
  * @public
@@ -154,7 +154,7 @@ sap.ui.define([
154
154
 
155
155
  Shell.prototype.init = function() {
156
156
  // theme change might change the logo
157
- Core.attachThemeChanged(jQuery.proxy(function(){
157
+ Core.attachThemeChanged(function(){
158
158
  var $hdr = this.$("hdr"),
159
159
  sImgSrc = this._getImageSrc();
160
160
 
@@ -162,7 +162,7 @@ sap.ui.define([
162
162
  this._getImage().setSrc(sImgSrc);
163
163
  this._getImage().rerender();
164
164
  }
165
- }, this));
165
+ }, this);
166
166
 
167
167
 
168
168
  Mobile.init({
@@ -179,14 +179,13 @@ sap.ui.define([
179
179
  };
180
180
 
181
181
  Shell.prototype.onAfterRendering = function () {
182
- var ref = this.getDomRef().parentNode,
183
- $ref;
182
+ var ref = this.getDomRef().parentNode;
183
+
184
184
  // set all parent elements to 100% height this *should* be done by the application in CSS, but people tend to forget it...
185
185
  if (ref && !ref._sapui5_heightFixed) {
186
186
  ref._sapui5_heightFixed = true;
187
187
  while (ref && ref !== document.documentElement) {
188
- $ref = jQuery(ref);
189
- if ($ref.attr("data-sap-ui-root-content")) { // some parents (e.g. Unified Shell) do this already
188
+ if (ref.getAttribute("data-sap-ui-root-content")) { // some parents (e.g. Unified Shell) do this already
190
189
  break;
191
190
  }
192
191
  if (!ref.style.height) {
@@ -265,14 +264,7 @@ sap.ui.define([
265
264
  };
266
265
 
267
266
  Shell.prototype._getImageSrc = function() {
268
- var sImage = this.getLogo(); // configured logo
269
- if (!sImage) {
270
- //TODO: global jquery call found
271
- jQuery.sap.require("sap.ui.core.theming.Parameters");
272
- sImage = sap.ui.require("sap/ui/core/theming/Parameters")._getThemeImage(); // theme logo
273
- }
274
-
275
- return sImage;
267
+ return this.getLogo() ? this.getLogo() : ThemeParameters._getThemeImage();
276
268
  };
277
269
 
278
270
  return Shell;
@@ -31,7 +31,7 @@ function (Control, ResizeHandler, Log /**, SimpleFixFlexRenderer */) {
31
31
  * @extends sap.ui.core.Control
32
32
  *
33
33
  * @author SAP SE
34
- * @version 1.92.0
34
+ * @version 1.95.0
35
35
  *
36
36
  * @constructor
37
37
  * @private
@@ -105,7 +105,7 @@ function(
105
105
  * @extends sap.ui.core.Control
106
106
  *
107
107
  * @author SAP SE
108
- * @version 1.92.0
108
+ * @version 1.95.0
109
109
  *
110
110
  * @constructor
111
111
  * @public
@@ -217,6 +217,9 @@ function(
217
217
  * The appointments to be displayed in the grid. Appointments outside the visible time frame are not rendered.
218
218
  * Appointments, longer than a day, will be displayed in all of the affected days.
219
219
  * To display an all-day appointment, the appointment must start at 00:00 and end on any day in the future in 00:00h.
220
+ *
221
+ * Note: The <code>customContent</code> functionality of the <code>CalendarAppointment</code> is not available
222
+ * in the <code>SinglePlanningCalendar</code>. If set, it will not make any effect.
220
223
  */
221
224
  appointments : {
222
225
  type: "sap.ui.unified.CalendarAppointment",
@@ -25,7 +25,7 @@ function (library, SinglePlanningCalendarView) {
25
25
  * @extends sap.m.SinglePlanningCalendarView
26
26
  *
27
27
  * @author SAP SE
28
- * @version 1.92.0
28
+ * @version 1.95.0
29
29
  *
30
30
  * @constructor
31
31
  * @public
@@ -101,7 +101,7 @@ sap.ui.define([
101
101
  * @extends sap.ui.core.Control
102
102
  *
103
103
  * @author SAP SE
104
- * @version 1.92.0
104
+ * @version 1.95.0
105
105
  *
106
106
  * @constructor
107
107
  * @private
@@ -587,9 +587,14 @@ sap.ui.define([
587
587
  }
588
588
 
589
589
  var oDragSession = oEvent.getParameter("dragSession"),
590
- $SPCGridOverlay = this.$().find(".sapMSinglePCOverlay"),
590
+ oDragControl = oDragSession.getDragControl(),
591
+ oEventTarget = oEvent.getParameter("browserEvent") && oEvent.getParameter("browserEvent").target || null;
592
+
593
+ oDragControl._sAppointmentPartSuffix = oEventTarget && oEventTarget.id ? oEventTarget.id.replace(oDragControl.getId() + "-", "") : "";
594
+
595
+ var $SPCGridOverlay = this.$().find(".sapMSinglePCOverlay"),
591
596
  $Indicator = jQuery(oDragSession.getIndicator()),
592
- $DraggedControl = oDragSession.getDragControl().$();
597
+ $DraggedControl = oDragControl.$();
593
598
 
594
599
  if (this._isResizeHandleBottomMouseDownTarget) {
595
600
  oDragSession.setComplexData("bottomHandle", "true");
@@ -640,7 +645,7 @@ sap.ui.define([
640
645
  iVariableBoundaryY,
641
646
  mDraggedControlConfig;
642
647
 
643
- if (!oAppointmentStartingBoundaries) {
648
+ if (!oAppointmentStartingBoundaries) {
644
649
  oAppointmentStartingBoundaries = {
645
650
  top: oAppointmentRef.offsetTop,
646
651
  bottom: oAppointmentRef.offsetTop + oAppointmentRef.getBoundingClientRect().height,
@@ -946,7 +951,7 @@ sap.ui.define([
946
951
  * @private
947
952
  */
948
953
  SinglePlanningCalendarGrid.prototype._appFocusHandler = function(oEvent, iDirection) {
949
- var oTarget = sap.ui.getCore().byId(oEvent.target.id);
954
+ var oTarget = sap.ui.getCore().byId(oEvent.target.id) || this._findSrcControl(oEvent);
950
955
 
951
956
  if (oTarget && oTarget.isA("sap.ui.unified.CalendarAppointment")) {
952
957
  this.fireAppointmentSelect({
@@ -1020,6 +1025,12 @@ sap.ui.define([
1020
1025
  aVisibleAppsInDay,
1021
1026
  i, j;
1022
1027
 
1028
+ // directly focus appointment part, if there is any selected
1029
+ if (this._sSelectedAppointment) {
1030
+ this._sSelectedAppointment.focus();
1031
+ return this;
1032
+ }
1033
+
1023
1034
  // Search amongst the visible blockers
1024
1035
  for (i = 0; i < aVisibleBlockers.length; ++i) {
1025
1036
  if (aVisibleBlockers[i].getId() === oFocusInfo.id) {
@@ -1072,6 +1083,7 @@ sap.ui.define([
1072
1083
  */
1073
1084
  SinglePlanningCalendarGrid.prototype._toggleAppointmentSelection = function (oAppointment, bRemoveOldSelection) {
1074
1085
  var aChangedApps = [],
1086
+ oAppointmentDomRef = oAppointment && oAppointment.getDomRef(),
1075
1087
  aAppointments,
1076
1088
  iAppointmentsLength,
1077
1089
  i;
@@ -1091,6 +1103,9 @@ sap.ui.define([
1091
1103
  if (oAppointment) {
1092
1104
  oAppointment.setProperty("selected", !oAppointment.getSelected());
1093
1105
  aChangedApps.push(oAppointment);
1106
+ this._sSelectedAppointment = oAppointment.getSelected() && oAppointmentDomRef ? oAppointment : undefined;
1107
+ } else {
1108
+ this._sSelectedAppointment = undefined;
1094
1109
  }
1095
1110
 
1096
1111
  return aChangedApps;
@@ -1194,13 +1209,33 @@ sap.ui.define([
1194
1209
  }
1195
1210
  };
1196
1211
 
1212
+ SinglePlanningCalendarGrid.prototype._findSrcControl = function (oEvent) {
1213
+ // data-sap-ui-related - This is a relation to appointment object.
1214
+ // This is the connection between the DOM Element and the Object representing an appointment.
1215
+ var $targetElement = oEvent.target,
1216
+ $targetsParentElement = $targetElement.parentElement,
1217
+ sAppointmentId;
1218
+ if (!$targetsParentElement) {
1219
+ return oEvent.srcControl;
1220
+ } else if ($targetsParentElement.classList.contains("sapUiCalendarRowApps")) {
1221
+ sAppointmentId = $targetsParentElement.getAttribute("data-sap-ui-related");
1222
+ } else {
1223
+ sAppointmentId = $targetElement.getAttribute("data-sap-ui-related");
1224
+ }
1225
+
1226
+ // finding the appointment
1227
+ return this.getAppointments().find(function (oAppointment) {
1228
+ return oAppointment.sId === sAppointmentId;
1229
+ });
1230
+ };
1231
+
1197
1232
  /**
1198
1233
  * Helper function handling <code>keydown</code> or <code>tap</code> event on the grid.
1199
1234
  *
1200
1235
  * @param {jQuery.Event} oEvent The event object.
1201
1236
  */
1202
1237
  SinglePlanningCalendarGrid.prototype._fireSelectionEvent = function (oEvent) {
1203
- var oControl = oEvent.srcControl,
1238
+ var oControl = this._findSrcControl(oEvent),
1204
1239
  oGridCell = oEvent.target;
1205
1240
 
1206
1241
  if (oEvent.target.classList.contains("sapMSinglePCRow") ||
@@ -1216,6 +1251,19 @@ sap.ui.define([
1216
1251
  appointments: this._toggleAppointmentSelection(undefined, true)
1217
1252
  });
1218
1253
  } else if (oControl && oControl.isA("sap.ui.unified.CalendarAppointment")) {
1254
+
1255
+ // add suffix in appointment
1256
+ if (oGridCell.parentElement && oGridCell.parentElement.getAttribute("id")) {
1257
+ var sTargetId = oGridCell.parentElement.getAttribute("id");
1258
+
1259
+ // data-sap-ui-related - This is a relation to appointment object.
1260
+ // This is the connection between the DOM Element and the Object representing an appointment.
1261
+ var sBaseIDPart = oGridCell.parentElement.getAttribute("data-sap-ui-related");
1262
+ var sSuffix = sTargetId.replace(sBaseIDPart + "-", "");
1263
+
1264
+ oControl._setAppointmentPartSuffix(sSuffix);
1265
+ }
1266
+
1219
1267
  this.fireAppointmentSelect({
1220
1268
  appointment: oControl,
1221
1269
  appointments: this._toggleAppointmentSelection(oControl, !(oEvent.ctrlKey || oEvent.metaKey))
@@ -1261,7 +1309,9 @@ sap.ui.define([
1261
1309
  if (!this.getEndHour()) {
1262
1310
  iEndHour = LAST_HOUR_OF_DAY;
1263
1311
  }
1264
-
1312
+ if (iStartHour > iEndHour) {
1313
+ return iStartHour <= iHour || iHour < iEndHour;
1314
+ }
1265
1315
  return iStartHour <= iHour && iHour < iEndHour;
1266
1316
  };
1267
1317
 
@@ -368,7 +368,7 @@ sap.ui.define(['sap/ui/unified/calendar/CalendarDate', 'sap/ui/unified/calendar/
368
368
  this.renderDndPlaceholders(oRm, oControl, oControl._dndPlaceholdersMap[oColumnCalDate]);
369
369
 
370
370
  this.renderRows(oRm, oControl, sDate);
371
- this.renderAppointments(oRm, oControl, oAppointmentsToRender[sDate], oColumnCalDate);
371
+ this.renderAppointments(oRm, oControl, oAppointmentsToRender[sDate], oColumnCalDate, i);
372
372
  oRm.close("div"); // END .sapMSinglePCColumn
373
373
  }
374
374
 
@@ -419,8 +419,9 @@ sap.ui.define(['sap/ui/unified/calendar/CalendarDate', 'sap/ui/unified/calendar/
419
419
  }
420
420
  };
421
421
 
422
- SinglePlanningCalendarGridRenderer.renderAppointments = function (oRm, oControl, oAppointmentsByDate, oColumnDate) {
423
- var that = this;
422
+ SinglePlanningCalendarGridRenderer.renderAppointments = function (oRm, oControl, oAppointmentsByDate, oColumnDate, iColumn) {
423
+ var that = this,
424
+ iIndex = 0;
424
425
 
425
426
  if (oAppointmentsByDate) {
426
427
  oRm.openStart("div");
@@ -435,13 +436,14 @@ sap.ui.define(['sap/ui/unified/calendar/CalendarDate', 'sap/ui/unified/calendar/
435
436
  iWidth = oAppointmentNode.width,
436
437
  oAppointment = oAppointmentNode.getData();
437
438
 
438
- that.renderAppointment(oRm, oControl, iMaxLevel, iLevel, iWidth, oAppointment, oColumnDate);
439
+ that.renderAppointment(oRm, oControl, iMaxLevel, iLevel, iWidth, oAppointment, oColumnDate, iColumn, iIndex);
440
+ iIndex++;
439
441
  });
440
442
  oRm.close("div");
441
443
  }
442
444
  };
443
445
 
444
- SinglePlanningCalendarGridRenderer.renderAppointment = function(oRm, oControl, iMaxLevel, iAppointmentLevel, iAppointmentWidth, oAppointment, oColumnDate) {
446
+ SinglePlanningCalendarGridRenderer.renderAppointment = function(oRm, oControl, iMaxLevel, iAppointmentLevel, iAppointmentWidth, oAppointment, oColumnDate, iColumn, iIndex) {
445
447
  var oGridCalStart = CalendarDate.fromLocalJSDate(oControl.getStartDate()),
446
448
  oGridCalEnd = new CalendarDate(oGridCalStart),
447
449
  iRowHeight = oControl._getRowHeight(),
@@ -474,6 +476,7 @@ sap.ui.define(['sap/ui/unified/calendar/CalendarDate', 'sap/ui/unified/calendar/
474
476
  iAppTop = bAppStartIsOutsideVisibleStartHour ? 0 : oControl._calculateTopPosition(oAppStartDate),
475
477
  iAppBottom = bAppEndIsOutsideVisibleEndHour ? 0 : oControl._calculateBottomPosition(oAppEndDate),
476
478
  iAppChunkWidth = 100 / (iMaxLevel + 1),
479
+ bDraggable = oAppointment.getParent().getEnableAppointmentsDragAndDrop(),
477
480
  iStartDayDiff,
478
481
  iEndDayDiff,
479
482
  bArrowLeft,
@@ -509,7 +512,10 @@ sap.ui.define(['sap/ui/unified/calendar/CalendarDate', 'sap/ui/unified/calendar/
509
512
  mAccProps["labelledby"].value = mAccProps["labelledby"].value + " " + InvisibleText.getStaticId("sap.ui.unified", "APPOINTMENT_SELECTED");
510
513
  }
511
514
 
512
- oRm.openStart("div", oAppointment);
515
+ oRm.openStart("div", oAppointment.getId() + "-" + iColumn + "_" + iIndex);
516
+ oRm.attr("draggable", bDraggable);
517
+ oRm.attr("data-sap-ui-draggable", bDraggable);
518
+ oRm.attr("data-sap-ui-related", oAppointment.getId());
513
519
  oRm.attr("data-sap-level", iAppointmentLevel);
514
520
  oRm.attr("data-sap-width", iAppointmentWidth);
515
521
  oRm.attr("tabindex", 0);
@@ -649,10 +655,8 @@ sap.ui.define(['sap/ui/unified/calendar/CalendarDate', 'sap/ui/unified/calendar/
649
655
 
650
656
  oRm.close("div");
651
657
 
652
- if (oControl.getEnableAppointmentsResize()
653
- && !bAppStartIsOutsideVisibleStartHour
654
- && !bAppEndIsOutsideVisibleEndHour) {
655
- this.renderResizeHandles(oRm);
658
+ if (oControl.getEnableAppointmentsResize()) {
659
+ this.renderResizeHandles(oRm, !bAppStartIsOutsideVisibleStartHour, !bAppEndIsOutsideVisibleEndHour);
656
660
  }
657
661
 
658
662
  oRm.close("div");
@@ -686,15 +690,19 @@ sap.ui.define(['sap/ui/unified/calendar/CalendarDate', 'sap/ui/unified/calendar/
686
690
  oRm.close("div"); // END .sapMSinglePCNowMarker
687
691
  };
688
692
 
689
- SinglePlanningCalendarGridRenderer.renderResizeHandles = function(oRm) {
690
- oRm.openStart("span");
691
- oRm.class("sapMSinglePCAppResizeHandleBottom");
692
- oRm.openEnd();
693
- oRm.close("span");
694
- oRm.openStart("span");
695
- oRm.class("sapMSinglePCAppResizeHandleTop");
696
- oRm.openEnd();
697
- oRm.close("span");
693
+ SinglePlanningCalendarGridRenderer.renderResizeHandles = function(oRm, bRenderTop, bRenderBottom) {
694
+ if (bRenderBottom) {
695
+ oRm.openStart("span");
696
+ oRm.class("sapMSinglePCAppResizeHandleBottom");
697
+ oRm.openEnd();
698
+ oRm.close("span");
699
+ }
700
+ if (bRenderTop) {
701
+ oRm.openStart("span");
702
+ oRm.class("sapMSinglePCAppResizeHandleTop");
703
+ oRm.openEnd();
704
+ oRm.close("span");
705
+ }
698
706
  };
699
707
 
700
708
  /**