@openui5/sap.m 1.98.0 → 1.101.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 (615) hide show
  1. package/.eslintrc.json +18 -0
  2. package/THIRDPARTY.txt +6 -6
  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 +2 -2
  7. package/src/sap/m/ActionListItemRenderer.js +5 -7
  8. package/src/sap/m/ActionSelect.js +1 -1
  9. package/src/sap/m/ActionSelectRenderer.js +1 -1
  10. package/src/sap/m/ActionSheet.js +12 -5
  11. package/src/sap/m/ActionSheetRenderer.js +1 -1
  12. package/src/sap/m/App.js +1 -1
  13. package/src/sap/m/AssociativeOverflowToolbar.js +1 -1
  14. package/src/sap/m/Avatar.js +21 -4
  15. package/src/sap/m/AvatarRenderer.js +6 -1
  16. package/src/sap/m/BadgeCustomData.js +6 -4
  17. package/src/sap/m/BadgeEnabler.js +3 -2
  18. package/src/sap/m/Bar.js +6 -5
  19. package/src/sap/m/BarRenderer.js +6 -6
  20. package/src/sap/m/Breadcrumbs.js +81 -7
  21. package/src/sap/m/BreadcrumbsRenderer.js +3 -7
  22. package/src/sap/m/BusyDialog.js +1 -1
  23. package/src/sap/m/BusyIndicator.js +1 -1
  24. package/src/sap/m/BusyIndicatorRenderer.js +1 -1
  25. package/src/sap/m/Button.js +2 -2
  26. package/src/sap/m/ButtonRenderer.js +3 -3
  27. package/src/sap/m/Carousel.js +22 -17
  28. package/src/sap/m/CarouselLayout.js +1 -1
  29. package/src/sap/m/CarouselRenderer.js +10 -4
  30. package/src/sap/m/CheckBox.js +2 -4
  31. package/src/sap/m/CheckBoxRenderer.js +1 -1
  32. package/src/sap/m/ColorPalette.js +1 -1
  33. package/src/sap/m/ColorPalettePopover.js +1 -1
  34. package/src/sap/m/Column.js +1 -1
  35. package/src/sap/m/ColumnHeaderPopover.js +1 -1
  36. package/src/sap/m/ColumnListItem.js +1 -1
  37. package/src/sap/m/ColumnListItemRenderer.js +10 -11
  38. package/src/sap/m/ColumnPopoverActionItem.js +1 -1
  39. package/src/sap/m/ColumnPopoverCustomItem.js +1 -1
  40. package/src/sap/m/ColumnPopoverItem.js +1 -1
  41. package/src/sap/m/ColumnPopoverSelectListItem.js +1 -1
  42. package/src/sap/m/ColumnPopoverSortItem.js +1 -1
  43. package/src/sap/m/ComboBox.js +3 -2
  44. package/src/sap/m/ComboBoxBase.js +5 -3
  45. package/src/sap/m/ComboBoxBaseRenderer.js +2 -2
  46. package/src/sap/m/ComboBoxRenderer.js +4 -4
  47. package/src/sap/m/ComboBoxTextField.js +1 -1
  48. package/src/sap/m/ComboBoxTextFieldRenderer.js +2 -2
  49. package/src/sap/m/CustomDynamicDateOption.js +1 -1
  50. package/src/sap/m/CustomListItem.js +1 -1
  51. package/src/sap/m/CustomListItemRenderer.js +4 -6
  52. package/src/sap/m/CustomTile.js +1 -1
  53. package/src/sap/m/CustomTileRenderer.js +2 -2
  54. package/src/sap/m/CustomTreeItem.js +1 -1
  55. package/src/sap/m/CustomTreeItemRenderer.js +2 -2
  56. package/src/sap/m/DatePicker.js +36 -7
  57. package/src/sap/m/DatePickerRenderer.js +1 -6
  58. package/src/sap/m/DateRangeSelection.js +42 -4
  59. package/src/sap/m/DateRangeSelectionRenderer.js +1 -1
  60. package/src/sap/m/DateTimeField.js +15 -6
  61. package/src/sap/m/DateTimeInput.js +1 -1
  62. package/src/sap/m/DateTimePicker.js +375 -89
  63. package/src/sap/m/DateTimePickerRenderer.js +57 -0
  64. package/src/sap/m/Dialog.js +20 -7
  65. package/src/sap/m/DialogRenderer.js +1 -1
  66. package/src/sap/m/DisplayListItem.js +1 -1
  67. package/src/sap/m/DisplayListItemRenderer.js +4 -6
  68. package/src/sap/m/DraftIndicator.js +1 -1
  69. package/src/sap/m/DraftIndicatorRenderer.js +1 -1
  70. package/src/sap/m/DynamicDate.js +3 -3
  71. package/src/sap/m/DynamicDateFormat.js +33 -1
  72. package/src/sap/m/DynamicDateOption.js +144 -9
  73. package/src/sap/m/DynamicDateRange.js +145 -49
  74. package/src/sap/m/DynamicDateRangeRenderer.js +1 -1
  75. package/src/sap/m/DynamicDateUtil.js +10 -3
  76. package/src/sap/m/DynamicDateValueHelpUIType.js +1 -1
  77. package/src/sap/m/ExpandableText.js +1 -1
  78. package/src/sap/m/FacetFilter.js +1 -1
  79. package/src/sap/m/FacetFilterItem.js +1 -1
  80. package/src/sap/m/FacetFilterItemRenderer.js +1 -1
  81. package/src/sap/m/FacetFilterList.js +7 -5
  82. package/src/sap/m/FacetFilterRenderer.js +10 -10
  83. package/src/sap/m/FeedContent.js +2 -2
  84. package/src/sap/m/FeedInput.js +2 -2
  85. package/src/sap/m/FeedInputRenderer.js +1 -1
  86. package/src/sap/m/FeedListItem.js +7 -7
  87. package/src/sap/m/FeedListItemAction.js +1 -1
  88. package/src/sap/m/FeedListItemRenderer.js +12 -7
  89. package/src/sap/m/Fiori20Adapter.js +2 -2
  90. package/src/sap/m/FlexBox.js +1 -1
  91. package/src/sap/m/FlexItemData.js +1 -1
  92. package/src/sap/m/FormattedText.js +4 -1
  93. package/src/sap/m/GenericTag.js +5 -3
  94. package/src/sap/m/GenericTagRenderer.js +13 -5
  95. package/src/sap/m/GenericTile.js +62 -16
  96. package/src/sap/m/GenericTileLineModeRenderer.js +77 -3
  97. package/src/sap/m/GenericTileRenderer.js +89 -42
  98. package/src/sap/m/GroupHeaderListItem.js +1 -1
  99. package/src/sap/m/GroupHeaderListItemRenderer.js +2 -2
  100. package/src/sap/m/GrowingEnablement.js +53 -3
  101. package/src/sap/m/GrowingList.js +1 -1
  102. package/src/sap/m/HBox.js +1 -1
  103. package/src/sap/m/HBoxRenderer.js +1 -1
  104. package/src/sap/m/HeaderContainer.js +87 -16
  105. package/src/sap/m/HeaderContainerItemNavigator.js +1 -1
  106. package/src/sap/m/HeaderContainerRenderer.js +1 -1
  107. package/src/sap/m/HyphenationSupport.js +1 -5
  108. package/src/sap/m/IconTabBar.js +2 -2
  109. package/src/sap/m/IconTabBarDragAndDropUtil.js +5 -4
  110. package/src/sap/m/IconTabBarSelectList.js +3 -5
  111. package/src/sap/m/IconTabFilter.js +1 -1
  112. package/src/sap/m/IconTabFilterExpandButtonBadge.js +1 -1
  113. package/src/sap/m/IconTabHeader.js +9 -13
  114. package/src/sap/m/IconTabHeaderRenderer.js +1 -1
  115. package/src/sap/m/IconTabSeparator.js +1 -1
  116. package/src/sap/m/IllustratedMessage.js +29 -8
  117. package/src/sap/m/IllustratedMessageRenderer.js +5 -5
  118. package/src/sap/m/IllustratedMessageType.js +26 -2
  119. package/src/sap/m/Illustration.js +1 -1
  120. package/src/sap/m/IllustrationRenderer.js +4 -2
  121. package/src/sap/m/Image.js +1 -1
  122. package/src/sap/m/ImageContent.js +2 -2
  123. package/src/sap/m/ImageRenderer.js +1 -1
  124. package/src/sap/m/Input.js +13 -23
  125. package/src/sap/m/InputBase.js +6 -8
  126. package/src/sap/m/InputBaseRenderer.js +53 -39
  127. package/src/sap/m/InputListItem.js +1 -1
  128. package/src/sap/m/InputListItemRenderer.js +4 -6
  129. package/src/sap/m/InputRenderer.js +12 -9
  130. package/src/sap/m/Label.js +3 -3
  131. package/src/sap/m/LabelRenderer.js +2 -2
  132. package/src/sap/m/LightBox.js +5 -5
  133. package/src/sap/m/LightBoxItem.js +2 -3
  134. package/src/sap/m/LightBoxRenderer.js +1 -1
  135. package/src/sap/m/Link.js +2 -2
  136. package/src/sap/m/LinkRenderer.js +1 -1
  137. package/src/sap/m/List.js +1 -1
  138. package/src/sap/m/ListBase.js +50 -10
  139. package/src/sap/m/ListBaseRenderer.js +38 -24
  140. package/src/sap/m/ListItemBase.js +4 -3
  141. package/src/sap/m/ListItemBaseRenderer.js +23 -23
  142. package/src/sap/m/MaskEnabler.js +11 -11
  143. package/src/sap/m/MaskInput.js +9 -1
  144. package/src/sap/m/MaskInputRenderer.js +9 -43
  145. package/src/sap/m/MaskInputRule.js +5 -5
  146. package/src/sap/m/Menu.js +1 -1
  147. package/src/sap/m/MenuButton.js +5 -1
  148. package/src/sap/m/MenuButtonRenderer.js +1 -1
  149. package/src/sap/m/MenuItem.js +1 -1
  150. package/src/sap/m/MenuListItem.js +1 -1
  151. package/src/sap/m/MenuListItemRenderer.js +2 -2
  152. package/src/sap/m/MessageBox.js +1 -1
  153. package/src/sap/m/MessageItem.js +1 -1
  154. package/src/sap/m/MessageListItem.js +1 -1
  155. package/src/sap/m/MessagePage.js +1 -1
  156. package/src/sap/m/MessagePageRenderer.js +1 -1
  157. package/src/sap/m/MessagePopover.js +19 -34
  158. package/src/sap/m/MessagePopoverItem.js +1 -1
  159. package/src/sap/m/MessagePopoverRenderer.js +1 -1
  160. package/src/sap/m/MessageStrip.js +2 -2
  161. package/src/sap/m/MessageStripRenderer.js +1 -1
  162. package/src/sap/m/MessageToast.js +1 -1
  163. package/src/sap/m/MessageView.js +3 -3
  164. package/src/sap/m/MultiComboBox.js +6 -4
  165. package/src/sap/m/MultiComboBoxRenderer.js +4 -4
  166. package/src/sap/m/MultiEditField.js +1 -1
  167. package/src/sap/m/MultiInput.js +44 -27
  168. package/src/sap/m/NavContainer.js +53 -53
  169. package/src/sap/m/NavContainerRenderer.js +1 -1
  170. package/src/sap/m/NewsContent.js +2 -2
  171. package/src/sap/m/NotificationList.js +1 -1
  172. package/src/sap/m/NotificationListBase.js +1 -1
  173. package/src/sap/m/NotificationListGroup.js +1 -1
  174. package/src/sap/m/NotificationListGroupRenderer.js +1 -1
  175. package/src/sap/m/NotificationListItem.js +1 -1
  176. package/src/sap/m/NotificationListItemRenderer.js +1 -1
  177. package/src/sap/m/NotificationListRenderer.js +2 -2
  178. package/src/sap/m/NumericContent.js +30 -22
  179. package/src/sap/m/NumericContentRenderer.js +10 -10
  180. package/src/sap/m/NumericInput.js +3 -2
  181. package/src/sap/m/NumericInputRenderer.js +13 -1
  182. package/src/sap/m/ObjectAttribute.js +4 -5
  183. package/src/sap/m/ObjectAttributeRenderer.js +3 -3
  184. package/src/sap/m/ObjectHeader.js +20 -7
  185. package/src/sap/m/ObjectHeaderRenderer.js +3 -3
  186. package/src/sap/m/ObjectIdentifier.js +3 -3
  187. package/src/sap/m/ObjectIdentifierRenderer.js +1 -1
  188. package/src/sap/m/ObjectListItem.js +1 -1
  189. package/src/sap/m/ObjectListItemRenderer.js +2 -2
  190. package/src/sap/m/ObjectMarker.js +35 -11
  191. package/src/sap/m/ObjectMarkerRenderer.js +15 -3
  192. package/src/sap/m/ObjectNumber.js +1 -1
  193. package/src/sap/m/ObjectNumberRenderer.js +1 -2
  194. package/src/sap/m/ObjectStatus.js +1 -1
  195. package/src/sap/m/ObjectStatusRenderer.js +4 -5
  196. package/src/sap/m/OverflowToolbar.js +23 -3
  197. package/src/sap/m/OverflowToolbarAssociativePopover.js +2 -2
  198. package/src/sap/m/OverflowToolbarButton.js +1 -1
  199. package/src/sap/m/OverflowToolbarLayoutData.js +1 -1
  200. package/src/sap/m/OverflowToolbarToggleButton.js +1 -1
  201. package/src/sap/m/P13nAnyFilterItem.js +1 -1
  202. package/src/sap/m/P13nColumnsItem.js +1 -1
  203. package/src/sap/m/P13nColumnsPanel.js +1 -1
  204. package/src/sap/m/P13nConditionPanel.js +2 -2
  205. package/src/sap/m/P13nDialog.js +1 -1
  206. package/src/sap/m/P13nDimMeasureItem.js +1 -1
  207. package/src/sap/m/P13nDimMeasurePanel.js +1 -1
  208. package/src/sap/m/P13nFilterItem.js +1 -1
  209. package/src/sap/m/P13nFilterPanel.js +1 -1
  210. package/src/sap/m/P13nGroupItem.js +1 -1
  211. package/src/sap/m/P13nGroupPanel.js +3 -3
  212. package/src/sap/m/P13nItem.js +1 -1
  213. package/src/sap/m/P13nPanel.js +1 -1
  214. package/src/sap/m/P13nSelectionItem.js +1 -1
  215. package/src/sap/m/P13nSelectionPanel.js +1 -1
  216. package/src/sap/m/P13nSortItem.js +1 -1
  217. package/src/sap/m/P13nSortPanel.js +1 -1
  218. package/src/sap/m/PDFViewer.js +4 -3
  219. package/src/sap/m/PDFViewerRenderer.js +15 -7
  220. package/src/sap/m/Page.js +1 -1
  221. package/src/sap/m/PageAccessibleLandmarkInfo.js +1 -1
  222. package/src/sap/m/PagingButton.js +1 -1
  223. package/src/sap/m/Panel.js +1 -1
  224. package/src/sap/m/PanelRenderer.js +1 -1
  225. package/src/sap/m/PlanningCalendar.js +16 -15
  226. package/src/sap/m/PlanningCalendarHeader.js +1 -4
  227. package/src/sap/m/PlanningCalendarLegend.js +1 -1
  228. package/src/sap/m/PlanningCalendarRow.js +1 -1
  229. package/src/sap/m/PlanningCalendarView.js +1 -1
  230. package/src/sap/m/Popover.js +25 -9
  231. package/src/sap/m/PopoverRenderer.js +1 -1
  232. package/src/sap/m/ProgressIndicator.js +3 -3
  233. package/src/sap/m/ProgressIndicatorRenderer.js +1 -1
  234. package/src/sap/m/PullToRefresh.js +1 -1
  235. package/src/sap/m/PullToRefreshRenderer.js +2 -2
  236. package/src/sap/m/QuickView.js +1 -1
  237. package/src/sap/m/QuickViewBase.js +1 -1
  238. package/src/sap/m/QuickViewCard.js +1 -1
  239. package/src/sap/m/QuickViewCardRenderer.js +1 -1
  240. package/src/sap/m/QuickViewGroup.js +1 -1
  241. package/src/sap/m/QuickViewGroupElement.js +1 -1
  242. package/src/sap/m/QuickViewPage.js +5 -2
  243. package/src/sap/m/QuickViewPageRenderer.js +1 -1
  244. package/src/sap/m/RadioButton.js +1 -1
  245. package/src/sap/m/RadioButtonGroup.js +14 -2
  246. package/src/sap/m/RadioButtonRenderer.js +1 -2
  247. package/src/sap/m/RangeSlider.js +17 -6
  248. package/src/sap/m/RangeSliderRenderer.js +5 -5
  249. package/src/sap/m/RatingIndicator.js +2 -2
  250. package/src/sap/m/RatingIndicatorRenderer.js +1 -1
  251. package/src/sap/m/ResponsivePopover.js +3 -5
  252. package/src/sap/m/ResponsivePopoverRenderer.js +1 -1
  253. package/src/sap/m/ResponsiveScale.js +1 -1
  254. package/src/sap/m/ScrollBar.js +3 -3
  255. package/src/sap/m/ScrollBarRenderer.js +1 -1
  256. package/src/sap/m/ScrollContainer.js +1 -1
  257. package/src/sap/m/ScrollContainerRenderer.js +1 -1
  258. package/src/sap/m/SearchField.js +2 -2
  259. package/src/sap/m/SegmentedButton.js +17 -7
  260. package/src/sap/m/SegmentedButtonItem.js +1 -1
  261. package/src/sap/m/SegmentedButtonRenderer.js +2 -2
  262. package/src/sap/m/Select.js +36 -6
  263. package/src/sap/m/SelectDialog.js +4 -4
  264. package/src/sap/m/SelectDialogBase.js +1 -1
  265. package/src/sap/m/SelectList.js +4 -3
  266. package/src/sap/m/SelectListRenderer.js +5 -5
  267. package/src/sap/m/SelectRenderer.js +5 -5
  268. package/src/sap/m/SelectionDetails.js +3 -5
  269. package/src/sap/m/SelectionDetailsFacade.js +2 -2
  270. package/src/sap/m/SelectionDetailsItem.js +1 -1
  271. package/src/sap/m/SelectionDetailsItemLine.js +3 -3
  272. package/src/sap/m/SelectionDetailsRenderer.js +1 -1
  273. package/src/sap/m/Shell.js +1 -1
  274. package/src/sap/m/ShellRenderer.js +1 -1
  275. package/src/sap/m/SimpleFixFlex.js +1 -1
  276. package/src/sap/m/SimpleFixFlexRenderer.js +1 -1
  277. package/src/sap/m/SinglePlanningCalendar.js +21 -2
  278. package/src/sap/m/SinglePlanningCalendarDayView.js +1 -1
  279. package/src/sap/m/SinglePlanningCalendarGrid.js +118 -67
  280. package/src/sap/m/SinglePlanningCalendarGridRenderer.js +16 -14
  281. package/src/sap/m/SinglePlanningCalendarMonthGrid.js +24 -10
  282. package/src/sap/m/SinglePlanningCalendarMonthGridRenderer.js +1 -1
  283. package/src/sap/m/SinglePlanningCalendarMonthView.js +1 -1
  284. package/src/sap/m/SinglePlanningCalendarView.js +1 -1
  285. package/src/sap/m/SinglePlanningCalendarWeekView.js +1 -1
  286. package/src/sap/m/SinglePlanningCalendarWorkWeekView.js +1 -1
  287. package/src/sap/m/SlideTile.js +2 -2
  288. package/src/sap/m/SlideTileRenderer.js +9 -2
  289. package/src/sap/m/Slider.js +1 -1
  290. package/src/sap/m/SliderRenderer.js +9 -9
  291. package/src/sap/m/SliderTooltip.js +3 -3
  292. package/src/sap/m/SliderTooltipBase.js +1 -1
  293. package/src/sap/m/SliderTooltipBaseRenderer.js +2 -2
  294. package/src/sap/m/SliderTooltipContainer.js +6 -2
  295. package/src/sap/m/SliderTooltipContainerRenderer.js +1 -1
  296. package/src/sap/m/SliderTooltipRenderer.js +1 -1
  297. package/src/sap/m/SplitApp.js +1 -1
  298. package/src/sap/m/SplitButton.js +3 -1
  299. package/src/sap/m/SplitButtonRenderer.js +1 -1
  300. package/src/sap/m/SplitContainer.js +24 -31
  301. package/src/sap/m/StandardDynamicDateOption.js +154 -12
  302. package/src/sap/m/StandardListItem.js +1 -1
  303. package/src/sap/m/StandardListItemRenderer.js +8 -8
  304. package/src/sap/m/StandardTile.js +1 -1
  305. package/src/sap/m/StandardTileRenderer.js +1 -1
  306. package/src/sap/m/StandardTreeItem.js +1 -1
  307. package/src/sap/m/StepInput.js +4 -4
  308. package/src/sap/m/SuggestionItem.js +1 -1
  309. package/src/sap/m/SuggestionsPopover.js +7 -22
  310. package/src/sap/m/Switch.js +1 -1
  311. package/src/sap/m/SwitchRenderer.js +3 -3
  312. package/src/sap/m/TabContainer.js +1 -1
  313. package/src/sap/m/TabContainerItem.js +1 -3
  314. package/src/sap/m/TabContainerRenderer.js +2 -2
  315. package/src/sap/m/TabStrip.js +2 -2
  316. package/src/sap/m/TabStripItem.js +1 -1
  317. package/src/sap/m/TabStripRenderer.js +2 -2
  318. package/src/sap/m/Table.js +41 -9
  319. package/src/sap/m/TablePersoController.js +1 -1
  320. package/src/sap/m/TablePersoDialog.js +1 -1
  321. package/src/sap/m/TablePersoProvider.js +1 -1
  322. package/src/sap/m/TableRenderer.js +10 -5
  323. package/src/sap/m/TableSelectDialog.js +19 -19
  324. package/src/sap/m/Text.js +1 -1
  325. package/src/sap/m/TextArea.js +1 -1
  326. package/src/sap/m/TextAreaRenderer.js +1 -1
  327. package/src/sap/m/Tile.js +3 -3
  328. package/src/sap/m/TileContainer.js +6 -4
  329. package/src/sap/m/TileContainerRenderer.js +1 -1
  330. package/src/sap/m/TileContent.js +37 -5
  331. package/src/sap/m/TileContentRenderer.js +43 -6
  332. package/src/sap/m/TileRenderer.js +2 -2
  333. package/src/sap/m/TimePicker.js +4 -56
  334. package/src/sap/m/TimePickerClock.js +5 -6
  335. package/src/sap/m/TimePickerClockRenderer.js +1 -1
  336. package/src/sap/m/TimePickerClocks.js +6 -5
  337. package/src/sap/m/TimePickerClocksRenderer.js +3 -3
  338. package/src/sap/m/TimePickerInputs.js +1 -1
  339. package/src/sap/m/TimePickerInputsRenderer.js +1 -1
  340. package/src/sap/m/TimePickerInternals.js +8 -6
  341. package/src/sap/m/TimePickerRenderer.js +5 -17
  342. package/src/sap/m/TimePickerSlider.js +2 -2
  343. package/src/sap/m/TimePickerSliderRenderer.js +2 -2
  344. package/src/sap/m/TimePickerSliders.js +7 -5
  345. package/src/sap/m/TimePickerSlidersRenderer.js +1 -1
  346. package/src/sap/m/Title.js +1 -5
  347. package/src/sap/m/TitlePropagationSupport.js +1 -1
  348. package/src/sap/m/TitleRenderer.js +2 -2
  349. package/src/sap/m/ToggleButton.js +1 -1
  350. package/src/sap/m/Token.js +1 -2
  351. package/src/sap/m/TokenRenderer.js +21 -3
  352. package/src/sap/m/Tokenizer.js +8 -8
  353. package/src/sap/m/TokenizerRenderer.js +41 -7
  354. package/src/sap/m/Toolbar.js +5 -5
  355. package/src/sap/m/ToolbarLayoutData.js +1 -1
  356. package/src/sap/m/ToolbarRenderer.js +3 -3
  357. package/src/sap/m/ToolbarSeparator.js +5 -3
  358. package/src/sap/m/ToolbarSpacer.js +1 -1
  359. package/src/sap/m/Tree.js +1 -1
  360. package/src/sap/m/TreeItemBase.js +6 -6
  361. package/src/sap/m/TreeItemBaseRenderer.js +2 -2
  362. package/src/sap/m/TreeRenderer.js +2 -2
  363. package/src/sap/m/UploadCollection.js +5 -3
  364. package/src/sap/m/UploadCollectionItem.js +1 -1
  365. package/src/sap/m/UploadCollectionParameter.js +1 -1
  366. package/src/sap/m/UploadCollectionRenderer.js +2 -1
  367. package/src/sap/m/UploadCollectionToolbarPlaceholder.js +1 -1
  368. package/src/sap/m/VBox.js +1 -1
  369. package/src/sap/m/VBoxRenderer.js +1 -1
  370. package/src/sap/m/ValueStateHeader.js +1 -1
  371. package/src/sap/m/ViewSettingsCustomItem.js +1 -1
  372. package/src/sap/m/ViewSettingsCustomTab.js +1 -1
  373. package/src/sap/m/ViewSettingsDialog.js +118 -61
  374. package/src/sap/m/ViewSettingsDialogRenderer.js +1 -1
  375. package/src/sap/m/ViewSettingsFilterItem.js +1 -1
  376. package/src/sap/m/ViewSettingsItem.js +1 -1
  377. package/src/sap/m/VisibleItem.js +2 -2
  378. package/src/sap/m/WheelSlider.js +1 -1
  379. package/src/sap/m/WheelSliderContainer.js +1 -1
  380. package/src/sap/m/WheelSliderContainerRenderer.js +1 -1
  381. package/src/sap/m/WheelSliderRenderer.js +2 -2
  382. package/src/sap/m/Wizard.js +22 -4
  383. package/src/sap/m/WizardProgressNavigator.js +10 -3
  384. package/src/sap/m/WizardStep.js +1 -1
  385. package/src/sap/m/changeHandler/AddTableColumn.js +1 -1
  386. package/src/sap/m/changeHandler/ChangeLinkTarget.js +1 -1
  387. package/src/sap/m/changeHandler/CombineButtons.js +1 -1
  388. package/src/sap/m/changeHandler/MoveTableColumns.js +1 -1
  389. package/src/sap/m/changeHandler/SelectIconTabBarFilter.js +1 -1
  390. package/src/sap/m/changeHandler/SplitMenuButton.js +5 -5
  391. package/src/sap/m/delegate/DateNavigation.js +2 -2
  392. package/src/sap/m/designtime/ListBase.designtime.js +29 -0
  393. package/src/sap/m/inputUtils/SuggestionsPopoverDialogMixin.js +22 -16
  394. package/src/sap/m/inputUtils/SuggestionsPopoverPopoverMixin.js +10 -2
  395. package/src/sap/m/inputUtils/highlightDOMElements.js +1 -1
  396. package/src/sap/m/inputUtils/typeAhead.js +7 -7
  397. package/src/sap/m/library.js +74 -38
  398. package/src/sap/m/messagebundle.properties +80 -20
  399. package/src/sap/m/messagebundle_ar.properties +48 -14
  400. package/src/sap/m/messagebundle_bg.properties +77 -43
  401. package/src/sap/m/messagebundle_ca.properties +48 -14
  402. package/src/sap/m/messagebundle_cs.properties +50 -16
  403. package/src/sap/m/messagebundle_cy.properties +48 -14
  404. package/src/sap/m/messagebundle_da.properties +49 -15
  405. package/src/sap/m/messagebundle_de.properties +49 -15
  406. package/src/sap/m/messagebundle_el.properties +53 -19
  407. package/src/sap/m/messagebundle_en.properties +46 -12
  408. package/src/sap/m/messagebundle_en_GB.properties +46 -12
  409. package/src/sap/m/messagebundle_en_US_sappsd.properties +48 -12
  410. package/src/sap/m/messagebundle_en_US_saprigi.properties +291 -66
  411. package/src/sap/m/messagebundle_en_US_saptrc.properties +46 -12
  412. package/src/sap/m/messagebundle_es.properties +48 -14
  413. package/src/sap/m/messagebundle_es_MX.properties +48 -14
  414. package/src/sap/m/messagebundle_et.properties +48 -14
  415. package/src/sap/m/messagebundle_fi.properties +49 -15
  416. package/src/sap/m/messagebundle_fr.properties +61 -27
  417. package/src/sap/m/messagebundle_fr_CA.properties +47 -13
  418. package/src/sap/m/messagebundle_hi.properties +46 -12
  419. package/src/sap/m/messagebundle_hr.properties +48 -14
  420. package/src/sap/m/messagebundle_hu.properties +49 -15
  421. package/src/sap/m/messagebundle_id.properties +48 -14
  422. package/src/sap/m/messagebundle_it.properties +55 -21
  423. package/src/sap/m/messagebundle_iw.properties +48 -14
  424. package/src/sap/m/messagebundle_ja.properties +51 -17
  425. package/src/sap/m/messagebundle_kk.properties +48 -14
  426. package/src/sap/m/messagebundle_ko.properties +48 -14
  427. package/src/sap/m/messagebundle_lt.properties +48 -14
  428. package/src/sap/m/messagebundle_lv.properties +48 -14
  429. package/src/sap/m/messagebundle_ms.properties +47 -13
  430. package/src/sap/m/messagebundle_nl.properties +48 -14
  431. package/src/sap/m/messagebundle_no.properties +48 -14
  432. package/src/sap/m/messagebundle_pl.properties +48 -14
  433. package/src/sap/m/messagebundle_pt.properties +71 -37
  434. package/src/sap/m/messagebundle_pt_PT.properties +49 -15
  435. package/src/sap/m/messagebundle_ro.properties +48 -14
  436. package/src/sap/m/messagebundle_ru.properties +48 -14
  437. package/src/sap/m/messagebundle_sh.properties +48 -14
  438. package/src/sap/m/messagebundle_sk.properties +48 -14
  439. package/src/sap/m/messagebundle_sl.properties +48 -14
  440. package/src/sap/m/messagebundle_sv.properties +49 -15
  441. package/src/sap/m/messagebundle_th.properties +55 -21
  442. package/src/sap/m/messagebundle_tr.properties +48 -14
  443. package/src/sap/m/messagebundle_uk.properties +48 -14
  444. package/src/sap/m/messagebundle_vi.properties +47 -13
  445. package/src/sap/m/messagebundle_zh_CN.properties +48 -14
  446. package/src/sap/m/messagebundle_zh_TW.properties +47 -13
  447. package/src/sap/m/p13n/AbstractContainer.js +15 -8
  448. package/src/sap/m/p13n/AbstractContainerItem.js +2 -2
  449. package/src/sap/m/p13n/BasePanel.js +39 -20
  450. package/src/sap/m/p13n/Container.js +20 -14
  451. package/src/sap/m/p13n/GroupPanel.js +6 -5
  452. package/src/sap/m/p13n/Popup.js +9 -2
  453. package/src/sap/m/p13n/QueryPanel.js +93 -30
  454. package/src/sap/m/p13n/SelectionPanel.js +16 -8
  455. package/src/sap/m/p13n/SortPanel.js +9 -6
  456. package/src/sap/m/plugins/ColumnResizer.js +38 -9
  457. package/src/sap/m/plugins/DataStateIndicator.js +1 -1
  458. package/src/sap/m/plugins/PasteProvider.js +1 -1
  459. package/src/sap/m/plugins/PluginBase.js +1 -1
  460. package/src/sap/m/rules/Breadcrumbs.support.js +1 -1
  461. package/src/sap/m/rules/MessagePage.support.js +1 -1
  462. package/src/sap/m/rules/Tokenizer.support.js +4 -2
  463. package/src/sap/m/semantic/AddAction.js +1 -1
  464. package/src/sap/m/semantic/CancelAction.js +1 -1
  465. package/src/sap/m/semantic/DeleteAction.js +1 -1
  466. package/src/sap/m/semantic/DetailPage.js +1 -1
  467. package/src/sap/m/semantic/DiscussInJamAction.js +1 -1
  468. package/src/sap/m/semantic/EditAction.js +1 -1
  469. package/src/sap/m/semantic/FavoriteAction.js +1 -1
  470. package/src/sap/m/semantic/FilterAction.js +1 -1
  471. package/src/sap/m/semantic/FilterSelect.js +1 -1
  472. package/src/sap/m/semantic/FlagAction.js +1 -1
  473. package/src/sap/m/semantic/ForwardAction.js +1 -1
  474. package/src/sap/m/semantic/FullscreenPage.js +1 -1
  475. package/src/sap/m/semantic/GroupAction.js +1 -1
  476. package/src/sap/m/semantic/GroupSelect.js +1 -1
  477. package/src/sap/m/semantic/MainAction.js +1 -1
  478. package/src/sap/m/semantic/MasterPage.js +1 -1
  479. package/src/sap/m/semantic/MessagesIndicator.js +1 -1
  480. package/src/sap/m/semantic/MultiSelectAction.js +1 -1
  481. package/src/sap/m/semantic/NegativeAction.js +1 -1
  482. package/src/sap/m/semantic/OpenInAction.js +1 -1
  483. package/src/sap/m/semantic/PositiveAction.js +1 -1
  484. package/src/sap/m/semantic/PrintAction.js +1 -1
  485. package/src/sap/m/semantic/SaveAction.js +1 -1
  486. package/src/sap/m/semantic/Segment.js +1 -1
  487. package/src/sap/m/semantic/SegmentedContainer.js +1 -1
  488. package/src/sap/m/semantic/SemanticButton.js +1 -1
  489. package/src/sap/m/semantic/SemanticConfiguration.js +7 -14
  490. package/src/sap/m/semantic/SemanticControl.js +1 -1
  491. package/src/sap/m/semantic/SemanticOverflowToolbarButton.js +1 -1
  492. package/src/sap/m/semantic/SemanticOverflowToolbarToggleButton.js +1 -1
  493. package/src/sap/m/semantic/SemanticPage.js +1 -1
  494. package/src/sap/m/semantic/SemanticSelect.js +1 -1
  495. package/src/sap/m/semantic/SemanticToggleButton.js +1 -1
  496. package/src/sap/m/semantic/SendEmailAction.js +1 -1
  497. package/src/sap/m/semantic/SendMessageAction.js +1 -1
  498. package/src/sap/m/semantic/ShareInJamAction.js +1 -1
  499. package/src/sap/m/semantic/ShareMenu.js +2 -2
  500. package/src/sap/m/semantic/ShareMenuPage.js +1 -1
  501. package/src/sap/m/semantic/SortAction.js +1 -1
  502. package/src/sap/m/semantic/SortSelect.js +1 -1
  503. package/src/sap/m/table/Util.js +104 -23
  504. package/src/sap/m/table/{ActionItem.js → columnmenu/ActionItem.js} +9 -10
  505. package/src/sap/m/table/{ColumnMenuEntry.js → columnmenu/Entry.js} +16 -16
  506. package/src/sap/m/table/{Item.js → columnmenu/Item.js} +8 -8
  507. package/src/sap/m/table/{ItemBase.js → columnmenu/ItemBase.js} +11 -12
  508. package/src/sap/m/table/columnmenu/ItemContainer.js +29 -0
  509. package/src/sap/m/table/columnmenu/Menu.js +556 -0
  510. package/src/sap/m/table/columnmenu/MenuRenderer.js +57 -0
  511. package/src/sap/m/table/columnmenu/QuickAction.js +65 -0
  512. package/src/sap/m/table/columnmenu/QuickActionBase.js +54 -0
  513. package/src/sap/m/table/columnmenu/QuickActionContainer.js +29 -0
  514. package/src/sap/m/table/columnmenu/QuickActionItem.js +51 -0
  515. package/src/sap/m/table/columnmenu/QuickGroup.js +146 -0
  516. package/src/sap/m/table/columnmenu/QuickGroupItem.js +59 -0
  517. package/src/sap/m/table/columnmenu/QuickSort.js +80 -0
  518. package/src/sap/m/table/columnmenu/QuickSortItem.js +118 -0
  519. package/src/sap/m/table/columnmenu/QuickTotal.js +157 -0
  520. package/src/sap/m/table/columnmenu/QuickTotalItem.js +59 -0
  521. package/src/sap/m/themes/base/AbstractContainer.less +2 -3
  522. package/src/sap/m/themes/base/Avatar.less +11 -5
  523. package/src/sap/m/themes/base/Button.less +2 -2
  524. package/src/sap/m/themes/base/Carousel.less +5 -0
  525. package/src/sap/m/themes/base/CheckBox.less +0 -5
  526. package/src/sap/m/themes/base/ColumnMenu.less +17 -13
  527. package/src/sap/m/themes/base/DatePicker.less +7 -2
  528. package/src/sap/m/themes/base/DateTimePicker.less +147 -1
  529. package/src/sap/m/themes/base/Dialog.less +4 -6
  530. package/src/sap/m/themes/base/DynamicDateRange.less +3 -1
  531. package/src/sap/m/themes/base/FeedListItem.less +1 -1
  532. package/src/sap/m/themes/base/GenericTile.less +418 -55
  533. package/src/sap/m/themes/base/HeaderContainer.less +25 -0
  534. package/src/sap/m/themes/base/IconTabBar.less +45 -14
  535. package/src/sap/m/themes/base/IllustratedMessage.less +16 -16
  536. package/src/sap/m/themes/base/Input.less +1 -1
  537. package/src/sap/m/themes/base/InputBase.less +112 -10
  538. package/src/sap/m/themes/base/Label.less +4 -1
  539. package/src/sap/m/themes/base/Link.less +12 -4
  540. package/src/sap/m/themes/base/ListBase.less +4 -0
  541. package/src/sap/m/themes/base/MenuButton.less +4 -4
  542. package/src/sap/m/themes/base/MessageToast.less +2 -2
  543. package/src/sap/m/themes/base/MultiInput.less +1 -1
  544. package/src/sap/m/themes/base/NewsContent.less +7 -0
  545. package/src/sap/m/themes/base/NumericContent.less +1 -5
  546. package/src/sap/m/themes/base/ObjectAttribute.less +1 -1
  547. package/src/sap/m/themes/base/ObjectMarker.less +3 -1
  548. package/src/sap/m/themes/base/ObjectStatus.less +5 -0
  549. package/src/sap/m/themes/base/Page.less +1 -1
  550. package/src/sap/m/themes/base/Popover.less +10 -7
  551. package/src/sap/m/themes/base/RadioButton.less +22 -3
  552. package/src/sap/m/themes/base/SearchField.less +23 -59
  553. package/src/sap/m/themes/base/SplitButton.less +5 -0
  554. package/src/sap/m/themes/base/SuggestionsPopover.less +1 -1
  555. package/src/sap/m/themes/base/TextArea.less +27 -0
  556. package/src/sap/m/themes/base/TileContent.less +45 -1
  557. package/src/sap/m/themes/base/Token.less +14 -13
  558. package/src/sap/m/themes/base/Tokenizer.less +2 -2
  559. package/src/sap/m/themes/base/ValueStateMessage.less +3 -3
  560. package/src/sap/m/themes/base/illustrations/sapIllus-Dialog-EmptyCalendar.svg +73 -72
  561. package/src/sap/m/themes/base/illustrations/sapIllus-Dialog-EmptyList.svg +33 -18
  562. package/src/sap/m/themes/base/illustrations/sapIllus-Dialog-NoEntries.svg +1 -3
  563. package/src/sap/m/themes/base/illustrations/sapIllus-Dialog-NoNotifications.svg +3 -5
  564. package/src/sap/m/themes/base/illustrations/sapIllus-Dialog-SimpleBell.svg +12 -9
  565. package/src/sap/m/themes/base/illustrations/sapIllus-Dialog-SimpleCalendar.svg +41 -40
  566. package/src/sap/m/themes/base/illustrations/{sapIllus-Dialog-SimpleCheckmark.svg → sapIllus-Dialog-SimpleCheckMark.svg} +1 -1
  567. package/src/sap/m/themes/base/illustrations/sapIllus-Dialog-SleepingBell.svg +29 -22
  568. package/src/sap/m/themes/base/illustrations/sapIllus-Dialog-SuccessBalloon.svg +16 -0
  569. package/src/sap/m/themes/base/illustrations/sapIllus-Dialog-SuccessCheckMark.svg +8 -0
  570. package/src/sap/m/themes/base/illustrations/sapIllus-Dialog-SuccessHighFive.svg +45 -0
  571. package/src/sap/m/themes/base/illustrations/sapIllus-Dialog-Tent.svg +28 -23
  572. package/src/sap/m/themes/base/illustrations/sapIllus-Dialog-UnableToLoadImage.svg +38 -0
  573. package/src/sap/m/themes/base/illustrations/sapIllus-Scene-Connection.svg +27 -27
  574. package/src/sap/m/themes/base/illustrations/sapIllus-Scene-EmptyCalendar.svg +86 -85
  575. package/src/sap/m/themes/base/illustrations/sapIllus-Scene-EmptyList.svg +42 -26
  576. package/src/sap/m/themes/base/illustrations/sapIllus-Scene-NoData.svg +0 -2
  577. package/src/sap/m/themes/base/illustrations/sapIllus-Scene-NoEntries.svg +0 -2
  578. package/src/sap/m/themes/base/illustrations/sapIllus-Scene-SimpleBell.svg +15 -12
  579. package/src/sap/m/themes/base/illustrations/sapIllus-Scene-SimpleCalendar.svg +43 -42
  580. package/src/sap/m/themes/base/illustrations/{sapIllus-Scene-SimpleCheckmark.svg → sapIllus-Scene-SimpleCheckMark.svg} +1 -1
  581. package/src/sap/m/themes/base/illustrations/sapIllus-Scene-SleepingBell.svg +49 -42
  582. package/src/sap/m/themes/base/illustrations/sapIllus-Scene-SuccessBalloon.svg +33 -0
  583. package/src/sap/m/themes/base/illustrations/sapIllus-Scene-SuccessCheckMark.svg +43 -0
  584. package/src/sap/m/themes/base/illustrations/sapIllus-Scene-SuccessHighFive.svg +27 -0
  585. package/src/sap/m/themes/base/illustrations/sapIllus-Scene-Tent.svg +58 -53
  586. package/src/sap/m/themes/base/illustrations/sapIllus-Scene-UnableToLoadImage.svg +35 -0
  587. package/src/sap/m/themes/base/illustrations/sapIllus-Spot-EmptyCalendar.svg +42 -41
  588. package/src/sap/m/themes/base/illustrations/sapIllus-Spot-EmptyList.svg +24 -16
  589. package/src/sap/m/themes/base/illustrations/sapIllus-Spot-NoEntries.svg +10 -20
  590. package/src/sap/m/themes/base/illustrations/sapIllus-Spot-NoNotifications.svg +8 -13
  591. package/src/sap/m/themes/base/illustrations/sapIllus-Spot-SimpleBell.svg +11 -8
  592. package/src/sap/m/themes/base/illustrations/sapIllus-Spot-SimpleCalendar.svg +37 -39
  593. package/src/sap/m/themes/base/illustrations/{sapIllus-Spot-SimpleCheckmark.svg → sapIllus-Spot-SimpleCheckMark.svg} +1 -1
  594. package/src/sap/m/themes/base/illustrations/sapIllus-Spot-SleepingBell.svg +38 -22
  595. package/src/sap/m/themes/base/illustrations/sapIllus-Spot-SuccessBalloon.svg +19 -0
  596. package/src/sap/m/themes/base/illustrations/sapIllus-Spot-SuccessCheckMark.svg +7 -0
  597. package/src/sap/m/themes/base/illustrations/sapIllus-Spot-SuccessHighFive.svg +31 -0
  598. package/src/sap/m/themes/base/illustrations/sapIllus-Spot-Tent.svg +28 -23
  599. package/src/sap/m/themes/base/illustrations/sapIllus-Spot-UnableToLoadImage.svg +36 -0
  600. package/src/sap/m/themes/sap_hcb/ComboBoxBase.less +0 -12
  601. package/src/sap/m/themes/sap_hcb/InputBase.less +7 -42
  602. package/src/sap/m/themes/sap_hcb/Popover.less +3 -0
  603. package/src/sap/m/themes/sap_hcb/Token.less +4 -0
  604. package/src/sap/m/themes/sap_hcb/ValueStateHeader.less +4 -0
  605. package/src/sap/m/themes/sap_hcb/ValueStateMessage.less +12 -1
  606. package/src/sap/m/upload/UploadSet.js +421 -59
  607. package/src/sap/m/upload/UploadSetItem.js +77 -8
  608. package/src/sap/m/upload/UploadSetRenderer.js +1 -1
  609. package/src/sap/m/table/ColumnMenu.js +0 -378
  610. package/src/sap/m/table/ColumnMenuRenderer.js +0 -82
  611. package/src/sap/m/table/QuickAction.js +0 -53
  612. package/src/sap/m/table/QuickActionBase.js +0 -53
  613. package/src/sap/m/themes/base/illustrations/sapIllus-Dialog-NewMail.svg +0 -21
  614. package/src/sap/m/themes/base/illustrations/sapIllus-Scene-NewMail.svg +0 -54
  615. package/src/sap/m/themes/base/illustrations/sapIllus-Spot-NewMail.svg +0 -18
