@openui5/sap.m 1.92.0 → 1.93.3

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 (399) hide show
  1. package/.reuse/dep5 +5 -0
  2. package/THIRDPARTY.txt +10 -1
  3. package/package.json +4 -4
  4. package/src/sap/m/.library +1 -1
  5. package/src/sap/m/AccButton.js +1 -1
  6. package/src/sap/m/ActionListItem.js +1 -1
  7. package/src/sap/m/ActionSelect.js +1 -1
  8. package/src/sap/m/ActionSheet.js +1 -1
  9. package/src/sap/m/App.js +1 -1
  10. package/src/sap/m/AssociativeOverflowToolbar.js +1 -1
  11. package/src/sap/m/Avatar.js +1 -1
  12. package/src/sap/m/Bar.js +14 -1
  13. package/src/sap/m/Breadcrumbs.js +1 -1
  14. package/src/sap/m/BusyDialog.js +1 -1
  15. package/src/sap/m/BusyIndicator.js +1 -1
  16. package/src/sap/m/Button.js +9 -6
  17. package/src/sap/m/Carousel.js +1 -1
  18. package/src/sap/m/CarouselLayout.js +1 -1
  19. package/src/sap/m/CheckBox.js +9 -4
  20. package/src/sap/m/CheckBoxRenderer.js +1 -1
  21. package/src/sap/m/ColorPalette.js +1 -1
  22. package/src/sap/m/ColorPalettePopover.js +1 -1
  23. package/src/sap/m/Column.js +9 -1
  24. package/src/sap/m/ColumnHeaderPopover.js +1 -1
  25. package/src/sap/m/ColumnListItem.js +8 -2
  26. package/src/sap/m/ColumnPopoverActionItem.js +1 -1
  27. package/src/sap/m/ColumnPopoverCustomItem.js +1 -1
  28. package/src/sap/m/ColumnPopoverItem.js +1 -1
  29. package/src/sap/m/ColumnPopoverSelectListItem.js +1 -1
  30. package/src/sap/m/ColumnPopoverSortItem.js +1 -1
  31. package/src/sap/m/ComboBox.js +1 -1
  32. package/src/sap/m/ComboBoxBase.js +1 -1
  33. package/src/sap/m/ComboBoxTextField.js +1 -1
  34. package/src/sap/m/CustomDynamicDateOption.js +1 -1
  35. package/src/sap/m/CustomListItem.js +1 -1
  36. package/src/sap/m/CustomTile.js +1 -1
  37. package/src/sap/m/CustomTreeItem.js +1 -1
  38. package/src/sap/m/DatePicker.js +9 -2
  39. package/src/sap/m/DateRangeSelection.js +2 -2
  40. package/src/sap/m/DateTimeField.js +69 -1
  41. package/src/sap/m/DateTimeInput.js +1 -1
  42. package/src/sap/m/DateTimePicker.js +15 -8
  43. package/src/sap/m/Dialog.js +3 -3
  44. package/src/sap/m/DisplayListItem.js +1 -1
  45. package/src/sap/m/DraftIndicator.js +1 -1
  46. package/src/sap/m/DynamicDate.js +53 -8
  47. package/src/sap/m/DynamicDateFormat.js +12 -1
  48. package/src/sap/m/DynamicDateOption.js +1 -1
  49. package/src/sap/m/DynamicDateRange.js +96 -17
  50. package/src/sap/m/DynamicDateUtil.js +20 -2
  51. package/src/sap/m/DynamicDateValueHelpUIType.js +1 -1
  52. package/src/sap/m/ExpandableText.js +4 -2
  53. package/src/sap/m/FacetFilter.js +1 -1
  54. package/src/sap/m/FacetFilterItem.js +1 -1
  55. package/src/sap/m/FacetFilterList.js +2 -2
  56. package/src/sap/m/FeedContent.js +1 -1
  57. package/src/sap/m/FeedInput.js +5 -2
  58. package/src/sap/m/FeedListItem.js +1 -1
  59. package/src/sap/m/FeedListItemAction.js +1 -1
  60. package/src/sap/m/Fiori20Adapter.js +2 -2
  61. package/src/sap/m/FlexBox.js +32 -67
  62. package/src/sap/m/FlexItemData.js +1 -1
  63. package/src/sap/m/FormattedText.js +1 -1
  64. package/src/sap/m/GenericTag.js +1 -1
  65. package/src/sap/m/GenericTile.js +1 -1
  66. package/src/sap/m/GenericTileRenderer.js +46 -8
  67. package/src/sap/m/GroupHeaderListItem.js +1 -1
  68. package/src/sap/m/GrowingEnablement.js +31 -34
  69. package/src/sap/m/GrowingList.js +1 -1
  70. package/src/sap/m/HBox.js +1 -1
  71. package/src/sap/m/HeaderContainer.js +1 -1
  72. package/src/sap/m/HeaderContainerItemNavigator.js +1 -1
  73. package/src/sap/m/IconTabBar.js +1 -2
  74. package/src/sap/m/IconTabBarSelectList.js +1 -1
  75. package/src/sap/m/IconTabFilter.js +68 -32
  76. package/src/sap/m/IconTabFilterExpandButtonBadge.js +1 -1
  77. package/src/sap/m/IconTabHeader.js +18 -7
  78. package/src/sap/m/IconTabHeaderRenderer.js +1 -0
  79. package/src/sap/m/IconTabSeparator.js +1 -1
  80. package/src/sap/m/Image.js +1 -1
  81. package/src/sap/m/ImageContent.js +1 -1
  82. package/src/sap/m/Input.js +23 -15
  83. package/src/sap/m/InputBase.js +4 -2
  84. package/src/sap/m/InputListItem.js +1 -1
  85. package/src/sap/m/Label.js +1 -1
  86. package/src/sap/m/LightBox.js +1 -1
  87. package/src/sap/m/LightBoxItem.js +1 -1
  88. package/src/sap/m/Link.js +2 -2
  89. package/src/sap/m/List.js +1 -1
  90. package/src/sap/m/ListBase.js +50 -20
  91. package/src/sap/m/ListItemBase.js +8 -7
  92. package/src/sap/m/MaskEnabler.js +1 -1
  93. package/src/sap/m/MaskInput.js +1 -1
  94. package/src/sap/m/MaskInputRule.js +1 -1
  95. package/src/sap/m/Menu.js +1 -1
  96. package/src/sap/m/MenuButton.js +2 -2
  97. package/src/sap/m/MenuItem.js +1 -1
  98. package/src/sap/m/MenuListItem.js +1 -1
  99. package/src/sap/m/MessageBox.js +30 -0
  100. package/src/sap/m/MessageItem.js +1 -16
  101. package/src/sap/m/MessageListItem.js +1 -1
  102. package/src/sap/m/MessagePage.js +1 -1
  103. package/src/sap/m/MessagePopover.js +1 -4
  104. package/src/sap/m/MessagePopoverItem.js +1 -1
  105. package/src/sap/m/MessageStrip.js +1 -1
  106. package/src/sap/m/MessageStripUtilities.js +15 -2
  107. package/src/sap/m/MessageToast.js +2 -2
  108. package/src/sap/m/MessageView.js +17 -28
  109. package/src/sap/m/MultiComboBox.js +169 -164
  110. package/src/sap/m/MultiEditField.js +1 -1
  111. package/src/sap/m/MultiInput.js +2 -3
  112. package/src/sap/m/NavContainer.js +9 -7
  113. package/src/sap/m/NewsContent.js +1 -1
  114. package/src/sap/m/NotificationList.js +1 -1
  115. package/src/sap/m/NotificationListBase.js +1 -1
  116. package/src/sap/m/NotificationListGroup.js +1 -1
  117. package/src/sap/m/NotificationListItem.js +1 -1
  118. package/src/sap/m/NumericContent.js +1 -1
  119. package/src/sap/m/ObjectAttribute.js +1 -1
  120. package/src/sap/m/ObjectHeader.js +1 -1
  121. package/src/sap/m/ObjectHeaderRenderer.js +10 -7
  122. package/src/sap/m/ObjectIdentifier.js +1 -1
  123. package/src/sap/m/ObjectListItem.js +1 -1
  124. package/src/sap/m/ObjectMarker.js +1 -1
  125. package/src/sap/m/ObjectNumber.js +1 -1
  126. package/src/sap/m/ObjectStatus.js +1 -1
  127. package/src/sap/m/OverflowToolbar.js +10 -6
  128. package/src/sap/m/OverflowToolbarAssociativePopover.js +1 -1
  129. package/src/sap/m/OverflowToolbarButton.js +1 -1
  130. package/src/sap/m/OverflowToolbarLayoutData.js +1 -1
  131. package/src/sap/m/OverflowToolbarToggleButton.js +1 -1
  132. package/src/sap/m/P13nAnyFilterItem.js +1 -1
  133. package/src/sap/m/P13nColumnsItem.js +1 -1
  134. package/src/sap/m/P13nColumnsPanel.js +1 -1
  135. package/src/sap/m/P13nConditionPanel.js +1 -1
  136. package/src/sap/m/P13nDialog.js +1 -1
  137. package/src/sap/m/P13nDimMeasureItem.js +1 -1
  138. package/src/sap/m/P13nDimMeasurePanel.js +1 -1
  139. package/src/sap/m/P13nFilterItem.js +1 -1
  140. package/src/sap/m/P13nFilterPanel.js +1 -1
  141. package/src/sap/m/P13nGroupItem.js +1 -1
  142. package/src/sap/m/P13nGroupPanel.js +1 -1
  143. package/src/sap/m/P13nItem.js +1 -1
  144. package/src/sap/m/P13nPanel.js +1 -1
  145. package/src/sap/m/P13nSelectionItem.js +1 -1
  146. package/src/sap/m/P13nSelectionPanel.js +1 -1
  147. package/src/sap/m/P13nSortItem.js +1 -1
  148. package/src/sap/m/P13nSortPanel.js +1 -1
  149. package/src/sap/m/PDFViewer.js +1 -1
  150. package/src/sap/m/Page.js +1 -1
  151. package/src/sap/m/PageAccessibleLandmarkInfo.js +1 -1
  152. package/src/sap/m/PagingButton.js +1 -1
  153. package/src/sap/m/Panel.js +1 -1
  154. package/src/sap/m/PlanningCalendar.js +167 -44
  155. package/src/sap/m/PlanningCalendarHeader.js +36 -5
  156. package/src/sap/m/PlanningCalendarLegend.js +1 -1
  157. package/src/sap/m/PlanningCalendarRow.js +1 -1
  158. package/src/sap/m/PlanningCalendarView.js +26 -2
  159. package/src/sap/m/Popover.js +11 -2
  160. package/src/sap/m/ProgressIndicator.js +1 -1
  161. package/src/sap/m/PullToRefresh.js +1 -1
  162. package/src/sap/m/QuickView.js +1 -1
  163. package/src/sap/m/QuickViewBase.js +1 -1
  164. package/src/sap/m/QuickViewCard.js +1 -1
  165. package/src/sap/m/QuickViewGroup.js +1 -1
  166. package/src/sap/m/QuickViewGroupElement.js +1 -1
  167. package/src/sap/m/QuickViewPage.js +5 -5
  168. package/src/sap/m/RadioButton.js +1 -1
  169. package/src/sap/m/RadioButtonGroup.js +1 -1
  170. package/src/sap/m/RangeSlider.js +1 -1
  171. package/src/sap/m/RatingIndicator.js +69 -29
  172. package/src/sap/m/ResponsivePopover.js +1 -1
  173. package/src/sap/m/ResponsiveScale.js +1 -1
  174. package/src/sap/m/ScrollBar.js +1 -1
  175. package/src/sap/m/ScrollContainer.js +1 -1
  176. package/src/sap/m/SearchField.js +34 -19
  177. package/src/sap/m/SearchFieldRenderer.js +13 -3
  178. package/src/sap/m/SegmentedButton.js +1 -1
  179. package/src/sap/m/SegmentedButtonItem.js +1 -1
  180. package/src/sap/m/SegmentedButtonRenderer.js +6 -0
  181. package/src/sap/m/Select.js +21 -13
  182. package/src/sap/m/SelectDialog.js +21 -49
  183. package/src/sap/m/SelectDialogBase.js +148 -0
  184. package/src/sap/m/SelectList.js +13 -3
  185. package/src/sap/m/SelectRenderer.js +19 -3
  186. package/src/sap/m/SelectionDetails.js +5 -2
  187. package/src/sap/m/SelectionDetailsFacade.js +2 -2
  188. package/src/sap/m/SelectionDetailsItem.js +1 -1
  189. package/src/sap/m/SelectionDetailsItemLine.js +1 -1
  190. package/src/sap/m/Shell.js +1 -1
  191. package/src/sap/m/SimpleFixFlex.js +1 -1
  192. package/src/sap/m/SinglePlanningCalendar.js +4 -1
  193. package/src/sap/m/SinglePlanningCalendarDayView.js +1 -1
  194. package/src/sap/m/SinglePlanningCalendarGrid.js +48 -5
  195. package/src/sap/m/SinglePlanningCalendarGridRenderer.js +27 -19
  196. package/src/sap/m/SinglePlanningCalendarMonthGrid.js +11 -1
  197. package/src/sap/m/SinglePlanningCalendarMonthView.js +1 -1
  198. package/src/sap/m/SinglePlanningCalendarView.js +1 -1
  199. package/src/sap/m/SinglePlanningCalendarWeekView.js +1 -1
  200. package/src/sap/m/SinglePlanningCalendarWorkWeekView.js +1 -1
  201. package/src/sap/m/SlideTile.js +3 -3
  202. package/src/sap/m/Slider.js +1 -1
  203. package/src/sap/m/SliderRenderer.js +2 -2
  204. package/src/sap/m/SliderTooltip.js +1 -1
  205. package/src/sap/m/SliderTooltipBase.js +1 -1
  206. package/src/sap/m/SliderTooltipContainer.js +1 -1
  207. package/src/sap/m/SplitApp.js +1 -1
  208. package/src/sap/m/SplitButton.js +1 -1
  209. package/src/sap/m/SplitButtonRenderer.js +5 -1
  210. package/src/sap/m/SplitContainer.js +1 -1
  211. package/src/sap/m/StandardDynamicDateOption.js +1 -1
  212. package/src/sap/m/StandardListItem.js +1 -1
  213. package/src/sap/m/StandardTile.js +1 -1
  214. package/src/sap/m/StandardTreeItem.js +1 -1
  215. package/src/sap/m/StepInput.js +1 -1
  216. package/src/sap/m/SuggestionItem.js +1 -1
  217. package/src/sap/m/SuggestionsPopover.js +44 -1
  218. package/src/sap/m/Switch.js +9 -1
  219. package/src/sap/m/TabContainer.js +1 -1
  220. package/src/sap/m/TabContainerItem.js +1 -1
  221. package/src/sap/m/TabStrip.js +1 -1
  222. package/src/sap/m/TabStripItem.js +1 -1
  223. package/src/sap/m/Table.js +48 -6
  224. package/src/sap/m/TablePersoController.js +1 -1
  225. package/src/sap/m/TablePersoDialog.js +1 -1
  226. package/src/sap/m/TablePersoProvider.js +1 -1
  227. package/src/sap/m/TableRenderer.js +3 -2
  228. package/src/sap/m/TableSelectDialog.js +21 -46
  229. package/src/sap/m/Text.js +2 -2
  230. package/src/sap/m/TextArea.js +1 -1
  231. package/src/sap/m/Tile.js +1 -1
  232. package/src/sap/m/TileContainer.js +2 -2
  233. package/src/sap/m/TileContent.js +1 -1
  234. package/src/sap/m/TimePicker.js +8 -3
  235. package/src/sap/m/TimePickerClock.js +1 -1
  236. package/src/sap/m/TimePickerClocks.js +3 -1
  237. package/src/sap/m/TimePickerInputs.js +3 -1
  238. package/src/sap/m/TimePickerInternals.js +1 -1
  239. package/src/sap/m/TimePickerSlider.js +1 -1
  240. package/src/sap/m/TimePickerSliders.js +1 -1
  241. package/src/sap/m/TimePickerSlidersRenderer.js +0 -1
  242. package/src/sap/m/Title.js +1 -1
  243. package/src/sap/m/TitlePropagationSupport.js +1 -1
  244. package/src/sap/m/ToggleButton.js +1 -1
  245. package/src/sap/m/Token.js +1 -1
  246. package/src/sap/m/Tokenizer.js +2 -1
  247. package/src/sap/m/TokenizerRenderer.js +1 -0
  248. package/src/sap/m/Toolbar.js +1 -1
  249. package/src/sap/m/ToolbarLayoutData.js +1 -1
  250. package/src/sap/m/ToolbarSeparator.js +1 -1
  251. package/src/sap/m/ToolbarSpacer.js +1 -1
  252. package/src/sap/m/Tree.js +1 -1
  253. package/src/sap/m/TreeItemBase.js +4 -4
  254. package/src/sap/m/UploadCollection.js +1 -1
  255. package/src/sap/m/UploadCollectionItem.js +1 -1
  256. package/src/sap/m/UploadCollectionParameter.js +1 -1
  257. package/src/sap/m/UploadCollectionToolbarPlaceholder.js +1 -1
  258. package/src/sap/m/VBox.js +1 -1
  259. package/src/sap/m/ValueStateHeader.js +1 -1
  260. package/src/sap/m/ViewSettingsCustomItem.js +1 -1
  261. package/src/sap/m/ViewSettingsCustomTab.js +1 -1
  262. package/src/sap/m/ViewSettingsDialog.js +7 -7
  263. package/src/sap/m/ViewSettingsFilterItem.js +1 -1
  264. package/src/sap/m/ViewSettingsItem.js +1 -1
  265. package/src/sap/m/VisibleItem.js +1 -1
  266. package/src/sap/m/WheelSlider.js +1 -1
  267. package/src/sap/m/WheelSliderContainer.js +1 -1
  268. package/src/sap/m/Wizard.js +1 -1
  269. package/src/sap/m/WizardProgressNavigator.js +1 -1
  270. package/src/sap/m/WizardStep.js +1 -1
  271. package/src/sap/m/changeHandler/AddTableColumn.js +76 -44
  272. package/src/sap/m/changeHandler/ChangeLinkTarget.js +18 -23
  273. package/src/sap/m/changeHandler/CombineButtons.js +280 -173
  274. package/src/sap/m/changeHandler/MoveTableColumns.js +143 -111
  275. package/src/sap/m/changeHandler/SplitMenuButton.js +141 -93
  276. package/src/sap/m/inputUtils/calculateSelectionStart.js +1 -1
  277. package/src/sap/m/inputUtils/wordStartsWithValue.js +5 -1
  278. package/src/sap/m/library.js +26 -2
  279. package/src/sap/m/messagebundle.properties +10 -1
  280. package/src/sap/m/messagebundle_ar.properties +7 -0
  281. package/src/sap/m/messagebundle_bg.properties +7 -0
  282. package/src/sap/m/messagebundle_ca.properties +7 -0
  283. package/src/sap/m/messagebundle_cs.properties +7 -0
  284. package/src/sap/m/messagebundle_cy.properties +7 -0
  285. package/src/sap/m/messagebundle_da.properties +7 -0
  286. package/src/sap/m/messagebundle_de.properties +11 -4
  287. package/src/sap/m/messagebundle_el.properties +7 -0
  288. package/src/sap/m/messagebundle_en.properties +7 -0
  289. package/src/sap/m/messagebundle_en_GB.properties +7 -0
  290. package/src/sap/m/messagebundle_en_US_sappsd.properties +6 -0
  291. package/src/sap/m/messagebundle_en_US_saptrc.properties +7 -0
  292. package/src/sap/m/messagebundle_es.properties +7 -0
  293. package/src/sap/m/messagebundle_es_MX.properties +7 -0
  294. package/src/sap/m/messagebundle_et.properties +7 -0
  295. package/src/sap/m/messagebundle_fi.properties +7 -0
  296. package/src/sap/m/messagebundle_fr.properties +7 -0
  297. package/src/sap/m/messagebundle_fr_CA.properties +7 -0
  298. package/src/sap/m/messagebundle_hi.properties +7 -0
  299. package/src/sap/m/messagebundle_hr.properties +7 -0
  300. package/src/sap/m/messagebundle_hu.properties +7 -0
  301. package/src/sap/m/messagebundle_id.properties +7 -0
  302. package/src/sap/m/messagebundle_it.properties +7 -0
  303. package/src/sap/m/messagebundle_iw.properties +7 -0
  304. package/src/sap/m/messagebundle_ja.properties +7 -0
  305. package/src/sap/m/messagebundle_kk.properties +7 -0
  306. package/src/sap/m/messagebundle_ko.properties +7 -0
  307. package/src/sap/m/messagebundle_lt.properties +7 -0
  308. package/src/sap/m/messagebundle_lv.properties +7 -0
  309. package/src/sap/m/messagebundle_ms.properties +7 -0
  310. package/src/sap/m/messagebundle_nl.properties +7 -0
  311. package/src/sap/m/messagebundle_no.properties +7 -0
  312. package/src/sap/m/messagebundle_pl.properties +7 -0
  313. package/src/sap/m/messagebundle_pt.properties +7 -0
  314. package/src/sap/m/messagebundle_pt_PT.properties +7 -0
  315. package/src/sap/m/messagebundle_ro.properties +7 -0
  316. package/src/sap/m/messagebundle_ru.properties +7 -0
  317. package/src/sap/m/messagebundle_sh.properties +7 -0
  318. package/src/sap/m/messagebundle_sk.properties +7 -0
  319. package/src/sap/m/messagebundle_sl.properties +7 -0
  320. package/src/sap/m/messagebundle_sv.properties +7 -0
  321. package/src/sap/m/messagebundle_th.properties +7 -0
  322. package/src/sap/m/messagebundle_tr.properties +7 -0
  323. package/src/sap/m/messagebundle_uk.properties +7 -0
  324. package/src/sap/m/messagebundle_vi.properties +7 -0
  325. package/src/sap/m/messagebundle_zh_CN.properties +7 -0
  326. package/src/sap/m/messagebundle_zh_TW.properties +7 -0
  327. package/src/sap/m/plugins/ColumnResizer.js +1 -1
  328. package/src/sap/m/plugins/DataStateIndicator.js +5 -3
  329. package/src/sap/m/plugins/PasteProvider.js +1 -1
  330. package/src/sap/m/plugins/PluginBase.js +1 -1
  331. package/src/sap/m/semantic/AddAction.js +1 -1
  332. package/src/sap/m/semantic/CancelAction.js +1 -1
  333. package/src/sap/m/semantic/DeleteAction.js +1 -1
  334. package/src/sap/m/semantic/DetailPage.js +1 -1
  335. package/src/sap/m/semantic/DiscussInJamAction.js +1 -1
  336. package/src/sap/m/semantic/EditAction.js +1 -1
  337. package/src/sap/m/semantic/FavoriteAction.js +1 -1
  338. package/src/sap/m/semantic/FilterAction.js +1 -1
  339. package/src/sap/m/semantic/FilterSelect.js +1 -1
  340. package/src/sap/m/semantic/FlagAction.js +1 -1
  341. package/src/sap/m/semantic/ForwardAction.js +1 -1
  342. package/src/sap/m/semantic/FullscreenPage.js +1 -1
  343. package/src/sap/m/semantic/GroupAction.js +1 -1
  344. package/src/sap/m/semantic/GroupSelect.js +1 -1
  345. package/src/sap/m/semantic/MainAction.js +1 -1
  346. package/src/sap/m/semantic/MasterPage.js +1 -1
  347. package/src/sap/m/semantic/MessagesIndicator.js +1 -1
  348. package/src/sap/m/semantic/MultiSelectAction.js +1 -1
  349. package/src/sap/m/semantic/NegativeAction.js +1 -1
  350. package/src/sap/m/semantic/OpenInAction.js +1 -1
  351. package/src/sap/m/semantic/PositiveAction.js +1 -1
  352. package/src/sap/m/semantic/PrintAction.js +1 -1
  353. package/src/sap/m/semantic/SaveAction.js +1 -1
  354. package/src/sap/m/semantic/Segment.js +1 -1
  355. package/src/sap/m/semantic/SegmentedContainer.js +1 -1
  356. package/src/sap/m/semantic/SemanticButton.js +1 -1
  357. package/src/sap/m/semantic/SemanticConfiguration.js +1 -1
  358. package/src/sap/m/semantic/SemanticControl.js +1 -1
  359. package/src/sap/m/semantic/SemanticOverflowToolbarButton.js +1 -1
  360. package/src/sap/m/semantic/SemanticOverflowToolbarToggleButton.js +1 -1
  361. package/src/sap/m/semantic/SemanticPage.js +1 -1
  362. package/src/sap/m/semantic/SemanticSelect.js +1 -1
  363. package/src/sap/m/semantic/SemanticToggleButton.js +1 -1
  364. package/src/sap/m/semantic/SendEmailAction.js +1 -1
  365. package/src/sap/m/semantic/SendMessageAction.js +1 -1
  366. package/src/sap/m/semantic/ShareInJamAction.js +1 -1
  367. package/src/sap/m/semantic/ShareMenu.js +1 -1
  368. package/src/sap/m/semantic/ShareMenuPage.js +1 -1
  369. package/src/sap/m/semantic/SortAction.js +1 -1
  370. package/src/sap/m/semantic/SortSelect.js +1 -1
  371. package/src/sap/m/themes/base/Carousel.less +37 -2
  372. package/src/sap/m/themes/base/CheckBox.less +1 -1
  373. package/src/sap/m/themes/base/Dialog.less +11 -5
  374. package/src/sap/m/themes/base/FeedInput.less +5 -6
  375. package/src/sap/m/themes/base/GenericTile.less +130 -7
  376. package/src/sap/m/themes/base/IconTabBar.less +179 -64
  377. package/src/sap/m/themes/base/IconTabBarSelectList.less +12 -2
  378. package/src/sap/m/themes/base/InputBase.less +0 -24
  379. package/src/sap/m/themes/base/Label.less +6 -0
  380. package/src/sap/m/themes/base/ListItemBase.less +4 -2
  381. package/src/sap/m/themes/base/NotificationListBase.less +1 -1
  382. package/src/sap/m/themes/base/ObjectHeader.less +2 -1
  383. package/src/sap/m/themes/base/ObjectStatus.less +9 -2
  384. package/src/sap/m/themes/base/PlanningCalendar.less +23 -7
  385. package/src/sap/m/themes/base/Popover.less +1 -1
  386. package/src/sap/m/themes/base/ProgressIndicator.less +7 -6
  387. package/src/sap/m/themes/base/RadioButton.less +3 -0
  388. package/src/sap/m/themes/base/SearchField.less +22 -15
  389. package/src/sap/m/themes/base/SegmentedButton.less +1 -1
  390. package/src/sap/m/themes/base/StandardListItem.less +5 -1
  391. package/src/sap/m/themes/base/Table.less +14 -12
  392. package/src/sap/m/themes/base/Text.less +6 -0
  393. package/src/sap/m/themes/base/TimePicker.less +5 -1
  394. package/src/sap/m/themes/base/TimePickerSliders.less +1 -5
  395. package/src/sap/m/themes/base/Toolbar.less +6 -0
  396. package/src/sap/m/themes/base/ViewSettingsDialog.less +1 -1
  397. package/src/sap/m/themes/sap_hcb/InputBase.less +25 -0
  398. package/src/sap/m/upload/UploadSet.js +1 -1
  399. package/src/sap/m/upload/UploadSetItem.js +16 -1
