@openui5/sap.ui.core 1.106.0 → 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 (307) hide show
  1. package/package.json +1 -1
  2. package/src/jquery.sap.global.js +1 -1
  3. package/src/jquery.sap.properties.js +1 -1
  4. package/src/jquery.sap.resources.js +1 -1
  5. package/src/jquery.sap.script.js +1 -1
  6. package/src/jquery.sap.storage.js +3 -3
  7. package/src/jquery.sap.ui.js +5 -7
  8. package/src/sap/base/util/LoaderExtensions.js +6 -6
  9. package/src/sap/base/util/fetch.js +3 -0
  10. package/src/sap/base/util/mixedFetch.js +1 -1
  11. package/src/sap/base/util/restricted/_CancelablePromise.js +1 -1
  12. package/src/sap/base/util/restricted/_castArray.js +1 -1
  13. package/src/sap/base/util/restricted/_compact.js +1 -1
  14. package/src/sap/base/util/restricted/_curry.js +1 -1
  15. package/src/sap/base/util/restricted/_debounce.js +1 -1
  16. package/src/sap/base/util/restricted/_difference.js +1 -1
  17. package/src/sap/base/util/restricted/_differenceBy.js +1 -1
  18. package/src/sap/base/util/restricted/_differenceWith.js +1 -1
  19. package/src/sap/base/util/restricted/_flatMap.js +1 -1
  20. package/src/sap/base/util/restricted/_flatMapDeep.js +1 -1
  21. package/src/sap/base/util/restricted/_flatMapDepth.js +1 -1
  22. package/src/sap/base/util/restricted/_flatten.js +1 -1
  23. package/src/sap/base/util/restricted/_flattenDeep.js +1 -1
  24. package/src/sap/base/util/restricted/_flattenDepth.js +1 -1
  25. package/src/sap/base/util/restricted/_intersection.js +1 -1
  26. package/src/sap/base/util/restricted/_intersectionBy.js +1 -1
  27. package/src/sap/base/util/restricted/_intersectionWith.js +1 -1
  28. package/src/sap/base/util/restricted/_isEqual.js +1 -1
  29. package/src/sap/base/util/restricted/_isEqualWith.js +1 -1
  30. package/src/sap/base/util/restricted/_isNil.js +1 -1
  31. package/src/sap/base/util/restricted/_max.js +1 -1
  32. package/src/sap/base/util/restricted/_merge.js +1 -1
  33. package/src/sap/base/util/restricted/_mergeWith.js +1 -1
  34. package/src/sap/base/util/restricted/_min.js +1 -1
  35. package/src/sap/base/util/restricted/_omit.js +1 -1
  36. package/src/sap/base/util/restricted/_pick.js +1 -1
  37. package/src/sap/base/util/restricted/_pickBy.js +1 -1
  38. package/src/sap/base/util/restricted/_throttle.js +1 -1
  39. package/src/sap/base/util/restricted/_toArray.js +1 -1
  40. package/src/sap/base/util/restricted/_union.js +1 -1
  41. package/src/sap/base/util/restricted/_unionBy.js +1 -1
  42. package/src/sap/base/util/restricted/_unionWith.js +1 -1
  43. package/src/sap/base/util/restricted/_uniq.js +1 -1
  44. package/src/sap/base/util/restricted/_uniqBy.js +1 -1
  45. package/src/sap/base/util/restricted/_uniqWith.js +1 -1
  46. package/src/sap/base/util/restricted/_without.js +1 -1
  47. package/src/sap/base/util/restricted/_xor.js +1 -1
  48. package/src/sap/base/util/restricted/_xorBy.js +1 -1
  49. package/src/sap/base/util/restricted/_xorWith.js +1 -1
  50. package/src/sap/base/util/restricted/_zipObject.js +1 -1
  51. package/src/sap/base/util/restricted/_zipObjectDeep.js +1 -1
  52. package/src/sap/ui/Device.js +3 -3
  53. package/src/sap/ui/Global.js +4 -4
  54. package/src/sap/ui/base/DataType.js +4 -4
  55. package/src/sap/ui/base/Event.js +1 -1
  56. package/src/sap/ui/base/EventProvider.js +1 -1
  57. package/src/sap/ui/base/Interface.js +1 -1
  58. package/src/sap/ui/base/ManagedObject.js +1 -1
  59. package/src/sap/ui/base/ManagedObjectMetadata.js +1 -1
  60. package/src/sap/ui/base/ManagedObjectRegistry.js +4 -3
  61. package/src/sap/ui/base/Metadata.js +1 -1
  62. package/src/sap/ui/base/Object.js +1 -1
  63. package/src/sap/ui/base/ObjectPool.js +1 -1
  64. package/src/sap/ui/core/.library +1 -1
  65. package/src/sap/ui/core/AppCacheBuster.js +3 -4
  66. package/src/sap/ui/core/BusyIndicator.js +1 -1
  67. package/src/sap/ui/core/BusyIndicatorUtils.js +5 -6
  68. package/src/sap/ui/core/CalendarType.js +0 -1
  69. package/src/sap/ui/core/Component.js +12 -10
  70. package/src/sap/ui/core/ComponentContainer.js +6 -5
  71. package/src/sap/ui/core/ComponentMetadata.js +1 -1
  72. package/src/sap/ui/core/ComponentSupport.js +1 -1
  73. package/src/sap/ui/core/Configuration.js +1 -1
  74. package/src/sap/ui/core/Control.js +7 -7
  75. package/src/sap/ui/core/Core.js +31 -304
  76. package/src/sap/ui/core/CustomData.js +1 -1
  77. package/src/sap/ui/core/DeclarativeSupport.js +1 -1
  78. package/src/sap/ui/core/Element.js +6 -6
  79. package/src/sap/ui/core/ElementMetadata.js +1 -1
  80. package/src/sap/ui/core/EnabledPropagator.js +1 -1
  81. package/src/sap/ui/core/EventBus.js +1 -1
  82. package/src/sap/ui/core/FocusHandler.js +50 -2
  83. package/src/sap/ui/core/Fragment.js +1 -1
  84. package/src/sap/ui/core/HTML.js +1 -2
  85. package/src/sap/ui/core/History.js +1 -1
  86. package/src/sap/ui/core/Icon.js +1 -2
  87. package/src/sap/ui/core/IndicationColorSupport.js +1 -1
  88. package/src/sap/ui/core/IntervalTrigger.js +1 -1
  89. package/src/sap/ui/core/InvisibleMessage.js +1 -2
  90. package/src/sap/ui/core/InvisibleRenderer.js +1 -1
  91. package/src/sap/ui/core/InvisibleText.js +5 -5
  92. package/src/sap/ui/core/Item.js +1 -2
  93. package/src/sap/ui/core/LabelEnablement.js +1 -1
  94. package/src/sap/ui/core/LayoutData.js +1 -2
  95. package/src/sap/ui/core/ListItem.js +1 -2
  96. package/src/sap/ui/core/LocalBusyIndicator.js +1 -2
  97. package/src/sap/ui/core/Locale.js +1 -1
  98. package/src/sap/ui/core/LocaleData.js +11 -9
  99. package/src/sap/ui/core/Manifest.js +8 -6
  100. package/src/sap/ui/core/Message.js +4 -6
  101. package/src/sap/ui/core/Popup.js +62 -5
  102. package/src/sap/ui/core/RenderManager.js +7 -5
  103. package/src/sap/ui/core/Renderer.js +5 -4
  104. package/src/sap/ui/core/Rendering.js +251 -0
  105. package/src/sap/ui/core/ResizeHandler.js +1 -1
  106. package/src/sap/ui/core/ScrollBar.js +6 -9
  107. package/src/sap/ui/core/ScrollBarRenderer.js +3 -3
  108. package/src/sap/ui/core/SeparatorItem.js +1 -2
  109. package/src/sap/ui/core/Title.js +1 -2
  110. package/src/sap/ui/core/TooltipBase.js +1 -2
  111. package/src/sap/ui/core/UIArea.js +389 -121
  112. package/src/sap/ui/core/UIComponent.js +1 -2
  113. package/src/sap/ui/core/UIComponentMetadata.js +1 -1
  114. package/src/sap/ui/core/ValueStateSupport.js +1 -1
  115. package/src/sap/ui/core/VariantLayoutData.js +1 -2
  116. package/src/sap/ui/core/XMLComposite.js +1 -1
  117. package/src/sap/ui/core/XMLCompositeMetadata.js +1 -1
  118. package/src/sap/ui/core/XMLTemplateProcessor.js +5 -3
  119. package/src/sap/ui/core/cache/CacheManager.js +7 -6
  120. package/src/sap/ui/core/cache/LRUPersistentCache.js +4 -4
  121. package/src/sap/ui/core/date/Islamic.js +4 -4
  122. package/src/sap/ui/core/date/UniversalDate.js +8 -8
  123. package/src/sap/ui/core/date/UniversalDateUtils.js +3 -3
  124. package/src/sap/ui/core/delegate/ItemNavigation.js +5 -5
  125. package/src/sap/ui/core/delegate/ScrollEnablement.js +1 -1
  126. package/src/sap/ui/core/dnd/DragAndDrop.js +4 -3
  127. package/src/sap/ui/core/dnd/DragDropBase.js +1 -2
  128. package/src/sap/ui/core/dnd/DragDropInfo.js +1 -2
  129. package/src/sap/ui/core/dnd/DragInfo.js +1 -2
  130. package/src/sap/ui/core/dnd/DropInfo.js +1 -2
  131. package/src/sap/ui/core/format/DateFormat.js +9 -7
  132. package/src/sap/ui/core/format/DateFormatTimezoneDisplay.js +0 -1
  133. package/src/sap/ui/core/format/FileSizeFormat.js +4 -3
  134. package/src/sap/ui/core/format/ListFormat.js +4 -3
  135. package/src/sap/ui/core/format/NumberFormat.js +6 -5
  136. package/src/sap/ui/core/format/TimezoneUtil.js +1 -1
  137. package/src/sap/ui/core/hyphenation/Hyphenation.js +7 -6
  138. package/src/sap/ui/core/library.js +3 -55
  139. package/src/sap/ui/core/message/ControlMessageProcessor.js +1 -1
  140. package/src/sap/ui/core/message/Message.js +1 -1
  141. package/src/sap/ui/core/message/MessageManager.js +13 -23
  142. package/src/sap/ui/core/message/MessageParser.js +1 -1
  143. package/src/sap/ui/core/message/MessageProcessor.js +1 -1
  144. package/src/sap/ui/core/messagebundle_fr.properties +1 -1
  145. package/src/sap/ui/core/mvc/Controller.js +3 -3
  146. package/src/sap/ui/core/mvc/EventHandlerResolver.js +5 -3
  147. package/src/sap/ui/core/mvc/HTMLView.js +1 -2
  148. package/src/sap/ui/core/mvc/JSONView.js +1 -2
  149. package/src/sap/ui/core/mvc/JSView.js +1 -2
  150. package/src/sap/ui/core/mvc/TemplateView.js +1 -2
  151. package/src/sap/ui/core/mvc/View.js +21 -20
  152. package/src/sap/ui/core/mvc/ViewType.js +0 -1
  153. package/src/sap/ui/core/mvc/XMLView.js +18 -18
  154. package/src/sap/ui/core/plugin/DeclarativeSupport.js +1 -1
  155. package/src/sap/ui/core/plugin/LessSupport.js +1 -1
  156. package/src/sap/ui/core/plugin/TemplatingSupport.js +1 -1
  157. package/src/sap/ui/core/postmessage/Bus.js +1 -1
  158. package/src/sap/ui/core/postmessage/confirmationDialog.js +1 -1
  159. package/src/sap/ui/core/routing/async/Target.js +4 -3
  160. package/src/sap/ui/core/rules/Config.support.js +6 -4
  161. package/src/sap/ui/core/rules/CoreHelper.support.js +3 -3
  162. package/src/sap/ui/core/search/OpenSearchProvider.js +1 -2
  163. package/src/sap/ui/core/search/SearchProvider.js +1 -3
  164. package/src/sap/ui/core/service/Service.js +1 -1
  165. package/src/sap/ui/core/service/ServiceFactory.js +1 -1
  166. package/src/sap/ui/core/service/ServiceFactoryRegistry.js +1 -1
  167. package/src/sap/ui/core/support/Plugin.js +1 -1
  168. package/src/sap/ui/core/support/Support.js +1 -1
  169. package/src/sap/ui/core/support/ToolsAPI.js +11 -13
  170. package/src/sap/ui/core/support/plugins/ControlTree.js +4 -4
  171. package/src/sap/ui/core/support/plugins/Interaction.js +1 -1
  172. package/src/sap/ui/core/support/plugins/LocalStorage.js +1 -1
  173. package/src/sap/ui/core/support/plugins/Performance.js +1 -1
  174. package/src/sap/ui/core/support/plugins/Selector.js +1 -1
  175. package/src/sap/ui/core/support/plugins/TechInfo.js +1 -1
  176. package/src/sap/ui/core/support/plugins/Trace.js +1 -1
  177. package/src/sap/ui/core/support/plugins/ViewInfo.js +1 -1
  178. package/src/sap/ui/core/support/techinfo/TechnicalInfo.js +7 -5
  179. package/src/sap/ui/core/tmpl/DOMAttribute.js +1 -2
  180. package/src/sap/ui/core/tmpl/DOMElement.js +1 -4
  181. package/src/sap/ui/core/tmpl/HandlebarsTemplate.js +1 -1
  182. package/src/sap/ui/core/tmpl/Template.js +1 -2
  183. package/src/sap/ui/core/tmpl/TemplateControl.js +1 -2
  184. package/src/sap/ui/core/util/AsyncHintsHelper.js +1 -1
  185. package/src/sap/ui/core/util/Export.js +1 -1
  186. package/src/sap/ui/core/util/ExportCell.js +1 -1
  187. package/src/sap/ui/core/util/ExportColumn.js +1 -1
  188. package/src/sap/ui/core/util/ExportRow.js +1 -1
  189. package/src/sap/ui/core/util/ExportType.js +1 -1
  190. package/src/sap/ui/core/util/ExportTypeCSV.js +1 -1
  191. package/src/sap/ui/core/util/File.js +1 -1
  192. package/src/sap/ui/core/util/LibraryInfo.js +1 -1
  193. package/src/sap/ui/core/util/MockServer.js +4 -2
  194. package/src/sap/ui/core/util/PasteHelper.js +1 -1
  195. package/src/sap/ui/core/util/serializer/HTMLViewSerializer.js +1 -1
  196. package/src/sap/ui/core/util/serializer/Serializer.js +1 -1
  197. package/src/sap/ui/core/util/serializer/ViewSerializer.js +4 -4
  198. package/src/sap/ui/core/util/serializer/XMLViewSerializer.js +1 -1
  199. package/src/sap/ui/core/util/serializer/delegate/Delegate.js +1 -1
  200. package/src/sap/ui/core/util/serializer/delegate/HTML.js +1 -1
  201. package/src/sap/ui/core/util/serializer/delegate/XML.js +1 -1
  202. package/src/sap/ui/core/ws/ReadyState.js +1 -1
  203. package/src/sap/ui/core/ws/SapPcpWebSocket.js +1 -1
  204. package/src/sap/ui/core/ws/WebSocket.js +1 -1
  205. package/src/sap/ui/debug/ControlTree.js +3 -3
  206. package/src/sap/ui/debug/DebugEnv.js +4 -4
  207. package/src/sap/ui/debug/PropertyList.js +1 -1
  208. package/src/sap/ui/model/ClientModel.js +1 -1
  209. package/src/sap/ui/model/ClientTreeBinding.js +3 -1
  210. package/src/sap/ui/model/CompositeDataState.js +1 -1
  211. package/src/sap/ui/model/CompositeType.js +1 -1
  212. package/src/sap/ui/model/DataState.js +1 -1
  213. package/src/sap/ui/model/MetaModel.js +1 -1
  214. package/src/sap/ui/model/Model.js +1 -1
  215. package/src/sap/ui/model/SelectionModel.js +1 -1
  216. package/src/sap/ui/model/SimpleType.js +1 -1
  217. package/src/sap/ui/model/Sorter.js +22 -17
  218. package/src/sap/ui/model/TreeAutoExpandMode.js +1 -1
  219. package/src/sap/ui/model/TreeBindingAdapter.js +3 -7
  220. package/src/sap/ui/model/Type.js +1 -1
  221. package/src/sap/ui/model/analytics/AnalyticalBinding.js +2 -0
  222. package/src/sap/ui/model/analytics/AnalyticalTreeBindingAdapter.js +5 -7
  223. package/src/sap/ui/model/json/JSONModel.js +8 -6
  224. package/src/sap/ui/model/message/MessageModel.js +1 -1
  225. package/src/sap/ui/model/odata/ODataAnnotations.js +5 -3
  226. package/src/sap/ui/model/odata/ODataMessageParser.js +1 -1
  227. package/src/sap/ui/model/odata/ODataMetaModel.js +31 -8
  228. package/src/sap/ui/model/odata/ODataMetadata.js +5 -4
  229. package/src/sap/ui/model/odata/ODataModel.js +6 -5
  230. package/src/sap/ui/model/odata/ODataTreeBindingFlat.js +0 -1
  231. package/src/sap/ui/model/odata/type/Boolean.js +1 -1
  232. package/src/sap/ui/model/odata/type/Byte.js +1 -1
  233. package/src/sap/ui/model/odata/type/Currency.js +1 -1
  234. package/src/sap/ui/model/odata/type/Date.js +1 -1
  235. package/src/sap/ui/model/odata/type/DateTime.js +1 -1
  236. package/src/sap/ui/model/odata/type/DateTimeBase.js +1 -1
  237. package/src/sap/ui/model/odata/type/DateTimeOffset.js +1 -1
  238. package/src/sap/ui/model/odata/type/DateTimeWithTimezone.js +1 -1
  239. package/src/sap/ui/model/odata/type/Decimal.js +1 -1
  240. package/src/sap/ui/model/odata/type/Double.js +1 -1
  241. package/src/sap/ui/model/odata/type/Guid.js +1 -1
  242. package/src/sap/ui/model/odata/type/Int.js +1 -1
  243. package/src/sap/ui/model/odata/type/Int16.js +1 -1
  244. package/src/sap/ui/model/odata/type/Int32.js +1 -1
  245. package/src/sap/ui/model/odata/type/Int64.js +1 -1
  246. package/src/sap/ui/model/odata/type/ODataType.js +1 -1
  247. package/src/sap/ui/model/odata/type/Raw.js +1 -1
  248. package/src/sap/ui/model/odata/type/SByte.js +1 -1
  249. package/src/sap/ui/model/odata/type/Single.js +1 -1
  250. package/src/sap/ui/model/odata/type/Stream.js +1 -1
  251. package/src/sap/ui/model/odata/type/String.js +1 -1
  252. package/src/sap/ui/model/odata/type/Time.js +1 -1
  253. package/src/sap/ui/model/odata/type/TimeOfDay.js +1 -1
  254. package/src/sap/ui/model/odata/type/Unit.js +1 -1
  255. package/src/sap/ui/model/odata/v2/Context.js +1 -1
  256. package/src/sap/ui/model/odata/v2/ODataAnnotations.js +4 -3
  257. package/src/sap/ui/model/odata/v2/ODataContextBinding.js +24 -15
  258. package/src/sap/ui/model/odata/v2/ODataListBinding.js +45 -27
  259. package/src/sap/ui/model/odata/v2/ODataModel.js +94 -36
  260. package/src/sap/ui/model/odata/v2/ODataTreeBinding.js +5 -5
  261. package/src/sap/ui/model/odata/v4/Context.js +23 -19
  262. package/src/sap/ui/model/odata/v4/ODataBinding.js +7 -3
  263. package/src/sap/ui/model/odata/v4/ODataContextBinding.js +3 -3
  264. package/src/sap/ui/model/odata/v4/ODataListBinding.js +121 -57
  265. package/src/sap/ui/model/odata/v4/ODataMetaModel.js +11 -11
  266. package/src/sap/ui/model/odata/v4/ODataModel.js +111 -69
  267. package/src/sap/ui/model/odata/v4/ODataParentBinding.js +12 -4
  268. package/src/sap/ui/model/odata/v4/ODataPropertyBinding.js +2 -2
  269. package/src/sap/ui/model/odata/v4/ODataUtils.js +1 -1
  270. package/src/sap/ui/model/odata/v4/lib/_AggregationCache.js +41 -29
  271. package/src/sap/ui/model/odata/v4/lib/_Cache.js +59 -20
  272. package/src/sap/ui/model/odata/v4/lib/_Helper.js +135 -4
  273. package/src/sap/ui/model/odata/v4/lib/_Requestor.js +21 -7
  274. package/src/sap/ui/model/resource/ResourceModel.js +7 -6
  275. package/src/sap/ui/model/type/Boolean.js +1 -1
  276. package/src/sap/ui/model/type/Currency.js +1 -1
  277. package/src/sap/ui/model/type/Date.js +1 -1
  278. package/src/sap/ui/model/type/DateInterval.js +1 -1
  279. package/src/sap/ui/model/type/DateTime.js +1 -1
  280. package/src/sap/ui/model/type/DateTimeInterval.js +1 -1
  281. package/src/sap/ui/model/type/FileSize.js +1 -1
  282. package/src/sap/ui/model/type/Float.js +1 -1
  283. package/src/sap/ui/model/type/Integer.js +1 -1
  284. package/src/sap/ui/model/type/String.js +1 -1
  285. package/src/sap/ui/model/type/Time.js +1 -1
  286. package/src/sap/ui/model/type/TimeInterval.js +1 -1
  287. package/src/sap/ui/model/type/Unit.js +5 -4
  288. package/src/sap/ui/model/xml/XMLModel.js +8 -6
  289. package/src/sap/ui/performance/trace/Interaction.js +1 -1
  290. package/src/sap/ui/qunit/QUnitUtils.js +2 -1
  291. package/src/sap/ui/qunit/utils/ControlIterator.js +1 -1
  292. package/src/sap/ui/qunit/utils/MemoryLeakCheck.js +1 -1
  293. package/src/sap/ui/test/Opa.js +7 -5
  294. package/src/sap/ui/test/Opa5.js +9 -15
  295. package/src/sap/ui/test/RecorderHotkeyListener.js +1 -1
  296. package/src/sap/ui/test/TestUtils.js +83 -1
  297. package/src/sap/ui/test/autowaiter/_autoWaiter.js +9 -0
  298. package/src/sap/ui/test/autowaiter/_cssAnimationWaiter.js +114 -0
  299. package/src/sap/ui/test/autowaiter/_cssTransitionWaiter.js +99 -0
  300. package/src/sap/ui/test/autowaiter/_jsAnimationWaiter.js +70 -0
  301. package/src/sap/ui/test/autowaiter/_resourceWaiter.js +3 -12
  302. package/src/sap/ui/test/autowaiter/_utils.js +13 -1
  303. package/src/sap/ui/test/generic/TestBase.js +1 -1
  304. package/src/sap/ui/test/matchers/Ancestor.js +1 -0
  305. package/src/sap/ui/test/matchers/Descendant.js +1 -0
  306. package/src/sap/ui/test/matchers/Sibling.js +1 -0
  307. package/src/sap/ui/util/Storage.js +1 -1
