@openui5/sap.ui.core 1.105.1 → 1.107.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 (351) hide show
  1. package/.reuse/dep5 +20 -17
  2. package/THIRDPARTY.txt +31 -21
  3. package/package.json +1 -1
  4. package/src/jquery.sap.dom.js +10 -10
  5. package/src/jquery.sap.global.js +24 -216
  6. package/src/jquery.sap.history.js +1 -1
  7. package/src/jquery.sap.properties.js +2 -2
  8. package/src/jquery.sap.resources.js +1 -1
  9. package/src/jquery.sap.script.js +1 -1
  10. package/src/jquery.sap.storage.js +4 -4
  11. package/src/jquery.sap.ui.js +5 -7
  12. package/src/sap/base/i18n/ResourceBundle.js +7 -11
  13. package/src/sap/base/util/LoaderExtensions.js +6 -6
  14. package/src/sap/base/util/ObjectPath.js +1 -1
  15. package/src/sap/base/util/Properties.js +1 -1
  16. package/src/sap/base/util/fetch.js +8 -10
  17. package/src/sap/base/util/mixedFetch.js +1 -1
  18. package/src/sap/base/util/restricted/_CancelablePromise.js +1 -1
  19. package/src/sap/base/util/restricted/_castArray.js +1 -1
  20. package/src/sap/base/util/restricted/_compact.js +1 -1
  21. package/src/sap/base/util/restricted/_curry.js +1 -1
  22. package/src/sap/base/util/restricted/_debounce.js +1 -1
  23. package/src/sap/base/util/restricted/_difference.js +1 -1
  24. package/src/sap/base/util/restricted/_differenceBy.js +1 -1
  25. package/src/sap/base/util/restricted/_differenceWith.js +1 -1
  26. package/src/sap/base/util/restricted/_flatMap.js +1 -1
  27. package/src/sap/base/util/restricted/_flatMapDeep.js +1 -1
  28. package/src/sap/base/util/restricted/_flatMapDepth.js +1 -1
  29. package/src/sap/base/util/restricted/_flatten.js +1 -1
  30. package/src/sap/base/util/restricted/_flattenDeep.js +1 -1
  31. package/src/sap/base/util/restricted/_flattenDepth.js +1 -1
  32. package/src/sap/base/util/restricted/_intersection.js +1 -1
  33. package/src/sap/base/util/restricted/_intersectionBy.js +1 -1
  34. package/src/sap/base/util/restricted/_intersectionWith.js +1 -1
  35. package/src/sap/base/util/restricted/_isEqual.js +1 -1
  36. package/src/sap/base/util/restricted/_isEqualWith.js +1 -1
  37. package/src/sap/base/util/restricted/_isNil.js +1 -1
  38. package/src/sap/base/util/restricted/_max.js +1 -1
  39. package/src/sap/base/util/restricted/_merge.js +1 -1
  40. package/src/sap/base/util/restricted/_mergeWith.js +1 -1
  41. package/src/sap/base/util/restricted/_min.js +1 -1
  42. package/src/sap/base/util/restricted/_omit.js +1 -1
  43. package/src/sap/base/util/restricted/_pick.js +1 -1
  44. package/src/sap/base/util/restricted/_pickBy.js +1 -1
  45. package/src/sap/base/util/restricted/_throttle.js +1 -1
  46. package/src/sap/base/util/restricted/_toArray.js +1 -1
  47. package/src/sap/base/util/restricted/_union.js +1 -1
  48. package/src/sap/base/util/restricted/_unionBy.js +1 -1
  49. package/src/sap/base/util/restricted/_unionWith.js +1 -1
  50. package/src/sap/base/util/restricted/_uniq.js +1 -1
  51. package/src/sap/base/util/restricted/_uniqBy.js +1 -1
  52. package/src/sap/base/util/restricted/_uniqWith.js +1 -1
  53. package/src/sap/base/util/restricted/_without.js +1 -1
  54. package/src/sap/base/util/restricted/_xor.js +1 -1
  55. package/src/sap/base/util/restricted/_xorBy.js +1 -1
  56. package/src/sap/base/util/restricted/_xorWith.js +1 -1
  57. package/src/sap/base/util/restricted/_zipObject.js +1 -1
  58. package/src/sap/base/util/restricted/_zipObjectDeep.js +1 -1
  59. package/src/sap/base/util/syncFetch.js +9 -16
  60. package/src/sap/ui/Device.js +3 -3
  61. package/src/sap/ui/Global.js +7 -14
  62. package/src/sap/ui/VersionInfo.js +57 -54
  63. package/src/sap/ui/base/BindingInfo.js +198 -0
  64. package/src/sap/ui/base/DataType.js +5 -5
  65. package/src/sap/ui/base/Event.js +2 -2
  66. package/src/sap/ui/base/EventProvider.js +2 -2
  67. package/src/sap/ui/base/Interface.js +1 -1
  68. package/src/sap/ui/base/ManagedObject.js +209 -979
  69. package/src/sap/ui/base/ManagedObjectMetadata.js +6 -6
  70. package/src/sap/ui/base/ManagedObjectRegistry.js +4 -3
  71. package/src/sap/ui/base/Metadata.js +1 -1
  72. package/src/sap/ui/base/Object.js +1 -1
  73. package/src/sap/ui/base/ObjectPool.js +1 -1
  74. package/src/sap/ui/core/.library +13 -9
  75. package/src/sap/ui/core/AppCacheBuster.js +3 -4
  76. package/src/sap/ui/core/BusyIndicator.js +1 -1
  77. package/src/sap/ui/core/BusyIndicatorUtils.js +5 -6
  78. package/src/sap/ui/core/CalendarType.js +0 -1
  79. package/src/sap/ui/core/Component.js +16 -14
  80. package/src/sap/ui/core/ComponentContainer.js +6 -5
  81. package/src/sap/ui/core/ComponentMetadata.js +5 -12
  82. package/src/sap/ui/core/ComponentSupport.js +1 -1
  83. package/src/sap/ui/core/Configuration.js +525 -336
  84. package/src/sap/ui/core/Control.js +7 -7
  85. package/src/sap/ui/core/Core.js +102 -422
  86. package/src/sap/ui/core/CustomData.js +1 -1
  87. package/src/sap/ui/core/DeclarativeSupport.js +1 -1
  88. package/src/sap/ui/core/Element.js +65 -9
  89. package/src/sap/ui/core/ElementMetadata.js +1 -1
  90. package/src/sap/ui/core/EnabledPropagator.js +1 -1
  91. package/src/sap/ui/core/EventBus.js +1 -1
  92. package/src/sap/ui/core/FocusHandler.js +79 -9
  93. package/src/sap/ui/core/Fragment.js +1 -1
  94. package/src/sap/ui/core/HTML.js +1 -2
  95. package/src/sap/ui/core/History.js +1 -1
  96. package/src/sap/ui/core/Icon.js +1 -2
  97. package/src/sap/ui/core/IconPool.js +8 -8
  98. package/src/sap/ui/core/IndicationColorSupport.js +2 -2
  99. package/src/sap/ui/core/IntervalTrigger.js +1 -1
  100. package/src/sap/ui/core/InvisibleMessage.js +1 -2
  101. package/src/sap/ui/core/InvisibleRenderer.js +1 -1
  102. package/src/sap/ui/core/InvisibleText.js +5 -5
  103. package/src/sap/ui/core/Item.js +1 -2
  104. package/src/sap/ui/core/LabelEnablement.js +1 -1
  105. package/src/sap/ui/core/LayoutData.js +1 -2
  106. package/src/sap/ui/core/ListItem.js +1 -2
  107. package/src/sap/ui/core/LocalBusyIndicator.js +1 -2
  108. package/src/sap/ui/core/Locale.js +1 -1
  109. package/src/sap/ui/core/LocaleData.js +15 -13
  110. package/src/sap/ui/core/Manifest.js +8 -6
  111. package/src/sap/ui/core/Message.js +4 -6
  112. package/src/sap/ui/core/Popup.js +63 -6
  113. package/src/sap/ui/core/RenderManager.js +13 -5
  114. package/src/sap/ui/core/Renderer.js +5 -4
  115. package/src/sap/ui/core/Rendering.js +251 -0
  116. package/src/sap/ui/core/ResizeHandler.js +7 -7
  117. package/src/sap/ui/core/ScrollBar.js +6 -9
  118. package/src/sap/ui/core/ScrollBarRenderer.js +3 -3
  119. package/src/sap/ui/core/SeparatorItem.js +1 -2
  120. package/src/sap/ui/core/Title.js +1 -2
  121. package/src/sap/ui/core/TooltipBase.js +12 -14
  122. package/src/sap/ui/core/UIArea.js +396 -129
  123. package/src/sap/ui/core/UIComponent.js +3 -4
  124. package/src/sap/ui/core/UIComponentMetadata.js +1 -1
  125. package/src/sap/ui/core/ValueStateSupport.js +2 -2
  126. package/src/sap/ui/core/VariantLayoutData.js +1 -2
  127. package/src/sap/ui/core/XMLComposite.js +2 -2
  128. package/src/sap/ui/core/XMLCompositeMetadata.js +1 -1
  129. package/src/sap/ui/core/XMLTemplateProcessor.js +12 -10
  130. package/src/sap/ui/core/_ConfigurationProvider.js +187 -0
  131. package/src/sap/ui/core/cache/CacheManager.js +9 -8
  132. package/src/sap/ui/core/cache/LRUPersistentCache.js +4 -4
  133. package/src/sap/ui/core/cldr/es_BO.json +3 -3
  134. package/src/sap/ui/core/cldr/es_CL.json +3 -3
  135. package/src/sap/ui/core/cldr/es_MX.json +3 -3
  136. package/src/sap/ui/core/cldr/es_PE.json +3 -3
  137. package/src/sap/ui/core/cldr/es_UY.json +3 -3
  138. package/src/sap/ui/core/cldr/es_VE.json +2 -2
  139. package/src/sap/ui/core/date/Islamic.js +4 -4
  140. package/src/sap/ui/core/date/UniversalDate.js +8 -8
  141. package/src/sap/ui/core/date/UniversalDateUtils.js +3 -3
  142. package/src/sap/ui/core/delegate/ItemNavigation.js +5 -5
  143. package/src/sap/ui/core/delegate/ScrollEnablement.js +7 -6
  144. package/src/sap/ui/core/dnd/DragAndDrop.js +14 -9
  145. package/src/sap/ui/core/dnd/DragDropBase.js +1 -2
  146. package/src/sap/ui/core/dnd/DragDropInfo.js +1 -2
  147. package/src/sap/ui/core/dnd/DragInfo.js +1 -2
  148. package/src/sap/ui/core/dnd/DropInfo.js +1 -2
  149. package/src/sap/ui/core/format/DateFormat.js +14 -7
  150. package/src/sap/ui/core/format/DateFormatTimezoneDisplay.js +0 -1
  151. package/src/sap/ui/core/format/FileSizeFormat.js +4 -3
  152. package/src/sap/ui/core/format/ListFormat.js +4 -3
  153. package/src/sap/ui/core/format/NumberFormat.js +7 -6
  154. package/src/sap/ui/core/format/TimezoneUtil.js +1 -1
  155. package/src/sap/ui/core/hyphenation/Hyphenation.js +7 -6
  156. package/src/sap/ui/core/library.js +3 -55
  157. package/src/sap/ui/core/message/ControlMessageProcessor.js +1 -1
  158. package/src/sap/ui/core/message/Message.js +1 -1
  159. package/src/sap/ui/core/message/MessageManager.js +13 -23
  160. package/src/sap/ui/core/message/MessageParser.js +1 -1
  161. package/src/sap/ui/core/message/MessageProcessor.js +1 -1
  162. package/src/sap/ui/core/messagebundle_fr.properties +1 -1
  163. package/src/sap/ui/core/mvc/Controller.js +8 -3
  164. package/src/sap/ui/core/mvc/EventHandlerResolver.js +5 -3
  165. package/src/sap/ui/core/mvc/HTMLView.js +1 -2
  166. package/src/sap/ui/core/mvc/JSONView.js +1 -2
  167. package/src/sap/ui/core/mvc/JSView.js +2 -3
  168. package/src/sap/ui/core/mvc/TemplateView.js +1 -2
  169. package/src/sap/ui/core/mvc/View.js +21 -20
  170. package/src/sap/ui/core/mvc/ViewType.js +0 -1
  171. package/src/sap/ui/core/mvc/XMLView.js +18 -18
  172. package/src/sap/ui/core/plugin/DeclarativeSupport.js +1 -1
  173. package/src/sap/ui/core/plugin/LessSupport.js +1 -1
  174. package/src/sap/ui/core/plugin/TemplatingSupport.js +1 -1
  175. package/src/sap/ui/core/postmessage/Bus.js +1 -1
  176. package/src/sap/ui/core/postmessage/confirmationDialog.js +1 -1
  177. package/src/sap/ui/core/routing/Router.js +1 -1
  178. package/src/sap/ui/core/routing/async/Target.js +4 -3
  179. package/src/sap/ui/core/rules/App.support.js +11 -13
  180. package/src/sap/ui/core/rules/Config.support.js +19 -17
  181. package/src/sap/ui/core/rules/CoreHelper.support.js +4 -4
  182. package/src/sap/ui/core/rules/Model.support.js +8 -8
  183. package/src/sap/ui/core/rules/Rendering.support.js +1 -1
  184. package/src/sap/ui/core/rules/Theming.support.js +8 -8
  185. package/src/sap/ui/core/rules/View.support.js +9 -9
  186. package/src/sap/ui/core/search/OpenSearchProvider.js +1 -2
  187. package/src/sap/ui/core/search/SearchProvider.js +1 -3
  188. package/src/sap/ui/core/service/Service.js +1 -1
  189. package/src/sap/ui/core/service/ServiceFactory.js +1 -1
  190. package/src/sap/ui/core/service/ServiceFactoryRegistry.js +1 -1
  191. package/src/sap/ui/core/support/Hotkeys.js +2 -3
  192. package/src/sap/ui/core/support/Plugin.js +1 -1
  193. package/src/sap/ui/core/support/Support.js +1 -1
  194. package/src/sap/ui/core/support/ToolsAPI.js +11 -13
  195. package/src/sap/ui/core/support/plugins/ControlTree.js +4 -4
  196. package/src/sap/ui/core/support/plugins/Debugging.js +3 -3
  197. package/src/sap/ui/core/support/plugins/Interaction.js +1 -1
  198. package/src/sap/ui/core/support/plugins/LocalStorage.js +1 -1
  199. package/src/sap/ui/core/support/plugins/Performance.js +1 -1
  200. package/src/sap/ui/core/support/plugins/Selector.js +1 -1
  201. package/src/sap/ui/core/support/plugins/TechInfo.js +1 -1
  202. package/src/sap/ui/core/support/plugins/Trace.js +1 -1
  203. package/src/sap/ui/core/support/plugins/ViewInfo.js +2 -2
  204. package/src/sap/ui/core/support/support.html +1 -1
  205. package/src/sap/ui/core/support/techinfo/TechnicalInfo.js +10 -8
  206. package/src/sap/ui/core/theming/Parameters.js +8 -15
  207. package/src/sap/ui/core/tmpl/DOMAttribute.js +1 -2
  208. package/src/sap/ui/core/tmpl/DOMElement.js +1 -4
  209. package/src/sap/ui/core/tmpl/HandlebarsTemplate.js +1 -1
  210. package/src/sap/ui/core/tmpl/Template.js +6 -5
  211. package/src/sap/ui/core/tmpl/TemplateControl.js +1 -2
  212. package/src/sap/ui/core/util/AsyncHintsHelper.js +1 -1
  213. package/src/sap/ui/core/util/Export.js +1 -1
  214. package/src/sap/ui/core/util/ExportCell.js +1 -1
  215. package/src/sap/ui/core/util/ExportColumn.js +1 -1
  216. package/src/sap/ui/core/util/ExportRow.js +1 -1
  217. package/src/sap/ui/core/util/ExportType.js +1 -1
  218. package/src/sap/ui/core/util/ExportTypeCSV.js +1 -1
  219. package/src/sap/ui/core/util/File.js +1 -1
  220. package/src/sap/ui/core/util/LibraryInfo.js +1 -1
  221. package/src/sap/ui/core/util/MockServer.js +48 -72
  222. package/src/sap/ui/core/util/PasteHelper.js +1 -1
  223. package/src/sap/ui/core/util/ResponsivePaddingsEnablement.js +4 -3
  224. package/src/sap/ui/core/util/XMLPreprocessor.js +2 -2
  225. package/src/sap/ui/core/util/reflection/BaseTreeModifier.js +1 -1
  226. package/src/sap/ui/core/util/serializer/HTMLViewSerializer.js +1 -1
  227. package/src/sap/ui/core/util/serializer/Serializer.js +1 -1
  228. package/src/sap/ui/core/util/serializer/ViewSerializer.js +4 -4
  229. package/src/sap/ui/core/util/serializer/XMLViewSerializer.js +1 -1
  230. package/src/sap/ui/core/util/serializer/delegate/Delegate.js +1 -1
  231. package/src/sap/ui/core/util/serializer/delegate/HTML.js +1 -1
  232. package/src/sap/ui/core/util/serializer/delegate/XML.js +1 -1
  233. package/src/sap/ui/core/ws/ReadyState.js +1 -1
  234. package/src/sap/ui/core/ws/SapPcpWebSocket.js +1 -1
  235. package/src/sap/ui/core/ws/WebSocket.js +1 -1
  236. package/src/sap/ui/debug/ControlTree.js +3 -3
  237. package/src/sap/ui/debug/DebugEnv.js +4 -4
  238. package/src/sap/ui/debug/PropertyList.css +1 -31
  239. package/src/sap/ui/debug/PropertyList.js +6 -250
  240. package/src/sap/ui/dom/getScrollbarSize.js +1 -1
  241. package/src/sap/ui/dom/jquery/control.js +1 -0
  242. package/src/sap/ui/events/jquery/EventSimulation.js +4 -4
  243. package/src/sap/ui/model/ClientModel.js +1 -1
  244. package/src/sap/ui/model/ClientTreeBinding.js +3 -1
  245. package/src/sap/ui/model/CompositeDataState.js +1 -1
  246. package/src/sap/ui/model/CompositeType.js +1 -1
  247. package/src/sap/ui/model/Context.js +3 -0
  248. package/src/sap/ui/model/ContextBinding.js +1 -1
  249. package/src/sap/ui/model/DataState.js +2 -2
  250. package/src/sap/ui/model/ListBinding.js +2 -2
  251. package/src/sap/ui/model/ManagedObjectBindingSupport.js +871 -0
  252. package/src/sap/ui/model/MetaModel.js +1 -1
  253. package/src/sap/ui/model/Model.js +16 -5
  254. package/src/sap/ui/model/SelectionModel.js +1 -1
  255. package/src/sap/ui/model/SimpleType.js +2 -2
  256. package/src/sap/ui/model/Sorter.js +24 -19
  257. package/src/sap/ui/model/TreeAutoExpandMode.js +1 -1
  258. package/src/sap/ui/model/TreeBindingAdapter.js +3 -7
  259. package/src/sap/ui/model/Type.js +1 -1
  260. package/src/sap/ui/model/analytics/AnalyticalBinding.js +2 -0
  261. package/src/sap/ui/model/analytics/AnalyticalTreeBindingAdapter.js +5 -7
  262. package/src/sap/ui/model/json/JSONModel.js +9 -7
  263. package/src/sap/ui/model/message/MessageModel.js +1 -1
  264. package/src/sap/ui/model/odata/AnnotationHelper.js +4 -4
  265. package/src/sap/ui/model/odata/ODataAnnotations.js +5 -3
  266. package/src/sap/ui/model/odata/ODataMessageParser.js +1 -1
  267. package/src/sap/ui/model/odata/ODataMetaModel.js +10 -10
  268. package/src/sap/ui/model/odata/ODataMetadata.js +5 -4
  269. package/src/sap/ui/model/odata/ODataModel.js +6 -5
  270. package/src/sap/ui/model/odata/ODataTreeBindingFlat.js +0 -1
  271. package/src/sap/ui/model/odata/type/Boolean.js +1 -1
  272. package/src/sap/ui/model/odata/type/Byte.js +1 -1
  273. package/src/sap/ui/model/odata/type/Currency.js +1 -1
  274. package/src/sap/ui/model/odata/type/Date.js +1 -1
  275. package/src/sap/ui/model/odata/type/DateTime.js +1 -1
  276. package/src/sap/ui/model/odata/type/DateTimeBase.js +1 -1
  277. package/src/sap/ui/model/odata/type/DateTimeOffset.js +1 -1
  278. package/src/sap/ui/model/odata/type/DateTimeWithTimezone.js +1 -1
  279. package/src/sap/ui/model/odata/type/Decimal.js +1 -1
  280. package/src/sap/ui/model/odata/type/Double.js +1 -1
  281. package/src/sap/ui/model/odata/type/Guid.js +1 -1
  282. package/src/sap/ui/model/odata/type/Int.js +1 -1
  283. package/src/sap/ui/model/odata/type/Int16.js +1 -1
  284. package/src/sap/ui/model/odata/type/Int32.js +1 -1
  285. package/src/sap/ui/model/odata/type/Int64.js +1 -1
  286. package/src/sap/ui/model/odata/type/ODataType.js +1 -1
  287. package/src/sap/ui/model/odata/type/Raw.js +1 -1
  288. package/src/sap/ui/model/odata/type/SByte.js +1 -1
  289. package/src/sap/ui/model/odata/type/Single.js +1 -1
  290. package/src/sap/ui/model/odata/type/Stream.js +1 -1
  291. package/src/sap/ui/model/odata/type/String.js +1 -1
  292. package/src/sap/ui/model/odata/type/Time.js +1 -1
  293. package/src/sap/ui/model/odata/type/TimeOfDay.js +1 -1
  294. package/src/sap/ui/model/odata/type/Unit.js +1 -1
  295. package/src/sap/ui/model/odata/v2/Context.js +5 -5
  296. package/src/sap/ui/model/odata/v2/ODataAnnotations.js +4 -3
  297. package/src/sap/ui/model/odata/v2/ODataContextBinding.js +25 -16
  298. package/src/sap/ui/model/odata/v2/ODataListBinding.js +46 -28
  299. package/src/sap/ui/model/odata/v2/ODataModel.js +97 -39
  300. package/src/sap/ui/model/odata/v2/ODataTreeBinding.js +5 -5
  301. package/src/sap/ui/model/odata/v4/AnnotationHelper.js +3 -3
  302. package/src/sap/ui/model/odata/v4/Context.js +109 -71
  303. package/src/sap/ui/model/odata/v4/ODataBinding.js +50 -7
  304. package/src/sap/ui/model/odata/v4/ODataContextBinding.js +88 -68
  305. package/src/sap/ui/model/odata/v4/ODataListBinding.js +116 -81
  306. package/src/sap/ui/model/odata/v4/ODataMetaModel.js +23 -20
  307. package/src/sap/ui/model/odata/v4/ODataModel.js +350 -88
  308. package/src/sap/ui/model/odata/v4/ODataParentBinding.js +35 -9
  309. package/src/sap/ui/model/odata/v4/ODataPropertyBinding.js +15 -9
  310. package/src/sap/ui/model/odata/v4/ODataUtils.js +8 -5
  311. package/src/sap/ui/model/odata/v4/lib/_AggregationCache.js +45 -33
  312. package/src/sap/ui/model/odata/v4/lib/_AggregationHelper.js +40 -6
  313. package/src/sap/ui/model/odata/v4/lib/_Cache.js +135 -81
  314. package/src/sap/ui/model/odata/v4/lib/_ConcatHelper.js +2 -3
  315. package/src/sap/ui/model/odata/v4/lib/_Helper.js +179 -36
  316. package/src/sap/ui/model/odata/v4/lib/_MinMaxHelper.js +2 -3
  317. package/src/sap/ui/model/odata/v4/lib/_Requestor.js +26 -7
  318. package/src/sap/ui/model/resource/ResourceModel.js +8 -7
  319. package/src/sap/ui/model/type/Boolean.js +1 -1
  320. package/src/sap/ui/model/type/Currency.js +2 -2
  321. package/src/sap/ui/model/type/Date.js +1 -1
  322. package/src/sap/ui/model/type/DateInterval.js +1 -1
  323. package/src/sap/ui/model/type/DateTime.js +1 -1
  324. package/src/sap/ui/model/type/DateTimeInterval.js +1 -1
  325. package/src/sap/ui/model/type/FileSize.js +1 -1
  326. package/src/sap/ui/model/type/Float.js +1 -1
  327. package/src/sap/ui/model/type/Integer.js +1 -1
  328. package/src/sap/ui/model/type/String.js +2 -2
  329. package/src/sap/ui/model/type/Time.js +1 -1
  330. package/src/sap/ui/model/type/TimeInterval.js +1 -1
  331. package/src/sap/ui/model/type/Unit.js +5 -4
  332. package/src/sap/ui/model/xml/XMLModel.js +8 -6
  333. package/src/sap/ui/performance/trace/Interaction.js +1 -1
  334. package/src/sap/ui/qunit/utils/ControlIterator.js +1 -1
  335. package/src/sap/ui/qunit/utils/MemoryLeakCheck.js +1 -1
  336. package/src/sap/ui/test/Opa.js +7 -5
  337. package/src/sap/ui/test/Opa5.js +9 -15
  338. package/src/sap/ui/test/OpaBuilder.js +1 -1
  339. package/src/sap/ui/test/RecorderHotkeyListener.js +1 -1
  340. package/src/sap/ui/test/TestUtils.js +83 -1
  341. package/src/sap/ui/test/autowaiter/_autoWaiter.js +9 -0
  342. package/src/sap/ui/test/autowaiter/_cssAnimationWaiter.js +114 -0
  343. package/src/sap/ui/test/autowaiter/_cssTransitionWaiter.js +99 -0
  344. package/src/sap/ui/test/autowaiter/_jsAnimationWaiter.js +70 -0
  345. package/src/sap/ui/test/autowaiter/_resourceWaiter.js +3 -12
  346. package/src/sap/ui/test/autowaiter/_utils.js +13 -1
  347. package/src/sap/ui/test/generic/TestBase.js +1 -1
  348. package/src/sap/ui/test/matchers/Ancestor.js +1 -0
  349. package/src/sap/ui/test/matchers/Descendant.js +1 -0
  350. package/src/sap/ui/test/matchers/Sibling.js +1 -0
  351. package/src/sap/ui/util/Storage.js +1 -1
