@openui5/sap.ui.core 1.92.0 → 1.95.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (394) hide show
  1. package/{.eslintrc → .eslintrc.json} +1 -2
  2. package/.reuse/dep5 +1 -6
  3. package/THIRDPARTY.txt +4 -10
  4. package/package.json +1 -1
  5. package/src/jquery.sap.global.js +9 -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 +7 -4
  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 +8 -4
  13. package/src/sap/base/strings/whitespaceReplacer.js +52 -0
  14. package/src/sap/base/util/Properties.js +4 -1
  15. package/src/sap/base/util/isEmptyObject.js +1 -2
  16. package/src/sap/base/util/restricted/_CancelablePromise.js +1 -1
  17. package/src/sap/base/util/restricted/_castArray.js +1 -1
  18. package/src/sap/base/util/restricted/_compact.js +1 -1
  19. package/src/sap/base/util/restricted/_curry.js +1 -1
  20. package/src/sap/base/util/restricted/_debounce.js +1 -1
  21. package/src/sap/base/util/restricted/_difference.js +1 -1
  22. package/src/sap/base/util/restricted/_differenceBy.js +1 -1
  23. package/src/sap/base/util/restricted/_differenceWith.js +1 -1
  24. package/src/sap/base/util/restricted/_flatMap.js +1 -1
  25. package/src/sap/base/util/restricted/_flatMapDeep.js +1 -1
  26. package/src/sap/base/util/restricted/_flatMapDepth.js +1 -1
  27. package/src/sap/base/util/restricted/_flatten.js +1 -1
  28. package/src/sap/base/util/restricted/_flattenDeep.js +1 -1
  29. package/src/sap/base/util/restricted/_flattenDepth.js +1 -1
  30. package/src/sap/base/util/restricted/_intersection.js +1 -1
  31. package/src/sap/base/util/restricted/_intersectionBy.js +1 -1
  32. package/src/sap/base/util/restricted/_intersectionWith.js +1 -1
  33. package/src/sap/base/util/restricted/_isEqual.js +1 -1
  34. package/src/sap/base/util/restricted/_isEqualWith.js +1 -1
  35. package/src/sap/base/util/restricted/_isNil.js +1 -1
  36. package/src/sap/base/util/restricted/_max.js +1 -1
  37. package/src/sap/base/util/restricted/_merge.js +1 -1
  38. package/src/sap/base/util/restricted/_mergeWith.js +1 -1
  39. package/src/sap/base/util/restricted/_min.js +1 -1
  40. package/src/sap/base/util/restricted/_omit.js +1 -1
  41. package/src/sap/base/util/restricted/_pick.js +1 -1
  42. package/src/sap/base/util/restricted/_pickBy.js +1 -1
  43. package/src/sap/base/util/restricted/_throttle.js +1 -1
  44. package/src/sap/base/util/restricted/_toArray.js +1 -1
  45. package/src/sap/base/util/restricted/_union.js +1 -1
  46. package/src/sap/base/util/restricted/_unionBy.js +1 -1
  47. package/src/sap/base/util/restricted/_unionWith.js +1 -1
  48. package/src/sap/base/util/restricted/_uniq.js +1 -1
  49. package/src/sap/base/util/restricted/_uniqBy.js +1 -1
  50. package/src/sap/base/util/restricted/_uniqWith.js +1 -1
  51. package/src/sap/base/util/restricted/_without.js +1 -1
  52. package/src/sap/base/util/restricted/_xor.js +1 -1
  53. package/src/sap/base/util/restricted/_xorBy.js +1 -1
  54. package/src/sap/base/util/restricted/_xorWith.js +1 -1
  55. package/src/sap/base/util/restricted/_zipObject.js +1 -1
  56. package/src/sap/base/util/restricted/_zipObjectDeep.js +1 -1
  57. package/src/sap/ui/Device.js +37 -42
  58. package/src/sap/ui/Global.js +6 -6
  59. package/src/sap/ui/VersionInfo.js +1 -0
  60. package/src/sap/ui/base/DataType.js +14 -7
  61. package/src/sap/ui/base/Event.js +1 -1
  62. package/src/sap/ui/base/EventProvider.js +1 -1
  63. package/src/sap/ui/base/ExpressionParser.js +9 -6
  64. package/src/sap/ui/base/Interface.js +3 -49
  65. package/src/sap/ui/base/ManagedObject.js +131 -24
  66. package/src/sap/ui/base/ManagedObjectMetadata.js +13 -4
  67. package/src/sap/ui/base/Metadata.js +1 -1
  68. package/src/sap/ui/base/Object.js +49 -4
  69. package/src/sap/ui/base/ObjectPool.js +1 -1
  70. package/src/sap/ui/base/syncXHRFix.js +2 -1
  71. package/src/sap/ui/core/.library +5 -5
  72. package/src/sap/ui/core/AppCacheBuster.js +4 -4
  73. package/src/sap/ui/core/BusyIndicator.js +1 -11
  74. package/src/sap/ui/core/BusyIndicatorUtils.js +4 -1
  75. package/src/sap/ui/core/Component.js +441 -179
  76. package/src/sap/ui/core/ComponentContainer.js +16 -6
  77. package/src/sap/ui/core/ComponentMetadata.js +14 -3
  78. package/src/sap/ui/core/ComponentSupport.js +1 -1
  79. package/src/sap/ui/core/Configuration.js +64 -32
  80. package/src/sap/ui/core/Control.js +1 -1
  81. package/src/sap/ui/core/Core.js +57 -40
  82. package/src/sap/ui/core/CustomData.js +1 -1
  83. package/src/sap/ui/core/CustomizingConfiguration.js +35 -260
  84. package/src/sap/ui/core/DeclarativeSupport.js +3 -2
  85. package/src/sap/ui/core/Element.js +1 -1
  86. package/src/sap/ui/core/ElementMetadata.js +4 -2
  87. package/src/sap/ui/core/EnabledPropagator.js +91 -73
  88. package/src/sap/ui/core/EventBus.js +1 -1
  89. package/src/sap/ui/core/ExtensionPoint.js +7 -14
  90. package/src/sap/ui/core/Fragment.js +30 -32
  91. package/src/sap/ui/core/HTML.js +1 -1
  92. package/src/sap/ui/core/History.js +1 -1
  93. package/src/sap/ui/core/Icon.js +5 -5
  94. package/src/sap/ui/core/IconPool.js +15 -1097
  95. package/src/sap/ui/core/IconRenderer.js +2 -2
  96. package/src/sap/ui/core/IndicationColorSupport.js +1 -1
  97. package/src/sap/ui/core/IntervalTrigger.js +1 -1
  98. package/src/sap/ui/core/InvisibleMessage.js +9 -1
  99. package/src/sap/ui/core/InvisibleRenderer.js +1 -1
  100. package/src/sap/ui/core/InvisibleText.js +1 -1
  101. package/src/sap/ui/core/Item.js +1 -1
  102. package/src/sap/ui/core/LabelEnablement.js +1 -1
  103. package/src/sap/ui/core/LayoutData.js +1 -1
  104. package/src/sap/ui/core/ListItem.js +1 -1
  105. package/src/sap/ui/core/LocalBusyIndicator.js +1 -1
  106. package/src/sap/ui/core/Locale.js +26 -4
  107. package/src/sap/ui/core/LocaleData.js +1 -1
  108. package/src/sap/ui/core/Manifest.js +124 -126
  109. package/src/sap/ui/core/Message.js +1 -1
  110. package/src/sap/ui/core/Patcher.js +53 -80
  111. package/src/sap/ui/core/Placeholder.js +25 -11
  112. package/src/sap/ui/core/Popup.js +29 -5
  113. package/src/sap/ui/core/RenderManager.js +41 -24
  114. package/src/sap/ui/core/Renderer.js +13 -3
  115. package/src/sap/ui/core/ResizeHandler.js +1 -1
  116. package/src/sap/ui/core/ScrollBar.js +2 -2
  117. package/src/sap/ui/core/SeparatorItem.js +1 -1
  118. package/src/sap/ui/core/ShortcutHintsMixin.js +14 -7
  119. package/src/sap/ui/core/ThemeCheck.js +13 -61
  120. package/src/sap/ui/core/Title.js +1 -1
  121. package/src/sap/ui/core/TooltipBase.js +1 -1
  122. package/src/sap/ui/core/UIArea.js +5 -2
  123. package/src/sap/ui/core/UIComponent.js +81 -40
  124. package/src/sap/ui/core/UIComponentMetadata.js +1 -1
  125. package/src/sap/ui/core/ValueStateSupport.js +1 -1
  126. package/src/sap/ui/core/VariantLayoutData.js +1 -1
  127. package/src/sap/ui/core/XMLComposite.js +1 -1
  128. package/src/sap/ui/core/XMLCompositeMetadata.js +1 -1
  129. package/src/sap/ui/core/XMLTemplateProcessor.js +5 -5
  130. package/src/sap/ui/core/_IconRegistry.js +1215 -0
  131. package/src/sap/ui/core/delegate/ItemNavigation.js +1 -1
  132. package/src/sap/ui/core/delegate/ScrollEnablement.js +6 -3
  133. package/src/sap/ui/core/dnd/DragDropBase.js +2 -9
  134. package/src/sap/ui/core/dnd/DragDropInfo.js +1 -1
  135. package/src/sap/ui/core/dnd/DragInfo.js +41 -1
  136. package/src/sap/ui/core/dnd/DropInfo.js +1 -1
  137. package/src/sap/ui/core/format/DateFormat.js +2 -0
  138. package/src/sap/ui/core/format/NumberFormat.js +2 -0
  139. package/src/sap/ui/core/hyphenation/Hyphenation.js +73 -221
  140. package/src/sap/ui/core/hyphenation/HyphenationTestingWords.js +11 -10
  141. package/src/sap/ui/core/library.js +3 -3
  142. package/src/sap/ui/core/message/ControlMessageProcessor.js +1 -1
  143. package/src/sap/ui/core/message/Message.js +1 -1
  144. package/src/sap/ui/core/message/MessageManager.js +13 -13
  145. package/src/sap/ui/core/message/MessageParser.js +1 -1
  146. package/src/sap/ui/core/message/MessageProcessor.js +1 -1
  147. package/src/sap/ui/core/messagebundle_de.properties +1 -1
  148. package/src/sap/ui/core/messagebundle_fr.properties +1 -1
  149. package/src/sap/ui/core/messagebundle_it.properties +1 -1
  150. package/src/sap/ui/core/messagebundle_pl.properties +1 -1
  151. package/src/sap/ui/core/messagebundle_th.properties +2 -2
  152. package/src/sap/ui/core/mvc/Controller.js +166 -9
  153. package/src/sap/ui/core/mvc/ControllerExtensionProvider.js +30 -32
  154. package/src/sap/ui/core/mvc/ControllerMetadata.js +18 -18
  155. package/src/sap/ui/core/mvc/HTMLView.js +4 -2
  156. package/src/sap/ui/core/mvc/JSONView.js +8 -6
  157. package/src/sap/ui/core/mvc/JSView.js +5 -3
  158. package/src/sap/ui/core/mvc/TemplateView.js +2 -2
  159. package/src/sap/ui/core/mvc/View.js +73 -89
  160. package/src/sap/ui/core/mvc/ViewType.js +2 -0
  161. package/src/sap/ui/core/mvc/XMLView.js +14 -10
  162. package/src/sap/ui/core/plugin/DeclarativeSupport.js +1 -1
  163. package/src/sap/ui/core/plugin/LessSupport.js +1 -1
  164. package/src/sap/ui/core/plugin/TemplatingSupport.js +1 -1
  165. package/src/sap/ui/core/postmessage/Bus.js +1 -1
  166. package/src/sap/ui/core/postmessage/confirmationDialog.js +1 -1
  167. package/src/sap/ui/core/routing/History.js +36 -18
  168. package/src/sap/ui/core/routing/Route.js +10 -1
  169. package/src/sap/ui/core/routing/Router.js +8 -5
  170. package/src/sap/ui/core/routing/Target.js +13 -0
  171. package/src/sap/ui/core/routing/TargetCache.js +1 -1
  172. package/src/sap/ui/core/routing/Targets.js +39 -2
  173. package/src/sap/ui/core/routing/async/Route.js +7 -4
  174. package/src/sap/ui/core/routing/async/Target.js +383 -262
  175. package/src/sap/ui/core/routing/sync/Target.js +15 -0
  176. package/src/sap/ui/core/rules/App.support.js +35 -1
  177. package/src/sap/ui/core/search/OpenSearchProvider.js +1 -1
  178. package/src/sap/ui/core/search/SearchProvider.js +1 -1
  179. package/src/sap/ui/core/service/Service.js +1 -1
  180. package/src/sap/ui/core/service/ServiceFactory.js +1 -1
  181. package/src/sap/ui/core/service/ServiceFactoryRegistry.js +1 -1
  182. package/src/sap/ui/core/support/BootSupportTool.js +11 -0
  183. package/src/sap/ui/core/support/InteractionTree.css +4 -0
  184. package/src/sap/ui/core/support/Plugin.js +1 -1
  185. package/src/sap/ui/core/support/Support.js +1 -1
  186. package/src/sap/ui/core/support/ViewInfo.css +599 -0
  187. package/src/sap/ui/core/support/controls/InteractionTree.js +352 -222
  188. package/src/sap/ui/core/support/controls/ObjectViewer.js +8 -50
  189. package/src/sap/ui/core/support/controls/TimelineOverview.js +49 -24
  190. package/src/sap/ui/core/support/controls/TreeViewer.js +12 -58
  191. package/src/sap/ui/core/support/plugins/ControlTree.js +23 -26
  192. package/src/sap/ui/core/support/plugins/Debugging.js +9 -11
  193. package/src/sap/ui/core/support/plugins/Interaction.js +2 -2
  194. package/src/sap/ui/core/support/plugins/LocalStorage.js +1 -1
  195. package/src/sap/ui/core/support/plugins/Performance.js +147 -75
  196. package/src/sap/ui/core/support/plugins/Selector.js +19 -24
  197. package/src/sap/ui/core/support/plugins/TechInfo.js +5 -5
  198. package/src/sap/ui/core/support/plugins/Trace.js +95 -32
  199. package/src/sap/ui/core/support/plugins/ViewInfo.js +9 -73
  200. package/src/sap/ui/core/support/support.css +109 -14
  201. package/src/sap/ui/core/support/support.html +6 -2
  202. package/src/sap/ui/core/support/techinfo/TechnicalInfo.fragment.xml +1 -0
  203. package/src/sap/ui/core/support/techinfo/TechnicalInfo.js +149 -72
  204. package/src/sap/ui/core/support/trace/E2eTraceLib.js +3 -3
  205. package/src/sap/ui/core/themes/base/LocalBusyIndicator.less +5 -0
  206. package/src/sap/ui/core/themes/base/base.less +27 -25
  207. package/src/sap/ui/core/themes/base/shared.less +1 -0
  208. package/src/sap/ui/core/theming/Parameters.js +225 -61
  209. package/src/sap/ui/core/theming/ThemeHelper.js +94 -0
  210. package/src/sap/ui/core/tmpl/DOMAttribute.js +1 -1
  211. package/src/sap/ui/core/tmpl/DOMElement.js +1 -1
  212. package/src/sap/ui/core/tmpl/HandlebarsTemplate.js +1 -1
  213. package/src/sap/ui/core/tmpl/Template.js +11 -28
  214. package/src/sap/ui/core/tmpl/TemplateControl.js +4 -4
  215. package/src/sap/ui/core/tmpl/_parsePath.js +35 -0
  216. package/src/sap/ui/core/util/AsyncHintsHelper.js +1 -1
  217. package/src/sap/ui/core/util/DraftEnabledMockServer.js +9 -4
  218. package/src/sap/ui/core/util/Export.js +1 -1
  219. package/src/sap/ui/core/util/ExportCell.js +1 -1
  220. package/src/sap/ui/core/util/ExportColumn.js +1 -1
  221. package/src/sap/ui/core/util/ExportRow.js +1 -1
  222. package/src/sap/ui/core/util/ExportType.js +1 -1
  223. package/src/sap/ui/core/util/ExportTypeCSV.js +1 -1
  224. package/src/sap/ui/core/util/File.js +1 -1
  225. package/src/sap/ui/core/util/LibraryInfo.js +1 -1
  226. package/src/sap/ui/core/util/MockServer.js +24 -5
  227. package/src/sap/ui/core/util/MockServerAnnotationsHandler.js +3 -2
  228. package/src/sap/ui/core/util/PasteHelper.js +1 -1
  229. package/src/sap/ui/core/util/XMLPreprocessor.js +11 -12
  230. package/src/sap/ui/core/util/reflection/BaseTreeModifier.js +154 -63
  231. package/src/sap/ui/core/util/reflection/JsControlTreeModifier.js +171 -152
  232. package/src/sap/ui/core/util/reflection/XmlTreeModifier.js +419 -291
  233. package/src/sap/ui/core/util/serializer/HTMLViewSerializer.js +1 -1
  234. package/src/sap/ui/core/util/serializer/Serializer.js +1 -1
  235. package/src/sap/ui/core/util/serializer/ViewSerializer.js +1 -1
  236. package/src/sap/ui/core/util/serializer/XMLViewSerializer.js +1 -1
  237. package/src/sap/ui/core/util/serializer/delegate/Delegate.js +1 -1
  238. package/src/sap/ui/core/util/serializer/delegate/HTML.js +2 -2
  239. package/src/sap/ui/core/util/serializer/delegate/XML.js +2 -2
  240. package/src/sap/ui/core/ws/ReadyState.js +1 -1
  241. package/src/sap/ui/core/ws/SapPcpWebSocket.js +1 -1
  242. package/src/sap/ui/core/ws/WebSocket.js +1 -1
  243. package/src/sap/ui/debug/ControlTree.js +10 -4
  244. package/src/sap/ui/debug/DebugEnv.js +3 -4
  245. package/src/sap/ui/debug/PropertyList.css +55 -0
  246. package/src/sap/ui/debug/PropertyList.js +111 -182
  247. package/src/sap/ui/events/jquery/EventSimulation.js +7 -6
  248. package/src/sap/ui/events/jquery/EventTriggerHook.js +1 -1
  249. package/src/sap/ui/model/ClientModel.js +1 -1
  250. package/src/sap/ui/model/ClientPropertyBinding.js +3 -1
  251. package/src/sap/ui/model/ClientTreeBinding.js +14 -8
  252. package/src/sap/ui/model/CompositeDataState.js +1 -1
  253. package/src/sap/ui/model/CompositeType.js +1 -1
  254. package/src/sap/ui/model/Context.js +31 -11
  255. package/src/sap/ui/model/DataState.js +1 -1
  256. package/src/sap/ui/model/ListBinding.js +19 -0
  257. package/src/sap/ui/model/MetaModel.js +1 -1
  258. package/src/sap/ui/model/Model.js +3 -3
  259. package/src/sap/ui/model/SelectionModel.js +5 -1
  260. package/src/sap/ui/model/SimpleType.js +1 -1
  261. package/src/sap/ui/model/TreeAutoExpandMode.js +1 -1
  262. package/src/sap/ui/model/Type.js +1 -1
  263. package/src/sap/ui/model/analytics/AnalyticalBinding.js +14 -9
  264. package/src/sap/ui/model/analytics/odata4analytics.js +31 -23
  265. package/src/sap/ui/model/base/ManagedObjectModel.js +13 -1
  266. package/src/sap/ui/model/json/JSONModel.js +4 -2
  267. package/src/sap/ui/model/message/MessageModel.js +4 -2
  268. package/src/sap/ui/model/odata/ODataAnnotations.js +1 -1
  269. package/src/sap/ui/model/odata/ODataListBinding.js +1 -0
  270. package/src/sap/ui/model/odata/ODataMessageParser.js +1 -1
  271. package/src/sap/ui/model/odata/ODataMetaModel.js +5 -2
  272. package/src/sap/ui/model/odata/ODataMetadata.js +1 -1
  273. package/src/sap/ui/model/odata/ODataModel.js +7 -6
  274. package/src/sap/ui/model/odata/ODataUtils.js +31 -10
  275. package/src/sap/ui/model/odata/_AnnotationHelperBasics.js +30 -27
  276. package/src/sap/ui/model/odata/type/Boolean.js +1 -1
  277. package/src/sap/ui/model/odata/type/Byte.js +1 -1
  278. package/src/sap/ui/model/odata/type/Currency.js +7 -2
  279. package/src/sap/ui/model/odata/type/Date.js +1 -1
  280. package/src/sap/ui/model/odata/type/DateTime.js +1 -1
  281. package/src/sap/ui/model/odata/type/DateTimeBase.js +1 -1
  282. package/src/sap/ui/model/odata/type/DateTimeOffset.js +1 -1
  283. package/src/sap/ui/model/odata/type/Decimal.js +1 -1
  284. package/src/sap/ui/model/odata/type/Double.js +1 -1
  285. package/src/sap/ui/model/odata/type/Guid.js +1 -1
  286. package/src/sap/ui/model/odata/type/Int.js +1 -1
  287. package/src/sap/ui/model/odata/type/Int16.js +1 -1
  288. package/src/sap/ui/model/odata/type/Int32.js +1 -1
  289. package/src/sap/ui/model/odata/type/Int64.js +1 -1
  290. package/src/sap/ui/model/odata/type/ODataType.js +1 -1
  291. package/src/sap/ui/model/odata/type/Raw.js +1 -1
  292. package/src/sap/ui/model/odata/type/SByte.js +1 -1
  293. package/src/sap/ui/model/odata/type/Single.js +1 -1
  294. package/src/sap/ui/model/odata/type/Stream.js +1 -1
  295. package/src/sap/ui/model/odata/type/String.js +3 -1
  296. package/src/sap/ui/model/odata/type/Time.js +1 -1
  297. package/src/sap/ui/model/odata/type/TimeOfDay.js +1 -1
  298. package/src/sap/ui/model/odata/type/Unit.js +7 -2
  299. package/src/sap/ui/model/odata/type/UnitMixin.js +20 -7
  300. package/src/sap/ui/model/odata/v2/Context.js +187 -0
  301. package/src/sap/ui/model/odata/v2/ODataAnnotations.js +2 -2
  302. package/src/sap/ui/model/odata/v2/ODataContextBinding.js +55 -51
  303. package/src/sap/ui/model/odata/v2/ODataListBinding.js +42 -106
  304. package/src/sap/ui/model/odata/v2/ODataModel.js +251 -159
  305. package/src/sap/ui/model/odata/v2/ODataTreeBinding.js +163 -136
  306. package/src/sap/ui/model/odata/v4/Context.js +6 -3
  307. package/src/sap/ui/model/odata/v4/ODataBinding.js +3 -3
  308. package/src/sap/ui/model/odata/v4/ODataContextBinding.js +97 -25
  309. package/src/sap/ui/model/odata/v4/ODataListBinding.js +112 -24
  310. package/src/sap/ui/model/odata/v4/ODataMetaModel.js +15 -12
  311. package/src/sap/ui/model/odata/v4/ODataModel.js +85 -77
  312. package/src/sap/ui/model/odata/v4/ODataParentBinding.js +25 -15
  313. package/src/sap/ui/model/odata/v4/ODataPropertyBinding.js +21 -12
  314. package/src/sap/ui/model/odata/v4/_AnnotationHelperExpression.js +10 -3
  315. package/src/sap/ui/model/odata/v4/lib/_AggregationCache.js +13 -4
  316. package/src/sap/ui/model/odata/v4/lib/_AggregationHelper.js +5 -1
  317. package/src/sap/ui/model/odata/v4/lib/_Cache.js +28 -17
  318. package/src/sap/ui/model/odata/v4/lib/_Helper.js +47 -30
  319. package/src/sap/ui/model/odata/v4/lib/_Requestor.js +55 -19
  320. package/src/sap/ui/model/odata/v4/lib/_V2Requestor.js +2 -2
  321. package/src/sap/ui/model/resource/ResourceModel.js +5 -2
  322. package/src/sap/ui/model/type/Boolean.js +1 -1
  323. package/src/sap/ui/model/type/Currency.js +1 -1
  324. package/src/sap/ui/model/type/Date.js +1 -1
  325. package/src/sap/ui/model/type/DateInterval.js +1 -1
  326. package/src/sap/ui/model/type/DateTime.js +1 -1
  327. package/src/sap/ui/model/type/DateTimeInterval.js +1 -1
  328. package/src/sap/ui/model/type/FileSize.js +1 -1
  329. package/src/sap/ui/model/type/Float.js +1 -1
  330. package/src/sap/ui/model/type/Integer.js +1 -1
  331. package/src/sap/ui/model/type/String.js +1 -1
  332. package/src/sap/ui/model/type/Time.js +1 -1
  333. package/src/sap/ui/model/type/TimeInterval.js +1 -1
  334. package/src/sap/ui/model/type/Unit.js +1 -1
  335. package/src/sap/ui/model/xml/XMLModel.js +4 -2
  336. package/src/sap/ui/performance/Measurement.js +1 -1
  337. package/src/sap/ui/performance/trace/FESR.js +2 -1
  338. package/src/sap/ui/performance/trace/Interaction.js +42 -25
  339. package/src/sap/ui/performance/trace/initTraces.js +1 -1
  340. package/src/sap/ui/qunit/QUnitUtils.js +1 -1
  341. package/src/sap/ui/qunit/utils/ControlIterator.js +1 -1
  342. package/src/sap/ui/qunit/utils/MemoryLeakCheck.js +1 -1
  343. package/src/sap/ui/security/FrameOptions.js +2 -1
  344. package/src/sap/ui/test/Opa5.js +1 -1
  345. package/src/sap/ui/test/OpaBuilder.js +1 -0
  346. package/src/sap/ui/test/TestUtils.js +28 -34
  347. package/src/sap/ui/test/actions/Drag.js +6 -2
  348. package/src/sap/ui/test/actions/Drop.js +6 -2
  349. package/src/sap/ui/test/actions/EnterText.js +6 -0
  350. package/src/sap/ui/test/actions/Press.js +6 -0
  351. package/src/sap/ui/test/actions/Scroll.js +6 -0
  352. package/src/sap/ui/test/autowaiter/_resourceWaiter.js +4 -4
  353. package/src/sap/ui/test/launchers/componentLauncher.js +1 -4
  354. package/src/sap/ui/test/matchers/I18NText.js +29 -11
  355. package/src/sap/ui/test/opaQunit.js +11 -9
  356. package/src/sap/ui/test/selectors/_ControlSelectorGenerator.js +4 -4
  357. package/src/sap/ui/thirdparty/caja-html-sanitizer.js +1 -1
  358. package/src/sap/ui/thirdparty/crossroads.js +16 -6
  359. package/src/sap/ui/thirdparty/hyphenopoly/Hyphenopoly.js +1196 -0
  360. package/src/sap/ui/thirdparty/hyphenopoly/Hyphenopoly_Loader.js +797 -0
  361. package/src/sap/ui/thirdparty/hyphenopoly/hyphenEngine.asm.js +108 -127
  362. package/src/sap/ui/thirdparty/hyphenopoly/hyphenEngine.wasm +0 -0
  363. package/src/sap/ui/thirdparty/hyphenopoly/patterns/bg.hpb +0 -0
  364. package/src/sap/ui/thirdparty/hyphenopoly/patterns/ca.hpb +0 -0
  365. package/src/sap/ui/thirdparty/hyphenopoly/patterns/da.hpb +0 -0
  366. package/src/sap/ui/thirdparty/hyphenopoly/patterns/de.hpb +0 -0
  367. package/src/sap/ui/thirdparty/hyphenopoly/patterns/el-monoton.hpb +0 -0
  368. package/src/sap/ui/thirdparty/hyphenopoly/patterns/en-us.hpb +0 -0
  369. package/src/sap/ui/thirdparty/hyphenopoly/patterns/es.hpb +0 -0
  370. package/src/sap/ui/thirdparty/hyphenopoly/patterns/et.hpb +0 -0
  371. package/src/sap/ui/thirdparty/hyphenopoly/patterns/fi.hpb +0 -0
  372. package/src/sap/ui/thirdparty/hyphenopoly/patterns/fr.hpb +0 -0
  373. package/src/sap/ui/thirdparty/hyphenopoly/patterns/hi.hpb +0 -0
  374. package/src/sap/ui/thirdparty/hyphenopoly/patterns/hr.hpb +0 -0
  375. package/src/sap/ui/thirdparty/hyphenopoly/patterns/hu.hpb +0 -0
  376. package/src/sap/ui/thirdparty/hyphenopoly/patterns/it.hpb +0 -0
  377. package/src/sap/ui/thirdparty/hyphenopoly/patterns/lt.hpb +0 -0
  378. package/src/sap/ui/thirdparty/hyphenopoly/patterns/nb-no.hpb +0 -0
  379. package/src/sap/ui/thirdparty/hyphenopoly/patterns/nl.hpb +0 -0
  380. package/src/sap/ui/thirdparty/hyphenopoly/patterns/pt.hpb +0 -0
  381. package/src/sap/ui/thirdparty/hyphenopoly/patterns/ru.hpb +0 -0
  382. package/src/sap/ui/thirdparty/hyphenopoly/patterns/sl.hpb +0 -0
  383. package/src/sap/ui/thirdparty/hyphenopoly/patterns/sv.hpb +0 -0
  384. package/src/sap/ui/thirdparty/hyphenopoly/patterns/th.hpb +0 -0
  385. package/src/sap/ui/thirdparty/hyphenopoly/patterns/tr.hpb +0 -0
  386. package/src/sap/ui/thirdparty/hyphenopoly/patterns/uk.hpb +0 -0
  387. package/src/sap/ui/util/Storage.js +1 -1
  388. package/src/sap/ui/util/isCrossOriginURL.js +16 -6
  389. package/src/sap-ui-core-nojQuery.js +1 -1
  390. package/src/sap-ui-core.js +1 -1
  391. package/src/sap-ui-debug.js +3 -17
  392. package/src/ui5loader.js +5 -2
  393. package/src/sap/ui/core/support/plugins/MessageTest.js +0 -96
  394. package/src/sap/ui/thirdparty/hyphenopoly/hyphenopoly.bundle.js +0 -860
