@sapui5/sap.ushell 1.136.3 → 1.138.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 (886) 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 +4 -5
  4. package/src/main/js/sap/ushell/ApplicationType/guiResolution.js +677 -695
  5. package/src/main/js/sap/ushell/ApplicationType/systemAlias.js +612 -623
  6. package/src/main/js/sap/ushell/ApplicationType/ui5Resolution.js +14 -16
  7. package/src/main/js/sap/ushell/ApplicationType/urlResolution.js +19 -21
  8. package/src/main/js/sap/ushell/ApplicationType/urlTemplateResolution.js +486 -468
  9. package/src/main/js/sap/ushell/ApplicationType/utils.js +46 -46
  10. package/src/main/js/sap/ushell/ApplicationType/wcfResolution.js +24 -29
  11. package/src/main/js/sap/ushell/ApplicationType/wdaResolution.js +47 -55
  12. package/src/main/js/sap/ushell/ApplicationType.js +34 -34
  13. package/src/main/js/sap/ushell/Config/utils.js +45 -45
  14. package/src/main/js/sap/ushell/Config.js +4 -4
  15. package/src/main/js/sap/ushell/Container.js +359 -357
  16. package/src/main/js/sap/ushell/EventHub.js +216 -212
  17. package/src/main/js/sap/ushell/Fiori20Adapter.js +59 -98
  18. package/src/main/js/sap/ushell/Fiori20AdapterTest.js +23 -26
  19. package/src/main/js/sap/ushell/Layout.js +264 -291
  20. package/src/main/js/sap/ushell/NWBCInterface.js +8 -8
  21. package/src/main/js/sap/ushell/SessionHandler.js +8 -8
  22. package/src/main/js/sap/ushell/System.js +6 -6
  23. package/src/main/js/sap/ushell/TechnicalParameters.js +95 -96
  24. package/src/main/js/sap/ushell/UI5ComponentType.js +1 -1
  25. package/src/main/js/sap/ushell/UIActions.js +189 -188
  26. package/src/main/js/sap/ushell/URLTemplateProcessor/DefinitionParameterSetBuilder.js +21 -24
  27. package/src/main/js/sap/ushell/URLTemplateProcessor/DependencyGraph.js +29 -29
  28. package/src/main/js/sap/ushell/URLTemplateProcessor/Functions.js +96 -96
  29. package/src/main/js/sap/ushell/URLTemplateProcessor/Resolvers.js +58 -55
  30. package/src/main/js/sap/ushell/URLTemplateProcessor/TemplateParameterParser.js +201 -200
  31. package/src/main/js/sap/ushell/URLTemplateProcessor/utils.js +8 -8
  32. package/src/main/js/sap/ushell/URLTemplateProcessor.js +65 -65
  33. package/src/main/js/sap/ushell/Ui5NativeServiceFactory.js +30 -33
  34. package/src/main/js/sap/ushell/Ui5ServiceFactory.js +30 -43
  35. package/src/main/js/sap/ushell/User.js +114 -116
  36. package/src/main/js/sap/ushell/UserActivityLog.js +63 -63
  37. package/src/main/js/sap/ushell/adapters/AppVariantPersonalizationAdapter.js +46 -47
  38. package/src/main/js/sap/ushell/adapters/cdm/ClientSideTargetResolutionAdapter.js +34 -34
  39. package/src/main/js/sap/ushell/adapters/cdm/CommonDataModelAdapter.js +56 -57
  40. package/src/main/js/sap/ushell/adapters/cdm/ConfigurationDefaultsAdapter.js +3 -4
  41. package/src/main/js/sap/ushell/adapters/cdm/ContainerAdapter.js +144 -146
  42. package/src/main/js/sap/ushell/adapters/cdm/LaunchPageAdapter.js +569 -602
  43. package/src/main/js/sap/ushell/adapters/cdm/MenuAdapter.js +25 -25
  44. package/src/main/js/sap/ushell/adapters/cdm/PagesCommonDataModelAdapter.js +120 -119
  45. package/src/main/js/sap/ushell/adapters/cdm/PersonalizationAdapter.js +2 -2
  46. package/src/main/js/sap/ushell/adapters/cdm/PersonalizationV2Adapter.js +3 -3
  47. package/src/main/js/sap/ushell/adapters/cdm/Settings/UserLanguageAndRegion/UserLanguageAndRegion.controller.js +57 -53
  48. package/src/main/js/sap/ushell/adapters/cdm/Settings/UserLanguageAndRegion/UserLanguageAndRegion.view.xml +5 -2
  49. package/src/main/js/sap/ushell/adapters/cdm/Settings/UserLanguageAndRegion/UserLanguageAndRegionEntry.js +6 -6
  50. package/src/main/js/sap/ushell/adapters/cdm/Ui5ComponentLoaderAdapter.js +2 -3
  51. package/src/main/js/sap/ushell/adapters/cdm/_LaunchPage/modifyHome.js +21 -21
  52. package/src/main/js/sap/ushell/adapters/cdm/_LaunchPage/readCatalogs.js +2 -2
  53. package/src/main/js/sap/ushell/adapters/cdm/_LaunchPage/readHome.js +28 -37
  54. package/src/main/js/sap/ushell/adapters/cdm/_LaunchPage/uri.transform.js +89 -90
  55. package/src/main/js/sap/ushell/adapters/cdm/_Personalization/internals.js +179 -190
  56. package/src/main/js/sap/ushell/adapters/cdm/util/AppForInbound.js +12 -12
  57. package/src/main/js/sap/ushell/adapters/cdm/util/cdmSiteUtils.js +16 -17
  58. package/src/main/js/sap/ushell/adapters/cdm/v3/AdapterBase.js +144 -151
  59. package/src/main/js/sap/ushell/adapters/cdm/v3/FlpLaunchPageAdapter.js +527 -526
  60. package/src/main/js/sap/ushell/adapters/cdm/v3/LaunchPageAdapter.js +3 -3
  61. package/src/main/js/sap/ushell/adapters/cdm/v3/StaticGroupsAdapter.js +2 -2
  62. package/src/main/js/sap/ushell/adapters/cdm/v3/_LaunchPage/readApplications.js +6 -6
  63. package/src/main/js/sap/ushell/adapters/cdm/v3/_LaunchPage/readCatalogs.js +3 -4
  64. package/src/main/js/sap/ushell/adapters/cdm/v3/_LaunchPage/readHome.js +22 -28
  65. package/src/main/js/sap/ushell/adapters/cdm/v3/_LaunchPage/readPages.js +9 -9
  66. package/src/main/js/sap/ushell/adapters/cdm/v3/_LaunchPage/readUtils.js +27 -27
  67. package/src/main/js/sap/ushell/adapters/cdm/v3/_LaunchPage/readVisualizations.js +15 -18
  68. package/src/main/js/sap/ushell/adapters/cdm/v3/utilsCdm.js +67 -67
  69. package/src/main/js/sap/ushell/adapters/cep/MenuAdapter.js +27 -76
  70. package/src/main/js/sap/ushell/adapters/cep/NavTargetResolutionAdapter.js +3 -3
  71. package/src/main/js/sap/ushell/adapters/cep/NavTargetResolutionInternalAdapter.js +25 -25
  72. package/src/main/js/sap/ushell/adapters/cep/SearchCEPAdapter.js +42 -43
  73. package/src/main/js/sap/ushell/adapters/cflp/UserDefaultParameterPersistenceAdapter.js +45 -45
  74. package/src/main/js/sap/ushell/adapters/local/AdapterContainer.js +29 -29
  75. package/src/main/js/sap/ushell/adapters/local/AppStateAdapter.js +41 -37
  76. package/src/main/js/sap/ushell/adapters/local/ClientSideTargetResolutionAdapter.js +25 -28
  77. package/src/main/js/sap/ushell/adapters/local/ContainerAdapter.js +70 -72
  78. package/src/main/js/sap/ushell/adapters/local/FlpLaunchPageAdapter.js +450 -474
  79. package/src/main/js/sap/ushell/adapters/local/LaunchPageAdapter.js +3 -3
  80. package/src/main/js/sap/ushell/adapters/local/MenuAdapter.js +20 -22
  81. package/src/main/js/sap/ushell/adapters/local/NavTargetResolutionAdapter.js +3 -3
  82. package/src/main/js/sap/ushell/adapters/local/NavTargetResolutionInternalAdapter.js +44 -43
  83. package/src/main/js/sap/ushell/adapters/local/PageBuildingAdapter.js +12 -12
  84. package/src/main/js/sap/ushell/adapters/local/PagePersistenceAdapter.js +16 -16
  85. package/src/main/js/sap/ushell/adapters/local/PersonalizationAdapter.js +19 -17
  86. package/src/main/js/sap/ushell/adapters/local/PersonalizationV2Adapter.js +3 -3
  87. package/src/main/js/sap/ushell/adapters/local/SearchAdapter.js +5 -6
  88. package/src/main/js/sap/ushell/adapters/local/SearchCEPAdapter.js +10 -10
  89. package/src/main/js/sap/ushell/adapters/local/SupportTicketAdapter.js +5 -5
  90. package/src/main/js/sap/ushell/adapters/local/Ui5ComponentLoaderAdapter.js +2 -3
  91. package/src/main/js/sap/ushell/adapters/local/UserDefaultParameterPersistenceAdapter.js +26 -26
  92. package/src/main/js/sap/ushell/adapters/local/UserInfoAdapter.js +28 -29
  93. package/src/main/js/sap/ushell/api/BootstrapObserver.js +2 -3
  94. package/src/main/js/sap/ushell/api/Copilot.js +2 -4
  95. package/src/main/js/sap/ushell/api/DWS.js +2 -3
  96. package/src/main/js/sap/ushell/api/Inbox.js +2 -3
  97. package/src/main/js/sap/ushell/api/NewExperience/CustomOverflowListItem.js +2 -3
  98. package/src/main/js/sap/ushell/api/NewExperience.js +8 -8
  99. package/src/main/js/sap/ushell/api/RTA.js +27 -59
  100. package/src/main/js/sap/ushell/api/S4MyHome.js +3 -3
  101. package/src/main/js/sap/ushell/api/SAPBusinessClient.js +6 -36
  102. package/src/main/js/sap/ushell/api/common/ComponentInstantiation.js +5 -8
  103. package/src/main/js/sap/ushell/api/workpage/Designtime.js +2 -3
  104. package/src/main/js/sap/ushell/api/workpage/Runtime.js +2 -4
  105. package/src/main/js/sap/ushell/appIntegration/AppLifeCycle/KeepAliveMode.js +2 -2
  106. package/src/main/js/sap/ushell/appIntegration/AppLifeCycle.js +69 -88
  107. package/src/main/js/sap/ushell/appIntegration/ApplicationContainer.js +2 -4
  108. package/src/main/js/sap/ushell/appIntegration/ApplicationContainerCache.js +9 -9
  109. package/src/main/js/sap/ushell/appIntegration/ApplicationContainerRenderer.js +0 -1
  110. package/src/main/js/sap/ushell/appIntegration/ApplicationHandle.js +2 -2
  111. package/src/main/js/sap/ushell/appIntegration/IframeApplicationContainer.js +1 -3
  112. package/src/main/js/sap/ushell/appIntegration/IframeApplicationContainerRenderer.js +2 -4
  113. package/src/main/js/sap/ushell/appIntegration/KeepAliveApps.js +6 -6
  114. package/src/main/js/sap/ushell/appIntegration/PostMessageManager/AppruntimeHandler.js +7 -7
  115. package/src/main/js/sap/ushell/appIntegration/PostMessageManager/ExtensionItems.js +2 -2
  116. package/src/main/js/sap/ushell/appIntegration/PostMessageManager/LifecycleHandler.js +58 -59
  117. package/src/main/js/sap/ushell/appIntegration/PostMessageManager/MessageBrokerHandler.js +2 -3
  118. package/src/main/js/sap/ushell/appIntegration/PostMessageManager/NWBCHandler.js +2 -2
  119. package/src/main/js/sap/ushell/appIntegration/PostMessageManager/ServiceHandler.js +91 -91
  120. package/src/main/js/sap/ushell/appIntegration/UI5ApplicationContainerRenderer.js +0 -1
  121. package/src/main/js/sap/ushell/appIntegration/contracts/EmbeddedUI5Handler.js +3 -4
  122. package/src/main/js/sap/ushell/appIntegration/contracts/StatefulContainerV1Handler.js +3 -3
  123. package/src/main/js/sap/ushell/appIntegration/contracts/StatefulContainerV2Handler.js +1 -2
  124. package/src/main/js/sap/ushell/appRuntime/neo/AppInfoService.js +85 -74
  125. package/src/main/js/sap/ushell/appRuntime/neo/AppRuntimeNeo.js +2 -2
  126. package/src/main/js/sap/ushell/appRuntime/neo/ProxyAppUtils.js +8 -9
  127. package/src/main/js/sap/ushell/appRuntime/ui5/AppCommunicationMgr.js +57 -57
  128. package/src/main/js/sap/ushell/appRuntime/ui5/AppRuntime.js +660 -662
  129. package/src/main/js/sap/ushell/appRuntime/ui5/AppRuntimeContext.js +14 -14
  130. package/src/main/js/sap/ushell/appRuntime/ui5/AppRuntimeService.js +11 -2
  131. package/src/main/js/sap/ushell/appRuntime/ui5/SessionHandlerAgent.js +21 -25
  132. package/src/main/js/sap/ushell/appRuntime/ui5/performance/FesrEnhancer.js +11 -5
  133. package/src/main/js/sap/ushell/appRuntime/ui5/plugins/baseRta/AppLifeCycleUtils.js +31 -31
  134. package/src/main/js/sap/ushell/appRuntime/ui5/plugins/baseRta/BaseRTAPluginStatus.js +9 -10
  135. package/src/main/js/sap/ushell/appRuntime/ui5/plugins/baseRta/CheckConditions.js +56 -56
  136. package/src/main/js/sap/ushell/appRuntime/ui5/plugins/baseRta/Renderer.js +34 -34
  137. package/src/main/js/sap/ushell/appRuntime/ui5/plugins/baseRta/Trigger.js +222 -249
  138. package/src/main/js/sap/ushell/appRuntime/ui5/plugins/rtaAgent/Component.js +213 -207
  139. package/src/main/js/sap/ushell/appRuntime/ui5/plugins/rtaShell/Component.js +121 -129
  140. package/src/main/js/sap/ushell/appRuntime/ui5/plugins/scriptAgent/Component.js +19 -19
  141. package/src/main/js/sap/ushell/appRuntime/ui5/renderers/fiori2/AccessKeysAgent.js +9 -9
  142. package/src/main/js/sap/ushell/appRuntime/ui5/renderers/fiori2/Renderer.js +84 -29
  143. package/src/main/js/sap/ushell/appRuntime/ui5/renderers/fiori2/RendererExtensions.js +34 -34
  144. package/src/main/js/sap/ushell/appRuntime/ui5/services/AppConfiguration.js +12 -12
  145. package/src/main/js/sap/ushell/appRuntime/ui5/services/AppLifeCycle.js +7 -3
  146. package/src/main/js/sap/ushell/appRuntime/ui5/services/AppLifeCycleAgent.js +127 -102
  147. package/src/main/js/sap/ushell/appRuntime/ui5/services/AppState.js +11 -6
  148. package/src/main/js/sap/ushell/appRuntime/ui5/services/Bookmark.js +35 -29
  149. package/src/main/js/sap/ushell/appRuntime/ui5/services/BookmarkV2.js +30 -26
  150. package/src/main/js/sap/ushell/appRuntime/ui5/services/CommonDataModel.js +8 -3
  151. package/src/main/js/sap/ushell/appRuntime/ui5/services/Container.js +26 -26
  152. package/src/main/js/sap/ushell/appRuntime/ui5/services/CrossApplicationNavigation.js +41 -38
  153. package/src/main/js/sap/ushell/appRuntime/ui5/services/Extension/Item.js +4 -4
  154. package/src/main/js/sap/ushell/appRuntime/ui5/services/Extension.js +9 -23
  155. package/src/main/js/sap/ushell/appRuntime/ui5/services/FlpLaunchPage.js +3 -3
  156. package/src/main/js/sap/ushell/appRuntime/ui5/services/FrameBoundExtension.js +3 -3
  157. package/src/main/js/sap/ushell/appRuntime/ui5/services/LaunchPage.js +7 -3
  158. package/src/main/js/sap/ushell/appRuntime/ui5/services/MessageBroker.js +16 -17
  159. package/src/main/js/sap/ushell/appRuntime/ui5/services/NavTargetResolution.js +21 -17
  160. package/src/main/js/sap/ushell/appRuntime/ui5/services/NavTargetResolutionInternal.js +22 -17
  161. package/src/main/js/sap/ushell/appRuntime/ui5/services/Navigation.js +31 -28
  162. package/src/main/js/sap/ushell/appRuntime/ui5/services/ReferenceResolver.js +4 -4
  163. package/src/main/js/sap/ushell/appRuntime/ui5/services/ShellNavigation.js +10 -6
  164. package/src/main/js/sap/ushell/appRuntime/ui5/services/ShellNavigationInternal.js +10 -6
  165. package/src/main/js/sap/ushell/appRuntime/ui5/services/ShellUIService.js +9 -9
  166. package/src/main/js/sap/ushell/appRuntime/ui5/services/UserDefaultParameters.js +1 -1
  167. package/src/main/js/sap/ushell/appRuntime/ui5/services/UserInfo.js +10 -6
  168. package/src/main/js/sap/ushell/appRuntime/ui5/services/adapters/ContainerAdapter.js +40 -43
  169. package/src/main/js/sap/ushell/appRuntime/ui5/services/adapters/EmptyAdapter.js +6 -6
  170. package/src/main/js/sap/ushell/appRuntime/ui5/services/adapters/Ui5ComponentLoaderAdapter.js +2 -3
  171. package/src/main/js/sap/ushell/appRuntime/ui5/ui/UIProxy.js +4 -4
  172. package/src/main/js/sap/ushell/bootstrap/SchedulingAgent/EventProcessor.js +9 -9
  173. package/src/main/js/sap/ushell/bootstrap/SchedulingAgent/FLPLoader.js +8 -9
  174. package/src/main/js/sap/ushell/bootstrap/SchedulingAgent/FLPScheduler.js +40 -42
  175. package/src/main/js/sap/ushell/bootstrap/SchedulingAgent/LoadingConfiguration.json +1 -1
  176. package/src/main/js/sap/ushell/bootstrap/SchedulingAgent/StepConfiguration.json +1 -6
  177. package/src/main/js/sap/ushell/bootstrap/SchedulingAgent/logger.js +13 -13
  178. package/src/main/js/sap/ushell/bootstrap/SchedulingAgent/state.js +19 -19
  179. package/src/main/js/sap/ushell/bootstrap/SchedulingAgent.js +23 -32
  180. package/src/main/js/sap/ushell/bootstrap/cdm/cdm-def-dev.js +3 -4
  181. package/src/main/js/sap/ushell/bootstrap/cdm/cdm-def-loader.js +1 -1
  182. package/src/main/js/sap/ushell/bootstrap/cdm/cdm-def.js +3 -3
  183. package/src/main/js/sap/ushell/bootstrap/cdm/cdm.boot.task.js +3 -3
  184. package/src/main/js/sap/ushell/bootstrap/cdm/cdm.constants.js +5 -4
  185. package/src/main/js/sap/ushell/bootstrap/cdm.js +11 -12
  186. package/src/main/js/sap/ushell/bootstrap/common/common.boot.path.js +1 -1
  187. package/src/main/js/sap/ushell/bootstrap/common/common.boot.script.js +2 -2
  188. package/src/main/js/sap/ushell/bootstrap/common/common.boot.task.js +3 -3
  189. package/src/main/js/sap/ushell/bootstrap/common/common.configure.ui5.extractLibs.js +1 -2
  190. package/src/main/js/sap/ushell/bootstrap/common/common.configure.ui5.js +13 -13
  191. package/src/main/js/sap/ushell/bootstrap/common/common.configure.ui5datetimeformat.js +9 -9
  192. package/src/main/js/sap/ushell/bootstrap/common/common.configure.ui5language.js +3 -3
  193. package/src/main/js/sap/ushell/bootstrap/common/common.configure.ui5theme.js +13 -15
  194. package/src/main/js/sap/ushell/bootstrap/common/common.configure.ushell.js +4 -9
  195. package/src/main/js/sap/ushell/bootstrap/common/common.constants.js +1 -1
  196. package/src/main/js/sap/ushell/bootstrap/common/common.create.configcontract.core.js +0 -14
  197. package/src/main/js/sap/ushell/bootstrap/common/common.debug.mode.js +3 -3
  198. package/src/main/js/sap/ushell/bootstrap/common/common.load.bootstrapExtension.js +3 -4
  199. package/src/main/js/sap/ushell/bootstrap/common/common.load.core-min.js +5 -7
  200. package/src/main/js/sap/ushell/bootstrap/common/common.load.launchpad.js +6 -8
  201. package/src/main/js/sap/ushell/bootstrap/common/common.load.model.js +6 -6
  202. package/src/main/js/sap/ushell/bootstrap/common/common.load.script.js +3 -3
  203. package/src/main/js/sap/ushell/bootstrap/common/common.override.registermodulepath.js +37 -38
  204. package/src/main/js/sap/ushell/bootstrap/common/common.read.metatags.js +6 -6
  205. package/src/main/js/sap/ushell/bootstrap/common/common.read.ui5theme.from.config.js +11 -11
  206. package/src/main/js/sap/ushell/bootstrap/common/common.read.ushell.config.from.url.js +22 -25
  207. package/src/main/js/sap/ushell/bootstrap/common/common.util.js +10 -12
  208. package/src/main/js/sap/ushell/bootstrap/sandbox2/sandbox.js +11 -10
  209. package/src/main/js/sap/ushell/bootstrap/sandbox2/sandboxBootTask.js +1 -1
  210. package/src/main/js/sap/ushell/bootstrap/sandbox2/sandboxConfig.json +8 -24
  211. package/src/main/js/sap/ushell/bootstrap/sandbox2.js +13 -13
  212. package/src/main/js/sap/ushell/bootstrap/ui5loader-config.js +7 -7
  213. package/src/main/js/sap/ushell/components/appfinder/manifest.json +1 -1
  214. package/src/main/js/sap/ushell/components/cards/Card.controller.js +2 -2
  215. package/src/main/js/sap/ushell/components/cepsearchresult/app/Component.js +57 -30
  216. package/src/main/js/sap/ushell/components/cepsearchresult/app/Main.controller.js +330 -312
  217. package/src/main/js/sap/ushell/components/cepsearchresult/app/cards/searchresultwidget/Component.js +171 -154
  218. package/src/main/js/sap/ushell/components/cepsearchresult/app/cards/searchresultwidget/Config.js +236 -233
  219. package/src/main/js/sap/ushell/components/cepsearchresult/app/cards/searchresultwidget/Extension.js +35 -33
  220. package/src/main/js/sap/ushell/components/cepsearchresult/app/cards/searchresultwidget/manifest.json +4 -1
  221. package/src/main/js/sap/ushell/components/cepsearchresult/app/manifest.json +4 -6
  222. package/src/main/js/sap/ushell/components/cepsearchresult/app/util/AdvancedFormatters.js +64 -60
  223. package/src/main/js/sap/ushell/components/cepsearchresult/app/util/Edition.js +139 -141
  224. package/src/main/js/sap/ushell/components/cepsearchresult/app/util/EditionAdvanced.js +8 -9
  225. package/src/main/js/sap/ushell/components/cepsearchresult/app/util/EditionStandard.js +4 -4
  226. package/src/main/js/sap/ushell/components/cepsearchresult/app/util/appendStyleVars.js +37 -34
  227. package/src/main/js/sap/ushell/components/cepsearchresult/app/util/controls/Category.js +694 -646
  228. package/src/main/js/sap/ushell/components/cepsearchresult/app/util/controls/Highlighter.js +220 -223
  229. package/src/main/js/sap/ushell/components/cepsearchresult/app/util/controls/Paginator.css +2 -2
  230. package/src/main/js/sap/ushell/components/cepsearchresult/app/util/controls/Paginator.js +258 -225
  231. package/src/main/js/sap/ushell/components/cepsearchresult/app/util/controls/categories/All.js +58 -49
  232. package/src/main/js/sap/ushell/components/cepsearchresult/app/util/controls/categories/Application.js +200 -203
  233. package/src/main/js/sap/ushell/components/cepsearchresult/app/util/controls/categories/Event.js +129 -131
  234. package/src/main/js/sap/ushell/components/cepsearchresult/app/util/controls/categories/People.js +91 -92
  235. package/src/main/js/sap/ushell/components/cepsearchresult/app/util/controls/categories/Workpage.js +18 -18
  236. package/src/main/js/sap/ushell/components/cepsearchresult/app/util/i18n/i18n.properties +5 -0
  237. package/src/main/js/sap/ushell/components/cepsearchresult/app/util/i18n/i18n_ar.properties +3 -0
  238. package/src/main/js/sap/ushell/components/cepsearchresult/app/util/i18n/i18n_bg.properties +3 -0
  239. package/src/main/js/sap/ushell/components/cepsearchresult/app/util/i18n/i18n_ca.properties +3 -0
  240. package/src/main/js/sap/ushell/components/cepsearchresult/app/util/i18n/i18n_cnr.properties +3 -0
  241. package/src/main/js/sap/ushell/components/cepsearchresult/app/util/i18n/i18n_cs.properties +3 -0
  242. package/src/main/js/sap/ushell/components/cepsearchresult/app/util/i18n/i18n_cy.properties +3 -0
  243. package/src/main/js/sap/ushell/components/cepsearchresult/app/util/i18n/i18n_da.properties +3 -0
  244. package/src/main/js/sap/ushell/components/cepsearchresult/app/util/i18n/i18n_de.properties +3 -0
  245. package/src/main/js/sap/ushell/components/cepsearchresult/app/util/i18n/i18n_el.properties +3 -0
  246. package/src/main/js/sap/ushell/components/cepsearchresult/app/util/i18n/i18n_en.properties +3 -0
  247. package/src/main/js/sap/ushell/components/cepsearchresult/app/util/i18n/i18n_en_GB.properties +3 -0
  248. package/src/main/js/sap/ushell/components/cepsearchresult/app/util/i18n/i18n_en_US_saprigi.properties +3 -0
  249. package/src/main/js/sap/ushell/components/cepsearchresult/app/util/i18n/i18n_es.properties +3 -0
  250. package/src/main/js/sap/ushell/components/cepsearchresult/app/util/i18n/i18n_es_MX.properties +3 -0
  251. package/src/main/js/sap/ushell/components/cepsearchresult/app/util/i18n/i18n_et.properties +3 -0
  252. package/src/main/js/sap/ushell/components/cepsearchresult/app/util/i18n/i18n_fi.properties +3 -0
  253. package/src/main/js/sap/ushell/components/cepsearchresult/app/util/i18n/i18n_fr.properties +3 -0
  254. package/src/main/js/sap/ushell/components/cepsearchresult/app/util/i18n/i18n_fr_CA.properties +3 -0
  255. package/src/main/js/sap/ushell/components/cepsearchresult/app/util/i18n/i18n_hi.properties +3 -0
  256. package/src/main/js/sap/ushell/components/cepsearchresult/app/util/i18n/i18n_hr.properties +3 -0
  257. package/src/main/js/sap/ushell/components/cepsearchresult/app/util/i18n/i18n_hu.properties +3 -0
  258. package/src/main/js/sap/ushell/components/cepsearchresult/app/util/i18n/i18n_id.properties +3 -0
  259. package/src/main/js/sap/ushell/components/cepsearchresult/app/util/i18n/i18n_it.properties +3 -0
  260. package/src/main/js/sap/ushell/components/cepsearchresult/app/util/i18n/i18n_iw.properties +3 -0
  261. package/src/main/js/sap/ushell/components/cepsearchresult/app/util/i18n/i18n_ja.properties +3 -0
  262. package/src/main/js/sap/ushell/components/cepsearchresult/app/util/i18n/i18n_kk.properties +3 -0
  263. package/src/main/js/sap/ushell/components/cepsearchresult/app/util/i18n/i18n_ko.properties +3 -0
  264. package/src/main/js/sap/ushell/components/cepsearchresult/app/util/i18n/i18n_lt.properties +3 -0
  265. package/src/main/js/sap/ushell/components/cepsearchresult/app/util/i18n/i18n_lv.properties +3 -0
  266. package/src/main/js/sap/ushell/components/cepsearchresult/app/util/i18n/i18n_mk.properties +3 -0
  267. package/src/main/js/sap/ushell/components/cepsearchresult/app/util/i18n/i18n_ms.properties +3 -0
  268. package/src/main/js/sap/ushell/components/cepsearchresult/app/util/i18n/i18n_nl.properties +3 -0
  269. package/src/main/js/sap/ushell/components/cepsearchresult/app/util/i18n/i18n_no.properties +3 -0
  270. package/src/main/js/sap/ushell/components/cepsearchresult/app/util/i18n/i18n_pl.properties +3 -0
  271. package/src/main/js/sap/ushell/components/cepsearchresult/app/util/i18n/i18n_pt.properties +3 -0
  272. package/src/main/js/sap/ushell/components/cepsearchresult/app/util/i18n/i18n_pt_PT.properties +3 -0
  273. package/src/main/js/sap/ushell/components/cepsearchresult/app/util/i18n/i18n_ro.properties +3 -0
  274. package/src/main/js/sap/ushell/components/cepsearchresult/app/util/i18n/i18n_ru.properties +3 -0
  275. package/src/main/js/sap/ushell/components/cepsearchresult/app/util/i18n/i18n_sh.properties +3 -0
  276. package/src/main/js/sap/ushell/components/cepsearchresult/app/util/i18n/i18n_sk.properties +3 -0
  277. package/src/main/js/sap/ushell/components/cepsearchresult/app/util/i18n/i18n_sl.properties +3 -0
  278. package/src/main/js/sap/ushell/components/cepsearchresult/app/util/i18n/i18n_sr.properties +3 -0
  279. package/src/main/js/sap/ushell/components/cepsearchresult/app/util/i18n/i18n_sv.properties +3 -0
  280. package/src/main/js/sap/ushell/components/cepsearchresult/app/util/i18n/i18n_th.properties +3 -0
  281. package/src/main/js/sap/ushell/components/cepsearchresult/app/util/i18n/i18n_tr.properties +3 -0
  282. package/src/main/js/sap/ushell/components/cepsearchresult/app/util/i18n/i18n_uk.properties +3 -0
  283. package/src/main/js/sap/ushell/components/cepsearchresult/app/util/i18n/i18n_vi.properties +3 -0
  284. package/src/main/js/sap/ushell/components/cepsearchresult/app/util/i18n/i18n_zh_CN.properties +3 -0
  285. package/src/main/js/sap/ushell/components/cepsearchresult/app/util/i18n/i18n_zh_TW.properties +3 -0
  286. package/src/main/js/sap/ushell/components/cepsearchresult/app/util/resources.js +30 -0
  287. package/src/main/js/sap/ushell/components/contentFinder/CatalogService.js +3 -3
  288. package/src/main/js/sap/ushell/components/contentFinder/Component.js +34 -15
  289. package/src/main/js/sap/ushell/components/contentFinder/controller/AppSearch.controller.js +22 -12
  290. package/src/main/js/sap/ushell/components/contentFinder/controller/ContentFinderDialog.controller.js +4 -5
  291. package/src/main/js/sap/ushell/components/contentFinder/dialog/Component.js +26 -5
  292. package/src/main/js/sap/ushell/components/contentFinder/dialog/manifest.json +5 -2
  293. package/src/main/js/sap/ushell/components/contentFinder/manifest.json +5 -7
  294. package/src/main/js/sap/ushell/components/contentFinder/model/formatter.js +22 -8
  295. package/src/main/js/sap/ushell/components/contentFinder/view/AppSearch.view.xml +6 -5
  296. package/src/main/js/sap/ushell/components/contentFinder/view/AppSearchBox.fragment.xml +1 -1
  297. package/src/main/js/sap/ushell/components/contentFinder/view/AppSearchCategoryTreeTable.fragment.xml +10 -4
  298. package/src/main/js/sap/ushell/components/contentFinderStandalone/Component.js +31 -10
  299. package/src/main/js/sap/ushell/components/contentFinderStandalone/controller/ContentFinderStandalone.controller.js +214 -214
  300. package/src/main/js/sap/ushell/components/contentFinderStandalone/manifest.json +6 -9
  301. package/src/main/js/sap/ushell/components/factsheet/Component.js +1 -1
  302. package/src/main/js/sap/ushell/components/factsheet/controls/PictureViewer.js +6 -6
  303. package/src/main/js/sap/ushell/components/factsheet/factory/ThingInspector.js +4 -4
  304. package/src/main/js/sap/ushell/components/homepage/ActionMode.js +1 -1
  305. package/src/main/js/sap/ushell/components/homepage/Component.js +1 -1
  306. package/src/main/js/sap/ushell/components/homepage/DashboardContent.controller.js +4 -4
  307. package/src/main/js/sap/ushell/components/homepage/DashboardContent.view.js +1 -1
  308. package/src/main/js/sap/ushell/components/homepage/DashboardGroupsBox.js +1 -1
  309. package/src/main/js/sap/ushell/components/homepage/DashboardUIActions.js +2 -2
  310. package/src/main/js/sap/ushell/components/homepage/manifest.json +1 -1
  311. package/src/main/js/sap/ushell/components/pages/ActionMode.js +1 -1
  312. package/src/main/js/sap/ushell/components/pages/Component.js +28 -3
  313. package/src/main/js/sap/ushell/components/pages/MyHomeImport.js +1 -1
  314. package/src/main/js/sap/ushell/components/pages/StateManager.js +4 -3
  315. package/src/main/js/sap/ushell/components/pages/controller/ImportDialog.controller.js +182 -202
  316. package/src/main/js/sap/ushell/components/pages/controller/MyHome.controller.js +3 -3
  317. package/src/main/js/sap/ushell/components/pages/controller/PageRuntime.controller.js +1 -1
  318. package/src/main/js/sap/ushell/components/pages/controller/PagesAndSpaceId.js +10 -7
  319. package/src/main/js/sap/ushell/components/pages/manifest.json +2 -2
  320. package/src/main/js/sap/ushell/components/runtimeSwitcher/controller/RuntimeSwitcher.controller.js +1 -1
  321. package/src/main/js/sap/ushell/components/runtimeSwitcher/manifest.json +1 -1
  322. package/src/main/js/sap/ushell/components/shell/FloatingContainer/manifest.json +1 -1
  323. package/src/main/js/sap/ushell/components/shell/MenuBar/Component.js +26 -3
  324. package/src/main/js/sap/ushell/components/shell/MenuBar/controller/MenuBar.controller.js +3 -1
  325. package/src/main/js/sap/ushell/components/shell/MenuBar/manifest.json +2 -2
  326. package/src/main/js/sap/ushell/components/shell/NavigationBarMenu/controller/NavigationBarMenu.controller.js +13 -31
  327. package/src/main/js/sap/ushell/components/shell/NavigationBarMenu/controller/NavigationBarMenuButton.controller.js +1 -1
  328. package/src/main/js/sap/ushell/components/shell/NavigationBarMenu/manifest.json +1 -1
  329. package/src/main/js/sap/ushell/components/shell/Notifications/Component.js +5 -6
  330. package/src/main/js/sap/ushell/components/shell/Notifications/NotificationsListPopoverContent.view.xml +1 -1
  331. package/src/main/js/sap/ushell/components/shell/ProductSwitch/Component.js +1 -1
  332. package/src/main/js/sap/ushell/components/shell/Search/ESearch.js +3 -0
  333. package/src/main/js/sap/ushell/components/shell/Search/manifest.json +1 -1
  334. package/src/main/js/sap/ushell/components/shell/SearchCEP/Component.js +17 -15
  335. package/src/main/js/sap/ushell/components/shell/SearchCEP/SearchCEP.controller.js +3 -3
  336. package/src/main/js/sap/ushell/components/shell/SearchCEP/SearchProviders/FrequentActivityProvider.js +1 -1
  337. package/src/main/js/sap/ushell/components/shell/SearchCEP/SearchProviders/RecentSearchProvider.js +1 -1
  338. package/src/main/js/sap/ushell/components/shell/SearchCEP/SearchProviders/SearchProvider.js +84 -67
  339. package/src/main/js/sap/ushell/components/shell/SearchCEP/SearchProviders/SearchServiceProvider.js +1 -1
  340. package/src/main/js/sap/ushell/components/shell/Settings/Component.js +1 -1
  341. package/src/main/js/sap/ushell/components/shell/Settings/ContentWrapper.fragment.xml +1 -1
  342. package/src/main/js/sap/ushell/components/shell/Settings/UserSettings.controller.js +10 -23
  343. package/src/main/js/sap/ushell/components/shell/Settings/UserSettings.view.xml +59 -69
  344. package/src/main/js/sap/ushell/components/shell/Settings/appearance/Appearance.controller.js +1 -2
  345. package/src/main/js/sap/ushell/components/shell/Settings/homepage/HomepageEntry.js +1 -1
  346. package/src/main/js/sap/ushell/components/shell/Settings/homepage/HomepageSetting.view.xml +28 -35
  347. package/src/main/js/sap/ushell/components/shell/Settings/notifications/NotificationsSetting.controller.js +1 -1
  348. package/src/main/js/sap/ushell/components/shell/Settings/notifications/NotificationsSetting.view.xml +5 -9
  349. package/src/main/js/sap/ushell/components/shell/Settings/spaces/SpacesSetting.controller.js +1 -1
  350. package/src/main/js/sap/ushell/components/shell/Settings/userAccount/UserAccountSelector.controller.js +1 -2
  351. package/src/main/js/sap/ushell/components/shell/Settings/userAccount/UserAccountSelector.view.xml +2 -2
  352. package/src/main/js/sap/ushell/components/shell/Settings/userAccount/UserAccountSetting.fragment.xml +2 -4
  353. package/src/main/js/sap/ushell/components/shell/Settings/userActivities/UserActivitiesSetting.controller.js +1 -1
  354. package/src/main/js/sap/ushell/components/shell/Settings/userActivities/UserActivitiesSetting.view.xml +6 -12
  355. package/src/main/js/sap/ushell/components/shell/Settings/userDefaults/controller/UserDefaultsSetting.controller.js +1 -1
  356. package/src/main/js/sap/ushell/components/shell/Settings/userLanguageRegion/LanguageRegionSelector.view.xml +2 -4
  357. package/src/main/js/sap/ushell/components/shell/ShellBar/Component.js +17 -10
  358. package/src/main/js/sap/ushell/components/shell/ShellBar/controller/ShellBar.controller.js +23 -115
  359. package/src/main/js/sap/ushell/components/shell/ShellBar/manifest.json +4 -3
  360. package/src/main/js/sap/ushell/components/shell/ShellBar/view/ShellBar.view.xml +2 -7
  361. package/src/main/js/sap/ushell/components/shell/SideNavigation/Component.js +4 -1
  362. package/src/main/js/sap/ushell/components/shell/SideNavigation/controller/SideNavigation.controller.js +0 -31
  363. package/src/main/js/sap/ushell/components/shell/SideNavigation/manifest.json +5 -2
  364. package/src/main/js/sap/ushell/components/shell/SideNavigation/modules/Favorites.js +1 -1
  365. package/src/main/js/sap/ushell/components/shell/UserActionsMenu/Component.js +1 -1
  366. package/src/main/js/sap/ushell/components/shell/UserActionsMenu/UserActionsMenu.controller.js +14 -19
  367. package/src/main/js/sap/ushell/components/shell/UserImage/Component.js +1 -1
  368. package/src/main/js/sap/ushell/components/tiles/action/ActionTile.controller.js +16 -16
  369. package/src/main/js/sap/ushell/components/tiles/action/Configuration.controller.js +20 -20
  370. package/src/main/js/sap/ushell/components/tiles/applauncher/Configuration.controller.js +18 -18
  371. package/src/main/js/sap/ushell/components/tiles/applauncher/StaticTile.controller.js +15 -15
  372. package/src/main/js/sap/ushell/components/tiles/applauncherdynamic/Configuration.controller.js +18 -18
  373. package/src/main/js/sap/ushell/components/tiles/applauncherdynamic/DynamicTile.controller.js +20 -20
  374. package/src/main/js/sap/ushell/components/tiles/cdm/applauncher/manifest.json +1 -6
  375. package/src/main/js/sap/ushell/components/tiles/cdm/applauncherdynamic/DynamicTile.controller.js +2 -2
  376. package/src/main/js/sap/ushell/components/tiles/cdm/applauncherdynamic/manifest.json +1 -6
  377. package/src/main/js/sap/ushell/components/tiles/generic.js +8 -8
  378. package/src/main/js/sap/ushell/components/tiles/indicatorArea/AreaChartTile.controller.js +6 -8
  379. package/src/main/js/sap/ushell/components/tiles/indicatorDual/DualTile.controller.js +2 -2
  380. package/src/main/js/sap/ushell/components/tiles/indicatorTileUtils/smartBusinessUtil.js +5 -5
  381. package/src/main/js/sap/ushell/components/tiles/indicatorcomparison/ComparisonTile.controller.js +2 -6
  382. package/src/main/js/sap/ushell/components/tiles/indicatorcontribution/ContributionTile.controller.js +2 -4
  383. package/src/main/js/sap/ushell/components/tiles/utils.js +46 -22
  384. package/src/main/js/sap/ushell/components/visualizationOrganizer/Component.js +1 -1
  385. package/src/main/js/sap/ushell/components/workPageBuilder/Component.js +2 -3
  386. package/src/main/js/sap/ushell/components/workPageBuilder/controller/WorkPageBuilder.accessibility.js +1 -1
  387. package/src/main/js/sap/ushell/components/workPageBuilder/controller/WorkPageBuilder.controller.js +1 -1
  388. package/src/main/js/sap/ushell/components/workPageBuilder/controls/WorkPage.js +1 -1
  389. package/src/main/js/sap/ushell/components/workPageBuilder/controls/WorkPageButton.js +1 -1
  390. package/src/main/js/sap/ushell/components/workPageBuilder/controls/WorkPageCell.js +1 -1
  391. package/src/main/js/sap/ushell/components/workPageBuilder/controls/WorkPageColumn.js +1 -1
  392. package/src/main/js/sap/ushell/components/workPageBuilder/controls/WorkPageColumnResizer.js +1 -1
  393. package/src/main/js/sap/ushell/components/workPageBuilder/controls/WorkPageRow.js +1 -1
  394. package/src/main/js/sap/ushell/components/workPageBuilder/manifest.json +1 -1
  395. package/src/main/js/sap/ushell/components/workPageRuntime/Component.js +1 -1
  396. package/src/main/js/sap/ushell/components/workPageRuntime/controller/WorkPageRuntime.controller.js +8 -10
  397. package/src/main/js/sap/ushell/components/workPageRuntime/manifest.json +1 -1
  398. package/src/main/js/sap/ushell/designtime/ApplicationContainer.designtime.js +2 -2
  399. package/src/main/js/sap/ushell/functionBindPrototype.js +1 -1
  400. package/src/main/js/sap/ushell/gen/ui5/webcomponents/dist/Avatar.js +1 -7
  401. package/src/main/js/sap/ushell/gen/ui5/webcomponents/dist/MenuItem.js +0 -10
  402. package/src/main/js/sap/ushell/gen/ui5/webcomponents-base.js +1 -1
  403. package/src/main/js/sap/ushell/gen/ui5/webcomponents-fiori.js +1 -81
  404. package/src/main/js/sap/ushell/gen/ui5/webcomponents.js +2 -80
  405. package/src/main/js/sap/ushell/library.js +5 -5
  406. package/src/main/js/sap/ushell/modules/NavigationMenu.js +3 -4
  407. package/src/main/js/sap/ushell/navigationMode.js +40 -43
  408. package/src/main/js/sap/ushell/override.js +53 -53
  409. package/src/main/js/sap/ushell/performance/FesrEnhancer.js +7 -9
  410. package/src/main/js/sap/ushell/performance/ShellAnalytics.js +48 -52
  411. package/src/main/js/sap/ushell/performance/StatisticalRecord.js +9 -11
  412. package/src/main/js/sap/ushell/plugins/BaseRTAPlugin.js +106 -107
  413. package/src/main/js/sap/ushell/plugins/appwarmup/Component.js +17 -17
  414. package/src/main/js/sap/ushell/plugins/appwarmup/ShellUIService.js +1 -1
  415. package/src/main/js/sap/ushell/plugins/appwarmup/manifest.json +0 -4
  416. package/src/main/js/sap/ushell/plugins/ghostapp/Component.js +1 -1
  417. package/src/main/js/sap/ushell/plugins/ghostapp/FakeModel.js +5 -5
  418. package/src/main/js/sap/ushell/plugins/ghostapp/manifest.json +1 -2
  419. package/src/main/js/sap/ushell/plugins/rta/Component.js +51 -51
  420. package/src/main/js/sap/ushell/plugins/rta/manifest.json +0 -4
  421. package/src/main/js/sap/ushell/plugins/rta-personalize/Component.js +3 -3
  422. package/src/main/js/sap/ushell/plugins/rta-personalize/manifest.json +0 -4
  423. package/src/main/js/sap/ushell/renderer/AccessKeysHandler.js +81 -79
  424. package/src/main/js/sap/ushell/renderer/History.js +6 -6
  425. package/src/main/js/sap/ushell/renderer/LogonFrameProvider.js +27 -27
  426. package/src/main/js/sap/ushell/renderer/NavContainerRenderer.js +3 -3
  427. package/src/main/js/sap/ushell/renderer/Renderer.js +77 -74
  428. package/src/main/js/sap/ushell/renderer/RendererAppContainer.js +5 -5
  429. package/src/main/js/sap/ushell/renderer/Shell.controller.js +28 -28
  430. package/src/main/js/sap/ushell/renderer/Shell.view.js +63 -91
  431. package/src/main/js/sap/ushell/renderer/ShellLayout.js +0 -12
  432. package/src/main/js/sap/ushell/renderer/allMyApps/AllMyApps.controller.js +100 -100
  433. package/src/main/js/sap/ushell/renderer/allMyApps/AllMyAppsManager.js +103 -93
  434. package/src/main/js/sap/ushell/renderer/rendererTargetWrapper/Component.js +2 -2
  435. package/src/main/js/sap/ushell/renderer/rendererTargetWrapper/RendererTarget.controller.js +3 -3
  436. package/src/main/js/sap/ushell/renderer/resources/resources.properties +4 -2
  437. package/src/main/js/sap/ushell/renderer/resources/resources_ar.properties +0 -1
  438. package/src/main/js/sap/ushell/renderer/resources/resources_bg.properties +0 -1
  439. package/src/main/js/sap/ushell/renderer/resources/resources_ca.properties +0 -1
  440. package/src/main/js/sap/ushell/renderer/resources/resources_cnr.properties +0 -1
  441. package/src/main/js/sap/ushell/renderer/resources/resources_cs.properties +0 -1
  442. package/src/main/js/sap/ushell/renderer/resources/resources_cy.properties +0 -1
  443. package/src/main/js/sap/ushell/renderer/resources/resources_da.properties +0 -1
  444. package/src/main/js/sap/ushell/renderer/resources/resources_de.properties +0 -1
  445. package/src/main/js/sap/ushell/renderer/resources/resources_el.properties +0 -1
  446. package/src/main/js/sap/ushell/renderer/resources/resources_en.properties +0 -1
  447. package/src/main/js/sap/ushell/renderer/resources/resources_en_GB.properties +0 -1
  448. package/src/main/js/sap/ushell/renderer/resources/resources_en_US_saprigi.properties +0 -1
  449. package/src/main/js/sap/ushell/renderer/resources/resources_es.properties +0 -1
  450. package/src/main/js/sap/ushell/renderer/resources/resources_es_MX.properties +0 -1
  451. package/src/main/js/sap/ushell/renderer/resources/resources_et.properties +0 -1
  452. package/src/main/js/sap/ushell/renderer/resources/resources_fi.properties +0 -1
  453. package/src/main/js/sap/ushell/renderer/resources/resources_fr.properties +0 -1
  454. package/src/main/js/sap/ushell/renderer/resources/resources_fr_CA.properties +0 -1
  455. package/src/main/js/sap/ushell/renderer/resources/resources_hi.properties +0 -1
  456. package/src/main/js/sap/ushell/renderer/resources/resources_hr.properties +0 -1
  457. package/src/main/js/sap/ushell/renderer/resources/resources_hu.properties +0 -1
  458. package/src/main/js/sap/ushell/renderer/resources/resources_id.properties +0 -1
  459. package/src/main/js/sap/ushell/renderer/resources/resources_it.properties +0 -1
  460. package/src/main/js/sap/ushell/renderer/resources/resources_iw.properties +0 -1
  461. package/src/main/js/sap/ushell/renderer/resources/resources_ja.properties +0 -1
  462. package/src/main/js/sap/ushell/renderer/resources/resources_kk.properties +0 -1
  463. package/src/main/js/sap/ushell/renderer/resources/resources_ko.properties +0 -1
  464. package/src/main/js/sap/ushell/renderer/resources/resources_lt.properties +0 -1
  465. package/src/main/js/sap/ushell/renderer/resources/resources_lv.properties +0 -1
  466. package/src/main/js/sap/ushell/renderer/resources/resources_mk.properties +0 -1
  467. package/src/main/js/sap/ushell/renderer/resources/resources_ms.properties +0 -1
  468. package/src/main/js/sap/ushell/renderer/resources/resources_nl.properties +0 -1
  469. package/src/main/js/sap/ushell/renderer/resources/resources_no.properties +0 -1
  470. package/src/main/js/sap/ushell/renderer/resources/resources_pl.properties +0 -1
  471. package/src/main/js/sap/ushell/renderer/resources/resources_pt.properties +0 -1
  472. package/src/main/js/sap/ushell/renderer/resources/resources_pt_PT.properties +0 -1
  473. package/src/main/js/sap/ushell/renderer/resources/resources_ro.properties +0 -1
  474. package/src/main/js/sap/ushell/renderer/resources/resources_ru.properties +0 -1
  475. package/src/main/js/sap/ushell/renderer/resources/resources_sh.properties +0 -1
  476. package/src/main/js/sap/ushell/renderer/resources/resources_sk.properties +0 -1
  477. package/src/main/js/sap/ushell/renderer/resources/resources_sl.properties +0 -1
  478. package/src/main/js/sap/ushell/renderer/resources/resources_sr.properties +0 -1
  479. package/src/main/js/sap/ushell/renderer/resources/resources_sv.properties +0 -1
  480. package/src/main/js/sap/ushell/renderer/resources/resources_th.properties +0 -1
  481. package/src/main/js/sap/ushell/renderer/resources/resources_tr.properties +0 -1
  482. package/src/main/js/sap/ushell/renderer/resources/resources_uk.properties +0 -1
  483. package/src/main/js/sap/ushell/renderer/resources/resources_vi.properties +0 -1
  484. package/src/main/js/sap/ushell/renderer/resources/resources_zh_CN.properties +0 -1
  485. package/src/main/js/sap/ushell/renderer/resources/resources_zh_TW.properties +0 -1
  486. package/src/main/js/sap/ushell/renderer/search/searchComponent/Component.js +5 -5
  487. package/src/main/js/sap/ushell/renderer/search/searchComponent/controller/CEPSearchApp.controller.js +3 -5
  488. package/src/main/js/sap/ushell/renderer/search/searchComponent/controller/SearchApp.controller.js +5 -8
  489. package/src/main/js/sap/ushell/renderer/search/searchComponent/manifest.json +1 -1
  490. package/src/main/js/sap/ushell/renderer/search/searchComponent/view/CEPSearchApp.view.js +2 -2
  491. package/src/main/js/sap/ushell/renderer/search/searchComponent/view/SearchApp.view.js +2 -2
  492. package/src/main/js/sap/ushell/renderer/search/util.js +5 -6
  493. package/src/main/js/sap/ushell/renderer/shellHeader/ShellHeader.controller.js +42 -41
  494. package/src/main/js/sap/ushell/renderer/shellHeader/ShellHeader.fragment.xml +2 -1
  495. package/src/main/js/sap/ushell/renderer/utils.js +4 -4
  496. package/src/main/js/sap/ushell/renderers/fiori2/History.js +1 -1
  497. package/src/main/js/sap/ushell/renderers/fiori2/LogonFrameProvider.js +1 -1
  498. package/src/main/js/sap/ushell/renderers/fiori2/RendererExtensions.js +6 -7
  499. package/src/main/js/sap/ushell/renderers/fiori2/Shell.controller.js +2 -2
  500. package/src/main/js/sap/ushell/renderers/fiori2/Shell.view.js +55 -87
  501. package/src/main/js/sap/ushell/renderers/fiori2/allMyApps/AllMyAppsManager.js +1 -1
  502. package/src/main/js/sap/ushell/resources.js +18 -22
  503. package/src/main/js/sap/ushell/services/AppConfiguration.js +1 -1
  504. package/src/main/js/sap/ushell/services/AppLifeCycle.js +1 -1
  505. package/src/main/js/sap/ushell/services/AppState.js +1 -1
  506. package/src/main/js/sap/ushell/services/Bookmark.js +1 -1
  507. package/src/main/js/sap/ushell/services/BookmarkV2.js +1 -1
  508. package/src/main/js/sap/ushell/services/ClientSideTargetResolution/Formatter.js +142 -158
  509. package/src/main/js/sap/ushell/services/ClientSideTargetResolution/InboundIndex.js +11 -13
  510. package/src/main/js/sap/ushell/services/ClientSideTargetResolution/InboundProvider.js +3 -4
  511. package/src/main/js/sap/ushell/services/ClientSideTargetResolution/ParameterMapping.js +38 -38
  512. package/src/main/js/sap/ushell/services/ClientSideTargetResolution/PrelaunchOperations.js +72 -72
  513. package/src/main/js/sap/ushell/services/ClientSideTargetResolution/Search.js +229 -247
  514. package/src/main/js/sap/ushell/services/ClientSideTargetResolution/StagedLogger.js +29 -41
  515. package/src/main/js/sap/ushell/services/ClientSideTargetResolution/SystemContext.js +10 -10
  516. package/src/main/js/sap/ushell/services/ClientSideTargetResolution/Utils.js +26 -31
  517. package/src/main/js/sap/ushell/services/ClientSideTargetResolution/VirtualInbounds.js +1 -1
  518. package/src/main/js/sap/ushell/services/ClientSideTargetResolution/XAppStateProcessing.js +204 -206
  519. package/src/main/js/sap/ushell/services/ClientSideTargetResolution.js +1 -1
  520. package/src/main/js/sap/ushell/services/CommonDataModel/PersonalizationProcessor.js +115 -118
  521. package/src/main/js/sap/ushell/services/CommonDataModel/SiteConverter.js +20 -20
  522. package/src/main/js/sap/ushell/services/CommonDataModel/vizTypeDefaults/VizTypeDefaults.js +3 -5
  523. package/src/main/js/sap/ushell/services/CommonDataModel.js +2 -2
  524. package/src/main/js/sap/ushell/services/Configuration.js +1 -1
  525. package/src/main/js/sap/ushell/services/ConfigurationDefaults.js +1 -1
  526. package/src/main/js/sap/ushell/services/ContentExtensionAdapterFactory.js +1 -1
  527. package/src/main/js/sap/ushell/services/CrossApplicationNavigation.js +1 -1
  528. package/src/main/js/sap/ushell/services/DarkModeSupport.js +1 -1
  529. package/src/main/js/sap/ushell/services/Extension/Item.js +2 -2
  530. package/src/main/js/sap/ushell/services/Extension.js +1 -1
  531. package/src/main/js/sap/ushell/services/FlpLaunchPage.js +2 -2
  532. package/src/main/js/sap/ushell/services/FrameBoundExtension/FloatingContainer.js +1 -1
  533. package/src/main/js/sap/ushell/services/FrameBoundExtension/Footer.js +1 -1
  534. package/src/main/js/sap/ushell/services/FrameBoundExtension/Item.js +2 -2
  535. package/src/main/js/sap/ushell/services/FrameBoundExtension/SidePane.js +4 -4
  536. package/src/main/js/sap/ushell/services/FrameBoundExtension/ToolArea.js +2 -2
  537. package/src/main/js/sap/ushell/services/FrameBoundExtension/UserSettingsEntry.js +1 -1
  538. package/src/main/js/sap/ushell/services/FrameBoundExtension.js +1 -1
  539. package/src/main/js/sap/ushell/services/LaunchPage.js +1 -1
  540. package/src/main/js/sap/ushell/services/Menu.js +13 -8
  541. package/src/main/js/sap/ushell/services/Message.js +1 -1
  542. package/src/main/js/sap/ushell/services/MessageBroker/MessageBrokerEngine.js +1 -1
  543. package/src/main/js/sap/ushell/services/MessageBroker.js +1 -1
  544. package/src/main/js/sap/ushell/services/MessageInternal.js +1 -1
  545. package/src/main/js/sap/ushell/services/Navigation/compatibility.js +1 -1
  546. package/src/main/js/sap/ushell/services/Navigation/utils.js +1 -1
  547. package/src/main/js/sap/ushell/services/Navigation.js +1 -1
  548. package/src/main/js/sap/ushell/services/NavigationDataProvider.js +1 -1
  549. package/src/main/js/sap/ushell/services/NotificationsV2.js +1 -14
  550. package/src/main/js/sap/ushell/services/PageBuilding.js +1 -1
  551. package/src/main/js/sap/ushell/services/PagePersistence.js +1 -1
  552. package/src/main/js/sap/ushell/services/PageReferencing.js +1 -1
  553. package/src/main/js/sap/ushell/services/Pages.js +8 -12
  554. package/src/main/js/sap/ushell/services/Personalization.js +1 -1
  555. package/src/main/js/sap/ushell/services/PersonalizationV2.js +1 -1
  556. package/src/main/js/sap/ushell/services/PluginManager/Extensions.js +1 -1
  557. package/src/main/js/sap/ushell/services/PluginManager/HeaderExtensions.js +1 -1
  558. package/src/main/js/sap/ushell/services/PluginManager/MenuExtensions.js +1 -1
  559. package/src/main/js/sap/ushell/services/PluginManager/SimpleExpression.js +1 -1
  560. package/src/main/js/sap/ushell/services/PluginManager.js +17 -14
  561. package/src/main/js/sap/ushell/services/ReferenceResolver.js +2 -2
  562. package/src/main/js/sap/ushell/services/Search.js +1 -1
  563. package/src/main/js/sap/ushell/services/SearchCEP.js +1 -1
  564. package/src/main/js/sap/ushell/services/SearchableContent.js +1 -1
  565. package/src/main/js/sap/ushell/services/ShellNavigation.js +2 -2
  566. package/src/main/js/sap/ushell/services/ShellNavigationInternal.js +1 -1
  567. package/src/main/js/sap/ushell/services/SmartNavigation.js +1 -1
  568. package/src/main/js/sap/ushell/services/SpaceContent.js +1 -1
  569. package/src/main/js/sap/ushell/services/UITracer.js +18 -22
  570. package/src/main/js/sap/ushell/services/URLShortening.js +1 -1
  571. package/src/main/js/sap/ushell/services/URLTemplate.js +1 -1
  572. package/src/main/js/sap/ushell/services/Ui5ComponentLoader.js +1 -1
  573. package/src/main/js/sap/ushell/services/UserDefaultParameterPersistence.js +1 -1
  574. package/src/main/js/sap/ushell/services/UserDefaultParameters.js +1 -1
  575. package/src/main/js/sap/ushell/services/UserInfo.js +1 -1
  576. package/src/main/js/sap/ushell/services/UserRecents.js +1 -1
  577. package/src/main/js/sap/ushell/services/VisualizationDataProvider.js +1 -1
  578. package/src/main/js/sap/ushell/services/VisualizationInstantiation.js +1 -1
  579. package/src/main/js/sap/ushell/services/_AppState/AppStatePersistencyMethod.js +2 -2
  580. package/src/main/js/sap/ushell/services/_ContentExtensionAdapterFactory/ContentExtensionAdapterConfig.js +9 -9
  581. package/src/main/js/sap/ushell/services/_ContentExtensionAdapterFactory/FeaturedGroupConfig.js +21 -14
  582. package/src/main/js/sap/ushell/services/_CrossApplicationNavigation/utils.js +66 -67
  583. package/src/main/js/sap/ushell/services/_PageReferencing/PageReferencer.js +15 -15
  584. package/src/main/js/sap/ushell/services/_Personalization/ContextContainer.js +65 -79
  585. package/src/main/js/sap/ushell/services/_Personalization/PersonalizationContainer.js +58 -57
  586. package/src/main/js/sap/ushell/services/_Personalization/PersonalizationContainerVariant.js +17 -14
  587. package/src/main/js/sap/ushell/services/_Personalization/PersonalizationContainerVariantSet.js +30 -28
  588. package/src/main/js/sap/ushell/services/_Personalization/Personalizer.js +38 -24
  589. package/src/main/js/sap/ushell/services/_Personalization/TransientPersonalizer.js +4 -10
  590. package/src/main/js/sap/ushell/services/_Personalization/Variant.js +23 -23
  591. package/src/main/js/sap/ushell/services/_Personalization/VariantSet.js +39 -38
  592. package/src/main/js/sap/ushell/services/_Personalization/VariantSetAdapter.js +2 -2
  593. package/src/main/js/sap/ushell/services/_Personalization/WindowAdapter.js +1 -1
  594. package/src/main/js/sap/ushell/services/_Personalization/WindowAdapterContainer.js +1 -1
  595. package/src/main/js/sap/ushell/services/_Personalization/constants.js +5 -5
  596. package/src/main/js/sap/ushell/services/_Personalization/constants.private.js +1 -1
  597. package/src/main/js/sap/ushell/services/_Personalization/utils.js +13 -13
  598. package/src/main/js/sap/ushell/services/appstate/AppState.js +26 -26
  599. package/src/main/js/sap/ushell/services/appstate/AppStatePersistencyMethod.js +1 -1
  600. package/src/main/js/sap/ushell/services/appstate/AppStatePersistencySettings.js +4 -4
  601. package/src/main/js/sap/ushell/services/appstate/LimitedBuffer.js +9 -7
  602. package/src/main/js/sap/ushell/services/appstate/Sequentializer.js +5 -6
  603. package/src/main/js/sap/ushell/services/appstate/SequentializingAdapter.js +6 -3
  604. package/src/main/js/sap/ushell/services/appstate/WindowAdapter.js +20 -16
  605. package/src/main/js/sap/ushell/state/StateManager.js +3 -2
  606. package/src/main/js/sap/ushell/state/StateRules.js +9 -4
  607. package/src/main/js/sap/ushell/state/{BackNavigation.js → modules/BackNavigation.js} +1 -1
  608. package/src/main/js/sap/ushell/state/{ContentDensity.js → modules/ContentDensity.js} +1 -1
  609. package/src/main/js/sap/ushell/state/{Favicon.js → modules/Favicon.js} +1 -1
  610. package/src/main/js/sap/ushell/state/modules/HeaderLogo.js +181 -0
  611. package/src/main/js/sap/ushell/support/plugins/flpConfig/FlpConfigurationPlugin.js +100 -92
  612. package/src/main/js/sap/ushell/support/plugins/flpConfig/i18n/FlpConfigurationPlugin.properties +0 -3
  613. package/src/main/js/sap/ushell/support/plugins/flpConfig/i18n/FlpConfigurationPlugin_de.properties +0 -3
  614. package/src/main/js/sap/ushell/support/plugins/flpConfig/i18n/FlpConfigurationPlugin_en.properties +0 -3
  615. package/src/main/js/sap/ushell/themes/base/AddBookmarkButton.less +5 -0
  616. package/src/main/js/sap/ushell/themes/base/Factsheet.less +0 -2
  617. package/src/main/js/sap/ushell/themes/base/ShellBar.less +1 -2
  618. package/src/main/js/sap/ushell/themes/base/ShellHeader.less +1 -1
  619. package/src/main/js/sap/ushell/themes/base/ToolAreaItem.less +0 -1
  620. package/src/main/js/sap/ushell/themes/base/fonts/BusinessSuiteInAppSymbols.json +3 -0
  621. package/src/main/js/sap/ushell/themes/base/fonts/BusinessSuiteInAppSymbols.ttf +0 -0
  622. package/src/main/js/sap/ushell/themes/base/fonts/BusinessSuiteInAppSymbols.woff +0 -0
  623. package/src/main/js/sap/ushell/themes/base/fonts/BusinessSuiteInAppSymbols.woff2 +0 -0
  624. package/src/main/js/sap/ushell/themes/sap_belize_base/AddBookmarkButton.less +5 -0
  625. package/src/main/js/sap/ushell/themes/sap_belize_base/Factsheet.less +0 -2
  626. package/src/main/js/sap/ushell/themes/sap_belize_hcb/AnchorItem.less +0 -1
  627. package/src/main/js/sap/ushell/themes/sap_belize_hcw/AnchorItem.less +0 -1
  628. package/src/main/js/sap/ushell/themes/sap_bluecrystal/AnchorNavigationBar.less +0 -1
  629. package/src/main/js/sap/ushell/themes/sap_bluecrystal_base/AddBookmarkButton.less +5 -0
  630. package/src/main/js/sap/ushell/themes/sap_bluecrystal_base/Factsheet.less +0 -2
  631. package/src/main/js/sap/ushell/themes/sap_fiori_3/ShellHeader.less +0 -6
  632. package/src/main/js/sap/ushell/themes/sap_fiori_3/library.source.less +0 -1
  633. package/src/main/js/sap/ushell/themes/sap_fiori_3_dark/library.source.less +0 -1
  634. package/src/main/js/sap/ushell/themes/sap_fiori_3_hcb/AnchorItem.less +0 -1
  635. package/src/main/js/sap/ushell/themes/sap_fiori_3_hcb/library.source.less +0 -1
  636. package/src/main/js/sap/ushell/themes/sap_fiori_3_hcw/AnchorItem.less +0 -1
  637. package/src/main/js/sap/ushell/themes/sap_fiori_3_hcw/library.source.less +0 -1
  638. package/src/main/js/sap/ushell/themes/sap_hcb/AnchorItem.less +0 -1
  639. package/src/main/js/sap/ushell/themes/sap_hcb/base_AddBookmarkButton.less +5 -0
  640. package/src/main/js/sap/ushell/themes/sap_hcb/base_Factsheet.less +0 -2
  641. package/src/main/js/sap/ushell/themes/sap_hcb/base_ShellHeader.less +1 -1
  642. package/src/main/js/sap/ushell/themes/sap_horizon_hcb/AnchorItem.less +0 -1
  643. package/src/main/js/sap/ushell/themes/sap_horizon_hcb/FloatingContainer.less +8 -0
  644. package/src/main/js/sap/ushell/themes/sap_horizon_hcb/library.source.less +1 -0
  645. package/src/main/js/sap/ushell/themes/sap_horizon_hcw/AnchorItem.less +0 -1
  646. package/src/main/js/sap/ushell/themes/sap_horizon_hcw/FloatingContainer.less +8 -0
  647. package/src/main/js/sap/ushell/themes/sap_horizon_hcw/library.source.less +1 -0
  648. package/src/main/js/sap/ushell/thirdparty/Avatar.js +12 -79
  649. package/src/main/js/sap/ushell/thirdparty/BusyIndicator.js +9 -15
  650. package/src/main/js/sap/ushell/thirdparty/Button2.js +6 -25
  651. package/src/main/js/sap/ushell/thirdparty/Icon.js +5 -5
  652. package/src/main/js/sap/ushell/thirdparty/Icons.js +68 -69
  653. package/src/main/js/sap/ushell/thirdparty/Link.js +2 -2
  654. package/src/main/js/sap/ushell/thirdparty/List.js +4 -4
  655. package/src/main/js/sap/ushell/thirdparty/ListItemCustom.js +95 -0
  656. package/src/main/js/sap/ushell/thirdparty/{ResponsivePopover.js → ListItemTemplate.js} +2876 -3032
  657. package/src/main/js/sap/ushell/thirdparty/Menu.js +76 -65
  658. package/src/main/js/sap/ushell/thirdparty/MenuItem.js +1 -1
  659. package/src/main/js/sap/ushell/thirdparty/MenuItem2.js +34 -342
  660. package/src/main/js/sap/ushell/thirdparty/NotificationListGroupItem.js +6 -6
  661. package/src/main/js/sap/ushell/thirdparty/NotificationListItem.js +5 -5
  662. package/src/main/js/sap/ushell/thirdparty/ShellBar.js +79 -112
  663. package/src/main/js/sap/ushell/thirdparty/Tag.js +6 -6
  664. package/src/main/js/sap/ushell/thirdparty/Text.js +4 -4
  665. package/src/main/js/sap/ushell/thirdparty/UserMenu.js +22 -22
  666. package/src/main/js/sap/ushell/thirdparty/UserMenuItem.js +2 -2
  667. package/src/main/js/sap/ushell/thirdparty/_dynamics/ListItemStandardExpandableTextTemplate.js +3 -3
  668. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_ar3.js +0 -3
  669. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_bg3.js +0 -3
  670. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_ca3.js +0 -3
  671. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_cnr3.js +0 -3
  672. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_cs3.js +0 -3
  673. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_cy3.js +0 -3
  674. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_da3.js +0 -3
  675. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_de3.js +0 -3
  676. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_el3.js +0 -3
  677. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_en2.js +0 -27
  678. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_en3.js +8 -23
  679. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_en_GB3.js +0 -3
  680. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_en_US_sappsd3.js +0 -3
  681. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_en_US_saprigi2.js +0 -27
  682. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_en_US_saprigi3.js +8 -20
  683. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_en_US_saptrc3.js +0 -3
  684. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_es3.js +0 -3
  685. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_es_MX3.js +0 -3
  686. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_et3.js +0 -3
  687. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_fi3.js +0 -3
  688. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_fr3.js +0 -3
  689. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_fr_CA3.js +0 -3
  690. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_hi3.js +0 -3
  691. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_hr3.js +0 -3
  692. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_hu3.js +0 -3
  693. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_id3.js +1 -4
  694. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_it2.js +4 -4
  695. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_it3.js +2 -5
  696. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_iw3.js +0 -3
  697. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_ja3.js +0 -3
  698. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_kk3.js +0 -3
  699. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_ko3.js +0 -3
  700. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_lt3.js +0 -3
  701. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_lv3.js +0 -3
  702. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_mk3.js +0 -3
  703. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_ms3.js +0 -3
  704. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_nl3.js +0 -3
  705. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_no3.js +0 -3
  706. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_pl3.js +0 -3
  707. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_pt3.js +0 -3
  708. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_pt_PT3.js +0 -3
  709. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_ro3.js +0 -3
  710. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_ru3.js +0 -3
  711. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_sh3.js +0 -3
  712. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_sk3.js +0 -3
  713. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_sl3.js +0 -3
  714. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_sr3.js +0 -3
  715. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_sv3.js +0 -3
  716. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_th3.js +0 -3
  717. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_tr3.js +0 -3
  718. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_uk3.js +0 -3
  719. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_vi3.js +0 -3
  720. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_zh_CN3.js +0 -3
  721. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_zh_TW3.js +0 -3
  722. package/src/main/js/sap/ushell/thirdparty/_dynamics/parameters-bundle.css10.js +1 -1
  723. package/src/main/js/sap/ushell/thirdparty/_dynamics/parameters-bundle.css11.js +1 -1
  724. package/src/main/js/sap/ushell/thirdparty/_dynamics/parameters-bundle.css12.js +1 -1
  725. package/src/main/js/sap/ushell/thirdparty/_dynamics/parameters-bundle.css13.js +1 -1
  726. package/src/main/js/sap/ushell/thirdparty/_dynamics/parameters-bundle.css14.js +1 -1
  727. package/src/main/js/sap/ushell/thirdparty/_dynamics/parameters-bundle.css15.js +1 -1
  728. package/src/main/js/sap/ushell/thirdparty/_dynamics/parameters-bundle.css16.js +1 -1
  729. package/src/main/js/sap/ushell/thirdparty/_dynamics/parameters-bundle.css17.js +1 -1
  730. package/src/main/js/sap/ushell/thirdparty/_dynamics/parameters-bundle.css18.js +1 -1
  731. package/src/main/js/sap/ushell/thirdparty/_dynamics/parameters-bundle.css19.js +1 -1
  732. package/src/main/js/sap/ushell/thirdparty/_dynamics/parameters-bundle.css20.js +1 -1
  733. package/src/main/js/sap/ushell/thirdparty/_dynamics/parameters-bundle.css21.js +1 -1
  734. package/src/main/js/sap/ushell/thirdparty/_dynamics/parameters-bundle.css22.js +1 -1
  735. package/src/main/js/sap/ushell/thirdparty/_dynamics/parameters-bundle.css23.js +1 -1
  736. package/src/main/js/sap/ushell/thirdparty/_dynamics/parameters-bundle.css24.js +1 -1
  737. package/src/main/js/sap/ushell/thirdparty/_dynamics/parameters-bundle.css25.js +1 -1
  738. package/src/main/js/sap/ushell/thirdparty/i18n-defaults.js +1 -1
  739. package/src/main/js/sap/ushell/thirdparty/information.js +10 -10
  740. package/src/main/js/sap/ushell/thirdparty/overflow.js +2 -2
  741. package/src/main/js/sap/ushell/thirdparty/parameters-bundle.css.js +1 -1
  742. package/src/main/js/sap/ushell/thirdparty/toLowercaseEnumValue.js +0 -3
  743. package/src/main/js/sap/ushell/thirdparty/webcomponents-base.js +13 -13
  744. package/src/main/js/sap/ushell/ui/ContentNodeSelector.js +72 -73
  745. package/src/main/js/sap/ushell/ui/ContentNodeSelectorRenderer.js +3 -3
  746. package/src/main/js/sap/ushell/ui/ContentNodeTreeItem.js +2 -2
  747. package/src/main/js/sap/ushell/ui/CustomGroupHeaderListItem.js +6 -6
  748. package/src/main/js/sap/ushell/ui/CustomGroupHeaderListItemRenderer.js +5 -5
  749. package/src/main/js/sap/ushell/ui/QuickAccess.js +15 -13
  750. package/src/main/js/sap/ushell/ui/ShellHeader.js +68 -152
  751. package/src/main/js/sap/ushell/ui/ShellHeaderRenderer.js +1 -1
  752. package/src/main/js/sap/ushell/ui/appfinder/AppBox.js +1 -1
  753. package/src/main/js/sap/ushell/ui/appfinder/AppBoxInternal.js +4 -4
  754. package/src/main/js/sap/ushell/ui/appfinder/AppBoxInternalRenderer.js +7 -9
  755. package/src/main/js/sap/ushell/ui/appfinder/AppBoxRenderer.js +1 -1
  756. package/src/main/js/sap/ushell/ui/appfinder/PinButton.js +2 -2
  757. package/src/main/js/sap/ushell/ui/appfinder/PinButtonRenderer.js +2 -4
  758. package/src/main/js/sap/ushell/ui/bookmark/SaveOnPage.controller.js +25 -13
  759. package/src/main/js/sap/ushell/ui/bookmark/SaveOnPage.view.xml +44 -48
  760. package/src/main/js/sap/ushell/ui/cards/FrequentActivitiesExtension.js +22 -22
  761. package/src/main/js/sap/ushell/ui/cards/RecentActivitiesExtension.js +23 -23
  762. package/src/main/js/sap/ushell/ui/footerbar/AboutButton.js +5 -5
  763. package/src/main/js/sap/ushell/ui/footerbar/AboutDialog.controller.js +0 -3
  764. package/src/main/js/sap/ushell/ui/footerbar/AddBookmarkButton.js +86 -103
  765. package/src/main/js/sap/ushell/ui/footerbar/ContactSupportButton.js +4 -4
  766. package/src/main/js/sap/ushell/ui/footerbar/ContactSupportDialog.controller.js +3 -3
  767. package/src/main/js/sap/ushell/ui/footerbar/JamDiscussButton.js +6 -7
  768. package/src/main/js/sap/ushell/ui/footerbar/JamShareButton.js +12 -12
  769. package/src/main/js/sap/ushell/ui/footerbar/LogoutButton.js +12 -12
  770. package/src/main/js/sap/ushell/ui/footerbar/SaveAsTile.controller.js +21 -21
  771. package/src/main/js/sap/ushell/ui/footerbar/SaveAsTile.view.js +57 -55
  772. package/src/main/js/sap/ushell/ui/footerbar/SendAsEmailButton.js +13 -13
  773. package/src/main/js/sap/ushell/ui/launchpad/AccessibilityCustomData.js +4 -4
  774. package/src/main/js/sap/ushell/ui/launchpad/ActionItem.js +4 -4
  775. package/src/main/js/sap/ushell/ui/launchpad/AnchorItem.js +3 -3
  776. package/src/main/js/sap/ushell/ui/launchpad/AnchorItemRenderer.js +5 -5
  777. package/src/main/js/sap/ushell/ui/launchpad/AnchorNavigationBar.js +56 -57
  778. package/src/main/js/sap/ushell/ui/launchpad/AnchorNavigationBarRenderer.js +8 -8
  779. package/src/main/js/sap/ushell/ui/launchpad/CatalogEntryContainer.js +36 -38
  780. package/src/main/js/sap/ushell/ui/launchpad/CatalogsContainer.js +40 -45
  781. package/src/main/js/sap/ushell/ui/launchpad/DashboardGroupsContainer.js +18 -18
  782. package/src/main/js/sap/ushell/ui/launchpad/DashboardGroupsContainerRenderer.js +5 -7
  783. package/src/main/js/sap/ushell/ui/launchpad/ExtendedChangeDetection.js +33 -33
  784. package/src/main/js/sap/ushell/ui/launchpad/FailedTileDialog.js +13 -13
  785. package/src/main/js/sap/ushell/ui/launchpad/GroupHeaderActions.js +13 -13
  786. package/src/main/js/sap/ushell/ui/launchpad/GroupListItem.js +5 -7
  787. package/src/main/js/sap/ushell/ui/launchpad/GroupListItemRenderer.js +2 -2
  788. package/src/main/js/sap/ushell/ui/launchpad/LinkTileWrapper.js +18 -18
  789. package/src/main/js/sap/ushell/ui/launchpad/LinkTileWrapperRenderer.js +9 -9
  790. package/src/main/js/sap/ushell/ui/launchpad/LoadingDialog.js +7 -7
  791. package/src/main/js/sap/ushell/ui/launchpad/LoadingDialogRenderer.js +4 -4
  792. package/src/main/js/sap/ushell/ui/launchpad/Page.js +56 -59
  793. package/src/main/js/sap/ushell/ui/launchpad/PageRenderer.js +3 -3
  794. package/src/main/js/sap/ushell/ui/launchpad/PlusTile.js +5 -5
  795. package/src/main/js/sap/ushell/ui/launchpad/PlusTileRenderer.js +2 -2
  796. package/src/main/js/sap/ushell/ui/launchpad/Section.js +142 -142
  797. package/src/main/js/sap/ushell/ui/launchpad/SectionRenderer.js +8 -8
  798. package/src/main/js/sap/ushell/ui/launchpad/Tile.js +48 -49
  799. package/src/main/js/sap/ushell/ui/launchpad/TileContainer.js +60 -57
  800. package/src/main/js/sap/ushell/ui/launchpad/TileContainerRenderer.js +31 -31
  801. package/src/main/js/sap/ushell/ui/launchpad/TileContainerUtils.js +71 -71
  802. package/src/main/js/sap/ushell/ui/launchpad/TileRenderer.js +8 -8
  803. package/src/main/js/sap/ushell/ui/launchpad/TileState.js +3 -3
  804. package/src/main/js/sap/ushell/ui/launchpad/TileStateInternal.js +7 -7
  805. package/src/main/js/sap/ushell/ui/launchpad/TileStateInternalRenderer.js +8 -8
  806. package/src/main/js/sap/ushell/ui/launchpad/TileStateRenderer.js +1 -2
  807. package/src/main/js/sap/ushell/ui/launchpad/ViewPortState.js +1 -1
  808. package/src/main/js/sap/ushell/ui/launchpad/VizInstance.js +41 -42
  809. package/src/main/js/sap/ushell/ui/launchpad/VizInstanceAbap.js +25 -25
  810. package/src/main/js/sap/ushell/ui/launchpad/VizInstanceBase.js +3 -3
  811. package/src/main/js/sap/ushell/ui/launchpad/VizInstanceCdm.js +25 -25
  812. package/src/main/js/sap/ushell/ui/launchpad/VizInstanceLaunchPage.js +6 -6
  813. package/src/main/js/sap/ushell/ui/launchpad/VizInstanceLink.js +11 -11
  814. package/src/main/js/sap/ushell/ui/launchpad/VizInstanceRenderer.js +7 -7
  815. package/src/main/js/sap/ushell/ui/launchpad/section/CompactArea.js +18 -18
  816. package/src/main/js/sap/ushell/ui/launchpad/section/CompactAreaRenderer.js +2 -2
  817. package/src/main/js/sap/ushell/ui/shell/ContentRenderer.js +8 -8
  818. package/src/main/js/sap/ushell/ui/shell/NavigationMiniTile.js +7 -7
  819. package/src/main/js/sap/ushell/ui/shell/OverflowListItem.js +5 -5
  820. package/src/main/js/sap/ushell/ui/shell/RightFloatingContainer.js +55 -55
  821. package/src/main/js/sap/ushell/ui/shell/ShellAppTitle.js +47 -45
  822. package/src/main/js/sap/ushell/ui/shell/ShellFloatingAction.js +5 -6
  823. package/src/main/js/sap/ushell/ui/shell/ShellFloatingActionRenderer.js +3 -4
  824. package/src/main/js/sap/ushell/ui/shell/ShellFloatingActions.js +18 -18
  825. package/src/main/js/sap/ushell/ui/shell/ShellHeadItem.js +28 -28
  826. package/src/main/js/sap/ushell/ui/shell/ShellNavigationMenu.js +33 -35
  827. package/src/main/js/sap/ushell/ui/shell/SidePane.js +9 -10
  828. package/src/main/js/sap/ushell/ui/shell/SubHeader.js +3 -3
  829. package/src/main/js/sap/ushell/ui/shell/SysInfoBar.js +12 -13
  830. package/src/main/js/sap/ushell/ui/shell/SysInfoBarRenderer.js +7 -7
  831. package/src/main/js/sap/ushell/ui/shell/ToolArea.js +10 -10
  832. package/src/main/js/sap/ushell/ui/shell/ToolAreaItem.js +10 -13
  833. package/src/main/js/sap/ushell/ui/tile/DynamicTile.js +5 -5
  834. package/src/main/js/sap/ushell/ui/tile/DynamicTileRenderer.js +29 -31
  835. package/src/main/js/sap/ushell/ui/tile/ImageTile.js +3 -4
  836. package/src/main/js/sap/ushell/ui/tile/ImageTileRenderer.js +2 -4
  837. package/src/main/js/sap/ushell/ui/tile/StaticTile.js +3 -3
  838. package/src/main/js/sap/ushell/ui/tile/StaticTileRenderer.js +2 -4
  839. package/src/main/js/sap/ushell/ui/tile/TileBase.js +4 -6
  840. package/src/main/js/sap/ushell/ui/tile/TileBaseRenderer.js +20 -21
  841. package/src/main/js/sap/ushell/ui/utils.js +20 -21
  842. package/src/main/js/sap/ushell/ui5service/ShellUIService.js +0 -1
  843. package/src/main/js/sap/ushell/ui5service/ShellUIServiceFactory.js +2 -2
  844. package/src/main/js/sap/ushell/ui5service/UserStatus.js +4 -4
  845. package/src/main/js/sap/ushell/utils/AppType.js +4 -4
  846. package/src/main/js/sap/ushell/utils/Deferred.js +2 -3
  847. package/src/main/js/sap/ushell/utils/DynamicTileRequest.js +6 -9
  848. package/src/main/js/sap/ushell/utils/HttpClient.js +33 -35
  849. package/src/main/js/sap/ushell/utils/RestrictedJSONModel.js +3 -3
  850. package/src/main/js/sap/ushell/utils/UriParameters.js +35 -35
  851. package/src/main/js/sap/ushell/utils/UrlParsing.js +5 -10
  852. package/src/main/js/sap/ushell/utils/UrlShortening.js +45 -58
  853. package/src/main/js/sap/ushell/utils/WindowUtils.js +17 -17
  854. package/src/main/js/sap/ushell/utils/chipsUtils.js +53 -54
  855. package/src/main/js/sap/ushell/utils/objectOperations.js +14 -15
  856. package/src/main/js/sap/ushell/utils/tilecard/TileCard.js +168 -171
  857. package/src/main/js/sap/ushell/utils/tilecard/TileCardExtension.js +238 -240
  858. package/src/main/js/sap/ushell/utils/type.js +1 -2
  859. package/src/main/js/sap/ushell/utils/utilsCdm.js +37 -46
  860. package/src/main/js/sap/ushell/utils/workpage/DestinationResolver.js +3 -4
  861. package/src/main/js/sap/ushell/utils/workpage/WorkPageHost.js +29 -34
  862. package/src/main/js/sap/ushell/utils/workpage/WorkPageService.js +18 -20
  863. package/src/main/js/sap/ushell/utils/workpage/WorkPageVizInstantiation.js +5 -6
  864. package/src/main/js/sap/ushell/utils.js +195 -221
  865. package/src/test/js/sap/ushell/bootstrap/sandbox.js +1 -1
  866. package/ui5.yaml +0 -1
  867. package/src/main/js/sap/ushell/CanvasShapesManager.js +0 -392
  868. package/src/main/js/sap/ushell/components/shell/SearchCEP/ProvidersExecuter.js +0 -49
  869. package/src/main/js/sap/ushell/gen/ui5/webcomponents/Avatar.js +0 -4
  870. package/src/main/js/sap/ushell/gen/ui5/webcomponents/Button.js +0 -4
  871. package/src/main/js/sap/ushell/gen/ui5/webcomponents/Label.js +0 -4
  872. package/src/main/js/sap/ushell/gen/ui5/webcomponents/Menu.js +0 -4
  873. package/src/main/js/sap/ushell/gen/ui5/webcomponents/MenuItem.js +0 -4
  874. package/src/main/js/sap/ushell/gen/ui5/webcomponents-fiori/NotificationList.js +0 -4
  875. package/src/main/js/sap/ushell/gen/ui5/webcomponents-fiori/NotificationListGroupItem.js +0 -4
  876. package/src/main/js/sap/ushell/gen/ui5/webcomponents-fiori/NotificationListItem.js +0 -4
  877. package/src/main/js/sap/ushell/gen/ui5/webcomponents-fiori/ShellBar.js +0 -4
  878. package/src/main/js/sap/ushell/gen/ui5/webcomponents-fiori/ShellBarItem.js +0 -4
  879. package/src/main/js/sap/ushell/gen/ui5/webcomponents-fiori/ShellBarSpacer.js +0 -4
  880. package/src/main/js/sap/ushell/gen/ui5/webcomponents-fiori/UserMenu.js +0 -4
  881. package/src/main/js/sap/ushell/gen/ui5/webcomponents-fiori/UserMenuAccount.js +0 -4
  882. package/src/main/js/sap/ushell/gen/ui5/webcomponents-fiori/UserMenuItem.js +0 -4
  883. package/src/main/js/sap/ushell/themes/sap_fiori_3/ShellBar.less +0 -9
  884. package/src/main/js/sap/ushell/themes/sap_fiori_3_dark/ShellBar.less +0 -9
  885. package/src/main/js/sap/ushell/themes/sap_fiori_3_hcb/ShellBar.less +0 -9
  886. package/src/main/js/sap/ushell/themes/sap_fiori_3_hcw/ShellBar.less +0 -9