@@ -201,7 +201,7 @@ sap.ui.define([
201
201
  * {@link sap.m.PlanningCalendarView PlanningCalendarView}'s properties.
202
202
  *
203
203
  * @extends sap.ui.core.Control
204
- * @version 1.92.0
204
+ * @version 1.93.3
205
205
  *
206
206
  * @constructor
207
207
  * @public
@@ -709,6 +709,9 @@ sap.ui.define([
709
709
 
710
710
  this._oCalendarHeader = new CalendarHeader(sId + "-CalHead", {});
711
711
 
712
+ this._oCalendarHeader.isRelative = this.isRelative.bind(this);
713
+ this._oCalendarHeader._getRelativeInfo = this._getRelativeInfo.bind(this);
714
+
712
715
  this._oInfoToolbar = new Toolbar(sId + "-InfoToolbar", {
713
716
  height: "auto",
714
717
  design: ToolbarDesign.Transparent,
@@ -864,6 +867,8 @@ sap.ui.define([
864
867
  PlanningCalendar.prototype._createHeader = function () {
865
868
  var oHeader = new PlanningCalendarHeader(this.getId() + "-Header");
866
869
 
870
+ oHeader._getRelativeInfo = this._getRelativeInfo.bind(this);
871
+
867
872
  oHeader.getAggregation("_actionsToolbar")
868
873
  .addAriaLabelledBy(InvisibleText.getStaticId("sap.m", "PC_FUNCTIONS_TOOLBAR"));
869
874
 
@@ -959,9 +964,19 @@ sap.ui.define([
959
964
 
960
965
  case CalendarIntervalType.Day:
961
966
  case CalendarIntervalType.Week:
962
- oDateFormat = DateFormat.getDateInstance({format: "yMMMMd"});
963
- sBeginningResult = oDateFormat.format(oStartDate);
964
- sEndResult = oDateFormat.format(oEndDate);
967
+ var fnIntervalLabelFormatter = this._getView(sViewKey).getIntervalLabelFormatter();
968
+
969
+ if (this.isRelative()) {
970
+ var iBeginning = this.calcIntervalOffset(this.getStartDate());
971
+ var iEnding = this.calcIntervalOffset(this.getEndDate()) - this.calcIntervalOffset(this.getStartDate());
972
+ sBeginningResult = fnIntervalLabelFormatter ? fnIntervalLabelFormatter(iBeginning) : iBeginning;
973
+ sEndResult = fnIntervalLabelFormatter ? fnIntervalLabelFormatter(iBeginning + iEnding - 1) : iBeginning + iEnding;
974
+ } else {
975
+ oDateFormat = DateFormat.getDateInstance({ format: "yMMMMd" });
976
+ sBeginningResult = oDateFormat.format(oStartDate);
977
+ sEndResult = oDateFormat.format(oEndDate);
978
+ }
979
+
965
980
  break;
966
981
 
967
982
  case CalendarIntervalType.OneMonth:
@@ -1106,9 +1121,15 @@ sap.ui.define([
1106
1121
  * @private
1107
1122
  */
1108
1123
  PlanningCalendar.prototype._updateTodayButtonState = function() {
1109
- if (this._oTodayButton) {
1110
- this._oTodayButton.setEnabled(!this._dateMatchesVisibleRange(new Date(), this.getViewKey()));
1124
+ if (!this._oTodayButton) {
1125
+ return;
1111
1126
  }
1127
+ if (this.isRelative()) {
1128
+ this._oTodayButton.setEnabled(false);
1129
+ return;
1130
+ }
1131
+
1132
+ this._oTodayButton.setEnabled(!this._dateMatchesVisibleRange(new Date(), this.getViewKey()));
1112
1133
  };
1113
1134
 
1114
1135
  /**
@@ -1498,6 +1519,15 @@ sap.ui.define([
1498
1519
  }.bind(this));
1499
1520
  };
1500
1521
 
1522
+ PlanningCalendar.prototype.isRelative = function() {
1523
+ var oView = this._getView(this.getViewKey(), true);
1524
+ if (!oView) {
1525
+ return false;
1526
+ }
1527
+
1528
+ return oView.getRelative();
1529
+ };
1530
+
1501
1531
  PlanningCalendar.prototype.setViewKey = function(sKey){
1502
1532
  var oInterval, oOldStartDate, oIntervalMetadata,
1503
1533
  sOldViewKey = this.getViewKey(),
@@ -1521,12 +1551,13 @@ sap.ui.define([
1521
1551
  this.invalidate(); // view not exist now, maybe added later, so rerender
1522
1552
  } else {
1523
1553
  var sIntervalType = oView.getIntervalType();
1554
+ var iIntervalSize = oView.getIntervalSize();
1524
1555
  var iIntervals = this._getIntervals(oView);
1525
1556
 
1526
1557
  this._bCheckView = false; // no additional check needed
1527
1558
 
1528
1559
  this._dateNav.setUnit(sIntervalType);
1529
- this._dateNav.setStep(iIntervals);
1560
+ this._dateNav.setStep(iIntervals * iIntervalSize);
1530
1561
  this._dateNav.setCurrent(undefined);
1531
1562
  switch (sIntervalType) {
1532
1563
  case CalendarIntervalType.Hour:
@@ -1550,7 +1581,7 @@ sap.ui.define([
1550
1581
  };
1551
1582
  } else if (this._oTimesRow.getItems() !== iIntervals) {
1552
1583
  this._oTimesRow.setItems(iIntervals);
1553
- this._dateNav.setStep(iIntervals);
1584
+ this._dateNav.setStep(iIntervals * iIntervalSize);
1554
1585
  }
1555
1586
  this._insertInterval(this._oTimesRow);
1556
1587
  oAssociation = oHeader.getAggregation("_calendarPicker") ? oHeader.getAggregation("_calendarPicker") : oHeader._oPopup.getContent()[0];
@@ -1564,7 +1595,6 @@ sap.ui.define([
1564
1595
  //Date, Week and OneMonth intervals share the same object artifacts
1565
1596
  oIntervalMetadata = INTERVAL_METADATA[sIntervalType];
1566
1597
  oInterval = this[oIntervalMetadata.sInstanceName];
1567
-
1568
1598
  if (!oInterval) {
1569
1599
  oInterval = new oIntervalMetadata.oClass(this.getId() + oIntervalMetadata.sIdSuffix, {
1570
1600
  startDate: new Date(oStartDate.getTime()), // use new date object
@@ -1573,8 +1603,10 @@ sap.ui.define([
1573
1603
  legend: this.getLegend(),
1574
1604
  showWeekNumbers: this.getShowWeekNumbers()
1575
1605
  });
1576
- this._setAriaRole(oInterval);
1577
1606
 
1607
+ oInterval.isRelative = this.isRelative.bind(this);
1608
+ oInterval._getRelativeInfo = this._getRelativeInfo.bind(this);
1609
+ this._setAriaRole(oInterval);
1578
1610
  oInterval.attachEvent("select", this._handleCalendarSelect, this);
1579
1611
  oInterval.attachEvent("focus", this._handleFocus, this);
1580
1612
 
@@ -1591,7 +1623,7 @@ sap.ui.define([
1591
1623
  };
1592
1624
  } else if (oInterval.getDays() !== iIntervals) {
1593
1625
  oInterval.setDays(iIntervals);
1594
- this._dateNav.setStep(iIntervals);
1626
+ this._dateNav.setStep(iIntervals * iIntervalSize);
1595
1627
  }
1596
1628
  this._insertInterval(oInterval);
1597
1629
  this[oIntervalMetadata.sInstanceName] = oInterval;
@@ -1599,6 +1631,23 @@ sap.ui.define([
1599
1631
  oAssociation = oHeader.getAggregation("_monthPicker") ? oHeader.getAggregation("_monthPicker") : oHeader._oPopup.getContent()[0];
1600
1632
  oHeader.setAssociation("currentPicker", oAssociation);
1601
1633
  oAssociation.addDelegate(MONTH_PICKER_DELEGATE, oAssociation);
1634
+ } else if (this.isRelative()) {
1635
+ var oIndexPicker = oHeader.getAggregation("_indexPicker");
1636
+ oAssociation = oIndexPicker ? oIndexPicker : oHeader._oPopup.getContent()[0];
1637
+ if (oIndexPicker ) {
1638
+ var oView = this._getView(sKey);
1639
+ var iIndexesFromStart = Math.round(this.calcIntervalOffset(oStartDate));
1640
+ oIndexPicker.setFormatter(this._getRelativeInfo().intervalLabelFormatter);
1641
+ oIndexPicker.setPeriodSize(oInterval.getDays());
1642
+ oIndexPicker.setSelectedIndex(iIndexesFromStart);
1643
+ } else {
1644
+ var oView = this._getView(sKey);
1645
+ oAssociation.setFormatter(oView.getIntervalLabelFormatter());
1646
+ oAssociation.setPeriodSize(oInterval.getDays());
1647
+ var iIndexesFromStart = Math.round(this.calcIntervalOffset(oStartDate));
1648
+ oAssociation.setSelectedIndex(iIndexesFromStart);
1649
+ }
1650
+ oHeader.setAssociation("currentPicker", oAssociation);
1602
1651
  } else {
1603
1652
  oAssociation = oHeader.getAggregation("_calendarPicker") ? oHeader.getAggregation("_calendarPicker") : oHeader._oPopup.getContent()[0];
1604
1653
  oHeader.setAssociation("currentPicker", oAssociation);
@@ -1627,7 +1676,7 @@ sap.ui.define([
1627
1676
  };
1628
1677
  } else if (this._oMonthsRow.setMonths() !== iIntervals) {
1629
1678
  this._oMonthsRow.setMonths(iIntervals);
1630
- this._dateNav.setStep(iIntervals);
1679
+ this._dateNav.setStep(iIntervals * iIntervalSize);
1631
1680
  }
1632
1681
  this._insertInterval(this._oMonthsRow);
1633
1682
  oAssociation = oHeader.getAggregation("_yearPicker") ? oHeader.getAggregation("_yearPicker") : oHeader._oPopup.getContent()[0];
@@ -1645,6 +1694,7 @@ sap.ui.define([
1645
1694
  var oTimeline = getRowTimeline(oRow);
1646
1695
  oTimeline.setIntervalType(sIntervalType);
1647
1696
  oTimeline.setIntervals(iIntervals);
1697
+ oTimeline.setIntervalSize(iIntervalSize);
1648
1698
  oTimeline.setShowSubIntervals(oView.getShowSubIntervals());
1649
1699
  }
1650
1700
 
@@ -1686,15 +1736,16 @@ sap.ui.define([
1686
1736
  }
1687
1737
 
1688
1738
  if (oMinDate) {
1689
- oHeader.getAggregation("_calendarPicker").setMinDate(new Date(oMinDate.getTime()));
1690
- oHeader.getAggregation("_yearPicker").setMinDate(new Date(oMinDate.getTime()));
1691
- oHeader.getAggregation("_monthPicker").setMinDate(new Date(oMinDate.getTime()));
1739
+ oHeader.getAggregation("_calendarPicker") && oHeader.getAggregation("_calendarPicker").setMinDate(new Date(oMinDate.getTime()));
1740
+ oHeader.getAggregation("_yearPicker") && oHeader.getAggregation("_yearPicker").setMinDate(new Date(oMinDate.getTime()));
1741
+ oHeader.getAggregation("_monthPicker") && oHeader.getAggregation("_monthPicker").setMinDate(new Date(oMinDate.getTime()));
1692
1742
  }
1693
1743
  if (oMaxDate) {
1694
- oHeader.getAggregation("_calendarPicker").setMaxDate(new Date(oMaxDate.getTime()));
1695
- oHeader.getAggregation("_yearPicker").setMaxDate(new Date(oMaxDate.getTime()));
1696
- oHeader.getAggregation("_monthPicker").setMaxDate(new Date(oMaxDate.getTime()));
1744
+ oHeader.getAggregation("_calendarPicker") && oHeader.getAggregation("_calendarPicker").setMaxDate(new Date(oMaxDate.getTime()));
1745
+ oHeader.getAggregation("_yearPicker") && oHeader.getAggregation("_yearPicker").setMaxDate(new Date(oMaxDate.getTime()));
1746
+ oHeader.getAggregation("_monthPicker") && oHeader.getAggregation("_monthPicker").setMaxDate(new Date(oMaxDate.getTime()));
1697
1747
  }
1748
+
1698
1749
  this._updateTodayButtonState();
1699
1750
 
1700
1751
  return this;
@@ -1807,8 +1858,12 @@ sap.ui.define([
1807
1858
  endDate: CalendarUtils._createLocalDate(oRangeDates.oEndDate, true)
1808
1859
  });
1809
1860
 
1810
- oPicker.destroySelectedDates();
1811
- oPicker.addSelectedDate(oSelectedRange);
1861
+ if (this.isRelative()) {
1862
+ oPicker.setStartIndex(this.calcIntervalOffset(oRangeDates.oStartDate));
1863
+ } else {
1864
+ oPicker.destroySelectedDates();
1865
+ oPicker.addSelectedDate(oSelectedRange);
1866
+ }
1812
1867
 
1813
1868
  this._getHeader().setPickerText(this._formatPickerText());
1814
1869
  this._updateTodayButtonState();
@@ -2690,10 +2745,19 @@ sap.ui.define([
2690
2745
  * @param {jQuery.Event} oEvent the triggered event
2691
2746
  * @private
2692
2747
  */
2693
- PlanningCalendar.prototype._handleDateSelect = function(oEvent){
2694
- var oStartDate = oEvent.oSource.getStartDate(),
2748
+ PlanningCalendar.prototype._handleDateSelect = function(oEvent) {
2749
+ var oStartDate,
2695
2750
  oCurrentStartDate = this.getStartDate();
2696
2751
 
2752
+ if (this.isRelative()) {
2753
+ oStartDate = new Date(this.getMinDate().getTime());
2754
+ oStartDate.setDate(
2755
+ oStartDate.getDate() + oEvent.getSource()._oIndexPicker.getSelectedIndex() * this._getView(this.getViewKey()).getIntervalSize()
2756
+ );
2757
+ } else {
2758
+ oStartDate = oEvent.getSource().getStartDate();
2759
+ }
2760
+
2697
2761
  // Checking if the current view (custom or not) is of type Hour
2698
2762
  if (this._getView(this.getViewKey()).getIntervalType() === CalendarIntervalType.Hour) {
2699
2763
  oStartDate.setHours(oCurrentStartDate.getHours());
@@ -2855,6 +2919,7 @@ sap.ui.define([
2855
2919
  var sKey = this.getViewKey();
2856
2920
  var oView = this._getView(sKey);
2857
2921
  var sIntervalType = oView.getIntervalType();
2922
+ var iIntervalSize = oView.getIntervalSize();
2858
2923
  var iIntervals = this._getIntervals(oView);
2859
2924
  for (i = 0; i < aRows.length; i++) {
2860
2925
  oRow = aRows[i];
@@ -2870,35 +2935,35 @@ sap.ui.define([
2870
2935
  case CalendarIntervalType.Hour:
2871
2936
  if (this._oTimesRow && this._oTimesRow.getItems() != iIntervals) {
2872
2937
  this._oTimesRow.setItems(iIntervals);
2873
- this._dateNav.setStep(iIntervals);
2938
+ this._dateNav.setStep(iIntervals * iIntervalSize);
2874
2939
  }
2875
2940
  break;
2876
2941
 
2877
2942
  case CalendarIntervalType.Day:
2878
2943
  if (this._oDatesRow && this._oDatesRow.getDays() != iIntervals) {
2879
2944
  this._oDatesRow.setDays(iIntervals);
2880
- this._dateNav.setStep(iIntervals);
2945
+ this._dateNav.setStep(iIntervals * iIntervalSize);
2881
2946
  }
2882
2947
  break;
2883
2948
 
2884
2949
  case CalendarIntervalType.Month:
2885
2950
  if (this._oMonthsRow && this._oMonthsRow.getMonths() != iIntervals) {
2886
2951
  this._oMonthsRow.setMonths(iIntervals);
2887
- this._dateNav.setStep(iIntervals);
2952
+ this._dateNav.setStep(iIntervals * iIntervalSize);
2888
2953
  }
2889
2954
  break;
2890
2955
 
2891
2956
  case CalendarIntervalType.Week:
2892
2957
  if (this._oWeeksRow && this._oWeeksRow.getDays() != iIntervals) {
2893
2958
  this._oWeeksRow.setDays(iIntervals);
2894
- this._dateNav.setStep(iIntervals);
2959
+ this._dateNav.setStep(iIntervals * iIntervalSize);
2895
2960
  }
2896
2961
  break;
2897
2962
 
2898
2963
  case CalendarIntervalType.OneMonth:
2899
2964
  if (this._oOneMonthsRow && this._oOneMonthsRow.getDays() != iIntervals) {
2900
2965
  this._oOneMonthsRow.setDays(iIntervals);
2901
- this._dateNav.setStep(iIntervals);
2966
+ this._dateNav.setStep(iIntervals * iIntervalSize);
2902
2967
  if (this._iSize > 1) {
2903
2968
  //set start date to 1st of the month
2904
2969
  this._setRowsStartDate(new Date(this.getStartDate().getTime()));
@@ -3019,55 +3084,65 @@ sap.ui.define([
3019
3084
  aResultViews = aKeysForBuiltInViews.map(function (sViewKey) {
3020
3085
  switch (sViewKey) {
3021
3086
  case oViewType.Hour:
3022
- return this._oViews[oViewType.Hour] ||
3023
- (this._oViews[oViewType.Hour] = new PlanningCalendarView(this.getId() + "-HourView", {
3087
+ if (!this._oViews[oViewType.Hour]) {
3088
+ this._oViews[oViewType.Hour] = new PlanningCalendarView(this.getId() + "-HourView", {
3024
3089
  key: oViewType.Hour,
3025
3090
  intervalType: oIntervalType.Hour,
3026
3091
  description: this._oRB && this._oRB.getText("PLANNINGCALENDAR_HOURS"),
3027
3092
  intervalsS: 6,
3028
3093
  intervalsM: 6,
3029
3094
  intervalsL: 12
3030
- }));
3095
+ });
3096
+ }
3097
+ return this._oViews[oViewType.Hour];
3031
3098
  case oViewType.Day:
3032
- return this._oViews[oViewType.Day] ||
3033
- (this._oViews[oViewType.Day] = new PlanningCalendarView(this.getId() + "-DayView", {
3099
+ if (!this._oViews[oViewType.Day]) {
3100
+ this._oViews[oViewType.Day] = new PlanningCalendarView(this.getId() + "-DayView", {
3034
3101
  key: oViewType.Day,
3035
3102
  intervalType: oIntervalType.Day,
3036
3103
  description: this._oRB && this._oRB.getText("PLANNINGCALENDAR_DAYS"),
3037
3104
  intervalsS: 7,
3038
3105
  intervalsM: 7,
3039
3106
  intervalsL: 14
3040
- }));
3107
+ });
3108
+ }
3109
+ return this._oViews[oViewType.Day];
3041
3110
  case oViewType.Month:
3042
- return this._oViews[oViewType.Month] ||
3043
- (this._oViews[oViewType.Month] = new PlanningCalendarView(this.getId() + "-MonthView", {
3111
+ if (!this._oViews[oViewType.Month]) {
3112
+ this._oViews[oViewType.Month] = new PlanningCalendarView(this.getId() + "-MonthView", {
3044
3113
  key: oViewType.Month,
3045
3114
  intervalType: oIntervalType.Month,
3046
3115
  description: this._oRB && this._oRB.getText("PLANNINGCALENDAR_MONTHS"),
3047
3116
  intervalsS: 3,
3048
3117
  intervalsM: 6,
3049
3118
  intervalsL: 12
3050
- }));
3119
+ });
3120
+ }
3121
+ return this._oViews[oViewType.Month];
3051
3122
  case oViewType.Week:
3052
- return this._oViews[oViewType.Week] ||
3053
- (this._oViews[oViewType.Week] = new PlanningCalendarView(this.getId() + "-WeekView", {
3123
+ if (!this._oViews[oViewType.Week]) {
3124
+ this._oViews[oViewType.Week] = new PlanningCalendarView(this.getId() + "-WeekView", {
3054
3125
  key: oViewType.Week,
3055
3126
  intervalType: oIntervalType.Week,
3056
3127
  description: this._oRB && this._oRB.getText("PLANNINGCALENDAR_WEEK"),
3057
3128
  intervalsS: 7,
3058
3129
  intervalsM: 7,
3059
3130
  intervalsL: 7
3060
- }));
3131
+ });
3132
+ }
3133
+ return this._oViews[oViewType.Week];
3061
3134
  case oViewType.OneMonth:
3062
- return this._oViews[oViewType.OneMonth] ||
3063
- ( this._oViews[oViewType.OneMonth] = new PlanningCalendarView(this.getId() + "-OneMonthView", {
3135
+ if (!this._oViews[oViewType.OneMonth]) {
3136
+ this._oViews[oViewType.OneMonth] = new PlanningCalendarView(this.getId() + "-OneMonthView", {
3064
3137
  key: oViewType.OneMonth,
3065
3138
  intervalType: oIntervalType.OneMonth,
3066
3139
  description: this._oRB && this._oRB.getText("PLANNINGCALENDAR_ONE_MONTH"),
3067
3140
  intervalsS: 1,
3068
3141
  intervalsM: 1,
3069
3142
  intervalsL: 31
3070
- }));
3143
+ });
3144
+ }
3145
+ return this._oViews[oViewType.OneMonth];
3071
3146
  default:
3072
3147
  Log.error("Cannot get PlanningCalendar views. Invalid view key " + sViewKey);
3073
3148
  break;
@@ -3201,7 +3276,7 @@ sap.ui.define([
3201
3276
  */
3202
3277
  PlanningCalendar.prototype._updateRowTimeline = function (oRow) {
3203
3278
  var oRowTimeline = getRowTimeline(oRow),
3204
- sKey, oView, sIntervalType, iIntervals,
3279
+ sKey, oView, sIntervalType, iIntervals, iIntervalSize,
3205
3280
  bMobile1MonthView = this.getViewKey() === PlanningCalendarBuiltInView.OneMonth && this._iSize < 2,
3206
3281
  oStartDate = this.getStartDate();
3207
3282
 
@@ -3237,10 +3312,12 @@ sap.ui.define([
3237
3312
  sKey = this.getViewKey();
3238
3313
  oView = this._getView(sKey);
3239
3314
  sIntervalType = oView.getIntervalType();
3315
+ iIntervalSize = oView.getIntervalSize();
3240
3316
  iIntervals = this._getIntervals(oView);
3241
3317
 
3242
3318
  oRowTimeline.setIntervalType(sIntervalType);
3243
3319
  oRowTimeline.setIntervals(iIntervals);
3320
+ oRowTimeline.setIntervalSize(iIntervalSize);
3244
3321
  oRowTimeline.setShowSubIntervals(oView.getShowSubIntervals());
3245
3322
  }
3246
3323
 
@@ -3378,6 +3455,8 @@ sap.ui.define([
3378
3455
  ariaLabelledBy: oRowHeader.getId()
3379
3456
  });
3380
3457
 
3458
+ oRowTimeline._getRelativeInfo = this._getRelativeInfo.bind(this);
3459
+
3381
3460
  oRowTimeline.getAppointments = function() {
3382
3461
  return oRow.getAppointments();
3383
3462
  };
@@ -3516,7 +3595,10 @@ sap.ui.define([
3516
3595
  PlanningCalendarRowTimelineRenderer.renderInterval = function (oRm, oTimeline, iInterval, iWidth, aIntervalHeaders, aNonWorkingItems, iStartOffset, iNonWorkingMax, aNonWorkingSubItems, iSubStartOffset, iNonWorkingSubMax, bFirstOfType, bLastOfType) {
3517
3596
  var sIntervalType = oTimeline.getIntervalType(),
3518
3597
  sAdditionalNonWorkingClass;
3519
-
3598
+ if (oTimeline._getRelativeInfo().bIsRelative){
3599
+ var aEmptyNonWorkDay = [];
3600
+ return CalendarRowRenderer.renderInterval(oRm, oTimeline, iInterval, iWidth, aIntervalHeaders, aEmptyNonWorkDay, iStartOffset, iNonWorkingMax, aNonWorkingSubItems, iSubStartOffset, iNonWorkingSubMax, bFirstOfType, bLastOfType, sAdditionalNonWorkingClass);
3601
+ }
3520
3602
  if (sIntervalType === CalendarIntervalType.Day || sIntervalType === CalendarIntervalType.Week || sIntervalType === CalendarIntervalType.OneMonth) {
3521
3603
  var oRow = getRow(oTimeline.getParent()),
3522
3604
  oPC = oRow.getParent(),
@@ -3594,6 +3676,8 @@ sap.ui.define([
3594
3676
  }
3595
3677
  };
3596
3678
 
3679
+ PlanningCalendarRowTimeline.prototype._getRelativeInfo = function () {};
3680
+
3597
3681
  PlanningCalendarRowTimeline.prototype.onBeforeRendering = function() {
3598
3682
  CalendarRow.prototype.onBeforeRendering.call(this);
3599
3683
  this._updatePlaceholders();
@@ -4581,6 +4665,45 @@ sap.ui.define([
4581
4665
 
4582
4666
  };
4583
4667
 
4668
+ /** calculates the number of intervals after the interval starting at min date */
4669
+ PlanningCalendar.prototype.calcIntervalOffset = function(oDate) {
4670
+ var oUTCDate = Date.UTC(
4671
+ oDate.getFullYear(),
4672
+ oDate.getMonth(),
4673
+ oDate.getDate()
4674
+ );
4675
+ var oYearStart = this.getMinDate() || oDate;
4676
+ var oUTCYearStart = Date.UTC(
4677
+ oYearStart.getFullYear(),
4678
+ oYearStart.getMonth(),
4679
+ oYearStart.getDate()
4680
+ );
4681
+
4682
+ return Math.round((oUTCDate - oUTCYearStart) / 1000 / 60 / 60 / 24 / this._getView(this.getViewKey()).getIntervalSize());
4683
+ };
4684
+
4685
+ PlanningCalendar.prototype._getDateFromIndex = function(iIndex) {
4686
+ var oDate = new Date(this.getMinDate());
4687
+
4688
+ oDate.setDate(oDate.getDate() + iIndex * this._getView(this.getViewKey()).getIntervalSize());
4689
+
4690
+ return oDate;
4691
+ };
4692
+
4693
+ PlanningCalendar.prototype._getRelativeInfo = function() {
4694
+ var oRelativeInfo = {},
4695
+ oView = this._getView(this.getViewKey(), true);
4696
+
4697
+ oRelativeInfo.iIntervalSize = oView.getIntervalSize();
4698
+ oRelativeInfo.bIsRelative = oView.getRelative();
4699
+ oRelativeInfo.oMinDate = this.getMinDate();
4700
+ oRelativeInfo._getDateFromIndex = this._getDateFromIndex.bind(this);
4701
+ oRelativeInfo.intervalLabelFormatter = oView.getIntervalLabelFormatter() ? oView.getIntervalLabelFormatter() : function (x) { return x; };
4702
+ oRelativeInfo._getIndexFromDate = this.calcIntervalOffset.bind(this);
4703
+
4704
+ return oRelativeInfo;
4705
+ };
4706
+
4584
4707
  function isThereAnIntervalInstance() {
4585
4708
  return this._oTimesRow || this._oDatesRow || this._oMonthsRow || this._oWeeksRow || this._oOneMonthsRow;
4586
4709
  }
@@ -25,6 +25,7 @@ sap.ui.define([
25
25
  'sap/ui/unified/calendar/CalendarDate',
26
26
  'sap/ui/unified/calendar/CustomMonthPicker',
27
27
  'sap/ui/unified/calendar/CustomYearPicker',
28
+ 'sap/ui/unified/calendar/IndexPicker',
28
29
  'sap/ui/core/format/DateFormat',
29
30
  'sap/ui/core/IconPool',
30
31
  'sap/ui/core/InvisibleText',
@@ -46,6 +47,7 @@ function(
46
47
  CalendarDate,
47
48
  CustomMonthPicker,
48
49
  CustomYearPicker,
50
+ IndexPicker,
49
51
  DateFormat,
50
52
  IconPool,
51
53
  InvisibleText,
@@ -95,7 +97,7 @@ function(
95
97
  * @extends sap.ui.core.Control
96
98
  *
97
99
  * @author SAP SE
98
- * @version 1.92.0
100
+ * @version 1.93.3
99
101
  *
100
102
  * @constructor
101
103
  * @private
@@ -172,7 +174,15 @@ function(
172
174
  *
173
175
  * @private
174
176
  */
175
- _yearPicker : { type : "sap.ui.unified.internal.CustomYearPicker", multiple : false, visibility : "hidden" }
177
+ _yearPicker : { type : "sap.ui.unified.internal.CustomYearPicker", multiple : false, visibility : "hidden" },
178
+
179
+ /**
180
+ * Hidden, for internal use only.
181
+ * The popup which contains the index picker for navigation.
182
+ *
183
+ * @private
184
+ */
185
+ _indexPicker : { type : "sap.ui.unified.calendar.IndexPicker", multiple : false, visibility : "hidden" }
176
186
 
177
187
  },
178
188
 
@@ -308,16 +318,23 @@ function(
308
318
  this.setAggregation("_yearPicker", oYearPicker);
309
319
  this._oYearPicker = oYearPicker;
310
320
 
321
+ var oIndexPicker = new IndexPicker(sOPHId + "-IndexPicker");
322
+ oIndexPicker.attachEvent("select", this._handleIndexPickerSelect, this);
323
+ this.setAggregation("_indexPicker", oIndexPicker);
324
+ this._oIndexPicker = oIndexPicker;
325
+
311
326
  this._oPickerBtn = new Button(sNavToolbarId + "-PickerBtn", {
312
327
  text: this.getPickerText(),
313
- ariaHasPopup: coreLibrary.aria.HasPopup.Grid,
328
+ ariaHasPopup: coreLibrary.aria.HasPopup.Dialog,
314
329
  ariaLabelledBy: InvisibleText.getStaticId("sap.m", "PCH_SELECT_RANGE"),
315
330
  press: function () {
316
331
  if (this.fireEvent("_pickerButtonPress", {}, true)) {
317
332
  var oDate = this.getStartDate() || new Date(),
318
333
  sCurrentPickerId = this.getAssociation("currentPicker");
319
334
  oPicker = Element.registry.get(sCurrentPickerId);
320
- oPicker.displayDate(oDate);
335
+ if (oPicker.displayDate) {
336
+ oPicker.displayDate(oDate);
337
+ }
321
338
  this._openCalendarPickerPopup(oPicker);
322
339
  }
323
340
  }.bind(this)
@@ -528,6 +545,18 @@ function(
528
545
  //oPickerBtnDomRef && oPickerBtnDomRef.focus();
529
546
  };
530
547
 
548
+ PlanningCalendarHeader.prototype._handleIndexPickerSelect = function (oEvent) {
549
+ var iSelectedIndex = this._oIndexPicker.getSelectedIndex();
550
+ var oSelectedDate = new Date(this._oCalendar.getMinDate());
551
+ var oRelativeInfo = this._getRelativeInfo();
552
+
553
+ oSelectedDate.setDate(oSelectedDate.getDate() + iSelectedIndex * oRelativeInfo.iIntervalSize);
554
+
555
+ this.setStartDate(oSelectedDate);
556
+ this._closeCalendarPickerPopup();
557
+ this.fireDateSelect();
558
+ };
559
+
531
560
  /**
532
561
  * Handler for the change event of the view switch.
533
562
  * @private
@@ -556,6 +585,8 @@ function(
556
585
  this.setAggregation("_yearPicker", this._oPopup.removeAllContent()[0]);
557
586
  } else if (oContent.isA("sap.ui.unified.internal.CustomMonthPicker")) {
558
587
  this.setAggregation("_monthPicker", this._oPopup.removeAllContent()[0]);
588
+ } else if (oContent.isA("sap.ui.unified.calendar.IndexPicker")) {
589
+ this.setAggregation("_indexPicker", this._oPopup.removeAllContent()[0]);
559
590
  } else if (oPicker !== oContent) {
560
591
  this.setAggregation("_calendarPicker", this._oPopup.removeAllContent()[0]);
561
592
  }
@@ -571,8 +602,8 @@ function(
571
602
  var iOffsetY = this._oPickerBtn.$().height();
572
603
 
573
604
  this._oPopup.setOffsetY(this._oPopup._getCalculatedPlacement() === "Top" ? iOffsetY : -iOffsetY);
605
+ this._oPopup.getContent()[0].focus();
574
606
  }, this);
575
-
576
607
  this._oPopup.openBy(this._oPickerBtn.getDomRef());
577
608
  };
578
609
 
@@ -28,7 +28,7 @@ sap.ui.define(['sap/ui/unified/CalendarLegend', 'sap/ui/unified/CalendarAppointm
28
28
  * @extends sap.ui.unified.CalendarLegend
29
29
  *
30
30
  * @author SAP SE
31
- * @version 1.92.0
31
+ * @version 1.93.3
32
32
  *
33
33
  * @constructor
34
34
  * @public
@@ -32,7 +32,7 @@ sap.ui.define(['sap/ui/core/Element',
32
32
  * The <code>sap.m.PlanningCalendarRow</code> allows you to modify appointments at row level.
33
33
  *
34
34
  * @extends sap.ui.core.Element
35
- * @version 1.92.0
35
+ * @version 1.93.3
36
36
  *
37
37
  * @constructor
38
38
  * @public
@@ -30,7 +30,7 @@ sap.ui.define(['sap/ui/core/Element', './library', 'sap/ui/unified/library'],
30
30
  * The <code>PlanningCalendarView</code> defines the type of the intervals (hours, days, months)
31
31
  * and how many intervals are displayed.
32
32
  * @extends sap.ui.core.Element
33
- * @version 1.92.0
33
+ * @version 1.93.3
34
34
  *
35
35
  * @constructor
36
36
  * @public
@@ -57,6 +57,31 @@ sap.ui.define(['sap/ui/core/Element', './library', 'sap/ui/unified/library'],
57
57
  */
58
58
  intervalType : {type : "sap.ui.unified.CalendarIntervalType", group : "Appearance", defaultValue : CalendarIntervalType.Hour},
59
59
 
60
+ /**
61
+ * An integer that defines the period size.
62
+ *
63
+ * @experimental Since 1.93. This class is experimental and provides only limited functionality. Also the API might be changed in future.
64
+ * @since 1.93
65
+ * */
66
+ intervalSize: {type: "int", group: "Appearance", defaultValue: 1},
67
+
68
+ /**
69
+ * A function that formats the interval.
70
+ *
71
+ * @experimental Since 1.93. This class is experimental and provides only limited functionality. Also the API might be changed in future.
72
+ * @since 1.93
73
+ *
74
+ */
75
+ intervalLabelFormatter: {type: "object", group: "Appearance"},
76
+
77
+ /**
78
+ * Defines if the view will be relative.
79
+ * NOTE: Relative views, can be only used with intervalType - Day and when used they need intervalSize and intervalLabelFormatter defined.
80
+ * @experimental Since 1.93. This class is experimental and provides only limited functionality. Also the API might be changed in future.
81
+ * @since 1.93
82
+ */
83
+ relative: {type: "boolean", group: "Appearance", defaultValue: false},
84
+
60
85
  /**
61
86
  * Defines the description of the <code>PlanningCalendarView</code>.
62
87
  */
@@ -98,7 +123,6 @@ sap.ui.define(['sap/ui/core/Element', './library', 'sap/ui/unified/library'],
98
123
 
99
124
  }
100
125
  }});
101
-
102
126
  return PlanningCalendarView;
103
127
 
104
128
  });
@@ -113,7 +113,7 @@ sap.ui.define([
113
113
  * @extends sap.ui.core.Control
114
114
  * @implements sap.ui.core.PopupInterface
115
115
  * @author SAP SE
116
- * @version 1.92.0
116
+ * @version 1.93.3
117
117
  *
118
118
  * @public
119
119
  * @alias sap.m.Popover
@@ -806,7 +806,12 @@ sap.ui.define([
806
806
 
807
807
  // A theme can force the usage of compact arrow offset in all content density modes, by setting sapMPopoverForceCompactArrowOffset variable.
808
808
  // This is needed when a theme defines only a compact arrow for all modes.
809
- bForceCompactArrowOffset = Parameters.get("_sap_m_Popover_ForceCompactArrowOffset") === "true";
809
+ bForceCompactArrowOffset = Parameters.get({
810
+ name: "_sap_m_Popover_ForceCompactArrowOffset"
811
+ }) || "true"; // ensure a default value is added in case the parameter is not loaded
812
+
813
+ // cast the string value to boolean
814
+ bForceCompactArrowOffset = bForceCompactArrowOffset === "true";
810
815
 
811
816
  // Determines if the Popover will be rendered in a compact mode
812
817
  this._bSizeCompact = library._bSizeCompact || !!aCompactParents.length || this.hasStyleClass("sapUiSizeCompact");
@@ -825,6 +830,10 @@ sap.ui.define([
825
830
  this.openBy(oControl);
826
831
  };
827
832
  oPopup.attachClosed(afterClosed, this);
833
+
834
+ // the focus should not be restored to the control that previously opened the popover,
835
+ // because the focus info of the new control opening it is getting lost: BCP2170040819
836
+ this._oPreviousFocus = null;
828
837
  this.close();
829
838
  return this;
830
839
  }
@@ -59,7 +59,7 @@ sap.ui.define([
59
59
  * @extends sap.ui.core.Control
60
60
  *
61
61
  * @author SAP SE
62
- * @version 1.92.0
62
+ * @version 1.93.3
63
63
  *
64
64
  * @constructor
65
65
  * @public