@sapui5/sap.ushell 1.132.1 → 1.134.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 (1399) hide show
  1. package/package.json +1 -1
  2. package/src/main/js/sap/ushell/.library +3 -2
  3. package/src/main/js/sap/ushell/AppInfoParameters.js +18 -4
  4. package/src/main/js/sap/ushell/ApplicationType/UrlPostProcessing.js +217 -0
  5. package/src/main/js/sap/ushell/ApplicationType/guiResolution.js +1 -1
  6. package/src/main/js/sap/ushell/ApplicationType/systemAlias.js +4 -7
  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 +14 -7
  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/CanvasShapesManager.js +1 -1
  15. package/src/main/js/sap/ushell/Config/utils.js +1 -1
  16. package/src/main/js/sap/ushell/Config.js +1 -1
  17. package/src/main/js/sap/ushell/Container.js +1 -1
  18. package/src/main/js/sap/ushell/EventHub.js +1 -1
  19. package/src/main/js/sap/ushell/Fiori20Adapter.js +2 -2
  20. package/src/main/js/sap/ushell/Fiori20AdapterTest.js +2 -2
  21. package/src/main/js/sap/ushell/Layout.js +1 -1
  22. package/src/main/js/sap/ushell/NWBCInterface.js +11 -5
  23. package/src/main/js/sap/ushell/SessionHandler.js +139 -97
  24. package/src/main/js/sap/ushell/System.js +1 -1
  25. package/src/main/js/sap/ushell/TechnicalParameters.js +2 -2
  26. package/src/main/js/sap/ushell/UI5ComponentType.js +1 -1
  27. package/src/main/js/sap/ushell/UIActions.js +1 -1
  28. package/src/main/js/sap/ushell/URLTemplateProcessor/DefinitionParameterSetBuilder.js +2 -2
  29. package/src/main/js/sap/ushell/URLTemplateProcessor/DependencyGraph.js +2 -2
  30. package/src/main/js/sap/ushell/URLTemplateProcessor/Functions.js +2 -2
  31. package/src/main/js/sap/ushell/URLTemplateProcessor/Resolvers.js +2 -2
  32. package/src/main/js/sap/ushell/URLTemplateProcessor/TemplateParameterParser.js +2 -2
  33. package/src/main/js/sap/ushell/URLTemplateProcessor/utils.js +2 -2
  34. package/src/main/js/sap/ushell/URLTemplateProcessor.js +2 -2
  35. package/src/main/js/sap/ushell/Ui5NativeServiceFactory.js +2 -2
  36. package/src/main/js/sap/ushell/Ui5ServiceFactory.js +2 -2
  37. package/src/main/js/sap/ushell/User.js +82 -12
  38. package/src/main/js/sap/ushell/UserActivityLog.js +1 -1
  39. package/src/main/js/sap/ushell/adapters/AppVariantPersonalizationAdapter.js +1 -1
  40. package/src/main/js/sap/ushell/adapters/cdm/ClientSideTargetResolutionAdapter.js +2 -2
  41. package/src/main/js/sap/ushell/adapters/cdm/CommonDataModelAdapter.js +2 -2
  42. package/src/main/js/sap/ushell/adapters/cdm/ConfigurationDefaultsAdapter.js +2 -2
  43. package/src/main/js/sap/ushell/adapters/cdm/ContainerAdapter.js +22 -6
  44. package/src/main/js/sap/ushell/adapters/cdm/LaunchPageAdapter.js +2 -2
  45. package/src/main/js/sap/ushell/adapters/cdm/MenuAdapter.js +1 -1
  46. package/src/main/js/sap/ushell/adapters/cdm/PagesCommonDataModelAdapter.js +2 -2
  47. package/src/main/js/sap/ushell/adapters/cdm/PersonalizationAdapter.js +2 -2
  48. package/src/main/js/sap/ushell/adapters/cdm/PersonalizationV2Adapter.js +2 -2
  49. package/src/main/js/sap/ushell/adapters/cdm/Settings/UserLanguageAndRegion/UserLanguageAndRegion.controller.js +251 -0
  50. package/src/main/js/sap/ushell/adapters/cdm/Settings/UserLanguageAndRegion/UserLanguageAndRegion.view.xml +69 -0
  51. package/src/main/js/sap/ushell/adapters/cdm/Settings/UserLanguageAndRegion/UserLanguageAndRegionEntry.js +67 -0
  52. package/src/main/js/sap/ushell/adapters/cdm/Ui5ComponentLoaderAdapter.js +2 -2
  53. package/src/main/js/sap/ushell/adapters/cdm/_LaunchPage/modifyHome.js +2 -2
  54. package/src/main/js/sap/ushell/adapters/cdm/_LaunchPage/readCatalogs.js +2 -2
  55. package/src/main/js/sap/ushell/adapters/cdm/_LaunchPage/readHome.js +2 -2
  56. package/src/main/js/sap/ushell/adapters/cdm/_LaunchPage/uri.transform.js +2 -2
  57. package/src/main/js/sap/ushell/adapters/cdm/_Personalization/internals.js +1 -1
  58. package/src/main/js/sap/ushell/adapters/cdm/util/AppForInbound.js +2 -2
  59. package/src/main/js/sap/ushell/adapters/cdm/util/cdmSiteUtils.js +2 -2
  60. package/src/main/js/sap/ushell/adapters/cdm/v3/AdapterBase.js +2 -2
  61. package/src/main/js/sap/ushell/adapters/cdm/v3/FlpLaunchPageAdapter.js +2 -2
  62. package/src/main/js/sap/ushell/adapters/cdm/v3/LaunchPageAdapter.js +2 -2
  63. package/src/main/js/sap/ushell/adapters/cdm/v3/StaticGroupsAdapter.js +2 -2
  64. package/src/main/js/sap/ushell/adapters/cdm/v3/_LaunchPage/readApplications.js +2 -2
  65. package/src/main/js/sap/ushell/adapters/cdm/v3/_LaunchPage/readCatalogs.js +2 -2
  66. package/src/main/js/sap/ushell/adapters/cdm/v3/_LaunchPage/readHome.js +2 -2
  67. package/src/main/js/sap/ushell/adapters/cdm/v3/_LaunchPage/readPages.js +2 -2
  68. package/src/main/js/sap/ushell/adapters/cdm/v3/_LaunchPage/readUtils.js +2 -2
  69. package/src/main/js/sap/ushell/adapters/cdm/v3/_LaunchPage/readVisualizations.js +2 -2
  70. package/src/main/js/sap/ushell/adapters/cdm/v3/utilsCdm.js +1 -1
  71. package/src/main/js/sap/ushell/adapters/cep/MenuAdapter.js +10 -5
  72. package/src/main/js/sap/ushell/adapters/cep/NavTargetResolutionAdapter.js +2 -2
  73. package/src/main/js/sap/ushell/adapters/cep/NavTargetResolutionInternalAdapter.js +2 -2
  74. package/src/main/js/sap/ushell/adapters/cep/SearchCEPAdapter.js +2 -2
  75. package/src/main/js/sap/ushell/adapters/cflp/UserDefaultParameterPersistenceAdapter.js +2 -2
  76. package/src/main/js/sap/ushell/adapters/local/AdapterContainer.js +2 -2
  77. package/src/main/js/sap/ushell/adapters/local/AppStateAdapter.js +2 -2
  78. package/src/main/js/sap/ushell/adapters/local/ClientSideTargetResolutionAdapter.js +2 -2
  79. package/src/main/js/sap/ushell/adapters/local/ContainerAdapter.js +2 -2
  80. package/src/main/js/sap/ushell/adapters/local/FlpLaunchPageAdapter.js +2 -2
  81. package/src/main/js/sap/ushell/adapters/local/LaunchPageAdapter.js +2 -2
  82. package/src/main/js/sap/ushell/adapters/local/MenuAdapter.js +1 -1
  83. package/src/main/js/sap/ushell/adapters/local/NavTargetResolutionAdapter.js +2 -2
  84. package/src/main/js/sap/ushell/adapters/local/NavTargetResolutionInternalAdapter.js +2 -2
  85. package/src/main/js/sap/ushell/adapters/local/PageBuildingAdapter.js +2 -2
  86. package/src/main/js/sap/ushell/adapters/local/PagePersistenceAdapter.js +2 -2
  87. package/src/main/js/sap/ushell/adapters/local/PersonalizationAdapter.js +2 -2
  88. package/src/main/js/sap/ushell/adapters/local/PersonalizationV2Adapter.js +2 -2
  89. package/src/main/js/sap/ushell/adapters/local/SearchAdapter.js +2 -2
  90. package/src/main/js/sap/ushell/adapters/local/SearchCEPAdapter.js +2 -2
  91. package/src/main/js/sap/ushell/adapters/local/SupportTicketAdapter.js +2 -2
  92. package/src/main/js/sap/ushell/adapters/local/Ui5ComponentLoaderAdapter.js +2 -2
  93. package/src/main/js/sap/ushell/adapters/local/UserDefaultParameterPersistenceAdapter.js +2 -2
  94. package/src/main/js/sap/ushell/adapters/local/UserInfoAdapter.js +2 -2
  95. package/src/main/js/sap/ushell/api/BootstrapObserver.js +1 -1
  96. package/src/main/js/sap/ushell/api/Copilot.js +1 -1
  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 +129 -0
  103. package/src/main/js/sap/ushell/api/common/ComponentInstantiation.js +1 -1
  104. package/src/main/js/sap/ushell/api/workpage/Designtime.js +1 -1
  105. package/src/main/js/sap/ushell/api/workpage/Runtime.js +1 -1
  106. package/src/main/js/sap/ushell/appRuntime/neo/AppInfoService.js +1 -1
  107. package/src/main/js/sap/ushell/appRuntime/neo/AppRuntimeNeo.js +1 -1
  108. package/src/main/js/sap/ushell/appRuntime/neo/ProxyAppUtils.js +1 -1
  109. package/src/main/js/sap/ushell/appRuntime/ui5/AppCommunicationMgr.js +24 -5
  110. package/src/main/js/sap/ushell/appRuntime/ui5/AppRuntime.js +1 -1
  111. package/src/main/js/sap/ushell/appRuntime/ui5/AppRuntimeContext.js +1 -1
  112. package/src/main/js/sap/ushell/appRuntime/ui5/AppRuntimeService.js +1 -1
  113. package/src/main/js/sap/ushell/appRuntime/ui5/BusyIndicator.css +26 -0
  114. package/src/main/js/sap/ushell/appRuntime/ui5/BusyIndicator.js +16 -21
  115. package/src/main/js/sap/ushell/appRuntime/ui5/SessionHandlerAgent.js +1 -1
  116. package/src/main/js/sap/ushell/appRuntime/ui5/libsPreload.js +1 -1
  117. package/src/main/js/sap/ushell/appRuntime/ui5/performance/FesrEnhancer.js +1 -1
  118. package/src/main/js/sap/ushell/appRuntime/ui5/plugins/baseRta/AppLifeCycleUtils.js +1 -1
  119. package/src/main/js/sap/ushell/appRuntime/ui5/plugins/baseRta/BaseRTAPluginStatus.js +1 -1
  120. package/src/main/js/sap/ushell/appRuntime/ui5/plugins/baseRta/CheckConditions.js +4 -4
  121. package/src/main/js/sap/ushell/appRuntime/ui5/plugins/baseRta/Renderer.js +1 -1
  122. package/src/main/js/sap/ushell/appRuntime/ui5/plugins/baseRta/Trigger.js +1 -1
  123. package/src/main/js/sap/ushell/appRuntime/ui5/plugins/rtaAgent/Component.js +4 -4
  124. package/src/main/js/sap/ushell/appRuntime/ui5/plugins/rtaShell/Component.js +1 -1
  125. package/src/main/js/sap/ushell/appRuntime/ui5/plugins/scriptAgent/Component.js +1 -1
  126. package/src/main/js/sap/ushell/appRuntime/ui5/renderers/fiori2/AccessKeysAgent.js +1 -1
  127. package/src/main/js/sap/ushell/appRuntime/ui5/renderers/fiori2/Renderer.js +1 -1
  128. package/src/main/js/sap/ushell/appRuntime/ui5/renderers/fiori2/RendererExtensions.js +2 -2
  129. package/src/main/js/sap/ushell/appRuntime/ui5/services/AppConfiguration.js +3 -2
  130. package/src/main/js/sap/ushell/appRuntime/ui5/services/AppLifeCycle.js +2 -2
  131. package/src/main/js/sap/ushell/appRuntime/ui5/services/AppLifeCycleAgent.js +1 -1
  132. package/src/main/js/sap/ushell/appRuntime/ui5/services/AppState.js +2 -2
  133. package/src/main/js/sap/ushell/appRuntime/ui5/services/Bookmark.js +2 -2
  134. package/src/main/js/sap/ushell/appRuntime/ui5/services/BookmarkV2.js +2 -2
  135. package/src/main/js/sap/ushell/appRuntime/ui5/services/CommonDataModel.js +2 -2
  136. package/src/main/js/sap/ushell/appRuntime/ui5/services/Container.js +2 -2
  137. package/src/main/js/sap/ushell/appRuntime/ui5/services/CrossApplicationNavigation.js +2 -2
  138. package/src/main/js/sap/ushell/appRuntime/ui5/services/Extension/Item.js +2 -2
  139. package/src/main/js/sap/ushell/appRuntime/ui5/services/Extension.js +2 -2
  140. package/src/main/js/sap/ushell/appRuntime/ui5/services/FrameBoundExtension.js +2 -2
  141. package/src/main/js/sap/ushell/appRuntime/ui5/services/LaunchPage.js +2 -2
  142. package/src/main/js/sap/ushell/appRuntime/ui5/services/MessageBroker.js +2 -2
  143. package/src/main/js/sap/ushell/appRuntime/ui5/services/NavTargetResolution.js +2 -2
  144. package/src/main/js/sap/ushell/appRuntime/ui5/services/NavTargetResolutionInternal.js +2 -2
  145. package/src/main/js/sap/ushell/appRuntime/ui5/services/Navigation.js +2 -2
  146. package/src/main/js/sap/ushell/appRuntime/ui5/services/ReferenceResolver.js +2 -2
  147. package/src/main/js/sap/ushell/appRuntime/ui5/services/ShellNavigation.js +2 -2
  148. package/src/main/js/sap/ushell/appRuntime/ui5/services/ShellNavigationInternal.js +2 -2
  149. package/src/main/js/sap/ushell/appRuntime/ui5/services/ShellUIService.js +11 -4
  150. package/src/main/js/sap/ushell/appRuntime/ui5/services/UserDefaultParameters.js +1 -1
  151. package/src/main/js/sap/ushell/appRuntime/ui5/services/UserInfo.js +2 -2
  152. package/src/main/js/sap/ushell/appRuntime/ui5/services/adapters/ContainerAdapter.js +1 -1
  153. package/src/main/js/sap/ushell/appRuntime/ui5/services/adapters/EmptyAdapter.js +1 -1
  154. package/src/main/js/sap/ushell/appRuntime/ui5/services/adapters/Ui5ComponentLoaderAdapter.js +2 -2
  155. package/src/main/js/sap/ushell/appRuntime/ui5/ui/UIProxy.js +1 -1
  156. package/src/main/js/sap/ushell/bootstrap/SchedulingAgent/EventProcessor.js +1 -1
  157. package/src/main/js/sap/ushell/bootstrap/SchedulingAgent/FLPLoader.js +1 -1
  158. package/src/main/js/sap/ushell/bootstrap/SchedulingAgent/FLPScheduler.js +1 -1
  159. package/src/main/js/sap/ushell/bootstrap/SchedulingAgent/LoadingConfiguration.json +4 -0
  160. package/src/main/js/sap/ushell/bootstrap/SchedulingAgent/StepConfiguration.json +35 -3
  161. package/src/main/js/sap/ushell/bootstrap/SchedulingAgent/logger.js +2 -2
  162. package/src/main/js/sap/ushell/bootstrap/SchedulingAgent/state.js +2 -2
  163. package/src/main/js/sap/ushell/bootstrap/SchedulingAgent.js +1 -1
  164. package/src/main/js/sap/ushell/bootstrap/cdm/cdm-def-dev.js +1 -1
  165. package/src/main/js/sap/ushell/bootstrap/cdm/cdm-def-loader.js +1 -1
  166. package/src/main/js/sap/ushell/bootstrap/cdm/cdm-def.js +1 -1
  167. package/src/main/js/sap/ushell/bootstrap/cdm/cdm.boot.task.js +1 -1
  168. package/src/main/js/sap/ushell/bootstrap/cdm/cdm.constants.js +1 -1
  169. package/src/main/js/sap/ushell/bootstrap/cdm.js +1 -1
  170. package/src/main/js/sap/ushell/bootstrap/common/common.boot.path.js +1 -1
  171. package/src/main/js/sap/ushell/bootstrap/common/common.boot.script.js +1 -1
  172. package/src/main/js/sap/ushell/bootstrap/common/common.boot.task.js +1 -1
  173. package/src/main/js/sap/ushell/bootstrap/common/common.configure.ui5.extractLibs.js +1 -1
  174. package/src/main/js/sap/ushell/bootstrap/common/common.configure.ui5.js +1 -1
  175. package/src/main/js/sap/ushell/bootstrap/common/common.configure.ui5datetimeformat.js +2 -2
  176. package/src/main/js/sap/ushell/bootstrap/common/common.configure.ui5language.js +1 -1
  177. package/src/main/js/sap/ushell/bootstrap/common/common.configure.ui5theme.js +1 -1
  178. package/src/main/js/sap/ushell/bootstrap/common/common.configure.ushell.js +1 -1
  179. package/src/main/js/sap/ushell/bootstrap/common/common.constants.js +1 -1
  180. package/src/main/js/sap/ushell/bootstrap/common/common.create.configcontract.core.js +68 -6
  181. package/src/main/js/sap/ushell/bootstrap/common/common.debug.mode.js +1 -1
  182. package/src/main/js/sap/ushell/bootstrap/common/common.load.bootstrapExtension.js +1 -1
  183. package/src/main/js/sap/ushell/bootstrap/common/common.load.core-min.js +1 -1
  184. package/src/main/js/sap/ushell/bootstrap/common/common.load.launchpad.js +1 -1
  185. package/src/main/js/sap/ushell/bootstrap/common/common.load.model.js +1 -1
  186. package/src/main/js/sap/ushell/bootstrap/common/common.load.script.js +1 -1
  187. package/src/main/js/sap/ushell/bootstrap/common/common.override.registermodulepath.js +1 -1
  188. package/src/main/js/sap/ushell/bootstrap/common/common.read.metatags.js +1 -1
  189. package/src/main/js/sap/ushell/bootstrap/common/common.read.ui5theme.from.config.js +1 -1
  190. package/src/main/js/sap/ushell/bootstrap/common/common.read.ushell.config.from.url.js +1 -1
  191. package/src/main/js/sap/ushell/bootstrap/common/common.util.js +1 -1
  192. package/src/main/js/sap/ushell/bootstrap/sandbox2/sandbox.js +1 -1
  193. package/src/main/js/sap/ushell/bootstrap/sandbox2/sandboxBootTask.js +1 -1
  194. package/src/main/js/sap/ushell/bootstrap/sandbox2.js +2 -2
  195. package/src/main/js/sap/ushell/bootstrap/ui5loader-config.js +1 -1
  196. package/src/main/js/sap/ushell/components/CatalogsManager.js +1 -1
  197. package/src/main/js/sap/ushell/components/ComponentKeysHandler.js +3 -3
  198. package/src/main/js/sap/ushell/components/DestroyHelper.js +1 -1
  199. package/src/main/js/sap/ushell/components/GroupsHelper.js +1 -1
  200. package/src/main/js/sap/ushell/components/HomepageManager.js +1 -1
  201. package/src/main/js/sap/ushell/components/MessagingHelper.js +1 -1
  202. package/src/main/js/sap/ushell/components/SharedComponentUtils.js +1 -1
  203. package/src/main/js/sap/ushell/components/_HomepageManager/DashboardLoadingManager.js +1 -1
  204. package/src/main/js/sap/ushell/components/_HomepageManager/PagingManager.js +1 -1
  205. package/src/main/js/sap/ushell/components/_HomepageManager/PersistentPageOperationAdapter.js +1 -1
  206. package/src/main/js/sap/ushell/components/_HomepageManager/TransientPageOperationAdapter.js +1 -1
  207. package/src/main/js/sap/ushell/components/appfinder/AppFinder.controller.js +11 -3
  208. package/src/main/js/sap/ushell/components/appfinder/AppFinderView.js +1 -1
  209. package/src/main/js/sap/ushell/components/appfinder/Catalog.controller.js +1 -1
  210. package/src/main/js/sap/ushell/components/appfinder/CatalogView.js +1 -1
  211. package/src/main/js/sap/ushell/components/appfinder/Component.js +1 -1
  212. package/src/main/js/sap/ushell/components/appfinder/EasyAccess.controller.js +1 -1
  213. package/src/main/js/sap/ushell/components/appfinder/EasyAccessView.js +1 -1
  214. package/src/main/js/sap/ushell/components/appfinder/GroupListPopover.controller.js +1 -1
  215. package/src/main/js/sap/ushell/components/appfinder/GroupListPopoverView.js +1 -1
  216. package/src/main/js/sap/ushell/components/appfinder/HierarchyApps.controller.js +1 -1
  217. package/src/main/js/sap/ushell/components/appfinder/HierarchyAppsView.js +1 -1
  218. package/src/main/js/sap/ushell/components/appfinder/HierarchyFolders.controller.js +1 -1
  219. package/src/main/js/sap/ushell/components/appfinder/HierarchyFoldersView.js +1 -1
  220. package/src/main/js/sap/ushell/components/appfinder/VisualizationOrganizerHelper.js +1 -1
  221. package/src/main/js/sap/ushell/components/appfinder/manifest.json +1 -1
  222. package/src/main/js/sap/ushell/components/applicationIntegration/AppLifeCycle.js +713 -910
  223. package/src/main/js/sap/ushell/components/applicationIntegration/ApplicationContainer.js +272 -0
  224. package/src/main/js/sap/ushell/components/applicationIntegration/ApplicationContainerCache.js +229 -0
  225. package/src/main/js/sap/ushell/components/applicationIntegration/ApplicationContainerRenderer.js +35 -0
  226. package/src/main/js/sap/ushell/components/applicationIntegration/IframeApplicationContainer.js +372 -0
  227. package/src/main/js/sap/ushell/components/applicationIntegration/IframeApplicationContainerRenderer.js +296 -0
  228. package/src/main/js/sap/ushell/components/applicationIntegration/KeepAliveApps.js +68 -0
  229. package/src/main/js/sap/ushell/components/applicationIntegration/PostMessageManager/AppruntimeHandler.js +120 -0
  230. package/src/main/js/sap/ushell/components/applicationIntegration/PostMessageManager/ExtensionItems.js +143 -0
  231. package/src/main/js/sap/ushell/components/applicationIntegration/PostMessageManager/LifecycleHandler.js +618 -0
  232. package/src/main/js/sap/ushell/components/applicationIntegration/PostMessageManager/MessageBrokerHandler.js +64 -0
  233. package/src/main/js/sap/ushell/components/applicationIntegration/PostMessageManager/NWBCHandler.js +83 -0
  234. package/src/main/js/sap/ushell/components/applicationIntegration/PostMessageManager/ServiceHandler.js +1503 -0
  235. package/src/main/js/sap/ushell/components/applicationIntegration/PostMessageManager.js +638 -0
  236. package/src/main/js/sap/ushell/components/applicationIntegration/PostMessagePluginInterface.js +152 -0
  237. package/src/main/js/sap/ushell/components/applicationIntegration/Storage.js +21 -50
  238. package/src/main/js/sap/ushell/components/applicationIntegration/UI5ApplicationContainer.js +168 -0
  239. package/src/main/js/sap/ushell/components/applicationIntegration/UI5ApplicationContainerRenderer.js +41 -0
  240. package/src/main/js/sap/ushell/components/applicationIntegration/application/Application.js +30 -679
  241. package/src/main/js/sap/ushell/components/applicationIntegration/application/BlueBoxHandler.js +13 -390
  242. package/src/main/js/sap/ushell/components/applicationIntegration/application/BlueBoxesCache.js +8 -249
  243. package/src/main/js/sap/ushell/components/applicationIntegration/application/PostMessageAPI.js +9 -2365
  244. package/src/main/js/sap/ushell/components/applicationIntegration/application/PostMessageAPIInterface.js +10 -127
  245. package/src/main/js/sap/ushell/components/applicationIntegration/application/PostMessageUtils.js +10 -177
  246. package/src/main/js/sap/ushell/components/applicationIntegration/application/WebGUIStatefulHandler.js +10 -74
  247. package/src/main/js/sap/ushell/components/applicationIntegration/configuration/AppMeta.js +21 -12
  248. package/src/main/js/sap/ushell/components/applicationIntegration/contracts/EmbeddedUI5Handler.js +176 -0
  249. package/src/main/js/sap/ushell/components/applicationIntegration/contracts/StatefulContainerV1Handler.js +91 -0
  250. package/src/main/js/sap/ushell/components/applicationIntegration/contracts/StatefulContainerV2Handler.js +175 -0
  251. package/src/main/js/sap/ushell/components/applicationIntegration/relatedServices/RelatedServices.js +13 -74
  252. package/src/main/js/sap/ushell/components/applicationIntegrationOld/AppLifeCycle.js +1926 -0
  253. package/src/main/js/sap/ushell/components/applicationIntegrationOld/Storage.js +62 -0
  254. package/src/main/js/sap/ushell/components/applicationIntegrationOld/application/Application.js +709 -0
  255. package/src/main/js/sap/ushell/components/applicationIntegrationOld/application/BlueBoxHandler.js +406 -0
  256. package/src/main/js/sap/ushell/components/applicationIntegrationOld/application/BlueBoxesCache.js +263 -0
  257. package/src/main/js/sap/ushell/components/applicationIntegrationOld/application/PostMessageAPI.js +2382 -0
  258. package/src/main/js/sap/ushell/components/applicationIntegrationOld/application/PostMessageAPIInterface.js +143 -0
  259. package/src/main/js/sap/ushell/components/applicationIntegrationOld/application/PostMessageUtils.js +192 -0
  260. package/src/main/js/sap/ushell/components/applicationIntegrationOld/application/WebGUIStatefulHandler.js +90 -0
  261. package/src/main/js/sap/ushell/components/applicationIntegrationOld/configuration/AppMeta.js +193 -0
  262. package/src/main/js/sap/ushell/components/applicationIntegrationOld/relatedServices/RelatedServices.js +91 -0
  263. package/src/main/js/sap/ushell/components/cards/Card.controller.js +1 -1
  264. package/src/main/js/sap/ushell/components/cards/Configuration.controller.js +1 -1
  265. package/src/main/js/sap/ushell/components/cards/ManifestPropertyHelper.js +1 -1
  266. package/src/main/js/sap/ushell/components/cepsearchresult/app/Component.js +1 -1
  267. package/src/main/js/sap/ushell/components/cepsearchresult/app/Main.controller.js +1 -1
  268. package/src/main/js/sap/ushell/components/cepsearchresult/app/cards/searchresultwidget/Component.js +1 -1
  269. package/src/main/js/sap/ushell/components/cepsearchresult/app/cards/searchresultwidget/Config.js +1 -1
  270. package/src/main/js/sap/ushell/components/cepsearchresult/app/cards/searchresultwidget/Extension.js +1 -1
  271. package/src/main/js/sap/ushell/components/cepsearchresult/app/util/AdvancedFormatters.js +1 -1
  272. package/src/main/js/sap/ushell/components/cepsearchresult/app/util/Edition.js +1 -1
  273. package/src/main/js/sap/ushell/components/cepsearchresult/app/util/EditionAdvanced.js +1 -1
  274. package/src/main/js/sap/ushell/components/cepsearchresult/app/util/EditionStandard.js +1 -1
  275. package/src/main/js/sap/ushell/components/cepsearchresult/app/util/appendStyleVars.js +1 -1
  276. package/src/main/js/sap/ushell/components/cepsearchresult/app/util/controls/Category.js +1 -1
  277. package/src/main/js/sap/ushell/components/cepsearchresult/app/util/controls/Highlighter.js +1 -1
  278. package/src/main/js/sap/ushell/components/cepsearchresult/app/util/controls/Paginator.js +1 -1
  279. package/src/main/js/sap/ushell/components/cepsearchresult/app/util/controls/categories/All.js +1 -1
  280. package/src/main/js/sap/ushell/components/cepsearchresult/app/util/controls/categories/Application.js +1 -1
  281. package/src/main/js/sap/ushell/components/cepsearchresult/app/util/controls/categories/Event.js +1 -1
  282. package/src/main/js/sap/ushell/components/cepsearchresult/app/util/controls/categories/People.js +1 -1
  283. package/src/main/js/sap/ushell/components/cepsearchresult/app/util/controls/categories/Workpage.js +1 -1
  284. package/src/main/js/sap/ushell/components/cepsearchresult/app/util/i18n/i18n_sk.properties +1 -1
  285. package/src/main/js/sap/ushell/components/container/ApplicationContainer.js +38 -22
  286. package/src/main/js/sap/ushell/components/container/IframePOSTUtils.js +5 -1
  287. package/src/main/js/sap/ushell/components/contentFinder/CatalogService.js +2 -2
  288. package/src/main/js/sap/ushell/components/contentFinder/Component.js +17 -7
  289. package/src/main/js/sap/ushell/components/contentFinder/controller/AppSearch.controller.js +2 -2
  290. package/src/main/js/sap/ushell/components/contentFinder/controller/ContentFinderDialog.controller.js +2 -2
  291. package/src/main/js/sap/ushell/components/contentFinder/dialog/Component.js +2 -2
  292. package/src/main/js/sap/ushell/components/contentFinder/dialog/manifest.json +1 -1
  293. package/src/main/js/sap/ushell/components/contentFinder/manifest.json +1 -1
  294. package/src/main/js/sap/ushell/components/contentFinder/model/GraphQLListBinding.js +1 -1
  295. package/src/main/js/sap/ushell/components/contentFinder/model/GraphQLModel.js +1 -1
  296. package/src/main/js/sap/ushell/components/contentFinder/model/formatter.js +32 -8
  297. package/src/main/js/sap/ushell/components/contentFinder/resources/resources.properties +6 -2
  298. package/src/main/js/sap/ushell/components/contentFinder/resources/resources_ar.properties +5 -14
  299. package/src/main/js/sap/ushell/components/contentFinder/resources/resources_bg.properties +5 -14
  300. package/src/main/js/sap/ushell/components/contentFinder/resources/resources_ca.properties +5 -14
  301. package/src/main/js/sap/ushell/components/contentFinder/resources/resources_cnr.properties +5 -14
  302. package/src/main/js/sap/ushell/components/contentFinder/resources/resources_cs.properties +5 -14
  303. package/src/main/js/sap/ushell/components/contentFinder/resources/resources_cy.properties +5 -14
  304. package/src/main/js/sap/ushell/components/contentFinder/resources/resources_da.properties +5 -14
  305. package/src/main/js/sap/ushell/components/contentFinder/resources/resources_de.properties +5 -14
  306. package/src/main/js/sap/ushell/components/contentFinder/resources/resources_el.properties +5 -14
  307. package/src/main/js/sap/ushell/components/contentFinder/resources/resources_en.properties +5 -14
  308. package/src/main/js/sap/ushell/components/contentFinder/resources/resources_en_GB.properties +5 -14
  309. package/src/main/js/sap/ushell/components/contentFinder/resources/resources_en_US_saprigi.properties +5 -14
  310. package/src/main/js/sap/ushell/components/contentFinder/resources/resources_es.properties +5 -14
  311. package/src/main/js/sap/ushell/components/contentFinder/resources/resources_es_MX.properties +5 -14
  312. package/src/main/js/sap/ushell/components/contentFinder/resources/resources_et.properties +5 -14
  313. package/src/main/js/sap/ushell/components/contentFinder/resources/resources_fi.properties +5 -14
  314. package/src/main/js/sap/ushell/components/contentFinder/resources/resources_fr.properties +5 -14
  315. package/src/main/js/sap/ushell/components/contentFinder/resources/resources_fr_CA.properties +5 -14
  316. package/src/main/js/sap/ushell/components/contentFinder/resources/resources_hi.properties +5 -14
  317. package/src/main/js/sap/ushell/components/contentFinder/resources/resources_hr.properties +5 -14
  318. package/src/main/js/sap/ushell/components/contentFinder/resources/resources_hu.properties +5 -14
  319. package/src/main/js/sap/ushell/components/contentFinder/resources/resources_id.properties +5 -14
  320. package/src/main/js/sap/ushell/components/contentFinder/resources/resources_it.properties +5 -14
  321. package/src/main/js/sap/ushell/components/contentFinder/resources/resources_iw.properties +5 -14
  322. package/src/main/js/sap/ushell/components/contentFinder/resources/resources_ja.properties +5 -14
  323. package/src/main/js/sap/ushell/components/contentFinder/resources/resources_kk.properties +5 -14
  324. package/src/main/js/sap/ushell/components/contentFinder/resources/resources_ko.properties +5 -14
  325. package/src/main/js/sap/ushell/components/contentFinder/resources/resources_lt.properties +5 -14
  326. package/src/main/js/sap/ushell/components/contentFinder/resources/resources_lv.properties +5 -14
  327. package/src/main/js/sap/ushell/components/contentFinder/resources/resources_mk.properties +5 -14
  328. package/src/main/js/sap/ushell/components/contentFinder/resources/resources_ms.properties +5 -14
  329. package/src/main/js/sap/ushell/components/contentFinder/resources/resources_nl.properties +5 -14
  330. package/src/main/js/sap/ushell/components/contentFinder/resources/resources_no.properties +5 -14
  331. package/src/main/js/sap/ushell/components/contentFinder/resources/resources_pl.properties +5 -14
  332. package/src/main/js/sap/ushell/components/contentFinder/resources/resources_pt.properties +5 -14
  333. package/src/main/js/sap/ushell/components/contentFinder/resources/resources_pt_PT.properties +5 -14
  334. package/src/main/js/sap/ushell/components/contentFinder/resources/resources_ro.properties +5 -14
  335. package/src/main/js/sap/ushell/components/contentFinder/resources/resources_ru.properties +5 -14
  336. package/src/main/js/sap/ushell/components/contentFinder/resources/resources_sh.properties +5 -14
  337. package/src/main/js/sap/ushell/components/contentFinder/resources/resources_sk.properties +5 -14
  338. package/src/main/js/sap/ushell/components/contentFinder/resources/resources_sl.properties +5 -14
  339. package/src/main/js/sap/ushell/components/contentFinder/resources/resources_sr.properties +5 -14
  340. package/src/main/js/sap/ushell/components/contentFinder/resources/resources_sv.properties +5 -14
  341. package/src/main/js/sap/ushell/components/contentFinder/resources/resources_th.properties +5 -14
  342. package/src/main/js/sap/ushell/components/contentFinder/resources/resources_tr.properties +5 -14
  343. package/src/main/js/sap/ushell/components/contentFinder/resources/resources_uk.properties +5 -14
  344. package/src/main/js/sap/ushell/components/contentFinder/resources/resources_vi.properties +5 -14
  345. package/src/main/js/sap/ushell/components/contentFinder/resources/resources_zh_CN.properties +5 -14
  346. package/src/main/js/sap/ushell/components/contentFinder/resources/resources_zh_TW.properties +5 -14
  347. package/src/main/js/sap/ushell/components/contentFinder/view/VisualizationsNoDataIllustratedMessage.fragment.xml +6 -3
  348. package/src/main/js/sap/ushell/components/contentFinderStandalone/Component.js +2 -2
  349. package/src/main/js/sap/ushell/components/contentFinderStandalone/controller/ContentFinderStandalone.controller.js +54 -14
  350. package/src/main/js/sap/ushell/components/contentFinderStandalone/manifest.json +1 -1
  351. package/src/main/js/sap/ushell/components/contentFinderStandalone/resources/resources.properties +6 -0
  352. package/src/main/js/sap/ushell/components/contentFinderStandalone/resources/resources_ar.properties +3 -0
  353. package/src/main/js/sap/ushell/components/contentFinderStandalone/resources/resources_bg.properties +3 -0
  354. package/src/main/js/sap/ushell/components/contentFinderStandalone/resources/resources_ca.properties +3 -0
  355. package/src/main/js/sap/ushell/components/contentFinderStandalone/resources/resources_cnr.properties +3 -0
  356. package/src/main/js/sap/ushell/components/contentFinderStandalone/resources/resources_cs.properties +3 -0
  357. package/src/main/js/sap/ushell/components/contentFinderStandalone/resources/resources_cy.properties +3 -0
  358. package/src/main/js/sap/ushell/components/contentFinderStandalone/resources/resources_da.properties +3 -0
  359. package/src/main/js/sap/ushell/components/contentFinderStandalone/resources/resources_de.properties +3 -0
  360. package/src/main/js/sap/ushell/components/contentFinderStandalone/resources/resources_el.properties +3 -0
  361. package/src/main/js/sap/ushell/components/contentFinderStandalone/resources/resources_en.properties +3 -0
  362. package/src/main/js/sap/ushell/components/contentFinderStandalone/resources/resources_en_GB.properties +3 -0
  363. package/src/main/js/sap/ushell/components/contentFinderStandalone/resources/resources_en_US_saprigi.properties +3 -0
  364. package/src/main/js/sap/ushell/components/contentFinderStandalone/resources/resources_es.properties +3 -0
  365. package/src/main/js/sap/ushell/components/contentFinderStandalone/resources/resources_es_MX.properties +3 -0
  366. package/src/main/js/sap/ushell/components/contentFinderStandalone/resources/resources_et.properties +3 -0
  367. package/src/main/js/sap/ushell/components/contentFinderStandalone/resources/resources_fi.properties +3 -0
  368. package/src/main/js/sap/ushell/components/contentFinderStandalone/resources/resources_fr.properties +3 -0
  369. package/src/main/js/sap/ushell/components/contentFinderStandalone/resources/resources_fr_CA.properties +3 -0
  370. package/src/main/js/sap/ushell/components/contentFinderStandalone/resources/resources_hi.properties +3 -0
  371. package/src/main/js/sap/ushell/components/contentFinderStandalone/resources/resources_hr.properties +3 -0
  372. package/src/main/js/sap/ushell/components/contentFinderStandalone/resources/resources_hu.properties +3 -0
  373. package/src/main/js/sap/ushell/components/contentFinderStandalone/resources/resources_id.properties +3 -0
  374. package/src/main/js/sap/ushell/components/contentFinderStandalone/resources/resources_it.properties +4 -1
  375. package/src/main/js/sap/ushell/components/contentFinderStandalone/resources/resources_iw.properties +3 -0
  376. package/src/main/js/sap/ushell/components/contentFinderStandalone/resources/resources_ja.properties +3 -0
  377. package/src/main/js/sap/ushell/components/contentFinderStandalone/resources/resources_kk.properties +3 -0
  378. package/src/main/js/sap/ushell/components/contentFinderStandalone/resources/resources_ko.properties +3 -0
  379. package/src/main/js/sap/ushell/components/contentFinderStandalone/resources/resources_lt.properties +3 -0
  380. package/src/main/js/sap/ushell/components/contentFinderStandalone/resources/resources_lv.properties +3 -0
  381. package/src/main/js/sap/ushell/components/contentFinderStandalone/resources/resources_mk.properties +3 -0
  382. package/src/main/js/sap/ushell/components/contentFinderStandalone/resources/resources_ms.properties +3 -0
  383. package/src/main/js/sap/ushell/components/contentFinderStandalone/resources/resources_nl.properties +3 -0
  384. package/src/main/js/sap/ushell/components/contentFinderStandalone/resources/resources_no.properties +3 -0
  385. package/src/main/js/sap/ushell/components/contentFinderStandalone/resources/resources_pl.properties +3 -0
  386. package/src/main/js/sap/ushell/components/contentFinderStandalone/resources/resources_pt.properties +3 -0
  387. package/src/main/js/sap/ushell/components/contentFinderStandalone/resources/resources_pt_PT.properties +3 -0
  388. package/src/main/js/sap/ushell/components/contentFinderStandalone/resources/resources_ro.properties +3 -0
  389. package/src/main/js/sap/ushell/components/contentFinderStandalone/resources/resources_ru.properties +3 -0
  390. package/src/main/js/sap/ushell/components/contentFinderStandalone/resources/resources_sh.properties +3 -0
  391. package/src/main/js/sap/ushell/components/contentFinderStandalone/resources/resources_sk.properties +3 -0
  392. package/src/main/js/sap/ushell/components/contentFinderStandalone/resources/resources_sl.properties +3 -0
  393. package/src/main/js/sap/ushell/components/contentFinderStandalone/resources/resources_sr.properties +3 -0
  394. package/src/main/js/sap/ushell/components/contentFinderStandalone/resources/resources_sv.properties +3 -0
  395. package/src/main/js/sap/ushell/components/contentFinderStandalone/resources/resources_th.properties +3 -0
  396. package/src/main/js/sap/ushell/components/contentFinderStandalone/resources/resources_tr.properties +3 -0
  397. package/src/main/js/sap/ushell/components/contentFinderStandalone/resources/resources_uk.properties +3 -0
  398. package/src/main/js/sap/ushell/components/contentFinderStandalone/resources/resources_vi.properties +3 -0
  399. package/src/main/js/sap/ushell/components/contentFinderStandalone/resources/resources_zh_CN.properties +3 -0
  400. package/src/main/js/sap/ushell/components/contentFinderStandalone/resources/resources_zh_TW.properties +3 -0
  401. package/src/main/js/sap/ushell/components/factsheet/Component.js +2 -2
  402. package/src/main/js/sap/ushell/components/factsheet/annotation/Mapping.js +1 -1
  403. package/src/main/js/sap/ushell/components/factsheet/controls/PictureTile.js +1 -1
  404. package/src/main/js/sap/ushell/components/factsheet/controls/PictureTileRenderer.js +1 -1
  405. package/src/main/js/sap/ushell/components/factsheet/controls/PictureViewer.js +1 -1
  406. package/src/main/js/sap/ushell/components/factsheet/controls/PictureViewerItem.js +1 -1
  407. package/src/main/js/sap/ushell/components/factsheet/controls/PictureViewerRenderer.js +1 -1
  408. package/src/main/js/sap/ushell/components/factsheet/factory/ThingInspector.js +1 -1
  409. package/src/main/js/sap/ushell/components/factsheet/tools/ODataUrlTemplating.js +1 -1
  410. package/src/main/js/sap/ushell/components/factsheet/views/ThingViewer.controller.js +1 -1
  411. package/src/main/js/sap/ushell/components/factsheet/views/ThingViewer.view.js +1 -1
  412. package/src/main/js/sap/ushell/components/homeApp/error/Component.js +1 -1
  413. package/src/main/js/sap/ushell/components/homeApp/error/HomeAppError.controller.js +1 -1
  414. package/src/main/js/sap/ushell/components/homepage/ActionMode.js +2 -2
  415. package/src/main/js/sap/ushell/components/homepage/Component.js +1 -1
  416. package/src/main/js/sap/ushell/components/homepage/DashboardContent.controller.js +1 -1
  417. package/src/main/js/sap/ushell/components/homepage/DashboardContent.view.js +2 -2
  418. package/src/main/js/sap/ushell/components/homepage/DashboardGroupsBox.js +2 -2
  419. package/src/main/js/sap/ushell/components/homepage/DashboardUIActions.js +2 -2
  420. package/src/main/js/sap/ushell/components/homepage/manifest.json +1 -1
  421. package/src/main/js/sap/ushell/components/pages/ActionMode.js +2 -2
  422. package/src/main/js/sap/ushell/components/pages/Component.js +2 -2
  423. package/src/main/js/sap/ushell/components/pages/MyHomeImport.js +2 -2
  424. package/src/main/js/sap/ushell/components/pages/StateManager.js +1 -1
  425. package/src/main/js/sap/ushell/components/pages/controller/ImportDialog.controller.js +1 -1
  426. package/src/main/js/sap/ushell/components/pages/controller/MyHome.controller.js +1 -1
  427. package/src/main/js/sap/ushell/components/pages/controller/PageRuntime.controller.js +141 -147
  428. package/src/main/js/sap/ushell/components/pages/controller/PagesAndSpaceId.js +1 -1
  429. package/src/main/js/sap/ushell/components/pages/fragment/DialogPageNotExists.fragment.xml +5 -4
  430. package/src/main/js/sap/ushell/components/pages/manifest.json +1 -1
  431. package/src/main/js/sap/ushell/components/runtimeSwitcher/Component.js +1 -1
  432. package/src/main/js/sap/ushell/components/runtimeSwitcher/controller/RuntimeSwitcher.controller.js +2 -2
  433. package/src/main/js/sap/ushell/components/runtimeSwitcher/manifest.json +1 -1
  434. package/src/main/js/sap/ushell/components/shell/FloatingContainer/Component.js +1 -1
  435. package/src/main/js/sap/ushell/components/shell/FloatingContainer/controls/FloatingContainer.js +1 -1
  436. package/src/main/js/sap/ushell/components/shell/FloatingContainer/manifest.json +1 -1
  437. package/src/main/js/sap/ushell/components/shell/MenuBar/Component.js +1 -1
  438. package/src/main/js/sap/ushell/components/shell/MenuBar/controller/MenuBar.controller.js +1 -2
  439. package/src/main/js/sap/ushell/components/shell/MenuBar/manifest.json +1 -1
  440. package/src/main/js/sap/ushell/components/shell/NavigationBarMenu/Component.js +39 -4
  441. package/src/main/js/sap/ushell/components/shell/NavigationBarMenu/controller/NavigationBarMenu.controller.js +30 -63
  442. package/src/main/js/sap/ushell/components/shell/NavigationBarMenu/controller/NavigationBarMenuButton.controller.js +118 -0
  443. package/src/main/js/sap/ushell/components/shell/NavigationBarMenu/manifest.json +1 -1
  444. package/src/main/js/sap/ushell/components/shell/NavigationBarMenu/view/NavigationBarMenu.view.xml +64 -17
  445. package/src/main/js/sap/ushell/components/shell/NavigationBarMenu/view/NavigationBarMenuButton.view.xml +24 -0
  446. package/src/main/js/sap/ushell/components/shell/Notifications/Component.js +2 -2
  447. package/src/main/js/sap/ushell/components/shell/Notifications/Notifications.controller.js +1 -1
  448. package/src/main/js/sap/ushell/components/shell/PostLoadingHeaderEnhancement/Component.js +1 -1
  449. package/src/main/js/sap/ushell/components/shell/ProductSwitch/Component.js +2 -2
  450. package/src/main/js/sap/ushell/components/shell/Search/Component.js +1 -1
  451. package/src/main/js/sap/ushell/components/shell/Search/ESearch.js +1 -1
  452. package/src/main/js/sap/ushell/components/shell/Search/manifest.json +1 -1
  453. package/src/main/js/sap/ushell/components/shell/SearchCEP/Component.js +2 -2
  454. package/src/main/js/sap/ushell/components/shell/SearchCEP/ProvidersExecuter.js +1 -1
  455. package/src/main/js/sap/ushell/components/shell/SearchCEP/SearchCEP.controller.js +1 -1
  456. package/src/main/js/sap/ushell/components/shell/SearchCEP/SearchProviders/FrequentActivityProvider.js +2 -2
  457. package/src/main/js/sap/ushell/components/shell/SearchCEP/SearchProviders/RecentSearchProvider.js +2 -2
  458. package/src/main/js/sap/ushell/components/shell/SearchCEP/SearchProviders/SearchProvider.js +2 -2
  459. package/src/main/js/sap/ushell/components/shell/SearchCEP/SearchProviders/SearchServiceProvider.js +2 -2
  460. package/src/main/js/sap/ushell/components/shell/Settings/Component.js +19 -16
  461. package/src/main/js/sap/ushell/components/shell/Settings/ContentWrapper.fragment.xml +3 -2
  462. package/src/main/js/sap/ushell/components/shell/Settings/ErrorMessageHelper.js +1 -1
  463. package/src/main/js/sap/ushell/components/shell/Settings/UserSettings.controller.js +46 -22
  464. package/src/main/js/sap/ushell/components/shell/Settings/appearance/Appearance.controller.js +99 -50
  465. package/src/main/js/sap/ushell/components/shell/Settings/appearance/Appearance.view.xml +11 -2
  466. package/src/main/js/sap/ushell/components/shell/Settings/appearance/AppearanceEntry.js +1 -1
  467. package/src/main/js/sap/ushell/components/shell/Settings/homepage/HomepageEntry.js +1 -1
  468. package/src/main/js/sap/ushell/components/shell/Settings/notifications/NotificationsEntry.js +1 -1
  469. package/src/main/js/sap/ushell/components/shell/Settings/notifications/NotificationsSetting.controller.js +1 -1
  470. package/src/main/js/sap/ushell/components/shell/Settings/search/Search.controller.js +1 -1
  471. package/src/main/js/sap/ushell/components/shell/Settings/search/SearchEntry.js +1 -1
  472. package/src/main/js/sap/ushell/components/shell/Settings/spaces/SpacesEntry.js +1 -1
  473. package/src/main/js/sap/ushell/components/shell/Settings/spaces/SpacesSetting.controller.js +1 -1
  474. package/src/main/js/sap/ushell/components/shell/Settings/userAccount/UserAccountEntry.js +1 -1
  475. package/src/main/js/sap/ushell/components/shell/Settings/userAccount/UserAccountSelector.controller.js +1 -1
  476. package/src/main/js/sap/ushell/components/shell/Settings/userActivities/UserActivitiesEntry.js +1 -1
  477. package/src/main/js/sap/ushell/components/shell/Settings/userActivities/UserActivitiesSetting.controller.js +1 -1
  478. package/src/main/js/sap/ushell/components/shell/Settings/userDefaults/Component.js +1 -1
  479. package/src/main/js/sap/ushell/components/shell/Settings/userDefaults/UserDefaultsEntry.js +1 -1
  480. package/src/main/js/sap/ushell/components/shell/Settings/userDefaults/UserDefaultsForm.js +1 -1
  481. package/src/main/js/sap/ushell/components/shell/Settings/userDefaults/controller/ExtendedValueDialog.controller.js +1 -1
  482. package/src/main/js/sap/ushell/components/shell/Settings/userDefaults/controller/UserDefaultsSetting.controller.js +1 -1
  483. package/src/main/js/sap/ushell/components/shell/Settings/userLanguageRegion/LanguageRegionSelector.controller.js +1 -1
  484. package/src/main/js/sap/ushell/components/shell/Settings/userLanguageRegion/UserLanguageRegionEntry.js +1 -1
  485. package/src/main/js/sap/ushell/components/shell/SideNavigation/Component.js +206 -30
  486. package/src/main/js/sap/ushell/components/shell/SideNavigation/controller/SideNavigation.controller.js +79 -314
  487. package/src/main/js/sap/ushell/components/shell/SideNavigation/css/style.css +3 -0
  488. package/src/main/js/sap/ushell/components/shell/SideNavigation/fragment/Popover.fragment.xml +13 -0
  489. package/src/main/js/sap/ushell/components/shell/SideNavigation/manifest.json +8 -1
  490. package/src/main/js/sap/ushell/components/shell/SideNavigation/modules/AllSpaces.js +52 -0
  491. package/src/main/js/sap/ushell/components/shell/SideNavigation/modules/AppFinder.js +48 -0
  492. package/src/main/js/sap/ushell/components/shell/SideNavigation/modules/Favorites.js +222 -0
  493. package/src/main/js/sap/ushell/components/shell/SideNavigation/modules/GenericFixedNavigationListProvider.js +142 -0
  494. package/src/main/js/sap/ushell/components/shell/SideNavigation/modules/GenericNavigationListProvider.js +186 -0
  495. package/src/main/js/sap/ushell/components/shell/SideNavigation/modules/MyHome.js +73 -0
  496. package/src/main/js/sap/ushell/components/shell/SideNavigation/modules/NavigationHelper.js +79 -0
  497. package/src/main/js/sap/ushell/components/shell/SideNavigation/modules/RecentActivity.js +141 -0
  498. package/src/main/js/sap/ushell/components/shell/SideNavigation/modules/Spaces.js +288 -0
  499. package/src/main/js/sap/ushell/components/shell/SideNavigation/modules/SpacesNavigationListProvider.js +79 -0
  500. package/src/main/js/sap/ushell/components/shell/SideNavigation/resources/resources.properties +21 -4
  501. package/src/main/js/sap/ushell/components/shell/SideNavigation/resources/resources_ar.properties +11 -0
  502. package/src/main/js/sap/ushell/components/shell/SideNavigation/resources/resources_bg.properties +11 -0
  503. package/src/main/js/sap/ushell/components/shell/SideNavigation/resources/resources_ca.properties +11 -0
  504. package/src/main/js/sap/ushell/components/shell/SideNavigation/resources/resources_cnr.properties +11 -0
  505. package/src/main/js/sap/ushell/components/shell/SideNavigation/resources/resources_cs.properties +11 -0
  506. package/src/main/js/sap/ushell/components/shell/SideNavigation/resources/resources_cy.properties +11 -0
  507. package/src/main/js/sap/ushell/components/shell/SideNavigation/resources/resources_da.properties +11 -0
  508. package/src/main/js/sap/ushell/components/shell/SideNavigation/resources/resources_de.properties +11 -0
  509. package/src/main/js/sap/ushell/components/shell/SideNavigation/resources/resources_el.properties +11 -0
  510. package/src/main/js/sap/ushell/components/shell/SideNavigation/resources/resources_en.properties +11 -0
  511. package/src/main/js/sap/ushell/components/shell/SideNavigation/resources/resources_en_GB.properties +11 -0
  512. package/src/main/js/sap/ushell/components/shell/SideNavigation/resources/resources_en_US_saprigi.properties +11 -0
  513. package/src/main/js/sap/ushell/components/shell/SideNavigation/resources/resources_es.properties +11 -0
  514. package/src/main/js/sap/ushell/components/shell/SideNavigation/resources/resources_es_MX.properties +11 -0
  515. package/src/main/js/sap/ushell/components/shell/SideNavigation/resources/resources_et.properties +11 -0
  516. package/src/main/js/sap/ushell/components/shell/SideNavigation/resources/resources_fi.properties +11 -0
  517. package/src/main/js/sap/ushell/components/shell/SideNavigation/resources/resources_fr.properties +11 -0
  518. package/src/main/js/sap/ushell/components/shell/SideNavigation/resources/resources_fr_CA.properties +11 -0
  519. package/src/main/js/sap/ushell/components/shell/SideNavigation/resources/resources_hi.properties +11 -0
  520. package/src/main/js/sap/ushell/components/shell/SideNavigation/resources/resources_hr.properties +11 -0
  521. package/src/main/js/sap/ushell/components/shell/SideNavigation/resources/resources_hu.properties +11 -0
  522. package/src/main/js/sap/ushell/components/shell/SideNavigation/resources/resources_id.properties +11 -0
  523. package/src/main/js/sap/ushell/components/shell/SideNavigation/resources/resources_it.properties +11 -0
  524. package/src/main/js/sap/ushell/components/shell/SideNavigation/resources/resources_iw.properties +11 -0
  525. package/src/main/js/sap/ushell/components/shell/SideNavigation/resources/resources_ja.properties +11 -0
  526. package/src/main/js/sap/ushell/components/shell/SideNavigation/resources/resources_kk.properties +11 -0
  527. package/src/main/js/sap/ushell/components/shell/SideNavigation/resources/resources_ko.properties +11 -0
  528. package/src/main/js/sap/ushell/components/shell/SideNavigation/resources/resources_lt.properties +11 -0
  529. package/src/main/js/sap/ushell/components/shell/SideNavigation/resources/resources_lv.properties +11 -0
  530. package/src/main/js/sap/ushell/components/shell/SideNavigation/resources/resources_mk.properties +11 -0
  531. package/src/main/js/sap/ushell/components/shell/SideNavigation/resources/resources_ms.properties +11 -0
  532. package/src/main/js/sap/ushell/components/shell/SideNavigation/resources/resources_nl.properties +11 -0
  533. package/src/main/js/sap/ushell/components/shell/SideNavigation/resources/resources_no.properties +11 -0
  534. package/src/main/js/sap/ushell/components/shell/SideNavigation/resources/resources_pl.properties +11 -0
  535. package/src/main/js/sap/ushell/components/shell/SideNavigation/resources/resources_pt.properties +11 -0
  536. package/src/main/js/sap/ushell/components/shell/SideNavigation/resources/resources_pt_PT.properties +11 -0
  537. package/src/main/js/sap/ushell/components/shell/SideNavigation/resources/resources_ro.properties +11 -0
  538. package/src/main/js/sap/ushell/components/shell/SideNavigation/resources/resources_ru.properties +11 -0
  539. package/src/main/js/sap/ushell/components/shell/SideNavigation/resources/resources_sh.properties +11 -0
  540. package/src/main/js/sap/ushell/components/shell/SideNavigation/resources/resources_sk.properties +11 -0
  541. package/src/main/js/sap/ushell/components/shell/SideNavigation/resources/resources_sl.properties +11 -0
  542. package/src/main/js/sap/ushell/components/shell/SideNavigation/resources/resources_sr.properties +11 -0
  543. package/src/main/js/sap/ushell/components/shell/SideNavigation/resources/resources_sv.properties +11 -0
  544. package/src/main/js/sap/ushell/components/shell/SideNavigation/resources/resources_th.properties +11 -0
  545. package/src/main/js/sap/ushell/components/shell/SideNavigation/resources/resources_tr.properties +11 -0
  546. package/src/main/js/sap/ushell/components/shell/SideNavigation/resources/resources_uk.properties +11 -0
  547. package/src/main/js/sap/ushell/components/shell/SideNavigation/resources/resources_vi.properties +11 -0
  548. package/src/main/js/sap/ushell/components/shell/SideNavigation/resources/resources_zh_CN.properties +11 -0
  549. package/src/main/js/sap/ushell/components/shell/SideNavigation/resources/resources_zh_TW.properties +11 -0
  550. package/src/main/js/sap/ushell/components/shell/SideNavigation/view/Main.view.xml +15 -0
  551. package/src/main/js/sap/ushell/components/shell/SideNavigation/view/SideNavigation.view.xml +33 -16
  552. package/src/main/js/sap/ushell/components/shell/UserActionsMenu/Component.js +2 -2
  553. package/src/main/js/sap/ushell/components/shell/UserActionsMenu/UserActionsMenu.controller.js +153 -19
  554. package/src/main/js/sap/ushell/components/shell/UserActionsMenu/UserActionsMenu.fragment.xml +33 -0
  555. package/src/main/js/sap/ushell/components/shell/UserActionsMenu/UserActionsMenuPopover.fragment.xml +42 -4
  556. package/src/main/js/sap/ushell/components/shell/UserImage/Component.js +2 -2
  557. package/src/main/js/sap/ushell/components/tiles/action/ActionTile.controller.js +1 -1
  558. package/src/main/js/sap/ushell/components/tiles/action/Configuration.controller.js +1 -1
  559. package/src/main/js/sap/ushell/components/tiles/applauncher/Component.js +1 -1
  560. package/src/main/js/sap/ushell/components/tiles/applauncher/Configuration.controller.js +1 -1
  561. package/src/main/js/sap/ushell/components/tiles/applauncher/StaticTile.controller.js +1 -1
  562. package/src/main/js/sap/ushell/components/tiles/applauncher/StaticTile.view.js +1 -1
  563. package/src/main/js/sap/ushell/components/tiles/applauncherdynamic/Component.js +1 -1
  564. package/src/main/js/sap/ushell/components/tiles/applauncherdynamic/Configuration.controller.js +1 -1
  565. package/src/main/js/sap/ushell/components/tiles/applauncherdynamic/DynamicTile.controller.js +1 -3
  566. package/src/main/js/sap/ushell/components/tiles/applauncherdynamic/DynamicTile.view.js +1 -1
  567. package/src/main/js/sap/ushell/components/tiles/cdm/applauncher/Component.js +1 -1
  568. package/src/main/js/sap/ushell/components/tiles/cdm/applauncher/StaticTile.controller.js +1 -1
  569. package/src/main/js/sap/ushell/components/tiles/cdm/applauncher/StaticTile.view.js +1 -1
  570. package/src/main/js/sap/ushell/components/tiles/cdm/applauncherdynamic/Component.js +1 -1
  571. package/src/main/js/sap/ushell/components/tiles/cdm/applauncherdynamic/DynamicTile.controller.js +1 -1
  572. package/src/main/js/sap/ushell/components/tiles/cdm/applauncherdynamic/DynamicTile.view.js +1 -1
  573. package/src/main/js/sap/ushell/components/tiles/generic.js +1 -1
  574. package/src/main/js/sap/ushell/components/tiles/indicatorArea/AreaChartTile.controller.js +1 -1
  575. package/src/main/js/sap/ushell/components/tiles/indicatorArea/AreaChartTile.view.js +1 -1
  576. package/src/main/js/sap/ushell/components/tiles/indicatorDual/DualTile.controller.js +1 -1
  577. package/src/main/js/sap/ushell/components/tiles/indicatorDual/DualTile.view.js +1 -1
  578. package/src/main/js/sap/ushell/components/tiles/indicatorDualComparison/DualComparison.controller.js +1 -1
  579. package/src/main/js/sap/ushell/components/tiles/indicatorDualComparison/DualComparison.view.js +1 -1
  580. package/src/main/js/sap/ushell/components/tiles/indicatorDualContribution/DualContribution.controller.js +1 -1
  581. package/src/main/js/sap/ushell/components/tiles/indicatorDualContribution/DualContribution.view.js +1 -1
  582. package/src/main/js/sap/ushell/components/tiles/indicatorDualDeviation/DualDeviation.controller.js +1 -1
  583. package/src/main/js/sap/ushell/components/tiles/indicatorDualDeviation/DualDeviation.view.js +1 -1
  584. package/src/main/js/sap/ushell/components/tiles/indicatorDualTrend/DualTrend.controller.js +1 -1
  585. package/src/main/js/sap/ushell/components/tiles/indicatorDualTrend/DualTrend.view.js +1 -1
  586. package/src/main/js/sap/ushell/components/tiles/indicatorHarveyBall/HarveyBallTile.controller.js +1 -1
  587. package/src/main/js/sap/ushell/components/tiles/indicatorHarveyBall/HarveyBallTile.view.js +1 -1
  588. package/src/main/js/sap/ushell/components/tiles/indicatorTileUtils/cache.js +1 -1
  589. package/src/main/js/sap/ushell/components/tiles/indicatorTileUtils/indicatorTileHelper.js +1 -1
  590. package/src/main/js/sap/ushell/components/tiles/indicatorTileUtils/oData4Analytics.js +1 -1
  591. package/src/main/js/sap/ushell/components/tiles/indicatorTileUtils/smartBusinessUtil.js +1 -1
  592. package/src/main/js/sap/ushell/components/tiles/indicatorcomparison/ComparisonTile.controller.js +1 -1
  593. package/src/main/js/sap/ushell/components/tiles/indicatorcomparison/ComparisonTile.view.js +1 -1
  594. package/src/main/js/sap/ushell/components/tiles/indicatorcontribution/ContributionTile.controller.js +1 -1
  595. package/src/main/js/sap/ushell/components/tiles/indicatorcontribution/ContributionTile.view.js +1 -1
  596. package/src/main/js/sap/ushell/components/tiles/indicatordeviation/DeviationTile.controller.js +1 -1
  597. package/src/main/js/sap/ushell/components/tiles/indicatordeviation/DeviationTile.view.js +1 -1
  598. package/src/main/js/sap/ushell/components/tiles/indicatornumeric/NumericTile.controller.js +1 -1
  599. package/src/main/js/sap/ushell/components/tiles/indicatornumeric/NumericTile.view.js +1 -1
  600. package/src/main/js/sap/ushell/components/tiles/sbtilecontent.js +1 -1
  601. package/src/main/js/sap/ushell/components/tiles/utils.js +3 -4
  602. package/src/main/js/sap/ushell/components/visualizationOrganizer/Component.js +2 -2
  603. package/src/main/js/sap/ushell/components/workPageBuilder/Component.js +2 -2
  604. package/src/main/js/sap/ushell/components/workPageBuilder/controller/WorkPageBuilder.accessibility.js +2 -2
  605. package/src/main/js/sap/ushell/components/workPageBuilder/controller/WorkPageBuilder.controller.js +2 -2
  606. package/src/main/js/sap/ushell/components/workPageBuilder/controller/WorkPageBuilder.layout.js +1 -1
  607. package/src/main/js/sap/ushell/components/workPageBuilder/controls/WorkPage.js +2 -2
  608. package/src/main/js/sap/ushell/components/workPageBuilder/controls/WorkPageButton.js +2 -2
  609. package/src/main/js/sap/ushell/components/workPageBuilder/controls/WorkPageCell.js +2 -2
  610. package/src/main/js/sap/ushell/components/workPageBuilder/controls/WorkPageColumn.js +2 -2
  611. package/src/main/js/sap/ushell/components/workPageBuilder/controls/WorkPageColumnRenderer.js +1 -1
  612. package/src/main/js/sap/ushell/components/workPageBuilder/controls/WorkPageColumnResizer.js +2 -2
  613. package/src/main/js/sap/ushell/components/workPageBuilder/controls/WorkPageRenderer.js +1 -1
  614. package/src/main/js/sap/ushell/components/workPageBuilder/controls/WorkPageRow.js +2 -2
  615. package/src/main/js/sap/ushell/components/workPageBuilder/controls/WorkPageRowRenderer.js +1 -1
  616. package/src/main/js/sap/ushell/components/workPageBuilder/manifest.json +1 -1
  617. package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_ar.properties +3 -0
  618. package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_bg.properties +3 -0
  619. package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_ca.properties +3 -0
  620. package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_cnr.properties +3 -0
  621. package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_cs.properties +3 -0
  622. package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_cy.properties +3 -0
  623. package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_da.properties +3 -0
  624. package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_de.properties +3 -0
  625. package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_el.properties +3 -0
  626. package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_en.properties +3 -0
  627. package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_en_GB.properties +3 -0
  628. package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_en_US_saprigi.properties +3 -0
  629. package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_es.properties +3 -0
  630. package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_es_MX.properties +3 -0
  631. package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_et.properties +3 -0
  632. package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_fi.properties +3 -0
  633. package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_fr.properties +3 -0
  634. package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_fr_CA.properties +3 -0
  635. package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_hi.properties +3 -0
  636. package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_hr.properties +3 -0
  637. package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_hu.properties +3 -0
  638. package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_id.properties +3 -0
  639. package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_it.properties +3 -0
  640. package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_iw.properties +4 -1
  641. package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_ja.properties +3 -0
  642. package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_kk.properties +3 -0
  643. package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_ko.properties +3 -0
  644. package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_lt.properties +3 -0
  645. package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_lv.properties +3 -0
  646. package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_mk.properties +3 -0
  647. package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_ms.properties +3 -0
  648. package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_nl.properties +3 -0
  649. package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_no.properties +3 -0
  650. package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_pl.properties +3 -0
  651. package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_pt.properties +3 -0
  652. package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_pt_PT.properties +3 -0
  653. package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_ro.properties +3 -0
  654. package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_ru.properties +3 -0
  655. package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_sh.properties +3 -0
  656. package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_sk.properties +3 -0
  657. package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_sl.properties +3 -0
  658. package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_sr.properties +3 -0
  659. package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_sv.properties +3 -0
  660. package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_th.properties +3 -0
  661. package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_tr.properties +3 -0
  662. package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_uk.properties +3 -0
  663. package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_vi.properties +3 -0
  664. package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_zh_CN.properties +3 -0
  665. package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_zh_TW.properties +3 -0
  666. package/src/main/js/sap/ushell/components/workPageRuntime/Component.js +2 -2
  667. package/src/main/js/sap/ushell/components/workPageRuntime/controller/WorkPageRuntime.controller.js +2 -2
  668. package/src/main/js/sap/ushell/components/workPageRuntime/manifest.json +1 -1
  669. package/src/main/js/sap/ushell/designtime/ApplicationContainer.designtime.js +2 -2
  670. package/src/main/js/sap/ushell/functionBindPrototype.js +1 -1
  671. package/src/main/js/sap/ushell/iconfonts.js +1 -1
  672. package/src/main/js/sap/ushell/library.js +68 -2
  673. package/src/main/js/sap/ushell/navigationMode.js +2 -2
  674. package/src/main/js/sap/ushell/override.js +1 -1
  675. package/src/main/js/sap/ushell/performance/FesrEnhancer.js +1 -1
  676. package/src/main/js/sap/ushell/performance/ShellAnalytics.js +2 -2
  677. package/src/main/js/sap/ushell/performance/StatisticalRecord.js +2 -2
  678. package/src/main/js/sap/ushell/plugins/BaseRTAPlugin.js +1 -1
  679. package/src/main/js/sap/ushell/plugins/appwarmup/Component.js +2 -2
  680. package/src/main/js/sap/ushell/plugins/appwarmup/ShellUIService.js +1 -1
  681. package/src/main/js/sap/ushell/plugins/ghostapp/Component.js +1 -1
  682. package/src/main/js/sap/ushell/plugins/ghostapp/FakeModel.js +1 -1
  683. package/src/main/js/sap/ushell/plugins/rta/Component.js +16 -1
  684. package/src/main/js/sap/ushell/plugins/rta-personalize/Component.js +1 -1
  685. package/src/main/js/sap/ushell/renderer/AccessKeysHandler.js +4 -2
  686. package/src/main/js/sap/ushell/renderer/History.js +1 -1
  687. package/src/main/js/sap/ushell/renderer/LogonFrameProvider.js +1 -1
  688. package/src/main/js/sap/ushell/renderer/Renderer.js +3 -3
  689. package/src/main/js/sap/ushell/renderer/Shell.controller.js +392 -155
  690. package/src/main/js/sap/ushell/renderer/Shell.view.js +1 -1
  691. package/src/main/js/sap/ushell/renderer/ShellLayout.js +10 -2
  692. package/src/main/js/sap/ushell/renderer/allMyApps/AllMyApps.controller.js +1 -1
  693. package/src/main/js/sap/ushell/renderer/allMyApps/AllMyAppsManager.js +1 -1
  694. package/src/main/js/sap/ushell/renderer/resources/resources.properties +37 -8
  695. package/src/main/js/sap/ushell/renderer/resources/resources_ar.properties +11 -2
  696. package/src/main/js/sap/ushell/renderer/resources/resources_bg.properties +11 -2
  697. package/src/main/js/sap/ushell/renderer/resources/resources_ca.properties +11 -2
  698. package/src/main/js/sap/ushell/renderer/resources/resources_cnr.properties +11 -2
  699. package/src/main/js/sap/ushell/renderer/resources/resources_cs.properties +11 -2
  700. package/src/main/js/sap/ushell/renderer/resources/resources_cy.properties +11 -2
  701. package/src/main/js/sap/ushell/renderer/resources/resources_da.properties +11 -2
  702. package/src/main/js/sap/ushell/renderer/resources/resources_de.properties +12 -3
  703. package/src/main/js/sap/ushell/renderer/resources/resources_el.properties +11 -2
  704. package/src/main/js/sap/ushell/renderer/resources/resources_en.properties +11 -2
  705. package/src/main/js/sap/ushell/renderer/resources/resources_en_GB.properties +11 -2
  706. package/src/main/js/sap/ushell/renderer/resources/resources_en_US_saprigi.properties +11 -2
  707. package/src/main/js/sap/ushell/renderer/resources/resources_es.properties +11 -2
  708. package/src/main/js/sap/ushell/renderer/resources/resources_es_MX.properties +11 -2
  709. package/src/main/js/sap/ushell/renderer/resources/resources_et.properties +11 -2
  710. package/src/main/js/sap/ushell/renderer/resources/resources_fi.properties +11 -2
  711. package/src/main/js/sap/ushell/renderer/resources/resources_fr.properties +11 -2
  712. package/src/main/js/sap/ushell/renderer/resources/resources_fr_CA.properties +11 -2
  713. package/src/main/js/sap/ushell/renderer/resources/resources_hi.properties +11 -2
  714. package/src/main/js/sap/ushell/renderer/resources/resources_hr.properties +11 -2
  715. package/src/main/js/sap/ushell/renderer/resources/resources_hu.properties +11 -2
  716. package/src/main/js/sap/ushell/renderer/resources/resources_id.properties +11 -2
  717. package/src/main/js/sap/ushell/renderer/resources/resources_it.properties +11 -2
  718. package/src/main/js/sap/ushell/renderer/resources/resources_iw.properties +11 -2
  719. package/src/main/js/sap/ushell/renderer/resources/resources_ja.properties +11 -2
  720. package/src/main/js/sap/ushell/renderer/resources/resources_kk.properties +51 -42
  721. package/src/main/js/sap/ushell/renderer/resources/resources_ko.properties +11 -2
  722. package/src/main/js/sap/ushell/renderer/resources/resources_lt.properties +13 -4
  723. package/src/main/js/sap/ushell/renderer/resources/resources_lv.properties +11 -2
  724. package/src/main/js/sap/ushell/renderer/resources/resources_mk.properties +11 -2
  725. package/src/main/js/sap/ushell/renderer/resources/resources_ms.properties +11 -2
  726. package/src/main/js/sap/ushell/renderer/resources/resources_nl.properties +11 -2
  727. package/src/main/js/sap/ushell/renderer/resources/resources_no.properties +11 -2
  728. package/src/main/js/sap/ushell/renderer/resources/resources_pl.properties +11 -2
  729. package/src/main/js/sap/ushell/renderer/resources/resources_pt.properties +11 -2
  730. package/src/main/js/sap/ushell/renderer/resources/resources_pt_PT.properties +11 -2
  731. package/src/main/js/sap/ushell/renderer/resources/resources_ro.properties +11 -2
  732. package/src/main/js/sap/ushell/renderer/resources/resources_ru.properties +11 -2
  733. package/src/main/js/sap/ushell/renderer/resources/resources_sh.properties +11 -2
  734. package/src/main/js/sap/ushell/renderer/resources/resources_sk.properties +11 -2
  735. package/src/main/js/sap/ushell/renderer/resources/resources_sl.properties +13 -4
  736. package/src/main/js/sap/ushell/renderer/resources/resources_sr.properties +11 -2
  737. package/src/main/js/sap/ushell/renderer/resources/resources_sv.properties +11 -2
  738. package/src/main/js/sap/ushell/renderer/resources/resources_th.properties +11 -2
  739. package/src/main/js/sap/ushell/renderer/resources/resources_tr.properties +11 -2
  740. package/src/main/js/sap/ushell/renderer/resources/resources_uk.properties +11 -2
  741. package/src/main/js/sap/ushell/renderer/resources/resources_vi.properties +11 -2
  742. package/src/main/js/sap/ushell/renderer/resources/resources_zh_CN.properties +11 -2
  743. package/src/main/js/sap/ushell/renderer/resources/resources_zh_TW.properties +11 -2
  744. package/src/main/js/sap/ushell/renderer/search/searchComponent/Component.js +1 -1
  745. package/src/main/js/sap/ushell/renderer/search/searchComponent/controller/CEPSearchApp.controller.js +1 -1
  746. package/src/main/js/sap/ushell/renderer/search/searchComponent/controller/SearchApp.controller.js +1 -1
  747. package/src/main/js/sap/ushell/renderer/search/searchComponent/manifest.json +1 -1
  748. package/src/main/js/sap/ushell/renderer/search/searchComponent/view/CEPSearchApp.view.js +1 -1
  749. package/src/main/js/sap/ushell/renderer/search/searchComponent/view/SearchApp.view.js +1 -1
  750. package/src/main/js/sap/ushell/renderer/search/util.js +1 -1
  751. package/src/main/js/sap/ushell/renderer/shellHeader/ShellHeader.controller.js +13 -7
  752. package/src/main/js/sap/ushell/renderer/utils.js +1 -1
  753. package/src/main/js/sap/ushell/renderers/fiori2/History.js +1 -1
  754. package/src/main/js/sap/ushell/renderers/fiori2/LogonFrameProvider.js +1 -1
  755. package/src/main/js/sap/ushell/renderers/fiori2/Renderer.js +1 -1
  756. package/src/main/js/sap/ushell/renderers/fiori2/RendererExtensions.js +1 -1
  757. package/src/main/js/sap/ushell/renderers/fiori2/Shell.controller.js +1 -1
  758. package/src/main/js/sap/ushell/renderers/fiori2/Shell.view.js +1 -1
  759. package/src/main/js/sap/ushell/renderers/fiori2/allMyApps/AllMyAppsManager.js +1 -1
  760. package/src/main/js/sap/ushell/resources.js +1 -1
  761. package/src/main/js/sap/ushell/services/AllMyApps.js +1 -1
  762. package/src/main/js/sap/ushell/services/AppConfiguration.js +2 -2
  763. package/src/main/js/sap/ushell/services/AppLifeCycle.js +4 -3
  764. package/src/main/js/sap/ushell/services/AppState.js +2 -2
  765. package/src/main/js/sap/ushell/services/AppType.js +1 -1
  766. package/src/main/js/sap/ushell/services/Bookmark.js +2 -2
  767. package/src/main/js/sap/ushell/services/BookmarkV2.js +2 -2
  768. package/src/main/js/sap/ushell/services/ClientSideTargetResolution/Formatter.js +2 -2
  769. package/src/main/js/sap/ushell/services/ClientSideTargetResolution/InboundIndex.js +2 -2
  770. package/src/main/js/sap/ushell/services/ClientSideTargetResolution/InboundProvider.js +2 -2
  771. package/src/main/js/sap/ushell/services/ClientSideTargetResolution/ParameterMapping.js +1 -1
  772. package/src/main/js/sap/ushell/services/ClientSideTargetResolution/PrelaunchOperations.js +2 -2
  773. package/src/main/js/sap/ushell/services/ClientSideTargetResolution/Search.js +2 -2
  774. package/src/main/js/sap/ushell/services/ClientSideTargetResolution/StagedLogger.js +2 -2
  775. package/src/main/js/sap/ushell/services/ClientSideTargetResolution/SystemContext.js +2 -2
  776. package/src/main/js/sap/ushell/services/ClientSideTargetResolution/Utils.js +2 -2
  777. package/src/main/js/sap/ushell/services/ClientSideTargetResolution/VirtualInbounds.js +2 -2
  778. package/src/main/js/sap/ushell/services/ClientSideTargetResolution/XAppStateProcessing.js +2 -2
  779. package/src/main/js/sap/ushell/services/ClientSideTargetResolution.js +2 -2
  780. package/src/main/js/sap/ushell/services/CommonDataModel/PersonalizationProcessor.js +1 -1
  781. package/src/main/js/sap/ushell/services/CommonDataModel/SiteConverter.js +2 -2
  782. package/src/main/js/sap/ushell/services/CommonDataModel/vizTypeDefaults/VizTypeDefaults.js +2 -2
  783. package/src/main/js/sap/ushell/services/CommonDataModel.js +2 -13
  784. package/src/main/js/sap/ushell/services/Configuration.js +2 -2
  785. package/src/main/js/sap/ushell/services/ConfigurationDefaults.js +2 -2
  786. package/src/main/js/sap/ushell/services/Container.js +1 -1
  787. package/src/main/js/sap/ushell/services/ContentExtensionAdapterFactory.js +2 -2
  788. package/src/main/js/sap/ushell/services/CrossApplicationNavigation.js +2 -2
  789. package/src/main/js/sap/ushell/services/DarkModeSupport.js +15 -6
  790. package/src/main/js/sap/ushell/services/EndUserFeedback.js +1 -1
  791. package/src/main/js/sap/ushell/services/Extension/Item.js +2 -2
  792. package/src/main/js/sap/ushell/services/Extension.js +2 -2
  793. package/src/main/js/sap/ushell/services/FlpLaunchPage.js +2 -2
  794. package/src/main/js/sap/ushell/services/FrameBoundExtension/FloatingContainer.js +2 -2
  795. package/src/main/js/sap/ushell/services/FrameBoundExtension/Footer.js +2 -2
  796. package/src/main/js/sap/ushell/services/FrameBoundExtension/Item.js +2 -2
  797. package/src/main/js/sap/ushell/services/FrameBoundExtension/SidePane.js +2 -2
  798. package/src/main/js/sap/ushell/services/FrameBoundExtension/ToolArea.js +2 -2
  799. package/src/main/js/sap/ushell/services/FrameBoundExtension/UserSettingsEntry.js +63 -0
  800. package/src/main/js/sap/ushell/services/FrameBoundExtension.js +14 -10
  801. package/src/main/js/sap/ushell/services/LaunchPage.js +2 -2
  802. package/src/main/js/sap/ushell/services/Menu.js +2 -2
  803. package/src/main/js/sap/ushell/services/Message.js +2 -2
  804. package/src/main/js/sap/ushell/services/MessageBroker/MessageBrokerEngine.js +269 -143
  805. package/src/main/js/sap/ushell/services/MessageBroker.js +2 -2
  806. package/src/main/js/sap/ushell/services/MessageInternal.js +2 -2
  807. package/src/main/js/sap/ushell/services/NavTargetResolution.js +1 -1
  808. package/src/main/js/sap/ushell/services/NavTargetResolutionInternal.js +1 -1
  809. package/src/main/js/sap/ushell/services/Navigation/compatibility.js +2 -2
  810. package/src/main/js/sap/ushell/services/Navigation/utils.js +2 -2
  811. package/src/main/js/sap/ushell/services/Navigation.js +6 -6
  812. package/src/main/js/sap/ushell/services/NavigationDataProvider.js +2 -2
  813. package/src/main/js/sap/ushell/services/Notifications.js +1 -1
  814. package/src/main/js/sap/ushell/services/NotificationsV2.js +1 -1
  815. package/src/main/js/sap/ushell/services/PageBuilding.js +2 -2
  816. package/src/main/js/sap/ushell/services/PagePersistence.js +2 -2
  817. package/src/main/js/sap/ushell/services/PageReferencing.js +2 -2
  818. package/src/main/js/sap/ushell/services/Pages.js +2 -2
  819. package/src/main/js/sap/ushell/services/Personalization.js +2 -2
  820. package/src/main/js/sap/ushell/services/PersonalizationV2/ContextContainer.js +1 -1
  821. package/src/main/js/sap/ushell/services/PersonalizationV2/Personalizer.js +1 -1
  822. package/src/main/js/sap/ushell/services/PersonalizationV2/TransientPersonalizer.js +1 -1
  823. package/src/main/js/sap/ushell/services/PersonalizationV2/Variant.js +1 -1
  824. package/src/main/js/sap/ushell/services/PersonalizationV2/VariantSet.js +1 -1
  825. package/src/main/js/sap/ushell/services/PersonalizationV2/VariantSetAdapter.js +1 -1
  826. package/src/main/js/sap/ushell/services/PersonalizationV2/WindowAdapter.js +1 -1
  827. package/src/main/js/sap/ushell/services/PersonalizationV2/WindowAdapterContainer.js +1 -1
  828. package/src/main/js/sap/ushell/services/PersonalizationV2/constants.js +1 -1
  829. package/src/main/js/sap/ushell/services/PersonalizationV2/constants.private.js +1 -1
  830. package/src/main/js/sap/ushell/services/PersonalizationV2/utils.js +1 -1
  831. package/src/main/js/sap/ushell/services/PersonalizationV2.js +2 -2
  832. package/src/main/js/sap/ushell/services/PluginManager/Extensions.js +2 -2
  833. package/src/main/js/sap/ushell/services/PluginManager/HeaderExtensions.js +2 -2
  834. package/src/main/js/sap/ushell/services/PluginManager/MenuExtensions.js +2 -2
  835. package/src/main/js/sap/ushell/services/PluginManager/SimpleExpression.js +89 -0
  836. package/src/main/js/sap/ushell/services/PluginManager.js +68 -25
  837. package/src/main/js/sap/ushell/services/ReferenceResolver.js +4 -4
  838. package/src/main/js/sap/ushell/services/Search.js +2 -2
  839. package/src/main/js/sap/ushell/services/SearchCEP.js +2 -2
  840. package/src/main/js/sap/ushell/services/SearchableContent.js +2 -2
  841. package/src/main/js/sap/ushell/services/ShellNavigation.js +2 -2
  842. package/src/main/js/sap/ushell/services/ShellNavigationHashChanger.js +1 -1
  843. package/src/main/js/sap/ushell/services/ShellNavigationInternal.js +1 -1
  844. package/src/main/js/sap/ushell/services/SmartNavigation.js +2 -2
  845. package/src/main/js/sap/ushell/services/SpaceContent.js +2 -2
  846. package/src/main/js/sap/ushell/services/SupportTicket.js +1 -1
  847. package/src/main/js/sap/ushell/services/UITracer.js +2 -2
  848. package/src/main/js/sap/ushell/services/URLParsing.js +1 -1
  849. package/src/main/js/sap/ushell/services/URLShortening.js +2 -2
  850. package/src/main/js/sap/ushell/services/URLTemplate.js +2 -2
  851. package/src/main/js/sap/ushell/services/Ui5ComponentHandle.js +11 -1
  852. package/src/main/js/sap/ushell/services/Ui5ComponentLoader/utils.js +2 -2
  853. package/src/main/js/sap/ushell/services/Ui5ComponentLoader.js +2 -2
  854. package/src/main/js/sap/ushell/services/UsageAnalytics.js +1 -1
  855. package/src/main/js/sap/ushell/services/UserDefaultParameterPersistence.js +2 -2
  856. package/src/main/js/sap/ushell/services/UserDefaultParameters.js +2 -2
  857. package/src/main/js/sap/ushell/services/UserInfo.js +2 -2
  858. package/src/main/js/sap/ushell/services/UserRecents/RecentActivity.js +1 -1
  859. package/src/main/js/sap/ushell/services/UserRecents/RecentAppsUsage.js +1 -1
  860. package/src/main/js/sap/ushell/services/UserRecents/RecentsList.js +1 -1
  861. package/src/main/js/sap/ushell/services/UserRecents/UserRecentsBase.js +1 -1
  862. package/src/main/js/sap/ushell/services/UserRecents.js +2 -2
  863. package/src/main/js/sap/ushell/services/VisualizationDataProvider.js +2 -2
  864. package/src/main/js/sap/ushell/services/VisualizationInstantiation.js +2 -2
  865. package/src/main/js/sap/ushell/services/_AppState/AppStatePersistencyMethod.js +1 -1
  866. package/src/main/js/sap/ushell/services/_ContentExtensionAdapterFactory/ContentExtensionAdapterConfig.js +2 -2
  867. package/src/main/js/sap/ushell/services/_ContentExtensionAdapterFactory/FeaturedGroupConfig.js +2 -2
  868. package/src/main/js/sap/ushell/services/_CrossApplicationNavigation/utils.js +2 -2
  869. package/src/main/js/sap/ushell/services/_PageReferencing/PageReferencer.js +2 -2
  870. package/src/main/js/sap/ushell/services/_Personalization/ContextContainer.js +1 -1
  871. package/src/main/js/sap/ushell/services/_Personalization/PersonalizationContainer.js +1 -1
  872. package/src/main/js/sap/ushell/services/_Personalization/PersonalizationContainerVariant.js +1 -1
  873. package/src/main/js/sap/ushell/services/_Personalization/PersonalizationContainerVariantSet.js +1 -1
  874. package/src/main/js/sap/ushell/services/_Personalization/Personalizer.js +1 -1
  875. package/src/main/js/sap/ushell/services/_Personalization/TransientPersonalizer.js +1 -1
  876. package/src/main/js/sap/ushell/services/_Personalization/Variant.js +1 -1
  877. package/src/main/js/sap/ushell/services/_Personalization/VariantSet.js +1 -1
  878. package/src/main/js/sap/ushell/services/_Personalization/VariantSetAdapter.js +1 -1
  879. package/src/main/js/sap/ushell/services/_Personalization/WindowAdapter.js +1 -1
  880. package/src/main/js/sap/ushell/services/_Personalization/WindowAdapterContainer.js +1 -1
  881. package/src/main/js/sap/ushell/services/_Personalization/constants.js +1 -1
  882. package/src/main/js/sap/ushell/services/_Personalization/constants.private.js +1 -1
  883. package/src/main/js/sap/ushell/services/_Personalization/utils.js +1 -1
  884. package/src/main/js/sap/ushell/services/appstate/AppState.js +1 -1
  885. package/src/main/js/sap/ushell/services/appstate/AppStatePersistencyMethod.js +1 -1
  886. package/src/main/js/sap/ushell/services/appstate/AppStatePersistencySettings.js +1 -1
  887. package/src/main/js/sap/ushell/services/appstate/LimitedBuffer.js +1 -1
  888. package/src/main/js/sap/ushell/services/appstate/Sequentializer.js +1 -1
  889. package/src/main/js/sap/ushell/services/appstate/SequentializingAdapter.js +1 -1
  890. package/src/main/js/sap/ushell/services/appstate/WindowAdapter.js +1 -1
  891. package/src/main/js/sap/ushell/services/personalization/VariantSetAdapter.js +1 -1
  892. package/src/main/js/sap/ushell/state/BackNavigation.js +91 -0
  893. package/src/main/js/sap/ushell/state/BaseState.js +1 -1
  894. package/src/main/js/sap/ushell/state/BindingHelper.js +18 -15
  895. package/src/main/js/sap/ushell/state/ControlManager.js +1 -1
  896. package/src/main/js/sap/ushell/state/CurrentState.js +1 -1
  897. package/src/main/js/sap/ushell/state/KeepAlive.js +1 -1
  898. package/src/main/js/sap/ushell/state/ShellModel.js +1 -1
  899. package/src/main/js/sap/ushell/state/StateManager/LaunchpadState.js +1 -1
  900. package/src/main/js/sap/ushell/state/StateManager/Operation.js +1 -1
  901. package/src/main/js/sap/ushell/state/StateManager/ShellMode.js +1 -1
  902. package/src/main/js/sap/ushell/state/StateManager.js +7 -1
  903. package/src/main/js/sap/ushell/state/StateRules.js +1 -1
  904. package/src/main/js/sap/ushell/state/StrategyFactory/DefaultStrategy.js +1 -1
  905. package/src/main/js/sap/ushell/state/StrategyFactory/FloatingActionsStrategy.js +1 -1
  906. package/src/main/js/sap/ushell/state/StrategyFactory/FloatingContainerStrategy.js +1 -1
  907. package/src/main/js/sap/ushell/state/StrategyFactory/HeadEndItemsStrategy.js +1 -1
  908. package/src/main/js/sap/ushell/state/StrategyFactory/HeadItemsStrategy.js +4 -2
  909. package/src/main/js/sap/ushell/state/StrategyFactory/SidePaneStrategy.js +1 -1
  910. package/src/main/js/sap/ushell/state/StrategyFactory/SubHeaderStrategy.js +1 -1
  911. package/src/main/js/sap/ushell/state/StrategyFactory/UserActionsStrategy.js +7 -6
  912. package/src/main/js/sap/ushell/state/StrategyFactory.js +1 -1
  913. package/src/main/js/sap/ushell/support/plugins/flpConfig/FlpConfigurationPlugin.js +2 -2
  914. package/src/main/js/sap/ushell/themes/base/library.source.less +1 -1
  915. package/src/main/js/sap/ushell/themes/sap_belize/Section.less +6 -6
  916. package/src/main/js/sap/ushell/themes/sap_belize/TileContainer.less +9 -9
  917. package/src/main/js/sap/ushell/themes/sap_belize/library.source.less +1 -1
  918. package/src/main/js/sap/ushell/themes/sap_belize_base/library.source.less +1 -1
  919. package/src/main/js/sap/ushell/themes/sap_belize_hcb/HistoryScreen.less +1 -1
  920. package/src/main/js/sap/ushell/themes/sap_belize_hcb/library.source.less +1 -1
  921. package/src/main/js/sap/ushell/themes/sap_belize_hcw/HistoryScreen.less +1 -1
  922. package/src/main/js/sap/ushell/themes/sap_belize_hcw/library.source.less +1 -1
  923. package/src/main/js/sap/ushell/themes/sap_belize_plus/library.source.less +1 -1
  924. package/src/main/js/sap/ushell/themes/sap_bluecrystal/HistoryScreen.less +1 -1
  925. package/src/main/js/sap/ushell/themes/sap_bluecrystal/library.source.less +1 -1
  926. package/src/main/js/sap/ushell/themes/sap_bluecrystal_base/library.source.less +1 -1
  927. package/src/main/js/sap/ushell/themes/sap_fiori_3/Section.less +6 -6
  928. package/src/main/js/sap/ushell/themes/sap_fiori_3/TileContainer.less +7 -7
  929. package/src/main/js/sap/ushell/themes/sap_fiori_3/library.source.less +1 -1
  930. package/src/main/js/sap/ushell/themes/sap_fiori_3_dark/Section.less +6 -6
  931. package/src/main/js/sap/ushell/themes/sap_fiori_3_dark/ShellHeader.less +4 -4
  932. package/src/main/js/sap/ushell/themes/sap_fiori_3_dark/TileContainer.less +7 -7
  933. package/src/main/js/sap/ushell/themes/sap_fiori_3_dark/library.source.less +1 -1
  934. package/src/main/js/sap/ushell/themes/sap_fiori_3_hcb/library.source.less +1 -1
  935. package/src/main/js/sap/ushell/themes/sap_fiori_3_hcw/library.source.less +1 -1
  936. package/src/main/js/sap/ushell/themes/sap_hcb/HistoryScreen.less +1 -1
  937. package/src/main/js/sap/ushell/themes/sap_hcb/library.source.less +1 -1
  938. package/src/main/js/sap/ushell/themes/sap_horizon/Section.less +4 -6
  939. package/src/main/js/sap/ushell/themes/sap_horizon/TileContainer.less +7 -8
  940. package/src/main/js/sap/ushell/themes/sap_horizon/library.source.less +1 -1
  941. package/src/main/js/sap/ushell/themes/sap_horizon_dark/Section.less +7 -7
  942. package/src/main/js/sap/ushell/themes/sap_horizon_dark/TileContainer.less +7 -7
  943. package/src/main/js/sap/ushell/themes/sap_horizon_dark/library.source.less +1 -1
  944. package/src/main/js/sap/ushell/themes/sap_horizon_hcb/library.source.less +1 -1
  945. package/src/main/js/sap/ushell/themes/sap_horizon_hcw/library.source.less +1 -1
  946. package/src/main/js/sap/ushell/thirdparty/Icons.js +19 -0
  947. package/src/main/js/sap/ushell/thirdparty/Theme.js +130 -0
  948. package/src/main/js/sap/ushell/thirdparty/UserMenu.js +1819 -0
  949. package/src/main/js/sap/ushell/thirdparty/UserMenuAccount.js +104 -0
  950. package/src/main/js/sap/ushell/thirdparty/UserMenuItem.js +420 -0
  951. package/src/main/js/sap/ushell/thirdparty/_dynamics/SAP-icons.js +2508 -0
  952. package/src/main/js/sap/ushell/thirdparty/_dynamics/SAP-icons2.js +2508 -0
  953. package/src/main/js/sap/ushell/thirdparty/_dynamics/ar.js +7139 -0
  954. package/src/main/js/sap/ushell/thirdparty/_dynamics/ar_EG.js +7139 -0
  955. package/src/main/js/sap/ushell/thirdparty/_dynamics/ar_SA.js +7138 -0
  956. package/src/main/js/sap/ushell/thirdparty/_dynamics/bg.js +6031 -0
  957. package/src/main/js/sap/ushell/thirdparty/_dynamics/ca.js +6133 -0
  958. package/src/main/js/sap/ushell/thirdparty/_dynamics/cnr.js +6219 -0
  959. package/src/main/js/sap/ushell/thirdparty/_dynamics/cs.js +6759 -0
  960. package/src/main/js/sap/ushell/thirdparty/_dynamics/da.js +5977 -0
  961. package/src/main/js/sap/ushell/thirdparty/_dynamics/de.js +6098 -0
  962. package/src/main/js/sap/ushell/thirdparty/_dynamics/de_AT.js +6099 -0
  963. package/src/main/js/sap/ushell/thirdparty/_dynamics/de_CH.js +6097 -0
  964. package/src/main/js/sap/ushell/thirdparty/_dynamics/el.js +5882 -0
  965. package/src/main/js/sap/ushell/thirdparty/_dynamics/el_CY.js +5882 -0
  966. package/src/main/js/sap/ushell/thirdparty/_dynamics/en.js +6094 -0
  967. package/src/main/js/sap/ushell/thirdparty/_dynamics/en_AU.js +6134 -0
  968. package/src/main/js/sap/ushell/thirdparty/_dynamics/en_GB.js +6125 -0
  969. package/src/main/js/sap/ushell/thirdparty/_dynamics/en_HK.js +6136 -0
  970. package/src/main/js/sap/ushell/thirdparty/_dynamics/en_IE.js +6125 -0
  971. package/src/main/js/sap/ushell/thirdparty/_dynamics/en_IN.js +6132 -0
  972. package/src/main/js/sap/ushell/thirdparty/_dynamics/en_NZ.js +6125 -0
  973. package/src/main/js/sap/ushell/thirdparty/_dynamics/en_PG.js +6126 -0
  974. package/src/main/js/sap/ushell/thirdparty/_dynamics/en_SG.js +6132 -0
  975. package/src/main/js/sap/ushell/thirdparty/_dynamics/en_ZA.js +6126 -0
  976. package/src/main/js/sap/ushell/thirdparty/_dynamics/es.js +6153 -0
  977. package/src/main/js/sap/ushell/thirdparty/_dynamics/es_AR.js +6156 -0
  978. package/src/main/js/sap/ushell/thirdparty/_dynamics/es_BO.js +6155 -0
  979. package/src/main/js/sap/ushell/thirdparty/_dynamics/es_CL.js +6048 -0
  980. package/src/main/js/sap/ushell/thirdparty/_dynamics/es_CO.js +6048 -0
  981. package/src/main/js/sap/ushell/thirdparty/_dynamics/es_MX.js +6157 -0
  982. package/src/main/js/sap/ushell/thirdparty/_dynamics/es_PE.js +5939 -0
  983. package/src/main/js/sap/ushell/thirdparty/_dynamics/es_UY.js +5941 -0
  984. package/src/main/js/sap/ushell/thirdparty/_dynamics/es_VE.js +5940 -0
  985. package/src/main/js/sap/ushell/thirdparty/_dynamics/et.js +6077 -0
  986. package/src/main/js/sap/ushell/thirdparty/_dynamics/fa.js +6002 -0
  987. package/src/main/js/sap/ushell/thirdparty/_dynamics/fi.js +6245 -0
  988. package/src/main/js/sap/ushell/thirdparty/_dynamics/fr.js +6047 -0
  989. package/src/main/js/sap/ushell/thirdparty/_dynamics/fr_BE.js +6047 -0
  990. package/src/main/js/sap/ushell/thirdparty/_dynamics/fr_CA.js +6041 -0
  991. package/src/main/js/sap/ushell/thirdparty/_dynamics/fr_CH.js +6065 -0
  992. package/src/main/js/sap/ushell/thirdparty/_dynamics/fr_LU.js +6047 -0
  993. package/src/main/js/sap/ushell/thirdparty/_dynamics/he.js +6593 -0
  994. package/src/main/js/sap/ushell/thirdparty/_dynamics/hi.js +5911 -0
  995. package/src/main/js/sap/ushell/thirdparty/_dynamics/hr.js +6246 -0
  996. package/src/main/js/sap/ushell/thirdparty/_dynamics/hu.js +5995 -0
  997. package/src/main/js/sap/ushell/thirdparty/_dynamics/id.js +5783 -0
  998. package/src/main/js/sap/ushell/thirdparty/_dynamics/it.js +6036 -0
  999. package/src/main/js/sap/ushell/thirdparty/_dynamics/it_CH.js +6036 -0
  1000. package/src/main/js/sap/ushell/thirdparty/_dynamics/ja.js +5942 -0
  1001. package/src/main/js/sap/ushell/thirdparty/_dynamics/kk.js +5989 -0
  1002. package/src/main/js/sap/ushell/thirdparty/_dynamics/ko.js +5823 -0
  1003. package/src/main/js/sap/ushell/thirdparty/_dynamics/lt.js +6628 -0
  1004. package/src/main/js/sap/ushell/thirdparty/_dynamics/lv.js +6164 -0
  1005. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_ar.js +182 -0
  1006. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_ar2.js +650 -0
  1007. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_ar3.js +515 -0
  1008. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_bg.js +182 -0
  1009. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_bg2.js +650 -0
  1010. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_bg3.js +515 -0
  1011. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_ca.js +182 -0
  1012. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_ca2.js +650 -0
  1013. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_ca3.js +515 -0
  1014. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_cnr.js +182 -0
  1015. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_cnr2.js +650 -0
  1016. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_cnr3.js +515 -0
  1017. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_cs.js +182 -0
  1018. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_cs2.js +650 -0
  1019. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_cs3.js +515 -0
  1020. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_cy.js +182 -0
  1021. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_cy2.js +650 -0
  1022. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_cy3.js +515 -0
  1023. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_da.js +182 -0
  1024. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_da2.js +650 -0
  1025. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_da3.js +515 -0
  1026. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_de.js +182 -0
  1027. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_de2.js +650 -0
  1028. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_de3.js +515 -0
  1029. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_el.js +182 -0
  1030. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_el2.js +650 -0
  1031. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_el3.js +515 -0
  1032. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_en.js +182 -0
  1033. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_en2.js +650 -0
  1034. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_en3.js +515 -0
  1035. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_en_GB.js +182 -0
  1036. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_en_GB2.js +650 -0
  1037. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_en_GB3.js +515 -0
  1038. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_en_US_sappsd.js +182 -0
  1039. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_en_US_sappsd2.js +650 -0
  1040. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_en_US_sappsd3.js +515 -0
  1041. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_en_US_saprigi.js +182 -0
  1042. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_en_US_saprigi2.js +656 -0
  1043. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_en_US_saprigi3.js +542 -0
  1044. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_en_US_saptrc.js +182 -0
  1045. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_en_US_saptrc2.js +650 -0
  1046. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_en_US_saptrc3.js +515 -0
  1047. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_es.js +182 -0
  1048. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_es2.js +650 -0
  1049. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_es3.js +515 -0
  1050. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_es_MX.js +182 -0
  1051. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_es_MX2.js +650 -0
  1052. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_es_MX3.js +515 -0
  1053. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_et.js +182 -0
  1054. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_et2.js +650 -0
  1055. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_et3.js +515 -0
  1056. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_fi.js +182 -0
  1057. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_fi2.js +650 -0
  1058. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_fi3.js +515 -0
  1059. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_fr.js +182 -0
  1060. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_fr2.js +650 -0
  1061. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_fr3.js +515 -0
  1062. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_fr_CA.js +182 -0
  1063. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_fr_CA2.js +650 -0
  1064. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_fr_CA3.js +515 -0
  1065. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_hi.js +182 -0
  1066. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_hi2.js +650 -0
  1067. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_hi3.js +515 -0
  1068. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_hr.js +182 -0
  1069. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_hr2.js +650 -0
  1070. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_hr3.js +515 -0
  1071. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_hu.js +182 -0
  1072. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_hu2.js +650 -0
  1073. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_hu3.js +515 -0
  1074. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_in.js +182 -0
  1075. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_in2.js +266 -0
  1076. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_in3.js +143 -0
  1077. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_it.js +182 -0
  1078. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_it2.js +650 -0
  1079. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_it3.js +515 -0
  1080. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_iw.js +182 -0
  1081. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_iw2.js +650 -0
  1082. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_iw3.js +515 -0
  1083. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_ja.js +182 -0
  1084. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_ja2.js +650 -0
  1085. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_ja3.js +515 -0
  1086. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_kk.js +182 -0
  1087. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_kk2.js +650 -0
  1088. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_kk3.js +515 -0
  1089. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_ko.js +182 -0
  1090. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_ko2.js +650 -0
  1091. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_ko3.js +515 -0
  1092. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_lt.js +182 -0
  1093. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_lt2.js +650 -0
  1094. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_lt3.js +515 -0
  1095. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_lv.js +182 -0
  1096. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_lv2.js +650 -0
  1097. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_lv3.js +515 -0
  1098. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_mk.js +182 -0
  1099. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_mk2.js +650 -0
  1100. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_mk3.js +515 -0
  1101. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_ms.js +182 -0
  1102. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_ms2.js +650 -0
  1103. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_ms3.js +515 -0
  1104. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_nl.js +182 -0
  1105. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_nl2.js +650 -0
  1106. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_nl3.js +515 -0
  1107. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_no.js +182 -0
  1108. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_no2.js +650 -0
  1109. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_no3.js +515 -0
  1110. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_pl.js +182 -0
  1111. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_pl2.js +650 -0
  1112. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_pl3.js +515 -0
  1113. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_pt.js +182 -0
  1114. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_pt2.js +650 -0
  1115. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_pt3.js +515 -0
  1116. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_pt_PT.js +182 -0
  1117. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_pt_PT2.js +650 -0
  1118. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_pt_PT3.js +515 -0
  1119. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_ro.js +182 -0
  1120. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_ro2.js +650 -0
  1121. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_ro3.js +515 -0
  1122. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_ru.js +182 -0
  1123. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_ru2.js +650 -0
  1124. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_ru3.js +515 -0
  1125. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_sh.js +182 -0
  1126. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_sh2.js +650 -0
  1127. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_sh3.js +515 -0
  1128. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_sk.js +182 -0
  1129. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_sk2.js +650 -0
  1130. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_sk3.js +515 -0
  1131. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_sl.js +182 -0
  1132. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_sl2.js +650 -0
  1133. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_sl3.js +515 -0
  1134. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_sr.js +182 -0
  1135. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_sr2.js +650 -0
  1136. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_sr3.js +515 -0
  1137. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_sv.js +182 -0
  1138. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_sv2.js +650 -0
  1139. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_sv3.js +515 -0
  1140. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_th.js +182 -0
  1141. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_th2.js +650 -0
  1142. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_th3.js +515 -0
  1143. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_tr.js +182 -0
  1144. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_tr2.js +650 -0
  1145. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_tr3.js +515 -0
  1146. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_uk.js +182 -0
  1147. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_uk2.js +650 -0
  1148. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_uk3.js +515 -0
  1149. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_vi.js +182 -0
  1150. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_vi2.js +650 -0
  1151. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_vi3.js +515 -0
  1152. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_zh_CN.js +182 -0
  1153. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_zh_CN2.js +650 -0
  1154. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_zh_CN3.js +515 -0
  1155. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_zh_TW.js +182 -0
  1156. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_zh_TW2.js +650 -0
  1157. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_zh_TW3.js +515 -0
  1158. package/src/main/js/sap/ushell/thirdparty/_dynamics/mk.js +6095 -0
  1159. package/src/main/js/sap/ushell/thirdparty/_dynamics/ms.js +5617 -0
  1160. package/src/main/js/sap/ushell/thirdparty/_dynamics/nb.js +6085 -0
  1161. package/src/main/js/sap/ushell/thirdparty/_dynamics/nl.js +6252 -0
  1162. package/src/main/js/sap/ushell/thirdparty/_dynamics/nl_BE.js +6252 -0
  1163. package/src/main/js/sap/ushell/thirdparty/_dynamics/parameters-bundle.css.js +7 -0
  1164. package/src/main/js/sap/ushell/thirdparty/_dynamics/parameters-bundle.css10.js +7 -0
  1165. package/src/main/js/sap/ushell/thirdparty/_dynamics/parameters-bundle.css11.js +7 -0
  1166. package/src/main/js/sap/ushell/thirdparty/_dynamics/parameters-bundle.css12.js +7 -0
  1167. package/src/main/js/sap/ushell/thirdparty/_dynamics/parameters-bundle.css13.js +7 -0
  1168. package/src/main/js/sap/ushell/thirdparty/_dynamics/parameters-bundle.css14.js +7 -0
  1169. package/src/main/js/sap/ushell/thirdparty/_dynamics/parameters-bundle.css15.js +7 -0
  1170. package/src/main/js/sap/ushell/thirdparty/_dynamics/parameters-bundle.css16.js +7 -0
  1171. package/src/main/js/sap/ushell/thirdparty/_dynamics/parameters-bundle.css17.js +7 -0
  1172. package/src/main/js/sap/ushell/thirdparty/_dynamics/parameters-bundle.css18.js +7 -0
  1173. package/src/main/js/sap/ushell/thirdparty/_dynamics/parameters-bundle.css19.js +7 -0
  1174. package/src/main/js/sap/ushell/thirdparty/_dynamics/parameters-bundle.css2.js +7 -0
  1175. package/src/main/js/sap/ushell/thirdparty/_dynamics/parameters-bundle.css20.js +7 -0
  1176. package/src/main/js/sap/ushell/thirdparty/_dynamics/parameters-bundle.css21.js +7 -0
  1177. package/src/main/js/sap/ushell/thirdparty/_dynamics/parameters-bundle.css22.js +7 -0
  1178. package/src/main/js/sap/ushell/thirdparty/_dynamics/parameters-bundle.css23.js +7 -0
  1179. package/src/main/js/sap/ushell/thirdparty/_dynamics/parameters-bundle.css24.js +7 -0
  1180. package/src/main/js/sap/ushell/thirdparty/_dynamics/parameters-bundle.css3.js +7 -0
  1181. package/src/main/js/sap/ushell/thirdparty/_dynamics/parameters-bundle.css4.js +7 -0
  1182. package/src/main/js/sap/ushell/thirdparty/_dynamics/parameters-bundle.css5.js +7 -0
  1183. package/src/main/js/sap/ushell/thirdparty/_dynamics/parameters-bundle.css6.js +7 -0
  1184. package/src/main/js/sap/ushell/thirdparty/_dynamics/parameters-bundle.css7.js +7 -0
  1185. package/src/main/js/sap/ushell/thirdparty/_dynamics/parameters-bundle.css8.js +7 -0
  1186. package/src/main/js/sap/ushell/thirdparty/_dynamics/parameters-bundle.css9.js +7 -0
  1187. package/src/main/js/sap/ushell/thirdparty/_dynamics/pl.js +6639 -0
  1188. package/src/main/js/sap/ushell/thirdparty/_dynamics/pt.js +6165 -0
  1189. package/src/main/js/sap/ushell/thirdparty/_dynamics/pt_PT.js +6230 -0
  1190. package/src/main/js/sap/ushell/thirdparty/_dynamics/ro.js +6250 -0
  1191. package/src/main/js/sap/ushell/thirdparty/_dynamics/ru.js +6553 -0
  1192. package/src/main/js/sap/ushell/thirdparty/_dynamics/ru_UA.js +6553 -0
  1193. package/src/main/js/sap/ushell/thirdparty/_dynamics/sk.js +6482 -0
  1194. package/src/main/js/sap/ushell/thirdparty/_dynamics/sl.js +6494 -0
  1195. package/src/main/js/sap/ushell/thirdparty/_dynamics/sr.js +6291 -0
  1196. package/src/main/js/sap/ushell/thirdparty/_dynamics/sr_Latn.js +6278 -0
  1197. package/src/main/js/sap/ushell/thirdparty/_dynamics/sv.js +6126 -0
  1198. package/src/main/js/sap/ushell/thirdparty/_dynamics/th.js +5928 -0
  1199. package/src/main/js/sap/ushell/thirdparty/_dynamics/tr.js +6146 -0
  1200. package/src/main/js/sap/ushell/thirdparty/_dynamics/uk.js +6504 -0
  1201. package/src/main/js/sap/ushell/thirdparty/_dynamics/vi.js +5720 -0
  1202. package/src/main/js/sap/ushell/thirdparty/_dynamics/zh_CN.js +5770 -0
  1203. package/src/main/js/sap/ushell/thirdparty/_dynamics/zh_HK.js +5779 -0
  1204. package/src/main/js/sap/ushell/thirdparty/_dynamics/zh_SG.js +5779 -0
  1205. package/src/main/js/sap/ushell/thirdparty/_dynamics/zh_TW.js +5846 -0
  1206. package/src/main/js/sap/ushell/thirdparty/i18n.js +25 -0
  1207. package/src/main/js/sap/ushell/thirdparty/i18nBundle.js +9 -0
  1208. package/src/main/js/sap/ushell/thirdparty/parameters-bundle.css25.js +7203 -0
  1209. package/src/main/js/sap/ushell/thirdparty/property.js +50 -0
  1210. package/src/main/js/sap/ushell/thirdparty/ui5/webcomponents/dist/ListItem.js +81 -0
  1211. package/src/main/js/sap/ushell/thirdparty/ui5/webcomponents/dist/ListItemBase.js +44 -0
  1212. package/src/main/js/sap/ushell/thirdparty/ui5/webcomponents/dist/MenuItem.js +119 -0
  1213. package/src/main/js/sap/ushell/thirdparty/ui5/webcomponents-base.js +198 -0
  1214. package/src/main/js/sap/ushell/thirdparty/ui5/webcomponents-fiori/UserMenu.js +4 -0
  1215. package/src/main/js/sap/ushell/thirdparty/ui5/webcomponents-fiori/UserMenuAccount.js +4 -0
  1216. package/src/main/js/sap/ushell/thirdparty/ui5/webcomponents-fiori/UserMenuItem.js +4 -0
  1217. package/src/main/js/sap/ushell/thirdparty/ui5/webcomponents-fiori/dist/UserMenu.js +99 -0
  1218. package/src/main/js/sap/ushell/thirdparty/ui5/webcomponents-fiori/dist/UserMenuAccount.js +75 -0
  1219. package/src/main/js/sap/ushell/thirdparty/ui5/webcomponents-fiori/dist/UserMenuItem.js +39 -0
  1220. package/src/main/js/sap/ushell/thirdparty/ui5/webcomponents-fiori.js +333 -0
  1221. package/src/main/js/sap/ushell/thirdparty/ui5/webcomponents-icons/AllIcons.js +26 -0
  1222. package/src/main/js/sap/ushell/thirdparty/ui5/webcomponents.js +636 -0
  1223. package/src/main/js/sap/ushell/thirdparty/webcomponents-base.js +26 -0
  1224. package/src/main/js/sap/ushell/thirdparty/webcomponents-fiori.js +146 -0
  1225. package/src/main/js/sap/ushell/thirdparty/webcomponents.js +385 -0
  1226. package/src/main/js/sap/ushell/ui/AppContainer.js +23 -9
  1227. package/src/main/js/sap/ushell/ui/AppContainerRenderer.js +1 -1
  1228. package/src/main/js/sap/ushell/ui/ContentNodeSelector.js +1 -1
  1229. package/src/main/js/sap/ushell/ui/ContentNodeSelectorRenderer.js +1 -1
  1230. package/src/main/js/sap/ushell/ui/ContentNodeTreeItem.js +1 -1
  1231. package/src/main/js/sap/ushell/ui/CustomGroupHeaderListItem.js +1 -1
  1232. package/src/main/js/sap/ushell/ui/CustomGroupHeaderListItemRenderer.js +1 -1
  1233. package/src/main/js/sap/ushell/ui/QuickAccess.js +1 -1
  1234. package/src/main/js/sap/ushell/ui/ShellHeader.js +215 -57
  1235. package/src/main/js/sap/ushell/ui/ShellHeaderRenderer.js +83 -44
  1236. package/src/main/js/sap/ushell/ui/appfinder/AppBox.js +1 -1
  1237. package/src/main/js/sap/ushell/ui/appfinder/AppBoxInternal.js +1 -1
  1238. package/src/main/js/sap/ushell/ui/appfinder/AppBoxInternalRenderer.js +1 -1
  1239. package/src/main/js/sap/ushell/ui/appfinder/AppBoxRenderer.js +1 -1
  1240. package/src/main/js/sap/ushell/ui/appfinder/PinButton.js +1 -1
  1241. package/src/main/js/sap/ushell/ui/appfinder/PinButtonRenderer.js +1 -1
  1242. package/src/main/js/sap/ushell/ui/bookmark/SaveOnPage.controller.js +1 -1
  1243. package/src/main/js/sap/ushell/ui/cards/FrequentActivitiesExtension.js +1 -1
  1244. package/src/main/js/sap/ushell/ui/cards/RecentActivitiesExtension.js +2 -2
  1245. package/src/main/js/sap/ushell/ui/footerbar/AboutButton.js +1 -1
  1246. package/src/main/js/sap/ushell/ui/footerbar/AboutDialog.controller.js +1 -1
  1247. package/src/main/js/sap/ushell/ui/footerbar/AddBookmarkButton.js +1 -1
  1248. package/src/main/js/sap/ushell/ui/footerbar/ContactSupportButton.js +1 -1
  1249. package/src/main/js/sap/ushell/ui/footerbar/ContactSupportDialog.controller.js +1 -1
  1250. package/src/main/js/sap/ushell/ui/footerbar/JamDiscussButton.js +1 -1
  1251. package/src/main/js/sap/ushell/ui/footerbar/JamShareButton.js +1 -1
  1252. package/src/main/js/sap/ushell/ui/footerbar/LogoutButton.js +1 -1
  1253. package/src/main/js/sap/ushell/ui/footerbar/SaveAsTile.controller.js +1 -1
  1254. package/src/main/js/sap/ushell/ui/footerbar/SaveAsTile.view.js +1 -1
  1255. package/src/main/js/sap/ushell/ui/footerbar/SendAsEmailButton.js +1 -1
  1256. package/src/main/js/sap/ushell/ui/launchpad/AccessibilityCustomData.js +1 -1
  1257. package/src/main/js/sap/ushell/ui/launchpad/ActionItem.js +1 -1
  1258. package/src/main/js/sap/ushell/ui/launchpad/AnchorItem.js +1 -1
  1259. package/src/main/js/sap/ushell/ui/launchpad/AnchorItemRenderer.js +1 -1
  1260. package/src/main/js/sap/ushell/ui/launchpad/AnchorNavigationBar.js +1 -1
  1261. package/src/main/js/sap/ushell/ui/launchpad/AnchorNavigationBarRenderer.js +1 -1
  1262. package/src/main/js/sap/ushell/ui/launchpad/CatalogEntryContainer.js +1 -1
  1263. package/src/main/js/sap/ushell/ui/launchpad/CatalogsContainer.js +1 -1
  1264. package/src/main/js/sap/ushell/ui/launchpad/DashboardGroupsContainer.js +1 -1
  1265. package/src/main/js/sap/ushell/ui/launchpad/DashboardGroupsContainerRenderer.js +1 -1
  1266. package/src/main/js/sap/ushell/ui/launchpad/ExtendedChangeDetection.js +2 -2
  1267. package/src/main/js/sap/ushell/ui/launchpad/FailedTileDialog.js +1 -1
  1268. package/src/main/js/sap/ushell/ui/launchpad/GroupHeaderActions.js +1 -1
  1269. package/src/main/js/sap/ushell/ui/launchpad/GroupListItem.js +1 -1
  1270. package/src/main/js/sap/ushell/ui/launchpad/GroupListItemRenderer.js +1 -1
  1271. package/src/main/js/sap/ushell/ui/launchpad/LinkTileWrapper.js +1 -1
  1272. package/src/main/js/sap/ushell/ui/launchpad/LinkTileWrapperRenderer.js +1 -1
  1273. package/src/main/js/sap/ushell/ui/launchpad/LoadingDialog.js +1 -1
  1274. package/src/main/js/sap/ushell/ui/launchpad/LoadingDialogRenderer.js +1 -1
  1275. package/src/main/js/sap/ushell/ui/launchpad/Page.js +1 -1
  1276. package/src/main/js/sap/ushell/ui/launchpad/PageRenderer.js +1 -1
  1277. package/src/main/js/sap/ushell/ui/launchpad/PlusTile.js +1 -1
  1278. package/src/main/js/sap/ushell/ui/launchpad/PlusTileRenderer.js +1 -1
  1279. package/src/main/js/sap/ushell/ui/launchpad/Section.js +2 -2
  1280. package/src/main/js/sap/ushell/ui/launchpad/SectionRenderer.js +1 -1
  1281. package/src/main/js/sap/ushell/ui/launchpad/Tile.js +1 -1
  1282. package/src/main/js/sap/ushell/ui/launchpad/TileContainer.js +1 -1
  1283. package/src/main/js/sap/ushell/ui/launchpad/TileContainerRenderer.js +1 -1
  1284. package/src/main/js/sap/ushell/ui/launchpad/TileContainerUtils.js +1 -1
  1285. package/src/main/js/sap/ushell/ui/launchpad/TileRenderer.js +1 -1
  1286. package/src/main/js/sap/ushell/ui/launchpad/TileState.js +1 -1
  1287. package/src/main/js/sap/ushell/ui/launchpad/TileStateInternal.js +1 -1
  1288. package/src/main/js/sap/ushell/ui/launchpad/TileStateInternalRenderer.js +1 -1
  1289. package/src/main/js/sap/ushell/ui/launchpad/TileStateRenderer.js +1 -1
  1290. package/src/main/js/sap/ushell/ui/launchpad/ViewPortState.js +1 -1
  1291. package/src/main/js/sap/ushell/ui/launchpad/VizInstance.js +1 -1
  1292. package/src/main/js/sap/ushell/ui/launchpad/VizInstanceAbap.js +1 -1
  1293. package/src/main/js/sap/ushell/ui/launchpad/VizInstanceBase.js +1 -1
  1294. package/src/main/js/sap/ushell/ui/launchpad/VizInstanceCdm.js +1 -1
  1295. package/src/main/js/sap/ushell/ui/launchpad/VizInstanceLaunchPage.js +1 -1
  1296. package/src/main/js/sap/ushell/ui/launchpad/VizInstanceLink.js +1 -1
  1297. package/src/main/js/sap/ushell/ui/launchpad/VizInstanceRenderer.js +1 -1
  1298. package/src/main/js/sap/ushell/ui/launchpad/section/CompactArea.js +2 -2
  1299. package/src/main/js/sap/ushell/ui/launchpad/section/CompactAreaRenderer.js +1 -1
  1300. package/src/main/js/sap/ushell/ui/shell/ContentRenderer.js +1 -1
  1301. package/src/main/js/sap/ushell/ui/shell/NavigationMiniTile.js +1 -1
  1302. package/src/main/js/sap/ushell/ui/shell/OverflowListItem.js +1 -1
  1303. package/src/main/js/sap/ushell/ui/shell/RightFloatingContainer.js +1 -1
  1304. package/src/main/js/sap/ushell/ui/shell/ShellAppTitle.js +1 -1
  1305. package/src/main/js/sap/ushell/ui/shell/ShellFloatingAction.js +1 -1
  1306. package/src/main/js/sap/ushell/ui/shell/ShellFloatingActionRenderer.js +1 -1
  1307. package/src/main/js/sap/ushell/ui/shell/ShellFloatingActions.js +1 -9
  1308. package/src/main/js/sap/ushell/ui/shell/ShellHeadItem.js +1 -1
  1309. package/src/main/js/sap/ushell/ui/shell/ShellNavigationMenu.js +1 -1
  1310. package/src/main/js/sap/ushell/ui/shell/SidePane.js +1 -1
  1311. package/src/main/js/sap/ushell/ui/shell/SubHeader.js +8 -51
  1312. package/src/main/js/sap/ushell/ui/shell/SysInfoBar.js +1 -1
  1313. package/src/main/js/sap/ushell/ui/shell/SysInfoBarRenderer.js +1 -1
  1314. package/src/main/js/sap/ushell/ui/shell/ToolArea.js +1 -1
  1315. package/src/main/js/sap/ushell/ui/shell/ToolAreaItem.js +2 -2
  1316. package/src/main/js/sap/ushell/ui/tile/DynamicTile.js +1 -1
  1317. package/src/main/js/sap/ushell/ui/tile/DynamicTileRenderer.js +1 -1
  1318. package/src/main/js/sap/ushell/ui/tile/ImageTile.js +1 -1
  1319. package/src/main/js/sap/ushell/ui/tile/ImageTileRenderer.js +1 -1
  1320. package/src/main/js/sap/ushell/ui/tile/StaticTile.js +1 -1
  1321. package/src/main/js/sap/ushell/ui/tile/StaticTileRenderer.js +1 -1
  1322. package/src/main/js/sap/ushell/ui/tile/TileBase.js +1 -1
  1323. package/src/main/js/sap/ushell/ui/tile/TileBaseRenderer.js +1 -1
  1324. package/src/main/js/sap/ushell/ui/utils.js +2 -2
  1325. package/src/main/js/sap/ushell/ui5service/ShellUIService.js +120 -13
  1326. package/src/main/js/sap/ushell/ui5service/ShellUIServiceFactory.js +2 -2
  1327. package/src/main/js/sap/ushell/ui5service/UserStatus.js +2 -2
  1328. package/src/main/js/sap/ushell/utils/AppType.js +1 -1
  1329. package/src/main/js/sap/ushell/utils/Deferred.js +1 -1
  1330. package/src/main/js/sap/ushell/utils/DynamicTileRequest.js +1 -1
  1331. package/src/main/js/sap/ushell/utils/HttpClient.js +1 -1
  1332. package/src/main/js/sap/ushell/utils/RestrictedJSONModel.js +17 -1
  1333. package/src/main/js/sap/ushell/utils/UriParameters.js +1 -1
  1334. package/src/main/js/sap/ushell/utils/UrlParsing.js +1 -1
  1335. package/src/main/js/sap/ushell/utils/UrlShortening.js +2 -2
  1336. package/src/main/js/sap/ushell/utils/WindowUtils.js +1 -1
  1337. package/src/main/js/sap/ushell/utils/chipsUtils.js +1 -1
  1338. package/src/main/js/sap/ushell/utils/objectOperations.js +1 -1
  1339. package/src/main/js/sap/ushell/utils/tilecard/TileCard.js +1 -1
  1340. package/src/main/js/sap/ushell/utils/tilecard/TileCardExtension.js +1 -1
  1341. package/src/main/js/sap/ushell/utils/type.js +1 -1
  1342. package/src/main/js/sap/ushell/utils/utilsCdm.js +1 -1
  1343. package/src/main/js/sap/ushell/utils/workpage/DestinationResolver.js +1 -1
  1344. package/src/main/js/sap/ushell/utils/workpage/WorkPageHost.js +2 -2
  1345. package/src/main/js/sap/ushell/utils/workpage/WorkPageService.js +3 -3
  1346. package/src/main/js/sap/ushell/utils/workpage/WorkPageVizInstantiation.js +3 -3
  1347. package/src/main/js/sap/ushell/utils/workpage/resources/resources_ar.properties +3 -0
  1348. package/src/main/js/sap/ushell/utils/workpage/resources/resources_bg.properties +3 -0
  1349. package/src/main/js/sap/ushell/utils/workpage/resources/resources_ca.properties +3 -0
  1350. package/src/main/js/sap/ushell/utils/workpage/resources/resources_cnr.properties +3 -0
  1351. package/src/main/js/sap/ushell/utils/workpage/resources/resources_cs.properties +3 -0
  1352. package/src/main/js/sap/ushell/utils/workpage/resources/resources_cy.properties +3 -0
  1353. package/src/main/js/sap/ushell/utils/workpage/resources/resources_da.properties +3 -0
  1354. package/src/main/js/sap/ushell/utils/workpage/resources/resources_de.properties +3 -0
  1355. package/src/main/js/sap/ushell/utils/workpage/resources/resources_el.properties +3 -0
  1356. package/src/main/js/sap/ushell/utils/workpage/resources/resources_en.properties +3 -0
  1357. package/src/main/js/sap/ushell/utils/workpage/resources/resources_en_GB.properties +3 -0
  1358. package/src/main/js/sap/ushell/utils/workpage/resources/resources_en_US_saprigi.properties +3 -0
  1359. package/src/main/js/sap/ushell/utils/workpage/resources/resources_es.properties +3 -0
  1360. package/src/main/js/sap/ushell/utils/workpage/resources/resources_es_MX.properties +3 -0
  1361. package/src/main/js/sap/ushell/utils/workpage/resources/resources_et.properties +3 -0
  1362. package/src/main/js/sap/ushell/utils/workpage/resources/resources_fi.properties +3 -0
  1363. package/src/main/js/sap/ushell/utils/workpage/resources/resources_fr.properties +3 -0
  1364. package/src/main/js/sap/ushell/utils/workpage/resources/resources_fr_CA.properties +3 -0
  1365. package/src/main/js/sap/ushell/utils/workpage/resources/resources_hi.properties +3 -0
  1366. package/src/main/js/sap/ushell/utils/workpage/resources/resources_hr.properties +3 -0
  1367. package/src/main/js/sap/ushell/utils/workpage/resources/resources_hu.properties +3 -0
  1368. package/src/main/js/sap/ushell/utils/workpage/resources/resources_id.properties +3 -0
  1369. package/src/main/js/sap/ushell/utils/workpage/resources/resources_it.properties +3 -0
  1370. package/src/main/js/sap/ushell/utils/workpage/resources/resources_iw.properties +3 -0
  1371. package/src/main/js/sap/ushell/utils/workpage/resources/resources_ja.properties +3 -0
  1372. package/src/main/js/sap/ushell/utils/workpage/resources/resources_kk.properties +3 -0
  1373. package/src/main/js/sap/ushell/utils/workpage/resources/resources_ko.properties +3 -0
  1374. package/src/main/js/sap/ushell/utils/workpage/resources/resources_lt.properties +3 -0
  1375. package/src/main/js/sap/ushell/utils/workpage/resources/resources_lv.properties +3 -0
  1376. package/src/main/js/sap/ushell/utils/workpage/resources/resources_mk.properties +3 -0
  1377. package/src/main/js/sap/ushell/utils/workpage/resources/resources_ms.properties +3 -0
  1378. package/src/main/js/sap/ushell/utils/workpage/resources/resources_nl.properties +3 -0
  1379. package/src/main/js/sap/ushell/utils/workpage/resources/resources_no.properties +3 -0
  1380. package/src/main/js/sap/ushell/utils/workpage/resources/resources_pl.properties +3 -0
  1381. package/src/main/js/sap/ushell/utils/workpage/resources/resources_pt.properties +3 -0
  1382. package/src/main/js/sap/ushell/utils/workpage/resources/resources_pt_PT.properties +3 -0
  1383. package/src/main/js/sap/ushell/utils/workpage/resources/resources_ro.properties +3 -0
  1384. package/src/main/js/sap/ushell/utils/workpage/resources/resources_ru.properties +3 -0
  1385. package/src/main/js/sap/ushell/utils/workpage/resources/resources_sh.properties +3 -0
  1386. package/src/main/js/sap/ushell/utils/workpage/resources/resources_sk.properties +3 -0
  1387. package/src/main/js/sap/ushell/utils/workpage/resources/resources_sl.properties +3 -0
  1388. package/src/main/js/sap/ushell/utils/workpage/resources/resources_sr.properties +3 -0
  1389. package/src/main/js/sap/ushell/utils/workpage/resources/resources_sv.properties +3 -0
  1390. package/src/main/js/sap/ushell/utils/workpage/resources/resources_th.properties +3 -0
  1391. package/src/main/js/sap/ushell/utils/workpage/resources/resources_tr.properties +3 -0
  1392. package/src/main/js/sap/ushell/utils/workpage/resources/resources_uk.properties +3 -0
  1393. package/src/main/js/sap/ushell/utils/workpage/resources/resources_vi.properties +3 -0
  1394. package/src/main/js/sap/ushell/utils/workpage/resources/resources_zh_CN.properties +3 -0
  1395. package/src/main/js/sap/ushell/utils/workpage/resources/resources_zh_TW.properties +3 -0
  1396. package/src/main/js/sap/ushell/utils.js +9 -1
  1397. package/src/test/js/sap/ushell/bootstrap/sandbox.js +2 -2
  1398. package/ui5.yaml +41 -5
  1399. package/src/main/js/sap/ushell/appRuntime/ui5/style.css +0 -48
