@sapui5/sap.ushell 1.119.3 → 1.120.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (392) hide show
  1. package/package.json +1 -1
  2. package/src/main/js/sap/ushell/.library +3 -3
  3. package/src/main/js/sap/ushell/Container.js +272 -41
  4. package/src/main/js/sap/ushell/Fiori20Adapter.js +1 -1
  5. package/src/main/js/sap/ushell/Fiori20AdapterTest.js +3 -2
  6. package/src/main/js/sap/ushell/NWBCInterface.js +1 -1
  7. package/src/main/js/sap/ushell/SessionHandler.js +11 -6
  8. package/src/main/js/sap/ushell/TechnicalParameters.js +1 -1
  9. package/src/main/js/sap/ushell/URLTemplateProcessor.js +1 -1
  10. package/src/main/js/sap/ushell/Ui5NativeServiceFactory.js +1 -1
  11. package/src/main/js/sap/ushell/Ui5ServiceFactory.js +1 -1
  12. package/src/main/js/sap/ushell/User.js +26 -35
  13. package/src/main/js/sap/ushell/_ApplicationType/urlTemplateResolution.js +1 -1
  14. package/src/main/js/sap/ushell/_URLTemplateProcessor/DefinitionParameterSetBuilder.js +1 -1
  15. package/src/main/js/sap/ushell/_URLTemplateProcessor/DependencyGraph.js +1 -1
  16. package/src/main/js/sap/ushell/_URLTemplateProcessor/Functions.js +1 -1
  17. package/src/main/js/sap/ushell/_URLTemplateProcessor/Resolvers.js +1 -1
  18. package/src/main/js/sap/ushell/_URLTemplateProcessor/TemplateParameterParser.js +1 -1
  19. package/src/main/js/sap/ushell/_URLTemplateProcessor/utils.js +1 -1
  20. package/src/main/js/sap/ushell/adapters/cdm/ClientSideTargetResolutionAdapter.js +1 -1
  21. package/src/main/js/sap/ushell/adapters/cdm/CommonDataModelAdapter.js +15 -11
  22. package/src/main/js/sap/ushell/adapters/cdm/ConfigurationDefaultsAdapter.js +1 -1
  23. package/src/main/js/sap/ushell/adapters/cdm/ContainerAdapter.js +1 -1
  24. package/src/main/js/sap/ushell/adapters/cdm/LaunchPageAdapter.js +1 -1
  25. package/src/main/js/sap/ushell/adapters/cdm/PagesCommonDataModelAdapter.js +16 -11
  26. package/src/main/js/sap/ushell/adapters/cdm/PersonalizationAdapter.js +1 -1
  27. package/src/main/js/sap/ushell/adapters/cdm/PersonalizationV2Adapter.js +18 -0
  28. package/src/main/js/sap/ushell/adapters/cdm/Ui5ComponentLoaderAdapter.js +1 -1
  29. package/src/main/js/sap/ushell/adapters/cdm/_LaunchPage/modifyHome.js +1 -1
  30. package/src/main/js/sap/ushell/adapters/cdm/_LaunchPage/readCatalogs.js +1 -1
  31. package/src/main/js/sap/ushell/adapters/cdm/_LaunchPage/readHome.js +1 -1
  32. package/src/main/js/sap/ushell/adapters/cdm/_LaunchPage/uri.transform.js +1 -1
  33. package/src/main/js/sap/ushell/adapters/cdm/util/AppForInbound.js +1 -1
  34. package/src/main/js/sap/ushell/adapters/cdm/util/cdmSiteUtils.js +1 -1
  35. package/src/main/js/sap/ushell/adapters/cdm/v3/AdapterBase.js +1 -1
  36. package/src/main/js/sap/ushell/adapters/cdm/v3/LaunchPageAdapter.js +1 -1
  37. package/src/main/js/sap/ushell/adapters/cdm/v3/StaticGroupsAdapter.js +1 -1
  38. package/src/main/js/sap/ushell/adapters/cdm/v3/_LaunchPage/readApplications.js +1 -1
  39. package/src/main/js/sap/ushell/adapters/cdm/v3/_LaunchPage/readCatalogs.js +1 -1
  40. package/src/main/js/sap/ushell/adapters/cdm/v3/_LaunchPage/readHome.js +1 -1
  41. package/src/main/js/sap/ushell/adapters/cdm/v3/_LaunchPage/readPages.js +1 -1
  42. package/src/main/js/sap/ushell/adapters/cdm/v3/_LaunchPage/readUtils.js +1 -1
  43. package/src/main/js/sap/ushell/adapters/cdm/v3/_LaunchPage/readVisualizations.js +1 -1
  44. package/src/main/js/sap/ushell/adapters/cep/NavTargetResolutionAdapter.js +1 -1
  45. package/src/main/js/sap/ushell/adapters/cep/SearchCEPAdapter.js +1 -1
  46. package/src/main/js/sap/ushell/adapters/cflp/UserDefaultParameterPersistenceAdapter.js +1 -1
  47. package/src/main/js/sap/ushell/adapters/local/AdapterContainer.js +1 -1
  48. package/src/main/js/sap/ushell/adapters/local/AppStateAdapter.js +24 -18
  49. package/src/main/js/sap/ushell/adapters/local/ClientSideTargetResolutionAdapter.js +1 -1
  50. package/src/main/js/sap/ushell/adapters/local/ContainerAdapter.js +1 -1
  51. package/src/main/js/sap/ushell/adapters/local/LaunchPageAdapter.js +1 -1
  52. package/src/main/js/sap/ushell/adapters/local/MenuAdapter.js +4 -7
  53. package/src/main/js/sap/ushell/adapters/local/NavTargetResolutionAdapter.js +17 -22
  54. package/src/main/js/sap/ushell/adapters/local/PageBuildingAdapter.js +1 -1
  55. package/src/main/js/sap/ushell/adapters/local/PagePersistenceAdapter.js +1 -1
  56. package/src/main/js/sap/ushell/adapters/local/PersonalizationAdapter.js +1 -1
  57. package/src/main/js/sap/ushell/adapters/local/PersonalizationV2Adapter.js +19 -0
  58. package/src/main/js/sap/ushell/adapters/local/SearchAdapter.js +1 -1
  59. package/src/main/js/sap/ushell/adapters/local/SearchCEPAdapter.js +1 -1
  60. package/src/main/js/sap/ushell/adapters/local/SupportTicketAdapter.js +1 -1
  61. package/src/main/js/sap/ushell/adapters/local/Ui5ComponentLoaderAdapter.js +1 -1
  62. package/src/main/js/sap/ushell/adapters/local/UserDefaultParameterPersistenceAdapter.js +11 -7
  63. package/src/main/js/sap/ushell/adapters/local/UserInfoAdapter.js +8 -8
  64. package/src/main/js/sap/ushell/api/RTA.js +47 -0
  65. package/src/main/js/sap/ushell/appRuntime/ui5/AppRuntime.js +12 -5
  66. package/src/main/js/sap/ushell/appRuntime/ui5/AppRuntimeContext.js +2 -2
  67. package/src/main/js/sap/ushell/appRuntime/ui5/services/adapters/Ui5ComponentLoaderAdapter.js +1 -1
  68. package/src/main/js/sap/ushell/bootstrap/SchedulingAgent.js +2 -2
  69. package/src/main/js/sap/ushell/bootstrap/_SchedulingAgent/logger.js +1 -1
  70. package/src/main/js/sap/ushell/bootstrap/_SchedulingAgent/state.js +1 -1
  71. package/src/main/js/sap/ushell/bootstrap/cdm/cdm-def-dev.js +6 -3
  72. package/src/main/js/sap/ushell/bootstrap/common/common.configure.ui5datetimeformat.js +1 -1
  73. package/src/main/js/sap/ushell/bootstrap/common/common.configure.ushell.js +3 -0
  74. package/src/main/js/sap/ushell/bootstrap/common/common.load.launchpad.js +1 -1
  75. package/src/main/js/sap/ushell/bootstrap/common/common.util.js +34 -2
  76. package/src/main/js/sap/ushell/bootstrap/sandbox2.js +7 -2
  77. package/src/main/js/sap/ushell/components/ComponentKeysHandler.js +1 -1
  78. package/src/main/js/sap/ushell/components/HomepageManager.js +5 -5
  79. package/src/main/js/sap/ushell/components/SharedComponentUtils.js +7 -10
  80. package/src/main/js/sap/ushell/components/_HeaderManager/ShellHeader.controller.js +3 -3
  81. package/src/main/js/sap/ushell/components/_HomepageManager/DashboardLoadingManager.js +5 -0
  82. package/src/main/js/sap/ushell/components/_HomepageManager/PagingManager.js +5 -0
  83. package/src/main/js/sap/ushell/components/_HomepageManager/PersistentPageOperationAdapter.js +5 -0
  84. package/src/main/js/sap/ushell/components/_HomepageManager/TransientPageOperationAdapter.js +5 -0
  85. package/src/main/js/sap/ushell/components/appfinder/AppFinderView.js +1 -1
  86. package/src/main/js/sap/ushell/components/appfinder/CatalogView.js +1 -1
  87. package/src/main/js/sap/ushell/components/appfinder/EasyAccess.controller.js +3 -3
  88. package/src/main/js/sap/ushell/components/appfinder/EasyAccessView.js +0 -8
  89. package/src/main/js/sap/ushell/components/appfinder/HierarchyApps.controller.js +4 -4
  90. package/src/main/js/sap/ushell/components/appfinder/HierarchyFolders.controller.js +18 -16
  91. package/src/main/js/sap/ushell/components/appfinder/manifest.json +2 -2
  92. package/src/main/js/sap/ushell/components/applicationIntegration/AppLifeCycle.js +2 -2
  93. package/src/main/js/sap/ushell/components/applicationIntegration/application/Application.js +1 -1
  94. package/src/main/js/sap/ushell/components/applicationIntegration/application/BlueBoxHandler.js +1 -1
  95. package/src/main/js/sap/ushell/components/applicationIntegration/application/PostMessageAPI.js +2 -2
  96. package/src/main/js/sap/ushell/components/applicationIntegration/configuration/AppMeta.js +1 -1
  97. package/src/main/js/sap/ushell/components/applicationIntegration/elements/model.js +1 -1
  98. package/src/main/js/sap/ushell/components/applicationIntegration/relatedServices/RelatedServices.js +1 -1
  99. package/src/main/js/sap/ushell/components/applicationIntegration/relatedShellElements/RelatedShellElements.js +1 -1
  100. package/src/main/js/sap/ushell/components/cards/Card.controller.js +2 -2
  101. package/src/main/js/sap/ushell/components/container/ApplicationContainer.js +92 -71
  102. package/src/main/js/sap/ushell/components/contentFinder/Component.js +1 -1
  103. package/src/main/js/sap/ushell/components/contentFinder/controller/AppSearch.controller.js +1 -1
  104. package/src/main/js/sap/ushell/components/contentFinder/controller/ContentFinderDialog.controller.js +1 -1
  105. package/src/main/js/sap/ushell/components/contentFinder/controller/WidgetGallery.controller.js +1 -1
  106. package/src/main/js/sap/ushell/components/contentFinder/manifest.json +1 -1
  107. package/src/main/js/sap/ushell/components/contentFinder/model/formatter.js +4 -4
  108. package/src/main/js/sap/ushell/components/factsheet/Component.js +1 -1
  109. package/src/main/js/sap/ushell/components/homeApp/error/manifest.json +1 -1
  110. package/src/main/js/sap/ushell/components/homepage/ActionMode.js +1 -1
  111. package/src/main/js/sap/ushell/components/homepage/DashboardContent.view.js +1 -1
  112. package/src/main/js/sap/ushell/components/homepage/DashboardGroupsBox.js +1 -1
  113. package/src/main/js/sap/ushell/components/homepage/DashboardUIActions.js +1 -1
  114. package/src/main/js/sap/ushell/components/homepage/manifest.json +2 -2
  115. package/src/main/js/sap/ushell/components/pages/ActionMode.js +5 -5
  116. package/src/main/js/sap/ushell/components/pages/Component.js +1 -1
  117. package/src/main/js/sap/ushell/components/pages/MyHomeImport.js +1 -1
  118. package/src/main/js/sap/ushell/components/pages/StateManager.js +37 -24
  119. package/src/main/js/sap/ushell/components/pages/controller/ImportDialog.controller.js +1 -1
  120. package/src/main/js/sap/ushell/components/pages/controller/PageRuntime.controller.js +1 -1
  121. package/src/main/js/sap/ushell/components/pages/manifest.json +2 -2
  122. package/src/main/js/sap/ushell/components/runtimeSwitcher/controller/RuntimeSwitcher.controller.js +7 -4
  123. package/src/main/js/sap/ushell/components/runtimeSwitcher/manifest.json +1 -1
  124. package/src/main/js/sap/ushell/components/shell/MenuBar/controller/MenuBar.controller.js +6 -7
  125. package/src/main/js/sap/ushell/components/shell/MenuBar/manifest.json +2 -2
  126. package/src/main/js/sap/ushell/components/shell/NavigationBarMenu/controller/NavigationBarMenu.controller.js +39 -13
  127. package/src/main/js/sap/ushell/components/shell/NavigationBarMenu/manifest.json +3 -3
  128. package/src/main/js/sap/ushell/components/shell/Notifications/Component.js +5 -5
  129. package/src/main/js/sap/ushell/components/shell/Notifications/Notifications.controller.js +25 -45
  130. package/src/main/js/sap/ushell/components/shell/PostLoadingHeaderEnhancement/Component.js +2 -2
  131. package/src/main/js/sap/ushell/components/shell/ProductSwitch/Component.js +1 -1
  132. package/src/main/js/sap/ushell/components/shell/Search/ESearch.js +1 -1
  133. package/src/main/js/sap/ushell/components/shell/Search/manifest.json +2 -2
  134. package/src/main/js/sap/ushell/components/shell/SearchCEP/Component.js +2 -2
  135. package/src/main/js/sap/ushell/components/shell/SearchCEP/SearchCEP.controller.js +3 -3
  136. package/src/main/js/sap/ushell/components/shell/SearchCEP/SearchProviders/FrequentActivityProvider.js +1 -1
  137. package/src/main/js/sap/ushell/components/shell/SearchCEP/SearchProviders/RecentSearchProvider.js +1 -1
  138. package/src/main/js/sap/ushell/components/shell/SearchCEP/SearchProviders/SearchProvider.js +1 -1
  139. package/src/main/js/sap/ushell/components/shell/SearchCEP/SearchProviders/SearchServiceProvider.js +1 -1
  140. package/src/main/js/sap/ushell/components/shell/Settings/Component.js +4 -4
  141. package/src/main/js/sap/ushell/components/shell/Settings/ProfilingLoader.js +4 -0
  142. package/src/main/js/sap/ushell/components/shell/Settings/UserSettings.controller.js +4 -0
  143. package/src/main/js/sap/ushell/components/shell/Settings/UserSettings.view.xml +4 -3
  144. package/src/main/js/sap/ushell/components/shell/Settings/homepage/HomepageEntry.js +10 -13
  145. package/src/main/js/sap/ushell/components/shell/Settings/notifications/NotificationsSetting.controller.js +13 -22
  146. package/src/main/js/sap/ushell/components/shell/Settings/userAccount/UserAccountSelector.controller.js +2 -2
  147. package/src/main/js/sap/ushell/components/shell/Settings/userActivities/UserActivitiesSetting.controller.js +11 -14
  148. package/src/main/js/sap/ushell/components/shell/Settings/userDefaults/manifest.json +1 -1
  149. package/src/main/js/sap/ushell/components/shell/UserActionsMenu/Component.js +1 -1
  150. package/src/main/js/sap/ushell/components/shell/UserActionsMenu/UserActionsMenu.controller.js +2 -2
  151. package/src/main/js/sap/ushell/components/shell/UserImage/Component.js +2 -2
  152. package/src/main/js/sap/ushell/components/tiles/indicatorTileUtils/smartBusinessUtil.js +4 -6
  153. package/src/main/js/sap/ushell/components/visualizationOrganizer/Component.js +14 -18
  154. package/src/main/js/sap/ushell/components/workPageBuilder/Component.js +1 -1
  155. package/src/main/js/sap/ushell/components/workPageBuilder/controller/WorkPageBuilder.accessibility.js +1 -1
  156. package/src/main/js/sap/ushell/components/workPageBuilder/controller/WorkPageBuilder.controller.js +16 -12
  157. package/src/main/js/sap/ushell/components/workPageBuilder/controller/WorkPageHost.js +1 -1
  158. package/src/main/js/sap/ushell/components/workPageBuilder/controls/WorkPage.js +1 -1
  159. package/src/main/js/sap/ushell/components/workPageBuilder/controls/WorkPageButton.js +1 -1
  160. package/src/main/js/sap/ushell/components/workPageBuilder/controls/WorkPageCell.js +1 -1
  161. package/src/main/js/sap/ushell/components/workPageBuilder/controls/WorkPageColumn.js +1 -1
  162. package/src/main/js/sap/ushell/components/workPageBuilder/controls/WorkPageColumnResizer.js +1 -1
  163. package/src/main/js/sap/ushell/components/workPageBuilder/controls/WorkPageRow.js +1 -1
  164. package/src/main/js/sap/ushell/components/workPageBuilder/manifest.json +1 -1
  165. package/src/main/js/sap/ushell/components/workPageBuilder/view/WorkPageBuilder.view.xml +3 -3
  166. package/src/main/js/sap/ushell/components/workPageRuntime/Component.js +1 -1
  167. package/src/main/js/sap/ushell/components/workPageRuntime/controller/WorkPageRuntime.controller.js +1 -2
  168. package/src/main/js/sap/ushell/components/workPageRuntime/manifest.json +1 -1
  169. package/src/main/js/sap/ushell/components/workPageRuntime/services/NavigationResolver.js +1 -1
  170. package/src/main/js/sap/ushell/components/workPageRuntime/services/WorkPage.js +1 -1
  171. package/src/main/js/sap/ushell/designtime/ApplicationContainer.designtime.js +1 -1
  172. package/src/main/js/sap/ushell/library.js +1 -1
  173. package/src/main/js/sap/ushell/navigationMode.js +1 -1
  174. package/src/main/js/sap/ushell/performance/ShellAnalytics.js +1 -1
  175. package/src/main/js/sap/ushell/performance/StatisticalRecord.js +1 -1
  176. package/src/main/js/sap/ushell/plugins/appwarmup/Component.js +1 -1
  177. package/src/main/js/sap/ushell/{renderers/fiori2 → renderer}/AccessKeysHandler.js +1 -1
  178. package/src/main/js/sap/ushell/renderer/History.js +84 -0
  179. package/src/main/js/sap/ushell/renderer/LogonFrameProvider.js +96 -0
  180. package/src/main/js/sap/ushell/renderer/Renderer.js +2851 -0
  181. package/src/main/js/sap/ushell/renderer/Shell.controller.js +3155 -0
  182. package/src/main/js/sap/ushell/{renderers/fiori2/ShellAsync.view.js → renderer/Shell.view.js} +29 -18
  183. package/src/main/js/sap/ushell/{renderers/fiori2 → renderer}/ShellLayout.js +3 -3
  184. package/src/main/js/sap/ushell/{renderers/fiori2 → renderer}/allMyApps/AllMyApps.controller.js +4 -4
  185. package/src/main/js/sap/ushell/{renderers/fiori2 → renderer}/allMyApps/AllMyApps.view.xml +1 -1
  186. package/src/main/js/sap/ushell/renderer/allMyApps/AllMyAppsKeyboardHandler.js +108 -0
  187. package/src/main/js/sap/ushell/renderer/allMyApps/AllMyAppsManager.js +453 -0
  188. package/src/main/js/sap/ushell/{renderers/fiori2 → renderer}/resources/resources.properties +4 -0
  189. package/src/main/js/sap/ushell/{renderers/fiori2 → renderer}/search/searchComponent/Component.js +3 -3
  190. package/src/main/js/sap/ushell/{renderers/fiori2 → renderer}/search/searchComponent/controller/CEPSearchApp.controller.js +1 -1
  191. package/src/main/js/sap/ushell/{renderers/fiori2 → renderer}/search/searchComponent/controller/SearchApp.controller.js +1 -1
  192. package/src/main/js/sap/ushell/{renderers/fiori2 → renderer}/search/searchComponent/manifest.json +2 -2
  193. package/src/main/js/sap/ushell/{renderers/fiori2 → renderer}/search/searchComponent/view/CEPSearchApp.view.js +2 -2
  194. package/src/main/js/sap/ushell/{renderers/fiori2 → renderer}/search/searchComponent/view/SearchApp.view.js +2 -2
  195. package/src/main/js/sap/ushell/renderers/fiori2/History.js +7 -68
  196. package/src/main/js/sap/ushell/renderers/fiori2/LogonFrameProvider.js +9 -79
  197. package/src/main/js/sap/ushell/renderers/fiori2/Renderer.js +101 -1882
  198. package/src/main/js/sap/ushell/renderers/fiori2/RendererExtensions.js +2 -3
  199. package/src/main/js/sap/ushell/renderers/fiori2/Shell.controller.js +8 -3130
  200. package/src/main/js/sap/ushell/renderers/fiori2/Shell.view.js +7 -7
  201. package/src/main/js/sap/ushell/renderers/fiori2/allMyApps/AllMyAppsKeyboardHandler.js +7 -92
  202. package/src/main/js/sap/ushell/renderers/fiori2/allMyApps/AllMyAppsManager.js +8 -438
  203. package/src/main/js/sap/ushell/resources.js +1 -1
  204. package/src/main/js/sap/ushell/services/AllMyApps.js +16 -7
  205. package/src/main/js/sap/ushell/services/AppConfiguration.js +12 -0
  206. package/src/main/js/sap/ushell/services/AppLifeCycle.js +11 -14
  207. package/src/main/js/sap/ushell/services/AppState.js +12 -8
  208. package/src/main/js/sap/ushell/services/Bookmark.js +15 -13
  209. package/src/main/js/sap/ushell/services/BookmarkV2.js +919 -0
  210. package/src/main/js/sap/ushell/services/ClientSideTargetResolution.js +229 -241
  211. package/src/main/js/sap/ushell/services/CommonDataModel.js +14 -4
  212. package/src/main/js/sap/ushell/services/Configuration.js +12 -11
  213. package/src/main/js/sap/ushell/services/ConfigurationDefaults.js +13 -10
  214. package/src/main/js/sap/ushell/services/Container.js +1 -1
  215. package/src/main/js/sap/ushell/services/ContentExtensionAdapterFactory.js +1 -1
  216. package/src/main/js/sap/ushell/services/CrossApplicationNavigation.js +8 -6
  217. package/src/main/js/sap/ushell/services/DarkModeSupport.js +16 -10
  218. package/src/main/js/sap/ushell/services/EndUserFeedback.js +1 -1
  219. package/src/main/js/sap/ushell/services/Extension/FloatingContainer.js +103 -0
  220. package/src/main/js/sap/ushell/services/Extension/Footer.js +61 -0
  221. package/src/main/js/sap/ushell/services/Extension/Header.js +193 -0
  222. package/src/main/js/sap/ushell/services/Extension/Item.js +195 -0
  223. package/src/main/js/sap/ushell/services/Extension/SidePane.js +155 -0
  224. package/src/main/js/sap/ushell/services/Extension/ToolArea.js +152 -0
  225. package/src/main/js/sap/ushell/services/Extension.js +381 -0
  226. package/src/main/js/sap/ushell/services/LaunchPage.js +1 -1
  227. package/src/main/js/sap/ushell/services/Menu.js +48 -59
  228. package/src/main/js/sap/ushell/services/Message.js +15 -14
  229. package/src/main/js/sap/ushell/services/MessageBroker.js +12 -12
  230. package/src/main/js/sap/ushell/services/NavTargetResolution.js +48 -70
  231. package/src/main/js/sap/ushell/services/Navigation/utils.js +565 -0
  232. package/src/main/js/sap/ushell/services/Navigation.js +152 -139
  233. package/src/main/js/sap/ushell/services/NavigationDataProvider.js +11 -8
  234. package/src/main/js/sap/ushell/services/Notifications.js +118 -1523
  235. package/src/main/js/sap/ushell/services/NotificationsV2.js +1872 -0
  236. package/src/main/js/sap/ushell/services/PageBuilding.js +11 -8
  237. package/src/main/js/sap/ushell/services/PagePersistence.js +11 -8
  238. package/src/main/js/sap/ushell/services/PageReferencing.js +11 -8
  239. package/src/main/js/sap/ushell/services/Pages.js +11 -15
  240. package/src/main/js/sap/ushell/services/Personalization.js +5 -3
  241. package/src/main/js/sap/ushell/services/PersonalizationV2/ContextContainer.js +410 -0
  242. package/src/main/js/sap/ushell/services/PersonalizationV2/Personalizer.js +109 -0
  243. package/src/main/js/sap/ushell/services/PersonalizationV2/TransientPersonalizer.js +57 -0
  244. package/src/main/js/sap/ushell/services/PersonalizationV2/Variant.js +180 -0
  245. package/src/main/js/sap/ushell/services/PersonalizationV2/VariantSet.js +296 -0
  246. package/src/main/js/sap/ushell/services/PersonalizationV2/VariantSetAdapter.js +125 -0
  247. package/src/main/js/sap/ushell/services/PersonalizationV2/WindowAdapter.js +71 -0
  248. package/src/main/js/sap/ushell/services/PersonalizationV2/WindowAdapterContainer.js +172 -0
  249. package/src/main/js/sap/ushell/services/PersonalizationV2/constants.js +23 -0
  250. package/src/main/js/sap/ushell/services/PersonalizationV2/constants.private.js +18 -0
  251. package/src/main/js/sap/ushell/services/PersonalizationV2/utils.js +233 -0
  252. package/src/main/js/sap/ushell/services/PersonalizationV2.js +641 -0
  253. package/src/main/js/sap/ushell/services/PluginManager.js +47 -55
  254. package/src/main/js/sap/ushell/services/ReferenceResolver.js +61 -54
  255. package/src/main/js/sap/ushell/services/Search.js +15 -2
  256. package/src/main/js/sap/ushell/services/SearchCEP.js +40 -44
  257. package/src/main/js/sap/ushell/services/SearchableContent.js +9 -9
  258. package/src/main/js/sap/ushell/services/ShellNavigation.js +14 -13
  259. package/src/main/js/sap/ushell/services/SmartNavigation.js +1 -1
  260. package/src/main/js/sap/ushell/services/SpaceContent.js +9 -10
  261. package/src/main/js/sap/ushell/services/SupportTicket.js +14 -14
  262. package/src/main/js/sap/ushell/services/UITracer.js +31 -35
  263. package/src/main/js/sap/ushell/services/URLParsing.js +9 -11
  264. package/src/main/js/sap/ushell/services/URLShortening.js +1 -1
  265. package/src/main/js/sap/ushell/services/URLTemplate.js +14 -13
  266. package/src/main/js/sap/ushell/services/Ui5ComponentLoader.js +29 -26
  267. package/src/main/js/sap/ushell/services/UsageAnalytics.js +6 -0
  268. package/src/main/js/sap/ushell/services/UserDefaultParameterPersistence.js +11 -7
  269. package/src/main/js/sap/ushell/services/UserDefaultParameters.js +20 -26
  270. package/src/main/js/sap/ushell/services/UserInfo.js +44 -23
  271. package/src/main/js/sap/ushell/services/UserRecents.js +13 -5
  272. package/src/main/js/sap/ushell/services/VisualizationDataProvider.js +12 -9
  273. package/src/main/js/sap/ushell/services/VisualizationInstantiation.js +10 -8
  274. package/src/main/js/sap/ushell/services/_ClientSideTargetResolution/Formatter.js +1 -1
  275. package/src/main/js/sap/ushell/services/_ClientSideTargetResolution/InboundIndex.js +1 -1
  276. package/src/main/js/sap/ushell/services/_ClientSideTargetResolution/InboundProvider.js +1 -1
  277. package/src/main/js/sap/ushell/services/_ClientSideTargetResolution/PrelaunchOperations.js +1 -1
  278. package/src/main/js/sap/ushell/services/_ClientSideTargetResolution/Search.js +1 -1
  279. package/src/main/js/sap/ushell/services/_ClientSideTargetResolution/StagedLogger.js +1 -1
  280. package/src/main/js/sap/ushell/services/_ClientSideTargetResolution/SystemContext.js +1 -1
  281. package/src/main/js/sap/ushell/services/_ClientSideTargetResolution/Utils.js +3 -4
  282. package/src/main/js/sap/ushell/services/_ClientSideTargetResolution/VirtualInbounds.js +4 -4
  283. package/src/main/js/sap/ushell/services/_ClientSideTargetResolution/XAppStateProcessing.js +1 -1
  284. package/src/main/js/sap/ushell/services/_CommonDataModel/SiteConverter.js +1 -1
  285. package/src/main/js/sap/ushell/services/_ContentExtensionAdapterFactory/ContentExtensionAdapterConfig.js +1 -1
  286. package/src/main/js/sap/ushell/services/_ContentExtensionAdapterFactory/FeaturedGroupConfig.js +1 -1
  287. package/src/main/js/sap/ushell/services/_CrossApplicationNavigation/utils.js +2 -1
  288. package/src/main/js/sap/ushell/services/_MessageBroker/MessageBrokerEngine.js +1 -1
  289. package/src/main/js/sap/ushell/services/_PageReferencing/PageReferencer.js +1 -1
  290. package/src/main/js/sap/ushell/services/_Personalization/ContextContainer.js +6 -0
  291. package/src/main/js/sap/ushell/services/_Personalization/PersonalizationContainer.js +5 -1
  292. package/src/main/js/sap/ushell/services/_Personalization/PersonalizationContainerVariant.js +13 -9
  293. package/src/main/js/sap/ushell/services/_Personalization/PersonalizationContainerVariantSet.js +17 -13
  294. package/src/main/js/sap/ushell/services/_Personalization/Personalizer.js +5 -0
  295. package/src/main/js/sap/ushell/services/_Personalization/TransientPersonalizer.js +5 -1
  296. package/src/main/js/sap/ushell/services/_Personalization/Variant.js +4 -0
  297. package/src/main/js/sap/ushell/services/_Personalization/VariantSet.js +17 -9
  298. package/src/main/js/sap/ushell/services/_Personalization/VariantSetAdapter.js +4 -6
  299. package/src/main/js/sap/ushell/services/_Personalization/WindowAdapter.js +5 -44
  300. package/src/main/js/sap/ushell/services/_Personalization/WindowAdapterContainer.js +5 -101
  301. package/src/main/js/sap/ushell/services/_Personalization/constants.js +3 -0
  302. package/src/main/js/sap/ushell/services/_Personalization/constants.private.js +3 -0
  303. package/src/main/js/sap/ushell/services/_Personalization/utils.js +3 -0
  304. package/src/main/js/sap/ushell/services/_PluginManager/Extensions.js +1 -1
  305. package/src/main/js/sap/ushell/services/_PluginManager/HeaderExtensions.js +1 -1
  306. package/src/main/js/sap/ushell/services/_PluginManager/MenuExtensions.js +1 -1
  307. package/src/main/js/sap/ushell/services/_Ui5ComponentLoader/utils.js +29 -5
  308. package/src/main/js/sap/ushell/services/_UserRecents/UserRecentsBase.js +19 -27
  309. package/src/main/js/sap/ushell/services/_VisualizationInstantiation/VizInstance.js +4 -0
  310. package/src/main/js/sap/ushell/services/_VisualizationInstantiation/VizInstanceAbap.js +3 -0
  311. package/src/main/js/sap/ushell/services/_VisualizationInstantiation/VizInstanceLink.js +1 -1
  312. package/src/main/js/sap/ushell/services/personalization/VariantSetAdapter.js +13 -15
  313. package/src/main/js/sap/ushell/support/plugins/flpConfig/FlpConfigurationPlugin.js +1 -1
  314. package/src/main/js/sap/ushell/themes/sap_horizon/ShellAppTitle.less +4 -4
  315. package/src/main/js/sap/ushell/themes/sap_horizon_dark/ShellAppTitle.less +4 -4
  316. package/src/main/js/sap/ushell/themes/sap_horizon_hcb/ShellAppTitle.less +2 -2
  317. package/src/main/js/sap/ushell/themes/sap_horizon_hcw/ShellAppTitle.less +2 -2
  318. package/src/main/js/sap/ushell/ui/AppContainer.js +2 -2
  319. package/src/main/js/sap/ushell/ui/ContentNodeSelector.js +2 -2
  320. package/src/main/js/sap/ushell/ui/ShellHeader.js +2 -2
  321. package/src/main/js/sap/ushell/ui/cards/RecentActivitiesExtension.js +1 -1
  322. package/src/main/js/sap/ushell/ui/footerbar/AddBookmarkButton.js +8 -12
  323. package/src/main/js/sap/ushell/ui/launchpad/ExtendedChangeDetection.js +1 -1
  324. package/src/main/js/sap/ushell/ui/launchpad/Page.js +1 -1
  325. package/src/main/js/sap/ushell/ui/launchpad/Section.js +21 -8
  326. package/src/main/js/sap/ushell/ui/launchpad/TileState.js +0 -1
  327. package/src/main/js/sap/ushell/ui/launchpad/section/CompactArea.js +1 -1
  328. package/src/main/js/sap/ushell/ui/shell/ShellAppTitle.js +1 -1
  329. package/src/main/js/sap/ushell/ui/shell/ShellHeadItem.js +1 -1
  330. package/src/main/js/sap/ushell/ui/shell/SysInfoBar.js +1 -1
  331. package/src/main/js/sap/ushell/ui/shell/ToolAreaItem.js +1 -1
  332. package/src/main/js/sap/ushell/ui/utils.js +1 -1
  333. package/src/main/js/sap/ushell/ui5service/ShellUIService.js +1 -1
  334. package/src/main/js/sap/ushell/ui5service/UserStatus.js +1 -1
  335. package/src/main/js/sap/ushell/ui5service/_ShellUIService/shelluiservice.class.factory.js +14 -26
  336. package/src/main/js/sap/ushell/utils/Deferred.js +88 -0
  337. package/src/main/js/sap/ushell/utils/UrlShortening.js +1 -1
  338. package/src/main/js/sap/ushell/utils/WindowUtils.js +8 -8
  339. package/src/main/js/sap/ushell/utils.js +31 -67
  340. package/src/test/js/sap/ushell/bootstrap/sandbox.js +7 -2
  341. package/ui5.yaml +8 -2
  342. /package/src/main/js/sap/ushell/{renderers/fiori2 → renderer}/HeadEndItemsOverflowPopover.fragment.xml +0 -0
  343. /package/src/main/js/sap/ushell/{renderers/fiori2 → renderer}/resources/resources_ar.properties +0 -0
  344. /package/src/main/js/sap/ushell/{renderers/fiori2 → renderer}/resources/resources_bg.properties +0 -0
  345. /package/src/main/js/sap/ushell/{renderers/fiori2 → renderer}/resources/resources_ca.properties +0 -0
  346. /package/src/main/js/sap/ushell/{renderers/fiori2 → renderer}/resources/resources_cs.properties +0 -0
  347. /package/src/main/js/sap/ushell/{renderers/fiori2 → renderer}/resources/resources_cy.properties +0 -0
  348. /package/src/main/js/sap/ushell/{renderers/fiori2 → renderer}/resources/resources_da.properties +0 -0
  349. /package/src/main/js/sap/ushell/{renderers/fiori2 → renderer}/resources/resources_de.properties +0 -0
  350. /package/src/main/js/sap/ushell/{renderers/fiori2 → renderer}/resources/resources_el.properties +0 -0
  351. /package/src/main/js/sap/ushell/{renderers/fiori2 → renderer}/resources/resources_en.properties +0 -0
  352. /package/src/main/js/sap/ushell/{renderers/fiori2 → renderer}/resources/resources_en_GB.properties +0 -0
  353. /package/src/main/js/sap/ushell/{renderers/fiori2 → renderer}/resources/resources_en_US_sappsd.properties +0 -0
  354. /package/src/main/js/sap/ushell/{renderers/fiori2 → renderer}/resources/resources_en_US_saprigi.properties +0 -0
  355. /package/src/main/js/sap/ushell/{renderers/fiori2 → renderer}/resources/resources_en_US_saptrc.properties +0 -0
  356. /package/src/main/js/sap/ushell/{renderers/fiori2 → renderer}/resources/resources_es.properties +0 -0
  357. /package/src/main/js/sap/ushell/{renderers/fiori2 → renderer}/resources/resources_es_MX.properties +0 -0
  358. /package/src/main/js/sap/ushell/{renderers/fiori2 → renderer}/resources/resources_et.properties +0 -0
  359. /package/src/main/js/sap/ushell/{renderers/fiori2 → renderer}/resources/resources_fi.properties +0 -0
  360. /package/src/main/js/sap/ushell/{renderers/fiori2 → renderer}/resources/resources_fr.properties +0 -0
  361. /package/src/main/js/sap/ushell/{renderers/fiori2 → renderer}/resources/resources_fr_CA.properties +0 -0
  362. /package/src/main/js/sap/ushell/{renderers/fiori2 → renderer}/resources/resources_hi.properties +0 -0
  363. /package/src/main/js/sap/ushell/{renderers/fiori2 → renderer}/resources/resources_hr.properties +0 -0
  364. /package/src/main/js/sap/ushell/{renderers/fiori2 → renderer}/resources/resources_hu.properties +0 -0
  365. /package/src/main/js/sap/ushell/{renderers/fiori2 → renderer}/resources/resources_id.properties +0 -0
  366. /package/src/main/js/sap/ushell/{renderers/fiori2 → renderer}/resources/resources_it.properties +0 -0
  367. /package/src/main/js/sap/ushell/{renderers/fiori2 → renderer}/resources/resources_iw.properties +0 -0
  368. /package/src/main/js/sap/ushell/{renderers/fiori2 → renderer}/resources/resources_ja.properties +0 -0
  369. /package/src/main/js/sap/ushell/{renderers/fiori2 → renderer}/resources/resources_kk.properties +0 -0
  370. /package/src/main/js/sap/ushell/{renderers/fiori2 → renderer}/resources/resources_ko.properties +0 -0
  371. /package/src/main/js/sap/ushell/{renderers/fiori2 → renderer}/resources/resources_lt.properties +0 -0
  372. /package/src/main/js/sap/ushell/{renderers/fiori2 → renderer}/resources/resources_lv.properties +0 -0
  373. /package/src/main/js/sap/ushell/{renderers/fiori2 → renderer}/resources/resources_ms.properties +0 -0
  374. /package/src/main/js/sap/ushell/{renderers/fiori2 → renderer}/resources/resources_nl.properties +0 -0
  375. /package/src/main/js/sap/ushell/{renderers/fiori2 → renderer}/resources/resources_no.properties +0 -0
  376. /package/src/main/js/sap/ushell/{renderers/fiori2 → renderer}/resources/resources_pl.properties +0 -0
  377. /package/src/main/js/sap/ushell/{renderers/fiori2 → renderer}/resources/resources_pt.properties +0 -0
  378. /package/src/main/js/sap/ushell/{renderers/fiori2 → renderer}/resources/resources_pt_PT.properties +0 -0
  379. /package/src/main/js/sap/ushell/{renderers/fiori2 → renderer}/resources/resources_ro.properties +0 -0
  380. /package/src/main/js/sap/ushell/{renderers/fiori2 → renderer}/resources/resources_ru.properties +0 -0
  381. /package/src/main/js/sap/ushell/{renderers/fiori2 → renderer}/resources/resources_sh.properties +0 -0
  382. /package/src/main/js/sap/ushell/{renderers/fiori2 → renderer}/resources/resources_sk.properties +0 -0
  383. /package/src/main/js/sap/ushell/{renderers/fiori2 → renderer}/resources/resources_sl.properties +0 -0
  384. /package/src/main/js/sap/ushell/{renderers/fiori2 → renderer}/resources/resources_sv.properties +0 -0
  385. /package/src/main/js/sap/ushell/{renderers/fiori2 → renderer}/resources/resources_th.properties +0 -0
  386. /package/src/main/js/sap/ushell/{renderers/fiori2 → renderer}/resources/resources_tr.properties +0 -0
  387. /package/src/main/js/sap/ushell/{renderers/fiori2 → renderer}/resources/resources_uk.properties +0 -0
  388. /package/src/main/js/sap/ushell/{renderers/fiori2 → renderer}/resources/resources_vi.properties +0 -0
  389. /package/src/main/js/sap/ushell/{renderers/fiori2 → renderer}/resources/resources_zh_CN.properties +0 -0
  390. /package/src/main/js/sap/ushell/{renderers/fiori2 → renderer}/resources/resources_zh_TW.properties +0 -0
  391. /package/src/main/js/sap/ushell/{renderers/fiori2 → renderer}/search/util.js +0 -0
  392. /package/src/main/js/sap/ushell/{renderers/fiori2 → renderer}/utils.js +0 -0
