@openui5/sap.ui.core 1.134.0 → 1.136.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 (830) hide show
  1. package/.dtsgenrc +32 -0
  2. package/REUSE.toml +649 -0
  3. package/THIRDPARTY.txt +23 -23
  4. package/package.json +1 -1
  5. package/src/jquery.sap.act.js +1 -1
  6. package/src/jquery.sap.dom.js +1 -1
  7. package/src/jquery.sap.encoder.js +1 -1
  8. package/src/jquery.sap.events.js +1 -1
  9. package/src/jquery.sap.global.js +2 -2
  10. package/src/jquery.sap.history.js +1 -1
  11. package/src/jquery.sap.keycodes.js +1 -1
  12. package/src/jquery.sap.mobile.js +1 -1
  13. package/src/jquery.sap.promise.js +1 -1
  14. package/src/jquery.sap.properties.js +2 -2
  15. package/src/jquery.sap.resources.js +2 -2
  16. package/src/jquery.sap.script.js +2 -2
  17. package/src/jquery.sap.sjax.js +1 -1
  18. package/src/jquery.sap.storage.js +4 -4
  19. package/src/jquery.sap.strings.js +1 -1
  20. package/src/jquery.sap.stubs.js +1 -1
  21. package/src/jquery.sap.trace.js +1 -1
  22. package/src/jquery.sap.ui.js +1 -1
  23. package/src/jquery.sap.xml.js +1 -1
  24. package/src/sap/base/Event.js +2 -2
  25. package/src/sap/base/Eventing.js +2 -2
  26. package/src/sap/base/Log.js +15 -15
  27. package/src/sap/base/assert.js +1 -1
  28. package/src/sap/base/config/MemoryConfigurationProvider.js +1 -1
  29. package/src/sap/base/config.js +2 -2
  30. package/src/sap/base/future.js +1 -1
  31. package/src/sap/base/i18n/Formatting.js +1 -1
  32. package/src/sap/base/i18n/LanguageFallback.js +344 -0
  33. package/src/sap/base/i18n/LanguageTag.js +2 -2
  34. package/src/sap/base/i18n/Localization.js +10 -5
  35. package/src/sap/base/i18n/ResourceBundle.js +16 -313
  36. package/src/sap/base/i18n/date/CalendarType.js +1 -1
  37. package/src/sap/base/i18n/date/CalendarWeekNumbering.js +1 -1
  38. package/src/sap/base/i18n/date/TimezoneUtils.js +2 -2
  39. package/src/sap/base/i18n/date/_EnumHelper.js +1 -1
  40. package/src/sap/base/security/URLListValidator.js +1 -1
  41. package/src/sap/base/security/URLWhitelist.js +1 -1
  42. package/src/sap/base/security/encodeCSS.js +1 -1
  43. package/src/sap/base/security/encodeJS.js +1 -1
  44. package/src/sap/base/security/encodeURL.js +1 -1
  45. package/src/sap/base/security/encodeURLParameters.js +1 -1
  46. package/src/sap/base/security/encodeXML.js +1 -1
  47. package/src/sap/base/security/sanitizeHTML.js +1 -1
  48. package/src/sap/base/strings/camelize.js +1 -1
  49. package/src/sap/base/strings/capitalize.js +1 -1
  50. package/src/sap/base/strings/escapeRegExp.js +1 -1
  51. package/src/sap/base/strings/formatMessage.js +1 -1
  52. package/src/sap/base/strings/hash.js +1 -1
  53. package/src/sap/base/strings/hyphenate.js +1 -1
  54. package/src/sap/base/strings/toHex.js +1 -1
  55. package/src/sap/base/strings/whitespaceReplacer.js +1 -1
  56. package/src/sap/base/util/Deferred.js +1 -1
  57. package/src/sap/base/util/JSTokenizer.js +1 -1
  58. package/src/sap/base/util/LoaderExtensions.js +1 -1
  59. package/src/sap/base/util/ObjectPath.js +1 -1
  60. package/src/sap/base/util/Properties.js +1 -1
  61. package/src/sap/base/util/UriParameters.js +1 -1
  62. package/src/sap/base/util/Version.js +1 -1
  63. package/src/sap/base/util/_merge.js +1 -1
  64. package/src/sap/base/util/array/diff.js +1 -1
  65. package/src/sap/base/util/array/uniqueSort.js +1 -1
  66. package/src/sap/base/util/clamp.js +1 -1
  67. package/src/sap/base/util/deepClone.js +1 -1
  68. package/src/sap/base/util/deepEqual.js +1 -1
  69. package/src/sap/base/util/deepExtend.js +1 -1
  70. package/src/sap/base/util/defineCoupledProperty.js +1 -1
  71. package/src/sap/base/util/defineLazyProperty.js +1 -1
  72. package/src/sap/base/util/each.js +1 -1
  73. package/src/sap/base/util/extend.js +1 -1
  74. package/src/sap/base/util/fetch.js +1 -1
  75. package/src/sap/base/util/includes.js +1 -1
  76. package/src/sap/base/util/isEmptyObject.js +1 -1
  77. package/src/sap/base/util/isPlainObject.js +1 -1
  78. package/src/sap/base/util/merge.js +1 -1
  79. package/src/sap/base/util/mixedFetch.js +1 -1
  80. package/src/sap/base/util/now.js +1 -1
  81. package/src/sap/base/util/resolveReference.js +1 -1
  82. package/src/sap/base/util/restricted/_CancelablePromise.js +1 -1
  83. package/src/sap/base/util/restricted/_castArray.js +2 -2
  84. package/src/sap/base/util/restricted/_compact.js +2 -2
  85. package/src/sap/base/util/restricted/_curry.js +2 -2
  86. package/src/sap/base/util/restricted/_debounce.js +2 -2
  87. package/src/sap/base/util/restricted/_difference.js +2 -2
  88. package/src/sap/base/util/restricted/_differenceBy.js +2 -2
  89. package/src/sap/base/util/restricted/_differenceWith.js +2 -2
  90. package/src/sap/base/util/restricted/_flatMap.js +2 -2
  91. package/src/sap/base/util/restricted/_flatMapDeep.js +2 -2
  92. package/src/sap/base/util/restricted/_flatMapDepth.js +2 -2
  93. package/src/sap/base/util/restricted/_flatten.js +2 -2
  94. package/src/sap/base/util/restricted/_flattenDeep.js +2 -2
  95. package/src/sap/base/util/restricted/_flattenDepth.js +2 -2
  96. package/src/sap/base/util/restricted/_intersection.js +2 -2
  97. package/src/sap/base/util/restricted/_intersectionBy.js +2 -2
  98. package/src/sap/base/util/restricted/_intersectionWith.js +2 -2
  99. package/src/sap/base/util/restricted/_isEqual.js +2 -2
  100. package/src/sap/base/util/restricted/_isEqualWith.js +2 -2
  101. package/src/sap/base/util/restricted/_isNil.js +2 -2
  102. package/src/sap/base/util/restricted/_max.js +2 -2
  103. package/src/sap/base/util/restricted/_merge.js +2 -2
  104. package/src/sap/base/util/restricted/_mergeWith.js +2 -2
  105. package/src/sap/base/util/restricted/_min.js +2 -2
  106. package/src/sap/base/util/restricted/_omit.js +2 -2
  107. package/src/sap/base/util/restricted/_pick.js +2 -2
  108. package/src/sap/base/util/restricted/_pickBy.js +2 -2
  109. package/src/sap/base/util/restricted/_throttle.js +2 -2
  110. package/src/sap/base/util/restricted/_toArray.js +2 -2
  111. package/src/sap/base/util/restricted/_union.js +2 -2
  112. package/src/sap/base/util/restricted/_unionBy.js +2 -2
  113. package/src/sap/base/util/restricted/_unionWith.js +2 -2
  114. package/src/sap/base/util/restricted/_uniq.js +2 -2
  115. package/src/sap/base/util/restricted/_uniqBy.js +2 -2
  116. package/src/sap/base/util/restricted/_uniqWith.js +2 -2
  117. package/src/sap/base/util/restricted/_without.js +2 -2
  118. package/src/sap/base/util/restricted/_xor.js +2 -2
  119. package/src/sap/base/util/restricted/_xorBy.js +2 -2
  120. package/src/sap/base/util/restricted/_xorWith.js +2 -2
  121. package/src/sap/base/util/restricted/_zipObject.js +2 -2
  122. package/src/sap/base/util/restricted/_zipObjectDeep.js +2 -2
  123. package/src/sap/base/util/syncFetch.js +1 -1
  124. package/src/sap/base/util/uid.js +1 -1
  125. package/src/sap/base/util/values.js +1 -1
  126. package/src/sap/ui/Device.js +4 -4
  127. package/src/sap/ui/Global.js +4 -4
  128. package/src/sap/ui/VersionInfo.js +25 -10
  129. package/src/sap/ui/base/BindingInfo.js +1 -1
  130. package/src/sap/ui/base/BindingParser.js +1 -1
  131. package/src/sap/ui/base/DataType.js +1 -1
  132. package/src/sap/ui/base/DesignTime.js +1 -1
  133. package/src/sap/ui/base/Event.js +2 -2
  134. package/src/sap/ui/base/EventProvider.js +2 -2
  135. package/src/sap/ui/base/Exception.js +1 -1
  136. package/src/sap/ui/base/ExpressionParser.js +1 -1
  137. package/src/sap/ui/base/Interface.js +2 -2
  138. package/src/sap/ui/base/ManagedObject.js +118 -94
  139. package/src/sap/ui/base/ManagedObjectMetadata.js +2 -2
  140. package/src/sap/ui/base/ManagedObjectObserver.js +1 -1
  141. package/src/sap/ui/base/ManagedObjectRegistry.js +1 -1
  142. package/src/sap/ui/base/Metadata.js +2 -2
  143. package/src/sap/ui/base/Object.js +2 -2
  144. package/src/sap/ui/base/ObjectPool.js +2 -2
  145. package/src/sap/ui/base/SyncPromise.js +1 -1
  146. package/src/sap/ui/base/syncXHRFix.js +1 -1
  147. package/src/sap/ui/core/.library +6 -6
  148. package/src/sap/ui/core/AccessKeysEnablement.js +1 -1
  149. package/src/sap/ui/core/AnimationMode.js +1 -1
  150. package/src/sap/ui/core/AppCacheBuster.js +1 -1
  151. package/src/sap/ui/core/BlockLayerUtils.js +1 -1
  152. package/src/sap/ui/core/BusyIndicator.js +2 -2
  153. package/src/sap/ui/core/BusyIndicatorUtils.js +1 -1
  154. package/src/sap/ui/core/CalendarType.js +1 -1
  155. package/src/sap/ui/core/CommandExecution.js +1 -1
  156. package/src/sap/ui/core/Component.js +58 -7
  157. package/src/sap/ui/core/ComponentContainer.js +5 -3
  158. package/src/sap/ui/core/ComponentContainerRenderer.js +1 -1
  159. package/src/sap/ui/core/ComponentHooks.js +1 -1
  160. package/src/sap/ui/core/ComponentMetadata.js +2 -2
  161. package/src/sap/ui/core/ComponentRegistry.js +1 -1
  162. package/src/sap/ui/core/ComponentSupport.js +2 -2
  163. package/src/sap/ui/core/Configuration.js +2 -2
  164. package/src/sap/ui/core/ContextMenuSupport.js +1 -1
  165. package/src/sap/ui/core/Control.js +2 -2
  166. package/src/sap/ui/core/ControlBehavior.js +1 -1
  167. package/src/sap/ui/core/Core.js +12 -4
  168. package/src/sap/ui/core/CustomData.js +3 -3
  169. package/src/sap/ui/core/CustomStyleClassSupport.js +1 -1
  170. package/src/sap/ui/core/DeclarativeSupport.js +2 -2
  171. package/src/sap/ui/core/Element.js +18 -39
  172. package/src/sap/ui/core/ElementHooks.js +35 -0
  173. package/src/sap/ui/core/ElementMetadata.js +2 -2
  174. package/src/sap/ui/core/ElementRegistry.js +1 -1
  175. package/src/sap/ui/core/EnabledPropagator.js +2 -2
  176. package/src/sap/ui/core/EventBus.js +2 -2
  177. package/src/sap/ui/core/ExtensionPoint.js +1 -1
  178. package/src/sap/ui/core/FocusHandler.js +1 -1
  179. package/src/sap/ui/core/FocusMode.js +1 -1
  180. package/src/sap/ui/core/Fragment.js +35 -12
  181. package/src/sap/ui/core/HTML.js +2 -2
  182. package/src/sap/ui/core/HTMLRenderer.js +1 -1
  183. package/src/sap/ui/core/History.js +2 -2
  184. package/src/sap/ui/core/Icon.js +2 -2
  185. package/src/sap/ui/core/IconPool.js +12 -13
  186. package/src/sap/ui/core/IconRenderer.js +1 -1
  187. package/src/sap/ui/core/IndicationColorSupport.js +2 -2
  188. package/src/sap/ui/core/IntervalTrigger.js +2 -2
  189. package/src/sap/ui/core/InvisibleMessage.js +2 -2
  190. package/src/sap/ui/core/InvisibleRenderer.js +2 -2
  191. package/src/sap/ui/core/InvisibleText.js +2 -2
  192. package/src/sap/ui/core/Item.js +2 -2
  193. package/src/sap/ui/core/LabelEnablement.js +2 -2
  194. package/src/sap/ui/core/LayoutData.js +2 -2
  195. package/src/sap/ui/core/Lib.js +10 -32
  196. package/src/sap/ui/core/ListItem.js +2 -2
  197. package/src/sap/ui/core/LocalBusyIndicator.js +2 -2
  198. package/src/sap/ui/core/LocalBusyIndicatorRenderer.js +1 -1
  199. package/src/sap/ui/core/LocalBusyIndicatorSupport.js +1 -1
  200. package/src/sap/ui/core/Locale.js +2 -2
  201. package/src/sap/ui/core/LocaleData.js +68 -94
  202. package/src/sap/ui/core/Manifest.js +18 -2
  203. package/src/sap/ui/core/Message.js +2 -2
  204. package/src/sap/ui/core/Messaging.js +1 -1
  205. package/src/sap/ui/core/Patcher.js +1 -1
  206. package/src/sap/ui/core/Placeholder.js +1 -1
  207. package/src/sap/ui/core/Popup.js +67 -76
  208. package/src/sap/ui/core/RenderManager.js +2 -2
  209. package/src/sap/ui/core/Renderer.js +2 -2
  210. package/src/sap/ui/core/Rendering.js +1 -1
  211. package/src/sap/ui/core/ResizeHandler.js +2 -2
  212. package/src/sap/ui/core/ScrollBar.js +2 -2
  213. package/src/sap/ui/core/ScrollBarRenderer.js +1 -1
  214. package/src/sap/ui/core/SeparatorItem.js +2 -2
  215. package/src/sap/ui/core/Shortcut.js +1 -1
  216. package/src/sap/ui/core/ShortcutHint.js +1 -1
  217. package/src/sap/ui/core/ShortcutHintsMixin.js +10 -1
  218. package/src/sap/ui/core/StashedControlSupport.js +1 -1
  219. package/src/sap/ui/core/StaticArea.js +1 -1
  220. package/src/sap/ui/core/Supportability.js +1 -1
  221. package/src/sap/ui/core/Theming.js +98 -1
  222. package/src/sap/ui/core/Title.js +2 -2
  223. package/src/sap/ui/core/TooltipBase.js +2 -2
  224. package/src/sap/ui/core/UIArea.js +2 -2
  225. package/src/sap/ui/core/UIAreaRegistry.js +1 -1
  226. package/src/sap/ui/core/UIComponent.js +31 -16
  227. package/src/sap/ui/core/UIComponentMetadata.js +2 -2
  228. package/src/sap/ui/core/ValueStateSupport.js +2 -2
  229. package/src/sap/ui/core/VariantLayoutData.js +2 -2
  230. package/src/sap/ui/core/XMLComposite.js +2 -2
  231. package/src/sap/ui/core/XMLCompositeMetadata.js +2 -2
  232. package/src/sap/ui/core/XMLTemplateProcessor.js +9 -4
  233. package/src/sap/ui/core/_CommandPool.js +80 -0
  234. package/src/sap/ui/core/_IconRegistry.js +1 -1
  235. package/src/sap/ui/core/_UrlResolver.js +1 -1
  236. package/src/sap/ui/core/boot/FieldHelpEndpoint.js +1 -1
  237. package/src/sap/ui/core/boot/KeyboardInteractionEndpoint.js +142 -0
  238. package/src/sap/ui/core/boot/_bootConfig.js +1 -1
  239. package/src/sap/ui/core/boot/_runBoot.js +1 -1
  240. package/src/sap/ui/core/boot/initDOM.js +1 -1
  241. package/src/sap/ui/core/boot/loadCalendar.js +1 -1
  242. package/src/sap/ui/core/boot/loadManifest.js +1 -1
  243. package/src/sap/ui/core/boot/loadModules.js +1 -1
  244. package/src/sap/ui/core/boot/onInit.js +1 -1
  245. package/src/sap/ui/core/boot.js +1 -1
  246. package/src/sap/ui/core/cache/CacheManager.js +1 -1
  247. package/src/sap/ui/core/cache/CacheManagerNOP.js +1 -1
  248. package/src/sap/ui/core/cache/LRUPersistentCache.js +1 -1
  249. package/src/sap/ui/core/date/Buddhist.js +1 -1
  250. package/src/sap/ui/core/date/CalendarUtils.js +1 -1
  251. package/src/sap/ui/core/date/CalendarWeekNumbering.js +1 -1
  252. package/src/sap/ui/core/date/Gregorian.js +1 -1
  253. package/src/sap/ui/core/date/Islamic.js +1 -1
  254. package/src/sap/ui/core/date/Japanese.js +1 -1
  255. package/src/sap/ui/core/date/Persian.js +1 -1
  256. package/src/sap/ui/core/date/UI5Date.js +2 -2
  257. package/src/sap/ui/core/date/UniversalDate.js +1 -1
  258. package/src/sap/ui/core/date/UniversalDateUtils.js +1 -1
  259. package/src/sap/ui/core/date/_Calendars.js +1 -1
  260. package/src/sap/ui/core/delegate/ItemNavigation.js +2 -2
  261. package/src/sap/ui/core/delegate/ScrollEnablement.js +2 -2
  262. package/src/sap/ui/core/designtime/ComponentContainer.designtime.js +1 -1
  263. package/src/sap/ui/core/designtime/CustomData.designtime.js +1 -1
  264. package/src/sap/ui/core/designtime/Icon.designtime.js +1 -1
  265. package/src/sap/ui/core/designtime/UIComponent.designtime.js +1 -1
  266. package/src/sap/ui/core/designtime/library.designtime.js +1 -1
  267. package/src/sap/ui/core/designtime/mvc/ControllerExtensionTemplate.js +1 -1
  268. package/src/sap/ui/core/designtime/mvc/View.designtime.js +1 -1
  269. package/src/sap/ui/core/designtime/mvc/XMLView.designtime.js +1 -1
  270. package/src/sap/ui/core/dnd/DragAndDrop.js +2 -2
  271. package/src/sap/ui/core/dnd/DragDropBase.js +2 -2
  272. package/src/sap/ui/core/dnd/DragDropInfo.js +2 -2
  273. package/src/sap/ui/core/dnd/DragInfo.js +2 -2
  274. package/src/sap/ui/core/dnd/DropInfo.js +2 -2
  275. package/src/sap/ui/core/fieldhelp/FieldHelp.js +91 -49
  276. package/src/sap/ui/core/fieldhelp/FieldHelpCustomData.js +1 -5
  277. package/src/sap/ui/core/fieldhelp/FieldHelpUtil.js +1 -1
  278. package/src/sap/ui/core/format/DateFormat.js +1 -1
  279. package/src/sap/ui/core/format/DateFormatTimezoneDisplay.js +1 -1
  280. package/src/sap/ui/core/format/FileSizeFormat.js +1 -1
  281. package/src/sap/ui/core/format/FormatUtils.js +2 -2
  282. package/src/sap/ui/core/format/ListFormat.js +1 -1
  283. package/src/sap/ui/core/format/NumberFormat.js +1 -1
  284. package/src/sap/ui/core/format/TimezoneUtil.js +2 -2
  285. package/src/sap/ui/core/getCompatibilityVersion.js +2 -2
  286. package/src/sap/ui/core/hyphenation/Hyphenation.js +2 -2
  287. package/src/sap/ui/core/hyphenation/HyphenationTestingWords.js +1 -1
  288. package/src/sap/ui/core/i18n/interaction.xml +36 -0
  289. package/src/sap/ui/core/interaction/KeyboardInteractionDisplay.js +400 -0
  290. package/src/sap/ui/core/library.js +10 -4
  291. package/src/sap/ui/core/library.support.js +1 -1
  292. package/src/sap/ui/core/message/ControlMessageProcessor.js +2 -2
  293. package/src/sap/ui/core/message/Message.js +2 -2
  294. package/src/sap/ui/core/message/MessageManager.js +2 -2
  295. package/src/sap/ui/core/message/MessageMixin.js +1 -1
  296. package/src/sap/ui/core/message/MessageParser.js +2 -2
  297. package/src/sap/ui/core/message/MessageProcessor.js +2 -2
  298. package/src/sap/ui/core/message/MessageType.js +1 -1
  299. package/src/sap/ui/core/messagebundle.properties +14 -0
  300. package/src/sap/ui/core/messagebundle_ar.properties +8 -0
  301. package/src/sap/ui/core/messagebundle_bg.properties +8 -0
  302. package/src/sap/ui/core/messagebundle_ca.properties +8 -0
  303. package/src/sap/ui/core/messagebundle_cnr.properties +8 -0
  304. package/src/sap/ui/core/messagebundle_cs.properties +8 -0
  305. package/src/sap/ui/core/messagebundle_cy.properties +8 -0
  306. package/src/sap/ui/core/messagebundle_da.properties +8 -0
  307. package/src/sap/ui/core/messagebundle_de.properties +8 -0
  308. package/src/sap/ui/core/messagebundle_el.properties +8 -0
  309. package/src/sap/ui/core/messagebundle_en.properties +8 -0
  310. package/src/sap/ui/core/messagebundle_en_GB.properties +8 -0
  311. package/src/sap/ui/core/messagebundle_en_US_saprigi.properties +8 -0
  312. package/src/sap/ui/core/messagebundle_es.properties +10 -2
  313. package/src/sap/ui/core/messagebundle_es_MX.properties +8 -0
  314. package/src/sap/ui/core/messagebundle_et.properties +8 -0
  315. package/src/sap/ui/core/messagebundle_fi.properties +8 -0
  316. package/src/sap/ui/core/messagebundle_fr.properties +8 -0
  317. package/src/sap/ui/core/messagebundle_fr_CA.properties +18 -10
  318. package/src/sap/ui/core/messagebundle_hi.properties +9 -1
  319. package/src/sap/ui/core/messagebundle_hr.properties +8 -0
  320. package/src/sap/ui/core/messagebundle_hu.properties +8 -0
  321. package/src/sap/ui/core/messagebundle_id.properties +11 -3
  322. package/src/sap/ui/core/messagebundle_it.properties +8 -0
  323. package/src/sap/ui/core/messagebundle_iw.properties +8 -0
  324. package/src/sap/ui/core/messagebundle_ja.properties +8 -0
  325. package/src/sap/ui/core/messagebundle_kk.properties +8 -0
  326. package/src/sap/ui/core/messagebundle_ko.properties +8 -0
  327. package/src/sap/ui/core/messagebundle_lt.properties +8 -0
  328. package/src/sap/ui/core/messagebundle_lv.properties +8 -0
  329. package/src/sap/ui/core/messagebundle_mk.properties +8 -0
  330. package/src/sap/ui/core/messagebundle_ms.properties +8 -0
  331. package/src/sap/ui/core/messagebundle_nl.properties +8 -0
  332. package/src/sap/ui/core/messagebundle_no.properties +8 -0
  333. package/src/sap/ui/core/messagebundle_pl.properties +8 -0
  334. package/src/sap/ui/core/messagebundle_pt.properties +8 -0
  335. package/src/sap/ui/core/messagebundle_pt_PT.properties +8 -0
  336. package/src/sap/ui/core/messagebundle_ro.properties +10 -2
  337. package/src/sap/ui/core/messagebundle_ru.properties +8 -0
  338. package/src/sap/ui/core/messagebundle_sh.properties +8 -0
  339. package/src/sap/ui/core/messagebundle_sk.properties +8 -0
  340. package/src/sap/ui/core/messagebundle_sl.properties +10 -2
  341. package/src/sap/ui/core/messagebundle_sr.properties +8 -0
  342. package/src/sap/ui/core/messagebundle_sv.properties +8 -0
  343. package/src/sap/ui/core/messagebundle_th.properties +9 -1
  344. package/src/sap/ui/core/messagebundle_tr.properties +8 -0
  345. package/src/sap/ui/core/messagebundle_uk.properties +8 -0
  346. package/src/sap/ui/core/messagebundle_vi.properties +10 -2
  347. package/src/sap/ui/core/messagebundle_zh_CN.properties +8 -0
  348. package/src/sap/ui/core/messagebundle_zh_TW.properties +8 -0
  349. package/src/sap/ui/core/mvc/Controller.js +28 -100
  350. package/src/sap/ui/core/mvc/ControllerExtension.js +1 -1
  351. package/src/sap/ui/core/mvc/ControllerExtensionProvider.js +79 -5
  352. package/src/sap/ui/core/mvc/ControllerMetadata.js +1 -6
  353. package/src/sap/ui/core/mvc/EventHandlerResolver.js +1 -1
  354. package/src/sap/ui/core/mvc/HTMLView.js +2 -2
  355. package/src/sap/ui/core/mvc/HTMLViewRenderer.js +1 -1
  356. package/src/sap/ui/core/mvc/JSONView.js +2 -2
  357. package/src/sap/ui/core/mvc/JSONViewRenderer.js +1 -1
  358. package/src/sap/ui/core/mvc/JSView.js +2 -2
  359. package/src/sap/ui/core/mvc/JSViewRenderer.js +1 -1
  360. package/src/sap/ui/core/mvc/OverrideExecution.js +1 -1
  361. package/src/sap/ui/core/mvc/TemplateView.js +2 -2
  362. package/src/sap/ui/core/mvc/TemplateViewRenderer.js +1 -1
  363. package/src/sap/ui/core/mvc/View.js +44 -19
  364. package/src/sap/ui/core/mvc/ViewRenderer.js +1 -1
  365. package/src/sap/ui/core/mvc/ViewType.js +1 -1
  366. package/src/sap/ui/core/mvc/XMLProcessingMode.js +1 -1
  367. package/src/sap/ui/core/mvc/XMLView.js +21 -2
  368. package/src/sap/ui/core/mvc/XMLViewRenderer.js +1 -1
  369. package/src/sap/ui/core/plugin/DeclarativeSupport.js +2 -2
  370. package/src/sap/ui/core/plugin/LessSupport.js +2 -2
  371. package/src/sap/ui/core/plugin/TemplatingSupport.js +2 -2
  372. package/src/sap/ui/core/postmessage/Bus.js +2 -2
  373. package/src/sap/ui/core/postmessage/confirmationDialog.js +2 -2
  374. package/src/sap/ui/core/routing/HashChanger.js +1 -1
  375. package/src/sap/ui/core/routing/HashChangerBase.js +1 -1
  376. package/src/sap/ui/core/routing/History.js +1 -1
  377. package/src/sap/ui/core/routing/Route.js +1 -1
  378. package/src/sap/ui/core/routing/Router.js +3 -1
  379. package/src/sap/ui/core/routing/RouterHashChanger.js +1 -1
  380. package/src/sap/ui/core/routing/Target.js +1 -1
  381. package/src/sap/ui/core/routing/TargetCache.js +1 -1
  382. package/src/sap/ui/core/routing/Targets.js +25 -1
  383. package/src/sap/ui/core/routing/Views.js +1 -1
  384. package/src/sap/ui/core/routing/async/Route.js +1 -1
  385. package/src/sap/ui/core/routing/async/Target.js +1 -1
  386. package/src/sap/ui/core/routing/async/TargetCache.js +1 -1
  387. package/src/sap/ui/core/routing/async/Targets.js +1 -1
  388. package/src/sap/ui/core/routing/sync/Route.js +1 -1
  389. package/src/sap/ui/core/routing/sync/Target.js +1 -1
  390. package/src/sap/ui/core/routing/sync/TargetCache.js +1 -1
  391. package/src/sap/ui/core/routing/sync/Targets.js +1 -1
  392. package/src/sap/ui/core/rules/App.support.js +1 -1
  393. package/src/sap/ui/core/rules/Config.support.js +1 -1
  394. package/src/sap/ui/core/rules/CoreHelper.support.js +1 -1
  395. package/src/sap/ui/core/rules/Misc.support.js +1 -1
  396. package/src/sap/ui/core/rules/Model.support.js +1 -1
  397. package/src/sap/ui/core/rules/Rendering.support.js +1 -1
  398. package/src/sap/ui/core/rules/Theming.support.js +1 -1
  399. package/src/sap/ui/core/rules/View.support.js +1 -1
  400. package/src/sap/ui/core/search/OpenSearchProvider.js +2 -2
  401. package/src/sap/ui/core/search/SearchProvider.js +2 -2
  402. package/src/sap/ui/core/service/Service.js +2 -2
  403. package/src/sap/ui/core/service/ServiceFactory.js +2 -2
  404. package/src/sap/ui/core/service/ServiceFactoryRegistry.js +2 -2
  405. package/src/sap/ui/core/support/BootSupportTool.js +1 -1
  406. package/src/sap/ui/core/support/Hotkeys.js +1 -1
  407. package/src/sap/ui/core/support/Plugin.js +2 -2
  408. package/src/sap/ui/core/support/RuleEngineOpaExtension.js +1 -1
  409. package/src/sap/ui/core/support/Support.js +2 -2
  410. package/src/sap/ui/core/support/ToolsAPI.js +1 -1
  411. package/src/sap/ui/core/support/bootstrapFallback.js +1 -1
  412. package/src/sap/ui/core/support/controls/InteractionSlider.js +1 -1
  413. package/src/sap/ui/core/support/controls/InteractionTree.js +1 -1
  414. package/src/sap/ui/core/support/controls/ObjectViewer.js +1 -1
  415. package/src/sap/ui/core/support/controls/TimelineOverview.js +1 -1
  416. package/src/sap/ui/core/support/controls/TreeViewer.js +1 -1
  417. package/src/sap/ui/core/support/debugReboot.js +1 -1
  418. package/src/sap/ui/core/support/plugins/Breakpoint.js +1 -1
  419. package/src/sap/ui/core/support/plugins/ControlTree.js +2 -2
  420. package/src/sap/ui/core/support/plugins/Debugging.js +1 -1
  421. package/src/sap/ui/core/support/plugins/Interaction.js +2 -2
  422. package/src/sap/ui/core/support/plugins/LocalStorage.js +2 -2
  423. package/src/sap/ui/core/support/plugins/Performance.js +2 -2
  424. package/src/sap/ui/core/support/plugins/Selector.js +2 -2
  425. package/src/sap/ui/core/support/plugins/TechInfo.js +2 -2
  426. package/src/sap/ui/core/support/plugins/Trace.js +2 -2
  427. package/src/sap/ui/core/support/plugins/ViewInfo.js +2 -2
  428. package/src/sap/ui/core/support/techinfo/TechnicalInfo.js +1 -1
  429. package/src/sap/ui/core/support/techinfo/moduleTreeHelper.js +13 -1
  430. package/src/sap/ui/core/support/trace/E2eTraceLib.js +1 -1
  431. package/src/sap/ui/core/support/trace/EppLib.js +1 -1
  432. package/src/sap/ui/core/support/usage/EventBroadcaster.js +6 -6
  433. package/src/sap/ui/core/syncStyleClass.js +1 -1
  434. package/src/sap/ui/core/themes/base/base.less +399 -24
  435. package/src/sap/ui/core/themes/base/global.less +7 -0
  436. package/src/sap/ui/core/themes/base/icons/favicon.ico +0 -0
  437. package/src/sap/ui/core/themes/base/library.source.less +1 -1
  438. package/src/sap/ui/core/themes/base/skeleton.less +12 -6
  439. package/src/sap/ui/core/themes/sap_hcb/.theming +2 -1
  440. package/src/sap/ui/core/themes/sap_hcb/library.source.less +1 -1
  441. package/src/sap/ui/core/theming/Parameters.js +1 -1
  442. package/src/sap/ui/core/theming/ThemeHelper.js +37 -27
  443. package/src/sap/ui/core/theming/ThemeManager.js +8 -3
  444. package/src/sap/ui/core/tmpl/DOMAttribute.js +2 -2
  445. package/src/sap/ui/core/tmpl/DOMElement.js +2 -2
  446. package/src/sap/ui/core/tmpl/DOMElementRenderer.js +1 -1
  447. package/src/sap/ui/core/tmpl/HandlebarsTemplate.js +2 -2
  448. package/src/sap/ui/core/tmpl/Template.js +2 -2
  449. package/src/sap/ui/core/tmpl/TemplateControl.js +2 -2
  450. package/src/sap/ui/core/tmpl/TemplateControlRenderer.js +1 -1
  451. package/src/sap/ui/core/tmpl/_parsePath.js +1 -1
  452. package/src/sap/ui/core/util/AsyncHintsHelper.js +2 -2
  453. package/src/sap/ui/core/util/DraftEnabledMockServer.js +1 -1
  454. package/src/sap/ui/core/util/Export.js +2 -2
  455. package/src/sap/ui/core/util/ExportCell.js +2 -2
  456. package/src/sap/ui/core/util/ExportColumn.js +2 -2
  457. package/src/sap/ui/core/util/ExportRow.js +2 -2
  458. package/src/sap/ui/core/util/ExportType.js +2 -2
  459. package/src/sap/ui/core/util/ExportTypeCSV.js +2 -2
  460. package/src/sap/ui/core/util/File.js +2 -2
  461. package/src/sap/ui/core/util/LibraryInfo.js +2 -2
  462. package/src/sap/ui/core/util/MockServer.js +2 -2
  463. package/src/sap/ui/core/util/PasteHelper.js +2 -2
  464. package/src/sap/ui/core/util/ResponsivePaddingsEnablement.js +1 -1
  465. package/src/sap/ui/core/util/ShortcutHelper.js +1 -1
  466. package/src/sap/ui/core/util/XMLPreprocessor.js +1 -1
  467. package/src/sap/ui/core/util/_LocalizationHelper.js +1 -1
  468. package/src/sap/ui/core/util/reflection/BaseTreeModifier.js +1 -1
  469. package/src/sap/ui/core/util/reflection/JsControlTreeModifier.js +1 -1
  470. package/src/sap/ui/core/util/reflection/XmlTreeModifier.js +1 -1
  471. package/src/sap/ui/core/util/serializer/HTMLViewSerializer.js +2 -2
  472. package/src/sap/ui/core/util/serializer/Serializer.js +2 -2
  473. package/src/sap/ui/core/util/serializer/ViewSerializer.js +2 -2
  474. package/src/sap/ui/core/util/serializer/XMLViewSerializer.js +2 -2
  475. package/src/sap/ui/core/util/serializer/delegate/Delegate.js +2 -2
  476. package/src/sap/ui/core/util/serializer/delegate/HTML.js +2 -2
  477. package/src/sap/ui/core/util/serializer/delegate/XML.js +2 -2
  478. package/src/sap/ui/core/webc/WebComponent.js +2 -2
  479. package/src/sap/ui/core/webc/WebComponentMetadata.js +2 -2
  480. package/src/sap/ui/core/webc/WebComponentRenderer.js +1 -1
  481. package/src/sap/ui/core/ws/ReadyState.js +2 -2
  482. package/src/sap/ui/core/ws/SapPcpWebSocket.js +2 -2
  483. package/src/sap/ui/core/ws/WebSocket.js +2 -2
  484. package/src/sap/ui/debug/ControlTree.js +2 -2
  485. package/src/sap/ui/debug/DebugEnv.js +2 -2
  486. package/src/sap/ui/debug/Highlighter.js +1 -1
  487. package/src/sap/ui/debug/LogViewer.js +1 -1
  488. package/src/sap/ui/debug/PropertyList.js +2 -2
  489. package/src/sap/ui/dom/_ready.js +1 -1
  490. package/src/sap/ui/dom/containsOrEquals.js +1 -1
  491. package/src/sap/ui/dom/denormalizeScrollBeginRTL.js +1 -1
  492. package/src/sap/ui/dom/denormalizeScrollLeftRTL.js +1 -1
  493. package/src/sap/ui/dom/findTabbable.js +1 -1
  494. package/src/sap/ui/dom/getComputedStyleFix.js +1 -1
  495. package/src/sap/ui/dom/getFirstEditableInput.js +1 -1
  496. package/src/sap/ui/dom/getOwnerWindow.js +1 -1
  497. package/src/sap/ui/dom/getScrollbarSize.js +1 -1
  498. package/src/sap/ui/dom/includeScript.js +1 -1
  499. package/src/sap/ui/dom/includeStylesheet.js +1 -1
  500. package/src/sap/ui/dom/isBehindOtherElement.js +1 -1
  501. package/src/sap/ui/dom/isElementCovered.js +1 -1
  502. package/src/sap/ui/dom/isHidden.js +1 -1
  503. package/src/sap/ui/dom/jquery/Aria.js +1 -1
  504. package/src/sap/ui/dom/jquery/Focusable.js +1 -1
  505. package/src/sap/ui/dom/jquery/Selection.js +1 -1
  506. package/src/sap/ui/dom/jquery/Selectors.js +1 -1
  507. package/src/sap/ui/dom/jquery/control.js +1 -1
  508. package/src/sap/ui/dom/jquery/cursorPos.js +1 -1
  509. package/src/sap/ui/dom/jquery/getSelectedText.js +1 -1
  510. package/src/sap/ui/dom/jquery/hasTabIndex.js +1 -1
  511. package/src/sap/ui/dom/jquery/parentByAttribute.js +1 -1
  512. package/src/sap/ui/dom/jquery/rect.js +1 -1
  513. package/src/sap/ui/dom/jquery/rectContains.js +1 -1
  514. package/src/sap/ui/dom/jquery/scrollLeftRTL.js +1 -1
  515. package/src/sap/ui/dom/jquery/scrollRightRTL.js +1 -1
  516. package/src/sap/ui/dom/jquery/selectText.js +1 -1
  517. package/src/sap/ui/dom/jquery/zIndex.js +1 -1
  518. package/src/sap/ui/dom/units/Rem.js +1 -1
  519. package/src/sap/ui/events/ControlEvents.js +1 -1
  520. package/src/sap/ui/events/F6Navigation.js +1 -1
  521. package/src/sap/ui/events/KeyCodes.js +1 -1
  522. package/src/sap/ui/events/PasteEventFix.js +1 -1
  523. package/src/sap/ui/events/PseudoEvents.js +1 -1
  524. package/src/sap/ui/events/TouchToMouseMapping.js +1 -1
  525. package/src/sap/ui/events/checkMouseEnterOrLeave.js +1 -1
  526. package/src/sap/ui/events/isMouseEventDelayed.js +1 -1
  527. package/src/sap/ui/events/isSpecialKey.js +1 -1
  528. package/src/sap/ui/events/jquery/EventExtension.js +1 -1
  529. package/src/sap/ui/events/jquery/EventSimulation.js +1 -1
  530. package/src/sap/ui/events/jquery/EventTriggerHook.js +1 -1
  531. package/src/sap/ui/model/Binding.js +1 -1
  532. package/src/sap/ui/model/BindingMode.js +1 -1
  533. package/src/sap/ui/model/ChangeReason.js +1 -1
  534. package/src/sap/ui/model/ClientContextBinding.js +1 -1
  535. package/src/sap/ui/model/ClientListBinding.js +1 -1
  536. package/src/sap/ui/model/ClientModel.js +2 -2
  537. package/src/sap/ui/model/ClientPropertyBinding.js +1 -1
  538. package/src/sap/ui/model/ClientTreeBinding.js +1 -1
  539. package/src/sap/ui/model/ClientTreeBindingAdapter.js +1 -1
  540. package/src/sap/ui/model/CompositeBinding.js +1 -1
  541. package/src/sap/ui/model/CompositeDataState.js +2 -2
  542. package/src/sap/ui/model/CompositeType.js +2 -2
  543. package/src/sap/ui/model/Context.js +1 -1
  544. package/src/sap/ui/model/ContextBinding.js +1 -1
  545. package/src/sap/ui/model/DataState.js +2 -2
  546. package/src/sap/ui/model/Filter.js +1 -1
  547. package/src/sap/ui/model/FilterOperator.js +1 -1
  548. package/src/sap/ui/model/FilterProcessor.js +1 -1
  549. package/src/sap/ui/model/FilterType.js +1 -1
  550. package/src/sap/ui/model/FormatException.js +1 -1
  551. package/src/sap/ui/model/ListBinding.js +1 -1
  552. package/src/sap/ui/model/ManagedObjectBindingSupport.js +1 -1
  553. package/src/sap/ui/model/MetaModel.js +2 -2
  554. package/src/sap/ui/model/Model.js +2 -2
  555. package/src/sap/ui/model/ParseException.js +1 -1
  556. package/src/sap/ui/model/PropertyBinding.js +1 -1
  557. package/src/sap/ui/model/SelectionModel.js +2 -2
  558. package/src/sap/ui/model/SimpleType.js +2 -2
  559. package/src/sap/ui/model/Sorter.js +1 -1
  560. package/src/sap/ui/model/SorterProcessor.js +1 -1
  561. package/src/sap/ui/model/StaticBinding.js +1 -1
  562. package/src/sap/ui/model/TreeAutoExpandMode.js +2 -2
  563. package/src/sap/ui/model/TreeBinding.js +1 -1
  564. package/src/sap/ui/model/TreeBindingAdapter.js +1 -1
  565. package/src/sap/ui/model/TreeBindingCompatibilityAdapter.js +1 -1
  566. package/src/sap/ui/model/TreeBindingUtils.js +1 -1
  567. package/src/sap/ui/model/Type.js +2 -2
  568. package/src/sap/ui/model/ValidateException.js +1 -1
  569. package/src/sap/ui/model/_Helper.js +1 -1
  570. package/src/sap/ui/model/analytics/AnalyticalBinding.js +1 -1
  571. package/src/sap/ui/model/analytics/AnalyticalTreeBindingAdapter.js +1 -1
  572. package/src/sap/ui/model/analytics/AnalyticalVersionInfo.js +1 -1
  573. package/src/sap/ui/model/analytics/BatchResponseCollector.js +1 -1
  574. package/src/sap/ui/model/analytics/ODataModelAdapter.js +1 -1
  575. package/src/sap/ui/model/analytics/odata4analytics.js +1 -1
  576. package/src/sap/ui/model/base/ManagedObjectModel.js +1 -1
  577. package/src/sap/ui/model/controlhelper/TreeBindingProxy.js +1 -1
  578. package/src/sap/ui/model/json/JSONListBinding.js +1 -1
  579. package/src/sap/ui/model/json/JSONModel.js +2 -2
  580. package/src/sap/ui/model/json/JSONPropertyBinding.js +1 -1
  581. package/src/sap/ui/model/json/JSONTreeBinding.js +1 -1
  582. package/src/sap/ui/model/message/MessageListBinding.js +1 -1
  583. package/src/sap/ui/model/message/MessageModel.js +2 -2
  584. package/src/sap/ui/model/message/MessagePropertyBinding.js +1 -1
  585. package/src/sap/ui/model/odata/AnnotationHelper.js +1 -1
  586. package/src/sap/ui/model/odata/AnnotationParser.js +1 -1
  587. package/src/sap/ui/model/odata/CountMode.js +1 -1
  588. package/src/sap/ui/model/odata/Filter.js +1 -1
  589. package/src/sap/ui/model/odata/MessageScope.js +1 -1
  590. package/src/sap/ui/model/odata/ODataAnnotations.js +2 -2
  591. package/src/sap/ui/model/odata/ODataContextBinding.js +1 -1
  592. package/src/sap/ui/model/odata/ODataExpressionAddons.js +1 -1
  593. package/src/sap/ui/model/odata/ODataListBinding.js +1 -1
  594. package/src/sap/ui/model/odata/ODataMessageParser.js +2 -2
  595. package/src/sap/ui/model/odata/ODataMetaModel.js +2 -2
  596. package/src/sap/ui/model/odata/ODataMetadata.js +6 -3
  597. package/src/sap/ui/model/odata/ODataModel.js +2 -2
  598. package/src/sap/ui/model/odata/ODataPropertyBinding.js +1 -1
  599. package/src/sap/ui/model/odata/ODataTreeBinding.js +1 -1
  600. package/src/sap/ui/model/odata/ODataTreeBindingAdapter.js +1 -1
  601. package/src/sap/ui/model/odata/ODataTreeBindingFlat.js +1 -1
  602. package/src/sap/ui/model/odata/ODataUtils.js +1 -1
  603. package/src/sap/ui/model/odata/OperationMode.js +1 -1
  604. package/src/sap/ui/model/odata/UpdateMethod.js +1 -1
  605. package/src/sap/ui/model/odata/_AnnotationHelperBasics.js +1 -1
  606. package/src/sap/ui/model/odata/_AnnotationHelperExpression.js +1 -1
  607. package/src/sap/ui/model/odata/_ODataMetaModelUtils.js +1 -1
  608. package/src/sap/ui/model/odata/type/Boolean.js +2 -2
  609. package/src/sap/ui/model/odata/type/Byte.js +2 -2
  610. package/src/sap/ui/model/odata/type/Currency.js +2 -2
  611. package/src/sap/ui/model/odata/type/Date.js +2 -2
  612. package/src/sap/ui/model/odata/type/DateTime.js +2 -2
  613. package/src/sap/ui/model/odata/type/DateTimeBase.js +2 -2
  614. package/src/sap/ui/model/odata/type/DateTimeOffset.js +2 -2
  615. package/src/sap/ui/model/odata/type/DateTimeWithTimezone.js +2 -2
  616. package/src/sap/ui/model/odata/type/Decimal.js +2 -2
  617. package/src/sap/ui/model/odata/type/Double.js +2 -2
  618. package/src/sap/ui/model/odata/type/Guid.js +2 -2
  619. package/src/sap/ui/model/odata/type/Int.js +2 -2
  620. package/src/sap/ui/model/odata/type/Int16.js +2 -2
  621. package/src/sap/ui/model/odata/type/Int32.js +2 -2
  622. package/src/sap/ui/model/odata/type/Int64.js +2 -2
  623. package/src/sap/ui/model/odata/type/ODataType.js +2 -2
  624. package/src/sap/ui/model/odata/type/Raw.js +2 -2
  625. package/src/sap/ui/model/odata/type/SByte.js +2 -2
  626. package/src/sap/ui/model/odata/type/Single.js +2 -2
  627. package/src/sap/ui/model/odata/type/Stream.js +2 -2
  628. package/src/sap/ui/model/odata/type/String.js +2 -2
  629. package/src/sap/ui/model/odata/type/Time.js +2 -2
  630. package/src/sap/ui/model/odata/type/TimeOfDay.js +2 -2
  631. package/src/sap/ui/model/odata/type/Unit.js +2 -2
  632. package/src/sap/ui/model/odata/type/UnitMixin.js +1 -1
  633. package/src/sap/ui/model/odata/v2/BatchMode.js +1 -1
  634. package/src/sap/ui/model/odata/v2/Context.js +2 -2
  635. package/src/sap/ui/model/odata/v2/ODataAnnotations.js +2 -2
  636. package/src/sap/ui/model/odata/v2/ODataContextBinding.js +1 -1
  637. package/src/sap/ui/model/odata/v2/ODataListBinding.js +1 -1
  638. package/src/sap/ui/model/odata/v2/ODataModel.js +50 -41
  639. package/src/sap/ui/model/odata/v2/ODataTreeBinding.js +2 -2
  640. package/src/sap/ui/model/odata/v2/_CreatedContextsCache.js +1 -1
  641. package/src/sap/ui/model/odata/v4/AnnotationHelper.js +1 -1
  642. package/src/sap/ui/model/odata/v4/Context.js +94 -36
  643. package/src/sap/ui/model/odata/v4/ODataBinding.js +16 -10
  644. package/src/sap/ui/model/odata/v4/ODataContextBinding.js +5 -5
  645. package/src/sap/ui/model/odata/v4/ODataListBinding.js +157 -23
  646. package/src/sap/ui/model/odata/v4/ODataMetaModel.js +64 -5
  647. package/src/sap/ui/model/odata/v4/ODataModel.js +15 -3
  648. package/src/sap/ui/model/odata/v4/ODataParentBinding.js +6 -3
  649. package/src/sap/ui/model/odata/v4/ODataPropertyBinding.js +4 -3
  650. package/src/sap/ui/model/odata/v4/ODataUtils.js +1 -1
  651. package/src/sap/ui/model/odata/v4/SubmitMode.js +1 -1
  652. package/src/sap/ui/model/odata/v4/ValueListType.js +1 -1
  653. package/src/sap/ui/model/odata/v4/_AnnotationHelperExpression.js +1 -1
  654. package/src/sap/ui/model/odata/v4/lib/_AggregationCache.js +88 -11
  655. package/src/sap/ui/model/odata/v4/lib/_AggregationHelper.js +1 -1
  656. package/src/sap/ui/model/odata/v4/lib/_Batch.js +6 -2
  657. package/src/sap/ui/model/odata/v4/lib/_Cache.js +37 -12
  658. package/src/sap/ui/model/odata/v4/lib/_ConcatHelper.js +1 -1
  659. package/src/sap/ui/model/odata/v4/lib/_GroupLock.js +1 -1
  660. package/src/sap/ui/model/odata/v4/lib/_Helper.js +34 -18
  661. package/src/sap/ui/model/odata/v4/lib/_MetadataConverter.js +1 -1
  662. package/src/sap/ui/model/odata/v4/lib/_MetadataRequestor.js +1 -1
  663. package/src/sap/ui/model/odata/v4/lib/_MinMaxHelper.js +1 -1
  664. package/src/sap/ui/model/odata/v4/lib/_Parser.js +1 -1
  665. package/src/sap/ui/model/odata/v4/lib/_Requestor.js +1 -1
  666. package/src/sap/ui/model/odata/v4/lib/_TreeState.js +1 -1
  667. package/src/sap/ui/model/odata/v4/lib/_V2MetadataConverter.js +1 -1
  668. package/src/sap/ui/model/odata/v4/lib/_V2Requestor.js +1 -1
  669. package/src/sap/ui/model/odata/v4/lib/_V4MetadataConverter.js +1 -1
  670. package/src/sap/ui/model/odata/v4/ts.js +1 -1
  671. package/src/sap/ui/model/resource/ResourceModel.js +2 -2
  672. package/src/sap/ui/model/resource/ResourcePropertyBinding.js +1 -1
  673. package/src/sap/ui/model/type/Boolean.js +2 -2
  674. package/src/sap/ui/model/type/Currency.js +2 -2
  675. package/src/sap/ui/model/type/Date.js +2 -2
  676. package/src/sap/ui/model/type/DateInterval.js +2 -2
  677. package/src/sap/ui/model/type/DateTime.js +2 -2
  678. package/src/sap/ui/model/type/DateTimeInterval.js +2 -2
  679. package/src/sap/ui/model/type/FileSize.js +2 -2
  680. package/src/sap/ui/model/type/Float.js +2 -2
  681. package/src/sap/ui/model/type/Integer.js +2 -2
  682. package/src/sap/ui/model/type/String.js +2 -2
  683. package/src/sap/ui/model/type/Time.js +2 -2
  684. package/src/sap/ui/model/type/TimeInterval.js +2 -2
  685. package/src/sap/ui/model/type/Unit.js +2 -2
  686. package/src/sap/ui/model/xml/XMLListBinding.js +1 -1
  687. package/src/sap/ui/model/xml/XMLModel.js +2 -2
  688. package/src/sap/ui/model/xml/XMLPropertyBinding.js +1 -1
  689. package/src/sap/ui/model/xml/XMLTreeBinding.js +1 -1
  690. package/src/sap/ui/performance/BeaconRequest.js +1 -1
  691. package/src/sap/ui/performance/Measurement.js +1 -1
  692. package/src/sap/ui/performance/XHRInterceptor.js +1 -1
  693. package/src/sap/ui/performance/trace/FESR.js +1 -1
  694. package/src/sap/ui/performance/trace/FESRHelper.js +1 -1
  695. package/src/sap/ui/performance/trace/Interaction.js +1 -1
  696. package/src/sap/ui/performance/trace/Passport.js +1 -1
  697. package/src/sap/ui/performance/trace/_InteractionImpl.js +1 -1
  698. package/src/sap/ui/performance/trace/initTraces.js +1 -1
  699. package/src/sap/ui/qunit/QUnitUtils.js +1 -1
  700. package/src/sap/ui/qunit/qunit-2-css.js +1 -1
  701. package/src/sap/ui/qunit/qunit-coverage-istanbul.js +1 -1
  702. package/src/sap/ui/qunit/qunit-coverage.js +1 -1
  703. package/src/sap/ui/qunit/qunit-css.js +1 -1
  704. package/src/sap/ui/qunit/qunit-junit.js +1 -1
  705. package/src/sap/ui/qunit/qunit-redirect.js +1 -1
  706. package/src/sap/ui/qunit/sinon-qunit-bridge.js +1 -1
  707. package/src/sap/ui/qunit/utils/ControlIterator.js +2 -2
  708. package/src/sap/ui/qunit/utils/MemoryLeakCheck.js +2 -2
  709. package/src/sap/ui/qunit/utils/createAndAppendDiv.js +1 -1
  710. package/src/sap/ui/qunit/utils/nextUIUpdate.js +1 -1
  711. package/src/sap/ui/qunit/utils/waitForThemeApplied.js +1 -1
  712. package/src/sap/ui/security/FrameOptions.js +1 -1
  713. package/src/sap/ui/test/BlanketReporter.js +1 -1
  714. package/src/sap/ui/test/BranchTracking.js +1 -1
  715. package/src/sap/ui/test/ModuleTracking.js +1 -1
  716. package/src/sap/ui/test/Opa.js +1 -1
  717. package/src/sap/ui/test/Opa5.js +1 -1
  718. package/src/sap/ui/test/OpaBuilder.js +1 -1
  719. package/src/sap/ui/test/OpaExtension.js +1 -1
  720. package/src/sap/ui/test/OpaPlugin.js +1 -1
  721. package/src/sap/ui/test/PageObjectFactory.js +1 -1
  722. package/src/sap/ui/test/RecordReplay.js +1 -1
  723. package/src/sap/ui/test/RecorderHotkeyListener.js +1 -1
  724. package/src/sap/ui/test/TestUtils.js +2 -2
  725. package/src/sap/ui/test/_BrowserLogCollector.js +1 -1
  726. package/src/sap/ui/test/_ControlFinder.js +1 -1
  727. package/src/sap/ui/test/_FocusListener.js +1 -1
  728. package/src/sap/ui/test/_LogCollector.js +1 -1
  729. package/src/sap/ui/test/_OpaLogger.js +1 -1
  730. package/src/sap/ui/test/_OpaUriParameterParser.js +1 -1
  731. package/src/sap/ui/test/_ParameterValidator.js +1 -1
  732. package/src/sap/ui/test/_UsageReport.js +1 -1
  733. package/src/sap/ui/test/_ValidationParameters.js +1 -1
  734. package/src/sap/ui/test/actions/Action.js +1 -1
  735. package/src/sap/ui/test/actions/Drag.js +1 -1
  736. package/src/sap/ui/test/actions/Drop.js +1 -1
  737. package/src/sap/ui/test/actions/EnterText.js +1 -1
  738. package/src/sap/ui/test/actions/Press.js +1 -1
  739. package/src/sap/ui/test/actions/Scroll.js +1 -1
  740. package/src/sap/ui/test/autowaiter/WaiterBase.js +1 -1
  741. package/src/sap/ui/test/autowaiter/_UIUpdatesWaiter.js +1 -1
  742. package/src/sap/ui/test/autowaiter/_XHRWaiter.js +1 -1
  743. package/src/sap/ui/test/autowaiter/_autoWaiter.js +1 -1
  744. package/src/sap/ui/test/autowaiter/_autoWaiterAsync.js +1 -1
  745. package/src/sap/ui/test/autowaiter/_cssAnimationWaiter.js +1 -1
  746. package/src/sap/ui/test/autowaiter/_cssTransitionWaiter.js +1 -1
  747. package/src/sap/ui/test/autowaiter/_fetchWaiter.js +1 -1
  748. package/src/sap/ui/test/autowaiter/_jsAnimationWaiter.js +1 -1
  749. package/src/sap/ui/test/autowaiter/_moduleWaiter.js +1 -1
  750. package/src/sap/ui/test/autowaiter/_navigationContainerWaiter.js +1 -1
  751. package/src/sap/ui/test/autowaiter/_promiseWaiter.js +1 -1
  752. package/src/sap/ui/test/autowaiter/_resourceWaiter.js +1 -1
  753. package/src/sap/ui/test/autowaiter/_timeoutWaiter.js +1 -1
  754. package/src/sap/ui/test/autowaiter/_utils.js +1 -1
  755. package/src/sap/ui/test/generic/GenericTestCollection.js +1 -1
  756. package/src/sap/ui/test/generic/TestBase.js +2 -2
  757. package/src/sap/ui/test/generic/Utils.js +1 -1
  758. package/src/sap/ui/test/generic/_EnforceSemanticRendering.js +1 -1
  759. package/src/sap/ui/test/gherkin/GherkinTestGenerator.js +1 -1
  760. package/src/sap/ui/test/gherkin/StepDefinitions.js +1 -1
  761. package/src/sap/ui/test/gherkin/dataTableUtils.js +1 -1
  762. package/src/sap/ui/test/gherkin/opa5TestHarness.js +1 -1
  763. package/src/sap/ui/test/gherkin/qUnitTestHarness.js +1 -1
  764. package/src/sap/ui/test/gherkin/simpleGherkinParser.js +1 -1
  765. package/src/sap/ui/test/launchers/componentLauncher.js +1 -1
  766. package/src/sap/ui/test/launchers/iFrameLauncher.js +1 -1
  767. package/src/sap/ui/test/matchers/AggregationContainsPropertyEqual.js +1 -1
  768. package/src/sap/ui/test/matchers/AggregationEmpty.js +1 -1
  769. package/src/sap/ui/test/matchers/AggregationFilled.js +1 -1
  770. package/src/sap/ui/test/matchers/AggregationLengthEquals.js +1 -1
  771. package/src/sap/ui/test/matchers/Ancestor.js +1 -1
  772. package/src/sap/ui/test/matchers/BindingPath.js +1 -1
  773. package/src/sap/ui/test/matchers/Descendant.js +1 -1
  774. package/src/sap/ui/test/matchers/I18NText.js +1 -1
  775. package/src/sap/ui/test/matchers/Interactable.js +1 -1
  776. package/src/sap/ui/test/matchers/LabelFor.js +1 -1
  777. package/src/sap/ui/test/matchers/Matcher.js +1 -1
  778. package/src/sap/ui/test/matchers/MatcherFactory.js +1 -1
  779. package/src/sap/ui/test/matchers/Properties.js +1 -1
  780. package/src/sap/ui/test/matchers/PropertyStrictEquals.js +1 -1
  781. package/src/sap/ui/test/matchers/Sibling.js +1 -1
  782. package/src/sap/ui/test/matchers/Visible.js +1 -1
  783. package/src/sap/ui/test/matchers/_Busy.js +1 -1
  784. package/src/sap/ui/test/matchers/_Editable.js +1 -1
  785. package/src/sap/ui/test/matchers/_Enabled.js +1 -1
  786. package/src/sap/ui/test/matchers/_Visitor.js +1 -1
  787. package/src/sap/ui/test/matchers/matchers.js +1 -1
  788. package/src/sap/ui/test/opaQunit.js +1 -1
  789. package/src/sap/ui/test/pipelines/ActionPipeline.js +1 -1
  790. package/src/sap/ui/test/pipelines/MatcherPipeline.js +1 -1
  791. package/src/sap/ui/test/pipelines/PipelineFactory.js +1 -1
  792. package/src/sap/ui/test/qunitPause.js +1 -1
  793. package/src/sap/ui/test/selectors/_BindingPath.js +1 -1
  794. package/src/sap/ui/test/selectors/_ControlSelectorGenerator.js +1 -1
  795. package/src/sap/ui/test/selectors/_ControlSelectorValidator.js +1 -1
  796. package/src/sap/ui/test/selectors/_ControlType.js +1 -1
  797. package/src/sap/ui/test/selectors/_DropdownItem.js +1 -1
  798. package/src/sap/ui/test/selectors/_GlobalID.js +1 -1
  799. package/src/sap/ui/test/selectors/_LabelFor.js +1 -1
  800. package/src/sap/ui/test/selectors/_Properties.js +1 -1
  801. package/src/sap/ui/test/selectors/_Selector.js +1 -1
  802. package/src/sap/ui/test/selectors/_TableRowItem.js +1 -1
  803. package/src/sap/ui/test/selectors/_ViewID.js +1 -1
  804. package/src/sap/ui/test/selectors/_selectors.js +1 -1
  805. package/src/sap/ui/test/starter/_configureLoader.js +1 -1
  806. package/src/sap/ui/test/starter/_setupAndStart.js +1 -1
  807. package/src/sap/ui/test/starter/_utils.js +2 -3
  808. package/src/sap/ui/test/starter/createSuite.js +1 -1
  809. package/src/sap/ui/test/starter/runTest.js +1 -1
  810. package/src/sap/ui/test/utils/nextUIUpdate.js +1 -1
  811. package/src/sap/ui/test/utils/waitForThemeApplied.js +1 -1
  812. package/src/sap/ui/thirdparty/RequestRecorder.js +1 -1
  813. package/src/sap/ui/thirdparty/caja-html-sanitizer.js +1 -1
  814. package/src/sap/ui/util/ActivityDetection.js +1 -1
  815. package/src/sap/ui/util/Mobile.js +1 -1
  816. package/src/sap/ui/util/Storage.js +2 -2
  817. package/src/sap/ui/util/XMLHelper.js +1 -1
  818. package/src/sap/ui/util/_FeatureDetection.js +1 -1
  819. package/src/sap/ui/util/_enforceNoReturnValue.js +1 -1
  820. package/src/sap/ui/util/defaultLinkTypes.js +1 -1
  821. package/src/sap/ui/util/isCrossOriginURL.js +1 -1
  822. package/src/sap/ui/util/openWindow.js +1 -1
  823. package/src/sap-ui-boot.js +1 -1
  824. package/src/sap-ui-core-nojQuery.js +1 -1
  825. package/src/sap-ui-core.js +1 -1
  826. package/src/sap-ui-debug.js +1 -1
  827. package/src/ui5loader-autoconfig.js +3 -1
  828. package/src/ui5loader.js +30 -8
  829. package/ui5.yaml +1 -1
  830. package/.reuse/dep5 +0 -471
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  * OpenUI5
3
- * (c) Copyright 2009-2025 SAP SE or an SAP affiliate company.
3
+ * (c) Copyright 2025 SAP SE or an SAP affiliate company.
4
4
  * Licensed under the Apache License, Version 2.0 - see LICENSE.txt.
