@openui5/sap.ui.core 1.142.1 → 1.143.1

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 (273) hide show
  1. package/package.json +1 -1
  2. package/src/jquery.sap.global.js +1 -1
  3. package/src/jquery.sap.properties.js +1 -1
  4. package/src/jquery.sap.resources.js +1 -1
  5. package/src/jquery.sap.script.js +1 -1
  6. package/src/jquery.sap.storage.js +3 -3
  7. package/src/sap/base/Event.js +1 -1
  8. package/src/sap/base/Eventing.js +1 -1
  9. package/src/sap/base/config.js +1 -1
  10. package/src/sap/base/i18n/LanguageTag.js +1 -1
  11. package/src/sap/base/i18n/date/TimezoneUtils.js +1 -1
  12. package/src/sap/base/util/restricted/_CancelablePromise.js +1 -1
  13. package/src/sap/base/util/restricted/_castArray.js +1 -1
  14. package/src/sap/base/util/restricted/_compact.js +1 -1
  15. package/src/sap/base/util/restricted/_curry.js +1 -1
  16. package/src/sap/base/util/restricted/_debounce.js +1 -1
  17. package/src/sap/base/util/restricted/_difference.js +1 -1
  18. package/src/sap/base/util/restricted/_differenceBy.js +1 -1
  19. package/src/sap/base/util/restricted/_differenceWith.js +1 -1
  20. package/src/sap/base/util/restricted/_flatMap.js +1 -1
  21. package/src/sap/base/util/restricted/_flatMapDeep.js +1 -1
  22. package/src/sap/base/util/restricted/_flatMapDepth.js +1 -1
  23. package/src/sap/base/util/restricted/_flatten.js +1 -1
  24. package/src/sap/base/util/restricted/_flattenDeep.js +1 -1
  25. package/src/sap/base/util/restricted/_flattenDepth.js +1 -1
  26. package/src/sap/base/util/restricted/_intersection.js +1 -1
  27. package/src/sap/base/util/restricted/_intersectionBy.js +1 -1
  28. package/src/sap/base/util/restricted/_intersectionWith.js +1 -1
  29. package/src/sap/base/util/restricted/_isEqual.js +1 -1
  30. package/src/sap/base/util/restricted/_isEqualWith.js +1 -1
  31. package/src/sap/base/util/restricted/_isNil.js +1 -1
  32. package/src/sap/base/util/restricted/_max.js +1 -1
  33. package/src/sap/base/util/restricted/_merge.js +1 -1
  34. package/src/sap/base/util/restricted/_mergeWith.js +1 -1
  35. package/src/sap/base/util/restricted/_min.js +1 -1
  36. package/src/sap/base/util/restricted/_omit.js +1 -1
  37. package/src/sap/base/util/restricted/_pick.js +1 -1
  38. package/src/sap/base/util/restricted/_pickBy.js +1 -1
  39. package/src/sap/base/util/restricted/_throttle.js +1 -1
  40. package/src/sap/base/util/restricted/_toArray.js +1 -1
  41. package/src/sap/base/util/restricted/_union.js +1 -1
  42. package/src/sap/base/util/restricted/_unionBy.js +1 -1
  43. package/src/sap/base/util/restricted/_unionWith.js +1 -1
  44. package/src/sap/base/util/restricted/_uniq.js +1 -1
  45. package/src/sap/base/util/restricted/_uniqBy.js +1 -1
  46. package/src/sap/base/util/restricted/_uniqWith.js +1 -1
  47. package/src/sap/base/util/restricted/_without.js +1 -1
  48. package/src/sap/base/util/restricted/_xor.js +1 -1
  49. package/src/sap/base/util/restricted/_xorBy.js +1 -1
  50. package/src/sap/base/util/restricted/_xorWith.js +1 -1
  51. package/src/sap/base/util/restricted/_zipObject.js +1 -1
  52. package/src/sap/base/util/restricted/_zipObjectDeep.js +1 -1
  53. package/src/sap/ui/Device.js +3 -3
  54. package/src/sap/ui/Global.js +3 -3
  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/Exception.js +9 -7
  58. package/src/sap/ui/base/ExpressionParser.js +8 -7
  59. package/src/sap/ui/base/Interface.js +1 -1
  60. package/src/sap/ui/base/ManagedObject.js +1 -1
  61. package/src/sap/ui/base/ManagedObjectMetadata.js +1 -1
  62. package/src/sap/ui/base/Metadata.js +1 -1
  63. package/src/sap/ui/base/Object.js +1 -1
  64. package/src/sap/ui/base/ObjectPool.js +1 -1
  65. package/src/sap/ui/core/.library +2 -2
  66. package/src/sap/ui/core/BusyIndicator.js +1 -1
  67. package/src/sap/ui/core/Component.js +7 -6
  68. package/src/sap/ui/core/ComponentContainer.js +1 -1
  69. package/src/sap/ui/core/ComponentMetadata.js +1 -1
  70. package/src/sap/ui/core/ComponentSupport.js +1 -1
  71. package/src/sap/ui/core/Configuration.js +1 -1
  72. package/src/sap/ui/core/Control.js +1 -1
  73. package/src/sap/ui/core/Core.js +6 -3
  74. package/src/sap/ui/core/CustomData.js +1 -1
  75. package/src/sap/ui/core/DeclarativeSupport.js +1 -1
  76. package/src/sap/ui/core/Element.js +1 -1
  77. package/src/sap/ui/core/ElementMetadata.js +1 -1
  78. package/src/sap/ui/core/EnabledPropagator.js +1 -1
  79. package/src/sap/ui/core/EventBus.js +1 -1
  80. package/src/sap/ui/core/Fragment.js +1 -1
  81. package/src/sap/ui/core/HTML.js +1 -1
  82. package/src/sap/ui/core/History.js +1 -1
  83. package/src/sap/ui/core/Icon.js +1 -1
  84. package/src/sap/ui/core/IndicationColorSupport.js +1 -1
  85. package/src/sap/ui/core/IntervalTrigger.js +1 -1
  86. package/src/sap/ui/core/InvisibleMessage.js +1 -1
  87. package/src/sap/ui/core/InvisibleRenderer.js +1 -1
  88. package/src/sap/ui/core/InvisibleText.js +1 -1
  89. package/src/sap/ui/core/Item.js +1 -1
  90. package/src/sap/ui/core/LabelEnablement.js +6 -4
  91. package/src/sap/ui/core/LayoutData.js +1 -1
  92. package/src/sap/ui/core/ListItem.js +1 -1
  93. package/src/sap/ui/core/LocalBusyIndicator.js +1 -1
  94. package/src/sap/ui/core/Locale.js +1 -1
  95. package/src/sap/ui/core/LocaleData.js +1 -1
  96. package/src/sap/ui/core/Manifest.js +1 -1
  97. package/src/sap/ui/core/Message.js +1 -1
  98. package/src/sap/ui/core/RenderManager.js +1 -1
  99. package/src/sap/ui/core/Renderer.js +1 -1
  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/ShortcutHintsMixin.js +1 -13
  104. package/src/sap/ui/core/Title.js +1 -1
  105. package/src/sap/ui/core/TooltipBase.js +1 -1
  106. package/src/sap/ui/core/UIArea.js +1 -1
  107. package/src/sap/ui/core/UIComponent.js +1 -1
  108. package/src/sap/ui/core/UIComponentMetadata.js +1 -1
  109. package/src/sap/ui/core/ValueStateSupport.js +1 -1
  110. package/src/sap/ui/core/VariantLayoutData.js +1 -1
  111. package/src/sap/ui/core/XMLComposite.js +1 -1
  112. package/src/sap/ui/core/XMLCompositeMetadata.js +1 -1
  113. package/src/sap/ui/core/date/UI5Date.js +1 -1
  114. package/src/sap/ui/core/delegate/ItemNavigation.js +1 -1
  115. package/src/sap/ui/core/delegate/ScrollEnablement.js +1 -1
  116. package/src/sap/ui/core/dnd/DragDropBase.js +1 -1
  117. package/src/sap/ui/core/dnd/DragDropInfo.js +1 -1
  118. package/src/sap/ui/core/dnd/DragInfo.js +1 -1
  119. package/src/sap/ui/core/dnd/DropInfo.js +1 -1
  120. package/src/sap/ui/core/format/FormatUtils.js +1 -1
  121. package/src/sap/ui/core/format/TimezoneUtil.js +1 -1
  122. package/src/sap/ui/core/getCompatibilityVersion.js +1 -1
  123. package/src/sap/ui/core/hyphenation/Hyphenation.js +1 -1
  124. package/src/sap/ui/core/library.js +11 -11
  125. package/src/sap/ui/core/message/ControlMessageProcessor.js +1 -1
  126. package/src/sap/ui/core/message/Message.js +1 -1
  127. package/src/sap/ui/core/message/MessageManager.js +1 -1
  128. package/src/sap/ui/core/message/MessageParser.js +1 -1
  129. package/src/sap/ui/core/message/MessageProcessor.js +1 -1
  130. package/src/sap/ui/core/messagebundle_de.properties +1 -1
  131. package/src/sap/ui/core/messagebundle_es.properties +20 -20
  132. package/src/sap/ui/core/messagebundle_id.properties +2 -2
  133. package/src/sap/ui/core/mvc/HTMLView.js +1 -1
  134. package/src/sap/ui/core/mvc/JSONView.js +1 -1
  135. package/src/sap/ui/core/mvc/JSView.js +1 -1
  136. package/src/sap/ui/core/mvc/TemplateView.js +1 -1
  137. package/src/sap/ui/core/mvc/View.js +1 -1
  138. package/src/sap/ui/core/mvc/XMLView.js +1 -1
  139. package/src/sap/ui/core/plugin/DeclarativeSupport.js +1 -1
  140. package/src/sap/ui/core/plugin/TemplatingSupport.js +1 -1
  141. package/src/sap/ui/core/postmessage/Bus.js +1 -1
  142. package/src/sap/ui/core/postmessage/confirmationDialog.js +1 -1
  143. package/src/sap/ui/core/routing/History.js +8 -4
  144. package/src/sap/ui/core/search/OpenSearchProvider.js +1 -1
  145. package/src/sap/ui/core/search/SearchProvider.js +1 -1
  146. package/src/sap/ui/core/service/Service.js +1 -1
  147. package/src/sap/ui/core/service/ServiceFactory.js +1 -1
  148. package/src/sap/ui/core/service/ServiceFactoryRegistry.js +1 -1
  149. package/src/sap/ui/core/support/Plugin.js +1 -1
  150. package/src/sap/ui/core/support/Support.js +1 -1
  151. package/src/sap/ui/core/support/plugins/ControlTree.js +1 -1
  152. package/src/sap/ui/core/support/plugins/Interaction.js +1 -1
  153. package/src/sap/ui/core/support/plugins/LocalStorage.js +1 -1
  154. package/src/sap/ui/core/support/plugins/Performance.js +1 -1
  155. package/src/sap/ui/core/support/plugins/Selector.js +1 -1
  156. package/src/sap/ui/core/support/plugins/TechInfo.js +1 -1
  157. package/src/sap/ui/core/support/plugins/Trace.js +1 -1
  158. package/src/sap/ui/core/support/plugins/ViewInfo.js +1 -1
  159. package/src/sap/ui/core/themes/base/BrowserScrollbar.less +1 -1
  160. package/src/sap/ui/core/themes/base/DragAndDrop.less +21 -20
  161. package/src/sap/ui/core/tmpl/DOMAttribute.js +1 -1
  162. package/src/sap/ui/core/tmpl/DOMElement.js +1 -1
  163. package/src/sap/ui/core/tmpl/HandlebarsTemplate.js +1 -1
  164. package/src/sap/ui/core/tmpl/Template.js +1 -1
  165. package/src/sap/ui/core/tmpl/TemplateControl.js +1 -1
  166. package/src/sap/ui/core/util/AsyncHintsHelper.js +1 -1
  167. package/src/sap/ui/core/util/Export.js +1 -1
  168. package/src/sap/ui/core/util/ExportCell.js +1 -1
  169. package/src/sap/ui/core/util/ExportColumn.js +1 -1
  170. package/src/sap/ui/core/util/ExportRow.js +1 -1
  171. package/src/sap/ui/core/util/ExportType.js +1 -1
  172. package/src/sap/ui/core/util/ExportTypeCSV.js +1 -1
  173. package/src/sap/ui/core/util/File.js +1 -1
  174. package/src/sap/ui/core/util/LibraryInfo.js +1 -1
  175. package/src/sap/ui/core/util/MockServer.js +1 -1
  176. package/src/sap/ui/core/util/PasteHelper.js +1 -1
  177. package/src/sap/ui/core/util/reflection/BaseTreeModifier.js +2 -2
  178. package/src/sap/ui/core/util/reflection/JsControlTreeModifier.js +1 -1
  179. package/src/sap/ui/core/util/reflection/XmlTreeModifier.js +2 -2
  180. package/src/sap/ui/core/util/serializer/HTMLViewSerializer.js +1 -1
  181. package/src/sap/ui/core/util/serializer/Serializer.js +1 -1
  182. package/src/sap/ui/core/util/serializer/ViewSerializer.js +1 -1
  183. package/src/sap/ui/core/util/serializer/XMLViewSerializer.js +1 -1
  184. package/src/sap/ui/core/util/serializer/delegate/Delegate.js +1 -1
  185. package/src/sap/ui/core/util/serializer/delegate/HTML.js +1 -1
  186. package/src/sap/ui/core/util/serializer/delegate/XML.js +1 -1
  187. package/src/sap/ui/core/webc/WebComponent.js +1 -1
  188. package/src/sap/ui/core/webc/WebComponentMetadata.js +1 -1
  189. package/src/sap/ui/core/ws/ReadyState.js +1 -1
  190. package/src/sap/ui/core/ws/SapPcpWebSocket.js +1 -1
  191. package/src/sap/ui/core/ws/WebSocket.js +1 -1
  192. package/src/sap/ui/debug/ControlTree.js +1 -1
  193. package/src/sap/ui/debug/DebugEnv.js +1 -1
  194. package/src/sap/ui/debug/PropertyList.js +1 -1
  195. package/src/sap/ui/model/ClientModel.js +1 -1
  196. package/src/sap/ui/model/ClientTreeBinding.js +56 -7
  197. package/src/sap/ui/model/CompositeDataState.js +1 -1
  198. package/src/sap/ui/model/CompositeType.js +1 -1
  199. package/src/sap/ui/model/DataState.js +1 -1
  200. package/src/sap/ui/model/MetaModel.js +1 -1
  201. package/src/sap/ui/model/Model.js +1 -1
  202. package/src/sap/ui/model/SelectionModel.js +1 -1
  203. package/src/sap/ui/model/SimpleType.js +1 -1
  204. package/src/sap/ui/model/TreeAutoExpandMode.js +1 -1
  205. package/src/sap/ui/model/Type.js +1 -1
  206. package/src/sap/ui/model/json/JSONModel.js +2 -2
  207. package/src/sap/ui/model/message/MessageModel.js +1 -1
  208. package/src/sap/ui/model/odata/ODataAnnotations.js +1 -1
  209. package/src/sap/ui/model/odata/ODataMessageParser.js +31 -64
  210. package/src/sap/ui/model/odata/ODataMetaModel.js +1 -1
  211. package/src/sap/ui/model/odata/ODataMetadata.js +1 -1
  212. package/src/sap/ui/model/odata/ODataModel.js +1 -1
  213. package/src/sap/ui/model/odata/type/Boolean.js +8 -4
  214. package/src/sap/ui/model/odata/type/Byte.js +8 -4
  215. package/src/sap/ui/model/odata/type/Currency.js +1 -1
  216. package/src/sap/ui/model/odata/type/Date.js +2 -2
  217. package/src/sap/ui/model/odata/type/DateTime.js +2 -2
  218. package/src/sap/ui/model/odata/type/DateTimeBase.js +1 -1
  219. package/src/sap/ui/model/odata/type/DateTimeOffset.js +8 -4
  220. package/src/sap/ui/model/odata/type/DateTimeWithTimezone.js +1 -1
  221. package/src/sap/ui/model/odata/type/Decimal.js +8 -4
  222. package/src/sap/ui/model/odata/type/Double.js +8 -4
  223. package/src/sap/ui/model/odata/type/Guid.js +8 -4
  224. package/src/sap/ui/model/odata/type/Int.js +9 -4
  225. package/src/sap/ui/model/odata/type/Int16.js +8 -4
  226. package/src/sap/ui/model/odata/type/Int32.js +8 -4
  227. package/src/sap/ui/model/odata/type/Int64.js +8 -4
  228. package/src/sap/ui/model/odata/type/ODataType.js +6 -7
  229. package/src/sap/ui/model/odata/type/Raw.js +1 -1
  230. package/src/sap/ui/model/odata/type/SByte.js +8 -4
  231. package/src/sap/ui/model/odata/type/Single.js +8 -4
  232. package/src/sap/ui/model/odata/type/Stream.js +2 -2
  233. package/src/sap/ui/model/odata/type/String.js +8 -4
  234. package/src/sap/ui/model/odata/type/Time.js +2 -2
  235. package/src/sap/ui/model/odata/type/TimeOfDay.js +2 -2
  236. package/src/sap/ui/model/odata/type/Unit.js +1 -1
  237. package/src/sap/ui/model/odata/v2/Context.js +1 -1
  238. package/src/sap/ui/model/odata/v2/ODataAnnotations.js +1 -1
  239. package/src/sap/ui/model/odata/v2/ODataModel.js +6 -11
  240. package/src/sap/ui/model/odata/v2/ODataTreeBinding.js +1 -1
  241. package/src/sap/ui/model/odata/v4/Context.js +2 -1
  242. package/src/sap/ui/model/odata/v4/ODataBinding.js +3 -0
  243. package/src/sap/ui/model/odata/v4/ODataContextBinding.js +1 -1
  244. package/src/sap/ui/model/odata/v4/ODataListBinding.js +19 -2
  245. package/src/sap/ui/model/odata/v4/ODataMetaModel.js +7 -29
  246. package/src/sap/ui/model/odata/v4/ODataModel.js +17 -16
  247. package/src/sap/ui/model/odata/v4/ODataParentBinding.js +13 -8
  248. package/src/sap/ui/model/odata/v4/ODataPropertyBinding.js +1 -1
  249. package/src/sap/ui/model/odata/v4/lib/_AggregationCache.js +26 -11
  250. package/src/sap/ui/model/odata/v4/lib/_Cache.js +5 -3
  251. package/src/sap/ui/model/odata/v4/lib/_Helper.js +45 -31
  252. package/src/sap/ui/model/resource/ResourceModel.js +1 -1
  253. package/src/sap/ui/model/type/Boolean.js +1 -1
  254. package/src/sap/ui/model/type/Currency.js +1 -1
  255. package/src/sap/ui/model/type/Date.js +1 -1
  256. package/src/sap/ui/model/type/DateInterval.js +1 -1
  257. package/src/sap/ui/model/type/DateTime.js +1 -1
  258. package/src/sap/ui/model/type/DateTimeInterval.js +1 -1
  259. package/src/sap/ui/model/type/FileSize.js +1 -1
  260. package/src/sap/ui/model/type/Float.js +1 -1
  261. package/src/sap/ui/model/type/Integer.js +1 -1
  262. package/src/sap/ui/model/type/String.js +1 -1
  263. package/src/sap/ui/model/type/Time.js +1 -1
  264. package/src/sap/ui/model/type/TimeInterval.js +1 -1
  265. package/src/sap/ui/model/type/Unit.js +1 -1
  266. package/src/sap/ui/model/xml/XMLModel.js +1 -1
  267. package/src/sap/ui/model/xml/XMLTreeBinding.js +10 -0
  268. package/src/sap/ui/qunit/utils/ControlIterator.js +1 -1
  269. package/src/sap/ui/qunit/utils/MemoryLeakCheck.js +1 -1
  270. package/src/sap/ui/test/generic/TestBase.js +1 -1
  271. package/src/sap/ui/thirdparty/caja-html-sanitizer.js +6 -0
  272. package/src/sap/ui/util/Storage.js +1 -1
  273. package/src/ui5loader.js +2 -8
