@openui5/sap.m 1.103.1 → 1.106.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 (494) hide show
  1. package/.eslintrc.json +2 -3
  2. package/.reuse/dep5 +35 -15
  3. package/LICENSES/LicenseRef-tzdata-PublicDomain.txt +5 -0
  4. package/THIRDPARTY.txt +64 -21
  5. package/package.json +4 -4
  6. package/src/sap/m/.library +17 -1
  7. package/src/sap/m/AccButton.js +1 -1
  8. package/src/sap/m/ActionListItem.js +1 -1
  9. package/src/sap/m/ActionSelect.js +1 -1
  10. package/src/sap/m/ActionSheet.js +1 -1
  11. package/src/sap/m/App.js +2 -3
  12. package/src/sap/m/AssociativeOverflowToolbar.js +1 -1
  13. package/src/sap/m/Avatar.js +2 -2
  14. package/src/sap/m/BadgeEnabler.js +1 -2
  15. package/src/sap/m/Bar.js +11 -10
  16. package/src/sap/m/Breadcrumbs.js +2 -2
  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 +49 -10
  20. package/src/sap/m/ButtonRenderer.js +10 -2
  21. package/src/sap/m/Carousel.js +3 -4
  22. package/src/sap/m/CarouselLayout.js +1 -1
  23. package/src/sap/m/CarouselRenderer.js +3 -3
  24. package/src/sap/m/CheckBox.js +46 -6
  25. package/src/sap/m/CheckBoxRenderer.js +1 -0
  26. package/src/sap/m/ColorPalette.js +1 -1
  27. package/src/sap/m/ColorPalettePopover.js +1 -1
  28. package/src/sap/m/Column.js +5 -5
  29. package/src/sap/m/ColumnHeaderPopover.js +5 -7
  30. package/src/sap/m/ColumnListItem.js +1 -4
  31. package/src/sap/m/ColumnListItemRenderer.js +1 -2
  32. package/src/sap/m/ColumnPopoverActionItem.js +3 -3
  33. package/src/sap/m/ColumnPopoverCustomItem.js +3 -3
  34. package/src/sap/m/ColumnPopoverItem.js +3 -3
  35. package/src/sap/m/ColumnPopoverSelectListItem.js +3 -5
  36. package/src/sap/m/ColumnPopoverSortItem.js +3 -3
  37. package/src/sap/m/ComboBox.js +6 -5
  38. package/src/sap/m/ComboBoxBase.js +3 -7
  39. package/src/sap/m/ComboBoxBaseRenderer.js +2 -2
  40. package/src/sap/m/ComboBoxTextField.js +1 -7
  41. package/src/sap/m/ComboBoxTextFieldRenderer.js +19 -4
  42. package/src/sap/m/CustomDynamicDateOption.js +1 -1
  43. package/src/sap/m/CustomListItem.js +1 -1
  44. package/src/sap/m/CustomTile.js +1 -1
  45. package/src/sap/m/CustomTreeItem.js +3 -3
  46. package/src/sap/m/CustomTreeItemRenderer.js +2 -2
  47. package/src/sap/m/DatePicker.js +16 -26
  48. package/src/sap/m/DateRangeSelection.js +45 -38
  49. package/src/sap/m/DateTimeField.js +87 -20
  50. package/src/sap/m/DateTimeInput.js +1 -1
  51. package/src/sap/m/DateTimePicker.js +58 -32
  52. package/src/sap/m/DateTimePickerRenderer.js +1 -1
  53. package/src/sap/m/Dialog.js +44 -2
  54. package/src/sap/m/DisplayListItem.js +1 -1
  55. package/src/sap/m/DraftIndicator.js +1 -1
  56. package/src/sap/m/DynamicDate.js +1 -1
  57. package/src/sap/m/DynamicDateFormat.js +2 -5
  58. package/src/sap/m/DynamicDateOption.js +43 -16
  59. package/src/sap/m/DynamicDateRange.js +49 -7
  60. package/src/sap/m/DynamicDateRangeRenderer.js +5 -2
  61. package/src/sap/m/DynamicDateUtil.js +23 -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 +2 -2
  65. package/src/sap/m/FacetFilterItem.js +1 -1
  66. package/src/sap/m/FacetFilterList.js +4 -4
  67. package/src/sap/m/FeedContent.js +1 -1
  68. package/src/sap/m/FeedInput.js +1 -1
  69. package/src/sap/m/FeedListItem.js +1 -1
  70. package/src/sap/m/FeedListItemAction.js +1 -1
  71. package/src/sap/m/Fiori20Adapter.js +2 -2
  72. package/src/sap/m/FlexBox.js +1 -1
  73. package/src/sap/m/FlexItemData.js +1 -1
  74. package/src/sap/m/FormattedText.js +1 -1
  75. package/src/sap/m/GenericTag.js +1 -1
  76. package/src/sap/m/GenericTile.js +116 -23
  77. package/src/sap/m/GenericTileLineModeRenderer.js +4 -4
  78. package/src/sap/m/GenericTileRenderer.js +23 -10
  79. package/src/sap/m/GroupHeaderListItem.js +1 -1
  80. package/src/sap/m/GrowingEnablement.js +60 -36
  81. package/src/sap/m/GrowingList.js +1 -1
  82. package/src/sap/m/HBox.js +1 -1
  83. package/src/sap/m/HeaderContainer.js +34 -32
  84. package/src/sap/m/HeaderContainerItemNavigator.js +3 -6
  85. package/src/sap/m/IconTabBar.js +54 -22
  86. package/src/sap/m/IconTabBarSelectList.js +1 -1
  87. package/src/sap/m/IconTabFilter.js +1 -1
  88. package/src/sap/m/IconTabFilterExpandButtonBadge.js +1 -1
  89. package/src/sap/m/IconTabHeader.js +6 -19
  90. package/src/sap/m/IconTabSeparator.js +1 -1
  91. package/src/sap/m/IllustratedMessage.js +98 -25
  92. package/src/sap/m/IllustratedMessageRenderer.js +10 -6
  93. package/src/sap/m/Illustration.js +8 -1
  94. package/src/sap/m/IllustrationPool.js +1 -0
  95. package/src/sap/m/IllustrationRenderer.js +2 -1
  96. package/src/sap/m/Image.js +73 -3
  97. package/src/sap/m/ImageContent.js +1 -1
  98. package/src/sap/m/ImageRenderer.js +66 -2
  99. package/src/sap/m/Input.js +62 -7
  100. package/src/sap/m/InputBase.js +1 -1
  101. package/src/sap/m/InputBaseRenderer.js +2 -2
  102. package/src/sap/m/InputListItem.js +1 -1
  103. package/src/sap/m/InputRenderer.js +4 -0
  104. package/src/sap/m/InstanceManager.js +6 -6
  105. package/src/sap/m/Label.js +34 -4
  106. package/src/sap/m/LabelRenderer.js +7 -2
  107. package/src/sap/m/LightBox.js +2 -2
  108. package/src/sap/m/LightBoxItem.js +1 -1
  109. package/src/sap/m/Link.js +74 -10
  110. package/src/sap/m/LinkRenderer.js +26 -12
  111. package/src/sap/m/List.js +38 -1
  112. package/src/sap/m/ListBase.js +109 -44
  113. package/src/sap/m/ListBaseRenderer.js +7 -15
  114. package/src/sap/m/ListItemBase.js +40 -11
  115. package/src/sap/m/ListItemBaseRenderer.js +17 -6
  116. package/src/sap/m/ListRenderer.js +2 -2
  117. package/src/sap/m/MaskEnabler.js +52 -2
  118. package/src/sap/m/MaskInput.js +23 -1
  119. package/src/sap/m/MaskInputRule.js +1 -1
  120. package/src/sap/m/Menu.js +1 -1
  121. package/src/sap/m/MenuButton.js +1 -1
  122. package/src/sap/m/MenuItem.js +1 -1
  123. package/src/sap/m/MenuListItem.js +1 -1
  124. package/src/sap/m/MessageBox.js +1 -1
  125. package/src/sap/m/MessageItem.js +3 -4
  126. package/src/sap/m/MessageListItem.js +10 -6
  127. package/src/sap/m/MessagePage.js +1 -1
  128. package/src/sap/m/MessagePopover.js +4 -1
  129. package/src/sap/m/MessagePopoverItem.js +1 -1
  130. package/src/sap/m/MessageStrip.js +1 -1
  131. package/src/sap/m/MessageToast.js +1 -1
  132. package/src/sap/m/MessageView.js +1 -1
  133. package/src/sap/m/MultiComboBox.js +5 -16
  134. package/src/sap/m/MultiEditField.js +1 -1
  135. package/src/sap/m/MultiInput.js +1 -15
  136. package/src/sap/m/NavContainer.js +21 -19
  137. package/src/sap/m/NewsContent.js +2 -3
  138. package/src/sap/m/NotificationList.js +1 -1
  139. package/src/sap/m/NotificationListBase.js +1 -1
  140. package/src/sap/m/NotificationListGroup.js +3 -7
  141. package/src/sap/m/NotificationListGroupRenderer.js +1 -1
  142. package/src/sap/m/NotificationListItem.js +1 -1
  143. package/src/sap/m/NumericContent.js +1 -1
  144. package/src/sap/m/NumericInput.js +1 -1
  145. package/src/sap/m/ObjectAttribute.js +1 -1
  146. package/src/sap/m/ObjectHeader.js +3 -3
  147. package/src/sap/m/ObjectIdentifier.js +8 -5
  148. package/src/sap/m/ObjectListItem.js +7 -1
  149. package/src/sap/m/ObjectMarker.js +1 -1
  150. package/src/sap/m/ObjectNumber.js +2 -3
  151. package/src/sap/m/ObjectNumberRenderer.js +10 -3
  152. package/src/sap/m/ObjectStatus.js +2 -3
  153. package/src/sap/m/ObjectStatusRenderer.js +2 -2
  154. package/src/sap/m/OverflowToolbar.js +3 -8
  155. package/src/sap/m/OverflowToolbarAssociativePopover.js +1 -1
  156. package/src/sap/m/OverflowToolbarAssociativePopoverControls.js +3 -8
  157. package/src/sap/m/OverflowToolbarAssociativePopoverRenderer.js +2 -2
  158. package/src/sap/m/OverflowToolbarButton.js +2 -2
  159. package/src/sap/m/OverflowToolbarLayoutData.js +1 -1
  160. package/src/sap/m/OverflowToolbarToggleButton.js +1 -1
  161. package/src/sap/m/P13nAnyFilterItem.js +3 -3
  162. package/src/sap/m/P13nColumnsItem.js +3 -3
  163. package/src/sap/m/P13nColumnsPanel.js +3 -3
  164. package/src/sap/m/P13nConditionPanel.js +10 -3
  165. package/src/sap/m/P13nDialog.js +3 -3
  166. package/src/sap/m/P13nDimMeasureItem.js +3 -3
  167. package/src/sap/m/P13nDimMeasurePanel.js +3 -3
  168. package/src/sap/m/P13nFilterItem.js +3 -3
  169. package/src/sap/m/P13nFilterPanel.js +3 -3
  170. package/src/sap/m/P13nGroupItem.js +3 -3
  171. package/src/sap/m/P13nGroupPanel.js +3 -3
  172. package/src/sap/m/P13nItem.js +3 -3
  173. package/src/sap/m/P13nOperationsHelper.js +2 -2
  174. package/src/sap/m/P13nPanel.js +3 -3
  175. package/src/sap/m/P13nSelectionItem.js +3 -3
  176. package/src/sap/m/P13nSelectionPanel.js +3 -3
  177. package/src/sap/m/P13nSortItem.js +3 -3
  178. package/src/sap/m/P13nSortPanel.js +3 -3
  179. package/src/sap/m/PDFViewer.js +2 -2
  180. package/src/sap/m/PDFViewerRenderer.js +1 -0
  181. package/src/sap/m/Page.js +1 -3
  182. package/src/sap/m/PageAccessibleLandmarkInfo.js +1 -1
  183. package/src/sap/m/PagingButton.js +1 -1
  184. package/src/sap/m/Panel.js +1 -1
  185. package/src/sap/m/PlanningCalendar.js +4 -16
  186. package/src/sap/m/PlanningCalendarHeader.js +1 -5
  187. package/src/sap/m/PlanningCalendarLegend.js +1 -1
  188. package/src/sap/m/PlanningCalendarRow.js +1 -1
  189. package/src/sap/m/PlanningCalendarView.js +1 -1
  190. package/src/sap/m/Popover.js +11 -4
  191. package/src/sap/m/ProgressIndicator.js +1 -1
  192. package/src/sap/m/ProgressIndicatorRenderer.js +6 -3
  193. package/src/sap/m/PullToRefresh.js +1 -1
  194. package/src/sap/m/QuickView.js +3 -3
  195. package/src/sap/m/QuickViewBase.js +3 -3
  196. package/src/sap/m/QuickViewCard.js +3 -3
  197. package/src/sap/m/QuickViewGroup.js +1 -1
  198. package/src/sap/m/QuickViewGroupElement.js +3 -3
  199. package/src/sap/m/QuickViewPage.js +3 -3
  200. package/src/sap/m/RadioButton.js +47 -20
  201. package/src/sap/m/RadioButtonGroup.js +29 -26
  202. package/src/sap/m/RangeSlider.js +1 -3
  203. package/src/sap/m/RatingIndicator.js +8 -1
  204. package/src/sap/m/RatingIndicatorRenderer.js +13 -4
  205. package/src/sap/m/ResponsivePopover.js +3 -3
  206. package/src/sap/m/ResponsiveScale.js +1 -1
  207. package/src/sap/m/ScrollBar.js +1 -1
  208. package/src/sap/m/ScrollContainer.js +1 -1
  209. package/src/sap/m/SearchField.js +1 -1
  210. package/src/sap/m/SearchFieldRenderer.js +1 -0
  211. package/src/sap/m/SegmentedButton.js +1 -1
  212. package/src/sap/m/SegmentedButtonItem.js +1 -1
  213. package/src/sap/m/Select.js +8 -14
  214. package/src/sap/m/SelectDialog.js +2 -1
  215. package/src/sap/m/SelectDialogBase.js +1 -1
  216. package/src/sap/m/SelectList.js +1 -1
  217. package/src/sap/m/SelectListRenderer.js +2 -2
  218. package/src/sap/m/SelectionDetails.js +2 -2
  219. package/src/sap/m/SelectionDetailsFacade.js +2 -2
  220. package/src/sap/m/SelectionDetailsItem.js +1 -1
  221. package/src/sap/m/SelectionDetailsItemLine.js +1 -1
  222. package/src/sap/m/Shell.js +1 -1
  223. package/src/sap/m/SimpleFixFlex.js +1 -1
  224. package/src/sap/m/SinglePlanningCalendar.js +7 -9
  225. package/src/sap/m/SinglePlanningCalendarDayView.js +1 -1
  226. package/src/sap/m/SinglePlanningCalendarGrid.js +1 -7
  227. package/src/sap/m/SinglePlanningCalendarMonthGrid.js +1 -1
  228. package/src/sap/m/SinglePlanningCalendarMonthGridRenderer.js +0 -2
  229. package/src/sap/m/SinglePlanningCalendarMonthView.js +1 -1
  230. package/src/sap/m/SinglePlanningCalendarView.js +1 -1
  231. package/src/sap/m/SinglePlanningCalendarWeekView.js +12 -13
  232. package/src/sap/m/SinglePlanningCalendarWorkWeekView.js +1 -1
  233. package/src/sap/m/SlideTile.js +30 -5
  234. package/src/sap/m/Slider.js +1 -1
  235. package/src/sap/m/SliderTooltip.js +1 -3
  236. package/src/sap/m/SliderTooltipBase.js +1 -1
  237. package/src/sap/m/SliderTooltipBaseRenderer.js +2 -2
  238. package/src/sap/m/SliderTooltipContainer.js +1 -1
  239. package/src/sap/m/SliderTooltipContainerRenderer.js +2 -2
  240. package/src/sap/m/SliderTooltipRenderer.js +2 -2
  241. package/src/sap/m/SplitApp.js +1 -1
  242. package/src/sap/m/SplitButton.js +1 -3
  243. package/src/sap/m/SplitContainer.js +3 -7
  244. package/src/sap/m/StandardDynamicDateOption.js +9 -15
  245. package/src/sap/m/StandardListItem.js +1 -1
  246. package/src/sap/m/StandardListItemRenderer.js +2 -2
  247. package/src/sap/m/StandardTile.js +1 -1
  248. package/src/sap/m/StandardTreeItem.js +1 -1
  249. package/src/sap/m/StepInput.js +1 -1
  250. package/src/sap/m/SuggestionItem.js +1 -1
  251. package/src/sap/m/SuggestionsPopover.js +4 -2
  252. package/src/sap/m/Switch.js +1 -1
  253. package/src/sap/m/TabContainer.js +1 -1
  254. package/src/sap/m/TabContainerItem.js +1 -1
  255. package/src/sap/m/TabStrip.js +1 -1
  256. package/src/sap/m/TabStripItem.js +1 -1
  257. package/src/sap/m/Table.js +11 -9
  258. package/src/sap/m/TablePersoController.js +1 -1
  259. package/src/sap/m/TablePersoDialog.js +6 -15
  260. package/src/sap/m/TablePersoProvider.js +1 -1
  261. package/src/sap/m/TableRenderer.js +2 -9
  262. package/src/sap/m/TableSelectDialog.js +1 -1
  263. package/src/sap/m/Text.js +1 -1
  264. package/src/sap/m/TextArea.js +1 -1
  265. package/src/sap/m/TextAreaRenderer.js +1 -2
  266. package/src/sap/m/Tile.js +1 -1
  267. package/src/sap/m/TileContainer.js +1 -1
  268. package/src/sap/m/TileContent.js +8 -9
  269. package/src/sap/m/TileContentRenderer.js +3 -3
  270. package/src/sap/m/TimePicker.js +45 -8
  271. package/src/sap/m/TimePickerClock.js +2 -3
  272. package/src/sap/m/TimePickerClocks.js +5 -3
  273. package/src/sap/m/TimePickerClocksRenderer.js +4 -2
  274. package/src/sap/m/TimePickerInputs.js +1 -1
  275. package/src/sap/m/TimePickerInputsRenderer.js +1 -1
  276. package/src/sap/m/TimePickerInternals.js +1 -1
  277. package/src/sap/m/TimePickerSlider.js +1 -1
  278. package/src/sap/m/TimePickerSliders.js +3 -5
  279. package/src/sap/m/Title.js +1 -1
  280. package/src/sap/m/TitlePropagationSupport.js +1 -1
  281. package/src/sap/m/ToggleButton.js +2 -2
  282. package/src/sap/m/Token.js +1 -3
  283. package/src/sap/m/Tokenizer.js +1 -1
  284. package/src/sap/m/Toolbar.js +1 -1
  285. package/src/sap/m/ToolbarLayoutData.js +1 -1
  286. package/src/sap/m/ToolbarSeparator.js +1 -1
  287. package/src/sap/m/ToolbarSpacer.js +1 -1
  288. package/src/sap/m/Tree.js +8 -1
  289. package/src/sap/m/TreeItemBase.js +1 -1
  290. package/src/sap/m/TreeRenderer.js +0 -10
  291. package/src/sap/m/UploadCollection.js +2 -2
  292. package/src/sap/m/UploadCollectionItem.js +1 -1
  293. package/src/sap/m/UploadCollectionParameter.js +1 -1
  294. package/src/sap/m/UploadCollectionToolbarPlaceholder.js +1 -1
  295. package/src/sap/m/VBox.js +1 -1
  296. package/src/sap/m/ValueStateHeader.js +1 -1
  297. package/src/sap/m/VariantItem.js +160 -0
  298. package/src/sap/m/VariantManagement.js +717 -571
  299. package/src/sap/m/ViewSettingsCustomItem.js +1 -1
  300. package/src/sap/m/ViewSettingsCustomTab.js +1 -1
  301. package/src/sap/m/ViewSettingsDialog.js +1 -1
  302. package/src/sap/m/ViewSettingsFilterItem.js +1 -1
  303. package/src/sap/m/ViewSettingsItem.js +1 -1
  304. package/src/sap/m/VisibleItem.js +1 -1
  305. package/src/sap/m/WheelSlider.js +1 -1
  306. package/src/sap/m/WheelSliderContainer.js +1 -1
  307. package/src/sap/m/Wizard.js +10 -3
  308. package/src/sap/m/WizardProgressNavigator.js +1 -1
  309. package/src/sap/m/WizardStep.js +3 -1
  310. package/src/sap/m/_thirdparty/purify.js +1622 -0
  311. package/src/sap/m/changeHandler/AddTableColumn.js +12 -13
  312. package/src/sap/m/changeHandler/ChangeLinkTarget.js +2 -3
  313. package/src/sap/m/changeHandler/CombineButtons.js +19 -22
  314. package/src/sap/m/changeHandler/MoveTableColumns.js +6 -6
  315. package/src/sap/m/changeHandler/SelectIconTabBarFilter.js +5 -5
  316. package/src/sap/m/changeHandler/SplitMenuButton.js +7 -6
  317. package/src/sap/m/delegate/DateNavigation.js +0 -4
  318. package/src/sap/m/designtime/Link.designtime.js +19 -11
  319. package/src/sap/m/designtime/VariantManagement.designtime.js +36 -26
  320. package/src/sap/m/flexibility/EngineFlex.js +48 -0
  321. package/src/sap/m/inputUtils/selectionRange.js +1 -2
  322. package/src/sap/m/library.js +60 -7
  323. package/src/sap/m/messagebundle.properties +57 -6
  324. package/src/sap/m/messagebundle_ar.properties +39 -9
  325. package/src/sap/m/messagebundle_bg.properties +33 -3
  326. package/src/sap/m/messagebundle_ca.properties +32 -2
  327. package/src/sap/m/messagebundle_cs.properties +32 -2
  328. package/src/sap/m/messagebundle_cy.properties +34 -4
  329. package/src/sap/m/messagebundle_da.properties +32 -2
  330. package/src/sap/m/messagebundle_de.properties +32 -2
  331. package/src/sap/m/messagebundle_el.properties +35 -5
  332. package/src/sap/m/messagebundle_en.properties +34 -4
  333. package/src/sap/m/messagebundle_en_GB.properties +34 -4
  334. package/src/sap/m/messagebundle_en_US_sappsd.properties +33 -3
  335. package/src/sap/m/messagebundle_en_US_saprigi.properties +31 -3
  336. package/src/sap/m/messagebundle_en_US_saptrc.properties +33 -3
  337. package/src/sap/m/messagebundle_es.properties +33 -3
  338. package/src/sap/m/messagebundle_es_MX.properties +32 -2
  339. package/src/sap/m/messagebundle_et.properties +32 -2
  340. package/src/sap/m/messagebundle_fi.properties +36 -6
  341. package/src/sap/m/messagebundle_fr.properties +33 -3
  342. package/src/sap/m/messagebundle_fr_CA.properties +34 -4
  343. package/src/sap/m/messagebundle_hi.properties +34 -4
  344. package/src/sap/m/messagebundle_hr.properties +36 -6
  345. package/src/sap/m/messagebundle_hu.properties +34 -4
  346. package/src/sap/m/messagebundle_id.properties +34 -4
  347. package/src/sap/m/messagebundle_it.properties +33 -3
  348. package/src/sap/m/messagebundle_iw.properties +34 -4
  349. package/src/sap/m/messagebundle_ja.properties +33 -3
  350. package/src/sap/m/messagebundle_kk.properties +32 -2
  351. package/src/sap/m/messagebundle_ko.properties +40 -10
  352. package/src/sap/m/messagebundle_lt.properties +32 -2
  353. package/src/sap/m/messagebundle_lv.properties +32 -2
  354. package/src/sap/m/messagebundle_ms.properties +33 -3
  355. package/src/sap/m/messagebundle_nl.properties +46 -16
  356. package/src/sap/m/messagebundle_no.properties +34 -4
  357. package/src/sap/m/messagebundle_pl.properties +33 -3
  358. package/src/sap/m/messagebundle_pt.properties +37 -7
  359. package/src/sap/m/messagebundle_pt_PT.properties +32 -2
  360. package/src/sap/m/messagebundle_ro.properties +33 -3
  361. package/src/sap/m/messagebundle_ru.properties +33 -3
  362. package/src/sap/m/messagebundle_sh.properties +33 -3
  363. package/src/sap/m/messagebundle_sk.properties +32 -2
  364. package/src/sap/m/messagebundle_sl.properties +33 -3
  365. package/src/sap/m/messagebundle_sv.properties +32 -2
  366. package/src/sap/m/messagebundle_th.properties +65 -35
  367. package/src/sap/m/messagebundle_tr.properties +36 -6
  368. package/src/sap/m/messagebundle_uk.properties +33 -3
  369. package/src/sap/m/messagebundle_vi.properties +33 -3
  370. package/src/sap/m/messagebundle_zh_CN.properties +33 -3
  371. package/src/sap/m/messagebundle_zh_TW.properties +32 -2
  372. package/src/sap/m/p13n/AbstractContainer.js +7 -7
  373. package/src/sap/m/p13n/AbstractContainerItem.js +4 -4
  374. package/src/sap/m/p13n/BasePanel.js +24 -13
  375. package/src/sap/m/p13n/Container.js +3 -3
  376. package/src/sap/m/p13n/Engine.js +1254 -0
  377. package/src/sap/m/p13n/FlexUtil.js +161 -0
  378. package/src/sap/m/p13n/GroupController.js +145 -0
  379. package/src/sap/m/p13n/GroupPanel.js +12 -5
  380. package/src/sap/m/p13n/MetadataHelper.js +35 -0
  381. package/src/sap/m/p13n/PersistenceProvider.js +160 -0
  382. package/src/sap/m/p13n/Popup.js +49 -12
  383. package/src/sap/m/p13n/QueryPanel.js +3 -3
  384. package/src/sap/m/p13n/SelectionController.js +548 -0
  385. package/src/sap/m/p13n/SelectionPanel.js +23 -5
  386. package/src/sap/m/p13n/SortController.js +153 -0
  387. package/src/sap/m/p13n/SortPanel.js +15 -5
  388. package/src/sap/m/p13n/enum/PersistenceMode.js +43 -0
  389. package/src/sap/m/p13n/handler/xConfigHandler.js +166 -0
  390. package/src/sap/m/p13n/modification/FlexModificationHandler.js +90 -0
  391. package/src/sap/m/p13n/modification/LocalStorageModificationHandler.js +75 -0
  392. package/src/sap/m/p13n/modification/ModificationHandler.js +143 -0
  393. package/src/sap/m/p13n/modules/AdaptationProvider.js +67 -0
  394. package/src/sap/m/p13n/modules/DefaultProviderRegistry.js +147 -0
  395. package/src/sap/m/p13n/modules/StateHandlerRegistry.js +101 -0
  396. package/src/sap/m/p13n/modules/UIManager.js +230 -0
  397. package/src/sap/m/p13n/modules/xConfigAPI.js +288 -0
  398. package/src/sap/m/plugins/CellSelector.js +741 -0
  399. package/src/sap/m/plugins/ColumnResizer.js +15 -1
  400. package/src/sap/m/plugins/DataStateIndicator.js +2 -2
  401. package/src/sap/m/plugins/PasteProvider.js +1 -1
  402. package/src/sap/m/plugins/PluginBase.js +4 -3
  403. package/src/sap/m/rules/CheckBox.support.js +1 -1
  404. package/src/sap/m/rules/Image.support.js +1 -1
  405. package/src/sap/m/rules/Link.support.js +1 -1
  406. package/src/sap/m/rules/MessagePage.support.js +1 -1
  407. package/src/sap/m/rules/ObjectHeader.support.js +6 -6
  408. package/src/sap/m/rules/ObjectListItem.support.js +1 -1
  409. package/src/sap/m/rules/ObjectMarker.support.js +1 -1
  410. package/src/sap/m/rules/ObjectStatus.support.js +1 -1
  411. package/src/sap/m/rules/Panel.support.js +1 -1
  412. package/src/sap/m/rules/Select.support.js +1 -1
  413. package/src/sap/m/rules/Table.support.js +3 -3
  414. package/src/sap/m/semantic/AddAction.js +1 -1
  415. package/src/sap/m/semantic/CancelAction.js +1 -1
  416. package/src/sap/m/semantic/DeleteAction.js +1 -1
  417. package/src/sap/m/semantic/DetailPage.js +1 -1
  418. package/src/sap/m/semantic/DiscussInJamAction.js +1 -1
  419. package/src/sap/m/semantic/EditAction.js +1 -1
  420. package/src/sap/m/semantic/FavoriteAction.js +1 -1
  421. package/src/sap/m/semantic/FilterAction.js +1 -1
  422. package/src/sap/m/semantic/FilterSelect.js +1 -1
  423. package/src/sap/m/semantic/FlagAction.js +1 -1
  424. package/src/sap/m/semantic/ForwardAction.js +1 -1
  425. package/src/sap/m/semantic/FullscreenPage.js +1 -1
  426. package/src/sap/m/semantic/GroupAction.js +1 -1
  427. package/src/sap/m/semantic/GroupSelect.js +1 -1
  428. package/src/sap/m/semantic/MainAction.js +1 -1
  429. package/src/sap/m/semantic/MasterPage.js +1 -1
  430. package/src/sap/m/semantic/MessagesIndicator.js +1 -1
  431. package/src/sap/m/semantic/MultiSelectAction.js +1 -1
  432. package/src/sap/m/semantic/NegativeAction.js +1 -1
  433. package/src/sap/m/semantic/OpenInAction.js +1 -1
  434. package/src/sap/m/semantic/PositiveAction.js +1 -1
  435. package/src/sap/m/semantic/PrintAction.js +1 -1
  436. package/src/sap/m/semantic/SaveAction.js +1 -1
  437. package/src/sap/m/semantic/Segment.js +1 -1
  438. package/src/sap/m/semantic/SegmentedContainer.js +1 -1
  439. package/src/sap/m/semantic/SemanticButton.js +1 -1
  440. package/src/sap/m/semantic/SemanticConfiguration.js +3 -4
  441. package/src/sap/m/semantic/SemanticControl.js +1 -1
  442. package/src/sap/m/semantic/SemanticOverflowToolbarButton.js +1 -1
  443. package/src/sap/m/semantic/SemanticOverflowToolbarToggleButton.js +1 -1
  444. package/src/sap/m/semantic/SemanticPage.js +1 -1
  445. package/src/sap/m/semantic/SemanticSelect.js +1 -1
  446. package/src/sap/m/semantic/SemanticToggleButton.js +1 -3
  447. package/src/sap/m/semantic/SendEmailAction.js +1 -1
  448. package/src/sap/m/semantic/SendMessageAction.js +1 -1
  449. package/src/sap/m/semantic/ShareInJamAction.js +1 -1
  450. package/src/sap/m/semantic/ShareMenu.js +1 -1
  451. package/src/sap/m/semantic/ShareMenuPage.js +1 -1
  452. package/src/sap/m/semantic/SortAction.js +1 -1
  453. package/src/sap/m/semantic/SortSelect.js +1 -1
  454. package/src/sap/m/table/Util.js +30 -11
  455. package/src/sap/m/table/columnmenu/ActionItem.js +1 -1
  456. package/src/sap/m/table/columnmenu/Entry.js +1 -1
  457. package/src/sap/m/table/columnmenu/Item.js +1 -1
  458. package/src/sap/m/table/columnmenu/ItemBase.js +1 -1
  459. package/src/sap/m/table/columnmenu/Menu.js +50 -13
  460. package/src/sap/m/table/columnmenu/QuickAction.js +16 -8
  461. package/src/sap/m/table/columnmenu/QuickActionBase.js +18 -3
  462. package/src/sap/m/table/columnmenu/QuickActionItem.js +5 -6
  463. package/src/sap/m/table/columnmenu/QuickGroup.js +29 -5
  464. package/src/sap/m/table/columnmenu/QuickGroupItem.js +13 -1
  465. package/src/sap/m/table/columnmenu/QuickSort.js +1 -3
  466. package/src/sap/m/table/columnmenu/QuickSortItem.js +8 -7
  467. package/src/sap/m/table/columnmenu/QuickTotal.js +29 -5
  468. package/src/sap/m/table/columnmenu/QuickTotalItem.js +13 -1
  469. package/src/sap/m/themes/base/Breadcrumbs.less +6 -0
  470. package/src/sap/m/themes/base/Button.less +0 -1
  471. package/src/sap/m/themes/base/Carousel.less +8 -8
  472. package/src/sap/m/themes/base/CellSelector.less +9 -0
  473. package/src/sap/m/themes/base/CheckBox.less +1 -0
  474. package/src/sap/m/themes/base/Dialog.less +1 -0
  475. package/src/sap/m/themes/base/DisplayListItem.less +3 -3
  476. package/src/sap/m/themes/base/DynamicDateRange.less +4 -0
  477. package/src/sap/m/themes/base/FeedContent.less +13 -5
  478. package/src/sap/m/themes/base/GenericTile.less +56 -9
  479. package/src/sap/m/themes/base/IllustratedMessage.less +7 -0
  480. package/src/sap/m/themes/base/NewsContent.less +6 -0
  481. package/src/sap/m/themes/base/NumericContent.less +1 -1
  482. package/src/sap/m/themes/base/ObjectStatus.less +2 -1
  483. package/src/sap/m/themes/base/OverflowToolbarAssociativePopover.less +5 -1
  484. package/src/sap/m/themes/base/SelectList.less +0 -5
  485. package/src/sap/m/themes/base/SinglePlanningCalendarGrid.less +7 -0
  486. package/src/sap/m/themes/base/SlideTile.less +35 -4
  487. package/src/sap/m/themes/base/Table.less +11 -2
  488. package/src/sap/m/themes/base/TileContent.less +17 -0
  489. package/src/sap/m/themes/base/library.source.less +1 -0
  490. package/src/sap/m/upload/UploadSet.js +300 -23
  491. package/src/sap/m/upload/UploadSetItem.js +18 -7
  492. package/src/sap/m/upload/UploadSetRenderer.js +8 -16
  493. package/src/sap/m/upload/UploadSetToolbarPlaceholder.js +1 -1
  494. package/src/sap/m/upload/Uploader.js +1 -2
