@openui5/sap.m 1.102.2 → 1.104.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 (460) hide show
  1. package/.eslintrc.json +2 -3
  2. package/.reuse/dep5 +17 -0
  3. package/LICENSES/LicenseRef-tzdata-PublicDomain.txt +5 -0
  4. package/THIRDPARTY.txt +35 -2
  5. package/package.json +4 -4
  6. package/src/sap/m/.library +1 -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 +4 -4
  10. package/src/sap/m/ActionSheet.js +1 -1
  11. package/src/sap/m/App.js +1 -1
  12. package/src/sap/m/AssociativeOverflowToolbar.js +1 -1
  13. package/src/sap/m/Avatar.js +1 -1
  14. package/src/sap/m/Bar.js +11 -10
  15. package/src/sap/m/BarInPageEnabler.js +1 -1
  16. package/src/sap/m/Breadcrumbs.js +27 -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 +6 -5
  20. package/src/sap/m/Carousel.js +1 -1
  21. package/src/sap/m/CarouselLayout.js +1 -1
  22. package/src/sap/m/CheckBox.js +1 -1
  23. package/src/sap/m/ColorPalette.js +1 -1
  24. package/src/sap/m/ColorPalettePopover.js +1 -1
  25. package/src/sap/m/Column.js +1 -1
  26. package/src/sap/m/ColumnHeaderPopover.js +1 -1
  27. package/src/sap/m/ColumnListItem.js +1 -1
  28. package/src/sap/m/ColumnPopoverActionItem.js +1 -1
  29. package/src/sap/m/ColumnPopoverCustomItem.js +1 -1
  30. package/src/sap/m/ColumnPopoverItem.js +1 -1
  31. package/src/sap/m/ColumnPopoverSelectListItem.js +1 -1
  32. package/src/sap/m/ColumnPopoverSortItem.js +1 -1
  33. package/src/sap/m/ComboBox.js +1 -1
  34. package/src/sap/m/ComboBoxBase.js +7 -7
  35. package/src/sap/m/ComboBoxTextField.js +1 -1
  36. package/src/sap/m/CustomDynamicDateOption.js +1 -1
  37. package/src/sap/m/CustomListItem.js +1 -1
  38. package/src/sap/m/CustomTile.js +1 -1
  39. package/src/sap/m/CustomTreeItem.js +1 -1
  40. package/src/sap/m/DatePicker.js +15 -23
  41. package/src/sap/m/DateRangeSelection.js +48 -41
  42. package/src/sap/m/DateTimeField.js +87 -20
  43. package/src/sap/m/DateTimeInput.js +1 -1
  44. package/src/sap/m/DateTimePicker.js +54 -24
  45. package/src/sap/m/DateTimePickerRenderer.js +1 -1
  46. package/src/sap/m/Dialog.js +3 -10
  47. package/src/sap/m/DisplayListItem.js +1 -1
  48. package/src/sap/m/DraftIndicator.js +1 -1
  49. package/src/sap/m/DynamicDate.js +1 -1
  50. package/src/sap/m/DynamicDateFormat.js +31 -13
  51. package/src/sap/m/DynamicDateOption.js +6 -4
  52. package/src/sap/m/DynamicDateRange.js +20 -3
  53. package/src/sap/m/DynamicDateValueHelpUIType.js +1 -1
  54. package/src/sap/m/ExpandableText.js +1 -1
  55. package/src/sap/m/FacetFilter.js +29 -28
  56. package/src/sap/m/FacetFilterItem.js +1 -1
  57. package/src/sap/m/FacetFilterList.js +1 -1
  58. package/src/sap/m/FeedContent.js +1 -1
  59. package/src/sap/m/FeedInput.js +1 -1
  60. package/src/sap/m/FeedListItem.js +1 -1
  61. package/src/sap/m/FeedListItemAction.js +1 -1
  62. package/src/sap/m/Fiori20Adapter.js +2 -2
  63. package/src/sap/m/FlexBox.js +1 -1
  64. package/src/sap/m/FlexItemData.js +2 -2
  65. package/src/sap/m/FormattedText.js +1 -1
  66. package/src/sap/m/GenericTag.js +5 -5
  67. package/src/sap/m/GenericTile.js +11 -7
  68. package/src/sap/m/GenericTileLineModeRenderer.js +4 -5
  69. package/src/sap/m/GenericTileRenderer.js +18 -6
  70. package/src/sap/m/GroupHeaderListItem.js +1 -1
  71. package/src/sap/m/GrowingEnablement.js +59 -10
  72. package/src/sap/m/GrowingList.js +1 -1
  73. package/src/sap/m/HBox.js +1 -1
  74. package/src/sap/m/HeaderContainer.js +5 -24
  75. package/src/sap/m/HeaderContainerItemNavigator.js +1 -1
  76. package/src/sap/m/IconTabBar.js +2 -1
  77. package/src/sap/m/IconTabBarSelectList.js +1 -1
  78. package/src/sap/m/IconTabFilter.js +4 -4
  79. package/src/sap/m/IconTabFilterExpandButtonBadge.js +1 -1
  80. package/src/sap/m/IconTabHeader.js +14 -3
  81. package/src/sap/m/IconTabSeparator.js +1 -1
  82. package/src/sap/m/IllustratedMessage.js +63 -24
  83. package/src/sap/m/IllustratedMessageRenderer.js +10 -6
  84. package/src/sap/m/Illustration.js +1 -1
  85. package/src/sap/m/IllustrationPool.js +1 -0
  86. package/src/sap/m/Image.js +1 -1
  87. package/src/sap/m/ImageContent.js +1 -1
  88. package/src/sap/m/Input.js +2 -17
  89. package/src/sap/m/InputBase.js +12 -5
  90. package/src/sap/m/InputListItem.js +1 -1
  91. package/src/sap/m/InstanceManager.js +14 -19
  92. package/src/sap/m/Label.js +1 -1
  93. package/src/sap/m/LightBox.js +1 -1
  94. package/src/sap/m/LightBoxItem.js +1 -1
  95. package/src/sap/m/Link.js +41 -5
  96. package/src/sap/m/LinkRenderer.js +18 -10
  97. package/src/sap/m/List.js +1 -1
  98. package/src/sap/m/ListBase.js +4 -1
  99. package/src/sap/m/ListItemBase.js +10 -2
  100. package/src/sap/m/MaskEnabler.js +52 -2
  101. package/src/sap/m/MaskInput.js +23 -1
  102. package/src/sap/m/MaskInputRenderer.js +10 -0
  103. package/src/sap/m/MaskInputRule.js +1 -1
  104. package/src/sap/m/Menu.js +1 -1
  105. package/src/sap/m/MenuButton.js +2 -1
  106. package/src/sap/m/MenuItem.js +1 -1
  107. package/src/sap/m/MenuListItem.js +3 -3
  108. package/src/sap/m/MessageBox.js +1020 -908
  109. package/src/sap/m/MessageItem.js +1 -1
  110. package/src/sap/m/MessageListItem.js +1 -1
  111. package/src/sap/m/MessagePage.js +1 -1
  112. package/src/sap/m/MessagePopover.js +4 -1
  113. package/src/sap/m/MessagePopoverItem.js +1 -1
  114. package/src/sap/m/MessageStrip.js +1 -1
  115. package/src/sap/m/MessageToast.js +1 -1
  116. package/src/sap/m/MessageView.js +1 -1
  117. package/src/sap/m/MultiComboBox.js +4 -4
  118. package/src/sap/m/MultiEditField.js +1 -1
  119. package/src/sap/m/MultiInput.js +8 -8
  120. package/src/sap/m/NavContainer.js +23 -19
  121. package/src/sap/m/NewsContent.js +1 -1
  122. package/src/sap/m/NotificationList.js +1 -1
  123. package/src/sap/m/NotificationListBase.js +1 -1
  124. package/src/sap/m/NotificationListGroup.js +1 -1
  125. package/src/sap/m/NotificationListItem.js +1 -1
  126. package/src/sap/m/NumericContent.js +1 -1
  127. package/src/sap/m/NumericInput.js +1 -1
  128. package/src/sap/m/ObjectAttribute.js +14 -1
  129. package/src/sap/m/ObjectAttributeRenderer.js +5 -4
  130. package/src/sap/m/ObjectHeader.js +4 -4
  131. package/src/sap/m/ObjectHeaderRenderer.js +11 -11
  132. package/src/sap/m/ObjectIdentifier.js +3 -3
  133. package/src/sap/m/ObjectListItem.js +1 -1
  134. package/src/sap/m/ObjectMarker.js +7 -4
  135. package/src/sap/m/ObjectNumber.js +1 -1
  136. package/src/sap/m/ObjectNumberRenderer.js +10 -3
  137. package/src/sap/m/ObjectStatus.js +1 -1
  138. package/src/sap/m/OverflowToolbar.js +35 -12
  139. package/src/sap/m/OverflowToolbarAssociativePopover.js +1 -1
  140. package/src/sap/m/OverflowToolbarAssociativePopoverControls.js +5 -0
  141. package/src/sap/m/OverflowToolbarButton.js +1 -1
  142. package/src/sap/m/OverflowToolbarLayoutData.js +1 -1
  143. package/src/sap/m/OverflowToolbarToggleButton.js +1 -1
  144. package/src/sap/m/P13nAnyFilterItem.js +1 -1
  145. package/src/sap/m/P13nColumnsItem.js +1 -1
  146. package/src/sap/m/P13nColumnsPanel.js +1 -1
  147. package/src/sap/m/P13nConditionPanel.js +24 -24
  148. package/src/sap/m/P13nDialog.js +3 -1
  149. package/src/sap/m/P13nDimMeasureItem.js +1 -1
  150. package/src/sap/m/P13nDimMeasurePanel.js +1 -1
  151. package/src/sap/m/P13nFilterItem.js +1 -1
  152. package/src/sap/m/P13nFilterPanel.js +1 -1
  153. package/src/sap/m/P13nGroupItem.js +1 -1
  154. package/src/sap/m/P13nGroupPanel.js +1 -1
  155. package/src/sap/m/P13nItem.js +1 -1
  156. package/src/sap/m/P13nPanel.js +1 -1
  157. package/src/sap/m/P13nSelectionItem.js +1 -1
  158. package/src/sap/m/P13nSelectionPanel.js +1 -1
  159. package/src/sap/m/P13nSortItem.js +1 -1
  160. package/src/sap/m/P13nSortPanel.js +1 -1
  161. package/src/sap/m/PDFViewer.js +1 -1
  162. package/src/sap/m/PDFViewerRenderer.js +1 -0
  163. package/src/sap/m/Page.js +1 -1
  164. package/src/sap/m/PageAccessibleLandmarkInfo.js +1 -1
  165. package/src/sap/m/PagingButton.js +1 -1
  166. package/src/sap/m/Panel.js +1 -1
  167. package/src/sap/m/PlanningCalendar.js +1 -1
  168. package/src/sap/m/PlanningCalendarHeader.js +2 -2
  169. package/src/sap/m/PlanningCalendarLegend.js +1 -1
  170. package/src/sap/m/PlanningCalendarRow.js +1 -1
  171. package/src/sap/m/PlanningCalendarView.js +1 -1
  172. package/src/sap/m/Popover.js +5 -5
  173. package/src/sap/m/PopoverRenderer.js +2 -2
  174. package/src/sap/m/ProgressIndicator.js +15 -29
  175. package/src/sap/m/ProgressIndicatorRenderer.js +12 -3
  176. package/src/sap/m/PullToRefresh.js +1 -1
  177. package/src/sap/m/QuickView.js +2 -2
  178. package/src/sap/m/QuickViewBase.js +1 -1
  179. package/src/sap/m/QuickViewCard.js +1 -1
  180. package/src/sap/m/QuickViewGroup.js +1 -1
  181. package/src/sap/m/QuickViewGroupElement.js +2 -1
  182. package/src/sap/m/QuickViewPage.js +1 -1
  183. package/src/sap/m/RadioButton.js +1 -1
  184. package/src/sap/m/RadioButtonGroup.js +2 -2
  185. package/src/sap/m/RangeSlider.js +75 -55
  186. package/src/sap/m/RangeSliderRenderer.js +34 -2
  187. package/src/sap/m/RatingIndicator.js +8 -1
  188. package/src/sap/m/RatingIndicatorRenderer.js +13 -4
  189. package/src/sap/m/ResponsivePopover.js +7 -6
  190. package/src/sap/m/ResponsiveScale.js +1 -1
  191. package/src/sap/m/ScrollBar.js +1 -1
  192. package/src/sap/m/ScrollContainer.js +1 -1
  193. package/src/sap/m/SearchField.js +1 -1
  194. package/src/sap/m/SegmentedButton.js +1 -1
  195. package/src/sap/m/SegmentedButtonItem.js +1 -1
  196. package/src/sap/m/Select.js +16 -18
  197. package/src/sap/m/SelectDialog.js +2 -2
  198. package/src/sap/m/SelectDialogBase.js +1 -1
  199. package/src/sap/m/SelectList.js +8 -8
  200. package/src/sap/m/SelectListRenderer.js +2 -2
  201. package/src/sap/m/SelectRenderer.js +37 -13
  202. package/src/sap/m/SelectionDetails.js +1 -1
  203. package/src/sap/m/SelectionDetailsFacade.js +2 -2
  204. package/src/sap/m/SelectionDetailsItem.js +1 -1
  205. package/src/sap/m/SelectionDetailsItemLine.js +1 -1
  206. package/src/sap/m/Shell.js +1 -1
  207. package/src/sap/m/SimpleFixFlex.js +5 -6
  208. package/src/sap/m/SimpleFixFlexRenderer.js +1 -0
  209. package/src/sap/m/SinglePlanningCalendar.js +1 -1
  210. package/src/sap/m/SinglePlanningCalendarDayView.js +1 -1
  211. package/src/sap/m/SinglePlanningCalendarGrid.js +1 -1
  212. package/src/sap/m/SinglePlanningCalendarMonthGrid.js +1 -1
  213. package/src/sap/m/SinglePlanningCalendarMonthView.js +1 -1
  214. package/src/sap/m/SinglePlanningCalendarView.js +1 -1
  215. package/src/sap/m/SinglePlanningCalendarWeekView.js +1 -1
  216. package/src/sap/m/SinglePlanningCalendarWorkWeekView.js +1 -1
  217. package/src/sap/m/SlideTile.js +1 -1
  218. package/src/sap/m/Slider.js +14 -5
  219. package/src/sap/m/SliderRenderer.js +27 -2
  220. package/src/sap/m/SliderTooltip.js +1 -1
  221. package/src/sap/m/SliderTooltipBase.js +1 -1
  222. package/src/sap/m/SliderTooltipContainer.js +3 -3
  223. package/src/sap/m/SplitApp.js +1 -1
  224. package/src/sap/m/SplitButton.js +1 -1
  225. package/src/sap/m/SplitContainer.js +3 -11
  226. package/src/sap/m/StandardDynamicDateOption.js +1 -1
  227. package/src/sap/m/StandardListItem.js +1 -1
  228. package/src/sap/m/StandardTile.js +1 -1
  229. package/src/sap/m/StandardTreeItem.js +1 -1
  230. package/src/sap/m/StepInput.js +1 -1
  231. package/src/sap/m/SuggestionItem.js +1 -1
  232. package/src/sap/m/SuggestionsPopover.js +1 -1
  233. package/src/sap/m/Switch.js +1 -1
  234. package/src/sap/m/TabContainer.js +3 -2
  235. package/src/sap/m/TabContainerItem.js +1 -1
  236. package/src/sap/m/TabStrip.js +2 -2
  237. package/src/sap/m/TabStripItem.js +1 -1
  238. package/src/sap/m/Table.js +1 -1
  239. package/src/sap/m/TablePersoController.js +2 -2
  240. package/src/sap/m/TablePersoDialog.js +2 -2
  241. package/src/sap/m/TablePersoProvider.js +2 -2
  242. package/src/sap/m/TableSelectDialog.js +2 -2
  243. package/src/sap/m/Text.js +2 -2
  244. package/src/sap/m/TextArea.js +4 -3
  245. package/src/sap/m/TextRenderer.js +2 -0
  246. package/src/sap/m/Tile.js +1 -1
  247. package/src/sap/m/TileContainer.js +6 -6
  248. package/src/sap/m/TileContent.js +9 -9
  249. package/src/sap/m/TileContentRenderer.js +1 -1
  250. package/src/sap/m/TimePicker.js +73 -18
  251. package/src/sap/m/TimePickerClock.js +1 -1
  252. package/src/sap/m/TimePickerClocks.js +5 -3
  253. package/src/sap/m/TimePickerClocksRenderer.js +1 -0
  254. package/src/sap/m/TimePickerInputs.js +1 -1
  255. package/src/sap/m/TimePickerInternals.js +1 -1
  256. package/src/sap/m/TimePickerSlider.js +1 -1
  257. package/src/sap/m/TimePickerSliders.js +1 -1
  258. package/src/sap/m/Title.js +2 -2
  259. package/src/sap/m/TitlePropagationSupport.js +1 -1
  260. package/src/sap/m/ToggleButton.js +2 -2
  261. package/src/sap/m/Token.js +1 -1
  262. package/src/sap/m/Tokenizer.js +1 -1
  263. package/src/sap/m/Toolbar.js +1 -1
  264. package/src/sap/m/ToolbarLayoutData.js +6 -2
  265. package/src/sap/m/ToolbarSeparator.js +1 -1
  266. package/src/sap/m/ToolbarSpacer.js +1 -1
  267. package/src/sap/m/Tree.js +1 -1
  268. package/src/sap/m/TreeItemBase.js +1 -1
  269. package/src/sap/m/UploadCollection.js +6 -6
  270. package/src/sap/m/UploadCollectionItem.js +1 -1
  271. package/src/sap/m/UploadCollectionParameter.js +1 -1
  272. package/src/sap/m/UploadCollectionToolbarPlaceholder.js +1 -1
  273. package/src/sap/m/VBox.js +1 -1
  274. package/src/sap/m/ValueStateHeader.js +1 -1
  275. package/src/sap/m/VariantItem.js +160 -0
  276. package/src/sap/m/VariantManagement.js +610 -547
  277. package/src/sap/m/ViewSettingsCustomItem.js +1 -1
  278. package/src/sap/m/ViewSettingsCustomTab.js +1 -1
  279. package/src/sap/m/ViewSettingsDialog.js +3 -3
  280. package/src/sap/m/ViewSettingsFilterItem.js +1 -1
  281. package/src/sap/m/ViewSettingsItem.js +1 -1
  282. package/src/sap/m/VisibleItem.js +1 -1
  283. package/src/sap/m/WheelSlider.js +1 -1
  284. package/src/sap/m/WheelSliderContainer.js +1 -1
  285. package/src/sap/m/Wizard.js +1 -1
  286. package/src/sap/m/WizardProgressNavigator.js +1 -1
  287. package/src/sap/m/WizardStep.js +1 -1
  288. package/src/sap/m/changeHandler/AddTableColumn.js +1 -1
  289. package/src/sap/m/changeHandler/ChangeLinkTarget.js +1 -1
  290. package/src/sap/m/changeHandler/CombineButtons.js +1 -1
  291. package/src/sap/m/changeHandler/MoveTableColumns.js +2 -2
  292. package/src/sap/m/changeHandler/SelectIconTabBarFilter.js +1 -1
  293. package/src/sap/m/changeHandler/SplitMenuButton.js +1 -1
  294. package/src/sap/m/designtime/VariantManagement.designtime.js +34 -24
  295. package/src/sap/m/designtime/messagebundle_de.properties +2 -2
  296. package/src/sap/m/flexibility/EngineFlex.js +48 -0
  297. package/src/sap/m/inputUtils/forwardItemProperties.js +4 -0
  298. package/src/sap/m/library.js +32 -9
  299. package/src/sap/m/messagebundle.properties +33 -2
  300. package/src/sap/m/messagebundle_ar.properties +27 -12
  301. package/src/sap/m/messagebundle_bg.properties +22 -7
  302. package/src/sap/m/messagebundle_ca.properties +22 -7
  303. package/src/sap/m/messagebundle_cs.properties +24 -9
  304. package/src/sap/m/messagebundle_cy.properties +22 -7
  305. package/src/sap/m/messagebundle_da.properties +22 -7
  306. package/src/sap/m/messagebundle_de.properties +23 -8
  307. package/src/sap/m/messagebundle_el.properties +23 -8
  308. package/src/sap/m/messagebundle_en.properties +22 -7
  309. package/src/sap/m/messagebundle_en_GB.properties +22 -7
  310. package/src/sap/m/messagebundle_en_US_sappsd.properties +22 -7
  311. package/src/sap/m/messagebundle_en_US_saprigi.properties +22 -7
  312. package/src/sap/m/messagebundle_en_US_saptrc.properties +22 -7
  313. package/src/sap/m/messagebundle_es.properties +22 -7
  314. package/src/sap/m/messagebundle_es_MX.properties +22 -7
  315. package/src/sap/m/messagebundle_et.properties +22 -7
  316. package/src/sap/m/messagebundle_fi.properties +22 -7
  317. package/src/sap/m/messagebundle_fr.properties +35 -20
  318. package/src/sap/m/messagebundle_fr_CA.properties +22 -7
  319. package/src/sap/m/messagebundle_hi.properties +22 -7
  320. package/src/sap/m/messagebundle_hr.properties +26 -11
  321. package/src/sap/m/messagebundle_hu.properties +24 -9
  322. package/src/sap/m/messagebundle_id.properties +22 -7
  323. package/src/sap/m/messagebundle_it.properties +29 -14
  324. package/src/sap/m/messagebundle_iw.properties +23 -8
  325. package/src/sap/m/messagebundle_ja.properties +22 -7
  326. package/src/sap/m/messagebundle_kk.properties +22 -7
  327. package/src/sap/m/messagebundle_ko.properties +39 -24
  328. package/src/sap/m/messagebundle_lt.properties +22 -7
  329. package/src/sap/m/messagebundle_lv.properties +22 -7
  330. package/src/sap/m/messagebundle_ms.properties +22 -7
  331. package/src/sap/m/messagebundle_nl.properties +36 -21
  332. package/src/sap/m/messagebundle_no.properties +27 -12
  333. package/src/sap/m/messagebundle_pl.properties +23 -8
  334. package/src/sap/m/messagebundle_pt.properties +27 -12
  335. package/src/sap/m/messagebundle_pt_PT.properties +22 -7
  336. package/src/sap/m/messagebundle_ro.properties +23 -8
  337. package/src/sap/m/messagebundle_ru.properties +22 -7
  338. package/src/sap/m/messagebundle_sh.properties +23 -8
  339. package/src/sap/m/messagebundle_sk.properties +22 -7
  340. package/src/sap/m/messagebundle_sl.properties +24 -9
  341. package/src/sap/m/messagebundle_sv.properties +22 -7
  342. package/src/sap/m/messagebundle_th.properties +45 -30
  343. package/src/sap/m/messagebundle_tr.properties +23 -8
  344. package/src/sap/m/messagebundle_uk.properties +23 -8
  345. package/src/sap/m/messagebundle_vi.properties +22 -7
  346. package/src/sap/m/messagebundle_zh_CN.properties +24 -9
  347. package/src/sap/m/messagebundle_zh_TW.properties +26 -11
  348. package/src/sap/m/p13n/AbstractContainer.js +5 -5
  349. package/src/sap/m/p13n/AbstractContainerItem.js +2 -2
  350. package/src/sap/m/p13n/BasePanel.js +4 -3
  351. package/src/sap/m/p13n/Container.js +1 -1
  352. package/src/sap/m/p13n/Engine.js +1253 -0
  353. package/src/sap/m/p13n/FlexUtil.js +162 -0
  354. package/src/sap/m/p13n/GroupController.js +145 -0
  355. package/src/sap/m/p13n/GroupPanel.js +10 -3
  356. package/src/sap/m/p13n/MetadataHelper.js +35 -0
  357. package/src/sap/m/p13n/PersistenceProvider.js +135 -0
  358. package/src/sap/m/p13n/Popup.js +46 -9
  359. package/src/sap/m/p13n/QueryPanel.js +1 -1
  360. package/src/sap/m/p13n/SelectionController.js +563 -0
  361. package/src/sap/m/p13n/SelectionPanel.js +13 -1
  362. package/src/sap/m/p13n/SortController.js +153 -0
  363. package/src/sap/m/p13n/SortPanel.js +11 -1
  364. package/src/sap/m/p13n/enum/PersistenceMode.js +43 -0
  365. package/src/sap/m/p13n/handler/xConfigHandler.js +166 -0
  366. package/src/sap/m/p13n/modification/FlexModificationHandler.js +90 -0
  367. package/src/sap/m/p13n/modification/LocalStorageModificationHandler.js +75 -0
  368. package/src/sap/m/p13n/modification/ModificationHandler.js +133 -0
  369. package/src/sap/m/p13n/modules/AdaptationProvider.js +67 -0
  370. package/src/sap/m/p13n/modules/DefaultProviderRegistry.js +124 -0
  371. package/src/sap/m/p13n/modules/StateHandlerRegistry.js +101 -0
  372. package/src/sap/m/p13n/modules/UIManager.js +230 -0
  373. package/src/sap/m/p13n/modules/xConfigAPI.js +286 -0
  374. package/src/sap/m/plugins/ColumnResizer.js +15 -1
  375. package/src/sap/m/plugins/DataStateIndicator.js +12 -4
  376. package/src/sap/m/plugins/PasteProvider.js +1 -1
  377. package/src/sap/m/plugins/PluginBase.js +2 -2
  378. package/src/sap/m/rules/DatePicker.support.js +4 -3
  379. package/src/sap/m/semantic/AddAction.js +1 -1
  380. package/src/sap/m/semantic/CancelAction.js +1 -1
  381. package/src/sap/m/semantic/DeleteAction.js +1 -1
  382. package/src/sap/m/semantic/DetailPage.js +1 -1
  383. package/src/sap/m/semantic/DiscussInJamAction.js +1 -1
  384. package/src/sap/m/semantic/EditAction.js +1 -1
  385. package/src/sap/m/semantic/FavoriteAction.js +1 -1
  386. package/src/sap/m/semantic/FilterAction.js +1 -1
  387. package/src/sap/m/semantic/FilterSelect.js +1 -1
  388. package/src/sap/m/semantic/FlagAction.js +1 -1
  389. package/src/sap/m/semantic/ForwardAction.js +1 -1
  390. package/src/sap/m/semantic/FullscreenPage.js +1 -1
  391. package/src/sap/m/semantic/GroupAction.js +1 -1
  392. package/src/sap/m/semantic/GroupSelect.js +1 -1
  393. package/src/sap/m/semantic/MainAction.js +1 -1
  394. package/src/sap/m/semantic/MasterPage.js +1 -1
  395. package/src/sap/m/semantic/MessagesIndicator.js +1 -1
  396. package/src/sap/m/semantic/MultiSelectAction.js +1 -1
  397. package/src/sap/m/semantic/NegativeAction.js +1 -1
  398. package/src/sap/m/semantic/OpenInAction.js +1 -1
  399. package/src/sap/m/semantic/PositiveAction.js +1 -1
  400. package/src/sap/m/semantic/PrintAction.js +1 -1
  401. package/src/sap/m/semantic/SaveAction.js +1 -1
  402. package/src/sap/m/semantic/Segment.js +1 -1
  403. package/src/sap/m/semantic/SegmentedContainer.js +1 -1
  404. package/src/sap/m/semantic/SemanticButton.js +1 -1
  405. package/src/sap/m/semantic/SemanticConfiguration.js +1 -1
  406. package/src/sap/m/semantic/SemanticControl.js +1 -1
  407. package/src/sap/m/semantic/SemanticOverflowToolbarButton.js +3 -3
  408. package/src/sap/m/semantic/SemanticOverflowToolbarToggleButton.js +3 -3
  409. package/src/sap/m/semantic/SemanticPage.js +1 -1
  410. package/src/sap/m/semantic/SemanticSelect.js +1 -1
  411. package/src/sap/m/semantic/SemanticToggleButton.js +1 -1
  412. package/src/sap/m/semantic/SendEmailAction.js +1 -1
  413. package/src/sap/m/semantic/SendMessageAction.js +1 -1
  414. package/src/sap/m/semantic/ShareInJamAction.js +1 -1
  415. package/src/sap/m/semantic/ShareMenu.js +1 -1
  416. package/src/sap/m/semantic/ShareMenuPage.js +1 -1
  417. package/src/sap/m/semantic/SortAction.js +1 -1
  418. package/src/sap/m/semantic/SortSelect.js +1 -1
  419. package/src/sap/m/table/Util.js +8 -3
  420. package/src/sap/m/table/columnmenu/ActionItem.js +1 -1
  421. package/src/sap/m/table/columnmenu/Entry.js +1 -1
  422. package/src/sap/m/table/columnmenu/Item.js +1 -1
  423. package/src/sap/m/table/columnmenu/ItemBase.js +1 -1
  424. package/src/sap/m/table/columnmenu/Menu.js +9 -3
  425. package/src/sap/m/table/columnmenu/QuickAction.js +1 -1
  426. package/src/sap/m/table/columnmenu/QuickActionBase.js +1 -1
  427. package/src/sap/m/table/columnmenu/QuickActionItem.js +1 -1
  428. package/src/sap/m/table/columnmenu/QuickGroup.js +21 -1
  429. package/src/sap/m/table/columnmenu/QuickGroupItem.js +13 -1
  430. package/src/sap/m/table/columnmenu/QuickSort.js +1 -1
  431. package/src/sap/m/table/columnmenu/QuickSortItem.js +1 -1
  432. package/src/sap/m/table/columnmenu/QuickTotal.js +21 -1
  433. package/src/sap/m/table/columnmenu/QuickTotalItem.js +13 -1
  434. package/src/sap/m/themes/base/ActionListItem.less +1 -1
  435. package/src/sap/m/themes/base/Breadcrumbs.less +17 -0
  436. package/src/sap/m/themes/base/CheckBox.less +2 -0
  437. package/src/sap/m/themes/base/Dialog.less +1 -2
  438. package/src/sap/m/themes/base/FeedContent.less +13 -5
  439. package/src/sap/m/themes/base/GenericTag.less +5 -3
  440. package/src/sap/m/themes/base/GenericTile.less +13 -9
  441. package/src/sap/m/themes/base/IllustratedMessage.less +7 -0
  442. package/src/sap/m/themes/base/LightBox.less +0 -12
  443. package/src/sap/m/themes/base/MessageBox.less +4 -3
  444. package/src/sap/m/themes/base/NumericContent.less +1 -1
  445. package/src/sap/m/themes/base/ObjectNumber.less +5 -0
  446. package/src/sap/m/themes/base/ObjectStatus.less +2 -1
  447. package/src/sap/m/themes/base/OverflowToolbarAssociativePopover.less +5 -1
  448. package/src/sap/m/themes/base/ProgressIndicator.less +0 -4
  449. package/src/sap/m/themes/base/Select.less +1 -3
  450. package/src/sap/m/themes/base/SelectList.less +0 -5
  451. package/src/sap/m/themes/base/SinglePlanningCalendarGrid.less +7 -0
  452. package/src/sap/m/themes/base/SlideTile.less +5 -4
  453. package/src/sap/m/themes/base/StandardListItem.less +1 -0
  454. package/src/sap/m/themes/base/Table.less +11 -1
  455. package/src/sap/m/themes/base/TimePickerClock.less +7 -0
  456. package/src/sap/m/themes/base/Title.less +1 -1
  457. package/src/sap/m/upload/UploadSet.js +98 -15
  458. package/src/sap/m/upload/UploadSetItem.js +16 -4
  459. package/src/sap/m/upload/UploadSetRenderer.js +8 -16
  460. package/src/sap/m/upload/UploadSetToolbarPlaceholder.js +2 -1
