@openui5/sap.m 1.92.0 → 1.95.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 (463) hide show
  1. package/.reuse/dep5 +1 -6
  2. package/THIRDPARTY.txt +4 -10
  3. package/package.json +4 -4
  4. package/src/sap/m/.library +1 -1
  5. package/src/sap/m/AccButton.js +1 -1
  6. package/src/sap/m/ActionListItem.js +1 -1
  7. package/src/sap/m/ActionSelect.js +1 -1
  8. package/src/sap/m/ActionSheet.js +1 -1
  9. package/src/sap/m/App.js +5 -1
  10. package/src/sap/m/AssociativeOverflowToolbar.js +1 -1
  11. package/src/sap/m/Avatar.js +1 -4
  12. package/src/sap/m/Bar.js +26 -7
  13. package/src/sap/m/Breadcrumbs.js +2 -2
  14. package/src/sap/m/BusyDialog.js +1 -1
  15. package/src/sap/m/BusyIndicator.js +1 -1
  16. package/src/sap/m/Button.js +42 -6
  17. package/src/sap/m/Carousel.js +11 -3
  18. package/src/sap/m/CarouselLayout.js +1 -1
  19. package/src/sap/m/CheckBox.js +9 -4
  20. package/src/sap/m/CheckBoxRenderer.js +12 -3
  21. package/src/sap/m/ColorPalette.js +1 -1
  22. package/src/sap/m/ColorPalettePopover.js +1 -1
  23. package/src/sap/m/Column.js +9 -1
  24. package/src/sap/m/ColumnHeaderPopover.js +1 -1
  25. package/src/sap/m/ColumnListItem.js +8 -2
  26. package/src/sap/m/ColumnPopoverActionItem.js +1 -1
  27. package/src/sap/m/ColumnPopoverCustomItem.js +1 -1
  28. package/src/sap/m/ColumnPopoverItem.js +1 -1
  29. package/src/sap/m/ColumnPopoverSelectListItem.js +1 -1
  30. package/src/sap/m/ColumnPopoverSortItem.js +1 -1
  31. package/src/sap/m/ComboBox.js +1 -1
  32. package/src/sap/m/ComboBoxBase.js +5 -2
  33. package/src/sap/m/ComboBoxRenderer.js +25 -9
  34. package/src/sap/m/ComboBoxTextField.js +1 -1
  35. package/src/sap/m/CustomDynamicDateOption.js +6 -2
  36. package/src/sap/m/CustomListItem.js +1 -1
  37. package/src/sap/m/CustomTile.js +1 -1
  38. package/src/sap/m/CustomTreeItem.js +1 -1
  39. package/src/sap/m/DatePicker.js +30 -3
  40. package/src/sap/m/DatePickerRenderer.js +1 -1
  41. package/src/sap/m/DateRangeSelection.js +2 -2
  42. package/src/sap/m/DateTimeField.js +69 -1
  43. package/src/sap/m/DateTimeInput.js +1 -1
  44. package/src/sap/m/DateTimePicker.js +15 -8
  45. package/src/sap/m/Dialog.js +31 -93
  46. package/src/sap/m/DialogRenderer.js +1 -1
  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 +67 -13
  50. package/src/sap/m/DynamicDateFormat.js +12 -1
  51. package/src/sap/m/DynamicDateOption.js +56 -16
  52. package/src/sap/m/DynamicDateRange.js +136 -23
  53. package/src/sap/m/DynamicDateUtil.js +20 -2
  54. package/src/sap/m/DynamicDateValueHelpUIType.js +1 -1
  55. package/src/sap/m/ExpandableText.js +4 -2
  56. package/src/sap/m/FacetFilter.js +47 -16
  57. package/src/sap/m/FacetFilterItem.js +1 -1
  58. package/src/sap/m/FacetFilterList.js +2 -2
  59. package/src/sap/m/FeedContent.js +1 -1
  60. package/src/sap/m/FeedInput.js +5 -2
  61. package/src/sap/m/FeedListItem.js +1 -1
  62. package/src/sap/m/FeedListItemAction.js +1 -1
  63. package/src/sap/m/Fiori20Adapter.js +2 -2
  64. package/src/sap/m/FlexBox.js +32 -67
  65. package/src/sap/m/FlexItemData.js +1 -1
  66. package/src/sap/m/FormattedText.js +1 -1
  67. package/src/sap/m/GenericTag.js +1 -1
  68. package/src/sap/m/GenericTile.js +9 -3
  69. package/src/sap/m/GenericTileRenderer.js +46 -8
  70. package/src/sap/m/GroupHeaderListItem.js +1 -1
  71. package/src/sap/m/GrowingEnablement.js +31 -34
  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 +53 -1
  75. package/src/sap/m/HeaderContainerItemNavigator.js +1 -1
  76. package/src/sap/m/IconTabBar.js +2 -2
  77. package/src/sap/m/IconTabBarSelectList.js +1 -1
  78. package/src/sap/m/IconTabFilter.js +75 -37
  79. package/src/sap/m/IconTabFilterExpandButtonBadge.js +1 -1
  80. package/src/sap/m/IconTabHeader.js +21 -7
  81. package/src/sap/m/IconTabHeaderRenderer.js +1 -0
  82. package/src/sap/m/IconTabSeparator.js +1 -1
  83. package/src/sap/m/Image.js +1 -1
  84. package/src/sap/m/ImageContent.js +1 -1
  85. package/src/sap/m/Input.js +131 -37
  86. package/src/sap/m/InputBase.js +13 -6
  87. package/src/sap/m/InputListItem.js +1 -1
  88. package/src/sap/m/Label.js +1 -1
  89. package/src/sap/m/LightBox.js +2 -2
  90. package/src/sap/m/LightBoxItem.js +1 -1
  91. package/src/sap/m/Link.js +2 -2
  92. package/src/sap/m/List.js +1 -1
  93. package/src/sap/m/ListBase.js +61 -24
  94. package/src/sap/m/ListItemBase.js +22 -21
  95. package/src/sap/m/MaskEnabler.js +1 -1
  96. package/src/sap/m/MaskInput.js +1 -1
  97. package/src/sap/m/MaskInputRule.js +1 -1
  98. package/src/sap/m/Menu.js +1 -1
  99. package/src/sap/m/MenuButton.js +21 -4
  100. package/src/sap/m/MenuButtonRenderer.js +1 -0
  101. package/src/sap/m/MenuItem.js +1 -1
  102. package/src/sap/m/MenuListItem.js +1 -1
  103. package/src/sap/m/MessageBox.js +31 -1
  104. package/src/sap/m/MessageItem.js +1 -1
  105. package/src/sap/m/MessageListItem.js +1 -1
  106. package/src/sap/m/MessagePage.js +1 -1
  107. package/src/sap/m/MessagePopover.js +1 -4
  108. package/src/sap/m/MessagePopoverItem.js +1 -1
  109. package/src/sap/m/MessageStrip.js +1 -1
  110. package/src/sap/m/MessageStripUtilities.js +15 -2
  111. package/src/sap/m/MessageToast.js +2 -2
  112. package/src/sap/m/MessageView.js +10 -10
  113. package/src/sap/m/MultiComboBox.js +164 -163
  114. package/src/sap/m/MultiEditField.js +1 -1
  115. package/src/sap/m/MultiInput.js +54 -6
  116. package/src/sap/m/NavContainer.js +20 -9
  117. package/src/sap/m/NewsContent.js +1 -1
  118. package/src/sap/m/NotificationList.js +1 -1
  119. package/src/sap/m/NotificationListBase.js +1 -1
  120. package/src/sap/m/NotificationListGroup.js +1 -1
  121. package/src/sap/m/NotificationListItem.js +1 -1
  122. package/src/sap/m/NumericContent.js +1 -1
  123. package/src/sap/m/ObjectAttribute.js +1 -1
  124. package/src/sap/m/ObjectHeader.js +1 -1
  125. package/src/sap/m/ObjectHeaderRenderer.js +9 -7
  126. package/src/sap/m/ObjectIdentifier.js +1 -1
  127. package/src/sap/m/ObjectListItem.js +1 -1
  128. package/src/sap/m/ObjectMarker.js +1 -1
  129. package/src/sap/m/ObjectNumber.js +13 -1
  130. package/src/sap/m/ObjectStatus.js +1 -1
  131. package/src/sap/m/OverflowToolbar.js +8 -2
  132. package/src/sap/m/OverflowToolbarAssociativePopover.js +1 -1
  133. package/src/sap/m/OverflowToolbarButton.js +1 -1
  134. package/src/sap/m/OverflowToolbarLayoutData.js +1 -1
  135. package/src/sap/m/OverflowToolbarToggleButton.js +1 -1
  136. package/src/sap/m/P13nAnyFilterItem.js +1 -1
  137. package/src/sap/m/P13nColumnsItem.js +1 -1
  138. package/src/sap/m/P13nColumnsPanel.js +1 -1
  139. package/src/sap/m/P13nConditionPanel.js +2 -2
  140. package/src/sap/m/P13nDialog.js +1 -1
  141. package/src/sap/m/P13nDimMeasureItem.js +1 -1
  142. package/src/sap/m/P13nDimMeasurePanel.js +1 -1
  143. package/src/sap/m/P13nFilterItem.js +1 -1
  144. package/src/sap/m/P13nFilterPanel.js +1 -1
  145. package/src/sap/m/P13nGroupItem.js +1 -1
  146. package/src/sap/m/P13nGroupPanel.js +1 -1
  147. package/src/sap/m/P13nItem.js +1 -1
  148. package/src/sap/m/P13nPanel.js +1 -1
  149. package/src/sap/m/P13nSelectionItem.js +1 -1
  150. package/src/sap/m/P13nSelectionPanel.js +1 -1
  151. package/src/sap/m/P13nSortItem.js +1 -1
  152. package/src/sap/m/P13nSortPanel.js +1 -1
  153. package/src/sap/m/PDFViewer.js +14 -5
  154. package/src/sap/m/Page.js +1 -1
  155. package/src/sap/m/PageAccessibleLandmarkInfo.js +1 -1
  156. package/src/sap/m/PagingButton.js +1 -1
  157. package/src/sap/m/Panel.js +1 -1
  158. package/src/sap/m/PlanningCalendar.js +260 -54
  159. package/src/sap/m/PlanningCalendarHeader.js +36 -5
  160. package/src/sap/m/PlanningCalendarLegend.js +1 -1
  161. package/src/sap/m/PlanningCalendarLegendRenderer.js +2 -0
  162. package/src/sap/m/PlanningCalendarRow.js +1 -1
  163. package/src/sap/m/PlanningCalendarView.js +26 -2
  164. package/src/sap/m/Popover.js +15 -6
  165. package/src/sap/m/ProgressIndicator.js +1 -1
  166. package/src/sap/m/PullToRefresh.js +1 -1
  167. package/src/sap/m/QuickView.js +1 -1
  168. package/src/sap/m/QuickViewBase.js +1 -1
  169. package/src/sap/m/QuickViewCard.js +1 -1
  170. package/src/sap/m/QuickViewGroup.js +1 -1
  171. package/src/sap/m/QuickViewGroupElement.js +1 -1
  172. package/src/sap/m/QuickViewPage.js +5 -5
  173. package/src/sap/m/RadioButton.js +1 -1
  174. package/src/sap/m/RadioButtonGroup.js +1 -1
  175. package/src/sap/m/RangeSlider.js +1 -1
  176. package/src/sap/m/RatingIndicator.js +78 -36
  177. package/src/sap/m/ResponsivePopover.js +1 -1
  178. package/src/sap/m/ResponsiveScale.js +1 -1
  179. package/src/sap/m/ScrollBar.js +1 -1
  180. package/src/sap/m/ScrollContainer.js +1 -1
  181. package/src/sap/m/SearchField.js +38 -20
  182. package/src/sap/m/SearchFieldRenderer.js +29 -15
  183. package/src/sap/m/SegmentedButton.js +12 -17
  184. package/src/sap/m/SegmentedButtonItem.js +1 -1
  185. package/src/sap/m/Select.js +36 -17
  186. package/src/sap/m/SelectDialog.js +21 -49
  187. package/src/sap/m/SelectDialogBase.js +148 -0
  188. package/src/sap/m/SelectList.js +13 -3
  189. package/src/sap/m/SelectRenderer.js +15 -3
  190. package/src/sap/m/SelectionDetails.js +5 -2
  191. package/src/sap/m/SelectionDetailsFacade.js +2 -2
  192. package/src/sap/m/SelectionDetailsItem.js +1 -1
  193. package/src/sap/m/SelectionDetailsItemLine.js +1 -1
  194. package/src/sap/m/Shell.js +9 -17
  195. package/src/sap/m/SimpleFixFlex.js +1 -1
  196. package/src/sap/m/SinglePlanningCalendar.js +4 -1
  197. package/src/sap/m/SinglePlanningCalendarDayView.js +1 -1
  198. package/src/sap/m/SinglePlanningCalendarGrid.js +57 -7
  199. package/src/sap/m/SinglePlanningCalendarGridRenderer.js +27 -19
  200. package/src/sap/m/SinglePlanningCalendarMonthGrid.js +11 -1
  201. package/src/sap/m/SinglePlanningCalendarMonthView.js +1 -1
  202. package/src/sap/m/SinglePlanningCalendarView.js +1 -1
  203. package/src/sap/m/SinglePlanningCalendarWeekView.js +1 -1
  204. package/src/sap/m/SinglePlanningCalendarWorkWeekView.js +1 -1
  205. package/src/sap/m/SlideTile.js +3 -3
  206. package/src/sap/m/Slider.js +1 -1
  207. package/src/sap/m/SliderRenderer.js +2 -2
  208. package/src/sap/m/SliderTooltip.js +1 -1
  209. package/src/sap/m/SliderTooltipBase.js +1 -1
  210. package/src/sap/m/SliderTooltipContainer.js +1 -1
  211. package/src/sap/m/SplitApp.js +1 -1
  212. package/src/sap/m/SplitButton.js +3 -7
  213. package/src/sap/m/SplitContainer.js +4 -5
  214. package/src/sap/m/StandardDynamicDateOption.js +45 -10
  215. package/src/sap/m/StandardListItem.js +63 -13
  216. package/src/sap/m/StandardListItemRenderer.js +21 -9
  217. package/src/sap/m/StandardTile.js +1 -1
  218. package/src/sap/m/StandardTreeItem.js +1 -1
  219. package/src/sap/m/StepInput.js +22 -5
  220. package/src/sap/m/Suggest.js +25 -25
  221. package/src/sap/m/SuggestionItem.js +1 -1
  222. package/src/sap/m/SuggestionsPopover.js +1 -1
  223. package/src/sap/m/Switch.js +1 -1
  224. package/src/sap/m/TabContainer.js +1 -1
  225. package/src/sap/m/TabContainerItem.js +1 -1
  226. package/src/sap/m/TabStrip.js +1 -1
  227. package/src/sap/m/TabStripItem.js +1 -1
  228. package/src/sap/m/Table.js +49 -9
  229. package/src/sap/m/TablePersoController.js +1 -1
  230. package/src/sap/m/TablePersoDialog.js +1 -1
  231. package/src/sap/m/TablePersoProvider.js +1 -1
  232. package/src/sap/m/TableRenderer.js +6 -5
  233. package/src/sap/m/TableSelectDialog.js +21 -46
  234. package/src/sap/m/Text.js +2 -2
  235. package/src/sap/m/TextArea.js +2 -2
  236. package/src/sap/m/Tile.js +1 -1
  237. package/src/sap/m/TileContainer.js +2 -2
  238. package/src/sap/m/TileContent.js +1 -1
  239. package/src/sap/m/TimePicker.js +11 -5
  240. package/src/sap/m/TimePickerClock.js +2 -2
  241. package/src/sap/m/TimePickerClocks.js +4 -1
  242. package/src/sap/m/TimePickerInputs.js +5 -3
  243. package/src/sap/m/TimePickerInternals.js +1 -1
  244. package/src/sap/m/TimePickerSlider.js +2 -2
  245. package/src/sap/m/TimePickerSliders.js +1 -1
  246. package/src/sap/m/TimePickerSlidersRenderer.js +0 -1
  247. package/src/sap/m/Title.js +1 -1
  248. package/src/sap/m/TitlePropagationSupport.js +1 -1
  249. package/src/sap/m/ToggleButton.js +1 -1
  250. package/src/sap/m/Token.js +1 -1
  251. package/src/sap/m/Tokenizer.js +45 -3
  252. package/src/sap/m/TokenizerRenderer.js +6 -0
  253. package/src/sap/m/Toolbar.js +1 -1
  254. package/src/sap/m/ToolbarLayoutData.js +1 -1
  255. package/src/sap/m/ToolbarSeparator.js +1 -1
  256. package/src/sap/m/ToolbarSpacer.js +1 -1
  257. package/src/sap/m/Tree.js +1 -1
  258. package/src/sap/m/TreeItemBase.js +4 -4
  259. package/src/sap/m/UploadCollection.js +2 -2
  260. package/src/sap/m/UploadCollectionItem.js +1 -1
  261. package/src/sap/m/UploadCollectionParameter.js +1 -1
  262. package/src/sap/m/UploadCollectionToolbarPlaceholder.js +1 -1
  263. package/src/sap/m/VBox.js +1 -1
  264. package/src/sap/m/ValueStateHeader.js +1 -1
  265. package/src/sap/m/ViewSettingsCustomItem.js +1 -1
  266. package/src/sap/m/ViewSettingsCustomTab.js +1 -1
  267. package/src/sap/m/ViewSettingsDialog.js +7 -7
  268. package/src/sap/m/ViewSettingsFilterItem.js +1 -1
  269. package/src/sap/m/ViewSettingsItem.js +1 -1
  270. package/src/sap/m/VisibleItem.js +1 -1
  271. package/src/sap/m/WheelSlider.js +2 -2
  272. package/src/sap/m/WheelSliderContainer.js +1 -1
  273. package/src/sap/m/Wizard.js +1 -1
  274. package/src/sap/m/WizardProgressNavigator.js +1 -1
  275. package/src/sap/m/WizardStep.js +1 -1
  276. package/src/sap/m/changeHandler/AddTableColumn.js +76 -44
  277. package/src/sap/m/changeHandler/ChangeLinkTarget.js +18 -23
  278. package/src/sap/m/changeHandler/CombineButtons.js +281 -175
  279. package/src/sap/m/changeHandler/MoveTableColumns.js +143 -111
  280. package/src/sap/m/changeHandler/SelectIconTabBarFilter.js +77 -0
  281. package/src/sap/m/changeHandler/SplitMenuButton.js +147 -93
  282. package/src/sap/m/designtime/IconTabBar.designtime.js +82 -2
  283. package/src/sap/m/designtime/IconTabBarSelectTab.fragment.xml +17 -0
  284. package/src/sap/m/designtime/ObjectIdentifier.designtime.js +16 -12
  285. package/src/sap/m/designtime/messagebundle.properties +9 -0
  286. package/src/sap/m/designtime/messagebundle_ar.properties +6 -0
  287. package/src/sap/m/designtime/messagebundle_bg.properties +6 -0
  288. package/src/sap/m/designtime/messagebundle_ca.properties +6 -0
  289. package/src/sap/m/designtime/messagebundle_cs.properties +6 -0
  290. package/src/sap/m/designtime/messagebundle_cy.properties +6 -0
  291. package/src/sap/m/designtime/messagebundle_da.properties +6 -0
  292. package/src/sap/m/designtime/messagebundle_de.properties +6 -0
  293. package/src/sap/m/designtime/messagebundle_el.properties +6 -0
  294. package/src/sap/m/designtime/messagebundle_en.properties +6 -0
  295. package/src/sap/m/designtime/messagebundle_en_GB.properties +6 -0
  296. package/src/sap/m/designtime/messagebundle_en_US_sappsd.properties +6 -0
  297. package/src/sap/m/designtime/messagebundle_en_US_saptrc.properties +6 -0
  298. package/src/sap/m/designtime/messagebundle_es.properties +6 -0
  299. package/src/sap/m/designtime/messagebundle_es_MX.properties +6 -0
  300. package/src/sap/m/designtime/messagebundle_et.properties +6 -0
  301. package/src/sap/m/designtime/messagebundle_fi.properties +6 -0
  302. package/src/sap/m/designtime/messagebundle_fr.properties +6 -0
  303. package/src/sap/m/designtime/messagebundle_fr_CA.properties +6 -0
  304. package/src/sap/m/designtime/messagebundle_hi.properties +6 -0
  305. package/src/sap/m/designtime/messagebundle_hr.properties +6 -0
  306. package/src/sap/m/designtime/messagebundle_hu.properties +6 -0
  307. package/src/sap/m/designtime/messagebundle_id.properties +6 -0
  308. package/src/sap/m/designtime/messagebundle_it.properties +6 -0
  309. package/src/sap/m/designtime/messagebundle_iw.properties +6 -0
  310. package/src/sap/m/designtime/messagebundle_ja.properties +6 -0
  311. package/src/sap/m/designtime/messagebundle_kk.properties +6 -0
  312. package/src/sap/m/designtime/messagebundle_ko.properties +6 -0
  313. package/src/sap/m/designtime/messagebundle_lt.properties +6 -0
  314. package/src/sap/m/designtime/messagebundle_lv.properties +6 -0
  315. package/src/sap/m/designtime/messagebundle_ms.properties +6 -0
  316. package/src/sap/m/designtime/messagebundle_nl.properties +6 -0
  317. package/src/sap/m/designtime/messagebundle_no.properties +6 -0
  318. package/src/sap/m/designtime/messagebundle_pl.properties +6 -0
  319. package/src/sap/m/designtime/messagebundle_pt.properties +6 -0
  320. package/src/sap/m/designtime/messagebundle_pt_PT.properties +6 -0
  321. package/src/sap/m/designtime/messagebundle_ro.properties +6 -0
  322. package/src/sap/m/designtime/messagebundle_ru.properties +6 -0
  323. package/src/sap/m/designtime/messagebundle_sh.properties +6 -0
  324. package/src/sap/m/designtime/messagebundle_sk.properties +6 -0
  325. package/src/sap/m/designtime/messagebundle_sl.properties +6 -0
  326. package/src/sap/m/designtime/messagebundle_sv.properties +6 -0
  327. package/src/sap/m/designtime/messagebundle_th.properties +6 -0
  328. package/src/sap/m/designtime/messagebundle_tr.properties +6 -0
  329. package/src/sap/m/designtime/messagebundle_uk.properties +6 -0
  330. package/src/sap/m/designtime/messagebundle_vi.properties +6 -0
  331. package/src/sap/m/designtime/messagebundle_zh_CN.properties +6 -0
  332. package/src/sap/m/designtime/messagebundle_zh_TW.properties +6 -0
  333. package/src/sap/m/flexibility/IconTabBar.flexibility.js +21 -0
  334. package/src/sap/m/inputUtils/calculateSelectionStart.js +1 -1
  335. package/src/sap/m/inputUtils/wordStartsWithValue.js +5 -1
  336. package/src/sap/m/library.js +28 -5
  337. package/src/sap/m/messagebundle.properties +22 -5
  338. package/src/sap/m/messagebundle_ar.properties +13 -0
  339. package/src/sap/m/messagebundle_bg.properties +13 -0
  340. package/src/sap/m/messagebundle_ca.properties +13 -0
  341. package/src/sap/m/messagebundle_cs.properties +24 -11
  342. package/src/sap/m/messagebundle_cy.properties +13 -0
  343. package/src/sap/m/messagebundle_da.properties +14 -1
  344. package/src/sap/m/messagebundle_de.properties +18 -5
  345. package/src/sap/m/messagebundle_el.properties +14 -1
  346. package/src/sap/m/messagebundle_en.properties +15 -2
  347. package/src/sap/m/messagebundle_en_GB.properties +13 -0
  348. package/src/sap/m/messagebundle_en_US_sappsd.properties +15 -2
  349. package/src/sap/m/messagebundle_en_US_saptrc.properties +18 -5
  350. package/src/sap/m/messagebundle_es.properties +13 -0
  351. package/src/sap/m/messagebundle_es_MX.properties +16 -3
  352. package/src/sap/m/messagebundle_et.properties +13 -0
  353. package/src/sap/m/messagebundle_fi.properties +13 -0
  354. package/src/sap/m/messagebundle_fr.properties +19 -6
  355. package/src/sap/m/messagebundle_fr_CA.properties +13 -0
  356. package/src/sap/m/messagebundle_hi.properties +13 -0
  357. package/src/sap/m/messagebundle_hr.properties +13 -0
  358. package/src/sap/m/messagebundle_hu.properties +13 -0
  359. package/src/sap/m/messagebundle_id.properties +15 -2
  360. package/src/sap/m/messagebundle_it.properties +19 -6
  361. package/src/sap/m/messagebundle_iw.properties +13 -0
  362. package/src/sap/m/messagebundle_ja.properties +13 -0
  363. package/src/sap/m/messagebundle_kk.properties +13 -0
  364. package/src/sap/m/messagebundle_ko.properties +14 -1
  365. package/src/sap/m/messagebundle_lt.properties +13 -0
  366. package/src/sap/m/messagebundle_lv.properties +13 -0
  367. package/src/sap/m/messagebundle_ms.properties +14 -1
  368. package/src/sap/m/messagebundle_nl.properties +15 -2
  369. package/src/sap/m/messagebundle_no.properties +25 -12
  370. package/src/sap/m/messagebundle_pl.properties +17 -4
  371. package/src/sap/m/messagebundle_pt.properties +16 -3
  372. package/src/sap/m/messagebundle_pt_PT.properties +13 -0
  373. package/src/sap/m/messagebundle_ro.properties +18 -5
  374. package/src/sap/m/messagebundle_ru.properties +14 -1
  375. package/src/sap/m/messagebundle_sh.properties +14 -1
  376. package/src/sap/m/messagebundle_sk.properties +13 -0
  377. package/src/sap/m/messagebundle_sl.properties +13 -0
  378. package/src/sap/m/messagebundle_sv.properties +13 -0
  379. package/src/sap/m/messagebundle_th.properties +13 -0
  380. package/src/sap/m/messagebundle_tr.properties +13 -0
  381. package/src/sap/m/messagebundle_uk.properties +16 -3
  382. package/src/sap/m/messagebundle_vi.properties +14 -1
  383. package/src/sap/m/messagebundle_zh_CN.properties +13 -0
  384. package/src/sap/m/messagebundle_zh_TW.properties +13 -0
  385. package/src/sap/m/plugins/ColumnResizer.js +23 -2
  386. package/src/sap/m/plugins/DataStateIndicator.js +5 -3
  387. package/src/sap/m/plugins/PasteProvider.js +9 -1
  388. package/src/sap/m/plugins/PluginBase.js +1 -1
  389. package/src/sap/m/routing/TargetHandler.js +15 -18
  390. package/src/sap/m/routing/async/Target.js +3 -2
  391. package/src/sap/m/semantic/AddAction.js +1 -1
  392. package/src/sap/m/semantic/CancelAction.js +1 -1
  393. package/src/sap/m/semantic/DeleteAction.js +1 -1
  394. package/src/sap/m/semantic/DetailPage.js +1 -1
  395. package/src/sap/m/semantic/DiscussInJamAction.js +1 -1
  396. package/src/sap/m/semantic/EditAction.js +1 -1
  397. package/src/sap/m/semantic/FavoriteAction.js +1 -1
  398. package/src/sap/m/semantic/FilterAction.js +1 -1
  399. package/src/sap/m/semantic/FilterSelect.js +1 -1
  400. package/src/sap/m/semantic/FlagAction.js +1 -1
  401. package/src/sap/m/semantic/ForwardAction.js +1 -1
  402. package/src/sap/m/semantic/FullscreenPage.js +1 -1
  403. package/src/sap/m/semantic/GroupAction.js +1 -1
  404. package/src/sap/m/semantic/GroupSelect.js +1 -1
  405. package/src/sap/m/semantic/MainAction.js +1 -1
  406. package/src/sap/m/semantic/MasterPage.js +1 -1
  407. package/src/sap/m/semantic/MessagesIndicator.js +1 -1
  408. package/src/sap/m/semantic/MultiSelectAction.js +1 -1
  409. package/src/sap/m/semantic/NegativeAction.js +1 -1
  410. package/src/sap/m/semantic/OpenInAction.js +1 -1
  411. package/src/sap/m/semantic/PositiveAction.js +1 -1
  412. package/src/sap/m/semantic/PrintAction.js +1 -1
  413. package/src/sap/m/semantic/SaveAction.js +1 -1
  414. package/src/sap/m/semantic/Segment.js +1 -1
  415. package/src/sap/m/semantic/SegmentedContainer.js +1 -1
  416. package/src/sap/m/semantic/SemanticButton.js +1 -1
  417. package/src/sap/m/semantic/SemanticConfiguration.js +1 -1
  418. package/src/sap/m/semantic/SemanticControl.js +1 -1
  419. package/src/sap/m/semantic/SemanticOverflowToolbarButton.js +1 -1
  420. package/src/sap/m/semantic/SemanticOverflowToolbarToggleButton.js +2 -2
  421. package/src/sap/m/semantic/SemanticPage.js +1 -1
  422. package/src/sap/m/semantic/SemanticSelect.js +1 -1
  423. package/src/sap/m/semantic/SemanticToggleButton.js +1 -1
  424. package/src/sap/m/semantic/SendEmailAction.js +1 -1
  425. package/src/sap/m/semantic/SendMessageAction.js +1 -1
  426. package/src/sap/m/semantic/ShareInJamAction.js +1 -1
  427. package/src/sap/m/semantic/ShareMenu.js +1 -1
  428. package/src/sap/m/semantic/ShareMenuPage.js +1 -1
  429. package/src/sap/m/semantic/SortAction.js +1 -1
  430. package/src/sap/m/semantic/SortSelect.js +1 -1
  431. package/src/sap/m/themes/base/CheckBox.less +1 -1
  432. package/src/sap/m/themes/base/ColumnListItem.less +2 -2
  433. package/src/sap/m/themes/base/Dialog.less +11 -28
  434. package/src/sap/m/themes/base/FeedInput.less +5 -6
  435. package/src/sap/m/themes/base/GenericTile.less +129 -6
  436. package/src/sap/m/themes/base/IconTabBar.less +169 -61
  437. package/src/sap/m/themes/base/IconTabBarSelectList.less +8 -0
  438. package/src/sap/m/themes/base/Input.less +12 -0
  439. package/src/sap/m/themes/base/ListBase.less +7 -5
  440. package/src/sap/m/themes/base/MessagePage.less +1 -7
  441. package/src/sap/m/themes/base/MessageView.less +4 -0
  442. package/src/sap/m/themes/base/ObjectHeader.less +2 -1
  443. package/src/sap/m/themes/base/ObjectMarker.less +3 -0
  444. package/src/sap/m/themes/base/ObjectNumber.less +1 -1
  445. package/src/sap/m/themes/base/ObjectStatus.less +19 -2
  446. package/src/sap/m/themes/base/OverflowToolbarAssociativePopover.less +0 -6
  447. package/src/sap/m/themes/base/PlanningCalendar.less +23 -7
  448. package/src/sap/m/themes/base/Popover.less +1 -1
  449. package/src/sap/m/themes/base/ProgressIndicator.less +7 -6
  450. package/src/sap/m/themes/base/RadioButton.less +3 -0
  451. package/src/sap/m/themes/base/SearchField.less +1 -1
  452. package/src/sap/m/themes/base/StandardListItem.less +9 -0
  453. package/src/sap/m/themes/base/Table.less +14 -23
  454. package/src/sap/m/themes/base/TextArea.less +1 -1
  455. package/src/sap/m/themes/base/TimePicker.less +5 -1
  456. package/src/sap/m/themes/base/TimePickerSliders.less +1 -5
  457. package/src/sap/m/themes/base/Tokenizer.less +6 -0
  458. package/src/sap/m/themes/base/Toolbar.less +6 -0
  459. package/src/sap/m/themes/base/UploadSet.less +5 -0
  460. package/src/sap/m/themes/base/ViewSettingsDialog.less +29 -2
  461. package/src/sap/m/themes/sap_hcb/IconTabBar.less +3 -3
  462. package/src/sap/m/upload/UploadSet.js +35 -6
  463. package/src/sap/m/upload/UploadSetItem.js +18 -3
