@openui5/sap.ui.core 1.123.0 → 1.124.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 (811) 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/future.js +66 -6
  11. package/src/sap/base/i18n/LanguageTag.js +1 -1
  12. package/src/sap/base/i18n/date/TimezoneUtils.js +11 -5
  13. package/src/sap/base/util/LoaderExtensions.js +1 -5
  14. package/src/sap/base/util/Version.js +18 -12
  15. package/src/sap/base/util/defineCoupledProperty.js +4 -1
  16. package/src/sap/base/util/restricted/_CancelablePromise.js +1 -1
  17. package/src/sap/base/util/restricted/_castArray.js +1 -1
  18. package/src/sap/base/util/restricted/_compact.js +1 -1
  19. package/src/sap/base/util/restricted/_curry.js +1 -1
  20. package/src/sap/base/util/restricted/_debounce.js +1 -1
  21. package/src/sap/base/util/restricted/_difference.js +1 -1
  22. package/src/sap/base/util/restricted/_differenceBy.js +1 -1
  23. package/src/sap/base/util/restricted/_differenceWith.js +1 -1
  24. package/src/sap/base/util/restricted/_flatMap.js +1 -1
  25. package/src/sap/base/util/restricted/_flatMapDeep.js +1 -1
  26. package/src/sap/base/util/restricted/_flatMapDepth.js +1 -1
  27. package/src/sap/base/util/restricted/_flatten.js +1 -1
  28. package/src/sap/base/util/restricted/_flattenDeep.js +1 -1
  29. package/src/sap/base/util/restricted/_flattenDepth.js +1 -1
  30. package/src/sap/base/util/restricted/_intersection.js +1 -1
  31. package/src/sap/base/util/restricted/_intersectionBy.js +1 -1
  32. package/src/sap/base/util/restricted/_intersectionWith.js +1 -1
  33. package/src/sap/base/util/restricted/_isEqual.js +1 -1
  34. package/src/sap/base/util/restricted/_isEqualWith.js +1 -1
  35. package/src/sap/base/util/restricted/_isNil.js +1 -1
  36. package/src/sap/base/util/restricted/_max.js +1 -1
  37. package/src/sap/base/util/restricted/_merge.js +1 -1
  38. package/src/sap/base/util/restricted/_mergeWith.js +1 -1
  39. package/src/sap/base/util/restricted/_min.js +1 -1
  40. package/src/sap/base/util/restricted/_omit.js +1 -1
  41. package/src/sap/base/util/restricted/_pick.js +1 -1
  42. package/src/sap/base/util/restricted/_pickBy.js +1 -1
  43. package/src/sap/base/util/restricted/_throttle.js +1 -1
  44. package/src/sap/base/util/restricted/_toArray.js +1 -1
  45. package/src/sap/base/util/restricted/_union.js +1 -1
  46. package/src/sap/base/util/restricted/_unionBy.js +1 -1
  47. package/src/sap/base/util/restricted/_unionWith.js +1 -1
  48. package/src/sap/base/util/restricted/_uniq.js +1 -1
  49. package/src/sap/base/util/restricted/_uniqBy.js +1 -1
  50. package/src/sap/base/util/restricted/_uniqWith.js +1 -1
  51. package/src/sap/base/util/restricted/_without.js +1 -1
  52. package/src/sap/base/util/restricted/_xor.js +1 -1
  53. package/src/sap/base/util/restricted/_xorBy.js +1 -1
  54. package/src/sap/base/util/restricted/_xorWith.js +1 -1
  55. package/src/sap/base/util/restricted/_zipObject.js +1 -1
  56. package/src/sap/base/util/restricted/_zipObjectDeep.js +1 -1
  57. package/src/sap/ui/Device.js +3 -3
  58. package/src/sap/ui/Global.js +4 -4
  59. package/src/sap/ui/base/Event.js +1 -1
  60. package/src/sap/ui/base/EventProvider.js +1 -2
  61. package/src/sap/ui/base/Interface.js +1 -1
  62. package/src/sap/ui/base/ManagedObject.js +2 -2
  63. package/src/sap/ui/base/ManagedObjectMetadata.js +1 -1
  64. package/src/sap/ui/base/Metadata.js +26 -2
  65. package/src/sap/ui/base/Object.js +1 -1
  66. package/src/sap/ui/base/ObjectPool.js +1 -1
  67. package/src/sap/ui/core/.library +3 -3
  68. package/src/sap/ui/core/BusyIndicator.js +1 -1
  69. package/src/sap/ui/core/Component.js +53 -74
  70. package/src/sap/ui/core/ComponentContainer.js +1 -1
  71. package/src/sap/ui/core/ComponentMetadata.js +33 -21
  72. package/src/sap/ui/core/ComponentSupport.js +4 -4
  73. package/src/sap/ui/core/Configuration.js +1 -1
  74. package/src/sap/ui/core/Control.js +1 -1
  75. package/src/sap/ui/core/Core.js +1 -1
  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 +37 -12
  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/ExtensionPoint.js +4 -2
  83. package/src/sap/ui/core/Fragment.js +2 -2
  84. package/src/sap/ui/core/HTML.js +1 -1
  85. package/src/sap/ui/core/History.js +1 -1
  86. package/src/sap/ui/core/Icon.js +1 -1
  87. package/src/sap/ui/core/IndicationColorSupport.js +1 -1
  88. package/src/sap/ui/core/IntervalTrigger.js +1 -1
  89. package/src/sap/ui/core/InvisibleMessage.js +1 -1
  90. package/src/sap/ui/core/InvisibleRenderer.js +1 -1
  91. package/src/sap/ui/core/InvisibleText.js +1 -1
  92. package/src/sap/ui/core/Item.js +1 -1
  93. package/src/sap/ui/core/LabelEnablement.js +88 -28
  94. package/src/sap/ui/core/LayoutData.js +1 -1
  95. package/src/sap/ui/core/Lib.js +36 -11
  96. package/src/sap/ui/core/ListItem.js +1 -1
  97. package/src/sap/ui/core/LocalBusyIndicator.js +1 -1
  98. package/src/sap/ui/core/Locale.js +1 -1
  99. package/src/sap/ui/core/LocaleData.js +1 -1
  100. package/src/sap/ui/core/Manifest.js +44 -21
  101. package/src/sap/ui/core/Message.js +1 -1
  102. package/src/sap/ui/core/Popup.js +5 -1
  103. package/src/sap/ui/core/RenderManager.js +1 -1
  104. package/src/sap/ui/core/Renderer.js +1 -1
  105. package/src/sap/ui/core/ResizeHandler.js +1 -1
  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/Title.js +1 -1
  109. package/src/sap/ui/core/TooltipBase.js +1 -1
  110. package/src/sap/ui/core/UIArea.js +1 -1
  111. package/src/sap/ui/core/UIComponent.js +94 -42
  112. package/src/sap/ui/core/UIComponentMetadata.js +5 -1
  113. package/src/sap/ui/core/ValueStateSupport.js +1 -1
  114. package/src/sap/ui/core/VariantLayoutData.js +1 -1
  115. package/src/sap/ui/core/XMLComposite.js +1 -1
  116. package/src/sap/ui/core/XMLCompositeMetadata.js +1 -1
  117. package/src/sap/ui/core/XMLTemplateProcessor.js +23 -12
  118. package/src/sap/ui/core/date/UI5Date.js +1 -1
  119. package/src/sap/ui/core/delegate/ItemNavigation.js +1 -1
  120. package/src/sap/ui/core/delegate/ScrollEnablement.js +1 -1
  121. package/src/sap/ui/core/dnd/DragDropBase.js +1 -1
  122. package/src/sap/ui/core/dnd/DragDropInfo.js +1 -1
  123. package/src/sap/ui/core/dnd/DragInfo.js +1 -1
  124. package/src/sap/ui/core/dnd/DropInfo.js +1 -1
  125. package/src/sap/ui/core/format/FormatUtils.js +1 -1
  126. package/src/sap/ui/core/format/NumberFormat.js +1 -1
  127. package/src/sap/ui/core/format/TimezoneUtil.js +86 -10
  128. package/src/sap/ui/core/getCompatibilityVersion.js +1 -1
  129. package/src/sap/ui/core/hyphenation/Hyphenation.js +1 -1
  130. package/src/sap/ui/core/library.js +3 -3
  131. package/src/sap/ui/core/message/ControlMessageProcessor.js +1 -1
  132. package/src/sap/ui/core/message/Message.js +1 -1
  133. package/src/sap/ui/core/message/MessageManager.js +1 -1
  134. package/src/sap/ui/core/message/MessageParser.js +1 -1
  135. package/src/sap/ui/core/message/MessageProcessor.js +1 -1
  136. package/src/sap/ui/core/messagebundle_sh.properties +65 -65
  137. package/src/sap/ui/core/mvc/Controller.js +2 -2
  138. package/src/sap/ui/core/mvc/ControllerExtensionProvider.js +2 -0
  139. package/src/sap/ui/core/mvc/EventHandlerResolver.js +1 -1
  140. package/src/sap/ui/core/mvc/HTMLView.js +1 -1
  141. package/src/sap/ui/core/mvc/JSONView.js +1 -1
  142. package/src/sap/ui/core/mvc/JSView.js +1 -1
  143. package/src/sap/ui/core/mvc/TemplateView.js +1 -1
  144. package/src/sap/ui/core/mvc/View.js +12 -3
  145. package/src/sap/ui/core/mvc/XMLView.js +7 -2
  146. package/src/sap/ui/core/plugin/DeclarativeSupport.js +1 -1
  147. package/src/sap/ui/core/plugin/LessSupport.js +1 -1
  148. package/src/sap/ui/core/plugin/TemplatingSupport.js +1 -1
  149. package/src/sap/ui/core/postmessage/Bus.js +1 -1
  150. package/src/sap/ui/core/postmessage/confirmationDialog.js +1 -1
  151. package/src/sap/ui/core/routing/Targets.js +1 -1
  152. package/src/sap/ui/core/rules/App.support.js +11 -11
  153. package/src/sap/ui/core/rules/CoreHelper.support.js +3 -3
  154. package/src/sap/ui/core/rules/Theming.support.js +3 -3
  155. package/src/sap/ui/core/search/OpenSearchProvider.js +1 -1
  156. package/src/sap/ui/core/search/SearchProvider.js +1 -1
  157. package/src/sap/ui/core/service/Service.js +1 -1
  158. package/src/sap/ui/core/service/ServiceFactory.js +1 -1
  159. package/src/sap/ui/core/service/ServiceFactoryRegistry.js +1 -1
  160. package/src/sap/ui/core/support/Plugin.js +1 -1
  161. package/src/sap/ui/core/support/Support.js +1 -1
  162. package/src/sap/ui/core/support/plugins/ControlTree.js +1 -1
  163. package/src/sap/ui/core/support/plugins/Interaction.js +1 -1
  164. package/src/sap/ui/core/support/plugins/LocalStorage.js +1 -1
  165. package/src/sap/ui/core/support/plugins/Performance.js +1 -1
  166. package/src/sap/ui/core/support/plugins/Selector.js +1 -1
  167. package/src/sap/ui/core/support/plugins/TechInfo.js +1 -1
  168. package/src/sap/ui/core/support/plugins/Trace.js +1 -1
  169. package/src/sap/ui/core/support/plugins/ViewInfo.js +1 -1
  170. package/src/sap/ui/core/support/techinfo/moduleTreeHelper.js +1 -1
  171. package/src/sap/ui/core/theming/Parameters.js +21 -25
  172. package/src/sap/ui/core/tmpl/DOMAttribute.js +1 -1
  173. package/src/sap/ui/core/tmpl/DOMElement.js +1 -1
  174. package/src/sap/ui/core/tmpl/HandlebarsTemplate.js +1 -1
  175. package/src/sap/ui/core/tmpl/Template.js +1 -1
  176. package/src/sap/ui/core/tmpl/TemplateControl.js +1 -1
  177. package/src/sap/ui/core/util/AsyncHintsHelper.js +1 -1
  178. package/src/sap/ui/core/util/Export.js +1 -1
  179. package/src/sap/ui/core/util/ExportCell.js +1 -1
  180. package/src/sap/ui/core/util/ExportColumn.js +1 -1
  181. package/src/sap/ui/core/util/ExportRow.js +1 -1
  182. package/src/sap/ui/core/util/ExportType.js +1 -1
  183. package/src/sap/ui/core/util/ExportTypeCSV.js +1 -1
  184. package/src/sap/ui/core/util/File.js +1 -1
  185. package/src/sap/ui/core/util/LibraryInfo.js +1 -1
  186. package/src/sap/ui/core/util/MockServer.js +1 -1
  187. package/src/sap/ui/core/util/PasteHelper.js +1 -1
  188. package/src/sap/ui/core/util/serializer/HTMLViewSerializer.js +1 -1
  189. package/src/sap/ui/core/util/serializer/Serializer.js +1 -1
  190. package/src/sap/ui/core/util/serializer/ViewSerializer.js +1 -1
  191. package/src/sap/ui/core/util/serializer/XMLViewSerializer.js +1 -1
  192. package/src/sap/ui/core/util/serializer/delegate/Delegate.js +1 -1
  193. package/src/sap/ui/core/util/serializer/delegate/HTML.js +1 -1
  194. package/src/sap/ui/core/util/serializer/delegate/XML.js +1 -1
  195. package/src/sap/ui/core/webc/WebComponent.js +1 -1
  196. package/src/sap/ui/core/webc/WebComponentMetadata.js +1 -1
  197. package/src/sap/ui/core/ws/ReadyState.js +1 -1
  198. package/src/sap/ui/core/ws/SapPcpWebSocket.js +1 -1
  199. package/src/sap/ui/core/ws/WebSocket.js +1 -1
  200. package/src/sap/ui/debug/ControlTree.js +1 -1
  201. package/src/sap/ui/debug/DebugEnv.js +1 -1
  202. package/src/sap/ui/debug/PropertyList.js +1 -1
  203. package/src/sap/ui/model/ClientModel.js +1 -1
  204. package/src/sap/ui/model/ClientTreeBindingAdapter.js +7 -5
  205. package/src/sap/ui/model/CompositeBinding.js +9 -3
  206. package/src/sap/ui/model/CompositeDataState.js +1 -1
  207. package/src/sap/ui/model/CompositeType.js +1 -1
  208. package/src/sap/ui/model/Context.js +26 -2
  209. package/src/sap/ui/model/DataState.js +1 -1
  210. package/src/sap/ui/model/MetaModel.js +1 -1
  211. package/src/sap/ui/model/Model.js +1 -1
  212. package/src/sap/ui/model/PropertyBinding.js +113 -35
  213. package/src/sap/ui/model/SelectionModel.js +1 -1
  214. package/src/sap/ui/model/SimpleType.js +1 -1
  215. package/src/sap/ui/model/TreeAutoExpandMode.js +1 -1
  216. package/src/sap/ui/model/TreeBindingAdapter.js +5 -5
  217. package/src/sap/ui/model/TreeBindingCompatibilityAdapter.js +6 -6
  218. package/src/sap/ui/model/Type.js +1 -1
  219. package/src/sap/ui/model/analytics/AnalyticalBinding.js +2 -0
  220. package/src/sap/ui/model/json/JSONModel.js +1 -1
  221. package/src/sap/ui/model/message/MessageModel.js +1 -1
  222. package/src/sap/ui/model/odata/ODataAnnotations.js +1 -1
  223. package/src/sap/ui/model/odata/ODataMessageParser.js +3 -5
  224. package/src/sap/ui/model/odata/ODataMetaModel.js +1 -1
  225. package/src/sap/ui/model/odata/ODataMetadata.js +1 -1
  226. package/src/sap/ui/model/odata/ODataModel.js +1 -1
  227. package/src/sap/ui/model/odata/type/Boolean.js +1 -1
  228. package/src/sap/ui/model/odata/type/Byte.js +1 -1
  229. package/src/sap/ui/model/odata/type/Currency.js +24 -1
  230. package/src/sap/ui/model/odata/type/Date.js +1 -1
  231. package/src/sap/ui/model/odata/type/DateTime.js +1 -1
  232. package/src/sap/ui/model/odata/type/DateTimeBase.js +1 -1
  233. package/src/sap/ui/model/odata/type/DateTimeOffset.js +1 -1
  234. package/src/sap/ui/model/odata/type/DateTimeWithTimezone.js +1 -1
  235. package/src/sap/ui/model/odata/type/Decimal.js +1 -1
  236. package/src/sap/ui/model/odata/type/Double.js +1 -1
  237. package/src/sap/ui/model/odata/type/Guid.js +1 -1
  238. package/src/sap/ui/model/odata/type/Int.js +1 -1
  239. package/src/sap/ui/model/odata/type/Int16.js +1 -1
  240. package/src/sap/ui/model/odata/type/Int32.js +1 -1
  241. package/src/sap/ui/model/odata/type/Int64.js +1 -1
  242. package/src/sap/ui/model/odata/type/ODataType.js +1 -1
  243. package/src/sap/ui/model/odata/type/Raw.js +1 -1
  244. package/src/sap/ui/model/odata/type/SByte.js +1 -1
  245. package/src/sap/ui/model/odata/type/Single.js +1 -1
  246. package/src/sap/ui/model/odata/type/Stream.js +1 -1
  247. package/src/sap/ui/model/odata/type/String.js +1 -1
  248. package/src/sap/ui/model/odata/type/Time.js +1 -1
  249. package/src/sap/ui/model/odata/type/TimeOfDay.js +1 -1
  250. package/src/sap/ui/model/odata/type/Unit.js +24 -1
  251. package/src/sap/ui/model/odata/v2/Context.js +1 -1
  252. package/src/sap/ui/model/odata/v2/ODataAnnotations.js +1 -1
  253. package/src/sap/ui/model/odata/v2/ODataModel.js +6 -9
  254. package/src/sap/ui/model/odata/v2/ODataTreeBinding.js +1 -1
  255. package/src/sap/ui/model/odata/v4/Context.js +73 -48
  256. package/src/sap/ui/model/odata/v4/ODataBinding.js +4 -2
  257. package/src/sap/ui/model/odata/v4/ODataContextBinding.js +1 -1
  258. package/src/sap/ui/model/odata/v4/ODataListBinding.js +160 -94
  259. package/src/sap/ui/model/odata/v4/ODataMetaModel.js +1 -1
  260. package/src/sap/ui/model/odata/v4/ODataModel.js +8 -5
  261. package/src/sap/ui/model/odata/v4/ODataParentBinding.js +5 -2
  262. package/src/sap/ui/model/odata/v4/ODataPropertyBinding.js +1 -1
  263. package/src/sap/ui/model/odata/v4/lib/_AggregationCache.js +202 -177
  264. package/src/sap/ui/model/odata/v4/lib/_AggregationHelper.js +9 -3
  265. package/src/sap/ui/model/odata/v4/lib/_Cache.js +7 -13
  266. package/src/sap/ui/model/odata/v4/lib/_Requestor.js +6 -3
  267. package/src/sap/ui/model/odata/v4/lib/_TreeState.js +35 -1
  268. package/src/sap/ui/model/resource/ResourceModel.js +1 -1
  269. package/src/sap/ui/model/type/Boolean.js +1 -1
  270. package/src/sap/ui/model/type/Currency.js +1 -1
  271. package/src/sap/ui/model/type/Date.js +1 -1
  272. package/src/sap/ui/model/type/DateInterval.js +1 -1
  273. package/src/sap/ui/model/type/DateTime.js +1 -1
  274. package/src/sap/ui/model/type/DateTimeInterval.js +1 -1
  275. package/src/sap/ui/model/type/FileSize.js +1 -1
  276. package/src/sap/ui/model/type/Float.js +1 -1
  277. package/src/sap/ui/model/type/Integer.js +1 -1
  278. package/src/sap/ui/model/type/String.js +1 -1
  279. package/src/sap/ui/model/type/Time.js +1 -1
  280. package/src/sap/ui/model/type/TimeInterval.js +1 -1
  281. package/src/sap/ui/model/type/Unit.js +1 -1
  282. package/src/sap/ui/model/xml/XMLModel.js +1 -1
  283. package/src/sap/ui/qunit/utils/ControlIterator.js +1 -1
  284. package/src/sap/ui/qunit/utils/MemoryLeakCheck.js +1 -1
  285. package/src/sap/ui/test/ModuleTracking.js +1 -2
  286. package/src/sap/ui/test/autowaiter/_navigationContainerWaiter.js +96 -7
  287. package/src/sap/ui/test/generic/TestBase.js +1 -1
  288. package/src/sap/ui/test/gherkin/opa5TestHarness.js +0 -1
  289. package/src/sap/ui/test/gherkin/qUnitTestHarness.js +0 -1
  290. package/src/sap/ui/test/starter/_utils.js +27 -1
  291. package/src/sap/ui/test/starter/createSuite.js +2 -5
  292. package/src/sap/ui/thirdparty/caja-html-sanitizer.js +1 -1
  293. package/src/sap/ui/thirdparty/jqueryui/jquery-effects-blind.js +4 -0
  294. package/src/sap/ui/thirdparty/jqueryui/jquery-effects-bounce.js +4 -0
  295. package/src/sap/ui/thirdparty/jqueryui/jquery-effects-clip.js +4 -0
  296. package/src/sap/ui/thirdparty/jqueryui/jquery-effects-core.js +4 -0
  297. package/src/sap/ui/thirdparty/jqueryui/jquery-effects-drop.js +4 -0
  298. package/src/sap/ui/thirdparty/jqueryui/jquery-effects-explode.js +4 -0
  299. package/src/sap/ui/thirdparty/jqueryui/jquery-effects-fade.js +4 -0
  300. package/src/sap/ui/thirdparty/jqueryui/jquery-effects-fold.js +4 -0
  301. package/src/sap/ui/thirdparty/jqueryui/jquery-effects-highlight.js +4 -0
  302. package/src/sap/ui/thirdparty/jqueryui/jquery-effects-pulsate.js +4 -0
  303. package/src/sap/ui/thirdparty/jqueryui/jquery-effects-scale.js +4 -0
  304. package/src/sap/ui/thirdparty/jqueryui/jquery-effects-shake.js +4 -0
  305. package/src/sap/ui/thirdparty/jqueryui/jquery-effects-slide.js +4 -0
  306. package/src/sap/ui/thirdparty/jqueryui/jquery-effects-transfer.js +4 -0
  307. package/src/sap/ui/util/Storage.js +1 -1
  308. package/src/ui5loader.js +11 -5
  309. package/test/sap/ui/core/demokit/sample/FieldGroup/Page.view.xml +1 -1
  310. package/test/sap/ui/core/demokit/sample/Messaging/ODataBackendMessagesComp/ui5.yaml +1 -1
  311. package/test/sap/ui/core/demokit/sample/Messaging/ODataBackendMessagesComp/webapp/view/Employee.view.xml +0 -1
  312. package/test/sap/ui/core/demokit/sample/TypeCurrency/Component.js +1 -0
  313. package/test/sap/ui/core/demokit/sample/TypeCurrency/manifest.json +1 -2
  314. package/test/sap/ui/core/demokit/sample/TypeDateAsDate/Component.js +1 -0
  315. package/test/sap/ui/core/demokit/sample/TypeDateAsDate/manifest.json +1 -2
  316. package/test/sap/ui/core/demokit/sample/TypeDateAsString/Component.js +1 -0
  317. package/test/sap/ui/core/demokit/sample/TypeDateAsString/manifest.json +1 -2
  318. package/test/sap/ui/core/demokit/sample/TypeDateTime/Component.js +1 -0
  319. package/test/sap/ui/core/demokit/sample/TypeDateTime/manifest.json +1 -2
  320. package/test/sap/ui/core/demokit/sample/TypeFileSize/Component.js +1 -0
  321. package/test/sap/ui/core/demokit/sample/TypeFileSize/manifest.json +1 -2
  322. package/test/sap/ui/core/demokit/sample/TypeFloat/Component.js +1 -0
  323. package/test/sap/ui/core/demokit/sample/TypeFloat/manifest.json +1 -2
  324. package/test/sap/ui/core/demokit/sample/TypeInteger/Component.js +1 -0
  325. package/test/sap/ui/core/demokit/sample/TypeInteger/manifest.json +1 -2
  326. package/test/sap/ui/core/demokit/sample/TypeTimeAsTime/Component.js +1 -0
  327. package/test/sap/ui/core/demokit/sample/TypeTimeAsTime/manifest.json +1 -2
  328. package/test/sap/ui/core/demokit/sample/ViewTemplate/types/Opa.qunit.js +3 -3
  329. package/test/sap/ui/core/demokit/sample/ViewTemplate/types/TemplateV2.view.xml +3 -2
  330. package/test/sap/ui/core/demokit/sample/matcher/BindingPath/ui5.yaml +1 -1
  331. package/test/sap/ui/core/demokit/sample/matcher/Descendant/ui5.yaml +1 -1
  332. package/test/sap/ui/core/demokit/sample/matcher/I18NText/ui5.yaml +1 -1
  333. package/test/sap/ui/core/demokit/sample/matcher/LabelFor/ui5.yaml +1 -1
  334. package/test/sap/ui/core/demokit/sample/matcher/LabelFor/webapp/view/Main.view.xml +0 -1
  335. package/test/sap/ui/core/demokit/sample/odata/v4/Draft/Error.view.xml +1 -1
  336. package/test/sap/ui/core/demokit/sample/odata/v4/HierarchyBindAction/Main.controller.js +30 -7
  337. package/test/sap/ui/core/demokit/sample/odata/v4/HierarchyBindAction/Main.view.xml +28 -4
  338. package/test/sap/ui/core/demokit/sample/odata/v4/HierarchyBindAction/data/metadata.xml +38 -52
  339. package/test/sap/ui/core/demokit/sample/odata/v4/MultipleInlineCreationRowsGrid/Main.controller.js +13 -13
  340. package/test/sap/ui/core/demokit/sample/odata/v4/MultipleInlineCreationRowsGrid/Opa.qunit.js +2 -4
  341. package/test/sap/ui/core/demokit/sample/odata/v4/SalesOrders/Component.js +3 -3
  342. package/test/sap/ui/core/demokit/sample/odata/v4/SalesOrders/Main.controller.js +2 -3
  343. package/test/sap/ui/core/demokit/sample/odata/v4/SalesOrders/tests/MessageHandling.js +3 -3
  344. package/test/sap/ui/core/demokit/sample/odata/v4/SalesOrders/tests/additionalTargets.js +3 -3
  345. package/test/sap/ui/core/demokit/tutorial/databinding/01/ui5.yaml +1 -1
  346. package/test/sap/ui/core/demokit/tutorial/databinding/02/ui5.yaml +1 -1
  347. package/test/sap/ui/core/demokit/tutorial/databinding/03/ui5.yaml +1 -1
  348. package/test/sap/ui/core/demokit/tutorial/databinding/04/ui5.yaml +1 -1
  349. package/test/sap/ui/core/demokit/tutorial/databinding/05/ui5.yaml +1 -1
  350. package/test/sap/ui/core/demokit/tutorial/databinding/06/ui5.yaml +1 -1
  351. package/test/sap/ui/core/demokit/tutorial/databinding/07/ui5.yaml +1 -1
  352. package/test/sap/ui/core/demokit/tutorial/databinding/08/ui5.yaml +1 -1
  353. package/test/sap/ui/core/demokit/tutorial/databinding/09/ui5.yaml +1 -1
  354. package/test/sap/ui/core/demokit/tutorial/databinding/10/ui5.yaml +1 -1
  355. package/test/sap/ui/core/demokit/tutorial/databinding/11/ui5.yaml +1 -1
  356. package/test/sap/ui/core/demokit/tutorial/databinding/12/ui5.yaml +1 -1
  357. package/test/sap/ui/core/demokit/tutorial/databinding/13/ui5.yaml +1 -1
  358. package/test/sap/ui/core/demokit/tutorial/databinding/14/ui5.yaml +1 -1
  359. package/test/sap/ui/core/demokit/tutorial/databinding/15/ui5.yaml +1 -1
  360. package/test/sap/ui/core/demokit/tutorial/mockserver/01/package.json +3 -0
  361. package/test/sap/ui/core/demokit/tutorial/mockserver/01/ui5.yaml +1 -1
  362. package/test/sap/ui/core/demokit/tutorial/mockserver/01/webapp/Component.js +1 -0
  363. package/test/sap/ui/core/demokit/tutorial/mockserver/01/webapp/test/mockServer.html +1 -1
  364. package/test/sap/ui/core/demokit/tutorial/mockserver/02/package.json +3 -0
  365. package/test/sap/ui/core/demokit/tutorial/mockserver/02/ui5.yaml +1 -1
  366. package/test/sap/ui/core/demokit/tutorial/mockserver/02/webapp/Component.js +1 -0
  367. package/test/sap/ui/core/demokit/tutorial/mockserver/02/webapp/test/mockServer.html +1 -1
  368. package/test/sap/ui/core/demokit/tutorial/mockserver/03/package.json +3 -0
  369. package/test/sap/ui/core/demokit/tutorial/mockserver/03/ui5.yaml +1 -1
  370. package/test/sap/ui/core/demokit/tutorial/mockserver/03/webapp/Component.js +1 -0
  371. package/test/sap/ui/core/demokit/tutorial/mockserver/03/webapp/test/mockServer.html +1 -1
  372. package/test/sap/ui/core/demokit/tutorial/mockserver/04/package.json +3 -0
  373. package/test/sap/ui/core/demokit/tutorial/mockserver/04/ui5.yaml +1 -1
  374. package/test/sap/ui/core/demokit/tutorial/mockserver/04/webapp/Component.js +1 -0
  375. package/test/sap/ui/core/demokit/tutorial/mockserver/04/webapp/test/mockServer.html +1 -1
  376. package/test/sap/ui/core/demokit/tutorial/navigation/01/ui5.yaml +1 -1
  377. package/test/sap/ui/core/demokit/tutorial/navigation/02/ui5.yaml +1 -1
  378. package/test/sap/ui/core/demokit/tutorial/navigation/03/ui5.yaml +1 -1
  379. package/test/sap/ui/core/demokit/tutorial/navigation/04/ui5.yaml +1 -1
  380. package/test/sap/ui/core/demokit/tutorial/navigation/05/ui5.yaml +1 -1
  381. package/test/sap/ui/core/demokit/tutorial/navigation/06/ui5.yaml +1 -1
  382. package/test/sap/ui/core/demokit/tutorial/navigation/07/ui5.yaml +1 -1
  383. package/test/sap/ui/core/demokit/tutorial/navigation/08/ui5.yaml +1 -1
  384. package/test/sap/ui/core/demokit/tutorial/navigation/09/ui5.yaml +1 -1
  385. package/test/sap/ui/core/demokit/tutorial/navigation/10/ui5.yaml +1 -1
  386. package/test/sap/ui/core/demokit/tutorial/navigation/11/ui5.yaml +1 -1
  387. package/test/sap/ui/core/demokit/tutorial/navigation/12/ui5.yaml +1 -1
  388. package/test/sap/ui/core/demokit/tutorial/navigation/13/ui5.yaml +1 -1
  389. package/test/sap/ui/core/demokit/tutorial/navigation/14/ui5.yaml +1 -1
  390. package/test/sap/ui/core/demokit/tutorial/navigation/15/ui5.yaml +1 -1
  391. package/test/sap/ui/core/demokit/tutorial/navigation/16/ui5.yaml +1 -1
  392. package/test/sap/ui/core/demokit/tutorial/navigation/17/ui5.yaml +1 -1
  393. package/test/sap/ui/core/demokit/tutorial/odatav4/01/ui5.yaml +1 -1
  394. package/test/sap/ui/core/demokit/tutorial/odatav4/02/ui5.yaml +1 -1
  395. package/test/sap/ui/core/demokit/tutorial/odatav4/03/ui5.yaml +1 -1
  396. package/test/sap/ui/core/demokit/tutorial/odatav4/04/ui5.yaml +1 -1
  397. package/test/sap/ui/core/demokit/tutorial/odatav4/05/ui5.yaml +1 -1
  398. package/test/sap/ui/core/demokit/tutorial/odatav4/06/ui5.yaml +1 -1
  399. package/test/sap/ui/core/demokit/tutorial/odatav4/07/ui5.yaml +1 -1
  400. package/test/sap/ui/core/demokit/tutorial/odatav4/08/ui5.yaml +1 -1
  401. package/test/sap/ui/core/demokit/tutorial/odatav4/09/ui5.yaml +1 -1
  402. package/test/sap/ui/core/demokit/tutorial/odatav4/10/ui5.yaml +1 -1
  403. package/test/sap/ui/core/demokit/tutorial/odatav4/11/ui5.yaml +1 -1
  404. package/test/sap/ui/core/demokit/tutorial/troubleshooting/01/ui5.yaml +1 -1
  405. package/test/sap/ui/core/demokit/tutorial/troubleshooting/01/webapp/controller/App.controller.js +2 -3
  406. package/test/sap/ui/core/internal/samples/odata/v2/SalesOrders/Component.js +3 -4
  407. package/test/sap/ui/core/internal/samples/odata/v2/SalesOrders/Main.controller.js +4 -5
  408. package/test/sap/ui/core/qunit/BindingParser.qunit.js +68 -5
  409. package/test/sap/ui/core/qunit/CacheManager.qunit.js +2 -2
  410. package/test/sap/ui/core/qunit/CommandExecution.qunit.js +1 -1
  411. package/test/sap/ui/core/qunit/CompositeBinding.qunit.js +173 -7
  412. package/test/sap/ui/core/qunit/Core.qunit.js +92 -65
  413. package/test/sap/ui/core/qunit/CustomStyleClassSupport.qunit.js +8 -6
  414. package/test/sap/ui/core/qunit/Element_closestTo.qunit.js +26 -5
  415. package/test/sap/ui/core/qunit/Element_data.qunit.js +86 -3
  416. package/test/sap/ui/core/qunit/Fragment.qunit.js +1 -1
  417. package/test/sap/ui/core/qunit/HTML.qunit.js +13 -0
  418. package/test/sap/ui/core/qunit/Lib.qunit.js +160 -42
  419. package/test/sap/ui/core/qunit/ManagedObjectModel.qunit.js +2 -2
  420. package/test/sap/ui/core/qunit/ThemeManager.qunit.js +1 -0
  421. package/test/sap/ui/core/qunit/ThemeParameters.qunit.js +63 -4
  422. package/test/sap/ui/core/qunit/analytics/AnalyticalBinding.qunit.js +1 -0
  423. package/test/sap/ui/core/qunit/bootstrap/Configuration.qunit.js +4 -4
  424. package/test/sap/ui/core/qunit/bootstrap/ThemeVersion.qunit.js +3 -0
  425. package/test/sap/ui/core/qunit/component/Component.qunit.js +88 -16
  426. package/test/sap/ui/core/qunit/component/ComponentContainer.qunit.js +26 -2
  427. package/test/sap/ui/core/qunit/component/ComponentSupport.qunit.js +62 -59
  428. package/test/sap/ui/core/qunit/component/Component_keepAlive.qunit.js +75 -7
  429. package/test/sap/ui/core/qunit/component/ExtensionPoint.qunit.js +128 -117
  430. package/test/sap/ui/core/qunit/component/Manifest.qunit.js +57 -5
  431. package/test/sap/ui/core/qunit/component/Metadata.qunit.js +72 -7
  432. package/test/sap/ui/core/qunit/component/Metadata_unavoidablySync.qunit.js +62 -17
  433. package/test/sap/ui/core/qunit/component/Models.qunit.js +573 -237
  434. package/test/sap/ui/core/qunit/component/UIComponent.qunit.js +211 -33
  435. package/test/sap/ui/core/qunit/component/testdata/async/lib2/library-preload.js +2 -0
  436. package/test/sap/ui/core/qunit/component/testdata/async/lib2/library-preload.json +1 -1
  437. package/test/sap/ui/core/qunit/component/testdata/async/lib2/library.js +1 -0
  438. package/test/sap/ui/core/qunit/component/testdata/async/lib3/library-preload.js +2 -0
  439. package/test/sap/ui/core/qunit/component/testdata/async/lib3/library-preload.json +1 -1
  440. package/test/sap/ui/core/qunit/component/testdata/async/lib3/library.js +1 -0
  441. package/test/sap/ui/core/qunit/component/testdata/async/lib4/library-preload.js +2 -0
  442. package/test/sap/ui/core/qunit/component/testdata/async/lib4/library-preload.json +1 -1
  443. package/test/sap/ui/core/qunit/component/testdata/async/lib4/library.js +1 -0
  444. package/test/sap/ui/core/qunit/component/testdata/async/manifestcomp/Component-preload.js +1 -0
  445. package/test/sap/ui/core/qunit/component/testdata/async/mycomp/Component-preload.js +1 -0
  446. package/test/sap/ui/core/qunit/component/testdata/async/mysubcomp/Component-preload.js +1 -0
  447. package/test/sap/ui/core/qunit/component/testdata/customizing/customer/Component.js +1 -2
  448. package/test/sap/ui/core/qunit/component/testdata/customizing_legacyAPIs/customer/Component.js +1 -2
  449. package/test/sap/ui/core/qunit/component/testdata/inherit/manifest.json +3 -5
  450. package/test/sap/ui/core/qunit/component/testdata/inherit/parent/manifest.json +2 -2
  451. package/test/sap/ui/core/qunit/component/testdata/keepAlive/child3OnActivateReturns/App.view.xml +3 -0
  452. package/test/sap/ui/core/qunit/component/testdata/keepAlive/child3OnActivateReturns/Component.js +15 -0
  453. package/test/sap/ui/core/qunit/component/testdata/keepAlive/child3OnActivateReturns/Home.view.xml +5 -0
  454. package/test/sap/ui/core/qunit/component/testdata/keepAlive/child3OnActivateReturns/Other.view.xml +5 -0
  455. package/test/sap/ui/core/qunit/component/testdata/keepAlive/child3OnActivateReturns/manifest.json +54 -0
  456. package/test/sap/ui/core/qunit/component/testdata/keepAlive/child3OnDeactivateReturns/App.view.xml +3 -0
  457. package/test/sap/ui/core/qunit/component/testdata/keepAlive/child3OnDeactivateReturns/Component.js +17 -0
  458. package/test/sap/ui/core/qunit/component/testdata/keepAlive/child3OnDeactivateReturns/Home.view.xml +5 -0
  459. package/test/sap/ui/core/qunit/component/testdata/keepAlive/child3OnDeactivateReturns/Other.view.xml +5 -0
  460. package/test/sap/ui/core/qunit/component/testdata/keepAlive/child3OnDeactivateReturns/manifest.json +54 -0
  461. package/test/sap/ui/core/qunit/component/testdata/minUI5Version/Component.js +18 -0
  462. package/test/sap/ui/core/qunit/component/testdata/minUI5Version/Main.controller.js +6 -0
  463. package/test/sap/ui/core/qunit/component/testdata/minUI5Version/Main.view.xml +6 -0
  464. package/test/sap/ui/core/qunit/component/testdata/minUI5Version/manifest.json +12 -0
  465. package/test/sap/ui/core/qunit/component/testdata/mixed/Component.js +3 -1
  466. package/test/sap/ui/core/qunit/component/testdata/mixed/manifest.json +3 -11
  467. package/test/sap/ui/core/qunit/component/testdata/mixed_legacyAPIs/Component.js +16 -0
  468. package/test/sap/ui/core/qunit/component/testdata/{mixed → mixed_legacyAPIs}/component.json +3 -3
  469. package/test/sap/ui/core/qunit/component/testdata/mixed_legacyAPIs/i18n/i18n.properties +3 -0
  470. package/test/sap/ui/core/qunit/component/testdata/mixed_legacyAPIs/manifest.json +139 -0
  471. package/test/sap/ui/core/qunit/component/testdata/mixed_legacyAPIs/style.css +0 -0
  472. package/test/sap/ui/core/qunit/component/testdata/routerClass/Component.js +33 -0
  473. package/test/sap/ui/core/qunit/component/testdata/routerClass/Main.view.xml +8 -0
  474. package/test/sap/ui/core/qunit/component/testdata/routerClass/manifest.json +38 -0
  475. package/test/sap/ui/core/qunit/component/testdata/v1/component.json +2 -2
  476. package/test/sap/ui/core/qunit/component/testdata/v1inline/Component.js +2 -2
  477. package/test/sap/ui/core/qunit/component/testdata/v2/manifest.json +3 -5
  478. package/test/sap/ui/core/qunit/component/testdata/v2asyncRootView/manifest.json +2 -4
  479. package/test/sap/ui/core/qunit/component/testdata/v2inline/Component.js +2 -4
  480. package/test/sap/ui/core/qunit/component/testdata/v2models/empty/Component.js +1 -1
  481. package/test/sap/ui/core/qunit/component/testdata/v2models/extension/Component.js +1 -1
  482. package/test/sap/ui/core/qunit/component/testdata/v2models/parentValid/Component.js +286 -0
  483. package/test/sap/ui/core/qunit/component/testdata/v2models/parentValid/i18n.properties +2 -0
  484. package/test/sap/ui/core/qunit/component/testdata/v2models/parentValid/i18n_de.properties +2 -0
  485. package/test/sap/ui/core/qunit/i18n/LocaleData.qunit.js +5 -5
  486. package/test/sap/ui/core/qunit/{types/TimezoneUtil.qunit.js → i18n/TimezoneUtils.qunit.js} +85 -87
  487. package/test/sap/ui/core/qunit/i18n/testsuite.i18n.qunit.js +6 -0
  488. package/test/sap/ui/core/qunit/internal/1RingModels.qunit.js +2 -2
  489. package/test/sap/ui/core/qunit/json/JSONModel.qunit.js +117 -85
  490. package/test/sap/ui/core/qunit/messages/Message.qunit.js +7 -5
  491. package/test/sap/ui/core/qunit/messages/messagesDataBinding.qunit.js +3 -5
  492. package/test/sap/ui/core/qunit/messages/messagesGeneral.qunit.js +41 -4
  493. package/test/sap/ui/core/qunit/messages/messagesUsage.qunit.js +3 -2
  494. package/test/sap/ui/core/qunit/model/Context.qunit.js +29 -0
  495. package/test/sap/ui/core/qunit/model/PropertyBinding.qunit.js +490 -5
  496. package/test/sap/ui/core/qunit/mvc/Controller.qunit.js +164 -12
  497. package/test/sap/ui/core/qunit/mvc/EventHandlerResolver.qunit.js +144 -6
  498. package/test/sap/ui/core/qunit/mvc/View.qunit.js +2 -2
  499. package/test/sap/ui/core/qunit/mvc/XMLTemplateProcessor.qunit.js +60 -5
  500. package/test/sap/ui/core/qunit/mvc/XMLTemplateProcessorAsync.qunit.js +58 -3
  501. package/test/sap/ui/core/qunit/mvc/XMLTemplateProcessorRequireXML.qunit.js +127 -10
  502. package/test/sap/ui/core/qunit/mvc/XMLView.qunit.js +108 -10
  503. package/test/sap/ui/core/qunit/mvc/extensions/ControllerMetadata.qunit.js +74 -7
  504. package/test/sap/ui/core/qunit/mvc/extensions/Controllerextensions.qunit.js +0 -6
  505. package/test/sap/ui/core/qunit/mvc/extensions/Controllerextensions_legacy.qunit.js +0 -6
  506. package/test/sap/ui/core/qunit/mvc/extensions/testdata/ExtendMainLegacy.controller.js +15 -0
  507. package/test/sap/ui/core/qunit/mvc/extensions/testdata/MainContext.controller.js +0 -3
  508. package/test/sap/ui/core/qunit/mvc/extensions/testdata/MainMemberExtLegacyFinal.controller.js +38 -0
  509. package/test/sap/ui/core/qunit/mvc/extensions/testdata/ReuseExtension.js +0 -3
  510. package/test/sap/ui/core/qunit/mvc/extensions/testdata/ReuseExtensionContext.js +0 -3
  511. package/test/sap/ui/core/qunit/mvc/extensions/testdata/ReuseExtensionFinal.js +47 -0
  512. package/test/sap/ui/core/qunit/mvc/testdata/HtmlOnRoot.view.xml +8 -0
  513. package/test/sap/ui/core/qunit/mvc/testdata/XMLViewWithTypes.view.xml +1 -1
  514. package/test/sap/ui/core/qunit/mvc/testdata/XMLViewWithTypesFailure.view.xml +41 -0
  515. package/test/sap/ui/core/qunit/mvc/testdata/asyncHooks.view.xml +1 -1
  516. package/test/sap/ui/core/qunit/mvc/testdata/test.controller.js +4 -0
  517. package/test/sap/ui/core/qunit/mvc/testdata/test.view.xml +1 -1
  518. package/test/sap/ui/core/qunit/mvc/testsuite.mvc.qunit.js +12 -2
  519. package/test/sap/ui/core/qunit/mvc/viewprocessing/ViewProcessing.qunit.js +23 -4
  520. package/test/sap/ui/core/qunit/mvc_legacyAPIs/XMLTemplateProcessorRequireXML_legacyAPIs.qunit.js +1 -1
  521. package/test/sap/ui/core/qunit/odata/ODataMessageParser.qunit.js +3 -5
  522. package/test/sap/ui/core/qunit/odata/ODataMessageParserNoFakeService.qunit.js +3 -5
  523. package/test/sap/ui/core/qunit/odata/v2/ODataModel.integration.qunit.js +171 -5
  524. package/test/sap/ui/core/qunit/odata/v2/V2ODataModel.qunit.js +3 -5
  525. package/test/sap/ui/core/qunit/odata/v2/V2ODataModelDataState.qunit.js +3 -6
  526. package/test/sap/ui/core/qunit/odata/v4/Context.qunit.js +145 -91
  527. package/test/sap/ui/core/qunit/odata/v4/ODataBinding.qunit.js +5 -1
  528. package/test/sap/ui/core/qunit/odata/v4/ODataListBinding.qunit.js +338 -169
  529. package/test/sap/ui/core/qunit/odata/v4/ODataModel.integration.qunit.js +6061 -2815
  530. package/test/sap/ui/core/qunit/odata/v4/ODataModel.qunit.js +2 -4
  531. package/test/sap/ui/core/qunit/odata/v4/ODataParentBinding.qunit.js +11 -4
  532. package/test/sap/ui/core/qunit/odata/v4/data/metadata.json +24 -0
  533. package/test/sap/ui/core/qunit/odata/v4/data/metadata.xml +14 -2
  534. package/test/sap/ui/core/qunit/odata/v4/data/metadata_special_cases.xml +16 -0
  535. package/test/sap/ui/core/qunit/odata/v4/lib/_AggregationCache.qunit.js +407 -403
  536. package/test/sap/ui/core/qunit/odata/v4/lib/_AggregationHelper.qunit.js +11 -1
  537. package/test/sap/ui/core/qunit/odata/v4/lib/_Cache.qunit.js +14 -15
  538. package/test/sap/ui/core/qunit/odata/v4/lib/_Requestor.qunit.js +68 -59
  539. package/test/sap/ui/core/qunit/odata/v4/lib/_TreeState.qunit.js +91 -2
  540. package/test/sap/ui/core/qunit/opa/autowaiter/_navigationContainerWaiter.js +62 -15
  541. package/test/sap/ui/core/qunit/routing/async/Router.qunit.js +91 -19
  542. package/test/sap/ui/core/qunit/routing/async/Target.qunit.js +1 -1
  543. package/test/sap/ui/core/qunit/routing/async/Targets.qunit.js +131 -16
  544. package/test/sap/ui/core/qunit/routing/async/TitleHistory.qunit.js +111 -3
  545. package/test/sap/ui/core/qunit/routing/async/Views.qunit.js +3 -0
  546. package/test/sap/ui/core/qunit/routing/fixture/Async1.view.xml +2 -2
  547. package/test/sap/ui/core/qunit/routing/fixture/Async2.view.xml +2 -2
  548. package/test/sap/ui/core/qunit/routing/fixture/Async3.view.xml +2 -2
  549. package/test/sap/ui/core/qunit/routing/fixture/router/component/titleChanged/Parent/manifest.json +2 -1
  550. package/test/sap/ui/core/qunit/rule/testsuite.rule.qunit.js +3 -0
  551. package/test/sap/ui/core/qunit/testdata/fragments/XMLTestFragmentWithXMLView.fragment.xml +1 -1
  552. package/test/sap/ui/core/qunit/testdata/libraries/customCss/lib1/library.js +4 -11
  553. package/test/sap/ui/core/qunit/testdata/libraries/make.js +8 -1
  554. package/test/sap/ui/core/qunit/testdata/libraries/myGlobalLib/library.js +1 -0
  555. package/test/sap/ui/core/qunit/testdata/libraries/resourcebundle/lib1/library.js +1 -0
  556. package/test/sap/ui/core/qunit/testdata/libraries/resourcebundle/lib2/intentionally_no_manifest_here.txt +7 -0
  557. package/test/sap/ui/core/qunit/testdata/libraries/resourcebundle/lib2/library.js +1 -0
  558. package/test/sap/ui/core/qunit/testdata/libraries/scenario1/lib1/library-preload.js +2 -0
  559. package/test/sap/ui/core/qunit/testdata/libraries/scenario1/lib1/library.js +1 -0
  560. package/test/sap/ui/core/qunit/testdata/libraries/scenario1/lib2/library-preload.json +1 -1
  561. package/test/sap/ui/core/qunit/testdata/libraries/scenario1/lib2/library.js +1 -0
  562. package/test/sap/ui/core/qunit/testdata/libraries/scenario1/lib3/library-preload.js +2 -0
  563. package/test/sap/ui/core/qunit/testdata/libraries/scenario1/lib3/library.js +1 -0
  564. package/test/sap/ui/core/qunit/testdata/libraries/scenario1/lib4/library-preload.js +2 -0
  565. package/test/sap/ui/core/qunit/testdata/libraries/scenario1/lib4/library-preload.json +1 -1
  566. package/test/sap/ui/core/qunit/testdata/libraries/scenario1/lib4/library.js +1 -0
  567. package/test/sap/ui/core/qunit/testdata/libraries/scenario1/lib5/library-preload.json +1 -1
  568. package/test/sap/ui/core/qunit/testdata/libraries/scenario1/lib5/library.js +1 -0
  569. package/test/sap/ui/core/qunit/testdata/libraries/scenario1/lib6/library-preload.js +2 -0
  570. package/test/sap/ui/core/qunit/testdata/libraries/scenario1/lib6/library.js +1 -0
  571. package/test/sap/ui/core/qunit/testdata/libraries/scenario1/lib7/library.js +1 -0
  572. package/test/sap/ui/core/qunit/testdata/libraries/scenario11/lib1/library.js +6 -4
  573. package/test/sap/ui/core/qunit/testdata/libraries/scenario11/lib1/manifest.json +7 -0
  574. package/test/sap/ui/core/qunit/testdata/libraries/scenario13/lib1/library-preload.js +2 -0
  575. package/test/sap/ui/core/qunit/testdata/libraries/scenario13/lib1/library.js +1 -0
  576. package/test/sap/ui/core/qunit/testdata/libraries/scenario13/lib2/library-preload.json +1 -1
  577. package/test/sap/ui/core/qunit/testdata/libraries/scenario13/lib2/library.js +1 -0
  578. package/test/sap/ui/core/qunit/testdata/libraries/scenario13/lib3/library-preload.js +2 -0
  579. package/test/sap/ui/core/qunit/testdata/libraries/scenario13/lib3/library.js +1 -0
  580. package/test/sap/ui/core/qunit/testdata/libraries/scenario13/lib4/library-preload.js +2 -0
  581. package/test/sap/ui/core/qunit/testdata/libraries/scenario13/lib4/library-preload.json +1 -1
  582. package/test/sap/ui/core/qunit/testdata/libraries/scenario13/lib4/library.js +1 -0
  583. package/test/sap/ui/core/qunit/testdata/libraries/scenario13/lib5/library-preload.json +1 -1
  584. package/test/sap/ui/core/qunit/testdata/libraries/scenario13/lib5/library.js +1 -0
  585. package/test/sap/ui/core/qunit/testdata/libraries/scenario13/lib6/library-preload.js +2 -0
  586. package/test/sap/ui/core/qunit/testdata/libraries/scenario13/lib6/library.js +1 -0
  587. package/test/sap/ui/core/qunit/testdata/libraries/scenario13/lib7/library.js +1 -0
  588. package/test/sap/ui/core/qunit/testdata/libraries/scenario14/lib1/library-preload.js +2 -0
  589. package/test/sap/ui/core/qunit/testdata/libraries/scenario14/lib1/library.js +1 -0
  590. package/test/sap/ui/core/qunit/testdata/libraries/scenario14/lib2/library-preload.js +2 -0
  591. package/test/sap/ui/core/qunit/testdata/libraries/scenario14/lib2/library.js +1 -0
  592. package/test/sap/ui/core/qunit/testdata/libraries/scenario14/lib3/library-preload.js +2 -0
  593. package/test/sap/ui/core/qunit/testdata/libraries/scenario14/lib3/library.js +1 -0
  594. package/test/sap/ui/core/qunit/testdata/libraries/scenario14/lib4/library-preload.js +2 -0
  595. package/test/sap/ui/core/qunit/testdata/libraries/scenario14/lib4/library.js +1 -0
  596. package/test/sap/ui/core/qunit/testdata/libraries/scenario14/lib5/library-preload.js +2 -0
  597. package/test/sap/ui/core/qunit/testdata/libraries/scenario14/lib5/library.js +1 -0
  598. package/test/sap/ui/core/qunit/testdata/libraries/scenario14/lib6/library-preload.js +2 -0
  599. package/test/sap/ui/core/qunit/testdata/libraries/scenario14/lib6/library.js +1 -0
  600. package/test/sap/ui/core/qunit/testdata/libraries/scenario14/lib7/library-preload.js +2 -0
  601. package/test/sap/ui/core/qunit/testdata/libraries/scenario14/lib7/library.js +1 -0
  602. package/test/sap/ui/core/qunit/testdata/libraries/scenario14/lib8/library-preload.js +2 -0
  603. package/test/sap/ui/core/qunit/testdata/libraries/scenario14/lib8/library.js +1 -0
  604. package/test/sap/ui/core/qunit/testdata/libraries/scenario15/lib1/library-preload.js +2 -0
  605. package/test/sap/ui/core/qunit/testdata/libraries/scenario15/lib1/library.js +1 -0
  606. package/test/sap/ui/core/qunit/testdata/libraries/scenario15/lib10/library-preload.js +2 -0
  607. package/test/sap/ui/core/qunit/testdata/libraries/scenario15/lib10/library.js +1 -0
  608. package/test/sap/ui/core/qunit/testdata/libraries/scenario15/lib2/library-preload.json +1 -1
  609. package/test/sap/ui/core/qunit/testdata/libraries/scenario15/lib2/library.js +1 -0
  610. package/test/sap/ui/core/qunit/testdata/libraries/scenario15/lib3/library-preload.js +2 -0
  611. package/test/sap/ui/core/qunit/testdata/libraries/scenario15/lib3/library.js +1 -0
  612. package/test/sap/ui/core/qunit/testdata/libraries/scenario15/lib4/library-preload.js +2 -0
  613. package/test/sap/ui/core/qunit/testdata/libraries/scenario15/lib4/library-preload.json +1 -1
  614. package/test/sap/ui/core/qunit/testdata/libraries/scenario15/lib4/library.js +1 -0
  615. package/test/sap/ui/core/qunit/testdata/libraries/scenario15/lib5/library-preload.json +1 -1
  616. package/test/sap/ui/core/qunit/testdata/libraries/scenario15/lib5/library.js +1 -0
  617. package/test/sap/ui/core/qunit/testdata/libraries/scenario15/lib6/library-preload.js +2 -0
  618. package/test/sap/ui/core/qunit/testdata/libraries/scenario15/lib6/library.js +1 -0
  619. package/test/sap/ui/core/qunit/testdata/libraries/scenario15/lib7/library-preload.js +2 -0
  620. package/test/sap/ui/core/qunit/testdata/libraries/scenario15/lib7/library.js +1 -0
  621. package/test/sap/ui/core/qunit/testdata/libraries/scenario15/lib8/library-preload.js +2 -0
  622. package/test/sap/ui/core/qunit/testdata/libraries/scenario15/lib8/library.js +1 -0
  623. package/test/sap/ui/core/qunit/testdata/libraries/scenario15/lib9/library-preload.js +2 -0
  624. package/test/sap/ui/core/qunit/testdata/libraries/scenario15/lib9/library.js +1 -0
  625. package/test/sap/ui/core/qunit/testdata/libraries/scenario16/embeddingLib/library-preload.js +2 -0
  626. package/test/sap/ui/core/qunit/testdata/libraries/scenario16/embeddingLib/library.js +1 -0
  627. package/test/sap/ui/core/qunit/testdata/libraries/scenario2/lib1/library-preload.js +2 -0
  628. package/test/sap/ui/core/qunit/testdata/libraries/scenario2/lib1/library.js +1 -0
  629. package/test/sap/ui/core/qunit/testdata/libraries/scenario2/lib2/library-preload.json +1 -1
  630. package/test/sap/ui/core/qunit/testdata/libraries/scenario2/lib2/library.js +1 -0
  631. package/test/sap/ui/core/qunit/testdata/libraries/scenario2/lib3/library-preload.js +2 -0
  632. package/test/sap/ui/core/qunit/testdata/libraries/scenario2/lib3/library.js +1 -0
  633. package/test/sap/ui/core/qunit/testdata/libraries/scenario2/lib4/library-preload.js +2 -0
  634. package/test/sap/ui/core/qunit/testdata/libraries/scenario2/lib4/library-preload.json +1 -1
  635. package/test/sap/ui/core/qunit/testdata/libraries/scenario2/lib4/library.js +1 -0
  636. package/test/sap/ui/core/qunit/testdata/libraries/scenario2/lib5/library-preload.json +1 -1
  637. package/test/sap/ui/core/qunit/testdata/libraries/scenario2/lib5/library.js +1 -0
  638. package/test/sap/ui/core/qunit/testdata/libraries/scenario2/lib6/library-preload.js +2 -0
  639. package/test/sap/ui/core/qunit/testdata/libraries/scenario2/lib6/library.js +1 -0
  640. package/test/sap/ui/core/qunit/testdata/libraries/scenario2/lib7/library.js +1 -0
  641. package/test/sap/ui/core/qunit/testdata/libraries/scenario3/lib1/library-preload.js +2 -0
  642. package/test/sap/ui/core/qunit/testdata/libraries/scenario3/lib1/library.js +1 -0
  643. package/test/sap/ui/core/qunit/testdata/libraries/scenario3/lib2/library-preload.json +1 -1
  644. package/test/sap/ui/core/qunit/testdata/libraries/scenario3/lib2/library.js +1 -0
  645. package/test/sap/ui/core/qunit/testdata/libraries/scenario3/lib3/library-preload.js +2 -0
  646. package/test/sap/ui/core/qunit/testdata/libraries/scenario3/lib3/library.js +1 -0
  647. package/test/sap/ui/core/qunit/testdata/libraries/scenario4/lib1/library-preload.js +2 -0
  648. package/test/sap/ui/core/qunit/testdata/libraries/scenario4/lib1/library.js +1 -0
  649. package/test/sap/ui/core/qunit/testdata/libraries/scenario4/lib2/library-preload.json +1 -1
  650. package/test/sap/ui/core/qunit/testdata/libraries/scenario4/lib2/library.js +1 -0
  651. package/test/sap/ui/core/qunit/testdata/libraries/scenario5/lib1/library-preload.js +2 -0
  652. package/test/sap/ui/core/qunit/testdata/libraries/scenario5/lib1/library.js +1 -0
  653. package/test/sap/ui/core/qunit/testdata/libraries/scenario5/lib2/library-preload.js +2 -0
  654. package/test/sap/ui/core/qunit/testdata/libraries/scenario5/lib2/library.js +1 -0
  655. package/test/sap/ui/core/qunit/testdata/libraries/scenario5/lib3/library-preload.js +2 -0
  656. package/test/sap/ui/core/qunit/testdata/libraries/scenario5/lib3/library.js +1 -0
  657. package/test/sap/ui/core/qunit/testdata/libraries/scenario5/lib4/library-preload.js +2 -0
  658. package/test/sap/ui/core/qunit/testdata/libraries/scenario5/lib4/library-preload.json +1 -1
  659. package/test/sap/ui/core/qunit/testdata/libraries/scenario5/lib4/library.js +1 -0
  660. package/test/sap/ui/core/qunit/testdata/libraries/scenario5/lib5/library-preload.json +1 -1
  661. package/test/sap/ui/core/qunit/testdata/libraries/scenario5/lib5/library.js +1 -0
  662. package/test/sap/ui/core/qunit/testdata/libraries/scenario5/lib6/library-preload.js +2 -0
  663. package/test/sap/ui/core/qunit/testdata/libraries/scenario5/lib6/library.js +1 -0
  664. package/test/sap/ui/core/qunit/testdata/libraries/scenario6/lib1/library-preload.json +1 -1
  665. package/test/sap/ui/core/qunit/testdata/libraries/scenario6/lib1/library.js +1 -0
  666. package/test/sap/ui/core/qunit/testdata/libraries/scenario6/lib2/library-preload.json +1 -1
  667. package/test/sap/ui/core/qunit/testdata/libraries/scenario6/lib2/library.js +1 -0
  668. package/test/sap/ui/core/qunit/testdata/libraries/scenario7/lib1/library-preload.js +2 -0
  669. package/test/sap/ui/core/qunit/testdata/libraries/scenario7/lib1/library-preload.json +1 -1
  670. package/test/sap/ui/core/qunit/testdata/libraries/scenario7/lib1/library.js +1 -0
  671. package/test/sap/ui/core/qunit/testdata/libraries/scenario7/lib2/library-preload.json +1 -1
  672. package/test/sap/ui/core/qunit/testdata/libraries/scenario7/lib2/library.js +1 -0
  673. package/test/sap/ui/core/qunit/testdata/libraries/scenario7/lib3/library-preload.js +2 -0
  674. package/test/sap/ui/core/qunit/testdata/libraries/scenario7/lib3/library.js +1 -0
  675. package/test/sap/ui/core/qunit/testdata/libraries/scenario7/lib4/library-preload.json +1 -1
  676. package/test/sap/ui/core/qunit/testdata/libraries/scenario7/lib4/library.js +1 -0
  677. package/test/sap/ui/core/qunit/testdata/libraries/scenario7/lib5/library-preload.js +2 -0
  678. package/test/sap/ui/core/qunit/testdata/libraries/scenario7/lib5/library.js +1 -0
  679. package/test/sap/ui/core/qunit/testdata/libraries/scenario8/lib1/library-preload.js +2 -0
  680. package/test/sap/ui/core/qunit/testdata/libraries/scenario8/lib1/library-preload.json +1 -1
  681. package/test/sap/ui/core/qunit/testdata/libraries/scenario8/lib1/library.js +1 -0
  682. package/test/sap/ui/core/qunit/testdata/libraries/scenario8/lib2/library-preload.json +1 -1
  683. package/test/sap/ui/core/qunit/testdata/libraries/scenario8/lib2/library.js +1 -0
  684. package/test/sap/ui/core/qunit/testdata/libraries/scenario8/lib3/library-preload.js +2 -0
  685. package/test/sap/ui/core/qunit/testdata/libraries/scenario8/lib3/library.js +1 -0
  686. package/test/sap/ui/core/qunit/testdata/libraries/scenario8/lib4/library-preload.json +1 -1
  687. package/test/sap/ui/core/qunit/testdata/libraries/scenario8/lib4/library.js +1 -0
  688. package/test/sap/ui/core/qunit/testdata/libraries/scenario8/lib5/library-preload.js +2 -0
  689. package/test/sap/ui/core/qunit/testdata/libraries/scenario8/lib5/library.js +1 -0
  690. package/test/sap/ui/core/qunit/testdata/libraries/scenario9/lib1/library-preload.js +2 -0
  691. package/test/sap/ui/core/qunit/testdata/libraries/scenario9/lib1/library.js +1 -0
  692. package/test/sap/ui/core/qunit/testdata/libraries/terminologies/absoluteBundleUrl/library-preload.js +2 -0
  693. package/test/sap/ui/core/qunit/testdata/libraries/terminologies/integration/application/Component-preload.js +1 -1
  694. package/test/sap/ui/core/qunit/testdata/libraries/terminologies/integration/lib/library-preload.js +2 -2
  695. package/test/sap/ui/core/qunit/testdata/libraries/terminologies/notLoadedYet/library-preload.js +2 -0
  696. package/test/sap/ui/core/qunit/testdata/libraries/terminologies/simple/library-preload.js +2 -0
  697. package/test/sap/ui/core/qunit/testdata/libraries/themeParameters/lib1/library.js +1 -0
  698. package/test/sap/ui/core/qunit/testdata/libraries/themeParameters/lib10/library.js +1 -0
  699. package/test/sap/ui/core/qunit/testdata/libraries/themeParameters/lib11/library.js +1 -0
  700. package/test/sap/ui/core/qunit/testdata/libraries/themeParameters/lib12/library.js +1 -0
  701. package/test/sap/ui/core/qunit/testdata/libraries/themeParameters/lib13/library.js +1 -0
  702. package/test/sap/ui/core/qunit/testdata/libraries/themeParameters/lib14/library.js +1 -0
  703. package/test/sap/ui/core/qunit/testdata/libraries/themeParameters/lib15/library.js +1 -0
  704. package/test/sap/ui/core/qunit/testdata/libraries/themeParameters/lib16/library.js +1 -0
  705. package/test/sap/ui/core/qunit/testdata/libraries/themeParameters/lib17/library.js +1 -0
  706. package/test/sap/ui/core/qunit/testdata/libraries/themeParameters/lib2/library.js +1 -0
  707. package/test/sap/ui/core/qunit/testdata/libraries/themeParameters/lib3/library.js +1 -0
  708. package/test/sap/ui/core/qunit/testdata/libraries/themeParameters/lib4/library.js +1 -0
  709. package/test/sap/ui/core/qunit/testdata/libraries/themeParameters/lib5/library.js +1 -0
  710. package/test/sap/ui/core/qunit/testdata/libraries/themeParameters/lib6/library.js +1 -0
  711. package/test/sap/ui/core/qunit/testdata/libraries/themeParameters/lib7/library.js +1 -0
  712. package/test/sap/ui/core/qunit/testdata/libraries/themeParameters/lib8/library.js +1 -0
  713. package/test/sap/ui/core/qunit/testdata/libraries/themeParameters/lib9/library.js +1 -0
  714. package/test/sap/ui/core/qunit/testdata/routing/scenario1/RootView.view.xml +1 -2
  715. package/test/sap/ui/core/qunit/testdata/uilib/library.js +1 -0
  716. package/test/sap/ui/core/qunit/testdata/uilib/themes/test_theme_scoped/library-parameters.json +25 -0
  717. package/test/sap/ui/core/qunit/testdata/uilib/themes/test_theme_scoped/library.css +28 -0
  718. package/test/sap/ui/core/qunit/testdata/uilib-custom-theme-fallback/library.js +1 -0
  719. package/test/sap/ui/core/qunit/testdata/uilib-failing-css-import/library.js +1 -0
  720. package/test/sap/ui/core/qunit/testdata/xml-require/view/XMLTemplateProcessorAsync_require_expression.view.xml +0 -1
  721. package/test/sap/ui/core/qunit/testdata/xml-require/view/XMLTemplateProcessorAsync_require_expressionFaulty.view.xml +40 -0
  722. package/test/sap/ui/core/qunit/testsuites/testsuite.control.framework.qunit.js +11 -1
  723. package/test/sap/ui/core/qunit/testsuites/testsuite.eventing.qunit.js +3 -0
  724. package/test/sap/ui/core/qunit/testsuites/testsuite.foundation.enablement.qunit.js +3 -0
  725. package/test/sap/ui/core/qunit/types/Date.qunit.js +62 -25
  726. package/test/sap/ui/core/qunit/types/DateInterval.qunit.js +79 -12
  727. package/test/sap/ui/core/qunit/types/Types.qunit.js +100 -32
  728. package/test/sap/ui/core/qunit/types/testsuite.types.qunit.js +0 -6
  729. package/test/sap/ui/core/qunit/ui5classes/DataType.qunit.js +10 -1
  730. package/test/sap/ui/core/qunit/ui5classes/ManagedObject.qunit.js +102 -19
  731. package/test/sap/ui/core/qunit/ui5classes/Object.qunit.js +116 -124
  732. package/test/sap/ui/core/qunit/util/LabelEnablement.qunit.js +122 -3
  733. package/test/sap/ui/core/qunit/util/reflection/JsControlTreeModifier.qunit.js +79 -4
  734. package/test/sap/ui/core/qunit/util/reflection/XmlTreeModifier.qunit.js +0 -1
  735. package/test/sap/ui/core/relnotes/changes-1.124.json +32 -0
  736. package/test/sap/ui/core/samples/databinding/UnitTable/README.md +18 -0
  737. package/test/sap/ui/core/samples/databinding/UnitTable/package.json +13 -0
  738. package/test/sap/ui/core/samples/databinding/UnitTable/ui5.yaml +12 -0
  739. package/test/sap/ui/core/samples/databinding/UnitTable/webapp/Component.js +29 -0
  740. package/test/sap/ui/core/samples/databinding/UnitTable/webapp/controller/UnitTable.controller.js +58 -0
  741. package/test/sap/ui/core/samples/databinding/{UnitTable.meters.json → UnitTable/webapp/data/UnitTable.meters.json} +42 -42
  742. package/test/sap/ui/core/samples/databinding/UnitTable/webapp/index.html +28 -0
  743. package/test/sap/ui/core/samples/databinding/UnitTable/webapp/manifest.json +40 -0
  744. package/test/sap/ui/core/samples/databinding/UnitTable/webapp/view/UnitTable.view.xml +206 -0
  745. package/test/sap/ui/core/samples/draganddrop/DragAndDrop.html +2 -2
  746. package/test/sap/ui/core/samples/draganddrop/dragBetweenLists.html +10 -5
  747. package/test/sap/ui/core/samples/draganddrop/dragWithinList.html +0 -2
  748. package/test/sap/ui/core/visual/images/ContextMenuSupport/windows/1600x1200/chrome/horizon/ltr/cozy/firstItem-contextMenu.ref.lnk +1 -1
  749. package/test/sap/ui/core/visual/images/ContextMenuSupport/windows/1600x1200/chrome/horizon/ltr/cozy/initial.ref.lnk +1 -1
  750. package/test/sap/ui/core/visual/images/ContextMenuSupport/windows/1600x1200/chrome/horizon/ltr/cozy/lastItem-contextMenu.ref.lnk +1 -1
  751. package/test/sap/ui/core/visual/images/ContextMenuSupport/windows/1600x1200/chrome/horizon/ltr/cozy/leftDownBtn-contextMenu.ref.lnk +1 -1
  752. package/test/sap/ui/core/visual/images/ContextMenuSupport/windows/1600x1200/chrome/horizon/ltr/cozy/myButtonSample-contextMenu.ref.lnk +1 -1
  753. package/test/sap/ui/core/visual/images/ContextMenuSupport/windows/1600x1200/chrome/horizon/ltr/cozy/rightDownBtn-contextMenu.ref.lnk +1 -1
  754. package/test/sap/ui/core/CurrenciesIndia.html +0 -182
  755. package/test/sap/ui/core/CurrenciesRTL.html +0 -312
  756. package/test/sap/ui/core/CustomData.html +0 -161
  757. package/test/sap/ui/core/DataTypeNormalizer.html +0 -44
  758. package/test/sap/ui/core/Formats.html +0 -384
  759. package/test/sap/ui/core/Strings.controller.js +0 -90
  760. package/test/sap/ui/core/Strings.css +0 -8
  761. package/test/sap/ui/core/Strings.html +0 -25
  762. package/test/sap/ui/core/Strings.js +0 -20
  763. package/test/sap/ui/core/Strings.view.xml +0 -86
  764. package/test/sap/ui/core/Timezones.html +0 -23
  765. package/test/sap/ui/core/qunit/ODataModelRefresh.qunit.html +0 -236
  766. package/test/sap/ui/core/qunit/ODataModelThreshold.qunit.html +0 -164
  767. package/test/sap/ui/core/samples/databinding/DataBindingAsyncType.html +0 -85
  768. package/test/sap/ui/core/samples/databinding/DataBindingDeclarativeSyntax.js +0 -65
  769. package/test/sap/ui/core/samples/databinding/DataBindingFragment.html +0 -21
  770. package/test/sap/ui/core/samples/databinding/DatabindingDeclarativeSyntax.html +0 -38
  771. package/test/sap/ui/core/samples/databinding/DatabindingMessages.html +0 -193
  772. package/test/sap/ui/core/samples/databinding/ODatabindingMessages.html +0 -305
  773. package/test/sap/ui/core/samples/databinding/UnitTable.controller.js +0 -202
  774. package/test/sap/ui/core/samples/databinding/UnitTable.html +0 -25
  775. package/test/sap/ui/core/samples/databinding/UnitTable.view.xml +0 -337
  776. package/test/sap/ui/core/samples/databinding/UnitTableMain.js +0 -21
  777. package/test/sap/ui/core/samples/databinding/fragment/Fragment.fragment.xml +0 -6
  778. package/test/sap/ui/core/samples/databinding/fragment/NamedFragment.fragment.xml +0 -6
  779. package/test/sap/ui/core/samples/databinding/fragment/View.controller.js +0 -36
  780. package/test/sap/ui/core/samples/databinding/fragment/View.view.xml +0 -12
  781. package/test/sap/ui/core/samples/databinding/message/Component.js +0 -185
  782. package/test/sap/ui/core/samples/databinding/message/component.json +0 -12
  783. package/test/sap/ui/core/samples/databinding/message/comptree/Component.js +0 -186
  784. package/test/sap/ui/core/samples/databinding/message/comptree/component.json +0 -12
  785. package/test/sap/ui/core/samples/databinding/message/disabled/Component.js +0 -186
  786. package/test/sap/ui/core/samples/databinding/message/disabled/component.json +0 -12
  787. package/test/sap/ui/core/samples/databinding/message/enabled/Component.js +0 -186
  788. package/test/sap/ui/core/samples/databinding/message/enabled/component.json +0 -12
  789. package/test/sap/ui/core/samples/databinding/testdata/ComplexSyntax.js +0 -38
  790. package/test/sap/ui/core/samples/databinding/testdata/complexsyntax.controller.js +0 -26
  791. package/test/sap/ui/core/samples/databinding/testdata/complexsyntax.view.xml +0 -26
  792. package/test/sap/ui/core/samples/databinding/testdata/team.xml +0 -12
  793. package/test/sap/ui/core/samples/databinding/testdata/test.controller.js +0 -39
  794. package/test/sap/ui/core/samples/databinding/testdata/text.properties +0 -5
  795. package/test/sap/ui/core/samples/databinding/testdata/text_de.properties +0 -5
  796. package/test/sap/ui/core/samples/formatting/Component.js +0 -21
  797. package/test/sap/ui/core/samples/formatting/controller/ChooseFormatOptions.controller.js +0 -96
  798. package/test/sap/ui/core/samples/formatting/controller/Main.controller.js +0 -9
  799. package/test/sap/ui/core/samples/formatting/index.html +0 -28
  800. package/test/sap/ui/core/samples/formatting/manifest.json +0 -68
  801. package/test/sap/ui/core/samples/formatting/model/Customizing.js +0 -35
  802. package/test/sap/ui/core/samples/formatting/model/data.json +0 -17
  803. package/test/sap/ui/core/samples/formatting/types/CustomCurrency.js +0 -14
  804. package/test/sap/ui/core/samples/formatting/types/CustomUnit.js +0 -14
  805. package/test/sap/ui/core/samples/formatting/view/App.view.xml +0 -6
  806. package/test/sap/ui/core/samples/formatting/view/ChooseFormatOptions.view.xml +0 -71
  807. package/test/sap/ui/core/samples/formatting/view/InputFields.fragment.xml +0 -118
  808. package/test/sap/ui/core/samples/formatting/view/Main.view.xml +0 -15
  809. package/test/sap/ui/core/timezones.js +0 -92
  810. package/test/sap/ui/core/timezones.view.xml +0 -23
  811. /package/test/sap/ui/core/qunit/component/testdata/{mixed → mixed_legacyAPIs}/script.js +0 -0
