@sapui5/sap.ushell 1.126.1 → 1.127.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 (404) hide show
  1. package/package.json +1 -1
  2. package/src/main/js/sap/ushell/.library +1 -1
  3. package/src/main/js/sap/ushell/Fiori20Adapter.js +1 -1
  4. package/src/main/js/sap/ushell/Fiori20AdapterTest.js +1 -1
  5. package/src/main/js/sap/ushell/NWBCInterface.js +1 -1
  6. package/src/main/js/sap/ushell/SessionHandler.js +2 -2
  7. package/src/main/js/sap/ushell/TechnicalParameters.js +1 -1
  8. package/src/main/js/sap/ushell/URLTemplateProcessor.js +1 -1
  9. package/src/main/js/sap/ushell/Ui5NativeServiceFactory.js +1 -1
  10. package/src/main/js/sap/ushell/Ui5ServiceFactory.js +1 -1
  11. package/src/main/js/sap/ushell/User.js +7 -7
  12. package/src/main/js/sap/ushell/UserActivityLog.js +8 -13
  13. package/src/main/js/sap/ushell/_ApplicationType/urlTemplateResolution.js +10 -3
  14. package/src/main/js/sap/ushell/_Config/utils.js +18 -0
  15. package/src/main/js/sap/ushell/_URLTemplateProcessor/DefinitionParameterSetBuilder.js +1 -1
  16. package/src/main/js/sap/ushell/_URLTemplateProcessor/DependencyGraph.js +1 -1
  17. package/src/main/js/sap/ushell/_URLTemplateProcessor/Functions.js +1 -1
  18. package/src/main/js/sap/ushell/_URLTemplateProcessor/Resolvers.js +1 -1
  19. package/src/main/js/sap/ushell/_URLTemplateProcessor/TemplateParameterParser.js +1 -1
  20. package/src/main/js/sap/ushell/_URLTemplateProcessor/utils.js +1 -1
  21. package/src/main/js/sap/ushell/adapters/cdm/ClientSideTargetResolutionAdapter.js +1 -1
  22. package/src/main/js/sap/ushell/adapters/cdm/CommonDataModelAdapter.js +1 -1
  23. package/src/main/js/sap/ushell/adapters/cdm/ConfigurationDefaultsAdapter.js +1 -1
  24. package/src/main/js/sap/ushell/adapters/cdm/ContainerAdapter.js +28 -9
  25. package/src/main/js/sap/ushell/adapters/cdm/LaunchPageAdapter.js +1 -1
  26. package/src/main/js/sap/ushell/adapters/cdm/PagesCommonDataModelAdapter.js +4 -3
  27. package/src/main/js/sap/ushell/adapters/cdm/PersonalizationAdapter.js +1 -1
  28. package/src/main/js/sap/ushell/adapters/cdm/PersonalizationV2Adapter.js +1 -1
  29. package/src/main/js/sap/ushell/adapters/cdm/Ui5ComponentLoaderAdapter.js +1 -1
  30. package/src/main/js/sap/ushell/adapters/cdm/_LaunchPage/modifyHome.js +1 -1
  31. package/src/main/js/sap/ushell/adapters/cdm/_LaunchPage/readCatalogs.js +1 -1
  32. package/src/main/js/sap/ushell/adapters/cdm/_LaunchPage/readHome.js +1 -1
  33. package/src/main/js/sap/ushell/adapters/cdm/_LaunchPage/uri.transform.js +1 -1
  34. package/src/main/js/sap/ushell/adapters/cdm/util/AppForInbound.js +1 -1
  35. package/src/main/js/sap/ushell/adapters/cdm/util/cdmSiteUtils.js +1 -1
  36. package/src/main/js/sap/ushell/adapters/cdm/v3/AdapterBase.js +1 -1
  37. package/src/main/js/sap/ushell/adapters/cdm/v3/FlpLaunchPageAdapter.js +1 -1
  38. package/src/main/js/sap/ushell/adapters/cdm/v3/LaunchPageAdapter.js +1 -1
  39. package/src/main/js/sap/ushell/adapters/cdm/v3/StaticGroupsAdapter.js +1 -1
  40. package/src/main/js/sap/ushell/adapters/cdm/v3/_LaunchPage/readApplications.js +1 -1
  41. package/src/main/js/sap/ushell/adapters/cdm/v3/_LaunchPage/readCatalogs.js +1 -1
  42. package/src/main/js/sap/ushell/adapters/cdm/v3/_LaunchPage/readHome.js +1 -1
  43. package/src/main/js/sap/ushell/adapters/cdm/v3/_LaunchPage/readPages.js +1 -1
  44. package/src/main/js/sap/ushell/adapters/cdm/v3/_LaunchPage/readUtils.js +1 -1
  45. package/src/main/js/sap/ushell/adapters/cdm/v3/_LaunchPage/readVisualizations.js +1 -1
  46. package/src/main/js/sap/ushell/adapters/cdm/v3/utilsCdm.js +6 -1
  47. package/src/main/js/sap/ushell/adapters/cep/NavTargetResolutionAdapter.js +1 -1
  48. package/src/main/js/sap/ushell/adapters/cep/NavTargetResolutionInternalAdapter.js +1 -1
  49. package/src/main/js/sap/ushell/adapters/cep/SearchCEPAdapter.js +1 -1
  50. package/src/main/js/sap/ushell/adapters/cflp/UserDefaultParameterPersistenceAdapter.js +1 -1
  51. package/src/main/js/sap/ushell/adapters/local/AdapterContainer.js +1 -1
  52. package/src/main/js/sap/ushell/adapters/local/AppStateAdapter.js +1 -1
  53. package/src/main/js/sap/ushell/adapters/local/ClientSideTargetResolutionAdapter.js +1 -1
  54. package/src/main/js/sap/ushell/adapters/local/ContainerAdapter.js +1 -1
  55. package/src/main/js/sap/ushell/adapters/local/FlpLaunchPageAdapter.js +1 -1
  56. package/src/main/js/sap/ushell/adapters/local/LaunchPageAdapter.js +1 -1
  57. package/src/main/js/sap/ushell/adapters/local/NavTargetResolutionAdapter.js +1 -1
  58. package/src/main/js/sap/ushell/adapters/local/NavTargetResolutionInternalAdapter.js +1 -1
  59. package/src/main/js/sap/ushell/adapters/local/PageBuildingAdapter.js +1 -1
  60. package/src/main/js/sap/ushell/adapters/local/PagePersistenceAdapter.js +1 -1
  61. package/src/main/js/sap/ushell/adapters/local/PersonalizationAdapter.js +1 -1
  62. package/src/main/js/sap/ushell/adapters/local/PersonalizationV2Adapter.js +1 -1
  63. package/src/main/js/sap/ushell/adapters/local/SearchAdapter.js +1 -1
  64. package/src/main/js/sap/ushell/adapters/local/SearchCEPAdapter.js +1 -1
  65. package/src/main/js/sap/ushell/adapters/local/SupportTicketAdapter.js +1 -1
  66. package/src/main/js/sap/ushell/adapters/local/Ui5ComponentLoaderAdapter.js +1 -1
  67. package/src/main/js/sap/ushell/adapters/local/UserDefaultParameterPersistenceAdapter.js +1 -1
  68. package/src/main/js/sap/ushell/adapters/local/UserInfoAdapter.js +1 -1
  69. package/src/main/js/sap/ushell/appRuntime/neo/AppInfoService.js +1 -0
  70. package/src/main/js/sap/ushell/appRuntime/neo/AppRuntimeNeo.js +1 -0
  71. package/src/main/js/sap/ushell/appRuntime/neo/ProxyAppUtils.js +1 -0
  72. package/src/main/js/sap/ushell/appRuntime/ui5/AppRuntime.js +6 -0
  73. package/src/main/js/sap/ushell/appRuntime/ui5/renderers/fiori2/Renderer.js +19 -0
  74. package/src/main/js/sap/ushell/appRuntime/ui5/renderers/fiori2/RendererExtensions.js +1 -1
  75. package/src/main/js/sap/ushell/appRuntime/ui5/services/AppConfiguration.js +1 -1
  76. package/src/main/js/sap/ushell/appRuntime/ui5/services/AppLifeCycle.js +51 -0
  77. package/src/main/js/sap/ushell/appRuntime/ui5/services/AppState.js +1 -1
  78. package/src/main/js/sap/ushell/appRuntime/ui5/services/Bookmark.js +1 -1
  79. package/src/main/js/sap/ushell/appRuntime/ui5/services/BookmarkV2.js +6 -6
  80. package/src/main/js/sap/ushell/appRuntime/ui5/services/CommonDataModel.js +1 -1
  81. package/src/main/js/sap/ushell/appRuntime/ui5/services/Container.js +1 -1
  82. package/src/main/js/sap/ushell/appRuntime/ui5/services/CrossApplicationNavigation.js +1 -1
  83. package/src/main/js/sap/ushell/appRuntime/ui5/services/Extension/Item.js +1 -1
  84. package/src/main/js/sap/ushell/appRuntime/ui5/services/Extension.js +1 -1
  85. package/src/main/js/sap/ushell/appRuntime/ui5/services/FrameBoundExtension.js +1 -1
  86. package/src/main/js/sap/ushell/appRuntime/ui5/services/LaunchPage.js +1 -1
  87. package/src/main/js/sap/ushell/appRuntime/ui5/services/MessageBroker.js +1 -1
  88. package/src/main/js/sap/ushell/appRuntime/ui5/services/NavTargetResolution.js +1 -1
  89. package/src/main/js/sap/ushell/appRuntime/ui5/services/NavTargetResolutionInternal.js +1 -1
  90. package/src/main/js/sap/ushell/appRuntime/ui5/services/Navigation.js +1 -1
  91. package/src/main/js/sap/ushell/appRuntime/ui5/services/ReferenceResolver.js +1 -1
  92. package/src/main/js/sap/ushell/appRuntime/ui5/services/ShellNavigation.js +1 -1
  93. package/src/main/js/sap/ushell/appRuntime/ui5/services/ShellNavigationInternal.js +1 -1
  94. package/src/main/js/sap/ushell/appRuntime/ui5/services/ShellUIService.js +1 -1
  95. package/src/main/js/sap/ushell/appRuntime/ui5/services/UserInfo.js +1 -1
  96. package/src/main/js/sap/ushell/appRuntime/ui5/services/adapters/Ui5ComponentLoaderAdapter.js +1 -1
  97. package/src/main/js/sap/ushell/bootstrap/_SchedulingAgent/FLPScheduler.js +47 -16
  98. package/src/main/js/sap/ushell/bootstrap/_SchedulingAgent/StepConfiguration.json +10 -3
  99. package/src/main/js/sap/ushell/bootstrap/_SchedulingAgent/logger.js +1 -1
  100. package/src/main/js/sap/ushell/bootstrap/_SchedulingAgent/state.js +1 -1
  101. package/src/main/js/sap/ushell/bootstrap/common/common.configure.ui5.js +9 -0
  102. package/src/main/js/sap/ushell/bootstrap/common/common.configure.ui5datetimeformat.js +1 -1
  103. package/src/main/js/sap/ushell/bootstrap/common/common.create.configcontract.core.js +13 -33
  104. package/src/main/js/sap/ushell/bootstrap/sandbox2.js +1 -1
  105. package/src/main/js/sap/ushell/components/_HeaderManager/ShellHeader.controller.js +135 -8
  106. package/src/main/js/sap/ushell/components/_HomepageManager/DashboardLoadingManager.js +1 -1
  107. package/src/main/js/sap/ushell/components/_HomepageManager/PagingManager.js +1 -1
  108. package/src/main/js/sap/ushell/components/_HomepageManager/PersistentPageOperationAdapter.js +1 -1
  109. package/src/main/js/sap/ushell/components/_HomepageManager/TransientPageOperationAdapter.js +1 -1
  110. package/src/main/js/sap/ushell/components/appfinder/AppFinder.controller.js +0 -6
  111. package/src/main/js/sap/ushell/components/appfinder/Component.js +1 -1
  112. package/src/main/js/sap/ushell/components/appfinder/manifest.json +1 -1
  113. package/src/main/js/sap/ushell/components/applicationIntegration/AppLifeCycle.js +74 -72
  114. package/src/main/js/sap/ushell/components/applicationIntegration/application/Application.js +1 -1
  115. package/src/main/js/sap/ushell/components/applicationIntegration/application/BlueBoxHandler.js +1 -1
  116. package/src/main/js/sap/ushell/components/applicationIntegration/application/PostMessageAPI.js +35 -18
  117. package/src/main/js/sap/ushell/components/applicationIntegration/configuration/AppMeta.js +42 -27
  118. package/src/main/js/sap/ushell/components/applicationIntegration/relatedServices/RelatedServices.js +1 -1
  119. package/src/main/js/sap/ushell/components/container/ApplicationContainer.js +1 -1
  120. package/src/main/js/sap/ushell/components/contentFinder/Component.js +19 -12
  121. package/src/main/js/sap/ushell/components/contentFinder/controller/AppSearch.controller.js +24 -5
  122. package/src/main/js/sap/ushell/components/contentFinder/controller/ContentFinderDialog.controller.js +1 -1
  123. package/src/main/js/sap/ushell/components/contentFinder/controller/WidgetGallery.controller.js +1 -1
  124. package/src/main/js/sap/ushell/components/contentFinder/manifest.json +1 -1
  125. package/src/main/js/sap/ushell/components/contentFinder/model/formatter.js +47 -7
  126. package/src/main/js/sap/ushell/components/contentFinder/view/AppSearch.view.xml +7 -6
  127. package/src/main/js/sap/ushell/components/contentFinder/view/AppSearchBox.fragment.xml +5 -4
  128. package/src/main/js/sap/ushell/components/contentFinder/view/AppSearchCategoryTree.view.xml +34 -22
  129. package/src/main/js/sap/ushell/components/contentFinderStandalone/Component.js +7 -6
  130. package/src/main/js/sap/ushell/components/contentFinderStandalone/controller/ContentFinderStandalone.controller.js +3 -1
  131. package/src/main/js/sap/ushell/components/contentFinderStandalone/manifest.json +1 -1
  132. package/src/main/js/sap/ushell/components/contentFinderStandalone/manifestAppSearch.json +1 -1
  133. package/src/main/js/sap/ushell/components/factsheet/Component.js +1 -1
  134. package/src/main/js/sap/ushell/components/homepage/ActionMode.js +1 -1
  135. package/src/main/js/sap/ushell/components/homepage/Component.js +1 -1
  136. package/src/main/js/sap/ushell/components/homepage/DashboardContent.view.js +1 -1
  137. package/src/main/js/sap/ushell/components/homepage/DashboardGroupsBox.js +29 -24
  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 +1 -1
  141. package/src/main/js/sap/ushell/components/pages/Component.js +10 -3
  142. package/src/main/js/sap/ushell/components/pages/MyHomeImport.js +1 -1
  143. package/src/main/js/sap/ushell/components/pages/controller/PageRuntime.controller.js +26 -5
  144. package/src/main/js/sap/ushell/components/pages/manifest.json +1 -1
  145. package/src/main/js/sap/ushell/components/runtimeSwitcher/Component.js +3 -2
  146. package/src/main/js/sap/ushell/components/runtimeSwitcher/controller/RuntimeSwitcher.controller.js +1 -1
  147. package/src/main/js/sap/ushell/components/runtimeSwitcher/manifest.json +1 -1
  148. package/src/main/js/sap/ushell/components/shell/MenuBar/manifest.json +1 -1
  149. package/src/main/js/sap/ushell/components/shell/NavigationBarMenu/controller/NavigationBarMenu.controller.js +19 -3
  150. package/src/main/js/sap/ushell/components/shell/NavigationBarMenu/manifest.json +1 -1
  151. package/src/main/js/sap/ushell/components/shell/NavigationBarMenu/view/NavigationBarMenu.view.xml +1 -0
  152. package/src/main/js/sap/ushell/components/shell/Notifications/Component.js +24 -22
  153. package/src/main/js/sap/ushell/components/shell/Notifications/Notifications.controller.js +1 -1
  154. package/src/main/js/sap/ushell/components/shell/PostLoadingHeaderEnhancement/Component.js +80 -17
  155. package/src/main/js/sap/ushell/components/shell/ProductSwitch/Component.js +1 -1
  156. package/src/main/js/sap/ushell/components/shell/Search/manifest.json +1 -1
  157. package/src/main/js/sap/ushell/components/shell/SearchCEP/Component.js +1 -1
  158. package/src/main/js/sap/ushell/components/shell/SearchCEP/SearchProviders/FrequentActivityProvider.js +1 -1
  159. package/src/main/js/sap/ushell/components/shell/SearchCEP/SearchProviders/RecentSearchProvider.js +1 -1
  160. package/src/main/js/sap/ushell/components/shell/SearchCEP/SearchProviders/SearchProvider.js +1 -1
  161. package/src/main/js/sap/ushell/components/shell/SearchCEP/SearchProviders/SearchServiceProvider.js +1 -1
  162. package/src/main/js/sap/ushell/components/shell/Settings/Component.js +12 -16
  163. package/src/main/js/sap/ushell/components/shell/Settings/UserSettings.controller.js +9 -4
  164. package/src/main/js/sap/ushell/components/shell/Settings/UserSettings.view.xml +9 -9
  165. package/src/main/js/sap/ushell/components/shell/UserActionsMenu/Component.js +3 -45
  166. package/src/main/js/sap/ushell/components/shell/UserActionsMenu/UserActionsMenu.controller.js +31 -23
  167. package/src/main/js/sap/ushell/components/shell/UserActionsMenu/UserActionsMenuPopover.fragment.xml +7 -2
  168. package/src/main/js/sap/ushell/components/shell/UserImage/Component.js +3 -3
  169. package/src/main/js/sap/ushell/components/tiles/applauncher/StaticTile.controller.js +0 -4
  170. package/src/main/js/sap/ushell/components/tiles/applauncherdynamic/DynamicTile.controller.js +0 -1
  171. package/src/main/js/sap/ushell/components/tiles/indicatorcomparison/ComparisonTile.controller.js +1 -1
  172. package/src/main/js/sap/ushell/components/visualizationOrganizer/Component.js +1 -1
  173. package/src/main/js/sap/ushell/components/workPageBuilder/Component.js +2 -1
  174. package/src/main/js/sap/ushell/components/workPageBuilder/controller/WorkPageBuilder.accessibility.js +1 -1
  175. package/src/main/js/sap/ushell/components/workPageBuilder/controller/WorkPageBuilder.controller.js +1939 -1946
  176. package/src/main/js/sap/ushell/components/workPageBuilder/controls/WorkPage.js +1 -1
  177. package/src/main/js/sap/ushell/components/workPageBuilder/controls/WorkPageButton.js +1 -1
  178. package/src/main/js/sap/ushell/components/workPageBuilder/controls/WorkPageCell.js +1 -1
  179. package/src/main/js/sap/ushell/components/workPageBuilder/controls/WorkPageColumn.js +1 -1
  180. package/src/main/js/sap/ushell/components/workPageBuilder/controls/WorkPageColumnResizer.js +1 -1
  181. package/src/main/js/sap/ushell/components/workPageBuilder/controls/WorkPageRow.js +1 -1
  182. package/src/main/js/sap/ushell/components/workPageBuilder/manifest.json +1 -1
  183. package/src/main/js/sap/ushell/components/workPageRuntime/Component.js +3 -2
  184. package/src/main/js/sap/ushell/components/workPageRuntime/controller/WorkPageRuntime.controller.js +1 -1
  185. package/src/main/js/sap/ushell/components/workPageRuntime/manifest.json +1 -1
  186. package/src/main/js/sap/ushell/designtime/ApplicationContainer.designtime.js +1 -1
  187. package/src/main/js/sap/ushell/library.js +1 -1
  188. package/src/main/js/sap/ushell/navigationMode.js +1 -1
  189. package/src/main/js/sap/ushell/performance/ShellAnalytics.js +15 -12
  190. package/src/main/js/sap/ushell/performance/StatisticalRecord.js +1 -1
  191. package/src/main/js/sap/ushell/plugins/appwarmup/Component.js +1 -1
  192. package/src/main/js/sap/ushell/renderer/AccessKeysHandler.js +31 -9
  193. package/src/main/js/sap/ushell/renderer/Renderer.js +304 -287
  194. package/src/main/js/sap/ushell/renderer/Shell.controller.js +99 -101
  195. package/src/main/js/sap/ushell/renderer/Shell.view.js +110 -89
  196. package/src/main/js/sap/ushell/renderer/allMyApps/AllMyApps.controller.js +29 -15
  197. package/src/main/js/sap/ushell/renderer/allMyApps/AllMyApps.view.xml +2 -2
  198. package/src/main/js/sap/ushell/renderer/resources/resources.properties +2 -0
  199. package/src/main/js/sap/ushell/renderer/search/searchComponent/manifest.json +1 -1
  200. package/src/main/js/sap/ushell/renderers/fiori2/History.js +1 -0
  201. package/src/main/js/sap/ushell/renderers/fiori2/LogonFrameProvider.js +1 -0
  202. package/src/main/js/sap/ushell/renderers/fiori2/Shell.view.js +108 -87
  203. package/src/main/js/sap/ushell/renderers/fiori2/allMyApps/AllMyAppsManager.js +1 -0
  204. package/src/main/js/sap/ushell/services/AppLifeCycle.js +1 -1
  205. package/src/main/js/sap/ushell/services/AppState.js +1 -1
  206. package/src/main/js/sap/ushell/services/Bookmark.js +1 -1
  207. package/src/main/js/sap/ushell/services/BookmarkV2.js +1 -1
  208. package/src/main/js/sap/ushell/services/ClientSideTargetResolution.js +1 -1
  209. package/src/main/js/sap/ushell/services/CommonDataModel.js +2 -15
  210. package/src/main/js/sap/ushell/services/Configuration.js +1 -1
  211. package/src/main/js/sap/ushell/services/ConfigurationDefaults.js +1 -1
  212. package/src/main/js/sap/ushell/services/ContentExtensionAdapterFactory.js +1 -1
  213. package/src/main/js/sap/ushell/services/CrossApplicationNavigation.js +1 -1
  214. package/src/main/js/sap/ushell/services/DarkModeSupport.js +11 -5
  215. package/src/main/js/sap/ushell/services/Extension/Item.js +4 -4
  216. package/src/main/js/sap/ushell/services/Extension.js +36 -2
  217. package/src/main/js/sap/ushell/services/FlpLaunchPage.js +1 -1
  218. package/src/main/js/sap/ushell/services/FrameBoundExtension/FloatingContainer.js +1 -1
  219. package/src/main/js/sap/ushell/services/FrameBoundExtension/Footer.js +1 -1
  220. package/src/main/js/sap/ushell/services/FrameBoundExtension/Item.js +4 -4
  221. package/src/main/js/sap/ushell/services/FrameBoundExtension/SidePane.js +18 -2
  222. package/src/main/js/sap/ushell/services/FrameBoundExtension/ToolArea.js +20 -2
  223. package/src/main/js/sap/ushell/services/FrameBoundExtension.js +96 -2
  224. package/src/main/js/sap/ushell/services/LaunchPage.js +1 -1
  225. package/src/main/js/sap/ushell/services/Menu.js +1 -1
  226. package/src/main/js/sap/ushell/services/Message.js +1 -1
  227. package/src/main/js/sap/ushell/services/MessageBroker.js +1 -1
  228. package/src/main/js/sap/ushell/services/MessageInternal.js +13 -8
  229. package/src/main/js/sap/ushell/services/Navigation/compatibility.js +1 -1
  230. package/src/main/js/sap/ushell/services/Navigation/utils.js +1 -1
  231. package/src/main/js/sap/ushell/services/Navigation.js +1 -1
  232. package/src/main/js/sap/ushell/services/NavigationDataProvider.js +1 -1
  233. package/src/main/js/sap/ushell/services/PageBuilding.js +1 -1
  234. package/src/main/js/sap/ushell/services/PagePersistence.js +1 -1
  235. package/src/main/js/sap/ushell/services/PageReferencing.js +1 -1
  236. package/src/main/js/sap/ushell/services/Pages.js +4 -3
  237. package/src/main/js/sap/ushell/services/Personalization.js +1 -1
  238. package/src/main/js/sap/ushell/services/PersonalizationV2.js +1 -1
  239. package/src/main/js/sap/ushell/services/PluginManager.js +1 -1
  240. package/src/main/js/sap/ushell/services/ReferenceResolver.js +1 -1
  241. package/src/main/js/sap/ushell/services/Search.js +1 -1
  242. package/src/main/js/sap/ushell/services/SearchCEP.js +1 -1
  243. package/src/main/js/sap/ushell/services/SearchableContent.js +6 -5
  244. package/src/main/js/sap/ushell/services/ShellNavigation.js +1 -1
  245. package/src/main/js/sap/ushell/services/SmartNavigation.js +1 -1
  246. package/src/main/js/sap/ushell/services/SpaceContent.js +1 -1
  247. package/src/main/js/sap/ushell/services/UITracer.js +1 -1
  248. package/src/main/js/sap/ushell/services/URLParsing.js +16 -0
  249. package/src/main/js/sap/ushell/services/URLShortening.js +1 -1
  250. package/src/main/js/sap/ushell/services/URLTemplate.js +1 -1
  251. package/src/main/js/sap/ushell/services/Ui5ComponentLoader.js +3 -3
  252. package/src/main/js/sap/ushell/services/UserDefaultParameterPersistence.js +1 -1
  253. package/src/main/js/sap/ushell/services/UserDefaultParameters.js +1 -1
  254. package/src/main/js/sap/ushell/services/UserInfo.js +1 -1
  255. package/src/main/js/sap/ushell/services/UserRecents.js +1 -1
  256. package/src/main/js/sap/ushell/services/VisualizationDataProvider.js +1 -1
  257. package/src/main/js/sap/ushell/services/VisualizationInstantiation.js +1 -1
  258. package/src/main/js/sap/ushell/services/_AppState/AppStatePersistencyMethod.js +1 -1
  259. package/src/main/js/sap/ushell/services/_ClientSideTargetResolution/Formatter.js +1 -1
  260. package/src/main/js/sap/ushell/services/_ClientSideTargetResolution/InboundIndex.js +1 -1
  261. package/src/main/js/sap/ushell/services/_ClientSideTargetResolution/InboundProvider.js +1 -1
  262. package/src/main/js/sap/ushell/services/_ClientSideTargetResolution/PrelaunchOperations.js +1 -1
  263. package/src/main/js/sap/ushell/services/_ClientSideTargetResolution/Search.js +1 -1
  264. package/src/main/js/sap/ushell/services/_ClientSideTargetResolution/StagedLogger.js +1 -1
  265. package/src/main/js/sap/ushell/services/_ClientSideTargetResolution/SystemContext.js +1 -1
  266. package/src/main/js/sap/ushell/services/_ClientSideTargetResolution/Utils.js +1 -1
  267. package/src/main/js/sap/ushell/services/_ClientSideTargetResolution/VirtualInbounds.js +1 -1
  268. package/src/main/js/sap/ushell/services/_ClientSideTargetResolution/XAppStateProcessing.js +1 -1
  269. package/src/main/js/sap/ushell/services/_CommonDataModel/SiteConverter.js +1 -1
  270. package/src/main/js/sap/ushell/services/_CommonDataModel/vizTypeDefaults/VizTypeDefaults.js +1 -1
  271. package/src/main/js/sap/ushell/services/_ContentExtensionAdapterFactory/ContentExtensionAdapterConfig.js +2 -2
  272. package/src/main/js/sap/ushell/services/_ContentExtensionAdapterFactory/FeaturedGroupConfig.js +1 -1
  273. package/src/main/js/sap/ushell/services/_CrossApplicationNavigation/utils.js +1 -1
  274. package/src/main/js/sap/ushell/services/_MessageBroker/MessageBrokerEngine.js +1 -1
  275. package/src/main/js/sap/ushell/services/_PageReferencing/PageReferencer.js +1 -1
  276. package/src/main/js/sap/ushell/services/_Personalization/VariantSetAdapter.js +1 -0
  277. package/src/main/js/sap/ushell/services/_Personalization/WindowAdapter.js +1 -0
  278. package/src/main/js/sap/ushell/services/_Personalization/WindowAdapterContainer.js +1 -0
  279. package/src/main/js/sap/ushell/services/_Personalization/constants.js +1 -0
  280. package/src/main/js/sap/ushell/services/_Personalization/constants.private.js +1 -0
  281. package/src/main/js/sap/ushell/services/_Personalization/utils.js +1 -0
  282. package/src/main/js/sap/ushell/services/_PluginManager/Extensions.js +1 -1
  283. package/src/main/js/sap/ushell/services/_PluginManager/HeaderExtensions.js +2 -2
  284. package/src/main/js/sap/ushell/services/_PluginManager/MenuExtensions.js +1 -1
  285. package/src/main/js/sap/ushell/services/_Ui5ComponentLoader/utils.js +1 -1
  286. package/src/main/js/sap/ushell/state/BaseState.js +79 -0
  287. package/src/main/js/sap/ushell/state/ControlManager.js +209 -0
  288. package/src/main/js/sap/ushell/state/CurrentState.js +180 -0
  289. package/src/main/js/sap/ushell/state/KeepAlive.js +75 -0
  290. package/src/main/js/sap/ushell/state/ShellModel.js +112 -0
  291. package/src/main/js/sap/ushell/state/StateManager/LaunchpadState.js +40 -0
  292. package/src/main/js/sap/ushell/state/StateManager/Operation.js +42 -0
  293. package/src/main/js/sap/ushell/state/StateManager/ShellMode.js +86 -0
  294. package/src/main/js/sap/ushell/state/StateManager.js +648 -0
  295. package/src/main/js/sap/ushell/state/StateRules.js +295 -0
  296. package/src/main/js/sap/ushell/state/StrategyFactory/DefaultStrategy.js +74 -0
  297. package/src/main/js/sap/ushell/state/StrategyFactory/FloatingActionsStrategy.js +78 -0
  298. package/src/main/js/sap/ushell/state/StrategyFactory/HeadEndItemsStrategy.js +130 -0
  299. package/src/main/js/sap/ushell/state/StrategyFactory/HeadItemsStrategy.js +104 -0
  300. package/src/main/js/sap/ushell/state/StrategyFactory/SidePaneStrategy.js +78 -0
  301. package/src/main/js/sap/ushell/state/StrategyFactory/SubHeaderStrategy.js +78 -0
  302. package/src/main/js/sap/ushell/state/StrategyFactory/UserActionsStrategy.js +60 -0
  303. package/src/main/js/sap/ushell/state/StrategyFactory.js +168 -0
  304. package/src/main/js/sap/ushell/support/plugins/flpConfig/FlpConfigurationPlugin.js +1 -1
  305. package/src/main/js/sap/ushell/themes/base/UserSettings.less +1 -5
  306. package/src/main/js/sap/ushell/themes/base/WorkPageCell.less +45 -49
  307. package/src/main/js/sap/ushell/themes/sap_belize_base/UserSettings.less +1 -5
  308. package/src/main/js/sap/ushell/themes/sap_bluecrystal_base/UserSettings.less +1 -5
  309. package/src/main/js/sap/ushell/themes/sap_hcb/base_ActionMode.less +107 -0
  310. package/src/main/js/sap/ushell/themes/sap_hcb/base_AddBookmarkButton.less +37 -0
  311. package/src/main/js/sap/ushell/themes/sap_hcb/base_AnchorItem.less +81 -0
  312. package/src/main/js/sap/ushell/themes/sap_hcb/base_AnchorNavigationBar.less +86 -0
  313. package/src/main/js/sap/ushell/themes/sap_hcb/base_AppearanceView.less +213 -0
  314. package/src/main/js/sap/ushell/themes/sap_hcb/base_ApplicationContainer.less +37 -0
  315. package/src/main/js/sap/ushell/themes/sap_hcb/base_Catalog.less +387 -0
  316. package/src/main/js/sap/ushell/themes/sap_hcb/base_ContactSupport.less +12 -0
  317. package/src/main/js/sap/ushell/themes/sap_hcb/base_ContentFinder.less +26 -0
  318. package/src/main/js/sap/ushell/themes/sap_hcb/base_CustomGroupHeaderListItem.less +10 -0
  319. package/src/main/js/sap/ushell/themes/sap_hcb/base_Dashboard.less +66 -0
  320. package/src/main/js/sap/ushell/themes/sap_hcb/base_DynamicTile.less +114 -0
  321. package/src/main/js/sap/ushell/themes/sap_hcb/base_Factsheet.less +225 -0
  322. package/src/main/js/sap/ushell/themes/sap_hcb/base_FloatingContainer.less +125 -0
  323. package/src/main/js/sap/ushell/themes/sap_hcb/base_FlpSettings.less +83 -0
  324. package/src/main/js/sap/ushell/themes/sap_hcb/base_GroupList.less +68 -0
  325. package/src/main/js/sap/ushell/themes/sap_hcb/base_GroupListItem.less +54 -0
  326. package/src/main/js/sap/ushell/themes/sap_hcb/base_IconFonts.less +21 -0
  327. package/src/main/js/sap/ushell/themes/sap_hcb/base_ImageTile.less +23 -0
  328. package/src/main/js/sap/ushell/themes/sap_hcb/base_LoadingDialog.less +47 -0
  329. package/src/main/js/sap/ushell/themes/sap_hcb/base_MenuBar.less +23 -0
  330. package/src/main/js/sap/ushell/themes/sap_hcb/base_Notifications.less +135 -0
  331. package/src/main/js/sap/ushell/themes/sap_hcb/base_Page.less +49 -0
  332. package/src/main/js/sap/ushell/themes/sap_hcb/base_PictureTile.less +119 -0
  333. package/src/main/js/sap/ushell/themes/sap_hcb/base_PictureViewer.less +25 -0
  334. package/src/main/js/sap/ushell/themes/sap_hcb/base_PlusTile.less +38 -0
  335. package/src/main/js/sap/ushell/themes/sap_hcb/base_QuickAccess.less +18 -0
  336. package/src/main/js/sap/ushell/themes/sap_hcb/base_RightFloatingContainerItem.less +82 -0
  337. package/src/main/js/sap/ushell/themes/sap_hcb/base_SearchCEP.less +121 -0
  338. package/src/main/js/sap/ushell/themes/sap_hcb/base_SearchFLP.less +10 -0
  339. package/src/main/js/sap/ushell/themes/sap_hcb/base_Section.less +60 -0
  340. package/src/main/js/sap/ushell/themes/sap_hcb/base_ShellAppTitle.less +207 -0
  341. package/src/main/js/sap/ushell/themes/sap_hcb/base_ShellFloatingAction.less +61 -0
  342. package/src/main/js/sap/ushell/themes/sap_hcb/base_ShellFloatingActions.less +14 -0
  343. package/src/main/js/sap/ushell/themes/sap_hcb/base_ShellHeader.less +389 -0
  344. package/src/main/js/sap/ushell/themes/sap_hcb/base_ShellLayout.less +168 -0
  345. package/src/main/js/sap/ushell/themes/sap_hcb/base_SidePane.less +8 -0
  346. package/src/main/js/sap/ushell/themes/sap_hcb/base_StaticTile.less +9 -0
  347. package/src/main/js/sap/ushell/themes/sap_hcb/base_SubHeader.less +3 -0
  348. package/src/main/js/sap/ushell/themes/sap_hcb/base_SysInfoBar.less +164 -0
  349. package/src/main/js/sap/ushell/themes/sap_hcb/base_TargetMappingConfiguration.less +8 -0
  350. package/src/main/js/sap/ushell/themes/sap_hcb/base_Tile.less +223 -0
  351. package/src/main/js/sap/ushell/themes/sap_hcb/base_TileBase.less +152 -0
  352. package/src/main/js/sap/ushell/themes/sap_hcb/base_TileContainer.less +495 -0
  353. package/src/main/js/sap/ushell/themes/sap_hcb/base_TilePlaceholder.less +75 -0
  354. package/src/main/js/sap/ushell/themes/sap_hcb/base_TileState.less +62 -0
  355. package/src/main/js/sap/ushell/themes/sap_hcb/base_ToolAreaItem.less +85 -0
  356. package/src/main/js/sap/ushell/themes/sap_hcb/base_UserActionsMenu.less +23 -0
  357. package/src/main/js/sap/ushell/themes/sap_hcb/base_UserConsentDialog.less +52 -0
  358. package/src/main/js/sap/ushell/themes/sap_hcb/base_UserSettings.less +109 -0
  359. package/src/main/js/sap/ushell/themes/sap_hcb/base_ViewPortContainer.less +28 -0
  360. package/src/main/js/sap/ushell/themes/sap_hcb/base_WorkPage.less +58 -0
  361. package/src/main/js/sap/ushell/themes/sap_hcb/base_WorkPageButton.less +60 -0
  362. package/src/main/js/sap/ushell/themes/sap_hcb/base_WorkPageCell.less +144 -0
  363. package/src/main/js/sap/ushell/themes/sap_hcb/base_WorkPageColumn.less +39 -0
  364. package/src/main/js/sap/ushell/themes/sap_hcb/base_WorkPageColumnResizer.less +128 -0
  365. package/src/main/js/sap/ushell/themes/sap_hcb/base_WorkPageRow.less +987 -0
  366. package/src/main/js/sap/ushell/themes/sap_hcb/base_shared.less +40 -0
  367. package/src/main/js/sap/ushell/themes/sap_hcb/library.source.less +70 -1
  368. package/src/main/js/sap/ushell/ui/ShellHeader.fragment.xml +17 -11
  369. package/src/main/js/sap/ushell/ui/ShellHeader.js +10 -3
  370. package/src/main/js/sap/ushell/ui/cards/FrequentActivitiesExtension.js +0 -4
  371. package/src/main/js/sap/ushell/ui/cards/RecentActivitiesExtension.js +1 -5
  372. package/src/main/js/sap/ushell/ui/footerbar/AddBookmarkButton.js +19 -5
  373. package/src/main/js/sap/ushell/ui/footerbar/ContactSupportDialog.controller.js +9 -3
  374. package/src/main/js/sap/ushell/ui/footerbar/SendAsEmailButton.js +5 -5
  375. package/src/main/js/sap/ushell/ui/launchpad/ExtendedChangeDetection.js +1 -1
  376. package/src/main/js/sap/ushell/ui/launchpad/Section.js +1 -1
  377. package/src/main/js/sap/ushell/ui/launchpad/TileContainer.js +17 -12
  378. package/src/main/js/sap/ushell/ui/launchpad/section/CompactArea.js +1 -1
  379. package/src/main/js/sap/ushell/ui/shell/ShellAppTitle.js +50 -35
  380. package/src/main/js/sap/ushell/ui/shell/ToolAreaItem.js +2 -2
  381. package/src/main/js/sap/ushell/ui/utils.js +1 -1
  382. package/src/main/js/sap/ushell/ui5service/ShellUIService.js +1 -1
  383. package/src/main/js/sap/ushell/ui5service/UserStatus.js +1 -1
  384. package/src/main/js/sap/ushell/utils/UrlParsing.js +22 -0
  385. package/src/main/js/sap/ushell/utils/UrlShortening.js +1 -1
  386. package/src/main/js/sap/ushell/utils/WindowUtils.js +3 -3
  387. package/src/main/js/sap/ushell/utils/workpage/DestinationResolver.js +89 -0
  388. package/src/main/js/sap/ushell/utils/workpage/WorkPageHost.js +51 -47
  389. package/src/main/js/sap/ushell/utils/workpage/WorkPageService.js +32 -1
  390. package/src/main/js/sap/ushell/utils/workpage/WorkPageVizInstantiation.js +1 -1
  391. package/src/main/js/sap/ushell/utils.js +26 -2
  392. package/src/test/js/sap/ushell/bootstrap/sandbox.js +1 -1
  393. package/src/main/js/sap/ushell/bootstrap/common/common.load.ui5theme.js +0 -67
  394. package/src/main/js/sap/ushell/components/HeaderManager.js +0 -547
  395. package/src/main/js/sap/ushell/components/StateHelper.js +0 -70
  396. package/src/main/js/sap/ushell/components/_HeaderManager/AddHeadEndItemsStrategy.js +0 -105
  397. package/src/main/js/sap/ushell/components/_HeaderManager/AddHeadItemsStrategy.js +0 -75
  398. package/src/main/js/sap/ushell/components/_HeaderManager/ControlManager.js +0 -70
  399. package/src/main/js/sap/ushell/components/_HeaderManager/ExtendApplicationPropertyStrategy.js +0 -18
  400. package/src/main/js/sap/ushell/components/_HeaderManager/PropertyStrategiesFactory.js +0 -58
  401. package/src/main/js/sap/ushell/components/_HeaderManager/RemoveItemsStrategy.js +0 -46
  402. package/src/main/js/sap/ushell/components/_HeaderManager/SetHeadPropertyStrategy.js +0 -19
  403. package/src/main/js/sap/ushell/components/applicationIntegration/elements/model.js +0 -1309
  404. package/src/main/js/sap/ushell/components/applicationIntegration/relatedShellElements/RelatedShellElements.js +0 -363
