@sapui5/sap.ushell 1.120.8 → 1.121.0

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 (720) hide show
  1. package/package.json +2 -2
  2. package/src/main/js/sap/ushell/.library +1 -1
  3. package/src/main/js/sap/ushell/AppInfoParameters.js +46 -49
  4. package/src/main/js/sap/ushell/CanvasShapesManager.js +8 -7
  5. package/src/main/js/sap/ushell/Container.js +333 -108
  6. package/src/main/js/sap/ushell/EventHub.js +6 -9
  7. package/src/main/js/sap/ushell/Fiori20Adapter.js +6 -7
  8. package/src/main/js/sap/ushell/Fiori20AdapterTest.js +5 -7
  9. package/src/main/js/sap/ushell/Layout.js +20 -16
  10. package/src/main/js/sap/ushell/NWBCInterface.js +1 -1
  11. package/src/main/js/sap/ushell/SessionHandler.js +20 -12
  12. package/src/main/js/sap/ushell/System.js +4 -2
  13. package/src/main/js/sap/ushell/TechnicalParameters.js +34 -57
  14. package/src/main/js/sap/ushell/UIActions.js +28 -39
  15. package/src/main/js/sap/ushell/URLTemplateProcessor.js +1 -1
  16. package/src/main/js/sap/ushell/Ui5NativeServiceFactory.js +8 -7
  17. package/src/main/js/sap/ushell/Ui5ServiceFactory.js +10 -10
  18. package/src/main/js/sap/ushell/User.js +6 -4
  19. package/src/main/js/sap/ushell/UserActivityLog.js +13 -11
  20. package/src/main/js/sap/ushell/_ApplicationType/guiResolution.js +15 -19
  21. package/src/main/js/sap/ushell/_ApplicationType/systemAlias.js +5 -3
  22. package/src/main/js/sap/ushell/_ApplicationType/ui5Resolution.js +11 -10
  23. package/src/main/js/sap/ushell/_ApplicationType/urlTemplateResolution.js +17 -15
  24. package/src/main/js/sap/ushell/_ApplicationType/utils.js +7 -7
  25. package/src/main/js/sap/ushell/_ApplicationType/wdaResolution.js +8 -6
  26. package/src/main/js/sap/ushell/_Config/utils.js +1 -1
  27. package/src/main/js/sap/ushell/_URLTemplateProcessor/DefinitionParameterSetBuilder.js +1 -1
  28. package/src/main/js/sap/ushell/_URLTemplateProcessor/DependencyGraph.js +1 -1
  29. package/src/main/js/sap/ushell/_URLTemplateProcessor/Functions.js +1 -1
  30. package/src/main/js/sap/ushell/_URLTemplateProcessor/Resolvers.js +2 -2
  31. package/src/main/js/sap/ushell/_URLTemplateProcessor/TemplateParameterParser.js +1 -1
  32. package/src/main/js/sap/ushell/_URLTemplateProcessor/utils.js +1 -1
  33. package/src/main/js/sap/ushell/adapters/AppVariantPersonalizationAdapter.js +5 -3
  34. package/src/main/js/sap/ushell/adapters/cdm/ClientSideTargetResolutionAdapter.js +6 -11
  35. package/src/main/js/sap/ushell/adapters/cdm/CommonDataModelAdapter.js +6 -16
  36. package/src/main/js/sap/ushell/adapters/cdm/ConfigurationDefaultsAdapter.js +1 -1
  37. package/src/main/js/sap/ushell/adapters/cdm/ContainerAdapter.js +18 -14
  38. package/src/main/js/sap/ushell/adapters/cdm/LaunchPageAdapter.js +16 -21
  39. package/src/main/js/sap/ushell/adapters/cdm/PagesCommonDataModelAdapter.js +7 -18
  40. package/src/main/js/sap/ushell/adapters/cdm/PersonalizationAdapter.js +1 -1
  41. package/src/main/js/sap/ushell/adapters/cdm/PersonalizationV2Adapter.js +1 -1
  42. package/src/main/js/sap/ushell/adapters/cdm/Ui5ComponentLoaderAdapter.js +1 -1
  43. package/src/main/js/sap/ushell/adapters/cdm/_LaunchPage/modifyHome.js +1 -1
  44. package/src/main/js/sap/ushell/adapters/cdm/_LaunchPage/readCatalogs.js +1 -1
  45. package/src/main/js/sap/ushell/adapters/cdm/_LaunchPage/readHome.js +1 -1
  46. package/src/main/js/sap/ushell/adapters/cdm/_LaunchPage/uri.transform.js +1 -1
  47. package/src/main/js/sap/ushell/adapters/cdm/_Personalization/internals.js +9 -9
  48. package/src/main/js/sap/ushell/adapters/cdm/util/AppForInbound.js +1 -1
  49. package/src/main/js/sap/ushell/adapters/cdm/util/cdmSiteUtils.js +1 -1
  50. package/src/main/js/sap/ushell/adapters/cdm/v3/AdapterBase.js +36 -13
  51. package/src/main/js/sap/ushell/adapters/cdm/v3/FlpLaunchPageAdapter.js +2629 -0
  52. package/src/main/js/sap/ushell/adapters/cdm/v3/LaunchPageAdapter.js +4 -2525
  53. package/src/main/js/sap/ushell/adapters/cdm/v3/StaticGroupsAdapter.js +1 -1
  54. package/src/main/js/sap/ushell/adapters/cdm/v3/_LaunchPage/readApplications.js +1 -1
  55. package/src/main/js/sap/ushell/adapters/cdm/v3/_LaunchPage/readCatalogs.js +1 -1
  56. package/src/main/js/sap/ushell/adapters/cdm/v3/_LaunchPage/readHome.js +13 -1
  57. package/src/main/js/sap/ushell/adapters/cdm/v3/_LaunchPage/readPages.js +1 -1
  58. package/src/main/js/sap/ushell/adapters/cdm/v3/_LaunchPage/readUtils.js +91 -25
  59. package/src/main/js/sap/ushell/adapters/cdm/v3/_LaunchPage/readVisualizations.js +1 -1
  60. package/src/main/js/sap/ushell/adapters/cep/MenuAdapter.js +6 -6
  61. package/src/main/js/sap/ushell/adapters/cep/NavTargetResolutionAdapter.js +31 -6
  62. package/src/main/js/sap/ushell/adapters/cep/SearchCEPAdapter.js +7 -6
  63. package/src/main/js/sap/ushell/adapters/cflp/UserDefaultParameterPersistenceAdapter.js +10 -20
  64. package/src/main/js/sap/ushell/adapters/local/AdapterContainer.js +1 -1
  65. package/src/main/js/sap/ushell/adapters/local/AppStateAdapter.js +14 -19
  66. package/src/main/js/sap/ushell/adapters/local/ClientSideTargetResolutionAdapter.js +18 -20
  67. package/src/main/js/sap/ushell/adapters/local/ContainerAdapter.js +25 -18
  68. package/src/main/js/sap/ushell/adapters/local/FlpLaunchPageAdapter.js +1558 -0
  69. package/src/main/js/sap/ushell/adapters/local/LaunchPageAdapter.js +4 -1551
  70. package/src/main/js/sap/ushell/adapters/local/MenuAdapter.js +3 -3
  71. package/src/main/js/sap/ushell/adapters/local/NavTargetResolutionAdapter.js +2 -4
  72. package/src/main/js/sap/ushell/adapters/local/PageBuildingAdapter.js +1 -1
  73. package/src/main/js/sap/ushell/adapters/local/PagePersistenceAdapter.js +1 -1
  74. package/src/main/js/sap/ushell/adapters/local/PersonalizationAdapter.js +11 -8
  75. package/src/main/js/sap/ushell/adapters/local/PersonalizationV2Adapter.js +1 -1
  76. package/src/main/js/sap/ushell/adapters/local/SearchAdapter.js +1 -1
  77. package/src/main/js/sap/ushell/adapters/local/SearchCEPAdapter.js +1 -1
  78. package/src/main/js/sap/ushell/adapters/local/SupportTicketAdapter.js +1 -1
  79. package/src/main/js/sap/ushell/adapters/local/Ui5ComponentLoaderAdapter.js +1 -1
  80. package/src/main/js/sap/ushell/adapters/local/UserDefaultParameterPersistenceAdapter.js +11 -23
  81. package/src/main/js/sap/ushell/adapters/local/UserInfoAdapter.js +1 -1
  82. package/src/main/js/sap/ushell/api/RTA.js +27 -0
  83. package/src/main/js/sap/ushell/api/workpage/Designtime.js +69 -0
  84. package/src/main/js/sap/ushell/api/workpage/Runtime.js +97 -0
  85. package/src/main/js/sap/ushell/appRuntime/neo/AppInfoService.js +12 -3
  86. package/src/main/js/sap/ushell/appRuntime/neo/AppRuntimeNeo.js +4 -0
  87. package/src/main/js/sap/ushell/appRuntime/neo/ProxyAppUtils.js +4 -0
  88. package/src/main/js/sap/ushell/appRuntime/ui5/AppRuntime.js +82 -78
  89. package/src/main/js/sap/ushell/appRuntime/ui5/AppRuntimeContext.js +4 -3
  90. package/src/main/js/sap/ushell/appRuntime/ui5/AppRuntimeService.js +8 -0
  91. package/src/main/js/sap/ushell/appRuntime/ui5/SessionHandlerAgent.js +35 -37
  92. package/src/main/js/sap/ushell/appRuntime/ui5/performance/FesrEnhancer.js +4 -5
  93. package/src/main/js/sap/ushell/appRuntime/ui5/plugins/baseRta/AppLifeCycleUtils.js +2 -8
  94. package/src/main/js/sap/ushell/appRuntime/ui5/plugins/baseRta/Trigger.js +9 -5
  95. package/src/main/js/sap/ushell/appRuntime/ui5/plugins/rtaAgent/Component.js +6 -4
  96. package/src/main/js/sap/ushell/appRuntime/ui5/plugins/rtaAgent/i18n/i18n_en_US_saprigi.properties +5 -5
  97. package/src/main/js/sap/ushell/appRuntime/ui5/plugins/rtaAgent/i18n/i18n_sh.properties +3 -3
  98. package/src/main/js/sap/ushell/appRuntime/ui5/plugins/rtaShell/Component.js +4 -3
  99. package/src/main/js/sap/ushell/appRuntime/ui5/plugins/rtaShell/i18n/i18n_en_US_saprigi.properties +2 -2
  100. package/src/main/js/sap/ushell/appRuntime/ui5/plugins/rtaShell/i18n/i18n_sh.properties +1 -1
  101. package/src/main/js/sap/ushell/appRuntime/ui5/renderers/fiori2/AccessKeysAgent.js +1 -1
  102. package/src/main/js/sap/ushell/appRuntime/ui5/renderers/fiori2/Renderer.js +14 -14
  103. package/src/main/js/sap/ushell/appRuntime/ui5/renderers/fiori2/RendererExtensions.js +2 -2
  104. package/src/main/js/sap/ushell/appRuntime/ui5/services/AppConfiguration.js +1 -1
  105. package/src/main/js/sap/ushell/appRuntime/ui5/services/AppLifeCycleAgent.js +39 -39
  106. package/src/main/js/sap/ushell/appRuntime/ui5/services/AppState.js +15 -16
  107. package/src/main/js/sap/ushell/appRuntime/ui5/services/Bookmark.js +12 -54
  108. package/src/main/js/sap/ushell/appRuntime/ui5/services/BookmarkV2.js +154 -0
  109. package/src/main/js/sap/ushell/appRuntime/ui5/services/CommonDataModel.js +1 -3
  110. package/src/main/js/sap/ushell/appRuntime/ui5/services/Container.js +221 -206
  111. package/src/main/js/sap/ushell/appRuntime/ui5/services/CrossApplicationNavigation.js +15 -14
  112. package/src/main/js/sap/ushell/appRuntime/ui5/services/MessageBroker.js +5 -5
  113. package/src/main/js/sap/ushell/appRuntime/ui5/services/NavTargetResolution.js +10 -14
  114. package/src/main/js/sap/ushell/appRuntime/ui5/services/Navigation.js +212 -0
  115. package/src/main/js/sap/ushell/appRuntime/ui5/services/ShellNavigation.js +6 -5
  116. package/src/main/js/sap/ushell/appRuntime/ui5/services/ShellNavigationInternal.js +67 -0
  117. package/src/main/js/sap/ushell/appRuntime/ui5/services/ShellUIService.js +4 -4
  118. package/src/main/js/sap/ushell/appRuntime/ui5/services/UserInfo.js +9 -3
  119. package/src/main/js/sap/ushell/appRuntime/ui5/services/adapters/ContainerAdapter.js +9 -10
  120. package/src/main/js/sap/ushell/appRuntime/ui5/services/adapters/EmptyAdapter.js +3 -0
  121. package/src/main/js/sap/ushell/appRuntime/ui5/services/adapters/Ui5ComponentLoaderAdapter.js +1 -1
  122. package/src/main/js/sap/ushell/bootstrap/_SchedulingAgent/FLPScheduler.js +12 -6
  123. package/src/main/js/sap/ushell/bootstrap/_SchedulingAgent/StepConfiguration.json +1 -3
  124. package/src/main/js/sap/ushell/bootstrap/_SchedulingAgent/logger.js +2 -2
  125. package/src/main/js/sap/ushell/bootstrap/_SchedulingAgent/state.js +6 -7
  126. package/src/main/js/sap/ushell/bootstrap/cdm/cdm-def-dev.js +2 -1
  127. package/src/main/js/sap/ushell/bootstrap/cdm/cdm-def-loader.js +15 -5
  128. package/src/main/js/sap/ushell/bootstrap/cdm/cdm-def.js +2 -2
  129. package/src/main/js/sap/ushell/bootstrap/cdm/cdm.boot.task.js +2 -2
  130. package/src/main/js/sap/ushell/bootstrap/cdm/cdm.constants.js +14 -0
  131. package/src/main/js/sap/ushell/bootstrap/cdm.js +2 -2
  132. package/src/main/js/sap/ushell/bootstrap/common/common.boot.path.js +2 -2
  133. package/src/main/js/sap/ushell/bootstrap/common/common.boot.script.js +2 -2
  134. package/src/main/js/sap/ushell/bootstrap/common/common.boot.task.js +2 -2
  135. package/src/main/js/sap/ushell/bootstrap/common/common.configure.ui5.extractLibs.js +2 -2
  136. package/src/main/js/sap/ushell/bootstrap/common/common.configure.ui5datetimeformat.js +6 -6
  137. package/src/main/js/sap/ushell/bootstrap/common/common.configure.ui5language.js +4 -4
  138. package/src/main/js/sap/ushell/bootstrap/common/common.configure.ushell.js +37 -41
  139. package/src/main/js/sap/ushell/bootstrap/common/common.constants.js +2 -2
  140. package/src/main/js/sap/ushell/bootstrap/common/common.create.configcontract.core.js +31 -20
  141. package/src/main/js/sap/ushell/bootstrap/common/common.debug.mode.js +2 -2
  142. package/src/main/js/sap/ushell/bootstrap/common/common.load.bootstrapExtension.js +2 -2
  143. package/src/main/js/sap/ushell/bootstrap/common/common.load.core-min.js +1 -1
  144. package/src/main/js/sap/ushell/bootstrap/common/common.load.launchpad.js +2 -2
  145. package/src/main/js/sap/ushell/bootstrap/common/common.load.model.js +3 -3
  146. package/src/main/js/sap/ushell/bootstrap/common/common.load.ui5theme.js +3 -3
  147. package/src/main/js/sap/ushell/bootstrap/common/common.read.metatags.js +2 -2
  148. package/src/main/js/sap/ushell/bootstrap/common/common.read.ushell.config.from.url.js +5 -4
  149. package/src/main/js/sap/ushell/bootstrap/common/common.util.js +48 -14
  150. package/src/main/js/sap/ushell/bootstrap/sandbox2.js +8 -9
  151. package/src/main/js/sap/ushell/bootstrap/ui5loader-config.js +2 -2
  152. package/src/main/js/sap/ushell/components/CatalogsManager.js +49 -47
  153. package/src/main/js/sap/ushell/components/ComponentKeysHandler.js +57 -45
  154. package/src/main/js/sap/ushell/components/DestroyHelper.js +2 -2
  155. package/src/main/js/sap/ushell/components/HeaderManager.js +3 -3
  156. package/src/main/js/sap/ushell/components/HomepageManager.js +27 -29
  157. package/src/main/js/sap/ushell/components/MessagingHelper.js +2 -2
  158. package/src/main/js/sap/ushell/components/SharedComponentUtils.js +13 -10
  159. package/src/main/js/sap/ushell/components/StateHelper.js +1 -1
  160. package/src/main/js/sap/ushell/components/_HeaderManager/AddHeadEndItemsStrategy.js +15 -15
  161. package/src/main/js/sap/ushell/components/_HeaderManager/AddHeadItemsStrategy.js +3 -3
  162. package/src/main/js/sap/ushell/components/_HeaderManager/ControlManager.js +4 -4
  163. package/src/main/js/sap/ushell/components/_HeaderManager/RemoveItemsStrategy.js +2 -2
  164. package/src/main/js/sap/ushell/components/_HeaderManager/ShellHeader.controller.js +13 -13
  165. package/src/main/js/sap/ushell/components/_HomepageManager/DashboardLoadingManager.js +3 -3
  166. package/src/main/js/sap/ushell/components/_HomepageManager/PagingManager.js +1 -1
  167. package/src/main/js/sap/ushell/components/_HomepageManager/PersistentPageOperationAdapter.js +4 -4
  168. package/src/main/js/sap/ushell/components/appfinder/AppFinder.controller.js +9 -8
  169. package/src/main/js/sap/ushell/components/appfinder/AppFinderView.js +6 -6
  170. package/src/main/js/sap/ushell/components/appfinder/Catalog.controller.js +29 -16
  171. package/src/main/js/sap/ushell/components/appfinder/CatalogView.js +17 -17
  172. package/src/main/js/sap/ushell/components/appfinder/Component.js +4 -4
  173. package/src/main/js/sap/ushell/components/appfinder/EasyAccess.controller.js +7 -7
  174. package/src/main/js/sap/ushell/components/appfinder/EasyAccessView.js +3 -9
  175. package/src/main/js/sap/ushell/components/appfinder/GroupListPopover.controller.js +3 -3
  176. package/src/main/js/sap/ushell/components/appfinder/HierarchyAppsView.js +6 -7
  177. package/src/main/js/sap/ushell/components/appfinder/HierarchyFolders.controller.js +2 -4
  178. package/src/main/js/sap/ushell/components/appfinder/HierarchyFoldersView.js +3 -3
  179. package/src/main/js/sap/ushell/components/appfinder/VisualizationOrganizerHelper.js +9 -5
  180. package/src/main/js/sap/ushell/components/appfinder/manifest.json +1 -1
  181. package/src/main/js/sap/ushell/components/applicationIntegration/AppLifeCycle.js +38 -55
  182. package/src/main/js/sap/ushell/components/applicationIntegration/application/Application.js +20 -22
  183. package/src/main/js/sap/ushell/components/applicationIntegration/application/BlueBoxHandler.js +22 -33
  184. package/src/main/js/sap/ushell/components/applicationIntegration/application/PostMessageAPI.js +563 -372
  185. package/src/main/js/sap/ushell/components/applicationIntegration/application/WebGUIStatefulHandler.js +8 -7
  186. package/src/main/js/sap/ushell/components/applicationIntegration/configuration/AppMeta.js +8 -6
  187. package/src/main/js/sap/ushell/components/applicationIntegration/elements/model.js +9 -7
  188. package/src/main/js/sap/ushell/components/applicationIntegration/relatedServices/RelatedServices.js +6 -5
  189. package/src/main/js/sap/ushell/components/applicationIntegration/relatedShellElements/RelatedShellElements.js +2 -2
  190. package/src/main/js/sap/ushell/components/cards/Configuration.controller.js +6 -5
  191. package/src/main/js/sap/ushell/components/cepsearchresult/app/Component.js +1 -1
  192. package/src/main/js/sap/ushell/components/cepsearchresult/app/Main.controller.js +2 -2
  193. package/src/main/js/sap/ushell/components/cepsearchresult/app/cards/searchresultwidget/Component.js +2 -2
  194. package/src/main/js/sap/ushell/components/cepsearchresult/app/cards/searchresultwidget/i18n/i18n_da.properties +1 -1
  195. package/src/main/js/sap/ushell/components/cepsearchresult/app/cards/searchresultwidget/i18n/i18n_en_US_saprigi.properties +37 -37
  196. package/src/main/js/sap/ushell/components/cepsearchresult/app/cards/searchresultwidget/i18n/i18n_et.properties +1 -1
  197. package/src/main/js/sap/ushell/components/cepsearchresult/app/cards/searchresultwidget/i18n/i18n_fr_CA.properties +1 -1
  198. package/src/main/js/sap/ushell/components/cepsearchresult/app/cards/searchresultwidget/i18n/i18n_hr.properties +2 -2
  199. package/src/main/js/sap/ushell/components/cepsearchresult/app/cards/searchresultwidget/i18n/i18n_it.properties +1 -1
  200. package/src/main/js/sap/ushell/components/cepsearchresult/app/cards/searchresultwidget/i18n/i18n_iw.properties +1 -1
  201. package/src/main/js/sap/ushell/components/cepsearchresult/app/cards/searchresultwidget/i18n/i18n_ko.properties +1 -1
  202. package/src/main/js/sap/ushell/components/cepsearchresult/app/cards/searchresultwidget/i18n/i18n_lv.properties +1 -1
  203. package/src/main/js/sap/ushell/components/cepsearchresult/app/cards/searchresultwidget/i18n/i18n_ms.properties +1 -1
  204. package/src/main/js/sap/ushell/components/cepsearchresult/app/cards/searchresultwidget/i18n/i18n_pl.properties +1 -1
  205. package/src/main/js/sap/ushell/components/cepsearchresult/app/cards/searchresultwidget/i18n/i18n_ro.properties +2 -2
  206. package/src/main/js/sap/ushell/components/cepsearchresult/app/cards/searchresultwidget/i18n/i18n_sh.properties +7 -7
  207. package/src/main/js/sap/ushell/components/cepsearchresult/app/cards/searchresultwidget/i18n/i18n_sk.properties +1 -1
  208. package/src/main/js/sap/ushell/components/cepsearchresult/app/cards/searchresultwidget/i18n/i18n_sl.properties +2 -2
  209. package/src/main/js/sap/ushell/components/cepsearchresult/app/cards/searchresultwidget/i18n/i18n_tr.properties +1 -1
  210. package/src/main/js/sap/ushell/components/cepsearchresult/app/cards/searchresultwidget/i18n/i18n_uk.properties +2 -2
  211. package/src/main/js/sap/ushell/components/cepsearchresult/app/cards/searchresultwidget/i18n/i18n_vi.properties +1 -1
  212. package/src/main/js/sap/ushell/components/cepsearchresult/app/cards/searchresultwidget/i18n/i18n_zh_CN.properties +1 -1
  213. package/src/main/js/sap/ushell/components/cepsearchresult/app/i18n/i18n_en_US_saprigi.properties +9 -9
  214. package/src/main/js/sap/ushell/components/cepsearchresult/app/i18n/i18n_hi.properties +1 -1
  215. package/src/main/js/sap/ushell/components/cepsearchresult/app/i18n/i18n_sh.properties +1 -1
  216. package/src/main/js/sap/ushell/components/cepsearchresult/app/util/controls/Category.css +4 -0
  217. package/src/main/js/sap/ushell/components/cepsearchresult/app/util/controls/Highlighter.js +1 -3
  218. package/src/main/js/sap/ushell/components/cepsearchresult/app/util/controls/Paginator.js +1 -3
  219. package/src/main/js/sap/ushell/components/cepsearchresult/app/util/controls/categories/Application.js +27 -1
  220. package/src/main/js/sap/ushell/components/cepsearchresult/app/util/i18n/i18n_ar.properties +2 -2
  221. package/src/main/js/sap/ushell/components/cepsearchresult/app/util/i18n/i18n_bg.properties +8 -8
  222. package/src/main/js/sap/ushell/components/cepsearchresult/app/util/i18n/i18n_ca.properties +3 -3
  223. package/src/main/js/sap/ushell/components/cepsearchresult/app/util/i18n/i18n_cs.properties +4 -4
  224. package/src/main/js/sap/ushell/components/cepsearchresult/app/util/i18n/i18n_cy.properties +5 -5
  225. package/src/main/js/sap/ushell/components/cepsearchresult/app/util/i18n/i18n_el.properties +7 -7
  226. package/src/main/js/sap/ushell/components/cepsearchresult/app/util/i18n/i18n_en_US_saprigi.properties +109 -109
  227. package/src/main/js/sap/ushell/components/cepsearchresult/app/util/i18n/i18n_es.properties +3 -3
  228. package/src/main/js/sap/ushell/components/cepsearchresult/app/util/i18n/i18n_es_MX.properties +2 -2
  229. package/src/main/js/sap/ushell/components/cepsearchresult/app/util/i18n/i18n_fi.properties +2 -2
  230. package/src/main/js/sap/ushell/components/cepsearchresult/app/util/i18n/i18n_fr.properties +4 -4
  231. package/src/main/js/sap/ushell/components/cepsearchresult/app/util/i18n/i18n_fr_CA.properties +2 -2
  232. package/src/main/js/sap/ushell/components/cepsearchresult/app/util/i18n/i18n_hi.properties +7 -7
  233. package/src/main/js/sap/ushell/components/cepsearchresult/app/util/i18n/i18n_hr.properties +8 -8
  234. package/src/main/js/sap/ushell/components/cepsearchresult/app/util/i18n/i18n_hu.properties +1 -1
  235. package/src/main/js/sap/ushell/components/cepsearchresult/app/util/i18n/i18n_it.properties +2 -2
  236. package/src/main/js/sap/ushell/components/cepsearchresult/app/util/i18n/i18n_iw.properties +3 -3
  237. package/src/main/js/sap/ushell/components/cepsearchresult/app/util/i18n/i18n_ja.properties +1 -1
  238. package/src/main/js/sap/ushell/components/cepsearchresult/app/util/i18n/i18n_ko.properties +4 -4
  239. package/src/main/js/sap/ushell/components/cepsearchresult/app/util/i18n/i18n_lv.properties +16 -16
  240. package/src/main/js/sap/ushell/components/cepsearchresult/app/util/i18n/i18n_ms.properties +1 -1
  241. package/src/main/js/sap/ushell/components/cepsearchresult/app/util/i18n/i18n_nl.properties +16 -16
  242. package/src/main/js/sap/ushell/components/cepsearchresult/app/util/i18n/i18n_no.properties +1 -1
  243. package/src/main/js/sap/ushell/components/cepsearchresult/app/util/i18n/i18n_pt.properties +2 -2
  244. package/src/main/js/sap/ushell/components/cepsearchresult/app/util/i18n/i18n_pt_PT.properties +1 -1
  245. package/src/main/js/sap/ushell/components/cepsearchresult/app/util/i18n/i18n_ro.properties +4 -4
  246. package/src/main/js/sap/ushell/components/cepsearchresult/app/util/i18n/i18n_ru.properties +1 -1
  247. package/src/main/js/sap/ushell/components/cepsearchresult/app/util/i18n/i18n_sh.properties +25 -25
  248. package/src/main/js/sap/ushell/components/cepsearchresult/app/util/i18n/i18n_sk.properties +8 -8
  249. package/src/main/js/sap/ushell/components/cepsearchresult/app/util/i18n/i18n_sl.properties +4 -4
  250. package/src/main/js/sap/ushell/components/cepsearchresult/app/util/i18n/i18n_sv.properties +1 -1
  251. package/src/main/js/sap/ushell/components/cepsearchresult/app/util/i18n/i18n_th.properties +1 -1
  252. package/src/main/js/sap/ushell/components/cepsearchresult/app/util/i18n/i18n_tr.properties +2 -2
  253. package/src/main/js/sap/ushell/components/cepsearchresult/app/util/i18n/i18n_uk.properties +5 -5
  254. package/src/main/js/sap/ushell/components/cepsearchresult/app/util/i18n/i18n_vi.properties +2 -2
  255. package/src/main/js/sap/ushell/components/container/ApplicationContainer.js +105 -96
  256. package/src/main/js/sap/ushell/components/container/IframePOSTUtils.js +13 -13
  257. package/src/main/js/sap/ushell/components/container/resources/resources_en_US_saprigi.properties +6 -6
  258. package/src/main/js/sap/ushell/components/container/resources/resources_ms.properties +1 -1
  259. package/src/main/js/sap/ushell/components/container/resources/resources_sh.properties +1 -1
  260. package/src/main/js/sap/ushell/components/contentFinder/Component.js +54 -105
  261. package/src/main/js/sap/ushell/components/contentFinder/controller/AppSearch.controller.js +108 -142
  262. package/src/main/js/sap/ushell/components/contentFinder/controller/ContentFinderDialog.controller.js +16 -11
  263. package/src/main/js/sap/ushell/components/contentFinder/controller/WidgetGallery.controller.js +9 -7
  264. package/src/main/js/sap/ushell/components/contentFinder/manifest.json +1 -1
  265. package/src/main/js/sap/ushell/components/contentFinder/model/formatter.js +6 -6
  266. package/src/main/js/sap/ushell/components/contentFinder/resources/resources.properties +4 -2
  267. package/src/main/js/sap/ushell/components/contentFinder/resources/resources_en_US_saprigi.properties +24 -24
  268. package/src/main/js/sap/ushell/components/contentFinder/resources/resources_sh.properties +6 -6
  269. package/src/main/js/sap/ushell/components/contentFinder/view/AppSearch.view.xml +37 -17
  270. package/src/main/js/sap/ushell/components/contentFinder/view/AppSearchBox.fragment.xml +5 -3
  271. package/src/main/js/sap/ushell/components/contentFinder/view/ContentFinderDialog.view.xml +9 -4
  272. package/src/main/js/sap/ushell/components/factsheet/Component.js +1 -1
  273. package/src/main/js/sap/ushell/components/factsheet/controls/PictureTileRenderer.js +2 -1
  274. package/src/main/js/sap/ushell/components/factsheet/controls/PictureViewerRenderer.js +2 -1
  275. package/src/main/js/sap/ushell/components/homepage/ActionMode.js +23 -19
  276. package/src/main/js/sap/ushell/components/homepage/Component.js +3 -3
  277. package/src/main/js/sap/ushell/components/homepage/DashboardContent.controller.js +3 -2
  278. package/src/main/js/sap/ushell/components/homepage/DashboardContent.view.js +3 -4
  279. package/src/main/js/sap/ushell/components/homepage/DashboardGroupsBox.js +17 -9
  280. package/src/main/js/sap/ushell/components/homepage/DashboardUIActions.js +10 -3
  281. package/src/main/js/sap/ushell/components/homepage/FLPAnalytics.js +6 -4
  282. package/src/main/js/sap/ushell/components/homepage/manifest.json +1 -1
  283. package/src/main/js/sap/ushell/components/pages/ActionMode.js +5 -5
  284. package/src/main/js/sap/ushell/components/pages/Component.js +2 -2
  285. package/src/main/js/sap/ushell/components/pages/MyHomeImport.js +7 -7
  286. package/src/main/js/sap/ushell/components/pages/StateManager.js +3 -3
  287. package/src/main/js/sap/ushell/components/pages/controller/ImportDialog.controller.js +9 -12
  288. package/src/main/js/sap/ushell/components/pages/controller/MyHome.controller.js +2 -2
  289. package/src/main/js/sap/ushell/components/pages/controller/PageRuntime.controller.js +70 -15
  290. package/src/main/js/sap/ushell/components/pages/controller/PagesAndSpaceId.js +2 -2
  291. package/src/main/js/sap/ushell/components/pages/manifest.json +1 -1
  292. package/src/main/js/sap/ushell/components/pages/view/PageRuntime.view.xml +7 -5
  293. package/src/main/js/sap/ushell/components/runtimeSwitcher/controller/RuntimeSwitcher.controller.js +50 -8
  294. package/src/main/js/sap/ushell/components/runtimeSwitcher/manifest.json +1 -8
  295. package/src/main/js/sap/ushell/components/runtimeSwitcher/view/RuntimeSwitcher.view.xml +13 -8
  296. package/src/main/js/sap/ushell/components/shell/MenuBar/Component.js +6 -4
  297. package/src/main/js/sap/ushell/components/shell/MenuBar/controller/MenuBar.controller.js +6 -7
  298. package/src/main/js/sap/ushell/components/shell/MenuBar/manifest.json +1 -1
  299. package/src/main/js/sap/ushell/components/shell/NavigationBarMenu/controller/NavigationBarMenu.controller.js +13 -11
  300. package/src/main/js/sap/ushell/components/shell/NavigationBarMenu/manifest.json +1 -1
  301. package/src/main/js/sap/ushell/components/shell/Notifications/Component.js +16 -12
  302. package/src/main/js/sap/ushell/components/shell/Notifications/Notifications.controller.js +5 -5
  303. package/src/main/js/sap/ushell/components/shell/PostLoadingHeaderEnhancement/Component.js +14 -14
  304. package/src/main/js/sap/ushell/components/shell/ProductSwitch/Component.js +7 -7
  305. package/src/main/js/sap/ushell/components/shell/Search/Component.js +5 -4
  306. package/src/main/js/sap/ushell/components/shell/Search/ESearch.js +8 -6
  307. package/src/main/js/sap/ushell/components/shell/Search/manifest.json +1 -1
  308. package/src/main/js/sap/ushell/components/shell/SearchCEP/Component.js +25 -18
  309. package/src/main/js/sap/ushell/components/shell/SearchCEP/SearchCEP.controller.js +89 -67
  310. package/src/main/js/sap/ushell/components/shell/SearchCEP/SearchProviders/FrequentActivityProvider.js +5 -4
  311. package/src/main/js/sap/ushell/components/shell/SearchCEP/SearchProviders/RecentSearchProvider.js +5 -4
  312. package/src/main/js/sap/ushell/components/shell/SearchCEP/SearchProviders/SearchProvider.js +1 -1
  313. package/src/main/js/sap/ushell/components/shell/SearchCEP/SearchProviders/SearchServiceProvider.js +8 -6
  314. package/src/main/js/sap/ushell/components/shell/Settings/Component.js +7 -7
  315. package/src/main/js/sap/ushell/components/shell/Settings/ErrorMessageHelper.js +1 -1
  316. package/src/main/js/sap/ushell/components/shell/Settings/UserSettings.controller.js +6 -6
  317. package/src/main/js/sap/ushell/components/shell/Settings/appearance/Appearance.controller.js +4 -2
  318. package/src/main/js/sap/ushell/components/shell/Settings/homepage/HomepageEntry.js +1 -1
  319. package/src/main/js/sap/ushell/components/shell/Settings/homepage/HomepageSetting.view.xml +3 -1
  320. package/src/main/js/sap/ushell/components/shell/Settings/search/SearchEntry.js +95 -96
  321. package/src/main/js/sap/ushell/components/shell/Settings/userAccount/UserAccountEntry.js +1 -1
  322. package/src/main/js/sap/ushell/components/shell/Settings/userAccount/UserAccountSelector.controller.js +1 -1
  323. package/src/main/js/sap/ushell/components/shell/Settings/userAccount/UserAccountSetting.fragment.xml +7 -1
  324. package/src/main/js/sap/ushell/components/shell/Settings/userActivities/UserActivitiesSetting.controller.js +1 -1
  325. package/src/main/js/sap/ushell/components/shell/Settings/userActivities/UserActivitiesSetting.view.xml +7 -1
  326. package/src/main/js/sap/ushell/components/shell/Settings/userDefaults/UserDefaultsForm.js +1 -1
  327. package/src/main/js/sap/ushell/components/shell/Settings/userDefaults/controller/UserDefaultsSetting.controller.js +3 -3
  328. package/src/main/js/sap/ushell/components/shell/Settings/userLanguageRegion/LanguageRegionSelector.controller.js +27 -31
  329. package/src/main/js/sap/ushell/components/shell/Settings/userLanguageRegion/LanguageRegionSelector.view.xml +9 -2
  330. package/src/main/js/sap/ushell/components/shell/UserActionsMenu/Component.js +6 -6
  331. package/src/main/js/sap/ushell/components/shell/UserActionsMenu/UserActionsMenu.controller.js +22 -20
  332. package/src/main/js/sap/ushell/components/shell/UserImage/Component.js +8 -11
  333. package/src/main/js/sap/ushell/components/tiles/action/Configuration.controller.js +5 -4
  334. package/src/main/js/sap/ushell/components/tiles/applauncher/StaticTile.controller.js +1 -1
  335. package/src/main/js/sap/ushell/components/tiles/applauncherdynamic/DynamicTile.controller.js +5 -3
  336. package/src/main/js/sap/ushell/components/tiles/cdm/applauncher/StaticTile.controller.js +16 -31
  337. package/src/main/js/sap/ushell/components/tiles/cdm/applauncher/StaticTile.view.xml +1 -1
  338. package/src/main/js/sap/ushell/components/tiles/cdm/applauncherdynamic/DynamicTile.controller.js +16 -33
  339. package/src/main/js/sap/ushell/components/tiles/cdm/applauncherdynamic/DynamicTile.view.xml +1 -1
  340. package/src/main/js/sap/ushell/components/tiles/generic.js +2 -1
  341. package/src/main/js/sap/ushell/components/tiles/indicatorDualComparison/DualComparison.controller.js +1 -1
  342. package/src/main/js/sap/ushell/components/tiles/indicatorDualContribution/DualContribution.controller.js +1 -1
  343. package/src/main/js/sap/ushell/components/tiles/indicatorTileUtils/cache.js +12 -10
  344. package/src/main/js/sap/ushell/components/tiles/indicatorTileUtils/oData4Analytics.js +49 -42
  345. package/src/main/js/sap/ushell/components/tiles/indicatorcontribution/ContributionTile.controller.js +1 -1
  346. package/src/main/js/sap/ushell/components/tiles/indicatorcontribution/ContributionTile.view.js +16 -18
  347. package/src/main/js/sap/ushell/components/tiles/utils.js +19 -15
  348. package/src/main/js/sap/ushell/components/visualizationOrganizer/Component.js +31 -29
  349. package/src/main/js/sap/ushell/components/workPageBuilder/Component.js +18 -219
  350. package/src/main/js/sap/ushell/components/workPageBuilder/controller/WorkPageBuilder.accessibility.js +1 -1
  351. package/src/main/js/sap/ushell/components/workPageBuilder/controller/WorkPageBuilder.controller.js +62 -137
  352. package/src/main/js/sap/ushell/components/workPageBuilder/controller/WorkPageBuilder.layout.js +4 -2
  353. package/src/main/js/sap/ushell/components/workPageBuilder/controller/WorkPageHost.js +185 -68
  354. package/src/main/js/sap/ushell/components/workPageBuilder/controls/WorkPage.js +1 -1
  355. package/src/main/js/sap/ushell/components/workPageBuilder/controls/WorkPageButton.js +3 -6
  356. package/src/main/js/sap/ushell/components/workPageBuilder/controls/WorkPageCell.js +3 -6
  357. package/src/main/js/sap/ushell/components/workPageBuilder/controls/WorkPageColumn.js +3 -6
  358. package/src/main/js/sap/ushell/components/workPageBuilder/controls/WorkPageColumnRenderer.js +2 -1
  359. package/src/main/js/sap/ushell/components/workPageBuilder/controls/WorkPageColumnResizer.js +4 -7
  360. package/src/main/js/sap/ushell/components/workPageBuilder/controls/WorkPageRenderer.js +1 -1
  361. package/src/main/js/sap/ushell/components/workPageBuilder/controls/WorkPageRow.js +7 -5
  362. package/src/main/js/sap/ushell/components/workPageBuilder/controls/WorkPageRowRenderer.js +5 -5
  363. package/src/main/js/sap/ushell/components/workPageBuilder/manifest.json +1 -1
  364. package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources.properties +4 -1
  365. package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_en_US_saprigi.properties +66 -66
  366. package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_hr.properties +1 -1
  367. package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_sh.properties +29 -29
  368. package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_th.properties +1 -1
  369. package/src/main/js/sap/ushell/components/workPageBuilder/view/WorkPageBuilder.view.xml +8 -0
  370. package/src/main/js/sap/ushell/components/workPageRuntime/Component.js +2 -2
  371. package/src/main/js/sap/ushell/components/workPageRuntime/controller/WorkPageRuntime.controller.js +4 -7
  372. package/src/main/js/sap/ushell/components/workPageRuntime/manifest.json +1 -1
  373. package/src/main/js/sap/ushell/components/workPageRuntime/view/WorkPageRuntime.view.xml +15 -8
  374. package/src/main/js/sap/ushell/designtime/ApplicationContainer.designtime.js +1 -1
  375. package/src/main/js/sap/ushell/iconfonts.js +1 -1
  376. package/src/main/js/sap/ushell/library.js +28 -26
  377. package/src/main/js/sap/ushell/navigationMode.js +4 -6
  378. package/src/main/js/sap/ushell/performance/FesrEnhancer.js +97 -18
  379. package/src/main/js/sap/ushell/performance/ShellAnalytics.js +7 -7
  380. package/src/main/js/sap/ushell/performance/StatisticalRecord.js +78 -23
  381. package/src/main/js/sap/ushell/plugins/BaseRTAPlugin.js +4 -3
  382. package/src/main/js/sap/ushell/plugins/appwarmup/Component.js +1 -1
  383. package/src/main/js/sap/ushell/plugins/rta/i18n/i18n_en_US_saprigi.properties +8 -8
  384. package/src/main/js/sap/ushell/plugins/rta/i18n/i18n_sh.properties +2 -2
  385. package/src/main/js/sap/ushell/plugins/rta/i18n/i18n_th.properties +2 -2
  386. package/src/main/js/sap/ushell/plugins/rta-personalize/Component.js +10 -6
  387. package/src/main/js/sap/ushell/plugins/rta-personalize/i18n/i18n_en_US_saprigi.properties +12 -12
  388. package/src/main/js/sap/ushell/plugins/rta-personalize/i18n/i18n_sh.properties +4 -4
  389. package/src/main/js/sap/ushell/renderer/AccessKeysHandler.js +15 -13
  390. package/src/main/js/sap/ushell/renderer/LogonFrameProvider.js +7 -7
  391. package/src/main/js/sap/ushell/renderer/Renderer.js +163 -221
  392. package/src/main/js/sap/ushell/renderer/Shell.controller.js +133 -163
  393. package/src/main/js/sap/ushell/renderer/Shell.view.js +13 -14
  394. package/src/main/js/sap/ushell/renderer/allMyApps/AllMyApps.controller.js +65 -14
  395. package/src/main/js/sap/ushell/renderer/allMyApps/AllMyAppsManager.js +40 -17
  396. package/src/main/js/sap/ushell/renderer/resources/resources.properties +9 -3
  397. package/src/main/js/sap/ushell/renderer/resources/resources_ar.properties +14 -17
  398. package/src/main/js/sap/ushell/renderer/resources/resources_bg.properties +48 -51
  399. package/src/main/js/sap/ushell/renderer/resources/resources_ca.properties +13 -16
  400. package/src/main/js/sap/ushell/renderer/resources/resources_cs.properties +19 -22
  401. package/src/main/js/sap/ushell/renderer/resources/resources_cy.properties +13 -16
  402. package/src/main/js/sap/ushell/renderer/resources/resources_da.properties +21 -24
  403. package/src/main/js/sap/ushell/renderer/resources/resources_de.properties +19 -22
  404. package/src/main/js/sap/ushell/renderer/resources/resources_el.properties +23 -26
  405. package/src/main/js/sap/ushell/renderer/resources/resources_en.properties +18 -21
  406. package/src/main/js/sap/ushell/renderer/resources/resources_en_GB.properties +19 -22
  407. package/src/main/js/sap/ushell/renderer/resources/resources_en_US_saprigi.properties +991 -994
  408. package/src/main/js/sap/ushell/renderer/resources/resources_es.properties +16 -19
  409. package/src/main/js/sap/ushell/renderer/resources/resources_es_MX.properties +10 -13
  410. package/src/main/js/sap/ushell/renderer/resources/resources_et.properties +18 -21
  411. package/src/main/js/sap/ushell/renderer/resources/resources_fi.properties +21 -24
  412. package/src/main/js/sap/ushell/renderer/resources/resources_fr.properties +24 -27
  413. package/src/main/js/sap/ushell/renderer/resources/resources_fr_CA.properties +25 -28
  414. package/src/main/js/sap/ushell/renderer/resources/resources_hi.properties +32 -35
  415. package/src/main/js/sap/ushell/renderer/resources/resources_hr.properties +36 -39
  416. package/src/main/js/sap/ushell/renderer/resources/resources_hu.properties +15 -18
  417. package/src/main/js/sap/ushell/renderer/resources/resources_id.properties +15 -18
  418. package/src/main/js/sap/ushell/renderer/resources/resources_it.properties +14 -17
  419. package/src/main/js/sap/ushell/renderer/resources/resources_iw.properties +15 -18
  420. package/src/main/js/sap/ushell/renderer/resources/resources_ja.properties +23 -26
  421. package/src/main/js/sap/ushell/renderer/resources/resources_kk.properties +28 -31
  422. package/src/main/js/sap/ushell/renderer/resources/resources_ko.properties +21 -24
  423. package/src/main/js/sap/ushell/renderer/resources/resources_lt.properties +13 -16
  424. package/src/main/js/sap/ushell/renderer/resources/resources_lv.properties +17 -20
  425. package/src/main/js/sap/ushell/renderer/resources/resources_ms.properties +14 -17
  426. package/src/main/js/sap/ushell/renderer/resources/resources_nl.properties +14 -17
  427. package/src/main/js/sap/ushell/renderer/resources/resources_no.properties +32 -35
  428. package/src/main/js/sap/ushell/renderer/resources/resources_pl.properties +21 -24
  429. package/src/main/js/sap/ushell/renderer/resources/resources_pt.properties +13 -16
  430. package/src/main/js/sap/ushell/renderer/resources/resources_pt_PT.properties +7 -10
  431. package/src/main/js/sap/ushell/renderer/resources/resources_ro.properties +10 -13
  432. package/src/main/js/sap/ushell/renderer/resources/resources_ru.properties +22 -25
  433. package/src/main/js/sap/ushell/renderer/resources/resources_sh.properties +276 -279
  434. package/src/main/js/sap/ushell/renderer/resources/resources_sk.properties +25 -28
  435. package/src/main/js/sap/ushell/renderer/resources/resources_sl.properties +31 -34
  436. package/src/main/js/sap/ushell/renderer/resources/resources_sv.properties +15 -18
  437. package/src/main/js/sap/ushell/renderer/resources/resources_th.properties +22 -25
  438. package/src/main/js/sap/ushell/renderer/resources/resources_tr.properties +33 -36
  439. package/src/main/js/sap/ushell/renderer/resources/resources_uk.properties +46 -49
  440. package/src/main/js/sap/ushell/renderer/resources/resources_vi.properties +14 -17
  441. package/src/main/js/sap/ushell/renderer/resources/resources_zh_CN.properties +10 -13
  442. package/src/main/js/sap/ushell/renderer/resources/resources_zh_TW.properties +21 -24
  443. package/src/main/js/sap/ushell/renderer/search/searchComponent/Component.js +8 -2
  444. package/src/main/js/sap/ushell/renderer/search/searchComponent/controller/CEPSearchApp.controller.js +20 -13
  445. package/src/main/js/sap/ushell/renderer/search/searchComponent/controller/SearchApp.controller.js +13 -9
  446. package/src/main/js/sap/ushell/renderer/search/searchComponent/manifest.json +1 -1
  447. package/src/main/js/sap/ushell/renderer/search/searchComponent/view/CEPSearchApp.view.js +1 -1
  448. package/src/main/js/sap/ushell/renderer/search/searchComponent/view/SearchApp.view.js +1 -1
  449. package/src/main/js/sap/ushell/renderer/search/util.js +5 -7
  450. package/src/main/js/sap/ushell/renderer/utils.js +6 -6
  451. package/src/main/js/sap/ushell/renderers/fiori2/Renderer.js +14 -11
  452. package/src/main/js/sap/ushell/renderers/fiori2/RendererExtensions.js +50 -42
  453. package/src/main/js/sap/ushell/resources.js +3 -3
  454. package/src/main/js/sap/ushell/services/AllMyApps.js +2 -3
  455. package/src/main/js/sap/ushell/services/AppConfiguration.js +56 -15
  456. package/src/main/js/sap/ushell/services/AppLifeCycle.js +14 -29
  457. package/src/main/js/sap/ushell/services/AppState.js +39 -28
  458. package/src/main/js/sap/ushell/services/Bookmark.js +18 -45
  459. package/src/main/js/sap/ushell/services/BookmarkV2.js +118 -120
  460. package/src/main/js/sap/ushell/services/ClientSideTargetResolution.js +20 -22
  461. package/src/main/js/sap/ushell/services/CommonDataModel.js +31 -94
  462. package/src/main/js/sap/ushell/services/Configuration.js +5 -5
  463. package/src/main/js/sap/ushell/services/ConfigurationDefaults.js +2 -3
  464. package/src/main/js/sap/ushell/services/Container.js +6 -5
  465. package/src/main/js/sap/ushell/services/ContentExtensionAdapterFactory.js +7 -5
  466. package/src/main/js/sap/ushell/services/CrossApplicationNavigation.js +80 -98
  467. package/src/main/js/sap/ushell/services/DarkModeSupport.js +6 -6
  468. package/src/main/js/sap/ushell/services/EndUserFeedback.js +17 -15
  469. package/src/main/js/sap/ushell/services/Extension/FloatingContainer.js +139 -67
  470. package/src/main/js/sap/ushell/services/Extension/Footer.js +2 -1
  471. package/src/main/js/sap/ushell/services/Extension/Header.js +9 -16
  472. package/src/main/js/sap/ushell/services/Extension/Item.js +12 -8
  473. package/src/main/js/sap/ushell/services/Extension/SidePane.js +5 -5
  474. package/src/main/js/sap/ushell/services/Extension/ToolArea.js +5 -5
  475. package/src/main/js/sap/ushell/services/Extension.js +12 -13
  476. package/src/main/js/sap/ushell/services/FlpLaunchPage.js +1791 -0
  477. package/src/main/js/sap/ushell/services/LaunchPage.js +653 -1715
  478. package/src/main/js/sap/ushell/services/Menu.js +3 -3
  479. package/src/main/js/sap/ushell/services/Message.js +16 -9
  480. package/src/main/js/sap/ushell/services/MessageBroker.js +6 -6
  481. package/src/main/js/sap/ushell/services/NavTargetResolution.js +25 -28
  482. package/src/main/js/sap/ushell/services/Navigation/utils.js +1 -1
  483. package/src/main/js/sap/ushell/services/Navigation.js +17 -16
  484. package/src/main/js/sap/ushell/services/NavigationDataProvider.js +2 -2
  485. package/src/main/js/sap/ushell/services/Notifications.js +55 -38
  486. package/src/main/js/sap/ushell/services/NotificationsV2.js +122 -49
  487. package/src/main/js/sap/ushell/services/PageBuilding.js +3 -4
  488. package/src/main/js/sap/ushell/services/PagePersistence.js +3 -3
  489. package/src/main/js/sap/ushell/services/PageReferencing.js +2 -2
  490. package/src/main/js/sap/ushell/services/Pages.js +295 -320
  491. package/src/main/js/sap/ushell/services/Personalization.js +40 -37
  492. package/src/main/js/sap/ushell/services/PersonalizationV2/ContextContainer.js +27 -24
  493. package/src/main/js/sap/ushell/services/PersonalizationV2/Personalizer.js +7 -4
  494. package/src/main/js/sap/ushell/services/PersonalizationV2/TransientPersonalizer.js +2 -0
  495. package/src/main/js/sap/ushell/services/PersonalizationV2/Variant.js +7 -4
  496. package/src/main/js/sap/ushell/services/PersonalizationV2/VariantSet.js +10 -11
  497. package/src/main/js/sap/ushell/services/PersonalizationV2/VariantSetAdapter.js +10 -10
  498. package/src/main/js/sap/ushell/services/PersonalizationV2/WindowAdapter.js +2 -2
  499. package/src/main/js/sap/ushell/services/PersonalizationV2/WindowAdapterContainer.js +5 -5
  500. package/src/main/js/sap/ushell/services/PersonalizationV2/constants.js +1 -1
  501. package/src/main/js/sap/ushell/services/PersonalizationV2.js +10 -9
  502. package/src/main/js/sap/ushell/services/PluginManager.js +77 -75
  503. package/src/main/js/sap/ushell/services/ReferenceResolver.js +36 -38
  504. package/src/main/js/sap/ushell/services/Search.js +4 -4
  505. package/src/main/js/sap/ushell/services/SearchCEP.js +2 -3
  506. package/src/main/js/sap/ushell/services/SearchableContent.js +93 -80
  507. package/src/main/js/sap/ushell/services/ShellNavigation.js +160 -450
  508. package/src/main/js/sap/ushell/services/ShellNavigationHashChanger.js +27 -26
  509. package/src/main/js/sap/ushell/services/ShellNavigationInternal.js +532 -0
  510. package/src/main/js/sap/ushell/services/SmartNavigation.js +23 -23
  511. package/src/main/js/sap/ushell/services/SpaceContent.js +4 -4
  512. package/src/main/js/sap/ushell/services/SupportTicket.js +4 -5
  513. package/src/main/js/sap/ushell/services/UITracer.js +2 -2
  514. package/src/main/js/sap/ushell/services/URLParsing.js +15 -14
  515. package/src/main/js/sap/ushell/services/URLShortening.js +1 -1
  516. package/src/main/js/sap/ushell/services/URLTemplate.js +2 -2
  517. package/src/main/js/sap/ushell/services/Ui5ComponentLoader.js +47 -10
  518. package/src/main/js/sap/ushell/services/UsageAnalytics.js +25 -9
  519. package/src/main/js/sap/ushell/services/UserDefaultParameterPersistence.js +11 -11
  520. package/src/main/js/sap/ushell/services/UserDefaultParameters.js +34 -41
  521. package/src/main/js/sap/ushell/services/UserInfo.js +29 -53
  522. package/src/main/js/sap/ushell/services/UserRecents/RecentActivity.js +480 -0
  523. package/src/main/js/sap/ushell/services/UserRecents/RecentAppsUsage.js +207 -0
  524. package/src/main/js/sap/ushell/services/UserRecents/RecentsList.js +119 -0
  525. package/src/main/js/sap/ushell/services/{_UserRecents → UserRecents}/UserRecentsBase.js +41 -9
  526. package/src/main/js/sap/ushell/services/UserRecents.js +185 -188
  527. package/src/main/js/sap/ushell/services/VisualizationDataProvider.js +42 -41
  528. package/src/main/js/sap/ushell/services/VisualizationInstantiation.js +27 -26
  529. package/src/main/js/sap/ushell/services/_ClientSideTargetResolution/Formatter.js +1 -1
  530. package/src/main/js/sap/ushell/services/_ClientSideTargetResolution/InboundIndex.js +6 -6
  531. package/src/main/js/sap/ushell/services/_ClientSideTargetResolution/InboundProvider.js +1 -1
  532. package/src/main/js/sap/ushell/services/_ClientSideTargetResolution/ParameterMapping.js +1 -1
  533. package/src/main/js/sap/ushell/services/_ClientSideTargetResolution/PrelaunchOperations.js +1 -1
  534. package/src/main/js/sap/ushell/services/_ClientSideTargetResolution/Search.js +7 -9
  535. package/src/main/js/sap/ushell/services/_ClientSideTargetResolution/StagedLogger.js +1 -1
  536. package/src/main/js/sap/ushell/services/_ClientSideTargetResolution/SystemContext.js +1 -1
  537. package/src/main/js/sap/ushell/services/_ClientSideTargetResolution/Utils.js +1 -1
  538. package/src/main/js/sap/ushell/services/_ClientSideTargetResolution/VirtualInbounds.js +1 -1
  539. package/src/main/js/sap/ushell/services/_ClientSideTargetResolution/XAppStateProcessing.js +2 -2
  540. package/src/main/js/sap/ushell/services/_CommonDataModel/PersonalizationProcessor.js +5 -7
  541. package/src/main/js/sap/ushell/services/_CommonDataModel/SiteConverter.js +2 -2
  542. package/src/main/js/sap/ushell/services/_CommonDataModel/vizTypeDefaults/VizTypeDefaults.js +105 -0
  543. package/src/main/js/sap/ushell/services/_ContentExtensionAdapterFactory/ContentExtensionAdapterConfig.js +1 -1
  544. package/src/main/js/sap/ushell/services/_ContentExtensionAdapterFactory/FeaturedGroupConfig.js +1 -1
  545. package/src/main/js/sap/ushell/services/_CrossApplicationNavigation/utils.js +1 -1
  546. package/src/main/js/sap/ushell/services/_MessageBroker/MessageBrokerEngine.js +8 -8
  547. package/src/main/js/sap/ushell/services/_PageReferencing/PageReferencer.js +1 -1
  548. package/src/main/js/sap/ushell/services/_Personalization/ContextContainer.js +28 -29
  549. package/src/main/js/sap/ushell/services/_Personalization/PersonalizationContainer.js +10 -10
  550. package/src/main/js/sap/ushell/services/_Personalization/PersonalizationContainerVariant.js +7 -5
  551. package/src/main/js/sap/ushell/services/_Personalization/PersonalizationContainerVariantSet.js +9 -6
  552. package/src/main/js/sap/ushell/services/_Personalization/Personalizer.js +9 -18
  553. package/src/main/js/sap/ushell/services/_Personalization/TransientPersonalizer.js +4 -11
  554. package/src/main/js/sap/ushell/services/_Personalization/Variant.js +11 -9
  555. package/src/main/js/sap/ushell/services/_Personalization/VariantSet.js +6 -5
  556. package/src/main/js/sap/ushell/services/_Personalization/utils.js +1 -2
  557. package/src/main/js/sap/ushell/services/_PluginManager/Extensions.js +1 -1
  558. package/src/main/js/sap/ushell/services/_PluginManager/HeaderExtensions.js +1 -1
  559. package/src/main/js/sap/ushell/services/_PluginManager/MenuExtensions.js +1 -1
  560. package/src/main/js/sap/ushell/services/_Ui5ComponentLoader/utils.js +8 -22
  561. package/src/main/js/sap/ushell/services/appstate/Sequentializer.js +1 -1
  562. package/src/main/js/sap/ushell/services/appstate/SequentializingAdapter.js +3 -5
  563. package/src/main/js/sap/ushell/services/appstate/WindowAdapter.js +13 -12
  564. package/src/main/js/sap/ushell/services/personalization/VariantSetAdapter.js +2 -2
  565. package/src/main/js/sap/ushell/support/plugins/flpConfig/FlpConfigurationPlugin.js +26 -22
  566. package/src/main/js/sap/ushell/themes/base/Catalog.less +12 -1
  567. package/src/main/js/sap/ushell/themes/base/ContentFinder.less +1 -0
  568. package/src/main/js/sap/ushell/themes/base/SearchCEP.less +9 -0
  569. package/src/main/js/sap/ushell/themes/base/img/SAPLogo.svg +1 -1
  570. package/src/main/js/sap/ushell/themes/base/img/launchicons/114_iPhone-Retina_Web_Clip.png +0 -0
  571. package/src/main/js/sap/ushell/themes/base/img/launchicons/144_iPad_Retina_Web_Clip.png +0 -0
  572. package/src/main/js/sap/ushell/themes/base/img/launchicons/57_iPhone_Desktop_Launch.png +0 -0
  573. package/src/main/js/sap/ushell/themes/base/img/launchicons/72_iPad_Desktop_Launch.png +0 -0
  574. package/src/main/js/sap/ushell/themes/base/img/launchpad_favicon.ico +0 -0
  575. package/src/main/js/sap/ushell/themes/sap_horizon/ShellHeader.less +0 -1
  576. package/src/main/js/sap/ushell/themes/sap_horizon_dark/ShellHeader.less +0 -1
  577. package/src/main/js/sap/ushell/themes/sap_horizon_hcb/ShellHeader.less +0 -1
  578. package/src/main/js/sap/ushell/themes/sap_horizon_hcw/ShellHeader.less +0 -1
  579. package/src/main/js/sap/ushell/ui/AppContainer.js +17 -22
  580. package/src/main/js/sap/ushell/ui/AppContainerRenderer.js +4 -6
  581. package/src/main/js/sap/ushell/ui/ContentNodeSelector.js +8 -9
  582. package/src/main/js/sap/ushell/ui/ContentNodeTreeItem.js +2 -3
  583. package/src/main/js/sap/ushell/ui/QuickAccess.js +90 -81
  584. package/src/main/js/sap/ushell/ui/ShellHeader.js +26 -25
  585. package/src/main/js/sap/ushell/ui/ShellHeaderRenderer.js +2 -1
  586. package/src/main/js/sap/ushell/ui/appfinder/AppBox.js +20 -7
  587. package/src/main/js/sap/ushell/ui/appfinder/AppBoxRenderer.js +9 -0
  588. package/src/main/js/sap/ushell/ui/appfinder/PinButton.js +7 -6
  589. package/src/main/js/sap/ushell/ui/appfinder/PinButtonRenderer.js +2 -1
  590. package/src/main/js/sap/ushell/ui/cards/FrequentActivitiesExtension.js +4 -4
  591. package/src/main/js/sap/ushell/ui/cards/RecentActivitiesExtension.js +5 -5
  592. package/src/main/js/sap/ushell/ui/footerbar/AboutButton.js +8 -13
  593. package/src/main/js/sap/ushell/ui/footerbar/AddBookmarkButton.js +10 -12
  594. package/src/main/js/sap/ushell/ui/footerbar/ContactSupportButton.js +22 -229
  595. package/src/main/js/sap/ushell/ui/footerbar/ContactSupportDialog.controller.js +116 -0
  596. package/src/main/js/sap/ushell/ui/footerbar/ContactSupportDialog.fragment.xml +85 -0
  597. package/src/main/js/sap/ushell/ui/footerbar/JamDiscussButton.js +8 -12
  598. package/src/main/js/sap/ushell/ui/footerbar/JamShareButton.js +9 -18
  599. package/src/main/js/sap/ushell/ui/footerbar/LogoutButton.js +8 -12
  600. package/src/main/js/sap/ushell/ui/footerbar/SaveAsTile.controller.js +4 -1
  601. package/src/main/js/sap/ushell/ui/footerbar/SaveAsTile.view.js +4 -1
  602. package/src/main/js/sap/ushell/ui/footerbar/SendAsEmailButton.js +6 -13
  603. package/src/main/js/sap/ushell/ui/launchpad/AccessibilityCustomData.js +4 -5
  604. package/src/main/js/sap/ushell/ui/launchpad/ActionItem.js +5 -4
  605. package/src/main/js/sap/ushell/ui/launchpad/AnchorItem.js +8 -11
  606. package/src/main/js/sap/ushell/ui/launchpad/AnchorItemRenderer.js +6 -2
  607. package/src/main/js/sap/ushell/ui/launchpad/AnchorNavigationBar.js +22 -19
  608. package/src/main/js/sap/ushell/ui/launchpad/AnchorNavigationBarRenderer.js +6 -1
  609. package/src/main/js/sap/ushell/ui/launchpad/CatalogEntryContainer.js +10 -6
  610. package/src/main/js/sap/ushell/ui/launchpad/CatalogsContainer.js +9 -5
  611. package/src/main/js/sap/ushell/ui/launchpad/DashboardGroupsContainer.js +9 -5
  612. package/src/main/js/sap/ushell/ui/launchpad/DashboardGroupsContainerRenderer.js +6 -1
  613. package/src/main/js/sap/ushell/ui/launchpad/ExtendedChangeDetection.js +1 -1
  614. package/src/main/js/sap/ushell/ui/launchpad/GroupHeaderActions.js +7 -9
  615. package/src/main/js/sap/ushell/ui/launchpad/GroupListItem.js +59 -67
  616. package/src/main/js/sap/ushell/ui/launchpad/GroupListItemRenderer.js +15 -15
  617. package/src/main/js/sap/ushell/ui/launchpad/LinkTileWrapper.js +4 -4
  618. package/src/main/js/sap/ushell/ui/launchpad/LinkTileWrapperRenderer.js +2 -1
  619. package/src/main/js/sap/ushell/ui/launchpad/LoadingDialog.js +7 -11
  620. package/src/main/js/sap/ushell/ui/launchpad/LoadingDialogRenderer.js +2 -2
  621. package/src/main/js/sap/ushell/ui/launchpad/Page.js +8 -12
  622. package/src/main/js/sap/ushell/ui/launchpad/PageRenderer.js +2 -1
  623. package/src/main/js/sap/ushell/ui/launchpad/PlusTile.js +5 -11
  624. package/src/main/js/sap/ushell/ui/launchpad/PlusTileRenderer.js +1 -1
  625. package/src/main/js/sap/ushell/ui/launchpad/Section.js +14 -26
  626. package/src/main/js/sap/ushell/ui/launchpad/SectionRenderer.js +3 -2
  627. package/src/main/js/sap/ushell/ui/launchpad/Tile.js +10 -13
  628. package/src/main/js/sap/ushell/ui/launchpad/TileContainer.js +10 -11
  629. package/src/main/js/sap/ushell/ui/launchpad/TileContainerRenderer.js +3 -2
  630. package/src/main/js/sap/ushell/ui/launchpad/TileRenderer.js +2 -1
  631. package/src/main/js/sap/ushell/ui/launchpad/TileState.js +8 -81
  632. package/src/main/js/sap/ushell/ui/launchpad/TileStateInternal.js +119 -0
  633. package/src/main/js/sap/ushell/ui/launchpad/TileStateInternalRenderer.js +72 -0
  634. package/src/main/js/sap/ushell/ui/launchpad/TileStateRenderer.js +4 -65
  635. package/src/main/js/sap/ushell/ui/launchpad/ViewPortState.js +6 -7
  636. package/src/main/js/sap/ushell/{services/_VisualizationInstantiation → ui/launchpad}/VizInstance.js +86 -78
  637. package/src/main/js/sap/ushell/{services/_VisualizationInstantiation → ui/launchpad}/VizInstanceAbap.js +6 -5
  638. package/src/main/js/sap/ushell/ui/launchpad/VizInstanceBase.js +40 -0
  639. package/src/main/js/sap/ushell/{services/_VisualizationInstantiation → ui/launchpad}/VizInstanceCdm.js +13 -11
  640. package/src/main/js/sap/ushell/{services/_VisualizationInstantiation → ui/launchpad}/VizInstanceLaunchPage.js +10 -7
  641. package/src/main/js/sap/ushell/{services/_VisualizationInstantiation → ui/launchpad}/VizInstanceLink.js +9 -61
  642. package/src/main/js/sap/ushell/ui/launchpad/section/CompactArea.js +8 -6
  643. package/src/main/js/sap/ushell/ui/launchpad/section/CompactAreaRenderer.js +2 -1
  644. package/src/main/js/sap/ushell/ui/shell/ContentRenderer.js +3 -3
  645. package/src/main/js/sap/ushell/ui/shell/FloatingContainer.js +10 -8
  646. package/src/main/js/sap/ushell/ui/shell/RightFloatingContainer.js +3 -3
  647. package/src/main/js/sap/ushell/ui/shell/ShellAppTitle.js +32 -34
  648. package/src/main/js/sap/ushell/ui/shell/ShellFloatingAction.js +9 -6
  649. package/src/main/js/sap/ushell/ui/shell/ShellFloatingActionRenderer.js +1 -3
  650. package/src/main/js/sap/ushell/ui/shell/ShellHeadItem.js +4 -7
  651. package/src/main/js/sap/ushell/ui/shell/ShellNavigationMenu.js +8 -8
  652. package/src/main/js/sap/ushell/ui/shell/SysInfoBar.js +3 -8
  653. package/src/main/js/sap/ushell/ui/shell/ToolArea.js +2 -2
  654. package/src/main/js/sap/ushell/ui/shell/ToolAreaItem.js +1 -1
  655. package/src/main/js/sap/ushell/ui/tile/DynamicTile.js +6 -8
  656. package/src/main/js/sap/ushell/ui/tile/DynamicTileRenderer.js +1 -1
  657. package/src/main/js/sap/ushell/ui/tile/ImageTile.js +4 -5
  658. package/src/main/js/sap/ushell/ui/tile/ImageTileRenderer.js +5 -6
  659. package/src/main/js/sap/ushell/ui/tile/StaticTile.js +4 -5
  660. package/src/main/js/sap/ushell/ui/tile/StaticTileRenderer.js +5 -6
  661. package/src/main/js/sap/ushell/ui/tile/TileBase.js +5 -8
  662. package/src/main/js/sap/ushell/ui/tile/TileBaseRenderer.js +3 -3
  663. package/src/main/js/sap/ushell/ui/utils.js +2 -4
  664. package/src/main/js/sap/ushell/ui5service/ShellUIService.js +8 -9
  665. package/src/main/js/sap/ushell/ui5service/UserStatus.js +11 -12
  666. package/src/main/js/sap/ushell/ui5service/_ShellUIService/shelluiservice.class.factory.js +6 -8
  667. package/src/main/js/sap/ushell/utils/DynamicTileRequest.js +5 -3
  668. package/src/main/js/sap/ushell/utils/HttpClient.js +6 -7
  669. package/src/main/js/sap/ushell/utils/RestrictedJSONModel.js +1 -1
  670. package/src/main/js/sap/ushell/utils/UrlParsing.js +5 -14
  671. package/src/main/js/sap/ushell/utils/UrlShortening.js +4 -4
  672. package/src/main/js/sap/ushell/utils/chipsUtils.js +10 -10
  673. package/src/main/js/sap/ushell/utils/workpage/WorkPageService.js +234 -0
  674. package/src/main/js/sap/ushell/utils/workpage/WorkPageVizInstantiation.js +141 -0
  675. package/src/main/js/sap/ushell/utils.js +17 -13
  676. package/src/test/js/sap/ushell/bootstrap/sandbox.js +1 -1
  677. package/ui5.yaml +6 -2
  678. package/src/main/js/sap/ushell/appRuntime/ui5/plugins/rtaAgent/i18n/i18n_cnr.properties +0 -10
  679. package/src/main/js/sap/ushell/appRuntime/ui5/plugins/rtaAgent/i18n/i18n_mk.properties +0 -10
  680. package/src/main/js/sap/ushell/appRuntime/ui5/plugins/rtaAgent/i18n/i18n_sr.properties +0 -10
  681. package/src/main/js/sap/ushell/appRuntime/ui5/plugins/rtaShell/i18n/i18n_cnr.properties +0 -4
  682. package/src/main/js/sap/ushell/appRuntime/ui5/plugins/rtaShell/i18n/i18n_mk.properties +0 -4
  683. package/src/main/js/sap/ushell/appRuntime/ui5/plugins/rtaShell/i18n/i18n_sr.properties +0 -4
  684. package/src/main/js/sap/ushell/components/cepsearchresult/app/cards/searchresultwidget/i18n/i18n_cnr.properties +0 -41
  685. package/src/main/js/sap/ushell/components/cepsearchresult/app/cards/searchresultwidget/i18n/i18n_mk.properties +0 -41
  686. package/src/main/js/sap/ushell/components/cepsearchresult/app/cards/searchresultwidget/i18n/i18n_sr.properties +0 -41
  687. package/src/main/js/sap/ushell/components/cepsearchresult/app/i18n/i18n_cnr.properties +0 -19
  688. package/src/main/js/sap/ushell/components/cepsearchresult/app/i18n/i18n_mk.properties +0 -19
  689. package/src/main/js/sap/ushell/components/cepsearchresult/app/i18n/i18n_sr.properties +0 -19
  690. package/src/main/js/sap/ushell/components/cepsearchresult/app/util/i18n/i18n_cnr.properties +0 -117
  691. package/src/main/js/sap/ushell/components/cepsearchresult/app/util/i18n/i18n_mk.properties +0 -117
  692. package/src/main/js/sap/ushell/components/cepsearchresult/app/util/i18n/i18n_sr.properties +0 -117
  693. package/src/main/js/sap/ushell/components/container/resources/resources_cnr.properties +0 -10
  694. package/src/main/js/sap/ushell/components/container/resources/resources_mk.properties +0 -10
  695. package/src/main/js/sap/ushell/components/container/resources/resources_sr.properties +0 -10
  696. package/src/main/js/sap/ushell/components/contentFinder/resources/resources_cnr.properties +0 -29
  697. package/src/main/js/sap/ushell/components/contentFinder/resources/resources_mk.properties +0 -29
  698. package/src/main/js/sap/ushell/components/contentFinder/resources/resources_sr.properties +0 -29
  699. package/src/main/js/sap/ushell/components/contentFinder/view/AppSearchPaginated.view.xml +0 -137
  700. package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_cnr.properties +0 -78
  701. package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_mk.properties +0 -78
  702. package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_sr.properties +0 -78
  703. package/src/main/js/sap/ushell/components/workPageRuntime/services/NavigationResolver.js +0 -115
  704. package/src/main/js/sap/ushell/components/workPageRuntime/services/WorkPage.js +0 -130
  705. package/src/main/js/sap/ushell/plugins/rta/i18n/i18n_cnr.properties +0 -13
  706. package/src/main/js/sap/ushell/plugins/rta/i18n/i18n_mk.properties +0 -13
  707. package/src/main/js/sap/ushell/plugins/rta/i18n/i18n_sr.properties +0 -13
  708. package/src/main/js/sap/ushell/plugins/rta-personalize/i18n/i18n_cnr.properties +0 -24
  709. package/src/main/js/sap/ushell/plugins/rta-personalize/i18n/i18n_mk.properties +0 -24
  710. package/src/main/js/sap/ushell/plugins/rta-personalize/i18n/i18n_sr.properties +0 -24
  711. package/src/main/js/sap/ushell/renderer/allMyApps/AllMyAppsKeyboardHandler.js +0 -108
  712. package/src/main/js/sap/ushell/renderer/resources/resources_cnr.properties +0 -996
  713. package/src/main/js/sap/ushell/renderer/resources/resources_mk.properties +0 -996
  714. package/src/main/js/sap/ushell/renderer/resources/resources_sr.properties +0 -996
  715. package/src/main/js/sap/ushell/renderers/fiori2/allMyApps/AllMyAppsKeyboardHandler.js +0 -13
  716. package/src/main/js/sap/ushell/services/_UserRecents/RecentActivity.js +0 -481
  717. package/src/main/js/sap/ushell/services/_UserRecents/RecentAppsUsage.js +0 -207
  718. package/src/main/js/sap/ushell/services/_UserRecents/RecentsList.js +0 -92
  719. package/src/main/js/sap/ushell/themes/base/img/launchpadDefaultIcon.jpg +0 -0
  720. /package/src/main/js/sap/ushell/{services/_VisualizationInstantiation → ui/launchpad}/VizInstanceRenderer.js +0 -0
