@openui5/sap.ui.core 1.112.2 → 1.114.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 (400) hide show
  1. package/.dtsgenrc +102 -1
  2. package/THIRDPARTY.txt +1 -1
  3. package/package.json +1 -1
  4. package/src/jquery.sap.global.js +10 -4
  5. package/src/jquery.sap.properties.js +1 -1
  6. package/src/jquery.sap.resources.js +1 -1
  7. package/src/jquery.sap.script.js +1 -1
  8. package/src/jquery.sap.storage.js +7 -7
  9. package/src/jquery.sap.trace.js +14 -14
  10. package/src/sap/base/Log.js +92 -8
  11. package/src/sap/base/assert.js +1 -1
  12. package/src/sap/base/config/MemoryConfigurationProvider.js +22 -0
  13. package/src/sap/base/config.js +54 -0
  14. package/src/sap/base/security/URLWhitelist.js +1 -1
  15. package/src/sap/base/util/Deferred.js +3 -2
  16. package/src/sap/base/util/restricted/_CancelablePromise.js +2 -2
  17. package/src/sap/base/util/restricted/_castArray.js +1 -1
  18. package/src/sap/base/util/restricted/_compact.js +1 -1
  19. package/src/sap/base/util/restricted/_curry.js +1 -1
  20. package/src/sap/base/util/restricted/_debounce.js +1 -1
  21. package/src/sap/base/util/restricted/_difference.js +1 -1
  22. package/src/sap/base/util/restricted/_differenceBy.js +1 -1
  23. package/src/sap/base/util/restricted/_differenceWith.js +1 -1
  24. package/src/sap/base/util/restricted/_flatMap.js +1 -1
  25. package/src/sap/base/util/restricted/_flatMapDeep.js +1 -1
  26. package/src/sap/base/util/restricted/_flatMapDepth.js +1 -1
  27. package/src/sap/base/util/restricted/_flatten.js +1 -1
  28. package/src/sap/base/util/restricted/_flattenDeep.js +1 -1
  29. package/src/sap/base/util/restricted/_flattenDepth.js +1 -1
  30. package/src/sap/base/util/restricted/_intersection.js +1 -1
  31. package/src/sap/base/util/restricted/_intersectionBy.js +1 -1
  32. package/src/sap/base/util/restricted/_intersectionWith.js +1 -1
  33. package/src/sap/base/util/restricted/_isEqual.js +1 -1
  34. package/src/sap/base/util/restricted/_isEqualWith.js +1 -1
  35. package/src/sap/base/util/restricted/_isNil.js +1 -1
  36. package/src/sap/base/util/restricted/_max.js +1 -1
  37. package/src/sap/base/util/restricted/_merge.js +1 -1
  38. package/src/sap/base/util/restricted/_mergeWith.js +1 -1
  39. package/src/sap/base/util/restricted/_min.js +1 -1
  40. package/src/sap/base/util/restricted/_omit.js +1 -1
  41. package/src/sap/base/util/restricted/_pick.js +1 -1
  42. package/src/sap/base/util/restricted/_pickBy.js +1 -1
  43. package/src/sap/base/util/restricted/_throttle.js +1 -1
  44. package/src/sap/base/util/restricted/_toArray.js +1 -1
  45. package/src/sap/base/util/restricted/_union.js +1 -1
  46. package/src/sap/base/util/restricted/_unionBy.js +1 -1
  47. package/src/sap/base/util/restricted/_unionWith.js +1 -1
  48. package/src/sap/base/util/restricted/_uniq.js +1 -1
  49. package/src/sap/base/util/restricted/_uniqBy.js +1 -1
  50. package/src/sap/base/util/restricted/_uniqWith.js +1 -1
  51. package/src/sap/base/util/restricted/_without.js +1 -1
  52. package/src/sap/base/util/restricted/_xor.js +1 -1
  53. package/src/sap/base/util/restricted/_xorBy.js +1 -1
  54. package/src/sap/base/util/restricted/_xorWith.js +1 -1
  55. package/src/sap/base/util/restricted/_zipObject.js +1 -1
  56. package/src/sap/base/util/restricted/_zipObjectDeep.js +1 -1
  57. package/src/sap/ui/Device.js +8 -3
  58. package/src/sap/ui/Global.js +4 -4
  59. package/src/sap/ui/base/BindingParser.js +79 -18
  60. package/src/sap/ui/base/Event.js +1 -1
  61. package/src/sap/ui/base/EventProvider.js +1 -1
  62. package/src/sap/ui/base/ExpressionParser.js +15 -5
  63. package/src/sap/ui/base/Interface.js +1 -1
  64. package/src/sap/ui/base/ManagedObject.js +16 -13
  65. package/src/sap/ui/base/ManagedObjectMetadata.js +35 -35
  66. package/src/sap/ui/base/Metadata.js +23 -12
  67. package/src/sap/ui/base/Object.js +1 -1
  68. package/src/sap/ui/base/ObjectPool.js +1 -1
  69. package/src/sap/ui/core/.library +1 -1
  70. package/src/sap/ui/core/BusyIndicator.js +4 -4
  71. package/src/sap/ui/core/Component.js +10 -7
  72. package/src/sap/ui/core/ComponentContainer.js +1 -1
  73. package/src/sap/ui/core/ComponentMetadata.js +3 -1
  74. package/src/sap/ui/core/ComponentSupport.js +1 -1
  75. package/src/sap/ui/core/Configuration.js +104 -45
  76. package/src/sap/ui/core/Control.js +23 -6
  77. package/src/sap/ui/core/Core.js +36 -15
  78. package/src/sap/ui/core/CustomData.js +1 -1
  79. package/src/sap/ui/core/CustomStyleClassSupport.js +5 -2
  80. package/src/sap/ui/core/DeclarativeSupport.js +1 -1
  81. package/src/sap/ui/core/Element.js +1 -1
  82. package/src/sap/ui/core/ElementMetadata.js +19 -4
  83. package/src/sap/ui/core/EnabledPropagator.js +1 -1
  84. package/src/sap/ui/core/EventBus.js +4 -4
  85. package/src/sap/ui/core/Fragment.js +1 -1
  86. package/src/sap/ui/core/HTML.js +1 -1
  87. package/src/sap/ui/core/History.js +1 -1
  88. package/src/sap/ui/core/Icon.js +1 -1
  89. package/src/sap/ui/core/IconPool.js +17 -2
  90. package/src/sap/ui/core/IndicationColorSupport.js +1 -1
  91. package/src/sap/ui/core/IntervalTrigger.js +1 -1
  92. package/src/sap/ui/core/InvisibleMessage.js +1 -1
  93. package/src/sap/ui/core/InvisibleRenderer.js +1 -1
  94. package/src/sap/ui/core/InvisibleText.js +1 -1
  95. package/src/sap/ui/core/Item.js +1 -1
  96. package/src/sap/ui/core/LabelEnablement.js +10 -2
  97. package/src/sap/ui/core/LayoutData.js +1 -1
  98. package/src/sap/ui/core/Lib.js +28 -2
  99. package/src/sap/ui/core/ListItem.js +1 -1
  100. package/src/sap/ui/core/LocalBusyIndicator.js +1 -1
  101. package/src/sap/ui/core/Locale.js +2 -2
  102. package/src/sap/ui/core/LocaleData.js +87 -19
  103. package/src/sap/ui/core/Manifest.js +5 -5
  104. package/src/sap/ui/core/Message.js +1 -1
  105. package/src/sap/ui/core/Popup.js +34 -36
  106. package/src/sap/ui/core/RenderManager.js +8 -2
  107. package/src/sap/ui/core/Renderer.js +1 -1
  108. package/src/sap/ui/core/Rendering.js +2 -3
  109. package/src/sap/ui/core/ResizeHandler.js +2 -2
  110. package/src/sap/ui/core/ScrollBar.js +1 -1
  111. package/src/sap/ui/core/SeparatorItem.js +1 -1
  112. package/src/sap/ui/core/Title.js +1 -1
  113. package/src/sap/ui/core/TooltipBase.js +1 -1
  114. package/src/sap/ui/core/UIArea.js +9 -2
  115. package/src/sap/ui/core/UIComponent.js +16 -13
  116. package/src/sap/ui/core/UIComponentMetadata.js +1 -1
  117. package/src/sap/ui/core/ValueStateSupport.js +1 -1
  118. package/src/sap/ui/core/VariantLayoutData.js +1 -1
  119. package/src/sap/ui/core/XMLComposite.js +1 -1
  120. package/src/sap/ui/core/XMLCompositeMetadata.js +1 -1
  121. package/src/sap/ui/core/XMLTemplateProcessor.js +30 -6
  122. package/src/sap/ui/core/cache/CacheManager.js +1 -1
  123. package/src/sap/ui/core/cache/LRUPersistentCache.js +1 -1
  124. package/src/sap/ui/core/date/CalendarUtils.js +14 -26
  125. package/src/sap/ui/core/date/CalendarWeekNumbering.js +32 -0
  126. package/src/sap/ui/core/date/UI5Date.js +14 -8
  127. package/src/sap/ui/core/date/UniversalDate.js +15 -53
  128. package/src/sap/ui/core/date/UniversalDateUtils.js +4 -4
  129. package/src/sap/ui/core/date/_Calendars.js +1 -1
  130. package/src/sap/ui/core/delegate/ItemNavigation.js +1 -1
  131. package/src/sap/ui/core/delegate/ScrollEnablement.js +1 -1
  132. package/src/sap/ui/core/dnd/DragDropBase.js +1 -1
  133. package/src/sap/ui/core/dnd/DragDropInfo.js +1 -1
  134. package/src/sap/ui/core/dnd/DragInfo.js +1 -1
  135. package/src/sap/ui/core/dnd/DropInfo.js +1 -1
  136. package/src/sap/ui/core/format/DateFormat.js +166 -59
  137. package/src/sap/ui/core/format/NumberFormat.js +40 -5
  138. package/src/sap/ui/core/format/TimezoneUtil.js +1 -1
  139. package/src/sap/ui/core/hyphenation/Hyphenation.js +1 -1
  140. package/src/sap/ui/core/library.js +3 -3
  141. package/src/sap/ui/core/message/ControlMessageProcessor.js +1 -1
  142. package/src/sap/ui/core/message/Message.js +1 -1
  143. package/src/sap/ui/core/message/MessageManager.js +1 -1
  144. package/src/sap/ui/core/message/MessageParser.js +1 -1
  145. package/src/sap/ui/core/message/MessageProcessor.js +1 -1
  146. package/src/sap/ui/core/messagebundle.properties +2 -0
  147. package/src/sap/ui/core/messagebundle_ar.properties +2 -1
  148. package/src/sap/ui/core/messagebundle_bg.properties +1 -0
  149. package/src/sap/ui/core/messagebundle_ca.properties +1 -0
  150. package/src/sap/ui/core/messagebundle_cs.properties +2 -1
  151. package/src/sap/ui/core/messagebundle_cy.properties +2 -1
  152. package/src/sap/ui/core/messagebundle_da.properties +2 -1
  153. package/src/sap/ui/core/messagebundle_de.properties +2 -1
  154. package/src/sap/ui/core/messagebundle_el.properties +2 -1
  155. package/src/sap/ui/core/messagebundle_en.properties +2 -1
  156. package/src/sap/ui/core/messagebundle_en_GB.properties +2 -1
  157. package/src/sap/ui/core/messagebundle_en_US_sappsd.properties +1 -0
  158. package/src/sap/ui/core/messagebundle_en_US_saprigi.properties +1 -0
  159. package/src/sap/ui/core/messagebundle_es.properties +5 -4
  160. package/src/sap/ui/core/messagebundle_es_MX.properties +2 -1
  161. package/src/sap/ui/core/messagebundle_et.properties +2 -1
  162. package/src/sap/ui/core/messagebundle_fi.properties +2 -1
  163. package/src/sap/ui/core/messagebundle_fr.properties +2 -1
  164. package/src/sap/ui/core/messagebundle_fr_CA.properties +2 -1
  165. package/src/sap/ui/core/messagebundle_hi.properties +2 -1
  166. package/src/sap/ui/core/messagebundle_hr.properties +2 -1
  167. package/src/sap/ui/core/messagebundle_hu.properties +2 -1
  168. package/src/sap/ui/core/messagebundle_id.properties +2 -1
  169. package/src/sap/ui/core/messagebundle_it.properties +2 -1
  170. package/src/sap/ui/core/messagebundle_iw.properties +2 -1
  171. package/src/sap/ui/core/messagebundle_ja.properties +1 -0
  172. package/src/sap/ui/core/messagebundle_kk.properties +2 -1
  173. package/src/sap/ui/core/messagebundle_ko.properties +2 -1
  174. package/src/sap/ui/core/messagebundle_lt.properties +2 -1
  175. package/src/sap/ui/core/messagebundle_lv.properties +2 -1
  176. package/src/sap/ui/core/messagebundle_ms.properties +2 -1
  177. package/src/sap/ui/core/messagebundle_nl.properties +2 -1
  178. package/src/sap/ui/core/messagebundle_no.properties +2 -1
  179. package/src/sap/ui/core/messagebundle_pl.properties +2 -1
  180. package/src/sap/ui/core/messagebundle_pt.properties +2 -1
  181. package/src/sap/ui/core/messagebundle_pt_PT.properties +2 -1
  182. package/src/sap/ui/core/messagebundle_ro.properties +2 -1
  183. package/src/sap/ui/core/messagebundle_ru.properties +3 -2
  184. package/src/sap/ui/core/messagebundle_sh.properties +2 -1
  185. package/src/sap/ui/core/messagebundle_sk.properties +2 -1
  186. package/src/sap/ui/core/messagebundle_sl.properties +2 -1
  187. package/src/sap/ui/core/messagebundle_sv.properties +2 -1
  188. package/src/sap/ui/core/messagebundle_th.properties +2 -1
  189. package/src/sap/ui/core/messagebundle_tr.properties +2 -1
  190. package/src/sap/ui/core/messagebundle_uk.properties +2 -1
  191. package/src/sap/ui/core/messagebundle_vi.properties +2 -1
  192. package/src/sap/ui/core/messagebundle_zh_CN.properties +2 -1
  193. package/src/sap/ui/core/messagebundle_zh_TW.properties +2 -1
  194. package/src/sap/ui/core/mvc/Controller.js +2 -3
  195. package/src/sap/ui/core/mvc/ControllerExtension.js +1 -1
  196. package/src/sap/ui/core/mvc/HTMLView.js +1 -1
  197. package/src/sap/ui/core/mvc/JSONView.js +1 -1
  198. package/src/sap/ui/core/mvc/JSView.js +1 -1
  199. package/src/sap/ui/core/mvc/TemplateView.js +1 -1
  200. package/src/sap/ui/core/mvc/View.js +24 -17
  201. package/src/sap/ui/core/mvc/XMLView.js +2 -2
  202. package/src/sap/ui/core/plugin/DeclarativeSupport.js +1 -1
  203. package/src/sap/ui/core/plugin/LessSupport.js +1 -1
  204. package/src/sap/ui/core/plugin/TemplatingSupport.js +1 -1
  205. package/src/sap/ui/core/postmessage/Bus.js +1 -1
  206. package/src/sap/ui/core/postmessage/confirmationDialog.js +1 -1
  207. package/src/sap/ui/core/routing/Route.js +30 -22
  208. package/src/sap/ui/core/routing/Router.js +5 -3
  209. package/src/sap/ui/core/routing/Target.js +170 -3
  210. package/src/sap/ui/core/routing/Targets.js +5 -214
  211. package/src/sap/ui/core/routing/Views.js +1 -1
  212. package/src/sap/ui/core/search/OpenSearchProvider.js +1 -1
  213. package/src/sap/ui/core/search/SearchProvider.js +1 -1
  214. package/src/sap/ui/core/service/Service.js +1 -1
  215. package/src/sap/ui/core/service/ServiceFactory.js +1 -1
  216. package/src/sap/ui/core/service/ServiceFactoryRegistry.js +1 -1
  217. package/src/sap/ui/core/support/Plugin.js +1 -1
  218. package/src/sap/ui/core/support/Support.js +1 -1
  219. package/src/sap/ui/core/support/controls/InteractionTree.js +5 -3
  220. package/src/sap/ui/core/support/plugins/Breakpoint.js +2 -2
  221. package/src/sap/ui/core/support/plugins/ControlTree.js +1 -1
  222. package/src/sap/ui/core/support/plugins/Interaction.js +6 -4
  223. package/src/sap/ui/core/support/plugins/LocalStorage.js +1 -1
  224. package/src/sap/ui/core/support/plugins/Performance.js +1 -1
  225. package/src/sap/ui/core/support/plugins/Selector.js +1 -1
  226. package/src/sap/ui/core/support/plugins/TechInfo.js +1 -1
  227. package/src/sap/ui/core/support/plugins/Trace.js +4 -3
  228. package/src/sap/ui/core/support/plugins/ViewInfo.js +1 -1
  229. package/src/sap/ui/core/themes/base/base.less +4358 -78
  230. package/src/sap/ui/core/themes/base/global.less +114 -8
  231. package/src/sap/ui/core/themes/sap_hcb/global.less +114 -8
  232. package/src/sap/ui/core/theming/Parameters.js +10 -2
  233. package/src/sap/ui/core/theming/ThemeManager.js +16 -12
  234. package/src/sap/ui/core/tmpl/DOMAttribute.js +1 -1
  235. package/src/sap/ui/core/tmpl/DOMElement.js +1 -1
  236. package/src/sap/ui/core/tmpl/HandlebarsTemplate.js +1 -1
  237. package/src/sap/ui/core/tmpl/Template.js +1 -1
  238. package/src/sap/ui/core/tmpl/TemplateControl.js +1 -1
  239. package/src/sap/ui/core/util/AsyncHintsHelper.js +1 -1
  240. package/src/sap/ui/core/util/Export.js +1 -1
  241. package/src/sap/ui/core/util/ExportCell.js +1 -1
  242. package/src/sap/ui/core/util/ExportColumn.js +1 -1
  243. package/src/sap/ui/core/util/ExportRow.js +1 -1
  244. package/src/sap/ui/core/util/ExportType.js +1 -1
  245. package/src/sap/ui/core/util/ExportTypeCSV.js +1 -1
  246. package/src/sap/ui/core/util/File.js +1 -1
  247. package/src/sap/ui/core/util/LibraryInfo.js +1 -1
  248. package/src/sap/ui/core/util/MockServer.js +1 -1
  249. package/src/sap/ui/core/util/PasteHelper.js +1 -1
  250. package/src/sap/ui/core/util/serializer/HTMLViewSerializer.js +1 -1
  251. package/src/sap/ui/core/util/serializer/Serializer.js +1 -1
  252. package/src/sap/ui/core/util/serializer/ViewSerializer.js +1 -1
  253. package/src/sap/ui/core/util/serializer/XMLViewSerializer.js +1 -1
  254. package/src/sap/ui/core/util/serializer/delegate/Delegate.js +1 -1
  255. package/src/sap/ui/core/util/serializer/delegate/HTML.js +1 -1
  256. package/src/sap/ui/core/util/serializer/delegate/XML.js +1 -1
  257. package/src/sap/ui/core/ws/ReadyState.js +1 -1
  258. package/src/sap/ui/core/ws/SapPcpWebSocket.js +1 -1
  259. package/src/sap/ui/core/ws/WebSocket.js +1 -1
  260. package/src/sap/ui/debug/ControlTree.js +1 -1
  261. package/src/sap/ui/debug/DebugEnv.js +1 -1
  262. package/src/sap/ui/debug/PropertyList.js +1 -1
  263. package/src/sap/ui/dom/includeScript.js +3 -3
  264. package/src/sap/ui/dom/includeStylesheet.js +3 -3
  265. package/src/sap/ui/events/ControlEvents.js +2 -2
  266. package/src/sap/ui/events/PseudoEvents.js +4 -2
  267. package/src/sap/ui/model/ClientModel.js +1 -1
  268. package/src/sap/ui/model/CompositeBinding.js +1 -1
  269. package/src/sap/ui/model/CompositeDataState.js +1 -1
  270. package/src/sap/ui/model/CompositeType.js +1 -1
  271. package/src/sap/ui/model/DataState.js +1 -1
  272. package/src/sap/ui/model/ManagedObjectBindingSupport.js +19 -2
  273. package/src/sap/ui/model/MetaModel.js +1 -1
  274. package/src/sap/ui/model/Model.js +1 -1
  275. package/src/sap/ui/model/SelectionModel.js +1 -1
  276. package/src/sap/ui/model/SimpleType.js +7 -3
  277. package/src/sap/ui/model/TreeAutoExpandMode.js +1 -1
  278. package/src/sap/ui/model/Type.js +1 -1
  279. package/src/sap/ui/model/base/ManagedObjectModel.js +12 -4
  280. package/src/sap/ui/model/controlhelper/TreeBindingProxy.js +2 -0
  281. package/src/sap/ui/model/json/JSONModel.js +1 -1
  282. package/src/sap/ui/model/message/MessageModel.js +1 -1
  283. package/src/sap/ui/model/odata/ODataAnnotations.js +1 -1
  284. package/src/sap/ui/model/odata/ODataMessageParser.js +1 -1
  285. package/src/sap/ui/model/odata/ODataMetaModel.js +1 -1
  286. package/src/sap/ui/model/odata/ODataMetadata.js +1 -1
  287. package/src/sap/ui/model/odata/ODataModel.js +1 -1
  288. package/src/sap/ui/model/odata/ODataTreeBindingFlat.js +1 -1
  289. package/src/sap/ui/model/odata/type/Boolean.js +1 -1
  290. package/src/sap/ui/model/odata/type/Byte.js +1 -1
  291. package/src/sap/ui/model/odata/type/Currency.js +1 -1
  292. package/src/sap/ui/model/odata/type/Date.js +67 -21
  293. package/src/sap/ui/model/odata/type/DateTime.js +51 -8
  294. package/src/sap/ui/model/odata/type/DateTimeBase.js +55 -26
  295. package/src/sap/ui/model/odata/type/DateTimeOffset.js +42 -1
  296. package/src/sap/ui/model/odata/type/DateTimeWithTimezone.js +37 -21
  297. package/src/sap/ui/model/odata/type/Decimal.js +28 -33
  298. package/src/sap/ui/model/odata/type/Double.js +21 -26
  299. package/src/sap/ui/model/odata/type/Guid.js +1 -1
  300. package/src/sap/ui/model/odata/type/Int.js +15 -20
  301. package/src/sap/ui/model/odata/type/Int16.js +1 -1
  302. package/src/sap/ui/model/odata/type/Int32.js +1 -1
  303. package/src/sap/ui/model/odata/type/Int64.js +16 -21
  304. package/src/sap/ui/model/odata/type/ODataType.js +33 -6
  305. package/src/sap/ui/model/odata/type/Raw.js +1 -1
  306. package/src/sap/ui/model/odata/type/SByte.js +1 -1
  307. package/src/sap/ui/model/odata/type/Single.js +20 -25
  308. package/src/sap/ui/model/odata/type/Stream.js +1 -1
  309. package/src/sap/ui/model/odata/type/String.js +1 -1
  310. package/src/sap/ui/model/odata/type/Time.js +91 -21
  311. package/src/sap/ui/model/odata/type/TimeOfDay.js +70 -24
  312. package/src/sap/ui/model/odata/type/Unit.js +1 -1
  313. package/src/sap/ui/model/odata/v2/Context.js +72 -28
  314. package/src/sap/ui/model/odata/v2/ODataAnnotations.js +5 -4
  315. package/src/sap/ui/model/odata/v2/ODataListBinding.js +29 -10
  316. package/src/sap/ui/model/odata/v2/ODataModel.js +92 -36
  317. package/src/sap/ui/model/odata/v2/ODataTreeBinding.js +8 -1
  318. package/src/sap/ui/model/odata/v4/Context.js +36 -21
  319. package/src/sap/ui/model/odata/v4/ODataBinding.js +50 -21
  320. package/src/sap/ui/model/odata/v4/ODataContextBinding.js +7 -25
  321. package/src/sap/ui/model/odata/v4/ODataListBinding.js +208 -74
  322. package/src/sap/ui/model/odata/v4/ODataMetaModel.js +4 -1
  323. package/src/sap/ui/model/odata/v4/ODataModel.js +4 -3
  324. package/src/sap/ui/model/odata/v4/ODataParentBinding.js +42 -28
  325. package/src/sap/ui/model/odata/v4/ODataPropertyBinding.js +1 -1
  326. package/src/sap/ui/model/odata/v4/lib/_AggregationCache.js +100 -21
  327. package/src/sap/ui/model/odata/v4/lib/_AggregationHelper.js +1 -1
  328. package/src/sap/ui/model/odata/v4/lib/_Cache.js +99 -64
  329. package/src/sap/ui/model/odata/v4/lib/_Helper.js +75 -2
  330. package/src/sap/ui/model/odata/v4/lib/_Requestor.js +6 -0
  331. package/src/sap/ui/model/odata/v4/lib/_V2Requestor.js +3 -0
  332. package/src/sap/ui/model/resource/ResourceModel.js +1 -1
  333. package/src/sap/ui/model/type/Boolean.js +1 -1
  334. package/src/sap/ui/model/type/Currency.js +1 -1
  335. package/src/sap/ui/model/type/Date.js +15 -1
  336. package/src/sap/ui/model/type/DateInterval.js +15 -1
  337. package/src/sap/ui/model/type/DateTime.js +1 -1
  338. package/src/sap/ui/model/type/DateTimeInterval.js +1 -1
  339. package/src/sap/ui/model/type/FileSize.js +1 -1
  340. package/src/sap/ui/model/type/Float.js +1 -1
  341. package/src/sap/ui/model/type/Integer.js +1 -1
  342. package/src/sap/ui/model/type/String.js +1 -1
  343. package/src/sap/ui/model/type/Time.js +1 -1
  344. package/src/sap/ui/model/type/TimeInterval.js +1 -1
  345. package/src/sap/ui/model/type/Unit.js +1 -1
  346. package/src/sap/ui/model/xml/XMLModel.js +1 -1
  347. package/src/sap/ui/performance/Measurement.js +9 -9
  348. package/src/sap/ui/performance/trace/Interaction.js +50 -4
  349. package/src/sap/ui/performance/trace/initTraces.js +20 -14
  350. package/src/sap/ui/qunit/qunit-coverage-istanbul.js +180 -0
  351. package/src/sap/ui/qunit/qunit-coverage.js +9 -4
  352. package/src/sap/ui/qunit/utils/ControlIterator.js +1 -1
  353. package/src/sap/ui/qunit/utils/MemoryLeakCheck.js +1 -1
  354. package/src/sap/ui/test/Opa.js +54 -21
  355. package/src/sap/ui/test/Opa5.js +181 -131
  356. package/src/sap/ui/test/OpaBuilder.js +106 -73
  357. package/src/sap/ui/test/OpaPlugin.js +27 -28
  358. package/src/sap/ui/test/PageObjectFactory.js +17 -7
  359. package/src/sap/ui/test/RecordReplay.js +7 -3
  360. package/src/sap/ui/test/_ParameterValidator.js +3 -3
  361. package/src/sap/ui/test/_UsageReport.js +3 -3
  362. package/src/sap/ui/test/_ValidationParameters.js +8 -10
  363. package/src/sap/ui/test/actions/Action.js +3 -3
  364. package/src/sap/ui/test/actions/EnterText.js +3 -2
  365. package/src/sap/ui/test/actions/Press.js +4 -4
  366. package/src/sap/ui/test/autowaiter/WaiterBase.js +5 -3
  367. package/src/sap/ui/test/autowaiter/_autoWaiter.js +6 -3
  368. package/src/sap/ui/test/autowaiter/_cssAnimationWaiter.js +3 -3
  369. package/src/sap/ui/test/autowaiter/_cssTransitionWaiter.js +3 -3
  370. package/src/sap/ui/test/autowaiter/_fetchWaiter.js +73 -0
  371. package/src/sap/ui/test/autowaiter/_moduleWaiter.js +2 -2
  372. package/src/sap/ui/test/autowaiter/_promiseWaiter.js +4 -4
  373. package/src/sap/ui/test/autowaiter/_resourceWaiter.js +2 -2
  374. package/src/sap/ui/test/autowaiter/_timeoutWaiter.js +4 -4
  375. package/src/sap/ui/test/generic/TestBase.js +1 -1
  376. package/src/sap/ui/test/generic/_EnforceSemanticRendering.js +3 -1
  377. package/src/sap/ui/test/gherkin/GherkinTestGenerator.js +424 -423
  378. package/src/sap/ui/test/gherkin/StepDefinitions.js +160 -158
  379. package/src/sap/ui/test/gherkin/dataTableUtils.js +387 -385
  380. package/src/sap/ui/test/gherkin/opa5TestHarness.js +188 -189
  381. package/src/sap/ui/test/gherkin/qUnitTestHarness.js +74 -71
  382. package/src/sap/ui/test/gherkin/simpleGherkinParser.js +195 -193
  383. package/src/sap/ui/test/launchers/componentLauncher.js +11 -9
  384. package/src/sap/ui/test/launchers/iFrameLauncher.js +34 -20
  385. package/src/sap/ui/test/matchers/Descendant.js +1 -1
  386. package/src/sap/ui/test/matchers/Interactable.js +2 -2
  387. package/src/sap/ui/test/matchers/LabelFor.js +2 -2
  388. package/src/sap/ui/test/matchers/MatcherFactory.js +10 -9
  389. package/src/sap/ui/test/matchers/Properties.js +5 -4
  390. package/src/sap/ui/test/matchers/Sibling.js +1 -1
  391. package/src/sap/ui/test/matchers/matchers.js +35 -3
  392. package/src/sap/ui/test/pipelines/PipelineFactory.js +2 -2
  393. package/src/sap/ui/test/qunitPause.js +3 -2
  394. package/src/sap/ui/test/starter/_configureLoader.js +7 -5
  395. package/src/sap/ui/test/starter/_setupAndStart.js +113 -27
  396. package/src/sap/ui/test/starter/_utils.js +4 -1
  397. package/src/sap/ui/util/Mobile.js +8 -1
  398. package/src/sap/ui/util/Storage.js +1 -1
  399. package/src/ui5loader-autoconfig.js +661 -49
  400. package/src/ui5loader.js +18 -5
