@openui5/sap.ui.core 1.91.0 → 1.93.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 (373) hide show
  1. package/.eslintrc.json +37 -0
  2. package/.reuse/dep5 +46 -0
  3. package/THIRDPARTY.txt +59 -1
  4. package/package.json +1 -1
  5. package/src/jquery.sap.global.js +6 -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 +0 -1
  11. package/src/sap/base/i18n/ResourceBundle.js +2 -2
  12. package/src/sap/base/security/encodeCSS.js +1 -0
  13. package/src/sap/base/security/encodeJS.js +1 -0
  14. package/src/sap/base/security/encodeURL.js +1 -0
  15. package/src/sap/base/security/encodeXML.js +2 -0
  16. package/src/sap/base/util/LoaderExtensions.js +1 -1
  17. package/src/sap/base/util/Properties.js +4 -1
  18. package/src/sap/base/util/isEmptyObject.js +1 -2
  19. package/src/sap/base/util/restricted/_CancelablePromise.js +1 -1
  20. package/src/sap/base/util/restricted/_castArray.js +1 -1
  21. package/src/sap/base/util/restricted/_compact.js +1 -1
  22. package/src/sap/base/util/restricted/_curry.js +1 -1
  23. package/src/sap/base/util/restricted/_debounce.js +1 -1
  24. package/src/sap/base/util/restricted/_difference.js +1 -1
  25. package/src/sap/base/util/restricted/_differenceBy.js +1 -1
  26. package/src/sap/base/util/restricted/_differenceWith.js +1 -1
  27. package/src/sap/base/util/restricted/_flatMap.js +1 -1
  28. package/src/sap/base/util/restricted/_flatMapDeep.js +1 -1
  29. package/src/sap/base/util/restricted/_flatMapDepth.js +1 -1
  30. package/src/sap/base/util/restricted/_flatten.js +1 -1
  31. package/src/sap/base/util/restricted/_flattenDeep.js +1 -1
  32. package/src/sap/base/util/restricted/_flattenDepth.js +1 -1
  33. package/src/sap/base/util/restricted/_intersection.js +1 -1
  34. package/src/sap/base/util/restricted/_intersectionBy.js +1 -1
  35. package/src/sap/base/util/restricted/_intersectionWith.js +1 -1
  36. package/src/sap/base/util/restricted/_isEqual.js +1 -1
  37. package/src/sap/base/util/restricted/_isEqualWith.js +1 -1
  38. package/src/sap/base/util/restricted/_isNil.js +1 -1
  39. package/src/sap/base/util/restricted/_max.js +1 -1
  40. package/src/sap/base/util/restricted/_merge.js +1 -1
  41. package/src/sap/base/util/restricted/_mergeWith.js +1 -1
  42. package/src/sap/base/util/restricted/_min.js +1 -1
  43. package/src/sap/base/util/restricted/_omit.js +1 -1
  44. package/src/sap/base/util/restricted/_pick.js +1 -1
  45. package/src/sap/base/util/restricted/_pickBy.js +1 -1
  46. package/src/sap/base/util/restricted/_throttle.js +1 -1
  47. package/src/sap/base/util/restricted/_toArray.js +1 -1
  48. package/src/sap/base/util/restricted/_union.js +1 -1
  49. package/src/sap/base/util/restricted/_unionBy.js +1 -1
  50. package/src/sap/base/util/restricted/_unionWith.js +1 -1
  51. package/src/sap/base/util/restricted/_uniq.js +1 -1
  52. package/src/sap/base/util/restricted/_uniqBy.js +1 -1
  53. package/src/sap/base/util/restricted/_uniqWith.js +1 -1
  54. package/src/sap/base/util/restricted/_without.js +1 -1
  55. package/src/sap/base/util/restricted/_xor.js +1 -1
  56. package/src/sap/base/util/restricted/_xorBy.js +1 -1
  57. package/src/sap/base/util/restricted/_xorWith.js +1 -1
  58. package/src/sap/base/util/restricted/_zipObject.js +1 -1
  59. package/src/sap/base/util/restricted/_zipObjectDeep.js +1 -1
  60. package/src/sap/ui/Device.js +10 -10
  61. package/src/sap/ui/Global.js +4 -4
  62. package/src/sap/ui/VersionInfo.js +1 -0
  63. package/src/sap/ui/base/DataType.js +1 -0
  64. package/src/sap/ui/base/Event.js +1 -1
  65. package/src/sap/ui/base/EventProvider.js +1 -1
  66. package/src/sap/ui/base/Interface.js +1 -1
  67. package/src/sap/ui/base/ManagedObject.js +121 -18
  68. package/src/sap/ui/base/ManagedObjectMetadata.js +13 -4
  69. package/src/sap/ui/base/Metadata.js +1 -1
  70. package/src/sap/ui/base/Object.js +1 -1
  71. package/src/sap/ui/base/ObjectPool.js +1 -1
  72. package/src/sap/ui/core/.library +4 -2
  73. package/src/sap/ui/core/BusyIndicator.js +1 -1
  74. package/src/sap/ui/core/BusyIndicatorUtils.js +4 -1
  75. package/src/sap/ui/core/Component.js +144 -43
  76. package/src/sap/ui/core/ComponentContainer.js +51 -2
  77. package/src/sap/ui/core/ComponentMetadata.js +1 -1
  78. package/src/sap/ui/core/ComponentSupport.js +1 -1
  79. package/src/sap/ui/core/Configuration.js +2 -1
  80. package/src/sap/ui/core/Control.js +1 -1
  81. package/src/sap/ui/core/Core.js +20 -22
  82. package/src/sap/ui/core/CustomData.js +1 -1
  83. package/src/sap/ui/core/CustomizingConfiguration.js +2 -2
  84. package/src/sap/ui/core/DeclarativeSupport.js +1 -1
  85. package/src/sap/ui/core/Element.js +1 -1
  86. package/src/sap/ui/core/ElementMetadata.js +1 -3
  87. package/src/sap/ui/core/EnabledPropagator.js +1 -1
  88. package/src/sap/ui/core/EventBus.js +1 -1
  89. package/src/sap/ui/core/ExtensionPoint.js +59 -16
  90. package/src/sap/ui/core/Fragment.js +3 -3
  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 +1 -1
  94. package/src/sap/ui/core/IndicationColorSupport.js +1 -1
  95. package/src/sap/ui/core/IntervalTrigger.js +1 -1
  96. package/src/sap/ui/core/InvisibleMessage.js +9 -1
  97. package/src/sap/ui/core/InvisibleRenderer.js +1 -1
  98. package/src/sap/ui/core/InvisibleText.js +1 -1
  99. package/src/sap/ui/core/Item.js +1 -1
  100. package/src/sap/ui/core/LabelEnablement.js +1 -1
  101. package/src/sap/ui/core/LayoutData.js +1 -1
  102. package/src/sap/ui/core/ListItem.js +1 -1
  103. package/src/sap/ui/core/LocalBusyIndicator.js +1 -1
  104. package/src/sap/ui/core/Locale.js +1 -1
  105. package/src/sap/ui/core/LocaleData.js +15 -1328
  106. package/src/sap/ui/core/Manifest.js +124 -69
  107. package/src/sap/ui/core/Message.js +1 -1
  108. package/src/sap/ui/core/Patcher.js +143 -153
  109. package/src/sap/ui/core/Placeholder.js +173 -0
  110. package/src/sap/ui/core/Popup.js +29 -5
  111. package/src/sap/ui/core/RenderManager.js +344 -104
  112. package/src/sap/ui/core/Renderer.js +1 -1
  113. package/src/sap/ui/core/ResizeHandler.js +1 -1
  114. package/src/sap/ui/core/ScrollBar.js +1 -1
  115. package/src/sap/ui/core/SeparatorItem.js +1 -1
  116. package/src/sap/ui/core/ThemeCheck.js +14 -62
  117. package/src/sap/ui/core/Title.js +1 -1
  118. package/src/sap/ui/core/TooltipBase.js +1 -1
  119. package/src/sap/ui/core/UIArea.js +6 -3
  120. package/src/sap/ui/core/UIComponent.js +46 -23
  121. package/src/sap/ui/core/UIComponentMetadata.js +1 -1
  122. package/src/sap/ui/core/ValueStateSupport.js +1 -1
  123. package/src/sap/ui/core/VariantLayoutData.js +1 -1
  124. package/src/sap/ui/core/XMLComposite.js +3 -5
  125. package/src/sap/ui/core/XMLCompositeMetadata.js +1 -1
  126. package/src/sap/ui/core/XMLTemplateProcessor.js +5 -6
  127. package/src/sap/ui/core/cldr/en.json +1 -0
  128. package/src/sap/ui/core/date/UniversalDate.js +4 -2
  129. package/src/sap/ui/core/delegate/ItemNavigation.js +4 -4
  130. package/src/sap/ui/core/delegate/ScrollEnablement.js +1 -1
  131. package/src/sap/ui/core/dnd/DragAndDrop.js +1 -1
  132. package/src/sap/ui/core/dnd/DragDropBase.js +2 -9
  133. package/src/sap/ui/core/dnd/DragDropInfo.js +1 -1
  134. package/src/sap/ui/core/dnd/DragInfo.js +41 -1
  135. package/src/sap/ui/core/dnd/DropInfo.js +1 -1
  136. package/src/sap/ui/core/format/DateFormat.js +4 -2
  137. package/src/sap/ui/core/format/NumberFormat.js +3 -0
  138. package/src/sap/ui/core/hyphenation/Hyphenation.js +1 -1
  139. package/src/sap/ui/core/library.js +26 -4
  140. package/src/sap/ui/core/message/ControlMessageProcessor.js +1 -1
  141. package/src/sap/ui/core/message/Message.js +1 -1
  142. package/src/sap/ui/core/message/MessageManager.js +4 -2
  143. package/src/sap/ui/core/message/MessageParser.js +1 -1
  144. package/src/sap/ui/core/message/MessageProcessor.js +1 -1
  145. package/src/sap/ui/core/messagebundle_cs.properties +1 -1
  146. package/src/sap/ui/core/messagebundle_ms.properties +1 -1
  147. package/src/sap/ui/core/messagebundle_pt.properties +6 -6
  148. package/src/sap/ui/core/messagebundle_tr.properties +1 -1
  149. package/src/sap/ui/core/mvc/Controller.js +146 -8
  150. package/src/sap/ui/core/mvc/HTMLView.js +3 -1
  151. package/src/sap/ui/core/mvc/JSONView.js +7 -5
  152. package/src/sap/ui/core/mvc/JSView.js +4 -2
  153. package/src/sap/ui/core/mvc/TemplateView.js +1 -1
  154. package/src/sap/ui/core/mvc/View.js +145 -68
  155. package/src/sap/ui/core/mvc/ViewType.js +2 -0
  156. package/src/sap/ui/core/mvc/XMLView.js +13 -9
  157. package/src/sap/ui/core/plugin/DeclarativeSupport.js +1 -1
  158. package/src/sap/ui/core/plugin/LessSupport.js +1 -1
  159. package/src/sap/ui/core/plugin/TemplatingSupport.js +1 -1
  160. package/src/sap/ui/core/postmessage/Bus.js +1 -1
  161. package/src/sap/ui/core/postmessage/confirmationDialog.js +1 -1
  162. package/src/sap/ui/core/routing/HashChangerBase.js +9 -2
  163. package/src/sap/ui/core/routing/History.js +188 -87
  164. package/src/sap/ui/core/routing/Route.js +10 -1
  165. package/src/sap/ui/core/routing/Router.js +8 -5
  166. package/src/sap/ui/core/routing/RouterHashChanger.js +26 -16
  167. package/src/sap/ui/core/routing/TargetCache.js +19 -8
  168. package/src/sap/ui/core/routing/Targets.js +29 -3
  169. package/src/sap/ui/core/routing/async/Route.js +9 -1
  170. package/src/sap/ui/core/routing/async/Target.js +249 -85
  171. package/src/sap/ui/core/routing/async/TargetCache.js +9 -7
  172. package/src/sap/ui/core/routing/async/Targets.js +4 -2
  173. package/src/sap/ui/core/routing/sync/Target.js +15 -0
  174. package/src/sap/ui/core/rules/App.support.js +36 -2
  175. package/src/sap/ui/core/search/OpenSearchProvider.js +1 -1
  176. package/src/sap/ui/core/search/SearchProvider.js +1 -1
  177. package/src/sap/ui/core/service/Service.js +1 -1
  178. package/src/sap/ui/core/service/ServiceFactory.js +1 -1
  179. package/src/sap/ui/core/service/ServiceFactoryRegistry.js +1 -1
  180. package/src/sap/ui/core/support/InteractionTree.css +0 -14
  181. package/src/sap/ui/core/support/Plugin.js +1 -1
  182. package/src/sap/ui/core/support/RuleEngineOpaExtension.js +0 -2
  183. package/src/sap/ui/core/support/Support.js +1 -1
  184. package/src/sap/ui/core/support/TimelineOverview.css +0 -35
  185. package/src/sap/ui/core/support/controls/ObjectViewer.js +5 -9
  186. package/src/sap/ui/core/support/controls/TreeViewer.js +0 -1
  187. package/src/sap/ui/core/support/interactionSlider.css +0 -3
  188. package/src/sap/ui/core/support/plugins/ControlTree.js +2 -2
  189. package/src/sap/ui/core/support/plugins/Interaction.js +1 -1
  190. package/src/sap/ui/core/support/plugins/LocalStorage.js +1 -1
  191. package/src/sap/ui/core/support/plugins/MessageTest.js +1 -1
  192. package/src/sap/ui/core/support/plugins/Performance.js +2 -1
  193. package/src/sap/ui/core/support/plugins/Selector.js +1 -1
  194. package/src/sap/ui/core/support/plugins/TechInfo.js +1 -1
  195. package/src/sap/ui/core/support/plugins/Trace.js +1 -1
  196. package/src/sap/ui/core/support/plugins/ViewInfo.js +1 -3
  197. package/src/sap/ui/core/support/support.css +4 -164
  198. package/src/sap/ui/core/support/trace/E2eTraceLib.js +3 -3
  199. package/src/sap/ui/core/support/usage/EventBroadcaster.js +0 -22
  200. package/src/sap/ui/core/themes/base/BlindLayer.less +0 -2
  201. package/src/sap/ui/core/themes/base/BrowserScrollbar.less +0 -9
  202. package/src/sap/ui/core/themes/base/LocalBusyIndicator.less +5 -5
  203. package/src/sap/ui/core/themes/base/SAP-icons.css +2 -0
  204. package/src/sap/ui/core/themes/base/SAP-icons.less +10 -0
  205. package/src/sap/ui/core/themes/base/TechnicalInfo.less +0 -1
  206. package/src/sap/ui/core/themes/base/base.less +569 -414
  207. package/src/sap/ui/core/themes/base/global.less +38 -0
  208. package/src/sap/ui/core/themes/base/library.source.less +1 -2
  209. package/src/sap/ui/core/themes/base/shared.less +1 -1
  210. package/src/sap/ui/core/themes/sap_hcb/global.less +34 -0
  211. package/src/sap/ui/core/theming/Parameters.js +222 -60
  212. package/src/sap/ui/core/theming/ThemeHelper.js +94 -0
  213. package/src/sap/ui/core/tmpl/DOMAttribute.js +1 -1
  214. package/src/sap/ui/core/tmpl/DOMElement.js +1 -1
  215. package/src/sap/ui/core/tmpl/HandlebarsTemplate.js +1 -1
  216. package/src/sap/ui/core/tmpl/Template.js +2 -1
  217. package/src/sap/ui/core/tmpl/TemplateControl.js +1 -1
  218. package/src/sap/ui/core/util/AsyncHintsHelper.js +1 -1
  219. package/src/sap/ui/core/util/Export.js +1 -1
  220. package/src/sap/ui/core/util/ExportCell.js +1 -1
  221. package/src/sap/ui/core/util/ExportColumn.js +1 -1
  222. package/src/sap/ui/core/util/ExportRow.js +1 -1
  223. package/src/sap/ui/core/util/ExportType.js +1 -1
  224. package/src/sap/ui/core/util/ExportTypeCSV.js +1 -1
  225. package/src/sap/ui/core/util/File.js +1 -1
  226. package/src/sap/ui/core/util/LibraryInfo.js +1 -1
  227. package/src/sap/ui/core/util/MockServer.js +27 -7
  228. package/src/sap/ui/core/util/PasteHelper.js +1 -1
  229. package/src/sap/ui/core/util/XMLPreprocessor.js +2 -2
  230. package/src/sap/ui/core/util/reflection/BaseTreeModifier.js +18 -0
  231. package/src/sap/ui/core/util/serializer/HTMLViewSerializer.js +1 -1
  232. package/src/sap/ui/core/util/serializer/Serializer.js +1 -1
  233. package/src/sap/ui/core/util/serializer/ViewSerializer.js +1 -1
  234. package/src/sap/ui/core/util/serializer/XMLViewSerializer.js +1 -1
  235. package/src/sap/ui/core/util/serializer/delegate/Delegate.js +1 -1
  236. package/src/sap/ui/core/util/serializer/delegate/HTML.js +2 -2
  237. package/src/sap/ui/core/util/serializer/delegate/XML.js +2 -2
  238. package/src/sap/ui/core/ws/ReadyState.js +1 -1
  239. package/src/sap/ui/core/ws/SapPcpWebSocket.js +2 -1
  240. package/src/sap/ui/core/ws/WebSocket.js +1 -1
  241. package/src/sap/ui/debug/ControlTree.js +1 -1
  242. package/src/sap/ui/debug/DebugEnv.js +1 -1
  243. package/src/sap/ui/debug/PropertyList.js +1 -1
  244. package/src/sap/ui/dom/jquery/zIndex.js +3 -3
  245. package/src/sap/ui/events/jquery/EventSimulation.js +7 -6
  246. package/src/sap/ui/events/jquery/EventTriggerHook.js +1 -1
  247. package/src/sap/ui/model/Binding.js +7 -3
  248. package/src/sap/ui/model/ClientModel.js +1 -1
  249. package/src/sap/ui/model/CompositeBinding.js +1 -1
  250. package/src/sap/ui/model/CompositeDataState.js +1 -1
  251. package/src/sap/ui/model/CompositeType.js +1 -1
  252. package/src/sap/ui/model/Context.js +31 -11
  253. package/src/sap/ui/model/DataState.js +1 -1
  254. package/src/sap/ui/model/ListBinding.js +19 -0
  255. package/src/sap/ui/model/MetaModel.js +1 -1
  256. package/src/sap/ui/model/Model.js +3 -3
  257. package/src/sap/ui/model/SelectionModel.js +5 -1
  258. package/src/sap/ui/model/SimpleType.js +1 -1
  259. package/src/sap/ui/model/TreeAutoExpandMode.js +1 -1
  260. package/src/sap/ui/model/Type.js +1 -1
  261. package/src/sap/ui/model/analytics/AnalyticalBinding.js +36 -45
  262. package/src/sap/ui/model/analytics/odata4analytics.js +31 -31
  263. package/src/sap/ui/model/base/ManagedObjectModel.js +11 -1
  264. package/src/sap/ui/model/json/JSONModel.js +1 -1
  265. package/src/sap/ui/model/message/MessageModel.js +1 -1
  266. package/src/sap/ui/model/odata/AnnotationParser.js +23 -18
  267. package/src/sap/ui/model/odata/ODataAnnotations.js +1 -1
  268. package/src/sap/ui/model/odata/ODataListBinding.js +1 -0
  269. package/src/sap/ui/model/odata/ODataMessageParser.js +1 -1
  270. package/src/sap/ui/model/odata/ODataMetaModel.js +52 -40
  271. package/src/sap/ui/model/odata/ODataMetadata.js +3 -3
  272. package/src/sap/ui/model/odata/ODataModel.js +6 -6
  273. package/src/sap/ui/model/odata/ODataTreeBindingFlat.js +1 -1
  274. package/src/sap/ui/model/odata/ODataUtils.js +126 -0
  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 +165 -0
  301. package/src/sap/ui/model/odata/v2/ODataAnnotations.js +1 -1
  302. package/src/sap/ui/model/odata/v2/ODataContextBinding.js +19 -5
  303. package/src/sap/ui/model/odata/v2/ODataListBinding.js +20 -79
  304. package/src/sap/ui/model/odata/v2/ODataModel.js +75 -53
  305. package/src/sap/ui/model/odata/v2/ODataTreeBinding.js +55 -41
  306. package/src/sap/ui/model/odata/v4/Context.js +48 -15
  307. package/src/sap/ui/model/odata/v4/ODataBinding.js +89 -9
  308. package/src/sap/ui/model/odata/v4/ODataContextBinding.js +87 -21
  309. package/src/sap/ui/model/odata/v4/ODataListBinding.js +72 -50
  310. package/src/sap/ui/model/odata/v4/ODataMetaModel.js +8 -8
  311. package/src/sap/ui/model/odata/v4/ODataModel.js +109 -171
  312. package/src/sap/ui/model/odata/v4/ODataParentBinding.js +34 -67
  313. package/src/sap/ui/model/odata/v4/ODataPropertyBinding.js +18 -9
  314. package/src/sap/ui/model/odata/v4/ODataUtils.js +1 -1
  315. package/src/sap/ui/model/odata/v4/SubmitMode.js +3 -3
  316. package/src/sap/ui/model/odata/v4/_AnnotationHelperExpression.js +1 -1
  317. package/src/sap/ui/model/odata/v4/lib/_AggregationCache.js +17 -16
  318. package/src/sap/ui/model/odata/v4/lib/_AggregationHelper.js +5 -1
  319. package/src/sap/ui/model/odata/v4/lib/_Cache.js +86 -117
  320. package/src/sap/ui/model/odata/v4/lib/{_GrandTotalHelper.js → _ConcatHelper.js} +34 -27
  321. package/src/sap/ui/model/odata/v4/lib/_GroupLock.js +2 -2
  322. package/src/sap/ui/model/odata/v4/lib/_Helper.js +122 -7
  323. package/src/sap/ui/model/odata/v4/lib/_MetadataConverter.js +4 -4
  324. package/src/sap/ui/model/odata/v4/lib/_MetadataRequestor.js +2 -2
  325. package/src/sap/ui/model/odata/v4/lib/_MinMaxHelper.js +25 -74
  326. package/src/sap/ui/model/odata/v4/lib/_Requestor.js +49 -12
  327. package/src/sap/ui/model/odata/v4/lib/_V2Requestor.js +7 -7
  328. package/src/sap/ui/model/resource/ResourceModel.js +1 -1
  329. package/src/sap/ui/model/type/Boolean.js +1 -1
  330. package/src/sap/ui/model/type/Currency.js +1 -1
  331. package/src/sap/ui/model/type/Date.js +1 -1
  332. package/src/sap/ui/model/type/DateInterval.js +3 -3
  333. package/src/sap/ui/model/type/DateTime.js +1 -1
  334. package/src/sap/ui/model/type/DateTimeInterval.js +3 -3
  335. package/src/sap/ui/model/type/FileSize.js +1 -1
  336. package/src/sap/ui/model/type/Float.js +1 -1
  337. package/src/sap/ui/model/type/Integer.js +1 -1
  338. package/src/sap/ui/model/type/String.js +1 -1
  339. package/src/sap/ui/model/type/Time.js +1 -1
  340. package/src/sap/ui/model/type/TimeInterval.js +3 -3
  341. package/src/sap/ui/model/type/Unit.js +1 -1
  342. package/src/sap/ui/model/xml/XMLModel.js +1 -1
  343. package/src/sap/ui/performance/Measurement.js +3 -5
  344. package/src/sap/ui/performance/trace/FESR.js +2 -1
  345. package/src/sap/ui/performance/trace/Interaction.js +11 -9
  346. package/src/sap/ui/qunit/QUnitUtils.js +1 -1
  347. package/src/sap/ui/qunit/qunit-coverage.js +1 -0
  348. package/src/sap/ui/qunit/qunit-junit.js +1 -0
  349. package/src/sap/ui/qunit/utils/ControlIterator.js +1 -1
  350. package/src/sap/ui/qunit/utils/MemoryLeakCheck.js +1 -1
  351. package/src/sap/ui/security/FrameOptions.js +2 -1
  352. package/src/sap/ui/test/Opa5.js +1 -1
  353. package/src/sap/ui/test/OpaBuilder.js +1 -0
  354. package/src/sap/ui/test/TestUtils.js +17 -30
  355. package/src/sap/ui/test/_BrowserLogCollector.js +1 -0
  356. package/src/sap/ui/test/actions/Action.js +1 -1
  357. package/src/sap/ui/test/launchers/componentLauncher.js +2 -1
  358. package/src/sap/ui/test/opaQunit.js +6 -9
  359. package/src/sap/ui/test/pipelines/MatcherPipeline.js +1 -1
  360. package/src/sap/ui/test/selectors/_ControlSelectorGenerator.js +4 -4
  361. package/src/sap/ui/test/starter/_utils.js +6 -0
  362. package/src/sap/ui/test/starter/createSuite.js +1 -1
  363. package/src/sap/ui/thirdparty/IPv6.js +2 -2
  364. package/src/sap/ui/thirdparty/SecondLevelDomains.js +2 -2
  365. package/src/sap/ui/thirdparty/URI.js +14 -5
  366. package/src/sap/ui/thirdparty/URITemplate.js +2 -2
  367. package/src/sap/ui/thirdparty/caja-html-sanitizer.js +1 -1
  368. package/src/sap/ui/thirdparty/crossroads.js +10 -2
  369. package/src/sap/ui/util/Mobile.js +10 -7
  370. package/src/sap/ui/util/Storage.js +1 -1
  371. package/src/ui5loader-autoconfig.js +1 -1
  372. package/src/ui5loader.js +24 -6
  373. package/src/sap/ui/model/odata/v4/.eslintrc +0 -6
