@openui5/sap.m 1.99.1 → 1.102.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 (517) hide show
  1. package/.eslintrc.json +18 -0
  2. package/THIRDPARTY.txt +5 -5
  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/ActionListItemRenderer.js +5 -7
  8. package/src/sap/m/ActionSelect.js +1 -1
  9. package/src/sap/m/ActionSheet.js +11 -4
  10. package/src/sap/m/App.js +1 -1
  11. package/src/sap/m/AssociativeOverflowToolbar.js +1 -1
  12. package/src/sap/m/Avatar.js +1 -1
  13. package/src/sap/m/BadgeEnabler.js +3 -2
  14. package/src/sap/m/Bar.js +12 -21
  15. package/src/sap/m/Breadcrumbs.js +83 -10
  16. package/src/sap/m/BreadcrumbsRenderer.js +3 -7
  17. package/src/sap/m/BusyDialog.js +1 -1
  18. package/src/sap/m/BusyIndicator.js +1 -1
  19. package/src/sap/m/Button.js +2 -2
  20. package/src/sap/m/Carousel.js +4 -1
  21. package/src/sap/m/CarouselLayout.js +1 -1
  22. package/src/sap/m/CarouselRenderer.js +4 -2
  23. package/src/sap/m/CheckBox.js +2 -4
  24. package/src/sap/m/ColorPalette.js +13 -1
  25. package/src/sap/m/ColorPalettePopover.js +1 -1
  26. package/src/sap/m/Column.js +10 -1
  27. package/src/sap/m/ColumnHeaderPopover.js +1 -1
  28. package/src/sap/m/ColumnListItem.js +1 -1
  29. package/src/sap/m/ColumnListItemRenderer.js +10 -11
  30. package/src/sap/m/ColumnPopoverActionItem.js +1 -1
  31. package/src/sap/m/ColumnPopoverCustomItem.js +1 -1
  32. package/src/sap/m/ColumnPopoverItem.js +1 -1
  33. package/src/sap/m/ColumnPopoverSelectListItem.js +1 -1
  34. package/src/sap/m/ColumnPopoverSortItem.js +1 -1
  35. package/src/sap/m/ComboBox.js +23 -2
  36. package/src/sap/m/ComboBoxBase.js +4 -2
  37. package/src/sap/m/ComboBoxTextField.js +1 -1
  38. package/src/sap/m/CustomDynamicDateOption.js +1 -1
  39. package/src/sap/m/CustomListItem.js +1 -1
  40. package/src/sap/m/CustomListItemRenderer.js +4 -6
  41. package/src/sap/m/CustomTile.js +1 -1
  42. package/src/sap/m/CustomTileRenderer.js +1 -1
  43. package/src/sap/m/CustomTreeItem.js +1 -1
  44. package/src/sap/m/CustomTreeItemRenderer.js +2 -2
  45. package/src/sap/m/DatePicker.js +52 -9
  46. package/src/sap/m/DatePickerRenderer.js +0 -1
  47. package/src/sap/m/DateRangeSelection.js +42 -4
  48. package/src/sap/m/DateTimeField.js +8 -5
  49. package/src/sap/m/DateTimeInput.js +1 -1
  50. package/src/sap/m/DateTimePicker.js +97 -66
  51. package/src/sap/m/DateTimePickerRenderer.js +21 -4
  52. package/src/sap/m/Dialog.js +20 -7
  53. package/src/sap/m/DialogRenderer.js +1 -1
  54. package/src/sap/m/DisplayListItem.js +1 -1
  55. package/src/sap/m/DisplayListItemRenderer.js +4 -6
  56. package/src/sap/m/DraftIndicator.js +1 -1
  57. package/src/sap/m/DynamicDate.js +1 -1
  58. package/src/sap/m/DynamicDateFormat.js +13 -6
  59. package/src/sap/m/DynamicDateOption.js +12 -2
  60. package/src/sap/m/DynamicDateRange.js +129 -21
  61. package/src/sap/m/DynamicDateUtil.js +1 -2
  62. package/src/sap/m/DynamicDateValueHelpUIType.js +1 -1
  63. package/src/sap/m/ExpandableText.js +1 -1
  64. package/src/sap/m/FacetFilter.js +8 -1
  65. package/src/sap/m/FacetFilterItem.js +1 -1
  66. package/src/sap/m/FacetFilterList.js +6 -4
  67. package/src/sap/m/FeedContent.js +1 -1
  68. package/src/sap/m/FeedInput.js +2 -2
  69. package/src/sap/m/FeedListItem.js +2 -2
  70. package/src/sap/m/FeedListItemAction.js +1 -1
  71. package/src/sap/m/FeedListItemRenderer.js +10 -5
  72. package/src/sap/m/Fiori20Adapter.js +2 -2
  73. package/src/sap/m/FlexBox.js +1 -1
  74. package/src/sap/m/FlexItemData.js +1 -1
  75. package/src/sap/m/FormattedText.js +1 -1
  76. package/src/sap/m/GenericTag.js +5 -3
  77. package/src/sap/m/GenericTagRenderer.js +13 -5
  78. package/src/sap/m/GenericTile.js +101 -13
  79. package/src/sap/m/GenericTileLineModeRenderer.js +80 -3
  80. package/src/sap/m/GenericTileRenderer.js +108 -48
  81. package/src/sap/m/GroupHeaderListItem.js +1 -1
  82. package/src/sap/m/GrowingEnablement.js +138 -83
  83. package/src/sap/m/GrowingList.js +1 -1
  84. package/src/sap/m/HBox.js +1 -1
  85. package/src/sap/m/HeaderContainer.js +29 -13
  86. package/src/sap/m/HeaderContainerItemNavigator.js +1 -1
  87. package/src/sap/m/HyphenationSupport.js +0 -4
  88. package/src/sap/m/IconTabBar.js +3 -3
  89. package/src/sap/m/IconTabBarDragAndDropUtil.js +3 -2
  90. package/src/sap/m/IconTabBarSelectList.js +3 -5
  91. package/src/sap/m/IconTabFilter.js +1 -1
  92. package/src/sap/m/IconTabFilterExpandButtonBadge.js +1 -1
  93. package/src/sap/m/IconTabHeader.js +7 -11
  94. package/src/sap/m/IconTabSeparator.js +1 -1
  95. package/src/sap/m/IllustratedMessage.js +19 -1
  96. package/src/sap/m/Illustration.js +1 -1
  97. package/src/sap/m/Image.js +1 -1
  98. package/src/sap/m/ImageContent.js +1 -1
  99. package/src/sap/m/Input.js +10 -19
  100. package/src/sap/m/InputBase.js +5 -5
  101. package/src/sap/m/InputBaseRenderer.js +1 -2
  102. package/src/sap/m/InputListItem.js +1 -1
  103. package/src/sap/m/InputListItemRenderer.js +4 -6
  104. package/src/sap/m/Label.js +1 -1
  105. package/src/sap/m/LabelRenderer.js +1 -1
  106. package/src/sap/m/LightBox.js +1 -1
  107. package/src/sap/m/LightBoxItem.js +1 -1
  108. package/src/sap/m/Link.js +1 -1
  109. package/src/sap/m/List.js +1 -1
  110. package/src/sap/m/ListBase.js +52 -20
  111. package/src/sap/m/ListBaseRenderer.js +23 -9
  112. package/src/sap/m/ListItemBase.js +7 -5
  113. package/src/sap/m/MaskEnabler.js +1 -1
  114. package/src/sap/m/MaskInput.js +1 -1
  115. package/src/sap/m/MaskInputRule.js +1 -1
  116. package/src/sap/m/Menu.js +1 -1
  117. package/src/sap/m/MenuButton.js +5 -1
  118. package/src/sap/m/MenuItem.js +1 -1
  119. package/src/sap/m/MenuListItem.js +1 -1
  120. package/src/sap/m/MessageBox.js +1 -1
  121. package/src/sap/m/MessageItem.js +1 -1
  122. package/src/sap/m/MessageListItem.js +1 -1
  123. package/src/sap/m/MessagePage.js +1 -1
  124. package/src/sap/m/MessagePopover.js +18 -36
  125. package/src/sap/m/MessagePopoverItem.js +1 -1
  126. package/src/sap/m/MessageStrip.js +2 -2
  127. package/src/sap/m/MessageToast.js +1 -1
  128. package/src/sap/m/MessageView.js +1 -1
  129. package/src/sap/m/MultiComboBox.js +4 -2
  130. package/src/sap/m/MultiEditField.js +1 -1
  131. package/src/sap/m/MultiInput.js +12 -7
  132. package/src/sap/m/NavContainer.js +53 -53
  133. package/src/sap/m/NewsContent.js +1 -1
  134. package/src/sap/m/NotificationList.js +1 -1
  135. package/src/sap/m/NotificationListBase.js +175 -79
  136. package/src/sap/m/NotificationListGroup.js +1 -2
  137. package/src/sap/m/NotificationListGroupRenderer.js +4 -16
  138. package/src/sap/m/NotificationListItem.js +5 -16
  139. package/src/sap/m/NotificationListItemRenderer.js +0 -1
  140. package/src/sap/m/NumericContent.js +29 -21
  141. package/src/sap/m/NumericInput.js +3 -2
  142. package/src/sap/m/NumericInputRenderer.js +13 -1
  143. package/src/sap/m/ObjectAttribute.js +4 -5
  144. package/src/sap/m/ObjectAttributeRenderer.js +3 -3
  145. package/src/sap/m/ObjectHeader.js +1 -1
  146. package/src/sap/m/ObjectIdentifier.js +3 -3
  147. package/src/sap/m/ObjectListItem.js +1 -1
  148. package/src/sap/m/ObjectMarker.js +34 -10
  149. package/src/sap/m/ObjectMarkerRenderer.js +14 -2
  150. package/src/sap/m/ObjectNumber.js +1 -1
  151. package/src/sap/m/ObjectStatus.js +1 -1
  152. package/src/sap/m/ObjectStatusRenderer.js +3 -4
  153. package/src/sap/m/OverflowToolbar.js +21 -1
  154. package/src/sap/m/OverflowToolbarAssociativePopover.js +2 -2
  155. package/src/sap/m/OverflowToolbarButton.js +1 -1
  156. package/src/sap/m/OverflowToolbarLayoutData.js +1 -1
  157. package/src/sap/m/OverflowToolbarToggleButton.js +1 -1
  158. package/src/sap/m/P13nAnyFilterItem.js +1 -1
  159. package/src/sap/m/P13nColumnsItem.js +1 -1
  160. package/src/sap/m/P13nColumnsPanel.js +1 -1
  161. package/src/sap/m/P13nConditionPanel.js +9 -12
  162. package/src/sap/m/P13nDialog.js +1 -1
  163. package/src/sap/m/P13nDimMeasureItem.js +1 -1
  164. package/src/sap/m/P13nDimMeasurePanel.js +1 -1
  165. package/src/sap/m/P13nFilterItem.js +1 -1
  166. package/src/sap/m/P13nFilterPanel.js +1 -1
  167. package/src/sap/m/P13nGroupItem.js +1 -1
  168. package/src/sap/m/P13nGroupPanel.js +1 -1
  169. package/src/sap/m/P13nItem.js +1 -1
  170. package/src/sap/m/P13nPanel.js +1 -1
  171. package/src/sap/m/P13nSelectionItem.js +1 -1
  172. package/src/sap/m/P13nSelectionPanel.js +1 -1
  173. package/src/sap/m/P13nSortItem.js +1 -1
  174. package/src/sap/m/P13nSortPanel.js +1 -1
  175. package/src/sap/m/PDFViewer.js +3 -3
  176. package/src/sap/m/PDFViewerRenderer.js +15 -7
  177. package/src/sap/m/Page.js +4 -4
  178. package/src/sap/m/PageAccessibleLandmarkInfo.js +1 -1
  179. package/src/sap/m/PagingButton.js +1 -1
  180. package/src/sap/m/Panel.js +1 -1
  181. package/src/sap/m/PlanningCalendar.js +15 -15
  182. package/src/sap/m/PlanningCalendarHeader.js +1 -4
  183. package/src/sap/m/PlanningCalendarLegend.js +1 -1
  184. package/src/sap/m/PlanningCalendarRow.js +1 -1
  185. package/src/sap/m/PlanningCalendarView.js +1 -1
  186. package/src/sap/m/Popover.js +15 -10
  187. package/src/sap/m/ProgressIndicator.js +1 -1
  188. package/src/sap/m/PullToRefresh.js +1 -1
  189. package/src/sap/m/QuickView.js +1 -1
  190. package/src/sap/m/QuickViewBase.js +1 -1
  191. package/src/sap/m/QuickViewCard.js +1 -1
  192. package/src/sap/m/QuickViewGroup.js +1 -1
  193. package/src/sap/m/QuickViewGroupElement.js +1 -1
  194. package/src/sap/m/QuickViewPage.js +5 -2
  195. package/src/sap/m/RadioButton.js +2 -2
  196. package/src/sap/m/RadioButtonGroup.js +14 -2
  197. package/src/sap/m/RadioButtonRenderer.js +0 -1
  198. package/src/sap/m/RangeSlider.js +19 -4
  199. package/src/sap/m/RatingIndicator.js +2 -2
  200. package/src/sap/m/ResponsivePopover.js +3 -5
  201. package/src/sap/m/ResponsiveScale.js +1 -1
  202. package/src/sap/m/ScrollBar.js +2 -2
  203. package/src/sap/m/ScrollContainer.js +1 -1
  204. package/src/sap/m/SearchField.js +1 -1
  205. package/src/sap/m/SegmentedButton.js +17 -9
  206. package/src/sap/m/SegmentedButtonItem.js +1 -1
  207. package/src/sap/m/SegmentedButtonRenderer.js +1 -1
  208. package/src/sap/m/Select.js +53 -4
  209. package/src/sap/m/SelectDialog.js +16 -20
  210. package/src/sap/m/SelectDialogBase.js +1 -1
  211. package/src/sap/m/SelectList.js +1 -1
  212. package/src/sap/m/SelectionDetails.js +3 -5
  213. package/src/sap/m/SelectionDetailsFacade.js +2 -2
  214. package/src/sap/m/SelectionDetailsItem.js +1 -1
  215. package/src/sap/m/SelectionDetailsItemLine.js +3 -3
  216. package/src/sap/m/Shell.js +1 -1
  217. package/src/sap/m/SimpleFixFlex.js +1 -1
  218. package/src/sap/m/SinglePlanningCalendar.js +1 -1
  219. package/src/sap/m/SinglePlanningCalendarDayView.js +1 -1
  220. package/src/sap/m/SinglePlanningCalendarGrid.js +94 -52
  221. package/src/sap/m/SinglePlanningCalendarGridRenderer.js +10 -9
  222. package/src/sap/m/SinglePlanningCalendarMonthGrid.js +24 -10
  223. package/src/sap/m/SinglePlanningCalendarMonthView.js +1 -1
  224. package/src/sap/m/SinglePlanningCalendarView.js +1 -1
  225. package/src/sap/m/SinglePlanningCalendarWeekView.js +1 -1
  226. package/src/sap/m/SinglePlanningCalendarWorkWeekView.js +1 -1
  227. package/src/sap/m/SlideTile.js +2 -2
  228. package/src/sap/m/SlideTileRenderer.js +8 -1
  229. package/src/sap/m/Slider.js +1 -1
  230. package/src/sap/m/SliderTooltip.js +1 -1
  231. package/src/sap/m/SliderTooltipBase.js +1 -1
  232. package/src/sap/m/SliderTooltipContainer.js +5 -1
  233. package/src/sap/m/SplitApp.js +1 -1
  234. package/src/sap/m/SplitButton.js +1 -1
  235. package/src/sap/m/SplitContainer.js +4 -4
  236. package/src/sap/m/StandardDynamicDateOption.js +41 -18
  237. package/src/sap/m/StandardListItem.js +3 -3
  238. package/src/sap/m/StandardListItemRenderer.js +1 -1
  239. package/src/sap/m/StandardTile.js +1 -1
  240. package/src/sap/m/StandardTreeItem.js +1 -1
  241. package/src/sap/m/StepInput.js +4 -4
  242. package/src/sap/m/SuggestionItem.js +1 -1
  243. package/src/sap/m/SuggestionsPopover.js +6 -14
  244. package/src/sap/m/Switch.js +1 -1
  245. package/src/sap/m/TabContainer.js +1 -1
  246. package/src/sap/m/TabContainerItem.js +1 -1
  247. package/src/sap/m/TabStrip.js +6 -4
  248. package/src/sap/m/TabStripItem.js +1 -1
  249. package/src/sap/m/TabStripRenderer.js +2 -2
  250. package/src/sap/m/Table.js +34 -3
  251. package/src/sap/m/TablePersoController.js +1 -1
  252. package/src/sap/m/TablePersoDialog.js +1 -1
  253. package/src/sap/m/TablePersoProvider.js +1 -1
  254. package/src/sap/m/TableRenderer.js +9 -4
  255. package/src/sap/m/TableSelectDialog.js +15 -11
  256. package/src/sap/m/Text.js +1 -1
  257. package/src/sap/m/TextArea.js +1 -1
  258. package/src/sap/m/Tile.js +3 -3
  259. package/src/sap/m/TileContainer.js +6 -4
  260. package/src/sap/m/TileContent.js +34 -2
  261. package/src/sap/m/TileContentRenderer.js +44 -8
  262. package/src/sap/m/TileRenderer.js +1 -1
  263. package/src/sap/m/TimePicker.js +53 -61
  264. package/src/sap/m/TimePickerClock.js +1 -1
  265. package/src/sap/m/TimePickerClocks.js +1 -1
  266. package/src/sap/m/TimePickerInputs.js +1 -1
  267. package/src/sap/m/TimePickerInternals.js +2 -2
  268. package/src/sap/m/TimePickerRenderer.js +2 -4
  269. package/src/sap/m/TimePickerSlider.js +1 -1
  270. package/src/sap/m/TimePickerSliders.js +1 -1
  271. package/src/sap/m/Title.js +1 -1
  272. package/src/sap/m/TitlePropagationSupport.js +1 -1
  273. package/src/sap/m/TitleRenderer.js +2 -2
  274. package/src/sap/m/ToggleButton.js +1 -1
  275. package/src/sap/m/Token.js +1 -1
  276. package/src/sap/m/Tokenizer.js +19 -7
  277. package/src/sap/m/TokenizerRenderer.js +1 -1
  278. package/src/sap/m/Toolbar.js +7 -1
  279. package/src/sap/m/ToolbarLayoutData.js +1 -1
  280. package/src/sap/m/ToolbarSeparator.js +5 -3
  281. package/src/sap/m/ToolbarSpacer.js +1 -1
  282. package/src/sap/m/Tree.js +1 -1
  283. package/src/sap/m/TreeItemBase.js +1 -1
  284. package/src/sap/m/UploadCollection.js +5 -3
  285. package/src/sap/m/UploadCollectionItem.js +2 -1
  286. package/src/sap/m/UploadCollectionParameter.js +2 -1
  287. package/src/sap/m/UploadCollectionRenderer.js +1 -0
  288. package/src/sap/m/UploadCollectionToolbarPlaceholder.js +2 -1
  289. package/src/sap/m/VBox.js +1 -1
  290. package/src/sap/m/ValueStateHeader.js +1 -1
  291. package/src/sap/m/VariantManagement.js +2492 -0
  292. package/src/sap/m/ViewSettingsCustomItem.js +1 -1
  293. package/src/sap/m/ViewSettingsCustomTab.js +1 -1
  294. package/src/sap/m/ViewSettingsDialog.js +106 -49
  295. package/src/sap/m/ViewSettingsFilterItem.js +1 -1
  296. package/src/sap/m/ViewSettingsItem.js +1 -1
  297. package/src/sap/m/VisibleItem.js +2 -2
  298. package/src/sap/m/WheelSlider.js +1 -1
  299. package/src/sap/m/WheelSliderContainer.js +1 -1
  300. package/src/sap/m/Wizard.js +22 -4
  301. package/src/sap/m/WizardProgressNavigator.js +10 -3
  302. package/src/sap/m/WizardStep.js +1 -1
  303. package/src/sap/m/changeHandler/AddTableColumn.js +3 -5
  304. package/src/sap/m/changeHandler/ChangeLinkTarget.js +1 -1
  305. package/src/sap/m/changeHandler/CombineButtons.js +1 -1
  306. package/src/sap/m/changeHandler/MoveTableColumns.js +1 -1
  307. package/src/sap/m/changeHandler/SelectIconTabBarFilter.js +1 -1
  308. package/src/sap/m/changeHandler/SplitMenuButton.js +5 -5
  309. package/src/sap/m/delegate/DateNavigation.js +2 -2
  310. package/src/sap/m/designtime/ListBase.designtime.js +3 -0
  311. package/src/sap/m/designtime/VariantManagement.designtime.js +56 -0
  312. package/src/sap/m/inputUtils/SuggestionsPopoverDialogMixin.js +22 -16
  313. package/src/sap/m/inputUtils/SuggestionsPopoverPopoverMixin.js +10 -2
  314. package/src/sap/m/inputUtils/highlightDOMElements.js +4 -3
  315. package/src/sap/m/inputUtils/typeAhead.js +7 -7
  316. package/src/sap/m/library.js +38 -31
  317. package/src/sap/m/messagebundle.properties +177 -24
  318. package/src/sap/m/messagebundle_ar.properties +116 -18
  319. package/src/sap/m/messagebundle_bg.properties +116 -18
  320. package/src/sap/m/messagebundle_ca.properties +116 -18
  321. package/src/sap/m/messagebundle_cs.properties +118 -20
  322. package/src/sap/m/messagebundle_cy.properties +116 -18
  323. package/src/sap/m/messagebundle_da.properties +116 -18
  324. package/src/sap/m/messagebundle_de.properties +117 -19
  325. package/src/sap/m/messagebundle_el.properties +119 -21
  326. package/src/sap/m/messagebundle_en.properties +115 -17
  327. package/src/sap/m/messagebundle_en_GB.properties +115 -17
  328. package/src/sap/m/messagebundle_en_US_sappsd.properties +115 -17
  329. package/src/sap/m/messagebundle_en_US_saprigi.properties +115 -17
  330. package/src/sap/m/messagebundle_en_US_saptrc.properties +115 -17
  331. package/src/sap/m/messagebundle_es.properties +116 -18
  332. package/src/sap/m/messagebundle_es_MX.properties +116 -18
  333. package/src/sap/m/messagebundle_et.properties +116 -18
  334. package/src/sap/m/messagebundle_fi.properties +115 -17
  335. package/src/sap/m/messagebundle_fr.properties +119 -21
  336. package/src/sap/m/messagebundle_fr_CA.properties +115 -17
  337. package/src/sap/m/messagebundle_hi.properties +114 -16
  338. package/src/sap/m/messagebundle_hr.properties +116 -18
  339. package/src/sap/m/messagebundle_hu.properties +116 -18
  340. package/src/sap/m/messagebundle_id.properties +115 -17
  341. package/src/sap/m/messagebundle_it.properties +124 -26
  342. package/src/sap/m/messagebundle_iw.properties +116 -18
  343. package/src/sap/m/messagebundle_ja.properties +115 -17
  344. package/src/sap/m/messagebundle_kk.properties +116 -18
  345. package/src/sap/m/messagebundle_ko.properties +116 -18
  346. package/src/sap/m/messagebundle_lt.properties +116 -18
  347. package/src/sap/m/messagebundle_lv.properties +115 -17
  348. package/src/sap/m/messagebundle_ms.properties +115 -17
  349. package/src/sap/m/messagebundle_nl.properties +115 -17
  350. package/src/sap/m/messagebundle_no.properties +116 -18
  351. package/src/sap/m/messagebundle_pl.properties +116 -18
  352. package/src/sap/m/messagebundle_pt.properties +125 -27
  353. package/src/sap/m/messagebundle_pt_PT.properties +116 -18
  354. package/src/sap/m/messagebundle_ro.properties +116 -18
  355. package/src/sap/m/messagebundle_ru.properties +116 -18
  356. package/src/sap/m/messagebundle_sh.properties +116 -18
  357. package/src/sap/m/messagebundle_sk.properties +116 -18
  358. package/src/sap/m/messagebundle_sl.properties +116 -18
  359. package/src/sap/m/messagebundle_sv.properties +117 -19
  360. package/src/sap/m/messagebundle_th.properties +115 -17
  361. package/src/sap/m/messagebundle_tr.properties +116 -18
  362. package/src/sap/m/messagebundle_uk.properties +116 -18
  363. package/src/sap/m/messagebundle_vi.properties +115 -17
  364. package/src/sap/m/messagebundle_zh_CN.properties +116 -18
  365. package/src/sap/m/messagebundle_zh_TW.properties +115 -17
  366. package/src/sap/m/p13n/AbstractContainer.js +2 -2
  367. package/src/sap/m/p13n/AbstractContainerItem.js +2 -2
  368. package/src/sap/m/p13n/BasePanel.js +34 -15
  369. package/src/sap/m/p13n/Container.js +11 -4
  370. package/src/sap/m/p13n/GroupPanel.js +17 -5
  371. package/src/sap/m/p13n/Popup.js +9 -2
  372. package/src/sap/m/p13n/QueryPanel.js +89 -35
  373. package/src/sap/m/p13n/SelectionPanel.js +42 -9
  374. package/src/sap/m/p13n/SortPanel.js +27 -13
  375. package/src/sap/m/plugins/ColumnResizer.js +48 -13
  376. package/src/sap/m/plugins/DataStateIndicator.js +3 -2
  377. package/src/sap/m/plugins/PasteProvider.js +1 -1
  378. package/src/sap/m/plugins/PluginBase.js +1 -1
  379. package/src/sap/m/rules/Breadcrumbs.support.js +1 -1
  380. package/src/sap/m/rules/CheckBox.support.js +1 -1
  381. package/src/sap/m/rules/Image.support.js +1 -1
  382. package/src/sap/m/rules/Link.support.js +1 -1
  383. package/src/sap/m/rules/MessagePage.support.js +1 -1
  384. package/src/sap/m/rules/ObjectHeader.support.js +6 -6
  385. package/src/sap/m/rules/ObjectListItem.support.js +1 -1
  386. package/src/sap/m/rules/ObjectMarker.support.js +1 -1
  387. package/src/sap/m/rules/ObjectStatus.support.js +1 -1
  388. package/src/sap/m/rules/Select.support.js +1 -1
  389. package/src/sap/m/rules/Table.support.js +3 -3
  390. package/src/sap/m/rules/Tokenizer.support.js +4 -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 +7 -14
  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 +1 -1
  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 +2 -2
  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/table/Util.js +114 -29
  432. package/src/sap/m/table/columnmenu/ActionItem.js +1 -1
  433. package/src/sap/m/table/columnmenu/Entry.js +1 -11
  434. package/src/sap/m/table/columnmenu/Item.js +1 -1
  435. package/src/sap/m/table/columnmenu/ItemBase.js +11 -1
  436. package/src/sap/m/table/columnmenu/ItemContainer.js +29 -0
  437. package/src/sap/m/table/columnmenu/Menu.js +228 -35
  438. package/src/sap/m/table/columnmenu/MenuRenderer.js +5 -28
  439. package/src/sap/m/table/columnmenu/QuickAction.js +14 -3
  440. package/src/sap/m/table/columnmenu/QuickActionBase.js +11 -1
  441. package/src/sap/m/table/columnmenu/QuickActionContainer.js +29 -0
  442. package/src/sap/m/table/columnmenu/QuickActionItem.js +5 -5
  443. package/src/sap/m/table/columnmenu/QuickGroup.js +20 -16
  444. package/src/sap/m/table/columnmenu/QuickGroupItem.js +1 -1
  445. package/src/sap/m/table/columnmenu/QuickSort.js +2 -1
  446. package/src/sap/m/table/columnmenu/QuickSortItem.js +29 -28
  447. package/src/sap/m/table/columnmenu/QuickTotal.js +20 -25
  448. package/src/sap/m/table/columnmenu/QuickTotalItem.js +1 -1
  449. package/src/sap/m/themes/base/ActionListItem.less +1 -1
  450. package/src/sap/m/themes/base/Avatar.less +11 -5
  451. package/src/sap/m/themes/base/Button.less +2 -7
  452. package/src/sap/m/themes/base/Carousel.less +72 -87
  453. package/src/sap/m/themes/base/CheckBox.less +0 -1
  454. package/src/sap/m/themes/base/ColumnListItem.less +0 -3
  455. package/src/sap/m/themes/base/ColumnMenu.less +12 -4
  456. package/src/sap/m/themes/base/DatePicker.less +7 -2
  457. package/src/sap/m/themes/base/Dialog.less +10 -6
  458. package/src/sap/m/themes/base/GenericTile.less +672 -170
  459. package/src/sap/m/themes/base/IconTabBar.less +45 -14
  460. package/src/sap/m/themes/base/IconTabBarSelectList.less +5 -4
  461. package/src/sap/m/themes/base/Input.less +1 -1
  462. package/src/sap/m/themes/base/InputBase.less +114 -11
  463. package/src/sap/m/themes/base/Label.less +4 -1
  464. package/src/sap/m/themes/base/LightBox.less +9 -7
  465. package/src/sap/m/themes/base/Link.less +12 -4
  466. package/src/sap/m/themes/base/ListBase.less +4 -0
  467. package/src/sap/m/themes/base/ListItemBase.less +1 -12
  468. package/src/sap/m/themes/base/MenuButton.less +20 -4
  469. package/src/sap/m/themes/base/MessageBox.less +5 -5
  470. package/src/sap/m/themes/base/MessageToast.less +2 -2
  471. package/src/sap/m/themes/base/MultiInput.less +1 -1
  472. package/src/sap/m/themes/base/NewsContent.less +0 -9
  473. package/src/sap/m/themes/base/NotificationListBase.less +9 -14
  474. package/src/sap/m/themes/base/NotificationListGroup.less +30 -44
  475. package/src/sap/m/themes/base/NotificationListItem.less +14 -18
  476. package/src/sap/m/themes/base/NumericContent.less +1 -5
  477. package/src/sap/m/themes/base/ObjectAttribute.less +1 -1
  478. package/src/sap/m/themes/base/ObjectListItem.less +3 -0
  479. package/src/sap/m/themes/base/ObjectMarker.less +3 -1
  480. package/src/sap/m/themes/base/ObjectStatus.less +8 -0
  481. package/src/sap/m/themes/base/Page.less +1 -1
  482. package/src/sap/m/themes/base/Panel.less +1 -1
  483. package/src/sap/m/themes/base/Popover.less +10 -7
  484. package/src/sap/m/themes/base/QuickView.less +14 -2
  485. package/src/sap/m/themes/base/RadioButton.less +22 -3
  486. package/src/sap/m/themes/base/RatingIndicator.less +4 -0
  487. package/src/sap/m/themes/base/SearchField.less +23 -59
  488. package/src/sap/m/themes/base/SinglePlanningCalendarGrid.less +3 -29
  489. package/src/sap/m/themes/base/SlideTile.less +18 -0
  490. package/src/sap/m/themes/base/Slider.less +18 -18
  491. package/src/sap/m/themes/base/SplitButton.less +5 -0
  492. package/src/sap/m/themes/base/StandardListItem.less +5 -9
  493. package/src/sap/m/themes/base/SuggestionsPopover.less +1 -1
  494. package/src/sap/m/themes/base/Table.less +18 -21
  495. package/src/sap/m/themes/base/TextArea.less +32 -0
  496. package/src/sap/m/themes/base/TileContent.less +41 -1
  497. package/src/sap/m/themes/base/Token.less +17 -15
  498. package/src/sap/m/themes/base/Tokenizer.less +2 -2
  499. package/src/sap/m/themes/base/Toolbar.less +1 -1
  500. package/src/sap/m/themes/base/UploadCollection.less +2 -0
  501. package/src/sap/m/themes/base/ValueStateMessage.less +3 -3
  502. package/src/sap/m/themes/base/VariantManagement.less +97 -0
  503. package/src/sap/m/themes/base/Wizard.less +5 -4
  504. package/src/sap/m/themes/base/WizardProgressNavigator.less +8 -0
  505. package/src/sap/m/themes/base/library.source.less +1 -0
  506. package/src/sap/m/themes/sap_hcb/Carousel.less +3 -7
  507. package/src/sap/m/themes/sap_hcb/ComboBoxBase.less +0 -12
  508. package/src/sap/m/themes/sap_hcb/InputBase.less +7 -42
  509. package/src/sap/m/themes/sap_hcb/Panel.less +4 -0
  510. package/src/sap/m/themes/sap_hcb/Popover.less +3 -0
  511. package/src/sap/m/themes/sap_hcb/Slider.less +11 -0
  512. package/src/sap/m/themes/sap_hcb/Token.less +4 -0
  513. package/src/sap/m/themes/sap_hcb/Tokenizer.less +1 -0
  514. package/src/sap/m/themes/sap_hcb/ValueStateHeader.less +4 -0
  515. package/src/sap/m/themes/sap_hcb/ValueStateMessage.less +12 -1
  516. package/src/sap/m/upload/UploadSet.js +330 -34
  517. package/src/sap/m/upload/UploadSetItem.js +74 -5