@@ -6,35 +6,22 @@
6
6
 
7
7
  // Provides class sap.ui.core.format.DateFormat
8
8
  sap.ui.define([
9
- 'sap/ui/core/CalendarType',
10
- 'sap/ui/core/Locale',
11
- 'sap/ui/core/LocaleData',
12
- 'sap/ui/core/date/UI5Date',
13
- 'sap/ui/core/date/UniversalDate',
14
- 'sap/ui/core/date/CalendarUtils',
15
- 'sap/ui/core/date/CalendarWeekNumbering',
16
- 'sap/ui/core/format/TimezoneUtil',
17
- "sap/base/util/deepEqual",
18
- "sap/base/strings/formatMessage",
19
9
  "sap/base/Log",
10
+ "sap/base/strings/formatMessage",
11
+ "sap/base/util/deepEqual",
20
12
  "sap/base/util/extend",
21
- "sap/ui/core/Configuration"
22
- ],
23
- function(
24
- CalendarType,
25
- Locale,
26
- LocaleData,
27
- UI5Date,
28
- UniversalDate,
29
- CalendarUtils,
30
- CalendarWeekNumbering,
31
- TimezoneUtil,
32
- deepEqual,
33
- formatMessage,
34
- Log,
35
- extend,
36
- Configuration
37
- ) {
13
+ "sap/ui/core/CalendarType",
14
+ "sap/ui/core/Configuration",
15
+ "sap/ui/core/Core",
16
+ "sap/ui/core/Locale",
17
+ "sap/ui/core/LocaleData",
18
+ "sap/ui/core/date/CalendarUtils",
19
+ "sap/ui/core/date/CalendarWeekNumbering",
20
+ "sap/ui/core/date/UI5Date",
21
+ "sap/ui/core/date/UniversalDate",
22
+ "sap/ui/core/format/TimezoneUtil"
23
+ ], function(Log, formatMessage, deepEqual, extend, CalendarType, Configuration, Core, Locale,
24
+ LocaleData, CalendarUtils, CalendarWeekNumbering, UI5Date, UniversalDate, TimezoneUtil) {
38
25
  "use strict";
39
26
 
40
27
  /**
@@ -250,6 +237,12 @@ sap.ui.define([
250
237
  * @param {string} [oFormatOptions.relativeStyle="wide"] since 1.32.10, 1.34.4 the style of the relative format. The valid values are "wide", "short", "narrow"
251
238
  * @param {boolean} [oFormatOptions.interval=false] since 1.48.0 if true, the {@link sap.ui.core.format.DateFormat#format format} method expects an array with two dates as the first argument and formats them as interval. Further interval "Jan 10, 2008 - Jan 12, 2008" will be formatted as "Jan 10-12, 2008" if the 'format' option is set with necessary symbols.
252
239
  * Otherwise the two given dates are formatted separately and concatenated with local dependent pattern.
240
+ * @param {string} [oFormatOptions.intervalDelimiter]
241
+ * Since 1.113.0, a delimiter for intervals. With a given interval delimiter a specific interval format is
242
+ * created. <b>Example:</b> If <code>oFormatOptions.intervalDelimiter</code> is set to "...", an interval would be
243
+ * given as "Jan 10, 2008...Feb 12, 2008".
244
+ * <b>Note:</b> If this format option is set, the locale-specific interval notation is overruled, for example
245
+ * "Jan 10 – Feb 12, 2008" becomes "Jan 10, 2008...Feb 12, 2008".
253
246
  * @param {boolean} [oFormatOptions.singleIntervalValue=false] Only relevant if oFormatOptions.interval is set to 'true'. This allows to pass an array with only one date object to the {@link sap.ui.core.format.DateFormat#format format} method.
254
247
  * @param {boolean} [oFormatOptions.UTC] if true, the date is formatted and parsed as UTC instead of the local timezone
255
248
  * @param {sap.ui.core.CalendarType} [oFormatOptions.calendarType] The calender type which is used to format and parse the date. This value is by default either set in configuration or calculated based on current locale.
@@ -288,6 +281,12 @@ sap.ui.define([
288
281
  * @param {string} [oFormatOptions.relativeStyle="wide"] since 1.32.10, 1.34.4 the style of the relative format. The valid values are "wide", "short", "narrow"
289
282
  * @param {boolean} [oFormatOptions.interval=false] since 1.48.0 if true, the {@link sap.ui.core.format.DateFormat#format format} method expects an array with two dates as the first argument and formats them as interval. Further interval "Jan 10, 2008 - Jan 12, 2008" will be formatted as "Jan 10-12, 2008" if the 'format' option is set with necessary symbols.
290
283
  * Otherwise the two given dates are formatted separately and concatenated with local dependent pattern.
284
+ * @param {string} [oFormatOptions.intervalDelimiter]
285
+ * Since 1.113.0, a delimiter for intervals. With a given interval delimiter a specific interval format is
286
+ * created. <b>Example:</b> If <code>oFormatOptions.intervalDelimiter</code> is set to "...", an interval would be
287
+ * given as "Jan 10, 2008, 9:15:00 AM...Jan 10, 2008, 11:45:00 AM".
288
+ * <b>Note:</b> If this format option is set, the locale-specific interval notation is overruled, for example
289
+ * "Jan 10, 2008, 9:15 – 11:45 AM" becomes "Jan 10, 2008, 9:15 AM...Jan 10, 2008, 11:45 AM".
291
290
  * @param {boolean} [oFormatOptions.singleIntervalValue=false] Only relevant if oFormatOptions.interval is set to 'true'. This allows to pass an array with only one date object to the {@link sap.ui.core.format.DateFormat#format format} method.
292
291
  * @param {boolean} [oFormatOptions.UTC] if true, the date is formatted and parsed as UTC instead of the local timezone
293
292
  * @param {sap.ui.core.CalendarType} [oFormatOptions.calendarType] The calender type which is used to format and parse the date. This value is by default either set in configuration or calculated based on current locale.
@@ -324,7 +323,7 @@ sap.ui.define([
324
323
  * Format a date object to a string according to the given timezone and format options.
325
324
  *
326
325
  * @example <caption>Format option showTimezone: true (default)</caption>
327
- * var oDate = new Date(Date.UTC(2021, 11, 24, 13, 37));
326
+ * var oDate = UI5Date.getInstance("2021-12-24T13:37:00Z");
328
327
  *
329
328
  * DateFormat.getDateTimeWithTimezoneInstance().format(oDate, "Europe/Berlin");
330
329
  * // output: "Dec 24, 2021, 2:37:00 PM Europe, Berlin"
@@ -333,12 +332,12 @@ sap.ui.define([
333
332
  * // output: "Dec 24, 2021, 8:37:00 AM Americas, New York"
334
333
  *
335
334
  * @example <caption>Format option showTimezone: false</caption>
336
- * var oDate = new Date(Date.UTC(2021, 11, 24, 13, 37));
335
+ * var oDate = UI5Date.getInstance("2021-12-24T13:37:00Z");
337
336
  * DateFormat.getDateTimeWithTimezoneInstance({showTimezone: false}).format(oDate, "America/New_York");
338
337
  * // output: "Dec 24, 2021, 8:37:00 AM"
339
338
  *
340
339
  * @example <caption>Format option showDate: false and showTime:false</caption>
341
- * var oDate = new Date(Date.UTC(2021, 11, 24, 13, 37));
340
+ * var oDate = UI5Date.getInstance("2021-12-24T13:37:00Z");
342
341
  * DateFormat.getDateTimeWithTimezoneInstance({showDate: false, showTime: false}).format(oDate, "America/New_York");
343
342
  * // output: "Americas, New York"
344
343
  *
@@ -359,7 +358,7 @@ sap.ui.define([
359
358
  * containing a date object and the timezone.
360
359
  *
361
360
  * @example <caption>Format option showTimezone: true (default)</caption>
362
- * var oDate = new Date(Date.UTC(2021, 11, 24, 13, 37));
361
+ * var oDate = UI5Date.getInstance("2021-12-24T13:37:00Z");
363
362
  *
364
363
  * DateFormat.getDateTimeWithTimezoneInstance().parse("Dec 24, 2021, 2:37:00 PM Europe, Berlin", "Europe/Berlin");
365
364
  * // output: [oDate, "Europe/Berlin"]
@@ -368,7 +367,7 @@ sap.ui.define([
368
367
  * // output: [oDate, "America/New_York"]
369
368
  *
370
369
  * @example <caption>Format option showTimezone: false</caption>
371
- * var oDate = new Date(Date.UTC(2021, 11, 24, 13, 37));
370
+ * var oDate = UI5Date.getInstance("2021-12-24T13:37:00Z");
372
371
  * DateFormat.getDateTimeWithTimezoneInstance({showTimezone: false}).parse("Dec 24, 2021, 8:37:00 AM", "America/New_York");
373
372
  * // output: [oDate, undefined]
374
373
  *
@@ -394,9 +393,12 @@ sap.ui.define([
394
393
  * <ul>
395
394
  * <li>An array containing datetime and timezone depending on the showDate, showTime and showTimezone options
396
395
  * <ul>
397
- * <li>(Default): [Date, string], e.g. [new Date("2021-11-13T13:22:33Z"), "America/New_York"]</li>
398
- * <li><code>showTimezone: false</code>: [Date, undefined], e.g. [new Date("2021-11-13T13:22:33Z"), undefined]</li>
399
- * <li><code>showDate: false, showTime: false</code>: [undefined, string], e.g. [undefined, "America/New_York"]</li>
396
+ * <li>(Default): [Date, string], e.g.
397
+ * [UI5Date.getInstance("2021-11-13T13:22:33Z"), "America/New_York"]</li>
398
+ * <li><code>showTimezone: false</code>: [Date, undefined], e.g.
399
+ * [UI5Date.getInstance("2021-11-13T13:22:33Z"), undefined]</li>
400
+ * <li><code>showDate: false, showTime: false</code>: [undefined, string], e.g.
401
+ * [undefined, "America/New_York"]</li>
400
402
  * </ul>
401
403
  * </li>
402
404
  * </ul>
@@ -406,6 +408,8 @@ sap.ui.define([
406
408
  * @function
407
409
  * @since 1.99
408
410
  */
411
+ // This method has a TypeScript specific overlay for a better return value documentation,
412
+ // see 'src/sap.ui.core/.dtsgenrc'
409
413
 
410
414
  /**
411
415
  * Get a datetimeWithTimezone instance of the DateFormat, which can be used for formatting.
@@ -493,6 +497,12 @@ sap.ui.define([
493
497
  * @param {string} [oFormatOptions.relativeStyle="wide"] since 1.32.10, 1.34.4 the style of the relative format. The valid values are "wide", "short", "narrow"
494
498
  * @param {boolean} [oFormatOptions.interval=false] since 1.48.0 if true, the {@link sap.ui.core.format.DateFormat#format format} method expects an array with two dates as the first argument and formats them as interval. Further interval "Jan 10, 2008 - Jan 12, 2008" will be formatted as "Jan 10-12, 2008" if the 'format' option is set with necessary symbols.
495
499
  * Otherwise the two given dates are formatted separately and concatenated with local dependent pattern.
500
+ * @param {string} [oFormatOptions.intervalDelimiter]
501
+ * Since 1.113.0, a delimiter for intervals. With a given interval delimiter a specific interval format is
502
+ * created. <b>Example:</b> If <code>oFormatOptions.intervalDelimiter</code> is set to "...", an interval would be
503
+ * given as "09:15 AM...11:45 AM".
504
+ * <b>Note:</b> If this format option is set, the locale-specific interval notation is overruled, for example
505
+ * "09:15 – 11:45 AM" becomes "9:15 AM...11:45 AM".
496
506
  * @param {boolean} [oFormatOptions.singleIntervalValue=false] Only relevant if oFormatOptions.interval is set to 'true'. This allows to pass an array with only one date object to the {@link sap.ui.core.format.DateFormat#format format} method.
497
507
  * @param {boolean} [oFormatOptions.UTC] if true, the time is formatted and parsed as UTC instead of the local timezone
498
508
  * @param {sap.ui.core.CalendarType} [oFormatOptions.calendarType] The calender type which is used to format and parse the date. This value is by default either set in configuration or calculated based on current locale.
@@ -595,6 +605,8 @@ sap.ui.define([
595
605
  }
596
606
 
597
607
  if (oFormat.oFormatOptions.interval) {
608
+ var sSinglePattern,
609
+ sDelimiter = oFormat.oFormatOptions.intervalDelimiter;
598
610
 
599
611
  if (oFormat.oFormatOptions.format) {
600
612
  // when 'format' option is set, generate the pattern based on the greatest difference
@@ -605,10 +617,14 @@ sap.ui.define([
605
617
  oFormat.intervalPatterns = [oFormat.intervalPatterns];
606
618
  }
607
619
 
608
- // Put the single date pattern, which is generated based on the oFormatOptions.format, into the array in case the date interval is formatted as a single date
609
- oFormat.intervalPatterns.push(oFormat.oLocaleData.getCustomDateTimePattern(oFormat.oFormatOptions.format, oFormat.oFormatOptions.calendarType));
620
+ sSinglePattern = oFormat.oLocaleData.getCustomDateTimePattern(oFormat.oFormatOptions.format,
621
+ oFormat.oFormatOptions.calendarType);
622
+ // Put the single date pattern, which is generated based on the oFormatOptions.format, into the array in
623
+ // case the date interval is formatted as a single date
624
+ oFormat.intervalPatterns.push(sSinglePattern);
610
625
 
611
626
  } else {
627
+ sSinglePattern = oFormat.oFormatOptions.pattern;
612
628
  oFormat.intervalPatterns = [
613
629
  // when 'format' option is not set, generate the combined interval pattern
614
630
  oFormat.oLocaleData.getCombinedIntervalPattern(oFormat.oFormatOptions.pattern, oFormat.oFormatOptions.calendarType),
@@ -618,6 +634,12 @@ sap.ui.define([
618
634
  }
619
635
  var sCommonConnectorPattern = createIntervalPatternWithNormalConnector(oFormat);
620
636
  oFormat.intervalPatterns.push(sCommonConnectorPattern);
637
+ if (sDelimiter) { // use delimiter pattern as first choice
638
+ sDelimiter = sDelimiter.replace(/'/g, "''");
639
+ sDelimiter = "'" + sDelimiter + "'";
640
+ oFormat.intervalPatterns.unshift(sSinglePattern + sDelimiter + sSinglePattern);
641
+ }
642
+ oFormat.intervalPatterns = Array.from(new Set(oFormat.intervalPatterns));
621
643
  }
622
644
 
623
645
  // if the current format isn't a fallback format, create its fallback formats
@@ -2302,10 +2324,10 @@ sap.ui.define([
2302
2324
  * browser's local timezone to convert the given date.
2303
2325
  *
2304
2326
  * When using instances from getDateTimeWithTimezoneInstance, please see the corresponding documentation:
2305
- * {@link sap.ui.core.format.DateFormat.getDateTimeWithTimezoneInstance#format}.
2327
+ * {@link sap.ui.core.format.DateFormat.DateTimeWithTimezone#format}.
2306
2328
  *
2307
2329
  * @example <caption>DateTime (assuming timezone "Europe/Berlin")</caption>
2308
- * var oDate = new Date(Date.UTC(2021, 11, 24, 13, 37));
2330
+ * var oDate = UI5Date.getInstance("2021-12-24T13:37:00Z");
2309
2331
  * DateFormat.getDateTimeInstance().format(oDate);
2310
2332
  * // output: "Dec 24, 2021, 2:37:00 PM"
2311
2333
  *
@@ -2399,27 +2421,55 @@ sap.ui.define([
2399
2421
  return sResult;
2400
2422
  };
2401
2423
 
2402
- DateFormat.prototype._formatInterval = function(aJSDates, bUTC) {
2403
- var sCalendarType = this.oFormatOptions.calendarType;
2404
- var oFromDate = UniversalDate.getInstance(aJSDates[0], sCalendarType);
2405
- var oToDate = UniversalDate.getInstance(aJSDates[1], sCalendarType);
2406
- var oDate;
2407
- var oPart;
2408
- var sSymbol;
2409
- var aBuffer = [];
2410
- var sPattern;
2411
- var aFormatArray = [];
2424
+ /**
2425
+ * Checks whether the interval to be formatted has to use the pattern of a custom interval delimiter.
2426
+ *
2427
+ * @param {object} oDiffFields
2428
+ * An object describing which date information is required for this instance's interval format,
2429
+ * for example <code>{"Day": true, "Minutes": true}</code>
2430
+ * @returns {boolean}
2431
+ * Whether to use the custom interval delimiter pattern
2432
+ *
2433
+ * @private
2434
+ */
2435
+ DateFormat.prototype._useCustomIntervalDelimiter = function (oDiffFields) {
2436
+ var aTokens;
2437
+
2438
+ if (!this.oFormatOptions.intervalDelimiter) {
2439
+ return false;
2440
+ }
2441
+ // If there are no differences in the date/time parts specified by "oFormatOptions.format", a single value is
2442
+ // formatted and there is no need to use the custom delimiter pattern.
2443
+ if (this.oFormatOptions.format) {
2444
+ aTokens = this.oLocaleData._parseSkeletonFormat(this.oFormatOptions.format);
2412
2445
 
2413
- var oDiffField = this._getGreatestDiffField([oFromDate, oToDate]);
2446
+ return aTokens.some(function (oToken) {
2447
+ return oDiffFields[oToken.group];
2448
+ });
2449
+ }
2450
+
2451
+ return true;
2452
+ };
2414
2453
 
2415
- if (!oDiffField) {
2454
+ DateFormat.prototype._formatInterval = function(aJSDates, bUTC) {
2455
+ var oDate, oPart, sPattern, sSymbol,
2456
+ aBuffer = [],
2457
+ sCalendarType = this.oFormatOptions.calendarType,
2458
+ aFormatArray = [],
2459
+ oFromDate = UniversalDate.getInstance(aJSDates[0], sCalendarType),
2460
+ oToDate = UniversalDate.getInstance(aJSDates[1], sCalendarType),
2461
+ oDiffFields = this._getDiffFields([oFromDate, oToDate]);
2462
+
2463
+ if (!oDiffFields) {
2416
2464
  return this._format(aJSDates[0], bUTC);
2417
2465
  }
2418
2466
 
2419
- if (this.oFormatOptions.format) {
2467
+ if (this._useCustomIntervalDelimiter(oDiffFields)) {
2468
+ sPattern = this.intervalPatterns[0];
2469
+ } else if (this.oFormatOptions.format) {
2420
2470
  // when 'format' option is set, generate the pattern based on the greatest difference
2421
- sPattern = this.oLocaleData.getCustomIntervalPattern(this.oFormatOptions.format, oDiffField, sCalendarType);
2422
-
2471
+ sPattern = this.oLocaleData.getCustomIntervalPattern(this.oFormatOptions.format, oDiffFields,
2472
+ sCalendarType);
2423
2473
  } else {
2424
2474
  sPattern = this.oLocaleData.getCombinedIntervalPattern(this.oFormatOptions.pattern, sCalendarType);
2425
2475
  }
@@ -2454,8 +2504,18 @@ sap.ui.define([
2454
2504
  Seconds: "Second"
2455
2505
  };
2456
2506
 
2457
- // the expected dates are UTC and therefore their UTC functions are called, e.g. getUTCHours
2458
- DateFormat.prototype._getGreatestDiffField = function(aDates) {
2507
+ /**
2508
+ * Returns an object containing the relevant date/time parts that differ in the two given dates.
2509
+ *
2510
+ * @param {sap.ui.core.date.UniversalDate[]} aDates
2511
+ * An array with two UniversalDate instances representing the start and the end date of the interval;
2512
+ * the dates are expected to be in UTC time zone
2513
+ * @returns {Object<string, boolean>|null}
2514
+ * An object containing the different date/time parts, or <code>null</code> if the dates are the same
2515
+ *
2516
+ * @private
2517
+ */
2518
+ DateFormat.prototype._getDiffFields = function(aDates) {
2459
2519
  var bDiffFound = false,
2460
2520
  mDiff = {};
2461
2521
 
@@ -2709,7 +2769,7 @@ sap.ui.define([
2709
2769
  }
2710
2770
  if (oDateValue.tzDiff) {
2711
2771
  // tzDiff is in seconds for a higher precision (historical timezone might have differences in seconds)
2712
- // e.g. new Date(Date.UTC(1730, 0, 1))
2772
+ // e.g. UI5Date.getInstance("1730-01-01T00:00:00Z")
2713
2773
  // is in Berlin: Sun Jan 01 1730 00:53:28 GMT+0053 (Central European Standard Time)
2714
2774
  oDate.setUTCSeconds(oDate.getUTCSeconds() + oDateValue.tzDiff);
2715
2775
  }
@@ -2761,10 +2821,10 @@ sap.ui.define([
2761
2821
  * browser's local timezone to convert the given date.
2762
2822
  *
2763
2823
  * When using instances from getDateTimeWithTimezoneInstance, please see the corresponding documentation:
2764
- * {@link sap.ui.core.format.DateFormat.getDateTimeWithTimezoneInstance#parse}.
2824
+ * {@link sap.ui.core.format.DateFormat.DateTimeWithTimezone#parse}.
2765
2825
  *
2766
2826
  * @example <caption>DateTime (assuming timezone "Europe/Berlin")</caption>
2767
- * var oDate = new Date(Date.UTC(2021, 11, 24, 13, 37));
2827
+ * var oDate = UI5Date.getInstance("2021-12-24T13:37:00Z");
2768
2828
  * DateFormat.getDateTimeInstance().parse("Dec 24, 2021, 2:37:00 PM");
2769
2829
  * // output: oDate
2770
2830
  *
@@ -3363,6 +3423,53 @@ sap.ui.define([
3363
3423
 
3364
3424
  };
3365
3425
 
3426
+ /**
3427
+ * Returns a language-dependent placeholder text according to this instance's format options, for example
3428
+ * "e.g. 12/31/2023".
3429
+ *
3430
+ * @returns {string} The language-dependent placeholder text
3431
+ *
3432
+ * @private
3433
+ * @ui5-restricted sap.m
3434
+ */
3435
+ DateFormat.prototype.getPlaceholderText = function() {
3436
+ var oResourceBundle = Core.getLibraryResourceBundle();
3437
+
3438
+ return oResourceBundle.getText("date.placeholder", [this.format.apply(this, this.getSampleValue())]);
3439
+ };
3440
+
3441
+ /**
3442
+ * Returns a sample date value.
3443
+ *
3444
+ * @returns {array}
3445
+ * A sample date value as an array of parameter values as expected by {@link #format}
3446
+ *
3447
+ * @private
3448
+ */
3449
+ DateFormat.prototype.getSampleValue = function() {
3450
+ var oDate,
3451
+ iFullYear = UI5Date.getInstance().getFullYear(),
3452
+ bUTC = this.oFormatOptions.UTC;
3453
+
3454
+ function getDate(iYear, iMonth, iDay, iHours, iMinutes, iSeconds, iMilliseconds) {
3455
+ return bUTC
3456
+ ? UI5Date.getInstance(Date.UTC(iYear, iMonth, iDay, iHours, iMinutes, iSeconds, iMilliseconds))
3457
+ : UI5Date.getInstance(iYear, iMonth, iDay, iHours, iMinutes, iSeconds, iMilliseconds);
3458
+ }
3459
+
3460
+ oDate = getDate(iFullYear, 11, 31, 23, 59, 58, 123);
3461
+
3462
+ if (this.type === mDateFormatTypes.DATETIME_WITH_TIMEZONE) {
3463
+ return [oDate, Configuration.getTimezone()];
3464
+ }
3465
+
3466
+ if (this.oFormatOptions.interval) {
3467
+ return [[getDate(iFullYear, 11, 22, 9, 12, 34, 567), oDate]];
3468
+ }
3469
+
3470
+ return [oDate];
3471
+ };
3472
+
3366
3473
  return DateFormat;
3367
3474
 
3368
3475
  }, /* bExport= */ true);
@@ -1479,7 +1479,9 @@ sap.ui.define([
1479
1479
 
1480
1480
  if (oOptions.type === mNumberType.UNIT && !oOptions.showNumber) {
1481
1481
  if (mUnitPatterns) {
1482
- sPluralCategory = this.oLocaleData.getPluralCategory(sIntegerPart + "." + sFractionPart);
1482
+ // the plural category of a unit pattern is determined for the complete number, maybe as compact
1483
+ // notation, e.g. "1.2M" must check "1.2c6"
1484
+ sPluralCategory = this._getPluralCategory(sIntegerPart, sFractionPart, oShortFormat);
1483
1485
 
1484
1486
  sPattern = mUnitPatterns["unitPattern-count-" + sPluralCategory];
1485
1487
  if (!sPattern) {
@@ -1525,7 +1527,9 @@ sap.ui.define([
1525
1527
 
1526
1528
  if (oShortFormat && oShortFormat.formatString && oOptions.showScale && oOptions.type !== mNumberType.CURRENCY) {
1527
1529
  // Get correct format string based on actual decimal/fraction digits
1528
- sPluralCategory = this.oLocaleData.getPluralCategory(sIntegerPart + "." + sFractionPart);
1530
+ // the plural category of a compact number is determined for the reduced short number without compact
1531
+ // notation, e.g. "1.2M" must check "1.2" (see CLDR "decimalFormat-short" and "decimalFormat-long")
1532
+ sPluralCategory = this._getPluralCategory(sIntegerPart, sFractionPart);
1529
1533
  oShortFormat.formatString = this.oLocaleData.getDecimalFormat(oOptions.style, oShortFormat.key, sPluralCategory);
1530
1534
  //inject formatted shortValue in the formatString
1531
1535
  sResult = oShortFormat.formatString.replace(oShortFormat.valueSubString, sResult);
@@ -1548,7 +1552,9 @@ sap.ui.define([
1548
1552
  }
1549
1553
 
1550
1554
  // Get correct format string based on actual decimal/fraction digits
1551
- sPluralCategory = this.oLocaleData.getPluralCategory(sIntegerPart + "." + sFractionPart);
1555
+ // the plural category of a compact currency is determined for the reduced short number without compact
1556
+ // notation, e.g. "1.2M" must check "1.2" (see CLDR "currencyFormat-short")
1557
+ sPluralCategory = this._getPluralCategory(sIntegerPart, sFractionPart);
1552
1558
  if (bIndianCurrency) {
1553
1559
  sPattern = getIndianCurrencyFormat(sStyle, oShortFormat.key, sPluralCategory);
1554
1560
  } else {
@@ -1602,8 +1608,9 @@ sap.ui.define([
1602
1608
  }
1603
1609
 
1604
1610
  if (oOptions.showMeasure && sMeasure && oOptions.type === mNumberType.UNIT) {
1605
-
1606
- sPluralCategory = this.oLocaleData.getPluralCategory(sIntegerPart + "." + sFractionPart);
1611
+ // the plural category of a unit pattern is determined for the complete number, maybe as compact
1612
+ // notation, e.g. "1.2M" must check "1.2c6"
1613
+ sPluralCategory = this._getPluralCategory(sIntegerPart, sFractionPart, oShortFormat);
1607
1614
 
1608
1615
  if (mUnitPatterns) {
1609
1616
  sPattern = mUnitPatterns["unitPattern-count-" + sPluralCategory];
@@ -1622,6 +1629,34 @@ sap.ui.define([
1622
1629
  return this._addOriginInfo(sResult);
1623
1630
  };
1624
1631
 
1632
+ /**
1633
+ * Gets the plural category for the given number information. With a given <code>oShortFormat</code>
1634
+ * the category is determined based on the compact notation.
1635
+ *
1636
+ * @param {int} sIntegerPart
1637
+ * The integer part
1638
+ * @param {int} [sFractionPart]
1639
+ * The fraction part
1640
+ * @param {{magnitude: int}} [oShortFormat]
1641
+ * An object containing the <code>magnitude</code> information describing the factor of a compact number
1642
+ * @returns {string}
1643
+ * The plural category
1644
+ *
1645
+ * @private
1646
+ */
1647
+ NumberFormat.prototype._getPluralCategory = function (sIntegerPart, sFractionPart, oShortFormat) {
1648
+ var sNumber = sIntegerPart;
1649
+
1650
+ if (sFractionPart) {
1651
+ sNumber += "." + sFractionPart;
1652
+ }
1653
+ if (oShortFormat) {
1654
+ sNumber += "c" + oShortFormat.magnitude.toExponential().slice(2);
1655
+ }
1656
+
1657
+ return this.oLocaleData.getPluralCategory(sNumber);
1658
+ };
1659
+
1625
1660
  NumberFormat.prototype._addOriginInfo = function(sResult) {
1626
1661
  if (Configuration.getOriginInfo()) {
1627
1662
  // String object is created on purpose and must not be a string literal
@@ -11,7 +11,7 @@ sap.ui.define([], function() {
11
11
  * Static collection of utility functions to handle time zone related conversions
12
12
  *
13
13
  * @author SAP SE
14
- * @version 1.112.2
14
+ * @version 1.114.0
15
15
  * @namespace
16
16
  * @alias sap.ui.core.format.TimezoneUtil
17
17
  * @private
@@ -400,7 +400,7 @@ sap.ui.define([
400
400
  * @see {@link topic:6322164936f047de941ec522b95d7b70 Hyphenation for Text Controls}
401
401
  * @extends sap.ui.base.ManagedObject
402
402
  * @author SAP SE
403
- * @version 1.112.2
403
+ * @version 1.114.0
404
404
  * @hideconstructor
405
405
  * @public
406
406
  * @since 1.60
@@ -25,13 +25,13 @@ sap.ui.define([
25
25
  * @namespace
26
26
  * @alias sap.ui.core
27
27
  * @author SAP SE
28
- * @version 1.112.2
28
+ * @version 1.114.0
29
29
  * @since 0.8
30
30
  * @public
31
31
  */
32
32
  var thisLib = Library.init({
33
33
  name: "sap.ui.core",
34
- version: "1.112.2",
34
+ version: "1.114.0",
35
35
  designtime: "sap/ui/core/designtime/library.designtime",
36
36
  types: [
37
37
 
@@ -1539,7 +1539,7 @@ sap.ui.define([
1539
1539
  /**
1540
1540
  * Sort order of a column.
1541
1541
  *
1542
- * @version 1.112.2
1542
+ * @version 1.114.0
1543
1543
  * @enum {string}
1544
1544
  * @public
1545
1545
  * @since 1.61.0
@@ -29,7 +29,7 @@ sap.ui.define(['sap/ui/core/message/MessageProcessor'],
29
29
  * @extends sap.ui.core.message.MessageProcessor
30
30
  *
31
31
  * @author SAP SE
32
- * @version 1.112.2
32
+ * @version 1.114.0
33
33
  *
34
34
  * @public
35
35
  * @alias sap.ui.core.message.ControlMessageProcessor
@@ -35,7 +35,7 @@ sap.ui.define([
35
35
  * @extends sap.ui.base.Object
36
36
  *
37
37
  * @author SAP SE
38
- * @version 1.112.2
38
+ * @version 1.114.0
39
39
  *
40
40
  * @param {object} [mParameters] a map which contains the following parameter properties:
41
41
  * @param {string} [mParameters.id] The message id: will be generated if no id is set
@@ -36,7 +36,7 @@ sap.ui.define([
36
36
  * @extends sap.ui.base.EventProvider
37
37
  *
38
38
  * @author SAP SE
39
- * @version 1.112.2
39
+ * @version 1.114.0
40
40
  *
41
41
  * @public
42
42
  * @alias sap.ui.core.message.MessageManager
@@ -24,7 +24,7 @@ sap.ui.define(["sap/ui/base/Object", "sap/base/Log"],
24
24
  * @extends sap.ui.base.Object
25
25
  *
26
26
  * @author SAP SE
27
- * @version 1.112.2
27
+ * @version 1.114.0
28
28
  * @public
29
29
  * @abstract
30
30
  * @alias sap.ui.core.message.MessageParser
@@ -27,7 +27,7 @@ sap.ui.define(['sap/ui/base/EventProvider', "sap/base/util/uid"],
27
27
  * @extends sap.ui.base.EventProvider
28
28
  *
29
29
  * @author SAP SE
30
- * @version 1.112.2
30
+ * @version 1.114.0
31
31
  *
32
32
  * @public
33
33
  * @alias sap.ui.core.message.MessageProcessor
@@ -45,6 +45,8 @@ BUSY_VALUE_TEXT=Busy
45
45
  date.week.calendarweek.wide=Calendar Week {0}
46
46
  #XTXT: the short pattern for formatting a date using calendar week number
47
47
  date.week.calendarweek.narrow=CW {0}
48
+ #XTXT: Placeholder text for input control with a sample value such as date or time
49
+ date.placeholder=e.g. {0}
48
50
 
49
51
  #########
50
52
  # Texts for sap.ui.core.format.FileSizeFormat
@@ -22,6 +22,7 @@ BUSY_VALUE_TEXT=\u0645\u0634\u063A\u0648\u0644
22
22
 
23
23
  date.week.calendarweek.wide=\u0623\u0633\u0628\u0648\u0639 \u0627\u0644\u062A\u0642\u0648\u064A\u0645 {0}
24
24
  date.week.calendarweek.narrow=\u0623\u0633\u0628\u0648\u0639 \u0627\u0644\u062A\u0642\u0648\u064A\u0645 {0}
25
+ date.placeholder=\u0639\u0644\u0649 \u0633\u0628\u064A\u0644 \u0627\u0644\u0645\u062B\u0627\u0644 {0}
25
26
 
26
27
 
27
28
  FileSize.Byte={0} \u0628\u0627\u064A\u062A
@@ -175,7 +176,7 @@ Icon.message-success=\u062A\u0645 \u0628\u0646\u062C\u0627\u062D
175
176
  Icon.message-warning=\u062A\u062D\u0630\u064A\u0631
176
177
  Icon.move=\u0646\u0642\u0644
177
178
  Icon.multi-select=\u062A\u062D\u062F\u064A\u062F \u0645\u062A\u0639\u062F\u062F
178
- Icon.nav-back=\u0627\u0644\u062A\u0646\u0642\u0644 \u0644\u0644\u062E\u0644\u0641
179
+ Icon.nav-back=\u0627\u0644\u062E\u0644\u0641
179
180
  Icon.overflow=\u0627\u0644\u0645\u0632\u064A\u062F
180
181
  Icon.redo=\u0625\u0639\u0627\u062F\u0629
181
182
  Icon.refresh=\u062A\u062D\u062F\u064A\u062B
@@ -22,6 +22,7 @@ BUSY_VALUE_TEXT=\u0417\u0430\u0435\u0442
22
22
 
23
23
  date.week.calendarweek.wide=\u041A\u0430\u043B\u0435\u043D\u0434\u0430\u0440\u043D\u0430 \u0441\u0435\u0434\u043C\u0438\u0446\u0430 {0}
24
24
  date.week.calendarweek.narrow=\u041A\u0421 {0}
25
+ date.placeholder=\u041D\u0430\u043F\u0440\u0438\u043C\u0435\u0440 {0}
25
26
 
26
27
 
27
28
  FileSize.Byte={0} \u0431\u0430\u0439\u0442
@@ -22,6 +22,7 @@ BUSY_VALUE_TEXT=Ocupat
22
22
 
23
23
  date.week.calendarweek.wide=Setmana natural {0}
24
24
  date.week.calendarweek.narrow=Setmana natural {0}
25
+ date.placeholder=Per exemple, {0}
25
26
 
26
27
 
27
28
  FileSize.Byte={0} byte
@@ -22,6 +22,7 @@ BUSY_VALUE_TEXT=Zam\u011Bstnan\u00FD
22
22
 
23
23
  date.week.calendarweek.wide=Kalend\u00E1\u0159n\u00ED t\u00FDdny{0}
24
24
  date.week.calendarweek.narrow=KT {0}
25
+ date.placeholder=Nap\u0159\u00EDklad {0}
25
26
 
26
27
 
27
28
  FileSize.Byte={0} Byte
@@ -175,7 +176,7 @@ Icon.message-success=\u00DAsp\u011B\u0161n\u00E9
175
176
  Icon.message-warning=Upozorn\u011Bn\u00ED
176
177
  Icon.move=P\u0159em\u00EDst\u011Bn\u00ED
177
178
  Icon.multi-select=V\u00EDcen\u00E1sobn\u00FD v\u00FDb\u011Br
178
- Icon.nav-back=Navigovat zp\u011Bt
179
+ Icon.nav-back=Zp\u011Bt
179
180
  Icon.overflow=V\u00EDce
180
181
  Icon.redo=Opakov\u00E1n\u00ED
181
182
  Icon.refresh=Aktualizovat
@@ -22,6 +22,7 @@ BUSY_VALUE_TEXT=Prysur
22
22
 
23
23
  date.week.calendarweek.wide=Wythnos Galendr {0}
24
24
  date.week.calendarweek.narrow=WG {0}
25
+ date.placeholder=Er enghraifft {0}
25
26
 
26
27
 
27
28
  FileSize.Byte={0} Beit
@@ -175,7 +176,7 @@ Icon.message-success=Llwyddiannus
175
176
  Icon.message-warning=Rhybudd
176
177
  Icon.move=Symud
177
178
  Icon.multi-select=Dewis Mwy nag Un
178
- Icon.nav-back=Llywio'n \u00F4l
179
+ Icon.nav-back=Yn \u00F4l
179
180
  Icon.overflow=Mwy
180
181
  Icon.redo=Ail-wneud
181
182
  Icon.refresh=Adnewyddu
@@ -22,6 +22,7 @@ BUSY_VALUE_TEXT=Optaget
22
22
 
23
23
  date.week.calendarweek.wide=Kalenderuge {0}
24
24
  date.week.calendarweek.narrow=KU {0}
25
+ date.placeholder=For eksempel {0}
25
26
 
26
27
 
27
28
  FileSize.Byte={0} byte
@@ -175,7 +176,7 @@ Icon.message-success=Uden fejl
175
176
  Icon.message-warning=Advarsel
176
177
  Icon.move=Flyt
177
178
  Icon.multi-select=Multiselektion
178
- Icon.nav-back=Naviger tilbage
179
+ Icon.nav-back=Tilbage
179
180
  Icon.overflow=Mere
180
181
  Icon.redo=Gentag
181
182
  Icon.refresh=Opdater