@@ -6,6 +6,7 @@
6
6
 
7
7
  // Provides control sap.ui.core.mvc.View.
8
8
  sap.ui.define([
9
+ "sap/base/util/isEmptyObject",
9
10
  "sap/ui/base/ManagedObject",
10
11
  "sap/ui/core/Control",
11
12
  "sap/ui/core/mvc/Controller",
@@ -19,6 +20,7 @@ sap.ui.define([
19
20
  "sap/ui/core/Core" // to ensure correct behaviour of sap.ui.getCore()
20
21
  ],
21
22
  function(
23
+ isEmptyObject,
22
24
  ManagedObject,
23
25
  Control,
24
26
  Controller,
@@ -138,7 +140,7 @@ sap.ui.define([
138
140
  * The default implementation of this method returns <code>false</code>.
139
141
  *
140
142
  * @extends sap.ui.core.Control
141
- * @version 1.91.0
143
+ * @version 1.93.2
142
144
  *
143
145
  * @public
144
146
  * @alias sap.ui.core.mvc.View
@@ -440,14 +442,30 @@ sap.ui.define([
440
442
  bAsync = mSettings.async;
441
443
 
442
444
  if (!oController && oThis.getControllerName) {
445
+ oThis.bControllerIsViewManaged = true;
443
446
  // get optional default controller name
444
447
  var defaultController = oThis.getControllerName();
445
448
  if (defaultController) {
446
449
  // check for controller replacement
447
- var CustomizingConfiguration = sap.ui.require('sap/ui/core/CustomizingConfiguration');
448
- var sControllerReplacement = CustomizingConfiguration && CustomizingConfiguration.getControllerReplacement(defaultController, ManagedObject._sOwnerId);
449
- if (sControllerReplacement) {
450
- defaultController = typeof sControllerReplacement === "string" ? sControllerReplacement : sControllerReplacement.controllerName;
450
+ 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
+ }
468
+ }
451
469
  }
452
470
  // create controller
453
471
  if (bAsync) {
@@ -457,6 +475,7 @@ sap.ui.define([
457
475
  }
458
476
  }
459
477
  } else if (oController) {
478
+ oThis.bControllerIsViewManaged = false;
460
479
  // if passed controller is not extended yet we need to do it.
461
480
  var sOwnerId = ManagedObject._sOwnerId;
462
481
  if (!oController._isExtended()) {
@@ -510,6 +529,11 @@ sap.ui.define([
510
529
  // remember the name of this View
511
530
  this.sViewName = mSettings.viewName;
512
531
 
532
+ // typed views are prefixed with "module:" and contains slashes
533
+ if (this.sViewName && this.sViewName.startsWith("module:")) {
534
+ this.sViewName = this.sViewName.slice("module:".length).replace(/\//g, ".");
535
+ }
536
+
513
537
  var that = this;
514
538
 
515
539
  initPreprocessorQueues(this, mSettings);
@@ -519,28 +543,54 @@ sap.ui.define([
519
543
  initAsyncState(this);
520
544
  }
521
545
 
522
- //check if there are custom properties configured for this view, and only if there are, create a settings preprocessor applying these
523
- var CustomizingConfiguration = sap.ui.require('sap/ui/core/CustomizingConfiguration');
524
- if (CustomizingConfiguration && CustomizingConfiguration.hasCustomProperties(this.sViewName, this)) {
525
- this._fnSettingsPreprocessor = function(mSettings) {
526
- var sId = this.getId();
527
- if (CustomizingConfiguration && sId) {
528
- if (that.isPrefixedId(sId)) {
529
- sId = sId.substring((that.getId() + "--").length);
530
- }
531
- var mCustomSettings = CustomizingConfiguration.getCustomProperties(that.sViewName, sId, that);
532
- if (mCustomSettings) {
533
- mSettings = extend(mSettings, mCustomSettings); // override original property initialization with customized property values
546
+ var Component = sap.ui.require("sap/ui/core/Component");
547
+ var oOwnerComponent = Component && Component.getOwnerComponentFor(this);
548
+
549
+ // view modifications
550
+ // 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.");
534
558
  }
535
559
  }
536
- };
560
+
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
+ }
581
+ }
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
+ }
585
+ }
586
+ };
587
+ }
588
+ }
537
589
  }
538
590
 
539
591
  var fnPropagateOwner = function(fnCallback, bAsync) {
540
592
  assert(typeof fnCallback === "function", "fn must be a function");
541
593
 
542
- var Component = sap.ui.require("sap/ui/core/Component");
543
- var oOwnerComponent = Component && Component.getOwnerComponentFor(that);
544
594
  if (oOwnerComponent) {
545
595
  if (bAsync) {
546
596
  // special treatment when component loading is async but instance creation is sync
@@ -694,7 +744,10 @@ sap.ui.define([
694
744
  */
695
745
  View.prototype.exit = function() {
696
746
  this.fireBeforeExit();
697
- delete this.oController;
747
+ if (this.oController && this.bControllerIsViewManaged) {
748
+ this.oController.destroy();
749
+ delete this.oController;
750
+ }
698
751
  delete this.oPreprocessorInfo;
699
752
  if (this.oAsyncState) {
700
753
  var fnDelete = deleteAsyncState.bind(this);
@@ -1066,51 +1119,47 @@ sap.ui.define([
1066
1119
  * @private
1067
1120
  * @ui5-restricted sap.ui.core
1068
1121
  * @see {sap.ui.view}
1122
+ * @function
1069
1123
  */
1070
1124
  View._create = viewFactory;
1071
1125
 
1072
1126
  /**
1073
1127
  * Creates a view of the given type, name and with the given ID.
1074
1128
  *
1075
- * The <code>vView</code> configuration object can have the following properties for the view
1076
- * instantiation:
1077
- * <ul>
1078
- * <li>The ID <code>vView.id</code> specifies an ID for the View instance. If no ID is given,
1079
- * an ID will be generated.</li>
1080
- * <li>The view name <code>vView.viewName</code> corresponds to an XML module that can be loaded
1081
- * via the module system (vView.viewName + suffix ".view.xml")</li>
1082
- * <li>The controller instance <code>vView.controller</code> must be a valid controller implementation.
1083
- * The given controller instance overrides the controller defined in the view definition</li>
1084
- * <li>The view type <code>vView.type</code> specifies what kind of view will be instantiated. All valid
1085
- * view types are listed in the enumeration sap.ui.core.mvc.ViewType.</li>
1086
- * <li>The view data <code>vView.viewData</code> can hold user specific data. This data is available
1087
- * during the whole lifecycle of the view and the controller</li>
1088
- * <li>The view loading mode <code>vView.async</code> must be a boolean and defines if the view source is loaded
1089
- * synchronously or asynchronously. In async mode, the view is rendered empty initially, and re-rendered with the
1090
- * loaded view content.</li>
1091
- * <li><code>vView.preprocessors</code></li> can hold a map from the specified preprocessor type (e.g. "xml") to an array of
1092
- * preprocessor configurations; each configuration consists of a <code>preprocessor</code> property (optional when
1093
- * registered as on-demand preprocessor) and may contain further preprocessor-specific settings. The preprocessor can
1094
- * be either a module name as string implementation of {@link sap.ui.core.mvc.View.Preprocessor} or a function according to
1095
- * {@link sap.ui.core.mvc.View.Preprocessor.process}. Do not set properties starting with underscore like <code>_sProperty</code>
1096
- * property, these are reserved for internal purposes. When several preprocessors are provided for one hook, it has to be made
1097
- * sure that they do not conflict when being processed serially.
1098
- *
1099
- * <strong>Note</strong>: These preprocessors are only available to this instance. For global or
1129
+ * @param {string} [sId] The ID of the newly created view, only allowed for instance creation. If no ID is given,
1130
+ * an ID will be generated. For view definition, skip this parameter and use <code>vView</code> as the first parameter.
1131
+ * @param {string|object} [vView] The view name or view configuration object.
1132
+ * @param {object} [vView.id] Specifies an ID for the view instance. If no ID is given,
1133
+ * an ID will be generated.
1134
+ * @param {object} [vView.viewName] Corresponds to an XML module that can be loaded
1135
+ * via the module system (vView.viewName + suffix ".view.xml").
1136
+ * @param {sap.ui.core.mvc.Controller} [vView.controller] The controller instance must be a valid controller implementation.
1137
+ * The given controller instance overrides the controller defined in the view definition.
1138
+ * @param {boolean} [vView.async] Whether the view source is loaded asynchronously. In asynchronous mode, the view is returned empty,
1139
+ * and the view content is loaded asynchronously.
1140
+ * @param {sap.ui.core.mvc.ViewType} [vView.type] Specifies what kind of view will be instantiated. All valid
1141
+ * view types are listed in the enumeration {@link sap.ui.core.mvc.ViewType}.
1142
+ * @param {object} [vView.viewData] Holds application specific data. This data is available
1143
+ * during the whole lifecycle of the view and the controller, for example in the constructor and in the {@link sap.ui.core.mvc.Controller.onInit onInit} hook.
1144
+ * @param {Map<string,object[]>} [vView.preprocessors] Holds a map from the specified preprocessor type (e.g. "xml") to an array of
1145
+ * preprocessor configurations. Each configuration consists of a <code>preprocessor</code> property (optional when
1146
+ * registered as on-demand preprocessor) and may contain further preprocessor-specific settings.
1147
+ * @param {string|sap.ui.core.mvc.View.Preprocessor|function} [vView.preprocessors.preprocessor]
1148
+ * The used preprocessor. For further information see {@link sap.ui.core.mvc.View.Preprocessor.process}.
1149
+ * Do not set properties starting with an underscore, such as <code>_sProperty</code>, as these are reserved for internal purposes.
1150
+ * When several preprocessors are provided for one hook, it has to be made sure that they do not conflict when being processed serially.
1151
+ *
1152
+ * </br><strong>Note</strong>: These preprocessors are only available to this instance. For global or
1100
1153
  * on-demand availability use {@link sap.ui.core.mvc.XMLView.registerPreprocessor}.
1101
1154
  *
1102
- * <strong>Note</strong>: Please note that preprocessors in general are currently only available
1103
- * to XMLViews.
1155
+ * </br><strong>Note</strong>: Please note that preprocessors in general are currently only available
1156
+ * for {@link sap.ui.core.mvc.XMLView XMLViews}.
1104
1157
  *
1105
- * <strong>Note</strong>: Preprocessors only work in async views and will be ignored when the view is instantiated
1106
- * in sync mode by default, as this could have unexpected side effects. You may override this behaviour by setting the
1107
- * bSyncSupport flag of the preprocessor to true.
1158
+ * </br><strong>Note</strong>: Preprocessors only work in asynchronous views and will be ignored by default
1159
+ * when the view is instantiated synchronously, as this could have unexpected side effects.
1160
+ * You may override this behaviour by setting the <code>bSyncSupport</code> flag
1161
+ * of the preprocessor to <code>true</code>.
1108
1162
  *
1109
- * @param {string} sId id of the newly created view, only allowed for instance creation
1110
- * @param {string|object} [vView] the view name or view configuration object
1111
- * @param {sap.ui.core.mvc.ViewType} sType Specifies what kind of view will be instantiated. All valid
1112
- * view types are listed in the enumeration {@link sap.ui.core.mvc.ViewType}.
1113
- * @param {boolean} [vView.async] whether the view source is loaded asynchronously
1114
1163
  * @public
1115
1164
  * @static
1116
1165
  * @deprecated Since 1.56. Use {@link sap.ui.core.mvc.View.extend View.extend} to define the view class
@@ -1118,7 +1167,7 @@ sap.ui.define([
1118
1167
  * @return {sap.ui.core.mvc.View} the created View instance
1119
1168
  * @ui5-global-only
1120
1169
  */
1121
- sap.ui.view = function(sId, vView, sType /* used by factory functions */) {
1170
+ sap.ui.view = function(sId, vView, sType /* internal, used by factory functions */) {
1122
1171
  var sViewName = typeof sId === "string" ? sId : vView;
1123
1172
  sViewName = typeof sViewName === "object" ? sViewName.viewName : sViewName;
1124
1173
 
@@ -1186,15 +1235,38 @@ sap.ui.define([
1186
1235
  oView.processingMode = oView.processingMode || XMLProcessingMode.SequentialLegacy;
1187
1236
  }
1188
1237
 
1238
+
1239
+
1189
1240
  // view replacement
1190
- var CustomizingConfiguration = sap.ui.require('sap/ui/core/CustomizingConfiguration');
1191
- if (CustomizingConfiguration) {
1192
- var customViewConfig = CustomizingConfiguration.getViewReplacement(oView.viewName, ManagedObject._sOwnerId);
1193
- if (customViewConfig) {
1194
- Log.info("Customizing: View replacement for view '" + oView.viewName + "' found and applied: " + customViewConfig.viewName + " (type: " + customViewConfig.type + ")");
1195
- extend(oView, customViewConfig);
1196
- } else {
1197
- Log.debug("Customizing: no View replacement found for view '" + oView.viewName + "'.");
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);
1260
+
1261
+ if (customViewConfig) {
1262
+ // make sure that "async=true" will not be overriden
1263
+ delete customViewConfig.async;
1264
+
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
+ }
1198
1270
  }
1199
1271
  }
1200
1272
 
@@ -1208,6 +1280,9 @@ sap.ui.define([
1208
1280
 
1209
1281
  // view creation
1210
1282
  if (sViewClass) {
1283
+ if (oViewSettings.type) {
1284
+ Log.error("When using the view factory, the 'type' setting must be omitted for typed views. When embedding typed views in XML, don't use the <JSView> tag, use the <View> tag instead.");
1285
+ }
1211
1286
  return sViewClass;
1212
1287
  }
1213
1288
  if (!oViewSettings.type) {
@@ -1382,17 +1457,19 @@ sap.ui.define([
1382
1457
  };
1383
1458
 
1384
1459
  return ManagedObject.runWithPreprocessors(function() {
1460
+ var vContent = this.createContent(oController);
1385
1461
  if (mSettings.async) {
1386
- var vContent = this.createContent(oController);
1387
- vContent = vContent instanceof Promise ? vContent : Promise.resolve(vContent);
1462
+ vContent = Promise.resolve(vContent);
1388
1463
  return vContent.then(function(vContent) {
1389
1464
  this.applySettings({
1390
1465
  content : vContent
1391
1466
  });
1392
1467
  }.bind(this));
1468
+ } else if (vContent instanceof Promise) {
1469
+ throw new Error("An asynchronous view (createContent) cannot be instantiated synchronously. Affected view: '" + this.getMetadata().getName() + "'.");
1393
1470
  } else {
1394
1471
  this.applySettings({
1395
- content : this.createContent(oController)
1472
+ content : vContent
1396
1473
  });
1397
1474
  }
1398
1475
  }.bind(this), mPreprocessorSettings);
@@ -11,6 +11,8 @@ sap.ui.define([], function () {
11
11
  /**
12
12
  * Specifies possible view types.
13
13
  *
14
+ * <b>Note:</b> Typed views do not rely on a <code>ViewType</code>, it must be omitted in the view settings.
15
+ *
14
16
  * @enum {string}
15
17
  * @public
16
18
  * @alias sap.ui.core.mvc.ViewType
@@ -96,7 +96,7 @@ sap.ui.define([
96
96
  * control's dependents aggregation or add it by using {@link sap.ui.core.mvc.XMLView#addDependent}.
97
97
  *
98
98
  * @extends sap.ui.core.mvc.View
99
- * @version 1.91.0
99
+ * @version 1.93.2
100
100
  *
101
101
  * @public
102
102
  * @alias sap.ui.core.mvc.XMLView
@@ -260,6 +260,8 @@ sap.ui.define([
260
260
  /**
261
261
  * Flag for feature detection of asynchronous loading/rendering
262
262
  * @public
263
+ * @readonly
264
+ * @type {boolean}
263
265
  * @since 1.30
264
266
  */
265
267
  XMLView.asyncSupport = true;
@@ -350,15 +352,17 @@ sap.ui.define([
350
352
  var Component = sap.ui.require("sap/ui/core/Component"),
351
353
  oComponent;
352
354
 
353
- while (oSrcElement && Component) {
354
- var oCandidateComponent = Component.getOwnerComponentFor(oSrcElement);
355
- if (oCandidateComponent) {
356
- oSrcElement = oComponent = oCandidateComponent;
357
- } else {
358
- if (oSrcElement instanceof Component) {
359
- oComponent = oSrcElement;
355
+ if (Component) {
356
+ while (oSrcElement) {
357
+ var oCandidateComponent = Component.getOwnerComponentFor(oSrcElement);
358
+ if (oCandidateComponent) {
359
+ oSrcElement = oComponent = oCandidateComponent;
360
+ } else {
361
+ if (oSrcElement instanceof Component) {
362
+ oComponent = oSrcElement;
363
+ }
364
+ oSrcElement = oSrcElement.getParent && oSrcElement.getParent();
360
365
  }
361
- oSrcElement = oSrcElement.getParent && oSrcElement.getParent();
362
366
  }
363
367
  }
364
368
  return oComponent;
@@ -21,7 +21,7 @@ sap.ui.define([
21
21
  * @see sap.ui.core.DeclarativeSupport
22
22
  * @public
23
23
  * @since 1.7.0
24
- * @version 1.91.0
24
+ * @version 1.93.2
25
25
  * @alias sap.ui.core.plugin.DeclarativeSupport
26
26
  */
27
27
  var DeclarativeSupportPlugin = function() {
@@ -37,7 +37,7 @@
37
37
  * feature - DO NOT USE IN PRODUCTIVE SCENARIOS!!
38
38
  *
39
39
  * @author Peter Muessig
40
- * @version 1.91.0
40
+ * @version 1.93.2
41
41
  * @private
42
42
  * @alias sap.ui.core.plugin.LessSupport
43
43
  */
@@ -20,7 +20,7 @@ sap.ui.define([
20
20
  * @author Peter Muessig
21
21
  * @public
22
22
  * @since 1.15.0
23
- * @version 1.91.0
23
+ * @version 1.93.2
24
24
  * @alias sap.ui.core.plugin.TemplatingSupport
25
25
  */
26
26
  var TemplatingSupport = function() {
@@ -38,7 +38,7 @@ function (
38
38
  * @alias sap.ui.core.postmessage.Bus
39
39
  * @author SAP SE
40
40
  * @since 1.56.0
41
- * @version 1.91.0
41
+ * @version 1.93.2
42
42
  * @private
43
43
  * @ui5-restricted sap.ui.core.support, sap.ui.support, sap.ui.rta
44
44
  */
@@ -13,7 +13,7 @@ sap.ui.define(function () {
13
13
  *
14
14
  * @author SAP SE
15
15
  * @since 1.56.0
16
- * @version 1.91.0
16
+ * @version 1.93.2
17
17
  *
18
18
  * @function
19
19
  * @param {string} sMessage - Dialog message
@@ -106,13 +106,20 @@ sap.ui.define([
106
106
  * Replaces the hash with a certain value. When using the replace function, no browser history entry is written.
107
107
  * If you want to have an entry in the browser history, please use the {@link #setHash} function.
108
108
  *
109
+ * The <code>sDirection</code> parameter can be used to provide direction information on the navigation which
110
+ * leads to this hash replacement. This is typically used when synchronizing the hashes between multiple frames to
111
+ * provide information to the frame where the hash is replaced with the navigation direction in the other frame
112
+ * where the navigation occurs.
113
+ *
109
114
  * @param {string} sHash New hash
115
+ * @param {sap.ui.core.routing.HistoryDirection} sDirection The direction information for this hash replacement
110
116
  * @protected
111
117
  */
112
- HashChangerBase.prototype.replaceHash = function(sHash) {
118
+ HashChangerBase.prototype.replaceHash = function(sHash, sDirection) {
113
119
  this.fireEvent("hashReplaced", {
114
120
  sHash: sHash, //deprecated
115
- hash: sHash
121
+ hash: sHash,
122
+ direction: sDirection
116
123
  });
117
124
  };
118
125