@sapui5/sap.ushell 1.122.1 → 1.123.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 +1 -1
- package/src/main/js/sap/ushell/Container.js +9 -1
- package/src/main/js/sap/ushell/Fiori20Adapter.js +1 -1
- package/src/main/js/sap/ushell/Fiori20AdapterTest.js +1 -1
- package/src/main/js/sap/ushell/NWBCInterface.js +1 -1
- package/src/main/js/sap/ushell/TechnicalParameters.js +1 -1
- 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 +1 -1
- 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 +1 -1
- package/src/main/js/sap/ushell/adapters/cdm/CommonDataModelAdapter.js +1 -1
- package/src/main/js/sap/ushell/adapters/cdm/ConfigurationDefaultsAdapter.js +1 -1
- package/src/main/js/sap/ushell/adapters/cdm/ContainerAdapter.js +1 -1
- package/src/main/js/sap/ushell/adapters/cdm/LaunchPageAdapter.js +1 -1
- package/src/main/js/sap/ushell/adapters/cdm/PagesCommonDataModelAdapter.js +1 -1
- package/src/main/js/sap/ushell/adapters/cdm/PersonalizationAdapter.js +1 -1
- package/src/main/js/sap/ushell/adapters/cdm/PersonalizationV2Adapter.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 +1 -1
- 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/util/AppForInbound.js +1 -1
- package/src/main/js/sap/ushell/adapters/cdm/util/cdmSiteUtils.js +1 -1
- package/src/main/js/sap/ushell/adapters/cdm/v3/AdapterBase.js +1 -2
- package/src/main/js/sap/ushell/adapters/cdm/v3/FlpLaunchPageAdapter.js +1 -1
- package/src/main/js/sap/ushell/adapters/cdm/v3/LaunchPageAdapter.js +1 -1
- 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/cep/NavTargetResolutionAdapter.js +1 -1
- package/src/main/js/sap/ushell/adapters/cep/NavTargetResolutionInternalAdapter.js +1 -1
- package/src/main/js/sap/ushell/adapters/cep/SearchCEPAdapter.js +1 -1
- package/src/main/js/sap/ushell/adapters/cflp/UserDefaultParameterPersistenceAdapter.js +1 -1
- package/src/main/js/sap/ushell/adapters/local/AdapterContainer.js +1 -1
- package/src/main/js/sap/ushell/adapters/local/AppStateAdapter.js +1 -1
- package/src/main/js/sap/ushell/adapters/local/ClientSideTargetResolutionAdapter.js +1 -1
- package/src/main/js/sap/ushell/adapters/local/ContainerAdapter.js +1 -1
- package/src/main/js/sap/ushell/adapters/local/FlpLaunchPageAdapter.js +1 -1
- package/src/main/js/sap/ushell/adapters/local/LaunchPageAdapter.js +1 -1
- package/src/main/js/sap/ushell/adapters/local/NavTargetResolutionAdapter.js +1 -1
- package/src/main/js/sap/ushell/adapters/local/NavTargetResolutionInternalAdapter.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 +1 -1
- package/src/main/js/sap/ushell/adapters/local/PersonalizationAdapter.js +1 -1
- package/src/main/js/sap/ushell/adapters/local/PersonalizationV2Adapter.js +1 -1
- 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 -1
- package/src/main/js/sap/ushell/adapters/local/UserInfoAdapter.js +1 -1
- package/src/main/js/sap/ushell/api/workpage/Designtime.js +18 -0
- package/src/main/js/sap/ushell/appRuntime/ui5/AppRuntime.js +13 -2
- 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 +1 -1
- package/src/main/js/sap/ushell/appRuntime/ui5/services/AppLifeCycleAgent.js +18 -8
- package/src/main/js/sap/ushell/appRuntime/ui5/services/adapters/Ui5ComponentLoaderAdapter.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 +1 -1
- package/src/main/js/sap/ushell/bootstrap/cdm/cdm.constants.js +1 -1
- 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 +5 -1
- package/src/main/js/sap/ushell/bootstrap/common/common.util.js +27 -2
- package/src/main/js/sap/ushell/bootstrap/sandbox2/sandboxConfig.json +0 -5
- package/src/main/js/sap/ushell/bootstrap/sandbox2/sandboxSite.json +3 -112
- package/src/main/js/sap/ushell/bootstrap/sandbox2.js +8 -1
- package/src/main/js/sap/ushell/components/_HeaderManager/AddHeadEndItemsStrategy.js +3 -0
- package/src/main/js/sap/ushell/components/_HeaderManager/ControlManager.js +1 -1
- package/src/main/js/sap/ushell/components/appfinder/Catalog.controller.js +2 -2
- package/src/main/js/sap/ushell/components/appfinder/manifest.json +1 -1
- package/src/main/js/sap/ushell/components/applicationIntegration/AppLifeCycle.js +1 -2
- package/src/main/js/sap/ushell/components/applicationIntegration/application/Application.js +1 -1
- 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/configuration/AppMeta.js +1 -1
- 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/container/ApplicationContainer.js +1 -1
- package/src/main/js/sap/ushell/components/contentFinder/Component.js +13 -2
- package/src/main/js/sap/ushell/components/contentFinder/controller/AppSearch.controller.js +12 -5
- 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/contentFinder/model/formatter.js +0 -4
- package/src/main/js/sap/ushell/components/contentFinder/resources/resources.properties +2 -0
- package/src/main/js/sap/ushell/components/contentFinder/view/AppSearch.view.xml +159 -137
- package/src/main/js/sap/ushell/components/contentFinder/view/AppSearchCategoryTree.view.xml +24 -0
- package/src/main/js/sap/ushell/components/contentFinderStandalone/Component.js +31 -0
- package/src/main/js/sap/ushell/components/contentFinderStandalone/controller/ContentFinderStandalone.controller.js +146 -0
- package/src/main/js/sap/ushell/components/contentFinderStandalone/manifest.json +59 -0
- package/src/main/js/sap/ushell/components/contentFinderStandalone/manifestAppSearch.json +50 -0
- package/src/main/js/sap/ushell/components/contentFinderStandalone/view/ContentFinderStandalone.view.xml +15 -0
- package/src/main/js/sap/ushell/components/factsheet/Component.js +1 -1
- package/src/main/js/sap/ushell/components/homepage/ActionMode.js +1 -1
- package/src/main/js/sap/ushell/components/homepage/DashboardContent.view.js +1 -1
- 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 +1 -1
- 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/controller/PageRuntime.controller.js +1 -1
- package/src/main/js/sap/ushell/components/pages/manifest.json +1 -1
- 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/manifest.json +1 -1
- package/src/main/js/sap/ushell/components/shell/NavigationBarMenu/controller/NavigationBarMenu.controller.js +1 -1
- package/src/main/js/sap/ushell/components/shell/NavigationBarMenu/manifest.json +1 -1
- 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 +0 -4
- package/src/main/js/sap/ushell/components/shell/ProductSwitch/Component.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 +1 -1
- package/src/main/js/sap/ushell/components/shell/SearchCEP/SearchProviders/FrequentActivityProvider.js +1 -1
- package/src/main/js/sap/ushell/components/shell/SearchCEP/SearchProviders/RecentSearchProvider.js +1 -1
- 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 -1
- package/src/main/js/sap/ushell/components/shell/Settings/Component.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/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/visualizationOrganizer/Component.js +1 -1
- 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 +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/WorkPageColumnResizer.js +1 -1
- package/src/main/js/sap/ushell/components/workPageBuilder/controls/WorkPageRow.js +1 -1
- package/src/main/js/sap/ushell/components/workPageBuilder/manifest.json +1 -1
- package/src/main/js/sap/ushell/components/workPageRuntime/Component.js +1 -1
- package/src/main/js/sap/ushell/components/workPageRuntime/controller/WorkPageRuntime.controller.js +1 -1
- package/src/main/js/sap/ushell/components/workPageRuntime/manifest.json +1 -1
- package/src/main/js/sap/ushell/designtime/ApplicationContainer.designtime.js +1 -1
- package/src/main/js/sap/ushell/library.js +2 -1
- package/src/main/js/sap/ushell/navigationMode.js +1 -1
- package/src/main/js/sap/ushell/performance/ShellAnalytics.js +1 -1
- package/src/main/js/sap/ushell/performance/StatisticalRecord.js +1 -1
- package/src/main/js/sap/ushell/plugins/appwarmup/Component.js +1 -1
- package/src/main/js/sap/ushell/renderer/Renderer.js +44 -32
- package/src/main/js/sap/ushell/renderer/Shell.controller.js +2 -24
- package/src/main/js/sap/ushell/renderer/search/searchComponent/manifest.json +1 -1
- package/src/main/js/sap/ushell/renderers/fiori2/Renderer.js +2 -1
- package/src/main/js/sap/ushell/services/AppConfiguration.js +26 -12
- package/src/main/js/sap/ushell/services/AppLifeCycle.js +154 -39
- package/src/main/js/sap/ushell/services/AppState.js +1 -1
- package/src/main/js/sap/ushell/services/Bookmark.js +1 -1
- package/src/main/js/sap/ushell/services/BookmarkV2.js +104 -134
- package/src/main/js/sap/ushell/services/ClientSideTargetResolution.js +1 -1
- package/src/main/js/sap/ushell/services/CommonDataModel.js +1 -1
- package/src/main/js/sap/ushell/services/Configuration.js +1 -1
- package/src/main/js/sap/ushell/services/ConfigurationDefaults.js +1 -1
- package/src/main/js/sap/ushell/services/ContentExtensionAdapterFactory.js +1 -1
- package/src/main/js/sap/ushell/services/CrossApplicationNavigation.js +1 -1
- package/src/main/js/sap/ushell/services/DarkModeSupport.js +1 -1
- package/src/main/js/sap/ushell/services/Extension/FloatingContainer.js +1 -1
- package/src/main/js/sap/ushell/services/Extension/Footer.js +1 -1
- package/src/main/js/sap/ushell/services/Extension/Header.js +1 -1
- package/src/main/js/sap/ushell/services/Extension/Item.js +1 -1
- package/src/main/js/sap/ushell/services/Extension/SidePane.js +1 -1
- package/src/main/js/sap/ushell/services/Extension/ToolArea.js +1 -1
- package/src/main/js/sap/ushell/services/Extension.js +1 -1
- package/src/main/js/sap/ushell/services/FlpLaunchPage.js +9 -2
- package/src/main/js/sap/ushell/services/LaunchPage.js +1 -1
- package/src/main/js/sap/ushell/services/Menu.js +1 -1
- package/src/main/js/sap/ushell/services/Message.js +1 -1
- package/src/main/js/sap/ushell/services/MessageBroker.js +1 -1
- package/src/main/js/sap/ushell/services/Navigation/utils.js +1 -1
- package/src/main/js/sap/ushell/services/Navigation.js +46 -9
- package/src/main/js/sap/ushell/services/NavigationDataProvider.js +1 -1
- package/src/main/js/sap/ushell/services/NotificationsV2.js +141 -9
- package/src/main/js/sap/ushell/services/PageBuilding.js +1 -1
- package/src/main/js/sap/ushell/services/PagePersistence.js +1 -1
- package/src/main/js/sap/ushell/services/PageReferencing.js +1 -1
- package/src/main/js/sap/ushell/services/Pages.js +58 -16
- package/src/main/js/sap/ushell/services/Personalization.js +1 -1
- package/src/main/js/sap/ushell/services/PersonalizationV2/ContextContainer.js +1 -1
- package/src/main/js/sap/ushell/services/PersonalizationV2/VariantSetAdapter.js +1 -1
- package/src/main/js/sap/ushell/services/PersonalizationV2.js +1 -1
- package/src/main/js/sap/ushell/services/PluginManager.js +1 -1
- package/src/main/js/sap/ushell/services/ReferenceResolver.js +1 -1
- package/src/main/js/sap/ushell/services/Search.js +1 -1
- package/src/main/js/sap/ushell/services/SearchCEP.js +1 -1
- package/src/main/js/sap/ushell/services/SearchableContent.js +1 -1
- package/src/main/js/sap/ushell/services/ShellNavigation.js +1 -1
- package/src/main/js/sap/ushell/services/SmartNavigation.js +1 -1
- package/src/main/js/sap/ushell/services/SpaceContent.js +38 -13
- package/src/main/js/sap/ushell/services/UITracer.js +1 -1
- package/src/main/js/sap/ushell/services/URLParsing.js +42 -20
- package/src/main/js/sap/ushell/services/URLShortening.js +1 -1
- package/src/main/js/sap/ushell/services/URLTemplate.js +1 -1
- package/src/main/js/sap/ushell/services/Ui5ComponentLoader.js +1 -1
- package/src/main/js/sap/ushell/services/UserDefaultParameterPersistence.js +1 -1
- package/src/main/js/sap/ushell/services/UserDefaultParameters.js +1 -1
- package/src/main/js/sap/ushell/services/UserInfo.js +17 -4
- package/src/main/js/sap/ushell/services/UserRecents.js +1 -1
- package/src/main/js/sap/ushell/services/VisualizationDataProvider.js +1 -1
- package/src/main/js/sap/ushell/services/VisualizationInstantiation.js +1 -1
- 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 +1 -1
- package/src/main/js/sap/ushell/services/_ClientSideTargetResolution/PrelaunchOperations.js +1 -1
- package/src/main/js/sap/ushell/services/_ClientSideTargetResolution/Search.js +1 -1
- 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 +1 -1
- package/src/main/js/sap/ushell/services/_ClientSideTargetResolution/VirtualInbounds.js +1 -1
- package/src/main/js/sap/ushell/services/_ClientSideTargetResolution/XAppStateProcessing.js +1 -1
- package/src/main/js/sap/ushell/services/_CommonDataModel/SiteConverter.js +1 -1
- package/src/main/js/sap/ushell/services/_CommonDataModel/vizTypeDefaults/VizTypeDefaults.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 +1 -1
- 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/_PluginManager/Extensions.js +1 -1
- package/src/main/js/sap/ushell/services/_PluginManager/HeaderExtensions.js +1 -1
- package/src/main/js/sap/ushell/services/_PluginManager/MenuExtensions.js +1 -1
- package/src/main/js/sap/ushell/services/_Ui5ComponentLoader/utils.js +34 -5
- package/src/main/js/sap/ushell/support/plugins/flpConfig/FlpConfigurationPlugin.js +1 -1
- package/src/main/js/sap/ushell/ui/AppContainer.js +44 -0
- package/src/main/js/sap/ushell/ui/appfinder/AppBoxInternal.js +3 -3
- package/src/main/js/sap/ushell/ui/appfinder/AppBoxInternalRenderer.js +103 -0
- package/src/main/js/sap/ushell/ui/appfinder/AppBoxRenderer.js +7 -98
- package/src/main/js/sap/ushell/ui/cards/RecentActivitiesExtension.js +1 -1
- package/src/main/js/sap/ushell/ui/launchpad/CatalogsContainer.js +5 -3
- package/src/main/js/sap/ushell/ui/launchpad/ExtendedChangeDetection.js +1 -1
- package/src/main/js/sap/ushell/ui/launchpad/Section.js +1 -1
- package/src/main/js/sap/ushell/ui/launchpad/ViewPortState.js +2 -1
- package/src/main/js/sap/ushell/ui/launchpad/section/CompactArea.js +1 -1
- package/src/main/js/sap/ushell/ui/shell/ToolAreaItem.js +1 -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 +30 -48
- package/src/main/js/sap/ushell/utils/UrlShortening.js +1 -1
- package/src/main/js/sap/ushell/utils/tilecard/TileCard.js +342 -0
- package/src/main/js/sap/ushell/utils/tilecard/TileCardExtension.js +384 -0
- package/src/main/js/sap/ushell/utils/tilecard/resources/resources.properties +11 -0
- package/src/main/js/sap/ushell/utils/workpage/WorkPageHost.js +1 -1
- package/src/main/js/sap/ushell/utils/workpage/WorkPageService.js +57 -4
- package/src/main/js/sap/ushell/utils/workpage/WorkPageVizInstantiation.js +44 -17
- package/src/test/js/sap/ushell/bootstrap/sandbox.js +1 -1
- package/ui5.yaml +2 -0
|
@@ -0,0 +1,384 @@
|
|
|
1
|
+
// Copyright (c) 2009-2023 SAP SE, All Rights Reserved
|
|
2
|
+
|
|
3
|
+
sap.ui.define([
|
|
4
|
+
"sap/ui/core/Core",
|
|
5
|
+
"sap/ui/integration/Extension",
|
|
6
|
+
"sap/ushell/utils/DynamicTileRequest",
|
|
7
|
+
"sap/ui/core/format/NumberFormat",
|
|
8
|
+
"sap/base/Log",
|
|
9
|
+
"sap/m/library",
|
|
10
|
+
"sap/ui/core/library"
|
|
11
|
+
],
|
|
12
|
+
function (
|
|
13
|
+
Core,
|
|
14
|
+
Extension,
|
|
15
|
+
DynamicTileRequest,
|
|
16
|
+
NumberFormat,
|
|
17
|
+
Log,
|
|
18
|
+
mLib,
|
|
19
|
+
cLib
|
|
20
|
+
) {
|
|
21
|
+
|
|
22
|
+
"use strict";
|
|
23
|
+
|
|
24
|
+
/**
|
|
25
|
+
* This Card Extension is used to handle requests of the TileCard representing a Dynamic Tile.
|
|
26
|
+
* The Card Extension is loaded based on the sap.card/extension setting pointing to this module.
|
|
27
|
+
*
|
|
28
|
+
* In such case the TileCard manifest is configured with a data setting in the header that uses a
|
|
29
|
+
* dataPath parameter of the TileCard manifest to do a fetch call.
|
|
30
|
+
* This extension intercepts the fetch call.
|
|
31
|
+
*
|
|
32
|
+
* For the first fetch call it returns a new Response with
|
|
33
|
+
* loading data { number: "..." } and
|
|
34
|
+
* status 429, retryAfter, which is handled by the card itself to retrigger the fetch after 1 sec.
|
|
35
|
+
*
|
|
36
|
+
* It triggers a fetch call to get the real data that is returned for second fetch call
|
|
37
|
+
* and all subsequent interval calls.
|
|
38
|
+
*
|
|
39
|
+
* For all subsequent fetch calls (based on card data setting 'refresh' and the retryAfter call)
|
|
40
|
+
* the real data is fetched from the backend via DynamicTileRequest,
|
|
41
|
+
* normalized and applied to the card data.
|
|
42
|
+
*
|
|
43
|
+
* The bindings of all settings will be updated.
|
|
44
|
+
*
|
|
45
|
+
* @alias sap.ushell.utils.tilecard.TileCardExtension
|
|
46
|
+
* @class
|
|
47
|
+
* @extends sap.ushell.utils.tilecard.TileCardExtension
|
|
48
|
+
* @classdesc TileCardExtension
|
|
49
|
+
*
|
|
50
|
+
* @since 1.123.0
|
|
51
|
+
* @private
|
|
52
|
+
*/
|
|
53
|
+
const TileCardExtension = Extension.extend("sap.ushell.utils.workpage.TileCardExtension");
|
|
54
|
+
|
|
55
|
+
TileCardExtension._DynamicTileRequest = DynamicTileRequest; // to allow test to simulate the request
|
|
56
|
+
TileCardExtension._DynamicTileRequestTimeout = 30000; // 30 seconds, can be overridden in tests
|
|
57
|
+
|
|
58
|
+
const oLogger = Log.getLogger("sap.ushell.utils.tilecard.TileCardExtension");
|
|
59
|
+
|
|
60
|
+
const ValueColor = mLib.ValueColor;
|
|
61
|
+
const ValueState = cLib.ValueState;
|
|
62
|
+
|
|
63
|
+
const TileValueState = {
|
|
64
|
+
Positive: "Positive",
|
|
65
|
+
Negative: "Negative",
|
|
66
|
+
Critical: "Critical"
|
|
67
|
+
};
|
|
68
|
+
|
|
69
|
+
const numberFactors = [
|
|
70
|
+
{ factor: 1000000, value: "M" },
|
|
71
|
+
{ factor: 1000, value: "k" }
|
|
72
|
+
];
|
|
73
|
+
|
|
74
|
+
/**
|
|
75
|
+
* Returns the corresponding ValueState of the given state for the settings of the TileCard.
|
|
76
|
+
*
|
|
77
|
+
* @param {string} sState the state from the data.
|
|
78
|
+
*
|
|
79
|
+
* @returns {ValueState} the corresponding ValueState for the state.
|
|
80
|
+
*
|
|
81
|
+
* @private
|
|
82
|
+
* @since 1.123.0
|
|
83
|
+
*/
|
|
84
|
+
function getValueState (sState) {
|
|
85
|
+
if (sState === TileValueState.Positive) {
|
|
86
|
+
return ValueState.Success;
|
|
87
|
+
} else if (sState === TileValueState.Negative) {
|
|
88
|
+
return ValueState.Error;
|
|
89
|
+
} else if (sState === TileValueState.Critical) {
|
|
90
|
+
return ValueState.Warning;
|
|
91
|
+
}
|
|
92
|
+
return ValueState[sState] || ValueState.None;
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
/**
|
|
96
|
+
* Returns the corresponding ValueColor of the given state for the settingsof the TileCard.
|
|
97
|
+
*
|
|
98
|
+
* @param {string} sState the state from the data.
|
|
99
|
+
*
|
|
100
|
+
* @returns {ValueColor} the corresponding ValueColor for the state.
|
|
101
|
+
*
|
|
102
|
+
* @private
|
|
103
|
+
* @since 1.123.0
|
|
104
|
+
*/
|
|
105
|
+
function getValueColor (sState) {
|
|
106
|
+
if (sState === TileValueState.Positive) {
|
|
107
|
+
return ValueColor.Good;
|
|
108
|
+
} else if (sState === TileValueState.Negative) {
|
|
109
|
+
return ValueColor.Error;
|
|
110
|
+
}
|
|
111
|
+
return ValueColor[sState] || ValueColor.None;
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
/**
|
|
115
|
+
* Returns the details text based on the current data.
|
|
116
|
+
* If the data delivered an info, it is returned.
|
|
117
|
+
* If the number delivered is "#" it returns error text.
|
|
118
|
+
* Otherwise ""
|
|
119
|
+
*
|
|
120
|
+
* @param {object} oData the data of the DynamicTileRequest.
|
|
121
|
+
* @param {string} sError the error text if normaization fails
|
|
122
|
+
*
|
|
123
|
+
* @returns {string} the text for the details.
|
|
124
|
+
*
|
|
125
|
+
* @private
|
|
126
|
+
* @since 1.123.0
|
|
127
|
+
*/
|
|
128
|
+
function getIndicatorDetails (oData, sError) {
|
|
129
|
+
if (oData.info) {
|
|
130
|
+
return oData.info;
|
|
131
|
+
}
|
|
132
|
+
if (oData.number === "#") {
|
|
133
|
+
return sError;
|
|
134
|
+
}
|
|
135
|
+
return "";
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
/**
|
|
139
|
+
* Returns the indicators state color based on the current data.
|
|
140
|
+
*
|
|
141
|
+
* @param {object} oData the data of the DynamicTileRequest.
|
|
142
|
+
*
|
|
143
|
+
* @returns {ValueColor} the corresponding ValueColor for the inidicator.
|
|
144
|
+
*
|
|
145
|
+
* @private
|
|
146
|
+
* @since 1.123.0
|
|
147
|
+
*/
|
|
148
|
+
function getIndicatorState (oData) {
|
|
149
|
+
if (!oData.hasOwnProperty("number") || oData.number === "..." || oData.number === "#") {
|
|
150
|
+
return ValueColor.None;
|
|
151
|
+
}
|
|
152
|
+
return getValueColor(oData.numberState);
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
/**
|
|
156
|
+
* Returns the indicator number (teext) based on the current data.
|
|
157
|
+
* If a number factor is given by the data, it is applied to the number
|
|
158
|
+
*
|
|
159
|
+
* @param {object} oData the data of the DynamicTileRequest.
|
|
160
|
+
*
|
|
161
|
+
* @returns {string} the number (text) for the indicator.
|
|
162
|
+
*
|
|
163
|
+
* @private
|
|
164
|
+
* @since 1.123.0
|
|
165
|
+
*/
|
|
166
|
+
function getIndicatorNumber (oData) {
|
|
167
|
+
if (!oData.hasOwnProperty("number")) {
|
|
168
|
+
oData.number = "...";
|
|
169
|
+
}
|
|
170
|
+
if (typeof oData.number === "string" && oData.number !== "...") {
|
|
171
|
+
oData.number = parseFloat(oData.number);
|
|
172
|
+
if (isNaN(oData.number)) {
|
|
173
|
+
oData.number = "#";
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
|
|
177
|
+
if (!isNaN(oData.number)) {
|
|
178
|
+
if (!oData.hasOwnProperty("numberFactor")) {
|
|
179
|
+
oData._data.unit = "";
|
|
180
|
+
if (oData.number >= 1000) {
|
|
181
|
+
const oFactor = numberFactors.find(function (oFactorEntry) {
|
|
182
|
+
return oData.number / oFactorEntry.factor >= 1 && oData.number / (oFactorEntry.factor * 1000) < 1;
|
|
183
|
+
});
|
|
184
|
+
oData._data.unit = oFactor.value;
|
|
185
|
+
oData.number = oData.number / oFactor.factor;
|
|
186
|
+
}
|
|
187
|
+
} else {
|
|
188
|
+
oData._data.unit = oData.numberFactor;
|
|
189
|
+
}
|
|
190
|
+
|
|
191
|
+
if (!oData.hasOwnProperty("numberDigits") && oData._data.unit) {
|
|
192
|
+
oData.numberDigits = 2;
|
|
193
|
+
}
|
|
194
|
+
const oFractFormat = NumberFormat.getFloatInstance({
|
|
195
|
+
minFractionDigits: Math.min(oData.numberDigits, 3),
|
|
196
|
+
maxFractionDigits: Math.min(oData.numberDigits, 3)
|
|
197
|
+
});
|
|
198
|
+
oData.number = oFractFormat.format(oData.number);
|
|
199
|
+
}
|
|
200
|
+
return oData.number;
|
|
201
|
+
}
|
|
202
|
+
|
|
203
|
+
/**
|
|
204
|
+
* Normalizes the data from the DynamicTileRequest and adds _data for the bindings of the TileCard.
|
|
205
|
+
* If data contains an array of results, they are summed and their parameters are collected,
|
|
206
|
+
* but all other attributes are ignored.
|
|
207
|
+
*
|
|
208
|
+
* @param {object} oData the data of the DynamicTileRequest.
|
|
209
|
+
* @param {string} sError the error text if normaization fails
|
|
210
|
+
*
|
|
211
|
+
* @returns {object} the normalized data.
|
|
212
|
+
*
|
|
213
|
+
* @private
|
|
214
|
+
* @since 1.123.0
|
|
215
|
+
*/
|
|
216
|
+
function normalizeTileData (oData, sError) {
|
|
217
|
+
if (!isNaN(oData)) {
|
|
218
|
+
oData = {
|
|
219
|
+
number: oData
|
|
220
|
+
};
|
|
221
|
+
}
|
|
222
|
+
if (Array.isArray(oData.results)) {
|
|
223
|
+
// sum results if array oData.results
|
|
224
|
+
oData.targetParams = oData.targetParams || [];
|
|
225
|
+
oData.number = oData.results.reduce(
|
|
226
|
+
function (nSum, oResult) {
|
|
227
|
+
if (oResult.targetParams) {
|
|
228
|
+
oData.targetParams.push(oResult.targetParams);
|
|
229
|
+
}
|
|
230
|
+
return nSum + (parseFloat(oResult.number) || 0);
|
|
231
|
+
},
|
|
232
|
+
0
|
|
233
|
+
);
|
|
234
|
+
}
|
|
235
|
+
oData._data = {};
|
|
236
|
+
oData._data.number = getIndicatorNumber(oData);
|
|
237
|
+
oData._data.details = {};
|
|
238
|
+
oData._data.details.text = getIndicatorDetails(oData, sError);
|
|
239
|
+
oData._data.details.state = getValueState(oData.infoState);
|
|
240
|
+
oData._data.state = getIndicatorState(oData);
|
|
241
|
+
oData._data.trend = oData.stateArrow || null;
|
|
242
|
+
oData._data.icon = oData.icon || null;
|
|
243
|
+
oData._data.title = oData.title || null;
|
|
244
|
+
oData._data.subtitle = oData.subtitle || null;
|
|
245
|
+
if (Array.isArray(oData._data.targetParams)) {
|
|
246
|
+
oData._data.targetParams = oData.targetParams.join("&");
|
|
247
|
+
}
|
|
248
|
+
return oData;
|
|
249
|
+
}
|
|
250
|
+
|
|
251
|
+
|
|
252
|
+
/**
|
|
253
|
+
* Initialize the extensions instance.
|
|
254
|
+
*
|
|
255
|
+
* @private
|
|
256
|
+
* @since 1.123.0
|
|
257
|
+
*/
|
|
258
|
+
TileCardExtension.prototype.onCardReady = function () {
|
|
259
|
+
this.bFirstRequest = true;
|
|
260
|
+
this._oCurrentDataRequest = null;
|
|
261
|
+
this._sErrorText = this.getCard().getTranslatedText("TileCard.Data.Error");
|
|
262
|
+
this._sTimeoutText = this.getCard().getTranslatedText("TileCard.Data.Timeout");
|
|
263
|
+
this._oErrorResponse = normalizeTileData({
|
|
264
|
+
number: "...",
|
|
265
|
+
info: this._sErrorText
|
|
266
|
+
}, this._sErrorText);
|
|
267
|
+
this._oTimeoutResponse = normalizeTileData({
|
|
268
|
+
number: "...",
|
|
269
|
+
info: this._sTimeoutText
|
|
270
|
+
}, this._sErrorText);
|
|
271
|
+
};
|
|
272
|
+
|
|
273
|
+
/**
|
|
274
|
+
* Called from the Card to fetch data and then applied by the Card as data to the header.
|
|
275
|
+
*
|
|
276
|
+
* @param {string} sResource The resource url to request
|
|
277
|
+
*
|
|
278
|
+
* @returns {Promise<Response>} A Response object containing the data.
|
|
279
|
+
*
|
|
280
|
+
* @private
|
|
281
|
+
* @since 1.123.0
|
|
282
|
+
*/
|
|
283
|
+
TileCardExtension.prototype.fetch = function (sResource) {
|
|
284
|
+
if (sResource.startsWith("/.")) {
|
|
285
|
+
sResource = sResource.substring(1);
|
|
286
|
+
}
|
|
287
|
+
//trigger the real request directly. real result might be available already adter retry after 1 sec.
|
|
288
|
+
this._oCurrentDataRequest = this._fetchTileCardData(sResource);
|
|
289
|
+
if (this.bFirstRequest) {
|
|
290
|
+
// the first request of the card should be answered immediately to show "..."
|
|
291
|
+
this.bFirstRequest = false;
|
|
292
|
+
return Promise.resolve(
|
|
293
|
+
new Response(
|
|
294
|
+
new Blob(
|
|
295
|
+
['number: "..."'],
|
|
296
|
+
{ type: "application/json" }
|
|
297
|
+
),
|
|
298
|
+
{ status: 429 } // status 429 Retry After handled in card as retryAfter
|
|
299
|
+
)
|
|
300
|
+
);
|
|
301
|
+
}
|
|
302
|
+
return this._oCurrentDataRequest;
|
|
303
|
+
};
|
|
304
|
+
|
|
305
|
+
/**
|
|
306
|
+
* Requests and normalizes the data from the DynamicTileRequest.
|
|
307
|
+
*
|
|
308
|
+
* @param {string} sResource the resource url to fetch the data.
|
|
309
|
+
*
|
|
310
|
+
* @returns {Promise<object>} the normalized data object as a promise.
|
|
311
|
+
*
|
|
312
|
+
* @private
|
|
313
|
+
* @since 1.123.0
|
|
314
|
+
*/
|
|
315
|
+
TileCardExtension.prototype._fetchTileCardData = function (sResource) {
|
|
316
|
+
let bTimedOut = false;
|
|
317
|
+
const sErrorText = this._sErrorText;
|
|
318
|
+
return new Promise(function (resolve) {
|
|
319
|
+
// always use a timeout for the request.
|
|
320
|
+
// The DynamicTileRequest depends on services that might never resolve and therefore the request is never finished.
|
|
321
|
+
// To avoid this, the request is always timed out after TileCardExtension._DynamicTileRequestTimeout milliseconds.
|
|
322
|
+
setTimeout(() => {
|
|
323
|
+
bTimedOut = true;
|
|
324
|
+
resolve(this._oTimeoutResponse);
|
|
325
|
+
}, TileCardExtension._DynamicTileRequestTimeout);
|
|
326
|
+
// additonal timeout for the request to delay the request for one ms to be able to test above timeout.
|
|
327
|
+
setTimeout(() => {
|
|
328
|
+
try {
|
|
329
|
+
// eslint-disable-next-line no-new
|
|
330
|
+
new TileCardExtension._DynamicTileRequest(sResource,
|
|
331
|
+
function (oData) {
|
|
332
|
+
oLogger.debug("Dynamic tileCard request successful.", sResource);
|
|
333
|
+
if (!bTimedOut) {
|
|
334
|
+
resolve(
|
|
335
|
+
normalizeTileData(oData, sErrorText)
|
|
336
|
+
);
|
|
337
|
+
}
|
|
338
|
+
},
|
|
339
|
+
function () {
|
|
340
|
+
oLogger.info("Dynamic tileCard request failed.", sResource);
|
|
341
|
+
if (!bTimedOut) {
|
|
342
|
+
resolve(this._oErrorResponse);
|
|
343
|
+
}
|
|
344
|
+
}
|
|
345
|
+
);
|
|
346
|
+
} catch (ex) {
|
|
347
|
+
oLogger.error("Dynamic tileCard normalization failed.", ex);
|
|
348
|
+
if (!bTimedOut) {
|
|
349
|
+
resolve(this._oErrorResponse);
|
|
350
|
+
}
|
|
351
|
+
}
|
|
352
|
+
}, 1);
|
|
353
|
+
}.bind(this)).then(function (oData) {
|
|
354
|
+
var oHeader = Core.byId(this.getCard().getDomRef().id).getCardHeader();
|
|
355
|
+
// apply the title and subtitle directly to the header without a binding.
|
|
356
|
+
// in most cases the title/subtitle is not coming from the data.
|
|
357
|
+
// if we would bind it, the title/subtitle would only be shown after the data request.
|
|
358
|
+
if (oData.title) {
|
|
359
|
+
oHeader.setTitle(oData.title);
|
|
360
|
+
}
|
|
361
|
+
if (oData.subtitle) {
|
|
362
|
+
oHeader.setSubtitle(oData.subtitle);
|
|
363
|
+
}
|
|
364
|
+
return new Response(
|
|
365
|
+
new Blob(
|
|
366
|
+
[JSON.stringify(oData)],
|
|
367
|
+
{ type: "application/json" }
|
|
368
|
+
),
|
|
369
|
+
{ status: 200 }
|
|
370
|
+
);
|
|
371
|
+
}.bind(this))
|
|
372
|
+
.catch(function (ex) {
|
|
373
|
+
return new Response(
|
|
374
|
+
new Blob(
|
|
375
|
+
["{}"],
|
|
376
|
+
{ type: "application/json" }
|
|
377
|
+
),
|
|
378
|
+
{ status: 200 }
|
|
379
|
+
);
|
|
380
|
+
});
|
|
381
|
+
};
|
|
382
|
+
|
|
383
|
+
return TileCardExtension;
|
|
384
|
+
});
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
# Translatable texts for the Fiori Launchpad
|
|
2
|
+
# __ldi.translation.uuid=66b86529-a350-4d25-8e8a-1c0a64d08a89
|
|
3
|
+
|
|
4
|
+
# Text for tile card, its extension and configuration
|
|
5
|
+
|
|
6
|
+
#XTXT
|
|
7
|
+
TileCard.Data.Error=Error
|
|
8
|
+
#XTXT
|
|
9
|
+
TileCard.Data.Timeout=Timed out
|
|
10
|
+
#XTXT
|
|
11
|
+
TileCard.Widget.NotAvailable=Widget Not Available
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
4
|
* @fileOverview This module communicates with the content API graphql service to retrieve workpage and visualization data.
|
|
5
|
-
* @version 1.
|
|
5
|
+
* @version 1.123.0
|
|
6
6
|
*/
|
|
7
7
|
sap.ui.define([
|
|
8
8
|
"sap/base/i18n/Localization",
|
|
@@ -136,14 +136,67 @@ sap.ui.define([
|
|
|
136
136
|
};
|
|
137
137
|
|
|
138
138
|
/**
|
|
139
|
-
*
|
|
139
|
+
* Loads the visualizations for the current siteId, filtered by the given filter object.
|
|
140
|
+
*
|
|
141
|
+
* @since 1.123.0
|
|
142
|
+
* @param {object} oFilterParams The filter object.
|
|
143
|
+
* @returns {Promise<{visualizations, totalCount}>} The result.
|
|
144
|
+
*/
|
|
145
|
+
WorkPage.prototype.loadVisualizations = function (oFilterParams) {
|
|
146
|
+
let sQuery = `
|
|
147
|
+
visualizations($queryInput: QueryVisualizationsInput) {
|
|
148
|
+
visualizations(queryInput: $queryInput, siteId: "${this._sSiteId}") {
|
|
149
|
+
totalCount,
|
|
150
|
+
nodes {
|
|
151
|
+
id,
|
|
152
|
+
type,
|
|
153
|
+
descriptor {
|
|
154
|
+
value,
|
|
155
|
+
schemaVersion
|
|
156
|
+
},
|
|
157
|
+
descriptorResources {
|
|
158
|
+
baseUrl,
|
|
159
|
+
descriptorPath
|
|
160
|
+
},
|
|
161
|
+
indicatorDataSource {
|
|
162
|
+
url,
|
|
163
|
+
refreshInterval
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
}`;
|
|
168
|
+
|
|
169
|
+
// Replace line breaks and spaces
|
|
170
|
+
sQuery = sQuery
|
|
171
|
+
.replace(/\n/g, "")
|
|
172
|
+
.replace(/ /g, "");
|
|
173
|
+
|
|
174
|
+
sQuery = `query ${sQuery}`;
|
|
175
|
+
|
|
176
|
+
const oVariables = {
|
|
177
|
+
queryInput: oFilterParams
|
|
178
|
+
};
|
|
179
|
+
|
|
180
|
+
return this._doRequest(sQuery, JSON.stringify(oVariables)).then((oVizData) => {
|
|
181
|
+
return {
|
|
182
|
+
visualizations: oVizData.data.visualizations || [],
|
|
183
|
+
totalCount: oVizData.data.totalCount || 0
|
|
184
|
+
};
|
|
185
|
+
});
|
|
186
|
+
};
|
|
187
|
+
|
|
188
|
+
/**
|
|
189
|
+
* Do the XHR request with the given query and optional variables.
|
|
140
190
|
*
|
|
141
191
|
* @param {string} sQuery The query.
|
|
192
|
+
* @param {string} [sVariables] The variables as JSON string. Optional.
|
|
142
193
|
* @returns {Promise} Promise that resolves with the parsed JSON response if the request was successful, otherwise it is rejected.
|
|
143
194
|
* @private
|
|
144
195
|
*/
|
|
145
|
-
WorkPage.prototype._doRequest = function (sQuery) {
|
|
146
|
-
|
|
196
|
+
WorkPage.prototype._doRequest = function (sQuery, sVariables) {
|
|
197
|
+
let sUrl = `${this._sBaseUrl}?query=${sQuery}`;
|
|
198
|
+
if (sVariables) { sUrl += `&variables=${sVariables}`; }
|
|
199
|
+
return this.httpClient.get(sUrl, {
|
|
147
200
|
headers: {
|
|
148
201
|
"Content-Type": "application/json",
|
|
149
202
|
Accept: "application/json",
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
4
|
* @fileOverview This module provides utilities for creating visualization instances for work pages.
|
|
5
|
-
* @version 1.
|
|
5
|
+
* @version 1.123.0
|
|
6
6
|
*/
|
|
7
7
|
sap.ui.define([
|
|
8
8
|
"sap/ushell/services/VisualizationInstantiation",
|
|
@@ -13,7 +13,9 @@ sap.ui.define([
|
|
|
13
13
|
"sap/ushell/adapters/cdm/v3/utilsCdm",
|
|
14
14
|
"sap/ushell/adapters/cdm/v3/_LaunchPage/readUtils",
|
|
15
15
|
"sap/ushell/adapters/cdm/v3/_LaunchPage/readVisualizations",
|
|
16
|
-
"sap/ushell/services/_CommonDataModel/vizTypeDefaults/VizTypeDefaults"
|
|
16
|
+
"sap/ushell/services/_CommonDataModel/vizTypeDefaults/VizTypeDefaults",
|
|
17
|
+
"sap/ushell/utils/tilecard/TileCard",
|
|
18
|
+
"sap/ushell/Config"
|
|
17
19
|
], function (
|
|
18
20
|
VisualizationInstantiation,
|
|
19
21
|
ObjectPath,
|
|
@@ -23,7 +25,9 @@ sap.ui.define([
|
|
|
23
25
|
utilsCdm,
|
|
24
26
|
readUtils,
|
|
25
27
|
readVisualizations,
|
|
26
|
-
VizTypeDefaults
|
|
28
|
+
VizTypeDefaults,
|
|
29
|
+
TileCard,
|
|
30
|
+
Config
|
|
27
31
|
) {
|
|
28
32
|
"use strict";
|
|
29
33
|
|
|
@@ -43,7 +47,7 @@ sap.ui.define([
|
|
|
43
47
|
* @property {object} descriptorResources The descriptor resources of the visualization
|
|
44
48
|
* @property {SiteData} [_siteData] The additional app properties retrieved from the CDM Runtime Site
|
|
45
49
|
* @property {boolean} [previewMode] Flag for the preview mode
|
|
46
|
-
|
|
50
|
+
*/
|
|
47
51
|
|
|
48
52
|
/**
|
|
49
53
|
* Utilities for creating visualization instances for work pages.
|
|
@@ -84,7 +88,7 @@ sap.ui.define([
|
|
|
84
88
|
* @param {object} oVizInstantiationService An instance of the VisualizationInstantiation service.
|
|
85
89
|
* @param {object} oStandardVizTypes An object containing hte standard viz types.
|
|
86
90
|
* @private
|
|
87
|
-
* @since 1.
|
|
91
|
+
* @since 1.123.0
|
|
88
92
|
*/
|
|
89
93
|
constructor (oVizInstantiationService, oStandardVizTypes) {
|
|
90
94
|
// VisualizationInstantiation is directly constructed, because the ushell container is not available in the design-time
|
|
@@ -93,19 +97,19 @@ sap.ui.define([
|
|
|
93
97
|
}
|
|
94
98
|
|
|
95
99
|
/**
|
|
96
|
-
*
|
|
97
|
-
*
|
|
98
|
-
* @
|
|
99
|
-
* @returns {sap.ushell.ui.launchpad.VizInstance|sap.m.GenericTile} The CDM VizInstance.
|
|
100
|
+
* Returns the extended instantiation data for the visualization.
|
|
101
|
+
* @param {WorkPageVizInstantiationData} oVizData The visualization data.
|
|
102
|
+
* @returns {object} The extended instantiation data.
|
|
100
103
|
* @private
|
|
101
|
-
* @since 1.
|
|
104
|
+
* @since 1.123.0
|
|
102
105
|
*/
|
|
103
|
-
|
|
106
|
+
_getVizInstantiationData (oVizData) {
|
|
104
107
|
// viz instantiation service modifies the indicatorDataSource which breaks if objects are frozen
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
108
|
+
const oIndicatorDataSource = deepClone(ObjectPath.get(["descriptor", "value", "sap.flp", "indicatorDataSource"], oVizData));
|
|
109
|
+
const oVizType = this.#oStandardVizTypes[oVizData.type];
|
|
110
|
+
const bProviderInfoEnabled = Config.last("/core/contentProviders/providerInfo/enabled");
|
|
111
|
+
const bShowProviderInfoInSystemInfo = bProviderInfoEnabled && Config.last("/core/contentProviders/providerInfo/showContentProviderInfoOnVisualizations");
|
|
112
|
+
return {
|
|
109
113
|
id: oVizData.id,
|
|
110
114
|
title: ObjectPath.get(["descriptor", "value", "sap.app", "title"], oVizData),
|
|
111
115
|
subtitle: ObjectPath.get(["descriptor", "value", "sap.app", "subTitle"], oVizData),
|
|
@@ -121,23 +125,46 @@ sap.ui.define([
|
|
|
121
125
|
dataSource: ObjectPath.get(["_siteData", "dataSource"], oVizData),
|
|
122
126
|
contentProviderId: ObjectPath.get(["_siteData", "contentProviderId"], oVizData),
|
|
123
127
|
contentProviderLabel: ObjectPath.get(["_siteData", "contentProviderLabel"], oVizData),
|
|
128
|
+
displayProviderLabel: bShowProviderInfoInSystemInfo,
|
|
124
129
|
target: ObjectPath.get(["_siteData", "target"], oVizData),
|
|
125
130
|
targetURL: ObjectPath.get(["_siteData", "targetURL"], oVizData),
|
|
126
131
|
vizConfig: ObjectPath.get(["descriptor", "value"], oVizData),
|
|
127
132
|
supportedDisplayFormats: ObjectPath.get(["descriptor", "value", "sap.flp", "vizOptions", "displayFormats", "supported"], oVizData),
|
|
128
|
-
displayFormatHint: ObjectPath.get(["descriptor", "value", "sap.flp", "vizOptions", "displayFormats", "default"], oVizData),
|
|
133
|
+
displayFormatHint: ObjectPath.get(["descriptor", "value", "sap.flp", "vizOptions", "displayFormats", "default"], oVizData) || "standard",
|
|
129
134
|
numberUnit: ObjectPath.get(["descriptor", "value", "sap.flp", "numberUnit"], oVizData),
|
|
130
135
|
vizId: oVizData.id,
|
|
131
136
|
preview: oVizData.preview
|
|
132
137
|
};
|
|
138
|
+
}
|
|
133
139
|
|
|
134
|
-
|
|
140
|
+
/**
|
|
141
|
+
* Creates a visualization instance for the provided data.
|
|
142
|
+
*
|
|
143
|
+
* @param {WorkPageVizInstantiationData} oVizData Extended visualization data for instantiation.
|
|
144
|
+
* @returns {sap.ushell.ui.launchpad.VizInstance|sap.m.GenericTile} The CDM VizInstance.
|
|
145
|
+
* @private
|
|
146
|
+
* @since 1.121.0
|
|
147
|
+
*/
|
|
148
|
+
createVizInstance (oVizData) {
|
|
149
|
+
var oVizInstance = this.#oVizInstantiationService.instantiateVisualization(this._getVizInstantiationData(oVizData));
|
|
135
150
|
if (oVizInstance) {
|
|
136
151
|
oVizInstance.setActive(true);
|
|
137
152
|
}
|
|
138
153
|
|
|
139
154
|
return oVizInstance;
|
|
140
155
|
}
|
|
156
|
+
|
|
157
|
+
/**
|
|
158
|
+
* Creates the tile card configuration for the pagebuilder to render a tile as a card.
|
|
159
|
+
*
|
|
160
|
+
* @param {WorkPageVizInstantiationData} oVizData Extended visualization data for instantiation.
|
|
161
|
+
* @returns {sap.ushell.utils.tilecard.TileCardConfiguration} Configuration for the page builder.
|
|
162
|
+
* @private
|
|
163
|
+
* @since 1.123.0
|
|
164
|
+
*/
|
|
165
|
+
createTileCardConfiguration (oVizData) {
|
|
166
|
+
return TileCard.createTileCardConfiguration(this._getVizInstantiationData(oVizData));
|
|
167
|
+
}
|
|
141
168
|
}
|
|
142
169
|
|
|
143
170
|
return WorkPageVizInstantiation;
|
package/ui5.yaml
CHANGED
|
@@ -473,6 +473,8 @@ builder:
|
|
|
473
473
|
- sap/ushell/api/workpage/
|
|
474
474
|
- sap/ushell/utils/workpage/
|
|
475
475
|
- sap/ushell/utils/workpage/resources/resources*.properties
|
|
476
|
+
- sap/ushell/utils/tilecard/
|
|
477
|
+
- sap/ushell/utils/tilecard/resources/resources*.properties
|
|
476
478
|
resolve: true
|
|
477
479
|
renderer: true
|
|
478
480
|
sort: true
|