@@ -24,7 +24,7 @@ sap.ui.define(['./ListItemBase', './library', './CustomListItemRenderer'],
24
24
  * @extends sap.m.ListItemBase
25
25
  *
26
26
  * @author SAP SE
27
- * @version 1.102.2
27
+ * @version 1.104.0
28
28
  *
29
29
  * @constructor
30
30
  * @public
@@ -21,7 +21,7 @@ sap.ui.define(['./Tile', './library', './CustomTileRenderer'],
21
21
  * Use the CustomTile control to display application specific content in the Tile control.
22
22
  * The tile width is 8.5em and height is 10em.
23
23
  * @extends sap.m.Tile
24
- * @version 1.102.2
24
+ * @version 1.104.0
25
25
  *
26
26
  * @constructor
27
27
  * @public
@@ -23,7 +23,7 @@ sap.ui.define([
23
23
  * <code>Table, Form</code> etc, should not be aggregated as content.
24
24
  * @extends sap.m.TreeItemBase
25
25
  * @author SAP SE
26
- * @version 1.102.2
26
+ * @version 1.104.0
27
27
  * @constructor
28
28
  * @public
29
29
  * @since 1.48.0
@@ -152,7 +152,7 @@ sap.ui.define([
152
152
  * the close event), or select Cancel.
153
153
  *
154
154
  * @extends sap.m.DateTimeField
155
- * @version 1.102.2
155
+ * @version 1.104.0
156
156
  *
157
157
  * @constructor
158
158
  * @public
@@ -1060,22 +1060,9 @@ sap.ui.define([
1060
1060
 
1061
1061
  };
1062
1062
 
1063
- // overwrite _getInputValue to do the conversion there
1064
- DatePicker.prototype._getInputValue = function(sValue) {
1065
-
1066
- sValue = (typeof sValue == "undefined") ? this._$input.val() : sValue.toString();
1067
-
1068
- var oDate = this._parseValue(sValue, true);
1069
- sValue = this._formatValue(oDate, true);
1070
-
1071
- return sValue;
1072
-
1073
- };
1074
-
1075
- // overwrite _getInputValue to do the output conversion
1076
1063
  DatePicker.prototype.updateDomValue = function(sValue) {
1077
1064
 
1078
- if (this.isActive() && (this._$input.val() !== sValue)) {
1065
+ if (this.isActive() && this._$input.val() !== sValue) {
1079
1066
  // dom value updated other than value property
1080
1067
  this._bCheckDomValue = true;
1081
1068
 
@@ -1085,11 +1072,18 @@ sap.ui.define([
1085
1072
  var oDate = this._parseValue(sValue, true);
1086
1073
  sValue = this._formatValue(oDate);
1087
1074
 
1088
- // update the DOM value when necessary
1089
- // otherwise cursor can goto end of text unnecessarily
1090
- this._$input.val(sValue);
1091
- if (document.activeElement === this._$input[0]) {
1092
- this._$input.cursorPos(this._curpos);
1075
+ // if set to true, handle the user input and data
1076
+ // model updates concurrency in order to not overwrite
1077
+ // values coming from the user
1078
+ if (this._bPreferUserInteraction) {
1079
+ this.handleInputValueConcurrency(sValue);
1080
+ } else {
1081
+ // update the DOM value when necessary
1082
+ // otherwise cursor can goto end of text unnecessarily
1083
+ this._$input.val(sValue);
1084
+ if (document.activeElement === this._$input[0]) {
1085
+ this._$input.cursorPos(this._curpos);
1086
+ }
1093
1087
  }
1094
1088
  }
1095
1089
 
@@ -1465,7 +1459,7 @@ sap.ui.define([
1465
1459
 
1466
1460
  /**
1467
1461
  * Getter for DatePicker's Calendar instance.
1468
- * @returns {object} The _header object
1462
+ * @returns {sap.ui.unified.Calendar} The calendar object
1469
1463
  * @private
1470
1464
  */
1471
1465
  DatePicker.prototype._getCalendar = function () {
@@ -1608,8 +1602,6 @@ sap.ui.define([
1608
1602
  this.addStyleClass(InputBase.ICON_PRESSED_CSS_CLASS);
1609
1603
  this._renderedDays = this._getCalendar().$("-Month0-days").find(".sapUiCalItem").length;
1610
1604
 
1611
- this.$("inner").attr("aria-owns", this.getId() + "-cal");
1612
-
1613
1605
  InstanceManager.addPopoverInstance(this._oPopup);
1614
1606
 
1615
1607
  this._oCalendar.focus();
@@ -128,8 +128,8 @@ sap.ui.define([
128
128
  * compact mode and provides a touch-friendly size in cozy mode.
129
129
  *
130
130
  * @extends sap.m.DatePicker
131
- * @version 1.102.2
132
- * @version 1.102.2
131
+ * @version 1.104.0
132
+ * @version 1.104.0
133
133
  *
134
134
  * @constructor
135
135
  * @public
@@ -238,7 +238,7 @@ sap.ui.define([
238
238
  oLocale = sap.ui.getCore().getConfiguration().getFormatSettings().getFormatLocale();
239
239
  oLocaleData = LocaleData.getInstance(oLocale);
240
240
 
241
- if (oBinding && oBinding.getType() instanceof sap.ui.model.type.DateInterval) {
241
+ if (oBinding && oBinding.getType() && oBinding.getType().isA("sap.ui.model.type.DateInterval")) {
242
242
  oBindingType = oBinding.getType();
243
243
 
244
244
  if (oBindingType.oFormatOptions && oBindingType.oFormatOptions.format) {
@@ -297,14 +297,26 @@ sap.ui.define([
297
297
  * @public
298
298
  */
299
299
  DateRangeSelection.prototype.setValue = function(sValue) {
300
+ sValue = this.validateProperty("value", sValue);
300
301
 
301
302
  if (sValue !== this.getValue()) {
302
303
  this.setLastValue(sValue);
303
304
  } else {
304
305
  return this;
305
306
  }
306
- // Set the property in any case but check validity on output
307
- this.setProperty("value", sValue);
307
+
308
+ var aDates = this._parseAndValidateValue(sValue);
309
+ this.setProperty("dateValue", _normalizeDateValue(aDates[0]), this._bPreferUserInteraction);
310
+ this.setProperty("secondDateValue", _normalizeDateValue(aDates[1]), this._bPreferUserInteraction);
311
+
312
+ this._formatValueAndUpdateOutput(aDates);
313
+ this.setProperty("value", sValue, this._bPreferUserInteraction);
314
+
315
+ return this;
316
+
317
+ };
318
+
319
+ DateRangeSelection.prototype._parseAndValidateValue = function(sValue) {
308
320
  this._bValid = true;
309
321
 
310
322
  // Convert to date object(s)
@@ -318,22 +330,27 @@ sap.ui.define([
318
330
  }
319
331
  }
320
332
 
321
- this.setProperty("dateValue", _normalizeDateValue(aDates[0]));
322
- this.setProperty("secondDateValue", _normalizeDateValue(aDates[1]));
323
-
324
- // Do not call InputBase.setValue because the displayed value and the output value might have different pattern
325
- if (this.getDomRef()) {
326
- // Convert to output
327
- var sOutputValue = this._formatValue(aDates[0], aDates[1]);
333
+ return aDates;
334
+ };
328
335
 
329
- if (this._$input.val() !== sOutputValue) {
330
- this._$input.val(sOutputValue);
331
- this._curpos = this._$input.cursorPos();
332
- }
336
+ DateRangeSelection.prototype._formatValueAndUpdateOutput = function(aDates) {
337
+ if (!this.getDomRef()) {
338
+ return;
333
339
  }
334
340
 
335
- return this;
341
+ // Convert to output
342
+ var sOutputValue = this._formatValue(aDates[0], aDates[1]);
336
343
 
344
+ if (this._bPreferUserInteraction) {
345
+ // Handle the value concurrency before setting the value property of the control,
346
+ // in order to distinguish whether the user only focused the input field or typed in it
347
+ this.handleInputValueConcurrency(sOutputValue);
348
+ } else if (this._$input.val() !== sOutputValue) {
349
+ // update the DOM value when necessary
350
+ // otherwise cursor can go to the end of text unnecessarily
351
+ this._$input.val(sOutputValue);
352
+ this._curpos = this._$input.cursorPos();
353
+ }
337
354
  };
338
355
 
339
356
  /**
@@ -547,7 +564,7 @@ sap.ui.define([
547
564
  var oDate1, oDate2;
548
565
  var oBinding = this.getBinding("value");
549
566
 
550
- if (oBinding && oBinding.getType() instanceof sap.ui.model.type.DateInterval) {
567
+ if (oBinding && oBinding.getType() && oBinding.getType().isA("sap.ui.model.type.DateInterval")) {
551
568
  //The InputBase has it's own mechanism for handling parser exception that
552
569
  //uses sap.ui.core.message.MessageMixin and MessageManager. This mechanism
553
570
  //is triggered once the invalid value is set to the Input. In our case this
@@ -662,7 +679,7 @@ sap.ui.define([
662
679
  if (oDate1) {
663
680
  oBinding = this.getBinding("value");
664
681
 
665
- if (oBinding && oBinding.getType() instanceof sap.ui.model.type.DateInterval) {
682
+ if (oBinding && oBinding.getType() && oBinding.getType().isA("sap.ui.model.type.DateInterval")) {
666
683
  if (oBinding.getType().oFormatOptions && oBinding.getType().oFormatOptions.source && oBinding.getType().oFormatOptions.source.pattern === "timestamp") {
667
684
  sValue = oBinding.getType().formatValue([_denormalizeDateValue(oDateValue), _denormalizeDateValue(oSecondDateValue)], "string");
668
685
  } else {
@@ -766,23 +783,6 @@ sap.ui.define([
766
783
 
767
784
  };
768
785
 
769
- // Overwrite DatePicker's _getInputValue to support two date range processing
770
- DateRangeSelection.prototype._getInputValue = function(sValue) {
771
-
772
- sValue = (typeof sValue == "undefined") ? this._$input.val() : sValue.toString();
773
-
774
- if (!sValue) {
775
- return "";
776
- }
777
-
778
- var aDates = this._parseValue(sValue);
779
- sValue = this._formatValue( aDates[0], aDates[1]);
780
-
781
- return sValue;
782
-
783
- };
784
-
785
- // overwrite _getInputValue to do the output conversion
786
786
  DateRangeSelection.prototype.updateDomValue = function(sValue) {
787
787
 
788
788
  // dom value updated other than value property
@@ -794,11 +794,18 @@ sap.ui.define([
794
794
  var aDates = this._parseValue(sValue);
795
795
  sValue = this._formatValue( aDates[0], aDates[1]);
796
796
 
797
- // update the DOM value when necessary
798
- // otherwise cursor can goto end of text unnecessarily
799
- if (this.isActive() && (this._$input.val() !== sValue)) {
800
- this._$input.val(sValue);
801
- this._$input.cursorPos(this._curpos);
797
+ // if set to true, handle the user input and data
798
+ // model updates concurrency in order to not overwrite
799
+ // values coming from the user
800
+ if (this._bPreferUserInteraction) {
801
+ this.handleInputValueConcurrency(sValue);
802
+ } else {
803
+ // update the DOM value when necessary
804
+ // otherwise cursor can goto end of text unnecessarily
805
+ if (this.isActive() && (this._$input.val() !== sValue)) {
806
+ this._$input.val(sValue);
807
+ this._$input.cursorPos(this._curpos);
808
+ }
802
809
  }
803
810
 
804
811
  return this;
@@ -59,7 +59,7 @@ sap.ui.define([
59
59
  * @extends sap.m.InputBase
60
60
  *
61
61
  * @author SAP SE
62
- * @version 1.102.2
62
+ * @version 1.104.0
63
63
  *
64
64
  * @constructor
65
65
  * @public
@@ -108,6 +108,28 @@ sap.ui.define([
108
108
  * @since 1.54
109
109
  */
110
110
  initialFocusedDateValue: {type: "object", group: "Data", defaultValue: null}
111
+ },
112
+ events : {
113
+
114
+ /**
115
+ * Fired when the value of the <code>DateTimeField</code> is changed by user interaction - each keystroke, delete, paste, etc.
116
+ *
117
+ * <b>Note:</b> Browsing autocomplete suggestions doesn't fire the event.
118
+ * @since 1.104.0
119
+ */
120
+ liveChange: {
121
+ parameters : {
122
+ /**
123
+ * The current value of the input, after a live change event.
124
+ */
125
+ value: {type : "string"},
126
+
127
+ /**
128
+ * The previous value of the input, before the last user interaction.
129
+ */
130
+ previousValue: {type : "string"}
131
+ }
132
+ }
111
133
  }
112
134
  }
113
135
  });
@@ -123,8 +145,18 @@ sap.ui.define([
123
145
  this.setLastValue(sValue);
124
146
  }
125
147
 
126
- // set the property in any case but check validity on output
127
- this.setProperty("value", sValue);
148
+ // convert to date object and check validity on output
149
+ var oDate = this._parseAndValidateValue(sValue);
150
+ this.setProperty("dateValue", oDate, this._bPreferUserInteraction);
151
+
152
+ // do not call InputBase.setValue because the displayed value and the output value might have different pattern
153
+ this._formatValueAndUpdateOutput(oDate, sValue);
154
+ this.setProperty("value", sValue, this._bPreferUserInteraction);
155
+
156
+ return this;
157
+ };
158
+
159
+ DateTimeField.prototype._parseAndValidateValue = function(sValue) {
128
160
  this._bValid = true;
129
161
 
130
162
  // convert to date object
@@ -146,25 +178,26 @@ sap.ui.define([
146
178
  }
147
179
  }
148
180
 
149
- this.setProperty("dateValue", oDate);
150
-
151
- // do not call InputBase.setValue because the displayed value and the output value might have different pattern
152
- if (this.getDomRef()) {
153
- // convert to output
154
- var sOutputValue;
155
- if (oDate) {
156
- sOutputValue = this._formatValue(oDate);
157
- } else {
158
- sOutputValue = sValue;
159
- }
181
+ return oDate;
182
+ };
160
183
 
161
- if (this._$input.val() !== sOutputValue) {
162
- this._$input.val(sOutputValue);
163
- this._curpos = this._$input.cursorPos();
164
- }
184
+ DateTimeField.prototype._formatValueAndUpdateOutput = function(oDate, sValue) {
185
+ if (!this.getDomRef()) {
186
+ return;
187
+ }
188
+ // convert to output
189
+ var sOutputValue = oDate ? this._formatValue(oDate) : sValue;
190
+
191
+ if (this._bPreferUserInteraction) {
192
+ // Handle the value concurrency before setting the value property of the control,
193
+ // in order to distinguish whether the user only focused the input field or typed in it
194
+ this.handleInputValueConcurrency(sOutputValue);
195
+ } else if (this._$input.val() !== sOutputValue) {
196
+ // update the DOM value when necessary
197
+ // otherwise cursor can go to the end of text unnecessarily
198
+ this._$input.val(sOutputValue);
199
+ this._curpos = this._$input.cursorPos();
165
200
  }
166
-
167
- return this;
168
201
  };
169
202
 
170
203
  DateTimeField.prototype.setDateValue = function (oDate) {
@@ -245,6 +278,40 @@ sap.ui.define([
245
278
  .setVisible(this.getValueState() !== ValueState.None);
246
279
  }
247
280
 
281
+ this._sPreviousValue = this.getDOMValue();
282
+ };
283
+
284
+ /**
285
+ * Event handler for user input.
286
+ *
287
+ * @public
288
+ * @param {jQuery.Event} oEvent User input.
289
+ */
290
+ DateTimeField.prototype.oninput = function(oEvent) {
291
+ InputBase.prototype.oninput.call(this, oEvent);
292
+ if (oEvent.isMarked("invalid")) {
293
+ return;
294
+ }
295
+
296
+ var sValue = this.getDOMValue();
297
+
298
+ if (sValue !== this._sPreviousValue) {
299
+ this.fireLiveChange({
300
+ value: sValue,
301
+ previousValue : this._sPreviousValue
302
+ });
303
+ this._sPreviousValue = sValue;
304
+ }
305
+ };
306
+
307
+ /**
308
+ * Gets the inner input DOM value.
309
+ *
310
+ * @protected
311
+ * @returns {any} The value of the input.
312
+ */
313
+ DateTimeField.prototype.getDOMValue = function() {
314
+ return this._$input.val();
248
315
  };
249
316
 
250
317
  DateTimeField.prototype._getValueStateHeader = function () {
@@ -62,7 +62,7 @@ function(
62
62
  * @extends sap.ui.core.Control
63
63
  *
64
64
  * @author SAP SE
65
- * @version 1.102.2
65
+ * @version 1.104.0
66
66
  *
67
67
  * @constructor
68
68
  * @public
@@ -27,7 +27,8 @@ sap.ui.define([
27
27
  './Button',
28
28
  "sap/ui/events/KeyCodes",
29
29
  "sap/ui/core/IconPool",
30
- "sap/ui/qunit/utils/waitForThemeApplied"
30
+ "sap/ui/qunit/utils/waitForThemeApplied",
31
+ "sap/ui/dom/jquery/cursorPos" // provides jQuery.fn.cursorPos
31
32
  ], function(
32
33
  jQuery,
33
34
  InputBase,
@@ -145,7 +146,7 @@ sap.ui.define([
145
146
  * mobile devices, it opens in full screen.
146
147
  *
147
148
  * @extends sap.m.DatePicker
148
- * @version 1.102.2
149
+ * @version 1.104.0
149
150
  *
150
151
  * @constructor
151
152
  * @public
@@ -313,16 +314,27 @@ sap.ui.define([
313
314
  if (Device.system.phone || jQuery('html').hasClass("sapUiMedia-Std-Phone") || this.getForcePhoneView()) {
314
315
  oSwitcher.setVisible(true);
315
316
  oSwitcher.setSelectedKey("Cal");
316
- this.getCalendar().addDelegate({
317
- onAfterRendering: function() {
318
- this._switchVisibility(oSwitcher.getSelectedKey());
319
- }.bind(this)
320
- });
317
+ this.getCalendar().attachSelect(function () {
318
+ this._addCalendarDelegate();
319
+ }.bind(this));
320
+ this._addCalendarDelegate();
321
321
  } else {
322
322
  oSwitcher.setVisible(false);
323
323
  }
324
324
  },
325
325
 
326
+ _addCalendarDelegate: function () {
327
+ var oSwitcher = this.getAggregation("_switcher"),
328
+ oOnAfterRenderingDelegate = {
329
+ onAfterRendering: function() {
330
+ this._switchVisibility(oSwitcher.getSelectedKey());
331
+ this.getCalendar().removeDelegate(oOnAfterRenderingDelegate);
332
+ }.bind(this)
333
+ };
334
+
335
+ this.getCalendar().addDelegate(oOnAfterRenderingDelegate);
336
+ },
337
+
326
338
  _handleSelect: function(oEvent) {
327
339
 
328
340
  var sKey = oEvent.getParameter("key");
@@ -377,29 +389,34 @@ sap.ui.define([
377
389
  this._bOnlyCalendar = false;
378
390
  };
379
391
 
380
- DateTimePicker.prototype.setValue = function(sValue) {
381
- var sFallbackValue;
382
-
383
- DatePicker.prototype.setValue.apply(this, arguments);
384
-
392
+ DateTimePicker.prototype._formatValueAndUpdateOutput = function(oDate, sValue) {
385
393
  delete this._prefferedValue;
386
394
 
387
- if (!this.getDateValue()) {
388
- sFallbackValue = this._fallbackParse(sValue);
395
+ if (!this.getDomRef()) {
396
+ return;
397
+ }
389
398
 
399
+ // convert to output
400
+ var sOutputValue = oDate ? this._formatValue(oDate) : sValue;
401
+ if (!oDate) {
402
+ var sFallbackValue = this._fallbackParse(sValue);
390
403
  if (typeof sFallbackValue === "string") {
391
404
  this._bValid = true;
392
405
  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
- }
406
+ sOutputValue = sFallbackValue;
399
407
  }
400
408
  }
401
409
 
402
- return this;
410
+ if (this._bPreferUserInteraction) {
411
+ // Handle the value concurrency before setting the value property of the control,
412
+ // in order to distinguish whether the user only focused the input field or typed in it
413
+ this.handleInputValueConcurrency(sOutputValue);
414
+ } else if (this._$input.val() !== sOutputValue) {
415
+ // update the DOM value when necessary
416
+ // otherwise cursor can go to the end of text unnecessarily
417
+ this._$input.val(sOutputValue);
418
+ this._curpos = this._$input.cursorPos();
419
+ }
403
420
  };
404
421
 
405
422
  DateTimePicker.prototype.setTimezone = function(sTimezone) {
@@ -422,7 +439,7 @@ sap.ui.define([
422
439
  this._oValueFormatWithTimezone = null;
423
440
 
424
441
  if (this._oTimezonePopup) {
425
- this._oTimezonePopup.setTitle(sTimezone);
442
+ this._oTimezonePopup.setTitle(this._getTranslatedTimezone(true));
426
443
  }
427
444
 
428
445
  // the dateValue should be adjusted, and the value re-formatted
@@ -445,6 +462,8 @@ sap.ui.define([
445
462
  };
446
463
 
447
464
  DateTimePicker.prototype.onAfterRendering = function() {
465
+ DatePicker.prototype.onAfterRendering.apply(this, arguments);
466
+
448
467
  if (this._getShowTimezone()) {
449
468
  waitForThemeApplied().then(function() {
450
469
  var oDummyContentDomRef = this.$().find(".sapMDummyContent"),
@@ -558,7 +577,7 @@ sap.ui.define([
558
577
  var oResourceBundle;
559
578
 
560
579
  if (this._oTimezonePopup) {
561
- this._oTimezonePopup.setTitle(this._getTimezone(true));
580
+ this._oTimezonePopup.setTitle(this._getTranslatedTimezone(true));
562
581
  return this._oTimezonePopup;
563
582
  }
564
583
 
@@ -608,7 +627,7 @@ sap.ui.define([
608
627
 
609
628
  /**
610
629
  * Gets the format options of the value or dateValue binding.
611
- * @returns {object} The binding format options or undefined.
630
+ * @returns {object|undefined} The binding format options or undefined.
612
631
  * @private
613
632
  */
614
633
  DateTimePicker.prototype._getBindingFormatOptions = function() {
@@ -710,6 +729,17 @@ sap.ui.define([
710
729
  return this.getTimezone() || (bUseDefaultAsFallback && Core.getConfiguration().getTimezone());
711
730
  };
712
731
 
732
+
733
+ /**
734
+ * Gets the timezone that will be used by the control translated to the cofiguration language.
735
+ * @param {boolean} bUseDefaultAsFallback Whether to use the application default as a fallback.
736
+ * @returns {string} The translated timezone.
737
+ * @private
738
+ */
739
+ DateTimePicker.prototype._getTranslatedTimezone = function(bUseDefaultAsFallback) {
740
+ return LocaleData.getInstance(Core.getConfiguration().getFormatSettings().getFormatLocale()).getTimezoneTranslations()[this._getTimezone(bUseDefaultAsFallback)];
741
+ };
742
+
713
743
  DateTimePicker.prototype._checkStyle = function(sPattern){
714
744
 
715
745
  if (DatePicker.prototype._checkStyle.apply(this, arguments)) {
@@ -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._getTimezone(true);
42
+ var sTimezone = oControl._getTranslatedTimezone(true);
43
43
 
44
44
  if (!oControl._getShowTimezone()) {
45
45
  return;
@@ -175,7 +175,7 @@ function(
175
175
  *
176
176
  * @implements sap.ui.core.PopupInterface
177
177
  * @author SAP SE
178
- * @version 1.102.2
178
+ * @version 1.104.0
179
179
  *
180
180
  * @constructor
181
181
  * @public
@@ -1109,9 +1109,10 @@ function(
1109
1109
  }
1110
1110
 
1111
1111
  $this.css(oStyles);
1112
+ $this.css(this._calcMaxSizes());
1112
1113
 
1113
1114
  if (!this._oManuallySetSize && !this._bDisableRepositioning) {
1114
- this._positionDialog();
1115
+ $this.css(this._calcPosition());
1115
1116
  }
1116
1117
 
1117
1118
  //In Chrome when the dialog is stretched the footer is not rendered in the right position;
@@ -1257,14 +1258,6 @@ function(
1257
1258
  iMaxHeight = this._percentOfSize(oAreaDimensions.height, 100 - 2 * VERTICAL_MARGIN) - iHeightAsPadding; // 94% of available height minus paddings for headers and footer
1258
1259
  }
1259
1260
 
1260
- if (iMaxHeight < parseInt($this.css("min-height"))) {
1261
- Log.error("Height of Within Area is not enough to fit dialog");
1262
- }
1263
-
1264
- if (iMaxWidth < parseInt($this.css("min-width"))) {
1265
- Log.error("Width of Within Area is not enough to fit dialog");
1266
- }
1267
-
1268
1261
  return {
1269
1262
  maxWidth: Math.floor(iMaxWidth),
1270
1263
  maxHeight: Math.floor(iMaxHeight)
@@ -30,7 +30,7 @@ sap.ui.define([
30
30
  * @extends sap.m.ListItemBase
31
31
  *
32
32
  * @author SAP SE
33
- * @version 1.102.2
33
+ * @version 1.104.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.102.2
30
+ * @version 1.104.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.102.2
39
+ * @version 1.104.0
40
40
  *
41
41
  * @constructor
42
42
  * @public