@@ -79,6 +79,9 @@ function(
79
79
  // shortcut for sap.ui.core.ValueState
80
80
  var ValueState = coreLibrary.ValueState;
81
81
 
82
+ // shortcut for sap.ui.core.TitleLevel
83
+ var TitleLevel = coreLibrary.TitleLevel;
84
+
82
85
  // shortcut for sap.m.TitleAlignment
83
86
  var TitleAlignment = library.TitleAlignment;
84
87
 
@@ -172,7 +175,7 @@ function(
172
175
  *
173
176
  * @implements sap.ui.core.PopupInterface
174
177
  * @author SAP SE
175
- * @version 1.92.0
178
+ * @version 1.95.0
176
179
  *
177
180
  * @constructor
178
181
  * @public
@@ -322,13 +325,13 @@ function(
322
325
  customHeader: {type: "sap.m.IBar", multiple: false},
323
326
 
324
327
  /**
325
- * The button which is rendered to the left side (right side in RTL mode) of the <code>endButton</code> in the footer area inside the Dialog. As of version 1.21.1, there's a new aggregation <code>buttons</code> created with which more than 2 buttons can be added to the footer area of the Dialog. If the new <code>buttons</code> aggregation is set, any change made to this aggregation has no effect anymore. When running on a phone, this <code>button</code> (and the <code>endButton</code> together when set) is (are) rendered at the center of the footer area. When running on other platforms, this <code>button</code> (and the <code>endButton</code> together when set) is (are) rendered at the right side (left side in RTL mode) of the footer area.
328
+ * The button which is rendered to the left side (right side in RTL mode) of the <code>endButton</code> in the footer area inside the Dialog. As of version 1.21.1, there's a new aggregation <code>buttons</code> created with which more than 2 buttons can be added to the footer area of the Dialog. If the new <code>buttons</code> aggregation is set, any change made to this aggregation has no effect anymore. With the Belize themes when running on a phone, this <code>button</code> (and the <code>endButton</code> together when set) is (are) rendered at the center of the footer area. While with the Quartz themes when running on a phone, this <code>button</code> (and the <code>endButton</code> together when set) is (are) rendered on the right side of the footer area. When running on other platforms, this <code>button</code> (and the <code>endButton</code> together when set) is (are) rendered at the right side (left side in RTL mode) of the footer area.
326
329
  * @since 1.15.1
327
330
  */
328
331
  beginButton: {type: "sap.m.Button", multiple: false},
329
332
 
330
333
  /**
331
- * The button which is rendered to the right side (left side in RTL mode) of the <code>beginButton</code> in the footer area inside the Dialog. As of version 1.21.1, there's a new aggregation <code>buttons</code> created with which more than 2 buttons can be added to the footer area of Dialog. If the new <code>buttons</code> aggregation is set, any change made to this aggregation has no effect anymore. When running on a phone, this <code>button</code> (and the <code>beginButton</code> together when set) is (are) rendered at the center of the footer area. When running on other platforms, this <code>button</code> (and the <code>beginButton</code> together when set) is (are) rendered at the right side (left side in RTL mode) of the footer area.
334
+ * The button which is rendered to the right side (left side in RTL mode) of the <code>beginButton</code> in the footer area inside the Dialog. As of version 1.21.1, there's a new aggregation <code>buttons</code> created with which more than 2 buttons can be added to the footer area of Dialog. If the new <code>buttons</code> aggregation is set, any change made to this aggregation has no effect anymore. With the Belize themes when running on a phone, this <code>button</code> (and the <code>beginButton</code> together when set) is (are) rendered at the center of the footer area. While with the Quartz themes when running on a phone, this <code>button</code> (and the <code>beginButton</code> together when set) is (are) rendered on the right side of the footer area. When running on other platforms, this <code>button</code> (and the <code>beginButton</code> together when set) is (are) rendered at the right side (left side in RTL mode) of the footer area.
332
335
  * @since 1.15.1
333
336
  */
334
337
  endButton: {type: "sap.m.Button", multiple: false},
@@ -513,7 +516,7 @@ function(
513
516
  };
514
517
 
515
518
  Dialog.prototype.onBeforeRendering = function () {
516
- var oHeader = this.getCustomHeader() || this._header;
519
+ var oHeader = this._getAnyHeader();
517
520
 
518
521
  if (!Dialog._bPaddingByDefault && this.hasStyleClass("sapUiPopupWithPadding")) {
519
522
  Log.warning("Usage of CSS class 'sapUiPopupWithPadding' is deprecated. Use 'sapUiContentPadding' instead", null, "sap.m.Dialog");
@@ -551,6 +554,11 @@ function(
551
554
  if (oHeader && oHeader.setTitleAlignment) {
552
555
  oHeader.setProperty("titleAlignment", this.getTitleAlignment(), true);
553
556
  }
557
+
558
+ if (oHeader && this._getTitles(oHeader).length === 0) {
559
+ oHeader._setRootAccessibilityRole("heading");
560
+ oHeader._setRootAriaLevel("2");
561
+ }
554
562
  };
555
563
 
556
564
  Dialog.prototype.onAfterRendering = function () {
@@ -924,7 +932,11 @@ function(
924
932
  }
925
933
 
926
934
  var $this = this._$dialog,
927
- mOffset = $this.offset(),
935
+ oBoundingClientRect = this.getDomRef().getBoundingClientRect(),
936
+ mOffset = {
937
+ left: oBoundingClientRect.x,
938
+ top: oBoundingClientRect.y
939
+ },
928
940
  oAreaDimensions = this._getAreaDimensions(),
929
941
  iDialogWidth = $this.width(),
930
942
  iDialogHeight = $this.height(),
@@ -933,7 +945,6 @@ function(
933
945
  mStyles,
934
946
  iMaxHeight;
935
947
 
936
-
937
948
  this._bDisableRepositioning = true;
938
949
  $this.addClass('sapDialogDisableTransition');
939
950
 
@@ -1286,8 +1297,6 @@ function(
1286
1297
  this._header = new Bar(this.getId() + "-header", {
1287
1298
  titleAlignment: this.getTitleAlignment()
1288
1299
  });
1289
- this._header._setRootAccessibilityRole("heading");
1290
- this._header._setRootAriaLevel("2");
1291
1300
 
1292
1301
  this.setAggregation("_header", this._header);
1293
1302
  }
@@ -1304,7 +1313,7 @@ function(
1304
1313
  } else {
1305
1314
  this._headerTitle = new Title(this.getId() + "-title", {
1306
1315
  text: sTitle,
1307
- level: "H2"
1316
+ level: TitleLevel.H2
1308
1317
  }).addStyleClass("sapMDialogTitle");
1309
1318
 
1310
1319
  this._header.addContentMiddle(this._headerTitle);
@@ -1475,26 +1484,6 @@ function(
1475
1484
  return this._oScroller;
1476
1485
  };
1477
1486
 
1478
- /**
1479
- *
1480
- * @param {string} sPos
1481
- * @returns {string}
1482
- * @private
1483
- */
1484
- Dialog.prototype._composeAggreNameInHeader = function (sPos) {
1485
- var sHeaderAggregationName;
1486
-
1487
- if (sPos === "Begin") {
1488
- sHeaderAggregationName = "contentLeft";
1489
- } else if (sPos === "End") {
1490
- sHeaderAggregationName = "contentRight";
1491
- } else {
1492
- sHeaderAggregationName = "content" + sPos;
1493
- }
1494
-
1495
- return sHeaderAggregationName;
1496
- };
1497
-
1498
1487
  /**
1499
1488
  *
1500
1489
  * @returns {boolean}
@@ -1509,60 +1498,6 @@ function(
1509
1498
  return filteredContent.length === 0;
1510
1499
  };
1511
1500
 
1512
- /**
1513
- *
1514
- * @param {Object} oButton
1515
- * @param {string} sPos
1516
- * @param {boolean} bSkipFlag
1517
- * @returns {Dialog}
1518
- * @private
1519
- */
1520
- Dialog.prototype._setButton = function (oButton, sPos, bSkipFlag) {
1521
- return this;
1522
- };
1523
-
1524
- /**
1525
- *
1526
- * @param {string} sPos
1527
- * @private
1528
- */
1529
- Dialog.prototype._getButton = function (sPos) {
1530
- var sAggregationName = sPos.toLowerCase() + "Button",
1531
- sButtonName = "_o" + this._firstLetterUpperCase(sPos) + "Button";
1532
-
1533
- if (Device.system.phone) {
1534
- return this.getAggregation(sAggregationName, null, /*avoid infinite loop*/true);
1535
- } else {
1536
- return this[sButtonName];
1537
- }
1538
- };
1539
-
1540
- /**
1541
- *
1542
- * @param {string} sPos
1543
- * @private
1544
- */
1545
- Dialog.prototype._getButtonFromHeader = function (sPos) {
1546
- if (this._header) {
1547
- var sHeaderAggregationName = this._composeAggreNameInHeader(this._firstLetterUpperCase(sPos)),
1548
- aContent = this._header.getAggregation(sHeaderAggregationName);
1549
- return aContent && aContent[0];
1550
- } else {
1551
- return null;
1552
- }
1553
- };
1554
-
1555
- /**
1556
- *
1557
- * @param {string} sValue
1558
- * @returns {string}
1559
- * @private
1560
- */
1561
- Dialog.prototype._firstLetterUpperCase = function (sValue) {
1562
- return sValue.charAt(0).toUpperCase() + sValue.slice(1);
1563
- };
1564
-
1565
-
1566
1501
  /**
1567
1502
  * Returns the custom header instance when the <code>customHeader</code> aggregation is set. Otherwise, it returns the internal managed
1568
1503
  * header instance. This method can be called within composite controls which use <code>sap.m.Dialog</code> inside.
@@ -1573,8 +1508,7 @@ function(
1573
1508
  var oCustomHeader = this.getCustomHeader();
1574
1509
 
1575
1510
  if (oCustomHeader) {
1576
- oCustomHeader._setRootAriaLevel("2");
1577
- return oCustomHeader._setRootAccessibilityRole("heading");
1511
+ return oCustomHeader;
1578
1512
  } else {
1579
1513
  var bShowHeader = this.getShowHeader();
1580
1514
  // if showHeader is set to false and not for standard dialog in iOS in theme sap_mvi, no header.
@@ -1854,9 +1788,7 @@ function(
1854
1788
 
1855
1789
  var oSubHeader = this.getSubHeader();
1856
1790
  if (oSubHeader) {
1857
- var aSubtitles = oSubHeader.findAggregatedObjects(true, function(oObject) {
1858
- return oObject.isA("sap.m.Title");
1859
- });
1791
+ var aSubtitles = this._getTitles(oSubHeader);
1860
1792
 
1861
1793
  // if there are titles in the subheader, add all of them to labels, else use the full subheader
1862
1794
  if (aSubtitles.length) {
@@ -1867,9 +1799,7 @@ function(
1867
1799
  }
1868
1800
 
1869
1801
  if (oHeader) {
1870
- var aTitles = oHeader.findAggregatedObjects(true, function(oObject) {
1871
- return oObject.isA("sap.m.Title");
1872
- });
1802
+ var aTitles = this._getTitles(oHeader);
1873
1803
 
1874
1804
  // if there are titles in the header, add all of them to labels, else use the full header
1875
1805
  if (aTitles.length) {
@@ -2001,6 +1931,8 @@ function(
2001
1931
  };
2002
1932
 
2003
1933
  var oAreaDimensions = this._getAreaDimensions();
1934
+ var oBoundingClientRect = this.getDomRef().getBoundingClientRect();
1935
+
2004
1936
  var initial = {
2005
1937
  x: e.pageX,
2006
1938
  y: e.pageY,
@@ -2013,8 +1945,8 @@ function(
2013
1945
  y: e.offsetY ? e.offsetY : e.originalEvent.layerY
2014
1946
  },
2015
1947
  position: {
2016
- x: that._$dialog.offset().left,
2017
- y: that._$dialog.offset().top
1948
+ x: oBoundingClientRect.x,
1949
+ y: oBoundingClientRect.y
2018
1950
  }
2019
1951
  };
2020
1952
  var mouseMoveHandler;
@@ -2146,5 +2078,11 @@ function(
2146
2078
  Control.prototype._applyContextualSettings.call(this);
2147
2079
  };
2148
2080
 
2081
+ Dialog.prototype._getTitles = function (oContainer) {
2082
+ return oContainer.findAggregatedObjects(true, function(oObject) {
2083
+ return oObject.isA("sap.m.Title");
2084
+ });
2085
+ };
2086
+
2149
2087
  return Dialog;
2150
2088
  });
@@ -178,7 +178,7 @@ sap.ui.define([
178
178
  .close("header");
179
179
  }
180
180
 
181
- if (oSubHeader) {
181
+ if (oSubHeader && oSubHeader.getVisible()) {
182
182
  oSubHeader._applyContextClassFor("subheader");
183
183
  oRM.openStart("header")
184
184
  .class("sapMDialogSubHeader")
@@ -30,7 +30,7 @@ sap.ui.define([
30
30
  * @extends sap.m.ListItemBase
31
31
  *
32
32
  * @author SAP SE
33
- * @version 1.92.0
33
+ * @version 1.95.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.92.0
30
+ * @version 1.95.0
31
31
  *
32
32
  * @constructor
33
33
  * @public
@@ -8,13 +8,17 @@ sap.ui.define([
8
8
  'sap/m/DynamicDateUtil',
9
9
  'sap/ui/model/SimpleType',
10
10
  'sap/ui/model/FormatException',
11
- 'sap/ui/model/ParseException'
11
+ 'sap/ui/model/ParseException',
12
+ 'sap/ui/model/ValidateException',
13
+ 'sap/base/util/each'
12
14
  ],
13
15
  function(
14
16
  DynamicDateUtil,
15
17
  SimpleType,
16
18
  FormatException,
17
- ParseException
19
+ ParseException,
20
+ ValidateException,
21
+ each
18
22
  ) {
19
23
  "use strict";
20
24
 
@@ -22,19 +26,30 @@ sap.ui.define([
22
26
  * Constructor for a dynamic date range type.
23
27
  *
24
28
  * @class
25
- * This class represents the dynamic date range type.
29
+ * This class represents the dynamic date range type. Model values should be in
30
+ * the following format: { operator: "KEY", values: [param1, param2] }. Where the
31
+ * supported parameters are timestamps, month indexes and numbers (all three are numbers).
32
+ * Their type is defined by the corresponding DynamicDateOption instance identified by
33
+ * the same "KEY". This class is capable of formatting only the value parameters expected
34
+ * by the DynamicDateRange control. A display format may be provided via the format options.
26
35
  *
27
36
  * @extends sap.ui.model.SimpleType
28
37
  *
29
38
  * @author SAP SE
30
- * @version 1.92.0
39
+ * @version 1.95.0
31
40
  *
32
41
  * @constructor
33
42
  * @public
34
- * @param {object} [oFormatOptions] Formatting options.
35
- * @param {object} [oFormatOptions.date] Format options controlling the options that contain dates in their display values.
36
- * @param {object} [oFormatOptions.month] Format options controlling the options that contain months in their display values.
37
- * @param {object} [oFormatOptions.int] Format options controlling the options that contain numbers in their display values.
43
+ * @param {object} [oFormatOptions] Format options. There are format options for each of the supported types of value parameters.
44
+ * @param {object} [oFormatOptions.date] Display format options for the values that contain dates. For a list of all available options,
45
+ * see {@link sap.ui.core.format.DateFormat.getDateInstance DateFormat}.
46
+ * @param {object} [oFormatOptions.month] Display format options for the values that contain month names. The only
47
+ * supported option is the <code>pattern</code> using the respective symbols for displaying months "MM", "MMM" or "MMMM".
48
+ * @param {object} [oFormatOptions.int] Display format options for the values that contain numbers. For a list of all available options,
49
+ * see {@link sap.ui.core.format.NumberFormat.getInstance NumberFormat}.
50
+ * @param {object} [oConstraints] Value constraints
51
+ * @param {int} [oConstraints.minimum] Smallest resulting date allowed for this type. Must be provided as a timestamps.
52
+ * @param {int} [oConstraints.maximum] Greatest resulting date allowed for this type. Must be provided as a timestamps.
38
53
  * @since 1.92
39
54
  * @alias sap.m.DynamicDate
40
55
  * @experimental Since 1.92. This class is experimental and provides only limited functionality. Also the API might be changed in future.
@@ -88,6 +103,7 @@ sap.ui.define([
88
103
  * The whole value is in the following format { operator: "KEY", values: [...array with JS dates or numbers to be parsed]}.
89
104
  * Only parses the 'values' part of the given object. The dates are expected as Javascript Dates
90
105
  * and are converted to timestamps. The numbers and strings are left untouched.
106
+ * Special values with operator: "PARSEERROR" generate a parse exception.
91
107
  *
92
108
  * @param {object} oValue The value to be parsed
93
109
  * @return {object} A value object in a similar form
@@ -122,11 +138,49 @@ sap.ui.define([
122
138
  return oResult;
123
139
  };
124
140
 
125
- /**
126
- * Validates whether a given raw value meets the defined constraints.
127
- * <strong>Note: No support for constraints for now.</strong>
128
- */
129
- DynamicDate.prototype.validateValue = function() {};
141
+ DynamicDate.prototype.validateValue = function(oValue) {
142
+ if (this.oConstraints) {
143
+ var oBundle = sap.ui.getCore().getLibraryResourceBundle(),
144
+ oMBundle = sap.ui.getCore().getLibraryResourceBundle("sap.m"),
145
+ aViolatedConstraints = [],
146
+ aMessages = [],
147
+ oOption = DynamicDateUtil.getOption(oValue.operator),
148
+ aDates = oOption.toDates(this.formatValue(oValue)).map(function(oUDate) {
149
+ return oUDate.getTime();
150
+ });
151
+
152
+ if (aDates[0] === aDates[1]) {
153
+ aDates.length = 1;
154
+ }
155
+
156
+ aDates.forEach(function(iTimestamp, index) {
157
+ var sErrorGenericTextKey = "DynamicDate.Invalid" + (index === 0 ? "Start" : "End");
158
+
159
+ each(this.oConstraints, function (sConstraintName, iConstraintValue) {
160
+ switch (sConstraintName) {
161
+ case "minimum":
162
+ if (iTimestamp < iConstraintValue) {
163
+ aViolatedConstraints.push("minimum");
164
+ aMessages.push(oMBundle.getText(sErrorGenericTextKey, [new Date(iTimestamp).toDateString()]));
165
+ aMessages.push(oBundle.getText("Date.Minimum", [new Date(iConstraintValue).toDateString()]));
166
+ }
167
+ break;
168
+ case "maximum":
169
+ if (iTimestamp > iConstraintValue) {
170
+ aViolatedConstraints.push("maximum");
171
+ aMessages.push(oMBundle.getText(sErrorGenericTextKey, [new Date(iTimestamp).toDateString()]));
172
+ aMessages.push(oBundle.getText("Date.Maximum", [new Date(iConstraintValue).toDateString()]));
173
+ }
174
+ break;
175
+ }
176
+ });
177
+ }, this);
178
+
179
+ if (aViolatedConstraints.length > 0) {
180
+ throw new ValidateException(this.combineMessages(aMessages), aViolatedConstraints);
181
+ }
182
+ }
183
+ };
130
184
 
131
185
  var oTimestampInputFormat = {
132
186
  format: function(oValue) {
@@ -165,12 +165,23 @@ sap.ui.define([
165
165
  var oDate = new Date();
166
166
  oDate.setMonth(aParams[0]);
167
167
  aParams[0] = this._monthFormatter.format(oDate);
168
+ } else if (sKey === "LASTDAYS" && aParams[0] === 1) {
169
+ sKey = "YESTERDAY";
170
+ aParams = [];
171
+ } else if (sKey === "NEXTDAYS" && aParams[0] === 1) {
172
+ sKey = "TOMORROW";
173
+ aParams = [];
174
+ } else if ((sKey === "LASTDAYS" || sKey === "NEXTDAYS") && aParams[0] === 0) {
175
+ sKey = "TODAY";
176
+ aParams = [];
168
177
  }
169
178
 
170
179
  var aFormattedParams = aParams.map(function(param) {
171
180
  if (param instanceof Date) {
172
181
  return this._dateFormatter.format(param);
173
- } if (typeof (param) === "number") {
182
+ }
183
+
184
+ if (typeof (param) === "number") {
174
185
  return this._numberFormatter.format(param);
175
186
  } else {
176
187
  return param.toString();
@@ -32,7 +32,7 @@ sap.ui.define([
32
32
  * @extends sap.ui.core.Element
33
33
  *
34
34
  * @author SAP SE
35
- * @version 1.92.0
35
+ * @version 1.95.0
36
36
  *
37
37
  * @public
38
38
  * @since 1.92
@@ -125,6 +125,41 @@ sap.ui.define([
125
125
  return aControls;
126
126
  };
127
127
 
128
+ /**
129
+ * Validates all input controls in the value help UI related to the current option.
130
+ * If one of the input controls contains invalid value, then validation will return <code>false</code>.
131
+ * If all input controls contain valid value, then the validation will return <code>true</code>.
132
+ *
133
+ * @public
134
+ * @param {sap.m.DynamicDateRange} oControl The control instance
135
+ * @returns {boolean} value help UI validity indicator
136
+ */
137
+ DynamicDateOption.prototype.validateValueHelpUI = function(oControl) {
138
+ var aParams = this.getValueHelpUITypes();
139
+
140
+ for (var i = 0; i < aParams.length; i++) {
141
+ var oInputControl = oControl.aControlsByParameters[this.getKey()][i];
142
+
143
+ switch (aParams[i].getType()) {
144
+ case "int":
145
+ if (oInputControl._isLessThanMin(oInputControl.getValue()) ||
146
+ oInputControl._isMoreThanMax(oInputControl.getValue())) {
147
+ return false;
148
+ }
149
+ break;
150
+ case "month":
151
+ case "date":
152
+ case "daterange":
153
+ if (!oInputControl.getSelectedDates() || oInputControl.getSelectedDates().length == 0) {
154
+ return false;
155
+ }
156
+ break;
157
+ }
158
+ }
159
+
160
+ return true;
161
+ };
162
+
128
163
  /**
129
164
  * Gets the value help controls' output values and
130
165
  * converts them to a DynamicDateRange value.
@@ -134,7 +169,7 @@ sap.ui.define([
134
169
  * @public
135
170
  */
136
171
  DynamicDateOption.prototype.getValueHelpOutput = function(oControl) {
137
- var aParams = this.getValueHelpUITypes(oControl),
172
+ var aParams = this.getValueHelpUITypes(),
138
173
  aResult = {},
139
174
  vOutput;
140
175
 
@@ -276,7 +311,9 @@ sap.ui.define([
276
311
  }
277
312
 
278
313
  if (fnControlsUpdated instanceof Function) {
279
- oControl.attachChange(fnControlsUpdated);
314
+ oControl.attachChange(function() {
315
+ fnControlsUpdated(this);
316
+ }, this);
280
317
  }
281
318
 
282
319
  return oControl;
@@ -294,7 +331,9 @@ sap.ui.define([
294
331
  }
295
332
 
296
333
  if (fnControlsUpdated instanceof Function) {
297
- oControl.attachSelect(fnControlsUpdated);
334
+ oControl.attachSelect(function() {
335
+ fnControlsUpdated(this);
336
+ }, this);
298
337
  }
299
338
 
300
339
  return oControl;
@@ -315,7 +354,9 @@ sap.ui.define([
315
354
  }
316
355
 
317
356
  if (fnControlsUpdated instanceof Function) {
318
- oControl.attachSelect(fnControlsUpdated);
357
+ oControl.attachSelect(function() {
358
+ fnControlsUpdated(this);
359
+ }, this);
319
360
  }
320
361
 
321
362
  return oControl;
@@ -323,23 +364,22 @@ sap.ui.define([
323
364
 
324
365
  DynamicDateOption.prototype._createMonthControl = function(oValue, iIndex, fnControlsUpdated) {
325
366
  var oControl = new MonthPicker(),
326
- oDate;
327
-
328
- if (oValue && this.getKey() === oValue.operator) {
329
- oDate = new Date();
330
- oDate.setMonth(oValue.values[iIndex]);
367
+ oDate = new Date(),
368
+ iMonth = (oValue && this.getKey() === oValue.operator) ? oValue.values[iIndex] : oDate.getMonth();
331
369
 
332
- oControl.addSelectedDate(new DateRange({
333
- startDate: oDate
334
- }));
335
- }
370
+ oControl.setMonth(iMonth);
371
+ oControl.addSelectedDate(new DateRange({
372
+ startDate: oDate
373
+ }));
336
374
 
337
375
  if (fnControlsUpdated instanceof Function) {
338
- oControl.attachSelect(fnControlsUpdated);
376
+ oControl.attachSelect(function() {
377
+ fnControlsUpdated(this);
378
+ }, this);
339
379
  }
340
380
 
341
381
  return oControl;
342
382
  };
343
383
 
344
384
  return DynamicDateOption;
345
- });
385
+ });