@openui5/sap.ui.core 1.115.1 → 1.117.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 (685) hide show
  1. package/.dtsgenrc +18 -0
  2. package/.eslintrc.json +1 -11
  3. package/.reuse/dep5 +0 -5
  4. package/THIRDPARTY.txt +1 -7
  5. package/package.json +1 -1
  6. package/src/jquery.sap.global.js +1 -1
  7. package/src/jquery.sap.properties.js +1 -1
  8. package/src/jquery.sap.resources.js +1 -1
  9. package/src/jquery.sap.script.js +1 -1
  10. package/src/jquery.sap.sjax.js +2 -2
  11. package/src/jquery.sap.storage.js +3 -3
  12. package/src/sap/base/Event.js +106 -0
  13. package/src/sap/base/Eventing.js +319 -0
  14. package/src/sap/base/config/MemoryConfigurationProvider.js +10 -1
  15. package/src/sap/base/config.js +3 -2
  16. package/src/sap/base/i18n/Formatting.js +989 -0
  17. package/src/sap/base/i18n/LanguageTag.js +189 -0
  18. package/src/sap/base/i18n/Localization.js +710 -0
  19. package/src/sap/base/i18n/ResourceBundle.js +5 -20
  20. package/src/sap/base/i18n/date/CalendarType.js +54 -0
  21. package/src/sap/base/i18n/date/CalendarWeekNumbering.js +105 -0
  22. package/src/sap/base/i18n/date/TimezoneUtils.js +287 -0
  23. package/src/sap/base/util/JSTokenizer.js +1 -1
  24. package/src/sap/base/util/fetch.js +4 -4
  25. package/src/sap/base/util/mixedFetch.js +2 -2
  26. package/src/sap/base/util/restricted/_CancelablePromise.js +1 -1
  27. package/src/sap/base/util/restricted/_castArray.js +1 -1
  28. package/src/sap/base/util/restricted/_compact.js +1 -1
  29. package/src/sap/base/util/restricted/_curry.js +1 -1
  30. package/src/sap/base/util/restricted/_debounce.js +1 -1
  31. package/src/sap/base/util/restricted/_difference.js +1 -1
  32. package/src/sap/base/util/restricted/_differenceBy.js +1 -1
  33. package/src/sap/base/util/restricted/_differenceWith.js +1 -1
  34. package/src/sap/base/util/restricted/_flatMap.js +1 -1
  35. package/src/sap/base/util/restricted/_flatMapDeep.js +1 -1
  36. package/src/sap/base/util/restricted/_flatMapDepth.js +1 -1
  37. package/src/sap/base/util/restricted/_flatten.js +1 -1
  38. package/src/sap/base/util/restricted/_flattenDeep.js +1 -1
  39. package/src/sap/base/util/restricted/_flattenDepth.js +1 -1
  40. package/src/sap/base/util/restricted/_intersection.js +1 -1
  41. package/src/sap/base/util/restricted/_intersectionBy.js +1 -1
  42. package/src/sap/base/util/restricted/_intersectionWith.js +1 -1
  43. package/src/sap/base/util/restricted/_isEqual.js +1 -1
  44. package/src/sap/base/util/restricted/_isEqualWith.js +1 -1
  45. package/src/sap/base/util/restricted/_isNil.js +1 -1
  46. package/src/sap/base/util/restricted/_max.js +1 -1
  47. package/src/sap/base/util/restricted/_merge.js +1 -1
  48. package/src/sap/base/util/restricted/_mergeWith.js +1 -1
  49. package/src/sap/base/util/restricted/_min.js +1 -1
  50. package/src/sap/base/util/restricted/_omit.js +1 -1
  51. package/src/sap/base/util/restricted/_pick.js +1 -1
  52. package/src/sap/base/util/restricted/_pickBy.js +1 -1
  53. package/src/sap/base/util/restricted/_throttle.js +1 -1
  54. package/src/sap/base/util/restricted/_toArray.js +1 -1
  55. package/src/sap/base/util/restricted/_union.js +1 -1
  56. package/src/sap/base/util/restricted/_unionBy.js +1 -1
  57. package/src/sap/base/util/restricted/_unionWith.js +1 -1
  58. package/src/sap/base/util/restricted/_uniq.js +1 -1
  59. package/src/sap/base/util/restricted/_uniqBy.js +1 -1
  60. package/src/sap/base/util/restricted/_uniqWith.js +1 -1
  61. package/src/sap/base/util/restricted/_without.js +1 -1
  62. package/src/sap/base/util/restricted/_xor.js +1 -1
  63. package/src/sap/base/util/restricted/_xorBy.js +1 -1
  64. package/src/sap/base/util/restricted/_xorWith.js +1 -1
  65. package/src/sap/base/util/restricted/_zipObject.js +1 -1
  66. package/src/sap/base/util/restricted/_zipObjectDeep.js +1 -1
  67. package/src/sap/base/util/syncFetch.js +2 -2
  68. package/src/sap/ui/Device.js +3 -3
  69. package/src/sap/ui/Global.js +4 -4
  70. package/src/sap/ui/base/Event.js +6 -4
  71. package/src/sap/ui/base/EventProvider.js +4 -12
  72. package/src/sap/ui/base/Interface.js +1 -1
  73. package/src/sap/ui/base/ManagedObject.js +9 -15
  74. package/src/sap/ui/base/ManagedObjectMetadata.js +33 -12
  75. package/src/sap/ui/base/Metadata.js +1 -1
  76. package/src/sap/ui/base/Object.js +1 -1
  77. package/src/sap/ui/base/ObjectPool.js +1 -1
  78. package/src/sap/ui/base/SyncPromise.js +10 -5
  79. package/src/sap/ui/core/.library +3 -3
  80. package/src/sap/ui/core/AccessKeysEnablement.js +10 -5
  81. package/src/sap/ui/core/AnimationMode.js +49 -0
  82. package/src/sap/ui/core/BusyIndicator.js +33 -42
  83. package/src/sap/ui/core/CalendarType.js +11 -37
  84. package/src/sap/ui/core/Component.js +4 -5
  85. package/src/sap/ui/core/ComponentContainer.js +1 -1
  86. package/src/sap/ui/core/ComponentMetadata.js +2 -2
  87. package/src/sap/ui/core/ComponentSupport.js +1 -1
  88. package/src/sap/ui/core/ConfigTest.js +17 -0
  89. package/src/sap/ui/core/Configuration.js +409 -1282
  90. package/src/sap/ui/core/Control.js +7 -12
  91. package/src/sap/ui/core/ControlBehavior.js +157 -0
  92. package/src/sap/ui/core/Core.js +126 -132
  93. package/src/sap/ui/core/CustomData.js +1 -1
  94. package/src/sap/ui/core/DeclarativeSupport.js +1 -1
  95. package/src/sap/ui/core/Element.js +14 -3
  96. package/src/sap/ui/core/ElementMetadata.js +2 -4
  97. package/src/sap/ui/core/EnabledPropagator.js +1 -1
  98. package/src/sap/ui/core/EventBus.js +1 -1
  99. package/src/sap/ui/core/Fragment.js +1 -1
  100. package/src/sap/ui/core/HTML.js +1 -1
  101. package/src/sap/ui/core/History.js +1 -1
  102. package/src/sap/ui/core/Icon.js +1 -1
  103. package/src/sap/ui/core/IconPool.js +1 -2
  104. package/src/sap/ui/core/IndicationColorSupport.js +1 -1
  105. package/src/sap/ui/core/IntervalTrigger.js +1 -1
  106. package/src/sap/ui/core/InvisibleMessage.js +5 -7
  107. package/src/sap/ui/core/InvisibleRenderer.js +1 -1
  108. package/src/sap/ui/core/InvisibleText.js +12 -12
  109. package/src/sap/ui/core/Item.js +1 -1
  110. package/src/sap/ui/core/LabelEnablement.js +1 -1
  111. package/src/sap/ui/core/LayoutData.js +1 -1
  112. package/src/sap/ui/core/Lib.js +126 -38
  113. package/src/sap/ui/core/ListItem.js +1 -1
  114. package/src/sap/ui/core/LocalBusyIndicator.js +1 -1
  115. package/src/sap/ui/core/Locale.js +154 -430
  116. package/src/sap/ui/core/LocaleData.js +50 -14
  117. package/src/sap/ui/core/Manifest.js +5 -5
  118. package/src/sap/ui/core/Message.js +1 -1
  119. package/src/sap/ui/core/Popup.js +37 -50
  120. package/src/sap/ui/core/RenderManager.js +1 -1
  121. package/src/sap/ui/core/Renderer.js +1 -1
  122. package/src/sap/ui/core/Rendering.js +1 -1
  123. package/src/sap/ui/core/ResizeHandler.js +1 -1
  124. package/src/sap/ui/core/ScrollBar.js +1 -1
  125. package/src/sap/ui/core/SeparatorItem.js +1 -1
  126. package/src/sap/ui/core/Shortcut.js +11 -9
  127. package/src/sap/ui/core/StaticArea.js +31 -17
  128. package/src/sap/ui/core/Theming.js +458 -0
  129. package/src/sap/ui/core/Title.js +1 -1
  130. package/src/sap/ui/core/TooltipBase.js +1 -1
  131. package/src/sap/ui/core/UIArea.js +1 -1
  132. package/src/sap/ui/core/UIComponent.js +1 -1
  133. package/src/sap/ui/core/UIComponentMetadata.js +1 -1
  134. package/src/sap/ui/core/ValueStateSupport.js +1 -1
  135. package/src/sap/ui/core/VariantLayoutData.js +1 -1
  136. package/src/sap/ui/core/XMLComposite.js +1 -1
  137. package/src/sap/ui/core/XMLCompositeMetadata.js +1 -1
  138. package/src/sap/ui/core/XMLTemplateProcessor.js +28 -5
  139. package/src/sap/ui/core/_IconRegistry.js +89 -12
  140. package/src/sap/ui/core/boot/_bootConfig.js +137 -0
  141. package/src/sap/ui/core/boot/_runBoot.js +16 -0
  142. package/src/sap/ui/core/boot/initDOM.js +96 -0
  143. package/src/sap/ui/core/boot/loadCalendar.js +50 -0
  144. package/src/sap/ui/core/boot/loadManifest.js +55 -0
  145. package/src/sap/ui/core/boot/loadModules.js +80 -0
  146. package/src/sap/ui/core/boot/manifest.json +11 -0
  147. package/src/sap/ui/core/boot/onInit.js +44 -0
  148. package/src/sap/ui/core/boot.js +107 -0
  149. package/src/sap/ui/core/date/CalendarWeekNumbering.js +12 -83
  150. package/src/sap/ui/core/date/UI5Date.js +10 -4
  151. package/src/sap/ui/core/delegate/ItemNavigation.js +8 -10
  152. package/src/sap/ui/core/delegate/ScrollEnablement.js +5 -5
  153. package/src/sap/ui/core/dnd/DragDropBase.js +1 -1
  154. package/src/sap/ui/core/dnd/DragDropInfo.js +1 -1
  155. package/src/sap/ui/core/dnd/DragInfo.js +1 -1
  156. package/src/sap/ui/core/dnd/DropInfo.js +1 -1
  157. package/src/sap/ui/core/format/DateFormat.js +33 -27
  158. package/src/sap/ui/core/format/TimezoneUtil.js +15 -273
  159. package/src/sap/ui/core/hyphenation/Hyphenation.js +1 -1
  160. package/src/sap/ui/core/library.js +32 -6
  161. package/src/sap/ui/core/message/ControlMessageProcessor.js +1 -1
  162. package/src/sap/ui/core/message/Message.js +1 -1
  163. package/src/sap/ui/core/message/MessageManager.js +1 -1
  164. package/src/sap/ui/core/message/MessageMixin.js +6 -5
  165. package/src/sap/ui/core/message/MessageParser.js +1 -1
  166. package/src/sap/ui/core/message/MessageProcessor.js +1 -1
  167. package/src/sap/ui/core/messagebundle_ar.properties +57 -55
  168. package/src/sap/ui/core/messagebundle_bg.properties +57 -55
  169. package/src/sap/ui/core/messagebundle_ca.properties +30 -28
  170. package/src/sap/ui/core/messagebundle_cs.properties +44 -42
  171. package/src/sap/ui/core/messagebundle_cy.properties +59 -57
  172. package/src/sap/ui/core/messagebundle_da.properties +57 -55
  173. package/src/sap/ui/core/messagebundle_de.properties +59 -57
  174. package/src/sap/ui/core/messagebundle_el.properties +48 -46
  175. package/src/sap/ui/core/messagebundle_en.properties +59 -57
  176. package/src/sap/ui/core/messagebundle_en_GB.properties +59 -57
  177. package/src/sap/ui/core/messagebundle_en_US_sappsd.properties +2 -0
  178. package/src/sap/ui/core/messagebundle_en_US_saprigi.properties +2 -0
  179. package/src/sap/ui/core/messagebundle_en_US_saptrc.properties +3 -0
  180. package/src/sap/ui/core/messagebundle_es.properties +48 -46
  181. package/src/sap/ui/core/messagebundle_es_MX.properties +58 -56
  182. package/src/sap/ui/core/messagebundle_et.properties +55 -53
  183. package/src/sap/ui/core/messagebundle_fi.properties +51 -49
  184. package/src/sap/ui/core/messagebundle_fr.properties +36 -34
  185. package/src/sap/ui/core/messagebundle_fr_CA.properties +21 -19
  186. package/src/sap/ui/core/messagebundle_hi.properties +42 -40
  187. package/src/sap/ui/core/messagebundle_hr.properties +57 -55
  188. package/src/sap/ui/core/messagebundle_hu.properties +58 -56
  189. package/src/sap/ui/core/messagebundle_id.properties +59 -57
  190. package/src/sap/ui/core/messagebundle_it.properties +75 -73
  191. package/src/sap/ui/core/messagebundle_iw.properties +59 -57
  192. package/src/sap/ui/core/messagebundle_ja.properties +50 -48
  193. package/src/sap/ui/core/messagebundle_kk.properties +44 -42
  194. package/src/sap/ui/core/messagebundle_ko.properties +20 -18
  195. package/src/sap/ui/core/messagebundle_lt.properties +59 -57
  196. package/src/sap/ui/core/messagebundle_lv.properties +59 -57
  197. package/src/sap/ui/core/messagebundle_ms.properties +60 -58
  198. package/src/sap/ui/core/messagebundle_nl.properties +58 -56
  199. package/src/sap/ui/core/messagebundle_no.properties +56 -54
  200. package/src/sap/ui/core/messagebundle_pl.properties +56 -54
  201. package/src/sap/ui/core/messagebundle_pt.properties +58 -56
  202. package/src/sap/ui/core/messagebundle_pt_PT.properties +58 -56
  203. package/src/sap/ui/core/messagebundle_ro.properties +59 -57
  204. package/src/sap/ui/core/messagebundle_ru.properties +57 -55
  205. package/src/sap/ui/core/messagebundle_sh.properties +59 -57
  206. package/src/sap/ui/core/messagebundle_sk.properties +57 -55
  207. package/src/sap/ui/core/messagebundle_sl.properties +58 -56
  208. package/src/sap/ui/core/messagebundle_sv.properties +54 -52
  209. package/src/sap/ui/core/messagebundle_th.properties +18 -16
  210. package/src/sap/ui/core/messagebundle_tr.properties +58 -56
  211. package/src/sap/ui/core/messagebundle_uk.properties +59 -57
  212. package/src/sap/ui/core/messagebundle_vi.properties +59 -57
  213. package/src/sap/ui/core/messagebundle_zh_CN.properties +58 -56
  214. package/src/sap/ui/core/messagebundle_zh_TW.properties +58 -56
  215. package/src/sap/ui/core/mvc/HTMLView.js +1 -1
  216. package/src/sap/ui/core/mvc/JSONView.js +1 -1
  217. package/src/sap/ui/core/mvc/JSView.js +1 -1
  218. package/src/sap/ui/core/mvc/TemplateView.js +1 -1
  219. package/src/sap/ui/core/mvc/View.js +1 -1
  220. package/src/sap/ui/core/mvc/XMLView.js +14 -2
  221. package/src/sap/ui/core/plugin/DeclarativeSupport.js +1 -1
  222. package/src/sap/ui/core/plugin/LessSupport.js +14 -16
  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/HashChanger.js +1 -0
  227. package/src/sap/ui/core/routing/Route.js +1 -0
  228. package/src/sap/ui/core/routing/Router.js +3 -1
  229. package/src/sap/ui/core/rules/Config.support.js +2 -2
  230. package/src/sap/ui/core/rules/Misc.support.js +1 -1
  231. package/src/sap/ui/core/rules/Model.support.js +3 -1
  232. package/src/sap/ui/core/search/OpenSearchProvider.js +1 -1
  233. package/src/sap/ui/core/search/SearchProvider.js +1 -1
  234. package/src/sap/ui/core/service/Service.js +1 -1
  235. package/src/sap/ui/core/service/ServiceFactory.js +1 -1
  236. package/src/sap/ui/core/service/ServiceFactoryRegistry.js +1 -1
  237. package/src/sap/ui/core/support/Plugin.js +1 -1
  238. package/src/sap/ui/core/support/Support.js +7 -4
  239. package/src/sap/ui/core/support/controls/TimelineOverview.js +1 -1
  240. package/src/sap/ui/core/support/plugins/ControlTree.js +2 -2
  241. package/src/sap/ui/core/support/plugins/Interaction.js +1 -1
  242. package/src/sap/ui/core/support/plugins/LocalStorage.js +1 -1
  243. package/src/sap/ui/core/support/plugins/Performance.js +1 -1
  244. package/src/sap/ui/core/support/plugins/Selector.js +1 -1
  245. package/src/sap/ui/core/support/plugins/TechInfo.js +1 -1
  246. package/src/sap/ui/core/support/plugins/Trace.js +1 -1
  247. package/src/sap/ui/core/support/plugins/ViewInfo.js +1 -1
  248. package/src/sap/ui/core/themes/base/Icon.less +2 -2
  249. package/src/sap/ui/core/themes/base/LocalBusyIndicator.less +4 -4
  250. package/src/sap/ui/core/themes/base/base.less +41 -20
  251. package/src/sap/ui/core/themes/base/fonts/SAP-icons.ttf +0 -0
  252. package/src/sap/ui/core/themes/base/fonts/SAP-icons.woff2 +0 -0
  253. package/src/sap/ui/core/theming/Parameters.js +6 -10
  254. package/src/sap/ui/core/theming/ThemeManager.js +312 -450
  255. package/src/sap/ui/core/tmpl/DOMAttribute.js +1 -1
  256. package/src/sap/ui/core/tmpl/DOMElement.js +5 -10
  257. package/src/sap/ui/core/tmpl/HandlebarsTemplate.js +1 -1
  258. package/src/sap/ui/core/tmpl/Template.js +1 -1
  259. package/src/sap/ui/core/tmpl/TemplateControl.js +1 -1
  260. package/src/sap/ui/core/util/AsyncHintsHelper.js +1 -1
  261. package/src/sap/ui/core/util/Export.js +1 -1
  262. package/src/sap/ui/core/util/ExportCell.js +1 -1
  263. package/src/sap/ui/core/util/ExportColumn.js +1 -1
  264. package/src/sap/ui/core/util/ExportRow.js +1 -1
  265. package/src/sap/ui/core/util/ExportType.js +1 -1
  266. package/src/sap/ui/core/util/ExportTypeCSV.js +1 -1
  267. package/src/sap/ui/core/util/File.js +1 -1
  268. package/src/sap/ui/core/util/LibraryInfo.js +1 -1
  269. package/src/sap/ui/core/util/MockServer.js +4 -5
  270. package/src/sap/ui/core/util/PasteHelper.js +1 -1
  271. package/src/sap/ui/core/util/reflection/BaseTreeModifier.js +3 -1
  272. package/src/sap/ui/core/util/serializer/HTMLViewSerializer.js +1 -1
  273. package/src/sap/ui/core/util/serializer/Serializer.js +1 -1
  274. package/src/sap/ui/core/util/serializer/ViewSerializer.js +1 -1
  275. package/src/sap/ui/core/util/serializer/XMLViewSerializer.js +1 -1
  276. package/src/sap/ui/core/util/serializer/delegate/Delegate.js +1 -1
  277. package/src/sap/ui/core/util/serializer/delegate/HTML.js +1 -1
  278. package/src/sap/ui/core/util/serializer/delegate/XML.js +1 -1
  279. package/src/sap/ui/core/ws/ReadyState.js +1 -1
  280. package/src/sap/ui/core/ws/SapPcpWebSocket.js +1 -1
  281. package/src/sap/ui/core/ws/WebSocket.js +1 -1
  282. package/src/sap/ui/debug/ControlTree.js +1 -1
  283. package/src/sap/ui/debug/DebugEnv.js +1 -1
  284. package/src/sap/ui/debug/PropertyList.js +1 -1
  285. package/src/sap/ui/events/PseudoEvents.js +17 -9
  286. package/src/sap/ui/model/Binding.js +19 -15
  287. package/src/sap/ui/model/ClientModel.js +1 -1
  288. package/src/sap/ui/model/CompositeBinding.js +57 -19
  289. package/src/sap/ui/model/CompositeDataState.js +1 -1
  290. package/src/sap/ui/model/CompositeType.js +1 -1
  291. package/src/sap/ui/model/DataState.js +1 -1
  292. package/src/sap/ui/model/ListBinding.js +42 -1
  293. package/src/sap/ui/model/MetaModel.js +1 -1
  294. package/src/sap/ui/model/Model.js +5 -4
  295. package/src/sap/ui/model/PropertyBinding.js +10 -0
  296. package/src/sap/ui/model/SelectionModel.js +1 -1
  297. package/src/sap/ui/model/SimpleType.js +4 -1
  298. package/src/sap/ui/model/TreeAutoExpandMode.js +1 -1
  299. package/src/sap/ui/model/Type.js +1 -1
  300. package/src/sap/ui/model/analytics/AnalyticalBinding.js +166 -79
  301. package/src/sap/ui/model/analytics/AnalyticalVersionInfo.js +4 -3
  302. package/src/sap/ui/model/analytics/BatchResponseCollector.js +2 -2
  303. package/src/sap/ui/model/analytics/ODataModelAdapter.js +14 -27
  304. package/src/sap/ui/model/analytics/odata4analytics.js +6 -12
  305. package/src/sap/ui/model/base/ManagedObjectModel.js +3 -2
  306. package/src/sap/ui/model/json/JSONModel.js +6 -1
  307. package/src/sap/ui/model/message/MessageModel.js +1 -1
  308. package/src/sap/ui/model/odata/ODataAnnotations.js +1 -1
  309. package/src/sap/ui/model/odata/ODataMessageParser.js +1 -1
  310. package/src/sap/ui/model/odata/ODataMetaModel.js +191 -5
  311. package/src/sap/ui/model/odata/ODataMetadata.js +38 -4
  312. package/src/sap/ui/model/odata/ODataModel.js +1 -1
  313. package/src/sap/ui/model/odata/type/Boolean.js +1 -1
  314. package/src/sap/ui/model/odata/type/Byte.js +1 -1
  315. package/src/sap/ui/model/odata/type/Currency.js +1 -1
  316. package/src/sap/ui/model/odata/type/Date.js +1 -1
  317. package/src/sap/ui/model/odata/type/DateTime.js +1 -1
  318. package/src/sap/ui/model/odata/type/DateTimeBase.js +8 -1
  319. package/src/sap/ui/model/odata/type/DateTimeOffset.js +1 -1
  320. package/src/sap/ui/model/odata/type/DateTimeWithTimezone.js +1 -1
  321. package/src/sap/ui/model/odata/type/Decimal.js +1 -1
  322. package/src/sap/ui/model/odata/type/Double.js +1 -1
  323. package/src/sap/ui/model/odata/type/Guid.js +1 -1
  324. package/src/sap/ui/model/odata/type/Int.js +1 -1
  325. package/src/sap/ui/model/odata/type/Int16.js +1 -1
  326. package/src/sap/ui/model/odata/type/Int32.js +1 -1
  327. package/src/sap/ui/model/odata/type/Int64.js +1 -1
  328. package/src/sap/ui/model/odata/type/ODataType.js +3 -3
  329. package/src/sap/ui/model/odata/type/Raw.js +1 -1
  330. package/src/sap/ui/model/odata/type/SByte.js +1 -1
  331. package/src/sap/ui/model/odata/type/Single.js +1 -1
  332. package/src/sap/ui/model/odata/type/Stream.js +1 -1
  333. package/src/sap/ui/model/odata/type/String.js +1 -1
  334. package/src/sap/ui/model/odata/type/Time.js +1 -1
  335. package/src/sap/ui/model/odata/type/TimeOfDay.js +1 -1
  336. package/src/sap/ui/model/odata/type/Unit.js +1 -1
  337. package/src/sap/ui/model/odata/v2/Context.js +3 -2
  338. package/src/sap/ui/model/odata/v2/ODataAnnotations.js +1 -1
  339. package/src/sap/ui/model/odata/v2/ODataListBinding.js +14 -3
  340. package/src/sap/ui/model/odata/v2/ODataModel.js +46 -32
  341. package/src/sap/ui/model/odata/v2/ODataTreeBinding.js +1 -1
  342. package/src/sap/ui/model/odata/v4/AnnotationHelper.js +4 -4
  343. package/src/sap/ui/model/odata/v4/Context.js +39 -32
  344. package/src/sap/ui/model/odata/v4/ODataBinding.js +85 -52
  345. package/src/sap/ui/model/odata/v4/ODataContextBinding.js +23 -19
  346. package/src/sap/ui/model/odata/v4/ODataListBinding.js +139 -50
  347. package/src/sap/ui/model/odata/v4/ODataMetaModel.js +30 -36
  348. package/src/sap/ui/model/odata/v4/ODataModel.js +49 -44
  349. package/src/sap/ui/model/odata/v4/ODataParentBinding.js +72 -37
  350. package/src/sap/ui/model/odata/v4/ODataPropertyBinding.js +34 -29
  351. package/src/sap/ui/model/odata/v4/lib/_AggregationCache.js +95 -9
  352. package/src/sap/ui/model/odata/v4/lib/_AggregationHelper.js +25 -27
  353. package/src/sap/ui/model/odata/v4/lib/_Cache.js +95 -209
  354. package/src/sap/ui/model/odata/v4/lib/_Helper.js +168 -1
  355. package/src/sap/ui/model/odata/v4/lib/_MetadataRequestor.js +14 -5
  356. package/src/sap/ui/model/odata/v4/lib/_Requestor.js +34 -19
  357. package/src/sap/ui/model/odata/v4/lib/_V2MetadataConverter.js +4 -4
  358. package/src/sap/ui/model/odata/v4/lib/_V2Requestor.js +1 -1
  359. package/src/sap/ui/model/resource/ResourceModel.js +1 -1
  360. package/src/sap/ui/model/type/Boolean.js +1 -1
  361. package/src/sap/ui/model/type/Currency.js +1 -1
  362. package/src/sap/ui/model/type/Date.js +1 -1
  363. package/src/sap/ui/model/type/DateInterval.js +1 -1
  364. package/src/sap/ui/model/type/DateTime.js +1 -1
  365. package/src/sap/ui/model/type/DateTimeInterval.js +1 -1
  366. package/src/sap/ui/model/type/FileSize.js +1 -1
  367. package/src/sap/ui/model/type/Float.js +1 -1
  368. package/src/sap/ui/model/type/Integer.js +1 -1
  369. package/src/sap/ui/model/type/String.js +1 -1
  370. package/src/sap/ui/model/type/Time.js +1 -1
  371. package/src/sap/ui/model/type/TimeInterval.js +1 -1
  372. package/src/sap/ui/model/type/Unit.js +1 -1
  373. package/src/sap/ui/model/xml/XMLModel.js +1 -1
  374. package/src/sap/ui/qunit/utils/ControlIterator.js +1 -1
  375. package/src/sap/ui/qunit/utils/MemoryLeakCheck.js +1 -1
  376. package/src/sap/ui/test/Opa5.js +1 -1
  377. package/src/sap/ui/test/TestUtils.js +1 -1
  378. package/src/sap/ui/test/autowaiter/_autoWaiter.js +1 -1
  379. package/src/sap/ui/test/generic/TestBase.js +1 -1
  380. package/src/sap/ui/test/generic/_EnforceSemanticRendering.js +1 -3
  381. package/src/sap/ui/test/gherkin/simpleGherkinParser.js +10 -5
  382. package/src/sap/ui/test/matchers/LabelFor.js +1 -0
  383. package/src/sap/ui/test/matchers/_Visitor.js +6 -1
  384. package/src/sap/ui/test/starter/_setupAndStart.js +2 -5
  385. package/src/sap/ui/thirdparty/caja-html-sanitizer.js +111 -96
  386. package/src/sap/ui/thirdparty/qunit-2.js +9 -3
  387. package/src/sap/ui/util/ActivityDetection.js +7 -1
  388. package/src/sap/ui/util/Mobile.js +21 -14
  389. package/src/sap/ui/util/Storage.js +1 -1
  390. package/src/sap-ui-boot.js +23 -6
  391. package/src/ui5-boot.js +50 -0
  392. package/src/ui5loader-autoconfig.js +150 -75
  393. package/src/ui5loader.js +458 -514
  394. package/test/sap/ui/core/Device.js +1 -1
  395. package/test/sap/ui/core/FormatHelper.js +3 -2
  396. package/test/sap/ui/core/demokit/docuindex.json +6 -0
  397. package/test/sap/ui/core/demokit/sample/OpaAction/applicationUnderTest/view/Main.view.xml +1 -0
  398. package/test/sap/ui/core/demokit/sample/OpaBusyIndicator/OpaBusyIndicator.js +1 -1
  399. package/test/sap/ui/core/demokit/sample/OpaMatchers/OpaMatchers.js +2 -2
  400. package/test/sap/ui/core/demokit/sample/ViewTemplate/types/MIT.ODataTypes.html +9 -14
  401. package/test/sap/ui/core/demokit/sample/ViewTemplate/types/Opa.qunit.js +7 -0
  402. package/test/sap/ui/core/demokit/sample/ViewTemplate/types/Template.controller.js +2 -2
  403. package/test/sap/ui/core/demokit/sample/common/pages/Any.js +1 -1
  404. package/test/sap/ui/core/demokit/sample/odata/v2/AutoExpand/AutoExpand.view.xml +24 -5
  405. package/test/sap/ui/core/demokit/sample/odata/v4/Ancestry/Main.view.xml +24 -6
  406. package/test/sap/ui/core/demokit/sample/odata/v4/DataAggregation/DataAggregation.view.xml +20 -5
  407. package/test/sap/ui/core/demokit/sample/odata/v4/DataAggregation/Opa.qunit.js +2 -1
  408. package/test/sap/ui/core/demokit/sample/odata/v4/DataAggregation/tests/filter.js +2 -2
  409. package/test/sap/ui/core/demokit/sample/odata/v4/DeepCreate/Component.js +27 -0
  410. package/test/sap/ui/core/demokit/sample/odata/v4/DeepCreate/ListReport.controller.js +43 -0
  411. package/test/sap/ui/core/demokit/sample/odata/v4/DeepCreate/ListReport.view.xml +47 -0
  412. package/test/sap/ui/core/demokit/sample/odata/v4/DeepCreate/Main.controller.js +27 -0
  413. package/test/sap/ui/core/demokit/sample/odata/v4/DeepCreate/Main.view.xml +7 -0
  414. package/test/sap/ui/core/demokit/sample/odata/v4/DeepCreate/NotFound.view.xml +8 -0
  415. package/test/sap/ui/core/demokit/sample/odata/v4/DeepCreate/ObjectPage.controller.js +123 -0
  416. package/test/sap/ui/core/demokit/sample/odata/v4/DeepCreate/ObjectPage.view.xml +92 -0
  417. package/test/sap/ui/core/demokit/sample/odata/v4/DeepCreate/Opa.qunit.html +27 -0
  418. package/test/sap/ui/core/demokit/sample/odata/v4/DeepCreate/Opa.qunit.js +70 -0
  419. package/test/sap/ui/core/demokit/sample/odata/v4/DeepCreate/README.html +55 -0
  420. package/test/sap/ui/core/demokit/sample/odata/v4/DeepCreate/SandboxModel.js +56 -0
  421. package/test/sap/ui/core/demokit/sample/odata/v4/DeepCreate/data/POST-SalesOrderList.json +66 -0
  422. package/test/sap/ui/core/demokit/sample/odata/v4/DeepCreate/data/SalesOrderList('0500000000')-SO_2_SOITEM.json +57 -0
  423. package/test/sap/ui/core/demokit/sample/odata/v4/DeepCreate/data/SalesOrderList('0500000000').json +20 -0
  424. package/test/sap/ui/core/demokit/sample/odata/v4/DeepCreate/data/SalesOrderList('0500000001').json +9 -0
  425. package/test/sap/ui/core/demokit/sample/odata/v4/DeepCreate/data/SalesOrderList('0500000007')-SO_2_BP.json +12 -0
  426. package/test/sap/ui/core/demokit/sample/odata/v4/DeepCreate/data/SalesOrderList.json +62 -0
  427. package/test/sap/ui/core/demokit/sample/odata/v4/DeepCreate/data/VH_CurrencyCode.json +85 -0
  428. package/test/sap/ui/core/demokit/sample/odata/v4/DeepCreate/data/VH_CurrencyCode.xml +185 -0
  429. package/test/sap/ui/core/demokit/sample/odata/v4/DeepCreate/data/VH_ProductID.json +93 -0
  430. package/test/sap/ui/core/demokit/sample/odata/v4/DeepCreate/data/VH_ProductID.xml +262 -0
  431. package/test/sap/ui/core/demokit/sample/odata/v4/DeepCreate/data/metadata.xml +1779 -0
  432. package/test/sap/ui/core/demokit/sample/odata/v4/DeepCreate/manifest.json +134 -0
  433. package/test/sap/ui/core/demokit/sample/odata/v4/DeepCreate/pages/Main.js +119 -0
  434. package/test/sap/ui/core/demokit/sample/odata/v4/Draft/Opa.qunit.js +2 -1
  435. package/test/sap/ui/core/demokit/sample/odata/v4/FieldGroups/Opa.qunit.js +2 -1
  436. package/test/sap/ui/core/demokit/sample/odata/v4/FlatDataAggregation/FlatDataAggregation.view.xml +4 -1
  437. package/test/sap/ui/core/demokit/sample/odata/v4/FlexibleColumnLayout/Opa.qunit.js +2 -1
  438. package/test/sap/ui/core/demokit/sample/odata/v4/GridTable/GridTable.view.xml +12 -3
  439. package/test/sap/ui/core/demokit/sample/odata/v4/LateProperties/Main.controller.js +2 -1
  440. package/test/sap/ui/core/demokit/sample/odata/v4/LateProperties/Opa.OptimisticBatch.qunit.js +2 -1
  441. package/test/sap/ui/core/demokit/sample/odata/v4/LateProperties/Opa.qunit.js +2 -1
  442. package/test/sap/ui/core/demokit/sample/odata/v4/ListBinding/Opa.qunit.js +2 -1
  443. package/test/sap/ui/core/demokit/sample/odata/v4/ListBindingTemplate/Opa.qunit.js +2 -1
  444. package/test/sap/ui/core/demokit/sample/odata/v4/MultipleInlineCreationRowsGrid/Opa.qunit.js +2 -1
  445. package/test/sap/ui/core/demokit/sample/odata/v4/MultipleInlineCreationRowsGrid/pages/Main.js +0 -41
  446. package/test/sap/ui/core/demokit/sample/odata/v4/Products/Opa.qunit.js +2 -1
  447. package/test/sap/ui/core/demokit/sample/odata/v4/RecursiveHierarchy/RecursiveHierarchy.view.xml +26 -8
  448. package/test/sap/ui/core/demokit/sample/odata/v4/RecursiveHierarchy/data/metadata.xml +4 -0
  449. package/test/sap/ui/core/demokit/sample/odata/v4/SalesOrderTP100_V2/Opa.qunit.js +2 -1
  450. package/test/sap/ui/core/demokit/sample/odata/v4/SalesOrderTP100_V2/manifest.json +1 -1
  451. package/test/sap/ui/core/demokit/sample/odata/v4/SalesOrderTP100_V4/Opa.qunit.js +2 -1
  452. package/test/sap/ui/core/demokit/sample/odata/v4/SalesOrderTP100_V4/manifest.json +1 -1
  453. package/test/sap/ui/core/demokit/sample/odata/v4/SalesOrders/Main.controller.js +5 -17
  454. package/test/sap/ui/core/demokit/sample/odata/v4/SalesOrders/Opa.qunit.js +2 -1
  455. package/test/sap/ui/core/demokit/sample/odata/v4/SalesOrders/pages/Main.js +18 -0
  456. package/test/sap/ui/core/demokit/sample/odata/v4/SalesOrders/tests/Create.js +10 -6
  457. package/test/sap/ui/core/demokit/sample/odata/v4/SalesOrdersRTATest/Opa.qunit.js +2 -1
  458. package/test/sap/ui/core/demokit/sample/odata/v4/SalesOrdersRTATest/manifest.json +18 -0
  459. package/test/sap/ui/core/demokit/sample/odata/v4/SalesOrdersTemplate/Opa.qunit.js +2 -1
  460. package/test/sap/ui/core/demokit/sample/odata/v4/ServerDrivenPaging/Main.view.xml +3 -3
  461. package/test/sap/ui/core/demokit/sample/odata/v4/ServerDrivenPaging/Opa.qunit.js +2 -1
  462. package/test/sap/ui/core/demokit/sample/odata/v4/ServerDrivenPaging/pages/Main.js +4 -1
  463. package/test/sap/ui/core/demokit/sample/odata/v4/Sticky/Opa.qunit.js +2 -1
  464. package/test/sap/ui/core/demokit/tutorial/odatav4/06/webapp/controller/App.controller.js +1 -6
  465. package/test/sap/ui/core/demokit/tutorial/odatav4/06/webapp/localService/mockserver.js +1 -0
  466. package/test/sap/ui/core/demokit/tutorial/odatav4/07/webapp/controller/App.controller.js +1 -6
  467. package/test/sap/ui/core/demokit/tutorial/odatav4/07/webapp/localService/mockserver.js +1 -0
  468. package/test/sap/ui/core/demokit/tutorial/odatav4/08/webapp/controller/App.controller.js +1 -6
  469. package/test/sap/ui/core/demokit/tutorial/odatav4/08/webapp/localService/mockserver.js +1 -0
  470. package/test/sap/ui/core/demokit/tutorial/odatav4/08/webapp/test/integration/arrangements/Startup.js +1 -1
  471. package/test/sap/ui/core/demokit/tutorial/odatav4/09/webapp/controller/App.controller.js +1 -6
  472. package/test/sap/ui/core/demokit/tutorial/odatav4/09/webapp/localService/mockserver.js +1 -0
  473. package/test/sap/ui/core/demokit/tutorial/odatav4/10/webapp/controller/App.controller.js +3 -8
  474. package/test/sap/ui/core/demokit/tutorial/odatav4/10/webapp/localService/mockserver.js +1 -0
  475. package/test/sap/ui/core/demokit/tutorial/odatav4/11/webapp/controller/App.controller.js +3 -8
  476. package/test/sap/ui/core/demokit/tutorial/odatav4/11/webapp/localService/mockserver.js +1 -0
  477. package/test/sap/ui/core/demokit/tutorial/odatav4/11/webapp/test/integration/arrangements/Startup.js +1 -1
  478. package/test/sap/ui/core/qunit/CompositeBinding.qunit.js +25 -7
  479. package/test/sap/ui/core/qunit/ControlRenderer.qunit.js +86 -2
  480. package/test/sap/ui/core/qunit/DataState.qunit.js +2 -7
  481. package/test/sap/ui/core/qunit/HTML.qunit.js +31 -31
  482. package/test/sap/ui/core/qunit/IconPool.qunit.js +53 -4
  483. package/test/sap/ui/core/qunit/Lib.qunit.js +55 -2
  484. package/test/sap/ui/core/qunit/LocalBusyIndicator.qunit.js +22 -15
  485. package/test/sap/ui/core/qunit/ManagedObject.qunit.js +5 -3
  486. package/test/sap/ui/core/qunit/ManagedObjectModel.qunit.js +43 -5
  487. package/test/sap/ui/core/qunit/Object.qunit.js +4 -1
  488. package/test/sap/ui/core/qunit/ThemeManager.qunit.js +2 -2
  489. package/test/sap/ui/core/qunit/ThemeParameters.qunit.js +9 -3
  490. package/test/sap/ui/core/qunit/Theming.beforeBootstrap.qunit.js +13 -0
  491. package/test/sap/ui/core/qunit/Theming.qunit.js +247 -0
  492. package/test/sap/ui/core/qunit/analytics/AnalyticalBinding.qunit.js +510 -185
  493. package/test/sap/ui/core/qunit/analytics/AnalyticalTreeBindingAdapter.qunit.js +2 -7
  494. package/test/sap/ui/core/qunit/analytics/ODataModelAdapter.qunit.js +81 -16
  495. package/test/sap/ui/core/qunit/analytics/odata4analytics.qunit.js +20 -29
  496. package/test/sap/ui/core/qunit/app/MessageListBinding.qunit.js +2 -7
  497. package/test/sap/ui/core/qunit/base/Config_cascade.qunit.js +18 -1
  498. package/test/sap/ui/core/qunit/base/i18n/Formatting.qunit.html +24 -0
  499. package/test/sap/ui/core/qunit/base/i18n/Formatting.qunit.js +277 -0
  500. package/test/sap/ui/core/qunit/base/i18n/Localization.qunit.js +282 -0
  501. package/test/sap/ui/core/qunit/base/i18n/ResourceBundle.qunit.js +5 -6
  502. package/test/sap/ui/core/qunit/base/security/sanitizeHTML.qunit.js +17 -0
  503. package/test/sap/ui/core/qunit/bootstrap/BootstrapPreload.qunit.js +1 -2
  504. package/test/sap/ui/core/qunit/bootstrap/BootstrapWithCustomBootTask.beforeBootstrap.qunit.js +13 -12
  505. package/test/sap/ui/core/qunit/bootstrap/Configuration.main.qunit.js +11 -0
  506. package/test/sap/ui/core/qunit/bootstrap/Configuration.qunit.html +4 -3
  507. package/test/sap/ui/core/qunit/bootstrap/Configuration.qunit.js +451 -281
  508. package/test/sap/ui/core/qunit/bootstrap/ThemeVersion.qunit.js +19 -30
  509. package/test/sap/ui/core/qunit/component/Models.qunit.js +12 -30
  510. package/test/sap/ui/core/qunit/component/Models_unavoidablySync.qunit.js +8 -26
  511. package/test/sap/ui/core/qunit/component/testdata/async/lib2/library-preload.js +2 -2
  512. package/test/sap/ui/core/qunit/component/testdata/async/lib2/library-preload.json +1 -1
  513. package/test/sap/ui/core/qunit/component/testdata/async/lib2/library.js +2 -2
  514. package/test/sap/ui/core/qunit/component/testdata/async/lib3/library-preload.js +2 -2
  515. package/test/sap/ui/core/qunit/component/testdata/async/lib3/library-preload.json +1 -1
  516. package/test/sap/ui/core/qunit/component/testdata/async/lib3/library.js +2 -2
  517. package/test/sap/ui/core/qunit/component/testdata/async/lib4/library-preload.js +2 -2
  518. package/test/sap/ui/core/qunit/component/testdata/async/lib4/library-preload.json +1 -1
  519. package/test/sap/ui/core/qunit/component/testdata/async/lib4/library.js +2 -2
  520. package/test/sap/ui/core/qunit/component/testdata/async/manifestcomp/Component-preload.js +1 -1
  521. package/test/sap/ui/core/qunit/component/testdata/async/manifestcomp/Component.js +2 -2
  522. package/test/sap/ui/core/qunit/component/testdata/async/mycomp/Component-preload.js +1 -1
  523. package/test/sap/ui/core/qunit/component/testdata/async/mycomp/Component.js +2 -2
  524. package/test/sap/ui/core/qunit/component/testdata/async/mysubcomp/Component-preload.js +1 -1
  525. package/test/sap/ui/core/qunit/component/testdata/async/mysubcomp/Component.js +2 -3
  526. package/test/sap/ui/core/qunit/component/testdata/customizing/customer/ext/Component.js +0 -4
  527. package/test/sap/ui/core/qunit/component/testdata/customizing/customer/ext/sync/Component.js +2 -6
  528. package/test/sap/ui/core/qunit/component/testdata/customizing/customersub/Component.js +0 -4
  529. package/test/sap/ui/core/qunit/component/testdata/inherit/Component.js +2 -7
  530. package/test/sap/ui/core/qunit/component/testdata/inherit/parent/Component.js +2 -7
  531. package/test/sap/ui/core/qunit/component/testdata/inheritAsync/Component.js +2 -2
  532. package/test/sap/ui/core/qunit/component/testdata/inheritAsync/parentA/Component.js +2 -2
  533. package/test/sap/ui/core/qunit/component/testdata/inheritAsync/parentB/Component.js +2 -2
  534. package/test/sap/ui/core/qunit/component/testdata/inheritAsyncError/Component.js +2 -2
  535. package/test/sap/ui/core/qunit/component/testdata/inheritAsyncError/parentA/Component.js +2 -2
  536. package/test/sap/ui/core/qunit/component/testdata/inheritAsyncError/parentB/Component.js +2 -2
  537. package/test/sap/ui/core/qunit/component/testdata/other/Component.js +2 -7
  538. package/test/sap/ui/core/qunit/component/testdata/terminologies/Component.js +2 -2
  539. package/test/sap/ui/core/qunit/component/testdata/terminologies/component1/Component.js +2 -2
  540. package/test/sap/ui/core/qunit/component/testdata/terminologies/component2/Component.js +2 -2
  541. package/test/sap/ui/core/qunit/component/testdata/terminologies/component3/Component.js +2 -2
  542. package/test/sap/ui/core/qunit/component/testdata/terminologies/component5/Component.js +2 -2
  543. package/test/sap/ui/core/qunit/component/testdata/terminologies/reuse/Component.js +2 -3
  544. package/test/sap/ui/core/qunit/component/testdata/v1/Component.js +2 -7
  545. package/test/sap/ui/core/qunit/component/testdata/v1empty/Component.js +2 -7
  546. package/test/sap/ui/core/qunit/component/testdata/v1inline/Component.js +2 -5
  547. package/test/sap/ui/core/qunit/component/testdata/v1missing/Component.js +2 -7
  548. package/test/sap/ui/core/qunit/component/testdata/v2/Component.js +2 -5
  549. package/test/sap/ui/core/qunit/component/testdata/v2asyncRootView/Component.js +2 -5
  550. package/test/sap/ui/core/qunit/component/testdata/v2empty/Component.js +2 -9
  551. package/test/sap/ui/core/qunit/component/testdata/v2inline/Component.js +2 -5
  552. package/test/sap/ui/core/qunit/component/testdata/v2missing/Component.js +2 -9
  553. package/test/sap/ui/core/qunit/component/testdata/v2version/Component.js +2 -2
  554. package/test/sap/ui/core/qunit/dnd/DragDropInfo.qunit.js +1 -2
  555. package/test/sap/ui/core/qunit/generic/EnforceSemanticRendering.qunit.js +2 -2
  556. package/test/sap/ui/core/qunit/generic/SettersContextReturn.qunit.js +2 -2
  557. package/test/sap/ui/core/qunit/generic/legacy/ControlMemoryLeaks.qunit.js +2 -0
  558. package/test/sap/ui/core/qunit/generic/legacy/DuplicateIdCheck.qunit.js +2 -0
  559. package/test/sap/ui/core/qunit/generic/legacy/SettersContextReturn.qunit.js +2 -2
  560. package/test/sap/ui/core/qunit/gherkin/dataTableUtils.qunit.js +2 -2
  561. package/test/sap/ui/core/qunit/i18n/Locale.qunit.js +0 -52
  562. package/test/sap/ui/core/qunit/i18n/LocaleData.qunit.js +49 -14
  563. package/test/sap/ui/core/qunit/i18n/UI5Date.qunit.js +16 -4
  564. package/test/sap/ui/core/qunit/i18n/UniversalDate.qunit.js +74 -114
  565. package/test/sap/ui/core/qunit/i18n/UniversalDateUtils.qunit.js +34 -39
  566. package/test/sap/ui/core/qunit/i18n/testsuite.i18n.qunit.js +18 -0
  567. package/test/sap/ui/core/qunit/internal/1RingModels.qunit.js +1 -0
  568. package/test/sap/ui/core/qunit/internal/BeforePush.ODataV4.js +28 -0
  569. package/test/sap/ui/core/qunit/internal/BeforePush.html +1 -0
  570. package/test/sap/ui/core/qunit/internal/BeforePush.js +15 -0
  571. package/test/sap/ui/core/qunit/internal/performance/ExpressionParser.performance.qunit.js +1 -0
  572. package/test/sap/ui/core/qunit/json/JSONListBinding.qunit.js +2 -7
  573. package/test/sap/ui/core/qunit/json/JSONPropertyBinding.qunit.js +7 -12
  574. package/test/sap/ui/core/qunit/json/JSONTwoWay.qunit.js +3 -8
  575. package/test/sap/ui/core/qunit/loader/asyncMode.qunit.js +2 -2
  576. package/test/sap/ui/core/qunit/loader/asyncMode_unavoidablySync.qunit.js +1 -1
  577. package/test/sap/ui/core/qunit/loader/fixture/amd-with-export-true/module1.js +2 -2
  578. package/test/sap/ui/core/qunit/loader/testsuite.loader.qunit.js +0 -3
  579. package/test/sap/ui/core/qunit/messages/MessageMixin.qunit.js +2 -7
  580. package/test/sap/ui/core/qunit/messages/messagesUsage.qunit.js +1 -1
  581. package/test/sap/ui/core/qunit/model/Binding.qunit.js +36 -11
  582. package/test/sap/ui/core/qunit/model/ClientListBinding.qunit.js +2 -7
  583. package/test/sap/ui/core/qunit/model/ClientTreeBinding.qunit.js +2 -7
  584. package/test/sap/ui/core/qunit/model/CompositeDataState.qunit.js +2 -7
  585. package/test/sap/ui/core/qunit/model/Context.qunit.js +2 -7
  586. package/test/sap/ui/core/qunit/model/ContextBinding.qunit.js +2 -7
  587. package/test/sap/ui/core/qunit/model/FAR_CUSTOMER_LINE_ITEMS.metadata.xml +2 -0
  588. package/test/sap/ui/core/qunit/model/ListBinding.qunit.js +63 -6
  589. package/test/sap/ui/core/qunit/model/Model.qunit.js +2 -7
  590. package/test/sap/ui/core/qunit/model/PropertyBinding.qunit.js +40 -0
  591. package/test/sap/ui/core/qunit/model/TreeBinding.qunit.js +2 -7
  592. package/test/sap/ui/core/qunit/model/TreeBindingAdapter.qunit.js +2 -7
  593. package/test/sap/ui/core/qunit/mvc/XMLTemplateProcessorRequireXML.qunit.js +51 -0
  594. package/test/sap/ui/core/qunit/mvc/XMLView.qunit.js +9 -8
  595. package/test/sap/ui/core/qunit/mvc/extensions/Controllerextensions.qunit.js +4 -4
  596. package/test/sap/ui/core/qunit/mvc/extensions/Controllerextensions_legacy.qunit.js +4 -4
  597. package/test/sap/ui/core/qunit/mvc/testdata/Async.view.xml +1 -1
  598. package/test/sap/ui/core/qunit/mvc/testdata/AsyncTypedView.js +5 -1
  599. package/test/sap/ui/core/qunit/odata/AnnotationParserNoFakeService.qunit.js +2 -7
  600. package/test/sap/ui/core/qunit/odata/ODataMessageParser.qunit.js +1 -1
  601. package/test/sap/ui/core/qunit/odata/ODataMessageParserNoFakeService.qunit.js +2 -8
  602. package/test/sap/ui/core/qunit/odata/ODataMetadataNoFakeService.qunit.js +68 -9
  603. package/test/sap/ui/core/qunit/odata/type/DateTimeBase.qunit.js +24 -0
  604. package/test/sap/ui/core/qunit/odata/v2/Context.qunit.js +2 -7
  605. package/test/sap/ui/core/qunit/odata/v2/ODataContextBindingNoFakeService.qunit.js +2 -7
  606. package/test/sap/ui/core/qunit/odata/v2/ODataListBindingNoFakeService.qunit.js +31 -17
  607. package/test/sap/ui/core/qunit/odata/v2/ODataModel.integration.qunit.js +260 -56
  608. package/test/sap/ui/core/qunit/odata/v2/ODataModelNoFakeService.qunit.js +70 -15
  609. package/test/sap/ui/core/qunit/odata/v2/ODataPropertyBindingNoFakeService.qunit.js +2 -7
  610. package/test/sap/ui/core/qunit/odata/v2/ODataTreeBindingFlatNoFakeService.qunit.js +4 -9
  611. package/test/sap/ui/core/qunit/odata/v2/ODataTreeBindingNoFakeService.qunit.js +2 -7
  612. package/test/sap/ui/core/qunit/odata/v2/V2ODataModel.qunit.js +1 -1
  613. package/test/sap/ui/core/qunit/odata/v2/_CreatedContextsCache.qunit.js +2 -7
  614. package/test/sap/ui/core/qunit/odata/v4/AnnotationHelper.qunit.js +1 -1
  615. package/test/sap/ui/core/qunit/odata/v4/Context.qunit.js +55 -22
  616. package/test/sap/ui/core/qunit/odata/v4/ODataBinding.qunit.js +184 -151
  617. package/test/sap/ui/core/qunit/odata/v4/ODataContextBinding.qunit.js +60 -30
  618. package/test/sap/ui/core/qunit/odata/v4/ODataListBinding.qunit.js +305 -69
  619. package/test/sap/ui/core/qunit/odata/v4/ODataMetaModel.qunit.js +20 -69
  620. package/test/sap/ui/core/qunit/odata/v4/ODataModel.integration.qunit.js +1282 -255
  621. package/test/sap/ui/core/qunit/odata/v4/ODataModel.qunit.js +90 -61
  622. package/test/sap/ui/core/qunit/odata/v4/ODataModel.realOData.qunit.js +0 -3
  623. package/test/sap/ui/core/qunit/odata/v4/ODataParentBinding.qunit.js +283 -170
  624. package/test/sap/ui/core/qunit/odata/v4/ODataPropertyBinding.qunit.js +103 -78
  625. package/test/sap/ui/core/qunit/odata/v4/data/metadata.json +2 -1
  626. package/test/sap/ui/core/qunit/odata/v4/data/metadata.xml +4 -0
  627. package/test/sap/ui/core/qunit/odata/v4/data/metadata_special_cases.xml +2 -0
  628. package/test/sap/ui/core/qunit/odata/v4/lib/_AggregationCache.qunit.js +151 -1
  629. package/test/sap/ui/core/qunit/odata/v4/lib/_AggregationHelper.qunit.js +24 -11
  630. package/test/sap/ui/core/qunit/odata/v4/lib/_Cache.qunit.js +279 -458
  631. package/test/sap/ui/core/qunit/odata/v4/lib/_Helper.qunit.js +204 -3
  632. package/test/sap/ui/core/qunit/odata/v4/lib/_MetadataRequestor.qunit.js +7 -3
  633. package/test/sap/ui/core/qunit/odata/v4/lib/_Requestor.qunit.js +145 -26
  634. package/test/sap/ui/core/qunit/odata/v4/testsuite.odatav4.qunit.js +4 -0
  635. package/test/sap/ui/core/qunit/opa/_LogCollector.qunit.js +1 -1
  636. package/test/sap/ui/core/qunit/opa/matchers/LabelFor.qunit.js +4 -2
  637. package/test/sap/ui/core/qunit/opa/matchers/_Busy.qunit.js +129 -2
  638. package/test/sap/ui/core/qunit/opa/matchers/_Editable.qunit.js +5 -1
  639. package/test/sap/ui/core/qunit/performance/trace/FESR.qunit.js +5 -0
  640. package/test/sap/ui/core/qunit/resource/ResourceModel.qunit.js +17 -37
  641. package/test/sap/ui/core/qunit/routing/HashChanger.qunit.js +1 -6
  642. package/test/sap/ui/core/qunit/routing/RouterHashChanger.qunit.js +1 -10
  643. package/test/sap/ui/core/qunit/routing/async/Router.qunit.js +1 -22
  644. package/test/sap/ui/core/qunit/routing/async/Target.qunit.js +1 -4
  645. package/test/sap/ui/core/qunit/routing/fixture/Async1.view.xml +1 -1
  646. package/test/sap/ui/core/qunit/rule/model/modelSupport.qunit.js +34 -1
  647. package/test/sap/ui/core/qunit/testdata/fastnavigation/view/FastNavigation.view.xml +2 -2
  648. package/test/sap/ui/core/qunit/testdata/libraries/resourcebundle/lib1/i18n.properties +1 -0
  649. package/test/sap/ui/core/qunit/testdata/libraries/resourcebundle/lib1/library.js +10 -0
  650. package/test/sap/ui/core/qunit/testdata/libraries/resourcebundle/lib1/manifest.json +10 -0
  651. package/test/sap/ui/core/qunit/testdata/libraries/resourcebundle/lib2/library.js +10 -0
  652. package/test/sap/ui/core/qunit/testdata/libraries/resourcebundle/lib2/messagebundle.properties +1 -0
  653. package/test/sap/ui/core/qunit/testdata/xml-require/helper/Formatter.js +7 -4
  654. package/test/sap/ui/core/qunit/testdata/xml-require/view/XMLTemplateProcessorAsync_require_in_html.view.xml +36 -0
  655. package/test/sap/ui/core/qunit/testsuites/testsuite.databinding.qunit.js +3 -0
  656. package/test/sap/ui/core/qunit/testsuites/testsuite.theming.qunit.js +29 -0
  657. package/test/sap/ui/core/qunit/types/DateFormatTimezones.qunit.js +1381 -1570
  658. package/test/sap/ui/core/qunit/types/SimpleType.qunit.js +16 -2
  659. package/test/sap/ui/core/qunit/types/Types.qunit.js +2 -37
  660. package/test/sap/ui/core/qunit/types/testsuite.types.qunit.js +1 -1
  661. package/test/sap/ui/core/qunit/util/Popup.qunit.js +7 -11
  662. package/test/sap/ui/core/qunit/util/SyncPromise.qunit.js +4 -1
  663. package/test/sap/ui/core/qunit/util/XMLPreprocessor.qunit.js +3 -1
  664. package/test/sap/ui/core/qunit/util/jQuery.sap.Version.qunit.js +3 -0
  665. package/test/sap/ui/core/qunit/util/jQuery.sap.measure.qunit.js +16 -11
  666. package/test/sap/ui/core/qunit/util/reflection/BaseTreeModifier.qunit.js +1 -1
  667. package/test/sap/ui/core/qunit/xml/XMLListBinding.qunit.js +1 -3
  668. package/test/sap/ui/core/qunit/xml/XMLModel.qunit.js +4 -14
  669. package/test/sap/ui/core/qunit/xml/XMLPropertyBinding.qunit.js +7 -11
  670. package/test/sap/ui/core/qunit/xml/XMLTreeBinding.qunit.js +1 -1
  671. package/test/sap/ui/core/qunit/xml/XMLTwoWay.qunit.js +3 -7
  672. package/test/sap/ui/core/relnotes/changes-1.115.json +1 -37
  673. package/test/sap/ui/core/relnotes/changes-1.116.json +71 -0
  674. package/test/sap/ui/core/relnotes/changes-1.117.json +127 -0
  675. package/test/sap/ui/core/visual/images/ContextMenuSupport/windows/1600x1200/chrome/horizon/ltr/cozy/firstItem-contextMenu.ref.lnk +1 -1
  676. package/test/sap/ui/core/visual/images/ContextMenuSupport/windows/1600x1200/chrome/horizon/ltr/cozy/initial.ref.lnk +1 -1
  677. package/test/sap/ui/core/visual/images/ContextMenuSupport/windows/1600x1200/chrome/horizon/ltr/cozy/lastItem-contextMenu.ref.lnk +1 -1
  678. package/test/sap/ui/core/visual/images/ContextMenuSupport/windows/1600x1200/chrome/horizon/ltr/cozy/leftDownBtn-contextMenu.ref.lnk +1 -1
  679. package/test/sap/ui/core/visual/images/ContextMenuSupport/windows/1600x1200/chrome/horizon/ltr/cozy/myButtonSample-contextMenu.ref.lnk +1 -1
  680. package/test/sap/ui/core/visual/images/ContextMenuSupport/windows/1600x1200/chrome/horizon/ltr/cozy/rightDownBtn-contextMenu.ref.lnk +1 -1
  681. package/test/sap/ui/core/visual/images/HyphenationPlayground/windows/1600x1200/chrome/horizon/ltr/cozy/19_thirdParty_language_sl.ref.lnk +1 -1
  682. package/test/testsuite/js/samples.js +2 -0
  683. package/ui5.yaml +166 -1
  684. package/src/sap/ui/core/util/MockServerAnnotationsHandler.js +0 -45
  685. /package/test/sap/ui/core/qunit/bootstrap/{GlobalConfigurationSettings.js → Configuration.beforeBootstrap.qunit.js} +0 -0