@@ -0,0 +1,295 @@
1
+ // Copyright (c) 2009-2023 SAP SE, All Rights Reserved
2
+
3
+ sap.ui.define([
4
+ "sap/base/Log",
5
+ "sap/ushell/state/StateManager/LaunchpadState",
6
+ "sap/ushell/state/StateManager/Operation",
7
+ "sap/ushell/state/StateManager/ShellMode",
8
+ "sap/ushell/state/StrategyFactory"
9
+ ], function (
10
+ Log,
11
+ LaunchpadState,
12
+ Operation,
13
+ ShellMode,
14
+ StrategyFactory
15
+ ) {
16
+ "use strict";
17
+
18
+ // shortcut for sap.ushell.state.StateManager.ShellMode
19
+ const {
20
+ Default,
21
+ Standalone,
22
+ Embedded,
23
+ Merged,
24
+ Headerless,
25
+ Lean,
26
+ Blank,
27
+ Minimal
28
+ } = ShellMode;
29
+
30
+ /**
31
+ * @alias sap.ushell.state.StateRules
32
+ * @namespace
33
+ * @description StateRules is a helper class that applies rules to the state object.
34
+ * The rules are based on the shell configuration and the current shell mode.
35
+ *
36
+ * @since 1.127.0
37
+ * @private
38
+ */
39
+ class StateRules {
40
+ /**
41
+ * The shell configuration.
42
+ * @type {object}
43
+ */
44
+ #oShellConfig = null;
45
+
46
+ /**
47
+ * Sets the shell configuration.
48
+ * @param {object} oShellConfig The shell configuration.
49
+ *
50
+ * @since 1.127.0
51
+ * @private
52
+ * @alias sap.ushell.state.StateRules#setShellConfig
53
+ */
54
+ setShellConfig (oShellConfig) {
55
+ this.#oShellConfig = oShellConfig;
56
+ }
57
+
58
+ /**
59
+ * Applies the rules to the state data.
60
+ * 1. ShellMode
61
+ * 2. Move of items to the shell header
62
+ * The state rules are applied in-place.
63
+ * @param {object} oStateData The state data.
64
+ * @param {sap.ushell.state.StateManager.ShellMode} sShellMode The shell mode.
65
+ * @param {sap.ushell.state.StateManager.LaunchpadState} sLaunchpadState The launchpad state.
66
+ *
67
+ * @since 1.127.0
68
+ * @private
69
+ * @alias sap.ushell.state.StateRules#applyRules
70
+ */
71
+ applyRules (oStateData, sShellMode, sLaunchpadState) {
72
+ this.#applyShellMode(oStateData, sShellMode, sLaunchpadState);
73
+
74
+ this.#moveItemsToShellHeader(oStateData);
75
+
76
+ this.#ensureSingleFloatingAction(oStateData);
77
+ this.#ensureSingleSubHeader(oStateData);
78
+ this.#ensureSingleSidePaneContent(oStateData);
79
+
80
+ this.#ensureHeaderItemMaxLength(oStateData);
81
+ }
82
+
83
+ /**
84
+ * Applies the shell mode to the state data.
85
+ * @param {object} oStateData The state data.
86
+ * @param {sap.ushell.state.StateManager.ShellMode} sShellMode The shell mode.
87
+ * @param {sap.ushell.state.StateManager.LaunchpadState} sLaunchpadState The launchpad state.
88
+ *
89
+ * @since 1.127.0
90
+ * @private
91
+ */
92
+ #applyShellMode (oStateData, sShellMode, sLaunchpadState) {
93
+ // Header
94
+ if (sShellMode === Headerless) {
95
+ StrategyFactory.perform(oStateData, "header.visible", Operation.Set, false);
96
+ }
97
+
98
+ // Logo
99
+ let bShowLogo;
100
+ if (sLaunchpadState === LaunchpadState.Home) {
101
+ bShowLogo = ![Headerless, Embedded, Merged].includes(sShellMode);
102
+ } else { // app
103
+ bShowLogo = ![Headerless, Standalone, Embedded, Merged].includes(sShellMode);
104
+ }
105
+ StrategyFactory.perform(oStateData, "header.home.showLogo", Operation.Set, bShowLogo);
106
+
107
+ // Back Button
108
+ if (sLaunchpadState === LaunchpadState.Home) {
109
+ StrategyFactory.perform(oStateData, "header.headItems", Operation.Remove, "backBtn");
110
+ } else { // app
111
+ /*
112
+ * lean: back button is allowed but not shown by default
113
+ * minimal: back button is allowed but not shown by default
114
+ */
115
+ const bShowBackButton = [Default, Standalone, Embedded, Merged, Lean, Minimal].includes(sShellMode);
116
+ if (!bShowBackButton) {
117
+ StrategyFactory.perform(oStateData, "header.headItems", Operation.Remove, "backBtn");
118
+ }
119
+ }
120
+
121
+ // User Action Menu
122
+ /*
123
+ * merged: user action menu is allowed but not shown by default
124
+ */
125
+ const bShowUserActionMenu = [Default, Standalone, Minimal, Embedded, Lean, Blank, Merged].includes(sShellMode);
126
+ if (!bShowUserActionMenu) {
127
+ StrategyFactory.perform(oStateData, "header.headEndItems", Operation.Remove, "userActionsMenuHeaderButton");
128
+ }
129
+
130
+ // AppFinder
131
+ let bShowAppFinder;
132
+ if (sLaunchpadState === LaunchpadState.Home) {
133
+ bShowAppFinder = [Default, Standalone, Minimal, Lean].includes(sShellMode);
134
+ } else { // app
135
+ bShowAppFinder = [Default, Minimal].includes(sShellMode);
136
+ }
137
+ if (!bShowAppFinder) {
138
+ StrategyFactory.perform(oStateData, "userActions.items", Operation.Remove, "openCatalogBtn");
139
+ }
140
+
141
+ // UserSettings
142
+ let bShowUserSettings;
143
+ if (sLaunchpadState === LaunchpadState.Home) {
144
+ bShowUserSettings = [Default, Standalone, Minimal, Lean].includes(sShellMode);
145
+ } else { // app
146
+ bShowUserSettings = [Default, Minimal].includes(sShellMode);
147
+ }
148
+ if (!bShowUserSettings) {
149
+ StrategyFactory.perform(oStateData, "userActions.items", Operation.Remove, "userSettingsBtn");
150
+ }
151
+
152
+ // NotificationsButton
153
+ let bShowNotificationsButton;
154
+ if (sLaunchpadState === LaunchpadState.Home) {
155
+ bShowNotificationsButton = [Default, Standalone, Minimal, Lean].includes(sShellMode);
156
+ } else { // app
157
+ bShowNotificationsButton = [Default, Minimal].includes(sShellMode);
158
+ }
159
+ if (!bShowNotificationsButton) {
160
+ StrategyFactory.perform(oStateData, "header.headEndItems", Operation.Remove, "NotificationsCountButton");
161
+ }
162
+ }
163
+
164
+ /**
165
+ * Moves items to the shell header based on the shell configuration.
166
+ * @param {object} oStateData The state data.
167
+ *
168
+ * @since 1.127.0
169
+ * @private
170
+ */
171
+ #moveItemsToShellHeader (oStateData) {
172
+ if (!this.#oShellConfig) {
173
+ Log.warning("StateRules not initialized: Cannot move UserAction ShellHeader");
174
+ return;
175
+ }
176
+
177
+ if (this.#oShellConfig.moveEditHomePageActionToShellHeader) {
178
+ // handled in runtime controller
179
+ }
180
+
181
+ if (this.#oShellConfig.moveAppFinderActionToShellHeader) {
182
+ if (oStateData.userActions.items.includes("openCatalogBtn")) {
183
+ StrategyFactory.perform(oStateData, "userActions.items", Operation.Remove, "openCatalogBtn");
184
+ StrategyFactory.perform(oStateData, "header.headEndItems", Operation.Add, "openCatalogBtn");
185
+ }
186
+ }
187
+
188
+ if (this.#oShellConfig.moveUserSettingsActionToShellHeader) {
189
+ if (oStateData.userActions.items.includes("userSettingsBtn")) {
190
+ StrategyFactory.perform(oStateData, "userActions.items", Operation.Remove, "userSettingsBtn");
191
+ StrategyFactory.perform(oStateData, "header.headEndItems", Operation.Add, "userSettingsBtn");
192
+ }
193
+ }
194
+
195
+ if (this.#oShellConfig.moveContactSupportActionToShellHeader) {
196
+ if (oStateData.userActions.items.includes("ContactSupportBtn")) {
197
+ StrategyFactory.perform(oStateData, "userActions.items", Operation.Remove, "ContactSupportBtn");
198
+ StrategyFactory.perform(oStateData, "header.headEndItems", Operation.Add, "ContactSupportBtn");
199
+ }
200
+ }
201
+ }
202
+
203
+ /**
204
+ * Ensures that the floating actions contains only one item.
205
+ * The last item is kept.
206
+ * @param {object} oStateData The state data.
207
+ *
208
+ * @since 1.127.0
209
+ * @private
210
+ */
211
+ #ensureSingleFloatingAction (oStateData) {
212
+ if (oStateData.floatingActions.items.length > 1) {
213
+ // remove all items except the last one
214
+ const aShallowCopy = [...oStateData.floatingActions.items];
215
+ for (let i = 0; i < aShallowCopy.length - 1; i++) {
216
+ const sItem = aShallowCopy[i];
217
+ StrategyFactory.perform(oStateData, "floatingActions.items", Operation.Remove, sItem);
218
+ }
219
+ }
220
+ }
221
+
222
+ /**
223
+ * Ensures that the subHeader contains only one item.
224
+ * The last item is kept.
225
+ * @param {object} oStateData The state data.
226
+ *
227
+ * @since 1.127.0
228
+ * @private
229
+ */
230
+ #ensureSingleSubHeader (oStateData) {
231
+ if (oStateData.subHeader.items.length > 1) {
232
+ // remove all items except the last one
233
+ const aShallowCopy = [...oStateData.subHeader.items];
234
+ for (let i = 0; i < aShallowCopy.length - 1; i++) {
235
+ const sItem = aShallowCopy[i];
236
+ StrategyFactory.perform(oStateData, "subHeader.items", Operation.Remove, sItem);
237
+ }
238
+ }
239
+ }
240
+
241
+ /**
242
+ * Ensures that the sidePane contains only one item.
243
+ * The last item is kept.
244
+ * @param {object} oStateData The state data.
245
+ *
246
+ * @since 1.127.0
247
+ * @private
248
+ */
249
+ #ensureSingleSidePaneContent (oStateData) {
250
+ if (oStateData.sidePane.items.length > 1) {
251
+ // remove all items except the last one
252
+ const aShallowCopy = [...oStateData.sidePane.items];
253
+ for (let i = 0; i < aShallowCopy.length - 1; i++) {
254
+ const sItem = aShallowCopy[i];
255
+ StrategyFactory.perform(oStateData, "sidePane.items", Operation.Remove, sItem);
256
+ }
257
+ }
258
+ }
259
+
260
+ /**
261
+ * Ensures that the header items do not exceed the maximum length.
262
+ * The first items are kept. The back button is usually the first item {@link sap.ushell.state.StrategyFactory.HeadItemsStrategy}.
263
+ * @param {object} oStateData The state data.
264
+ *
265
+ * @since 1.127.0
266
+ * @private
267
+ */
268
+ #ensureHeaderItemMaxLength (oStateData) {
269
+ const iHeaderItemMaxLength = 3;
270
+ const aShallowCopy = [...oStateData.header.headItems];
271
+ if (aShallowCopy.length > iHeaderItemMaxLength) {
272
+ // only keep the first items
273
+ for (let i = iHeaderItemMaxLength; i < aShallowCopy.length; i++) {
274
+ const sItem = aShallowCopy[i];
275
+ StrategyFactory.perform(oStateData, "header.headItems", Operation.Remove, sItem);
276
+ }
277
+ }
278
+ }
279
+
280
+ /**
281
+ * ONLY FOR TESTING!
282
+ * Resets the state rules.
283
+ *
284
+ * @since 1.127.0
285
+ * @private
286
+ * @alias sap.ushell.state.StateRules#reset
287
+ */
288
+ reset () {
289
+ this.#oShellConfig = null;
290
+ }
291
+ }
292
+
293
+ return new StateRules();
294
+
295
+ });
@@ -0,0 +1,74 @@
1
+ // Copyright (c) 2009-2023 SAP SE, All Rights Reserved
2
+
3
+ sap.ui.define([
4
+ ], function (
5
+ ) {
6
+ "use strict";
7
+
8
+ /**
9
+ * @alias sap.ushell.state.StrategyFactory.DefaultStrategy
10
+ * @namespace
11
+ * @description Default strategy for adding, removing and setting values.
12
+ *
13
+ * @since 1.127.0
14
+ * @private
15
+ */
16
+ class DefaultStrategy {
17
+ /**
18
+ * Adds a value to a list.
19
+ * <code>null</code>, <code>undefined</code> and duplicated values are ignored.
20
+ * @param {any[]} aList The list.
21
+ * @param {any} vValue The value to add.
22
+ *
23
+ * @since 1.127.0
24
+ * @private
25
+ * @alias sap.ushell.state.StrategyFactory.DefaultStrategy#add
26
+ */
27
+ add (aList, vValue) {
28
+ if (vValue === undefined || vValue === null) {
29
+ return;
30
+ }
31
+
32
+ if (aList.includes(vValue)) {
33
+ return;
34
+ }
35
+ aList.push(vValue);
36
+ }
37
+
38
+ /**
39
+ * Removes a value from a list.
40
+ * Does not fail if the value is not in the list.
41
+ * @param {any[]} aList The list.
42
+ * @param {any} vValue The value to remove.
43
+ *
44
+ * @since 1.127.0
45
+ * @private
46
+ * @alias sap.ushell.state.StrategyFactory.DefaultStrategy#remove
47
+ */
48
+ remove (aList, vValue) {
49
+ const iIndex = aList.indexOf(vValue);
50
+ if (iIndex === -1) {
51
+ return;
52
+ }
53
+ aList.splice(iIndex, 1);
54
+ }
55
+
56
+ /**
57
+ * Sets a value on an object.
58
+ * Also sets nested properties, but does not merge objects.
59
+ * @param {object} oNode The object.
60
+ * @param {string} sKey The key.
61
+ * @param {any} vValue The value.
62
+ *
63
+ * @since 1.127.0
64
+ * @private
65
+ * @alias sap.ushell.state.StrategyFactory.DefaultStrategy#set
66
+ */
67
+ set (oNode, sKey, vValue) {
68
+ oNode[sKey] = vValue;
69
+ }
70
+ }
71
+
72
+ return new DefaultStrategy();
73
+
74
+ });
@@ -0,0 +1,78 @@
1
+ // Copyright (c) 2009-2023 SAP SE, All Rights Reserved
2
+
3
+ sap.ui.define([
4
+ "sap/base/Log",
5
+ "sap/ui/core/Element"
6
+ ], function (
7
+ Log,
8
+ Element
9
+ ) {
10
+ "use strict";
11
+
12
+ /**
13
+ * @alias sap.ushell.state.StrategyFactory.FloatingActionsStrategy
14
+ * @namespace
15
+ * @description Strategy for adding items to the floating actions area.
16
+ *
17
+ * @since 1.127.0
18
+ * @private
19
+ */
20
+ class FloatingActionsStrategy {
21
+ /**
22
+ * Adds an item to the list.
23
+ * Does not add the item:
24
+ * - if the control doesn't exist
25
+ * @param {sap.ui.core.ID[]} aList The list.
26
+ * @param {sap.ui.core.ID} sNewItem The item to add.
27
+ *
28
+ * @since 1.127.0
29
+ * @private
30
+ * @alias sap.ushell.state.StrategyFactory.FloatingActionsStrategy#add
31
+ */
32
+ add (aList, sNewItem) {
33
+ if (!Element.getElementById(sNewItem)) {
34
+ Log.warning(`Failed to find control with id '${sNewItem}'`);
35
+ return;
36
+ }
37
+
38
+ if (aList.includes(sNewItem)) {
39
+ this.#removeFloatingAction(aList, sNewItem);
40
+ }
41
+
42
+ this.#addFloatingAction(aList, sNewItem);
43
+ }
44
+
45
+ /**
46
+ * Removes the item from the list.
47
+ * @param {sap.ui.core.ID[]} aList The list.
48
+ * @param {sap.ui.core.ID} sItemToRemove The item to remove.
49
+ *
50
+ * @since 1.127.0
51
+ * @private
52
+ */
53
+ #removeFloatingAction (aList, sItemToRemove) {
54
+ const iIndex = aList.indexOf(sItemToRemove);
55
+
56
+ if (iIndex === -1) {
57
+ return;
58
+ }
59
+
60
+ aList.splice(iIndex, 1);
61
+ }
62
+
63
+ /**
64
+ * Adds the item to the list.
65
+ * @param {sap.ui.core.ID[]} aList The list.
66
+ * @param {sap.ui.core.ID} sNewItem The item to add.
67
+ *
68
+ * @since 1.127.0
69
+ * @private
70
+ */
71
+ #addFloatingAction (aList, sNewItem) {
72
+ aList.push(sNewItem);
73
+ }
74
+ }
75
+
76
+ return new FloatingActionsStrategy();
77
+
78
+ });
@@ -0,0 +1,130 @@
1
+ // Copyright (c) 2009-2023 SAP SE, All Rights Reserved
2
+
3
+ sap.ui.define([
4
+ "sap/base/Log",
5
+ "sap/ui/core/Element",
6
+ "sap/ushell/api/NewExperience"
7
+ ], function (
8
+ Log,
9
+ Element,
10
+ NewExperience
11
+ ) {
12
+ "use strict";
13
+
14
+ const iMaxLength = 10;
15
+
16
+ /**
17
+ * @alias sap.ushell.state.StrategyFactory.HeadEndItemsStrategy
18
+ * @namespace
19
+ * @description Strategy for adding items to the head end item area.
20
+ *
21
+ * @since 1.127.0
22
+ * @private
23
+ */
24
+ class HeadEndItemsStrategy {
25
+ /**
26
+ * Adds an item to the list.
27
+ * Does not add the item:
28
+ * - if it is already in the list
29
+ * - if the control doesn't exist
30
+ * - if the max length would be exceeded
31
+ * Applies a custom sorting.
32
+ * @param {sap.ui.core.ID[]} aList The list.
33
+ * @param {sap.ui.core.ID} sNewItem The item to add.
34
+ *
35
+ * @since 1.127.0
36
+ * @private
37
+ * @alias sap.ushell.state.StrategyFactory.HeadEndItemsStrategy#add
38
+ */
39
+ add (aList, sNewItem) {
40
+ if (aList.includes(sNewItem)) {
41
+ return;
42
+ }
43
+ if (!Element.getElementById(sNewItem)) {
44
+ Log.warning(`Failed to find control with id '${sNewItem}'`);
45
+ return;
46
+ }
47
+ if (this.#exceedsMaxLength([...aList, sNewItem])) {
48
+ Log.error("The maximum number of head end items has been reached. The item could not be added.");
49
+ } else {
50
+ this.#addHeaderItems(aList, sNewItem);
51
+ }
52
+ }
53
+
54
+ /**
55
+ * Checks if the max length would be exceeded.
56
+ * Reserved ids are not counted.
57
+ * @param {sap.ui.core.ID} aList The list.
58
+ * @returns {boolean} True if the max length would be exceeded, false otherwise.
59
+ *
60
+ * @since 1.127.0
61
+ * @private
62
+ */
63
+ #exceedsMaxLength (aList) {
64
+ const aListWithoutDuplicates = [...new Set(aList)];
65
+ const aReservedIds = [
66
+ "endItemsOverflowBtn"
67
+ ];
68
+
69
+ const iCurrentLength = aListWithoutDuplicates.filter((sItem) => {
70
+ return !aReservedIds.includes(sItem);
71
+ }).length;
72
+
73
+ return iCurrentLength > iMaxLength;
74
+ }
75
+
76
+ /**
77
+ * Adds the item to the list.
78
+ * Applies sorting based on a predefined scale.
79
+ * @param {sap.ui.core.ID[]} aList The list.
80
+ * @param {sap.ui.core.ID} sNewItem The item to add.
81
+ *
82
+ * @since 1.127.0
83
+ * @private
84
+ */
85
+ #addHeaderItems (aList, sNewItem) {
86
+ aList.push(sNewItem);
87
+
88
+ /*
89
+ * HeaderEndItems has the following order:
90
+ * - search
91
+ * - Joule
92
+ * - copilot
93
+ * - custom items
94
+ * - notification
95
+ * - overflow button (before me area)
96
+ * - UserActionsMenu
97
+ * - product switch
98
+ */
99
+
100
+ /* eslint-disable quote-props */
101
+ const oScale = {
102
+ "sf": -3,
103
+ "sap.das.webclientplugin.s4.shellitem": -2, // Joule S4
104
+ "sap.das.webclientplugin.workzone.shellitem": -2, // Joule work zone
105
+ "copilotBtn": -1,
106
+ //0 custom items
107
+ "NotificationsCountButton": 1,
108
+ "endItemsOverflowBtn": 2,
109
+ "userActionsMenuHeaderButton": 3,
110
+ "productSwitchBtn": 4
111
+ };
112
+ oScale[NewExperience.getOverflowItemId()] = -4;
113
+ /* eslint-enable quote-props */
114
+
115
+ aList.sort((sItem1, sItem2) => {
116
+ const iPriority1 = oScale[sItem1] || 0;
117
+ const iPriority2 = oScale[sItem2] || 0;
118
+
119
+ if (iPriority1 === iPriority2) {
120
+ return sItem1.localeCompare(sItem2);
121
+ }
122
+
123
+ return iPriority1 - iPriority2;
124
+ });
125
+ }
126
+ }
127
+
128
+ return new HeadEndItemsStrategy();
129
+
130
+ });
@@ -0,0 +1,104 @@
1
+ // Copyright (c) 2009-2023 SAP SE, All Rights Reserved
2
+
3
+ sap.ui.define([
4
+ "sap/base/Log",
5
+ "sap/ui/core/Element"
6
+ ], function (
7
+ Log,
8
+ Element
9
+ ) {
10
+ "use strict";
11
+
12
+ const iMaxLength = 3;
13
+
14
+ /**
15
+ * @alias sap.ushell.state.StrategyFactory.HeadItemsStrategy
16
+ * @namespace
17
+ * @description Strategy for adding items to the head item area.
18
+ *
19
+ * @since 1.127.0
20
+ * @private
21
+ */
22
+ class HeadItemsStrategy {
23
+ /**
24
+ * Adds an item to the list.
25
+ * Does not add the item:
26
+ * - if it is already in the list
27
+ * - if the control doesn't exist
28
+ * - if the max length would be exceeded
29
+ * Applies a custom sorting.
30
+ * @param {sap.ui.core.ID[]} aList The list.
31
+ * @param {sap.ui.core.ID} sNewItem The item to add.
32
+ *
33
+ * @since 1.127.0
34
+ * @private
35
+ * @alias sap.ushell.state.StrategyFactory.HeadItemsStrategy#add
36
+ */
37
+ add (aList, sNewItem) {
38
+ if (aList.includes(sNewItem)) {
39
+ return;
40
+ }
41
+ if (!Element.getElementById(sNewItem)) {
42
+ Log.warning(`Failed to find control with id '${sNewItem}'`);
43
+ return;
44
+ }
45
+ if (this.#exceedsMaxLength([...aList, sNewItem])) {
46
+ Log.error("The maximum number of head items has been reached. The item could not be added.");
47
+ } else {
48
+ this.#addHeaderItems(aList, sNewItem);
49
+ }
50
+ }
51
+
52
+ /**
53
+ * Checks if the max length would be exceeded.
54
+ * Reserved ids are not counted.
55
+ * @param {sap.ui.core.ID} aList The list.
56
+ * @returns {boolean} True if the max length would be exceeded, false otherwise.
57
+ *
58
+ * @since 1.127.0
59
+ * @private
60
+ */
61
+ #exceedsMaxLength (aList) {
62
+ const aListWithoutDuplicates = [...new Set(aList)];
63
+ const aReservedIds = [
64
+ "backBtn"
65
+ ];
66
+
67
+ const iCurrentLength = aListWithoutDuplicates.filter((sItem) => {
68
+ return !aReservedIds.includes(sItem);
69
+ }).length;
70
+
71
+ return iCurrentLength > iMaxLength;
72
+ }
73
+
74
+ /**
75
+ * Adds the item to the list.
76
+ * Applies sorting based on a predefined scale.
77
+ * @param {sap.ui.core.ID[]} aList The list.
78
+ * @param {sap.ui.core.ID} sNewItem The item to add.
79
+ *
80
+ * @since 1.127.0
81
+ * @private
82
+ */
83
+ #addHeaderItems (aList, sNewItem) {
84
+ aList.push(sNewItem);
85
+
86
+ /* eslint-disable quote-props */
87
+ const oScale = {
88
+ "backBtn": -1
89
+ //0 custom items
90
+ };
91
+ /* eslint-enable quote-props */
92
+
93
+ aList.sort((sItem1, sItem2) => {
94
+ const iPriority1 = oScale[sItem1] || 0;
95
+ const iPriority2 = oScale[sItem2] || 0;
96
+
97
+ return iPriority1 - iPriority2;
98
+ });
99
+ }
100
+ }
101
+
102
+ return new HeadItemsStrategy();
103
+
104
+ });