@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
@@ -32,7 +32,9 @@ sap.ui.define([
32
32
  "sap/m/NotificationListItem",
33
33
  "sap/ushell/renderer/ShellLayout",
34
34
  "sap/ushell/renderer/utils",
35
- "sap/ushell/ui/launchpad/ActionItem"
35
+ "sap/ushell/ui/launchpad/ActionItem",
36
+ "sap/ushell/state/StateManager",
37
+ "sap/ushell/state/ShellModel"
36
38
  ], function (
37
39
  Component,
38
40
  Element,
@@ -61,15 +63,32 @@ sap.ui.define([
61
63
  NotificationListItem,
62
64
  ShellLayout,
63
65
  RendererUtils,
64
- ActionItem
66
+ ActionItem,
67
+ StateManager,
68
+ ShellModel
65
69
  ) {
66
70
  "use strict";
67
71
 
68
72
  // shortcut for sap.ui.core.mvc.ViewType
69
- var ViewType = coreLibrary.mvc.ViewType;
73
+ const ViewType = coreLibrary.mvc.ViewType;
70
74
 
71
75
  // shortcut for sap.ushell.AppType
72
- var AppType = ushellLibrary.AppType;
76
+ const AppType = ushellLibrary.AppType;
77
+
78
+ // shortcut for sap.ushell.state.StateManager.LaunchpadState
79
+ const LaunchpadState = StateManager.LaunchpadState;
80
+
81
+ // shortcut for sap.ushell.state.StateManager.Operation
82
+ const Operation = StateManager.Operation;
83
+
84
+ // shortcut for sap.ushell.state.StateManager.ShellMode
85
+ const ShellMode = StateManager.ShellMode;
86
+ const {
87
+ Headerless,
88
+ Merged,
89
+ Blank,
90
+ Lean
91
+ } = ShellMode;
73
92
 
74
93
  /**
75
94
  * @alias sap.ushell.renderer.Renderer
@@ -81,9 +100,9 @@ sap.ui.define([
81
100
  */
82
101
  var Renderer = UIComponent.extend("sap.ushell.renderer.Renderer", /** @lends sap.ushell.renderer.Renderer.prototype */ {
83
102
  metadata: {
84
- version: "1.126.1",
103
+ version: "1.127.1",
85
104
  dependencies: {
86
- version: "1.126.1",
105
+ version: "1.127.1",
87
106
  libs: ["sap.ui.core", "sap.m"],
88
107
  components: []
89
108
  },
@@ -386,7 +405,7 @@ sap.ui.define([
386
405
  var bIsRootIntentFlpHome = !sRootIntent || oUshellUtils.isFlpHomeIntent(sRootIntent);
387
406
 
388
407
  // switch to home first so that #set calls below have effect
389
- AppLifeCycleAI.switchViewState(bIsRootIntentFlpHome ? "home" : "app", false, "Shell-home");
408
+ AppLifeCycleAI.switchViewState(bIsRootIntentFlpHome ? LaunchpadState.Home : LaunchpadState.App, false, "Shell-home");
390
409
 
391
410
  this.setCurrentCoreView("home");
392
411
  AppConfiguration.setCurrentApplication(null);
@@ -443,46 +462,18 @@ sap.ui.define([
443
462
  });
444
463
  };
445
464
 
446
- /**
447
- * @returns {string|undefined} so-called "appState" (not to be confused with Internal or External App State)
448
- * @private
449
- */
450
- Renderer.prototype.getSapUshellConfigParam = function () {
451
- let sState = new URLSearchParams(window.location.search).get("sap-ushell-config");
452
-
453
- /**
454
- * code shall be automatically removed by tooling
455
- * @deprecated since 1.120.0
456
- */
457
- if (!sState) {
458
- sState = new URLSearchParams(window.location.search).get("appState");
459
- if (sState) {
460
- Log.error("URL parameter 'appState' is given, but deprecated. Please use 'sap-ushell-config' instead!", "sap.ushell.renderer.Renderer");
461
- }
462
- }
463
-
464
- return sState && sState.toLowerCase();
465
- };
466
-
467
465
  /**
468
466
  * @returns {object} an instance of Shell view
469
467
  * @since 1.15.0
470
468
  * @private
471
469
  */
472
470
  Renderer.prototype.createContent = function () {
473
- var sGivenState = Renderer.prototype.getSapUshellConfigParam();
474
471
  var viewData = this.getComponentData() || {};
475
472
  var oAppConfig = {
476
473
  applications: { "Shell-home": {} },
477
474
  rootIntent: "Shell-home"
478
475
  };
479
-
480
- if (sGivenState) {
481
- if (!viewData.config) {
482
- viewData.config = {};
483
- }
484
- viewData.config.appState = sGivenState;
485
- }
476
+ const sCurrentShellMode = StateManager.getShellMode();
486
477
 
487
478
  // the code below migrates a configuration structure from version 1.28 or older, to the default expected configuration structure in 1.30
488
479
  if (viewData.config) {
@@ -503,13 +494,20 @@ sap.ui.define([
503
494
  );
504
495
 
505
496
  // handle the Personalization flag
506
- if (viewData.config.appState === "headerless" || viewData.config.appState === "merged" || viewData.config.appState === "blank") {
497
+ if ([Headerless, Merged, Blank].includes(sCurrentShellMode)) {
507
498
  viewData.config.enablePersonalization = false;
508
499
  Config.emit("/core/shell/enablePersonalization", false);
509
500
  } else {
510
501
  viewData.config.enablePersonalization = Config.last("/core/shell/enablePersonalization");
511
502
  }
512
503
 
504
+ if ([Lean].includes(sCurrentShellMode)) {
505
+ viewData.config.showRecentActivity = false;
506
+ } else if (viewData.config.showRecentActivity === undefined) {
507
+ viewData.config.showRecentActivity = Config.last("/core/shell/model/showRecentActivity");
508
+ }
509
+ Config.emit("/core/shell/model/showRecentActivity", viewData.config.showRecentActivity);
510
+
513
511
  // If the personalization is disabled, do not create the AppFinder and Edit buttons in the header
514
512
  if (!viewData.config.enablePersonalization) {
515
513
  viewData.config.moveEditHomePageActionToShellHeader = false;
@@ -520,14 +518,6 @@ sap.ui.define([
520
518
  }
521
519
  }
522
520
 
523
- viewData.shellModel = Config.createModel("/core/shell/model", JSONModel);
524
- viewData.helperModel = new JSONModel({
525
- shell: {
526
- floatingContainerVisible: false,
527
- footerContent: ""
528
- }
529
- });
530
-
531
521
  if (!this.getComponentData().async) {
532
522
  let oView;
533
523
  Log.error("sap/ushell/renderer/Renderer component is created synchronously. Synchronous instantiation is not allowed. Please use async:true in component data");
@@ -545,7 +535,6 @@ sap.ui.define([
545
535
  }).then(function (oView) {
546
536
  oView.addStyleClass("sapUshellRenderer");
547
537
  this._oShellView = oView;
548
- this.oShellModel = AppLifeCycleAI.getElementsModel();
549
538
 
550
539
  // initialize the RendererExtensions after the view is created.
551
540
  // This also publishes an external event that indicates that sap.ushell.renderer.RendererExtensions can be used.
@@ -573,7 +562,6 @@ sap.ui.define([
573
562
  });
574
563
  oSyncView.addStyleClass("sapUshellRenderer");
575
564
  this._oShellView = oSyncView;
576
- this.oShellModel = AppLifeCycleAI.getElementsModel();
577
565
 
578
566
  oSyncView.loaded().then(function (oCreatedView) {
579
567
  // initialize the RendererExtensions after the view is created.
@@ -608,10 +596,10 @@ sap.ui.define([
608
596
  * @returns {object} Created Extended Shell State.
609
597
  * @since 1.35
610
598
  * @private
599
+ * @deprecated since 1.120 Deprecated without successor.
611
600
  */
612
601
  Renderer.prototype.createExtendedShellState = function (sShellName, fnCreationInstructions) {
613
- // create a shadow shell, shell will extend custom shell state.
614
- return AppLifeCycleAI.shellElements().createExtendedShellState(sShellName, fnCreationInstructions);
602
+ Log.error("The function createExtendedShellState was deprecated discontinued.");
615
603
  };
616
604
 
617
605
  /**
@@ -637,10 +625,10 @@ sap.ui.define([
637
625
  * @param {function} fnCustomMerge fnCustomMerge
638
626
  * @since 1.35
639
627
  * @private
628
+ * @deprecated since 1.120. Functionality was discontinued.
640
629
  */
641
630
  Renderer.prototype.applyExtendedShellState = function (sShellName, fnCustomMerge) {
642
- //merge the current shell state state (HOME/APP) with the custom shell.
643
- this.oShellModel.applyExtendedShellState(sShellName, fnCustomMerge);
631
+ Log.error("The function applyExtendedShellState was discontinued.");
644
632
  };
645
633
 
646
634
  /**
@@ -655,7 +643,7 @@ sap.ui.define([
655
643
  * oRenderer.showActionButton([oButton.getId()], false, ["home", "app"]);
656
644
  * </pre>
657
645
  *
658
- * @param {string|string[]} vIds Either ID or an array of IDs of elements to be added to the shell.
646
+ * @param {string|string[]} aIds Either ID or an array of IDs of elements to be added to the shell.
659
647
  * @param {boolean} bCurrentState if true, add the current component only to the current instance of the rendering of the shell.
660
648
  * if false, add the component to the LaunchPadState itself.
661
649
  * @param {string[]} aStates (only valid if bCurrentState is set to false) -
@@ -663,14 +651,8 @@ sap.ui.define([
663
651
  * @since 1.30
664
652
  * @private
665
653
  */
666
- Renderer.prototype.showLeftPaneContent = function (vIds, bCurrentState, aStates) {
667
- var aIds = typeof vIds === "string" ? [vIds] : vIds;
668
-
669
- if (bCurrentState) {
670
- AppLifeCycleAI.shellElements().addShellModelForApplications("paneContent", aIds);
671
- } else {
672
- this.oShellModel.addLeftPaneContent(aIds, false, aStates);
673
- }
654
+ Renderer.prototype.showLeftPaneContent = function (aIds, bCurrentState, aStates) {
655
+ this._updateItemStates(aIds, bCurrentState, aStates, "sidePane.items", Operation.Add);
674
656
  };
675
657
 
676
658
  /**
@@ -699,14 +681,18 @@ sap.ui.define([
699
681
  * @since 1.30
700
682
  * @private
701
683
  */
702
- Renderer.prototype.showHeaderItem = function (vIds, bCurrentState, aStates) {
703
- var aIds = typeof vIds === "string" ? [vIds] : vIds;
684
+ Renderer.prototype.showHeaderItem = function (vIds, bCurrentState, vStates) {
685
+ const aIds = Array.isArray(vIds) ? vIds : [vIds];
686
+ const aStates = this._sanitizeStates(vStates);
704
687
 
705
- if (bCurrentState) {
706
- AppLifeCycleAI.shellElements().addShellModelForApplications("headItems", aIds);
707
- } else {
708
- this.oShellModel.addHeaderItem(aIds, false, aStates);
709
- }
688
+ aIds.forEach((sId) => {
689
+ if (bCurrentState) {
690
+ StateManager.updateCurrentState("header.headItems", Operation.Add, sId);
691
+ return;
692
+ }
693
+
694
+ StateManager.updateBaseStates(aStates, "header.headItems", Operation.Add, sId);
695
+ });
710
696
  };
711
697
 
712
698
  /**
@@ -721,7 +707,7 @@ sap.ui.define([
721
707
  * renderer.showRightFloatingContainerItem(button1.getId(), false, ["home", "app"]);
722
708
  * </pre>
723
709
  *
724
- * @param {string|string[]} vIds Either ID or an array of IDs of elements to be added to the Tool Area.
710
+ * @param {string|string[]} aIds Either ID or an array of IDs of elements to be added to the Tool Area.
725
711
  * @param {boolean} bCurrentState if true, add the current RightFloatingContainerItems only to the current instance of the rendering of the shell.
726
712
  * if false, add the RightFloatingContainerItems to the LaunchPadState itself.
727
713
  * @param {string[]} aStates Only valid if bCurrentState is set to false.
@@ -729,14 +715,8 @@ sap.ui.define([
729
715
  * @since 1.37
730
716
  * @private
731
717
  */
732
- Renderer.prototype.showRightFloatingContainerItem = function (vIds, bCurrentState, aStates) {
733
- var aIds = typeof vIds === "string" ? [vIds] : vIds;
734
-
735
- if (bCurrentState) {
736
- AppLifeCycleAI.shellElements().addShellModelForApplications("RightFloatingContainerItems", aIds);
737
- } else {
738
- this.oShellModel.addRightFloatingContainerItem(aIds, false, aStates);
739
- }
718
+ Renderer.prototype.showRightFloatingContainerItem = function (aIds, bCurrentState, aStates) {
719
+ this._updateItemStates(aIds, bCurrentState, aStates, "rightFloatingContainer.items", Operation.Add);
740
720
  };
741
721
 
742
722
  /**
@@ -747,7 +727,7 @@ sap.ui.define([
747
727
  * @private
748
728
  */
749
729
  Renderer.prototype.showRightFloatingContainer = function (bShow) {
750
- AppLifeCycleAI.shellElements().setShellModelForApplications("showRightFloatingContainer", bShow);
730
+ StateManager.updateCurrentState("rightFloatingContainer.visible", Operation.Set, bShow);
751
731
  };
752
732
 
753
733
  /**
@@ -763,7 +743,7 @@ sap.ui.define([
763
743
  * </pre>
764
744
  *
765
745
  * <br>Note: Was public with fiori2/Renderer
766
- * @param {string|string[]} vIds A single ID or an array of IDs to add to the Tool Area.
746
+ * @param {string|string[]} aIds A single ID or an array of IDs to add to the Tool Area.
767
747
  * @param {boolean} bCurrentState If <code>true</code>, add the items to the currently rendered shell.
768
748
  * If <code>false</code>, add the items to the LaunchPadState itself,
769
749
  * causing the items to be rendered every time the given states are active.
@@ -774,8 +754,8 @@ sap.ui.define([
774
754
  * @since 1.30
775
755
  * @private
776
756
  */
777
- Renderer.prototype.showToolAreaItem = function (vIds, bCurrentState, aStates) {
778
- this.oShellModel.addToolAreaItem(vIds, true, bCurrentState, aStates);
757
+ Renderer.prototype.showToolAreaItem = function (aIds, bCurrentState, aStates) {
758
+ this._updateItemStates(aIds, bCurrentState, aStates, "toolArea.items", Operation.Add);
779
759
  };
780
760
 
781
761
  /**
@@ -792,7 +772,7 @@ sap.ui.define([
792
772
  * </pre>
793
773
  *
794
774
  * <br>Note: Was public with fiori2/Renderer
795
- * @param {string[]} aIds List of ID elements to that should be added to the User Actions Menu options bar.
775
+ * @param {string[]} vIds List of ID elements to that should be added to the User Actions Menu options bar.
796
776
  * @param {boolean} bCurrentState If true, add the created control to the current rendered shell state. When the user navigates to a
797
777
  * different state, or to a different application, then the control is removed. If false, the control is added to the LaunchpadState.
798
778
  * @param {string[]} aStates List of the launchpad states (sap.ushell.renderer.Renderer.LaunchpadState) in which to add the aIds.
@@ -802,34 +782,29 @@ sap.ui.define([
802
782
  * @since 1.30
803
783
  * @private
804
784
  */
805
- Renderer.prototype.showActionButton = function (aIds, bCurrentState, aStates) {
806
- var aButtons = [];
807
- var aActions = [];
808
- var oButton;
785
+ Renderer.prototype.showActionButton = function (vIds, bCurrentState, aStates) {
786
+ const aIds = Array.isArray(vIds) ? vIds : [vIds];
809
787
 
810
- if (typeof aIds === "string") {
811
- aIds = [aIds];
812
- }
813
788
  // In case the method was called with instance of sap.m.Button, we need to convert it to
814
789
  // sap.ushell.ui.launchpad.ActionItem in order to apply the action item behavior and styles to this control
815
- aButtons = aIds.filter(function (sId) {
816
- oButton = Element.getElementById(sId);
817
- return BaseObject.isObjectA(oButton, "sap.m.Button") && !(BaseObject.isObjectA(oButton, "sap.ushell.ui.launchpad.ActionItem"));
818
- });
819
- aActions = aIds.filter(function (sId) {
820
- oButton = Element.getElementById(sId);
821
- return oButton instanceof ActionItem;
822
- });
823
- if (aButtons.length) {
824
- this.convertButtonsToActions(aButtons, bCurrentState, aStates);
825
- }
826
- if (aActions.length) {
827
- if (bCurrentState) {
828
- AppLifeCycleAI.shellElements().addShellModelForApplications("actions", aIds);
790
+ const { buttons, actions } = aIds.reduce(function (oResult, sId) {
791
+ const oElement = Element.getElementById(sId);
792
+ const bIsButton = BaseObject.isObjectA(oElement, "sap.m.Button") && !(BaseObject.isObjectA(oElement, "sap.ushell.ui.launchpad.ActionItem"));
793
+
794
+ if (bIsButton) {
795
+ oResult.buttons.push(sId);
829
796
  } else {
830
- this.oShellModel.addActionButton(aIds, false, aStates);
797
+ oResult.actions.push(sId);
831
798
  }
799
+
800
+ return oResult;
801
+ }, { buttons: [], actions: [] });
802
+
803
+ if (buttons.length) {
804
+ this.convertButtonsToActions(buttons, bCurrentState, aStates);
832
805
  }
806
+
807
+ this._updateItemStates(actions, bCurrentState, aStates, "userActions.items", Operation.Add);
833
808
  };
834
809
 
835
810
  /**
@@ -856,11 +831,7 @@ sap.ui.define([
856
831
  * @deprecated since 1.52. Support for the FloatingActionButton has been discontinued.
857
832
  */
858
833
  Renderer.prototype.showFloatingActionButton = function (aIds, bCurrentState, aStates) {
859
- if (bCurrentState) {
860
- AppLifeCycleAI.shellElements().addShellModelForApplications("floatingActions", typeof aIds === "string" ? [aIds] : aIds);
861
- } else {
862
- this.oShellModel.addFloatingActionButton(typeof aIds === "string" ? [aIds] : aIds, false, aStates);
863
- }
834
+ this._updateItemStates(aIds, bCurrentState, aStates, "floatingActions.items", Operation.Add);
864
835
  };
865
836
 
866
837
  /**
@@ -887,11 +858,54 @@ sap.ui.define([
887
858
  * @private
888
859
  */
889
860
  Renderer.prototype.showHeaderEndItem = function (aIds, bCurrentState, aStates) {
890
- if (bCurrentState) {
891
- AppLifeCycleAI.shellElements().addShellModelForApplications("headEndItems", typeof aIds === "string" ? [aIds] : aIds);
892
- } else {
893
- this.oShellModel.addHeaderEndItem(typeof aIds === "string" ? [aIds] : aIds, false, aStates);
861
+ this._updateItemStates(aIds, bCurrentState, aStates, "header.headEndItems", Operation.Add);
862
+ };
863
+
864
+ /**
865
+ * Sanitizes the given list of launchpad states by removing any invalid states.
866
+ * For undefined or empty lists, all valid launchpad states are returned.
867
+ *
868
+ * @param {Array<sap.ushell.renderer.Renderer.LaunchpadState | string> | undefined} vLaunchpadStates A list of string which might not adhere to the LaunchpadState enum or undefined.
869
+ * @returns {sap.ushell.renderer.Renderer.LaunchpadState[]} The sanitized list of LaunchpadStates.
870
+ *
871
+ * @since 1.127
872
+ * @private
873
+ */
874
+ Renderer.prototype._sanitizeStates = function (vLaunchpadStates) {
875
+ const aLaunchpadStates = Array.isArray(vLaunchpadStates) ? vLaunchpadStates : [];
876
+
877
+ const aFilteredLaunchpadStates = aLaunchpadStates
878
+ .filter((sLaunchpadState) => {
879
+ return sLaunchpadState !== undefined && sLaunchpadState !== null;
880
+ })
881
+ .filter((sLaunchpadState) => {
882
+ const bValidLaunchpadState = Object.values(this.LaunchpadState).includes(sLaunchpadState);
883
+
884
+ if (!bValidLaunchpadState) {
885
+ throw new Error(`Invalid launchpad state: ${sLaunchpadState}`);
886
+ }
887
+ return bValidLaunchpadState;
888
+ });
889
+
890
+ if (aFilteredLaunchpadStates.length === 0) {
891
+ return Object.values(this.LaunchpadState);
894
892
  }
893
+
894
+ return aFilteredLaunchpadStates;
895
+ };
896
+
897
+ Renderer.prototype._updateItemStates = function (vIds, bCurrentState, vStates, sPath, sOperation) {
898
+ const aIds = Array.isArray(vIds) ? vIds : [vIds];
899
+ const aStates = this._sanitizeStates(vStates);
900
+
901
+ aIds.forEach((sId) => {
902
+ if (bCurrentState) {
903
+ StateManager.updateCurrentState(sPath, sOperation, sId);
904
+ return;
905
+ }
906
+
907
+ StateManager.updateBaseStates(aStates, sPath, sOperation, sId);
908
+ });
895
909
  };
896
910
 
897
911
  /**
@@ -909,19 +923,22 @@ sap.ui.define([
909
923
  * @param {boolean} bCurrentState If <code>true</code> then the visibility is set only to the current rendered shell state.<br>
910
924
  * When the user navigates to another application (including the Home page) then the visibility flag is reset.<br>
911
925
  * If <code>false</code> then set the visibility according to the states provided in the aState parameter.<br>
912
- * @param {string[]} aStates (Valid only if bCurrentState is <code>false</code>)<br>
926
+ * @param {string[]} vStates (Valid only if bCurrentState is <code>false</code>)<br>
913
927
  * A list of shell states (i.e. sap.ushell.renderer.Renderer.LaunchpadState) in which the header visibility flag should be set.<br>
914
928
  * If no launchpad state is provided the visibility flag is set for all states.
915
929
  * @see LaunchpadState
916
930
  * @since 1.38
917
931
  * @private
918
932
  */
919
- Renderer.prototype.setHeaderVisibility = function (bVisible, bCurrentState, aStates) {
933
+ Renderer.prototype.setHeaderVisibility = function (bVisible, bCurrentState, vStates) {
934
+ const aStates = this._sanitizeStates(vStates);
935
+
920
936
  if (bCurrentState) {
921
- AppLifeCycleAI.shellElements().setShellModelForApplications("headerVisible", bVisible);
922
- } else {
923
- this.oShellModel.setHeaderVisibility(bVisible, false, aStates);
937
+ StateManager.updateCurrentState("header.visible", Operation.Set, bVisible);
938
+ return;
924
939
  }
940
+
941
+ StateManager.updateBaseStates(aStates, "header.visible", Operation.Set, bVisible);
925
942
  };
926
943
 
927
944
  /**
@@ -953,11 +970,7 @@ sap.ui.define([
953
970
  * @private
954
971
  */
955
972
  Renderer.prototype.showSubHeader = function (aIds, bCurrentState, aStates) {
956
- if (bCurrentState) {
957
- AppLifeCycleAI.shellElements().addShellModelForApplications("subHeader", typeof aIds === "string" ? [aIds] : aIds);
958
- } else {
959
- this.oShellModel.addSubHeader(typeof aIds === "string" ? [aIds] : aIds, false, aStates);
960
- }
973
+ this._updateItemStates(aIds, bCurrentState, aStates, "subHeader.items", Operation.Add);
961
974
  };
962
975
 
963
976
  /**
@@ -980,11 +993,7 @@ sap.ui.define([
980
993
  * @private
981
994
  */
982
995
  Renderer.prototype.showSignOutItem = function (bCurrentState, aStates) {
983
- if (bCurrentState) {
984
- AppLifeCycleAI.shellElements().addShellModelForApplications("actions", ["logoutBtn"], false);
985
- } else {
986
- this.oShellModel.showSignOutButton(bCurrentState, aStates);
987
- }
996
+ this.showActionButton(["logoutBtn"], bCurrentState, aStates);
988
997
  };
989
998
 
990
999
  /**
@@ -1007,7 +1016,7 @@ sap.ui.define([
1007
1016
  * @private
1008
1017
  */
1009
1018
  Renderer.prototype.showSettingsItem = function (bCurrentState, aStates) {
1010
- this.oShellModel.showSettingsButton(bCurrentState, aStates);
1019
+ this.showActionButton(["userSettingsBtn"], bCurrentState, aStates);
1011
1020
  };
1012
1021
 
1013
1022
  /**
@@ -1208,21 +1217,17 @@ sap.ui.define([
1208
1217
  * We do not recommend using it on a standard launchpad element, as this may interfere with the standard launchpad functionality.
1209
1218
  *
1210
1219
  * <br>Note: Was public with fiori2/Renderer
1211
- * @param {string[]} aIds the Ids of the sap.ushell.ui.shell.ShellHeadItem to remove.
1220
+ * @param {string[]} vIds the Ids of the sap.ushell.ui.shell.ShellHeadItem to remove.
1212
1221
  * @param {boolean} bCurrentState if true, remove the current control only from the current rendered shell state.
1213
- * @param {string[]} aStates list of the sap.ushell.renderer.Renderer.LaunchpadState in which to remove the control.
1222
+ * @param {string[]} vStates list of the sap.ushell.renderer.Renderer.LaunchpadState in which to remove the control.
1214
1223
  * (Only valid if bCurrentState is set to false)
1215
1224
  * @see LaunchpadState
1216
1225
  * If no launchpad state is provided the content is removed in all states.
1217
1226
  * @since 1.30
1218
1227
  * @private
1219
1228
  */
1220
- Renderer.prototype.hideHeaderItem = function (aIds, bCurrentState, aStates) {
1221
- if (typeof aIds === "string") {
1222
- this.oShellModel.removeHeaderItem([aIds], bCurrentState, aStates);
1223
- } else {
1224
- this.oShellModel.removeHeaderItem(aIds, bCurrentState, aStates);
1225
- }
1229
+ Renderer.prototype.hideHeaderItem = function (vIds, bCurrentState, vStates) {
1230
+ this._updateItemStates(vIds, bCurrentState, vStates, "header.headItems", Operation.Remove);
1226
1231
  };
1227
1232
 
1228
1233
  /**
@@ -1231,7 +1236,7 @@ sap.ui.define([
1231
1236
  * We do not recommend using it on a standard launchpad element, as this may interfere with the standard launchpad functionality.
1232
1237
  *
1233
1238
  * <br>Note: Was public with fiori2/Renderer
1234
- * @param {string|string[]} vIds A single ID or an array of IDs to remove from the Tool Area.
1239
+ * @param {string|string[]} aIds A single ID or an array of IDs to remove from the Tool Area.
1235
1240
  * @param {boolean} bCurrentState If <code>true</code>, remove the items from the currently rendered shell.
1236
1241
  * If <code>false</code>, remove the items from the LaunchPadState itself,
1237
1242
  * causing the items to be removed every time the given states are active.
@@ -1242,11 +1247,8 @@ sap.ui.define([
1242
1247
  * @since 1.30
1243
1248
  * @private
1244
1249
  */
1245
- Renderer.prototype.removeToolAreaItem = function (vIds, bCurrentState, aStates) {
1246
- if (typeof vIds === "string") {
1247
- vIds = [vIds];
1248
- }
1249
- this.oShellModel.removeToolAreaItem(vIds, bCurrentState, aStates);
1250
+ Renderer.prototype.removeToolAreaItem = function (aIds, bCurrentState, aStates) {
1251
+ this._updateItemStates(aIds, bCurrentState, aStates, "toolArea.items", Operation.Remove);
1250
1252
  };
1251
1253
 
1252
1254
  /**
@@ -1262,11 +1264,7 @@ sap.ui.define([
1262
1264
  * @private
1263
1265
  */
1264
1266
  Renderer.prototype.removeRightFloatingContainerItem = function (aIds, bCurrentState, aStates) {
1265
- if (typeof aIds === "string") {
1266
- this.oShellModel.removeRightFloatingContainerItem([aIds], bCurrentState, aStates);
1267
- } else {
1268
- this.oShellModel.removeRightFloatingContainerItem(aIds, bCurrentState, aStates);
1269
- }
1267
+ this._updateItemStates(aIds, bCurrentState, aStates, "rightFloatingContainer.items", Operation.Remove);
1270
1268
  };
1271
1269
 
1272
1270
  /**
@@ -1276,20 +1274,16 @@ sap.ui.define([
1276
1274
  * We do not recommend using it on standard launchpad elements, as this may interfere with the standard launchpad functionality.
1277
1275
  *
1278
1276
  * <br>Note: Was public with fiori2/Renderer
1279
- * @param {string[]} aIds IDs of the button controls that should hidden.
1277
+ * @param {string[]} vIds IDs of the button controls that should hidden.
1280
1278
  * @param {boolean} bCurrentState If true, removes the current control only from the current rendered shell state.
1281
- * @param {string[]} aStates A list of the launchpad states in which to hide the control. Valid only if bCurrentState is set to false.
1279
+ * @param {string[]} vStates A list of the launchpad states in which to hide the control. Valid only if bCurrentState is set to false.
1282
1280
  * @see sap.ushell.renderer.Renderer.LaunchpadState.
1283
1281
  * If no launchpad state is provided, the content is hidden in all states.
1284
1282
  * @since 1.30
1285
1283
  * @private
1286
1284
  */
1287
- Renderer.prototype.hideActionButton = function (aIds, bCurrentState, aStates) {
1288
- if (typeof aIds === "string") {
1289
- this.oShellModel.removeActionButton([aIds], bCurrentState, aStates);
1290
- } else {
1291
- this.oShellModel.removeActionButton(aIds, bCurrentState, aStates);
1292
- }
1285
+ Renderer.prototype.hideActionButton = function (vIds, bCurrentState, vStates) {
1286
+ this._updateItemStates(vIds, bCurrentState, vStates, "userActions.items", Operation.Remove);
1293
1287
  };
1294
1288
 
1295
1289
  /**
@@ -1299,21 +1293,17 @@ sap.ui.define([
1299
1293
  * We do not recommend using it on a standard launchpad element, as this may interfere with the standard launchpad functionality.
1300
1294
  *
1301
1295
  * <br>Note: Was public with fiori2/Renderer
1302
- * @param {string[]} aIds the Ids of the controls to remove.
1296
+ * @param {string[]} vIds the Ids of the controls to remove.
1303
1297
  * @param {boolean} bCurrentState if true, remove the current control only from the current rendered shell state.
1304
- * @param {string[]} aStates list of the sap.ushell.renderer.Renderer.LaunchpadState in which to remove the control.
1298
+ * @param {string[]} vStates list of the sap.ushell.renderer.Renderer.LaunchpadState in which to remove the control.
1305
1299
  * (Only valid if bCurrentState is set to false)
1306
1300
  * @see LaunchpadState
1307
1301
  * If no launchpad state is provided the content is removed in all states.
1308
1302
  * @since 1.30
1309
1303
  * @private
1310
1304
  */
1311
- Renderer.prototype.hideLeftPaneContent = function (aIds, bCurrentState, aStates) {
1312
- if (typeof aIds === "string") {
1313
- this.oShellModel.removeLeftPaneContent([aIds], bCurrentState, aStates);
1314
- } else {
1315
- this.oShellModel.removeLeftPaneContent(aIds, bCurrentState, aStates);
1316
- }
1305
+ Renderer.prototype.hideLeftPaneContent = function (vIds, bCurrentState, vStates) {
1306
+ this._updateItemStates(vIds, bCurrentState, vStates, "sidePane.items", Operation.Remove);
1317
1307
  };
1318
1308
 
1319
1309
  /**
@@ -1323,9 +1313,9 @@ sap.ui.define([
1323
1313
  * We do not recommend using it on a standard launchpad element, as this may interfere with the standard launchpad functionality.
1324
1314
  *
1325
1315
  * <br>Note: Was public with fiori2/Renderer
1326
- * @param {string[]} aIds the Ids of the sap.ushell.ui.shell.ShellFloatingAction to remove.
1316
+ * @param {string[]} vIds the Ids of the sap.ushell.ui.shell.ShellFloatingAction to remove.
1327
1317
  * @param {boolean} bCurrentState if true, remove the current control only from the current rendered shell state.
1328
- * @param {string[]} aStates list of the sap.ushell.renderer.Renderer.LaunchpadState in which to remove the control.
1318
+ * @param {string[]} vStates list of the sap.ushell.renderer.Renderer.LaunchpadState in which to remove the control.
1329
1319
  * (Only valid if bCurrentState is set to false)
1330
1320
  * @see LaunchpadState
1331
1321
  * If no launchpad state is provided the content is removed in all states.
@@ -1333,12 +1323,8 @@ sap.ui.define([
1333
1323
  * @private
1334
1324
  * @deprecated since 1.52
1335
1325
  */
1336
- Renderer.prototype.hideFloatingActionButton = function (aIds, bCurrentState, aStates) {
1337
- if (typeof aIds === "string") {
1338
- this.oShellModel.removeFloatingActionButton([aIds], bCurrentState, aStates);
1339
- } else {
1340
- this.oShellModel.removeFloatingActionButton(aIds, bCurrentState, aStates);
1341
- }
1326
+ Renderer.prototype.hideFloatingActionButton = function (vIds, bCurrentState, vStates) {
1327
+ this._updateItemStates(vIds, bCurrentState, vStates, "floatingActions.items", Operation.Remove);
1342
1328
  };
1343
1329
 
1344
1330
  /**
@@ -1348,21 +1334,17 @@ sap.ui.define([
1348
1334
  * We do not recommend using it on a standard launchpad element, as this may interfere with the standard launchpad functionality.
1349
1335
  *
1350
1336
  * <br>Note: Was public with fiori2/Renderer
1351
- * @param {string[]} aIds the Ids of the sap.ushell.ui.shell.ShellHeadItem to remove.
1337
+ * @param {string[]} vIds the Ids of the sap.ushell.ui.shell.ShellHeadItem to remove.
1352
1338
  * @param {boolean} bCurrentState if true, remove the current control only from the current rendered shell state.
1353
- * @param {string[]} aStates list of the sap.ushell.renderer.Renderer.LaunchpadState in which to remove the control.
1339
+ * @param {string[]} vStates list of the sap.ushell.renderer.Renderer.LaunchpadState in which to remove the control.
1354
1340
  * (Only valid if bCurrentState is set to false)
1355
1341
  * @see LaunchpadState
1356
1342
  * If no launchpad state is provided the content is removed in all states.
1357
1343
  * @since 1.30
1358
1344
  * @private
1359
1345
  */
1360
- Renderer.prototype.hideHeaderEndItem = function (aIds, bCurrentState, aStates) {
1361
- if (typeof aIds === "string") {
1362
- this.oShellModel.removeHeaderEndItem([aIds], bCurrentState, aStates);
1363
- } else {
1364
- this.oShellModel.removeHeaderEndItem(aIds, bCurrentState, aStates);
1365
- }
1346
+ Renderer.prototype.hideHeaderEndItem = function (vIds, bCurrentState, vStates) {
1347
+ this._updateItemStates(vIds, bCurrentState, vStates, "header.headEndItems", Operation.Remove);
1366
1348
  };
1367
1349
 
1368
1350
  /**
@@ -1372,21 +1354,17 @@ sap.ui.define([
1372
1354
  * We do not recommend using it on a standard launchpad element, as this may interfere with the standard launchpad functionality.
1373
1355
  *
1374
1356
  * <br>Note: Was public with fiori2/Renderer
1375
- * @param {string[]} aIds the Ids of the controls to remove.
1357
+ * @param {string[]} vIds the Ids of the controls to remove.
1376
1358
  * @param {boolean} bCurrentState if true, remove the current control only from the current rendered shell state.
1377
- * @param {string[]} aStates list of the sap.ushell.renderer.Renderer.LaunchpadState in which to remove the control.
1359
+ * @param {string[]} vStates list of the sap.ushell.renderer.Renderer.LaunchpadState in which to remove the control.
1378
1360
  * (Only valid if bCurrentState is set to false)
1379
1361
  * @see LaunchpadState
1380
1362
  * If no launchpad state is provided the content is removed in all states.
1381
1363
  * @since 1.30
1382
1364
  * @private
1383
1365
  */
1384
- Renderer.prototype.hideSubHeader = function (aIds, bCurrentState, aStates) {
1385
- if (typeof aIds === "string") {
1386
- this.oShellModel.removeSubHeader([aIds], bCurrentState, aStates);
1387
- } else {
1388
- this.oShellModel.removeSubHeader(aIds, bCurrentState, aStates);
1389
- }
1366
+ Renderer.prototype.hideSubHeader = function (vIds, bCurrentState, vStates) {
1367
+ this._updateItemStates(vIds, bCurrentState, vStates, "subHeader.items", Operation.Remove);
1390
1368
  };
1391
1369
 
1392
1370
  /**
@@ -1489,12 +1467,12 @@ sap.ui.define([
1489
1467
  }
1490
1468
  if (controlType) {
1491
1469
  var sControlResource = controlType.replace(/\./g, "/");
1492
- sap.ui.require([sControlResource],
1493
- function (ControlObject) {
1470
+ sap.ui.require([sControlResource], function (ControlObject) {
1494
1471
  oControlInstance = new ControlObject(oControlProperties);
1472
+ StateManager.addManagedControl(oControlInstance.getId(), !bCurrentState);
1473
+
1495
1474
  if (bIsVisible) {
1496
1475
  that.showSubHeader(oControlInstance.getId(), bCurrentState, aStates);
1497
- that.oShellModel.addElementToManagedQueue(oControlInstance);
1498
1476
  }
1499
1477
  oDeferred.resolve(oControlInstance);
1500
1478
  });
@@ -1535,7 +1513,7 @@ sap.ui.define([
1535
1513
  * @param {boolean} bCurrentState If <code>true</code> then the new created control is added to the current rendered shell state.<br>
1536
1514
  * When the user navigates to another application (including the Home page) then the control will be removed.<br>
1537
1515
  * If <code>false</code> then add the control to the LaunchPadState itself.<br>
1538
- * @param {string[]} aStates (Valid only if bCurrentState is <code>false</code>)<br>
1516
+ * @param {string[]} vStates (Valid only if bCurrentState is <code>false</code>)<br>
1539
1517
  * A list of shell states (i.e. sap.ushell.renderer.Renderer.LaunchpadState) in which the control is added.<br>
1540
1518
  * If no launchpad state is provided the control is added in all states.
1541
1519
  * @see LaunchpadState
@@ -1544,7 +1522,9 @@ sap.ui.define([
1544
1522
  * @deprecated since 1.48. Please use {@link #addShellSubHeader} instead.
1545
1523
  * @private
1546
1524
  */
1547
- Renderer.prototype.addSubHeader = function (controlType, oControlProperties, bIsVisible, bCurrentState, aStates) {
1525
+ Renderer.prototype.addSubHeader = function (controlType, oControlProperties, bIsVisible, bCurrentState, vStates) {
1526
+ const aStates = this._sanitizeStates(vStates);
1527
+
1548
1528
  var sControlResource = controlType.replace(/\./g, "/");
1549
1529
  // Try to require the control in case it is already loaded
1550
1530
  var ControlObject = sap.ui.require(sControlResource);
@@ -1618,62 +1598,60 @@ sap.ui.define([
1618
1598
  var oDeferred = new jQuery.Deferred();
1619
1599
  var that = this;
1620
1600
  var oControlInstance;
1621
- var controlType = oParameters.controlType;
1622
- var oControlProperties = oParameters.oControlProperties;
1623
- var bIsVisible = oParameters.bIsVisible;
1624
- var bCurrentState = oParameters.bCurrentState;
1625
- var oModelToUpdate = bCurrentState ? AppLifeCycleAI.shellElements().getStateModelToUpdate() : this.oShellModel.getModelToUpdate();
1626
- var aStates = oParameters.aStates;
1601
+ const {
1602
+ controlType,
1603
+ oControlProperties,
1604
+ bIsVisible,
1605
+ bCurrentState,
1606
+ aStates
1607
+ } = oParameters;
1627
1608
 
1628
- // If a control instance is already created - get it by its id
1629
1609
  if (oControlProperties) {
1610
+ // If a control instance is already created - get it by its id
1630
1611
  oControlInstance = Element.getElementById(oControlProperties.id);
1631
- }
1632
-
1633
- if (oControlInstance) {
1634
- oDeferred.resolve(oControlInstance);
1635
- }
1636
-
1637
- if (controlType) {
1638
- if (controlType === "sap.m.Button") {
1639
- controlType = "sap.ushell.ui.launchpad.ActionItem";
1640
- }
1641
- var sControlResource = controlType.replace(/\./g, "/");
1642
- sap.ui.require([sControlResource], function (ControlClass) {
1643
- // change model
1644
- var oOrigShellModel;
1645
-
1646
- if (bCurrentState) {
1647
- oOrigShellModel = AppLifeCycleAI.shellElements().getStateModelToUpdate();
1648
- AppLifeCycleAI.shellElements().setStateModelToUpdate(oModelToUpdate);
1649
- } else {
1650
- oOrigShellModel = that.oShellModel.getModelToUpdate();
1651
- that.oShellModel.setModelToUpdate(oModelToUpdate, true);
1652
- }
1653
-
1654
- oControlInstance = oControlInstance || new ControlClass(oControlProperties);
1612
+ if (oControlInstance) {
1613
+ oDeferred.resolve(oControlInstance);
1655
1614
 
1656
1615
  if (!oControlInstance.getActionType) {
1657
- oControlInstance = new ControlClass(oControlProperties);
1616
+ const oShallowCopy = { ...oControlProperties };
1617
+ delete oShallowCopy.id;
1618
+ oControlInstance = new ActionItem(oShallowCopy);
1619
+
1620
+ StateManager.addManagedControl(oControlInstance.getId(), !bCurrentState);
1658
1621
  }
1659
1622
 
1660
1623
  if (bIsVisible) {
1661
1624
  that.showActionButton(oControlInstance.getId(), bCurrentState, aStates);
1662
1625
  }
1663
1626
 
1664
- if (bCurrentState) {
1665
- AppLifeCycleAI.shellElements().setStateModelToUpdate(oOrigShellModel);
1666
- } else {
1667
- that.oShellModel.setModelToUpdate(oOrigShellModel, false);
1668
- }
1627
+ return oDeferred.promise();
1628
+ }
1629
+ }
1669
1630
 
1670
- oDeferred.resolve(oControlInstance);
1671
- });
1672
- } else {
1673
- var sNoControlTypeErrorMessage = "You must specify control type in order to create it";
1631
+ if (!controlType) {
1632
+ const sNoControlTypeErrorMessage = "You must specify control type in order to create it";
1674
1633
  Log.warning(sNoControlTypeErrorMessage);
1675
1634
  oDeferred.reject(sNoControlTypeErrorMessage);
1635
+ return oDeferred.promise();
1676
1636
  }
1637
+
1638
+ const sControlType = controlType === "sap.m.Button" ? "sap.ushell.ui.launchpad.ActionItem" : controlType;
1639
+ var sControlResource = sControlType.replace(/\./g, "/");
1640
+ sap.ui.require([sControlResource], (ControlClass) => {
1641
+ oControlInstance = new ControlClass(oControlProperties);
1642
+
1643
+ StateManager.addManagedControl(oControlInstance.getId(), !bCurrentState);
1644
+
1645
+ if (bIsVisible) {
1646
+ that.showActionButton(oControlInstance.getId(), bCurrentState, aStates);
1647
+ }
1648
+
1649
+ oDeferred.resolve(oControlInstance);
1650
+ }, function () {
1651
+ var sControlTypeErrorMessage = "The control type " + sControlType + " is not available.";
1652
+ Log.error(sControlTypeErrorMessage);
1653
+ oDeferred.reject(sControlTypeErrorMessage);
1654
+ });
1677
1655
  return oDeferred.promise();
1678
1656
  };
1679
1657
 
@@ -1698,7 +1676,7 @@ sap.ui.define([
1698
1676
  * (you can use showActionButton to display the control when needed).
1699
1677
  * @param {boolean} bCurrentState If true, add the current control only to the current rendered shell state.
1700
1678
  * Once the user navigates to another app or back to the home page, this control will be removed.
1701
- * @param {string[]} aStates List of the launchpad states (sap.ushell.renderer.Renderer.LaunchpadState) in which to add the control.
1679
+ * @param {string[]} vStates List of the launchpad states (sap.ushell.renderer.Renderer.LaunchpadState) in which to add the control.
1702
1680
  * Valid only if bCurrentState is set to false.
1703
1681
  * @see sap.ushell.renderer.Renderer.LaunchpadState
1704
1682
  * If no launchpad state is provided, the content is added in all states.
@@ -1707,7 +1685,8 @@ sap.ui.define([
1707
1685
  * @deprecated since 1.48. Please use {@link #addUserAction} instead.
1708
1686
  * @private
1709
1687
  */
1710
- Renderer.prototype.addActionButton = function (controlType, oControlProperties, bIsVisible, bCurrentState, aStates) {
1688
+ Renderer.prototype.addActionButton = function (controlType, oControlProperties, bIsVisible, bCurrentState, vStates) {
1689
+ const aStates = this._sanitizeStates(vStates);
1711
1690
  var bResourceLoadedAsObject = false;
1712
1691
 
1713
1692
  if (controlType === "sap.m.Button") {
@@ -1795,7 +1774,6 @@ sap.ui.define([
1795
1774
  if (oControlInstance) {
1796
1775
  if (bIsVisible) {
1797
1776
  that.showFloatingActionButton(oControlInstance.getId(), bCurrentState, aStates);
1798
- that.oShellModel.addElementToManagedQueue(oControlInstance);
1799
1777
  }
1800
1778
  oDeferred.resolve(oControlInstance);
1801
1779
  }
@@ -1807,9 +1785,11 @@ sap.ui.define([
1807
1785
  sControlResource = "sap/m/Button";
1808
1786
  }
1809
1787
 
1810
- sap.ui.require([sControlResource],
1811
- function (ControlObject) {
1788
+ sap.ui.require([sControlResource], function (ControlObject) {
1812
1789
  oControlInstance = new ControlObject(oControlProperties);
1790
+
1791
+ StateManager.addManagedControl(oControlInstance.getId(), !bCurrentState);
1792
+
1813
1793
  if (bIsVisible) {
1814
1794
  that.showFloatingActionButton(oControlInstance.getId(), bCurrentState, aStates);
1815
1795
  }
@@ -1838,7 +1818,7 @@ sap.ui.define([
1838
1818
  * @param {boolean} bIsVisible Specify whether to display the control.
1839
1819
  * @param {boolean} bCurrentState If true, add the current control only to the current rendered shell state.
1840
1820
  * Once the user navigates to another app or back to the Home page, this control will be removed.
1841
- * @param {string[]} aStates (only valid if bCurrentState is set to false) -
1821
+ * @param {string[]} vStates (only valid if bCurrentState is set to false) -
1842
1822
  * list of the sap.ushell.renderer.Renderer.LaunchpadState in which to add the control.
1843
1823
  * @see LaunchpadState
1844
1824
  * If no launchpad state is provided the content is added in all states.
@@ -1847,7 +1827,8 @@ sap.ui.define([
1847
1827
  * @deprecated since 1.48. Please use {@link #addFloatingButton} instead.
1848
1828
  * @private
1849
1829
  */
1850
- Renderer.prototype.addFloatingActionButton = function (controlType, oControlProperties, bIsVisible, bCurrentState, aStates) {
1830
+ Renderer.prototype.addFloatingActionButton = function (controlType, oControlProperties, bIsVisible, bCurrentState, vStates) {
1831
+ const aStates = this._sanitizeStates(vStates);
1851
1832
  var bResourceLoadedAsObject = false;
1852
1833
 
1853
1834
  if (!controlType) {
@@ -1948,11 +1929,12 @@ sap.ui.define([
1948
1929
 
1949
1930
  if (controlType) {
1950
1931
  var sControlResource = controlType.replace(/\./g, "/");
1951
- sap.ui.require([sControlResource],
1952
- function (ControlObject) {
1932
+ sap.ui.require([sControlResource], function (ControlObject) {
1953
1933
  oControlInstance = new ControlObject(oControlProperties);
1934
+
1935
+ StateManager.addManagedControl(oControlInstance.getId(), !bCurrentState);
1936
+
1954
1937
  if (bIsVisible) {
1955
- that.oShellModel.addElementToManagedQueue(oControlInstance);
1956
1938
  that.showLeftPaneContent(oControlInstance.getId(), bCurrentState, aStates);
1957
1939
  }
1958
1940
  oDeferred.resolve(oControlInstance);
@@ -1982,7 +1964,7 @@ sap.ui.define([
1982
1964
  * @param {boolean} bIsVisible Specify whether to display the control.
1983
1965
  * @param {boolean} bCurrentState If true, add the current control only to the current rendered shell state.
1984
1966
  * Once the user navigates to another app or back to the Home page, this control will be removed.
1985
- * @param {string[]} aStates (only valid if bCurrentState is set to false) -
1967
+ * @param {string[]} vStates (only valid if bCurrentState is set to false) -
1986
1968
  * list of the sap.ushell.renderer.Renderer.LaunchpadState in which to add the control.
1987
1969
  * @see LaunchpadState
1988
1970
  * If no launchpad state is provided the content is added in all states.
@@ -1991,7 +1973,8 @@ sap.ui.define([
1991
1973
  * @deprecated since 1.48. Please use {@link #addSidePaneContent} instead.
1992
1974
  * @private
1993
1975
  */
1994
- Renderer.prototype.addLeftPaneContent = function (controlType, oControlProperties, bIsVisible, bCurrentState, aStates) {
1976
+ Renderer.prototype.addLeftPaneContent = function (controlType, oControlProperties, bIsVisible, bCurrentState, vStates) {
1977
+ const aStates = this._sanitizeStates(vStates);
1995
1978
  var sControlResource = controlType.replace(/\./g, "/");
1996
1979
  // Try to require the control in case it is already loaded
1997
1980
  var ControlObject = sap.ui.require(sControlResource);
@@ -2057,7 +2040,7 @@ sap.ui.define([
2057
2040
  * @param {boolean} bCurrentState If <code>true</code> then the new created control is added to the current rendered shell state.<br>
2058
2041
  * When the user navigates to a different state including a different application then the control will be removed.<br>
2059
2042
  * If <code>false</code> then add the control to the LaunchPadState itself.<br>
2060
- * @param {string[]} aStates (Valid only if bCurrentState is <code>false</code>)<br>
2043
+ * @param {string[]} vStates (Valid only if bCurrentState is <code>false</code>)<br>
2061
2044
  * A list of shell states (i.e. sap.ushell.renderer.Renderer.LaunchpadState) in which the control is added.<br>
2062
2045
  * If no launchpad state is provided the control is added in all states.
2063
2046
  * @see LaunchpadState
@@ -2065,18 +2048,20 @@ sap.ui.define([
2065
2048
  * @since 1.30
2066
2049
  * @private
2067
2050
  */
2068
- Renderer.prototype.addHeaderItem = function (controlType, oControlProperties, bIsVisible, bCurrentState, aStates) {
2051
+ Renderer.prototype.addHeaderItem = function (controlType, oControlProperties, bIsVisible, bCurrentState, vStates) {
2069
2052
  // in order to support deprecation of the never used argument: 'controlType' , we'll need to check whether it was passed to
2070
2053
  // the function by checking the types of the first two arguments
2071
2054
  if (typeof (arguments[0]) === "object" && typeof (arguments[1]) === "boolean") {
2072
2055
  oControlProperties = arguments[0];
2073
2056
  bIsVisible = arguments[1];
2074
2057
  bCurrentState = arguments[2];
2075
- aStates = arguments[3];
2058
+ vStates = arguments[3];
2076
2059
  } else {
2077
2060
  Log.error("sap.ushell.renderer.Renderer: The parameter 'controlType' of the function 'addHeaderItem' is deprecated. Usage will be ignored!");
2078
2061
  }
2079
2062
 
2063
+ const aStates = this._sanitizeStates(vStates);
2064
+
2080
2065
  var oItem = this.createItem(oControlProperties, bCurrentState, function (oProperties) {
2081
2066
  return new ShellHeadItem(oProperties);
2082
2067
  });
@@ -2111,7 +2096,7 @@ sap.ui.define([
2111
2096
  * @see sap.ushell.ui.shell.RightFloatingContainerItem
2112
2097
  * @param {boolean} bIsVisible Specify whether to display the control.
2113
2098
  * @param {boolean} bCurrentState If true, add the current control only to the current rendered shell state.
2114
- * @param {string[]} aStates List of the sap.ushell.renderer.Renderer.LaunchpadState in which to add the control.
2099
+ * @param {string[]} vStates List of the sap.ushell.renderer.Renderer.LaunchpadState in which to add the control.
2115
2100
  * Only valid if bCurrentState is set to false.
2116
2101
  * @see LaunchpadState
2117
2102
  * If no launchpad state is provided the content is added in all states.
@@ -2119,7 +2104,8 @@ sap.ui.define([
2119
2104
  * @since 1.30
2120
2105
  * @private
2121
2106
  */
2122
- Renderer.prototype.addRightFloatingContainerItem = function (oControlProperties, bIsVisible, bCurrentState, aStates) {
2107
+ Renderer.prototype.addRightFloatingContainerItem = function (oControlProperties, bIsVisible, bCurrentState, vStates) {
2108
+ const aStates = this._sanitizeStates(vStates);
2123
2109
  var oItem = this.createItem(oControlProperties, bCurrentState, function (oProperties) {
2124
2110
  return new NotificationListItem(oProperties);
2125
2111
  });
@@ -2158,7 +2144,7 @@ sap.ui.define([
2158
2144
  * @param {boolean} bCurrentState If <code>true</code>, add the item to the currently rendered shell.
2159
2145
  * If <code>false</code>, add the item to the given LaunchPadStates
2160
2146
  * This causes the items to be rendered every time the given states are active.
2161
- * @param {string[]} aStates (only valid if bCurrentState is set to <code>false</code>) -
2147
+ * @param {string[]} vStates (only valid if bCurrentState is set to <code>false</code>) -
2162
2148
  * An array of shell states (i.e. sap.ushell.renderer.Renderer.LaunchpadState) in which the controls are added.
2163
2149
  * If no launchpad state is provided the items are added in all states.
2164
2150
  * @see sap.ushell.renderer.Renderer.LaunchpadState.
@@ -2166,7 +2152,8 @@ sap.ui.define([
2166
2152
  * @since 1.30
2167
2153
  * @private
2168
2154
  */
2169
- Renderer.prototype.addToolAreaItem = function (oControlProperties, bIsVisible, bCurrentState, aStates) {
2155
+ Renderer.prototype.addToolAreaItem = function (oControlProperties, bIsVisible, bCurrentState, vStates) {
2156
+ const aStates = this._sanitizeStates(vStates);
2170
2157
  if (bIsVisible !== null) { // ExtensionService case: do not overwrite control properties;
2171
2158
  oControlProperties.visible = !!bIsVisible;
2172
2159
  }
@@ -2176,7 +2163,19 @@ sap.ui.define([
2176
2163
  };
2177
2164
  var oItem = this.createItem(oControlProperties, bCurrentState, fnCreate);
2178
2165
 
2179
- this.oShellModel.addToolAreaItem(oItem.getId(), !!bIsVisible, bCurrentState, aStates);
2166
+ if (bIsVisible) {
2167
+ this.showToolAreaItem([oItem.getId()], bCurrentState, aStates);
2168
+
2169
+ // turn on tool area visibility
2170
+ if (bCurrentState) {
2171
+ const sCurrentLaunchpadState = StateManager.getLaunchpadState();
2172
+ this.showToolArea(sCurrentLaunchpadState, true);
2173
+ } else {
2174
+ aStates.forEach((sLaunchpadState) => {
2175
+ this.showToolArea(sLaunchpadState, true);
2176
+ });
2177
+ }
2178
+ }
2180
2179
 
2181
2180
  return oItem;
2182
2181
  };
@@ -2230,7 +2229,7 @@ sap.ui.define([
2230
2229
  * @param {boolean} bIsVisible Specify whether to display the control.
2231
2230
  * @param {boolean} bCurrentState If true, add the current control only to the current rendered shell state.
2232
2231
  * Once the user navigates to another app or back to the Home page, this control will be removed.
2233
- * @param {string[]} aStates (only valid if bCurrentState is set to false) -
2232
+ * @param {string[]} vStates (only valid if bCurrentState is set to false) -
2234
2233
  * list of the sap.ushell.renderer.Renderer.LaunchpadState in which to add the control.
2235
2234
  * @see LaunchpadState
2236
2235
  * If no launchpad state is provided the content is added in all states.
@@ -2238,15 +2237,17 @@ sap.ui.define([
2238
2237
  * @since 1.30
2239
2238
  * @private
2240
2239
  */
2241
- Renderer.prototype.addHeaderEndItem = function (controlType, oControlProperties, bIsVisible, bCurrentState, aStates) {
2240
+ Renderer.prototype.addHeaderEndItem = function (controlType, oControlProperties, bIsVisible, bCurrentState, vStates) {
2242
2241
  // in order to support deprecation of the never used argument: 'controlType' , we'll need to check whether it was passed to
2243
2242
  // the function by checking the types of the first two arguments
2244
2243
  if (typeof (arguments[0]) === "object" && typeof (arguments[1]) === "boolean") {
2245
2244
  oControlProperties = arguments[0];
2246
2245
  bIsVisible = arguments[1];
2247
2246
  bCurrentState = arguments[2];
2248
- aStates = arguments[3];
2247
+ vStates = arguments[3];
2249
2248
  }
2249
+ const aStates = this._sanitizeStates(vStates);
2250
+
2250
2251
  var oItem = this.createItem(oControlProperties, bCurrentState, function (oProperties) {
2251
2252
  return new ShellHeadItem(oProperties);
2252
2253
  });
@@ -2404,7 +2405,10 @@ sap.ui.define([
2404
2405
  * @private
2405
2406
  */
2406
2407
  Renderer.prototype.setLeftPaneVisibility = function (sLaunchpadState, bVisible) {
2407
- this.oShellModel.setLeftPaneVisibility(bVisible, false, [sLaunchpadState]);
2408
+ if (!sLaunchpadState) {
2409
+ sLaunchpadState = this.LaunchpadState.Home;
2410
+ }
2411
+ StateManager.updateBaseStates([sLaunchpadState], "sidePane.visible", Operation.Set, bVisible);
2408
2412
  };
2409
2413
 
2410
2414
  /**
@@ -2416,11 +2420,19 @@ sap.ui.define([
2416
2420
  * @private
2417
2421
  */
2418
2422
  Renderer.prototype.showToolArea = function (sLaunchpadState, bVisible) {
2419
- this.oShellModel.showShellItem("/toolAreaVisible", sLaunchpadState, bVisible);
2423
+ if (!sLaunchpadState) {
2424
+ sLaunchpadState = this.LaunchpadState.Home;
2425
+ }
2426
+ StateManager.updateBaseStates([sLaunchpadState], "toolArea.visible", Operation.Set, bVisible);
2420
2427
  };
2421
2428
 
2429
+ /**
2430
+ * Hides the header
2431
+ * @param {boolean} bHiding Whether to hide the header
2432
+ * @deprecated since 1.120. Functionality was discontinued.
2433
+ */
2422
2434
  Renderer.prototype.setHeaderHiding = function (bHiding) {
2423
- return this.oShellModel.setHeaderHiding(bHiding);
2435
+ Log.error("sap.ushell.Renderer.setHeaderHiding: Functionality was discontinued.");
2424
2436
  };
2425
2437
 
2426
2438
  /**
@@ -2451,7 +2463,7 @@ sap.ui.define([
2451
2463
  * @private
2452
2464
  */
2453
2465
  Renderer.prototype.setFloatingContainerContent = function (oControl, bCurrentState, aStates) {
2454
- this.shellCtrl.setFloatingContainerContent("floatingContainerContent", [oControl.getId()], bCurrentState, aStates);
2466
+ this._updateItemStates([oControl.getId()], bCurrentState, aStates, "floatingContainer.items", Operation.Add);
2455
2467
  };
2456
2468
 
2457
2469
  /**
@@ -2524,13 +2536,15 @@ sap.ui.define([
2524
2536
 
2525
2537
  /*---------------Conditional----------------*/
2526
2538
 
2527
- Renderer.prototype.createTriggers = function (aTriggers, bCurrentState, aStates) {
2528
- this.oShellModel.createTriggers(aTriggers, bCurrentState, aStates);
2539
+ Renderer.prototype.createTriggers = function (aTriggers, bCurrentState, vStates) {
2540
+ Log.error("'createTriggers' was discontinued.");
2529
2541
  };
2530
2542
 
2531
2543
  /*---------------Generic--------------------*/
2532
2544
 
2533
- Renderer.prototype.convertButtonsToActions = function (aIds, bCurrentState, aStates) {
2545
+ Renderer.prototype.convertButtonsToActions = function (aIds, bCurrentState, vStates) {
2546
+ const aStates = this._sanitizeStates(vStates);
2547
+
2534
2548
  var oProperties = {};
2535
2549
  var that = this;
2536
2550
  aIds.forEach(function (sId) {
@@ -2551,40 +2565,42 @@ sap.ui.define([
2551
2565
 
2552
2566
  Renderer.prototype.createItem = function (oControlProperties, bCurrentState, fnCreateItem) {
2553
2567
  // create the object
2554
- var oItem;
2568
+ var oControl;
2555
2569
  if (oControlProperties && oControlProperties.id) {
2556
- oItem = Element.getElementById(oControlProperties.id);
2570
+ oControl = Element.getElementById(oControlProperties.id);
2557
2571
  }
2558
- if (!oItem) {
2559
- oItem = fnCreateItem(oControlProperties);
2560
- if (bCurrentState) {
2561
- this.oShellModel.addElementToManagedQueue(oItem);
2562
- }
2572
+ if (!oControl) {
2573
+ oControl = fnCreateItem(oControlProperties);
2574
+ StateManager.addManagedControl(oControl.getId(), !bCurrentState);
2563
2575
  }
2564
2576
 
2565
- return oItem;
2577
+ return oControl;
2566
2578
  };
2567
2579
 
2568
2580
  /*------------Custom State Entry------------------------------*/
2569
2581
 
2582
+ /**
2583
+ * @deprecated since 1.120 Deprecated without successor.
2584
+ * @private
2585
+ */
2570
2586
  Renderer.prototype.addEntryInShellStates = function (sName, entrySuffix, fnAdd, fnRemove, oStateConfiguration) {
2571
- this.oShellModel.addEntryInShellStates(sName, entrySuffix, fnAdd, fnRemove, oStateConfiguration);
2587
+ Log.error("'addEntryInShellStates' was deprecated and discontinued.");
2572
2588
  };
2573
2589
 
2574
- Renderer.prototype.removeCustomItems = function (sStateEntry, aIds, bCurrentState, aStates) {
2575
- if (typeof aIds === "string") {
2576
- this.oShellModel.removeCustomItems(sStateEntry, [aIds], bCurrentState, aStates);
2577
- } else {
2578
- this.oShellModel.removeCustomItems(sStateEntry, aIds, bCurrentState, aStates);
2579
- }
2590
+ /**
2591
+ * @deprecated since 1.120 Deprecated without successor.
2592
+ * @private
2593
+ */
2594
+ Renderer.prototype.removeCustomItems = function (sStateEntry, vIds, bCurrentState, vStates) {
2595
+ Log.error("'removeCustomItems' was deprecated and discontinued.");
2580
2596
  };
2581
2597
 
2582
- Renderer.prototype.addCustomItems = function (sStateEntry, aIds, bCurrentState, aStates) {
2583
- if (typeof aIds === "string") {
2584
- this.oShellModel.addCustomItems(sStateEntry, [aIds], bCurrentState, aStates);
2585
- } else {
2586
- this.oShellModel.addCustomItems(sStateEntry, aIds, bCurrentState, aStates);
2587
- }
2598
+ /**
2599
+ * @deprecated since 1.120 Deprecated without successor.
2600
+ * @private
2601
+ */
2602
+ Renderer.prototype.addCustomItems = function (sStateEntry, vIds, bCurrentState, vStates) {
2603
+ Log.error("'addCustomItems' was deprecated and discontinued.");
2588
2604
  };
2589
2605
 
2590
2606
  /**
@@ -2753,11 +2769,12 @@ sap.ui.define([
2753
2769
  * @private
2754
2770
  * @since 1.108.0
2755
2771
  */
2756
- Renderer.prototype.destroyButton = function (aIds) {
2757
- if (!aIds) {
2772
+ Renderer.prototype.destroyButton = function (vIds) {
2773
+ if (!vIds) {
2758
2774
  return;
2759
2775
  }
2760
- aIds = typeof aIds === "string" ? [aIds] : aIds;
2776
+ const aIds = Array.isArray(vIds) ? vIds : [vIds];
2777
+
2761
2778
  aIds.forEach(function (sId) {
2762
2779
  var oButton = Element.getElementById(sId);
2763
2780
  if (oButton) {