5
5
  */
6
6
 
@@ -74,7 +74,7 @@ sap.ui.define([
74
74
  * @mixes sap.ui.model.odata.v4.ODataParentBinding
75
75
  * @public
76
76
  * @since 1.37.0
77
- * @version 1.134.0
77
+ * @version 1.136.0
78
78
  *
79
79
  * @borrows sap.ui.model.odata.v4.ODataBinding#getGroupId as #getGroupId
80
80
  * @borrows sap.ui.model.odata.v4.ODataBinding#getRootBinding as #getRootBinding
@@ -1133,7 +1133,7 @@ sap.ui.define([
1133
1133
  return undefined;
1134
1134
  }
1135
1135
  return sBindingParameterPath.split("/").map((sSegment, i) => {
1136
- return sSegment.slice(0, sSegment.lastIndexOf("("))
1136
+ return sSegment.slice(0, sSegment.indexOf("("))
1137
1137
  + (i ? sPredicate : sPartnerPredicate);
1138
1138
  }).join("/");
1139
1139
  };
@@ -1588,8 +1588,8 @@ sap.ui.define([
1588
1588
  that.mAggregatedQueryOptions = that.mLateQueryOptions;
1589
1589
  that.mLateQueryOptions = undefined;
1590
1590
  }
1591
- that.fetchCache(that.oContext, false, /*bKeepQueryOptions*/false,
1592
- bKeepCacheOnError ? sGroupId : undefined);
1591
+ that.fetchCache(that.oContext, false, /*bKeepQueryOptions*/false, sGroupId,
1592
+ bKeepCacheOnError);
1593
1593
  // Do not fire a change event, or else ManagedObject destroys and recreates the
1594
1594
  // binding hierarchy causing a flood of events.
1595
1595
  if (bHasChangeListeners) {
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  * OpenUI5
3
- * (c) Copyright 2009-2025 SAP SE or an SAP affiliate company.
3
+ * (c) Copyright 2025 SAP SE or an SAP affiliate company.
4
4
  * Licensed under the Apache License, Version 2.0 - see LICENSE.txt.
5
5
  */
6
6
 
@@ -59,7 +59,7 @@ sap.ui.define([
59
59
  * @mixes sap.ui.model.odata.v4.ODataParentBinding
60
60
  * @public
61
61
  * @since 1.37.0
62
- * @version 1.134.0
62
+ * @version 1.136.0
63
63
  * @borrows sap.ui.model.odata.v4.ODataBinding#getGroupId as #getGroupId
64
64
  * @borrows sap.ui.model.odata.v4.ODataBinding#getRootBinding as #getRootBinding
65
65
  * @borrows sap.ui.model.odata.v4.ODataBinding#getUpdateGroupId as #getUpdateGroupId
@@ -193,17 +193,24 @@ sap.ui.define([
193
193
  /**
194
194
  * Returns all currently existing contexts of this list binding in no special order.
195
195
  *
196
+ * @param {boolean} [bNoCreated]
197
+ * Whether to exclude created and out of place contexts
196
198
  * @returns {sap.ui.model.odata.v4.Context[]}
197
199
  * All currently existing contexts of this list binding, in no special order
198
200
  *
199
201
  * @private
200
202
  * @see #getAllCurrentContexts
201
203
  */
202
- ODataListBinding.prototype._getAllExistingContexts = function () {
203
- return (this.aContexts ?? []).filter(function (oContext) {
204
+ ODataListBinding.prototype._getAllExistingContexts = function (bNoCreated) {
205
+ let aContexts = this.aContexts ?? [];
206
+ if (bNoCreated) {
207
+ aContexts = aContexts.slice(this.iCreatedContexts);
208
+ }
209
+ return aContexts.filter(function (oContext) {
204
210
  return oContext;
205
211
  }).concat(Object.values(this.mPreviousContextsByPath).filter(function (oContext) {
206
- return oContext.isEffectivelyKeptAlive();
212
+ const bKeptAlive = oContext.isEffectivelyKeptAlive();
213
+ return bNoCreated ? bKeptAlive && !oContext.isOutOfPlace() : bKeptAlive;
207
214
  }));
208
215
  };
209
216
 
@@ -661,6 +668,34 @@ sap.ui.define([
661
668
  return ListBinding.prototype.attachEvent.apply(this, arguments);
662
669
  };
663
670
 
671
+ /**
672
+ * Attach event handler <code>fnFunction</code> to the 'selectionChanged' event of this binding.
673
+ *
674
+ * @param {function} fnFunction The function to call when the event occurs
675
+ * @param {object} [oListener] Object on which to call the given function
676
+ * @returns {this} <code>this</code> to allow method chaining
677
+ *
678
+ * @public
679
+ * @since 1.136.0
680
+ */
681
+ ODataListBinding.prototype.attachSelectionChanged = function (fnFunction, oListener) {
682
+ return this.attachEvent("selectionChanged", fnFunction, oListener);
683
+ };
684
+
685
+ /**
686
+ * Attach event handler <code>fnFunction</code> to the 'separateReceived' event of this binding.
687
+ *
688
+ * @param {function} fnFunction The function to call when the event occurs
689
+ * @param {object} [oListener] Object on which to call the given function
690
+ * @returns {this} <code>this</code> to allow method chaining
691
+ *
692
+ * @public
693
+ * @since 1.136.0
694
+ */
695
+ ODataListBinding.prototype.attachSeparateReceived = function (fnFunction, oListener) {
696
+ return this.attachEvent("separateReceived", fnFunction, oListener);
697
+ };
698
+
664
699
  /**
665
700
  * Checks that deep create is possible in this binding.
666
701
  *
@@ -1495,12 +1530,42 @@ sap.ui.define([
1495
1530
  return this.detachEvent("createSent", fnFunction, oListener);
1496
1531
  };
1497
1532
 
1533
+ /**
1534
+ * Detach event handler <code>fnFunction</code> from the 'selectionChanged' event of this
1535
+ * binding.
1536
+ *
1537
+ * @param {function} fnFunction The function to call when the event occurs
1538
+ * @param {object} [oListener] Object on which to call the given function
1539
+ * @returns {this} <code>this</code> to allow method chaining
1540
+ *
1541
+ * @public
1542
+ * @since 1.136.0
1543
+ */
1544
+ ODataListBinding.prototype.detachSelectionChanged = function (fnFunction, oListener) {
1545
+ return this.detachEvent("selectionChanged", fnFunction, oListener);
1546
+ };
1547
+
1548
+ /**
1549
+ * Detach event handler <code>fnFunction</code> from the 'separateReceived' event of this
1550
+ * binding.
1551
+ *
1552
+ * @param {function} fnFunction The function to call when the event occurs
1553
+ * @param {object} [oListener] Object on which to call the given function
1554
+ * @returns {this} <code>this</code> to allow method chaining
1555
+ *
1556
+ * @public
1557
+ * @since 1.136.0
1558
+ */
1559
+ ODataListBinding.prototype.detachSeparateReceived = function (fnFunction, oListener) {
1560
+ return this.detachEvent("separateReceived", fnFunction, oListener);
1561
+ };
1562
+
1498
1563
  /**
1499
1564
  * @override
1500
1565
  * @see sap.ui.model.odata.v4.ODataBinding#doCreateCache
1501
1566
  */
1502
1567
  ODataListBinding.prototype.doCreateCache = function (sResourcePath, mQueryOptions, oContext,
1503
- sDeepResourcePath, sGroupId, oOldCache) {
1568
+ sDeepResourcePath, sGroupId, bSideEffectsRefresh, oOldCache) {
1504
1569
  var oCache,
1505
1570
  aKeepAlivePredicates,
1506
1571
  mKeptElementsByPredicate,
@@ -1518,12 +1583,15 @@ sap.ui.define([
1518
1583
  && oOldCache instanceof _AggregationCache) {
1519
1584
  if (bResetViaSideEffects && this.mParameters.$$aggregation?.hierarchyQualifier) {
1520
1585
  sGroupId = this.getGroupId(); // reset via a side-effects refresh
1586
+ bSideEffectsRefresh = true;
1521
1587
  oOldCache.resetOutOfPlace();
1522
1588
  }
1523
1589
  // Note: #inheritQueryOptions as called below should not matter in case of own
1524
1590
  // requests, which are a precondition for kept-alive elements
1525
- oOldCache.reset(aKeepAlivePredicates, sGroupId, mQueryOptions,
1526
- this.mParameters.$$aggregation, this.isGrouped());
1591
+ oOldCache.reset(aKeepAlivePredicates, bSideEffectsRefresh ? sGroupId : undefined,
1592
+ mQueryOptions, this.mParameters.$$aggregation, this.isGrouped());
1593
+ // validate selection after the old cache is reset
1594
+ this.validateSelection(oOldCache, sGroupId);
1527
1595
 
1528
1596
  return oOldCache;
1529
1597
  }
@@ -2867,9 +2935,7 @@ sap.ui.define([
2867
2935
  * @since 1.91.0
2868
2936
  */
2869
2937
  ODataListBinding.prototype.getCount = function () {
2870
- var oHeaderContext = this.getHeaderContext();
2871
-
2872
- return oHeaderContext ? oHeaderContext.getProperty("$count") : undefined;
2938
+ return this.getHeaderContext()?.getProperty("$count");
2873
2939
  };
2874
2940
 
2875
2941
  /**
@@ -3306,6 +3372,25 @@ sap.ui.define([
3306
3372
  return this.mQueryOptions;
3307
3373
  };
3308
3374
 
3375
+ /**
3376
+ * Returns the count of selected elements as a number of type <code>Edm.Int64</code>. The count
3377
+ * is bindable via the header context (see {@link #getHeaderContext}) and path
3378
+ * <code>$selectionCount</code>; it is either available synchronously or unknown. It is unknown
3379
+ * if the binding is relative but has no context and also if the list binding's
3380
+ * {@link sap.ui.model.odata.v4.ODataListBinding#getHeaderContext header context} is selected
3381
+ * ("select all").
3382
+ *
3383
+ * @returns {number|undefined}
3384
+ * The count of selected elements or <code>undefined</code> if the count or the header
3385
+ * context is not available.
3386
+ *
3387
+ * @public
3388
+ * @since 1.135.0
3389
+ */
3390
+ ODataListBinding.prototype.getSelectionCount = function () {
3391
+ return this.getHeaderContext()?.getProperty("$selectionCount");
3392
+ };
3393
+
3309
3394
  /**
3310
3395
  * Returns true if the binding has {@link sap.ui.model.Filter.NONE} in its filters.
3311
3396
  *
@@ -3628,22 +3713,26 @@ sap.ui.define([
3628
3713
  * Moves the given (child) node to the given parent, just before the given next sibling. An
3629
3714
  * expanded (child) node is silently collapsed before and expanded after the move. A collapsed
3630
3715
  * parent is automatically expanded; so is a leaf. The (child) node is added to the parent at
3631
- * its proper position ("in place") and simply "persisted". Specifying a next sibling always
3632
- * leads to a subsequent side-effects refresh within the same $batch, but still the moved
3633
- * (child) node's index is updated to the new position.
3716
+ * its proper position ("in place") and simply "persisted". If needed, a subsequent side-effects
3717
+ * refresh within the same $batch is requested, but still the moved (child) node's index is
3718
+ * updated to the new position.
3634
3719
  *
3635
3720
  * @param {sap.ui.model.odata.v4.Context} oChildContext - The (child) node to be moved
3636
3721
  * @param {sap.ui.model.odata.v4.Context|null} oParentContext - The new parent's context
3637
3722
  * @param {sap.ui.model.odata.v4.Context|null} [oSiblingContext] - The next sibling's context
3638
- * @returns {sap.ui.base.SyncPromise<void>}
3639
- * A promise which is resolved without a defined result when the move is finished, or
3640
- * rejected in case of an error
3723
+ * @param {boolean} [bCopy]
3724
+ * Whether the node should be copied instead of moved. The returned promise resolves with the
3725
+ * index for the copied node.
3726
+ * @returns {sap.ui.base.SyncPromise<number|undefined>}
3727
+ * A promise which is resolved without a defined result when the move is finished, or with the
3728
+ * index for the copied node, or rejected in case of an error
3641
3729
  * @throws {Error} If there is no recursive hierarchy or if this binding's root binding is
3642
3730
  * suspended
3643
3731
  *
3644
3732
  * @private
3645
3733
  */
3646
- ODataListBinding.prototype.move = function (oChildContext, oParentContext, oSiblingContext) {
3734
+ ODataListBinding.prototype.move = function (oChildContext, oParentContext, oSiblingContext,
3735
+ bCopy) {
3647
3736
  /*
3648
3737
  * Sets the <code>iIndex</code> of every context instance inside the given range. Allows for
3649
3738
  * start greater than end and swaps both in that case.
@@ -3681,7 +3770,7 @@ sap.ui.define([
3681
3770
  : oChildContext.getPath().slice(1);
3682
3771
  const bUpdateSiblingIndex = oSiblingContext?.isEffectivelyKeptAlive();
3683
3772
  const {promise : oPromise, refresh : bRefresh} = this.oCache.move(oGroupLock, sChildPath,
3684
- sParentPath, sSiblingPath, sNonCanonicalChildPath, bUpdateSiblingIndex);
3773
+ sParentPath, sSiblingPath, sNonCanonicalChildPath, bUpdateSiblingIndex, bCopy);
3685
3774
 
3686
3775
  if (bRefresh) {
3687
3776
  return SyncPromise.all([
@@ -3689,11 +3778,15 @@ sap.ui.define([
3689
3778
  this.requestSideEffects(sUpdateGroupId, [""])
3690
3779
  ]).then(([fnGetIndices]) => {
3691
3780
  // Note: wait for side-effects refresh before getting index!
3692
- const [iChildIndex, iSiblingIndex] = fnGetIndices();
3781
+ const [iChildIndex, iSiblingIndex, oCopyIndexPromise] = fnGetIndices();
3693
3782
  oChildContext.iIndex = iChildIndex;
3694
3783
  if (bUpdateSiblingIndex) {
3695
3784
  oSiblingContext.iIndex = iSiblingIndex;
3696
3785
  }
3786
+
3787
+ if (bCopy) {
3788
+ return oCopyIndexPromise;
3789
+ }
3697
3790
  });
3698
3791
  }
3699
3792
 
@@ -3887,7 +3980,7 @@ sap.ui.define([
3887
3980
  oCache.reset([]);
3888
3981
  } else {
3889
3982
  that.fetchCache(that.oContext, false, /*bKeepQueryOptions*/true,
3890
- bKeepCacheOnError ? sGroupId : undefined);
3983
+ sGroupId, bKeepCacheOnError);
3891
3984
  oKeptElementsPromise = that.refreshKeptElements(sGroupId,
3892
3985
  /*bIgnorePendingChanges*/ bKeepCacheOnError);
3893
3986
  if (that.iCurrentEnd > 0) {
@@ -4082,6 +4175,7 @@ sap.ui.define([
4082
4175
 
4083
4176
  if (!bStillAlive) {
4084
4177
  bDestroyed = true;
4178
+ oContext.doSetSelected(false, true);
4085
4179
  oContext.destroy();
4086
4180
  }
4087
4181
  }
@@ -4340,8 +4434,7 @@ sap.ui.define([
4340
4434
  /**
4341
4435
  * Requests selected contexts matching the binding's filters and ordered by its sorters. A
4342
4436
  * context which is selected but no longer part of this list binding's collection (that is,
4343
- * which doesn't match the filters) is not returned but still shown as selected on the UI
4344
- * (see {@link #requestSelectionValidation}).
4437
+ * which doesn't match the filters) is not returned but still shown as selected on the UI.
4345
4438
  *
4346
4439
  * Note: Data for all selected contexts is reread from the server, even if it is already
4347
4440
  * available on the client. Any data updates are reflected on the UI but no order is changed.
@@ -5178,6 +5271,47 @@ sap.ui.define([
5178
5271
  }
5179
5272
  };
5180
5273
 
5274
+ /**
5275
+ * Validates the selected contexts against the list binding's filter criteria and removes the
5276
+ * selection from contexts that no longer match.
5277
+ *
5278
+ * @param {sap.ui.model.odata.v4.lib._Cache} oCache
5279
+ * The cache to be used
5280
+ * @param {string} [sGroupId]
5281
+ * The group ID to be used for the request
5282
+ *
5283
+ * @private
5284
+ */
5285
+ ODataListBinding.prototype.validateSelection = function (oCache, sGroupId) {
5286
+ if (!this.mParameters.$$clearSelectionOnFilter
5287
+ || _Helper.isDataAggregation(this.mParameters)
5288
+ || this.oHeaderContext.isSelected()) {
5289
+ return;
5290
+ }
5291
+
5292
+ const aSelectedContexts = this._getAllExistingContexts(true)
5293
+ .filter((oContext) => oContext.isSelected());
5294
+
5295
+ if (!aSelectedContexts.length) {
5296
+ return;
5297
+ }
5298
+
5299
+ const iStartOfPredicate = this.getResolvedPath().length;
5300
+ const aPredicatesIn = aSelectedContexts
5301
+ .map((oContext) => oContext.getPath().slice(iStartOfPredicate));
5302
+ oCache.requestFilteredOrderedPredicates(aPredicatesIn, this.lockGroup(sGroupId), true)
5303
+ .then((aPredicatesOut) => {
5304
+ const oPredicates = new Set(aPredicatesOut);
5305
+ aSelectedContexts.forEach((oContext) => {
5306
+ if (!oPredicates.has(oContext.getPath().slice(iStartOfPredicate))) {
5307
+ oContext.setSelected(false);
5308
+ }
5309
+ });
5310
+ }, (oError) => {
5311
+ this.oModel.reportError("Failed to validate selection", sClassName, oError);
5312
+ });
5313
+ };
5314
+
5181
5315
  //*********************************************************************************************
5182
5316
  // "static" functions
5183
5317
  //*********************************************************************************************
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  * OpenUI5
3
- * (c) Copyright 2009-2025 SAP SE or an SAP affiliate company.
3
+ * (c) Copyright 2025 SAP SE or an SAP affiliate company.
4
4
  * Licensed under the Apache License, Version 2.0 - see LICENSE.txt.
5
5
  */
6
6
 
@@ -60,7 +60,45 @@ sap.ui.define([
60
60
  oBooleanType,
61
61
  mCodeListUrl2Promise = {},
62
62
  DEBUG = Log.Level.DEBUG,
63
- aInt64Names = ["$count", "@$ui5.node.groupLevelCount", "@$ui5.node.level"],
63
+ oGeoJSON = {
64
+ $kind : "ComplexType",
65
+ $OpenType : true,
66
+ bbox : {
67
+ $kind : "Property",
68
+ $Type : "Edm.Double",
69
+ $isCollection : true
70
+ },
71
+ type : {
72
+ $kind : "Property",
73
+ $Nullable : false,
74
+ $Type : "Edm.String"
75
+ }
76
+ },
77
+ oGeometry = {
78
+ ...oGeoJSON, // "$BaseType" : "GeoJSON",
79
+ coordinates : {
80
+ $kind : "Property",
81
+ $Nullable : false,
82
+ $Type : "Edm.Double",
83
+ $isCollection : true
84
+ }
85
+ },
86
+ mEdmScope = {
87
+ "Edm.Geography" : {...oGeoJSON, $Abstract : true},
88
+ "Edm.GeographyLineString" : oGeometry,
89
+ "Edm.GeographyMultiLineString" : oGeometry,
90
+ "Edm.GeographyMultiPoint" : oGeometry,
91
+ "Edm.GeographyMultiPolygon" : oGeometry,
92
+ "Edm.GeographyPoint" : oGeometry,
93
+ "Edm.GeographyPolygon" : oGeometry
94
+ // Note: same for "Edm.Geometry*", see end of file
95
+ },
96
+ aInt64Names = [
97
+ "$count",
98
+ "$selectionCount",
99
+ "@$ui5.node.groupLevelCount",
100
+ "@$ui5.node.level"
101
+ ],
64
102
  oInt64Type,
65
103
  rLeftBraces = /\$\(/g,
66
104
  rNumber = /^-?\d+$/,
@@ -157,7 +195,7 @@ sap.ui.define([
157
195
  * @hideconstructor
158
196
  * @public
159
197
  * @since 1.37.0
160
- * @version 1.134.0
198
+ * @version 1.136.0
161
199
  */
162
200
  ODataMetaModel = MetaModel.extend("sap.ui.model.odata.v4.ODataMetaModel", {
163
201
  constructor : constructor
@@ -1091,7 +1129,7 @@ sap.ui.define([
1091
1129
  if (!bPrefetch) {
1092
1130
  aPromises.push(this.oModel._requestAnnotationChanges());
1093
1131
  this.oMetadataPromise = SyncPromise.all(aPromises).then(function (aMetadata) {
1094
- var mScope = aMetadata[0];
1132
+ var mScope = Object.assign(aMetadata[0], mEdmScope);
1095
1133
 
1096
1134
  that.aAnnotationChanges = aMetadata.pop();
1097
1135
  that._mergeAnnotations(mScope, aMetadata.slice(1));
@@ -1785,7 +1823,7 @@ sap.ui.define([
1785
1823
  return oProperty["$ui5.type"];
1786
1824
  }
1787
1825
 
1788
- if (oProperty.$isCollection) {
1826
+ if (oProperty.$isCollection && !rNumber.test(sLastSegment)) {
1789
1827
  Log.warning("Unsupported collection type, using " + oType.getName(), sPath,
1790
1828
  sODataMetaModel);
1791
1829
  } else {
@@ -2675,6 +2713,22 @@ sap.ui.define([
2675
2713
  ODataMetaModel.prototype.getValueListType
2676
2714
  = _Helper.createGetMethod("fetchValueListType", true);
2677
2715
 
2716
+ /**
2717
+ * Tells whether this metadata model's service prefers requests to use a resource path with
2718
+ * navigation properties instead of a canonical path, thus reflecting the object composition.
2719
+ * See "com.sap.vocabularies.Common.v1.AddressViaNavigationPath" for more details.
2720
+ *
2721
+ * @returns {boolean|undefined}
2722
+ * <code>true</code> if the "com.sap.vocabularies.Common.v1.AddressViaNavigationPath" tag is
2723
+ * present, <code>undefined</code> if it is missing or metadata is not (yet) available
2724
+ *
2725
+ * @public
2726
+ * @since 1.135.0
2727
+ */
2728
+ ODataMetaModel.prototype.isAddressViaNavigationPath = function () {
2729
+ return this.getObject("/@com.sap.vocabularies.Common.v1.AddressViaNavigationPath");
2730
+ };
2731
+
2678
2732
  /**
2679
2733
  * Method not supported
2680
2734
  *
@@ -3706,5 +3760,10 @@ sap.ui.define([
3706
3760
  mCodeListUrl2Promise = {};
3707
3761
  };
3708
3762
 
3763
+ Object.keys(mEdmScope).forEach((sGeographyName) => {
3764
+ const sGeometryName = sGeographyName.replace("Geography", "Geometry");
3765
+ mEdmScope[sGeometryName] = mEdmScope[sGeographyName];
3766
+ });
3767
+
3709
3768
  return ODataMetaModel;
3710
3769
  });
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  * OpenUI5
3
- * (c) Copyright 2009-2025 SAP SE or an SAP affiliate company.
3
+ * (c) Copyright 2025 SAP SE or an SAP affiliate company.
4
4
  * Licensed under the Apache License, Version 2.0 - see LICENSE.txt.
5
5
  */
6
6
 
@@ -240,7 +240,7 @@ sap.ui.define([
240
240
  * @extends sap.ui.model.Model
241
241
  * @public
242
242
  * @since 1.37.0
243
- * @version 1.134.0
243
+ * @version 1.136.0
244
244
  */
245
245
  ODataModel = Model.extend("sap.ui.model.odata.v4.ODataModel",
246
246
  /** @lends sap.ui.model.odata.v4.ODataModel.prototype */{
@@ -928,7 +928,11 @@ sap.ui.define([
928
928
  * @param {boolean} [mParameters.$$clearSelectionOnFilter]
929
929
  * Whether the selection state of the list binding is cleared when a filter is changed; this
930
930
  * includes dynamic filters, '$filter', '$search', and <code>$$aggregation.search</code>.
931
- * Supported since 1.120.13.
931
+ * Supported since 1.120.13. Since 1.135.0, the selection state is validated when reloading
932
+ * the list binding's data. The
933
+ * {@link sap.ui.model.odata.v4.Context#isSelected selection states of contexts} which no
934
+ * longer match the current filter are reset. <b>Note:</b> The selection state is not
935
+ * validated if the <code>$$aggregation</code> parameter is used.
932
936
  * @param {boolean} [mParameters.$$getKeepAliveContext]
933
937
  * Whether this binding is considered for a match when {@link #getKeepAliveContext} is called;
934
938
  * only the value <code>true</code> is allowed. Must not be combined with <code>$apply</code>,
@@ -1045,6 +1049,14 @@ sap.ui.define([
1045
1049
  * is also supported (since 1.130.0) for complex types and collections thereof; for entity
1046
1050
  * types, use {@link #bindContext} instead.
1047
1051
  *
1052
+ * Since 1.135.0, the binding may also point to an array element inside a collection of
1053
+ * primitive type, for example in the context of geography locations. Let's assume
1054
+ * "GeoLocation" is a structural property of type "Edm.GeographyPoint", then "coordinates" is a
1055
+ * structural property of type "Collection(Edm.Double)":
1056
+ * <pre>
1057
+ * &lt;Text id="longitude" text="{Address/GeoLocation/coordinates/0}"/>
1058
+ * </pre>
1059
+ *
1048
1060
  * @param {string} sPath
1049
1061
  * The binding path in the model; must not end with a slash
1050
1062
  * @param {sap.ui.model.Context} [oContext]
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  * OpenUI5
3
- * (c) Copyright 2009-2025 SAP SE or an SAP affiliate company.
3
+ * (c) Copyright 2025 SAP SE or an SAP affiliate company.
4
4
  * Licensed under the Apache License, Version 2.0 - see LICENSE.txt.
5
5
  */
6
6
 
@@ -276,7 +276,9 @@ sap.ui.define([
276
276
  /**
277
277
  * Changes this binding's parameters and refreshes the binding. Since 1.111.0, a list binding's
278
278
  * header context is deselected, but (since 1.120.13) only if the binding parameter
279
- * '$$clearSelectionOnFilter' is set and the '$filter' or '$search' parameter is changed.
279
+ * '$$clearSelectionOnFilter' is set and the '$filter' or '$search' parameter is changed. In all
280
+ * other cases, the caller of this method needs to evaluate whether the changed parameters
281
+ * invalidate the current selection and then deselect the header context if needed.
280
282
  *
281
283
  * If there are pending changes that cannot be ignored, an error is thrown. Use
282
284
  * {@link #hasPendingChanges} to check if there are such pending changes. If there are, call
@@ -870,7 +872,8 @@ sap.ui.define([
870
872
  }
871
873
 
872
874
  if (bDependsOnOperation || sReducedChildMetaPath === "$count"
873
- || sReducedChildMetaPath.endsWith("/$count")) {
875
+ || sReducedChildMetaPath.endsWith("/$count")
876
+ || sReducedChildMetaPath === "$selectionCount") {
874
877
  return sReducedPath;
875
878
  }
876
879
 
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  * OpenUI5
3
- * (c) Copyright 2009-2025 SAP SE or an SAP affiliate company.
3
+ * (c) Copyright 2025 SAP SE or an SAP affiliate company.
4
4
  * Licensed under the Apache License, Version 2.0 - see LICENSE.txt.
5
5
  */
6
6
 
@@ -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.134.0
45
+ * @version 1.136.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
@@ -541,7 +541,8 @@ sap.ui.define([
541
541
  if (that.oCache && that.oCache.reset) {
542
542
  that.oCache.reset();
543
543
  } else {
544
- that.fetchCache(that.oContext, false, /*bKeepQueryOptions*/true, bKeepCacheOnError);
544
+ that.fetchCache(that.oContext, false, /*bKeepQueryOptions*/true, sGroupId,
545
+ bKeepCacheOnError);
545
546
  }
546
547
 
547
548
  if (bCheckUpdate) {
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  * OpenUI5
3
- * (c) Copyright 2009-2025 SAP SE or an SAP affiliate company.
3
+ * (c) Copyright 2025 SAP SE or an SAP affiliate company.
4
4
  * Licensed under the Apache License, Version 2.0 - see LICENSE.txt.
5
5
  */
6
6
 
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  * OpenUI5
3
- * (c) Copyright 2009-2025 SAP SE or an SAP affiliate company.
3
+ * (c) Copyright 2025 SAP SE or an SAP affiliate company.
4
4
  * Licensed under the Apache License, Version 2.0 - see LICENSE.txt.
5
5
  */
6
6
 
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  * OpenUI5
3
- * (c) Copyright 2009-2025 SAP SE or an SAP affiliate company.
3
+ * (c) Copyright 2025 SAP SE or an SAP affiliate company.
4
4
  * Licensed under the Apache License, Version 2.0 - see LICENSE.txt.
5
5
  */
6
6
 
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  * OpenUI5
3
- * (c) Copyright 2009-2025 SAP SE or an SAP affiliate company.
3
+ * (c) Copyright 2025 SAP SE or an SAP affiliate company.
4
4
  * Licensed under the Apache License, Version 2.0 - see LICENSE.txt.
5
5
  */
6
6