@sapui5/sap.ushell 1.118.0 → 1.119.2

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 (372) hide show
  1. package/package.json +6 -5
  2. package/src/main/js/sap/ushell/.library +1 -1
  3. package/src/main/js/sap/ushell/ApplicationType.js +1 -1
  4. package/src/main/js/sap/ushell/CanvasShapesManager.js +13 -7
  5. package/src/main/js/sap/ushell/Config.js +1 -1
  6. package/src/main/js/sap/ushell/Container.js +255 -185
  7. package/src/main/js/sap/ushell/EventHub.js +1 -1
  8. package/src/main/js/sap/ushell/Fiori20Adapter.js +1 -1
  9. package/src/main/js/sap/ushell/Fiori20AdapterTest.js +2 -2
  10. package/src/main/js/sap/ushell/Layout.js +3 -3
  11. package/src/main/js/sap/ushell/NWBCInterface.js +3 -3
  12. package/src/main/js/sap/ushell/TechnicalParameters.js +3 -3
  13. package/src/main/js/sap/ushell/UIActions.js +44 -44
  14. package/src/main/js/sap/ushell/URLTemplateProcessor.js +1 -1
  15. package/src/main/js/sap/ushell/Ui5NativeServiceFactory.js +1 -1
  16. package/src/main/js/sap/ushell/Ui5ServiceFactory.js +4 -4
  17. package/src/main/js/sap/ushell/User.js +1 -1
  18. package/src/main/js/sap/ushell/UserActivityLog.js +8 -8
  19. package/src/main/js/sap/ushell/_ApplicationType/guiResolution.js +5 -5
  20. package/src/main/js/sap/ushell/_ApplicationType/systemAlias.js +1 -1
  21. package/src/main/js/sap/ushell/_ApplicationType/urlTemplateResolution.js +16 -11
  22. package/src/main/js/sap/ushell/_Config/utils.js +5 -5
  23. package/src/main/js/sap/ushell/_URLTemplateProcessor/DefinitionParameterSetBuilder.js +1 -1
  24. package/src/main/js/sap/ushell/_URLTemplateProcessor/DependencyGraph.js +1 -1
  25. package/src/main/js/sap/ushell/_URLTemplateProcessor/Functions.js +1 -1
  26. package/src/main/js/sap/ushell/_URLTemplateProcessor/Resolvers.js +1 -1
  27. package/src/main/js/sap/ushell/_URLTemplateProcessor/TemplateParameterParser.js +1 -1
  28. package/src/main/js/sap/ushell/_URLTemplateProcessor/utils.js +1 -1
  29. package/src/main/js/sap/ushell/adapters/cdm/ClientSideTargetResolutionAdapter.js +14 -8
  30. package/src/main/js/sap/ushell/adapters/cdm/CommonDataModelAdapter.js +4 -5
  31. package/src/main/js/sap/ushell/adapters/cdm/ConfigurationDefaultsAdapter.js +1 -1
  32. package/src/main/js/sap/ushell/adapters/cdm/ContainerAdapter.js +1 -2
  33. package/src/main/js/sap/ushell/adapters/cdm/LaunchPageAdapter.js +12 -13
  34. package/src/main/js/sap/ushell/adapters/cdm/MenuAdapter.js +1 -1
  35. package/src/main/js/sap/ushell/adapters/cdm/PagesCommonDataModelAdapter.js +4 -3
  36. package/src/main/js/sap/ushell/adapters/cdm/PersonalizationAdapter.js +1 -1
  37. package/src/main/js/sap/ushell/adapters/cdm/Ui5ComponentLoaderAdapter.js +1 -1
  38. package/src/main/js/sap/ushell/adapters/cdm/_LaunchPage/modifyHome.js +2 -2
  39. package/src/main/js/sap/ushell/adapters/cdm/_LaunchPage/readCatalogs.js +1 -1
  40. package/src/main/js/sap/ushell/adapters/cdm/_LaunchPage/readHome.js +1 -1
  41. package/src/main/js/sap/ushell/adapters/cdm/_LaunchPage/uri.transform.js +1 -1
  42. package/src/main/js/sap/ushell/adapters/cdm/_Personalization/internals.js +1 -1
  43. package/src/main/js/sap/ushell/adapters/cdm/util/AppForInbound.js +5 -2
  44. package/src/main/js/sap/ushell/adapters/cdm/util/cdmSiteUtils.js +4 -1
  45. package/src/main/js/sap/ushell/adapters/cdm/v3/AdapterBase.js +3 -4
  46. package/src/main/js/sap/ushell/adapters/cdm/v3/LaunchPageAdapter.js +10 -11
  47. package/src/main/js/sap/ushell/adapters/cdm/v3/StaticGroupsAdapter.js +1 -1
  48. package/src/main/js/sap/ushell/adapters/cdm/v3/_LaunchPage/readApplications.js +1 -1
  49. package/src/main/js/sap/ushell/adapters/cdm/v3/_LaunchPage/readCatalogs.js +1 -1
  50. package/src/main/js/sap/ushell/adapters/cdm/v3/_LaunchPage/readHome.js +1 -1
  51. package/src/main/js/sap/ushell/adapters/cdm/v3/_LaunchPage/readPages.js +1 -1
  52. package/src/main/js/sap/ushell/adapters/cdm/v3/_LaunchPage/readUtils.js +1 -1
  53. package/src/main/js/sap/ushell/adapters/cdm/v3/_LaunchPage/readVisualizations.js +1 -1
  54. package/src/main/js/sap/ushell/adapters/cdm/v3/utilsCdm.js +2 -2
  55. package/src/main/js/sap/ushell/adapters/cep/MenuAdapter.js +0 -1
  56. package/src/main/js/sap/ushell/adapters/cep/NavTargetResolutionAdapter.js +3 -4
  57. package/src/main/js/sap/ushell/adapters/cep/SearchCEPAdapter.js +3 -2
  58. package/src/main/js/sap/ushell/adapters/cflp/UserDefaultParameterPersistenceAdapter.js +3 -3
  59. package/src/main/js/sap/ushell/adapters/local/AdapterContainer.js +1 -1
  60. package/src/main/js/sap/ushell/adapters/local/AppStateAdapter.js +2 -3
  61. package/src/main/js/sap/ushell/adapters/local/ClientSideTargetResolutionAdapter.js +3 -3
  62. package/src/main/js/sap/ushell/adapters/local/ContainerAdapter.js +1 -3
  63. package/src/main/js/sap/ushell/adapters/local/LaunchPageAdapter.js +2 -3
  64. package/src/main/js/sap/ushell/adapters/local/MenuAdapter.js +1 -1
  65. package/src/main/js/sap/ushell/adapters/local/NavTargetResolutionAdapter.js +1 -1
  66. package/src/main/js/sap/ushell/adapters/local/PageBuildingAdapter.js +1 -1
  67. package/src/main/js/sap/ushell/adapters/local/PagePersistenceAdapter.js +2 -2
  68. package/src/main/js/sap/ushell/adapters/local/PersonalizationAdapter.js +1 -2
  69. package/src/main/js/sap/ushell/adapters/local/SearchAdapter.js +1 -1
  70. package/src/main/js/sap/ushell/adapters/local/SearchCEPAdapter.js +1 -1
  71. package/src/main/js/sap/ushell/adapters/local/SupportTicketAdapter.js +1 -1
  72. package/src/main/js/sap/ushell/adapters/local/Ui5ComponentLoaderAdapter.js +1 -1
  73. package/src/main/js/sap/ushell/adapters/local/UserDefaultParameterPersistenceAdapter.js +1 -2
  74. package/src/main/js/sap/ushell/adapters/local/UserInfoAdapter.js +1 -1
  75. package/src/main/js/sap/ushell/appRuntime/ui5/AppRuntime.js +5 -9
  76. package/src/main/js/sap/ushell/appRuntime/ui5/renderers/fiori2/Renderer.js +5 -3
  77. package/src/main/js/sap/ushell/appRuntime/ui5/renderers/fiori2/RendererExtensions.js +31 -3
  78. package/src/main/js/sap/ushell/appRuntime/ui5/services/AppLifeCycleAgent.js +2 -0
  79. package/src/main/js/sap/ushell/appRuntime/ui5/services/Bookmark.js +7 -3
  80. package/src/main/js/sap/ushell/appRuntime/ui5/services/adapters/Ui5ComponentLoaderAdapter.js +1 -1
  81. package/src/main/js/sap/ushell/bootstrap/_SchedulingAgent/FLPLoader.js +1 -1
  82. package/src/main/js/sap/ushell/bootstrap/_SchedulingAgent/logger.js +1 -1
  83. package/src/main/js/sap/ushell/bootstrap/_SchedulingAgent/state.js +3 -3
  84. package/src/main/js/sap/ushell/bootstrap/common/common.configure.ui5.js +2 -2
  85. package/src/main/js/sap/ushell/bootstrap/common/common.configure.ui5datetimeformat.js +1 -1
  86. package/src/main/js/sap/ushell/bootstrap/common/common.create.configcontract.core.js +1 -0
  87. package/src/main/js/sap/ushell/bootstrap/common/common.load.core-min.js +2 -2
  88. package/src/main/js/sap/ushell/bootstrap/common/common.load.launchpad.js +7 -3
  89. package/src/main/js/sap/ushell/bootstrap/common/common.load.script.js +4 -4
  90. package/src/main/js/sap/ushell/bootstrap/common/common.util.js +7 -7
  91. package/src/main/js/sap/ushell/bootstrap/sandbox2/sandboxConfig.json +214 -0
  92. package/src/main/js/sap/ushell/bootstrap/sandbox2/sandboxSite.json +511 -0
  93. package/src/main/js/sap/ushell/bootstrap/sandbox2.js +398 -0
  94. package/src/main/js/sap/ushell/components/CatalogsManager.js +26 -25
  95. package/src/main/js/sap/ushell/components/ComponentKeysHandler.js +20 -15
  96. package/src/main/js/sap/ushell/components/DestroyHelper.js +2 -2
  97. package/src/main/js/sap/ushell/components/HomepageManager.js +6 -6
  98. package/src/main/js/sap/ushell/components/_HeaderManager/ControlManager.js +1 -1
  99. package/src/main/js/sap/ushell/components/_HomepageManager/PagingManager.js +5 -5
  100. package/src/main/js/sap/ushell/components/appfinder/AppFinder.controller.js +19 -15
  101. package/src/main/js/sap/ushell/components/appfinder/AppFinderView.js +12 -12
  102. package/src/main/js/sap/ushell/components/appfinder/Catalog.controller.js +18 -18
  103. package/src/main/js/sap/ushell/components/appfinder/CatalogView.js +1 -1
  104. package/src/main/js/sap/ushell/components/appfinder/EasyAccess.controller.js +2 -2
  105. package/src/main/js/sap/ushell/components/appfinder/HierarchyApps.controller.js +6 -6
  106. package/src/main/js/sap/ushell/components/appfinder/VisualizationOrganizerHelper.js +4 -4
  107. package/src/main/js/sap/ushell/components/appfinder/manifest.json +1 -1
  108. package/src/main/js/sap/ushell/components/applicationIntegration/AppLifeCycle.js +8 -6
  109. package/src/main/js/sap/ushell/components/applicationIntegration/application/Application.js +2 -2
  110. package/src/main/js/sap/ushell/components/applicationIntegration/application/BlueBoxHandler.js +1 -1
  111. package/src/main/js/sap/ushell/components/applicationIntegration/application/PostMessageAPI.js +1 -1
  112. package/src/main/js/sap/ushell/components/applicationIntegration/application/WebGUIStatefulHandler.js +5 -5
  113. package/src/main/js/sap/ushell/components/applicationIntegration/configuration/AppMeta.js +21 -26
  114. package/src/main/js/sap/ushell/components/applicationIntegration/elements/model.js +1 -1
  115. package/src/main/js/sap/ushell/components/applicationIntegration/relatedServices/RelatedServices.js +1 -1
  116. package/src/main/js/sap/ushell/components/applicationIntegration/relatedShellElements/RelatedShellElements.js +1 -1
  117. package/src/main/js/sap/ushell/components/cards/Configuration.controller.js +2 -2
  118. package/src/main/js/sap/ushell/components/cepsearchresult/app/Main.controller.js +6 -2
  119. package/src/main/js/sap/ushell/components/cepsearchresult/app/util/controls/Category.js +44 -6
  120. package/src/main/js/sap/ushell/components/cepsearchresult/app/util/controls/categories/Application.js +22 -9
  121. package/src/main/js/sap/ushell/components/container/ApplicationContainer.js +23 -16
  122. package/src/main/js/sap/ushell/components/contentFinder/Component.js +1 -1
  123. package/src/main/js/sap/ushell/components/contentFinder/controller/AppSearch.controller.js +1 -1
  124. package/src/main/js/sap/ushell/components/contentFinder/controller/ContentFinderDialog.controller.js +1 -1
  125. package/src/main/js/sap/ushell/components/contentFinder/controller/WidgetGallery.controller.js +1 -1
  126. package/src/main/js/sap/ushell/components/contentFinder/manifest.json +1 -1
  127. package/src/main/js/sap/ushell/components/factsheet/Component.js +1 -1
  128. package/src/main/js/sap/ushell/components/factsheet/controls/PictureTile.js +1 -2
  129. package/src/main/js/sap/ushell/components/factsheet/controls/PictureViewer.js +5 -6
  130. package/src/main/js/sap/ushell/components/factsheet/controls/PictureViewerItem.js +1 -2
  131. package/src/main/js/sap/ushell/components/factsheet/factory/ThingInspector.js +3 -3
  132. package/src/main/js/sap/ushell/components/homeApp/error/HomeAppError.controller.js +0 -1
  133. package/src/main/js/sap/ushell/components/homeApp/error/HomeAppError.view.xml +7 -6
  134. package/src/main/js/sap/ushell/components/homepage/ActionMode.js +1 -1
  135. package/src/main/js/sap/ushell/components/homepage/DashboardContent.controller.js +2 -7
  136. package/src/main/js/sap/ushell/components/homepage/DashboardContent.view.js +13 -13
  137. package/src/main/js/sap/ushell/components/homepage/DashboardGroupsBox.js +1 -1
  138. package/src/main/js/sap/ushell/components/homepage/DashboardUIActions.js +1 -1
  139. package/src/main/js/sap/ushell/components/homepage/manifest.json +1 -1
  140. package/src/main/js/sap/ushell/components/pages/ActionMode.js +10 -10
  141. package/src/main/js/sap/ushell/components/pages/Component.js +1 -1
  142. package/src/main/js/sap/ushell/components/pages/MyHomeImport.js +1 -1
  143. package/src/main/js/sap/ushell/components/pages/StateManager.js +2 -2
  144. package/src/main/js/sap/ushell/components/pages/controller/ImportDialog.controller.js +12 -12
  145. package/src/main/js/sap/ushell/components/pages/controller/PageRuntime.controller.js +93 -95
  146. package/src/main/js/sap/ushell/components/pages/manifest.json +1 -1
  147. package/src/main/js/sap/ushell/components/pages/view/PageRuntime.view.xml +31 -23
  148. package/src/main/js/sap/ushell/components/runtimeSwitcher/controller/RuntimeSwitcher.controller.js +1 -1
  149. package/src/main/js/sap/ushell/components/runtimeSwitcher/manifest.json +1 -1
  150. package/src/main/js/sap/ushell/components/shell/MenuBar/controller/MenuBar.controller.js +7 -6
  151. package/src/main/js/sap/ushell/components/shell/MenuBar/manifest.json +1 -1
  152. package/src/main/js/sap/ushell/components/shell/NavigationBarMenu/controller/NavigationBarMenu.controller.js +1 -3
  153. package/src/main/js/sap/ushell/components/shell/NavigationBarMenu/manifest.json +2 -2
  154. package/src/main/js/sap/ushell/components/shell/Notifications/Component.js +1 -1
  155. package/src/main/js/sap/ushell/components/shell/Notifications/Notifications.controller.js +2 -2
  156. package/src/main/js/sap/ushell/components/shell/ProductSwitch/Component.js +1 -1
  157. package/src/main/js/sap/ushell/components/shell/Search/ESearch.js +1 -1
  158. package/src/main/js/sap/ushell/components/shell/Search/manifest.json +1 -1
  159. package/src/main/js/sap/ushell/components/shell/SearchCEP/Component.js +2 -2
  160. package/src/main/js/sap/ushell/components/shell/SearchCEP/SearchCEP.controller.js +74 -16
  161. package/src/main/js/sap/ushell/components/shell/SearchCEP/SearchFieldFragment.fragment.xml +2 -1
  162. package/src/main/js/sap/ushell/components/shell/SearchCEP/SearchProviders/FrequentActivityProvider.js +1 -2
  163. package/src/main/js/sap/ushell/components/shell/SearchCEP/SearchProviders/RecentSearchProvider.js +1 -2
  164. package/src/main/js/sap/ushell/components/shell/SearchCEP/SearchProviders/SearchProvider.js +1 -1
  165. package/src/main/js/sap/ushell/components/shell/SearchCEP/SearchProviders/SearchServiceProvider.js +1 -2
  166. package/src/main/js/sap/ushell/components/shell/Settings/Component.js +1 -1
  167. package/src/main/js/sap/ushell/components/shell/Settings/ErrorMessageHelper.js +8 -9
  168. package/src/main/js/sap/ushell/components/shell/Settings/UserSettings.controller.js +53 -13
  169. package/src/main/js/sap/ushell/components/shell/Settings/UserSettings.view.xml +5 -0
  170. package/src/main/js/sap/ushell/components/shell/Settings/appearance/Appearance.controller.js +41 -38
  171. package/src/main/js/sap/ushell/components/shell/Settings/notifications/NotificationsSetting.controller.js +1 -1
  172. package/src/main/js/sap/ushell/components/shell/Settings/userActivities/UserActivitiesSetting.controller.js +2 -2
  173. package/src/main/js/sap/ushell/components/shell/Settings/userDefaults/UserDefaultsForm.js +1 -1
  174. package/src/main/js/sap/ushell/components/shell/Settings/userDefaults/controller/UserDefaultsSetting.controller.js +7 -3
  175. package/src/main/js/sap/ushell/components/shell/UserActionsMenu/Component.js +1 -1
  176. package/src/main/js/sap/ushell/components/shell/UserImage/Component.js +1 -1
  177. package/src/main/js/sap/ushell/components/tiles/applauncher/StaticTile.view.js +0 -2
  178. package/src/main/js/sap/ushell/components/tiles/applauncher/StaticTileTmp.view.js +0 -2
  179. package/src/main/js/sap/ushell/components/tiles/applauncherdynamic/DynamicTileTmp.view.js +0 -2
  180. package/src/main/js/sap/ushell/components/tiles/cdm/applauncher/StaticTile.view.js +0 -2
  181. package/src/main/js/sap/ushell/components/tiles/cdm/applauncherdynamic/DynamicTile.controller.js +1 -1
  182. package/src/main/js/sap/ushell/components/tiles/cdm/applauncherdynamic/DynamicTile.view.js +0 -2
  183. package/src/main/js/sap/ushell/components/tiles/indicatorTileUtils/oData4Analytics.js +41 -48
  184. package/src/main/js/sap/ushell/components/tiles/indicatorTileUtils/smartBusinessUtil.js +3 -3
  185. package/src/main/js/sap/ushell/components/tiles/utils.js +1 -1
  186. package/src/main/js/sap/ushell/components/visualizationOrganizer/Component.js +5 -18
  187. package/src/main/js/sap/ushell/components/visualizationOrganizer/VisualizationOrganizerPopover.fragment.xml +3 -3
  188. package/src/main/js/sap/ushell/components/workPageBuilder/Component.js +1 -1
  189. package/src/main/js/sap/ushell/components/workPageBuilder/controller/WorkPageBuilder.accessibility.js +1 -1
  190. package/src/main/js/sap/ushell/components/workPageBuilder/controller/WorkPageBuilder.controller.js +65 -95
  191. package/src/main/js/sap/ushell/components/workPageBuilder/controller/WorkPageBuilder.layout.js +182 -90
  192. package/src/main/js/sap/ushell/components/workPageBuilder/controller/WorkPageHost.js +1 -1
  193. package/src/main/js/sap/ushell/components/workPageBuilder/controls/WorkPage.js +1 -1
  194. package/src/main/js/sap/ushell/components/workPageBuilder/controls/WorkPageButton.js +1 -1
  195. package/src/main/js/sap/ushell/components/workPageBuilder/controls/WorkPageCell.js +1 -1
  196. package/src/main/js/sap/ushell/components/workPageBuilder/controls/WorkPageColumn.js +1 -1
  197. package/src/main/js/sap/ushell/components/workPageBuilder/controls/WorkPageColumnRenderer.js +0 -2
  198. package/src/main/js/sap/ushell/components/workPageBuilder/controls/WorkPageColumnResizer.js +1 -1
  199. package/src/main/js/sap/ushell/components/workPageBuilder/controls/WorkPageRow.js +53 -3
  200. package/src/main/js/sap/ushell/components/workPageBuilder/controls/WorkPageRowRenderer.js +3 -0
  201. package/src/main/js/sap/ushell/components/workPageBuilder/manifest.json +1 -1
  202. package/src/main/js/sap/ushell/components/workPageBuilder/view/WorkPageBuilder.view.xml +1 -0
  203. package/src/main/js/sap/ushell/components/workPageRuntime/Component.js +1 -1
  204. package/src/main/js/sap/ushell/components/workPageRuntime/controller/WorkPageRuntime.controller.js +6 -2
  205. package/src/main/js/sap/ushell/components/workPageRuntime/manifest.json +1 -1
  206. package/src/main/js/sap/ushell/components/workPageRuntime/services/NavigationResolver.js +1 -2
  207. package/src/main/js/sap/ushell/components/workPageRuntime/services/WorkPage.js +1 -2
  208. package/src/main/js/sap/ushell/designtime/ApplicationContainer.designtime.js +1 -1
  209. package/src/main/js/sap/ushell/library.js +4 -2
  210. package/src/main/js/sap/ushell/navigationMode.js +10 -5
  211. package/src/main/js/sap/ushell/override.js +1 -1
  212. package/src/main/js/sap/ushell/performance/FesrEnhancer.js +248 -187
  213. package/src/main/js/sap/ushell/performance/ShellAnalytics.js +206 -207
  214. package/src/main/js/sap/ushell/performance/StatisticalRecord.js +366 -230
  215. package/src/main/js/sap/ushell/plugins/appwarmup/Component.js +1 -1
  216. package/src/main/js/sap/ushell/renderers/fiori2/Renderer.js +39 -23
  217. package/src/main/js/sap/ushell/renderers/fiori2/RendererExtensions.js +105 -25
  218. package/src/main/js/sap/ushell/renderers/fiori2/Shell.controller.js +63 -52
  219. package/src/main/js/sap/ushell/renderers/fiori2/ShellLayout.js +1 -1
  220. package/src/main/js/sap/ushell/renderers/fiori2/resources/resources.properties +1 -1
  221. package/src/main/js/sap/ushell/renderers/fiori2/resources/resources_ko.properties +1 -1
  222. package/src/main/js/sap/ushell/renderers/fiori2/search/searchComponent/manifest.json +1 -1
  223. package/src/main/js/sap/ushell/services/AppConfiguration.js +3 -3
  224. package/src/main/js/sap/ushell/services/AppLifeCycle.js +1 -1
  225. package/src/main/js/sap/ushell/services/AppState.js +2 -3
  226. package/src/main/js/sap/ushell/services/Bookmark.js +1 -1
  227. package/src/main/js/sap/ushell/services/ClientSideTargetResolution.js +1 -1
  228. package/src/main/js/sap/ushell/services/CommonDataModel.js +4 -5
  229. package/src/main/js/sap/ushell/services/Configuration.js +1 -2
  230. package/src/main/js/sap/ushell/services/ConfigurationDefaults.js +2 -2
  231. package/src/main/js/sap/ushell/services/ContentExtensionAdapterFactory.js +1 -1
  232. package/src/main/js/sap/ushell/services/CrossApplicationNavigation.js +36 -33
  233. package/src/main/js/sap/ushell/services/DarkModeSupport.js +2 -2
  234. package/src/main/js/sap/ushell/services/EndUserFeedback.js +2 -2
  235. package/src/main/js/sap/ushell/services/LaunchPage.js +11 -8
  236. package/src/main/js/sap/ushell/services/Menu.js +31 -37
  237. package/src/main/js/sap/ushell/services/Message.js +1 -2
  238. package/src/main/js/sap/ushell/services/MessageBroker.js +1 -2
  239. package/src/main/js/sap/ushell/services/NavTargetResolution.js +58 -9
  240. package/src/main/js/sap/ushell/services/Navigation.js +1356 -0
  241. package/src/main/js/sap/ushell/services/NavigationDataProvider.js +7 -5
  242. package/src/main/js/sap/ushell/services/Notifications.js +16 -16
  243. package/src/main/js/sap/ushell/services/PageBuilding.js +1 -2
  244. package/src/main/js/sap/ushell/services/PagePersistence.js +6 -6
  245. package/src/main/js/sap/ushell/services/PageReferencing.js +2 -2
  246. package/src/main/js/sap/ushell/services/Pages.js +24 -25
  247. package/src/main/js/sap/ushell/services/Personalization.js +5 -5
  248. package/src/main/js/sap/ushell/services/PluginManager.js +1 -2
  249. package/src/main/js/sap/ushell/services/ReferenceResolver.js +2 -2
  250. package/src/main/js/sap/ushell/services/Search.js +1 -1
  251. package/src/main/js/sap/ushell/services/SearchCEP.js +2 -1
  252. package/src/main/js/sap/ushell/services/SearchableContent.js +85 -59
  253. package/src/main/js/sap/ushell/services/ShellNavigation.js +59 -17
  254. package/src/main/js/sap/ushell/services/ShellNavigationHashChanger.js +115 -39
  255. package/src/main/js/sap/ushell/services/SmartNavigation.js +4 -4
  256. package/src/main/js/sap/ushell/services/SpaceContent.js +5 -6
  257. package/src/main/js/sap/ushell/services/SupportTicket.js +1 -1
  258. package/src/main/js/sap/ushell/services/UITracer.js +5 -3
  259. package/src/main/js/sap/ushell/services/URLShortening.js +1 -1
  260. package/src/main/js/sap/ushell/services/URLTemplate.js +2 -2
  261. package/src/main/js/sap/ushell/services/Ui5ComponentLoader.js +7 -7
  262. package/src/main/js/sap/ushell/services/UserDefaultParameterPersistence.js +1 -2
  263. package/src/main/js/sap/ushell/services/UserDefaultParameters.js +1 -1
  264. package/src/main/js/sap/ushell/services/UserInfo.js +1 -1
  265. package/src/main/js/sap/ushell/services/UserRecents.js +91 -69
  266. package/src/main/js/sap/ushell/services/VisualizationDataProvider.js +10 -6
  267. package/src/main/js/sap/ushell/services/VisualizationInstantiation.js +1 -3
  268. package/src/main/js/sap/ushell/services/_ClientSideTargetResolution/Formatter.js +1 -1
  269. package/src/main/js/sap/ushell/services/_ClientSideTargetResolution/InboundIndex.js +1 -1
  270. package/src/main/js/sap/ushell/services/_ClientSideTargetResolution/InboundProvider.js +2 -5
  271. package/src/main/js/sap/ushell/services/_ClientSideTargetResolution/PrelaunchOperations.js +2 -2
  272. package/src/main/js/sap/ushell/services/_ClientSideTargetResolution/Search.js +11 -11
  273. package/src/main/js/sap/ushell/services/_ClientSideTargetResolution/StagedLogger.js +1 -1
  274. package/src/main/js/sap/ushell/services/_ClientSideTargetResolution/SystemContext.js +1 -1
  275. package/src/main/js/sap/ushell/services/_ClientSideTargetResolution/Utils.js +6 -6
  276. package/src/main/js/sap/ushell/services/_ClientSideTargetResolution/VirtualInbounds.js +1 -1
  277. package/src/main/js/sap/ushell/services/_ClientSideTargetResolution/XAppStateProcessing.js +2 -2
  278. package/src/main/js/sap/ushell/services/_CommonDataModel/PersonalizationProcessor.js +1 -2
  279. package/src/main/js/sap/ushell/services/_CommonDataModel/SiteConverter.js +1 -1
  280. package/src/main/js/sap/ushell/services/_ContentExtensionAdapterFactory/ContentExtensionAdapterConfig.js +1 -1
  281. package/src/main/js/sap/ushell/services/_ContentExtensionAdapterFactory/FeaturedGroupConfig.js +1 -1
  282. package/src/main/js/sap/ushell/services/_CrossApplicationNavigation/utils.js +9 -14
  283. package/src/main/js/sap/ushell/services/_MessageBroker/MessageBrokerEngine.js +1 -1
  284. package/src/main/js/sap/ushell/services/_PageReferencing/PageReferencer.js +1 -1
  285. package/src/main/js/sap/ushell/services/_Personalization/ContextContainer.js +34 -21
  286. package/src/main/js/sap/ushell/services/_Personalization/Variant.js +5 -2
  287. package/src/main/js/sap/ushell/services/_Personalization/VariantSet.js +18 -12
  288. package/src/main/js/sap/ushell/services/_Personalization/utils.js +2 -2
  289. package/src/main/js/sap/ushell/services/_PluginManager/Extensions.js +1 -1
  290. package/src/main/js/sap/ushell/services/_PluginManager/HeaderExtensions.js +3 -3
  291. package/src/main/js/sap/ushell/services/_PluginManager/MenuExtensions.js +1 -1
  292. package/src/main/js/sap/ushell/services/_Ui5ComponentLoader/utils.js +1 -1
  293. package/src/main/js/sap/ushell/services/_UserRecents/RecentActivity.js +206 -214
  294. package/src/main/js/sap/ushell/services/_UserRecents/RecentAppsUsage.js +46 -54
  295. package/src/main/js/sap/ushell/services/_UserRecents/RecentsList.js +39 -40
  296. package/src/main/js/sap/ushell/services/_UserRecents/UserRecentsBase.js +29 -36
  297. package/src/main/js/sap/ushell/services/_VisualizationInstantiation/VizInstance.js +1 -1
  298. package/src/main/js/sap/ushell/services/_VisualizationInstantiation/VizInstanceAbap.js +1 -1
  299. package/src/main/js/sap/ushell/services/_VisualizationInstantiation/VizInstanceCdm.js +1 -1
  300. package/src/main/js/sap/ushell/services/_VisualizationInstantiation/VizInstanceLaunchPage.js +10 -8
  301. package/src/main/js/sap/ushell/services/_VisualizationInstantiation/VizInstanceLink.js +2 -2
  302. package/src/main/js/sap/ushell/services/appstate/LimitedBuffer.js +1 -2
  303. package/src/main/js/sap/ushell/services/appstate/Sequentializer.js +1 -1
  304. package/src/main/js/sap/ushell/support/plugins/flpConfig/FlpConfigurationPlugin.js +1 -1
  305. package/src/main/js/sap/ushell/themes/base/SearchCEP.less +8 -0
  306. package/src/main/js/sap/ushell/themes/base/ShellHeader.less +12 -6
  307. package/src/main/js/sap/ushell/themes/base/WorkPage.less +34 -4
  308. package/src/main/js/sap/ushell/themes/base/WorkPageCell.less +3 -1
  309. package/src/main/js/sap/ushell/themes/base/WorkPageColumn.less +3 -76
  310. package/src/main/js/sap/ushell/themes/base/WorkPageColumnResizer.less +2 -1
  311. package/src/main/js/sap/ushell/themes/base/WorkPageRow.less +822 -6
  312. package/src/main/js/sap/ushell/themes/sap_horizon/SearchCEP.less +4 -0
  313. package/src/main/js/sap/ushell/themes/sap_horizon/ToolAreaItem.less +1 -1
  314. package/src/main/js/sap/ushell/themes/sap_horizon_dark/SearchCEP.less +4 -0
  315. package/src/main/js/sap/ushell/themes/sap_horizon_dark/ToolAreaItem.less +1 -1
  316. package/src/main/js/sap/ushell/themes/sap_horizon_hcb/SearchCEP.less +5 -0
  317. package/src/main/js/sap/ushell/themes/sap_horizon_hcw/SearchCEP.less +5 -0
  318. package/src/main/js/sap/ushell/ui/AppContainer.js +0 -1
  319. package/src/main/js/sap/ushell/ui/ContentNodeSelector.js +1 -1
  320. package/src/main/js/sap/ushell/ui/QuickAccess.js +2 -2
  321. package/src/main/js/sap/ushell/ui/ShellHeader.js +21 -5
  322. package/src/main/js/sap/ushell/ui/ShellHeaderRenderer.js +1 -0
  323. package/src/main/js/sap/ushell/ui/appfinder/AppBox.js +0 -1
  324. package/src/main/js/sap/ushell/ui/bookmark/SaveOnPage.view.xml +6 -6
  325. package/src/main/js/sap/ushell/ui/cards/FrequentActivitiesExtension.js +1 -1
  326. package/src/main/js/sap/ushell/ui/cards/RecentActivitiesExtension.js +1 -1
  327. package/src/main/js/sap/ushell/ui/footerbar/AboutButton.js +0 -1
  328. package/src/main/js/sap/ushell/ui/footerbar/AddBookmarkButton.js +32 -17
  329. package/src/main/js/sap/ushell/ui/footerbar/ContactSupportButton.js +0 -1
  330. package/src/main/js/sap/ushell/ui/footerbar/JamDiscussButton.js +0 -1
  331. package/src/main/js/sap/ushell/ui/footerbar/JamShareButton.js +0 -1
  332. package/src/main/js/sap/ushell/ui/footerbar/LogoutButton.js +0 -1
  333. package/src/main/js/sap/ushell/ui/footerbar/SaveAsTile.view.js +1 -12
  334. package/src/main/js/sap/ushell/ui/footerbar/SendAsEmailButton.js +0 -1
  335. package/src/main/js/sap/ushell/ui/launchpad/ActionItem.js +0 -1
  336. package/src/main/js/sap/ushell/ui/launchpad/AnchorItem.js +0 -1
  337. package/src/main/js/sap/ushell/ui/launchpad/AnchorNavigationBar.js +0 -1
  338. package/src/main/js/sap/ushell/ui/launchpad/ExtendedChangeDetection.js +1 -1
  339. package/src/main/js/sap/ushell/ui/launchpad/FailedTileDialog.js +4 -4
  340. package/src/main/js/sap/ushell/ui/launchpad/GroupHeaderActions.js +0 -1
  341. package/src/main/js/sap/ushell/ui/launchpad/GroupListItem.js +0 -1
  342. package/src/main/js/sap/ushell/ui/launchpad/LinkTileWrapper.js +1 -1
  343. package/src/main/js/sap/ushell/ui/launchpad/LoadingDialog.js +0 -1
  344. package/src/main/js/sap/ushell/ui/launchpad/Page.js +1 -1
  345. package/src/main/js/sap/ushell/ui/launchpad/PlusTile.js +0 -1
  346. package/src/main/js/sap/ushell/ui/launchpad/Section.js +3 -3
  347. package/src/main/js/sap/ushell/ui/launchpad/Tile.js +0 -1
  348. package/src/main/js/sap/ushell/ui/launchpad/TileContainer.js +0 -1
  349. package/src/main/js/sap/ushell/ui/launchpad/section/CompactArea.js +4 -5
  350. package/src/main/js/sap/ushell/ui/shell/RightFloatingContainer.js +1 -1
  351. package/src/main/js/sap/ushell/ui/shell/ShellHeadItem.js +7 -8
  352. package/src/main/js/sap/ushell/ui/shell/SysInfoBar.js +1 -1
  353. package/src/main/js/sap/ushell/ui/shell/ToolAreaItem.js +1 -2
  354. package/src/main/js/sap/ushell/ui/tile/DynamicTile.js +0 -1
  355. package/src/main/js/sap/ushell/ui/tile/ImageTile.js +0 -1
  356. package/src/main/js/sap/ushell/ui/tile/StaticTile.js +0 -1
  357. package/src/main/js/sap/ushell/ui/tile/TileBase.js +0 -1
  358. package/src/main/js/sap/ushell/ui/utils.js +1 -1
  359. package/src/main/js/sap/ushell/ui5service/ShellUIService.js +1 -1
  360. package/src/main/js/sap/ushell/ui5service/UserStatus.js +1 -1
  361. package/src/main/js/sap/ushell/ui5service/_ShellUIService/shelluiservice.class.factory.js +1 -1
  362. package/src/main/js/sap/ushell/utils/HttpClient.js +0 -1
  363. package/src/main/js/sap/ushell/utils/RestrictedJSONModel.js +1 -1
  364. package/src/main/js/sap/ushell/utils/UrlParsing.js +18 -14
  365. package/src/main/js/sap/ushell/utils/UrlShortening.js +2 -2
  366. package/src/main/js/sap/ushell/utils/objectOperations.js +1 -1
  367. package/src/main/js/sap/ushell/utils/type.js +1 -1
  368. package/src/main/js/sap/ushell/utils/utilsCdm.js +3 -3
  369. package/src/main/js/sap/ushell/utils.js +128 -21
  370. package/src/test/js/sap/ushell/bootstrap/sandbox.js +2 -2
  371. package/ui5.yaml +1 -0
  372. package/src/main/js/sap/ushell/appRuntime/ui5/services/Menu.js +0 -22