@@ -19,7 +19,7 @@ sap.ui.define([
19
19
  // delegate further initialization of this library to the Core
20
20
  sap.ui.getCore().initLibrary({
21
21
  name : "sap.ui.core",
22
- version: "1.92.0",
22
+ version: "1.95.0",
23
23
  designtime: "sap/ui/core/designtime/library.designtime",
24
24
  types: [
25
25
 
@@ -159,7 +159,7 @@ sap.ui.define([
159
159
  * @namespace
160
160
  * @alias sap.ui.core
161
161
  * @author SAP SE
162
- * @version 1.92.0
162
+ * @version 1.95.0
163
163
  * @since 0.8
164
164
  * @public
165
165
  */
@@ -1511,7 +1511,7 @@ sap.ui.define([
1511
1511
  /**
1512
1512
  * Sort order of a column.
1513
1513
  *
1514
- * @version 1.92.0
1514
+ * @version 1.95.0
1515
1515
  * @enum {string}
1516
1516
  * @public
1517
1517
  * @since 1.61.0
@@ -29,7 +29,7 @@ sap.ui.define(['sap/ui/core/message/MessageProcessor'],
29
29
  * @extends sap.ui.core.message.MessageProcessor
30
30
  *
31
31
  * @author SAP SE
32
- * @version 1.92.0
32
+ * @version 1.95.0
33
33
  *
34
34
  * @public
35
35
  * @alias sap.ui.core.message.ControlMessageProcessor
@@ -35,7 +35,7 @@ sap.ui.define([
35
35
  * @extends sap.ui.base.Object
36
36
  *
37
37
  * @author SAP SE
38
- * @version 1.92.0
38
+ * @version 1.95.0
39
39
  *
40
40
  * @param {object} [mParameters] a map which contains the following parameter properties:
41
41
  * @param {string} [mParameters.id] The message id: will be generated if no id is set
@@ -46,7 +46,7 @@ sap.ui.define([
46
46
  * @extends sap.ui.base.EventProvider
47
47
  *
48
48
  * @author SAP SE
49
- * @version 1.92.0
49
+ * @version 1.95.0
50
50
  *
51
51
  * @public
52
52
  * @alias sap.ui.core.message.MessageManager
@@ -404,14 +404,14 @@ sap.ui.define([
404
404
  * @public
405
405
  */
406
406
  MessageManager.prototype.registerObject = function(oObject, bHandleValidation) {
407
- if (!oObject instanceof ManagedObject) {
407
+ if (!(oObject instanceof ManagedObject)) {
408
408
  Log.error(this + " : " + oObject.toString() + " is not an instance of sap.ui.base.ManagedObject");
409
- 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);
410
414
  }
411
- oObject.attachValidationSuccess(bHandleValidation, this._handleSuccess, this);
412
- oObject.attachValidationError(bHandleValidation, this._handleError, this);
413
- oObject.attachParseError(bHandleValidation, this._handleError, this);
414
- oObject.attachFormatError(bHandleValidation, this._handleError, this);
415
415
  };
416
416
 
417
417
  /**
@@ -421,14 +421,14 @@ sap.ui.define([
421
421
  * @public
422
422
  */
423
423
  MessageManager.prototype.unregisterObject = function(oObject) {
424
- if (!oObject instanceof ManagedObject) {
424
+ if (!(oObject instanceof ManagedObject)) {
425
425
  Log.error(this + " : " + oObject.toString() + " is not an instance of sap.ui.base.ManagedObject");
426
- 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);
427
431
  }
428
- oObject.detachValidationSuccess(this._handleSuccess, this);
429
- oObject.detachValidationError(this._handleError, this);
430
- oObject.detachParseError(this._handleError, this);
431
- oObject.detachFormatError(this._handleError, this);
432
432
  };
433
433
 
434
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.92.0
27
+ * @version 1.95.0
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.92.0
30
+ * @version 1.95.0
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
@@ -84,6 +84,7 @@ sap.ui.define([
84
84
  this["_sapui_Extensions"] = {};
85
85
  Controller.extendByMember(this, false);
86
86
  this._sapui_isExtended = false;
87
+ this._aDestroyables = [];
87
88
  },
88
89
  /**
89
90
  * Wether a controller is extended or not
@@ -293,7 +294,7 @@ sap.ui.define([
293
294
  }
294
295
  });
295
296
  } else if (!ControllerClass) {
296
- ControllerClass = sap.ui.requireSync(sControllerName);
297
+ ControllerClass = sap.ui.requireSync(sControllerName); // legacy-relevant: Sync path
297
298
  return resolveClass(ControllerClass);
298
299
  } else {
299
300
  return ControllerClass;
@@ -595,16 +596,60 @@ sap.ui.define([
595
596
  return mPublicFunctions;
596
597
  };
597
598
 
599
+ /**
600
+ * Returns the list of Promises for which an automatic destroy is scheduled.
601
+ * Logs an error in case the application controller is missing a mandatory
602
+ * constructor super call.
603
+ * For compatibility reason we must not fail in this obviously broken scenario!
604
+ *
605
+ * @private
606
+ */
607
+ Controller.prototype._getDestroyables = function() {
608
+ if (!this._aDestroyables) {
609
+ Log.error("Mandatory super constructor not called for Controller: '" + this.getMetadata().getName() + "'.",
610
+ null,
611
+ "sap.ui.support",
612
+ function() {
613
+ return { type: "missingSuperConstructor" };
614
+ });
615
+ this._aDestroyables = [];
616
+ }
617
+ return this._aDestroyables;
618
+ };
619
+
620
+ /**
621
+ * Takes care of async destruction of fragments created with {@link sap.ui.core.Controller.loadFragment loadFragment}
622
+ *
623
+ * @private
624
+ */
625
+ Controller.prototype.destroyFragments = function() {
626
+ function fnDestroy(vContent) {
627
+ vContent = Array.isArray(vContent) ? vContent : [vContent];
628
+ for (var i = 0; i < vContent.length; i++) {
629
+ if (!vContent[i].isDestroyed()) {
630
+ vContent[i].destroy();
631
+ }
632
+ }
633
+ }
634
+ // chain each cancelable to trigger an async destroy
635
+ var aDestroyables = this._getDestroyables();
636
+ for (var i = 0; i < aDestroyables.length; i++ ) {
637
+ aDestroyables[i] = aDestroyables[i].then(fnDestroy);
638
+ }
639
+ };
640
+
598
641
  /**
599
642
  * Fire event when destroying a controller to cleanup extensions
600
643
  * @private
601
644
  */
602
645
  Controller.prototype.destroy = function() {
603
- Object.keys(this["_sapui_Extensions"]).forEach(function(oExtensionInfo) {
604
- ObjectPath.set(oExtensionInfo.location, null, this);
605
- }.bind(this));
606
- delete this["_sapui_Extensions"];
607
- delete this["_sapui_Interface"];
646
+ if (this["_sapui_Extensions"]) {
647
+ Object.keys(this["_sapui_Extensions"]).forEach(function(sKey) {
648
+ var oExtensionInfo = this["_sapui_Extensions"][sKey];
649
+ ObjectPath.set(oExtensionInfo.location, null, this);
650
+ }.bind(this));
651
+ delete this["_sapui_Extensions"];
652
+ }
608
653
  EventProvider.prototype.destroy.apply(this, arguments);
609
654
  };
610
655
 
@@ -661,8 +706,12 @@ sap.ui.define([
661
706
  * @public
662
707
  */
663
708
  Controller.prototype.getOwnerComponent = function () {
664
- var Component = sap.ui.requireSync("sap/ui/core/Component");
665
- return Component.getOwnerComponentFor(this.getView());
709
+ var Component = sap.ui.require("sap/ui/core/Component");
710
+ if (Component) {
711
+ return Component.getOwnerComponentFor(this.getView());
712
+ } else {
713
+ return undefined;
714
+ }
666
715
  };
667
716
 
668
717
 
@@ -674,6 +723,9 @@ sap.ui.define([
674
723
  }
675
724
  if (this.onExit) {
676
725
  oView.attachBeforeExit(this.onExit, this);
726
+ if (oView.bControllerIsViewManaged) {
727
+ oView.attachBeforeExit(this.destroyFragments, this);
728
+ }
677
729
  }
678
730
  if (this.onAfterRendering) {
679
731
  oView.attachAfterRendering(this.onAfterRendering, this);
@@ -681,9 +733,114 @@ sap.ui.define([
681
733
  if (this.onBeforeRendering) {
682
734
  oView.attachBeforeRendering(this.onBeforeRendering, this);
683
735
  }
684
- //oView.addDelegate(this);
685
736
  };
686
737
 
738
+ /**
739
+ * Loads a Fragment by {@link sap.ui.core.Fragment.load}.
740
+ *
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.
743
+ *
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.
746
+ *
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.
750
+ *
751
+ * When <code>autoPrefixId</code> is enabled, the fragment content can be accessed by calling
752
+ * {@link sap.ui.core.mvc.Controller.byId}.
753
+ *
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>
765
+ *
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));
782
+ *
783
+ * @param {object} mOptions Options regarding fragment loading
784
+ * @param {string} mOptions.name The Fragment name, which must correspond to a Fragment which can be loaded via the module system
785
+ * (fragmentName + suffix ".fragment.[typeextension]") and which contains the Fragment definition.
786
+ * @param {object} [mOptions.addToDependents=true] Whether the fragment content should be added to the <code>dependents</code> aggregation of the view
787
+ * @param {object} [mOptions.autoPrefixId=true] Whether the IDs of the fragment content will be prefixed by the view ID
788
+ * @param {string} [mOptions.id] the ID of the Fragment
789
+ * @param {string} [mOptions.type=XML] the Fragment type, e.g. "XML", "JS", or "HTML" (see above). Default is "XML"
790
+ * @return {Promise} A Promise that resolves with the fragment content
791
+ *
792
+ * @since 1.93
793
+ * @public
794
+ */
795
+ Controller.prototype.loadFragment = function(mOptions) {
796
+ if (!this.getView()) {
797
+ throw new Error("Calling 'loadFragment' without a view attached is not supported!");
798
+ } else if (!mOptions || !mOptions.name) {
799
+ throw new Error("oOptions must provide at least a fragment name!");
800
+ }
801
+
802
+ var oOwnerComponent = this.getOwnerComponent();
803
+ var bAddToDependents = mOptions.addToDependents !== false;
804
+ var bAutoPrefixId = mOptions.autoPrefixId !== false;
805
+
806
+ var oFragmentOptions = {
807
+ name: mOptions.name,
808
+ type: mOptions.type,
809
+ id: mOptions.id,
810
+ controller: this
811
+ };
812
+
813
+ var aDestroyables = this._getDestroyables();
814
+
815
+ var pRequire = new Promise(function(resolve, reject) {
816
+ sap.ui.require(["sap/ui/core/Fragment"], function(Fragment) {
817
+ resolve(Fragment);
818
+ }, reject);
819
+ }).then(function(Fragment) {
820
+ if (!mOptions.id && bAutoPrefixId) {
821
+ oFragmentOptions.id = this.getView().getId();
822
+ } else if (bAutoPrefixId) {
823
+ oFragmentOptions.id = this.createId(mOptions.id);
824
+ }
825
+ if (oOwnerComponent) {
826
+ return oOwnerComponent.runAsOwner(function() {
827
+ return Fragment.load(oFragmentOptions);
828
+ });
829
+ } else {
830
+ return Fragment.load(oFragmentOptions);
831
+ }
832
+ }.bind(this)).then(function(vContent) {
833
+ if (bAddToDependents) {
834
+ this.getView().applySettings({"dependents": vContent});
835
+ }
836
+ /* if already resolved remove from bookkeeping. App needs to destroy or it is
837
+ implicitly destroyed via the dependents (or other) aggregation */
838
+ aDestroyables.splice(aDestroyables.indexOf(pRequire),1);
839
+ return vContent;
840
+ }.bind(this));
841
+ aDestroyables.push(pRequire);
842
+ return pRequire;
843
+ };
687
844
 
688
845
  /**
689
846
  * Global extension provider name which will be used to create the
@@ -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.92.0
48
+ * @version 1.95.0
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
  /**
@@ -121,6 +121,8 @@ sap.ui.define([
121
121
  /**
122
122
  * Flag for feature detection of asynchronous loading/rendering
123
123
  * @public
124
+ * @readonly
125
+ * @type {boolean}
124
126
  * @since 1.30
125
127
  */
126
128
  HTMLView.asyncSupport = true;
@@ -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.92.0
46
+ * @version 1.95.0
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
  /**
@@ -132,10 +132,12 @@ sap.ui.define([
132
132
  JSONView._sType = ViewType.JSON;
133
133
 
134
134
  /**
135
- * Flag for feature detection of asynchronous loading/rendering
136
- * @public
137
- * @since 1.30
138
- */
135
+ * Flag for feature detection of asynchronous loading/rendering.
136
+ * @public
137
+ * @readonly
138
+ * @type {boolean}
139
+ * @since 1.30
140
+ */
139
141
  JSONView.asyncSupport = true;
140
142
 
141
143
  JSONView.prototype.initViewSettings = function(mSettings) {
@@ -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.92.0
30
+ * @version 1.95.0
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}.
@@ -62,8 +62,10 @@ sap.ui.define([
62
62
 
63
63
 
64
64
  /**
65
- * Flag for feature detection of asynchronous loading/rendering
65
+ * Flag for feature detection of asynchronous loading/rendering.
66
66
  * @public
67
+ * @readonly
68
+ * @type {boolean}
67
69
  * @since 1.30
68
70
  */
69
71
  JSView.asyncSupport = true;
@@ -224,7 +226,7 @@ sap.ui.define([
224
226
  sap.ui.require([sModuleName], resolve, reject);
225
227
  });
226
228
  } else {
227
- sap.ui.requireSync(sModuleName);
229
+ sap.ui.requireSync(sModuleName); // legacy-relevant: Sync path
228
230
  }
229
231
  }
230
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.92.0
32
+ * @version 1.95.0
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
  /**