@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
@@ -46,7 +46,7 @@ sap.ui.define([
46
46
  * @extends sap.ui.base.EventProvider
47
47
  *
48
48
  * @author SAP SE
49
- * @version 1.93.3
49
+ * @version 1.96.2
50
50
  *
51
51
  * @public
52
52
  * @alias sap.ui.core.message.MessageManager
@@ -404,15 +404,14 @@ sap.ui.define([
404
404
  * @public
405
405
  */
406
406
  MessageManager.prototype.registerObject = function(oObject, bHandleValidation) {
407
- // eslint-disable-next-line no-unsafe-negation
408
- if (!oObject instanceof ManagedObject) {
407
+ if (!(oObject instanceof ManagedObject)) {
409
408
  Log.error(this + " : " + oObject.toString() + " is not an instance of sap.ui.base.ManagedObject");
410
- return;
409
+ } else {
410
+ oObject.attachValidationSuccess(bHandleValidation, this._handleSuccess, this);
411
+ oObject.attachValidationError(bHandleValidation, this._handleError, this);
412
+ oObject.attachParseError(bHandleValidation, this._handleError, this);
413
+ oObject.attachFormatError(bHandleValidation, this._handleError, this);
411
414
  }
412
- oObject.attachValidationSuccess(bHandleValidation, this._handleSuccess, this);
413
- oObject.attachValidationError(bHandleValidation, this._handleError, this);
414
- oObject.attachParseError(bHandleValidation, this._handleError, this);
415
- oObject.attachFormatError(bHandleValidation, this._handleError, this);
416
415
  };
417
416
 
418
417
  /**
@@ -422,15 +421,14 @@ sap.ui.define([
422
421
  * @public
423
422
  */
424
423
  MessageManager.prototype.unregisterObject = function(oObject) {
425
- // eslint-disable-next-line no-unsafe-negation
426
- if (!oObject instanceof ManagedObject) {
424
+ if (!(oObject instanceof ManagedObject)) {
427
425
  Log.error(this + " : " + oObject.toString() + " is not an instance of sap.ui.base.ManagedObject");
428
- return;
426
+ } else {
427
+ oObject.detachValidationSuccess(this._handleSuccess, this);
428
+ oObject.detachValidationError(this._handleError, this);
429
+ oObject.detachParseError(this._handleError, this);
430
+ oObject.detachFormatError(this._handleError, this);
429
431
  }
430
- oObject.detachValidationSuccess(this._handleSuccess, this);
431
- oObject.detachValidationError(this._handleError, this);
432
- oObject.detachParseError(this._handleError, this);
433
- oObject.detachFormatError(this._handleError, this);
434
432
  };
435
433
 
436
434
  /**
@@ -24,7 +24,7 @@ sap.ui.define(["sap/ui/base/Object", "sap/base/Log"],
24
24
  * @extends sap.ui.base.Object
25
25
  *
26
26
  * @author SAP SE
27
- * @version 1.93.3
27
+ * @version 1.96.2
28
28
  * @public
29
29
  * @abstract
30
30
  * @alias sap.ui.core.message.MessageParser
@@ -27,7 +27,7 @@ sap.ui.define(['sap/ui/base/EventProvider', "sap/base/util/uid"],
27
27
  * @extends sap.ui.base.EventProvider
28
28
  *
29
29
  * @author SAP SE
30
- * @version 1.93.3
30
+ * @version 1.96.2
31
31
  *
32
32
  * @public
33
33
  * @alias sap.ui.core.message.MessageProcessor
@@ -176,7 +176,7 @@ Icon.move=Verschieben
176
176
  Icon.multi-select=Mehrfachauswahl
177
177
  Icon.nav-back=Zur\u00FCck navigieren
178
178
  Icon.overflow=Mehr
179
- Icon.redo=Wiederholen
179
+ Icon.redo=Wiederherstellen
180
180
  Icon.refresh=Aktualisieren
181
181
  Icon.resize=Gr\u00F6\u00DFe \u00E4ndern
182
182
  Icon.resize-horizontal=Gr\u00F6\u00DFe horizontal \u00E4ndern
@@ -3,7 +3,7 @@ SAPUI5_FRIDAY=Friday
3
3
  SAPUI5_GM_ZSTEP=Zoom step {0}
4
4
 
5
5
  VALUE_STATE_ERROR=Entr\u00E9e non valide
6
- VALUE_STATE_WARNING=Avertissement \u00E9dit\u00E9
6
+ VALUE_STATE_WARNING=Avertissement \u00E9mis
7
7
  VALUE_STATE_SUCCESS=Entr\u00E9e correctement valid\u00E9e
8
8
  VALUE_STATE_INFORMATION=Entr\u00E9e pour information
9
9
 
@@ -16,7 +16,7 @@ INDICATION_STATE_INDICATION06=Colore indicazione 6
16
16
  INDICATION_STATE_INDICATION07=Colore indicazione 7
17
17
  INDICATION_STATE_INDICATION08=Colore indicazione 8
18
18
 
19
- BUSY_TEXT=Attendi
19
+ BUSY_TEXT=Attendere
20
20
  BUSY_VALUE_TEXT=Occupato
21
21
 
22
22
 
@@ -174,7 +174,7 @@ Icon.message-success=Pomy\u015Blnie
174
174
  Icon.message-warning=Ostrze\u017Cenie
175
175
  Icon.move=Przesuwanie
176
176
  Icon.multi-select=Wyb\u00F3r wielokrotny
177
- Icon.nav-back=Powr\u00F3t
177
+ Icon.nav-back=Cofnij
178
178
  Icon.overflow=Wi\u0119cej
179
179
  Icon.redo=Powt\u00F3rz
180
180
  Icon.refresh=Od\u015Bwie\u017C
@@ -187,8 +187,8 @@ Icon.search=\u0E04\u0E49\u0E19\u0E2B\u0E32
187
187
  Icon.settings=\u0E01\u0E32\u0E23\u0E01\u0E33\u0E2B\u0E19\u0E14\u0E04\u0E48\u0E32
188
188
  Icon.show=\u0E41\u0E2A\u0E14\u0E07
189
189
  Icon.sort=\u0E08\u0E31\u0E14\u0E40\u0E23\u0E35\u0E22\u0E07
190
- Icon.sort-ascending=\u0E40\u0E23\u0E35\u0E22\u0E07\u0E25\u0E33\u0E14\u0E31\u0E1A\u0E08\u0E32\u0E01\u0E19\u0E49\u0E2D\u0E22\u0E44\u0E1B\u0E2B\u0E32\u0E21\u0E32\u0E01
191
- Icon.sort-descending=\u0E40\u0E23\u0E35\u0E22\u0E07\u0E25\u0E33\u0E14\u0E31\u0E1A\u0E08\u0E32\u0E01\u0E21\u0E32\u0E01\u0E44\u0E1B\u0E2B\u0E32\u0E19\u0E49\u0E2D\u0E22
190
+ Icon.sort-ascending=\u0E08\u0E31\u0E14\u0E40\u0E23\u0E35\u0E22\u0E07\u0E08\u0E32\u0E01\u0E19\u0E49\u0E2D\u0E22\u0E44\u0E1B\u0E2B\u0E32\u0E21\u0E32\u0E01
191
+ Icon.sort-descending=\u0E08\u0E31\u0E14\u0E40\u0E23\u0E35\u0E22\u0E07\u0E08\u0E32\u0E01\u0E21\u0E32\u0E01\u0E44\u0E1B\u0E2B\u0E32\u0E19\u0E49\u0E2D\u0E22
192
192
  Icon.synchronize=\u0E0B\u0E34\u0E07\u0E42\u0E04\u0E23\u0E44\u0E19\u0E0B\u0E4C
193
193
  Icon.undo=\u0E40\u0E25\u0E34\u0E01\u0E17\u0E33
194
194
  Icon.up=\u0E02\u0E36\u0E49\u0E19
@@ -294,7 +294,7 @@ sap.ui.define([
294
294
  }
295
295
  });
296
296
  } else if (!ControllerClass) {
297
- ControllerClass = sap.ui.requireSync(sControllerName);
297
+ ControllerClass = sap.ui.requireSync(sControllerName); // legacy-relevant: Sync path
298
298
  return resolveClass(ControllerClass);
299
299
  } else {
300
300
  return ControllerClass;
@@ -736,30 +736,49 @@ sap.ui.define([
736
736
  };
737
737
 
738
738
  /**
739
- * Loads a Fragment by {@link sap.ui.core.Fragment.load}. If the controller will be destroyed before
740
- * the fragment content creation is done, the controller takes care of an asynchronous destroy of the
741
- * fragment content.
742
- * Otherwise the content must be destroyed by the caller as usual.
743
- * If the controller has an owner component, it is passed to the fragment content.
744
- * The fragment content will be prefixed with the view ID to avoid duplicate ID issues.
745
- * The prefixing is enabled by default and can be switched off by the <code>autoPrefixId</code> option.
739
+ * Loads a Fragment by {@link sap.ui.core.Fragment.load}.
746
740
  *
747
- * When <code>autoPrefixId</code> is enabled, the fragment content can be accessed by calling {@link sap.ui.core.mvc.Controller.byId}.
741
+ * The fragment content will be added to the <code>dependents</code> aggregation of the view by default.
742
+ * This behavior can be suppressed by setting <code>mOptions.addToDependents</code> to false.
748
743
  *
749
- * Example (no mOptions.id given):
750
- * var myCOntrol = this.byId("myControl");
744
+ * The controller is passed to the Fragment by default, so the (event handler) methods referenced in the
745
+ * Fragment will be called on this Controller.
751
746
  *
752
- * Example (mOptions.id given):
753
- * var myCOntrol = this.byId("prefix--myControl");
747
+ * If the controller has an owner component, it is passed to the fragment content.
748
+ * By default the fragment content will be prefixed with the view ID to avoid duplicate ID issues.
749
+ * The prefixing can be switched off with the <code>autoPrefixId</code> option.
754
750
  *
755
- * The fragment content will be added to the <code>dependents</code> aggregation of the view by default.
756
- * This behavior can be suppressed by setting <code>mOptions.addToDependents</code> to false.
751
+ * When <code>autoPrefixId</code> is enabled, the fragment content can be accessed by calling
752
+ * {@link sap.ui.core.mvc.Controller.byId}.
757
753
  *
758
- * Note: If the fragment content is not aggregated within a control, it must be destroyed manually in
759
- * the exit hook of the controller.
754
+ * <b>Destroy behavior</b>:
755
+ * Different scenarios concerning the destruction of the fragment's content exist,
756
+ * of which some must be addressed by the caller, while others are handled automatically.
757
+ * <ul>
758
+ * <li>The controller instance is destroyed before the fragment content creation has finished:
759
+ * In this case, the controller instance takes care of asynchronously destroying the fragment content</li>
760
+ * <li>The fragment content is aggregated within a control (e.g. <code>dependents</code> aggregation by default):
761
+ * In this case, the content will be destroyed during the regular destroy lifecycle.</li>
762
+ * <li>The fragment content is not aggregated within a control:
763
+ * In this case, <em>it must be destroyed manually</em> in the exit hook of the controller.</li>
764
+ * </ul>
760
765
  *
761
- * The controller is passed to the Fragment by default so the (event handler) methods referenced in the Fragment will
762
- * be called on this Controller.
766
+ * @example <caption>Loading a fragment with no <code>mOptions.id</code> given</caption>
767
+ * // In the following, "this" is an instance of sap.ui.core.mvc.Controller
768
+ * var pFragment = this.loadFragment({
769
+ * name: "myFragment"
770
+ * }).then(function() {
771
+ * var myControl = this.byId("myFragment");
772
+ * }.bind(this));
773
+ *
774
+ * @example <caption>Loading a fragment with an <code>mOptions.id</code> given</caption>
775
+ * // In the following, "this" is an instance of sap.ui.core.mvc.Controller
776
+ * var pFragment = this.loadFragment({
777
+ * name: "myFragment",
778
+ * id: "somePrefix"
779
+ * }).then(function() {
780
+ * var myControl = this.byId("somePrefix--myFragment");
781
+ * }.bind(this));
763
782
  *
764
783
  * @param {object} mOptions Options regarding fragment loading
765
784
  * @param {string} mOptions.name The Fragment name, which must correspond to a Fragment which can be loaded via the module system
@@ -118,42 +118,40 @@ sap.ui.define(["sap/base/Log", "sap/ui/core/Component"], function(Log, Component
118
118
 
119
119
  var aControllerNames = [];
120
120
 
121
- if (!sap.ui.getCore().getConfiguration().getDisableCustomizing()) {
122
- if (oComponent) {
123
121
 
124
- // Check if we have a delegate for this component.
125
- oComponent = (oComponent.getExtensionComponent && oComponent.getExtensionComponent()) || oComponent;
122
+ // lookup config of "sap.ui.controllerExtensions" in Manifest
123
+ var mInstanceSpecificConfig = Component.getCustomizing(oComponent, {
124
+ type: "sap.ui.controllerExtensions",
125
+ name: sControllerName + "#" + sViewId
126
+ });
126
127
 
127
- // lookup config of "sap.ui.controllerExtensions" in Manifest
128
- var mInstanceSpecificConfig = oComponent._getManifestEntry("/sap.ui5/extends/extensions/sap.ui.controllerExtensions/" + sControllerName + "#" + sViewId, true);
128
+ // First check for instance-specific extension, if none exists look for base extension
129
+ var aControllerExtConfigs = [];
129
130
 
130
- // First check for instance-specific extension, if none exists look for base extension
131
- var aControllerExtConfigs = [];
132
-
133
- if (mInstanceSpecificConfig) {
134
- aControllerExtConfigs.push(mInstanceSpecificConfig);
135
- } else {
136
- var mDefaultConfig = oComponent._getManifestEntry("/sap.ui5/extends/extensions/sap.ui.controllerExtensions/" + sControllerName, true);
137
- if (mDefaultConfig) {
138
- aControllerExtConfigs.push(mDefaultConfig);
139
- }
140
- }
131
+ if (mInstanceSpecificConfig) {
132
+ aControllerExtConfigs.push(mInstanceSpecificConfig);
133
+ } else {
134
+ var mDefaultConfig = Component.getCustomizing(oComponent, {
135
+ type: "sap.ui.controllerExtensions",
136
+ name: sControllerName
137
+ });
138
+ if (mDefaultConfig) {
139
+ aControllerExtConfigs.push(mDefaultConfig);
140
+ }
141
+ }
141
142
 
142
- for (var i = 0; i < aControllerExtConfigs.length; i++) {
143
- var vControllerExtensions = aControllerExtConfigs[i];
144
- if (vControllerExtensions) {
145
- // Normalize the different legacy extension definitions, either:
146
- // - a string -> "my.ctrl.name"
147
- // - an object containing a controllerName:string property and/or a controllerNames:string[] property, e.g.
148
- // { controllerName: "my.ctrl.name0", controllerNames: ["my.ctrl.name1", "my.ctrl.name2"] }
149
- var sExtControllerName = typeof vControllerExtensions === "string" ? vControllerExtensions : vControllerExtensions.controllerName;
150
- aControllerNames = aControllerNames.concat(vControllerExtensions.controllerNames || []);
151
- if (sExtControllerName) {
152
- aControllerNames.unshift(sExtControllerName);
153
- }
154
- }
143
+ for (var i = 0; i < aControllerExtConfigs.length; i++) {
144
+ var vControllerExtensions = aControllerExtConfigs[i];
145
+ if (vControllerExtensions) {
146
+ // Normalize the different legacy extension definitions, either:
147
+ // - a string -> "my.ctrl.name"
148
+ // - an object containing a controllerName:string property and/or a controllerNames:string[] property, e.g.
149
+ // { controllerName: "my.ctrl.name0", controllerNames: ["my.ctrl.name1", "my.ctrl.name2"] }
150
+ var sExtControllerName = typeof vControllerExtensions === "string" ? vControllerExtensions : vControllerExtensions.controllerName;
151
+ aControllerNames = aControllerNames.concat(vControllerExtensions.controllerNames || []);
152
+ if (sExtControllerName) {
153
+ aControllerNames.unshift(sExtControllerName);
155
154
  }
156
-
157
155
  }
158
156
  }
159
157
 
@@ -187,7 +185,7 @@ sap.ui.define(["sap/base/Log", "sap/ui/core/Component"], function(Log, Component
187
185
  }, reject);
188
186
  });
189
187
  } else {
190
- var ExtensionProviderClass = sap.ui.requireSync(sProviderName);
188
+ var ExtensionProviderClass = sap.ui.requireSync(sProviderName); // legacy-relevant: Sync path
191
189
  oProvider = new ExtensionProviderClass();
192
190
  mExtensionProvider[sProviderName] = oProvider;
193
191
  return oProvider;
@@ -70,14 +70,14 @@ sap.ui.define([
70
70
  * If not, we stay compatible and every method prefixed with '-' or 'on' gets private.
71
71
  */
72
72
  if (bExtendsController && !bDefinesMethods) {
73
- rPrivateCheck = /^_|^on|^init$|^exit$/;
73
+ rPrivateCheck = /^_|^on|^init$|^exit$/;
74
74
  }
75
75
 
76
76
  /*
77
77
  * extend method metadata: make lifecycle hooks public
78
78
  */
79
79
  if (bExtendsController && bDefinesMethods) {
80
- merge(oStaticInfo.methods, this._defaultLifecycleMethodMetadata);
80
+ merge(oStaticInfo.methods, this._defaultLifecycleMethodMetadata);
81
81
  }
82
82
  }
83
83
 
@@ -107,7 +107,7 @@ sap.ui.define([
107
107
  }
108
108
  for (var m in this._mMethods) {
109
109
  if (this.isMethodPublic(m)) {
110
- this._aPublicMethods.push(m);
110
+ this._aPublicMethods.push(m);
111
111
  }
112
112
  }
113
113
  };
@@ -127,26 +127,26 @@ sap.ui.define([
127
127
  var mParentMethods = this._oParent._mMethods ? this._oParent._mMethods : {};
128
128
  //allow change of visibility but not the other attributes
129
129
  for (var sMethod in mParentMethods) {
130
- if (this._mMethods[sMethod] && !bIsExtension) {
131
- var bPublic = this._mMethods[sMethod].public;
132
- //copy parent method definition as final/overrideExecution should not be overridden
133
- this._mMethods[sMethod] = merge({}, mParentMethods[sMethod]);
134
- if (bPublic !== undefined) {
135
- this._mMethods[sMethod].public = bPublic;
136
- }
137
- if (!this.isMethodPublic(sMethod) && this._mMethods[sMethod].public !== mParentMethods[sMethod].public) {
138
- //if visibility changed to private delete from public methods
139
- this._aAllPublicMethods.splice(this._aAllPublicMethods.indexOf(sMethod), 1);
140
- }
141
- } else {
142
- this._mMethods[sMethod] = mParentMethods[sMethod];
143
- }
130
+ if (this._mMethods[sMethod] && !bIsExtension) {
131
+ var bPublic = this._mMethods[sMethod].public;
132
+ //copy parent method definition as final/overrideExecution should not be overridden
133
+ this._mMethods[sMethod] = merge({}, mParentMethods[sMethod]);
134
+ if (bPublic !== undefined) {
135
+ this._mMethods[sMethod].public = bPublic;
136
+ }
137
+ if (!this.isMethodPublic(sMethod) && this._mMethods[sMethod].public !== mParentMethods[sMethod].public) {
138
+ //if visibility changed to private delete from public methods
139
+ this._aAllPublicMethods.splice(this._aAllPublicMethods.indexOf(sMethod), 1);
140
+ }
141
+ } else {
142
+ this._mMethods[sMethod] = mParentMethods[sMethod];
143
+ }
144
144
  }
145
145
  }
146
146
 
147
147
  //flag each extension as final (but not the class ControllerExtension itself)
148
148
  if (this._oParent && this._oParent.isA("sap.ui.core.mvc.ControllerExtension")) {
149
- this._bFinal = true;
149
+ this._bFinal = true;
150
150
  }
151
151
  };
152
152
 
@@ -45,7 +45,7 @@ sap.ui.define([
45
45
  * @extends sap.ui.core.mvc.View
46
46
  *
47
47
  * @author SAP SE
48
- * @version 1.93.3
48
+ * @version 1.96.2
49
49
  *
50
50
  * @public
51
51
  * @since 1.9.2
@@ -107,7 +107,7 @@ sap.ui.define([
107
107
  * @ui5-global-only
108
108
  */
109
109
  sap.ui.htmlview = function(sId, vView) {
110
- return sap.ui.view(sId, vView, ViewType.HTML);
110
+ return sap.ui.view(sId, vView, ViewType.HTML); // legacy-relevant
111
111
  };
112
112
 
113
113
  /**
@@ -43,7 +43,7 @@ sap.ui.define([
43
43
  * @class
44
44
  * A View defined using JSON.
45
45
  * @extends sap.ui.core.mvc.View
46
- * @version 1.93.3
46
+ * @version 1.96.2
47
47
  *
48
48
  * @public
49
49
  * @alias sap.ui.core.mvc.JSONView
@@ -120,7 +120,7 @@ sap.ui.define([
120
120
  * @ui5-global-only
121
121
  */
122
122
  sap.ui.jsonview = function(sId, vView) {
123
- return sap.ui.view(sId, vView, ViewType.JSON);
123
+ return sap.ui.view(sId, vView, ViewType.JSON); // legacy-relevant
124
124
  };
125
125
 
126
126
  /**
@@ -27,7 +27,7 @@ sap.ui.define([
27
27
  * @param {object} [mSettings] initial settings for the new control
28
28
  *
29
29
  * @extends sap.ui.core.mvc.View
30
- * @version 1.93.3
30
+ * @version 1.96.2
31
31
  * @deprecated Since 1.90. Instead use {@link topic:e6bb33d076dc4f23be50c082c271b9f0 Typed Views}
32
32
  * by defining the view class with {@link sap.ui.core.mvc.View.extend View.extend} and
33
33
  * creating the view instances with {@link sap.ui.core.mvc.View.create View.create}.
@@ -226,7 +226,7 @@ sap.ui.define([
226
226
  sap.ui.require([sModuleName], resolve, reject);
227
227
  });
228
228
  } else {
229
- sap.ui.requireSync(sModuleName);
229
+ sap.ui.requireSync(sModuleName); // legacy-relevant: Sync path
230
230
  }
231
231
  }
232
232
  // extend 'this' with view from registry which should now or then be available
@@ -29,7 +29,7 @@ function(View, TemplateViewRenderer, ViewType, Log) {
29
29
  * @extends sap.ui.core.mvc.View
30
30
  *
31
31
  * @author SAP SE
32
- * @version 1.93.3
32
+ * @version 1.96.2
33
33
  *
34
34
  * @public
35
35
  * @deprecated Since version 1.56.0, use {@link sap.ui.core.mvc.XMLView} in combination with
@@ -71,7 +71,7 @@ function(View, TemplateViewRenderer, ViewType, Log) {
71
71
  */
72
72
  sap.ui.templateview = function(sId, vView) {
73
73
  Log.warning("sap.ui.core.mvc.TemplateView is deprecated. Use XMLView or JSView instead.");
74
- return sap.ui.view(sId, vView, ViewType.Template);
74
+ return sap.ui.view(sId, vView, ViewType.Template); // legacy-relevant
75
75
  };
76
76
 
77
77
  /**
@@ -61,6 +61,11 @@ sap.ui.define([
61
61
  * With method {@link #byId}, elements or controls can be found with their view-local ID.
62
62
  * Also see {@link topic:91f28be26f4d1014b6dd926db0e91070 "Support for Unique IDs"} in the documentation.
63
63
  *
64
+ * <strong>Note: For Views defined using XML markup</strong>
65
+ * On root level, you can only define content for the default aggregation, e.g. without adding the <code>&lt;content&gt;</code> tag.
66
+ * If you want to specify content for another aggregation of a view like <code>dependents</code>, place it in a child
67
+ * control's dependents aggregation or add it by using {@link sap.ui.core.mvc.XMLView.addDependent}.
68
+ *
64
69
  * <h3>View Definition</h3>
65
70
  * A view can be defined by {@link sap.ui.core.mvc.View.extend extending} this class and implementing
66
71
  * the {@link #createContent} method. The method must return one or many root controls that will be
@@ -140,7 +145,7 @@ sap.ui.define([
140
145
  * The default implementation of this method returns <code>false</code>.
141
146
  *
142
147
  * @extends sap.ui.core.Control
143
- * @version 1.93.3
148
+ * @version 1.96.2
144
149
  *
145
150
  * @public
146
151
  * @alias sap.ui.core.mvc.View
@@ -331,7 +336,7 @@ sap.ui.define([
331
336
  }, reject);
332
337
  });
333
338
  } else {
334
- return sap.ui.requireSync(sPreprocessorName);
339
+ return sap.ui.requireSync(sPreprocessorName); // legacy-relevant: Sync path
335
340
  }
336
341
  } else if (typeof oPreprocessor.preprocessor === "function" && !oPreprocessor.preprocessor.process) {
337
342
  oPreprocessorImpl = {
@@ -448,30 +453,20 @@ sap.ui.define([
448
453
  if (defaultController) {
449
454
  // check for controller replacement
450
455
  var Component = sap.ui.require("sap/ui/core/Component");
451
-
452
- if (Component && ManagedObject._sOwnerId) {
453
- var oOwnerComponent = Component.get(ManagedObject._sOwnerId);
454
-
455
- if (oOwnerComponent) {
456
- var oControllerExtensionCarrier = oOwnerComponent;
457
- if (oOwnerComponent.getExtensionComponent) {
458
- oControllerExtensionCarrier = oOwnerComponent.getExtensionComponent();
459
- if (!oControllerExtensionCarrier) {
460
- throw new Error("getExtensionComponent() must return an instance.");
461
- }
462
- }
463
-
464
- var sControllerReplacement = oControllerExtensionCarrier._getManifestEntry("/sap.ui5/extends/extensions/sap.ui.controllerReplacements/" + defaultController, true);
465
- if (sControllerReplacement) {
466
- defaultController = typeof sControllerReplacement === "string" ? sControllerReplacement : sControllerReplacement.controllerName;
467
- }
456
+ if (Component) {
457
+ var sControllerReplacement = Component.getCustomizing(oThis, {
458
+ type: "sap.ui.controllerReplacements",
459
+ name: defaultController
460
+ });
461
+ if (sControllerReplacement) {
462
+ defaultController = typeof sControllerReplacement === "string" ? sControllerReplacement : sControllerReplacement.controllerName;
468
463
  }
469
464
  }
470
465
  // create controller
471
466
  if (bAsync) {
472
467
  oController = Controller.create({name: defaultController, _viewId: oThis.sId});
473
468
  } else {
474
- oController = sap.ui.controller(defaultController, true, false, oThis.sId);
469
+ oController = sap.ui.controller(defaultController, true, false, oThis.sId); // legacy-relevant: Sync path
475
470
  }
476
471
  }
477
472
  } else if (oController) {
@@ -543,54 +538,45 @@ sap.ui.define([
543
538
  initAsyncState(this);
544
539
  }
545
540
 
546
- var Component = sap.ui.require("sap/ui/core/Component");
547
- var oOwnerComponent = Component && Component.getOwnerComponentFor(this);
548
-
549
541
  // view modifications
550
542
  // check if there are custom properties configured for this view, and only if there are, create a settings preprocessor applying these
551
- if (!sap.ui.getCore().getConfiguration().getDisableCustomizing()) {
552
- if (oOwnerComponent) {
553
- var oViewModificationCarrier = oOwnerComponent;
554
- if (oOwnerComponent.getExtensionComponent) {
555
- oViewModificationCarrier = oOwnerComponent.getExtensionComponent();
556
- if (!oViewModificationCarrier) {
557
- throw new Error("getExtensionComponent() must return an instance.");
558
- }
559
- }
543
+ var Component = sap.ui.require("sap/ui/core/Component");
544
+ if (Component) {
545
+ var mCustomSettings = Component.getCustomizing(this, {
546
+ type: "sap.ui.viewModifications",
547
+ name: this.sViewName
548
+ });
560
549
 
561
- var mCustomSettings = oViewModificationCarrier._getManifestEntry("/sap.ui5/extends/extensions/sap.ui.viewModifications/" + this.sViewName, true);
562
-
563
- if (!isEmptyObject(mCustomSettings)) {
564
- // NOTE:
565
- // nested views do not inherit the preprocessor settings function from the parent
566
- // controls within fragments however do inherit the settings function from the containing view (see Fragment#init)
567
- this._fnSettingsPreprocessor = function(mSettings) {
568
- var sId = this.getId();
569
- if (sId) {
570
- if (that.isPrefixedId(sId)) {
571
- sId = sId.substring((that.getId() + "--").length);
572
- }
573
- var oCustomSetting = Object.assign({}, mCustomSettings[sId]);
574
- if (oCustomSetting) {
575
- // only 'visible' property can be customized
576
- for (var sProperty in oCustomSetting) {
577
- if (sProperty !== "visible") {
578
- Log.warning("Customizing: custom value for property '" + sProperty + "' of control '" + sId + "' in View '" + that.sViewName + "' ignored: only the 'visible' property can be customized.");
579
- delete oCustomSetting[sProperty];
580
- }
550
+ if (!isEmptyObject(mCustomSettings)) {
551
+ // NOTE:
552
+ // nested views do not inherit the preprocessor settings function from the parent
553
+ // controls within fragments however do inherit the settings function from the containing view (see Fragment#init)
554
+ this._fnSettingsPreprocessor = function(mSettings) {
555
+ var sId = this.getId();
556
+ if (sId) {
557
+ if (that.isPrefixedId(sId)) {
558
+ sId = sId.substring((that.getId() + "--").length);
559
+ }
560
+ var oCustomSetting = Object.assign({}, mCustomSettings[sId]);
561
+ if (oCustomSetting) {
562
+ // only 'visible' property can be customized
563
+ for (var sProperty in oCustomSetting) {
564
+ if (sProperty !== "visible") {
565
+ Log.warning("Customizing: custom value for property '" + sProperty + "' of control '" + sId + "' in View '" + that.sViewName + "' ignored: only the 'visible' property can be customized.");
566
+ delete oCustomSetting[sProperty];
581
567
  }
582
- Log.info("Customizing: custom value for property 'visible' of control '" + sId + "' in View '" + that.sViewName + "' applied: " + oCustomSetting.visible);
583
- mSettings = extend(mSettings, oCustomSetting); // override original property initialization with customized property values
584
568
  }
569
+ Log.info("Customizing: custom value for property 'visible' of control '" + sId + "' in View '" + that.sViewName + "' applied: " + oCustomSetting.visible);
570
+ mSettings = extend(mSettings, oCustomSetting); // override original property initialization with customized property values
585
571
  }
586
- };
587
- }
572
+ }
573
+ };
588
574
  }
589
575
  }
590
576
 
591
577
  var fnPropagateOwner = function(fnCallback, bAsync) {
592
578
  assert(typeof fnCallback === "function", "fn must be a function");
593
-
579
+ var oOwnerComponent = Component && Component.getOwnerComponentFor(that);
594
580
  if (oOwnerComponent) {
595
581
  if (bAsync) {
596
582
  // special treatment when component loading is async but instance creation is sync
@@ -1238,35 +1224,22 @@ sap.ui.define([
1238
1224
 
1239
1225
 
1240
1226
  // view replacement
1241
- if (!sap.ui.getCore().getConfiguration().getDisableCustomizing()) {
1242
- // get current owner component
1243
- var Component = sap.ui.require("sap/ui/core/Component");
1244
- var oOwnerComponent;
1245
-
1246
- if (Component && ManagedObject._sOwnerId) {
1247
- oOwnerComponent = Component.get(ManagedObject._sOwnerId);
1248
- }
1249
-
1250
- if (oOwnerComponent) {
1251
- var oViewReplacementCarrier = oOwnerComponent;
1252
- if (oOwnerComponent.getExtensionComponent) {
1253
- var oViewReplacementCarrier = oOwnerComponent.getExtensionComponent();
1254
- if (!oViewReplacementCarrier) {
1255
- throw new Error("getExtensionComponent() must return an instance.");
1256
- }
1257
- }
1258
-
1259
- var customViewConfig = oViewReplacementCarrier._getManifestEntry("/sap.ui5/extends/extensions/sap.ui.viewReplacements/" + oView.viewName, true);
1227
+ // get current owner component
1228
+ var Component = sap.ui.require("sap/ui/core/Component");
1260
1229
 
1261
- if (customViewConfig) {
1262
- // make sure that "async=true" will not be overriden
1263
- delete customViewConfig.async;
1230
+ if (Component && ManagedObject._sOwnerId) {
1231
+ var customViewConfig = Component.getCustomizing(ManagedObject._sOwnerId, {
1232
+ type: "sap.ui.viewReplacements",
1233
+ name: oView.viewName
1234
+ });
1235
+ if (customViewConfig) {
1236
+ // make sure that "async=true" will not be overriden
1237
+ delete customViewConfig.async;
1264
1238
 
1265
- Log.info("Customizing: View replacement for view '" + oView.viewName + "' found and applied: " + customViewConfig.viewName + " (type: " + customViewConfig.type + ")");
1266
- extend(oView, customViewConfig);
1267
- } else {
1268
- Log.debug("Customizing: no View replacement found for view '" + oView.viewName + "'.");
1269
- }
1239
+ Log.info("Customizing: View replacement for view '" + oView.viewName + "' found and applied: " + customViewConfig.viewName + " (type: " + customViewConfig.type + ")");
1240
+ extend(oView, customViewConfig);
1241
+ } else {
1242
+ Log.debug("Customizing: no View replacement found for view '" + oView.viewName + "'.");
1270
1243
  }
1271
1244
  }
1272
1245
 
@@ -1307,7 +1280,7 @@ sap.ui.define([
1307
1280
  function createView(sViewClass, oViewSettings) {
1308
1281
  var ViewClass = sap.ui.require(sViewClass);
1309
1282
  if (!ViewClass) {
1310
- ViewClass = sap.ui.requireSync(sViewClass);
1283
+ ViewClass = sap.ui.requireSync(sViewClass);// legacy-relevant: sync fallback for missing dependency
1311
1284
  if (oViewSettings.async) {
1312
1285
  //not supported
1313
1286
  Log.warning("sap.ui.view was called without requiring the according view class.");