@openui5/sap.ui.core 1.93.3 → 1.96.2

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 (416) hide show
  1. package/.eslintrc.json +13 -2
  2. package/.reuse/dep5 +6 -11
  3. package/THIRDPARTY.txt +10 -16
  4. package/package.json +1 -1
  5. package/src/jquery.sap.global.js +5 -2
  6. package/src/jquery.sap.properties.js +1 -1
  7. package/src/jquery.sap.resources.js +1 -1
  8. package/src/jquery.sap.script.js +1 -1
  9. package/src/jquery.sap.storage.js +3 -3
  10. package/src/jquery.sap.stubs.js +2 -1
  11. package/src/jquery.sap.trace.js +2 -1
  12. package/src/sap/base/i18n/ResourceBundle.js +6 -2
  13. package/src/sap/base/strings/whitespaceReplacer.js +52 -0
  14. package/src/sap/base/util/restricted/_CancelablePromise.js +1 -1
  15. package/src/sap/base/util/restricted/_castArray.js +1 -1
  16. package/src/sap/base/util/restricted/_compact.js +1 -1
  17. package/src/sap/base/util/restricted/_curry.js +1 -1
  18. package/src/sap/base/util/restricted/_debounce.js +1 -1
  19. package/src/sap/base/util/restricted/_difference.js +1 -1
  20. package/src/sap/base/util/restricted/_differenceBy.js +1 -1
  21. package/src/sap/base/util/restricted/_differenceWith.js +1 -1
  22. package/src/sap/base/util/restricted/_flatMap.js +1 -1
  23. package/src/sap/base/util/restricted/_flatMapDeep.js +1 -1
  24. package/src/sap/base/util/restricted/_flatMapDepth.js +1 -1
  25. package/src/sap/base/util/restricted/_flatten.js +1 -1
  26. package/src/sap/base/util/restricted/_flattenDeep.js +1 -1
  27. package/src/sap/base/util/restricted/_flattenDepth.js +1 -1
  28. package/src/sap/base/util/restricted/_intersection.js +1 -1
  29. package/src/sap/base/util/restricted/_intersectionBy.js +1 -1
  30. package/src/sap/base/util/restricted/_intersectionWith.js +1 -1
  31. package/src/sap/base/util/restricted/_isEqual.js +1 -1
  32. package/src/sap/base/util/restricted/_isEqualWith.js +1 -1
  33. package/src/sap/base/util/restricted/_isNil.js +1 -1
  34. package/src/sap/base/util/restricted/_max.js +1 -1
  35. package/src/sap/base/util/restricted/_merge.js +1 -1
  36. package/src/sap/base/util/restricted/_mergeWith.js +1 -1
  37. package/src/sap/base/util/restricted/_min.js +1 -1
  38. package/src/sap/base/util/restricted/_omit.js +1 -1
  39. package/src/sap/base/util/restricted/_pick.js +1 -1
  40. package/src/sap/base/util/restricted/_pickBy.js +1 -1
  41. package/src/sap/base/util/restricted/_throttle.js +1 -1
  42. package/src/sap/base/util/restricted/_toArray.js +1 -1
  43. package/src/sap/base/util/restricted/_union.js +1 -1
  44. package/src/sap/base/util/restricted/_unionBy.js +1 -1
  45. package/src/sap/base/util/restricted/_unionWith.js +1 -1
  46. package/src/sap/base/util/restricted/_uniq.js +1 -1
  47. package/src/sap/base/util/restricted/_uniqBy.js +1 -1
  48. package/src/sap/base/util/restricted/_uniqWith.js +1 -1
  49. package/src/sap/base/util/restricted/_without.js +1 -1
  50. package/src/sap/base/util/restricted/_xor.js +1 -1
  51. package/src/sap/base/util/restricted/_xorBy.js +1 -1
  52. package/src/sap/base/util/restricted/_xorWith.js +1 -1
  53. package/src/sap/base/util/restricted/_zipObject.js +1 -1
  54. package/src/sap/base/util/restricted/_zipObjectDeep.js +1 -1
  55. package/src/sap/ui/Device.js +37 -42
  56. package/src/sap/ui/Global.js +8 -7
  57. package/src/sap/ui/base/DataType.js +14 -8
  58. package/src/sap/ui/base/Event.js +1 -1
  59. package/src/sap/ui/base/EventProvider.js +1 -1
  60. package/src/sap/ui/base/ExpressionParser.js +9 -6
  61. package/src/sap/ui/base/Interface.js +3 -49
  62. package/src/sap/ui/base/ManagedObject.js +12 -7
  63. package/src/sap/ui/base/ManagedObjectMetadata.js +1 -1
  64. package/src/sap/ui/base/Metadata.js +1 -1
  65. package/src/sap/ui/base/Object.js +49 -4
  66. package/src/sap/ui/base/ObjectPool.js +1 -1
  67. package/src/sap/ui/base/syncXHRFix.js +2 -1
  68. package/src/sap/ui/core/.library +5 -5
  69. package/src/sap/ui/core/AppCacheBuster.js +4 -4
  70. package/src/sap/ui/core/BusyIndicator.js +1 -11
  71. package/src/sap/ui/core/Component.js +300 -140
  72. package/src/sap/ui/core/ComponentContainer.js +24 -8
  73. package/src/sap/ui/core/ComponentMetadata.js +14 -3
  74. package/src/sap/ui/core/ComponentSupport.js +1 -1
  75. package/src/sap/ui/core/Configuration.js +67 -31
  76. package/src/sap/ui/core/Control.js +1 -1
  77. package/src/sap/ui/core/Core.js +103 -25
  78. package/src/sap/ui/core/CustomData.js +1 -1
  79. package/src/sap/ui/core/CustomizingConfiguration.js +35 -260
  80. package/src/sap/ui/core/DeclarativeSupport.js +3 -2
  81. package/src/sap/ui/core/Element.js +1 -1
  82. package/src/sap/ui/core/ElementMetadata.js +4 -2
  83. package/src/sap/ui/core/EnabledPropagator.js +91 -73
  84. package/src/sap/ui/core/EventBus.js +1 -1
  85. package/src/sap/ui/core/ExtensionPoint.js +7 -14
  86. package/src/sap/ui/core/Fragment.js +30 -32
  87. package/src/sap/ui/core/HTML.js +1 -1
  88. package/src/sap/ui/core/History.js +1 -1
  89. package/src/sap/ui/core/Icon.js +7 -8
  90. package/src/sap/ui/core/IconPool.js +26 -1097
  91. package/src/sap/ui/core/IconRenderer.js +6 -6
  92. package/src/sap/ui/core/IndicationColorSupport.js +1 -1
  93. package/src/sap/ui/core/IntervalTrigger.js +1 -1
  94. package/src/sap/ui/core/InvisibleMessage.js +1 -1
  95. package/src/sap/ui/core/InvisibleRenderer.js +1 -1
  96. package/src/sap/ui/core/InvisibleText.js +1 -1
  97. package/src/sap/ui/core/Item.js +1 -1
  98. package/src/sap/ui/core/LabelEnablement.js +1 -1
  99. package/src/sap/ui/core/LayoutData.js +1 -1
  100. package/src/sap/ui/core/ListItem.js +1 -1
  101. package/src/sap/ui/core/LocalBusyIndicator.js +1 -1
  102. package/src/sap/ui/core/Locale.js +26 -4
  103. package/src/sap/ui/core/LocaleData.js +1 -1
  104. package/src/sap/ui/core/Manifest.js +4 -61
  105. package/src/sap/ui/core/Message.js +1 -1
  106. package/src/sap/ui/core/Patcher.js +27 -3
  107. package/src/sap/ui/core/Placeholder.js +28 -15
  108. package/src/sap/ui/core/RenderManager.js +36 -6
  109. package/src/sap/ui/core/Renderer.js +13 -3
  110. package/src/sap/ui/core/ResizeHandler.js +1 -1
  111. package/src/sap/ui/core/ScrollBar.js +2 -2
  112. package/src/sap/ui/core/SeparatorItem.js +1 -1
  113. package/src/sap/ui/core/ShortcutHintsMixin.js +14 -7
  114. package/src/sap/ui/core/Title.js +1 -1
  115. package/src/sap/ui/core/TooltipBase.js +1 -1
  116. package/src/sap/ui/core/UIArea.js +1 -1
  117. package/src/sap/ui/core/UIComponent.js +42 -16
  118. package/src/sap/ui/core/UIComponentMetadata.js +1 -1
  119. package/src/sap/ui/core/ValueStateSupport.js +1 -1
  120. package/src/sap/ui/core/VariantLayoutData.js +1 -1
  121. package/src/sap/ui/core/XMLComposite.js +2 -2
  122. package/src/sap/ui/core/XMLCompositeMetadata.js +2 -2
  123. package/src/sap/ui/core/XMLTemplateProcessor.js +116 -41
  124. package/src/sap/ui/core/_IconRegistry.js +1148 -0
  125. package/src/sap/ui/core/delegate/ItemNavigation.js +1 -1
  126. package/src/sap/ui/core/delegate/ScrollEnablement.js +6 -3
  127. package/src/sap/ui/core/dnd/DragDropBase.js +1 -1
  128. package/src/sap/ui/core/dnd/DragDropInfo.js +1 -1
  129. package/src/sap/ui/core/dnd/DragInfo.js +2 -2
  130. package/src/sap/ui/core/dnd/DropInfo.js +1 -1
  131. package/src/sap/ui/core/format/NumberFormat.js +16 -1
  132. package/src/sap/ui/core/hyphenation/Hyphenation.js +73 -221
  133. package/src/sap/ui/core/hyphenation/HyphenationTestingWords.js +11 -10
  134. package/src/sap/ui/core/library.js +3 -3
  135. package/src/sap/ui/core/message/ControlMessageProcessor.js +1 -1
  136. package/src/sap/ui/core/message/Message.js +1 -1
  137. package/src/sap/ui/core/message/MessageManager.js +13 -15
  138. package/src/sap/ui/core/message/MessageParser.js +1 -1
  139. package/src/sap/ui/core/message/MessageProcessor.js +1 -1
  140. package/src/sap/ui/core/messagebundle_de.properties +1 -1
  141. package/src/sap/ui/core/messagebundle_fr.properties +1 -1
  142. package/src/sap/ui/core/messagebundle_it.properties +1 -1
  143. package/src/sap/ui/core/messagebundle_pl.properties +1 -1
  144. package/src/sap/ui/core/messagebundle_th.properties +2 -2
  145. package/src/sap/ui/core/mvc/Controller.js +38 -19
  146. package/src/sap/ui/core/mvc/ControllerExtensionProvider.js +30 -32
  147. package/src/sap/ui/core/mvc/ControllerMetadata.js +18 -18
  148. package/src/sap/ui/core/mvc/HTMLView.js +2 -2
  149. package/src/sap/ui/core/mvc/JSONView.js +2 -2
  150. package/src/sap/ui/core/mvc/JSView.js +2 -2
  151. package/src/sap/ui/core/mvc/TemplateView.js +2 -2
  152. package/src/sap/ui/core/mvc/View.js +58 -85
  153. package/src/sap/ui/core/mvc/XMLView.js +2 -2
  154. package/src/sap/ui/core/mvc/XMLViewRenderer.js +17 -20
  155. package/src/sap/ui/core/plugin/DeclarativeSupport.js +1 -1
  156. package/src/sap/ui/core/plugin/LessSupport.js +1 -1
  157. package/src/sap/ui/core/plugin/TemplatingSupport.js +1 -1
  158. package/src/sap/ui/core/postmessage/Bus.js +1 -1
  159. package/src/sap/ui/core/postmessage/confirmationDialog.js +1 -1
  160. package/src/sap/ui/core/routing/History.js +10 -2
  161. package/src/sap/ui/core/routing/Router.js +8 -1
  162. package/src/sap/ui/core/routing/Target.js +13 -0
  163. package/src/sap/ui/core/routing/Targets.js +13 -2
  164. package/src/sap/ui/core/routing/async/Route.js +1 -1
  165. package/src/sap/ui/core/routing/async/Target.js +353 -259
  166. package/src/sap/ui/core/search/OpenSearchProvider.js +1 -1
  167. package/src/sap/ui/core/search/SearchProvider.js +1 -1
  168. package/src/sap/ui/core/service/Service.js +1 -1
  169. package/src/sap/ui/core/service/ServiceFactory.js +1 -1
  170. package/src/sap/ui/core/service/ServiceFactoryRegistry.js +1 -1
  171. package/src/sap/ui/core/support/BootSupportTool.js +11 -0
  172. package/src/sap/ui/core/support/InteractionTree.css +4 -0
  173. package/src/sap/ui/core/support/Plugin.js +1 -1
  174. package/src/sap/ui/core/support/Support.js +1 -1
  175. package/src/sap/ui/core/support/ViewInfo.css +599 -0
  176. package/src/sap/ui/core/support/controls/InteractionTree.js +352 -222
  177. package/src/sap/ui/core/support/controls/ObjectViewer.js +3 -41
  178. package/src/sap/ui/core/support/controls/TimelineOverview.js +49 -24
  179. package/src/sap/ui/core/support/controls/TreeViewer.js +12 -58
  180. package/src/sap/ui/core/support/plugins/ControlTree.js +59 -68
  181. package/src/sap/ui/core/support/plugins/Debugging.js +9 -11
  182. package/src/sap/ui/core/support/plugins/Interaction.js +2 -2
  183. package/src/sap/ui/core/support/plugins/LocalStorage.js +1 -1
  184. package/src/sap/ui/core/support/plugins/Performance.js +147 -75
  185. package/src/sap/ui/core/support/plugins/Selector.js +19 -24
  186. package/src/sap/ui/core/support/plugins/TechInfo.js +5 -5
  187. package/src/sap/ui/core/support/plugins/Trace.js +95 -32
  188. package/src/sap/ui/core/support/plugins/ViewInfo.js +9 -73
  189. package/src/sap/ui/core/support/support.css +109 -14
  190. package/src/sap/ui/core/support/support.html +6 -2
  191. package/src/sap/ui/core/support/techinfo/TechnicalInfo.fragment.xml +1 -0
  192. package/src/sap/ui/core/support/techinfo/TechnicalInfo.js +149 -72
  193. package/src/sap/ui/core/themes/base/Icon.less +9 -0
  194. package/src/sap/ui/core/themes/base/fonts/SAP-icons.woff2 +0 -0
  195. package/src/sap/ui/core/theming/Parameters.js +6 -4
  196. package/src/sap/ui/core/tmpl/DOMAttribute.js +1 -1
  197. package/src/sap/ui/core/tmpl/DOMElement.js +1 -1
  198. package/src/sap/ui/core/tmpl/HandlebarsTemplate.js +1 -1
  199. package/src/sap/ui/core/tmpl/Template.js +10 -28
  200. package/src/sap/ui/core/tmpl/TemplateControl.js +4 -4
  201. package/src/sap/ui/core/tmpl/_parsePath.js +35 -0
  202. package/src/sap/ui/core/util/AsyncHintsHelper.js +1 -1
  203. package/src/sap/ui/core/util/DraftEnabledMockServer.js +9 -4
  204. package/src/sap/ui/core/util/Export.js +1 -1
  205. package/src/sap/ui/core/util/ExportCell.js +1 -1
  206. package/src/sap/ui/core/util/ExportColumn.js +1 -1
  207. package/src/sap/ui/core/util/ExportRow.js +1 -1
  208. package/src/sap/ui/core/util/ExportType.js +1 -1
  209. package/src/sap/ui/core/util/ExportTypeCSV.js +1 -1
  210. package/src/sap/ui/core/util/File.js +1 -1
  211. package/src/sap/ui/core/util/LibraryInfo.js +1 -1
  212. package/src/sap/ui/core/util/MockServer.js +5 -5
  213. package/src/sap/ui/core/util/MockServerAnnotationsHandler.js +3 -2
  214. package/src/sap/ui/core/util/PasteHelper.js +1 -1
  215. package/src/sap/ui/core/util/XMLPreprocessor.js +11 -12
  216. package/src/sap/ui/core/util/reflection/BaseTreeModifier.js +136 -63
  217. package/src/sap/ui/core/util/reflection/JsControlTreeModifier.js +170 -153
  218. package/src/sap/ui/core/util/reflection/XmlTreeModifier.js +424 -293
  219. package/src/sap/ui/core/util/serializer/HTMLViewSerializer.js +1 -1
  220. package/src/sap/ui/core/util/serializer/Serializer.js +1 -1
  221. package/src/sap/ui/core/util/serializer/ViewSerializer.js +1 -1
  222. package/src/sap/ui/core/util/serializer/XMLViewSerializer.js +1 -1
  223. package/src/sap/ui/core/util/serializer/delegate/Delegate.js +1 -1
  224. package/src/sap/ui/core/util/serializer/delegate/HTML.js +1 -1
  225. package/src/sap/ui/core/util/serializer/delegate/XML.js +1 -1
  226. package/src/sap/ui/core/ws/ReadyState.js +1 -1
  227. package/src/sap/ui/core/ws/SapPcpWebSocket.js +1 -1
  228. package/src/sap/ui/core/ws/WebSocket.js +1 -1
  229. package/src/sap/ui/debug/ControlTree.js +10 -4
  230. package/src/sap/ui/debug/DebugEnv.js +3 -4
  231. package/src/sap/ui/debug/Highlighter.js +8 -2
  232. package/src/sap/ui/debug/PropertyList.css +55 -0
  233. package/src/sap/ui/debug/PropertyList.js +111 -182
  234. package/src/sap/ui/model/Binding.js +174 -118
  235. package/src/sap/ui/model/ClientContextBinding.js +1 -1
  236. package/src/sap/ui/model/ClientListBinding.js +1 -3
  237. package/src/sap/ui/model/ClientModel.js +4 -4
  238. package/src/sap/ui/model/ClientPropertyBinding.js +4 -2
  239. package/src/sap/ui/model/ClientTreeBinding.js +15 -9
  240. package/src/sap/ui/model/ClientTreeBindingAdapter.js +28 -23
  241. package/src/sap/ui/model/CompositeBinding.js +98 -77
  242. package/src/sap/ui/model/CompositeDataState.js +2 -2
  243. package/src/sap/ui/model/CompositeType.js +2 -2
  244. package/src/sap/ui/model/Context.js +4 -2
  245. package/src/sap/ui/model/ContextBinding.js +6 -14
  246. package/src/sap/ui/model/DataState.js +2 -2
  247. package/src/sap/ui/model/Filter.js +255 -53
  248. package/src/sap/ui/model/FilterOperator.js +1 -1
  249. package/src/sap/ui/model/FilterProcessor.js +27 -17
  250. package/src/sap/ui/model/FilterType.js +1 -1
  251. package/src/sap/ui/model/ListBinding.js +180 -117
  252. package/src/sap/ui/model/MetaModel.js +4 -9
  253. package/src/sap/ui/model/Model.js +345 -294
  254. package/src/sap/ui/model/PropertyBinding.js +92 -58
  255. package/src/sap/ui/model/SelectionModel.js +2 -2
  256. package/src/sap/ui/model/SimpleType.js +2 -2
  257. package/src/sap/ui/model/Sorter.js +1 -1
  258. package/src/sap/ui/model/SorterProcessor.js +1 -1
  259. package/src/sap/ui/model/StaticBinding.js +1 -1
  260. package/src/sap/ui/model/TreeAutoExpandMode.js +2 -2
  261. package/src/sap/ui/model/TreeBinding.js +1 -1
  262. package/src/sap/ui/model/TreeBindingAdapter.js +251 -100
  263. package/src/sap/ui/model/TreeBindingCompatibilityAdapter.js +16 -9
  264. package/src/sap/ui/model/TreeBindingUtils.js +1 -0
  265. package/src/sap/ui/model/Type.js +1 -1
  266. package/src/sap/ui/model/analytics/AnalyticalBinding.js +8 -4
  267. package/src/sap/ui/model/analytics/AnalyticalTreeBindingAdapter.js +1 -1
  268. package/src/sap/ui/model/analytics/AnalyticalVersionInfo.js +1 -1
  269. package/src/sap/ui/model/analytics/BatchResponseCollector.js +1 -1
  270. package/src/sap/ui/model/analytics/ODataModelAdapter.js +1 -1
  271. package/src/sap/ui/model/analytics/odata4analytics.js +34 -25
  272. package/src/sap/ui/model/base/ManagedObjectModel.js +4 -0
  273. package/src/sap/ui/model/json/JSONListBinding.js +8 -5
  274. package/src/sap/ui/model/json/JSONModel.js +24 -15
  275. package/src/sap/ui/model/json/JSONPropertyBinding.js +4 -3
  276. package/src/sap/ui/model/json/JSONTreeBinding.js +1 -1
  277. package/src/sap/ui/model/message/MessageListBinding.js +6 -3
  278. package/src/sap/ui/model/message/MessageModel.js +23 -15
  279. package/src/sap/ui/model/message/MessagePropertyBinding.js +2 -2
  280. package/src/sap/ui/model/odata/AnnotationHelper.js +1 -1
  281. package/src/sap/ui/model/odata/AnnotationParser.js +1 -1
  282. package/src/sap/ui/model/odata/CountMode.js +1 -1
  283. package/src/sap/ui/model/odata/Filter.js +1 -1
  284. package/src/sap/ui/model/odata/ODataAnnotations.js +2 -2
  285. package/src/sap/ui/model/odata/ODataContextBinding.js +1 -1
  286. package/src/sap/ui/model/odata/ODataListBinding.js +1 -1
  287. package/src/sap/ui/model/odata/ODataMessageParser.js +2 -2
  288. package/src/sap/ui/model/odata/ODataMetaModel.js +5 -3
  289. package/src/sap/ui/model/odata/ODataMetadata.js +2 -2
  290. package/src/sap/ui/model/odata/ODataModel.js +8 -7
  291. package/src/sap/ui/model/odata/ODataPropertyBinding.js +1 -1
  292. package/src/sap/ui/model/odata/ODataTreeBinding.js +65 -33
  293. package/src/sap/ui/model/odata/ODataTreeBindingAdapter.js +1 -1
  294. package/src/sap/ui/model/odata/ODataTreeBindingFlat.js +2 -2
  295. package/src/sap/ui/model/odata/ODataUtils.js +13 -11
  296. package/src/sap/ui/model/odata/OperationMode.js +1 -1
  297. package/src/sap/ui/model/odata/_AnnotationHelperExpression.js +1 -1
  298. package/src/sap/ui/model/odata/type/Boolean.js +1 -1
  299. package/src/sap/ui/model/odata/type/Byte.js +1 -1
  300. package/src/sap/ui/model/odata/type/Currency.js +1 -1
  301. package/src/sap/ui/model/odata/type/Date.js +1 -1
  302. package/src/sap/ui/model/odata/type/DateTime.js +1 -1
  303. package/src/sap/ui/model/odata/type/DateTimeBase.js +1 -1
  304. package/src/sap/ui/model/odata/type/DateTimeOffset.js +1 -1
  305. package/src/sap/ui/model/odata/type/Decimal.js +1 -1
  306. package/src/sap/ui/model/odata/type/Double.js +1 -1
  307. package/src/sap/ui/model/odata/type/Guid.js +1 -1
  308. package/src/sap/ui/model/odata/type/Int.js +1 -1
  309. package/src/sap/ui/model/odata/type/Int16.js +1 -1
  310. package/src/sap/ui/model/odata/type/Int32.js +1 -1
  311. package/src/sap/ui/model/odata/type/Int64.js +1 -1
  312. package/src/sap/ui/model/odata/type/ODataType.js +1 -1
  313. package/src/sap/ui/model/odata/type/Raw.js +1 -1
  314. package/src/sap/ui/model/odata/type/SByte.js +1 -1
  315. package/src/sap/ui/model/odata/type/Single.js +1 -1
  316. package/src/sap/ui/model/odata/type/Stream.js +1 -1
  317. package/src/sap/ui/model/odata/type/String.js +1 -1
  318. package/src/sap/ui/model/odata/type/Time.js +1 -1
  319. package/src/sap/ui/model/odata/type/TimeOfDay.js +1 -1
  320. package/src/sap/ui/model/odata/type/Unit.js +1 -1
  321. package/src/sap/ui/model/odata/v2/Context.js +81 -9
  322. package/src/sap/ui/model/odata/v2/ODataAnnotations.js +3 -3
  323. package/src/sap/ui/model/odata/v2/ODataContextBinding.js +39 -49
  324. package/src/sap/ui/model/odata/v2/ODataListBinding.js +236 -73
  325. package/src/sap/ui/model/odata/v2/ODataModel.js +314 -164
  326. package/src/sap/ui/model/odata/v2/ODataTreeBinding.js +110 -97
  327. package/src/sap/ui/model/odata/v2/_CreatedContextsCache.js +129 -0
  328. package/src/sap/ui/model/odata/v4/Context.js +6 -3
  329. package/src/sap/ui/model/odata/v4/ODataBinding.js +5 -6
  330. package/src/sap/ui/model/odata/v4/ODataContextBinding.js +117 -40
  331. package/src/sap/ui/model/odata/v4/ODataListBinding.js +95 -15
  332. package/src/sap/ui/model/odata/v4/ODataMetaModel.js +44 -31
  333. package/src/sap/ui/model/odata/v4/ODataModel.js +86 -78
  334. package/src/sap/ui/model/odata/v4/ODataParentBinding.js +47 -28
  335. package/src/sap/ui/model/odata/v4/ODataPropertyBinding.js +11 -7
  336. package/src/sap/ui/model/odata/v4/_AnnotationHelperExpression.js +10 -3
  337. package/src/sap/ui/model/odata/v4/lib/_AggregationCache.js +8 -1
  338. package/src/sap/ui/model/odata/v4/lib/_Cache.js +24 -16
  339. package/src/sap/ui/model/odata/v4/lib/_Helper.js +32 -30
  340. package/src/sap/ui/model/odata/v4/lib/_Requestor.js +52 -17
  341. package/src/sap/ui/model/odata/v4/lib/_V2Requestor.js +2 -2
  342. package/src/sap/ui/model/resource/ResourceModel.js +6 -2
  343. package/src/sap/ui/model/resource/ResourcePropertyBinding.js +1 -1
  344. package/src/sap/ui/model/type/Boolean.js +2 -2
  345. package/src/sap/ui/model/type/Currency.js +2 -2
  346. package/src/sap/ui/model/type/Date.js +9 -3
  347. package/src/sap/ui/model/type/DateInterval.js +4 -2
  348. package/src/sap/ui/model/type/DateTime.js +2 -2
  349. package/src/sap/ui/model/type/DateTimeInterval.js +2 -2
  350. package/src/sap/ui/model/type/FileSize.js +4 -2
  351. package/src/sap/ui/model/type/Float.js +4 -2
  352. package/src/sap/ui/model/type/Integer.js +4 -2
  353. package/src/sap/ui/model/type/String.js +2 -2
  354. package/src/sap/ui/model/type/Time.js +2 -2
  355. package/src/sap/ui/model/type/TimeInterval.js +2 -2
  356. package/src/sap/ui/model/type/Unit.js +14 -7
  357. package/src/sap/ui/model/xml/XMLListBinding.js +15 -9
  358. package/src/sap/ui/model/xml/XMLModel.js +70 -41
  359. package/src/sap/ui/model/xml/XMLPropertyBinding.js +4 -4
  360. package/src/sap/ui/model/xml/XMLTreeBinding.js +5 -4
  361. package/src/sap/ui/performance/trace/Interaction.js +30 -15
  362. package/src/sap/ui/performance/trace/initTraces.js +1 -1
  363. package/src/sap/ui/qunit/QUnitUtils.js +3 -2
  364. package/src/sap/ui/qunit/utils/ControlIterator.js +1 -1
  365. package/src/sap/ui/qunit/utils/MemoryLeakCheck.js +9 -11
  366. package/src/sap/ui/test/TestUtils.js +11 -4
  367. package/src/sap/ui/test/actions/Drag.js +6 -2
  368. package/src/sap/ui/test/actions/Drop.js +6 -2
  369. package/src/sap/ui/test/actions/EnterText.js +6 -0
  370. package/src/sap/ui/test/actions/Press.js +6 -0
  371. package/src/sap/ui/test/actions/Scroll.js +6 -0
  372. package/src/sap/ui/test/autowaiter/_resourceWaiter.js +4 -4
  373. package/src/sap/ui/test/launchers/componentLauncher.js +0 -4
  374. package/src/sap/ui/test/matchers/I18NText.js +29 -11
  375. package/src/sap/ui/test/opaQunit.js +5 -0
  376. package/src/sap/ui/thirdparty/crossroads.js +6 -4
  377. package/src/sap/ui/thirdparty/hyphenopoly/Hyphenopoly.js +1196 -0
  378. package/src/sap/ui/thirdparty/hyphenopoly/Hyphenopoly_Loader.js +797 -0
  379. package/src/sap/ui/thirdparty/hyphenopoly/hyphenEngine.asm.js +108 -127
  380. package/src/sap/ui/thirdparty/hyphenopoly/hyphenEngine.wasm +0 -0
  381. package/src/sap/ui/thirdparty/hyphenopoly/patterns/bg.hpb +0 -0
  382. package/src/sap/ui/thirdparty/hyphenopoly/patterns/ca.hpb +0 -0
  383. package/src/sap/ui/thirdparty/hyphenopoly/patterns/da.hpb +0 -0
  384. package/src/sap/ui/thirdparty/hyphenopoly/patterns/de.hpb +0 -0
  385. package/src/sap/ui/thirdparty/hyphenopoly/patterns/el-monoton.hpb +0 -0
  386. package/src/sap/ui/thirdparty/hyphenopoly/patterns/en-us.hpb +0 -0
  387. package/src/sap/ui/thirdparty/hyphenopoly/patterns/es.hpb +0 -0
  388. package/src/sap/ui/thirdparty/hyphenopoly/patterns/et.hpb +0 -0
  389. package/src/sap/ui/thirdparty/hyphenopoly/patterns/fi.hpb +0 -0
  390. package/src/sap/ui/thirdparty/hyphenopoly/patterns/fr.hpb +0 -0
  391. package/src/sap/ui/thirdparty/hyphenopoly/patterns/hi.hpb +0 -0
  392. package/src/sap/ui/thirdparty/hyphenopoly/patterns/hr.hpb +0 -0
  393. package/src/sap/ui/thirdparty/hyphenopoly/patterns/hu.hpb +0 -0
  394. package/src/sap/ui/thirdparty/hyphenopoly/patterns/it.hpb +0 -0
  395. package/src/sap/ui/thirdparty/hyphenopoly/patterns/lt.hpb +0 -0
  396. package/src/sap/ui/thirdparty/hyphenopoly/patterns/nb-no.hpb +0 -0
  397. package/src/sap/ui/thirdparty/hyphenopoly/patterns/nl.hpb +0 -0
  398. package/src/sap/ui/thirdparty/hyphenopoly/patterns/pt.hpb +0 -0
  399. package/src/sap/ui/thirdparty/hyphenopoly/patterns/ru.hpb +0 -0
  400. package/src/sap/ui/thirdparty/hyphenopoly/patterns/sl.hpb +0 -0
  401. package/src/sap/ui/thirdparty/hyphenopoly/patterns/sv.hpb +0 -0
  402. package/src/sap/ui/thirdparty/hyphenopoly/patterns/th.hpb +0 -0
  403. package/src/sap/ui/thirdparty/hyphenopoly/patterns/tr.hpb +0 -0
  404. package/src/sap/ui/thirdparty/hyphenopoly/patterns/uk.hpb +0 -0
  405. package/src/sap/ui/thirdparty/jquery.js +9 -1
  406. package/src/sap/ui/thirdparty/qunit-2.js +1 -1
  407. package/src/sap/ui/thirdparty/qunit.js +1 -1
  408. package/src/sap/ui/util/Mobile.js +2 -20
  409. package/src/sap/ui/util/Storage.js +1 -1
  410. package/src/sap/ui/util/isCrossOriginURL.js +16 -6
  411. package/src/sap-ui-core-nojQuery.js +1 -1
  412. package/src/sap-ui-core.js +1 -1
  413. package/src/sap-ui-debug.js +3 -17
  414. package/ui5.yaml +5 -2
  415. package/src/sap/ui/core/support/plugins/MessageTest.js +0 -96
  416. package/src/sap/ui/thirdparty/hyphenopoly/hyphenopoly.bundle.js +0 -860
