@sapui5/sap.ushell 1.142.0 → 1.143.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/ApplicationType/utils.js +9 -9
- package/src/main/js/sap/ushell/ApplicationType/wdaResolution.js +18 -0
- 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/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/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/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 -1
- 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 +2 -3
- 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/appIntegration/AppLifeCycle.js +93 -110
- package/src/main/js/sap/ushell/appIntegration/ApplicationContainer.js +1 -1
- package/src/main/js/sap/ushell/appIntegration/PostMessageHandler/LifecycleHandler.js +1 -3
- package/src/main/js/sap/ushell/appIntegration/PostMessageHandler/NavigationHandler.js +4 -4
- package/src/main/js/sap/ushell/appIntegration/PostMessageManager.js +6 -2
- package/src/main/js/sap/ushell/appIntegration/contracts/EmbeddedUI5Handler.js +3 -3
- package/src/main/js/sap/ushell/appIntegration/contracts/StatefulContainerV2Handler.js +1 -1
- package/src/main/js/sap/ushell/appRuntime/ui5/AppRuntime.js +4 -4
- package/src/main/js/sap/ushell/appRuntime/ui5/plugins/baseRta/CheckConditions.js +0 -12
- package/src/main/js/sap/ushell/appRuntime/ui5/renderers/fiori2/RendererExtensions.js +1 -1
- package/src/main/js/sap/ushell/appRuntime/ui5/services/AppConfiguration.js +1 -1
- package/src/main/js/sap/ushell/appRuntime/ui5/services/AppLifeCycle.js +1 -1
- package/src/main/js/sap/ushell/appRuntime/ui5/services/AppState.js +1 -1
- package/src/main/js/sap/ushell/appRuntime/ui5/services/Bookmark.js +1 -1
- package/src/main/js/sap/ushell/appRuntime/ui5/services/BookmarkV2.js +1 -1
- package/src/main/js/sap/ushell/appRuntime/ui5/services/CommonDataModel.js +1 -1
- package/src/main/js/sap/ushell/appRuntime/ui5/services/Container.js +1 -1
- package/src/main/js/sap/ushell/appRuntime/ui5/services/CrossApplicationNavigation.js +1 -1
- package/src/main/js/sap/ushell/appRuntime/ui5/services/Extension/Item.js +1 -1
- package/src/main/js/sap/ushell/appRuntime/ui5/services/Extension.js +1 -1
- package/src/main/js/sap/ushell/appRuntime/ui5/services/FlpLaunchPage.js +1 -1
- package/src/main/js/sap/ushell/appRuntime/ui5/services/FrameBoundExtension.js +1 -1
- package/src/main/js/sap/ushell/appRuntime/ui5/services/LaunchPage.js +1 -1
- package/src/main/js/sap/ushell/appRuntime/ui5/services/MessageBroker.js +1 -1
- package/src/main/js/sap/ushell/appRuntime/ui5/services/NavTargetResolution.js +1 -1
- package/src/main/js/sap/ushell/appRuntime/ui5/services/NavTargetResolutionInternal.js +1 -1
- package/src/main/js/sap/ushell/appRuntime/ui5/services/Navigation.js +1 -1
- package/src/main/js/sap/ushell/appRuntime/ui5/services/ReferenceResolver.js +1 -1
- package/src/main/js/sap/ushell/appRuntime/ui5/services/ShellNavigation.js +1 -1
- package/src/main/js/sap/ushell/appRuntime/ui5/services/ShellNavigationInternal.js +1 -1
- package/src/main/js/sap/ushell/appRuntime/ui5/services/ShellUIService.js +1 -1
- package/src/main/js/sap/ushell/appRuntime/ui5/services/UserInfo.js +1 -1
- package/src/main/js/sap/ushell/appRuntime/ui5/services/adapters/Ui5ComponentLoaderAdapter.js +1 -1
- package/src/main/js/sap/ushell/bootstrap/SchedulingAgent/LoadingConfiguration.json +4 -0
- package/src/main/js/sap/ushell/bootstrap/SchedulingAgent/StepConfiguration.json +21 -0
- 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/common/common.configure.ui5datetimeformat.js +1 -1
- package/src/main/js/sap/ushell/bootstrap/common/common.create.configcontract.core.js +12 -1
- package/src/main/js/sap/ushell/bootstrap/sandbox2.js +1 -1
- package/src/main/js/sap/ushell/components/appfinder/Component.js +2 -2
- package/src/main/js/sap/ushell/components/appfinder/manifest.json +1 -1
- package/src/main/js/sap/ushell/components/contentFinder/CatalogService.js +1 -1
- package/src/main/js/sap/ushell/components/contentFinder/Component.js +5 -5
- 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/dialog/Component.js +1 -1
- package/src/main/js/sap/ushell/components/contentFinder/dialog/manifest.json +1 -1
- package/src/main/js/sap/ushell/components/contentFinder/manifest.json +1 -1
- package/src/main/js/sap/ushell/components/contentFinderStandalone/Component.js +1 -1
- package/src/main/js/sap/ushell/components/contentFinderStandalone/controller/ContentFinderStandalone.controller.js +1 -1
- package/src/main/js/sap/ushell/components/contentFinderStandalone/manifest.json +1 -1
- package/src/main/js/sap/ushell/components/factsheet/Component.js +1 -1
- package/src/main/js/sap/ushell/components/factsheet/factory/ThingInspector.js +2 -2
- package/src/main/js/sap/ushell/components/homepage/ActionMode.js +1 -1
- package/src/main/js/sap/ushell/components/homepage/DashboardContent.view.js +2 -2
- package/src/main/js/sap/ushell/components/homepage/DashboardGroupsBox.js +10 -10
- 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 +2 -2
- package/src/main/js/sap/ushell/components/pages/controller/PagesAndSpaceId.js +4 -4
- 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/FloatingContainer/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/controller/NavigationBarMenuButton.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/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/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/SearchCEPNew/Component.js +3 -1
- package/src/main/js/sap/ushell/components/shell/SearchCEPNew/SearchProviders/FrequentActivityProvider.js +1 -1
- package/src/main/js/sap/ushell/components/shell/SearchCEPNew/SearchProviders/RecentSearchProvider.js +1 -1
- package/src/main/js/sap/ushell/components/shell/SearchCEPNew/SearchProviders/SearchProvider.js +1 -1
- package/src/main/js/sap/ushell/components/shell/SearchCEPNew/SearchProviders/SearchServiceProvider.js +1 -1
- package/src/main/js/sap/ushell/components/shell/SearchCEPNew/manifest.json +1 -1
- package/src/main/js/sap/ushell/components/shell/Settings/Component.js +1 -1
- package/src/main/js/sap/ushell/components/shell/Settings/appearance/Appearance.controller.js +35 -7
- package/src/main/js/sap/ushell/components/shell/Settings/appearance/Appearance.view.xml +1 -1
- package/src/main/js/sap/ushell/components/shell/ShellBar/Component.js +14 -9
- package/src/main/js/sap/ushell/components/shell/ShellBar/controller/ShellBar.controller.js +4 -3
- package/src/main/js/sap/ushell/components/shell/ShellBar/manifest.json +1 -1
- package/src/main/js/sap/ushell/components/shell/SideNavigation/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/UserImage/Component.js +1 -1
- package/src/main/js/sap/ushell/components/tiles/applauncher/StaticTile.controller.js +6 -6
- package/src/main/js/sap/ushell/components/tiles/applauncherdynamic/DynamicTile.controller.js +6 -6
- package/src/main/js/sap/ushell/components/tiles/cdm/applauncher/StaticTile.controller.js +6 -6
- package/src/main/js/sap/ushell/components/tiles/cdm/applauncherdynamic/DynamicTile.controller.js +6 -6
- package/src/main/js/sap/ushell/components/visualizationOrganizer/Component.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/modules/Assistant/AssistantAPI.js +94 -0
- package/src/main/js/sap/ushell/modules/Assistant/AssistantProvider.js +50 -0
- package/src/main/js/sap/ushell/modules/Assistant/VisualConfiguration.js +41 -0
- package/src/main/js/sap/ushell/modules/Assistant.js +56 -0
- package/src/main/js/sap/ushell/modules/Notifications/NotificationsProvider.js +1 -1
- package/src/main/js/sap/ushell/modules/Search.js +1 -0
- package/src/main/js/sap/ushell/modules/loader/AssistantLoader.js +156 -0
- 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 +4 -5
- package/src/main/js/sap/ushell/renderer/Shell.controller.js +96 -99
- package/src/main/js/sap/ushell/renderer/resources/resources.properties +1 -1
- package/src/main/js/sap/ushell/renderer/resources/resources_ar.properties +3 -3
- package/src/main/js/sap/ushell/renderer/resources/resources_bg.properties +3 -3
- package/src/main/js/sap/ushell/renderer/resources/resources_ca.properties +3 -3
- package/src/main/js/sap/ushell/renderer/resources/resources_cnr.properties +3 -3
- package/src/main/js/sap/ushell/renderer/resources/resources_cs.properties +3 -3
- package/src/main/js/sap/ushell/renderer/resources/resources_cy.properties +3 -3
- package/src/main/js/sap/ushell/renderer/resources/resources_da.properties +3 -3
- package/src/main/js/sap/ushell/renderer/resources/resources_de.properties +3 -3
- package/src/main/js/sap/ushell/renderer/resources/resources_el.properties +3 -3
- package/src/main/js/sap/ushell/renderer/resources/resources_en.properties +3 -3
- package/src/main/js/sap/ushell/renderer/resources/resources_en_GB.properties +3 -3
- package/src/main/js/sap/ushell/renderer/resources/resources_en_US_saprigi.properties +3 -3
- package/src/main/js/sap/ushell/renderer/resources/resources_es.properties +3 -3
- package/src/main/js/sap/ushell/renderer/resources/resources_es_MX.properties +5 -5
- package/src/main/js/sap/ushell/renderer/resources/resources_et.properties +3 -3
- package/src/main/js/sap/ushell/renderer/resources/resources_fi.properties +4 -4
- package/src/main/js/sap/ushell/renderer/resources/resources_fr.properties +5 -5
- package/src/main/js/sap/ushell/renderer/resources/resources_fr_CA.properties +1 -1
- package/src/main/js/sap/ushell/renderer/resources/resources_hi.properties +3 -3
- package/src/main/js/sap/ushell/renderer/resources/resources_hr.properties +3 -3
- package/src/main/js/sap/ushell/renderer/resources/resources_hu.properties +3 -3
- package/src/main/js/sap/ushell/renderer/resources/resources_id.properties +5 -5
- package/src/main/js/sap/ushell/renderer/resources/resources_it.properties +4 -4
- package/src/main/js/sap/ushell/renderer/resources/resources_iw.properties +3 -3
- package/src/main/js/sap/ushell/renderer/resources/resources_ja.properties +3 -3
- package/src/main/js/sap/ushell/renderer/resources/resources_kk.properties +3 -3
- package/src/main/js/sap/ushell/renderer/resources/resources_ko.properties +5 -5
- package/src/main/js/sap/ushell/renderer/resources/resources_lt.properties +3 -3
- package/src/main/js/sap/ushell/renderer/resources/resources_lv.properties +3 -3
- package/src/main/js/sap/ushell/renderer/resources/resources_mk.properties +3 -3
- package/src/main/js/sap/ushell/renderer/resources/resources_ms.properties +3 -3
- package/src/main/js/sap/ushell/renderer/resources/resources_nl.properties +3 -3
- package/src/main/js/sap/ushell/renderer/resources/resources_no.properties +3 -3
- package/src/main/js/sap/ushell/renderer/resources/resources_pl.properties +3 -3
- package/src/main/js/sap/ushell/renderer/resources/resources_pt.properties +3 -3
- package/src/main/js/sap/ushell/renderer/resources/resources_pt_PT.properties +3 -3
- package/src/main/js/sap/ushell/renderer/resources/resources_ro.properties +5 -5
- package/src/main/js/sap/ushell/renderer/resources/resources_ru.properties +3 -3
- package/src/main/js/sap/ushell/renderer/resources/resources_sh.properties +3 -3
- package/src/main/js/sap/ushell/renderer/resources/resources_sk.properties +3 -3
- package/src/main/js/sap/ushell/renderer/resources/resources_sl.properties +3 -3
- package/src/main/js/sap/ushell/renderer/resources/resources_sr.properties +3 -3
- package/src/main/js/sap/ushell/renderer/resources/resources_sv.properties +3 -3
- package/src/main/js/sap/ushell/renderer/resources/resources_th.properties +6 -6
- package/src/main/js/sap/ushell/renderer/resources/resources_tr.properties +3 -3
- package/src/main/js/sap/ushell/renderer/resources/resources_uk.properties +13 -13
- package/src/main/js/sap/ushell/renderer/resources/resources_vi.properties +3 -3
- package/src/main/js/sap/ushell/renderer/resources/resources_zh_CN.properties +3 -3
- package/src/main/js/sap/ushell/renderer/resources/resources_zh_TW.properties +3 -3
- package/src/main/js/sap/ushell/renderer/search/searchComponent/manifest.json +1 -1
- package/src/main/js/sap/ushell/renderer/shellHeader/ShellHeader.controller.js +0 -14
- package/src/main/js/sap/ushell/renderer/shellHeader/ShellHeader.fragment.xml +0 -1
- package/src/main/js/sap/ushell/services/AppConfiguration.js +5 -63
- package/src/main/js/sap/ushell/services/AppLifeCycle.js +2 -2
- 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 +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/ClientSideTargetResolution.js +5 -5
- 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/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 +13 -13
- package/src/main/js/sap/ushell/services/DarkModeSupport.js +1 -1
- package/src/main/js/sap/ushell/services/Extension/Item.js +1 -1
- package/src/main/js/sap/ushell/services/Extension.js +1 -1
- package/src/main/js/sap/ushell/services/FlpLaunchPage.js +1 -1
- package/src/main/js/sap/ushell/services/FrameBoundExtension/FloatingContainer.js +1 -1
- package/src/main/js/sap/ushell/services/FrameBoundExtension/Footer.js +1 -1
- package/src/main/js/sap/ushell/services/FrameBoundExtension/Item.js +1 -1
- package/src/main/js/sap/ushell/services/FrameBoundExtension/SidePane.js +1 -1
- package/src/main/js/sap/ushell/services/FrameBoundExtension/ToolArea.js +1 -1
- package/src/main/js/sap/ushell/services/FrameBoundExtension/UserSettingsEntry.js +1 -1
- package/src/main/js/sap/ushell/services/FrameBoundExtension.js +1 -1
- 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/MessageBrokerEngine.js +3 -3
- package/src/main/js/sap/ushell/services/MessageBroker.js +3 -3
- package/src/main/js/sap/ushell/services/MessageInternal.js +1 -1
- package/src/main/js/sap/ushell/services/NavTargetResolutionInternal.js +3 -3
- package/src/main/js/sap/ushell/services/Navigation/compatibility.js +1 -1
- package/src/main/js/sap/ushell/services/Navigation/utils.js +1 -1
- package/src/main/js/sap/ushell/services/Navigation.js +20 -20
- package/src/main/js/sap/ushell/services/NavigationDataProvider.js +1 -1
- 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 +1 -1
- package/src/main/js/sap/ushell/services/Personalization.js +1 -1
- package/src/main/js/sap/ushell/services/PersonalizationV2.js +1 -1
- package/src/main/js/sap/ushell/services/PluginManager/SimpleExpression.js +1 -1
- package/src/main/js/sap/ushell/services/PluginManager.js +2 -5
- 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 +6 -7
- package/src/main/js/sap/ushell/services/SearchableContent.js +3 -5
- package/src/main/js/sap/ushell/services/ShellNavigation.js +1 -1
- package/src/main/js/sap/ushell/services/ShellNavigationHashChanger.js +52 -73
- package/src/main/js/sap/ushell/services/SmartNavigation.js +1 -1
- package/src/main/js/sap/ushell/services/SpaceContent.js +1 -1
- package/src/main/js/sap/ushell/services/UITracer.js +1 -1
- package/src/main/js/sap/ushell/services/URLParsing.js +65 -47
- 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 +2 -10
- 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 +1 -1
- package/src/main/js/sap/ushell/services/UserRecents/RecentActivity.js +2 -2
- package/src/main/js/sap/ushell/services/UserRecents/RecentsList.js +1 -1
- package/src/main/js/sap/ushell/services/UserRecents.js +5 -5
- 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/_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/_PageReferencing/PageReferencer.js +1 -1
- package/src/main/js/sap/ushell/state/StateManager.js +9 -4
- package/src/main/js/sap/ushell/state/modules/BackNavigation.js +1 -1
- package/src/main/js/sap/ushell/state/modules/ContentDensity.js +1 -1
- package/src/main/js/sap/ushell/state/modules/Favicon.js +1 -1
- package/src/main/js/sap/ushell/state/modules/HeaderLogo.js +1 -1
- package/src/main/js/sap/ushell/support/plugins/flpConfig/FlpConfigurationPlugin.js +1 -1
- package/src/main/js/sap/ushell/themes/base/ApplicationContainer.less +0 -9
- package/src/main/js/sap/ushell/themes/base/ShellHeader.less +0 -14
- package/src/main/js/sap/ushell/themes/sap_belize_base/ApplicationContainer.less +0 -9
- package/src/main/js/sap/ushell/themes/sap_belize_base/ShellHeader.less +0 -14
- package/src/main/js/sap/ushell/themes/sap_bluecrystal_base/ApplicationContainer.less +0 -9
- package/src/main/js/sap/ushell/themes/sap_bluecrystal_base/ShellHeader.less +0 -14
- package/src/main/js/sap/ushell/themes/sap_hcb/base_ApplicationContainer.less +0 -9
- package/src/main/js/sap/ushell/themes/sap_hcb/base_ShellHeader.less +0 -14
- package/src/main/js/sap/ushell/ui/ShellHeader.js +4 -29
- package/src/main/js/sap/ushell/ui/ShellHeaderRenderer.js +0 -14
- package/src/main/js/sap/ushell/ui/cards/FrequentActivitiesExtension.js +11 -11
- package/src/main/js/sap/ushell/ui/cards/RecentActivitiesExtension.js +12 -12
- 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/VizInstance.js +113 -22
- 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/ShellUIServiceFactory.js +1 -1
- package/src/main/js/sap/ushell/ui5service/UserStatus.js +1 -1
- package/src/main/js/sap/ushell/utils/SmartBusiness.js +39 -2
- package/src/main/js/sap/ushell/utils/UrlParsing.js +335 -208
- package/src/main/js/sap/ushell/utils/UrlShortening.js +1 -1
- package/src/main/js/sap/ushell/utils/workpage/WorkPageHost.js +1 -1
- package/src/main/js/sap/ushell/utils/workpage/WorkPageService.js +1 -1
- package/src/main/js/sap/ushell/utils/workpage/WorkPageVizInstantiation.js +1 -1
- package/src/main/js/sap/ushell/utils.js +26 -22
- package/src/test/js/sap/ushell/bootstrap/sandbox.js +1 -1
- package/ui5.yaml +0 -2
- package/src/main/js/sap/ushell/services/PluginManager/Extensions.js +0 -58
- package/src/main/js/sap/ushell/services/PluginManager/HeaderExtensions.js +0 -35
- package/src/main/js/sap/ushell/services/PluginManager/MenuExtensions.js +0 -65
|
@@ -15,6 +15,7 @@
|
|
|
15
15
|
sap.ui.define([
|
|
16
16
|
"sap/ui/thirdparty/URI",
|
|
17
17
|
"sap/base/Log",
|
|
18
|
+
"sap/base/util/deepClone",
|
|
18
19
|
"sap/base/util/deepEqual",
|
|
19
20
|
"sap/base/util/merge",
|
|
20
21
|
"sap/ushell/TechnicalParameters",
|
|
@@ -22,6 +23,7 @@ sap.ui.define([
|
|
|
22
23
|
], (
|
|
23
24
|
URI,
|
|
24
25
|
Log,
|
|
26
|
+
deepClone,
|
|
25
27
|
deepEqual,
|
|
26
28
|
merge,
|
|
27
29
|
TechnicalParameters,
|
|
@@ -100,7 +102,6 @@ sap.ui.define([
|
|
|
100
102
|
if (match) {
|
|
101
103
|
return match[1];
|
|
102
104
|
}
|
|
103
|
-
return undefined;
|
|
104
105
|
};
|
|
105
106
|
|
|
106
107
|
/**
|
|
@@ -117,7 +118,6 @@ sap.ui.define([
|
|
|
117
118
|
if (match) {
|
|
118
119
|
return match[1];
|
|
119
120
|
}
|
|
120
|
-
return undefined;
|
|
121
121
|
};
|
|
122
122
|
|
|
123
123
|
/**
|
|
@@ -192,11 +192,11 @@ sap.ui.define([
|
|
|
192
192
|
}
|
|
193
193
|
}
|
|
194
194
|
// sUrl is to be processed by our launchpad
|
|
195
|
-
const sHash =
|
|
195
|
+
const sHash = this.getHash(sUrl);
|
|
196
196
|
if (!sHash) {
|
|
197
197
|
return false;
|
|
198
198
|
}
|
|
199
|
-
const oParsedHash =
|
|
199
|
+
const oParsedHash = this.parseShellHash(sHash);
|
|
200
200
|
if (oParsedHash && oParsedHash.semanticObject && oParsedHash.action) {
|
|
201
201
|
return true;
|
|
202
202
|
}
|
|
@@ -232,47 +232,6 @@ sap.ui.define([
|
|
|
232
232
|
}
|
|
233
233
|
};
|
|
234
234
|
|
|
235
|
-
/**
|
|
236
|
-
* Combines members of a JavaScript object into a parameter string.
|
|
237
|
-
* Parameters are ordered in an arbitrary manner which might change.
|
|
238
|
-
*
|
|
239
|
-
* @param {object} parameters The parameter object, e.g. <code>{ ABC: [1, "1 2"], DEF: ["4"] }</code>.
|
|
240
|
-
* @param {string} delimiter The parameter delimiter. Default is "&".
|
|
241
|
-
* @param {string} assign The parameter assignment. Default is "=".
|
|
242
|
-
* @returns {string} The result parameter string, e.g. <code>ABC=1&ABC=1%202&DEF=4</code>.
|
|
243
|
-
* The result is *not* prefixed with a "?". Parameter values are URI encoded.
|
|
244
|
-
* @since 1.94.0
|
|
245
|
-
* @private
|
|
246
|
-
*/
|
|
247
|
-
function _urlParametersToString (parameters, delimiter, assign) {
|
|
248
|
-
let shellPart = "";
|
|
249
|
-
|
|
250
|
-
delimiter = delimiter || "&";
|
|
251
|
-
assign = assign || "=";
|
|
252
|
-
|
|
253
|
-
let first = "";
|
|
254
|
-
const lst = [];
|
|
255
|
-
for (const a in parameters) {
|
|
256
|
-
if (parameters.hasOwnProperty(a)) {
|
|
257
|
-
lst.push(a);
|
|
258
|
-
}
|
|
259
|
-
}
|
|
260
|
-
lst.sort();
|
|
261
|
-
for (let k = 0; k < lst.length; k = k + 1) {
|
|
262
|
-
const a = lst[k];
|
|
263
|
-
if (Array.isArray(parameters[a])) {
|
|
264
|
-
for (let i = 0; i < parameters[a].length; i = i + 1) {
|
|
265
|
-
shellPart += first + encodeURIComponent(a) + assign + encodeURIComponent(parameters[a][i]);
|
|
266
|
-
first = delimiter;
|
|
267
|
-
}
|
|
268
|
-
} else {
|
|
269
|
-
shellPart += first + encodeURIComponent(a) + assign + encodeURIComponent(parameters[a]);
|
|
270
|
-
first = delimiter;
|
|
271
|
-
}
|
|
272
|
-
}
|
|
273
|
-
return shellPart;
|
|
274
|
-
}
|
|
275
|
-
|
|
276
235
|
/**
|
|
277
236
|
* combine members of a javascript object into a parameter string,
|
|
278
237
|
* note that parameters are ordered in an arbitrary manner which is subject to change
|
|
@@ -284,7 +243,7 @@ sap.ui.define([
|
|
|
284
243
|
* @protected
|
|
285
244
|
*/
|
|
286
245
|
UrlParsing.paramsToString = function (oParams) {
|
|
287
|
-
return
|
|
246
|
+
return this.urlParametersToString(oParams);
|
|
288
247
|
};
|
|
289
248
|
|
|
290
249
|
/**
|
|
@@ -312,33 +271,60 @@ sap.ui.define([
|
|
|
312
271
|
};
|
|
313
272
|
|
|
314
273
|
/**
|
|
315
|
-
*
|
|
274
|
+
* Combines members of a JavaScript object into a parameter string.
|
|
275
|
+
* Parameters are ordered in an arbitrary manner which might change.
|
|
316
276
|
*
|
|
317
|
-
* @param {object}
|
|
318
|
-
* @param {string} sDelimiter
|
|
319
|
-
* @param {string} sAssign
|
|
320
|
-
* @returns {string}
|
|
277
|
+
* @param {object} oParameters The parameter object, e.g. <code>{ ABC: [1, "1 2"], DEF: ["4"] }</code>.
|
|
278
|
+
* @param {string} sDelimiter The parameter delimiter. Default is "&".
|
|
279
|
+
* @param {string} sAssign The parameter assignment. Default is "=".
|
|
280
|
+
* @returns {string} The result parameter string, e.g. <code>ABC=1&ABC=1%202&DEF=4</code>.
|
|
281
|
+
* The result is *not* prefixed with a "?". Parameter values are URI encoded.
|
|
321
282
|
* @since 1.94.0
|
|
322
283
|
* @private
|
|
323
284
|
*/
|
|
324
|
-
UrlParsing.urlParametersToString = function (
|
|
325
|
-
|
|
285
|
+
UrlParsing.urlParametersToString = function (oParameters, sDelimiter, sAssign) {
|
|
286
|
+
let sShellPart = "";
|
|
287
|
+
|
|
288
|
+
sDelimiter = sDelimiter || "&";
|
|
289
|
+
sAssign = sAssign || "=";
|
|
290
|
+
|
|
291
|
+
let sFirst = "";
|
|
292
|
+
const aParameterKeys = [];
|
|
293
|
+
for (const sKey in oParameters) {
|
|
294
|
+
if (oParameters.hasOwnProperty(sKey)) {
|
|
295
|
+
aParameterKeys.push(sKey);
|
|
296
|
+
}
|
|
297
|
+
}
|
|
298
|
+
aParameterKeys.sort();
|
|
299
|
+
for (let k = 0; k < aParameterKeys.length; k = k + 1) {
|
|
300
|
+
const sKey = aParameterKeys[k];
|
|
301
|
+
if (Array.isArray(oParameters[sKey])) {
|
|
302
|
+
for (let i = 0; i < oParameters[sKey].length; i = i + 1) {
|
|
303
|
+
sShellPart += sFirst + encodeURIComponent(sKey) + sAssign + encodeURIComponent(oParameters[sKey][i]);
|
|
304
|
+
sFirst = sDelimiter;
|
|
305
|
+
}
|
|
306
|
+
} else {
|
|
307
|
+
sShellPart += sFirst + encodeURIComponent(sKey) + sAssign + encodeURIComponent(oParameters[sKey]);
|
|
308
|
+
sFirst = sDelimiter;
|
|
309
|
+
}
|
|
310
|
+
}
|
|
311
|
+
return sShellPart;
|
|
326
312
|
};
|
|
327
313
|
|
|
328
314
|
/**
|
|
329
315
|
* adds parameter to a url
|
|
330
316
|
* which can be relative or a hash
|
|
331
|
-
* @param {string}
|
|
317
|
+
* @param {string} sUrlOrHash "url" which can be relative or a hash
|
|
332
318
|
* @param {object} oUrlParams Url parameter
|
|
333
319
|
* @returns {string} new url with the parameters
|
|
334
320
|
* @since 1.131.0
|
|
335
321
|
*
|
|
336
322
|
*/
|
|
337
|
-
UrlParsing.addParamsToUrl = function (
|
|
338
|
-
const oUri = new URI(
|
|
323
|
+
UrlParsing.addParamsToUrl = function (sUrlOrHash, oUrlParams) {
|
|
324
|
+
const oUri = new URI(sUrlOrHash);
|
|
339
325
|
Object.keys(oUrlParams)
|
|
340
|
-
.forEach((
|
|
341
|
-
oUri.addSearch(
|
|
326
|
+
.forEach((sKey)=>{
|
|
327
|
+
oUri.addSearch(sKey, oUrlParams[sKey]);
|
|
342
328
|
});
|
|
343
329
|
return oUri.toString();
|
|
344
330
|
};
|
|
@@ -346,29 +332,29 @@ sap.ui.define([
|
|
|
346
332
|
/**
|
|
347
333
|
* add parameters of the shell specific part to the URL or hash
|
|
348
334
|
* makes sure they are before the app specific hash
|
|
349
|
-
* @param {string}
|
|
335
|
+
* @param {string} sUrlOrHash Url can be relative or a hash
|
|
350
336
|
* @param {object} oShellParams Shell parameters
|
|
351
337
|
* @returns {string} url with added parameters
|
|
352
338
|
*
|
|
353
339
|
* @since 1.131.0
|
|
354
340
|
*
|
|
355
341
|
*/
|
|
356
|
-
UrlParsing.addShellParamsToURL = function (
|
|
357
|
-
const oURI = new URI(
|
|
342
|
+
UrlParsing.addShellParamsToURL = function (sUrlOrHash, oShellParams) {
|
|
343
|
+
const oURI = new URI(sUrlOrHash);
|
|
358
344
|
|
|
359
345
|
// split hash into shell part and app specific route
|
|
360
346
|
const sHashPart = oURI.hash();
|
|
361
347
|
const sBeforeHashPart = oURI.toString().replace(sHashPart, "");
|
|
362
348
|
|
|
363
349
|
// merge the parameters
|
|
364
|
-
const oParseHash =
|
|
350
|
+
const oParseHash = this.parseShellHash(sHashPart) || {};
|
|
365
351
|
Object.assign(oParseHash.params, oShellParams.params);
|
|
366
352
|
|
|
367
353
|
// now put it back together
|
|
368
354
|
|
|
369
355
|
// new hash
|
|
370
356
|
// construct Shell Hash
|
|
371
|
-
const sNewHash = `#${
|
|
357
|
+
const sNewHash = `#${this.constructShellHash(oParseHash)}`;
|
|
372
358
|
|
|
373
359
|
return sBeforeHashPart + sNewHash;
|
|
374
360
|
};
|
|
@@ -379,6 +365,7 @@ sap.ui.define([
|
|
|
379
365
|
* @param {string} sHash Hash part of a shell compliant URL
|
|
380
366
|
* <code>#SO-Action~Context?P1=a&P2=x&/route?RPV=1</code> the hash part of an URL, <br/>
|
|
381
367
|
* e.g. <code>"#Object-name~AFE2==?PV1=PV2&PV4=V5&/display/detail/7?UU=HH</code>
|
|
368
|
+
* @param {boolean} [bReturnEmpty=false] Return an empty parsed hash object instead of undefined
|
|
382
369
|
* @returns {object} <code>undefined</code> if not a parseable hash<br/>
|
|
383
370
|
* <pre>
|
|
384
371
|
* {
|
|
@@ -393,13 +380,16 @@ sap.ui.define([
|
|
|
393
380
|
* @since 1.94.0
|
|
394
381
|
* @protected
|
|
395
382
|
*/
|
|
396
|
-
UrlParsing.parseShellHash = function (sHash) {
|
|
383
|
+
UrlParsing.parseShellHash = function (sHash, bReturnEmpty) {
|
|
397
384
|
const re = reValidShellPart;
|
|
398
385
|
if (!sHash) {
|
|
399
|
-
|
|
386
|
+
if (bReturnEmpty) {
|
|
387
|
+
return this.getEmptyParsedHash();
|
|
388
|
+
}
|
|
389
|
+
return;
|
|
400
390
|
}
|
|
401
391
|
// split shell-hash and app-specific parts first
|
|
402
|
-
const oSplitHash =
|
|
392
|
+
const oSplitHash = this.splitHash(sHash);
|
|
403
393
|
|
|
404
394
|
const match = re.exec(oSplitHash.shellPart);
|
|
405
395
|
if (match) {
|
|
@@ -407,12 +397,12 @@ sap.ui.define([
|
|
|
407
397
|
const sAction = match[3];
|
|
408
398
|
const sContext = match[5];
|
|
409
399
|
const sParams = match[6];
|
|
410
|
-
const
|
|
400
|
+
const oParsedParams = this.parseParameters(sParams);
|
|
411
401
|
return {
|
|
412
402
|
semanticObject: sSemanticObject,
|
|
413
403
|
action: sAction,
|
|
414
404
|
contextRaw: sContext,
|
|
415
|
-
params:
|
|
405
|
+
params: oParsedParams,
|
|
416
406
|
appSpecificRoute: oSplitHash.appSpecificRoute
|
|
417
407
|
};
|
|
418
408
|
}
|
|
@@ -425,7 +415,27 @@ sap.ui.define([
|
|
|
425
415
|
appSpecificRoute: oSplitHash.appSpecificRoute
|
|
426
416
|
};
|
|
427
417
|
}
|
|
428
|
-
|
|
418
|
+
if (bReturnEmpty) {
|
|
419
|
+
return this.getEmptyParsedHash();
|
|
420
|
+
}
|
|
421
|
+
};
|
|
422
|
+
|
|
423
|
+
/**
|
|
424
|
+
* Returns an empty parsed hash.
|
|
425
|
+
* This is useful to have a consistent empty object instead of "undefined"
|
|
426
|
+
* @returns {object} empty parsed hash
|
|
427
|
+
*
|
|
428
|
+
* @since 1.142.0
|
|
429
|
+
* @private
|
|
430
|
+
*/
|
|
431
|
+
UrlParsing.getEmptyParsedHash = function () {
|
|
432
|
+
return {
|
|
433
|
+
semanticObject: undefined,
|
|
434
|
+
action: undefined,
|
|
435
|
+
contextRaw: undefined,
|
|
436
|
+
params: {},
|
|
437
|
+
appSpecificRoute: undefined
|
|
438
|
+
};
|
|
429
439
|
};
|
|
430
440
|
|
|
431
441
|
/**
|
|
@@ -436,11 +446,12 @@ sap.ui.define([
|
|
|
436
446
|
* @since 1.94.0
|
|
437
447
|
* @private
|
|
438
448
|
*/
|
|
439
|
-
UrlParsing.
|
|
440
|
-
if (sHash
|
|
441
|
-
return sHash
|
|
449
|
+
UrlParsing.stripLeadingHash = function (sHash) {
|
|
450
|
+
if (!sHash.startsWith("#")) {
|
|
451
|
+
return sHash;
|
|
442
452
|
}
|
|
443
|
-
|
|
453
|
+
|
|
454
|
+
return sHash.substring(1);
|
|
444
455
|
};
|
|
445
456
|
|
|
446
457
|
/**
|
|
@@ -453,32 +464,13 @@ sap.ui.define([
|
|
|
453
464
|
*/
|
|
454
465
|
UrlParsing.ensureLeadingHash = function (sHash) {
|
|
455
466
|
if (!sHash) {
|
|
456
|
-
|
|
457
|
-
} else if (sHash.charAt(0) !== "#") {
|
|
458
|
-
sHash = `#${sHash}`;
|
|
467
|
+
return "#";
|
|
459
468
|
}
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
/**
|
|
464
|
-
* Reduces a hash to the semantic object and action part.
|
|
465
|
-
* Does not include the leading '#'.
|
|
466
|
-
* Returns empty string if the hash is not parseable.
|
|
467
|
-
*
|
|
468
|
-
* @param {string} sHash Shell hash.
|
|
469
|
-
* @returns {string} The basic hash.
|
|
470
|
-
*
|
|
471
|
-
* @since 1.129.0
|
|
472
|
-
* @private
|
|
473
|
-
*/
|
|
474
|
-
UrlParsing.getBasicHash = function (sHash) {
|
|
475
|
-
const oShellHash = this.parseShellHash(sHash);
|
|
476
|
-
|
|
477
|
-
if (!oShellHash) {
|
|
478
|
-
return "";
|
|
469
|
+
if (sHash.startsWith("#")) {
|
|
470
|
+
return sHash;
|
|
479
471
|
}
|
|
480
472
|
|
|
481
|
-
return
|
|
473
|
+
return `#${sHash}`;
|
|
482
474
|
};
|
|
483
475
|
|
|
484
476
|
/**
|
|
@@ -524,21 +516,90 @@ sap.ui.define([
|
|
|
524
516
|
return {};
|
|
525
517
|
};
|
|
526
518
|
|
|
527
|
-
function appendIf (sUrl,
|
|
528
|
-
if (
|
|
529
|
-
return sUrl +
|
|
519
|
+
function appendIf (sUrl, sPostfix) {
|
|
520
|
+
if (sPostfix) {
|
|
521
|
+
return sUrl + sPostfix;
|
|
522
|
+
}
|
|
523
|
+
return sUrl;
|
|
524
|
+
}
|
|
525
|
+
|
|
526
|
+
function prependIf (sPrefix, sUrl) {
|
|
527
|
+
if (sPrefix) {
|
|
528
|
+
return sPrefix + sUrl;
|
|
530
529
|
}
|
|
531
530
|
return sUrl;
|
|
532
531
|
}
|
|
533
532
|
|
|
533
|
+
/**
|
|
534
|
+
* Harmonizes the shell hash by ensuring it has all required properties.
|
|
535
|
+
* The result is compliant with {@link #parseShellHash}.
|
|
536
|
+
* Clones the input object.
|
|
537
|
+
*
|
|
538
|
+
* @param {sap.ushell.services.URLParsing.ShellHash} oShellHash The shell hash to harmonize
|
|
539
|
+
* @returns {sap.ushell.services.URLParsing.DecomposedHash} The hash in the decomposed format.
|
|
540
|
+
*
|
|
541
|
+
* @since 1.142.0
|
|
542
|
+
* @private
|
|
543
|
+
*/
|
|
544
|
+
UrlParsing._harmonizeShellHash = function (oShellHash) {
|
|
545
|
+
if (!oShellHash) {
|
|
546
|
+
return this.getEmptyParsedHash();
|
|
547
|
+
}
|
|
548
|
+
const oShellHashClone = deepClone(oShellHash);
|
|
549
|
+
|
|
550
|
+
// map target to decomposed hash properties
|
|
551
|
+
if (oShellHash.target) {
|
|
552
|
+
if (typeof oShellHash.target.shellHash === "string") {
|
|
553
|
+
const oParsedHash = this.parseShellHash(
|
|
554
|
+
appendIf(
|
|
555
|
+
oShellHash.target.shellHash,
|
|
556
|
+
oShellHash.appSpecificRoute
|
|
557
|
+
)
|
|
558
|
+
);
|
|
559
|
+
return oParsedHash || this.getEmptyParsedHash();
|
|
560
|
+
}
|
|
561
|
+
|
|
562
|
+
oShellHashClone.semanticObject = oShellHash.target.semanticObject;
|
|
563
|
+
oShellHashClone.action = oShellHash.target.action;
|
|
564
|
+
oShellHashClone.contextRaw = oShellHash.target.contextRaw;
|
|
565
|
+
}
|
|
566
|
+
|
|
567
|
+
// ensure params values are arrays
|
|
568
|
+
if (oShellHashClone.params) {
|
|
569
|
+
for (const sKey in oShellHashClone.params) {
|
|
570
|
+
const vValue = oShellHashClone.params[sKey];
|
|
571
|
+
if (!Array.isArray(vValue)) {
|
|
572
|
+
oShellHashClone.params[sKey] = [vValue];
|
|
573
|
+
}
|
|
574
|
+
}
|
|
575
|
+
} else {
|
|
576
|
+
oShellHashClone.params = {};
|
|
577
|
+
}
|
|
578
|
+
|
|
579
|
+
if (oShellHashClone.appStateKey) {
|
|
580
|
+
oShellHashClone.params["sap-xapp-state"] = [oShellHashClone.appStateKey];
|
|
581
|
+
}
|
|
582
|
+
|
|
583
|
+
// strip unallowed properties
|
|
584
|
+
const aAllowedProperties = [
|
|
585
|
+
"semanticObject",
|
|
586
|
+
"action",
|
|
587
|
+
"contextRaw",
|
|
588
|
+
"params",
|
|
589
|
+
"appSpecificRoute"
|
|
590
|
+
];
|
|
591
|
+
for (const sKey in oShellHashClone) {
|
|
592
|
+
if (!aAllowedProperties.includes(sKey)) {
|
|
593
|
+
delete oShellHashClone[sKey];
|
|
594
|
+
}
|
|
595
|
+
}
|
|
596
|
+
|
|
597
|
+
return oShellHashClone;
|
|
598
|
+
};
|
|
599
|
+
|
|
534
600
|
/**
|
|
535
601
|
* compose a shell Hash from it's respective parts
|
|
536
602
|
* Note that it also may append an app specific route !
|
|
537
|
-
*
|
|
538
|
-
* @returns {string} the hash part of an URL, e.g. <code>"Object-name~AFE2==?PV1=PV2&PV4=V5&/display/detail/7?UU=HH</code>
|
|
539
|
-
* returns "" for an undefined object
|
|
540
|
-
* @param {object} oShellHash The action must be a valid action, it may not contain "?" or directly a parameter string
|
|
541
|
-
* <code>undefined</code> if not a parseable hash
|
|
542
603
|
* <pre>
|
|
543
604
|
* {
|
|
544
605
|
* target: {
|
|
@@ -551,67 +612,123 @@ sap.ui.define([
|
|
|
551
612
|
* appSpecificRoute: string
|
|
552
613
|
* }
|
|
553
614
|
* </pre>
|
|
554
|
-
*
|
|
555
|
-
*
|
|
556
|
-
*
|
|
615
|
+
* <code>{ target: { shellHash } }</code>
|
|
616
|
+
* Note: in general it is preferred to add an appStateKey directly to the params object
|
|
617
|
+
*
|
|
618
|
+
* @param {sap.ushell.services.URLParsing.ShellHash} oShellHash
|
|
619
|
+
* The action must be a valid action, it may not contain "?" or directly a parameter string
|
|
620
|
+
* @param {boolean} [bPrefixWithHash=false] if true, the result is prefixed with a leading #
|
|
621
|
+
* @returns {string} the hash part of an URL, e.g. <code>"Object-name~AFE2==?PV1=PV2&PV4=V5&/display/detail/7?UU=HH</code>
|
|
622
|
+
* returns "" for an <code>undefined</code> object
|
|
623
|
+
*
|
|
557
624
|
* @since 1.94.0
|
|
558
625
|
* @protected
|
|
559
626
|
*/
|
|
560
|
-
UrlParsing.constructShellHash = function (oShellHash) {
|
|
561
|
-
|
|
562
|
-
|
|
563
|
-
|
|
564
|
-
|
|
565
|
-
|
|
566
|
-
|
|
567
|
-
|
|
568
|
-
oShellHash.target.semanticObject = oShellHash.semanticObject;
|
|
569
|
-
oShellHash.target.action = oShellHash.action;
|
|
570
|
-
oShellHash.target.contextRaw = oShellHash.contextRaw;
|
|
571
|
-
}
|
|
572
|
-
if (oShellHash.target.shellHash || oShellHash.target.shellHash === "") {
|
|
573
|
-
const result = UrlParsing.privstripLeadingHash(oShellHash.target.shellHash);
|
|
574
|
-
return appendIf(result, oShellHash.appSpecificRoute);
|
|
627
|
+
UrlParsing.constructShellHash = function (oShellHash, bPrefixWithHash) {
|
|
628
|
+
const oParsedHash = this._harmonizeShellHash(oShellHash);
|
|
629
|
+
|
|
630
|
+
if (!oParsedHash.semanticObject || !oParsedHash.action) {
|
|
631
|
+
return prependIf(
|
|
632
|
+
bPrefixWithHash ? "#" : "",
|
|
633
|
+
appendIf("", oParsedHash.appSpecificRoute)
|
|
634
|
+
);
|
|
575
635
|
}
|
|
576
636
|
|
|
577
|
-
|
|
578
|
-
|
|
579
|
-
|
|
580
|
-
return appendIf("", oShellHash.appSpecificRoute);
|
|
637
|
+
let sConstructedHash = `${oParsedHash.semanticObject}-${oParsedHash.action.replace(/[?].*/, "")}`;
|
|
638
|
+
if (oParsedHash.contextRaw) {
|
|
639
|
+
sConstructedHash += `~${oParsedHash.contextRaw}`;
|
|
581
640
|
}
|
|
582
641
|
|
|
583
|
-
|
|
584
|
-
|
|
585
|
-
|
|
586
|
-
|
|
587
|
-
|
|
588
|
-
|
|
589
|
-
if (oShellHash.params.hasOwnProperty(a)) {
|
|
590
|
-
lst.push(a);
|
|
642
|
+
let sParamPrefix = "?";
|
|
643
|
+
const aParameterKeys = Object.keys(oParsedHash.params).sort();
|
|
644
|
+
for (const sParamKey of aParameterKeys) {
|
|
645
|
+
const aParamValues = oParsedHash.params[sParamKey];
|
|
646
|
+
if (aParamValues.length > 1) {
|
|
647
|
+
Log.error("Array startup parameters violate the designed intent of the Unified Shell Intent, use only single-valued parameters!");
|
|
591
648
|
}
|
|
592
|
-
|
|
593
|
-
|
|
594
|
-
|
|
595
|
-
lst.push("sap-xapp-state");
|
|
596
|
-
paramsCopy["sap-xapp-state"] = oShellHash.appStateKey;
|
|
597
|
-
}
|
|
598
|
-
lst.sort();
|
|
599
|
-
for (let k = 0; k < lst.length; k = k + 1) {
|
|
600
|
-
const a = lst[k];
|
|
601
|
-
if (Array.isArray(paramsCopy[a])) {
|
|
602
|
-
if (paramsCopy[a].length > 1) {
|
|
603
|
-
Log.error("Array startup parameters violate the designed intent of the Unified Shell Intent, use only single-valued parameters!");
|
|
604
|
-
}
|
|
605
|
-
for (let i = 0; i < paramsCopy[a].length; i = i + 1) {
|
|
606
|
-
shellPart += `${first + encodeURIComponent(a)}=${encodeURIComponent(paramsCopy[a][i])}`;
|
|
607
|
-
first = "&";
|
|
608
|
-
}
|
|
609
|
-
} else {
|
|
610
|
-
shellPart += `${first + encodeURIComponent(a)}=${encodeURIComponent(paramsCopy[a])}`;
|
|
611
|
-
first = "&";
|
|
649
|
+
for (const sParamValue of aParamValues) {
|
|
650
|
+
sConstructedHash += `${sParamPrefix + encodeURIComponent(sParamKey)}=${encodeURIComponent(sParamValue)}`;
|
|
651
|
+
sParamPrefix = "&";
|
|
612
652
|
}
|
|
613
653
|
}
|
|
614
|
-
|
|
654
|
+
|
|
655
|
+
return prependIf(
|
|
656
|
+
bPrefixWithHash ? "#" : "",
|
|
657
|
+
appendIf(sConstructedHash, oParsedHash.appSpecificRoute)
|
|
658
|
+
);
|
|
659
|
+
};
|
|
660
|
+
|
|
661
|
+
/**
|
|
662
|
+
* Calculates the stable intent part of the hash
|
|
663
|
+
*
|
|
664
|
+
* Remark: It also sorts the parameters and their values. This can change the interpretation of the hash.
|
|
665
|
+
* Therefore, the stable hash should only be used for comparison or id generation, not for navigation.
|
|
666
|
+
*
|
|
667
|
+
* @param {sap.ushell.services.URLParsing.ShellHash} oShellHash The parsed shell hash
|
|
668
|
+
* @param {boolean} [bPrefixWithHash=false] if true, the result is prefixed with a leading #
|
|
669
|
+
* @returns {string} the stable intent part of the hash
|
|
670
|
+
*
|
|
671
|
+
* @since 1.135.0
|
|
672
|
+
* @private
|
|
673
|
+
*/
|
|
674
|
+
UrlParsing.constructStableHash = function (oShellHash, bPrefixWithHash) {
|
|
675
|
+
const oParsedHash = this._harmonizeShellHash(oShellHash);
|
|
676
|
+
const oParamsWithoutTechnicalParameters = this._removeNonIntentParameters(oParsedHash.params);
|
|
677
|
+
// stabilize the "order" of the parameters and values to make the hash comparison stable
|
|
678
|
+
const oSortedParams = Object.keys(oParamsWithoutTechnicalParameters)
|
|
679
|
+
.sort()
|
|
680
|
+
.reduce((oResult, sKey) => {
|
|
681
|
+
const aValue = oParamsWithoutTechnicalParameters[sKey];
|
|
682
|
+
|
|
683
|
+
aValue.sort();
|
|
684
|
+
oResult[sKey] = aValue;
|
|
685
|
+
return oResult;
|
|
686
|
+
}, {});
|
|
687
|
+
|
|
688
|
+
return this.constructShellHash({
|
|
689
|
+
semanticObject: oParsedHash.semanticObject,
|
|
690
|
+
action: oParsedHash.action,
|
|
691
|
+
contextRaw: oParsedHash.contextRaw,
|
|
692
|
+
params: oSortedParams
|
|
693
|
+
// ignore appSpecificRoute
|
|
694
|
+
}, bPrefixWithHash);
|
|
695
|
+
};
|
|
696
|
+
|
|
697
|
+
/**
|
|
698
|
+
* Reduces a hash to the semantic object and action part.
|
|
699
|
+
*
|
|
700
|
+
* @param {string} sShellHash The shell hash, with or without the leading #
|
|
701
|
+
* @param {boolean} [bPrefixWithHash=false] if true, the result is prefixed with a leading #
|
|
702
|
+
* @returns {string} The basic hash.
|
|
703
|
+
*
|
|
704
|
+
* @since 1.129.0
|
|
705
|
+
* @private
|
|
706
|
+
*/
|
|
707
|
+
UrlParsing.getBasicHash = function (sShellHash, bPrefixWithHash) {
|
|
708
|
+
const oParsedHash = this.parseShellHash(sShellHash) || this.getEmptyParsedHash();
|
|
709
|
+
return this.constructBasicHash(oParsedHash, bPrefixWithHash);
|
|
710
|
+
};
|
|
711
|
+
|
|
712
|
+
/**
|
|
713
|
+
* Reduces a hash to the semantic object and action part.
|
|
714
|
+
*
|
|
715
|
+
* @param {sap.ushell.services.URLParsing.ShellHash} oShellHash The parsed shell hash
|
|
716
|
+
* @param {boolean} [bPrefixWithHash=false] if true, the result is prefixed with a leading #
|
|
717
|
+
* @returns {string} The basic hash.
|
|
718
|
+
*
|
|
719
|
+
* @since 1.129.0
|
|
720
|
+
* @private
|
|
721
|
+
*/
|
|
722
|
+
UrlParsing.constructBasicHash = function (oShellHash, bPrefixWithHash) {
|
|
723
|
+
const oParsedHash = this._harmonizeShellHash(oShellHash);
|
|
724
|
+
|
|
725
|
+
return this.constructShellHash({
|
|
726
|
+
semanticObject: oParsedHash.semanticObject,
|
|
727
|
+
action: oParsedHash.action
|
|
728
|
+
// ignore contextRaw
|
|
729
|
+
// ignore params
|
|
730
|
+
// ignore appSpecificRoute
|
|
731
|
+
}, bPrefixWithHash);
|
|
615
732
|
};
|
|
616
733
|
|
|
617
734
|
/**
|
|
@@ -625,12 +742,27 @@ sap.ui.define([
|
|
|
625
742
|
* @private
|
|
626
743
|
*/
|
|
627
744
|
UrlParsing.compareHashes = function (sHash1, sHash2) {
|
|
628
|
-
const
|
|
629
|
-
const
|
|
745
|
+
const oHash1 = this.parseShellHash(sHash1) || {};
|
|
746
|
+
const oHash2 = this.parseShellHash(sHash2) || {};
|
|
747
|
+
|
|
748
|
+
return this.compareParsedHashes(oHash1, oHash2);
|
|
749
|
+
};
|
|
750
|
+
|
|
751
|
+
/**
|
|
752
|
+
* Calculates the similarities of the hashes
|
|
753
|
+
*
|
|
754
|
+
* @param {sap.ushell.services.URLParsing.DecomposedHash} oHash1 The first hash
|
|
755
|
+
* @param {sap.ushell.services.URLParsing.DecomposedHash} oHash2 The second hash
|
|
756
|
+
* @returns {sap.ushell.utils.URLParsing.HashComparison} A object describing the similarities
|
|
757
|
+
*
|
|
758
|
+
* @since 1.142.0
|
|
759
|
+
* @private
|
|
760
|
+
*/
|
|
761
|
+
UrlParsing.compareParsedHashes = function (oHash1, oHash2) {
|
|
630
762
|
return {
|
|
631
|
-
sameIntent: this.haveSameIntent(
|
|
632
|
-
sameParameters: this.haveSameIntentParameters(
|
|
633
|
-
sameAppSpecificRoute:
|
|
763
|
+
sameIntent: this.haveSameIntent(oHash1, oHash2),
|
|
764
|
+
sameParameters: this.haveSameIntentParameters(oHash1, oHash2),
|
|
765
|
+
sameAppSpecificRoute: oHash1.appSpecificRoute === oHash2.appSpecificRoute
|
|
634
766
|
};
|
|
635
767
|
};
|
|
636
768
|
|
|
@@ -638,8 +770,8 @@ sap.ui.define([
|
|
|
638
770
|
* Determines whether two hash fragments have the same intent during an
|
|
639
771
|
* app-to-app navigation.
|
|
640
772
|
*
|
|
641
|
-
* @param {sap.ushell.services.URLParsing.DecomposedHash}
|
|
642
|
-
* @param {sap.ushell.services.URLParsing.DecomposedHash}
|
|
773
|
+
* @param {sap.ushell.services.URLParsing.DecomposedHash} oParsedHash1 The first hash split by parseShellHash
|
|
774
|
+
* @param {sap.ushell.services.URLParsing.DecomposedHash} oParsedHash2 The second hash split by parseShellHash
|
|
643
775
|
*
|
|
644
776
|
* @returns {boolean}
|
|
645
777
|
* Whether two hash fragments have the same semantic object and action
|
|
@@ -648,68 +780,35 @@ sap.ui.define([
|
|
|
648
780
|
* @since 1.128.0
|
|
649
781
|
* @private
|
|
650
782
|
*/
|
|
651
|
-
UrlParsing.haveSameIntent = function (
|
|
652
|
-
|
|
653
|
-
|
|
654
|
-
return
|
|
655
|
-
|
|
656
|
-
|
|
783
|
+
UrlParsing.haveSameIntent = function (oParsedHash1, oParsedHash2) {
|
|
784
|
+
oParsedHash1 = oParsedHash1 || {};
|
|
785
|
+
oParsedHash2 = oParsedHash2 || {};
|
|
786
|
+
return oParsedHash1.semanticObject === oParsedHash2.semanticObject
|
|
787
|
+
&& oParsedHash1.action === oParsedHash2.action
|
|
788
|
+
&& oParsedHash1.contextRaw === oParsedHash2.contextRaw;
|
|
657
789
|
};
|
|
658
790
|
|
|
659
791
|
/**
|
|
660
792
|
* Determines whether two sets of parameters have the same intent parameters.
|
|
661
793
|
*
|
|
662
|
-
* @param {sap.ushell.services.URLParsing.DecomposedHash}
|
|
663
|
-
* @param {sap.ushell.services.URLParsing.DecomposedHash}
|
|
794
|
+
* @param {sap.ushell.services.URLParsing.DecomposedHash} oParsedHash1 The first hash split by parseShellHash
|
|
795
|
+
* @param {sap.ushell.services.URLParsing.DecomposedHash} oParsedHash2 The second hash split by parseShellHash
|
|
664
796
|
* @returns {boolean} Whether the two given set of parameters have the same intent parameters.
|
|
665
797
|
*
|
|
666
798
|
* @since 1.128.0
|
|
667
799
|
* @private
|
|
668
800
|
*/
|
|
669
|
-
UrlParsing.haveSameIntentParameters = function (
|
|
670
|
-
|
|
671
|
-
|
|
672
|
-
const oParams1Copy = merge({},
|
|
673
|
-
const oParams2Copy = merge({},
|
|
801
|
+
UrlParsing.haveSameIntentParameters = function (oParsedHash1, oParsedHash2) {
|
|
802
|
+
oParsedHash1 = oParsedHash1 || {};
|
|
803
|
+
oParsedHash2 = oParsedHash2 || {};
|
|
804
|
+
const oParams1Copy = merge({}, oParsedHash1.params);
|
|
805
|
+
const oParams2Copy = merge({}, oParsedHash2.params);
|
|
674
806
|
return !this._parametersChanged(
|
|
675
807
|
this._removeNonIntentParameters(oParams1Copy),
|
|
676
808
|
this._removeNonIntentParameters(oParams2Copy)
|
|
677
809
|
);
|
|
678
810
|
};
|
|
679
811
|
|
|
680
|
-
/**
|
|
681
|
-
* Calculates the stable intent part of the hash
|
|
682
|
-
* @param {string} sHash Hash part of a shell compliant URL
|
|
683
|
-
* <code>#SO-Action~Context?P1=a&P2=x&/route?RPV=1</code> the hash part of an URL, <br/>
|
|
684
|
-
* e.g. <code>"#Object-name~AFE2==?PV1=PV2&PV4=V5&/display/detail/7?UU=HH</code>
|
|
685
|
-
* @returns {string} the stable intent part of the hash
|
|
686
|
-
*
|
|
687
|
-
* @since 1.135.0
|
|
688
|
-
* @private
|
|
689
|
-
*/
|
|
690
|
-
UrlParsing.getStableIntent = function (sHash) {
|
|
691
|
-
const oHash = this.parseShellHash(sHash) || {};
|
|
692
|
-
const oParamsWithoutTechnicalParameters = this._removeNonIntentParameters(oHash.params);
|
|
693
|
-
// stabilize the "order" of the parameters and values to make the hash comparison stable
|
|
694
|
-
const oSortedParams = Object.keys(oParamsWithoutTechnicalParameters)
|
|
695
|
-
.sort()
|
|
696
|
-
.reduce((oResult, sKey) => {
|
|
697
|
-
const aValue = oParamsWithoutTechnicalParameters[sKey];
|
|
698
|
-
aValue.sort();
|
|
699
|
-
oResult[sKey] = aValue;
|
|
700
|
-
return oResult;
|
|
701
|
-
}, {});
|
|
702
|
-
return this.constructShellHash({
|
|
703
|
-
target: {
|
|
704
|
-
semanticObject: oHash.semanticObject,
|
|
705
|
-
action: oHash.action,
|
|
706
|
-
contextRaw: oHash.contextRaw
|
|
707
|
-
},
|
|
708
|
-
params: oSortedParams
|
|
709
|
-
// ignore appSpecificRoute
|
|
710
|
-
});
|
|
711
|
-
};
|
|
712
|
-
|
|
713
812
|
/**
|
|
714
813
|
* Removes all technical parameters from the hash parameters that are not intent parameters
|
|
715
814
|
* and returns the new hash parameters
|
|
@@ -750,5 +849,33 @@ sap.ui.define([
|
|
|
750
849
|
return !deepEqual(oNewParameters, oOldParameters);
|
|
751
850
|
};
|
|
752
851
|
|
|
852
|
+
/**
|
|
853
|
+
* Checks whether the given parsed hash represents the root intent.
|
|
854
|
+
* @param {sap.ushell.services.URLParsing.DecomposedHash} oParsedHash The parsed hash to check
|
|
855
|
+
* @returns {boolean} Whether the parsed hash represents the root intent
|
|
856
|
+
*
|
|
857
|
+
* @since 1.142.0
|
|
858
|
+
* @private
|
|
859
|
+
*/
|
|
860
|
+
UrlParsing.isRootIntent = function (oParsedHash) {
|
|
861
|
+
const sRootIntent = ushellUtils.getRootIntent();
|
|
862
|
+
const oParsedRootIntent = this.parseShellHash(sRootIntent, true);
|
|
863
|
+
const oHashComparison = this.compareParsedHashes(oParsedHash, oParsedRootIntent);
|
|
864
|
+
|
|
865
|
+
return oHashComparison.sameIntent && oHashComparison.sameParameters;
|
|
866
|
+
};
|
|
867
|
+
|
|
868
|
+
/**
|
|
869
|
+
* Checks whether the given shell hash is empty.
|
|
870
|
+
* @param {sap.ushell.services.URLParsing.ShellHash} oShellHash The shell hash to check
|
|
871
|
+
* @returns {boolean} Whether the shell hash is empty
|
|
872
|
+
*
|
|
873
|
+
* @since 1.142.0
|
|
874
|
+
* @private
|
|
875
|
+
*/
|
|
876
|
+
UrlParsing.isEmptyHash = function (oShellHash) {
|
|
877
|
+
return this.constructShellHash(oShellHash) === "";
|
|
878
|
+
};
|
|
879
|
+
|
|
753
880
|
return UrlParsing;
|
|
754
881
|
});
|