@@ -309,6 +309,7 @@ sap.ui.define([
309
309
  * @throws {Error}
310
310
  * If no recursive hierarchy is used
311
311
  *
312
+ * @protected
312
313
  * @see sap.ui.model.odata.v4.lib._CollectionCache#requestSideEffects
313
314
  */
314
315
  _AggregationCache.prototype.beforeRequestSideEffects = function (mQueryOptions) {
@@ -330,6 +331,7 @@ sap.ui.define([
330
331
  * @param {object} oNewValue - The new value, which usually just contains parts of the old
331
332
  * @throws {Error} In case of a structural change
332
333
  *
334
+ * @protected
333
335
  * @see sap.ui.model.odata.v4.lib._CollectionCache#requestSideEffects
334
336
  */
335
337
  _AggregationCache.prototype.beforeUpdateSelected = function (sPredicate, oNewValue) {
@@ -349,16 +351,13 @@ sap.ui.define([
349
351
  * Whether no ("change") events should be fired
350
352
  * @param {boolean} [bNested]
351
353
  * Whether the "collapse all" was performed at an ancestor
352
- * @param {string[]} [aKeptElementPredicates]
353
- * The key predicates for all (effectively) kept-alive elements incl. exceptions of selection
354
354
  * @returns {number}
355
355
  * The number of descendant nodes that were affected
356
356
  *
357
357
  * @public
358
358
  * @see #expand
359
359
  */
360
- _AggregationCache.prototype.collapse = function (sGroupNodePath, oGroupLock, bSilent, bNested,
361
- aKeptElementPredicates) {
360
+ _AggregationCache.prototype.collapse = function (sGroupNodePath, oGroupLock, bSilent, bNested) {
362
361
  const oGroupNode = this.getValue(sGroupNodePath);
363
362
  const oCollapsed = _AggregationHelper.getCollapsedObject(oGroupNode);
364
363
  _Helper.updateAll(bSilent ? {} : this.mChangeListeners, sGroupNodePath, oGroupNode,
@@ -383,15 +382,13 @@ sap.ui.define([
383
382
  if (_Helper.hasPrivateAnnotation(oElement, "placeholder")) {
384
383
  continue;
385
384
  }
386
- const sPredicate = _Helper.getPrivateAnnotation(oElement, "predicate");
387
385
  if (bAll && oElement["@$ui5.node.isExpanded"]) {
388
- iRemaining
389
- -= this.collapse(sPredicate, oGroupLock, bSilent, true, aKeptElementPredicates);
386
+ iRemaining -= this.collapse(
387
+ _Helper.getPrivateAnnotation(oElement, "predicate"), oGroupLock, bSilent, true);
390
388
  }
391
389
  // exceptions of selection are effectively kept alive
392
- if (!this.isSelectionDifferent(oElement)
393
- && !aKeptElementPredicates?.includes(sPredicate)) {
394
- delete aElements.$byPredicate[sPredicate];
390
+ if (!this.isSelectionDifferent(oElement)) {
391
+ delete aElements.$byPredicate[_Helper.getPrivateAnnotation(oElement, "predicate")];
395
392
  delete aElements.$byPredicate[
396
393
  _Helper.getPrivateAnnotation(oElement, "transientPredicate")];
397
394
  }
@@ -550,7 +547,7 @@ sap.ui.define([
550
547
  if (sParentPath) { // add @odata.bind to POST body only
551
548
  _Helper.getPrivateAnnotation(oEntityData, "postBody")
552
549
  [this.oAggregation.$ParentNavigationProperty + "@odata.bind"]
553
- = _Helper.makeRelativeUrl("/" + sParentPath, "/" + this.sResourcePath);
550
+ = _Helper.makeRelativePath("/" + sParentPath, "/" + this.sResourcePath);
554
551
  }
555
552
 
556
553
  const bParentIsLeaf = oParentNode && oParentNode["@$ui5.node.isExpanded"] === undefined;
@@ -1456,6 +1453,24 @@ sap.ui.define([
1456
1453
  this.oFirstLevel.restoreElement(iRank, oNode);
1457
1454
  };
1458
1455
 
1456
+ /**
1457
+ * Returns whether the given entity represents aggregated data.
1458
+ *
1459
+ * @param {object} oEntity - An entity
1460
+ * @returns {boolean} Whether the given entity is aggregated
1461
+ *
1462
+ * @protected
1463
+ * @see sap.ui.model.odata.v4.lib._Cache#drillDown
1464
+ * @see sap.ui.model.odata.v4.Context#isAggregated
1465
+ */
1466
+ _AggregationCache.prototype.isAggregated = function (oEntity) {
1467
+ const bAggregated = this.oAggregation.$leafLevelAggregated;
1468
+ if (bAggregated === undefined) {
1469
+ return false;
1470
+ }
1471
+ return bAggregated || oEntity["@$ui5.node.isExpanded"] !== undefined;
1472
+ };
1473
+
1459
1474
  /**
1460
1475
  * Tells whether the first given node is an ancestor of (or the same as) the second given node
1461
1476
  * (in case of a recursive hierarchy).
@@ -803,7 +803,7 @@ sap.ui.define([
803
803
  oEntity = oData;
804
804
  iEntityPathLength = 0;
805
805
  }
806
- if (oEntity && !bAgain) {
806
+ if (oEntity && !bAgain && !that.isAggregated?.(oEntity)) {
807
807
  vResult = that.fetchLateProperty(oGroupLock, oEntity,
808
808
  aSegments.slice(0, iEntityPathLength).join("/"),
809
809
  aSegments.slice(iEntityPathLength).join("/"));
@@ -3792,7 +3792,9 @@ sap.ui.define([
3792
3792
  */
3793
3793
  _CollectionCache.prototype.requestSeparateProperties = async function (iStart, iEnd,
3794
3794
  oMainPromise, fnSeparateReceived) {
3795
- if (!this.aSeparateProperties.length) {
3795
+ const mExpand = this.mQueryOptions.$expand ?? {};
3796
+ const aProperties = this.aSeparateProperties.filter((sProperty) => sProperty in mExpand);
3797
+ if (!aProperties.length) {
3796
3798
  return;
3797
3799
  }
3798
3800
 
@@ -3802,7 +3804,7 @@ sap.ui.define([
3802
3804
  // This function resolves at no defined point in time as it is not (yet) relevant for the
3803
3805
  // function caller. This may changes in the future. The completion of each separate property
3804
3806
  // can be observed with the below oReadRange.promise
3805
- this.aSeparateProperties.forEach(async (sProperty) => {
3807
+ aProperties.forEach(async (sProperty) => {
3806
3808
  let fnResolve;
3807
3809
  let fnReject;
3808
3810
  const oReadRange = {
@@ -15,18 +15,15 @@ sap.ui.define([
15
15
  "sap/ui/base/SyncPromise",
16
16
  "sap/ui/model/Filter",
17
17
  "sap/ui/model/FilterOperator",
18
- "sap/ui/thirdparty/URI"
18
+ "sap/ui/util/_URL"
19
19
  ], function (_Parser, Log, deepEqual, isEmptyObject, merge, uid, SyncPromise, Filter,
20
- FilterOperator, URI) {
20
+ FilterOperator, _URL) {
21
21
  "use strict";
22
22
 
23
23
  var rAmpersand = /&/g,
24
24
  rApplicationGroupID = /^\w+$/,
25
25
  sClassName = "sap.ui.model.odata.v4.lib._Helper",
26
26
  rEquals = /\=/g,
27
- rEscapedCloseBracket = /%29/g,
28
- rEscapedOpenBracket = /%28/g,
29
- rEscapedTick = /%27/g,
30
27
  rGroupID = /^(\$auto(\.\w+)?|\$direct|\w+)$/,
31
28
  rHash = /#/g,
32
29
  // matches the rest of a segment after '(' and any segment that consists only of a number
@@ -40,18 +37,6 @@ sap.ui.define([
40
37
  */
41
38
  _Helper;
42
39
 
43
- /**
44
- * Ensures that the key predicates in the given URL are not %-encoded.
45
- *
46
- * @param {string} sUrl - The URL
47
- * @returns {string} The converted URL
48
- */
49
- function preserveKeyPredicates(sUrl) {
50
- return sUrl.replace(rEscapedTick, "'")
51
- .replace(rEscapedOpenBracket, "(")
52
- .replace(rEscapedCloseBracket, ")");
53
- }
54
-
55
40
  _Helper = {
56
41
  /**
57
42
  * Adds an item to the given map by path.
@@ -1835,6 +1820,22 @@ sap.ui.define([
1835
1820
  return sPath;
1836
1821
  },
1837
1822
 
1823
+ /**
1824
+ * Parses the URL parameters from a given query string. Takes care of array parameters.
1825
+ *
1826
+ * @param {string} sQuery - A query string
1827
+ * @returns {object} - A map of URL parameters
1828
+ */
1829
+ getUrlParameters : function (sQuery) {
1830
+ const mUrlParameters = {};
1831
+ const oUrlParams = new URLSearchParams(sQuery);
1832
+ for (const sKey of oUrlParams.keys()) {
1833
+ const aValues = oUrlParams.getAll(sKey);
1834
+ mUrlParameters[sKey] = aValues.length > 1 ? aValues : aValues[0];
1835
+ }
1836
+ return mUrlParameters;
1837
+ },
1838
+
1838
1839
  /**
1839
1840
  * Tells whether <code>sPath</code> has <code>sBasePath</code> as path prefix. It returns
1840
1841
  * <code>true</code> iff {@link .getRelativePath} does not return <code>undefined</code>.
@@ -2270,37 +2271,50 @@ sap.ui.define([
2270
2271
  },
2271
2272
 
2272
2273
  /**
2273
- * Make the given URL absolute using the given base URL. The URLs must not contain a host
2274
- * or protocol part. Ensures that key predicates are not %-encoded.
2274
+ * Resolves the given URL with the given base URL to create either a root-relative (relative
2275
+ * to the origin, e.g. "/service") or an absolute (including the origin, e.g.
2276
+ * "protocol://host:port/service") URL. If <code>sBase</code> is a cross-origin URL, the
2277
+ * result will be an absolute URL, otherwise a root-relative URL is returned. Note that an
2278
+ * absolute <code>sUrl</code> overrules the <code>sBase</code>, and a root-relative
2279
+ * <code>sUrl</code> only takes the origin of <code>sBase</code> into account.
2275
2280
  *
2276
2281
  * @param {string} sUrl
2277
2282
  * The URL
2278
2283
  * @param {string} sBase
2279
- * The base URL
2284
+ * The absolute or root-relative base URL
2285
+ * @param {boolean} [bServiceUrl]
2286
+ * Whether to turn a metadata URL ("/service/$metadata") into a service URL ("/service/")
2287
+ * as needed by an ODataModel
2280
2288
  * @returns {string}
2281
- * The absolute URL
2289
+ * The resolved absolute or root-relative URL
2282
2290
  *
2283
2291
  * @public
2284
2292
  */
2285
- makeAbsolute : function (sUrl, sBase) {
2286
- return preserveKeyPredicates(new URI(sUrl).absoluteTo(sBase).toString());
2293
+ makeAbsolute : function (sUrl, sBase, bServiceUrl) {
2294
+ const oUrl = new URL(sUrl, new URL(sBase, document.baseURI));
2295
+ if (bServiceUrl) {
2296
+ oUrl.pathname = oUrl.pathname.slice(0, oUrl.pathname.lastIndexOf("/") + 1);
2297
+ }
2298
+ return oUrl.origin === new URL(document.baseURI).origin
2299
+ ? oUrl.toString().slice(oUrl.origin.length)
2300
+ : oUrl.toString();
2287
2301
  },
2288
2302
 
2289
2303
  /**
2290
- * Make the given absolute URL relative to the given base URL. The URLs must not contain a
2291
- * host or protocol part. Ensures that key predicates are not %-encoded.
2304
+ * Make the given absolute path relative to the given base path. The paths must be OData
2305
+ * resource paths (ABNF rule resourcePath).
2292
2306
  *
2293
- * @param {string} sUrl
2294
- * The URL
2307
+ * @param {string} sPath
2308
+ * The absolute path
2295
2309
  * @param {string} sBase
2296
- * The base URL
2310
+ * The base path
2297
2311
  * @returns {string}
2298
- * The relative URL
2312
+ * The relative path
2299
2313
  *
2300
2314
  * @public
2301
2315
  */
2302
- makeRelativeUrl : function (sUrl, sBase) {
2303
- return preserveKeyPredicates(new URI(sUrl).relativeTo(sBase).toString());
2316
+ makeRelativePath : function (sPath, sBase) {
2317
+ return new _URL(sPath).relativeTo(new _URL(sBase));
2304
2318
  },
2305
2319
 
2306
2320
  /**
@@ -227,7 +227,7 @@ sap.ui.define([
227
227
  *
228
228
  * @extends sap.ui.model.Model
229
229
  * @public
230
- * @version 1.142.1
230
+ * @version 1.143.1
231
231
  */
232
232
  var ResourceModel = Model.extend("sap.ui.model.resource.ResourceModel", /** @lends sap.ui.model.resource.ResourceModel.prototype */ {
233
233
 
@@ -19,7 +19,7 @@ sap.ui.define(["sap/ui/core/Lib", 'sap/ui/model/SimpleType', 'sap/ui/model/Forma
19
19
  * @extends sap.ui.model.SimpleType
20
20
  *
21
21
  * @author SAP SE
22
- * @version 1.142.1
22
+ * @version 1.143.1
23
23
  *
24
24
  * @public
25
25
  * @param {object} [oFormatOptions]
@@ -34,7 +34,7 @@ sap.ui.define([
34
34
  * @extends sap.ui.model.CompositeType
35
35
  *
36
36
  * @author SAP SE
37
- * @version 1.142.1
37
+ * @version 1.143.1
38
38
  *
39
39
  * @public
40
40
  * @param {object} [oFormatOptions]
@@ -27,7 +27,7 @@ sap.ui.define([
27
27
  * @extends sap.ui.model.SimpleType
28
28
  *
29
29
  * @author SAP SE
30
- * @version 1.142.1
30
+ * @version 1.143.1
31
31
  *
32
32
  * @public
33
33
  * @param {object} [oFormatOptions] Formatting options. For a list of all available options, see {@link sap.ui.core.format.DateFormat.getDateInstance DateFormat}.
@@ -25,7 +25,7 @@ sap.ui.define([
25
25
  * @extends sap.ui.model.CompositeType
26
26
  *
27
27
  * @author SAP SE
28
- * @version 1.142.1
28
+ * @version 1.143.1
29
29
  *
30
30
  * @alias sap.ui.model.type.DateInterval
31
31
  * @param {object} [oFormatOptions]
@@ -19,7 +19,7 @@ sap.ui.define(['./Date', 'sap/ui/core/format/DateFormat'],
19
19
  * @extends sap.ui.model.type.Date
20
20
  *
21
21
  * @author SAP SE
22
- * @version 1.142.1
22
+ * @version 1.143.1
23
23
  *
24
24
  * @public
25
25
  * @param {object} [oFormatOptions] Formatting options. For a list of all available options, see {@link sap.ui.core.format.DateFormat.getDateTimeInstance DateFormat}.
@@ -19,7 +19,7 @@ sap.ui.define(['./DateInterval', 'sap/ui/core/format/DateFormat'],
19
19
  * @extends sap.ui.model.type.DateInterval
20
20
  *
21
21
  * @author SAP SE
22
- * @version 1.142.1
22
+ * @version 1.143.1
23
23
  *
24
24
  * @public
25
25
  * @param {object} [oFormatOptions] Formatting options. For a list of all available options, see {@link sap.ui.core.format.DateFormat.getDateTimeInstance DateFormat}.
@@ -25,7 +25,7 @@ sap.ui.define([
25
25
  * @extends sap.ui.model.SimpleType
26
26
  *
27
27
  * @author SAP SE
28
- * @version 1.142.1
28
+ * @version 1.143.1
29
29
  *
30
30
  * @public
31
31
  * @param {object} [oFormatOptions]
@@ -26,7 +26,7 @@ sap.ui.define([
26
26
  * @extends sap.ui.model.SimpleType
27
27
  *
28
28
  * @author SAP SE
29
- * @version 1.142.1
29
+ * @version 1.143.1
30
30
  *
31
31
  * @public
32
32
  * @param {object} [oFormatOptions]
@@ -26,7 +26,7 @@ sap.ui.define([
26
26
  * @extends sap.ui.model.SimpleType
27
27
  *
28
28
  * @author SAP SE
29
- * @version 1.142.1
29
+ * @version 1.143.1
30
30
  *
31
31
  * @public
32
32
  * @param {object} [oFormatOptions]
@@ -25,7 +25,7 @@ sap.ui.define([
25
25
  * @extends sap.ui.model.SimpleType
26
26
  *
27
27
  * @author SAP SE
28
- * @version 1.142.1
28
+ * @version 1.143.1
29
29
  *
30
30
  * @alias sap.ui.model.type.String
31
31
  * @param {object} [oFormatOptions]
@@ -19,7 +19,7 @@ sap.ui.define(['./Date', 'sap/ui/core/format/DateFormat'],
19
19
  * @extends sap.ui.model.type.Date
20
20
  *
21
21
  * @author SAP SE
22
- * @version 1.142.1
22
+ * @version 1.143.1
23
23
  *
24
24
  * @public
25
25
  * @param {object} [oFormatOptions] Formatting options. For a list of all available options, see {@link sap.ui.core.format.DateFormat.getTimeInstance DateFormat}.
@@ -19,7 +19,7 @@ sap.ui.define(['./DateInterval', 'sap/ui/core/format/DateFormat'],
19
19
  * @extends sap.ui.model.type.DateInterval
20
20
  *
21
21
  * @author SAP SE
22
- * @version 1.142.1
22
+ * @version 1.143.1
23
23
  *
24
24
  * @public
25
25
  * @param {object} [oFormatOptions] Formatting options. For a list of all available options, see {@link sap.ui.core.format.DateFormat.getTimeInstance DateFormat}.
@@ -49,7 +49,7 @@ sap.ui.define([
49
49
  *
50
50
  *
51
51
  * @author SAP SE
52
- * @version 1.142.1
52
+ * @version 1.143.1
53
53
  *
54
54
  * @public
55
55
  * @param {object} [oFormatOptions]
@@ -47,7 +47,7 @@ sap.ui.define([
47
47
  * @extends sap.ui.model.ClientModel
48
48
  *
49
49
  * @author SAP SE
50
- * @version 1.142.1
50
+ * @version 1.143.1
51
51
  *
52
52
  * @param {XMLDocument|string} oData
53
53
  * Either the URL where to load the XML from or an XML document
@@ -33,6 +33,16 @@ sap.ui.define(['sap/ui/model/ClientTreeBinding', "sap/base/util/each"],
33
33
  */
34
34
  var XMLTreeBinding = ClientTreeBinding.extend("sap.ui.model.xml.XMLTreeBinding");
35
35
 
36
+ /**
37
+ * Returns sap.ui.model.ClientTreeBinding.CannotCloneData.
38
+ *
39
+ * @returns {sap.ui.model.ClientTreeBinding.CannotCloneData} a symbol indicating that the tree data cannot be cloned
40
+ * @override
41
+ */
42
+ XMLTreeBinding.prototype.cloneData = function() {
43
+ return ClientTreeBinding.CannotCloneData;
44
+ };
45
+
36
46
  /**
37
47
  * Return node contexts for the tree
38
48
  * @param {sap.ui.model.Context} oContext to use for retrieving the node contexts
@@ -53,7 +53,7 @@ sap.ui.define(['sap/ui/core/Core', "sap/ui/VersionInfo", "sap/ui/core/Lib"],
53
53
  * @namespace
54
54
  *
55
55
  * @author SAP SE
56
- * @version 1.142.1
56
+ * @version 1.143.1
57
57
  *
58
58
  * @public
59
59
  * @since 1.48.0
@@ -30,7 +30,7 @@ sap.ui.define([ 'sap/ui/core/ElementRegistry', 'sap/ui/core/Control', "sap/ui/qu
30
30
  * @namespace
31
31
  *
32
32
  * @author SAP SE
33
- * @version 1.142.1
33
+ * @version 1.143.1
34
34
  *
35
35
  * @public
36
36
  * @since 1.48.0
@@ -26,7 +26,7 @@ sap.ui.define([
26
26
  * @extends sap.ui.base.Object
27
27
  * @abstract
28
28
  * @author SAP SE
29
- * @version 1.142.1
29
+ * @version 1.143.1
30
30
  * @since 1.100
31
31
  */
32
32
  return BaseObject.extend("sap.ui.test.generic.TestBase", {
@@ -713,6 +713,12 @@ var cssSchema = (function () {
713
713
  'cssPropBits': 0,
714
714
  'cssLitGroup': [ L[ 18 ], L[ 47 ], L[ 54 ] ]
715
715
  },
716
+ // ##### BEGIN: MODIFIED BY SAP
717
+ 'text-decoration-line': {
718
+ 'cssPropBits': 0,
719
+ 'cssLitGroup': [ L[ 18 ], L[ 47 ], L[ 54 ] ]
720
+ },
721
+ // ##### END: MODIFIED BY SAP
716
722
  'text-indent': {
717
723
  'cssPropBits': 5,
718
724
  'cssLitGroup': [ L[ 47 ] ]
@@ -277,7 +277,7 @@ sap.ui.define(["sap/base/assert"], function (assert) {
277
277
  *
278
278
  * @enum {string}
279
279
  * @public
280
- * @version 1.142.1
280
+ * @version 1.143.1
281
281
  */
282
282
  Storage.Type = {
283
283
  /**
package/src/ui5loader.js CHANGED
@@ -1461,13 +1461,7 @@
1461
1461
  function loadScript(oModule, sAlternativeURL) {
1462
1462
 
1463
1463
  const oScript = document.createElement('SCRIPT');
1464
- // Accessing the 'src' property of the script in this strange way prevents Safari 12 (or WebKit) from
1465
- // wrongly optimizing access. SF12 seems to check at optimization time whether there's a setter for the
1466
- // property and optimize accordingly. When a setter is defined or changed at a later point in time (e.g.
1467
- // by the AppCacheBuster), then the optimization seems not to be updated and the new setter is ignored
1468
- // BCP 1970035485
1469
- oScript["s" + "rc"] = oModule.url;
1470
- //oScript.src = oModule.url;
1464
+ oScript.src = oModule.url;
1471
1465
  oScript.setAttribute("data-sap-ui-module", oModule.name);
1472
1466
 
1473
1467
  function onload(e) {
@@ -2696,7 +2690,7 @@
2696
2690
  /**
2697
2691
  * Root namespace for JavaScript functionality provided by SAP SE.
2698
2692
  *
2699
- * @version 1.142.1
2693
+ * @version 1.143.1
2700
2694
  * @namespace
2701
2695
  * @public
2702
2696
  * @name sap