@@ -3,7 +3,7 @@
3
3
  * (c) Copyright 2009-2021 SAP SE or an SAP affiliate company.
4
4
  * Licensed under the Apache License, Version 2.0 - see LICENSE.txt.
5
5
  */
6
-
6
+ /*eslint-disable max-len */
7
7
 
8
8
  sap.ui.define([
9
9
  'sap/ui/core/format/DateFormat',
@@ -33,7 +33,7 @@ sap.ui.define([
33
33
  * @extends sap.ui.model.CompositeType
34
34
  *
35
35
  * @author SAP SE
36
- * @version 1.93.3
36
+ * @version 1.96.2
37
37
  *
38
38
  * @public
39
39
  * @param {object} [oFormatOptions] Formatting options. For a list of all available options, see {@link sap.ui.core.format.DateFormat.getDateInstance DateFormat}.
@@ -216,6 +216,8 @@ sap.ui.define([
216
216
  aViolatedConstraints.push("maximum");
217
217
  aMessages.push(oBundle.getText("Date.Maximum", [oCompareValue]));
218
218
  }
219
+ break;
220
+ default: break;
219
221
  }
220
222
  }.bind(this));
221
223
 
@@ -3,7 +3,7 @@
3
3
  * (c) Copyright 2009-2021 SAP SE or an SAP affiliate company.
4
4
  * Licensed under the Apache License, Version 2.0 - see LICENSE.txt.
5
5
  */
6
-
6
+ /*eslint-disable max-len */
7
7
  // Provides the base implementation for all model implementations
8
8
  sap.ui.define(['./Date', 'sap/ui/core/format/DateFormat'],
9
9
  function(Date, DateFormat) {
@@ -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.93.3
22
+ * @version 1.96.2
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}.
@@ -3,7 +3,7 @@
3
3
  * (c) Copyright 2009-2021 SAP SE or an SAP affiliate company.
4
4
  * Licensed under the Apache License, Version 2.0 - see LICENSE.txt.
5
5
  */
6
-
6
+ /*eslint-disable max-len */
7
7
  // Provides the base implementation for all model implementations
8
8
  sap.ui.define(['./DateInterval', 'sap/ui/core/format/DateFormat'],
9
9
  function(DateInterval, 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.93.3
22
+ * @version 1.96.2
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}.
@@ -3,7 +3,7 @@
3
3
  * (c) Copyright 2009-2021 SAP SE or an SAP affiliate company.
4
4
  * Licensed under the Apache License, Version 2.0 - see LICENSE.txt.
5
5
  */
6
-
6
+ /*eslint-disable max-len */
7
7
  // Provides class sap.ui.model.type.FileSize
8
8
  sap.ui.define([
9
9
  "sap/base/util/each",
@@ -24,7 +24,7 @@ sap.ui.define([
24
24
  * @extends sap.ui.model.SimpleType
25
25
  *
26
26
  * @author SAP SE
27
- * @version 1.93.3
27
+ * @version 1.96.2
28
28
  *
29
29
  * @public
30
30
  * @param {object} [oFormatOptions] formatting options. Supports the same options as {@link sap.ui.core.format.FileSizeFormat.getInstance FileSizeFormat.getInstance}
@@ -145,6 +145,8 @@ sap.ui.define([
145
145
  aViolatedConstraints.push("maximum");
146
146
  aMessages.push(oBundle.getText("FileSize.Maximum", [oContent]));
147
147
  }
148
+ break;
149
+ default: break;
148
150
  }
149
151
  });
150
152
  if (aViolatedConstraints.length > 0) {
@@ -3,7 +3,7 @@
3
3
  * (c) Copyright 2009-2021 SAP SE or an SAP affiliate company.
4
4
  * Licensed under the Apache License, Version 2.0 - see LICENSE.txt.
5
5
  */
6
-
6
+ /*eslint-disable max-len */
7
7
  // Provides the base implementation for all model implementations
8
8
  sap.ui.define([
9
9
  "sap/base/util/each",
@@ -26,7 +26,7 @@ sap.ui.define([
26
26
  * @extends sap.ui.model.SimpleType
27
27
  *
28
28
  * @author SAP SE
29
- * @version 1.93.3
29
+ * @version 1.96.2
30
30
  *
31
31
  * @public
32
32
  * @param {object} [oFormatOptions] Formatting options. For a list of all available options, see {@link sap.ui.core.format.NumberFormat NumberFormat}.
@@ -121,6 +121,8 @@ sap.ui.define([
121
121
  aMessages.push(oBundle.getText("Float.Maximum",
122
122
  [that.oOutputFormat.format(oContent)]));
123
123
  }
124
+ break;
125
+ default: break;
124
126
  }
125
127
  });
126
128
  if (aViolatedConstraints.length > 0) {
@@ -3,7 +3,7 @@
3
3
  * (c) Copyright 2009-2021 SAP SE or an SAP affiliate company.
4
4
  * Licensed under the Apache License, Version 2.0 - see LICENSE.txt.
5
5
  */
6
-
6
+ /*eslint-disable max-len */
7
7
  // Provides the base implementation for all model implementations
8
8
  sap.ui.define([
9
9
  "sap/base/util/each",
@@ -26,7 +26,7 @@ sap.ui.define([
26
26
  * @extends sap.ui.model.SimpleType
27
27
  *
28
28
  * @author SAP SE
29
- * @version 1.93.3
29
+ * @version 1.96.2
30
30
  *
31
31
  * @public
32
32
  * @param {object} [oFormatOptions] Formatting options. For a list of all available options, see {@link sap.ui.core.format.NumberFormat NumberFormat}.
@@ -124,6 +124,8 @@ sap.ui.define([
124
124
  aMessages.push(oBundle.getText("Integer.Maximum",
125
125
  [that.oOutputFormat.format(oContent)]));
126
126
  }
127
+ break;
128
+ default: break;
127
129
  }
128
130
  });
129
131
  if (aViolatedConstraints.length > 0) {
@@ -3,7 +3,7 @@
3
3
  * (c) Copyright 2009-2021 SAP SE or an SAP affiliate company.
4
4
  * Licensed under the Apache License, Version 2.0 - see LICENSE.txt.
5
5
  */
6
-
6
+ /*eslint-disable max-len */
7
7
  // Provides the base implementation for all model implementations
8
8
  sap.ui.define([
9
9
  "sap/base/Log",
@@ -24,7 +24,7 @@ sap.ui.define([
24
24
  * @extends sap.ui.model.SimpleType
25
25
  *
26
26
  * @author SAP SE
27
- * @version 1.93.3
27
+ * @version 1.96.2
28
28
  *
29
29
  * @alias sap.ui.model.type.String
30
30
  * @param {object} [oFormatOptions]
@@ -3,7 +3,7 @@
3
3
  * (c) Copyright 2009-2021 SAP SE or an SAP affiliate company.
4
4
  * Licensed under the Apache License, Version 2.0 - see LICENSE.txt.
5
5
  */
6
-
6
+ /*eslint-disable max-len */
7
7
  // Provides the base implementation for all model implementations
8
8
  sap.ui.define(['./Date', 'sap/ui/core/format/DateFormat'],
9
9
  function(Date, DateFormat) {
@@ -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.93.3
22
+ * @version 1.96.2
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}.
@@ -3,7 +3,7 @@
3
3
  * (c) Copyright 2009-2021 SAP SE or an SAP affiliate company.
4
4
  * Licensed under the Apache License, Version 2.0 - see LICENSE.txt.
5
5
  */
6
-
6
+ /*eslint-disable max-len */
7
7
  // Provides the base implementation for all model implementations
8
8
  sap.ui.define(['./DateInterval', 'sap/ui/core/format/DateFormat'],
9
9
  function(DateInterval, 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.93.3
22
+ * @version 1.96.2
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}.
@@ -3,7 +3,7 @@
3
3
  * (c) Copyright 2009-2021 SAP SE or an SAP affiliate company.
4
4
  * Licensed under the Apache License, Version 2.0 - see LICENSE.txt.
5
5
  */
6
-
6
+ /*eslint-disable max-len */
7
7
  // Provides the base implementation for all model implementations
8
8
  sap.ui.define([
9
9
  "sap/base/strings/hash",
@@ -47,7 +47,7 @@ sap.ui.define([
47
47
  *
48
48
  *
49
49
  * @author SAP SE
50
- * @version 1.93.3
50
+ * @version 1.96.2
51
51
  *
52
52
  * @public
53
53
  * @param {object} [oFormatOptions]
@@ -97,8 +97,10 @@ sap.ui.define([
97
97
  * If a Unit is already known during formatting, we also pass it along to construct
98
98
  * an optimal NumberFormat instance.
99
99
  *
100
- * @param {*} aArgs an array containing the parsed dynamic format options
101
- * @param {*} sUnitToBeFormatted
100
+ * @param {any[]} aArgs An array containing the parsed dynamic format options
101
+ * @param {string} sUnitToBeFormatted The name of the unit to be formatted
102
+ *
103
+ * @return {sap.ui.core.format.NumberFormat} The new NumberFormat instance
102
104
  */
103
105
  Unit.prototype._getInstance = function(aArgs, sUnitToBeFormatted) {
104
106
  var oFormatArgs = this.createFormatOptions(aArgs);
@@ -180,9 +182,13 @@ sap.ui.define([
180
182
  };
181
183
 
182
184
  /**
183
- * Extracts arguments from the given value
184
- * @param vValue
185
- * @returns {Array}
185
+ * Extracts arguments from the given value.
186
+ *
187
+ * @param {any} vValue
188
+ * The value to extract parameters from
189
+ * @returns {any[]}
190
+ * Returns a copy of the given value starting with the third entry if the given value is an
191
+ * array; returns an empty array otherwise
186
192
  */
187
193
  Unit.prototype.extractArguments = function(vValue) {
188
194
  return Array.isArray(vValue) && vValue.length > 2 ? vValue.slice(2) : [];
@@ -308,6 +314,7 @@ sap.ui.define([
308
314
  aMessages.push(oBundle.getText("Unit.Decimals", [oContent]));
309
315
  }
310
316
  break;
317
+ default: break;
311
318
  }
312
319
  });
313
320
  if (aViolatedConstraints.length > 0) {
@@ -3,7 +3,7 @@
3
3
  * (c) Copyright 2009-2021 SAP SE or an SAP affiliate company.
4
4
  * Licensed under the Apache License, Version 2.0 - see LICENSE.txt.
5
5
  */
6
-
6
+ /*eslint-disable max-len */
7
7
  // Provides the XML model implementation of a list binding
8
8
  sap.ui.define([
9
9
  'sap/ui/model/ChangeReason',
@@ -83,8 +83,12 @@ sap.ui.define([
83
83
  };
84
84
 
85
85
  /**
86
- * Returns the entry data as required for change detection/diff. For the XMLModel this is the node
87
- * referenced by the context, serialized as XML.
86
+ * Returns the entry data as required for change detection/diff. For the XMLModel this is the
87
+ * node referenced by the context, serialized as XML.
88
+ *
89
+ * @param {sap.ui.model.Context} oContext The context to get the entry data from
90
+ *
91
+ * @returns {string} The entry data of the given context
88
92
  *
89
93
  * @private
90
94
  */
@@ -120,23 +124,23 @@ sap.ui.define([
120
124
  };
121
125
 
122
126
  /**
123
- * Check whether this Binding would provide new values and in case it changed,
124
- * inform interested parties about this.
127
+ * Checks whether this Binding would provide new values and in case it changed, fires a change
128
+ * event with change reason <code>Change</code>.
125
129
  *
126
130
  * @param {boolean} bForceupdate
131
+ * Whether the change event is fired regardless of the binding's state
127
132
  *
128
133
  */
129
134
  XMLListBinding.prototype.checkUpdate = function(bForceupdate){
135
+ var oList;
130
136
 
131
137
  if (this.bSuspended && !this.bIgnoreSuspend && !bForceupdate) {
132
138
  return;
133
139
  }
134
140
 
135
141
  if (!this.bUseExtendedChangeDetection) {
136
- var oList = this.oModel._getObject(this.sPath, this.oContext) || [];
142
+ oList = this.oModel._getObject(this.sPath, this.oContext) || [];
137
143
  if (oList.length != this.oList.length || bForceupdate) {
138
- // TODO does not work currently, so so old behavior
139
- //if (!jQuery.sap.equal(this.oList, oList)) {
140
144
  this.update();
141
145
  this._fireChange({reason: ChangeReason.Change});
142
146
  }
@@ -145,7 +149,7 @@ sap.ui.define([
145
149
  var that = this;
146
150
 
147
151
  //If the list has changed we need to update the indices first
148
- var oList = this.oModel._getObject(this.sPath, this.oContext) || [];
152
+ oList = this.oModel._getObject(this.sPath, this.oContext) || [];
149
153
  if (this.oList.length != oList.length) {
150
154
  bChangeDetected = true;
151
155
  }
@@ -165,6 +169,8 @@ sap.ui.define([
165
169
  bChangeDetected = true;
166
170
  return false;
167
171
  }
172
+
173
+ return true;
168
174
  });
169
175
  }
170
176
  } else {
@@ -3,7 +3,7 @@
3
3
  * (c) Copyright 2009-2021 SAP SE or an SAP affiliate company.
4
4
  * Licensed under the Apache License, Version 2.0 - see LICENSE.txt.
5
5
  */
6
-
6
+ /*eslint-disable max-len */
7
7
  /**
8
8
  * XML-based DataBinding
9
9
  *
@@ -40,12 +40,14 @@ sap.ui.define([
40
40
  * Constructor for a new XMLModel.
41
41
  *
42
42
  * @class
43
- * Model implementation for XML format
43
+ * Model implementation for the XML format.
44
+ *
45
+ * This model is not prepared to be inherited from.
44
46
  *
45
47
  * @extends sap.ui.model.ClientModel
46
48
  *
47
49
  * @author SAP SE
48
- * @version 1.93.3
50
+ * @version 1.96.2
49
51
  *
50
52
  * @param {object} oData either the URL where to load the XML from or an XML
51
53
  * @public
@@ -91,7 +93,7 @@ sap.ui.define([
91
93
  /**
92
94
  * Serializes the current XML data of the model into a string.
93
95
  *
94
- * @return the XML document serialized as string
96
+ * @return {string} The XML document serialized as string
95
97
  * @public
96
98
  */
97
99
  XMLModel.prototype.getXML = function(){
@@ -165,8 +167,8 @@ sap.ui.define([
165
167
  /**
166
168
  * Sets an XML namespace to use in the binding path
167
169
  *
168
- * @param {string} sNameSpace the namespace URI
169
- * @param {string} [sPrefix=null] the prefix for the namespace (optional)
170
+ * @param {string} sNameSpace The namespace URI
171
+ * @param {string} [sPrefix] The prefix for the namespace
170
172
  * @public
171
173
  */
172
174
  XMLModel.prototype.setNameSpace = function(sNameSpace, sPrefix){
@@ -207,11 +209,17 @@ sap.ui.define([
207
209
  * Sets a new value for the given property <code>sPropertyName</code> in the model.
208
210
  * If the model value changed all interested parties are informed.
209
211
  *
210
- * @param {string} sPath path of the property to set
211
- * @param {any} oValue value to set the property to
212
- * @param {object} [oContext=null] the context which will be used to set the property
213
- * @param {boolean} [bAsyncUpdate] whether to update other bindings dependent on this property asynchronously
214
- * @return {boolean} true if the value was set correctly and false if errors occurred like the entry was not found.
212
+ * @param {string} sPath
213
+ * Path of the property to set
214
+ * @param {any} oValue
215
+ * Value to set the property to
216
+ * @param {object} [oContext]
217
+ * The context which will be used to set the property
218
+ * @param {boolean} [bAsyncUpdate]
219
+ * Whether to update other bindings dependent on this property asynchronously
220
+ *
221
+ * @return {boolean}
222
+ * Whether the value was set correctly
215
223
  * @public
216
224
  */
217
225
  XMLModel.prototype.setProperty = function(sPath, oValue, oContext, bAsyncUpdate) {
@@ -248,14 +256,14 @@ sap.ui.define([
248
256
  };
249
257
 
250
258
  /**
251
- * Returns the value for the property with the given <code>sPropertyName</code>
252
- *
253
- * @param {string} sPath the path to the property
254
- * @param {object} [oContext=null] the context which will be used to retrieve the property
255
- * @type any
256
- * @return the value of the property
257
- * @public
258
- */
259
+ * Returns the value for the property with the given <code>sPropertyName</code>.
260
+ *
261
+ * @param {string} sPath The path to the property
262
+ * @param {object} [oContext] The context which will be used to retrieve the property
263
+ *
264
+ * @return {string} The value of the property
265
+ * @public
266
+ */
259
267
  XMLModel.prototype.getProperty = function(sPath, oContext) {
260
268
  var oResult = this._getObject(sPath, oContext);
261
269
  if (oResult && typeof oResult != "string") {
@@ -265,14 +273,14 @@ sap.ui.define([
265
273
  };
266
274
 
267
275
  /**
268
- * Returns the object for the given <code>path</code>
269
- *
270
- * @param {string} sPath the path to the object
271
- * @param {object} [oContext=null] the context which will be used to retrieve the object
272
- * @type any
273
- * @return the object
274
- * @public
275
- */
276
+ * Returns the object for the given path and context.
277
+ *
278
+ * @param {string} sPath The path to the object
279
+ * @param {object} [oContext] The context which will be used to retrieve the object
280
+ *
281
+ * @return {object} The object
282
+ * @public
283
+ */
276
284
  XMLModel.prototype.getObject = function(sPath, oContext) {
277
285
  var oObject = this._getObject(sPath, oContext);
278
286
  if (Array.isArray(oObject)) {
@@ -282,8 +290,11 @@ sap.ui.define([
282
290
  };
283
291
 
284
292
  /**
285
- * @param {string} sPath
286
- * @param {object} oContext
293
+ * Returns the object for the given path and context.
294
+ *
295
+ * @param {string} sPath The path to the object
296
+ * @param {object} [oContext] The context which will be used to retrieve the object
297
+ *
287
298
  * @returns {any} the node of the specified path/context
288
299
  */
289
300
  XMLModel.prototype._getObject = function (sPath, oContext) {
@@ -329,9 +340,12 @@ sap.ui.define([
329
340
  };
330
341
 
331
342
  /**
332
- * @param {string} sPath
333
- * @param {object} oContext
334
- * @returns {any}
343
+ * Returns the attribute for the given path and context.
344
+ *
345
+ * @param {string} oNode The node to get the attribute of
346
+ * @param {object} sName The name of the attribute to return
347
+ *
348
+ * @returns {any} The extracted attribute
335
349
  */
336
350
  XMLModel.prototype._getAttribute = function (oNode, sName) {
337
351
  if (!this.oNameSpaces || sName.indexOf(":") == -1) {
@@ -343,9 +357,12 @@ sap.ui.define([
343
357
  };
344
358
 
345
359
  /**
346
- * @param {object} oNode
347
- * @param {string} sName
348
- * @returns {any}
360
+ * Retrieves the child elements of the node by their name.
361
+ *
362
+ * @param {object} oNode The node holding the child elements
363
+ * @param {string} sName The name of the child elements
364
+ *
365
+ * @returns {any} The child elements matching the given name
349
366
  */
350
367
  XMLModel.prototype._getChildElementsByTagName = function (oNode, sName) {
351
368
  var aChildNodes = oNode.childNodes,
@@ -373,8 +390,10 @@ sap.ui.define([
373
390
  };
374
391
 
375
392
  /**
376
- * @param {string} sName
377
- * @returns {string}
393
+ * Gets the namespace for the given name.
394
+ *
395
+ * @param {string} sName The full name
396
+ * @returns {string} The namespace for the given name
378
397
  */
379
398
  XMLModel.prototype._getNameSpace = function (sName) {
380
399
  var iColonPos = sName.indexOf(":"),
@@ -386,8 +405,11 @@ sap.ui.define([
386
405
  };
387
406
 
388
407
  /**
389
- * @param {string} sName
390
- * @returns {string}
408
+ * Gets the local name for the given name.
409
+ *
410
+ * @param {string} sName The full name
411
+ *
412
+ * @returns {string} The local name for the given name
391
413
  */
392
414
  XMLModel.prototype._getLocalName = function (sName) {
393
415
  var iColonPos = sName.indexOf(":"),
@@ -400,7 +422,9 @@ sap.ui.define([
400
422
 
401
423
 
402
424
  /**
403
- * @returns {object}
425
+ * Gets the namespaces of the XML document
426
+ *
427
+ * @returns {object} The document's namespace prefixes
404
428
  */
405
429
  XMLModel.prototype._getDocNSPrefixes = function () {
406
430
  var oPrefixes = {},
@@ -422,7 +446,12 @@ sap.ui.define([
422
446
  };
423
447
 
424
448
  /**
425
- * Resolve the path relative to the given context
449
+ * Resolves the path relative to the given context.
450
+ *
451
+ * @param {string} sPath Path to resolve
452
+ * @param {sap.ui.model.Context} [oContext] Context to resolve a relative path against
453
+ *
454
+ * @return {string} Resolved path or undefined
426
455
  */
427
456
  XMLModel.prototype._resolve = function(sPath, oContext) {
428
457
  var bIsRelative = !sPath.startsWith("/"),
@@ -3,7 +3,7 @@
3
3
  * (c) Copyright 2009-2021 SAP SE or an SAP affiliate company.
4
4
  * Licensed under the Apache License, Version 2.0 - see LICENSE.txt.
5
5
  */
6
-
6
+ /*eslint-disable max-len */
7
7
  // Provides the XML model implementation of a property binding
8
8
  sap.ui.define([
9
9
  'sap/ui/model/ChangeReason',
@@ -45,11 +45,11 @@ sap.ui.define([
45
45
  };
46
46
 
47
47
  /**
48
- * Check whether this Binding would provide new values and in case it changed,
49
- * inform interested parties about this.
48
+ * Checks whether this Binding would provide new values and in case it changed, fires a change
49
+ * event with change reason <code>sap.ui.model.ChangeReason.Change</code>.
50
50
  *
51
51
  * @param {boolean} bForceupdate
52
- *
52
+ * Whether the change event will be fired regardless of the binding's state
53
53
  */
54
54
  XMLPropertyBinding.prototype.checkUpdate = function(bForceupdate){
55
55
  if (this.bSuspended && !bForceupdate) {
@@ -17,9 +17,9 @@ sap.ui.define(['sap/ui/model/ClientTreeBinding', "sap/base/util/each"],
17
17
  *
18
18
  * @param {sap.ui.model.xml.XMLModel} [oModel]
19
19
  * @param {string} Path pointing to the tree or array that should be bound
20
- * @param {object} [oContext=null] Context object for this binding
21
- * @param {array} [aFilters=null] Predefined filters contained in an array
22
- * @param {object} [mParameters=null] Additional model-specific parameters
20
+ * @param {object} [oContext] Context object for this binding
21
+ * @param {array} [aFilters] Predefined filters contained in an array
22
+ * @param {object} [mParameters] Additional model-specific parameters
23
23
  * @protected
24
24
  * @alias sap.ui.model.xml.XMLTreeBinding
25
25
  * @extends sap.ui.model.ClientTreeBinding
@@ -68,7 +68,8 @@ sap.ui.define(['sap/ui/model/ClientTreeBinding', "sap/base/util/each"],
68
68
  oChildContext = that.oModel.getContext(sChildPath);
69
69
  // check if there is a filter on this level applied
70
70
  if (that.oCombinedFilter && !that.bIsFiltering) {
71
- if (that.filterInfo.aFilteredContexts && that.filterInfo.aFilteredContexts.indexOf(oChildContext) != -1) {
71
+ if (that.filterInfo.aFilteredContexts
72
+ && that.filterInfo.aFilteredContexts.indexOf(oChildContext) != -1) {
72
73
  aContexts.push(oChildContext);
73
74
  }
74
75
  } else {
@@ -185,6 +185,7 @@ sap.ui.define([
185
185
  oPendingInteraction = null;
186
186
  oCurrentBrowserEvent = null;
187
187
  isNavigation = false;
188
+ bMatched = false;
188
189
  }
189
190
  }
190
191
 
@@ -217,11 +218,12 @@ sap.ui.define([
217
218
  var bInteractionActive = false,
218
219
  bInteractionProcessed = false,
219
220
  oCurrentBrowserEvent,
221
+ oBrowserElement,
222
+ bMatched = false,
220
223
  iInteractionStepTimer,
221
224
  bIdle = false,
222
225
  bSuspended = false,
223
226
  iInteractionCounter = 0,
224
- iScrollEventDelayId = 0,
225
227
  descScriptSrc = Object.getOwnPropertyDescriptor(HTMLScriptElement.prototype, "src");
226
228
 
227
229
  /* As UI5 resources gets also loaded via script tags we need to
@@ -596,7 +598,6 @@ sap.ui.define([
596
598
  } else {
597
599
  sType = sEventId;
598
600
  }
599
-
600
601
  Interaction.start(sType, oElement);
601
602
  oPendingInteraction = Interaction.getPending();
602
603
 
@@ -604,6 +605,13 @@ sap.ui.define([
604
605
  if (oPendingInteraction && !oPendingInteraction.completed && Interaction.onInteractionStarted) {
605
606
  oPendingInteraction.passportAction = Interaction.onInteractionStarted(oPendingInteraction, bForce);
606
607
  }
608
+ if (oCurrentBrowserEvent) {
609
+ oBrowserElement = oCurrentBrowserEvent.srcControl;
610
+ }
611
+ // if browser event matches the first control event we take it for trigger/event determination (step name)
612
+ if (oElement && oElement.getId && oBrowserElement && oElement.getId() === oBrowserElement.getId()) {
613
+ bMatched = true;
614
+ }
607
615
  oCurrentBrowserEvent = null;
608
616
  //only handle the first browser event within a call stack. Ignore virtual/harmonization events.
609
617
  bInteractionProcessed = true;
@@ -613,7 +621,26 @@ sap.ui.define([
613
621
  oCurrentBrowserEvent = null;
614
622
  bInteractionProcessed = false;
615
623
  }, 0);
624
+ } else if (oPendingInteraction && oBrowserElement && !bMatched) {
625
+ // if browser event matches one of the next control events we take it for trigger/event determination (step name)
626
+ var elem = oBrowserElement;
627
+ if (elem && oElement.getId() === elem.getId()) {
628
+ oPendingInteraction.trigger = oElement.getId();
629
+ oPendingInteraction.event = sEventId;
630
+ bMatched = true;
631
+ } else {
632
+ while (elem && elem.getParent()) {
633
+ elem = elem.getParent();
634
+ if (oElement.getId() === elem.getId()) {
635
+ oPendingInteraction.trigger = oElement.getId();
636
+ oPendingInteraction.event = sEventId;
637
+ //if we find no direct match we consider the last control event for the trigger/event (step name)
638
+ break;
639
+ }
640
+ }
641
+ }
616
642
  }
643
+
617
644
  }
618
645
  },
619
646
 
@@ -728,19 +755,7 @@ sap.ui.define([
728
755
  * @private
729
756
  */
730
757
  notifyScrollEvent : function(oEvent) {
731
- if (bInteractionActive) {
732
- // notify for a newly started interaction, but not more often than every 250ms.
733
- if (!iScrollEventDelayId) {
734
- Interaction.notifyEventStart(oEvent);
735
- } else {
736
- clearTimeout(iScrollEventDelayId);
737
- }
738
- iScrollEventDelayId = setTimeout(function(){
739
- Interaction.notifyStepStart(oEvent.sourceElement);
740
- iScrollEventDelayId = 0;
741
- Interaction.notifyStepEnd();
742
- }, 250);
743
- }
758
+ /* Scrolling is disabled as it does not work properly for non user triggered scrolling */
744
759
  },
745
760
 
746
761
  /**