@@ -10,7 +10,6 @@ sap.ui.define([
10
10
  './InputBase',
11
11
  './DatePicker',
12
12
  'sap/ui/model/type/Date',
13
- 'sap/ui/unified/DateRange',
14
13
  './library',
15
14
  'sap/ui/core/library',
16
15
  'sap/ui/core/Control',
@@ -25,15 +24,14 @@ sap.ui.define([
25
24
  './SegmentedButtonItem',
26
25
  './ResponsivePopover',
27
26
  './Button',
28
- "sap/ui/events/KeyCodes",
29
27
  "sap/ui/core/IconPool",
30
- "sap/ui/qunit/utils/waitForThemeApplied"
28
+ "sap/ui/qunit/utils/waitForThemeApplied",
29
+ "sap/ui/dom/jquery/cursorPos" // provides jQuery.fn.cursorPos
31
30
  ], function(
32
31
  jQuery,
33
32
  InputBase,
34
33
  DatePicker,
35
34
  Date1,
36
- DateRange,
37
35
  library,
38
36
  coreLibrary,
39
37
  Control,
@@ -48,7 +46,6 @@ sap.ui.define([
48
46
  SegmentedButtonItem,
49
47
  ResponsivePopover,
50
48
  Button,
51
- KeyCodes,
52
49
  IconPool,
53
50
  waitForThemeApplied
54
51
  ) {
@@ -58,8 +55,7 @@ sap.ui.define([
58
55
  var PlacementType = library.PlacementType,
59
56
  ButtonType = library.ButtonType,
60
57
  // From Device.media.RANGESETS.SAP_STANDARD - "Phone": For screens smaller than 600 pixels.
61
- STANDART_PHONE_RANGESET = "Phone",
62
- CalendarType = coreLibrary.CalendarType;
58
+ STANDART_PHONE_RANGESET = "Phone";
63
59
 
64
60
  /**
65
61
  * Constructor for a new <code>DateTimePicker</code>.
@@ -145,7 +141,7 @@ sap.ui.define([
145
141
  * mobile devices, it opens in full screen.
146
142
  *
147
143
  * @extends sap.m.DatePicker
148
- * @version 1.103.1
144
+ * @version 1.106.0
149
145
  *
150
146
  * @constructor
151
147
  * @public
@@ -188,9 +184,7 @@ sap.ui.define([
188
184
  /**
189
185
  * The IANA timezone ID, e.g <code>"Europe/Berlin"</code>. Date and time are displayed in this timezone.
190
186
  * The <code>value</code> property string is treated as if it is formatted in this timezone.
191
- * However, the <code>dateValue</code> property is a JS Date object, which is the same point in time
192
- * as the <code>value</code>, but in the local timezone. Thus, it is adjusted when the
193
- * <code>timezone</code> changes.
187
+ * The <code>dateValue</code> property should not be used as this could lead to an unpredictable results. Use <code>getValue()</code> instead.
194
188
  * @since 1.99
195
189
  */
196
190
  timezone: { type: "string", group: "Data" }
@@ -313,16 +307,27 @@ sap.ui.define([
313
307
  if (Device.system.phone || jQuery('html').hasClass("sapUiMedia-Std-Phone") || this.getForcePhoneView()) {
314
308
  oSwitcher.setVisible(true);
315
309
  oSwitcher.setSelectedKey("Cal");
316
- this.getCalendar().addDelegate({
317
- onAfterRendering: function() {
318
- this._switchVisibility(oSwitcher.getSelectedKey());
319
- }.bind(this)
320
- });
310
+ this.getCalendar().attachSelect(function () {
311
+ this._addCalendarDelegate();
312
+ }.bind(this));
313
+ this._addCalendarDelegate();
321
314
  } else {
322
315
  oSwitcher.setVisible(false);
323
316
  }
324
317
  },
325
318
 
319
+ _addCalendarDelegate: function () {
320
+ var oSwitcher = this.getAggregation("_switcher"),
321
+ oOnAfterRenderingDelegate = {
322
+ onAfterRendering: function() {
323
+ this._switchVisibility(oSwitcher.getSelectedKey());
324
+ this.getCalendar().removeDelegate(oOnAfterRenderingDelegate);
325
+ }.bind(this)
326
+ };
327
+
328
+ this.getCalendar().addDelegate(oOnAfterRenderingDelegate);
329
+ },
330
+
326
331
  _handleSelect: function(oEvent) {
327
332
 
328
333
  var sKey = oEvent.getParameter("key");
@@ -377,29 +382,34 @@ sap.ui.define([
377
382
  this._bOnlyCalendar = false;
378
383
  };
379
384
 
380
- DateTimePicker.prototype.setValue = function(sValue) {
381
- var sFallbackValue;
382
-
383
- DatePicker.prototype.setValue.apply(this, arguments);
384
-
385
+ DateTimePicker.prototype._formatValueAndUpdateOutput = function(oDate, sValue) {
385
386
  delete this._prefferedValue;
386
387
 
387
- if (!this.getDateValue()) {
388
- sFallbackValue = this._fallbackParse(sValue);
388
+ if (!this.getDomRef()) {
389
+ return;
390
+ }
389
391
 
392
+ // convert to output
393
+ var sOutputValue = oDate ? this._formatValue(oDate) : sValue;
394
+ if (!oDate) {
395
+ var sFallbackValue = this._fallbackParse(sValue);
390
396
  if (typeof sFallbackValue === "string") {
391
397
  this._bValid = true;
392
398
  this._prefferedValue = sFallbackValue;
393
-
394
- // there is a re-render comming, but this updates the dom immediately to avoid flickering
395
- if (this.getDomRef() && this._$input.val() !== sFallbackValue) {
396
- this._$input.val(sFallbackValue);
397
- this._curpos = this._$input.cursorPos();
398
- }
399
+ sOutputValue = sFallbackValue;
399
400
  }
400
401
  }
401
402
 
402
- return this;
403
+ if (this._bPreferUserInteraction) {
404
+ // Handle the value concurrency before setting the value property of the control,
405
+ // in order to distinguish whether the user only focused the input field or typed in it
406
+ this.handleInputValueConcurrency(sOutputValue);
407
+ } else if (this._$input.val() !== sOutputValue) {
408
+ // update the DOM value when necessary
409
+ // otherwise cursor can go to the end of text unnecessarily
410
+ this._$input.val(sOutputValue);
411
+ this._curpos = this._$input.cursorPos();
412
+ }
403
413
  };
404
414
 
405
415
  DateTimePicker.prototype.setTimezone = function(sTimezone) {
@@ -445,6 +455,8 @@ sap.ui.define([
445
455
  };
446
456
 
447
457
  DateTimePicker.prototype.onAfterRendering = function() {
458
+ DatePicker.prototype.onAfterRendering.apply(this, arguments);
459
+
448
460
  if (this._getShowTimezone()) {
449
461
  waitForThemeApplied().then(function() {
450
462
  var oDummyContentDomRef = this.$().find(".sapMDummyContent"),
@@ -650,7 +662,7 @@ sap.ui.define([
650
662
  if (oFormatOptions.calendarType === undefined) {
651
663
  oFormatOptions.calendarType = bDisplayFormat
652
664
  ? this.getDisplayFormatType()
653
- : CalendarType.Gregorian;
665
+ : sap.ui.getCore().getConfiguration().getCalendarType();
654
666
  }
655
667
 
656
668
  if (oFormatOptions.strictParsing === undefined) {
@@ -808,7 +820,10 @@ sap.ui.define([
808
820
 
809
821
  DateTimePicker.prototype._getPickerParser = function() {
810
822
  if (!this._clocksParser) {
811
- this._clocksParser = DateFormat.getDateTimeWithTimezoneInstance({ showTimezone: false });
823
+ this._clocksParser = DateFormat.getDateTimeWithTimezoneInstance({
824
+ showTimezone: false,
825
+ calendarType: this.getDisplayFormatType()
826
+ });
812
827
  }
813
828
 
814
829
  return this._clocksParser;
@@ -1014,6 +1029,17 @@ sap.ui.define([
1014
1029
  return oDate;
1015
1030
  };
1016
1031
 
1032
+ /**
1033
+ * This method should not be used because it could produce unpredictable results. Use <code>getValue()</code> instead.
1034
+ *
1035
+ * @name sap.m.DateTimePicker#getDateValue
1036
+ * @function
1037
+ * @public
1038
+ * @returns {object}
1039
+ * @since 1.102
1040
+ * @ui5-metamodel This method also will be described in the UI5 (legacy) designtime metamodel
1041
+ */
1042
+
1017
1043
  DateTimePicker.prototype.getLocaleId = function(){
1018
1044
 
1019
1045
  return Core.getConfiguration().getFormatSettings().getFormatLocale().toString();
@@ -39,7 +39,7 @@ sap.ui.define(['sap/ui/core/Renderer', './DatePickerRenderer', './InputBaseRende
39
39
  };
40
40
 
41
41
  DateTimePickerRenderer.writeAdditionalContent = function(oRm, oControl) {
42
- var sTimezone = oControl._getTranslatedTimezone(true);
42
+ var sTimezone = oControl._getTranslatedTimezone(true) || oControl._getTimezone(true);
43
43
 
44
44
  if (!oControl._getShowTimezone()) {
45
45
  return;
@@ -70,6 +70,9 @@ function(
70
70
  // shortcut for sap.ui.core.OpenState
71
71
  var OpenState = coreLibrary.OpenState;
72
72
 
73
+ // shortcut for sap.m.ButtonType
74
+ var ButtonType = library.ButtonType;
75
+
73
76
  // shortcut for sap.m.DialogType
74
77
  var DialogType = library.DialogType;
75
78
 
@@ -175,7 +178,7 @@ function(
175
178
  *
176
179
  * @implements sap.ui.core.PopupInterface
177
180
  * @author SAP SE
178
- * @version 1.103.1
181
+ * @version 1.106.0
179
182
  *
180
183
  * @constructor
181
184
  * @public
@@ -638,6 +641,7 @@ function(
638
641
  /**
639
642
  * Open the dialog.
640
643
  *
644
+ * @return {this} <code>this</code> to allow method chaining
641
645
  * @public
642
646
  * @ui5-metamodel This method also will be described in the UI5 (legacy) designtime metamodel
643
647
  */
@@ -687,6 +691,7 @@ function(
687
691
  /**
688
692
  * Close the dialog.
689
693
  *
694
+ * @return {this} <code>this</code> to allow method chaining
690
695
  * @public
691
696
  * @ui5-metamodel This method also will be described in the UI5 (legacy) designtime metamodel
692
697
  */
@@ -927,9 +932,41 @@ function(
927
932
  this._isSpaceOrEnterPressed = true;
928
933
  }
929
934
 
935
+ var iKeyCode = oEvent.which || oEvent.keyCode;
936
+
937
+ if ((oEvent.ctrlKey || oEvent.metaKey) && iKeyCode === KeyCodes.ENTER) {
938
+
939
+ var oPositiveButton = this._findFirstPositiveButton();
940
+
941
+ if (oPositiveButton) {
942
+
943
+ oPositiveButton.firePress();
944
+ oEvent.stopPropagation();
945
+ oEvent.preventDefault();
946
+ return;
947
+ }
948
+ }
949
+
930
950
  this._handleKeyboardDragResize(oEvent);
931
951
  };
932
952
 
953
+ /**
954
+ * Finds first positive button
955
+ * We call positive the buttons with type "Accept" or "Emphasized"
956
+ *
957
+ * @private
958
+ */
959
+ Dialog.prototype._findFirstPositiveButton = function () {
960
+ var aButtons = this.getButtons();
961
+
962
+ for (var i = 0; i < aButtons.length; i++) {
963
+ var oButton = aButtons[i];
964
+ if (oButton.getType() === ButtonType.Accept || oButton.getType() === ButtonType.Emphasized) {
965
+ return oButton;
966
+ }
967
+ }
968
+ };
969
+
933
970
  /**
934
971
  * Handles the keyboard drag/resize functionality
935
972
  *
@@ -1230,7 +1267,12 @@ function(
1230
1267
  oPosition = {
1231
1268
  top: Math.round(oAreaDimensions.top + iTop)
1232
1269
  };
1233
- oPosition[this._bRTL ? "right" : "left"] = Math.round(oAreaDimensions.left + iLeft);
1270
+
1271
+ if (this._bRTL) {
1272
+ oPosition.right = Math.round(window.innerWidth - oAreaDimensions.right + iLeft);
1273
+ } else {
1274
+ oPosition.left = Math.round(oAreaDimensions.left + iLeft);
1275
+ }
1234
1276
 
1235
1277
  return oPosition;
1236
1278
  };
@@ -30,7 +30,7 @@ sap.ui.define([
30
30
  * @extends sap.m.ListItemBase
31
31
  *
32
32
  * @author SAP SE
33
- * @version 1.103.1
33
+ * @version 1.106.0
34
34
  *
35
35
  * @constructor
36
36
  * @public
@@ -27,7 +27,7 @@ sap.ui.define([
27
27
  * @abstract
28
28
  *
29
29
  * @author SAP SE
30
- * @version 1.103.1
30
+ * @version 1.106.0
31
31
  *
32
32
  * @constructor
33
33
  * @public
@@ -36,7 +36,7 @@ sap.ui.define([
36
36
  * @extends sap.ui.model.SimpleType
37
37
  *
38
38
  * @author SAP SE
39
- * @version 1.103.1
39
+ * @version 1.106.0
40
40
  *
41
41
  * @constructor
42
42
  * @public
@@ -10,14 +10,11 @@ sap.ui.define([
10
10
  'sap/ui/core/format/NumberFormat',
11
11
  'sap/ui/core/Locale',
12
12
  'sap/ui/core/LocaleData',
13
- "sap/base/Log",
14
13
  "sap/base/util/deepExtend",
15
- "sap/base/util/isEmptyObject",
16
- "sap/ui/core/date/UniversalDateUtils",
17
14
  "sap/ui/unified/calendar/CalendarUtils",
18
15
  "./library"
19
16
  ],
20
- function(DateFormat, NumberFormat, Locale, LocaleData, Log, deepExtend, isEmptyObject, UniversalDateUtils, CalendarUtils, library) {
17
+ function(DateFormat, NumberFormat, Locale, LocaleData, deepExtend, CalendarUtils, library) {
21
18
  "use strict";
22
19
 
23
20
  /**
@@ -332,7 +329,7 @@ sap.ui.define([
332
329
  DynamicDateFormat.prototype._checkFormatterUTCTimezone = function(sOption) {
333
330
  var sType = "";
334
331
  if (aParameterTypesByStandardOptionKey[sOption]) {
335
- sType = aParameterTypesByStandardOptionKey[sOption];
332
+ sType = aParameterTypesByStandardOptionKey[sOption][0];
336
333
  }
337
334
 
338
335
  // ensure that in options like last/next days or +/- days we still use correct timezone when formatting the dates.
@@ -13,7 +13,8 @@ sap.ui.define([
13
13
  'sap/ui/unified/Calendar',
14
14
  'sap/ui/unified/DateRange',
15
15
  'sap/ui/unified/calendar/MonthPicker',
16
- 'sap/ui/unified/calendar/CustomMonthPicker'],
16
+ 'sap/ui/unified/calendar/CustomMonthPicker',
17
+ 'sap/ui/core/format/TimezoneUtil'],
17
18
  function(
18
19
  Element,
19
20
  Label,
@@ -22,7 +23,8 @@ sap.ui.define([
22
23
  Calendar,
23
24
  DateRange,
24
25
  MonthPicker,
25
- CustomMonthPicker) {
26
+ CustomMonthPicker,
27
+ TimezoneUtil) {
26
28
  "use strict";
27
29
 
28
30
  /**
@@ -36,7 +38,7 @@ sap.ui.define([
36
38
  * @extends sap.ui.core.Element
37
39
  *
38
40
  * @author SAP SE
39
- * @version 1.103.1
41
+ * @version 1.106.0
40
42
  *
41
43
  * @public
42
44
  * @since 1.92
@@ -131,7 +133,12 @@ sap.ui.define([
131
133
  );
132
134
  }
133
135
 
134
- oInputControl = this._createControl(i, aParams[i].getType(), oValue, fnControlsUpdated, valueHelpUiTypesCount);
136
+ var bUTC = false;
137
+ if (oControl && oValue) {
138
+ bUTC = oControl._checkFormatterUTCTimezone(oValue.operator);
139
+ }
140
+
141
+ oInputControl = this._createControl(i, aParams[i].getType(), oValue, fnControlsUpdated, valueHelpUiTypesCount, bUTC);
135
142
 
136
143
  aControls.push(oInputControl);
137
144
  oControl.aControlsByParameters[this.getKey()].push(oInputControl);
@@ -318,7 +325,7 @@ sap.ui.define([
318
325
 
319
326
  // PRIVATE
320
327
 
321
- DynamicDateOption.prototype._createControl = function(iIndex, sUIType, oValue, fnControlsUpdated, valueHelpUiTypesCount) {
328
+ DynamicDateOption.prototype._createControl = function(iIndex, sUIType, oValue, fnControlsUpdated, valueHelpUiTypesCount, bUTC) {
322
329
  var oInputControl;
323
330
 
324
331
  switch (sUIType) {
@@ -326,18 +333,18 @@ sap.ui.define([
326
333
  oInputControl = this._createIntegerControl(oValue, iIndex, fnControlsUpdated);
327
334
  break;
328
335
  case "date":
329
- oInputControl = this._createDateControl(oValue, iIndex, fnControlsUpdated);
336
+ oInputControl = this._createDateControl(oValue, iIndex, fnControlsUpdated, bUTC);
330
337
  break;
331
338
  case "datetime":
332
339
  if (valueHelpUiTypesCount === 1) {
333
340
  // Returns DateTimePicker PopupContent control (single "datetime" option)
334
- oInputControl = this._createDateTimeInnerControl(oValue, iIndex, fnControlsUpdated);
341
+ oInputControl = this._createDateTimeInnerControl(oValue, iIndex, fnControlsUpdated, bUTC);
335
342
  } else if (valueHelpUiTypesCount === 2) {
336
- oInputControl = this._createDateTimeControl(oValue, iIndex, fnControlsUpdated);
343
+ oInputControl = this._createDateTimeControl(oValue, iIndex, fnControlsUpdated, bUTC);
337
344
  }
338
345
  break;
339
346
  case "daterange":
340
- oInputControl = this._createDateRangeControl(oValue, iIndex, fnControlsUpdated);
347
+ oInputControl = this._createDateRangeControl(oValue, iIndex, fnControlsUpdated, bUTC);
341
348
  break;
342
349
  case "month":
343
350
  oInputControl = this._createMonthControl(oValue, iIndex, fnControlsUpdated);
@@ -371,7 +378,7 @@ sap.ui.define([
371
378
  };
372
379
 
373
380
  DynamicDateOption.prototype._createDateTimeControl = function(oValue, iIndex, fnControlsUpdated) {
374
- var oControl = new DateTimePicker();
381
+ var oControl = new DateTimePicker({timezone: TimezoneUtil.getLocalTimezone()});
375
382
 
376
383
  if (oValue && this.getKey() === oValue.operator) {
377
384
  oControl.setDateValue(oValue.values[iIndex]);
@@ -386,14 +393,21 @@ sap.ui.define([
386
393
  return oControl;
387
394
  };
388
395
 
389
- DynamicDateOption.prototype._createDateControl = function(oValue, iIndex, fnControlsUpdated) {
396
+ DynamicDateOption.prototype._createDateControl = function(oValue, iIndex, fnControlsUpdated, bUTC) {
390
397
  var oControl = new Calendar({
391
398
  width: "100%"
392
399
  });
400
+ var oInputControlValue;
393
401
 
394
402
  if (oValue && this.getKey() === oValue.operator) {
403
+ oInputControlValue = new Date(oValue.values[iIndex].getTime());
404
+
405
+ if (bUTC) {
406
+ oInputControlValue.setMinutes(oInputControlValue.getMinutes() + new Date().getTimezoneOffset());
407
+ }
408
+
395
409
  oControl.addSelectedDate(new DateRange({
396
- startDate: oValue.values[iIndex]
410
+ startDate: oInputControlValue
397
411
  }));
398
412
  }
399
413
 
@@ -409,7 +423,7 @@ sap.ui.define([
409
423
  /**
410
424
  * Returns DateTimePicker PopupContent control (single "datetime" option)
411
425
  */
412
- DynamicDateOption.prototype._createDateTimeInnerControl = function(oValue, iIndex, fnControlsUpdated) {
426
+ DynamicDateOption.prototype._createDateTimeInnerControl = function(oValue, iIndex, fnControlsUpdated, bUTC) {
413
427
  var oControl = new DateTimePicker({
414
428
  width: "100%"
415
429
  }),
@@ -424,6 +438,11 @@ sap.ui.define([
424
438
 
425
439
  if (oValue && this.getKey() === oValue.operator) {
426
440
  var oValueCopy = new Date(oValue.values[iIndex]); // a copy is used to prevent time setting on pressing Cancel button
441
+
442
+ if (bUTC) {
443
+ oValueCopy.setMinutes(oValueCopy.getMinutes() + new Date().getTimezoneOffset());
444
+ }
445
+
427
446
  oPopupContent.getCalendar().addSelectedDate(new DateRange({
428
447
  startDate: oValueCopy
429
448
  }));
@@ -453,7 +472,7 @@ sap.ui.define([
453
472
  return oPopupContent;
454
473
  };
455
474
 
456
- DynamicDateOption.prototype._createDateRangeControl = function(oValue, iIndex, fnControlsUpdated) {
475
+ DynamicDateOption.prototype._createDateRangeControl = function(oValue, iIndex, fnControlsUpdated, bUTC) {
457
476
  var oControl = new Calendar({
458
477
  intervalSelection: true,
459
478
  width: "100%"
@@ -461,9 +480,17 @@ sap.ui.define([
461
480
  if (oValue && this.getKey() === oValue.operator) {
462
481
  // a date range UI type maps to 2 consecutive date parameters from the value
463
482
  // they also should be the last 2 parameters
483
+ var oInputControlStartValue = new Date(oValue.values[iIndex].getTime());
484
+ var oInputControlEndValue = new Date(oValue.values[iIndex + 1].getTime());
485
+
486
+ if (bUTC) {
487
+ oInputControlStartValue.setMinutes(oInputControlStartValue.getMinutes() + new Date().getTimezoneOffset());
488
+ oInputControlEndValue.setMinutes(oInputControlEndValue.getMinutes() + new Date().getTimezoneOffset());
489
+ }
490
+
464
491
  oControl.addSelectedDate(new DateRange({
465
- startDate: oValue.values[iIndex],
466
- endDate: oValue.values[iIndex + 1]
492
+ startDate: oInputControlStartValue,
493
+ endDate: oInputControlEndValue
467
494
  }));
468
495
  }
469
496
 
@@ -121,7 +121,7 @@ sap.ui.define([
121
121
  * is opened. The dialog is closed via a date time period value selection or by pressing the "Cancel" button.
122
122
  *
123
123
  * @author SAP SE
124
- * @version 1.103.1
124
+ * @version 1.106.0
125
125
  *
126
126
  * @constructor
127
127
  * @public
@@ -280,7 +280,23 @@ sap.ui.define([
280
280
  "NEXTYEAR",
281
281
  "DATETIME"
282
282
  ]
283
- }
283
+ },
284
+
285
+ /**
286
+ * Determines whether the input field of the control is hidden or visible.
287
+ * When set to <code>true</code>, the input field becomes invisible and there is no way to open the value help popover.
288
+ * In that case it can be opened by another control through calling of control's <code>openBy</code> method, and
289
+ * the opening control's DOM reference must be provided as parameter.
290
+ *
291
+ * Note: Since the Dynamic Date Range is not responsible for accessibility attributes of the control which opens its popover,
292
+ * those attributes should be added by the application developer. The following is recommended to be added to the
293
+ * opening control: a text or tooltip that describes the action (example: "Open Dynamic Date Range"), and also aria-haspopup
294
+ * attribute with value of <code>true</code>.
295
+ *
296
+ * @since 1.105
297
+ */
298
+ hideInput: { type: "boolean", group: "Misc", defaultValue: false }
299
+
284
300
  },
285
301
  aggregations: {
286
302
  _input: { type: "sap.m.Input", multiple: false, visibility: "hidden" },
@@ -413,11 +429,12 @@ sap.ui.define([
413
429
  /**
414
430
  * Opens the value help dialog.
415
431
  *
432
+ * @param {HTMLElement} oDomRef DOM reference of the opening control. On tablet or desktop, the popover is positioned relatively to this control.
416
433
  * @returns {void}
417
434
  * @since 1.92
418
435
  * @public
419
436
  */
420
- DynamicDateRange.prototype.open = function() {
437
+ DynamicDateRange.prototype.open = function(oDomRef) {
421
438
  if (this.getEditable() && this.getEnabled()) {
422
439
  this._createPopup();
423
440
  this._createPopupContent();
@@ -456,7 +473,7 @@ sap.ui.define([
456
473
  //reset value help page
457
474
  this._oNavContainer.to(this._oNavContainer.getPages()[0]);
458
475
 
459
- this._openPopup();
476
+ this._openPopup(oDomRef);
460
477
  }
461
478
  };
462
479
 
@@ -1177,13 +1194,37 @@ sap.ui.define([
1177
1194
  oControl.isA("sap.ui.unified.calendar.Month");
1178
1195
  };
1179
1196
 
1180
- DynamicDateRange.prototype._openPopup = function() {
1197
+ /**
1198
+ * Opens the value help popover. The popover is positioned relatively to the control given as <code>oDomRef</code> parameter on tablet or desktop
1199
+ * and is full screen on phone. Therefore the control parameter is only used on tablet or desktop and is ignored on phone.
1200
+ *
1201
+ * Note: use this method to open the value help popover only when the <code>hideInput</code> property is set to <code>true</code>. Please consider
1202
+ * opening of the value help popover by another control only in scenarios that comply with Fiori guidelines. For example, opening the value help
1203
+ * popover by another popover is not recommended.
1204
+ * The application developer should implement the following accessibility attributes to the opening control: a text or tooltip that describes
1205
+ * the action (example: "Open Dynamic Date Range"), and aria-haspopup attribute with value of <code>true</code>.
1206
+ *
1207
+ * @since 1.105
1208
+ * @param {HTMLElement} oDomRef DOM reference of the opening control. On tablet or desktop, the popover is positioned relatively to this control.
1209
+ * @public
1210
+ */
1211
+ DynamicDateRange.prototype.openBy = function(oDomRef) {
1212
+ this.open(oDomRef);
1213
+ };
1214
+
1215
+ /**
1216
+ * Opens the value help popup.
1217
+ *
1218
+ * @param {HTMLElement} oDomRef DOM reference of the opening control. On tablet or desktop, the value help popover is positioned relative to this control.
1219
+ * @private
1220
+ */
1221
+ DynamicDateRange.prototype._openPopup = function(oDomRef) {
1181
1222
  if (!this._oPopup) {
1182
1223
  return;
1183
1224
  }
1184
1225
 
1185
1226
  this._oPopup._getPopup().setExtraContent([this._oInput.getDomRef()]);
1186
- this._oPopup.openBy(this._oInput);
1227
+ this._oPopup.openBy(oDomRef || this._oInput);
1187
1228
  };
1188
1229
 
1189
1230
  DynamicDateRange.prototype._applyValue = function() {
@@ -1428,8 +1469,9 @@ sap.ui.define([
1428
1469
  };
1429
1470
 
1430
1471
  DynamicDateRangeInput.prototype.onfocusin = function (oEvent) {
1472
+ var oPopup = this._getControlOrigin()._oPopup;
1431
1473
  Input.prototype.onfocusin.apply(this, arguments);
1432
- if (this._getControlOrigin()._oPopup && this._getControlOrigin()._oPopup.isOpen() && !this.isMobileDevice()) {
1474
+ if (oPopup && oPopup.isOpen() && (Device.system.desktop || Device.system.combi)) {
1433
1475
  this._getControlOrigin()._closePopup();
1434
1476
  }
1435
1477
  };
@@ -3,8 +3,8 @@
3
3
  * (c) Copyright 2009-2022 SAP SE or an SAP affiliate company.
4
4
  * Licensed under the Apache License, Version 2.0 - see LICENSE.txt.
5
5
  */
6
- sap.ui.define(["sap/m/InputBaseRenderer", 'sap/ui/core/Renderer'],
7
- function(InputBaseRenderer, Renderer) {
6
+ sap.ui.define([],
7
+ function() {
8
8
  "use strict";
9
9
 
10
10
  /**
@@ -25,6 +25,9 @@ sap.ui.define(["sap/m/InputBaseRenderer", 'sap/ui/core/Renderer'],
25
25
 
26
26
  oRm.openStart("div", oControl);
27
27
  oRm.class("sapMDynamicDateRange");
28
+ if (oControl.getHideInput()) {
29
+ oRm.class("sapMDDRHiddenInput");
30
+ }
28
31
  oRm.openEnd();
29
32
 
30
33
  oRm.renderControl(oControl._oInput);
@@ -8,9 +8,11 @@
8
8
  sap.ui.define([
9
9
  "./StandardDynamicDateOption",
10
10
  "sap/base/Log",
11
- "./library"
11
+ "./library",
12
+ 'sap/ui/core/format/TimezoneUtil',
13
+ 'sap/ui/core/Core'
12
14
  ], function(
13
- StandardDynamicDateOption, Log, library) {
15
+ StandardDynamicDateOption, Log, library, TimezoneUtil, Core) {
14
16
  "use strict";
15
17
 
16
18
  var STANDARD_KEYS_ARRAY = [
@@ -242,6 +244,25 @@ sap.ui.define([
242
244
  return DynamicDateUtil._options[sKey].toDates(oValue);
243
245
  };
244
246
 
247
+
248
+ /**
249
+ * Returns a date in machine timezone setting, removing the offset added by the application configuration.
250
+ *
251
+ * @param {Date} oDate A local JS date with added offset
252
+ * @returns {Date} A local JS date with removed offset
253
+ * @static
254
+ * @public
255
+ */
256
+ DynamicDateUtil.removeTimezoneOffset = function(oDate) {
257
+ var oNewDate = new Date(oDate);
258
+ var sTimezone = Core.getConfiguration().getTimezone();
259
+ var iOffsetInSeconds = TimezoneUtil.calculateOffset(oNewDate, sTimezone) - oNewDate.getTimezoneOffset() * 60;
260
+
261
+ oNewDate.setSeconds(oNewDate.getSeconds() - iOffsetInSeconds);
262
+
263
+ return oNewDate;
264
+ };
265
+
245
266
  return DynamicDateUtil;
246
267
 
247
268
  }, true);
@@ -20,7 +20,7 @@ sap.ui.define(['sap/ui/core/Element'],
20
20
  * @extends sap.ui.core.Element
21
21
  *
22
22
  * @author SAP SE
23
- * @version 1.103.1
23
+ * @version 1.106.0
24
24
  *
25
25
  * @public
26
26
  * @since 1.92