@sapui5/sap.ushell 1.119.2 → 1.120.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 (395) hide show
  1. package/package.json +1 -1
  2. package/src/main/js/sap/ushell/.library +3 -3
  3. package/src/main/js/sap/ushell/Container.js +272 -41
  4. package/src/main/js/sap/ushell/Fiori20Adapter.js +1 -1
  5. package/src/main/js/sap/ushell/Fiori20AdapterTest.js +3 -2
  6. package/src/main/js/sap/ushell/NWBCInterface.js +1 -1
  7. package/src/main/js/sap/ushell/SessionHandler.js +11 -6
  8. package/src/main/js/sap/ushell/TechnicalParameters.js +1 -1
  9. package/src/main/js/sap/ushell/URLTemplateProcessor.js +1 -1
  10. package/src/main/js/sap/ushell/Ui5NativeServiceFactory.js +1 -1
  11. package/src/main/js/sap/ushell/Ui5ServiceFactory.js +1 -1
  12. package/src/main/js/sap/ushell/User.js +26 -35
  13. package/src/main/js/sap/ushell/_ApplicationType/urlTemplateResolution.js +1 -1
  14. package/src/main/js/sap/ushell/_URLTemplateProcessor/DefinitionParameterSetBuilder.js +1 -1
  15. package/src/main/js/sap/ushell/_URLTemplateProcessor/DependencyGraph.js +1 -1
  16. package/src/main/js/sap/ushell/_URLTemplateProcessor/Functions.js +1 -1
  17. package/src/main/js/sap/ushell/_URLTemplateProcessor/Resolvers.js +1 -1
  18. package/src/main/js/sap/ushell/_URLTemplateProcessor/TemplateParameterParser.js +1 -1
  19. package/src/main/js/sap/ushell/_URLTemplateProcessor/utils.js +1 -1
  20. package/src/main/js/sap/ushell/adapters/cdm/ClientSideTargetResolutionAdapter.js +1 -1
  21. package/src/main/js/sap/ushell/adapters/cdm/CommonDataModelAdapter.js +15 -11
  22. package/src/main/js/sap/ushell/adapters/cdm/ConfigurationDefaultsAdapter.js +1 -1
  23. package/src/main/js/sap/ushell/adapters/cdm/ContainerAdapter.js +1 -1
  24. package/src/main/js/sap/ushell/adapters/cdm/LaunchPageAdapter.js +1 -1
  25. package/src/main/js/sap/ushell/adapters/cdm/PagesCommonDataModelAdapter.js +16 -11
  26. package/src/main/js/sap/ushell/adapters/cdm/PersonalizationAdapter.js +1 -1
  27. package/src/main/js/sap/ushell/adapters/cdm/PersonalizationV2Adapter.js +18 -0
  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/LaunchPageAdapter.js +1 -1
  37. package/src/main/js/sap/ushell/adapters/cdm/v3/StaticGroupsAdapter.js +1 -1
  38. package/src/main/js/sap/ushell/adapters/cdm/v3/_LaunchPage/readApplications.js +1 -1
  39. package/src/main/js/sap/ushell/adapters/cdm/v3/_LaunchPage/readCatalogs.js +1 -1
  40. package/src/main/js/sap/ushell/adapters/cdm/v3/_LaunchPage/readHome.js +1 -1
  41. package/src/main/js/sap/ushell/adapters/cdm/v3/_LaunchPage/readPages.js +1 -1
  42. package/src/main/js/sap/ushell/adapters/cdm/v3/_LaunchPage/readUtils.js +1 -1
  43. package/src/main/js/sap/ushell/adapters/cdm/v3/_LaunchPage/readVisualizations.js +1 -1
  44. package/src/main/js/sap/ushell/adapters/cep/NavTargetResolutionAdapter.js +1 -1
  45. package/src/main/js/sap/ushell/adapters/cep/SearchCEPAdapter.js +1 -1
  46. package/src/main/js/sap/ushell/adapters/cflp/UserDefaultParameterPersistenceAdapter.js +1 -1
  47. package/src/main/js/sap/ushell/adapters/local/AdapterContainer.js +1 -1
  48. package/src/main/js/sap/ushell/adapters/local/AppStateAdapter.js +24 -18
  49. package/src/main/js/sap/ushell/adapters/local/ClientSideTargetResolutionAdapter.js +1 -1
  50. package/src/main/js/sap/ushell/adapters/local/ContainerAdapter.js +1 -1
  51. package/src/main/js/sap/ushell/adapters/local/LaunchPageAdapter.js +1 -1
  52. package/src/main/js/sap/ushell/adapters/local/MenuAdapter.js +4 -7
  53. package/src/main/js/sap/ushell/adapters/local/NavTargetResolutionAdapter.js +17 -22
  54. package/src/main/js/sap/ushell/adapters/local/PageBuildingAdapter.js +1 -1
  55. package/src/main/js/sap/ushell/adapters/local/PagePersistenceAdapter.js +1 -1
  56. package/src/main/js/sap/ushell/adapters/local/PersonalizationAdapter.js +1 -1
  57. package/src/main/js/sap/ushell/adapters/local/PersonalizationV2Adapter.js +19 -0
  58. package/src/main/js/sap/ushell/adapters/local/SearchAdapter.js +1 -1
  59. package/src/main/js/sap/ushell/adapters/local/SearchCEPAdapter.js +1 -1
  60. package/src/main/js/sap/ushell/adapters/local/SupportTicketAdapter.js +1 -1
  61. package/src/main/js/sap/ushell/adapters/local/Ui5ComponentLoaderAdapter.js +1 -1
  62. package/src/main/js/sap/ushell/adapters/local/UserDefaultParameterPersistenceAdapter.js +11 -7
  63. package/src/main/js/sap/ushell/adapters/local/UserInfoAdapter.js +8 -8
  64. package/src/main/js/sap/ushell/api/RTA.js +47 -0
  65. package/src/main/js/sap/ushell/appRuntime/neo/AppInfoService.js +154 -0
  66. package/src/main/js/sap/ushell/appRuntime/neo/AppRuntimeNeo.js +20 -0
  67. package/src/main/js/sap/ushell/appRuntime/neo/ProxyAppUtils.js +71 -0
  68. package/src/main/js/sap/ushell/appRuntime/ui5/AppRuntime.js +12 -5
  69. package/src/main/js/sap/ushell/appRuntime/ui5/AppRuntimeContext.js +2 -2
  70. package/src/main/js/sap/ushell/appRuntime/ui5/services/adapters/Ui5ComponentLoaderAdapter.js +1 -1
  71. package/src/main/js/sap/ushell/bootstrap/SchedulingAgent.js +2 -2
  72. package/src/main/js/sap/ushell/bootstrap/_SchedulingAgent/logger.js +1 -1
  73. package/src/main/js/sap/ushell/bootstrap/_SchedulingAgent/state.js +1 -1
  74. package/src/main/js/sap/ushell/bootstrap/cdm/cdm-def-dev.js +6 -3
  75. package/src/main/js/sap/ushell/bootstrap/common/common.configure.ui5datetimeformat.js +1 -1
  76. package/src/main/js/sap/ushell/bootstrap/common/common.configure.ushell.js +3 -0
  77. package/src/main/js/sap/ushell/bootstrap/common/common.load.launchpad.js +1 -1
  78. package/src/main/js/sap/ushell/bootstrap/common/common.util.js +34 -2
  79. package/src/main/js/sap/ushell/bootstrap/sandbox2.js +7 -2
  80. package/src/main/js/sap/ushell/components/ComponentKeysHandler.js +1 -1
  81. package/src/main/js/sap/ushell/components/HomepageManager.js +5 -5
  82. package/src/main/js/sap/ushell/components/SharedComponentUtils.js +7 -10
  83. package/src/main/js/sap/ushell/components/_HeaderManager/ShellHeader.controller.js +3 -3
  84. package/src/main/js/sap/ushell/components/_HomepageManager/DashboardLoadingManager.js +5 -0
  85. package/src/main/js/sap/ushell/components/_HomepageManager/PagingManager.js +5 -0
  86. package/src/main/js/sap/ushell/components/_HomepageManager/PersistentPageOperationAdapter.js +5 -0
  87. package/src/main/js/sap/ushell/components/_HomepageManager/TransientPageOperationAdapter.js +5 -0
  88. package/src/main/js/sap/ushell/components/appfinder/AppFinderView.js +1 -1
  89. package/src/main/js/sap/ushell/components/appfinder/CatalogView.js +1 -1
  90. package/src/main/js/sap/ushell/components/appfinder/EasyAccess.controller.js +3 -3
  91. package/src/main/js/sap/ushell/components/appfinder/EasyAccessView.js +0 -8
  92. package/src/main/js/sap/ushell/components/appfinder/HierarchyApps.controller.js +4 -4
  93. package/src/main/js/sap/ushell/components/appfinder/HierarchyFolders.controller.js +18 -16
  94. package/src/main/js/sap/ushell/components/appfinder/manifest.json +2 -2
  95. package/src/main/js/sap/ushell/components/applicationIntegration/AppLifeCycle.js +2 -2
  96. package/src/main/js/sap/ushell/components/applicationIntegration/application/Application.js +1 -1
  97. package/src/main/js/sap/ushell/components/applicationIntegration/application/BlueBoxHandler.js +1 -1
  98. package/src/main/js/sap/ushell/components/applicationIntegration/application/PostMessageAPI.js +2 -2
  99. package/src/main/js/sap/ushell/components/applicationIntegration/configuration/AppMeta.js +1 -1
  100. package/src/main/js/sap/ushell/components/applicationIntegration/elements/model.js +1 -1
  101. package/src/main/js/sap/ushell/components/applicationIntegration/relatedServices/RelatedServices.js +1 -1
  102. package/src/main/js/sap/ushell/components/applicationIntegration/relatedShellElements/RelatedShellElements.js +1 -1
  103. package/src/main/js/sap/ushell/components/cards/Card.controller.js +2 -2
  104. package/src/main/js/sap/ushell/components/container/ApplicationContainer.js +92 -71
  105. package/src/main/js/sap/ushell/components/contentFinder/Component.js +1 -1
  106. package/src/main/js/sap/ushell/components/contentFinder/controller/AppSearch.controller.js +1 -1
  107. package/src/main/js/sap/ushell/components/contentFinder/controller/ContentFinderDialog.controller.js +1 -1
  108. package/src/main/js/sap/ushell/components/contentFinder/controller/WidgetGallery.controller.js +1 -1
  109. package/src/main/js/sap/ushell/components/contentFinder/manifest.json +1 -1
  110. package/src/main/js/sap/ushell/components/contentFinder/model/formatter.js +4 -4
  111. package/src/main/js/sap/ushell/components/factsheet/Component.js +1 -1
  112. package/src/main/js/sap/ushell/components/homeApp/error/manifest.json +1 -1
  113. package/src/main/js/sap/ushell/components/homepage/ActionMode.js +1 -1
  114. package/src/main/js/sap/ushell/components/homepage/DashboardContent.view.js +1 -1
  115. package/src/main/js/sap/ushell/components/homepage/DashboardGroupsBox.js +1 -1
  116. package/src/main/js/sap/ushell/components/homepage/DashboardUIActions.js +1 -1
  117. package/src/main/js/sap/ushell/components/homepage/manifest.json +2 -2
  118. package/src/main/js/sap/ushell/components/pages/ActionMode.js +5 -5
  119. package/src/main/js/sap/ushell/components/pages/Component.js +1 -1
  120. package/src/main/js/sap/ushell/components/pages/MyHomeImport.js +1 -1
  121. package/src/main/js/sap/ushell/components/pages/StateManager.js +37 -24
  122. package/src/main/js/sap/ushell/components/pages/controller/ImportDialog.controller.js +1 -1
  123. package/src/main/js/sap/ushell/components/pages/controller/PageRuntime.controller.js +1 -1
  124. package/src/main/js/sap/ushell/components/pages/manifest.json +2 -2
  125. package/src/main/js/sap/ushell/components/runtimeSwitcher/controller/RuntimeSwitcher.controller.js +7 -4
  126. package/src/main/js/sap/ushell/components/runtimeSwitcher/manifest.json +1 -1
  127. package/src/main/js/sap/ushell/components/shell/MenuBar/controller/MenuBar.controller.js +6 -7
  128. package/src/main/js/sap/ushell/components/shell/MenuBar/manifest.json +2 -2
  129. package/src/main/js/sap/ushell/components/shell/NavigationBarMenu/controller/NavigationBarMenu.controller.js +39 -13
  130. package/src/main/js/sap/ushell/components/shell/NavigationBarMenu/manifest.json +3 -3
  131. package/src/main/js/sap/ushell/components/shell/Notifications/Component.js +5 -5
  132. package/src/main/js/sap/ushell/components/shell/Notifications/Notifications.controller.js +25 -45
  133. package/src/main/js/sap/ushell/components/shell/PostLoadingHeaderEnhancement/Component.js +2 -2
  134. package/src/main/js/sap/ushell/components/shell/ProductSwitch/Component.js +1 -1
  135. package/src/main/js/sap/ushell/components/shell/Search/ESearch.js +1 -1
  136. package/src/main/js/sap/ushell/components/shell/Search/manifest.json +2 -2
  137. package/src/main/js/sap/ushell/components/shell/SearchCEP/Component.js +2 -2
  138. package/src/main/js/sap/ushell/components/shell/SearchCEP/SearchCEP.controller.js +3 -3
  139. package/src/main/js/sap/ushell/components/shell/SearchCEP/SearchProviders/FrequentActivityProvider.js +1 -1
  140. package/src/main/js/sap/ushell/components/shell/SearchCEP/SearchProviders/RecentSearchProvider.js +1 -1
  141. package/src/main/js/sap/ushell/components/shell/SearchCEP/SearchProviders/SearchProvider.js +1 -1
  142. package/src/main/js/sap/ushell/components/shell/SearchCEP/SearchProviders/SearchServiceProvider.js +1 -1
  143. package/src/main/js/sap/ushell/components/shell/Settings/Component.js +4 -4
  144. package/src/main/js/sap/ushell/components/shell/Settings/ProfilingLoader.js +4 -0
  145. package/src/main/js/sap/ushell/components/shell/Settings/UserSettings.controller.js +4 -0
  146. package/src/main/js/sap/ushell/components/shell/Settings/UserSettings.view.xml +4 -3
  147. package/src/main/js/sap/ushell/components/shell/Settings/homepage/HomepageEntry.js +10 -13
  148. package/src/main/js/sap/ushell/components/shell/Settings/notifications/NotificationsSetting.controller.js +13 -22
  149. package/src/main/js/sap/ushell/components/shell/Settings/userAccount/UserAccountSelector.controller.js +2 -2
  150. package/src/main/js/sap/ushell/components/shell/Settings/userActivities/UserActivitiesSetting.controller.js +11 -14
  151. package/src/main/js/sap/ushell/components/shell/Settings/userDefaults/manifest.json +1 -1
  152. package/src/main/js/sap/ushell/components/shell/UserActionsMenu/Component.js +1 -1
  153. package/src/main/js/sap/ushell/components/shell/UserActionsMenu/UserActionsMenu.controller.js +2 -2
  154. package/src/main/js/sap/ushell/components/shell/UserImage/Component.js +2 -2
  155. package/src/main/js/sap/ushell/components/tiles/indicatorTileUtils/smartBusinessUtil.js +4 -6
  156. package/src/main/js/sap/ushell/components/visualizationOrganizer/Component.js +14 -18
  157. package/src/main/js/sap/ushell/components/workPageBuilder/Component.js +1 -1
  158. package/src/main/js/sap/ushell/components/workPageBuilder/controller/WorkPageBuilder.accessibility.js +1 -1
  159. package/src/main/js/sap/ushell/components/workPageBuilder/controller/WorkPageBuilder.controller.js +16 -12
  160. package/src/main/js/sap/ushell/components/workPageBuilder/controller/WorkPageHost.js +1 -1
  161. package/src/main/js/sap/ushell/components/workPageBuilder/controls/WorkPage.js +1 -1
  162. package/src/main/js/sap/ushell/components/workPageBuilder/controls/WorkPageButton.js +1 -1
  163. package/src/main/js/sap/ushell/components/workPageBuilder/controls/WorkPageCell.js +1 -1
  164. package/src/main/js/sap/ushell/components/workPageBuilder/controls/WorkPageColumn.js +1 -1
  165. package/src/main/js/sap/ushell/components/workPageBuilder/controls/WorkPageColumnResizer.js +1 -1
  166. package/src/main/js/sap/ushell/components/workPageBuilder/controls/WorkPageRow.js +1 -1
  167. package/src/main/js/sap/ushell/components/workPageBuilder/manifest.json +1 -1
  168. package/src/main/js/sap/ushell/components/workPageBuilder/view/WorkPageBuilder.view.xml +3 -3
  169. package/src/main/js/sap/ushell/components/workPageRuntime/Component.js +1 -1
  170. package/src/main/js/sap/ushell/components/workPageRuntime/controller/WorkPageRuntime.controller.js +1 -2
  171. package/src/main/js/sap/ushell/components/workPageRuntime/manifest.json +1 -1
  172. package/src/main/js/sap/ushell/components/workPageRuntime/services/NavigationResolver.js +1 -1
  173. package/src/main/js/sap/ushell/components/workPageRuntime/services/WorkPage.js +1 -1
  174. package/src/main/js/sap/ushell/designtime/ApplicationContainer.designtime.js +1 -1
  175. package/src/main/js/sap/ushell/library.js +1 -1
  176. package/src/main/js/sap/ushell/navigationMode.js +1 -1
  177. package/src/main/js/sap/ushell/performance/ShellAnalytics.js +1 -1
  178. package/src/main/js/sap/ushell/performance/StatisticalRecord.js +1 -1
  179. package/src/main/js/sap/ushell/plugins/appwarmup/Component.js +1 -1
  180. package/src/main/js/sap/ushell/{renderers/fiori2 → renderer}/AccessKeysHandler.js +1 -1
  181. package/src/main/js/sap/ushell/renderer/History.js +84 -0
  182. package/src/main/js/sap/ushell/renderer/LogonFrameProvider.js +96 -0
  183. package/src/main/js/sap/ushell/renderer/Renderer.js +2851 -0
  184. package/src/main/js/sap/ushell/renderer/Shell.controller.js +3155 -0
  185. package/src/main/js/sap/ushell/{renderers/fiori2/ShellAsync.view.js → renderer/Shell.view.js} +29 -18
  186. package/src/main/js/sap/ushell/{renderers/fiori2 → renderer}/ShellLayout.js +3 -3
  187. package/src/main/js/sap/ushell/{renderers/fiori2 → renderer}/allMyApps/AllMyApps.controller.js +4 -4
  188. package/src/main/js/sap/ushell/{renderers/fiori2 → renderer}/allMyApps/AllMyApps.view.xml +1 -1
  189. package/src/main/js/sap/ushell/renderer/allMyApps/AllMyAppsKeyboardHandler.js +108 -0
  190. package/src/main/js/sap/ushell/renderer/allMyApps/AllMyAppsManager.js +453 -0
  191. package/src/main/js/sap/ushell/{renderers/fiori2 → renderer}/resources/resources.properties +4 -0
  192. package/src/main/js/sap/ushell/{renderers/fiori2 → renderer}/search/searchComponent/Component.js +3 -3
  193. package/src/main/js/sap/ushell/{renderers/fiori2 → renderer}/search/searchComponent/controller/CEPSearchApp.controller.js +1 -1
  194. package/src/main/js/sap/ushell/{renderers/fiori2 → renderer}/search/searchComponent/controller/SearchApp.controller.js +1 -1
  195. package/src/main/js/sap/ushell/{renderers/fiori2 → renderer}/search/searchComponent/manifest.json +2 -2
  196. package/src/main/js/sap/ushell/{renderers/fiori2 → renderer}/search/searchComponent/view/CEPSearchApp.view.js +2 -2
  197. package/src/main/js/sap/ushell/{renderers/fiori2 → renderer}/search/searchComponent/view/SearchApp.view.js +2 -2
  198. package/src/main/js/sap/ushell/renderers/fiori2/History.js +7 -68
  199. package/src/main/js/sap/ushell/renderers/fiori2/LogonFrameProvider.js +9 -79
  200. package/src/main/js/sap/ushell/renderers/fiori2/Renderer.js +101 -1882
  201. package/src/main/js/sap/ushell/renderers/fiori2/RendererExtensions.js +2 -3
  202. package/src/main/js/sap/ushell/renderers/fiori2/Shell.controller.js +8 -3130
  203. package/src/main/js/sap/ushell/renderers/fiori2/Shell.view.js +7 -7
  204. package/src/main/js/sap/ushell/renderers/fiori2/allMyApps/AllMyAppsKeyboardHandler.js +7 -92
  205. package/src/main/js/sap/ushell/renderers/fiori2/allMyApps/AllMyAppsManager.js +8 -438
  206. package/src/main/js/sap/ushell/resources.js +1 -1
  207. package/src/main/js/sap/ushell/services/AllMyApps.js +16 -7
  208. package/src/main/js/sap/ushell/services/AppConfiguration.js +12 -0
  209. package/src/main/js/sap/ushell/services/AppLifeCycle.js +11 -14
  210. package/src/main/js/sap/ushell/services/AppState.js +12 -8
  211. package/src/main/js/sap/ushell/services/Bookmark.js +15 -13
  212. package/src/main/js/sap/ushell/services/BookmarkV2.js +919 -0
  213. package/src/main/js/sap/ushell/services/ClientSideTargetResolution.js +229 -241
  214. package/src/main/js/sap/ushell/services/CommonDataModel.js +14 -4
  215. package/src/main/js/sap/ushell/services/Configuration.js +12 -11
  216. package/src/main/js/sap/ushell/services/ConfigurationDefaults.js +13 -10
  217. package/src/main/js/sap/ushell/services/Container.js +1 -1
  218. package/src/main/js/sap/ushell/services/ContentExtensionAdapterFactory.js +1 -1
  219. package/src/main/js/sap/ushell/services/CrossApplicationNavigation.js +8 -6
  220. package/src/main/js/sap/ushell/services/DarkModeSupport.js +16 -10
  221. package/src/main/js/sap/ushell/services/EndUserFeedback.js +1 -1
  222. package/src/main/js/sap/ushell/services/Extension/FloatingContainer.js +103 -0
  223. package/src/main/js/sap/ushell/services/Extension/Footer.js +61 -0
  224. package/src/main/js/sap/ushell/services/Extension/Header.js +193 -0
  225. package/src/main/js/sap/ushell/services/Extension/Item.js +195 -0
  226. package/src/main/js/sap/ushell/services/Extension/SidePane.js +155 -0
  227. package/src/main/js/sap/ushell/services/Extension/ToolArea.js +152 -0
  228. package/src/main/js/sap/ushell/services/Extension.js +381 -0
  229. package/src/main/js/sap/ushell/services/LaunchPage.js +1 -1
  230. package/src/main/js/sap/ushell/services/Menu.js +48 -59
  231. package/src/main/js/sap/ushell/services/Message.js +15 -14
  232. package/src/main/js/sap/ushell/services/MessageBroker.js +12 -12
  233. package/src/main/js/sap/ushell/services/NavTargetResolution.js +48 -70
  234. package/src/main/js/sap/ushell/services/Navigation/utils.js +565 -0
  235. package/src/main/js/sap/ushell/services/Navigation.js +152 -139
  236. package/src/main/js/sap/ushell/services/NavigationDataProvider.js +11 -8
  237. package/src/main/js/sap/ushell/services/Notifications.js +118 -1523
  238. package/src/main/js/sap/ushell/services/NotificationsV2.js +1872 -0
  239. package/src/main/js/sap/ushell/services/PageBuilding.js +11 -8
  240. package/src/main/js/sap/ushell/services/PagePersistence.js +11 -8
  241. package/src/main/js/sap/ushell/services/PageReferencing.js +11 -8
  242. package/src/main/js/sap/ushell/services/Pages.js +11 -15
  243. package/src/main/js/sap/ushell/services/Personalization.js +5 -3
  244. package/src/main/js/sap/ushell/services/PersonalizationV2/ContextContainer.js +410 -0
  245. package/src/main/js/sap/ushell/services/PersonalizationV2/Personalizer.js +109 -0
  246. package/src/main/js/sap/ushell/services/PersonalizationV2/TransientPersonalizer.js +57 -0
  247. package/src/main/js/sap/ushell/services/PersonalizationV2/Variant.js +180 -0
  248. package/src/main/js/sap/ushell/services/PersonalizationV2/VariantSet.js +296 -0
  249. package/src/main/js/sap/ushell/services/PersonalizationV2/VariantSetAdapter.js +125 -0
  250. package/src/main/js/sap/ushell/services/PersonalizationV2/WindowAdapter.js +71 -0
  251. package/src/main/js/sap/ushell/services/PersonalizationV2/WindowAdapterContainer.js +172 -0
  252. package/src/main/js/sap/ushell/services/PersonalizationV2/constants.js +23 -0
  253. package/src/main/js/sap/ushell/services/PersonalizationV2/constants.private.js +18 -0
  254. package/src/main/js/sap/ushell/services/PersonalizationV2/utils.js +233 -0
  255. package/src/main/js/sap/ushell/services/PersonalizationV2.js +641 -0
  256. package/src/main/js/sap/ushell/services/PluginManager.js +47 -55
  257. package/src/main/js/sap/ushell/services/ReferenceResolver.js +61 -54
  258. package/src/main/js/sap/ushell/services/Search.js +15 -2
  259. package/src/main/js/sap/ushell/services/SearchCEP.js +40 -44
  260. package/src/main/js/sap/ushell/services/SearchableContent.js +9 -9
  261. package/src/main/js/sap/ushell/services/ShellNavigation.js +14 -13
  262. package/src/main/js/sap/ushell/services/SmartNavigation.js +1 -1
  263. package/src/main/js/sap/ushell/services/SpaceContent.js +9 -10
  264. package/src/main/js/sap/ushell/services/SupportTicket.js +14 -14
  265. package/src/main/js/sap/ushell/services/UITracer.js +31 -35
  266. package/src/main/js/sap/ushell/services/URLParsing.js +9 -11
  267. package/src/main/js/sap/ushell/services/URLShortening.js +1 -1
  268. package/src/main/js/sap/ushell/services/URLTemplate.js +14 -13
  269. package/src/main/js/sap/ushell/services/Ui5ComponentLoader.js +29 -26
  270. package/src/main/js/sap/ushell/services/UsageAnalytics.js +6 -0
  271. package/src/main/js/sap/ushell/services/UserDefaultParameterPersistence.js +11 -7
  272. package/src/main/js/sap/ushell/services/UserDefaultParameters.js +20 -26
  273. package/src/main/js/sap/ushell/services/UserInfo.js +44 -23
  274. package/src/main/js/sap/ushell/services/UserRecents.js +13 -5
  275. package/src/main/js/sap/ushell/services/VisualizationDataProvider.js +12 -9
  276. package/src/main/js/sap/ushell/services/VisualizationInstantiation.js +10 -8
  277. package/src/main/js/sap/ushell/services/_ClientSideTargetResolution/Formatter.js +1 -1
  278. package/src/main/js/sap/ushell/services/_ClientSideTargetResolution/InboundIndex.js +1 -1
  279. package/src/main/js/sap/ushell/services/_ClientSideTargetResolution/InboundProvider.js +1 -1
  280. package/src/main/js/sap/ushell/services/_ClientSideTargetResolution/PrelaunchOperations.js +1 -1
  281. package/src/main/js/sap/ushell/services/_ClientSideTargetResolution/Search.js +1 -1
  282. package/src/main/js/sap/ushell/services/_ClientSideTargetResolution/StagedLogger.js +1 -1
  283. package/src/main/js/sap/ushell/services/_ClientSideTargetResolution/SystemContext.js +1 -1
  284. package/src/main/js/sap/ushell/services/_ClientSideTargetResolution/Utils.js +3 -4
  285. package/src/main/js/sap/ushell/services/_ClientSideTargetResolution/VirtualInbounds.js +4 -4
  286. package/src/main/js/sap/ushell/services/_ClientSideTargetResolution/XAppStateProcessing.js +1 -1
  287. package/src/main/js/sap/ushell/services/_CommonDataModel/SiteConverter.js +1 -1
  288. package/src/main/js/sap/ushell/services/_ContentExtensionAdapterFactory/ContentExtensionAdapterConfig.js +1 -1
  289. package/src/main/js/sap/ushell/services/_ContentExtensionAdapterFactory/FeaturedGroupConfig.js +1 -1
  290. package/src/main/js/sap/ushell/services/_CrossApplicationNavigation/utils.js +2 -1
  291. package/src/main/js/sap/ushell/services/_MessageBroker/MessageBrokerEngine.js +1 -1
  292. package/src/main/js/sap/ushell/services/_PageReferencing/PageReferencer.js +1 -1
  293. package/src/main/js/sap/ushell/services/_Personalization/ContextContainer.js +6 -0
  294. package/src/main/js/sap/ushell/services/_Personalization/PersonalizationContainer.js +5 -1
  295. package/src/main/js/sap/ushell/services/_Personalization/PersonalizationContainerVariant.js +13 -9
  296. package/src/main/js/sap/ushell/services/_Personalization/PersonalizationContainerVariantSet.js +17 -13
  297. package/src/main/js/sap/ushell/services/_Personalization/Personalizer.js +5 -0
  298. package/src/main/js/sap/ushell/services/_Personalization/TransientPersonalizer.js +5 -1
  299. package/src/main/js/sap/ushell/services/_Personalization/Variant.js +4 -0
  300. package/src/main/js/sap/ushell/services/_Personalization/VariantSet.js +17 -9
  301. package/src/main/js/sap/ushell/services/_Personalization/VariantSetAdapter.js +4 -6
  302. package/src/main/js/sap/ushell/services/_Personalization/WindowAdapter.js +5 -44
  303. package/src/main/js/sap/ushell/services/_Personalization/WindowAdapterContainer.js +5 -101
  304. package/src/main/js/sap/ushell/services/_Personalization/constants.js +3 -0
  305. package/src/main/js/sap/ushell/services/_Personalization/constants.private.js +3 -0
  306. package/src/main/js/sap/ushell/services/_Personalization/utils.js +3 -0
  307. package/src/main/js/sap/ushell/services/_PluginManager/Extensions.js +1 -1
  308. package/src/main/js/sap/ushell/services/_PluginManager/HeaderExtensions.js +1 -1
  309. package/src/main/js/sap/ushell/services/_PluginManager/MenuExtensions.js +1 -1
  310. package/src/main/js/sap/ushell/services/_Ui5ComponentLoader/utils.js +29 -5
  311. package/src/main/js/sap/ushell/services/_UserRecents/UserRecentsBase.js +19 -27
  312. package/src/main/js/sap/ushell/services/_VisualizationInstantiation/VizInstance.js +4 -0
  313. package/src/main/js/sap/ushell/services/_VisualizationInstantiation/VizInstanceAbap.js +3 -0
  314. package/src/main/js/sap/ushell/services/_VisualizationInstantiation/VizInstanceLink.js +1 -1
  315. package/src/main/js/sap/ushell/services/personalization/VariantSetAdapter.js +13 -15
  316. package/src/main/js/sap/ushell/support/plugins/flpConfig/FlpConfigurationPlugin.js +1 -1
  317. package/src/main/js/sap/ushell/themes/sap_horizon/ShellAppTitle.less +4 -4
  318. package/src/main/js/sap/ushell/themes/sap_horizon_dark/ShellAppTitle.less +4 -4
  319. package/src/main/js/sap/ushell/themes/sap_horizon_hcb/ShellAppTitle.less +2 -2
  320. package/src/main/js/sap/ushell/themes/sap_horizon_hcw/ShellAppTitle.less +2 -2
  321. package/src/main/js/sap/ushell/ui/AppContainer.js +2 -2
  322. package/src/main/js/sap/ushell/ui/ContentNodeSelector.js +2 -2
  323. package/src/main/js/sap/ushell/ui/ShellHeader.js +2 -2
  324. package/src/main/js/sap/ushell/ui/cards/RecentActivitiesExtension.js +1 -1
  325. package/src/main/js/sap/ushell/ui/footerbar/AddBookmarkButton.js +8 -12
  326. package/src/main/js/sap/ushell/ui/launchpad/ExtendedChangeDetection.js +1 -1
  327. package/src/main/js/sap/ushell/ui/launchpad/Page.js +1 -1
  328. package/src/main/js/sap/ushell/ui/launchpad/Section.js +21 -8
  329. package/src/main/js/sap/ushell/ui/launchpad/TileState.js +0 -1
  330. package/src/main/js/sap/ushell/ui/launchpad/section/CompactArea.js +1 -1
  331. package/src/main/js/sap/ushell/ui/shell/ShellAppTitle.js +1 -1
  332. package/src/main/js/sap/ushell/ui/shell/ShellHeadItem.js +1 -1
  333. package/src/main/js/sap/ushell/ui/shell/SysInfoBar.js +1 -1
  334. package/src/main/js/sap/ushell/ui/shell/ToolAreaItem.js +1 -1
  335. package/src/main/js/sap/ushell/ui/utils.js +1 -1
  336. package/src/main/js/sap/ushell/ui5service/ShellUIService.js +1 -1
  337. package/src/main/js/sap/ushell/ui5service/UserStatus.js +1 -1
  338. package/src/main/js/sap/ushell/ui5service/_ShellUIService/shelluiservice.class.factory.js +14 -26
  339. package/src/main/js/sap/ushell/utils/Deferred.js +88 -0
  340. package/src/main/js/sap/ushell/utils/UrlShortening.js +1 -1
  341. package/src/main/js/sap/ushell/utils/WindowUtils.js +8 -8
  342. package/src/main/js/sap/ushell/utils.js +31 -67
  343. package/src/test/js/sap/ushell/bootstrap/sandbox.js +7 -2
  344. package/ui5.yaml +8 -2
  345. /package/src/main/js/sap/ushell/{renderers/fiori2 → renderer}/HeadEndItemsOverflowPopover.fragment.xml +0 -0
  346. /package/src/main/js/sap/ushell/{renderers/fiori2 → renderer}/resources/resources_ar.properties +0 -0
  347. /package/src/main/js/sap/ushell/{renderers/fiori2 → renderer}/resources/resources_bg.properties +0 -0
  348. /package/src/main/js/sap/ushell/{renderers/fiori2 → renderer}/resources/resources_ca.properties +0 -0
  349. /package/src/main/js/sap/ushell/{renderers/fiori2 → renderer}/resources/resources_cs.properties +0 -0
  350. /package/src/main/js/sap/ushell/{renderers/fiori2 → renderer}/resources/resources_cy.properties +0 -0
  351. /package/src/main/js/sap/ushell/{renderers/fiori2 → renderer}/resources/resources_da.properties +0 -0
  352. /package/src/main/js/sap/ushell/{renderers/fiori2 → renderer}/resources/resources_de.properties +0 -0
  353. /package/src/main/js/sap/ushell/{renderers/fiori2 → renderer}/resources/resources_el.properties +0 -0
  354. /package/src/main/js/sap/ushell/{renderers/fiori2 → renderer}/resources/resources_en.properties +0 -0
  355. /package/src/main/js/sap/ushell/{renderers/fiori2 → renderer}/resources/resources_en_GB.properties +0 -0
  356. /package/src/main/js/sap/ushell/{renderers/fiori2 → renderer}/resources/resources_en_US_sappsd.properties +0 -0
  357. /package/src/main/js/sap/ushell/{renderers/fiori2 → renderer}/resources/resources_en_US_saprigi.properties +0 -0
  358. /package/src/main/js/sap/ushell/{renderers/fiori2 → renderer}/resources/resources_en_US_saptrc.properties +0 -0
  359. /package/src/main/js/sap/ushell/{renderers/fiori2 → renderer}/resources/resources_es.properties +0 -0
  360. /package/src/main/js/sap/ushell/{renderers/fiori2 → renderer}/resources/resources_es_MX.properties +0 -0
  361. /package/src/main/js/sap/ushell/{renderers/fiori2 → renderer}/resources/resources_et.properties +0 -0
  362. /package/src/main/js/sap/ushell/{renderers/fiori2 → renderer}/resources/resources_fi.properties +0 -0
  363. /package/src/main/js/sap/ushell/{renderers/fiori2 → renderer}/resources/resources_fr.properties +0 -0
  364. /package/src/main/js/sap/ushell/{renderers/fiori2 → renderer}/resources/resources_fr_CA.properties +0 -0
  365. /package/src/main/js/sap/ushell/{renderers/fiori2 → renderer}/resources/resources_hi.properties +0 -0
  366. /package/src/main/js/sap/ushell/{renderers/fiori2 → renderer}/resources/resources_hr.properties +0 -0
  367. /package/src/main/js/sap/ushell/{renderers/fiori2 → renderer}/resources/resources_hu.properties +0 -0
  368. /package/src/main/js/sap/ushell/{renderers/fiori2 → renderer}/resources/resources_id.properties +0 -0
  369. /package/src/main/js/sap/ushell/{renderers/fiori2 → renderer}/resources/resources_it.properties +0 -0
  370. /package/src/main/js/sap/ushell/{renderers/fiori2 → renderer}/resources/resources_iw.properties +0 -0
  371. /package/src/main/js/sap/ushell/{renderers/fiori2 → renderer}/resources/resources_ja.properties +0 -0
  372. /package/src/main/js/sap/ushell/{renderers/fiori2 → renderer}/resources/resources_kk.properties +0 -0
  373. /package/src/main/js/sap/ushell/{renderers/fiori2 → renderer}/resources/resources_ko.properties +0 -0
  374. /package/src/main/js/sap/ushell/{renderers/fiori2 → renderer}/resources/resources_lt.properties +0 -0
  375. /package/src/main/js/sap/ushell/{renderers/fiori2 → renderer}/resources/resources_lv.properties +0 -0
  376. /package/src/main/js/sap/ushell/{renderers/fiori2 → renderer}/resources/resources_ms.properties +0 -0
  377. /package/src/main/js/sap/ushell/{renderers/fiori2 → renderer}/resources/resources_nl.properties +0 -0
  378. /package/src/main/js/sap/ushell/{renderers/fiori2 → renderer}/resources/resources_no.properties +0 -0
  379. /package/src/main/js/sap/ushell/{renderers/fiori2 → renderer}/resources/resources_pl.properties +0 -0
  380. /package/src/main/js/sap/ushell/{renderers/fiori2 → renderer}/resources/resources_pt.properties +0 -0
  381. /package/src/main/js/sap/ushell/{renderers/fiori2 → renderer}/resources/resources_pt_PT.properties +0 -0
  382. /package/src/main/js/sap/ushell/{renderers/fiori2 → renderer}/resources/resources_ro.properties +0 -0
  383. /package/src/main/js/sap/ushell/{renderers/fiori2 → renderer}/resources/resources_ru.properties +0 -0
  384. /package/src/main/js/sap/ushell/{renderers/fiori2 → renderer}/resources/resources_sh.properties +0 -0
  385. /package/src/main/js/sap/ushell/{renderers/fiori2 → renderer}/resources/resources_sk.properties +0 -0
  386. /package/src/main/js/sap/ushell/{renderers/fiori2 → renderer}/resources/resources_sl.properties +0 -0
  387. /package/src/main/js/sap/ushell/{renderers/fiori2 → renderer}/resources/resources_sv.properties +0 -0
  388. /package/src/main/js/sap/ushell/{renderers/fiori2 → renderer}/resources/resources_th.properties +0 -0
  389. /package/src/main/js/sap/ushell/{renderers/fiori2 → renderer}/resources/resources_tr.properties +0 -0
  390. /package/src/main/js/sap/ushell/{renderers/fiori2 → renderer}/resources/resources_uk.properties +0 -0
  391. /package/src/main/js/sap/ushell/{renderers/fiori2 → renderer}/resources/resources_vi.properties +0 -0
  392. /package/src/main/js/sap/ushell/{renderers/fiori2 → renderer}/resources/resources_zh_CN.properties +0 -0
  393. /package/src/main/js/sap/ushell/{renderers/fiori2 → renderer}/resources/resources_zh_TW.properties +0 -0
  394. /package/src/main/js/sap/ushell/{renderers/fiori2 → renderer}/search/util.js +0 -0
  395. /package/src/main/js/sap/ushell/{renderers/fiori2 → renderer}/utils.js +0 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sapui5/sap.ushell",
