@sapui5/sap.ushell 1.119.3 → 1.120.1

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 (392) 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/ui5/AppRuntime.js +12 -5
  66. package/src/main/js/sap/ushell/appRuntime/ui5/AppRuntimeContext.js +2 -2
  67. package/src/main/js/sap/ushell/appRuntime/ui5/services/adapters/Ui5ComponentLoaderAdapter.js +1 -1
  68. package/src/main/js/sap/ushell/bootstrap/SchedulingAgent.js +2 -2
  69. package/src/main/js/sap/ushell/bootstrap/_SchedulingAgent/logger.js +1 -1
  70. package/src/main/js/sap/ushell/bootstrap/_SchedulingAgent/state.js +1 -1
  71. package/src/main/js/sap/ushell/bootstrap/cdm/cdm-def-dev.js +6 -3
  72. package/src/main/js/sap/ushell/bootstrap/common/common.configure.ui5datetimeformat.js +1 -1
  73. package/src/main/js/sap/ushell/bootstrap/common/common.configure.ushell.js +3 -0
  74. package/src/main/js/sap/ushell/bootstrap/common/common.load.launchpad.js +1 -1
  75. package/src/main/js/sap/ushell/bootstrap/common/common.util.js +34 -2
  76. package/src/main/js/sap/ushell/bootstrap/sandbox2.js +7 -2
  77. package/src/main/js/sap/ushell/components/ComponentKeysHandler.js +1 -1
  78. package/src/main/js/sap/ushell/components/HomepageManager.js +5 -5
  79. package/src/main/js/sap/ushell/components/SharedComponentUtils.js +7 -10
  80. package/src/main/js/sap/ushell/components/_HeaderManager/ShellHeader.controller.js +3 -3
  81. package/src/main/js/sap/ushell/components/_HomepageManager/DashboardLoadingManager.js +5 -0
  82. package/src/main/js/sap/ushell/components/_HomepageManager/PagingManager.js +5 -0
  83. package/src/main/js/sap/ushell/components/_HomepageManager/PersistentPageOperationAdapter.js +5 -0
  84. package/src/main/js/sap/ushell/components/_HomepageManager/TransientPageOperationAdapter.js +5 -0
  85. package/src/main/js/sap/ushell/components/appfinder/AppFinderView.js +1 -1
  86. package/src/main/js/sap/ushell/components/appfinder/CatalogView.js +1 -1
  87. package/src/main/js/sap/ushell/components/appfinder/EasyAccess.controller.js +3 -3
  88. package/src/main/js/sap/ushell/components/appfinder/EasyAccessView.js +0 -8
  89. package/src/main/js/sap/ushell/components/appfinder/HierarchyApps.controller.js +4 -4
  90. package/src/main/js/sap/ushell/components/appfinder/HierarchyFolders.controller.js +18 -16
  91. package/src/main/js/sap/ushell/components/appfinder/manifest.json +2 -2
  92. package/src/main/js/sap/ushell/components/applicationIntegration/AppLifeCycle.js +2 -2
  93. package/src/main/js/sap/ushell/components/applicationIntegration/application/Application.js +1 -1
  94. package/src/main/js/sap/ushell/components/applicationIntegration/application/BlueBoxHandler.js +1 -1
  95. package/src/main/js/sap/ushell/components/applicationIntegration/application/PostMessageAPI.js +2 -2
  96. package/src/main/js/sap/ushell/components/applicationIntegration/configuration/AppMeta.js +1 -1
  97. package/src/main/js/sap/ushell/components/applicationIntegration/elements/model.js +1 -1
  98. package/src/main/js/sap/ushell/components/applicationIntegration/relatedServices/RelatedServices.js +1 -1
  99. package/src/main/js/sap/ushell/components/applicationIntegration/relatedShellElements/RelatedShellElements.js +1 -1
  100. package/src/main/js/sap/ushell/components/cards/Card.controller.js +2 -2
  101. package/src/main/js/sap/ushell/components/container/ApplicationContainer.js +92 -71
  102. package/src/main/js/sap/ushell/components/contentFinder/Component.js +1 -1
  103. package/src/main/js/sap/ushell/components/contentFinder/controller/AppSearch.controller.js +1 -1
  104. package/src/main/js/sap/ushell/components/contentFinder/controller/ContentFinderDialog.controller.js +1 -1
  105. package/src/main/js/sap/ushell/components/contentFinder/controller/WidgetGallery.controller.js +1 -1
  106. package/src/main/js/sap/ushell/components/contentFinder/manifest.json +1 -1
  107. package/src/main/js/sap/ushell/components/contentFinder/model/formatter.js +4 -4
  108. package/src/main/js/sap/ushell/components/factsheet/Component.js +1 -1
  109. package/src/main/js/sap/ushell/components/homeApp/error/manifest.json +1 -1
  110. package/src/main/js/sap/ushell/components/homepage/ActionMode.js +1 -1
  111. package/src/main/js/sap/ushell/components/homepage/DashboardContent.view.js +1 -1
  112. package/src/main/js/sap/ushell/components/homepage/DashboardGroupsBox.js +1 -1
  113. package/src/main/js/sap/ushell/components/homepage/DashboardUIActions.js +1 -1
  114. package/src/main/js/sap/ushell/components/homepage/manifest.json +2 -2
  115. package/src/main/js/sap/ushell/components/pages/ActionMode.js +5 -5
  116. package/src/main/js/sap/ushell/components/pages/Component.js +1 -1
  117. package/src/main/js/sap/ushell/components/pages/MyHomeImport.js +1 -1
  118. package/src/main/js/sap/ushell/components/pages/StateManager.js +37 -24
  119. package/src/main/js/sap/ushell/components/pages/controller/ImportDialog.controller.js +1 -1
  120. package/src/main/js/sap/ushell/components/pages/controller/PageRuntime.controller.js +1 -1
  121. package/src/main/js/sap/ushell/components/pages/manifest.json +2 -2
  122. package/src/main/js/sap/ushell/components/runtimeSwitcher/controller/RuntimeSwitcher.controller.js +7 -4
  123. package/src/main/js/sap/ushell/components/runtimeSwitcher/manifest.json +1 -1
  124. package/src/main/js/sap/ushell/components/shell/MenuBar/controller/MenuBar.controller.js +6 -7
  125. package/src/main/js/sap/ushell/components/shell/MenuBar/manifest.json +2 -2
  126. package/src/main/js/sap/ushell/components/shell/NavigationBarMenu/controller/NavigationBarMenu.controller.js +39 -13
  127. package/src/main/js/sap/ushell/components/shell/NavigationBarMenu/manifest.json +3 -3
  128. package/src/main/js/sap/ushell/components/shell/Notifications/Component.js +5 -5
  129. package/src/main/js/sap/ushell/components/shell/Notifications/Notifications.controller.js +25 -45
  130. package/src/main/js/sap/ushell/components/shell/PostLoadingHeaderEnhancement/Component.js +2 -2
  131. package/src/main/js/sap/ushell/components/shell/ProductSwitch/Component.js +1 -1
  132. package/src/main/js/sap/ushell/components/shell/Search/ESearch.js +1 -1
  133. package/src/main/js/sap/ushell/components/shell/Search/manifest.json +2 -2
  134. package/src/main/js/sap/ushell/components/shell/SearchCEP/Component.js +2 -2
  135. package/src/main/js/sap/ushell/components/shell/SearchCEP/SearchCEP.controller.js +3 -3
  136. package/src/main/js/sap/ushell/components/shell/SearchCEP/SearchProviders/FrequentActivityProvider.js +1 -1
  137. package/src/main/js/sap/ushell/components/shell/SearchCEP/SearchProviders/RecentSearchProvider.js +1 -1
  138. package/src/main/js/sap/ushell/components/shell/SearchCEP/SearchProviders/SearchProvider.js +1 -1
  139. package/src/main/js/sap/ushell/components/shell/SearchCEP/SearchProviders/SearchServiceProvider.js +1 -1
  140. package/src/main/js/sap/ushell/components/shell/Settings/Component.js +4 -4
  141. package/src/main/js/sap/ushell/components/shell/Settings/ProfilingLoader.js +4 -0
  142. package/src/main/js/sap/ushell/components/shell/Settings/UserSettings.controller.js +4 -0
  143. package/src/main/js/sap/ushell/components/shell/Settings/UserSettings.view.xml +4 -3
  144. package/src/main/js/sap/ushell/components/shell/Settings/homepage/HomepageEntry.js +10 -13
  145. package/src/main/js/sap/ushell/components/shell/Settings/notifications/NotificationsSetting.controller.js +13 -22
  146. package/src/main/js/sap/ushell/components/shell/Settings/userAccount/UserAccountSelector.controller.js +2 -2
  147. package/src/main/js/sap/ushell/components/shell/Settings/userActivities/UserActivitiesSetting.controller.js +11 -14
  148. package/src/main/js/sap/ushell/components/shell/Settings/userDefaults/manifest.json +1 -1
  149. package/src/main/js/sap/ushell/components/shell/UserActionsMenu/Component.js +1 -1
  150. package/src/main/js/sap/ushell/components/shell/UserActionsMenu/UserActionsMenu.controller.js +2 -2
  151. package/src/main/js/sap/ushell/components/shell/UserImage/Component.js +2 -2
  152. package/src/main/js/sap/ushell/components/tiles/indicatorTileUtils/smartBusinessUtil.js +4 -6
  153. package/src/main/js/sap/ushell/components/visualizationOrganizer/Component.js +14 -18
  154. package/src/main/js/sap/ushell/components/workPageBuilder/Component.js +1 -1
  155. package/src/main/js/sap/ushell/components/workPageBuilder/controller/WorkPageBuilder.accessibility.js +1 -1
  156. package/src/main/js/sap/ushell/components/workPageBuilder/controller/WorkPageBuilder.controller.js +16 -12
  157. package/src/main/js/sap/ushell/components/workPageBuilder/controller/WorkPageHost.js +1 -1
  158. package/src/main/js/sap/ushell/components/workPageBuilder/controls/WorkPage.js +1 -1
  159. package/src/main/js/sap/ushell/components/workPageBuilder/controls/WorkPageButton.js +1 -1
  160. package/src/main/js/sap/ushell/components/workPageBuilder/controls/WorkPageCell.js +1 -1
  161. package/src/main/js/sap/ushell/components/workPageBuilder/controls/WorkPageColumn.js +1 -1
  162. package/src/main/js/sap/ushell/components/workPageBuilder/controls/WorkPageColumnResizer.js +1 -1
  163. package/src/main/js/sap/ushell/components/workPageBuilder/controls/WorkPageRow.js +1 -1
  164. package/src/main/js/sap/ushell/components/workPageBuilder/manifest.json +1 -1
  165. package/src/main/js/sap/ushell/components/workPageBuilder/view/WorkPageBuilder.view.xml +3 -3
  166. package/src/main/js/sap/ushell/components/workPageRuntime/Component.js +1 -1
  167. package/src/main/js/sap/ushell/components/workPageRuntime/controller/WorkPageRuntime.controller.js +1 -2
  168. package/src/main/js/sap/ushell/components/workPageRuntime/manifest.json +1 -1
  169. package/src/main/js/sap/ushell/components/workPageRuntime/services/NavigationResolver.js +1 -1
  170. package/src/main/js/sap/ushell/components/workPageRuntime/services/WorkPage.js +1 -1
  171. package/src/main/js/sap/ushell/designtime/ApplicationContainer.designtime.js +1 -1
  172. package/src/main/js/sap/ushell/library.js +1 -1
  173. package/src/main/js/sap/ushell/navigationMode.js +1 -1
  174. package/src/main/js/sap/ushell/performance/ShellAnalytics.js +1 -1
  175. package/src/main/js/sap/ushell/performance/StatisticalRecord.js +1 -1
  176. package/src/main/js/sap/ushell/plugins/appwarmup/Component.js +1 -1
  177. package/src/main/js/sap/ushell/{renderers/fiori2 → renderer}/AccessKeysHandler.js +1 -1
  178. package/src/main/js/sap/ushell/renderer/History.js +84 -0
  179. package/src/main/js/sap/ushell/renderer/LogonFrameProvider.js +96 -0
  180. package/src/main/js/sap/ushell/renderer/Renderer.js +2851 -0
  181. package/src/main/js/sap/ushell/renderer/Shell.controller.js +3155 -0
  182. package/src/main/js/sap/ushell/{renderers/fiori2/ShellAsync.view.js → renderer/Shell.view.js} +29 -18
  183. package/src/main/js/sap/ushell/{renderers/fiori2 → renderer}/ShellLayout.js +3 -3
  184. package/src/main/js/sap/ushell/{renderers/fiori2 → renderer}/allMyApps/AllMyApps.controller.js +4 -4
  185. package/src/main/js/sap/ushell/{renderers/fiori2 → renderer}/allMyApps/AllMyApps.view.xml +1 -1
  186. package/src/main/js/sap/ushell/renderer/allMyApps/AllMyAppsKeyboardHandler.js +108 -0
  187. package/src/main/js/sap/ushell/renderer/allMyApps/AllMyAppsManager.js +453 -0
  188. package/src/main/js/sap/ushell/{renderers/fiori2 → renderer}/resources/resources.properties +4 -0
  189. package/src/main/js/sap/ushell/{renderers/fiori2 → renderer}/search/searchComponent/Component.js +3 -3
  190. package/src/main/js/sap/ushell/{renderers/fiori2 → renderer}/search/searchComponent/controller/CEPSearchApp.controller.js +1 -1
  191. package/src/main/js/sap/ushell/{renderers/fiori2 → renderer}/search/searchComponent/controller/SearchApp.controller.js +1 -1
  192. package/src/main/js/sap/ushell/{renderers/fiori2 → renderer}/search/searchComponent/manifest.json +2 -2
  193. package/src/main/js/sap/ushell/{renderers/fiori2 → renderer}/search/searchComponent/view/CEPSearchApp.view.js +2 -2
  194. package/src/main/js/sap/ushell/{renderers/fiori2 → renderer}/search/searchComponent/view/SearchApp.view.js +2 -2
  195. package/src/main/js/sap/ushell/renderers/fiori2/History.js +7 -68
  196. package/src/main/js/sap/ushell/renderers/fiori2/LogonFrameProvider.js +9 -79
  197. package/src/main/js/sap/ushell/renderers/fiori2/Renderer.js +101 -1882
  198. package/src/main/js/sap/ushell/renderers/fiori2/RendererExtensions.js +2 -3
  199. package/src/main/js/sap/ushell/renderers/fiori2/Shell.controller.js +8 -3130
  200. package/src/main/js/sap/ushell/renderers/fiori2/Shell.view.js +7 -7
  201. package/src/main/js/sap/ushell/renderers/fiori2/allMyApps/AllMyAppsKeyboardHandler.js +7 -92
  202. package/src/main/js/sap/ushell/renderers/fiori2/allMyApps/AllMyAppsManager.js +8 -438
  203. package/src/main/js/sap/ushell/resources.js +1 -1
  204. package/src/main/js/sap/ushell/services/AllMyApps.js +16 -7
  205. package/src/main/js/sap/ushell/services/AppConfiguration.js +12 -0
  206. package/src/main/js/sap/ushell/services/AppLifeCycle.js +11 -14
  207. package/src/main/js/sap/ushell/services/AppState.js +12 -8
  208. package/src/main/js/sap/ushell/services/Bookmark.js +15 -13
  209. package/src/main/js/sap/ushell/services/BookmarkV2.js +919 -0
  210. package/src/main/js/sap/ushell/services/ClientSideTargetResolution.js +229 -241
  211. package/src/main/js/sap/ushell/services/CommonDataModel.js +14 -4
  212. package/src/main/js/sap/ushell/services/Configuration.js +12 -11
  213. package/src/main/js/sap/ushell/services/ConfigurationDefaults.js +13 -10
  214. package/src/main/js/sap/ushell/services/Container.js +1 -1
  215. package/src/main/js/sap/ushell/services/ContentExtensionAdapterFactory.js +1 -1
  216. package/src/main/js/sap/ushell/services/CrossApplicationNavigation.js +8 -6
  217. package/src/main/js/sap/ushell/services/DarkModeSupport.js +16 -10
  218. package/src/main/js/sap/ushell/services/EndUserFeedback.js +1 -1
  219. package/src/main/js/sap/ushell/services/Extension/FloatingContainer.js +103 -0
  220. package/src/main/js/sap/ushell/services/Extension/Footer.js +61 -0
  221. package/src/main/js/sap/ushell/services/Extension/Header.js +193 -0
  222. package/src/main/js/sap/ushell/services/Extension/Item.js +195 -0
  223. package/src/main/js/sap/ushell/services/Extension/SidePane.js +155 -0
  224. package/src/main/js/sap/ushell/services/Extension/ToolArea.js +152 -0
  225. package/src/main/js/sap/ushell/services/Extension.js +381 -0
  226. package/src/main/js/sap/ushell/services/LaunchPage.js +1 -1
  227. package/src/main/js/sap/ushell/services/Menu.js +48 -59
  228. package/src/main/js/sap/ushell/services/Message.js +15 -14
  229. package/src/main/js/sap/ushell/services/MessageBroker.js +12 -12
  230. package/src/main/js/sap/ushell/services/NavTargetResolution.js +48 -70
  231. package/src/main/js/sap/ushell/services/Navigation/utils.js +565 -0
  232. package/src/main/js/sap/ushell/services/Navigation.js +152 -139
  233. package/src/main/js/sap/ushell/services/NavigationDataProvider.js +11 -8
  234. package/src/main/js/sap/ushell/services/Notifications.js +118 -1523
  235. package/src/main/js/sap/ushell/services/NotificationsV2.js +1872 -0
  236. package/src/main/js/sap/ushell/services/PageBuilding.js +11 -8
  237. package/src/main/js/sap/ushell/services/PagePersistence.js +11 -8
  238. package/src/main/js/sap/ushell/services/PageReferencing.js +11 -8
  239. package/src/main/js/sap/ushell/services/Pages.js +11 -15
  240. package/src/main/js/sap/ushell/services/Personalization.js +5 -3
  241. package/src/main/js/sap/ushell/services/PersonalizationV2/ContextContainer.js +410 -0
  242. package/src/main/js/sap/ushell/services/PersonalizationV2/Personalizer.js +109 -0
  243. package/src/main/js/sap/ushell/services/PersonalizationV2/TransientPersonalizer.js +57 -0
  244. package/src/main/js/sap/ushell/services/PersonalizationV2/Variant.js +180 -0
  245. package/src/main/js/sap/ushell/services/PersonalizationV2/VariantSet.js +296 -0
  246. package/src/main/js/sap/ushell/services/PersonalizationV2/VariantSetAdapter.js +125 -0
  247. package/src/main/js/sap/ushell/services/PersonalizationV2/WindowAdapter.js +71 -0
  248. package/src/main/js/sap/ushell/services/PersonalizationV2/WindowAdapterContainer.js +172 -0
  249. package/src/main/js/sap/ushell/services/PersonalizationV2/constants.js +23 -0
  250. package/src/main/js/sap/ushell/services/PersonalizationV2/constants.private.js +18 -0
  251. package/src/main/js/sap/ushell/services/PersonalizationV2/utils.js +233 -0
  252. package/src/main/js/sap/ushell/services/PersonalizationV2.js +641 -0
  253. package/src/main/js/sap/ushell/services/PluginManager.js +47 -55
  254. package/src/main/js/sap/ushell/services/ReferenceResolver.js +61 -54
  255. package/src/main/js/sap/ushell/services/Search.js +15 -2
  256. package/src/main/js/sap/ushell/services/SearchCEP.js +40 -44
  257. package/src/main/js/sap/ushell/services/SearchableContent.js +9 -9
  258. package/src/main/js/sap/ushell/services/ShellNavigation.js +14 -13
  259. package/src/main/js/sap/ushell/services/SmartNavigation.js +1 -1
  260. package/src/main/js/sap/ushell/services/SpaceContent.js +9 -10
  261. package/src/main/js/sap/ushell/services/SupportTicket.js +14 -14
  262. package/src/main/js/sap/ushell/services/UITracer.js +31 -35
  263. package/src/main/js/sap/ushell/services/URLParsing.js +9 -11
  264. package/src/main/js/sap/ushell/services/URLShortening.js +1 -1
  265. package/src/main/js/sap/ushell/services/URLTemplate.js +14 -13
  266. package/src/main/js/sap/ushell/services/Ui5ComponentLoader.js +29 -26
  267. package/src/main/js/sap/ushell/services/UsageAnalytics.js +6 -0
  268. package/src/main/js/sap/ushell/services/UserDefaultParameterPersistence.js +11 -7
  269. package/src/main/js/sap/ushell/services/UserDefaultParameters.js +20 -26
  270. package/src/main/js/sap/ushell/services/UserInfo.js +44 -23
  271. package/src/main/js/sap/ushell/services/UserRecents.js +13 -5
  272. package/src/main/js/sap/ushell/services/VisualizationDataProvider.js +12 -9
  273. package/src/main/js/sap/ushell/services/VisualizationInstantiation.js +10 -8
  274. package/src/main/js/sap/ushell/services/_ClientSideTargetResolution/Formatter.js +1 -1
  275. package/src/main/js/sap/ushell/services/_ClientSideTargetResolution/InboundIndex.js +1 -1
  276. package/src/main/js/sap/ushell/services/_ClientSideTargetResolution/InboundProvider.js +1 -1
  277. package/src/main/js/sap/ushell/services/_ClientSideTargetResolution/PrelaunchOperations.js +1 -1
  278. package/src/main/js/sap/ushell/services/_ClientSideTargetResolution/Search.js +1 -1
  279. package/src/main/js/sap/ushell/services/_ClientSideTargetResolution/StagedLogger.js +1 -1
  280. package/src/main/js/sap/ushell/services/_ClientSideTargetResolution/SystemContext.js +1 -1
  281. package/src/main/js/sap/ushell/services/_ClientSideTargetResolution/Utils.js +3 -4
  282. package/src/main/js/sap/ushell/services/_ClientSideTargetResolution/VirtualInbounds.js +4 -4
  283. package/src/main/js/sap/ushell/services/_ClientSideTargetResolution/XAppStateProcessing.js +1 -1
  284. package/src/main/js/sap/ushell/services/_CommonDataModel/SiteConverter.js +1 -1
  285. package/src/main/js/sap/ushell/services/_ContentExtensionAdapterFactory/ContentExtensionAdapterConfig.js +1 -1
  286. package/src/main/js/sap/ushell/services/_ContentExtensionAdapterFactory/FeaturedGroupConfig.js +1 -1
  287. package/src/main/js/sap/ushell/services/_CrossApplicationNavigation/utils.js +2 -1
  288. package/src/main/js/sap/ushell/services/_MessageBroker/MessageBrokerEngine.js +1 -1
  289. package/src/main/js/sap/ushell/services/_PageReferencing/PageReferencer.js +1 -1
  290. package/src/main/js/sap/ushell/services/_Personalization/ContextContainer.js +6 -0
  291. package/src/main/js/sap/ushell/services/_Personalization/PersonalizationContainer.js +5 -1
  292. package/src/main/js/sap/ushell/services/_Personalization/PersonalizationContainerVariant.js +13 -9
  293. package/src/main/js/sap/ushell/services/_Personalization/PersonalizationContainerVariantSet.js +17 -13
  294. package/src/main/js/sap/ushell/services/_Personalization/Personalizer.js +5 -0
  295. package/src/main/js/sap/ushell/services/_Personalization/TransientPersonalizer.js +5 -1
  296. package/src/main/js/sap/ushell/services/_Personalization/Variant.js +4 -0
  297. package/src/main/js/sap/ushell/services/_Personalization/VariantSet.js +17 -9
  298. package/src/main/js/sap/ushell/services/_Personalization/VariantSetAdapter.js +4 -6
  299. package/src/main/js/sap/ushell/services/_Personalization/WindowAdapter.js +5 -44
  300. package/src/main/js/sap/ushell/services/_Personalization/WindowAdapterContainer.js +5 -101
  301. package/src/main/js/sap/ushell/services/_Personalization/constants.js +3 -0
  302. package/src/main/js/sap/ushell/services/_Personalization/constants.private.js +3 -0
  303. package/src/main/js/sap/ushell/services/_Personalization/utils.js +3 -0
  304. package/src/main/js/sap/ushell/services/_PluginManager/Extensions.js +1 -1
  305. package/src/main/js/sap/ushell/services/_PluginManager/HeaderExtensions.js +1 -1
  306. package/src/main/js/sap/ushell/services/_PluginManager/MenuExtensions.js +1 -1
  307. package/src/main/js/sap/ushell/services/_Ui5ComponentLoader/utils.js +29 -5
  308. package/src/main/js/sap/ushell/services/_UserRecents/UserRecentsBase.js +19 -27
  309. package/src/main/js/sap/ushell/services/_VisualizationInstantiation/VizInstance.js +4 -0
  310. package/src/main/js/sap/ushell/services/_VisualizationInstantiation/VizInstanceAbap.js +3 -0
  311. package/src/main/js/sap/ushell/services/_VisualizationInstantiation/VizInstanceLink.js +1 -1
  312. package/src/main/js/sap/ushell/services/personalization/VariantSetAdapter.js +13 -15
  313. package/src/main/js/sap/ushell/support/plugins/flpConfig/FlpConfigurationPlugin.js +1 -1
  314. package/src/main/js/sap/ushell/themes/sap_horizon/ShellAppTitle.less +4 -4
  315. package/src/main/js/sap/ushell/themes/sap_horizon_dark/ShellAppTitle.less +4 -4
  316. package/src/main/js/sap/ushell/themes/sap_horizon_hcb/ShellAppTitle.less +2 -2
  317. package/src/main/js/sap/ushell/themes/sap_horizon_hcw/ShellAppTitle.less +2 -2
  318. package/src/main/js/sap/ushell/ui/AppContainer.js +2 -2
  319. package/src/main/js/sap/ushell/ui/ContentNodeSelector.js +2 -2
  320. package/src/main/js/sap/ushell/ui/ShellHeader.js +2 -2
  321. package/src/main/js/sap/ushell/ui/cards/RecentActivitiesExtension.js +1 -1
  322. package/src/main/js/sap/ushell/ui/footerbar/AddBookmarkButton.js +8 -12
  323. package/src/main/js/sap/ushell/ui/launchpad/ExtendedChangeDetection.js +1 -1
  324. package/src/main/js/sap/ushell/ui/launchpad/Page.js +1 -1
  325. package/src/main/js/sap/ushell/ui/launchpad/Section.js +21 -8
  326. package/src/main/js/sap/ushell/ui/launchpad/TileState.js +0 -1
  327. package/src/main/js/sap/ushell/ui/launchpad/section/CompactArea.js +1 -1
  328. package/src/main/js/sap/ushell/ui/shell/ShellAppTitle.js +1 -1
  329. package/src/main/js/sap/ushell/ui/shell/ShellHeadItem.js +1 -1
  330. package/src/main/js/sap/ushell/ui/shell/SysInfoBar.js +1 -1
  331. package/src/main/js/sap/ushell/ui/shell/ToolAreaItem.js +1 -1
  332. package/src/main/js/sap/ushell/ui/utils.js +1 -1
  333. package/src/main/js/sap/ushell/ui5service/ShellUIService.js +1 -1
  334. package/src/main/js/sap/ushell/ui5service/UserStatus.js +1 -1
  335. package/src/main/js/sap/ushell/ui5service/_ShellUIService/shelluiservice.class.factory.js +14 -26
  336. package/src/main/js/sap/ushell/utils/Deferred.js +88 -0
  337. package/src/main/js/sap/ushell/utils/UrlShortening.js +1 -1
  338. package/src/main/js/sap/ushell/utils/WindowUtils.js +8 -8
  339. package/src/main/js/sap/ushell/utils.js +31 -67
  340. package/src/test/js/sap/ushell/bootstrap/sandbox.js +7 -2
  341. package/ui5.yaml +8 -2
  342. /package/src/main/js/sap/ushell/{renderers/fiori2 → renderer}/HeadEndItemsOverflowPopover.fragment.xml +0 -0
  343. /package/src/main/js/sap/ushell/{renderers/fiori2 → renderer}/resources/resources_ar.properties +0 -0
  344. /package/src/main/js/sap/ushell/{renderers/fiori2 → renderer}/resources/resources_bg.properties +0 -0
  345. /package/src/main/js/sap/ushell/{renderers/fiori2 → renderer}/resources/resources_ca.properties +0 -0
  346. /package/src/main/js/sap/ushell/{renderers/fiori2 → renderer}/resources/resources_cs.properties +0 -0
  347. /package/src/main/js/sap/ushell/{renderers/fiori2 → renderer}/resources/resources_cy.properties +0 -0
  348. /package/src/main/js/sap/ushell/{renderers/fiori2 → renderer}/resources/resources_da.properties +0 -0
  349. /package/src/main/js/sap/ushell/{renderers/fiori2 → renderer}/resources/resources_de.properties +0 -0
  350. /package/src/main/js/sap/ushell/{renderers/fiori2 → renderer}/resources/resources_el.properties +0 -0
  351. /package/src/main/js/sap/ushell/{renderers/fiori2 → renderer}/resources/resources_en.properties +0 -0
  352. /package/src/main/js/sap/ushell/{renderers/fiori2 → renderer}/resources/resources_en_GB.properties +0 -0
  353. /package/src/main/js/sap/ushell/{renderers/fiori2 → renderer}/resources/resources_en_US_sappsd.properties +0 -0
  354. /package/src/main/js/sap/ushell/{renderers/fiori2 → renderer}/resources/resources_en_US_saprigi.properties +0 -0
  355. /package/src/main/js/sap/ushell/{renderers/fiori2 → renderer}/resources/resources_en_US_saptrc.properties +0 -0
  356. /package/src/main/js/sap/ushell/{renderers/fiori2 → renderer}/resources/resources_es.properties +0 -0
  357. /package/src/main/js/sap/ushell/{renderers/fiori2 → renderer}/resources/resources_es_MX.properties +0 -0
  358. /package/src/main/js/sap/ushell/{renderers/fiori2 → renderer}/resources/resources_et.properties +0 -0
  359. /package/src/main/js/sap/ushell/{renderers/fiori2 → renderer}/resources/resources_fi.properties +0 -0
  360. /package/src/main/js/sap/ushell/{renderers/fiori2 → renderer}/resources/resources_fr.properties +0 -0
  361. /package/src/main/js/sap/ushell/{renderers/fiori2 → renderer}/resources/resources_fr_CA.properties +0 -0
  362. /package/src/main/js/sap/ushell/{renderers/fiori2 → renderer}/resources/resources_hi.properties +0 -0
  363. /package/src/main/js/sap/ushell/{renderers/fiori2 → renderer}/resources/resources_hr.properties +0 -0
  364. /package/src/main/js/sap/ushell/{renderers/fiori2 → renderer}/resources/resources_hu.properties +0 -0
  365. /package/src/main/js/sap/ushell/{renderers/fiori2 → renderer}/resources/resources_id.properties +0 -0
  366. /package/src/main/js/sap/ushell/{renderers/fiori2 → renderer}/resources/resources_it.properties +0 -0
  367. /package/src/main/js/sap/ushell/{renderers/fiori2 → renderer}/resources/resources_iw.properties +0 -0
  368. /package/src/main/js/sap/ushell/{renderers/fiori2 → renderer}/resources/resources_ja.properties +0 -0
  369. /package/src/main/js/sap/ushell/{renderers/fiori2 → renderer}/resources/resources_kk.properties +0 -0
  370. /package/src/main/js/sap/ushell/{renderers/fiori2 → renderer}/resources/resources_ko.properties +0 -0
  371. /package/src/main/js/sap/ushell/{renderers/fiori2 → renderer}/resources/resources_lt.properties +0 -0
  372. /package/src/main/js/sap/ushell/{renderers/fiori2 → renderer}/resources/resources_lv.properties +0 -0
  373. /package/src/main/js/sap/ushell/{renderers/fiori2 → renderer}/resources/resources_ms.properties +0 -0
  374. /package/src/main/js/sap/ushell/{renderers/fiori2 → renderer}/resources/resources_nl.properties +0 -0
  375. /package/src/main/js/sap/ushell/{renderers/fiori2 → renderer}/resources/resources_no.properties +0 -0
  376. /package/src/main/js/sap/ushell/{renderers/fiori2 → renderer}/resources/resources_pl.properties +0 -0
  377. /package/src/main/js/sap/ushell/{renderers/fiori2 → renderer}/resources/resources_pt.properties +0 -0
  378. /package/src/main/js/sap/ushell/{renderers/fiori2 → renderer}/resources/resources_pt_PT.properties +0 -0
  379. /package/src/main/js/sap/ushell/{renderers/fiori2 → renderer}/resources/resources_ro.properties +0 -0
  380. /package/src/main/js/sap/ushell/{renderers/fiori2 → renderer}/resources/resources_ru.properties +0 -0
  381. /package/src/main/js/sap/ushell/{renderers/fiori2 → renderer}/resources/resources_sh.properties +0 -0
  382. /package/src/main/js/sap/ushell/{renderers/fiori2 → renderer}/resources/resources_sk.properties +0 -0
  383. /package/src/main/js/sap/ushell/{renderers/fiori2 → renderer}/resources/resources_sl.properties +0 -0
  384. /package/src/main/js/sap/ushell/{renderers/fiori2 → renderer}/resources/resources_sv.properties +0 -0
  385. /package/src/main/js/sap/ushell/{renderers/fiori2 → renderer}/resources/resources_th.properties +0 -0
  386. /package/src/main/js/sap/ushell/{renderers/fiori2 → renderer}/resources/resources_tr.properties +0 -0
  387. /package/src/main/js/sap/ushell/{renderers/fiori2 → renderer}/resources/resources_uk.properties +0 -0
  388. /package/src/main/js/sap/ushell/{renderers/fiori2 → renderer}/resources/resources_vi.properties +0 -0
  389. /package/src/main/js/sap/ushell/{renderers/fiori2 → renderer}/resources/resources_zh_CN.properties +0 -0
  390. /package/src/main/js/sap/ushell/{renderers/fiori2 → renderer}/resources/resources_zh_TW.properties +0 -0
  391. /package/src/main/js/sap/ushell/{renderers/fiori2 → renderer}/search/util.js +0 -0
  392. /package/src/main/js/sap/ushell/{renderers/fiori2 → renderer}/utils.js +0 -0
