@sapui5/sap.ushell 1.126.1 → 1.127.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (404) hide show
  1. package/package.json +1 -1
  2. package/src/main/js/sap/ushell/.library +1 -1
  3. package/src/main/js/sap/ushell/Fiori20Adapter.js +1 -1
  4. package/src/main/js/sap/ushell/Fiori20AdapterTest.js +1 -1
  5. package/src/main/js/sap/ushell/NWBCInterface.js +1 -1
  6. package/src/main/js/sap/ushell/SessionHandler.js +2 -2
  7. package/src/main/js/sap/ushell/TechnicalParameters.js +1 -1
  8. package/src/main/js/sap/ushell/URLTemplateProcessor.js +1 -1
  9. package/src/main/js/sap/ushell/Ui5NativeServiceFactory.js +1 -1
  10. package/src/main/js/sap/ushell/Ui5ServiceFactory.js +1 -1
  11. package/src/main/js/sap/ushell/User.js +7 -7
  12. package/src/main/js/sap/ushell/UserActivityLog.js +8 -13
  13. package/src/main/js/sap/ushell/_ApplicationType/urlTemplateResolution.js +10 -3
  14. package/src/main/js/sap/ushell/_Config/utils.js +18 -0
  15. package/src/main/js/sap/ushell/_URLTemplateProcessor/DefinitionParameterSetBuilder.js +1 -1
  16. package/src/main/js/sap/ushell/_URLTemplateProcessor/DependencyGraph.js +1 -1
  17. package/src/main/js/sap/ushell/_URLTemplateProcessor/Functions.js +1 -1
  18. package/src/main/js/sap/ushell/_URLTemplateProcessor/Resolvers.js +1 -1
  19. package/src/main/js/sap/ushell/_URLTemplateProcessor/TemplateParameterParser.js +1 -1
  20. package/src/main/js/sap/ushell/_URLTemplateProcessor/utils.js +1 -1
  21. package/src/main/js/sap/ushell/adapters/cdm/ClientSideTargetResolutionAdapter.js +1 -1
  22. package/src/main/js/sap/ushell/adapters/cdm/CommonDataModelAdapter.js +1 -1
  23. package/src/main/js/sap/ushell/adapters/cdm/ConfigurationDefaultsAdapter.js +1 -1
  24. package/src/main/js/sap/ushell/adapters/cdm/ContainerAdapter.js +28 -9
  25. package/src/main/js/sap/ushell/adapters/cdm/LaunchPageAdapter.js +1 -1
  26. package/src/main/js/sap/ushell/adapters/cdm/PagesCommonDataModelAdapter.js +4 -3
  27. package/src/main/js/sap/ushell/adapters/cdm/PersonalizationAdapter.js +1 -1
  28. package/src/main/js/sap/ushell/adapters/cdm/PersonalizationV2Adapter.js +1 -1
  29. package/src/main/js/sap/ushell/adapters/cdm/Ui5ComponentLoaderAdapter.js +1 -1
  30. package/src/main/js/sap/ushell/adapters/cdm/_LaunchPage/modifyHome.js +1 -1
  31. package/src/main/js/sap/ushell/adapters/cdm/_LaunchPage/readCatalogs.js +1 -1
  32. package/src/main/js/sap/ushell/adapters/cdm/_LaunchPage/readHome.js +1 -1
  33. package/src/main/js/sap/ushell/adapters/cdm/_LaunchPage/uri.transform.js +1 -1
  34. package/src/main/js/sap/ushell/adapters/cdm/util/AppForInbound.js +1 -1
  35. package/src/main/js/sap/ushell/adapters/cdm/util/cdmSiteUtils.js +1 -1
  36. package/src/main/js/sap/ushell/adapters/cdm/v3/AdapterBase.js +1 -1
  37. package/src/main/js/sap/ushell/adapters/cdm/v3/FlpLaunchPageAdapter.js +1 -1
  38. package/src/main/js/sap/ushell/adapters/cdm/v3/LaunchPageAdapter.js +1 -1
  39. package/src/main/js/sap/ushell/adapters/cdm/v3/StaticGroupsAdapter.js +1 -1
  40. package/src/main/js/sap/ushell/adapters/cdm/v3/_LaunchPage/readApplications.js +1 -1
  41. package/src/main/js/sap/ushell/adapters/cdm/v3/_LaunchPage/readCatalogs.js +1 -1
  42. package/src/main/js/sap/ushell/adapters/cdm/v3/_LaunchPage/readHome.js +1 -1
  43. package/src/main/js/sap/ushell/adapters/cdm/v3/_LaunchPage/readPages.js +1 -1
  44. package/src/main/js/sap/ushell/adapters/cdm/v3/_LaunchPage/readUtils.js +1 -1
  45. package/src/main/js/sap/ushell/adapters/cdm/v3/_LaunchPage/readVisualizations.js +1 -1
  46. package/src/main/js/sap/ushell/adapters/cdm/v3/utilsCdm.js +6 -1
  47. package/src/main/js/sap/ushell/adapters/cep/NavTargetResolutionAdapter.js +1 -1
  48. package/src/main/js/sap/ushell/adapters/cep/NavTargetResolutionInternalAdapter.js +1 -1
  49. package/src/main/js/sap/ushell/adapters/cep/SearchCEPAdapter.js +1 -1
  50. package/src/main/js/sap/ushell/adapters/cflp/UserDefaultParameterPersistenceAdapter.js +1 -1
  51. package/src/main/js/sap/ushell/adapters/local/AdapterContainer.js +1 -1
  52. package/src/main/js/sap/ushell/adapters/local/AppStateAdapter.js +1 -1
  53. package/src/main/js/sap/ushell/adapters/local/ClientSideTargetResolutionAdapter.js +1 -1
  54. package/src/main/js/sap/ushell/adapters/local/ContainerAdapter.js +1 -1
  55. package/src/main/js/sap/ushell/adapters/local/FlpLaunchPageAdapter.js +1 -1
  56. package/src/main/js/sap/ushell/adapters/local/LaunchPageAdapter.js +1 -1
  57. package/src/main/js/sap/ushell/adapters/local/NavTargetResolutionAdapter.js +1 -1
  58. package/src/main/js/sap/ushell/adapters/local/NavTargetResolutionInternalAdapter.js +1 -1
  59. package/src/main/js/sap/ushell/adapters/local/PageBuildingAdapter.js +1 -1
  60. package/src/main/js/sap/ushell/adapters/local/PagePersistenceAdapter.js +1 -1
  61. package/src/main/js/sap/ushell/adapters/local/PersonalizationAdapter.js +1 -1
  62. package/src/main/js/sap/ushell/adapters/local/PersonalizationV2Adapter.js +1 -1
  63. package/src/main/js/sap/ushell/adapters/local/SearchAdapter.js +1 -1
  64. package/src/main/js/sap/ushell/adapters/local/SearchCEPAdapter.js +1 -1
  65. package/src/main/js/sap/ushell/adapters/local/SupportTicketAdapter.js +1 -1
  66. package/src/main/js/sap/ushell/adapters/local/Ui5ComponentLoaderAdapter.js +1 -1
  67. package/src/main/js/sap/ushell/adapters/local/UserDefaultParameterPersistenceAdapter.js +1 -1
  68. package/src/main/js/sap/ushell/adapters/local/UserInfoAdapter.js +1 -1
  69. package/src/main/js/sap/ushell/appRuntime/neo/AppInfoService.js +1 -0
  70. package/src/main/js/sap/ushell/appRuntime/neo/AppRuntimeNeo.js +1 -0
  71. package/src/main/js/sap/ushell/appRuntime/neo/ProxyAppUtils.js +1 -0
  72. package/src/main/js/sap/ushell/appRuntime/ui5/AppRuntime.js +6 -0
  73. package/src/main/js/sap/ushell/appRuntime/ui5/renderers/fiori2/Renderer.js +19 -0
  74. package/src/main/js/sap/ushell/appRuntime/ui5/renderers/fiori2/RendererExtensions.js +1 -1
  75. package/src/main/js/sap/ushell/appRuntime/ui5/services/AppConfiguration.js +1 -1
  76. package/src/main/js/sap/ushell/appRuntime/ui5/services/AppLifeCycle.js +51 -0
  77. package/src/main/js/sap/ushell/appRuntime/ui5/services/AppState.js +1 -1
  78. package/src/main/js/sap/ushell/appRuntime/ui5/services/Bookmark.js +1 -1
  79. package/src/main/js/sap/ushell/appRuntime/ui5/services/BookmarkV2.js +6 -6
  80. package/src/main/js/sap/ushell/appRuntime/ui5/services/CommonDataModel.js +1 -1
  81. package/src/main/js/sap/ushell/appRuntime/ui5/services/Container.js +1 -1
  82. package/src/main/js/sap/ushell/appRuntime/ui5/services/CrossApplicationNavigation.js +1 -1
  83. package/src/main/js/sap/ushell/appRuntime/ui5/services/Extension/Item.js +1 -1
  84. package/src/main/js/sap/ushell/appRuntime/ui5/services/Extension.js +1 -1
  85. package/src/main/js/sap/ushell/appRuntime/ui5/services/FrameBoundExtension.js +1 -1
  86. package/src/main/js/sap/ushell/appRuntime/ui5/services/LaunchPage.js +1 -1
  87. package/src/main/js/sap/ushell/appRuntime/ui5/services/MessageBroker.js +1 -1
  88. package/src/main/js/sap/ushell/appRuntime/ui5/services/NavTargetResolution.js +1 -1
  89. package/src/main/js/sap/ushell/appRuntime/ui5/services/NavTargetResolutionInternal.js +1 -1
  90. package/src/main/js/sap/ushell/appRuntime/ui5/services/Navigation.js +1 -1
  91. package/src/main/js/sap/ushell/appRuntime/ui5/services/ReferenceResolver.js +1 -1
  92. package/src/main/js/sap/ushell/appRuntime/ui5/services/ShellNavigation.js +1 -1
  93. package/src/main/js/sap/ushell/appRuntime/ui5/services/ShellNavigationInternal.js +1 -1
  94. package/src/main/js/sap/ushell/appRuntime/ui5/services/ShellUIService.js +1 -1
  95. package/src/main/js/sap/ushell/appRuntime/ui5/services/UserInfo.js +1 -1
  96. package/src/main/js/sap/ushell/appRuntime/ui5/services/adapters/Ui5ComponentLoaderAdapter.js +1 -1
  97. package/src/main/js/sap/ushell/bootstrap/_SchedulingAgent/FLPScheduler.js +47 -16
  98. package/src/main/js/sap/ushell/bootstrap/_SchedulingAgent/StepConfiguration.json +10 -3
  99. package/src/main/js/sap/ushell/bootstrap/_SchedulingAgent/logger.js +1 -1
  100. package/src/main/js/sap/ushell/bootstrap/_SchedulingAgent/state.js +1 -1
  101. package/src/main/js/sap/ushell/bootstrap/common/common.configure.ui5.js +9 -0
  102. package/src/main/js/sap/ushell/bootstrap/common/common.configure.ui5datetimeformat.js +1 -1
  103. package/src/main/js/sap/ushell/bootstrap/common/common.create.configcontract.core.js +13 -33
  104. package/src/main/js/sap/ushell/bootstrap/sandbox2.js +1 -1
  105. package/src/main/js/sap/ushell/components/_HeaderManager/ShellHeader.controller.js +135 -8
  106. package/src/main/js/sap/ushell/components/_HomepageManager/DashboardLoadingManager.js +1 -1
  107. package/src/main/js/sap/ushell/components/_HomepageManager/PagingManager.js +1 -1
  108. package/src/main/js/sap/ushell/components/_HomepageManager/PersistentPageOperationAdapter.js +1 -1
  109. package/src/main/js/sap/ushell/components/_HomepageManager/TransientPageOperationAdapter.js +1 -1
  110. package/src/main/js/sap/ushell/components/appfinder/AppFinder.controller.js +0 -6
  111. package/src/main/js/sap/ushell/components/appfinder/Component.js +1 -1
  112. package/src/main/js/sap/ushell/components/appfinder/manifest.json +1 -1
  113. package/src/main/js/sap/ushell/components/applicationIntegration/AppLifeCycle.js +74 -72
  114. package/src/main/js/sap/ushell/components/applicationIntegration/application/Application.js +1 -1
  115. package/src/main/js/sap/ushell/components/applicationIntegration/application/BlueBoxHandler.js +1 -1
  116. package/src/main/js/sap/ushell/components/applicationIntegration/application/PostMessageAPI.js +35 -18
  117. package/src/main/js/sap/ushell/components/applicationIntegration/configuration/AppMeta.js +42 -27
  118. package/src/main/js/sap/ushell/components/applicationIntegration/relatedServices/RelatedServices.js +1 -1
  119. package/src/main/js/sap/ushell/components/container/ApplicationContainer.js +1 -1
  120. package/src/main/js/sap/ushell/components/contentFinder/Component.js +19 -12
  121. package/src/main/js/sap/ushell/components/contentFinder/controller/AppSearch.controller.js +24 -5
  122. package/src/main/js/sap/ushell/components/contentFinder/controller/ContentFinderDialog.controller.js +1 -1
  123. package/src/main/js/sap/ushell/components/contentFinder/controller/WidgetGallery.controller.js +1 -1
  124. package/src/main/js/sap/ushell/components/contentFinder/manifest.json +1 -1
  125. package/src/main/js/sap/ushell/components/contentFinder/model/formatter.js +47 -7
  126. package/src/main/js/sap/ushell/components/contentFinder/view/AppSearch.view.xml +7 -6
  127. package/src/main/js/sap/ushell/components/contentFinder/view/AppSearchBox.fragment.xml +5 -4
  128. package/src/main/js/sap/ushell/components/contentFinder/view/AppSearchCategoryTree.view.xml +34 -22
  129. package/src/main/js/sap/ushell/components/contentFinderStandalone/Component.js +7 -6
  130. package/src/main/js/sap/ushell/components/contentFinderStandalone/controller/ContentFinderStandalone.controller.js +3 -1
  131. package/src/main/js/sap/ushell/components/contentFinderStandalone/manifest.json +1 -1
  132. package/src/main/js/sap/ushell/components/contentFinderStandalone/manifestAppSearch.json +1 -1
  133. package/src/main/js/sap/ushell/components/factsheet/Component.js +1 -1
  134. package/src/main/js/sap/ushell/components/homepage/ActionMode.js +1 -1
  135. package/src/main/js/sap/ushell/components/homepage/Component.js +1 -1
  136. package/src/main/js/sap/ushell/components/homepage/DashboardContent.view.js +1 -1
  137. package/src/main/js/sap/ushell/components/homepage/DashboardGroupsBox.js +29 -24
  138. package/src/main/js/sap/ushell/components/homepage/DashboardUIActions.js +1 -1
  139. package/src/main/js/sap/ushell/components/homepage/manifest.json +1 -1
  140. package/src/main/js/sap/ushell/components/pages/ActionMode.js +1 -1
  141. package/src/main/js/sap/ushell/components/pages/Component.js +10 -3
  142. package/src/main/js/sap/ushell/components/pages/MyHomeImport.js +1 -1
  143. package/src/main/js/sap/ushell/components/pages/controller/PageRuntime.controller.js +26 -5
  144. package/src/main/js/sap/ushell/components/pages/manifest.json +1 -1
  145. package/src/main/js/sap/ushell/components/runtimeSwitcher/Component.js +3 -2
  146. package/src/main/js/sap/ushell/components/runtimeSwitcher/controller/RuntimeSwitcher.controller.js +1 -1
  147. package/src/main/js/sap/ushell/components/runtimeSwitcher/manifest.json +1 -1
  148. package/src/main/js/sap/ushell/components/shell/MenuBar/manifest.json +1 -1
  149. package/src/main/js/sap/ushell/components/shell/NavigationBarMenu/controller/NavigationBarMenu.controller.js +19 -3
  150. package/src/main/js/sap/ushell/components/shell/NavigationBarMenu/manifest.json +1 -1
  151. package/src/main/js/sap/ushell/components/shell/NavigationBarMenu/view/NavigationBarMenu.view.xml +1 -0
  152. package/src/main/js/sap/ushell/components/shell/Notifications/Component.js +24 -22
  153. package/src/main/js/sap/ushell/components/shell/Notifications/Notifications.controller.js +1 -1
  154. package/src/main/js/sap/ushell/components/shell/PostLoadingHeaderEnhancement/Component.js +80 -17
  155. package/src/main/js/sap/ushell/components/shell/ProductSwitch/Component.js +1 -1
  156. package/src/main/js/sap/ushell/components/shell/Search/manifest.json +1 -1
  157. package/src/main/js/sap/ushell/components/shell/SearchCEP/Component.js +1 -1
  158. package/src/main/js/sap/ushell/components/shell/SearchCEP/SearchProviders/FrequentActivityProvider.js +1 -1
  159. package/src/main/js/sap/ushell/components/shell/SearchCEP/SearchProviders/RecentSearchProvider.js +1 -1
  160. package/src/main/js/sap/ushell/components/shell/SearchCEP/SearchProviders/SearchProvider.js +1 -1
  161. package/src/main/js/sap/ushell/components/shell/SearchCEP/SearchProviders/SearchServiceProvider.js +1 -1
  162. package/src/main/js/sap/ushell/components/shell/Settings/Component.js +12 -16
  163. package/src/main/js/sap/ushell/components/shell/Settings/UserSettings.controller.js +9 -4
  164. package/src/main/js/sap/ushell/components/shell/Settings/UserSettings.view.xml +9 -9
  165. package/src/main/js/sap/ushell/components/shell/UserActionsMenu/Component.js +3 -45
  166. package/src/main/js/sap/ushell/components/shell/UserActionsMenu/UserActionsMenu.controller.js +31 -23
  167. package/src/main/js/sap/ushell/components/shell/UserActionsMenu/UserActionsMenuPopover.fragment.xml +7 -2
  168. package/src/main/js/sap/ushell/components/shell/UserImage/Component.js +3 -3
  169. package/src/main/js/sap/ushell/components/tiles/applauncher/StaticTile.controller.js +0 -4
  170. package/src/main/js/sap/ushell/components/tiles/applauncherdynamic/DynamicTile.controller.js +0 -1
  171. package/src/main/js/sap/ushell/components/tiles/indicatorcomparison/ComparisonTile.controller.js +1 -1
  172. package/src/main/js/sap/ushell/components/visualizationOrganizer/Component.js +1 -1
  173. package/src/main/js/sap/ushell/components/workPageBuilder/Component.js +2 -1
  174. package/src/main/js/sap/ushell/components/workPageBuilder/controller/WorkPageBuilder.accessibility.js +1 -1
  175. package/src/main/js/sap/ushell/components/workPageBuilder/controller/WorkPageBuilder.controller.js +1939 -1946
  176. package/src/main/js/sap/ushell/components/workPageBuilder/controls/WorkPage.js +1 -1
  177. package/src/main/js/sap/ushell/components/workPageBuilder/controls/WorkPageButton.js +1 -1
  178. package/src/main/js/sap/ushell/components/workPageBuilder/controls/WorkPageCell.js +1 -1
  179. package/src/main/js/sap/ushell/components/workPageBuilder/controls/WorkPageColumn.js +1 -1
  180. package/src/main/js/sap/ushell/components/workPageBuilder/controls/WorkPageColumnResizer.js +1 -1
  181. package/src/main/js/sap/ushell/components/workPageBuilder/controls/WorkPageRow.js +1 -1
  182. package/src/main/js/sap/ushell/components/workPageBuilder/manifest.json +1 -1
  183. package/src/main/js/sap/ushell/components/workPageRuntime/Component.js +3 -2
  184. package/src/main/js/sap/ushell/components/workPageRuntime/controller/WorkPageRuntime.controller.js +1 -1
  185. package/src/main/js/sap/ushell/components/workPageRuntime/manifest.json +1 -1
  186. package/src/main/js/sap/ushell/designtime/ApplicationContainer.designtime.js +1 -1
  187. package/src/main/js/sap/ushell/library.js +1 -1
  188. package/src/main/js/sap/ushell/navigationMode.js +1 -1
  189. package/src/main/js/sap/ushell/performance/ShellAnalytics.js +15 -12
  190. package/src/main/js/sap/ushell/performance/StatisticalRecord.js +1 -1
  191. package/src/main/js/sap/ushell/plugins/appwarmup/Component.js +1 -1
  192. package/src/main/js/sap/ushell/renderer/AccessKeysHandler.js +31 -9
  193. package/src/main/js/sap/ushell/renderer/Renderer.js +304 -287
  194. package/src/main/js/sap/ushell/renderer/Shell.controller.js +99 -101
  195. package/src/main/js/sap/ushell/renderer/Shell.view.js +110 -89
  196. package/src/main/js/sap/ushell/renderer/allMyApps/AllMyApps.controller.js +29 -15
  197. package/src/main/js/sap/ushell/renderer/allMyApps/AllMyApps.view.xml +2 -2
  198. package/src/main/js/sap/ushell/renderer/resources/resources.properties +2 -0
  199. package/src/main/js/sap/ushell/renderer/search/searchComponent/manifest.json +1 -1
  200. package/src/main/js/sap/ushell/renderers/fiori2/History.js +1 -0
  201. package/src/main/js/sap/ushell/renderers/fiori2/LogonFrameProvider.js +1 -0
  202. package/src/main/js/sap/ushell/renderers/fiori2/Shell.view.js +108 -87
  203. package/src/main/js/sap/ushell/renderers/fiori2/allMyApps/AllMyAppsManager.js +1 -0
  204. package/src/main/js/sap/ushell/services/AppLifeCycle.js +1 -1
  205. package/src/main/js/sap/ushell/services/AppState.js +1 -1
  206. package/src/main/js/sap/ushell/services/Bookmark.js +1 -1
  207. package/src/main/js/sap/ushell/services/BookmarkV2.js +1 -1
  208. package/src/main/js/sap/ushell/services/ClientSideTargetResolution.js +1 -1
  209. package/src/main/js/sap/ushell/services/CommonDataModel.js +2 -15
  210. package/src/main/js/sap/ushell/services/Configuration.js +1 -1
  211. package/src/main/js/sap/ushell/services/ConfigurationDefaults.js +1 -1
  212. package/src/main/js/sap/ushell/services/ContentExtensionAdapterFactory.js +1 -1
  213. package/src/main/js/sap/ushell/services/CrossApplicationNavigation.js +1 -1
  214. package/src/main/js/sap/ushell/services/DarkModeSupport.js +11 -5
  215. package/src/main/js/sap/ushell/services/Extension/Item.js +4 -4
  216. package/src/main/js/sap/ushell/services/Extension.js +36 -2
  217. package/src/main/js/sap/ushell/services/FlpLaunchPage.js +1 -1
  218. package/src/main/js/sap/ushell/services/FrameBoundExtension/FloatingContainer.js +1 -1
  219. package/src/main/js/sap/ushell/services/FrameBoundExtension/Footer.js +1 -1
  220. package/src/main/js/sap/ushell/services/FrameBoundExtension/Item.js +4 -4
  221. package/src/main/js/sap/ushell/services/FrameBoundExtension/SidePane.js +18 -2
  222. package/src/main/js/sap/ushell/services/FrameBoundExtension/ToolArea.js +20 -2
  223. package/src/main/js/sap/ushell/services/FrameBoundExtension.js +96 -2
  224. package/src/main/js/sap/ushell/services/LaunchPage.js +1 -1
  225. package/src/main/js/sap/ushell/services/Menu.js +1 -1
  226. package/src/main/js/sap/ushell/services/Message.js +1 -1
  227. package/src/main/js/sap/ushell/services/MessageBroker.js +1 -1
  228. package/src/main/js/sap/ushell/services/MessageInternal.js +13 -8
  229. package/src/main/js/sap/ushell/services/Navigation/compatibility.js +1 -1
  230. package/src/main/js/sap/ushell/services/Navigation/utils.js +1 -1
  231. package/src/main/js/sap/ushell/services/Navigation.js +1 -1
  232. package/src/main/js/sap/ushell/services/NavigationDataProvider.js +1 -1
  233. package/src/main/js/sap/ushell/services/PageBuilding.js +1 -1
  234. package/src/main/js/sap/ushell/services/PagePersistence.js +1 -1
  235. package/src/main/js/sap/ushell/services/PageReferencing.js +1 -1
  236. package/src/main/js/sap/ushell/services/Pages.js +4 -3
  237. package/src/main/js/sap/ushell/services/Personalization.js +1 -1
  238. package/src/main/js/sap/ushell/services/PersonalizationV2.js +1 -1
  239. package/src/main/js/sap/ushell/services/PluginManager.js +1 -1
  240. package/src/main/js/sap/ushell/services/ReferenceResolver.js +1 -1
  241. package/src/main/js/sap/ushell/services/Search.js +1 -1
  242. package/src/main/js/sap/ushell/services/SearchCEP.js +1 -1
  243. package/src/main/js/sap/ushell/services/SearchableContent.js +6 -5
  244. package/src/main/js/sap/ushell/services/ShellNavigation.js +1 -1
  245. package/src/main/js/sap/ushell/services/SmartNavigation.js +1 -1
  246. package/src/main/js/sap/ushell/services/SpaceContent.js +1 -1
  247. package/src/main/js/sap/ushell/services/UITracer.js +1 -1
  248. package/src/main/js/sap/ushell/services/URLParsing.js +16 -0
  249. package/src/main/js/sap/ushell/services/URLShortening.js +1 -1
  250. package/src/main/js/sap/ushell/services/URLTemplate.js +1 -1
  251. package/src/main/js/sap/ushell/services/Ui5ComponentLoader.js +3 -3
  252. package/src/main/js/sap/ushell/services/UserDefaultParameterPersistence.js +1 -1
  253. package/src/main/js/sap/ushell/services/UserDefaultParameters.js +1 -1
  254. package/src/main/js/sap/ushell/services/UserInfo.js +1 -1
  255. package/src/main/js/sap/ushell/services/UserRecents.js +1 -1
  256. package/src/main/js/sap/ushell/services/VisualizationDataProvider.js +1 -1
  257. package/src/main/js/sap/ushell/services/VisualizationInstantiation.js +1 -1
  258. package/src/main/js/sap/ushell/services/_AppState/AppStatePersistencyMethod.js +1 -1
  259. package/src/main/js/sap/ushell/services/_ClientSideTargetResolution/Formatter.js +1 -1
  260. package/src/main/js/sap/ushell/services/_ClientSideTargetResolution/InboundIndex.js +1 -1
  261. package/src/main/js/sap/ushell/services/_ClientSideTargetResolution/InboundProvider.js +1 -1
  262. package/src/main/js/sap/ushell/services/_ClientSideTargetResolution/PrelaunchOperations.js +1 -1
  263. package/src/main/js/sap/ushell/services/_ClientSideTargetResolution/Search.js +1 -1
  264. package/src/main/js/sap/ushell/services/_ClientSideTargetResolution/StagedLogger.js +1 -1
  265. package/src/main/js/sap/ushell/services/_ClientSideTargetResolution/SystemContext.js +1 -1
  266. package/src/main/js/sap/ushell/services/_ClientSideTargetResolution/Utils.js +1 -1
  267. package/src/main/js/sap/ushell/services/_ClientSideTargetResolution/VirtualInbounds.js +1 -1
  268. package/src/main/js/sap/ushell/services/_ClientSideTargetResolution/XAppStateProcessing.js +1 -1
  269. package/src/main/js/sap/ushell/services/_CommonDataModel/SiteConverter.js +1 -1
  270. package/src/main/js/sap/ushell/services/_CommonDataModel/vizTypeDefaults/VizTypeDefaults.js +1 -1
  271. package/src/main/js/sap/ushell/services/_ContentExtensionAdapterFactory/ContentExtensionAdapterConfig.js +2 -2
  272. package/src/main/js/sap/ushell/services/_ContentExtensionAdapterFactory/FeaturedGroupConfig.js +1 -1
  273. package/src/main/js/sap/ushell/services/_CrossApplicationNavigation/utils.js +1 -1
  274. package/src/main/js/sap/ushell/services/_MessageBroker/MessageBrokerEngine.js +1 -1
  275. package/src/main/js/sap/ushell/services/_PageReferencing/PageReferencer.js +1 -1
  276. package/src/main/js/sap/ushell/services/_Personalization/VariantSetAdapter.js +1 -0
  277. package/src/main/js/sap/ushell/services/_Personalization/WindowAdapter.js +1 -0
  278. package/src/main/js/sap/ushell/services/_Personalization/WindowAdapterContainer.js +1 -0
  279. package/src/main/js/sap/ushell/services/_Personalization/constants.js +1 -0
  280. package/src/main/js/sap/ushell/services/_Personalization/constants.private.js +1 -0
  281. package/src/main/js/sap/ushell/services/_Personalization/utils.js +1 -0
  282. package/src/main/js/sap/ushell/services/_PluginManager/Extensions.js +1 -1
  283. package/src/main/js/sap/ushell/services/_PluginManager/HeaderExtensions.js +2 -2
  284. package/src/main/js/sap/ushell/services/_PluginManager/MenuExtensions.js +1 -1
  285. package/src/main/js/sap/ushell/services/_Ui5ComponentLoader/utils.js +1 -1
  286. package/src/main/js/sap/ushell/state/BaseState.js +79 -0
  287. package/src/main/js/sap/ushell/state/ControlManager.js +209 -0
  288. package/src/main/js/sap/ushell/state/CurrentState.js +180 -0
  289. package/src/main/js/sap/ushell/state/KeepAlive.js +75 -0
  290. package/src/main/js/sap/ushell/state/ShellModel.js +112 -0
  291. package/src/main/js/sap/ushell/state/StateManager/LaunchpadState.js +40 -0
  292. package/src/main/js/sap/ushell/state/StateManager/Operation.js +42 -0
  293. package/src/main/js/sap/ushell/state/StateManager/ShellMode.js +86 -0
  294. package/src/main/js/sap/ushell/state/StateManager.js +648 -0
  295. package/src/main/js/sap/ushell/state/StateRules.js +295 -0
  296. package/src/main/js/sap/ushell/state/StrategyFactory/DefaultStrategy.js +74 -0
  297. package/src/main/js/sap/ushell/state/StrategyFactory/FloatingActionsStrategy.js +78 -0
  298. package/src/main/js/sap/ushell/state/StrategyFactory/HeadEndItemsStrategy.js +130 -0
  299. package/src/main/js/sap/ushell/state/StrategyFactory/HeadItemsStrategy.js +104 -0
  300. package/src/main/js/sap/ushell/state/StrategyFactory/SidePaneStrategy.js +78 -0
  301. package/src/main/js/sap/ushell/state/StrategyFactory/SubHeaderStrategy.js +78 -0
  302. package/src/main/js/sap/ushell/state/StrategyFactory/UserActionsStrategy.js +60 -0
  303. package/src/main/js/sap/ushell/state/StrategyFactory.js +168 -0
  304. package/src/main/js/sap/ushell/support/plugins/flpConfig/FlpConfigurationPlugin.js +1 -1
  305. package/src/main/js/sap/ushell/themes/base/UserSettings.less +1 -5
  306. package/src/main/js/sap/ushell/themes/base/WorkPageCell.less +45 -49
  307. package/src/main/js/sap/ushell/themes/sap_belize_base/UserSettings.less +1 -5
  308. package/src/main/js/sap/ushell/themes/sap_bluecrystal_base/UserSettings.less +1 -5
  309. package/src/main/js/sap/ushell/themes/sap_hcb/base_ActionMode.less +107 -0
  310. package/src/main/js/sap/ushell/themes/sap_hcb/base_AddBookmarkButton.less +37 -0
  311. package/src/main/js/sap/ushell/themes/sap_hcb/base_AnchorItem.less +81 -0
  312. package/src/main/js/sap/ushell/themes/sap_hcb/base_AnchorNavigationBar.less +86 -0
  313. package/src/main/js/sap/ushell/themes/sap_hcb/base_AppearanceView.less +213 -0
  314. package/src/main/js/sap/ushell/themes/sap_hcb/base_ApplicationContainer.less +37 -0
  315. package/src/main/js/sap/ushell/themes/sap_hcb/base_Catalog.less +387 -0
  316. package/src/main/js/sap/ushell/themes/sap_hcb/base_ContactSupport.less +12 -0
  317. package/src/main/js/sap/ushell/themes/sap_hcb/base_ContentFinder.less +26 -0
  318. package/src/main/js/sap/ushell/themes/sap_hcb/base_CustomGroupHeaderListItem.less +10 -0
  319. package/src/main/js/sap/ushell/themes/sap_hcb/base_Dashboard.less +66 -0
  320. package/src/main/js/sap/ushell/themes/sap_hcb/base_DynamicTile.less +114 -0
  321. package/src/main/js/sap/ushell/themes/sap_hcb/base_Factsheet.less +225 -0
  322. package/src/main/js/sap/ushell/themes/sap_hcb/base_FloatingContainer.less +125 -0
  323. package/src/main/js/sap/ushell/themes/sap_hcb/base_FlpSettings.less +83 -0
  324. package/src/main/js/sap/ushell/themes/sap_hcb/base_GroupList.less +68 -0
  325. package/src/main/js/sap/ushell/themes/sap_hcb/base_GroupListItem.less +54 -0
  326. package/src/main/js/sap/ushell/themes/sap_hcb/base_IconFonts.less +21 -0
  327. package/src/main/js/sap/ushell/themes/sap_hcb/base_ImageTile.less +23 -0
  328. package/src/main/js/sap/ushell/themes/sap_hcb/base_LoadingDialog.less +47 -0
  329. package/src/main/js/sap/ushell/themes/sap_hcb/base_MenuBar.less +23 -0
  330. package/src/main/js/sap/ushell/themes/sap_hcb/base_Notifications.less +135 -0
  331. package/src/main/js/sap/ushell/themes/sap_hcb/base_Page.less +49 -0
  332. package/src/main/js/sap/ushell/themes/sap_hcb/base_PictureTile.less +119 -0
  333. package/src/main/js/sap/ushell/themes/sap_hcb/base_PictureViewer.less +25 -0
  334. package/src/main/js/sap/ushell/themes/sap_hcb/base_PlusTile.less +38 -0
  335. package/src/main/js/sap/ushell/themes/sap_hcb/base_QuickAccess.less +18 -0
  336. package/src/main/js/sap/ushell/themes/sap_hcb/base_RightFloatingContainerItem.less +82 -0
  337. package/src/main/js/sap/ushell/themes/sap_hcb/base_SearchCEP.less +121 -0
  338. package/src/main/js/sap/ushell/themes/sap_hcb/base_SearchFLP.less +10 -0
  339. package/src/main/js/sap/ushell/themes/sap_hcb/base_Section.less +60 -0
  340. package/src/main/js/sap/ushell/themes/sap_hcb/base_ShellAppTitle.less +207 -0
  341. package/src/main/js/sap/ushell/themes/sap_hcb/base_ShellFloatingAction.less +61 -0
  342. package/src/main/js/sap/ushell/themes/sap_hcb/base_ShellFloatingActions.less +14 -0
  343. package/src/main/js/sap/ushell/themes/sap_hcb/base_ShellHeader.less +389 -0
  344. package/src/main/js/sap/ushell/themes/sap_hcb/base_ShellLayout.less +168 -0
  345. package/src/main/js/sap/ushell/themes/sap_hcb/base_SidePane.less +8 -0
  346. package/src/main/js/sap/ushell/themes/sap_hcb/base_StaticTile.less +9 -0
  347. package/src/main/js/sap/ushell/themes/sap_hcb/base_SubHeader.less +3 -0
  348. package/src/main/js/sap/ushell/themes/sap_hcb/base_SysInfoBar.less +164 -0
  349. package/src/main/js/sap/ushell/themes/sap_hcb/base_TargetMappingConfiguration.less +8 -0
  350. package/src/main/js/sap/ushell/themes/sap_hcb/base_Tile.less +223 -0
  351. package/src/main/js/sap/ushell/themes/sap_hcb/base_TileBase.less +152 -0
  352. package/src/main/js/sap/ushell/themes/sap_hcb/base_TileContainer.less +495 -0
  353. package/src/main/js/sap/ushell/themes/sap_hcb/base_TilePlaceholder.less +75 -0
  354. package/src/main/js/sap/ushell/themes/sap_hcb/base_TileState.less +62 -0
  355. package/src/main/js/sap/ushell/themes/sap_hcb/base_ToolAreaItem.less +85 -0
  356. package/src/main/js/sap/ushell/themes/sap_hcb/base_UserActionsMenu.less +23 -0
  357. package/src/main/js/sap/ushell/themes/sap_hcb/base_UserConsentDialog.less +52 -0
  358. package/src/main/js/sap/ushell/themes/sap_hcb/base_UserSettings.less +109 -0
  359. package/src/main/js/sap/ushell/themes/sap_hcb/base_ViewPortContainer.less +28 -0
  360. package/src/main/js/sap/ushell/themes/sap_hcb/base_WorkPage.less +58 -0
  361. package/src/main/js/sap/ushell/themes/sap_hcb/base_WorkPageButton.less +60 -0
  362. package/src/main/js/sap/ushell/themes/sap_hcb/base_WorkPageCell.less +144 -0
  363. package/src/main/js/sap/ushell/themes/sap_hcb/base_WorkPageColumn.less +39 -0
  364. package/src/main/js/sap/ushell/themes/sap_hcb/base_WorkPageColumnResizer.less +128 -0
  365. package/src/main/js/sap/ushell/themes/sap_hcb/base_WorkPageRow.less +987 -0
  366. package/src/main/js/sap/ushell/themes/sap_hcb/base_shared.less +40 -0
  367. package/src/main/js/sap/ushell/themes/sap_hcb/library.source.less +70 -1
  368. package/src/main/js/sap/ushell/ui/ShellHeader.fragment.xml +17 -11
  369. package/src/main/js/sap/ushell/ui/ShellHeader.js +10 -3
  370. package/src/main/js/sap/ushell/ui/cards/FrequentActivitiesExtension.js +0 -4
  371. package/src/main/js/sap/ushell/ui/cards/RecentActivitiesExtension.js +1 -5
  372. package/src/main/js/sap/ushell/ui/footerbar/AddBookmarkButton.js +19 -5
  373. package/src/main/js/sap/ushell/ui/footerbar/ContactSupportDialog.controller.js +9 -3
  374. package/src/main/js/sap/ushell/ui/footerbar/SendAsEmailButton.js +5 -5
  375. package/src/main/js/sap/ushell/ui/launchpad/ExtendedChangeDetection.js +1 -1
  376. package/src/main/js/sap/ushell/ui/launchpad/Section.js +1 -1
  377. package/src/main/js/sap/ushell/ui/launchpad/TileContainer.js +17 -12
  378. package/src/main/js/sap/ushell/ui/launchpad/section/CompactArea.js +1 -1
  379. package/src/main/js/sap/ushell/ui/shell/ShellAppTitle.js +50 -35
  380. package/src/main/js/sap/ushell/ui/shell/ToolAreaItem.js +2 -2
  381. package/src/main/js/sap/ushell/ui/utils.js +1 -1
  382. package/src/main/js/sap/ushell/ui5service/ShellUIService.js +1 -1
  383. package/src/main/js/sap/ushell/ui5service/UserStatus.js +1 -1
  384. package/src/main/js/sap/ushell/utils/UrlParsing.js +22 -0
  385. package/src/main/js/sap/ushell/utils/UrlShortening.js +1 -1
  386. package/src/main/js/sap/ushell/utils/WindowUtils.js +3 -3
  387. package/src/main/js/sap/ushell/utils/workpage/DestinationResolver.js +89 -0
  388. package/src/main/js/sap/ushell/utils/workpage/WorkPageHost.js +51 -47
  389. package/src/main/js/sap/ushell/utils/workpage/WorkPageService.js +32 -1
  390. package/src/main/js/sap/ushell/utils/workpage/WorkPageVizInstantiation.js +1 -1
  391. package/src/main/js/sap/ushell/utils.js +26 -2
  392. package/src/test/js/sap/ushell/bootstrap/sandbox.js +1 -1
  393. package/src/main/js/sap/ushell/bootstrap/common/common.load.ui5theme.js +0 -67
  394. package/src/main/js/sap/ushell/components/HeaderManager.js +0 -547
  395. package/src/main/js/sap/ushell/components/StateHelper.js +0 -70
  396. package/src/main/js/sap/ushell/components/_HeaderManager/AddHeadEndItemsStrategy.js +0 -105
  397. package/src/main/js/sap/ushell/components/_HeaderManager/AddHeadItemsStrategy.js +0 -75
  398. package/src/main/js/sap/ushell/components/_HeaderManager/ControlManager.js +0 -70
  399. package/src/main/js/sap/ushell/components/_HeaderManager/ExtendApplicationPropertyStrategy.js +0 -18
  400. package/src/main/js/sap/ushell/components/_HeaderManager/PropertyStrategiesFactory.js +0 -58
  401. package/src/main/js/sap/ushell/components/_HeaderManager/RemoveItemsStrategy.js +0 -46
  402. package/src/main/js/sap/ushell/components/_HeaderManager/SetHeadPropertyStrategy.js +0 -19
  403. package/src/main/js/sap/ushell/components/applicationIntegration/elements/model.js +0 -1309
  404. package/src/main/js/sap/ushell/components/applicationIntegration/relatedShellElements/RelatedShellElements.js +0 -363