@@ -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.123.0
60
+ * @version 1.124.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
@@ -115,8 +115,8 @@ sap.ui.define([
115
115
 
116
116
  mParameters = _Helper.clone(mParameters) || {};
117
117
  this.checkBindingParameters(mParameters, ["$$aggregation", "$$canonicalPath",
118
- "$$getKeepAliveContext", "$$groupId", "$$operationMode", "$$ownRequest",
119
- "$$patchWithoutSideEffects", "$$sharedRequest", "$$updateGroupId"]);
118
+ "$$clearSelectionOnFilter", "$$getKeepAliveContext", "$$groupId", "$$operationMode",
119
+ "$$ownRequest", "$$patchWithoutSideEffects", "$$sharedRequest", "$$updateGroupId"]);
120
120
  const aFilters = _Helper.toArray(vFilters);
121
121
  if (mParameters.$$aggregation && aFilters[0] === Filter.NONE) {
122
122
  throw new Error("Cannot combine Filter.NONE with $$aggregation");
@@ -152,6 +152,8 @@ sap.ui.define([
152
152
  this.aPreviousData = null; // no previous data for E.C.D. known yet
153
153
  this.bRefreshKeptElements = false; // refresh kept elements when resuming?
154
154
  this.sResumeAction = undefined; // a special resume action for $$sharedRequest
155
+ // whether a reset must perform a side-effects refresh (see #setResetViaSideEffects)
156
+ this.bResetViaSideEffects = undefined;
155
157
  this.bSharedRequest = "$$sharedRequest" in mParameters
156
158
  ? mParameters.$$sharedRequest
157
159
  : oModel.bSharedRequests;
@@ -310,19 +312,24 @@ sap.ui.define([
310
312
 
311
313
  /**
312
314
  * Applies the given map of parameters to this binding's parameters and initiates the
313
- * creation of a new cache if called with a change reason. Since 1.111.0, the header context is
314
- * deselected.
315
+ * creation of a new cache if called with a change reason. Deselects all contexts (incl. the
316
+ * header context) if the binding parameter '$$clearSelectionOnFilter' is set and '$filter',
317
+ * '$search', or <code>$$aggregation.search</code> parameters have changed.
315
318
  *
316
319
  * @param {object} mParameters
317
320
  * Map of binding parameters, {@link sap.ui.model.odata.v4.ODataModel#constructor}
318
321
  * @param {sap.ui.model.ChangeReason} [sChangeReason]
319
322
  * A change reason for {@link #reset}
323
+ * @param {string[]} [aChangedParameters]
324
+ * The list of changed parameters, only given from
325
+ * {@link sap.ui.model.odata.v4.ODataParentBinding#changeParameters}
320
326
  * @throws {Error}
321
327
  * If disallowed binding parameters are provided
322
328
  *
323
329
  * @private
324
330
  */
325
- ODataListBinding.prototype.applyParameters = function (mParameters, sChangeReason) {
331
+ ODataListBinding.prototype.applyParameters = function (mParameters, sChangeReason,
332
+ aChangedParameters) {
326
333
  var sApply,
327
334
  oOldAggregation = this.mParameters && this.mParameters.$$aggregation,
328
335
  sOldApply = this.mQueryOptions && this.mQueryOptions.$apply;
@@ -341,6 +348,11 @@ sap.ui.define([
341
348
  }
342
349
  sApply = _AggregationHelper.buildApply(mParameters.$$aggregation).$apply;
343
350
  }
351
+
352
+ const bResetSelection = this.mParameters?.$$clearSelectionOnFilter
353
+ && (aChangedParameters?.includes("$filter") || aChangedParameters?.includes("$search")
354
+ || mParameters.$$aggregation?.search !== this.mParameters.$$aggregation?.search);
355
+
344
356
  this.mQueryOptions = this.oModel.buildQueryOptions(mParameters, true);
345
357
  this.oQueryOptionsPromise = undefined; // @see #doFetchOrGetQueryOptions
346
358
  this.mParameters = mParameters; // store mParameters at binding after validation
@@ -358,19 +370,25 @@ sap.ui.define([
358
370
  // resets completely incl. first visible row
359
371
  sChangeReason = this.bHasAnalyticalInfo ? ChangeReason.Change : ChangeReason.Filter;
360
372
  }
373
+
374
+ if (aChangedParameters) {
375
+ this.setResetViaSideEffects(aChangedParameters.every(
376
+ (sParameter) => sParameter === "$orderby" || sParameter === "$filter"));
377
+ }
378
+
361
379
  if (this.isRootBindingSuspended()) {
362
380
  this.setResumeChangeReason(sChangeReason);
363
381
  return;
364
382
  }
365
383
 
384
+ if (bResetSelection) {
385
+ this.oHeaderContext?.setSelected(false); // must be done before resetting the cache
386
+ }
366
387
  this.removeCachesAndMessages("");
367
388
  this.fetchCache(this.oContext);
368
389
  this.reset(sChangeReason);
369
- if (this.oHeaderContext) {
370
- this.oHeaderContext.setSelected(false);
371
- // Update after the refresh event, otherwise $count is fetched before the request
372
- this.oHeaderContext.checkUpdate();
373
- }
390
+ // Update after the refresh event, otherwise $count is fetched before the request.
391
+ this.oHeaderContext?.checkUpdate();
374
392
  };
375
393
 
376
394
  /**
@@ -674,27 +692,27 @@ sap.ui.define([
674
692
  * The context corresponding to the group node
675
693
  * @param {boolean} [bSilent]
676
694
  * Whether no ("change") events should be fired
695
+ * @param {number} [iCount]
696
+ * The count of nodes affected by the collapse, in case the cache already performed it
677
697
  * @throws {Error}
678
698
  * If the binding's root binding is suspended
679
699
  *
680
700
  * @private
681
701
  * @see #expand
682
702
  */
683
- ODataListBinding.prototype.collapse = function (oContext, bSilent) {
684
- var aContexts = this.aContexts,
685
- iCount = this.oCache.collapse(
686
- _Helper.getRelativePath(oContext.getPath(), this.oHeaderContext.getPath())),
687
- iModelIndex = oContext.getModelIndex(),
688
- i,
689
- that = this;
703
+ ODataListBinding.prototype.collapse = function (oContext, bSilent, iCount) {
704
+ iCount ??= this.oCache.collapse(
705
+ _Helper.getRelativePath(oContext.getPath(), this.oHeaderContext.getPath()));
690
706
 
691
707
  if (iCount > 0) {
692
- aContexts.splice(iModelIndex + 1, iCount).forEach(function (oContext) {
708
+ const aContexts = this.aContexts;
709
+ const iModelIndex = oContext.getModelIndex();
710
+ aContexts.splice(iModelIndex + 1, iCount).forEach((oContext) => {
693
711
  if (!oContext.created()) {
694
- that.mPreviousContextsByPath[oContext.getPath()] = oContext;
712
+ this.mPreviousContextsByPath[oContext.getPath()] = oContext;
695
713
  } // else: created (even persisted) is kept inside "context" annotation
696
714
  });
697
- for (i = iModelIndex + 1; i < aContexts.length; i += 1) {
715
+ for (let i = iModelIndex + 1; i < aContexts.length; i += 1) {
698
716
  if (aContexts[i]) {
699
717
  aContexts[i].iIndex = i;
700
718
  }
@@ -1079,6 +1097,9 @@ sap.ui.define([
1079
1097
  // reuse the previous context, unless it is created (and persisted), but not
1080
1098
  // kept alive; always reuse created contexts in a recursive hierarchy
1081
1099
  delete this.mPreviousContextsByPath[sContextPath];
1100
+ if (oContext.created() && !("@$ui5.context.isTransient" in aResults[i])) {
1101
+ oContext.setPersisted();
1102
+ }
1082
1103
  oContext.iIndex = i$skipIndex;
1083
1104
  oContext.checkUpdate();
1084
1105
  } else if (_Helper.hasPrivateAnnotation(aResults[i], "context")) {
@@ -1087,6 +1108,11 @@ sap.ui.define([
1087
1108
  oContext = _Helper.getPrivateAnnotation(aResults[i], "context");
1088
1109
  oContext.iIndex = i$skipIndex;
1089
1110
  // oContext.checkUpdate(); // Note: no changes expected here
1111
+ sContextPath = oContext.getPath();
1112
+ if (this.mPreviousContextsByPath[sContextPath] === oContext) {
1113
+ // MUST not be both in this.aContexts and in this.mPreviousContextsByPath!
1114
+ delete this.mPreviousContextsByPath[sContextPath];
1115
+ }
1090
1116
  } else {
1091
1117
  oContext = Context.create(oModel, this, sContextPath, i$skipIndex);
1092
1118
  oContext.setSelected(this.oHeaderContext.isSelected());
@@ -1347,7 +1373,10 @@ sap.ui.define([
1347
1373
  sDeepResourcePath, sGroupId, oOldCache) {
1348
1374
  var oCache,
1349
1375
  aKeepAlivePredicates,
1350
- mKeptElementsByPredicate;
1376
+ mKeptElementsByPredicate,
1377
+ bResetViaSideEffects = this.bResetViaSideEffects;
1378
+
1379
+ this.bResetViaSideEffects = undefined;
1351
1380
 
1352
1381
  if (oOldCache && oOldCache.getResourcePath() === sResourcePath
1353
1382
  && oOldCache.$deepResourcePath === sDeepResourcePath) {
@@ -1357,6 +1386,10 @@ sap.ui.define([
1357
1386
  // but immediately after #setAggregation it might still be a _CollectionCache
1358
1387
  || this.mParameters.$$aggregation?.hierarchyQualifier
1359
1388
  && oOldCache instanceof _AggregationCache) {
1389
+ if (bResetViaSideEffects && this.mParameters.$$aggregation?.hierarchyQualifier) {
1390
+ sGroupId = this.getGroupId(); // reset via a side-effects refresh
1391
+ oOldCache.resetOutOfPlace();
1392
+ }
1360
1393
  // Note: #inheritQueryOptions as called below should not matter in case of own
1361
1394
  // requests, which are a precondition for kept-alive elements
1362
1395
  oOldCache.reset(aKeepAlivePredicates, sGroupId, mQueryOptions,
@@ -1990,7 +2023,9 @@ sap.ui.define([
1990
2023
 
1991
2024
  /**
1992
2025
  * Filters the list with the given filters. Since 1.97.0, if filters are unchanged, no request
1993
- * is sent, regardless of pending changes. Since 1.111.0, the header context is deselected.
2026
+ * is sent, regardless of pending changes. Since 1.111.0, all contexts (incl. the header
2027
+ * context) are deselected, but (since 1.120.13) only if the binding parameter
2028
+ * '$$clearSelectionOnFilter' is set.
1994
2029
  *
1995
2030
  * If there are pending changes that cannot be ignored, an error is thrown. Use
1996
2031
  * {@link #hasPendingChanges} to check if there are such pending changes. If there are, call
@@ -2089,21 +2124,22 @@ sap.ui.define([
2089
2124
  this.aApplicationFilters = aFilters;
2090
2125
  }
2091
2126
  this.oQueryOptionsPromise = undefined;
2127
+ this.setResetViaSideEffects(true);
2092
2128
 
2093
2129
  if (this.isRootBindingSuspended()) {
2094
2130
  this.setResumeChangeReason(ChangeReason.Filter);
2095
2131
  return this;
2096
2132
  }
2097
2133
 
2134
+ if (this.mParameters.$$clearSelectionOnFilter) {
2135
+ this.oHeaderContext?.setSelected(false); // must be done before resetting the cache
2136
+ }
2098
2137
  this.createReadGroupLock(this.getGroupId(), true);
2099
2138
  this.removeCachesAndMessages("");
2100
2139
  this.fetchCache(this.oContext);
2101
2140
  this.reset(ChangeReason.Filter);
2102
- if (this.oHeaderContext) {
2103
- this.oHeaderContext.setSelected(false);
2104
- // Update after the refresh event, otherwise $count is fetched before the request
2105
- this.oHeaderContext.checkUpdate();
2106
- }
2141
+ // Update after the refresh event, otherwise $count is fetched before the request
2142
+ this.oHeaderContext?.checkUpdate();
2107
2143
 
2108
2144
  return this;
2109
2145
  };
@@ -3040,24 +3076,32 @@ sap.ui.define([
3040
3076
 
3041
3077
  /**
3042
3078
  * Inserts a new gap into <code>this.aContexts</code> just after the given index and with the
3043
- * given positive length.
3079
+ * given positive length. Note that the given index may be the last within the array, but not
3080
+ * outside!
3044
3081
  *
3045
3082
  * @param {number} iPreviousIndex - Last index just before the new gap
3046
3083
  * @param {number} iLength - Positive length of the new gap
3084
+ * @throws {Error} If the index is outside of the array
3047
3085
  *
3048
3086
  * @private
3049
3087
  */
3050
3088
  ODataListBinding.prototype.insertGap = function (iPreviousIndex, iLength) {
3051
3089
  const aContexts = this.aContexts;
3052
- for (let i = aContexts.length - 1; i > iPreviousIndex; i -= 1) {
3053
- const oMovingContext = aContexts[i];
3054
- if (oMovingContext) {
3055
- oMovingContext.iIndex += iLength;
3056
- aContexts[i + iLength] = oMovingContext;
3057
- delete aContexts[i]; // Note: iLength > 0
3090
+ if (iPreviousIndex >= aContexts.length) {
3091
+ throw new Error("Array index out of bounds: " + iPreviousIndex);
3092
+ } else if (iPreviousIndex === aContexts.length - 1) {
3093
+ aContexts.length += iLength;
3094
+ } else {
3095
+ for (let i = aContexts.length - 1; i > iPreviousIndex; i -= 1) {
3096
+ const oMovingContext = aContexts[i];
3097
+ if (oMovingContext) {
3098
+ oMovingContext.iIndex += iLength;
3099
+ aContexts[i + iLength] = oMovingContext;
3100
+ delete aContexts[i]; // Note: iLength > 0
3101
+ }
3102
+ // else: nothing to do because !(i in aContexts) and aContexts[i + iLength]
3103
+ // has been deleted before (loop works backwards)
3058
3104
  }
3059
- // else: nothing to do because !(i in aContexts) and aContexts[i + iLength]
3060
- // has been deleted before (loop works backwards)
3061
3105
  }
3062
3106
  this.iMaxLength += iLength;
3063
3107
  };
@@ -3222,24 +3266,24 @@ sap.ui.define([
3222
3266
  };
3223
3267
 
3224
3268
  /**
3225
- * Moves the given (child) node to the given parent. An expanded (child) node is silently
3226
- * collapsed before and expanded after the move. A collapsed parent is automatically expanded;
3227
- * so is a leaf. The (child) node is added as the parent's 1st child (created persisted) in case
3228
- * of expandTo:1, or "in place" (and simply persisted) else.
3229
- * Omitting a new parent turns the child into a root.
3269
+ * Moves the given (child) node to the given parent, just before the given next sibling. An
3270
+ * expanded (child) node is silently collapsed before and expanded after the move. A collapsed
3271
+ * parent is automatically expanded; so is a leaf. The (child) node is added to the parent at
3272
+ * its proper position ("in place") and simply "persisted". Specifying a next sibling always
3273
+ * leads to a subsequent side-effects refresh within the same $batch, but still the moved
3274
+ * (child) node's index is updated to the new position.
3230
3275
  *
3231
3276
  * @param {sap.ui.model.odata.v4.Context} oChildContext - The (child) node to be moved
3232
- * @param {sap.ui.model.odata.v4.Context} [oParentContext] - The new parent's context
3277
+ * @param {sap.ui.model.odata.v4.Context|null} oParentContext - The new parent's context
3278
+ * @param {sap.ui.model.odata.v4.Context|null} [oSiblingContext] - The next sibling's context
3233
3279
  * @returns {sap.ui.base.SyncPromise<void>}
3234
3280
  * A promise which is resolved without a defined result when the move is finished, or
3235
3281
  * rejected in case of an error
3236
- * @throws {Error}
3237
- * If <code>oAggregation.expandTo</code> is unsupported (neither one nor at least
3238
- * <code>Number.MAX_SAFE_INTEGER</code>).
3282
+ * @throws {Error} If there is no recursive hierarchy
3239
3283
  *
3240
3284
  * @private
3241
3285
  */
3242
- ODataListBinding.prototype.move = function (oChildContext, oParentContext) {
3286
+ ODataListBinding.prototype.move = function (oChildContext, oParentContext, oSiblingContext) {
3243
3287
  /*
3244
3288
  * Sets the <code>iIndex</code> of every context instance inside the given range. Allows for
3245
3289
  * start greater than end and swaps both in that case.
@@ -3262,61 +3306,54 @@ sap.ui.define([
3262
3306
  if (!oAggregation || !oAggregation.hierarchyQualifier) {
3263
3307
  throw new Error("Missing recursive hierarchy");
3264
3308
  }
3265
- if (oAggregation.expandTo > 1 && oAggregation.expandTo < Number.MAX_SAFE_INTEGER) {
3266
- throw new Error("Unsupported $$aggregation.expandTo: " + oAggregation.expandTo);
3267
- } // Note: undefined is well allowed!
3268
-
3269
- const bExpanded = oChildContext.isExpanded();
3270
- if (bExpanded) {
3271
- this.collapse(oChildContext, /*bSilent*/true);
3272
- }
3273
3309
 
3310
+ const sUpdateGroupId = this.getUpdateGroupId();
3311
+ const oGroupLock = this.lockGroup(sUpdateGroupId, true, true);
3274
3312
  const sChildPath = oChildContext.getCanonicalPath().slice(1);
3275
- const sParentPath = oParentContext?.getCanonicalPath().slice(1); // before #lockGroup!
3276
- const oGroupLock = this.lockGroup(this.getUpdateGroupId(), true, true);
3313
+ const sParentPath = oParentContext === null
3314
+ ? null
3315
+ : oParentContext.getCanonicalPath().slice(1); // before #lockGroup!
3316
+ const sSiblingPath = oSiblingContext === null
3317
+ ? null
3318
+ : oSiblingContext?.getCanonicalPath().slice(1); // before #lockGroup!
3319
+ const sNonCanonicalChildPath = oSiblingContext === undefined
3320
+ ? undefined
3321
+ : oChildContext.getPath().slice(1);
3322
+ const {promise : oPromise, refresh : bRefresh} = this.oCache.move(oGroupLock, sChildPath,
3323
+ sParentPath, sSiblingPath, sNonCanonicalChildPath);
3277
3324
 
3278
- return this.oCache.move(oGroupLock, sChildPath, sParentPath).then(([iCount, iNewIndex]) => {
3325
+ if (bRefresh) {
3326
+ return SyncPromise.all([
3327
+ oPromise,
3328
+ this.requestSideEffects(sUpdateGroupId, [""])
3329
+ ]).then(([fnGetIndex]) => {
3330
+ // Note: wait for side-effects refresh before getting index!
3331
+ oChildContext.iIndex = fnGetIndex();
3332
+ });
3333
+ }
3334
+
3335
+ return oPromise.then(([iCount, iNewIndex, iCollapseCount]) => {
3279
3336
  if (iCount > 1) { // Note: skip oChildContext which is treated below
3280
3337
  this.insertGap(oParentContext.getModelIndex(), iCount - 1);
3281
3338
  }
3282
-
3339
+ if (iCollapseCount) { // Note: _AC#collapse already done!
3340
+ this.collapse(oChildContext, /*bSilent*/true, iCollapseCount);
3341
+ }
3283
3342
  const iOldIndex = oChildContext.getModelIndex();
3284
- if (oAggregation.expandTo > 1) {
3285
- if (oChildContext.created()) {
3286
- oChildContext.setPersisted();
3287
- }
3288
- this.aContexts.splice(iOldIndex, 1);
3289
- this.aContexts.splice(iNewIndex, 0, oChildContext);
3290
- setIndices(iOldIndex, iNewIndex);
3343
+ this.aContexts.splice(iOldIndex, 1);
3344
+ if (iNewIndex > this.aContexts.length) {
3345
+ this.aContexts[iNewIndex] = oChildContext;
3346
+ // Note: no need to adjust iMaxLength
3291
3347
  } else {
3292
- if (!oChildContext.created()) {
3293
- oChildContext.setCreatedPersisted();
3294
- }
3295
- // Note: w/o oParentContext, iParentIndex === -1 and iParentIndex + 1 === 0 :-)
3296
- const iParentIndex = oParentContext
3297
- ? oParentContext.getModelIndex() // Note: !== iOldIndex
3298
- : -1;
3299
- if (iOldIndex < iParentIndex) {
3300
- this.aContexts.splice(iParentIndex + 1, 0, oChildContext);
3301
- this.aContexts.splice(iOldIndex, 1); // parent moves to lower index!
3302
- setIndices(iOldIndex, iParentIndex);
3303
- } else if (iOldIndex > iParentIndex + 1) {
3304
- this.aContexts.splice(iOldIndex, 1); // parent unaffected!
3305
- this.aContexts.splice(iParentIndex + 1, 0, oChildContext);
3306
- setIndices(iParentIndex + 1, iOldIndex);
3307
- } // else: iOldIndex === iParentIndex + 1 => nothing to do
3348
+ this.aContexts.splice(iNewIndex, 0, oChildContext);
3308
3349
  }
3350
+ setIndices(iOldIndex, iNewIndex);
3309
3351
 
3310
- if (bExpanded) {
3352
+ if (iCollapseCount) {
3311
3353
  this.expand(oChildContext).unwrap(); // guaranteed to be sync! incl. _fireChange
3312
3354
  } else {
3313
3355
  this._fireChange({reason : ChangeReason.Change});
3314
3356
  }
3315
- }, (oError) => {
3316
- if (bExpanded) {
3317
- this.expand(oChildContext, /*bSilent*/true).unwrap(); // guaranteed to be sync!
3318
- }
3319
- throw oError;
3320
3357
  });
3321
3358
  };
3322
3359
 
@@ -4136,13 +4173,16 @@ sap.ui.define([
4136
4173
  ODataListBinding.prototype.resumeInternal = function (_bCheckUpdate, bParentHasChanges) {
4137
4174
  var sResumeAction = this.sResumeAction,
4138
4175
  sResumeChangeReason = this.sResumeChangeReason,
4139
- bRefresh = bParentHasChanges || sResumeAction || sResumeChangeReason,
4140
- that = this;
4176
+ bRefresh = bParentHasChanges || sResumeAction || sResumeChangeReason;
4141
4177
 
4142
4178
  this.sResumeAction = undefined;
4143
4179
  this.sResumeChangeReason = undefined;
4144
4180
 
4145
4181
  if (bRefresh) {
4182
+ if (this.mParameters.$$clearSelectionOnFilter
4183
+ && sResumeChangeReason === ChangeReason.Filter) {
4184
+ this.oHeaderContext?.setSelected(false);
4185
+ }
4146
4186
  this.removeCachesAndMessages("");
4147
4187
  if (sResumeAction === "onChange") {
4148
4188
  this.onChange();
@@ -4159,7 +4199,7 @@ sap.ui.define([
4159
4199
 
4160
4200
  if (this.bRefreshKeptElements) {
4161
4201
  this.bRefreshKeptElements = false;
4162
- that.refreshKeptElements(that.getGroupId());
4202
+ this.refreshKeptElements(this.getGroupId());
4163
4203
  }
4164
4204
  }
4165
4205
  this.getDependentBindings().forEach(function (oDependentBinding) {
@@ -4285,7 +4325,9 @@ sap.ui.define([
4285
4325
  * proposal <a href="https://issues.oasis-open.org/browse/ODATA-1452">ODATA-1452</a>, then
4286
4326
  * <code>ODataUtils.formatLiteral(sSearch, "Edm.String");</code> should be used to encapsulate
4287
4327
  * the whole search string beforehand (see {@link
4288
- * sap.ui.model.odata.v4.ODataUtils.formatLiteral}).
4328
+ * sap.ui.model.odata.v4.ODataUtils.formatLiteral}). Since 1.120.13, all contexts, including
4329
+ * the header context are deselected if the '$$clearSelectionOnFilter' binding parameter is
4330
+ * set and the search parameter is changed.
4289
4331
  * @param {boolean} [oAggregation.subtotalsAtBottomOnly]
4290
4332
  * Tells whether subtotals for aggregatable properties are displayed at the bottom only, as a
4291
4333
  * separate row after all children, when a group level node is expanded (since 1.86.0);
@@ -4428,6 +4470,30 @@ sap.ui.define([
4428
4470
  }
4429
4471
  };
4430
4472
 
4473
+ /**
4474
+ * Defines whether the following reset must perform a side-effects refresh instead of a full
4475
+ * refresh.
4476
+ *
4477
+ * <code>this.bResetViaSideEffects</code> may have the following values:
4478
+ * <ul>
4479
+ * <li> <code>true</code>: Reset performs a side-effects refresh (possible if only filter or
4480
+ * sorter have changed and nothing else).
4481
+ * <li> <code>false</code>: It is not possible anymore to perform a side-effects refresh.
4482
+ * <li> <code>undefined</code>: The default value, side-effects refresh not yet needed.
4483
+ *
4484
+ * @param {boolean} bResetViaSideEffects
4485
+ * Whether a side-effects refresh is required
4486
+ *
4487
+ * @private
4488
+ */
4489
+ ODataListBinding.prototype.setResetViaSideEffects = function (bResetViaSideEffects) {
4490
+ if (!bResetViaSideEffects) {
4491
+ this.bResetViaSideEffects = false;
4492
+ } else if (this.bResetViaSideEffects === undefined) {
4493
+ this.bResetViaSideEffects = true;
4494
+ }
4495
+ };
4496
+
4431
4497
  /**
4432
4498
  * Sort the entries represented by this list binding according to the given sorters.
4433
4499
  * The sorters are stored at this list binding and they are used for each following data
@@ -4452,7 +4518,6 @@ sap.ui.define([
4452
4518
  * '$orderby' binding parameter, are always applied after the dynamic sorters.
4453
4519
  * @returns {this}
4454
4520
  * <code>this</code> to facilitate method chaining
4455
- * @throws {Error}
4456
4521
  * @throws {Error} If
4457
4522
  * <ul>
4458
4523
  * <li> there are pending changes that cannot be ignored,
@@ -4493,6 +4558,7 @@ sap.ui.define([
4493
4558
 
4494
4559
  this.aSorters = aSorters;
4495
4560
  this.oQueryOptionsPromise = undefined;
4561
+ this.setResetViaSideEffects(true);
4496
4562
 
4497
4563
  if (this.isRootBindingSuspended()) {
4498
4564
  this.setResumeChangeReason(ChangeReason.Sort);
@@ -4671,7 +4737,7 @@ sap.ui.define([
4671
4737
  * @see #getAllCurrentContexts
4672
4738
  */
4673
4739
  ODataListBinding.prototype._getAllExistingContexts = function () {
4674
- return this.aContexts.filter(function (oContext) {
4740
+ return (this.aContexts ?? []).filter(function (oContext) {
4675
4741
  return oContext;
4676
4742
  }).concat(Object.values(this.mPreviousContextsByPath).filter(function (oContext) {
4677
4743
  return oContext.isEffectivelyKeptAlive();
@@ -156,7 +156,7 @@ sap.ui.define([
156
156
  * @hideconstructor
157
157
  * @public
158
158
  * @since 1.37.0
159
- * @version 1.123.0
159
+ * @version 1.124.0
160
160
  */
161
161
  ODataMetaModel = MetaModel.extend("sap.ui.model.odata.v4.ODataMetaModel", {
162
162
  constructor : constructor
@@ -36,12 +36,12 @@ sap.ui.define([
36
36
  "sap/base/Log",
37
37
  "sap/base/i18n/Localization",
38
38
  "sap/ui/base/SyncPromise",
39
- "sap/ui/core/library",
40
39
  "sap/ui/core/Messaging",
41
40
  "sap/ui/core/Rendering",
42
41
  "sap/ui/core/Supportability",
43
42
  "sap/ui/core/cache/CacheManager",
44
43
  "sap/ui/core/message/Message",
44
+ "sap/ui/core/message/MessageType",
45
45
  "sap/ui/model/BindingMode",
46
46
  "sap/ui/model/Context",
47
47
  "sap/ui/model/Model",
@@ -49,8 +49,8 @@ sap.ui.define([
49
49
  "sap/ui/thirdparty/URI"
50
50
  ], function (ODataContextBinding, ODataListBinding, ODataMetaModel, ODataPropertyBinding,
51
51
  SubmitMode, _GroupLock, _Helper, _MetadataRequestor, _Parser, _Requestor, assert, Log,
52
- Localization, SyncPromise, coreLibrary, Messaging, Rendering, Supportability,
53
- CacheManager, Message, BindingMode, BaseContext, Model, OperationMode, URI) {
52
+ Localization, SyncPromise, Messaging, Rendering, Supportability, CacheManager,
53
+ Message, MessageType, BindingMode, BaseContext, Model, OperationMode, URI) {
54
54
  "use strict";
55
55
 
56
56
  var sClassName = "sap.ui.model.odata.v4.ODataModel",
@@ -59,7 +59,6 @@ sap.ui.define([
59
59
  "$select"],
60
60
  // binding-specific parameters allowed in getKeepAliveContext
61
61
  aGetKeepAliveParameters = ["$$groupId", "$$patchWithoutSideEffects", "$$updateGroupId"],
62
- MessageType = coreLibrary.MessageType,
63
62
  aMessageTypes = [
64
63
  undefined,
65
64
  MessageType.Success,
@@ -235,7 +234,7 @@ sap.ui.define([
235
234
  * @extends sap.ui.model.Model
236
235
  * @public
237
236
  * @since 1.37.0
238
- * @version 1.123.0
237
+ * @version 1.124.0
239
238
  */
240
239
  ODataModel = Model.extend("sap.ui.model.odata.v4.ODataModel",
241
240
  /** @lends sap.ui.model.odata.v4.ODataModel.prototype */{
@@ -894,6 +893,10 @@ sap.ui.define([
894
893
  * Whether a binding relative to an {@link sap.ui.model.odata.v4.Context} uses the canonical
895
894
  * path computed from its context's path for data service requests; only the value
896
895
  * <code>true</code> is allowed.
896
+ * @param {boolean} [mParameters.$$clearSelectionOnFilter]
897
+ * Whether the selection state of the list binding is cleared when a filter is changed; this
898
+ * includes dynamic filters, '$filter', '$search', and <code>$$aggregation.search</code>.
899
+ * Supported since 1.120.13.
897
900
  * @param {boolean} [mParameters.$$getKeepAliveContext]
898
901
  * Whether this binding is considered for a match when {@link #getKeepAliveContext} is called;
899
902
  * only the value <code>true</code> is allowed. Must not be combined with <code>$apply</code>,
@@ -327,7 +327,8 @@ sap.ui.define([
327
327
 
328
328
  /**
329
329
  * Changes this binding's parameters and refreshes the binding. Since 1.111.0, a list binding's
330
- * header context is deselected.
330
+ * header context is deselected, but (since 1.120.13) only if the binding parameter
331
+ * '$$clearSelectionOnFilter' is set and the '$filter' or '$search' parameter is changed.
331
332
  *
332
333
  * If there are pending changes that cannot be ignored, an error is thrown. Use
333
334
  * {@link #hasPendingChanges} to check if there are such pending changes. If there are, call
@@ -370,6 +371,7 @@ sap.ui.define([
370
371
  ODataParentBinding.prototype.changeParameters = function (mParameters) {
371
372
  var mBindingParameters = Object.assign({}, this.mParameters),
372
373
  sChangeReason, // @see sap.ui.model.ChangeReason
374
+ aChangedParameters = [],
373
375
  sKey,
374
376
  that = this;
375
377
 
@@ -401,6 +403,7 @@ sap.ui.define([
401
403
  } else {
402
404
  sChangeReason ??= ChangeReason.Change;
403
405
  }
406
+ aChangedParameters.push(sKey);
404
407
  }
405
408
 
406
409
  this.checkTransient();
@@ -432,7 +435,7 @@ sap.ui.define([
432
435
  if (this.hasPendingChanges(true)) {
433
436
  throw new Error("Cannot change parameters due to pending changes");
434
437
  }
435
- this.applyParameters(mBindingParameters, sChangeReason);
438
+ this.applyParameters(mBindingParameters, sChangeReason, aChangedParameters);
436
439
  }
437
440
  };
438
441
 
@@ -42,7 +42,7 @@ sap.ui.define([
42
42
  * @mixes sap.ui.model.odata.v4.ODataBinding
43
43
  * @public
44
44
  * @since 1.37.0
45
- * @version 1.123.0
45
+ * @version 1.124.0
46
46
  * @borrows sap.ui.model.odata.v4.ODataBinding#getGroupId as #getGroupId
47
47
  * @borrows sap.ui.model.odata.v4.ODataBinding#getRootBinding as #getRootBinding
48
48
  * @borrows sap.ui.model.odata.v4.ODataBinding#getUpdateGroupId as #getUpdateGroupId