3
- "version": "1.119.2",
3
+ "version": "1.120.0",
4
4
  "description": "SAPUI5 Library sap.ushell",
5
5
  "homepage": "https://sap.github.io/ui5-tooling/pages/SAPUI5/",
6
6
  "keywords": [
@@ -2,7 +2,7 @@
2
2
  <library xmlns="http://www.sap.com/sap.ui.library.xsd">
3
3
  <name>sap.ushell</name>
4
4
  <vendor>SAP SE</vendor>
5
- <version>1.119.2</version>
5
+ <version>1.120.0</version>
6
6
  <copyright>Copyright (c) 2009-2023 SAP SE, All Rights Reserved</copyright>
7
7
  <documentation>SAP library: sap.ushell</documentation>
8
8
 
@@ -63,7 +63,7 @@
63
63
  <packaging xmlns="http://www.sap.com/ui5/buildext/packaging" version="2.0">
64
64
  <module-infos>
65
65
  <raw-module name="sap/ushell/bootstrap/ui5loader-config.js" depends="ui5loader.js" />
66
- <raw-module name="sap/ushell/renderers/fiori2/search/sinaNext/sina/sinaFactory.js"
66
+ <raw-module name="sap/ushell/renderer/search/sinaNext/sina/sinaFactory.js"
67
67
  requiresTopLevelScope="false" />
68
68
  <raw-module name="sap/ushell/appRuntime/ui5/AppRuntime.js"
69
69
  requiresTopLevelScope="false" />
@@ -122,7 +122,7 @@
122
122
  <component>
123
123
  <name>HAN-AS-INA-UI</name>
124
124
  <modules>
125
- <module>sap/ushell/renderers/fiori2/search/*</module>
125
+ <module>sap/ushell/renderer/search/*</module>
126
126
  <module>tools/sinaNext/*</module> <!-- that path might be wrong -->
127
127
  </modules>
128
128
  </component>
@@ -39,7 +39,8 @@ sap.ui.define([
39
39
  "sap/ushell/Ui5ServiceFactory",
40
40
  "sap/ushell/utils",
41
41
  "sap/ushell/utils/UrlParsing",
42
- "sap/ushell/renderers/fiori2/ShellLayout"
42
+ "sap/ushell/renderer/ShellLayout",
43
+ "sap/base/util/Deferred"
43
44
  ], function (
44
45
  assert,
45
46
  Log,
@@ -57,9 +58,10 @@ sap.ui.define([
57
58
  EventHub,
58
59
  System,
59
60
  oUi5ServiceFactory,
60
- utils,
61
+ ushellUtils,
61
62
  UrlParsing,
62
- ShellLayout
63
+ ShellLayout,
64
+ Deferred
63
65
  ) {
64
66
  "use strict";
65
67
 
@@ -107,7 +109,19 @@ sap.ui.define([
107
109
  * @returns {object} the service configuration
108
110
  */
109
111
  function getServiceConfig (sServiceName) {
110
- return (oConfig.services && oConfig.services[sServiceName]) || {};
112
+ var oServices = oConfig.services;
113
+ if (!oServices) {
114
+ return {};
115
+ }
116
+ // Special case: Notifications and NotificationsV2 configurations are interchangeable.
117
+ // Notifications service configuration has priority
118
+ if (sServiceName === "Notifications" || sServiceName === "NotificationsV2") {
119
+ if (oServices.Notifications && oServices.NotificationsV2) {
120
+ Log.error("Notifications and NotificationsV2 services should not be configured at the same time. NotificationsV2 configuration is ignored.");
121
+ }
122
+ return oServices.Notifications || oServices.NotificationsV2 || {};
123
+ }
124
+ return oServices[sServiceName] || {};
111
125
  }
112
126
 
113
127
  /**
@@ -126,15 +140,19 @@ sap.ui.define([
126
140
  var oAdapterConfig = getServiceConfig(sName).adapter || {};
127
141
  var sAdapterName;
128
142
 
129
- function getAdapterInstanceAsync (AdapterModule) {
130
- return new Promise(function (resolve, reject) {
131
- sap.ui.require([AdapterModule], function (AdapterClass) {
132
- var oAdapterInstance = new AdapterClass(oSystem, sParameter,
133
- { config: oAdapterConfig.config || {} }
134
- );
135
- resolve(oAdapterInstance);
136
- }, reject);
137
- });
143
+ async function getAdapterInstanceAsync (AdapterModule) {
144
+ let AdapterClass;
145
+ try {
146
+ [AdapterClass] = await ushellUtils.requireAsync([AdapterModule]);
147
+ } catch (oError) {
148
+ if (AdapterModule.endsWith("PersonalizationV2Adapter")) {
149
+ const sNewAdapterModule = AdapterModule.replace("PersonalizationV2Adapter", "PersonalizationAdapter");
150
+ return getAdapterInstanceAsync(sNewAdapterModule);
151
+ }
152
+ throw oError;
153
+ }
154
+ var oAdapterInstance = new AdapterClass(oSystem, sParameter, { config: oAdapterConfig.config || {} });
155
+ return oAdapterInstance;
138
156
  }
139
157
 
140
158
  if (bUseConfiguredAdapterOnly === true) {
@@ -157,7 +175,17 @@ sap.ui.define([
157
175
  */
158
176
  return (function () {
159
177
  function getAdapterInstance (AdapterModule) {
160
- var AdapterClass = sap.ui.requireSync(AdapterModule); // LEGACY API (deprecated)
178
+ var AdapterClass;
179
+ try {
180
+ AdapterClass = sap.ui.requireSync(AdapterModule); // LEGACY API (deprecated)
181
+ } catch (oError) {
182
+ if (AdapterModule.endsWith("PersonalizationV2Adapter")) {
183
+ const sNewAdapterModule = AdapterModule.replace("PersonalizationV2Adapter", "PersonalizationAdapter");
184
+ AdapterClass = sap.ui.requireSync(sNewAdapterModule); // LEGACY API (deprecated)
185
+ } else {
186
+ throw oError;
187
+ }
188
+ }
161
189
  return new AdapterClass(oSystem, sParameter,
162
190
  { config: oAdapterConfig.config || {} }
163
191
  );
@@ -169,8 +197,9 @@ sap.ui.define([
169
197
  /**
170
198
  * @class
171
199
  * @alias sap.ushell.Container
172
- * @classdesc The Unified Shell's container which manages renderers, services, and adapters. The container is designed to be a singleton. Instead of creating an instance
173
- * please access the central instance via namespace <code>sap.ushell.Container</code>.
200
+ * @classdesc The Unified Shell's container.
201
+ * Manages renderers, services, and adapters.
202
+ * The container is designed to be a singleton, therefore instead of creating an instance, access the central one via <code>sap.ushell.Container</code>.
174
203
  *
175
204
  * @see sap.ushell.bootstrap
176
205
  * @since 1.15.0
@@ -188,15 +217,17 @@ sap.ui.define([
188
217
  var mRemoteSystems = {};
189
218
  var oGlobalDirtyDeferred;
190
219
  var fnStorageEventListener;
191
- var oLocalStorage = utils.getLocalStorage();
192
- var mServicesByName = new utils.Map();
193
- var mServicesByNamePromise = new utils.Map();
220
+ var oLocalStorage = ushellUtils.getLocalStorage();
221
+ var mServicesByName = new ushellUtils.Map();
222
+ var mServicesByNamePromise = new ushellUtils.Map();
194
223
  var sSessionTerminationKey;
195
224
  var that = this;
196
225
 
197
226
  var oAdapter;
198
227
  var bInitialized = false;
199
228
 
229
+ var oContainerReadyDeferred = new Deferred();
230
+
200
231
  this.init = function (sPlatform, mAdapterPackagesByPlatform) {
201
232
  sap.ushell.Container = oContainerInstance;
202
233
  return this._init(sPlatform, mAdapterPackagesByPlatform)
@@ -208,6 +239,7 @@ sap.ui.define([
208
239
  sSessionTerminationKey = "sap.ushell.Container." + oAdapter.getSystem().getPlatform() + ".sessionTermination";
209
240
  afterInit();
210
241
  bInitialized = true;
242
+ oContainerReadyDeferred.resolve();
211
243
  return;
212
244
  });
213
245
  };
@@ -258,6 +290,7 @@ sap.ui.define([
258
290
  * @returns {sap.ui.core.Control|Promise<sap.ui.core.Control>|sap.ui.core.ComponentContainer|Promise<sap.ui.core.ComponentContainer>} the renderer or Promise (in asynchronous mode)
259
291
  * @since 1.15.0
260
292
  * @public
293
+ * @deprecated since 1.120.0
261
294
  */
262
295
  this.createRenderer = function (sRendererName, bAsync) {
263
296
  // shift params if necessary
@@ -271,7 +304,7 @@ sap.ui.define([
271
304
  var oRendererConfig;
272
305
 
273
306
  Measurement.start("FLP:Container.InitLoading", "Initial Loading", "FLP");
274
- utils.setPerformanceMark("FLP - renderer created");
307
+ ushellUtils.setPerformanceMark("FLP - renderer created");
275
308
  sRendererName = sRendererName || oConfig.defaultRenderer;
276
309
  if (!sRendererName) {
277
310
  throw new Error("Missing renderer name");
@@ -280,6 +313,12 @@ sap.ui.define([
280
313
  sComponentName = oRendererConfig.module || (sRendererName.indexOf(".") < 0
281
314
  ? "sap.ushell.renderers." + sRendererName + ".Renderer"
282
315
  : sRendererName);
316
+
317
+ // this migration only fails for launchpads overwriting the resource path of the renderer
318
+ if (sComponentName === "sap.ushell.renderers.fiori2.Renderer") {
319
+ sComponentName = "sap.ushell.renderer.Renderer";
320
+ }
321
+
283
322
  if (oRendererConfig.componentData && oRendererConfig.componentData.config) {
284
323
  oComponentData.config = oRendererConfig.componentData.config;
285
324
  }
@@ -317,7 +356,7 @@ sap.ui.define([
317
356
  Module,
318
357
  "sap/ui/core/ComponentContainer",
319
358
  "sap/ui/core/UIComponent",
320
- "sap/ui/core/routing/Router" // As fiori2.Renderer does not use manifest-first the router needs to be loaded async beforehand
359
+ "sap/ui/core/routing/Router" // As ushell.Renderer does not use manifest-first the router needs to be loaded async beforehand
321
360
  ], function (RendererClass, ComponentContainer, UIComponent) {
322
361
  var oRenderer = new RendererClass({ componentData: oComponentData });
323
362
 
@@ -403,6 +442,142 @@ sap.ui.define([
403
442
  return getRendererInstance(sModule);
404
443
  };
405
444
 
445
+ /**
446
+ * Creates a new renderer instance for the given renderer name.
447
+ *
448
+ * Names without a dot are interpreted as package names within the default naming convention and will be expanded to
449
+ * <code>"sap.ushell.renderers." + sRendererName + ".Renderer"</code>.
450
+ * Names containing a dot are used "as is".
451
+ *
452
+ * The resulting name must point to a SAPUI5 object which is first required and then instantiated (without arguments).
453
+ * The object is expected to be a UI component (i.e. extend <code>sap.ui.core.UIComponent</code>), which is then automatically
454
+ * wrapped into a <code>sap.ui.core.ComponentContainer</code> control by this method.
455
+ * The <code>sap.ui.core.ComponentContainer</code> is created with <code>height</code> and <code>width</code>
456
+ * set to "100%" to accommodate the complete available space.
457
+ * Besides UIComponents a control (i.e. extend <code>sap.ui.core.Control</code>) is accepted, too.
458
+ *
459
+ * The returned renderer is supposed to be added to a direct child (for example <code>div</code>) of the <code>body</code>
460
+ * of the page and there should be no other parts of the page consuming space outside the renderer.
461
+ * Use CSS class <code>sapUShellFullHeight</code> at <code>html</code>, <code>body</code> and at the element
462
+ * to which the renderer is added to allow the renderer to use 100% height.
463
+ *
464
+ * @param {string} [sRendererName] The renderer name, such as "standard" or "acme.foo.bar.MyRenderer";
465
+ * it is taken from the configuration property <code>defaultRenderer</code> if not given here.
466
+ *
467
+ * @returns {sap.ui.core.Control|Promise<sap.ui.core.Control>|sap.ui.core.ComponentContainer|Promise<sap.ui.core.ComponentContainer>} the renderer or Promise (in asynchronous mode)
468
+ * @since 1.120.0
469
+ * @private
470
+ */
471
+ this.createRendererInternal = async function (sRendererName) {
472
+ var oComponentData = { async: true };
473
+ var sComponentName;
474
+ var oRendererConfig;
475
+
476
+ Measurement.start("FLP:Container.InitLoading", "Initial Loading", "FLP");
477
+ ushellUtils.setPerformanceMark("FLP - renderer created");
478
+ sRendererName = sRendererName || oConfig.defaultRenderer;
479
+ if (!sRendererName) {
480
+ throw new Error("Missing renderer name");
481
+ }
482
+ oRendererConfig = (oConfig.renderers && oConfig.renderers[sRendererName]) || {};
483
+ sComponentName = oRendererConfig.module || (sRendererName.indexOf(".") < 0
484
+ ? "sap.ushell.renderers." + sRendererName + ".Renderer"
485
+ : sRendererName);
486
+
487
+ // this migration only fails for launchpads overwriting the resource path of the renderer
488
+ if (sComponentName === "sap.ushell.renderers.fiori2.Renderer") {
489
+ sComponentName = "sap.ushell.renderer.Renderer";
490
+ }
491
+
492
+ if (oRendererConfig.componentData && oRendererConfig.componentData.config) {
493
+ oComponentData.config = oRendererConfig.componentData.config;
494
+ }
495
+
496
+ function replacePlaceAt (RendererControl) {
497
+ // Some applications place the shell directly into the body element.
498
+ // However, this breaks the layout with separate UI Areas.
499
+ // Wrap the control into the #canvas div in this case.
500
+ RendererControl.placeAt = function (sRef, vPosition) {
501
+ var oContainer = sRef;
502
+ var canvasId = "canvas";
503
+ var body = document.body;
504
+ if (sRef === body.id) {
505
+ oContainer = document.createElement("div");
506
+ oContainer.setAttribute("id", canvasId);
507
+ oContainer.classList.add("sapUShellFullHeight");
508
+ switch (vPosition) {
509
+ case "first":
510
+ if (body.firstChild) {
511
+ body.insertBefore(oContainer, body.firstChild);
512
+ break;
513
+ }
514
+ /* falls through */
515
+ case "only":
516
+ body.innerHTML = "";
517
+ /* falls through */
518
+ default:
519
+ body.appendChild(oContainer);
520
+ }
521
+ sRef = canvasId;
522
+ vPosition = "";
523
+ }
524
+ ShellLayout.applyLayout(sRef);
525
+ EventHub.emit("ShellLayoutApplied", Date.now());
526
+ Control.prototype.placeAt.call(this, sRef, vPosition);
527
+ };
528
+ }
529
+
530
+ function replaceDestroy (oControl) {
531
+ var fnOriginalDestroy = oControl.destroy;
532
+ oControl.destroy = function () {
533
+ if (oControl.isA("sap.ui.core.ComponentContainer")) {
534
+ return Promise.resolve(oControl.getComponentInstance().destroy()).then(function () {
535
+ return fnOriginalDestroy.apply(oControl, arguments);
536
+ });
537
+ }
538
+ return Promise.resolve(fnOriginalDestroy.apply(oControl, arguments));
539
+ };
540
+ }
541
+
542
+ var sModule = sComponentName.replace(/\./g, "/");
543
+ const [
544
+ RendererClass,
545
+ ComponentContainer,
546
+ UIComponent
547
+ ] = await ushellUtils.requireAsync([
548
+ sModule,
549
+ "sap/ui/core/ComponentContainer",
550
+ "sap/ui/core/UIComponent",
551
+ "sap/ui/core/routing/Router" // As ushell.Renderer does not use manifest-first the router needs to be loaded async beforehand
552
+ ]);
553
+ var oRenderer = new RendererClass({ componentData: oComponentData });
554
+
555
+ if (oRenderer instanceof UIComponent) {
556
+ var oComponentContainer = new ComponentContainer({
557
+ component: oRenderer,
558
+ height: "100%",
559
+ width: "100%",
560
+ async: true
561
+ });
562
+ replacePlaceAt(oComponentContainer);
563
+ replaceDestroy(oComponentContainer);
564
+ oRenderers[sRendererName] = oRenderer;
565
+
566
+ await oRenderer.rootControlLoaded();
567
+ oEventProvider.fireEvent("rendererCreated", { renderer: oRenderer });
568
+ return oComponentContainer;
569
+ } else if (oRenderer instanceof Control) {
570
+ replacePlaceAt(oRenderer);
571
+ replaceDestroy(oRenderer);
572
+ oRenderers[sRendererName] = oRenderer;
573
+
574
+ oEventProvider.fireEvent("rendererCreated", { renderer: oRenderer });
575
+ return oRenderer;
576
+ }
577
+
578
+ throw new Error("Unsupported renderer type!");
579
+ };
580
+
406
581
  /**
407
582
  * Gets a renderer instance for the given renderer name, that was created by the createRenderer method.
408
583
  *
@@ -414,6 +589,7 @@ sap.ui.define([
414
589
  * if no renderer name can be determined and a single renderer instance has been created, this single instance is returned.
415
590
  * @since 1.30.0
416
591
  * @public
592
+ * @deprecated since 1.120.0
417
593
  */
418
594
  this.getRenderer = function (sRendererName) {
419
595
  var oRendererControl;
@@ -443,6 +619,46 @@ sap.ui.define([
443
619
  return oRendererControl;
444
620
  };
445
621
 
622
+ /**
623
+ * Gets a renderer instance for the given renderer name, that was created by the createRenderer method.
624
+ *
625
+ * @param {string} [sRendererName] The renderer name, such as "standard" or "fiori2";
626
+ * it is taken from the configuration property <code>defaultRenderer</code> if not given here.
627
+ * @returns {sap.ui.core.Control|sap.ui.core.Component} the renderer with the specified name; the returned object is either a control
628
+ * (i.e. extend <code>sap.ui.core.Control</code>) or a UI component (i.e. extend <code>sap.ui.core.UIComponent</code>),
629
+ * i.e. this method unwraps the renderer component from its <code>sap.ui.core.ComponentContainer</code>;
630
+ * if no renderer name can be determined and a single renderer instance has been created, this single instance is returned.
631
+ * @since 1.120.0
632
+ * @private
633
+ */
634
+ this.getRendererInternal = function (sRendererName) {
635
+ var oRendererControl;
636
+
637
+ sRendererName = sRendererName || oConfig.defaultRenderer;
638
+
639
+ if (sRendererName) {
640
+ oRendererControl = oRenderers[sRendererName];
641
+ } else {
642
+ var aRendererNames = Object.keys(oRenderers);
643
+ if (aRendererNames.length === 1) {
644
+ oRendererControl = oRenderers[aRendererNames[0]];
645
+ } else {
646
+ Log.warning(
647
+ "getRendererInternal() - cannot determine renderer, because no default renderer is configured and multiple instances exist.",
648
+ null,
649
+ S_COMPONENT_NAME);
650
+ }
651
+ }
652
+
653
+ // unwrap the component instance in case of components
654
+ if (oRendererControl && oRendererControl.isA("sap.ui.core.ComponentContainer")) { // TODO: pending dependency migration
655
+ return oRendererControl.getComponentInstance();
656
+ }
657
+
658
+ // maybe undefined
659
+ return oRendererControl;
660
+ };
661
+
446
662
  /**
447
663
  * An enumeration for the application work protect mode state.
448
664
  * @type {sap.ushell.Container.DirtyState}
@@ -589,7 +805,7 @@ sap.ui.define([
589
805
  );
590
806
  } else {
591
807
  iPending += 1;
592
- utils.localStorageSetItem(sStorageKey,
808
+ ushellUtils.localStorageSetItem(sStorageKey,
593
809
  this.DirtyState.PENDING, true);
594
810
  Log.debug(
595
811
  "getGlobalDirty() Requesting status for: " + sStorageKey,
@@ -622,14 +838,31 @@ sap.ui.define([
622
838
  * Returns the logon system.
623
839
  *
624
840
  * @returns {sap.ushell.System} object providing information about the system where the container is logged in.
625
- * Since 1.15.0 the return value is of type <code>sap.ushell.System</code>
841
+ *
626
842
  * @since 1.15.0
627
843
  * @private
844
+ * @ui5-restricted sap.fl
628
845
  */
629
846
  this.getLogonSystem = function () {
847
+ if (!oAdapter) {
848
+ Log.error("getLogonSystem: Container is not yet initialized - system cannot be determined!");
849
+ }
630
850
  return oAdapter.getSystem();
631
851
  };
632
852
 
853
+ /**
854
+ * Returns a Promise that resolves when the Container instance has been initialized completely.
855
+ *
856
+ * @returns {Promise} Promise that resolves after init.
857
+ *
858
+ * @since 1.120.0
859
+ * @private
860
+ * @ui5-restricted sap.fl
861
+ */
862
+ this.ready = function () {
863
+ return oContainerReadyDeferred.promise;
864
+ };
865
+
633
866
  /**
634
867
  * Returns the logged-in user.
635
868
  *
@@ -861,7 +1094,7 @@ sap.ui.define([
861
1094
  * Its adapter is an instance of <code>my.own.FooAdapter</code> constructed with the parameters logon system,
862
1095
  * "runtimeConfig" and <code>{config: {foo: "bar"}}</code>.
863
1096
  *
864
- * Please note that the api will throw a runtime error (or reject for async mode)
1097
+ * Note that the api will throw a runtime error (or reject for async mode)
865
1098
  * if the service name does not reflect a service available.
866
1099
  *
867
1100
  * @param {string} sServiceName The service name, such as "Menu"
@@ -1172,7 +1405,7 @@ sap.ui.define([
1172
1405
  Log.debug("Added " + oRemoteSystem, null, "sap.ushell.Container");
1173
1406
  }
1174
1407
  mRemoteSystems[sAlias] = oRemoteSystem;
1175
- utils.localStorageSetItem(sRemoteSystemPrefix + sAlias, oRemoteSystem);
1408
+ ushellUtils.localStorageSetItem(sRemoteSystemPrefix + sAlias, oRemoteSystem);
1176
1409
  };
1177
1410
 
1178
1411
  /**
@@ -1187,7 +1420,7 @@ sap.ui.define([
1187
1420
  if (sAlias && sAlias.toUpperCase() === "LOCAL") {
1188
1421
  return true;
1189
1422
  }
1190
- var oURI = new URI(utils.getLocationHref());
1423
+ var oURI = new URI(ushellUtils.getLocationHref());
1191
1424
  var sClient = this.getLogonSystem().getClient() || "";
1192
1425
  if (oSystem.getBaseUrl() === oURI.origin() && oSystem.getClient() === sClient) {
1193
1426
  return true;
@@ -1357,7 +1590,7 @@ sap.ui.define([
1357
1590
  window.removeEventListener("storage", fnStorageEventListener);
1358
1591
  }
1359
1592
 
1360
- utils.localStorageSetItem(sSessionTerminationKey, "pending");
1593
+ ushellUtils.localStorageSetItem(sSessionTerminationKey, "pending");
1361
1594
  that._suppressOData();
1362
1595
  var mSystems = that._getRemoteSystems();
1363
1596
  Object.keys(mSystems).forEach(function (sAlias) {
@@ -1393,6 +1626,7 @@ sap.ui.define([
1393
1626
  * This member represents the default native implementation of logout.
1394
1627
  * If SessionHandler was created, we register the alternate logout function using registerLogout function.
1395
1628
  *
1629
+ * @function
1396
1630
  * @returns {jQuery.Deferred} A <code>jQuery.promise</code> to be resolved when logout is finished, even when it fails.
1397
1631
  * @since 1.15.0
1398
1632
  * @public
@@ -1506,7 +1740,7 @@ sap.ui.define([
1506
1740
  * @private
1507
1741
  */
1508
1742
  this.getFLPUrl = function (bIncludeHash) {
1509
- var sUrl = utils.getLocationHref();
1743
+ var sUrl = ushellUtils.getLocationHref();
1510
1744
  var iHashPosition = sUrl.indexOf(UrlParsing.getShellHash(sUrl));
1511
1745
 
1512
1746
  if (iHashPosition === -1 || bIncludeHash === true) {
@@ -1599,7 +1833,6 @@ sap.ui.define([
1599
1833
  setTimeout(window["sap.ushell.bootstrap.callback"]);
1600
1834
  }
1601
1835
 
1602
-
1603
1836
  // Register all injectable ui5services
1604
1837
  registerInjectableUi5Services([
1605
1838
  "Personalization",
@@ -1693,15 +1926,15 @@ sap.ui.define([
1693
1926
  }
1694
1927
 
1695
1928
  function prepareNWBC () {
1696
- if (utils.hasFLPReady2NotificationCapability()) {
1929
+ if (ushellUtils.hasFLPReady2NotificationCapability()) {
1697
1930
  // Notify SAP Business Client (NWBC), that the Container and its Services, are ready to be used and
1698
1931
  // send additional interface
1699
1932
  sap.ui.require(["sap/ushell/NWBCInterface"], function (oNWBCInterface) {
1700
- utils.getPrivateEpcm().doEventFlpReady2(oNWBCInterface);
1933
+ ushellUtils.getPrivateEpcm().doEventFlpReady2(oNWBCInterface);
1701
1934
  });
1702
- } else if (utils.hasFLPReadyNotificationCapability()) {
1935
+ } else if (ushellUtils.hasFLPReadyNotificationCapability()) {
1703
1936
  // Notify SAP Business Client (NWBC), that the Container and its Services, are ready to be used.
1704
- utils.getPrivateEpcm().doEventFlpReady();
1937
+ ushellUtils.getPrivateEpcm().doEventFlpReady();
1705
1938
  }
1706
1939
  }
1707
1940
 
@@ -1726,7 +1959,6 @@ sap.ui.define([
1726
1959
  return oPromise;
1727
1960
  };
1728
1961
 
1729
-
1730
1962
  function afterInit () {
1731
1963
  // register event handler for storage events issued by other UShell windows
1732
1964
  if (typeof oAdapter.logoutRedirect === "function") {
@@ -1749,7 +1981,7 @@ sap.ui.define([
1749
1981
  if (oStorageEvent.key.indexOf(sRemoteSystemPrefix) === 0
1750
1982
  && oStorageEvent.newValue
1751
1983
  && oStorageEvent.newValue !== oLocalStorage.getItem(oStorageEvent.key)) {
1752
- utils.localStorageSetItem(oStorageEvent.key, oStorageEvent.newValue);
1984
+ ushellUtils.localStorageSetItem(oStorageEvent.key, oStorageEvent.newValue);
1753
1985
  }
1754
1986
  if (oStorageEvent.key === sSessionTerminationKey) {
1755
1987
  if (oStorageEvent.newValue === "pending") {
@@ -1767,7 +1999,6 @@ sap.ui.define([
1767
1999
  }
1768
2000
  }
1769
2001
 
1770
-
1771
2002
  /**
1772
2003
  * Expose functions for unit testing.
1773
2004
  * Internal use only.
@@ -1789,8 +2020,8 @@ sap.ui.define([
1789
2020
  * @private
1790
2021
  */
1791
2022
  this.resetServices = function () {
1792
- mServicesByName = new utils.Map();
1793
- mServicesByNamePromise = new utils.Map();
2023
+ mServicesByName = new ushellUtils.Map();
2024
+ mServicesByNamePromise = new ushellUtils.Map();
1794
2025
  };
1795
2026
 
1796
2027
  /**
@@ -1803,11 +2034,13 @@ sap.ui.define([
1803
2034
  */
1804
2035
  this.reset = function () {
1805
2036
  this.resetServices();
1806
- oLocalStorage = utils.getLocalStorage();
2037
+ oLocalStorage = ushellUtils.getLocalStorage();
1807
2038
  isDirty = false;
1808
2039
  aRegisteredDirtyMethods = [];
1809
2040
  oRenderers = {};
1810
2041
  this.fnAsyncDirtyStateProvider = undefined;
2042
+ bInitialized = false;
2043
+ oContainerReadyDeferred = new Deferred();
1811
2044
  };
1812
2045
  }
1813
2046
 
@@ -1830,7 +2063,6 @@ sap.ui.define([
1830
2063
  });
1831
2064
  }
1832
2065
 
1833
-
1834
2066
  oContainerInstance = new Container();
1835
2067
 
1836
2068
  /**
@@ -1889,6 +2121,5 @@ sap.ui.define([
1889
2121
  return oDeferred.promise();
1890
2122
  };
1891
2123
 
1892
-
1893
2124
  return oContainerInstance;
1894
2125
  });
@@ -5,7 +5,7 @@
5
5
  *
6
6
  * The Fiori20 adapter automatically re-styles old (Fiori 1) applications to match Fiori2 design requirements.
7
7
  *
8
- * @version 1.119.2
8
+ * @version 1.120.0
9
9
  */
10
10
  sap.ui.define([
11
11
  "sap/ui/base/Object",
@@ -4,7 +4,7 @@
4
4
  * @fileOverview The purpose Fiori20AdapterTest in this file is to decide whether to load the Fiori20Adapter at all.
5
5
  * This file is kept small in size on purpose as it is always required in productive code even when Fiori 2 adaptation is not required.
6
6
  *
7
- * @version 1.119.2
7
+ * @version 1.120.0
8
8
  */
9
9
  sap.ui.define([
10
10
  "sap/base/Log",
@@ -135,7 +135,8 @@ sap.ui.define([
135
135
  },
136
136
 
137
137
  _getMetadataConfiguration: function (oComp) {
138
- var vAppConfig = oComp.getMetadata("config").getConfig(Fiori20AdapterConfiguration.S_FIORI20ADAPTER_METADATA_PARAM_NAME);
138
+ var oUI5Config = oComp.getManifestEntry("/sap.ui5/config") || {};
139
+ var vAppConfig = oUI5Config[Fiori20AdapterConfiguration.S_FIORI20ADAPTER_METADATA_PARAM_NAME];
139
140
  var bAppConfig;
140
141
  var oAppConfig;
141
142
 
@@ -2,7 +2,7 @@
2
2
  /**
3
3
  * @fileOverview NWBCInterface for NWBC client
4
4
  *
5
- * @version 1.119.2
5
+ * @version 1.120.0
6
6
  */
7
7
  sap.ui.define([
8
8
  "sap/ushell/EventHub",
@@ -173,6 +173,13 @@ sap.ui.define([
173
173
  };
174
174
 
175
175
  this._registerCommHandlers = function () {
176
+ var fnExtendSession = () => {
177
+ if (bInitialized === true) {
178
+ that.userActivityHandler();
179
+ }
180
+ return new jQuery.Deferred().resolve().promise();
181
+ };
182
+
176
183
  AppLifeCycle.registerShellCommunicationHandler({
177
184
  "sap.ushell.sessionHandler": {
178
185
  oRequestCalls: {
@@ -187,12 +194,10 @@ sap.ui.define([
187
194
  },
188
195
  oServiceCalls: {
189
196
  notifyUserActive: {
190
- executeServiceCallFn: function (/*oServiceParams*/) {
191
- if (bInitialized === true) {
192
- that.userActivityHandler();
193
- }
194
- return new jQuery.Deferred().resolve().promise();
195
- }
197
+ executeServiceCallFn: fnExtendSession
198
+ },
199
+ extendSessionEvent: {
200
+ executeServiceCallFn: fnExtendSession
196
201
  }
197
202
  }
198
203
  }
@@ -40,7 +40,7 @@
40
40
  * parameters. If the application tries to access an internal parameter (e.g.,
41
41
  * sap-ui-app-id-hint) via the API, the application receives an error message.
42
42
  *
43
- * @version 1.119.2
43
+ * @version 1.120.0
44
44
  * @private
45
45
  */
46
46
  sap.ui.define([