@@ -0,0 +1,480 @@
1
+ // Copyright (c) 2009-2023 SAP SE, All Rights Reserved
2
+
3
+ sap.ui.define([
4
+ "sap/base/Log",
5
+ "sap/base/util/extend",
6
+ "sap/ui/Device",
7
+ "sap/ushell/Container",
8
+ "sap/ushell/EventHub",
9
+ "sap/ushell/library",
10
+ "sap/ushell/services/UserRecents/UserRecentsBase",
11
+ "sap/ushell/utils/UrlParsing"
12
+ ], function (
13
+ Log,
14
+ extend,
15
+ Device,
16
+ Container,
17
+ EventHub,
18
+ ushellLibrary,
19
+ UserRecentsBase,
20
+ UrlParsing
21
+ ) {
22
+ "use strict";
23
+
24
+ // shortcut for sap.ushell.AppType
25
+ const AppType = ushellLibrary.AppType;
26
+
27
+ /**
28
+ * @typedef sap.ushell.services.UserRecents.ActivityItemMetadata
29
+ * Wrapper for the item which is saved via the UserRecents service.
30
+ * Stores the metadata of the item and the usage array.
31
+ * @property {sap.ushell.services.UserRecents.ActivityItem} oItem
32
+ * @property {int} iTimestamp
33
+ * @property {int[]} aUsageArray
34
+ * @property {int} iCount
35
+ * @property {boolean} [mobile]
36
+ * @property {boolean} [tablet]
37
+ * @property {boolean} [desktop]
38
+ * @property {sap.ui.core.URI} [icon]
39
+ *
40
+ * @private
41
+ */
42
+
43
+ /**
44
+ * @typedef sap.ushell.services.UserRecents.RecentActivityContainer
45
+ * The internal data structure of the recent activities.
46
+ * This data structure is saved in the personalization container.
47
+ * @property {string} recentDay
48
+ * @property {sap.ushell.services.UserRecents.ActivityItemMetadata[]} recentUsageArray
49
+ *
50
+ * @private
51
+ */
52
+
53
+ /**
54
+ * @alias sap.ushell.services.UserRecents.RecentActivity
55
+ * @class
56
+ *
57
+ * @extends sap.ushell.services.UserRecents.UserRecentsBase
58
+ *
59
+ * @private
60
+ */
61
+ const RecentActivity = UserRecentsBase.extend("sap.ushell.services.UserRecents.RecentActivity", /** @lends sap.ushell.services.UserRecents.RecentActivity */ {
62
+ constructor: function (maxItems) {
63
+ UserRecentsBase.call(this, "RecentActivity", maxItems);
64
+ }
65
+ });
66
+
67
+ const aGenericIntents = [
68
+ "#Shell-launchURL",
69
+ "#Shell-startGUI",
70
+ "#Shell-startIntent",
71
+ "#Shell-startURL",
72
+ "#Shell-startWDA"
73
+ ];
74
+
75
+ /**
76
+ * Number of days to be considered "recent"
77
+ */
78
+ RecentActivity.MAX_DAYS = 30;
79
+ /**
80
+ * Number of items to use for the item feed
81
+ */
82
+ RecentActivity.ITEM_COUNT = 30;
83
+
84
+ /**
85
+ * Compares items a and b for equality.
86
+ * This does not depend on the identical references or content, but on the properties "appType", "url" and "appId".
87
+ *
88
+ * @param {sap.ushell.services.UserRecents.ActivityItem} oItem1 The first item to be checked.
89
+ * @param {sap.ushell.services.UserRecents.ActivityItem} oItem2 The second item to be checked.
90
+ * @returns {boolean} True if both items are considered equal, otherwise false.
91
+ * @private
92
+ */
93
+ RecentActivity._compareItems = function (oItem1, oItem2) {
94
+ const bSameAppType = oItem1.appType === oItem2.appType;
95
+ const bSameUrl = oItem1.url === oItem2.url;
96
+ const bSameAppId = oItem1.appId === oItem2.appId;
97
+ const bSameTitle = oItem1.title === oItem2.title;
98
+
99
+ if (bSameAppType) {
100
+ if (oItem1.appType !== AppType.APP) {
101
+ return bSameUrl;
102
+ }
103
+
104
+ if (bSameAppId && aGenericIntents.includes(oItem1.appId)) {
105
+ // This is a special case for apps launched with the generic intents.
106
+ return bSameTitle;
107
+ }
108
+ return bSameAppId;
109
+ } else if (oItem1.appType === AppType.APP || oItem2.appType === AppType.APP) {
110
+ return bSameAppId && bSameUrl;
111
+ }
112
+ return false;
113
+ };
114
+
115
+ /**
116
+ * Updates an existing item if it is already in the recents list.
117
+ * @param {sap.ushell.services.UserRecents.RecentActivityContainer} oRecentActivityContainer The recent activities.
118
+ * @param {sap.ushell.services.UserRecents.ActivityItem} oUpdateItem The item to update.
119
+ * @param {int} iTimestampNow The current timestamp.
120
+ * @returns {boolean} True if the item was updated, otherwise false.
121
+ *
122
+ * @private
123
+ */
124
+ RecentActivity.prototype._updateIfAlreadyIn = function (oRecentActivityContainer, oUpdateItem, iTimestampNow) {
125
+ return oRecentActivityContainer.recentUsageArray.some((oMetadata) => {
126
+ const { oItem, aUsageArray } = oMetadata;
127
+ if (RecentActivity._compareItems(oItem, oUpdateItem)) {
128
+ /*
129
+ * in case both items considered as equal (by _compareItems function),
130
+ * we will override the saved item only in case its type is not type 'Application'.
131
+ *
132
+ * As the shell always adds user recent entry after every app closed, it might be that a different
133
+ * App as 'OVP' for example will also use API to add its app as user-recent entry, and the information
134
+ * they provide regarding the item to save is with higher value then the information the shell constructs (icon title etc)
135
+ */
136
+ const bSameAppType = oUpdateItem.appType === oItem.appType;
137
+ const bUpdateItemIsApp = oUpdateItem.appType === AppType.APP;
138
+ if (bSameAppType || !bUpdateItemIsApp) {
139
+ // override the item
140
+ extend(oItem, oUpdateItem);
141
+ oItem.timestamp = iTimestampNow;
142
+ oMetadata.iTimestamp = iTimestampNow;
143
+ oMetadata.mobile = undefined;
144
+ oMetadata.tablet = undefined;
145
+ oMetadata.desktop = undefined;
146
+
147
+ // we update the counter if -
148
+ // - existing item and new item are of the same type OR
149
+ // - existing item and new item is not of same type BUT both are not Application
150
+ const bExistingItemIsApp = oItem.appType === AppType.APP;
151
+ if (bSameAppType || (!bUpdateItemIsApp && !bExistingItemIsApp)) {
152
+ // update both the usage array's last day and the global entry counter
153
+ aUsageArray[aUsageArray.length - 1] += 1;
154
+ oMetadata.iCount += 1;
155
+ }
156
+
157
+ oRecentActivityContainer.recentUsageArray.sort(UserRecentsBase.itemSorter);
158
+ }
159
+
160
+ return true;
161
+ }
162
+ return false;
163
+ });
164
+ };
165
+
166
+ /**
167
+ * Inserts a new item to the recents list and removes the oldest item if the list is full.
168
+ * Updates the timestamp of the item.
169
+ * @param {sap.ushell.services.UserRecents.RecentActivityContainer} oRecentActivityContainer The recent activities.
170
+ * @param {sap.ushell.services.UserRecents.ActivityItem} oItem The item to add.
171
+ * @param {int} iTimestampNow The current timestamp.
172
+ * @param {sap.ui.core.URI} [sIcon] The icon.
173
+ *
174
+ * @private
175
+ */
176
+ RecentActivity.prototype._insertNew = function (oRecentActivityContainer, oItem, iTimestampNow, sIcon) {
177
+ oItem.timestamp = iTimestampNow;
178
+ if (sIcon) {
179
+ oItem.icon = sIcon;
180
+ }
181
+ const oNewEntry = {
182
+ oItem: oItem,
183
+ iTimestamp: iTimestampNow,
184
+ aUsageArray: [1],
185
+ iCount: 1,
186
+ mobile: undefined,
187
+ tablet: undefined,
188
+ desktop: undefined
189
+ };
190
+ if (oRecentActivityContainer.recentUsageArray.length === this.iMaxItems) {
191
+ oRecentActivityContainer.recentUsageArray.pop();
192
+ }
193
+ oRecentActivityContainer.recentUsageArray.unshift(oNewEntry);
194
+ };
195
+
196
+ /**
197
+ * Adds a new item or updates an existing item to the recents list with the current time.
198
+ * @param {sap.ushell.services.UserRecents.ActivityItem} oItem The item to add.
199
+ * @returns {Promise} Resolves when the new item was added.
200
+ *
201
+ * @private
202
+ */
203
+ RecentActivity.prototype.newItem = async function (oItem) {
204
+ const iTimestampNow = Date.now();
205
+ const sIcon = this._getActivityIcon(oItem.appType, oItem.icon);
206
+ let bAlreadyIn;
207
+ const currentDay = this.getDayFromDate(new Date());
208
+
209
+ const oRecentActivityContainer = await this._getRecentActivitiesFromLoadedData();
210
+ // If the current day is different than the recent one -
211
+ // add a new entry (for the current day's usage) to each usage array
212
+ if (currentDay !== oRecentActivityContainer.recentDay) {
213
+ this._addNewDay(oRecentActivityContainer);
214
+ oRecentActivityContainer.recentDay = currentDay;
215
+ }
216
+
217
+ bAlreadyIn = this._updateIfAlreadyIn(oRecentActivityContainer, oItem, iTimestampNow);
218
+ if (!bAlreadyIn) {
219
+ this._insertNew(oRecentActivityContainer, oItem, iTimestampNow, sIcon);
220
+ }
221
+
222
+ await this.save(oRecentActivityContainer);
223
+
224
+ EventHub.emit("newUserRecentsItem", oRecentActivityContainer);
225
+ };
226
+
227
+ /**
228
+ * Returns the activity icon according to the app type and provided icon.
229
+ * @param {sap.ushell.AppType} sAppType The app type.
230
+ * @param {sap.ui.core.URI} [sIcon] Icon override.
231
+ * @returns {sap.ui.core.URI} The final activity icon.
232
+ *
233
+ * @private
234
+ */
235
+ RecentActivity.prototype._getActivityIcon = function (sAppType, sIcon) {
236
+ if (sIcon) {
237
+ return sIcon;
238
+ }
239
+ switch (sAppType) {
240
+ case AppType.SEARCH:
241
+ return "sap-icon://search";
242
+ case AppType.COPILOT:
243
+ return "sap-icon://co";
244
+ case AppType.URL:
245
+ return "sap-icon://internet-browser";
246
+ default:
247
+ return "sap-icon://product";
248
+ }
249
+ };
250
+
251
+ /**
252
+ * Clears all recent activities.
253
+ * @returns {Promise} Resolves when the recent activities are cleared.
254
+ *
255
+ * @private
256
+ */
257
+ RecentActivity.prototype.clearAllActivities = async function () {
258
+ await this.save([]);
259
+ EventHub.emit("userRecentsCleared", Date.now());
260
+ };
261
+
262
+ /**
263
+ * Returns the current device.
264
+ * @returns {string} The current device.
265
+ *
266
+ * @private
267
+ */
268
+ RecentActivity.prototype._getCurrentDevice = function () {
269
+ if (Device.system.desktop) {
270
+ return "desktop";
271
+ } else if (Device.system.tablet) {
272
+ return "tablet";
273
+ }
274
+ return "mobile";
275
+ };
276
+
277
+
278
+ /**
279
+ * getRecentItems return last RecentActivity.ITEM_COUNT activities for current device.
280
+ * - Check if for the current device we have unresolved entries.
281
+ * - resolve the unresolved entries and set the attribute according to the current device.
282
+ * - persist data.
283
+ * - return the last <maxNumOfActivities> entries or all entries supported by current device (if maxNumOfActivities was not provided).
284
+ *
285
+ * @param {int} iMaxNumOfActivities The maximum amount of activities to return.
286
+ * @returns {Promise<sap.ushell.services.UserRecents.ActivityItemMetadata[]>} Resolves with the recent items.
287
+ *
288
+ * @private
289
+ */
290
+ RecentActivity.prototype._filterRecentItems = async function (iMaxNumOfActivities) {
291
+ const sCurrentDay = this.getDayFromDate(new Date());
292
+ const sCurrentDevice = this._getCurrentDevice();
293
+
294
+ const oRecentActivityContainer = await this._getRecentActivitiesFromLoadedData();
295
+ // If the current day is different than the recent one -
296
+ // add a new entry (for the current day's usage) to each usage array
297
+ let bNewDayAdded = false;
298
+ if (sCurrentDay !== oRecentActivityContainer.recentDay) {
299
+ this._addNewDay(oRecentActivityContainer);
300
+ oRecentActivityContainer.recentDay = sCurrentDay;
301
+ bNewDayAdded = true;
302
+ }
303
+
304
+ //collect all unresolved activities for current device.
305
+ const oUnresolvedActivities = oRecentActivityContainer.recentUsageArray.reduce((oUnresolved, oMetadata, iIndex) => {
306
+ if (oMetadata[sCurrentDevice] === undefined) {
307
+ const { url: sUrl } = oMetadata.oItem;
308
+ const sHash = UrlParsing.getShellHash(sUrl);
309
+
310
+ if (sHash) {
311
+ oUnresolved.intent.push({
312
+ index: iIndex,
313
+ hash: sHash
314
+ });
315
+ } else {
316
+ oUnresolved.url.push({ index: iIndex });
317
+ }
318
+ }
319
+ return oUnresolved;
320
+ }, { url: [], intent: [] });
321
+
322
+ const bShouldPersist = bNewDayAdded || oUnresolvedActivities.url.length > 0 || oUnresolvedActivities.intent.length > 0;
323
+
324
+ // resolve urls
325
+ oUnresolvedActivities.url.forEach(({ index }) => {
326
+ const oMetadata = oRecentActivityContainer.recentUsageArray[index];
327
+ oMetadata[sCurrentDevice] = true;
328
+ });
329
+
330
+ // resolve intents
331
+ if (oUnresolvedActivities.intent.length > 0) {
332
+ const aIntentsToResolve = oUnresolvedActivities.intent.map(({ hash }) => ({ target: { shellHash: hash } }));
333
+
334
+ const NavigationService = await Container.getServiceAsync("Navigation");
335
+ const aResult = await NavigationService.isNavigationSupported(aIntentsToResolve);
336
+
337
+ oUnresolvedActivities.intent.forEach(({ index }, iIndex) => {
338
+ const { supported } = aResult[iIndex];
339
+ const oMetadata = oRecentActivityContainer.recentUsageArray[index];
340
+ oMetadata[sCurrentDevice] = supported;
341
+ });
342
+ }
343
+
344
+ if (bShouldPersist) {
345
+ await this.save(oRecentActivityContainer);
346
+ }
347
+
348
+ const aMetadata = this._getRecentItemsForCurrentDevice(oRecentActivityContainer);
349
+
350
+ if (iMaxNumOfActivities) {
351
+ return aMetadata.slice(0, iMaxNumOfActivities);
352
+ }
353
+ return aMetadata;
354
+ };
355
+
356
+ /**
357
+ * Filters the recent items according to the current device.
358
+ * @param {sap.ushell.services.UserRecents.RecentActivityContainer} oRecentActivities The recent activities.
359
+ * @returns {sap.ushell.services.UserRecents.ActivityItemMetadata[]} The recent items for the current device.
360
+ *
361
+ * @private
362
+ */
363
+ RecentActivity.prototype._getRecentItemsForCurrentDevice = function (oRecentActivities) {
364
+ const sCurrentDevice = this._getCurrentDevice();
365
+
366
+ return oRecentActivities.recentUsageArray.filter((oMetadata) => oMetadata[sCurrentDevice]);
367
+ };
368
+
369
+ /**
370
+ * Returns the recent items.
371
+ * @returns {Promise<sap.ushell.services.UserRecents.ActivityItem[]>} Resolves with the recent items.
372
+ *
373
+ * @private
374
+ */
375
+ RecentActivity.prototype.getRecentItems = async function () {
376
+ const aFilteredMetadata = await this._filterRecentItems(RecentActivity.ITEM_COUNT);
377
+ return aFilteredMetadata.map((oMetadata) => oMetadata.oItem);
378
+ };
379
+
380
+ /**
381
+ * Returns the frequent items.
382
+ * @returns {Promise<sap.ushell.services.UserRecents.ActivityItem[]>} Resolves with the frequent items.
383
+ *
384
+ * @private
385
+ */
386
+ RecentActivity.prototype.getFrequentItems = async function () {
387
+ const aMetadata = await this._filterRecentItems();
388
+ let iWorkingDaysCounter = 0;
389
+ let aFrequentActivity = [];
390
+ let dPreviousDate = aMetadata[0] ? new Date(aMetadata[0].iTimestamp).toDateString() : "";
391
+ // Go through the recent activities list and leave only activities from the last MAX_DAYS working days
392
+ for (let iIndex = 0; iIndex < aMetadata.length && iWorkingDaysCounter < RecentActivity.MAX_DAYS; iIndex++) {
393
+ const oMetadata = aMetadata[iIndex];
394
+ // Add only activities that happened more than once
395
+ if (oMetadata.iCount > 1) {
396
+ aFrequentActivity.push(oMetadata);
397
+ }
398
+ const dCurrentDate = new Date(oMetadata.iTimestamp).toDateString();
399
+ if (dPreviousDate !== dCurrentDate) {
400
+ // If found an activity with a different date than the previous one, increase the days counter
401
+ iWorkingDaysCounter++;
402
+ dPreviousDate = dCurrentDate;
403
+ }
404
+ }
405
+ // Sort in descending order according to the count
406
+ aFrequentActivity.sort(function (a, b) {
407
+ return b.iCount - a.iCount;
408
+ });
409
+ // Take only first items (ITEM_COUNT most frequent items)
410
+ aFrequentActivity = aFrequentActivity.slice(0, RecentActivity.ITEM_COUNT);
411
+ return aFrequentActivity.map((oRecentEntry) => oRecentEntry.oItem);
412
+ };
413
+
414
+ /**
415
+ * Adds a new day to the usage array of each activity.
416
+ * @param {sap.ushell.services.UserRecents.RecentActivityContainer} oRecentActivityContainer The recent activities.
417
+ *
418
+ * @private
419
+ */
420
+ RecentActivity.prototype._addNewDay = function (oRecentActivityContainer) {
421
+ oRecentActivityContainer.recentUsageArray.forEach(function (oMetadata) {
422
+ // initialize the array if it doesn't exist
423
+ if (!oMetadata.aUsageArray) {
424
+ oMetadata.aUsageArray = [];
425
+ oMetadata.iCount = 0;
426
+ }
427
+
428
+ const { aUsageArray } = oMetadata;
429
+
430
+ // Add an item in the Array for the new day
431
+ aUsageArray.push(0);
432
+
433
+ // If the array size is > iMaximumDays, remove the first (oldest) entry and update the count accordingly
434
+ if (aUsageArray.length > RecentActivity.MAX_DAYS) {
435
+ oMetadata.iCount -= aUsageArray[0];
436
+ aUsageArray.shift();
437
+ }
438
+ });
439
+ };
440
+
441
+ /**
442
+ * Returns the recent activities from the loaded data.
443
+ * Transforms the loaded data into the expected format.
444
+ * @returns {Promise<sap.ushell.services.UserRecents.RecentActivityContainer>} The recent activities.
445
+ *
446
+ * @private
447
+ */
448
+ RecentActivity.prototype._getRecentActivitiesFromLoadedData = async function () {
449
+ const vLoadedRecentsOrUsages = await this.load();
450
+ let oLoadedRecentActivities;
451
+ let aLoadedUsages;
452
+
453
+ // Legacy format
454
+ if (Array.isArray(vLoadedRecentsOrUsages)) {
455
+ aLoadedUsages = vLoadedRecentsOrUsages;
456
+
457
+ // New format
458
+ } else {
459
+ oLoadedRecentActivities = vLoadedRecentsOrUsages;
460
+ }
461
+
462
+ const oRecentActivities = oLoadedRecentActivities || {
463
+ recentDay: null,
464
+ recentUsageArray: aLoadedUsages || []
465
+ };
466
+
467
+ // Validate entries
468
+ oRecentActivities.recentUsageArray = oRecentActivities.recentUsageArray.filter(function (oMetadata) {
469
+ const bIsValid = !!oMetadata?.oItem?.url;
470
+ if (!bIsValid) {
471
+ Log.error("FLP Recent Activity", oMetadata, "is not valid. The activity is removed from the list.");
472
+ }
473
+ return bIsValid;
474
+ });
475
+
476
+ return oRecentActivities;
477
+ };
478
+
479
+ return RecentActivity;
480
+ });
@@ -0,0 +1,207 @@
1
+ // Copyright (c) 2009-2023 SAP SE, All Rights Reserved
2
+ sap.ui.define([
3
+ "sap/base/Log",
4
+ "sap/ushell/services/UserRecents/UserRecentsBase",
5
+ "sap/ushell/utils"
6
+ ], function (
7
+ Log,
8
+ UserRecentsBase,
9
+ ushellUtils
10
+ ) {
11
+ "use strict";
12
+
13
+ /**
14
+ * @alias sap.ushell.services.UserRecents.RecentAppsUsage
15
+ * @class
16
+ * @classdesc User action collector counter of user usage of applications according to the URL hash.
17
+ *
18
+ * @extends sap.ushell.services.UserRecents.UserRecentsBase
19
+ *
20
+ * @private
21
+ */
22
+ const RecentAppsUsage = UserRecentsBase.extend("sap.ushell.services.UserRecents.RecentAppsUsage", /** @lends sap.ushell.services.UserRecents.RecentAppsUsage */ {
23
+ constructor: function () {
24
+ UserRecentsBase.call(this, "AppsUsage");
25
+ }
26
+ });
27
+
28
+ /**
29
+ * Number of days to be considered "recent"
30
+ */
31
+ RecentAppsUsage.MAX_DAYS = 30;
32
+
33
+ /**
34
+ * Initialization of RecentAppsUsage.
35
+ * Called from shell.controller's <code>init</code> function
36
+ * - Loads user personalized data
37
+ * - Defines a new day is the data structure, if needed
38
+ * - Cleans empty hash usage arrays
39
+ *
40
+ * @returns {Promise} Resolves after init is done
41
+ *
42
+ * @private
43
+ */
44
+ RecentAppsUsage.prototype.init = async function () {
45
+ const sCurrentDay = this.getDayFromDate(new Date());
46
+ let bDataLoadedTriggered = false;
47
+
48
+ // Personalized data not loaded yet
49
+ if (!bDataLoadedTriggered || sCurrentDay !== this.oAppsUsageData.recentDay) {
50
+ bDataLoadedTriggered = true;
51
+
52
+ try {
53
+ const oData = await this.load();
54
+ // Initialize structure from the loaded data, or define new
55
+ this.oAppsUsageData = oData || {
56
+ recentDay: null,
57
+ recentAppsUsageMap: {}
58
+ };
59
+
60
+ // Update usage
61
+ await this.calculateInitialUsage(sCurrentDay);
62
+ return this.oAppsUsageData;
63
+ } catch (oError) {
64
+ Log.error("Load data in Init failed", oError, "sap.ushell.services.UserRecents.RecentAppsUsage");
65
+ return Promise.reject(oError);
66
+ }
67
+ }
68
+ };
69
+
70
+ /**
71
+ * @param {string} currentDay The current day in the format YYYY/mm/dd.
72
+ * @returns {Promise} Resolves after the data is saved
73
+ *
74
+ * @private
75
+ */
76
+ RecentAppsUsage.prototype.calculateInitialUsage = async function (currentDay) {
77
+ // If the current day is different than the recent one - add a new entry (for the current day's usage) to each hash usage array
78
+ if (currentDay !== this.oAppsUsageData.recentDay) {
79
+ this._addNewDay();
80
+ this.oAppsUsageData.recentDay = currentDay;
81
+
82
+ this._cleanUnusedHashes();
83
+
84
+ await this.save(this.oAppsUsageData);
85
+ }
86
+ };
87
+
88
+ /**
89
+ * Records applications usage according to URL hashes
90
+ * - Check hash validity
91
+ * - Gets the relevant hash usage array
92
+ * - Add this usage (increment the value) or create a new array if needed
93
+ * - Save the data structure
94
+ *
95
+ * @param {string} sHash The hash of the application for which a usage should be registered.
96
+ * @returns {Promise} Resolves after AppUsage was added
97
+ *
98
+ * @private
99
+ */
100
+ RecentAppsUsage.prototype.addAppUsage = async function (sHash) {
101
+ if (!ushellUtils.validHash(sHash)) { // Check hash validity
102
+ return Promise.reject("Non valid hash");
103
+ }
104
+
105
+ await this.init();
106
+
107
+ // Get the data (usage per day) for the given hash
108
+ const aAppUsageArray = this.oAppsUsageData.recentAppsUsageMap[sHash] || [];
109
+
110
+ // New app that wasn't opened so far. Insert "1" since this is the first time it is opened
111
+ if (aAppUsageArray.length === 0) {
112
+ aAppUsageArray[0] = 1;
113
+ } else {
114
+ // Increment the existing counter of this day for this hash (i.e. the last entry in the array)
115
+ aAppUsageArray[aAppUsageArray.length - 1] += 1;
116
+ }
117
+ this.oAppsUsageData.recentAppsUsageMap[sHash] = aAppUsageArray;
118
+ await this.save(this.oAppsUsageData);
119
+ };
120
+
121
+ /**
122
+ * Summarizes and returns the usage per hash and the minimum and maximum values
123
+ * @returns {Promise<sap.ushell.services.UserRecents.AppsUsageSummary>} Resolves the apps usage summary
124
+ *
125
+ * @private
126
+ */
127
+ RecentAppsUsage.prototype.getAppsUsage = async function () {
128
+ await this.init();
129
+
130
+ const oUsageMap = {};
131
+ let iMaxUsage,
132
+ iMinUsage;
133
+ let bFirstHashUsage = true;
134
+
135
+ for (let sHash in this.oAppsUsageData.recentAppsUsageMap) {
136
+ oUsageMap[sHash] = this._getHashUsageSum(sHash);
137
+ if (bFirstHashUsage) {
138
+ iMaxUsage = iMinUsage = oUsageMap[sHash];
139
+ bFirstHashUsage = false;
140
+ } else if (oUsageMap[sHash] < iMinUsage) {
141
+ iMinUsage = oUsageMap[sHash];
142
+ } else if (oUsageMap[sHash] > iMaxUsage) {
143
+ iMaxUsage = oUsageMap[sHash];
144
+ }
145
+ }
146
+ return {
147
+ usageMap: oUsageMap,
148
+ maxUsage: iMaxUsage,
149
+ minUsage: iMinUsage
150
+ };
151
+ };
152
+
153
+ /**
154
+ * Adds a new day to the usage array of each hash
155
+ * and removes the oldest entry if needed
156
+ *
157
+ * @private
158
+ */
159
+ RecentAppsUsage.prototype._addNewDay = function () {
160
+ let aAppUsageArray;
161
+ for (let sHash in this.oAppsUsageData.recentAppsUsageMap) {
162
+ // Get the array of app/hash usage
163
+ aAppUsageArray = this.oAppsUsageData.recentAppsUsageMap[sHash];
164
+
165
+ // Add an item in the Array for the new day
166
+ aAppUsageArray[aAppUsageArray.length] = 0;
167
+
168
+ // If the array size is > iMaximumDays, remove the first (oldest) entry
169
+ if (aAppUsageArray.length > RecentAppsUsage.MAX_DAYS) {
170
+ aAppUsageArray = aAppUsageArray.shift();
171
+ }
172
+ }
173
+ };
174
+
175
+ /**
176
+ * Removes unused hashes
177
+ *
178
+ * @private
179
+ */
180
+ RecentAppsUsage.prototype._cleanUnusedHashes = function () {
181
+ let iUsages;
182
+
183
+ for (let sHash in this.oAppsUsageData.recentAppsUsageMap) {
184
+ iUsages = this._getHashUsageSum(sHash);
185
+
186
+ if (iUsages === 0) {
187
+ delete (this.oAppsUsageData.recentAppsUsageMap[sHash]);
188
+ }
189
+ }
190
+ };
191
+
192
+ /**
193
+ * Summarizes the usage of a given hash
194
+ * @param {string} sHash The hash for which the usage should be summarized
195
+ * @returns {int} The sum of the usage of the given hash
196
+ *
197
+ * @private
198
+ */
199
+ RecentAppsUsage.prototype._getHashUsageSum = function (sHash) {
200
+ const aAppUsages = this.oAppsUsageData.recentAppsUsageMap[sHash];
201
+ return aAppUsages.reduce(function (iSum, iUsages) {
202
+ return iSum + iUsages;
203
+ }, 0);
204
+ };
205
+
206
+ return RecentAppsUsage;
207
+ });