@sapui5/sap.ushell 1.119.3 → 1.120.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/src/main/js/sap/ushell/.library +3 -3
- package/src/main/js/sap/ushell/Container.js +272 -41
- package/src/main/js/sap/ushell/Fiori20Adapter.js +1 -1
- package/src/main/js/sap/ushell/Fiori20AdapterTest.js +3 -2
- package/src/main/js/sap/ushell/NWBCInterface.js +1 -1
- package/src/main/js/sap/ushell/SessionHandler.js +11 -6
- 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/User.js +26 -35
- package/src/main/js/sap/ushell/_ApplicationType/urlTemplateResolution.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 +15 -11
- 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 +16 -11
- package/src/main/js/sap/ushell/adapters/cdm/PersonalizationAdapter.js +1 -1
- package/src/main/js/sap/ushell/adapters/cdm/PersonalizationV2Adapter.js +18 -0
- 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 -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/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 +24 -18
- 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/LaunchPageAdapter.js +1 -1
- package/src/main/js/sap/ushell/adapters/local/MenuAdapter.js +4 -7
- package/src/main/js/sap/ushell/adapters/local/NavTargetResolutionAdapter.js +17 -22
- 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 +19 -0
- 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 +11 -7
- package/src/main/js/sap/ushell/adapters/local/UserInfoAdapter.js +8 -8
- package/src/main/js/sap/ushell/api/RTA.js +47 -0
- package/src/main/js/sap/ushell/appRuntime/ui5/AppRuntime.js +12 -5
- package/src/main/js/sap/ushell/appRuntime/ui5/AppRuntimeContext.js +2 -2
- package/src/main/js/sap/ushell/appRuntime/ui5/services/adapters/Ui5ComponentLoaderAdapter.js +1 -1
- package/src/main/js/sap/ushell/bootstrap/SchedulingAgent.js +2 -2
- 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-def-dev.js +6 -3
- package/src/main/js/sap/ushell/bootstrap/common/common.configure.ui5datetimeformat.js +1 -1
- package/src/main/js/sap/ushell/bootstrap/common/common.configure.ushell.js +3 -0
- package/src/main/js/sap/ushell/bootstrap/common/common.load.launchpad.js +1 -1
- package/src/main/js/sap/ushell/bootstrap/common/common.util.js +34 -2
- package/src/main/js/sap/ushell/bootstrap/sandbox2.js +7 -2
- package/src/main/js/sap/ushell/components/ComponentKeysHandler.js +1 -1
- package/src/main/js/sap/ushell/components/HomepageManager.js +5 -5
- package/src/main/js/sap/ushell/components/SharedComponentUtils.js +7 -10
- package/src/main/js/sap/ushell/components/_HeaderManager/ShellHeader.controller.js +3 -3
- package/src/main/js/sap/ushell/components/_HomepageManager/DashboardLoadingManager.js +5 -0
- package/src/main/js/sap/ushell/components/_HomepageManager/PagingManager.js +5 -0
- package/src/main/js/sap/ushell/components/_HomepageManager/PersistentPageOperationAdapter.js +5 -0
- package/src/main/js/sap/ushell/components/_HomepageManager/TransientPageOperationAdapter.js +5 -0
- package/src/main/js/sap/ushell/components/appfinder/AppFinderView.js +1 -1
- package/src/main/js/sap/ushell/components/appfinder/CatalogView.js +1 -1
- package/src/main/js/sap/ushell/components/appfinder/EasyAccess.controller.js +3 -3
- package/src/main/js/sap/ushell/components/appfinder/EasyAccessView.js +0 -8
- package/src/main/js/sap/ushell/components/appfinder/HierarchyApps.controller.js +4 -4
- package/src/main/js/sap/ushell/components/appfinder/HierarchyFolders.controller.js +18 -16
- package/src/main/js/sap/ushell/components/appfinder/manifest.json +2 -2
- package/src/main/js/sap/ushell/components/applicationIntegration/AppLifeCycle.js +2 -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 +2 -2
- 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/cards/Card.controller.js +2 -2
- package/src/main/js/sap/ushell/components/container/ApplicationContainer.js +92 -71
- 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/contentFinder/model/formatter.js +4 -4
- package/src/main/js/sap/ushell/components/factsheet/Component.js +1 -1
- package/src/main/js/sap/ushell/components/homeApp/error/manifest.json +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 +2 -2
- package/src/main/js/sap/ushell/components/pages/ActionMode.js +5 -5
- 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 +37 -24
- package/src/main/js/sap/ushell/components/pages/controller/ImportDialog.controller.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 +2 -2
- package/src/main/js/sap/ushell/components/runtimeSwitcher/controller/RuntimeSwitcher.controller.js +7 -4
- 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 +6 -7
- package/src/main/js/sap/ushell/components/shell/MenuBar/manifest.json +2 -2
- package/src/main/js/sap/ushell/components/shell/NavigationBarMenu/controller/NavigationBarMenu.controller.js +39 -13
- package/src/main/js/sap/ushell/components/shell/NavigationBarMenu/manifest.json +3 -3
- package/src/main/js/sap/ushell/components/shell/Notifications/Component.js +5 -5
- package/src/main/js/sap/ushell/components/shell/Notifications/Notifications.controller.js +25 -45
- package/src/main/js/sap/ushell/components/shell/PostLoadingHeaderEnhancement/Component.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 +2 -2
- 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 +3 -3
- 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 +4 -4
- package/src/main/js/sap/ushell/components/shell/Settings/ProfilingLoader.js +4 -0
- package/src/main/js/sap/ushell/components/shell/Settings/UserSettings.controller.js +4 -0
- package/src/main/js/sap/ushell/components/shell/Settings/UserSettings.view.xml +4 -3
- package/src/main/js/sap/ushell/components/shell/Settings/homepage/HomepageEntry.js +10 -13
- package/src/main/js/sap/ushell/components/shell/Settings/notifications/NotificationsSetting.controller.js +13 -22
- package/src/main/js/sap/ushell/components/shell/Settings/userAccount/UserAccountSelector.controller.js +2 -2
- package/src/main/js/sap/ushell/components/shell/Settings/userActivities/UserActivitiesSetting.controller.js +11 -14
- package/src/main/js/sap/ushell/components/shell/Settings/userDefaults/manifest.json +1 -1
- package/src/main/js/sap/ushell/components/shell/UserActionsMenu/Component.js +1 -1
- package/src/main/js/sap/ushell/components/shell/UserActionsMenu/UserActionsMenu.controller.js +2 -2
- package/src/main/js/sap/ushell/components/shell/UserImage/Component.js +2 -2
- package/src/main/js/sap/ushell/components/tiles/indicatorTileUtils/smartBusinessUtil.js +4 -6
- package/src/main/js/sap/ushell/components/visualizationOrganizer/Component.js +14 -18
- 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 +16 -12
- 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/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/workPageBuilder/view/WorkPageBuilder.view.xml +3 -3
- 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 -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 -1
- package/src/main/js/sap/ushell/components/workPageRuntime/services/WorkPage.js +1 -1
- package/src/main/js/sap/ushell/designtime/ApplicationContainer.designtime.js +1 -1
- package/src/main/js/sap/ushell/library.js +1 -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/{renderers/fiori2 → renderer}/AccessKeysHandler.js +1 -1
- package/src/main/js/sap/ushell/renderer/History.js +84 -0
- package/src/main/js/sap/ushell/renderer/LogonFrameProvider.js +96 -0
- package/src/main/js/sap/ushell/renderer/Renderer.js +2851 -0
- package/src/main/js/sap/ushell/renderer/Shell.controller.js +3155 -0
- package/src/main/js/sap/ushell/{renderers/fiori2/ShellAsync.view.js → renderer/Shell.view.js} +29 -18
- package/src/main/js/sap/ushell/{renderers/fiori2 → renderer}/ShellLayout.js +3 -3
- package/src/main/js/sap/ushell/{renderers/fiori2 → renderer}/allMyApps/AllMyApps.controller.js +4 -4
- package/src/main/js/sap/ushell/{renderers/fiori2 → renderer}/allMyApps/AllMyApps.view.xml +1 -1
- package/src/main/js/sap/ushell/renderer/allMyApps/AllMyAppsKeyboardHandler.js +108 -0
- package/src/main/js/sap/ushell/renderer/allMyApps/AllMyAppsManager.js +453 -0
- package/src/main/js/sap/ushell/{renderers/fiori2 → renderer}/resources/resources.properties +4 -0
- package/src/main/js/sap/ushell/{renderers/fiori2 → renderer}/search/searchComponent/Component.js +3 -3
- package/src/main/js/sap/ushell/{renderers/fiori2 → renderer}/search/searchComponent/controller/CEPSearchApp.controller.js +1 -1
- package/src/main/js/sap/ushell/{renderers/fiori2 → renderer}/search/searchComponent/controller/SearchApp.controller.js +1 -1
- package/src/main/js/sap/ushell/{renderers/fiori2 → renderer}/search/searchComponent/manifest.json +2 -2
- package/src/main/js/sap/ushell/{renderers/fiori2 → renderer}/search/searchComponent/view/CEPSearchApp.view.js +2 -2
- package/src/main/js/sap/ushell/{renderers/fiori2 → renderer}/search/searchComponent/view/SearchApp.view.js +2 -2
- package/src/main/js/sap/ushell/renderers/fiori2/History.js +7 -68
- package/src/main/js/sap/ushell/renderers/fiori2/LogonFrameProvider.js +9 -79
- package/src/main/js/sap/ushell/renderers/fiori2/Renderer.js +101 -1882
- package/src/main/js/sap/ushell/renderers/fiori2/RendererExtensions.js +2 -3
- package/src/main/js/sap/ushell/renderers/fiori2/Shell.controller.js +8 -3130
- package/src/main/js/sap/ushell/renderers/fiori2/Shell.view.js +7 -7
- package/src/main/js/sap/ushell/renderers/fiori2/allMyApps/AllMyAppsKeyboardHandler.js +7 -92
- package/src/main/js/sap/ushell/renderers/fiori2/allMyApps/AllMyAppsManager.js +8 -438
- package/src/main/js/sap/ushell/resources.js +1 -1
- package/src/main/js/sap/ushell/services/AllMyApps.js +16 -7
- package/src/main/js/sap/ushell/services/AppConfiguration.js +12 -0
- package/src/main/js/sap/ushell/services/AppLifeCycle.js +11 -14
- package/src/main/js/sap/ushell/services/AppState.js +12 -8
- package/src/main/js/sap/ushell/services/Bookmark.js +15 -13
- package/src/main/js/sap/ushell/services/BookmarkV2.js +919 -0
- package/src/main/js/sap/ushell/services/ClientSideTargetResolution.js +229 -241
- package/src/main/js/sap/ushell/services/CommonDataModel.js +14 -4
- package/src/main/js/sap/ushell/services/Configuration.js +12 -11
- package/src/main/js/sap/ushell/services/ConfigurationDefaults.js +13 -10
- package/src/main/js/sap/ushell/services/Container.js +1 -1
- package/src/main/js/sap/ushell/services/ContentExtensionAdapterFactory.js +1 -1
- package/src/main/js/sap/ushell/services/CrossApplicationNavigation.js +8 -6
- package/src/main/js/sap/ushell/services/DarkModeSupport.js +16 -10
- package/src/main/js/sap/ushell/services/EndUserFeedback.js +1 -1
- package/src/main/js/sap/ushell/services/Extension/FloatingContainer.js +103 -0
- package/src/main/js/sap/ushell/services/Extension/Footer.js +61 -0
- package/src/main/js/sap/ushell/services/Extension/Header.js +193 -0
- package/src/main/js/sap/ushell/services/Extension/Item.js +195 -0
- package/src/main/js/sap/ushell/services/Extension/SidePane.js +155 -0
- package/src/main/js/sap/ushell/services/Extension/ToolArea.js +152 -0
- package/src/main/js/sap/ushell/services/Extension.js +381 -0
- package/src/main/js/sap/ushell/services/LaunchPage.js +1 -1
- package/src/main/js/sap/ushell/services/Menu.js +48 -59
- package/src/main/js/sap/ushell/services/Message.js +15 -14
- package/src/main/js/sap/ushell/services/MessageBroker.js +12 -12
- package/src/main/js/sap/ushell/services/NavTargetResolution.js +48 -70
- package/src/main/js/sap/ushell/services/Navigation/utils.js +565 -0
- package/src/main/js/sap/ushell/services/Navigation.js +152 -139
- package/src/main/js/sap/ushell/services/NavigationDataProvider.js +11 -8
- package/src/main/js/sap/ushell/services/Notifications.js +118 -1523
- package/src/main/js/sap/ushell/services/NotificationsV2.js +1872 -0
- package/src/main/js/sap/ushell/services/PageBuilding.js +11 -8
- package/src/main/js/sap/ushell/services/PagePersistence.js +11 -8
- package/src/main/js/sap/ushell/services/PageReferencing.js +11 -8
- package/src/main/js/sap/ushell/services/Pages.js +11 -15
- package/src/main/js/sap/ushell/services/Personalization.js +5 -3
- package/src/main/js/sap/ushell/services/PersonalizationV2/ContextContainer.js +410 -0
- package/src/main/js/sap/ushell/services/PersonalizationV2/Personalizer.js +109 -0
- package/src/main/js/sap/ushell/services/PersonalizationV2/TransientPersonalizer.js +57 -0
- package/src/main/js/sap/ushell/services/PersonalizationV2/Variant.js +180 -0
- package/src/main/js/sap/ushell/services/PersonalizationV2/VariantSet.js +296 -0
- package/src/main/js/sap/ushell/services/PersonalizationV2/VariantSetAdapter.js +125 -0
- package/src/main/js/sap/ushell/services/PersonalizationV2/WindowAdapter.js +71 -0
- package/src/main/js/sap/ushell/services/PersonalizationV2/WindowAdapterContainer.js +172 -0
- package/src/main/js/sap/ushell/services/PersonalizationV2/constants.js +23 -0
- package/src/main/js/sap/ushell/services/PersonalizationV2/constants.private.js +18 -0
- package/src/main/js/sap/ushell/services/PersonalizationV2/utils.js +233 -0
- package/src/main/js/sap/ushell/services/PersonalizationV2.js +641 -0
- package/src/main/js/sap/ushell/services/PluginManager.js +47 -55
- package/src/main/js/sap/ushell/services/ReferenceResolver.js +61 -54
- package/src/main/js/sap/ushell/services/Search.js +15 -2
- package/src/main/js/sap/ushell/services/SearchCEP.js +40 -44
- package/src/main/js/sap/ushell/services/SearchableContent.js +9 -9
- package/src/main/js/sap/ushell/services/ShellNavigation.js +14 -13
- package/src/main/js/sap/ushell/services/SmartNavigation.js +1 -1
- package/src/main/js/sap/ushell/services/SpaceContent.js +9 -10
- package/src/main/js/sap/ushell/services/SupportTicket.js +14 -14
- package/src/main/js/sap/ushell/services/UITracer.js +31 -35
- package/src/main/js/sap/ushell/services/URLParsing.js +9 -11
- package/src/main/js/sap/ushell/services/URLShortening.js +1 -1
- package/src/main/js/sap/ushell/services/URLTemplate.js +14 -13
- package/src/main/js/sap/ushell/services/Ui5ComponentLoader.js +29 -26
- package/src/main/js/sap/ushell/services/UsageAnalytics.js +6 -0
- package/src/main/js/sap/ushell/services/UserDefaultParameterPersistence.js +11 -7
- package/src/main/js/sap/ushell/services/UserDefaultParameters.js +20 -26
- package/src/main/js/sap/ushell/services/UserInfo.js +44 -23
- package/src/main/js/sap/ushell/services/UserRecents.js +13 -5
- package/src/main/js/sap/ushell/services/VisualizationDataProvider.js +12 -9
- package/src/main/js/sap/ushell/services/VisualizationInstantiation.js +10 -8
- 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 +3 -4
- package/src/main/js/sap/ushell/services/_ClientSideTargetResolution/VirtualInbounds.js +4 -4
- 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/_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 +2 -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/_Personalization/ContextContainer.js +6 -0
- package/src/main/js/sap/ushell/services/_Personalization/PersonalizationContainer.js +5 -1
- package/src/main/js/sap/ushell/services/_Personalization/PersonalizationContainerVariant.js +13 -9
- package/src/main/js/sap/ushell/services/_Personalization/PersonalizationContainerVariantSet.js +17 -13
- package/src/main/js/sap/ushell/services/_Personalization/Personalizer.js +5 -0
- package/src/main/js/sap/ushell/services/_Personalization/TransientPersonalizer.js +5 -1
- package/src/main/js/sap/ushell/services/_Personalization/Variant.js +4 -0
- package/src/main/js/sap/ushell/services/_Personalization/VariantSet.js +17 -9
- package/src/main/js/sap/ushell/services/_Personalization/VariantSetAdapter.js +4 -6
- package/src/main/js/sap/ushell/services/_Personalization/WindowAdapter.js +5 -44
- package/src/main/js/sap/ushell/services/_Personalization/WindowAdapterContainer.js +5 -101
- package/src/main/js/sap/ushell/services/_Personalization/constants.js +3 -0
- package/src/main/js/sap/ushell/services/_Personalization/constants.private.js +3 -0
- package/src/main/js/sap/ushell/services/_Personalization/utils.js +3 -0
- 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 +29 -5
- package/src/main/js/sap/ushell/services/_UserRecents/UserRecentsBase.js +19 -27
- package/src/main/js/sap/ushell/services/_VisualizationInstantiation/VizInstance.js +4 -0
- package/src/main/js/sap/ushell/services/_VisualizationInstantiation/VizInstanceAbap.js +3 -0
- package/src/main/js/sap/ushell/services/_VisualizationInstantiation/VizInstanceLink.js +1 -1
- package/src/main/js/sap/ushell/services/personalization/VariantSetAdapter.js +13 -15
- package/src/main/js/sap/ushell/support/plugins/flpConfig/FlpConfigurationPlugin.js +1 -1
- package/src/main/js/sap/ushell/themes/sap_horizon/ShellAppTitle.less +4 -4
- package/src/main/js/sap/ushell/themes/sap_horizon_dark/ShellAppTitle.less +4 -4
- package/src/main/js/sap/ushell/themes/sap_horizon_hcb/ShellAppTitle.less +2 -2
- package/src/main/js/sap/ushell/themes/sap_horizon_hcw/ShellAppTitle.less +2 -2
- package/src/main/js/sap/ushell/ui/AppContainer.js +2 -2
- package/src/main/js/sap/ushell/ui/ContentNodeSelector.js +2 -2
- package/src/main/js/sap/ushell/ui/ShellHeader.js +2 -2
- package/src/main/js/sap/ushell/ui/cards/RecentActivitiesExtension.js +1 -1
- package/src/main/js/sap/ushell/ui/footerbar/AddBookmarkButton.js +8 -12
- package/src/main/js/sap/ushell/ui/launchpad/ExtendedChangeDetection.js +1 -1
- package/src/main/js/sap/ushell/ui/launchpad/Page.js +1 -1
- package/src/main/js/sap/ushell/ui/launchpad/Section.js +21 -8
- package/src/main/js/sap/ushell/ui/launchpad/TileState.js +0 -1
- package/src/main/js/sap/ushell/ui/launchpad/section/CompactArea.js +1 -1
- package/src/main/js/sap/ushell/ui/shell/ShellAppTitle.js +1 -1
- package/src/main/js/sap/ushell/ui/shell/ShellHeadItem.js +1 -1
- package/src/main/js/sap/ushell/ui/shell/SysInfoBar.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 +14 -26
- package/src/main/js/sap/ushell/utils/Deferred.js +88 -0
- package/src/main/js/sap/ushell/utils/UrlShortening.js +1 -1
- package/src/main/js/sap/ushell/utils/WindowUtils.js +8 -8
- package/src/main/js/sap/ushell/utils.js +31 -67
- package/src/test/js/sap/ushell/bootstrap/sandbox.js +7 -2
- package/ui5.yaml +8 -2
- /package/src/main/js/sap/ushell/{renderers/fiori2 → renderer}/HeadEndItemsOverflowPopover.fragment.xml +0 -0
- /package/src/main/js/sap/ushell/{renderers/fiori2 → renderer}/resources/resources_ar.properties +0 -0
- /package/src/main/js/sap/ushell/{renderers/fiori2 → renderer}/resources/resources_bg.properties +0 -0
- /package/src/main/js/sap/ushell/{renderers/fiori2 → renderer}/resources/resources_ca.properties +0 -0
- /package/src/main/js/sap/ushell/{renderers/fiori2 → renderer}/resources/resources_cs.properties +0 -0
- /package/src/main/js/sap/ushell/{renderers/fiori2 → renderer}/resources/resources_cy.properties +0 -0
- /package/src/main/js/sap/ushell/{renderers/fiori2 → renderer}/resources/resources_da.properties +0 -0
- /package/src/main/js/sap/ushell/{renderers/fiori2 → renderer}/resources/resources_de.properties +0 -0
- /package/src/main/js/sap/ushell/{renderers/fiori2 → renderer}/resources/resources_el.properties +0 -0
- /package/src/main/js/sap/ushell/{renderers/fiori2 → renderer}/resources/resources_en.properties +0 -0
- /package/src/main/js/sap/ushell/{renderers/fiori2 → renderer}/resources/resources_en_GB.properties +0 -0
- /package/src/main/js/sap/ushell/{renderers/fiori2 → renderer}/resources/resources_en_US_sappsd.properties +0 -0
- /package/src/main/js/sap/ushell/{renderers/fiori2 → renderer}/resources/resources_en_US_saprigi.properties +0 -0
- /package/src/main/js/sap/ushell/{renderers/fiori2 → renderer}/resources/resources_en_US_saptrc.properties +0 -0
- /package/src/main/js/sap/ushell/{renderers/fiori2 → renderer}/resources/resources_es.properties +0 -0
- /package/src/main/js/sap/ushell/{renderers/fiori2 → renderer}/resources/resources_es_MX.properties +0 -0
- /package/src/main/js/sap/ushell/{renderers/fiori2 → renderer}/resources/resources_et.properties +0 -0
- /package/src/main/js/sap/ushell/{renderers/fiori2 → renderer}/resources/resources_fi.properties +0 -0
- /package/src/main/js/sap/ushell/{renderers/fiori2 → renderer}/resources/resources_fr.properties +0 -0
- /package/src/main/js/sap/ushell/{renderers/fiori2 → renderer}/resources/resources_fr_CA.properties +0 -0
- /package/src/main/js/sap/ushell/{renderers/fiori2 → renderer}/resources/resources_hi.properties +0 -0
- /package/src/main/js/sap/ushell/{renderers/fiori2 → renderer}/resources/resources_hr.properties +0 -0
- /package/src/main/js/sap/ushell/{renderers/fiori2 → renderer}/resources/resources_hu.properties +0 -0
- /package/src/main/js/sap/ushell/{renderers/fiori2 → renderer}/resources/resources_id.properties +0 -0
- /package/src/main/js/sap/ushell/{renderers/fiori2 → renderer}/resources/resources_it.properties +0 -0
- /package/src/main/js/sap/ushell/{renderers/fiori2 → renderer}/resources/resources_iw.properties +0 -0
- /package/src/main/js/sap/ushell/{renderers/fiori2 → renderer}/resources/resources_ja.properties +0 -0
- /package/src/main/js/sap/ushell/{renderers/fiori2 → renderer}/resources/resources_kk.properties +0 -0
- /package/src/main/js/sap/ushell/{renderers/fiori2 → renderer}/resources/resources_ko.properties +0 -0
- /package/src/main/js/sap/ushell/{renderers/fiori2 → renderer}/resources/resources_lt.properties +0 -0
- /package/src/main/js/sap/ushell/{renderers/fiori2 → renderer}/resources/resources_lv.properties +0 -0
- /package/src/main/js/sap/ushell/{renderers/fiori2 → renderer}/resources/resources_ms.properties +0 -0
- /package/src/main/js/sap/ushell/{renderers/fiori2 → renderer}/resources/resources_nl.properties +0 -0
- /package/src/main/js/sap/ushell/{renderers/fiori2 → renderer}/resources/resources_no.properties +0 -0
- /package/src/main/js/sap/ushell/{renderers/fiori2 → renderer}/resources/resources_pl.properties +0 -0
- /package/src/main/js/sap/ushell/{renderers/fiori2 → renderer}/resources/resources_pt.properties +0 -0
- /package/src/main/js/sap/ushell/{renderers/fiori2 → renderer}/resources/resources_pt_PT.properties +0 -0
- /package/src/main/js/sap/ushell/{renderers/fiori2 → renderer}/resources/resources_ro.properties +0 -0
- /package/src/main/js/sap/ushell/{renderers/fiori2 → renderer}/resources/resources_ru.properties +0 -0
- /package/src/main/js/sap/ushell/{renderers/fiori2 → renderer}/resources/resources_sh.properties +0 -0
- /package/src/main/js/sap/ushell/{renderers/fiori2 → renderer}/resources/resources_sk.properties +0 -0
- /package/src/main/js/sap/ushell/{renderers/fiori2 → renderer}/resources/resources_sl.properties +0 -0
- /package/src/main/js/sap/ushell/{renderers/fiori2 → renderer}/resources/resources_sv.properties +0 -0
- /package/src/main/js/sap/ushell/{renderers/fiori2 → renderer}/resources/resources_th.properties +0 -0
- /package/src/main/js/sap/ushell/{renderers/fiori2 → renderer}/resources/resources_tr.properties +0 -0
- /package/src/main/js/sap/ushell/{renderers/fiori2 → renderer}/resources/resources_uk.properties +0 -0
- /package/src/main/js/sap/ushell/{renderers/fiori2 → renderer}/resources/resources_vi.properties +0 -0
- /package/src/main/js/sap/ushell/{renderers/fiori2 → renderer}/resources/resources_zh_CN.properties +0 -0
- /package/src/main/js/sap/ushell/{renderers/fiori2 → renderer}/resources/resources_zh_TW.properties +0 -0
- /package/src/main/js/sap/ushell/{renderers/fiori2 → renderer}/search/util.js +0 -0
- /package/src/main/js/sap/ushell/{renderers/fiori2 → renderer}/utils.js +0 -0
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
/**
|
|
4
4
|
* @fileOverview The Unified Shell's page building service.
|
|
5
5
|
*
|
|
6
|
-
* @version 1.
|
|
6
|
+
* @version 1.120.1
|
|
7
7
|
*/
|
|
8
8
|
sap.ui.define([
|
|
9
9
|
"sap/ui/thirdparty/jquery"
|
|
@@ -13,16 +13,19 @@ sap.ui.define([
|
|
|
13
13
|
"use strict";
|
|
14
14
|
|
|
15
15
|
/**
|
|
16
|
-
*
|
|
17
|
-
*
|
|
18
|
-
*
|
|
16
|
+
* @alias sap.ushell.services.PageBuilding
|
|
17
|
+
* @class
|
|
18
|
+
* @classdesc The Unified Shell's page building service.
|
|
19
19
|
*
|
|
20
|
-
*
|
|
21
|
-
*
|
|
20
|
+
* <b>Note:</b> To retrieve a valid instance of this service, it is necessary to call
|
|
21
|
+
* <code>sap.ushell.Container.getServiceAsync("PageBuilding")</code>. For details, see
|
|
22
|
+
* {@link sap.ushell.services.Container#getServiceAsync}.
|
|
22
23
|
*
|
|
23
|
-
* @
|
|
24
|
+
* @param {object} oAdapter The page building adapter for the logon system
|
|
25
|
+
* @param {object} oContainerInterface The interface provided by the container
|
|
26
|
+
*
|
|
27
|
+
* @hideconstructor
|
|
24
28
|
*
|
|
25
|
-
* @see sap.ushell.services.Container#getServiceAsync
|
|
26
29
|
* @since 1.15.0
|
|
27
30
|
* @private
|
|
28
31
|
*/
|
|
@@ -1,31 +1,34 @@
|
|
|
1
1
|
// Copyright (c) 2009-2023 SAP SE, All Rights Reserved
|
|
2
|
+
|
|
2
3
|
/**
|
|
3
4
|
* @fileOverview <p>This module deals with the page persistence.</p>
|
|
4
5
|
*
|
|
5
6
|
* It provides the layout and tile data of pages in the pages runtime.
|
|
6
7
|
* Only used on the ABAP platform and on local for testing.
|
|
7
8
|
*
|
|
8
|
-
* @version 1.
|
|
9
|
+
* @version 1.120.1
|
|
9
10
|
*/
|
|
10
11
|
sap.ui.define([], function () {
|
|
11
12
|
"use strict";
|
|
12
13
|
|
|
13
14
|
/**
|
|
14
|
-
*
|
|
15
|
-
*
|
|
16
|
-
*
|
|
15
|
+
* @alias sap.ushell.services.PagePersistence
|
|
16
|
+
* @class
|
|
17
|
+
* @classdesc The Unified Shell's PagePersistence service.
|
|
17
18
|
*
|
|
18
|
-
*
|
|
19
|
+
* <b>Note:</b> To retrieve a valid instance of this service, it is necessary to call
|
|
20
|
+
* <code>sap.ushell.Container.getServiceAsync("PagePersistence")</code>. For details, see
|
|
21
|
+
* {@link sap.ushell.services.Container#getServiceAsync}.
|
|
19
22
|
*
|
|
20
23
|
* @param {object} adapter
|
|
21
24
|
* the page persistency adapter for the frontend server
|
|
22
25
|
* @param {object} serviceConfiguration
|
|
23
26
|
* the page persistency service configuration
|
|
24
27
|
*
|
|
25
|
-
* @
|
|
26
|
-
* @see sap.ushell.services.Container#getServiceAsync
|
|
27
|
-
* @experimental Since 1.67.0
|
|
28
|
+
* @hideconstructor
|
|
28
29
|
*
|
|
30
|
+
* @since 1.67.0
|
|
31
|
+
* @experimental Since 1.67.0
|
|
29
32
|
* @private
|
|
30
33
|
*/
|
|
31
34
|
function PagePersistence (/*adapter, serviceConfiguration*/) {
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
4
|
* @fileOverview This module deals with page related referencing and dereferencing.
|
|
5
|
-
* @version 1.
|
|
5
|
+
* @version 1.120.1
|
|
6
6
|
*/
|
|
7
7
|
sap.ui.define([
|
|
8
8
|
"sap/ushell/services/_PageReferencing/PageReferencer"
|
|
@@ -10,15 +10,18 @@ sap.ui.define([
|
|
|
10
10
|
"use strict";
|
|
11
11
|
|
|
12
12
|
/**
|
|
13
|
-
*
|
|
14
|
-
* <code>sap.ushell.Container.getServiceAsync("PageReferencing").then(function (PageReferencing) {});</code>.
|
|
15
|
-
* Constructs a new instance of the page referencing service.
|
|
16
|
-
*
|
|
17
|
-
* @namespace sap.ushell.services.PageReferencing
|
|
13
|
+
* @alias sap.ushell.services.PageReferencing
|
|
18
14
|
* @class
|
|
19
|
-
* @
|
|
20
|
-
*
|
|
15
|
+
* @classdesc The Unified Shell's PageReferencing service.
|
|
16
|
+
*
|
|
17
|
+
* <b>Note:</b> To retrieve a valid instance of this service, it is necessary to call
|
|
18
|
+
* <code>sap.ushell.Container.getServiceAsync("PageReferencing")</code>. For details, see
|
|
19
|
+
* {@link sap.ushell.services.Container#getServiceAsync}.
|
|
21
20
|
*
|
|
21
|
+
* @hideconstructor
|
|
22
|
+
*
|
|
23
|
+
* @since 1.68.0
|
|
24
|
+
* @experimental Since 1.68.0
|
|
22
25
|
* @private
|
|
23
26
|
*/
|
|
24
27
|
function PageReferencing () { }
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
4
|
* @fileOverview This module exposes a model containing the pages hierarchy to its clients.
|
|
5
|
-
* @version 1.
|
|
5
|
+
* @version 1.120.1
|
|
6
6
|
*/
|
|
7
7
|
sap.ui.define([
|
|
8
8
|
"sap/base/Log",
|
|
@@ -34,16 +34,17 @@ sap.ui.define([
|
|
|
34
34
|
"use strict";
|
|
35
35
|
|
|
36
36
|
/**
|
|
37
|
-
*
|
|
38
|
-
*
|
|
39
|
-
*
|
|
37
|
+
* @alias sap.ushell.services.Pages
|
|
38
|
+
* @class
|
|
39
|
+
* @classdesc The Unified Shell's Pages service.
|
|
40
40
|
*
|
|
41
|
-
*
|
|
41
|
+
* <b>Note:</b> To retrieve a valid instance of this service, it is necessary to call
|
|
42
|
+
* <code>sap.ushell.Container.getServiceAsync("Pages")</code>. For details, see
|
|
43
|
+
* {@link sap.ushell.services.Container#getServiceAsync}.
|
|
42
44
|
*
|
|
43
|
-
* @
|
|
44
|
-
* @see {@link sap.ushell.services.Container#getServiceAsync}
|
|
45
|
-
* @since 1.72.0
|
|
45
|
+
* @hideconstructor
|
|
46
46
|
*
|
|
47
|
+
* @since 1.72.0
|
|
47
48
|
* @private
|
|
48
49
|
*/
|
|
49
50
|
var Pages = function () {
|
|
@@ -201,7 +202,6 @@ sap.ui.define([
|
|
|
201
202
|
* @private
|
|
202
203
|
*/
|
|
203
204
|
Pages.prototype.loadPages = function (aPageIds) {
|
|
204
|
-
|
|
205
205
|
return this._oCdmServicePromise
|
|
206
206
|
.then(function (oCdmService) {
|
|
207
207
|
// load and cache all the pages with a single request
|
|
@@ -1169,7 +1169,6 @@ sap.ui.define([
|
|
|
1169
1169
|
* @private
|
|
1170
1170
|
*/
|
|
1171
1171
|
Pages.prototype._getModelForPage = function (page, visualizations, applications, vizTypes) {
|
|
1172
|
-
|
|
1173
1172
|
var oPage = {
|
|
1174
1173
|
id: (page && page.identification && page.identification.id) || "",
|
|
1175
1174
|
title: (page && page.identification && page.identification.title) || "",
|
|
@@ -1255,7 +1254,7 @@ sap.ui.define([
|
|
|
1255
1254
|
}
|
|
1256
1255
|
return bIntentSupported;
|
|
1257
1256
|
}.bind(this, i)));
|
|
1258
|
-
|
|
1257
|
+
}
|
|
1259
1258
|
|
|
1260
1259
|
return Promise.all(aPromises).then(function (aResults) {
|
|
1261
1260
|
if (aResults.indexOf(false) !== -1) {
|
|
@@ -1447,7 +1446,6 @@ sap.ui.define([
|
|
|
1447
1446
|
}
|
|
1448
1447
|
}
|
|
1449
1448
|
|
|
1450
|
-
|
|
1451
1449
|
// Add visualization to existing default section, update model & site, save personalization
|
|
1452
1450
|
oSectionToAdd.visualizations.push(oVizData);
|
|
1453
1451
|
this._oPagesModel.refresh();
|
|
@@ -1569,8 +1567,7 @@ sap.ui.define([
|
|
|
1569
1567
|
pageId: oPage.identification.id
|
|
1570
1568
|
});
|
|
1571
1569
|
}
|
|
1572
|
-
})
|
|
1573
|
-
.then(function () {
|
|
1570
|
+
}).then(function () {
|
|
1574
1571
|
return aVizReferences;
|
|
1575
1572
|
});
|
|
1576
1573
|
}.bind(this));
|
|
@@ -1840,7 +1837,6 @@ sap.ui.define([
|
|
|
1840
1837
|
};
|
|
1841
1838
|
});
|
|
1842
1839
|
}.bind(this));
|
|
1843
|
-
|
|
1844
1840
|
};
|
|
1845
1841
|
|
|
1846
1842
|
/**
|
|
@@ -4,7 +4,8 @@
|
|
|
4
4
|
* @fileOverview The Unified Shell's personalization service, which provides generic read and write access to the currently logged on user's
|
|
5
5
|
* personalization settings for the app currently executed in the shell.
|
|
6
6
|
*
|
|
7
|
-
* @version 1.
|
|
7
|
+
* @version 1.120.1
|
|
8
|
+
* @deprecated since 1.120 Please use {@link sap.ushell.services.PersonalizationV2} instead
|
|
8
9
|
*/
|
|
9
10
|
sap.ui.define([
|
|
10
11
|
"sap/base/Log",
|
|
@@ -16,14 +17,14 @@ sap.ui.define([
|
|
|
16
17
|
"sap/ushell/services/_Personalization/utils",
|
|
17
18
|
"sap/ushell/services/_Personalization/constants",
|
|
18
19
|
"sap/ushell/services/_Personalization/ContextContainer",
|
|
19
|
-
"sap/ushell/services/
|
|
20
|
+
"sap/ushell/services/PersonalizationV2/WindowAdapter",
|
|
20
21
|
"sap/ushell/services/_Personalization/TransientPersonalizer", // private
|
|
21
22
|
"sap/ushell/services/_Personalization/PersonalizationContainer", // private
|
|
22
23
|
"sap/ushell/services/_Personalization/Personalizer", // private
|
|
23
24
|
"sap/ushell/services/personalization/VariantSetAdapter",
|
|
24
25
|
"sap/ushell/services/_Personalization/Variant",
|
|
25
26
|
"sap/ushell/services/_Personalization/VariantSet",
|
|
26
|
-
"sap/ushell/services/
|
|
27
|
+
"sap/ushell/services/PersonalizationV2/WindowAdapterContainer"
|
|
27
28
|
], function (
|
|
28
29
|
Log,
|
|
29
30
|
ManagedObject,
|
|
@@ -76,6 +77,7 @@ sap.ui.define([
|
|
|
76
77
|
*
|
|
77
78
|
* @see sap.ushell.services.Container#getServiceAsync
|
|
78
79
|
* @since 1.15.0
|
|
80
|
+
* @deprecated since 1.120 Please use {@link sap.ushell.services.PersonalizationV2} instead
|
|
79
81
|
*/
|
|
80
82
|
function Personalization (oAdapter, oContainerInterface, sParameter, oConfig) {
|
|
81
83
|
this._oConfig = (oConfig && oConfig.config) || {};
|
|
@@ -0,0 +1,410 @@
|
|
|
1
|
+
// Copyright (c) 2009-2023 SAP SE, All Rights Reserved
|
|
2
|
+
sap.ui.define([
|
|
3
|
+
"sap/ushell/utils",
|
|
4
|
+
"sap/ushell/services/PersonalizationV2/utils",
|
|
5
|
+
"sap/ushell/services/PersonalizationV2/constants.private",
|
|
6
|
+
"sap/ui/core/format/DateFormat",
|
|
7
|
+
"sap/ui/core/UIComponent",
|
|
8
|
+
"sap/ui/thirdparty/jquery",
|
|
9
|
+
"sap/base/Log"
|
|
10
|
+
], function (ushellUtils, personalizationUtils, constants, DateFormat, UIComponent, jQuery, Log) {
|
|
11
|
+
"use strict";
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* To be called by the personalization service getContainer method.
|
|
15
|
+
*
|
|
16
|
+
* @name sap.ushell.services.PersonalizationV2.ContextContainer
|
|
17
|
+
* @class The container is the anchor object of the unified shell
|
|
18
|
+
* personalization in container mode.
|
|
19
|
+
*
|
|
20
|
+
* @since 1.120.0
|
|
21
|
+
* @public
|
|
22
|
+
*/
|
|
23
|
+
|
|
24
|
+
function ContextContainer (/* args... */) {
|
|
25
|
+
this._init.apply(this, arguments);
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
// Need an _init method to be exposed (in this case in the prototype) when
|
|
29
|
+
// the dependency is consumed. In this way it's possible to spy on the
|
|
30
|
+
// constructor call.
|
|
31
|
+
ContextContainer.prototype._init = function (oService, oAdapter, sContainerKey, oScope, oComponent) {
|
|
32
|
+
this._oService = oService;
|
|
33
|
+
this._sContainerKey = sContainerKey;
|
|
34
|
+
this._oAdapterContainer = {};
|
|
35
|
+
this._oScope = oScope || personalizationUtils.adjustScope(oScope);
|
|
36
|
+
this._aLoadedKeys = [];
|
|
37
|
+
this._oUnmodifiableContainer = undefined;
|
|
38
|
+
let sAppName;
|
|
39
|
+
|
|
40
|
+
if (!(oComponent instanceof UIComponent) && oComponent !== undefined) {
|
|
41
|
+
throw new Error("oComponent passed is not a UI5 Component and not undefined");
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
if (oComponent && oComponent.getMetadata && oComponent.getMetadata().getComponentName) {
|
|
45
|
+
sAppName = oComponent.getMetadata().getComponentName();
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
this.clearData();
|
|
49
|
+
if (!this._sContainerKey || typeof this._sContainerKey !== "string") {
|
|
50
|
+
throw new Error("Invalid container key: sap.ushell.services.PersonalizationV2");
|
|
51
|
+
}
|
|
52
|
+
this._oAdapterContainer = oAdapter.getAdapterContainer(this._sContainerKey, this._oScope, sAppName);
|
|
53
|
+
return this;
|
|
54
|
+
};
|
|
55
|
+
|
|
56
|
+
/**
|
|
57
|
+
* return the validity of this container
|
|
58
|
+
* @returns {int} The validity of the container.
|
|
59
|
+
*
|
|
60
|
+
* @since 1.120.0
|
|
61
|
+
* @private
|
|
62
|
+
*/
|
|
63
|
+
ContextContainer.prototype._getValidity = function () {
|
|
64
|
+
return this._oScope.validity;
|
|
65
|
+
};
|
|
66
|
+
|
|
67
|
+
/**
|
|
68
|
+
* clears the local copy data of this container
|
|
69
|
+
*
|
|
70
|
+
* @since 1.120.0
|
|
71
|
+
* @public
|
|
72
|
+
*/
|
|
73
|
+
ContextContainer.prototype.clearData = function () {
|
|
74
|
+
// resets all member variables of the personalization container
|
|
75
|
+
this._oItemMap = {};
|
|
76
|
+
this._aLoadedItemKeys = [];
|
|
77
|
+
this._clear = true;
|
|
78
|
+
this._oItemMap = new ushellUtils.Map();
|
|
79
|
+
};
|
|
80
|
+
|
|
81
|
+
|
|
82
|
+
/**
|
|
83
|
+
* (Re)loads the current container data from the underlying storage asynchronously.
|
|
84
|
+
* The current local data is discarded.
|
|
85
|
+
*
|
|
86
|
+
* Returns a promise for the load operation.
|
|
87
|
+
* If another save/load/delete operation is not completed, the operation may fail!
|
|
88
|
+
* (wait for the other promise).
|
|
89
|
+
*
|
|
90
|
+
* Synchronous read and write operations before the load is done have undefined
|
|
91
|
+
* effects.
|
|
92
|
+
*
|
|
93
|
+
* @returns {Promise<object>} Promise object
|
|
94
|
+
*
|
|
95
|
+
* @since 1.120.0
|
|
96
|
+
* @public
|
|
97
|
+
*/
|
|
98
|
+
ContextContainer.prototype.load = function () {
|
|
99
|
+
const oDeferred = new jQuery.Deferred();
|
|
100
|
+
if (!this._sContainerKey) {
|
|
101
|
+
throw new Error("Invalid container key: sap.ushell.services.PersonalizationV2");
|
|
102
|
+
}
|
|
103
|
+
// delete local data
|
|
104
|
+
this.clearData();
|
|
105
|
+
const oPrior = this._oService._pendingContainerOperations_flushAddNext(this._sContainerKey, oDeferred);
|
|
106
|
+
// get adapter container & load
|
|
107
|
+
const that = this;
|
|
108
|
+
oPrior.always(() => {
|
|
109
|
+
that._oAdapterContainer.load()
|
|
110
|
+
.fail(function () {
|
|
111
|
+
// TODO
|
|
112
|
+
oDeferred.reject();
|
|
113
|
+
})
|
|
114
|
+
.done(() => {
|
|
115
|
+
that._copyFromAdapter();
|
|
116
|
+
if (that.isExpired()) {
|
|
117
|
+
that.clearData();
|
|
118
|
+
}
|
|
119
|
+
oDeferred.resolve();
|
|
120
|
+
});
|
|
121
|
+
});
|
|
122
|
+
return ushellUtils.promisify(oDeferred.promise());
|
|
123
|
+
};
|
|
124
|
+
|
|
125
|
+
/**
|
|
126
|
+
* Copy data from adapter to local storage
|
|
127
|
+
*
|
|
128
|
+
* @since 1.120.0
|
|
129
|
+
* @private
|
|
130
|
+
*/
|
|
131
|
+
ContextContainer.prototype._copyFromAdapter = function () {
|
|
132
|
+
const aAllKeys = this._oAdapterContainer.getItemKeys().splice(0);
|
|
133
|
+
aAllKeys.forEach((sItemKey) => {
|
|
134
|
+
this._oItemMap.put(sItemKey, JSON.stringify(this._oAdapterContainer.getItemValue(sItemKey)));
|
|
135
|
+
});
|
|
136
|
+
this._aLoadedItemKeys = this._oItemMap.keys().splice(0);
|
|
137
|
+
};
|
|
138
|
+
|
|
139
|
+
|
|
140
|
+
/**
|
|
141
|
+
* @returns {boolean} Whether this container is expired
|
|
142
|
+
*
|
|
143
|
+
* @since 1.120.0
|
|
144
|
+
* @private
|
|
145
|
+
*/
|
|
146
|
+
ContextContainer.prototype.isExpired = function () {
|
|
147
|
+
if (this._getValidity() === Infinity || this._getValidity() === 0) {
|
|
148
|
+
return false;
|
|
149
|
+
}
|
|
150
|
+
const sTimestampExpire = this._getItemValueInternal(constants.S_ADMIN_PREFIX, constants.S_ITEMKEY_EXPIRE);
|
|
151
|
+
const oFormatter = DateFormat.getDateInstance({ pattern: constants.S_ABAPTIMESTAMPFORMAT });
|
|
152
|
+
const sTimestampNow = oFormatter.format(new Date(), true);
|
|
153
|
+
return sTimestampExpire && sTimestampNow > sTimestampExpire;
|
|
154
|
+
};
|
|
155
|
+
|
|
156
|
+
/**
|
|
157
|
+
* todo: jsdoc
|
|
158
|
+
* @since 1.120.0
|
|
159
|
+
* @private
|
|
160
|
+
*/
|
|
161
|
+
ContextContainer.prototype._copyToAdapterUpdatingValidity = function () {
|
|
162
|
+
let aItemKeys = [];
|
|
163
|
+
if (this._clear) {
|
|
164
|
+
aItemKeys = this._oAdapterContainer.getItemKeys().splice(0);
|
|
165
|
+
aItemKeys.forEach((sItemKey) => {
|
|
166
|
+
this._oAdapterContainer.delItem(sItemKey);
|
|
167
|
+
});
|
|
168
|
+
this._clear = false;
|
|
169
|
+
}
|
|
170
|
+
if (this._getValidity() === Infinity || this._getValidity() === 0) {
|
|
171
|
+
this._delItemInternal(constants.S_ADMIN_PREFIX, constants.S_ITEMKEY_SCOPE);
|
|
172
|
+
this._delItemInternal(constants.S_ADMIN_PREFIX, constants.S_ITEMKEY_EXPIRE);
|
|
173
|
+
this._delItemInternal(constants.S_ADMIN_PREFIX, constants.S_ITEMKEY_STORAGE);
|
|
174
|
+
} else {
|
|
175
|
+
const oFormatter = DateFormat.getDateInstance({ pattern: constants.S_ABAPTIMESTAMPFORMAT });
|
|
176
|
+
const oNow = new Date();
|
|
177
|
+
const sTimestampStorage = oFormatter.format(oNow, true); // true UTC times !
|
|
178
|
+
const sTimestampExpire = oFormatter.format(new Date(oNow.getTime() + this._getValidity() * 60000), /*UTC!*/ true);
|
|
179
|
+
this._setItemValueInternal(constants.S_ADMIN_PREFIX, constants.S_ITEMKEY_SCOPE, this._oScope);
|
|
180
|
+
this._setItemValueInternal(constants.S_ADMIN_PREFIX, constants.S_ITEMKEY_EXPIRE, sTimestampExpire);
|
|
181
|
+
this._setItemValueInternal(constants.S_ADMIN_PREFIX, constants.S_ITEMKEY_STORAGE, sTimestampStorage);
|
|
182
|
+
}
|
|
183
|
+
aItemKeys = this._oItemMap.keys();
|
|
184
|
+
aItemKeys.forEach((sItemKey) => {
|
|
185
|
+
this._oAdapterContainer.setItemValue(sItemKey, personalizationUtils.cloneToObject(this._oItemMap.get(sItemKey)));
|
|
186
|
+
});
|
|
187
|
+
const aDiff = this._aLoadedItemKeys.filter(function (sItemKey) { return !(aItemKeys.indexOf(sItemKey) > -1); });
|
|
188
|
+
aDiff.forEach((sItemKey) => {
|
|
189
|
+
this._oAdapterContainer.delItem(sItemKey);
|
|
190
|
+
});
|
|
191
|
+
};
|
|
192
|
+
|
|
193
|
+
/**
|
|
194
|
+
* * todo: jsdoc
|
|
195
|
+
* Save the current container data at the underlying storage asynchronously at the earlies
|
|
196
|
+
* nDelayInMilliseconds seconds before.
|
|
197
|
+
* The current state is serialized.
|
|
198
|
+
*
|
|
199
|
+
* @param {int} nDelayInMilliseconds
|
|
200
|
+
* @returns {Promise} Promise object
|
|
201
|
+
*
|
|
202
|
+
* The operation may wait for completion of another pending operation.
|
|
203
|
+
*
|
|
204
|
+
* @since 1.120.0
|
|
205
|
+
* @public
|
|
206
|
+
*/
|
|
207
|
+
ContextContainer.prototype.save = function (nDelayInMilliseconds) {
|
|
208
|
+
this._copyToAdapterUpdatingValidity();
|
|
209
|
+
const oSaveDeferred = new jQuery.Deferred();
|
|
210
|
+
|
|
211
|
+
const oPrior = this._oService._pendingContainerOperations_cancelAddNext(this._sContainerKey, oSaveDeferred);
|
|
212
|
+
|
|
213
|
+
const that = this;
|
|
214
|
+
function fnDelayedSave () {
|
|
215
|
+
oPrior.always(function () {
|
|
216
|
+
try {
|
|
217
|
+
that._oAdapterContainer.save() // promise
|
|
218
|
+
.fail(function () { oSaveDeferred.reject(); })
|
|
219
|
+
.done(function () { oSaveDeferred.resolve(); });
|
|
220
|
+
} catch (e) {
|
|
221
|
+
oSaveDeferred.reject();
|
|
222
|
+
}
|
|
223
|
+
});
|
|
224
|
+
}
|
|
225
|
+
|
|
226
|
+
oSaveDeferred._sapFnSave = fnDelayedSave;
|
|
227
|
+
oSaveDeferred._sapTimeoutId = setTimeout(fnDelayedSave, nDelayInMilliseconds);
|
|
228
|
+
// we want to delay at least 200 ms,
|
|
229
|
+
return ushellUtils.promisify(oSaveDeferred.promise());
|
|
230
|
+
};
|
|
231
|
+
|
|
232
|
+
/**
|
|
233
|
+
* flush all pending request;
|
|
234
|
+
* The result of the promise may reflect the last pending operation in the queue
|
|
235
|
+
* @returns {Promise} promise
|
|
236
|
+
*
|
|
237
|
+
* @since 1.120.0
|
|
238
|
+
* @public
|
|
239
|
+
*/
|
|
240
|
+
ContextContainer.prototype.flushPendingRequests = function () {
|
|
241
|
+
this._copyToAdapterUpdatingValidity();
|
|
242
|
+
const oSaveDeferred = new jQuery.Deferred();
|
|
243
|
+
const oPrior = this._oService._pendingContainerOperations_flushAddNext(this._sContainerKey, oSaveDeferred);
|
|
244
|
+
oPrior
|
|
245
|
+
.fail(function () { oSaveDeferred.reject(); })
|
|
246
|
+
.done(function () { oSaveDeferred.resolve(); });
|
|
247
|
+
return ushellUtils.promisify(oSaveDeferred.promise());
|
|
248
|
+
};
|
|
249
|
+
|
|
250
|
+
/**
|
|
251
|
+
* Returns an array with the keys of direct items in the container.
|
|
252
|
+
* @returns {string[]} item keys
|
|
253
|
+
*
|
|
254
|
+
* @since 1.120.0
|
|
255
|
+
* @public
|
|
256
|
+
*/
|
|
257
|
+
ContextContainer.prototype.getItemKeys = function () {
|
|
258
|
+
// return a list of the (prefix stripped) "Item" keys.
|
|
259
|
+
const aFilteredTrueItemKeys = this._oItemMap.keys().filter(function (s) {
|
|
260
|
+
return s.startsWith(constants.S_ITEM_PREFIX);
|
|
261
|
+
});
|
|
262
|
+
return aFilteredTrueItemKeys.map(function (sEntry) {
|
|
263
|
+
return sEntry.replace(constants.S_ITEM_PREFIX, "", "");
|
|
264
|
+
});
|
|
265
|
+
};
|
|
266
|
+
|
|
267
|
+
/**
|
|
268
|
+
* Returns an array with all internal keys of direct items in the container.
|
|
269
|
+
* @returns {string[]} item keys
|
|
270
|
+
*
|
|
271
|
+
* @since 1.120.0
|
|
272
|
+
* @private
|
|
273
|
+
*/
|
|
274
|
+
ContextContainer.prototype._getInternalKeys = function () {
|
|
275
|
+
return this._oItemMap.keys().splice(0);
|
|
276
|
+
};
|
|
277
|
+
|
|
278
|
+
/**
|
|
279
|
+
* Returns the value for a direct item from the container.
|
|
280
|
+
* (Value semantics, new copy is returned)
|
|
281
|
+
* @param {string} sItemKey
|
|
282
|
+
* item key
|
|
283
|
+
* @returns {object}
|
|
284
|
+
* item value (JSON object). In case the container does not contain a direct item with this key
|
|
285
|
+
* <code>undefined</code> is returned.
|
|
286
|
+
*
|
|
287
|
+
* @since 1.120.0
|
|
288
|
+
* @public
|
|
289
|
+
*/
|
|
290
|
+
ContextContainer.prototype.getItemValue = function (sItemKey) {
|
|
291
|
+
return this._getItemValueInternal(constants.S_ITEM_PREFIX, sItemKey);
|
|
292
|
+
};
|
|
293
|
+
|
|
294
|
+
/**
|
|
295
|
+
* todo: jsdoc
|
|
296
|
+
* @param {*} sPrefix
|
|
297
|
+
* @param {*} sItemKey
|
|
298
|
+
* @returns {*}
|
|
299
|
+
*
|
|
300
|
+
* @since 1.120.0
|
|
301
|
+
* @private
|
|
302
|
+
*/
|
|
303
|
+
ContextContainer.prototype._getItemValueInternal = function (sPrefix, sItemKey) {
|
|
304
|
+
if (typeof sItemKey !== "string" || typeof sPrefix !== "string") {
|
|
305
|
+
return undefined;
|
|
306
|
+
}
|
|
307
|
+
return personalizationUtils.cloneToObject(this._oItemMap.get(sPrefix + sItemKey));
|
|
308
|
+
};
|
|
309
|
+
|
|
310
|
+
/**
|
|
311
|
+
* Checks if a specific direct item is contained in the container.
|
|
312
|
+
* @param {string} sItemKey item key
|
|
313
|
+
* @returns {boolean} <code>true</code> if the container contains a direct item with the key
|
|
314
|
+
*
|
|
315
|
+
* @since 1.120.0
|
|
316
|
+
* @public
|
|
317
|
+
*/
|
|
318
|
+
ContextContainer.prototype.containsItem = function (sItemKey) {
|
|
319
|
+
if (typeof sItemKey !== "string") {
|
|
320
|
+
return undefined;
|
|
321
|
+
}
|
|
322
|
+
return this._oItemMap.containsKey(constants.S_ITEM_PREFIX + sItemKey);
|
|
323
|
+
};
|
|
324
|
+
|
|
325
|
+
/**
|
|
326
|
+
* Sets the value of a direct item in the container.
|
|
327
|
+
* In case the item is already existing its value is overwritten. In case it is not
|
|
328
|
+
* existing a new item with this key and value is created.
|
|
329
|
+
* The value is serialized during set
|
|
330
|
+
* @param {string} sItemKey item key. The string length is restricted to 40 characters
|
|
331
|
+
* @param {object} oItemValue item value (JSON object)
|
|
332
|
+
*
|
|
333
|
+
* @since 1.120.0
|
|
334
|
+
* @public
|
|
335
|
+
*/
|
|
336
|
+
ContextContainer.prototype.setItemValue = function (sItemKey, oItemValue) {
|
|
337
|
+
this._setItemValueInternal(constants.S_ITEM_PREFIX, sItemKey, oItemValue);
|
|
338
|
+
};
|
|
339
|
+
|
|
340
|
+
/**
|
|
341
|
+
* todo: jsdoc
|
|
342
|
+
* @param {*} sItemPrefix
|
|
343
|
+
* @param {*} sItemKey
|
|
344
|
+
* @param {*} oItemValue
|
|
345
|
+
*
|
|
346
|
+
* @since 1.120.0
|
|
347
|
+
* @private
|
|
348
|
+
*/
|
|
349
|
+
ContextContainer.prototype._setItemValueInternal = function (sItemPrefix, sItemKey, oItemValue) {
|
|
350
|
+
if (typeof sItemKey !== "string" || typeof sItemPrefix !== "string") {
|
|
351
|
+
throw Error("Parameter value of sItemKey or sItemValue is not a string: sap.ushell.services.PersonalizationV2");
|
|
352
|
+
}
|
|
353
|
+
|
|
354
|
+
if (sItemKey.length > 40) {
|
|
355
|
+
Log.error(
|
|
356
|
+
"Personalization Service item key/variant set name (\""
|
|
357
|
+
+ sItemKey
|
|
358
|
+
+ "\") should be less than 40 characters [current :"
|
|
359
|
+
+ sItemKey.length
|
|
360
|
+
+ "]"
|
|
361
|
+
);
|
|
362
|
+
}
|
|
363
|
+
|
|
364
|
+
this._oItemMap.put(sItemPrefix + sItemKey, JSON.stringify(oItemValue));
|
|
365
|
+
};
|
|
366
|
+
|
|
367
|
+
/**
|
|
368
|
+
* Deletes a direct item from the container.
|
|
369
|
+
* In case the item does not exist, nothing happens.
|
|
370
|
+
* @param {string} sItemKey item key
|
|
371
|
+
*
|
|
372
|
+
* @since 1.120.0
|
|
373
|
+
* @public
|
|
374
|
+
*/
|
|
375
|
+
ContextContainer.prototype.deleteItem = function (sItemKey) {
|
|
376
|
+
this._delItemInternal(constants.S_ITEM_PREFIX, sItemKey);
|
|
377
|
+
};
|
|
378
|
+
|
|
379
|
+
/**
|
|
380
|
+
* todo: jsdoc
|
|
381
|
+
* @param {*} sPrefix
|
|
382
|
+
* @param {*} sItemKey
|
|
383
|
+
* @returns {*}
|
|
384
|
+
*
|
|
385
|
+
* @since 1.120.0
|
|
386
|
+
* @private
|
|
387
|
+
*/
|
|
388
|
+
ContextContainer.prototype._delItemInternal = function (sPrefix, sItemKey) {
|
|
389
|
+
if (typeof sItemKey !== "string") {
|
|
390
|
+
return undefined;
|
|
391
|
+
}
|
|
392
|
+
if (typeof sPrefix !== "string") {
|
|
393
|
+
return undefined;
|
|
394
|
+
}
|
|
395
|
+
this._oItemMap.remove(sPrefix + sItemKey);
|
|
396
|
+
};
|
|
397
|
+
|
|
398
|
+
/**
|
|
399
|
+
* return the container key as a string variable
|
|
400
|
+
* @returns {string} the container key
|
|
401
|
+
*
|
|
402
|
+
* @since 1.120.0
|
|
403
|
+
* @public
|
|
404
|
+
*/
|
|
405
|
+
ContextContainer.prototype.getKey = function () {
|
|
406
|
+
return this._sContainerKey.substring(constants.S_CONTAINER_PREFIX.length);
|
|
407
|
+
};
|
|
408
|
+
|
|
409
|
+
return ContextContainer;
|
|
410
|
+
});
|