@openui5/sap.ui.core 1.100.0 → 1.102.1

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 (388) hide show
  1. package/.eslintrc.json +27 -5
  2. package/THIRDPARTY.txt +5 -5
  3. package/package.json +1 -1
  4. package/src/jquery.sap.global.js +1 -1
  5. package/src/jquery.sap.properties.js +1 -1
  6. package/src/jquery.sap.resources.js +1 -1
  7. package/src/jquery.sap.script.js +1 -1
  8. package/src/jquery.sap.storage.js +3 -3
  9. package/src/sap/base/assert.js +1 -1
  10. package/src/sap/base/strings/whitespaceReplacer.js +1 -1
  11. package/src/sap/base/util/restricted/_CancelablePromise.js +2 -2
  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/Event.js +1 -1
  55. package/src/sap/ui/base/EventProvider.js +2 -2
  56. package/src/sap/ui/base/Interface.js +1 -1
  57. package/src/sap/ui/base/ManagedObject.js +1 -1
  58. package/src/sap/ui/base/ManagedObjectMetadata.js +1 -1
  59. package/src/sap/ui/base/ManagedObjectRegistry.js +10 -5
  60. package/src/sap/ui/base/Metadata.js +1 -1
  61. package/src/sap/ui/base/Object.js +1 -1
  62. package/src/sap/ui/base/ObjectPool.js +1 -1
  63. package/src/sap/ui/core/.library +2 -1
  64. package/src/sap/ui/core/BusyIndicator.js +1 -1
  65. package/src/sap/ui/core/CommandExecution.js +15 -12
  66. package/src/sap/ui/core/Component.js +50 -27
  67. package/src/sap/ui/core/ComponentContainer.js +1 -1
  68. package/src/sap/ui/core/ComponentMetadata.js +27 -12
  69. package/src/sap/ui/core/ComponentSupport.js +1 -1
  70. package/src/sap/ui/core/Configuration.js +22 -8
  71. package/src/sap/ui/core/Control.js +2 -3
  72. package/src/sap/ui/core/Core.js +119 -36
  73. package/src/sap/ui/core/CustomData.js +1 -1
  74. package/src/sap/ui/core/DeclarativeSupport.js +1 -1
  75. package/src/sap/ui/core/Element.js +1 -1
  76. package/src/sap/ui/core/ElementMetadata.js +1 -1
  77. package/src/sap/ui/core/EnabledPropagator.js +1 -1
  78. package/src/sap/ui/core/EventBus.js +1 -1
  79. package/src/sap/ui/core/ExtensionPoint.js +6 -1
  80. package/src/sap/ui/core/FocusHandler.js +2 -3
  81. package/src/sap/ui/core/Fragment.js +1 -1
  82. package/src/sap/ui/core/HTML.js +1 -1
  83. package/src/sap/ui/core/History.js +1 -1
  84. package/src/sap/ui/core/Icon.js +2 -2
  85. package/src/sap/ui/core/IndicationColorSupport.js +1 -1
  86. package/src/sap/ui/core/IntervalTrigger.js +1 -1
  87. package/src/sap/ui/core/InvisibleMessage.js +1 -1
  88. package/src/sap/ui/core/InvisibleRenderer.js +1 -1
  89. package/src/sap/ui/core/InvisibleText.js +1 -1
  90. package/src/sap/ui/core/Item.js +1 -1
  91. package/src/sap/ui/core/LabelEnablement.js +1 -1
  92. package/src/sap/ui/core/LayoutData.js +1 -1
  93. package/src/sap/ui/core/ListItem.js +1 -1
  94. package/src/sap/ui/core/LocalBusyIndicator.js +1 -1
  95. package/src/sap/ui/core/Locale.js +1 -1
  96. package/src/sap/ui/core/LocaleData.js +136 -5
  97. package/src/sap/ui/core/Manifest.js +5 -3
  98. package/src/sap/ui/core/Message.js +1 -1
  99. package/src/sap/ui/core/Patcher.js +3 -1
  100. package/src/sap/ui/core/Popup.js +12 -14
  101. package/src/sap/ui/core/RenderManager.js +1 -1
  102. package/src/sap/ui/core/Renderer.js +1 -1
  103. package/src/sap/ui/core/ResizeHandler.js +1 -1
  104. package/src/sap/ui/core/ScrollBar.js +21 -15
  105. package/src/sap/ui/core/SeparatorItem.js +1 -1
  106. package/src/sap/ui/core/ShortcutHintsMixin.js +2 -4
  107. package/src/sap/ui/core/Title.js +1 -1
  108. package/src/sap/ui/core/TooltipBase.js +1 -1
  109. package/src/sap/ui/core/UIArea.js +3 -5
  110. package/src/sap/ui/core/UIComponent.js +1 -1
  111. package/src/sap/ui/core/UIComponentMetadata.js +1 -1
  112. package/src/sap/ui/core/ValueStateSupport.js +1 -1
  113. package/src/sap/ui/core/VariantLayoutData.js +1 -1
  114. package/src/sap/ui/core/XMLComposite.js +1 -1
  115. package/src/sap/ui/core/XMLCompositeMetadata.js +1 -1
  116. package/src/sap/ui/core/XMLTemplateProcessor.js +514 -389
  117. package/src/sap/ui/core/cache/CacheManager.js +27 -0
  118. package/src/sap/ui/core/cache/CacheManagerNOP.js +3 -0
  119. package/src/sap/ui/core/cache/LRUPersistentCache.js +74 -3
  120. package/src/sap/ui/core/cldr/ar.json +469 -1
  121. package/src/sap/ui/core/cldr/ar_EG.json +469 -1
  122. package/src/sap/ui/core/cldr/ar_SA.json +469 -1
  123. package/src/sap/ui/core/cldr/bg.json +469 -1
  124. package/src/sap/ui/core/cldr/ca.json +469 -1
  125. package/src/sap/ui/core/cldr/cs.json +469 -1
  126. package/src/sap/ui/core/cldr/cy.json +469 -1
  127. package/src/sap/ui/core/cldr/da.json +469 -1
  128. package/src/sap/ui/core/cldr/de.json +469 -1
  129. package/src/sap/ui/core/cldr/de_AT.json +469 -1
  130. package/src/sap/ui/core/cldr/de_CH.json +469 -1
  131. package/src/sap/ui/core/cldr/el.json +469 -1
  132. package/src/sap/ui/core/cldr/el_CY.json +469 -1
  133. package/src/sap/ui/core/cldr/en.json +469 -1
  134. package/src/sap/ui/core/cldr/en_AU.json +469 -1
  135. package/src/sap/ui/core/cldr/en_GB.json +469 -1
  136. package/src/sap/ui/core/cldr/en_HK.json +469 -1
  137. package/src/sap/ui/core/cldr/en_IE.json +469 -1
  138. package/src/sap/ui/core/cldr/en_IN.json +469 -1
  139. package/src/sap/ui/core/cldr/en_NZ.json +469 -1
  140. package/src/sap/ui/core/cldr/en_PG.json +469 -1
  141. package/src/sap/ui/core/cldr/en_SG.json +469 -1
  142. package/src/sap/ui/core/cldr/en_ZA.json +469 -1
  143. package/src/sap/ui/core/cldr/es.json +469 -1
  144. package/src/sap/ui/core/cldr/es_AR.json +469 -1
  145. package/src/sap/ui/core/cldr/es_BO.json +469 -1
  146. package/src/sap/ui/core/cldr/es_CL.json +469 -1
  147. package/src/sap/ui/core/cldr/es_CO.json +469 -1
  148. package/src/sap/ui/core/cldr/es_MX.json +469 -1
  149. package/src/sap/ui/core/cldr/es_PE.json +469 -1
  150. package/src/sap/ui/core/cldr/es_UY.json +469 -1
  151. package/src/sap/ui/core/cldr/es_VE.json +469 -1
  152. package/src/sap/ui/core/cldr/et.json +469 -1
  153. package/src/sap/ui/core/cldr/fa.json +469 -1
  154. package/src/sap/ui/core/cldr/fi.json +469 -1
  155. package/src/sap/ui/core/cldr/fr.json +469 -1
  156. package/src/sap/ui/core/cldr/fr_BE.json +469 -1
  157. package/src/sap/ui/core/cldr/fr_CA.json +469 -1
  158. package/src/sap/ui/core/cldr/fr_CH.json +469 -1
  159. package/src/sap/ui/core/cldr/fr_LU.json +469 -1
  160. package/src/sap/ui/core/cldr/he.json +469 -1
  161. package/src/sap/ui/core/cldr/hi.json +469 -1
  162. package/src/sap/ui/core/cldr/hr.json +469 -1
  163. package/src/sap/ui/core/cldr/hu.json +469 -1
  164. package/src/sap/ui/core/cldr/id.json +469 -1
  165. package/src/sap/ui/core/cldr/it.json +469 -1
  166. package/src/sap/ui/core/cldr/it_CH.json +469 -1
  167. package/src/sap/ui/core/cldr/ja.json +469 -1
  168. package/src/sap/ui/core/cldr/kk.json +469 -1
  169. package/src/sap/ui/core/cldr/ko.json +469 -1
  170. package/src/sap/ui/core/cldr/lt.json +469 -1
  171. package/src/sap/ui/core/cldr/lv.json +469 -1
  172. package/src/sap/ui/core/cldr/ms.json +469 -1
  173. package/src/sap/ui/core/cldr/nb.json +469 -1
  174. package/src/sap/ui/core/cldr/nl.json +469 -1
  175. package/src/sap/ui/core/cldr/nl_BE.json +469 -1
  176. package/src/sap/ui/core/cldr/pl.json +469 -1
  177. package/src/sap/ui/core/cldr/pt.json +469 -1
  178. package/src/sap/ui/core/cldr/pt_PT.json +469 -1
  179. package/src/sap/ui/core/cldr/ro.json +469 -1
  180. package/src/sap/ui/core/cldr/ru.json +469 -1
  181. package/src/sap/ui/core/cldr/ru_UA.json +469 -1
  182. package/src/sap/ui/core/cldr/sk.json +469 -1
  183. package/src/sap/ui/core/cldr/sl.json +469 -1
  184. package/src/sap/ui/core/cldr/sr.json +469 -1
  185. package/src/sap/ui/core/cldr/sr_Latn.json +469 -1
  186. package/src/sap/ui/core/cldr/sv.json +469 -1
  187. package/src/sap/ui/core/cldr/th.json +469 -1
  188. package/src/sap/ui/core/cldr/tr.json +469 -1
  189. package/src/sap/ui/core/cldr/uk.json +469 -1
  190. package/src/sap/ui/core/cldr/vi.json +469 -1
  191. package/src/sap/ui/core/cldr/zh_CN.json +470 -2
  192. package/src/sap/ui/core/cldr/zh_HK.json +470 -2
  193. package/src/sap/ui/core/cldr/zh_SG.json +470 -2
  194. package/src/sap/ui/core/cldr/zh_TW.json +469 -1
  195. package/src/sap/ui/core/date/UniversalDateUtils.js +48 -48
  196. package/src/sap/ui/core/delegate/ItemNavigation.js +13 -14
  197. package/src/sap/ui/core/delegate/ScrollEnablement.js +11 -7
  198. package/src/sap/ui/core/dnd/DragAndDrop.js +8 -6
  199. package/src/sap/ui/core/dnd/DragDropBase.js +1 -2
  200. package/src/sap/ui/core/dnd/DragDropInfo.js +1 -1
  201. package/src/sap/ui/core/dnd/DragInfo.js +1 -1
  202. package/src/sap/ui/core/dnd/DropInfo.js +1 -1
  203. package/src/sap/ui/core/format/DateFormat.js +162 -92
  204. package/src/sap/ui/core/format/DateFormatTimezoneDisplay.js +3 -0
  205. package/src/sap/ui/core/format/NumberFormat.js +28 -28
  206. package/src/sap/ui/core/format/TimezoneUtil.js +50 -18
  207. package/src/sap/ui/core/hyphenation/Hyphenation.js +1 -1
  208. package/src/sap/ui/core/library.js +135 -140
  209. package/src/sap/ui/core/message/ControlMessageProcessor.js +1 -1
  210. package/src/sap/ui/core/message/Message.js +1 -1
  211. package/src/sap/ui/core/message/MessageManager.js +1 -1
  212. package/src/sap/ui/core/message/MessageParser.js +1 -1
  213. package/src/sap/ui/core/message/MessageProcessor.js +1 -1
  214. package/src/sap/ui/core/mvc/HTMLView.js +1 -1
  215. package/src/sap/ui/core/mvc/JSONView.js +1 -1
  216. package/src/sap/ui/core/mvc/JSView.js +2 -2
  217. package/src/sap/ui/core/mvc/TemplateView.js +1 -1
  218. package/src/sap/ui/core/mvc/View.js +2 -1
  219. package/src/sap/ui/core/mvc/XMLView.js +19 -23
  220. package/src/sap/ui/core/mvc/XMLViewRenderer.js +81 -59
  221. package/src/sap/ui/core/plugin/DeclarativeSupport.js +1 -1
  222. package/src/sap/ui/core/plugin/LessSupport.js +3 -3
  223. package/src/sap/ui/core/plugin/TemplatingSupport.js +1 -1
  224. package/src/sap/ui/core/postmessage/Bus.js +1 -1
  225. package/src/sap/ui/core/postmessage/confirmationDialog.js +1 -1
  226. package/src/sap/ui/core/routing/Router.js +1 -1
  227. package/src/sap/ui/core/rules/App.support.js +14 -9
  228. package/src/sap/ui/core/rules/Config.support.js +12 -12
  229. package/src/sap/ui/core/rules/Model.support.js +8 -8
  230. package/src/sap/ui/core/rules/Rendering.support.js +1 -1
  231. package/src/sap/ui/core/rules/Theming.support.js +4 -4
  232. package/src/sap/ui/core/rules/View.support.js +9 -9
  233. package/src/sap/ui/core/search/OpenSearchProvider.js +1 -1
  234. package/src/sap/ui/core/search/SearchProvider.js +1 -1
  235. package/src/sap/ui/core/service/Service.js +1 -1
  236. package/src/sap/ui/core/service/ServiceFactory.js +1 -1
  237. package/src/sap/ui/core/service/ServiceFactoryRegistry.js +1 -1
  238. package/src/sap/ui/core/support/Plugin.js +29 -1
  239. package/src/sap/ui/core/support/Support.js +2 -2
  240. package/src/sap/ui/core/support/controls/InteractionSlider.js +395 -407
  241. package/src/sap/ui/core/support/plugins/Breakpoint.js +5 -5
  242. package/src/sap/ui/core/support/plugins/ControlTree.js +440 -349
  243. package/src/sap/ui/core/support/plugins/Debugging.js +153 -129
  244. package/src/sap/ui/core/support/plugins/Interaction.js +71 -85
  245. package/src/sap/ui/core/support/plugins/LocalStorage.js +1 -1
  246. package/src/sap/ui/core/support/plugins/Performance.js +10 -13
  247. package/src/sap/ui/core/support/plugins/Selector.js +1 -1
  248. package/src/sap/ui/core/support/plugins/TechInfo.js +5 -3
  249. package/src/sap/ui/core/support/plugins/Trace.js +7 -7
  250. package/src/sap/ui/core/support/plugins/ViewInfo.js +91 -43
  251. package/src/sap/ui/core/support/support.css +23 -23
  252. package/src/sap/ui/core/support/support.html +5 -7
  253. package/src/sap/ui/core/support/techinfo/TechnicalInfo.js +1 -1
  254. package/src/sap/ui/core/themes/base/DragAndDrop.less +3 -3
  255. package/src/sap/ui/core/themes/base/LocalBusyIndicator.less +15 -1
  256. package/src/sap/ui/core/themes/base/base.less +419 -22
  257. package/src/sap/ui/core/themes/base/global.less +13 -9
  258. package/src/sap/ui/core/themes/base/shared.less +1 -0
  259. package/src/sap/ui/core/themes/sap_hcb/global.less +9 -5
  260. package/src/sap/ui/core/theming/Parameters.js +1 -1
  261. package/src/sap/ui/core/tmpl/DOMAttribute.js +1 -1
  262. package/src/sap/ui/core/tmpl/DOMElement.js +1 -1
  263. package/src/sap/ui/core/tmpl/HandlebarsTemplate.js +1 -1
  264. package/src/sap/ui/core/tmpl/Template.js +1 -1
  265. package/src/sap/ui/core/tmpl/TemplateControl.js +1 -1
  266. package/src/sap/ui/core/util/AsyncHintsHelper.js +1 -1
  267. package/src/sap/ui/core/util/Export.js +1 -1
  268. package/src/sap/ui/core/util/ExportCell.js +1 -1
  269. package/src/sap/ui/core/util/ExportColumn.js +1 -1
  270. package/src/sap/ui/core/util/ExportRow.js +1 -1
  271. package/src/sap/ui/core/util/ExportType.js +1 -1
  272. package/src/sap/ui/core/util/ExportTypeCSV.js +1 -1
  273. package/src/sap/ui/core/util/File.js +1 -1
  274. package/src/sap/ui/core/util/LibraryInfo.js +1 -1
  275. package/src/sap/ui/core/util/MockServer.js +2 -2
  276. package/src/sap/ui/core/util/PasteHelper.js +1 -1
  277. package/src/sap/ui/core/util/serializer/HTMLViewSerializer.js +1 -1
  278. package/src/sap/ui/core/util/serializer/Serializer.js +1 -1
  279. package/src/sap/ui/core/util/serializer/ViewSerializer.js +1 -1
  280. package/src/sap/ui/core/util/serializer/XMLViewSerializer.js +1 -1
  281. package/src/sap/ui/core/util/serializer/delegate/Delegate.js +1 -1
  282. package/src/sap/ui/core/util/serializer/delegate/HTML.js +1 -1
  283. package/src/sap/ui/core/util/serializer/delegate/XML.js +1 -1
  284. package/src/sap/ui/core/ws/ReadyState.js +1 -1
  285. package/src/sap/ui/core/ws/SapPcpWebSocket.js +1 -1
  286. package/src/sap/ui/core/ws/WebSocket.js +7 -8
  287. package/src/sap/ui/debug/ControlTree.js +1 -1
  288. package/src/sap/ui/debug/DebugEnv.js +1 -1
  289. package/src/sap/ui/debug/PropertyList.js +1 -1
  290. package/src/sap/ui/model/ClientListBinding.js +127 -21
  291. package/src/sap/ui/model/ClientModel.js +1 -1
  292. package/src/sap/ui/model/CompositeDataState.js +1 -1
  293. package/src/sap/ui/model/CompositeType.js +1 -1
  294. package/src/sap/ui/model/DataState.js +1 -1
  295. package/src/sap/ui/model/ListBinding.js +32 -13
  296. package/src/sap/ui/model/MetaModel.js +1 -1
  297. package/src/sap/ui/model/Model.js +10 -7
  298. package/src/sap/ui/model/SelectionModel.js +1 -1
  299. package/src/sap/ui/model/SimpleType.js +1 -1
  300. package/src/sap/ui/model/TreeAutoExpandMode.js +1 -1
  301. package/src/sap/ui/model/Type.js +1 -1
  302. package/src/sap/ui/model/_Helper.js +9 -5
  303. package/src/sap/ui/model/analytics/AnalyticalBinding.js +1 -1
  304. package/src/sap/ui/model/analytics/ODataModelAdapter.js +2 -1
  305. package/src/sap/ui/model/json/JSONListBinding.js +0 -58
  306. package/src/sap/ui/model/json/JSONModel.js +1 -1
  307. package/src/sap/ui/model/message/MessageListBinding.js +0 -42
  308. package/src/sap/ui/model/message/MessageModel.js +1 -1
  309. package/src/sap/ui/model/odata/ODataAnnotations.js +1 -1
  310. package/src/sap/ui/model/odata/ODataMessageParser.js +1 -1
  311. package/src/sap/ui/model/odata/ODataMetaModel.js +1 -1
  312. package/src/sap/ui/model/odata/ODataMetadata.js +1 -1
  313. package/src/sap/ui/model/odata/ODataModel.js +1 -1
  314. package/src/sap/ui/model/odata/ODataTreeBindingFlat.js +4 -3
  315. package/src/sap/ui/model/odata/ODataUtils.js +7 -9
  316. package/src/sap/ui/model/odata/OperationMode.js +6 -0
  317. package/src/sap/ui/model/odata/type/Boolean.js +1 -1
  318. package/src/sap/ui/model/odata/type/Byte.js +1 -1
  319. package/src/sap/ui/model/odata/type/Currency.js +1 -1
  320. package/src/sap/ui/model/odata/type/Date.js +1 -1
  321. package/src/sap/ui/model/odata/type/DateTime.js +1 -1
  322. package/src/sap/ui/model/odata/type/DateTimeBase.js +1 -1
  323. package/src/sap/ui/model/odata/type/DateTimeOffset.js +1 -1
  324. package/src/sap/ui/model/odata/type/DateTimeWithTimezone.js +39 -37
  325. package/src/sap/ui/model/odata/type/Decimal.js +1 -1
  326. package/src/sap/ui/model/odata/type/Double.js +1 -1
  327. package/src/sap/ui/model/odata/type/Guid.js +1 -1
  328. package/src/sap/ui/model/odata/type/Int.js +1 -1
  329. package/src/sap/ui/model/odata/type/Int16.js +1 -1
  330. package/src/sap/ui/model/odata/type/Int32.js +1 -1
  331. package/src/sap/ui/model/odata/type/Int64.js +1 -1
  332. package/src/sap/ui/model/odata/type/ODataType.js +1 -1
  333. package/src/sap/ui/model/odata/type/Raw.js +1 -1
  334. package/src/sap/ui/model/odata/type/SByte.js +1 -1
  335. package/src/sap/ui/model/odata/type/Single.js +1 -1
  336. package/src/sap/ui/model/odata/type/Stream.js +1 -1
  337. package/src/sap/ui/model/odata/type/String.js +1 -1
  338. package/src/sap/ui/model/odata/type/Time.js +1 -1
  339. package/src/sap/ui/model/odata/type/TimeOfDay.js +1 -1
  340. package/src/sap/ui/model/odata/type/Unit.js +1 -1
  341. package/src/sap/ui/model/odata/type/UnitMixin.js +1 -1
  342. package/src/sap/ui/model/odata/v2/Context.js +72 -3
  343. package/src/sap/ui/model/odata/v2/ODataAnnotations.js +1 -1
  344. package/src/sap/ui/model/odata/v2/ODataListBinding.js +191 -70
  345. package/src/sap/ui/model/odata/v2/ODataModel.js +107 -52
  346. package/src/sap/ui/model/odata/v2/ODataTreeBinding.js +11 -4
  347. package/src/sap/ui/model/odata/v4/Context.js +33 -4
  348. package/src/sap/ui/model/odata/v4/ODataBinding.js +12 -12
  349. package/src/sap/ui/model/odata/v4/ODataContextBinding.js +3 -2
  350. package/src/sap/ui/model/odata/v4/ODataListBinding.js +161 -106
  351. package/src/sap/ui/model/odata/v4/ODataMetaModel.js +13 -6
  352. package/src/sap/ui/model/odata/v4/ODataModel.js +118 -12
  353. package/src/sap/ui/model/odata/v4/ODataPropertyBinding.js +1 -1
  354. package/src/sap/ui/model/odata/v4/_AnnotationHelperExpression.js +59 -5
  355. package/src/sap/ui/model/odata/v4/lib/_AggregationCache.js +15 -0
  356. package/src/sap/ui/model/odata/v4/lib/_Cache.js +202 -138
  357. package/src/sap/ui/model/odata/v4/lib/_ConcatHelper.js +5 -13
  358. package/src/sap/ui/model/odata/v4/lib/_GroupLock.js +12 -0
  359. package/src/sap/ui/model/odata/v4/lib/_Helper.js +110 -40
  360. package/src/sap/ui/model/odata/v4/lib/_Requestor.js +148 -68
  361. package/src/sap/ui/model/resource/ResourceModel.js +1 -1
  362. package/src/sap/ui/model/type/Boolean.js +1 -1
  363. package/src/sap/ui/model/type/Currency.js +1 -1
  364. package/src/sap/ui/model/type/Date.js +1 -1
  365. package/src/sap/ui/model/type/DateInterval.js +1 -1
  366. package/src/sap/ui/model/type/DateTime.js +1 -1
  367. package/src/sap/ui/model/type/DateTimeInterval.js +1 -1
  368. package/src/sap/ui/model/type/FileSize.js +1 -1
  369. package/src/sap/ui/model/type/Float.js +1 -1
  370. package/src/sap/ui/model/type/Integer.js +1 -1
  371. package/src/sap/ui/model/type/String.js +1 -1
  372. package/src/sap/ui/model/type/Time.js +1 -1
  373. package/src/sap/ui/model/type/TimeInterval.js +1 -1
  374. package/src/sap/ui/model/type/Unit.js +1 -1
  375. package/src/sap/ui/model/xml/XMLListBinding.js +0 -53
  376. package/src/sap/ui/model/xml/XMLModel.js +1 -1
  377. package/src/sap/ui/qunit/utils/ControlIterator.js +1 -1
  378. package/src/sap/ui/qunit/utils/MemoryLeakCheck.js +1 -1
  379. package/src/sap/ui/test/Opa5.js +9 -5
  380. package/src/sap/ui/test/TestUtils.js +2 -1
  381. package/src/sap/ui/test/actions/Action.js +3 -3
  382. package/src/sap/ui/test/actions/Press.js +1 -1
  383. package/src/sap/ui/test/generic/TestBase.js +1 -1
  384. package/src/sap/ui/test/gherkin/opa5TestHarness.js +14 -5
  385. package/src/sap/ui/test/opaQunit.js +11 -10
  386. package/src/sap/ui/util/Storage.js +1 -1
  387. package/src/ui5loader.js +8 -4
  388. package/ui5.yaml +1 -1
