@sapui5/sap.ushell 1.131.1 → 1.132.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.
Files changed (418) hide show
  1. package/package.json +1 -1
  2. package/src/main/js/sap/ushell/.library +37 -1
  3. package/src/main/js/sap/ushell/ApplicationType/wdaResolution.js +26 -21
  4. package/src/main/js/sap/ushell/Fiori20Adapter.js +1 -1
  5. package/src/main/js/sap/ushell/Fiori20AdapterTest.js +1 -1
  6. package/src/main/js/sap/ushell/NWBCInterface.js +1 -1
  7. package/src/main/js/sap/ushell/TechnicalParameters.js +1 -1
  8. package/src/main/js/sap/ushell/UIActions.js +8 -13
  9. package/src/main/js/sap/ushell/URLTemplateProcessor/DefinitionParameterSetBuilder.js +1 -1
  10. package/src/main/js/sap/ushell/URLTemplateProcessor/DependencyGraph.js +1 -1
  11. package/src/main/js/sap/ushell/URLTemplateProcessor/Functions.js +1 -1
  12. package/src/main/js/sap/ushell/URLTemplateProcessor/Resolvers.js +1 -1
  13. package/src/main/js/sap/ushell/URLTemplateProcessor/TemplateParameterParser.js +1 -1
  14. package/src/main/js/sap/ushell/URLTemplateProcessor/utils.js +1 -1
  15. package/src/main/js/sap/ushell/URLTemplateProcessor.js +1 -1
  16. package/src/main/js/sap/ushell/Ui5NativeServiceFactory.js +1 -1
  17. package/src/main/js/sap/ushell/Ui5ServiceFactory.js +1 -1
  18. package/src/main/js/sap/ushell/User.js +74 -48
  19. package/src/main/js/sap/ushell/adapters/cdm/ClientSideTargetResolutionAdapter.js +1 -1
  20. package/src/main/js/sap/ushell/adapters/cdm/CommonDataModelAdapter.js +1 -1
  21. package/src/main/js/sap/ushell/adapters/cdm/ConfigurationDefaultsAdapter.js +1 -1
  22. package/src/main/js/sap/ushell/adapters/cdm/ContainerAdapter.js +67 -11
  23. package/src/main/js/sap/ushell/adapters/cdm/LaunchPageAdapter.js +1 -1
  24. package/src/main/js/sap/ushell/adapters/cdm/MenuAdapter.js +1 -1
  25. package/src/main/js/sap/ushell/adapters/cdm/PagesCommonDataModelAdapter.js +1 -1
  26. package/src/main/js/sap/ushell/adapters/cdm/PersonalizationAdapter.js +1 -1
  27. package/src/main/js/sap/ushell/adapters/cdm/PersonalizationV2Adapter.js +1 -1
  28. package/src/main/js/sap/ushell/adapters/cdm/Ui5ComponentLoaderAdapter.js +1 -1
  29. package/src/main/js/sap/ushell/adapters/cdm/_LaunchPage/modifyHome.js +1 -1
  30. package/src/main/js/sap/ushell/adapters/cdm/_LaunchPage/readCatalogs.js +1 -1
  31. package/src/main/js/sap/ushell/adapters/cdm/_LaunchPage/readHome.js +1 -1
  32. package/src/main/js/sap/ushell/adapters/cdm/_LaunchPage/uri.transform.js +1 -1
  33. package/src/main/js/sap/ushell/adapters/cdm/util/AppForInbound.js +1 -1
  34. package/src/main/js/sap/ushell/adapters/cdm/util/cdmSiteUtils.js +1 -1
  35. package/src/main/js/sap/ushell/adapters/cdm/v3/AdapterBase.js +1 -1
  36. package/src/main/js/sap/ushell/adapters/cdm/v3/FlpLaunchPageAdapter.js +1 -1
  37. package/src/main/js/sap/ushell/adapters/cdm/v3/LaunchPageAdapter.js +1 -1
  38. package/src/main/js/sap/ushell/adapters/cdm/v3/StaticGroupsAdapter.js +1 -1
  39. package/src/main/js/sap/ushell/adapters/cdm/v3/_LaunchPage/readApplications.js +1 -1
  40. package/src/main/js/sap/ushell/adapters/cdm/v3/_LaunchPage/readCatalogs.js +1 -1
  41. package/src/main/js/sap/ushell/adapters/cdm/v3/_LaunchPage/readHome.js +1 -1
  42. package/src/main/js/sap/ushell/adapters/cdm/v3/_LaunchPage/readPages.js +1 -1
  43. package/src/main/js/sap/ushell/adapters/cdm/v3/_LaunchPage/readUtils.js +1 -1
  44. package/src/main/js/sap/ushell/adapters/cdm/v3/_LaunchPage/readVisualizations.js +1 -1
  45. package/src/main/js/sap/ushell/adapters/cep/MenuAdapter.js +357 -182
  46. package/src/main/js/sap/ushell/adapters/cep/NavTargetResolutionAdapter.js +1 -1
  47. package/src/main/js/sap/ushell/adapters/cep/NavTargetResolutionInternalAdapter.js +1 -1
  48. package/src/main/js/sap/ushell/adapters/cep/SearchCEPAdapter.js +1 -1
  49. package/src/main/js/sap/ushell/adapters/cflp/UserDefaultParameterPersistenceAdapter.js +1 -1
  50. package/src/main/js/sap/ushell/adapters/local/AdapterContainer.js +1 -1
  51. package/src/main/js/sap/ushell/adapters/local/AppStateAdapter.js +1 -1
  52. package/src/main/js/sap/ushell/adapters/local/ClientSideTargetResolutionAdapter.js +1 -1
  53. package/src/main/js/sap/ushell/adapters/local/ContainerAdapter.js +68 -4
  54. package/src/main/js/sap/ushell/adapters/local/FlpLaunchPageAdapter.js +1 -1
  55. package/src/main/js/sap/ushell/adapters/local/LaunchPageAdapter.js +1 -1
  56. package/src/main/js/sap/ushell/adapters/local/NavTargetResolutionAdapter.js +1 -1
  57. package/src/main/js/sap/ushell/adapters/local/NavTargetResolutionInternalAdapter.js +1 -1
  58. package/src/main/js/sap/ushell/adapters/local/PageBuildingAdapter.js +1 -1
  59. package/src/main/js/sap/ushell/adapters/local/PagePersistenceAdapter.js +1 -1
  60. package/src/main/js/sap/ushell/adapters/local/PersonalizationAdapter.js +1 -1
  61. package/src/main/js/sap/ushell/adapters/local/PersonalizationV2Adapter.js +1 -1
  62. package/src/main/js/sap/ushell/adapters/local/SearchAdapter.js +1 -1
  63. package/src/main/js/sap/ushell/adapters/local/SearchCEPAdapter.js +1 -1
  64. package/src/main/js/sap/ushell/adapters/local/SupportTicketAdapter.js +1 -1
  65. package/src/main/js/sap/ushell/adapters/local/Ui5ComponentLoaderAdapter.js +1 -1
  66. package/src/main/js/sap/ushell/adapters/local/UserDefaultParameterPersistenceAdapter.js +1 -1
  67. package/src/main/js/sap/ushell/adapters/local/UserInfoAdapter.js +1 -1
  68. package/src/main/js/sap/ushell/appRuntime/ui5/AppRuntime.js +0 -11
  69. package/src/main/js/sap/ushell/appRuntime/ui5/BusyIndicator.js +21 -27
  70. package/src/main/js/sap/ushell/appRuntime/ui5/plugins/rtaAgent/i18n/i18n_en_US_saptrc.properties +5 -5
  71. package/src/main/js/sap/ushell/appRuntime/ui5/plugins/rtaShell/i18n/i18n_en_US_saptrc.properties +2 -2
  72. package/src/main/js/sap/ushell/appRuntime/ui5/renderers/fiori2/RendererExtensions.js +1 -1
  73. package/src/main/js/sap/ushell/appRuntime/ui5/services/AppConfiguration.js +1 -1
  74. package/src/main/js/sap/ushell/appRuntime/ui5/services/AppLifeCycle.js +1 -1
  75. package/src/main/js/sap/ushell/appRuntime/ui5/services/AppLifeCycleAgent.js +4 -12
  76. package/src/main/js/sap/ushell/appRuntime/ui5/services/AppState.js +1 -1
  77. package/src/main/js/sap/ushell/appRuntime/ui5/services/Bookmark.js +1 -1
  78. package/src/main/js/sap/ushell/appRuntime/ui5/services/BookmarkV2.js +1 -1
  79. package/src/main/js/sap/ushell/appRuntime/ui5/services/CommonDataModel.js +1 -1
  80. package/src/main/js/sap/ushell/appRuntime/ui5/services/Container.js +33 -9
  81. package/src/main/js/sap/ushell/appRuntime/ui5/services/CrossApplicationNavigation.js +1 -1
  82. package/src/main/js/sap/ushell/appRuntime/ui5/services/Extension/Item.js +1 -1
  83. package/src/main/js/sap/ushell/appRuntime/ui5/services/Extension.js +1 -1
  84. package/src/main/js/sap/ushell/appRuntime/ui5/services/FrameBoundExtension.js +1 -1
  85. package/src/main/js/sap/ushell/appRuntime/ui5/services/LaunchPage.js +1 -1
  86. package/src/main/js/sap/ushell/appRuntime/ui5/services/MessageBroker.js +1 -1
  87. package/src/main/js/sap/ushell/appRuntime/ui5/services/NavTargetResolution.js +1 -1
  88. package/src/main/js/sap/ushell/appRuntime/ui5/services/NavTargetResolutionInternal.js +1 -1
  89. package/src/main/js/sap/ushell/appRuntime/ui5/services/Navigation.js +1 -1
  90. package/src/main/js/sap/ushell/appRuntime/ui5/services/ReferenceResolver.js +1 -1
  91. package/src/main/js/sap/ushell/appRuntime/ui5/services/ShellNavigation.js +1 -1
  92. package/src/main/js/sap/ushell/appRuntime/ui5/services/ShellNavigationInternal.js +1 -1
  93. package/src/main/js/sap/ushell/appRuntime/ui5/services/ShellUIService.js +13 -1
  94. package/src/main/js/sap/ushell/appRuntime/ui5/services/UserInfo.js +1 -1
  95. package/src/main/js/sap/ushell/appRuntime/ui5/services/adapters/Ui5ComponentLoaderAdapter.js +1 -1
  96. package/src/main/js/sap/ushell/appRuntime/ui5/style.css +48 -0
  97. package/src/main/js/sap/ushell/bootstrap/SchedulingAgent/LoadingConfiguration.json +4 -0
  98. package/src/main/js/sap/ushell/bootstrap/SchedulingAgent/StepConfiguration.json +20 -0
  99. package/src/main/js/sap/ushell/bootstrap/SchedulingAgent/logger.js +1 -1
  100. package/src/main/js/sap/ushell/bootstrap/SchedulingAgent/state.js +10 -4
  101. package/src/main/js/sap/ushell/bootstrap/common/common.configure.ui5datetimeformat.js +1 -1
  102. package/src/main/js/sap/ushell/bootstrap/common/common.create.configcontract.core.js +11 -1
  103. package/src/main/js/sap/ushell/bootstrap/sandbox2/sandboxConfig.json +1 -2
  104. package/src/main/js/sap/ushell/bootstrap/sandbox2.js +1 -1
  105. package/src/main/js/sap/ushell/components/MessagingHelper.js +3 -3
  106. package/src/main/js/sap/ushell/components/appfinder/manifest.json +1 -1
  107. package/src/main/js/sap/ushell/components/applicationIntegration/AppLifeCycle.js +14 -11
  108. package/src/main/js/sap/ushell/components/applicationIntegration/application/Application.js +1 -1
  109. package/src/main/js/sap/ushell/components/applicationIntegration/application/BlueBoxHandler.js +1 -1
  110. package/src/main/js/sap/ushell/components/applicationIntegration/application/BlueBoxesCache.js +32 -51
  111. package/src/main/js/sap/ushell/components/applicationIntegration/application/PostMessageAPI.js +31 -68
  112. package/src/main/js/sap/ushell/components/applicationIntegration/configuration/AppMeta.js +26 -8
  113. package/src/main/js/sap/ushell/components/applicationIntegration/relatedServices/RelatedServices.js +40 -32
  114. package/src/main/js/sap/ushell/components/cepsearchresult/app/cards/searchresultwidget/i18n/i18n_en_US_saptrc.properties +37 -37
  115. package/src/main/js/sap/ushell/components/cepsearchresult/app/i18n/i18n_en_US_saptrc.properties +9 -9
  116. package/src/main/js/sap/ushell/components/cepsearchresult/app/util/i18n/i18n_en_US_saptrc.properties +109 -109
  117. package/src/main/js/sap/ushell/components/container/ApplicationContainer.js +2 -1
  118. package/src/main/js/sap/ushell/components/container/resources/resources_en_US_saptrc.properties +6 -6
  119. package/src/main/js/sap/ushell/components/contentFinder/CatalogService.js +1 -1
  120. package/src/main/js/sap/ushell/components/contentFinder/Component.js +507 -359
  121. package/src/main/js/sap/ushell/components/contentFinder/controller/AppSearch.controller.js +253 -161
  122. package/src/main/js/sap/ushell/components/contentFinder/controller/ContentFinderDialog.controller.js +30 -39
  123. package/src/main/js/sap/ushell/components/contentFinder/dialog/Component.js +98 -0
  124. package/src/main/js/sap/ushell/components/contentFinder/dialog/manifest.json +50 -0
  125. package/src/main/js/sap/ushell/components/contentFinder/manifest.json +5 -6
  126. package/src/main/js/sap/ushell/components/contentFinder/model/formatter.js +193 -141
  127. package/src/main/js/sap/ushell/components/contentFinder/resources/resources.properties +14 -30
  128. package/src/main/js/sap/ushell/components/contentFinder/resources/resources_ar.properties +6 -2
  129. package/src/main/js/sap/ushell/components/contentFinder/resources/resources_bg.properties +7 -3
  130. package/src/main/js/sap/ushell/components/contentFinder/resources/resources_ca.properties +6 -2
  131. package/src/main/js/sap/ushell/components/contentFinder/resources/resources_cnr.properties +6 -2
  132. package/src/main/js/sap/ushell/components/contentFinder/resources/resources_cs.properties +6 -2
  133. package/src/main/js/sap/ushell/components/contentFinder/resources/resources_cy.properties +6 -2
  134. package/src/main/js/sap/ushell/components/contentFinder/resources/resources_da.properties +6 -2
  135. package/src/main/js/sap/ushell/components/contentFinder/resources/resources_de.properties +6 -2
  136. package/src/main/js/sap/ushell/components/contentFinder/resources/resources_el.properties +6 -2
  137. package/src/main/js/sap/ushell/components/contentFinder/resources/resources_en.properties +6 -2
  138. package/src/main/js/sap/ushell/components/contentFinder/resources/resources_en_GB.properties +6 -2
  139. package/src/main/js/sap/ushell/components/contentFinder/resources/resources_en_US_saprigi.properties +2 -1
  140. package/src/main/js/sap/ushell/components/contentFinder/resources/resources_en_US_saptrc.properties +45 -26
  141. package/src/main/js/sap/ushell/components/contentFinder/resources/resources_es.properties +6 -2
  142. package/src/main/js/sap/ushell/components/contentFinder/resources/resources_es_MX.properties +6 -2
  143. package/src/main/js/sap/ushell/components/contentFinder/resources/resources_et.properties +6 -2
  144. package/src/main/js/sap/ushell/components/contentFinder/resources/resources_fi.properties +6 -2
  145. package/src/main/js/sap/ushell/components/contentFinder/resources/resources_fr.properties +6 -2
  146. package/src/main/js/sap/ushell/components/contentFinder/resources/resources_fr_CA.properties +6 -2
  147. package/src/main/js/sap/ushell/components/contentFinder/resources/resources_hi.properties +6 -2
  148. package/src/main/js/sap/ushell/components/contentFinder/resources/resources_hr.properties +8 -4
  149. package/src/main/js/sap/ushell/components/contentFinder/resources/resources_hu.properties +6 -2
  150. package/src/main/js/sap/ushell/components/contentFinder/resources/resources_id.properties +6 -2
  151. package/src/main/js/sap/ushell/components/contentFinder/resources/resources_it.properties +6 -2
  152. package/src/main/js/sap/ushell/components/contentFinder/resources/resources_iw.properties +6 -2
  153. package/src/main/js/sap/ushell/components/contentFinder/resources/resources_ja.properties +6 -2
  154. package/src/main/js/sap/ushell/components/contentFinder/resources/resources_kk.properties +6 -2
  155. package/src/main/js/sap/ushell/components/contentFinder/resources/resources_ko.properties +6 -2
  156. package/src/main/js/sap/ushell/components/contentFinder/resources/resources_lt.properties +6 -2
  157. package/src/main/js/sap/ushell/components/contentFinder/resources/resources_lv.properties +6 -2
  158. package/src/main/js/sap/ushell/components/contentFinder/resources/resources_mk.properties +6 -2
  159. package/src/main/js/sap/ushell/components/contentFinder/resources/resources_ms.properties +6 -2
  160. package/src/main/js/sap/ushell/components/contentFinder/resources/resources_nl.properties +6 -2
  161. package/src/main/js/sap/ushell/components/contentFinder/resources/resources_no.properties +6 -2
  162. package/src/main/js/sap/ushell/components/contentFinder/resources/resources_pl.properties +6 -2
  163. package/src/main/js/sap/ushell/components/contentFinder/resources/resources_pt.properties +6 -2
  164. package/src/main/js/sap/ushell/components/contentFinder/resources/resources_pt_PT.properties +6 -2
  165. package/src/main/js/sap/ushell/components/contentFinder/resources/resources_ro.properties +6 -2
  166. package/src/main/js/sap/ushell/components/contentFinder/resources/resources_ru.properties +7 -3
  167. package/src/main/js/sap/ushell/components/contentFinder/resources/resources_sh.properties +6 -2
  168. package/src/main/js/sap/ushell/components/contentFinder/resources/resources_sk.properties +6 -2
  169. package/src/main/js/sap/ushell/components/contentFinder/resources/resources_sl.properties +6 -2
  170. package/src/main/js/sap/ushell/components/contentFinder/resources/resources_sr.properties +6 -2
  171. package/src/main/js/sap/ushell/components/contentFinder/resources/resources_sv.properties +6 -2
  172. package/src/main/js/sap/ushell/components/contentFinder/resources/resources_th.properties +6 -2
  173. package/src/main/js/sap/ushell/components/contentFinder/resources/resources_tr.properties +6 -2
  174. package/src/main/js/sap/ushell/components/contentFinder/resources/resources_uk.properties +6 -2
  175. package/src/main/js/sap/ushell/components/contentFinder/resources/resources_vi.properties +6 -2
  176. package/src/main/js/sap/ushell/components/contentFinder/resources/resources_zh_CN.properties +6 -2
  177. package/src/main/js/sap/ushell/components/contentFinder/resources/resources_zh_TW.properties +6 -2
  178. package/src/main/js/sap/ushell/components/contentFinder/view/AppSearch.view.xml +90 -96
  179. package/src/main/js/sap/ushell/components/contentFinder/view/AppSearchBox.fragment.xml +58 -38
  180. package/src/main/js/sap/ushell/components/contentFinder/view/AppSearchCategoryTree.fragment.xml +20 -8
  181. package/src/main/js/sap/ushell/components/contentFinder/view/AppSearchList.fragment.xml +41 -26
  182. package/src/main/js/sap/ushell/components/contentFinder/view/ContentFinderDialog.view.xml +24 -58
  183. package/src/main/js/sap/ushell/components/contentFinder/view/VisualizationsNoDataIllustratedMessage.fragment.xml +7 -9
  184. package/src/main/js/sap/ushell/components/contentFinderStandalone/Component.js +5 -5
  185. package/src/main/js/sap/ushell/components/contentFinderStandalone/controller/ContentFinderStandalone.controller.js +180 -162
  186. package/src/main/js/sap/ushell/components/contentFinderStandalone/manifest.json +33 -4
  187. package/src/main/js/sap/ushell/components/contentFinderStandalone/resources/resources.properties +5 -0
  188. package/src/main/js/sap/ushell/components/contentFinderStandalone/resources/resources_en_US_saptrc.properties +3 -0
  189. package/src/main/js/sap/ushell/components/contentFinderStandalone/view/ContentFinderStandalone.view.xml +9 -8
  190. package/src/main/js/sap/ushell/components/factsheet/Component.js +1 -1
  191. package/src/main/js/sap/ushell/components/homepage/ActionMode.js +1 -1
  192. package/src/main/js/sap/ushell/components/homepage/DashboardContent.view.js +5 -3
  193. package/src/main/js/sap/ushell/components/homepage/DashboardGroupsBox.js +1 -1
  194. package/src/main/js/sap/ushell/components/homepage/DashboardUIActions.js +1 -1
  195. package/src/main/js/sap/ushell/components/homepage/manifest.json +1 -1
  196. package/src/main/js/sap/ushell/components/pages/ActionMode.js +1 -1
  197. package/src/main/js/sap/ushell/components/pages/Component.js +1 -1
  198. package/src/main/js/sap/ushell/components/pages/MyHomeImport.js +1 -1
  199. package/src/main/js/sap/ushell/components/pages/controller/PageRuntime.controller.js +49 -16
  200. package/src/main/js/sap/ushell/components/pages/fragment/DialogPageNotExists.fragment.xml +27 -0
  201. package/src/main/js/sap/ushell/components/pages/manifest.json +1 -1
  202. package/src/main/js/sap/ushell/components/pages/view/PageRuntime.view.xml +1 -6
  203. package/src/main/js/sap/ushell/components/runtimeSwitcher/controller/RuntimeSwitcher.controller.js +1 -1
  204. package/src/main/js/sap/ushell/components/runtimeSwitcher/manifest.json +1 -1
  205. package/src/main/js/sap/ushell/components/shell/FloatingContainer/manifest.json +1 -1
  206. package/src/main/js/sap/ushell/components/shell/MenuBar/controller/MenuBar.controller.js +1 -0
  207. package/src/main/js/sap/ushell/components/shell/MenuBar/manifest.json +1 -1
  208. package/src/main/js/sap/ushell/components/shell/NavigationBarMenu/controller/NavigationBarMenu.controller.js +1 -1
  209. package/src/main/js/sap/ushell/components/shell/NavigationBarMenu/manifest.json +1 -1
  210. package/src/main/js/sap/ushell/components/shell/Notifications/Component.js +1 -1
  211. package/src/main/js/sap/ushell/components/shell/ProductSwitch/Component.js +1 -1
  212. package/src/main/js/sap/ushell/components/shell/Search/manifest.json +1 -1
  213. package/src/main/js/sap/ushell/components/shell/SearchCEP/Component.js +1 -1
  214. package/src/main/js/sap/ushell/components/shell/SearchCEP/SearchCEP.controller.js +4 -12
  215. package/src/main/js/sap/ushell/components/shell/SearchCEP/SearchProviders/FrequentActivityProvider.js +1 -1
  216. package/src/main/js/sap/ushell/components/shell/SearchCEP/SearchProviders/RecentSearchProvider.js +1 -1
  217. package/src/main/js/sap/ushell/components/shell/SearchCEP/SearchProviders/SearchProvider.js +1 -1
  218. package/src/main/js/sap/ushell/components/shell/SearchCEP/SearchProviders/SearchServiceProvider.js +1 -1
  219. package/src/main/js/sap/ushell/components/shell/Settings/Component.js +1 -1
  220. package/src/main/js/sap/ushell/components/shell/Settings/appearance/Appearance.controller.js +4 -1
  221. package/src/main/js/sap/ushell/components/shell/Settings/appearance/Appearance.view.xml +1 -1
  222. package/src/main/js/sap/ushell/components/shell/Settings/userLanguageRegion/LanguageRegionSelector.controller.js +16 -0
  223. package/src/main/js/sap/ushell/components/shell/Settings/userLanguageRegion/LanguageRegionSelector.view.xml +40 -9
  224. package/src/main/js/sap/ushell/components/shell/SideNavigation/Component.js +57 -0
  225. package/src/main/js/sap/ushell/components/shell/SideNavigation/controller/SideNavigation.controller.js +432 -0
  226. package/src/main/js/sap/ushell/components/shell/SideNavigation/manifest.json +45 -0
  227. package/src/main/js/sap/ushell/components/shell/SideNavigation/resources/resources.properties +8 -0
  228. package/src/main/js/sap/ushell/components/shell/SideNavigation/view/SideNavigation.view.xml +35 -0
  229. package/src/main/js/sap/ushell/components/shell/UserActionsMenu/Component.js +1 -1
  230. package/src/main/js/sap/ushell/components/shell/UserImage/Component.js +1 -1
  231. package/src/main/js/sap/ushell/components/tiles/applauncher/Configuration.view.xml +1 -1
  232. package/src/main/js/sap/ushell/components/tiles/applauncherdynamic/Configuration.view.xml +1 -1
  233. package/src/main/js/sap/ushell/components/visualizationOrganizer/Component.js +1 -1
  234. package/src/main/js/sap/ushell/components/workPageBuilder/Component.js +1 -1
  235. package/src/main/js/sap/ushell/components/workPageBuilder/controller/WorkPageBuilder.accessibility.js +1 -1
  236. package/src/main/js/sap/ushell/components/workPageBuilder/controller/WorkPageBuilder.controller.js +61 -61
  237. package/src/main/js/sap/ushell/components/workPageBuilder/controls/WorkPage.js +1 -1
  238. package/src/main/js/sap/ushell/components/workPageBuilder/controls/WorkPageButton.js +1 -1
  239. package/src/main/js/sap/ushell/components/workPageBuilder/controls/WorkPageCell.js +1 -1
  240. package/src/main/js/sap/ushell/components/workPageBuilder/controls/WorkPageColumn.js +1 -1
  241. package/src/main/js/sap/ushell/components/workPageBuilder/controls/WorkPageColumnResizer.js +1 -1
  242. package/src/main/js/sap/ushell/components/workPageBuilder/controls/WorkPageRow.js +1 -1
  243. package/src/main/js/sap/ushell/components/workPageBuilder/manifest.json +4 -10
  244. package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources.properties +6 -0
  245. package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_en_US_saptrc.properties +88 -77
  246. package/src/main/js/sap/ushell/components/workPageBuilder/view/WorkPageBuilder.view.xml +9 -2
  247. package/src/main/js/sap/ushell/components/workPageRuntime/Component.js +1 -1
  248. package/src/main/js/sap/ushell/components/workPageRuntime/controller/WorkPageRuntime.controller.js +1 -1
  249. package/src/main/js/sap/ushell/components/workPageRuntime/manifest.json +1 -1
  250. package/src/main/js/sap/ushell/designtime/ApplicationContainer.designtime.js +1 -1
  251. package/src/main/js/sap/ushell/library.js +7 -2
  252. package/src/main/js/sap/ushell/navigationMode.js +1 -1
  253. package/src/main/js/sap/ushell/performance/ShellAnalytics.js +1 -1
  254. package/src/main/js/sap/ushell/performance/StatisticalRecord.js +1 -1
  255. package/src/main/js/sap/ushell/plugins/appwarmup/Component.js +1 -1
  256. package/src/main/js/sap/ushell/plugins/rta/i18n/i18n_en_US_saptrc.properties +8 -8
  257. package/src/main/js/sap/ushell/renderer/Renderer.js +2 -2
  258. package/src/main/js/sap/ushell/renderer/Shell.controller.js +27 -11
  259. package/src/main/js/sap/ushell/renderer/resources/resources.properties +8 -0
  260. package/src/main/js/sap/ushell/renderer/resources/resources_ar.properties +8 -8
  261. package/src/main/js/sap/ushell/renderer/resources/resources_bg.properties +8 -8
  262. package/src/main/js/sap/ushell/renderer/resources/resources_ca.properties +8 -8
  263. package/src/main/js/sap/ushell/renderer/resources/resources_cnr.properties +8 -8
  264. package/src/main/js/sap/ushell/renderer/resources/resources_cs.properties +8 -8
  265. package/src/main/js/sap/ushell/renderer/resources/resources_cy.properties +8 -8
  266. package/src/main/js/sap/ushell/renderer/resources/resources_da.properties +8 -8
  267. package/src/main/js/sap/ushell/renderer/resources/resources_de.properties +8 -8
  268. package/src/main/js/sap/ushell/renderer/resources/resources_el.properties +8 -8
  269. package/src/main/js/sap/ushell/renderer/resources/resources_en.properties +8 -8
  270. package/src/main/js/sap/ushell/renderer/resources/resources_en_GB.properties +8 -8
  271. package/src/main/js/sap/ushell/renderer/resources/resources_en_US_saprigi.properties +4 -3
  272. package/src/main/js/sap/ushell/renderer/resources/resources_en_US_saptrc.properties +1009 -990
  273. package/src/main/js/sap/ushell/renderer/resources/resources_es.properties +12 -12
  274. package/src/main/js/sap/ushell/renderer/resources/resources_es_MX.properties +8 -8
  275. package/src/main/js/sap/ushell/renderer/resources/resources_et.properties +8 -8
  276. package/src/main/js/sap/ushell/renderer/resources/resources_fi.properties +8 -8
  277. package/src/main/js/sap/ushell/renderer/resources/resources_fr.properties +8 -8
  278. package/src/main/js/sap/ushell/renderer/resources/resources_fr_CA.properties +8 -8
  279. package/src/main/js/sap/ushell/renderer/resources/resources_hi.properties +7 -7
  280. package/src/main/js/sap/ushell/renderer/resources/resources_hr.properties +29 -29
  281. package/src/main/js/sap/ushell/renderer/resources/resources_hu.properties +8 -8
  282. package/src/main/js/sap/ushell/renderer/resources/resources_id.properties +12 -12
  283. package/src/main/js/sap/ushell/renderer/resources/resources_it.properties +8 -8
  284. package/src/main/js/sap/ushell/renderer/resources/resources_iw.properties +8 -8
  285. package/src/main/js/sap/ushell/renderer/resources/resources_ja.properties +8 -8
  286. package/src/main/js/sap/ushell/renderer/resources/resources_kk.properties +8 -8
  287. package/src/main/js/sap/ushell/renderer/resources/resources_ko.properties +8 -8
  288. package/src/main/js/sap/ushell/renderer/resources/resources_lt.properties +8 -8
  289. package/src/main/js/sap/ushell/renderer/resources/resources_lv.properties +8 -8
  290. package/src/main/js/sap/ushell/renderer/resources/resources_mk.properties +10 -10
  291. package/src/main/js/sap/ushell/renderer/resources/resources_ms.properties +8 -8
  292. package/src/main/js/sap/ushell/renderer/resources/resources_nl.properties +8 -8
  293. package/src/main/js/sap/ushell/renderer/resources/resources_no.properties +8 -8
  294. package/src/main/js/sap/ushell/renderer/resources/resources_pl.properties +8 -8
  295. package/src/main/js/sap/ushell/renderer/resources/resources_pt.properties +8 -8
  296. package/src/main/js/sap/ushell/renderer/resources/resources_pt_PT.properties +8 -8
  297. package/src/main/js/sap/ushell/renderer/resources/resources_ro.properties +19 -19
  298. package/src/main/js/sap/ushell/renderer/resources/resources_ru.properties +8 -8
  299. package/src/main/js/sap/ushell/renderer/resources/resources_sh.properties +8 -8
  300. package/src/main/js/sap/ushell/renderer/resources/resources_sk.properties +8 -8
  301. package/src/main/js/sap/ushell/renderer/resources/resources_sl.properties +8 -8
  302. package/src/main/js/sap/ushell/renderer/resources/resources_sr.properties +8 -8
  303. package/src/main/js/sap/ushell/renderer/resources/resources_sv.properties +8 -8
  304. package/src/main/js/sap/ushell/renderer/resources/resources_th.properties +16 -16
  305. package/src/main/js/sap/ushell/renderer/resources/resources_tr.properties +8 -8
  306. package/src/main/js/sap/ushell/renderer/resources/resources_uk.properties +9 -9
  307. package/src/main/js/sap/ushell/renderer/resources/resources_vi.properties +9 -9
  308. package/src/main/js/sap/ushell/renderer/resources/resources_zh_CN.properties +8 -8
  309. package/src/main/js/sap/ushell/renderer/resources/resources_zh_TW.properties +8 -8
  310. package/src/main/js/sap/ushell/renderer/search/searchComponent/manifest.json +1 -1
  311. package/src/main/js/sap/ushell/services/AppConfiguration.js +12 -4
  312. package/src/main/js/sap/ushell/services/AppLifeCycle.js +1 -1
  313. package/src/main/js/sap/ushell/services/AppState.js +1 -1
  314. package/src/main/js/sap/ushell/services/Bookmark.js +56 -8
  315. package/src/main/js/sap/ushell/services/BookmarkV2.js +180 -171
  316. package/src/main/js/sap/ushell/services/ClientSideTargetResolution/Formatter.js +1 -1
  317. package/src/main/js/sap/ushell/services/ClientSideTargetResolution/InboundIndex.js +1 -1
  318. package/src/main/js/sap/ushell/services/ClientSideTargetResolution/InboundProvider.js +1 -1
  319. package/src/main/js/sap/ushell/services/ClientSideTargetResolution/PrelaunchOperations.js +1 -1
  320. package/src/main/js/sap/ushell/services/ClientSideTargetResolution/Search.js +1 -1
  321. package/src/main/js/sap/ushell/services/ClientSideTargetResolution/StagedLogger.js +1 -1
  322. package/src/main/js/sap/ushell/services/ClientSideTargetResolution/SystemContext.js +1 -1
  323. package/src/main/js/sap/ushell/services/ClientSideTargetResolution/Utils.js +1 -1
  324. package/src/main/js/sap/ushell/services/ClientSideTargetResolution/VirtualInbounds.js +1 -1
  325. package/src/main/js/sap/ushell/services/ClientSideTargetResolution/XAppStateProcessing.js +1 -1
  326. package/src/main/js/sap/ushell/services/ClientSideTargetResolution.js +1 -1
  327. package/src/main/js/sap/ushell/services/CommonDataModel/SiteConverter.js +1 -1
  328. package/src/main/js/sap/ushell/services/CommonDataModel/vizTypeDefaults/VizTypeDefaults.js +1 -1
  329. package/src/main/js/sap/ushell/services/CommonDataModel.js +156 -137
  330. package/src/main/js/sap/ushell/services/Configuration.js +1 -1
  331. package/src/main/js/sap/ushell/services/ConfigurationDefaults.js +1 -1
  332. package/src/main/js/sap/ushell/services/ContentExtensionAdapterFactory.js +1 -1
  333. package/src/main/js/sap/ushell/services/CrossApplicationNavigation.js +1 -1
  334. package/src/main/js/sap/ushell/services/DarkModeSupport.js +1 -1
  335. package/src/main/js/sap/ushell/services/Extension/Item.js +1 -1
  336. package/src/main/js/sap/ushell/services/Extension.js +1 -1
  337. package/src/main/js/sap/ushell/services/FlpLaunchPage.js +17 -86
  338. package/src/main/js/sap/ushell/services/FrameBoundExtension/FloatingContainer.js +1 -1
  339. package/src/main/js/sap/ushell/services/FrameBoundExtension/Footer.js +1 -1
  340. package/src/main/js/sap/ushell/services/FrameBoundExtension/Item.js +1 -1
  341. package/src/main/js/sap/ushell/services/FrameBoundExtension/SidePane.js +1 -1
  342. package/src/main/js/sap/ushell/services/FrameBoundExtension/ToolArea.js +1 -1
  343. package/src/main/js/sap/ushell/services/FrameBoundExtension.js +1 -1
  344. package/src/main/js/sap/ushell/services/LaunchPage.js +1 -1
  345. package/src/main/js/sap/ushell/services/Menu.js +18 -1
  346. package/src/main/js/sap/ushell/services/Message.js +1 -1
  347. package/src/main/js/sap/ushell/services/MessageBroker/MessageBrokerEngine.js +1 -1
  348. package/src/main/js/sap/ushell/services/MessageBroker.js +1 -1
  349. package/src/main/js/sap/ushell/services/MessageInternal.js +1 -1
  350. package/src/main/js/sap/ushell/services/Navigation/compatibility.js +1 -1
  351. package/src/main/js/sap/ushell/services/Navigation/utils.js +1 -1
  352. package/src/main/js/sap/ushell/services/Navigation.js +1 -1
  353. package/src/main/js/sap/ushell/services/NavigationDataProvider.js +1 -1
  354. package/src/main/js/sap/ushell/services/PageBuilding.js +1 -1
  355. package/src/main/js/sap/ushell/services/PagePersistence.js +1 -1
  356. package/src/main/js/sap/ushell/services/PageReferencing.js +1 -1
  357. package/src/main/js/sap/ushell/services/Pages.js +1 -1
  358. package/src/main/js/sap/ushell/services/Personalization.js +1 -1
  359. package/src/main/js/sap/ushell/services/PersonalizationV2.js +1 -1
  360. package/src/main/js/sap/ushell/services/PluginManager/Extensions.js +1 -1
  361. package/src/main/js/sap/ushell/services/PluginManager/HeaderExtensions.js +1 -1
  362. package/src/main/js/sap/ushell/services/PluginManager/MenuExtensions.js +1 -1
  363. package/src/main/js/sap/ushell/services/PluginManager.js +1 -1
  364. package/src/main/js/sap/ushell/services/ReferenceResolver.js +1 -1
  365. package/src/main/js/sap/ushell/services/Search.js +1 -1
  366. package/src/main/js/sap/ushell/services/SearchCEP.js +1 -1
  367. package/src/main/js/sap/ushell/services/SearchableContent.js +1 -1
  368. package/src/main/js/sap/ushell/services/ShellNavigation.js +1 -1
  369. package/src/main/js/sap/ushell/services/ShellNavigationHashChanger.js +3 -5
  370. package/src/main/js/sap/ushell/services/SmartNavigation.js +1 -1
  371. package/src/main/js/sap/ushell/services/SpaceContent.js +1 -1
  372. package/src/main/js/sap/ushell/services/UITracer.js +1 -1
  373. package/src/main/js/sap/ushell/services/URLShortening.js +1 -1
  374. package/src/main/js/sap/ushell/services/URLTemplate.js +1 -1
  375. package/src/main/js/sap/ushell/services/Ui5ComponentLoader/utils.js +1 -1
  376. package/src/main/js/sap/ushell/services/Ui5ComponentLoader.js +1 -1
  377. package/src/main/js/sap/ushell/services/UserDefaultParameterPersistence.js +1 -1
  378. package/src/main/js/sap/ushell/services/UserDefaultParameters.js +1 -1
  379. package/src/main/js/sap/ushell/services/UserInfo.js +1 -1
  380. package/src/main/js/sap/ushell/services/UserRecents/RecentActivity.js +4 -1
  381. package/src/main/js/sap/ushell/services/UserRecents.js +1 -1
  382. package/src/main/js/sap/ushell/services/VisualizationDataProvider.js +1 -1
  383. package/src/main/js/sap/ushell/services/VisualizationInstantiation.js +1 -1
  384. package/src/main/js/sap/ushell/services/_ContentExtensionAdapterFactory/ContentExtensionAdapterConfig.js +1 -1
  385. package/src/main/js/sap/ushell/services/_ContentExtensionAdapterFactory/FeaturedGroupConfig.js +1 -1
  386. package/src/main/js/sap/ushell/services/_CrossApplicationNavigation/utils.js +1 -1
  387. package/src/main/js/sap/ushell/services/_PageReferencing/PageReferencer.js +1 -1
  388. package/src/main/js/sap/ushell/support/plugins/flpConfig/FlpConfigurationPlugin.js +1 -1
  389. package/src/main/js/sap/ushell/themes/base/Catalog.less +1 -0
  390. package/src/main/js/sap/ushell/themes/base/fonts/BusinessSuiteInAppSymbols.json +5 -1
  391. package/src/main/js/sap/ushell/themes/base/fonts/BusinessSuiteInAppSymbols.ttf +0 -0
  392. package/src/main/js/sap/ushell/themes/base/fonts/BusinessSuiteInAppSymbols.woff +0 -0
  393. package/src/main/js/sap/ushell/themes/base/fonts/BusinessSuiteInAppSymbols.woff2 +0 -0
  394. package/src/main/js/sap/ushell/themes/sap_belize_base/Catalog.less +1 -0
  395. package/src/main/js/sap/ushell/themes/sap_bluecrystal_base/Catalog.less +1 -0
  396. package/src/main/js/sap/ushell/themes/sap_hcb/base_Catalog.less +1 -0
  397. package/src/main/js/sap/ushell/ui/cards/RecentActivitiesExtension.js +1 -1
  398. package/src/main/js/sap/ushell/ui/launchpad/ExtendedChangeDetection.js +1 -1
  399. package/src/main/js/sap/ushell/ui/launchpad/Section.js +1 -1
  400. package/src/main/js/sap/ushell/ui/launchpad/section/CompactArea.js +1 -1
  401. package/src/main/js/sap/ushell/ui/shell/ToolAreaItem.js +1 -1
  402. package/src/main/js/sap/ushell/ui/utils.js +1 -1
  403. package/src/main/js/sap/ushell/ui5service/ShellUIServiceFactory.js +1 -1
  404. package/src/main/js/sap/ushell/ui5service/UserStatus.js +1 -1
  405. package/src/main/js/sap/ushell/utils/UrlShortening.js +1 -1
  406. package/src/main/js/sap/ushell/utils/tilecard/resources/resources_en_US_saptrc.properties +3 -3
  407. package/src/main/js/sap/ushell/utils/workpage/WorkPageHost.js +8 -7
  408. package/src/main/js/sap/ushell/utils/workpage/WorkPageService.js +75 -11
  409. package/src/main/js/sap/ushell/utils/workpage/WorkPageVizInstantiation.js +47 -2
  410. package/src/main/js/sap/ushell/utils/workpage/resources/resources.properties +6 -0
  411. package/src/main/js/sap/ushell/utils/workpage/resources/resources_en_US_saptrc.properties +95 -77
  412. package/src/main/js/sap/ushell/utils/workpage/resources/resources_es.properties +5 -5
  413. package/src/main/js/sap/ushell/utils.js +1 -1
  414. package/src/test/js/sap/ushell/bootstrap/sandbox.js +1 -1
  415. package/ui5.yaml +1 -0
  416. package/src/main/js/sap/ushell/components/contentFinder/controller/WidgetGallery.controller.js +0 -62
  417. package/src/main/js/sap/ushell/components/contentFinder/view/WidgetGallery.view.xml +0 -102
  418. package/src/main/js/sap/ushell/components/contentFinderStandalone/manifestAppSearch.json +0 -50
