@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
@@ -56,8 +56,9 @@ sap.ui.define([
56
56
  "sap/ushell/renderer/ShellLayout",
57
57
  "sap/base/util/Deferred",
58
58
  "sap/base/util/ObjectPath",
59
- "sap/ushell/api/BootstrapObserver"
60
- ], function (
59
+ "sap/ushell/api/BootstrapObserver",
60
+ "sap/ushell/resources"
61
+ ], (
61
62
  assert,
62
63
  Log,
63
64
  deepExtend,
@@ -80,22 +81,24 @@ sap.ui.define([
80
81
  ShellLayout,
81
82
  Deferred,
82
83
  ObjectPath,
83
- BootstrapObserver
84
- ) {
84
+ BootstrapObserver,
85
+ ushellResources
86
+ ) => {
85
87
  "use strict";
86
88
 
87
89
  /* global OData */
88
90
 
89
- var S_COMPONENT_NAME = "sap.ushell.Container";
90
- var S_DIRTY_STATE_PREFIX = "sap.ushell.Container.dirtyState.";
91
+ const S_COMPONENT_NAME = "sap.ushell.Container";
92
+ const S_DIRTY_STATE_PREFIX = "sap.ushell.Container.dirtyState.";
91
93
  // The configuration as read from window["sap-ushell-config"]
92
- var oConfigSetting = {};
93
- var oConfig;
94
+ const oConfigSetting = {};
95
+ let oConfig;
94
96
  // Map with platform-specific packages for the service adapters.
95
97
  // This map is passed in bootstrap and is valid for the given logon platform
96
- var mPlatformPackages;
97
- var aAsyncLogoutEventFunctions = []; //async logout even functions that return a promise
98
- var oContainerInstance;
98
+ let mPlatformPackages;
99
+ const aAsyncLogoutEventFunctions = []; // async logout even functions that return a promise
100
+ // eslint-disable-next-line prefer-const
101
+ let oContainerInstance;
99
102
  const aRegisteredLogoutHandlers = [];
100
103
 
101
104
  // Try to close window. Note: Most browsers do NOT allow closing windows by JS if they were opened manually.
@@ -118,7 +121,7 @@ sap.ui.define([
118
121
  if (mPlatformPackages && mPlatformPackages[sPlatform]) {
119
122
  return mPlatformPackages[sPlatform];
120
123
  }
121
- return "sap.ushell.adapters." + sPlatform;
124
+ return `sap.ushell.adapters.${sPlatform}`;
122
125
  }
123
126
 
124
127
  /**
@@ -129,7 +132,7 @@ sap.ui.define([
129
132
  * @returns {object} the service configuration
130
133
  */
131
134
  function getServiceConfig (sServiceName) {
132
- var oServices = oConfig.services;
135
+ const oServices = oConfig.services;
133
136
  if (!oServices) {
134
137
  return {};
135
138
  }
@@ -154,8 +157,8 @@ sap.ui.define([
154
157
  * @returns {object|Promise} the adapter or, in asynchronous mode, a Promise that returns the adapter
155
158
  */
156
159
  function createAdapter (sName, oSystem, sParameter, bAsync, bUseConfiguredAdapterOnly) {
157
- var oAdapterConfig = getServiceConfig(sName).adapter || {};
158
- var sAdapterName;
160
+ const oAdapterConfig = getServiceConfig(sName).adapter || {};
161
+ let sAdapterName;
159
162
 
160
163
  async function getAdapterInstance (AdapterModule) {
161
164
  let AdapterClass;
@@ -172,7 +175,7 @@ sap.ui.define([
172
175
  }
173
176
  throw oError;
174
177
  }
175
- var oAdapterInstance = new AdapterClass(oSystem, sParameter, { config: oAdapterConfig.config || {} });
178
+ const oAdapterInstance = new AdapterClass(oSystem, sParameter, { config: oAdapterConfig.config || {} });
176
179
  return oAdapterInstance;
177
180
  }
178
181
 
@@ -182,17 +185,19 @@ sap.ui.define([
182
185
  return (bAsync ? Promise.resolve() : undefined);
183
186
  }
184
187
  } else {
185
- sAdapterName = oAdapterConfig.module || getPlatformPackage(oSystem.getPlatform()) + "." + sName + "Adapter";
188
+ sAdapterName = oAdapterConfig.module || `${getPlatformPackage(oSystem.getPlatform())}.${sName}Adapter`;
186
189
  }
187
190
 
188
- var sModule = sAdapterName.replace(/\./g, "/");
191
+ const sModule = sAdapterName.replace(/\./g, "/");
189
192
 
190
193
  /**
194
+ * @param {string} AdapterModule adapter path.
195
+ * @returns {object} a new instance of an adapter.
191
196
  * @deprecated since 1.100
192
197
  * @private
193
198
  */
194
199
  function getAdapterInstanceSync (AdapterModule) {
195
- var AdapterClass;
200
+ let AdapterClass;
196
201
  try {
197
202
  AdapterClass = sap.ui.requireSync(AdapterModule); // LEGACY API (deprecated)
198
203
  } catch (oError) {
@@ -218,6 +223,25 @@ sap.ui.define([
218
223
  return getAdapterInstance(sModule);
219
224
  }
220
225
 
226
+ /**
227
+ * Creates and registers injectable ui5services.
228
+ *
229
+ * @param {string[]} aServicesToRegister An array of service names to register.
230
+ * @param {boolean} bAddCallProtection Whether to add call protection check.
231
+ * This may not be wanted in case the service is created via:
232
+ * ServiceFactoryRegistry#get("sap.ushell.ui5service.<service>").createInstance().
233
+ * @private
234
+ */
235
+ function registerInjectableUi5Services (aServicesToRegister, bAddCallProtection) {
236
+ aServicesToRegister.forEach((sUshellServiceName) => {
237
+ // create registerable factory
238
+ const oServiceFactory = oUi5ServiceFactory.createServiceFactory(sUshellServiceName, bAddCallProtection);
239
+
240
+ // register factory to allow UI5 to create the service
241
+ ServiceFactoryRegistry.register(`sap.ushell.ui5service.${sUshellServiceName}`, oServiceFactory);
242
+ });
243
+ }
244
+
221
245
  /**
222
246
  * @alias sap.ushell.Container
223
247
  * @namespace
@@ -233,24 +257,65 @@ sap.ui.define([
233
257
  * @public
234
258
  */
235
259
  function Container () {
236
- var oEventProvider = new EventProvider();
237
- var isDirty = false;
238
- var aRegisteredDirtyMethods = [];
239
- var oRenderers = {};
240
- var sRemoteSystemPrefix;
241
- var mRemoteSystems = {};
242
- var oGlobalDirtyDeferred;
243
- var fnStorageEventListener;
244
- var oLocalStorage = ushellUtils.getLocalStorage();
245
- var mServicesByName = new ushellUtils.Map();
246
- var mServicesByNamePromise = new ushellUtils.Map();
247
- var sSessionTerminationKey;
248
- var that = this;
249
-
250
- var oAdapter;
251
- var bInitialized = false;
252
-
253
- var oContainerReadyDeferred = new Deferred();
260
+ const oEventProvider = new EventProvider();
261
+ let isDirty = false;
262
+ let aRegisteredDirtyMethods = [];
263
+ let oRenderers = {};
264
+ let sRemoteSystemPrefix;
265
+ const mRemoteSystems = {};
266
+ let oGlobalDirtyDeferred;
267
+ let fnStorageEventListener;
268
+ let oLocalStorage = ushellUtils.getLocalStorage();
269
+ let mServicesByName = new ushellUtils.Map();
270
+ let mServicesByNamePromise = new ushellUtils.Map();
271
+ let sSessionTerminationKey;
272
+ const that = this;
273
+
274
+ let oAdapter;
275
+ let bInitialized = false;
276
+
277
+ let oContainerReadyDeferred = new Deferred();
278
+
279
+ function afterInit () {
280
+ // register event handler for storage events issued by other UShell windows
281
+ if (typeof oAdapter.logoutRedirect === "function") {
282
+ fnStorageEventListener = function (oStorageEvent) {
283
+ function closeAndRedirectWindow () {
284
+ // Most browsers do not allow closing windows via JS that aren't opened via JS
285
+ // hence we additionally redirect to get these manually opened windows redirected at least.
286
+ // NOTE: It is important to NOT redirect to "/sap/public/bc/icf/logoff"
287
+ // because on iPad Safari e.g. the event is not processed until the window gets the focus.
288
+ // This would terminate any new session opened in between.
289
+ that._closeWindow();
290
+ that._redirectWindow();
291
+ }
292
+
293
+ if (oContainerInstance !== that) {
294
+ // In integration test suite, old listeners remain which do not belong to the current sap.ushell.Container instance.
295
+ // IE sends events also to own window. Then these old listeners react as if a remote window logged out...
296
+ return;
297
+ }
298
+ // IE9 seems to get the events, but not the values in another window!?
299
+ if (oStorageEvent.key.indexOf(sRemoteSystemPrefix) === 0
300
+ && oStorageEvent.newValue
301
+ && oStorageEvent.newValue !== oLocalStorage.getItem(oStorageEvent.key)) {
302
+ ushellUtils.localStorageSetItem(oStorageEvent.key, oStorageEvent.newValue);
303
+ }
304
+ if (oStorageEvent.key === sSessionTerminationKey) {
305
+ if (oStorageEvent.newValue === "pending") {
306
+ that._suppressOData();
307
+ if (oEventProvider.fireEvent("Logout", true)) {
308
+ closeAndRedirectWindow();
309
+ } else {
310
+ // defer UShell closeWindow to let NWBC receive message asynchronously
311
+ setTimeout(closeAndRedirectWindow, 1000);
312
+ }
313
+ }
314
+ }
315
+ };
316
+ window.addEventListener("storage", fnStorageEventListener);
317
+ }
318
+ }
254
319
 
255
320
  /**
256
321
  * @param {string} sPlatform The platform to initialize
@@ -260,27 +325,26 @@ sap.ui.define([
260
325
  * @private
261
326
  * @alias sap.ushell.Container#init
262
327
  */
263
- this.init = function (sPlatform, mAdapterPackagesByPlatform) {
264
-
328
+ this.init = async function (sPlatform, mAdapterPackagesByPlatform) {
265
329
  /**
266
330
  * No globals anymore in 2.0...
267
331
  * @deprecated since 1.120
268
332
  */
269
333
  ObjectPath.set("sap.ushell.Container", oContainerInstance);
270
334
 
271
- return this._init(sPlatform, mAdapterPackagesByPlatform)
272
- .then((oCreatedAdapter) => {
273
- oAdapter = oCreatedAdapter;
274
- })
275
- .then(() => {
276
- sRemoteSystemPrefix = "sap.ushell.Container." + oAdapter.getSystem().getPlatform() + ".remoteSystem.";
277
- sSessionTerminationKey = "sap.ushell.Container." + oAdapter.getSystem().getPlatform() + ".sessionTermination";
278
- afterInit();
279
- bInitialized = true;
280
- oContainerReadyDeferred.resolve();
281
- BootstrapObserver.resolveBootstrappedContainer(this);
282
- return;
283
- });
335
+ const aResult = await Promise.all([
336
+ this._init(sPlatform, mAdapterPackagesByPlatform),
337
+ ushellResources.awaitResourceBundle()
338
+ ]);
339
+
340
+ oAdapter = aResult[0];
341
+
342
+ sRemoteSystemPrefix = `sap.ushell.Container.${oAdapter.getSystem().getPlatform()}.remoteSystem.`;
343
+ sSessionTerminationKey = `sap.ushell.Container.${oAdapter.getSystem().getPlatform()}.sessionTermination`;
344
+ afterInit();
345
+ bInitialized = true;
346
+ oContainerReadyDeferred.resolve();
347
+ BootstrapObserver.resolveBootstrappedContainer(this);
284
348
  };
285
349
 
286
350
  /**
@@ -356,9 +420,8 @@ sap.ui.define([
356
420
  sRendererName = undefined;
357
421
  }
358
422
 
359
- var oComponentData = { async: !!bAsync };
360
- var sComponentName;
361
- var oRendererConfig;
423
+ const oComponentData = { async: !!bAsync };
424
+ let sComponentName;
362
425
 
363
426
  Measurement.start("FLP:Container.InitLoading", "Initial Loading", "FLP");
364
427
  ushellUtils.setPerformanceMark("FLP - renderer created");
@@ -366,9 +429,9 @@ sap.ui.define([
366
429
  if (!sRendererName) {
367
430
  throw new Error("Missing renderer name");
368
431
  }
369
- oRendererConfig = (oConfig && oConfig.renderers && oConfig.renderers[sRendererName]) || {};
432
+ const oRendererConfig = (oConfig && oConfig.renderers && oConfig.renderers[sRendererName]) || {};
370
433
  sComponentName = oRendererConfig.module || (sRendererName.indexOf(".") < 0
371
- ? "sap.ushell.renderers." + sRendererName + ".Renderer"
434
+ ? `sap.ushell.renderers.${sRendererName}.Renderer`
372
435
  : sRendererName);
373
436
 
374
437
  // this migration only fails for launchpads overwriting the resource path of the renderer
@@ -380,21 +443,67 @@ sap.ui.define([
380
443
  oComponentData.config = oRendererConfig.componentData.config;
381
444
  }
382
445
 
446
+ function replacePlaceAt (RendererControl) {
447
+ // Some applications place the shell directly into the body element.
448
+ // However, this breaks the layout with separate UI Areas.
449
+ // Wrap the control into the #canvas div in this case.
450
+ RendererControl.placeAt = function (sRef, vPosition) {
451
+ let oContainer = sRef;
452
+ const canvasId = "canvas";
453
+ const body = document.body;
454
+ if (sRef === body.id) {
455
+ oContainer = document.createElement("div");
456
+ oContainer.setAttribute("id", canvasId);
457
+ oContainer.classList.add("sapUShellFullHeight");
458
+ switch (vPosition) {
459
+ case "first":
460
+ if (body.firstChild) {
461
+ body.insertBefore(oContainer, body.firstChild);
462
+ break;
463
+ }
464
+ /* falls through */
465
+ case "only":
466
+ body.innerHTML = "";
467
+ /* falls through */
468
+ default:
469
+ body.appendChild(oContainer);
470
+ }
471
+ sRef = canvasId;
472
+ vPosition = "";
473
+ }
474
+ ShellLayout.applyLayout(sRef);
475
+ EventHub.emit("ShellLayoutApplied", Date.now());
476
+ Control.prototype.placeAt.call(this, sRef, vPosition);
477
+ };
478
+ }
479
+
480
+ function replaceDestroy (oControl) {
481
+ const fnOriginalDestroy = oControl.destroy;
482
+ oControl.destroy = function () {
483
+ if (oControl.isA("sap.ui.core.ComponentContainer")) {
484
+ return Promise.resolve(oControl.getComponentInstance().destroy()).then(function () {
485
+ return fnOriginalDestroy.apply(oControl, arguments);
486
+ });
487
+ }
488
+ return Promise.resolve(fnOriginalDestroy.apply(oControl, arguments));
489
+ };
490
+ }
491
+
383
492
  function getRendererInstance (Module) {
384
- var ModuleClass = sap.ui.requireSync(Module); // LEGACY API (deprecated)
385
- var oRenderer = new ModuleClass({ componentData: oComponentData });
386
- var oShellControl;
387
- var UIComponent = sap.ui.requireSync("sap/ui/core/UIComponent"); // LEGACY API (deprecated)
493
+ const ModuleClass = sap.ui.requireSync(Module); // LEGACY API (deprecated)
494
+ const oRenderer = new ModuleClass({ componentData: oComponentData });
495
+ let oShellControl;
496
+ const UIComponent = sap.ui.requireSync("sap/ui/core/UIComponent"); // LEGACY API (deprecated)
388
497
 
389
498
  if (oRenderer instanceof UIComponent) {
390
- var ComponentContainer = sap.ui.requireSync("sap/ui/core/ComponentContainer"); // LEGACY API (deprecated)
499
+ const ComponentContainer = sap.ui.requireSync("sap/ui/core/ComponentContainer"); // LEGACY API (deprecated)
391
500
  oShellControl = new ComponentContainer({ component: oRenderer, height: "100%", width: "100%" });
392
501
  } else {
393
502
  oShellControl = oRenderer;
394
503
  }
395
504
 
396
505
  if (!(oShellControl instanceof Control)) {
397
- throw new Error("Unsupported renderer type for name " + sRendererName);
506
+ throw new Error(`Unsupported renderer type for name ${sRendererName}`);
398
507
  }
399
508
 
400
509
  replacePlaceAt(oShellControl);
@@ -408,17 +517,17 @@ sap.ui.define([
408
517
  }
409
518
 
410
519
  function getRendererInstanceAsync (Module) {
411
- return new Promise(function (resolve, reject) {
520
+ return new Promise((resolve, reject) => {
412
521
  sap.ui.require([
413
522
  Module,
414
523
  "sap/ui/core/ComponentContainer",
415
524
  "sap/ui/core/UIComponent",
416
525
  "sap/ui/core/routing/Router" // As ushell.Renderer does not use manifest-first the router needs to be loaded async beforehand
417
- ], function (RendererClass, ComponentContainer, UIComponent) {
418
- var oRenderer = new RendererClass({ componentData: oComponentData });
526
+ ], (RendererClass, ComponentContainer, UIComponent) => {
527
+ const oRenderer = new RendererClass({ componentData: oComponentData });
419
528
 
420
529
  if (oRenderer instanceof UIComponent) {
421
- var oComponentContainer = new ComponentContainer({
530
+ const oComponentContainer = new ComponentContainer({
422
531
  component: oRenderer,
423
532
  height: "100%",
424
533
  width: "100%",
@@ -427,7 +536,7 @@ sap.ui.define([
427
536
  replacePlaceAt(oComponentContainer);
428
537
  replaceDestroy(oComponentContainer);
429
538
  oRenderers[sRendererName] = oRenderer;
430
- oRenderer.rootControlLoaded().then(function () {
539
+ oRenderer.rootControlLoaded().then(() => {
431
540
  oEventProvider.fireEvent("rendererCreated", { renderer: oRenderer });
432
541
  resolve(oComponentContainer);
433
542
  });
@@ -444,53 +553,7 @@ sap.ui.define([
444
553
  });
445
554
  }
446
555
 
447
- function replacePlaceAt (RendererControl) {
448
- // Some applications place the shell directly into the body element.
449
- // However, this breaks the layout with separate UI Areas.
450
- // Wrap the control into the #canvas div in this case.
451
- RendererControl.placeAt = function (sRef, vPosition) {
452
- var oContainer = sRef;
453
- var canvasId = "canvas";
454
- var body = document.body;
455
- if (sRef === body.id) {
456
- oContainer = document.createElement("div");
457
- oContainer.setAttribute("id", canvasId);
458
- oContainer.classList.add("sapUShellFullHeight");
459
- switch (vPosition) {
460
- case "first":
461
- if (body.firstChild) {
462
- body.insertBefore(oContainer, body.firstChild);
463
- break;
464
- }
465
- /* falls through */
466
- case "only":
467
- body.innerHTML = "";
468
- /* falls through */
469
- default:
470
- body.appendChild(oContainer);
471
- }
472
- sRef = canvasId;
473
- vPosition = "";
474
- }
475
- ShellLayout.applyLayout(sRef);
476
- EventHub.emit("ShellLayoutApplied", Date.now());
477
- Control.prototype.placeAt.call(this, sRef, vPosition);
478
- };
479
- }
480
-
481
- function replaceDestroy (oControl) {
482
- var fnOriginalDestroy = oControl.destroy;
483
- oControl.destroy = function () {
484
- if (oControl.isA("sap.ui.core.ComponentContainer")) {
485
- return Promise.resolve(oControl.getComponentInstance().destroy()).then(function () {
486
- return fnOriginalDestroy.apply(oControl, arguments);
487
- });
488
- }
489
- return Promise.resolve(fnOriginalDestroy.apply(oControl, arguments));
490
- };
491
- }
492
-
493
- var sModule = sComponentName.replace(/\./g, "/");
556
+ const sModule = sComponentName.replace(/\./g, "/");
494
557
  if (bAsync) {
495
558
  return getRendererInstanceAsync(sModule);
496
559
  }
@@ -528,9 +591,8 @@ sap.ui.define([
528
591
  * @alias sap.ushell.Container#createRendererInternal
529
592
  */
530
593
  this.createRendererInternal = async function (sRendererName) {
531
- var oComponentData = { async: true };
532
- var sComponentName;
533
- var oRendererConfig;
594
+ const oComponentData = { async: true };
595
+ let sComponentName;
534
596
 
535
597
  Measurement.start("FLP:Container.InitLoading", "Initial Loading", "FLP");
536
598
  ushellUtils.setPerformanceMark("FLP - renderer created");
@@ -538,9 +600,9 @@ sap.ui.define([
538
600
  if (!sRendererName) {
539
601
  throw new Error("Missing renderer name");
540
602
  }
541
- oRendererConfig = (oConfig.renderers && oConfig.renderers[sRendererName]) || {};
603
+ const oRendererConfig = (oConfig.renderers && oConfig.renderers[sRendererName]) || {};
542
604
  sComponentName = oRendererConfig.module || (sRendererName.indexOf(".") < 0
543
- ? "sap.ushell.renderers." + sRendererName + ".Renderer"
605
+ ? `sap.ushell.renderers.${sRendererName}.Renderer`
544
606
  : sRendererName);
545
607
 
546
608
  // this migration only fails for launchpads overwriting the resource path of the renderer
@@ -557,9 +619,9 @@ sap.ui.define([
557
619
  // However, this breaks the layout with separate UI Areas.
558
620
  // Wrap the control into the #canvas div in this case.
559
621
  RendererControl.placeAt = function (sRef, vPosition) {
560
- var oContainer = sRef;
561
- var canvasId = "canvas";
562
- var body = document.body;
622
+ let oContainer = sRef;
623
+ const canvasId = "canvas";
624
+ const body = document.body;
563
625
  if (sRef === body.id) {
564
626
  oContainer = document.createElement("div");
565
627
  oContainer.setAttribute("id", canvasId);
@@ -587,7 +649,7 @@ sap.ui.define([
587
649
  }
588
650
 
589
651
  function replaceDestroy (oControl) {
590
- var fnOriginalDestroy = oControl.destroy;
652
+ const fnOriginalDestroy = oControl.destroy;
591
653
  oControl.destroy = function () {
592
654
  if (oControl.isA("sap.ui.core.ComponentContainer")) {
593
655
  return Promise.resolve(oControl.getComponentInstance().destroy()).then(function () {
@@ -598,7 +660,7 @@ sap.ui.define([
598
660
  };
599
661
  }
600
662
 
601
- var sModule = sComponentName.replace(/\./g, "/");
663
+ const sModule = sComponentName.replace(/\./g, "/");
602
664
  const [
603
665
  RendererClass,
604
666
  ComponentContainer,
@@ -609,10 +671,10 @@ sap.ui.define([
609
671
  "sap/ui/core/UIComponent",
610
672
  "sap/ui/core/routing/Router" // As ushell.Renderer does not use manifest-first the router needs to be loaded async beforehand
611
673
  ]);
612
- var oRenderer = new RendererClass({ componentData: oComponentData });
674
+ const oRenderer = new RendererClass({ componentData: oComponentData });
613
675
 
614
676
  if (oRenderer instanceof UIComponent) {
615
- var oComponentContainer = new ComponentContainer({
677
+ const oComponentContainer = new ComponentContainer({
616
678
  component: oRenderer,
617
679
  height: "100%",
618
680
  width: "100%",
@@ -653,14 +715,14 @@ sap.ui.define([
653
715
  * @alias sap.ushell.Container#getRenderer
654
716
  */
655
717
  this.getRenderer = function (sRendererName) {
656
- var oRendererControl;
718
+ let oRendererControl;
657
719
 
658
720
  sRendererName = sRendererName || oConfig.defaultRenderer;
659
721
 
660
722
  if (sRendererName) {
661
723
  oRendererControl = oRenderers[sRendererName];
662
724
  } else {
663
- var aRendererNames = Object.keys(oRenderers);
725
+ const aRendererNames = Object.keys(oRenderers);
664
726
  if (aRendererNames.length === 1) {
665
727
  oRendererControl = oRenderers[aRendererNames[0]];
666
728
  } else {
@@ -695,14 +757,14 @@ sap.ui.define([
695
757
  * @alias sap.ushell.Container#getRendererInternal
696
758
  */
697
759
  this.getRendererInternal = function (sRendererName) {
698
- var oRendererControl;
760
+ let oRendererControl;
699
761
 
700
762
  sRendererName = sRendererName || oConfig.defaultRenderer;
701
763
 
702
764
  if (sRendererName) {
703
765
  oRendererControl = oRenderers[sRendererName];
704
766
  } else {
705
- var aRendererNames = Object.keys(oRenderers);
767
+ const aRendererNames = Object.keys(oRenderers);
706
768
  if (aRendererNames.length === 1) {
707
769
  oRendererControl = oRenderers[aRendererNames[0]];
708
770
  } else {
@@ -802,17 +864,17 @@ sap.ui.define([
802
864
  * @alias sap.ushell.Container#getGlobalDirty
803
865
  */
804
866
  this.getGlobalDirty = function () {
805
- var oDeferred = new jQuery.Deferred();
806
- var sUid = uid();
807
- var iPending = 0;
808
- var oDirtyState = this.DirtyState.CLEAN;
867
+ const oDeferred = new jQuery.Deferred();
868
+ const sUid = uid();
869
+ let iPending = 0;
870
+ let oDirtyState = this.DirtyState.CLEAN;
809
871
 
810
872
  function tryResolve () {
811
873
  if (iPending === 0 || oDirtyState === that.DirtyState.DIRTY) {
812
874
  // no PENDING or already dirty, so we can end the process
813
875
  oDeferred.resolve(oDirtyState);
814
876
  Log.debug(
815
- "getGlobalDirty() Resolving: " + oDirtyState,
877
+ `getGlobalDirty() Resolving: ${oDirtyState}`,
816
878
  null,
817
879
  "sap.ushell.Container"
818
880
  );
@@ -824,8 +886,8 @@ sap.ui.define([
824
886
  && oStorageEvent.newValue !== that.DirtyState.INITIAL
825
887
  && oStorageEvent.newValue !== that.DirtyState.PENDING) {
826
888
  Log.debug(
827
- "getGlobalDirty() Receiving event key: " + oStorageEvent.key
828
- + " value: " + oStorageEvent.newValue,
889
+ `getGlobalDirty() Receiving event key: ${oStorageEvent.key
890
+ } value: ${oStorageEvent.newValue}`,
829
891
  null,
830
892
  "sap.ushell.Container"
831
893
  );
@@ -843,7 +905,7 @@ sap.ui.define([
843
905
  oLocalStorage.setItem(sUid, "CHECK");
844
906
  oLocalStorage.removeItem(sUid);
845
907
  } catch (e) {
846
- Log.warning("Error calling localStorage.setItem(): " + e, null,
908
+ Log.warning(`Error calling localStorage.setItem(): ${e}`, null,
847
909
  "sap.ushell.Container");
848
910
  return oDeferred.resolve(this.DirtyState.MAYBE_DIRTY).promise();
849
911
  }
@@ -854,19 +916,19 @@ sap.ui.define([
854
916
 
855
917
  oGlobalDirtyDeferred = oDeferred;
856
918
  window.addEventListener("storage", onStorageEvent);
857
- oDeferred.always(function () {
919
+ oDeferred.always(() => {
858
920
  window.removeEventListener("storage", onStorageEvent);
859
921
  oGlobalDirtyDeferred = undefined;
860
922
  });
861
923
 
862
- for (var i = oLocalStorage.length - 1; i >= 0; i -= 1) {
863
- var sStorageKey = oLocalStorage.key(i);
924
+ for (let i = oLocalStorage.length - 1; i >= 0; i -= 1) {
925
+ const sStorageKey = oLocalStorage.key(i);
864
926
  if (sStorageKey.indexOf(S_DIRTY_STATE_PREFIX) === 0) {
865
927
  if (oLocalStorage.getItem(sStorageKey) === "PENDING") {
866
928
  // cleanup unanswered PENDINGS from call before
867
929
  oLocalStorage.removeItem(sStorageKey);
868
930
  Log.debug(
869
- "getGlobalDirty() Cleanup of unresolved 'PENDINGS':" + sStorageKey,
931
+ `getGlobalDirty() Cleanup of unresolved 'PENDINGS':${sStorageKey}`,
870
932
  null,
871
933
  "sap.ushell.Container"
872
934
  );
@@ -875,7 +937,7 @@ sap.ui.define([
875
937
  ushellUtils.localStorageSetItem(sStorageKey,
876
938
  this.DirtyState.PENDING, true);
877
939
  Log.debug(
878
- "getGlobalDirty() Requesting status for: " + sStorageKey,
940
+ `getGlobalDirty() Requesting status for: ${sStorageKey}`,
879
941
  null,
880
942
  "sap.ushell.Container"
881
943
  );
@@ -884,9 +946,9 @@ sap.ui.define([
884
946
  }
885
947
  tryResolve();
886
948
 
887
- //Timeout to resolve the deferred
888
- //If deferred is not resolved during iPending * 2000, resolve with "MAYBE_DIRTY" status
889
- setTimeout(function () {
949
+ // Timeout to resolve the deferred
950
+ // If deferred is not resolved during iPending * 2000, resolve with "MAYBE_DIRTY" status
951
+ setTimeout(() => {
890
952
  if (oDeferred.state() !== "resolved") {
891
953
  // no use of constants because the Container may not exist anymore
892
954
  oDeferred.resolve("MAYBE_DIRTY");
@@ -961,9 +1023,9 @@ sap.ui.define([
961
1023
  * @alias sap.ushell.Container#getDirtyFlag
962
1024
  */
963
1025
  this.getDirtyFlag = function () {
964
- var bDirty = isDirty; // in case it was set
965
- var oNavigationContext = this._oShellNavigationInternal.getNavigationContext();
966
- for (var i = 0; i < aRegisteredDirtyMethods.length; i++) {
1026
+ let bDirty = isDirty; // in case it was set
1027
+ const oNavigationContext = this._oShellNavigationInternal.getNavigationContext();
1028
+ for (let i = 0; i < aRegisteredDirtyMethods.length; i++) {
967
1029
  bDirty = bDirty || aRegisteredDirtyMethods[i](oNavigationContext);
968
1030
  }
969
1031
  return bDirty;
@@ -988,11 +1050,11 @@ sap.ui.define([
988
1050
  return Promise.resolve(this.getDirtyFlag());
989
1051
  }
990
1052
 
991
- var oNavigationContext = this._oShellNavigationInternal.getNavigationContext();
1053
+ const oNavigationContext = this._oShellNavigationInternal.getNavigationContext();
992
1054
  return this.fnAsyncDirtyStateProvider(oNavigationContext)
993
- .then(function (bIsDirty) {
1055
+ .then((bIsDirty) => {
994
1056
  return bIsDirty || this.getDirtyFlag();
995
- }.bind(this));
1057
+ });
996
1058
  };
997
1059
 
998
1060
  // TODO: Remove this API once the OPA test iframe issue is solved. see Shell-controller.js@handleDataLoss
@@ -1110,8 +1172,8 @@ sap.ui.define([
1110
1172
  throw new Error("fnDirty must be a function");
1111
1173
  }
1112
1174
 
1113
- var nIndex = -1;
1114
- for (var i = aRegisteredDirtyMethods.length - 1; i >= 0; i--) {
1175
+ let nIndex = -1;
1176
+ for (let i = aRegisteredDirtyMethods.length - 1; i >= 0; i--) {
1115
1177
  if (aRegisteredDirtyMethods[i] === fnDirty) {
1116
1178
  nIndex = i;
1117
1179
  break;
@@ -1284,7 +1346,7 @@ sap.ui.define([
1284
1346
  * @alias sap.ushell.Container#_getServiceSync
1285
1347
  */
1286
1348
  this._getServiceSync = function (sServiceName, sParameter, bAsync) {
1287
- var oContainerInterface = {};
1349
+ const oContainerInterface = {};
1288
1350
 
1289
1351
  /**
1290
1352
  * For the given remote system,
@@ -1297,7 +1359,7 @@ sap.ui.define([
1297
1359
  * @name sap.ushell.services.ContainerInterface#createAdapter
1298
1360
  */
1299
1361
  function createRemoteAdapter (oSystem) {
1300
- var oDeferred = new jQuery.Deferred();
1362
+ const oDeferred = new jQuery.Deferred();
1301
1363
  if (!oSystem) {
1302
1364
  throw new Error("Missing system");
1303
1365
  }
@@ -1315,10 +1377,10 @@ sap.ui.define([
1315
1377
  // TODO support this once we have some configuration and can thus find adapters
1316
1378
  throw new Error("Unsupported service name");
1317
1379
  }
1318
- var oServiceConfig = getServiceConfig(sServiceName);
1319
- var sModuleName = oServiceConfig.module || "sap.ushell.services." + sServiceName;
1320
- var sKey = sModuleName + "/" + (sParameter || "");
1321
- var oServiceProperties = { config: oServiceConfig.config || {} };
1380
+ const oServiceConfig = getServiceConfig(sServiceName);
1381
+ const sModuleName = oServiceConfig.module || `sap.ushell.services.${sServiceName}`;
1382
+ const sKey = `${sModuleName}/${sParameter || ""}`;
1383
+ const oServiceProperties = { config: oServiceConfig.config || {} };
1322
1384
 
1323
1385
  function createService (ServiceClass, Adapter) {
1324
1386
  oContainerInterface.createAdapter = createRemoteAdapter;
@@ -1326,7 +1388,7 @@ sap.ui.define([
1326
1388
  }
1327
1389
 
1328
1390
  function getServiceInstance (ServiceClass, Async) {
1329
- var oService;
1391
+ let oService;
1330
1392
 
1331
1393
  // Check again if the service has already been created to prevent re-instantiation during race conditions
1332
1394
  if (mServicesByName.containsKey(sKey)) {
@@ -1336,11 +1398,11 @@ sap.ui.define([
1336
1398
  oService = new ServiceClass(oContainerInterface, sParameter, oServiceProperties);
1337
1399
  } else {
1338
1400
  // create and pass adapter for logon system as first parameter
1339
- var oServiceAdapter = createAdapter(sServiceName, oAdapter.getSystem(),
1401
+ const oServiceAdapter = createAdapter(sServiceName, oAdapter.getSystem(),
1340
1402
  sParameter, Async, ServiceClass.useConfiguredAdapterOnly);
1341
1403
  if (Async) {
1342
- return oServiceAdapter.then(function (serviceAdapter) {
1343
- var oServiceInstance = createService(ServiceClass, serviceAdapter);
1404
+ return oServiceAdapter.then((serviceAdapter) => {
1405
+ const oServiceInstance = createService(ServiceClass, serviceAdapter);
1344
1406
  mServicesByName.put(sKey, oServiceInstance);
1345
1407
  return oServiceInstance;
1346
1408
  });
@@ -1363,14 +1425,14 @@ sap.ui.define([
1363
1425
  null,
1364
1426
  "sap.ushell.Container"
1365
1427
  );
1366
- var Service = sap.ui.requireSync(sModuleName.replace(/[.]/g, "/")); // LEGACY API (deprecated)
1428
+ const Service = sap.ui.requireSync(sModuleName.replace(/[.]/g, "/")); // LEGACY API (deprecated)
1367
1429
  return getServiceInstance(Service);
1368
1430
  }
1369
1431
 
1370
1432
  // extract information about the requested service
1371
1433
  if (!mServicesByNamePromise.containsKey(sKey)) {
1372
- var oServicePromise = new Promise(function (resolve, reject) {
1373
- sap.ui.require([sModuleName.replace(/[.]/g, "/")], function (ServiceClass) {
1434
+ const oServicePromise = new Promise((resolve, reject) => {
1435
+ sap.ui.require([sModuleName.replace(/[.]/g, "/")], (ServiceClass) => {
1374
1436
  resolve(getServiceInstance(ServiceClass, true));
1375
1437
  }, reject);
1376
1438
  });
@@ -1401,7 +1463,7 @@ sap.ui.define([
1401
1463
  * @alias sap.ushell.Container#_getServiceAsync
1402
1464
  */
1403
1465
  this._getServiceAsync = function (sServiceName, sParameter) {
1404
- var oContainerInterface = {};
1466
+ const oContainerInterface = {};
1405
1467
 
1406
1468
  /**
1407
1469
  * For the given remote system,
@@ -1414,7 +1476,7 @@ sap.ui.define([
1414
1476
  * @name sap.ushell.services.ContainerInterface#createAdapter
1415
1477
  */
1416
1478
  function createRemoteAdapter (oSystem) {
1417
- var oDeferred = new jQuery.Deferred();
1479
+ const oDeferred = new jQuery.Deferred();
1418
1480
  if (!oSystem) {
1419
1481
  throw new Error("Missing system");
1420
1482
  }
@@ -1432,10 +1494,10 @@ sap.ui.define([
1432
1494
  // TODO support this once we have some configuration and can thus find adapters
1433
1495
  throw new Error("Unsupported service name");
1434
1496
  }
1435
- var oServiceConfig = getServiceConfig(sServiceName);
1436
- var sModuleName = oServiceConfig.module || "sap.ushell.services." + sServiceName;
1437
- var sKey = sModuleName + "/" + (sParameter || "");
1438
- var oServiceProperties = { config: oServiceConfig.config || {} };
1497
+ const oServiceConfig = getServiceConfig(sServiceName);
1498
+ const sModuleName = oServiceConfig.module || `sap.ushell.services.${sServiceName}`;
1499
+ const sKey = `${sModuleName}/${sParameter || ""}`;
1500
+ const oServiceProperties = { config: oServiceConfig.config || {} };
1439
1501
 
1440
1502
  function createService (ServiceClass, Adapter) {
1441
1503
  oContainerInterface.createAdapter = createRemoteAdapter;
@@ -1443,7 +1505,7 @@ sap.ui.define([
1443
1505
  }
1444
1506
 
1445
1507
  function getServiceInstance (ServiceClass) {
1446
- var oService;
1508
+ let oService;
1447
1509
 
1448
1510
  // Check again if the service has already been created to prevent re-instantiation during race conditions
1449
1511
  if (mServicesByName.containsKey(sKey)) {
@@ -1453,10 +1515,10 @@ sap.ui.define([
1453
1515
  oService = new ServiceClass(oContainerInterface, sParameter, oServiceProperties);
1454
1516
  } else {
1455
1517
  // create and pass adapter for logon system as first parameter
1456
- var oServiceAdapter = createAdapter(sServiceName, oAdapter.getSystem(),
1518
+ const oServiceAdapter = createAdapter(sServiceName, oAdapter.getSystem(),
1457
1519
  sParameter, true, ServiceClass.useConfiguredAdapterOnly);
1458
- return oServiceAdapter.then(function (serviceAdapter) {
1459
- var oServiceInstance = createService(ServiceClass, serviceAdapter);
1520
+ return oServiceAdapter.then((serviceAdapter) => {
1521
+ const oServiceInstance = createService(ServiceClass, serviceAdapter);
1460
1522
  mServicesByName.put(sKey, oServiceInstance);
1461
1523
  return oServiceInstance;
1462
1524
  });
@@ -1469,8 +1531,8 @@ sap.ui.define([
1469
1531
  if (!mServicesByName.containsKey(sKey)) {
1470
1532
  // extract information about the requested service
1471
1533
  if (!mServicesByNamePromise.containsKey(sKey)) {
1472
- var oServicePromise = new Promise(function (resolve, reject) {
1473
- sap.ui.require([sModuleName.replace(/[.]/g, "/")], function (ServiceClass) {
1534
+ const oServicePromise = new Promise((resolve, reject) => {
1535
+ sap.ui.require([sModuleName.replace(/[.]/g, "/")], (ServiceClass) => {
1474
1536
  resolve(getServiceInstance(ServiceClass));
1475
1537
  }, reject);
1476
1538
  });
@@ -1478,7 +1540,6 @@ sap.ui.define([
1478
1540
  return oServicePromise;
1479
1541
  }
1480
1542
  return mServicesByNamePromise.get(sKey);
1481
-
1482
1543
  }
1483
1544
  // If the service was first called sync and then async, there will be no
1484
1545
  // promise in mServicesByNamePromise, so we return wrap mServicesByName
@@ -1489,18 +1550,18 @@ sap.ui.define([
1489
1550
  /**
1490
1551
  * Get list of remote systems currently in use.
1491
1552
  *
1492
- * @returns {Object<string, sap.ushell.System>} map of sap.ushell.System
1553
+ * @returns {object<string, sap.ushell.System>} map of sap.ushell.System
1493
1554
  *
1494
1555
  * @since 1.17.1
1495
1556
  * @private
1496
1557
  */
1497
1558
  function getRemoteSystems () {
1498
- for (var i = oLocalStorage.length - 1; i >= 0; i -= 1) {
1499
- var sKey = oLocalStorage.key(i);
1559
+ for (let i = oLocalStorage.length - 1; i >= 0; i -= 1) {
1560
+ const sKey = oLocalStorage.key(i);
1500
1561
  if (sKey.indexOf(sRemoteSystemPrefix) === 0) {
1501
1562
  try {
1502
- var sSystemAlias = sKey.substring(sRemoteSystemPrefix.length);
1503
- var oSystemData = JSON.parse(oLocalStorage.getItem(sKey));
1563
+ const sSystemAlias = sKey.substring(sRemoteSystemPrefix.length);
1564
+ const oSystemData = JSON.parse(oLocalStorage.getItem(sKey));
1504
1565
  mRemoteSystems[sSystemAlias] = new System(oSystemData);
1505
1566
  } catch (e) {
1506
1567
  // local storage contained garbage (non-parsable)
@@ -1538,14 +1599,14 @@ sap.ui.define([
1538
1599
  }
1539
1600
 
1540
1601
  OData.read = function (oRequest, fnSuccess, fnFailure) {
1541
- return stub("OData.read('" +
1542
- (oRequest && oRequest.Uri ? oRequest.requestUri : oRequest) +
1543
- "') disabled during logout processing",
1544
- fnSuccess, fnFailure);
1602
+ return stub(`OData.read('${
1603
+ oRequest && oRequest.Uri ? oRequest.requestUri : oRequest
1604
+ }') disabled during logout processing`,
1605
+ fnSuccess, fnFailure);
1545
1606
  };
1546
1607
  OData.request = function (oRequest, fnSuccess, fnFailure) {
1547
- return stub("OData.request('" + (oRequest ? oRequest.requestUri : "") +
1548
- "') disabled during logout processing", fnSuccess, fnFailure);
1608
+ return stub(`OData.request('${oRequest ? oRequest.requestUri : ""
1609
+ }') disabled during logout processing`, fnSuccess, fnFailure);
1549
1610
  };
1550
1611
  }
1551
1612
 
@@ -1580,8 +1641,8 @@ sap.ui.define([
1580
1641
  * '<protocol://host:port>/sap/public/bc/icf/logoff;o=MY_SYSTEM_ALIAS'
1581
1642
  * Note: Cases 2. and 3. require a corresponding Web Dispatcher rule.
1582
1643
  */
1583
- var sAlias = oRemoteSystem.getAlias();
1584
- var oOldSystem = mRemoteSystems[sAlias];
1644
+ const sAlias = oRemoteSystem.getAlias();
1645
+ const oOldSystem = mRemoteSystems[sAlias];
1585
1646
 
1586
1647
  if (this._isLocalSystem(oRemoteSystem)) {
1587
1648
  return;
@@ -1591,10 +1652,10 @@ sap.ui.define([
1591
1652
  if (oOldSystem.toString() === oRemoteSystem.toString()) { // --> JSON.stringify
1592
1653
  return;
1593
1654
  }
1594
- Log.warning("Replacing " + oOldSystem + " by " + oRemoteSystem,
1655
+ Log.warning(`Replacing ${oOldSystem} by ${oRemoteSystem}`,
1595
1656
  null, "sap.ushell.Container");
1596
1657
  } else {
1597
- Log.debug("Added " + oRemoteSystem, null, "sap.ushell.Container");
1658
+ Log.debug(`Added ${oRemoteSystem}`, null, "sap.ushell.Container");
1598
1659
  }
1599
1660
  mRemoteSystems[sAlias] = oRemoteSystem;
1600
1661
  ushellUtils.localStorageSetItem(sRemoteSystemPrefix + sAlias, oRemoteSystem);
@@ -1610,12 +1671,12 @@ sap.ui.define([
1610
1671
  * @alias sap.ushell.Container#_isLocalSystem
1611
1672
  */
1612
1673
  this._isLocalSystem = function (oSystem) {
1613
- var sAlias = oSystem.getAlias();
1674
+ const sAlias = oSystem.getAlias();
1614
1675
  if (sAlias && sAlias.toUpperCase() === "LOCAL") {
1615
1676
  return true;
1616
1677
  }
1617
- var oURI = new URI(ushellUtils.getLocationHref());
1618
- var sClient = this.getLogonSystem().getClient() || "";
1678
+ const oURI = new URI(ushellUtils.getLocationHref());
1679
+ const sClient = this.getLogonSystem().getClient() || "";
1619
1680
  if (oSystem.getBaseUrl() === oURI.origin() && oSystem.getClient() === sClient) {
1620
1681
  return true;
1621
1682
  }
@@ -1635,14 +1696,14 @@ sap.ui.define([
1635
1696
  * @alias sap.ushell.Container#addRemoteSystemForServiceUrl
1636
1697
  */
1637
1698
  this.addRemoteSystemForServiceUrl = function (sServiceUrl) {
1638
- var oSystemInfo = { baseUrl: ";o=" };
1699
+ const oSystemInfo = { baseUrl: ";o=" };
1639
1700
 
1640
1701
  if (!sServiceUrl || sServiceUrl.charAt(0) !== "/" || sServiceUrl.indexOf("//") === 0) {
1641
1702
  return;
1642
1703
  }
1643
1704
 
1644
1705
  // extract system alias from segment parameter named "o"
1645
- var aMatches = /^[^?]*;o=([^/;?]*)/.exec(sServiceUrl);
1706
+ const aMatches = /^[^?]*;o=([^/;?]*)/.exec(sServiceUrl);
1646
1707
  if (aMatches && aMatches.length >= 2) {
1647
1708
  oSystemInfo.alias = aMatches[1];
1648
1709
  }
@@ -1674,10 +1735,10 @@ sap.ui.define([
1674
1735
  * @alias sap.ushell.Container#attachLogoutEvent
1675
1736
  */
1676
1737
  this.attachLogoutEvent = function (fnFunction, bAsyncFunction) {
1677
- var bFound = false;
1738
+ let bFound = false;
1678
1739
  if (bAsyncFunction === true) {
1679
1740
  assert(typeof (fnFunction) === "function", "Container.attachLogoutEvent: fnFunction must be a function");
1680
- for (var i = 0; i < aAsyncLogoutEventFunctions.length; i++) {
1741
+ for (let i = 0; i < aAsyncLogoutEventFunctions.length; i++) {
1681
1742
  if (aAsyncLogoutEventFunctions[i] === fnFunction) {
1682
1743
  bFound = true;
1683
1744
  break;
@@ -1702,7 +1763,7 @@ sap.ui.define([
1702
1763
  */
1703
1764
  this.detachLogoutEvent = function (fnFunction) {
1704
1765
  oEventProvider.detachEvent("Logout", fnFunction);
1705
- for (var i = 0; i < aAsyncLogoutEventFunctions.length; i++) {
1766
+ for (let i = 0; i < aAsyncLogoutEventFunctions.length; i++) {
1706
1767
  if (aAsyncLogoutEventFunctions[i] === fnFunction) {
1707
1768
  aAsyncLogoutEventFunctions.splice(i, 1);
1708
1769
  break;
@@ -1753,35 +1814,35 @@ sap.ui.define([
1753
1814
  * @alias sap.ushell.Container#defaultLogout
1754
1815
  */
1755
1816
  this.defaultLogout = function () {
1756
- var oDeferred = new jQuery.Deferred();
1817
+ const oDeferred = new jQuery.Deferred();
1757
1818
 
1758
1819
  this.callRegisteredLogoutHandlers().then(() => {
1759
1820
  function resolve () {
1760
- ushellUtils.promisify(oAdapter.logout(true)).finally(function () {
1821
+ ushellUtils.promisify(oAdapter.logout(true)).finally(() => {
1761
1822
  oLocalStorage.removeItem(sSessionTerminationKey);
1762
1823
  oDeferred.resolve();
1763
1824
  });
1764
1825
  }
1765
1826
 
1766
1827
  function logoutLogonSystem () {
1767
- var oDeferredAsyncLogoutEvent = new jQuery.Deferred();
1768
- var oPromiseAsyncLogoutEvent = oDeferredAsyncLogoutEvent.promise();
1769
- var arrLogoutEventsPromises = [];
1828
+ const oDeferredAsyncLogoutEvent = new jQuery.Deferred();
1829
+ const oPromiseAsyncLogoutEvent = oDeferredAsyncLogoutEvent.promise();
1830
+ const arrLogoutEventsPromises = [];
1770
1831
 
1771
1832
  if (aAsyncLogoutEventFunctions.length > 0) {
1772
- for (var i = 0; i < aAsyncLogoutEventFunctions.length; i++) {
1833
+ for (let i = 0; i < aAsyncLogoutEventFunctions.length; i++) {
1773
1834
  arrLogoutEventsPromises.push(aAsyncLogoutEventFunctions[i]());
1774
1835
  }
1775
1836
  Promise.all(arrLogoutEventsPromises).then(oDeferredAsyncLogoutEvent.resolve);
1776
1837
 
1777
- //if after 4 seconds we did not get all the async callbacks
1778
- //promises resolved, we will continue with the logout process
1838
+ // if after 4 seconds we did not get all the async callbacks
1839
+ // promises resolved, we will continue with the logout process
1779
1840
  setTimeout(oDeferredAsyncLogoutEvent.resolve, 4000);
1780
1841
  } else {
1781
1842
  oDeferredAsyncLogoutEvent.resolve();
1782
1843
  }
1783
1844
 
1784
- oPromiseAsyncLogoutEvent.done(function () {
1845
+ oPromiseAsyncLogoutEvent.done(() => {
1785
1846
  if (oEventProvider.fireEvent("Logout", true)) {
1786
1847
  resolve();
1787
1848
  } else {
@@ -1792,7 +1853,7 @@ sap.ui.define([
1792
1853
  }
1793
1854
 
1794
1855
  function federatedLogout () {
1795
- var aRemoteLogoutPromises = [];
1856
+ const aRemoteLogoutPromises = [];
1796
1857
 
1797
1858
  if (fnStorageEventListener) {
1798
1859
  // IE sends localStorage events also to the issuing window, -
@@ -1802,8 +1863,8 @@ sap.ui.define([
1802
1863
 
1803
1864
  ushellUtils.localStorageSetItem(sSessionTerminationKey, "pending");
1804
1865
  that._suppressOData();
1805
- var mSystems = that._getRemoteSystems();
1806
- Object.keys(mSystems).forEach(function (sAlias) {
1866
+ const mSystems = that._getRemoteSystems();
1867
+ Object.keys(mSystems).forEach((sAlias) => {
1807
1868
  try {
1808
1869
  aRemoteLogoutPromises.push(
1809
1870
  // Promisify is used to ensure that the promise is handled for all platform adapters which
@@ -1811,7 +1872,7 @@ sap.ui.define([
1811
1872
  ushellUtils.promisify(createAdapter("Container", mSystems[sAlias]).logout(false))
1812
1873
  );
1813
1874
  } catch (e) {
1814
- Log.warning("Could not create adapter for " + sAlias,
1875
+ Log.warning(`Could not create adapter for ${sAlias}`,
1815
1876
  e.toString(), "sap.ushell.Container");
1816
1877
  }
1817
1878
  oLocalStorage.removeItem(sRemoteSystemPrefix + sAlias);
@@ -2006,14 +2067,14 @@ sap.ui.define([
2006
2067
  * @alias sap.ushell.Container#getFLPConfig
2007
2068
  */
2008
2069
  this.getFLPConfig = function () {
2009
- var oPromise = new Promise(function (resolve, reject) {
2010
- var oRespObj = {
2070
+ const oPromise = new Promise((resolve, reject) => {
2071
+ const oRespObj = {
2011
2072
  URL: this.getFLPUrl()
2012
2073
  };
2013
- //get site scope
2074
+ // get site scope
2014
2075
  if (oConfigSetting.CDMPromise) {
2015
- oConfigSetting.CDMPromise.then(function (oCommonDataModel) {
2016
- oCommonDataModel.getSiteWithoutPersonalization().then(function (oSite) {
2076
+ oConfigSetting.CDMPromise.then((oCommonDataModel) => {
2077
+ oCommonDataModel.getSiteWithoutPersonalization().then((oSite) => {
2017
2078
  oRespObj.scopeId = oSite.site.identification.id;
2018
2079
  resolve(oRespObj);
2019
2080
  });
@@ -2021,7 +2082,7 @@ sap.ui.define([
2021
2082
  } else {
2022
2083
  resolve(oRespObj);
2023
2084
  }
2024
- }.bind(this));
2085
+ });
2025
2086
 
2026
2087
  return oPromise;
2027
2088
  };
@@ -2037,8 +2098,8 @@ sap.ui.define([
2037
2098
  * @alias sap.ushell.Container#getFLPUrl
2038
2099
  */
2039
2100
  this.getFLPUrl = function (bIncludeHash) {
2040
- var sUrl = ushellUtils.getLocationHref();
2041
- var iHashPosition = sUrl.indexOf(UrlParsing.getShellHash(sUrl));
2101
+ const sUrl = ushellUtils.getLocationHref();
2102
+ const iHashPosition = sUrl.indexOf(UrlParsing.getShellHash(sUrl));
2042
2103
 
2043
2104
  if (iHashPosition === -1 || bIncludeHash === true) {
2044
2105
  return sUrl;
@@ -2121,7 +2182,7 @@ sap.ui.define([
2121
2182
  // constructor code -------------------------------------------------------
2122
2183
  // loose coupling to allow re-use from sap.ushell_abap.pbServices.ui2.Catalog#addSystemToServiceUrl
2123
2184
  EventBus.getInstance().subscribe("sap.ushell.Container",
2124
- "addRemoteSystemForServiceUrl", function (sChannelId, sEventId, oData) {
2185
+ "addRemoteSystemForServiceUrl", (sChannelId, sEventId, oData) => {
2125
2186
  that.addRemoteSystemForServiceUrl(oData);
2126
2187
  });
2127
2188
 
@@ -2138,7 +2199,7 @@ sap.ui.define([
2138
2199
  * @alias sap.ushell.Container#_init
2139
2200
  */
2140
2201
  this._init = function (sPlatform, mAdapterPackagesByPlatform) {
2141
- var oPromise = new Promise(function (fnResolve) {
2202
+ const oPromise = new Promise((fnResolve) => {
2142
2203
  // Init mobile support for the case when sap.m.App is not used
2143
2204
  MobileSupport.init();
2144
2205
  // remember the configuration independently of window["sap-ushell-config"]
@@ -2164,159 +2225,119 @@ sap.ui.define([
2164
2225
  // 2. Load "PluginManager" and "CommonDataModel" services
2165
2226
  // 3. Load plugins
2166
2227
  // 4. Register plugins
2167
- var system = new System({
2228
+ const system = new System({
2168
2229
  // this is the initial logon system object
2169
2230
  alias: "",
2170
2231
  platform: oConfig.platform || sPlatform
2171
2232
  });
2233
+
2234
+ function handlePlugins (aServices) {
2235
+ const oPluginManager = aServices[0];
2236
+ const oCDM = aServices[1];
2237
+ const getPlugins = oCDM ? oCDM.getPlugins() : jQuery.when({});
2238
+
2239
+ getPlugins.then((oCDMSitePlugins) => {
2240
+ const oAllPlugins = deepExtend({}, oConfig.bootstrapPlugins, oCDMSitePlugins);
2241
+ oPluginManager.registerPlugins(oAllPlugins);
2242
+ });
2243
+ }
2244
+
2245
+ function prepareNWBC () {
2246
+ if (ushellUtils.hasFLPReady2NotificationCapability()) {
2247
+ // Notify SAP Business Client (NWBC), that the Container and its Services, are ready to be used and
2248
+ // send additional interface
2249
+ sap.ui.require(["sap/ushell/NWBCInterface"], (oNWBCInterface) => {
2250
+ ushellUtils.getPrivateEpcm().doEventFlpReady2(oNWBCInterface);
2251
+ });
2252
+ } else if (ushellUtils.hasFLPReadyNotificationCapability()) {
2253
+ // Notify SAP Business Client (NWBC), that the Container and its Services, are ready to be used.
2254
+ ushellUtils.getPrivateEpcm().doEventFlpReady();
2255
+ }
2256
+ }
2257
+
2258
+ function handleDarkMode (Config) {
2259
+ if (Config.last("/core/darkMode/enabled")) {
2260
+ oContainerInstance.getServiceAsync("DarkModeSupport").then((DarkModeSupportService) => {
2261
+ if (DarkModeSupportService && DarkModeSupportService.setup) { // Many qUnits mock getServiceAsync without DarkModeSupport
2262
+ DarkModeSupportService.setup();
2263
+ }
2264
+ });
2265
+ }
2266
+ }
2267
+
2268
+ function initUITracer (Config) {
2269
+ const bTraceEnabled = !!(new URLSearchParams(window.location.search)).get("sap-ui-xx-ushell-UITraceEnabled");
2270
+ if (Config.last("/core/uiTracer/enabled") || bTraceEnabled) {
2271
+ oContainerInstance.getServiceAsync("UITracer");
2272
+ }
2273
+ }
2274
+
2275
+ function lastSteps () {
2276
+ prepareNWBC();
2277
+
2278
+ // Config should be required after bootstrap when sap-ushell-config is calculated
2279
+ sap.ui.require(["sap/ushell/Config"], (Config) => {
2280
+ handleDarkMode(Config);
2281
+ initUITracer(Config);
2282
+ });
2283
+ }
2284
+
2172
2285
  createAdapter("Container", system, null, true /* async */)
2173
- .then(function (oCreatedAdapter) {
2286
+ .then((oCreatedAdapter) => {
2174
2287
  oAdapter = oCreatedAdapter;
2175
2288
  return oAdapter.load();
2176
2289
  })
2177
- .then(function () {
2290
+ .then(() => {
2178
2291
  // returns true if CDM Plugins are to be loaded
2179
2292
  function _bLoadCDM () {
2180
- var oUshellConfig = window["sap-ushell-config"];
2293
+ const oUshellConfig = window["sap-ushell-config"];
2181
2294
  if (!oUshellConfig || !oUshellConfig.services) {
2182
2295
  return false;
2183
2296
  }
2184
- var oUShellPluginManagerConfig = oUshellConfig.services.PluginManager;
2185
- var oPluginManagerConfig = oUShellPluginManagerConfig && oUShellPluginManagerConfig.config;
2297
+ const oUShellPluginManagerConfig = oUshellConfig.services.PluginManager;
2298
+ const oPluginManagerConfig = oUShellPluginManagerConfig && oUShellPluginManagerConfig.config;
2186
2299
  return oPluginManagerConfig && oPluginManagerConfig.loadPluginsFromSite;
2187
2300
  }
2188
2301
 
2189
2302
  // Load CommonDataModel and PluginManager in parallel
2190
- var asyncServices = [this.getServiceAsync("PluginManager")];
2303
+ const asyncServices = [this.getServiceAsync("PluginManager")];
2191
2304
  if (_bLoadCDM()) {
2192
- //If we have CDM add the scope id to the response configuration
2305
+ // If we have CDM add the scope id to the response configuration
2193
2306
  oConfigSetting.CDMPromise = this.getServiceAsync("CommonDataModel");
2194
2307
  asyncServices.push(oConfigSetting.CDMPromise);
2195
2308
  }
2196
2309
  Promise.all(asyncServices)
2197
- .then(function (aServices) {
2310
+ .then((aServices) => {
2198
2311
  handlePlugins(aServices);
2199
2312
  })
2200
2313
  .then(lastSteps);
2201
2314
 
2202
2315
  // preload given UI Services to allow sync access (via getService()) w/o triggering a sync request (CSP safeguarding of Neo Platform)
2203
- var servicesForPreloading = [];
2316
+ const servicesForPreloading = [];
2204
2317
  if (oConfig.preloadServices !== undefined && Array.isArray(oConfig.preloadServices)) {
2205
- oConfig.preloadServices.forEach(function (serviceName) {
2318
+ oConfig.preloadServices.forEach((serviceName) => {
2206
2319
  servicesForPreloading.push(this.getServiceAsync(serviceName));
2207
- }.bind(this));
2320
+ });
2208
2321
  Log.error("Ushell Config's preloadServices should not be used!");
2209
2322
  }
2210
2323
 
2211
- var oShellNavigationInternalPromise = this.getServiceAsync("ShellNavigationInternal")
2212
- .then(function (oShellNavigationInternal) {
2324
+ const oShellNavigationInternalPromise = this.getServiceAsync("ShellNavigationInternal")
2325
+ .then((oShellNavigationInternal) => {
2213
2326
  this._oShellNavigationInternal = oShellNavigationInternal;
2214
- }.bind(this));
2327
+ });
2215
2328
 
2216
2329
  servicesForPreloading.push(oShellNavigationInternalPromise);
2217
2330
 
2218
2331
  Promise.all(servicesForPreloading)
2219
- .then(function () {
2332
+ .then(() => {
2220
2333
  fnResolve(oAdapter); // Note that resolve might be called before the plugins are registered
2221
2334
  });
2222
- }.bind(this));
2223
-
2224
- function handlePlugins (aServices) {
2225
- var oPluginManager = aServices[0];
2226
- var oCDM = aServices[1];
2227
- var getPlugins = oCDM ? oCDM.getPlugins() : jQuery.when({});
2228
-
2229
- getPlugins.then(function (oCDMSitePlugins) {
2230
- var oAllPlugins = deepExtend({}, oConfig.bootstrapPlugins, oCDMSitePlugins);
2231
- oPluginManager.registerPlugins(oAllPlugins);
2232
2335
  });
2233
- }
2234
-
2235
- function lastSteps () {
2236
- prepareNWBC();
2237
-
2238
- // Config should be required after bootstrap when sap-ushell-config is calculated
2239
- sap.ui.require(["sap/ushell/Config"], function (Config) {
2240
- handleDarkMode(Config);
2241
- initUITracer(Config);
2242
- });
2243
- }
2244
-
2245
- function prepareNWBC () {
2246
- if (ushellUtils.hasFLPReady2NotificationCapability()) {
2247
- // Notify SAP Business Client (NWBC), that the Container and its Services, are ready to be used and
2248
- // send additional interface
2249
- sap.ui.require(["sap/ushell/NWBCInterface"], function (oNWBCInterface) {
2250
- ushellUtils.getPrivateEpcm().doEventFlpReady2(oNWBCInterface);
2251
- });
2252
- } else if (ushellUtils.hasFLPReadyNotificationCapability()) {
2253
- // Notify SAP Business Client (NWBC), that the Container and its Services, are ready to be used.
2254
- ushellUtils.getPrivateEpcm().doEventFlpReady();
2255
- }
2256
- }
2257
-
2258
- function handleDarkMode (Config) {
2259
- if (Config.last("/core/darkMode/enabled")) {
2260
- oContainerInstance.getServiceAsync("DarkModeSupport").then(function (DarkModeSupportService) {
2261
- if (DarkModeSupportService && DarkModeSupportService.setup) { // Many qUnits mock getServiceAsync without DarkModeSupport
2262
- DarkModeSupportService.setup();
2263
- }
2264
- });
2265
- }
2266
- }
2267
-
2268
- function initUITracer (Config) {
2269
- var bTraceEnabled = !!(new URLSearchParams(window.location.search)).get("sap-ui-xx-ushell-UITraceEnabled");
2270
- if (Config.last("/core/uiTracer/enabled") || bTraceEnabled) {
2271
- oContainerInstance.getServiceAsync("UITracer");
2272
- }
2273
- }
2274
- }.bind(this));
2336
+ });
2275
2337
 
2276
2338
  return oPromise;
2277
2339
  };
2278
2340
 
2279
- function afterInit () {
2280
- // register event handler for storage events issued by other UShell windows
2281
- if (typeof oAdapter.logoutRedirect === "function") {
2282
- fnStorageEventListener = function (oStorageEvent) {
2283
- function closeAndRedirectWindow () {
2284
- // Most browsers do not allow closing windows via JS that aren't opened via JS
2285
- // hence we additionally redirect to get these manually opened windows redirected at least.
2286
- // NOTE: It is important to NOT redirect to "/sap/public/bc/icf/logoff"
2287
- // because on iPad Safari e.g. the event is not processed until the window gets the focus.
2288
- // This would terminate any new session opened in between.
2289
- that._closeWindow();
2290
- that._redirectWindow();
2291
- }
2292
-
2293
- if (oContainerInstance !== that) {
2294
- // In integration test suite, old listeners remain which do not belong to the current sap.ushell.Container instance.
2295
- // IE sends events also to own window. Then these old listeners react as if a remote window logged out...
2296
- return;
2297
- }
2298
- // IE9 seems to get the events, but not the values in another window!?
2299
- if (oStorageEvent.key.indexOf(sRemoteSystemPrefix) === 0
2300
- && oStorageEvent.newValue
2301
- && oStorageEvent.newValue !== oLocalStorage.getItem(oStorageEvent.key)) {
2302
- ushellUtils.localStorageSetItem(oStorageEvent.key, oStorageEvent.newValue);
2303
- }
2304
- if (oStorageEvent.key === sSessionTerminationKey) {
2305
- if (oStorageEvent.newValue === "pending") {
2306
- that._suppressOData();
2307
- if (oEventProvider.fireEvent("Logout", true)) {
2308
- closeAndRedirectWindow();
2309
- } else {
2310
- // defer UShell closeWindow to let NWBC receive message asynchronously
2311
- setTimeout(closeAndRedirectWindow, 1000);
2312
- }
2313
- }
2314
- }
2315
- };
2316
- window.addEventListener("storage", fnStorageEventListener);
2317
- }
2318
- }
2319
-
2320
2341
  /**
2321
2342
  * Expose functions for unit testing.
2322
2343
  * Internal use only.
@@ -2366,25 +2387,6 @@ sap.ui.define([
2366
2387
  };
2367
2388
  }
2368
2389
 
2369
- /**
2370
- * Creates and registers injectable ui5services.
2371
- *
2372
- * @param {string[]} aServicesToRegister An array of service names to register.
2373
- * @param {boolean} bAddCallProtection Whether to add call protection check.
2374
- * This may not be wanted in case the service is created via:
2375
- * ServiceFactoryRegistry#get("sap.ushell.ui5service.<service>").createInstance().
2376
- * @private
2377
- */
2378
- function registerInjectableUi5Services (aServicesToRegister, bAddCallProtection) {
2379
- aServicesToRegister.forEach(function (sUshellServiceName) {
2380
- // create registerable factory
2381
- var oServiceFactory = oUi5ServiceFactory.createServiceFactory(sUshellServiceName, bAddCallProtection);
2382
-
2383
- // register factory to allow UI5 to create the service
2384
- ServiceFactoryRegistry.register("sap.ushell.ui5service." + sUshellServiceName, oServiceFactory);
2385
- });
2386
- }
2387
-
2388
2390
  oContainerInstance = new Container();
2389
2391
 
2390
2392
  /**
@@ -2453,9 +2455,9 @@ sap.ui.define([
2453
2455
  commonUtils.migrateV2ServiceConfig(window["sap-ushell-config"]);
2454
2456
  }
2455
2457
 
2456
- var oDeferred = new jQuery.Deferred();
2458
+ const oDeferred = new jQuery.Deferred();
2457
2459
  oContainerInstance.init(sPlatform, mAdapterPackagesByPlatform)
2458
- .then(function () {
2460
+ .then(() => {
2459
2461
  oDeferred.resolve();
2460
2462
  });
2461
2463
  return oDeferred.promise();