@@ -4,7 +4,7 @@
4
4
  * @fileOverview The Unified Shell's LaunchPageAdapter for the
5
5
  * 'CDM' platform - Version 2 (V2)
6
6
  * @deprecated since 1.100
7
- * @version 1.136.3
7
+ * @version 1.138.1
8
8
  */
9
9
  sap.ui.define([
10
10
  "sap/ushell/adapters/cdm/_LaunchPage/readHome",
@@ -34,7 +34,7 @@ sap.ui.define([
34
34
  "sap/ushell/UI5ComponentType",
35
35
  "sap/ushell/EventHub",
36
36
  "sap/ushell/Container"
37
- ], function (
37
+ ], (
38
38
  oReadHomePageUtils,
39
39
  oModifyHomePageUtils, // TODO should be loaded lazy only when really needed
40
40
  oReadCatalogUtils,
@@ -62,16 +62,16 @@ sap.ui.define([
62
62
  UI5ComponentType,
63
63
  EventHub,
64
64
  Container
65
- ) {
65
+ ) => {
66
66
  "use strict";
67
67
 
68
68
  // shortcut for sap.m.GenericTileMode
69
- var oGenericTileMode = oMobileLibrary.GenericTileMode;
69
+ const oGenericTileMode = oMobileLibrary.GenericTileMode;
70
70
 
71
71
  /* global hasher */
72
72
 
73
- var oLogger = Log.getLogger("sap/ushell/adapters/cdm/LaunchPageAdapter"),
74
- oLogLevel = Log.Level;
73
+ const oLogger = Log.getLogger("sap/ushell/adapters/cdm/LaunchPageAdapter");
74
+ const oLogLevel = Log.Level;
75
75
 
76
76
  /**
77
77
  * This method MUST be called by the Unified Shell's container only.
@@ -90,9 +90,9 @@ sap.ui.define([
90
90
  * @deprecated since 1.100
91
91
  */
92
92
  function LaunchPageAdapter (oUnused, sParameter, oAdapterConfiguration) {
93
- var _oDefaultGroup,
94
- sStaticTileComponent = "sap.ushell.components.tiles.cdm.applauncher",
95
- sDynamicTileComponent = "sap.ushell.components.tiles.cdm.applauncherdynamic";
93
+ let _oDefaultGroup;
94
+ const sStaticTileComponent = "sap.ushell.components.tiles.cdm.applauncher";
95
+ const sDynamicTileComponent = "sap.ushell.components.tiles.cdm.applauncherdynamic";
96
96
 
97
97
  this._mResolvedTiles = {};
98
98
  this._mCatalogTilePromises = {};
@@ -102,12 +102,12 @@ sap.ui.define([
102
102
  Promise.all([
103
103
  Container.getServiceAsync("URLParsing"),
104
104
  Container.getServiceAsync("CommonDataModel")
105
- ]).then(function (aServices) {
105
+ ]).then((aServices) => {
106
106
  this.oURLParsingService = aServices[0]; // It is not used internally. Keep it for back compatibility.
107
107
  this.oCDMService = aServices[1];
108
- }.bind(this));
108
+ });
109
109
 
110
- //TODO: Rectify Log.error calls and pass correct parameters
110
+ // TODO: Rectify Log.error calls and pass correct parameters
111
111
  // https://ui5.sap.com/#/api/module:sap/base/Log%23methods/sap/base/Log.error
112
112
 
113
113
  /**
@@ -135,7 +135,7 @@ sap.ui.define([
135
135
  */
136
136
  this.isSiteSupported = function (oSite) {
137
137
  // Check if site has the expected CDM version
138
- if (!!oSite._version
138
+ if (oSite._version
139
139
  && Version(oSite._version).compareTo(this.getCdmVersionsSupported().max) > 0) {
140
140
  Log.fatal("Invalid CDM site version: Only sites up to version 2.0.0 are supported");
141
141
  return false;
@@ -159,14 +159,14 @@ sap.ui.define([
159
159
  * of group objects, in case the groups could not be loaded the array is empty.
160
160
  */
161
161
  this.getGroups = function () {
162
- var oDeferred = new jQuery.Deferred();
162
+ const oDeferred = new jQuery.Deferred();
163
163
 
164
164
  this._assureLoaded()
165
- .done(function (aGroups) {
165
+ .done((aGroups) => {
166
166
  oUshellUtils.setPerformanceMark("FLP - homepage groups processed");
167
167
  oDeferred.resolve(aGroups);
168
168
  })
169
- .fail(function () {
169
+ .fail(() => {
170
170
  // resolve with an empty array in case no groups could be loaded
171
171
  oDeferred.resolve([]);
172
172
  });
@@ -196,8 +196,8 @@ sap.ui.define([
196
196
  * @private
197
197
  */
198
198
  this._getTileFromHashInContextOfSite = function (fnResolver, oCatalogTilePromiseCache, sIntent) {
199
- var oDeferred = new jQuery.Deferred(),
200
- oCatalogTilePromise = oCatalogTilePromiseCache[sIntent];
199
+ const oDeferred = new jQuery.Deferred();
200
+ let oCatalogTilePromise = oCatalogTilePromiseCache[sIntent];
201
201
 
202
202
  if (!oCatalogTilePromise) {
203
203
  // only call resolve if it was not resolved before
@@ -207,15 +207,15 @@ sap.ui.define([
207
207
  oCatalogTilePromiseCache[sIntent] = oCatalogTilePromise;
208
208
  }
209
209
 
210
- oCatalogTilePromise.done(function (oTileIntentResolutionResult) {
211
- var oTileResolutionResult = {
210
+ oCatalogTilePromise.done((oTileIntentResolutionResult) => {
211
+ const oTileResolutionResult = {
212
212
  tileIntent: sIntent,
213
213
  tileResolutionResult: oTileIntentResolutionResult
214
214
  };
215
215
 
216
216
  oDeferred.resolve(oTileResolutionResult);
217
- }).fail(function (sErrorMsg) {
218
- oDeferred.reject("Hash '" + sIntent + "' could not be resolved to a tile. " + sErrorMsg);
217
+ }).fail((sErrorMsg) => {
218
+ oDeferred.reject(`Hash '${sIntent}' could not be resolved to a tile. ${sErrorMsg}`);
219
219
  });
220
220
 
221
221
  return oDeferred.promise();
@@ -235,9 +235,9 @@ sap.ui.define([
235
235
  * @private
236
236
  */
237
237
  this._getTileFromHash = function (sIntent) {
238
- var oDeferred = new jQuery.Deferred();
238
+ const oDeferred = new jQuery.Deferred();
239
239
 
240
- Container.getServiceAsync("ClientSideTargetResolution").then(function (oCstrService) {
240
+ Container.getServiceAsync("ClientSideTargetResolution").then((oCstrService) => {
241
241
  function fnResolveTile (...args) {
242
242
  const oDeferred = new jQuery.Deferred();
243
243
  oCstrService.resolveTileIntent(...args)
@@ -252,7 +252,7 @@ sap.ui.define([
252
252
  this._getTileFromHashInContextOfSite(fnResolveTile, this._mCatalogTilePromises, sIntent)
253
253
  .done(oDeferred.resolve)
254
254
  .fail(oDeferred.reject);
255
- }.bind(this));
255
+ });
256
256
 
257
257
  return oDeferred.promise();
258
258
  };
@@ -267,9 +267,9 @@ sap.ui.define([
267
267
  * @private
268
268
  */
269
269
  this._getTileForUrl = function (oTile) {
270
- var sTileComponentLoadInfo = oTile.indicatorDataSource ? "#Shell-dynamicTile" : "#Shell-staticTile";
270
+ const sTileComponentLoadInfo = oTile.indicatorDataSource ? "#Shell-dynamicTile" : "#Shell-staticTile";
271
271
  return {
272
- tileIntent: "#", //TODO this is not a good intent for arbitrary URL tiles, is it?
272
+ tileIntent: "#", // TODO this is not a good intent for arbitrary URL tiles, is it?
273
273
  tileResolutionResult: {
274
274
  tileComponentLoadInfo: sTileComponentLoadInfo,
275
275
  isCustomTile: false
@@ -290,9 +290,9 @@ sap.ui.define([
290
290
  * @private
291
291
  */
292
292
  this._assureGroupItemsResolved = function (oGroup, oSite) {
293
- var aPromises = [],
294
- aResolvedTilesPromises,
295
- aResolvedLinksPromises;
293
+ const aPromises = [];
294
+ let aResolvedTilesPromises;
295
+ let aResolvedLinksPromises;
296
296
 
297
297
  // Tiles
298
298
  if (oGroup.payload && oGroup.payload.tiles) {
@@ -326,7 +326,7 @@ sap.ui.define([
326
326
  this._assureGroupTilesResolved = function (aGroupTiles, oSite) {
327
327
  return (aGroupTiles || []).map(function (oTile, iIndex) {
328
328
  return this._resolveGroupTile(oTile, oSite)
329
- .then(function (oResolvedTileOutcome) {
329
+ .then((oResolvedTileOutcome) => {
330
330
  oResolvedTileOutcome.isLink = false;
331
331
 
332
332
  return oResolvedTileOutcome;
@@ -349,7 +349,7 @@ sap.ui.define([
349
349
  this._assureGroupLinksResolved = function (aGroupLinks, oSite) {
350
350
  return (aGroupLinks || []).map(function (oLink) {
351
351
  return this._resolveGroupTile(oLink, oSite)
352
- .then(function (oResolvedLinkOutcome) {
352
+ .then((oResolvedLinkOutcome) => {
353
353
  oResolvedLinkOutcome.isLink = true;
354
354
 
355
355
  return oResolvedLinkOutcome;
@@ -379,9 +379,9 @@ sap.ui.define([
379
379
  * to the fail handler which will be called in this case.
380
380
  */
381
381
  this._resolveGroupTile = function (oTile, oSite) {
382
- var mSuccessCache = this._mResolvedTiles;
383
- var mFailureCache = this._mFailedResolvedTiles;
384
- var oResultPromise;
382
+ const mSuccessCache = this._mResolvedTiles;
383
+ const mFailureCache = this._mFailedResolvedTiles;
384
+ let oResultPromise;
385
385
 
386
386
  function updateCaches (oResolvedTile) {
387
387
  mSuccessCache[oTile.id] = oResolvedTile;
@@ -394,7 +394,7 @@ sap.ui.define([
394
394
  }
395
395
 
396
396
  function isUrlLauncherTile (oTile) {
397
- var oTarget = oTile.target;
397
+ const oTarget = oTile.target;
398
398
 
399
399
  return oTarget
400
400
  && oTarget.semanticObject === "Shell"
@@ -423,9 +423,9 @@ sap.ui.define([
423
423
  oResultPromise = this._resolveTileByAppId(oTile, oSite);
424
424
  }
425
425
 
426
- oResultPromise.done(function (oResolvedTile) {
426
+ oResultPromise.done((oResolvedTile) => {
427
427
  updateCaches(oResolvedTile);
428
- }).fail(function (vFailureInfo) {
428
+ }).fail((vFailureInfo) => {
429
429
  mFailureCache[oTile.id] = vFailureInfo;
430
430
  });
431
431
 
@@ -446,12 +446,6 @@ sap.ui.define([
446
446
  * to the fail handler which will be called in this case.
447
447
  */
448
448
  this._resolveTileByAppId = function (oTile, oSite) {
449
- var sAppId,
450
- oAppDescriptor,
451
- oInboundResult,
452
- oApp,
453
- sHash;
454
-
455
449
  function reject (iLogLevel, sMessage) {
456
450
  return new jQuery.Deferred()
457
451
  .reject({
@@ -468,35 +462,41 @@ sap.ui.define([
468
462
  return reject(oLogLevel.ERROR, "Cannot resolve tile: oSite must be an object");
469
463
  }
470
464
 
471
- sAppId = oTile.appId || oTile.appIDHint;
465
+ const sAppId = oTile.appId || oTile.appIDHint;
472
466
  if (!sAppId) {
473
467
  return reject(oLogLevel.ERROR,
474
468
  ["Cannot resolve tile '", oTile.id, "': either appId or appIDHint must be specified"].join(""));
475
469
  }
476
470
 
477
- oAppDescriptor = oSite.applications && oSite.applications[sAppId];
471
+ const oAppDescriptor = oSite.applications && oSite.applications[sAppId];
478
472
  if (!oAppDescriptor) {
479
473
  return reject(oLogLevel.INFO,
480
- ["Tile '", oTile.id, "' filtered from result: no app found for appId '",
481
- sAppId, "' (dangling app reference)"].join(""));
474
+ ["Tile '",
475
+ oTile.id,
476
+ "' filtered from result: no app found for appId '",
477
+ sAppId,
478
+ "' (dangling app reference)"].join(""));
482
479
  }
483
480
 
484
481
  // TODO: CDM2.0 - check if custom tile first (should not need an inbound)
485
482
  // for referenced apps, this is an error
486
- oInboundResult = this._getFirstInbound(oAppDescriptor);
483
+ const oInboundResult = this._getFirstInbound(oAppDescriptor);
487
484
  if (!oInboundResult) {
488
485
  return reject(oLogLevel.ERROR,
489
- ["Cannot resolve tile '", oTile.id, "': app '",
490
- sAppId, "' has no navigation inbound"].join(""));
486
+ ["Cannot resolve tile '",
487
+ oTile.id,
488
+ "': app '",
489
+ sAppId,
490
+ "' has no navigation inbound"].join(""));
491
491
  }
492
492
 
493
- var oMapped = oUtilsCdm.mapOne(oInboundResult.key, oInboundResult.inbound, oAppDescriptor),
494
- sApplicationType = oMapped.resolutionResult.applicationType,
495
- sAdditionalInformation = oMapped.resolutionResult.additionalInformation,
496
- oEnableInPlaceForClassicUIsConfig = Config.last("/core/navigation/enableInPlaceForClassicUIs"),
497
- bIsApplicationTypeConfiguredInPlace = oEnableInPlaceForClassicUIsConfig ? oEnableInPlaceForClassicUIsConfig[sApplicationType] : false;
493
+ const oMapped = oUtilsCdm.mapOne(oInboundResult.key, oInboundResult.inbound, oAppDescriptor);
494
+ const sApplicationType = oMapped.resolutionResult.applicationType;
495
+ const sAdditionalInformation = oMapped.resolutionResult.additionalInformation;
496
+ const oEnableInPlaceForClassicUIsConfig = Config.last("/core/navigation/enableInPlaceForClassicUIs");
497
+ const bIsApplicationTypeConfiguredInPlace = oEnableInPlaceForClassicUIsConfig ? oEnableInPlaceForClassicUIsConfig[sApplicationType] : false;
498
498
 
499
- oApp = oMapped.tileResolutionResult;
499
+ const oApp = oMapped.tileResolutionResult;
500
500
  oApp.navigationMode = navigationMode.computeNavigationModeForHomepageTiles(sApplicationType, sAdditionalInformation, bIsApplicationTypeConfiguredInPlace);
501
501
  oApp.isLink = false; // TODO remove as it should go one level up
502
502
 
@@ -505,7 +505,7 @@ sap.ui.define([
505
505
  ["Tile '", oTile.id, "' filtered from result: form factor not supported"].join(""));
506
506
  }
507
507
 
508
- sHash = this._toHashFromInbound(oInboundResult.inbound);
508
+ const sHash = this._toHashFromInbound(oInboundResult.inbound);
509
509
 
510
510
  return jQuery.when({
511
511
  tileResolutionResult: oApp,
@@ -523,7 +523,7 @@ sap.ui.define([
523
523
  * true, if the form factor is supported, false otherwise
524
524
  */
525
525
  this._isFormFactorSupported = function (oAppDescriptor) {
526
- var sCurrentFormFactor = oUshellUtils.getFormFactor();
526
+ const sCurrentFormFactor = oUshellUtils.getFormFactor();
527
527
 
528
528
  return oReadHomePageUtils.supportsFormFactor(oAppDescriptor, sCurrentFormFactor);
529
529
  };
@@ -546,8 +546,8 @@ sap.ui.define([
546
546
  */
547
547
  this._getFirstInbound = function (oAppDescriptor) {
548
548
  // TODO: CDM2.0 robust access
549
- var sFirstInboundKey = Object.keys(oAppDescriptor["sap.app"].crossNavigation.inbounds).shift(),
550
- oInbound = oAppDescriptor["sap.app"].crossNavigation.inbounds[sFirstInboundKey];
549
+ const sFirstInboundKey = Object.keys(oAppDescriptor["sap.app"].crossNavigation.inbounds).shift();
550
+ const oInbound = oAppDescriptor["sap.app"].crossNavigation.inbounds[sFirstInboundKey];
551
551
 
552
552
  return {
553
553
  key: sFirstInboundKey,
@@ -569,7 +569,7 @@ sap.ui.define([
569
569
  * to the fail handler which will be called in this case.
570
570
  */
571
571
  this._resolveTileByIntent = function (oTile, oSite) {
572
- var sHash = this._prepareTileHash(oTile);
572
+ const sHash = this._prepareTileHash(oTile);
573
573
 
574
574
  return this._getTileFromHash(sHash);
575
575
  };
@@ -586,9 +586,9 @@ sap.ui.define([
586
586
  * @private
587
587
  */
588
588
  this._prepareTileHash = function (oTile) {
589
- var oParams = {},
590
- oTarget,
591
- aRawParams;
589
+ const oParams = {};
590
+ let oTarget;
591
+ let aRawParams;
592
592
 
593
593
  if (this._isCatalogTile(oTile)) {
594
594
  return oTile.tileIntent;
@@ -597,7 +597,7 @@ sap.ui.define([
597
597
  if (this._isGroupTile(oTile) && oTile.target) {
598
598
  // TODO use hash from _mResolvedTiles if tile has been already resolved
599
599
  aRawParams = oTile.target.parameters || [];
600
- aRawParams.forEach(function (oParameter) {
600
+ aRawParams.forEach((oParameter) => {
601
601
  if (oParameter.name && oParameter.value) {
602
602
  oParams[oParameter.name] = [oParameter.value];
603
603
  }
@@ -612,7 +612,7 @@ sap.ui.define([
612
612
  appSpecificRoute: oTile.target.appSpecificRoute
613
613
  };
614
614
 
615
- return "#" + urlParsing.constructShellHash(oTarget);
615
+ return `#${urlParsing.constructShellHash(oTarget)}`;
616
616
  }
617
617
  return undefined;
618
618
  };
@@ -635,14 +635,14 @@ sap.ui.define([
635
635
  * @private
636
636
  */
637
637
  this._allPromisesDone = function (aPromises) {
638
- var oDeferred = new jQuery.Deferred(),
639
- oDeferredAlways;
638
+ const oDeferred = new jQuery.Deferred();
639
+ let oDeferredAlways;
640
640
 
641
641
  if (aPromises.length === 0) {
642
642
  oDeferred.resolve([]);
643
643
  } else {
644
644
  // "replace" aPromises with an array of promises which will always resolve.
645
- var aNoneFailingPromises = aPromises.map(function (oPromise) {
645
+ const aNoneFailingPromises = aPromises.map((oPromise) => {
646
646
  oDeferredAlways = new jQuery.Deferred();
647
647
  oPromise.always(oDeferredAlways.resolve.bind(oDeferredAlways));
648
648
  return oDeferredAlways.promise();
@@ -651,7 +651,7 @@ sap.ui.define([
651
651
  // This is needed because jQuery.when will otherwise abort on the first fail and will
652
652
  // not wait for the remaining promises.
653
653
  jQuery.when.apply(this, aNoneFailingPromises).done(function () {
654
- var aArgs = Array.prototype.slice.call(arguments);
654
+ const aArgs = Array.prototype.slice.call(arguments);
655
655
  oDeferred.resolve(aArgs);
656
656
  });
657
657
  }
@@ -672,28 +672,27 @@ sap.ui.define([
672
672
  * @private
673
673
  */
674
674
  this._assureLoaded = function () {
675
- var that = this,
676
- oDeferred;
675
+ const that = this;
677
676
 
678
677
  // bundle multiple requests running in parallel
679
678
  if (this._assureLoadedDeferred) {
680
679
  return this._assureLoadedDeferred.promise();
681
680
  }
682
681
 
683
- oDeferred = new jQuery.Deferred();
682
+ const oDeferred = new jQuery.Deferred();
684
683
  this._assureLoadedDeferred = oDeferred;
685
684
 
686
- Container.getServiceAsync("CommonDataModel").then(function (oCDMSiteService) {
685
+ Container.getServiceAsync("CommonDataModel").then((oCDMSiteService) => {
687
686
  oCDMSiteService.getSite()
688
- .done(function (oSite) {
687
+ .done((oSite) => {
689
688
  // Ensure site has expected CDM format
690
689
  if (!that.isSiteSupported(oSite)) {
691
690
  throw new Error("Invalid CDM site version: Check configuration of launchpage adapter and version of FLP site");
692
691
  }
693
692
 
694
- var aItemPromises = [];
695
- var aGroups = oReadHomePageUtils.getGroupsArrayFromSite(oSite);
696
- var oDefaultGroup = oReadHomePageUtils.getDefaultGroup(aGroups);
693
+ let aItemPromises = [];
694
+ let aGroups = oReadHomePageUtils.getGroupsArrayFromSite(oSite);
695
+ let oDefaultGroup = oReadHomePageUtils.getDefaultGroup(aGroups);
697
696
 
698
697
  if (!oDefaultGroup) {
699
698
  // the default group is not added by an admin but must be automatically
@@ -706,7 +705,7 @@ sap.ui.define([
706
705
  // the FLP, oCdmSiteService.save() is skipped. This means the default
707
706
  // group is added on EVERY start-up until save() is called in a different use case
708
707
  // e.g. a tile was added.
709
- oSite = oModifyHomePageUtils.addGroupToSite(oSite, oDefaultGroup, /*index*/ 0);
708
+ oSite = oModifyHomePageUtils.addGroupToSite(oSite, oDefaultGroup, /* index */ 0);
710
709
 
711
710
  // get groups again as the default group was just added
712
711
  aGroups = oReadHomePageUtils.getGroupsArrayFromSite(oSite);
@@ -714,7 +713,7 @@ sap.ui.define([
714
713
 
715
714
  _oDefaultGroup = oDefaultGroup; // TODO that should be improved
716
715
 
717
- aGroups.forEach(function (oGroup) {
716
+ aGroups.forEach((oGroup) => {
718
717
  // resolve the tile intents already now, as methods like getGroupTiles
719
718
  // or getTileTitle are synchronously called
720
719
  aItemPromises = that._assureGroupItemsResolved(oGroup, oSite).concat(aItemPromises); // TODO split method as well
@@ -723,7 +722,7 @@ sap.ui.define([
723
722
  // wait for resolving of all items
724
723
  // Note: _allPromisesDone does never reject. Therefore no fail handler is required.
725
724
  that._allPromisesDone(aItemPromises)
726
- .done(function () {
725
+ .done(() => {
727
726
  that._assureLoadedDeferred.resolve(aGroups);
728
727
  // ensure that following _assureLoaded calls get resolved with a new parameter
729
728
  // (otherwise it will be resolved with the "cached" groups)
@@ -732,8 +731,8 @@ sap.ui.define([
732
731
  that._logTileResolutionFailures(that._mFailedResolvedTiles);
733
732
  });
734
733
  })
735
- .fail(function (sErrorMessage0) {
736
- Log.error("Delivering homepage groups failed - " + sErrorMessage0);
734
+ .fail((sErrorMessage0) => {
735
+ Log.error(`Delivering homepage groups failed - ${sErrorMessage0}`);
737
736
  that._assureLoadedDeferred.resolve([]);
738
737
  // ensure that following _assureLoaded calls get resolved with a new parameter
739
738
  delete that._assureLoadedDeferred;
@@ -751,21 +750,21 @@ sap.ui.define([
751
750
  * @private
752
751
  */
753
752
  this._logTileResolutionFailures = function (oFailedResolvedTiles) {
754
- var oMessagesByLogLevel = {};
753
+ const oMessagesByLogLevel = {};
755
754
 
756
755
  if (!oFailedResolvedTiles) {
757
756
  return;
758
757
  }
759
758
 
760
- Object.keys(oLogLevel).filter(function (sLevelKey) {
761
- var iLevel = oLogLevel[sLevelKey];
759
+ Object.keys(oLogLevel).filter((sLevelKey) => {
760
+ const iLevel = oLogLevel[sLevelKey];
762
761
  return iLevel >= oLogLevel.FATAL && iLevel <= oLogLevel.ALL;
763
- }).forEach(function (sLevelKey) {
762
+ }).forEach((sLevelKey) => {
764
763
  oMessagesByLogLevel[oLogLevel[sLevelKey]] = "";
765
764
  });
766
765
 
767
- Object.keys(oFailedResolvedTiles).forEach(function (sFailuredKey) {
768
- var oFailureInfo = oFailedResolvedTiles[sFailuredKey];
766
+ Object.keys(oFailedResolvedTiles).forEach((sFailuredKey) => {
767
+ const oFailureInfo = oFailedResolvedTiles[sFailuredKey];
769
768
  if (oFailureInfo.logLevel) {
770
769
  oMessagesByLogLevel[oFailureInfo.logLevel] =
771
770
  oMessagesByLogLevel[oFailureInfo.logLevel].concat(oFailureInfo.message).concat("\n");
@@ -801,8 +800,8 @@ sap.ui.define([
801
800
  * @public
802
801
  */
803
802
  this.getDefaultGroup = function () {
804
- var oDeferred = new jQuery.Deferred(),
805
- oAssureLoadedDeferred;
803
+ const oDeferred = new jQuery.Deferred();
804
+ let oAssureLoadedDeferred;
806
805
 
807
806
  // check whether assureLoaded was already called.
808
807
  // The default group is not set before.
@@ -812,11 +811,11 @@ sap.ui.define([
812
811
 
813
812
  if (oAssureLoadedDeferred) {
814
813
  oAssureLoadedDeferred
815
- .done(function () {
814
+ .done(() => {
816
815
  oDeferred.resolve(_oDefaultGroup);
817
816
  })
818
- .fail(function (sMessage) {
819
- oDeferred.reject("Failed to access default group. " + sMessage);
817
+ .fail((sMessage) => {
818
+ oDeferred.reject(`Failed to access default group. ${sMessage}`);
820
819
  });
821
820
  } else {
822
821
  oDeferred.resolve(_oDefaultGroup);
@@ -882,22 +881,21 @@ sap.ui.define([
882
881
  * a respective error message.
883
882
  */
884
883
  this.addGroup = function (sTitle) {
885
- var oDeferred = new jQuery.Deferred(),
886
- oCdmSiteService = this.oCDMService,
887
- sGeneratedId,
888
- sGenericErrorMessage,
889
- that = this;
884
+ const oDeferred = new jQuery.Deferred();
885
+ const oCdmSiteService = this.oCDMService;
886
+ let sGeneratedId;
887
+ const that = this;
890
888
 
891
889
  if (!this._isValidTitle(sTitle)) {
892
890
  return oDeferred.reject("No valid group title").promise();
893
891
  }
894
892
 
895
- sGenericErrorMessage = "Failed to add the group with title '" + sTitle +
896
- "' to the homepage. ";
893
+ const sGenericErrorMessage = `Failed to add the group with title '${sTitle
894
+ }' to the homepage. `;
897
895
 
898
896
  // add group to site
899
897
  oCdmSiteService.getSite()
900
- .done(function (oSite) {
898
+ .done((oSite) => {
901
899
  sGeneratedId = oUshellUtils.generateUniqueId(oReadHomePageUtils.getGroupIdsFromSite(oSite));
902
900
 
903
901
  // append the group at the end
@@ -905,15 +903,15 @@ sap.ui.define([
905
903
 
906
904
  // store personalization
907
905
  oCdmSiteService.save()
908
- .done(function () {
906
+ .done(() => {
909
907
  delete that._assureLoadedDeferred;
910
908
  oDeferred.resolve(oSite.groups[sGeneratedId], sGeneratedId);
911
909
  })
912
- .fail(function (sErrorMsg0) {
910
+ .fail((sErrorMsg0) => {
913
911
  oDeferred.reject(sErrorMsg0);
914
912
  });
915
913
  })
916
- .fail(function (sErrorMsg) {
914
+ .fail((sErrorMsg) => {
917
915
  oDeferred.reject(sGenericErrorMessage + sErrorMsg);
918
916
  });
919
917
 
@@ -944,11 +942,9 @@ sap.ui.define([
944
942
  * In case of failure, the fail handler will be called with the old group title.
945
943
  */
946
944
  this.setGroupTitle = function (oGroup, sNewTitle) {
947
- var that = this,
948
- oDeferred = new jQuery.Deferred(),
949
- oCdmSiteService = this.oCDMService,
950
- sOldTitle, // necessary in case the renaming operation fails
951
- sGenericErrorMessage;
945
+ const that = this;
946
+ const oDeferred = new jQuery.Deferred();
947
+ const oCdmSiteService = this.oCDMService;
952
948
 
953
949
  if (typeof oGroup !== "object" || !oReadHomePageUtils.getGroupId(oGroup)) {
954
950
  return oDeferred.reject("Unexpected group value").promise();
@@ -956,28 +952,28 @@ sap.ui.define([
956
952
  if (!that._isValidTitle(sNewTitle)) {
957
953
  return oDeferred.reject("Unexpected oGroup title value").promise();
958
954
  }
959
- sGenericErrorMessage = "Failed to set new title for group with id '" +
960
- oReadHomePageUtils.getGroupId(oGroup) + "'. ";
955
+ const sGenericErrorMessage = `Failed to set new title for group with id '${
956
+ oReadHomePageUtils.getGroupId(oGroup)}'. `;
961
957
 
962
- sOldTitle = oReadHomePageUtils.getGroupTitle(oGroup);
958
+ const sOldTitle = oReadHomePageUtils.getGroupTitle(oGroup); // necessary in case the renaming operation fails
963
959
 
964
960
  oCdmSiteService.getSite()
965
- .done(function (oSite) {
961
+ .done((oSite) => {
966
962
  // adapt title
967
963
  if (oGroup) {
968
964
  oModifyHomePageUtils.setGroupTitle(oGroup, sNewTitle);
969
965
  }
970
966
  // save personalization
971
967
  oCdmSiteService.save()
972
- .done(function () {
968
+ .done(() => {
973
969
  oDeferred.resolve();
974
970
  })
975
- .fail(function (sErrorMsg) {
971
+ .fail((sErrorMsg) => {
976
972
  Log.error(sErrorMsg);
977
973
  oDeferred.reject(sOldTitle);
978
974
  });
979
975
  })
980
- .fail(function (sError) {
976
+ .fail((sError) => {
981
977
  oDeferred.reject(sOldTitle, sGenericErrorMessage + sError);
982
978
  });
983
979
 
@@ -1009,15 +1005,15 @@ sap.ui.define([
1009
1005
  * error message.
1010
1006
  */
1011
1007
  this.hideGroups = function (aHiddenGroupIds) {
1012
- var oDeferred = new jQuery.Deferred(),
1013
- oCdmSiteService = this.oCDMService,
1014
- sGenericErrorMessage;
1008
+ const oDeferred = new jQuery.Deferred();
1009
+ const oCdmSiteService = this.oCDMService;
1010
+ let sGenericErrorMessage;
1015
1011
 
1016
1012
  if (aHiddenGroupIds && Array.isArray(aHiddenGroupIds)) {
1017
1013
  sGenericErrorMessage = "Failed to hide group. ";
1018
1014
  oCdmSiteService.getSite()
1019
- .done(function (oSite) {
1020
- oReadHomePageUtils.getGroupsArrayFromSite(oSite).forEach(function (oGroup) {
1015
+ .done((oSite) => {
1016
+ oReadHomePageUtils.getGroupsArrayFromSite(oSite).forEach((oGroup) => {
1021
1017
  oModifyHomePageUtils.setGroupVisibility(oGroup,
1022
1018
  aHiddenGroupIds && // group is not in list of hidden groups -> visibility === true
1023
1019
  Array.prototype.indexOf.call(aHiddenGroupIds, oReadHomePageUtils.getGroupId(oGroup)) === -1
@@ -1026,14 +1022,14 @@ sap.ui.define([
1026
1022
 
1027
1023
  // persist personalization
1028
1024
  oCdmSiteService.save()
1029
- .done(function () {
1025
+ .done(() => {
1030
1026
  oDeferred.resolve();
1031
1027
  })
1032
- .fail(function (oErrorMsg0) {
1033
- oDeferred.reject("Hiding of groups did not work as expected - " + oErrorMsg0);
1028
+ .fail((oErrorMsg0) => {
1029
+ oDeferred.reject(`Hiding of groups did not work as expected - ${oErrorMsg0}`);
1034
1030
  });
1035
1031
  })
1036
- .fail(function (sError) {
1032
+ .fail((sError) => {
1037
1033
  oDeferred.reject(sGenericErrorMessage + sError);
1038
1034
  });
1039
1035
  } else {
@@ -1068,21 +1064,19 @@ sap.ui.define([
1068
1064
  * In case of failure, the fail handler will be called with a respective error message.
1069
1065
  */
1070
1066
  this.moveGroup = function (oGroup, nNewIndex) {
1071
- var oDeferred = new jQuery.Deferred(),
1072
- oCdmSiteService = this.oCDMService,
1073
- aGroupsOrderAfterMove,
1074
- sGenericErrorMessage;
1067
+ const oDeferred = new jQuery.Deferred();
1068
+ const oCdmSiteService = this.oCDMService;
1075
1069
 
1076
1070
  if (!oGroup || !oReadHomePageUtils.getGroupId(oGroup) || nNewIndex < 0) {
1077
1071
  return oDeferred.reject("Unable to move groups - invalid parameters").promise();
1078
1072
  }
1079
1073
 
1080
- sGenericErrorMessage = "Failed to move group with id '" + oGroup.identification.id + "'. ";
1074
+ const sGenericErrorMessage = `Failed to move group with id '${oGroup.identification.id}'. `;
1081
1075
  // move group inside the site object
1082
1076
  oCdmSiteService.getSite()
1083
- .done(function (oSite) {
1084
- var aGroupsOrder = oReadHomePageUtils.getGroupIdsFromSite(oSite),
1085
- sGroupId = oReadHomePageUtils.getGroupId(oGroup);
1077
+ .done((oSite) => {
1078
+ const aGroupsOrder = oReadHomePageUtils.getGroupIdsFromSite(oSite);
1079
+ const sGroupId = oReadHomePageUtils.getGroupId(oGroup);
1086
1080
 
1087
1081
  if (!aGroupsOrder) {
1088
1082
  return oDeferred.reject("groupsOrder not found - abort operation of adding a group.");
@@ -1091,7 +1085,7 @@ sap.ui.define([
1091
1085
  }
1092
1086
 
1093
1087
  // move group inside the groupsOrder array
1094
- aGroupsOrderAfterMove = oUshellUtils.moveElementInsideOfArray(aGroupsOrder, aGroupsOrder.indexOf(sGroupId), nNewIndex);
1088
+ const aGroupsOrderAfterMove = oUshellUtils.moveElementInsideOfArray(aGroupsOrder, aGroupsOrder.indexOf(sGroupId), nNewIndex);
1095
1089
 
1096
1090
  if (!aGroupsOrderAfterMove) {
1097
1091
  return oDeferred.reject("invalid move group operation - abort.");
@@ -1101,15 +1095,15 @@ sap.ui.define([
1101
1095
 
1102
1096
  // store personalization
1103
1097
  oCdmSiteService.save()
1104
- .done(function () {
1098
+ .done(() => {
1105
1099
  oDeferred.resolve();
1106
1100
  })
1107
- .fail(function (sErrorMsg) {
1101
+ .fail((sErrorMsg) => {
1108
1102
  oDeferred.reject(sErrorMsg);
1109
1103
  });
1110
1104
  return undefined;
1111
1105
  })
1112
- .fail(function (sError) {
1106
+ .fail((sError) => {
1113
1107
  oDeferred.reject(sGenericErrorMessage + sError);
1114
1108
  });
1115
1109
  return oDeferred.promise();
@@ -1125,35 +1119,33 @@ sap.ui.define([
1125
1119
  * In case of failure, the fail handler will be called with a respective error message.
1126
1120
  */
1127
1121
  this.removeGroup = function (oGroup) {
1128
- var oDeferred = new jQuery.Deferred(),
1129
- oCdmSiteService = this.oCDMService,
1130
- sGenericErrorMessage,
1131
- sGroupId;
1122
+ const oDeferred = new jQuery.Deferred();
1123
+ const oCdmSiteService = this.oCDMService;
1132
1124
 
1133
1125
  if (typeof oGroup !== "object") {
1134
1126
  return oDeferred.reject("invalid group parameter").promise();
1135
1127
  }
1136
- sGroupId = oReadHomePageUtils.getGroupId(oGroup);
1128
+ const sGroupId = oReadHomePageUtils.getGroupId(oGroup);
1137
1129
  if (!sGroupId) {
1138
1130
  return oDeferred.reject("group without id given").promise();
1139
1131
  }
1140
1132
 
1141
- sGenericErrorMessage = "Failed to remove group with id '" + sGroupId + "'. ";
1133
+ const sGenericErrorMessage = `Failed to remove group with id '${sGroupId}'. `;
1142
1134
 
1143
1135
  // remove group from site object
1144
1136
  oCdmSiteService.getSite()
1145
- .done(function (oSite) {
1137
+ .done((oSite) => {
1146
1138
  oModifyHomePageUtils.removeGroupFromSite(oSite, oGroup);
1147
1139
 
1148
1140
  oCdmSiteService.save()
1149
- .done(function () {
1141
+ .done(() => {
1150
1142
  oDeferred.resolve();
1151
1143
  })
1152
- .fail(function (sErrorMsg) {
1144
+ .fail((sErrorMsg) => {
1153
1145
  oDeferred.reject(sErrorMsg);
1154
1146
  });
1155
1147
  })
1156
- .fail(function (sError) {
1148
+ .fail((sError) => {
1157
1149
  oDeferred.reject(sGenericErrorMessage + sError);
1158
1150
  });
1159
1151
 
@@ -1172,24 +1164,24 @@ sap.ui.define([
1172
1164
  * and the set of groups.
1173
1165
  */
1174
1166
  this.resetGroup = function (oGroup) {
1175
- var oDeferred = new jQuery.Deferred(),
1176
- oCdmSiteService = this.oCDMService,
1177
- aSiteGroupsBackup = [],
1178
- that = this,
1179
- sGenericErrorMessage,
1180
- sGroupId;
1167
+ const oDeferred = new jQuery.Deferred();
1168
+ const oCdmSiteService = this.oCDMService;
1169
+ const aSiteGroupsBackup = [];
1170
+ const that = this;
1171
+ let sGenericErrorMessage;
1172
+ let sGroupId;
1181
1173
 
1182
1174
  if (typeof oGroup === "object" && oReadHomePageUtils.getGroupId(oGroup)) {
1183
1175
  sGroupId = oReadHomePageUtils.getGroupId(oGroup);
1184
- sGenericErrorMessage = "Failed to reset group with id '" + sGroupId + "'. ";
1176
+ sGenericErrorMessage = `Failed to reset group with id '${sGroupId}'. `;
1185
1177
 
1186
1178
  oCdmSiteService.getSite()
1187
- .done(function (oSite) {
1179
+ .done((oSite) => {
1188
1180
  deepExtend(aSiteGroupsBackup, oReadHomePageUtils.getGroupsArrayFromSite(oSite));
1189
1181
 
1190
1182
  if (that.isGroupRemovable(oGroup) === false) {
1191
1183
  oCdmSiteService.getGroupFromOriginalSite(sGroupId)
1192
- .done(function (oGroupFromOriginalSite) {
1184
+ .done((oGroupFromOriginalSite) => {
1193
1185
  // overwrite respective group in site with the one returned by the original site
1194
1186
  if (typeof oSite === "object" && oReadHomePageUtils.getGroupFromSite(oSite, sGroupId)) {
1195
1187
  oModifyHomePageUtils.overwriteGroup(oSite, oGroupFromOriginalSite, sGroupId);
@@ -1197,21 +1189,21 @@ sap.ui.define([
1197
1189
 
1198
1190
  // persist personalization
1199
1191
  oCdmSiteService.save()
1200
- .done(function () {
1192
+ .done(() => {
1201
1193
  oDeferred.resolve(oGroupFromOriginalSite);
1202
1194
  })
1203
- .fail(function (sErrorMsg1) {
1204
- oDeferred.reject("Group could not be reset - " + sErrorMsg1, aSiteGroupsBackup);
1195
+ .fail((sErrorMsg1) => {
1196
+ oDeferred.reject(`Group could not be reset - ${sErrorMsg1}`, aSiteGroupsBackup);
1205
1197
  });
1206
1198
  })
1207
- .fail(function (sErrorMsg) {
1208
- oDeferred.reject("Group could not be reset - " + sErrorMsg, aSiteGroupsBackup);
1199
+ .fail((sErrorMsg) => {
1200
+ oDeferred.reject(`Group could not be reset - ${sErrorMsg}`, aSiteGroupsBackup);
1209
1201
  });
1210
1202
  } else {
1211
1203
  oDeferred.reject("Group could not be reset as it was created by the user", aSiteGroupsBackup);
1212
1204
  }
1213
1205
  })
1214
- .fail(function (sError) {
1206
+ .fail((sError) => {
1215
1207
  // reject with the original groups cannot be done in this case as
1216
1208
  // loading of site failed
1217
1209
  oDeferred.reject(sGenericErrorMessage + sError, []);
@@ -1343,9 +1335,8 @@ sap.ui.define([
1343
1335
  */
1344
1336
  this.getTileIndicatorDataSource = function (oTile) {
1345
1337
  // TODO works in all cases? e.g. for tiles added via addTile?
1346
- var oResolvedTile = this._mResolvedTiles[oTile.id],
1347
- oResult = {},
1348
- oResolutionResult;
1338
+ const oResolvedTile = this._mResolvedTiles[oTile.id];
1339
+ const oResult = {};
1349
1340
 
1350
1341
  // Reuse explicit information set by the user via bookmark service
1351
1342
  if (oTile.indicatorDataSource) {
@@ -1362,19 +1353,19 @@ sap.ui.define([
1362
1353
  }
1363
1354
 
1364
1355
  // Respond with ...
1365
- oResolutionResult = oResolvedTile.tileResolutionResult;
1356
+ const oResolutionResult = oResolvedTile.tileResolutionResult;
1366
1357
  if (oResolutionResult.indicatorDataSource) {
1367
1358
  // ... indicator data source
1368
1359
  oResult.indicatorDataSource = deepExtend({}, oResolutionResult.indicatorDataSource);
1369
1360
 
1370
1361
  // ... and related data source (if given)
1371
1362
  if (oResolutionResult.indicatorDataSource.hasOwnProperty("dataSource")) {
1372
- var sDataSourceName = oResolutionResult.indicatorDataSource.dataSource,
1373
- oDataSources = oResolutionResult.dataSources;
1363
+ const sDataSourceName = oResolutionResult.indicatorDataSource.dataSource;
1364
+ const oDataSources = oResolutionResult.dataSources;
1374
1365
  if (oDataSources && oDataSources.hasOwnProperty(sDataSourceName)) {
1375
1366
  oResult.dataSource = deepExtend({}, oDataSources[sDataSourceName]);
1376
1367
  } else {
1377
- Log.warning("datasource referenced but not found for tile: " + oResolvedTile.tileIntent);
1368
+ Log.warning(`datasource referenced but not found for tile: ${oResolvedTile.tileIntent}`);
1378
1369
  }
1379
1370
  }
1380
1371
 
@@ -1382,10 +1373,10 @@ sap.ui.define([
1382
1373
  // bust as the tile is not aware of the (applicaiton's) component URL, the mentioned paths need to be adopted.
1383
1374
  // BCP: 1880246066
1384
1375
  if (oUshellUtils.getMember(oResolutionResult, "runtimeInformation.componentProperties.url")) {
1385
- var sPathIndicatorDataSource = oUshellUtils.getMember(oResult, "indicatorDataSource.path");
1386
- var sUriDataSource = oUshellUtils.getMember(oResult, "dataSource.uri");
1387
- var sUrlComponent = oUshellUtils.getMember(oResolutionResult, "runtimeInformation.componentProperties.url");
1388
- var oTransformed =
1376
+ const sPathIndicatorDataSource = oUshellUtils.getMember(oResult, "indicatorDataSource.path");
1377
+ const sUriDataSource = oUshellUtils.getMember(oResult, "dataSource.uri");
1378
+ const sUrlComponent = oUshellUtils.getMember(oResolutionResult, "runtimeInformation.componentProperties.url");
1379
+ const oTransformed =
1389
1380
  fnUriTransform(sPathIndicatorDataSource, sUriDataSource, sUrlComponent, this.getWindowLocationHref());
1390
1381
 
1391
1382
  if (!oTransformed.error) {
@@ -1517,10 +1508,10 @@ sap.ui.define([
1517
1508
  * String could be empty.
1518
1509
  */
1519
1510
  this.getTileTarget = function (oTile) {
1520
- var oResolutionResult,
1521
- sTileId = oReadHomePageUtils.getTileId(oTile),
1522
- oResolvedTile = this._mResolvedTiles[sTileId],
1523
- sTargetUrl;
1511
+ let oResolutionResult;
1512
+ const sTileId = oReadHomePageUtils.getTileId(oTile);
1513
+ const oResolvedTile = this._mResolvedTiles[sTileId];
1514
+ let sTargetUrl;
1524
1515
 
1525
1516
  if (oTile.target && oTile.target.url) {
1526
1517
  // this seems to be a URL bookmark tile
@@ -1546,7 +1537,7 @@ sap.ui.define([
1546
1537
  }
1547
1538
 
1548
1539
  Log.warning(
1549
- "Could not find a target for Tile with id '" + sTileId + "'",
1540
+ `Could not find a target for Tile with id '${sTileId}'`,
1550
1541
  "sap.ushell.adapters.cdm.LaunchPageAdapter"
1551
1542
  );
1552
1543
  return "";
@@ -1613,7 +1604,7 @@ sap.ui.define([
1613
1604
  * Tile object
1614
1605
  */
1615
1606
  this.refreshTile = function (oTile) {
1616
- var oResolvedTile = this._mResolvedTiles[oTile.id];
1607
+ const oResolvedTile = this._mResolvedTiles[oTile.id];
1617
1608
 
1618
1609
  if (oResolvedTile) {
1619
1610
  if (oResolvedTile.tileComponent) {
@@ -1650,7 +1641,7 @@ sap.ui.define([
1650
1641
  * New visibility
1651
1642
  */
1652
1643
  this.setTileVisible = function (oTile, bNewVisible) {
1653
- var oResolvedTile = this._mResolvedTiles[oTile.id];
1644
+ const oResolvedTile = this._mResolvedTiles[oTile.id];
1654
1645
 
1655
1646
  if (oResolvedTile) {
1656
1647
  if (oResolvedTile.tileComponent) {
@@ -1681,12 +1672,12 @@ sap.ui.define([
1681
1672
  * to the fail handler which will be called in this case.
1682
1673
  */
1683
1674
  this.getTileView = function (oGroupTile) {
1684
- var that = this;
1685
- return new jQuery.Deferred(function (oDeferred) {
1686
- return that._getTileView(oGroupTile, false).then(function (oTileUI) {
1675
+ const that = this;
1676
+ return new jQuery.Deferred((oDeferred) => {
1677
+ return that._getTileView(oGroupTile, false).then((oTileUI) => {
1687
1678
  oDeferred.resolve(oTileUI);
1688
- }, function (sReason) {
1689
- var sErrorMessage = "Tile with ID '" + oGroupTile.id + "' could not be initialized" + (sReason ? ":\n" + sReason : ".");
1679
+ }, (sReason) => {
1680
+ const sErrorMessage = `Tile with ID '${oGroupTile.id}' could not be initialized${sReason ? `:\n${sReason}` : "."}`;
1690
1681
 
1691
1682
  Log.error(sErrorMessage, null, oGroupTile.tileType);
1692
1683
  oDeferred.reject(sErrorMessage);
@@ -1714,12 +1705,11 @@ sap.ui.define([
1714
1705
  * @deprecated since 1.99. Please use {@link #_getTileUiComponentContainer} instead.
1715
1706
  */
1716
1707
  this._getTileUiComponentContainerSync = function (oTile, oResolvedTile, bIsCatalogTile) {
1717
- var that = this,
1718
- oResolutionResult,
1719
- oTileComponentData,
1720
- sNavigationMode,
1721
- oTileComponentInstance,
1722
- oConfig = {};
1708
+ const that = this;
1709
+ let oTileComponentData;
1710
+ let sNavigationMode;
1711
+ let oTileComponentInstance;
1712
+ let oConfig = {};
1723
1713
 
1724
1714
  // should only be called after tile has been resolved
1725
1715
  if (bIsCatalogTile === true) {
@@ -1728,7 +1718,7 @@ sap.ui.define([
1728
1718
  oTileComponentData = that._createTileComponentData(oTile, false, oResolvedTile);
1729
1719
  }
1730
1720
 
1731
- oResolutionResult = oResolvedTile.tileResolutionResult;
1721
+ const oResolutionResult = oResolvedTile.tileResolutionResult;
1732
1722
 
1733
1723
  if (oResolvedTile.isLink) {
1734
1724
  sNavigationMode = oResolutionResult.navigationMode;
@@ -1771,13 +1761,12 @@ sap.ui.define([
1771
1761
  if (oConfig.name) {
1772
1762
  oConfig.async = false; // otherwise sap.ui.component will return a Promise in some cases
1773
1763
 
1774
- var oCompContainer;
1775
1764
  try {
1776
1765
  oTileComponentInstance = sap.ui.component(oConfig); // LEGACY API (deprecated)
1777
1766
  } catch (oError) {
1778
1767
  Log.error(
1779
- oError.message + "\n-- An error occurred while instantiating "
1780
- + "the tile component for " + oConfig.name,
1768
+ `${oError.message}\n-- An error occurred while instantiating `
1769
+ + `the tile component for ${oConfig.name}`,
1781
1770
  oError.stack ? oError.stack : "",
1782
1771
  "sap.ushell.adapters.cdm.LaunchPageAdapter"
1783
1772
  );
@@ -1785,7 +1774,7 @@ sap.ui.define([
1785
1774
  return null;
1786
1775
  }
1787
1776
 
1788
- oCompContainer = new ComponentContainer({
1777
+ const oCompContainer = new ComponentContainer({
1789
1778
  component: oTileComponentInstance,
1790
1779
  height: "100%"
1791
1780
  });
@@ -1819,14 +1808,12 @@ sap.ui.define([
1819
1808
  * @private
1820
1809
  */
1821
1810
  this._getTileUiComponentContainer = function (oTile, oResolvedTile, bIsCatalogTile) {
1822
- var that = this,
1823
- oResolutionResult,
1824
- oTileComponentData,
1825
- sNavigationMode,
1826
- oTileComponentInstance,
1827
- oCompContainer,
1828
- bIsCustomTile,
1829
- oDeferred = new jQuery.Deferred();
1811
+ const that = this;
1812
+ let oTileComponentData;
1813
+ let sNavigationMode;
1814
+ let oTileComponentInstance;
1815
+ let oCompContainer;
1816
+ const oDeferred = new jQuery.Deferred();
1830
1817
 
1831
1818
  // should only be called after tile has been resolved
1832
1819
  if (bIsCatalogTile === true) {
@@ -1835,7 +1822,7 @@ sap.ui.define([
1835
1822
  oTileComponentData = that._createTileComponentData(oTile, false, oResolvedTile);
1836
1823
  }
1837
1824
 
1838
- oResolutionResult = oResolvedTile.tileResolutionResult;
1825
+ const oResolutionResult = oResolvedTile.tileResolutionResult;
1839
1826
 
1840
1827
  if (oResolvedTile.isLink) {
1841
1828
  sNavigationMode = oResolutionResult.navigationMode;
@@ -1844,14 +1831,14 @@ sap.ui.define([
1844
1831
  return oDeferred.promise();
1845
1832
  }
1846
1833
 
1847
- var oTileComponentProperties = this._createTileComponentProperties(
1834
+ const oTileComponentProperties = this._createTileComponentProperties(
1848
1835
  oTileComponentData,
1849
1836
  oResolutionResult.tileComponentLoadInfo
1850
1837
  );
1851
1838
 
1852
1839
  if (!oTileComponentProperties.name) {
1853
1840
  return oDeferred
1854
- .reject("Cannot find name of tile component for tile with id: '" + oTile.id + "'")
1841
+ .reject(`Cannot find name of tile component for tile with id: '${oTile.id}'`)
1855
1842
  .promise();
1856
1843
  }
1857
1844
 
@@ -1861,9 +1848,9 @@ sap.ui.define([
1861
1848
  oTileComponentData.properties = oTileComponentData.properties || {};
1862
1849
  oTileComponentData.properties.manifest = oTileComponentProperties.manifest;
1863
1850
  }
1864
- bIsCustomTile = this.isCustomTile(oTileComponentProperties.name);
1865
- var createCompContainer = function (oAppProperties) {
1866
- var oResolvedTile;
1851
+ const bIsCustomTile = this.isCustomTile(oTileComponentProperties.name);
1852
+ function createCompContainer (oAppProperties) {
1853
+ let oResolvedTile;
1867
1854
  oTileComponentInstance = oAppProperties.componentHandle.getInstance();
1868
1855
  oCompContainer = new ComponentContainer({
1869
1856
  component: oTileComponentInstance,
@@ -1878,8 +1865,8 @@ sap.ui.define([
1878
1865
  }
1879
1866
  }
1880
1867
  return oCompContainer;
1881
- };
1882
- var _customTileCreateCompContainer = function (oComponentLoader) {
1868
+ }
1869
+ function _customTileCreateCompContainer (oComponentLoader) {
1883
1870
  const oDeferred = new jQuery.Deferred();
1884
1871
  oComponentLoader.createComponent({
1885
1872
  loadCoreExt: bIsCustomTile, // custom tiles may need modules from core-ext-light
@@ -1891,30 +1878,30 @@ sap.ui.define([
1891
1878
  applicationDependencies: oTileComponentProperties,
1892
1879
  ui5ComponentName: oTileComponentProperties.name
1893
1880
  },
1894
- {}, // don't generate an id
1895
- // TODO: clarify about having stable IDs!
1896
- [], // instantiate directly,
1897
- UI5ComponentType.Visualization
1881
+ {}, // don't generate an id
1882
+ // TODO: clarify about having stable IDs!
1883
+ [], // instantiate directly,
1884
+ UI5ComponentType.Visualization
1898
1885
  )
1899
1886
  .then((oAppProperties) => {
1900
1887
  const oComponentContainer = createCompContainer(oAppProperties);
1901
1888
  oDeferred.resolve(oComponentContainer);
1902
1889
  })
1903
- .catch(function (oError) {
1890
+ .catch((oError) => {
1904
1891
  oDeferred.reject(oError);
1905
1892
  });
1906
1893
  return oDeferred.promise();
1907
- };
1894
+ }
1908
1895
 
1909
- var _standardTileCreateCompContainer = function () {
1910
- var oComponentProperties = {
1896
+ function _standardTileCreateCompContainer () {
1897
+ const oComponentProperties = {
1911
1898
  componentData: oTileComponentData,
1912
1899
  url: oTileComponentProperties.url,
1913
1900
  name: oTileComponentProperties.name,
1914
1901
  async: false
1915
1902
  };
1916
1903
  oTileComponentInstance = sap.ui.component(oComponentProperties);
1917
- var oAppProperties = {
1904
+ const oAppProperties = {
1918
1905
  componentHandle: {
1919
1906
  getInstance: function () {
1920
1907
  return oTileComponentInstance;
@@ -1922,23 +1909,23 @@ sap.ui.define([
1922
1909
  }
1923
1910
  };
1924
1911
  return createCompContainer(oAppProperties);
1925
- };
1912
+ }
1926
1913
 
1927
1914
  if (bIsCustomTile) {
1928
1915
  oEventHub.once("CoreResourcesComplementLoaded")
1929
- .do(function () {
1930
- Container.getServiceAsync("Ui5ComponentLoader").then(function (oComponentLoader) {
1916
+ .do(() => {
1917
+ Container.getServiceAsync("Ui5ComponentLoader").then((oComponentLoader) => {
1931
1918
  _customTileCreateCompContainer(oComponentLoader)
1932
- .done(function (oCompContainer) {
1919
+ .done((oCompContainer) => {
1933
1920
  oDeferred.resolve(oCompContainer);
1934
1921
  })
1935
- .fail(function (oError) {
1922
+ .fail((oError) => {
1936
1923
  oDeferred.reject(oError);
1937
1924
  });
1938
1925
  });
1939
1926
  });
1940
1927
  } else {
1941
- var oStandardCompContainer = _standardTileCreateCompContainer();
1928
+ const oStandardCompContainer = _standardTileCreateCompContainer();
1942
1929
  oDeferred.resolve(oStandardCompContainer);
1943
1930
  }
1944
1931
 
@@ -1946,7 +1933,7 @@ sap.ui.define([
1946
1933
  };
1947
1934
 
1948
1935
  this._createTileComponentProperties = function (oTileComponentData, vTileComponentLoadInfo) {
1949
- var oTileComponentProperties = {};
1936
+ let oTileComponentProperties = {};
1950
1937
  if (typeof vTileComponentLoadInfo === "string") {
1951
1938
  // This is a Static or Dynamic App Launcher
1952
1939
  // Consider also the indicatorDataSource from oTile, even if none is set in
@@ -1991,22 +1978,21 @@ sap.ui.define([
1991
1978
  * @private
1992
1979
  */
1993
1980
  this._getTileView = function (oGroupTile) {
1994
- var oResolvedTile,
1995
- sErrorMessage,
1996
- oDeferred = new jQuery.Deferred();
1981
+ let sErrorMessage;
1982
+ const oDeferred = new jQuery.Deferred();
1997
1983
 
1998
1984
  if (typeof oGroupTile !== "object" || !oGroupTile.id) {
1999
- sErrorMessage = "Invalid input parameter passed to _getTileView: " + oGroupTile;
1985
+ sErrorMessage = `Invalid input parameter passed to _getTileView: ${oGroupTile}`;
2000
1986
  Log.error(sErrorMessage);
2001
1987
  return oDeferred.reject(sErrorMessage).promise();
2002
1988
  }
2003
1989
 
2004
- oResolvedTile = this._mResolvedTiles[oGroupTile.id];
1990
+ const oResolvedTile = this._mResolvedTiles[oGroupTile.id];
2005
1991
  if (oResolvedTile) {
2006
1992
  return this._getTileUiComponentContainer(oGroupTile, oResolvedTile, false);
2007
1993
  }
2008
1994
 
2009
- sErrorMessage = "No resolved tile found for tile ID: " + oGroupTile.id;
1995
+ sErrorMessage = `No resolved tile found for tile ID: ${oGroupTile.id}`;
2010
1996
  Log.error(sErrorMessage);
2011
1997
  return oDeferred.reject(sErrorMessage).promise();
2012
1998
  };
@@ -2045,10 +2031,10 @@ sap.ui.define([
2045
2031
  * @private
2046
2032
  */
2047
2033
  this._getCatalogTileViewControl = function (oCatalogTile) {
2048
- var oDeferred = new jQuery.Deferred();
2034
+ const oDeferred = new jQuery.Deferred();
2049
2035
 
2050
2036
  if (typeof oCatalogTile !== "object") {
2051
- var sErrorMessage = "Invalid input parameter passed to _getCatalogTileView: " + oCatalogTile;
2037
+ const sErrorMessage = `Invalid input parameter passed to _getCatalogTileView: ${oCatalogTile}`;
2052
2038
  Log.error(sErrorMessage);
2053
2039
  return oDeferred.reject(sErrorMessage).promise();
2054
2040
  }
@@ -2070,16 +2056,16 @@ sap.ui.define([
2070
2056
  * returns data of tile component
2071
2057
  */
2072
2058
  this._createTileComponentData = function (oTile, bIsCatalogTile, oResolutionResult) {
2073
- var sTitle = bIsCatalogTile ? this.getCatalogTileTitle(oTile) : this.getTileTitle(oTile),
2074
- sSubTitle = bIsCatalogTile ? this.getCatalogTilePreviewSubtitle(oTile) : this.getTileSubtitle(oTile),
2075
- sIcon = bIsCatalogTile ? this.getCatalogTilePreviewIcon(oTile) : this.getTileIcon(oTile),
2076
- sInfo = bIsCatalogTile ? this.getCatalogTilePreviewInfo(oTile) : this.getTileInfo(oTile),
2077
- sTarget = bIsCatalogTile ? this.getCatalogTileTargetURL(oTile) : this.getTileTarget(oTile),
2078
- oIndicatorDataSource = this.getTileIndicatorDataSource(oTile),
2079
- oComponentData = {
2080
- properties: {},
2081
- startupParameters: {}
2082
- };
2059
+ const sTitle = bIsCatalogTile ? this.getCatalogTileTitle(oTile) : this.getTileTitle(oTile);
2060
+ const sSubTitle = bIsCatalogTile ? this.getCatalogTilePreviewSubtitle(oTile) : this.getTileSubtitle(oTile);
2061
+ const sIcon = bIsCatalogTile ? this.getCatalogTilePreviewIcon(oTile) : this.getTileIcon(oTile);
2062
+ const sInfo = bIsCatalogTile ? this.getCatalogTilePreviewInfo(oTile) : this.getTileInfo(oTile);
2063
+ const sTarget = bIsCatalogTile ? this.getCatalogTileTargetURL(oTile) : this.getTileTarget(oTile);
2064
+ const oIndicatorDataSource = this.getTileIndicatorDataSource(oTile);
2065
+ const oComponentData = {
2066
+ properties: {},
2067
+ startupParameters: {}
2068
+ };
2083
2069
 
2084
2070
  // Check whether tile is a custom tile
2085
2071
  if (oResolutionResult.tileResolutionResult.isCustomTile === true
@@ -2139,12 +2125,11 @@ sap.ui.define([
2139
2125
  * @private
2140
2126
  */
2141
2127
  this._createLinkInstance = function (oTile, bIsCatalogTile, sNavigationMode, fnGenericTile, oResources) {
2142
- var sTileTitle,
2143
- linkTileControl,
2144
- sTranslatedNavMode,
2145
- sTileSubTitle = this.getTileSubtitle(oTile);
2128
+ let sTileTitle;
2129
+ let sTranslatedNavMode;
2130
+ const sTileSubTitle = this.getTileSubtitle(oTile);
2146
2131
 
2147
- var GenericTile = fnGenericTile;
2132
+ const GenericTile = fnGenericTile;
2148
2133
 
2149
2134
  // should only be called after tile has been resolved
2150
2135
  if (bIsCatalogTile === true) {
@@ -2154,27 +2139,27 @@ sap.ui.define([
2154
2139
  }
2155
2140
 
2156
2141
  // By using the LineMode, the GenericTile is displayed as a Link
2157
- linkTileControl = new GenericTile({
2142
+ const linkTileControl = new GenericTile({
2158
2143
  mode: oGenericTileMode.LineMode,
2159
2144
  subheader: sTileSubTitle,
2160
2145
  header: sTileTitle,
2161
2146
  url: WindowUtils.getLeanURL(this.getTileTarget(oTile)),
2162
- //TODO: The below code is for POC only, should be removed once UI5 provide action buttons for line mode
2147
+ // TODO: The below code is for POC only, should be removed once UI5 provide action buttons for line mode
2163
2148
  press: function (oEvent) {
2164
2149
  this._genericTilePressHandler(oTile, oEvent);
2165
2150
  }.bind(this)
2166
2151
  });
2167
2152
  if (sNavigationMode) {
2168
- sTranslatedNavMode = oResources.i18n.getText(sNavigationMode + "NavigationMode");
2169
- //According to ACC-257 aria-label should start with the navigation mode, then the tile content
2170
- linkTileControl.setAriaLabel(sTranslatedNavMode + " " + sTileTitle + " " + sTileSubTitle);
2153
+ sTranslatedNavMode = oResources.i18n.getText(`${sNavigationMode}NavigationMode`);
2154
+ // According to ACC-257 aria-label should start with the navigation mode, then the tile content
2155
+ linkTileControl.setAriaLabel(`${sTranslatedNavMode} ${sTileTitle} ${sTileSubTitle}`);
2171
2156
  }
2172
2157
  this._mResolvedTiles[oTile.id].linkTileControl = linkTileControl;
2173
2158
  return linkTileControl;
2174
2159
  };
2175
2160
 
2176
2161
  this._genericTilePressHandler = function (oTile, oEvent) {
2177
- var sTargetURL;
2162
+ let sTargetURL;
2178
2163
 
2179
2164
  if (oEvent.getSource().getScope && oEvent.getSource().getScope() === "Display") {
2180
2165
  sTargetURL = this.getTileTarget(oTile);
@@ -2195,36 +2180,131 @@ sap.ui.define([
2195
2180
  }
2196
2181
  };
2197
2182
 
2183
+ function createTileParametersFromIntentParams (oIntentParams) {
2184
+ return Object.keys(oIntentParams).map((sKey) => {
2185
+ const sValue = oIntentParams[sKey] && oIntentParams[sKey][0];
2186
+
2187
+ return {
2188
+ name: sKey,
2189
+ value: sValue || "" // "sValue" might be undefined
2190
+ };
2191
+ });
2192
+ }
2193
+
2194
+ function createNewTargetFromIntent (oIntent) {
2195
+ const oTarget = {
2196
+ semanticObject: oIntent.semanticObject,
2197
+ action: oIntent.action,
2198
+ parameters: createTileParametersFromIntentParams(oIntent.params)
2199
+ };
2200
+
2201
+ if (oIntent.appSpecificRoute) {
2202
+ // do not loose the inner-app hash (e.g. &/ShoppingCart(12345))
2203
+ // BCP 1670533333
2204
+ oTarget.appSpecificRoute = oIntent.appSpecificRoute;
2205
+ }
2206
+
2207
+ return oTarget;
2208
+ }
2209
+
2198
2210
  this._addTileToSite = function (oPersonalizedSite, oGroup, oNewTile, oCdmSiteService) {
2199
2211
  // TODO JSDoc
2200
2212
  // TODO consider to change the interface so it is not needed to pass oNewTile
2201
2213
  // which should be created inside this method
2202
- var that = this,
2203
- oDeferred = new jQuery.Deferred(),
2204
- oIntent = urlParsing.parseShellHash(oNewTile.properties.targetURL),
2205
- oTileToBeAdded = {
2206
- id: that.getTileId(oNewTile),
2207
- target: {
2208
- semanticObject: oIntent.semanticObject,
2209
- action: oIntent.action,
2210
- parameters: createTileParametersFromIntentParams(oIntent.params)
2211
- }
2212
- };
2214
+ const that = this;
2215
+ const oDeferred = new jQuery.Deferred();
2216
+ const oIntent = urlParsing.parseShellHash(oNewTile.properties.targetURL);
2217
+ const oTileToBeAdded = {
2218
+ id: that.getTileId(oNewTile),
2219
+ target: {
2220
+ semanticObject: oIntent.semanticObject,
2221
+ action: oIntent.action,
2222
+ parameters: createTileParametersFromIntentParams(oIntent.params)
2223
+ }
2224
+ };
2213
2225
 
2214
2226
  oPersonalizedSite.groups[oGroup.identification.id].payload.tiles.push(oTileToBeAdded);
2215
2227
 
2216
- //store personalization
2228
+ // store personalization
2217
2229
  oCdmSiteService.save()
2218
- .done(function () {
2230
+ .done(() => {
2219
2231
  oDeferred.resolve(oTileToBeAdded);
2220
2232
  })
2221
- .fail(function (sMessage) {
2233
+ .fail((sMessage) => {
2222
2234
  oDeferred.reject(sMessage);
2223
2235
  });
2224
2236
 
2225
2237
  return oDeferred.promise();
2226
2238
  };
2227
2239
 
2240
+ /**
2241
+ * Updates the properties of a bookmark tile during its composition.
2242
+ * @param {object} oTile JSON Object that holds the properties of a bookmark tile.
2243
+ * @param {object} oParameters Properties to merge into the bookmark tile
2244
+ * @param {object} oTarget The navigation target as a JSON object.
2245
+ *
2246
+ * @private
2247
+ */
2248
+ function updateTileComposition (oTile, oParameters, oTarget) {
2249
+ // Avoid modifying callers reference.
2250
+ oParameters = deepExtend({}, oParameters);
2251
+
2252
+ if (oTarget) {
2253
+ oTile.target = oTarget;
2254
+ }
2255
+
2256
+ if (oParameters.title || oParameters.title === "") {
2257
+ oTile.title = oParameters.title;
2258
+ }
2259
+
2260
+ if (oParameters.icon || oParameters.icon === "") {
2261
+ oTile.icon = oParameters.icon;
2262
+ }
2263
+
2264
+ if (oParameters.subtitle || oParameters.subtitle === "") {
2265
+ oTile.subTitle = oParameters.subtitle;
2266
+ }
2267
+ if (oParameters.info || oParameters.info === "") {
2268
+ oTile.info = oParameters.info;
2269
+ }
2270
+
2271
+ if (oParameters.dataSource) {
2272
+ oTile.dataSource = {};
2273
+ deepExtend(oTile.dataSource, oParameters.dataSource);
2274
+ }
2275
+
2276
+ if (oParameters.serviceUrl || oParameters.serviceUrl === "") {
2277
+ oTile.indicatorDataSource = {
2278
+ path: oParameters.serviceUrl
2279
+ };
2280
+ }
2281
+
2282
+ if (oTile.indicatorDataSource && (oParameters.serviceRefreshInterval || oParameters.serviceRefreshInterval === 0)) {
2283
+ oTile.indicatorDataSource.refresh
2284
+ = oParameters.serviceRefreshInterval;
2285
+ }
2286
+ }
2287
+
2288
+ function composeNewTile (oParameters, oTarget) {
2289
+ // TODO Collect all tile ids to pass them as an arry to
2290
+ // generateUniqueId
2291
+ const oTile = {
2292
+ id: oUshellUtils.generateUniqueId([])
2293
+ };
2294
+
2295
+ updateTileComposition(oTile, oParameters, oTarget);
2296
+
2297
+ return oTile;
2298
+ }
2299
+
2300
+ function composeNewBookmarkTile (oParameters, oTarget) {
2301
+ const oTile = composeNewTile(oParameters, oTarget);
2302
+
2303
+ oTile.isBookmark = true;
2304
+
2305
+ return oTile;
2306
+ }
2307
+
2228
2308
  /**
2229
2309
  * Adds a tile to the homepage. Furthermore the personalization will be
2230
2310
  * persisted for the end user.
@@ -2240,16 +2320,15 @@ sap.ui.define([
2240
2320
  * error message.
2241
2321
  */
2242
2322
  this.addTile = function (oCatalogTile, oGroup) {
2243
- var oDeferred = new jQuery.Deferred(),
2244
- sGenericErrorMessage,
2245
- oCdmSiteService = this.oCDMService,
2246
- oGroupTile;
2323
+ const oDeferred = new jQuery.Deferred();
2324
+ let sGenericErrorMessage;
2325
+ const oCdmSiteService = this.oCDMService;
2247
2326
 
2248
2327
  if (!oGroup) {
2249
2328
  oGroup = _oDefaultGroup;
2250
2329
  }
2251
2330
 
2252
- oGroupTile = composeNewTile();
2331
+ const oGroupTile = composeNewTile();
2253
2332
  oGroupTile.appId = oCatalogTile.tileResolutionResult.appId;
2254
2333
  // add new tile to list of resolved tiles
2255
2334
  this._mResolvedTiles[oGroupTile.id] = {
@@ -2258,22 +2337,22 @@ sap.ui.define([
2258
2337
  isLink: false
2259
2338
  };
2260
2339
  oCdmSiteService.getSite()
2261
- .done(function (oSite) {
2340
+ .done((oSite) => {
2262
2341
  // We should think about the reasons why it's not safe to
2263
2342
  // do the following, even though it's more succinct:
2264
2343
  // oGroup.payload.tiles.push(oTile);
2265
2344
  oSite.groups[oGroup.identification.id].payload.tiles.push(oGroupTile);
2266
2345
  oCdmSiteService.save()
2267
- .done(function () {
2346
+ .done(() => {
2268
2347
  oDeferred.resolve(oGroupTile);
2269
2348
  })
2270
- .fail(function (sReason) {
2349
+ .fail((sReason) => {
2271
2350
  oDeferred.reject(sReason);
2272
2351
  });
2273
2352
  })
2274
- .fail(function (sError) {
2275
- sGenericErrorMessage = "Failed to add tile with id '" + oGroupTile.id +
2276
- "' to group with id '" + oGroup.identification.id + "'. ";
2353
+ .fail((sError) => {
2354
+ sGenericErrorMessage = `Failed to add tile with id '${oGroupTile.id
2355
+ }' to group with id '${oGroup.identification.id}'. `;
2277
2356
  oDeferred.reject(sGenericErrorMessage + sError);
2278
2357
  });
2279
2358
 
@@ -2295,22 +2374,20 @@ sap.ui.define([
2295
2374
  * In case of failure, the fail handler will be called with a collection of existing groups.
2296
2375
  */
2297
2376
  this.removeTile = function (oGroup, oTile, iIndex) {
2298
- var oCdmSiteService = this.oCDMService,
2299
- sGenericErrorMessage,
2300
- oDeferred = new jQuery.Deferred(),
2301
- that = this;
2377
+ const oCdmSiteService = this.oCDMService;
2378
+ const oDeferred = new jQuery.Deferred();
2379
+ const that = this;
2302
2380
 
2303
2381
  if (!oGroup || typeof oGroup !== "object" || !oGroup.identification || !oGroup.identification.id ||
2304
2382
  !oTile || typeof oTile !== "object" || !oTile.id) {
2305
2383
  return oDeferred.reject({}, "Failed to remove tile. No valid input parameters passed to removeTile method.").promise();
2306
2384
  }
2307
2385
 
2308
- sGenericErrorMessage = "Failed to remove tile with id '" + oTile.id + "' from group with id '" + oGroup.identification.id + "'. ";
2386
+ const sGenericErrorMessage = `Failed to remove tile with id '${oTile.id}' from group with id '${oGroup.identification.id}'. `;
2309
2387
 
2310
2388
  oCdmSiteService.getSite()
2311
- .done(function (oSite) {
2312
- var oPayload,
2313
- sPayloadType;
2389
+ .done((oSite) => {
2390
+ let oPayload;
2314
2391
 
2315
2392
  // Succinctly convert iIndex to number
2316
2393
  iIndex = +iIndex;
@@ -2321,10 +2398,10 @@ sap.ui.define([
2321
2398
  oDeferred.reject(oSite.groups[oGroup.identification.id], sGenericErrorMessage);
2322
2399
  }
2323
2400
 
2324
- //according to the tile type set oPayload tile / links to be truncated.
2325
- sPayloadType = that.getTileType(oTile) === that.TileType.Link ? "links" : "tiles";
2401
+ // according to the tile type set oPayload tile / links to be truncated.
2402
+ const sPayloadType = that.getTileType(oTile) === that.TileType.Link ? "links" : "tiles";
2326
2403
 
2327
- //In case the target is a link convert the iTargetIndex to the index of links payload.
2404
+ // In case the target is a link convert the iTargetIndex to the index of links payload.
2328
2405
  if (that.getTileType(oTile) === that.TileType.Link) {
2329
2406
  iIndex -= oPayload.tiles.length;
2330
2407
  }
@@ -2333,21 +2410,21 @@ sap.ui.define([
2333
2410
  // remove element in group
2334
2411
  oPayload[sPayloadType].splice(iIndex, 1);
2335
2412
  } else {
2336
- oPayload[sPayloadType] = oPayload[sPayloadType].filter(function (oGroupElement) {
2413
+ oPayload[sPayloadType] = oPayload[sPayloadType].filter((oGroupElement) => {
2337
2414
  return oGroupElement.id !== oTile.id;
2338
2415
  });
2339
2416
  }
2340
2417
 
2341
2418
  oCdmSiteService.save()
2342
- .done(function () {
2419
+ .done(() => {
2343
2420
  oDeferred.resolve();
2344
2421
  })
2345
- .fail(function (sErrorMsg) {
2422
+ .fail((sErrorMsg) => {
2346
2423
  Log.error(sErrorMsg);
2347
2424
  oDeferred.reject(oSite.groups[oGroup.identification.id], sErrorMsg);
2348
2425
  });
2349
2426
  })
2350
- .fail(function (sError) {
2427
+ .fail((sError) => {
2351
2428
  // Reject an empty group object, as site with correct group data could not get accessed
2352
2429
  oDeferred.reject({}, sGenericErrorMessage + sError);
2353
2430
  });
@@ -2376,10 +2453,9 @@ sap.ui.define([
2376
2453
  * In case of failure, the fail handler will be called with a collection of existing groups.
2377
2454
  */
2378
2455
  this.moveTile = function (oTile, iSourceIndex, iTargetIndex, oSourceGroup, oTargetGroup, newTileType) {
2379
- var oDeferred = new jQuery.Deferred(),
2380
- oCdmSiteService = this.oCDMService,
2381
- that = this,
2382
- sGenericErrorMessage;
2456
+ const oDeferred = new jQuery.Deferred();
2457
+ const oCdmSiteService = this.oCDMService;
2458
+ const that = this;
2383
2459
 
2384
2460
  if (!oTile || isEmptyObject(oTile) ||
2385
2461
  iSourceIndex === undefined || iSourceIndex < 0 ||
@@ -2389,32 +2465,31 @@ sap.ui.define([
2389
2465
  return oDeferred.reject("Invalid input parameters").promise();
2390
2466
  }
2391
2467
 
2392
- sGenericErrorMessage = "Failed to move tile with id '" + oTile.id + "'. ";
2468
+ const sGenericErrorMessage = `Failed to move tile with id '${oTile.id}'. `;
2393
2469
 
2394
2470
  oCdmSiteService.getSite()
2395
- .done(function (oSite) {
2396
- var sTargetPayloadType,
2397
- oGroupPayload,
2398
- sOrigTileType = that.getTileType(oTile) === that.TileType.Link ? "links" : "tiles";
2471
+ .done((oSite) => {
2472
+ let oGroupPayload;
2473
+ const sOrigTileType = that.getTileType(oTile) === that.TileType.Link ? "links" : "tiles";
2399
2474
 
2400
- //if newTileType is not defined convert to the same type.
2475
+ // if newTileType is not defined convert to the same type.
2401
2476
  if (!newTileType) {
2402
2477
  newTileType = that._mResolvedTiles[oTile.id].isLink ? "link" : "tile";
2403
2478
  }
2404
2479
 
2405
- sTargetPayloadType = newTileType === "link" ? "links" : "tiles";
2480
+ const sTargetPayloadType = newTileType === "link" ? "links" : "tiles";
2406
2481
 
2407
2482
  // change the _mResolvedTiles tile type.
2408
2483
  if (sOrigTileType !== sTargetPayloadType && that._mResolvedTiles[oTile.id]) {
2409
2484
  that._mResolvedTiles[oTile.id].isLink = newTileType === "link"; // currently only bookmark tiles can be created
2410
2485
  }
2411
2486
 
2412
- //In case the target is a link convert the iTargetIndex to the index of links payload.
2487
+ // In case the target is a link convert the iTargetIndex to the index of links payload.
2413
2488
  if (sTargetPayloadType === "links") {
2414
2489
  iTargetIndex -= oSite.groups[oTargetGroup.identification.id].payload.tiles.length;
2415
2490
  }
2416
2491
 
2417
- //In case the source is a link convert the index to the index of links payload.
2492
+ // In case the source is a link convert the index to the index of links payload.
2418
2493
  if (sOrigTileType === "links") {
2419
2494
  iSourceIndex -= oSite.groups[oSourceGroup.identification.id].payload.tiles.length;
2420
2495
  }
@@ -2438,16 +2513,16 @@ sap.ui.define([
2438
2513
  }
2439
2514
 
2440
2515
  oCdmSiteService.save()
2441
- .done(function () {
2516
+ .done(() => {
2442
2517
  oDeferred.resolve(oTile);
2443
2518
  })
2444
- .fail(function (sError) {
2519
+ .fail((sError) => {
2445
2520
  Log.error(sGenericErrorMessage + sError);
2446
2521
  oDeferred.reject(sGenericErrorMessage + sError);
2447
2522
  });
2448
2523
  return undefined;
2449
2524
  })
2450
- .fail(function (sError) {
2525
+ .fail((sError) => {
2451
2526
  Log.error(sGenericErrorMessage + sError);
2452
2527
  oDeferred.reject(sGenericErrorMessage + sError);
2453
2528
  });
@@ -2487,23 +2562,23 @@ sap.ui.define([
2487
2562
  * the order with which the catalogs are returned.
2488
2563
  */
2489
2564
  this.getCatalogs = function () {
2490
- var that = this,
2491
- oDeferred = new jQuery.Deferred(),
2492
- aCatalogs = [];
2565
+ const that = this;
2566
+ const oDeferred = new jQuery.Deferred();
2567
+ const aCatalogs = [];
2493
2568
 
2494
2569
  function processCatalog (oCdmSite, sCatalogId, aCatalogs, oGetCatalogsDeferred) {
2495
- var oCatalog = oCdmSite.catalogs[sCatalogId];
2570
+ const oCatalog = oCdmSite.catalogs[sCatalogId];
2496
2571
  aCatalogs.push(oCatalog);
2497
2572
  oGetCatalogsDeferred.notify(oCatalog);
2498
2573
  }
2499
2574
 
2500
2575
  // setTimeout is required here. Otherwise the the oDeferred.notify() would
2501
2576
  // be a synchronous call, which would cause wrong behavior in some scenarios
2502
- Container.getServiceAsync("CommonDataModel").then(function (oCDMSiteService) {
2503
- oCDMSiteService.getSite().done(function (oSite) {
2577
+ Container.getServiceAsync("CommonDataModel").then((oCDMSiteService) => {
2578
+ oCDMSiteService.getSite().done((oSite) => {
2504
2579
  // catalogs from site should be loaded first as they require
2505
2580
  // loading of less resources
2506
- Object.keys(oSite.catalogs).forEach(function (sCatalogId) {
2581
+ Object.keys(oSite.catalogs).forEach((sCatalogId) => {
2507
2582
  processCatalog(oSite, sCatalogId, aCatalogs, oDeferred);
2508
2583
  });
2509
2584
  // In our tests we use indices to access specific
@@ -2534,23 +2609,22 @@ sap.ui.define([
2534
2609
  * @private
2535
2610
  */
2536
2611
  this._isStartableInbound = function (oInbound) {
2537
- var aNonStartableInbounds = [
2612
+ const aNonStartableInbounds = [
2538
2613
  "Shell-plugin",
2539
2614
  "Shell-bootConfig" // just in case
2540
- ],
2541
- bRes;
2615
+ ];
2542
2616
 
2543
2617
  if (!oInbound.semanticObject || !oInbound.action) {
2544
2618
  return false;
2545
2619
  }
2546
- if (aNonStartableInbounds.indexOf(oInbound.semanticObject + "-" + oInbound.action) > -1) {
2620
+ if (aNonStartableInbounds.indexOf(`${oInbound.semanticObject}-${oInbound.action}`) > -1) {
2547
2621
  // This is a special intent which is not startable
2548
2622
  return false;
2549
2623
  }
2550
2624
  if (!ObjectPath.get("signature.parameters", oInbound)) {
2551
2625
  return true;
2552
2626
  }
2553
- bRes = Object.keys(oInbound.signature.parameters).every(function (sParameter) {
2627
+ const bRes = Object.keys(oInbound.signature.parameters).every((sParameter) => {
2554
2628
  // there is a special modelling that an exported tile pointing to a URL
2555
2629
  // is matched by exactly this inbound with a plain filter.
2556
2630
  // The export models tiles in this way (Shell-startUrl), however, generically
@@ -2579,12 +2653,12 @@ sap.ui.define([
2579
2653
  * @private
2580
2654
  */
2581
2655
  this._toHashFromInbound = function (oInbound) {
2582
- var sConstructedHash = oUtilsCdm.toHashFromInbound(oInbound);
2656
+ const sConstructedHash = oUtilsCdm.toHashFromInbound(oInbound);
2583
2657
 
2584
2658
  if (!sConstructedHash) {
2585
2659
  return undefined;
2586
2660
  }
2587
- return "#" + sConstructedHash;
2661
+ return `#${sConstructedHash}`;
2588
2662
  };
2589
2663
 
2590
2664
  /**
@@ -2616,12 +2690,12 @@ sap.ui.define([
2616
2690
  * @private
2617
2691
  */
2618
2692
  this._toHashFromOutbound = function (oOutbound) {
2619
- var sConstructedHash = oUtilsCdm.toHashFromOutbound(oOutbound);
2693
+ const sConstructedHash = oUtilsCdm.toHashFromOutbound(oOutbound);
2620
2694
 
2621
2695
  if (!sConstructedHash) {
2622
2696
  return undefined;
2623
2697
  }
2624
- return "#" + sConstructedHash;
2698
+ return `#${sConstructedHash}`;
2625
2699
  };
2626
2700
 
2627
2701
  /**
@@ -2640,75 +2714,37 @@ sap.ui.define([
2640
2714
  return false;
2641
2715
  };
2642
2716
 
2643
- /**
2644
- * Delivers the catalog tiles for a given catalog
2645
- *
2646
- * @param {object} oCatalog
2647
- * Catalog
2648
- * @returns {jQuery.Promise}
2649
- * In case of success the done handler will be called with an array
2650
- * of catalog tiles.
2651
- */
2652
- this.getCatalogTiles = function (oCatalog) {
2653
- var that = this,
2654
- oDeferred = new jQuery.Deferred();
2655
-
2656
- if (typeof oCatalog !== "object" || oCatalog === null) {
2657
- return oDeferred.reject("Invalid input parameter '" + oCatalog + "' passed to getCatalogTiles.").promise();
2658
- }
2659
-
2660
- that.oCDMService.getSite()
2661
- .done(function (oSite) {
2662
- getCatalogTilesFromSite.call(that, oCatalog, oSite)
2663
- .done(oDeferred.resolve)
2664
- .fail(oDeferred.reject);
2665
- })
2666
- .fail(function (sErrorMessage2) {
2667
- oDeferred.reject("Failed to get site: " + sErrorMessage2);
2668
- });
2669
-
2670
- return oDeferred.promise();
2671
- };
2672
-
2673
- this.isCustomTile = function (sComponentName) {
2674
- return !(sComponentName === sStaticTileComponent || sComponentName === sDynamicTileComponent);
2675
- };
2676
-
2677
2717
  function getCatalogTilesFromSite (oCatalog, oSite) {
2678
- var that = this,
2679
- oDeferred = new jQuery.Deferred();
2718
+ const that = this;
2719
+ const oDeferred = new jQuery.Deferred();
2680
2720
 
2681
- setTimeout(function () {
2721
+ setTimeout(() => {
2682
2722
  // calculate async
2683
- var aCatalogTiles = ((oCatalog.payload && oCatalog.payload.appDescriptors) || [])
2684
- .reduce(function (aReturnedCatalogTiles, oAppID) {
2685
- var oAppDescriptor = oSite.applications[oAppID.id],
2686
- oInbounds,
2687
- sTileIntent,
2688
- sFirstInbound,
2689
- oFirstInbound,
2690
- oInbound,
2691
- oTileResolutionResult,
2692
- oCatalogTile,
2693
- sApplicationType,
2694
- sAdditionalInformation,
2695
- bIsApplicationTypeConfiguredInPlace,
2696
- oEnableInPlaceForClassicUIsConfig;
2723
+ const aCatalogTiles = ((oCatalog.payload && oCatalog.payload.appDescriptors) || [])
2724
+ .reduce((aReturnedCatalogTiles, oAppID) => {
2725
+ const oAppDescriptor = oSite.applications[oAppID.id];
2726
+ let sTileIntent;
2727
+ let oTileResolutionResult;
2728
+ let oCatalogTile;
2729
+ let sApplicationType;
2730
+ let sAdditionalInformation;
2731
+ let bIsApplicationTypeConfiguredInPlace;
2732
+ let oEnableInPlaceForClassicUIsConfig;
2697
2733
 
2698
2734
  if (!oAppDescriptor) {
2699
2735
  return aReturnedCatalogTiles;
2700
2736
  }
2701
2737
 
2702
- oInbounds = that._getMember(oAppDescriptor, "sap|app.crossNavigation.inbounds");
2738
+ const oInbounds = that._getMember(oAppDescriptor, "sap|app.crossNavigation.inbounds");
2703
2739
  if (!oInbounds || Object.keys(oInbounds).length === 0) {
2704
2740
  return aReturnedCatalogTiles;
2705
2741
  }
2706
2742
 
2707
- sFirstInbound = Object.keys(oInbounds)[0];
2708
- oFirstInbound = oInbounds[sFirstInbound];
2743
+ const sFirstInbound = Object.keys(oInbounds)[0];
2744
+ const oFirstInbound = oInbounds[sFirstInbound];
2709
2745
 
2710
2746
  if (that._isStartableInbound(oFirstInbound) && !that._isHiddenInbound(oFirstInbound)) {
2711
- oInbound = oUtilsCdm.mapOne(sFirstInbound, oFirstInbound, oAppDescriptor);
2747
+ const oInbound = oUtilsCdm.mapOne(sFirstInbound, oFirstInbound, oAppDescriptor);
2712
2748
  if (!oInbound || !oInbound.tileResolutionResult) {
2713
2749
  return aReturnedCatalogTiles;
2714
2750
  }
@@ -2744,6 +2780,40 @@ sap.ui.define([
2744
2780
  return oDeferred.promise();
2745
2781
  }
2746
2782
 
2783
+ /**
2784
+ * Delivers the catalog tiles for a given catalog
2785
+ *
2786
+ * @param {object} oCatalog
2787
+ * Catalog
2788
+ * @returns {jQuery.Promise}
2789
+ * In case of success the done handler will be called with an array
2790
+ * of catalog tiles.
2791
+ */
2792
+ this.getCatalogTiles = function (oCatalog) {
2793
+ const that = this;
2794
+ const oDeferred = new jQuery.Deferred();
2795
+
2796
+ if (typeof oCatalog !== "object" || oCatalog === null) {
2797
+ return oDeferred.reject(`Invalid input parameter '${oCatalog}' passed to getCatalogTiles.`).promise();
2798
+ }
2799
+
2800
+ that.oCDMService.getSite()
2801
+ .done((oSite) => {
2802
+ getCatalogTilesFromSite.call(that, oCatalog, oSite)
2803
+ .done(oDeferred.resolve)
2804
+ .fail(oDeferred.reject);
2805
+ })
2806
+ .fail((sErrorMessage2) => {
2807
+ oDeferred.reject(`Failed to get site: ${sErrorMessage2}`);
2808
+ });
2809
+
2810
+ return oDeferred.promise();
2811
+ };
2812
+
2813
+ this.isCustomTile = function (sComponentName) {
2814
+ return !(sComponentName === sStaticTileComponent || sComponentName === sDynamicTileComponent);
2815
+ };
2816
+
2747
2817
  /**
2748
2818
  * Returns the catalog's technical error message in case it could not be loaded.
2749
2819
  * <p>
@@ -3009,8 +3079,8 @@ sap.ui.define([
3009
3079
  * Keywords of respective catalog tile
3010
3080
  */
3011
3081
  this.getCatalogTileKeywords = function (oGroupTileOrCatalogTile) {
3012
- var aKeywords = [],
3013
- oResolvedTile = oGroupTileOrCatalogTile;
3082
+ const aKeywords = [];
3083
+ let oResolvedTile = oGroupTileOrCatalogTile;
3014
3084
 
3015
3085
  if (!oResolvedTile) {
3016
3086
  Log.error(
@@ -3038,6 +3108,53 @@ sap.ui.define([
3038
3108
  return aKeywords;
3039
3109
  };
3040
3110
 
3111
+ function createNewTargetFromUrl (sUrl) {
3112
+ return {
3113
+ url: sUrl
3114
+ };
3115
+ }
3116
+
3117
+ function transformParameterListToString (aList) {
3118
+ return aList
3119
+ .map((oParameter) => {
3120
+ return oParameter.name + oParameter.value;
3121
+ })
3122
+ .sort()
3123
+ .join();
3124
+ }
3125
+
3126
+ function isSameParameters (aParameters, aOthers) {
3127
+ let sFirst; let sOther;
3128
+
3129
+ aParameters = aParameters || [];
3130
+ aOthers = aOthers || [];
3131
+
3132
+ if (aParameters.length === aOthers.length) {
3133
+ sFirst = transformParameterListToString(aParameters);
3134
+ sOther = transformParameterListToString(aOthers);
3135
+
3136
+ return sFirst === sOther;
3137
+ }
3138
+
3139
+ return false;
3140
+ }
3141
+
3142
+ function isSameTarget (oTarget, oOther) {
3143
+ if (oTarget && oOther) {
3144
+ if (oTarget.url) {
3145
+ // url bookmark tile
3146
+ return oTarget.url === oOther.url;
3147
+ }
3148
+
3149
+ return oTarget.semanticObject === oOther.semanticObject
3150
+ && oTarget.action === oOther.action
3151
+ && isSameParameters(oTarget.parameters, oOther.parameters)
3152
+ && oTarget.appSpecificRoute === oOther.appSpecificRoute;
3153
+ }
3154
+
3155
+ return oTarget === oOther;
3156
+ }
3157
+
3041
3158
  /**
3042
3159
  * Counts <b>all</b> bookmarks pointing to the given URL from all of the user's groups.
3043
3160
  * The count is performed by visiting each matching bookmark and executing the optional
@@ -3065,9 +3182,9 @@ sap.ui.define([
3065
3182
  * @private
3066
3183
  */
3067
3184
  this._visitBookmarks = function (sUrl, fnVisitor) {
3068
- var oCDM = this.oCDMService;
3069
- var oReferenceTarget;
3070
- var oIntent = urlParsing.parseShellHash(sUrl);
3185
+ const oCDM = this.oCDMService;
3186
+ let oReferenceTarget;
3187
+ const oIntent = urlParsing.parseShellHash(sUrl);
3071
3188
 
3072
3189
  if (oIntent) {
3073
3190
  // oUrlParser.parseShellHash was successful
@@ -3077,21 +3194,21 @@ sap.ui.define([
3077
3194
  oReferenceTarget = createNewTargetFromUrl(sUrl);
3078
3195
  }
3079
3196
 
3080
- return oCDM.getSite().then(function (oSite) {
3081
- var oGroups = oSite.groups;
3197
+ return oCDM.getSite().then((oSite) => {
3198
+ const oGroups = oSite.groups;
3082
3199
 
3083
- var aTiles = Object.keys(oGroups)
3084
- .filter(function (sKey) {
3200
+ const aTiles = Object.keys(oGroups)
3201
+ .filter((sKey) => {
3085
3202
  // Always ignore locked groups.
3086
3203
  return !oGroups[sKey].payload.locked;
3087
3204
  })
3088
- .map(function (sKey) {
3089
- return oGroups[sKey].payload.tiles.filter(function (oTile) {
3205
+ .map((sKey) => {
3206
+ return oGroups[sKey].payload.tiles.filter((oTile) => {
3090
3207
  // Consider only matching bookmark tiles.
3091
3208
  return oTile.isBookmark && isSameTarget(oReferenceTarget, oTile.target);
3092
3209
  });
3093
3210
  })
3094
- .reduce(function (aAllTiles, aCurrentGroupTiles) {
3211
+ .reduce((aAllTiles, aCurrentGroupTiles) => {
3095
3212
  Array.prototype.push.apply(aAllTiles, aCurrentGroupTiles);
3096
3213
  return aAllTiles;
3097
3214
  }, []);
@@ -3100,7 +3217,7 @@ sap.ui.define([
3100
3217
  return aTiles.length;
3101
3218
  }
3102
3219
 
3103
- return jQuery.when(aTiles.map(fnVisitor)).then(function () {
3220
+ return jQuery.when(aTiles.map(fnVisitor)).then(() => {
3104
3221
  return aTiles.length;
3105
3222
  });
3106
3223
  });
@@ -3182,18 +3299,17 @@ sap.ui.define([
3182
3299
  * @public
3183
3300
  */
3184
3301
  this.addBookmark = function (oParameters, oGroup) {
3185
- var that = this;
3302
+ const that = this;
3186
3303
 
3187
- return new jQuery.Deferred(function (oDeferred) {
3188
- var oCdmSiteService = that.oCDMService;
3304
+ return new jQuery.Deferred((oDeferred) => {
3305
+ const oCdmSiteService = that.oCDMService;
3189
3306
 
3190
3307
  jQuery.when(oGroup || that.getDefaultGroup(), oCdmSiteService.getSite())
3191
- .done(function (oGroup, oSite) {
3192
- var oTile,
3193
- oTarget,
3194
- oIntent = urlParsing.parseShellHash(oParameters.url),
3195
- oResolveTilePromise,
3196
- bIsUrlBookmarkTile = false;
3308
+ .done((oGroup, oSite) => {
3309
+ let oTarget;
3310
+ const oIntent = urlParsing.parseShellHash(oParameters.url);
3311
+ let oResolveTilePromise;
3312
+ let bIsUrlBookmarkTile = false;
3197
3313
 
3198
3314
  if (!oIntent) {
3199
3315
  oTarget = createNewTargetFromUrl(oParameters.url);
@@ -3202,7 +3318,7 @@ sap.ui.define([
3202
3318
  oTarget = createNewTargetFromIntent(oIntent);
3203
3319
  }
3204
3320
 
3205
- oTile = composeNewBookmarkTile(
3321
+ const oTile = composeNewBookmarkTile(
3206
3322
  oParameters,
3207
3323
  oTarget
3208
3324
  );
@@ -3216,27 +3332,27 @@ sap.ui.define([
3216
3332
  }
3217
3333
 
3218
3334
  oResolveTilePromise
3219
- .done(function (oNewResolvedTile) {
3335
+ .done((oNewResolvedTile) => {
3220
3336
  oNewResolvedTile.isLink = false; // currently only bookmark tiles can be created
3221
3337
  that._mResolvedTiles[oTile.id] = oNewResolvedTile;
3222
3338
 
3223
3339
  // add tile to the side and save
3224
3340
  oSite.groups[oGroup.identification.id].payload.tiles.push(oTile);
3225
3341
  oCdmSiteService.save()
3226
- .done(function () {
3342
+ .done(() => {
3227
3343
  oDeferred.resolve(oTile);
3228
3344
  })
3229
- .fail(function (sReason) {
3345
+ .fail((sReason) => {
3230
3346
  oDeferred.reject(sReason);
3231
3347
  });
3232
3348
  })
3233
- .fail(function (sErrorMsg) {
3349
+ .fail((sErrorMsg) => {
3234
3350
  // Note: do not add error message to oThisAdapter._mFailedResolvedTiles[oTile.id]
3235
3351
  // as the tile was not created which makes the cache useless
3236
- oDeferred.reject("Bookmark creation failed because: " + sErrorMsg);
3352
+ oDeferred.reject(`Bookmark creation failed because: ${sErrorMsg}`);
3237
3353
  });
3238
3354
  })
3239
- .fail(function (sReason) {
3355
+ .fail((sReason) => {
3240
3356
  oDeferred.reject(sReason);
3241
3357
  });
3242
3358
  }).promise();
@@ -3297,18 +3413,18 @@ sap.ui.define([
3297
3413
  * @since 1.42.0
3298
3414
  */
3299
3415
  this.updateBookmarks = function (sUrl, oParameters) {
3300
- var oCdmSiteService = this.oCDMService;
3416
+ const oCdmSiteService = this.oCDMService;
3301
3417
 
3302
- var mResolvedTiles = this._mResolvedTiles;
3418
+ const mResolvedTiles = this._mResolvedTiles;
3303
3419
 
3304
3420
  // Visitor function that updates each encountered bookmark tile as necessary.
3305
3421
  function updateEach (oTile) {
3306
- return new jQuery.Deferred(function (oDeferred) {
3307
- var oIntent, oNewTarget;
3422
+ return new jQuery.Deferred((oDeferred) => {
3423
+ let oIntent; let oNewTarget;
3308
3424
 
3309
- var oTileComponent;
3310
- var bTileViewPropertiesChanged = false;
3311
- var oChangedTileViewProperties = {};
3425
+ let oTileComponent;
3426
+ let bTileViewPropertiesChanged = false;
3427
+ const oChangedTileViewProperties = {};
3312
3428
 
3313
3429
  if (oParameters.url || oParameters.url === "") {
3314
3430
  oIntent = urlParsing.parseShellHash(oParameters.url);
@@ -3354,7 +3470,7 @@ sap.ui.define([
3354
3470
 
3355
3471
  if (bTileViewPropertiesChanged && mResolvedTiles[oTile.id]) {
3356
3472
  oTileComponent = mResolvedTiles[oTile.id].tileComponent;
3357
- //tileComponent is defined in the getTileView method. In case of the direct start, tileComponent is not defined
3473
+ // tileComponent is defined in the getTileView method. In case of the direct start, tileComponent is not defined
3358
3474
  if (oTileComponent) {
3359
3475
  oTileComponent.tileSetVisualProperties(oChangedTileViewProperties);
3360
3476
  }
@@ -3367,8 +3483,8 @@ sap.ui.define([
3367
3483
  // When save is successful, return count of updated bookmarks,
3368
3484
  // otherwise the rejected promise due to the failed save operation is returned.
3369
3485
  return this._visitBookmarks(sUrl, updateEach)
3370
- .then(function (iUpdatedCount) {
3371
- return oCdmSiteService.save().then(function () {
3486
+ .then((iUpdatedCount) => {
3487
+ return oCdmSiteService.save().then(() => {
3372
3488
  return iUpdatedCount;
3373
3489
  });
3374
3490
  });
@@ -3390,9 +3506,9 @@ sap.ui.define([
3390
3506
  * @since 1.42.0
3391
3507
  */
3392
3508
  this.deleteBookmarks = function (sUrl) {
3393
- var oCDM = this.oCDMService;
3394
- var oIntent = urlParsing.parseShellHash(sUrl);
3395
- var oReferenceTarget;
3509
+ const oCDM = this.oCDMService;
3510
+ const oIntent = urlParsing.parseShellHash(sUrl);
3511
+ let oReferenceTarget;
3396
3512
 
3397
3513
  if (oIntent) {
3398
3514
  // parseShellHash was successful
@@ -3402,15 +3518,15 @@ sap.ui.define([
3402
3518
  oReferenceTarget = createNewTargetFromUrl(sUrl);
3403
3519
  }
3404
3520
 
3405
- return oCDM.getSite().then(function (oSite) {
3406
- var oGroups = oSite.groups;
3521
+ return oCDM.getSite().then((oSite) => {
3522
+ const oGroups = oSite.groups;
3407
3523
 
3408
- var iDeletedTiles = Object.keys(oGroups)
3409
- .map(function (sKey) {
3410
- var oPayload = oGroups[sKey].payload;
3411
- var iCountGroupTilesToDelete = 0;
3524
+ const iDeletedTiles = Object.keys(oGroups)
3525
+ .map((sKey) => {
3526
+ const oPayload = oGroups[sKey].payload;
3527
+ let iCountGroupTilesToDelete = 0;
3412
3528
 
3413
- oPayload.tiles = oPayload.tiles.filter(function (oTile) {
3529
+ oPayload.tiles = oPayload.tiles.filter((oTile) => {
3414
3530
  if (oTile.isBookmark
3415
3531
  && isSameTarget(oReferenceTarget, oTile.target)) {
3416
3532
  ++iCountGroupTilesToDelete;
@@ -3422,13 +3538,13 @@ sap.ui.define([
3422
3538
 
3423
3539
  return iCountGroupTilesToDelete;
3424
3540
  })
3425
- .reduce(function (aggregateSum, groupSum) {
3541
+ .reduce((aggregateSum, groupSum) => {
3426
3542
  aggregateSum += groupSum;
3427
3543
 
3428
3544
  return aggregateSum;
3429
3545
  }, 0);
3430
3546
 
3431
- return oCDM.save().then(function () {
3547
+ return oCDM.save().then(() => {
3432
3548
  return iDeletedTiles;
3433
3549
  });
3434
3550
  });
@@ -3467,25 +3583,18 @@ sap.ui.define([
3467
3583
  * @private
3468
3584
  */
3469
3585
  this._onTileSettingsSave = function (oTile, oSettingsView) {
3470
- var oDeferred = new jQuery.Deferred(),
3471
- oUpdatedVisualTileProperties,
3472
- sNewTitle,
3473
- sNewInfo,
3474
- sNewSubtitle,
3475
- sOldTitle,
3476
- sOldInfo,
3477
- sOldSubtitle;
3586
+ const oDeferred = new jQuery.Deferred();
3478
3587
 
3479
3588
  if (!oTile || !oTile.id || !oSettingsView) {
3480
3589
  return oDeferred.reject().promise();
3481
3590
  }
3482
3591
 
3483
- sNewTitle = oSettingsView.oTitleInput.getValue();
3484
- sNewSubtitle = oSettingsView.oSubTitleInput.getValue();
3485
- sNewInfo = oSettingsView.oInfoInput.getValue();
3486
- sOldTitle = this.getTileTitle(oTile);
3487
- sOldInfo = this.getTileInfo(oTile);
3488
- sOldSubtitle = this.getTileSubtitle(oTile);
3592
+ const sNewTitle = oSettingsView.oTitleInput.getValue();
3593
+ const sNewSubtitle = oSettingsView.oSubTitleInput.getValue();
3594
+ const sNewInfo = oSettingsView.oInfoInput.getValue();
3595
+ const sOldTitle = this.getTileTitle(oTile);
3596
+ const sOldInfo = this.getTileInfo(oTile);
3597
+ const sOldSubtitle = this.getTileSubtitle(oTile);
3489
3598
 
3490
3599
  // Check whether the end user changed the title or subtitle.
3491
3600
  // If nothing changed, return.
@@ -3496,7 +3605,7 @@ sap.ui.define([
3496
3605
  return oDeferred.resolve().promise();
3497
3606
  }
3498
3607
 
3499
- oUpdatedVisualTileProperties = {};
3608
+ const oUpdatedVisualTileProperties = {};
3500
3609
  if (sOldTitle !== sNewTitle) {
3501
3610
  oUpdatedVisualTileProperties.title = sNewTitle;
3502
3611
  // Add new properties also to tile for next startup
@@ -3533,20 +3642,20 @@ sap.ui.define([
3533
3642
  this._mResolvedTiles[oTile.id].linkTileControl.setSubheader(oUpdatedVisualTileProperties.subtitle);
3534
3643
  }
3535
3644
  if ((oUpdatedVisualTileProperties.title) || (oUpdatedVisualTileProperties.subtitle)) {
3536
- //rerender the link to see the changes immediately
3645
+ // rerender the link to see the changes immediately
3537
3646
  this._mResolvedTiles[oTile.id].linkTileControl.rerender();
3538
3647
  }
3539
3648
  }
3540
3649
 
3541
3650
  // Persist personalization changes
3542
3651
  Container.getServiceAsync("CommonDataModel")
3543
- .then(function (oCdmService) {
3652
+ .then((oCdmService) => {
3544
3653
  oCdmService.save()
3545
- .fail(function (sErrorMsg0) {
3654
+ .fail((sErrorMsg0) => {
3546
3655
  Log.error(sErrorMsg0);
3547
- oDeferred.reject("Could not save personalization changes: " + sErrorMsg0);
3656
+ oDeferred.reject(`Could not save personalization changes: ${sErrorMsg0}`);
3548
3657
  })
3549
- .done(function () {
3658
+ .done(() => {
3550
3659
  oDeferred.resolve();
3551
3660
  });
3552
3661
  });
@@ -3565,9 +3674,9 @@ sap.ui.define([
3565
3674
  * @public
3566
3675
  */
3567
3676
  this.getTileActions = function (oTile) {
3568
- var aTileActions = [],
3569
- oTileSettingsAction,
3570
- oModel;
3677
+ const aTileActions = [];
3678
+ let oTileSettingsAction;
3679
+ let oModel;
3571
3680
 
3572
3681
  if (this._isGroupTile(oTile) && !this._isFailedGroupTile(oTile)) {
3573
3682
  // Create necessary model for dialog to pass actual properties
@@ -3585,148 +3694,6 @@ sap.ui.define([
3585
3694
  }
3586
3695
  return aTileActions;
3587
3696
  };
3588
-
3589
- function composeNewBookmarkTile (oParameters, oTarget) {
3590
- var oTile = composeNewTile(oParameters, oTarget);
3591
-
3592
- oTile.isBookmark = true;
3593
-
3594
- return oTile;
3595
- }
3596
-
3597
- function composeNewTile (oParameters, oTarget) {
3598
- // TODO Collect all tile ids to pass them as an arry to
3599
- // generateUniqueId
3600
- var oTile = {
3601
- id: oUshellUtils.generateUniqueId([])
3602
- };
3603
-
3604
- updateTileComposition(oTile, oParameters, oTarget);
3605
-
3606
- return oTile;
3607
- }
3608
-
3609
- /**
3610
- * Updates the properties of a bookmark tile during its composition.
3611
- * @param {object} oTile JSON Object that holds the properties of a bookmark tile.
3612
- * @param {object} oParameters Properties to merge into the bookmark tile
3613
- * @param {object} oTarget The navigation target as a JSON object.
3614
- *
3615
- * @private
3616
- */
3617
- function updateTileComposition (oTile, oParameters, oTarget) {
3618
- // Avoid modifying callers reference.
3619
- oParameters = deepExtend({}, oParameters);
3620
-
3621
- if (oTarget) {
3622
- oTile.target = oTarget;
3623
- }
3624
-
3625
- if (oParameters.title || oParameters.title === "") {
3626
- oTile.title = oParameters.title;
3627
- }
3628
-
3629
- if (oParameters.icon || oParameters.icon === "") {
3630
- oTile.icon = oParameters.icon;
3631
- }
3632
-
3633
- if (oParameters.subtitle || oParameters.subtitle === "") {
3634
- oTile.subTitle = oParameters.subtitle;
3635
- }
3636
- if (oParameters.info || oParameters.info === "") {
3637
- oTile.info = oParameters.info;
3638
- }
3639
-
3640
- if (oParameters.dataSource) {
3641
- oTile.dataSource = {};
3642
- deepExtend(oTile.dataSource, oParameters.dataSource);
3643
- }
3644
-
3645
- if (oParameters.serviceUrl || oParameters.serviceUrl === "") {
3646
- oTile.indicatorDataSource = {
3647
- path: oParameters.serviceUrl
3648
- };
3649
- }
3650
-
3651
- if (oTile.indicatorDataSource && (oParameters.serviceRefreshInterval || oParameters.serviceRefreshInterval === 0)) {
3652
- oTile.indicatorDataSource.refresh
3653
- = oParameters.serviceRefreshInterval;
3654
- }
3655
- }
3656
-
3657
- function isSameTarget (oTarget, oOther) {
3658
- if (oTarget && oOther) {
3659
- if (oTarget.url) {
3660
- // url bookmark tile
3661
- return oTarget.url === oOther.url;
3662
- }
3663
-
3664
- return oTarget.semanticObject === oOther.semanticObject
3665
- && oTarget.action === oOther.action
3666
- && isSameParameters(oTarget.parameters, oOther.parameters)
3667
- && oTarget.appSpecificRoute === oOther.appSpecificRoute;
3668
- }
3669
-
3670
- return oTarget === oOther;
3671
- }
3672
-
3673
- function isSameParameters (aParameters, aOthers) {
3674
- var sFirst, sOther;
3675
-
3676
- aParameters = aParameters || [];
3677
- aOthers = aOthers || [];
3678
-
3679
- if (aParameters.length === aOthers.length) {
3680
- sFirst = transformParameterListToString(aParameters);
3681
- sOther = transformParameterListToString(aOthers);
3682
-
3683
- return sFirst === sOther;
3684
- }
3685
-
3686
- return false;
3687
- }
3688
-
3689
- function transformParameterListToString (aList) {
3690
- return aList
3691
- .map(function (oParameter) {
3692
- return oParameter.name + oParameter.value;
3693
- })
3694
- .sort()
3695
- .join();
3696
- }
3697
-
3698
- function createNewTargetFromUrl (sUrl) {
3699
- return {
3700
- url: sUrl
3701
- };
3702
- }
3703
-
3704
- function createNewTargetFromIntent (oIntent) {
3705
- var oTarget = {
3706
- semanticObject: oIntent.semanticObject,
3707
- action: oIntent.action,
3708
- parameters: createTileParametersFromIntentParams(oIntent.params)
3709
- };
3710
-
3711
- if (oIntent.appSpecificRoute) {
3712
- // do not loose the inner-app hash (e.g. &/ShoppingCart(12345))
3713
- // BCP 1670533333
3714
- oTarget.appSpecificRoute = oIntent.appSpecificRoute;
3715
- }
3716
-
3717
- return oTarget;
3718
- }
3719
-
3720
- function createTileParametersFromIntentParams (oIntentParams) {
3721
- return Object.keys(oIntentParams).map(function (sKey) {
3722
- var sValue = oIntentParams[sKey] && oIntentParams[sKey][0];
3723
-
3724
- return {
3725
- name: sKey,
3726
- value: sValue || "" // "sValue" might be undefined
3727
- };
3728
- });
3729
- }
3730
3697
  }
3731
3698
 
3732
3699
  // TODO check if this is really needed: