@sapui5/sap.ushell 1.125.0 → 1.126.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/src/main/js/sap/ushell/.library +1 -1
- package/src/main/js/sap/ushell/Container.js +137 -62
- 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/SessionHandler.js +35 -31
- package/src/main/js/sap/ushell/TechnicalParameters.js +1 -1
- package/src/main/js/sap/ushell/URLTemplateProcessor.js +1 -1
- package/src/main/js/sap/ushell/Ui5NativeServiceFactory.js +1 -1
- package/src/main/js/sap/ushell/Ui5ServiceFactory.js +1 -1
- package/src/main/js/sap/ushell/_URLTemplateProcessor/DefinitionParameterSetBuilder.js +1 -1
- package/src/main/js/sap/ushell/_URLTemplateProcessor/DependencyGraph.js +1 -1
- package/src/main/js/sap/ushell/_URLTemplateProcessor/Functions.js +1 -1
- package/src/main/js/sap/ushell/_URLTemplateProcessor/Resolvers.js +1 -1
- package/src/main/js/sap/ushell/_URLTemplateProcessor/TemplateParameterParser.js +1 -1
- package/src/main/js/sap/ushell/_URLTemplateProcessor/utils.js +1 -1
- package/src/main/js/sap/ushell/adapters/cdm/ClientSideTargetResolutionAdapter.js +1 -1
- package/src/main/js/sap/ushell/adapters/cdm/CommonDataModelAdapter.js +1 -1
- package/src/main/js/sap/ushell/adapters/cdm/ConfigurationDefaultsAdapter.js +1 -1
- package/src/main/js/sap/ushell/adapters/cdm/ContainerAdapter.js +1 -1
- package/src/main/js/sap/ushell/adapters/cdm/LaunchPageAdapter.js +1 -1
- package/src/main/js/sap/ushell/adapters/cdm/PagesCommonDataModelAdapter.js +1 -1
- package/src/main/js/sap/ushell/adapters/cdm/PersonalizationAdapter.js +1 -1
- package/src/main/js/sap/ushell/adapters/cdm/PersonalizationV2Adapter.js +1 -1
- package/src/main/js/sap/ushell/adapters/cdm/Ui5ComponentLoaderAdapter.js +1 -1
- package/src/main/js/sap/ushell/adapters/cdm/_LaunchPage/modifyHome.js +1 -1
- package/src/main/js/sap/ushell/adapters/cdm/_LaunchPage/readCatalogs.js +1 -1
- package/src/main/js/sap/ushell/adapters/cdm/_LaunchPage/readHome.js +1 -1
- package/src/main/js/sap/ushell/adapters/cdm/_LaunchPage/uri.transform.js +1 -1
- package/src/main/js/sap/ushell/adapters/cdm/util/AppForInbound.js +1 -1
- package/src/main/js/sap/ushell/adapters/cdm/util/cdmSiteUtils.js +1 -1
- package/src/main/js/sap/ushell/adapters/cdm/v3/AdapterBase.js +1 -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 +1 -1
- package/src/main/js/sap/ushell/adapters/cdm/v3/_LaunchPage/readVisualizations.js +1 -1
- package/src/main/js/sap/ushell/adapters/cdm/v3/utilsCdm.js +34 -0
- 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 +4 -4
- package/src/main/js/sap/ushell/adapters/local/ContainerAdapter.js +1 -1
- package/src/main/js/sap/ushell/adapters/local/FlpLaunchPageAdapter.js +1 -1
- package/src/main/js/sap/ushell/adapters/local/LaunchPageAdapter.js +1 -1
- package/src/main/js/sap/ushell/adapters/local/NavTargetResolutionAdapter.js +1 -1
- package/src/main/js/sap/ushell/adapters/local/NavTargetResolutionInternalAdapter.js +1 -1
- package/src/main/js/sap/ushell/adapters/local/PageBuildingAdapter.js +1 -1
- package/src/main/js/sap/ushell/adapters/local/PagePersistenceAdapter.js +1 -1
- package/src/main/js/sap/ushell/adapters/local/PersonalizationAdapter.js +1 -1
- package/src/main/js/sap/ushell/adapters/local/PersonalizationV2Adapter.js +1 -1
- package/src/main/js/sap/ushell/adapters/local/SearchAdapter.js +1 -1
- package/src/main/js/sap/ushell/adapters/local/SearchCEPAdapter.js +1 -1
- package/src/main/js/sap/ushell/adapters/local/SupportTicketAdapter.js +1 -1
- package/src/main/js/sap/ushell/adapters/local/Ui5ComponentLoaderAdapter.js +1 -1
- package/src/main/js/sap/ushell/adapters/local/UserDefaultParameterPersistenceAdapter.js +1 -1
- package/src/main/js/sap/ushell/adapters/local/UserInfoAdapter.js +1 -1
- package/src/main/js/sap/ushell/api/RTA.js +14 -2
- package/src/main/js/sap/ushell/appRuntime/ui5/AppRuntime.js +5 -5
- 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/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/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/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 +2 -1
- package/src/main/js/sap/ushell/bootstrap/sandbox2.js +3 -3
- package/src/main/js/sap/ushell/components/CatalogsManager.js +4 -1
- package/src/main/js/sap/ushell/components/HomepageManager.js +1 -0
- package/src/main/js/sap/ushell/components/_HeaderManager/ShellHeader.controller.js +1 -0
- package/src/main/js/sap/ushell/components/appfinder/manifest.json +1 -1
- package/src/main/js/sap/ushell/components/applicationIntegration/AppLifeCycle.js +1 -1
- package/src/main/js/sap/ushell/components/applicationIntegration/application/Application.js +1 -1
- package/src/main/js/sap/ushell/components/applicationIntegration/application/BlueBoxHandler.js +2 -2
- package/src/main/js/sap/ushell/components/applicationIntegration/application/BlueBoxesCache.js +37 -7
- package/src/main/js/sap/ushell/components/applicationIntegration/application/PostMessageAPI.js +1 -1
- package/src/main/js/sap/ushell/components/applicationIntegration/configuration/AppMeta.js +1 -1
- package/src/main/js/sap/ushell/components/applicationIntegration/elements/model.js +1 -1
- package/src/main/js/sap/ushell/components/applicationIntegration/relatedServices/RelatedServices.js +1 -1
- package/src/main/js/sap/ushell/components/applicationIntegration/relatedShellElements/RelatedShellElements.js +1 -1
- package/src/main/js/sap/ushell/components/container/ApplicationContainer.js +1 -1
- package/src/main/js/sap/ushell/components/contentFinder/Component.js +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/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/contentFinderStandalone/manifestAppSearch.json +1 -1
- package/src/main/js/sap/ushell/components/factsheet/Component.js +1 -1
- package/src/main/js/sap/ushell/components/homepage/ActionMode.js +1 -1
- package/src/main/js/sap/ushell/components/homepage/DashboardContent.view.js +1 -1
- package/src/main/js/sap/ushell/components/homepage/DashboardGroupsBox.js +1 -1
- package/src/main/js/sap/ushell/components/homepage/DashboardUIActions.js +1 -1
- package/src/main/js/sap/ushell/components/homepage/manifest.json +1 -1
- package/src/main/js/sap/ushell/components/pages/ActionMode.js +1 -1
- package/src/main/js/sap/ushell/components/pages/Component.js +1 -1
- package/src/main/js/sap/ushell/components/pages/MyHomeImport.js +1 -1
- package/src/main/js/sap/ushell/components/pages/controller/PageRuntime.controller.js +2 -1
- package/src/main/js/sap/ushell/components/pages/manifest.json +1 -1
- package/src/main/js/sap/ushell/components/runtimeSwitcher/controller/RuntimeSwitcher.controller.js +11 -3
- package/src/main/js/sap/ushell/components/runtimeSwitcher/manifest.json +1 -1
- package/src/main/js/sap/ushell/components/shell/MenuBar/manifest.json +1 -1
- package/src/main/js/sap/ushell/components/shell/NavigationBarMenu/controller/NavigationBarMenu.controller.js +1 -1
- package/src/main/js/sap/ushell/components/shell/NavigationBarMenu/manifest.json +1 -1
- package/src/main/js/sap/ushell/components/shell/Notifications/Component.js +1 -1
- package/src/main/js/sap/ushell/components/shell/Notifications/Notifications.controller.js +1 -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/Settings/Component.js +1 -1
- package/src/main/js/sap/ushell/components/shell/Settings/UserSettings.controller.js +10 -0
- package/src/main/js/sap/ushell/components/shell/Settings/userLanguageRegion/LanguageRegionSelector.controller.js +1 -0
- 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/cdm/applauncherdynamic/Component.js +3 -0
- package/src/main/js/sap/ushell/components/visualizationOrganizer/Component.js +1 -1
- package/src/main/js/sap/ushell/components/workPageBuilder/Component.js +1 -1
- package/src/main/js/sap/ushell/components/workPageBuilder/controller/WorkPageBuilder.accessibility.js +1 -1
- package/src/main/js/sap/ushell/components/workPageBuilder/controller/WorkPageBuilder.controller.js +1 -1
- package/src/main/js/sap/ushell/components/workPageBuilder/controls/WorkPage.js +1 -1
- package/src/main/js/sap/ushell/components/workPageBuilder/controls/WorkPageButton.js +1 -1
- package/src/main/js/sap/ushell/components/workPageBuilder/controls/WorkPageCell.js +1 -1
- package/src/main/js/sap/ushell/components/workPageBuilder/controls/WorkPageColumn.js +1 -1
- package/src/main/js/sap/ushell/components/workPageBuilder/controls/WorkPageColumnResizer.js +1 -1
- package/src/main/js/sap/ushell/components/workPageBuilder/controls/WorkPageRow.js +1 -1
- package/src/main/js/sap/ushell/components/workPageBuilder/manifest.json +1 -1
- package/src/main/js/sap/ushell/components/workPageRuntime/Component.js +1 -1
- package/src/main/js/sap/ushell/components/workPageRuntime/controller/WorkPageRuntime.controller.js +1 -1
- package/src/main/js/sap/ushell/components/workPageRuntime/manifest.json +1 -1
- package/src/main/js/sap/ushell/designtime/ApplicationContainer.designtime.js +1 -1
- package/src/main/js/sap/ushell/library.js +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/renderer/History.js +1 -2
- package/src/main/js/sap/ushell/renderer/Renderer.js +2 -2
- package/src/main/js/sap/ushell/renderer/Shell.controller.js +1 -1
- package/src/main/js/sap/ushell/renderer/resources/resources_ar.properties +4 -4
- package/src/main/js/sap/ushell/renderer/resources/resources_bg.properties +4 -4
- package/src/main/js/sap/ushell/renderer/resources/resources_ca.properties +4 -4
- package/src/main/js/sap/ushell/renderer/resources/resources_cnr.properties +4 -4
- package/src/main/js/sap/ushell/renderer/resources/resources_cs.properties +3 -3
- package/src/main/js/sap/ushell/renderer/resources/resources_cy.properties +4 -4
- package/src/main/js/sap/ushell/renderer/resources/resources_da.properties +4 -4
- package/src/main/js/sap/ushell/renderer/resources/resources_de.properties +4 -4
- package/src/main/js/sap/ushell/renderer/resources/resources_el.properties +4 -4
- package/src/main/js/sap/ushell/renderer/resources/resources_en.properties +4 -4
- package/src/main/js/sap/ushell/renderer/resources/resources_en_GB.properties +4 -4
- package/src/main/js/sap/ushell/renderer/resources/resources_en_US_saprigi.properties +4 -4
- package/src/main/js/sap/ushell/renderer/resources/resources_es.properties +4 -4
- package/src/main/js/sap/ushell/renderer/resources/resources_es_MX.properties +4 -4
- package/src/main/js/sap/ushell/renderer/resources/resources_et.properties +4 -4
- package/src/main/js/sap/ushell/renderer/resources/resources_fi.properties +4 -4
- package/src/main/js/sap/ushell/renderer/resources/resources_fr.properties +4 -4
- package/src/main/js/sap/ushell/renderer/resources/resources_fr_CA.properties +37 -37
- package/src/main/js/sap/ushell/renderer/resources/resources_hi.properties +4 -4
- package/src/main/js/sap/ushell/renderer/resources/resources_hr.properties +4 -4
- package/src/main/js/sap/ushell/renderer/resources/resources_hu.properties +4 -4
- package/src/main/js/sap/ushell/renderer/resources/resources_id.properties +4 -4
- package/src/main/js/sap/ushell/renderer/resources/resources_it.properties +4 -4
- package/src/main/js/sap/ushell/renderer/resources/resources_iw.properties +4 -4
- package/src/main/js/sap/ushell/renderer/resources/resources_ja.properties +4 -4
- package/src/main/js/sap/ushell/renderer/resources/resources_kk.properties +4 -4
- package/src/main/js/sap/ushell/renderer/resources/resources_ko.properties +4 -4
- package/src/main/js/sap/ushell/renderer/resources/resources_lt.properties +4 -4
- package/src/main/js/sap/ushell/renderer/resources/resources_lv.properties +4 -4
- package/src/main/js/sap/ushell/renderer/resources/resources_mk.properties +4 -4
- package/src/main/js/sap/ushell/renderer/resources/resources_ms.properties +4 -4
- package/src/main/js/sap/ushell/renderer/resources/resources_nl.properties +4 -4
- package/src/main/js/sap/ushell/renderer/resources/resources_no.properties +4 -4
- package/src/main/js/sap/ushell/renderer/resources/resources_pl.properties +4 -4
- package/src/main/js/sap/ushell/renderer/resources/resources_pt.properties +4 -4
- package/src/main/js/sap/ushell/renderer/resources/resources_pt_PT.properties +4 -4
- package/src/main/js/sap/ushell/renderer/resources/resources_ro.properties +4 -4
- package/src/main/js/sap/ushell/renderer/resources/resources_ru.properties +4 -4
- package/src/main/js/sap/ushell/renderer/resources/resources_sh.properties +4 -4
- package/src/main/js/sap/ushell/renderer/resources/resources_sk.properties +4 -4
- package/src/main/js/sap/ushell/renderer/resources/resources_sl.properties +4 -4
- package/src/main/js/sap/ushell/renderer/resources/resources_sr.properties +4 -4
- package/src/main/js/sap/ushell/renderer/resources/resources_sv.properties +4 -4
- package/src/main/js/sap/ushell/renderer/resources/resources_th.properties +4 -4
- package/src/main/js/sap/ushell/renderer/resources/resources_tr.properties +4 -4
- package/src/main/js/sap/ushell/renderer/resources/resources_uk.properties +4 -4
- package/src/main/js/sap/ushell/renderer/resources/resources_vi.properties +4 -4
- package/src/main/js/sap/ushell/renderer/resources/resources_zh_CN.properties +4 -4
- package/src/main/js/sap/ushell/renderer/resources/resources_zh_TW.properties +4 -4
- package/src/main/js/sap/ushell/renderer/search/searchComponent/manifest.json +1 -1
- package/src/main/js/sap/ushell/services/AppConfiguration.js +13 -11
- package/src/main/js/sap/ushell/services/AppLifeCycle.js +1 -1
- 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.js +625 -750
- package/src/main/js/sap/ushell/services/CommonDataModel.js +21 -14
- 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 +8 -3
- 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.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.js +1 -1
- package/src/main/js/sap/ushell/services/MessageInternal.js +1 -1
- 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 +3 -3
- 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.js +1 -1
- package/src/main/js/sap/ushell/services/ReferenceResolver.js +223 -229
- package/src/main/js/sap/ushell/services/Search.js +1 -1
- package/src/main/js/sap/ushell/services/SearchCEP.js +1 -1
- package/src/main/js/sap/ushell/services/SearchableContent.js +1 -1
- package/src/main/js/sap/ushell/services/ShellNavigation.js +1 -1
- package/src/main/js/sap/ushell/services/SmartNavigation.js +1 -1
- package/src/main/js/sap/ushell/services/SpaceContent.js +1 -1
- package/src/main/js/sap/ushell/services/UITracer.js +1 -1
- package/src/main/js/sap/ushell/services/URLShortening.js +1 -1
- package/src/main/js/sap/ushell/services/URLTemplate.js +1 -1
- package/src/main/js/sap/ushell/services/Ui5ComponentLoader.js +1 -1
- package/src/main/js/sap/ushell/services/UserDefaultParameterPersistence.js +87 -78
- package/src/main/js/sap/ushell/services/UserDefaultParameters.js +225 -271
- package/src/main/js/sap/ushell/services/UserInfo.js +1 -1
- package/src/main/js/sap/ushell/services/UserRecents.js +1 -1
- package/src/main/js/sap/ushell/services/VisualizationDataProvider.js +1 -1
- package/src/main/js/sap/ushell/services/VisualizationInstantiation.js +1 -1
- package/src/main/js/sap/ushell/services/_ClientSideTargetResolution/Formatter.js +10 -10
- package/src/main/js/sap/ushell/services/_ClientSideTargetResolution/InboundIndex.js +9 -6
- package/src/main/js/sap/ushell/services/_ClientSideTargetResolution/InboundProvider.js +16 -25
- package/src/main/js/sap/ushell/services/_ClientSideTargetResolution/ParameterMapping.js +3 -1
- package/src/main/js/sap/ushell/services/_ClientSideTargetResolution/PrelaunchOperations.js +15 -21
- package/src/main/js/sap/ushell/services/_ClientSideTargetResolution/Search.js +52 -45
- package/src/main/js/sap/ushell/services/_ClientSideTargetResolution/StagedLogger.js +3 -5
- package/src/main/js/sap/ushell/services/_ClientSideTargetResolution/SystemContext.js +5 -2
- 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 +63 -80
- package/src/main/js/sap/ushell/services/_CommonDataModel/SiteConverter.js +1 -1
- package/src/main/js/sap/ushell/services/_CommonDataModel/vizTypeDefaults/VizTypeDefaults.js +1 -1
- package/src/main/js/sap/ushell/services/_ContentExtensionAdapterFactory/ContentExtensionAdapterConfig.js +1 -1
- package/src/main/js/sap/ushell/services/_ContentExtensionAdapterFactory/FeaturedGroupConfig.js +1 -1
- package/src/main/js/sap/ushell/services/_CrossApplicationNavigation/utils.js +1 -1
- package/src/main/js/sap/ushell/services/_MessageBroker/MessageBrokerEngine.js +1 -1
- package/src/main/js/sap/ushell/services/_PageReferencing/PageReferencer.js +1 -1
- package/src/main/js/sap/ushell/services/_PluginManager/Extensions.js +1 -1
- package/src/main/js/sap/ushell/services/_PluginManager/HeaderExtensions.js +1 -1
- package/src/main/js/sap/ushell/services/_PluginManager/MenuExtensions.js +1 -1
- package/src/main/js/sap/ushell/services/_Ui5ComponentLoader/utils.js +1 -1
- package/src/main/js/sap/ushell/support/plugins/flpConfig/FlpConfigurationPlugin.js +1 -1
- package/src/main/js/sap/ushell/themes/sap_horizon/Tile.less +2 -6
- package/src/main/js/sap/ushell/ui/cards/RecentActivitiesExtension.js +1 -1
- package/src/main/js/sap/ushell/ui/footerbar/SendAsEmailButton.js +2 -2
- package/src/main/js/sap/ushell/ui/launchpad/ExtendedChangeDetection.js +1 -1
- package/src/main/js/sap/ushell/ui/launchpad/Section.js +3 -6
- package/src/main/js/sap/ushell/ui/launchpad/section/CompactArea.js +1 -1
- package/src/main/js/sap/ushell/ui/shell/ShellHeadItem.js +3 -8
- package/src/main/js/sap/ushell/ui/shell/ToolAreaItem.js +1 -2
- 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/utils/UrlShortening.js +1 -1
- package/src/main/js/sap/ushell/utils/WindowUtils.js +17 -0
- package/src/main/js/sap/ushell/utils/tilecard/TileCard.js +305 -305
- package/src/main/js/sap/ushell/utils/workpage/WorkPageHost.js +1 -1
- package/src/main/js/sap/ushell/utils/workpage/WorkPageService.js +22 -5
- package/src/main/js/sap/ushell/utils/workpage/WorkPageVizInstantiation.js +7 -6
- package/src/test/js/sap/ushell/bootstrap/sandbox.js +1 -1
- package/ui5.yaml +1 -1
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
4
|
* @fileOverview resolves references
|
|
5
|
-
* @version 1.
|
|
5
|
+
* @version 1.126.0
|
|
6
6
|
*/
|
|
7
7
|
sap.ui.define([
|
|
8
8
|
"sap/base/Log",
|
|
@@ -17,6 +17,7 @@ sap.ui.define([
|
|
|
17
17
|
"sap/ui/model/odata/v4/ODataUtils",
|
|
18
18
|
"sap/ui/thirdparty/jquery",
|
|
19
19
|
"sap/ushell/User",
|
|
20
|
+
"sap/ushell/utils",
|
|
20
21
|
"sap/ushell/Container"
|
|
21
22
|
], function (
|
|
22
23
|
Log,
|
|
@@ -31,11 +32,12 @@ sap.ui.define([
|
|
|
31
32
|
ODataUtilsV4,
|
|
32
33
|
jQuery,
|
|
33
34
|
User,
|
|
35
|
+
ushellUtils,
|
|
34
36
|
Container
|
|
35
37
|
) {
|
|
36
38
|
"use strict";
|
|
37
39
|
|
|
38
|
-
|
|
40
|
+
const sModuleName = "sap.ushell.services.ReferenceResolver";
|
|
39
41
|
|
|
40
42
|
function UserEnvReferenceResolver () {
|
|
41
43
|
/**
|
|
@@ -166,45 +168,40 @@ sap.ui.define([
|
|
|
166
168
|
* @since 1.42.0
|
|
167
169
|
*/
|
|
168
170
|
this.resolveReferences = function (aReferences, oSystemContext) {
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
var oSystemContextPromise;
|
|
171
|
+
const oDeferred = new jQuery.Deferred();
|
|
172
|
+
const aReferencePromises = [];
|
|
173
|
+
let bAllRefsResolvable = true;
|
|
174
|
+
const oDistinctRefs = {};
|
|
175
|
+
const oDistinctEnvRefs = {};
|
|
176
|
+
const oUserDefaultParametersPromise = Container.getServiceAsync("UserDefaultParameters");
|
|
177
|
+
let oResolver,
|
|
178
|
+
oSystemContextPromise;
|
|
178
179
|
|
|
179
180
|
if (!oSystemContext) {
|
|
180
181
|
oSystemContextPromise = Container.getServiceAsync("ClientSideTargetResolution")
|
|
181
|
-
.then(
|
|
182
|
+
.then((oCstr) => {
|
|
182
183
|
return oCstr.getSystemContext();
|
|
183
184
|
});
|
|
184
185
|
} else {
|
|
185
186
|
oSystemContextPromise = Promise.resolve(oSystemContext);
|
|
186
187
|
}
|
|
187
188
|
|
|
188
|
-
|
|
189
|
-
.map(
|
|
190
|
-
|
|
189
|
+
const aRichRefs = aReferences
|
|
190
|
+
.map((sRefWithPrefix) => {
|
|
191
|
+
let sRefName;
|
|
191
192
|
|
|
192
193
|
if (sRefWithPrefix.indexOf("User.env.") === 0) {
|
|
193
194
|
sRefName = sRefWithPrefix;
|
|
194
195
|
oDistinctEnvRefs[sRefName] = 1;
|
|
195
196
|
}
|
|
196
197
|
if (sRefWithPrefix.indexOf("UserDefault.") === 0) {
|
|
197
|
-
sRefName =
|
|
198
|
+
sRefName = this._extractAnyUserDefaultReferenceName(sRefWithPrefix);
|
|
198
199
|
oDistinctRefs[sRefName] = 1;
|
|
199
200
|
}
|
|
200
201
|
|
|
201
202
|
if (typeof sRefName !== "string") {
|
|
202
203
|
bAllRefsResolvable = false;
|
|
203
|
-
Log.error(
|
|
204
|
-
"'" + sRefWithPrefix + "' is not a legal reference name",
|
|
205
|
-
null,
|
|
206
|
-
sModuleName
|
|
207
|
-
);
|
|
204
|
+
Log.error(`'${ sRefWithPrefix }' is not a legal reference name`, null, sModuleName);
|
|
208
205
|
}
|
|
209
206
|
return {
|
|
210
207
|
full: sRefWithPrefix,
|
|
@@ -220,56 +217,58 @@ sap.ui.define([
|
|
|
220
217
|
|
|
221
218
|
Promise.all([
|
|
222
219
|
oSystemContextPromise,
|
|
223
|
-
|
|
224
|
-
])
|
|
225
|
-
|
|
226
|
-
|
|
220
|
+
oUserDefaultParametersPromise
|
|
221
|
+
])
|
|
222
|
+
.then((aResults) => {
|
|
223
|
+
const oResolvedSystemContext = aResults[0];
|
|
224
|
+
const UserDefaultParameters = aResults[1];
|
|
225
|
+
|
|
226
|
+
Object.keys(oDistinctRefs).forEach((sName) => {
|
|
227
|
+
const oDeferred = UserDefaultParameters.getValue(sName, oResolvedSystemContext);
|
|
228
|
+
aReferencePromises.push(ushellUtils.promisify(oDeferred));
|
|
229
|
+
});
|
|
227
230
|
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
+
Object.keys(oDistinctEnvRefs).forEach((sName) => {
|
|
232
|
+
oResolver = oResolver || this._getUserEnvReferenceResolver();
|
|
233
|
+
aReferencePromises.push(ushellUtils.promisify(oResolver.getValue(sName)));
|
|
234
|
+
});
|
|
231
235
|
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
+
return Promise.all(aReferencePromises);
|
|
237
|
+
})
|
|
238
|
+
.then((aRefValues) => {
|
|
239
|
+
const oKnownRefs = {};
|
|
240
|
+
let iIndex = 0;
|
|
241
|
+
Object.keys(oDistinctRefs).forEach((sName) => {
|
|
242
|
+
oDistinctRefs[sName] = aRefValues[iIndex];
|
|
243
|
+
iIndex = iIndex + 1;
|
|
244
|
+
});
|
|
245
|
+
Object.keys(oDistinctEnvRefs).forEach((sName) => {
|
|
246
|
+
oDistinctEnvRefs[sName] = aRefValues[iIndex];
|
|
247
|
+
iIndex = iIndex + 1;
|
|
248
|
+
});
|
|
236
249
|
|
|
237
|
-
|
|
238
|
-
.
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
})
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
oMergedValue = that.mergeSimpleAndExtended(oDistinctRefs[oRef.name]);
|
|
256
|
-
if (!isEmptyObject(oMergedValue)) {
|
|
257
|
-
oKnownRefs[oRef.full] = oMergedValue;
|
|
258
|
-
} else {
|
|
259
|
-
// even if no value is provided, the property must exist to indicate that the
|
|
260
|
-
// reference could be resolved
|
|
261
|
-
oKnownRefs[oRef.full] = undefined;
|
|
262
|
-
}
|
|
263
|
-
} else if (oRef.full.indexOf("UserDefault.") === 0) {
|
|
264
|
-
oKnownRefs[oRef.full] = oDistinctRefs[oRef.name].value;
|
|
265
|
-
} else if (oRef.full.indexOf("User.env.") === 0) {
|
|
266
|
-
oKnownRefs[oRef.full] = oDistinctEnvRefs[oRef.name].value;
|
|
267
|
-
} // one of the above branches must have been hit, there can be no else here,
|
|
268
|
-
// else { assert(0); }
|
|
269
|
-
});
|
|
270
|
-
oDeferred.resolve(oKnownRefs);
|
|
250
|
+
// All parameters retrieved successfully and stored in arguments.
|
|
251
|
+
aRichRefs.forEach((oRef) => {
|
|
252
|
+
let oMergedValue;
|
|
253
|
+
if (oRef.full.indexOf("UserDefault.extended.") === 0) {
|
|
254
|
+
oMergedValue = this.mergeSimpleAndExtended(oDistinctRefs[oRef.name]);
|
|
255
|
+
if (!isEmptyObject(oMergedValue)) {
|
|
256
|
+
oKnownRefs[oRef.full] = oMergedValue;
|
|
257
|
+
} else {
|
|
258
|
+
// even if no value is provided, the property must exist to indicate that the
|
|
259
|
+
// reference could be resolved
|
|
260
|
+
oKnownRefs[oRef.full] = undefined;
|
|
261
|
+
}
|
|
262
|
+
} else if (oRef.full.indexOf("UserDefault.") === 0) {
|
|
263
|
+
oKnownRefs[oRef.full] = oDistinctRefs[oRef.name].value;
|
|
264
|
+
} else if (oRef.full.indexOf("User.env.") === 0) {
|
|
265
|
+
oKnownRefs[oRef.full] = oDistinctEnvRefs[oRef.name].value;
|
|
266
|
+
} // one of the above branches must have been hit, there can be no else here,
|
|
267
|
+
// else { assert(0); }
|
|
271
268
|
});
|
|
272
|
-
|
|
269
|
+
|
|
270
|
+
oDeferred.resolve(oKnownRefs);
|
|
271
|
+
});
|
|
273
272
|
|
|
274
273
|
return oDeferred.promise();
|
|
275
274
|
};
|
|
@@ -289,7 +288,7 @@ sap.ui.define([
|
|
|
289
288
|
* @since 1.42.0
|
|
290
289
|
*/
|
|
291
290
|
this._extractAnyUserDefaultReferenceName = function (sRefParamName) {
|
|
292
|
-
|
|
291
|
+
const sParamName = this.extractExtendedUserDefaultReferenceName(sRefParamName);
|
|
293
292
|
if (typeof sParamName === "string") {
|
|
294
293
|
return sParamName;
|
|
295
294
|
}
|
|
@@ -354,7 +353,7 @@ sap.ui.define([
|
|
|
354
353
|
* @since 1.42.0
|
|
355
354
|
*/
|
|
356
355
|
this.mergeSimpleAndExtended = function (oValueObject) {
|
|
357
|
-
|
|
356
|
+
const oMergedExtendedObject = deepExtend({}, oValueObject.extendedValue);
|
|
358
357
|
if (typeof oValueObject.value === "string") {
|
|
359
358
|
if (!Array.isArray(oMergedExtendedObject.Ranges)) {
|
|
360
359
|
oMergedExtendedObject.Ranges = [];
|
|
@@ -391,16 +390,16 @@ sap.ui.define([
|
|
|
391
390
|
* @private
|
|
392
391
|
*/
|
|
393
392
|
function findReferences (sUrl) {
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
393
|
+
const reReferenceNames = /{([^}%]*%%[^%]+%%)}?/g;
|
|
394
|
+
const reGetEdmType = /([^%]*)%%/;
|
|
395
|
+
const reGetName = /%%([^%]+)%%/;
|
|
396
|
+
const aFoundReferences = [];
|
|
398
397
|
|
|
399
398
|
// search and collect all found references user default references in the URL
|
|
400
|
-
|
|
399
|
+
let oCurrentMatch = reReferenceNames.exec(sUrl);
|
|
401
400
|
while (oCurrentMatch) {
|
|
402
|
-
|
|
403
|
-
|
|
401
|
+
const oCurrentEdmType = reGetEdmType.exec(oCurrentMatch[1]);
|
|
402
|
+
const oCurrentName = reGetName.exec(oCurrentMatch[1]);
|
|
404
403
|
|
|
405
404
|
aFoundReferences.push({ edmType: oCurrentEdmType[1], name: oCurrentName[1] });
|
|
406
405
|
|
|
@@ -423,9 +422,9 @@ sap.ui.define([
|
|
|
423
422
|
* @since 1.110.0
|
|
424
423
|
*/
|
|
425
424
|
this._extractUrlPlaceholders = function (sUrl, sFilterRegex) {
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
425
|
+
let oUrl,
|
|
426
|
+
aReferences;
|
|
427
|
+
const aIgnoredReferences = [];
|
|
429
428
|
|
|
430
429
|
/*
|
|
431
430
|
* A typical oDataV2 call:
|
|
@@ -445,7 +444,7 @@ sap.ui.define([
|
|
|
445
444
|
oUrl = /[^(?]*/.exec(sUrl);
|
|
446
445
|
aReferences = (oUrl === null) ? [] : findReferences(oUrl[0]);
|
|
447
446
|
|
|
448
|
-
aReferences.forEach(
|
|
447
|
+
aReferences.forEach((oReference) => {
|
|
449
448
|
aIgnoredReferences.push(oReference.name);
|
|
450
449
|
});
|
|
451
450
|
|
|
@@ -453,8 +452,8 @@ sap.ui.define([
|
|
|
453
452
|
oUrl = /[(?][^]*/.exec(sUrl);
|
|
454
453
|
aReferences = (oUrl === null) ? [] : findReferences(oUrl[0]);
|
|
455
454
|
|
|
456
|
-
|
|
457
|
-
|
|
455
|
+
const aExtractedReferences = aReferences.filter((oReference) => {
|
|
456
|
+
const sReferenceName = oReference.name;
|
|
458
457
|
|
|
459
458
|
if (sFilterRegex.test(sReferenceName)) {
|
|
460
459
|
return true;
|
|
@@ -485,14 +484,14 @@ sap.ui.define([
|
|
|
485
484
|
* @since 1.110.0
|
|
486
485
|
*/
|
|
487
486
|
this._replaceUrlPlaceholders = function (sUrl, aResolvedPlaceholders, bODataV4) {
|
|
488
|
-
|
|
489
|
-
|
|
490
|
-
|
|
487
|
+
let sResolvedUrl = sUrl;
|
|
488
|
+
const aPlaceholdersWithoutValue = [];
|
|
489
|
+
const fnFormatODataValue = bODataV4 ? ODataUtilsV4.formatLiteral.bind(ODataUtilsV4) : ODataUtilsV2.formatValue.bind(ODataUtilsV2);
|
|
491
490
|
|
|
492
|
-
aResolvedPlaceholders.forEach(
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
491
|
+
aResolvedPlaceholders.forEach((oResolvedPlaceholder) => {
|
|
492
|
+
const sDefaultName = oResolvedPlaceholder.name;
|
|
493
|
+
let sOldResolvedUrl = null;
|
|
494
|
+
let bPlaceholderWithoutValue = false;
|
|
496
495
|
|
|
497
496
|
// incase the reference is present multiple times (replace all)
|
|
498
497
|
while (sOldResolvedUrl !== sResolvedUrl) {
|
|
@@ -501,13 +500,13 @@ sap.ui.define([
|
|
|
501
500
|
if (oResolvedPlaceholder.value !== undefined) {
|
|
502
501
|
// replace the references with the actual value, encoding is required
|
|
503
502
|
|
|
504
|
-
|
|
503
|
+
const sFormattedValue = fnFormatODataValue(oResolvedPlaceholder.value, oResolvedPlaceholder.edmType);
|
|
505
504
|
|
|
506
|
-
sResolvedUrl = sResolvedUrl.replace(
|
|
505
|
+
sResolvedUrl = sResolvedUrl.replace(`{${ oResolvedPlaceholder.edmType }%%${ sDefaultName }%%}`,
|
|
507
506
|
window.encodeURIComponent(sFormattedValue));
|
|
508
507
|
} else {
|
|
509
508
|
bPlaceholderWithoutValue = true;
|
|
510
|
-
sResolvedUrl = sResolvedUrl.replace(
|
|
509
|
+
sResolvedUrl = sResolvedUrl.replace(`{${ oResolvedPlaceholder.edmType }%%${ sDefaultName }%%}`, "");
|
|
511
510
|
}
|
|
512
511
|
}
|
|
513
512
|
|
|
@@ -550,11 +549,11 @@ sap.ui.define([
|
|
|
550
549
|
* @private
|
|
551
550
|
*/
|
|
552
551
|
this.resolveUserDefaultParameters = function (sUrl, oSystemContext) {
|
|
553
|
-
|
|
552
|
+
const oDeferred = new jQuery.Deferred();
|
|
554
553
|
|
|
555
|
-
|
|
556
|
-
|
|
557
|
-
|
|
554
|
+
const oPlaceholders = this._extractUrlPlaceholders(sUrl, /^UserDefault\.(?!extended\.).+/);
|
|
555
|
+
const aSimpleUserDefaultReferences = oPlaceholders.extractedReferences;
|
|
556
|
+
const aIgnoredReferences = oPlaceholders.ignoredReferences;
|
|
558
557
|
|
|
559
558
|
if (aSimpleUserDefaultReferences.length === 0) {
|
|
560
559
|
oDeferred.resolve({
|
|
@@ -565,22 +564,23 @@ sap.ui.define([
|
|
|
565
564
|
return oDeferred.promise();
|
|
566
565
|
}
|
|
567
566
|
|
|
568
|
-
|
|
567
|
+
const aReferenceNames = aSimpleUserDefaultReferences.map((oReference) => {
|
|
569
568
|
return oReference.name;
|
|
570
569
|
});
|
|
571
|
-
|
|
572
|
-
|
|
573
|
-
|
|
570
|
+
|
|
571
|
+
ushellUtils.promisify(this.resolveReferences(aReferenceNames, oSystemContext))
|
|
572
|
+
.then((oResolvedDefaults) => {
|
|
573
|
+
aSimpleUserDefaultReferences.forEach((oPlaceholder) => {
|
|
574
574
|
oPlaceholder.value = oResolvedDefaults[oPlaceholder.name];
|
|
575
575
|
});
|
|
576
|
-
|
|
576
|
+
const oReplacementResult = this._replaceUrlPlaceholders(sUrl, aSimpleUserDefaultReferences);
|
|
577
577
|
|
|
578
578
|
oDeferred.resolve({
|
|
579
579
|
url: oReplacementResult.resolvedUrl,
|
|
580
580
|
defaultsWithoutValue: oReplacementResult.placeholdersWithoutValue,
|
|
581
581
|
ignoredReferences: aIgnoredReferences
|
|
582
582
|
});
|
|
583
|
-
}
|
|
583
|
+
});
|
|
584
584
|
|
|
585
585
|
return oDeferred.promise();
|
|
586
586
|
};
|
|
@@ -589,16 +589,12 @@ sap.ui.define([
|
|
|
589
589
|
* Loads the Dynamic Date Range und its prerequisite, the unified library.
|
|
590
590
|
* @returns {Promise} Promise that resolves with the Dynamic Date Range.
|
|
591
591
|
*/
|
|
592
|
-
this._loadDynamicDateRange = function () {
|
|
593
|
-
|
|
594
|
-
|
|
595
|
-
|
|
596
|
-
|
|
597
|
-
|
|
598
|
-
fnResolve(oDynamicDateRange);
|
|
599
|
-
});
|
|
600
|
-
});
|
|
601
|
-
});
|
|
592
|
+
this._loadDynamicDateRange = async function () {
|
|
593
|
+
await Library.load("sap.ui.unified");
|
|
594
|
+
|
|
595
|
+
const [ DynamicDateRange ] = await ushellUtils.requireAsync(["sap/m/DynamicDateRange"]);
|
|
596
|
+
|
|
597
|
+
return DynamicDateRange;
|
|
602
598
|
};
|
|
603
599
|
|
|
604
600
|
/**
|
|
@@ -654,51 +650,50 @@ sap.ui.define([
|
|
|
654
650
|
* @private
|
|
655
651
|
* @since 1.110.0
|
|
656
652
|
*/
|
|
657
|
-
this.resolveSemanticDateRanges = function (sUrl, sODataVersion) {
|
|
658
|
-
|
|
659
|
-
|
|
660
|
-
|
|
653
|
+
this.resolveSemanticDateRanges = async function (sUrl, sODataVersion) {
|
|
654
|
+
const oPlaceholders = this._extractUrlPlaceholders(sUrl, this._rSemanticDateRangeRegex);
|
|
655
|
+
const aSemanticDateRangeReferences = oPlaceholders.extractedReferences;
|
|
656
|
+
const aIgnoredReferences = oPlaceholders.ignoredReferences;
|
|
661
657
|
|
|
662
658
|
if (aSemanticDateRangeReferences.length === 0) {
|
|
663
|
-
return
|
|
659
|
+
return {
|
|
664
660
|
url: sUrl,
|
|
665
661
|
hasSemanticDateRanges: false,
|
|
666
662
|
invalidSemanticDates: [],
|
|
667
663
|
ignoredReferences: aIgnoredReferences
|
|
668
|
-
}
|
|
664
|
+
};
|
|
669
665
|
}
|
|
670
666
|
|
|
671
|
-
|
|
667
|
+
const aValidODataVersions = ["2.0", "4.0"];
|
|
672
668
|
if (!sODataVersion || !aValidODataVersions.includes(sODataVersion)) {
|
|
673
|
-
|
|
669
|
+
throw new Error(`Invalid OData version: ${ sODataVersion}`);
|
|
674
670
|
}
|
|
675
|
-
|
|
676
|
-
|
|
677
|
-
return this._resolveSemanticDateRanges(aSemanticDateRangeReferences, bODataV4)
|
|
678
|
-
.then(function (aSemanticDateRanges) {
|
|
679
|
-
var oReplacementResult = this._replaceUrlPlaceholders(sUrl, aSemanticDateRanges, bODataV4);
|
|
680
|
-
|
|
681
|
-
if (Log.getLevel() >= Log.Level.DEBUG) {
|
|
682
|
-
var aResolvedSemanticDateRanges = aSemanticDateRanges.filter(function (oElement) {
|
|
683
|
-
return "value" in oElement;
|
|
684
|
-
});
|
|
685
|
-
Log.debug(
|
|
686
|
-
"Resolving semantic date ranges \n" +
|
|
687
|
-
"- OData Version: " + sODataVersion + "\n" +
|
|
688
|
-
"- URL: " + sUrl + "\n" +
|
|
689
|
-
"- ignoring references: " + JSON.stringify(aIgnoredReferences, null, 4) + "\n" +
|
|
690
|
-
"- resolved semantic date ranges: " + JSON.stringify(aResolvedSemanticDateRanges, null, 4) + "\n" +
|
|
691
|
-
"- invalid semantic date ranges:" + JSON.stringify(oReplacementResult.placeholdersWithoutValue, null, 4) + "\n" +
|
|
692
|
-
"- final URL: " + oReplacementResult.resolvedUrl, null, sModuleName);
|
|
693
|
-
}
|
|
671
|
+
const bODataV4 = sODataVersion === "4.0";
|
|
694
672
|
|
|
695
|
-
|
|
696
|
-
|
|
697
|
-
|
|
698
|
-
|
|
699
|
-
|
|
700
|
-
|
|
701
|
-
|
|
673
|
+
const aSemanticDateRanges = await this._resolveSemanticDateRanges(aSemanticDateRangeReferences, bODataV4);
|
|
674
|
+
|
|
675
|
+
const oReplacementResult = this._replaceUrlPlaceholders(sUrl, aSemanticDateRanges, bODataV4);
|
|
676
|
+
|
|
677
|
+
if (Log.getLevel() >= Log.Level.DEBUG) {
|
|
678
|
+
const aResolvedSemanticDateRanges = aSemanticDateRanges.filter((oElement) => {
|
|
679
|
+
return "value" in oElement;
|
|
680
|
+
});
|
|
681
|
+
Log.debug(
|
|
682
|
+
"Resolving semantic date ranges \n" +
|
|
683
|
+
`- OData Version: ${ sODataVersion }\n` +
|
|
684
|
+
`- URL: ${ sUrl }\n` +
|
|
685
|
+
`- ignoring references: ${ JSON.stringify(aIgnoredReferences, null, 4) }\n` +
|
|
686
|
+
`- resolved semantic date ranges: ${ JSON.stringify(aResolvedSemanticDateRanges, null, 4) }\n` +
|
|
687
|
+
`- invalid semantic date ranges:${ JSON.stringify(oReplacementResult.placeholdersWithoutValue, null, 4) }\n` +
|
|
688
|
+
`- final URL: ${ oReplacementResult.resolvedUrl}`, null, sModuleName);
|
|
689
|
+
}
|
|
690
|
+
|
|
691
|
+
return {
|
|
692
|
+
url: oReplacementResult.resolvedUrl,
|
|
693
|
+
hasSemanticDateRanges: aSemanticDateRangeReferences.length > 0,
|
|
694
|
+
invalidSemanticDates: oReplacementResult.placeholdersWithoutValue,
|
|
695
|
+
ignoredReferences: aIgnoredReferences
|
|
696
|
+
};
|
|
702
697
|
};
|
|
703
698
|
|
|
704
699
|
/**
|
|
@@ -712,95 +707,94 @@ sap.ui.define([
|
|
|
712
707
|
* @private
|
|
713
708
|
* @since 1.110.0
|
|
714
709
|
*/
|
|
715
|
-
this._resolveSemanticDateRanges = function (aSemanticDateRanges, bODataV4) {
|
|
716
|
-
|
|
717
|
-
|
|
710
|
+
this._resolveSemanticDateRanges = async function (aSemanticDateRanges, bODataV4) {
|
|
711
|
+
const oDateTimeFormatters = this._getDateTimeFormatters();
|
|
718
712
|
// must be required dynamically because of a dependency to sap.ui.unified
|
|
719
|
-
|
|
720
|
-
return aSemanticDateRanges.map(function resolveSemanticDateRange (oSemanticDate) {
|
|
721
|
-
var oResult = {
|
|
722
|
-
name: oSemanticDate.name,
|
|
723
|
-
edmType: oSemanticDate.edmType
|
|
724
|
-
};
|
|
725
|
-
var aSemanticDate = oSemanticDate.name.split(".");
|
|
726
|
-
|
|
727
|
-
/*
|
|
728
|
-
* Analyze the semantic date. It can have 2 - 5 parts, depending on the operator and the usage in the OData request.
|
|
729
|
-
* Examples:
|
|
730
|
-
* - DynamicDate.YESTERDAY
|
|
731
|
-
* - DynamicDate.YESTERDAY.start
|
|
732
|
-
* - DynamicDate.NEXTDAYS.5.start
|
|
733
|
-
* - DynamicDate.TODAYFROMTO.1.5.start
|
|
734
|
-
*/
|
|
735
|
-
|
|
736
|
-
var oDateValue = {
|
|
737
|
-
operator: aSemanticDate[1],
|
|
738
|
-
values: []
|
|
739
|
-
};
|
|
740
|
-
var sPosition;
|
|
741
|
-
|
|
742
|
-
if (aSemanticDate.length === 3) {
|
|
743
|
-
sPosition = aSemanticDate[2];
|
|
744
|
-
} else if (aSemanticDate.length === 4) {
|
|
745
|
-
oDateValue.values.push(aSemanticDate[2]);
|
|
746
|
-
sPosition = aSemanticDate[3];
|
|
747
|
-
} else if (aSemanticDate.length === 5) {
|
|
748
|
-
oDateValue.values = aSemanticDate.slice(2, 4);
|
|
749
|
-
sPosition = aSemanticDate[4];
|
|
750
|
-
}
|
|
713
|
+
const DynamicDateRange = await this._loadDynamicDateRange();
|
|
751
714
|
|
|
752
|
-
|
|
753
|
-
|
|
754
|
-
|
|
755
|
-
|
|
756
|
-
|
|
757
|
-
|
|
715
|
+
return aSemanticDateRanges.map((oSemanticDate) => {
|
|
716
|
+
const oResult = {
|
|
717
|
+
name: oSemanticDate.name,
|
|
718
|
+
edmType: oSemanticDate.edmType
|
|
719
|
+
};
|
|
720
|
+
const aSemanticDate = oSemanticDate.name.split(".");
|
|
721
|
+
|
|
722
|
+
/*
|
|
723
|
+
* Analyze the semantic date. It can have 2 - 5 parts, depending on the operator and the usage in the OData request.
|
|
724
|
+
* Examples:
|
|
725
|
+
* - DynamicDate.YESTERDAY
|
|
726
|
+
* - DynamicDate.YESTERDAY.start
|
|
727
|
+
* - DynamicDate.NEXTDAYS.5.start
|
|
728
|
+
* - DynamicDate.TODAYFROMTO.1.5.start
|
|
729
|
+
*/
|
|
730
|
+
|
|
731
|
+
const oDateValue = {
|
|
732
|
+
operator: aSemanticDate[1],
|
|
733
|
+
values: []
|
|
734
|
+
};
|
|
735
|
+
let sPosition;
|
|
736
|
+
|
|
737
|
+
if (aSemanticDate.length === 3) {
|
|
738
|
+
sPosition = aSemanticDate[2];
|
|
739
|
+
} else if (aSemanticDate.length === 4) {
|
|
740
|
+
oDateValue.values.push(aSemanticDate[2]);
|
|
741
|
+
sPosition = aSemanticDate[3];
|
|
742
|
+
} else if (aSemanticDate.length === 5) {
|
|
743
|
+
oDateValue.values = aSemanticDate.slice(2, 4);
|
|
744
|
+
sPosition = aSemanticDate[4];
|
|
745
|
+
}
|
|
758
746
|
|
|
759
|
-
|
|
760
|
-
|
|
761
|
-
|
|
747
|
+
let aDynamicDate;
|
|
748
|
+
try {
|
|
749
|
+
aDynamicDate = DynamicDateRange.toDates(oDateValue);
|
|
750
|
+
} catch (error) {
|
|
751
|
+
return oResult;
|
|
752
|
+
}
|
|
762
753
|
|
|
763
|
-
|
|
764
|
-
|
|
765
|
-
|
|
766
|
-
} else {
|
|
767
|
-
oDate = aDynamicDate[0];
|
|
768
|
-
}
|
|
769
|
-
if (!oDate) {
|
|
770
|
-
return oResult;
|
|
771
|
-
}
|
|
754
|
+
if (aSemanticDate.length >= 3 && sPosition !== "start" && sPosition !== "end") {
|
|
755
|
+
return oResult;
|
|
756
|
+
}
|
|
772
757
|
|
|
773
|
-
|
|
774
|
-
|
|
775
|
-
|
|
776
|
-
|
|
777
|
-
|
|
778
|
-
|
|
779
|
-
|
|
780
|
-
|
|
781
|
-
|
|
782
|
-
|
|
783
|
-
|
|
784
|
-
|
|
785
|
-
|
|
786
|
-
|
|
758
|
+
let oDate;
|
|
759
|
+
if (sPosition === "end") {
|
|
760
|
+
oDate = aDynamicDate[1];
|
|
761
|
+
} else {
|
|
762
|
+
oDate = aDynamicDate[0];
|
|
763
|
+
}
|
|
764
|
+
if (!oDate) {
|
|
765
|
+
return oResult;
|
|
766
|
+
}
|
|
767
|
+
|
|
768
|
+
switch (oSemanticDate.edmType) {
|
|
769
|
+
case "Edm.String":
|
|
770
|
+
oResult.value = oDateTimeFormatters.string.format(oDate);
|
|
771
|
+
break;
|
|
772
|
+
case "Edm.Date":
|
|
773
|
+
// This is an OData V4 only type
|
|
774
|
+
// The OData V4 formatter doesn't do any formatting for date so it is done here
|
|
775
|
+
oResult.value = oDateTimeFormatters.date.format(oDate);
|
|
776
|
+
break;
|
|
777
|
+
case "Edm.DateTime":
|
|
778
|
+
// The OData formatter that is used later on converts the date object's UTC time to an OData string
|
|
779
|
+
// Therefore set the UTC date to the local date
|
|
780
|
+
oDate.setUTCFullYear(oDate.getFullYear(), oDate.getMonth(), oDate.getDate());
|
|
781
|
+
oDate.setUTCHours(0, 0, 0, 0);
|
|
782
|
+
oResult.value = oDate;
|
|
783
|
+
break;
|
|
784
|
+
case "Edm.DateTimeOffset":
|
|
785
|
+
if (bODataV4) {
|
|
786
|
+
// The OData V4 formatter doesn't do any formatting for datetimeoffset so it is done here
|
|
787
|
+
oResult.value = oDateTimeFormatters.dateTimeOffsetV4.format(oDate, true);
|
|
788
|
+
} else {
|
|
789
|
+
// The OData formatter converts the date object's UTC time to an OData string
|
|
787
790
|
oResult.value = oDate;
|
|
788
|
-
|
|
789
|
-
|
|
790
|
-
|
|
791
|
-
|
|
792
|
-
|
|
793
|
-
} else {
|
|
794
|
-
// The OData formatter converts the date object's UTC time to an OData string
|
|
795
|
-
oResult.value = oDate;
|
|
796
|
-
}
|
|
797
|
-
break;
|
|
798
|
-
default:
|
|
799
|
-
break;
|
|
800
|
-
}
|
|
791
|
+
}
|
|
792
|
+
break;
|
|
793
|
+
default:
|
|
794
|
+
break;
|
|
795
|
+
}
|
|
801
796
|
|
|
802
|
-
|
|
803
|
-
});
|
|
797
|
+
return oResult;
|
|
804
798
|
});
|
|
805
799
|
};
|
|
806
800
|
|
|
@@ -845,7 +839,7 @@ sap.ui.define([
|
|
|
845
839
|
* @since 1.112.0
|
|
846
840
|
*/
|
|
847
841
|
this.hasSemanticDateRanges = function (sUrl) {
|
|
848
|
-
|
|
842
|
+
const oPlaceholders = this._extractUrlPlaceholders(sUrl, this._rSemanticDateRangeRegex);
|
|
849
843
|
return oPlaceholders.extractedReferences.length > 0;
|
|
850
844
|
};
|
|
851
845
|
}
|