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