@@ -0,0 +1,381 @@
1
+ // Copyright (c) 2009-2023 SAP SE, All Rights Reserved
2
+
3
+ /**
4
+ * @fileOverview Extension.
5
+ * This files exposes an API to extend the launchpad with new elements.
6
+ * It is exposed publicly and meant to be used by apps and plugins.
7
+ *
8
+ * @version 1.120.1
9
+ */
10
+ sap.ui.define([
11
+ "./Extension/FloatingContainer",
12
+ "./Extension/Footer",
13
+ "./Extension/Item",
14
+ "./Extension/Header",
15
+ "./Extension/SidePane",
16
+ "./Extension/ToolArea",
17
+ "sap/ushell/Container",
18
+ "sap/ushell/utils"
19
+ ], function (
20
+ FloatingContainerArea,
21
+ FooterItem,
22
+ ExtensionItem,
23
+ HeaderArea,
24
+ SidePaneArea,
25
+ ToolAreaArea,
26
+ Container,
27
+ ushellUtils
28
+ ) {
29
+ "use strict";
30
+
31
+ /**
32
+ * @alias sap.ushell.services.Extension
33
+ * @class
34
+ * @classdesc The Unified Shell's Extension service.
35
+ * Allows adding extensions on the user's home page.
36
+ *
37
+ * <b>Note:</b> To retrieve a valid instance of this service, it is necessary to call
38
+ * <code>sap.ushell.Container.getServiceAsync("Extension")</code>. For details, see
39
+ * {@link sap.ushell.services.Container#getServiceAsync}.
40
+ *
41
+ * <br>
42
+ * All extension items and extension areas are instantiated as invisible.
43
+ * You have to call .show<...> to make them visible.
44
+ *
45
+ * @hideconstructor
46
+ *
47
+ * @since 1.120.0
48
+ * @experimental since 1.120.0. Restriction: API calls might be ignored for apps running in an iframe
49
+ * @public
50
+ */
51
+ function Extension () { }
52
+
53
+ // ========================================== Helper ====================================================================
54
+
55
+ /**
56
+ * Creates a function which scopes a specific control to a single visibility handler.
57
+ * The new function combines a show and hide function.
58
+ * @param {string} controlId The id of the control.
59
+ * @param {function} show The show function.
60
+ * @param {function} hide The hide function.
61
+ * @returns {function} The scoped visibility handler.
62
+ *
63
+ * @since 1.120.0
64
+ * @private
65
+ */
66
+ Extension.prototype._createItemVisibilityHandler = function (controlId, show, hide) {
67
+ return async function visibilityHandler (visible, currentState, state) {
68
+ const states = state ? [state] : undefined;
69
+ if (visible) {
70
+ await ushellUtils.promisify(show(controlId, currentState, states));
71
+ return;
72
+ }
73
+ await ushellUtils.promisify(hide(controlId, currentState, states));
74
+ };
75
+ };
76
+
77
+ /**
78
+ * Utility function to await a function call.
79
+ * @param {function} create The create function.
80
+ * @param {Array<*>} createArgs The list of arguments.
81
+ * @returns {Promise<sap.ui.core.Control>} The created control.
82
+ *
83
+ * @since 1.120.0
84
+ * @private
85
+ */
86
+ Extension.prototype._createControl = async function (create, createArgs) {
87
+ return ushellUtils.promisify(create(...createArgs));
88
+ };
89
+
90
+ // ========================================== Header ====================================================================
91
+
92
+ /**
93
+ * @returns {Promise<sap.ushell.services.Extension.Header>} The extension interface for the header.
94
+ *
95
+ * @since 1.120.0
96
+ * @private
97
+ * @ui5-restricted
98
+ */
99
+ Extension.prototype.getHeader = async function () {
100
+ return new HeaderArea();
101
+ };
102
+
103
+ // ========================================== Header - Items ====================================================================
104
+
105
+ /**
106
+ * Creates a header item in the shell header.
107
+ * @param {object} controlProperties The properties that will be passed to the created control.
108
+ * @param {object} [parameters] Additional parameters.
109
+ * @param {string} [parameters.position=end] Possible values are <code>begin</code> and <code>end</code>.
110
+ * @returns {Promise<sap.ushell.services.Extension.Item>} The newly created header item.
111
+ *
112
+ * @since 1.120.0
113
+ * @public
114
+ */
115
+ Extension.prototype.createHeaderItem = async function (controlProperties, parameters = {}) {
116
+ const { position } = parameters;
117
+ const aValidPositions = ["begin", "end", undefined];
118
+ if (!aValidPositions.includes(position)) {
119
+ throw new Error(`Unexpected Input: '${position}' is not a valid position!`);
120
+ }
121
+
122
+ if (position === "begin") {
123
+ return this._createHeaderStartItem(controlProperties);
124
+ }
125
+ // "end" or undefined
126
+ return this._createHeaderEndItem(controlProperties);
127
+ };
128
+
129
+ /**
130
+ * Creates a header item in the shell header next to the company logo.
131
+ * @param {object} controlProperties The properties that will be passed to the created control.
132
+ * @returns {Promise<sap.ushell.services.Extension.Item>} The newly created header item.
133
+ *
134
+ * @since 1.120.0
135
+ * @private
136
+ */
137
+ Extension.prototype._createHeaderStartItem = async function (controlProperties) {
138
+ const oRenderer = Container.getRendererInternal();
139
+
140
+ const aCreateArgs = [
141
+ controlProperties,
142
+ false, // visible
143
+ undefined, // currentState
144
+ undefined // states
145
+ ];
146
+ const fnCreate = oRenderer.addHeaderItem.bind(oRenderer);
147
+ const fnShow = oRenderer.showHeaderItem.bind(oRenderer);
148
+ const fnHide = oRenderer.hideHeaderItem.bind(oRenderer);
149
+
150
+ const oControl = await this._createControl(fnCreate, aCreateArgs);
151
+ const fnVisibilityHandler = this._createItemVisibilityHandler(oControl.getId(), fnShow, fnHide);
152
+
153
+ return new ExtensionItem(oControl, fnVisibilityHandler);
154
+ };
155
+
156
+ /**
157
+ * Creates a header item in the shell header next to the user action menu.
158
+ * @param {object} controlProperties The properties that will be passed to the created control.
159
+ * @returns {Promise<sap.ushell.services.Extension.Item>} The newly created header item.
160
+ *
161
+ * @since 1.120.0
162
+ * @private
163
+ */
164
+ Extension.prototype._createHeaderEndItem = async function (controlProperties) {
165
+ const oRenderer = Container.getRendererInternal();
166
+
167
+ const aCreateArgs = [
168
+ controlProperties,
169
+ false, // visible
170
+ undefined, // currentState
171
+ undefined // states
172
+ ];
173
+ const fnCreate = oRenderer.addHeaderEndItem.bind(oRenderer);
174
+ const fnShow = oRenderer.showHeaderEndItem.bind(oRenderer);
175
+ const fnHide = oRenderer.hideHeaderEndItem.bind(oRenderer);
176
+
177
+ const oControl = await this._createControl(fnCreate, aCreateArgs);
178
+ const fnVisibilityHandler = this._createItemVisibilityHandler(oControl.getId(), fnShow, fnHide);
179
+
180
+ return new ExtensionItem(oControl, fnVisibilityHandler);
181
+ };
182
+
183
+ // ========================================== SubHeader ====================================================================
184
+
185
+ /**
186
+ * Creates a new sub header which is positioned below the header.
187
+ *
188
+ * <p><b>Note:</b> Only one sub header is displayed at once</p>
189
+ * <p><b>Restriction:</b> Might be ignored for apps running in an iframe</p>
190
+ * @param {object} controlProperties The properties that will be passed to the created control.
191
+ * @param {object} [parameters] Additional parameters.
192
+ * @param {string} [parameters.controlType=sap.m.Bar] Defines the <code>controlType</code>.
193
+ * @returns {Promise<sap.ushell.services.Extension.Item>} The newly created sub header.
194
+ *
195
+ * @since 1.120.0
196
+ * @public
197
+ */
198
+ Extension.prototype.createSubHeader = async function (controlProperties, parameters = {}) {
199
+ const oRenderer = Container.getRendererInternal();
200
+
201
+ const aCreateArgs = [{
202
+ controlType: parameters.controlType || "sap.m.Bar",
203
+ oControlProperties: controlProperties,
204
+ bIsVisible: false,
205
+ bCurrentState: undefined,
206
+ aStates: undefined
207
+ }];
208
+ const fnCreate = oRenderer.addShellSubHeader.bind(oRenderer);
209
+ const fnShow = oRenderer.showSubHeader.bind(oRenderer);
210
+ const fnHide = oRenderer.hideSubHeader.bind(oRenderer);
211
+
212
+ const oControl = await this._createControl(fnCreate, aCreateArgs);
213
+ const fnVisibilityHandler = this._createItemVisibilityHandler(oControl.getId(), fnShow, fnHide);
214
+
215
+ // hide
216
+ // fnVisibilityHandler(false, true, []);
217
+
218
+ return new ExtensionItem(oControl, fnVisibilityHandler);
219
+ };
220
+
221
+ // ========================================== SidePane ====================================================================
222
+
223
+ /**
224
+ * Returns the API for the SidePane which is located next to the launchpad content.
225
+ * <p><b>Restriction:</b> Might be ignored for apps running in an iframe</p>
226
+ * @returns {Promise<sap.ushell.services.Extension.SidePane>} The SidePane.
227
+ *
228
+ * @since 1.120.0
229
+ * @public
230
+ */
231
+ Extension.prototype.getSidePane = async function () {
232
+ return new SidePaneArea();
233
+ };
234
+
235
+ // ========================================== ToolArea ====================================================================
236
+
237
+ /**
238
+ * Returns the API for the ToolArea which is located next to the launchpad content.
239
+ * <p><b>Restriction:</b> Might be ignored for apps running in an iframe</p>
240
+ * @returns {Promise<sap.ushell.services.Extension.ToolArea>} The ToolArea.
241
+ *
242
+ * @since 1.120.0
243
+ * @public
244
+ */
245
+ Extension.prototype.getToolArea = async function () {
246
+ return new ToolAreaArea();
247
+ };
248
+
249
+ // ========================================== UserAction ====================================================================
250
+
251
+ /**
252
+ * Creates a user action in the user action menu.
253
+ * @param {object} controlProperties The properties that will be passed to the created control.
254
+ * @param {object} [parameters] Additional parameters.
255
+ * @param {string} [parameters.controlType=sap.m.Button] Defines the <code>controlType</code>.
256
+ * @returns {Promise<sap.ushell.services.Extension.Item>} The newly created user action.
257
+ *
258
+ * @since 1.120.0
259
+ * @public
260
+ */
261
+ Extension.prototype.createUserAction = async function (controlProperties, parameters = {}) {
262
+ const oRenderer = Container.getRendererInternal();
263
+
264
+ const aCreateArgs = [{
265
+ controlType: parameters.controlType || "sap.m.Button",
266
+ oControlProperties: controlProperties,
267
+ bIsVisible: false,
268
+ bCurrentState: undefined,
269
+ aStates: undefined
270
+ }];
271
+ const fnCreate = oRenderer.addUserAction.bind(oRenderer);
272
+ const fnShow = oRenderer.showActionButton.bind(oRenderer);
273
+ const fnHide = oRenderer.hideActionButton.bind(oRenderer);
274
+
275
+ const oControl = await this._createControl(fnCreate, aCreateArgs);
276
+ const fnVisibilityHandler = this._createItemVisibilityHandler(oControl.getId(), fnShow, fnHide);
277
+
278
+ return new ExtensionItem(oControl, fnVisibilityHandler);
279
+ };
280
+
281
+ // ========================================== Footer ====================================================================
282
+
283
+ /**
284
+ * Creates a new footer which is positioned below the launchpad content.
285
+ *
286
+ * <p><b>Note:</b> Only one footer is displayed at once. Any new footer will replace the previous one</p>
287
+ * <p><b>Restriction:</b> Might be ignored for apps running in an iframe</p>
288
+ * @param {object} controlProperties The properties that will be passed to the created control.
289
+ * @param {object} [parameters] Additional parameters.
290
+ * @param {string} [parameters.controlType=sap.m.Bar] Defines the <code>controlType</code>.
291
+ * @returns {Promise<sap.ushell.services.Extension.Footer>} The newly created footer.
292
+ *
293
+ * @since 1.120.0
294
+ * @public
295
+ */
296
+ Extension.prototype.createFooter = async function (controlProperties, parameters = {}) {
297
+ const oRenderer = Container.getRendererInternal();
298
+
299
+ const aCreateArgs = [{
300
+ controlType: parameters.controlType || "sap.m.Bar",
301
+ oControlProperties: controlProperties
302
+ }];
303
+ const fnCreate = oRenderer.setShellFooter.bind(oRenderer);
304
+
305
+ const oControl = await this._createControl(fnCreate, aCreateArgs);
306
+
307
+ return new FooterItem(oControl);
308
+ };
309
+
310
+ // ========================================== UserSettings ====================================================================
311
+
312
+ /**
313
+ * Adds an entry to the user settings dialog box including the UI control that appears when the user clicks the new entry,
314
+ * and handling of user settings actions such as SAVE and CANCEL.
315
+ * <p><b>Restriction:</b> Might be ignored for apps running in an iframe</p>
316
+ * @param {object} properties The data of the new added user settings entry.
317
+ * @param {string} [properties.entryHelpID] The ID of the object.
318
+ * @param {string} properties.title The title of the entry to be presented in the list in the user settings dialog box. We recommend using a string from the translation bundle.
319
+ * @param {string|function} properties.value A string to be presented as the sub title of the entry OR a function which resolves the sub title.
320
+ * @param {function} properties.content A function that resolves the content which has to be a {@link sap.ui.core.Control}. A SAPUI5 view instance can also be returned.
321
+ * The result will be displayed in the settings as content for this entry.
322
+ * @param {function} properties.onSave A callback which is called when the user clicks "save" in the user settings dialog. The function has to return a native promise.
323
+ * If an error occurs, pass the error message via rejected promise. Errors are displayed in the common log.
324
+ * @param {function} properties.onCancel A callback which is called when the user closes the user settings dialog without saving any changes.
325
+ * @param {boolean} [properties.provideEmptyWrapper=false] Set this value to <code>true</code> if you want that your content is displayed without the standard header.
326
+ * @returns {Promise} Resolves once the settings entry was added.
327
+ *
328
+ * @since 1.120.0
329
+ * @public
330
+ */
331
+ Extension.prototype.addUserSettingsEntry = async function (properties) {
332
+ const oRenderer = Container.getRendererInternal();
333
+ await ushellUtils.promisify(oRenderer.addUserPreferencesEntry(properties));
334
+ };
335
+
336
+ /**
337
+ * Adds an entry to the user settings dialog box including the UI control that appears when the user clicks the new entry,
338
+ * and handling of user settings actions such as SAVE and CANCEL.
339
+ * <p><b>Restriction:</b> Might be ignored for apps running in an iframe</p>
340
+ * @param {object} properties The data of the new added user settings entry.
341
+ * @param {string} [properties.entryHelpID] The ID of the object.
342
+ * @param {string} properties.title The title of the entry to be presented in the list in the user settings dialog box. We recommend using a string from the translation bundle.
343
+ * @param {string|function} properties.value A string to be presented as the sub title of the entry OR a function which resolves the sub title.
344
+ * @param {function} properties.content A function that resolves the content which has to be a {@link sap.ui.core.Control}. A SAPUI5 view instance can also be returned.
345
+ * The result will be displayed in the settings as content for this entry.
346
+ * @param {function} properties.onSave A callback which is called when the user clicks "save" in the user settings dialog. The function has to return a native promise.
347
+ * If an error occurs, pass the error message via rejected promise. Errors are displayed in the common log.
348
+ * @param {function} properties.onCancel A callback which is called when the user closes the user settings dialog without saving any changes.
349
+ * @param {boolean} [properties.provideEmptyWrapper=false] Set this value to <code>true</code> if you want that your content is displayed without the standard header.
350
+ * @param {string} [properties.groupingId] The ID of the group this entry should be included in.
351
+ * @param {string} [properties.groupingTabTitle] The tab title of the entry, when this entry is grouped.
352
+ * @param {string} [properties.groupingTabHelpId] The help ID for the grouped tab, when this entry is grouped.
353
+ * @returns {Promise} Resolves once the settings entry was added.
354
+ *
355
+ * @since 1.120.0
356
+ * @private
357
+ * @ui5-restricted sap.fe, sap.esh.search.ui
358
+ */
359
+ Extension.prototype.addGroupedUserSettingsEntry = async function (properties) {
360
+ const oRenderer = Container.getRendererInternal();
361
+ await ushellUtils.promisify(oRenderer.addUserPreferencesGroupedEntry(properties));
362
+ };
363
+
364
+ // ========================================== FloatingContainer ====================================================================
365
+
366
+ /**
367
+ * Returns the API for the FloatingContainer.
368
+ * <p><b>Restriction:</b> Might be ignored for apps running in an iframe</p>
369
+ * @returns {Promise<sap.ushell.services.Extension.FloatingContainer>} The FloatingContainer.
370
+ *
371
+ * @since 1.120.0
372
+ * @private
373
+ * @ui5-restricted
374
+ */
375
+ Extension.prototype.getFloatingContainer = async function () {
376
+ return new FloatingContainerArea();
377
+ };
378
+
379
+ Extension.hasNoAdapter = true;
380
+ return Extension;
381
+ });
@@ -2,7 +2,7 @@
2
2
 