@@ -175,11 +175,13 @@ sap.ui.define([
175
175
  oEntity = vDeleteProperty
176
176
  ? vCacheData[vCachePath] || vCacheData.$byPredicate[vCachePath]
177
177
  : vCacheData, // deleting at root level
178
+ aMessages,
178
179
  mHeaders,
179
180
  iIndex = typeof vCachePath === "number" ? vCachePath : undefined,
180
181
  sKeyPredicate = _Helper.getPrivateAnnotation(oEntity, "predicate"),
181
182
  sEntityPath = _Helper.buildPath(sParentPath,
182
183
  Array.isArray(vCacheData) ? sKeyPredicate : vDeleteProperty),
184
+ oModelInterface = that.oRequestor.getModelInterface(),
183
185
  oRequestPromise,
184
186
  sTransientGroup = _Helper.getPrivateAnnotation(oEntity, "transient"),
185
187
  sTransientPredicate = _Helper.getPrivateAnnotation(oEntity, "transientPredicate");
@@ -194,6 +196,19 @@ sap.ui.define([
194
196
  if (oEntity["@$ui5.context.isDeleted"]) {
195
197
  throw new Error("Must not delete twice: " + sEditUrl);
196
198
  }
199
+
200
+ aMessages = oModelInterface.getMessagesByPath(
201
+ _Helper.buildPath("/", that.sResourcePath, sEntityPath), true);
202
+
203
+ if (aMessages.length) {
204
+ aMessages = aMessages.filter(function (oMessage) {
205
+ return !oMessage.persistent;
206
+ });
207
+ _Helper.setPrivateAnnotation(oEntity, "messages", aMessages);
208
+ }
209
+
210
+ oModelInterface.reportStateMessages(that.sResourcePath, {}, [sEntityPath]);
211
+
197
212
  oEntity["@$ui5.context.isDeleted"] = true;
198
213
  if (Array.isArray(vCacheData)) {
199
214
  oDeleted = that.addDeleted(vCacheData, iIndex, sKeyPredicate, oGroupLock,
@@ -221,6 +236,7 @@ sap.ui.define([
221
236
  && that.requestCount(oGroupLock || that.oRequestor.lockGroup("$auto", that)),
222
237
  oGroupLock && oGroupLock.unlock() // unlock when all requests have been queued
223
238
  ]).then(function () {
239
+ _Helper.deletePrivateAnnotation(oEntity, "messages");
224
240
  if (Array.isArray(vCacheData)) {
225
241
  vCacheData.$deleted.splice(vCacheData.$deleted.indexOf(oDeleted), 1);
226
242
  delete vCacheData.$byPredicate[sKeyPredicate];
@@ -232,10 +248,14 @@ sap.ui.define([
232
248
  } else { // deleting at root level
233
249
  oEntity["$ui5.deleted"] = true;
234
250
  }
235
- that.oRequestor.getModelInterface().reportStateMessages(that.sResourcePath,
236
- {}, [sEntityPath]);
237
251
  }, function (oError) {
238
- var iDeletedIndex;
252
+ var iDeletedIndex,
253
+ aMessages = _Helper.getPrivateAnnotation(oEntity, "messages");
254
+
255
+ if (aMessages) {
256
+ oModelInterface.fireMessageChange({newMessages : aMessages});
257
+ }
258
+ _Helper.deletePrivateAnnotation(oEntity, "messages");
239
259
 
240
260
  delete oEntity["@$ui5.context.isDeleted"];
241
261
  if (Array.isArray(vCacheData)) {
@@ -559,7 +579,8 @@ sap.ui.define([
559
579
  };
560
580
 
561
581
  /**
562
- * Deregisters the given change listener. Note: shared caches have no listeners anyway.
582
+ * Deregisters the given change listener. Note: shared caches only have listeners for the empty
583
+ * path.
563
584
  *
564
585
  * @param {string} sPath
565
586
  * The path
@@ -569,7 +590,7 @@ sap.ui.define([
569
590
  * @public
570
591
  */
571
592
  _Cache.prototype.deregisterChangeListener = function (sPath, oListener) {
572
- if (!this.bSharedRequest) {
593
+ if (!(this.bSharedRequest && sPath)) {
573
594
  _Helper.removeByPath(this.mChangeListeners, sPath, oListener);
574
595
  }
575
596
  };
@@ -622,7 +643,8 @@ sap.ui.define([
622
643
  * special cases.
623
644
  */
624
645
  function missingValue(oValue, sSegment, iPathLength, bAgain) {
625
- var sPropertyName,
646
+ var vPermissions,
647
+ sPropertyName,
626
648
  sPropertyPath = aSegments.slice(0, iPathLength).join("/"),
627
649
  sPropertyMetaPath = _Helper.getMetaPath(sPropertyPath),
628
650
  sReadLink;
@@ -647,11 +669,15 @@ sap.ui.define([
647
669
  }
648
670
  }
649
671
 
672
+ vPermissions = oValue[_Helper.getAnnotationKey(oValue, ".Permissions", sSegment)];
673
+ if (vPermissions === 0 || vPermissions === "None") {
674
+ return undefined;
675
+ }
676
+
650
677
  return that.oRequestor.getModelInterface()
651
678
  .fetchMetadata(that.sMetaPath + "/" + sPropertyMetaPath)
652
679
  .then(function (oProperty) {
653
- var vPermissions,
654
- vResult = false;
680
+ var vResult = false;
655
681
 
656
682
  if (!oProperty) {
657
683
  return invalidSegment(sSegment);
@@ -669,11 +695,6 @@ sap.ui.define([
669
695
  }
670
696
  }
671
697
  if (!bTransient) {
672
- vPermissions = oValue[
673
- _Helper.getAnnotationKey(oValue, ".Permissions", sSegment)];
674
- if (vPermissions === 0 || vPermissions === "None") {
675
- return undefined;
676
- }
677
698
  // If there is no entity with a key predicate, try it with the cache root
678
699
  // object (in case of SimpleCache, the root object of CollectionCache is an
679
700
  // array)
@@ -1443,8 +1464,8 @@ sap.ui.define([
1443
1464
  };
1444
1465
 
1445
1466
  /**
1446
- * Registers the listener for the path. Shared caches do not register listeners because they are
1447
- * read-only.
1467
+ * Registers the listener for the path. Shared caches do not register listeners except for the
1468
+ * empty path, because they are read-only.
1448
1469
  *
1449
1470
  * @param {string} sPath The path
1450
1471
  * @param {object} [oListener] The listener
@@ -1452,7 +1473,7 @@ sap.ui.define([
1452
1473
  * @private
1453
1474
  */
1454
1475
  _Cache.prototype.registerChangeListener = function (sPath, oListener) {
1455
- if (!this.bSharedRequest) {
1476
+ if (!(this.bSharedRequest && sPath)) {
1456
1477
  _Helper.addByPath(this.mChangeListeners, sPath, oListener);
1457
1478
  }
1458
1479
  };
@@ -1564,6 +1585,7 @@ sap.ui.define([
1564
1585
  var oOldElement, sTransientPredicate;
1565
1586
 
1566
1587
  if (iIndex === undefined) { // kept-alive element not in the list
1588
+ oOldElement = aElements.$byPredicate[sPredicate];
1567
1589
  aElements.$byPredicate[sPredicate] = oElement;
1568
1590
  } else {
1569
1591
  // the element might have moved due to parallel insert/delete
@@ -1578,6 +1600,8 @@ sap.ui.define([
1578
1600
  _Helper.setPrivateAnnotation(oElement, "transientPredicate", sTransientPredicate);
1579
1601
  }
1580
1602
  }
1603
+ _Helper.restoreUpdatingProperties(oOldElement, oElement);
1604
+
1581
1605
  // Note: iStart is not needed here because we know we have key predicates
1582
1606
  this.visitResponse(oElement, mTypeForMetaPath,
1583
1607
  _Helper.getMetaPath(_Helper.buildPath(this.sMetaPath, sPath)), sPath + sPredicate);
@@ -1691,8 +1715,8 @@ sap.ui.define([
1691
1715
  this.iActiveUsages -= 1;
1692
1716
  if (!this.iActiveUsages) {
1693
1717
  this.iInactiveSince = Date.now();
1718
+ this.mChangeListeners = {};
1694
1719
  }
1695
- this.mChangeListeners = {}; // Note: shared caches have no listeners anyway
1696
1720
  }
1697
1721
  };
1698
1722
 
@@ -1730,6 +1754,8 @@ sap.ui.define([
1730
1754
  * The new value
1731
1755
  * @param {string} [sEntityPath]
1732
1756
  * Path of the entity, relative to the cache (as used by change listeners)
1757
+ * @param {boolean} [bUpdating]
1758
+ * Whether the given property will not be overwritten by a creation POST(+GET) response
1733
1759
  * @returns {Promise}
1734
1760
  * A promise which resolves with <code>undefined</code> once the value has been set, or is
1735
1761
  * rejected with an error if setting fails somehow
@@ -1737,14 +1763,14 @@ sap.ui.define([
1737
1763
  *
1738
1764
  * @public
1739
1765
  */
1740
- _Cache.prototype.setProperty = function (sPropertyPath, vValue, sEntityPath) {
1766
+ _Cache.prototype.setProperty = function (sPropertyPath, vValue, sEntityPath, bUpdating) {
1741
1767
  var that = this;
1742
1768
 
1743
1769
  this.checkSharedRequest();
1744
1770
  return this.fetchValue(_GroupLock.$cached, sEntityPath, null, null, true)
1745
1771
  .then(function (oEntity) {
1746
1772
  _Helper.updateAll(that.mChangeListeners, sEntityPath, oEntity,
1747
- _Cache.makeUpdateData(sPropertyPath.split("/"), vValue));
1773
+ _Cache.makeUpdateData(sPropertyPath.split("/"), vValue, bUpdating));
1748
1774
  });
1749
1775
  };
1750
1776
 
@@ -2012,6 +2038,9 @@ sap.ui.define([
2012
2038
  throw new Error("Cannot update '" + sPropertyPath + "': '" + sEntityPath
2013
2039
  + "' does not exist");
2014
2040
  }
2041
+
2042
+ _Helper.deleteUpdating(sPropertyPath, oEntity);
2043
+
2015
2044
  sTransientGroup = _Helper.getPrivateAnnotation(oEntity, "transient");
2016
2045
  if (sTransientGroup) {
2017
2046
  if (typeof sTransientGroup !== "string") {
@@ -3230,6 +3259,10 @@ sap.ui.define([
3230
3259
  aKeptElementPredicates.forEach(function (sPredicate) {
3231
3260
  that.aElements.$byPredicate[sPredicate] = mByPredicate[sPredicate];
3232
3261
  });
3262
+ if (mChangeListeners[""]) {
3263
+ this.mChangeListeners[""] = mChangeListeners[""];
3264
+ _Helper.fireChange(this.mChangeListeners, "");
3265
+ }
3233
3266
  };
3234
3267
 
3235
3268
  /**
@@ -4008,16 +4041,22 @@ sap.ui.define([
4008
4041
  * The property path split into an array of segments
4009
4042
  * @param {any} vValue
4010
4043
  * The property value
4044
+ * @param {boolean} [bUpdating]
4045
+ * Whether the given property will not be overwritten by a creation POST(+GET) response
4011
4046
  * @returns {object}
4012
4047
  * The resulting object
4013
4048
  *
4014
4049
  * @private
4015
4050
  */
4016
- _Cache.makeUpdateData = function (aPropertyPath, vValue) {
4051
+ _Cache.makeUpdateData = function (aPropertyPath, vValue, bUpdating) {
4017
4052
  return aPropertyPath.reduceRight(function (vValue0, sSegment) {
4018
4053
  var oResult = {};
4019
4054
 
4020
4055
  oResult[sSegment] = vValue0;
4056
+ if (bUpdating) {
4057
+ oResult[sSegment + "@$ui5.updating"] = true;
4058
+ bUpdating = false;
4059
+ }
4021
4060
  return oResult;
4022
4061
  }, vValue);
4023
4062
  };
@@ -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,
@@ -312,6 +314,31 @@ sap.ui.define([
312
314
  return oSelect;
313
315
  },
314
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
+
315
342
  /**
316
343
  * Returns a clone of the given value, according to the rules of
317
344
  * <code>JSON.stringify</code>.
@@ -603,6 +630,8 @@ sap.ui.define([
603
630
 
604
631
  if (!isRelevant(oClone.error, sTopLevelContentID)) {
605
632
  oClone.error.$ignoreTopLevel = true;
633
+ } else {
634
+ oClone.strictHandlingFailed = oError.strictHandlingFailed;
606
635
  }
607
636
  if (oClone.error.details) {
608
637
  oClone.error.details = oClone.error.details.filter(function (oDetail, i) {
@@ -636,6 +665,33 @@ sap.ui.define([
636
665
  }
637
666
  },
638
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
+
639
695
  /**
640
696
  * Drills down into the given object according to the given path.
641
697
  *
@@ -1248,6 +1304,27 @@ sap.ui.define([
1248
1304
  return sPath.replace(rNotMetaContext, "").slice(1);
1249
1305
  },
1250
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
+
1251
1328
  /**
1252
1329
  * Returns the value of the private client-side instance annotation with the given
1253
1330
  * unqualified name at the given object.
@@ -1860,6 +1937,41 @@ sap.ui.define([
1860
1937
  return mHeaders;
1861
1938
  },
1862
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
+
1863
1975
  /**
1864
1976
  * Adds the key properties of the given entity type to $select of the given query options.
1865
1977
  *
@@ -1895,6 +2007,23 @@ sap.ui.define([
1895
2007
  }
1896
2008
  },
1897
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
+
1898
2027
  /**
1899
2028
  * Sets the new value of the private client-side instance annotation with the given
1900
2029
  * unqualified name at the given object.
@@ -2152,7 +2281,7 @@ sap.ui.define([
2152
2281
  * @param {function} [fnCheckKeyPredicate]
2153
2282
  * Callback function which tells whether the key predicate for the given path is checked
2154
2283
  * for equality instead of just being copied from source to target
2155
- * @param {boolean} [bOkIfMissing]
2284
+ * @param {boolean} [bOkIfMissing]
2156
2285
  * Whether this should not check for selected properties missing in the response
2157
2286
  */
2158
2287
  updateSelected : function (mChangeListeners, sBasePath, oOldValue, oNewValue, aSelect,
@@ -2196,8 +2325,9 @@ sap.ui.define([
2196
2325
  // annotations
2197
2326
  Object.keys(oTarget).forEach(function (sProperty) {
2198
2327
  if (!(sProperty in oSource) && sProperty.includes("@")
2199
- && !sProperty.startsWith("@$ui5.")
2200
- && 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);
@@ -2235,7 +2365,8 @@ sap.ui.define([
2235
2365
  && !sProperty.includes("@")) {
2236
2366
  oTarget[sProperty] = update(sPropertyPath, vSelected, vTargetProperty || {},
2237
2367
  vSourceProperty);
2238
- } else if (vTargetProperty !== vSourceProperty) {
2368
+ } else if (vTargetProperty !== vSourceProperty
2369
+ && !oTarget[sProperty + "@$ui5.updating"]) {
2239
2370
  oTarget[sProperty] = vSourceProperty;
2240
2371
  if (vTargetProperty && typeof vTargetProperty === "object") {
2241
2372
  // a complex property is replaced by null
@@ -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,10 +2152,12 @@ 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
2150
2161
  * @param {function} oModelInterface.fireDataReceived
2151
2162
  * A function that fires the 'dataReceived' event at the model with an optional parameter
2152
2163
  * <code>oError</code>
@@ -2154,18 +2165,21 @@ sap.ui.define([
2154
2165
  * A function that fires the 'dataRequested' event at the model
2155
2166
  * @param {function} oModelInterface.fireSessionTimeout
2156
2167
  * A function that fires the 'sessionTimeout' event (when the server has created a session for
2157
- * 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)
2158
2169
  * @param {function} oModelInterface.getGroupProperty
2159
2170
  * A function called with parameters <code>sGroupId</code> and <code>sPropertyName</code>
2160
2171
  * returning the property value in question. Only 'submit' is supported for <code>
2161
- * 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
2162
2176
  * @param {function} oModelInterface.getOptimisticBatchEnabler
2163
2177
  * A function that returns a callback function which controls the optimistic batch handling,
2164
- * see also {@link sap.ui.model.odata.v4.ODataModel#setOptimisticBatchEnabler}.
2178
+ * see also {@link sap.ui.model.odata.v4.ODataModel#setOptimisticBatchEnabler}
2165
2179
  * @param {function} oModelInterface.getReporter
2166
2180
  * A catch handler function expecting an <code>Error</code> instance. This function will call
2167
2181
  * {@link sap.ui.model.odata.v4.ODataModel#reportError} if the error has not been reported
2168
- * yet.
2182
+ * yet
2169
2183
  * @param {function} oModelInterface.onCreateGroup
2170
2184
  * A callback function that is called with the group name as parameter when the first
2171
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.106.0
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
 
@@ -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.106.0
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.106.0
35
+ * @version 1.107.0
36
36
  *
37
37
  * @public
38
38
  * @param {object} [oFormatOptions]
@@ -26,7 +26,7 @@ sap.ui.define([
26
26
  * @extends sap.ui.model.SimpleType
27
27
  *
28
28
  * @author SAP SE
29
- * @version 1.106.0
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.106.0
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.106.0
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.106.0
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.106.0
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.106.0
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.106.0
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.106.0
27
+ * @version 1.107.0
28
28
  *
29
29
  * @alias sap.ui.model.type.String
30
30
  * @param {object} [oFormatOptions]
@@ -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.106.0
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.106.0
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}.