@@ -0,0 +1,1926 @@
1
+ // Copyright (c) 2009-2025 SAP SE, All Rights Reserved
2
+
3
+ /**
4
+ * @fileOverview handle all the resources for the different applications.
5
+ * @version 1.134.0
6
+ */
7
+ sap.ui.define([
8
+ "sap/ui/Device",
9
+ "sap/ui/core/Element",
10
+ "sap/ui/core/EventBus",
11
+ "sap/ushell/components/applicationIntegrationOld/Storage",
12
+ "sap/ushell/components/applicationIntegrationOld/application/BlueBoxHandler",
13
+ "sap/ushell/components/applicationIntegrationOld/application/Application",
14
+ "sap/ushell/components/applicationIntegrationOld/application/PostMessageUtils",
15
+ "sap/ushell/components/applicationIntegrationOld/application/WebGUIStatefulHandler",
16
+ "sap/ushell/components/applicationIntegrationOld/relatedServices/RelatedServices",
17
+ "sap/ushell/components/applicationIntegrationOld/configuration/AppMeta",
18
+ "sap/ushell/services/AppConfiguration",
19
+ "sap/ushell/utils",
20
+ "sap/ushell/Config",
21
+ "sap/ushell/ApplicationType",
22
+ "sap/base/util/deepExtend",
23
+ "sap/ushell/utils/UriParameters",
24
+ "sap/base/Log",
25
+ "sap/ushell/EventHub",
26
+ "sap/ushell/utils/UrlParsing",
27
+ "sap/ui/thirdparty/hasher",
28
+ "sap/ushell/services/MessageBroker/MessageBrokerEngine",
29
+ "sap/ushell/renderer/utils",
30
+ "sap/m/library",
31
+ "sap/ushell/AppInfoParameters",
32
+ "sap/ushell/Container",
33
+ "sap/ushell/resources",
34
+ "sap/ushell/state/ShellModel",
35
+ "sap/ushell/state/StateManager",
36
+ "sap/ushell/state/KeepAlive",
37
+ "sap/ushell/ui5service/ShellUIServiceFactory",
38
+ "sap/ui/core/service/ServiceFactoryRegistry",
39
+ "sap/base/util/ObjectPath"
40
+ ], (
41
+ Device,
42
+ Element,
43
+ EventBus,
44
+ Storage,
45
+ BlueBoxHandler,
46
+ Application,
47
+ PostMessageUtils,
48
+ WebGUIStatefulHandler,
49
+ RelatedServices,
50
+ AppMeta,
51
+ AppConfiguration,
52
+ ushellUtils,
53
+ Config,
54
+ ApplicationType,
55
+ deepExtend,
56
+ UriParameters,
57
+ Log,
58
+ EventHub,
59
+ UrlParsing,
60
+ hasher,
61
+ MessageBrokerEngine,
62
+ RendererUtils,
63
+ mobileLibrary,
64
+ AppInfoParameters,
65
+ Container,
66
+ ushellResources,
67
+ ShellModel,
68
+ StateManager,
69
+ KeepAlive,
70
+ ShellUIServiceFactory,
71
+ ServiceFactoryRegistry,
72
+ ObjectPath
73
+ ) => {
74
+ "use strict";
75
+
76
+ if (!Config.last("/core/navigation/enableAppLifeCycleFallback")) {
77
+ return {};
78
+ }
79
+
80
+ // shortcut for sap.ushell.state.StateManager.ShellMode
81
+ const ShellMode = StateManager.ShellMode;
82
+
83
+ // shortcut for sap.ushell.state.StateManager.LaunchpadState
84
+ const LaunchpadState = StateManager.LaunchpadState;
85
+
86
+ // shortcut for sap.ushell.state.StateManager.Operation
87
+ const Operation = StateManager.Operation;
88
+
89
+ // shortcut for sap.m.URLHelper
90
+ const URLHelper = mobileLibrary.URLHelper;
91
+
92
+ // todo: [FLPCOREANDUX-10024] cleanup
93
+ // const CACHED_APP_TYPES = ["URL"];
94
+
95
+ const KEEP_ALIVE_MODES = {
96
+ FULL: "true",
97
+ RESTRICTED: "restricted",
98
+ FALSE: "false"
99
+ };
100
+
101
+ function AppLifeCycle () {
102
+ //Dangling controls is a queue of requests to change shell elements attributes, requested by the application in the process of createContent before the actual application state was apply.
103
+ let bDisableHomeAppCache = false;
104
+ let bEnableRouterRetrigger = true;
105
+ let oCurrentApplication = {};
106
+ const oComponentCreatedPromises = {};
107
+ let oGlobalShellUIService,
108
+ fnOldTriggerEmail,
109
+ oViewPortContainer;
110
+
111
+ //connect FLP to the message broker
112
+ if (window.QUnit === undefined) {
113
+ MessageBrokerEngine.connect("FLP");
114
+ }
115
+
116
+ /**
117
+ * @returns {object} Returns the RelatedServices API.
118
+ */
119
+ this.service = function () {
120
+ return RelatedServices;
121
+ };
122
+
123
+ /**
124
+ * Sets the componentCreated promise for a given appId if it does not exist yet.
125
+ * Returns the promise along with the resolve and reject functions.
126
+ * @private
127
+ * @since 1.125.0
128
+ * @param {string} sStorageAppId The id of the created application.
129
+ * @returns {{
130
+ * promise: Promise,
131
+ * resolve: function,
132
+ * reject: function
133
+ * }} An object containing the promise and the resolve and reject functions.
134
+ */
135
+ this._setComponentCreatedPromise = function (sStorageAppId) {
136
+ if (!oComponentCreatedPromises[sStorageAppId]) {
137
+ oComponentCreatedPromises[sStorageAppId] = {};
138
+ oComponentCreatedPromises[sStorageAppId].promise = new Promise((resolve, reject) => {
139
+ oComponentCreatedPromises[sStorageAppId].resolve = resolve;
140
+ oComponentCreatedPromises[sStorageAppId].reject = reject;
141
+ });
142
+ }
143
+
144
+ return oComponentCreatedPromises[sStorageAppId];
145
+ };
146
+
147
+ /**
148
+ * Resolves the componentCreated promise for the given appId. If the promise does not yet exist, it is created.
149
+ * @param {string} sStorageAppId The id of the created application.
150
+ * @private
151
+ * @since 1.125.0
152
+ */
153
+ this._resolveComponentCreatedPromise = function (sStorageAppId) {
154
+ if (!sStorageAppId) {
155
+ return;
156
+ }
157
+ this._setComponentCreatedPromise(sStorageAppId).resolve();
158
+ };
159
+
160
+ /**
161
+ * Returns the componentCreated promise for the given appId. If the promise does not yet exist, it is created.
162
+ * @param {string} sStorageAppId The id of the created application.
163
+ * @returns {Promise | undefined} The componentCreated promise for the given appId or undefined if no appId is given.
164
+ * @private
165
+ * @since 1.125.0
166
+ */
167
+ this._getComponentCreatedPromise = function (sStorageAppId) {
168
+ if (!sStorageAppId) { return; }
169
+ return this._setComponentCreatedPromise(sStorageAppId).promise;
170
+ };
171
+
172
+ /**
173
+ * @param {string} sId Id of the control might end with "-component"
174
+ * @returns {string} Returns the normalized appId
175
+ */
176
+ this._normalizeAppId = function (sId) {
177
+ const sCmp = "-component";
178
+ const isCmp = sId.endsWith(sCmp);
179
+
180
+ if (isCmp) {
181
+ return sId.substring(0, sId.length - sCmp.length);
182
+ }
183
+ return sId;
184
+ };
185
+
186
+ /**
187
+ * @param {object} oEvent
188
+ * @param {string} sChannel
189
+ * @param {object} oData
190
+ */
191
+ this._onComponentCreated = function (oEvent, sChannel, oData) {
192
+ const oApp = oData.component;
193
+ const sStorageAppId = this._normalizeAppId(oApp.getId());
194
+ const oStorageEntry = Storage.get(sStorageAppId);
195
+
196
+ if (oStorageEntry) {
197
+ oStorageEntry.app = oApp;
198
+ Application.active(oStorageEntry.app);
199
+
200
+ } else {
201
+ oCurrentApplication.app = oApp;
202
+
203
+ if (oApp.active) {
204
+ oApp.active();
205
+ }
206
+ }
207
+
208
+ this._resolveComponentCreatedPromise(sStorageAppId);
209
+ };
210
+
211
+ /**
212
+ * @param {object} oEvent
213
+ * @param {string} sChannel
214
+ * @param {object} oData
215
+ */
216
+ this._onGetMe = function (oEvent, sChannel, oData) {
217
+ oData.AppLifeCycle = this;
218
+ };
219
+
220
+ /**
221
+ * @param {string} sStorageAppId
222
+ */
223
+ this._store = function (sStorageAppId) {
224
+ const oStorageEntry = Storage.get(sStorageAppId);
225
+
226
+ if (oStorageEntry) {
227
+ Application.store(oStorageEntry);
228
+ oStorageEntry.stateStored = true;
229
+ }
230
+ };
231
+
232
+ /**
233
+ * @param {string} sStorageAppId
234
+ * @param {object} oApplicationContainer
235
+ * @param {boolean} bHardDestroy
236
+ * @returns {Promise} Resolves when the app is destroyed.
237
+ */
238
+ this._destroyApplication = async function (sStorageAppId, oApplicationContainer, bHardDestroy) {
239
+ const oStorageEntry = Storage.get(sStorageAppId);
240
+
241
+ if (!sStorageAppId || !oApplicationContainer) {
242
+ return;
243
+ }
244
+
245
+ // todo: [FLPCOREANDUX-10024] instead we should check for keepAlive property
246
+ // ignore stateful destroy when hard destroy is requested
247
+ if (oStorageEntry && !bHardDestroy) { // keep alive
248
+ Storage.removeById(sStorageAppId);
249
+
250
+ // Stateful - appruntime (v1, v2 keepAlive is not stateful)
251
+ if (BlueBoxHandler.isStatefulContainer(oStorageEntry.container)) {
252
+ await BlueBoxHandler.statefulDestroyApp(oStorageEntry.container, sStorageAppId);
253
+
254
+ // Return v1, v2 keepAlive to pool
255
+ } else if (oStorageEntry.container.getIsKeepAlive() && BlueBoxHandler.isReusableContainer(oStorageEntry.container)) {
256
+ BlueBoxHandler.returnUnusedKeepAliveContainer(oStorageEntry.container);
257
+ await this._handleExitStateful(oStorageEntry.container, false);
258
+
259
+ // embedded keep alive
260
+ } else {
261
+ this._removeApplicationContainerFromViewPort(sStorageAppId);
262
+ BlueBoxHandler.deleteBlueBoxByContainer(oStorageEntry.container);
263
+ oStorageEntry.container.destroy();
264
+ }
265
+ return;
266
+ }
267
+
268
+ if (bHardDestroy) {
269
+ Storage.removeByContainer(oApplicationContainer);
270
+ }
271
+
272
+ this._removeApplicationContainerFromViewPort(sStorageAppId);
273
+ /**
274
+ * If the application running in an iframe registered for "before close" event,
275
+ * we first post it a message to prepare for closing (usually, the app will close
276
+ * its session or release locks held on the server), and only when the iframe send a response
277
+ * back that it finished processing the event, we will continue to destroy the app (iframe).
278
+ * If the app in the iframe did not register to the event, we destroy the app immediately exactly
279
+ * as it was done before.
280
+ * Note that even if the response from the iframe is not successful, we still destroy the app
281
+ * because the second app that we navigated to was already created so we can not stop
282
+ * the actual navigation (this is the same behaviour that we had before).
283
+ * This mechanism was added to solve the change made in Chrome to disallow Sync XHR on
284
+ * browser close.
285
+ */
286
+ try {
287
+ const oThenable = oApplicationContainer.sendBeforeAppCloseEvent();
288
+ await ushellUtils.promisify(oThenable);
289
+ } catch (sError) {
290
+ Log.error(
291
+ "FLP got a failed response from the iframe for the 'sap.ushell.services.CrossApplicationNavigation.beforeAppCloseEvent' message sent",
292
+ sError,
293
+ "sap.ushell.components.applicationIntegration.AppLifeCycle.js"
294
+ );
295
+ }
296
+
297
+ if (oStorageEntry) {
298
+ KeepAlive.destroy(oStorageEntry);
299
+ }
300
+
301
+ BlueBoxHandler.deleteBlueBoxByContainer(oApplicationContainer);
302
+ Application.destroy(oApplicationContainer);
303
+ };
304
+
305
+ /**
306
+ * @param {string} sStorageAppId
307
+ */
308
+ this._restore = function (sStorageAppId) {
309
+ const oStorageEntry = Storage.get(sStorageAppId);
310
+
311
+ if (oStorageEntry?.stateStored) {
312
+ // 1) Extensions
313
+ RelatedServices.restore(oStorageEntry.service);
314
+ AppMeta.restore(oStorageEntry.meta);
315
+ // 2) Extension API
316
+ ShellUIServiceFactory.restore(oStorageEntry);
317
+ // 3) Application
318
+ Application.restore(oStorageEntry);
319
+ }
320
+ };
321
+
322
+ /**
323
+ * @param {object} oApplicationContainer
324
+ * @param {boolean} bNavigationToFlpComponent
325
+ * @param {boolean} [bForceCloseApp]
326
+ * @returns {Promise} Resolves when the app is closed.
327
+ */
328
+ this._handleExitStateful = function (oApplicationContainer, bNavigationToFlpComponent, bForceCloseApp) {
329
+ const sActualAppFromId = oApplicationContainer.getCurrentAppId();
330
+
331
+ if (Storage.get(sActualAppFromId)) {
332
+ const bDestroyApp = bForceCloseApp || (RelatedServices.isBackNavigation() && !bNavigationToFlpComponent);
333
+ if (bDestroyApp) {
334
+ EventBus.getInstance().publish("sap.ushell", "appClosed", oApplicationContainer);
335
+ Storage.removeById(sActualAppFromId);
336
+ return BlueBoxHandler.statefulDestroyApp(oApplicationContainer);
337
+ }
338
+ // in this case the store of the currently running application, so we do not need to pass the sCacheId
339
+ EventBus.getInstance().publish("sap.ushell", "appClosed", oApplicationContainer);
340
+ return BlueBoxHandler.statefulStoreKeepAliveApp(oApplicationContainer, sActualAppFromId);
341
+ }
342
+ // in this case the destroy of the currently running application, so we do not need to pass the sCacheId
343
+ return BlueBoxHandler.statefulDestroyApp(oApplicationContainer);
344
+ };
345
+
346
+ /**
347
+ * @param {object} oOldApplicationContainer
348
+ * @param {boolean} bNavigationToFlpComponent
349
+ * @param {boolean} bFromAfterNavigate
350
+ * @returns {Promise} Resolves when the app is closed.
351
+ */
352
+ this._handleExitApplication = async function (oOldApplicationContainer, bNavigationToFlpComponent, bFromAfterNavigate) {
353
+ if (!oOldApplicationContainer) {
354
+ return;
355
+ }
356
+
357
+ const sOldStorageAppId = oOldApplicationContainer.getCurrentAppId();
358
+
359
+ if (!sOldStorageAppId) {
360
+ return;
361
+ }
362
+
363
+ // todo: [FLPCOREANDUX-10024] should not be necessary; the destroy should be callable multiple times w/o issues
364
+ // if called from onAfterNavigate, do nothing if oOldApplicationContainer is stateful container, because
365
+ // application was already closed at the beginning of 'handleCreateApplicationContainer'
366
+ if (!bNavigationToFlpComponent
367
+ && bFromAfterNavigate
368
+ && (
369
+ BlueBoxHandler.isStatefulContainer(oOldApplicationContainer)
370
+ || BlueBoxHandler.isStatefulContainerInKeepAlivePool(oOldApplicationContainer)
371
+ )
372
+ ) {
373
+ return;
374
+ }
375
+
376
+ const oOldStorageEntry = Storage.get(sOldStorageAppId);
377
+ // STATEFUL
378
+ if (BlueBoxHandler.isStatefulContainer(oOldApplicationContainer)) {
379
+ await this._handleExitStateful(oOldApplicationContainer, bNavigationToFlpComponent);
380
+
381
+ //STATELESS
382
+ } else if (oOldStorageEntry) {
383
+ // Back Navigation Case
384
+ if (RelatedServices.isBackNavigation() && !bNavigationToFlpComponent) {
385
+ //check if the Iframe needs to be cached instead of destroy
386
+ if (oOldApplicationContainer.getIsKeepAlive() && BlueBoxHandler.isReusableContainer(oOldApplicationContainer)) {
387
+ BlueBoxHandler.returnUnusedKeepAliveContainer(oOldApplicationContainer);
388
+ await this._handleExitStateful(oOldApplicationContainer, bNavigationToFlpComponent);
389
+
390
+ } else {
391
+ await this._destroyApplication(sOldStorageAppId, oOldApplicationContainer);
392
+ }
393
+
394
+ // Forward Navigation Cases
395
+ } else if (oOldApplicationContainer.getApplicationType() === "UI5") {
396
+ // Wait until navigation's source app has been started completely, so that a later back navigation finds a proper app that
397
+ // can be re-enabled (keep-alive scenario)
398
+ await this._getComponentCreatedPromise(sOldStorageAppId);
399
+ this._store(sOldStorageAppId);
400
+ } else {
401
+ this._store(sOldStorageAppId);
402
+ }
403
+ EventBus.getInstance().publish("sap.ushell", "appClosed", oOldApplicationContainer);
404
+
405
+ // LEGACY STATEFUL (WebGUI)
406
+ } else if (oOldApplicationContainer.getStatefulType() === BlueBoxHandler.STATEFUL_TYPES.GUI_V1) {
407
+ if (bNavigationToFlpComponent) {
408
+ await PostMessageUtils.postMessageToIframeApp(oOldApplicationContainer, "sap.gui", "triggerCloseSessionImmediately");
409
+ }
410
+
411
+ // THE REST...
412
+ } else {
413
+ //destroy the application and its resources
414
+ await this._destroyApplication(sOldStorageAppId, oOldApplicationContainer);
415
+ }
416
+ };
417
+
418
+ /**
419
+ * @param {function(): boolean} fnFilterApps The filter function
420
+ * @returns {Promise} Resolves when all keep alive apps are closed.
421
+ */
422
+ this._closeKeepAliveApps = function (fnFilterApps) {
423
+ try {
424
+ const aKeepAliveRestrictedApps = [];
425
+
426
+ Storage.forEach((oStorageEntry) => {
427
+ if (fnFilterApps(oStorageEntry)) {
428
+ aKeepAliveRestrictedApps.push(oStorageEntry);
429
+ }
430
+ });
431
+ const aClosePromises = aKeepAliveRestrictedApps.map((oRestrictedApp) => {
432
+ //check if it needs to be cached instead of destroy
433
+ const bCanHandleKeepAlive = BlueBoxHandler.isStatefulContainerSupportingKeepAlive(oRestrictedApp.container);
434
+ const bIsKeepAlive = oRestrictedApp.container.getIsKeepAlive();
435
+ const bIsReusable = BlueBoxHandler.isReusableContainer(oRestrictedApp.container);
436
+
437
+ if (!bCanHandleKeepAlive && bIsKeepAlive && bIsReusable) {
438
+ BlueBoxHandler.returnUnusedKeepAliveContainer(oRestrictedApp.container);
439
+ // todo: [FLPCOREANDUX-10024] what is the actual difference between destroyApplication and handleExitStateful?
440
+ return this._handleExitStateful(oRestrictedApp.container, true, true);
441
+ }
442
+
443
+ return this._destroyApplication(oRestrictedApp.appId, oRestrictedApp.container);
444
+ });
445
+
446
+ return Promise.all(aClosePromises);
447
+ } catch (e) {
448
+ Log.error("closeKeepAliveApps call failed", e);
449
+ }
450
+ };
451
+
452
+ /**
453
+ * @param {string} sFromId
454
+ * @param {object} oFrom
455
+ */
456
+ this.onBeforeNavigate = function (sFromId, oFrom) {
457
+ if (sFromId && oFrom && oFrom.isA("sap.ushell.components.container.ApplicationContainer")) {
458
+ const sStorageAppId = sFromId;
459
+ const oApplicationContainer = oFrom;
460
+
461
+ const bHasIframe = !!oApplicationContainer._getIFrame(); // todo: [FLPCOREANDUX-10024] is this really required?
462
+ const bIsSupportedType = oApplicationContainer.getStatefulType() > BlueBoxHandler.STATEFUL_TYPES.NOT_SUPPORTED;
463
+
464
+ const bCached = !!Storage.get(sStorageAppId);
465
+ const bSessionHandlingSupported = bHasIframe && bIsSupportedType;
466
+
467
+ if (bCached || bSessionHandlingSupported) {
468
+ PostMessageUtils.postMessageToIframeApp(oApplicationContainer, "sap.ushell.sessionHandler", "beforeApplicationHide", {}, false);
469
+ }
470
+ }
471
+
472
+ };
473
+
474
+ /**
475
+ * @param {string} sFromId
476
+ * @param {object} oFrom
477
+ * @param {string} sToId
478
+ * @param {object} oTo
479
+ */
480
+ this.onAfterNavigate = async function (sFromId, oFrom, sToId, oTo) { //call lifecycle interface "setInitialConfiguration"
481
+ if (!sToId) {
482
+ sToId = "";
483
+ }
484
+ if (!sFromId) {
485
+ sFromId = "";
486
+ }
487
+
488
+ const aFlpComponentIds = [
489
+ "Shell-appfinder-component",
490
+ "Shell-home-component",
491
+ "pages-component-container",
492
+ "homeApp-component-container",
493
+ "workPageRuntime-component-container",
494
+ "runtimeSwitcher-component-container"
495
+ ];
496
+
497
+ const bNavigationToFlpComponent = aFlpComponentIds.some((sFlpComponentId) => sToId.includes(sFlpComponentId));
498
+
499
+ if (sToId && oTo) {
500
+ // ==== Navigation from [any] to app ====
501
+ if (oTo.isA("sap.ushell.components.container.ApplicationContainer")) {
502
+ const sStorageAppId = sToId;
503
+ const oApplicationContainer = oTo;
504
+
505
+ // this code must be at the beginning of the function to allow it to be processed once in
506
+ // a cycle of opening an app
507
+ if (oApplicationContainer.getIframeReusedForApp()) {
508
+ oApplicationContainer.setProperty("iframeReusedForApp", false, true);
509
+ PostMessageUtils.postMessageToIframeApp(oApplicationContainer, "sap.ushell.sessionHandler", "afterApplicationShow", {}, false);
510
+ }
511
+
512
+ if (Storage.get(sStorageAppId)) {
513
+ this._restore(sStorageAppId);
514
+ }
515
+
516
+ // ==== Navigation from [any] to renderer managed component ====
517
+ } else {
518
+ if (bNavigationToFlpComponent) {
519
+ await this._closeKeepAliveApps((oStorageEntry) => oStorageEntry.keepAliveMode === KEEP_ALIVE_MODES.RESTRICTED);
520
+ }
521
+
522
+ Application.setActiveAppContainer(undefined);
523
+
524
+ // Clear custom About Dialog parameters
525
+ AppInfoParameters.flush();
526
+ }
527
+ }
528
+
529
+ if (sFromId && oFrom) {
530
+ // ==== Navigation from app to [any] ====
531
+ if (oFrom.isA("sap.ushell.components.container.ApplicationContainer")) {
532
+ const oApplicationContainer = oFrom;
533
+
534
+ await this._handleExitApplication(oApplicationContainer, bNavigationToFlpComponent, true);
535
+
536
+ // ==== Navigation from renderer managed component to [any] ====
537
+ } else {
538
+ //handle the case of appFinder
539
+ if (sToId.indexOf("Shell-appfinder-component") > 0) {
540
+ EventBus.getInstance().publish("sap.ushell", "appFinderAfterNavigate");
541
+ }
542
+
543
+ if (bDisableHomeAppCache) {
544
+ try {
545
+ this._removeApplicationContainerFromViewPort(sFromId);
546
+ oFrom.destroy();
547
+ } catch (oError) {
548
+ Log.error(`Error when trying to destroy the home component: '${sToId}'`, oError);
549
+ }
550
+ }
551
+ }
552
+ }
553
+ };
554
+
555
+ /**
556
+ * @param {object} oOldResolvedHashFragment
557
+ * @param {object} oResolvedHashFragment
558
+ * @returns {Promise} Resolves when the after navigation was handled.
559
+ */
560
+ // todo: [FLPCOREANDUX-10024] should be moved to onAfterNavigate
561
+ this.handleAfterNavigate = async function (oResolvedHashFragment, oOldResolvedHashFragment) {
562
+ if (!oOldResolvedHashFragment) {
563
+ return;
564
+ }
565
+
566
+ const sAppFrameworkId = ObjectPath.get("appCapabilities.appFrameworkId", oOldResolvedHashFragment);
567
+ const bFromApplicationIsTR = ushellUtils.isTRApplicationType(oOldResolvedHashFragment.applicationType, sAppFrameworkId);
568
+ const bToApplicationIsTR = ushellUtils.isTRApplicationType(oResolvedHashFragment.applicationType);
569
+
570
+ if (bFromApplicationIsTR && !bToApplicationIsTR) {
571
+ const oPreviousStatefulContainer = BlueBoxHandler.getBlueBoxByUrl(oOldResolvedHashFragment.url);
572
+ if (oPreviousStatefulContainer && oPreviousStatefulContainer.getStatefulType() === BlueBoxHandler.STATEFUL_TYPES.GUI_V1) {
573
+ return WebGUIStatefulHandler.guiStatefulCloseCurrentApp(oPreviousStatefulContainer);
574
+ }
575
+ }
576
+ };
577
+
578
+ /**
579
+ * @param {string} sStorageAppId
580
+ * @param {object} oApplicationContainer
581
+ * @param {object} oResolvedHashFragment
582
+ * @param {string} oParsedShellHash
583
+ * @param {string} sKeepAliveMode
584
+ * @returns {boolean} Returns true if the app was stored
585
+ */
586
+ this._storeApp = function (sStorageAppId, oApplicationContainer, oResolvedHashFragment, oParsedShellHash, sKeepAliveMode) {
587
+ if (Storage.get(sStorageAppId)) {
588
+ return false;
589
+ }
590
+
591
+ oApplicationContainer.setProperty("isKeepAlive", true, true);
592
+
593
+ Storage.set(sStorageAppId, {
594
+ service: {},
595
+ shellHash: `#${UrlParsing.constructShellHash(oParsedShellHash)}`,
596
+ appId: sStorageAppId,
597
+ stt: "loading",
598
+ currentState: null, // current state is stored before close see: sap/ushell/state/CurrentState
599
+ controlManager: null, // control manager state is stored before close see: sap/ushell/state/ControlManager
600
+ container: oApplicationContainer,
601
+ meta: AppConfiguration.getMetadata(oResolvedHashFragment),
602
+ app: undefined,
603
+ keepAliveMode: sKeepAliveMode,
604
+ appTarget: oResolvedHashFragment,
605
+ ui5ComponentName: oResolvedHashFragment.ui5ComponentName,
606
+ enableRouterRetrigger: bEnableRouterRetrigger,
607
+ stateStored: false
608
+ });
609
+
610
+ return true;
611
+ };
612
+
613
+ /**
614
+ * Stores the state of the current application
615
+ * - back navigation
616
+ * - title, hierarchy, relatedApps
617
+ * - currentState, controlManager
618
+ * @returns {Promise} Resolves when the store is done.
619
+ *
620
+ * @since 1.128.0
621
+ * @private
622
+ */
623
+ this.storeAppExtensions = async function () {
624
+ const oCurrentApp = this.getCurrentApplication();
625
+ if (!oCurrentApp) {
626
+ return;
627
+ }
628
+ const sStorageAppId = oCurrentApp.appId;
629
+ const oStorageEntry = Storage.get(sStorageAppId);
630
+
631
+ if (!oStorageEntry) {
632
+ // do not store for non-keep-alive apps
633
+ return;
634
+ }
635
+
636
+ if (oStorageEntry.container.getApplicationType() === "UI5") {
637
+ await this._getComponentCreatedPromise(sStorageAppId);
638
+ }
639
+
640
+ // back navigation
641
+ RelatedServices.store(oStorageEntry.service);
642
+ // currentState, controlManager
643
+ KeepAlive.store(oStorageEntry);
644
+ // About Dialog
645
+ AppInfoParameters.store(oStorageEntry);
646
+ };
647
+
648
+ /**
649
+ * @param {string} sStorageAppId
650
+ * @param {object} oResolvedHashFragment
651
+ * @param {object} oParsedShellHash
652
+ * @returns {string} Returns the keep alive mode.
653
+ */
654
+ this._calculateKeepAliveMode = function (sStorageAppId, oResolvedHashFragment, oParsedShellHash) {
655
+ //generic intent currently can never be keep alive
656
+ if (sStorageAppId === "application-Shell-startIntent") {
657
+ return;
658
+ }
659
+
660
+ // Global override in query parameters
661
+ let sKeepAlive = new URLSearchParams(window.location.search).get("sap-keep-alive");
662
+ if (sKeepAlive === KEEP_ALIVE_MODES.FULL || sKeepAlive === KEEP_ALIVE_MODES.RESTRICTED) {
663
+ return sKeepAlive;
664
+ } else if (sKeepAlive === KEEP_ALIVE_MODES.FALSE) {
665
+ return;
666
+ }
667
+
668
+ // App override in intent parameters
669
+ sKeepAlive = oParsedShellHash.params?.["sap-keep-alive"];
670
+ if (sKeepAlive === KEEP_ALIVE_MODES.FULL || sKeepAlive === KEEP_ALIVE_MODES.RESTRICTED) {
671
+ return sKeepAlive;
672
+ } else if (sKeepAlive === KEEP_ALIVE_MODES.FALSE) {
673
+ return;
674
+ }
675
+
676
+ // Magic override in resolved hash fragment
677
+ if (oResolvedHashFragment.url) {
678
+ sKeepAlive = UriParameters.fromURL(oResolvedHashFragment.url).get("sap-keep-alive");
679
+ if (sKeepAlive === KEEP_ALIVE_MODES.FULL || sKeepAlive === KEEP_ALIVE_MODES.RESTRICTED) {
680
+ return sKeepAlive;
681
+ } else if (sKeepAlive === KEEP_ALIVE_MODES.FALSE) {
682
+ return;
683
+ }
684
+ }
685
+
686
+ // if the app is a root intent, it should be kept alive (e.g. workzone advanced)
687
+ // can be overridden by the above checks
688
+ const sShellHash = UrlParsing.constructShellHash(oParsedShellHash);
689
+ if (sShellHash && ushellUtils.isRootIntent(sShellHash)) {
690
+ return KEEP_ALIVE_MODES.FULL;
691
+ }
692
+ };
693
+
694
+ /**
695
+ * @param {object} oResolvedHashFragment
696
+ * @returns {string} Returns the application type.
697
+ */
698
+ this._calculateAppType = function (oResolvedHashFragment) {
699
+ if (oResolvedHashFragment.applicationType === "URL" && oResolvedHashFragment.additionalInformation?.startsWith?.("SAPUI5.Component=")) {
700
+ return "SAPUI5";
701
+ }
702
+ return oResolvedHashFragment.applicationType;
703
+ };
704
+
705
+ /**
706
+ * @param {object} oData
707
+ * @returns {Promise} Resolves when the app is reloaded.
708
+ */
709
+ this._reloadCurrentApp = async function (oData) {
710
+ const oTmpAppContainer = BlueBoxHandler.getBlueBoxById(oData.sAppContainerId);
711
+ if (oTmpAppContainer) {
712
+ // todo: [FLPCOREANDUX-10024] this destroy/remove can be simplified
713
+ const sTmpUrl = oTmpAppContainer.getUrl();
714
+ BlueBoxHandler.removeCapabilities(oTmpAppContainer);
715
+ Storage.removeByContainer(oTmpAppContainer);
716
+ await this._destroyApplication(oData.sAppContainerId, oTmpAppContainer);
717
+ BlueBoxHandler.deleteBlueBoxByUrl(sTmpUrl);
718
+ }
719
+
720
+ const ShellNavigationInternal = await Container.getServiceAsync("ShellNavigationInternal");
721
+ try {
722
+ ShellNavigationInternal.hashChanger.treatHashChanged(oData.sCurrentHash);
723
+ } catch (error) {
724
+ Log.error("Error when trying to re-load the current displayed application", error, "sap.ushell.services.AppLifeCycle");
725
+ }
726
+ };
727
+
728
+ /**
729
+ * Opens an application in an application container and sets it as the current application.
730
+ *
731
+ * @param {string} sAppId the id of the application.
732
+ * @param {object} oResolvedHashFragment the resolved hash fragment.
733
+ * @param {object} oParsedShellHash the parsed shell hash.
734
+ */
735
+ this._openApp = async function (sAppId, oResolvedHashFragment, oParsedShellHash) {
736
+ // format appId, the is the storage identifier
737
+ const sStorageAppId = `application-${sAppId}`;
738
+
739
+ // this case will handle the stateful containers flow.
740
+ let oApplicationContainer = BlueBoxHandler.getBlueBoxByUrl(oResolvedHashFragment.url);
741
+
742
+ const sKeepAliveMode = this._calculateKeepAliveMode(sStorageAppId, oResolvedHashFragment, oParsedShellHash);
743
+ const bShouldBeCached = !!sKeepAliveMode;
744
+
745
+ if (BlueBoxHandler.isStatefulContainer(oApplicationContainer)) {
746
+ this._openAppInStatefulContainer(sStorageAppId, oApplicationContainer, oResolvedHashFragment, oParsedShellHash, sKeepAliveMode, bShouldBeCached);
747
+ return;
748
+ }
749
+
750
+ if (bShouldBeCached) {
751
+ await this._openAppAndCacheIt(sStorageAppId, sAppId, oResolvedHashFragment, oParsedShellHash, sKeepAliveMode);
752
+ return;
753
+ }
754
+
755
+ if (oResolvedHashFragment.applicationType === "TR" || oResolvedHashFragment.appCapabilities?.appFrameworkId === "GUI") {
756
+ await this._deleteSameIdAppContainer(sStorageAppId, sAppId);
757
+
758
+ if (!oApplicationContainer || oApplicationContainer.getStatefulType() !== BlueBoxHandler.STATEFUL_TYPES.GUI_V1) {
759
+ oApplicationContainer = Application.createApplicationContainer(sStorageAppId, oResolvedHashFragment);
760
+ }
761
+
762
+ } else {
763
+ const aSpecialApplicationTypes = [
764
+ "URL",
765
+ "TR",
766
+ "NWBC",
767
+ "WDA"
768
+ ];
769
+
770
+ if (!oApplicationContainer || aSpecialApplicationTypes.includes(oResolvedHashFragment.applicationType)) {
771
+ await this._deleteSameIdAppContainer(sStorageAppId, sAppId);
772
+ }
773
+
774
+ if (oApplicationContainer) {
775
+ const oApplicationContainerFromViewPort = this._getApplicationContainerFromViewPort(sAppId);
776
+
777
+ if (oApplicationContainerFromViewPort) {
778
+ this._removeApplicationContainerFromViewPort(oApplicationContainerFromViewPort.getId());
779
+ oApplicationContainerFromViewPort.destroy();
780
+ }
781
+ }
782
+
783
+ oApplicationContainer = Application.createApplicationContainer(sStorageAppId, oResolvedHashFragment);
784
+ }
785
+
786
+ // create application that is not persisted and not cashed
787
+ oCurrentApplication = {
788
+ appId: sStorageAppId,
789
+ stt: "loading",
790
+ container: oApplicationContainer,
791
+ meta: AppConfiguration.getMetadata(oResolvedHashFragment),
792
+ app: undefined
793
+ };
794
+ };
795
+
796
+ /**
797
+ * Open an application in a stateful container that already exists.
798
+ *
799
+ * @param {string} sStorageAppId the storage id of the application.
800
+ * @param {sap.ushell.components.container.ApplicationContainer} oApplicationContainer the stateful application container.
801
+ * @param {object} oResolvedHashFragment the resolved hash fragment.
802
+ * @param {object} oParsedShellHash the parsed shell hash.
803
+ * @param {string} sKeepAliveMode the keep alive mode.
804
+ * @param {boolean} bShouldBeCached whether the application container should be cached in the storage.
805
+ */
806
+ this._openAppInStatefulContainer = function (sStorageAppId, oApplicationContainer, oResolvedHashFragment, oParsedShellHash, sKeepAliveMode, bShouldBeCached) {
807
+ if (bShouldBeCached) {
808
+ //this is the case where we have a stateful container and keep alive
809
+ //is cached application
810
+ let oStorageEntry = Storage.get(sStorageAppId);
811
+ if (!oStorageEntry) {
812
+ this._storeApp(sStorageAppId, oApplicationContainer, oResolvedHashFragment, oParsedShellHash, sKeepAliveMode);
813
+ oStorageEntry = Storage.get(sStorageAppId);
814
+ }
815
+
816
+ oCurrentApplication = oStorageEntry;
817
+ } else {
818
+ // create application that is not persisted and not cashed
819
+ oCurrentApplication = {
820
+ appId: sStorageAppId,
821
+ stt: "loading",
822
+ container: oApplicationContainer,
823
+ meta: AppConfiguration.getMetadata(oResolvedHashFragment),
824
+ app: undefined
825
+ };
826
+ }
827
+ };
828
+
829
+ /**
830
+ * Fetches an existing application container from storage or creates this application container and sets it in to the storage.
831
+ *
832
+ * @param {string} sStorageAppId the storage id of the application.
833
+ * @param {string} sAppId the id of the application.
834
+ * @param {object} oResolvedHashFragment the resolved hash fragment.
835
+ * @param {object} oParsedShellHash the parsed shell hash.
836
+ * @param {string} sKeepAliveMode the keep alive mode.
837
+ */
838
+ this._openAppAndCacheIt = async function (sStorageAppId, sAppId, oResolvedHashFragment, oParsedShellHash, sKeepAliveMode) {
839
+ // is cached application
840
+ let oStorageEntry = Storage.get(sStorageAppId);
841
+ if (!oStorageEntry) {
842
+ let oApplicationContainer = BlueBoxHandler.findFreeContainerForNewKeepAliveApp(oResolvedHashFragment);
843
+
844
+ if (!oApplicationContainer) {
845
+ await this._deleteSameIdAppContainer(sStorageAppId, sAppId);
846
+ oApplicationContainer = Application.createApplicationContainer(sStorageAppId, oResolvedHashFragment);
847
+ }
848
+
849
+ this._storeApp(sStorageAppId, oApplicationContainer, oResolvedHashFragment, oParsedShellHash, sKeepAliveMode);
850
+ oStorageEntry = Storage.get(sStorageAppId);
851
+ }
852
+
853
+ oCurrentApplication = oStorageEntry;
854
+ };
855
+
856
+ /**
857
+ * There might be two apps with the same Semantic object + Action, from two different servers,
858
+ * so we will need to destroy the first application to avoid duplicate id.
859
+ *
860
+ * The current stateful container mechanism does not support it.
861
+ * Until it is supported, we delete here the blue box and then create the new one.
862
+ * In future BLI, we plan to change the id of the container to be more unique.
863
+ *
864
+ * @param {string} sStorageAppId the storage app id.
865
+ * @param {string} sAppId the app id.
866
+ */
867
+ this._deleteSameIdAppContainer = async function (sStorageAppId, sAppId) {
868
+ const oTmpAppContainer = BlueBoxHandler.getBlueBoxById(sStorageAppId) || this._getApplicationContainerFromViewPort(sAppId);
869
+ if (oTmpAppContainer) {
870
+ // todo: [FLPCOREANDUX-10024] this destroy/remove can be simplified
871
+ const sTmpUrl = oTmpAppContainer.getUrl();
872
+ BlueBoxHandler.removeCapabilities(oTmpAppContainer);
873
+ await this._destroyApplication(sStorageAppId, oTmpAppContainer, true);
874
+ BlueBoxHandler.deleteBlueBoxByUrl(sTmpUrl);
875
+ }
876
+ };
877
+
878
+ /**
879
+ * Any event one wishes to subscribe to during the AppLifeCycle.init() call should be added here.
880
+ * Events will only be added the first time AppLifeCycle.init() is called.
881
+ */
882
+ this._addEvents = (function () {
883
+ let hasBeenCalled = false;
884
+ return function () {
885
+ if (!hasBeenCalled) {
886
+ hasBeenCalled = true;
887
+
888
+ // Subscribe to events.
889
+ EventHub.on("disableKeepAliveRestoreRouterRetrigger").do((oData) => {
890
+ const sAppId = `${oData.intent.semanticObject}-${oData.intent.action}`;
891
+ const sStorageAppId = `application-${sAppId}`;
892
+
893
+ bEnableRouterRetrigger = oData.disable;
894
+
895
+ if (Storage.get(sStorageAppId)) {
896
+ Storage.get(sStorageAppId).enableRouterRetrigger = oData.disable;
897
+ }
898
+ });
899
+ EventHub.on("setApplicationFullWidth").do((oData) => {
900
+ this._setApplicationFullWidth(oData.bValue);
901
+ });
902
+
903
+ EventHub.on("reloadCurrentApp").do((oData) => {
904
+ this._reloadCurrentApp(oData);
905
+ });
906
+ }
907
+ };
908
+ }());
909
+
910
+ /**
911
+ * @param {object} oInViewPortContainer
912
+ * @param {boolean} bInDisableHomeAppCache
913
+ */
914
+ this.init = function (oInViewPortContainer, bInDisableHomeAppCache) {
915
+ if (Container && Config.last("/core/shell/enablePersistantAppstateWhenSharing")) {
916
+ Container.getServiceAsync("AppState").then((oAppStateService) => {
917
+ fnOldTriggerEmail = URLHelper.triggerEmail.bind(URLHelper);
918
+ URLHelper.triggerEmail = function (sTo, sSubject, sBody, sCc, sBcc) {
919
+ const sFLPUrl = document.URL;
920
+ oAppStateService.setAppStateToPublic(sFLPUrl)
921
+ .done((sNewURL, sXStateKey, sIStateKey, sXStateKeyNew, sIStateKeyNew) => {
922
+ sSubject = sSubject && sXStateKey && sXStateKeyNew && sSubject.includes(sXStateKey) ? sSubject.replace(sXStateKey, sXStateKeyNew) : sSubject;
923
+ sSubject = sSubject && sIStateKey && sIStateKeyNew && sSubject.includes(sIStateKey) ? sSubject.replace(sIStateKey, sIStateKeyNew) : sSubject;
924
+ sBody = sBody && sXStateKey && sXStateKeyNew && sBody.includes(sXStateKey) ? sBody.replace(sXStateKey, sXStateKeyNew) : sBody;
925
+ sBody = sBody && sIStateKey && sIStateKeyNew && sBody.includes(sIStateKey) ? sBody.replace(sIStateKey, sIStateKeyNew) : sBody;
926
+ fnOldTriggerEmail(sTo, sSubject, sBody, sCc, sBcc);
927
+ })
928
+ .fail((sTo, sSubject, sBody, sCc, sBcc) => {
929
+ fnOldTriggerEmail(sTo, sSubject, sBody, sCc, sBcc);
930
+ });
931
+ };
932
+ });
933
+ }
934
+
935
+ ShellUIServiceFactory.init().then(() => {
936
+ ServiceFactoryRegistry.register(
937
+ "sap.ushell.ui5service.ShellUIService",
938
+ ShellUIServiceFactory
939
+ );
940
+ });
941
+ this._createGlobalShellUIService();
942
+
943
+ oViewPortContainer = oInViewPortContainer;
944
+ bDisableHomeAppCache = bInDisableHomeAppCache;
945
+
946
+ BlueBoxHandler.init();
947
+ Application.init(BlueBoxHandler, PostMessageUtils);
948
+ PostMessageUtils.init(Application, BlueBoxHandler);
949
+
950
+ //setup & register communication
951
+ this.registerShellCommunicationHandler({
952
+ "sap.ushell.services.AppLifeCycle": {
953
+ oRequestCalls: {
954
+ create: {
955
+ isActiveOnly: true,
956
+ distributionType: ["URL"]
957
+ },
958
+ destroy: {
959
+ isActiveOnly: true,
960
+ distributionType: ["URL"]
961
+ },
962
+ store: {
963
+ isActiveOnly: true,
964
+ distributionType: ["URL"]
965
+ },
966
+ restore: {
967
+ isActiveOnly: true,
968
+ distributionType: ["URL"]
969
+ }
970
+ },
971
+ oServiceCalls: {
972
+ subscribe: {
973
+ executeServiceCallFn: async function (oServiceParams) {
974
+ const { oContainer: oApplicationContainer } = oServiceParams;
975
+ const aNewCapabilities = oServiceParams.oMessageData.body;
976
+ if (!Array.isArray(aNewCapabilities)) {
977
+ Log.error("subscribe service call failed: capabilities must be an array");
978
+ return {};
979
+ }
980
+ oApplicationContainer.addBlueBoxCapabilities(aNewCapabilities);
981
+ return {};
982
+ }
983
+ },
984
+ setup: {
985
+ executeServiceCallFn: async function (oServiceParams) {
986
+ const oSetup = oServiceParams?.oMessageData?.body;
987
+ const { oContainer: oApplicationContainer } = oServiceParams;
988
+
989
+ const aNewCapabilities = [];
990
+ if (oSetup) {
991
+ const bIsSAPLegacyApplicationType = ushellUtils.isSAPLegacyApplicationType(oApplicationContainer.getApplicationType(), oApplicationContainer.getFrameworkId());
992
+ // appruntime supports statefulContainer + keepAlive
993
+ const bIgnoreStateful = oApplicationContainer.getIsKeepAlive() && bIsSAPLegacyApplicationType;
994
+
995
+ if (oSetup.isStateful) {
996
+ if (bIgnoreStateful) {
997
+ // todo: [FLPCOREANDUX-10024] why not NOT_SUPPORTED instead?
998
+ oApplicationContainer.setProperty("statefulType", BlueBoxHandler.STATEFUL_TYPES.FLP_V2_KEEP_ALIVE, true);
999
+ } else {
1000
+ aNewCapabilities.push({ service: "sap.ushell.services.AppLifeCycle", action: "create" });
1001
+ aNewCapabilities.push({ service: "sap.ushell.services.AppLifeCycle", action: "destroy" });
1002
+ oApplicationContainer.setProperty("statefulType", BlueBoxHandler.STATEFUL_TYPES.FLP_V2, true);
1003
+ }
1004
+ }
1005
+ if (oSetup.isIframeValid) {
1006
+ aNewCapabilities.push({ action: "iframeIsValid", service: "sap.ushell.appRuntime" });
1007
+ }
1008
+ if (oSetup.session?.bLogoutSupport) {
1009
+ aNewCapabilities.push({ action: "logout", service: "sap.ushell.sessionHandler" });
1010
+ }
1011
+
1012
+ // todo: [FLPCOREANDUX-10024] this is a workaround
1013
+ const bIsAppruntime = ushellUtils.isSAPLegacyApplicationType(oApplicationContainer.getApplicationType(), oApplicationContainer.getFrameworkId());
1014
+ if (bIsAppruntime) {
1015
+ aNewCapabilities.push({ service: "sap.ushell.services.AppLifeCycle", action: "store" });
1016
+ aNewCapabilities.push({ service: "sap.ushell.services.AppLifeCycle", action: "restore" });
1017
+ }
1018
+
1019
+ oApplicationContainer.addBlueBoxCapabilities(aNewCapabilities);
1020
+ }
1021
+ }
1022
+ }
1023
+ }
1024
+ },
1025
+ "sap.gui": {
1026
+ oServiceCalls: {
1027
+ loadFinished: {
1028
+ executeServiceCallFn: async function (oServiceParams) {
1029
+ const { oContainer: oApplicationContainer } = oServiceParams;
1030
+
1031
+ if (!oApplicationContainer.getIsKeepAlive()) {
1032
+ oApplicationContainer.setProperty("statefulType", BlueBoxHandler.STATEFUL_TYPES.GUI_V1, true);
1033
+ oCurrentApplication = {
1034
+ appId: oApplicationContainer.getId(),
1035
+ stt: "loading",
1036
+ container: oApplicationContainer,
1037
+ meta: undefined,
1038
+ app: undefined
1039
+ };
1040
+ } else {
1041
+ oApplicationContainer.setProperty("statefulType", BlueBoxHandler.STATEFUL_TYPES.GUI_V1_KEEP_ALIVE, true);
1042
+ }
1043
+ return {};
1044
+ }
1045
+ }
1046
+ }
1047
+ }
1048
+
1049
+ });
1050
+
1051
+ //TODO add unsubscribe
1052
+ EventBus.getInstance().subscribe("sap.ushell", "appComponentLoaded", this._onComponentCreated, this);
1053
+ EventBus.getInstance().subscribe("sap.ushell", "getAppLifeCycle", this._onGetMe, this);
1054
+
1055
+ this._addEvents();
1056
+ };
1057
+
1058
+ /**
1059
+ * @param {object} oShellNavigationInternal
1060
+ */
1061
+ this.registerHandleHashChange = function (oShellNavigationInternal) {
1062
+ oShellNavigationInternal.hashChanger.attachEvent("hashChanged", (oHashChange) => {
1063
+ //FIX for internal incident #1980317281 - In general, hash structure in FLP is splitted into 3 parts:
1064
+ //A - application identification & B - Application parameters & C - Internal application area
1065
+ // Now, when an IFrame changes its hash, it sends PostMessage up to the FLP. The FLP does 2 things: Change its URL
1066
+ // and send a PostMessage back to the IFrame. This fix, initiated in the PostMessageAPI.js, blocks only
1067
+ // the message back to the IFrame.
1068
+ if (hasher.disableBlueBoxHashChangeTrigger) {
1069
+ return;
1070
+ }
1071
+ if (oHashChange.mParameters && oShellNavigationInternal.hashChanger.isInnerAppNavigation(oHashChange.mParameters.newHash, oHashChange.mParameters.oldHash)) {
1072
+ PostMessageUtils.postMessageToMultipleIframes("sap.ushell.appRuntime", "innerAppRouteChange", {
1073
+ oHash: oHashChange.mParameters
1074
+ });
1075
+ }
1076
+
1077
+ PostMessageUtils.postMessageToMultipleIframes("sap.ushell.appRuntime", "hashChange", {
1078
+ sHash: oHashChange.mParameters.fullHash
1079
+ });
1080
+ });
1081
+ };
1082
+
1083
+ /**
1084
+ * @param {object} oApplicationContainer
1085
+ */
1086
+ this._addApplicationContainerToViewPort = function (oApplicationContainer) {
1087
+ oViewPortContainer.addCenterViewPort(oApplicationContainer);
1088
+ };
1089
+
1090
+ /**
1091
+ * @param {string} sId
1092
+ */
1093
+ this._removeApplicationContainerFromViewPort = function (sId) {
1094
+ const oBlueBox = BlueBoxHandler.getBlueBoxById(sId);
1095
+ const bIsStateful = BlueBoxHandler.isStatefulContainer(oBlueBox);
1096
+
1097
+ if (!bIsStateful) {
1098
+ oViewPortContainer.removeCenterViewPort(sId, true);
1099
+ }
1100
+ };
1101
+
1102
+ /**
1103
+ * @param {string} sAppId
1104
+ * @returns {object} Returns the control.
1105
+ */
1106
+ this._getApplicationContainerFromViewPort = function (sAppId) {
1107
+ if (!oViewPortContainer) {
1108
+ return;
1109
+ }
1110
+ return oViewPortContainer.getViewPortControl("centerViewPort", `application-${sAppId}`)
1111
+ || oViewPortContainer.getViewPortControl("centerViewPort", `applicationShellPage-${sAppId}`);
1112
+ };
1113
+
1114
+ /**
1115
+ * @returns {object} Returns the view port container.
1116
+ */
1117
+ this._getViewPortContainer = function () {
1118
+ return oViewPortContainer;
1119
+ };
1120
+
1121
+ /**
1122
+ * @param {string} sId
1123
+ */
1124
+ this._navTo = function (sId) {
1125
+ oViewPortContainer.navTo("centerViewPort", sId, "show");
1126
+ };
1127
+
1128
+ /**
1129
+ * @returns {object} Returns the current application.
1130
+ */
1131
+ this.getCurrentApplication = function () {
1132
+ return oCurrentApplication;
1133
+ };
1134
+
1135
+ /**
1136
+ */
1137
+ this.unsetCurrentApplication = function () {
1138
+ oCurrentApplication = {};
1139
+ };
1140
+
1141
+ /**
1142
+ * @param {boolean} bIsFull
1143
+ */
1144
+ this._setApplicationFullWidth = function (bIsFull) {
1145
+ const oCurrent = this.getCurrentApplication();
1146
+
1147
+ //validate that we have a valid applicationContainer
1148
+ if (oCurrent.container) {
1149
+ oCurrent.container.toggleStyleClass("sapUShellApplicationContainerLimitedWidth", !bIsFull);
1150
+ }
1151
+ };
1152
+
1153
+ /**
1154
+ * Returns the global ShellUIService instance.
1155
+ * @returns {object} The global ShellUIService instance
1156
+ */
1157
+ this.getShellUIService = function () {
1158
+ return oGlobalShellUIService;
1159
+ };
1160
+
1161
+ /**
1162
+ */
1163
+ this.resetGlobalShellUIService = function () {
1164
+ if (oGlobalShellUIService) {
1165
+ oGlobalShellUIService.resetService();
1166
+ }
1167
+ };
1168
+
1169
+ /**
1170
+ * Creates the ShellUIService instance of the AppLifeCycle in application integration if not already created.
1171
+ *
1172
+ * @returns {Promise} A promise that resolves when the ShellUIService instance is created
1173
+ *
1174
+ * @since 1.127.0
1175
+ * @private
1176
+ */
1177
+ this._createGlobalShellUIService = async function () {
1178
+ oGlobalShellUIService = await ShellUIServiceFactory.createInstanceInternal();
1179
+ };
1180
+
1181
+ /**
1182
+ * In the FLP, only one container at a time can be active. If we have
1183
+ * multiple ApplicationContainers, they may still be active in the
1184
+ * background, and still be able to send/receive postMessages (e.g.,
1185
+ * change the title while the user is on the FLP home).
1186
+ *
1187
+ * Also, we distinguish between visible containers and active
1188
+ * containers. As it is desirable that when a container is being opened
1189
+ * it starts setting the FLP title for example. It results in better
1190
+ * perceived performance.
1191
+ *
1192
+ * This method sets only one container as active and de-activates all
1193
+ * other application containers around.
1194
+ *
1195
+ * @param {object} oTargetApplicationContainer
1196
+ * The application container to activate. Pass <code>null</code> in
1197
+ * case no application container must be activated.
1198
+ *
1199
+ * @private
1200
+ */
1201
+ this._activeContainer = function (oTargetApplicationContainer) {
1202
+ BlueBoxHandler.forEach((oApplicationContainer) => {
1203
+ if (oApplicationContainer && oApplicationContainer !== oTargetApplicationContainer) {
1204
+ try {
1205
+ Log.info(`Deactivating container ${oApplicationContainer.getId()}`);
1206
+ oApplicationContainer.setActive(false);
1207
+ } catch (e) {
1208
+ /* empty */
1209
+ }
1210
+ }
1211
+ });
1212
+
1213
+ if (oTargetApplicationContainer) {
1214
+ Log.info(`Activating container "${oTargetApplicationContainer.getId()}"`);
1215
+ oTargetApplicationContainer.setActive(true);
1216
+ }
1217
+ };
1218
+
1219
+ /**
1220
+ * @param {object} oApplicationContainer
1221
+ * @param {object} oApplication
1222
+ * @param {function} fnOnAfterRendering
1223
+ */
1224
+ this._publishNavigationStateEvents = function (oApplicationContainer, oApplication, fnOnAfterRendering) {
1225
+ //after the app container is rendered, publish an event to notify
1226
+ //that an app was opened
1227
+ const sId = oApplicationContainer.getId ? oApplicationContainer.getId() : "";
1228
+ const appMetaData = AppConfiguration.getMetadata();
1229
+ const sIcon = appMetaData.icon;
1230
+ const sTitle = appMetaData.title;
1231
+
1232
+ //Attach an event handler which will be called onAfterRendering
1233
+ oApplicationContainer.addEventDelegate({ onAfterRendering: fnOnAfterRendering });
1234
+
1235
+ //after the app container exit, publish an event to notify
1236
+ //that an app was closed
1237
+ const that = this;
1238
+ const origExit = oApplicationContainer.exit;
1239
+ oApplicationContainer.exit = function () {
1240
+ if (origExit) {
1241
+ origExit.apply(this, arguments);
1242
+ }
1243
+ //apply the original density settings
1244
+ AppMeta._applyContentDensityByPriority();
1245
+
1246
+ //wrapped in setTimeout since "publish" is not async
1247
+ setTimeout(() => {
1248
+ // TODO: do not mutate an internal structure (in a Timeout!),
1249
+ // create a new object
1250
+ const oEventData = deepExtend({}, oApplication);
1251
+ delete oEventData.componentHandle;
1252
+ oEventData.appId = sId;
1253
+ oEventData.usageIcon = sIcon;
1254
+ oEventData.usageTitle = sTitle;
1255
+ EventBus.getInstance().publish("sap.ushell", "appClosed", oEventData);
1256
+ Log.info("app was closed");
1257
+ }, 0);
1258
+
1259
+ // the former code leaked an *internal* data structure, making it part of a public API
1260
+ // restrict hte public api to the minimal set of precise documented properties which can be retained under
1261
+ // under future evolutions
1262
+ const oPublicEventData = that._publicEventDataFromResolutionResult(oApplication);
1263
+ //publish the event externally
1264
+ RendererUtils.publishExternalEvent("appClosed", oPublicEventData);
1265
+ };
1266
+ };
1267
+
1268
+ /**
1269
+ * Creates a new object Expose a minimal set of values to public external stakeholders
1270
+ * only expose what you can guarantee under any evolution of the unified shell on all platforms
1271
+ * @param {object} oApplication an internal result of NavTargetResolutionInternal
1272
+ * @returns {object} an object exposing certain information to external stakeholders
1273
+ */
1274
+ this._publicEventDataFromResolutionResult = function (oApplication) {
1275
+ const oPublicEventData = {};
1276
+ if (!oApplication) {
1277
+ return oApplication;
1278
+ }
1279
+ ["applicationType", "ui5ComponentName", "url", "additionalInformation", "text"].forEach((sProp) => {
1280
+ oPublicEventData[sProp] = oApplication[sProp];
1281
+ });
1282
+ Object.freeze(oPublicEventData);
1283
+ return oPublicEventData;
1284
+ };
1285
+
1286
+ /**
1287
+ * @param {string} sAppId
1288
+ * @param {string} sShellHash
1289
+ * @param {boolean} bNavigationFromHome
1290
+ * @param {boolean} bNavigationWithInnerAppRoute
1291
+ * @returns {object}
1292
+ */
1293
+ this._getInMemoryInstance = function (sAppId, sShellHash, bNavigationFromHome, bNavigationWithInnerAppRoute) {
1294
+ const sStorageAppId = `application-${sAppId}`;
1295
+ const oAppEntry = Storage.get(sStorageAppId);
1296
+
1297
+ //remove application from cache if has different parameters
1298
+ if (oAppEntry) {
1299
+ //Special case - when we're navigating from homepage to an application with state, when keep-alive
1300
+ //is active. In this case, although keep alive is active we need to destroy the application
1301
+ //ans re-open it.
1302
+ const bNavigatingFromHomeWithInnerAppRoute = bNavigationFromHome && bNavigationWithInnerAppRoute;
1303
+ // todo: [FLPCOREANDUX-10024] Add logging
1304
+
1305
+ const bSameParameters = oAppEntry.shellHash === sShellHash;
1306
+ if (bSameParameters && !bNavigatingFromHomeWithInnerAppRoute) {
1307
+ return {
1308
+ destroyApplication: false,
1309
+ appId: oAppEntry.appId,
1310
+ container: oAppEntry.container
1311
+ };
1312
+ }
1313
+ return {
1314
+ destroyApplication: true,
1315
+ appId: oAppEntry.appId,
1316
+ container: oAppEntry.container
1317
+ };
1318
+ }
1319
+
1320
+ return {
1321
+ destroyApplication: true,
1322
+ appId: undefined,
1323
+ container: undefined
1324
+ };
1325
+ };
1326
+
1327
+ /**
1328
+ * @param {boolean} bNewlyCreatedApplicationContainer
1329
+ * @param {boolean} bShouldBeCached
1330
+ * @param {string} sStorageAppId
1331
+ * @param {object} oApplicationContainer
1332
+ * @param {object} oResolvedHashFragment
1333
+ * @param {string} oParsedShellHash
1334
+ * @param {string} sKeepAliveMode
1335
+ * @param {boolean} bNavigationInSameStatefulContainer
1336
+ * @param {boolean} bReturnedFromKeepAlivePoolFLPV2
1337
+ * @returns {Promise} Resolves when the stateful app was opened.
1338
+ */ // eslint-disable-next-line max-len
1339
+ this._handleOpenStateful = async function (bNewlyCreatedApplicationContainer, bShouldBeCached, sStorageAppId, oApplicationContainer, oResolvedHashFragment, oParsedShellHash, sKeepAliveMode, bNavigationInSameStatefulContainer, bReturnedFromKeepAlivePoolFLPV2) {
1340
+ oApplicationContainer.setProperty("iframeReusedForApp", true, true);
1341
+ try {
1342
+ if (Storage.get(sStorageAppId) && !bNewlyCreatedApplicationContainer && !bReturnedFromKeepAlivePoolFLPV2) {
1343
+ await BlueBoxHandler.statefulRestoreKeepAliveApp(oApplicationContainer, oResolvedHashFragment.url, sStorageAppId, oResolvedHashFragment, bNavigationInSameStatefulContainer);
1344
+ } else {
1345
+ const oResult = await BlueBoxHandler.statefulCreateApp(oApplicationContainer, oResolvedHashFragment.url, sStorageAppId, oResolvedHashFragment, bNavigationInSameStatefulContainer);
1346
+ if (oResult?.deletedKeepAliveId) {
1347
+ Storage.removeById(oResult.deletedKeepAliveId);
1348
+ }
1349
+
1350
+ //creating a new application check if needs to be keep (for the keep alive), and if so store the application
1351
+ if (bShouldBeCached && !Storage.get(sStorageAppId)) {
1352
+ this._storeApp(sStorageAppId, oApplicationContainer, oResolvedHashFragment, oParsedShellHash, sKeepAliveMode);
1353
+ }
1354
+ }
1355
+
1356
+ Application.setActiveAppContainer(oApplicationContainer);
1357
+
1358
+ Log.info("New application context opened successfully in an existing transaction UI session.");
1359
+ } catch (vError) {
1360
+ Log.error(vError?.message || vError);
1361
+ // do not bubble up the error
1362
+ }
1363
+ };
1364
+
1365
+ this._isFullWidth = function (oResolvedHashFragment) {
1366
+ let bFullWidth;
1367
+ const sAppType = this._calculateAppType(oResolvedHashFragment);
1368
+ const bDefaultFullWidth = ApplicationType.getDefaultFullWidthSetting(sAppType);
1369
+
1370
+ const bFullWidthCapability = oResolvedHashFragment.appCapabilities?.fullWidth;
1371
+ const oMetadata = AppConfiguration.getMetadata(oResolvedHashFragment);
1372
+ //Here there's a double check for the fullwidth - once as a type of boolean and one as a string.
1373
+ //This is because we found that developers configured this variable in the manifest also as a string,
1374
+ //so the checks of the oMetadata and the oResolvedHashFragment are to avoid regression with the use of this field.
1375
+ if (bDefaultFullWidth) {
1376
+ if (oResolvedHashFragment.fullWidth === false || oResolvedHashFragment.fullWidth === "false" ||
1377
+ oMetadata.fullWidth === false || oMetadata.fullWidth === "false" || bFullWidthCapability === false) {
1378
+ bFullWidth = false;
1379
+ }
1380
+ } else if (oResolvedHashFragment.fullWidth || oResolvedHashFragment.fullWidth === "true" ||
1381
+ oMetadata.fullWidth || oMetadata.fullWidth === "true") {
1382
+ bFullWidth = true;
1383
+ }
1384
+
1385
+ if (bFullWidth === undefined) {
1386
+ bFullWidth = bDefaultFullWidth;
1387
+ }
1388
+ return bFullWidth;
1389
+ };
1390
+
1391
+ /**
1392
+ * formerly known as "handleControl"
1393
+ * @param {string} sAppId
1394
+ * @param {object} oParsedShellHash
1395
+ * @param {object} oResolvedHashFragment
1396
+ * @param {string} sOldShellHash
1397
+ * @param {boolean} bNavigationFromHome
1398
+ * @returns {Promise} Resolves when the control is handled
1399
+ */
1400
+ this.handleCreateApplicationContainer = async function (sAppId, oParsedShellHash, oResolvedHashFragment, sOldShellHash, bNavigationFromHome) {
1401
+ let bReturnedFromKeepAlivePoolFLPV2 = false;
1402
+ let bReturnedFromKeepAlivePoolGuiV1 = false;
1403
+ const sStorageAppId = `application-${sAppId}`;
1404
+ let bNewlyCreatedApplicationContainer = false;
1405
+ let bNavigationInSameStatefulContainer = false;
1406
+ let oApplicationContainer,
1407
+ bReuseStatefulContainer,
1408
+ oTargetAppContainer,
1409
+ iLastValidTimeDelta,
1410
+ bKeptAliveApp,
1411
+ oCachedEntry;
1412
+
1413
+ //get the potential target stateful container and check if it's valid. if not, destroy it
1414
+ //before we try to create the new application
1415
+ oTargetAppContainer = BlueBoxHandler.getBlueBoxByUrl(oResolvedHashFragment.url);
1416
+ // todo: [FLPCOREANDUX-10024] DELETES iframe
1417
+ if (BlueBoxHandler.isStatefulContainer(oTargetAppContainer)) {
1418
+ iLastValidTimeDelta = new Date().getTime() - oTargetAppContainer.getIsIframeValidTime().time;
1419
+ if ((BlueBoxHandler.isIframeIsValidSupported(oTargetAppContainer) && iLastValidTimeDelta >= 3500) ||
1420
+ oTargetAppContainer.getIsInvalidIframe()) {
1421
+ const sReason = oTargetAppContainer.getIsInvalidIframe() ? `iframe did not ping in the last '${iLastValidTimeDelta}' ms` : "iframe is in invalid state";
1422
+ Log.warning(
1423
+ `Destroying stateful container iframe due to unresponsiveness (${oTargetAppContainer.getId()})`,
1424
+ `reason: ${sReason}`,
1425
+ "sap.ushell.components.applicationIntegration.AppLifeCycle"
1426
+ );
1427
+
1428
+ // todo: [FLPCOREANDUX-10024] this destroy/remove can be simplified
1429
+ BlueBoxHandler.removeCapabilities(oTargetAppContainer);
1430
+ await this._destroyApplication(sStorageAppId, oTargetAppContainer);
1431
+ BlueBoxHandler.deleteBlueBoxByUrl(oResolvedHashFragment.url);
1432
+ oTargetAppContainer = undefined;
1433
+ //in this case we do not care about the old application intent as it is currently relevant only when
1434
+ //trying to open app in the same current stateful container
1435
+ sOldShellHash = undefined;
1436
+ }
1437
+ }
1438
+
1439
+ //we will close the application we are leaving when:
1440
+ // 1. the application is running in a stateful container
1441
+ // 2. this is a legacy keep alive app, and we navigate back (this in order to return the container to the pool
1442
+ // of containers to it can be used again for the upcoming opened app)
1443
+ // todo: [FLPCOREANDUX-10024] DELETES more iframe
1444
+ if (!bNavigationFromHome) {
1445
+ const oCurrentAppContainer = this.getCurrentApplication()?.container;
1446
+ bReuseStatefulContainer = BlueBoxHandler.isStatefulContainer(oCurrentAppContainer);
1447
+ // todo [FLPCOREANDUX-10024] why is id required here?
1448
+ const bSourceIsKeepAliveFromPool = oCurrentAppContainer && !!oCurrentAppContainer.getCurrentAppId() && BlueBoxHandler.isStatefulContainerInKeepAlivePool(oCurrentAppContainer);
1449
+ if (bReuseStatefulContainer || bSourceIsKeepAliveFromPool) {
1450
+ await this._handleExitApplication(oCurrentAppContainer, false, false);
1451
+ if (oCurrentAppContainer === oTargetAppContainer) {
1452
+ bNavigationInSameStatefulContainer = true;
1453
+ }
1454
+ }
1455
+ }
1456
+
1457
+ //now, we can open the new application
1458
+ const sKeepAliveMode = this._calculateKeepAliveMode(sStorageAppId, oResolvedHashFragment, oParsedShellHash);
1459
+ const bShouldBeCached = !!sKeepAliveMode;
1460
+
1461
+ oApplicationContainer = BlueBoxHandler.getBlueBoxByUrl(oResolvedHashFragment.url);
1462
+ bReuseStatefulContainer = BlueBoxHandler.isStatefulContainer(oApplicationContainer);
1463
+ // todo: [FLPCOREANDUX-10024] GETTER of innerControl for keep alive / stateful
1464
+ if (!bReuseStatefulContainer) {
1465
+ // only clear oApplicationContainer in case it is not a navigation from an application to the same application
1466
+ if (oCurrentApplication && sStorageAppId !== oCurrentApplication.appId) {
1467
+ oApplicationContainer = undefined;
1468
+ }
1469
+
1470
+ oCachedEntry = Storage.get(sStorageAppId);
1471
+ oApplicationContainer = oCachedEntry?.container;
1472
+
1473
+ if (oApplicationContainer && bShouldBeCached) {
1474
+ bKeptAliveApp = true;
1475
+ }
1476
+ }
1477
+
1478
+ // todo: [FLPCOREANDUX-10024] CREATE / SETTER of currentApplication
1479
+ if (bReuseStatefulContainer) {
1480
+ if (!oApplicationContainer) {
1481
+ oApplicationContainer = await this._createApplicationContainer(sAppId, oParsedShellHash, oResolvedHashFragment);
1482
+
1483
+ // todo: [FLPCOREANDUX-10024] the following should be obsolete
1484
+ const oStorageEntry = Storage.get(oApplicationContainer.getId());
1485
+ if (oStorageEntry) {
1486
+ oCurrentApplication = oStorageEntry;
1487
+ }
1488
+
1489
+ bNewlyCreatedApplicationContainer = true;
1490
+ }
1491
+ } else if (oApplicationContainer && !bShouldBeCached && BlueBoxHandler.getStatefulContainerType(oResolvedHashFragment.url, true) !== BlueBoxHandler.STATEFUL_TYPES.GUI_V1) {
1492
+ //this case this controller can't be reused and we need it to be embed, so delete it.
1493
+ await this._destroyApplication(oApplicationContainer.getId(), oApplicationContainer);
1494
+
1495
+ // The immediately following method call internally calls
1496
+ // `this.oViewPortContainer.addCenterViewPort(oApplicationContainer)`
1497
+ // when Gui V1 Stateful Container is true, and in that case
1498
+ // `oApplicationContainer` will be the component control of an existing session.
1499
+ oApplicationContainer = await this._createApplicationContainer(sAppId, oParsedShellHash, oResolvedHashFragment);
1500
+ } else if (!oApplicationContainer) {
1501
+ // The immediately following method call internally calls
1502
+ // `this.oViewPortContainer.addCenterViewPort(oApplicationContainer)`
1503
+ // when Gui V1 Stateful Container is true, and in that case
1504
+ // `oApplicationContainer` will be the component control of an existing session.
1505
+ oApplicationContainer = await this._createApplicationContainer(sAppId, oParsedShellHash, oResolvedHashFragment);
1506
+
1507
+ //if we got an iframe from cache, simulate stateful container
1508
+ //open that should happen later here
1509
+ if (oApplicationContainer.getIsFetchedFromCache()) {
1510
+ if (oApplicationContainer.getStatefulType() === BlueBoxHandler.STATEFUL_TYPES.GUI_V1_KEEP_ALIVE) {
1511
+ bReturnedFromKeepAlivePoolGuiV1 = true;
1512
+ } else {
1513
+ bReuseStatefulContainer = true;
1514
+ bReturnedFromKeepAlivePoolFLPV2 = true;
1515
+ }
1516
+ }
1517
+ }
1518
+
1519
+ // todo: [FLPCOREANDUX-10024] rework empty applicationContainer case
1520
+ // fallback?
1521
+
1522
+ await ushellUtils.promisify(oApplicationContainer.getDeffedControlCreation());
1523
+
1524
+ //here, we simply show (turning to visible) the container of the new opened application in case it is not stateful container
1525
+ //and not old gui v1 stateful
1526
+ if (oApplicationContainer.getStatefulType() !== BlueBoxHandler.STATEFUL_TYPES.GUI_V1 && !bReuseStatefulContainer) {
1527
+ if (bKeptAliveApp) {
1528
+ EventBus.getInstance().publish("launchpad", "appOpening", oResolvedHashFragment);
1529
+ }
1530
+ const oStorageEntry = Storage.get(oApplicationContainer.getId());
1531
+ if (oStorageEntry) {
1532
+ oCurrentApplication = oStorageEntry;
1533
+ }
1534
+
1535
+ if (bKeptAliveApp) {
1536
+ EventBus.getInstance().publish("sap.ushell", "appOpened", oResolvedHashFragment);
1537
+ }
1538
+ }
1539
+
1540
+ // Assuming a previously existing TR container existed and is now
1541
+ // going to be reused, we prompt the container to load the new application context.
1542
+
1543
+ // SAP GUI is sending post messages for back navigation as soon the create application event is sent to the iframe,
1544
+ // so this makes sure the container is active before sending the event.
1545
+ // For WD applications, the application is active only after the application is created.
1546
+ // So it is not navigated twice.
1547
+ if (oApplicationContainer.getApplicationType() === ApplicationType.TR.type) {
1548
+ this._activeContainer(oApplicationContainer);
1549
+ }
1550
+
1551
+ const oStorageEntry = Storage.get(sStorageAppId);
1552
+ if (oStorageEntry) {
1553
+ AppInfoParameters.restore(oStorageEntry);
1554
+ } else {
1555
+ AppInfoParameters.flush();
1556
+ }
1557
+
1558
+
1559
+ //here, we create the application in case this is a stateful container (meaning, using the existing iframe)
1560
+ if (bReuseStatefulContainer) {
1561
+ //for scube - make sure the container is active before we open the app
1562
+ //to allow post messages form the iframe to flp that are sent
1563
+ //as part of the target resolution process
1564
+ if (oResolvedHashFragment.appCapabilities?.appFrameworkId === "UI5") {
1565
+ oApplicationContainer.setProperty("active", true, true);
1566
+ }
1567
+ // eslint-disable-next-line max-len
1568
+ await this._handleOpenStateful(bNewlyCreatedApplicationContainer, bShouldBeCached, sStorageAppId, oApplicationContainer, oResolvedHashFragment, oParsedShellHash, sKeepAliveMode, bNavigationInSameStatefulContainer, bReturnedFromKeepAlivePoolFLPV2);
1569
+
1570
+ } else if (oApplicationContainer.getStatefulType() === BlueBoxHandler.STATEFUL_TYPES.GUI_V1 || bReturnedFromKeepAlivePoolGuiV1) {
1571
+ //here, we create the application in case this is old gui v1 stateful
1572
+ await WebGUIStatefulHandler.guiStatefulCreateApp(this, oApplicationContainer, oResolvedHashFragment);
1573
+ }
1574
+
1575
+ //for case of stateful container or gui v1 stateful, show the application view (make it visible)
1576
+ ushellUtils.setPerformanceMark("FLP -- centerViewPort");
1577
+ if (oApplicationContainer.getApplicationType() !== ApplicationType.TR.type) {
1578
+ // Activate container before showing it (start reacting to postMessage calls)
1579
+ this._activeContainer(oApplicationContainer);
1580
+ }
1581
+
1582
+ /*
1583
+ * Workaround:
1584
+ * The oCurrentApplication object does not reflect the currently opened application.
1585
+ * This leads to store/restore calls on the wrong application.
1586
+ * Create application that is not persisted and not cashed as a fallback.
1587
+ *
1588
+ * This issue occurs for iframe applications reusing the iframe.
1589
+ */
1590
+ if (oCurrentApplication.appId !== sStorageAppId) {
1591
+ oCurrentApplication = {
1592
+ appId: sStorageAppId,
1593
+ stt: "loading",
1594
+ container: oApplicationContainer,
1595
+ meta: AppConfiguration.getMetadata(oResolvedHashFragment),
1596
+ app: undefined
1597
+ };
1598
+ }
1599
+ };
1600
+
1601
+ /**
1602
+ */
1603
+ this.navToCurrentApp = function () {
1604
+ const oApplicationContainer = this.getCurrentApplication().container;
1605
+ // todo: [FLPCOREANDUX-10024] maybe switch to 'this.getCurrentApplication().appId' instead
1606
+ this._navTo(oApplicationContainer.getId());
1607
+
1608
+ // todo: [FLPCOREANDUX-10024]
1609
+ // - Move styles into control? or at least out of here
1610
+ // - Is this even needed? This doesn't seem to trigger the onAfterNavigate as indicated by the following comment.
1611
+ //Added this because in cases when navigating to the same id (can happen when stateful container, I need the on onAfterNavigate)
1612
+ //This must only be done after the _navTo as the ViewPortContainer's navTo function relies on the state of those classes.
1613
+ if (oApplicationContainer.hasStyleClass("sapUShellApplicationContainerShiftedIframe")) {
1614
+ oApplicationContainer.toggleStyleClass("sapUShellApplicationContainerIframeHidden", false);
1615
+ } else {
1616
+ oApplicationContainer.toggleStyleClass("hidden", false);
1617
+ }
1618
+ };
1619
+
1620
+ /**
1621
+ * New app was created and we now have to switch the state
1622
+ * @param {string} sLaunchpadState
1623
+ * @param {string} sAppId
1624
+ * @param {string} sAppType
1625
+ * @param {boolean} bIsExplaceNavigation
1626
+ */
1627
+ this.switchViewState = function (sLaunchpadState, sAppId, sAppType, bIsExplaceNavigation) {
1628
+ // Store state before creating a new one
1629
+ const oFromStorageEntry = Storage.get(oCurrentApplication.appId);
1630
+ if (!oFromStorageEntry) {
1631
+ // We have to destroy managed queue BEFORE we're applying the pending changes
1632
+ StateManager.destroyManagedControls();
1633
+ }
1634
+
1635
+ const sShellMode = StateManager.getShellMode();
1636
+ // GUI Applications need a back button to work properly
1637
+ const oShellModeOverrides = {
1638
+ TR: {
1639
+ headerless: ShellMode.Minimal
1640
+ }
1641
+ };
1642
+
1643
+ let sShellModeOverride;
1644
+ if (!bIsExplaceNavigation) {
1645
+ sShellModeOverride = oShellModeOverrides[sAppType]?.[sShellMode];
1646
+ }
1647
+ StateManager.switchState(sLaunchpadState, sShellModeOverride);
1648
+
1649
+ // Restore state if it already exists
1650
+ const sToStorageAppId = `application-${sAppId}`;
1651
+ const oToStorageEntry = Storage.get(sToStorageAppId);
1652
+ if (oToStorageEntry) {
1653
+ KeepAlive.restore(oToStorageEntry);
1654
+ } else {
1655
+ KeepAlive.flush();
1656
+ }
1657
+
1658
+ //Process Dangling UI elements and continue.
1659
+ StateManager.applyStalledChanges();
1660
+ };
1661
+
1662
+ /**
1663
+ * @param {object} oCommunicationHandler
1664
+ */
1665
+ this.registerShellCommunicationHandler = function (oCommunicationHandler) {
1666
+ Application.registerShellCommunicationHandler(oCommunicationHandler);
1667
+ };
1668
+
1669
+ /**
1670
+ * @returns {boolean} Whether the floating container is docked.
1671
+ */
1672
+ this._isFloatingContainerDocked = function () {
1673
+ const bDocked = ShellModel.getModel().getProperty("/floatingContainer/state").includes("docked");
1674
+ const bVisible = ShellModel.getModel().getProperty("/floatingContainer/visible");
1675
+ return bDocked && bVisible;
1676
+ };
1677
+
1678
+ /**
1679
+ */
1680
+ this._sendFocusBackToShell = function () {
1681
+ if (!Device.system.desktop) {
1682
+ return;
1683
+ }
1684
+
1685
+ sap.ui.require(["sap/ushell/renderer/AccessKeysHandler"], (AccessKeysHandler) => {
1686
+ const sCurrentLaunchpadState = StateManager.getLaunchpadState();
1687
+ const bDefaultShellMode = StateManager.getShellMode() === ShellMode.Default;
1688
+ const oShellAppTitle = Element.getElementById("shellAppTitle");
1689
+
1690
+ if (oShellAppTitle && sCurrentLaunchpadState === LaunchpadState.App && bDefaultShellMode) {
1691
+ const oShellAppTitleDomRef = oShellAppTitle.getFocusDomRef();
1692
+ if (oShellAppTitleDomRef) {
1693
+ AccessKeysHandler.sendFocusBackToShell(oShellAppTitleDomRef.getAttribute("id"));
1694
+ }
1695
+ }
1696
+ });
1697
+ };
1698
+
1699
+ /**
1700
+ * @param {object} oResolvedHashFragment
1701
+ */
1702
+ this._announceAppOpening = function (oResolvedHashFragment) {
1703
+ //Screen reader: "Loading Complete"
1704
+ window.setTimeout(() => {
1705
+ window.setTimeout(() => {
1706
+ const oAccessibilityHelperLoadingComplete = document.getElementById("sapUshellLoadingAccessibilityHelper-loadingComplete");
1707
+
1708
+ if (oAccessibilityHelperLoadingComplete) {
1709
+ oAccessibilityHelperLoadingComplete.setAttribute("aria-live", "polite");
1710
+ oAccessibilityHelperLoadingComplete.innerHTML = ushellResources.i18n.getText("loadingComplete");
1711
+ window.setTimeout(() => {
1712
+ oAccessibilityHelperLoadingComplete.setAttribute("aria-live", "off");
1713
+ oAccessibilityHelperLoadingComplete.innerHTML = "";
1714
+ }, 0);
1715
+ }
1716
+ }, 600);
1717
+
1718
+ EventBus.getInstance().publish("launchpad", "appOpening", oResolvedHashFragment);
1719
+ Log.info("app is being opened");
1720
+ }, 0);
1721
+ };
1722
+
1723
+ /**
1724
+ * @param {string} sAppId
1725
+ * @param {object} oParsedShellHash
1726
+ * @param {object} oResolvedHashFragment
1727
+ * @param {string} sShellHash
1728
+ * @returns {object} The app container.
1729
+ */
1730
+ this._createApplicationContainer = async function (sAppId, oParsedShellHash, oResolvedHashFragment) {
1731
+ const oMetadata = AppConfiguration.getMetadata(oResolvedHashFragment, oResolvedHashFragment?.sFixedShellHash);
1732
+ const bFullWidth = this._isFullWidth(oResolvedHashFragment);
1733
+
1734
+ /*
1735
+ * The external navigation mode in the resolution result is calculated
1736
+ * statically, and indicates a future state. It currently answers the
1737
+ * question: "is the application going to be opened explace?".
1738
+ *
1739
+ * The target navigation mode, instead, answers the question: "was
1740
+ * the application opened explace?".
1741
+ *
1742
+ * We need to have this logic, because embedded applications do not
1743
+ * check the coldstart condition.
1744
+ */
1745
+ oResolvedHashFragment.targetNavigationMode = ushellUtils.isColdStart() ? "explace" : "inplace";
1746
+ oResolvedHashFragment.shellUIService = oGlobalShellUIService.getInterface();
1747
+
1748
+ // send focus back to shell for new ApplicationContainers
1749
+ this._sendFocusBackToShell();
1750
+
1751
+ this._announceAppOpening(oResolvedHashFragment);
1752
+
1753
+ await this._openApp(sAppId, oResolvedHashFragment, oParsedShellHash);
1754
+ const oApplicationContainer = oCurrentApplication.container;
1755
+
1756
+ const bContainerFromCachePool = oApplicationContainer.getIsFetchedFromCache();
1757
+
1758
+ if (!bContainerFromCachePool) {
1759
+ this._publishNavigationStateEvents(oApplicationContainer, oResolvedHashFragment, this.onAppAfterRendering.bind(this, oResolvedHashFragment));
1760
+
1761
+ if (ushellUtils.isSAPLegacyApplicationType(oApplicationContainer.getApplicationType(), oApplicationContainer.getFrameworkId())) {
1762
+ oApplicationContainer.addStyleClass("sapUShellApplicationContainerShiftedIframe");
1763
+ }
1764
+
1765
+ if (!bFullWidth) {
1766
+ oApplicationContainer.addStyleClass("sapUShellApplicationContainerLimitedWidth");
1767
+ }
1768
+
1769
+ // todo: [FLPCOREANDUX-10024] clarify whether this should be reactive instead of one time only
1770
+ // todo: [FLPCOREANDUX-10024] move this block to ShellController
1771
+ if (this._isFloatingContainerDocked() && window.matchMedia("(min-width: 106.4rem)").matches) {
1772
+ oApplicationContainer.addStyleClass("sapUShellDockingContainer");
1773
+ oApplicationContainer.removeStyleClass("sapUShellApplicationContainerLimitedWidth");
1774
+ } else if (this._isFloatingContainerDocked()) {
1775
+ oApplicationContainer.removeStyleClass("sapUShellApplicationContainerLimitedWidth");
1776
+ }
1777
+
1778
+ oApplicationContainer.toggleStyleClass("sapUshellDefaultBackground", !oMetadata.hideLightBackground);
1779
+
1780
+ AppMeta._applyContentDensityByPriority();
1781
+
1782
+ // Add inner control for next request
1783
+ this._addApplicationContainerToViewPort(oApplicationContainer);
1784
+ }
1785
+
1786
+ ushellUtils.setPerformanceMark("FLP - addAppContainer");
1787
+
1788
+ return oApplicationContainer;
1789
+ };
1790
+
1791
+ /**
1792
+ * @param {string} sShellHash
1793
+ * @param {object} oResolvedHashFragment
1794
+ * @param {boolean} bNavigationFromHome
1795
+ * @param {boolean} bNavigationWithInnerAppRoute
1796
+ */
1797
+ this.handleBeforeCreateApp = async function (sShellHash, oResolvedHashFragment, bNavigationFromHome, bNavigationWithInnerAppRoute) {
1798
+ const sIntent = UrlParsing.getBasicHash(sShellHash);
1799
+ const bComponentLoaded = !!oResolvedHashFragment?.componentHandle;
1800
+ // for SAPUI5 apps, the application type is still "URL" due to backwards compatibility, but the
1801
+ // NavTargetResolutionInternal service already extracts the component name, so this can directly be used as indicator
1802
+ const sTargetUi5ComponentName = oResolvedHashFragment?.ui5ComponentName;
1803
+
1804
+ // handle special case when navigating from home to an application with state, when keep-alive is active
1805
+ const oInMemoryApplicationInstance = this._getInMemoryInstance(sIntent, sShellHash, bNavigationFromHome, bNavigationWithInnerAppRoute);
1806
+
1807
+ if (!oInMemoryApplicationInstance.destroyApplication) {
1808
+ // no destroy required
1809
+
1810
+ } else if (bComponentLoaded || !sTargetUi5ComponentName) { // non UI5 Application
1811
+ if ((
1812
+ oResolvedHashFragment.applicationType === "URL"
1813
+ || ushellUtils.isSAPLegacyApplicationType(oResolvedHashFragment.applicationType)
1814
+ )
1815
+ && oInMemoryApplicationInstance.destroyApplication
1816
+ && oInMemoryApplicationInstance.appId
1817
+ ) {
1818
+ await this._destroyApplication(oInMemoryApplicationInstance.appId, oInMemoryApplicationInstance.container);
1819
+ }
1820
+
1821
+ } else { // UI5 Application
1822
+ await this._destroyApplication(oInMemoryApplicationInstance.appId, oInMemoryApplicationInstance.container);
1823
+ const oApplicationContainer = this._getApplicationContainerFromViewPort(sIntent);
1824
+
1825
+ if (oApplicationContainer) {
1826
+ this._removeApplicationContainerFromViewPort(oApplicationContainer.getId());
1827
+ oApplicationContainer.destroy();
1828
+ }
1829
+
1830
+ // close all keep alive apps with the same component name
1831
+ await this._closeKeepAliveApps((oStorageEntry) => oStorageEntry.ui5ComponentName === oResolvedHashFragment.ui5ComponentName);
1832
+ }
1833
+ };
1834
+
1835
+ /**
1836
+ * @param {string} sShellHash
1837
+ * @param {object} oParsedShellHash
1838
+ * @param {object} oResolvedHashFragment
1839
+ * @param {boolean} bNavigationFromHome
1840
+ * @param {boolean} bNavigationWithInnerAppRoute
1841
+ */
1842
+ this.handleCreateApp = async function (sShellHash, oParsedShellHash, oResolvedHashFragment, bNavigationFromHome, bNavigationWithInnerAppRoute) {
1843
+ const sIntent = UrlParsing.getBasicHash(sShellHash);
1844
+ const bComponentLoaded = !!oResolvedHashFragment?.componentHandle;
1845
+ // for SAPUI5 apps, the application type is still "URL" due to backwards compatibility, but the
1846
+ // NavTargetResolutionInternal service already extracts the component name, so this can directly be used as indicator
1847
+ const sTargetUi5ComponentName = oResolvedHashFragment?.ui5ComponentName;
1848
+ const bIsUI5App = !!sTargetUi5ComponentName;
1849
+ const oInMemoryApplicationInstance = this._getInMemoryInstance(sIntent, sShellHash, bNavigationFromHome, bNavigationWithInnerAppRoute);
1850
+
1851
+ // todo: [FLPCOREANDUX-10024] checking on the destroyApplication flag is odd at this point
1852
+ if (bIsUI5App && !bComponentLoaded && oInMemoryApplicationInstance.destroyApplication) { // UI5 Application
1853
+ AppConfiguration.setApplicationInInitMode();
1854
+
1855
+ /*
1856
+ * normal application:
1857
+ * fire the _prior.newUI5ComponentInstantion event before creating the new component instance, so that
1858
+ * the ApplicationContainer can stop the router of the current app (avoid inner-app hash change notifications)
1859
+ * NOTE: this dependency to the ApplicationContainer is not nice, but we need a fast fix now; we should refactor
1860
+ * the ApplicationContainer code, because most of the logic has to be done by the shell controller;
1861
+ * maybe rather introduce a utility module
1862
+ */
1863
+ EventBus.getInstance().publish("ApplicationContainer", "_prior.newUI5ComponentInstantion",
1864
+ { name: sTargetUi5ComponentName }
1865
+ );
1866
+
1867
+ // load ui5 component via shell service; core-ext-light will be loaded as part of the asyncHints
1868
+ await Container.getServiceAsync("Ui5ComponentLoader");
1869
+
1870
+ /*
1871
+ * FIXME: It would be better to call a function that simply
1872
+ * and intentionally loads the dependencies of the UI5
1873
+ * application, rather than creating a component and expecting
1874
+ * the dependencies to be loaded as a side effect.
1875
+ * Moreover, the comment reads "load ui5 component via shell service"
1876
+ * however that is 'not needed' since the loaded component
1877
+ * is not used. We should evaluate the possible performance
1878
+ * hit taken due to this implicit means to an end.
1879
+ */
1880
+
1881
+ /*
1882
+ * return value is unused.
1883
+ * This is because oResolvedHashFragment contains the component handle already.
1884
+ * See the preceding note in AppLifeCycle.createComponent.
1885
+ */
1886
+ await Application.createComponent(oResolvedHashFragment, oParsedShellHash);
1887
+ }
1888
+ };
1889
+
1890
+ /**
1891
+ *
1892
+ * @param {sap.ui.core.Component} oApplication
1893
+ */
1894
+ this.onAppAfterRendering = function (oApplication) {
1895
+ // wrapped in setTimeout since "publish" is not async
1896
+ window.setTimeout(() => {
1897
+ EventBus.getInstance().publish("sap.ushell", "appOpened", oApplication);
1898
+ Log.info("app was opened");
1899
+ }, 0);
1900
+
1901
+ // publish the event externally
1902
+ // TODO: cloned, frozen object!
1903
+ const oAppOpenedEventData = this._publicEventDataFromResolutionResult(oApplication);
1904
+
1905
+ // Event is emitted internally (EventHub) _and_ externally (for compatibility reasons)
1906
+ EventHub.emit("AppRendered", oAppOpenedEventData, true);
1907
+ RendererUtils.publishExternalEvent("appOpened", oAppOpenedEventData);
1908
+ ushellUtils.setPerformanceMark("FLP.appOpened");
1909
+
1910
+ const sIcon = AppMeta.getAppIcon();
1911
+ StateManager.updateCurrentState("application.icon", Operation.Set, sIcon);
1912
+ };
1913
+
1914
+ /**
1915
+ * Only for testing
1916
+ * @param {sap.ui.core.Control} oNewViewPortContainer
1917
+ *
1918
+ * @private
1919
+ */
1920
+ this.setViewPortContainer = function (oNewViewPortContainer) {
1921
+ oViewPortContainer = oNewViewPortContainer;
1922
+ };
1923
+ }
1924
+
1925
+ return new AppLifeCycle();
1926
+ }, /* bExport= */ true);