@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
@@ -5,6 +5,7 @@ sap.ui.define([
5
5
  "sap/ui/model/json/JSONModel",
6
6
  "sap/ui/core/Fragment",
7
7
  "sap/m/List",
8
+ "sap/m/Text",
8
9
  "sap/m/StandardListItem",
9
10
  "sap/ushell/components/shell/SearchCEP/SearchProviders/SearchProvider",
10
11
  "sap/base/Log",
@@ -15,12 +16,14 @@ sap.ui.define([
15
16
  "sap/ui/core/Configuration",
16
17
  "sap/base/util/UriParameters",
17
18
  "sap/ui/core/Core",
18
- "sap/ushell/EventHub"
19
+ "sap/ushell/EventHub",
20
+ "sap/m/Avatar"
19
21
  ], function (
20
22
  Controller,
21
23
  JSONModel,
22
24
  Fragment,
23
25
  List,
26
+ Text,
24
27
  StandardListItem,
25
28
  SearchProvider,
26
29
  Log,
@@ -31,7 +34,8 @@ sap.ui.define([
31
34
  Configuration,
32
35
  UriParameters,
33
36
  Core,
34
- EventHub
37
+ EventHub,
38
+ Avatar
35
39
  ) {
36
40
  "use strict";
37
41
 
@@ -175,7 +179,14 @@ sap.ui.define([
175
179
  var nPlaceHolderSFHeight = document.getElementById("PlaceHolderSearchField").clientHeight;
176
180
  document.getElementById("CEPSearchField").style.height = nPlaceHolderSFHeight + "px";
177
181
  // add tooltip to CEP Search icon
178
- jQuery(this.oSF.getDomRef()).find("#CEPSearchField-search").attr("title", resources.i18n.getText("search"));
182
+ document.getElementById("CEPSearchField-search").title = resources.i18n.getText("search");
183
+ // add tooltip to truncated list items
184
+ var aListItemsTitles = document.querySelectorAll(".searchCEPList .sapMSLIDiv:not(.sapMGrowingListTriggerText)>.sapMSLITitleOnly");
185
+ aListItemsTitles.forEach(function (oDiv) {
186
+ if (oDiv.scrollWidth > oDiv.offsetWidth) {
187
+ oDiv.parentNode.parentNode.title = oDiv.innerText;
188
+ }
189
+ });
179
190
  },
180
191
 
181
192
  onAfterClose: function (oEvent) {
@@ -423,20 +434,15 @@ sap.ui.define([
423
434
  id: oConfiguration.id,
424
435
  showSeparators: "None",
425
436
  headerText: oConfiguration.titleVisible ? oConfiguration.title : "",
437
+ headerLevel: "H1",
426
438
  growing: true,
427
439
  showNoData: oConfiguration.showNoData || false,
428
440
  growingThreshold: oConfiguration.defaultItemCount,
429
441
  growingScrollToLoad: false,
430
442
  items: {
431
443
  path: "resultModel>/" + oConfiguration.name,
432
- template: (new StandardListItem({
433
- type: "Active",
434
- title: "{resultModel>text}",
435
- icon: "{resultModel>icon}",
436
- iconDensityAware: false
437
- })).addStyleClass("sapUiTinyMarginBeginEnd")
444
+ factory: this._createListItem.bind(this)
438
445
  },
439
-
440
446
  growingStarted: this._listUpdateStart.bind(this),
441
447
  updateStarted: this._listUpdateStart.bind(this),
442
448
  itemPress: this._itemPress.bind(this)
@@ -462,6 +468,37 @@ sap.ui.define([
462
468
  return oList;
463
469
  },
464
470
 
471
+ _createListItem: function (sId, oContext) {
472
+
473
+ var oParams = {
474
+ type: "Active",
475
+ title: oContext.getProperty("text"),
476
+ iconDensityAware: false
477
+ },
478
+ sIconPath = oContext.getProperty("icon");
479
+
480
+ var oAvatar = new Avatar("", {
481
+ displaySize: "XS",
482
+ backgroundColor: "Transparent",
483
+ displayShape: "Square",
484
+ src: sIconPath,
485
+ imageFitType: "Contain",
486
+ decorative: true
487
+ });
488
+
489
+ oParams.avatar = oAvatar;
490
+
491
+ if (sIconPath.indexOf("sap-icon://") > -1) {
492
+ // override with generic icon color
493
+ oAvatar.addStyleClass("searchCEPlistItemIcon");
494
+ }
495
+
496
+ var oListItem = new StandardListItem(oParams);
497
+ oListItem.addStyleClass("sapUiTinyMarginBeginEnd");
498
+
499
+ return oListItem;
500
+ },
501
+
465
502
  _itemPress: function (oEvent) {
466
503
 
467
504
  var fnHandleItemPress,
@@ -489,6 +526,12 @@ sap.ui.define([
489
526
  fnHandleItemPress = oModelListItem.press;
490
527
  fnHandleItemPress(oEvent);
491
528
  }
529
+
530
+ // handle close popover logic
531
+ if ((!oModelListItem.hasOwnProperty("closePopover") && oListConfig.closePopover === true)
532
+ || (oModelListItem.hasOwnProperty("closePopover") && oModelListItem.closePopover === true)) {
533
+ this._oPopover.close();
534
+ }
492
535
  }
493
536
  },
494
537
 
@@ -645,18 +688,23 @@ sap.ui.define([
645
688
 
646
689
  _applyResultsAcc: function (iNumOfItems) {
647
690
 
648
- var sAriaText = "";
691
+ var sNewAriaText = "",
692
+ oDescriptionSpan = this.oSF.$("SuggDescr"),
693
+ sOldAriaText = oDescriptionSpan.text();
649
694
 
650
695
  // add items to list
651
696
  if (iNumOfItems === 1) {
652
- sAriaText = resources.i18n.getText("one_result_search_aria", iNumOfItems);
697
+ sNewAriaText = resources.i18n.getText("one_result_search_aria", iNumOfItems);
653
698
  } else if (iNumOfItems > 1) {
654
- sAriaText = resources.i18n.getText("multiple_results_search_aria", iNumOfItems);
699
+ sNewAriaText = resources.i18n.getText("multiple_results_search_aria", iNumOfItems);
655
700
  } else {
656
- sAriaText = resources.i18n.getText("no_results_search_aria");
701
+ sNewAriaText = resources.i18n.getText("no_results_search_aria");
657
702
  }
658
- // update Accessibility text for suggestion
659
- this.oSF.$("SuggDescr").text(sAriaText);
703
+ // update Accessibility text to announce current number of search results
704
+ if (sOldAriaText.indexOf(".") < 0) {
705
+ sNewAriaText += ".";
706
+ }
707
+ oDescriptionSpan.text(sNewAriaText);
660
708
  },
661
709
 
662
710
  _toggleSearchPopover: function (bOpen) {
@@ -685,6 +733,15 @@ sap.ui.define([
685
733
  }
686
734
 
687
735
  this._initializeSearchField();
736
+
737
+ var oText = new Text({
738
+ id: "popoverTitle",
739
+ text: "List of search results and navigation suggestions"
740
+ });
741
+
742
+ oText.addStyleClass("sapUiInvisibleText");
743
+ this._oPopover.addContent(oText);
744
+
688
745
  this._initLists().then(function () {
689
746
  this._testProviders();
690
747
  }.bind(this));
@@ -692,6 +749,7 @@ sap.ui.define([
692
749
  } else if (bOpen) {
693
750
  this._oPopover.openBy(this._oPlaceHolderSF);
694
751
  this.bOpeningPopOver = true;
752
+
695
753
  if (this._oPlaceHolderSF.getValue() !== "") {
696
754
  this.oSF.setValue(this._oPlaceHolderSF.getValue());
697
755
  }
@@ -13,7 +13,8 @@
13
13
  beforeOpen=".onBeforeOpen"
14
14
  afterOpen=".onAfterOpen"
15
15
  afterClose=".onAfterClose"
16
- horizontalScrolling="false">
16
+ horizontalScrolling="false"
17
+ ariaLabelledBy="popoverTitle">
17
18
  <content>
18
19
  <SearchField
19
20
  id="CEPSearchField"
@@ -2,7 +2,7 @@
2
2
 
3
3
  /**
4
4
  * @fileOverview
5
- * @version 1.118.0
5
+ * @version 1.119.2
6
6
  */
7
7
  sap.ui.define([
8
8
  "sap/base/Log"
@@ -10,7 +10,6 @@ sap.ui.define([
10
10
  "use strict";
11
11
 
12
12
  /**
13
- * @constructor
14
13
  * @class
15
14
  * @since 1.101.0
16
15
  * @private
@@ -2,7 +2,7 @@
2
2
 
3
3
  /**
4
4
  * @fileOverview
5
- * @version 1.118.0
5
+ * @version 1.119.2
6
6
  */
7
7
  sap.ui.define([
8
8
  "sap/base/Log"
@@ -10,7 +10,6 @@ sap.ui.define([
10
10
  "use strict";
11
11
 
12
12
  /**
13
- * @constructor
14
13
  * @class
15
14
  * @since 1.101.0
16
15
  * @private
@@ -2,7 +2,7 @@
2
2
 
3
3
  /**
4
4
  * @fileOverview This module is the search provider main interface
5
- * @version 1.118.0
5
+ * @version 1.119.2
6
6
  */
7
7
  sap.ui.define([
8
8
  "sap/ushell/resources",
@@ -2,7 +2,7 @@
2
2
 
3
3
  /**
4
4
  * @fileOverview This module handles the navigation service search actions
5
- * @version 1.118.0
5
+ * @version 1.119.2
6
6
  */
7
7
  sap.ui.define([
8
8
  "sap/base/Log",
@@ -18,7 +18,6 @@ sap.ui.define([
18
18
  "use strict";
19
19
 
20
20
  /**
21
- * @constructor
22
21
  * @class
23
22
  * @since 1.101.0
24
23
  * @private
@@ -48,7 +48,7 @@ sap.ui.define([
48
48
  return UIComponent.extend("sap.ushell.components.shell.Settings.Component", {
49
49
 
50
50
  metadata: {
51
- version: "1.118.0",
51
+ version: "1.119.2",
52
52
  library: "sap.ushell",
53
53
  dependencies: {
54
54
  libs: {
@@ -1,11 +1,10 @@
1
1
  // Copyright (c) 2009-2023 SAP SE, All Rights Reserved
2
2
 
3
3
  sap.ui.define([
4
- "sap/ui/core/Core"
5
- ], function (Core) {
4
+ "sap/ui/core/Messaging"
5
+ ], function (Messaging) {
6
6
  "use strict";
7
7
  var sUserSettingsErrorDialogTarget = "sapUshellSettingsDialog/";
8
- var oMessageManager = Core.getMessageManager();
9
8
 
10
9
  return {
11
10
  addMessage: addMessage,
@@ -21,7 +20,7 @@ sap.ui.define([
21
20
  */
22
21
  function addMessage (message) {
23
22
  message.setTargets([sUserSettingsErrorDialogTarget]);
24
- oMessageManager.addMessages(message);
23
+ Messaging.addMessages(message);
25
24
  }
26
25
 
27
26
  /**
@@ -31,8 +30,8 @@ sap.ui.define([
31
30
  * @private
32
31
  */
33
32
  function filterMessagesToDisplay () {
34
- return oMessageManager.getMessageModel().getData().filter(function (oMessage) {
35
- return oMessage.getTarget() && oMessage.getTarget().indexOf(sUserSettingsErrorDialogTarget) === 0;
33
+ return Messaging.getMessageModel().getData().filter(function (oMessage) {
34
+ return oMessage.getTargets() && oMessage.getTargets().indexOf(sUserSettingsErrorDialogTarget) === 0;
36
35
  });
37
36
  }
38
37
 
@@ -42,9 +41,9 @@ sap.ui.define([
42
41
  * @private
43
42
  */
44
43
  function removeErrorMessages () {
45
- oMessageManager.getMessageModel().getData().forEach(function (oMessage) {
46
- if (oMessage.getTarget() && oMessage.getTarget().indexOf(sUserSettingsErrorDialogTarget) === 0) {
47
- oMessageManager.removeMessages(oMessage);
44
+ Messaging.getMessageModel().getData().forEach(function (oMessage) {
45
+ if (oMessage.getTargets() && oMessage.getTargets().indexOf(sUserSettingsErrorDialogTarget) === 0) {
46
+ Messaging.removeMessages(oMessage);
48
47
  }
49
48
  });
50
49
  }
@@ -66,6 +66,7 @@ sap.ui.define([
66
66
 
67
67
  Device.orientation.attachHandler(this._fnOrientationChange, this);
68
68
 
69
+ this._oSelectedItemOnMobile = null; // used to enable selection on mobile
69
70
  this._oConfigDoable = Config
70
71
  .on("/core/userPreferences/entries")
71
72
  .do(this._processNewEntries.bind(this));
@@ -250,7 +251,7 @@ sap.ui.define([
250
251
  * Tries to load the information for the list item of an entry async.
251
252
  *
252
253
  * @param {string} sEntryId the id on an entry
253
- * @returns {Promise<void>} Resolves the entry value was fetched and set
254
+ * @returns {Promise<undefined>} Resolves the entry value was fetched and set
254
255
  *
255
256
  * @private
256
257
  */
@@ -336,8 +337,8 @@ sap.ui.define([
336
337
  * @private
337
338
  */
338
339
  _navToggleButtonPressHandler: function () {
339
- var oSplitApp = this.getView().byId("settingsApp"),
340
- bIsMasterShown = oSplitApp.isMasterShown();
340
+ var oSplitApp = this.getView().byId("settingsApp");
341
+ var bIsMasterShown = oSplitApp.isMasterShown();
341
342
 
342
343
  if (bIsMasterShown) {
343
344
  oSplitApp.hideMaster();
@@ -384,7 +385,7 @@ sap.ui.define([
384
385
  * Navigates to the detail page that belongs to the given selected item.
385
386
  *
386
387
  * @param {sap.m.StandardListItem} oSelectedItem the StandardListItem that should be handled.
387
- * @returns {Promise<void>} A promise which resolves when the navigation was done.
388
+ * @returns {Promise<undefined>} A promise which resolves when the navigation was done.
388
389
  * @private
389
390
  */
390
391
  _toDetail: function (oSelectedItem) {
@@ -392,6 +393,7 @@ sap.ui.define([
392
393
  var oModel = oView.getModel();
393
394
  var oResultsModel = oView.getModel("results");
394
395
 
396
+ var oSplitApp = oView.byId("settingsApp");
395
397
  var sEntryPath = oSelectedItem.getBindingContextPath();
396
398
  var oEntry = oModel.getProperty(sEntryPath);
397
399
  var sEntryId = oEntry.id;
@@ -405,17 +407,19 @@ sap.ui.define([
405
407
  this._aPreviouslySelectedItems = [sEntryId];
406
408
  }
407
409
 
408
- // Clear selection from list.
409
- if (Device.system.phone) {
410
+ if (Device.system.phone) { // Clear selection from list on mobile.
411
+ this._oSelectedItemOnMobile = oSelectedItem;
410
412
  oSelectedItem.setSelected(false);
411
413
  }
412
414
 
415
+ // Entry result was already saved
413
416
  if (sDetailPageId) {
414
417
  this._navToDetail(sDetailPageId, oView);
415
418
  var sWrapperId = oEntry.tabs.map(function (oTabEntry) {
416
419
  return oTabEntry.id;
417
420
  }).join("-");
418
421
  var oWrapperPromise = this._mLoadedWrappers.get(sWrapperId);
422
+ // Loading of actual wrapper+entry was started
419
423
  if (oWrapperPromise) {
420
424
  oWrapperPromise.then(function (oWrapper) {
421
425
  var oIconTabBar = oWrapper.getContent()[1];
@@ -436,24 +440,48 @@ sap.ui.define([
436
440
  return Promise.resolve();
437
441
  }
438
442
  }
443
+ // First time entry was required => load wrapper+entry
444
+
445
+ // Show busy content as long as the selected Page is not yet loaded.
446
+ if (Device.system.phone) {
447
+ // the busy page interacts with the back navigation on mobile
448
+ oSplitApp.setBusy(true);
449
+ } else {
450
+ this._navToBusyPage();
451
+ }
439
452
 
440
453
  return Promise.all([
441
454
  this._createContentWrapper(oEntry),
442
455
  this._createEntryContent(oEntry)
443
456
  ]).then(function (aResults) {
457
+ var oWrapper = aResults[0];
458
+ var oEntryContent = aResults[1];
459
+
444
460
  var aEntries = Config.last("/core/userPreferences/entries");
445
461
  var bEntryAvailable = aEntries.some(function (oEntry) {
446
462
  return oEntry.id === sEntryId && oEntry.visible !== false;
447
463
  });
464
+
465
+ var oMasterEntryList = oView.byId("userSettingEntryList");
466
+ var oCurrentSelectedItem = oMasterEntryList.getSelectedItem() || this._oSelectedItemOnMobile;
467
+ // Since the entry content creation is delayed, it might be that the user already selected a different settings entry.
468
+ var bLoadedDetailMatchesSelectedEntry = oSelectedItem === oCurrentSelectedItem;
469
+
448
470
  if (!bEntryAvailable) {
471
+ if (bLoadedDetailMatchesSelectedEntry) {
472
+ if (oSplitApp.getMode() === "ShowHideMode") {
473
+ oSplitApp.showMaster();
474
+ this._updateHeaderButtonVisibility(true);
475
+ } else {
476
+ this._toDetail(oCurrentSelectedItem || oMasterEntryList.getItems()[0]);
477
+ }
478
+ }
479
+
449
480
  // don't add entries which are not visible anymore
450
481
  return;
451
482
  }
452
483
 
453
- var oWrapper = aResults[0];
454
- var oEntryContent = aResults[1];
455
-
456
- this.getView().byId("settingsApp").addDetailPage(oWrapper);
484
+ oSplitApp.addDetailPage(oWrapper);
457
485
 
458
486
  if (oEntry.tabs.length > 1) {
459
487
  oWrapper.getContent()[1].getItems()[0].addContent(oEntryContent);
@@ -464,8 +492,11 @@ sap.ui.define([
464
492
  var sNewDetailPageId = oWrapper.getId();
465
493
  oResultsModel.setProperty("/entries/" + sEntryId + "/contentResult", sNewDetailPageId);
466
494
 
467
- this._navToDetail(sNewDetailPageId, oView);
468
- this._emitEntryOpened(sEntryId);
495
+
496
+ if (bLoadedDetailMatchesSelectedEntry) {
497
+ this._navToDetail(sNewDetailPageId, oView);
498
+ this._emitEntryOpened(sEntryId);
499
+ }
469
500
 
470
501
  return oWrapper.getId();
471
502
  }.bind(this));
@@ -576,6 +607,14 @@ sap.ui.define([
576
607
  });
577
608
  },
578
609
 
610
+ /**
611
+ * Navigates to busy page
612
+ */
613
+ _navToBusyPage: function () {
614
+ var oView = this.getView();
615
+ this._navToDetail(oView.createId("userSettingBusyPage"), oView);
616
+ },
617
+
579
618
  /**
580
619
  * Navigates to the corresponding detail Page.
581
620
  *
@@ -585,6 +624,7 @@ sap.ui.define([
585
624
  */
586
625
  _navToDetail: function (sId, oView) {
587
626
  var oSplitApp = oView.byId("settingsApp");
627
+ oSplitApp.setBusy(false);
588
628
 
589
629
  oSplitApp.toDetail(sId);
590
630
  if (oSplitApp.getMode() === "ShowHideMode") {
@@ -790,7 +830,7 @@ sap.ui.define([
790
830
  ErrorMessageHelper.addMessage(errorInformation);
791
831
  return;
792
832
  } else {
793
- sMessage = resources.i18n.getText("userSettings.SavingError.WithMessage", errorInformation.message);
833
+ sMessage = resources.i18n.getText("userSettings.SavingError.WithMessage", [errorInformation.message]);
794
834
  }
795
835
 
796
836
  ErrorMessageHelper.addMessage(new Message({
@@ -70,6 +70,11 @@
70
70
  </content>
71
71
  </Page>
72
72
  </masterPages>
73
+ <detailPages>
74
+ <Page id="userSettingBusyPage"
75
+ showHeader="false"
76
+ busy="true" />
77
+ </detailPages>
73
78
  </SplitApp>
74
79
  </content>
75
80
  <footer>
@@ -8,7 +8,6 @@ sap.ui.define([
8
8
  "sap/ui/core/library",
9
9
  "sap/ui/core/message/Message",
10
10
  "sap/ui/core/mvc/Controller",
11
- "sap/ui/core/theming/Parameters",
12
11
  "sap/ui/Device",
13
12
  "sap/ui/model/json/JSONModel",
14
13
  "sap/ui/thirdparty/jquery",
@@ -16,7 +15,8 @@ sap.ui.define([
16
15
  "sap/ushell/EventHub",
17
16
  "sap/ushell/resources",
18
17
  "sap/ushell/services/DarkModeSupport",
19
- "sap/ushell/User"
18
+ "sap/ushell/User",
19
+ "sap/ushell/utils"
20
20
  ], function (
21
21
  Log,
22
22
  BaseObject,
@@ -25,7 +25,6 @@ sap.ui.define([
25
25
  coreLibrary,
26
26
  Message,
27
27
  Controller,
28
- Parameters,
29
28
  Device,
30
29
  JSONModel,
31
30
  jQuery,
@@ -33,7 +32,8 @@ sap.ui.define([
33
32
  EventHub,
34
33
  ushellResources,
35
34
  DarkModeSupport,
36
- User
35
+ User,
36
+ ushellUtils
37
37
  ) {
38
38
  "use strict";
39
39
 
@@ -104,18 +104,20 @@ sap.ui.define([
104
104
  // listener
105
105
  Core.attachThemeChanged(this._handleThemeApplied, this);
106
106
 
107
- return this.getDarkModeModel(this.aThemeListFromServer)
108
- .then(function (oDarkModeModel) {
109
- this._oDarkModeModel = oDarkModeModel;
110
- oView.setModel(this._oDarkModeModel, "darkMode");
111
-
112
- // Model for the tab with theme list
113
- var oUserTheme = this.oUser.getTheme();
114
- oView.setModel(new JSONModel({
115
- options: this._getThemeListData(this.aThemeListFromServer, oUserTheme),
116
- ariaTexts: { headerLabel: ushellResources.i18n.getText("Appearance") }
117
- }));
118
- }.bind(this));
107
+ this._oDarkModeModel = this.getDarkModeModel(this.aThemeListFromServer);
108
+ oView.setModel(this._oDarkModeModel, "darkMode");
109
+
110
+ // Model for the tab with theme list
111
+ var oUserTheme = this.oUser.getTheme();
112
+ oView.setModel(new JSONModel({
113
+ options: this._getThemeListData(this.aThemeListFromServer, oUserTheme),
114
+ ariaTexts: { headerLabel: ushellResources.i18n.getText("Appearance") }
115
+ }));
116
+
117
+ return Promise.all([
118
+ this._oConfigModelPromise,
119
+ this._oDarkModeModelPromise
120
+ ]);
119
121
  },
120
122
 
121
123
  onExit: function () {
@@ -180,13 +182,13 @@ sap.ui.define([
180
182
  },
181
183
 
182
184
  getConfigurationModel: function () {
183
- return new JSONModel({
185
+ const oConfigModel = new JSONModel({
184
186
  themeConfigurable: Config.last("/core/shell/model/setTheme"),
185
187
  sizeBehaviorConfigurable: Config.last("/core/home/sizeBehaviorConfigurable"),
186
188
  tileSize: this.TILE_SIZE[Config.last("/core/home/sizeBehavior")],
187
189
  contentDensityConfigurable: Config.last("/core/shell/model/contentDensity") && !Device.system.phone,
188
190
  isCozyContentMode: document.body.classList.contains("sapUiSizeCozy"),
189
- sapUiContentIconColor: Parameters.get("sapUiContentIconColor"),
191
+ sapUiContentIconColor: "",
190
192
  textAlign: Device.system.phone ? "Left" : "Right",
191
193
  showContentProviderInfoOnVisualizationsConfigurable:
192
194
  Config.last("/core/contentProviders/providerInfo/enabled") &&
@@ -194,36 +196,36 @@ sap.ui.define([
194
196
  showContentProviderInfoOnVisualizationsSelected:
195
197
  Config.last("/core/contentProviders/providerInfo/showContentProviderInfoOnVisualizations")
196
198
  });
199
+
200
+ this._oConfigModelPromise = ushellUtils.getThemingParameters(["sapUiContentIconColor"]).then(([sSapUiContentIconColor]) => {
201
+ oConfigModel.setProperty("/sapUiContentIconColor", sSapUiContentIconColor);
202
+ });
203
+
204
+ return oConfigModel;
197
205
  },
198
206
 
199
207
  getDarkModeModel: function (aThemeList) {
200
- var oDarkModeModel = new JSONModel({});
201
- var oDarkModeModelData = {
208
+ var oDarkModeModel = new JSONModel({
202
209
  enabled: false,
203
210
  detectionSupported: false,
204
211
  detectionEnabled: false,
205
212
  supportedThemes: {}
206
- };
207
- var oPromise;
213
+ });
208
214
 
209
215
  if (Config.last("/core/darkMode/enabled")) {
210
- oPromise = sap.ushell.Container.getServiceAsync("DarkModeSupport")
211
- .then(function (oDarkModeSupport) {
212
- oDarkModeModelData.enabled = true;
213
- oDarkModeModelData.detectionSupported = oDarkModeSupport.canAutomaticallyToggleDarkMode();
214
- // if detection is not supported, e.g. due to the "&sap-theme=" URL parameter,
215
- // then do not enable dark mode detection disregarding the user setting.
216
- oDarkModeModelData.detectionEnabled = oDarkModeModelData.detectionSupported && this.oUser.getDetectDarkMode();
217
- oDarkModeModelData.supportedThemes = this._getSupportedDarkModeThemes(aThemeList, Config.last("/core/darkMode/supportedThemes") || []);
218
- oDarkModeModel.setData(oDarkModeModelData);
219
- return oDarkModeModel;
220
- }.bind(this));
216
+ this._oDarkModeModelPromise = sap.ushell.Container.getServiceAsync("DarkModeSupport").then(function (oDarkModeSupport) {
217
+ oDarkModeModel.setProperty("/enabled", true);
218
+ oDarkModeModel.setProperty("/detectionSupported", oDarkModeSupport.canAutomaticallyToggleDarkMode());
219
+ // if detection is not supported, e.g. due to the "&sap-theme=" URL parameter,
220
+ // then do not enable dark mode detection disregarding the user setting.
221
+ oDarkModeModel.setProperty("/detectionEnabled", oDarkModeSupport.canAutomaticallyToggleDarkMode() && this.oUser.getDetectDarkMode());
222
+ oDarkModeModel.setProperty("/supportedThemes", this._getSupportedDarkModeThemes(aThemeList, Config.last("/core/darkMode/supportedThemes") || []));
223
+ }.bind(this));
221
224
  } else {
222
- oDarkModeModel.setData(oDarkModeModelData);
223
- oPromise = Promise.resolve(oDarkModeModel);
225
+ this._oDarkModeModelPromise = Promise.resolve();
224
226
  }
225
227
 
226
- return oPromise;
228
+ return oDarkModeModel;
227
229
  },
228
230
 
229
231
  _getSupportedDarkModeThemes: function (aThemeList, aSupportedThemePairs) {
@@ -274,10 +276,11 @@ sap.ui.define([
274
276
  });
275
277
  },
276
278
 
277
- _handleThemeApplied: function () {
279
+ _handleThemeApplied: async function () {
278
280
  var oConfigModel = this.getView().getModel("config");
279
281
  if (oConfigModel) {
280
- oConfigModel.setProperty("/sapUiContentIconColor", Parameters.get("sapUiContentIconColor"));
282
+ const [sSapUiContentIconColor] = await ushellUtils.getThemingParameters(["sapUiContentIconColor"]);
283
+ oConfigModel.setProperty("/sapUiContentIconColor", sSapUiContentIconColor);
281
284
  // readjusts the theme list after the dark mode change
282
285
  var oUserTheme = this.oUser.getTheme();
283
286
  var aThemeListData = this._getThemeListData(this.aThemeListFromServer, oUserTheme);
@@ -89,7 +89,7 @@ sap.ui.define([
89
89
  /**
90
90
  * Called when the "Save" button is pressed. Saves the current settings in case they have changed.
91
91
  *
92
- * @returns {Promise<void>} A promise that resolves when the settings have changed successfully or when there were no changes made.
92
+ * @returns {Promise<undefined>} A promise that resolves when the settings have changed successfully or when there were no changes made.
93
93
  * @private
94
94
  */
95
95
  onSave: function () {
@@ -42,7 +42,7 @@ sap.ui.define([
42
42
  /**
43
43
  * Called when the "Save" button is pressed. Saves the current settings in case they have changed.
44
44
  *
45
- * @returns {Promise<void>} A promise that resolves when the settings have changed successfully or when there were no changes made.
45
+ * @returns {Promise<undefined>} A promise that resolves when the settings have changed successfully or when there were no changes made.
46
46
  * @private
47
47
  */
48
48
  onSave: function () {
@@ -56,7 +56,7 @@ sap.ui.define([
56
56
  * Enables or disables the tracking of user activities in the ushell.
57
57
  *
58
58
  * @param {boolean} enabled Whether to activate or de-activate it.
59
- * @returns {Promise<void>} A promise that resolves when the settings were changed succesfully.
59
+ * @returns {Promise<undefined>} A promise that resolves when the settings were changed succesfully.
60
60
  * @private
61
61
  */
62
62
  _setTrackingToEnabled: function (enabled) {