@sapui5/sap.ushell 1.118.0 → 1.119.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +6 -5
- package/src/main/js/sap/ushell/.library +1 -1
- package/src/main/js/sap/ushell/ApplicationType.js +1 -1
- package/src/main/js/sap/ushell/CanvasShapesManager.js +13 -7
- package/src/main/js/sap/ushell/Config.js +1 -1
- package/src/main/js/sap/ushell/Container.js +255 -185
- package/src/main/js/sap/ushell/EventHub.js +1 -1
- package/src/main/js/sap/ushell/Fiori20Adapter.js +1 -1
- package/src/main/js/sap/ushell/Fiori20AdapterTest.js +2 -2
- package/src/main/js/sap/ushell/Layout.js +3 -3
- package/src/main/js/sap/ushell/NWBCInterface.js +3 -3
- package/src/main/js/sap/ushell/TechnicalParameters.js +3 -3
- package/src/main/js/sap/ushell/UIActions.js +44 -44
- package/src/main/js/sap/ushell/URLTemplateProcessor.js +1 -1
- package/src/main/js/sap/ushell/Ui5NativeServiceFactory.js +1 -1
- package/src/main/js/sap/ushell/Ui5ServiceFactory.js +4 -4
- package/src/main/js/sap/ushell/User.js +1 -1
- package/src/main/js/sap/ushell/UserActivityLog.js +8 -8
- package/src/main/js/sap/ushell/_ApplicationType/guiResolution.js +5 -5
- package/src/main/js/sap/ushell/_ApplicationType/systemAlias.js +1 -1
- package/src/main/js/sap/ushell/_ApplicationType/urlTemplateResolution.js +16 -11
- package/src/main/js/sap/ushell/_Config/utils.js +5 -5
- package/src/main/js/sap/ushell/_URLTemplateProcessor/DefinitionParameterSetBuilder.js +1 -1
- package/src/main/js/sap/ushell/_URLTemplateProcessor/DependencyGraph.js +1 -1
- package/src/main/js/sap/ushell/_URLTemplateProcessor/Functions.js +1 -1
- package/src/main/js/sap/ushell/_URLTemplateProcessor/Resolvers.js +1 -1
- package/src/main/js/sap/ushell/_URLTemplateProcessor/TemplateParameterParser.js +1 -1
- package/src/main/js/sap/ushell/_URLTemplateProcessor/utils.js +1 -1
- package/src/main/js/sap/ushell/adapters/cdm/ClientSideTargetResolutionAdapter.js +14 -8
- package/src/main/js/sap/ushell/adapters/cdm/CommonDataModelAdapter.js +4 -5
- package/src/main/js/sap/ushell/adapters/cdm/ConfigurationDefaultsAdapter.js +1 -1
- package/src/main/js/sap/ushell/adapters/cdm/ContainerAdapter.js +1 -2
- package/src/main/js/sap/ushell/adapters/cdm/LaunchPageAdapter.js +12 -13
- package/src/main/js/sap/ushell/adapters/cdm/MenuAdapter.js +1 -1
- package/src/main/js/sap/ushell/adapters/cdm/PagesCommonDataModelAdapter.js +4 -3
- package/src/main/js/sap/ushell/adapters/cdm/PersonalizationAdapter.js +1 -1
- package/src/main/js/sap/ushell/adapters/cdm/Ui5ComponentLoaderAdapter.js +1 -1
- package/src/main/js/sap/ushell/adapters/cdm/_LaunchPage/modifyHome.js +2 -2
- package/src/main/js/sap/ushell/adapters/cdm/_LaunchPage/readCatalogs.js +1 -1
- package/src/main/js/sap/ushell/adapters/cdm/_LaunchPage/readHome.js +1 -1
- package/src/main/js/sap/ushell/adapters/cdm/_LaunchPage/uri.transform.js +1 -1
- package/src/main/js/sap/ushell/adapters/cdm/_Personalization/internals.js +1 -1
- package/src/main/js/sap/ushell/adapters/cdm/util/AppForInbound.js +5 -2
- package/src/main/js/sap/ushell/adapters/cdm/util/cdmSiteUtils.js +4 -1
- package/src/main/js/sap/ushell/adapters/cdm/v3/AdapterBase.js +3 -4
- package/src/main/js/sap/ushell/adapters/cdm/v3/LaunchPageAdapter.js +10 -11
- package/src/main/js/sap/ushell/adapters/cdm/v3/StaticGroupsAdapter.js +1 -1
- package/src/main/js/sap/ushell/adapters/cdm/v3/_LaunchPage/readApplications.js +1 -1
- package/src/main/js/sap/ushell/adapters/cdm/v3/_LaunchPage/readCatalogs.js +1 -1
- package/src/main/js/sap/ushell/adapters/cdm/v3/_LaunchPage/readHome.js +1 -1
- package/src/main/js/sap/ushell/adapters/cdm/v3/_LaunchPage/readPages.js +1 -1
- package/src/main/js/sap/ushell/adapters/cdm/v3/_LaunchPage/readUtils.js +1 -1
- package/src/main/js/sap/ushell/adapters/cdm/v3/_LaunchPage/readVisualizations.js +1 -1
- package/src/main/js/sap/ushell/adapters/cdm/v3/utilsCdm.js +2 -2
- package/src/main/js/sap/ushell/adapters/cep/MenuAdapter.js +0 -1
- package/src/main/js/sap/ushell/adapters/cep/NavTargetResolutionAdapter.js +3 -4
- package/src/main/js/sap/ushell/adapters/cep/SearchCEPAdapter.js +3 -2
- package/src/main/js/sap/ushell/adapters/cflp/UserDefaultParameterPersistenceAdapter.js +3 -3
- package/src/main/js/sap/ushell/adapters/local/AdapterContainer.js +1 -1
- package/src/main/js/sap/ushell/adapters/local/AppStateAdapter.js +2 -3
- package/src/main/js/sap/ushell/adapters/local/ClientSideTargetResolutionAdapter.js +3 -3
- package/src/main/js/sap/ushell/adapters/local/ContainerAdapter.js +1 -3
- package/src/main/js/sap/ushell/adapters/local/LaunchPageAdapter.js +2 -3
- package/src/main/js/sap/ushell/adapters/local/MenuAdapter.js +1 -1
- package/src/main/js/sap/ushell/adapters/local/NavTargetResolutionAdapter.js +1 -1
- package/src/main/js/sap/ushell/adapters/local/PageBuildingAdapter.js +1 -1
- package/src/main/js/sap/ushell/adapters/local/PagePersistenceAdapter.js +2 -2
- package/src/main/js/sap/ushell/adapters/local/PersonalizationAdapter.js +1 -2
- package/src/main/js/sap/ushell/adapters/local/SearchAdapter.js +1 -1
- package/src/main/js/sap/ushell/adapters/local/SearchCEPAdapter.js +1 -1
- package/src/main/js/sap/ushell/adapters/local/SupportTicketAdapter.js +1 -1
- package/src/main/js/sap/ushell/adapters/local/Ui5ComponentLoaderAdapter.js +1 -1
- package/src/main/js/sap/ushell/adapters/local/UserDefaultParameterPersistenceAdapter.js +1 -2
- package/src/main/js/sap/ushell/adapters/local/UserInfoAdapter.js +1 -1
- package/src/main/js/sap/ushell/appRuntime/ui5/AppRuntime.js +5 -9
- package/src/main/js/sap/ushell/appRuntime/ui5/renderers/fiori2/Renderer.js +5 -3
- package/src/main/js/sap/ushell/appRuntime/ui5/renderers/fiori2/RendererExtensions.js +31 -3
- package/src/main/js/sap/ushell/appRuntime/ui5/services/AppLifeCycleAgent.js +2 -0
- package/src/main/js/sap/ushell/appRuntime/ui5/services/Bookmark.js +7 -3
- package/src/main/js/sap/ushell/appRuntime/ui5/services/adapters/Ui5ComponentLoaderAdapter.js +1 -1
- package/src/main/js/sap/ushell/bootstrap/_SchedulingAgent/FLPLoader.js +1 -1
- package/src/main/js/sap/ushell/bootstrap/_SchedulingAgent/logger.js +1 -1
- package/src/main/js/sap/ushell/bootstrap/_SchedulingAgent/state.js +3 -3
- package/src/main/js/sap/ushell/bootstrap/common/common.configure.ui5.js +2 -2
- package/src/main/js/sap/ushell/bootstrap/common/common.configure.ui5datetimeformat.js +1 -1
- package/src/main/js/sap/ushell/bootstrap/common/common.create.configcontract.core.js +1 -0
- package/src/main/js/sap/ushell/bootstrap/common/common.load.core-min.js +2 -2
- package/src/main/js/sap/ushell/bootstrap/common/common.load.launchpad.js +7 -3
- package/src/main/js/sap/ushell/bootstrap/common/common.load.script.js +4 -4
- package/src/main/js/sap/ushell/bootstrap/common/common.util.js +7 -7
- package/src/main/js/sap/ushell/bootstrap/sandbox2/sandboxConfig.json +214 -0
- package/src/main/js/sap/ushell/bootstrap/sandbox2/sandboxSite.json +511 -0
- package/src/main/js/sap/ushell/bootstrap/sandbox2.js +398 -0
- package/src/main/js/sap/ushell/components/CatalogsManager.js +26 -25
- package/src/main/js/sap/ushell/components/ComponentKeysHandler.js +20 -15
- package/src/main/js/sap/ushell/components/DestroyHelper.js +2 -2
- package/src/main/js/sap/ushell/components/HomepageManager.js +6 -6
- package/src/main/js/sap/ushell/components/_HeaderManager/ControlManager.js +1 -1
- package/src/main/js/sap/ushell/components/_HomepageManager/PagingManager.js +5 -5
- package/src/main/js/sap/ushell/components/appfinder/AppFinder.controller.js +19 -15
- package/src/main/js/sap/ushell/components/appfinder/AppFinderView.js +12 -12
- package/src/main/js/sap/ushell/components/appfinder/Catalog.controller.js +18 -18
- package/src/main/js/sap/ushell/components/appfinder/CatalogView.js +1 -1
- package/src/main/js/sap/ushell/components/appfinder/EasyAccess.controller.js +2 -2
- package/src/main/js/sap/ushell/components/appfinder/HierarchyApps.controller.js +6 -6
- package/src/main/js/sap/ushell/components/appfinder/VisualizationOrganizerHelper.js +4 -4
- package/src/main/js/sap/ushell/components/appfinder/manifest.json +1 -1
- package/src/main/js/sap/ushell/components/applicationIntegration/AppLifeCycle.js +8 -6
- package/src/main/js/sap/ushell/components/applicationIntegration/application/Application.js +2 -2
- package/src/main/js/sap/ushell/components/applicationIntegration/application/BlueBoxHandler.js +1 -1
- package/src/main/js/sap/ushell/components/applicationIntegration/application/PostMessageAPI.js +1 -1
- package/src/main/js/sap/ushell/components/applicationIntegration/application/WebGUIStatefulHandler.js +5 -5
- package/src/main/js/sap/ushell/components/applicationIntegration/configuration/AppMeta.js +21 -26
- package/src/main/js/sap/ushell/components/applicationIntegration/elements/model.js +1 -1
- package/src/main/js/sap/ushell/components/applicationIntegration/relatedServices/RelatedServices.js +1 -1
- package/src/main/js/sap/ushell/components/applicationIntegration/relatedShellElements/RelatedShellElements.js +1 -1
- package/src/main/js/sap/ushell/components/cards/Configuration.controller.js +2 -2
- package/src/main/js/sap/ushell/components/cepsearchresult/app/Main.controller.js +6 -2
- package/src/main/js/sap/ushell/components/cepsearchresult/app/util/controls/Category.js +44 -6
- package/src/main/js/sap/ushell/components/cepsearchresult/app/util/controls/categories/Application.js +22 -9
- package/src/main/js/sap/ushell/components/container/ApplicationContainer.js +23 -16
- package/src/main/js/sap/ushell/components/contentFinder/Component.js +1 -1
- package/src/main/js/sap/ushell/components/contentFinder/controller/AppSearch.controller.js +1 -1
- package/src/main/js/sap/ushell/components/contentFinder/controller/ContentFinderDialog.controller.js +1 -1
- package/src/main/js/sap/ushell/components/contentFinder/controller/WidgetGallery.controller.js +1 -1
- package/src/main/js/sap/ushell/components/contentFinder/manifest.json +1 -1
- package/src/main/js/sap/ushell/components/factsheet/Component.js +1 -1
- package/src/main/js/sap/ushell/components/factsheet/controls/PictureTile.js +1 -2
- package/src/main/js/sap/ushell/components/factsheet/controls/PictureViewer.js +5 -6
- package/src/main/js/sap/ushell/components/factsheet/controls/PictureViewerItem.js +1 -2
- package/src/main/js/sap/ushell/components/factsheet/factory/ThingInspector.js +3 -3
- package/src/main/js/sap/ushell/components/homeApp/error/HomeAppError.controller.js +0 -1
- package/src/main/js/sap/ushell/components/homeApp/error/HomeAppError.view.xml +7 -6
- package/src/main/js/sap/ushell/components/homepage/ActionMode.js +1 -1
- package/src/main/js/sap/ushell/components/homepage/DashboardContent.controller.js +2 -7
- package/src/main/js/sap/ushell/components/homepage/DashboardContent.view.js +13 -13
- package/src/main/js/sap/ushell/components/homepage/DashboardGroupsBox.js +1 -1
- package/src/main/js/sap/ushell/components/homepage/DashboardUIActions.js +1 -1
- package/src/main/js/sap/ushell/components/homepage/manifest.json +1 -1
- package/src/main/js/sap/ushell/components/pages/ActionMode.js +10 -10
- package/src/main/js/sap/ushell/components/pages/Component.js +1 -1
- package/src/main/js/sap/ushell/components/pages/MyHomeImport.js +1 -1
- package/src/main/js/sap/ushell/components/pages/StateManager.js +2 -2
- package/src/main/js/sap/ushell/components/pages/controller/ImportDialog.controller.js +12 -12
- package/src/main/js/sap/ushell/components/pages/controller/PageRuntime.controller.js +93 -95
- package/src/main/js/sap/ushell/components/pages/manifest.json +1 -1
- package/src/main/js/sap/ushell/components/pages/view/PageRuntime.view.xml +31 -23
- package/src/main/js/sap/ushell/components/runtimeSwitcher/controller/RuntimeSwitcher.controller.js +1 -1
- package/src/main/js/sap/ushell/components/runtimeSwitcher/manifest.json +1 -1
- package/src/main/js/sap/ushell/components/shell/MenuBar/controller/MenuBar.controller.js +7 -6
- package/src/main/js/sap/ushell/components/shell/MenuBar/manifest.json +1 -1
- package/src/main/js/sap/ushell/components/shell/NavigationBarMenu/controller/NavigationBarMenu.controller.js +1 -3
- package/src/main/js/sap/ushell/components/shell/NavigationBarMenu/manifest.json +2 -2
- package/src/main/js/sap/ushell/components/shell/Notifications/Component.js +1 -1
- package/src/main/js/sap/ushell/components/shell/Notifications/Notifications.controller.js +2 -2
- package/src/main/js/sap/ushell/components/shell/ProductSwitch/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/SearchCEP.controller.js +74 -16
- package/src/main/js/sap/ushell/components/shell/SearchCEP/SearchFieldFragment.fragment.xml +2 -1
- package/src/main/js/sap/ushell/components/shell/SearchCEP/SearchProviders/FrequentActivityProvider.js +1 -2
- package/src/main/js/sap/ushell/components/shell/SearchCEP/SearchProviders/RecentSearchProvider.js +1 -2
- package/src/main/js/sap/ushell/components/shell/SearchCEP/SearchProviders/SearchProvider.js +1 -1
- package/src/main/js/sap/ushell/components/shell/SearchCEP/SearchProviders/SearchServiceProvider.js +1 -2
- package/src/main/js/sap/ushell/components/shell/Settings/Component.js +1 -1
- package/src/main/js/sap/ushell/components/shell/Settings/ErrorMessageHelper.js +8 -9
- package/src/main/js/sap/ushell/components/shell/Settings/UserSettings.controller.js +53 -13
- package/src/main/js/sap/ushell/components/shell/Settings/UserSettings.view.xml +5 -0
- package/src/main/js/sap/ushell/components/shell/Settings/appearance/Appearance.controller.js +41 -38
- package/src/main/js/sap/ushell/components/shell/Settings/notifications/NotificationsSetting.controller.js +1 -1
- package/src/main/js/sap/ushell/components/shell/Settings/userActivities/UserActivitiesSetting.controller.js +2 -2
- 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/UserDefaultsSetting.controller.js +7 -3
- package/src/main/js/sap/ushell/components/shell/UserActionsMenu/Component.js +1 -1
- package/src/main/js/sap/ushell/components/shell/UserImage/Component.js +1 -1
- package/src/main/js/sap/ushell/components/tiles/applauncher/StaticTile.view.js +0 -2
- package/src/main/js/sap/ushell/components/tiles/applauncher/StaticTileTmp.view.js +0 -2
- package/src/main/js/sap/ushell/components/tiles/applauncherdynamic/DynamicTileTmp.view.js +0 -2
- package/src/main/js/sap/ushell/components/tiles/cdm/applauncher/StaticTile.view.js +0 -2
- 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 +0 -2
- package/src/main/js/sap/ushell/components/tiles/indicatorTileUtils/oData4Analytics.js +41 -48
- package/src/main/js/sap/ushell/components/tiles/indicatorTileUtils/smartBusinessUtil.js +3 -3
- package/src/main/js/sap/ushell/components/tiles/utils.js +1 -1
- package/src/main/js/sap/ushell/components/visualizationOrganizer/Component.js +5 -18
- package/src/main/js/sap/ushell/components/visualizationOrganizer/VisualizationOrganizerPopover.fragment.xml +3 -3
- package/src/main/js/sap/ushell/components/workPageBuilder/Component.js +1 -1
- package/src/main/js/sap/ushell/components/workPageBuilder/controller/WorkPageBuilder.accessibility.js +1 -1
- package/src/main/js/sap/ushell/components/workPageBuilder/controller/WorkPageBuilder.controller.js +65 -95
- package/src/main/js/sap/ushell/components/workPageBuilder/controller/WorkPageBuilder.layout.js +182 -90
- package/src/main/js/sap/ushell/components/workPageBuilder/controller/WorkPageHost.js +1 -1
- package/src/main/js/sap/ushell/components/workPageBuilder/controls/WorkPage.js +1 -1
- package/src/main/js/sap/ushell/components/workPageBuilder/controls/WorkPageButton.js +1 -1
- package/src/main/js/sap/ushell/components/workPageBuilder/controls/WorkPageCell.js +1 -1
- package/src/main/js/sap/ushell/components/workPageBuilder/controls/WorkPageColumn.js +1 -1
- package/src/main/js/sap/ushell/components/workPageBuilder/controls/WorkPageColumnRenderer.js +0 -2
- package/src/main/js/sap/ushell/components/workPageBuilder/controls/WorkPageColumnResizer.js +1 -1
- package/src/main/js/sap/ushell/components/workPageBuilder/controls/WorkPageRow.js +53 -3
- package/src/main/js/sap/ushell/components/workPageBuilder/controls/WorkPageRowRenderer.js +3 -0
- package/src/main/js/sap/ushell/components/workPageBuilder/manifest.json +1 -1
- package/src/main/js/sap/ushell/components/workPageBuilder/view/WorkPageBuilder.view.xml +1 -0
- package/src/main/js/sap/ushell/components/workPageRuntime/Component.js +1 -1
- package/src/main/js/sap/ushell/components/workPageRuntime/controller/WorkPageRuntime.controller.js +6 -2
- package/src/main/js/sap/ushell/components/workPageRuntime/manifest.json +1 -1
- package/src/main/js/sap/ushell/components/workPageRuntime/services/NavigationResolver.js +1 -2
- package/src/main/js/sap/ushell/components/workPageRuntime/services/WorkPage.js +1 -2
- package/src/main/js/sap/ushell/designtime/ApplicationContainer.designtime.js +1 -1
- package/src/main/js/sap/ushell/library.js +4 -2
- package/src/main/js/sap/ushell/navigationMode.js +10 -5
- package/src/main/js/sap/ushell/override.js +1 -1
- package/src/main/js/sap/ushell/performance/FesrEnhancer.js +248 -187
- package/src/main/js/sap/ushell/performance/ShellAnalytics.js +206 -207
- package/src/main/js/sap/ushell/performance/StatisticalRecord.js +366 -230
- package/src/main/js/sap/ushell/plugins/appwarmup/Component.js +1 -1
- package/src/main/js/sap/ushell/renderers/fiori2/Renderer.js +39 -23
- package/src/main/js/sap/ushell/renderers/fiori2/RendererExtensions.js +105 -25
- package/src/main/js/sap/ushell/renderers/fiori2/Shell.controller.js +63 -52
- package/src/main/js/sap/ushell/renderers/fiori2/ShellLayout.js +1 -1
- package/src/main/js/sap/ushell/renderers/fiori2/resources/resources.properties +1 -1
- package/src/main/js/sap/ushell/renderers/fiori2/resources/resources_ko.properties +1 -1
- package/src/main/js/sap/ushell/renderers/fiori2/search/searchComponent/manifest.json +1 -1
- package/src/main/js/sap/ushell/services/AppConfiguration.js +3 -3
- package/src/main/js/sap/ushell/services/AppLifeCycle.js +1 -1
- package/src/main/js/sap/ushell/services/AppState.js +2 -3
- package/src/main/js/sap/ushell/services/Bookmark.js +1 -1
- package/src/main/js/sap/ushell/services/ClientSideTargetResolution.js +1 -1
- package/src/main/js/sap/ushell/services/CommonDataModel.js +4 -5
- package/src/main/js/sap/ushell/services/Configuration.js +1 -2
- package/src/main/js/sap/ushell/services/ConfigurationDefaults.js +2 -2
- package/src/main/js/sap/ushell/services/ContentExtensionAdapterFactory.js +1 -1
- package/src/main/js/sap/ushell/services/CrossApplicationNavigation.js +36 -33
- package/src/main/js/sap/ushell/services/DarkModeSupport.js +2 -2
- package/src/main/js/sap/ushell/services/EndUserFeedback.js +2 -2
- package/src/main/js/sap/ushell/services/LaunchPage.js +11 -8
- package/src/main/js/sap/ushell/services/Menu.js +31 -37
- package/src/main/js/sap/ushell/services/Message.js +1 -2
- package/src/main/js/sap/ushell/services/MessageBroker.js +1 -2
- package/src/main/js/sap/ushell/services/NavTargetResolution.js +58 -9
- package/src/main/js/sap/ushell/services/Navigation.js +1356 -0
- package/src/main/js/sap/ushell/services/NavigationDataProvider.js +7 -5
- package/src/main/js/sap/ushell/services/Notifications.js +16 -16
- package/src/main/js/sap/ushell/services/PageBuilding.js +1 -2
- package/src/main/js/sap/ushell/services/PagePersistence.js +6 -6
- package/src/main/js/sap/ushell/services/PageReferencing.js +2 -2
- package/src/main/js/sap/ushell/services/Pages.js +24 -25
- package/src/main/js/sap/ushell/services/Personalization.js +5 -5
- package/src/main/js/sap/ushell/services/PluginManager.js +1 -2
- package/src/main/js/sap/ushell/services/ReferenceResolver.js +2 -2
- package/src/main/js/sap/ushell/services/Search.js +1 -1
- package/src/main/js/sap/ushell/services/SearchCEP.js +2 -1
- package/src/main/js/sap/ushell/services/SearchableContent.js +85 -59
- package/src/main/js/sap/ushell/services/ShellNavigation.js +59 -17
- package/src/main/js/sap/ushell/services/ShellNavigationHashChanger.js +115 -39
- package/src/main/js/sap/ushell/services/SmartNavigation.js +4 -4
- package/src/main/js/sap/ushell/services/SpaceContent.js +5 -6
- package/src/main/js/sap/ushell/services/SupportTicket.js +1 -1
- package/src/main/js/sap/ushell/services/UITracer.js +5 -3
- package/src/main/js/sap/ushell/services/URLShortening.js +1 -1
- package/src/main/js/sap/ushell/services/URLTemplate.js +2 -2
- package/src/main/js/sap/ushell/services/Ui5ComponentLoader.js +7 -7
- package/src/main/js/sap/ushell/services/UserDefaultParameterPersistence.js +1 -2
- package/src/main/js/sap/ushell/services/UserDefaultParameters.js +1 -1
- package/src/main/js/sap/ushell/services/UserInfo.js +1 -1
- package/src/main/js/sap/ushell/services/UserRecents.js +91 -69
- package/src/main/js/sap/ushell/services/VisualizationDataProvider.js +10 -6
- package/src/main/js/sap/ushell/services/VisualizationInstantiation.js +1 -3
- package/src/main/js/sap/ushell/services/_ClientSideTargetResolution/Formatter.js +1 -1
- package/src/main/js/sap/ushell/services/_ClientSideTargetResolution/InboundIndex.js +1 -1
- package/src/main/js/sap/ushell/services/_ClientSideTargetResolution/InboundProvider.js +2 -5
- package/src/main/js/sap/ushell/services/_ClientSideTargetResolution/PrelaunchOperations.js +2 -2
- package/src/main/js/sap/ushell/services/_ClientSideTargetResolution/Search.js +11 -11
- package/src/main/js/sap/ushell/services/_ClientSideTargetResolution/StagedLogger.js +1 -1
- package/src/main/js/sap/ushell/services/_ClientSideTargetResolution/SystemContext.js +1 -1
- package/src/main/js/sap/ushell/services/_ClientSideTargetResolution/Utils.js +6 -6
- package/src/main/js/sap/ushell/services/_ClientSideTargetResolution/VirtualInbounds.js +1 -1
- package/src/main/js/sap/ushell/services/_ClientSideTargetResolution/XAppStateProcessing.js +2 -2
- package/src/main/js/sap/ushell/services/_CommonDataModel/PersonalizationProcessor.js +1 -2
- package/src/main/js/sap/ushell/services/_CommonDataModel/SiteConverter.js +1 -1
- package/src/main/js/sap/ushell/services/_ContentExtensionAdapterFactory/ContentExtensionAdapterConfig.js +1 -1
- package/src/main/js/sap/ushell/services/_ContentExtensionAdapterFactory/FeaturedGroupConfig.js +1 -1
- package/src/main/js/sap/ushell/services/_CrossApplicationNavigation/utils.js +9 -14
- package/src/main/js/sap/ushell/services/_MessageBroker/MessageBrokerEngine.js +1 -1
- package/src/main/js/sap/ushell/services/_PageReferencing/PageReferencer.js +1 -1
- package/src/main/js/sap/ushell/services/_Personalization/ContextContainer.js +34 -21
- package/src/main/js/sap/ushell/services/_Personalization/Variant.js +5 -2
- package/src/main/js/sap/ushell/services/_Personalization/VariantSet.js +18 -12
- package/src/main/js/sap/ushell/services/_Personalization/utils.js +2 -2
- package/src/main/js/sap/ushell/services/_PluginManager/Extensions.js +1 -1
- package/src/main/js/sap/ushell/services/_PluginManager/HeaderExtensions.js +3 -3
- package/src/main/js/sap/ushell/services/_PluginManager/MenuExtensions.js +1 -1
- package/src/main/js/sap/ushell/services/_Ui5ComponentLoader/utils.js +1 -1
- package/src/main/js/sap/ushell/services/_UserRecents/RecentActivity.js +206 -214
- package/src/main/js/sap/ushell/services/_UserRecents/RecentAppsUsage.js +46 -54
- package/src/main/js/sap/ushell/services/_UserRecents/RecentsList.js +39 -40
- package/src/main/js/sap/ushell/services/_UserRecents/UserRecentsBase.js +29 -36
- package/src/main/js/sap/ushell/services/_VisualizationInstantiation/VizInstance.js +1 -1
- package/src/main/js/sap/ushell/services/_VisualizationInstantiation/VizInstanceAbap.js +1 -1
- package/src/main/js/sap/ushell/services/_VisualizationInstantiation/VizInstanceCdm.js +1 -1
- package/src/main/js/sap/ushell/services/_VisualizationInstantiation/VizInstanceLaunchPage.js +10 -8
- package/src/main/js/sap/ushell/services/_VisualizationInstantiation/VizInstanceLink.js +2 -2
- package/src/main/js/sap/ushell/services/appstate/LimitedBuffer.js +1 -2
- package/src/main/js/sap/ushell/services/appstate/Sequentializer.js +1 -1
- package/src/main/js/sap/ushell/support/plugins/flpConfig/FlpConfigurationPlugin.js +1 -1
- package/src/main/js/sap/ushell/themes/base/SearchCEP.less +8 -0
- package/src/main/js/sap/ushell/themes/base/ShellHeader.less +12 -6
- package/src/main/js/sap/ushell/themes/base/WorkPage.less +34 -4
- package/src/main/js/sap/ushell/themes/base/WorkPageCell.less +3 -1
- package/src/main/js/sap/ushell/themes/base/WorkPageColumn.less +3 -76
- package/src/main/js/sap/ushell/themes/base/WorkPageColumnResizer.less +2 -1
- package/src/main/js/sap/ushell/themes/base/WorkPageRow.less +822 -6
- package/src/main/js/sap/ushell/themes/sap_horizon/SearchCEP.less +4 -0
- package/src/main/js/sap/ushell/themes/sap_horizon/ToolAreaItem.less +1 -1
- package/src/main/js/sap/ushell/themes/sap_horizon_dark/SearchCEP.less +4 -0
- package/src/main/js/sap/ushell/themes/sap_horizon_dark/ToolAreaItem.less +1 -1
- package/src/main/js/sap/ushell/themes/sap_horizon_hcb/SearchCEP.less +5 -0
- package/src/main/js/sap/ushell/themes/sap_horizon_hcw/SearchCEP.less +5 -0
- package/src/main/js/sap/ushell/ui/AppContainer.js +0 -1
- package/src/main/js/sap/ushell/ui/ContentNodeSelector.js +1 -1
- package/src/main/js/sap/ushell/ui/QuickAccess.js +2 -2
- package/src/main/js/sap/ushell/ui/ShellHeader.js +21 -5
- package/src/main/js/sap/ushell/ui/ShellHeaderRenderer.js +1 -0
- package/src/main/js/sap/ushell/ui/appfinder/AppBox.js +0 -1
- package/src/main/js/sap/ushell/ui/bookmark/SaveOnPage.view.xml +6 -6
- package/src/main/js/sap/ushell/ui/cards/FrequentActivitiesExtension.js +1 -1
- package/src/main/js/sap/ushell/ui/cards/RecentActivitiesExtension.js +1 -1
- package/src/main/js/sap/ushell/ui/footerbar/AboutButton.js +0 -1
- package/src/main/js/sap/ushell/ui/footerbar/AddBookmarkButton.js +32 -17
- package/src/main/js/sap/ushell/ui/footerbar/ContactSupportButton.js +0 -1
- package/src/main/js/sap/ushell/ui/footerbar/JamDiscussButton.js +0 -1
- package/src/main/js/sap/ushell/ui/footerbar/JamShareButton.js +0 -1
- package/src/main/js/sap/ushell/ui/footerbar/LogoutButton.js +0 -1
- package/src/main/js/sap/ushell/ui/footerbar/SaveAsTile.view.js +1 -12
- package/src/main/js/sap/ushell/ui/footerbar/SendAsEmailButton.js +0 -1
- package/src/main/js/sap/ushell/ui/launchpad/ActionItem.js +0 -1
- package/src/main/js/sap/ushell/ui/launchpad/AnchorItem.js +0 -1
- package/src/main/js/sap/ushell/ui/launchpad/AnchorNavigationBar.js +0 -1
- package/src/main/js/sap/ushell/ui/launchpad/ExtendedChangeDetection.js +1 -1
- package/src/main/js/sap/ushell/ui/launchpad/FailedTileDialog.js +4 -4
- package/src/main/js/sap/ushell/ui/launchpad/GroupHeaderActions.js +0 -1
- package/src/main/js/sap/ushell/ui/launchpad/GroupListItem.js +0 -1
- package/src/main/js/sap/ushell/ui/launchpad/LinkTileWrapper.js +1 -1
- package/src/main/js/sap/ushell/ui/launchpad/LoadingDialog.js +0 -1
- package/src/main/js/sap/ushell/ui/launchpad/Page.js +1 -1
- package/src/main/js/sap/ushell/ui/launchpad/PlusTile.js +0 -1
- package/src/main/js/sap/ushell/ui/launchpad/Section.js +3 -3
- package/src/main/js/sap/ushell/ui/launchpad/Tile.js +0 -1
- package/src/main/js/sap/ushell/ui/launchpad/TileContainer.js +0 -1
- package/src/main/js/sap/ushell/ui/launchpad/section/CompactArea.js +4 -5
- package/src/main/js/sap/ushell/ui/shell/RightFloatingContainer.js +1 -1
- package/src/main/js/sap/ushell/ui/shell/ShellHeadItem.js +7 -8
- package/src/main/js/sap/ushell/ui/shell/SysInfoBar.js +1 -1
- package/src/main/js/sap/ushell/ui/shell/ToolAreaItem.js +1 -2
- package/src/main/js/sap/ushell/ui/tile/DynamicTile.js +0 -1
- package/src/main/js/sap/ushell/ui/tile/ImageTile.js +0 -1
- package/src/main/js/sap/ushell/ui/tile/StaticTile.js +0 -1
- package/src/main/js/sap/ushell/ui/tile/TileBase.js +0 -1
- package/src/main/js/sap/ushell/ui/utils.js +1 -1
- package/src/main/js/sap/ushell/ui5service/ShellUIService.js +1 -1
- package/src/main/js/sap/ushell/ui5service/UserStatus.js +1 -1
- package/src/main/js/sap/ushell/ui5service/_ShellUIService/shelluiservice.class.factory.js +1 -1
- package/src/main/js/sap/ushell/utils/HttpClient.js +0 -1
- package/src/main/js/sap/ushell/utils/RestrictedJSONModel.js +1 -1
- package/src/main/js/sap/ushell/utils/UrlParsing.js +18 -14
- package/src/main/js/sap/ushell/utils/UrlShortening.js +2 -2
- package/src/main/js/sap/ushell/utils/objectOperations.js +1 -1
- package/src/main/js/sap/ushell/utils/type.js +1 -1
- package/src/main/js/sap/ushell/utils/utilsCdm.js +3 -3
- package/src/main/js/sap/ushell/utils.js +128 -21
- package/src/test/js/sap/ushell/bootstrap/sandbox.js +2 -2
- package/ui5.yaml +1 -0
- package/src/main/js/sap/ushell/appRuntime/ui5/services/Menu.js +0 -22
|
@@ -4,11 +4,6 @@
|
|
|
4
4
|
* @file The FESR Enhancer attaches to the Front End Sub-Records tracker by UI5.
|
|
5
5
|
* UI5 tracks rendering and request activities and tries to detect what happens.
|
|
6
6
|
* The ushell FESR Enhancer has then the possibility to overwrite and enhance the result with FLP specific information.
|
|
7
|
-
* the following messages to debug log with
|
|
8
|
-
* prefix [fesrEnhFlp] are added
|
|
9
|
-
* - flp has passed on a record to fesr
|
|
10
|
-
* - flp has not overwritten steps of pattern /press/
|
|
11
|
-
* - flp has not overwritten steps of pattern /__cdm/
|
|
12
7
|
* @private
|
|
13
8
|
*/
|
|
14
9
|
sap.ui.define([
|
|
@@ -26,7 +21,10 @@ sap.ui.define([
|
|
|
26
21
|
) {
|
|
27
22
|
"use strict";
|
|
28
23
|
|
|
29
|
-
|
|
24
|
+
const sModuleName = "FesrEnhancer";
|
|
25
|
+
const sLogPrefix = "[FesrFlp]";
|
|
26
|
+
|
|
27
|
+
const SCENARIOS = {
|
|
30
28
|
HOME_INITIAL: "FLP@LOAD",
|
|
31
29
|
HOME_LOADING: "FLP@DURING_LOAD",
|
|
32
30
|
FINDER_INITIAL: "FLP@LOAD_FINDER",
|
|
@@ -43,13 +41,27 @@ sap.ui.define([
|
|
|
43
41
|
];
|
|
44
42
|
|
|
45
43
|
// type of interaction, more details in "sap/ui/performance/trace/FESR.js"
|
|
46
|
-
|
|
44
|
+
const INTERACTION_TYPE = {
|
|
47
45
|
APP_START: 1,
|
|
48
46
|
STEP_IN_APP: 2,
|
|
49
47
|
UNKNOWN: 3
|
|
50
48
|
};
|
|
51
49
|
|
|
52
|
-
|
|
50
|
+
// only those fields are allowed to change on the fesr record
|
|
51
|
+
const aSupportedFields = [
|
|
52
|
+
"stepName",
|
|
53
|
+
"appNameLong",
|
|
54
|
+
"appNameShort",
|
|
55
|
+
"interactionType",
|
|
56
|
+
"timeToInteractive"
|
|
57
|
+
];
|
|
58
|
+
const oFieldFormatting = {
|
|
59
|
+
stepName: { maxLength: 20 },
|
|
60
|
+
// appNameLong does not use any prefixes yet
|
|
61
|
+
appNameShort: { maxLength: 20 }
|
|
62
|
+
};
|
|
63
|
+
|
|
64
|
+
const oFesrEnhancer = {
|
|
53
65
|
_fnOriginalOnBeforeCreated: null,
|
|
54
66
|
_lastTrackedRecord: null,
|
|
55
67
|
|
|
@@ -89,7 +101,7 @@ sap.ui.define([
|
|
|
89
101
|
if (bExactName) {
|
|
90
102
|
return performance.getEntriesByName(sEventName);
|
|
91
103
|
}
|
|
92
|
-
return performance.getEntriesByType("mark").filter(
|
|
104
|
+
return performance.getEntriesByType("mark").filter((oMark) => {
|
|
93
105
|
return oMark.name.includes(sEventName);
|
|
94
106
|
});
|
|
95
107
|
},
|
|
@@ -100,7 +112,7 @@ sap.ui.define([
|
|
|
100
112
|
* @returns {string} ID of the application.
|
|
101
113
|
*/
|
|
102
114
|
_getLastTrackedApplicationId: function () {
|
|
103
|
-
|
|
115
|
+
const oCurrentApplication = ShellAnalytics.getCurrentApplication();
|
|
104
116
|
if (oCurrentApplication) {
|
|
105
117
|
return oCurrentApplication.id;
|
|
106
118
|
}
|
|
@@ -134,254 +146,303 @@ sap.ui.define([
|
|
|
134
146
|
* @param {string} oUi5FesrHandle.stepName The step name with <Trigger>_<Event>.
|
|
135
147
|
* @param {string} oUi5FesrHandle.appNameLong The application name with max 70 chars.
|
|
136
148
|
* @param {string} oUi5FesrHandle.appNameShort The application name with max 20 chars.
|
|
149
|
+
* @param {int} oUi5FesrHandle.interactionType type of interaction
|
|
137
150
|
* @param {int} oUi5FesrHandle.timeToInteractive The detected end-to-end time of the step.
|
|
138
151
|
* @param {object} oUi5Interaction The corresponding interaction object, read-only.
|
|
139
152
|
* @returns {object} Modified header information.
|
|
140
153
|
* @private
|
|
141
154
|
*/
|
|
142
155
|
_onBeforeCreatedHandler: function (oUi5FesrHandle, oUi5Interaction) {
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
156
|
+
let oFesrHandle = deepExtend({}, oUi5FesrHandle); // copy first to prevent side effects
|
|
157
|
+
|
|
158
|
+
try {
|
|
159
|
+
const { scenario, relatedRecord } = this._detectScenario(oFesrHandle);
|
|
160
|
+
Log.debug(`${sLogPrefix} identified scenario: ${scenario}`, null, sModuleName);
|
|
161
|
+
|
|
162
|
+
const sApplicationId = this._getLastTrackedApplicationId();
|
|
163
|
+
if (sApplicationId) {
|
|
164
|
+
// Add the latest remembered Fiori ID to every record until a different Fiori ID is set.
|
|
165
|
+
// This is needed to relate interactions tracked afterward to the started app.
|
|
166
|
+
// Restriction: Fiori IDs are also added to not related interactions like FLP button clicks or shell plugin interactions.
|
|
167
|
+
// Still, this is considered by S/4 and UI5 to be more helpful than not adding it anywhere.
|
|
168
|
+
oFesrHandle.appNameShort = sApplicationId;
|
|
169
|
+
}
|
|
153
170
|
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
171
|
+
let oEnhancement;
|
|
172
|
+
switch (scenario) {
|
|
173
|
+
case SCENARIOS.HOME_INITIAL:
|
|
174
|
+
case SCENARIOS.CUSTOM_HOME_INITIAL:
|
|
175
|
+
case SCENARIOS.FINDER_INITIAL:
|
|
176
|
+
oEnhancement = this._enhanceInitialStart(oFesrHandle, scenario, relatedRecord);
|
|
177
|
+
break;
|
|
178
|
+
case SCENARIOS.APP_INITIAL:
|
|
179
|
+
oEnhancement = this._enhanceInitialAppStart(scenario, relatedRecord);
|
|
180
|
+
break;
|
|
181
|
+
case SCENARIOS.NAVIGATION:
|
|
182
|
+
case SCENARIOS.HOME_LOADING:
|
|
183
|
+
oEnhancement = this._enhanceNavigationRecord(scenario, relatedRecord);
|
|
184
|
+
break;
|
|
185
|
+
default:
|
|
186
|
+
// unknown scenarios cannot be enhanced
|
|
187
|
+
Log.debug(`${sLogPrefix} unknown scenario, step name: ${oFesrHandle.stepName}`, null, sModuleName);
|
|
188
|
+
return oFesrHandle;
|
|
189
|
+
}
|
|
190
|
+
|
|
191
|
+
// Consumed in SchedulingAgent
|
|
192
|
+
if (START_UP_SCENARIOS.includes(scenario)) {
|
|
193
|
+
EventHub.emit("startUpFesrEnhanced", Date.now());
|
|
194
|
+
}
|
|
195
|
+
|
|
196
|
+
// Sanitize Enhancements
|
|
197
|
+
oEnhancement = Object.keys(oEnhancement).reduce((oResult, sKey) => {
|
|
198
|
+
const vValue = oEnhancement[sKey];
|
|
199
|
+
// only keep supported fields and actual values
|
|
200
|
+
if (aSupportedFields.includes(sKey) && !!vValue) {
|
|
201
|
+
const oFormat = oFieldFormatting[sKey];
|
|
202
|
+
if (oFormat && oFormat.maxLength) {
|
|
203
|
+
// FLP uses prefixes we want them to be always visible
|
|
204
|
+
oResult[sKey] = vValue.substring(0, oFormat.maxLength);
|
|
205
|
+
} else {
|
|
206
|
+
oResult[sKey] = vValue;
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
return oResult;
|
|
210
|
+
}, {});
|
|
169
211
|
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
212
|
+
oFesrHandle = {...oFesrHandle, ...oEnhancement};
|
|
213
|
+
Log.debug(`${sLogPrefix} passing enhancements:`, JSON.stringify(oEnhancement, null, 2), sModuleName);
|
|
214
|
+
} catch (oError) {
|
|
215
|
+
Log.error(`${sLogPrefix} Could not enhance the FESR:`, oError, sModuleName);
|
|
173
216
|
}
|
|
174
217
|
|
|
175
|
-
|
|
218
|
+
Log.debug(`${sLogPrefix} => UI5: ${oFesrHandle.stepName} - ${oFesrHandle.appNameShort}`, null, sModuleName);
|
|
219
|
+
|
|
220
|
+
return oFesrHandle;
|
|
176
221
|
},
|
|
177
222
|
|
|
178
223
|
/**
|
|
179
|
-
*
|
|
224
|
+
* Determines the relevant PerformanceMark based on the related record
|
|
225
|
+
* @param {sap.ushell.performance.StatisticalRecord} oRelatedRecord The related Record
|
|
180
226
|
*
|
|
181
|
-
* @
|
|
182
|
-
* @param {object} oUi5Interaction The corresponding interaction object.
|
|
183
|
-
* @returns {object} Returns an object which has at least a scenario property. This property may be null if the scenario is unknown.
|
|
184
|
-
* There may also be a relatedEvent property if an event was used in order to detect the scenario.
|
|
227
|
+
* @returns {PerformanceMark|undefined} The relevant performance mark
|
|
185
228
|
* @private
|
|
229
|
+
* @since 1.118
|
|
186
230
|
*/
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
};
|
|
192
|
-
if (oEvent) {
|
|
193
|
-
oResult.relatedEvent = oEvent;
|
|
194
|
-
}
|
|
195
|
-
return oResult;
|
|
231
|
+
_getRelevantPerformanceMark: function (oRelatedRecord) {
|
|
232
|
+
if (!oRelatedRecord) {
|
|
233
|
+
Log.warning(`${sLogPrefix} Could not determine performance mark`, "No Statistical Record found", sModuleName);
|
|
234
|
+
return;
|
|
196
235
|
}
|
|
197
236
|
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
this.
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
case "
|
|
211
|
-
|
|
237
|
+
const aMarks = [];
|
|
238
|
+
if (oRelatedRecord.getTargetIsHomeApp()) {
|
|
239
|
+
aMarks.push(this._getPerformanceEntries("FLP-TTI-Homepage-Custom", true)[0]);
|
|
240
|
+
} else {
|
|
241
|
+
switch (oRelatedRecord.getTargetApplication()) {
|
|
242
|
+
case "FLP_HOME":
|
|
243
|
+
aMarks.push(this._getPerformanceEntries("FLP-TTI-Homepage", true)[0]);
|
|
244
|
+
break;
|
|
245
|
+
case "FLP_PAGE":
|
|
246
|
+
aMarks.push(this._getPerformanceEntries("FLP-TTI-Homepage", true)[0]);
|
|
247
|
+
aMarks.push(this._getPerformanceEntries("FLP-Pages-Service-loadPage-end", false)[0]);
|
|
248
|
+
break;
|
|
249
|
+
case "FLP_FINDER":
|
|
250
|
+
aMarks.push(this._getPerformanceEntries("FLP-TTI-AppFinder", true)[0]);
|
|
251
|
+
break;
|
|
212
252
|
default:
|
|
213
|
-
// application direct start
|
|
214
|
-
return createResultObject(SCENARIOS.APP_INITIAL, oLastRecord);
|
|
215
253
|
}
|
|
216
254
|
}
|
|
217
255
|
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
if (aNavigationRecords.length === 1) {
|
|
224
|
-
oNavigationRecord = aNavigationRecords[0];
|
|
225
|
-
// consider that if there was navigation the saved navigation and new navigation has different time
|
|
226
|
-
if ((oNavigationRecord && oLastTrackedRecord && !oNavigationRecord.isEqual(oLastTrackedRecord)) || (!oLastTrackedRecord && oNavigationRecord)) {
|
|
227
|
-
this._setLastTrackedRecord(oNavigationRecord);
|
|
228
|
-
// specify navigation scenario further when during loading
|
|
229
|
-
sScenario = oNavigationRecord.step === SCENARIOS.HOME_LOADING ? SCENARIOS.HOME_LOADING : SCENARIOS.NAVIGATION;
|
|
230
|
-
return createResultObject(sScenario, oNavigationRecord);
|
|
256
|
+
return aMarks.filter((oMark) => {
|
|
257
|
+
// no mark found
|
|
258
|
+
if (!oMark) {
|
|
259
|
+
return false;
|
|
231
260
|
}
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
261
|
+
if (typeof oMark.startTime !== "number") {
|
|
262
|
+
return false;
|
|
263
|
+
}
|
|
264
|
+
// mark was set after Statistical Record was opened
|
|
265
|
+
if (oMark.startTime > oRelatedRecord.getTimeStart()) {
|
|
266
|
+
return true;
|
|
267
|
+
}
|
|
268
|
+
return false;
|
|
269
|
+
})[0];
|
|
241
270
|
},
|
|
242
271
|
|
|
243
272
|
/**
|
|
244
|
-
*
|
|
245
|
-
* replaces the time to interactive by
|
|
246
|
-
* - performance mark FLP-TTI-Homepage in case of spaces & pages or home page
|
|
247
|
-
* - performance mark FLP-TTI-Homepage-Custom in case of home app
|
|
248
|
-
* - performance mark FLP-TTI-AppFinder in case of app finder
|
|
273
|
+
* Tries to detect the current scenario based on the given information.
|
|
249
274
|
*
|
|
250
|
-
* @param {
|
|
251
|
-
* @
|
|
252
|
-
* @param {string} oIntermediateResult.stepName The step name with <Trigger>_<Event>.
|
|
253
|
-
* @param {string} oIntermediateResult.appNameLong The application name with max 70 chars.
|
|
254
|
-
* @param {string} oIntermediateResult.appNameShort The application name with max 20 chars.
|
|
255
|
-
* @param {int} oIntermediateResult.timeToInteractive The detected end-to-end time of the step.
|
|
256
|
-
* @param {object} oRelatedEvent Event from _trackedEvents array which was used to detect the scenario.
|
|
257
|
-
* @returns {object} enhanced oIntermediateResult
|
|
275
|
+
* @param {object} oFesrHandle The FESR header information.
|
|
276
|
+
* @returns {object} Returns an object which has at least a scenario property. This property may be null if the scenario is unknown.
|
|
258
277
|
* @private
|
|
259
278
|
*/
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
279
|
+
_detectScenario: function (oFesrHandle) {
|
|
280
|
+
if (oFesrHandle.stepName === "undetermined_startup") {
|
|
281
|
+
let sDeterminedScenario;
|
|
282
|
+
|
|
283
|
+
const oLastClosedRecord = ShellAnalytics.getLastClosedRecord();
|
|
284
|
+
|
|
285
|
+
if (oLastClosedRecord) {
|
|
286
|
+
this._setLastTrackedRecord(oLastClosedRecord);
|
|
287
|
+
} else {
|
|
288
|
+
Log.warning(`${sLogPrefix} Identified undetermined_startup but could not find a closed StatisticalRecord`, null, sModuleName);
|
|
289
|
+
return {
|
|
290
|
+
scenario: null,
|
|
291
|
+
relatedRecord: null
|
|
292
|
+
};
|
|
293
|
+
}
|
|
294
|
+
|
|
295
|
+
// case home app: Home app is detected in a special way.
|
|
296
|
+
if (oLastClosedRecord.getTargetIsHomeApp()) {
|
|
297
|
+
sDeterminedScenario = SCENARIOS.CUSTOM_HOME_INITIAL;
|
|
298
|
+
} else {
|
|
299
|
+
// case app finder, pages, and homepage
|
|
300
|
+
switch (oFesrHandle.appNameLong) {
|
|
301
|
+
case "sap.ushell.components.homepage":
|
|
302
|
+
case "sap.ushell.components.pages":
|
|
303
|
+
sDeterminedScenario = SCENARIOS.HOME_INITIAL;
|
|
304
|
+
break;
|
|
305
|
+
case "sap.ushell.components.appfinder":
|
|
306
|
+
sDeterminedScenario = SCENARIOS.FINDER_INITIAL;
|
|
307
|
+
break;
|
|
308
|
+
default:
|
|
309
|
+
// application direct start
|
|
310
|
+
sDeterminedScenario = SCENARIOS.APP_INITIAL;
|
|
311
|
+
}
|
|
312
|
+
}
|
|
313
|
+
|
|
314
|
+
return {
|
|
315
|
+
scenario: sDeterminedScenario,
|
|
316
|
+
relatedRecord: oLastClosedRecord
|
|
317
|
+
};
|
|
318
|
+
}
|
|
319
|
+
|
|
320
|
+
const oLastTrackedRecord = this._getLastTrackedRecord();
|
|
321
|
+
const aUntrackedNavigationRecords = ShellAnalytics.getNextNavigationRecords(oLastTrackedRecord);
|
|
322
|
+
|
|
323
|
+
if (aUntrackedNavigationRecords.length) {
|
|
324
|
+
// take the last record, with this we stay in sync with the user action
|
|
325
|
+
const oNavigationRecord = aUntrackedNavigationRecords[aUntrackedNavigationRecords.length - 1];
|
|
326
|
+
if (aUntrackedNavigationRecords.length > 1) {
|
|
327
|
+
const aUntrackedHashes = aUntrackedNavigationRecords.reduce((aHashes, oRecord, iIndex) =>{
|
|
328
|
+
if (iIndex < aUntrackedNavigationRecords.length - 1) {
|
|
329
|
+
aHashes.push(oRecord.getTargetHash());
|
|
330
|
+
}
|
|
331
|
+
return aHashes;
|
|
332
|
+
}, []);
|
|
333
|
+
Log.warning(`${sLogPrefix} skipped Records:`, JSON.stringify(aUntrackedHashes, null, 2), sModuleName);
|
|
334
|
+
}
|
|
335
|
+
|
|
336
|
+
// do not track if last tracked record equals current record
|
|
337
|
+
if (oLastTrackedRecord && oNavigationRecord.isEqual(oLastTrackedRecord)) {
|
|
338
|
+
// no scenario detected
|
|
339
|
+
return {
|
|
340
|
+
scenario: null,
|
|
341
|
+
relatedRecord: null
|
|
342
|
+
};
|
|
343
|
+
}
|
|
344
|
+
|
|
345
|
+
this._setLastTrackedRecord(oNavigationRecord);
|
|
346
|
+
// specify navigation scenario further when during loading
|
|
347
|
+
const sScenario = oNavigationRecord.getStep() === SCENARIOS.HOME_LOADING ? SCENARIOS.HOME_LOADING : SCENARIOS.NAVIGATION;
|
|
348
|
+
return {
|
|
349
|
+
scenario: sScenario,
|
|
350
|
+
relatedRecord: oNavigationRecord
|
|
351
|
+
};
|
|
275
352
|
}
|
|
276
353
|
|
|
277
|
-
//
|
|
278
|
-
|
|
279
|
-
|
|
354
|
+
// no scenario detected
|
|
355
|
+
return {
|
|
356
|
+
scenario: null,
|
|
357
|
+
relatedRecord: null
|
|
358
|
+
};
|
|
280
359
|
},
|
|
281
360
|
|
|
282
361
|
/**
|
|
283
|
-
* Takes the given FESR information
|
|
362
|
+
* Takes the given FESR information and returns an enhancement using the given information
|
|
284
363
|
* for scenario initial start.
|
|
285
364
|
*
|
|
286
|
-
* @param {object}
|
|
365
|
+
* @param {object} oFesrHandle Result that is enhanced.
|
|
287
366
|
* @param {string} sStepName Name of Step.
|
|
288
|
-
* @param {
|
|
289
|
-
*
|
|
367
|
+
* @param {sap.ushell.performance.StatisticalRecord} oRelatedRecord The related StatisticalRecord
|
|
368
|
+
*
|
|
369
|
+
* @returns {object} The enhancement for the initial start scenario.
|
|
290
370
|
*/
|
|
291
|
-
_enhanceInitialStart: function (
|
|
292
|
-
|
|
293
|
-
var oEnhancedFesrHandle = deepExtend({}, oIntermediateResult);
|
|
371
|
+
_enhanceInitialStart: function (oFesrHandle, sStepName, oRelatedRecord) {
|
|
372
|
+
const oResult = {};
|
|
294
373
|
|
|
295
|
-
// set step name
|
|
296
374
|
if (sStepName === SCENARIOS.CUSTOM_HOME_INITIAL) {
|
|
297
375
|
// special case: home app
|
|
298
|
-
|
|
376
|
+
oResult.stepName = sStepName + "@" + oFesrHandle.appNameShort;
|
|
299
377
|
} else {
|
|
300
378
|
// ordinary case
|
|
301
|
-
|
|
379
|
+
oResult.stepName = sStepName;
|
|
302
380
|
}
|
|
303
381
|
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
// set performance mark
|
|
308
|
-
if (sPerformanceMarkName) {
|
|
309
|
-
// if available also add the exact Time To Interactive
|
|
310
|
-
oMark = this._getPerformanceEntries(sPerformanceMarkName, true)[0];
|
|
311
|
-
if (oMark) {
|
|
312
|
-
// in case of initial start, the startTime is most accurate
|
|
313
|
-
oEnhancedFesrHandle.timeToInteractive = oMark.startTime;
|
|
314
|
-
return oEnhancedFesrHandle;
|
|
315
|
-
}
|
|
316
|
-
// empty page
|
|
317
|
-
oMark = this._getPerformanceEntries("FLP-Pages-Service-loadPage-end", false)[0];
|
|
318
|
-
if (oMark) {
|
|
319
|
-
// in case of empty page, the time load page end is most accurate
|
|
320
|
-
oEnhancedFesrHandle.timeToInteractive = oMark.startTime;
|
|
321
|
-
return oEnhancedFesrHandle;
|
|
322
|
-
}
|
|
382
|
+
oResult.interactionType = INTERACTION_TYPE.APP_START;
|
|
383
|
+
oResult.appNameShort = oRelatedRecord.getTargetAppNameShort() || oRelatedRecord.getTargetApplication();
|
|
323
384
|
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
385
|
+
const oPerformanceMark = this._getRelevantPerformanceMark(oRelatedRecord);
|
|
386
|
+
if (oPerformanceMark) {
|
|
387
|
+
Log.debug(`${sLogPrefix} using performance mark: ${oPerformanceMark.name}`, null, sModuleName);
|
|
388
|
+
oResult.timeToInteractive = oPerformanceMark.startTime;
|
|
389
|
+
} else {
|
|
390
|
+
Log.warning(`${sLogPrefix} Scenario ${sStepName} detected did not found a performance mark`, null, sModuleName);
|
|
328
391
|
}
|
|
329
392
|
|
|
330
|
-
return
|
|
393
|
+
return oResult;
|
|
331
394
|
},
|
|
332
395
|
|
|
333
396
|
/**
|
|
334
|
-
* Takes the given FESR information
|
|
397
|
+
* Takes the given FESR information and related record and returns an enhancement
|
|
335
398
|
* using the given information for scenario navigation.
|
|
336
399
|
*
|
|
337
|
-
* @param {object} oIntermediateResult Intermediate result.
|
|
338
400
|
* @param {string} sDetectedScenario detected scenario
|
|
339
|
-
* @param {
|
|
340
|
-
*
|
|
401
|
+
* @param {sap.ushell.performance.StatisticalRecord} oRelatedRecord Related record.
|
|
402
|
+
*
|
|
403
|
+
* @returns {object} The enhancement for the navigation scenario.
|
|
341
404
|
*/
|
|
342
|
-
_enhanceNavigationRecord: function (
|
|
343
|
-
|
|
344
|
-
// keep step from FESR
|
|
405
|
+
_enhanceNavigationRecord: function (sDetectedScenario, oRelatedRecord) {
|
|
406
|
+
const oResult = {};
|
|
345
407
|
if (sDetectedScenario !== "FLP@DURING_LOAD") {
|
|
346
|
-
|
|
408
|
+
oResult.stepName = oRelatedRecord.getStep();
|
|
347
409
|
}
|
|
348
|
-
|
|
349
|
-
if (oRelatedRecord.
|
|
350
|
-
|
|
410
|
+
|
|
411
|
+
if (oRelatedRecord.getTargetApplicationType() === "UI5") {
|
|
412
|
+
oResult.interactionType = INTERACTION_TYPE.APP_START;
|
|
351
413
|
}
|
|
352
414
|
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
415
|
+
oResult.appNameShort = oRelatedRecord.getTargetAppNameShort() || oRelatedRecord.getTargetApplication();
|
|
416
|
+
|
|
417
|
+
// Adding TTI for navigating back from direct app start to home
|
|
418
|
+
const oPerformanceMark = this._getRelevantPerformanceMark(oRelatedRecord);
|
|
419
|
+
if (/^FLP_BACK/.test(oResult.stepName) && oPerformanceMark) {
|
|
420
|
+
Log.debug(`${sLogPrefix} using performance mark: ${oPerformanceMark.name}`, null, sModuleName);
|
|
421
|
+
oResult.timeToInteractive = oPerformanceMark.startTime - oRelatedRecord.getTimeStart();
|
|
360
422
|
}
|
|
361
|
-
return
|
|
423
|
+
return oResult;
|
|
362
424
|
},
|
|
363
425
|
|
|
364
426
|
/**
|
|
365
|
-
* Takes the given FESR information
|
|
427
|
+
* Takes the given FESR information and returns an enhancement using the given information
|
|
366
428
|
* for scenario initial app start.
|
|
367
429
|
*
|
|
368
|
-
* @param {object} oIntermediateResult Intermediate result.
|
|
369
430
|
* @param {string} sStepName Name of the step.
|
|
370
431
|
* @param {object} oRelatedRecord Related record.
|
|
371
|
-
*
|
|
432
|
+
*
|
|
433
|
+
* @returns {object} The enhancement for the navigation scenario.
|
|
372
434
|
*/
|
|
373
|
-
_enhanceInitialAppStart: function (
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
oEnhancedFesrHandle.appNameShort = oIntermediateResult.appNameShort;
|
|
435
|
+
_enhanceInitialAppStart: function (sStepName, oRelatedRecord) {
|
|
436
|
+
const oResult = {};
|
|
437
|
+
oResult.stepName = sStepName;
|
|
377
438
|
|
|
378
|
-
if (oRelatedRecord.
|
|
379
|
-
|
|
439
|
+
if (oRelatedRecord.getTargetApplicationType() === "UI5") {
|
|
440
|
+
oResult.interactionType = INTERACTION_TYPE.APP_START;
|
|
380
441
|
} else {
|
|
381
|
-
//Not UI5 applications handle the start flag
|
|
382
|
-
|
|
442
|
+
//Not UI5 applications handle the start flag themselves and we need to avoid duplication in the statistic
|
|
443
|
+
oResult.interactionType = INTERACTION_TYPE.STEP_IN_APP;
|
|
383
444
|
}
|
|
384
|
-
return
|
|
445
|
+
return oResult;
|
|
385
446
|
}
|
|
386
447
|
};
|
|
387
448
|
|