@openui5/sap.ui.core 1.108.0 → 1.109.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 (352) hide show
  1. package/THIRDPARTY.txt +1 -1
  2. package/package.json +1 -1
  3. package/src/jquery.sap.global.js +1 -1
  4. package/src/jquery.sap.properties.js +1 -1
  5. package/src/jquery.sap.resources.js +1 -1
  6. package/src/jquery.sap.script.js +1 -1
  7. package/src/jquery.sap.storage.js +3 -3
  8. package/src/sap/base/Log.js +125 -84
  9. package/src/sap/base/i18n/ResourceBundle.js +41 -11
  10. package/src/sap/base/util/includes.js +1 -1
  11. package/src/sap/base/util/restricted/_CancelablePromise.js +1 -1
  12. package/src/sap/base/util/restricted/_castArray.js +1 -1
  13. package/src/sap/base/util/restricted/_compact.js +1 -1
  14. package/src/sap/base/util/restricted/_curry.js +1 -1
  15. package/src/sap/base/util/restricted/_debounce.js +1 -1
  16. package/src/sap/base/util/restricted/_difference.js +1 -1
  17. package/src/sap/base/util/restricted/_differenceBy.js +1 -1
  18. package/src/sap/base/util/restricted/_differenceWith.js +1 -1
  19. package/src/sap/base/util/restricted/_flatMap.js +1 -1
  20. package/src/sap/base/util/restricted/_flatMapDeep.js +1 -1
  21. package/src/sap/base/util/restricted/_flatMapDepth.js +1 -1
  22. package/src/sap/base/util/restricted/_flatten.js +1 -1
  23. package/src/sap/base/util/restricted/_flattenDeep.js +1 -1
  24. package/src/sap/base/util/restricted/_flattenDepth.js +1 -1
  25. package/src/sap/base/util/restricted/_intersection.js +1 -1
  26. package/src/sap/base/util/restricted/_intersectionBy.js +1 -1
  27. package/src/sap/base/util/restricted/_intersectionWith.js +1 -1
  28. package/src/sap/base/util/restricted/_isEqual.js +1 -1
  29. package/src/sap/base/util/restricted/_isEqualWith.js +1 -1
  30. package/src/sap/base/util/restricted/_isNil.js +1 -1
  31. package/src/sap/base/util/restricted/_max.js +1 -1
  32. package/src/sap/base/util/restricted/_merge.js +1 -1
  33. package/src/sap/base/util/restricted/_mergeWith.js +1 -1
  34. package/src/sap/base/util/restricted/_min.js +1 -1
  35. package/src/sap/base/util/restricted/_omit.js +1 -1
  36. package/src/sap/base/util/restricted/_pick.js +1 -1
  37. package/src/sap/base/util/restricted/_pickBy.js +1 -1
  38. package/src/sap/base/util/restricted/_throttle.js +1 -1
  39. package/src/sap/base/util/restricted/_toArray.js +1 -1
  40. package/src/sap/base/util/restricted/_union.js +1 -1
  41. package/src/sap/base/util/restricted/_unionBy.js +1 -1
  42. package/src/sap/base/util/restricted/_unionWith.js +1 -1
  43. package/src/sap/base/util/restricted/_uniq.js +1 -1
  44. package/src/sap/base/util/restricted/_uniqBy.js +1 -1
  45. package/src/sap/base/util/restricted/_uniqWith.js +1 -1
  46. package/src/sap/base/util/restricted/_without.js +1 -1
  47. package/src/sap/base/util/restricted/_xor.js +1 -1
  48. package/src/sap/base/util/restricted/_xorBy.js +1 -1
  49. package/src/sap/base/util/restricted/_xorWith.js +1 -1
  50. package/src/sap/base/util/restricted/_zipObject.js +1 -1
  51. package/src/sap/base/util/restricted/_zipObjectDeep.js +1 -1
  52. package/src/sap/base/util/values.js +2 -1
  53. package/src/sap/ui/Device.js +3 -3
  54. package/src/sap/ui/Global.js +4 -4
  55. package/src/sap/ui/base/Event.js +1 -1
  56. package/src/sap/ui/base/EventProvider.js +1 -1
  57. package/src/sap/ui/base/Interface.js +1 -1
  58. package/src/sap/ui/base/ManagedObject.js +1 -1
  59. package/src/sap/ui/base/ManagedObjectMetadata.js +1 -1
  60. package/src/sap/ui/base/ManagedObjectObserver.js +33 -11
  61. package/src/sap/ui/base/Metadata.js +1 -1
  62. package/src/sap/ui/base/Object.js +1 -1
  63. package/src/sap/ui/base/ObjectPool.js +1 -1
  64. package/src/sap/ui/core/.library +3 -3
  65. package/src/sap/ui/core/BusyIndicator.js +1 -1
  66. package/src/sap/ui/core/Component.js +1 -1
  67. package/src/sap/ui/core/ComponentContainer.js +1 -1
  68. package/src/sap/ui/core/ComponentMetadata.js +1 -1
  69. package/src/sap/ui/core/ComponentSupport.js +1 -1
  70. package/src/sap/ui/core/Configuration.js +1 -1
  71. package/src/sap/ui/core/Control.js +1 -1
  72. package/src/sap/ui/core/Core.js +4 -4
  73. package/src/sap/ui/core/CustomData.js +1 -1
  74. package/src/sap/ui/core/DeclarativeSupport.js +1 -1
  75. package/src/sap/ui/core/Element.js +1 -1
  76. package/src/sap/ui/core/ElementMetadata.js +1 -1
  77. package/src/sap/ui/core/EnabledPropagator.js +1 -1
  78. package/src/sap/ui/core/EventBus.js +1 -1
  79. package/src/sap/ui/core/Fragment.js +1 -1
  80. package/src/sap/ui/core/HTML.js +1 -1
  81. package/src/sap/ui/core/History.js +1 -1
  82. package/src/sap/ui/core/Icon.js +1 -1
  83. package/src/sap/ui/core/IndicationColorSupport.js +1 -1
  84. package/src/sap/ui/core/IntervalTrigger.js +1 -1
  85. package/src/sap/ui/core/InvisibleMessage.js +1 -1
  86. package/src/sap/ui/core/InvisibleRenderer.js +1 -1
  87. package/src/sap/ui/core/InvisibleText.js +1 -1
  88. package/src/sap/ui/core/Item.js +1 -1
  89. package/src/sap/ui/core/LabelEnablement.js +1 -1
  90. package/src/sap/ui/core/LayoutData.js +1 -1
  91. package/src/sap/ui/core/ListItem.js +1 -1
  92. package/src/sap/ui/core/LocalBusyIndicator.js +1 -1
  93. package/src/sap/ui/core/Locale.js +1 -1
  94. package/src/sap/ui/core/LocaleData.js +133 -1
  95. package/src/sap/ui/core/Manifest.js +1 -1
  96. package/src/sap/ui/core/Message.js +1 -1
  97. package/src/sap/ui/core/RenderManager.js +82 -50
  98. package/src/sap/ui/core/Renderer.js +1 -1
  99. package/src/sap/ui/core/Rendering.js +29 -9
  100. package/src/sap/ui/core/ResizeHandler.js +1 -1
  101. package/src/sap/ui/core/ScrollBar.js +1 -1
  102. package/src/sap/ui/core/SeparatorItem.js +1 -1
  103. package/src/sap/ui/core/Title.js +1 -1
  104. package/src/sap/ui/core/TooltipBase.js +1 -1
  105. package/src/sap/ui/core/UIArea.js +7 -5
  106. package/src/sap/ui/core/UIComponent.js +1 -1
  107. package/src/sap/ui/core/UIComponentMetadata.js +1 -1
  108. package/src/sap/ui/core/ValueStateSupport.js +1 -1
  109. package/src/sap/ui/core/VariantLayoutData.js +1 -1
  110. package/src/sap/ui/core/XMLComposite.js +1 -1
  111. package/src/sap/ui/core/XMLCompositeMetadata.js +1 -1
  112. package/src/sap/ui/core/XMLTemplateProcessor.js +1 -3
  113. package/src/sap/ui/core/cldr/ar.json +330 -0
  114. package/src/sap/ui/core/cldr/ar_EG.json +330 -0
  115. package/src/sap/ui/core/cldr/ar_SA.json +330 -0
  116. package/src/sap/ui/core/cldr/bg.json +295 -0
  117. package/src/sap/ui/core/cldr/ca.json +329 -0
  118. package/src/sap/ui/core/cldr/cs.json +328 -0
  119. package/src/sap/ui/core/cldr/cy.json +260 -0
  120. package/src/sap/ui/core/cldr/da.json +295 -0
  121. package/src/sap/ui/core/cldr/de.json +329 -0
  122. package/src/sap/ui/core/cldr/de_AT.json +329 -0
  123. package/src/sap/ui/core/cldr/de_CH.json +329 -0
  124. package/src/sap/ui/core/cldr/el.json +228 -0
  125. package/src/sap/ui/core/cldr/el_CY.json +228 -0
  126. package/src/sap/ui/core/cldr/en.json +294 -0
  127. package/src/sap/ui/core/cldr/en_AU.json +294 -0
  128. package/src/sap/ui/core/cldr/en_GB.json +294 -0
  129. package/src/sap/ui/core/cldr/en_HK.json +294 -0
  130. package/src/sap/ui/core/cldr/en_IE.json +294 -0
  131. package/src/sap/ui/core/cldr/en_IN.json +294 -0
  132. package/src/sap/ui/core/cldr/en_NZ.json +294 -0
  133. package/src/sap/ui/core/cldr/en_PG.json +294 -0
  134. package/src/sap/ui/core/cldr/en_SG.json +294 -0
  135. package/src/sap/ui/core/cldr/en_ZA.json +294 -0
  136. package/src/sap/ui/core/cldr/es.json +261 -0
  137. package/src/sap/ui/core/cldr/es_AR.json +261 -0
  138. package/src/sap/ui/core/cldr/es_BO.json +261 -0
  139. package/src/sap/ui/core/cldr/es_CL.json +261 -0
  140. package/src/sap/ui/core/cldr/es_CO.json +261 -0
  141. package/src/sap/ui/core/cldr/es_MX.json +261 -0
  142. package/src/sap/ui/core/cldr/es_PE.json +261 -0
  143. package/src/sap/ui/core/cldr/es_UY.json +261 -0
  144. package/src/sap/ui/core/cldr/es_VE.json +261 -0
  145. package/src/sap/ui/core/cldr/et.json +294 -0
  146. package/src/sap/ui/core/cldr/fa.json +296 -0
  147. package/src/sap/ui/core/cldr/fi.json +328 -0
  148. package/src/sap/ui/core/cldr/fr.json +294 -0
  149. package/src/sap/ui/core/cldr/fr_BE.json +294 -0
  150. package/src/sap/ui/core/cldr/fr_CA.json +294 -0
  151. package/src/sap/ui/core/cldr/fr_CH.json +294 -0
  152. package/src/sap/ui/core/cldr/fr_LU.json +294 -0
  153. package/src/sap/ui/core/cldr/he.json +329 -0
  154. package/src/sap/ui/core/cldr/hi.json +261 -0
  155. package/src/sap/ui/core/cldr/hr.json +294 -0
  156. package/src/sap/ui/core/cldr/hu.json +362 -0
  157. package/src/sap/ui/core/cldr/id.json +294 -0
  158. package/src/sap/ui/core/cldr/it.json +294 -0
  159. package/src/sap/ui/core/cldr/it_CH.json +294 -0
  160. package/src/sap/ui/core/cldr/ja.json +328 -0
  161. package/src/sap/ui/core/cldr/kk.json +294 -0
  162. package/src/sap/ui/core/cldr/ko.json +328 -0
  163. package/src/sap/ui/core/cldr/lt.json +294 -0
  164. package/src/sap/ui/core/cldr/lv.json +294 -0
  165. package/src/sap/ui/core/cldr/ms.json +262 -0
  166. package/src/sap/ui/core/cldr/nb.json +295 -0
  167. package/src/sap/ui/core/cldr/nl.json +261 -0
  168. package/src/sap/ui/core/cldr/nl_BE.json +261 -0
  169. package/src/sap/ui/core/cldr/pl.json +328 -0
  170. package/src/sap/ui/core/cldr/pt.json +294 -0
  171. package/src/sap/ui/core/cldr/pt_PT.json +294 -0
  172. package/src/sap/ui/core/cldr/ro.json +294 -0
  173. package/src/sap/ui/core/cldr/ru.json +294 -0
  174. package/src/sap/ui/core/cldr/ru_UA.json +294 -0
  175. package/src/sap/ui/core/cldr/sk.json +328 -0
  176. package/src/sap/ui/core/cldr/sl.json +328 -0
  177. package/src/sap/ui/core/cldr/sr.json +294 -0
  178. package/src/sap/ui/core/cldr/sr_Latn.json +294 -0
  179. package/src/sap/ui/core/cldr/sv.json +295 -0
  180. package/src/sap/ui/core/cldr/th.json +362 -0
  181. package/src/sap/ui/core/cldr/tr.json +362 -0
  182. package/src/sap/ui/core/cldr/uk.json +294 -0
  183. package/src/sap/ui/core/cldr/vi.json +294 -0
  184. package/src/sap/ui/core/cldr/zh_CN.json +329 -0
  185. package/src/sap/ui/core/cldr/zh_HK.json +329 -0
  186. package/src/sap/ui/core/cldr/zh_SG.json +329 -0
  187. package/src/sap/ui/core/cldr/zh_TW.json +329 -0
  188. package/src/sap/ui/core/date/Japanese.js +30 -0
  189. package/src/sap/ui/core/delegate/ItemNavigation.js +1 -1
  190. package/src/sap/ui/core/delegate/ScrollEnablement.js +1 -1
  191. package/src/sap/ui/core/dnd/DragAndDrop.js +2 -2
  192. package/src/sap/ui/core/dnd/DragDropBase.js +1 -1
  193. package/src/sap/ui/core/dnd/DragDropInfo.js +1 -1
  194. package/src/sap/ui/core/dnd/DragInfo.js +1 -1
  195. package/src/sap/ui/core/dnd/DropInfo.js +1 -1
  196. package/src/sap/ui/core/format/DateFormat.js +122 -2
  197. package/src/sap/ui/core/format/NumberFormat.js +111 -70
  198. package/src/sap/ui/core/format/TimezoneUtil.js +2 -2
  199. package/src/sap/ui/core/hyphenation/Hyphenation.js +1 -1
  200. package/src/sap/ui/core/library.js +3 -3
  201. package/src/sap/ui/core/message/ControlMessageProcessor.js +1 -1
  202. package/src/sap/ui/core/message/Message.js +1 -1
  203. package/src/sap/ui/core/message/MessageManager.js +1 -1
  204. package/src/sap/ui/core/message/MessageParser.js +1 -1
  205. package/src/sap/ui/core/message/MessageProcessor.js +1 -1
  206. package/src/sap/ui/core/mvc/HTMLView.js +1 -1
  207. package/src/sap/ui/core/mvc/JSONView.js +1 -1
  208. package/src/sap/ui/core/mvc/JSView.js +1 -1
  209. package/src/sap/ui/core/mvc/TemplateView.js +1 -1
  210. package/src/sap/ui/core/mvc/View.js +3 -3
  211. package/src/sap/ui/core/mvc/ViewType.js +4 -0
  212. package/src/sap/ui/core/mvc/XMLView.js +1 -1
  213. package/src/sap/ui/core/plugin/DeclarativeSupport.js +1 -1
  214. package/src/sap/ui/core/plugin/LessSupport.js +1 -1
  215. package/src/sap/ui/core/plugin/TemplatingSupport.js +1 -1
  216. package/src/sap/ui/core/postmessage/Bus.js +12 -17
  217. package/src/sap/ui/core/postmessage/confirmationDialog.js +1 -1
  218. package/src/sap/ui/core/search/OpenSearchProvider.js +1 -1
  219. package/src/sap/ui/core/search/SearchProvider.js +1 -1
  220. package/src/sap/ui/core/service/Service.js +1 -1
  221. package/src/sap/ui/core/service/ServiceFactory.js +1 -1
  222. package/src/sap/ui/core/service/ServiceFactoryRegistry.js +1 -1
  223. package/src/sap/ui/core/support/Plugin.js +1 -1
  224. package/src/sap/ui/core/support/Support.js +1 -1
  225. package/src/sap/ui/core/support/plugins/ControlTree.js +1 -1
  226. package/src/sap/ui/core/support/plugins/Interaction.js +1 -1
  227. package/src/sap/ui/core/support/plugins/LocalStorage.js +1 -1
  228. package/src/sap/ui/core/support/plugins/Performance.js +1 -1
  229. package/src/sap/ui/core/support/plugins/Selector.js +1 -1
  230. package/src/sap/ui/core/support/plugins/TechInfo.js +1 -1
  231. package/src/sap/ui/core/support/plugins/Trace.js +1 -1
  232. package/src/sap/ui/core/support/plugins/ViewInfo.js +1 -1
  233. package/src/sap/ui/core/themes/base/Icon.less +17 -4
  234. package/src/sap/ui/core/themes/base/LocalBusyIndicator.less +1 -1
  235. package/src/sap/ui/core/themes/base/base.less +599 -90
  236. package/src/sap/ui/core/themes/base/global.less +64 -0
  237. package/src/sap/ui/core/themes/sap_hcb/global.less +65 -0
  238. package/src/sap/ui/core/tmpl/DOMAttribute.js +1 -1
  239. package/src/sap/ui/core/tmpl/DOMElement.js +1 -1
  240. package/src/sap/ui/core/tmpl/HandlebarsTemplate.js +1 -1
  241. package/src/sap/ui/core/tmpl/Template.js +1 -1
  242. package/src/sap/ui/core/tmpl/TemplateControl.js +1 -1
  243. package/src/sap/ui/core/util/AsyncHintsHelper.js +1 -1
  244. package/src/sap/ui/core/util/Export.js +1 -1
  245. package/src/sap/ui/core/util/ExportCell.js +1 -1
  246. package/src/sap/ui/core/util/ExportColumn.js +1 -1
  247. package/src/sap/ui/core/util/ExportRow.js +1 -1
  248. package/src/sap/ui/core/util/ExportType.js +1 -1
  249. package/src/sap/ui/core/util/ExportTypeCSV.js +1 -1
  250. package/src/sap/ui/core/util/File.js +1 -1
  251. package/src/sap/ui/core/util/LibraryInfo.js +1 -1
  252. package/src/sap/ui/core/util/MockServer.js +1 -1
  253. package/src/sap/ui/core/util/PasteHelper.js +1 -1
  254. package/src/sap/ui/core/util/reflection/XmlTreeModifier.js +1 -3
  255. package/src/sap/ui/core/util/serializer/HTMLViewSerializer.js +1 -1
  256. package/src/sap/ui/core/util/serializer/Serializer.js +1 -1
  257. package/src/sap/ui/core/util/serializer/ViewSerializer.js +1 -1
  258. package/src/sap/ui/core/util/serializer/XMLViewSerializer.js +1 -1
  259. package/src/sap/ui/core/util/serializer/delegate/Delegate.js +1 -1
  260. package/src/sap/ui/core/util/serializer/delegate/HTML.js +1 -1
  261. package/src/sap/ui/core/util/serializer/delegate/XML.js +1 -1
  262. package/src/sap/ui/core/ws/ReadyState.js +1 -1
  263. package/src/sap/ui/core/ws/SapPcpWebSocket.js +1 -1
  264. package/src/sap/ui/core/ws/WebSocket.js +1 -1
  265. package/src/sap/ui/debug/ControlTree.js +1 -1
  266. package/src/sap/ui/debug/DebugEnv.js +1 -1
  267. package/src/sap/ui/debug/PropertyList.js +1 -1
  268. package/src/sap/ui/model/ClientModel.js +1 -1
  269. package/src/sap/ui/model/CompositeDataState.js +1 -1
  270. package/src/sap/ui/model/CompositeType.js +1 -1
  271. package/src/sap/ui/model/DataState.js +1 -1
  272. package/src/sap/ui/model/MetaModel.js +1 -1
  273. package/src/sap/ui/model/Model.js +1 -1
  274. package/src/sap/ui/model/SelectionModel.js +1 -1
  275. package/src/sap/ui/model/SimpleType.js +1 -1
  276. package/src/sap/ui/model/TreeAutoExpandMode.js +1 -1
  277. package/src/sap/ui/model/Type.js +1 -1
  278. package/src/sap/ui/model/controlhelper/TreeBindingProxy.js +11 -3
  279. package/src/sap/ui/model/json/JSONModel.js +1 -1
  280. package/src/sap/ui/model/message/MessageModel.js +1 -1
  281. package/src/sap/ui/model/odata/ODataAnnotations.js +1 -1
  282. package/src/sap/ui/model/odata/ODataMessageParser.js +1 -1
  283. package/src/sap/ui/model/odata/ODataMetaModel.js +1 -1
  284. package/src/sap/ui/model/odata/ODataMetadata.js +1 -1
  285. package/src/sap/ui/model/odata/ODataModel.js +1 -1
  286. package/src/sap/ui/model/odata/type/Boolean.js +1 -1
  287. package/src/sap/ui/model/odata/type/Byte.js +1 -1
  288. package/src/sap/ui/model/odata/type/Currency.js +1 -1
  289. package/src/sap/ui/model/odata/type/Date.js +1 -1
  290. package/src/sap/ui/model/odata/type/DateTime.js +1 -1
  291. package/src/sap/ui/model/odata/type/DateTimeBase.js +1 -1
  292. package/src/sap/ui/model/odata/type/DateTimeOffset.js +1 -1
  293. package/src/sap/ui/model/odata/type/DateTimeWithTimezone.js +1 -1
  294. package/src/sap/ui/model/odata/type/Decimal.js +1 -1
  295. package/src/sap/ui/model/odata/type/Double.js +1 -1
  296. package/src/sap/ui/model/odata/type/Guid.js +1 -1
  297. package/src/sap/ui/model/odata/type/Int.js +1 -1
  298. package/src/sap/ui/model/odata/type/Int16.js +1 -1
  299. package/src/sap/ui/model/odata/type/Int32.js +1 -1
  300. package/src/sap/ui/model/odata/type/Int64.js +1 -1
  301. package/src/sap/ui/model/odata/type/ODataType.js +1 -1
  302. package/src/sap/ui/model/odata/type/Raw.js +1 -1
  303. package/src/sap/ui/model/odata/type/SByte.js +1 -1
  304. package/src/sap/ui/model/odata/type/Single.js +1 -1
  305. package/src/sap/ui/model/odata/type/Stream.js +1 -1
  306. package/src/sap/ui/model/odata/type/String.js +1 -1
  307. package/src/sap/ui/model/odata/type/Time.js +1 -1
  308. package/src/sap/ui/model/odata/type/TimeOfDay.js +1 -1
  309. package/src/sap/ui/model/odata/type/Unit.js +1 -1
  310. package/src/sap/ui/model/odata/v2/Context.js +1 -1
  311. package/src/sap/ui/model/odata/v2/ODataAnnotations.js +1 -1
  312. package/src/sap/ui/model/odata/v2/ODataListBinding.js +1 -1
  313. package/src/sap/ui/model/odata/v2/ODataModel.js +1 -1
  314. package/src/sap/ui/model/odata/v2/ODataTreeBinding.js +3 -4
  315. package/src/sap/ui/model/odata/v4/Context.js +82 -29
  316. package/src/sap/ui/model/odata/v4/ODataBinding.js +3 -0
  317. package/src/sap/ui/model/odata/v4/ODataContextBinding.js +3 -2
  318. package/src/sap/ui/model/odata/v4/ODataListBinding.js +77 -23
  319. package/src/sap/ui/model/odata/v4/ODataMetaModel.js +1 -1
  320. package/src/sap/ui/model/odata/v4/ODataModel.js +2 -2
  321. package/src/sap/ui/model/odata/v4/ODataPropertyBinding.js +1 -1
  322. package/src/sap/ui/model/odata/v4/lib/_AggregationCache.js +334 -142
  323. package/src/sap/ui/model/odata/v4/lib/_AggregationHelper.js +109 -16
  324. package/src/sap/ui/model/odata/v4/lib/_Cache.js +82 -42
  325. package/src/sap/ui/model/odata/v4/lib/_Helper.js +26 -0
  326. package/src/sap/ui/model/resource/ResourceModel.js +1 -1
  327. package/src/sap/ui/model/type/Boolean.js +1 -1
  328. package/src/sap/ui/model/type/Currency.js +1 -1
  329. package/src/sap/ui/model/type/Date.js +1 -1
  330. package/src/sap/ui/model/type/DateInterval.js +1 -1
  331. package/src/sap/ui/model/type/DateTime.js +1 -1
  332. package/src/sap/ui/model/type/DateTimeInterval.js +1 -1
  333. package/src/sap/ui/model/type/FileSize.js +1 -1
  334. package/src/sap/ui/model/type/Float.js +1 -1
  335. package/src/sap/ui/model/type/Integer.js +1 -1
  336. package/src/sap/ui/model/type/String.js +1 -1
  337. package/src/sap/ui/model/type/Time.js +1 -1
  338. package/src/sap/ui/model/type/TimeInterval.js +1 -1
  339. package/src/sap/ui/model/type/Unit.js +1 -1
  340. package/src/sap/ui/model/xml/XMLModel.js +1 -1
  341. package/src/sap/ui/qunit/QUnitUtils.js +14 -2
  342. package/src/sap/ui/qunit/utils/ControlIterator.js +1 -1
  343. package/src/sap/ui/qunit/utils/MemoryLeakCheck.js +1 -1
  344. package/src/sap/ui/test/OpaExtension.js +1 -1
  345. package/src/sap/ui/test/OpaPlugin.js +6 -4
  346. package/src/sap/ui/test/PageObjectFactory.js +11 -9
  347. package/src/sap/ui/test/RecordReplay.js +1 -1
  348. package/src/sap/ui/test/_OpaLogger.js +1 -1
  349. package/src/sap/ui/test/autowaiter/_promiseWaiter.js +4 -1
  350. package/src/sap/ui/test/generic/TestBase.js +1 -1
  351. package/src/sap/ui/util/Mobile.js +17 -18
  352. package/src/sap/ui/util/Storage.js +90 -63