@@ -64,7 +64,7 @@ sap.ui.define([
64
64
  * @hideconstructor
65
65
  * @public
66
66
  * @since 1.93.0
67
- * @version 1.115.1
67
+ * @version 1.117.0
68
68
  */
69
69
  var Context = BaseContext.extend("sap.ui.model.odata.v2.Context", {
70
70
  constructor : function (oModel, sPath, sDeepPath, oCreatePromise, bInactive,
@@ -217,7 +217,8 @@ sap.ui.define([
217
217
  * see {@link #setRefreshAfterChange}. If given, this overrules the model-wide
218
218
  * <code>refreshAfterChange</code> flag for this operation only.
219
219
  * @returns {Promise<undefined>} A promise resolving with <code>undefined</code> in case of
220
- * successful deletion or rejecting with an error in case the deletion failed
220
+ * successful deletion or rejecting with an error in case the deletion failed. If the <code>DELETE</code> request
221
+ * has been aborted, the error has an <code>aborted</code> flag set to <code>true</code>.
221
222
  * @throws {Error}
222
223
  * If the given parameter map contains any other parameter than those documented above in case
223
224
  * of a persistent context
@@ -36,7 +36,7 @@ sap.ui.define([
36
36
  * @class Annotation loader for OData V2 services
37
37
  *
38
38
  * @author SAP SE
39
- * @version 1.115.1
39
+ * @version 1.117.0
40
40
  *
41
41
  * @public
42
42
  * @since 1.37.0
@@ -1935,8 +1935,14 @@ sap.ui.define([
1935
1935
  * batch request
1936
1936
  * @param {boolean} [mParameters.inactive]
1937
1937
  * Whether the created context is inactive. An inactive context will only be sent to the
1938
- * server after the first property update. From then on it behaves like any other created
1939
- * context.
1938
+ * server when it has become active after a property update. From then on it behaves like any
1939
+ * other created context.<br>
1940
+ * When a property update happens on an inactive context, the
1941
+ * {@link sap.ui.model.odata.v2.ODataListBinding#event:createActivate 'createActivate'} event
1942
+ * is fired, and the context becomes active, unless the event handler prevents this. While
1943
+ * inactive, the context does not count as a
1944
+ * {@link sap.ui.model.odata.v2.ODataModel#hasPendingChanges pending change} and does not
1945
+ * contribute to the {@link #getCount count}.
1940
1946
  * @param {function} [mParameters.success]
1941
1947
  * The success callback function
1942
1948
  * @returns {sap.ui.model.odata.v2.Context}
@@ -2225,15 +2231,20 @@ sap.ui.define([
2225
2231
  * Set of entity types that are affected by side-effects requests
2226
2232
  * @param {string} [sGroupId]
2227
2233
  * The ID of a request group
2234
+ * @returns {boolean}
2235
+ * Whether the list binding is affected by the side effect
2228
2236
  *
2229
2237
  * @private
2230
2238
  */
2231
2239
  ODataListBinding.prototype._refreshForSideEffects = function (oAffectedEntityTypes, sGroupId) {
2232
- if (!this._isExpandedListUsable() && oAffectedEntityTypes.has(this.oEntityType)) {
2240
+ var bIsAffected = !this._hasTransientParentContext() && oAffectedEntityTypes.has(this.oEntityType);
2241
+
2242
+ if (bIsAffected && !this._isExpandedListUsable()) {
2233
2243
  this.sRefreshGroupId = sGroupId;
2234
2244
  this._refresh();
2235
2245
  this.sRefreshGroupId = undefined;
2236
2246
  }
2247
+ return bIsAffected;
2237
2248
  };
2238
2249
 
2239
2250
  /**
@@ -213,7 +213,7 @@ sap.ui.define([
213
213
  * This model is not prepared to be inherited from.
214
214
  *
215
215
  * @author SAP SE
216
- * @version 1.115.1
216
+ * @version 1.117.0
217
217
  *
218
218
  * @public
219
219
  * @alias sap.ui.model.odata.v2.ODataModel
@@ -3893,7 +3893,7 @@ sap.ui.define([
3893
3893
  * Abort internal requests such as created via two-way binding changes or created entries.
3894
3894
  *
3895
3895
  * @param {string} sGroupId ID of the group that should be searched for the request
3896
- * @param {string} [mParameters]
3896
+ * @param {object} [mParameters]
3897
3897
  * Map which contains the following parameter properties:
3898
3898
  * @param {string} [mParameters.requestKey] Request key used to find the requests, which needs to aborted.
3899
3899
  * @param {string} [mParameters.path] Path used to find the requests, which needs to be aborted.
@@ -5092,26 +5092,27 @@ sap.ui.define([
5092
5092
  * supported and may not work. These should be done separately and directly on the corresponding entry.
5093
5093
  *
5094
5094
  * @param {string} sPath A string containing the path to the data that should be updated.
5095
- * The path is concatenated to the sServiceUrl which was specified
5096
- * in the model constructor.
5095
+ * The path is concatenated to the sServiceUrl which was specified
5096
+ * in the model constructor.
5097
5097
  * @param {object} oData Data of the entry that should be updated.
5098
5098
  * @param {object} [mParameters] Optional, can contain the following attributes:
5099
5099
  * @param {object} [mParameters.context] If specified the sPath has to be is relative to the path given with the context.
5100
5100
  * @param {function} [mParameters.success] A callback function which is called when the data has been successfully updated.
5101
5101
  * @param {function} [mParameters.error] A callback function which is called when the request failed.
5102
- * The handler can have the parameter <code>oError</code> which contains additional error information.
5102
+ * The handler can have the parameter <code>oError</code> which contains additional error information.
5103
+ * If the <code>PUT/MERGE</code> request has been aborted, the error has an <code>aborted</code> flag set to
5104
+ * <code>true</code>.
5103
5105
  * @param {string} [mParameters.eTag] If specified, the <code>If-Match</code> header will be set to this ETag.
5104
- * Caution: This feature in not officially supported as using asynchronous requests can lead
5105
- * to data inconsistencies. If you decide to use this feature nevertheless, you have to make
5106
- * sure that the request is completed before the data is processed any further.
5106
+ * Caution: This feature in not officially supported as using asynchronous requests can lead
5107
+ * to data inconsistencies. If you decide to use this feature nevertheless, you have to make
5108
+ * sure that the request is completed before the data is processed any further.
5107
5109
  * @param {Object<string,string>} [mParameters.urlParameters] A map containing the parameters that will be passed as query strings
5108
5110
  * @param {Object<string,string>} [mParameters.headers] A map of headers for this request
5109
5111
  * @param {string} [mParameters.batchGroupId] Deprecated - use <code>groupId</code> instead
5110
5112
  * @param {string} [mParameters.groupId] ID of a request group; requests belonging to the same group will be bundled in one batch request
5111
5113
  * @param {string} [mParameters.changeSetId] ID of the <code>ChangeSet</code> that this request should belong to
5112
- * @param {boolean} [mParameters.refreshAfterChange] Since 1.46; defines whether to update all bindings after submitting this change operation. See {@link #setRefreshAfterChange}
5113
- If given, this overrules the model-wide <code>refreshAfterChange</code> flag for this operation only.
5114
- *
5114
+ * @param {boolean} [mParameters.refreshAfterChange] Since 1.46; defines whether to update all bindings after submitting this change operation.
5115
+ * See {@link #setRefreshAfterChange}. If given, this overrules the model-wide <code>refreshAfterChange</code> flag for this operation only.
5115
5116
  * @return {object} An object which has an <code>abort</code> function to abort the current request.
5116
5117
  *
5117
5118
  * @public
@@ -5177,24 +5178,26 @@ sap.ui.define([
5177
5178
  * {@link #createEntry} or {@link sap.ui.model.odata.v2.ODataListBinding#create} instead.
5178
5179
  *
5179
5180
  * @param {string} sPath A string containing the path to the collection where an entry
5180
- * should be created. The path is concatenated to the service URL
5181
- * which was specified in the model constructor.
5181
+ * should be created. The path is concatenated to the service URL
5182
+ * which was specified in the model constructor.
5182
5183
  * @param {object} oData Data of the entry that should be created.
5183
5184
  * @param {object} [mParameters] Optional parameter map containing any of the following properties:
5184
5185
  * @param {object} [mParameters.context] If specified , <code>sPath</code> has to be relative to the path given with the context.
5185
5186
  * @param {function} [mParameters.success] A callback function which is called when the data has
5186
- * been successfully retrieved. The handler can have the
5187
- * following parameters: <code>oData</code> and <code>response</code>. The <code>oData</code> parameter contains the data of the newly created entry if it is provided by the backend.
5188
- * The <code>response</code> parameter contains information about the response of the request.
5187
+ * been successfully retrieved. The handler can have the
5188
+ * following parameters: <code>oData</code> and <code>response</code>. The <code>oData</code> parameter contains the data of the newly created entry if it is provided by the backend.
5189
+ * The <code>response</code> parameter contains information about the response of the request.
5189
5190
  * @param {function} [mParameters.error] A callback function which is called when the request failed.
5190
- * The handler can have the parameter <code>oError</code> which contains additional error information.
5191
+ * The handler can have the parameter <code>oError</code> which contains additional error information.
5192
+ * If the <code>POST</code> request has been aborted, the error has an <code>aborted</code> flag set to
5193
+ * <code>true</code>.
5191
5194
  * @param {Object<string,string>} [mParameters.urlParameters] A map containing the parameters that will be passed as query strings
5192
5195
  * @param {Object<string,string>} [mParameters.headers] A map of headers for this request
5193
5196
  * @param {string} [mParameters.batchGroupId] Deprecated - use <code>groupId</code> instead
5194
5197
  * @param {string} [mParameters.groupId] ID of a request group; requests belonging to the same group will be bundled in one batch request
5195
5198
  * @param {string} [mParameters.changeSetId] ID of the <code>ChangeSet</code> that this request should belong to
5196
- * @param {boolean} [mParameters.refreshAfterChange] Since 1.46; defines whether to update all bindings after submitting this change operation. See {@link #setRefreshAfterChange}
5197
- If given, this overrules the model-wide <code>refreshAfterChange</code> flag for this operation only.
5199
+ * @param {boolean} [mParameters.refreshAfterChange] Since 1.46; defines whether to update all bindings after submitting this change operation.
5200
+ * See {@link #setRefreshAfterChange}. If given, this overrules the model-wide <code>refreshAfterChange</code> flag for this operation only.
5198
5201
  * @return {object} An object which has an <code>abort</code> function to abort the current request.
5199
5202
  *
5200
5203
  * @public
@@ -5270,6 +5273,8 @@ sap.ui.define([
5270
5273
  * @param {function} [mParameters.error]
5271
5274
  * A callback function which is called when the request failed. The handler can have the
5272
5275
  * parameter: <code>oError</code> which contains additional error information.
5276
+ * If the <code>DELETE</code> request has been aborted, the error has an <code>aborted</code> flag set to
5277
+ * <code>true</code>.
5273
5278
  * @param {string} [mParameters.eTag]
5274
5279
  * If specified, the <code>If-Match</code> header will be set to this ETag.
5275
5280
  * @param {Object<string,string>} [mParameters.urlParameters]
@@ -5407,6 +5412,7 @@ sap.ui.define([
5407
5412
  * @param {function} [mParameters.error]
5408
5413
  * A callback function which is called when the request failed. The handler can have the
5409
5414
  * parameter: <code>oError</code> which contains additional error information.
5415
+ * If the request has been aborted, the error has an <code>aborted</code> flag set to <code>true</code>.
5410
5416
  * @param {string} [mParameters.eTag]
5411
5417
  * If the function import changes an entity, the ETag for this entity can be passed with this
5412
5418
  * parameter
@@ -5745,16 +5751,18 @@ sap.ui.define([
5745
5751
  * ignored, use <code>mParameters.urlParameters</code> instead
5746
5752
  * @param {object} [mParameters] Optional parameter map containing any of the following properties:
5747
5753
  * @param {object} [mParameters.context] If specified, <code>sPath</code> has to be relative to the path
5748
- * given with the context.
5754
+ * given with the context.
5749
5755
  * @param {Object<string,string>} [mParameters.urlParameters] A map containing the parameters that will be passed as query strings
5750
5756
  * @param {sap.ui.model.Filter[]} [mParameters.filters] An array of filters to be included in the request URL
5751
5757
  * @param {sap.ui.model.Sorter[]} [mParameters.sorters] An array of sorters to be included in the request URL
5752
5758
  * @param {function} [mParameters.success] A callback function which is called when the data has
5753
- * been successfully retrieved. The handler can have the
5754
- * following parameters: <code>oData</code> and <code>response</code>. The <code>oData</code> parameter contains the data of the retrieved data.
5755
- * The <code>response</code> parameter contains further information about the response of the request.
5759
+ * been successfully retrieved. The handler can have the
5760
+ * following parameters: <code>oData</code> and <code>response</code>. The <code>oData</code> parameter contains the data of the retrieved data.
5761
+ * The <code>response</code> parameter contains further information about the response of the request.
5756
5762
  * @param {function} [mParameters.error] A callback function which is called when the request
5757
- * failed. The handler can have the parameter: <code>oError</code> which contains additional error information.
5763
+ * failed. The handler can have the parameter: <code>oError</code> which contains additional error information.
5764
+ * If the <code>GET</code> request has been aborted, the error has an <code>aborted</code> flag set to
5765
+ * <code>true</code>.
5758
5766
  * @param {string} [mParameters.batchGroupId] Deprecated - use <code>groupId</code> instead
5759
5767
  * @param {string} [mParameters.groupId] ID of a request group; requests belonging to the same group will be bundled in one batch request
5760
5768
  * @param {boolean} [mParameters.updateAggregatedMessages]
@@ -5889,10 +5897,10 @@ sap.ui.define([
5889
5897
  * @param {Object<string,string>} [mParameters.urlParameters]
5890
5898
  * URL parameters for the side-effects request as a map from a URL parameter name to its
5891
5899
  * string value including <code>$expand</code> and <code>$select</code>
5892
- * @returns {Promise}
5893
- * The promise on the outcome of the side-effects request; resolves with
5894
- * <code>undefined</code> if the request is processed successfully, or rejects with an error
5895
- * object if the request fails
5900
+ * @returns {Promise<Array<sap.ui.model.odata.v2.ODataListBinding>>}
5901
+ * The promise on the outcome of the side-effects request; resolves with the array of affected
5902
+ * list bindings if the request is processed successfully, or rejects with an error object if
5903
+ * the request fails
5896
5904
  * @throws {Error}
5897
5905
  * If the given parameters map contains any other parameter than those documented above
5898
5906
  *
@@ -5913,6 +5921,7 @@ sap.ui.define([
5913
5921
 
5914
5922
  return new Promise(function (resolve, reject) {
5915
5923
  var oAffectedEntityTypes = new Set(),
5924
+ aAffectedListBindings = [],
5916
5925
  sExpands = mParameters.urlParameters && mParameters.urlParameters["$expand"];
5917
5926
 
5918
5927
  that._read("", {
@@ -5921,7 +5930,7 @@ sap.ui.define([
5921
5930
  error : reject,
5922
5931
  groupId : mParameters.groupId,
5923
5932
  success : function (/*oData, oResponse*/) {
5924
- resolve();
5933
+ resolve(aAffectedListBindings);
5925
5934
  },
5926
5935
  updateAggregatedMessages : true,
5927
5936
  urlParameters : mParameters.urlParameters
@@ -5936,7 +5945,9 @@ sap.ui.define([
5936
5945
  });
5937
5946
  that.getBindings().forEach(function (oBinding) {
5938
5947
  if (oBinding.isA("sap.ui.model.odata.v2.ODataListBinding")) {
5939
- oBinding._refreshForSideEffects(oAffectedEntityTypes, mParameters.groupId);
5948
+ if (oBinding._refreshForSideEffects(oAffectedEntityTypes, mParameters.groupId)) {
5949
+ aAffectedListBindings.push(oBinding);
5950
+ }
5940
5951
  }
5941
5952
  });
5942
5953
  }
@@ -6180,7 +6191,10 @@ sap.ui.define([
6180
6191
  * and change sets of the actual batch request which was sent to the backend.
6181
6192
  * The changeResponses contain the actual response of that change set in the <code>response</code> property.
6182
6193
  * For each change set there is also a <code>__changeResponse</code> property.
6183
- * @param {function} [mParameters.error] A callback function which is called when the request failed. The handler can have the parameter: <code>oError</code> which contains additional error information
6194
+ * @param {function} [mParameters.error] A callback function which is called when the request failed.
6195
+ * The handler can have the parameter: <code>oError</code> which contains additional error information.
6196
+ * If all contained requests have been aborted, the error has an <code>aborted</code> flag set to
6197
+ * <code>true</code>.
6184
6198
  * @param {string} [mParameters.batchGroupId]
6185
6199
  * <b>Deprecated</b>, use <code>groupId</code> instead
6186
6200
  * @param {boolean} [mParameters.merge]
@@ -6442,7 +6456,7 @@ sap.ui.define([
6442
6456
  * @param {array} [aPath]
6443
6457
  * Paths to be reset; if no array is passed, all changes are reset
6444
6458
  * @param {boolean} [bAll=false]
6445
- * Whether also deferred requests are taken into account
6459
+ * Whether also deferred requests are taken into account so that they are aborted
6446
6460
  * @param {boolean} [bDeleteCreatedEntities=false]
6447
6461
  * Whether to delete the entities created via {@link #createEntry} or {@link #callFunction};
6448
6462
  * since 1.95.0
@@ -93,7 +93,7 @@ sap.ui.define([
93
93
  * @extends sap.ui.model.TreeBinding
94
94
  * @hideconstructor
95
95
  * @public
96
- * @version 1.115.1
96
+ * @version 1.117.0
97
97
  */
98
98
  var ODataTreeBinding = TreeBinding.extend("sap.ui.model.odata.v2.ODataTreeBinding", /** @lends sap.ui.model.odata.v2.ODataTreeBinding.prototype */ {
99
99
 
@@ -248,7 +248,7 @@ sap.ui.define([
248
248
  * "14.5.12 Expression edm:Path" and "14.5.13 Expression edm:PropertyPath" where it
249
249
  * might be used as a first segment (since 1.71.0). This does not apply to annotations
250
250
  * on a parameter (since 1.76.0).
251
- * @returns {string|Promise}
251
+ * @returns {string|Promise<string>}
252
252
  * A data binding, or a fixed text, or a sequence thereof, or a <code>Promise</code>
253
253
  * resolving with that string, for example if not all type information is already
254
254
  * available
@@ -434,7 +434,7 @@ sap.ui.define([
434
434
  * @param {string} oDetails.schemaChildName
435
435
  * The qualified name of the schema child where the computed annotation has been
436
436
  * found, for example "name.space.EntityType"
437
- * @returns {sap.ui.model.odata.v4.ValueListType|Promise}
437
+ * @returns {sap.ui.model.odata.v4.ValueListType|Promise<sap.ui.model.odata.v4.ValueListType>}
438
438
  * The type of the value list or a <code>Promise</code> resolving with the type of the
439
439
  * value list or rejected, if the property cannot be found in the metadata
440
440
  * @throws {Error}
@@ -488,7 +488,7 @@ sap.ui.define([
488
488
  * @param {string} oDetails.schemaChildName
489
489
  * The qualified name of the schema child where the computed annotation has been
490
490
  * found, for example "name.space.EntityType"
491
- * @returns {boolean|Promise}
491
+ * @returns {boolean|Promise<boolean>}
492
492
  * <code>true</code> if the given path ends with "$count" or with a multi-valued
493
493
  * structural or navigation property, <code>false</code> otherwise. If
494
494
  * <code>oDetails.$$valueAsPromise</code> is <code>true</code> a <code>Promise</code>
@@ -548,7 +548,7 @@ sap.ui.define([
548
548
  * @param {sap.ui.model.Context} oDetails.context
549
549
  * Points to the given raw value, that is
550
550
  * <code>oDetails.context.getProperty("") === vRawValue</code>
551
- * @returns {string|Promise|undefined}
551
+ * @returns {string|Promise<string|undefined>|undefined}
552
552
  * A data binding or a fixed text or a sequence thereof or <code>undefined</code>. If
553
553
  * <code>oDetails.$$valueAsPromise</code> is <code>true</code> a <code>Promise</code>
554
554
  * may be returned resolving with the value for the label.
@@ -42,7 +42,7 @@ sap.ui.define([
42
42
  * @hideconstructor
43
43
  * @public
44
44
  * @since 1.39.0
45
- * @version 1.115.1
45
+ * @version 1.117.0
46
46
  */
47
47
  Context = BaseContext.extend("sap.ui.model.odata.v4.Context", {
48
48
  constructor : constructor
@@ -133,16 +133,18 @@ sap.ui.define([
133
133
  * @private
134
134
  */
135
135
  Context.prototype.checkUpdate = function () {
136
- this.oModel.getDependentBindings(this).forEach(function (oDependentBinding) {
137
- oDependentBinding.checkUpdate();
138
- });
136
+ if (this.oModel) { // might have already been destroyed
137
+ this.oModel.getDependentBindings(this).forEach(function (oDependentBinding) {
138
+ oDependentBinding.checkUpdate();
139
+ });
140
+ }
139
141
  };
140
142
 
141
143
  /**
142
144
  * Updates all dependent bindings of this context.
143
145
  *
144
146
  * @returns {sap.ui.base.SyncPromise}
145
- * A promise resolving without a defined result when the update is finished
147
+ * A promise which is resolved without a defined result when the update is finished
146
148
  * @private
147
149
  */
148
150
  Context.prototype.checkUpdateInternal = function () {
@@ -196,10 +198,11 @@ sap.ui.define([
196
198
  * details.
197
199
  *
198
200
  * @returns {Promise<void>|undefined}
199
- * A promise that is resolved without data when the entity represented by this context has
200
- * been created in the back end. It is rejected with an <code>Error</code> instance where
201
- * <code>oError.canceled === true</code> if the transient entity is deleted before it is
202
- * created in the back end, for example via {@link sap.ui.model.odata.v4.Context#delete},
201
+ * A promise which is resolved without a defined result when the entity represented by this
202
+ * context has been created in the back end. It is rejected with an <code>Error</code>
203
+ * instance where <code>oError.canceled === true</code> if the transient entity is deleted
204
+ * before it is created in the back end, for example via
205
+ * {@link sap.ui.model.odata.v4.Context#delete},
203
206
  * {@link sap.ui.model.odata.v4.ODataListBinding#resetChanges} or
204
207
  * {@link sap.ui.model.odata.v4.ODataModel#resetChanges}, and for all nested contexts within a
205
208
  * deep create. It is rejected with an <code>Error</code> instance without
@@ -251,9 +254,9 @@ sap.ui.define([
251
254
  * Whether not to request the new count from the server; useful in case of
252
255
  * {@link #replaceWith} where it is known that the count remains unchanged (since 1.97.0).
253
256
  * Since 1.98.0, this is implied if a <code>null</code> group ID is used.
254
- * @returns {Promise}
255
- * A promise which is resolved without a result in case of success, or rejected with an
256
- * instance of <code>Error</code> in case of failure, for example if:
257
+ * @returns {Promise<void>}
258
+ * A promise which is resolved without a defined result in case of success, or rejected with
259
+ * an instance of <code>Error</code> in case of failure, for example if:
257
260
  * <ul>
258
261
  * <li> the given context does not point to an entity,
259
262
  * <li> the deletion on the server fails,
@@ -1260,7 +1263,7 @@ sap.ui.define([
1260
1263
  * Note: For a transient context (see {@link #isTransient}) a wrong path is returned unless all
1261
1264
  * key properties are available within the initial data.
1262
1265
  *
1263
- * @returns {Promise}
1266
+ * @returns {Promise<string>}
1264
1267
  * A promise which is resolved with the canonical path (e.g. "/SalesOrderList('0500000000')")
1265
1268
  * in case of success, or rejected with an instance of <code>Error</code> in case of failure,
1266
1269
  * e.g. if the given context does not point to an entity
@@ -1287,7 +1290,7 @@ sap.ui.define([
1287
1290
  *
1288
1291
  * @param {string} [sPath=""]
1289
1292
  * A path relative to this context
1290
- * @returns {Promise}
1293
+ * @returns {Promise<any>}
1291
1294
  * A promise on the requested value
1292
1295
  * @throws {Error}
1293
1296
  * If the context's root binding is suspended, or if the context is a header context and the
@@ -1316,7 +1319,7 @@ sap.ui.define([
1316
1319
  * @param {boolean} [bExternalFormat]
1317
1320
  * If <code>true</code>, the values are returned in external format using UI5 types for the
1318
1321
  * given property paths that format corresponding to the properties' EDM types and constraints
1319
- * @returns {Promise}
1322
+ * @returns {Promise<any>}
1320
1323
  * A promise on the requested value or values; it is rejected if a value is not primitive or
1321
1324
  * if the context is a header context and a path is not "$count"
1322
1325
  * @throws {Error}
@@ -1333,7 +1336,7 @@ sap.ui.define([
1333
1336
  this.oBinding.checkSuspended();
1334
1337
 
1335
1338
  return Promise.all(aPaths.map(function (sPath) {
1336
- return that.oBinding.fetchIfChildCanUseCache(that, sPath, SyncPromise.resolve({}))
1339
+ return that.oBinding.fetchIfChildCanUseCache(that, sPath, undefined, true)
1337
1340
  .then(function (sReducedPath) {
1338
1341
  if (sReducedPath) {
1339
1342
  return that.fetchPrimitiveValue(sReducedPath, bExternalFormat);
@@ -1355,9 +1358,9 @@ sap.ui.define([
1355
1358
  * The group ID to be used
1356
1359
  * @param {boolean} [bAllowRemoval]
1357
1360
  * Allows to remove the context
1358
- * @returns {Promise}
1359
- * A promise which resolves without a defined result when the refresh is finished and rejects
1360
- * with an instance of <code>Error</code> if the refresh failed
1361
+ * @returns {Promise<void>}
1362
+ * A promise which is resolved without a defined result when the refresh is finished, or
1363
+ * rejected with an error if the refresh failed
1361
1364
  * @throws {Error}
1362
1365
  * See {@link #refresh} for details
1363
1366
  *
@@ -1465,11 +1468,11 @@ sap.ui.define([
1465
1468
  * specified, make sure that {@link #requestSideEffects} is called after the corresponding
1466
1469
  * updates have been successfully processed by the server and that there are no pending
1467
1470
  * changes for the affected properties.
1468
- * @returns {Promise<undefined>}
1469
- * Promise resolved with <code>undefined</code>, or rejected with an error if loading of side
1470
- * effects fails. Use it to set fields affected by side effects to read-only before
1471
- * {@link #requestSideEffects} and make them editable again when the promise resolves; in the
1472
- * error handler, you can repeat the loading of side effects.
1471
+ * @returns {Promise<void>}
1472
+ * A promise which is resolved without a defined result, or rejected with an error if
1473
+ * loading of side effects fails. Use it to set fields affected by side effects to read-only
1474
+ * before {@link #requestSideEffects} and make them editable again when the promise resolves;
1475
+ * in the error handler, you can repeat the loading of side effects.
1473
1476
  * <br>
1474
1477
  * The promise is rejected if the call wants to refresh a whole list binding (via header
1475
1478
  * context or an absolute path), but the deletion of a row context (see {@link #delete}) is
@@ -1618,8 +1621,8 @@ sap.ui.define([
1618
1621
  * @param {string} sGroupId
1619
1622
  * The effective group ID
1620
1623
  * @returns {sap.ui.base.SyncPromise|undefined}
1621
- * A promise resolving without a defined result, or rejecting with an error if loading of side
1622
- * effects fails, or <code>undefined</code> if there is nothing to do
1624
+ * A promise which is resolved without a defined result, or rejected with an error if loading
1625
+ * of side effects fails, or <code>undefined</code> if there is nothing to do
1623
1626
  *
1624
1627
  * @private
1625
1628
  */
@@ -1690,7 +1693,7 @@ sap.ui.define([
1690
1693
  * context which is currently {@link #delete deleted} on the client, but not yet on the server,
1691
1694
  * this method cancels the deletion and restores the context.
1692
1695
  *
1693
- * @returns {Promise}
1696
+ * @returns {Promise<void>}
1694
1697
  * A promise which is resolved without a defined result as soon as all changes in the context
1695
1698
  * and its current dependent bindings are canceled
1696
1699
  * @throws {Error} If
@@ -1836,7 +1839,7 @@ sap.ui.define([
1836
1839
  if (!sMessagesPath) {
1837
1840
  throw new Error("Missing @com.sap.vocabularies.Common.v1.Messages");
1838
1841
  }
1839
- return that.oBinding.fetchIfChildCanUseCache(that, sMessagesPath, {});
1842
+ return that.oBinding.fetchIfChildCanUseCache(that, sMessagesPath, undefined, true);
1840
1843
  }).then(function (sReducedPath) {
1841
1844
  return that.fetchValue(sReducedPath);
1842
1845
  }).catch(this.oModel.getReporter());
@@ -1844,6 +1847,7 @@ sap.ui.define([
1844
1847
 
1845
1848
  this.bKeepAlive = bKeepAlive;
1846
1849
  this.fnOnBeforeDestroy = bKeepAlive ? fnOnBeforeDestroy : undefined;
1850
+ this.oBinding.onKeepAliveChanged(this);
1847
1851
  };
1848
1852
 
1849
1853
  /**
@@ -1887,10 +1891,10 @@ sap.ui.define([
1887
1891
  * Each time the PATCH request is sent to the server, a 'patchSent' event is fired on the
1888
1892
  * binding sending the request. When the response for this request is received, a
1889
1893
  * 'patchCompleted' with a boolean parameter 'success' is fired.
1890
- * @returns {Promise}
1891
- * A promise which is resolved without a result in case of success, or rejected with an
1892
- * instance of <code>Error</code> in case of failure, for example if the annotation belongs to
1893
- * the read-only namespace "@$ui5.*". With <code>bRetry</code> it is only rejected with an
1894
+ * @returns {Promise<void>}
1895
+ * A promise which is resolved without a defined result in case of success, or rejected with
1896
+ * an instance of <code>Error</code> in case of failure, for example if the annotation belongs
1897
+ * to the read-only namespace "@$ui5.*". With <code>bRetry</code> it is only rejected with an
1894
1898
  * <code>Error</code> instance where <code>oError.canceled === true</code> when the entity has
1895
1899
  * been deleted while the request was pending or the property has been reset via the methods
1896
1900
  * <ul>
@@ -1961,6 +1965,9 @@ sap.ui.define([
1961
1965
  throw new Error("Must not select a deleted entity: " + this);
1962
1966
  }
1963
1967
  this.bSelected = bSelected;
1968
+ if (this.oBinding) {
1969
+ this.oBinding.onKeepAliveChanged(this); // selected contexts are effectively kept alive
1970
+ }
1964
1971
  };
1965
1972
 
1966
1973
  /**