@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
@@ -20,7 +20,7 @@ sap.ui.define(['sap/ui/core/Element'],
20
20
  * @extends sap.ui.core.Element
21
21
  *
22
22
  * @author SAP SE
23
- * @version 1.93.3
23
+ * @version 1.96.2
24
24
  * @since 1.22.0
25
25
  *
26
26
  * @public
@@ -23,7 +23,7 @@ sap.ui.define([
23
23
  * @extends sap.ui.base.ManagedObject
24
24
  *
25
25
  * @author SAP SE
26
- * @version 1.93.3
26
+ * @version 1.96.2
27
27
  * @since 1.22.0
28
28
  *
29
29
  * @public
@@ -23,7 +23,7 @@ sap.ui.define([
23
23
  * @extends sap.ui.base.ManagedObject
24
24
  *
25
25
  * @author SAP SE
26
- * @version 1.93.3
26
+ * @version 1.96.2
27
27
  * @since 1.22.0
28
28
  *
29
29
  * @public
@@ -20,7 +20,7 @@ sap.ui.define(['sap/ui/base/ManagedObject'],
20
20
  * @extends sap.ui.base.ManagedObject
21
21
  *
22
22
  * @author SAP SE
23
- * @version 1.93.3
23
+ * @version 1.96.2
24
24
  * @since 1.22.0
25
25
  *
26
26
  * @public
@@ -38,7 +38,7 @@ sap.ui.define(['./ExportType'],
38
38
  * @extends sap.ui.core.util.ExportType
39
39
  *
40
40
  * @author SAP SE
41
- * @version 1.93.3
41
+ * @version 1.96.2
42
42
  * @since 1.22.0
43
43
  *
44
44
  * @public
@@ -13,7 +13,7 @@ sap.ui.define(["sap/ui/thirdparty/jquery"],
13
13
  * Utility class to handle files.
14
14
  *
15
15
  * @author SAP SE
16
- * @version 1.93.3
16
+ * @version 1.96.2
17
17
  * @namespace
18
18
  *
19
19
  * @public
@@ -20,7 +20,7 @@ sap.ui.define([
20
20
  *
21
21
  * @extends sap.ui.base.Object
22
22
  * @author SAP SE
23
- * @version 1.93.3
23
+ * @version 1.96.2
24
24
  * @private
25
25
  * @alias sap.ui.core.util.LibraryInfo
26
26
  */
@@ -13,9 +13,12 @@ sap.ui
13
13
  'sap/ui/thirdparty/sinon',
14
14
  'sap/base/Log',
15
15
  'sap/base/util/isEmptyObject',
16
+ 'sap/ui/core/util/MockServerAnnotationsHandler',
17
+ 'sap/ui/core/util/DraftEnabledMockServer',
18
+ 'jquery.sap.xml',
16
19
  'jquery.sap.sjax'
17
20
  ],
18
- function(jQuery, ManagedObject, sinon, Log, isEmptyObject/*, jQuerySapSjax*/) {
21
+ function(jQuery, ManagedObject, sinon, Log, isEmptyObject, MockServerAnnotationsHandler, DraftEnabledMockServer/*, jQuerySapXml, jQuerySapSjax*/) {
19
22
  "use strict";
20
23
 
21
24
  /**
@@ -31,7 +34,7 @@ sap.ui
31
34
  * @extends sap.ui.base.ManagedObject
32
35
  * @abstract
33
36
  * @author SAP SE
34
- * @version 1.93.3
37
+ * @version 1.96.2
35
38
  * @public
36
39
  * @alias sap.ui.core.util.MockServer
37
40
  */
@@ -1952,9 +1955,7 @@ sap.ui
1952
1955
  }
1953
1956
  // create mockserver annotations handler only when metadata exists
1954
1957
  if (this._sMetadata) {
1955
- var MockServerAnnotationsHandler = sap.ui.requireSync("sap/ui/core/util/MockServerAnnotationsHandler");
1956
1958
  var oAnnotations = MockServerAnnotationsHandler.parse(this._oMetadata, this._sMetadata);
1957
- var DraftEnabledMockServer = sap.ui.requireSync("sap/ui/core/util/DraftEnabledMockServer");
1958
1959
  DraftEnabledMockServer.handleDraft(oAnnotations, this);
1959
1960
  }
1960
1961
  this._resetPseudoRandomNumberGenerator();
@@ -2159,7 +2160,6 @@ sap.ui
2159
2160
  method: "GET",
2160
2161
  path: new RegExp("\\$metadata([?#].*)?"),
2161
2162
  response: function(oXhr) {
2162
- sap.ui.requireSync("jquery.sap.xml");
2163
2163
  Log.debug("MockServer: incoming request for url: " + oXhr.url);
2164
2164
  var mHeaders = {
2165
2165
  "Content-Type": "application/xml;charset=utf-8"
@@ -3,8 +3,8 @@
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
- sap.ui.define(['sap/ui/core/util/MockServer', 'sap/ui/model/odata/ODataModel'],
7
- function(MockServer, ODataModel) {
6
+ sap.ui.define(['sap/ui/model/odata/ODataModel'],
7
+ function(ODataModel) {
8
8
  "use strict";
9
9
  return {
10
10
 
@@ -13,6 +13,7 @@ sap.ui.define(['sap/ui/core/util/MockServer', 'sap/ui/model/odata/ODataModel'],
13
13
  this._index = 0;
14
14
  }
15
15
  var sUri = "/annotationhandler" + this._index++ + "/";
16
+ var MockServer = sap.ui.require("sap/ui/core/util/MockServer");
16
17
  var oMockStub = new MockServer({
17
18
  rootUri: sUri,
18
19
  requests: [{
@@ -13,7 +13,7 @@ sap.ui.define([ "sap/ui/core/Core", "sap/ui/model/ParseException", "sap/ui/model
13
13
  *
14
14
  * @class Parses and validates data on the <code>paste</code> event of an SAPUI5 table.
15
15
  * @author SAP SE
16
- * @version 1.93.3
16
+ * @version 1.96.2
17
17
  * @private
18
18
  * @ui5-restricted sap.ui.table.Table, sap.m.Table, sap.m.plugins.PasteProvider
19
19
  * @alias sap.ui.core.util.PasteHelper
@@ -13,13 +13,14 @@ sap.ui.define([
13
13
  "sap/ui/base/BindingParser",
14
14
  "sap/ui/base/ManagedObject",
15
15
  "sap/ui/base/SyncPromise",
16
+ "sap/ui/core/Component",
16
17
  "sap/ui/core/XMLTemplateProcessor",
17
18
  "sap/ui/model/BindingMode",
18
19
  "sap/ui/model/CompositeBinding",
19
20
  "sap/ui/model/Context",
20
21
  "sap/ui/performance/Measurement"
21
22
  ], function (Log, deepExtend, JSTokenizer, ObjectPath, BindingParser, ManagedObject, SyncPromise,
22
- XMLTemplateProcessor, BindingMode, CompositeBinding, Context, Measurement) {
23
+ Component, XMLTemplateProcessor, BindingMode, CompositeBinding, Context, Measurement) {
23
24
  "use strict";
24
25
 
25
26
  var sNAMESPACE = "http://schemas.sap.com/sapui5/extension/sap.ui.core.template/1",
@@ -1442,22 +1443,20 @@ sap.ui.define([
1442
1443
  return oSyncPromiseResolvedTrue;
1443
1444
  }
1444
1445
  return oPromise.then(function (sName) {
1445
- var CustomizingConfiguration
1446
- = sap.ui.require("sap/ui/core/CustomizingConfiguration"),
1447
- oViewExtension;
1446
+ var oViewExtension;
1448
1447
 
1449
1448
  if (sName !== sValue) {
1450
1449
  // debug trace for dynamic names only
1451
1450
  debug(oElement, "name =", sName);
1452
1451
  }
1453
- if (CustomizingConfiguration) {
1454
- oViewExtension = CustomizingConfiguration.getViewExtension(sCurrentName,
1455
- sName, oViewInfo.componentId);
1456
- if (oViewExtension && oViewExtension.className === "sap.ui.core.Fragment"
1457
- && oViewExtension.type === "XML") {
1458
- return insertFragment(oViewExtension.fragmentName, oElement,
1459
- oWithControl);
1460
- }
1452
+ oViewExtension = Component.getCustomizing(oViewInfo.componentId, {
1453
+ extensionName : sName,
1454
+ name : sCurrentName,
1455
+ type : "sap.ui.viewExtensions"
1456
+ });
1457
+ if (oViewExtension && oViewExtension.className === "sap.ui.core.Fragment"
1458
+ && oViewExtension.type === "XML") {
1459
+ return insertFragment(oViewExtension.fragmentName, oElement, oWithControl);
1461
1460
  }
1462
1461
 
1463
1462
  return true;
@@ -70,18 +70,40 @@ sap.ui.define([
70
70
  * @param {string} [oSelector.name] - Name of the extension point targeted by the change. (name or id property is mandatory for selector)
71
71
  * @param {sap.ui.core.UIComponent} oAppComponent - Application component
72
72
  * @param {Element} oView - For XML processing only: XML node of the view
73
+ * @returns {Promise<sap.ui.base.ManagedObject|Element>} Control representation targeted within the selector, wrapped in a Promise
74
+ * @throws {Error} In case no control could be determined, an error is thrown
75
+ * @public
76
+ */
77
+ bySelectorTypeIndependent: function (oSelector, oAppComponent, oView) {
78
+ var sControlId;
79
+ return Promise.resolve()
80
+ .then(function () {
81
+ if (oSelector && oSelector.name) {
82
+ oView = oView || this.bySelector(oSelector.viewSelector, oAppComponent);
83
+ return this.getExtensionPointInfo(oSelector.name, oView)
84
+ .then(function (oExtensionPointInfo) {
85
+ return oExtensionPointInfo ? oExtensionPointInfo.parent : undefined;
86
+ });
87
+ }
88
+ sControlId = this.getControlIdBySelector(oSelector, oAppComponent);
89
+ return this._byId(sControlId, oView);
90
+ }.bind(this));
91
+ },
92
+
93
+ /**
94
+ * Function determining the control targeted by the change.
95
+ *
96
+ * @param {object} oSelector - Target of a flexibility change
97
+ * @param {string} [oSelector.id] - ID of the control targeted by the change. (name or id property is mandatory for selector)
98
+ * @param {boolean} [oSelector.isLocalId] - <code>true</code> if the ID within the selector is a local ID or a global ID
99
+ * @param {sap.ui.core.UIComponent} oAppComponent - Application component
100
+ * @param {Element} oView - For XML processing only: XML node of the view
73
101
  * @returns {sap.ui.base.ManagedObject|Element} Control representation targeted within the selector
74
102
  * @throws {Error} In case no control could be determined, an error is thrown
75
103
  * @public
76
- */
104
+ */
77
105
  bySelector: function (oSelector, oAppComponent, oView) {
78
- var sControlId;
79
- if (oSelector && oSelector.name) {
80
- oView = oView || this.bySelector(oSelector.viewSelector, oAppComponent);
81
- var oExtensionPointInfo = this.getExtensionPointInfo(oSelector.name, oView);
82
- return oExtensionPointInfo ? oExtensionPointInfo.parent : undefined;
83
- }
84
- sControlId = this.getControlIdBySelector(oSelector, oAppComponent);
106
+ var sControlId = this.getControlIdBySelector(oSelector, oAppComponent);
85
107
  return this._byId(sControlId, oView);
86
108
  },
87
109
 
@@ -95,7 +117,7 @@ sap.ui.define([
95
117
  * @returns {string} ID of the control
96
118
  * @throws {Error} In case no control could be determined, an error is thrown
97
119
  * @protected
98
- */
120
+ */
99
121
  getControlIdBySelector: function (oSelector, oAppComponent) {
100
122
  if (!oSelector){
101
123
  return undefined;
@@ -216,7 +238,7 @@ sap.ui.define([
216
238
  _checkAndPrefixIdsInFragment: function(oFragment, sIdPrefix) {
217
239
  var oParseError = XMLHelper.getParseError(oFragment);
218
240
  if (oParseError.errorCode !== 0) {
219
- throw new Error(oFragment.parseError.reason);
241
+ return Promise.reject(new Error(oFragment.parseError.reason));
220
242
  }
221
243
 
222
244
  var oControlNodes = oFragment.documentElement;
@@ -233,20 +255,23 @@ sap.ui.define([
233
255
  function oCallback(oChild) {
234
256
  aChildren.push(oChild);
235
257
  }
258
+ var oPromiseChain = Promise.resolve();
236
259
  for (var i = 0, n = aRootChildren.length; i < n; i++) {
237
- this._traverseXmlTree(oCallback, aRootChildren[i]);
260
+ oPromiseChain = oPromiseChain.then(this._traverseXmlTree.bind(this, oCallback, aRootChildren[i]));
238
261
  }
239
262
 
240
- for (var j = 0, m = aChildren.length; j < m; j++) {
241
- // aChildren[j].id is not available in IE11, therefore using .getAttribute/.setAttribute
242
- if (aChildren[j].getAttribute("id")) {
243
- aChildren[j].setAttribute("id", sIdPrefix + "." + aChildren[j].getAttribute("id"));
244
- } else {
245
- throw new Error("At least one control does not have a stable ID");
263
+ return oPromiseChain.then(function () {
264
+ for (var j = 0, m = aChildren.length; j < m; j++) {
265
+ // aChildren[j].id is not available in IE11, therefore using .getAttribute/.setAttribute
266
+ if (aChildren[j].getAttribute("id")) {
267
+ aChildren[j].setAttribute("id", sIdPrefix + "." + aChildren[j].getAttribute("id"));
268
+ } else {
269
+ throw new Error("At least one control does not have a stable ID");
270
+ }
246
271
  }
247
- }
248
272
 
249
- return oControlNodes;
273
+ return oControlNodes;
274
+ });
250
275
  },
251
276
 
252
277
  /**
@@ -270,22 +295,30 @@ sap.ui.define([
270
295
  * Gets the metadata of an XML control.
271
296
  *
272
297
  * @param {Element} oControl - Control in XML
273
- * @returns {sap.ui.base.Metadata} Metadata of the control
298
+ * @returns {Promise<sap.ui.base.Metadata>} Resolves methadata of the control
274
299
  */
275
300
  _getControlMetadataInXml: function(oControl) {
276
301
  var sControlType = this._getControlTypeInXml(oControl).replace(/\./g, "/");
277
- var ControlType = sap.ui.require(sControlType);
278
- if (!ControlType) {
279
- ControlType = sap.ui.requireSync(sControlType);
280
- }
281
- return ControlType.getMetadata();
302
+ return new Promise(function(fnResolve, fnReject) {
303
+ sap.ui.require([sControlType],
304
+ function(ControlType) {
305
+ if (ControlType.getMetadata) {
306
+ fnResolve(ControlType.getMetadata());
307
+ }
308
+ fnReject(new Error("getMetadata function is not available on control type"));
309
+ },
310
+ function() {
311
+ fnReject(new Error("Required control '" + sControlType + "' couldn't be found"));
312
+ }
313
+ );
314
+ });
282
315
  },
283
316
 
284
317
  /**
285
318
  * Gets the metadata of a control.
286
319
  *
287
320
  * @param {sap.ui.base.ManagedObject|Element} vControl - Control representation
288
- * @returns {sap.ui.base.Metadata} Metadata of the control
321
+ * @returns {Promise<sap.ui.base.Metadata>} Metadata of the control wrapped in a Promise
289
322
  */
290
323
  getControlMetadata: function(vControl) {},
291
324
 
@@ -293,11 +326,13 @@ sap.ui.define([
293
326
  * Gets the library name for a control
294
327
  *
295
328
  * @param {sap.ui.base.ManagedObject|Element} vControl - Control representation
296
- * @returns {string} library name
329
+ * @returns {Promise<string>} library name wrapped in a promise
297
330
  */
298
331
  getLibraryName: function(vControl) {
299
- var oMetadata = this.getControlMetadata(vControl);
300
- return oMetadata.getLibraryName();
332
+ return this.getControlMetadata(vControl)
333
+ .then(function (oMetadata) {
334
+ return oMetadata.getLibraryName();
335
+ });
301
336
  },
302
337
 
303
338
 
@@ -321,25 +356,41 @@ sap.ui.define([
321
356
  *
322
357
  * @param {function} fnCallback - Function that will be called for every control with the following arguments: <code>fnCallback(&lt;Element>)</code>
323
358
  * @param {Element} oRootNode - Root node from which we start traversing the tree
359
+ * @returns {Promise} resolves when async processing is done
324
360
  */
325
- _traverseXmlTree: function(fnCallback, oRootNode) {
361
+ _traverseXmlTree: function (fnCallback, oRootNode) {
326
362
  function recurse(oParent, oCurrentNode, bIsAggregation) {
327
- var oAggregations;
328
- if (!bIsAggregation) {
329
- var oMetadata = this._getControlMetadataInXml(oCurrentNode);
330
- oAggregations = oMetadata.getAllAggregations();
331
- }
332
- var aChildren = this._getElementNodeChildren(oCurrentNode);
333
- aChildren.forEach(function(oChild) {
334
- var bIsCurrentNodeAggregation = oAggregations && oAggregations[oChild.localName];
335
- recurse.call(this, oCurrentNode, oChild, bIsCurrentNodeAggregation);
336
- // if it's an aggregation, we don't call the callback function
337
- if (!bIsCurrentNodeAggregation) {
338
- fnCallback(oChild);
339
- }
340
- }.bind(this));
363
+ return Promise.resolve()
364
+ .then(function () {
365
+ if (!bIsAggregation) {
366
+ return this._getControlMetadataInXml(oCurrentNode, true);
367
+ }
368
+ return undefined;
369
+ }.bind(this))
370
+
371
+ .then(function (oMetadata) {
372
+ return oMetadata && oMetadata.getAllAggregations();
373
+ })
374
+ .then(function (aAggregations) {
375
+ var aChildren = this._getElementNodeChildren(oCurrentNode);
376
+ var oPromiseChain = Promise.resolve();
377
+ aChildren.forEach(function(oChild) {
378
+ var bIsCurrentNodeAggregation = aAggregations && aAggregations[oChild.localName];
379
+ oPromiseChain = oPromiseChain.then(function() {
380
+ return recurse.call(this, oCurrentNode, oChild, bIsCurrentNodeAggregation)
381
+ .then(function () {
382
+ // if it's an aggregation, we don't call the callback function
383
+ if (!bIsCurrentNodeAggregation) {
384
+ fnCallback(oChild);
385
+ }
386
+ });
387
+ }.bind(this));
388
+ }.bind(this));
389
+
390
+ return oPromiseChain;
391
+ }.bind(this));
341
392
  }
342
- recurse.call(this, oRootNode, oRootNode, false);
393
+ return recurse.call(this, oRootNode, oRootNode, false);
343
394
  },
344
395
 
345
396
  _getSerializedValue: function (vPropertyValue) {
@@ -376,11 +427,15 @@ sap.ui.define([
376
427
  *
377
428
  * @param {sap.ui.base.ManagedObject|Element} vControl - Control representation
378
429
  * @param {string} sPropertyName - Property name
379
- * @returns {any} Binding info object or value of the property
430
+ * @returns {Promise<any>} Binding info object or value of the property
380
431
  * @public
381
432
  */
382
433
  getPropertyBindingOrProperty: function(vControl, sPropertyName) {
383
- return this.getPropertyBinding(vControl, sPropertyName) || this.getProperty(vControl, sPropertyName);
434
+ var oPropertyBinding = this.getPropertyBinding(vControl, sPropertyName);
435
+ if (oPropertyBinding) {
436
+ return Promise.resolve(oPropertyBinding);
437
+ }
438
+ return this.getProperty(vControl, sPropertyName);
384
439
  },
385
440
 
386
441
  /**
@@ -414,7 +469,7 @@ sap.ui.define([
414
469
  * See {@link sap.ui.core.Control#getVisible} method.
415
470
  *
416
471
  * @param {sap.ui.base.ManagedObject|Element} vControl - Control representation
417
- * @returns {boolean} <code>true</code> if the control's <code>visible</code> property is set
472
+ * @returns {Promise<boolean>} <code>true</code> if the control's <code>visible</code> property is set wrapped in promise
418
473
  * @public
419
474
  */
420
475
  getVisible: function (vControl) {},
@@ -462,6 +517,7 @@ sap.ui.define([
462
517
  * @param {sap.ui.base.ManagedObject|Element} vControl - Control representation
463
518
  * @param {string} sAggregationName - Aggregation name
464
519
  * @param {object} vBindingInfos - Binding info
520
+ * @returns {Promise} resolves when async processing is done
465
521
  * @public
466
522
  */
467
523
  bindAggregation: function (vControl, sAggregationName, vBindingInfos) {},
@@ -471,6 +527,7 @@ sap.ui.define([
471
527
  *
472
528
  * @param {sap.ui.base.ManagedObject|Element} vControl - Control representation
473
529
  * @param {string} sAggregationName - Aggregation name to be unbound
530
+ * @returns {Promise} resolves when async processing is done
474
531
  * @public
475
532
  */
476
533
  unbindAggregation: function (vControl, sAggregationName) {},
@@ -490,7 +547,7 @@ sap.ui.define([
490
547
  *
491
548
  * @param {sap.ui.base.ManagedObject|Element} vControl - Control representation
492
549
  * @param {string} sPropertyName - Property name
493
- * @returns {any} Value of the property
550
+ * @returns {Promise<any>} Value of the property wrapped in a Pomise
494
551
  * @public
495
552
  */
496
553
  getProperty: function (vControl, sPropertyName) {},
@@ -498,7 +555,7 @@ sap.ui.define([
498
555
  /**
499
556
  * See {@link sap.ui.base.ManagedObject#isPropertyInitial} method.
500
557
  *
501
- * @param {sap.ui.base.ManagedObject|Element} vControl - Control representation
558
+ * @param {sap.ui.base.ManagedObject|Element} oControl - Control representation
502
559
  * @param {string} sPropertyName - Property name
503
560
  * @returns {boolean} <code>true</code> if the property is initial
504
561
  * @public
@@ -533,6 +590,7 @@ sap.ui.define([
533
590
  * @param {string} sCustomDataKey - Key for the Custom Data
534
591
  * @param {string} sValue - Value for the Custom Data
535
592
  * @param {sap.ui.core.Component} oAppComponent - App Component Instance
593
+ * @param {Promise} resolves when async processing is done
536
594
  */
537
595
  createAndAddCustomData: function(oControl, sCustomDataKey, sValue, oAppComponent) {},
538
596
 
@@ -546,18 +604,17 @@ sap.ui.define([
546
604
  * @param {string} [oSelector.id] - Control ID targeted by the change
547
605
  * @param {boolean} [oSelector.isLocalId] - <code>true</code> if the ID within the selector is a local ID or a global ID
548
606
  * @param {object} [mSettings] - Further settings or properties for the control that is created
549
- * @param {boolean} bAsync - Determines whether a synchronous (promise) or an asynchronous value should be returned
550
- * @returns {Element|Promise} Element or promise with element of the control that is created
607
+ * @returns {Promise<Element>} Promise with Element of the control that is created
551
608
  * @public
552
609
  */
553
- createControl: function (sClassName, oAppComponent, oView, oSelector, mSettings, bAsync) {},
610
+ createControl: function (sClassName, oAppComponent, oView, oSelector, mSettings) {},
554
611
 
555
612
  /**
556
613
  * See {@link sap.ui.base.ManagedObject#applySettings} method.
557
614
  *
558
615
  * @param {sap.ui.base.ManagedObject|Element} vControl - Control representation
559
616
  * @param {object} mSettings - Further settings or properties for the control
560
- * @returns {Element} XML node of the control being created
617
+ * @returns {Promise<Element>} XML node of the control being created wrapped into promise
561
618
  * @public
562
619
  */
563
620
  applySettings: function(vControl, mSettings) {},
@@ -623,7 +680,7 @@ sap.ui.define([
623
680
  * See {@link sap.ui.base.ManagedObjectMetadata#getAllAggregations} method.
624
681
  *
625
682
  * @param {sap.ui.base.ManagedObject|Element} vControl - Control representation
626
- * @return {Object<string,object>} Map of aggregation info objects keyed by aggregation names
683
+ * @return {Promise<Object>} Map of aggregation info objects keyed by aggregation names wrapped in a Promise
627
684
  * @public
628
685
  */
629
686
  getAllAggregations: function (vControl) {},
@@ -633,7 +690,7 @@ sap.ui.define([
633
690
  *
634
691
  * @param {sap.ui.base.ManagedObject|Element} vParent - Control which has the aggregation
635
692
  * @param {string} sName - Aggregation name
636
- * @returns {sap.ui.base.ManagedObject[]|Element[]} Aggregation content
693
+ * @returns {Promise<sap.ui.base.ManagedObject[]|Element[]>} Aggregation content
637
694
  * @public
638
695
  */
639
696
  getAggregation: function (vParent, sName) {},
@@ -648,6 +705,7 @@ sap.ui.define([
648
705
  * @param {int} iIndex - Index for <code>oObject</code> in the aggregation
649
706
  * @param {Element} [oView] - XML node of the view, needed in XML case to potentially create (aggregation) nodes
650
707
  * @param {boolean} [bSkipAdjustIndex] - true in case of inserting an XML node or element at an extension point, needed only in XML case
708
+ * @returns {Promise} resolves when async processing is done
651
709
  * @public
652
710
  */
653
711
  insertAggregation: function (vParent, sAggregationName, oObject, iIndex, oView, bSkipAdjustIndex) {},
@@ -660,6 +718,7 @@ sap.ui.define([
660
718
  * @param {sap.ui.base.ManagedObject|Element} vParent - Control representation
661
719
  * @param {string} sAggregationName - Aggregation name
662
720
  * @param {sap.ui.base.ManagedObject|Element} oObject - Aggregated object to be set
721
+ * @returns {Promise} resolves when async processing is done
663
722
  * @public
664
723
  */
665
724
  removeAggregation: function (vParent, sAggregationName, oObject) {},
@@ -670,6 +729,7 @@ sap.ui.define([
670
729
  *
671
730
  * @param {sap.ui.base.ManagedObject|Element} vParent - Control representation
672
731
  * @param {string} sAggregationName - Aggregation name
732
+ * @returns {Promise} resolves when async processing is done
673
733
  * @public
674
734
  */
675
735
  removeAllAggregation: function (vParent, sAggregationName) {},
@@ -680,6 +740,7 @@ sap.ui.define([
680
740
  *
681
741
  * @param {sap.ui.base.ManagedObject|Element} vControl - Control representation
682
742
  * @param {string} sAggregationName - Aggregation name
743
+ * @returns {Promise} resolves when async processing is done
683
744
  * @public
684
745
  */
685
746
  getBindingTemplate: function (vControl, sAggregationName) {},
@@ -689,6 +750,7 @@ sap.ui.define([
689
750
  *
690
751
  * @param {sap.ui.base.ManagedObject|Element} vParent - Control representation
691
752
  * @param {string} sAggregationName - Aggregation name
753
+ * @returns {Promise} resolves when async processing is done
692
754
  * @public
693
755
  */
694
756
  updateAggregation: function (vParent, sAggregationName) {},
@@ -696,8 +758,8 @@ sap.ui.define([
696
758
  /**
697
759
  * Finds the index of the control in its parent aggregation.
698
760
  *
699
- * @param {sap.ui.base.ManagedObject|Element} vParent - Control representation
700
- * @returns {int} Index of the control
761
+ * @param {sap.ui.base.ManagedObject|Element} vControl - Control representation
762
+ * @returns {Promise<int>} Index of the control wrapped in a Promise
701
763
  * @public
702
764
  */
703
765
  findIndexInParentAggregation: function (vControl) {},
@@ -707,11 +769,20 @@ sap.ui.define([
707
769
  *
708
770
  * @param {sap.ui.base.ManagedObject|Element} vControl - Control representation
709
771
  * @param {sap.ui.base.ManagedObject|Element} [vParent] - Control representation of the parent only needed in XML case
710
- * @returns {string} Parent aggregation name
772
+ * @returns {Promise<string>} Parent aggregation name wrapped in a Promise
711
773
  * @public
712
774
  */
713
775
  getParentAggregationName: function (vControl, vParent) {},
714
776
 
777
+ /**
778
+ * Finds the aggregation by the given aggregation name.
779
+ *
780
+ * @param {sap.ui.base.ManagedObject|Element} oControl - Control representation
781
+ * @param {string} sAggregationName - Aggregation name to be found
782
+ * @returns {Promise} Aggregation object
783
+ */
784
+ findAggregation: function(oControl, sAggregationName) {},
785
+
715
786
  /**
716
787
  * Validates if the control has the correct type for the aggregation.
717
788
  *
@@ -720,7 +791,7 @@ sap.ui.define([
720
791
  * @param {sap.ui.base.ManagedObject|Element} vParent - Parent of the control
721
792
  * @param {string} sFragment - Path to the fragment that contains the control whose type is to be checked
722
793
  * @param {int} iIndex - Index of the current control in the parent aggregation
723
- * @returns {boolean} <code>true</code> if the type matches
794
+ * @returns {Promise<boolean>} <code>true</code> if the type matches wrapped in a Promise
724
795
  * @public
725
796
  */
726
797
  validateType: function(vControl, mAggregationMetadata, vParent, sFragment, iIndex) {},
@@ -829,9 +900,10 @@ sap.ui.define([
829
900
  * @param {string} sEventName - Event name
830
901
  * @param {string} sFunctionPath - Absolute path to a function
831
902
  * @param {object} vData - Predefined values for event handler function
903
+ * @returns {Promise} resolves when async processing is done
832
904
  * @public
833
905
  */
834
- attachEvent: function(oObject, sEventName, sFunctionPath, vData) {},
906
+ attachEvent: function(vControl, sEventName, sFunctionPath, vData) {},
835
907
 
836
908
  /**
837
909
  * Detaches event from the specified ManagedObject.
@@ -839,16 +911,17 @@ sap.ui.define([
839
911
  * @param {sap.ui.base.ManagedObject|Element} vControl - Control representation
840
912
  * @param {string} sEventName - Event name
841
913
  * @param {string} sFunctionPath - Absolute path to a function
914
+ * @returns {Promise} resolves when async processing is done
842
915
  * @public
843
916
  */
844
- detachEvent: function(oObject, sEventName, sFunctionPath) {},
917
+ detachEvent: function(vControl, sEventName, sFunctionPath) {},
845
918
 
846
919
  /**
847
920
  * Returns an object containing parent control, aggregation name and index for controls to be added of the given extension point.
848
921
  *
849
922
  * @param {string} sExtensionPointName - Name of the extension point
850
923
  * @param {sap.ui.core.mvc.View|Element} oView - View control or XML node of the view
851
- * @returns {{parent: object, aggregation: string, index: number, defaultContent: array}} - Object containing parent control, aggregation name, index and the defaultContent of the extensionpoint if exists.
924
+ * @returns {Promise<{parent: object, aggregation: string, index: number, defaultContent: array}>} - Object containing parent control, aggregation name, index and the defaultContent of the extensionpoint if exists. It is wrapped in a Promise
852
925
  * @experimental
853
926
  */
854
927
  getExtensionPointInfo: function(sExtensionPointName, oView) {}