@@ -0,0 +1,209 @@
1
+ // Copyright (c) 2009-2023 SAP SE, All Rights Reserved
2
+
3
+ sap.ui.define([
4
+ "sap/base/util/deepClone",
5
+ "sap/ui/core/Element"
6
+ ], function (
7
+ deepClone,
8
+ Element
9
+ ) {
10
+ "use strict";
11
+
12
+ /**
13
+ * @alias sap.ushell.state.ControlManager
14
+ * @namespace
15
+ * @description This class handles the lifecycle of controls created by the launchpad.
16
+ * The controls are destroyed in sync with the application lifecycle.
17
+ *
18
+ * @since 1.127.0
19
+ * @private
20
+ */
21
+ class ControlManager {
22
+ /**
23
+ * List of all managed controls.
24
+ * @type {sap.ui.core.ID[]}
25
+ */
26
+ #aAllControls = [];
27
+ /**
28
+ * List of all managed controls in the current state.
29
+ * @type {sap.ui.core.ID[]}
30
+ */
31
+ #aCurrentStateControls = [];
32
+ /**
33
+ * List of all managed controls in the base state.
34
+ * @type {sap.ui.core.ID[]}
35
+ */
36
+ #aBaseStateControls = [];
37
+
38
+ /**
39
+ * Adds a control to the list of managed controls.
40
+ * Only controls related to the current state are destroyed.
41
+ * Once a control is added related to the base state, it is not destroyed.
42
+ * @param {sap.ui.core.ID} sId The ID of the control.
43
+ * @param {boolean} bCurrentState Indicates whether the control is in the current state.
44
+ * @param {sap.ushell.state.StateManager.LaunchpadState} sCurrentLaunchpadState The current launchpad state.
45
+ *
46
+ * @since 1.127.0
47
+ * @private
48
+ * @alias sap.ushell.state.ControlManager#addManagedControl
49
+ */
50
+ addManagedControl (sId, bCurrentState, sCurrentLaunchpadState) {
51
+ if (!this.#aAllControls.includes(sId)) {
52
+ this.#aAllControls.push(sId);
53
+ }
54
+
55
+ // any control that is created while the state is home should is considered as base state control
56
+ if (sCurrentLaunchpadState === "home") {
57
+ bCurrentState = false;
58
+ }
59
+
60
+ if (bCurrentState && !this.#aCurrentStateControls.includes(sId)) {
61
+ this.#aCurrentStateControls.push(sId);
62
+ } else if (!bCurrentState && !this.#aBaseStateControls.includes(sId)) {
63
+ this.#aBaseStateControls.push(sId);
64
+ }
65
+ }
66
+
67
+ /**
68
+ * Destroys all controls related to the current state.
69
+ *
70
+ * @since 1.127.0
71
+ * @private
72
+ * @alias sap.ushell.state.ControlManager#destroyManagedControls
73
+ */
74
+ destroyManagedControls () {
75
+ this.#aCurrentStateControls.forEach((sId) => {
76
+ if (this.#aBaseStateControls.includes(sId)) {
77
+ return;
78
+ }
79
+ this.destroyManagedControl(sId);
80
+ });
81
+ this.#aCurrentStateControls = [];
82
+ }
83
+
84
+ /**
85
+ * Destroys all controls known to the control manager.
86
+ *
87
+ * @since 1.127.0
88
+ * @private
89
+ */
90
+ #destroyAllManagedControls () {
91
+ // shall only be called during flp destroy
92
+ this.#aAllControls.forEach((sId) => {
93
+ this.destroyManagedControl(sId);
94
+ });
95
+ this.#aAllControls = [];
96
+ }
97
+
98
+ /**
99
+ * Destroys the control with the given ID.
100
+ * It does not remove the control from the list of managed controls.
101
+ * @param {sap.ui.core.ID} sId The ID of the control.
102
+ *
103
+ * @since 1.127.0
104
+ * @private
105
+ * @alias sap.ushell.state.ControlManager#destroyManagedControl
106
+ */
107
+ destroyManagedControl (sId) {
108
+ const oControl = Element.getElementById(sId);
109
+ if (oControl) {
110
+ oControl.destroy();
111
+ }
112
+ }
113
+
114
+ /**
115
+ * Stores the list of managed controls in the given storage entry.
116
+ * The stored list is used to restore the controls when the application is restarted.
117
+ *
118
+ * Once an application is stored the related controls are not directly managed anymore.
119
+ * Any other application reusing the same control without keep-alive will destroy the control implicitly on navigation.
120
+ * @param {object} oStorageEntry The storage entry.
121
+ *
122
+ * @since 1.127.0
123
+ * @private
124
+ * @alias sap.ushell.state.ControlManager#storeList
125
+ */
126
+ storeList (oStorageEntry = {}) {
127
+ oStorageEntry.controlManager = {
128
+ currentControls: deepClone(this.#aCurrentStateControls)
129
+ };
130
+ }
131
+
132
+ /**
133
+ * Restores the list of managed controls from the given storage entry.
134
+ * @param {object} oStorageEntry The storage entry.
135
+ *
136
+ * @since 1.127.0
137
+ * @private
138
+ * @alias sap.ushell.state.ControlManager#restoreList
139
+ */
140
+ restoreList (oStorageEntry = {}) {
141
+ const { currentControls } = oStorageEntry.controlManager || {};
142
+ if (currentControls) {
143
+ this.#aCurrentStateControls = deepClone(currentControls);
144
+ } else {
145
+ this.#aCurrentStateControls = [];
146
+ }
147
+ }
148
+
149
+ /**
150
+ * Flushes the list of managed controls.
151
+ * The controls are not destroyed.
152
+ *
153
+ * @since 1.127.0
154
+ * @private
155
+ * @alias sap.ushell.state.ControlManager#flushList
156
+ */
157
+ flushList () {
158
+ this.#aCurrentStateControls = [];
159
+ }
160
+
161
+ /**
162
+ * Destroys the managed controls based on the storage entry.
163
+ * @param {object} oStorageEntry The storage entry.
164
+ *
165
+ * @since 1.127.0
166
+ * @private
167
+ * @alias sap.ushell.state.ControlManager#destroyFromStorage
168
+ */
169
+ destroyFromStorage (oStorageEntry = {}) {
170
+ const { currentControls } = oStorageEntry.controlManager || {};
171
+
172
+ if (Array.isArray(currentControls)) {
173
+ currentControls.forEach((sId) => {
174
+ this.destroyManagedControl(sId);
175
+ });
176
+ }
177
+ }
178
+
179
+ /**
180
+ * ONLY FOR TESTING!
181
+ * Resets the control manager.
182
+ *
183
+ * @since 1.127.0
184
+ * @private
185
+ * @alias sap.ushell.state.ControlManager#reset
186
+ */
187
+ reset () {
188
+ this.destroy();
189
+
190
+ this.#aCurrentStateControls = [];
191
+ this.#aBaseStateControls = [];
192
+ }
193
+
194
+ /**
195
+ * Destroys all managed controls.
196
+ * Shall only be called by the state manager.
197
+ *
198
+ * @since 1.127.0
199
+ * @private
200
+ * @alias sap.ushell.state.ControlManager#destroy
201
+ */
202
+ destroy () {
203
+ this.#destroyAllManagedControls();
204
+ }
205
+ }
206
+
207
+ return new ControlManager();
208
+
209
+ });
@@ -0,0 +1,180 @@
1
+ // Copyright (c) 2009-2023 SAP SE, All Rights Reserved
2
+
3
+ sap.ui.define([
4
+ "sap/base/util/deepClone",
5
+ "sap/ui/base/EventProvider",
6
+ "sap/ushell/state/StrategyFactory"
7
+ ], function (
8
+ deepClone,
9
+ EventProvider,
10
+ StrategyFactory
11
+ ) {
12
+ "use strict";
13
+
14
+ /**
15
+ * @typedef {object} sap.ushell.state.CurrentState.Command
16
+ * A command that should be executed to update the state.
17
+ * @property {sap.ushell.state.StateManager.Path} path The path to the property that should be updated.
18
+ * @property {sap.ushell.state.StateManager.Operation} operation The operation that should be performed.
19
+ * @property {any} value The value that should be set.
20
+ *
21
+ * @since 1.127.0
22
+ * @private
23
+ */
24
+
25
+ /**
26
+ * @alias sap.ushell.state.CurrentState
27
+ * @namespace
28
+ * @description This class manages the current state of applications.
29
+ *
30
+ * @since 1.127.0
31
+ * @private
32
+ */
33
+ class CurrentState {
34
+ /**
35
+ * The list of commands that should be executed to update the state.
36
+ * @type {sap.ushell.state.CurrentState.Command[]}
37
+ */
38
+ #aCommandList = [];
39
+ /**
40
+ * The event provider that is used to notify listeners about state changes.
41
+ * @type {sap.ui.base.EventProvider}
42
+ */
43
+ #oEventProvider = new EventProvider();
44
+
45
+ /**
46
+ * Attaches an event handler to the state change event.
47
+ * The handler is called when the state changes e.g. when the state is restored or flushed.
48
+ * @param {object} oData An object that will be passed to the handler along with the event object when the event is fired
49
+ * @param {function} fnHandler The handler function to call when the event occurs.
50
+ * @param {object} oListener The data to be passed to the event handler.
51
+ *
52
+ * @since 1.127.0
53
+ * @private
54
+ * @alias sap.ushell.state.CurrentState#attachStateChange
55
+ */
56
+ attachStateChange (...args) {
57
+ this.#oEventProvider.attachEvent("stateChange", ...args);
58
+ }
59
+
60
+ /**
61
+ * Detaches an event handler from the state change event.
62
+ * @param {function} fnHandler The handler function.
63
+ * @param {object} oListener The data to be passed to the event handler.
64
+ *
65
+ * @since 1.127.0
66
+ * @private
67
+ * @alias sap.ushell.state.CurrentState#detachStateChange
68
+ */
69
+ detachStateChange (...args) {
70
+ this.#oEventProvider.detachEvent("stateChange", ...args);
71
+ }
72
+
73
+ /**
74
+ * Updates the state with the given operation and value.
75
+ * @param {sap.ushell.state.StateManager.Path} sPath The path to the property that should be updated.
76
+ * @param {sap.ushell.state.StateManager.Operation} sOperation The operation that should be performed.
77
+ * @param {any} vValue The value that should be set.
78
+ *
79
+ * @since 1.127.0
80
+ * @private
81
+ * @alias sap.ushell.state.CurrentState#updateState
82
+ */
83
+ updateState (sPath, sOperation, vValue) {
84
+ this.#aCommandList.push({
85
+ path: sPath,
86
+ value: vValue,
87
+ operation: sOperation
88
+ });
89
+ }
90
+
91
+ /**
92
+ * Flushes the state and prepares it for a new current state.
93
+ *
94
+ * @since 1.127.0
95
+ * @private
96
+ * @alias sap.ushell.state.CurrentState#flushState
97
+ */
98
+ flushState () {
99
+ this.#aCommandList = [];
100
+ this.#oEventProvider.fireEvent("stateChange");
101
+ }
102
+
103
+ /**
104
+ * Stores the current state in the given storage entry.
105
+ * The stored state is used to restore the state when the application is restarted.
106
+ * @param {object} oStorageEntry The storage entry.
107
+ *
108
+ * @since 1.127.0
109
+ * @private
110
+ * @alias sap.ushell.state.CurrentState#storeState
111
+ */
112
+ storeState (oStorageEntry) {
113
+ oStorageEntry.currentState = {
114
+ commandList: deepClone(this.#aCommandList)
115
+ };
116
+ }
117
+
118
+ /**
119
+ * Restores the state from the given storage entry.
120
+ * @param {object} oStorageEntry The storage entry.
121
+ *
122
+ * @since 1.127.0
123
+ * @private
124
+ * @alias sap.ushell.state.CurrentState#restoreState
125
+ */
126
+ restoreState (oStorageEntry) {
127
+ const { commandList } = oStorageEntry.currentState || {};
128
+ if (commandList) {
129
+ this.#aCommandList = deepClone(commandList);
130
+ } else {
131
+ this.#aCommandList = [];
132
+ }
133
+ this.#oEventProvider.fireEvent("stateChange");
134
+ }
135
+
136
+ /**
137
+ * Applies the current state to the given state data.
138
+ * The current state is applied in-place.
139
+ * @param {object} oStateData The state data.
140
+ *
141
+ * @since 1.127.0
142
+ * @private
143
+ * @alias sap.ushell.state.CurrentState#applyState
144
+ */
145
+ applyState (oStateData) {
146
+ this.#aCommandList.forEach(({ path, value, operation }) => {
147
+ StrategyFactory.perform(oStateData, path, operation, value);
148
+ });
149
+ }
150
+
151
+ /**
152
+ * ONLY FOR TESTING!
153
+ * Resets the current state.
154
+ *
155
+ * @since 1.127.0
156
+ * @private
157
+ * @alias sap.ushell.state.CurrentState#reset
158
+ */
159
+ reset () {
160
+ this.destroy();
161
+
162
+ this.#aCommandList = [];
163
+ this.#oEventProvider = new EventProvider();
164
+ }
165
+
166
+ /**
167
+ * Destroys the current state.
168
+ * Should only be called by the state manager.
169
+ *
170
+ * @since 1.127.0
171
+ * @private
172
+ * @alias sap.ushell.state.CurrentState#destroy
173
+ */
174
+ destroy () {
175
+ this.#oEventProvider.destroy();
176
+ }
177
+ }
178
+
179
+ return new CurrentState();
180
+ });
@@ -0,0 +1,75 @@
1
+ // Copyright (c) 2009-2023 SAP SE, All Rights Reserved
2
+
3
+ sap.ui.define([
4
+ "sap/ushell/state/ControlManager",
5
+ "sap/ushell/state/CurrentState"
6
+ ], function (
7
+ ControlManager,
8
+ CurrentState
9
+ ) {
10
+ "use strict";
11
+
12
+ /**
13
+ * @alias sap.ushell.state.KeepAlive
14
+ * @namespace
15
+ * @description This module is a facade for the keep-alive mechanism in the state management.
16
+ *
17
+ * @since 1.127.0
18
+ * @private
19
+ */
20
+ class KeepAlive {
21
+ /**
22
+ * Stores the current state of the application.
23
+ * The stored state is used to restore the application when it is restarted.
24
+ * @param {object} oStorageEntry The storage entry.
25
+ *
26
+ * @since 1.127.0
27
+ * @private
28
+ * @alias sap.ushell.state.KeepAlive#store
29
+ */
30
+ store (oStorageEntry) {
31
+ CurrentState.storeState(oStorageEntry);
32
+ // Store controls list and empty it afterwards because the keep-alive app still need them in future
33
+ ControlManager.storeList(oStorageEntry);
34
+ }
35
+
36
+ /**
37
+ * Restores the state of the application.
38
+ * @param {object} oStorageEntry The storage entry.
39
+ *
40
+ * @since 1.127.0
41
+ * @private
42
+ * @alias sap.ushell.state.KeepAlive#restore
43
+ */
44
+ restore (oStorageEntry) {
45
+ CurrentState.restoreState(oStorageEntry);
46
+ ControlManager.restoreList(oStorageEntry);
47
+ }
48
+
49
+ /**
50
+ * Flushes the current state of the application.
51
+ *
52
+ * @since 1.127.0
53
+ * @private
54
+ * @alias sap.ushell.state.KeepAlive#flush
55
+ */
56
+ flush () {
57
+ CurrentState.flushState();
58
+ ControlManager.flushList();
59
+ }
60
+
61
+ /**
62
+ * Destroys the managed controls based on the storage entry.
63
+ * @param {object} oStorageEntry The storage entry.
64
+ *
65
+ * @since 1.127.0
66
+ * @private
67
+ * @alias sap.ushell.state.KeepAlive#destroy
68
+ */
69
+ destroy (oStorageEntry) {
70
+ ControlManager.destroyFromStorage(oStorageEntry);
71
+ }
72
+ }
73
+
74
+ return new KeepAlive();
75
+ });
@@ -0,0 +1,112 @@
1
+ // Copyright (c) 2009-2023 SAP SE, All Rights Reserved
2
+
3
+ sap.ui.define([
4
+ "sap/base/util/deepClone",
5
+ "sap/ui/model/json/JSONModel",
6
+ "sap/ushell/Config",
7
+ "sap/ushell/utils/RestrictedJSONModel"
8
+ ], function (
9
+ deepClone,
10
+ JSONModel,
11
+ Config,
12
+ RestrictedJSONModel
13
+ ) {
14
+ "use strict";
15
+
16
+ /**
17
+ * @alias sap.ushell.state.ShellModel
18
+ * @namespace
19
+ * @description The model representing the current state of the shell.
20
+ * The model is a read-only model. It is updated by the state manager.
21
+ * The controller can access to bind to this model.
22
+ *
23
+ * @since 1.127.0
24
+ * @private
25
+ */
26
+ class ShellModel {
27
+ /**
28
+ * The model representing the current state of the shell.
29
+ * @type {sap.ushell.utils.RestrictedJSONModel}
30
+ */
31
+ #model = new RestrictedJSONModel();
32
+ /**
33
+ * The model representing the configuration of the shell.
34
+ * References <code>/core/shell/model</code> of the {@link sap.ushell.Config}.
35
+ * @type {sap.ui.model.json.JSONModel}
36
+ */
37
+ #configModel = Config.createModel("/core/shell/model", JSONModel);
38
+
39
+ /**
40
+ * Updates the model with the given state data.
41
+ * Should only be called by the state manager.
42
+ * @param {object} oStateData The calculated state data.
43
+ *
44
+ * @since 1.127.0
45
+ * @private
46
+ * @alias sap.ushell.state.ShellModel#updateModel
47
+ */
48
+ updateModel (oStateData) {
49
+ const oClonedState = deepClone(oStateData);
50
+ this.#model._setData(oClonedState);
51
+ }
52
+
53
+ /**
54
+ * Returns the model representing the current state of the shell.
55
+ * This model is a read-only model.
56
+ * @returns {sap.ui.model.Model} The model.
57
+ *
58
+ * @since 1.127.0
59
+ * @private
60
+ * @alias sap.ushell.state.ShellModel#getModel
61
+ */
62
+ getModel () {
63
+ return this.#model;
64
+ }
65
+
66
+ /**
67
+ * Returns the model representing the configuration of the shell.
68
+ * The config model is based on {@link sap.ushell.Config}.
69
+ * With this any updates are delayed by a tick.
70
+ * However, the <code>getProperty</code> result is updated immediately.
71
+ * @returns {sap.ui.model.Model} The model.
72
+ *
73
+ * @since 1.127.0
74
+ * @private
75
+ * @alias sap.ushell.state.ShellModel#getConfigModel
76
+ */
77
+ getConfigModel () {
78
+ return this.#configModel;
79
+ }
80
+
81
+ /**
82
+ * ONLY FOR TESTING!
83
+ * Resets the model.
84
+ *
85
+ * @since 1.127.0
86
+ * @private
87
+ * @alias sap.ushell.state.ShellModel#reset
88
+ */
89
+ reset () {
90
+ this.destroy();
91
+
92
+ this.#model = new RestrictedJSONModel();
93
+ this.#configModel = Config.createModel("/core/shell/model", JSONModel);
94
+ }
95
+
96
+ /**
97
+ * Destroys the model.
98
+ * Should only be called by the state manager.
99
+ *
100
+ * @since 1.127.0
101
+ * @private
102
+ * @alias sap.ushell.state.ShellModel#destroy
103
+ */
104
+ destroy () {
105
+ this.#model.destroy();
106
+ this.#configModel.destroy();
107
+ }
108
+ }
109
+
110
+ return new ShellModel();
111
+
112
+ });
@@ -0,0 +1,40 @@
1
+ // Copyright (c) 2009-2023 SAP SE, All Rights Reserved
2
+
3
+ sap.ui.define([
4
+ ], function (
5
+ ) {
6
+ "use strict";
7
+
8
+ /**
9
+ * @alias sap.ushell.state.StateManager.LaunchpadState
10
+ * @enum {string}
11
+ *
12
+ * @since 1.127.0
13
+ * @private
14
+ */
15
+ const LaunchpadState = {
16
+ /**
17
+ * Describes any view that is considered a home view.
18
+ * - Classic Homepage
19
+ * - Pages Runtime
20
+ * - (Custom)MyHome
21
+ *
22
+ * @since 1.127.0
23
+ * @private
24
+ */
25
+ Home: "home",
26
+
27
+ /**
28
+ * Describes any view that is NOT a home view.
29
+ * - App Finder
30
+ * - Search
31
+ * - Applications
32
+ *
33
+ * @since 1.127.0
34
+ * @private
35
+ */
36
+ App: "app"
37
+ };
38
+
39
+ return LaunchpadState;
40
+ });
@@ -0,0 +1,42 @@
1
+ // Copyright (c) 2009-2023 SAP SE, All Rights Reserved
2
+
3
+ sap.ui.define([
4
+ ], function (
5
+ ) {
6
+ "use strict";
7
+
8
+ /**
9
+ * @alias sap.ushell.state.StateManager.Operation
10
+ * @enum {string}
11
+ *
12
+ * @since 1.127.0
13
+ * @private
14
+ */
15
+ const Operation = {
16
+ /**
17
+ * Adds an item to a list.
18
+ *
19
+ * @since 1.127.0
20
+ * @private
21
+ */
22
+ Add: "add",
23
+
24
+ /**
25
+ * Removes an item from a list.
26
+ *
27
+ * @since 1.127.0
28
+ * @private
29
+ */
30
+ Remove: "remove",
31
+
32
+ /**
33
+ * Sets a property on an object.
34
+ *
35
+ * @since 1.127.0
36
+ * @private
37
+ */
38
+ Set: "set"
39
+ };
40
+
41
+ return Operation;
42
+ });