@@ -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.108.0
60
+ * @version 1.109.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
@@ -353,8 +353,7 @@ sap.ui.define([
353
353
  }
354
354
  oContext.resetKeepAlive();
355
355
  oContext.iIndex = Context.VIRTUAL; // prevent further cache access via this context
356
- that.oModel.addPrerenderingTask(
357
- that.destroyPreviousContexts.bind(that, [oContext.getPath()]));
356
+ that.destroyPreviousContextsLater([oContext.getPath()]);
358
357
  }, function (oError) {
359
358
  that.iDeletedContexts -= 1;
360
359
  if (bReset) {
@@ -505,10 +504,15 @@ sap.ui.define([
505
504
 
506
505
  /**
507
506
  * The 'createActivate' event is fired when a property is changed on a context in an 'inactive'
508
- * state (see {@link #create}). The context then changes its state to 'transient'.
507
+ * state (see {@link #create}). The context then changes its state to 'transient'. Since
508
+ * 1.109.0, this default behavior can be prevented by calling
509
+ * {@link sap.ui.base.Event#preventDefault}. The context will then remain in the 'inactive'
510
+ * state.
511
+ *
509
512
  *
510
513
  * @param {sap.ui.base.Event} oEvent The event object
511
514
  * @param {sap.ui.model.odata.v4.ODataListBinding} oEvent.getSource() This binding
515
+ * @param {sap.ui.model.odata.v4.Context} oEvent.getParameters().context The affected context
512
516
  *
513
517
  * @event sap.ui.model.odata.v4.ODataListBinding#createActivate
514
518
  * @public
@@ -659,7 +663,8 @@ sap.ui.define([
659
663
  * {@link #changeParameters} leads to {@link sap.ui.model.ChangeReason.Filter Filter} if one
660
664
  * of the parameters '$filter' and '$search' is changed, otherwise it leads to
661
665
  * {@link sap.ui.model.ChangeReason.Sort Sort} if the parameter '$orderby' is
662
- * changed; in other cases, it leads to {@link sap.ui.model.ChangeReason.Change Change}.<br>
666
+ * changed; in other cases, it leads to {@link sap.ui.model.ChangeReason.Change Change}.
667
+ * <br>
663
668
  * If APIs that would normally fire change events have been called while the binding is
664
669
  * suspended, {@link #resume} leads to the &quot;strongest&quot; change reason in the order
665
670
  * {@link sap.ui.model.ChangeReason.Filter Filter},
@@ -820,7 +825,7 @@ sap.ui.define([
820
825
  * Create an inactive context. Such a context will only be sent to the server after the first
821
826
  * property update. From then on it behaves like any other created context.
822
827
  * Supported since 1.97.0
823
- * <p>
828
+ * <br>
824
829
  * Since 1.98.0, when the first property updates happens, the context is no longer
825
830
  * {@link sap.ui.model.odata.v4.Context#isInactive inactive} and the
826
831
  * {@link sap.ui.model.odata.v4.ODataListBinding#event:createActivate createActivate} event
@@ -886,7 +891,8 @@ sap.ui.define([
886
891
  // only for createInCache
887
892
  oGroupLock = this.lockGroup(sGroupId, true, true, function () {
888
893
  if (!that.aContexts.includes(oContext)) { // #setContext changed the parent context
889
- oContext.destroy();
894
+ that.mPreviousContextsByPath[oContext.getPath()] = oContext;
895
+ that.destroyPreviousContextsLater([oContext.getPath()]);
890
896
  return;
891
897
  }
892
898
 
@@ -984,7 +990,6 @@ sap.ui.define([
984
990
  oModel = this.oModel,
985
991
  sPath = this.getResolvedPath(),
986
992
  sPredicate,
987
- aPreviousPaths,
988
993
  bStartBeyondRange = iStart > this.aContexts.length,
989
994
  i,
990
995
  that = this;
@@ -1032,10 +1037,7 @@ sap.ui.define([
1032
1037
  }
1033
1038
  }
1034
1039
  // destroy previous contexts which are not reused or kept-alive
1035
- aPreviousPaths = Object.keys(this.mPreviousContextsByPath);
1036
- if (aPreviousPaths.length) {
1037
- oModel.addPrerenderingTask(this.destroyPreviousContexts.bind(this, aPreviousPaths));
1038
- }
1040
+ this.destroyPreviousContextsLater(Object.keys(this.mPreviousContextsByPath));
1039
1041
  if (iCount !== undefined) { // server count is available or "non-empty short read"
1040
1042
  this.bLengthFinal = true;
1041
1043
  this.iMaxLength = iCount - this.iActiveContexts;
@@ -1121,7 +1123,7 @@ sap.ui.define([
1121
1123
  * Removes and destroys contexts from mPreviousContextsByPath.
1122
1124
  *
1123
1125
  * @param {string[]} [aPathsToDelete]
1124
- * If given, only contexts with paths in this list except kept-alive and deleted ones are
1126
+ * If given, only contexts with paths in this list except kept-alive and pending deletes are
1125
1127
  * removed and destroyed (transient contexts are removed only); otherwise all contexts in the
1126
1128
  * list are removed and destroyed
1127
1129
  *
@@ -1135,7 +1137,8 @@ sap.ui.define([
1135
1137
  var oContext = mPreviousContextsByPath[sPath];
1136
1138
 
1137
1139
  if (oContext) {
1138
- if (aPathsToDelete && (oContext.isKeepAlive() || oContext.isDeleted())) {
1140
+ if (aPathsToDelete && (oContext.isKeepAlive()
1141
+ || oContext.oDeletePromise && oContext.oDeletePromise.isPending())) {
1139
1142
  oContext.iIndex = undefined;
1140
1143
  } else {
1141
1144
  if (!oContext.isTransient()) {
@@ -1148,6 +1151,23 @@ sap.ui.define([
1148
1151
  }
1149
1152
  };
1150
1153
 
1154
+ /**
1155
+ * Removes and destroys the contexts with the given paths from mPreviousContextsByPaths in a
1156
+ * prerendering task.
1157
+ *
1158
+ * @param {string[]} aPathsToDelete
1159
+ * Only contexts with paths in this list except kept-alive and pending deletes are removed and
1160
+ * destroyed (transient contexts are removed only)
1161
+ *
1162
+ * @private
1163
+ */
1164
+ ODataListBinding.prototype.destroyPreviousContextsLater = function (aPathsToDelete) {
1165
+ if (aPathsToDelete.length) {
1166
+ this.oModel.addPrerenderingTask(
1167
+ this.destroyPreviousContexts.bind(this, aPathsToDelete));
1168
+ }
1169
+ };
1170
+
1151
1171
  /**
1152
1172
  * @override
1153
1173
  * @see sap.ui.model.odata.v4.ODataBinding#doCreateCache
@@ -1813,14 +1833,37 @@ sap.ui.define([
1813
1833
  /**
1814
1834
  * Fires the 'createActivate' event.
1815
1835
  *
1816
- * @param {sap.ui.model.odata.v4.Context} _oContext
1836
+ * @param {sap.ui.model.odata.v4.Context} oContext
1817
1837
  * The context being activated
1838
+ * @returns {boolean}
1839
+ * Whether the context should become active
1818
1840
  *
1819
1841
  * @private
1820
1842
  */
1821
- ODataListBinding.prototype.fireCreateActivate = function (_oContext) {
1822
- this.iActiveContexts += 1;
1823
- this.fireEvent("createActivate");
1843
+ ODataListBinding.prototype.fireCreateActivate = function (oContext) {
1844
+ if (this.fireEvent("createActivate", {context : oContext}, true)) {
1845
+ this.iActiveContexts += 1;
1846
+
1847
+ return true;
1848
+ }
1849
+
1850
+ return false;
1851
+ };
1852
+
1853
+ /**
1854
+ * Returns the current object holding the information needed for data aggregation, see
1855
+ * {@link #setAggregation}.
1856
+ *
1857
+ * @returns {object}
1858
+ * The current data aggregation object, incl. some default values
1859
+ *
1860
+ * @public
1861
+ * @since 1.109.0
1862
+ */
1863
+ ODataListBinding.prototype.getAggregation = function () {
1864
+ return _Helper.clone(this.mParameters.$$aggregation, function (sKey, vValue) {
1865
+ return sKey[0] === "$" ? undefined : vValue;
1866
+ });
1824
1867
  };
1825
1868
 
1826
1869
  /**
@@ -3230,7 +3273,7 @@ sap.ui.define([
3230
3273
  });
3231
3274
  }
3232
3275
 
3233
- if (this.mParameters.$$aggregation) {
3276
+ if (this.mParameters.$$aggregation && !this.mParameters.$$aggregation.hierarchyQualifier) {
3234
3277
  if (bSingle) {
3235
3278
  throw new Error(
3236
3279
  "Must not request side effects for a context of a binding with $$aggregation");
@@ -3474,12 +3517,14 @@ sap.ui.define([
3474
3517
  * <a href="https://docs.oasis-open.org/odata/odata-data-aggregation-ext/v4.0/">OData
3475
3518
  * Extension for Data Aggregation Version 4.0</a>. Since 1.76.0, <code>undefined</code> can be
3476
3519
  * used to remove the data aggregation object, which allows to set <code>$apply</code>
3477
- * explicitly afterwards. <code>null</code> is not supported.<br>
3520
+ * explicitly afterwards. <code>null</code> is not supported.
3521
+ * <br>
3478
3522
  * Since 1.89.0, the deprecated property <code>"grandTotal like 1.84" : true</code> can be
3479
3523
  * used to turn on the handling of grand totals like in 1.84.0, using aggregates of aggregates
3480
3524
  * and thus allowing to filter by aggregated properties while grand totals are needed. Beware
3481
3525
  * that methods like "average" or "countdistinct" are not compatible with this approach, and
3482
- * it cannot be combined with group levels.<br>
3526
+ * it cannot be combined with group levels.
3527
+ * <br>
3483
3528
  * Since 1.105.0, either a recursive hierarchy or pure data aggregation is supported, but no
3484
3529
  * mix; <code>hierarchyQualifier</code> is the leading property that decides between those two
3485
3530
  * use cases - this is an <b>experimental API</b> and is only supported if the model uses the
@@ -3512,8 +3557,10 @@ sap.ui.define([
3512
3557
  * suggestion: <code>CASE WHEN MIN(Unit) = MAX(Unit) THEN MIN(Unit) END</code>)
3513
3558
  * </ul>
3514
3559
  * @param {number} [oAggregation.expandTo=1]
3515
- * The number of initially expanded levels as a positive integer (@experimental as of version
3516
- * 1.105.0), supported only if a <code>hierarchyQualifier</code> is given.
3560
+ * The number (as a positive integer) of different levels initially available without calling
3561
+ * {@link sap.ui.model.odata.v4.Context#expand} (@experimental as of version 1.105.0),
3562
+ * supported only if a <code>hierarchyQualifier</code> is given. Root nodes are on the first
3563
+ * level. By default, only root nodes are available; they are not yet expanded.
3517
3564
  * @param {boolean} [oAggregation.grandTotalAtBottomOnly]
3518
3565
  * Tells whether the grand totals for aggregatable properties are displayed at the bottom only
3519
3566
  * (since 1.86.0); <code>true</code> for bottom only, <code>false</code> for top and bottom,
@@ -3573,6 +3620,7 @@ sap.ui.define([
3573
3620
  * <li> a recursive hierarchy is requested, but the model does not use the
3574
3621
  * <code>autoExpandSelect</code> parameter.
3575
3622
  * </ul>
3623
+ *
3576
3624
  * @example <caption>First group level is product category including subtotals for the net
3577
3625
  * amount in display currency. On leaf level, transaction currency is used as an additional
3578
3626
  * dimension and the net amount is averaged.</caption>
@@ -3593,6 +3641,7 @@ sap.ui.define([
3593
3641
  * groupLevels : ['ProductCategory']
3594
3642
  * });
3595
3643
  * @public
3644
+ * @see #getAggregation
3596
3645
  * @since 1.55.0
3597
3646
  */
3598
3647
  ODataListBinding.prototype.setAggregation = function (oAggregation) {
@@ -3690,6 +3739,11 @@ sap.ui.define([
3690
3739
  * request. Since 1.97.0, if sorters are unchanged, no request is sent, regardless of pending
3691
3740
  * changes.
3692
3741
  *
3742
+ * <b>Note:</b> To allow proper detection whether sorters are unchanged, care must be taken if a
3743
+ * sorter uses a function (for example via the <code>vGroup</code> parameter): it must be the
3744
+ * exact same function instance which was given before, and not a newly created one, for example
3745
+ * because <code>Function.prototype.bind</code> is called repeatedly.
3746
+ *
3693
3747
  * If there are pending changes that cannot be ignored, an error is thrown. Use
3694
3748
  * {@link #hasPendingChanges} to check if there are such pending changes. If there are, call
3695
3749
  * {@link sap.ui.model.odata.v4.ODataModel#submitBatch} to submit the changes or
@@ -157,7 +157,7 @@ sap.ui.define([
157
157
  * @hideconstructor
158
158
  * @public
159
159
  * @since 1.37.0
160
- * @version 1.108.0
160
+ * @version 1.109.0
161
161
  */
162
162
  ODataMetaModel = MetaModel.extend("sap.ui.model.odata.v4.ODataMetaModel", {
163
163
  constructor : constructor
@@ -218,7 +218,7 @@ sap.ui.define([
218
218
  * @extends sap.ui.model.Model
219
219
  * @public
220
220
  * @since 1.37.0
221
- * @version 1.108.0
221
+ * @version 1.109.0
222
222
  */
223
223
  ODataModel = Model.extend("sap.ui.model.odata.v4.ODataModel",
224
224
  /** @lends sap.ui.model.odata.v4.ODataModel.prototype */{
@@ -2489,7 +2489,7 @@ sap.ui.define([
2489
2489
  * given group ID are running.
2490
2490
  *
2491
2491
  * @public
2492
- * @see sap.ui.model.odata.v4.ODataModel#constructor.
2492
+ * @see sap.ui.model.odata.v4.ODataModel#constructor
2493
2493
  * @since 1.39.0
2494
2494
  */
2495
2495
  ODataModel.prototype.resetChanges = function (sGroupId) {
@@ -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.108.0
45
+ * @version 1.109.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