@@ -89,20 +89,13 @@ sap.ui.define(['./Binding', './Filter', './FilterType', './Sorter', 'sap/base/ut
89
89
  /**
90
90
  * Returns an array of binding contexts for the bound target list.
91
91
  *
92
- * <h4>Extended Change Detection</h4>
93
- * If extended change detection is enabled using
94
- * {@link sap.ui.model.ListBinding.prototype.enableExtendedChangeDetection}, the context array
95
- * may carry an additional property named <code>diff</code>, which contains an array of actual
96
- * changes on the context array compared to the last call of <code>getContexts()</code>. In case
97
- * no <code>diff</code> property is available on the context array, the list is completely
98
- * different and needs to be recreated. In case the <code>diff</code> property contains an empty
99
- * array, there have been no changes on the list.
100
- *
101
- * Sample diff array:
102
- * <code>[{index: 1, type: "delete"}, {index: 4, type: "insert}]</code>
92
+ * In case of extended change detection, the context array may have an additional
93
+ * <code>diff</code> property, see
94
+ * {@link topic:7cdff73f308b4b10bdf7d83b7aba72e7 documentation on extended change detection} for
95
+ * details.
103
96
  *
104
97
  * <strong>Note:</strong>The public usage of this method is deprecated, as calls from outside of
105
- * controls will lead to unexpected side effects. To avoid these side effect, use
98
+ * controls will lead to unexpected side effects. To avoid this, use
106
99
  * {@link sap.ui.model.ListBinding.prototype.getCurrentContexts} instead.
107
100
  *
108
101
  * @function
@@ -110,7 +103,8 @@ sap.ui.define(['./Binding', './Filter', './FilterType', './Sorter', 'sap/base/ut
110
103
  * @param {int} [iStartIndex=0]
111
104
  * The startIndex where to start the retrieval of contexts
112
105
  * @param {int} [iLength=length of the list]
113
- * Determines how many contexts to retrieve beginning from the start index.
106
+ * Determines how many contexts to retrieve beginning from the start index; default is the
107
+ * whole list length up to the model's size limit; see {@link sap.ui.model.Model#setSizeLimit}
114
108
  * @param {int} [iMaximumPrefetchSize]
115
109
  * The maximum number of contexts to read before and after the given range; with this,
116
110
  * controls can prefetch data that is likely to be needed soon, e.g. when scrolling down in a
@@ -120,6 +114,9 @@ sap.ui.define(['./Binding', './Filter', './FilterType', './Sorter', 'sap/base/ut
120
114
  * This parameter is model-specific and not implemented by all models
121
115
  * @return {sap.ui.model.Context[]}
122
116
  * The array of contexts for each row of the bound list
117
+ * @throws {Error}
118
+ * If <code>bKeepCurrent</code> is set and extended change detection is enabled or
119
+ * <code>iMaximumPrefetchSize</code> is set
123
120
  *
124
121
  * @protected
125
122
  */
@@ -183,6 +180,28 @@ sap.ui.define(['./Binding', './Filter', './FilterType', './Sorter', 'sap/base/ut
183
180
  * @public
184
181
  */
185
182
 
183
+ /**
184
+ * Checks whether keeping current contexts untouched is supported.
185
+ *
186
+ * @param {int} [iMaximumPrefetchSize]
187
+ * The maximum number of contexts to read before and after the given range
188
+ * @throws {Error}
189
+ * If extended change detection is enabled, or if <code>iMaximumPrefetchSize</code> is set
190
+ *
191
+ * @private
192
+ */
193
+ ListBinding.prototype._checkKeepCurrentSupported = function (iMaximumPrefetchSize) {
194
+ if (this.bUseExtendedChangeDetection) {
195
+ throw new Error("Unsupported operation: " + this.getMetadata().getName()
196
+ + "#getContexts, must not use bKeepCurrent if extended change detection is"
197
+ + " enabled");
198
+ }
199
+ if (iMaximumPrefetchSize) {
200
+ throw new Error("Unsupported operation: " + this.getMetadata().getName()
201
+ + "#getContexts, must not use both iMaximumPrefetchSize and bKeepCurrent");
202
+ }
203
+ };
204
+
186
205
  /**
187
206
  * Returns the contexts of this list binding as last requested by the control and in the same
188
207
  * order the control has received them.
@@ -16,7 +16,7 @@ sap.ui.define(['./Model'],
16
16
  * @extends sap.ui.model.Model
17
17
  *
18
18
  * @author SAP SE
19
- * @version 1.100.0
19
+ * @version 1.102.1
20
20
  *
21
21
  * @public
22
22
  * @alias sap.ui.model.MetaModel
@@ -49,7 +49,7 @@ sap.ui.define([
49
49
  * @extends sap.ui.core.message.MessageProcessor
50
50
  *
51
51
  * @author SAP SE
52
- * @version 1.100.0
52
+ * @version 1.102.1
53
53
  *
54
54
  * @public
55
55
  * @alias sap.ui.model.Model
@@ -766,14 +766,17 @@ sap.ui.define([
766
766
  /**
767
767
  * Resolve the path relative to the given context.
768
768
  *
769
- * If a relative path is given (not starting with a '/') but no context,
770
- * then the path can't be resolved and undefined is returned.
769
+ * If a relative path is given (not starting with a '/') but no context, then the path can't be
770
+ * resolved and undefined is returned.
771
771
  *
772
- * For backward compatibility, the behavior of this method can be changed by
773
- * setting the 'legacySyntax' property. Then an unresolvable, relative path
774
- * is automatically converted into an absolute path.
772
+ * If a context is given but no path, the resolved path is the context's path, see
773
+ * {@link sap.ui.model.Context#getPath}.
775
774
  *
776
- * @param {string} sPath Path to resolve
775
+ * For backward compatibility, the behavior of this method can be changed by setting the
776
+ * 'legacySyntax' property. Then an unresolvable, relative path is automatically converted into
777
+ * an absolute path.
778
+ *
779
+ * @param {string} [sPath] Path to resolve
777
780
  * @param {sap.ui.model.Context} [oContext] Context to resolve a relative path against
778
781
  *
779
782
  * @return {string} Resolved path or undefined
@@ -20,7 +20,7 @@ sap.ui.define(['sap/ui/base/EventProvider', "sap/base/assert"],
20
20
  * @extends sap.ui.base.EventProvider
21
21
  *
22
22
  * @author SAP SE
23
- * @version 1.100.0
23
+ * @version 1.102.1
24
24
  *
25
25
  * @param {int} iSelectionMode <code>sap.ui.model.SelectionModel.SINGLE_SELECTION</code> or <code>sap.ui.model.SelectionModel.MULTI_SELECTION</code>
26
26
  *
@@ -46,7 +46,7 @@ sap.ui.define([
46
46
  *
47
47
  * @extends sap.ui.model.Type
48
48
  * @public
49
- * @version 1.100.0
49
+ * @version 1.102.1
50
50
  */
51
51
  var SimpleType = Type.extend("sap.ui.model.SimpleType", /** @lends sap.ui.model.SimpleType.prototype */ {
52
52
 
@@ -12,7 +12,7 @@ sap.ui.define([],
12
12
  /**
13
13
  * Different modes for setting the auto expand mode on tree or analytical bindings.
14
14
  *
15
- * @version 1.100.0
15
+ * @version 1.102.1
16
16
  * @enum {string}
17
17
  * @alias sap.ui.model.TreeAutoExpandMode
18
18
  * @protected
@@ -19,7 +19,7 @@ sap.ui.define(['sap/ui/base/Object'],
19
19
  *
20
20
  * @extends sap.ui.base.Object
21
21
  * @public
22
- * @version 1.100.0
22
+ * @version 1.102.1
23
23
  */
24
24
  var Type = BaseObject.extend("sap.ui.model.Type", /** @lends sap.ui.model.Type.prototype */ {
25
25
 
@@ -4,8 +4,10 @@
4
4
  * Licensed under the Apache License, Version 2.0 - see LICENSE.txt.
5
5
  */
6
6
  sap.ui.define([
7
- "sap/base/util/extend"
8
- ], function (extend) {
7
+ "sap/base/util/deepEqual",
8
+ "sap/base/util/extend",
9
+ "sap/base/util/merge"
10
+ ], function (deepEqual, extend, merge) {
9
11
  "use strict";
10
12
 
11
13
  /**
@@ -13,9 +15,11 @@ sap.ui.define([
13
15
  * @private
14
16
  */
15
17
  var _Helper = {
16
- // Trampoline property to allow for mocking in unit tests.
17
- // @see sap.base.util.extend
18
- extend : extend
18
+ // Trampoline properties to allow for mocking in unit tests.
19
+ // @see sap.base.util.*
20
+ deepEqual : deepEqual,
21
+ extend : extend,
22
+ merge : merge
19
23
  };
20
24
 
21
25
  return _Helper;
@@ -149,7 +149,7 @@ sap.ui.define([
149
149
  */
150
150
  function logUnsupportedPropertyInSelect(sPath, sSelectedProperty, oDimensionOrMeasure) {
151
151
  var sDimensionOrMeasure = oDimensionOrMeasure
152
- instanceof sap.ui.model.analytics.odata4analytics.Dimension
152
+ instanceof odata4analytics.Dimension
153
153
  ? "dimension" : "measure";
154
154
 
155
155
  if (oDimensionOrMeasure.getName() === sSelectedProperty) {
@@ -125,7 +125,8 @@ sap.ui.define(['./AnalyticalBinding', "./AnalyticalTreeBindingAdapter", './odata
125
125
  this.oOData4SAPAnalyticsModel = new odata4analytics.Model(
126
126
  new odata4analytics.Model.ReferenceByModel(this));
127
127
  } catch (exception) {
128
- throw "Failed to instantiate analytical extensions for given OData model: " + exception.message;
128
+ throw "Failed to instantiate analytical extensions for given OData model: "
129
+ + (exception.message || exception);
129
130
  }
130
131
  return this.oOData4SAPAnalyticsModel;
131
132
  };
@@ -39,62 +39,6 @@ sap.ui.define([
39
39
  */
40
40
  var JSONListBinding = ClientListBinding.extend("sap.ui.model.json.JSONListBinding");
41
41
 
42
- /**
43
- * Return contexts for the list or a specified subset of contexts
44
- * @param {int} [iStartIndex=0] the startIndex where to start the retrieval of contexts
45
- * @param {int} [iLength=length of the list] determines how many contexts to retrieve beginning from the start index.
46
- * Default is the whole list length.
47
- *
48
- * @return {Array} the contexts array
49
- * @protected
50
- */
51
- JSONListBinding.prototype.getContexts = function(iStartIndex, iLength) {
52
- this.iLastStartIndex = iStartIndex;
53
- this.iLastLength = iLength;
54
-
55
- if (!iStartIndex) {
56
- iStartIndex = 0;
57
- }
58
- if (!iLength) {
59
- iLength = Math.min(this.iLength, this.oModel.iSizeLimit);
60
- }
61
-
62
- var aContexts = this._getContexts(iStartIndex, iLength),
63
- aContextData = [];
64
-
65
- if (this.bUseExtendedChangeDetection) {
66
- // Use try/catch to detect issues with cyclic references in JS objects,
67
- // in this case diff will be disabled.
68
- try {
69
- for (var i = 0; i < aContexts.length; i++) {
70
- aContextData.push(this.getContextData(aContexts[i]));
71
- }
72
-
73
- //Check diff
74
- if (this.aLastContextData && iStartIndex < this.iLastEndIndex) {
75
- aContexts.diff = this.diffData(this.aLastContextData, aContextData);
76
- }
77
-
78
- this.iLastEndIndex = iStartIndex + iLength;
79
- this.aLastContexts = aContexts.slice(0);
80
- this.aLastContextData = aContextData.slice(0);
81
- } catch (oError) {
82
- this.bUseExtendedChangeDetection = false;
83
- Log.warning("JSONListBinding: Extended change detection has been disabled as JSON data could not be serialized.");
84
- }
85
- }
86
-
87
- return aContexts;
88
- };
89
-
90
- JSONListBinding.prototype.getCurrentContexts = function() {
91
- if (this.bUseExtendedChangeDetection) {
92
- return this.aLastContexts || [];
93
- } else {
94
- return this.getContexts(this.iLastStartIndex, this.iLastLength);
95
- }
96
- };
97
-
98
42
  /**
99
43
  * Get indices of the list
100
44
  */
@@ -199,7 +143,5 @@ sap.ui.define([
199
143
  }
200
144
  };
201
145
 
202
-
203
146
  return JSONListBinding;
204
-
205
147
  });
@@ -44,7 +44,7 @@ sap.ui.define([
44
44
  * @extends sap.ui.model.ClientModel
45
45
  *
46
46
  * @author SAP SE
47
- * @version 1.100.0
47
+ * @version 1.102.1
48
48
  * @public
49
49
  * @alias sap.ui.model.json.JSONModel
50
50
  */
@@ -46,46 +46,6 @@ sap.ui.define([
46
46
  }.bind(this);
47
47
  };
48
48
 
49
- /**
50
- * Return contexts for the list or a specified subset of contexts.
51
- * @param {int} [iStartIndex=0] the startIndex where to start the retrieval of contexts.
52
- * @param {int} [iLength=length of the list] determines how many contexts to retrieve beginning from the start index.
53
- * Default is the whole list length.
54
- *
55
- * @return {Array} the contexts array
56
- * @protected
57
- */
58
- MessageListBinding.prototype.getContexts = function(iStartIndex, iLength) {
59
- this.iLastStartIndex = iStartIndex;
60
- this.iLastLength = iLength;
61
-
62
- if (!iStartIndex) {
63
- iStartIndex = 0;
64
- }
65
- if (!iLength) {
66
- iLength = Math.min(this.iLength, this.oModel.iSizeLimit);
67
- }
68
-
69
- var aContexts = this._getContexts(iStartIndex, iLength), aContextData = [];
70
-
71
- if (this.bUseExtendedChangeDetection) {
72
-
73
- for (var i = 0; i < aContexts.length; i++) {
74
- aContextData.push(this.getContextData(aContexts[i]));
75
- }
76
-
77
- //Check diff
78
- if (this.aLastContexts && iStartIndex < this.iLastEndIndex) {
79
- aContexts.diff = this.diffData(this.aLastContextData, aContexts);
80
- }
81
- this.iLastEndIndex = iStartIndex + iLength;
82
- this.aLastContexts = aContexts.slice(0);
83
- this.aLastContextData = aContextData.slice(0);
84
- }
85
-
86
- return aContexts;
87
- };
88
-
89
49
  /**
90
50
  * Treats the context's object as sap/ui/core/message/Message.
91
51
  * Its processor is removed, it is serialized and then the processor is re-added.
@@ -184,7 +144,5 @@ sap.ui.define([
184
144
  }
185
145
  };
186
146
 
187
-
188
147
  return MessageListBinding;
189
-
190
148
  });
@@ -29,7 +29,7 @@ sap.ui.define(['sap/ui/model/BindingMode', 'sap/ui/model/ClientModel', 'sap/ui/m
29
29
  * @extends sap.ui.model.ClientModel
30
30
  *
31
31
  * @author SAP SE
32
- * @version 1.100.0
32
+ * @version 1.102.1
33
33
  *
34
34
  * @param {sap.ui.core.message.MessageManager} oMessageManager The MessageManager instance
35
35
  * @public
@@ -25,7 +25,7 @@ sap.ui.define([
25
25
  *
26
26
  * @author SAP SE
27
27
  * @version
28
- * 1.100.0
28
+ * 1.102.1
29
29
  *
30
30
  * @public
31
31
  * @deprecated As of version 1.66, please use {@link sap.ui.model.odata.v2.ODataAnnotations} instead.
@@ -84,7 +84,7 @@ var sClassName = "sap.ui.model.odata.ODataMessageParser",
84
84
  * @extends sap.ui.core.message.MessageParser
85
85
  *
86
86
  * @author SAP SE
87
- * @version 1.100.0
87
+ * @version 1.102.1
88
88
  * @public
89
89
  * @alias sap.ui.model.odata.ODataMessageParser
90
90
  */
@@ -207,7 +207,7 @@ sap.ui.define([
207
207
  * {@link #loaded loaded} has been resolved!
208
208
  *
209
209
  * @author SAP SE
210
- * @version 1.100.0
210
+ * @version 1.102.1
211
211
  * @alias sap.ui.model.odata.ODataMetaModel
212
212
  * @extends sap.ui.model.MetaModel
213
213
  * @public
@@ -44,7 +44,7 @@ sap.ui.define([
44
44
  * Implementation to access OData metadata
45
45
  *
46
46
  * @author SAP SE
47
- * @version 1.100.0
47
+ * @version 1.102.1
48
48
  *
49
49
  * @public
50
50
  * @alias sap.ui.model.odata.ODataMetadata
@@ -76,7 +76,7 @@ sap.ui.define([
76
76
  *
77
77
  *
78
78
  * @author SAP SE
79
- * @version 1.100.0
79
+ * @version 1.102.1
80
80
  *
81
81
  * @public
82
82
  * @deprecated As of version 1.48, please use {@link sap.ui.model.odata.v2.ODataModel} instead.
@@ -12,11 +12,12 @@ sap.ui.define([
12
12
  "sap/base/util/isEmptyObject",
13
13
  "sap/base/util/uid",
14
14
  "sap/ui/model/ChangeReason",
15
+ "sap/ui/model/Context",
15
16
  "sap/ui/model/Filter",
16
17
  "sap/ui/model/TreeBinding",
17
18
  "sap/ui/model/TreeBindingUtils",
18
19
  "sap/ui/model/odata/v2/ODataTreeBinding"
19
- ], function(assert, Log, extend, isEmptyObject, uid, ChangeReason, Filter, TreeBinding,
20
+ ], function(assert, Log, extend, isEmptyObject, uid, ChangeReason, Context, Filter, TreeBinding,
20
21
  TreeBindingUtils, ODataTreeBinding) {
21
22
  "use strict";
22
23
 
@@ -3933,7 +3934,7 @@ sap.ui.define([
3933
3934
 
3934
3935
  // check if we have a single context or an array of contexts
3935
3936
  if (!Array.isArray(vContextHandles)) {
3936
- if (vContextHandles instanceof sap.ui.model.Context) {
3937
+ if (vContextHandles instanceof Context) {
3937
3938
  vContextHandles = [vContextHandles];
3938
3939
  } else {
3939
3940
  Log.warning("ODataTreeBinding.addContexts(): The child node argument is not of type sap.ui.model.Context.");
@@ -3961,7 +3962,7 @@ sap.ui.define([
3961
3962
  for (var j = 0; j < vContextHandles.length; j++) {
3962
3963
  oContext = vContextHandles[j];
3963
3964
 
3964
- if (!oContext || !(oContext instanceof sap.ui.model.Context)) {
3965
+ if (!(oContext instanceof Context)) {
3965
3966
  Log.warning("ODataTreeBindingFlat.addContexts(): no valid child context given!");
3966
3967
  return;
3967
3968
  }
@@ -29,6 +29,8 @@ sap.ui.define([
29
29
  oDateTimeFormatMs,
30
30
  oDateTimeOffsetFormat,
31
31
  rDecimal = /^([-+]?)0*(\d+)(\.\d+|)$/,
32
+ // URL might be encoded, "(" becomes %28
33
+ rSegmentAfterCatalogService = /\/(Annotations|ServiceNames|ServiceCollection)(\(|%28)/,
32
34
  oTimeFormat,
33
35
  rTrailingDecimal = /\.$/,
34
36
  rTrailingZeroes = /0+$/;
@@ -354,21 +356,17 @@ sap.ui.define([
354
356
  ODataUtils.setAnnotationOrigin = function(sAnnotationURL, vParameters){
355
357
 
356
358
  var sFinalAnnotationURL;
357
- var iAnnotationIndex = sAnnotationURL.indexOf("/Annotations(");
359
+ var iSegmentAfterCatalogServiceIndex = sAnnotationURL.search(rSegmentAfterCatalogService);
358
360
  var iHanaXsSegmentIndex = vParameters && vParameters.preOriginBaseUri ? vParameters.preOriginBaseUri.indexOf(".xsodata") : -1;
359
361
 
360
- if (iAnnotationIndex === -1){ // URL might be encoded, "(" becomes %28
361
- iAnnotationIndex = sAnnotationURL.indexOf("/Annotations%28");
362
- }
363
-
364
- if (iAnnotationIndex >= 0) { // annotation path is there
365
- if (sAnnotationURL.indexOf("/$value", iAnnotationIndex) === -1) { // $value missing
362
+ if (iSegmentAfterCatalogServiceIndex >= 0) {
363
+ if (sAnnotationURL.indexOf("/$value", iSegmentAfterCatalogServiceIndex) === -1) { // $value missing
366
364
  Log.warning("ODataUtils.setAnnotationOrigin: Annotation url is missing $value segment.");
367
365
  sFinalAnnotationURL = sAnnotationURL;
368
366
  } else {
369
367
  // if the annotation URL is an SAP specific annotation url, we add the origin path segment...
370
- var sAnnotationUrlBase = sAnnotationURL.substring(0, iAnnotationIndex);
371
- var sAnnotationUrlRest = sAnnotationURL.substring(iAnnotationIndex, sAnnotationURL.length);
368
+ var sAnnotationUrlBase = sAnnotationURL.substring(0, iSegmentAfterCatalogServiceIndex);
369
+ var sAnnotationUrlRest = sAnnotationURL.substring(iSegmentAfterCatalogServiceIndex, sAnnotationURL.length);
372
370
  var sAnnotationWithOrigin = ODataUtils.setOrigin(sAnnotationUrlBase, vParameters);
373
371
  sFinalAnnotationURL = sAnnotationWithOrigin + sAnnotationUrlRest;
374
372
  }
@@ -75,6 +75,12 @@ sap.ui.define(function() {
75
75
  * <li>Count mode <code>None</code> is not supported together with operation mode <code>Auto</code></li>
76
76
  * </ol>
77
77
  *
78
+ * @deprecated As of 1.102.0, because filtering and sorting may lead to different results
79
+ * when executed on the client and on the server, and thus to inconsistent behavior. If it
80
+ * is certain that the collection is completely loaded on the client, use
81
+ * {@link sap.ui.model.odata.OperationMode.Client}; otherwise, use
82
+ * {@link sap.ui.model.odata.OperationMode.Default} or
83
+ * {@link sap.ui.model.odata.OperationMode.Server}.
78
84
  * @public
79
85
  */
80
86
  Auto: "Auto"
@@ -87,7 +87,7 @@ sap.ui.define([
87
87
  * @extends sap.ui.model.odata.type.ODataType
88
88
  *
89
89
  * @author SAP SE
90
- * @version 1.100.0
90
+ * @version 1.102.1
91
91
  *
92
92
  * @alias sap.ui.model.odata.type.Boolean
93
93
  * @param {object} [oFormatOptions]
@@ -24,7 +24,7 @@ sap.ui.define([
24
24
  * @extends sap.ui.model.odata.type.Int
25
25
  *
26
26
  * @author SAP SE
27
- * @version 1.100.0
27
+ * @version 1.102.1
28
28
  *
29
29
  * @alias sap.ui.model.odata.type.Byte
30
30
  * @param {object} [oFormatOptions]
@@ -61,7 +61,7 @@ sap.ui.define([
61
61
  * @extends sap.ui.model.type.Currency
62
62
  * @public
63
63
  * @since 1.63.0
64
- * @version 1.100.0
64
+ * @version 1.102.1
65
65
  */
66
66
  var Currency = BaseCurrency.extend("sap.ui.model.odata.type.Currency", {
67
67
  constructor : function (oFormatOptions, oConstraints) {
@@ -106,7 +106,7 @@ sap.ui.define([
106
106
  * @extends sap.ui.model.odata.type.ODataType
107
107
  *
108
108
  * @author SAP SE
109
- * @version 1.100.0
109
+ * @version 1.102.1
110
110
  *
111
111
  * @alias sap.ui.model.odata.type.Date
112
112
  * @param {object} [oFormatOptions]
@@ -59,7 +59,7 @@ sap.ui.define([
59
59
  * @extends sap.ui.model.odata.type.DateTimeBase
60
60
  *
61
61
  * @author SAP SE
62
- * @version 1.100.0
62
+ * @version 1.102.1
63
63
  *
64
64
  * @alias sap.ui.model.odata.type.DateTime
65
65
  * @param {object} [oFormatOptions]
@@ -132,7 +132,7 @@ sap.ui.define([
132
132
  * @extends sap.ui.model.odata.type.ODataType
133
133
  * @public
134
134
  * @since 1.27.0
135
- * @version 1.100.0
135
+ * @version 1.102.1
136
136
  */
137
137
  var DateTimeBase = ODataType.extend("sap.ui.model.odata.type.DateTimeBase", {
138
138
  constructor : function (oFormatOptions, oConstraints) {
@@ -28,7 +28,7 @@ sap.ui.define([
28
28
  * @extends sap.ui.model.odata.type.DateTimeBase
29
29
  *
30
30
  * @author SAP SE
31
- * @version 1.100.0
31
+ * @version 1.102.1
32
32
  *
33
33
  * @alias sap.ui.model.odata.type.DateTimeOffset
34
34
  * @param {object} [oFormatOptions]