@openui5/sap.ui.core 1.101.0 → 1.103.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 (405) hide show
  1. package/.eslintrc.json +26 -5
  2. package/THIRDPARTY.txt +1 -1
  3. package/package.json +1 -1
  4. package/src/jquery.sap.global.js +2 -2
  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/i18n/ResourceBundle.js +2 -2
  11. package/src/sap/base/strings/whitespaceReplacer.js +1 -1
  12. package/src/sap/base/util/restricted/_CancelablePromise.js +2 -2
  13. package/src/sap/base/util/restricted/_castArray.js +1 -1
  14. package/src/sap/base/util/restricted/_compact.js +1 -1
  15. package/src/sap/base/util/restricted/_curry.js +1 -1
  16. package/src/sap/base/util/restricted/_debounce.js +1 -1
  17. package/src/sap/base/util/restricted/_difference.js +1 -1
  18. package/src/sap/base/util/restricted/_differenceBy.js +1 -1
  19. package/src/sap/base/util/restricted/_differenceWith.js +1 -1
  20. package/src/sap/base/util/restricted/_flatMap.js +1 -1
  21. package/src/sap/base/util/restricted/_flatMapDeep.js +1 -1
  22. package/src/sap/base/util/restricted/_flatMapDepth.js +1 -1
  23. package/src/sap/base/util/restricted/_flatten.js +1 -1
  24. package/src/sap/base/util/restricted/_flattenDeep.js +1 -1
  25. package/src/sap/base/util/restricted/_flattenDepth.js +1 -1
  26. package/src/sap/base/util/restricted/_intersection.js +1 -1
  27. package/src/sap/base/util/restricted/_intersectionBy.js +1 -1
  28. package/src/sap/base/util/restricted/_intersectionWith.js +1 -1
  29. package/src/sap/base/util/restricted/_isEqual.js +1 -1
  30. package/src/sap/base/util/restricted/_isEqualWith.js +1 -1
  31. package/src/sap/base/util/restricted/_isNil.js +1 -1
  32. package/src/sap/base/util/restricted/_max.js +1 -1
  33. package/src/sap/base/util/restricted/_merge.js +1 -1
  34. package/src/sap/base/util/restricted/_mergeWith.js +1 -1
  35. package/src/sap/base/util/restricted/_min.js +1 -1
  36. package/src/sap/base/util/restricted/_omit.js +1 -1
  37. package/src/sap/base/util/restricted/_pick.js +1 -1
  38. package/src/sap/base/util/restricted/_pickBy.js +1 -1
  39. package/src/sap/base/util/restricted/_throttle.js +1 -1
  40. package/src/sap/base/util/restricted/_toArray.js +1 -1
  41. package/src/sap/base/util/restricted/_union.js +1 -1
  42. package/src/sap/base/util/restricted/_unionBy.js +1 -1
  43. package/src/sap/base/util/restricted/_unionWith.js +1 -1
  44. package/src/sap/base/util/restricted/_uniq.js +1 -1
  45. package/src/sap/base/util/restricted/_uniqBy.js +1 -1
  46. package/src/sap/base/util/restricted/_uniqWith.js +1 -1
  47. package/src/sap/base/util/restricted/_without.js +1 -1
  48. package/src/sap/base/util/restricted/_xor.js +1 -1
  49. package/src/sap/base/util/restricted/_xorBy.js +1 -1
  50. package/src/sap/base/util/restricted/_xorWith.js +1 -1
  51. package/src/sap/base/util/restricted/_zipObject.js +1 -1
  52. package/src/sap/base/util/restricted/_zipObjectDeep.js +1 -1
  53. package/src/sap/ui/Device.js +9 -3
  54. package/src/sap/ui/Global.js +4 -4
  55. package/src/sap/ui/VersionInfo.js +12 -6
  56. package/src/sap/ui/base/Event.js +1 -1
  57. package/src/sap/ui/base/EventProvider.js +2 -2
  58. package/src/sap/ui/base/ExpressionParser.js +2 -2
  59. package/src/sap/ui/base/Interface.js +1 -1
  60. package/src/sap/ui/base/ManagedObject.js +10 -8
  61. package/src/sap/ui/base/ManagedObjectMetadata.js +21 -8
  62. package/src/sap/ui/base/Metadata.js +1 -1
  63. package/src/sap/ui/base/Object.js +1 -1
  64. package/src/sap/ui/base/ObjectPool.js +1 -1
  65. package/src/sap/ui/base/SyncPromise.js +2 -0
  66. package/src/sap/ui/core/.library +2 -89
  67. package/src/sap/ui/core/AppCacheBuster.js +4 -4
  68. package/src/sap/ui/core/BusyIndicator.js +1 -1
  69. package/src/sap/ui/core/CommandExecution.js +15 -12
  70. package/src/sap/ui/core/Component.js +34 -15
  71. package/src/sap/ui/core/ComponentContainer.js +1 -1
  72. package/src/sap/ui/core/ComponentMetadata.js +27 -12
  73. package/src/sap/ui/core/ComponentSupport.js +1 -1
  74. package/src/sap/ui/core/Configuration.js +23 -9
  75. package/src/sap/ui/core/Control.js +3 -4
  76. package/src/sap/ui/core/Core.js +102 -34
  77. package/src/sap/ui/core/CustomData.js +1 -1
  78. package/src/sap/ui/core/DeclarativeSupport.js +10 -9
  79. package/src/sap/ui/core/Element.js +12 -11
  80. package/src/sap/ui/core/ElementMetadata.js +1 -1
  81. package/src/sap/ui/core/EnabledPropagator.js +4 -2
  82. package/src/sap/ui/core/EventBus.js +1 -1
  83. package/src/sap/ui/core/ExtensionPoint.js +1 -1
  84. package/src/sap/ui/core/FocusHandler.js +4 -5
  85. package/src/sap/ui/core/Fragment.js +17 -14
  86. package/src/sap/ui/core/HTML.js +2 -2
  87. package/src/sap/ui/core/History.js +1 -1
  88. package/src/sap/ui/core/Icon.js +7 -7
  89. package/src/sap/ui/core/IconPool.js +1 -3
  90. package/src/sap/ui/core/IndicationColorSupport.js +1 -1
  91. package/src/sap/ui/core/IntervalTrigger.js +1 -1
  92. package/src/sap/ui/core/InvisibleMessage.js +1 -1
  93. package/src/sap/ui/core/InvisibleRenderer.js +1 -1
  94. package/src/sap/ui/core/InvisibleText.js +1 -1
  95. package/src/sap/ui/core/Item.js +1 -1
  96. package/src/sap/ui/core/LabelEnablement.js +1 -1
  97. package/src/sap/ui/core/LayoutData.js +1 -1
  98. package/src/sap/ui/core/ListItem.js +1 -1
  99. package/src/sap/ui/core/LocalBusyIndicator.js +1 -1
  100. package/src/sap/ui/core/Locale.js +28 -4
  101. package/src/sap/ui/core/LocaleData.js +119 -1
  102. package/src/sap/ui/core/Manifest.js +1 -1
  103. package/src/sap/ui/core/Message.js +1 -1
  104. package/src/sap/ui/core/Popup.js +16 -16
  105. package/src/sap/ui/core/RenderManager.js +1 -1
  106. package/src/sap/ui/core/Renderer.js +1 -1
  107. package/src/sap/ui/core/ResizeHandler.js +1 -1
  108. package/src/sap/ui/core/ScrollBar.js +21 -15
  109. package/src/sap/ui/core/SeparatorItem.js +1 -1
  110. package/src/sap/ui/core/ShortcutHintsMixin.js +2 -4
  111. package/src/sap/ui/core/ThemeCheck.js +7 -7
  112. package/src/sap/ui/core/Title.js +1 -1
  113. package/src/sap/ui/core/TooltipBase.js +1 -1
  114. package/src/sap/ui/core/UIArea.js +5 -6
  115. package/src/sap/ui/core/UIComponent.js +2 -2
  116. package/src/sap/ui/core/UIComponentMetadata.js +2 -2
  117. package/src/sap/ui/core/ValueStateSupport.js +1 -1
  118. package/src/sap/ui/core/VariantLayoutData.js +1 -1
  119. package/src/sap/ui/core/XMLComposite.js +1 -1
  120. package/src/sap/ui/core/XMLCompositeMetadata.js +1 -1
  121. package/src/sap/ui/core/XMLTemplateProcessor.js +515 -392
  122. package/src/sap/ui/core/cache/CacheManager.js +27 -0
  123. package/src/sap/ui/core/cache/CacheManagerNOP.js +3 -0
  124. package/src/sap/ui/core/cache/LRUPersistentCache.js +75 -3
  125. package/src/sap/ui/core/cldr/ar.json +469 -1
  126. package/src/sap/ui/core/cldr/ar_EG.json +469 -1
  127. package/src/sap/ui/core/cldr/ar_SA.json +469 -1
  128. package/src/sap/ui/core/cldr/bg.json +469 -1
  129. package/src/sap/ui/core/cldr/ca.json +469 -1
  130. package/src/sap/ui/core/cldr/cs.json +469 -1
  131. package/src/sap/ui/core/cldr/cy.json +469 -1
  132. package/src/sap/ui/core/cldr/da.json +469 -1
  133. package/src/sap/ui/core/cldr/de.json +469 -1
  134. package/src/sap/ui/core/cldr/de_AT.json +469 -1
  135. package/src/sap/ui/core/cldr/de_CH.json +469 -1
  136. package/src/sap/ui/core/cldr/el.json +469 -1
  137. package/src/sap/ui/core/cldr/el_CY.json +469 -1
  138. package/src/sap/ui/core/cldr/en.json +469 -1
  139. package/src/sap/ui/core/cldr/en_AU.json +469 -1
  140. package/src/sap/ui/core/cldr/en_GB.json +469 -1
  141. package/src/sap/ui/core/cldr/en_HK.json +469 -1
  142. package/src/sap/ui/core/cldr/en_IE.json +469 -1
  143. package/src/sap/ui/core/cldr/en_IN.json +469 -1
  144. package/src/sap/ui/core/cldr/en_NZ.json +469 -1
  145. package/src/sap/ui/core/cldr/en_PG.json +469 -1
  146. package/src/sap/ui/core/cldr/en_SG.json +469 -1
  147. package/src/sap/ui/core/cldr/en_ZA.json +469 -1
  148. package/src/sap/ui/core/cldr/es.json +469 -1
  149. package/src/sap/ui/core/cldr/es_AR.json +469 -1
  150. package/src/sap/ui/core/cldr/es_BO.json +469 -1
  151. package/src/sap/ui/core/cldr/es_CL.json +469 -1
  152. package/src/sap/ui/core/cldr/es_CO.json +469 -1
  153. package/src/sap/ui/core/cldr/es_MX.json +469 -1
  154. package/src/sap/ui/core/cldr/es_PE.json +469 -1
  155. package/src/sap/ui/core/cldr/es_UY.json +469 -1
  156. package/src/sap/ui/core/cldr/es_VE.json +469 -1
  157. package/src/sap/ui/core/cldr/et.json +469 -1
  158. package/src/sap/ui/core/cldr/fa.json +469 -1
  159. package/src/sap/ui/core/cldr/fi.json +469 -1
  160. package/src/sap/ui/core/cldr/fr.json +469 -1
  161. package/src/sap/ui/core/cldr/fr_BE.json +469 -1
  162. package/src/sap/ui/core/cldr/fr_CA.json +469 -1
  163. package/src/sap/ui/core/cldr/fr_CH.json +469 -1
  164. package/src/sap/ui/core/cldr/fr_LU.json +469 -1
  165. package/src/sap/ui/core/cldr/he.json +469 -1
  166. package/src/sap/ui/core/cldr/hi.json +469 -1
  167. package/src/sap/ui/core/cldr/hr.json +469 -1
  168. package/src/sap/ui/core/cldr/hu.json +469 -1
  169. package/src/sap/ui/core/cldr/id.json +469 -1
  170. package/src/sap/ui/core/cldr/it.json +469 -1
  171. package/src/sap/ui/core/cldr/it_CH.json +469 -1
  172. package/src/sap/ui/core/cldr/ja.json +469 -1
  173. package/src/sap/ui/core/cldr/kk.json +469 -1
  174. package/src/sap/ui/core/cldr/ko.json +469 -1
  175. package/src/sap/ui/core/cldr/lt.json +469 -1
  176. package/src/sap/ui/core/cldr/lv.json +469 -1
  177. package/src/sap/ui/core/cldr/ms.json +469 -1
  178. package/src/sap/ui/core/cldr/nb.json +469 -1
  179. package/src/sap/ui/core/cldr/nl.json +469 -1
  180. package/src/sap/ui/core/cldr/nl_BE.json +469 -1
  181. package/src/sap/ui/core/cldr/pl.json +469 -1
  182. package/src/sap/ui/core/cldr/pt.json +469 -1
  183. package/src/sap/ui/core/cldr/pt_PT.json +469 -1
  184. package/src/sap/ui/core/cldr/ro.json +469 -1
  185. package/src/sap/ui/core/cldr/ru.json +469 -1
  186. package/src/sap/ui/core/cldr/ru_UA.json +469 -1
  187. package/src/sap/ui/core/cldr/sk.json +469 -1
  188. package/src/sap/ui/core/cldr/sl.json +469 -1
  189. package/src/sap/ui/core/cldr/sr.json +469 -1
  190. package/src/sap/ui/core/cldr/sr_Latn.json +469 -1
  191. package/src/sap/ui/core/cldr/sv.json +469 -1
  192. package/src/sap/ui/core/cldr/th.json +469 -1
  193. package/src/sap/ui/core/cldr/tr.json +469 -1
  194. package/src/sap/ui/core/cldr/uk.json +469 -1
  195. package/src/sap/ui/core/cldr/vi.json +469 -1
  196. package/src/sap/ui/core/cldr/zh_CN.json +470 -2
  197. package/src/sap/ui/core/cldr/zh_HK.json +470 -2
  198. package/src/sap/ui/core/cldr/zh_SG.json +470 -2
  199. package/src/sap/ui/core/cldr/zh_TW.json +469 -1
  200. package/src/sap/ui/core/delegate/ItemNavigation.js +13 -14
  201. package/src/sap/ui/core/delegate/ScrollEnablement.js +11 -7
  202. package/src/sap/ui/core/dnd/DragAndDrop.js +3 -3
  203. package/src/sap/ui/core/dnd/DragDropBase.js +1 -1
  204. package/src/sap/ui/core/dnd/DragDropInfo.js +1 -1
  205. package/src/sap/ui/core/dnd/DragInfo.js +1 -1
  206. package/src/sap/ui/core/dnd/DropInfo.js +1 -1
  207. package/src/sap/ui/core/format/DateFormat.js +43 -28
  208. package/src/sap/ui/core/format/NumberFormat.js +30 -30
  209. package/src/sap/ui/core/format/TimezoneUtil.js +48 -16
  210. package/src/sap/ui/core/hyphenation/Hyphenation.js +1 -1
  211. package/src/sap/ui/core/library.js +3 -3
  212. package/src/sap/ui/core/message/ControlMessageProcessor.js +1 -1
  213. package/src/sap/ui/core/message/Message.js +1 -1
  214. package/src/sap/ui/core/message/MessageManager.js +1 -1
  215. package/src/sap/ui/core/message/MessageParser.js +2 -2
  216. package/src/sap/ui/core/message/MessageProcessor.js +1 -1
  217. package/src/sap/ui/core/messagebundle_el.properties +2 -2
  218. package/src/sap/ui/core/messagebundle_it.properties +56 -56
  219. package/src/sap/ui/core/mvc/ControllerExtension.js +1 -1
  220. package/src/sap/ui/core/mvc/HTMLView.js +12 -12
  221. package/src/sap/ui/core/mvc/JSONView.js +1 -1
  222. package/src/sap/ui/core/mvc/JSView.js +2 -2
  223. package/src/sap/ui/core/mvc/TemplateView.js +1 -1
  224. package/src/sap/ui/core/mvc/View.js +2 -1
  225. package/src/sap/ui/core/mvc/XMLView.js +12 -20
  226. package/src/sap/ui/core/mvc/XMLViewRenderer.js +81 -62
  227. package/src/sap/ui/core/plugin/DeclarativeSupport.js +1 -1
  228. package/src/sap/ui/core/plugin/LessSupport.js +3 -3
  229. package/src/sap/ui/core/plugin/TemplatingSupport.js +1 -1
  230. package/src/sap/ui/core/postmessage/Bus.js +1 -1
  231. package/src/sap/ui/core/postmessage/confirmationDialog.js +1 -1
  232. package/src/sap/ui/core/routing/History.js +5 -3
  233. package/src/sap/ui/core/routing/Router.js +5 -3
  234. package/src/sap/ui/core/routing/Targets.js +2 -2
  235. package/src/sap/ui/core/rules/App.support.js +8 -8
  236. package/src/sap/ui/core/rules/Config.support.js +12 -12
  237. package/src/sap/ui/core/rules/Model.support.js +8 -8
  238. package/src/sap/ui/core/rules/Rendering.support.js +1 -1
  239. package/src/sap/ui/core/rules/Theming.support.js +4 -4
  240. package/src/sap/ui/core/rules/View.support.js +9 -9
  241. package/src/sap/ui/core/search/OpenSearchProvider.js +1 -1
  242. package/src/sap/ui/core/search/SearchProvider.js +1 -1
  243. package/src/sap/ui/core/service/Service.js +1 -1
  244. package/src/sap/ui/core/service/ServiceFactory.js +1 -1
  245. package/src/sap/ui/core/service/ServiceFactoryRegistry.js +1 -1
  246. package/src/sap/ui/core/support/Plugin.js +1 -1
  247. package/src/sap/ui/core/support/RuleEngineOpaExtension.js +1 -1
  248. package/src/sap/ui/core/support/Support.js +2 -2
  249. package/src/sap/ui/core/support/ToolsAPI.js +4 -1
  250. package/src/sap/ui/core/support/plugins/ControlTree.js +9 -3
  251. package/src/sap/ui/core/support/plugins/Interaction.js +1 -1
  252. package/src/sap/ui/core/support/plugins/LocalStorage.js +1 -1
  253. package/src/sap/ui/core/support/plugins/Performance.js +1 -1
  254. package/src/sap/ui/core/support/plugins/Selector.js +1 -1
  255. package/src/sap/ui/core/support/plugins/TechInfo.js +1 -1
  256. package/src/sap/ui/core/support/plugins/Trace.js +1 -1
  257. package/src/sap/ui/core/support/plugins/ViewInfo.js +8 -22
  258. package/src/sap/ui/core/support/support.html +1 -1
  259. package/src/sap/ui/core/themes/base/LocalBusyIndicator.less +15 -1
  260. package/src/sap/ui/core/themes/base/base.less +4 -4
  261. package/src/sap/ui/core/themes/base/global.less +2 -0
  262. package/src/sap/ui/core/themes/sap_hcb/global.less +2 -0
  263. package/src/sap/ui/core/theming/Parameters.js +1 -1
  264. package/src/sap/ui/core/tmpl/DOMAttribute.js +1 -1
  265. package/src/sap/ui/core/tmpl/DOMElement.js +2 -2
  266. package/src/sap/ui/core/tmpl/HandlebarsTemplate.js +1 -1
  267. package/src/sap/ui/core/tmpl/Template.js +4 -4
  268. package/src/sap/ui/core/tmpl/TemplateControl.js +2 -2
  269. package/src/sap/ui/core/util/AsyncHintsHelper.js +1 -1
  270. package/src/sap/ui/core/util/Export.js +1 -1
  271. package/src/sap/ui/core/util/ExportCell.js +1 -1
  272. package/src/sap/ui/core/util/ExportColumn.js +1 -1
  273. package/src/sap/ui/core/util/ExportRow.js +1 -1
  274. package/src/sap/ui/core/util/ExportType.js +1 -1
  275. package/src/sap/ui/core/util/ExportTypeCSV.js +1 -1
  276. package/src/sap/ui/core/util/File.js +1 -1
  277. package/src/sap/ui/core/util/LibraryInfo.js +1 -1
  278. package/src/sap/ui/core/util/MockServer.js +2 -2
  279. package/src/sap/ui/core/util/PasteHelper.js +1 -1
  280. package/src/sap/ui/core/util/ResponsivePaddingsEnablement.js +2 -2
  281. package/src/sap/ui/core/util/XMLPreprocessor.js +1 -1
  282. package/src/sap/ui/core/util/serializer/HTMLViewSerializer.js +1 -1
  283. package/src/sap/ui/core/util/serializer/Serializer.js +1 -1
  284. package/src/sap/ui/core/util/serializer/ViewSerializer.js +1 -1
  285. package/src/sap/ui/core/util/serializer/XMLViewSerializer.js +1 -1
  286. package/src/sap/ui/core/util/serializer/delegate/Delegate.js +1 -1
  287. package/src/sap/ui/core/util/serializer/delegate/HTML.js +1 -1
  288. package/src/sap/ui/core/util/serializer/delegate/XML.js +1 -1
  289. package/src/sap/ui/core/ws/ReadyState.js +1 -1
  290. package/src/sap/ui/core/ws/SapPcpWebSocket.js +1 -1
  291. package/src/sap/ui/core/ws/WebSocket.js +7 -8
  292. package/src/sap/ui/debug/ControlTree.js +1 -1
  293. package/src/sap/ui/debug/DebugEnv.js +1 -1
  294. package/src/sap/ui/debug/PropertyList.js +1 -1
  295. package/src/sap/ui/dom/_ready.js +34 -0
  296. package/src/sap/ui/dom/containsOrEquals.js +2 -2
  297. package/src/sap/ui/dom/getFirstEditableInput.js +2 -2
  298. package/src/sap/ui/dom/jquery/Focusable.js +1 -1
  299. package/src/sap/ui/dom/jquery/control.js +1 -1
  300. package/src/sap/ui/events/jquery/EventExtension.js +1 -1
  301. package/src/sap/ui/events/jquery/EventSimulation.js +1 -1
  302. package/src/sap/ui/model/ClientListBinding.js +127 -21
  303. package/src/sap/ui/model/ClientModel.js +1 -1
  304. package/src/sap/ui/model/CompositeDataState.js +1 -1
  305. package/src/sap/ui/model/CompositeType.js +1 -1
  306. package/src/sap/ui/model/DataState.js +1 -1
  307. package/src/sap/ui/model/ListBinding.js +32 -13
  308. package/src/sap/ui/model/MetaModel.js +1 -1
  309. package/src/sap/ui/model/Model.js +1 -1
  310. package/src/sap/ui/model/SelectionModel.js +1 -1
  311. package/src/sap/ui/model/SimpleType.js +1 -1
  312. package/src/sap/ui/model/TreeAutoExpandMode.js +1 -1
  313. package/src/sap/ui/model/TreeBindingAdapter.js +134 -0
  314. package/src/sap/ui/model/Type.js +1 -1
  315. package/src/sap/ui/model/_Helper.js +3 -1
  316. package/src/sap/ui/model/json/JSONListBinding.js +0 -58
  317. package/src/sap/ui/model/json/JSONModel.js +1 -1
  318. package/src/sap/ui/model/message/MessageListBinding.js +0 -42
  319. package/src/sap/ui/model/message/MessageModel.js +1 -1
  320. package/src/sap/ui/model/odata/ODataAnnotations.js +1 -1
  321. package/src/sap/ui/model/odata/ODataMessageParser.js +1 -1
  322. package/src/sap/ui/model/odata/ODataMetaModel.js +1 -1
  323. package/src/sap/ui/model/odata/ODataMetadata.js +1 -1
  324. package/src/sap/ui/model/odata/ODataModel.js +1 -1
  325. package/src/sap/ui/model/odata/ODataTreeBindingAdapter.js +6 -0
  326. package/src/sap/ui/model/odata/ODataTreeBindingFlat.js +279 -4
  327. package/src/sap/ui/model/odata/OperationMode.js +6 -0
  328. package/src/sap/ui/model/odata/type/Boolean.js +1 -1
  329. package/src/sap/ui/model/odata/type/Byte.js +1 -1
  330. package/src/sap/ui/model/odata/type/Currency.js +1 -1
  331. package/src/sap/ui/model/odata/type/Date.js +1 -1
  332. package/src/sap/ui/model/odata/type/DateTime.js +1 -1
  333. package/src/sap/ui/model/odata/type/DateTimeBase.js +1 -1
  334. package/src/sap/ui/model/odata/type/DateTimeOffset.js +1 -1
  335. package/src/sap/ui/model/odata/type/DateTimeWithTimezone.js +1 -2
  336. package/src/sap/ui/model/odata/type/Decimal.js +1 -1
  337. package/src/sap/ui/model/odata/type/Double.js +1 -1
  338. package/src/sap/ui/model/odata/type/Guid.js +1 -1
  339. package/src/sap/ui/model/odata/type/Int.js +1 -1
  340. package/src/sap/ui/model/odata/type/Int16.js +1 -1
  341. package/src/sap/ui/model/odata/type/Int32.js +1 -1
  342. package/src/sap/ui/model/odata/type/Int64.js +1 -1
  343. package/src/sap/ui/model/odata/type/ODataType.js +1 -1
  344. package/src/sap/ui/model/odata/type/Raw.js +1 -1
  345. package/src/sap/ui/model/odata/type/SByte.js +1 -1
  346. package/src/sap/ui/model/odata/type/Single.js +1 -1
  347. package/src/sap/ui/model/odata/type/Stream.js +1 -1
  348. package/src/sap/ui/model/odata/type/String.js +1 -1
  349. package/src/sap/ui/model/odata/type/Time.js +1 -1
  350. package/src/sap/ui/model/odata/type/TimeOfDay.js +1 -1
  351. package/src/sap/ui/model/odata/type/Unit.js +1 -1
  352. package/src/sap/ui/model/odata/type/UnitMixin.js +1 -1
  353. package/src/sap/ui/model/odata/v2/Context.js +13 -4
  354. package/src/sap/ui/model/odata/v2/ODataAnnotations.js +1 -1
  355. package/src/sap/ui/model/odata/v2/ODataListBinding.js +107 -34
  356. package/src/sap/ui/model/odata/v2/ODataModel.js +70 -22
  357. package/src/sap/ui/model/odata/v2/ODataTreeBinding.js +43 -7
  358. package/src/sap/ui/model/odata/v4/Context.js +31 -10
  359. package/src/sap/ui/model/odata/v4/ODataBinding.js +16 -8
  360. package/src/sap/ui/model/odata/v4/ODataContextBinding.js +24 -1
  361. package/src/sap/ui/model/odata/v4/ODataListBinding.js +83 -27
  362. package/src/sap/ui/model/odata/v4/ODataMetaModel.js +17 -10
  363. package/src/sap/ui/model/odata/v4/ODataModel.js +175 -6
  364. package/src/sap/ui/model/odata/v4/ODataParentBinding.js +30 -1
  365. package/src/sap/ui/model/odata/v4/ODataPropertyBinding.js +17 -6
  366. package/src/sap/ui/model/odata/v4/lib/_AggregationHelper.js +6 -6
  367. package/src/sap/ui/model/odata/v4/lib/_Cache.js +208 -85
  368. package/src/sap/ui/model/odata/v4/lib/_Helper.js +119 -42
  369. package/src/sap/ui/model/odata/v4/lib/_MinMaxHelper.js +1 -1
  370. package/src/sap/ui/model/odata/v4/lib/_Requestor.js +60 -35
  371. package/src/sap/ui/model/odata/v4/lib/_V2MetadataConverter.js +1 -1
  372. package/src/sap/ui/model/resource/ResourceModel.js +1 -1
  373. package/src/sap/ui/model/type/Boolean.js +1 -1
  374. package/src/sap/ui/model/type/Currency.js +1 -1
  375. package/src/sap/ui/model/type/Date.js +1 -1
  376. package/src/sap/ui/model/type/DateInterval.js +1 -1
  377. package/src/sap/ui/model/type/DateTime.js +1 -1
  378. package/src/sap/ui/model/type/DateTimeInterval.js +1 -1
  379. package/src/sap/ui/model/type/FileSize.js +1 -1
  380. package/src/sap/ui/model/type/Float.js +1 -1
  381. package/src/sap/ui/model/type/Integer.js +1 -1
  382. package/src/sap/ui/model/type/String.js +1 -1
  383. package/src/sap/ui/model/type/Time.js +1 -1
  384. package/src/sap/ui/model/type/TimeInterval.js +1 -1
  385. package/src/sap/ui/model/type/Unit.js +1 -1
  386. package/src/sap/ui/model/xml/XMLListBinding.js +0 -53
  387. package/src/sap/ui/model/xml/XMLModel.js +1 -1
  388. package/src/sap/ui/qunit/utils/ControlIterator.js +1 -1
  389. package/src/sap/ui/qunit/utils/MemoryLeakCheck.js +1 -1
  390. package/src/sap/ui/security/FrameOptions.js +4 -2
  391. package/src/sap/ui/test/OpaBuilder.js +1 -1
  392. package/src/sap/ui/test/OpaPlugin.js +3 -3
  393. package/src/sap/ui/test/_ControlFinder.js +5 -4
  394. package/src/sap/ui/test/actions/Action.js +3 -3
  395. package/src/sap/ui/test/actions/Drag.js +2 -2
  396. package/src/sap/ui/test/actions/Drop.js +2 -2
  397. package/src/sap/ui/test/actions/EnterText.js +8 -8
  398. package/src/sap/ui/test/actions/Press.js +6 -6
  399. package/src/sap/ui/test/actions/Scroll.js +1 -1
  400. package/src/sap/ui/test/generic/TestBase.js +1 -1
  401. package/src/sap/ui/util/Mobile.js +59 -33
  402. package/src/sap/ui/util/Storage.js +2 -2
  403. package/src/sap/ui/util/openWindow.js +1 -1
  404. package/src/ui5loader.js +3 -3
  405. package/ui5.yaml +72 -1
