@openui5/sap.ui.core 1.117.0 → 1.118.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 (833) hide show
  1. package/package.json +1 -1
  2. package/src/jquery.sap.global.js +1 -1
  3. package/src/jquery.sap.properties.js +1 -1
  4. package/src/jquery.sap.resources.js +1 -1
  5. package/src/jquery.sap.script.js +1 -1
  6. package/src/jquery.sap.storage.js +3 -3
  7. package/src/sap/base/Event.js +1 -1
  8. package/src/sap/base/Eventing.js +1 -1
  9. package/src/sap/base/config.js +1 -1
  10. package/src/sap/base/i18n/LanguageTag.js +1 -1
  11. package/src/sap/base/i18n/Localization.js +42 -39
  12. package/src/sap/base/i18n/date/TimezoneUtils.js +1 -1
  13. package/src/sap/base/util/restricted/_CancelablePromise.js +1 -1
  14. package/src/sap/base/util/restricted/_castArray.js +1 -1
  15. package/src/sap/base/util/restricted/_compact.js +1 -1
  16. package/src/sap/base/util/restricted/_curry.js +1 -1
  17. package/src/sap/base/util/restricted/_debounce.js +1 -1
  18. package/src/sap/base/util/restricted/_difference.js +1 -1
  19. package/src/sap/base/util/restricted/_differenceBy.js +1 -1
  20. package/src/sap/base/util/restricted/_differenceWith.js +1 -1
  21. package/src/sap/base/util/restricted/_flatMap.js +1 -1
  22. package/src/sap/base/util/restricted/_flatMapDeep.js +1 -1
  23. package/src/sap/base/util/restricted/_flatMapDepth.js +1 -1
  24. package/src/sap/base/util/restricted/_flatten.js +1 -1
  25. package/src/sap/base/util/restricted/_flattenDeep.js +1 -1
  26. package/src/sap/base/util/restricted/_flattenDepth.js +1 -1
  27. package/src/sap/base/util/restricted/_intersection.js +1 -1
  28. package/src/sap/base/util/restricted/_intersectionBy.js +1 -1
  29. package/src/sap/base/util/restricted/_intersectionWith.js +1 -1
  30. package/src/sap/base/util/restricted/_isEqual.js +1 -1
  31. package/src/sap/base/util/restricted/_isEqualWith.js +1 -1
  32. package/src/sap/base/util/restricted/_isNil.js +1 -1
  33. package/src/sap/base/util/restricted/_max.js +1 -1
  34. package/src/sap/base/util/restricted/_merge.js +1 -1
  35. package/src/sap/base/util/restricted/_mergeWith.js +1 -1
  36. package/src/sap/base/util/restricted/_min.js +1 -1
  37. package/src/sap/base/util/restricted/_omit.js +1 -1
  38. package/src/sap/base/util/restricted/_pick.js +1 -1
  39. package/src/sap/base/util/restricted/_pickBy.js +1 -1
  40. package/src/sap/base/util/restricted/_throttle.js +1 -1
  41. package/src/sap/base/util/restricted/_toArray.js +1 -1
  42. package/src/sap/base/util/restricted/_union.js +1 -1
  43. package/src/sap/base/util/restricted/_unionBy.js +1 -1
  44. package/src/sap/base/util/restricted/_unionWith.js +1 -1
  45. package/src/sap/base/util/restricted/_uniq.js +1 -1
  46. package/src/sap/base/util/restricted/_uniqBy.js +1 -1
  47. package/src/sap/base/util/restricted/_uniqWith.js +1 -1
  48. package/src/sap/base/util/restricted/_without.js +1 -1
  49. package/src/sap/base/util/restricted/_xor.js +1 -1
  50. package/src/sap/base/util/restricted/_xorBy.js +1 -1
  51. package/src/sap/base/util/restricted/_xorWith.js +1 -1
  52. package/src/sap/base/util/restricted/_zipObject.js +1 -1
  53. package/src/sap/base/util/restricted/_zipObjectDeep.js +1 -1
  54. package/src/sap/ui/Device.js +3 -3
  55. package/src/sap/ui/Global.js +4 -4
  56. package/src/sap/ui/base/BindingParser.js +2 -1
  57. package/src/sap/ui/base/Event.js +1 -1
  58. package/src/sap/ui/base/EventProvider.js +1 -1
  59. package/src/sap/ui/base/Interface.js +1 -1
  60. package/src/sap/ui/base/ManagedObject.js +7 -3
  61. package/src/sap/ui/base/ManagedObjectMetadata.js +1 -1
  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/core/.library +9 -1
  66. package/src/sap/ui/core/AnimationMode.js +1 -1
  67. package/src/sap/ui/core/BlockLayerUtils.js +1 -1
  68. package/src/sap/ui/core/BusyIndicator.js +2 -2
  69. package/src/sap/ui/core/Component.js +22 -15
  70. package/src/sap/ui/core/ComponentContainer.js +2 -2
  71. package/src/sap/ui/core/ComponentMetadata.js +1 -1
  72. package/src/sap/ui/core/ComponentSupport.js +1 -1
  73. package/src/sap/ui/core/Configuration.js +1 -13
  74. package/src/sap/ui/core/Control.js +21 -1
  75. package/src/sap/ui/core/Core.js +67 -41
  76. package/src/sap/ui/core/CustomData.js +1 -1
  77. package/src/sap/ui/core/DeclarativeSupport.js +1 -1
  78. package/src/sap/ui/core/Element.js +1 -1
  79. package/src/sap/ui/core/ElementMetadata.js +1 -1
  80. package/src/sap/ui/core/EnabledPropagator.js +1 -1
  81. package/src/sap/ui/core/EventBus.js +1 -1
  82. package/src/sap/ui/core/Fragment.js +1 -1
  83. package/src/sap/ui/core/HTML.js +1 -1
  84. package/src/sap/ui/core/History.js +1 -1
  85. package/src/sap/ui/core/Icon.js +2 -2
  86. package/src/sap/ui/core/IndicationColorSupport.js +2 -2
  87. package/src/sap/ui/core/IntervalTrigger.js +1 -1
  88. package/src/sap/ui/core/InvisibleMessage.js +1 -1
  89. package/src/sap/ui/core/InvisibleRenderer.js +1 -1
  90. package/src/sap/ui/core/InvisibleText.js +3 -6
  91. package/src/sap/ui/core/Item.js +1 -1
  92. package/src/sap/ui/core/LabelEnablement.js +1 -1
  93. package/src/sap/ui/core/LayoutData.js +1 -1
  94. package/src/sap/ui/core/Lib.js +9 -13
  95. package/src/sap/ui/core/ListItem.js +1 -1
  96. package/src/sap/ui/core/LocalBusyIndicator.js +1 -1
  97. package/src/sap/ui/core/Locale.js +1 -1
  98. package/src/sap/ui/core/LocaleData.js +2 -2
  99. package/src/sap/ui/core/Manifest.js +1 -1
  100. package/src/sap/ui/core/Message.js +1 -1
  101. package/src/sap/ui/core/Messaging.js +472 -0
  102. package/src/sap/ui/core/RenderManager.js +1 -1
  103. package/src/sap/ui/core/Renderer.js +1 -1
  104. package/src/sap/ui/core/Rendering.js +3 -2
  105. package/src/sap/ui/core/ResizeHandler.js +1 -4
  106. package/src/sap/ui/core/ScrollBar.js +1 -1
  107. package/src/sap/ui/core/SeparatorItem.js +1 -1
  108. package/src/sap/ui/core/ShortcutHint.js +1 -1
  109. package/src/sap/ui/core/Theming.js +28 -31
  110. package/src/sap/ui/core/Title.js +1 -1
  111. package/src/sap/ui/core/TooltipBase.js +1 -1
  112. package/src/sap/ui/core/UIArea.js +85 -17
  113. package/src/sap/ui/core/UIComponent.js +1 -1
  114. package/src/sap/ui/core/UIComponentMetadata.js +1 -1
  115. package/src/sap/ui/core/ValueStateSupport.js +2 -2
  116. package/src/sap/ui/core/VariantLayoutData.js +1 -1
  117. package/src/sap/ui/core/XMLComposite.js +1 -1
  118. package/src/sap/ui/core/XMLCompositeMetadata.js +1 -1
  119. package/src/sap/ui/core/_IconRegistry.js +1 -1
  120. package/src/sap/ui/core/boot.js +9 -0
  121. package/src/sap/ui/core/date/UI5Date.js +1 -1
  122. package/src/sap/ui/core/delegate/ItemNavigation.js +1 -1
  123. package/src/sap/ui/core/delegate/ScrollEnablement.js +1 -1
  124. package/src/sap/ui/core/dnd/DragAndDrop.js +1 -1
  125. package/src/sap/ui/core/dnd/DragDropBase.js +1 -1
  126. package/src/sap/ui/core/dnd/DragDropInfo.js +1 -1
  127. package/src/sap/ui/core/dnd/DragInfo.js +1 -1
  128. package/src/sap/ui/core/dnd/DropInfo.js +1 -1
  129. package/src/sap/ui/core/format/DateFormat.js +4 -0
  130. package/src/sap/ui/core/format/TimezoneUtil.js +1 -1
  131. package/src/sap/ui/core/hyphenation/Hyphenation.js +1 -1
  132. package/src/sap/ui/core/library.js +18 -47
  133. package/src/sap/ui/core/message/ControlMessageProcessor.js +1 -1
  134. package/src/sap/ui/core/message/Message.js +1 -1
  135. package/src/sap/ui/core/message/MessageManager.js +37 -459
  136. package/src/sap/ui/core/message/MessageMixin.js +3 -3
  137. package/src/sap/ui/core/message/MessageParser.js +1 -1
  138. package/src/sap/ui/core/message/MessageProcessor.js +9 -9
  139. package/src/sap/ui/core/message/MessageType.js +53 -0
  140. package/src/sap/ui/core/messagebundle.properties +3 -0
  141. package/src/sap/ui/core/messagebundle_ar.properties +1 -1
  142. package/src/sap/ui/core/messagebundle_bg.properties +1 -1
  143. package/src/sap/ui/core/messagebundle_ca.properties +1 -1
  144. package/src/sap/ui/core/messagebundle_cs.properties +1 -1
  145. package/src/sap/ui/core/messagebundle_cy.properties +1 -1
  146. package/src/sap/ui/core/messagebundle_da.properties +1 -1
  147. package/src/sap/ui/core/messagebundle_de.properties +1 -1
  148. package/src/sap/ui/core/messagebundle_el.properties +1 -1
  149. package/src/sap/ui/core/messagebundle_es.properties +1 -1
  150. package/src/sap/ui/core/messagebundle_es_MX.properties +1 -1
  151. package/src/sap/ui/core/messagebundle_et.properties +1 -1
  152. package/src/sap/ui/core/messagebundle_fi.properties +1 -1
  153. package/src/sap/ui/core/messagebundle_fr.properties +1 -1
  154. package/src/sap/ui/core/messagebundle_fr_CA.properties +1 -1
  155. package/src/sap/ui/core/messagebundle_hi.properties +1 -1
  156. package/src/sap/ui/core/messagebundle_hr.properties +1 -1
  157. package/src/sap/ui/core/messagebundle_hu.properties +1 -1
  158. package/src/sap/ui/core/messagebundle_id.properties +1 -1
  159. package/src/sap/ui/core/messagebundle_it.properties +1 -1
  160. package/src/sap/ui/core/messagebundle_iw.properties +1 -1
  161. package/src/sap/ui/core/messagebundle_ja.properties +1 -1
  162. package/src/sap/ui/core/messagebundle_kk.properties +1 -1
  163. package/src/sap/ui/core/messagebundle_ko.properties +1 -1
  164. package/src/sap/ui/core/messagebundle_lt.properties +1 -1
  165. package/src/sap/ui/core/messagebundle_lv.properties +1 -1
  166. package/src/sap/ui/core/messagebundle_ms.properties +1 -1
  167. package/src/sap/ui/core/messagebundle_nl.properties +1 -1
  168. package/src/sap/ui/core/messagebundle_no.properties +1 -1
  169. package/src/sap/ui/core/messagebundle_pl.properties +1 -1
  170. package/src/sap/ui/core/messagebundle_pt.properties +1 -1
  171. package/src/sap/ui/core/messagebundle_pt_PT.properties +1 -1
  172. package/src/sap/ui/core/messagebundle_ro.properties +1 -1
  173. package/src/sap/ui/core/messagebundle_ru.properties +1 -1
  174. package/src/sap/ui/core/messagebundle_sh.properties +1 -1
  175. package/src/sap/ui/core/messagebundle_sk.properties +1 -1
  176. package/src/sap/ui/core/messagebundle_sl.properties +1 -1
  177. package/src/sap/ui/core/messagebundle_sv.properties +9 -9
  178. package/src/sap/ui/core/messagebundle_th.properties +1 -1
  179. package/src/sap/ui/core/messagebundle_tr.properties +1 -1
  180. package/src/sap/ui/core/messagebundle_uk.properties +1 -1
  181. package/src/sap/ui/core/messagebundle_vi.properties +1 -1
  182. package/src/sap/ui/core/messagebundle_zh_CN.properties +1 -1
  183. package/src/sap/ui/core/messagebundle_zh_TW.properties +1 -1
  184. package/src/sap/ui/core/mvc/HTMLView.js +1 -1
  185. package/src/sap/ui/core/mvc/JSONView.js +1 -1
  186. package/src/sap/ui/core/mvc/JSView.js +1 -1
  187. package/src/sap/ui/core/mvc/TemplateView.js +1 -1
  188. package/src/sap/ui/core/mvc/View.js +1 -1
  189. package/src/sap/ui/core/mvc/XMLView.js +9 -2
  190. package/src/sap/ui/core/plugin/DeclarativeSupport.js +1 -1
  191. package/src/sap/ui/core/plugin/LessSupport.js +1 -1
  192. package/src/sap/ui/core/plugin/TemplatingSupport.js +1 -1
  193. package/src/sap/ui/core/postmessage/Bus.js +1 -1
  194. package/src/sap/ui/core/postmessage/confirmationDialog.js +1 -1
  195. package/src/sap/ui/core/routing/Router.js +7 -1
  196. package/src/sap/ui/core/routing/async/Route.js +1 -0
  197. package/src/sap/ui/core/routing/sync/Route.js +1 -0
  198. package/src/sap/ui/core/search/OpenSearchProvider.js +1 -1
  199. package/src/sap/ui/core/search/SearchProvider.js +1 -1
  200. package/src/sap/ui/core/service/Service.js +1 -1
  201. package/src/sap/ui/core/service/ServiceFactory.js +1 -1
  202. package/src/sap/ui/core/service/ServiceFactoryRegistry.js +1 -1
  203. package/src/sap/ui/core/support/Plugin.js +25 -5
  204. package/src/sap/ui/core/support/Support.js +34 -4
  205. package/src/sap/ui/core/support/ToolsAPI.js +6 -16
  206. package/src/sap/ui/core/support/controls/InteractionTree.js +0 -4
  207. package/src/sap/ui/core/support/plugins/Breakpoint.js +0 -2
  208. package/src/sap/ui/core/support/plugins/ControlTree.js +10 -12
  209. package/src/sap/ui/core/support/plugins/Debugging.js +10 -9
  210. package/src/sap/ui/core/support/plugins/Interaction.js +12 -13
  211. package/src/sap/ui/core/support/plugins/LocalStorage.js +1 -3
  212. package/src/sap/ui/core/support/plugins/Performance.js +1 -3
  213. package/src/sap/ui/core/support/plugins/Selector.js +1 -1
  214. package/src/sap/ui/core/support/plugins/TechInfo.js +32 -42
  215. package/src/sap/ui/core/support/plugins/Trace.js +1 -1
  216. package/src/sap/ui/core/support/plugins/ViewInfo.js +27 -13
  217. package/src/sap/ui/core/support/techinfo/TechnicalInfo.js +4 -4
  218. package/src/sap/ui/core/theming/ThemeHelper.js +100 -0
  219. package/src/sap/ui/core/theming/ThemeManager.js +18 -18
  220. package/src/sap/ui/core/tmpl/DOMAttribute.js +1 -1
  221. package/src/sap/ui/core/tmpl/DOMElement.js +1 -1
  222. package/src/sap/ui/core/tmpl/HandlebarsTemplate.js +1 -1
  223. package/src/sap/ui/core/tmpl/Template.js +1 -1
  224. package/src/sap/ui/core/tmpl/TemplateControl.js +1 -1
  225. package/src/sap/ui/core/util/AsyncHintsHelper.js +1 -1
  226. package/src/sap/ui/core/util/Export.js +1 -1
  227. package/src/sap/ui/core/util/ExportCell.js +1 -1
  228. package/src/sap/ui/core/util/ExportColumn.js +1 -1
  229. package/src/sap/ui/core/util/ExportRow.js +1 -1
  230. package/src/sap/ui/core/util/ExportType.js +1 -1
  231. package/src/sap/ui/core/util/ExportTypeCSV.js +1 -1
  232. package/src/sap/ui/core/util/File.js +1 -1
  233. package/src/sap/ui/core/util/LibraryInfo.js +1 -1
  234. package/src/sap/ui/core/util/MockServer.js +1 -1
  235. package/src/sap/ui/core/util/PasteHelper.js +1 -1
  236. package/src/sap/ui/core/util/XMLPreprocessor.js +53 -29
  237. package/src/sap/ui/core/util/serializer/HTMLViewSerializer.js +1 -1
  238. package/src/sap/ui/core/util/serializer/Serializer.js +1 -1
  239. package/src/sap/ui/core/util/serializer/ViewSerializer.js +1 -1
  240. package/src/sap/ui/core/util/serializer/XMLViewSerializer.js +1 -1
  241. package/src/sap/ui/core/util/serializer/delegate/Delegate.js +1 -1
  242. package/src/sap/ui/core/util/serializer/delegate/HTML.js +1 -1
  243. package/src/sap/ui/core/util/serializer/delegate/XML.js +1 -1
  244. package/src/sap/ui/core/webc/WebComponent.js +659 -0
  245. package/src/sap/ui/core/webc/WebComponentMetadata.js +253 -0
  246. package/src/sap/ui/core/webc/WebComponentRenderer.js +323 -0
  247. package/src/sap/ui/core/ws/ReadyState.js +1 -1
  248. package/src/sap/ui/core/ws/SapPcpWebSocket.js +1 -1
  249. package/src/sap/ui/core/ws/WebSocket.js +1 -1
  250. package/src/sap/ui/debug/ControlTree.js +4 -3
  251. package/src/sap/ui/debug/DebugEnv.js +4 -4
  252. package/src/sap/ui/debug/PropertyList.js +1 -1
  253. package/src/sap/ui/model/Binding.js +6 -6
  254. package/src/sap/ui/model/ClientModel.js +1 -1
  255. package/src/sap/ui/model/ClientPropertyBinding.js +3 -3
  256. package/src/sap/ui/model/CompositeDataState.js +1 -1
  257. package/src/sap/ui/model/CompositeType.js +1 -1
  258. package/src/sap/ui/model/Context.js +1 -1
  259. package/src/sap/ui/model/DataState.js +1 -1
  260. package/src/sap/ui/model/ManagedObjectBindingSupport.js +4 -4
  261. package/src/sap/ui/model/MetaModel.js +1 -1
  262. package/src/sap/ui/model/Model.js +4 -4
  263. package/src/sap/ui/model/SelectionModel.js +1 -1
  264. package/src/sap/ui/model/SimpleType.js +1 -1
  265. package/src/sap/ui/model/TreeAutoExpandMode.js +1 -1
  266. package/src/sap/ui/model/Type.js +1 -1
  267. package/src/sap/ui/model/controlhelper/TreeBindingProxy.js +27 -13
  268. package/src/sap/ui/model/json/JSONModel.js +1 -1
  269. package/src/sap/ui/model/message/MessageModel.js +1 -1
  270. package/src/sap/ui/model/odata/ODataAnnotations.js +1 -1
  271. package/src/sap/ui/model/odata/ODataListBinding.js +24 -0
  272. package/src/sap/ui/model/odata/ODataMessageParser.js +4 -4
  273. package/src/sap/ui/model/odata/ODataMetaModel.js +1 -1
  274. package/src/sap/ui/model/odata/ODataMetadata.js +1 -1
  275. package/src/sap/ui/model/odata/ODataModel.js +1 -1
  276. package/src/sap/ui/model/odata/ODataTreeBindingFlat.js +6 -0
  277. package/src/sap/ui/model/odata/type/Boolean.js +1 -1
  278. package/src/sap/ui/model/odata/type/Byte.js +1 -1
  279. package/src/sap/ui/model/odata/type/Currency.js +1 -1
  280. package/src/sap/ui/model/odata/type/Date.js +1 -1
  281. package/src/sap/ui/model/odata/type/DateTime.js +1 -1
  282. package/src/sap/ui/model/odata/type/DateTimeBase.js +1 -1
  283. package/src/sap/ui/model/odata/type/DateTimeOffset.js +7 -2
  284. package/src/sap/ui/model/odata/type/DateTimeWithTimezone.js +1 -1
  285. package/src/sap/ui/model/odata/type/Decimal.js +1 -1
  286. package/src/sap/ui/model/odata/type/Double.js +1 -1
  287. package/src/sap/ui/model/odata/type/Guid.js +1 -1
  288. package/src/sap/ui/model/odata/type/Int.js +1 -1
  289. package/src/sap/ui/model/odata/type/Int16.js +1 -1
  290. package/src/sap/ui/model/odata/type/Int32.js +1 -1
  291. package/src/sap/ui/model/odata/type/Int64.js +1 -1
  292. package/src/sap/ui/model/odata/type/ODataType.js +1 -1
  293. package/src/sap/ui/model/odata/type/Raw.js +1 -1
  294. package/src/sap/ui/model/odata/type/SByte.js +1 -1
  295. package/src/sap/ui/model/odata/type/Single.js +1 -1
  296. package/src/sap/ui/model/odata/type/Stream.js +1 -1
  297. package/src/sap/ui/model/odata/type/String.js +1 -1
  298. package/src/sap/ui/model/odata/type/Time.js +1 -1
  299. package/src/sap/ui/model/odata/type/TimeOfDay.js +6 -2
  300. package/src/sap/ui/model/odata/type/Unit.js +1 -1
  301. package/src/sap/ui/model/odata/v2/Context.js +1 -1
  302. package/src/sap/ui/model/odata/v2/ODataAnnotations.js +1 -1
  303. package/src/sap/ui/model/odata/v2/ODataListBinding.js +23 -3
  304. package/src/sap/ui/model/odata/v2/ODataModel.js +6 -6
  305. package/src/sap/ui/model/odata/v2/ODataTreeBinding.js +33 -6
  306. package/src/sap/ui/model/odata/v4/Context.js +26 -16
  307. package/src/sap/ui/model/odata/v4/ODataContextBinding.js +6 -2
  308. package/src/sap/ui/model/odata/v4/ODataListBinding.js +62 -29
  309. package/src/sap/ui/model/odata/v4/ODataMetaModel.js +1 -1
  310. package/src/sap/ui/model/odata/v4/ODataModel.js +17 -10
  311. package/src/sap/ui/model/odata/v4/ODataPropertyBinding.js +5 -1
  312. package/src/sap/ui/model/odata/v4/lib/_AggregationCache.js +129 -6
  313. package/src/sap/ui/model/odata/v4/lib/_Cache.js +102 -57
  314. package/src/sap/ui/model/odata/v4/lib/_Helper.js +30 -4
  315. package/src/sap/ui/model/odata/v4/lib/_Parser.js +3 -0
  316. package/src/sap/ui/model/odata/v4/lib/_Requestor.js +14 -4
  317. package/src/sap/ui/model/odata/v4/lib/_V2Requestor.js +28 -35
  318. package/src/sap/ui/model/odata/v4/ts.js +44 -0
  319. package/src/sap/ui/model/resource/ResourceModel.js +1 -1
  320. package/src/sap/ui/model/type/Boolean.js +1 -1
  321. package/src/sap/ui/model/type/Currency.js +1 -1
  322. package/src/sap/ui/model/type/Date.js +1 -1
  323. package/src/sap/ui/model/type/DateInterval.js +5 -4
  324. package/src/sap/ui/model/type/DateTime.js +1 -1
  325. package/src/sap/ui/model/type/DateTimeInterval.js +1 -1
  326. package/src/sap/ui/model/type/FileSize.js +1 -1
  327. package/src/sap/ui/model/type/Float.js +1 -1
  328. package/src/sap/ui/model/type/Integer.js +1 -1
  329. package/src/sap/ui/model/type/String.js +1 -1
  330. package/src/sap/ui/model/type/Time.js +1 -1
  331. package/src/sap/ui/model/type/TimeInterval.js +1 -1
  332. package/src/sap/ui/model/type/Unit.js +1 -1
  333. package/src/sap/ui/model/xml/XMLModel.js +1 -1
  334. package/src/sap/ui/performance/trace/Interaction.js +11 -2
  335. package/src/sap/ui/qunit/utils/ControlIterator.js +1 -1
  336. package/src/sap/ui/qunit/utils/MemoryLeakCheck.js +10 -11
  337. package/src/sap/ui/qunit/utils/nextUIUpdate.js +51 -0
  338. package/src/sap/ui/test/ModuleTracking.js +326 -0
  339. package/src/sap/ui/test/TestUtils.js +7 -6
  340. package/src/sap/ui/test/autowaiter/_UIUpdatesWaiter.js +3 -2
  341. package/src/sap/ui/test/generic/TestBase.js +1 -1
  342. package/src/sap/ui/test/selectors/_ControlSelectorGenerator.js +2 -0
  343. package/src/sap/ui/test/selectors/_DropdownItem.js +1 -0
  344. package/src/sap/ui/test/selectors/_TableRowItem.js +1 -0
  345. package/src/sap/ui/util/Storage.js +1 -1
  346. package/src/ui5loader-autoconfig.js +14 -10
  347. package/src/ui5loader.js +2 -2
  348. package/test/sap/ui/core/ComponentCleanup.html +228 -225
  349. package/test/sap/ui/core/ComponentConfig.html +1 -1
  350. package/test/sap/ui/core/ComponentExtensibility_CustomizingDisabled.html +1 -1
  351. package/test/sap/ui/core/ComponentExtensibility_legacyAPIs.html +1 -1
  352. package/test/sap/ui/core/ComponentSimple.html +1 -1
  353. package/test/sap/ui/core/ComponentSimpleModel.html +1 -1
  354. package/test/sap/ui/core/ComponentSupport.html +1 -1
  355. package/test/sap/ui/core/DateFormat.js +3 -3
  356. package/test/sap/ui/core/EventBroadcaster.html +62 -62
  357. package/test/sap/ui/core/Formats.html +4 -2
  358. package/test/sap/ui/core/GenericEventBinding.html +53 -52
  359. package/test/sap/ui/core/ListFormat.js +3 -3
  360. package/test/sap/ui/core/NumberFormat.js +3 -3
  361. package/test/sap/ui/core/ODataAnnotationsPerformance.html +28 -28
  362. package/test/sap/ui/core/ODataV2CanonicalRequests.html +3 -2
  363. package/test/sap/ui/core/ODataV2Messages.html +4 -3
  364. package/test/sap/ui/core/PopupWithUserSelection.html +1 -1
  365. package/test/sap/ui/core/Strings.js +3 -3
  366. package/test/sap/ui/core/ValidateURL.html +143 -143
  367. package/test/sap/ui/core/demokit/sample/Commands/Commands.html +1 -1
  368. package/test/sap/ui/core/demokit/sample/MessageManager/BasicMessages/Controller.controller.js +10 -10
  369. package/test/sap/ui/core/demokit/sample/MessageManager/BasicODataMessages/Controller.controller.js +7 -7
  370. package/test/sap/ui/core/demokit/sample/MessageManager/ODataBackendMessagesComp/webapp/Component.js +3 -2
  371. package/test/sap/ui/core/demokit/sample/MessageManager/ODataBackendMessagesComp/webapp/controller/Employee.controller.js +3 -2
  372. package/test/sap/ui/core/demokit/sample/MessageManager/ODataBackendMessagesComp/webapp/index.html +7 -8
  373. package/test/sap/ui/core/demokit/sample/OpaGetStarted/applicationUnderTest/index.html +9 -6
  374. package/test/sap/ui/core/demokit/sample/OpaWithSupportAssistant/applicationUnderTest/index.html +13 -10
  375. package/test/sap/ui/core/demokit/sample/PatternMatching/Patterns.html +11 -8
  376. package/test/sap/ui/core/demokit/sample/RoutingFullscreen/RoutingFullscreen.html +11 -8
  377. package/test/sap/ui/core/demokit/sample/RoutingMasterDetail/RoutingMasterDetail.html +11 -8
  378. package/test/sap/ui/core/demokit/sample/RoutingNestedComponent/RoutingNestedComponent.html +1 -1
  379. package/test/sap/ui/core/demokit/sample/RoutingNestedComponent/test/integration/opaTests.qunit.html +1 -1
  380. package/test/sap/ui/core/demokit/sample/RoutingNestedComponent/test/integration/opaTests.qunit.js +5 -4
  381. package/test/sap/ui/core/demokit/sample/TargetsStandalone/TargetsStandalone.html +11 -8
  382. package/test/sap/ui/core/demokit/sample/ViewTemplate/scenario/Opa.qunit.js +9 -8
  383. package/test/sap/ui/core/demokit/sample/ViewTemplate/types/Opa.qunit.js +12 -11
  384. package/test/sap/ui/core/demokit/sample/common/Controller.js +6 -7
  385. package/test/sap/ui/core/demokit/sample/common/Helper.js +6 -2
  386. package/test/sap/ui/core/demokit/sample/common/init.js +25 -21
  387. package/test/sap/ui/core/demokit/sample/gherkin/GherkinWithOPA5/WebsiteCode.js +8 -7
  388. package/test/sap/ui/core/demokit/sample/odata/v4/DataAggregation/Opa.qunit.js +9 -8
  389. package/test/sap/ui/core/demokit/sample/odata/v4/DeepCreate/ObjectPage.controller.js +3 -2
  390. package/test/sap/ui/core/demokit/sample/odata/v4/DeepCreate/Opa.qunit.js +12 -10
  391. package/test/sap/ui/core/demokit/sample/odata/v4/Draft/ListReport.controller.js +3 -2
  392. package/test/sap/ui/core/demokit/sample/odata/v4/Draft/Opa.qunit.js +10 -9
  393. package/test/sap/ui/core/demokit/sample/odata/v4/FieldGroups/Opa.qunit.js +10 -9
  394. package/test/sap/ui/core/demokit/sample/odata/v4/FlatDataAggregation/Component.js +4 -4
  395. package/test/sap/ui/core/demokit/sample/odata/v4/FlexibleColumnLayout/Main.controller.js +3 -3
  396. package/test/sap/ui/core/demokit/sample/odata/v4/FlexibleColumnLayout/Opa.qunit.js +10 -9
  397. package/test/sap/ui/core/demokit/sample/odata/v4/HierarchyBindAction/Component.js +19 -0
  398. package/test/sap/ui/core/demokit/sample/odata/v4/HierarchyBindAction/Main.controller.js +93 -0
  399. package/test/sap/ui/core/demokit/sample/odata/v4/HierarchyBindAction/Main.view.xml +85 -0
  400. package/test/sap/ui/core/demokit/sample/odata/v4/HierarchyBindAction/SandboxModel.js +10 -0
  401. package/test/sap/ui/core/demokit/sample/odata/v4/HierarchyBindAction/data/all.json +396 -0
  402. package/test/sap/ui/core/demokit/sample/odata/v4/HierarchyBindAction/data/metadata.xml +423 -0
  403. package/test/sap/ui/core/demokit/sample/odata/v4/HierarchyBindAction/manifest.json +70 -0
  404. package/test/sap/ui/core/demokit/sample/odata/v4/LateProperties/Opa.OptimisticBatch.qunit.js +11 -10
  405. package/test/sap/ui/core/demokit/sample/odata/v4/LateProperties/Opa.qunit.js +9 -8
  406. package/test/sap/ui/core/demokit/sample/odata/v4/ListBinding/Opa.qunit.js +10 -9
  407. package/test/sap/ui/core/demokit/sample/odata/v4/ListBindingTemplate/Opa.qunit.js +8 -7
  408. package/test/sap/ui/core/demokit/sample/odata/v4/MultipleInlineCreationRowsGrid/Main.controller.js +8 -10
  409. package/test/sap/ui/core/demokit/sample/odata/v4/MultipleInlineCreationRowsGrid/Opa.qunit.js +12 -11
  410. package/test/sap/ui/core/demokit/sample/odata/v4/Products/Main.controller.js +3 -2
  411. package/test/sap/ui/core/demokit/sample/odata/v4/Products/Opa.qunit.js +11 -10
  412. package/test/sap/ui/core/demokit/sample/odata/v4/RecursiveHierarchy/MIT.RecursiveHierarchy maintenance.html +408 -0
  413. package/test/sap/ui/core/demokit/sample/odata/v4/RecursiveHierarchy/Opa.qunit.js +26 -8
  414. package/test/sap/ui/core/demokit/sample/odata/v4/RecursiveHierarchy/RecursiveHierarchy.controller.js +54 -14
  415. package/test/sap/ui/core/demokit/sample/odata/v4/RecursiveHierarchy/RecursiveHierarchy.view.xml +24 -10
  416. package/test/sap/ui/core/demokit/sample/odata/v4/RecursiveHierarchy/SandboxModel.js +352 -287
  417. package/test/sap/ui/core/demokit/sample/odata/v4/RecursiveHierarchy/pages/Main.js +38 -5
  418. package/test/sap/ui/core/demokit/sample/odata/v4/RecursiveHierarchy/tests/createEdit.js +128 -0
  419. package/test/sap/ui/core/demokit/sample/odata/v4/RecursiveHierarchy/tests/pageExpandCollapse.js +23 -22
  420. package/test/sap/ui/core/demokit/sample/odata/v4/SalesOrderTP100_V2/Opa.qunit.js +10 -9
  421. package/test/sap/ui/core/demokit/sample/odata/v4/SalesOrderTP100_V4/Opa.qunit.js +9 -8
  422. package/test/sap/ui/core/demokit/sample/odata/v4/SalesOrders/Component.js +3 -2
  423. package/test/sap/ui/core/demokit/sample/odata/v4/SalesOrders/Opa.qunit.js +15 -14
  424. package/test/sap/ui/core/demokit/sample/odata/v4/SalesOrdersRTATest/Opa.qunit.js +9 -8
  425. package/test/sap/ui/core/demokit/sample/odata/v4/SalesOrdersTemplate/Opa.qunit.js +9 -8
  426. package/test/sap/ui/core/demokit/sample/odata/v4/ServerDrivenPaging/Opa.qunit.js +10 -9
  427. package/test/sap/ui/core/demokit/sample/odata/v4/Sticky/Opa.qunit.js +10 -9
  428. package/test/sap/ui/core/demokit/tutorial/databinding/01/package.json +2 -5
  429. package/test/sap/ui/core/demokit/tutorial/databinding/01/ui5.yaml +8 -0
  430. package/test/sap/ui/core/demokit/tutorial/databinding/01/webapp/index.js +7 -3
  431. package/test/sap/ui/core/demokit/tutorial/databinding/02/package.json +2 -5
  432. package/test/sap/ui/core/demokit/tutorial/databinding/02/ui5.yaml +8 -0
  433. package/test/sap/ui/core/demokit/tutorial/databinding/02/webapp/index.js +4 -3
  434. package/test/sap/ui/core/demokit/tutorial/databinding/03/package.json +2 -5
  435. package/test/sap/ui/core/demokit/tutorial/databinding/03/ui5.yaml +8 -0
  436. package/test/sap/ui/core/demokit/tutorial/databinding/03/webapp/index.js +4 -3
  437. package/test/sap/ui/core/demokit/tutorial/databinding/04/package.json +2 -5
  438. package/test/sap/ui/core/demokit/tutorial/databinding/04/ui5.yaml +8 -0
  439. package/test/sap/ui/core/demokit/tutorial/databinding/04/webapp/index.js +4 -3
  440. package/test/sap/ui/core/demokit/tutorial/databinding/05/package.json +2 -5
  441. package/test/sap/ui/core/demokit/tutorial/databinding/05/ui5.yaml +8 -0
  442. package/test/sap/ui/core/demokit/tutorial/databinding/05/webapp/index.js +4 -3
  443. package/test/sap/ui/core/demokit/tutorial/databinding/06/package.json +2 -5
  444. package/test/sap/ui/core/demokit/tutorial/databinding/06/ui5.yaml +8 -0
  445. package/test/sap/ui/core/demokit/tutorial/databinding/06/webapp/index.js +4 -3
  446. package/test/sap/ui/core/demokit/tutorial/databinding/07/package.json +2 -5
  447. package/test/sap/ui/core/demokit/tutorial/databinding/07/ui5.yaml +8 -0
  448. package/test/sap/ui/core/demokit/tutorial/databinding/07/webapp/index.js +4 -3
  449. package/test/sap/ui/core/demokit/tutorial/databinding/08/package.json +2 -5
  450. package/test/sap/ui/core/demokit/tutorial/databinding/08/ui5.yaml +8 -0
  451. package/test/sap/ui/core/demokit/tutorial/databinding/08/webapp/index.js +4 -3
  452. package/test/sap/ui/core/demokit/tutorial/databinding/09/package.json +2 -5
  453. package/test/sap/ui/core/demokit/tutorial/databinding/09/ui5.yaml +8 -0
  454. package/test/sap/ui/core/demokit/tutorial/databinding/09/webapp/index.js +4 -3
  455. package/test/sap/ui/core/demokit/tutorial/databinding/10/package.json +2 -5
  456. package/test/sap/ui/core/demokit/tutorial/databinding/10/ui5.yaml +8 -0
  457. package/test/sap/ui/core/demokit/tutorial/databinding/10/webapp/index.js +4 -3
  458. package/test/sap/ui/core/demokit/tutorial/databinding/11/package.json +2 -5
  459. package/test/sap/ui/core/demokit/tutorial/databinding/11/ui5.yaml +8 -0
  460. package/test/sap/ui/core/demokit/tutorial/databinding/11/webapp/index.js +6 -4
  461. package/test/sap/ui/core/demokit/tutorial/databinding/12/package.json +2 -5
  462. package/test/sap/ui/core/demokit/tutorial/databinding/12/ui5.yaml +8 -0
  463. package/test/sap/ui/core/demokit/tutorial/databinding/12/webapp/index.js +6 -4
  464. package/test/sap/ui/core/demokit/tutorial/databinding/13/package.json +2 -5
  465. package/test/sap/ui/core/demokit/tutorial/databinding/13/ui5.yaml +8 -0
  466. package/test/sap/ui/core/demokit/tutorial/databinding/13/webapp/index.js +6 -4
  467. package/test/sap/ui/core/demokit/tutorial/databinding/14/package.json +2 -5
  468. package/test/sap/ui/core/demokit/tutorial/databinding/14/ui5.yaml +8 -0
  469. package/test/sap/ui/core/demokit/tutorial/databinding/14/webapp/index.js +6 -4
  470. package/test/sap/ui/core/demokit/tutorial/databinding/15/package.json +2 -5
  471. package/test/sap/ui/core/demokit/tutorial/databinding/15/ui5.yaml +8 -0
  472. package/test/sap/ui/core/demokit/tutorial/databinding/15/webapp/index.js +6 -4
  473. package/test/sap/ui/core/demokit/tutorial/mockserver/01/package.json +2 -5
  474. package/test/sap/ui/core/demokit/tutorial/mockserver/01/ui5.yaml +8 -0
  475. package/test/sap/ui/core/demokit/tutorial/mockserver/02/package.json +2 -5
  476. package/test/sap/ui/core/demokit/tutorial/mockserver/02/ui5.yaml +8 -0
  477. package/test/sap/ui/core/demokit/tutorial/mockserver/03/package.json +2 -5
  478. package/test/sap/ui/core/demokit/tutorial/mockserver/03/ui5.yaml +8 -0
  479. package/test/sap/ui/core/demokit/tutorial/mockserver/04/package.json +2 -5
  480. package/test/sap/ui/core/demokit/tutorial/mockserver/04/ui5.yaml +8 -0
  481. package/test/sap/ui/core/demokit/tutorial/navigation/01/package.json +2 -4
  482. package/test/sap/ui/core/demokit/tutorial/navigation/01/ui5.yaml +7 -0
  483. package/test/sap/ui/core/demokit/tutorial/navigation/01/webapp/index.html +1 -1
  484. package/test/sap/ui/core/demokit/tutorial/navigation/02/package.json +2 -4
  485. package/test/sap/ui/core/demokit/tutorial/navigation/02/ui5.yaml +7 -0
  486. package/test/sap/ui/core/demokit/tutorial/navigation/02/webapp/index.html +1 -1
  487. package/test/sap/ui/core/demokit/tutorial/navigation/03/package.json +2 -4
  488. package/test/sap/ui/core/demokit/tutorial/navigation/03/ui5.yaml +7 -0
  489. package/test/sap/ui/core/demokit/tutorial/navigation/03/webapp/index.html +1 -1
  490. package/test/sap/ui/core/demokit/tutorial/navigation/04/package.json +2 -4
  491. package/test/sap/ui/core/demokit/tutorial/navigation/04/ui5.yaml +7 -0
  492. package/test/sap/ui/core/demokit/tutorial/navigation/04/webapp/index.html +1 -1
  493. package/test/sap/ui/core/demokit/tutorial/navigation/05/package.json +2 -4
  494. package/test/sap/ui/core/demokit/tutorial/navigation/05/ui5.yaml +7 -0
  495. package/test/sap/ui/core/demokit/tutorial/navigation/05/webapp/index.html +1 -1
  496. package/test/sap/ui/core/demokit/tutorial/navigation/06/package.json +2 -4
  497. package/test/sap/ui/core/demokit/tutorial/navigation/06/ui5.yaml +7 -0
  498. package/test/sap/ui/core/demokit/tutorial/navigation/06/webapp/index.html +1 -1
  499. package/test/sap/ui/core/demokit/tutorial/navigation/07/package.json +2 -4
  500. package/test/sap/ui/core/demokit/tutorial/navigation/07/ui5.yaml +7 -0
  501. package/test/sap/ui/core/demokit/tutorial/navigation/07/webapp/index.html +1 -1
  502. package/test/sap/ui/core/demokit/tutorial/navigation/08/package.json +2 -4
  503. package/test/sap/ui/core/demokit/tutorial/navigation/08/ui5.yaml +7 -0
  504. package/test/sap/ui/core/demokit/tutorial/navigation/08/webapp/index.html +1 -1
  505. package/test/sap/ui/core/demokit/tutorial/navigation/09/package.json +2 -4
  506. package/test/sap/ui/core/demokit/tutorial/navigation/09/ui5.yaml +7 -0
  507. package/test/sap/ui/core/demokit/tutorial/navigation/09/webapp/index.html +1 -1
  508. package/test/sap/ui/core/demokit/tutorial/navigation/10/package.json +2 -4
  509. package/test/sap/ui/core/demokit/tutorial/navigation/10/ui5.yaml +7 -0
  510. package/test/sap/ui/core/demokit/tutorial/navigation/10/webapp/index.html +1 -1
  511. package/test/sap/ui/core/demokit/tutorial/navigation/11/package.json +2 -4
  512. package/test/sap/ui/core/demokit/tutorial/navigation/11/ui5.yaml +7 -0
  513. package/test/sap/ui/core/demokit/tutorial/navigation/11/webapp/index.html +1 -1
  514. package/test/sap/ui/core/demokit/tutorial/navigation/12/package.json +2 -4
  515. package/test/sap/ui/core/demokit/tutorial/navigation/12/ui5.yaml +7 -0
  516. package/test/sap/ui/core/demokit/tutorial/navigation/12/webapp/index.html +1 -1
  517. package/test/sap/ui/core/demokit/tutorial/navigation/13/package.json +2 -4
  518. package/test/sap/ui/core/demokit/tutorial/navigation/13/ui5.yaml +7 -0
  519. package/test/sap/ui/core/demokit/tutorial/navigation/13/webapp/index.html +1 -1
  520. package/test/sap/ui/core/demokit/tutorial/navigation/14/package.json +2 -4
  521. package/test/sap/ui/core/demokit/tutorial/navigation/14/ui5.yaml +7 -0
  522. package/test/sap/ui/core/demokit/tutorial/navigation/14/webapp/index.html +1 -1
  523. package/test/sap/ui/core/demokit/tutorial/navigation/15/package.json +2 -4
  524. package/test/sap/ui/core/demokit/tutorial/navigation/15/ui5.yaml +7 -0
  525. package/test/sap/ui/core/demokit/tutorial/navigation/15/webapp/index.html +1 -1
  526. package/test/sap/ui/core/demokit/tutorial/navigation/16/package.json +2 -4
  527. package/test/sap/ui/core/demokit/tutorial/navigation/16/ui5.yaml +7 -0
  528. package/test/sap/ui/core/demokit/tutorial/navigation/16/webapp/index.html +1 -1
  529. package/test/sap/ui/core/demokit/tutorial/navigation/17/package.json +4 -6
  530. package/test/sap/ui/core/demokit/tutorial/navigation/17/ui5.yaml +8 -1
  531. package/test/sap/ui/core/demokit/tutorial/navigation/17/webapp/index.html +1 -1
  532. package/test/sap/ui/core/demokit/tutorial/navigation/index.html +2 -2
  533. package/test/sap/ui/core/demokit/tutorial/odatav4/01/package.json +2 -6
  534. package/test/sap/ui/core/demokit/tutorial/odatav4/01/ui5.yaml +9 -0
  535. package/test/sap/ui/core/demokit/tutorial/odatav4/02/package.json +2 -6
  536. package/test/sap/ui/core/demokit/tutorial/odatav4/02/ui5.yaml +9 -0
  537. package/test/sap/ui/core/demokit/tutorial/odatav4/03/package.json +2 -6
  538. package/test/sap/ui/core/demokit/tutorial/odatav4/03/ui5.yaml +9 -0
  539. package/test/sap/ui/core/demokit/tutorial/odatav4/04/package.json +2 -6
  540. package/test/sap/ui/core/demokit/tutorial/odatav4/04/ui5.yaml +9 -0
  541. package/test/sap/ui/core/demokit/tutorial/odatav4/05/package.json +2 -6
  542. package/test/sap/ui/core/demokit/tutorial/odatav4/05/ui5.yaml +9 -0
  543. package/test/sap/ui/core/demokit/tutorial/odatav4/06/package.json +2 -6
  544. package/test/sap/ui/core/demokit/tutorial/odatav4/06/ui5.yaml +9 -0
  545. package/test/sap/ui/core/demokit/tutorial/odatav4/06/webapp/controller/App.controller.js +5 -5
  546. package/test/sap/ui/core/demokit/tutorial/odatav4/07/package.json +2 -6
  547. package/test/sap/ui/core/demokit/tutorial/odatav4/07/ui5.yaml +9 -0
  548. package/test/sap/ui/core/demokit/tutorial/odatav4/07/webapp/controller/App.controller.js +7 -7
  549. package/test/sap/ui/core/demokit/tutorial/odatav4/08/package.json +2 -6
  550. package/test/sap/ui/core/demokit/tutorial/odatav4/08/ui5.yaml +9 -0
  551. package/test/sap/ui/core/demokit/tutorial/odatav4/08/webapp/controller/App.controller.js +7 -7
  552. package/test/sap/ui/core/demokit/tutorial/odatav4/08/webapp/test/integration/opaTests.qunit.js +5 -5
  553. package/test/sap/ui/core/demokit/tutorial/odatav4/08/webapp/test/integration/pages/Tutorial.js +1 -1
  554. package/test/sap/ui/core/demokit/tutorial/odatav4/09/package.json +2 -6
  555. package/test/sap/ui/core/demokit/tutorial/odatav4/09/ui5.yaml +9 -0
  556. package/test/sap/ui/core/demokit/tutorial/odatav4/09/webapp/controller/App.controller.js +7 -7
  557. package/test/sap/ui/core/demokit/tutorial/odatav4/10/package.json +2 -6
  558. package/test/sap/ui/core/demokit/tutorial/odatav4/10/ui5.yaml +9 -0
  559. package/test/sap/ui/core/demokit/tutorial/odatav4/10/webapp/controller/App.controller.js +7 -7
  560. package/test/sap/ui/core/demokit/tutorial/odatav4/11/package.json +2 -6
  561. package/test/sap/ui/core/demokit/tutorial/odatav4/11/ui5.yaml +9 -0
  562. package/test/sap/ui/core/demokit/tutorial/odatav4/11/webapp/controller/App.controller.js +7 -7
  563. package/test/sap/ui/core/demokit/tutorial/odatav4/11/webapp/test/integration/opaTests.qunit.js +5 -5
  564. package/test/sap/ui/core/demokit/tutorial/odatav4/11/webapp/test/integration/pages/Tutorial.js +1 -1
  565. package/test/sap/ui/core/demokit/tutorial/troubleshooting/01/package.json +2 -5
  566. package/test/sap/ui/core/demokit/tutorial/troubleshooting/01/ui5.yaml +8 -0
  567. package/test/sap/ui/core/demokit/tutorial/troubleshooting/01/webapp/test/integration/opaTests.qunit.js +6 -6
  568. package/test/sap/ui/core/frameoptions/createcontent.js +7 -6
  569. package/test/sap/ui/core/internal/samples/client/MusicCollection/index.html +1 -1
  570. package/test/sap/ui/core/internal/samples/composite/xmlcomposite/exStringAndFloat/Test.controller.js +3 -2
  571. package/test/sap/ui/core/internal/samples/odata/twoFields/Opa.qunit.html +1 -1
  572. package/test/sap/ui/core/internal/samples/odata/twoFields/Opa.qunit.js +8 -8
  573. package/test/sap/ui/core/internal/samples/odata/twoFields/index.html +1 -1
  574. package/test/sap/ui/core/internal/samples/odata/v2/Products/Opa.qunit.html +1 -1
  575. package/test/sap/ui/core/internal/samples/odata/v2/Products/Opa.qunit.js +7 -7
  576. package/test/sap/ui/core/internal/samples/odata/v2/Products/index.html +1 -1
  577. package/test/sap/ui/core/internal/samples/odata/v2/SalesOrders/Component.js +3 -2
  578. package/test/sap/ui/core/internal/samples/odata/v2/SalesOrders/MIT.SalesOrders(V2).ODLB.create.html +2 -0
  579. package/test/sap/ui/core/internal/samples/odata/v2/SalesOrders/Main.controller.js +3 -3
  580. package/test/sap/ui/core/internal/samples/odata/v2/SalesOrders/Opa.qunit.html +1 -1
  581. package/test/sap/ui/core/internal/samples/odata/v2/SalesOrders/Opa.qunit.js +9 -6
  582. package/test/sap/ui/core/internal/samples/odata/v2/SalesOrders/SandboxModel.js +3 -0
  583. package/test/sap/ui/core/internal/samples/odata/v2/SalesOrders/data/ODLB.create/TC3/SalesOrderSet_desc_4-1.json +16 -0
  584. package/test/sap/ui/core/internal/samples/odata/v2/SalesOrders/index.html +1 -1
  585. package/test/sap/ui/core/internal/samples/odata/v2/SalesOrders/tests/ODataListBinding.create/TC3_SalesOrders_InlineCreationRow.js +9 -0
  586. package/test/sap/ui/core/internal/samples/odata/v2/TreeTable/Component.js +3 -2
  587. package/test/sap/ui/core/internal/samples/odata/v2/TreeTable/Main.controller.js +3 -3
  588. package/test/sap/ui/core/internal/samples/odata/v2/TreeTable/index.html +1 -1
  589. package/test/sap/ui/core/qunit/BlockLayerUtils.qunit.js +9 -7
  590. package/test/sap/ui/core/qunit/CalculatedFields.qunit.js +4 -2
  591. package/test/sap/ui/core/qunit/ContextMenuSupport.qunit.js +3 -2
  592. package/test/sap/ui/core/qunit/ControlDefinition.qunit.js +11 -10
  593. package/test/sap/ui/core/qunit/ControlRenderer.qunit.js +218 -223
  594. package/test/sap/ui/core/qunit/Core.qunit.js +35 -31
  595. package/test/sap/ui/core/qunit/CoreEvents.qunit.js +17 -15
  596. package/test/sap/ui/core/qunit/Core_repeatedExecution.qunit.js +3 -3
  597. package/test/sap/ui/core/qunit/CustomStyleClassSupport.qunit.js +4 -3
  598. package/test/sap/ui/core/qunit/Element_data.qunit.js +5 -5
  599. package/test/sap/ui/core/qunit/Element_destroy.qunit.js +6 -4
  600. package/test/sap/ui/core/qunit/Element_focus.qunit.js +25 -24
  601. package/test/sap/ui/core/qunit/Element_metadata_selector.qunit.js +3 -2
  602. package/test/sap/ui/core/qunit/EnabledPropagator.qunit.js +7 -6
  603. package/test/sap/ui/core/qunit/ExpressionParser.qunit.js +1 -1
  604. package/test/sap/ui/core/qunit/FastNavigationWithWebComponents.qunit.js +5 -5
  605. package/test/sap/ui/core/qunit/FieldGroup.qunit.js +9 -6
  606. package/test/sap/ui/core/qunit/FocusHandler.qunit.js +7 -6
  607. package/test/sap/ui/core/qunit/Fragment.qunit.js +35 -34
  608. package/test/sap/ui/core/qunit/Fragment_legacyAPIs.qunit.js +51 -50
  609. package/test/sap/ui/core/qunit/HTML.qunit.js +32 -32
  610. package/test/sap/ui/core/qunit/Icon.qunit.js +66 -65
  611. package/test/sap/ui/core/qunit/IconPool.qunit.js +2 -1
  612. package/test/sap/ui/core/qunit/InvisibleText.qunit.js +13 -12
  613. package/test/sap/ui/core/qunit/Lib.qunit.js +8 -8
  614. package/test/sap/ui/core/qunit/LocalBusyIndicator.qunit.js +24 -24
  615. package/test/sap/ui/core/qunit/RenderManager.qunit.js +54 -53
  616. package/test/sap/ui/core/qunit/ResizeHandler.qunit.js +8 -9
  617. package/test/sap/ui/core/qunit/ScrollBar.qunit.js +7 -6
  618. package/test/sap/ui/core/qunit/ShortcutHints.qunit.js +13 -11
  619. package/test/sap/ui/core/qunit/StashedControlSupport.qunit.js +6 -5
  620. package/test/sap/ui/core/qunit/ThemeParameters.qunit.js +5 -4
  621. package/test/sap/ui/core/qunit/Theming.qunit.js +88 -50
  622. package/test/sap/ui/core/qunit/Theming_default_and_fallback.qunit.js +130 -0
  623. package/test/sap/ui/core/qunit/TooltipBase.qunit.js +4 -3
  624. package/test/sap/ui/core/qunit/UIArea.qunit.js +248 -18
  625. package/test/sap/ui/core/qunit/analytics/testsuite4analytics.qunit.js +9 -8
  626. package/test/sap/ui/core/qunit/app/MessageListBinding.qunit.js +10 -10
  627. package/test/sap/ui/core/qunit/base/Config.qunit.js +12 -2
  628. package/test/sap/ui/core/qunit/base/Config_cascade.qunit.js +123 -52
  629. package/test/sap/ui/core/qunit/base/Config_meta.qunit.html +2 -0
  630. package/test/sap/ui/core/qunit/base/config/GlobalConfig.js +3 -1
  631. package/test/sap/ui/core/qunit/base/config/GlobalConfigForCascade.js +4 -1
  632. package/test/sap/ui/core/qunit/bootstrap/BootstrapMinimal.qunit.js +3 -3
  633. package/test/sap/ui/core/qunit/bootstrap/BootstrapMinimal_legacyAPIs.qunit.js +13 -11
  634. package/test/sap/ui/core/qunit/bootstrap/BootstrapPreload.qunit.js +1 -1
  635. package/test/sap/ui/core/qunit/bootstrap/BootstrapWithCustomScript_legacyAPIs.qunit.js +13 -11
  636. package/test/sap/ui/core/qunit/bootstrap/BootstrapWithNoJQuery_legacyAPIs.qunit.js +7 -5
  637. package/test/sap/ui/core/qunit/bootstrap/CalendarClassLoadingWithCustomBootTaskAndPreload.qunit.js +12 -14
  638. package/test/sap/ui/core/qunit/bootstrap/CfgDefaults.qunit.js +3 -2
  639. package/test/sap/ui/core/qunit/bootstrap/CfgFromTagAttributes.qunit.js +1 -1
  640. package/test/sap/ui/core/qunit/bootstrap/_checkCoreAndLibraryBooted.qunit.js +1 -1
  641. package/test/sap/ui/core/qunit/bootstrap/testsuite.bootstrap.qunit.js +12 -6
  642. package/test/sap/ui/core/qunit/component/Component.qunit.js +14 -15
  643. package/test/sap/ui/core/qunit/component/Component_unavoidablySync.qunit.js +4 -3
  644. package/test/sap/ui/core/qunit/component/Customizing.qunit.js +4 -5
  645. package/test/sap/ui/core/qunit/component/Customizing_async.qunit.js +4 -3
  646. package/test/sap/ui/core/qunit/component/Customizing_disabled.qunit.js +4 -6
  647. package/test/sap/ui/core/qunit/component/Customizing_legacyAPIs.qunit.js +3 -5
  648. package/test/sap/ui/core/qunit/component/Customizing_multi.qunit.js +3 -6
  649. package/test/sap/ui/core/qunit/component/Customizing_unavoidablySync.qunit.js +5 -8
  650. package/test/sap/ui/core/qunit/component/ExtensionPoint.qunit.js +4 -5
  651. package/test/sap/ui/core/qunit/component/ExtensionPoint_unavoidablySync.qunit.js +4 -3
  652. package/test/sap/ui/core/qunit/component/UIComponent.qunit.js +19 -19
  653. package/test/sap/ui/core/qunit/component/UIComponent_unavoidablySync.qunit.js +19 -19
  654. package/test/sap/ui/core/qunit/composite/XMLComposite.qunit.js +43 -43
  655. package/test/sap/ui/core/qunit/csp/ContentSecurityPolicy.qunit.js +18 -13
  656. package/test/sap/ui/core/qunit/dnd/DragAndDrop.qunit.js +19 -18
  657. package/test/sap/ui/core/qunit/dnd/DragInfo.qunit.js +13 -12
  658. package/test/sap/ui/core/qunit/dnd/DropInfo.qunit.js +5 -4
  659. package/test/sap/ui/core/qunit/generic/ControlMemoryLeaks.qunit.js +7 -6
  660. package/test/sap/ui/core/qunit/generic/DuplicateIdCheck.qunit.js +7 -6
  661. package/test/sap/ui/core/qunit/generic/legacy/ControlIterator.qunit.js +6 -6
  662. package/test/sap/ui/core/qunit/generic/legacy/ControlMemoryLeaks.qunit.js +20 -17
  663. package/test/sap/ui/core/qunit/generic/legacy/DuplicateIdCheck.qunit.js +8 -7
  664. package/test/sap/ui/core/qunit/i18n/LocaleData.qunit.js +1 -2
  665. package/test/sap/ui/core/qunit/internal/1Ring.qunit.html +14 -19
  666. package/test/sap/ui/core/qunit/internal/1Ring.qunit.js +34 -22
  667. package/test/sap/ui/core/qunit/internal/ODataV4.qunit.html +6 -6
  668. package/test/sap/ui/core/qunit/internal/testsuite.feature-odata-v4.qunit.js +4 -0
  669. package/test/sap/ui/core/qunit/isBehindOtherElement.qunit.js +7 -7
  670. package/test/sap/ui/core/qunit/jquery-mobile-custom.qunit.js +3 -3
  671. package/test/sap/ui/core/qunit/jquery.sap.events.qunit.js +3 -2
  672. package/test/sap/ui/core/qunit/jquery.sap.ui.qunit.js +16 -16
  673. package/test/sap/ui/core/qunit/messages/{MessageManager.qunit.js → Messaging.qunit.js} +46 -49
  674. package/test/sap/ui/core/qunit/messages/messagesDataBinding.qunit.js +3 -1
  675. package/test/sap/ui/core/qunit/messages/messagesEnd2End.qunit.js +10 -10
  676. package/test/sap/ui/core/qunit/messages/messagesGeneral.qunit.js +36 -46
  677. package/test/sap/ui/core/qunit/messages/messagesUsage.qunit.js +25 -36
  678. package/test/sap/ui/core/qunit/messages/testsuite.messaging.base.qunit.js +2 -2
  679. package/test/sap/ui/core/qunit/model/Binding.qunit.js +8 -8
  680. package/test/sap/ui/core/qunit/model/controlhelper/TreeBindingProxy.qunit.js +24 -14
  681. package/test/sap/ui/core/qunit/mvc/AnyView.qunit.js +7 -6
  682. package/test/sap/ui/core/qunit/mvc/AnyViewAsync.qunit.js +3 -2
  683. package/test/sap/ui/core/qunit/mvc/XMLTemplateProcessorAsync_unavoidablyUsingInlineStyle.qunit.js +5 -4
  684. package/test/sap/ui/core/qunit/mvc/XMLTemplateProcessorRequireXML.qunit.js +8 -9
  685. package/test/sap/ui/core/qunit/mvc/XMLView.qunit.js +45 -40
  686. package/test/sap/ui/core/qunit/mvc/testdata/stashed/OP.html +1 -1
  687. package/test/sap/ui/core/qunit/mvc/viewprocessing/ViewProcessing.qunit.js +15 -20
  688. package/test/sap/ui/core/qunit/mvc/viewprocessing/ViewProcessing_legacyAPIs.qunit.js +20 -25
  689. package/test/sap/ui/core/qunit/mvc_legacyAPIs/AnyViewAsync_legacyAPIs.qunit.js +10 -11
  690. package/test/sap/ui/core/qunit/mvc_legacyAPIs/AnyView_legacyAPIs.qunit.js +7 -6
  691. package/test/sap/ui/core/qunit/mvc_legacyAPIs/HTMLView_legacyAPIs.qunit.js +8 -7
  692. package/test/sap/ui/core/qunit/mvc_legacyAPIs/XMLTemplateProcessorRequireXML_legacyAPIs.qunit.js +7 -7
  693. package/test/sap/ui/core/qunit/mvc_legacyAPIs/XMLView_legacyAPIs.qunit.js +40 -47
  694. package/test/sap/ui/core/qunit/odata/ODataAnnotations.qunit.js +52 -20
  695. package/test/sap/ui/core/qunit/odata/{ODataListBinding.qunit.js → ODataListBinding_legacyAPIs.qunit.js} +27 -0
  696. package/test/sap/ui/core/qunit/odata/ODataMessageParser.qunit.js +44 -48
  697. package/test/sap/ui/core/qunit/odata/ODataMessageParserNoFakeService.qunit.js +8 -8
  698. package/test/sap/ui/core/qunit/odata/ODataMetaModel.qunit.js +66 -29
  699. package/test/sap/ui/core/qunit/odata/ODataMetadata.qunit.js +17 -7
  700. package/test/sap/ui/core/qunit/odata/ODataTreeBindingAdapter.qunit.js +147 -89
  701. package/test/sap/ui/core/qunit/odata/ODataUtils.qunit.js +1 -0
  702. package/test/sap/ui/core/qunit/odata/type/DateTimeBase.qunit.js +33 -12
  703. package/test/sap/ui/core/qunit/odata/type/TimeOfDay.qunit.js +33 -12
  704. package/test/sap/ui/core/qunit/odata/v2/CanonicalRequests.qunit.js +5 -4
  705. package/test/sap/ui/core/qunit/odata/v2/ODataListBindingNoFakeService.qunit.js +63 -13
  706. package/test/sap/ui/core/qunit/odata/v2/ODataModel.integration.qunit.js +281 -59
  707. package/test/sap/ui/core/qunit/odata/v2/ODataModelNoFakeService.qunit.js +28 -4
  708. package/test/sap/ui/core/qunit/odata/v2/ODataTreeBindingFlatNoFakeService.qunit.js +21 -0
  709. package/test/sap/ui/core/qunit/odata/v2/ODataTreeBindingNoFakeService.qunit.js +1 -2
  710. package/test/sap/ui/core/qunit/odata/v2/ODataV2ListBinding.qunit.js +7 -207
  711. package/test/sap/ui/core/qunit/odata/v2/ODataV2ListBinding_Filter_legacyAPIs.qunit.js +281 -0
  712. package/test/sap/ui/core/qunit/odata/v2/ODataV2Model.qunit.js +9 -8
  713. package/test/sap/ui/core/qunit/odata/v2/ODataV2TreeBinding.qunit.js +1 -0
  714. package/test/sap/ui/core/qunit/odata/v2/V2ODataModel.qunit.js +95 -85
  715. package/test/sap/ui/core/qunit/odata/v2/V2ODataModelB.qunit.js +70 -67
  716. package/test/sap/ui/core/qunit/odata/v2/V2ODataModelDataState.qunit.js +19 -20
  717. package/test/sap/ui/core/qunit/odata/v2/testsuite.odatav2.qunit.js +4 -0
  718. package/test/sap/ui/core/qunit/odata/v4/Context.qunit.js +50 -27
  719. package/test/sap/ui/core/qunit/odata/v4/ODataBinding.qunit.js +5 -0
  720. package/test/sap/ui/core/qunit/odata/v4/ODataContextBinding.qunit.js +4 -3
  721. package/test/sap/ui/core/qunit/odata/v4/ODataListBinding.qunit.js +103 -14
  722. package/test/sap/ui/core/qunit/odata/v4/ODataModel.integration.qunit.js +1027 -31
  723. package/test/sap/ui/core/qunit/odata/v4/ODataModel.qunit.js +18 -17
  724. package/test/sap/ui/core/qunit/odata/v4/lib/_AggregationCache.qunit.js +272 -36
  725. package/test/sap/ui/core/qunit/odata/v4/lib/_Cache.qunit.js +115 -82
  726. package/test/sap/ui/core/qunit/odata/v4/lib/_Helper.qunit.js +10 -0
  727. package/test/sap/ui/core/qunit/odata/v4/lib/_Requestor.qunit.js +108 -10
  728. package/test/sap/ui/core/qunit/odata/v4/lib/_V2Requestor.qunit.js +1 -1
  729. package/test/sap/ui/core/qunit/opa/Opa5PageObject.qunit.js +5 -6
  730. package/test/sap/ui/core/qunit/opa/OpaPlugin.qunit.js +29 -42
  731. package/test/sap/ui/core/qunit/opa/RecordReplay.qunit.js +13 -14
  732. package/test/sap/ui/core/qunit/opa/_ControlFinder.qunit.js +5 -4
  733. package/test/sap/ui/core/qunit/opa/actions/Action.qunit.js +6 -5
  734. package/test/sap/ui/core/qunit/opa/actions/EnterText.qunit.js +22 -21
  735. package/test/sap/ui/core/qunit/opa/actions/Press.qunit.js +60 -56
  736. package/test/sap/ui/core/qunit/opa/autowaiter/_cssAnimationWaiter.js +5 -7
  737. package/test/sap/ui/core/qunit/opa/autowaiter/_cssTransitionWaiter.js +5 -9
  738. package/test/sap/ui/core/qunit/opa/autowaiter/_jsAnimationWaiter.js +5 -6
  739. package/test/sap/ui/core/qunit/opa/autowaiter/_navigationContainerWaiter.js +5 -4
  740. package/test/sap/ui/core/qunit/opa/autowaiter/_resourceWaiter.js +21 -20
  741. package/test/sap/ui/core/qunit/opa/fixture/bindingPath.js +6 -5
  742. package/test/sap/ui/core/qunit/opa/matchers/Interactable.qunit.js +7 -5
  743. package/test/sap/ui/core/qunit/opa/matchers/LabelFor.qunit.js +4 -3
  744. package/test/sap/ui/core/qunit/opa/matchers/Sibling.qunit.js +4 -3
  745. package/test/sap/ui/core/qunit/opa/matchers/Visible.qunit.js +6 -5
  746. package/test/sap/ui/core/qunit/opa/matchers/_Busy.qunit.js +28 -27
  747. package/test/sap/ui/core/qunit/opa/matchers/_Editable.qunit.js +11 -10
  748. package/test/sap/ui/core/qunit/opa/matchers/_Enabled.qunit.js +11 -10
  749. package/test/sap/ui/core/qunit/opa/matchers/_Visitor.qunit.js +5 -4
  750. package/test/sap/ui/core/qunit/opa/opa5/actions.qunit.js +8 -7
  751. package/test/sap/ui/core/qunit/opa/opa5/basics.qunit.js +12 -17
  752. package/test/sap/ui/core/qunit/opa/opa5/logging.qunit.js +5 -6
  753. package/test/sap/ui/core/qunit/opa/opa5/matchers.qunit.js +6 -5
  754. package/test/sap/ui/core/qunit/opa/selectors/_BindingPath.js +10 -9
  755. package/test/sap/ui/core/qunit/opa/selectors/_ControlSelectorGenerator.js +6 -7
  756. package/test/sap/ui/core/qunit/opa/selectors/_ControlSelectorValidator.js +4 -3
  757. package/test/sap/ui/core/qunit/opa/selectors/_DropdownItem.js +4 -3
  758. package/test/sap/ui/core/qunit/opa/selectors/_GlobalID.js +4 -3
  759. package/test/sap/ui/core/qunit/opa/selectors/_LabelFor.js +4 -3
  760. package/test/sap/ui/core/qunit/opa/selectors/_Properties.js +33 -27
  761. package/test/sap/ui/core/qunit/opa/selectors/_Selector.js +7 -10
  762. package/test/sap/ui/core/qunit/opa/selectors/_TableRowItem.js +5 -7
  763. package/test/sap/ui/core/qunit/opa/selectors/_ViewID.js +5 -7
  764. package/test/sap/ui/core/qunit/performance/trace/Interaction.qunit.js +35 -28
  765. package/test/sap/ui/core/qunit/routing/Placeholder.qunit.js +11 -9
  766. package/test/sap/ui/core/qunit/routing/PlaceholderOptOut.qunit.js +5 -3
  767. package/test/sap/ui/core/qunit/routing/async/Router.qunit.js +57 -0
  768. package/test/sap/ui/core/qunit/routing/fixture/historyIframe/iframe/index.html +1 -1
  769. package/test/sap/ui/core/qunit/routing/fixture/router/component/2LevelsMultiNavTo/Child/Component.js +30 -0
  770. package/test/sap/ui/core/qunit/routing/fixture/router/component/2LevelsMultiNavTo/Child/manifest.json +25 -0
  771. package/test/sap/ui/core/qunit/routing/fixture/router/component/2LevelsMultiNavTo/Parent/Component.js +14 -0
  772. package/test/sap/ui/core/qunit/routing/fixture/router/component/2LevelsMultiNavTo/Parent/manifest.json +51 -0
  773. package/test/sap/ui/core/qunit/routing/fixture/router/component/2LevelsMultiNavTo/Parent/view/NotFound.view.xml +3 -0
  774. package/test/sap/ui/core/qunit/routing/fixture/router/component/2LevelsMultiNavTo/Parent/view/RootView.view.xml +5 -0
  775. package/test/sap/ui/core/qunit/rule/app/syncXHR.qunit.js +24 -17
  776. package/test/sap/ui/core/qunit/rule/app/syncXHRBootstrap.qunit.js +3 -3
  777. package/test/sap/ui/core/qunit/rule/app/syncXHRBootstrapDebug.qunit.js +3 -3
  778. package/test/sap/ui/core/qunit/rule/config/asynchronousXMLViews.qunit.js +9 -18
  779. package/test/sap/ui/core/qunit/support/techinfo/TechnicalInfoTestbench.html +3 -1
  780. package/test/sap/ui/core/qunit/test/starter/find/index.html +1 -1
  781. package/test/sap/ui/core/qunit/test/starter/find/main.js +3 -2
  782. package/test/sap/ui/core/qunit/testsuite.core.framework.qunit.js +0 -6
  783. package/test/sap/ui/core/qunit/testsuites/testsuite.base.configuration.qunit.js +1 -1
  784. package/test/sap/ui/core/qunit/testsuites/testsuite.databinding.qunit.js +10 -6
  785. package/test/sap/ui/core/qunit/testsuites/testsuite.theming.qunit.js +27 -4
  786. package/test/sap/ui/core/qunit/tmpl/Template.qunit.js +36 -35
  787. package/test/sap/ui/core/qunit/types/DateFormat.qunit.js +13 -0
  788. package/test/sap/ui/core/qunit/types/DateInterval.qunit.js +2 -2
  789. package/test/sap/ui/core/qunit/util/BusyIndicatorNoCore.qunit.js +2 -2
  790. package/test/sap/ui/core/qunit/util/InvisibleMessage.qunit.js +4 -4
  791. package/test/sap/ui/core/qunit/util/LabelEnablement.qunit.js +27 -31
  792. package/test/sap/ui/core/qunit/util/Popup.qunit.js +27 -27
  793. package/test/sap/ui/core/qunit/util/ResponsivePaddingsEnablement.qunit.js +13 -9
  794. package/test/sap/ui/core/qunit/util/XMLPreprocessor.qunit.js +37 -6
  795. package/test/sap/ui/core/qunit/util/jQuery.sap.measure.qunit.js +1 -1
  796. package/test/sap/ui/core/qunit/util/jquery.sap.dom.qunit.js +3 -2
  797. package/test/sap/ui/core/qunit/util/reflection/JsControlTreeModifier.qunit.js +8 -8
  798. package/test/sap/ui/core/qunit/util/reflection/XmlTreeModifier.qunit.js +24 -24
  799. package/test/sap/ui/core/qunit/util/static/TechnicalInfoTestbenchInit.js +8 -2
  800. package/test/sap/ui/core/qunit/webc/WebComponent.qunit.js +188 -0
  801. package/test/sap/ui/core/qunit/webc/testsuite.webc.qunit.html +14 -0
  802. package/test/sap/ui/core/qunit/webc/testsuite.webc.qunit.js +22 -0
  803. package/test/sap/ui/core/relnotes/changes-1.117.json +1 -34
  804. package/test/sap/ui/core/relnotes/changes-1.118.json +143 -0
  805. package/test/sap/ui/core/samples/components/resourcesCSS/index.html +1 -1
  806. package/test/sap/ui/core/samples/databinding/DataBinding.html +3 -1
  807. package/test/sap/ui/core/samples/databinding/DataBindingAsyncType.html +3 -2
  808. package/test/sap/ui/core/samples/databinding/DataBindingCalculatedFields.html +3 -1
  809. package/test/sap/ui/core/samples/databinding/DataBindingList.html +3 -1
  810. package/test/sap/ui/core/samples/databinding/DataBindingListNamedModel.html +3 -1
  811. package/test/sap/ui/core/samples/databinding/DataBindingListXML.html +3 -1
  812. package/test/sap/ui/core/samples/databinding/DataBindingMultiModel.html +3 -1
  813. package/test/sap/ui/core/samples/databinding/DataBindingSortingFiltering.html +3 -1
  814. package/test/sap/ui/core/samples/databinding/DataBindingTreeLarge.html +102 -113
  815. package/test/sap/ui/core/samples/databinding/DataBindingTwoWay.html +3 -1
  816. package/test/sap/ui/core/samples/databinding/DataBindingTwoWayTable.html +90 -89
  817. package/test/sap/ui/core/samples/databinding/DataBindingValidation.html +149 -148
  818. package/test/sap/ui/core/samples/databinding/DataBindingXML.html +3 -2
  819. package/test/sap/ui/core/samples/databinding/DatabindingMessages.html +158 -153
  820. package/test/sap/ui/core/samples/databinding/ODatabindingMessages.html +4 -6
  821. package/test/sap/ui/core/samples/databinding/UnitTableMain.js +3 -4
  822. package/test/sap/ui/core/samples/extensions/index_legacyAPIs.html +15 -13
  823. package/test/sap/ui/core/samples/formatting/controller/ChooseFormatOptions.controller.js +3 -2
  824. package/test/sap/ui/core/samples/mvc/ExtendedXMLViewEventHandlerSyntax.html +5 -3
  825. package/test/sap/ui/core/samples/mvc/XMLViewBindableAggregation.html +1 -1
  826. package/test/testsuite/testframe.html +4 -4
  827. package/src/ui5-boot.js +0 -50
  828. package/test/sap/ui/core/qunit/CoreLock.qunit.js +0 -61
  829. package/test/sap/ui/core/qunit/internal/ODataV4.qunit.js +0 -30
  830. /package/test/sap/ui/core/qunit/{MasterDetail.qunit.js → MasterDetail_legacyAPIs.qunit.js} +0 -0
  831. /package/test/sap/ui/core/qunit/odata/{ODataModel.qunit.js → ODataModel_legacyAPIs.qunit.js} +0 -0
  832. /package/test/sap/ui/core/qunit/odata/{ODataSharedMetadata.qunit.js → ODataSharedMetadata_legacyAPIs.qunit.js} +0 -0
  833. /package/test/sap/ui/core/qunit/odata/{ODataTreeBinding.qunit.js → ODataTreeBinding_legacyAPIs.qunit.js} +0 -0