@@ -1,12 +1,5 @@
1
1
  // Copyright (c) 2009-2023 SAP SE, All Rights Reserved
2
2
 
3
- /**
4
- * @namespace Namespace for Unified Shell.
5
- * @name sap.ushell
6
- * @since 1.15.0
7
- * @public
8
- */
9
-
10
3
  /**
11
4
  * @namespace Default namespace for Unified Shell services.
12
5
  * @name sap.ushell.services
@@ -32,7 +25,6 @@ sap.ui.define([
32
25
  "sap/base/Log",
33
26
  "sap/base/util/deepExtend",
34
27
  "sap/base/util/extend",
35
- "sap/base/util/ObjectPath",
36
28
  "sap/base/util/uid",
37
29
  "sap/ui/base/EventProvider",
38
30
  "sap/ui/core/Control",
@@ -44,7 +36,6 @@ sap.ui.define([
44
36
  "sap/ui/util/Mobile",
45
37
  "sap/ushell/EventHub",
46
38
  "sap/ushell/System",
47
- "sap/ushell/Ui5NativeServiceFactory",
48
39
  "sap/ushell/Ui5ServiceFactory",
49
40
  "sap/ushell/utils",
50
41
  "sap/ushell/utils/UrlParsing",
@@ -54,7 +45,6 @@ sap.ui.define([
54
45
  Log,
55
46
  deepExtend,
56
47
  extend,
57
- ObjectPath,
58
48
  uid,
59
49
  EventProvider,
60
50
  Control,
@@ -66,7 +56,6 @@ sap.ui.define([
66
56
  MobileSupport,
67
57
  EventHub,
68
58
  System,
69
- Ui5NativeServiceFactory,
70
59
  oUi5ServiceFactory,
71
60
  utils,
72
61
  UrlParsing,
@@ -84,8 +73,8 @@ sap.ui.define([
84
73
  // Map with platform-specific packages for the service adapters.
85
74
  // This map is passed in bootstrap and is valid for the given logon platform
86
75
  var mPlatformPackages;
87
- var sFirstInitStack; // keep stack trace of first initialization call for debugging purposes
88
76
  var aAsyncLogoutEventFunctions = []; //async logout even functions that return a promise
77
+ var oContainerInstance;
89
78
 
90
79
  // Try to close window. Note: Most browsers do NOT allow closing windows by JS if they were opened manually.
91
80
  function closeWindow () {
@@ -190,22 +179,42 @@ sap.ui.define([
190
179
  * @hideconstructor
191
180
  * @param {object} oAdapter the platform-specific adapter corresponding to this service
192
181
  */