@@ -48,7 +48,7 @@ sap.ui.define([
48
48
  if (oItem) {
49
49
  if (!mMap[sPath]) {
50
50
  mMap[sPath] = [oItem];
51
- } else if (mMap[sPath].indexOf(oItem) < 0) {
51
+ } else if (!mMap[sPath].includes(oItem)) {
52
52
  mMap[sPath].push(oItem);
53
53
  }
54
54
  }
@@ -70,7 +70,7 @@ sap.ui.define([
70
70
  aChildren.forEach(function (sPath) {
71
71
  var aSegments;
72
72
 
73
- if (aAncestors.indexOf(sPath) >= 0) {
73
+ if (aAncestors.includes(sPath)) {
74
74
  mChildren[sPath] = true;
75
75
  return;
76
76
  }
@@ -97,7 +97,7 @@ sap.ui.define([
97
97
  addToSelect : function (mQueryOptions, aSelectPaths) {
98
98
  mQueryOptions.$select = mQueryOptions.$select || [];
99
99
  aSelectPaths.forEach(function (sPath) {
100
- if (mQueryOptions.$select.indexOf(sPath) < 0) {
100
+ if (!mQueryOptions.$select.includes(sPath)) {
101
101
  mQueryOptions.$select.push(sPath);
102
102
  }
103
103
  });
@@ -277,6 +277,36 @@ sap.ui.define([
277
277
  return "?" + aQuery.join("&");
278
278
  },
279
279
 
280
+ /**
281
+ * Converts the select paths into an object where each of the selected properties has the
282
+ * value <code>true</code>, unless a (complex) parent property is also selected.
283
+ *
284
+ * @param {string[]} aSelect - The list of selected paths
285
+ * @returns {object} - An object marking the selected properties
286
+ */
287
+ buildSelect : function (aSelect) {
288
+ var oSelect = {};
289
+
290
+ aSelect.forEach(function (sPath) {
291
+ var aSegments = sPath.split("/"),
292
+ iLast = aSegments.length - 1,
293
+ oSubSelect = oSelect;
294
+
295
+ aSegments.some(function (sSegment, i) {
296
+ if (i === iLast) {
297
+ oSubSelect[sSegment] = true;
298
+ return true;
299
+ }
300
+ if (oSubSelect[sSegment] === true) {
301
+ return true; // no need to descend when the complex property is selected
302
+ }
303
+ oSubSelect = oSubSelect[sSegment] = oSubSelect[sSegment] || {};
304
+ });
305
+ });
306
+
307
+ return oSelect;
308
+ },
309
+
280
310
  /**
281
311
  * Returns a clone of the given value, according to the rules of
282
312
  * <code>JSON.stringify</code>.
@@ -2039,7 +2069,9 @@ sap.ui.define([
2039
2069
  * {@link #updateExisting}). If a property is missing in the new value, the old value
2040
2070
  * remains unchanged. If no selected properties are given or if "*" is contained in the
2041
2071
  * selected properties, then all properties are selected. Fires change events for all
2042
- * changed properties.
2072
+ * changed properties. An instance annotation is updated if the instance (which would be a
2073
+ * complex-valued structural property then) or one of its properties is selected, a property
2074
+ * annotation is updated if the property itself is selected.
2043
2075
  *
2044
2076
  * Restrictions:
2045
2077
  * - oOldValue and oNewValue are expected to have the same structure: when there is an
@@ -2051,7 +2083,7 @@ sap.ui.define([
2051
2083
  *
2052
2084
  * @param {object} mChangeListeners
2053
2085
  * A map of change listeners by path
2054
- * @param {string} sPath
2086
+ * @param {string} sBasePath
2055
2087
  * The path of oOldValue in mChangeListeners
2056
2088
  * @param {object} oOldValue
2057
2089
  * The old value
@@ -2061,58 +2093,103 @@ sap.ui.define([
2061
2093
  * The relative paths to properties to be updated in oOldValue; default is all properties
2062
2094
  * from oNewValue
2063
2095
  */
2064
- updateSelected : function (mChangeListeners, sPath, oOldValue, oNewValue, aSelect) {
2096
+ updateSelected : function (mChangeListeners, sBasePath, oOldValue, oNewValue, aSelect) {
2065
2097
  /*
2066
- * Take over the property value from source to target and fires an event if the property
2067
- * is changed
2068
- * @param {string} sPropertyPath The property path
2069
- * @param {object} oSource The source object
2070
- * @param {object} oTarget The target object
2098
+ * Gets the property's value in vSelect. Instance annotations are always selected,
2099
+ * property annotations only if the property is selected.
2100
+ * @param {object|boolean} vSelect
2101
+ * The result from _Helper.buildSelect or true if the complex structure is selected
2102
+ * @param {string} sProperty
2103
+ * The property name
2104
+ * @returns {object|boolean|undefined}
2105
+ * undefined to ignore, {} to update it w/o event, true to update w/ event
2071
2106
  */
2072
- function copyPathValue(sPropertyPath, oSource, oTarget) {
2073
- var aSegments = sPropertyPath.split("/");
2107
+ function getSelect(vSelect, sProperty) {
2108
+ var iAt;
2074
2109
 
2075
- aSegments.every(function (sSegment, iIndex) {
2076
- var vSourceProperty = oSource[sSegment],
2077
- vTargetProperty = oTarget[sSegment];
2110
+ if (vSelect === true) {
2111
+ return true;
2112
+ }
2113
+ if (vSelect[sProperty]) {
2114
+ return vSelect[sProperty];
2115
+ }
2116
+ iAt = sProperty.indexOf("@");
2117
+ if (iAt === 0 || iAt > 0 && vSelect[sProperty.slice(0, iAt)]) {
2118
+ return true; // always fire changes for selected annotations
2119
+ }
2120
+ }
2078
2121
 
2079
- if (!(sSegment in oSource)) {
2080
- return false; // ignore missing property
2122
+ /*
2123
+ * The recursive update function.
2124
+ * @param {string} sPath - The path of oTarget in the cache
2125
+ * @param {object|boolean} vSelect
2126
+ * The result from _Helper.buildSelect or true if the complex structure is selected
2127
+ * @param {object} oTarget - The update target
2128
+ * @param {object} oSource - The update source
2129
+ * @returns {object} oTarget
2130
+ */
2131
+ function update(sPath, vSelect, oTarget, oSource) {
2132
+ // Remove annotations that are selected, but not in oSource anymore; except client
2133
+ // annotations
2134
+ Object.keys(oTarget).forEach(function (sProperty) {
2135
+ if (!(sProperty in oSource) && sProperty.includes("@")
2136
+ && !sProperty.startsWith("@$ui5.") && getSelect(vSelect, sProperty)) {
2137
+ delete oTarget[sProperty];
2138
+ _Helper.fireChange(mChangeListeners, _Helper.buildPath(sPath, sProperty),
2139
+ undefined);
2140
+ }
2141
+ });
2142
+
2143
+ // The actual update loop
2144
+ Object.keys(oSource).forEach(function (sProperty) {
2145
+ var sPropertyPath = _Helper.buildPath(sPath, sProperty),
2146
+ vSelected = getSelect(vSelect, sProperty),
2147
+ vSourceProperty = oSource[sProperty],
2148
+ vTargetProperty = oTarget[sProperty];
2149
+
2150
+ if (!vSelected) {
2151
+ return;
2152
+ }
2153
+ if (sProperty === "@$ui5._") {
2154
+ _Helper.setPrivateAnnotation(oTarget, "predicate",
2155
+ _Helper.getPrivateAnnotation(oSource, "predicate"));
2156
+ // There should be nothing else, but we must avoid calling fireChanges on
2157
+ // the target because it may contain non-JSON annotations
2081
2158
  } else if (Array.isArray(vSourceProperty)) {
2082
2159
  // copy complete collection; no change events as long as collection-valued
2083
2160
  // properties are not supported
2084
- oTarget[sSegment] = vSourceProperty;
2085
- } else if (vSourceProperty && typeof vSourceProperty === "object") {
2086
- oTarget = oTarget[sSegment] = vTargetProperty || {};
2087
- oSource = vSourceProperty;
2088
- return true;
2161
+ oTarget[sProperty] = vSourceProperty;
2162
+ } else if (vSourceProperty && typeof vSourceProperty === "object"
2163
+ && !sProperty.includes("@")) {
2164
+ oTarget[sProperty] = update(sPropertyPath, vSelected, vTargetProperty || {},
2165
+ vSourceProperty);
2089
2166
  } else if (vTargetProperty !== vSourceProperty) {
2090
- oTarget[sSegment] = vSourceProperty;
2167
+ oTarget[sProperty] = vSourceProperty;
2091
2168
  if (vTargetProperty && typeof vTargetProperty === "object") {
2092
- _Helper.fireChanges(mChangeListeners,
2093
- _Helper.buildPath(sPath, aSegments.slice(0, iIndex + 1).join("/")),
2094
- vTargetProperty, true);
2095
- } else if (iIndex === aSegments.length - 1) {
2096
- _Helper.fireChange(mChangeListeners,
2097
- _Helper.buildPath(sPath, sPropertyPath), vSourceProperty);
2169
+ // a complex property is replaced by null
2170
+ _Helper.fireChanges(mChangeListeners, sPropertyPath, vTargetProperty,
2171
+ true);
2172
+ } else if (vSelected === true) {
2173
+ _Helper.fireChange(mChangeListeners, sPropertyPath, vSourceProperty);
2098
2174
  }
2099
- // else a change from undefined to null where an object is expected along a
2100
- // property path from aSelect
2101
2175
  }
2102
- return false;
2103
2176
  });
2104
- }
2105
2177
 
2106
- if (!aSelect || aSelect.indexOf("*") >= 0) {
2107
- // no individual properties selected, fetch all properties of the new value
2108
- _Helper.updateAll(mChangeListeners, sPath, oOldValue, oNewValue);
2109
- return;
2178
+ // Create annotations for a property which was selected but no data was received
2179
+ Object.keys(vSelect).forEach(function (sProperty) {
2180
+ if (!(sProperty in oTarget)) {
2181
+ oTarget[sProperty + "@$ui5.noData"] = true;
2182
+ }
2183
+ });
2184
+
2185
+ return oTarget;
2110
2186
  }
2111
2187
 
2112
- // take over properties from the new value and fire change events
2113
- aSelect.forEach(function (sProperty) {
2114
- copyPathValue(sProperty, oNewValue, oOldValue);
2115
- });
2188
+ if (aSelect && !aSelect.includes("*")) {
2189
+ update(sBasePath, _Helper.buildSelect(aSelect), oOldValue, oNewValue);
2190
+ } else { // no individual properties selected, fetch all properties of the new value
2191
+ _Helper.updateAll(mChangeListeners, sBasePath, oOldValue, oNewValue);
2192
+ }
2116
2193
  },
2117
2194
 
2118
2195
  /**
@@ -13,7 +13,7 @@ sap.ui.define([
13
13
 
14
14
  return {
15
15
  /**
16
- * Creates a cache that requests the mininum and maximum values together with the first
16
+ * Creates a cache that requests the minimum and maximum values together with the first
17
17
  * request. Subsequent requests remain unchanged.
18
18
  *
19
19
  * @param {sap.ui.model.odata.v4.lib._Requestor} oRequestor
@@ -22,6 +22,7 @@ sap.ui.define([
22
22
  },
23
23
  sCachePrefix = "sap.ui.model.odata.v4.optimisticBatch:",
24
24
  sClassName = "sap.ui.model.odata.v4.lib._Requestor",
25
+ sMessagesAnnotation = "@com.sap.vocabularies.Common.v1.Messages",
25
26
  rSystemQueryOptionWithPlaceholder = /(\$\w+)=~/g,
26
27
  rTimeout = /^\d+$/;
27
28
 
@@ -72,26 +73,7 @@ sap.ui.define([
72
73
  * A map of query parameters as described in
73
74
  * {@link sap.ui.model.odata.v4.lib._Helper.buildQuery}; used only to request the CSRF token
74
75
  * @param {object} oModelInterface
75
- * A interface allowing to call back to the owning model
76
- * @param {function} oModelInterface.fetchEntityContainer
77
- * A promise which is resolved with the $metadata "JSON" object as soon as the entity
78
- * container is fully available, or rejected with an error.
79
- * @param {function} oModelInterface.fetchMetadata
80
- * A function that returns a SyncPromise which resolves with the metadata instance for a
81
- * given meta path
82
- * @param {function} oModelInterface.getGroupProperty
83
- * A function called with parameters <code>sGroupId</code> and <code>sPropertyName</code>
84
- * returning the property value in question. Only 'submit' is supported for <code>
85
- * sPropertyName</code>. Supported property values are: 'API', 'Auto' and 'Direct'.
86
- * @param {function} oModelInterface.reportStateMessages
87
- * A function for reporting state messages; see {@link #reportStateMessages} for the signature
88
- * of this function
89
- * @param {function} oModelInterface.reportTransitionMessages
90
- * A function called with parameters <code>sResourcePath</code> and <code>sMessages</code>
91
- * reporting OData transition messages to the {@link sap.ui.core.message.MessageManager}.
92
- * @param {function (string)} [oModelInterface.onCreateGroup]
93
- * A callback function that is called with the group name as parameter when the first
94
- * request is added to a group
76
+ * An interface allowing to call back to the owning model (see {@link .create})
95
77
  *
96
78
  * @alias sap.ui.model.odata.v4.lib._Requestor
97
79
  * @constructor
@@ -825,22 +807,66 @@ sap.ui.define([
825
807
  });
826
808
  };
827
809
 
810
+ /**
811
+ * Fetches the type for the given path and puts it into mTypeForMetaPath. Recursively fetches
812
+ * the key properties' parent types if they are complex.
813
+ *
814
+ * @param {object} mTypeForMetaPath
815
+ * A map from resource path and entity path to the type
816
+ * @param {string} sMetaPath
817
+ * The meta path of the resource + navigation or key path (which may lead to an entity or
818
+ * complex type)
819
+ * @returns {SyncPromise<object>}
820
+ * A promise resolving with the type
821
+ */
822
+ _Requestor.prototype.fetchType = function (mTypeForMetaPath, sMetaPath) {
823
+ var that = this;
824
+
825
+ if (sMetaPath in mTypeForMetaPath) {
826
+ return SyncPromise.resolve(mTypeForMetaPath[sMetaPath]);
827
+ }
828
+
829
+ return this.fetchTypeForPath(sMetaPath).then(function (oType) {
830
+ var oMessageAnnotation,
831
+ aPromises = [];
832
+
833
+ if (oType) {
834
+ oMessageAnnotation = that.getModelInterface()
835
+ .fetchMetadata(sMetaPath + "/" + sMessagesAnnotation).getResult();
836
+ if (oMessageAnnotation) {
837
+ oType = Object.create(oType);
838
+ oType[sMessagesAnnotation] = oMessageAnnotation;
839
+ }
840
+
841
+ mTypeForMetaPath[sMetaPath] = oType;
842
+
843
+ (oType.$Key || []).forEach(function (vKey) {
844
+ if (typeof vKey === "object") {
845
+ // key has an alias
846
+ vKey = vKey[Object.keys(vKey)[0]];
847
+ aPromises.push(that.fetchType(mTypeForMetaPath,
848
+ sMetaPath + "/" + vKey.slice(0, vKey.lastIndexOf("/"))));
849
+ }
850
+ });
851
+ return SyncPromise.all(aPromises).then(function () {
852
+ return oType;
853
+ });
854
+ }
855
+ });
856
+ };
857
+
828
858
  /**
829
859
  * Fetches the type of the given meta path from the metadata.
830
860
  *
831
861
  * @param {string} sMetaPath
832
862
  * The meta path, e.g. "/SalesOrderList/SO_2_BP"
833
- * @param {boolean} [bAsName]
834
- * If <code>true</code>, the name of the type is delivered instead of the type itself. This
835
- * must be used when asking for a property type to avoid that the function logs an error
836
- * because there are no objects for primitive types like "Edm.Stream".
837
863
  * @returns {sap.ui.base.SyncPromise}
838
- * A promise that is resolved with the type at the given path or its name.
864
+ * A promise that is resolved with the type at the given path.
839
865
  *
840
866
  * @private
841
867
  */
842
- _Requestor.prototype.fetchTypeForPath = function (sMetaPath, bAsName) {
843
- return this.oModelInterface.fetchMetadata(sMetaPath + (bAsName ? "/$Type" : "/"));
868
+ _Requestor.prototype.fetchTypeForPath = function (sMetaPath) {
869
+ return this.oModelInterface.fetchMetadata(sMetaPath + "/");
844
870
  };
845
871
 
846
872
  /**
@@ -903,9 +929,7 @@ sap.ui.define([
903
929
  aChangeSet.iSerialNumber = 0;
904
930
  aRequests = this.mBatchQueue[sGroupId] = [aChangeSet];
905
931
  aRequests.iChangeSet = 0; // the index of the current change set in this queue
906
- if (this.oModelInterface.onCreateGroup) {
907
- this.oModelInterface.onCreateGroup(sGroupId);
908
- }
932
+ this.oModelInterface.onCreateGroup(sGroupId);
909
933
  }
910
934
  return aRequests;
911
935
  };
@@ -2121,6 +2145,9 @@ sap.ui.define([
2121
2145
  * @param {function} oModelInterface.fetchMetadata
2122
2146
  * A function that returns a SyncPromise which resolves with the metadata instance for a
2123
2147
  * given meta path
2148
+ * @param {function} oModelInterface.fireSessionTimeout
2149
+ * A function that fires the 'sessionTimeout' event (when the server has created a session for
2150
+ * the model and this session ran into a timeout due to inactivity).
2124
2151
  * @param {function} oModelInterface.getGroupProperty
2125
2152
  * A function called with parameters <code>sGroupId</code> and <code>sPropertyName</code>
2126
2153
  * returning the property value in question. Only 'submit' is supported for <code>
@@ -2132,12 +2159,12 @@ sap.ui.define([
2132
2159
  * A catch handler function expecting an <code>Error</code> instance. This function will call
2133
2160
  * {@link sap.ui.model.odata.v4.ODataModel#reportError} if the error has not been reported
2134
2161
  * yet.
2135
- * @param {function (string)} [oModelInterface.onCreateGroup]
2162
+ * @param {function} oModelInterface.onCreateGroup
2136
2163
  * A callback function that is called with the group name as parameter when the first
2137
2164
  * request is added to a group
2138
2165
  * @param {function} oModelInterface.reportStateMessages
2139
2166
  * A function to report OData state messages
2140
- * @param {function (object[])} oModelInterface.reportTransitionMessages
2167
+ * @param {function} oModelInterface.reportTransitionMessages
2141
2168
  * A function to report OData transition messages
2142
2169
  * @param {object} [mHeaders={}]
2143
2170
  * Map of default headers; may be overridden with request-specific headers; certain
@@ -2163,9 +2190,7 @@ sap.ui.define([
2163
2190
  */
2164
2191
  _Requestor.create = function (sServiceUrl, oModelInterface, mHeaders, mQueryParams,
2165
2192
  sODataVersion) {
2166
- var oRequestor = new _Requestor(sServiceUrl, mHeaders, mQueryParams,
2167
- oModelInterface
2168
- );
2193
+ var oRequestor = new _Requestor(sServiceUrl, mHeaders, mQueryParams, oModelInterface);
2169
2194
 
2170
2195
  if (sODataVersion === "2.0") {
2171
2196
  asV2Requestor(oRequestor);
@@ -715,7 +715,7 @@ sap.ui.define([
715
715
 
716
716
  this.associations[sName] = this.association = {
717
717
  referentialConstraint : null,
718
- roles : {} // maps role name -> AssocationEnd
718
+ roles : {} // maps role name -> AssociationEnd
719
719
  };
720
720
  };
721
721
 
@@ -228,7 +228,7 @@ sap.ui.define([
228
228
  *
229
229
  * @extends sap.ui.model.Model
230
230
  * @public
231
- * @version 1.101.0
231
+ * @version 1.103.0
232
232
  */
233
233
  var ResourceModel = Model.extend("sap.ui.model.resource.ResourceModel", /** @lends sap.ui.model.resource.ResourceModel.prototype */ {
234
234
 
@@ -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.101.0
22
+ * @version 1.103.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.101.0
35
+ * @version 1.103.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.101.0
29
+ * @version 1.103.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.101.0
36
+ * @version 1.103.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.101.0
22
+ * @version 1.103.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.101.0
22
+ * @version 1.103.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.101.0
27
+ * @version 1.103.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.101.0
29
+ * @version 1.103.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.101.0
29
+ * @version 1.103.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.101.0
27
+ * @version 1.103.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.101.0
22
+ * @version 1.103.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.101.0
22
+ * @version 1.103.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}.
@@ -47,7 +47,7 @@ sap.ui.define([
47
47
  *
48
48
  *
49
49
  * @author SAP SE
50
- * @version 1.101.0
50
+ * @version 1.103.0
51
51
  *
52
52
  * @public
53
53
  * @param {object} [oFormatOptions]
@@ -15,8 +15,6 @@ sap.ui.define([
15
15
  function(ChangeReason, ClientListBinding, XMLHelper, deepEqual, each) {
16
16
  "use strict";
17
17
 
18
-
19
-
20
18
  /**
21
19
  *
22
20
  * @class
@@ -33,55 +31,6 @@ sap.ui.define([
33
31
  */
34
32
  var XMLListBinding = ClientListBinding.extend("sap.ui.model.xml.XMLListBinding");
35
33
 
36
- /**
37
- * Return contexts for the list or a specified subset of contexts
38
- * @param {int} [iStartIndex=0] the startIndex where to start the retrieval of contexts
39
- * @param {int} [iLength=length of the list] determines how many contexts to retrieve beginning from the start index.
40
- * Default is the whole list length.
41
- *
42
- * @return {sap.ui.model.Context[]} the contexts array
43
- * @protected
44
- */
45
- XMLListBinding.prototype.getContexts = function(iStartIndex, iLength) {
46
- this.iLastStartIndex = iStartIndex;
47
- this.iLastLength = iLength;
48
-
49
- if (!iStartIndex) {
50
- iStartIndex = 0;
51
- }
52
- if (!iLength) {
53
- iLength = Math.min(this.iLength, this.oModel.iSizeLimit);
54
- }
55
-
56
- var aContexts = this._getContexts(iStartIndex, iLength),
57
- aContextData = [];
58
-
59
- if (this.bUseExtendedChangeDetection) {
60
- for (var i = 0; i < aContexts.length; i++) {
61
- aContextData.push(this.getContextData(aContexts[i]));
62
- }
63
-
64
- //Check diff
65
- if (this.aLastContexts && iStartIndex < this.iLastEndIndex) {
66
- aContexts.diff = this.diffData(this.aLastContextData, aContextData);
67
- }
68
-
69
- this.iLastEndIndex = iStartIndex + iLength;
70
- this.aLastContexts = aContexts.slice(0);
71
- this.aLastContextData = aContextData.slice(0);
72
- }
73
-
74
- return aContexts;
75
- };
76
-
77
- XMLListBinding.prototype.getCurrentContexts = function() {
78
- if (this.bUseExtendedChangeDetection) {
79
- return this.aLastContexts || [];
80
- } else {
81
- return this.getContexts(this.iLastStartIndex, this.iLastLength);
82
- }
83
- };
84
-
85
34
  /**
86
35
  * Returns the entry data as required for change detection/diff. For the XMLModel this is the
87
36
  * node referenced by the context, serialized as XML.
@@ -182,7 +131,5 @@ sap.ui.define([
182
131
  }
183
132
  };
184
133
 
185
-
186
134
  return XMLListBinding;
187
-
188
135
  });
@@ -47,7 +47,7 @@ sap.ui.define([
47
47
  * @extends sap.ui.model.ClientModel
48
48
  *
49
49
  * @author SAP SE
50
- * @version 1.101.0
50
+ * @version 1.103.0
51
51
  *
52
52
  * @param {object} oData either the URL where to load the XML from or an XML
53
53
  * @public
@@ -53,7 +53,7 @@ sap.ui.define(['sap/ui/core/Core', "sap/ui/VersionInfo"],
53
53
  * @namespace
54
54
  *
55
55
  * @author SAP SE
56
- * @version 1.101.0
56
+ * @version 1.103.0
57
57
  *
58
58
  * @public
59
59
  * @since 1.48.0
@@ -27,7 +27,7 @@ sap.ui.define([ 'sap/ui/core/Element', 'sap/ui/core/Control', 'sap/ui/core/Core'
27
27
  * @namespace
28
28
  *
29
29
  * @author SAP SE
30
- * @version 1.101.0
30
+ * @version 1.103.0
31
31
  *
32
32
  * @public
33
33
  * @since 1.48.0