@@ -4,8 +4,8 @@
4
4
  * Licensed under the Apache License, Version 2.0 - see LICENSE.txt.
5
5
  */
6
6
 
7
- sap.ui.define(["sap/ui/core/Element", "sap/base/Log", "sap/base/util/isPlainObject", "sap/ui/thirdparty/jquery"],
8
- function(Element, Log, isPlainObject, jQuery) {
7
+ sap.ui.define(["sap/ui/core/Element", "sap/base/Log", "sap/base/util/isPlainObject"],
8
+ function(Element, Log, isPlainObject) {
9
9
  "use strict";
10
10
 
11
11
  /**
@@ -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.99.1
26
+ * @version 1.102.0
27
27
  *
28
28
  * @constructor
29
29
  * @protected
@@ -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.99.1
38
+ * @version 1.102.0
39
39
  *
40
40
  * @constructor
41
41
  * @public
@@ -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.99.1
34
+ * @version 1.102.0
35
35
  *
36
36
  * @constructor
37
37
  * @private
@@ -104,7 +104,7 @@ function(
104
104
  * @extends sap.ui.core.Control
105
105
  *
106
106
  * @author SAP SE
107
- * @version 1.99.1
107
+ * @version 1.102.0
108
108
  *
109
109
  * @constructor
110
110
  * @public
@@ -25,7 +25,7 @@ function (library, SinglePlanningCalendarView) {
25
25
  * @extends sap.m.SinglePlanningCalendarView
26
26
  *
27
27
  * @author SAP SE
28
- * @version 1.99.1
28
+ * @version 1.102.0
29
29
  *
30
30
  * @constructor
31
31
  * @public
@@ -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.99.1
109
+ * @version 1.102.0
100
110
  *
101
111
  * @constructor
102
112
  * @private
@@ -392,6 +402,7 @@ sap.ui.define([
392
402
  this._createAppointmentsDndPlaceholders(oStartDate, iColumns);
393
403
  }
394
404
 
405
+ this._oInvisibleMessage = InvisibleMessage.getInstance();
395
406
  };
396
407
 
397
408
  SinglePlanningCalendarGrid.prototype.onmousedown = function(oEvent) {
@@ -433,7 +444,7 @@ sap.ui.define([
433
444
  var oDragSession = oEvent.getParameter("dragSession"),
434
445
  oAppointment = oDragSession.getDragControl(),
435
446
  oDropTarget = oDragSession.getDropControl(),
436
- bIsFullDay = this.isAllDayAppointment(oAppointment.getStartDate(), oAppointment.getEndDate()),
447
+ bIsFullDay = this.isAllDayAppointment(oAppointment._getStartDateWithTimezoneAdaptation(), oAppointment._getEndDateWithTimezoneAdaptation()),
437
448
  fnAlignIndicator = function () {
438
449
  var $Indicator = jQuery(oDragSession.getIndicator()),
439
450
  iAppHeight = oAppointment.$().outerHeight(),
@@ -466,17 +477,17 @@ sap.ui.define([
466
477
  oEndDate,
467
478
  oBrowserEvent = oEvent.getParameter("browserEvent"),
468
479
  bCopy = (oBrowserEvent.metaKey || oBrowserEvent.ctrlKey),
469
- bIsFullDay = this.isAllDayAppointment(oAppointment.getStartDate(), oAppointment.getEndDate());
480
+ bIsFullDay = this.isAllDayAppointment(oAppointment._getStartDateWithTimezoneAdaptation(), oAppointment._getEndDateWithTimezoneAdaptation());
470
481
 
471
482
  oEndDate = new Date(oStartDate);
472
483
 
473
484
  if (bIsFullDay) {
474
- oEndDate.setMilliseconds(oAppointment.getEndDate().getTime() - oAppointment.getStartDate().getTime());
485
+ oEndDate.setMilliseconds(oAppointment._getEndDateWithTimezoneAdaptation().getTime() - oAppointment._getStartDateWithTimezoneAdaptation().getTime());
475
486
  }
476
487
 
477
488
  this.$().find(".sapMSinglePCOverlay").removeClass("sapMSinglePCOverlayDragging");
478
489
 
479
- if (bIsFullDay && oAppointment.getStartDate().getTime() === oStartDate.getTime()) {
490
+ if (bIsFullDay && oAppointment._getStartDateWithTimezoneAdaptation().getTime() === oStartDate.getTime()) {
480
491
  return;
481
492
  }
482
493
 
@@ -519,7 +530,7 @@ sap.ui.define([
519
530
  var oDragSession = oEvent.getParameter("dragSession"),
520
531
  oAppointment = oDragSession.getDragControl(),
521
532
  oDropTarget = oDragSession.getDropControl(),
522
- bIsFullDay = this.isAllDayAppointment(oAppointment.getStartDate(), oAppointment.getEndDate()),
533
+ bIsFullDay = this.isAllDayAppointment(oAppointment._getStartDateWithTimezoneAdaptation(), oAppointment._getEndDateWithTimezoneAdaptation()),
523
534
  fnAlignIndicator = function () {
524
535
  var $Indicator = jQuery(oDragSession.getIndicator()),
525
536
  iAppHeight = oAppointment.$().outerHeight(),
@@ -549,19 +560,19 @@ sap.ui.define([
549
560
  oEndDate,
550
561
  oBrowserEvent = oEvent.getParameter("browserEvent"),
551
562
  bCopy = (oBrowserEvent.metaKey || oBrowserEvent.ctrlKey),
552
- bIsFullDay = this.isAllDayAppointment(oAppointment.getStartDate(), oAppointment.getEndDate());
563
+ bIsFullDay = this.isAllDayAppointment(oAppointment._getStartDateWithTimezoneAdaptation(), oAppointment._getEndDateWithTimezoneAdaptation());
553
564
 
554
565
  oEndDate = new Date(oStartDate);
555
566
 
556
567
  if (bIsFullDay) {
557
568
  oEndDate.setHours(oEndDate.getHours() + 1);
558
569
  } else {
559
- oEndDate.setMilliseconds(oAppointment.getEndDate().getTime() - oAppointment.getStartDate().getTime());
570
+ oEndDate.setMilliseconds(oAppointment._getEndDateWithTimezoneAdaptation().getTime() - oAppointment._getStartDateWithTimezoneAdaptation().getTime());
560
571
  }
561
572
 
562
573
  this.$().find(".sapMSinglePCOverlay").removeClass("sapMSinglePCOverlayDragging");
563
574
 
564
- if (!bIsFullDay && oAppointment.getStartDate().getTime() === oStartDate.getTime()) {
575
+ if (!bIsFullDay && oAppointment._getStartDateWithTimezoneAdaptation().getTime() === oStartDate.getTime()) {
565
576
  return;
566
577
  }
567
578
 
@@ -689,8 +700,8 @@ sap.ui.define([
689
700
  newPos;
690
701
 
691
702
  newPos = this._calcResizeNewHoursAppPos(
692
- oAppointment.getStartDate(),
693
- oAppointment.getEndDate(),
703
+ oAppointment._getStartDateWithTimezoneAdaptation(),
704
+ oAppointment._getEndDateWithTimezoneAdaptation(),
694
705
  iIndex,
695
706
  oDragSession.getComplexData("bottomHandle")
696
707
  );
@@ -705,8 +716,8 @@ sap.ui.define([
705
716
  opacity: 1
706
717
  });
707
718
 
708
- if (oAppointment.getEndDate().getTime() === newPos.endDate.getTime() &&
709
- oAppointment.getStartDate().getTime() === newPos.startDate.getTime()) {
719
+ if (oAppointment._getEndDateWithTimezoneAdaptation().getTime() === newPos.endDate.getTime() &&
720
+ oAppointment._getStartDateWithTimezoneAdaptation().getTime() === newPos.startDate.getTime()) {
710
721
  return;
711
722
  }
712
723
 
@@ -829,11 +840,11 @@ sap.ui.define([
829
840
  drop: function (oEvent) {
830
841
  var oDragSession = oEvent.getParameter("dragSession"),
831
842
  oDropControl = oDragSession.getDropControl(),
832
- 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
833
844
  oStartDate = oDragSession.getComplexData("startingDropDate").getTime(),
834
845
  oEndDate = oDropControl.getDate().getJSDate().getTime(),
835
846
  iStartTime = Math.min(oStartDate, oEndDate),
836
- iEndTime = Math.max(oStartDate, oEndDate) + THIRTY_MINUTES;
847
+ iEndTime = Math.max(oStartDate, oEndDate) + iМillisecondsStep;
837
848
 
838
849
  this.fireAppointmentCreate({
839
850
  startDate: new Date(iStartTime),
@@ -847,7 +858,7 @@ sap.ui.define([
847
858
  };
848
859
 
849
860
  SinglePlanningCalendarGrid.prototype._calcResizeNewHoursAppPos = function(oAppStartDate, oAppEndDate, iIndex, bBottomHandle) {
850
- 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
851
862
  iPlaceholderStartTime = this.getAggregation("_intervalPlaceholders")[iIndex].getDate().getTime(),
852
863
  iPlaceholderEndTime = iPlaceholderStartTime + iMinutesStep,
853
864
  iVariableBoundaryTime = bBottomHandle ? oAppStartDate.getTime() : oAppEndDate.getTime(),
@@ -876,8 +887,8 @@ sap.ui.define([
876
887
  this._oAppointmentsToRender[sDate].oAppointmentsList.getIterator().forEach(function(oAppNode) {
877
888
  oAppointment = oAppNode.getData();
878
889
  oAppDomRef = this.getDomRef().querySelector("#" + oAppointment.getId() + "-" + iColumn + "_" + iRow);
879
- oAppStartDate = oAppointment.getStartDate();
880
- oAppEndDate = oAppointment.getEndDate();
890
+ oAppStartDate = oAppointment._getStartDateWithTimezoneAdaptation();
891
+ oAppEndDate = oAppointment._getEndDateWithTimezoneAdaptation();
881
892
  bAppStartIsOutsideVisibleStartHour = oColumnStartDateAndHour.getTime() > oAppStartDate.getTime();
882
893
  bAppEndIsOutsideVisibleEndHour = oColumnEndDateAndHour.getTime() < oAppEndDate.getTime();
883
894
 
@@ -1142,9 +1153,9 @@ sap.ui.define([
1142
1153
  * @private
1143
1154
  */
1144
1155
  SinglePlanningCalendarGrid.prototype._focusCellWithKeyboard = function (oAppointment, iDirection) {
1145
- var bFullDayApp = this.isAllDayAppointment(oAppointment.getStartDate(), oAppointment.getEndDate()),
1156
+ var bFullDayApp = this.isAllDayAppointment(oAppointment._getStartDateWithTimezoneAdaptation(), oAppointment._getEndDateWithTimezoneAdaptation()),
1146
1157
  oFormat = this._getDateFormatter(),
1147
- 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()),
1148
1159
  oGridStartDate = new Date(this.getStartDate().getFullYear(), this.getStartDate().getMonth(), this.getStartDate().getDate(), this.getStartDate().getHours());
1149
1160
 
1150
1161
  // If an appointment start hour is before the visible grid start date
@@ -1207,6 +1218,12 @@ sap.ui.define([
1207
1218
  if (oEvent.which === KeyCodes.SPACE || oEvent.which === KeyCodes.ENTER) {
1208
1219
  this._fireSelectionEvent(oEvent);
1209
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
+
1210
1227
  // Prevent scrolling
1211
1228
  oEvent.preventDefault();
1212
1229
  }
@@ -1368,7 +1385,7 @@ sap.ui.define([
1368
1385
  */
1369
1386
  SinglePlanningCalendarGrid.prototype._formatTimeAsString = function (oDate) {
1370
1387
  var sPattern = this._getHoursPattern() + ":mm",
1371
- oFormat = DateFormat.getDateTimeInstance({pattern: sPattern }, new Locale(this._getCoreLocaleId()));
1388
+ oFormat = DateFormat.getTimeInstance({pattern: sPattern }, new Locale(this._getCoreLocaleId()));
1372
1389
 
1373
1390
  return oFormat.format(oDate);
1374
1391
  };
@@ -1440,15 +1457,35 @@ sap.ui.define([
1440
1457
  var $nowMarker = this.$("nowMarker"),
1441
1458
  $nowMarkerText = this.$("nowMarkerText"),
1442
1459
  $nowMarkerAMPM = this.$("nowMarkerAMPM"),
1443
- bCurrentHourNotVisible = !this._isVisibleHour(oDate.getHours());
1460
+ bCurrentHourNotVisible = !this._isVisibleHour(oDate.getHours()),
1461
+ oMarkerDate = new Date(oDate.getTime());
1462
+
1463
+ oMarkerDate = this._convertToTimezone(oMarkerDate);
1444
1464
 
1445
1465
  $nowMarker.toggleClass("sapMSinglePCNowMarkerHidden", bCurrentHourNotVisible);
1446
- $nowMarker.css("top", this._calculateTopPosition(oDate) + "rem");
1466
+ $nowMarker.css("top", this._calculateTopPosition(oMarkerDate) + "rem");
1447
1467
  $nowMarkerText.text(this._formatTimeAsString(oDate));
1448
1468
  $nowMarkerAMPM.text(this._addAMPM(oDate));
1449
1469
  $nowMarkerText.append($nowMarkerAMPM);
1450
1470
  };
1451
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
+
1452
1489
  /**
1453
1490
  * Updates the row headers assuming that there is a DOM representation.
1454
1491
  *
@@ -1480,8 +1517,8 @@ sap.ui.define([
1480
1517
  var that = this;
1481
1518
 
1482
1519
  return aAppointments.reduce(function (oMap, oAppointment) {
1483
- var oAppStartDate = oAppointment.getStartDate(),
1484
- oAppEndDate = oAppointment.getEndDate(),
1520
+ var oAppStartDate = oAppointment._getStartDateWithTimezoneAdaptation(),
1521
+ oAppEndDate = oAppointment._getEndDateWithTimezoneAdaptation(),
1485
1522
  oCurrentAppCalStartDate,
1486
1523
  oCurrentAppCalEndDate,
1487
1524
  sDay;
@@ -1546,14 +1583,14 @@ sap.ui.define([
1546
1583
  /**
1547
1584
  * Determines if an appointment fits in the visible hours of the grid.
1548
1585
  *
1549
- * @param {CalendarDate} oColumnCalDate the start date of the grid
1586
+ * @param {sap.ui.unified.calendar.CalendarDate} oColumnCalDate the start date of the grid
1550
1587
  * @returns {boolean} true if the appointment is in the visible hours
1551
1588
  * @private
1552
1589
  */
1553
1590
  SinglePlanningCalendarGrid.prototype._isAppointmentFitInVisibleHours = function (oColumnCalDate) {
1554
1591
  return function (oAppointment) {
1555
- var iAppStartTime = oAppointment.getStartDate().getTime(),
1556
- iAppEndTime = oAppointment.getEndDate().getTime(),
1592
+ var iAppStartTime = oAppointment._getStartDateWithTimezoneAdaptation().getTime(),
1593
+ iAppEndTime = oAppointment._getEndDateWithTimezoneAdaptation().getTime(),
1557
1594
  iColumnStartTime = (new UniversalDate(oColumnCalDate.getYear(), oColumnCalDate.getMonth(), oColumnCalDate.getDate(), this._getVisibleStartHour())).getTime(),
1558
1595
  iColumnEndTime = (new UniversalDate(oColumnCalDate.getYear(), oColumnCalDate.getMonth(), oColumnCalDate.getDate(), this._getVisibleEndHour(), 59, 59)).getTime();
1559
1596
 
@@ -1583,7 +1620,7 @@ sap.ui.define([
1583
1620
 
1584
1621
  aAppointments.forEach(function (oCurrentAppointment) {
1585
1622
  var oCurrentAppointmentNode = new SinglePlanningCalendarUtilities.node(oCurrentAppointment),
1586
- iCurrentAppointmentStart = oCurrentAppointment.getStartDate().getTime();
1623
+ iCurrentAppointmentStart = oCurrentAppointment._getStartDateWithTimezoneAdaptation().getTime();
1587
1624
 
1588
1625
  if (oAppointmentsList.getSize() === 0) {
1589
1626
  oAppointmentsList.add(oCurrentAppointmentNode);
@@ -1593,8 +1630,8 @@ sap.ui.define([
1593
1630
  oAppointmentsList.getIterator().forEach(function (oAppointmentNode) {
1594
1631
  var bShouldBreak = true,
1595
1632
  oAppointment = oAppointmentNode.getData(),
1596
- iAppointmentStart = oAppointment.getStartDate().getTime(),
1597
- iAppointmentEnd = oAppointment.getEndDate().getTime(),
1633
+ iAppointmentStart = oAppointment._getStartDateWithTimezoneAdaptation().getTime(),
1634
+ iAppointmentEnd = oAppointment._getEndDateWithTimezoneAdaptation().getTime(),
1598
1635
  iAppointmentDuration = iAppointmentEnd - iAppointmentStart;
1599
1636
 
1600
1637
  if (iAppointmentDuration < iDuration) {
@@ -1639,8 +1676,8 @@ sap.ui.define([
1639
1676
  var oCurrentAppointment = oCurrentAppointmentNode.getData(),
1640
1677
  iLevelFoundSpace = oCurrentAppointmentNode.level,
1641
1678
  iCurrentAppointmentLevel = oCurrentAppointmentNode.level,
1642
- iCurrentAppointmentStart = oCurrentAppointment.getStartDate().getTime(),
1643
- iCurrentAppointmentEnd = oCurrentAppointment.getEndDate().getTime(),
1679
+ iCurrentAppointmentStart = oCurrentAppointment._getStartDateWithTimezoneAdaptation().getTime(),
1680
+ iCurrentAppointmentEnd = oCurrentAppointment._getEndDateWithTimezoneAdaptation().getTime(),
1644
1681
  iCurrentAppointmentDuration = iCurrentAppointmentEnd - iCurrentAppointmentStart;
1645
1682
 
1646
1683
  if (iCurrentAppointmentDuration < HALF_HOUR_MS) {
@@ -1652,8 +1689,8 @@ sap.ui.define([
1652
1689
  new SinglePlanningCalendarUtilities.iterator(oAppointmentsList).forEach(function (oAppointmentNode) {
1653
1690
  var oAppointment = oAppointmentNode.getData(),
1654
1691
  iAppointmentLevel = oAppointmentNode.level,
1655
- iAppointmentStart = oAppointment.getStartDate().getTime(),
1656
- iAppointmentEnd = oAppointment.getEndDate().getTime(),
1692
+ iAppointmentStart = oAppointment._getStartDateWithTimezoneAdaptation().getTime(),
1693
+ iAppointmentEnd = oAppointment._getEndDateWithTimezoneAdaptation().getTime(),
1657
1694
  iAppointmentDuration = iAppointmentEnd - iAppointmentStart;
1658
1695
 
1659
1696
  if (iAppointmentDuration < HALF_HOUR_MS) {
@@ -1690,7 +1727,7 @@ sap.ui.define([
1690
1727
  * Selects the clusters of all-day appointments which are in the visual port of the grid.
1691
1728
  *
1692
1729
  * @param {object} aBlockers the all-day appointments in the corresponding aggregation
1693
- * @param {CalendarDate} oCalStartDate the start date of the grid
1730
+ * @param {sap.ui.unified.calendar.CalendarDate} oCalStartDate the start date of the grid
1694
1731
  * @param {int} iColumns the number of columns to be displayed in the grid
1695
1732
  * @returns {object} the clusters of all-day appointments in the visual port of the grid
1696
1733
  * @private
@@ -1706,15 +1743,15 @@ sap.ui.define([
1706
1743
  /**
1707
1744
  * Determines whether the blocker is in the visible grid area.
1708
1745
  *
1709
- * @param {CalendarDate} oViewStart The start date of the view
1710
- * @param {CalendarDate} oViewEnd The end date of the view
1746
+ * @param {sap.ui.unified.calendar.CalendarDate} oViewStart The start date of the view
1747
+ * @param {sap.ui.unified.calendar.CalendarDate} oViewEnd The end date of the view
1711
1748
  * @returns {boolean} true if the blocker is visible
1712
1749
  * @private
1713
1750
  */
1714
1751
  SinglePlanningCalendarGrid.prototype._isBlockerVisible = function (oViewStart, oViewEnd) {
1715
1752
  return function (oAppointment) {
1716
- var oAppStart = CalendarDate.fromLocalJSDate(oAppointment.getStartDate()),
1717
- oAppEnd = CalendarDate.fromLocalJSDate(oAppointment.getEndDate());
1753
+ var oAppStart = CalendarDate.fromLocalJSDate(oAppointment._getStartDateWithTimezoneAdaptation()),
1754
+ oAppEnd = CalendarDate.fromLocalJSDate(oAppointment._getEndDateWithTimezoneAdaptation());
1718
1755
 
1719
1756
  var bIsBiggerThanView = oAppStart.isBefore(oViewStart) && oAppEnd.isAfter(oViewEnd),
1720
1757
  bStartDateBetweenViewStartAndEnd = CalendarUtils._isBetween(oAppStart, oViewStart, oViewEnd, true),
@@ -1737,8 +1774,8 @@ sap.ui.define([
1737
1774
 
1738
1775
  aVisibleBlockers.forEach(function (oCurrentBlocker) {
1739
1776
  var oCurrentBlockerNode = new SinglePlanningCalendarUtilities.node(oCurrentBlocker),
1740
- oCurrentBlockerStart = CalendarDate.fromLocalJSDate(oCurrentBlocker.getStartDate()),
1741
- oCurrentBlockerEnd = CalendarDate.fromLocalJSDate(oCurrentBlocker.getEndDate());
1777
+ oCurrentBlockerStart = CalendarDate.fromLocalJSDate(oCurrentBlocker._getStartDateWithTimezoneAdaptation()),
1778
+ oCurrentBlockerEnd = CalendarDate.fromLocalJSDate(oCurrentBlocker._getEndDateWithTimezoneAdaptation());
1742
1779
 
1743
1780
  oCurrentBlockerNode.width = CalendarUtils._daysBetween(oCurrentBlockerEnd, oCurrentBlockerStart);
1744
1781
 
@@ -1750,8 +1787,8 @@ sap.ui.define([
1750
1787
  oBlockersList.getIterator().forEach(function (oBlockerNode) {
1751
1788
  var bShouldBreak = true,
1752
1789
  oBlocker = oBlockerNode.getData(),
1753
- oBlockerStart = CalendarDate.fromLocalJSDate(oBlocker.getStartDate()),
1754
- oBlockerEnd = CalendarDate.fromLocalJSDate(oBlocker.getEndDate());
1790
+ oBlockerStart = CalendarDate.fromLocalJSDate(oBlocker._getStartDateWithTimezoneAdaptation()),
1791
+ oBlockerEnd = CalendarDate.fromLocalJSDate(oBlocker._getEndDateWithTimezoneAdaptation());
1755
1792
 
1756
1793
  if (oCurrentBlockerStart.isSameOrAfter(oBlockerStart) && oCurrentBlockerStart.isSameOrBefore(oBlockerEnd)) {
1757
1794
  oCurrentBlockerNode.level++;
@@ -1988,8 +2025,8 @@ sap.ui.define([
1988
2025
  SinglePlanningCalendarGrid.prototype._getAppointmentAnnouncementInfo = function (oAppointment) {
1989
2026
  var sStartTime = this._oUnifiedRB.getText("CALENDAR_START_TIME"),
1990
2027
  sEndTime = this._oUnifiedRB.getText("CALENDAR_END_TIME"),
1991
- sFormattedStartDate = this._oFormatStartEndInfoAria.format(oAppointment.getStartDate()),
1992
- sFormattedEndDate = this._oFormatStartEndInfoAria.format(oAppointment.getEndDate()),
2028
+ sFormattedStartDate = this._oFormatStartEndInfoAria.format(oAppointment._getStartDateWithTimezoneAdaptation()),
2029
+ sFormattedEndDate = this._oFormatStartEndInfoAria.format(oAppointment._getEndDateWithTimezoneAdaptation()),
1993
2030
  sAppInfo = sStartTime + ": " + sFormattedStartDate + "; " + sEndTime + ": " + sFormattedEndDate;
1994
2031
 
1995
2032
  return sAppInfo + "; " + PlanningCalendarLegend.findLegendItemForItem(sap.ui.getCore().byId(this._sLegendId), oAppointment);
@@ -2073,9 +2110,14 @@ sap.ui.define([
2073
2110
  var aDndForTheDay = this._dndPlaceholdersMap[oColumnCalDate],
2074
2111
  iYear = oColumnCalDate.getYear(),
2075
2112
  iMonth = oColumnCalDate.getMonth(),
2076
- iDate = oColumnCalDate.getDate();
2077
- aDndForTheDay.push(this._createAppointmentsDndPlaceHolder(new UniversalDate(iYear, iMonth, iDate, j)));
2078
- 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
+
2079
2121
  }
2080
2122
  }
2081
2123
  };
@@ -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
 
@@ -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(),
@@ -649,8 +650,8 @@ sap.ui.define([
649
650
  }
650
651
 
651
652
  // ARIA information about start and end
652
- // var sAriaText = oRow._oRb.getText("CALENDAR_START_TIME") + ": " + oRow._oFormatAria.format(oAppointment.getStartDate());
653
- // 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());
654
655
  // if (sTooltip) {
655
656
  // sAriaText = sAriaText + "; " + sTooltip;
656
657
  // }
@@ -22,7 +22,10 @@ sap.ui.define([
22
22
  'sap/ui/core/Core',
23
23
  './Link',
24
24
  './PlanningCalendarLegend',
25
- './SinglePlanningCalendarMonthGridRenderer'
25
+ './SinglePlanningCalendarMonthGridRenderer',
26
+ 'sap/ui/thirdparty/jquery',
27
+ 'sap/ui/core/InvisibleMessage',
28
+ 'sap/ui/core/library'
26
29
  ],
27
30
  function (
28
31
  Control,
@@ -41,7 +44,10 @@ sap.ui.define([
41
44
  Core,
42
45
  Link,
43
46
  PlanningCalendarLegend,
44
- SinglePlanningCalendarMonthGridRenderer
47
+ SinglePlanningCalendarMonthGridRenderer,
48
+ jQuery,
49
+ InvisibleMessage,
50
+ coreLibrary
45
51
  ) {
46
52
  "use strict";
47
53
 
@@ -49,6 +55,7 @@ sap.ui.define([
49
55
  var CELL_HEADER_HEIGHT_COMPACT = 1.5; //rem
50
56
  var APP_HEIGHT_COZY = 2.125; //rem
51
57
  var CELL_HEADER_HEIGHT_COZY = 1.75; //rem
58
+ var InvisibleMessageMode = coreLibrary.InvisibleMessageMode;
52
59
 
53
60
  /**
54
61
  * Constructor for a new <code>SinglePlanningCalendarMonthGrid</code>.
@@ -76,7 +83,7 @@ sap.ui.define([
76
83
  * @extends sap.ui.core.Control
77
84
  *
78
85
  * @author SAP SE
79
- * @version 1.99.1
86
+ * @version 1.102.0
80
87
  *
81
88
  * @constructor
82
89
  * @private
@@ -250,6 +257,7 @@ sap.ui.define([
250
257
 
251
258
  this._oAppointmentsToRender = this._calculateAppointmentsNodes(oStartDate);
252
259
  this._createAppointmentsDndPlaceholders(oStartDate);
260
+ this._oInvisibleMessage = InvisibleMessage.getInstance();
253
261
  };
254
262
 
255
263
  SinglePlanningCalendarMonthGrid.prototype.onAfterRendering = function() {
@@ -315,6 +323,12 @@ sap.ui.define([
315
323
  if (oEvent.which === KeyCodes.SPACE || oEvent.which === KeyCodes.ENTER) {
316
324
  this._fireSelectionEvent(oEvent);
317
325
 
326
+ var oControl = this._findSrcControl(oEvent);
327
+ if (oControl && oControl.isA("sap.ui.unified.CalendarAppointment")) {
328
+ var sBundleKey = oControl.getSelected() ? "APPOINTMENT_SELECTED" : "APPOINTMENT_UNSELECTED";
329
+ this._oInvisibleMessage.announce(this._oUnifiedRB.getText(sBundleKey), InvisibleMessageMode.Polite);
330
+ }
331
+
318
332
  // Prevent scrolling
319
333
  oEvent.preventDefault();
320
334
  }
@@ -534,15 +548,15 @@ sap.ui.define([
534
548
  oLastVisibleDay = aVisibleDays[aVisibleDays.length - 1],
535
549
  // we do not need appointments without start and end dates
536
550
  aApps = this.getAppointments().filter(function(app) {
537
- var bValid = app.getStartDate() && app.getEndDate();
551
+ var bValid = app._getStartDateWithTimezoneAdaptation() && app._getEndDateWithTimezoneAdaptation();
538
552
  if (!bValid) {
539
553
  Log.warning("Appointment " + app.getId() + " has no start or no end date. It is ignored.");
540
554
  }
541
555
  return bValid;
542
556
  // map to a structure ready for calculations
543
557
  }).map(function(app) {
544
- var oStart = CalendarDate.fromLocalJSDate(app.getStartDate()),
545
- oEnd = CalendarDate.fromLocalJSDate(app.getEndDate());
558
+ var oStart = CalendarDate.fromLocalJSDate(app._getStartDateWithTimezoneAdaptation()),
559
+ oEnd = CalendarDate.fromLocalJSDate(app._getEndDateWithTimezoneAdaptation());
546
560
  return {
547
561
  data: app,
548
562
  start: oStart,
@@ -675,8 +689,8 @@ sap.ui.define([
675
689
  oAppointment = oDragSession.getDragControl(),
676
690
  oPlaceholder = oDragSession.getDropControl(),
677
691
  oCellCalStartDate = oPlaceholder.getDate(),
678
- oAppCalStartDate = CalendarDate.fromLocalJSDate(oAppointment.getStartDate()),
679
- oAppCalEndDate = CalendarDate.fromLocalJSDate(oAppointment.getEndDate()),
692
+ oAppCalStartDate = CalendarDate.fromLocalJSDate(oAppointment._getStartDateWithTimezoneAdaptation()),
693
+ oAppCalEndDate = CalendarDate.fromLocalJSDate(oAppointment._getEndDateWithTimezoneAdaptation()),
680
694
  iOffset = CalendarUtils._daysBetween(oCellCalStartDate, oAppCalStartDate),
681
695
  oStartDate = new CalendarDate(oAppCalStartDate),
682
696
  oEndDate = new CalendarDate(oAppCalEndDate),
@@ -815,8 +829,8 @@ sap.ui.define([
815
829
  var oUnifiedRB = Core.getLibraryResourceBundle("sap.ui.unified"),
816
830
  sStartTime = oUnifiedRB.getText("CALENDAR_START_TIME"),
817
831
  sEndTime = oUnifiedRB.getText("CALENDAR_END_TIME"),
818
- sFormattedStartDate = this._oFormatAriaApp.format(oAppointment.getStartDate()),
819
- sFormattedEndDate = this._oFormatAriaApp.format(oAppointment.getEndDate()),
832
+ sFormattedStartDate = this._oFormatAriaApp.format(oAppointment._getStartDateWithTimezoneAdaptation()),
833
+ sFormattedEndDate = this._oFormatAriaApp.format(oAppointment._getEndDateWithTimezoneAdaptation()),
820
834
  sAppInfo = sStartTime + ": " + sFormattedStartDate + "; " + sEndTime + ": " + sFormattedEndDate;
821
835
 
822
836
  return sAppInfo + "; " + PlanningCalendarLegend.findLegendItemForItem(Core.byId(this._sLegendId), oAppointment);
@@ -28,7 +28,7 @@ sap.ui.define([
28
28
  * @extends sap.m.SinglePlanningCalendarView
29
29
  *
30
30
  * @author SAP SE
31
- * @version 1.99.1
31
+ * @version 1.102.0
32
32
  *
33
33
  * @constructor
34
34
  * @public
@@ -26,7 +26,7 @@ function (library, Log, Element) {
26
26
  * @extends sap.ui.core.Element
27
27
  *
28
28
  * @author SAP SE
29
- * @version 1.99.1
29
+ * @version 1.102.0
30
30
  *
31
31
  * @constructor
32
32
  * @public
@@ -28,7 +28,7 @@ function (library, SinglePlanningCalendarView, LocaleData, CalendarDate, Calenda
28
28
  * @extends sap.m.SinglePlanningCalendarView
29
29
  *
30
30
  * @author SAP SE
31
- * @version 1.99.1
31
+ * @version 1.102.0
32
32
  *
33
33
  * @constructor
34
34
  * @public
@@ -28,7 +28,7 @@ function (library, SinglePlanningCalendarView, CalendarDate, CalendarUtils, Loca
28
28
  * @extends sap.m.SinglePlanningCalendarView
29
29
  *
30
30
  * @author SAP SE
31
- * @version 1.99.1
31
+ * @version 1.102.0
32
32
  *
33
33
  * @constructor
34
34
  * @public