@sapui5/sap.ushell 1.143.3 → 1.144.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 (875) hide show
  1. package/package.json +1 -1
  2. package/src/main/js/sap/ushell/.library +2 -2
  3. package/src/main/js/sap/ushell/AppInfoParameters.js +1 -1
  4. package/src/main/js/sap/ushell/ApplicationType/UrlPostProcessing.js +1 -1
  5. package/src/main/js/sap/ushell/ApplicationType/guiResolution.js +1 -1
  6. package/src/main/js/sap/ushell/ApplicationType/systemAlias.js +1 -1
  7. package/src/main/js/sap/ushell/ApplicationType/ui5Resolution.js +1 -1
  8. package/src/main/js/sap/ushell/ApplicationType/urlResolution.js +1 -1
  9. package/src/main/js/sap/ushell/ApplicationType/urlTemplateResolution.js +6 -4
  10. package/src/main/js/sap/ushell/ApplicationType/utils.js +1 -1
  11. package/src/main/js/sap/ushell/ApplicationType/wcfResolution.js +1 -1
  12. package/src/main/js/sap/ushell/ApplicationType/wdaResolution.js +1 -1
  13. package/src/main/js/sap/ushell/ApplicationType.js +1 -1
  14. package/src/main/js/sap/ushell/Config/utils.js +1 -1
  15. package/src/main/js/sap/ushell/Config.js +1 -1
  16. package/src/main/js/sap/ushell/Container.js +2 -2
  17. package/src/main/js/sap/ushell/EventHub.js +1 -1
  18. package/src/main/js/sap/ushell/Fiori20Adapter.js +2 -2
  19. package/src/main/js/sap/ushell/Fiori20AdapterTest.js +2 -2
  20. package/src/main/js/sap/ushell/Layout.js +1 -1
  21. package/src/main/js/sap/ushell/NWBCInterface.js +2 -2
  22. package/src/main/js/sap/ushell/SessionHandler.js +1 -1
  23. package/src/main/js/sap/ushell/System.js +1 -1
  24. package/src/main/js/sap/ushell/TechnicalParameters.js +2 -2
  25. package/src/main/js/sap/ushell/UI5ComponentType.js +1 -1
  26. package/src/main/js/sap/ushell/UIActions.js +1 -1
  27. package/src/main/js/sap/ushell/URLTemplateProcessor/DefinitionParameterSetBuilder.js +2 -2
  28. package/src/main/js/sap/ushell/URLTemplateProcessor/DependencyGraph.js +2 -2
  29. package/src/main/js/sap/ushell/URLTemplateProcessor/Functions.js +2 -2
  30. package/src/main/js/sap/ushell/URLTemplateProcessor/Resolvers.js +2 -2
  31. package/src/main/js/sap/ushell/URLTemplateProcessor/TemplateParameterParser.js +2 -2
  32. package/src/main/js/sap/ushell/URLTemplateProcessor/utils.js +2 -2
  33. package/src/main/js/sap/ushell/URLTemplateProcessor.js +2 -2
  34. package/src/main/js/sap/ushell/Ui5NativeServiceFactory.js +2 -2
  35. package/src/main/js/sap/ushell/Ui5ServiceFactory.js +2 -2
  36. package/src/main/js/sap/ushell/User.js +1 -1
  37. package/src/main/js/sap/ushell/UserActivityLog.js +1 -1
  38. package/src/main/js/sap/ushell/adapters/AppVariantPersonalizationAdapter.js +1 -1
  39. package/src/main/js/sap/ushell/adapters/cdm/ClientSideTargetResolutionAdapter.js +2 -2
  40. package/src/main/js/sap/ushell/adapters/cdm/CommonDataModelAdapter.js +2 -2
  41. package/src/main/js/sap/ushell/adapters/cdm/ConfigurationDefaultsAdapter.js +2 -2
  42. package/src/main/js/sap/ushell/adapters/cdm/ContainerAdapter.js +2 -2
  43. package/src/main/js/sap/ushell/adapters/cdm/LaunchPageAdapter.js +2 -2
  44. package/src/main/js/sap/ushell/adapters/cdm/MenuAdapter.js +7 -1
  45. package/src/main/js/sap/ushell/adapters/cdm/PagesCommonDataModelAdapter.js +2 -2
  46. package/src/main/js/sap/ushell/adapters/cdm/PersonalizationAdapter.js +2 -2
  47. package/src/main/js/sap/ushell/adapters/cdm/PersonalizationV2Adapter.js +2 -2
  48. package/src/main/js/sap/ushell/adapters/cdm/Settings/UserLanguageAndRegion/UserLanguageAndRegion.controller.js +1 -1
  49. package/src/main/js/sap/ushell/adapters/cdm/Settings/UserLanguageAndRegion/UserLanguageAndRegionEntry.js +1 -1
  50. package/src/main/js/sap/ushell/adapters/cdm/Ui5ComponentLoaderAdapter.js +2 -2
  51. package/src/main/js/sap/ushell/adapters/cdm/_LaunchPage/modifyHome.js +2 -2
  52. package/src/main/js/sap/ushell/adapters/cdm/_LaunchPage/readCatalogs.js +2 -2
  53. package/src/main/js/sap/ushell/adapters/cdm/_LaunchPage/readHome.js +2 -2
  54. package/src/main/js/sap/ushell/adapters/cdm/_LaunchPage/uri.transform.js +2 -2
  55. package/src/main/js/sap/ushell/adapters/cdm/_Personalization/internals.js +1 -1
  56. package/src/main/js/sap/ushell/adapters/cdm/util/AppForInbound.js +2 -2
  57. package/src/main/js/sap/ushell/adapters/cdm/util/cdmSiteUtils.js +2 -2
  58. package/src/main/js/sap/ushell/adapters/cdm/v3/AdapterBase.js +2 -2
  59. package/src/main/js/sap/ushell/adapters/cdm/v3/FlpLaunchPageAdapter.js +2 -2
  60. package/src/main/js/sap/ushell/adapters/cdm/v3/LaunchPageAdapter.js +2 -2
  61. package/src/main/js/sap/ushell/adapters/cdm/v3/StaticGroupsAdapter.js +2 -2
  62. package/src/main/js/sap/ushell/adapters/cdm/v3/_LaunchPage/readApplications.js +2 -2
  63. package/src/main/js/sap/ushell/adapters/cdm/v3/_LaunchPage/readCatalogs.js +2 -2
  64. package/src/main/js/sap/ushell/adapters/cdm/v3/_LaunchPage/readHome.js +2 -2
  65. package/src/main/js/sap/ushell/adapters/cdm/v3/_LaunchPage/readPages.js +2 -2
  66. package/src/main/js/sap/ushell/adapters/cdm/v3/_LaunchPage/readUtils.js +2 -2
  67. package/src/main/js/sap/ushell/adapters/cdm/v3/_LaunchPage/readVisualizations.js +2 -2
  68. package/src/main/js/sap/ushell/adapters/cdm/v3/utilsCdm.js +1 -1
  69. package/src/main/js/sap/ushell/adapters/cep/MenuAdapter.js +236 -185
  70. package/src/main/js/sap/ushell/adapters/cep/NavTargetResolutionAdapter.js +2 -2
  71. package/src/main/js/sap/ushell/adapters/cep/NavTargetResolutionInternalAdapter.js +2 -2
  72. package/src/main/js/sap/ushell/adapters/cep/SearchCEPAdapter.js +2 -2
  73. package/src/main/js/sap/ushell/adapters/cflp/UserDefaultParameterPersistenceAdapter.js +2 -2
  74. package/src/main/js/sap/ushell/adapters/local/AdapterContainer.js +2 -2
  75. package/src/main/js/sap/ushell/adapters/local/AppStateAdapter.js +2 -2
  76. package/src/main/js/sap/ushell/adapters/local/ClientSideTargetResolutionAdapter.js +2 -2
  77. package/src/main/js/sap/ushell/adapters/local/ContainerAdapter.js +2 -2
  78. package/src/main/js/sap/ushell/adapters/local/FlpLaunchPageAdapter.js +2 -2
  79. package/src/main/js/sap/ushell/adapters/local/LaunchPageAdapter.js +2 -2
  80. package/src/main/js/sap/ushell/adapters/local/MenuAdapter.js +1 -1
  81. package/src/main/js/sap/ushell/adapters/local/NavTargetResolutionAdapter.js +2 -2
  82. package/src/main/js/sap/ushell/adapters/local/NavTargetResolutionInternalAdapter.js +2 -2
  83. package/src/main/js/sap/ushell/adapters/local/PageBuildingAdapter.js +2 -2
  84. package/src/main/js/sap/ushell/adapters/local/PagePersistenceAdapter.js +2 -2
  85. package/src/main/js/sap/ushell/adapters/local/PersonalizationAdapter.js +2 -2
  86. package/src/main/js/sap/ushell/adapters/local/PersonalizationV2Adapter.js +2 -2
  87. package/src/main/js/sap/ushell/adapters/local/SearchAdapter.js +2 -2
  88. package/src/main/js/sap/ushell/adapters/local/SearchCEPAdapter.js +2 -2
  89. package/src/main/js/sap/ushell/adapters/local/SupportTicketAdapter.js +2 -2
  90. package/src/main/js/sap/ushell/adapters/local/Ui5ComponentLoaderAdapter.js +2 -2
  91. package/src/main/js/sap/ushell/adapters/local/UserDefaultParameterPersistenceAdapter.js +2 -2
  92. package/src/main/js/sap/ushell/adapters/local/UserInfoAdapter.js +2 -2
  93. package/src/main/js/sap/ushell/api/BootstrapObserver.js +1 -1
  94. package/src/main/js/sap/ushell/api/Copilot.js +1 -1
  95. package/src/main/js/sap/ushell/api/DWS.js +5 -1
  96. package/src/main/js/sap/ushell/api/FioriElements.js +51 -0
  97. package/src/main/js/sap/ushell/api/Inbox.js +1 -1
  98. package/src/main/js/sap/ushell/api/NewExperience/CustomOverflowListItem.js +1 -1
  99. package/src/main/js/sap/ushell/api/NewExperience.js +1 -1
  100. package/src/main/js/sap/ushell/api/RTA.js +1 -1
  101. package/src/main/js/sap/ushell/api/S4MyHome.js +1 -1
  102. package/src/main/js/sap/ushell/api/SAPBusinessClient.js +57 -5
  103. package/src/main/js/sap/ushell/api/common/ComponentInstantiation.js +1 -1
  104. package/src/main/js/sap/ushell/api/performance/Extension.js +44 -8
  105. package/src/main/js/sap/ushell/api/performance/NavigationSource.js +1 -1
  106. package/src/main/js/sap/ushell/api/workpage/Designtime.js +1 -1
  107. package/src/main/js/sap/ushell/api/workpage/Runtime.js +1 -1
  108. package/src/main/js/sap/ushell/appIntegration/AppLifeCycle/KeepAliveMode.js +1 -1
  109. package/src/main/js/sap/ushell/appIntegration/AppLifeCycle.js +50 -11
  110. package/src/main/js/sap/ushell/appIntegration/ApplicationContainer.js +10 -4
  111. package/src/main/js/sap/ushell/appIntegration/ApplicationContainerCache.js +43 -17
  112. package/src/main/js/sap/ushell/appIntegration/ApplicationContainerRenderer.js +1 -1
  113. package/src/main/js/sap/ushell/appIntegration/ApplicationHandle.js +1 -1
  114. package/src/main/js/sap/ushell/appIntegration/IframeApplicationContainer.js +78 -11
  115. package/src/main/js/sap/ushell/appIntegration/IframeApplicationContainerRenderer.js +60 -126
  116. package/src/main/js/sap/ushell/appIntegration/KeepAliveApps.js +1 -1
  117. package/src/main/js/sap/ushell/appIntegration/PostMessageHandler/AppInfoHandler.js +1 -1
  118. package/src/main/js/sap/ushell/appIntegration/PostMessageHandler/AppStateHandler.js +1 -1
  119. package/src/main/js/sap/ushell/appIntegration/PostMessageHandler/BookmarkHandler.js +1 -1
  120. package/src/main/js/sap/ushell/appIntegration/PostMessageHandler/EnvironmentHandler.js +1 -1
  121. package/src/main/js/sap/ushell/appIntegration/PostMessageHandler/ExtensionHandler.js +1 -1
  122. package/src/main/js/sap/ushell/appIntegration/PostMessageHandler/ExtensionItems.js +1 -1
  123. package/src/main/js/sap/ushell/appIntegration/PostMessageHandler/LifecycleHandler.js +1 -1
  124. package/src/main/js/sap/ushell/appIntegration/PostMessageHandler/MessageBrokerHandler.js +1 -1
  125. package/src/main/js/sap/ushell/appIntegration/PostMessageHandler/NWBCHandler.js +1 -1
  126. package/src/main/js/sap/ushell/appIntegration/PostMessageHandler/NavigationHandler.js +1 -1
  127. package/src/main/js/sap/ushell/appIntegration/PostMessageHandler/SessionHandler.js +3 -3
  128. package/src/main/js/sap/ushell/appIntegration/PostMessageHandler.js +1 -1
  129. package/src/main/js/sap/ushell/appIntegration/PostMessageManager.js +69 -59
  130. package/src/main/js/sap/ushell/appIntegration/UI5ApplicationContainer.js +18 -6
  131. package/src/main/js/sap/ushell/appIntegration/UI5ApplicationContainerRenderer.js +1 -1
  132. package/src/main/js/sap/ushell/appIntegration/contracts/EmbeddedUI5Handler.js +2 -2
  133. package/src/main/js/sap/ushell/appIntegration/contracts/StatefulContainerV1Handler.js +1 -1
  134. package/src/main/js/sap/ushell/appIntegration/contracts/StatefulContainerV2Handler.js +2 -2
  135. package/src/main/js/sap/ushell/appRuntime/neo/AppInfoService.js +1 -1
  136. package/src/main/js/sap/ushell/appRuntime/neo/AppRuntimeNeo.js +1 -1
  137. package/src/main/js/sap/ushell/appRuntime/neo/ProxyAppUtils.js +1 -1
  138. package/src/main/js/sap/ushell/appRuntime/ui5/AppCommunicationMgr.js +2 -2
  139. package/src/main/js/sap/ushell/appRuntime/ui5/AppRuntime.js +18 -13
  140. package/src/main/js/sap/ushell/appRuntime/ui5/AppRuntimeContext.js +1 -1
  141. package/src/main/js/sap/ushell/appRuntime/ui5/BusyIndicator.js +1 -1
  142. package/src/main/js/sap/ushell/appRuntime/ui5/SessionHandlerAgent.js +5 -5
  143. package/src/main/js/sap/ushell/appRuntime/ui5/libsPreload.js +1 -1
  144. package/src/main/js/sap/ushell/appRuntime/ui5/performance/FesrEnhancer.js +1 -1
  145. package/src/main/js/sap/ushell/appRuntime/ui5/plugins/baseRta/AppLifeCycleUtils.js +1 -1
  146. package/src/main/js/sap/ushell/appRuntime/ui5/plugins/baseRta/BaseRTAPluginStatus.js +1 -1
  147. package/src/main/js/sap/ushell/appRuntime/ui5/plugins/baseRta/CheckConditions.js +1 -1
  148. package/src/main/js/sap/ushell/appRuntime/ui5/plugins/baseRta/Renderer.js +1 -1
  149. package/src/main/js/sap/ushell/appRuntime/ui5/plugins/baseRta/Trigger.js +12 -5
  150. package/src/main/js/sap/ushell/appRuntime/ui5/plugins/rtaAgent/Component.js +1 -1
  151. package/src/main/js/sap/ushell/appRuntime/ui5/plugins/rtaShell/Component.js +1 -1
  152. package/src/main/js/sap/ushell/appRuntime/ui5/plugins/scriptAgent/Component.js +1 -1
  153. package/src/main/js/sap/ushell/appRuntime/ui5/renderers/fiori2/AccessKeysAgent.js +1 -1
  154. package/src/main/js/sap/ushell/appRuntime/ui5/renderers/fiori2/Renderer.js +1 -1
  155. package/src/main/js/sap/ushell/appRuntime/ui5/renderers/fiori2/RendererExtensions.js +2 -2
  156. package/src/main/js/sap/ushell/appRuntime/ui5/services/AppConfiguration.js +2 -2
  157. package/src/main/js/sap/ushell/appRuntime/ui5/services/AppLifeCycle.js +2 -2
  158. package/src/main/js/sap/ushell/appRuntime/ui5/services/AppLifeCycleAgent.js +173 -65
  159. package/src/main/js/sap/ushell/appRuntime/ui5/services/AppState.js +2 -2
  160. package/src/main/js/sap/ushell/appRuntime/ui5/services/Bookmark.js +2 -2
  161. package/src/main/js/sap/ushell/appRuntime/ui5/services/BookmarkV2.js +2 -2
  162. package/src/main/js/sap/ushell/appRuntime/ui5/services/CommonDataModel.js +2 -2
  163. package/src/main/js/sap/ushell/appRuntime/ui5/services/Container.js +2 -2
  164. package/src/main/js/sap/ushell/appRuntime/ui5/services/CrossApplicationNavigation.js +2 -2
  165. package/src/main/js/sap/ushell/appRuntime/ui5/services/Extension/Item.js +2 -2
  166. package/src/main/js/sap/ushell/appRuntime/ui5/services/Extension.js +2 -2
  167. package/src/main/js/sap/ushell/appRuntime/ui5/services/FlpLaunchPage.js +2 -2
  168. package/src/main/js/sap/ushell/appRuntime/ui5/services/FrameBoundExtension.js +2 -2
  169. package/src/main/js/sap/ushell/appRuntime/ui5/services/LaunchPage.js +2 -2
  170. package/src/main/js/sap/ushell/appRuntime/ui5/services/MessageBroker/Client.js +1 -1
  171. package/src/main/js/sap/ushell/appRuntime/ui5/services/MessageBroker.js +2 -2
  172. package/src/main/js/sap/ushell/appRuntime/ui5/services/NavTargetResolution.js +2 -2
  173. package/src/main/js/sap/ushell/appRuntime/ui5/services/NavTargetResolutionInternal.js +3 -2
  174. package/src/main/js/sap/ushell/appRuntime/ui5/services/Navigation.js +2 -2
  175. package/src/main/js/sap/ushell/appRuntime/ui5/services/ReferenceResolver.js +2 -2
  176. package/src/main/js/sap/ushell/appRuntime/ui5/services/ShellNavigation.js +2 -2
  177. package/src/main/js/sap/ushell/appRuntime/ui5/services/ShellNavigationInternal.js +2 -2
  178. package/src/main/js/sap/ushell/appRuntime/ui5/services/ShellUIService.js +2 -2
  179. package/src/main/js/sap/ushell/appRuntime/ui5/services/UserDefaultParameters.js +1 -1
  180. package/src/main/js/sap/ushell/appRuntime/ui5/services/UserInfo.js +2 -2
  181. package/src/main/js/sap/ushell/appRuntime/ui5/services/adapters/ContainerAdapter.js +1 -1
  182. package/src/main/js/sap/ushell/appRuntime/ui5/services/adapters/EmptyAdapter.js +1 -1
  183. package/src/main/js/sap/ushell/appRuntime/ui5/services/adapters/Ui5ComponentLoaderAdapter.js +2 -2
  184. package/src/main/js/sap/ushell/appRuntime/ui5/ui/UIProxy.js +1 -1
  185. package/src/main/js/sap/ushell/bootstrap/SchedulingAgent/EventProcessor.js +1 -1
  186. package/src/main/js/sap/ushell/bootstrap/SchedulingAgent/FLPLoader.js +1 -1
  187. package/src/main/js/sap/ushell/bootstrap/SchedulingAgent/FLPScheduler.js +1 -1
  188. package/src/main/js/sap/ushell/bootstrap/SchedulingAgent/StepConfiguration.json +7 -8
  189. package/src/main/js/sap/ushell/bootstrap/SchedulingAgent/logger.js +2 -2
  190. package/src/main/js/sap/ushell/bootstrap/SchedulingAgent/state.js +2 -2
  191. package/src/main/js/sap/ushell/bootstrap/SchedulingAgent.js +1 -1
  192. package/src/main/js/sap/ushell/bootstrap/cdm/cdm-def-dev.js +1 -1
  193. package/src/main/js/sap/ushell/bootstrap/cdm/cdm-def-loader.js +1 -1
  194. package/src/main/js/sap/ushell/bootstrap/cdm/cdm-def.js +1 -1
  195. package/src/main/js/sap/ushell/bootstrap/cdm/cdm.boot.task.js +1 -1
  196. package/src/main/js/sap/ushell/bootstrap/cdm/cdm.constants.js +1 -1
  197. package/src/main/js/sap/ushell/bootstrap/cdm.js +1 -1
  198. package/src/main/js/sap/ushell/bootstrap/common/common.boot.path.js +1 -1
  199. package/src/main/js/sap/ushell/bootstrap/common/common.boot.script.js +1 -1
  200. package/src/main/js/sap/ushell/bootstrap/common/common.boot.task.js +1 -1
  201. package/src/main/js/sap/ushell/bootstrap/common/common.configure.ui5.extractLibs.js +1 -1
  202. package/src/main/js/sap/ushell/bootstrap/common/common.configure.ui5.js +1 -1
  203. package/src/main/js/sap/ushell/bootstrap/common/common.configure.ui5datetimeformat.js +2 -2
  204. package/src/main/js/sap/ushell/bootstrap/common/common.configure.ui5language.js +1 -1
  205. package/src/main/js/sap/ushell/bootstrap/common/common.configure.ui5theme.js +1 -1
  206. package/src/main/js/sap/ushell/bootstrap/common/common.configure.ushell.js +1 -1
  207. package/src/main/js/sap/ushell/bootstrap/common/common.constants.js +1 -1
  208. package/src/main/js/sap/ushell/bootstrap/common/common.create.configcontract.core.js +16 -4
  209. package/src/main/js/sap/ushell/bootstrap/common/common.debug.mode.js +1 -1
  210. package/src/main/js/sap/ushell/bootstrap/common/common.load.bootstrapExtension.js +1 -1
  211. package/src/main/js/sap/ushell/bootstrap/common/common.load.core-min.js +1 -1
  212. package/src/main/js/sap/ushell/bootstrap/common/common.load.launchpad.js +1 -1
  213. package/src/main/js/sap/ushell/bootstrap/common/common.load.model.js +1 -1
  214. package/src/main/js/sap/ushell/bootstrap/common/common.load.script.js +1 -1
  215. package/src/main/js/sap/ushell/bootstrap/common/common.override.registermodulepath.js +1 -1
  216. package/src/main/js/sap/ushell/bootstrap/common/common.read.metatags.js +1 -1
  217. package/src/main/js/sap/ushell/bootstrap/common/common.read.ui5theme.from.config.js +1 -1
  218. package/src/main/js/sap/ushell/bootstrap/common/common.read.ushell.config.from.url.js +1 -1
  219. package/src/main/js/sap/ushell/bootstrap/common/common.util.js +1 -1
  220. package/src/main/js/sap/ushell/bootstrap/sandbox2/sandbox.js +1 -1
  221. package/src/main/js/sap/ushell/bootstrap/sandbox2/sandboxBootTask.js +1 -1
  222. package/src/main/js/sap/ushell/bootstrap/sandbox2.js +2 -2
  223. package/src/main/js/sap/ushell/bootstrap/ui5loader-config.js +1 -1
  224. package/src/main/js/sap/ushell/components/CatalogsManager.js +1 -1
  225. package/src/main/js/sap/ushell/components/ComponentKeysHandler.js +1 -1
  226. package/src/main/js/sap/ushell/components/DestroyHelper.js +1 -1
  227. package/src/main/js/sap/ushell/components/GroupsHelper.js +1 -1
  228. package/src/main/js/sap/ushell/components/HomepageManager.js +1 -1
  229. package/src/main/js/sap/ushell/components/MessagingHelper.js +1 -1
  230. package/src/main/js/sap/ushell/components/SharedComponentUtils.js +1 -1
  231. package/src/main/js/sap/ushell/components/_HomepageManager/DashboardLoadingManager.js +1 -1
  232. package/src/main/js/sap/ushell/components/_HomepageManager/PagingManager.js +1 -1
  233. package/src/main/js/sap/ushell/components/_HomepageManager/PersistentPageOperationAdapter.js +1 -1
  234. package/src/main/js/sap/ushell/components/_HomepageManager/TransientPageOperationAdapter.js +1 -1
  235. package/src/main/js/sap/ushell/components/appfinder/AppFinder.controller.js +1 -1
  236. package/src/main/js/sap/ushell/components/appfinder/AppFinderView.js +1 -1
  237. package/src/main/js/sap/ushell/components/appfinder/Catalog.controller.js +1 -1
  238. package/src/main/js/sap/ushell/components/appfinder/CatalogView.js +1 -1
  239. package/src/main/js/sap/ushell/components/appfinder/Component.js +1 -1
  240. package/src/main/js/sap/ushell/components/appfinder/EasyAccess.controller.js +1 -1
  241. package/src/main/js/sap/ushell/components/appfinder/EasyAccessView.js +1 -1
  242. package/src/main/js/sap/ushell/components/appfinder/GroupListPopover.controller.js +1 -1
  243. package/src/main/js/sap/ushell/components/appfinder/GroupListPopoverView.js +1 -1
  244. package/src/main/js/sap/ushell/components/appfinder/HierarchyApps.controller.js +1 -1
  245. package/src/main/js/sap/ushell/components/appfinder/HierarchyAppsView.js +1 -1
  246. package/src/main/js/sap/ushell/components/appfinder/HierarchyFolders.controller.js +1 -1
  247. package/src/main/js/sap/ushell/components/appfinder/HierarchyFoldersView.js +1 -1
  248. package/src/main/js/sap/ushell/components/appfinder/VisualizationOrganizerHelper.js +1 -1
  249. package/src/main/js/sap/ushell/components/appfinder/manifest.json +1 -1
  250. package/src/main/js/sap/ushell/components/cards/Card.controller.js +1 -1
  251. package/src/main/js/sap/ushell/components/cards/Configuration.controller.js +1 -1
  252. package/src/main/js/sap/ushell/components/cards/ManifestPropertyHelper.js +1 -1
  253. package/src/main/js/sap/ushell/components/cepsearchresult/app/Component.js +1 -1
  254. package/src/main/js/sap/ushell/components/cepsearchresult/app/Main.controller.js +1 -1
  255. package/src/main/js/sap/ushell/components/cepsearchresult/app/cards/searchresultwidget/Component.js +1 -1
  256. package/src/main/js/sap/ushell/components/cepsearchresult/app/cards/searchresultwidget/Config.js +1 -1
  257. package/src/main/js/sap/ushell/components/cepsearchresult/app/cards/searchresultwidget/Extension.js +1 -1
  258. package/src/main/js/sap/ushell/components/cepsearchresult/app/util/AdvancedFormatters.js +1 -1
  259. package/src/main/js/sap/ushell/components/cepsearchresult/app/util/Edition.js +1 -1
  260. package/src/main/js/sap/ushell/components/cepsearchresult/app/util/EditionAdvanced.js +1 -1
  261. package/src/main/js/sap/ushell/components/cepsearchresult/app/util/EditionStandard.js +1 -1
  262. package/src/main/js/sap/ushell/components/cepsearchresult/app/util/appendStyleVars.js +1 -1
  263. package/src/main/js/sap/ushell/components/cepsearchresult/app/util/controls/Category.js +1 -1
  264. package/src/main/js/sap/ushell/components/cepsearchresult/app/util/controls/Highlighter.js +1 -1
  265. package/src/main/js/sap/ushell/components/cepsearchresult/app/util/controls/Paginator.js +1 -1
  266. package/src/main/js/sap/ushell/components/cepsearchresult/app/util/controls/categories/All.js +1 -1
  267. package/src/main/js/sap/ushell/components/cepsearchresult/app/util/controls/categories/Application.js +1 -1
  268. package/src/main/js/sap/ushell/components/cepsearchresult/app/util/controls/categories/Event.js +1 -1
  269. package/src/main/js/sap/ushell/components/cepsearchresult/app/util/controls/categories/People.js +1 -1
  270. package/src/main/js/sap/ushell/components/cepsearchresult/app/util/controls/categories/Workpage.js +1 -1
  271. package/src/main/js/sap/ushell/components/cepsearchresult/app/util/resources.js +1 -1
  272. package/src/main/js/sap/ushell/components/contentFinder/CatalogService.js +2 -2
  273. package/src/main/js/sap/ushell/components/contentFinder/Component.js +2 -2
  274. package/src/main/js/sap/ushell/components/contentFinder/controller/AppSearch.controller.js +2 -2
  275. package/src/main/js/sap/ushell/components/contentFinder/controller/ContentFinderDialog.controller.js +2 -2
  276. package/src/main/js/sap/ushell/components/contentFinder/dialog/Component.js +2 -2
  277. package/src/main/js/sap/ushell/components/contentFinder/dialog/manifest.json +1 -1
  278. package/src/main/js/sap/ushell/components/contentFinder/manifest.json +1 -1
  279. package/src/main/js/sap/ushell/components/contentFinder/model/GraphQLListBinding.js +1 -1
  280. package/src/main/js/sap/ushell/components/contentFinder/model/GraphQLModel.js +1 -1
  281. package/src/main/js/sap/ushell/components/contentFinder/model/formatter.js +1 -1
  282. package/src/main/js/sap/ushell/components/contentFinderStandalone/Component.js +2 -2
  283. package/src/main/js/sap/ushell/components/contentFinderStandalone/controller/ContentFinderStandalone.controller.js +2 -2
  284. package/src/main/js/sap/ushell/components/contentFinderStandalone/manifest.json +1 -1
  285. package/src/main/js/sap/ushell/components/factsheet/Component.js +2 -2
  286. package/src/main/js/sap/ushell/components/factsheet/annotation/Mapping.js +1 -1
  287. package/src/main/js/sap/ushell/components/factsheet/controls/PictureTile.js +1 -1
  288. package/src/main/js/sap/ushell/components/factsheet/controls/PictureTileRenderer.js +1 -1
  289. package/src/main/js/sap/ushell/components/factsheet/controls/PictureViewer.js +1 -1
  290. package/src/main/js/sap/ushell/components/factsheet/controls/PictureViewerItem.js +1 -1
  291. package/src/main/js/sap/ushell/components/factsheet/controls/PictureViewerRenderer.js +1 -1
  292. package/src/main/js/sap/ushell/components/factsheet/factory/ThingInspector.js +1 -1
  293. package/src/main/js/sap/ushell/components/factsheet/tools/ODataUrlTemplating.js +1 -1
  294. package/src/main/js/sap/ushell/components/factsheet/views/ThingViewer.controller.js +1 -1
  295. package/src/main/js/sap/ushell/components/factsheet/views/ThingViewer.view.js +1 -1
  296. package/src/main/js/sap/ushell/components/homeApp/error/Component.js +1 -1
  297. package/src/main/js/sap/ushell/components/homeApp/error/HomeAppError.controller.js +1 -1
  298. package/src/main/js/sap/ushell/components/homepage/ActionMode.js +2 -2
  299. package/src/main/js/sap/ushell/components/homepage/Component.js +1 -1
  300. package/src/main/js/sap/ushell/components/homepage/DashboardContent.controller.js +1 -1
  301. package/src/main/js/sap/ushell/components/homepage/DashboardContent.view.js +2 -2
  302. package/src/main/js/sap/ushell/components/homepage/DashboardGroupsBox.js +2 -2
  303. package/src/main/js/sap/ushell/components/homepage/DashboardUIActions.js +2 -2
  304. package/src/main/js/sap/ushell/components/homepage/manifest.json +1 -1
  305. package/src/main/js/sap/ushell/components/pages/ActionMode.js +2 -2
  306. package/src/main/js/sap/ushell/components/pages/Component.js +2 -2
  307. package/src/main/js/sap/ushell/components/pages/MyHomeImport.js +2 -2
  308. package/src/main/js/sap/ushell/components/pages/StateManager.js +1 -1
  309. package/src/main/js/sap/ushell/components/pages/controller/ImportDialog.controller.js +1 -1
  310. package/src/main/js/sap/ushell/components/pages/controller/MyHome.controller.js +1 -1
  311. package/src/main/js/sap/ushell/components/pages/controller/PageRuntime.controller.js +2 -2
  312. package/src/main/js/sap/ushell/components/pages/controller/PagesAndSpaceId.js +1 -1
  313. package/src/main/js/sap/ushell/components/pages/manifest.json +1 -1
  314. package/src/main/js/sap/ushell/components/runtimeSwitcher/Component.js +1 -1
  315. package/src/main/js/sap/ushell/components/runtimeSwitcher/controller/RuntimeSwitcher.controller.js +2 -2
  316. package/src/main/js/sap/ushell/components/runtimeSwitcher/manifest.json +1 -1
  317. package/src/main/js/sap/ushell/components/shell/FloatingContainer/Component.js +1 -1
  318. package/src/main/js/sap/ushell/components/shell/FloatingContainer/controls/FloatingContainer.js +1 -1
  319. package/src/main/js/sap/ushell/components/shell/FloatingContainer/manifest.json +1 -1
  320. package/src/main/js/sap/ushell/components/shell/MenuBar/Component.js +1 -1
  321. package/src/main/js/sap/ushell/components/shell/MenuBar/controller/MenuBar.controller.js +3 -2
  322. package/src/main/js/sap/ushell/components/shell/MenuBar/manifest.json +1 -1
  323. package/src/main/js/sap/ushell/components/shell/NavigationBarMenu/Component.js +1 -1
  324. package/src/main/js/sap/ushell/components/shell/NavigationBarMenu/controller/NavigationBarMenu.controller.js +4 -3
  325. package/src/main/js/sap/ushell/components/shell/NavigationBarMenu/controller/NavigationBarMenuButton.controller.js +2 -2
  326. package/src/main/js/sap/ushell/components/shell/NavigationBarMenu/manifest.json +1 -1
  327. package/src/main/js/sap/ushell/components/shell/Notifications/Component.js +2 -2
  328. package/src/main/js/sap/ushell/components/shell/Notifications/Notifications.controller.js +1 -1
  329. package/src/main/js/sap/ushell/components/shell/Notifications/NotificationsList.controller.js +1 -1
  330. package/src/main/js/sap/ushell/components/shell/Notifications/NotificationsModule.js +2 -1
  331. package/src/main/js/sap/ushell/components/shell/PostLoadingHeaderEnhancement/Component.js +1 -1
  332. package/src/main/js/sap/ushell/components/shell/ProductSwitch/Component.js +12 -48
  333. package/src/main/js/sap/ushell/components/shell/ProductSwitch/ProductSwitchModule.js +59 -0
  334. package/src/main/js/sap/ushell/components/shell/Search/Component.js +1 -1
  335. package/src/main/js/sap/ushell/components/shell/Search/ESearch.js +1 -1
  336. package/src/main/js/sap/ushell/components/shell/Search/SearchModule.js +1 -1
  337. package/src/main/js/sap/ushell/components/shell/Search/manifest.json +1 -1
  338. package/src/main/js/sap/ushell/components/shell/SearchCEP/Component.js +2 -2
  339. package/src/main/js/sap/ushell/components/shell/SearchCEP/SearchCEP.controller.js +1 -1
  340. package/src/main/js/sap/ushell/components/shell/SearchCEP/SearchProviders/FrequentActivityProvider.js +2 -2
  341. package/src/main/js/sap/ushell/components/shell/SearchCEP/SearchProviders/RecentSearchProvider.js +2 -2
  342. package/src/main/js/sap/ushell/components/shell/SearchCEP/SearchProviders/SearchProvider.js +2 -2
  343. package/src/main/js/sap/ushell/components/shell/SearchCEP/SearchProviders/SearchServiceProvider.js +2 -2
  344. package/src/main/js/sap/ushell/components/shell/SearchCEPNew/Component.js +2 -1
  345. package/src/main/js/sap/ushell/components/shell/SearchCEPNew/SearchProviders/FrequentActivityProvider.js +2 -2
  346. package/src/main/js/sap/ushell/components/shell/SearchCEPNew/SearchProviders/RecentSearchProvider.js +2 -2
  347. package/src/main/js/sap/ushell/components/shell/SearchCEPNew/SearchProviders/SearchProvider.js +2 -2
  348. package/src/main/js/sap/ushell/components/shell/SearchCEPNew/SearchProviders/SearchServiceProvider.js +2 -2
  349. package/src/main/js/sap/ushell/components/shell/SearchCEPNew/manifest.json +1 -1
  350. package/src/main/js/sap/ushell/components/shell/Settings/Component.js +2 -2
  351. package/src/main/js/sap/ushell/components/shell/Settings/ErrorMessageHelper.js +1 -1
  352. package/src/main/js/sap/ushell/components/shell/Settings/UserSettings.controller.js +1 -1
  353. package/src/main/js/sap/ushell/components/shell/Settings/appearance/Appearance.controller.js +1 -1
  354. package/src/main/js/sap/ushell/components/shell/Settings/appearance/AppearanceEntry.js +1 -1
  355. package/src/main/js/sap/ushell/components/shell/Settings/homepage/HomepageEntry.js +1 -1
  356. package/src/main/js/sap/ushell/components/shell/Settings/notifications/NotificationsEntry.js +1 -1
  357. package/src/main/js/sap/ushell/components/shell/Settings/notifications/NotificationsSetting.controller.js +1 -1
  358. package/src/main/js/sap/ushell/components/shell/Settings/search/Search.controller.js +1 -1
  359. package/src/main/js/sap/ushell/components/shell/Settings/search/SearchEntry.js +1 -1
  360. package/src/main/js/sap/ushell/components/shell/Settings/spaces/SpacesEntry.js +1 -1
  361. package/src/main/js/sap/ushell/components/shell/Settings/spaces/SpacesSetting.controller.js +1 -1
  362. package/src/main/js/sap/ushell/components/shell/Settings/userAccount/UserAccountEntry.js +1 -1
  363. package/src/main/js/sap/ushell/components/shell/Settings/userAccount/UserAccountSelector.controller.js +1 -1
  364. package/src/main/js/sap/ushell/components/shell/Settings/userActivities/UserActivitiesEntry.js +1 -1
  365. package/src/main/js/sap/ushell/components/shell/Settings/userActivities/UserActivitiesSetting.controller.js +1 -1
  366. package/src/main/js/sap/ushell/components/shell/Settings/userDefaults/Component.js +1 -1
  367. package/src/main/js/sap/ushell/components/shell/Settings/userDefaults/UserDefaultsEntry.js +1 -1
  368. package/src/main/js/sap/ushell/components/shell/Settings/userDefaults/UserDefaultsForm.js +1 -1
  369. package/src/main/js/sap/ushell/components/shell/Settings/userDefaults/controller/ExtendedValueDialog.controller.js +1 -1
  370. package/src/main/js/sap/ushell/components/shell/Settings/userDefaults/controller/UserDefaultsSetting.controller.js +1 -1
  371. package/src/main/js/sap/ushell/components/shell/Settings/userLanguageRegion/LanguageRegionSelector.controller.js +1 -1
  372. package/src/main/js/sap/ushell/components/shell/Settings/userLanguageRegion/UserLanguageRegionEntry.js +1 -1
  373. package/src/main/js/sap/ushell/components/shell/ShellBar/Component.js +1 -1
  374. package/src/main/js/sap/ushell/components/shell/ShellBar/controller/ShellBar.controller.js +1 -10
  375. package/src/main/js/sap/ushell/components/shell/ShellBar/manifest.json +1 -1
  376. package/src/main/js/sap/ushell/components/shell/ShellBar/view/ShellBar.view.xml +2 -6
  377. package/src/main/js/sap/ushell/components/shell/SideNavigation/Component.js +74 -22
  378. package/src/main/js/sap/ushell/components/shell/SideNavigation/controller/SideNavigation.controller.js +64 -9
  379. package/src/main/js/sap/ushell/components/shell/SideNavigation/fragment/AllSpaces.fragment.xml +9 -1
  380. package/src/main/js/sap/ushell/components/shell/SideNavigation/interface/ListProviderAPI.js +1 -1
  381. package/src/main/js/sap/ushell/components/shell/SideNavigation/interface/NavContainer.js +1 -1
  382. package/src/main/js/sap/ushell/components/shell/SideNavigation/manifest.json +1 -8
  383. package/src/main/js/sap/ushell/components/shell/SideNavigation/modules/AllSpaces.js +14 -7
  384. package/src/main/js/sap/ushell/components/shell/SideNavigation/modules/AppFinder.js +11 -1
  385. package/src/main/js/sap/ushell/components/shell/SideNavigation/modules/Favorites.js +25 -6
  386. package/src/main/js/sap/ushell/components/shell/SideNavigation/modules/GenericFixedNavigationListProvider.js +61 -12
  387. package/src/main/js/sap/ushell/components/shell/SideNavigation/modules/GenericNavigationListProvider.js +18 -1
  388. package/src/main/js/sap/ushell/components/shell/SideNavigation/modules/MyHome.js +11 -1
  389. package/src/main/js/sap/ushell/components/shell/SideNavigation/modules/NavigationHelper.js +1 -1
  390. package/src/main/js/sap/ushell/components/shell/SideNavigation/modules/RecentActivity.js +23 -11
  391. package/src/main/js/sap/ushell/components/shell/SideNavigation/modules/Spaces.js +12 -1
  392. package/src/main/js/sap/ushell/components/shell/SideNavigation/modules/SpacesNavigationListProvider.js +12 -1
  393. package/src/main/js/sap/ushell/components/shell/SideNavigation/view/Main.view.xml +8 -3
  394. package/src/main/js/sap/ushell/components/shell/UserActionsMenu/Component.js +2 -2
  395. package/src/main/js/sap/ushell/components/shell/UserActionsMenu/UserActionsMenu.controller.js +2 -11
  396. package/src/main/js/sap/ushell/components/shell/UserImage/Component.js +2 -2
  397. package/src/main/js/sap/ushell/components/tiles/action/ActionTile.controller.js +1 -1
  398. package/src/main/js/sap/ushell/components/tiles/action/Configuration.controller.js +1 -1
  399. package/src/main/js/sap/ushell/components/tiles/applauncher/Component.js +1 -1
  400. package/src/main/js/sap/ushell/components/tiles/applauncher/Configuration.controller.js +1 -1
  401. package/src/main/js/sap/ushell/components/tiles/applauncher/StaticTile.controller.js +1 -1
  402. package/src/main/js/sap/ushell/components/tiles/applauncher/StaticTile.view.js +1 -1
  403. package/src/main/js/sap/ushell/components/tiles/applauncherdynamic/Component.js +1 -1
  404. package/src/main/js/sap/ushell/components/tiles/applauncherdynamic/Configuration.controller.js +1 -1
  405. package/src/main/js/sap/ushell/components/tiles/applauncherdynamic/DynamicTile.controller.js +1 -1
  406. package/src/main/js/sap/ushell/components/tiles/applauncherdynamic/DynamicTile.view.js +1 -1
  407. package/src/main/js/sap/ushell/components/tiles/cdm/applauncher/Component.js +1 -1
  408. package/src/main/js/sap/ushell/components/tiles/cdm/applauncher/StaticTile.controller.js +1 -1
  409. package/src/main/js/sap/ushell/components/tiles/cdm/applauncher/StaticTile.view.js +1 -1
  410. package/src/main/js/sap/ushell/components/tiles/cdm/applauncherdynamic/Component.js +1 -1
  411. package/src/main/js/sap/ushell/components/tiles/cdm/applauncherdynamic/DynamicTile.controller.js +1 -1
  412. package/src/main/js/sap/ushell/components/tiles/cdm/applauncherdynamic/DynamicTile.view.js +1 -1
  413. package/src/main/js/sap/ushell/components/tiles/generic.js +1 -1
  414. package/src/main/js/sap/ushell/components/tiles/indicatorArea/AreaChartTile.controller.js +1 -1
  415. package/src/main/js/sap/ushell/components/tiles/indicatorArea/AreaChartTile.view.js +1 -1
  416. package/src/main/js/sap/ushell/components/tiles/indicatorDual/DualTile.controller.js +1 -1
  417. package/src/main/js/sap/ushell/components/tiles/indicatorDual/DualTile.view.js +1 -1
  418. package/src/main/js/sap/ushell/components/tiles/indicatorDualComparison/DualComparison.controller.js +1 -1
  419. package/src/main/js/sap/ushell/components/tiles/indicatorDualComparison/DualComparison.view.js +1 -1
  420. package/src/main/js/sap/ushell/components/tiles/indicatorDualContribution/DualContribution.controller.js +1 -1
  421. package/src/main/js/sap/ushell/components/tiles/indicatorDualContribution/DualContribution.view.js +1 -1
  422. package/src/main/js/sap/ushell/components/tiles/indicatorDualDeviation/DualDeviation.controller.js +1 -1
  423. package/src/main/js/sap/ushell/components/tiles/indicatorDualDeviation/DualDeviation.view.js +1 -1
  424. package/src/main/js/sap/ushell/components/tiles/indicatorDualTrend/DualTrend.controller.js +1 -1
  425. package/src/main/js/sap/ushell/components/tiles/indicatorDualTrend/DualTrend.view.js +1 -1
  426. package/src/main/js/sap/ushell/components/tiles/indicatorHarveyBall/HarveyBallTile.controller.js +1 -1
  427. package/src/main/js/sap/ushell/components/tiles/indicatorHarveyBall/HarveyBallTile.view.js +1 -1
  428. package/src/main/js/sap/ushell/components/tiles/indicatorTileUtils/cache.js +1 -1
  429. package/src/main/js/sap/ushell/components/tiles/indicatorTileUtils/indicatorTileHelper.js +1 -1
  430. package/src/main/js/sap/ushell/components/tiles/indicatorTileUtils/oData4Analytics.js +1 -1
  431. package/src/main/js/sap/ushell/components/tiles/indicatorTileUtils/smartBusinessUtil.js +1 -1
  432. package/src/main/js/sap/ushell/components/tiles/indicatorcomparison/ComparisonTile.controller.js +1 -1
  433. package/src/main/js/sap/ushell/components/tiles/indicatorcomparison/ComparisonTile.view.js +1 -1
  434. package/src/main/js/sap/ushell/components/tiles/indicatorcontribution/ContributionTile.controller.js +1 -1
  435. package/src/main/js/sap/ushell/components/tiles/indicatorcontribution/ContributionTile.view.js +1 -1
  436. package/src/main/js/sap/ushell/components/tiles/indicatordeviation/DeviationTile.controller.js +1 -1
  437. package/src/main/js/sap/ushell/components/tiles/indicatordeviation/DeviationTile.view.js +1 -1
  438. package/src/main/js/sap/ushell/components/tiles/indicatornumeric/NumericTile.controller.js +1 -1
  439. package/src/main/js/sap/ushell/components/tiles/indicatornumeric/NumericTile.view.js +1 -1
  440. package/src/main/js/sap/ushell/components/tiles/sbtilecontent.js +1 -1
  441. package/src/main/js/sap/ushell/components/tiles/utils.js +1 -1
  442. package/src/main/js/sap/ushell/components/visualizationOrganizer/Component.js +2 -2
  443. package/src/main/js/sap/ushell/designtime/ApplicationContainer.designtime.js +2 -2
  444. package/src/main/js/sap/ushell/functionBindPrototype.js +1 -1
  445. package/src/main/js/sap/ushell/iconfonts.js +1 -1
  446. package/src/main/js/sap/ushell/library.js +32 -2
  447. package/src/main/js/sap/ushell/modules/Assistant/AssistantAPI.js +1 -1
  448. package/src/main/js/sap/ushell/modules/Assistant/AssistantProvider.js +2 -1
  449. package/src/main/js/sap/ushell/modules/Assistant/VisualConfiguration.js +1 -1
  450. package/src/main/js/sap/ushell/modules/Assistant.js +7 -5
  451. package/src/main/js/sap/ushell/modules/BaseAPI.js +1 -1
  452. package/src/main/js/sap/ushell/modules/BaseProvider.js +1 -1
  453. package/src/main/js/sap/ushell/modules/NavigationMenu/ListProvider.js +13 -1
  454. package/src/main/js/sap/ushell/modules/NavigationMenu/ListProviderAPI.js +1 -1
  455. package/src/main/js/sap/ushell/modules/NavigationMenu/NavContainer.js +1 -1
  456. package/src/main/js/sap/ushell/modules/NavigationMenu/NavigationMenuMode.js +1 -1
  457. package/src/main/js/sap/ushell/modules/NavigationMenu.js +1 -1
  458. package/src/main/js/sap/ushell/modules/Notifications/NotificationsAPI.js +1 -1
  459. package/src/main/js/sap/ushell/modules/Notifications/NotificationsProvider.js +3 -2
  460. package/src/main/js/sap/ushell/modules/Notifications.js +1 -1
  461. package/src/main/js/sap/ushell/modules/ProductSwitch/ProductSwitchAPI.js +197 -0
  462. package/src/main/js/sap/ushell/modules/ProductSwitch/ProductSwitchProvider.js +50 -0
  463. package/src/main/js/sap/ushell/modules/ProductSwitch.js +50 -0
  464. package/src/main/js/sap/ushell/modules/Search/SearchAPI.js +28 -4
  465. package/src/main/js/sap/ushell/modules/Search/SearchProvider.js +3 -2
  466. package/src/main/js/sap/ushell/modules/Search.js +1 -1
  467. package/src/main/js/sap/ushell/modules/loader/AbstractLoader.js +1 -1
  468. package/src/main/js/sap/ushell/modules/loader/AssistantLoader.js +5 -2
  469. package/src/main/js/sap/ushell/modules/loader/NotificationsLoader.js +1 -1
  470. package/src/main/js/sap/ushell/modules/loader/ProductSwitchLoader.js +185 -0
  471. package/src/main/js/sap/ushell/modules/loader/SearchLoader.js +5 -3
  472. package/src/main/js/sap/ushell/navigation/ColdStart.js +116 -0
  473. package/src/main/js/sap/ushell/navigation/NavigationState.js +1 -1
  474. package/src/main/js/sap/ushell/navigationMode.js +2 -2
  475. package/src/main/js/sap/ushell/override.js +1 -1
  476. package/src/main/js/sap/ushell/performance/FesrEnhancer.js +1 -1
  477. package/src/main/js/sap/ushell/performance/ShellAnalytics.js +2 -2
  478. package/src/main/js/sap/ushell/performance/StatisticalRecord.js +2 -2
  479. package/src/main/js/sap/ushell/plugins/BaseRTAPlugin.js +1 -1
  480. package/src/main/js/sap/ushell/plugins/appwarmup/Component.js +2 -2
  481. package/src/main/js/sap/ushell/plugins/appwarmup/ShellUIService.js +1 -1
  482. package/src/main/js/sap/ushell/plugins/ghostapp/Component.js +1 -1
  483. package/src/main/js/sap/ushell/plugins/ghostapp/FakeModel.js +1 -1
  484. package/src/main/js/sap/ushell/plugins/rta/Component.js +1 -1
  485. package/src/main/js/sap/ushell/plugins/rta-personalize/Component.js +1 -1
  486. package/src/main/js/sap/ushell/renderer/AccessKeysHandler.js +1 -1
  487. package/src/main/js/sap/ushell/renderer/LogonFrameProvider.js +2 -2
  488. package/src/main/js/sap/ushell/renderer/NavContainer.js +1 -1
  489. package/src/main/js/sap/ushell/renderer/NavContainerRenderer.js +1 -1
  490. package/src/main/js/sap/ushell/renderer/Renderer.js +21 -5
  491. package/src/main/js/sap/ushell/renderer/RendererAppContainer.js +32 -31
  492. package/src/main/js/sap/ushell/renderer/RendererManagedComponents.js +1 -1
  493. package/src/main/js/sap/ushell/renderer/Shell.controller.js +220 -237
  494. package/src/main/js/sap/ushell/renderer/Shell.view.js +14 -4
  495. package/src/main/js/sap/ushell/renderer/ShellLayout.js +3 -2
  496. package/src/main/js/sap/ushell/renderer/allMyApps/AllMyApps.controller.js +1 -1
  497. package/src/main/js/sap/ushell/renderer/allMyApps/AllMyAppsManager.js +1 -1
  498. package/src/main/js/sap/ushell/renderer/rendererTargetWrapper/Component.js +1 -1
  499. package/src/main/js/sap/ushell/renderer/rendererTargetWrapper/RendererTarget.controller.js +2 -2
  500. package/src/main/js/sap/ushell/renderer/resources/resources.properties +2 -2
  501. package/src/main/js/sap/ushell/renderer/resources/resources_ar.properties +3 -3
  502. package/src/main/js/sap/ushell/renderer/resources/resources_bg.properties +3 -3
  503. package/src/main/js/sap/ushell/renderer/resources/resources_ca.properties +3 -3
  504. package/src/main/js/sap/ushell/renderer/resources/resources_cnr.properties +3 -3
  505. package/src/main/js/sap/ushell/renderer/resources/resources_cs.properties +3 -3
  506. package/src/main/js/sap/ushell/renderer/resources/resources_cy.properties +3 -3
  507. package/src/main/js/sap/ushell/renderer/resources/resources_da.properties +3 -3
  508. package/src/main/js/sap/ushell/renderer/resources/resources_de.properties +6 -6
  509. package/src/main/js/sap/ushell/renderer/resources/resources_el.properties +3 -3
  510. package/src/main/js/sap/ushell/renderer/resources/resources_en.properties +3 -3
  511. package/src/main/js/sap/ushell/renderer/resources/resources_en_GB.properties +3 -3
  512. package/src/main/js/sap/ushell/renderer/resources/resources_en_US_saprigi.properties +3 -3
  513. package/src/main/js/sap/ushell/renderer/resources/resources_es.properties +4 -4
  514. package/src/main/js/sap/ushell/renderer/resources/resources_es_MX.properties +3 -3
  515. package/src/main/js/sap/ushell/renderer/resources/resources_et.properties +3 -3
  516. package/src/main/js/sap/ushell/renderer/resources/resources_fi.properties +3 -3
  517. package/src/main/js/sap/ushell/renderer/resources/resources_fr.properties +4 -4
  518. package/src/main/js/sap/ushell/renderer/resources/resources_fr_CA.properties +3 -3
  519. package/src/main/js/sap/ushell/renderer/resources/resources_hi.properties +2 -2
  520. package/src/main/js/sap/ushell/renderer/resources/resources_hr.properties +3 -3
  521. package/src/main/js/sap/ushell/renderer/resources/resources_hu.properties +3 -3
  522. package/src/main/js/sap/ushell/renderer/resources/resources_id.properties +2 -2
  523. package/src/main/js/sap/ushell/renderer/resources/resources_it.properties +3 -3
  524. package/src/main/js/sap/ushell/renderer/resources/resources_iw.properties +4 -4
  525. package/src/main/js/sap/ushell/renderer/resources/resources_ja.properties +2 -2
  526. package/src/main/js/sap/ushell/renderer/resources/resources_kk.properties +18 -18
  527. package/src/main/js/sap/ushell/renderer/resources/resources_ko.properties +2 -2
  528. package/src/main/js/sap/ushell/renderer/resources/resources_lt.properties +3 -3
  529. package/src/main/js/sap/ushell/renderer/resources/resources_lv.properties +3 -3
  530. package/src/main/js/sap/ushell/renderer/resources/resources_mk.properties +3 -3
  531. package/src/main/js/sap/ushell/renderer/resources/resources_ms.properties +3 -3
  532. package/src/main/js/sap/ushell/renderer/resources/resources_nl.properties +3 -3
  533. package/src/main/js/sap/ushell/renderer/resources/resources_no.properties +3 -3
  534. package/src/main/js/sap/ushell/renderer/resources/resources_pl.properties +3 -3
  535. package/src/main/js/sap/ushell/renderer/resources/resources_pt.properties +3 -3
  536. package/src/main/js/sap/ushell/renderer/resources/resources_pt_PT.properties +3 -3
  537. package/src/main/js/sap/ushell/renderer/resources/resources_ro.properties +6 -6
  538. package/src/main/js/sap/ushell/renderer/resources/resources_ru.properties +3 -3
  539. package/src/main/js/sap/ushell/renderer/resources/resources_sh.properties +3 -3
  540. package/src/main/js/sap/ushell/renderer/resources/resources_sk.properties +3 -3
  541. package/src/main/js/sap/ushell/renderer/resources/resources_sl.properties +3 -3
  542. package/src/main/js/sap/ushell/renderer/resources/resources_sr.properties +3 -3
  543. package/src/main/js/sap/ushell/renderer/resources/resources_sv.properties +3 -3
  544. package/src/main/js/sap/ushell/renderer/resources/resources_th.properties +3 -3
  545. package/src/main/js/sap/ushell/renderer/resources/resources_tr.properties +3 -3
  546. package/src/main/js/sap/ushell/renderer/resources/resources_uk.properties +9 -9
  547. package/src/main/js/sap/ushell/renderer/resources/resources_vi.properties +2 -2
  548. package/src/main/js/sap/ushell/renderer/resources/resources_zh_CN.properties +2 -2
  549. package/src/main/js/sap/ushell/renderer/resources/resources_zh_TW.properties +2 -2
  550. package/src/main/js/sap/ushell/renderer/search/searchComponent/Component.js +1 -1
  551. package/src/main/js/sap/ushell/renderer/search/searchComponent/controller/CEPSearchApp.controller.js +1 -1
  552. package/src/main/js/sap/ushell/renderer/search/searchComponent/controller/SearchApp.controller.js +1 -1
  553. package/src/main/js/sap/ushell/renderer/search/searchComponent/manifest.json +1 -1
  554. package/src/main/js/sap/ushell/renderer/search/searchComponent/view/CEPSearchApp.view.js +1 -1
  555. package/src/main/js/sap/ushell/renderer/search/searchComponent/view/SearchApp.view.js +1 -1
  556. package/src/main/js/sap/ushell/renderer/search/util.js +1 -1
  557. package/src/main/js/sap/ushell/renderer/shellHeader/ShellHeader.controller.js +1 -1
  558. package/src/main/js/sap/ushell/renderer/utils.js +1 -1
  559. package/src/main/js/sap/ushell/renderers/fiori2/LogonFrameProvider.js +1 -1
  560. package/src/main/js/sap/ushell/renderers/fiori2/Renderer.js +1 -1
  561. package/src/main/js/sap/ushell/renderers/fiori2/RendererExtensions.js +1 -1
  562. package/src/main/js/sap/ushell/renderers/fiori2/Shell.controller.js +1 -1
  563. package/src/main/js/sap/ushell/renderers/fiori2/Shell.view.js +1 -1
  564. package/src/main/js/sap/ushell/renderers/fiori2/allMyApps/AllMyAppsManager.js +1 -1
  565. package/src/main/js/sap/ushell/resources.js +1 -1
  566. package/src/main/js/sap/ushell/services/AllMyApps.js +1 -1
  567. package/src/main/js/sap/ushell/services/AppConfiguration.js +1 -1
  568. package/src/main/js/sap/ushell/services/AppLifeCycle.js +2 -2
  569. package/src/main/js/sap/ushell/services/AppState.js +2 -2
  570. package/src/main/js/sap/ushell/services/AppType.js +1 -1
  571. package/src/main/js/sap/ushell/services/Bookmark.js +2 -2
  572. package/src/main/js/sap/ushell/services/BookmarkV2.js +2 -2
  573. package/src/main/js/sap/ushell/services/ClientSideTargetResolution/Formatter.js +2 -2
  574. package/src/main/js/sap/ushell/services/ClientSideTargetResolution/InboundIndex.js +2 -2
  575. package/src/main/js/sap/ushell/services/ClientSideTargetResolution/InboundProvider.js +2 -2
  576. package/src/main/js/sap/ushell/services/ClientSideTargetResolution/ParameterMapping.js +1 -1
  577. package/src/main/js/sap/ushell/services/ClientSideTargetResolution/PrelaunchOperations.js +2 -2
  578. package/src/main/js/sap/ushell/services/ClientSideTargetResolution/Search.js +2 -2
  579. package/src/main/js/sap/ushell/services/ClientSideTargetResolution/StagedLogger.js +2 -2
  580. package/src/main/js/sap/ushell/services/ClientSideTargetResolution/SystemContext.js +2 -2
  581. package/src/main/js/sap/ushell/services/ClientSideTargetResolution/Utils.js +2 -2
  582. package/src/main/js/sap/ushell/services/ClientSideTargetResolution/VirtualInbounds.js +2 -2
  583. package/src/main/js/sap/ushell/services/ClientSideTargetResolution/XAppStateProcessing.js +2 -2
  584. package/src/main/js/sap/ushell/services/ClientSideTargetResolution.js +4 -5
  585. package/src/main/js/sap/ushell/services/CommonDataModel/PersonalizationProcessor.js +1 -1
  586. package/src/main/js/sap/ushell/services/CommonDataModel/SiteConverter.js +2 -2
  587. package/src/main/js/sap/ushell/services/CommonDataModel/vizTypeDefaults/VizTypeDefaults.js +2 -2
  588. package/src/main/js/sap/ushell/services/CommonDataModel.js +6 -2
  589. package/src/main/js/sap/ushell/services/Configuration.js +2 -2
  590. package/src/main/js/sap/ushell/services/ConfigurationDefaults.js +2 -2
  591. package/src/main/js/sap/ushell/services/Container.js +1 -1
  592. package/src/main/js/sap/ushell/services/ContentExtensionAdapterFactory.js +2 -2
  593. package/src/main/js/sap/ushell/services/CrossApplicationNavigation.js +2 -2
  594. package/src/main/js/sap/ushell/services/DarkModeSupport.js +2 -2
  595. package/src/main/js/sap/ushell/services/EndUserFeedback.js +1 -1
  596. package/src/main/js/sap/ushell/services/Extension/Item.js +2 -2
  597. package/src/main/js/sap/ushell/services/Extension.js +2 -2
  598. package/src/main/js/sap/ushell/services/FlpLaunchPage.js +2 -2
  599. package/src/main/js/sap/ushell/services/FrameBoundExtension/FloatingContainer.js +2 -2
  600. package/src/main/js/sap/ushell/services/FrameBoundExtension/Footer.js +2 -2
  601. package/src/main/js/sap/ushell/services/FrameBoundExtension/Item.js +2 -2
  602. package/src/main/js/sap/ushell/services/FrameBoundExtension/SidePane.js +2 -2
  603. package/src/main/js/sap/ushell/services/FrameBoundExtension/ToolArea.js +2 -2
  604. package/src/main/js/sap/ushell/services/FrameBoundExtension/UserSettingsEntry.js +2 -2
  605. package/src/main/js/sap/ushell/services/FrameBoundExtension.js +2 -2
  606. package/src/main/js/sap/ushell/services/LaunchPage.js +2 -2
  607. package/src/main/js/sap/ushell/services/Menu.js +99 -42
  608. package/src/main/js/sap/ushell/services/Message.js +2 -2
  609. package/src/main/js/sap/ushell/services/MessageBroker/ClientAlias.js +1 -1
  610. package/src/main/js/sap/ushell/services/MessageBroker/ClientConnectionMessage.js +1 -1
  611. package/src/main/js/sap/ushell/services/MessageBroker/MessageBrokerEngine.js +2 -2
  612. package/src/main/js/sap/ushell/services/MessageBroker.js +2 -2
  613. package/src/main/js/sap/ushell/services/MessageInternal.js +15 -4
  614. package/src/main/js/sap/ushell/services/NavTargetResolution.js +1 -1
  615. package/src/main/js/sap/ushell/services/NavTargetResolutionInternal.js +1 -1
  616. package/src/main/js/sap/ushell/services/Navigation/compatibility.js +2 -2
  617. package/src/main/js/sap/ushell/services/Navigation/utils.js +2 -2
  618. package/src/main/js/sap/ushell/services/Navigation.js +2 -2
  619. package/src/main/js/sap/ushell/services/NavigationDataProvider.js +2 -2
  620. package/src/main/js/sap/ushell/services/Notifications.js +1 -1
  621. package/src/main/js/sap/ushell/services/NotificationsV2.js +1 -1
  622. package/src/main/js/sap/ushell/services/PageBuilding.js +2 -2
  623. package/src/main/js/sap/ushell/services/PagePersistence.js +2 -2
  624. package/src/main/js/sap/ushell/services/PageReferencing.js +2 -2
  625. package/src/main/js/sap/ushell/services/Pages.js +2 -2
  626. package/src/main/js/sap/ushell/services/Personalization.js +32 -83
  627. package/src/main/js/sap/ushell/services/PersonalizationV2/ContextContainer.js +32 -47
  628. package/src/main/js/sap/ushell/services/PersonalizationV2/Operation.js +163 -0
  629. package/src/main/js/sap/ushell/services/PersonalizationV2/PendingOperations.js +210 -0
  630. package/src/main/js/sap/ushell/services/PersonalizationV2/Personalizer.js +1 -1
  631. package/src/main/js/sap/ushell/services/PersonalizationV2/TransientPersonalizer.js +1 -1
  632. package/src/main/js/sap/ushell/services/PersonalizationV2/Variant.js +1 -1
  633. package/src/main/js/sap/ushell/services/PersonalizationV2/VariantSet.js +1 -1
  634. package/src/main/js/sap/ushell/services/PersonalizationV2/VariantSetAdapter.js +1 -1
  635. package/src/main/js/sap/ushell/services/PersonalizationV2/WindowAdapter.js +1 -1
  636. package/src/main/js/sap/ushell/services/PersonalizationV2/WindowAdapterContainer.js +1 -1
  637. package/src/main/js/sap/ushell/services/PersonalizationV2/constants.js +1 -1
  638. package/src/main/js/sap/ushell/services/PersonalizationV2/constants.private.js +1 -1
  639. package/src/main/js/sap/ushell/services/PersonalizationV2/utils.js +2 -2
  640. package/src/main/js/sap/ushell/services/PersonalizationV2.js +22 -101
  641. package/src/main/js/sap/ushell/{appIntegration → services/PluginManager}/PostMessagePluginInterface.js +103 -58
  642. package/src/main/js/sap/ushell/services/PluginManager/SimpleExpression.js +2 -2
  643. package/src/main/js/sap/ushell/services/PluginManager.js +18 -5
  644. package/src/main/js/sap/ushell/services/ReferenceResolver.js +2 -2
  645. package/src/main/js/sap/ushell/services/Search.js +2 -2
  646. package/src/main/js/sap/ushell/services/SearchCEP.js +2 -2
  647. package/src/main/js/sap/ushell/services/SearchableContent.js +2 -2
  648. package/src/main/js/sap/ushell/services/ShellNavigation.js +2 -2
  649. package/src/main/js/sap/ushell/services/ShellNavigationHashChanger.js +30 -3
  650. package/src/main/js/sap/ushell/services/ShellNavigationInternal.js +17 -3
  651. package/src/main/js/sap/ushell/services/SmartNavigation.js +2 -2
  652. package/src/main/js/sap/ushell/services/SpaceContent.js +2 -2
  653. package/src/main/js/sap/ushell/services/SupportTicket.js +1 -1
  654. package/src/main/js/sap/ushell/services/UITracer.js +2 -2
  655. package/src/main/js/sap/ushell/services/URLParsing.js +1 -1
  656. package/src/main/js/sap/ushell/services/URLShortening.js +2 -2
  657. package/src/main/js/sap/ushell/services/URLTemplate.js +2 -2
  658. package/src/main/js/sap/ushell/services/Ui5ComponentHandle.js +1 -1
  659. package/src/main/js/sap/ushell/services/Ui5ComponentLoader.js +2 -2
  660. package/src/main/js/sap/ushell/services/UsageAnalytics.js +1 -1
  661. package/src/main/js/sap/ushell/services/UserDefaultParameterPersistence.js +2 -2
  662. package/src/main/js/sap/ushell/services/UserDefaultParameters.js +2 -2
  663. package/src/main/js/sap/ushell/services/UserInfo.js +2 -2
  664. package/src/main/js/sap/ushell/services/UserRecents/RecentActivity.js +1 -1
  665. package/src/main/js/sap/ushell/services/UserRecents/RecentAppsUsage.js +1 -1
  666. package/src/main/js/sap/ushell/services/UserRecents/RecentsList.js +1 -1
  667. package/src/main/js/sap/ushell/services/UserRecents/UserRecentsBase.js +1 -1
  668. package/src/main/js/sap/ushell/services/UserRecents.js +2 -2
  669. package/src/main/js/sap/ushell/services/VisualizationDataProvider.js +2 -2
  670. package/src/main/js/sap/ushell/services/VisualizationInstantiation.js +2 -2
  671. package/src/main/js/sap/ushell/services/_AppState/AppStatePersistencyMethod.js +1 -1
  672. package/src/main/js/sap/ushell/services/_ContentExtensionAdapterFactory/ContentExtensionAdapterConfig.js +2 -2
  673. package/src/main/js/sap/ushell/services/_ContentExtensionAdapterFactory/FeaturedGroupConfig.js +2 -2
  674. package/src/main/js/sap/ushell/services/_CrossApplicationNavigation/utils.js +2 -2
  675. package/src/main/js/sap/ushell/services/_PageReferencing/PageReferencer.js +2 -2
  676. package/src/main/js/sap/ushell/services/_Personalization/ContextContainer.js +51 -68
  677. package/src/main/js/sap/ushell/services/_Personalization/PersonalizationContainer.js +1 -1
  678. package/src/main/js/sap/ushell/services/_Personalization/PersonalizationContainerVariant.js +1 -1
  679. package/src/main/js/sap/ushell/services/_Personalization/PersonalizationContainerVariantSet.js +1 -1
  680. package/src/main/js/sap/ushell/services/_Personalization/Personalizer.js +1 -1
  681. package/src/main/js/sap/ushell/services/_Personalization/TransientPersonalizer.js +1 -1
  682. package/src/main/js/sap/ushell/services/_Personalization/Variant.js +1 -1
  683. package/src/main/js/sap/ushell/services/_Personalization/VariantSet.js +1 -1
  684. package/src/main/js/sap/ushell/services/_Personalization/VariantSetAdapter.js +1 -1
  685. package/src/main/js/sap/ushell/services/_Personalization/WindowAdapter.js +1 -1
  686. package/src/main/js/sap/ushell/services/_Personalization/WindowAdapterContainer.js +1 -1
  687. package/src/main/js/sap/ushell/services/_Personalization/constants.js +1 -1
  688. package/src/main/js/sap/ushell/services/_Personalization/constants.private.js +1 -1
  689. package/src/main/js/sap/ushell/services/_Personalization/utils.js +13 -10
  690. package/src/main/js/sap/ushell/services/appstate/AppState.js +1 -1
  691. package/src/main/js/sap/ushell/services/appstate/AppStatePersistencyMethod.js +1 -1
  692. package/src/main/js/sap/ushell/services/appstate/AppStatePersistencySettings.js +1 -1
  693. package/src/main/js/sap/ushell/services/appstate/LimitedBuffer.js +1 -1
  694. package/src/main/js/sap/ushell/services/appstate/Sequentializer.js +1 -1
  695. package/src/main/js/sap/ushell/services/appstate/SequentializingAdapter.js +1 -1
  696. package/src/main/js/sap/ushell/services/appstate/WindowAdapter.js +1 -1
  697. package/src/main/js/sap/ushell/services/personalization/VariantSetAdapter.js +1 -1
  698. package/src/main/js/sap/ushell/state/BaseState.js +1 -1
  699. package/src/main/js/sap/ushell/state/BindingHelper.js +1 -1
  700. package/src/main/js/sap/ushell/state/ControlManager.js +1 -1
  701. package/src/main/js/sap/ushell/state/CurrentState.js +1 -1
  702. package/src/main/js/sap/ushell/state/KeepAlive.js +1 -1
  703. package/src/main/js/sap/ushell/state/ShellModel.js +1 -1
  704. package/src/main/js/sap/ushell/state/StateManager/LaunchpadState.js +1 -1
  705. package/src/main/js/sap/ushell/state/StateManager/Operation.js +1 -1
  706. package/src/main/js/sap/ushell/state/StateManager/ShellMode.js +1 -1
  707. package/src/main/js/sap/ushell/state/StateManager.js +4 -1
  708. package/src/main/js/sap/ushell/state/StateRules.js +20 -1
  709. package/src/main/js/sap/ushell/state/StrategyFactory/DefaultStrategy.js +1 -1
  710. package/src/main/js/sap/ushell/state/StrategyFactory/FloatingActionsStrategy.js +1 -1
  711. package/src/main/js/sap/ushell/state/StrategyFactory/FloatingContainerStrategy.js +1 -1
  712. package/src/main/js/sap/ushell/state/StrategyFactory/HeadEndItemsStrategy.js +1 -1
  713. package/src/main/js/sap/ushell/state/StrategyFactory/HeadItemsStrategy.js +1 -1
  714. package/src/main/js/sap/ushell/state/StrategyFactory/SidePaneStrategy.js +1 -1
  715. package/src/main/js/sap/ushell/state/StrategyFactory/SubHeaderStrategy.js +1 -1
  716. package/src/main/js/sap/ushell/state/StrategyFactory/UserActionsStrategy.js +1 -1
  717. package/src/main/js/sap/ushell/state/StrategyFactory.js +1 -1
  718. package/src/main/js/sap/ushell/state/modules/BackNavigation.js +9 -4
  719. package/src/main/js/sap/ushell/state/modules/ContentDensity.js +2 -2
  720. package/src/main/js/sap/ushell/state/modules/Favicon.js +2 -2
  721. package/src/main/js/sap/ushell/state/modules/HeaderLogo.js +2 -2
  722. package/src/main/js/sap/ushell/support/plugins/flpConfig/FlpConfigurationPlugin.js +2 -2
  723. package/src/main/js/sap/ushell/themes/base/ShellLayout.less +8 -0
  724. package/src/main/js/sap/ushell/themes/base/library.source.less +1 -1
  725. package/src/main/js/sap/ushell/themes/sap_belize/library.source.less +1 -1
  726. package/src/main/js/sap/ushell/themes/sap_belize_base/library.source.less +1 -1
  727. package/src/main/js/sap/ushell/themes/sap_belize_hcb/HistoryScreen.less +1 -1
  728. package/src/main/js/sap/ushell/themes/sap_belize_hcb/library.source.less +1 -1
  729. package/src/main/js/sap/ushell/themes/sap_belize_hcw/HistoryScreen.less +1 -1
  730. package/src/main/js/sap/ushell/themes/sap_belize_hcw/library.source.less +1 -1
  731. package/src/main/js/sap/ushell/themes/sap_belize_plus/library.source.less +1 -1
  732. package/src/main/js/sap/ushell/themes/sap_bluecrystal/HistoryScreen.less +1 -1
  733. package/src/main/js/sap/ushell/themes/sap_bluecrystal/library.source.less +1 -1
  734. package/src/main/js/sap/ushell/themes/sap_bluecrystal_base/library.source.less +1 -1
  735. package/src/main/js/sap/ushell/themes/sap_fiori_3/library.source.less +1 -1
  736. package/src/main/js/sap/ushell/themes/sap_fiori_3_dark/library.source.less +1 -1
  737. package/src/main/js/sap/ushell/themes/sap_fiori_3_hcb/library.source.less +1 -1
  738. package/src/main/js/sap/ushell/themes/sap_fiori_3_hcw/library.source.less +1 -1
  739. package/src/main/js/sap/ushell/themes/sap_hcb/HistoryScreen.less +1 -1
  740. package/src/main/js/sap/ushell/themes/sap_hcb/library.source.less +1 -1
  741. package/src/main/js/sap/ushell/themes/sap_horizon/ShellHeader.less +27 -26
  742. package/src/main/js/sap/ushell/themes/sap_horizon/library.source.less +1 -1
  743. package/src/main/js/sap/ushell/themes/sap_horizon_dark/ShellHeader.less +27 -26
  744. package/src/main/js/sap/ushell/themes/sap_horizon_dark/library.source.less +1 -1
  745. package/src/main/js/sap/ushell/themes/sap_horizon_hcb/ShellHeader.less +22 -21
  746. package/src/main/js/sap/ushell/themes/sap_horizon_hcb/library.source.less +1 -1
  747. package/src/main/js/sap/ushell/themes/sap_horizon_hcw/ShellHeader.less +22 -21
  748. package/src/main/js/sap/ushell/themes/sap_horizon_hcw/library.source.less +1 -1
  749. package/src/main/js/sap/ushell/ui/ContentNodeSelector.js +1 -1
  750. package/src/main/js/sap/ushell/ui/ContentNodeSelectorRenderer.js +1 -1
  751. package/src/main/js/sap/ushell/ui/ContentNodeTreeItem.js +1 -1
  752. package/src/main/js/sap/ushell/ui/CustomGroupHeaderListItem.js +1 -1
  753. package/src/main/js/sap/ushell/ui/CustomGroupHeaderListItemRenderer.js +1 -1
  754. package/src/main/js/sap/ushell/ui/QuickAccess.js +1 -1
  755. package/src/main/js/sap/ushell/ui/ShellHeader.js +1 -1
  756. package/src/main/js/sap/ushell/ui/ShellHeaderRenderer.js +1 -1
  757. package/src/main/js/sap/ushell/ui/appfinder/AppBox.js +1 -1
  758. package/src/main/js/sap/ushell/ui/appfinder/AppBoxInternal.js +1 -1
  759. package/src/main/js/sap/ushell/ui/appfinder/AppBoxInternalRenderer.js +1 -1
  760. package/src/main/js/sap/ushell/ui/appfinder/AppBoxRenderer.js +1 -1
  761. package/src/main/js/sap/ushell/ui/appfinder/PinButton.js +1 -1
  762. package/src/main/js/sap/ushell/ui/appfinder/PinButtonRenderer.js +1 -1
  763. package/src/main/js/sap/ushell/ui/bookmark/SaveOnPage.controller.js +1 -1
  764. package/src/main/js/sap/ushell/ui/cards/FrequentActivitiesExtension.js +1 -1
  765. package/src/main/js/sap/ushell/ui/cards/RecentActivitiesExtension.js +2 -2
  766. package/src/main/js/sap/ushell/ui/footerbar/AboutButton.js +1 -1
  767. package/src/main/js/sap/ushell/ui/footerbar/AboutDialog.controller.js +1 -1
  768. package/src/main/js/sap/ushell/ui/footerbar/AddBookmarkButton.js +1 -1
  769. package/src/main/js/sap/ushell/ui/footerbar/ContactSupportButton.js +1 -1
  770. package/src/main/js/sap/ushell/ui/footerbar/ContactSupportDialog.controller.js +1 -1
  771. package/src/main/js/sap/ushell/ui/footerbar/JamDiscussButton.js +1 -1
  772. package/src/main/js/sap/ushell/ui/footerbar/JamShareButton.js +1 -1
  773. package/src/main/js/sap/ushell/ui/footerbar/LogoutButton.js +1 -1
  774. package/src/main/js/sap/ushell/ui/footerbar/SaveAsTile.controller.js +1 -1
  775. package/src/main/js/sap/ushell/ui/footerbar/SaveAsTile.view.js +1 -1
  776. package/src/main/js/sap/ushell/ui/footerbar/SendAsEmailButton.js +1 -1
  777. package/src/main/js/sap/ushell/ui/launchpad/AccessibilityCustomData.js +1 -1
  778. package/src/main/js/sap/ushell/ui/launchpad/ActionItem.js +1 -1
  779. package/src/main/js/sap/ushell/ui/launchpad/AnchorItem.js +1 -1
  780. package/src/main/js/sap/ushell/ui/launchpad/AnchorItemRenderer.js +1 -1
  781. package/src/main/js/sap/ushell/ui/launchpad/AnchorNavigationBar.js +1 -1
  782. package/src/main/js/sap/ushell/ui/launchpad/AnchorNavigationBarRenderer.js +1 -1
  783. package/src/main/js/sap/ushell/ui/launchpad/CatalogEntryContainer.js +1 -1
  784. package/src/main/js/sap/ushell/ui/launchpad/CatalogsContainer.js +1 -1
  785. package/src/main/js/sap/ushell/ui/launchpad/DashboardGroupsContainer.js +1 -1
  786. package/src/main/js/sap/ushell/ui/launchpad/DashboardGroupsContainerRenderer.js +1 -1
  787. package/src/main/js/sap/ushell/ui/launchpad/ExtendedChangeDetection.js +2 -2
  788. package/src/main/js/sap/ushell/ui/launchpad/FailedTileDialog.js +1 -1
  789. package/src/main/js/sap/ushell/ui/launchpad/GroupHeaderActions.js +1 -1
  790. package/src/main/js/sap/ushell/ui/launchpad/GroupListItem.js +1 -1
  791. package/src/main/js/sap/ushell/ui/launchpad/GroupListItemRenderer.js +1 -1
  792. package/src/main/js/sap/ushell/ui/launchpad/LinkTileWrapper.js +1 -1
  793. package/src/main/js/sap/ushell/ui/launchpad/LinkTileWrapperRenderer.js +1 -1
  794. package/src/main/js/sap/ushell/ui/launchpad/LoadingDialog.js +1 -1
  795. package/src/main/js/sap/ushell/ui/launchpad/LoadingDialogRenderer.js +1 -1
  796. package/src/main/js/sap/ushell/ui/launchpad/Page.js +1 -1
  797. package/src/main/js/sap/ushell/ui/launchpad/PageRenderer.js +1 -1
  798. package/src/main/js/sap/ushell/ui/launchpad/PlusTile.js +1 -1
  799. package/src/main/js/sap/ushell/ui/launchpad/PlusTileRenderer.js +1 -1
  800. package/src/main/js/sap/ushell/ui/launchpad/Section.js +2 -2
  801. package/src/main/js/sap/ushell/ui/launchpad/SectionRenderer.js +1 -1
  802. package/src/main/js/sap/ushell/ui/launchpad/Tile.js +1 -1
  803. package/src/main/js/sap/ushell/ui/launchpad/TileContainer.js +1 -1
  804. package/src/main/js/sap/ushell/ui/launchpad/TileContainerRenderer.js +1 -1
  805. package/src/main/js/sap/ushell/ui/launchpad/TileContainerUtils.js +1 -1
  806. package/src/main/js/sap/ushell/ui/launchpad/TileRenderer.js +1 -1
  807. package/src/main/js/sap/ushell/ui/launchpad/TileState.js +1 -1
  808. package/src/main/js/sap/ushell/ui/launchpad/TileStateInternal.js +1 -1
  809. package/src/main/js/sap/ushell/ui/launchpad/TileStateInternalRenderer.js +1 -1
  810. package/src/main/js/sap/ushell/ui/launchpad/TileStateRenderer.js +1 -1
  811. package/src/main/js/sap/ushell/ui/launchpad/ViewPortState.js +1 -1
  812. package/src/main/js/sap/ushell/ui/launchpad/VizInstance.js +1 -1
  813. package/src/main/js/sap/ushell/ui/launchpad/VizInstanceAbap.js +1 -1
  814. package/src/main/js/sap/ushell/ui/launchpad/VizInstanceBase.js +1 -1
  815. package/src/main/js/sap/ushell/ui/launchpad/VizInstanceCdm.js +1 -1
  816. package/src/main/js/sap/ushell/ui/launchpad/VizInstanceLaunchPage.js +1 -1
  817. package/src/main/js/sap/ushell/ui/launchpad/VizInstanceLink.js +1 -1
  818. package/src/main/js/sap/ushell/ui/launchpad/VizInstanceRenderer.js +1 -1
  819. package/src/main/js/sap/ushell/ui/launchpad/section/CompactArea.js +2 -2
  820. package/src/main/js/sap/ushell/ui/launchpad/section/CompactAreaRenderer.js +1 -1
  821. package/src/main/js/sap/ushell/ui/shell/ContentRenderer.js +1 -1
  822. package/src/main/js/sap/ushell/ui/shell/NavigationMiniTile.js +1 -1
  823. package/src/main/js/sap/ushell/ui/shell/OverflowListItem.js +1 -1
  824. package/src/main/js/sap/ushell/ui/shell/RightFloatingContainer.js +1 -1
  825. package/src/main/js/sap/ushell/ui/shell/ShellAppTitle.js +1 -1
  826. package/src/main/js/sap/ushell/ui/shell/ShellFloatingAction.js +1 -1
  827. package/src/main/js/sap/ushell/ui/shell/ShellFloatingActionRenderer.js +1 -1
  828. package/src/main/js/sap/ushell/ui/shell/ShellFloatingActions.js +1 -1
  829. package/src/main/js/sap/ushell/ui/shell/ShellHeadItem.js +1 -1
  830. package/src/main/js/sap/ushell/ui/shell/ShellNavigationMenu.js +1 -1
  831. package/src/main/js/sap/ushell/ui/shell/SidePane.js +1 -1
  832. package/src/main/js/sap/ushell/ui/shell/SubHeader.js +1 -1
  833. package/src/main/js/sap/ushell/ui/shell/SysInfoBar.js +1 -1
  834. package/src/main/js/sap/ushell/ui/shell/SysInfoBarRenderer.js +1 -1
  835. package/src/main/js/sap/ushell/ui/shell/ToolArea.js +1 -1
  836. package/src/main/js/sap/ushell/ui/shell/ToolAreaItem.js +2 -2
  837. package/src/main/js/sap/ushell/ui/tile/DynamicTile.js +1 -1
  838. package/src/main/js/sap/ushell/ui/tile/DynamicTileRenderer.js +1 -1
  839. package/src/main/js/sap/ushell/ui/tile/ImageTile.js +1 -1
  840. package/src/main/js/sap/ushell/ui/tile/ImageTileRenderer.js +1 -1
  841. package/src/main/js/sap/ushell/ui/tile/StaticTile.js +1 -1
  842. package/src/main/js/sap/ushell/ui/tile/StaticTileRenderer.js +1 -1
  843. package/src/main/js/sap/ushell/ui/tile/TileBase.js +1 -1
  844. package/src/main/js/sap/ushell/ui/tile/TileBaseRenderer.js +1 -1
  845. package/src/main/js/sap/ushell/ui/utils.js +2 -2
  846. package/src/main/js/sap/ushell/ui5service/ShellUIService.js +1 -1
  847. package/src/main/js/sap/ushell/ui5service/ShellUIServiceFactory.js +2 -2
  848. package/src/main/js/sap/ushell/ui5service/UserStatus.js +2 -2
  849. package/src/main/js/sap/ushell/utils/AppType.js +1 -1
  850. package/src/main/js/sap/ushell/utils/CallbackQueue.js +1 -1
  851. package/src/main/js/sap/ushell/utils/Deferred.js +1 -1
  852. package/src/main/js/sap/ushell/utils/DynamicTileRequest.js +1 -1
  853. package/src/main/js/sap/ushell/utils/HttpClient.js +1 -1
  854. package/src/main/js/sap/ushell/utils/LaunchpadError.js +1 -1
  855. package/src/main/js/sap/ushell/utils/RestrictedJSONModel.js +1 -1
  856. package/src/main/js/sap/ushell/utils/SmartBusiness.js +1 -1
  857. package/src/main/js/sap/ushell/utils/UriParameters.js +1 -1
  858. package/src/main/js/sap/ushell/utils/UrlParsing.js +1 -1
  859. package/src/main/js/sap/ushell/utils/UrlShortening.js +2 -2
  860. package/src/main/js/sap/ushell/utils/WindowUtils.js +1 -1
  861. package/src/main/js/sap/ushell/utils/chipsUtils.js +1 -1
  862. package/src/main/js/sap/ushell/utils/objectOperations.js +1 -1
  863. package/src/main/js/sap/ushell/utils/tilecard/TileCard.js +1 -1
  864. package/src/main/js/sap/ushell/utils/tilecard/TileCardExtension.js +1 -1
  865. package/src/main/js/sap/ushell/utils/type.js +1 -1
  866. package/src/main/js/sap/ushell/utils/utilsCdm.js +1 -1
  867. package/src/main/js/sap/ushell/utils/workpage/DestinationResolver.js +1 -1
  868. package/src/main/js/sap/ushell/utils/workpage/WorkPageHost.js +2 -2
  869. package/src/main/js/sap/ushell/utils/workpage/WorkPageService.js +2 -2
  870. package/src/main/js/sap/ushell/utils/workpage/WorkPageVizInstantiation.js +2 -2
  871. package/src/main/js/sap/ushell/utils.js +4 -30
  872. package/src/test/js/sap/ushell/bootstrap/sandbox.js +2 -2
  873. package/ui5.yaml +1 -3
  874. package/src/main/js/sap/ushell/renderer/History.js +0 -73
  875. package/src/main/js/sap/ushell/renderers/fiori2/History.js +0 -14