@@ -11,15 +11,19 @@
11
11
  sap.ui.define([
12
12
  "sap/base/Log",
13
13
  "sap/base/i18n/Localization",
14
+ "sap/ushell/components/tiles/utils",
14
15
  "sap/ushell/Config",
15
16
  "sap/ushell/library",
16
- "sap/ushell/utils/HttpClient"
17
+ "sap/ushell/utils/HttpClient",
18
+ "sap/ushell/utils/workpage/WorkPageService"
17
19
  ], function (
18
20
  Log,
19
21
  Localization,
22
+ utils,
20
23
  Config,
21
24
  ushellLibrary,
22
- HttpClient
25
+ HttpClient,
26
+ WorkPageService
23
27
  ) {
24
28
  "use strict";
25
29
 
@@ -28,6 +32,41 @@ sap.ui.define([
28
32
 
29
33
  var sCEPMenuAdapterComponent = "sap.ushell.adapters.cep.MenuAdapter";
30
34
 
35
+ /**
36
+ * @typedef {object} MenuData - The menu fetched from the site data.
37
+ * @property {string} id - The id of the menu entry.
38
+ * @property {string} type - The type of the menu entry.
39
+ * @property {string} title - The title of the menu entry.
40
+ * @property {MenuData} subMenu - The sub menu entries.
41
+ */
42
+
43
+ /**
44
+ * @enum {string} SubMenuType - The type of the sub menu entry provided by the content api.
45
+ * @private
46
+ */
47
+ const SubMenuType = {
48
+ Workpage: "workpage",
49
+ Visualization: "visualization"
50
+ };
51
+
52
+ /**
53
+ * @enum {string} SubMenuPageType - The pageType of the sub menu entry provided by the content api.
54
+ * @private
55
+ */
56
+ const SubMenuPageType = {
57
+ workpage: "workpage",
58
+ page: "page"
59
+ };
60
+
61
+ /**
62
+ * @enum {string} SpaceEntity - The type of the space entity which is used for the log message.
63
+ * @private
64
+ */
65
+ const SpaceEntity = {
66
+ Menu: "FLP menu",
67
+ ContentNodes: "content nodes"
68
+ };
69
+
31
70
  /**
32
71
  * Constructs a new instance of the CEP Menu Adapter.
33
72
  *
@@ -49,22 +88,50 @@ sap.ui.define([
49
88
  this.httpClient = new HttpClient();
50
89
  this.serviceUrl = oAdapterConfiguration.config.serviceUrl;
51
90
  this.siteId = oAdapterConfiguration.config.siteId;
91
+ this.oWorkPageService = new WorkPageService();
52
92
  this.oSiteDataPromise = this._doRequest(this.serviceUrl, this.siteId);
93
+ this.oVizDataPromise = this._loadVisualizations();
53
94
  } else {
54
95
  Log.error("Invalid configuration provided.", "", sCEPMenuAdapterComponent);
55
96
  }
56
97
  };
57
98
 
99
+ /**
100
+ * Loads the visualizations from the WorkPageService.
101
+ * @returns {Promise<object[]>} The visualizations
102
+ * @since 1.132.0
103
+ * @private
104
+ */
105
+ MenuAdapter.prototype._loadVisualizations = async function () {
106
+ // Workaround until the new menu query is available.
107
+ if (Config.last("/core/menuQueryAvailable")) {
108
+ const aVisualizationIds = await this._getVisualizationIds();
109
+
110
+ if (aVisualizationIds.length > 0) {
111
+ const oFilterParams = {
112
+ filter: [{
113
+ id: {
114
+ in: aVisualizationIds
115
+ }
116
+ }]
117
+ };
118
+ return this.oWorkPageService.loadVisualizations(oFilterParams, true);
119
+ }
120
+ }
121
+
122
+ return [];
123
+ };
124
+
58
125
  /**
59
126
  * Returns whether the menu is enabled.
60
- * The menu is enabled if there's at least one menu entry.
127
+ * The menu is enabled if there's at least one menu entry and the menu position is "Top".
61
128
  *
62
129
  * @returns {Promise<boolean>} True if the menu is enabled.
63
130
  * @since 1.106.0
64
131
  * @private
65
132
  */
66
133
  MenuAdapter.prototype.isMenuEnabled = function () {
67
- if (!Config.last("/core/menu/enabled")) {
134
+ if (!Config.last("/core/menu/enabled") || Config.last("/core/menu/position") !== "Top") {
68
135
  return Promise.resolve(false);
69
136
  }
70
137
 
@@ -73,6 +140,24 @@ sap.ui.define([
73
140
  });
74
141
  };
75
142
 
143
+
144
+ /**
145
+ * Returns whether the side navigation is enabled.
146
+ * The side navigation is enabled if there's at least one menu entry and the menu position is "Side".
147
+ *
148
+ * @returns {Promise<boolean>} True if the side navigation is enabled.
149
+ * @since 1.132.0
150
+ * @private
151
+ */
152
+ MenuAdapter.prototype.isSideNavigationEnabled = async function () {
153
+ if (!Config.last("/core/menu/enabled") || Config.last("/core/menu/position") !== "Side") {
154
+ return false;
155
+ }
156
+
157
+ const aMenuEntries = await this.getMenuEntries();
158
+ return aMenuEntries.length > 0;
159
+ };
160
+
76
161
  /**
77
162
  * Returns a promise that resolves with the menu entries for the pages.
78
163
  *
@@ -80,92 +165,75 @@ sap.ui.define([
80
165
  * @since 1.106.0
81
166
  * @private
82
167
  */
83
- MenuAdapter.prototype.getMenuEntries = function () {
84
- return this.oSiteDataPromise
85
- .then(this._getSpaces.bind(this))
86
- .then(this._buildMenuEntries.bind(this));
168
+ MenuAdapter.prototype.getMenuEntries = async function () {
169
+ const [aMenu, aVisualizations] = await Promise.all([
170
+ this._getMenu(),
171
+ this._getVisualizations()
172
+ ]);
173
+ return this._buildMenuEntries(aMenu, aVisualizations);
87
174
  };
88
175
 
89
176
  /**
90
- * Gets the content nodes for the spaces.
177
+ * Gets the content nodes for the menu.
91
178
  *
92
- * @returns {Promise<ContentNode[]>} The content nodes, @see sap.ushell.services.menu#ContentNode
179
+ * @returns {ContentNode[]} The content nodes, @see sap.ushell.services.menu#ContentNode
93
180
  * @since 1.106.0
94
181
  * @private
95
182
  */
96
- MenuAdapter.prototype.getContentNodes = function () {
97
- return this.oSiteDataPromise
98
- .then(this._getSpaces.bind(this))
99
- .then(this._buildContentNodes.bind(this));
183
+ MenuAdapter.prototype.getContentNodes = async function () {
184
+ const aMenu = await this._getMenu();
185
+ return this._buildContentNodes(aMenu);
186
+ };
187
+
188
+ /**
189
+ * Gets the visualization ids of the menu.
190
+ * @returns {Promise<sVisualizationIds[]>} The visualization ids
191
+ * @since 1.132.0
192
+ * @private
193
+ */
194
+ MenuAdapter.prototype._getVisualizationIds = async function () {
195
+ const sVisualizationIds = new Set();
196
+ const aMenu = await this._getMenu();
197
+
198
+ aMenu.forEach((oMenuEntry) => {
199
+ if (!Array.isArray(oMenuEntry?.subMenu)) {
200
+ Log.warning(`Menu entry ${oMenuEntry.id} does not contain a sub menu array for site-id: ${this.siteId}, ${sCEPMenuAdapterComponent}`);
201
+ return;
202
+ }
203
+
204
+ oMenuEntry.subMenu.forEach((oSubMenuEntry) => {
205
+ if (oSubMenuEntry.type === SubMenuType.Visualization && oSubMenuEntry.id) {
206
+ sVisualizationIds.add(oSubMenuEntry.id);
207
+ }
208
+ });
209
+ });
210
+
211
+ return [...sVisualizationIds];
100
212
  };
101
213
 
102
214
  /**
103
215
  * Builds a menu which is accepted by the menu service.
104
216
  *
105
- * @param {object[]} aSpaces The spaces and pages of the menu
217
+ * @param {MenuData[]} aMenu The menu fetched from the site data.
218
+ * @param {object[]} aVisualizations The Visualizations.
106
219
  * @returns {MenuEntry[]} The menu structure required by the menu service, @see sap.ushell.services.menu#MenuEntry
107
220
  * @since 1.106.0
108
221
  * @private
109
222
  */
110
- MenuAdapter.prototype._buildMenuEntries = function (aSpaces) {
223
+ MenuAdapter.prototype._buildMenuEntries = function (aMenu, aVisualizations) {
111
224
  // Create a 1st level menu entry for each space
112
- // having 2nd level sub menu entries for its pages inside if needed.
225
+ // having 2nd level sub menu entries for its pages and visualizations inside if needed.
113
226
 
114
- return aSpaces
115
- .filter(this._isSpaceNotEmpty.bind(null, "FLP menu"))
116
- .map(function (oSpace) {
117
- var oTopMenuEntry = {
118
- title: oSpace.descriptor.value.title || oSpace.id,
119
- "help-id": "Space-" + oSpace.id,
120
- description: "",
121
- icon: undefined,
122
- type: "IBN",
123
- target: {
124
- semanticObject: "Launchpad",
125
- action: "openFLPPage",
126
- parameters: [
127
- {
128
- name: "spaceId",
129
- value: oSpace.id
130
- },
131
- {
132
- name: "pageId",
133
- value: oSpace.workPages.nodes[0].id
134
- }
135
- ],
136
- innerAppRoute: undefined
137
- },
138
- menuEntries: []
139
- };
227
+ return aMenu
228
+ .filter(this._isSpaceNotEmpty.bind(null, SpaceEntity.Menu))
229
+ .map((oMenu) => {
230
+ const oTopMenuEntry = this._buildMenuEntry(oMenu, aVisualizations);
231
+ const aSubMenuEntries = [];
140
232
 
141
- var aSubMenuEntries = oSpace.workPages.nodes.map(function (oPage) {
142
- oPage.contents = oPage.contents || {};
143
- oPage.contents.descriptor = oPage.contents.descriptor || {};
144
- oPage.contents.descriptor.value = oPage.contents.descriptor.value || {};
145
-
146
- return {
147
- title: oPage.contents.descriptor.value.title || oPage.id,
148
- "help-id": "Page-" + oPage.id,
149
- description: "",
150
- icon: undefined,
151
- type: "IBN",
152
- target: {
153
- semanticObject: "Launchpad",
154
- action: "openFLPPage",
155
- parameters: [
156
- {
157
- name: "spaceId",
158
- value: oSpace.id
159
- },
160
- {
161
- name: "pageId",
162
- value: oPage.id
163
- }
164
- ],
165
- innerAppRoute: undefined
166
- },
167
- menuEntries: []
168
- };
233
+ oMenu.subMenu.forEach((oSubMenuNode) => {
234
+ oSubMenuNode.spaceid = oMenu.id;
235
+ const oSubMenuEntry = this._buildMenuEntry(oSubMenuNode, aVisualizations);
236
+ aSubMenuEntries.push(oSubMenuEntry);
169
237
  });
170
238
 
171
239
  if (aSubMenuEntries.length > 1) {
@@ -177,140 +245,209 @@ sap.ui.define([
177
245
  };
178
246
 
179
247
  /**
180
- * Builds content nodes based on the spaces. The property "isContainer" is set to false for WorkPages (which have no pageType)
248
+ * Builds the menu structure for a single menu entry.
249
+ *
250
+ * @param {MenuData} oMenuEntry The menu object fetched from the site data.
251
+ * @param {object[]} aVisualizations The Visualizations.
252
+ * @returns {MenuEntry[]} The menu structure required by the menu service, @see sap.ushell.services.menu#MenuEntry
253
+ * @since 1.132.0
254
+ * @private
255
+ */
256
+ MenuAdapter.prototype._buildMenuEntry = function (oMenuEntry, aVisualizations) {
257
+ // By default we expect that the menu entry is a page.
258
+ let oSubMenuNode = oMenuEntry;
259
+ let sTitle = oMenuEntry.title;
260
+ let sIcon = oMenuEntry.icon;
261
+ let sHelpId = "Page-";
262
+ let sSemanticObject = "Launchpad";
263
+ let sAction = "openFLPPage";
264
+ let sName = "pageId";
265
+ let sValue = oMenuEntry.id;
266
+
267
+ // When the menu entry has a sub menu, we know that it is a space/top menu entry.
268
+ if (Array.isArray(oMenuEntry?.subMenu) && oMenuEntry.subMenu.length > 0) {
269
+ oSubMenuNode = oMenuEntry.subMenu[0];
270
+ sHelpId = "Space-";
271
+ sValue = oSubMenuNode.id;
272
+
273
+ // In case there is only one sub menu entry, we use that for the top menu entry title.
274
+ if (oMenuEntry.subMenu.length === 1) {
275
+ sTitle = oSubMenuNode.title;
276
+ sIcon = oSubMenuNode.icon;
277
+ }
278
+ }
279
+ // If the node is a visualization the target action should be the visualization target action.
280
+ const oViz = aVisualizations.find((obj) => obj.id === oSubMenuNode?.id);
281
+
282
+ if (oViz && oViz !== undefined) {
283
+ sHelpId = "App-";
284
+ sName = "sap-ui-app-id-hint";
285
+
286
+ if (oViz.targetAppIntent) {
287
+ sValue = oViz.targetAppIntent.businessAppId;
288
+ sSemanticObject = oViz.targetAppIntent.semanticObject;
289
+ sAction = oViz.targetAppIntent.action;
290
+ } else {
291
+ Log.warning(`Visualization ${oViz.id} does not contain a targetAppIntent for site-id: ${this.siteId}, ${sCEPMenuAdapterComponent}`);
292
+ }
293
+ }
294
+
295
+ if (!utils.isIconURIValid(sIcon)) {
296
+ sIcon = undefined;
297
+ }
298
+
299
+ return {
300
+ title: sTitle,
301
+ "help-id": sHelpId + oMenuEntry.id,
302
+ description: "",
303
+ icon: sIcon,
304
+ type: "IBN",
305
+ target: {
306
+ semanticObject: sSemanticObject,
307
+ action: sAction,
308
+ parameters: [
309
+ {
310
+ name: "spaceId",
311
+ value: oMenuEntry.spaceid || oMenuEntry.id
312
+ },
313
+ {
314
+ name: sName,
315
+ value: sValue
316
+ }
317
+ ],
318
+ innerAppRoute: undefined
319
+ },
320
+ menuEntries: []
321
+ };
322
+ };
323
+
324
+ /**
325
+ * Builds content nodes based on the spaces. The property "isContainer" is set to true for pages (which have pageType 'page').
181
326
  *
182
- * @param {object[]} aSpaces The spaces and pages of the menu
327
+ * @param {MenuData[]} aMenu The menu fetched from the site data.
183
328
  * @returns {ContentNode[]} The content nodes required by the menu service, @see sap.ushell.services.menu#ContentNode
184
329
  * @private
185
330
  * @since 1.106.0
186
331
  */
187
- MenuAdapter.prototype._buildContentNodes = function (aSpaces) {
188
- return aSpaces
189
- .filter(this._isSpaceNotEmpty.bind(null, "content nodes"))
332
+ MenuAdapter.prototype._buildContentNodes = function (aMenu) {
333
+ return aMenu
334
+ .filter(this._isSpaceNotEmpty.bind(null, SpaceEntity.ContentNodes))
190
335
  .map(function (oSpace) {
191
336
  return {
192
337
  id: oSpace.id,
193
- label: oSpace.descriptor.value.title || oSpace.id,
338
+ label: oSpace.title || oSpace.id,
194
339
  type: oContentNodeTypes.Space,
195
340
  isContainer: false,
196
- children: oSpace.workPages.nodes.map(function (oPage) {
341
+ children: oSpace.subMenu.map(function (oSubMenuNode) {
342
+ const bIsWorkpage = oSubMenuNode.type === SubMenuType.Workpage;
197
343
  return {
198
- id: oPage.id,
199
- label: oPage.contents.descriptor.value.title || oPage.id,
200
- type: oContentNodeTypes.Page,
201
- isContainer: this._isTraditionalPage(oPage.contents.descriptor),
344
+ id: oSubMenuNode.id,
345
+ label: oSubMenuNode.title || oSubMenuNode.id,
346
+ type: bIsWorkpage ? oContentNodeTypes.Page : oContentNodeTypes.Visualization,
347
+ isContainer: oSubMenuNode?.pageType === SubMenuPageType.page,
202
348
  children: []
203
349
  };
204
- }.bind(this))
350
+ })
205
351
  };
206
- }.bind(this));
352
+ });
207
353
  };
208
354
 
209
355
  /**
210
356
  * Resolves to true if the page with the given sPageId is a WorkPage.
211
- * This is the case if the pageType property in the page descriptor is not "page".
357
+ * This is the case if the type property in the subMenuNode is "workpage" and the pageType is "workpage".
212
358
  *
213
359
  * @param {string} sPageId The pageId to check.
214
360
  * @returns {Promise<boolean>} A promise resolving to true if the pageId is a WorkPage or false if not.
215
361
  * @private
216
362
  * @since 1.107.0
217
363
  */
218
- MenuAdapter.prototype.isWorkPage = function (sPageId) {
219
- return this.oSiteDataPromise
220
- .then(this._getSpaces.bind(this))
221
- .then(function (aSpaces) {
222
- var oFoundPage = aSpaces
223
- .flatMap(function (oSpace) {
224
- return (oSpace.workPages && oSpace.workPages.nodes) || [];
225
- })
226
- .find(function (oPage) {
227
- return oPage.id === sPageId;
228
- });
364
+ MenuAdapter.prototype.isWorkPage = async function (sPageId) {
365
+ const aMenu = await this._getMenu();
229
366
 
230
- if (oFoundPage) {
231
- return !this._isTraditionalPage(oFoundPage.contents.descriptor);
232
- }
367
+ const oFoundMenu = aMenu
368
+ .flatMap((oSpace) => oSpace.subMenu || [])
369
+ .filter((oSubMenuNode) => oSubMenuNode.pageType === SubMenuPageType.workpage && oSubMenuNode.type === SubMenuType.Workpage)
370
+ .find((oPage) => oPage.id === sPageId);
233
371
 
234
- return false;
235
- }.bind(this));
372
+ return !!oFoundMenu;
236
373
  };
237
374
 
238
375
  /**
239
- * Returns whether a page is a traditional page based on the pageType property.
240
- * The pageType is "Page" for traditional pages and missing for work pages
241
- *
242
- * @param {object} oPageDescriptor The page's descriptor data
243
- * @returns {boolean} Whether the page is a traditional page
244
- * @private
245
- * @since 1.106.0
246
- */
247
- MenuAdapter.prototype._isTraditionalPage = function (oPageDescriptor) {
248
- return !!(oPageDescriptor.value && oPageDescriptor.value.pageType && oPageDescriptor.value.pageType.toLowerCase() === oContentNodeTypes.Page.toLowerCase());
249
- };
250
-
251
- /**
252
- * Returns a Promise that sends the request to the GraphQL service to fetch site data.
376
+ * Returns a Promise that sends the request to the GraphQL service to fetch menu data.
253
377
  *
254
378
  * Example response:
255
379
  * <pre>
256
- * {
257
- * "data": {
258
- * "spaces": {
259
- * "nodes": [
260
- * {
261
- * "id": "6a559319-8878-40a9-b8b7-22dd81f12121",
262
- * "descriptor": {
263
- * "value": {
264
- * "title": "MySpaceTitle"
265
- * }
266
- * },
267
- * "workPages": {
268
- * "nodes": [
269
- * {
270
- * "id": "6a559319-8878-40a9-b8b7-22dd81f3c208",
271
- * "contents": {
272
- * "descriptor": {
273
- * "value": {
274
- * "title": "MyPageTitle",
275
- * "pageType": "page"
276
- * }
277
- * }
278
- * }
279
- * }
280
- * ]
281
- * }
282
- * }
283
- * ]
284
- * }
285
- * }
286
- * }
380
+ {
381
+ "data": {
382
+ "menu": [
383
+ {
384
+ "id": "781f3d65-69f2-4a97-b92f-bc2cedf2f8a9",
385
+ "type": "space",
386
+ "title": "Test Space",
387
+ "subMenu": [
388
+ {
389
+ "id": "1fac2d11-e9d3-4f23-8ef5-57475030c5c3#Default-VizId",
390
+ "type": "visualization",
391
+ "title": "Test App(visualization) 1st-level"
392
+ }
393
+ ]
394
+ },
395
+ {
396
+ "id": "38095617-8298-4f1b-853d-30e0f8b0d58a",
397
+ "type": "space",
398
+ "title": "Second Test Space",
399
+ "subMenu": [
400
+ {
401
+ "id": "2f9c360a-6552-4484-8b63-65d8968dbfd0",
402
+ "type": "workpage",
403
+ "title": "Test Page"
404
+ },
405
+ {
406
+ "id": "1fac2d11-e9d3-4f23-8ef5-57475030c5c3#Default-VizId",
407
+ "type": "visualization",
408
+ "title": "Test App(visualization) 2nd-level"
409
+ }
410
+ ]
411
+ }
412
+ ]
413
+ }
414
+ }
287
415
  * </pre>
288
416
  *
289
417
  * @param {string} sServiceUrl The GraphQL service URL that represents the CEP content API
290
418
  * @param {string} sSiteId The relevant site-id
291
- * @returns {Promise<object>} Resolves with the response from the GraphQL service exposing site data.
419
+ * @returns {Promise<object>} Resolves with the response from the GraphQL service exposing menu data.
292
420
  * @since 1.106.0
293
421
  * @private
294
422
  */
295
423
  MenuAdapter.prototype._doRequest = function (sServiceUrl, sSiteId) {
296
- var sQuery = "{" +
297
- "spaces(" +
298
- "siteId:\"" + sSiteId + "\"" +
299
- "){" +
300
- "nodes{" +
301
- "id," +
302
- "descriptor{" +
303
- "value(select:[\"/title\"])" +
304
- "}," +
305
- "workPages{" +
306
- "nodes{" +
307
- "id," +
308
- "contents(queryInput:{selectProperties:[\"/descriptor\"],selectDescriptorValueProperties:[\"/title\",\"/pageType\"]})" +
309
- "}" +
310
- "}" +
311
- "}" +
312
- "}" +
313
- "}";
424
+ // This query is still subject to change, as the GraphQL service is not yet finalized.
425
+ let sQuery = "";
426
+ // Workaround until the new menu query is available.
427
+ // Until then we support both queries.
428
+ if (Config.last("/core/menuQueryAvailable")) {
429
+ sQuery = `{
430
+ menu(siteId: "${sSiteId}")
431
+ }`;
432
+ } else {
433
+ sQuery = `{
434
+ spaces(siteId: "${sSiteId}") {
435
+ nodes {
436
+ id,
437
+ descriptor {
438
+ value(select: ["/title"])
439
+ },
440
+ workPages {
441
+ nodes {
442
+ id,
443
+ contents(queryInput: {selectProperties: ["/descriptor"], selectDescriptorValueProperties: ["/title", "/pageType"]})
444
+ }
445
+ }
446
+ }
447
+ }
448
+ }`;
449
+ }
450
+
314
451
 
315
452
  return this.httpClient.get(sServiceUrl + "?query=" + sQuery, {
316
453
  headers: {
@@ -321,13 +458,33 @@ sap.ui.define([
321
458
  }).then(function (oResponse) {
322
459
  if (oResponse.status < 200 || oResponse.status >= 300) {
323
460
  Log.error(oResponse.responseText, "", sCEPMenuAdapterComponent);
324
- return Promise.reject("HTTP request to GraphQL service failed with status: " + oResponse.status + " - " + oResponse.statusText);
461
+ return Promise.reject(`HTTP request to GraphQL service failed with status: ${oResponse.status} - ${oResponse.statusText}`);
325
462
  }
326
463
  return JSON.parse(oResponse.responseText || "{}");
327
464
  }).then(function (oData) {
465
+ // Structure the data to match the expected format of the new menu query.
466
+ // Workaround until the spaces query is deprecated and the new menu query is used.
467
+ if (!Config.last("/core/menuQueryAvailable")) {
468
+ oData.data.menu = oData.data.spaces.nodes.map(function (oSpace) {
469
+ return {
470
+ id: oSpace.id,
471
+ type: "space",
472
+ title: oSpace?.descriptor?.value?.title,
473
+ subMenu: oSpace?.workPages?.nodes?.map(function (oPage) {
474
+ return {
475
+ id: oPage.id,
476
+ type: "workpage",
477
+ title: oPage?.contents?.descriptor?.value?.title,
478
+ pageType: oPage.contents.descriptor?.value?.pageType ? "page" : "workpage"
479
+ };
480
+ })
481
+ };
482
+ });
483
+ }
484
+
328
485
  // Temporary workaround for QESAPSHELL-108
329
486
  try {
330
- oData.data.spaces.nodes = oData.data.spaces.nodes.filter(function (node) {
487
+ oData.data.menu = oData.data.menu.filter(function (node) {
331
488
  return node.id !== "default_space";
332
489
  });
333
490
  } catch (e) {
@@ -338,22 +495,38 @@ sap.ui.define([
338
495
  };
339
496
 
340
497
  /**
341
- * Retrieves the spaces from the GraphQL responded JSON object.
342
- *
343
- * @param {object} oSiteData The GraphQL response as JSON object
344
- * @returns {object[]} All spaces as an array
345
- * @since 1.106.0
346
- * @private
347
- */
348
- MenuAdapter.prototype._getSpaces = function (oSiteData) {
349
- if (oSiteData.data
350
- && oSiteData.data.spaces
351
- && Array.isArray(oSiteData.data.spaces.nodes)
498
+ * Retrieves the menu from the GraphQL responded JSON object.
499
+ *
500
+ * @param {object} oSiteData The GraphQL response as JSON object
501
+ * @returns {Promise<aMenu[]>} The menu as an array
502
+ * @private
503
+ */
504
+ MenuAdapter.prototype._getMenu = async function () {
505
+ const oSiteData = await this.oSiteDataPromise;
506
+ if (Array.isArray(oSiteData?.data?.menu) && oSiteData.data.menu.length > 0
352
507
  ) {
353
- return oSiteData.data.spaces.nodes;
508
+ return oSiteData.data.menu;
354
509
  }
355
510
 
356
- Log.warning("No spaces found for site-id: " + this.siteId, "", sCEPMenuAdapterComponent);
511
+ Log.warning("No menu found for site-id: " + this.siteId, "", sCEPMenuAdapterComponent);
512
+ return [];
513
+ };
514
+
515
+ /**
516
+ * Retrieves the visualizations from the GraphQL responded JSON object.
517
+ *
518
+ * @param {object} oVisualizationData The GraphQL response as JSON object
519
+ * @returns {Promise<aVisualizations[]>} The visualizations as an array
520
+ * @private
521
+ */
522
+ MenuAdapter.prototype._getVisualizations = async function () {
523
+ const oVisualizationData = await this.oVizDataPromise;
524
+ if (Array.isArray(oVisualizationData?.visualizations?.nodes) && oVisualizationData.visualizations.nodes.length > 0
525
+ ) {
526
+ return oVisualizationData.visualizations.nodes;
527
+ }
528
+
529
+ Log.info("No visualizations found for site-id: " + this.siteId, "", sCEPMenuAdapterComponent);
357
530
  return [];
358
531
  };
359
532
 
@@ -368,8 +541,10 @@ sap.ui.define([
368
541
  * @since 1.106.0
369
542
  */
370
543
  MenuAdapter.prototype._isSpaceNotEmpty = function (sEntityName, oSpace) {
371
- if (!oSpace.workPages || !oSpace.workPages.nodes || oSpace.workPages.nodes.length === 0) {
372
- Log.warning("FLP space " + oSpace.id + " without page omitted in " + sEntityName + ".", "", sCEPMenuAdapterComponent);
544
+
545
+ if (!(Array.isArray(oSpace?.subMenu) && oSpace.subMenu.length > 0) ||
546
+ !oSpace.subMenu?.some((subMenu) => Object.keys(subMenu).length > 0)) {
547
+ Log.warning(`FLP space ${oSpace.id} without sub menu content omitted in ${sEntityName}.`, "", sCEPMenuAdapterComponent);
373
548
  return false;
374
549
  }
375
550
  return true;