3
3
  /**
4
4
  * @file The Unified Shell's page builder service providing the data for the Fiori launchpad's classic Homepage.
5
- * @version 1.119.3
5
+ * @version 1.120.1
6
6
  */
7
7
  sap.ui.define([
8
8
  "sap/base/Log",
@@ -2,7 +2,7 @@
2
2
 
3
3
  /**
4
4
  * @fileOverview The menu service provides the entries for the menu bar
5
- * @version 1.119.3
5
+ * @version 1.120.1
6
6
  */
7
7
  sap.ui.define([
8
8
  "sap/ushell/Config",
@@ -27,13 +27,16 @@ sap.ui.define([
27
27
  var ContentNodeType = ushellLibrary.ContentNodeType;
28
28
 
29
29
  /**
30
- * This method MUST be called by the Unified Shell's container only, others MUST call
31
- * <code>sap.ushell.Container.getServiceAsync("Menu").then(function (Menu) {});</code>.
32
- * Constructs a new instance of the menu service.
33
- *
34
- * @namespace sap.ushell.services.Menu
30
+ * @alias sap.ushell.services.Menu
35
31
  * @class
36
- * @see sap.ushell.services.Container#getServiceAsync
32
+ * @classdesc The Unified Shell's Menu service.
33
+ *
34
+ * <b>Note:</b> To retrieve a valid instance of this service, it is necessary to call
35
+ * <code>sap.ushell.Container.getServiceAsync("Menu")</code>. For details, see
36
+ * {@link sap.ushell.services.Container#getServiceAsync}.
37
+ *
38
+ * @hideconstructor
39
+ *
37
40
  * @since 1.71.0
38
41
  * @private
39
42
  */
@@ -119,7 +122,6 @@ sap.ui.define([
119
122
  .then(function (aMenuEntries) {
120
123
  return aMenuEntries
121
124
  .map(function (oMenuEntry) {
122
-
123
125
  // Attach unique ID to all 1st and 2nd level entries
124
126
  oMenuEntry.uid = ushellUtils.generateUniqueId([]);
125
127
  if (oMenuEntry.menuEntries) {
@@ -173,12 +175,10 @@ sap.ui.define([
173
175
  // Calculate hierarchy from the menu
174
176
  return oMenuEntriesPromise
175
177
  .then(function (aMenuEntries) {
176
-
177
178
  return {
178
179
  spaces:
179
180
  // Calculate an array of spaces, which contain a list of their pages each
180
181
  aMenuEntries.reduce(function (aSpaces, oMenuEntry) {
181
-
182
182
  // Get pages that can be accessed by the current menu entry
183
183
  var aPages;
184
184
  if (oMenuEntry.menuEntries && oMenuEntry.menuEntries.length) {
@@ -204,10 +204,8 @@ sap.ui.define([
204
204
  }
205
205
 
206
206
  return aSpaces;
207
-
208
207
  }.bind(this), [])
209
208
  };
210
-
211
209
  }.bind(this))
212
210
  .catch(function () {
213
211
  return { spaces: [] };
@@ -305,28 +303,27 @@ sap.ui.define([
305
303
  if (Config.last("/core/menu/personalization/enabled")) {
306
304
  const oMenuModel = await this.getMenuModel();
307
305
 
308
- //use of pinnedSortOrder property to find default space
309
- // Pinned sort order is always defined.
310
- const oFirstPersonalizedSpace = oMenuModel.getData()
311
- .filter(function filterOutTheSeparatorAndTheUnpinnedMenuEntries (oMenuEntry) {
312
- return oMenuEntry.type !== "separator" && oMenuEntry.pinned;
313
- })
314
- .filter(function filterOutEmptySpaces (oMenuEntry) {
315
- return aContentNodes.some(function testForSpaceWithAtLeastOnePage (oContentNode) {
316
- return oMenuEntry.id === oContentNode.id && oContentNode.children.length;
317
- });
318
- })
319
- .reduce(function chooseSpaceWithLowerSortOrder (oCurrentMinimalMenuEntry, oCurrentMenuEntry) {
320
- return oCurrentMinimalMenuEntry.pinnedSortOrder < oCurrentMenuEntry.pinnedSortOrder ? oCurrentMinimalMenuEntry : oCurrentMenuEntry;
321
- }, {});
306
+ // the "pinnedSortOrder" property is always defined and is used to find the default space
307
+ const oFirstPersonalizedSpace = oMenuModel.getData()
308
+ .filter(function filterOutTheSeparatorAndTheUnpinnedMenuEntries (oMenuEntry) {
309
+ return oMenuEntry.type !== "separator" && oMenuEntry.pinned;
310
+ })
311
+ .filter(function filterOutEmptySpaces (oMenuEntry) {
312
+ return aContentNodes.some(function testForSpaceWithAtLeastOnePage (oContentNode) {
313
+ return oMenuEntry.id === oContentNode.id && oContentNode.children.length;
314
+ });
315
+ })
316
+ .reduce(function chooseSpaceWithLowerSortOrder (oCurrentMinimalMenuEntry, oCurrentMenuEntry) {
317
+ return oCurrentMinimalMenuEntry.pinnedSortOrder < oCurrentMenuEntry.pinnedSortOrder ? oCurrentMinimalMenuEntry : oCurrentMenuEntry;
318
+ }, {});
322
319
 
323
- const oNonEmptyPersonalizedSpace = aContentNodes.find(function findContentNodeForMenuEntry (oContentNode) {
324
- return oFirstPersonalizedSpace.id === oContentNode.id;
325
- });
326
- if (oNonEmptyPersonalizedSpace) {
327
- return oNonEmptyPersonalizedSpace;
328
- }
329
- // if no space is pinned fallback to content nodes
320
+ const oNonEmptyPersonalizedSpace = aContentNodes.find(function findContentNodeForMenuEntry (oContentNode) {
321
+ return oFirstPersonalizedSpace.id === oContentNode.id;
322
+ });
323
+ if (oNonEmptyPersonalizedSpace) {
324
+ return oNonEmptyPersonalizedSpace;
325
+ }
326
+ // if no space is pinned fallback to content nodes
330
327
  }
331
328
 
332
329
  const oNonEmptySpace = aContentNodes.find(function (oContentNode) {
@@ -368,7 +365,6 @@ sap.ui.define([
368
365
  * @private
369
366
  */
370
367
  Menu.prototype._getAccessiblePages = function (aMenuEntries) {
371
-
372
368
  return aMenuEntries
373
369
  .filter(function (oMenuEntry) {
374
370
  return oMenuEntry
@@ -453,24 +449,21 @@ sap.ui.define([
453
449
  * @private
454
450
  */
455
451
  Menu.prototype.getSpaceAndPageTitles = function (spaceId, pageId) {
456
- return this.getContentNodes([ContentNodeType.Space, ContentNodeType.Page])
457
- .then(function (aContentNodes) {
458
- var oSpace,
459
- oPage;
460
- oSpace = aContentNodes.find(function (oContentNode) {
461
- return oContentNode.type === ContentNodeType.Space && oContentNode.id === spaceId;
452
+ return this.getContentNodes([ContentNodeType.Space, ContentNodeType.Page]).then(function (aContentNodes) {
453
+ var oPage;
454
+ var oSpace = aContentNodes.find(function (oContentNode) {
455
+ return oContentNode.type === ContentNodeType.Space && oContentNode.id === spaceId;
456
+ });
457
+ if (oSpace) {
458
+ oPage = oSpace.children.find(function (oContentNode) {
459
+ return oContentNode.type === ContentNodeType.Page && oContentNode.id === pageId;
462
460
  });
463
- if (oSpace) {
464
- oPage = oSpace.children.find(function (oContentNode) {
465
- return oContentNode.type === ContentNodeType.Page && oContentNode.id === pageId;
466
- });
467
- }
468
- if (oPage) {
469
- return { spaceTitle: oSpace.label, pageTitle: oPage.label };
470
- }
471
- return null;
472
461
  }
473
- );
462
+ if (oPage) {
463
+ return { spaceTitle: oSpace.label, pageTitle: oPage.label };
464
+ }
465
+ return null;
466
+ });
474
467
  };
475
468
 
476
469
  /**
@@ -600,8 +593,8 @@ sap.ui.define([
600
593
  Menu.prototype.savePersonalization = function () {
601
594
  var oMenuPersonalizationData = this._extractPersonalization();
602
595
 
603
- return sap.ushell.Container.getServiceAsync("Personalization")
604
- .then(function (oPersonalizationService) {
596
+ return sap.ushell.Container.getServiceAsync("PersonalizationV2")
597
+ .then(async function (oPersonalizationService) {
605
598
  var oPersId;
606
599
 
607
600
  oPersId = {
@@ -616,12 +609,9 @@ sap.ui.define([
616
609
  writeFrequency: oPersonalizationService.constants.writeFrequency.HIGH,
617
610
  clientStorageAllowed: false
618
611
  };
612
+ const oPersonalizer = await oPersonalizationService.getPersonalizer(oPersId, oScope);
619
613
 
620
- return new Promise(function (resolve, reject) {
621
- oPersonalizationService.getPersonalizer(oPersId, oScope).setPersData(oMenuPersonalizationData)
622
- .done(resolve)
623
- .fail(reject);
624
- });
614
+ return oPersonalizer.setPersData(oMenuPersonalizationData);
625
615
  });
626
616
  };
627
617
 
@@ -748,7 +738,7 @@ sap.ui.define([
748
738
  Log.error("Node with id " + nodeId + " cannot be found and will be skipped.");
749
739
  return false;
750
740
  }
751
- if (!!oNodeInfo.managerId && oNodeInfo.managerId !== managerId) {
741
+ if (oNodeInfo.managerId && oNodeInfo.managerId !== managerId) {
752
742
  Log.error("Node with id " + nodeId + " cannot be managed by '" + managerId + "'" +
753
743
  " because it is already managed by '" + oNodeInfo.managerId + "'.");
754
744
  return false;
@@ -787,7 +777,6 @@ sap.ui.define([
787
777
  * @private
788
778
  */
789
779
  Menu.prototype._updateNode = function (nodeId, nodes, managedTree) {
790
-
791
780
  var oTree = deepClone(managedTree || {});
792
781
  // Make sure that all menu entries have uid:
793
782
  function addUid (treeObj) {
@@ -2,7 +2,7 @@
2
2
 
3
3
  /**
4
4
  * @fileOverview The Unified Shell's message service.
5
- * @version 1.119.3
5
+ * @version 1.120.1
6
6
  */
7
7
  sap.ui.define([
8
8
  "sap/base/Log",
@@ -46,15 +46,16 @@ sap.ui.define([
46
46
  var FlexRendertype = mobileLibrary.FlexRendertype;
47
47
 
48
48
  /**
49
- * This method MUST be called by the Unified Shell's container only,
50
- * others MUST call <code>sap.ushell.Container.getServiceAsync("Message")</code>.
51
- * Constructs a new instance of the page builder service.
49
+ * @alias sap.ushell.services.Message
50
+ * @class
51
+ * @classdesc Message service.
52
52
  *
53
- * Message service.
53
+ * <b>Note:</b> To retrieve a valid instance of this service, it is necessary to call
54
+ * <code>sap.ushell.Container.getServiceAsync("Message")</code>. For details, see
55
+ * {@link sap.ushell.services.Container#getServiceAsync}.
56
+ *
57
+ * @hideconstructor
54
58
  *
55
- * @name sap.ushell.services.Message
56
- * @class
57
- * @see sap.ushell.services.Container#getServiceAsync
58
59
  * @since 1.16.0
59
60
  * @public
60
61
  */
@@ -62,7 +63,7 @@ sap.ui.define([
62
63
  var fnShellCallBackFunction;
63
64
 
64
65
  /**
65
- * Initialisation:
66
+ * Initialization:
66
67
  * This method is to be invoked by the Shell to register the message callback function.
67
68
  * The signature of the callback is defined via the show function.
68
69
  *
@@ -112,8 +113,8 @@ sap.ui.define([
112
113
  details: oParameters.details,
113
114
  onClose: oParameters.callback,
114
115
  emphasizedAction: oParameters.emphasizedAction
115
- },
116
- sMessageBoxType;
116
+ };
117
+ var sMessageBoxType;
117
118
 
118
119
  switch (iType) {
119
120
  case Message.Type.ERROR:
@@ -166,9 +167,9 @@ sap.ui.define([
166
167
  "Details: " + (sFormattedDetails || "-")
167
168
  ];
168
169
 
169
- var oElementWithPrevFocus = document.activeElement,
170
- oTemporaryDomElement = document.createElement("textarea"),
171
- sMessageToastText;
170
+ var oElementWithPrevFocus = document.activeElement;
171
+ var oTemporaryDomElement = document.createElement("textarea");
172
+ var sMessageToastText;
172
173
 
173
174
  try {
174
175
  oTemporaryDomElement.contentEditable = true;