@@ -12,6 +12,8 @@ sap.ui.define([
12
12
  'sap/ui/core/Locale',
13
13
  'sap/ui/core/InvisibleText',
14
14
  'sap/ui/core/format/DateFormat',
15
+ 'sap/ui/core/format/TimezoneUtil',
16
+ 'sap/ui/core/Core',
15
17
  'sap/ui/core/date/UniversalDate',
16
18
  'sap/ui/core/dnd/DragInfo',
17
19
  'sap/ui/core/dnd/DropInfo',
@@ -26,7 +28,9 @@ sap.ui.define([
26
28
  './SinglePlanningCalendarGridRenderer',
27
29
  'sap/ui/core/delegate/ItemNavigation',
28
30
  "sap/ui/thirdparty/jquery",
29
- './PlanningCalendarLegend'
31
+ './PlanningCalendarLegend',
32
+ 'sap/ui/core/InvisibleMessage',
33
+ 'sap/ui/core/library'
30
34
  ],
31
35
  function (
32
36
  SinglePlanningCalendarUtilities,
@@ -35,6 +39,8 @@ sap.ui.define([
35
39
  Locale,
36
40
  InvisibleText,
37
41
  DateFormat,
42
+ TimezoneUtil,
43
+ Core,
38
44
  UniversalDate,
39
45
  DragInfo,
40
46
  DropInfo,
@@ -49,7 +55,9 @@ sap.ui.define([
49
55
  SinglePlanningCalendarGridRenderer,
50
56
  ItemNavigation,
51
57
  jQuery,
52
- PlanningCalendarLegend
58
+ PlanningCalendarLegend,
59
+ InvisibleMessage,
60
+ coreLibrary
53
61
  ) {
54
62
  "use strict";
55
63
 
@@ -63,7 +71,9 @@ sap.ui.define([
63
71
  // 3px height the marker itself + 2x2px on its top and bottom both on cozy & compact
64
72
  DAY_MARKER_HEIGHT = 0.4375, // Unit in rem, equals 7px with default font size
65
73
  FIRST_HOUR_OF_DAY = 0,
66
- LAST_HOUR_OF_DAY = 24;
74
+ LAST_HOUR_OF_DAY = 24,
75
+ InvisibleMessageMode = coreLibrary.InvisibleMessageMode;
76
+
67
77
 
68
78
  /**
69
79
  * Constructor for a new SinglePlanningCalendarGrid.
@@ -96,7 +106,7 @@ sap.ui.define([
96
106
  * @extends sap.ui.core.Control
97
107
  *
98
108
  * @author SAP SE
99
- * @version 1.98.0
109
+ * @version 1.101.0
100
110
  *
101
111
  * @constructor
102
112
  * @private
@@ -167,7 +177,15 @@ sap.ui.define([
167
177
  *
168
178
  * @since 1.65
169
179
  */
170
- enableAppointmentsCreate: { type: "boolean", group: "Misc", defaultValue: false }
180
+ enableAppointmentsCreate: { type: "boolean", group: "Misc", defaultValue: false },
181
+
182
+ /**
183
+ * Determines scale factor for the appointments.
184
+ *
185
+ * Acceptable range is from 1 to 6.
186
+ * @since 1.99
187
+ */
188
+ scaleFactor: {type: "float", group: "Data", defaultValue: 1}
171
189
  },
172
190
  aggregations: {
173
191
 
@@ -348,10 +366,10 @@ sap.ui.define([
348
366
 
349
367
  this._oUnifiedRB = sap.ui.getCore().getLibraryResourceBundle("sap.ui.unified");
350
368
  this._oFormatStartEndInfoAria = DateFormat.getDateTimeInstance({
351
- pattern: "EEEE dd/MM/YYYY 'at' " + sTimePattern
369
+ pattern: "EEEE dd/MM/yyyy 'at' " + sTimePattern
352
370
  });
353
371
  this._oFormatAriaFullDayCell = DateFormat.getDateTimeInstance({
354
- pattern: "EEEE dd/MM/YYYY"
372
+ pattern: "EEEE dd/MM/yyyy"
355
373
  });
356
374
 
357
375
  //the id of the SPC's legend if any
@@ -384,6 +402,7 @@ sap.ui.define([
384
402
  this._createAppointmentsDndPlaceholders(oStartDate, iColumns);
385
403
  }
386
404
 
405
+ this._oInvisibleMessage = InvisibleMessage.getInstance();
387
406
  };
388
407
 
389
408
  SinglePlanningCalendarGrid.prototype.onmousedown = function(oEvent) {
@@ -425,7 +444,7 @@ sap.ui.define([
425
444
  var oDragSession = oEvent.getParameter("dragSession"),
426
445
  oAppointment = oDragSession.getDragControl(),
427
446
  oDropTarget = oDragSession.getDropControl(),
428
- bIsFullDay = this.isAllDayAppointment(oAppointment.getStartDate(), oAppointment.getEndDate()),
447
+ bIsFullDay = this.isAllDayAppointment(oAppointment._getStartDateWithTimezoneAdaptation(), oAppointment._getEndDateWithTimezoneAdaptation()),
429
448
  fnAlignIndicator = function () {
430
449
  var $Indicator = jQuery(oDragSession.getIndicator()),
431
450
  iAppHeight = oAppointment.$().outerHeight(),
@@ -458,17 +477,17 @@ sap.ui.define([
458
477
  oEndDate,
459
478
  oBrowserEvent = oEvent.getParameter("browserEvent"),
460
479
  bCopy = (oBrowserEvent.metaKey || oBrowserEvent.ctrlKey),
461
- bIsFullDay = this.isAllDayAppointment(oAppointment.getStartDate(), oAppointment.getEndDate());
480
+ bIsFullDay = this.isAllDayAppointment(oAppointment._getStartDateWithTimezoneAdaptation(), oAppointment._getEndDateWithTimezoneAdaptation());
462
481
 
463
482
  oEndDate = new Date(oStartDate);
464
483
 
465
484
  if (bIsFullDay) {
466
- oEndDate.setMilliseconds(oAppointment.getEndDate().getTime() - oAppointment.getStartDate().getTime());
485
+ oEndDate.setMilliseconds(oAppointment._getEndDateWithTimezoneAdaptation().getTime() - oAppointment._getStartDateWithTimezoneAdaptation().getTime());
467
486
  }
468
487
 
469
488
  this.$().find(".sapMSinglePCOverlay").removeClass("sapMSinglePCOverlayDragging");
470
489
 
471
- if (bIsFullDay && oAppointment.getStartDate().getTime() === oStartDate.getTime()) {
490
+ if (bIsFullDay && oAppointment._getStartDateWithTimezoneAdaptation().getTime() === oStartDate.getTime()) {
472
491
  return;
473
492
  }
474
493
 
@@ -511,7 +530,7 @@ sap.ui.define([
511
530
  var oDragSession = oEvent.getParameter("dragSession"),
512
531
  oAppointment = oDragSession.getDragControl(),
513
532
  oDropTarget = oDragSession.getDropControl(),
514
- bIsFullDay = this.isAllDayAppointment(oAppointment.getStartDate(), oAppointment.getEndDate()),
533
+ bIsFullDay = this.isAllDayAppointment(oAppointment._getStartDateWithTimezoneAdaptation(), oAppointment._getEndDateWithTimezoneAdaptation()),
515
534
  fnAlignIndicator = function () {
516
535
  var $Indicator = jQuery(oDragSession.getIndicator()),
517
536
  iAppHeight = oAppointment.$().outerHeight(),
@@ -541,19 +560,19 @@ sap.ui.define([
541
560
  oEndDate,
542
561
  oBrowserEvent = oEvent.getParameter("browserEvent"),
543
562
  bCopy = (oBrowserEvent.metaKey || oBrowserEvent.ctrlKey),
544
- bIsFullDay = this.isAllDayAppointment(oAppointment.getStartDate(), oAppointment.getEndDate());
563
+ bIsFullDay = this.isAllDayAppointment(oAppointment._getStartDateWithTimezoneAdaptation(), oAppointment._getEndDateWithTimezoneAdaptation());
545
564
 
546
565
  oEndDate = new Date(oStartDate);
547
566
 
548
567
  if (bIsFullDay) {
549
568
  oEndDate.setHours(oEndDate.getHours() + 1);
550
569
  } else {
551
- oEndDate.setMilliseconds(oAppointment.getEndDate().getTime() - oAppointment.getStartDate().getTime());
570
+ oEndDate.setMilliseconds(oAppointment._getEndDateWithTimezoneAdaptation().getTime() - oAppointment._getStartDateWithTimezoneAdaptation().getTime());
552
571
  }
553
572
 
554
573
  this.$().find(".sapMSinglePCOverlay").removeClass("sapMSinglePCOverlayDragging");
555
574
 
556
- if (!bIsFullDay && oAppointment.getStartDate().getTime() === oStartDate.getTime()) {
575
+ if (!bIsFullDay && oAppointment._getStartDateWithTimezoneAdaptation().getTime() === oStartDate.getTime()) {
557
576
  return;
558
577
  }
559
578
 
@@ -681,8 +700,8 @@ sap.ui.define([
681
700
  newPos;
682
701
 
683
702
  newPos = this._calcResizeNewHoursAppPos(
684
- oAppointment.getStartDate(),
685
- oAppointment.getEndDate(),
703
+ oAppointment._getStartDateWithTimezoneAdaptation(),
704
+ oAppointment._getEndDateWithTimezoneAdaptation(),
686
705
  iIndex,
687
706
  oDragSession.getComplexData("bottomHandle")
688
707
  );
@@ -697,8 +716,8 @@ sap.ui.define([
697
716
  opacity: 1
698
717
  });
699
718
 
700
- if (oAppointment.getEndDate().getTime() === newPos.endDate.getTime() &&
701
- oAppointment.getStartDate().getTime() === newPos.startDate.getTime()) {
719
+ if (oAppointment._getEndDateWithTimezoneAdaptation().getTime() === newPos.endDate.getTime() &&
720
+ oAppointment._getStartDateWithTimezoneAdaptation().getTime() === newPos.startDate.getTime()) {
702
721
  return;
703
722
  }
704
723
 
@@ -821,11 +840,11 @@ sap.ui.define([
821
840
  drop: function (oEvent) {
822
841
  var oDragSession = oEvent.getParameter("dragSession"),
823
842
  oDropControl = oDragSession.getDropControl(),
824
- THIRTY_MINUTES = 30 * 60 * 1000,
843
+ iМillisecondsStep = (60 / (this.getScaleFactor() * 2)) * 60 * 1000, // calculating the duration of the appointment in milliseconds relative to the current scaleFactor
825
844
  oStartDate = oDragSession.getComplexData("startingDropDate").getTime(),
826
845
  oEndDate = oDropControl.getDate().getJSDate().getTime(),
827
846
  iStartTime = Math.min(oStartDate, oEndDate),
828
- iEndTime = Math.max(oStartDate, oEndDate) + THIRTY_MINUTES;
847
+ iEndTime = Math.max(oStartDate, oEndDate) + iМillisecondsStep;
829
848
 
830
849
  this.fireAppointmentCreate({
831
850
  startDate: new Date(iStartTime),
@@ -839,7 +858,7 @@ sap.ui.define([
839
858
  };
840
859
 
841
860
  SinglePlanningCalendarGrid.prototype._calcResizeNewHoursAppPos = function(oAppStartDate, oAppEndDate, iIndex, bBottomHandle) {
842
- var iMinutesStep = 30 * 60 * 1000, // 30 min
861
+ var iMinutesStep = (60 / (this.getScaleFactor() * 2)) * 60 * 1000, // calculating the duration of the appointment in milliseconds relative to the current scaleFactor
843
862
  iPlaceholderStartTime = this.getAggregation("_intervalPlaceholders")[iIndex].getDate().getTime(),
844
863
  iPlaceholderEndTime = iPlaceholderStartTime + iMinutesStep,
845
864
  iVariableBoundaryTime = bBottomHandle ? oAppStartDate.getTime() : oAppEndDate.getTime(),
@@ -868,8 +887,8 @@ sap.ui.define([
868
887
  this._oAppointmentsToRender[sDate].oAppointmentsList.getIterator().forEach(function(oAppNode) {
869
888
  oAppointment = oAppNode.getData();
870
889
  oAppDomRef = this.getDomRef().querySelector("#" + oAppointment.getId() + "-" + iColumn + "_" + iRow);
871
- oAppStartDate = oAppointment.getStartDate();
872
- oAppEndDate = oAppointment.getEndDate();
890
+ oAppStartDate = oAppointment._getStartDateWithTimezoneAdaptation();
891
+ oAppEndDate = oAppointment._getEndDateWithTimezoneAdaptation();
873
892
  bAppStartIsOutsideVisibleStartHour = oColumnStartDateAndHour.getTime() > oAppStartDate.getTime();
874
893
  bAppEndIsOutsideVisibleEndHour = oColumnEndDateAndHour.getTime() < oAppEndDate.getTime();
875
894
 
@@ -1108,11 +1127,11 @@ sap.ui.define([
1108
1127
 
1109
1128
  /**
1110
1129
  * Checking when an arrow key is pressed from the keyboard weather the cell focus should go in
1111
- * the next or preveous day or week
1130
+ * the next or previous day or week
1112
1131
  *
1113
- * @param {sap.ui.unified.CalendarDate} oCellStartDate The start date the cell or the visible part of the appointment
1132
+ * @param {Date} oFocusedElement The start date of the focused cell or of the visible part of the appointment
1114
1133
  * @param {int} iDirection The key the was pressed
1115
- * @returns {boolean} Idicator if the gird border is reached
1134
+ * @returns {boolean} Indicator if the gird border is reached
1116
1135
  * @private
1117
1136
  */
1118
1137
  SinglePlanningCalendarGrid.prototype._isBorderReached = function(oFocusedElement, iDirection) {
@@ -1129,14 +1148,14 @@ sap.ui.define([
1129
1148
  * Ensures that the focus is moved from an appointment to the correct cell from the visible grid area or
1130
1149
  * borderReached event is fired when the correct cell to focus is outside of the visible grid area.
1131
1150
  *
1132
- * @param {object} oEvent The event object that is passed to the onsapup, onsapdown, onsapright, on sapleft handlers
1151
+ * @param {sap.ui.unified.CalendarAppointment} oAppointment Appointment from which to start navigation
1133
1152
  * @param {int} iDirection Number representing the key code of the pressed arrow from the keyboard
1134
1153
  * @private
1135
1154
  */
1136
1155
  SinglePlanningCalendarGrid.prototype._focusCellWithKeyboard = function (oAppointment, iDirection) {
1137
- var bFullDayApp = this.isAllDayAppointment(oAppointment.getStartDate(), oAppointment.getEndDate()),
1156
+ var bFullDayApp = this.isAllDayAppointment(oAppointment._getStartDateWithTimezoneAdaptation(), oAppointment._getEndDateWithTimezoneAdaptation()),
1138
1157
  oFormat = this._getDateFormatter(),
1139
- oAppStartDate = new Date(oAppointment.getStartDate().getFullYear(), oAppointment.getStartDate().getMonth(), oAppointment.getStartDate().getDate(), oAppointment.getStartDate().getHours()),
1158
+ oAppStartDate = new Date(oAppointment._getStartDateWithTimezoneAdaptation().getFullYear(), oAppointment._getStartDateWithTimezoneAdaptation().getMonth(), oAppointment._getStartDateWithTimezoneAdaptation().getDate(), oAppointment._getStartDateWithTimezoneAdaptation().getHours()),
1140
1159
  oGridStartDate = new Date(this.getStartDate().getFullYear(), this.getStartDate().getMonth(), this.getStartDate().getDate(), this.getStartDate().getHours());
1141
1160
 
1142
1161
  // If an appointment start hour is before the visible grid start date
@@ -1199,6 +1218,12 @@ sap.ui.define([
1199
1218
  if (oEvent.which === KeyCodes.SPACE || oEvent.which === KeyCodes.ENTER) {
1200
1219
  this._fireSelectionEvent(oEvent);
1201
1220
 
1221
+ var oControl = this._findSrcControl(oEvent);
1222
+ if (oControl && oControl.isA("sap.ui.unified.CalendarAppointment")) {
1223
+ var sBundleKey = oControl.getSelected() ? "APPOINTMENT_SELECTED" : "APPOINTMENT_UNSELECTED";
1224
+ this._oInvisibleMessage.announce(this._oUnifiedRB.getText(sBundleKey), InvisibleMessageMode.Polite);
1225
+ }
1226
+
1202
1227
  // Prevent scrolling
1203
1228
  oEvent.preventDefault();
1204
1229
  }
@@ -1207,15 +1232,15 @@ sap.ui.define([
1207
1232
  SinglePlanningCalendarGrid.prototype._findSrcControl = function (oEvent) {
1208
1233
  // data-sap-ui-related - This is a relation to appointment object.
1209
1234
  // This is the connection between the DOM Element and the Object representing an appointment.
1210
- var $targetElement = oEvent.target,
1211
- $targetsParentElement = $targetElement.parentElement,
1235
+ var oTargetElement = oEvent.target,
1236
+ oTargetsParentElement = oTargetElement.parentElement,
1212
1237
  sAppointmentId;
1213
- if (!$targetsParentElement) {
1238
+ if (!oTargetsParentElement) {
1214
1239
  return oEvent.srcControl;
1215
- } else if ($targetsParentElement.classList.contains("sapUiCalendarRowApps")) {
1216
- sAppointmentId = $targetsParentElement.getAttribute("data-sap-ui-related");
1240
+ } else if (oTargetsParentElement.classList.contains("sapUiCalendarRowApps")) {
1241
+ sAppointmentId = oTargetsParentElement.getAttribute("data-sap-ui-related") || oTargetsParentElement.id;
1217
1242
  } else {
1218
- sAppointmentId = $targetElement.getAttribute("data-sap-ui-related");
1243
+ sAppointmentId = oTargetElement.getAttribute("data-sap-ui-related") || oTargetElement.id;
1219
1244
  }
1220
1245
 
1221
1246
  // finding the appointment
@@ -1329,8 +1354,8 @@ sap.ui.define([
1329
1354
  * Takes a string date and integer hour and returns a JS Date object as a result.
1330
1355
  * Example: this._parseDateStringAndHours("20180614-0000", 4) -> Thu Jun 14 2018 04:00:00 GMT+0300 (Eastern European Summer Time)
1331
1356
  *
1332
- * @param {string} iRow the row to be checked
1333
- * @param {int} iRow the row to be checked
1357
+ * @param {string} sDay the date string to parse
1358
+ * @param {int} iHours the hours to be set
1334
1359
  * @returns {Date} The parsed JavaScript date object.
1335
1360
  * @private
1336
1361
  */
@@ -1346,7 +1371,7 @@ sap.ui.define([
1346
1371
 
1347
1372
  SinglePlanningCalendarGrid.prototype._getDateFormatter = function () {
1348
1373
  if (!(this._oDateFormat instanceof DateFormat)) {
1349
- this._oDateFormat = DateFormat.getDateTimeInstance({ pattern: "YYYYMMdd-HHmm" });
1374
+ this._oDateFormat = DateFormat.getDateTimeInstance({ pattern: "yyyyMMdd-HHmm" });
1350
1375
  }
1351
1376
  return this._oDateFormat;
1352
1377
  };
@@ -1360,7 +1385,7 @@ sap.ui.define([
1360
1385
  */
1361
1386
  SinglePlanningCalendarGrid.prototype._formatTimeAsString = function (oDate) {
1362
1387
  var sPattern = this._getHoursPattern() + ":mm",
1363
- oFormat = DateFormat.getDateTimeInstance({pattern: sPattern }, new Locale(this._getCoreLocaleId()));
1388
+ oFormat = DateFormat.getTimeInstance({pattern: sPattern }, new Locale(this._getCoreLocaleId()));
1364
1389
 
1365
1390
  return oFormat.format(oDate);
1366
1391
  };
@@ -1432,15 +1457,35 @@ sap.ui.define([
1432
1457
  var $nowMarker = this.$("nowMarker"),
1433
1458
  $nowMarkerText = this.$("nowMarkerText"),
1434
1459
  $nowMarkerAMPM = this.$("nowMarkerAMPM"),
1435
- bCurrentHourNotVisible = !this._isVisibleHour(oDate.getHours());
1460
+ bCurrentHourNotVisible = !this._isVisibleHour(oDate.getHours()),
1461
+ oMarkerDate = new Date(oDate.getTime());
1462
+
1463
+ oMarkerDate = this._convertToTimezone(oMarkerDate);
1436
1464
 
1437
1465
  $nowMarker.toggleClass("sapMSinglePCNowMarkerHidden", bCurrentHourNotVisible);
1438
- $nowMarker.css("top", this._calculateTopPosition(oDate) + "rem");
1466
+ $nowMarker.css("top", this._calculateTopPosition(oMarkerDate) + "rem");
1439
1467
  $nowMarkerText.text(this._formatTimeAsString(oDate));
1440
1468
  $nowMarkerAMPM.text(this._addAMPM(oDate));
1441
1469
  $nowMarkerText.append($nowMarkerAMPM);
1442
1470
  };
1443
1471
 
1472
+ /**
1473
+ * Aligns a date to the timezone from the configuration.
1474
+ *
1475
+ * @returns {Object} <code>oNewDate</code> aligned to the configured timezone.
1476
+ * @private
1477
+ */
1478
+ SinglePlanningCalendarGrid.prototype._convertToTimezone = function(oDate) {
1479
+ var sTimezone = Core.getConfiguration().getTimezone();
1480
+ var oNewDate = CalendarUtils._createUniversalUTCDate(oDate, undefined, true);
1481
+
1482
+ oNewDate = new Date(oDate.getUTCFullYear(), oDate.getUTCMonth(), oDate.getUTCDate(), oDate.getUTCHours(), oDate.getUTCMinutes(), oDate.getUTCSeconds());
1483
+ oNewDate.setUTCFullYear(oDate.getUTCFullYear());
1484
+ oNewDate = TimezoneUtil.convertToTimezone(oNewDate, sTimezone);
1485
+
1486
+ return oNewDate;
1487
+ };
1488
+
1444
1489
  /**
1445
1490
  * Updates the row headers assuming that there is a DOM representation.
1446
1491
  *
@@ -1472,8 +1517,8 @@ sap.ui.define([
1472
1517
  var that = this;
1473
1518
 
1474
1519
  return aAppointments.reduce(function (oMap, oAppointment) {
1475
- var oAppStartDate = oAppointment.getStartDate(),
1476
- oAppEndDate = oAppointment.getEndDate(),
1520
+ var oAppStartDate = oAppointment._getStartDateWithTimezoneAdaptation(),
1521
+ oAppEndDate = oAppointment._getEndDateWithTimezoneAdaptation(),
1477
1522
  oCurrentAppCalStartDate,
1478
1523
  oCurrentAppCalEndDate,
1479
1524
  sDay;
@@ -1544,8 +1589,8 @@ sap.ui.define([
1544
1589
  */
1545
1590
  SinglePlanningCalendarGrid.prototype._isAppointmentFitInVisibleHours = function (oColumnCalDate) {
1546
1591
  return function (oAppointment) {
1547
- var iAppStartTime = oAppointment.getStartDate().getTime(),
1548
- iAppEndTime = oAppointment.getEndDate().getTime(),
1592
+ var iAppStartTime = oAppointment._getStartDateWithTimezoneAdaptation().getTime(),
1593
+ iAppEndTime = oAppointment._getEndDateWithTimezoneAdaptation().getTime(),
1549
1594
  iColumnStartTime = (new UniversalDate(oColumnCalDate.getYear(), oColumnCalDate.getMonth(), oColumnCalDate.getDate(), this._getVisibleStartHour())).getTime(),
1550
1595
  iColumnEndTime = (new UniversalDate(oColumnCalDate.getYear(), oColumnCalDate.getMonth(), oColumnCalDate.getDate(), this._getVisibleEndHour(), 59, 59)).getTime();
1551
1596
 
@@ -1565,6 +1610,7 @@ sap.ui.define([
1565
1610
  * @private
1566
1611
  */
1567
1612
  SinglePlanningCalendarGrid.prototype._calculateAppointmentsLevelsAndWidth = function (oVisibleAppointments) {
1613
+ var iDuration = HALF_HOUR_MS - ((this.getScaleFactor() - 1) * 5 * 60 * 1000); // min step is 5min (5 * 60 * 1000)
1568
1614
  var that = this;
1569
1615
 
1570
1616
  return Object.keys(oVisibleAppointments).reduce(function (oAcc, sDate) {
@@ -1574,7 +1620,7 @@ sap.ui.define([
1574
1620
 
1575
1621
  aAppointments.forEach(function (oCurrentAppointment) {
1576
1622
  var oCurrentAppointmentNode = new SinglePlanningCalendarUtilities.node(oCurrentAppointment),
1577
- iCurrentAppointmentStart = oCurrentAppointment.getStartDate().getTime();
1623
+ iCurrentAppointmentStart = oCurrentAppointment._getStartDateWithTimezoneAdaptation().getTime();
1578
1624
 
1579
1625
  if (oAppointmentsList.getSize() === 0) {
1580
1626
  oAppointmentsList.add(oCurrentAppointmentNode);
@@ -1584,14 +1630,14 @@ sap.ui.define([
1584
1630
  oAppointmentsList.getIterator().forEach(function (oAppointmentNode) {
1585
1631
  var bShouldBreak = true,
1586
1632
  oAppointment = oAppointmentNode.getData(),
1587
- iAppointmentStart = oAppointment.getStartDate().getTime(),
1588
- iAppointmentEnd = oAppointment.getEndDate().getTime(),
1633
+ iAppointmentStart = oAppointment._getStartDateWithTimezoneAdaptation().getTime(),
1634
+ iAppointmentEnd = oAppointment._getEndDateWithTimezoneAdaptation().getTime(),
1589
1635
  iAppointmentDuration = iAppointmentEnd - iAppointmentStart;
1590
1636
 
1591
- if (iAppointmentDuration < HALF_HOUR_MS) {
1637
+ if (iAppointmentDuration < iDuration) {
1592
1638
  // Take into account that appointments smaller than one hour will be rendered as one hour
1593
1639
  // in height. That's why the calculation for levels should consider this too.
1594
- iAppointmentEnd = iAppointmentEnd + (HALF_HOUR_MS - iAppointmentDuration);
1640
+ iAppointmentEnd = iAppointmentEnd + (iDuration - iAppointmentDuration);
1595
1641
  }
1596
1642
 
1597
1643
  if (iCurrentAppointmentStart >= iAppointmentStart && iCurrentAppointmentStart < iAppointmentEnd) {
@@ -1630,8 +1676,8 @@ sap.ui.define([
1630
1676
  var oCurrentAppointment = oCurrentAppointmentNode.getData(),
1631
1677
  iLevelFoundSpace = oCurrentAppointmentNode.level,
1632
1678
  iCurrentAppointmentLevel = oCurrentAppointmentNode.level,
1633
- iCurrentAppointmentStart = oCurrentAppointment.getStartDate().getTime(),
1634
- iCurrentAppointmentEnd = oCurrentAppointment.getEndDate().getTime(),
1679
+ iCurrentAppointmentStart = oCurrentAppointment._getStartDateWithTimezoneAdaptation().getTime(),
1680
+ iCurrentAppointmentEnd = oCurrentAppointment._getEndDateWithTimezoneAdaptation().getTime(),
1635
1681
  iCurrentAppointmentDuration = iCurrentAppointmentEnd - iCurrentAppointmentStart;
1636
1682
 
1637
1683
  if (iCurrentAppointmentDuration < HALF_HOUR_MS) {
@@ -1643,8 +1689,8 @@ sap.ui.define([
1643
1689
  new SinglePlanningCalendarUtilities.iterator(oAppointmentsList).forEach(function (oAppointmentNode) {
1644
1690
  var oAppointment = oAppointmentNode.getData(),
1645
1691
  iAppointmentLevel = oAppointmentNode.level,
1646
- iAppointmentStart = oAppointment.getStartDate().getTime(),
1647
- iAppointmentEnd = oAppointment.getEndDate().getTime(),
1692
+ iAppointmentStart = oAppointment._getStartDateWithTimezoneAdaptation().getTime(),
1693
+ iAppointmentEnd = oAppointment._getEndDateWithTimezoneAdaptation().getTime(),
1648
1694
  iAppointmentDuration = iAppointmentEnd - iAppointmentStart;
1649
1695
 
1650
1696
  if (iAppointmentDuration < HALF_HOUR_MS) {
@@ -1704,8 +1750,8 @@ sap.ui.define([
1704
1750
  */
1705
1751
  SinglePlanningCalendarGrid.prototype._isBlockerVisible = function (oViewStart, oViewEnd) {
1706
1752
  return function (oAppointment) {
1707
- var oAppStart = CalendarDate.fromLocalJSDate(oAppointment.getStartDate()),
1708
- oAppEnd = CalendarDate.fromLocalJSDate(oAppointment.getEndDate());
1753
+ var oAppStart = CalendarDate.fromLocalJSDate(oAppointment._getStartDateWithTimezoneAdaptation()),
1754
+ oAppEnd = CalendarDate.fromLocalJSDate(oAppointment._getEndDateWithTimezoneAdaptation());
1709
1755
 
1710
1756
  var bIsBiggerThanView = oAppStart.isBefore(oViewStart) && oAppEnd.isAfter(oViewEnd),
1711
1757
  bStartDateBetweenViewStartAndEnd = CalendarUtils._isBetween(oAppStart, oViewStart, oViewEnd, true),
@@ -1728,8 +1774,8 @@ sap.ui.define([
1728
1774
 
1729
1775
  aVisibleBlockers.forEach(function (oCurrentBlocker) {
1730
1776
  var oCurrentBlockerNode = new SinglePlanningCalendarUtilities.node(oCurrentBlocker),
1731
- oCurrentBlockerStart = CalendarDate.fromLocalJSDate(oCurrentBlocker.getStartDate()),
1732
- oCurrentBlockerEnd = CalendarDate.fromLocalJSDate(oCurrentBlocker.getEndDate());
1777
+ oCurrentBlockerStart = CalendarDate.fromLocalJSDate(oCurrentBlocker._getStartDateWithTimezoneAdaptation()),
1778
+ oCurrentBlockerEnd = CalendarDate.fromLocalJSDate(oCurrentBlocker._getEndDateWithTimezoneAdaptation());
1733
1779
 
1734
1780
  oCurrentBlockerNode.width = CalendarUtils._daysBetween(oCurrentBlockerEnd, oCurrentBlockerStart);
1735
1781
 
@@ -1741,8 +1787,8 @@ sap.ui.define([
1741
1787
  oBlockersList.getIterator().forEach(function (oBlockerNode) {
1742
1788
  var bShouldBreak = true,
1743
1789
  oBlocker = oBlockerNode.getData(),
1744
- oBlockerStart = CalendarDate.fromLocalJSDate(oBlocker.getStartDate()),
1745
- oBlockerEnd = CalendarDate.fromLocalJSDate(oBlocker.getEndDate());
1790
+ oBlockerStart = CalendarDate.fromLocalJSDate(oBlocker._getStartDateWithTimezoneAdaptation()),
1791
+ oBlockerEnd = CalendarDate.fromLocalJSDate(oBlocker._getEndDateWithTimezoneAdaptation());
1746
1792
 
1747
1793
  if (oCurrentBlockerStart.isSameOrAfter(oBlockerStart) && oCurrentBlockerStart.isSameOrBefore(oBlockerEnd)) {
1748
1794
  oCurrentBlockerNode.level++;
@@ -1848,7 +1894,7 @@ sap.ui.define([
1848
1894
  * @private
1849
1895
  */
1850
1896
  SinglePlanningCalendarGrid.prototype._getRowHeight = function () {
1851
- return this._isCompact() ? ROW_HEIGHT_COMPACT : ROW_HEIGHT_COZY;
1897
+ return this._isCompact() ? ROW_HEIGHT_COMPACT * this.getScaleFactor() : ROW_HEIGHT_COZY * this.getScaleFactor();
1852
1898
  };
1853
1899
 
1854
1900
  /**
@@ -1979,8 +2025,8 @@ sap.ui.define([
1979
2025
  SinglePlanningCalendarGrid.prototype._getAppointmentAnnouncementInfo = function (oAppointment) {
1980
2026
  var sStartTime = this._oUnifiedRB.getText("CALENDAR_START_TIME"),
1981
2027
  sEndTime = this._oUnifiedRB.getText("CALENDAR_END_TIME"),
1982
- sFormattedStartDate = this._oFormatStartEndInfoAria.format(oAppointment.getStartDate()),
1983
- sFormattedEndDate = this._oFormatStartEndInfoAria.format(oAppointment.getEndDate()),
2028
+ sFormattedStartDate = this._oFormatStartEndInfoAria.format(oAppointment._getStartDateWithTimezoneAdaptation()),
2029
+ sFormattedEndDate = this._oFormatStartEndInfoAria.format(oAppointment._getEndDateWithTimezoneAdaptation()),
1984
2030
  sAppInfo = sStartTime + ": " + sFormattedStartDate + "; " + sEndTime + ": " + sFormattedEndDate;
1985
2031
 
1986
2032
  return sAppInfo + "; " + PlanningCalendarLegend.findLegendItemForItem(sap.ui.getCore().byId(this._sLegendId), oAppointment);
@@ -2064,9 +2110,14 @@ sap.ui.define([
2064
2110
  var aDndForTheDay = this._dndPlaceholdersMap[oColumnCalDate],
2065
2111
  iYear = oColumnCalDate.getYear(),
2066
2112
  iMonth = oColumnCalDate.getMonth(),
2067
- iDate = oColumnCalDate.getDate();
2068
- aDndForTheDay.push(this._createAppointmentsDndPlaceHolder(new UniversalDate(iYear, iMonth, iDate, j)));
2069
- aDndForTheDay.push(this._createAppointmentsDndPlaceHolder(new UniversalDate(iYear, iMonth, iDate, j, 30)));
2113
+ iDate = oColumnCalDate.getDate(),
2114
+ iCurrentScale = this.getScaleFactor() * 2,
2115
+ iTimeSlot = 60 / iCurrentScale * 60;
2116
+
2117
+ for (var y = 0; y < iCurrentScale; y++) {
2118
+ aDndForTheDay.push(this._createAppointmentsDndPlaceHolder(new UniversalDate(iYear, iMonth, iDate, j, 0, iTimeSlot * y)));
2119
+ }
2120
+
2070
2121
  }
2071
2122
  }
2072
2123
  };
@@ -42,7 +42,7 @@ sap.ui.define([
42
42
  * Renders the HTML for the given control, using the provided {@link sap.ui.core.RenderManager}.
43
43
  *
44
44
  * @param {sap.ui.core.RenderManager} oRm The RenderManager that can be used for writing to the render output buffer
45
- * @param {sap.ui.core.Control} oControl An object representation of the control that should be rendered
45
+ * @param {sap.m.SinglePlanningCalendarGrid} oControl An object representation of the control that should be rendered
46
46
  */
47
47
  SinglePlanningCalendarGridRenderer.render = function (oRm, oControl) {
48
48
  oRm.openStart("div", oControl);
@@ -159,8 +159,8 @@ sap.ui.define([
159
159
  SinglePlanningCalendarGridRenderer.renderBlockerAppointment = function(oRm, oControl, oBlockerNode) {
160
160
  var oGridCalStart = CalendarDate.fromLocalJSDate(oControl.getStartDate()),
161
161
  oBlocker = oBlockerNode.getData(),
162
- oBlockerCalStart = CalendarDate.fromLocalJSDate(oBlocker.getStartDate()),
163
- oBlockerCalEnd = CalendarDate.fromLocalJSDate(oBlocker.getEndDate()),
162
+ oBlockerCalStart = CalendarDate.fromLocalJSDate(oBlocker._getStartDateWithTimezoneAdaptation()),
163
+ oBlockerCalEnd = CalendarDate.fromLocalJSDate(oBlocker._getEndDateWithTimezoneAdaptation()),
164
164
  iStartDayDiff = CalendarUtils._daysBetween(oBlockerCalStart, oGridCalStart),
165
165
  iEndDayDiff = CalendarUtils._daysBetween(oBlockerCalEnd, oGridCalStart),
166
166
  iColumns = oControl._getColumns(),
@@ -319,7 +319,7 @@ sap.ui.define([
319
319
  oRm.openEnd();
320
320
 
321
321
  for (var i = iStartHour; i <= iEndHour; i++) {
322
- oStartDate.setHours(i);
322
+ oStartDate.setUTCHours(i);
323
323
  oRm.openStart("span");
324
324
  oRm.class("sapMSinglePCRowHeader");
325
325
  oRm.class("sapMSinglePCRowHeader" + i);
@@ -329,13 +329,14 @@ sap.ui.define([
329
329
  }
330
330
 
331
331
  oRm.openEnd();
332
- oRm.text(oHoursFormat.format(oStartDate));
332
+
333
+ oRm.text(oHoursFormat.format(oStartDate, true));
333
334
 
334
335
  if (oControl._hasAMPM()) {
335
336
  oRm.openStart("span");
336
337
  oRm.class("sapMSinglePCRowHeaderAMPM");
337
338
  oRm.openEnd();
338
- oRm.text(" " + oAMPMFormat.format(oStartDate));
339
+ oRm.text(" " + oAMPMFormat.format(oStartDate, true));
339
340
  oRm.close("span");
340
341
  }
341
342
 
@@ -408,7 +409,7 @@ sap.ui.define([
408
409
  oRm.openStart("div");
409
410
  oRm.attr("role", "gridcell");
410
411
  oRm.class("sapMSinglePCRow");
411
-
412
+ oRm.style("height", oControl._getRowHeight() + "rem");
412
413
  if (!oControl._isVisibleHour(i)) {
413
414
  oRm.class("sapMSinglePCNonWorkingRow");
414
415
  }
@@ -460,8 +461,8 @@ sap.ui.define([
460
461
  iRowHeight = oControl._getRowHeight(),
461
462
  oColumnStartDateAndHour = new UniversalDate(oColumnDate.getYear(), oColumnDate.getMonth(), oColumnDate.getDate(), oControl._getVisibleStartHour()),
462
463
  oColumnEndDateAndHour = new UniversalDate(oColumnDate.getYear(), oColumnDate.getMonth(), oColumnDate.getDate(), oControl._getVisibleEndHour(), 59, 59),
463
- oAppStartDate = oAppointment.getStartDate(),
464
- oAppEndDate = oAppointment.getEndDate(),
464
+ oAppStartDate = oAppointment._getStartDateWithTimezoneAdaptation(),
465
+ oAppEndDate = oAppointment._getEndDateWithTimezoneAdaptation(),
465
466
  oAppCalStart = CalendarDate.fromLocalJSDate(oAppStartDate),
466
467
  oAppCalEnd = CalendarDate.fromLocalJSDate(oAppEndDate),
467
468
  sTooltip = oAppointment.getTooltip_AsString(),
@@ -488,6 +489,8 @@ sap.ui.define([
488
489
  iAppBottom = bAppEndIsOutsideVisibleEndHour ? 0 : oControl._calculateBottomPosition(oAppEndDate),
489
490
  iAppChunkWidth = 100 / (iMaxLevel + 1),
490
491
  bDraggable = oAppointment.getParent().getEnableAppointmentsDragAndDrop(),
492
+ iScaleFactor = oControl.getProperty("scaleFactor"),
493
+ iDivider = 2 * iScaleFactor,
491
494
  iStartDayDiff,
492
495
  iEndDayDiff,
493
496
  bArrowLeft,
@@ -555,8 +558,7 @@ sap.ui.define([
555
558
 
556
559
  oRm.openStart("div");
557
560
  oRm.class("sapUiCalendarApp");
558
-
559
- oRm.style("min-height", (iRowHeight - (iVerticalPaddingBetweenAppointments + iAppointmentBottomPadding + iAppointmentTopPadding)) / 2 + "rem");
561
+ oRm.style("min-height", (iRowHeight - ((iVerticalPaddingBetweenAppointments + iAppointmentBottomPadding + iAppointmentTopPadding) * iScaleFactor)) / iDivider + "rem");
560
562
 
561
563
  if (oAppointment.getSelected()) {
562
564
  oRm.class("sapUiCalendarAppSel");
@@ -648,8 +650,8 @@ sap.ui.define([
648
650
  }
649
651
 
650
652
  // ARIA information about start and end
651
- // var sAriaText = oRow._oRb.getText("CALENDAR_START_TIME") + ": " + oRow._oFormatAria.format(oAppointment.getStartDate());
652
- // sAriaText = sAriaText + "; " + oRow._oRb.getText("CALENDAR_END_TIME") + ": " + oRow._oFormatAria.format(oAppointment.getEndDate());
653
+ // var sAriaText = oRow._oRb.getText("CALENDAR_START_TIME") + ": " + oRow._oFormatAria.format(oAppointment._getStartDateWithTimezoneAdaptation());
654
+ // sAriaText = sAriaText + "; " + oRow._oRb.getText("CALENDAR_END_TIME") + ": " + oRow._oFormatAria.format(oAppointment._getEndDateWithTimezoneAdaptation());
653
655
  // if (sTooltip) {
654
656
  // sAriaText = sAriaText + "; " + sTooltip;
655
657
  // }
@@ -723,7 +725,7 @@ sap.ui.define([
723
725
  *
724
726
  * @param {Date} oAppStartDate start date of the appointment
725
727
  * @param {Date} oAppEndDate end date of the appointment
726
- * @return {String} Returns maximum allowed rows for the appointment as string
728
+ * @return {string} Returns maximum allowed rows for the appointment as string
727
729
  * @private
728
730
  */
729
731
  SinglePlanningCalendarGridRenderer._getLineClamp = function (oAppStartDate, oAppEndDate) {