@@ -1,10 +1,9 @@
1
- // Copyright (c) 2009-2025 SAP SE, All Rights Reserved
1
+ // Copyright (c) 2009-2026 SAP SE, All Rights Reserved
2
2
 
3
3
  /**
4
4
  * @fileOverview Shell Controller
5
5
  */
6
6
  sap.ui.define([
7
- "sap/ushell/renderer/History",
8
7
  "sap/base/Log",
9
8
  "sap/base/util/extend",
10
9
  "sap/m/InstanceManager",
@@ -19,6 +18,7 @@ sap.ui.define([
19
18
  "sap/ui/performance/trace/Interaction",
20
19
  "sap/ui/thirdparty/hasher",
21
20
  "sap/ui/thirdparty/jquery",
21
+ "sap/ushell/api/SAPBusinessClient",
22
22
  "sap/ushell/appIntegration/AppLifeCycle",
23
23
  "sap/ushell/appIntegration/PostMessageManager",
24
24
  "sap/ushell/ApplicationType/UrlPostProcessing",
@@ -40,13 +40,12 @@ sap.ui.define([
40
40
  "sap/ushell/state/ShellModel",
41
41
  "sap/ushell/state/StateManager",
42
42
  "sap/ushell/renderers/fiori2/LogonFrameProvider", // restore deprecated globals
43
- "sap/ushell/renderers/fiori2/History", // restore deprecated globals
44
43
  "sap/ushell/renderer/RendererManagedComponents",
45
44
  "sap/ushell/ui5service/ShellUIServiceFactory",
45
+ "sap/ushell/navigation/ColdStart",
46
46
  "sap/ushell/navigation/NavigationState",
47
47
  "sap/ushell/utils/SmartBusiness"
48
48
  ], (
49
- History,
50
49
  Log,
51
50
  extend,
52
51
  InstanceManager,
@@ -61,6 +60,7 @@ sap.ui.define([
61
60
  Interaction,
62
61
  hasher,
63
62
  jQuery,
63
+ SAPBusinessClient,
64
64
  AppLifeCycleAI,
65
65
  PostMessageManager,
66
66
  UrlPostProcessing,
@@ -82,9 +82,9 @@ sap.ui.define([
82
82
  ShellModel,
83
83
  StateManager,
84
84
  DeprecatedLogonFrameProvider, // restore deprecated globals
85
- DeprecatedHistory, // restore deprecated globals
86
85
  RendererManagedComponents,
87
86
  ShellUIServiceFactory,
87
+ ColdStart,
88
88
  NavigationState,
89
89
  SmartBusiness
90
90
  ) => {
@@ -119,7 +119,7 @@ sap.ui.define([
119
119
  /* don't delay these cause they are needed for direct bookmarks */
120
120
 
121
121
  // create global model and add some demo data
122
- let closeAllDialogs = true;
122
+ let bCloseAllDialogsOnNextNavigation = true;
123
123
  let bPreviousPageDirty = false;
124
124
  const oEPCMNavigationMode = {
125
125
  embedded: 0,
@@ -151,6 +151,7 @@ sap.ui.define([
151
151
  */
152
152
  return Controller.extend("sap.ushell.renderer.Shell", /** @lends sap.ushell.renderer.Shell.prototype */ {
153
153
  _aDoables: [],
154
+ _iInitialHistoryLength: window.history.length,
154
155
 
155
156
  addDoable: function (oDoable) {
156
157
  this._aDoables.push(oDoable);
@@ -234,7 +235,7 @@ sap.ui.define([
234
235
  });
235
236
  },
236
237
 
237
- onComponentTargetDisplay: function (oEvent) {
238
+ _onComponentTargetDisplay: function (oEvent) {
238
239
  const oParameters = oEvent.getParameters();
239
240
  const oNavContainer = oParameters.control;
240
241
  const oComponentContainer = oParameters.object;
@@ -251,16 +252,16 @@ sap.ui.define([
251
252
 
252
253
  // TODO We still need to think about implementing a custom router to move the display handler from
253
254
  // this file to the custom router. Maybe use oRouter.attachBypassed?
254
- oRouter.getTarget("home").attachDisplay(this.onComponentTargetDisplay, this);
255
- oRouter.getTarget("appfinder").attachDisplay(this.onComponentTargetDisplay, this);
256
- oRouter.getTarget("contentfinder").attachDisplay(this.onComponentTargetDisplay, this);
257
- oRouter.getTarget("pages").attachDisplay(this.onComponentTargetDisplay, this);
258
- oRouter.getTarget("workpages").attachDisplay(this.onComponentTargetDisplay, this);
259
- oRouter.getTarget("runtimeSwitcher").attachDisplay(this.onComponentTargetDisplay, this);
260
- oRouter.getTarget("wzsearch").attachDisplay(this.onComponentTargetDisplay, this);
255
+ oRouter.getTarget("home").attachDisplay(this._onComponentTargetDisplay, this);
256
+ oRouter.getTarget("appfinder").attachDisplay(this._onComponentTargetDisplay, this);
257
+ oRouter.getTarget("contentfinder").attachDisplay(this._onComponentTargetDisplay, this);
258
+ oRouter.getTarget("pages").attachDisplay(this._onComponentTargetDisplay, this);
259
+ oRouter.getTarget("workpages").attachDisplay(this._onComponentTargetDisplay, this);
260
+ oRouter.getTarget("runtimeSwitcher").attachDisplay(this._onComponentTargetDisplay, this);
261
+ oRouter.getTarget("wzsearch").attachDisplay(this._onComponentTargetDisplay, this);
261
262
 
262
263
  if (Config.last("/core/homeApp/enabled")) {
263
- oRouter.getTarget("homeapp").attachDisplay(this.onComponentTargetDisplay, this);
264
+ oRouter.getTarget("homeapp").attachDisplay(this._onComponentTargetDisplay, this);
264
265
  }
265
266
 
266
267
  /*
@@ -275,7 +276,7 @@ sap.ui.define([
275
276
  oRouter.initialize(true /* tell the router not to parse the current browser hash, and wait for ShellNavigationInternal.init */);
276
277
 
277
278
  this.bEnableHashChange = true;
278
- closeAllDialogs = true;
279
+ bCloseAllDialogsOnNextNavigation = true;
279
280
  const oView = this.getView();
280
281
  const oViewData = oView.getViewData() || {};
281
282
  const mediaQ = window.matchMedia("(min-width: 600px)");
@@ -300,8 +301,8 @@ sap.ui.define([
300
301
  // Bind the translation model to this view
301
302
  oView.setModel(ushellResources.i18nModel, "i18n");
302
303
 
303
- EventBus.getInstance().subscribe("externalSearch", this.externalSearchTriggered, this);
304
- EventBus.getInstance().subscribe("sap.ushell", "appOpened", this.onAppOpened, this);
304
+ EventBus.getInstance().subscribe("externalSearch", this._externalSearchTriggered, this);
305
+ EventBus.getInstance().subscribe("sap.ushell", "appOpened", this._onAppOpened, this);
305
306
  EventBus.getInstance().subscribe("ESHSearchFinished", this._logSearchActivity, this);
306
307
  // handling of configuration should be done before the code block below otherwise the doHashChange is
307
308
  // triggered before the personalization flag is disabled (URL may contain hash value which invokes navigation)
@@ -311,7 +312,6 @@ sap.ui.define([
311
312
  this._registerAndCreateEventHubDoables();
312
313
  ShellUIServiceFactory.attachBackNavigationChanged(this._onBackNavigationChanged, this);
313
314
 
314
- this.history = History;
315
315
  this.oNavContainer = Element.getElementById("viewPortContainer");
316
316
  AppLifeCycleAI.init(this.oNavContainer, oViewConfig.disableHomeAppCache);
317
317
 
@@ -418,7 +418,7 @@ sap.ui.define([
418
418
 
419
419
  this.oShellNavigationInternal.registerNavigationFilter(this._disableSourceAppRouter.bind(this));
420
420
 
421
- this.oShellNavigationInternal.registerNavigationFilter(this.handleDataLoss.bind(this));
421
+ this.oShellNavigationInternal.registerNavigationFilter(this._handleDataLoss.bind(this));
422
422
  this.oShellNavigationInternal.registerNavigationFilter(this._unblockUI.bind(this));
423
423
  this.oShellNavigationInternal.registerNavigationFilter(fnHandleSmartBusiness);
424
424
 
@@ -569,7 +569,7 @@ sap.ui.define([
569
569
  this.addDoable(oDoable);
570
570
  });
571
571
 
572
- this.addDoable(EventHub.on("toggleContentDensity").do(this.toggleContentDensity.bind(this)));
572
+ this.addDoable(EventHub.on("toggleContentDensity").do(this._toggleContentDensity.bind(this)));
573
573
  },
574
574
 
575
575
  /*
@@ -594,7 +594,7 @@ sap.ui.define([
594
594
  }
595
595
  },
596
596
 
597
- toggleContentDensity: function (oData) {
597
+ _toggleContentDensity: function (oData) {
598
598
  const bIsCompact = oData.contentDensity === "compact";
599
599
 
600
600
  return PostMessageManager.sendRequestToAllApplications(
@@ -651,7 +651,7 @@ sap.ui.define([
651
651
  let oParsedShellHash = UrlParsing.parseShellHash(sTargetIntent);
652
652
 
653
653
  try {
654
- const Navigation = await Container.getServiceAsync("Navigation");
654
+ const Navigation = await Container.getServiceAsync("ShellNavigationInternal");
655
655
  oParsedShellHash = await SmartBusiness.resolveEvaluationId(oParsedShellHash);
656
656
 
657
657
  const oTarget = {
@@ -661,11 +661,11 @@ sap.ui.define([
661
661
  contextRaw: oParsedShellHash.contextRaw
662
662
  },
663
663
  params: oParsedShellHash.params,
664
- appSpecificRoute: oParsedShellHash.appSpecificRoute,
665
- writeHistory: false
664
+ appSpecificRoute: oParsedShellHash.appSpecificRoute
666
665
  };
667
666
 
668
- Navigation.navigate(oTarget);
667
+ // navigation filters with a custom flow need to replace the hash, but without updating UI5 history.
668
+ return Navigation.setCustomNavigationFilterHash(oTarget);
669
669
  } catch (oError) {
670
670
  this.bSkipNextDataLossCheck = false;
671
671
 
@@ -676,28 +676,27 @@ sap.ui.define([
676
676
  }
677
677
 
678
678
  const sEvaluationId = oParsedShellHash.params["sap-ssb-eval-id"] && oParsedShellHash.params["sap-ssb-eval-id"][0];
679
- const sLogMessage = `Failed to execute Smart Business navigation for evaluation ID ${sEvaluationId}`;
680
679
 
681
680
  // As this error handling is not part of the normal navigation flow's error handling
682
681
  // this has to be triggered explicitly.
683
682
  NavigationState.endNavigation();
684
683
 
685
684
  // If the previous page was dirty the dirty state handler must not interfere with the back navigation
686
- const bEnableHashChange = !bPreviousPageDirty;
685
+ const bEnableHashChangeOnBack = !bPreviousPageDirty;
687
686
 
688
- this.hashChangeFailure(
689
- this.history.getHistoryLength(),
690
- {
691
- title: ushellResources.i18n.getText("error"),
692
- message: ushellResources.i18n.getText("failed_to_open_app_missing_configuration_or_role_assignment"),
693
- technicalMessage: sLogMessage
694
- },
695
- {
687
+ Log.error(`Failed to execute Smart Business navigation for evaluation ID ${sEvaluationId}`, oError, "sap.ushell.renderer.Shell.controller");
688
+
689
+ await this._showErrorMessage({
690
+ message: ushellResources.i18n.getText("failed_to_open_app_missing_configuration_or_role_assignment"),
691
+ details: {
696
692
  info: ushellResources.i18n.getText("cannot_resolve_navigation_target_details", [sTargetIntent]),
697
- technicalMessage: oError
698
- },
699
- "sap.ushell.renderer.Shell.controller",
700
- bEnableHashChange
693
+ technicalMessage: `${oError.message}\n${oError.stack}`
694
+ }
695
+ });
696
+
697
+ this._doErrorNavigation(
698
+ bEnableHashChangeOnBack,
699
+ true // bIgnoreUi5Direction
701
700
  );
702
701
  }
703
702
  })();
@@ -827,7 +826,7 @@ sap.ui.define([
827
826
  },
828
827
 
829
828
  onExit: function () {
830
- closeAllDialogs = true;
829
+ bCloseAllDialogsOnNextNavigation = true;
831
830
 
832
831
  this._aDoables.forEach((oDoable) => {
833
832
  oDoable.off();
@@ -846,9 +845,9 @@ sap.ui.define([
846
845
  });
847
846
  this._aDanglingBindings = [];
848
847
 
849
- EventBus.getInstance().unsubscribe("externalSearch", this.externalSearchTriggered, this);
848
+ EventBus.getInstance().unsubscribe("externalSearch", this._externalSearchTriggered, this);
850
849
  EventBus.getInstance().unsubscribe("ESHSearchFinished", this._logSearchActivity, this);
851
- EventBus.getInstance().unsubscribe("sap.ushell", "appOpened", this.onAppOpened, this);
850
+ EventBus.getInstance().unsubscribe("sap.ushell", "appOpened", this._onAppOpened, this);
852
851
 
853
852
  // Some qUnits destroy the shell very early, check if oShellNavigationInternal exists
854
853
  if (this.oShellNavigationInternal && this.oShellNavigationInternal.hashChanger) {
@@ -925,7 +924,7 @@ sap.ui.define([
925
924
  * @returns {string|object} A navigation filter status object or string.
926
925
  * @private
927
926
  */
928
- handleDataLoss: function (targetIntent, currentIntent) {
927
+ _handleDataLoss: function (targetIntent, currentIntent) {
929
928
  /**
930
929
  * This should be used if a different navigation filter does a custom navigation after the data loss check,
931
930
  * to prevent a second data loss popup.
@@ -1008,7 +1007,7 @@ sap.ui.define([
1008
1007
  const bIsDirty = aResults[2];
1009
1008
 
1010
1009
  // Update the internal dirtyFlag to match the current dirtyFlag
1011
- // This is needed in case of a hashChangeFailure. When we navigate to a broken app the
1010
+ // This is needed in case of a _hashChangeFailure. When we navigate to a broken app the
1012
1011
  // controller does not ask for the dirtyState therefore we need to be able to restore it
1013
1012
  bPreviousPageDirty = bIsDirty;
1014
1013
 
@@ -1319,16 +1318,19 @@ sap.ui.define([
1319
1318
 
1320
1319
  // todo [FLPCOREANDUX-10024] where does this oParseError come from?
1321
1320
  if (oParseError) {
1322
- Log.error(`Error when parsing the hash: '${sFullShellHash}'`, oParseError);
1323
- this.hashChangeFailure(
1324
- this.history.getHistoryLength(),
1325
- oParseError.message,
1326
- null,
1327
- "sap.ushell.renderer.Shell.controller",
1321
+ Log.error(`Error when parsing the hash: '${sFullShellHash}'`, oParseError, "sap.ushell.renderer.Shell.controller");
1322
+
1323
+ this._hashChangeFailure(
1324
+ {
1325
+ technicalMessage: oParseError.message
1326
+ },
1328
1327
  false
1329
1328
  )
1330
1329
  .then(oDeferred.resolve.bind(oDeferred))
1331
- .catch(oDeferred.reject.bind(oDeferred));
1330
+ .catch(oDeferred.reject.bind(oDeferred))
1331
+ .finally(() => {
1332
+ this.bErrorOnLastNavigation = true;
1333
+ });
1332
1334
  NavigationState.endNavigation();
1333
1335
  return oDeferred.promise();
1334
1336
  }
@@ -1336,8 +1338,12 @@ sap.ui.define([
1336
1338
  const fnResolveInteraction = this._notifyAsyncStep();
1337
1339
 
1338
1340
  this._doHashChange(oParsedHash, oOldParsedHash)
1341
+ .then(() => {
1342
+ this.bErrorOnLastNavigation = false;
1343
+ })
1339
1344
  .catch(() => {
1340
1345
  EventHub.emit("doHashChangeError", Date.now());
1346
+ this.bErrorOnLastNavigation = true;
1341
1347
  })
1342
1348
  .finally(() => {
1343
1349
  Log.debug(`${sLogFesrPrefix} Interaction End`, "doHashChange", sModuleName);
@@ -1351,20 +1357,7 @@ sap.ui.define([
1351
1357
  },
1352
1358
 
1353
1359
  _doHashChange: async function (oParsedHash, oOldParsedHash) {
1354
- // todo: [FLPCOREANDUX-10024] simplify Renderer History
1355
- // save current history length to handle errors (in case)
1356
- const iOriginalHistoryLength = this.history.getHistoryLength();
1357
-
1358
- // track hash change
1359
- const sShellHashWithoutAppRoute = UrlParsing.constructShellHash({
1360
- ...oParsedHash,
1361
- appSpecificRoute: undefined
1362
- }, true);
1363
- const sOldShellHashWithoutAppRoute = UrlParsing.constructShellHash({
1364
- ...oOldParsedHash,
1365
- appSpecificRoute: undefined
1366
- }, true);
1367
- this.history.hashChange(sShellHashWithoutAppRoute, sOldShellHashWithoutAppRoute);
1360
+ ColdStart.trackNavigation();
1368
1361
 
1369
1362
  // we save the current-application before resolving the next navigation's fragment,
1370
1363
  // as in cases of navigation in a new window we need to set it back for the app-configuration to be consistent
@@ -1387,13 +1380,13 @@ sap.ui.define([
1387
1380
  * If cold start happened (history has only one entry), we go to the shell home.
1388
1381
  */
1389
1382
  if (oResolvedHashFragment.navigationMode === null) {
1390
- if (ushellUtils.isColdStart()) {
1383
+ if (ColdStart.isColdStart()) {
1391
1384
  hasher.setHash("");
1392
1385
  return;
1393
1386
  }
1394
1387
 
1395
1388
  this.bEnableHashChange = false;
1396
- this.history.pop();
1389
+ ColdStart.untrackNavigation();
1397
1390
  this._windowHistoryBack(1);
1398
1391
  return;
1399
1392
  }
@@ -1406,7 +1399,7 @@ sap.ui.define([
1406
1399
 
1407
1400
  const bOpenedViaNWBC = await this._openAppViaNWBC(oResolvedHashFragment, oOldResolvedHashFragment);
1408
1401
  if (bOpenedViaNWBC === true) {
1409
- this.logOpenAppAction(oResolvedHashFragment, oParsedHash).catch(() => {
1402
+ this._logOpenAppAction(oResolvedHashFragment, oParsedHash).catch(() => {
1410
1403
  Log.info("NWBC application was not logged.", undefined, "sap.ushell.renderer.Shell.controller");
1411
1404
  });
1412
1405
 
@@ -1416,7 +1409,7 @@ sap.ui.define([
1416
1409
 
1417
1410
  if (oResolvedHashFragment.navigationMode === NavigationMode.newWindow) {
1418
1411
  // add the app to application usage log
1419
- this.logOpenAppAction(oResolvedHashFragment, oParsedHash).catch(() => {
1412
+ this._logOpenAppAction(oResolvedHashFragment, oParsedHash).catch(() => {
1420
1413
  Log.info("Application in new window was not logged.", undefined, "sap.ushell.renderer.Shell.controller");
1421
1414
  });
1422
1415
  await this._openAppExplace(oResolvedHashFragment, oOldResolvedHashFragment);
@@ -1439,62 +1432,53 @@ sap.ui.define([
1439
1432
  await this._openAppInplace(oParsedHash, oResolvedHashFragment, oOldParsedHash, oOldResolvedHashFragment);
1440
1433
  } catch (oError) {
1441
1434
  const sShellHash = UrlParsing.constructShellHash(oParsedHash, true);
1442
- Log.error(`Application initialization for intent "${sShellHash}" failed.`, oError);
1435
+ Log.error(`Application initialization for intent "${sShellHash}" failed.`, oError, "sap.ushell.renderer.Shell.controller");
1443
1436
 
1444
1437
  // assumption is that the resolvedHashFragment already contains the componentHandle
1445
1438
  const oMetadata = AppConfiguration.getMetadata(oResolvedHashFragment, oParsedHash);
1446
1439
  this.oShellNavigationInternal.setIsInitialNavigation(bPreviousIsInitialNavigation);
1447
- await this.hashChangeFailure(
1448
- iOriginalHistoryLength,
1449
- oError.name,
1450
- oError.message,
1451
- oMetadata ? oMetadata.title : "",
1440
+
1441
+ await this._hashChangeFailure(
1442
+ {
1443
+ details: {
1444
+ appTitle: oMetadata ? oMetadata.title : "",
1445
+ technicalMessage: `${oError.message}\n${oError.stack}`
1446
+ }
1447
+ },
1452
1448
  false
1453
1449
  );
1454
1450
  }
1455
1451
  } catch (oError) {
1456
1452
  const sShellHash = UrlParsing.constructShellHash(oParsedHash, true);
1457
- Log.error("Failed to open application", oError, "sap.ushell.renderer.Shell.controller");
1458
-
1459
- const sErrorReason = ushellResources.i18n.getText("cannot_load_ui5_component_details", [sShellHash]);
1460
- const sErrorReasonEnglish = `Failed to load UI5 component for navigation intent "${sShellHash}"`;
1453
+ Log.error(`Failed to load UI5 component for navigation intent "${sShellHash}"`, oError, "sap.ushell.renderer.Shell.controller");
1461
1454
 
1462
1455
  AppConfiguration.setCurrentApplication(oOldResolvedHashFragment);
1463
- await this.hashChangeFailure(
1464
- iOriginalHistoryLength,
1456
+
1457
+ await this._hashChangeFailure(
1465
1458
  {
1466
- title: ushellResources.i18n.getText("error"),
1467
1459
  message: ushellResources.i18n.getText("failed_to_open_ui5_component"),
1468
- technicalMessage: sErrorReasonEnglish
1469
- },
1470
- {
1471
- info: sErrorReason,
1472
- technicalMessage: `${oError.message}\n${oError.stack}`
1460
+ details: {
1461
+ info: ushellResources.i18n.getText("cannot_load_ui5_component_details", [sShellHash]),
1462
+ technicalMessage: `${oError.message}\n${oError.stack}`
1463
+ }
1473
1464
  },
1474
- "sap.ushell.renderer.Shell.controller",
1475
1465
  false
1476
1466
  );
1477
1467
  }
1478
1468
  } catch (oError) {
1479
1469
  const sShellHash = UrlParsing.constructShellHash(oParsedHash, true);
1480
- Log.error("Hash change handling failed. Could not open app.", oError, "sap.ushell.renderer.Shell.controller");
1481
- const sErrorReason = ushellResources.i18n.getText("cannot_resolve_navigation_target_details", [sShellHash]);
1482
1470
  // eslint-disable-next-line max-len
1483
- const sErrorReasonEnglish = `Failed to resolve navigation target "${sShellHash}". This is most likely caused by an incorrect SAP Fiori launchpad content configuration or by missing role assignment.`;
1471
+ Log.error(`Failed to resolve navigation target "${sShellHash}". This is most likely caused by an incorrect SAP Fiori launchpad content configuration or by missing role assignment.`, oError, "sap.ushell.renderer.Shell.controller");
1484
1472
 
1485
- await this.hashChangeFailure(
1486
- iOriginalHistoryLength,
1473
+ await this._hashChangeFailure(
1487
1474
  {
1488
- title: ushellResources.i18n.getText("error"),
1489
1475
  message: ushellResources.i18n.getText("failed_to_open_app_missing_configuration_or_role_assignment"),
1490
- technicalMessage: sErrorReasonEnglish
1491
- },
1492
- {
1493
- info: sErrorReason,
1494
- fixedShellHash: sShellHash,
1495
- technicalMessage: oError.message
1476
+ details: {
1477
+ info: ushellResources.i18n.getText("cannot_resolve_navigation_target_details", [sShellHash]),
1478
+ fixedShellHash: sShellHash,
1479
+ technicalMessage: oError.message
1480
+ }
1496
1481
  },
1497
- "sap.ushell.renderer.Shell.controller",
1498
1482
  false
1499
1483
  );
1500
1484
 
@@ -1541,7 +1525,7 @@ sap.ui.define([
1541
1525
  // Exception: in WorkZone's mobile client, when external nav happens: Keep calm and carry on.
1542
1526
  if (!oNewWin && !this._checkWindowLocationSearch("workzone-mobile-app=true")) {
1543
1527
  const msg = ushellResources.i18n.getText("fail_to_start_app_popup_blocker", [window.location.hostname]);
1544
- this.delayedMessageError(msg);
1528
+ this._delayedMessageError(msg);
1545
1529
  }
1546
1530
 
1547
1531
  AppLifeCycleAI.publishAppOpenedEvent(oResolvedHashFragment);
@@ -1549,13 +1533,24 @@ sap.ui.define([
1549
1533
  this._restorePreviousHashAfterOpenNewWindow(oResolvedHashFragment, oOldResolvedHashFragment);
1550
1534
  },
1551
1535
 
1536
+ _delayedMessageError: async function (sMsg) {
1537
+ try {
1538
+ await ushellUtils.awaitTimeout(0);
1539
+
1540
+ const MessageInternal = await Container.getServiceAsync("MessageInternal");
1541
+ MessageInternal.error(sMsg);
1542
+ } catch {
1543
+ // fail silently
1544
+ }
1545
+ },
1546
+
1552
1547
  _closeAllDialogs: function () {
1553
- if (InstanceManager && closeAllDialogs) {
1548
+ if (InstanceManager && bCloseAllDialogsOnNextNavigation) {
1554
1549
  InstanceManager.closeAllDialogs();
1555
1550
  InstanceManager.closeAllPopovers();
1556
1551
  }
1557
1552
 
1558
- closeAllDialogs = true;
1553
+ bCloseAllDialogsOnNextNavigation = true;
1559
1554
  },
1560
1555
 
1561
1556
  /**
@@ -1649,7 +1644,7 @@ sap.ui.define([
1649
1644
 
1650
1645
  if (sNavigationMode === NavigationMode.newWindowThenEmbedded) {
1651
1646
  // Implement newWindowThenEmbedded based on current state.
1652
- if (ushellUtils.isColdStart() || Ui5History.getInstance().getDirection() === Ui5HistoryDirection.Backwards) {
1647
+ if (ColdStart.isColdStart() || Ui5History.getInstance().getDirection() === Ui5HistoryDirection.Backwards) {
1653
1648
  /*
1654
1649
  * cold start
1655
1650
  * -> always open in place because the new window was opened by the user
@@ -1671,7 +1666,7 @@ sap.ui.define([
1671
1666
  return;
1672
1667
  }
1673
1668
 
1674
- if (sNavigationMode === NavigationMode.newWindow && ushellUtils.isColdStart()) {
1669
+ if (sNavigationMode === NavigationMode.newWindow && ColdStart.isColdStart()) {
1675
1670
  // Workaround for URLs that start an FLP app which needs the shell.
1676
1671
  if (this._hasAppCapabilitiesNavigationMode(oResolvedHashFragment)
1677
1672
  && oResolvedHashFragment.appCapabilities.navigationMode === NavigationMode.embedded) {
@@ -1728,11 +1723,10 @@ sap.ui.define([
1728
1723
  if (sEffectiveNavigationMode !== NavigationMode.embedded) {
1729
1724
  // the navigation mode doesn't match any valid one.
1730
1725
  // In this case an error message is logged and previous hash is fetched
1731
- return this.hashChangeFailure(
1732
- this.history.getHistoryLength(),
1733
- `Navigation mode '${sEffectiveNavigationMode}' was not recognized`,
1734
- null,
1735
- "sap.ushell.renderer.Shell.controller",
1726
+ return this._hashChangeFailure(
1727
+ {
1728
+ details: `Navigation mode '${sEffectiveNavigationMode}' was not recognized`
1729
+ },
1736
1730
  false
1737
1731
  );
1738
1732
  }
@@ -1750,9 +1744,9 @@ sap.ui.define([
1750
1744
  * We need to have this logic, because embedded applications do not
1751
1745
  * check the coldstart condition.
1752
1746
  */
1753
- oResolvedHashFragment.targetNavigationMode = ushellUtils.isColdStart() ? "explace" : "inplace";
1747
+ oResolvedHashFragment.targetNavigationMode = ColdStart.isColdStart() ? "explace" : "inplace";
1754
1748
 
1755
- if (!ushellUtils.isColdStart() && !this._bWasHistoryEntryReplaced) {
1749
+ if (!ColdStart.isColdStart() && !this._bWasHistoryEntryReplaced) {
1756
1750
  this.oShellNavigationInternal.setIsInitialNavigation(false);
1757
1751
  }
1758
1752
 
@@ -1771,10 +1765,16 @@ sap.ui.define([
1771
1765
  if (typeof sNavigationRedirectHash === "string") {
1772
1766
  Log.warning(`Performing navigation redirect to hash "${sNavigationRedirectHash}"`);
1773
1767
 
1774
- this.history.pop();
1768
+ ColdStart.untrackNavigation();
1775
1769
 
1776
1770
  const ShellNavigationInternal = await Container.getServiceAsync("ShellNavigationInternal");
1777
- return ShellNavigationInternal.toExternal({ target: { shellHash: sNavigationRedirectHash } }, undefined, false);
1771
+ return ShellNavigationInternal.toExternal(
1772
+ {
1773
+ target: { shellHash: sNavigationRedirectHash }
1774
+ },
1775
+ undefined, // oComponent
1776
+ false // bWriteHistory
1777
+ );
1778
1778
  }
1779
1779
 
1780
1780
  // this only targets the overwritten rootIntent (e.g. workzone advanced)
@@ -1816,34 +1816,13 @@ sap.ui.define([
1816
1816
  iMode = iEPCMNavigationMode || oEPCMNavigationMode[NavigationMode.embedded];
1817
1817
  }
1818
1818
 
1819
- const sUrlWithSapUser = await this._appendUserIdToUrl("sap-user", oResolvedHashFragment.url);
1820
- const sUrlWithSapUserAndShellParam = await ushellUtils.appendSapShellParam(sUrlWithSapUser);
1821
-
1822
- const sAppType = oResolvedHashFragment.applicationType;
1823
- const sFrameworkId = oResolvedHashFragment?.appCapabilities?.appFrameworkId;
1824
-
1825
1819
  let oPostBodyParams;
1826
1820
  try {
1827
- if (ushellUtils.isSAPLegacyApplicationType(sAppType, sFrameworkId)) {
1828
- const oFLPParams = Object.create(null);
1829
- const Navigation = await Container.getServiceAsync("Navigation");
1830
- const oAppStatesInfo = ushellUtils.getParamKeys(sUrlWithSapUserAndShellParam);
1831
-
1832
- if (oAppStatesInfo.aAppStateNamesArray.length > 0) {
1833
- const aDataArray = await Navigation.getAppStateData(oAppStatesInfo.aAppStateKeysArray);
1834
- oAppStatesInfo.aAppStateNamesArray.forEach((item, index) => {
1835
- if (aDataArray[index]) {
1836
- oFLPParams[item] = aDataArray[index];
1837
- }
1838
- });
1839
- }
1840
-
1841
- oFLPParams["sap-flp-url"] = Container.getFLPUrl(true);
1842
- oFLPParams["system-alias"] = oResolvedHashFragment.systemAlias;
1843
-
1821
+ const oFlpParams = await SAPBusinessClient.calculateFlpParams(oResolvedHashFragment);
1822
+ if (oFlpParams) {
1844
1823
  oPostBodyParams = [{
1845
1824
  name: "sap-flp-params",
1846
- value: JSON.stringify(oFLPParams)
1825
+ value: JSON.stringify(oFlpParams)
1847
1826
  }];
1848
1827
  }
1849
1828
  } catch {
@@ -1851,6 +1830,9 @@ sap.ui.define([
1851
1830
  }
1852
1831
 
1853
1832
  try {
1833
+ const sUrlWithSapUser = await this._appendUserIdToUrl("sap-user", oResolvedHashFragment.url);
1834
+ const sUrlWithSapUserAndShellParam = await ushellUtils.appendSapShellParam(sUrlWithSapUser);
1835
+
1854
1836
  AppLifeCycleAI.publishAppOpeningEvent(oResolvedHashFragment);
1855
1837
 
1856
1838
  if (!oEPCM.doNavigate(sUrlWithSapUserAndShellParam, iMode, undefined, undefined, undefined, undefined, undefined, oPostBodyParams)) {
@@ -1875,9 +1857,17 @@ sap.ui.define([
1875
1857
 
1876
1858
  return true;
1877
1859
  } catch (oError) {
1878
- Log.error("Application initialization failed due to an Exception:", oError);
1860
+ Log.error("Application initialization failed due to an Exception:", oError, "sap.ushell.renderer.Shell.controller");
1879
1861
 
1880
- await this.hashChangeFailure(this.history.getHistoryLength(), oError.name, oError.message, oResolvedHashFragment.text, false);
1862
+ await this._hashChangeFailure(
1863
+ {
1864
+ details: {
1865
+ targetMappingTitle: oResolvedHashFragment.text || "",
1866
+ technicalMessage: `${oError.message}\n${oError.stack}`
1867
+ }
1868
+ },
1869
+ false
1870
+ );
1881
1871
  return false;
1882
1872
  }
1883
1873
  },
@@ -1896,10 +1886,13 @@ sap.ui.define([
1896
1886
  * @private
1897
1887
  */
1898
1888
  _restoreAfterNwbcNavigation: async function (oResolvedHashFragment, oOldResolvedHashFragment) {
1899
- if (this.history.getHistoryLength() === 1 && !this._oAppLifeCycleService.getCurrentApplication()) {
1900
- // Deep link case
1889
+ // Deep link case
1890
+ if (ColdStart.isColdStart() && !this._oAppLifeCycleService.getCurrentApplication()) {
1901
1891
  const Navigation = await Container.getServiceAsync("Navigation");
1902
- Navigation.navigate({ target: { shellHash: "#" }, writeHistory: false });
1892
+ Navigation.navigate({
1893
+ target: { shellHash: "#" },
1894
+ writeHistory: false
1895
+ });
1903
1896
  return;
1904
1897
  }
1905
1898
 
@@ -1931,7 +1924,8 @@ sap.ui.define([
1931
1924
  * @param {object} oOldResolvedHashFragment The old resolved hash fragment.
1932
1925
  */
1933
1926
  _restorePreviousHashAfterOpenNewWindow: function (oResolvedHashFragment, oOldResolvedHashFragment) {
1934
- this.history.pop();
1927
+ ColdStart.untrackNavigation();
1928
+
1935
1929
  const oVarInstance = oResolvedHashFragment.componentHandle && oResolvedHashFragment.componentHandle.getInstance
1936
1930
  && oResolvedHashFragment.componentHandle.getInstance({});
1937
1931
  if (oVarInstance) {
@@ -1949,61 +1943,92 @@ sap.ui.define([
1949
1943
  /**
1950
1944
  * Shows an error message and navigates to the previous page.
1951
1945
  *
1952
- * @param {int} iHistoryLength the length of the history <b>before</b> the navigation occurred.
1953
- * @param {string|object} vMessage the error message
1954
- * @param {string|object} vDetails the detailed error message
1955
- * @param {string} sComponent the component that generated the error message
1956
- * @param {boolean} bEnableHashChange enable hash change
1946
+ * @param {object} oMessage the error message
1947
+ * @param {boolean} bEnableHashChangeOnBack enable hash change
1957
1948
  * @returns {Promise} A promise resolving when the error message is shown.
1949
+ *
1950
+ * @private
1958
1951
  */
1959
- hashChangeFailure: async function (iHistoryLength, vMessage, vDetails, sComponent, bEnableHashChange) {
1952
+ _hashChangeFailure: async function (oMessage, bEnableHashChangeOnBack) {
1960
1953
  StateManager.discardStalledChanges();
1961
1954
 
1962
- if (ushellUtils.isPlainObject(vMessage)) {
1963
- this.reportError(vMessage.technicalMessage, vDetails.technicalMessage, sComponent);
1955
+ await this._showErrorMessage(oMessage);
1956
+ this._doErrorNavigation(bEnableHashChangeOnBack);
1957
+
1958
+ // TODO: [FLPCOREANDUX-10024] fallback, ideally this should be in the error handler
1959
+ this.bErrorOnLastNavigation = true;
1960
+ },
1961
+
1962
+ /**
1963
+ * Displays an error message using the MessageInternal service.
1964
+ * @param {object} oMessage the error message
1965
+ *
1966
+ * @since 1.144.0
1967
+ * @private
1968
+ */
1969
+ _showErrorMessage: async function (oMessage) {
1970
+ const sMessage = oMessage.message ?? ushellResources.i18n.getText("fail_to_start_app_try_later");
1971
+ const sMessageTitle = oMessage.title ?? ushellResources.i18n.getText("error");
1972
+ const sMessageDetails = oMessage.details ?? "";
1973
+
1974
+ try {
1964
1975
  const MessageInternal = await Container.getServiceAsync("MessageInternal");
1965
1976
  MessageInternal.show(
1966
1977
  MessageInternal.Type.ERROR,
1967
- vMessage.message,
1978
+ sMessage,
1968
1979
  {
1969
- title: vMessage.title,
1970
- details: vDetails
1980
+ title: sMessageTitle,
1981
+ details: sMessageDetails,
1982
+ callback () {
1983
+ bCloseAllDialogsOnNextNavigation = true;
1984
+ }
1971
1985
  }
1972
1986
  );
1973
- } else {
1974
- this.reportError(vMessage, vDetails, sComponent);
1975
- // use timeout to avoid "MessageService not initialized.: error
1976
- this.delayedMessageError(ushellResources.i18n.getText("fail_to_start_app_try_later"));
1987
+ bCloseAllDialogsOnNextNavigation = false;
1988
+ } catch (oError) {
1989
+ Log.error("Failed to show error message via Message service.", oError, "sap.ushell.renderer.Shell.controller");
1977
1990
  }
1978
- closeAllDialogs = false;
1991
+ },
1979
1992
 
1980
- this._resumeAppRouterIgnoringCurrentHash();
1981
- if (iHistoryLength === 0) {
1982
- // if started with an illegal shell hash (deep link), we just remove the hash
1983
- hasher.setHash("");
1984
- } else if (new URLSearchParams(window.location.search).get("bFallbackToShellHome")) {
1985
- // The previous url is not valid navigation
1993
+ /**
1994
+ * Does the error navigation logic.
1995
+ * - For failures during forward navigation, it goes back to the previous app if there is any.
1996
+ * - Otherwise, it navigates to home.
1997
+ * - For failures during backward navigation, it navigates to home instead of going back.
1998
+ * @param {boolean} bEnableHashChangeOnBack Whether to enable hash change on back navigation
1999
+ * In case the app was already destroyed we need to enable hash change to allow proper navigation.
2000
+ * @param {boolean} [bIgnoreUi5Direction=false] Whether to ignore the UI5 navigation direction and assume always forward navigation
2001
+ * For some scenarios like the navigation filters the directions might be already clear during the filter handling.
2002
+ * However, since the navigation is not settled the UI5 history direction might not be correct at this point.
2003
+ *
2004
+ * @since 1.144.0
2005
+ * @private
2006
+ */
2007
+ _doErrorNavigation: function (bEnableHashChangeOnBack, bIgnoreUi5Direction) {
2008
+ let bIsForwardNavigation = true;
2009
+ if (!bIgnoreUi5Direction) {
2010
+ // Unknown direction is NOT treated as forward navigation
2011
+ bIsForwardNavigation = [Ui5HistoryDirection.Forwards, Ui5HistoryDirection.NewEntry].includes(Ui5History.getInstance().getDirection());
2012
+ }
2013
+ const bHasPreviousHash = typeof Ui5History.getInstance().getPreviousHash() === "string";
2014
+ // for any failing backward navigation we navigate to home instead of trying to go back
2015
+ const bHasHistoryBackTarget = bHasPreviousHash && bIsForwardNavigation;
2016
+ // In some cases of navigation error in WebIDE, navigation done by window.back (called by changeHashFailure) function entered the application to loop.
2017
+ const bWorkaroundForWebIDE = new URLSearchParams(window.location.search).get("bFallbackToShellHome");
2018
+
2019
+ if (
2020
+ this.bErrorOnLastNavigation
2021
+ || !bHasHistoryBackTarget
2022
+ || bWorkaroundForWebIDE
2023
+ ) {
2024
+ this.bEnableHashChange = true;
1986
2025
  hasher.setHash("");
1987
2026
  } else {
1988
- // navigate to the previous URL since in this state the hash that has failed to load is in the URL.
1989
- this.bEnableHashChange = bEnableHashChange;
2027
+ this.bEnableHashChange = bEnableHashChangeOnBack;
2028
+ // navigate to previous app and restore state of app
1990
2029
  Container.setDirtyFlag(bPreviousPageDirty);
1991
2030
  this._windowHistoryBack(1);
1992
- }
1993
- },
1994
-
1995
- reportError: function (sMessage, sDetails, sComponent) {
1996
- Log.error(sMessage, sDetails, sComponent);
1997
- },
1998
-
1999
- delayedMessageError: async function (sMsg) {
2000
- try {
2001
- await ushellUtils.awaitTimeout(0);
2002
-
2003
- const MessageInternal = await Container.getServiceAsync("MessageInternal");
2004
- MessageInternal.error(sMsg);
2005
- } catch {
2006
- // fail silently
2031
+ this._resumeAppRouterIgnoringCurrentHash();
2007
2032
  }
2008
2033
  },
2009
2034
 
@@ -2053,7 +2078,7 @@ sap.ui.define([
2053
2078
  * @param {string} sEventId The event id
2054
2079
  * @param {object} oResolvedHashFragment The resolved hash fragment object belonging to the event
2055
2080
  */
2056
- onAppOpened: function (sChannelId, sEventId, oResolvedHashFragment) {
2081
+ _onAppOpened: function (sChannelId, sEventId, oResolvedHashFragment) {
2057
2082
  if (oResolvedHashFragment.targetNavigationMode !== "explace" && oResolvedHashFragment.targetNavigationMode !== "frameless") {
2058
2083
  this._setMenuVisible(false);
2059
2084
  }
@@ -2062,14 +2087,14 @@ sap.ui.define([
2062
2087
  const sShellHash = oResolvedHashFragment.sFixedShellHash;
2063
2088
  const oParsedHash = UrlParsing.parseShellHash(sShellHash);
2064
2089
 
2065
- this.logOpenAppAction(oResolvedHashFragment, oParsedHash).catch((oError) => {
2090
+ this._logOpenAppAction(oResolvedHashFragment, oParsedHash).catch((oError) => {
2066
2091
  Log.info("Opened application was not logged.", oError, "sap.ushell.renderer.Shell.controller");
2067
2092
  });
2068
2093
 
2069
2094
  this._notifyUITracer(oResolvedHashFragment, oParsedHash);
2070
2095
  },
2071
2096
 
2072
- externalSearchTriggered: function (sChannelId, sEventId, oData) {
2097
+ _externalSearchTriggered: function (sChannelId, sEventId, oData) {
2073
2098
  Config.emit("/core/shell/model/searchTerm", oData.searchTerm);
2074
2099
  oData.query = oData.searchTerm;
2075
2100
  },
@@ -2095,7 +2120,7 @@ sap.ui.define([
2095
2120
  * @returns {Promise} A promise that is resolved once the action is logged
2096
2121
  * @throws {Error} If the application was not logged.
2097
2122
  */
2098
- logOpenAppAction: async function (oResolvedHashFragment, oParsedHash) {
2123
+ _logOpenAppAction: async function (oResolvedHashFragment, oParsedHash) {
2099
2124
  const bEnableRecentActivity = Config.last("/core/shell/enableRecentActivity") && Config.last("/core/shell/enableRecentActivityLogging");
2100
2125
  if (!bEnableRecentActivity) {
2101
2126
  throw new Error("Tracking of RecentActivity is disabled.");
@@ -2285,6 +2310,11 @@ sap.ui.define([
2285
2310
  this.addDanglingControl(oSideNavigation);
2286
2311
  },
2287
2312
 
2313
+ setSideNavigationFullWidth: function (bFullWidth) {
2314
+ const oSideNavigation = document.getElementById(ShellArea.SideNavigation);
2315
+ oSideNavigation.classList.toggle("sapUshellShellSideNavigationFullWidth", bFullWidth);
2316
+ },
2317
+
2288
2318
  setShellShapes: function (oShellShapes) {
2289
2319
  if (oShellShapes.placeAt) {
2290
2320
  oShellShapes.placeAt(ShellArea.ShellShapes, "only");
@@ -2425,17 +2455,10 @@ sap.ui.define([
2425
2455
  });
2426
2456
  },
2427
2457
 
2428
- _getSessionHandler: function () {
2458
+ getSessionHandler: function () {
2429
2459
  return this.oSessionHandler;
2430
2460
  },
2431
2461
 
2432
- _navBack: async function () {
2433
- // set meAria as closed when navigating back
2434
- this.setUserActionsMenuSelected(false);
2435
-
2436
- BackNavigation.navigateBack();
2437
- },
2438
-
2439
2462
  /**
2440
2463
  * Updates the user preferences model with the new entry.
2441
2464
  *
@@ -2550,46 +2573,6 @@ sap.ui.define([
2550
2573
  return aFLPIntents.some((sIntent) => sBasicHash === sIntent);
2551
2574
  },
2552
2575
 
2553
- // ===================================================================
2554
- // ================== AppLifeCycleFallback logic =====================
2555
- // ===================================================================
2556
-
2557
- _usesNavigationRedirect: async function (oComponentHandle) {
2558
- if (!oComponentHandle) {
2559
- return false;
2560
- }
2561
-
2562
- const oComponent = oComponentHandle.getInstance({});
2563
- if (!oComponent) {
2564
- return false;
2565
- }
2566
-
2567
- if (typeof oComponent.navigationRedirect !== "function") {
2568
- return false;
2569
- }
2570
-
2571
- // oComponent refers to a trampoline application
2572
- const oNavRedirectThenable = oComponent.navigationRedirect();
2573
- if (!oNavRedirectThenable || typeof oNavRedirectThenable.then !== "function") {
2574
- return false;
2575
- }
2576
-
2577
- try {
2578
- const sNextHash = await ushellUtils.promisify(oNavRedirectThenable);
2579
- Log.warning(`Performing navigation redirect to hash "${sNextHash}"`);
2580
-
2581
- oComponent.destroy();
2582
- this.history.pop();
2583
-
2584
- const ShellNavigationInternal = await Container.getServiceAsync("ShellNavigationInternal");
2585
- ShellNavigationInternal.toExternal({ target: { shellHash: sNextHash } }, undefined, false);
2586
-
2587
- return true;
2588
- } catch {
2589
- return false;
2590
- }
2591
- },
2592
-
2593
2576
  /**
2594
2577
  * Method to adapt the CrossApplicationNavigation service method
2595
2578
  * isUrlSupported to the request as issued by the SAP UI5 MessagePopover control