@@ -16,11 +16,13 @@ sap.ui.define([
16
16
  "use strict";
17
17
 
18
18
  var rAmpersand = /&/g,
19
+ rApplicationGroupID = /^\w+$/,
19
20
  sClassName = "sap.ui.model.odata.v4.lib._Helper",
20
21
  rEquals = /\=/g,
21
22
  rEscapedCloseBracket = /%29/g,
22
23
  rEscapedOpenBracket = /%28/g,
23
24
  rEscapedTick = /%27/g,
25
+ rGroupID = /^(\$auto(\.\w+)?|\$direct|\w+)$/,
24
26
  rHash = /#/g,
25
27
  // matches the rest of a segment after '(' and any segment that consists only of a number
26
28
  rNotMetaContext = /\([^/]*|\/-?\d+/g,
@@ -282,18 +284,23 @@ sap.ui.define([
282
284
  * value <code>true</code>, unless a (complex) parent property is also selected.
283
285
  *
284
286
  * @param {string[]} aSelect - The list of selected paths
285
- * @returns {object} - An object marking the selected properties
287
+ * @returns {object|boolean} - An object marking the selected properties or
288
+ * <code>true</code> if all properties are selected ("*")
286
289
  */
287
290
  buildSelect : function (aSelect) {
288
291
  var oSelect = {};
289
292
 
293
+ if (!aSelect || aSelect.includes("*")) {
294
+ return true;
295
+ }
296
+
290
297
  aSelect.forEach(function (sPath) {
291
298
  var aSegments = sPath.split("/"),
292
299
  iLast = aSegments.length - 1,
293
300
  oSubSelect = oSelect;
294
301
 
295
302
  aSegments.some(function (sSegment, i) {
296
- if (i === iLast) {
303
+ if (i === iLast || aSegments[i + 1] === "*") {
297
304
  oSubSelect[sSegment] = true;
298
305
  return true;
299
306
  }
@@ -307,6 +314,31 @@ sap.ui.define([
307
314
  return oSelect;
308
315
  },
309
316
 
317
+ /**
318
+ * Checks whether the given group ID is valid, which means it is either undefined, '$auto',
319
+ * '$auto.*', '$direct' or an application group ID as specified in
320
+ * {@link sap.ui.model.odata.v4.ODataModel}.
321
+ *
322
+ * @param {string} sGroupId
323
+ * The group ID
324
+ * @param {boolean} [bApplicationGroup]
325
+ * Whether only an application group ID is considered valid
326
+ * @param {string} [sErrorMessage]
327
+ * The error message to be used if group ID is not valid; the group ID will be appended
328
+ * @throws {Error}
329
+ * For invalid group IDs
330
+ *
331
+ * @private
332
+ */
333
+ checkGroupId : function (sGroupId, bApplicationGroup, sErrorMessage) {
334
+ if (!bApplicationGroup && sGroupId === undefined
335
+ || typeof sGroupId === "string"
336
+ && (bApplicationGroup ? rApplicationGroupID : rGroupID).test(sGroupId)) {
337
+ return;
338
+ }
339
+ throw new Error((sErrorMessage || "Invalid group ID: ") + sGroupId);
340
+ },
341
+
310
342
  /**
311
343
  * Returns a clone of the given value, according to the rules of
312
344
  * <code>JSON.stringify</code>.
@@ -366,7 +398,7 @@ sap.ui.define([
366
398
  * <li> <code>statusText</code>: (optional) HTTP status text
367
399
  * </ul>
368
400
  * @see <a href=
369
- * "http://docs.oasis-open.org/odata/odata-json-format/v4.0/os/odata-json-format-v4.0-os.html"
401
+ * "http://docs.oasis-open.org/odata/odata-json-format/v4.0/os/odata-json-format-v4.0-os.html#_Representing_Errors_in"
370
402
  * >"19 Error Response"</a>
371
403
  */
372
404
  createError : function (jqXHR, sMessage, sRequestUrl, sResourcePath) {
@@ -598,6 +630,8 @@ sap.ui.define([
598
630
 
599
631
  if (!isRelevant(oClone.error, sTopLevelContentID)) {
600
632
  oClone.error.$ignoreTopLevel = true;
633
+ } else {
634
+ oClone.strictHandlingFailed = oError.strictHandlingFailed;
601
635
  }
602
636
  if (oClone.error.details) {
603
637
  oClone.error.details = oClone.error.details.filter(function (oDetail, i) {
@@ -631,6 +665,33 @@ sap.ui.define([
631
665
  }
632
666
  },
633
667
 
668
+ /**
669
+ * Deletes within the given entity and property path the property annotation
670
+ * "@$ui5.updating".
671
+ *
672
+ * @param {string} sPropertyPath
673
+ * The path of the property in the entity which might be annotated with "@$ui5.updating"
674
+ * @param {object} oEntity
675
+ * The entity
676
+ *
677
+ */
678
+ deleteUpdating : function (sPropertyPath, oEntity) {
679
+ var oData = oEntity;
680
+
681
+ sPropertyPath.split("/").some(function (sSegment) {
682
+ var vValue = oData[sSegment];
683
+
684
+ if (vValue === null || Array.isArray(vValue)) {
685
+ return true;
686
+ }
687
+ if (typeof vValue === "object") {
688
+ oData = vValue;
689
+ return false;
690
+ }
691
+ delete oData[sSegment + "@$ui5.updating"];
692
+ });
693
+ },
694
+
634
695
  /**
635
696
  * Drills down into the given object according to the given path.
636
697
  *
@@ -844,14 +905,15 @@ sap.ui.define([
844
905
  * @param {object} mChangeListeners A map of change listeners by path
845
906
  * @param {string} sPropertyPath The path
846
907
  * @param {any} vValue The value to report to the listeners
908
+ * @param {boolean} bForceUpdate Whether a listener should force an update
847
909
  */
848
- fireChange : function (mChangeListeners, sPropertyPath, vValue) {
910
+ fireChange : function (mChangeListeners, sPropertyPath, vValue, bForceUpdate) {
849
911
  var aListeners = mChangeListeners[sPropertyPath],
850
912
  i;
851
913
 
852
914
  if (aListeners) {
853
915
  for (i = 0; i < aListeners.length; i += 1) {
854
- aListeners[i].onChange(vValue);
916
+ aListeners[i].onChange(vValue, bForceUpdate);
855
917
  }
856
918
  }
857
919
  },
@@ -1242,6 +1304,27 @@ sap.ui.define([
1242
1304
  return sPath.replace(rNotMetaContext, "").slice(1);
1243
1305
  },
1244
1306
 
1307
+ /**
1308
+ * Returns the index of the key predicate in the last segment of the given path.
1309
+ *
1310
+ * @param {string} sPath - The path
1311
+ * @returns {number} The index of the key predicate
1312
+ * @throws {Error} If no path is given or the last segment contains no key predicate
1313
+ *
1314
+ * @private
1315
+ */
1316
+ getPredicateIndex : function (sPath) {
1317
+ var iPredicateIndex = sPath
1318
+ ? sPath.indexOf("(", sPath.lastIndexOf("/"))
1319
+ : -1;
1320
+
1321
+ if (iPredicateIndex < 0 || !sPath.endsWith(")")) {
1322
+ throw new Error("Not a list context path to an entity: " + sPath);
1323
+ }
1324
+
1325
+ return iPredicateIndex;
1326
+ },
1327
+
1245
1328
  /**
1246
1329
  * Returns the value of the private client-side instance annotation with the given
1247
1330
  * unqualified name at the given object.
@@ -1854,6 +1937,41 @@ sap.ui.define([
1854
1937
  return mHeaders;
1855
1938
  },
1856
1939
 
1940
+ /**
1941
+ * Searches all properties in oOld annotated with "@$ui5.updating" and restores the property
1942
+ * value in oNew.
1943
+ *
1944
+ * @param {object} oOld
1945
+ * The old element
1946
+ * @param {object} oNew
1947
+ * The new element
1948
+ * @returns {object}
1949
+ * The new element with the restored properties
1950
+ *
1951
+ */
1952
+ restoreUpdatingProperties : function (oOld, oNew) {
1953
+ var oTempNew = oNew || {};
1954
+
1955
+ Object.keys(oOld || {}).forEach(function (sProperty) {
1956
+ if (sProperty.startsWith("@")) {
1957
+ return; // skip annotations
1958
+ }
1959
+ if (Array.isArray(oOld[sProperty])) {
1960
+ return; // skip arrays
1961
+ }
1962
+ if (typeof oOld[sProperty] === "object") {
1963
+ oTempNew[sProperty]
1964
+ = _Helper.restoreUpdatingProperties(oOld[sProperty], oTempNew[sProperty]);
1965
+ }
1966
+ if (oOld[sProperty + "@$ui5.updating"]) {
1967
+ oTempNew[sProperty] = oOld[sProperty];
1968
+ oTempNew[sProperty + "@$ui5.updating"] = oOld[sProperty + "@$ui5.updating"];
1969
+ oNew = oTempNew;
1970
+ }
1971
+ });
1972
+ return oNew;
1973
+ },
1974
+
1857
1975
  /**
1858
1976
  * Adds the key properties of the given entity type to $select of the given query options.
1859
1977
  *
@@ -1889,6 +2007,23 @@ sap.ui.define([
1889
2007
  }
1890
2008
  },
1891
2009
 
2010
+ /**
2011
+ * Adds the given language as "sap-language" URL parameter to the given URL, unless such a
2012
+ * parameter is already present, and returns the resulting (or unchanged) URL.
2013
+ *
2014
+ * @param {string} sUrl - A URL w/o a fragment part
2015
+ * @param {string} [sLanguage] - An optional value for "sap-language"
2016
+ * @returns {string} The resulting (or unchanged) URL as described above
2017
+ */
2018
+ setLanguage : function (sUrl, sLanguage) {
2019
+ if (sLanguage && !sUrl.includes("?sap-language=") && !sUrl.includes("&sap-language=")) {
2020
+ sUrl += (sUrl.includes("?") ? "&" : "?") + "sap-language="
2021
+ + _Helper.encode(sLanguage);
2022
+ }
2023
+
2024
+ return sUrl;
2025
+ },
2026
+
1892
2027
  /**
1893
2028
  * Sets the new value of the private client-side instance annotation with the given
1894
2029
  * unqualified name at the given object.
@@ -1978,38 +2113,25 @@ sap.ui.define([
1978
2113
  * @param {string} sPath The path of the old object in mChangeListeners
1979
2114
  * @param {object} oTarget The target object
1980
2115
  * @param {object} oSource The source object
1981
- * @param {function} [fnCheckKeyPredicate] Callback function which tells whether the key
1982
- * predicate for the given path is checked for equality instead of just being copied
1983
- * from source to target
1984
2116
  * @returns {object} The target object
1985
2117
  * @throws {Error} If a key predicate check fails
1986
2118
  */
1987
- updateAll : function (mChangeListeners, sPath, oTarget, oSource, fnCheckKeyPredicate) {
2119
+ updateAll : function (mChangeListeners, sPath, oTarget, oSource) {
1988
2120
  Object.keys(oSource).forEach(function (sProperty) {
1989
2121
  var sPropertyPath = _Helper.buildPath(sPath, sProperty),
1990
- sSourcePredicate,
1991
2122
  vSourceProperty = oSource[sProperty],
1992
- sTargetPredicate,
1993
2123
  vTargetProperty = oTarget[sProperty];
1994
2124
 
1995
2125
  if (sProperty === "@$ui5._") {
1996
- sSourcePredicate = _Helper.getPrivateAnnotation(oSource, "predicate");
1997
- if (fnCheckKeyPredicate && fnCheckKeyPredicate(sPath)) {
1998
- sTargetPredicate = _Helper.getPrivateAnnotation(oTarget, "predicate");
1999
- if (sSourcePredicate !== sTargetPredicate) {
2000
- throw new Error("Key predicate of '" + sPath + "' changed from "
2001
- + sTargetPredicate + " to " + sSourcePredicate);
2002
- }
2003
- } else {
2004
- _Helper.setPrivateAnnotation(oTarget, "predicate", sSourcePredicate);
2005
- }
2126
+ _Helper.setPrivateAnnotation(oTarget, "predicate",
2127
+ _Helper.getPrivateAnnotation(oSource, "predicate"));
2006
2128
  } else if (Array.isArray(vSourceProperty)) {
2007
2129
  // copy complete collection w/o firing change events
2008
2130
  oTarget[sProperty] = vSourceProperty;
2009
2131
  } else if (vSourceProperty && typeof vSourceProperty === "object") {
2010
2132
  oTarget[sProperty]
2011
2133
  = _Helper.updateAll(mChangeListeners, sPropertyPath, vTargetProperty || {},
2012
- vSourceProperty, fnCheckKeyPredicate);
2134
+ vSourceProperty);
2013
2135
  } else if (vTargetProperty !== vSourceProperty) {
2014
2136
  oTarget[sProperty] = vSourceProperty;
2015
2137
  if (vTargetProperty && typeof vTargetProperty === "object") {
@@ -2156,8 +2278,14 @@ sap.ui.define([
2156
2278
  * @param {string[]} [aSelect]
2157
2279
  * The relative paths to properties to be updated in oOldValue; default is all properties
2158
2280
  * from oNewValue
2159
- */
2160
- updateSelected : function (mChangeListeners, sBasePath, oOldValue, oNewValue, aSelect) {
2281
+ * @param {function} [fnCheckKeyPredicate]
2282
+ * Callback function which tells whether the key predicate for the given path is checked
2283
+ * for equality instead of just being copied from source to target
2284
+ * @param {boolean} [bOkIfMissing]
2285
+ * Whether this should not check for selected properties missing in the response
2286
+ */
2287
+ updateSelected : function (mChangeListeners, sBasePath, oOldValue, oNewValue, aSelect,
2288
+ fnCheckKeyPredicate, bOkIfMissing) {
2161
2289
  /*
2162
2290
  * Gets the property's value in vSelect. Instance annotations are always selected,
2163
2291
  * property annotations only if the property is selected.
@@ -2197,7 +2325,9 @@ sap.ui.define([
2197
2325
  // annotations
2198
2326
  Object.keys(oTarget).forEach(function (sProperty) {
2199
2327
  if (!(sProperty in oSource) && sProperty.includes("@")
2200
- && !sProperty.startsWith("@$ui5.") && getSelect(vSelect, sProperty)) {
2328
+ && !sProperty.startsWith("@$ui5.") && getSelect(vSelect, sProperty)
2329
+ && !sProperty.endsWith("@$ui5.updating")
2330
+ ) {
2201
2331
  delete oTarget[sProperty];
2202
2332
  _Helper.fireChange(mChangeListeners, _Helper.buildPath(sPath, sProperty),
2203
2333
  undefined);
@@ -2208,17 +2338,25 @@ sap.ui.define([
2208
2338
  Object.keys(oSource).forEach(function (sProperty) {
2209
2339
  var sPropertyPath = _Helper.buildPath(sPath, sProperty),
2210
2340
  vSelected = getSelect(vSelect, sProperty),
2341
+ sSourcePredicate,
2211
2342
  vSourceProperty = oSource[sProperty],
2343
+ sTargetPredicate,
2212
2344
  vTargetProperty = oTarget[sProperty];
2213
2345
 
2214
2346
  if (!vSelected) {
2215
2347
  return;
2216
2348
  }
2217
2349
  if (sProperty === "@$ui5._") {
2218
- _Helper.setPrivateAnnotation(oTarget, "predicate",
2219
- _Helper.getPrivateAnnotation(oSource, "predicate"));
2220
- // There should be nothing else, but we must avoid calling fireChanges on
2221
- // the target because it may contain non-JSON annotations
2350
+ sSourcePredicate = _Helper.getPrivateAnnotation(oSource, "predicate");
2351
+ if (fnCheckKeyPredicate && fnCheckKeyPredicate(sPath)) {
2352
+ sTargetPredicate = _Helper.getPrivateAnnotation(oTarget, "predicate");
2353
+ if (sSourcePredicate !== sTargetPredicate) {
2354
+ throw new Error("Key predicate of '" + sPath + "' changed from "
2355
+ + sTargetPredicate + " to " + sSourcePredicate);
2356
+ }
2357
+ } else {
2358
+ _Helper.setPrivateAnnotation(oTarget, "predicate", sSourcePredicate);
2359
+ }
2222
2360
  } else if (Array.isArray(vSourceProperty)) {
2223
2361
  // copy complete collection; no change events as long as collection-valued
2224
2362
  // properties are not supported
@@ -2227,7 +2365,8 @@ sap.ui.define([
2227
2365
  && !sProperty.includes("@")) {
2228
2366
  oTarget[sProperty] = update(sPropertyPath, vSelected, vTargetProperty || {},
2229
2367
  vSourceProperty);
2230
- } else if (vTargetProperty !== vSourceProperty) {
2368
+ } else if (vTargetProperty !== vSourceProperty
2369
+ && !oTarget[sProperty + "@$ui5.updating"]) {
2231
2370
  oTarget[sProperty] = vSourceProperty;
2232
2371
  if (vTargetProperty && typeof vTargetProperty === "object") {
2233
2372
  // a complex property is replaced by null
@@ -2239,21 +2378,25 @@ sap.ui.define([
2239
2378
  }
2240
2379
  });
2241
2380
 
2381
+ if (bOkIfMissing) {
2382
+ return oTarget;
2383
+ }
2384
+
2242
2385
  // Create annotations for a property which was selected but no data was received
2243
2386
  Object.keys(vSelect).forEach(function (sProperty) {
2244
- if (!(sProperty in oTarget)) {
2387
+ if (!(sProperty in oTarget) && sProperty !== "*") {
2245
2388
  oTarget[sProperty + "@$ui5.noData"] = true;
2389
+ // Fire change event (useful for Edm.Stream in case of the URL stays the
2390
+ // same, but the content was changed)
2391
+ _Helper.fireChange(mChangeListeners, _Helper.buildPath(sPath, sProperty),
2392
+ undefined, true);
2246
2393
  }
2247
2394
  });
2248
2395
 
2249
2396
  return oTarget;
2250
2397
  }
2251
2398
 
2252
- if (aSelect && !aSelect.includes("*")) {
2253
- update(sBasePath, _Helper.buildSelect(aSelect), oOldValue, oNewValue);
2254
- } else { // no individual properties selected, fetch all properties of the new value
2255
- _Helper.updateAll(mChangeListeners, sBasePath, oOldValue, oNewValue);
2256
- }
2399
+ update(sBasePath, _Helper.buildSelect(aSelect), oOldValue, oNewValue);
2257
2400
  },
2258
2401
 
2259
2402
  /**
@@ -21,9 +21,8 @@ sap.ui.define([
21
21
  * @param {string} sResourcePath
22
22
  * A resource path relative to the service URL
23
23
  * @param {object} oAggregation
24
- * An object holding the information needed for data aggregation; see also
25
- * <a href="http://docs.oasis-open.org/odata/odata-data-aggregation-ext/v4.0/">OData
26
- * Extension for Data Aggregation Version 4.0</a>; must already be normalized by
24
+ * An object holding the information needed for data aggregation; see also "OData
25
+ * Extension for Data Aggregation Version 4.0"; must already be normalized by
27
26
  * {@link _AggregationHelper.buildApply}
28
27
  * @param {object} mQueryOptions
29
28
  * A map of key-value pairs representing the query string
@@ -13,8 +13,10 @@ sap.ui.define([
13
13
  "sap/base/Log",
14
14
  "sap/ui/base/SyncPromise",
15
15
  "sap/ui/core/cache/CacheManager",
16
+ "sap/ui/core/Configuration",
16
17
  "sap/ui/thirdparty/jquery"
17
- ], function (_Batch, _GroupLock, _Helper, asV2Requestor, Log, SyncPromise, CacheManager, jQuery) {
18
+ ], function (_Batch, _GroupLock, _Helper, asV2Requestor, Log, SyncPromise, CacheManager,
19
+ Configuration, jQuery) {
18
20
  "use strict";
19
21
 
20
22
  var mBatchHeaders = { // headers for the $batch request
@@ -531,6 +533,13 @@ sap.ui.define([
531
533
  */
532
534
  function addToChangeSet(oChange) {
533
535
  if (!mergePatch(oChange)) {
536
+ if (oChange.method === "DELETE" && oChange.headers["If-Match"]
537
+ && oChange.headers["If-Match"]["@odata.etag"]
538
+ && aChangeSet.find(function (oCandidate) {
539
+ return oCandidate.headers["If-Match"] === oChange.headers["If-Match"];
540
+ })) {
541
+ oChange.headers["If-Match"] = {"@odata.etag" : "*"};
542
+ }
534
543
  aChangeSet.push(oChange);
535
544
  }
536
545
  }
@@ -1465,7 +1474,7 @@ sap.ui.define([
1465
1474
 
1466
1475
  this.oSecurityTokenPromise = null;
1467
1476
 
1468
- sap.ui.getCore().getConfiguration().getSecurityTokenHandlers().some(function (fnHandler) {
1477
+ Configuration.getSecurityTokenHandlers().some(function (fnHandler) {
1469
1478
  var oSecurityTokenPromise = fnHandler(that.sServiceUrl);
1470
1479
 
1471
1480
  if (oSecurityTokenPromise !== undefined) {
@@ -2143,24 +2152,34 @@ sap.ui.define([
2143
2152
  * An interface allowing to call back to the owning model
2144
2153
  * @param {function} oModelInterface.fetchEntityContainer
2145
2154
  * A promise which is resolved with the $metadata "JSON" object as soon as the entity
2146
- * container is fully available, or rejected with an error.
2155
+ * container is fully available, or rejected with an error
2147
2156
  * @param {function} oModelInterface.fetchMetadata
2148
2157
  * A function that returns a SyncPromise which resolves with the metadata instance for a
2149
2158
  * given meta path
2159
+ * @param {function} oModelInterface.fireMessageChange
2160
+ * A function that fires the 'messageChange' event for the given messages
2161
+ * @param {function} oModelInterface.fireDataReceived
2162
+ * A function that fires the 'dataReceived' event at the model with an optional parameter
2163
+ * <code>oError</code>
2164
+ * @param {function} oModelInterface.fireDataRequested
2165
+ * A function that fires the 'dataRequested' event at the model
2150
2166
  * @param {function} oModelInterface.fireSessionTimeout
2151
2167
  * A function that fires the 'sessionTimeout' event (when the server has created a session for
2152
- * the model and this session ran into a timeout due to inactivity).
2168
+ * the model and this session ran into a timeout due to inactivity)
2153
2169
  * @param {function} oModelInterface.getGroupProperty
2154
2170
  * A function called with parameters <code>sGroupId</code> and <code>sPropertyName</code>
2155
2171
  * returning the property value in question. Only 'submit' is supported for <code>
2156
- * sPropertyName</code>. Supported property values are: 'API', 'Auto' and 'Direct'.
2172
+ * sPropertyName</code>. Supported property values are: 'API', 'Auto' and 'Direct'
2173
+ * @param {function} oModelInterface.getMessagesByPath
2174
+ * A function returning model messages for which the target matches the given resolved binding
2175
+ * path
2157
2176
  * @param {function} oModelInterface.getOptimisticBatchEnabler
2158
2177
  * A function that returns a callback function which controls the optimistic batch handling,
2159
- * see also {@link sap.ui.model.odata.v4.ODataModel#setOptimisticBatchEnabler}.
2178
+ * see also {@link sap.ui.model.odata.v4.ODataModel#setOptimisticBatchEnabler}
2160
2179
  * @param {function} oModelInterface.getReporter
2161
2180
  * A catch handler function expecting an <code>Error</code> instance. This function will call
2162
2181
  * {@link sap.ui.model.odata.v4.ODataModel#reportError} if the error has not been reported
2163
- * yet.
2182
+ * yet
2164
2183
  * @param {function} oModelInterface.onCreateGroup
2165
2184
  * A callback function that is called with the group name as parameter when the first
2166
2185
  * request is added to a group
@@ -14,13 +14,14 @@
14
14
 
15
15
  // Provides the resource bundle based model implementation
16
16
  sap.ui.define([
17
+ 'sap/base/Log',
18
+ 'sap/base/i18n/ResourceBundle',
19
+ 'sap/ui/core/Configuration',
17
20
  'sap/ui/model/BindingMode',
18
21
  'sap/ui/model/Model',
19
- './ResourcePropertyBinding',
20
- "sap/base/i18n/ResourceBundle",
21
- "sap/base/Log"
22
+ './ResourcePropertyBinding'
22
23
  ],
23
- function (BindingMode, Model, ResourcePropertyBinding, ResourceBundle, Log) {
24
+ function (Log, ResourceBundle, Configuration, BindingMode, Model, ResourcePropertyBinding) {
24
25
  "use strict";
25
26
 
26
27
  /**
@@ -228,7 +229,7 @@ sap.ui.define([
228
229
  *
229
230
  * @extends sap.ui.model.Model
230
231
  * @public
231
- * @version 1.105.1
232
+ * @version 1.107.0
232
233
  */
233
234
  var ResourceModel = Model.extend("sap.ui.model.resource.ResourceModel", /** @lends sap.ui.model.resource.ResourceModel.prototype */ {
234
235
 
@@ -377,7 +378,7 @@ sap.ui.define([
377
378
  * @ui5-restricted sap.ui.core.Component
378
379
  */
379
380
  ResourceModel.loadResourceBundle = function (oData, bAsync) {
380
- var oConfiguration = sap.ui.getCore().getConfiguration(),
381
+ var oConfiguration = Configuration,
381
382
  sLocale = oData.bundleLocale,
382
383
  mParams;
383
384
 
@@ -501,7 +502,7 @@ sap.ui.define([
501
502
  *
502
503
  * @param {string} sPath
503
504
  * The path to the property
504
- * @returns {string}
505
+ * @returns {string|null}
505
506
  * The value of the property in the resource bundle or <code>null</code> if resource bundle is
506
507
  * not available
507
508
  *
@@ -19,7 +19,7 @@ sap.ui.define(['sap/ui/model/SimpleType', 'sap/ui/model/FormatException', 'sap/u
19
19
  * @extends sap.ui.model.SimpleType
20
20
  *
21
21
  * @author SAP SE
22
- * @version 1.105.1
22
+ * @version 1.107.0
23
23
  *
24
24
  * @public
25
25
  * @param {object} [oFormatOptions]
@@ -32,7 +32,7 @@ sap.ui.define([
32
32
  * @extends sap.ui.model.CompositeType
33
33
  *
34
34
  * @author SAP SE
35
- * @version 1.105.1
35
+ * @version 1.107.0
36
36
  *
37
37
  * @public
38
38
  * @param {object} [oFormatOptions]
@@ -84,7 +84,7 @@ sap.ui.define([
84
84
  * @param {string} sTargetType
85
85
  * The target type; must be "string", or a type with "string" as its
86
86
  * {@link sap.ui.base.DataType#getPrimitiveType primitive type}
87
- * @returns {string}
87
+ * @returns {string|null}
88
88
  * The formatted output value; the values <code>undefined</code> or <code>null</code> or
89
89
  * an amount <code>undefined</code> or <code>null</code> are formatted to <code>null</code>
90
90
  * @throws {sap.ui.model.FormatException}
@@ -26,7 +26,7 @@ sap.ui.define([
26
26
  * @extends sap.ui.model.SimpleType
27
27
  *
28
28
  * @author SAP SE
29
- * @version 1.105.1
29
+ * @version 1.107.0
30
30
  *
31
31
  * @public
32
32
  * @param {object} [oFormatOptions] Formatting options. For a list of all available options, see {@link sap.ui.core.format.DateFormat.getDateInstance DateFormat}.
@@ -33,7 +33,7 @@ sap.ui.define([
33
33
  * @extends sap.ui.model.CompositeType
34
34
  *
35
35
  * @author SAP SE
36
- * @version 1.105.1
36
+ * @version 1.107.0
37
37
  *
38
38
  * @public
39
39
  * @param {object} [oFormatOptions] Formatting options. For a list of all available options, see {@link sap.ui.core.format.DateFormat.getDateInstance DateFormat}.
@@ -19,7 +19,7 @@ sap.ui.define(['./Date', 'sap/ui/core/format/DateFormat'],
19
19
  * @extends sap.ui.model.type.Date
20
20
  *
21
21
  * @author SAP SE
22
- * @version 1.105.1
22
+ * @version 1.107.0
23
23
  *
24
24
  * @public
25
25
  * @param {object} [oFormatOptions] Formatting options. For a list of all available options, see {@link sap.ui.core.format.DateFormat.getDateTimeInstance DateFormat}.
@@ -19,7 +19,7 @@ sap.ui.define(['./DateInterval', 'sap/ui/core/format/DateFormat'],
19
19
  * @extends sap.ui.model.type.DateInterval
20
20
  *
21
21
  * @author SAP SE
22
- * @version 1.105.1
22
+ * @version 1.107.0
23
23
  *
24
24
  * @public
25
25
  * @param {object} [oFormatOptions] Formatting options. For a list of all available options, see {@link sap.ui.core.format.DateFormat.getDateTimeInstance DateFormat}.
@@ -24,7 +24,7 @@ sap.ui.define([
24
24
  * @extends sap.ui.model.SimpleType
25
25
  *
26
26
  * @author SAP SE
27
- * @version 1.105.1
27
+ * @version 1.107.0
28
28
  *
29
29
  * @public
30
30
  * @param {object} [oFormatOptions] formatting options. Supports the same options as {@link sap.ui.core.format.FileSizeFormat.getInstance FileSizeFormat.getInstance}
@@ -26,7 +26,7 @@ sap.ui.define([
26
26
  * @extends sap.ui.model.SimpleType
27
27
  *
28
28
  * @author SAP SE
29
- * @version 1.105.1
29
+ * @version 1.107.0
30
30
  *
31
31
  * @public
32
32
  * @param {object} [oFormatOptions] Formatting options. For a list of all available options, see {@link sap.ui.core.format.NumberFormat NumberFormat}.
@@ -26,7 +26,7 @@ sap.ui.define([
26
26
  * @extends sap.ui.model.SimpleType
27
27
  *
28
28
  * @author SAP SE
29
- * @version 1.105.1
29
+ * @version 1.107.0
30
30
  *
31
31
  * @public
32
32
  * @param {object} [oFormatOptions] Formatting options. For a list of all available options, see {@link sap.ui.core.format.NumberFormat NumberFormat}.
@@ -24,7 +24,7 @@ sap.ui.define([
24
24
  * @extends sap.ui.model.SimpleType
25
25
  *
26
26
  * @author SAP SE
27
- * @version 1.105.1
27
+ * @version 1.107.0
28
28
  *
29
29
  * @alias sap.ui.model.type.String
30
30
  * @param {object} [oFormatOptions]
@@ -73,7 +73,7 @@ sap.ui.define([
73
73
  * The target type; may be "any", "boolean", "float", "int" or "string", or a type with "any",
74
74
  * "boolean", "float", "int" or "string" as its
75
75
  * {@link sap.ui.base.DataType#getPrimitiveType primitive type}
76
- * @returns {string|number|boolean}
76
+ * @returns {string|number|boolean|null}
77
77
  * The formatted output value in the target type; <code>undefined</code> and <code>null</code>
78
78
  * are always formatted to <code>null</code>
79
79
  * @throws {sap.ui.model.FormatException}
@@ -19,7 +19,7 @@ sap.ui.define(['./Date', 'sap/ui/core/format/DateFormat'],
19
19
  * @extends sap.ui.model.type.Date
20
20
  *
21
21
  * @author SAP SE
22
- * @version 1.105.1
22
+ * @version 1.107.0
23
23
  *
24
24
  * @public
25
25
  * @param {object} [oFormatOptions] Formatting options. For a list of all available options, see {@link sap.ui.core.format.DateFormat.getTimeInstance DateFormat}.
@@ -19,7 +19,7 @@ sap.ui.define(['./DateInterval', 'sap/ui/core/format/DateFormat'],
19
19
  * @extends sap.ui.model.type.DateInterval
20
20
  *
21
21
  * @author SAP SE
22
- * @version 1.105.1
22
+ * @version 1.107.0
23
23
  *
24
24
  * @public
25
25
  * @param {object} [oFormatOptions] Formatting options. For a list of all available options, see {@link sap.ui.core.format.DateFormat.getTimeInstance DateFormat}.