@@ -3,7 +3,7 @@
3
3
  /**
4
4
  * @fileOverview The Unified Shell's page building service.
5
5
  *
6
- * @version 1.119.3
6
+ * @version 1.120.1
7
7
  */
8
8
  sap.ui.define([
9
9
  "sap/ui/thirdparty/jquery"
@@ -13,16 +13,19 @@ sap.ui.define([
13
13
  "use strict";
14
14
 
15
15
  /**
16
- * This method MUST be called by the Unified Shell's container only, others MUST call
17
- * <code>sap.ushell.Container.getServiceAsync("PageBuilding").then(function (PageBuilding) {});</code>.
18
- * Constructs a new instance of the page building service.
16
+ * @alias sap.ushell.services.PageBuilding
17
+ * @class
18
+ * @classdesc The Unified Shell's page building service.
19
19
  *
20
- * @param {object} oAdapter
21
- * the page building adapter for the logon system
20
+ * <b>Note:</b> To retrieve a valid instance of this service, it is necessary to call
21
+ * <code>sap.ushell.Container.getServiceAsync("PageBuilding")</code>. For details, see
22
+ * {@link sap.ushell.services.Container#getServiceAsync}.
22
23
  *
23
- * @class The Unified Shell's page building service.
24
+ * @param {object} oAdapter The page building adapter for the logon system
25
+ * @param {object} oContainerInterface The interface provided by the container
26
+ *
27
+ * @hideconstructor
24
28
  *
25
- * @see sap.ushell.services.Container#getServiceAsync
26
29
  * @since 1.15.0
27
30
  * @private
28
31
  */
@@ -1,31 +1,34 @@
1
1
  // Copyright (c) 2009-2023 SAP SE, All Rights Reserved
2
+
2
3
  /**
3
4
  * @fileOverview <p>This module deals with the page persistence.</p>
4
5
  *
5
6
  * It provides the layout and tile data of pages in the pages runtime.
6
7
  * Only used on the ABAP platform and on local for testing.
7
8
  *
8
- * @version 1.119.3
9
+ * @version 1.120.1
9
10
  */
10
11
  sap.ui.define([], function () {
11
12
  "use strict";
12
13
 
13
14
  /**
14
- * This method MUST be called by the Unified Shell's container only, others MUST call
15
- * <code>sap.ushell.Container.getServiceAsync("PagePersistence").then(function (PagePersistence) {});</code>.
16
- * Constructs a new instance of the page persistence service.
15
+ * @alias sap.ushell.services.PagePersistence
16
+ * @class
17
+ * @classdesc The Unified Shell's PagePersistence service.
17
18
  *
18
- * @namespace sap.ushell.services.PagePersistence
19
+ * <b>Note:</b> To retrieve a valid instance of this service, it is necessary to call
20
+ * <code>sap.ushell.Container.getServiceAsync("PagePersistence")</code>. For details, see
21
+ * {@link sap.ushell.services.Container#getServiceAsync}.
19
22
  *
20
23
  * @param {object} adapter
21
24
  * the page persistency adapter for the frontend server
22
25
  * @param {object} serviceConfiguration
23
26
  * the page persistency service configuration
24
27
  *
25
- * @class
26
- * @see sap.ushell.services.Container#getServiceAsync
27
- * @experimental Since 1.67.0
28
+ * @hideconstructor
28
29
  *
30
+ * @since 1.67.0
31
+ * @experimental Since 1.67.0
29
32
  * @private
30
33
  */
31
34
  function PagePersistence (/*adapter, serviceConfiguration*/) {
@@ -2,7 +2,7 @@
2
2
 
3
3
  /**
4
4
  * @fileOverview This module deals with page related referencing and dereferencing.
5
- * @version 1.119.3
5
+ * @version 1.120.1
6
6
  */
7
7
  sap.ui.define([
8
8
  "sap/ushell/services/_PageReferencing/PageReferencer"
@@ -10,15 +10,18 @@ sap.ui.define([
10
10
  "use strict";
11
11
 
12
12
  /**
13
- * This method MUST be called by the Unified Shell's container only, others MUST call
14
- * <code>sap.ushell.Container.getServiceAsync("PageReferencing").then(function (PageReferencing) {});</code>.
15
- * Constructs a new instance of the page referencing service.
16
- *
17
- * @namespace sap.ushell.services.PageReferencing
13
+ * @alias sap.ushell.services.PageReferencing
18
14
  * @class
19
- * @see sap.ushell.services.Container#getServiceAsync
20
- * @experimental Since 1.68.0
15
+ * @classdesc The Unified Shell's PageReferencing service.
16
+ *
17
+ * <b>Note:</b> To retrieve a valid instance of this service, it is necessary to call
18
+ * <code>sap.ushell.Container.getServiceAsync("PageReferencing")</code>. For details, see
19
+ * {@link sap.ushell.services.Container#getServiceAsync}.
21
20
  *
21
+ * @hideconstructor
22
+ *
23
+ * @since 1.68.0
24
+ * @experimental Since 1.68.0
22
25
  * @private
23
26
  */
24
27
  function PageReferencing () { }
@@ -2,7 +2,7 @@
2
2
 
3
3
  /**
4
4
  * @fileOverview This module exposes a model containing the pages hierarchy to its clients.
5
- * @version 1.119.3
5
+ * @version 1.120.1
6
6
  */
7
7
  sap.ui.define([
8
8
  "sap/base/Log",
@@ -34,16 +34,17 @@ sap.ui.define([
34
34
  "use strict";
35
35
 
36
36
  /**
37
- * This method MUST be called by the Unified Shell's container only, others MUST call
38
- * <code>sap.ushell.Container.getServiceAsync("PageReferencing").then(function (PageReferencing) {});</code>.
39
- * Constructs a new instance of the page referencing service.
37
+ * @alias sap.ushell.services.Pages
38
+ * @class
39
+ * @classdesc The Unified Shell's Pages service.
40
40
  *
41
- * @namespace sap.ushell.services.PageReferencing
41
+ * <b>Note:</b> To retrieve a valid instance of this service, it is necessary to call
42
+ * <code>sap.ushell.Container.getServiceAsync("Pages")</code>. For details, see
43
+ * {@link sap.ushell.services.Container#getServiceAsync}.
42
44
  *
43
- * @class
44
- * @see {@link sap.ushell.services.Container#getServiceAsync}
45
- * @since 1.72.0
45
+ * @hideconstructor
46
46
  *
47
+ * @since 1.72.0
47
48
  * @private
48
49
  */
49
50
  var Pages = function () {
@@ -201,7 +202,6 @@ sap.ui.define([
201
202
  * @private
202
203
  */
203
204
  Pages.prototype.loadPages = function (aPageIds) {
204
-
205
205
  return this._oCdmServicePromise
206
206
  .then(function (oCdmService) {
207
207
  // load and cache all the pages with a single request
@@ -1169,7 +1169,6 @@ sap.ui.define([
1169
1169
  * @private
1170
1170
  */
1171
1171
  Pages.prototype._getModelForPage = function (page, visualizations, applications, vizTypes) {
1172
-
1173
1172
  var oPage = {
1174
1173
  id: (page && page.identification && page.identification.id) || "",
1175
1174
  title: (page && page.identification && page.identification.title) || "",
@@ -1255,7 +1254,7 @@ sap.ui.define([
1255
1254
  }
1256
1255
  return bIntentSupported;
1257
1256
  }.bind(this, i)));
1258
- }
1257
+ }
1259
1258
 
1260
1259
  return Promise.all(aPromises).then(function (aResults) {
1261
1260
  if (aResults.indexOf(false) !== -1) {
@@ -1447,7 +1446,6 @@ sap.ui.define([
1447
1446
  }
1448
1447
  }
1449
1448
 
1450
-
1451
1449
  // Add visualization to existing default section, update model & site, save personalization
1452
1450
  oSectionToAdd.visualizations.push(oVizData);
1453
1451
  this._oPagesModel.refresh();
@@ -1569,8 +1567,7 @@ sap.ui.define([
1569
1567
  pageId: oPage.identification.id
1570
1568
  });
1571
1569
  }
1572
- })
1573
- .then(function () {
1570
+ }).then(function () {
1574
1571
  return aVizReferences;
1575
1572
  });
1576
1573
  }.bind(this));
@@ -1840,7 +1837,6 @@ sap.ui.define([
1840
1837
  };
1841
1838
  });
1842
1839
  }.bind(this));
1843
-
1844
1840
  };
1845
1841
 
1846
1842
  /**
@@ -4,7 +4,8 @@
4
4
  * @fileOverview The Unified Shell's personalization service, which provides generic read and write access to the currently logged on user's
5
5
  * personalization settings for the app currently executed in the shell.
6
6
  *
7
- * @version 1.119.3
7
+ * @version 1.120.1
8
+ * @deprecated since 1.120 Please use {@link sap.ushell.services.PersonalizationV2} instead
8
9
  */
9
10
  sap.ui.define([
10
11
  "sap/base/Log",
@@ -16,14 +17,14 @@ sap.ui.define([
16
17
  "sap/ushell/services/_Personalization/utils",
17
18
  "sap/ushell/services/_Personalization/constants",
18
19
  "sap/ushell/services/_Personalization/ContextContainer",
19
- "sap/ushell/services/_Personalization/WindowAdapter",
20
+ "sap/ushell/services/PersonalizationV2/WindowAdapter",
20
21
  "sap/ushell/services/_Personalization/TransientPersonalizer", // private
21
22
  "sap/ushell/services/_Personalization/PersonalizationContainer", // private
22
23
  "sap/ushell/services/_Personalization/Personalizer", // private
23
24
  "sap/ushell/services/personalization/VariantSetAdapter",
24
25
  "sap/ushell/services/_Personalization/Variant",
25
26
  "sap/ushell/services/_Personalization/VariantSet",
26
- "sap/ushell/services/_Personalization/WindowAdapterContainer"
27
+ "sap/ushell/services/PersonalizationV2/WindowAdapterContainer"
27
28
  ], function (
28
29
  Log,
29
30
  ManagedObject,
@@ -76,6 +77,7 @@ sap.ui.define([
76
77
  *
77
78
  * @see sap.ushell.services.Container#getServiceAsync
78
79
  * @since 1.15.0
80
+ * @deprecated since 1.120 Please use {@link sap.ushell.services.PersonalizationV2} instead
79
81
  */
80
82
  function Personalization (oAdapter, oContainerInterface, sParameter, oConfig) {
81
83
  this._oConfig = (oConfig && oConfig.config) || {};
@@ -0,0 +1,410 @@
1
+ // Copyright (c) 2009-2023 SAP SE, All Rights Reserved
2
+ sap.ui.define([
3
+ "sap/ushell/utils",
4
+ "sap/ushell/services/PersonalizationV2/utils",
5
+ "sap/ushell/services/PersonalizationV2/constants.private",
6
+ "sap/ui/core/format/DateFormat",
7
+ "sap/ui/core/UIComponent",
8
+ "sap/ui/thirdparty/jquery",
9
+ "sap/base/Log"
10
+ ], function (ushellUtils, personalizationUtils, constants, DateFormat, UIComponent, jQuery, Log) {
11
+ "use strict";
12
+
13
+ /**
14
+ * To be called by the personalization service getContainer method.
15
+ *
16
+ * @name sap.ushell.services.PersonalizationV2.ContextContainer
17
+ * @class The container is the anchor object of the unified shell
18
+ * personalization in container mode.
19
+ *
20
+ * @since 1.120.0
21
+ * @public
22
+ */
23
+
24
+ function ContextContainer (/* args... */) {
25
+ this._init.apply(this, arguments);
26
+ }
27
+
28
+ // Need an _init method to be exposed (in this case in the prototype) when
29
+ // the dependency is consumed. In this way it's possible to spy on the
30
+ // constructor call.
31
+ ContextContainer.prototype._init = function (oService, oAdapter, sContainerKey, oScope, oComponent) {
32
+ this._oService = oService;
33
+ this._sContainerKey = sContainerKey;
34
+ this._oAdapterContainer = {};
35
+ this._oScope = oScope || personalizationUtils.adjustScope(oScope);
36
+ this._aLoadedKeys = [];
37
+ this._oUnmodifiableContainer = undefined;
38
+ let sAppName;
39
+
40
+ if (!(oComponent instanceof UIComponent) && oComponent !== undefined) {
41
+ throw new Error("oComponent passed is not a UI5 Component and not undefined");
42
+ }
43
+
44
+ if (oComponent && oComponent.getMetadata && oComponent.getMetadata().getComponentName) {
45
+ sAppName = oComponent.getMetadata().getComponentName();
46
+ }
47
+
48
+ this.clearData();
49
+ if (!this._sContainerKey || typeof this._sContainerKey !== "string") {
50
+ throw new Error("Invalid container key: sap.ushell.services.PersonalizationV2");
51
+ }
52
+ this._oAdapterContainer = oAdapter.getAdapterContainer(this._sContainerKey, this._oScope, sAppName);
53
+ return this;
54
+ };
55
+
56
+ /**
57
+ * return the validity of this container
58
+ * @returns {int} The validity of the container.
59
+ *
60
+ * @since 1.120.0
61
+ * @private
62
+ */
63
+ ContextContainer.prototype._getValidity = function () {
64
+ return this._oScope.validity;
65
+ };
66
+
67
+ /**
68
+ * clears the local copy data of this container
69
+ *
70
+ * @since 1.120.0
71
+ * @public
72
+ */
73
+ ContextContainer.prototype.clearData = function () {
74
+ // resets all member variables of the personalization container
75
+ this._oItemMap = {};
76
+ this._aLoadedItemKeys = [];
77
+ this._clear = true;
78
+ this._oItemMap = new ushellUtils.Map();
79
+ };
80
+
81
+
82
+ /**
83
+ * (Re)loads the current container data from the underlying storage asynchronously.
84
+ * The current local data is discarded.
85
+ *
86
+ * Returns a promise for the load operation.
87
+ * If another save/load/delete operation is not completed, the operation may fail!
88
+ * (wait for the other promise).
89
+ *
90
+ * Synchronous read and write operations before the load is done have undefined
91
+ * effects.
92
+ *
93
+ * @returns {Promise<object>} Promise object
94
+ *
95
+ * @since 1.120.0
96
+ * @public
97
+ */
98
+ ContextContainer.prototype.load = function () {
99
+ const oDeferred = new jQuery.Deferred();
100
+ if (!this._sContainerKey) {
101
+ throw new Error("Invalid container key: sap.ushell.services.PersonalizationV2");
102
+ }
103
+ // delete local data
104
+ this.clearData();
105
+ const oPrior = this._oService._pendingContainerOperations_flushAddNext(this._sContainerKey, oDeferred);
106
+ // get adapter container & load
107
+ const that = this;
108
+ oPrior.always(() => {
109
+ that._oAdapterContainer.load()
110
+ .fail(function () {
111
+ // TODO
112
+ oDeferred.reject();
113
+ })
114
+ .done(() => {
115
+ that._copyFromAdapter();
116
+ if (that.isExpired()) {
117
+ that.clearData();
118
+ }
119
+ oDeferred.resolve();
120
+ });
121
+ });
122
+ return ushellUtils.promisify(oDeferred.promise());
123
+ };
124
+
125
+ /**
126
+ * Copy data from adapter to local storage
127
+ *
128
+ * @since 1.120.0
129
+ * @private
130
+ */
131
+ ContextContainer.prototype._copyFromAdapter = function () {
132
+ const aAllKeys = this._oAdapterContainer.getItemKeys().splice(0);
133
+ aAllKeys.forEach((sItemKey) => {
134
+ this._oItemMap.put(sItemKey, JSON.stringify(this._oAdapterContainer.getItemValue(sItemKey)));
135
+ });
136
+ this._aLoadedItemKeys = this._oItemMap.keys().splice(0);
137
+ };
138
+
139
+
140
+ /**
141
+ * @returns {boolean} Whether this container is expired
142
+ *
143
+ * @since 1.120.0
144
+ * @private
145
+ */
146
+ ContextContainer.prototype.isExpired = function () {
147
+ if (this._getValidity() === Infinity || this._getValidity() === 0) {
148
+ return false;
149
+ }
150
+ const sTimestampExpire = this._getItemValueInternal(constants.S_ADMIN_PREFIX, constants.S_ITEMKEY_EXPIRE);
151
+ const oFormatter = DateFormat.getDateInstance({ pattern: constants.S_ABAPTIMESTAMPFORMAT });
152
+ const sTimestampNow = oFormatter.format(new Date(), true);
153
+ return sTimestampExpire && sTimestampNow > sTimestampExpire;
154
+ };
155
+
156
+ /**
157
+ * todo: jsdoc
158
+ * @since 1.120.0
159
+ * @private
160
+ */
161
+ ContextContainer.prototype._copyToAdapterUpdatingValidity = function () {
162
+ let aItemKeys = [];
163
+ if (this._clear) {
164
+ aItemKeys = this._oAdapterContainer.getItemKeys().splice(0);
165
+ aItemKeys.forEach((sItemKey) => {
166
+ this._oAdapterContainer.delItem(sItemKey);
167
+ });
168
+ this._clear = false;
169
+ }
170
+ if (this._getValidity() === Infinity || this._getValidity() === 0) {
171
+ this._delItemInternal(constants.S_ADMIN_PREFIX, constants.S_ITEMKEY_SCOPE);
172
+ this._delItemInternal(constants.S_ADMIN_PREFIX, constants.S_ITEMKEY_EXPIRE);
173
+ this._delItemInternal(constants.S_ADMIN_PREFIX, constants.S_ITEMKEY_STORAGE);
174
+ } else {
175
+ const oFormatter = DateFormat.getDateInstance({ pattern: constants.S_ABAPTIMESTAMPFORMAT });
176
+ const oNow = new Date();
177
+ const sTimestampStorage = oFormatter.format(oNow, true); // true UTC times !
178
+ const sTimestampExpire = oFormatter.format(new Date(oNow.getTime() + this._getValidity() * 60000), /*UTC!*/ true);
179
+ this._setItemValueInternal(constants.S_ADMIN_PREFIX, constants.S_ITEMKEY_SCOPE, this._oScope);
180
+ this._setItemValueInternal(constants.S_ADMIN_PREFIX, constants.S_ITEMKEY_EXPIRE, sTimestampExpire);
181
+ this._setItemValueInternal(constants.S_ADMIN_PREFIX, constants.S_ITEMKEY_STORAGE, sTimestampStorage);
182
+ }
183
+ aItemKeys = this._oItemMap.keys();
184
+ aItemKeys.forEach((sItemKey) => {
185
+ this._oAdapterContainer.setItemValue(sItemKey, personalizationUtils.cloneToObject(this._oItemMap.get(sItemKey)));
186
+ });
187
+ const aDiff = this._aLoadedItemKeys.filter(function (sItemKey) { return !(aItemKeys.indexOf(sItemKey) > -1); });
188
+ aDiff.forEach((sItemKey) => {
189
+ this._oAdapterContainer.delItem(sItemKey);
190
+ });
191
+ };
192
+
193
+ /**
194
+ * * todo: jsdoc
195
+ * Save the current container data at the underlying storage asynchronously at the earlies
196
+ * nDelayInMilliseconds seconds before.
197
+ * The current state is serialized.
198
+ *
199
+ * @param {int} nDelayInMilliseconds
200
+ * @returns {Promise} Promise object
201
+ *
202
+ * The operation may wait for completion of another pending operation.
203
+ *
204
+ * @since 1.120.0
205
+ * @public
206
+ */
207
+ ContextContainer.prototype.save = function (nDelayInMilliseconds) {
208
+ this._copyToAdapterUpdatingValidity();
209
+ const oSaveDeferred = new jQuery.Deferred();
210
+
211
+ const oPrior = this._oService._pendingContainerOperations_cancelAddNext(this._sContainerKey, oSaveDeferred);
212
+
213
+ const that = this;
214
+ function fnDelayedSave () {
215
+ oPrior.always(function () {
216
+ try {
217
+ that._oAdapterContainer.save() // promise
218
+ .fail(function () { oSaveDeferred.reject(); })
219
+ .done(function () { oSaveDeferred.resolve(); });
220
+ } catch (e) {
221
+ oSaveDeferred.reject();
222
+ }
223
+ });
224
+ }
225
+
226
+ oSaveDeferred._sapFnSave = fnDelayedSave;
227
+ oSaveDeferred._sapTimeoutId = setTimeout(fnDelayedSave, nDelayInMilliseconds);
228
+ // we want to delay at least 200 ms,
229
+ return ushellUtils.promisify(oSaveDeferred.promise());
230
+ };
231
+
232
+ /**
233
+ * flush all pending request;
234
+ * The result of the promise may reflect the last pending operation in the queue
235
+ * @returns {Promise} promise
236
+ *
237
+ * @since 1.120.0
238
+ * @public
239
+ */
240
+ ContextContainer.prototype.flushPendingRequests = function () {
241
+ this._copyToAdapterUpdatingValidity();
242
+ const oSaveDeferred = new jQuery.Deferred();
243
+ const oPrior = this._oService._pendingContainerOperations_flushAddNext(this._sContainerKey, oSaveDeferred);
244
+ oPrior
245
+ .fail(function () { oSaveDeferred.reject(); })
246
+ .done(function () { oSaveDeferred.resolve(); });
247
+ return ushellUtils.promisify(oSaveDeferred.promise());
248
+ };
249
+
250
+ /**
251
+ * Returns an array with the keys of direct items in the container.
252
+ * @returns {string[]} item keys
253
+ *
254
+ * @since 1.120.0
255
+ * @public
256
+ */
257
+ ContextContainer.prototype.getItemKeys = function () {
258
+ // return a list of the (prefix stripped) "Item" keys.
259
+ const aFilteredTrueItemKeys = this._oItemMap.keys().filter(function (s) {
260
+ return s.startsWith(constants.S_ITEM_PREFIX);
261
+ });
262
+ return aFilteredTrueItemKeys.map(function (sEntry) {
263
+ return sEntry.replace(constants.S_ITEM_PREFIX, "", "");
264
+ });
265
+ };
266
+
267
+ /**
268
+ * Returns an array with all internal keys of direct items in the container.
269
+ * @returns {string[]} item keys
270
+ *
271
+ * @since 1.120.0
272
+ * @private
273
+ */
274
+ ContextContainer.prototype._getInternalKeys = function () {
275
+ return this._oItemMap.keys().splice(0);
276
+ };
277
+
278
+ /**
279
+ * Returns the value for a direct item from the container.
280
+ * (Value semantics, new copy is returned)
281
+ * @param {string} sItemKey
282
+ * item key
283
+ * @returns {object}
284
+ * item value (JSON object). In case the container does not contain a direct item with this key
285
+ * <code>undefined</code> is returned.
286
+ *
287
+ * @since 1.120.0
288
+ * @public
289
+ */
290
+ ContextContainer.prototype.getItemValue = function (sItemKey) {
291
+ return this._getItemValueInternal(constants.S_ITEM_PREFIX, sItemKey);
292
+ };
293
+
294
+ /**
295
+ * todo: jsdoc
296
+ * @param {*} sPrefix
297
+ * @param {*} sItemKey
298
+ * @returns {*}
299
+ *
300
+ * @since 1.120.0
301
+ * @private
302
+ */
303
+ ContextContainer.prototype._getItemValueInternal = function (sPrefix, sItemKey) {
304
+ if (typeof sItemKey !== "string" || typeof sPrefix !== "string") {
305
+ return undefined;
306
+ }
307
+ return personalizationUtils.cloneToObject(this._oItemMap.get(sPrefix + sItemKey));
308
+ };
309
+
310
+ /**
311
+ * Checks if a specific direct item is contained in the container.
312
+ * @param {string} sItemKey item key
313
+ * @returns {boolean} <code>true</code> if the container contains a direct item with the key
314
+ *
315
+ * @since 1.120.0
316
+ * @public
317
+ */
318
+ ContextContainer.prototype.containsItem = function (sItemKey) {
319
+ if (typeof sItemKey !== "string") {
320
+ return undefined;
321
+ }
322
+ return this._oItemMap.containsKey(constants.S_ITEM_PREFIX + sItemKey);
323
+ };
324
+
325
+ /**
326
+ * Sets the value of a direct item in the container.
327
+ * In case the item is already existing its value is overwritten. In case it is not
328
+ * existing a new item with this key and value is created.
329
+ * The value is serialized during set
330
+ * @param {string} sItemKey item key. The string length is restricted to 40 characters
331
+ * @param {object} oItemValue item value (JSON object)
332
+ *
333
+ * @since 1.120.0
334
+ * @public
335
+ */
336
+ ContextContainer.prototype.setItemValue = function (sItemKey, oItemValue) {
337
+ this._setItemValueInternal(constants.S_ITEM_PREFIX, sItemKey, oItemValue);
338
+ };
339
+
340
+ /**
341
+ * todo: jsdoc
342
+ * @param {*} sItemPrefix
343
+ * @param {*} sItemKey
344
+ * @param {*} oItemValue
345
+ *
346
+ * @since 1.120.0
347
+ * @private
348
+ */
349
+ ContextContainer.prototype._setItemValueInternal = function (sItemPrefix, sItemKey, oItemValue) {
350
+ if (typeof sItemKey !== "string" || typeof sItemPrefix !== "string") {
351
+ throw Error("Parameter value of sItemKey or sItemValue is not a string: sap.ushell.services.PersonalizationV2");
352
+ }
353
+
354
+ if (sItemKey.length > 40) {
355
+ Log.error(
356
+ "Personalization Service item key/variant set name (\""
357
+ + sItemKey
358
+ + "\") should be less than 40 characters [current :"
359
+ + sItemKey.length
360
+ + "]"
361
+ );
362
+ }
363
+
364
+ this._oItemMap.put(sItemPrefix + sItemKey, JSON.stringify(oItemValue));
365
+ };
366
+
367
+ /**
368
+ * Deletes a direct item from the container.
369
+ * In case the item does not exist, nothing happens.
370
+ * @param {string} sItemKey item key
371
+ *
372
+ * @since 1.120.0
373
+ * @public
374
+ */
375
+ ContextContainer.prototype.deleteItem = function (sItemKey) {
376
+ this._delItemInternal(constants.S_ITEM_PREFIX, sItemKey);
377
+ };
378
+
379
+ /**
380
+ * todo: jsdoc
381
+ * @param {*} sPrefix
382
+ * @param {*} sItemKey
383
+ * @returns {*}
384
+ *
385
+ * @since 1.120.0
386
+ * @private
387
+ */
388
+ ContextContainer.prototype._delItemInternal = function (sPrefix, sItemKey) {
389
+ if (typeof sItemKey !== "string") {
390
+ return undefined;
391
+ }
392
+ if (typeof sPrefix !== "string") {
393
+ return undefined;
394
+ }
395
+ this._oItemMap.remove(sPrefix + sItemKey);
396
+ };
397
+
398
+ /**
399
+ * return the container key as a string variable
400
+ * @returns {string} the container key
401
+ *
402
+ * @since 1.120.0
403
+ * @public
404
+ */
405
+ ContextContainer.prototype.getKey = function () {
406
+ return this._sContainerKey.substring(constants.S_CONTAINER_PREFIX.length);
407
+ };
408
+
409
+ return ContextContainer;
410
+ });