193
- function Container (oAdapter) {
182
+ function Container () {
194
183
  var oEventProvider = new EventProvider();
195
184
  var isDirty = false;
196
185
  var aRegisteredDirtyMethods = [];
197
186
  var oRenderers = {};
198
- var sRemoteSystemPrefix = "sap.ushell.Container." + oAdapter.getSystem().getPlatform() + ".remoteSystem.";
187
+ var sRemoteSystemPrefix;
199
188
  var mRemoteSystems = {};
200
189
  var oGlobalDirtyDeferred;
201
190
  var fnStorageEventListener;
202
191
  var oLocalStorage = utils.getLocalStorage();
203
192
  var mServicesByName = new utils.Map();
204
193
  var mServicesByNamePromise = new utils.Map();
205
- var sSessionTerminationKey = "sap.ushell.Container." + oAdapter.getSystem().getPlatform() + ".sessionTermination";
194
+ var sSessionTerminationKey;
206
195
  var that = this;
207
196
 
208
- // BEWARE: constructor code below!
197
+ var oAdapter;
198
+ var bInitialized = false;
199
+
200
+ this.init = function (sPlatform, mAdapterPackagesByPlatform) {
201
+ sap.ushell.Container = oContainerInstance;
202
+ return this._init(sPlatform, mAdapterPackagesByPlatform)
203
+ .then(function (oCreatedAdapter) {
204
+ oAdapter = oCreatedAdapter;
205
+ })
206
+ .then(function () {
207
+ sRemoteSystemPrefix = "sap.ushell.Container." + oAdapter.getSystem().getPlatform() + ".remoteSystem.";
208
+ sSessionTerminationKey = "sap.ushell.Container." + oAdapter.getSystem().getPlatform() + ".sessionTermination";
209
+ afterInit();
210
+ bInitialized = true;
211
+ return;
212
+ });
213
+ };
214
+
215
+ this.isInitialized = function () {
216
+ return bInitialized;
217
+ };
209
218
 
210
219
  /**
211
220
  * Cancels the logon procedure in the current frame, if any.
@@ -1450,7 +1459,7 @@ sap.ui.define([
1450
1459
  * This method is not a public API, it must only be called by shell internal services.
1451
1460
  *
1452
1461
  * @param {string} sPath the URL path for which the custom timeout will be applied
1453
- * @param {number} iTimeout the timeout value in milliseconds
1462
+ * @param {int} iTimeout the timeout value in milliseconds
1454
1463
  * @since 1.46.3
1455
1464
  * @private
1456
1465
  */
@@ -1492,7 +1501,7 @@ sap.ui.define([
1492
1501
  * Returns the current URL of the FLP up to (and not including) the Hash Fragment
1493
1502
  *
1494
1503
  * @param {boolean} [bIncludeHash=false] defines if the hash is added to the result.
1495
- * @returns {String} URL.
1504
+ * @returns {string} URL.
1496
1505
  * @since 1.56
1497
1506
  * @private
1498
1507
  */
@@ -1524,7 +1533,7 @@ sap.ui.define([
1524
1533
  /**
1525
1534
  * Returns indication is we are in AppRuntime (for special use cases handling)
1526
1535
  *
1527
- * @returns {Boolean}.
1536
+ * @returns {boolean}.
1528
1537
  * @since 1.87
1529
1538
  * @private
1530
1539
  */
@@ -1541,7 +1550,7 @@ sap.ui.define([
1541
1550
 
1542
1551
  /**
1543
1552
  * Returns FLP's platform as specified in the configuration
1544
- *
1553
+ * @param {boolean} bSync return Platform string sync
1545
1554
  * @returns {object|Promise} if async - a Promise that returns the FLP Platform's value
1546
1555
  * @since 1.96
1547
1556
  * @private
@@ -1566,38 +1575,199 @@ sap.ui.define([
1566
1575
  "addRemoteSystemForServiceUrl", function (sChannelId, sEventId, oData) {
1567
1576
  that.addRemoteSystemForServiceUrl(oData);
1568
1577
  });
1569
- // register event handler for storage events issued by other UShell windows
1570
- if (typeof oAdapter.logoutRedirect === "function") {
1571
- fnStorageEventListener = function (oStorageEvent) {
1572
- function closeAndRedirectWindow () {
1573
- // Most browsers do not allow closing windows via JS that aren't opened via JS
1574
- // hence we additionally redirect to get these manually opened windows redirected at least.
1575
- // NOTE: It is important to NOT redirect to "/sap/public/bc/icf/logoff"
1576
- // because on iPad Safari e.g. the event is not processed until the window gets the focus.
1577
- // This would terminate any new session opened in between.
1578
- that._closeWindow();
1579
- that._redirectWindow();
1580
- }
1581
- if (sap.ushell.Container !== that) {
1582
- // In integration test suite, old listeners remain which do not belong to the current sap.ushell.Container instance.
1583
- // IE sends events also to own window. Then these old listeners react as if a remote window logged out...
1584
- return;
1578
+
1579
+ /**
1580
+ * Initializes the Unified Shell Container.
1581
+ *
1582
+ * @param {string} sPlatform the target platform, such as "abap" or "cdm".
1583
+ * @param {Object<string, string>} [mAdapterPackagesByPlatform={}] the map with platform specific package names for the service adapters.
1584
+ * You only need to specify these package names if they differ from the standard name <code>"sap.ushell.adapters." + sPlatform</code>.
1585
+ * @returns {Promise} a promise that is resolved once the container is available
1586
+ * @since 1.119
1587
+ * @private
1588
+ */
1589
+ this._init = function (sPlatform, mAdapterPackagesByPlatform) {
1590
+ var oPromise = new Promise(function (fnResolve) {
1591
+ // Init mobile support for the case when sap.m.App is not used
1592
+ MobileSupport.init();
1593
+ // remember the configuration independently of window["sap-ushell-config"]
1594
+ oConfig = extend({}, window["sap-ushell-config"]);
1595
+ // remember the platform package names
1596
+ mPlatformPackages = mAdapterPackagesByPlatform;
1597
+
1598
+ if (typeof window["sap.ushell.bootstrap.callback"] === "function") {
1599
+ setTimeout(window["sap.ushell.bootstrap.callback"]);
1585
1600
  }
1586
- if (oStorageEvent.key === sSessionTerminationKey) {
1587
- if (oStorageEvent.newValue === "pending") {
1588
- that._suppressOData();
1589
- if (oEventProvider.fireEvent("Logout", true)) {
1590
- closeAndRedirectWindow();
1591
- } else {
1592
- // defer UShell closeWindow to let NWBC receive message asynchronously
1593
- setTimeout(closeAndRedirectWindow, 1000);
1601
+
1602
+
1603
+ // Register all injectable ui5services
1604
+ registerInjectableUi5Services([
1605
+ "Personalization",
1606
+ "URLParsing",
1607
+ "CrossApplicationNavigation"
1608
+ ], true);
1609
+
1610
+ registerInjectableUi5Services(["Configuration"], false);
1611
+
1612
+ // Waterfall:
1613
+ // 1. Create "Container" adapter
1614
+ // 2. Load "PluginManager" and "CommonDataModel" services
1615
+ // 3. Load plugins
1616
+ // 4. Register plugins
1617
+ var system = new System({
1618
+ // this is the initial logon system object
1619
+ alias: "",
1620
+ platform: oConfig.platform || sPlatform
1621
+ });
1622
+ createAdapter("Container", system, null, true /* async */)
1623
+ .then(function (oCreatedAdapter) {
1624
+ oAdapter = oCreatedAdapter;
1625
+ return oAdapter.load();
1626
+ })
1627
+ .then(function () {
1628
+ // returns true if CDM Plugins are to be loaded
1629
+ function _bLoadCDM () {
1630
+ var oUshellConfig = window["sap-ushell-config"];
1631
+ if (!oUshellConfig || !oUshellConfig.services) {
1632
+ return false;
1633
+ }
1634
+ var oUShellPluginManagerConfig = oUshellConfig.services.PluginManager;
1635
+ var oPluginManagerConfig = oUShellPluginManagerConfig && oUShellPluginManagerConfig.config;
1636
+ return oPluginManagerConfig && oPluginManagerConfig.loadPluginsFromSite;
1594
1637
  }
1638
+
1639
+ // Load CommonDataModel and PluginManager in parallel
1640
+ var asyncServices = [this.getServiceAsync("PluginManager")];
1641
+ if (_bLoadCDM()) {
1642
+ //If we have CDM add the scope id to the response configuration
1643
+ oConfigSetting.CDMPromise = this.getServiceAsync("CommonDataModel");
1644
+ asyncServices.push(oConfigSetting.CDMPromise);
1645
+ }
1646
+ Promise.all(asyncServices)
1647
+ .then(function (aServices) {
1648
+ handlePlugins(aServices);
1649
+ })
1650
+ .then(lastSteps);
1651
+
1652
+ // preload given UI Services to allow sync access (via getService()) w/o triggering a sync request (CSP safeguarding of Neo Platform)
1653
+ var servicesForPreloading = [];
1654
+ if (oConfig.preloadServices !== undefined && Array.isArray(oConfig.preloadServices)) {
1655
+ oConfig.preloadServices.forEach(function (serviceName) {
1656
+ servicesForPreloading.push(this.getServiceAsync(serviceName));
1657
+ }.bind(this));
1658
+ Log.error("Ushell Config's preloadServices should not be used!");
1659
+ }
1660
+
1661
+ var oShellNavigationServicePromise = this.getServiceAsync("ShellNavigation")
1662
+ .then(function (ShellNavigationService) {
1663
+ this._oShellNavigationService = ShellNavigationService;
1664
+ }.bind(this));
1665
+
1666
+ servicesForPreloading.push(oShellNavigationServicePromise);
1667
+
1668
+ Promise.all(servicesForPreloading)
1669
+ .then(function () {
1670
+ fnResolve(oAdapter); // Note that resolve might be called before the plugins are registered
1671
+ });
1672
+ }.bind(this));
1673
+
1674
+ function handlePlugins (aServices) {
1675
+ var oPluginManager = aServices[0];
1676
+ var oCDM = aServices[1];
1677
+ var getPlugins = oCDM ? oCDM.getPlugins() : jQuery.when({});
1678
+
1679
+ getPlugins.then(function (oCDMSitePlugins) {
1680
+ var oAllPlugins = deepExtend({}, oConfig.bootstrapPlugins, oCDMSitePlugins);
1681
+ oPluginManager.registerPlugins(oAllPlugins);
1682
+ });
1683
+ }
1684
+
1685
+ function lastSteps () {
1686
+ prepareNWBC();
1687
+
1688
+ // Config should be required after bootstrap when sap-ushell-config is calculated
1689
+ sap.ui.require(["sap/ushell/Config"], function (Config) {
1690
+ handleDarkMode(Config);
1691
+ initUITracer(Config);
1692
+ });
1693
+ }
1694
+
1695
+ function prepareNWBC () {
1696
+ if (utils.hasFLPReady2NotificationCapability()) {
1697
+ // Notify SAP Business Client (NWBC), that the Container and its Services, are ready to be used and
1698
+ // send additional interface
1699
+ sap.ui.require(["sap/ushell/NWBCInterface"], function (oNWBCInterface) {
1700
+ utils.getPrivateEpcm().doEventFlpReady2(oNWBCInterface);
1701
+ });
1702
+ } else if (utils.hasFLPReadyNotificationCapability()) {
1703
+ // Notify SAP Business Client (NWBC), that the Container and its Services, are ready to be used.
1704
+ utils.getPrivateEpcm().doEventFlpReady();
1595
1705
  }
1596
1706
  }
1597
- };
1598
- window.addEventListener("storage", fnStorageEventListener);
1707
+
1708
+ function handleDarkMode (Config) {
1709
+ if (Config.last("/core/darkMode/enabled")) {
1710
+ sap.ushell.Container.getServiceAsync("DarkModeSupport").then(function (DarkModeSupportService) {
1711
+ if (DarkModeSupportService && DarkModeSupportService.setup) { // Many qUnits mock getServiceAsync without DarkModeSupport
1712
+ DarkModeSupportService.setup();
1713
+ }
1714
+ });
1715
+ }
1716
+ }
1717
+
1718
+ function initUITracer (Config) {
1719
+ var bTraceEnabled = !!(new URLSearchParams(window.location.search)).get("sap-ui-xx-ushell-UITraceEnabled");
1720
+ if (Config.last("/core/uiTracer/enabled") || bTraceEnabled) {
1721
+ sap.ushell.Container.getServiceAsync("UITracer");
1722
+ }
1723
+ }
1724
+ }.bind(this));
1725
+
1726
+ return oPromise;
1727
+ };
1728
+
1729
+
1730
+ function afterInit () {
1731
+ // register event handler for storage events issued by other UShell windows
1732
+ if (typeof oAdapter.logoutRedirect === "function") {
1733
+ fnStorageEventListener = function (oStorageEvent) {
1734
+ function closeAndRedirectWindow () {
1735
+ // Most browsers do not allow closing windows via JS that aren't opened via JS
1736
+ // hence we additionally redirect to get these manually opened windows redirected at least.
1737
+ // NOTE: It is important to NOT redirect to "/sap/public/bc/icf/logoff"
1738
+ // because on iPad Safari e.g. the event is not processed until the window gets the focus.
1739
+ // This would terminate any new session opened in between.
1740
+ that._closeWindow();
1741
+ that._redirectWindow();
1742
+ }
1743
+ if (sap.ushell.Container !== that) {
1744
+ // In integration test suite, old listeners remain which do not belong to the current sap.ushell.Container instance.
1745
+ // IE sends events also to own window. Then these old listeners react as if a remote window logged out...
1746
+ return;
1747
+ }
1748
+ // IE9 seems to get the events, but not the values in another window!?
1749
+ if (oStorageEvent.key.indexOf(sRemoteSystemPrefix) === 0
1750
+ && oStorageEvent.newValue
1751
+ && oStorageEvent.newValue !== oLocalStorage.getItem(oStorageEvent.key)) {
1752
+ utils.localStorageSetItem(oStorageEvent.key, oStorageEvent.newValue);
1753
+ }
1754
+ if (oStorageEvent.key === sSessionTerminationKey) {
1755
+ if (oStorageEvent.newValue === "pending") {
1756
+ that._suppressOData();
1757
+ if (oEventProvider.fireEvent("Logout", true)) {
1758
+ closeAndRedirectWindow();
1759
+ } else {
1760
+ // defer UShell closeWindow to let NWBC receive message asynchronously
1761
+ setTimeout(closeAndRedirectWindow, 1000);
1762
+ }
1763
+ }
1764
+ }
1765
+ };
1766
+ window.addEventListener("storage", fnStorageEventListener);
1767
+ }
1599
1768
  }
1600
1769
 
1770
+
1601
1771
  /**
1602
1772
  * Expose functions for unit testing.
1603
1773
  * Internal use only.
@@ -1610,6 +1780,35 @@ sap.ui.define([
1610
1780
  createAdapter: createAdapter
1611
1781
  };
1612
1782
  };
1783
+ /**
1784
+ * Resets the internal service instance store.
1785
+ * NOTE:
1786
+ * Only meant to be used in QUnit tests!
1787
+ *
1788
+ * @since 1.119
1789
+ * @private
1790
+ */
1791
+ this.resetServices = function () {
1792
+ mServicesByName = new utils.Map();
1793
+ mServicesByNamePromise = new utils.Map();
1794
+ };
1795
+
1796
+ /**
1797
+ * Resets internal state of the Container instance.
1798
+ * NOTE:
1799
+ * Only meant to be used in QUnit tests!
1800
+ *
1801
+ * @since 1.119
1802
+ * @private
1803
+ */
1804
+ this.reset = function () {
1805
+ this.resetServices();
1806
+ oLocalStorage = utils.getLocalStorage();
1807
+ isDirty = false;
1808
+ aRegisteredDirtyMethods = [];
1809
+ oRenderers = {};
1810
+ this.fnAsyncDirtyStateProvider = undefined;
1811
+ };
1613
1812
  }
1614
1813
 
1615
1814
  /**
@@ -1631,7 +1830,9 @@ sap.ui.define([
1631
1830
  });
1632
1831
  }
1633
1832
 
1634
- ObjectPath.create("sap.ushell");
1833
+
1834
+ oContainerInstance = new Container();
1835
+
1635
1836
  /**
1636
1837
  * Initializes the Unified Shell Container.
1637
1838
  *
@@ -1676,149 +1877,18 @@ sap.ui.define([
1676
1877
  * You only need to specify these package names if they differ from the standard name <code>"sap.ushell.adapters." + sPlatform</code>.
1677
1878
  * @returns {jQuery.Promise} a promise that is resolved once the container is available
1678
1879
  * @since 1.15.0
1880
+ * @ui5-global-only
1679
1881
  * @public
1680
1882
  */
1681
1883
  sap.ushell.bootstrap = function (sPlatform, mAdapterPackagesByPlatform) {
1682
1884
  var oDeferred = new jQuery.Deferred();
1683
-
1684
- // Init mobile support for the case when sap.m.App is not used
1685
- MobileSupport.init();
1686
-
1687
- if (sap.ushell.Container !== undefined) {
1688
- var oError = new Error("Unified shell container is already initialized - cannot initialize twice.\nStacktrace of first initialization:" + sFirstInitStack);
1689
- Log.error(oError,
1690
- oError.stack, // stacktrace not only available for all browsers
1691
- S_COMPONENT_NAME);
1692
- throw oError;
1693
- }
1694
- sFirstInitStack = (new Error()).stack; // remember stack trace of the first init for debugging
1695
-
1696
- // remember the configuration independently of window["sap-ushell-config"]
1697
- oConfig = extend({}, window["sap-ushell-config"]);
1698
- // remember the platform package names
1699
- mPlatformPackages = mAdapterPackagesByPlatform;
1700
-
1701
- if (typeof window["sap.ushell.bootstrap.callback"] === "function") {
1702
- setTimeout(window["sap.ushell.bootstrap.callback"]);
1703
- }
1704
-
1705
- // Register all injectable ui5services
1706
- registerInjectableUi5Services([
1707
- "Personalization",
1708
- "URLParsing",
1709
- "CrossApplicationNavigation"
1710
- ], true);
1711
-
1712
- registerInjectableUi5Services(["Configuration"], false);
1713
-
1714
- // Waterfall:
1715
- // 1. Create "Container" adapter
1716
- // 2. Load "PluginManager" and "CommonDataModel" services
1717
- // 3. Load plugins
1718
- // 4. Register plugins
1719
- var system = new System({
1720
- // this is the initial logon system object
1721
- alias: "",
1722
- platform: oConfig.platform || sPlatform
1723
- });
1724
- createAdapter("Container", system, null, true /* async */).then(function (adapter) {
1725
- adapter.load().then(function () {
1726
- // returns true if CDM Plugins are to be loaded
1727
- function _bLoadCDM () {
1728
- var oUshellConfig = window["sap-ushell-config"];
1729
- if (!oUshellConfig || !oUshellConfig.services) {
1730
- return false;
1731
- }
1732
- var oUShellPluginManagerConfig = oUshellConfig.services.PluginManager;
1733
- var oPluginManagerConfig = oUShellPluginManagerConfig && oUShellPluginManagerConfig.config;
1734
- return oPluginManagerConfig && oPluginManagerConfig.loadPluginsFromSite;
1735
- }
1736
-
1737
- sap.ushell.Container = new Container(adapter);
1738
-
1739
- // Load CommonDataModel and PluginManager in parallel
1740
- var asyncServices = [sap.ushell.Container.getServiceAsync("PluginManager")];
1741
- if (_bLoadCDM()) {
1742
- //If we have CDM add the scope id to the response configuration
1743
- oConfigSetting.CDMPromise = sap.ushell.Container.getServiceAsync("CommonDataModel");
1744
- asyncServices.push(oConfigSetting.CDMPromise);
1745
- }
1746
- Promise.all(asyncServices).then(function (aServices) {
1747
- handlePlugins(aServices);
1748
- }).then(lastSteps);
1749
-
1750
- // preload given UI Services to allow sync access (via getService()) w/o triggering a sync request (CSP safeguarding of Neo Platform)
1751
- var servicesForPreloading = [];
1752
- if (oConfig.preloadServices !== undefined && Array.isArray(oConfig.preloadServices)) {
1753
- oConfig.preloadServices.forEach(function (serviceName) {
1754
- servicesForPreloading.push(sap.ushell.Container.getServiceAsync(serviceName));
1755
- });
1756
- Log.error("Ushell Config's preloadServices should not be used!");
1757
- }
1758
-
1759
- var oShellNavigationServicePromise = sap.ushell.Container.getServiceAsync("ShellNavigation")
1760
- .then(function (ShellNavigationService) {
1761
- sap.ushell.Container._oShellNavigationService = ShellNavigationService;
1762
- });
1763
-
1764
- servicesForPreloading.push(oShellNavigationServicePromise);
1765
-
1766
- Promise.all(servicesForPreloading).then(function () {
1767
- oDeferred.resolve(); // Note that resolve might be called before the plugins are registered
1768
- });
1885
+ oContainerInstance.init(sPlatform, mAdapterPackagesByPlatform)
1886
+ .then(function () {
1887
+ oDeferred.resolve();
1769
1888
  });
1770
-
1771
- function handlePlugins (aServices) {
1772
- var oPluginManager = aServices[0];
1773
- var oCDM = aServices[1];
1774
- var getPlugins = oCDM ? oCDM.getPlugins() : jQuery.when({});
1775
-
1776
- getPlugins.then(function (oCDMSitePlugins) {
1777
- var oAllPlugins = deepExtend({}, oConfig.bootstrapPlugins, oCDMSitePlugins);
1778
- oPluginManager.registerPlugins(oAllPlugins);
1779
- });
1780
- }
1781
-
1782
- function lastSteps () {
1783
- prepareNWBC();
1784
-
1785
- // Config should be required after bootstrap when sap-ushell-config is calculated
1786
- sap.ui.require(["sap/ushell/Config"], function (Config) {
1787
- handleDarkMode(Config);
1788
- initUITracer(Config);
1789
- });
1790
- }
1791
-
1792
- function prepareNWBC () {
1793
- if (utils.hasFLPReady2NotificationCapability()) {
1794
- // Notify SAP Business Client (NWBC), that the Container and its Services, are ready to be used and
1795
- // send additional interface
1796
- sap.ui.require(["sap/ushell/NWBCInterface"], function (oNWBCInterface) {
1797
- utils.getPrivateEpcm().doEventFlpReady2(oNWBCInterface);
1798
- });
1799
- } else if (utils.hasFLPReadyNotificationCapability()) {
1800
- // Notify SAP Business Client (NWBC), that the Container and its Services, are ready to be used.
1801
- utils.getPrivateEpcm().doEventFlpReady();
1802
- }
1803
- }
1804
-
1805
- function handleDarkMode (Config) {
1806
- if (Config.last("/core/darkMode/enabled")) {
1807
- sap.ushell.Container.getServiceAsync("DarkModeSupport").then(function (DarkModeSupportService) {
1808
- if (DarkModeSupportService && DarkModeSupportService.setup) { // Many qUnits mock getServiceAsync without DarkModeSupport
1809
- DarkModeSupportService.setup();
1810
- }
1811
- });
1812
- }
1813
- }
1814
-
1815
- function initUITracer(Config) {
1816
- var bTraceEnabled = !!(new URLSearchParams(window.location.search)).get("sap-ui-xx-ushell-UITraceEnabled");
1817
- if (Config.last("/core/uiTracer/enabled") || bTraceEnabled) {
1818
- sap.ushell.Container.getServiceAsync("UITracer");
1819
- }
1820
- }
1821
- });
1822
1889
  return oDeferred.promise();
1823
1890
  };
1891
+
1892
+
1893
+ return oContainerInstance;
1824
1894
  });
@@ -301,7 +301,7 @@ sap.ui.define([
301
301
  * - "off": indicates that #off was called on behalf of the whole group.
302
302
  * Indicating that if a handler was already called it shouldn't be called ever again.
303
303
  *
304
- * @return {object} a Doable
304
+ * @returns {object} a Doable
305
305
  */
306
306
  function on (oHub, sEvent) {
307
307
  var aSubscriberGroup = [];
@@ -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.118.0
8
+ * @version 1.119.2
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.118.0
7
+ * @version 1.119.2
8
8
  */
9
9
  sap.ui.define([
10
10
  "sap/base/Log",
@@ -97,7 +97,7 @@ sap.ui.define([
97
97
  },
98
98
 
99
99
  /**
100
- * @return {object} object
100
+ * @returns {object} object
101
101
  *
102
102
  * @private
103
103
  */
@@ -925,8 +925,8 @@ sap.ui.define([
925
925
  },
926
926
 
927
927
  /**
928
- * @param {number} moveX
929
- * @param {number} moveY
928
+ * @param {int} moveX
929
+ * @param {int} moveY
930
930
  * @param {string} collidedObjectType: One of the following strings "Group", "TabBar"
931
931
  * @returns {{
932
932
  * collidedObjectType: String,
@@ -1418,7 +1418,7 @@ sap.ui.define([
1418
1418
  * @param tiles
1419
1419
  * @param startRow
1420
1420
  * @param endRow
1421
- * @returns {number}
1421
+ * @returns {int}
1422
1422
  * Fills the given matrix row with tiles.
1423
1423
  */
1424
1424
  fillRowsInLine: function (matrix, tiles, row, bIsLinkTiles) {
@@ -2,7 +2,7 @@
2
2
  /**
3
3
  * @fileOverview NWBCInterface for NWBC client
4
4
  *
5
- * @version 1.118.0
5
+ * @version 1.119.2
6
6
  */
7
7
  sap.ui.define([
8
8
  "sap/ushell/EventHub",
@@ -29,7 +29,7 @@ sap.ui.define([
29
29
  /**
30
30
  * Provides FLP session timeout value
31
31
  *
32
- * @return {number} session time out in minutes
32
+ * @returns {int} session time out in minutes
33
33
  *
34
34
  * @private
35
35
  * @since 1.80.0
@@ -45,7 +45,7 @@ sap.ui.define([
45
45
  /**
46
46
  * Provides indication if there is currently a kept alive app in FLP
47
47
  *
48
- * @return {Promise} boolean value of true or false is such app exists
48
+ * @returns {Promise} boolean value of true or false is such app exists
49
49
  *
50
50
  * @private
51
51
  * @since 1.103.0