@@ -92,7 +92,7 @@ sap.ui.define([
92
92
  * @extends sap.ui.model.odata.type.ODataType
93
93
  * @public
94
94
  * @since 1.37.0
95
- * @version 1.117.0
95
+ * @version 1.118.0
96
96
  */
97
97
  var TimeOfDay = ODataType.extend("sap.ui.model.odata.type.TimeOfDay", {
98
98
  constructor : function (oFormatOptions, oConstraints) {
@@ -292,6 +292,8 @@ sap.ui.define([
292
292
 
293
293
  /**
294
294
  * Returns the model value for the given ISO string.
295
+ * The milliseconds part of the string is either truncated or padded with <code>0</code>, so that its length
296
+ * fits the types precision constraint.
295
297
  *
296
298
  * @param {string|null} sISOString
297
299
  * A string according to ISO 8601, as returned by {@link #getISOStringFromModelValue}
@@ -304,7 +306,9 @@ sap.ui.define([
304
306
  * @ui5-restricted sap.fe, sap.suite.ui.generic.template, sap.ui.comp, sap.ui.generic
305
307
  */
306
308
  TimeOfDay.prototype.getModelValueFromISOString = function (sISOString) {
307
- return sISOString ? sISOString : null;
309
+ return sISOString
310
+ ? this.getModelFormat().format(UI5Date.getInstance("1970-01-01T" + sISOString + "Z"))
311
+ : null;
308
312
  };
309
313
 
310
314
  /**
@@ -66,7 +66,7 @@ sap.ui.define([
66
66
  * @extends sap.ui.model.type.Unit
67
67
  * @public
68
68
  * @since 1.63.0
69
- * @version 1.117.0
69
+ * @version 1.118.0
70
70
  */
71
71
  var Unit = BaseUnit.extend("sap.ui.model.odata.type.Unit", {
72
72
  constructor : function (oFormatOptions, oConstraints, aDynamicFormatOptionNames) {
@@ -64,7 +64,7 @@ sap.ui.define([
64
64
  * @hideconstructor
65
65
  * @public
66
66
  * @since 1.93.0
67
- * @version 1.117.0
67
+ * @version 1.118.0
68
68
  */
69
69
  var Context = BaseContext.extend("sap.ui.model.odata.v2.Context", {
70
70
  constructor : function (oModel, sPath, sDeepPath, oCreatePromise, bInactive,
@@ -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.117.0
39
+ * @version 1.118.0
40
40
  *
41
41
  * @public
42
42
  * @since 1.37.0
@@ -277,6 +277,21 @@ sap.ui.define([
277
277
  return aContexts;
278
278
  };
279
279
 
280
+ /**
281
+ * Returns the context at the given index.
282
+ *
283
+ * @param {number} iIndex The index of the context
284
+ *
285
+ * @returns {sap.ui.model.odata.v2.Context|undefined}
286
+ * The context at the given index or <code>undefined</code> if no context exists at the given index
287
+ *
288
+ * @private
289
+ * @ui5-restricted sap.ui.table
290
+ */
291
+ ODataListBinding.prototype.getContextByIndex = function (iIndex) {
292
+ return this._getContexts(iIndex, 1)[0];
293
+ };
294
+
280
295
  /**
281
296
  * Return contexts for the list.
282
297
  *
@@ -2128,10 +2143,15 @@ sap.ui.define([
2128
2143
  bFirstCreateAtStart = this.isFirstCreateAtEnd() === false,
2129
2144
  aKeys = bFirstCreateAtStart && this.aKeys.length
2130
2145
  ? aCreatedContexts.concat(this.aKeys)
2131
- : this.aKeys;
2146
+ : this.aKeys,
2147
+ iLimit = this.bLengthFinal ? this.iLength : undefined;
2148
+
2149
+ if (bFirstCreateAtStart && iLimit) {
2150
+ // when adding the created contexts to aKeys the final length has to be increased too
2151
+ iLimit += aCreatedContexts.length;
2152
+ }
2132
2153
 
2133
- aIntervals = ODataUtils._getReadIntervals(aKeys, iStartIndex, iLength, iMaximumPrefetchSize,
2134
- /*iLimit*/this.bLengthFinal ? this.iLength : undefined);
2154
+ aIntervals = ODataUtils._getReadIntervals(aKeys, iStartIndex, iLength, iMaximumPrefetchSize, iLimit);
2135
2155
  oInterval = ODataUtils._mergeIntervals(aIntervals);
2136
2156
 
2137
2157
  if (oInterval && bFirstCreateAtStart && this.aKeys.length) {
@@ -35,8 +35,8 @@ sap.ui.define([
35
35
  "sap/ui/base/SyncPromise",
36
36
  "sap/ui/core/Configuration",
37
37
  "sap/ui/core/library",
38
+ "sap/ui/core/Messaging",
38
39
  "sap/ui/core/message/Message",
39
- "sap/ui/core/message/MessageManager",
40
40
  "sap/ui/core/message/MessageParser",
41
41
  "sap/ui/model/_Helper",
42
42
  "sap/ui/model/BindingMode",
@@ -58,7 +58,7 @@ sap.ui.define([
58
58
  ], function(_CreatedContextsCache, Context, ODataAnnotations, ODataContextBinding, ODataListBinding,
59
59
  ODataTreeBinding, assert, Log, encodeURL, deepEqual, deepExtend, each, extend,
60
60
  isEmptyObject, isPlainObject, merge, uid, UriParameters, SyncPromise, Configuration,
61
- coreLibrary, Message, MessageManager, MessageParser, _Helper, BindingMode, BaseContext, FilterProcessor,
61
+ coreLibrary, Messaging, Message, MessageParser, _Helper, BindingMode, BaseContext, FilterProcessor,
62
62
  Model, CountMode, MessageScope, ODataMetadata, ODataMetaModel, ODataMessageParser,
63
63
  ODataPropertyBinding, ODataUtils, OperationMode, UpdateMethod, OData, URI, isCrossOriginURL
64
64
  ) {
@@ -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.117.0
216
+ * @version 1.118.0
217
217
  *
218
218
  * @public
219
219
  * @alias sap.ui.model.odata.v2.ODataModel
@@ -6427,7 +6427,7 @@ sap.ui.define([
6427
6427
  } else {
6428
6428
  delete this.mChangedEntities[sKey];
6429
6429
  }
6430
- MessageManager.removeMessages(this.getMessagesByEntity(sKey,
6430
+ Messaging.removeMessages(this.getMessagesByEntity(sKey,
6431
6431
  /*bExcludePersistent*/!bDeleteEntity));
6432
6432
 
6433
6433
  return pMetaDataLoaded;
@@ -6970,7 +6970,7 @@ sap.ui.define([
6970
6970
  });
6971
6971
  that._removeEntity(sKey);
6972
6972
  //cleanup Messages for created Entry
6973
- MessageManager.removeMessages(
6973
+ Messaging.removeMessages(
6974
6974
  this.getMessagesByEntity(oContext.getPath(), true));
6975
6975
  }
6976
6976
  };
@@ -7808,7 +7808,7 @@ sap.ui.define([
7808
7808
  /**
7809
7809
  * Sets the <code>MessageParser</code> that is invoked upon every back-end request.
7810
7810
  *
7811
- * This message parser analyzes the response and notifies the <code>MessageManager</code> about added and deleted messages.
7811
+ * This message parser analyzes the response and notifies the <code>Messaging</code> about added and deleted messages.
7812
7812
  *
7813
7813
  * @param {object|null} [oParser] The <code>MessageParser</code> instance that parses the responses and adds messages to the <code>MessageManager</code>
7814
7814
  * @return {this} Model instance for method chaining
@@ -93,7 +93,7 @@ sap.ui.define([
93
93
  * @extends sap.ui.model.TreeBinding
94
94
  * @hideconstructor
95
95
  * @public
96
- * @version 1.117.0
96
+ * @version 1.118.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
 
@@ -2609,16 +2609,42 @@ sap.ui.define([
2609
2609
  */
2610
2610
 
2611
2611
  /**
2612
- * Creates a new binding context related to this binding instance.
2612
+ * Creates a new entry for the tree.
2613
2613
  *
2614
- * The available API is the same as for the v2.ODataModel.
2615
- * See the API documentation here: {@link sap.ui.model.odata.v2.ODataModel#createEntry createEntry}.
2614
+ * A context object is returned which can be inserted in the tree hierarchy via
2615
+ * {@link sap.ui.model.odata.v2.ODataTreeBinding#addContexts addContexts}.
2616
+ * <b>Note:</b> The back-end request to create the entry is sent with the batch group stored at this binding's model
2617
+ * for this binding's resolved path.
2616
2618
  *
2617
- * This feature is only available when the underlying OData service exposes the "hierarchy-node-descendant-count-for" annotation.
2618
- * See the constructor documentation for more details.
2619
+ * This feature is only available when the underlying OData service exposes the
2620
+ * "hierarchy-node-descendant-count-for" annotation. See
2621
+ * {@link sap.ui.model.odata.v2.ODataModel#bindTree} for more details.
2619
2622
  *
2620
2623
  * @function
2621
2624
  * @name sap.ui.model.odata.v2.ODataTreeBinding.prototype.createEntry
2625
+ * @param {object} [mParameters]
2626
+ * A map of the following parameters:
2627
+ * @param {string} [mParameters.changeSetId]
2628
+ * The ID of the <code>ChangeSet</code> that this request should belong to
2629
+ * @param {function} [mParameters.created]
2630
+ * The callback function that is called after the metadata of the service has been loaded and the
2631
+ * {@link sap.ui.model.odata.v2.Context} instance for the newly created entry is available;
2632
+ * The {@link sap.ui.model.odata.v2.Context} instance for the newly created entry is passed as
2633
+ * the first and only parameter.
2634
+ * @param {function} [mParameters.error]
2635
+ * The error callback function
2636
+ * @param {Object<string,string>} [mParameters.headers]
2637
+ * A map of headers
2638
+ * @param {array|object} [mParameters.properties]
2639
+ * An array that specifies a set of properties or the initial data for the new entity as an object
2640
+ * @param {function} [mParameters.success]
2641
+ * The success callback function
2642
+ * @param {Object<string,string>} [mParameters.urlParameters]
2643
+ * A map of URL parameters
2644
+ * @returns {sap.ui.model.odata.v2.Context|undefined}
2645
+ * An OData V2 context object that points to the newly created entry, or
2646
+ * <code>undefined</code> if the service metadata are not yet loaded or if a
2647
+ * <code>created</code> callback parameter is given
2622
2648
  * @private
2623
2649
  * @ui5-restricted
2624
2650
  */
@@ -2635,6 +2661,7 @@ sap.ui.define([
2635
2661
  *
2636
2662
  * @function
2637
2663
  * @name sap.ui.model.odata.v2.ODataTreeBinding.prototype.submitChanges
2664
+ * @deprecated Since 1.104 use {@link sap.ui.model.odata.v2.ODataModel#submitChanges} instead
2638
2665
  * @private
2639
2666
  * @ui5-restricted
2640
2667
  */
@@ -42,7 +42,7 @@ sap.ui.define([
42
42
  * @hideconstructor
43
43
  * @public
44
44
  * @since 1.39.0
45
- * @version 1.117.0
45
+ * @version 1.118.0
46
46
  */
47
47
  Context = BaseContext.extend("sap.ui.model.odata.v4.Context", {
48
48
  constructor : constructor
@@ -94,6 +94,7 @@ sap.ui.define([
94
94
  this.oSyncCreatePromise = oCreatePromise;
95
95
  // a promise waiting for the deletion, also used as indicator for #isDeleted
96
96
  this.oDeletePromise = null;
97
+ this.bFiringCreateActivate = false; // see #doSetProperty
97
98
  this.iGeneration = iGeneration || 0;
98
99
  this.bInactive = bInactive || undefined; // be in sync with the annotation
99
100
  this.iIndex = iIndex;
@@ -242,6 +243,11 @@ sap.ui.define([
242
243
  * model itself ensures that all bindings depending on this context become unresolved, but no
243
244
  * attempt is made to restore these bindings in case of reset or failure.
244
245
  *
246
+ * Deleting a child node is supported (@experimental as of version 1.118.0) in a recursive
247
+ * hierarchy (see {@link sap.ui.model.odata.v4.ODataListBinding#setAggregation}). As a
248
+ * precondition, <code>oAggregation.expandTo</code> must be equal to one, and the context must
249
+ * not be {@link #setKeepAlive kept-alive} and hidden (for example due to a filter).
250
+ *
245
251
  * @param {string} [sGroupId]
246
252
  * The group ID to be used for the DELETE request; if not specified, the update group ID for
247
253
  * the context's binding is used, see {@link #getUpdateGroupId}. Since 1.81, if this context
@@ -275,7 +281,8 @@ sap.ui.define([
275
281
  * <li> a <code>null</code> group ID is used with a context which is not
276
282
  * {@link #isKeepAlive kept alive},
277
283
  * <li> the context is already being deleted,
278
- * <li> the context's binding is a list binding with data aggregation.
284
+ * <li> the context's binding is a list binding with data aggregation,
285
+ * <li> the restrictions for deleting from a recursive hierarchy (see above) are not met.
279
286
  * </ul>
280
287
  *
281
288
  * @function
@@ -298,7 +305,7 @@ sap.ui.define([
298
305
  if (this.isDeleted()) {
299
306
  throw new Error("Must not delete twice: " + this);
300
307
  }
301
- if (this.oBinding.mParameters.$$aggregation) {
308
+ if (_Helper.isDataAggregation(this.oBinding.mParameters)) {
302
309
  throw new Error("Cannot delete " + this + " when using data aggregation");
303
310
  }
304
311
  this.oBinding.checkSuspended();
@@ -536,17 +543,16 @@ sap.ui.define([
536
543
  bUpdating);
537
544
  }
538
545
 
539
- if (that.isInactive()) {
546
+ if (that.isInactive() && !that.bFiringCreateActivate) {
540
547
  // early cache update so that the new value is properly available on the
541
548
  // event listener
542
549
  // runs synchronously - setProperty calls fetchValue with $cached
543
550
  oCache.setProperty(oResult.propertyPath, vValue, sEntityPath, bUpdating)
544
551
  .catch(that.oModel.getReporter());
545
- if (oBinding.fireCreateActivate(that)) {
546
- that.bInactive = false;
547
- } else {
548
- that.bInactive = 1;
549
- }
552
+ that.bFiringCreateActivate = true;
553
+ that.bInactive = oBinding.fireCreateActivate(that) ? false : 1;
554
+ oCache.setInactive(sEntityPath, that.bInactive);
555
+ that.bFiringCreateActivate = false;
550
556
  }
551
557
 
552
558
  // if request is canceled fnPatchSent and fnErrorCallback are not called and
@@ -555,7 +561,7 @@ sap.ui.define([
555
561
  bSkipRetry ? undefined : errorCallback, oResult.editUrl, sEntityPath,
556
562
  oMetaModel.getUnitOrCurrencyPath(that.oModel.resolve(sPath, that)),
557
563
  oBinding.isPatchWithoutSideEffects(), patchSent,
558
- that.isEffectivelyKeptAlive.bind(that), that.isInactive()
564
+ that.isEffectivelyKeptAlive.bind(that)
559
565
  ).then(function () {
560
566
  firePatchCompleted(true);
561
567
  }, function (oError) {
@@ -1431,8 +1437,8 @@ sap.ui.define([
1431
1437
  * If the group ID has submit mode {@link sap.ui.model.odata.v4.SubmitMode.Auto} and there are
1432
1438
  * currently running updates or creates this method first waits for them to be processed.
1433
1439
  *
1434
- * The events 'dataRequested' and 'dataReceived' are not fired. Whatever should happen in the
1435
- * event handler attached to...
1440
+ * The 'dataRequested' and 'dataReceived' events are not fired unless a binding is refreshed
1441
+ * completely. Whatever should happen in the event handler attached to...
1436
1442
  * <ul>
1437
1443
  * <li> 'dataRequested', can instead be done before calling {@link #requestSideEffects}.
1438
1444
  * <li> 'dataReceived', can instead be done once the <code>oPromise</code> returned by
@@ -1440,7 +1446,7 @@ sap.ui.define([
1440
1446
  * <code>oPromise.then(function () {...}, function () {...})</code>).
1441
1447
  * </ul>
1442
1448
  *
1443
- * @param {object[]|string[]} aPathExpressions
1449
+ * @param {Array<sap.ui.model.odata.v4.ts.NavigationPropertyPathExpression|sap.ui.model.odata.v4.ts.PropertyPathExpression|string>} aPathExpressions
1444
1450
  * The "14.5.11 Expression edm:NavigationPropertyPath" or
1445
1451
  * "14.5.13 Expression edm:PropertyPath" objects describing which properties need to be
1446
1452
  * loaded because they may have changed due to side effects of a previous update, for example
@@ -1786,9 +1792,13 @@ sap.ui.define([
1786
1792
  *
1787
1793
  * @param {boolean} bKeepAlive
1788
1794
  * Whether to keep the context alive
1789
- * @param {function} [fnOnBeforeDestroy]
1790
- * Callback function that is executed once for a kept-alive context just before it is
1791
- * destroyed, see {@link #destroy}. Supported since 1.84.0
1795
+ * @param {function((sap.ui.model.odata.v4.Context|undefined))} [fnOnBeforeDestroy]
1796
+ * Callback function that is executed once for a kept-alive context without any argument just
1797
+ * before the context is destroyed; see {@link #destroy}. If a context has been replaced in a
1798
+ * list binding (see {@link #replaceWith} and
1799
+ * {@link sap.ui.odata.v4.ODataContextBinding#execute}), the callback will later also be
1800
+ * called just before the replacing context is destroyed, but with that context as the only
1801
+ * argument. Supported since 1.84.0
1792
1802
  * @param {boolean} [bRequestMessages]
1793
1803
  * Whether to request messages for this entity. Only used if <code>bKeepAlive</code> is
1794
1804
  * <code>true</code>. Determines the messages property from the annotation
@@ -74,7 +74,7 @@ sap.ui.define([
74
74
  * @mixes sap.ui.model.odata.v4.ODataParentBinding
75
75
  * @public
76
76
  * @since 1.37.0
77
- * @version 1.117.0
77
+ * @version 1.118.0
78
78
  *
79
79
  * @borrows sap.ui.model.odata.v4.ODataBinding#getGroupId as #getGroupId
80
80
  * @borrows sap.ui.model.odata.v4.ODataBinding#getRootBinding as #getRootBinding
@@ -328,7 +328,9 @@ sap.ui.define([
328
328
  * Registered event handlers are called with the change reason as parameter.
329
329
  *
330
330
  * @param {sap.ui.base.Event} oEvent
331
+ * The event object
331
332
  * @param {object} oEvent.getParameters
333
+ * Object containing all event parameters
332
334
  * @param {sap.ui.model.ChangeReason} oEvent.getParameters.reason
333
335
  * The reason for the 'change' event could be
334
336
  * <ul>
@@ -371,9 +373,11 @@ sap.ui.define([
371
373
  * {@link sap.ui.base.Event#cancelBubble oEvent.cancelBubble()}.
372
374
  *
373
375
  * @param {sap.ui.base.Event} oEvent
376
+ * The event object
374
377
  * @param {function} oEvent.cancelBubble
375
378
  * A callback function to prevent that the event is bubbled up to the model
376
379
  * @param {object} oEvent.getParameters
380
+ * Object containing all event parameters
377
381
  * @param {object} [oEvent.getParameters.data]
378
382
  * An empty data object if a back-end request succeeds
379
383
  * @param {Error} [oEvent.getParameters.error] The error object if a back-end request failed.
@@ -813,7 +817,7 @@ sap.ui.define([
813
817
  * @param {boolean} [bIgnoreETag]
814
818
  * Whether the entity's ETag should be actively ignored (If-Match:*); supported for bound
815
819
  * actions only, since 1.90.0. Ignored if there is no ETag (since 1.93.0).
816
- * @param {function} [fnOnStrictHandlingFailed]
820
+ * @param {function(sap.ui.core.message.Message[]):Promise<boolean>} [fnOnStrictHandlingFailed]
817
821
  * If this callback is given for an action, the preference "handling=strict" is applied. If
818
822
  * the service responds with the HTTP status code 412 and a
819
823
  * "Preference-applied: handling=strict" header, the details from the OData error response are
@@ -57,7 +57,7 @@ sap.ui.define([
57
57
  * @mixes sap.ui.model.odata.v4.ODataParentBinding
58
58
  * @public
59
59
  * @since 1.37.0
60
- * @version 1.117.0
60
+ * @version 1.118.0
61
61
  * @borrows sap.ui.model.odata.v4.ODataBinding#getGroupId as #getGroupId
62
62
  * @borrows sap.ui.model.odata.v4.ODataBinding#getRootBinding as #getRootBinding
63
63
  * @borrows sap.ui.model.odata.v4.ODataBinding#getUpdateGroupId as #getUpdateGroupId
@@ -376,7 +376,9 @@ sap.ui.define([
376
376
  * detailed reason as parameters.
377
377
  *
378
378
  * @param {sap.ui.base.Event} oEvent
379
+ * The event object
379
380
  * @param {object} oEvent.getParameters
381
+ * Object containing all event parameters
380
382
  * @param {sap.ui.model.ChangeReason} oEvent.getParameters.reason
381
383
  * The reason for the 'change' event is
382
384
  * <ul>
@@ -408,6 +410,7 @@ sap.ui.define([
408
410
  *
409
411
  * @param {sap.ui.base.Event} oEvent The event object
410
412
  * @param {sap.ui.model.odata.v4.ODataListBinding} oEvent.getSource() This binding
413
+ * @param {object} oEvent.getParameters Object containing all event parameters
411
414
  * @param {sap.ui.model.odata.v4.Context} oEvent.getParameters.context The affected context
412
415
  *
413
416
  * @event sap.ui.model.odata.v4.ODataListBinding#createActivate
@@ -472,9 +475,11 @@ sap.ui.define([
472
475
  * {@link sap.ui.base.Event#cancelBubble oEvent.cancelBubble()}.
473
476
  *
474
477
  * @param {sap.ui.base.Event} oEvent
478
+ * The event object
475
479
  * @param {function} oEvent.cancelBubble
476
480
  * A callback function to prevent that the event is bubbled up to the model
477
481
  * @param {object} oEvent.getParameters
482
+ * Object containing all event parameters
478
483
  * @param {object} [oEvent.getParameters.data]
479
484
  * An empty data object if a back-end request succeeds
480
485
  * @param {Error} [oEvent.getParameters.error] The error object if a back-end request failed.
@@ -544,7 +549,9 @@ sap.ui.define([
544
549
  * binding. Registered event handlers are called with the change reason as parameter.
545
550
  *
546
551
  * @param {sap.ui.base.Event} oEvent
552
+ * The event object
547
553
  * @param {object} oEvent.getParameters
554
+ * Object containing all event parameters
548
555
  * @param {sap.ui.model.ChangeReason} oEvent.getParameters.reason
549
556
  * The reason for the 'refresh' event could be
550
557
  * <ul>
@@ -740,13 +747,11 @@ sap.ui.define([
740
747
  * of <code>Error</code>, even if the deep create succeeds. This error always has the property
741
748
  * <code>canceled</code> with the value <code>true</code>.
742
749
  *
743
- * Since 1.117.0 deep create also supports single-valued navigation properties; no API call is
750
+ * Since 1.118.0 deep create also supports single-valued navigation properties; no API call is
744
751
  * required in this case. Simply bind properties of the related entity relative to a transient
745
752
  * context. An update to the property adds it to the POST request of the parent entity, and by
746
753
  * this the create becomes deep.
747
754
  *
748
- * <b>Note</b>: Deep create for single-valued navigation properties is <b>experimental</b>.
749
- *
750
755
  * Deep create requires the <code>autoExpandSelect</code> parameter at the
751
756
  * {@link sap.ui.model.odata.v4.ODataModel#constructor model}. The refresh after a deep create
752
757
  * is optimized. Only the (navigation) properties missing from the POST response are actually
@@ -767,7 +772,7 @@ sap.ui.define([
767
772
  * pending, and no other modification (including collapse of some ancestor node) must happen
768
773
  * while this creation is pending!
769
774
  *
770
- * @param {object} [oInitialData={}]
775
+ * @param {Object<any>} [oInitialData={}]
771
776
  * The initial data for the created entity
772
777
  * @param {boolean} [bSkipRefresh]
773
778
  * Whether an automatic refresh of the created entity will be skipped.
@@ -1096,21 +1101,36 @@ sap.ui.define([
1096
1101
  */
1097
1102
  ODataListBinding.prototype.delete = function (oGroupLock, sEditUrl, oContext, oETagEntity,
1098
1103
  bDoNotRequestCount, fnUndelete) {
1099
- // When deleting a context with negative index, iCreatedContexts et al. must be adjusted.
1100
- // However, when re-inserting, the context has lost its index. Beware: Do NOT use the
1101
- // created() promise, because doReplaceWith places a context w/o the promise here.
1102
- var bCreated = oContext.iIndex < 0,
1103
- sPath = oContext.iIndex === undefined
1104
- // context is not in aContexts -> use the predicate
1105
- ? _Helper.getRelativePath(oContext.getPath(), this.oHeaderContext.getPath())
1106
- : String(oContext.iIndex),
1107
- bReset = false,
1104
+ var bReset = false,
1108
1105
  that = this;
1109
1106
 
1107
+ const oAggregation = this.mParameters.$$aggregation;
1108
+ if (oAggregation) {
1109
+ if (oAggregation.expandTo > 1) {
1110
+ throw new Error("Unsupported $$aggregation.expandTo: " + oAggregation.expandTo);
1111
+ }
1112
+ if (oContext.iIndex === undefined) {
1113
+ throw new Error("Unsupported kept-alive context: " + oContext);
1114
+ }
1115
+ }
1110
1116
  if (oContext.isDeleted()) {
1111
1117
  return oContext.oDeletePromise; // do not delete twice
1112
1118
  }
1113
1119
 
1120
+ const bExpanded = oContext.isExpanded();
1121
+ if (bExpanded) {
1122
+ this.collapse(oContext);
1123
+ }
1124
+
1125
+ // When deleting a context with negative index, iCreatedContexts et al. must be adjusted.
1126
+ // However, when re-inserting, the context has lost its index. Beware: Do NOT use the
1127
+ // created() promise, because doReplaceWith places a context w/o the promise here.
1128
+ const bCreated = oContext.iIndex < 0;
1129
+ const sPath = oContext.iIndex === undefined
1130
+ // context is not in aContexts -> use the predicate
1131
+ ? _Helper.getRelativePath(oContext.getPath(), this.oHeaderContext.getPath())
1132
+ : String(oContext.getModelIndex());
1133
+
1114
1134
  this.iDeletedContexts += 1;
1115
1135
 
1116
1136
  return oContext.doDelete(oGroupLock, sEditUrl, sPath, oETagEntity, this,
@@ -1181,6 +1201,9 @@ sap.ui.define([
1181
1201
  that.oCache.reset(that.getKeepAlivePredicates());
1182
1202
  that.reset(ChangeReason.Change);
1183
1203
  } else {
1204
+ if (bExpanded) {
1205
+ that.expand(oContext); // runs synchronously because it was expanded before
1206
+ }
1184
1207
  that._fireChange({reason : ChangeReason.Add});
1185
1208
  }
1186
1209
  throw oError;
@@ -2071,13 +2094,13 @@ sap.ui.define([
2071
2094
  * @since 1.98.0
2072
2095
  */
2073
2096
  ODataListBinding.prototype.getAllCurrentContexts = function () {
2074
- var aElements = [];
2097
+ var aElements;
2075
2098
 
2076
2099
  this.withCache(function (oCache, sPath) {
2077
2100
  aElements = oCache.getAllElements(sPath);
2078
2101
  }, "", /*bSync*/true);
2079
2102
 
2080
- if (this.createContexts(0, aElements)) {
2103
+ if (aElements && this.createContexts(0, aElements)) {
2081
2104
  // In the case that a control has requested new data and the data request is already
2082
2105
  // completed, but the new contexts are not yet created, we have to ensure that a change
2083
2106
  // event is fired to inform the control about these new contexts.
@@ -2806,7 +2829,7 @@ sap.ui.define([
2806
2829
  * @param {boolean} [bWithSystemQueryOptions]
2807
2830
  * Whether system query options should be returned as well. The parameter value
2808
2831
  * <code>true</code> is not supported.
2809
- * @returns {object} mQueryOptions
2832
+ * @returns {Object<any>} mQueryOptions
2810
2833
  * The object with the query options. Query options can be provided with
2811
2834
  * {@link sap.ui.model.odata.v4.ODataModel#bindList},
2812
2835
  * {@link sap.ui.model.odata.v4.ODataModel#bindContext},
@@ -3464,18 +3487,28 @@ sap.ui.define([
3464
3487
  * @private
3465
3488
  */
3466
3489
  ODataListBinding.prototype.removeCreated = function (oContext) {
3467
- var iIndex = oContext.getModelIndex(), // Note: MUST not be undefined, or we fail utterly!
3468
- i;
3490
+ var iIndex, i;
3469
3491
 
3470
- this.iCreatedContexts -= 1;
3471
- if (!oContext.isInactive()) {
3472
- this.iActiveContexts -= 1;
3473
- }
3474
- for (i = 0; i < iIndex; i += 1) {
3475
- this.aContexts[i].iIndex += 1;
3476
- }
3477
- if (!this.iCreatedContexts) {
3478
- this.bFirstCreateAtEnd = undefined;
3492
+ if (this.mParameters.$$aggregation) {
3493
+ this.iMaxLength -= 1;
3494
+ iIndex = this.aContexts.indexOf(oContext);
3495
+ for (i = this.aContexts.length - 1; i > iIndex; i -= 1) {
3496
+ if (this.aContexts[i]) {
3497
+ this.aContexts[i].iIndex -= 1;
3498
+ }
3499
+ }
3500
+ } else {
3501
+ iIndex = oContext.getModelIndex(); // Note: MUST not be undefined, or we fail utterly!
3502
+ this.iCreatedContexts -= 1; // Note: affects #getModelIndex!
3503
+ if (!this.iCreatedContexts) {
3504
+ this.bFirstCreateAtEnd = undefined;
3505
+ }
3506
+ if (!oContext.isInactive()) {
3507
+ this.iActiveContexts -= 1;
3508
+ }
3509
+ for (i = 0; i < iIndex; i += 1) {
3510
+ this.aContexts[i].iIndex += 1;
3511
+ }
3479
3512
  }
3480
3513
  this.aContexts.splice(iIndex, 1);
3481
3514
  if (!oContext.isEffectivelyKeptAlive()) {
@@ -4279,7 +4312,7 @@ sap.ui.define([
4279
4312
  * @param {string} [aAggregation[].as]
4280
4313
  * Measures only: The alias, that is the name of the dynamic property used for aggregation of
4281
4314
  * this measure; see "3.1.1 Keyword as" (since 1.55.0)
4282
- * @returns {object|undefined}
4315
+ * @returns {{measureRangePromise: Promise<Object<{min:number,max:number}>>}|undefined}
4283
4316
  * The return object contains a property <code>measureRangePromise</code> if and only if at
4284
4317
  * least one measure has requested a minimum or maximum value; its value is a
4285
4318
  * promise which resolves with the measure range map as soon as data has been received; the
@@ -156,7 +156,7 @@ sap.ui.define([
156
156
  * @hideconstructor
157
157
  * @public
158
158
  * @since 1.37.0
159
- * @version 1.117.0
159
+ * @version 1.118.0
160
160
  */
161
161
  ODataMetaModel = MetaModel.extend("sap.ui.model.odata.v4.ODataMetaModel", {
162
162
  constructor : constructor