@sapui5/sap.ushell 1.135.0 → 1.136.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (728) hide show
  1. package/package.json +1 -1
  2. package/src/main/js/sap/ushell/.library +1 -1
  3. package/src/main/js/sap/ushell/AppInfoParameters.js +13 -16
  4. package/src/main/js/sap/ushell/ApplicationType/UrlPostProcessing.js +0 -4
  5. package/src/main/js/sap/ushell/ApplicationType/urlTemplateResolution.js +5 -12
  6. package/src/main/js/sap/ushell/Container.js +11 -11
  7. package/src/main/js/sap/ushell/Fiori20Adapter.js +5 -3
  8. package/src/main/js/sap/ushell/Fiori20AdapterTest.js +6 -4
  9. package/src/main/js/sap/ushell/Layout.js +3 -3
  10. package/src/main/js/sap/ushell/NWBCInterface.js +8 -11
  11. package/src/main/js/sap/ushell/SessionHandler.js +16 -77
  12. package/src/main/js/sap/ushell/TechnicalParameters.js +1 -1
  13. package/src/main/js/sap/ushell/URLTemplateProcessor/DefinitionParameterSetBuilder.js +1 -1
  14. package/src/main/js/sap/ushell/URLTemplateProcessor/DependencyGraph.js +1 -1
  15. package/src/main/js/sap/ushell/URLTemplateProcessor/Functions.js +1 -1
  16. package/src/main/js/sap/ushell/URLTemplateProcessor/Resolvers.js +1 -1
  17. package/src/main/js/sap/ushell/URLTemplateProcessor/TemplateParameterParser.js +1 -1
  18. package/src/main/js/sap/ushell/URLTemplateProcessor/utils.js +1 -1
  19. package/src/main/js/sap/ushell/URLTemplateProcessor.js +1 -1
  20. package/src/main/js/sap/ushell/Ui5NativeServiceFactory.js +1 -1
  21. package/src/main/js/sap/ushell/Ui5ServiceFactory.js +1 -1
  22. package/src/main/js/sap/ushell/User.js +8 -19
  23. package/src/main/js/sap/ushell/adapters/cdm/ClientSideTargetResolutionAdapter.js +1 -1
  24. package/src/main/js/sap/ushell/adapters/cdm/CommonDataModelAdapter.js +1 -1
  25. package/src/main/js/sap/ushell/adapters/cdm/ConfigurationDefaultsAdapter.js +1 -1
  26. package/src/main/js/sap/ushell/adapters/cdm/ContainerAdapter.js +1 -1
  27. package/src/main/js/sap/ushell/adapters/cdm/LaunchPageAdapter.js +1 -1
  28. package/src/main/js/sap/ushell/adapters/cdm/PagesCommonDataModelAdapter.js +1 -1
  29. package/src/main/js/sap/ushell/adapters/cdm/PersonalizationAdapter.js +1 -1
  30. package/src/main/js/sap/ushell/adapters/cdm/PersonalizationV2Adapter.js +1 -1
  31. package/src/main/js/sap/ushell/adapters/cdm/Settings/UserLanguageAndRegion/UserLanguageAndRegion.view.xml +5 -5
  32. package/src/main/js/sap/ushell/adapters/cdm/Ui5ComponentLoaderAdapter.js +1 -1
  33. package/src/main/js/sap/ushell/adapters/cdm/_LaunchPage/modifyHome.js +1 -1
  34. package/src/main/js/sap/ushell/adapters/cdm/_LaunchPage/readCatalogs.js +1 -1
  35. package/src/main/js/sap/ushell/adapters/cdm/_LaunchPage/readHome.js +1 -1
  36. package/src/main/js/sap/ushell/adapters/cdm/_LaunchPage/uri.transform.js +1 -1
  37. package/src/main/js/sap/ushell/adapters/cdm/util/AppForInbound.js +1 -1
  38. package/src/main/js/sap/ushell/adapters/cdm/util/cdmSiteUtils.js +1 -1
  39. package/src/main/js/sap/ushell/adapters/cdm/v3/AdapterBase.js +25 -25
  40. package/src/main/js/sap/ushell/adapters/cdm/v3/FlpLaunchPageAdapter.js +50 -50
  41. package/src/main/js/sap/ushell/adapters/cdm/v3/LaunchPageAdapter.js +1 -1
  42. package/src/main/js/sap/ushell/adapters/cdm/v3/StaticGroupsAdapter.js +1 -1
  43. package/src/main/js/sap/ushell/adapters/cdm/v3/_LaunchPage/readApplications.js +1 -1
  44. package/src/main/js/sap/ushell/adapters/cdm/v3/_LaunchPage/readCatalogs.js +1 -1
  45. package/src/main/js/sap/ushell/adapters/cdm/v3/_LaunchPage/readHome.js +13 -13
  46. package/src/main/js/sap/ushell/adapters/cdm/v3/_LaunchPage/readPages.js +1 -1
  47. package/src/main/js/sap/ushell/adapters/cdm/v3/_LaunchPage/readUtils.js +1 -1
  48. package/src/main/js/sap/ushell/adapters/cdm/v3/_LaunchPage/readVisualizations.js +1 -1
  49. package/src/main/js/sap/ushell/adapters/cep/NavTargetResolutionAdapter.js +1 -1
  50. package/src/main/js/sap/ushell/adapters/cep/NavTargetResolutionInternalAdapter.js +1 -1
  51. package/src/main/js/sap/ushell/adapters/cep/SearchCEPAdapter.js +1 -1
  52. package/src/main/js/sap/ushell/adapters/cflp/UserDefaultParameterPersistenceAdapter.js +1 -1
  53. package/src/main/js/sap/ushell/adapters/local/AdapterContainer.js +1 -1
  54. package/src/main/js/sap/ushell/adapters/local/AppStateAdapter.js +1 -1
  55. package/src/main/js/sap/ushell/adapters/local/ClientSideTargetResolutionAdapter.js +1 -1
  56. package/src/main/js/sap/ushell/adapters/local/ContainerAdapter.js +1 -1
  57. package/src/main/js/sap/ushell/adapters/local/FlpLaunchPageAdapter.js +1 -1
  58. package/src/main/js/sap/ushell/adapters/local/LaunchPageAdapter.js +1 -1
  59. package/src/main/js/sap/ushell/adapters/local/NavTargetResolutionAdapter.js +1 -1
  60. package/src/main/js/sap/ushell/adapters/local/NavTargetResolutionInternalAdapter.js +1 -1
  61. package/src/main/js/sap/ushell/adapters/local/PageBuildingAdapter.js +1 -1
  62. package/src/main/js/sap/ushell/adapters/local/PagePersistenceAdapter.js +1 -1
  63. package/src/main/js/sap/ushell/adapters/local/PersonalizationAdapter.js +1 -1
  64. package/src/main/js/sap/ushell/adapters/local/PersonalizationV2Adapter.js +1 -1
  65. package/src/main/js/sap/ushell/adapters/local/SearchAdapter.js +1 -1
  66. package/src/main/js/sap/ushell/adapters/local/SearchCEPAdapter.js +1 -1
  67. package/src/main/js/sap/ushell/adapters/local/SupportTicketAdapter.js +1 -1
  68. package/src/main/js/sap/ushell/adapters/local/Ui5ComponentLoaderAdapter.js +1 -1
  69. package/src/main/js/sap/ushell/adapters/local/UserDefaultParameterPersistenceAdapter.js +1 -1
  70. package/src/main/js/sap/ushell/adapters/local/UserInfoAdapter.js +1 -1
  71. package/src/main/js/sap/ushell/api/DWS.js +1 -1
  72. package/src/main/js/sap/ushell/api/NewExperience.js +24 -2
  73. package/src/main/js/sap/ushell/api/RTA.js +65 -4
  74. package/src/main/js/sap/ushell/appIntegration/AppLifeCycle.js +59 -49
  75. package/src/main/js/sap/ushell/appIntegration/ApplicationContainer.js +57 -11
  76. package/src/main/js/sap/ushell/appIntegration/ApplicationContainerCache.js +2 -8
  77. package/src/main/js/sap/ushell/appIntegration/ApplicationContainerRenderer.js +1 -6
  78. package/src/main/js/sap/ushell/appIntegration/ApplicationHandle.js +0 -6
  79. package/src/main/js/sap/ushell/appIntegration/IframeApplicationContainer.js +27 -4
  80. package/src/main/js/sap/ushell/appIntegration/IframeApplicationContainerRenderer.js +8 -6
  81. package/src/main/js/sap/ushell/appIntegration/KeepAliveApps.js +0 -6
  82. package/src/main/js/sap/ushell/appIntegration/PostMessageManager/AppruntimeHandler.js +1 -7
  83. package/src/main/js/sap/ushell/appIntegration/PostMessageManager/ExtensionItems.js +3 -9
  84. package/src/main/js/sap/ushell/appIntegration/PostMessageManager/LifecycleHandler.js +3 -9
  85. package/src/main/js/sap/ushell/appIntegration/PostMessageManager/MessageBrokerHandler.js +0 -4
  86. package/src/main/js/sap/ushell/appIntegration/PostMessageManager/NWBCHandler.js +0 -6
  87. package/src/main/js/sap/ushell/appIntegration/PostMessageManager/ServiceHandler.js +6 -12
  88. package/src/main/js/sap/ushell/appIntegration/PostMessageManager.js +2 -8
  89. package/src/main/js/sap/ushell/appIntegration/PostMessagePluginInterface.js +2 -8
  90. package/src/main/js/sap/ushell/appIntegration/UI5ApplicationContainer.js +0 -6
  91. package/src/main/js/sap/ushell/appIntegration/UI5ApplicationContainerRenderer.js +3 -8
  92. package/src/main/js/sap/ushell/appIntegration/contracts/EmbeddedUI5Handler.js +1 -7
  93. package/src/main/js/sap/ushell/appIntegration/contracts/StatefulContainerV1Handler.js +0 -6
  94. package/src/main/js/sap/ushell/appIntegration/contracts/StatefulContainerV2Handler.js +9 -13
  95. package/src/main/js/sap/ushell/appRuntime/neo/AppInfoService.js +1 -1
  96. package/src/main/js/sap/ushell/appRuntime/neo/ProxyAppUtils.js +2 -2
  97. package/src/main/js/sap/ushell/appRuntime/ui5/AppCommunicationMgr.js +0 -7
  98. package/src/main/js/sap/ushell/appRuntime/ui5/AppRuntime.js +17 -19
  99. package/src/main/js/sap/ushell/appRuntime/ui5/AppRuntimeService.js +1 -1
  100. package/src/main/js/sap/ushell/appRuntime/ui5/renderers/fiori2/AccessKeysAgent.js +2 -1
  101. package/src/main/js/sap/ushell/appRuntime/ui5/renderers/fiori2/Renderer.js +17 -29
  102. package/src/main/js/sap/ushell/appRuntime/ui5/renderers/fiori2/RendererExtensions.js +3 -5
  103. package/src/main/js/sap/ushell/appRuntime/ui5/services/AppConfiguration.js +3 -4
  104. package/src/main/js/sap/ushell/appRuntime/ui5/services/AppLifeCycle.js +1 -1
  105. package/src/main/js/sap/ushell/appRuntime/ui5/services/AppLifeCycleAgent.js +33 -30
  106. package/src/main/js/sap/ushell/appRuntime/ui5/services/AppState.js +7 -13
  107. package/src/main/js/sap/ushell/appRuntime/ui5/services/Bookmark.js +25 -39
  108. package/src/main/js/sap/ushell/appRuntime/ui5/services/BookmarkV2.js +24 -26
  109. package/src/main/js/sap/ushell/appRuntime/ui5/services/CommonDataModel.js +1 -1
  110. package/src/main/js/sap/ushell/appRuntime/ui5/services/Container.js +6 -9
  111. package/src/main/js/sap/ushell/appRuntime/ui5/services/CrossApplicationNavigation.js +58 -75
  112. package/src/main/js/sap/ushell/appRuntime/ui5/services/Extension/Item.js +1 -1
  113. package/src/main/js/sap/ushell/appRuntime/ui5/services/Extension.js +1 -1
  114. package/src/main/js/sap/ushell/appRuntime/ui5/services/FlpLaunchPage.js +1 -1
  115. package/src/main/js/sap/ushell/appRuntime/ui5/services/FrameBoundExtension.js +1 -1
  116. package/src/main/js/sap/ushell/appRuntime/ui5/services/LaunchPage.js +1 -1
  117. package/src/main/js/sap/ushell/appRuntime/ui5/services/MessageBroker.js +1 -1
  118. package/src/main/js/sap/ushell/appRuntime/ui5/services/NavTargetResolution.js +14 -20
  119. package/src/main/js/sap/ushell/appRuntime/ui5/services/NavTargetResolutionInternal.js +14 -21
  120. package/src/main/js/sap/ushell/appRuntime/ui5/services/Navigation.js +30 -45
  121. package/src/main/js/sap/ushell/appRuntime/ui5/services/ReferenceResolver.js +1 -1
  122. package/src/main/js/sap/ushell/appRuntime/ui5/services/ShellNavigation.js +11 -16
  123. package/src/main/js/sap/ushell/appRuntime/ui5/services/ShellNavigationInternal.js +8 -12
  124. package/src/main/js/sap/ushell/appRuntime/ui5/services/ShellUIService.js +16 -21
  125. package/src/main/js/sap/ushell/appRuntime/ui5/services/UserDefaultParameters.js +3 -4
  126. package/src/main/js/sap/ushell/appRuntime/ui5/services/UserInfo.js +1 -1
  127. package/src/main/js/sap/ushell/appRuntime/ui5/services/adapters/Ui5ComponentLoaderAdapter.js +1 -1
  128. package/src/main/js/sap/ushell/bootstrap/SchedulingAgent/logger.js +1 -1
  129. package/src/main/js/sap/ushell/bootstrap/SchedulingAgent/state.js +1 -1
  130. package/src/main/js/sap/ushell/bootstrap/common/common.configure.ui5datetimeformat.js +1 -1
  131. package/src/main/js/sap/ushell/bootstrap/common/common.create.configcontract.core.js +3 -1
  132. package/src/main/js/sap/ushell/bootstrap/common/common.override.registermodulepath.js +1 -1
  133. package/src/main/js/sap/ushell/bootstrap/common/common.util.js +3 -3
  134. package/src/main/js/sap/ushell/bootstrap/sandbox2.js +1 -1
  135. package/src/main/js/sap/ushell/components/CatalogsManager.js +11 -11
  136. package/src/main/js/sap/ushell/components/ComponentKeysHandler.js +6 -6
  137. package/src/main/js/sap/ushell/components/HomepageManager.js +2 -2
  138. package/src/main/js/sap/ushell/components/_HomepageManager/DashboardLoadingManager.js +1 -1
  139. package/src/main/js/sap/ushell/components/_HomepageManager/PersistentPageOperationAdapter.js +1 -1
  140. package/src/main/js/sap/ushell/components/_HomepageManager/TransientPageOperationAdapter.js +1 -1
  141. package/src/main/js/sap/ushell/components/appfinder/AppFinder.controller.js +21 -21
  142. package/src/main/js/sap/ushell/components/appfinder/Catalog.controller.js +6 -6
  143. package/src/main/js/sap/ushell/components/appfinder/Component.js +1 -1
  144. package/src/main/js/sap/ushell/components/appfinder/HierarchyApps.controller.js +4 -5
  145. package/src/main/js/sap/ushell/components/appfinder/VisualizationOrganizerHelper.js +2 -2
  146. package/src/main/js/sap/ushell/components/appfinder/manifest.json +1 -1
  147. package/src/main/js/sap/ushell/components/cepsearchresult/app/util/controls/Category.js +3 -3
  148. package/src/main/js/sap/ushell/components/container/resources/resources_de.properties +1 -1
  149. package/src/main/js/sap/ushell/components/contentFinder/CatalogService.js +1 -1
  150. package/src/main/js/sap/ushell/components/contentFinder/Component.js +9 -9
  151. package/src/main/js/sap/ushell/components/contentFinder/controller/AppSearch.controller.js +5 -5
  152. package/src/main/js/sap/ushell/components/contentFinder/controller/ContentFinderDialog.controller.js +1 -1
  153. package/src/main/js/sap/ushell/components/contentFinder/dialog/Component.js +4 -4
  154. package/src/main/js/sap/ushell/components/contentFinder/dialog/manifest.json +1 -1
  155. package/src/main/js/sap/ushell/components/contentFinder/manifest.json +1 -1
  156. package/src/main/js/sap/ushell/components/contentFinder/model/formatter.js +2 -2
  157. package/src/main/js/sap/ushell/components/contentFinder/resources/resources_ar.properties +1 -1
  158. package/src/main/js/sap/ushell/components/contentFinder/resources/resources_bg.properties +1 -1
  159. package/src/main/js/sap/ushell/components/contentFinder/resources/resources_ca.properties +1 -1
  160. package/src/main/js/sap/ushell/components/contentFinder/resources/resources_cnr.properties +1 -1
  161. package/src/main/js/sap/ushell/components/contentFinder/resources/resources_cs.properties +1 -1
  162. package/src/main/js/sap/ushell/components/contentFinder/resources/resources_cy.properties +1 -1
  163. package/src/main/js/sap/ushell/components/contentFinder/resources/resources_da.properties +2 -2
  164. package/src/main/js/sap/ushell/components/contentFinder/resources/resources_de.properties +1 -1
  165. package/src/main/js/sap/ushell/components/contentFinder/resources/resources_el.properties +1 -1
  166. package/src/main/js/sap/ushell/components/contentFinder/resources/resources_en.properties +1 -1
  167. package/src/main/js/sap/ushell/components/contentFinder/resources/resources_en_GB.properties +1 -1
  168. package/src/main/js/sap/ushell/components/contentFinder/resources/resources_es.properties +1 -1
  169. package/src/main/js/sap/ushell/components/contentFinder/resources/resources_es_MX.properties +1 -1
  170. package/src/main/js/sap/ushell/components/contentFinder/resources/resources_et.properties +1 -1
  171. package/src/main/js/sap/ushell/components/contentFinder/resources/resources_fi.properties +1 -1
  172. package/src/main/js/sap/ushell/components/contentFinder/resources/resources_fr.properties +1 -1
  173. package/src/main/js/sap/ushell/components/contentFinder/resources/resources_fr_CA.properties +1 -1
  174. package/src/main/js/sap/ushell/components/contentFinder/resources/resources_hi.properties +1 -1
  175. package/src/main/js/sap/ushell/components/contentFinder/resources/resources_hr.properties +2 -2
  176. package/src/main/js/sap/ushell/components/contentFinder/resources/resources_hu.properties +1 -1
  177. package/src/main/js/sap/ushell/components/contentFinder/resources/resources_id.properties +1 -1
  178. package/src/main/js/sap/ushell/components/contentFinder/resources/resources_it.properties +1 -1
  179. package/src/main/js/sap/ushell/components/contentFinder/resources/resources_iw.properties +1 -1
  180. package/src/main/js/sap/ushell/components/contentFinder/resources/resources_ja.properties +2 -2
  181. package/src/main/js/sap/ushell/components/contentFinder/resources/resources_kk.properties +1 -1
  182. package/src/main/js/sap/ushell/components/contentFinder/resources/resources_ko.properties +1 -1
  183. package/src/main/js/sap/ushell/components/contentFinder/resources/resources_lt.properties +1 -1
  184. package/src/main/js/sap/ushell/components/contentFinder/resources/resources_lv.properties +1 -1
  185. package/src/main/js/sap/ushell/components/contentFinder/resources/resources_mk.properties +1 -1
  186. package/src/main/js/sap/ushell/components/contentFinder/resources/resources_ms.properties +1 -1
  187. package/src/main/js/sap/ushell/components/contentFinder/resources/resources_nl.properties +1 -1
  188. package/src/main/js/sap/ushell/components/contentFinder/resources/resources_no.properties +1 -1
  189. package/src/main/js/sap/ushell/components/contentFinder/resources/resources_pl.properties +1 -1
  190. package/src/main/js/sap/ushell/components/contentFinder/resources/resources_pt.properties +1 -1
  191. package/src/main/js/sap/ushell/components/contentFinder/resources/resources_pt_PT.properties +1 -1
  192. package/src/main/js/sap/ushell/components/contentFinder/resources/resources_ro.properties +1 -1
  193. package/src/main/js/sap/ushell/components/contentFinder/resources/resources_ru.properties +2 -2
  194. package/src/main/js/sap/ushell/components/contentFinder/resources/resources_sh.properties +1 -1
  195. package/src/main/js/sap/ushell/components/contentFinder/resources/resources_sk.properties +1 -1
  196. package/src/main/js/sap/ushell/components/contentFinder/resources/resources_sl.properties +1 -1
  197. package/src/main/js/sap/ushell/components/contentFinder/resources/resources_sr.properties +1 -1
  198. package/src/main/js/sap/ushell/components/contentFinder/resources/resources_sv.properties +1 -1
  199. package/src/main/js/sap/ushell/components/contentFinder/resources/resources_th.properties +1 -1
  200. package/src/main/js/sap/ushell/components/contentFinder/resources/resources_tr.properties +1 -1
  201. package/src/main/js/sap/ushell/components/contentFinder/resources/resources_uk.properties +1 -1
  202. package/src/main/js/sap/ushell/components/contentFinder/resources/resources_vi.properties +1 -1
  203. package/src/main/js/sap/ushell/components/contentFinder/resources/resources_zh_CN.properties +1 -1
  204. package/src/main/js/sap/ushell/components/contentFinder/resources/resources_zh_TW.properties +1 -1
  205. package/src/main/js/sap/ushell/components/contentFinder/view/AppSearchCategoryTreeTable.fragment.xml +0 -1
  206. package/src/main/js/sap/ushell/components/contentFinderStandalone/Component.js +1 -1
  207. package/src/main/js/sap/ushell/components/contentFinderStandalone/controller/ContentFinderStandalone.controller.js +3 -3
  208. package/src/main/js/sap/ushell/components/contentFinderStandalone/manifest.json +1 -1
  209. package/src/main/js/sap/ushell/components/factsheet/Component.js +1 -1
  210. package/src/main/js/sap/ushell/components/factsheet/tools/ODataUrlTemplating.js +1 -0
  211. package/src/main/js/sap/ushell/components/homeApp/error/HomeAppError.view.xml +1 -1
  212. package/src/main/js/sap/ushell/components/homepage/ActionMode.js +1 -1
  213. package/src/main/js/sap/ushell/components/homepage/Component.js +1 -1
  214. package/src/main/js/sap/ushell/components/homepage/DashboardContent.controller.js +1 -1
  215. package/src/main/js/sap/ushell/components/homepage/DashboardContent.view.js +2 -2
  216. package/src/main/js/sap/ushell/components/homepage/DashboardGroupsBox.js +1 -1
  217. package/src/main/js/sap/ushell/components/homepage/DashboardUIActions.js +1 -1
  218. package/src/main/js/sap/ushell/components/homepage/manifest.json +1 -1
  219. package/src/main/js/sap/ushell/components/pages/ActionMode.js +1 -1
  220. package/src/main/js/sap/ushell/components/pages/Component.js +1 -1
  221. package/src/main/js/sap/ushell/components/pages/MyHomeImport.js +1 -1
  222. package/src/main/js/sap/ushell/components/pages/controller/PageRuntime.controller.js +8 -3
  223. package/src/main/js/sap/ushell/components/pages/manifest.json +1 -1
  224. package/src/main/js/sap/ushell/components/pages/view/MyHomeStart.view.xml +1 -1
  225. package/src/main/js/sap/ushell/components/runtimeSwitcher/controller/RuntimeSwitcher.controller.js +1 -1
  226. package/src/main/js/sap/ushell/components/runtimeSwitcher/manifest.json +1 -1
  227. package/src/main/js/sap/ushell/components/shell/FloatingContainer/manifest.json +1 -1
  228. package/src/main/js/sap/ushell/components/shell/MenuBar/controller/MenuBar.controller.js +4 -0
  229. package/src/main/js/sap/ushell/components/shell/MenuBar/manifest.json +1 -1
  230. package/src/main/js/sap/ushell/components/shell/NavigationBarMenu/controller/NavigationBarMenu.controller.js +1 -1
  231. package/src/main/js/sap/ushell/components/shell/NavigationBarMenu/controller/NavigationBarMenuButton.controller.js +1 -1
  232. package/src/main/js/sap/ushell/components/shell/NavigationBarMenu/manifest.json +1 -1
  233. package/src/main/js/sap/ushell/components/shell/Notifications/Component.js +191 -64
  234. package/src/main/js/sap/ushell/components/shell/Notifications/NotificationsList.controller.js +876 -0
  235. package/src/main/js/sap/ushell/components/shell/Notifications/NotificationsListPopoverContent.view.xml +84 -0
  236. package/src/main/js/sap/ushell/components/shell/Notifications/NotificationsListPopoverHeader.fragment.xml +35 -0
  237. package/src/main/js/sap/ushell/components/shell/PostLoadingHeaderEnhancement/Component.js +23 -9
  238. package/src/main/js/sap/ushell/components/shell/ProductSwitch/Component.js +22 -9
  239. package/src/main/js/sap/ushell/components/shell/Search/manifest.json +1 -1
  240. package/src/main/js/sap/ushell/components/shell/SearchCEP/Component.js +1 -1
  241. package/src/main/js/sap/ushell/components/shell/SearchCEP/SearchProviders/FrequentActivityProvider.js +1 -1
  242. package/src/main/js/sap/ushell/components/shell/SearchCEP/SearchProviders/RecentSearchProvider.js +1 -1
  243. package/src/main/js/sap/ushell/components/shell/SearchCEP/SearchProviders/SearchProvider.js +1 -1
  244. package/src/main/js/sap/ushell/components/shell/SearchCEP/SearchProviders/SearchServiceProvider.js +1 -1
  245. package/src/main/js/sap/ushell/components/shell/Settings/Component.js +19 -14
  246. package/src/main/js/sap/ushell/components/shell/Settings/UserSettings.controller.js +2 -2
  247. package/src/main/js/sap/ushell/components/shell/Settings/UserSettings.view.xml +5 -4
  248. package/src/main/js/sap/ushell/components/shell/Settings/appearance/Appearance.controller.js +12 -17
  249. package/src/main/js/sap/ushell/components/shell/ShellBar/Component.js +11 -2
  250. package/src/main/js/sap/ushell/components/shell/ShellBar/controller/ShellBar.controller.js +123 -21
  251. package/src/main/js/sap/ushell/components/shell/ShellBar/manifest.json +1 -1
  252. package/src/main/js/sap/ushell/components/shell/ShellBar/resources/resources_ar.properties +5 -0
  253. package/src/main/js/sap/ushell/components/shell/ShellBar/resources/resources_bg.properties +5 -0
  254. package/src/main/js/sap/ushell/components/shell/ShellBar/resources/resources_ca.properties +5 -0
  255. package/src/main/js/sap/ushell/components/shell/ShellBar/resources/resources_cnr.properties +5 -0
  256. package/src/main/js/sap/ushell/components/shell/ShellBar/resources/resources_cs.properties +5 -0
  257. package/src/main/js/sap/ushell/components/shell/ShellBar/resources/resources_cy.properties +5 -0
  258. package/src/main/js/sap/ushell/components/shell/ShellBar/resources/resources_da.properties +5 -0
  259. package/src/main/js/sap/ushell/components/shell/ShellBar/resources/resources_de.properties +5 -0
  260. package/src/main/js/sap/ushell/components/shell/ShellBar/resources/resources_el.properties +5 -0
  261. package/src/main/js/sap/ushell/components/shell/ShellBar/resources/resources_en.properties +5 -0
  262. package/src/main/js/sap/ushell/components/shell/ShellBar/resources/resources_en_GB.properties +5 -0
  263. package/src/main/js/sap/ushell/components/shell/ShellBar/resources/resources_es.properties +5 -0
  264. package/src/main/js/sap/ushell/components/shell/ShellBar/resources/resources_es_MX.properties +5 -0
  265. package/src/main/js/sap/ushell/components/shell/ShellBar/resources/resources_et.properties +5 -0
  266. package/src/main/js/sap/ushell/components/shell/ShellBar/resources/resources_fi.properties +5 -0
  267. package/src/main/js/sap/ushell/components/shell/ShellBar/resources/resources_fr.properties +5 -0
  268. package/src/main/js/sap/ushell/components/shell/ShellBar/resources/resources_fr_CA.properties +5 -0
  269. package/src/main/js/sap/ushell/components/shell/ShellBar/resources/resources_hi.properties +5 -0
  270. package/src/main/js/sap/ushell/components/shell/ShellBar/resources/resources_hr.properties +5 -0
  271. package/src/main/js/sap/ushell/components/shell/ShellBar/resources/resources_hu.properties +5 -0
  272. package/src/main/js/sap/ushell/components/shell/ShellBar/resources/resources_id.properties +5 -0
  273. package/src/main/js/sap/ushell/components/shell/ShellBar/resources/resources_it.properties +5 -0
  274. package/src/main/js/sap/ushell/components/shell/ShellBar/resources/resources_iw.properties +5 -0
  275. package/src/main/js/sap/ushell/components/shell/ShellBar/resources/resources_ja.properties +5 -0
  276. package/src/main/js/sap/ushell/components/shell/ShellBar/resources/resources_kk.properties +5 -0
  277. package/src/main/js/sap/ushell/components/shell/ShellBar/resources/resources_ko.properties +5 -0
  278. package/src/main/js/sap/ushell/components/shell/ShellBar/resources/resources_lt.properties +5 -0
  279. package/src/main/js/sap/ushell/components/shell/ShellBar/resources/resources_lv.properties +5 -0
  280. package/src/main/js/sap/ushell/components/shell/ShellBar/resources/resources_mk.properties +5 -0
  281. package/src/main/js/sap/ushell/components/shell/ShellBar/resources/resources_ms.properties +5 -0
  282. package/src/main/js/sap/ushell/components/shell/ShellBar/resources/resources_nl.properties +5 -0
  283. package/src/main/js/sap/ushell/components/shell/ShellBar/resources/resources_no.properties +5 -0
  284. package/src/main/js/sap/ushell/components/shell/ShellBar/resources/resources_pl.properties +5 -0
  285. package/src/main/js/sap/ushell/components/shell/ShellBar/resources/resources_pt.properties +5 -0
  286. package/src/main/js/sap/ushell/components/shell/ShellBar/resources/resources_pt_PT.properties +5 -0
  287. package/src/main/js/sap/ushell/components/shell/ShellBar/resources/resources_ro.properties +5 -0
  288. package/src/main/js/sap/ushell/components/shell/ShellBar/resources/resources_ru.properties +5 -0
  289. package/src/main/js/sap/ushell/components/shell/ShellBar/resources/resources_sh.properties +5 -0
  290. package/src/main/js/sap/ushell/components/shell/ShellBar/resources/resources_sk.properties +5 -0
  291. package/src/main/js/sap/ushell/components/shell/ShellBar/resources/resources_sl.properties +5 -0
  292. package/src/main/js/sap/ushell/components/shell/ShellBar/resources/resources_sr.properties +5 -0
  293. package/src/main/js/sap/ushell/components/shell/ShellBar/resources/resources_sv.properties +5 -0
  294. package/src/main/js/sap/ushell/components/shell/ShellBar/resources/resources_th.properties +5 -0
  295. package/src/main/js/sap/ushell/components/shell/ShellBar/resources/resources_tr.properties +5 -0
  296. package/src/main/js/sap/ushell/components/shell/ShellBar/resources/resources_uk.properties +5 -0
  297. package/src/main/js/sap/ushell/components/shell/ShellBar/resources/resources_vi.properties +5 -0
  298. package/src/main/js/sap/ushell/components/shell/ShellBar/resources/resources_zh_CN.properties +5 -0
  299. package/src/main/js/sap/ushell/components/shell/ShellBar/resources/resources_zh_TW.properties +5 -0
  300. package/src/main/js/sap/ushell/components/shell/ShellBar/view/ShellBar.view.xml +22 -3
  301. package/src/main/js/sap/ushell/components/shell/SideNavigation/Component.js +5 -2
  302. package/src/main/js/sap/ushell/components/shell/SideNavigation/controller/SideNavigation.controller.js +83 -36
  303. package/src/main/js/sap/ushell/components/shell/SideNavigation/css/style.css +5 -0
  304. package/src/main/js/sap/ushell/components/shell/SideNavigation/manifest.json +8 -1
  305. package/src/main/js/sap/ushell/components/shell/SideNavigation/modules/Favorites.js +137 -26
  306. package/src/main/js/sap/ushell/components/shell/SideNavigation/modules/Spaces.js +1 -1
  307. package/src/main/js/sap/ushell/components/shell/SideNavigation/view/Main.view.xml +2 -1
  308. package/src/main/js/sap/ushell/components/shell/UserActionsMenu/Component.js +1 -1
  309. package/src/main/js/sap/ushell/components/shell/UserActionsMenu/UserActionsMenu.controller.js +2 -0
  310. package/src/main/js/sap/ushell/components/shell/UserActionsMenu/UserActionsMenu.fragment.xml +1 -0
  311. package/src/main/js/sap/ushell/components/shell/UserImage/Component.js +1 -1
  312. package/src/main/js/sap/ushell/components/tiles/generic.js +1 -1
  313. package/src/main/js/sap/ushell/components/tiles/indicatorDual/DualTile.controller.js +1 -1
  314. package/src/main/js/sap/ushell/components/tiles/indicatorDualComparison/DualComparison.controller.js +2 -2
  315. package/src/main/js/sap/ushell/components/tiles/indicatorDualDeviation/DualDeviation.controller.js +4 -4
  316. package/src/main/js/sap/ushell/components/tiles/indicatorDualTrend/DualTrend.controller.js +18 -18
  317. package/src/main/js/sap/ushell/components/tiles/indicatorTileUtils/smartBusinessUtil.js +11 -11
  318. package/src/main/js/sap/ushell/components/visualizationOrganizer/Component.js +1 -1
  319. package/src/main/js/sap/ushell/components/workPageBuilder/Component.js +2 -2
  320. package/src/main/js/sap/ushell/components/workPageBuilder/controller/WorkPageBuilder.accessibility.js +2 -2
  321. package/src/main/js/sap/ushell/components/workPageBuilder/controller/WorkPageBuilder.controller.js +30 -36
  322. package/src/main/js/sap/ushell/components/workPageBuilder/controller/WorkPageBuilder.layout.js +1 -1
  323. package/src/main/js/sap/ushell/components/workPageBuilder/controls/WorkPage.js +2 -2
  324. package/src/main/js/sap/ushell/components/workPageBuilder/controls/WorkPageButton.js +1 -1
  325. package/src/main/js/sap/ushell/components/workPageBuilder/controls/WorkPageCell.js +4 -4
  326. package/src/main/js/sap/ushell/components/workPageBuilder/controls/WorkPageColumn.js +2 -2
  327. package/src/main/js/sap/ushell/components/workPageBuilder/controls/WorkPageColumnResizer.js +1 -1
  328. package/src/main/js/sap/ushell/components/workPageBuilder/controls/WorkPageRow.js +1 -1
  329. package/src/main/js/sap/ushell/components/workPageBuilder/manifest.json +1 -1
  330. package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_es_MX.properties +1 -1
  331. package/src/main/js/sap/ushell/components/workPageRuntime/Component.js +1 -1
  332. package/src/main/js/sap/ushell/components/workPageRuntime/controller/WorkPageRuntime.controller.js +2 -2
  333. package/src/main/js/sap/ushell/components/workPageRuntime/manifest.json +1 -1
  334. package/src/main/js/sap/ushell/designtime/ApplicationContainer.designtime.js +1 -1
  335. package/src/main/js/sap/ushell/library.js +10 -2
  336. package/src/main/js/sap/ushell/modules/NavigationMenu.js +90 -0
  337. package/src/main/js/sap/ushell/navigationMode.js +1 -1
  338. package/src/main/js/sap/ushell/performance/ShellAnalytics.js +1 -1
  339. package/src/main/js/sap/ushell/performance/StatisticalRecord.js +1 -1
  340. package/src/main/js/sap/ushell/plugins/appwarmup/Component.js +1 -1
  341. package/src/main/js/sap/ushell/renderer/NavContainer.js +4 -10
  342. package/src/main/js/sap/ushell/renderer/Renderer.js +29 -27
  343. package/src/main/js/sap/ushell/renderer/RendererAppContainer.js +236 -0
  344. package/src/main/js/sap/ushell/renderer/Shell.controller.js +25 -212
  345. package/src/main/js/sap/ushell/renderer/Shell.view.js +34 -24
  346. package/src/main/js/sap/ushell/renderer/allMyApps/AllMyAppsManager.js +6 -6
  347. package/src/main/js/sap/ushell/renderer/rendererTargetWrapper/Component.js +105 -0
  348. package/src/main/js/sap/ushell/renderer/rendererTargetWrapper/RendererTarget.controller.js +83 -0
  349. package/src/main/js/sap/ushell/renderer/rendererTargetWrapper/RendererTarget.view.xml +12 -0
  350. package/src/main/js/sap/ushell/renderer/rendererTargetWrapper/manifest.json +43 -0
  351. package/src/main/js/sap/ushell/renderer/resources/resources.properties +34 -0
  352. package/src/main/js/sap/ushell/renderer/resources/resources_ar.properties +19 -1
  353. package/src/main/js/sap/ushell/renderer/resources/resources_bg.properties +19 -1
  354. package/src/main/js/sap/ushell/renderer/resources/resources_ca.properties +18 -0
  355. package/src/main/js/sap/ushell/renderer/resources/resources_cnr.properties +18 -0
  356. package/src/main/js/sap/ushell/renderer/resources/resources_cs.properties +19 -1
  357. package/src/main/js/sap/ushell/renderer/resources/resources_cy.properties +18 -0
  358. package/src/main/js/sap/ushell/renderer/resources/resources_da.properties +18 -0
  359. package/src/main/js/sap/ushell/renderer/resources/resources_de.properties +18 -0
  360. package/src/main/js/sap/ushell/renderer/resources/resources_el.properties +18 -0
  361. package/src/main/js/sap/ushell/renderer/resources/resources_en.properties +18 -0
  362. package/src/main/js/sap/ushell/renderer/resources/resources_en_GB.properties +18 -0
  363. package/src/main/js/sap/ushell/renderer/resources/resources_en_US_saprigi.properties +18 -0
  364. package/src/main/js/sap/ushell/renderer/resources/resources_es.properties +18 -0
  365. package/src/main/js/sap/ushell/renderer/resources/resources_es_MX.properties +18 -0
  366. package/src/main/js/sap/ushell/renderer/resources/resources_et.properties +18 -0
  367. package/src/main/js/sap/ushell/renderer/resources/resources_fi.properties +18 -0
  368. package/src/main/js/sap/ushell/renderer/resources/resources_fr.properties +18 -0
  369. package/src/main/js/sap/ushell/renderer/resources/resources_fr_CA.properties +19 -1
  370. package/src/main/js/sap/ushell/renderer/resources/resources_hi.properties +21 -3
  371. package/src/main/js/sap/ushell/renderer/resources/resources_hr.properties +18 -0
  372. package/src/main/js/sap/ushell/renderer/resources/resources_hu.properties +18 -0
  373. package/src/main/js/sap/ushell/renderer/resources/resources_id.properties +33 -15
  374. package/src/main/js/sap/ushell/renderer/resources/resources_it.properties +19 -1
  375. package/src/main/js/sap/ushell/renderer/resources/resources_iw.properties +18 -0
  376. package/src/main/js/sap/ushell/renderer/resources/resources_ja.properties +19 -1
  377. package/src/main/js/sap/ushell/renderer/resources/resources_kk.properties +19 -1
  378. package/src/main/js/sap/ushell/renderer/resources/resources_ko.properties +18 -0
  379. package/src/main/js/sap/ushell/renderer/resources/resources_lt.properties +18 -0
  380. package/src/main/js/sap/ushell/renderer/resources/resources_lv.properties +18 -0
  381. package/src/main/js/sap/ushell/renderer/resources/resources_mk.properties +18 -0
  382. package/src/main/js/sap/ushell/renderer/resources/resources_ms.properties +18 -0
  383. package/src/main/js/sap/ushell/renderer/resources/resources_nl.properties +18 -0
  384. package/src/main/js/sap/ushell/renderer/resources/resources_no.properties +18 -0
  385. package/src/main/js/sap/ushell/renderer/resources/resources_pl.properties +18 -0
  386. package/src/main/js/sap/ushell/renderer/resources/resources_pt.properties +18 -0
  387. package/src/main/js/sap/ushell/renderer/resources/resources_pt_PT.properties +18 -0
  388. package/src/main/js/sap/ushell/renderer/resources/resources_ro.properties +18 -0
  389. package/src/main/js/sap/ushell/renderer/resources/resources_ru.properties +18 -0
  390. package/src/main/js/sap/ushell/renderer/resources/resources_sh.properties +18 -0
  391. package/src/main/js/sap/ushell/renderer/resources/resources_sk.properties +18 -0
  392. package/src/main/js/sap/ushell/renderer/resources/resources_sl.properties +18 -0
  393. package/src/main/js/sap/ushell/renderer/resources/resources_sr.properties +18 -0
  394. package/src/main/js/sap/ushell/renderer/resources/resources_sv.properties +18 -0
  395. package/src/main/js/sap/ushell/renderer/resources/resources_th.properties +18 -0
  396. package/src/main/js/sap/ushell/renderer/resources/resources_tr.properties +18 -0
  397. package/src/main/js/sap/ushell/renderer/resources/resources_uk.properties +18 -0
  398. package/src/main/js/sap/ushell/renderer/resources/resources_vi.properties +18 -0
  399. package/src/main/js/sap/ushell/renderer/resources/resources_zh_CN.properties +18 -0
  400. package/src/main/js/sap/ushell/renderer/resources/resources_zh_TW.properties +18 -0
  401. package/src/main/js/sap/ushell/renderer/search/searchComponent/manifest.json +1 -1
  402. package/src/main/js/sap/ushell/renderer/shellHeader/ShellHeader.controller.js +5 -11
  403. package/src/main/js/sap/ushell/renderers/fiori2/History.js +6 -6
  404. package/src/main/js/sap/ushell/renderers/fiori2/LogonFrameProvider.js +6 -6
  405. package/src/main/js/sap/ushell/renderers/fiori2/Renderer.js +11 -11
  406. package/src/main/js/sap/ushell/renderers/fiori2/RendererExtensions.js +2 -2
  407. package/src/main/js/sap/ushell/renderers/fiori2/Shell.view.js +2 -8
  408. package/src/main/js/sap/ushell/renderers/fiori2/allMyApps/AllMyAppsManager.js +6 -6
  409. package/src/main/js/sap/ushell/services/AppConfiguration.js +6 -6
  410. package/src/main/js/sap/ushell/services/AppLifeCycle.js +10 -16
  411. package/src/main/js/sap/ushell/services/AppState.js +1 -1
  412. package/src/main/js/sap/ushell/services/AppType.js +1 -1
  413. package/src/main/js/sap/ushell/services/Bookmark.js +2 -2
  414. package/src/main/js/sap/ushell/services/BookmarkV2.js +14 -14
  415. package/src/main/js/sap/ushell/services/ClientSideTargetResolution/Formatter.js +1 -1
  416. package/src/main/js/sap/ushell/services/ClientSideTargetResolution/InboundIndex.js +1 -1
  417. package/src/main/js/sap/ushell/services/ClientSideTargetResolution/InboundProvider.js +1 -1
  418. package/src/main/js/sap/ushell/services/ClientSideTargetResolution/PrelaunchOperations.js +1 -1
  419. package/src/main/js/sap/ushell/services/ClientSideTargetResolution/Search.js +1 -1
  420. package/src/main/js/sap/ushell/services/ClientSideTargetResolution/StagedLogger.js +1 -1
  421. package/src/main/js/sap/ushell/services/ClientSideTargetResolution/SystemContext.js +1 -1
  422. package/src/main/js/sap/ushell/services/ClientSideTargetResolution/Utils.js +1 -1
  423. package/src/main/js/sap/ushell/services/ClientSideTargetResolution/VirtualInbounds.js +1 -1
  424. package/src/main/js/sap/ushell/services/ClientSideTargetResolution/XAppStateProcessing.js +1 -1
  425. package/src/main/js/sap/ushell/services/ClientSideTargetResolution.js +1 -1
  426. package/src/main/js/sap/ushell/services/CommonDataModel/SiteConverter.js +1 -1
  427. package/src/main/js/sap/ushell/services/CommonDataModel/vizTypeDefaults/VizTypeDefaults.js +1 -1
  428. package/src/main/js/sap/ushell/services/CommonDataModel.js +1 -1
  429. package/src/main/js/sap/ushell/services/Configuration.js +1 -1
  430. package/src/main/js/sap/ushell/services/ConfigurationDefaults.js +1 -1
  431. package/src/main/js/sap/ushell/services/ContentExtensionAdapterFactory.js +6 -6
  432. package/src/main/js/sap/ushell/services/CrossApplicationNavigation.js +3 -3
  433. package/src/main/js/sap/ushell/services/DarkModeSupport.js +9 -4
  434. package/src/main/js/sap/ushell/services/Extension/Item.js +1 -1
  435. package/src/main/js/sap/ushell/services/Extension.js +1 -1
  436. package/src/main/js/sap/ushell/services/FlpLaunchPage.js +54 -53
  437. package/src/main/js/sap/ushell/services/FrameBoundExtension/FloatingContainer.js +1 -1
  438. package/src/main/js/sap/ushell/services/FrameBoundExtension/Footer.js +1 -1
  439. package/src/main/js/sap/ushell/services/FrameBoundExtension/Item.js +1 -1
  440. package/src/main/js/sap/ushell/services/FrameBoundExtension/SidePane.js +1 -1
  441. package/src/main/js/sap/ushell/services/FrameBoundExtension/ToolArea.js +1 -1
  442. package/src/main/js/sap/ushell/services/FrameBoundExtension/UserSettingsEntry.js +1 -1
  443. package/src/main/js/sap/ushell/services/FrameBoundExtension.js +1 -1
  444. package/src/main/js/sap/ushell/services/LaunchPage.js +4 -4
  445. package/src/main/js/sap/ushell/services/Menu.js +1 -1
  446. package/src/main/js/sap/ushell/services/Message.js +1 -1
  447. package/src/main/js/sap/ushell/services/MessageBroker/MessageBrokerEngine.js +21 -53
  448. package/src/main/js/sap/ushell/services/MessageBroker.js +1 -1
  449. package/src/main/js/sap/ushell/services/MessageInternal.js +1 -3
  450. package/src/main/js/sap/ushell/services/NavTargetResolution.js +2 -2
  451. package/src/main/js/sap/ushell/services/NavTargetResolutionInternal.js +0 -1
  452. package/src/main/js/sap/ushell/services/Navigation/compatibility.js +3 -2
  453. package/src/main/js/sap/ushell/services/Navigation/utils.js +1 -1
  454. package/src/main/js/sap/ushell/services/Navigation.js +1 -1
  455. package/src/main/js/sap/ushell/services/NavigationDataProvider.js +1 -1
  456. package/src/main/js/sap/ushell/services/Notifications.js +2 -1
  457. package/src/main/js/sap/ushell/services/NotificationsV2.js +7 -1
  458. package/src/main/js/sap/ushell/services/PageBuilding.js +1 -1
  459. package/src/main/js/sap/ushell/services/PagePersistence.js +1 -1
  460. package/src/main/js/sap/ushell/services/PageReferencing.js +1 -1
  461. package/src/main/js/sap/ushell/services/Pages.js +1 -1
  462. package/src/main/js/sap/ushell/services/Personalization.js +3 -3
  463. package/src/main/js/sap/ushell/services/PersonalizationV2.js +1 -1
  464. package/src/main/js/sap/ushell/services/PluginManager/Extensions.js +1 -1
  465. package/src/main/js/sap/ushell/services/PluginManager/HeaderExtensions.js +1 -1
  466. package/src/main/js/sap/ushell/services/PluginManager/MenuExtensions.js +1 -1
  467. package/src/main/js/sap/ushell/services/PluginManager/SimpleExpression.js +1 -1
  468. package/src/main/js/sap/ushell/services/PluginManager.js +7 -20
  469. package/src/main/js/sap/ushell/services/ReferenceResolver.js +1 -1
  470. package/src/main/js/sap/ushell/services/Search.js +1 -1
  471. package/src/main/js/sap/ushell/services/SearchCEP.js +1 -1
  472. package/src/main/js/sap/ushell/services/SearchableContent.js +1 -1
  473. package/src/main/js/sap/ushell/services/ShellNavigation.js +1 -1
  474. package/src/main/js/sap/ushell/services/ShellNavigationHashChanger.js +2 -2
  475. package/src/main/js/sap/ushell/services/ShellNavigationInternal.js +1 -1
  476. package/src/main/js/sap/ushell/services/SmartNavigation.js +5 -5
  477. package/src/main/js/sap/ushell/services/SpaceContent.js +1 -1
  478. package/src/main/js/sap/ushell/services/UITracer.js +1 -1
  479. package/src/main/js/sap/ushell/services/URLShortening.js +2 -2
  480. package/src/main/js/sap/ushell/services/URLTemplate.js +1 -1
  481. package/src/main/js/sap/ushell/services/Ui5ComponentLoader.js +2 -2
  482. package/src/main/js/sap/ushell/services/UsageAnalytics.js +10 -10
  483. package/src/main/js/sap/ushell/services/UserDefaultParameterPersistence.js +1 -1
  484. package/src/main/js/sap/ushell/services/UserDefaultParameters.js +1 -1
  485. package/src/main/js/sap/ushell/services/UserInfo.js +1 -1
  486. package/src/main/js/sap/ushell/services/UserRecents.js +1 -1
  487. package/src/main/js/sap/ushell/services/VisualizationDataProvider.js +1 -1
  488. package/src/main/js/sap/ushell/services/VisualizationInstantiation.js +2 -2
  489. package/src/main/js/sap/ushell/services/_AppState/AppStatePersistencyMethod.js +1 -0
  490. package/src/main/js/sap/ushell/services/_ContentExtensionAdapterFactory/ContentExtensionAdapterConfig.js +1 -1
  491. package/src/main/js/sap/ushell/services/_ContentExtensionAdapterFactory/FeaturedGroupConfig.js +1 -1
  492. package/src/main/js/sap/ushell/services/_CrossApplicationNavigation/utils.js +9 -10
  493. package/src/main/js/sap/ushell/services/_PageReferencing/PageReferencer.js +1 -1
  494. package/src/main/js/sap/ushell/services/_Personalization/ContextContainer.js +6 -6
  495. package/src/main/js/sap/ushell/services/_Personalization/PersonalizationContainer.js +11 -13
  496. package/src/main/js/sap/ushell/services/_Personalization/PersonalizationContainerVariant.js +4 -4
  497. package/src/main/js/sap/ushell/services/_Personalization/PersonalizationContainerVariantSet.js +12 -11
  498. package/src/main/js/sap/ushell/services/_Personalization/Personalizer.js +5 -3
  499. package/src/main/js/sap/ushell/services/_Personalization/TransientPersonalizer.js +4 -4
  500. package/src/main/js/sap/ushell/services/_Personalization/Variant.js +7 -7
  501. package/src/main/js/sap/ushell/services/_Personalization/VariantSet.js +3 -5
  502. package/src/main/js/sap/ushell/services/_Personalization/WindowAdapter.js +2 -2
  503. package/src/main/js/sap/ushell/services/_Personalization/WindowAdapterContainer.js +2 -1
  504. package/src/main/js/sap/ushell/services/_Personalization/constants.js +9 -10
  505. package/src/main/js/sap/ushell/services/_Personalization/constants.private.js +3 -4
  506. package/src/main/js/sap/ushell/services/_Personalization/utils.js +2 -1
  507. package/src/main/js/sap/ushell/services/personalization/VariantSetAdapter.js +4 -2
  508. package/src/main/js/sap/ushell/state/BackNavigation.js +1 -7
  509. package/src/main/js/sap/ushell/state/ContentDensity.js +1 -7
  510. package/src/main/js/sap/ushell/state/Favicon.js +1 -5
  511. package/src/main/js/sap/ushell/state/StateManager.js +9 -3
  512. package/src/main/js/sap/ushell/state/StateRules.js +5 -0
  513. package/src/main/js/sap/ushell/state/StrategyFactory/HeadEndItemsStrategy.js +8 -1
  514. package/src/main/js/sap/ushell/support/plugins/flpConfig/FlpConfigurationPlugin.js +1 -1
  515. package/src/main/js/sap/ushell/themes/base/MenuBar.less +3 -0
  516. package/src/main/js/sap/ushell/themes/base/Notifications.less +29 -0
  517. package/src/main/js/sap/ushell/themes/base/ShellBar.less +7 -0
  518. package/src/main/js/sap/ushell/themes/base/ShellHeader.less +5 -0
  519. package/src/main/js/sap/ushell/themes/base/library.source.less +1 -0
  520. package/src/main/js/sap/ushell/themes/sap_fiori_3_hcb/Notifications.less +4 -0
  521. package/src/main/js/sap/ushell/themes/sap_fiori_3_hcw/Notifications.less +4 -0
  522. package/src/main/js/sap/ushell/themes/sap_hcb/base_MenuBar.less +3 -0
  523. package/src/main/js/sap/ushell/themes/sap_hcb/base_ShellBar.less +7 -0
  524. package/src/main/js/sap/ushell/themes/sap_hcb/base_ShellHeader.less +5 -0
  525. package/src/main/js/sap/ushell/themes/sap_hcb/library.source.less +1 -0
  526. package/src/main/js/sap/ushell/themes/sap_horizon_hcb/Notifications.less +3 -0
  527. package/src/main/js/sap/ushell/themes/sap_horizon_hcw/Notifications.less +4 -0
  528. package/src/main/js/sap/ushell/thirdparty/Avatar.js +381 -0
  529. package/src/main/js/sap/ushell/thirdparty/BusyIndicator.js +464 -0
  530. package/src/main/js/sap/ushell/thirdparty/Button.js +7 -0
  531. package/src/main/js/sap/ushell/thirdparty/Button2.js +524 -0
  532. package/src/main/js/sap/ushell/thirdparty/Icon.js +296 -0
  533. package/src/main/js/sap/ushell/thirdparty/Icons.js +38 -35
  534. package/src/main/js/sap/ushell/thirdparty/Label.js +115 -0
  535. package/src/main/js/sap/ushell/thirdparty/Link.js +315 -0
  536. package/src/main/js/sap/ushell/thirdparty/List.js +1705 -0
  537. package/src/main/js/sap/ushell/thirdparty/ListItemCustom.js +95 -0
  538. package/src/main/js/sap/ushell/thirdparty/ListItemTemplate.js +3917 -0
  539. package/src/main/js/sap/ushell/thirdparty/Menu.js +406 -0
  540. package/src/main/js/sap/ushell/thirdparty/MenuItem.js +2 -350
  541. package/src/main/js/sap/ushell/thirdparty/MenuItem2.js +355 -0
  542. package/src/main/js/sap/ushell/thirdparty/NotificationList.js +291 -0
  543. package/src/main/js/sap/ushell/thirdparty/NotificationListGroupItem.js +310 -0
  544. package/src/main/js/sap/ushell/thirdparty/NotificationListItem.js +531 -0
  545. package/src/main/js/sap/ushell/thirdparty/NotificationListItemBase.js +98 -0
  546. package/src/main/js/sap/ushell/thirdparty/ShellBar.js +319 -547
  547. package/src/main/js/sap/ushell/thirdparty/Tag.js +307 -0
  548. package/src/main/js/sap/ushell/thirdparty/Text.js +127 -0
  549. package/src/main/js/sap/ushell/thirdparty/UserMenu.js +68 -866
  550. package/src/main/js/sap/ushell/thirdparty/UserMenuItem.js +2 -2
  551. package/src/main/js/sap/ushell/thirdparty/_dynamics/ListItemStandardExpandableTextTemplate.js +193 -0
  552. package/src/main/js/sap/ushell/thirdparty/_dynamics/SAP-icons-TNT.js +561 -0
  553. package/src/main/js/sap/ushell/thirdparty/_dynamics/SAP-icons-TNT2.js +561 -0
  554. package/src/main/js/sap/ushell/thirdparty/_dynamics/SAP-icons-business-suite.js +1194 -0
  555. package/src/main/js/sap/ushell/thirdparty/_dynamics/SAP-icons-business-suite2.js +1194 -0
  556. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_ar3.js +3 -0
  557. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_bg3.js +3 -0
  558. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_ca3.js +3 -0
  559. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_cnr3.js +3 -0
  560. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_cs3.js +3 -0
  561. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_cy3.js +3 -0
  562. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_da3.js +3 -0
  563. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_de3.js +4 -1
  564. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_el3.js +3 -0
  565. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_en3.js +3 -0
  566. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_en_GB3.js +3 -0
  567. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_en_US_sappsd3.js +3 -0
  568. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_en_US_saprigi2.js +3 -0
  569. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_en_US_saprigi3.js +6 -6
  570. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_en_US_saptrc3.js +3 -0
  571. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_es3.js +3 -0
  572. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_es_MX3.js +3 -0
  573. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_et3.js +3 -0
  574. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_fi3.js +3 -0
  575. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_fr3.js +3 -0
  576. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_fr_CA3.js +3 -0
  577. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_hi3.js +3 -0
  578. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_hr3.js +11 -8
  579. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_hu3.js +3 -0
  580. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_id3.js +3 -0
  581. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_it3.js +3 -0
  582. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_iw3.js +3 -0
  583. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_ja3.js +3 -0
  584. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_kk3.js +3 -0
  585. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_ko3.js +3 -0
  586. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_lt3.js +3 -0
  587. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_lv3.js +3 -0
  588. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_mk3.js +3 -0
  589. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_ms3.js +3 -0
  590. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_nl3.js +3 -0
  591. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_no3.js +3 -0
  592. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_pl3.js +3 -0
  593. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_pt3.js +3 -0
  594. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_pt_PT3.js +3 -0
  595. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_ro3.js +3 -0
  596. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_ru3.js +3 -0
  597. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_sh3.js +3 -0
  598. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_sk3.js +3 -0
  599. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_sl3.js +3 -0
  600. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_sr3.js +3 -0
  601. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_sv3.js +3 -0
  602. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_th3.js +3 -0
  603. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_tr3.js +3 -0
  604. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_uk3.js +3 -0
  605. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_vi2.js +1 -1
  606. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_vi3.js +3 -0
  607. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_zh_CN3.js +3 -0
  608. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_zh_TW3.js +3 -0
  609. package/src/main/js/sap/ushell/thirdparty/_dynamics/parameters-bundle.css10.js +1 -1
  610. package/src/main/js/sap/ushell/thirdparty/_dynamics/parameters-bundle.css11.js +1 -1
  611. package/src/main/js/sap/ushell/thirdparty/_dynamics/parameters-bundle.css12.js +1 -1
  612. package/src/main/js/sap/ushell/thirdparty/_dynamics/parameters-bundle.css13.js +1 -1
  613. package/src/main/js/sap/ushell/thirdparty/_dynamics/parameters-bundle.css14.js +1 -1
  614. package/src/main/js/sap/ushell/thirdparty/_dynamics/parameters-bundle.css15.js +1 -1
  615. package/src/main/js/sap/ushell/thirdparty/_dynamics/parameters-bundle.css16.js +1 -1
  616. package/src/main/js/sap/ushell/thirdparty/_dynamics/parameters-bundle.css17.js +1 -1
  617. package/src/main/js/sap/ushell/thirdparty/_dynamics/parameters-bundle.css18.js +1 -1
  618. package/src/main/js/sap/ushell/thirdparty/_dynamics/parameters-bundle.css19.js +1 -1
  619. package/src/main/js/sap/ushell/thirdparty/_dynamics/parameters-bundle.css2.js +1 -1
  620. package/src/main/js/sap/ushell/thirdparty/_dynamics/parameters-bundle.css20.js +1 -1
  621. package/src/main/js/sap/ushell/thirdparty/_dynamics/parameters-bundle.css21.js +1 -1
  622. package/src/main/js/sap/ushell/thirdparty/_dynamics/parameters-bundle.css22.js +1 -1
  623. package/src/main/js/sap/ushell/thirdparty/_dynamics/parameters-bundle.css23.js +1 -1
  624. package/src/main/js/sap/ushell/thirdparty/_dynamics/parameters-bundle.css24.js +1 -1
  625. package/src/main/js/sap/ushell/thirdparty/_dynamics/parameters-bundle.css25.js +7 -0
  626. package/src/main/js/sap/ushell/thirdparty/_dynamics/parameters-bundle.css3.js +1 -1
  627. package/src/main/js/sap/ushell/thirdparty/_dynamics/parameters-bundle.css4.js +1 -1
  628. package/src/main/js/sap/ushell/thirdparty/_dynamics/parameters-bundle.css5.js +1 -1
  629. package/src/main/js/sap/ushell/thirdparty/_dynamics/parameters-bundle.css6.js +1 -1
  630. package/src/main/js/sap/ushell/thirdparty/_dynamics/parameters-bundle.css7.js +1 -1
  631. package/src/main/js/sap/ushell/thirdparty/_dynamics/parameters-bundle.css8.js +1 -1
  632. package/src/main/js/sap/ushell/thirdparty/_dynamics/parameters-bundle.css9.js +1 -1
  633. package/src/main/js/sap/ushell/thirdparty/i18n-defaults.js +141 -135
  634. package/src/main/js/sap/ushell/thirdparty/i18n-defaults2.js +93 -0
  635. package/src/main/js/sap/ushell/thirdparty/information.js +103 -0
  636. package/src/main/js/sap/ushell/thirdparty/overflow.js +45 -0
  637. package/src/main/js/sap/ushell/thirdparty/parameters-bundle.css.js +8 -0
  638. package/src/main/js/sap/ushell/thirdparty/toLowercaseEnumValue.js +15 -0
  639. package/src/main/js/sap/ushell/thirdparty/ui5/webcomponents/Avatar.js +4 -0
  640. package/src/main/js/sap/ushell/thirdparty/ui5/webcomponents/Button.js +4 -0
  641. package/src/main/js/sap/ushell/thirdparty/ui5/webcomponents/Label.js +4 -0
  642. package/src/main/js/sap/ushell/thirdparty/ui5/webcomponents/Menu.js +4 -0
  643. package/src/main/js/sap/ushell/thirdparty/ui5/webcomponents/MenuItem.js +4 -0
  644. package/src/main/js/sap/ushell/thirdparty/ui5/webcomponents/dist/Avatar.js +113 -0
  645. package/src/main/js/sap/ushell/thirdparty/ui5/webcomponents/dist/Button.js +123 -0
  646. package/src/main/js/sap/ushell/thirdparty/ui5/webcomponents/dist/Label.js +75 -0
  647. package/src/main/js/sap/ushell/thirdparty/ui5/webcomponents/dist/Menu.js +90 -0
  648. package/src/main/js/sap/ushell/thirdparty/ui5/webcomponents-base.js +1 -1
  649. package/src/main/js/sap/ushell/thirdparty/ui5/webcomponents-fiori/NotificationList.js +4 -0
  650. package/src/main/js/sap/ushell/thirdparty/ui5/webcomponents-fiori/NotificationListGroupItem.js +4 -0
  651. package/src/main/js/sap/ushell/thirdparty/ui5/webcomponents-fiori/NotificationListItem.js +4 -0
  652. package/src/main/js/sap/ushell/thirdparty/ui5/webcomponents-fiori/dist/NotificationList.js +60 -0
  653. package/src/main/js/sap/ushell/thirdparty/ui5/webcomponents-fiori/dist/NotificationListGroupItem.js +72 -0
  654. package/src/main/js/sap/ushell/thirdparty/ui5/webcomponents-fiori/dist/NotificationListItem.js +96 -0
  655. package/src/main/js/sap/ushell/thirdparty/ui5/webcomponents-fiori/dist/NotificationListItemBase.js +51 -0
  656. package/src/main/js/sap/ushell/thirdparty/ui5/webcomponents-fiori/dist/ShellBar.js +18 -6
  657. package/src/main/js/sap/ushell/thirdparty/ui5/webcomponents-fiori.js +1 -1
  658. package/src/main/js/sap/ushell/thirdparty/ui5/webcomponents-icons-business-suite/AllIcons.js +26 -0
  659. package/src/main/js/sap/ushell/thirdparty/ui5/webcomponents-icons-tnt/AllIcons.js +26 -0
  660. package/src/main/js/sap/ushell/thirdparty/ui5/webcomponents.js +1 -1
  661. package/src/main/js/sap/ushell/thirdparty/webcomponents-base.js +41 -37
  662. package/src/main/js/sap/ushell/thirdparty/webcomponents-fiori.js +8 -8
  663. package/src/main/js/sap/ushell/thirdparty/webcomponents.js +16 -16
  664. package/src/main/js/sap/ushell/ui/ShellHeaderRenderer.js +5 -1
  665. package/src/main/js/sap/ushell/ui/appfinder/AppBoxRenderer.js +2 -1
  666. package/src/main/js/sap/ushell/ui/cards/RecentActivitiesExtension.js +1 -1
  667. package/src/main/js/sap/ushell/ui/footerbar/AddBookmarkButton.js +5 -1
  668. package/src/main/js/sap/ushell/ui/footerbar/SaveAsTile.controller.js +2 -1
  669. package/src/main/js/sap/ushell/ui/footerbar/SaveAsTile.view.js +2 -1
  670. package/src/main/js/sap/ushell/ui/footerbar/SendAsEmailButton.js +2 -1
  671. package/src/main/js/sap/ushell/ui/launchpad/AnchorItem.js +1 -1
  672. package/src/main/js/sap/ushell/ui/launchpad/AnchorItemRenderer.js +2 -1
  673. package/src/main/js/sap/ushell/ui/launchpad/AnchorNavigationBar.js +1 -1
  674. package/src/main/js/sap/ushell/ui/launchpad/AnchorNavigationBarRenderer.js +1 -1
  675. package/src/main/js/sap/ushell/ui/launchpad/DashboardGroupsContainer.js +2 -1
  676. package/src/main/js/sap/ushell/ui/launchpad/DashboardGroupsContainerRenderer.js +3 -2
  677. package/src/main/js/sap/ushell/ui/launchpad/ExtendedChangeDetection.js +1 -1
  678. package/src/main/js/sap/ushell/ui/launchpad/Section.js +1 -1
  679. package/src/main/js/sap/ushell/ui/launchpad/ViewPortState.js +3 -3
  680. package/src/main/js/sap/ushell/ui/launchpad/VizInstance.js +23 -1
  681. package/src/main/js/sap/ushell/ui/launchpad/VizInstanceAbap.js +35 -34
  682. package/src/main/js/sap/ushell/ui/launchpad/VizInstanceCdm.js +5 -2
  683. package/src/main/js/sap/ushell/ui/launchpad/VizInstanceLaunchPage.js +1 -1
  684. package/src/main/js/sap/ushell/ui/launchpad/section/CompactArea.js +1 -1
  685. package/src/main/js/sap/ushell/ui/shell/RightFloatingContainer.js +249 -249
  686. package/src/main/js/sap/ushell/ui/shell/ShellAppTitle.js +73 -6
  687. package/src/main/js/sap/ushell/ui/shell/ShellHeadItem.js +2 -2
  688. package/src/main/js/sap/ushell/ui/shell/ToolAreaItem.js +1 -1
  689. package/src/main/js/sap/ushell/ui/utils.js +1 -1
  690. package/src/main/js/sap/ushell/ui5service/ShellUIServiceFactory.js +1 -1
  691. package/src/main/js/sap/ushell/ui5service/UserStatus.js +1 -1
  692. package/src/main/js/sap/ushell/utils/UriParameters.js +1 -0
  693. package/src/main/js/sap/ushell/utils/UrlShortening.js +3 -3
  694. package/src/main/js/sap/ushell/utils/workpage/WorkPageHost.js +4 -4
  695. package/src/main/js/sap/ushell/utils/workpage/WorkPageService.js +1 -1
  696. package/src/main/js/sap/ushell/utils/workpage/WorkPageVizInstantiation.js +1 -1
  697. package/src/main/js/sap/ushell/utils/workpage/resources/resources_es_MX.properties +1 -1
  698. package/src/test/js/sap/ushell/bootstrap/sandbox.js +1 -1
  699. package/ui5.yaml +0 -1
  700. package/src/main/js/sap/ushell/components/applicationIntegration/AppLifeCycle.js +0 -24
  701. package/src/main/js/sap/ushell/components/applicationIntegration/Storage.js +0 -19
  702. package/src/main/js/sap/ushell/components/applicationIntegration/application/Application.js +0 -23
  703. package/src/main/js/sap/ushell/components/applicationIntegration/application/BlueBoxHandler.js +0 -23
  704. package/src/main/js/sap/ushell/components/applicationIntegration/application/BlueBoxesCache.js +0 -16
  705. package/src/main/js/sap/ushell/components/applicationIntegration/application/PostMessageAPI.js +0 -22
  706. package/src/main/js/sap/ushell/components/applicationIntegration/application/PostMessageAPIInterface.js +0 -17
  707. package/src/main/js/sap/ushell/components/applicationIntegration/application/PostMessageUtils.js +0 -19
  708. package/src/main/js/sap/ushell/components/applicationIntegration/application/WebGUIStatefulHandler.js +0 -20
  709. package/src/main/js/sap/ushell/components/applicationIntegration/configuration/AppMeta.js +0 -24
  710. package/src/main/js/sap/ushell/components/applicationIntegration/relatedServices/RelatedServices.js +0 -24
  711. package/src/main/js/sap/ushell/components/applicationIntegrationOld/AppLifeCycle.js +0 -1926
  712. package/src/main/js/sap/ushell/components/applicationIntegrationOld/Storage.js +0 -62
  713. package/src/main/js/sap/ushell/components/applicationIntegrationOld/application/Application.js +0 -709
  714. package/src/main/js/sap/ushell/components/applicationIntegrationOld/application/BlueBoxHandler.js +0 -406
  715. package/src/main/js/sap/ushell/components/applicationIntegrationOld/application/BlueBoxesCache.js +0 -263
  716. package/src/main/js/sap/ushell/components/applicationIntegrationOld/application/PostMessageAPI.js +0 -2382
  717. package/src/main/js/sap/ushell/components/applicationIntegrationOld/application/PostMessageAPIInterface.js +0 -143
  718. package/src/main/js/sap/ushell/components/applicationIntegrationOld/application/PostMessageUtils.js +0 -192
  719. package/src/main/js/sap/ushell/components/applicationIntegrationOld/application/WebGUIStatefulHandler.js +0 -90
  720. package/src/main/js/sap/ushell/components/applicationIntegrationOld/configuration/AppMeta.js +0 -193
  721. package/src/main/js/sap/ushell/components/applicationIntegrationOld/relatedServices/RelatedServices.js +0 -91
  722. package/src/main/js/sap/ushell/components/container/ApplicationContainer.js +0 -1769
  723. package/src/main/js/sap/ushell/components/container/IframePOSTUtils.js +0 -232
  724. package/src/main/js/sap/ushell/renderer/RendererRootViewFallback.fragment.xml +0 -8
  725. package/src/main/js/sap/ushell/thirdparty/_dynamics/parameters-bundle.css.js +0 -7
  726. package/src/main/js/sap/ushell/thirdparty/parameters-bundle.css25.js +0 -7194
  727. package/src/main/js/sap/ushell/ui/AppContainer.js +0 -271
  728. package/src/main/js/sap/ushell/ui/AppContainerRenderer.js +0 -42
@@ -1,1769 +0,0 @@
1
- // Copyright (c) 2009-2025 SAP SE, All Rights Reserved
2
-
3
- /**
4
- * @fileOverview The UI integration's SAPUI5 control which supports application embedding.
5
- * @version 1.135.0
6
- */
7
- sap.ui.define([
8
- "sap/base/Log",
9
- "sap/base/util/deepEqual",
10
- "sap/base/util/uid",
11
- "sap/ushell/utils/UriParameters",
12
- "sap/m/MessagePopover",
13
- "sap/m/Text",
14
- "sap/ui/core/Component",
15
- "sap/ui/core/ComponentContainer",
16
- "sap/ui/core/Control",
17
- "sap/ui/core/EventBus",
18
- "sap/ui/core/Icon",
19
- "sap/ui/core/RenderManager",
20
- "sap/ui/core/Supportability",
21
- "sap/ui/core/mvc/View",
22
- "sap/ui/Device",
23
- "sap/ui/thirdparty/jquery",
24
- "sap/ui/thirdparty/URI",
25
- "sap/ushell/ApplicationType",
26
- "sap/ushell/Config",
27
- "sap/ushell/EventHub",
28
- "sap/ushell/library", // css style dependency
29
- "sap/ushell/resources",
30
- "sap/ushell/System",
31
- "sap/ushell/User",
32
- "sap/ushell/utils",
33
- "sap/ui/thirdparty/hasher",
34
- "sap/ushell/components/container/IframePOSTUtils",
35
- "sap/ushell/Container",
36
- "sap/ushell/ApplicationType/systemAlias",
37
- "sap/ushell/utils/UrlParsing"
38
- ], function (
39
- Log,
40
- deepEqual,
41
- fnGetUid,
42
- UriParameters,
43
- MessagePopover,
44
- Text,
45
- Component,
46
- ComponentContainer,
47
- Control,
48
- EventBus,
49
- Icon,
50
- RenderManager,
51
- Supportability,
52
- View,
53
- Device,
54
- jQuery,
55
- URI,
56
- ApplicationType,
57
- Config,
58
- EventHub,
59
- ushellLibrary,
60
- resources,
61
- System,
62
- User,
63
- ushellUtils,
64
- hasher,
65
- IframePOSTUtils,
66
- Container,
67
- systemAlias,
68
- UrlParsing
69
- ) {
70
- "use strict";
71
-
72
- if (!Config.last("/core/navigation/enableAppLifeCycleFallback")) {
73
- return {};
74
- }
75
-
76
- var sPREFIX = "sap.ushell.components.container.";
77
- var sCOMPONENT = sPREFIX + "ApplicationContainer";
78
- var sDIRTY_STATE_PREFIX = "sap.ushell.Container.dirtyState.";
79
- var mLogouts,
80
- oShellCommunicationHandlersObj,
81
- fnHandleMessageEvent,
82
- oMessageBrokerServicePromise;
83
- var bPluginsStatusChecked = false;
84
- var bKeepMessagesForPlugins = false;
85
- var arrMessagesForPlugins = [];
86
- var arrMessagesIdx = 0;
87
- var iIframeIdx = 0;
88
-
89
- // we have to cache the UI5 version first to have it available sync for the renderer
90
- let sUI5Version = null;
91
- let oUI5VersionPromise = ushellUtils.getUi5Version().then((sVersion) => {
92
- Log.debug(`Using ui5-version: ${sVersion}`, null, sCOMPONENT);
93
- sUI5Version = sVersion;
94
- });
95
-
96
- /**
97
- * Method to adapt the CrossApplicationNavigation service method
98
- * isUrlSupported to the request as issued by the SAP UI5 MessagePopover control
99
- *
100
- * @param {object} an object defined by the MessagePopover control containing the URL
101
- * which should be validated and an ES6 promise object which has to be used to receive the validation results.
102
- * This promise always needs to be resolved expecting { allowed: true|false } as a an argument to the resolve function.
103
- *
104
- * @since 1.30.0
105
- * @private
106
- */
107
- function adaptIsUrlSupportedResultForMessagePopover (oToBeValidated) {
108
- Container.getServiceAsync("CrossApplicationNavigation").then(function (oCAService) {
109
- oCAService.isUrlSupported(oToBeValidated.url).then(function () {
110
- oToBeValidated.promise.resolve({ allowed: true, id: oToBeValidated.id });
111
- }, function () {
112
- oToBeValidated.promise.resolve({ allowed: false, id: oToBeValidated.id });
113
- });
114
- });
115
- }
116
-
117
- function initializeMessagePopover (eventData) {
118
- //Hook CrossApplicationNavigation URL validation logic into the sap.m.MessagePopover control
119
- var oMessageConceptDefaultHandlers = {
120
- asyncURLHandler: ApplicationContainer.prototype._adaptIsUrlSupportedResultForMessagePopover
121
- };
122
- if (MessagePopover && MessagePopover.setDefaultHandlers) {
123
- MessagePopover.setDefaultHandlers(oMessageConceptDefaultHandlers);
124
- }
125
- EventHub.emit("StepDone", eventData.stepName);
126
- }
127
-
128
- // MessagePopover and its dependent controls resources are ~200K. In order to minimize core-min file it is bundled in core-ext file.
129
- // Therefore we need to wait until all resorces are loaded, before we initialize the MessagePopover.
130
- EventHub.once("initMessagePopover").do(initializeMessagePopover);
131
-
132
- mLogouts = new ushellUtils.Map();
133
-
134
- /**
135
- * Returns the logout handler function for the given container object.
136
- *
137
- * @param {sap.ushell.components.container.ApplicationContainer} oContainer
138
- * the container object for which the logout handler is of interest
139
- * @returns {function}
140
- * the logout handler function for the given container. If no handler is registered
141
- * <code>undefined</code> is returned.
142
- * @private
143
- */
144
- function getLogoutHandler (oContainer) {
145
- return mLogouts.get(oContainer.getId());
146
- }
147
-
148
- function getCommunicationHandlers () {
149
- return oShellCommunicationHandlersObj;
150
- }
151
-
152
- /**
153
- * Returns a map of all search parameters present in the search string of the given URL.
154
- *
155
- * @param {string} sUrl
156
- * the URL
157
- * @returns {object}
158
- * in member <code>startupParameters</code> <code>map&lt;string, string[]}></code> from key to array of values,
159
- * in members <code>sap-xapp-state</code> an array of Cross application Navigation state keys, if present
160
- * Note that this key is removed from startupParameters!
161
- * @private
162
- */
163
- function getParameterMap (sUrl) {
164
- var mParams = UriParameters.fromURL(sUrl).mParams,
165
- xAppState = mParams["sap-xapp-state"],
166
- xAppStateData = mParams["sap-xapp-state-data"],
167
- oResult;
168
- delete mParams["sap-xapp-state"];
169
- delete mParams["sap-xapp-state-data"];
170
- oResult = {
171
- startupParameters: mParams
172
- };
173
- if (xAppStateData) {
174
- oResult["sap-xapp-state"] = xAppStateData;
175
- }
176
- if (xAppState) { // sap-xapp-state has priority over sap-xapp-state-data
177
- oResult["sap-xapp-state"] = xAppState;
178
- }
179
- return oResult;
180
- }
181
-
182
- /**
183
- * Returns a translated text from the resource bundle.
184
- *
185
- * @param {string} sKey
186
- * the key in the resource bundle
187
- * @param {string[]} [aArgs]
188
- * arguments to replace {0}..{9}
189
- * @returns {string}
190
- * the translated text
191
- */
192
- function getTranslatedText (sKey, aArgs) {
193
- return resources.i18n.getText(sKey, aArgs);
194
- }
195
-
196
- /**
197
- * Creates some SAPUI5 control telling the user that an error has occured.
198
- *
199
- * @returns {sap.ui.core.Control}
200
- */
201
- function createErrorControl () {
202
- return new Icon({
203
- size: "2rem",
204
- src: "sap-icon://error",
205
- tooltip: ApplicationContainer.prototype._getTranslatedText("an_error_has_occured")
206
- });
207
- }
208
-
209
- /**
210
- * Destroys the child aggregation.
211
- */
212
- function destroyChild (oContainer) {
213
- const oChild = oContainer.getAggregation("child");
214
-
215
- if (oChild instanceof ComponentContainer) {
216
- // name contains .Component - must be trimmed
217
- const sComponentName = oChild.getComponentInstance().getMetadata().getName().replace(/\.Component$/, "");
218
- Log.debug("unloading component " + sComponentName, null, sCOMPONENT);
219
- }
220
- oContainer.destroyAggregation("child");
221
- }
222
-
223
- /**
224
- * Creates a new SAPUI5 view or component for the given container and makes it a child. A view
225
- * is created if the name ends with ".view.(viewType)".
226
- * @param {sap.ushell.components.container.ApplicationContainer} oContainer
227
- * the container
228
- * @param {string} sUrl
229
- * the base URL
230
- * @param {string} sAdditionalInformation
231
- * the additional information in the form "SAPUI5=<view_or_component_name>"
232
- * @returns {Promise}
233
- * when resolved, the view, or some "error" control
234
- */
235
- function createUi5View (oContainer, sUrl, sAdditionalInformation) {
236
- return new Promise(function (fnResolve) {
237
- var iIndex,
238
- iLast,
239
- aMatches,
240
- oUrlData,
241
- sNamespace,
242
- oViewData = {},
243
- sViewName,
244
- sViewType;
245
-
246
- function setControlProps (oControl) {
247
- oControl.setWidth(oContainer.getWidth());
248
- oControl.setHeight(oContainer.getHeight());
249
- oControl.addStyleClass("sapUShellApplicationContainer");
250
- // Note: As a composite control, we need to aggregate our children (at least internally)!
251
- oContainer.setAggregation("child", oControl, true);
252
- }
253
-
254
- iIndex = sUrl.indexOf("?");
255
- if (iIndex >= 0) {
256
- // pass GET parameters of URL via view data
257
- oUrlData = ApplicationContainer.prototype._getParameterMap(sUrl);
258
- oViewData = oUrlData.startupParameters;
259
- sUrl = sUrl.slice(0, iIndex);
260
- }
261
-
262
- if (sUrl.slice(-1) !== "/") {
263
- sUrl += "/"; // ensure URL ends with a slash
264
- }
265
-
266
- if (/\.view\.(\w+)$/i.test(sAdditionalInformation)) {
267
- // ends with ".view.(viewType)": a view description
268
- // /SAPUI5=(namespace)/(viewName).view.(viewType)/
269
- aMatches = /^SAPUI5=(?:([^/]+)\/)?([^/]+)\.view\.(\w+)$/i.exec(sAdditionalInformation);
270
- if (!aMatches) {
271
- Log.error("Invalid SAPUI5 URL", sAdditionalInformation, sCOMPONENT);
272
- fnResolve(ApplicationContainer.prototype._createErrorControl());
273
- return;
274
- }
275
- // determine namespace, view name, and view type
276
- sNamespace = aMatches[1];
277
- sViewName = aMatches[2];
278
- sViewType = aMatches[3].toUpperCase(); // @see sap.ui.core.mvc.ViewType
279
-
280
- if (sNamespace) {
281
- // prefix view name with namespace
282
- sViewName = sNamespace + "." + sViewName;
283
- } else {
284
- // derive namespace from view name's "package"
285
- iLast = sViewName.lastIndexOf(".");
286
- if (iLast < 1) {
287
- Log.error("Missing namespace", sAdditionalInformation, sCOMPONENT);
288
- return ApplicationContainer.prototype._createErrorControl();
289
- }
290
- sNamespace = sViewName.slice(0, iLast);
291
- }
292
- } else {
293
- // a component
294
- sNamespace = sAdditionalInformation.replace(/^SAPUI5=/, "");
295
- }
296
-
297
- var paths = {};
298
- var sAmdNamespace = sNamespace.replace(/\./g, "/");
299
- paths[sNamespace] = sUrl + sAmdNamespace;
300
- sap.ui.loader.config({
301
- paths: paths
302
- });
303
-
304
- // destroy the child control before creating a new control with the same ID
305
- ApplicationContainer.prototype._destroyChild(oContainer);
306
- if (sViewName) {
307
- if (oContainer.getApplicationConfiguration()) {
308
- oViewData.config = oContainer.getApplicationConfiguration();
309
- }
310
- View.create({
311
- id: oContainer.getId() + "-content",
312
- type: sViewType,
313
- viewData: oViewData || {},
314
- viewName: sViewName
315
- })
316
- .then(function (oControl) {
317
- oContainer.fireEvent("applicationConfiguration");
318
- setControlProps(oControl);
319
- fnResolve(oControl);
320
- });
321
- } else {
322
- Log.debug("loading component " + sNamespace, null, sCOMPONENT);
323
- // presence of startupParameters member indicates root component, thus
324
- // we assure it's always filled with at least empty object
325
- var componentData = oUrlData ? {
326
- startupParameters: oUrlData.startupParameters
327
- } : { startupParameters: {} };
328
- if (oUrlData && oUrlData["sap-xapp-state-data"]) {
329
- componentData["sap-xapp-state"] = oUrlData["sap-xapp-state-data"];
330
- }
331
- if (oUrlData && oUrlData["sap-xapp-state"]) { // sap-xapp-state has priority over sap-xapp-state-data
332
- componentData["sap-xapp-state"] = oUrlData["sap-xapp-state"];
333
- }
334
- if (oContainer.getApplicationConfiguration()) {
335
- componentData.config = oContainer.getApplicationConfiguration();
336
- }
337
-
338
- Component.create({
339
- id: oContainer.getId() + "-component",
340
- componentData: componentData,
341
- name: sNamespace
342
- })
343
- .then(function (oComponent) {
344
- //TODO ensure event is fired even in error case (try/catch)
345
- oContainer.fireEvent("applicationConfiguration",
346
- { configuration: oComponent.getManifestEntry("/sap.ui5/config") });
347
- var oNewControl = new ComponentContainer({
348
- id: oContainer.getId() + "-content",
349
- component: oComponent
350
- });
351
- setControlProps(oNewControl);
352
- fnResolve(oNewControl);
353
- });
354
- }
355
- });
356
- }
357
-
358
- /**
359
- * publish an external event asynchronously via the event bus
360
- * The channel id is hard coded to sap.ushell
361
- * @param {string} sEventName event name
362
- * @param {object} oData event parameters
363
- */
364
- function publishExternalEvent (sEventName, oData) {
365
- setTimeout(function () {
366
- EventBus.getInstance().publish("sap.ushell", sEventName, oData);
367
- }, 0);
368
- }
369
-
370
- /**
371
- * Creates a new SAPUI5 component for the given container and makes it a child.
372
- * @param {sap.ushell.components.container.ApplicationContainer} oContainer
373
- * the container
374
- * @param {string} sUrl
375
- * the base URL
376
- * @param {string} sComponentName the component name
377
- * @returns {{oControl: object, oPromise: Promise}}
378
- * the control already created or the promise to the control to be created
379
- */
380
- function createUi5Component (oContainer, sUrl, sComponentName) {
381
- var that = this,
382
- oDeferred,
383
- oResult = {
384
- oControl: undefined,
385
- oPromise: undefined
386
- },
387
- iIndex,
388
- oComponentContainer,
389
- oUrlData,
390
- oComponentData = { startupParameters: {} },
391
- oComponentConfig,
392
- oComponentHandle = oContainer.getComponentHandle(),
393
- oPluginLoadingPromise,
394
- sPluginLoadingPromiseState;
395
-
396
- function setControlProps (oComponent) {
397
- // TODO ensure event is fired even in error case (try/catch)
398
- oContainer.fireEvent("applicationConfiguration", { configuration: oComponent.getManifestEntry("/sap.ui5/config") });
399
- oComponentContainer = new ComponentContainer({
400
- id: oContainer.getId() + "-content",
401
- component: oComponent
402
- });
403
-
404
- oComponentContainer.setHeight(oContainer.getHeight());
405
- oComponentContainer.setWidth(oContainer.getWidth());
406
- oComponentContainer.addStyleClass("sapUShellApplicationContainer");
407
- oContainer._disableRouterEventHandler = ApplicationContainer.prototype._disableRouter.bind(that, oComponent);
408
- EventBus.getInstance().subscribe("sap.ushell.components.container.ApplicationContainer", "_prior.newUI5ComponentInstantion", oContainer._disableRouterEventHandler);
409
-
410
- // Note: As a composite control, we need to aggregate our children (at least internally)!
411
- oContainer.setAggregation("child", oComponentContainer, true);
412
-
413
- Container.getServiceAsync("PluginManager").then(function (oPluginManager) {
414
- oPluginLoadingPromise = oPluginManager.getPluginLoadingPromise("RendererExtensions");
415
- sPluginLoadingPromiseState = oPluginLoadingPromise && oPluginLoadingPromise.state();
416
- if (sPluginLoadingPromiseState === "pending") {
417
- oPluginLoadingPromise
418
- .done(function () {
419
- ApplicationContainer.prototype._publishExternalEvent("appComponentLoaded", { component: oComponent });
420
- })
421
- .fail(function () {
422
- ApplicationContainer.prototype._publishExternalEvent("appComponentLoaded", { component: oComponent });
423
- });
424
- }
425
- if (sPluginLoadingPromiseState === "resolved" || sPluginLoadingPromiseState === "rejected") {
426
- ApplicationContainer.prototype._publishExternalEvent("appComponentLoaded", { component: oComponent });
427
- }
428
- });
429
-
430
- return oComponentContainer;
431
- }
432
-
433
- iIndex = sUrl.indexOf("?");
434
- if (iIndex >= 0) {
435
- // pass GET parameters of URL via component data as member startupParameters and as xAppState
436
- // (to allow blending with other oComponentData usage, e.g. extensibility use case)
437
- oUrlData = ApplicationContainer.prototype._getParameterMap(sUrl);
438
- oComponentData = {
439
- startupParameters: oUrlData.startupParameters
440
- };
441
- if (oUrlData["sap-xapp-state-data"]) {
442
- oComponentData["sap-xapp-state"] = oUrlData["sap-xapp-state-data"];
443
- }
444
- if (oUrlData["sap-xapp-state"]) { // sap-xapp-state has priority over sap-xapp-state-data
445
- oComponentData["sap-xapp-state"] = oUrlData["sap-xapp-state"];
446
- }
447
- sUrl = sUrl.slice(0, iIndex);
448
- }
449
-
450
- if (oContainer.getApplicationConfiguration()) {
451
- oComponentData.config = oContainer.getApplicationConfiguration();
452
- }
453
-
454
- if (sUrl.slice(-1) !== "/") {
455
- sUrl += "/"; // ensure URL ends with a slash
456
- }
457
-
458
- // destroy the child control before creating a new control with the same ID
459
- ApplicationContainer.prototype._destroyChild(oContainer);
460
-
461
- oComponentConfig = {
462
- id: oContainer.getId() + "-component",
463
- name: sComponentName,
464
- componentData: oComponentData
465
- };
466
-
467
- Log.debug("Creating component instance for " + sComponentName, JSON.stringify(oComponentConfig), sCOMPONENT);
468
-
469
- EventBus.getInstance().publish("sap.ushell.components.container.ApplicationContainer", "_prior.newUI5ComponentInstantion", {
470
- name: sComponentName
471
- });
472
-
473
- if (oComponentHandle) {
474
- var oComponent = oComponentHandle.getInstance(oComponentConfig);
475
- oResult.oControl = setControlProps(oComponent);
476
- } else {
477
- oDeferred = new jQuery.Deferred();
478
-
479
- var paths = {};
480
- var sAmdComponentName = sComponentName.replace(/\./g, "/");
481
- paths[sAmdComponentName] = sUrl;
482
- sap.ui.loader.config({
483
- paths: paths
484
- });
485
-
486
- Log.error("No component handle available for '" + sComponentName + "'; fallback to component.load()", null, sCOMPONENT);
487
-
488
- Component.create({
489
- id: oContainer.getId() + "-component",
490
- name: sComponentName,
491
- manifest: false,
492
- componentData: oComponentData
493
- })
494
- .then(function (oComponent) {
495
- oDeferred.resolve(setControlProps(oComponent));
496
- });
497
- oResult.oPromise = oDeferred.promise();
498
- }
499
- return oResult;
500
- }
501
-
502
- /**
503
- * Invoke <code>getRouter.stop()<code> on the oComponentAn event handler for the onNewAppInstantiated event
504
- * @param {object} oComponent
505
- * a SAPUI5 Component instance
506
- */
507
- function disableRouter (oComponent) {
508
- var rt;
509
- if ((oComponent instanceof Component) && (typeof oComponent.getRouter === "function")) {
510
- rt = oComponent.getRouter();
511
- if (rt && (typeof rt.stop === "function")) {
512
- Log.info("router stopped for instance " + oComponent.getId());
513
- rt.stop();
514
- }
515
- }
516
- }
517
-
518
- /**
519
- * Creates a system object that describes the URL's server.
520
- * @param {string} sUrl
521
- * the URL
522
- * @param {object}
523
- * the system object with <code>alias</code>, <code>baseUrl</code> describing the URL's
524
- * server and <code>client</code> the client from the request property
525
- * <code>sap-client</code>.
526
- */
527
- function createSystemForUrl (sUrl) {
528
- var oAnchor = document.createElement("a"),
529
- sClient = UriParameters.fromURL(sUrl).get("sap-client"),
530
- sBase;
531
-
532
- oAnchor.href = sUrl;
533
- sBase = oAnchor.protocol + "//" + oAnchor.host;
534
- return new System({
535
- alias: sClient ? sBase + "?sap-client=" + sClient : sBase,
536
- baseUrl: sBase,
537
- client: sClient || undefined,
538
- platform: "abap"
539
- });
540
- }
541
-
542
- /**
543
- * Determine if the source of a received postMessage can be considered as trusted. We consider
544
- * the content window of the application container's iframe as trusted
545
- *
546
- * @param {object} oContainer
547
- * the application container instance
548
- * @param {object} oMessage
549
- * the postMessage event object
550
- * @returns {boolean}
551
- * true if source is considered to be trustworthy
552
- * @private
553
- * @since 1.24
554
- */
555
- function isTrustedPostMessageSource (oContainer, oMessage) {
556
- var bTrusted = false,
557
- oDomRef = oContainer.getDomRef(),
558
- oUri,
559
- sOrigin;
560
-
561
- // In case the app runs in iFrame, we need to change the position of the oDomRef from the (parent) div element to the IFrame element
562
- if (oContainer.getIframeWithPost() === true && oDomRef && oDomRef.getAttribute && oDomRef.getAttribute("sap-iframe-app") == "true") {
563
- oDomRef = jQuery("#" + oDomRef.getAttribute("id") + "-iframe")[0];
564
- }
565
-
566
- if (oDomRef) {
567
- // In case the app runs in iFrame we trust the iframe itself and all the URLs from the same origin
568
- // as configured in iFrame.
569
- oUri = URI(oContainer._getIFrameUrl(oDomRef) || window.location && window.location.href || "");
570
- sOrigin = oUri.protocol() + "://" + oUri.host();
571
-
572
- bTrusted = (oMessage.source === oDomRef.contentWindow) || (oMessage.origin === sOrigin);
573
- }
574
-
575
- return bTrusted;
576
- }
577
-
578
- /**
579
- * Returns the IFrame rendered by this application container.
580
- *
581
- * @returns {object}
582
- * The iFrame DOM element or null if this cannot be retrieved.
583
- */
584
- function getIFrame () {
585
- var oIFrame = this.getDomRef();
586
- if (!oIFrame || oIFrame.tagName !== "IFRAME") {
587
- if (this.getIframeWithPost() === true && oIFrame && oIFrame.getAttribute && oIFrame.getAttribute("sap-iframe-app") == "true") {
588
- return jQuery("#" + oIFrame.getAttribute("id") + "-iframe")[0];
589
- }
590
- return null;
591
- }
592
- return oIFrame;
593
- }
594
-
595
- /**
596
- * Returns the IFrame URL (both in a simple iframe or in iframe with form+post)
597
- *
598
- * @param {object} oIFrame
599
- * optional. the iframe DOM element.
600
- * @returns {string}
601
- * The iFrame URL.
602
- */
603
- function getIFrameUrl (oIFrame) {
604
- var sUrl;
605
-
606
- if (oIFrame === undefined) {
607
- oIFrame = this._getIFrame();
608
- }
609
-
610
- if (this.getIframeWithPost() === true) {
611
- sUrl = jQuery("#" + oIFrame.getAttribute("id").replace("-iframe", "-form"))[0].action;
612
- if (sUrl === undefined && (new URI()).query(true).hasOwnProperty("sap-isolation-enabled")) {
613
- sUrl = oIFrame.src;
614
- }
615
- } else {
616
- sUrl = oIFrame.src;
617
- }
618
-
619
- return sUrl;
620
- }
621
-
622
- /**
623
- * Event handler receiving post message events
624
- *
625
- * @param {object} oContainer
626
- * the current application container.
627
- * @param {Event} oMessage
628
- * the received postMessage event
629
- *
630
- * @private
631
- * @since 1.21.2
632
- *
633
- */
634
- function handleMessageEvent (oContainer, oMessage) {
635
- //first, check that the messages arrived from the iframe this listener was created for
636
- // if (oContainer && oContainer._getIFrame && oContainer._getIFrame() && oContainer._getIFrame().contentWindow !== oMessage.source) {
637
- // return;
638
- // }
639
-
640
- var sUi5ComponentName = oContainer && oContainer.getUi5ComponentName && oContainer.getUi5ComponentName(),
641
- oMessageData = oMessage.data,
642
- bIframeIsValidMsg = typeof oMessageData === "string" && oMessageData.indexOf("sap.ushell.appRuntime.iframeIsValid") > 0;
643
-
644
- if (oContainer && !oContainer.getActive() && bIframeIsValidMsg !== true) {
645
- Log.debug(
646
- "Skipping handling of postMessage 'message' event with data '" + JSON.stringify(oMessageData) + "' on inactive container '" + oContainer.getId() + "'",
647
- "Only active containers can handle 'message' postMessage event",
648
- "sap.ushell.components.container.ApplicationContainer"
649
- );
650
- return;
651
- }
652
-
653
- if (typeof sUi5ComponentName === "string") {
654
- Log.debug(
655
- "Skipping handling of postMessage 'message' event with data '" + JSON.stringify(oMessageData) + "' on container of UI5 application '" + sUi5ComponentName + "'",
656
- "Only non UI5 application containers can handle 'message' postMessage event",
657
- "sap.ushell.components.container.ApplicationContainer"
658
- );
659
- return;
660
- }
661
-
662
- var oMessageStatus = {
663
- bPluginsStatusChecked: bPluginsStatusChecked,
664
- bKeepMessagesForPlugins: bKeepMessagesForPlugins,
665
- bApiRegistered: true
666
- };
667
-
668
- fnHandleMessageEvent(oContainer, oMessage, oMessageStatus);
669
- ApplicationContainer.prototype._handlePostMessagesForPluginsPostLoading(oContainer, oMessage, oMessageStatus);
670
- }
671
-
672
- /**
673
- * Handle post message requests that could not be processed before the
674
- * 'RendererExtensions' plugins finished loading.
675
- * The function collects that unprocessed messages while the plugins
676
- * are still loaded. After the plugins finished loading, we run
677
- * on the queue and process the post messages again, and after
678
- * that we disable the mechanism and empty the queue.
679
- *
680
- * @param {sap.ushell.components.container.ApplicationContainer} oContainer
681
- * application container received the post message
682
- * @param {object} oMessage
683
- * the post message received
684
- * @param {object} oMessageStatus
685
- * processing result status of the message
686
- *
687
- * @private
688
- */
689
- function handlePostMessagesForPluginsPostLoading (oContainer, oMessage, oMessageStatus) {
690
- var oPluginPromise,
691
- sPluginPromiseState;
692
-
693
- if (oMessageStatus.bApiRegistered !== false) {
694
- return;
695
- }
696
-
697
- Container.getServiceAsync("PluginManager").then(function (oPluginManager) {
698
- if (bPluginsStatusChecked === false) {
699
- bPluginsStatusChecked = true;
700
- oPluginPromise = oPluginManager.getPluginLoadingPromise("RendererExtensions");
701
- sPluginPromiseState = oPluginPromise && oPluginPromise.state();
702
- if (sPluginPromiseState === "pending") {
703
- bKeepMessagesForPlugins = true;
704
- oPluginPromise.always(function () {
705
- var oMsgObj;
706
- bKeepMessagesForPlugins = false;
707
- Log.debug("Processing post messages queue after 'RendererExtensions' plugins loaded, queue size is: "
708
- + arrMessagesForPlugins.length,
709
- null,
710
- "sap.ushell.components.container.ApplicationContainer");
711
- for (var i = 0; i < arrMessagesForPlugins.length; i++) {
712
- oMsgObj = arrMessagesForPlugins[i];
713
- try {
714
- ApplicationContainer.prototype._handleMessageEvent.call(oMsgObj.that, oMsgObj.oContainer, oMsgObj.oMessage);
715
- } catch (ex) {
716
- Log.error(ex.message || ex, null, "sap.ushell.components.container.ApplicationContainer");
717
- }
718
- }
719
- arrMessagesForPlugins = [];
720
- });
721
- }
722
- }
723
-
724
- if (bKeepMessagesForPlugins === true) {
725
- arrMessagesForPlugins.push({
726
- index: arrMessagesIdx++,
727
- that: this,
728
- oContainer: oContainer,
729
- oMessage: oMessage
730
- });
731
- }
732
- });
733
- }
734
-
735
- /**
736
- * Reset all global variables related to the messages processing when
737
- * plugins are not loaded yet.
738
- * This function is called from the qunit only.
739
- *
740
- * @private
741
- */
742
- function resetPluginsLoadIndications () {
743
- bPluginsStatusChecked = false;
744
- bKeepMessagesForPlugins = false;
745
- arrMessagesForPlugins = [];
746
- arrMessagesIdx = 0;
747
- }
748
-
749
- /**
750
- * Logout Event Handler.
751
- * Calls the logout URL when the NWBC is used in the canvas.
752
- *
753
- * @param {sap.ushell.components.container.ApplicationContainer} oContainer
754
- * application container having the NWBC iframe
755
- * @param {sap.ui.base.Event} oEvent
756
- * oEvent.preventDefault() is called to let the caller know that the
757
- * following redirect has to be deferred in order get the NWBC logout done.
758
- *
759
- * @private
760
- */
761
- function logout (oContainer, oEvent) {
762
- var oIframe = oContainer._getIFrame(),
763
- sApplicationType = oContainer.getApplicationType();
764
-
765
- if (ushellUtils.isApplicationTypeEmbeddedInIframe(oContainer.getApplicationType(sApplicationType)) && oIframe) {
766
- var oUri = new URI(oContainer._getIFrameUrl(oIframe));
767
- var targetDomain = oUri.protocol() + "://" + oUri.host();
768
-
769
- oIframe.contentWindow.postMessage(JSON.stringify(
770
- { action: "pro54_disableDirtyHandler" }
771
- ), targetDomain);
772
- // tell caller that at least one NWBC needs some time to receive a message
773
- oEvent.preventDefault();
774
- }
775
- }
776
-
777
- /**
778
- * Renders the given child control inside a DIV representing the given container.
779
- *
780
- * @param {sap.ui.core.RenderManager} oRenderManager
781
- * @param {sap.ushell.components.container.ApplicationContainer} oContainer
782
- * the application container which is "replaced" by the error control
783
- * @param {sap.ui.core.Control} [oChild]
784
- */
785
- function renderControlInDiv (oRenderManager, oContainer, oChild) {
786
- oRenderManager
787
- .openStart("div", oContainer)
788
- .accessibilityState(oContainer)
789
- .class("sapUShellApplicationContainer")
790
- .style("height", oContainer.getHeight())
791
- .style("width", oContainer.getWidth())
792
- .openEnd();
793
-
794
- if (oChild) {
795
- oRenderManager.renderControl(oChild);
796
- }
797
- oRenderManager.close("div");
798
- }
799
-
800
- /**
801
- * Check if adjustNwbcUrl needs to be called, and if needed - call it
802
- *
803
- * @param {sap.ushell.components.container.ApplicationContainer} oContainer Application Container
804
- * @param {ApplicationType.enum} sApplicationType Application type
805
- * @param {string} sUrl Url that needs to be adjusted
806
- * @param {boolean} bForFramelessWindow whether the url is for a frameless window
807
- * the base URL
808
- * @returns {string} Url what was adjusted
809
- * @private
810
- */
811
- function checkNwbcUrlAdjustment (oContainer, sApplicationType, sUrl, bForFramelessWindow) {
812
- if (bForFramelessWindow === undefined) {
813
- bForFramelessWindow = false;
814
- }
815
- if (ushellUtils.isApplicationTypeEmbeddedInIframe(sApplicationType, true) || (oContainer && ushellUtils.isApplicationTypeEmbeddedInIframe(oContainer.getFrameworkId()))) {
816
- var sTargetNavigationMode = oContainer && oContainer.getTargetNavigationMode();
817
-
818
- // amend already resolved url with additional parameters
819
- sUrl = ApplicationContainer.prototype._adjustNwbcUrl(sUrl, sApplicationType, sTargetNavigationMode, oContainer && oContainer.getStatefulType() > 0, bForFramelessWindow);
820
-
821
- // add this container to list of NWBC-containing containers
822
- if (oContainer && bForFramelessWindow === false) {
823
- ushellUtils.localStorageSetItem(oContainer.globalDirtyStorageKey, Container.DirtyState.INITIAL);
824
- }
825
- }
826
-
827
- return sUrl;
828
- }
829
-
830
- /**
831
- * Amends the NavTargetResolutionInternal response with theme, sap-ushell-version, accessibility and post parameters if present.
832
- * Theme and accessibility information is only added for the NWBC application type.
833
- *
834
- * @param {string} sUrl
835
- * Already resolved url (NavTargetResolutionInternal response)
836
- * @param {string} sUrlApplicationType
837
- * The application type of <code>sUrl</code>
838
- * @param {string} sTargetNavigationMode
839
- * The (external) navigation mode to add in the sap-target-navmode parameter
840
- * @param {boolean} bReuseSession whether the session should is reused
841
- * @param {boolean} bForFramelessWindow whether the url is for a frameless window
842
- * @returns {string}
843
- * Modified url having additional parameters
844
- * @private
845
- */
846
- function adjustNwbcUrl (sUrl, sUrlApplicationType, sTargetNavigationMode, bReuseSession, bForFramelessWindow) {
847
-
848
- // Parameters of the shell specific part to be added for NWBC Url
849
- var oShPara = {};
850
-
851
- if (bForFramelessWindow === undefined) {
852
- bForFramelessWindow = false;
853
- }
854
- var sTheme;
855
-
856
- function addSearchOrShellParamsToURL (sUrlorHash, oShellParams) {
857
- if (sUrlorHash.indexOf("#") === -1) {
858
- return UrlParsing.addParamsToUrl(sUrlorHash, oShellParams);
859
- }
860
- return UrlParsing.addShellParamsToURL(sUrlorHash, oShellParams);
861
- }
862
-
863
- function getAccessibility () {
864
- var vUrl = ushellUtils.getParameterValueBoolean("sap-accessibility");
865
- if (vUrl !== undefined) {
866
- return vUrl;
867
- }
868
- return Container.getUser().getAccessibilityMode();
869
- }
870
- function getTheme () {
871
- var oResolvedUrlParameters = UriParameters.fromURL(sUrl) || { mParams: {} };
872
-
873
- // To take care of the precedence of the intent over UI5 configuration
874
- if (oResolvedUrlParameters.mParams["sap-theme"] === undefined) {
875
- return Container.getUser()
876
- .getTheme(User.prototype.constants.themeFormat.NWBC);
877
- }
878
- return undefined;
879
- }
880
- function getStatistics () {
881
- var bAddStatistics = false,
882
- oResolvedUrlParameters = UriParameters.fromURL(sUrl) || { mParams: {} };
883
-
884
- // To take care of the precedence of the intent over UI5 configuration
885
- bAddStatistics = Supportability.isStatisticsEnabled()
886
- && oResolvedUrlParameters.mParams["sap-statistics"] === undefined;
887
- return bAddStatistics;
888
- }
889
- function getInAppState () {
890
- var sHash = hasher && hasher.getHash(),
891
- sKey = "",
892
- aParams;
893
-
894
- if (sHash && sHash.length > 0 && sHash.indexOf("sap-iapp-state=") > 0) {
895
- aParams = /(?:sap-iapp-state=)([^&/]+)/.exec(sHash);
896
- if (aParams && aParams.length === 2) {
897
- sKey = aParams[1];
898
- }
899
- }
900
-
901
- return sKey;
902
- }
903
- function getDensity () {
904
- var sVal = "";
905
- var bIsCompact = (!!jQuery("body.sapUiSizeCompact").length);
906
- var bIsCozy = (!!jQuery("body.sapUiSizeCozy").length);
907
-
908
- if (bIsCompact === true) {
909
- sVal = "0";
910
- } else if (bIsCozy) {
911
- sVal = "1";
912
- }
913
-
914
- return sVal;
915
- }
916
-
917
-
918
- // force IE to edge mode
919
- oShPara["sap-ie"] = "edge";
920
-
921
- sTheme = getTheme();
922
- if (sTheme) {
923
- // note, we do not replace existing parameters
924
- oShPara["sap-theme"] = sTheme;
925
- }
926
-
927
- if (getAccessibility()) {
928
- // propagate accessibility mode
929
- // Note: This is handled by the WebGUI/WDA framework which expects a value of "X"!
930
- oShPara["sap-accessibility"] = "X";
931
- // note, we do not replace existing parameters
932
- }
933
- if (getStatistics()) {
934
- // propagate statistics = true
935
- // Note: This is handled by the IFC handler on ABAP, which expects a value of "true" (not "X")
936
- oShPara["sap-statistics"] = "true";
937
- // note, we do not replace existing parameters
938
- }
939
-
940
- var sDensity = getDensity();
941
- if (sDensity && sDensity.length > 0) {
942
- oShPara["sap-touch"] = sDensity;
943
- }
944
-
945
- if (bForFramelessWindow === false) {
946
- if (sTargetNavigationMode) {
947
- oShPara["sap-target-navmode"] = sTargetNavigationMode;
948
- // note, we do not replace existing parameters
949
- }
950
-
951
- if (sUrlApplicationType === "TR" || sUrlApplicationType === "GUI") {
952
- oShPara["sap-keepclientsession"] = "2";
953
- } else if (bReuseSession) { // 'NWBC', 'WCF', 'WDA'
954
- oShPara["sap-keepclientsession"] = "1";
955
- }
956
-
957
- var sKey = getInAppState();
958
- if (sKey && sKey.length > 0) {
959
- oShPara["sap-iapp-state"] = sKey;
960
- }
961
-
962
- var sessionTimeout = 0;
963
- if (Config.last("/core/shell/sessionTimeoutIntervalInMinutes") > 0) {
964
- sessionTimeout = Config.last("/core/shell/sessionTimeoutIntervalInMinutes");
965
- }
966
- oShPara["sap-ushell-timeout"] = sessionTimeout;
967
-
968
- sUrl = addSearchOrShellParamsToURL(sUrl, oShPara);
969
-
970
- // The renderer "waits" for the ui5 version to be available
971
- return ushellUtils.appendSapShellParamSync(sUrl, sUrlApplicationType, sUI5Version);
972
- }
973
- return addSearchOrShellParamsToURL(sUrl, oShPara);
974
- }
975
-
976
- /**
977
- * Renders the SAPUI5 component with the given name and URL. If the child aggregation is already set and no properties have changed,
978
- * the component is not recreated.
979
- */
980
- function renderUi5Component (oRenderManager, oContainer, sUrl, sComponentName) {
981
- var oChild = oContainer.getAggregation("child"),
982
- oNewRenderManager,
983
- oResult;
984
-
985
- if (!oChild || oContainer._bRecreateChild) {
986
- oResult = ApplicationContainer.prototype._createUi5Component(oContainer, sUrl, sComponentName);
987
- if (oResult.oControl !== undefined) {
988
- //the control was already created, not need to wait for async result
989
- oContainer._bRecreateChild = false;
990
- ApplicationContainer.prototype._renderControlInDiv(oRenderManager, oContainer, oResult.oControl);
991
- } else {
992
- oContainer.oDeferredControlCreation = new jQuery.Deferred();
993
- ApplicationContainer.prototype._renderControlInDiv(oRenderManager, oContainer);
994
- oResult.oPromise.then(function (oControl) {
995
- oContainer._bRecreateChild = false;
996
- oNewRenderManager = new RenderManager().getInterface();
997
- oNewRenderManager.renderControl(oControl);
998
- oNewRenderManager.flush(jQuery("#" + oContainer.getId())[0]);
999
- oNewRenderManager.destroy();
1000
- oContainer.oDeferredControlCreation.resolve();
1001
- });
1002
- }
1003
- } else {
1004
- ApplicationContainer.prototype._renderControlInDiv(oRenderManager, oContainer, oChild);
1005
- }
1006
- }
1007
-
1008
- /**
1009
- * Sets the property with the specified key and value and sets the flag _bPropertyChanged to true
1010
- */
1011
- function setProperty (oContainer, sKey, vValue) {
1012
- var vOldValue = oContainer.getProperty(sKey);
1013
-
1014
- if (deepEqual(vOldValue, vValue)) {
1015
- return;
1016
- }
1017
-
1018
- oContainer.setProperty(sKey, vValue);
1019
- oContainer._bRecreateChild = true;
1020
- }
1021
-
1022
- /**
1023
- * Renders the given container control with the help of the given render manager using the given
1024
- * attributes.
1025
- *
1026
- * @param {sap.ui.core.RenderManager} oRenderManager
1027
- * @param {sap.ushell.components.container.ApplicationContainer} oContainer
1028
- * @param {ApplicationType.enum} sApplicationType
1029
- * the application type
1030
- * @param {string} sUrl
1031
- * the base URL
1032
- * @param {string} sAdditionalInformation
1033
- * the additional information in the form "SAPUI5=&lt;view name&gt;"
1034
- */
1035
- function render (oRenderManager, oContainer, sApplicationType, sUrl, sAdditionalInformation) {
1036
- var fnLogout,
1037
- bPostMechanismEnabled;
1038
- var bForceOpenWithPost = false;
1039
-
1040
- // remove container from list of NWBC-containing containers
1041
- // (if this container was an NWBC container before)
1042
- localStorage.removeItem(oContainer.globalDirtyStorageKey);
1043
-
1044
- oContainer.oDeferredControlCreation = undefined;
1045
-
1046
- // render as SAPUI5 component if specified in additionalInformation
1047
- if (sAdditionalInformation &&
1048
- sAdditionalInformation.indexOf("SAPUI5.Component=") === 0 &&
1049
- sApplicationType === ApplicationType.URL.type) {
1050
-
1051
- renderUi5Component(oRenderManager, oContainer, sUrl, sAdditionalInformation.replace(/^SAPUI5\.Component=/, ""));
1052
- return;
1053
- }
1054
-
1055
- // render as SAPUI5 view if specified in additionalInformation
1056
- if (sAdditionalInformation
1057
- && sAdditionalInformation.indexOf("SAPUI5=") === 0
1058
- && sApplicationType === ApplicationType.URL.type) {
1059
- ApplicationContainer.prototype._renderControlInDiv(oRenderManager, oContainer, undefined, "open");
1060
- oContainer.oDeferredControlCreation = new jQuery.Deferred();
1061
- ApplicationContainer.prototype._createUi5View(oContainer, sUrl, sAdditionalInformation).then(function (oControl) {
1062
- var oNewRenderManager,
1063
- oDivElement = jQuery("#" + oContainer.getId());
1064
- if (oDivElement && oDivElement.length > 0) {
1065
- oNewRenderManager = new RenderManager().getInterface();
1066
- oNewRenderManager.renderControl(oControl);
1067
- oNewRenderManager.flush(jQuery("#" + oContainer.getId())[0]);
1068
- oNewRenderManager.destroy();
1069
- } else {
1070
- oRenderManager.renderControl(oControl);
1071
- }
1072
- oContainer.oDeferredControlCreation.resolve();
1073
- });
1074
- ApplicationContainer.prototype._renderControlInDiv(oRenderManager, oContainer, undefined, "close");
1075
- return;
1076
- }
1077
- Log.debug("Not resolved as \"SAPUI5.Component=\" or \"SAPUI5=\" , " +
1078
- "will attempt to load into iframe " + sAdditionalInformation);
1079
-
1080
- if (!oContainer.getActive()) {
1081
- Log.debug("Skipping rendering container iframe", "Container '" + oContainer.getId() + "' is inactive");
1082
- return;
1083
- }
1084
-
1085
- try {
1086
- sUrl = oContainer.getFrameSource(sApplicationType, sUrl);
1087
- } catch (ex) {
1088
- Log.error(ex.message || ex, null, sCOMPONENT);
1089
- oContainer.fireEvent("applicationConfiguration");
1090
- oRenderManager.renderControl(ApplicationContainer.prototype._createErrorControl());
1091
- return;
1092
- }
1093
-
1094
- if (Container) {
1095
- fnLogout = ApplicationContainer.prototype._getLogoutHandler(oContainer);
1096
- if (!fnLogout) {
1097
- if (ushellUtils.isApplicationTypeEmbeddedInIframe(sApplicationType)) {
1098
- // create only for NWBC if not already existing
1099
- fnLogout = ApplicationContainer.prototype._logout.bind(null, oContainer);
1100
- mLogouts.put(oContainer.getId(), fnLogout);
1101
- Container.attachLogoutEvent(fnLogout);
1102
- Container.addRemoteSystem(ApplicationContainer.prototype._createSystemForUrl(sUrl));
1103
- }
1104
- } else if (!ushellUtils.isApplicationTypeEmbeddedInIframe(sApplicationType)) {
1105
- // detach if not used *anymore*
1106
- Container.detachLogoutEvent(fnLogout);
1107
- mLogouts.remove(oContainer.getId());
1108
- }
1109
- }
1110
-
1111
- sUrl = oContainer._checkNwbcUrlAdjustment(oContainer, sApplicationType, sUrl);
1112
-
1113
- // generic mechanism for allowing to pass parameters to the iframe URL
1114
- var urlParams = UriParameters.fromURL(document.URL);
1115
- if (urlParams.has("sap-iframe-params")) {
1116
- var sIframeParams = urlParams.get("sap-iframe-params") || "",
1117
- aParams = sIframeParams.split(",");
1118
-
1119
- if (aParams.length > 0) {
1120
- var tmpURI = new URI(sUrl);
1121
- aParams.forEach(function (sParam) {
1122
- if (sParam && sParam.length > 0) {
1123
- if (urlParams.has(sParam)) {
1124
- tmpURI.addQuery(sParam, urlParams.get(sParam));
1125
- }
1126
- }
1127
- });
1128
- sUrl = tmpURI.toString();
1129
- }
1130
- }
1131
-
1132
- //add the url origin to the allowed origins list of the message broker
1133
- if (oMessageBrokerServicePromise) {
1134
- oMessageBrokerServicePromise.then(function (oMessageBrokerService) {
1135
- oMessageBrokerService.addAcceptedOrigin(new URI(sUrl).origin());
1136
- });
1137
- }
1138
-
1139
- //preperations to open the iframe with POST (vs the default GET)
1140
- if (sApplicationType === "TR") {
1141
- oContainer.setProperty("iframePostAllParams", true, true);
1142
- }
1143
-
1144
- bPostMechanismEnabled = Config.last("/core/shell/enableOpenIframeWithPost");
1145
- if (bPostMechanismEnabled === undefined) {
1146
- bPostMechanismEnabled = true;
1147
- }
1148
-
1149
- if (urlParams.get("sap-post") === "false") {
1150
- bPostMechanismEnabled = false;
1151
- } else if (window.QUnit !== undefined) {
1152
- bPostMechanismEnabled = oContainer.getIframeWithPost();
1153
- }
1154
- if (bPostMechanismEnabled === true && oContainer.getOpenWithPostByAppParam() === false) {
1155
- bPostMechanismEnabled = false;
1156
- }
1157
- if (urlParams.get("sap-post") === "true") {
1158
- bForceOpenWithPost = true;
1159
- }
1160
-
1161
- //This block is relevant for "Starting WebGUI/WebDynpro apps with a POST" BLI since 1.68
1162
- if (bPostMechanismEnabled === true &&
1163
- (sApplicationType === "NWBC" || sApplicationType === "TR" || sApplicationType === "WDA" || sApplicationType === "WCF") || bForceOpenWithPost === true) {
1164
- IframePOSTUtils.renderIframeWithPOST(oRenderManager, oContainer, sUrl, ++iIframeIdx);
1165
- return;
1166
- }
1167
-
1168
- var sUrlWithSystemAlias = systemAlias.addSystemAlias(sUrl, oContainer);
1169
- // embed URL via <IFRAME>
1170
- oContainer.fireEvent("applicationConfiguration");
1171
- oRenderManager
1172
- .openStart("iframe", oContainer)
1173
- .accessibilityState(oContainer)
1174
- .attr("src", sUrlWithSystemAlias)
1175
- .attr("title", resources.i18n.getText("AppilcationContainer.IframeTitle"))
1176
- .attr("sap-iframe-idx", ++iIframeIdx)
1177
- .class("sapUShellApplicationContainer")
1178
- .style("height", oContainer.getHeight())
1179
- .style("width", oContainer.getWidth());
1180
-
1181
- if (Config.last("/core/shell/enableFeaturePolicyInIframes") === true) {
1182
- oRenderManager.attr("allow", ushellUtils.getIframeFeaturePolicies());
1183
- }
1184
- oRenderManager
1185
- .openEnd()
1186
- .close("iframe");
1187
- }
1188
-
1189
- /**
1190
- * @alias sap.ushell.components.container.ApplicationContainer
1191
- * Creates a new container control embedding the application with the given URL. The default
1192
- * application type is "URL" and allows to embed web applications into an <code>IFRAME</code>.
1193
- * By default, the container is visible and occupies the whole width and height of its parent.
1194
- *
1195
- * @class
1196
- * @classdesc A container control capable of embedding a variety of application types.
1197
- * <p>
1198
- * <strong>Experimental API: This container is still under construction, so some
1199
- * implementation details can be changed in future.</strong>
1200
- * </p><p>
1201
- * <b>Note:</b> The browser does not allow to move an <code>IFRAME</code> around in the DOM
1202
- * while keeping its state. Thus every rerendering of this control necessarily resets the
1203
- * embedded web application to its initial state!
1204
- * </p><p>
1205
- * <b>Note:</b> You <b>must</b> <code>exit</code> the control when you no longer need it.
1206
- *
1207
- * </p><p>
1208
- * <b>Embedding SAPUI5 Components:</b>
1209
- * </p><p>
1210
- * The container is able to embed an SAPUI5 component. It is embedded directly into the page,
1211
- * no <code>IFRAME</code> is used.
1212
- * </p><p>
1213
- * SAPUI5 components are described with <code>applicationType</code> "URL", a base URL and the
1214
- * component name in <code>additionalInformation</code>. The format is
1215
- * <code>SAPUI5=<i>componentNamespace</i></code>. The application container will register a
1216
- * module path for the URL with the component's namespace.
1217
- * </p><p>
1218
- * The query parameters from the URL will be passed into the component. They can be retrieved
1219
- * using the method <code>getComponentData()</code>. Query parameters are always passed as
1220
- * arrays (see example 2 below).
1221
- * </p><p>
1222
- * <b>Example 1:</b> Let <code>url</code> be "http://anyhost:1234/path/to/app" and
1223
- * <code>additionalInformation</code> be "SAPUI5=some.random.package". Then the
1224
- * container registers the path "http://anyhost:1234/path/to/app/some/random/package" for the
1225
- * namespace "some.random.package", loads and creates "some.random.package.Component".
1226
- * </p><p>
1227
- * <b>Example 2:</b> Let <code>url</code> be "http://anyhost:1234/?foo=bar&foo=baz&bar=baz".
1228
- * Then the <code>componentData</code> object will be
1229
- * <code>{foo: ["bar", "baz"], bar: ["baz"]}</code>.
1230
- * </p><p>
1231
- * <b>Warning:</b> The container control embeds a <i>component</i> only. This can only work if
1232
- * this component is fully encapsulated and properly declares all dependencies in its metadata
1233
- * object. If you want to support that your component can be embedded into a shell using this
1234
- * container, you have to prepare it accordingly:
1235
- * <ul>
1236
- * <li>The container control can only embed components that originate on the same server as the
1237
- * shell due to the browser's same origin policy. Consider using an SAP Web Dispatcher if this
1238
- * is not the case.
1239
- * <li>If your component relies on some additional Javascript, declare the dependencies to
1240
- * libraries or other components in the component's metadata object.
1241
- * <li>Do <i>not</i> use <code>jQuery.sap.registerModulePath()</code> with a relative URL. The
1242
- * base for this relative URL is the web page. And this page is the shell when embedding the
1243
- * component via the container, not the page you used when developing the component.
1244
- * <li>If your component needs additional styles, declare them using the <code>includes</code>
1245
- * property of the component metadata object.
1246
- * <li> Consider calling <code>jQuery.sap.getModulePath(&lt;componentName&gt;)</code> to
1247
- * determine the root path of your component.
1248
- * <li>If any of these requirements is not met, it is still possible to embed this view with
1249
- * its own page using <code>applicationType="URL"</code>, no <code>additionalInformation</code>
1250
- * and the URL of the web page in <code>url</code>. Then of course it is embedded using an
1251
- * <code>IFRAME</code>. This has many restrictions, especially the resource-based navigation
1252
- * using hash changes will not be supported.
1253
- * </ul>
1254
- *
1255
- * </p><p>
1256
- * <b>Embedding SAPUI5 Views</b>
1257
- * <p>
1258
- * Embedding views is <strong>deprecated</strong> and might not be supported in future versions.
1259
- * </p>
1260
- * <p>
1261
- * It is also possible to embed a SAPUI5 view. It is embedded directly into the page, no
1262
- * <code>IFRAME</code> is used.
1263
- * </p><p>
1264
- * SAPUI5 views are described with <code>applicationType</code> "URL", a base URL and the view
1265
- * description in <code>additionalInformation</code>. The format is
1266
- * <code>SAPUI5=<i>namespace</i>.<i>viewName</i>.view.<i>viewType</i></code>. From
1267
- * this information the module path and the view URL is determined. Request parameters present
1268
- * in the URL will be passed to the created view and can be accessed via
1269
- * <code>sap.ui.core.mvc.View#getViewData()</code>. The object passed to the view data is the
1270
- * same as describe for the component data above.
1271
- * </p><p>
1272
- * <b>Warning:</b> The container control embeds a <i>view</i> only. So similar restrictions
1273
- * as for components apply. Since the view has no metadata object to describe dependencies you
1274
- * will have to use <code>sap.ui.require()</code> to load needed modules.
1275
- *
1276
- * @extends sap.ui.core.Control
1277
- * @since 1.15.0
1278
- */
1279
- var ApplicationContainer = Control.extend(sCOMPONENT, /** @lends sap.ushell.components.container.ApplicationContainer.prototype */{
1280
- metadata: {
1281
- properties: {
1282
- /**
1283
- * Additional information about the application. Currently this is used to describe a SAPUI5
1284
- * component or a view in a SAPUI5 application.
1285
- */
1286
- additionalInformation: { defaultValue: "", type: "string" },
1287
- /**
1288
- * The application descriptor as received from the start-up service. If an application is
1289
- * given the properties <code>url</code>, <code>applicationType</code> and
1290
- * <code>additionalInformation</code> are taken from the application and <i>not</i> from the
1291
- * control properties.
1292
- */
1293
- application: { type: "object" },
1294
- /**
1295
- * The configuration data of this application as defined in the application descriptor
1296
- * or in the flexible configuration object.
1297
- */
1298
- applicationConfiguration: { type: "object" },
1299
- /**
1300
- * The type of the embedded application.
1301
- */
1302
- applicationType: { defaultValue: "URL", type: sPREFIX + "ApplicationType" },
1303
- /**
1304
- * The container's height as a CSS size. This attribute is provided to the browser "as is"!
1305
- * <b>Note:</b> The HTML 4.01 specification allows pixels and percentages,
1306
- * but the HTML 5 specification allows pixels only!
1307
- */
1308
- height: { defaultValue: "100%", type: "sap.ui.core.CSSSize" },
1309
- navigationMode: { defaultValue: "", type: "string" },
1310
- targetNavigationMode: { defaultValue: "", type: "string" },
1311
- text: { defaultValue: "", type: "string" },
1312
- /**
1313
- * The URL to the embedded application.
1314
- */
1315
- url: { defaultValue: "", type: "string" },
1316
- currentAppUrl: { defaultValue: "", type: "string" },
1317
- currentAppId: { defaultValue: "", type: "string" },
1318
- currentAppTargetResolution: { type: "object" },
1319
- /**
1320
- * Whether the container control is visible at all. <b>Note:</b> An invisible container does
1321
- * not render any DOM content. Changing the visibility leads to rerendering!
1322
- */
1323
- visible: { defaultValue: true, type: "boolean" },
1324
- active: { defaultValue: true, type: "boolean" },
1325
- "sap-system": { type: "string" },
1326
- applicationDependencies: { type: "object" },
1327
- /**
1328
- * The component handle - for SAPUI5 components, this contains a handle to the
1329
- * component metadata and constructor which might already be loaded
1330
- */
1331
- componentHandle: { type: "object" },
1332
- ui5ComponentName: { type: "string" },
1333
- /**
1334
- * The container's width as a CSS size. This attribute is provided to the browser "as is"!
1335
- * <b>Note:</b> The HTML 4.01 specification allows pixels and percentages,
1336
- * but the HTML 5 specification allows pixels only!
1337
- */
1338
- width: { defaultValue: "100%", type: "sap.ui.core.CSSSize" },
1339
- shellUIService: { type: "object" },
1340
- reservedParameters: { type: "object" },
1341
- coreResourcesFullyLoaded: { type: "boolean" },
1342
- statefulType: { defaultValue: 0, type: "int" },
1343
- iframeHandlers: { defaultValue: "", type: "string" },
1344
- openWithPostByAppParam: { defaultValue: true, type: "boolean" },
1345
- iframeWithPost: { defaultValue: false, type: "boolean" },
1346
- beforeAppCloseEvent: { type: "object" },
1347
- extendedInfo: { type: "object" },
1348
- systemAlias: { defaultValue: "", type: "string" },
1349
- iframePostAllParams: { defaultValue: false, type: "boolean" },
1350
- isKeepAlive: { defaultValue: false, type: "boolean" },
1351
- frameworkId: { defaultValue: "", type: "string" },
1352
- iframeReusedForApp: { defaultValue: false, type: "boolean" },
1353
- isIframeValidTime: { defaultValue: {time: 0}, type: "object" },
1354
- isInvalidIframe: { defaultValue: false, type: "boolean" },
1355
- isFetchedFromCache: { defaultValue: false, type: "boolean" },
1356
- blueBoxCapabilities: { defaultValue: {}, type: "object" }
1357
- },
1358
- events: {
1359
- /**
1360
- * Event which is fired when the <code>ApplicationContainer</code> control is rendered. The
1361
- * event holds a technology specific configuration object for the embedded application.
1362
- * As of now, only configuration for an embedded <em>SAPUI5 component</em> is supported.
1363
- */
1364
- applicationConfiguration: {
1365
- parameters: {
1366
- /**
1367
- * The technology specific configuration object of the embedded application.
1368
- * <code>undefined</code>, if the <code>ApplicationContainer</code> control does not
1369
- * provide a configuration for the technology of the embedded application or if there is a
1370
- * rendering issue with the application.<br/>
1371
- * For SAPUI5 components, the <code>config</code> property of the component metadata is
1372
- * provided.
1373
- */
1374
- configuration: { type: "object" }
1375
- }
1376
- }
1377
- },
1378
- aggregations: {
1379
- child: { multiple: false, type: "sap.ui.core.Control", visibility: "hidden" }
1380
- },
1381
- library: "sap.ushell",
1382
- designtime: "sap/ushell/designtime/ApplicationContainer.designtime"
1383
- },
1384
-
1385
- exit: function () {
1386
- if (Container) {
1387
- const fnLogout = ApplicationContainer.prototype._getLogoutHandler(this);
1388
- if (fnLogout) {
1389
- Container.detachLogoutEvent(fnLogout);
1390
- mLogouts.remove(this.getId());
1391
- }
1392
- }
1393
- // remove container from list of NWBC-containing containers
1394
- // (if this container was an NWBC container before)
1395
- localStorage.removeItem(this.globalDirtyStorageKey);
1396
-
1397
- // remove all event listeners
1398
- if (this._unloadEventListener) {
1399
- removeEventListener("pagehide", this._unloadEventListener);
1400
- }
1401
-
1402
- if (this._disableRouterEventHandler) {
1403
- EventBus.getInstance().unsubscribe(
1404
- "sap.ushell.components.container.ApplicationContainer",
1405
- "_prior.newUI5ComponentInstantion", this._disableRouterEventHandler);//{ sValue : sServiceUrl }
1406
- }
1407
-
1408
- if (this._storageEventListener) {
1409
- removeEventListener("storage", this._storageEventListener);
1410
- }
1411
-
1412
- if (this._messageEventListener) {
1413
- removeEventListener("message", this._messageEventListener);
1414
- }
1415
-
1416
- ApplicationContainer.prototype._destroyChild(this);
1417
-
1418
- // before initial render the child aggregation is not set
1419
- const oComponentHandle = this.getComponentHandle();
1420
- if (oComponentHandle) {
1421
- oComponentHandle.destroy();
1422
- }
1423
-
1424
- // just to be sure in case it will be added some time
1425
- if (Control.exit) {
1426
- Control.exit.apply(this);
1427
- }
1428
- },
1429
-
1430
- setHandleMessageEvent: function (inFnHandleMessageEvent) {
1431
- fnHandleMessageEvent = inFnHandleMessageEvent;
1432
- },
1433
-
1434
- /**
1435
- * Initialization of <code>ApplicationContainer</code> instance.
1436
- */
1437
- init: function () {
1438
- var that = this;
1439
- that.globalDirtyStorageKey = sDIRTY_STATE_PREFIX + fnGetUid();
1440
-
1441
- // set object default values again to prevent them from being "synced"
1442
- this.setProperty("isIframeValidTime", { time: 0 }, true);
1443
- this.setProperty("blueBoxCapabilities", {}, true);
1444
-
1445
- // be sure to remove entry from list of NWBC-containing containers
1446
- // when the window is closed
1447
- that._unloadEventListener = that.exit.bind(that);
1448
- // As of chrome 117 the unload event is deprecated and therefore was changed
1449
- addEventListener("pagehide", that._unloadEventListener); //TODO doesn't work in IE9 when F5 is pressed?!
1450
-
1451
- that._storageEventListener = function (oStorageEvent) {
1452
- var sApplicationType = that.getApplicationType();
1453
- if (oStorageEvent.key === that.globalDirtyStorageKey
1454
- && oStorageEvent.newValue === Container.DirtyState.PENDING
1455
- && ushellUtils.isApplicationTypeEmbeddedInIframe(sApplicationType)) {
1456
-
1457
- var oIframe = that._getIFrame();
1458
- if (oIframe) {
1459
- Log.debug(
1460
- "getGlobalDirty() send pro54_getGlobalDirty ",
1461
- null,
1462
- "sap.ushell.components.container.ApplicationContainer"
1463
- );
1464
-
1465
- var oUri = new URI(that._getIFrameUrl(oIframe));
1466
- var targetDomain = oUri.protocol() + "://" + oUri.host();
1467
- oIframe.contentWindow.postMessage(
1468
- JSON.stringify({ action: "pro54_getGlobalDirty" }),
1469
- targetDomain
1470
- );
1471
- }
1472
- }
1473
- };
1474
- addEventListener("storage", that._storageEventListener);
1475
-
1476
- that._messageEventListener = ApplicationContainer.prototype._handleMessageEvent.bind(null, that);
1477
- addEventListener("message", that._messageEventListener);
1478
- if (!oMessageBrokerServicePromise && Container.isInitialized()) {
1479
- oMessageBrokerServicePromise = Container.getServiceAsync("MessageBroker");
1480
- }
1481
- },
1482
-
1483
- onAfterRendering: function (/*oEvent*/) {
1484
- var that = this;
1485
-
1486
- // iOS Safari ignores CSS width and height of the iframe. The iframe is as big as its contents.
1487
- // Scrolling inside of a such an iframe is not possible. Scroll the parent container instead.
1488
- if (Device.os.ios && this.$().prop("tagName") === "IFRAME") {
1489
- this.$().parent().css("overflow", "auto");
1490
- }
1491
-
1492
- if (this.oDeferredRenderer) {
1493
- this.oDeferredRenderer.done(function () {
1494
- var oForm = document.getElementById(that.getId() + "-form");
1495
- if (oForm) {
1496
- oForm.submit();
1497
- }
1498
- });
1499
- }
1500
- },
1501
-
1502
- invalidate: function () {
1503
- if (this.getDomRef()) {
1504
- //always prevent re-rendering of application container once it's rendered
1505
- return this;
1506
- }
1507
-
1508
- return Control.prototype.invalidate.apply(this, arguments);
1509
- },
1510
-
1511
- /**
1512
- * Renders the given container control with the help of the given render manager.
1513
- *
1514
- * @param {sap.ui.core.RenderManager} oRenderManager
1515
- * @param {sap.ushell.components.container.ApplicationContainer} oContainer
1516
- *
1517
- * @private
1518
- */
1519
- renderer: {
1520
- apiVersion: 2,
1521
- render: function (oRenderManager, oContainer) {
1522
- // we have to cache the UI5 version first
1523
- if (sUI5Version === null) {
1524
- oUI5VersionPromise.then(() => {
1525
- oContainer.invalidate();
1526
- });
1527
- return;
1528
- }
1529
- // Note: "this" refers to the renderer instance, which does not matter here!
1530
- var oApplication = oContainer.getApplication();
1531
- var oLaunchpadData = oContainer.launchpadData;
1532
- var oLoadingIndicator;
1533
-
1534
- if (!oContainer.getVisible()) {
1535
- // Note: even invisible controls need to render their ID for later re-rendering
1536
- ApplicationContainer.prototype._renderControlInDiv(oRenderManager, oContainer);
1537
- return;
1538
- }
1539
-
1540
- if (oContainer.bTestControl) {
1541
- ApplicationContainer.prototype._renderControlInDiv(oRenderManager, oContainer, oContainer.oTestControl);
1542
- } else if (oContainer.error) {
1543
- delete oContainer.error;
1544
- ApplicationContainer.prototype._renderControlInDiv(oRenderManager, oContainer, ApplicationContainer.prototype._createErrorControl());
1545
- } else if (!oApplication) {
1546
- // the standard properties
1547
- ApplicationContainer.prototype._render(oRenderManager, oContainer, oContainer.getApplicationType(),
1548
- oContainer.getUrl(), oContainer.getAdditionalInformation());
1549
- } else if (!oApplication.isResolvable()) {
1550
- // the standard application data
1551
- ApplicationContainer.prototype._render(oRenderManager, oContainer, oApplication.getType(),
1552
- oApplication.getUrl(), "");
1553
- } else if (oLaunchpadData) {
1554
- // the application, already resolved
1555
- // Note that ResolveLink appends a "?" to the URL if additionalData (aka
1556
- // additionalInformation) is supplied.
1557
- ApplicationContainer.prototype._render(oRenderManager, oContainer, oLaunchpadData.applicationType,
1558
- oLaunchpadData.Absolute.url.replace(/\?$/, ""),
1559
- oLaunchpadData.applicationData);
1560
- } else {
1561
- Log.debug("Resolving " + oApplication.getUrl(), null,
1562
- sCOMPONENT);
1563
-
1564
- oApplication.resolve(function (oResolved) {
1565
- Log.debug("Resolved " + oApplication.getUrl(),
1566
- JSON.stringify(oResolved),
1567
- sCOMPONENT);
1568
- // TODO: where to keep the internal property launchpadData? At the Application!
1569
- oContainer.launchpadData = oResolved;
1570
- ApplicationContainer.prototype._destroyChild(oContainer);
1571
- }, function (sError) {
1572
- var fnApplicationErrorHandler = oApplication.getMenu().getDefaultErrorHandler();
1573
- if (fnApplicationErrorHandler) {
1574
- fnApplicationErrorHandler(sError);
1575
- }
1576
- ApplicationContainer.prototype._destroyChild(oContainer);
1577
- oContainer.error = sError;
1578
- });
1579
- oLoadingIndicator = new Text({
1580
- text: ApplicationContainer.prototype._getTranslatedText("loading", [oApplication.getText()])
1581
- });
1582
- ApplicationContainer.prototype._destroyChild(oContainer);
1583
- oContainer.setAggregation("child", oLoadingIndicator);
1584
- ApplicationContainer.prototype._renderControlInDiv(oRenderManager, oContainer, oLoadingIndicator);
1585
- }
1586
- }
1587
- }
1588
- });
1589
-
1590
- /**
1591
- * Returns the resulting source URL for the (internal) frame used to embed the given application.
1592
- * This hook method may be overridden; we recommend to replace it per object, not at the
1593
- * prototype.
1594
- * <p>
1595
- * The default implementation returns the URL "as is", but checks that the given application
1596
- * type is one of <code>ApplicationType.enum</code> and throws
1597
- * an error in case it is not. It ignores the additional information.
1598
- * <p>
1599
- * You may want to end your implementation with
1600
- * <code>return
1601
- * sap.ushell.components.container.ApplicationContainer.prototype.getFrameSource.call(this,
1602
- * sApplicationType, sUrl, sAdditionalInformation);</code> in order to reuse the default
1603
- * behavior. To override the error checks, simply replace any additional application types you
1604
- * wish to support with <code>ApplicationType.enum.URL</code>.
1605
- *
1606
- * @param {ApplicationType.enum} sApplicationType
1607
- * the application type
1608
- * @param {string} sUrl
1609
- * the base URL
1610
- * @param {string} sAdditionalInformation
1611
- * the additional information
1612
- * @returns {string}
1613
- * @since 1.15.0
1614
- */
1615
- ApplicationContainer.prototype.getFrameSource = function (sApplicationType, sUrl/*, sAdditionalInformation*/) {
1616
- if (!Object.prototype.hasOwnProperty.call(
1617
- ApplicationType.enum,
1618
- sApplicationType
1619
- )) {
1620
- // Note: do not use sap.ushell.utils.Error here as the exception is already caught
1621
- // and logged in render()
1622
- throw new Error("Illegal application type: " + sApplicationType);
1623
- }
1624
- return sUrl;
1625
- };
1626
-
1627
- // overwrite setters to trigger component recreation only if relevant properties have changed
1628
- ApplicationContainer.prototype.setUrl = function (sValue) {
1629
- setProperty(this, "url", sValue);
1630
- };
1631
-
1632
- ApplicationContainer.prototype.setAdditionalInformation = function (sValue) {
1633
- setProperty(this, "additionalInformation", sValue);
1634
- };
1635
-
1636
- ApplicationContainer.prototype.setApplicationType = function (sValue) {
1637
- setProperty(this, "applicationType", sValue);
1638
- };
1639
-
1640
- /**
1641
- * Method called by the appLifeCycle to post a "before close" message to the app
1642
- * running in the iframe before the iframe its destroyed.
1643
- * The message is sent only if the iframe registered to be informed with this message.
1644
- * This mechanism was added to solve the change made in Chrome to disallow Sync XHR on
1645
- * browser close.
1646
- *
1647
- * @returns {Promise}
1648
- * A promise object in case a post message is sent, and "undefined" in case no message needs
1649
- * to be sent. In case of real promise, it will be resolved when the iframe response back that
1650
- * it processed the message.
1651
- *
1652
- * @private
1653
- */
1654
- ApplicationContainer.prototype.sendBeforeAppCloseEvent = function () {
1655
- var that = this,
1656
- oEventData = this.getBeforeAppCloseEvent && this.getBeforeAppCloseEvent();
1657
- if (oEventData && oEventData.enabled && oEventData.enabled === true) {
1658
- return new Promise(function (fnResolve, fnReject) {
1659
- sap.ui.require(["sap/ushell/components/applicationIntegration/application/PostMessageUtils"], function (PostMessageUtils) {
1660
- PostMessageUtils.postMessageToIframeApp(
1661
- that, "sap.ushell.services.CrossApplicationNavigation", "beforeAppCloseEvent", oEventData.params, true).then(fnResolve, fnReject);
1662
- });
1663
- });
1664
- }
1665
-
1666
- return undefined;
1667
- };
1668
-
1669
- ApplicationContainer.prototype.getDeffedControlCreation = function (sUrl) {
1670
- return this.oDeferredControlCreation ? this.oDeferredControlCreation.promise() : new jQuery.Deferred().resolve().promise();
1671
- };
1672
-
1673
- // todo: [FLPCOREANDUX-10024] this should rather be part of an UI5 specific ApplicationContainer implementation
1674
- ApplicationContainer.prototype.isUI5ApplicationWithoutIframe = function () {
1675
- return this.getApplicationType() === ApplicationType.URL.type && this.getUi5ComponentName();
1676
- };
1677
-
1678
- /**
1679
- * Merges the given capabilities into the existing blue box capabilities.
1680
- * Existing capabilities are overwritten.
1681
- * @param {{ service:string, action: string }[]} aNewCapabilities The additional capabilities.
1682
- * @returns {this} this instance for method chaining
1683
- *
1684
- * @since 1.130.0
1685
- * @private
1686
- */
1687
- ApplicationContainer.prototype.addBlueBoxCapabilities = function (aNewCapabilities) {
1688
- // todo: [FLPCOREANDUX-10024] rename this
1689
- const oCapabilities = this.getBlueBoxCapabilities();
1690
-
1691
- aNewCapabilities.forEach((oCapability) => {
1692
- oCapabilities[`${oCapability.service}.${oCapability.action}`.toLowerCase()] = true;
1693
- });
1694
- return this;
1695
- };
1696
-
1697
- /**
1698
- * Removes the given capabilities from the existing blue box capabilities.
1699
- * If no capabilities are provided, all capabilities are removed.
1700
- * @param {{ service:string, action: string }[]} [aCapabilitiesToRemove] The capabilities to remove.
1701
- * @returns {this} this instance for method chaining
1702
- *
1703
- * @since 1.130.0
1704
- * @private
1705
- */
1706
- ApplicationContainer.prototype.removeBlueBoxCapabilities = function (aCapabilitiesToRemove) {
1707
- const oCapabilities = this.getBlueBoxCapabilities();
1708
-
1709
- if (!aCapabilitiesToRemove) {
1710
- this.setProperty("blueBoxCapabilities", {}, true);
1711
- return this;
1712
- }
1713
-
1714
- aCapabilitiesToRemove.forEach((oCapability) => {
1715
- delete oCapabilities[`${oCapability.service}.${oCapability.action}`.toLowerCase()];
1716
- });
1717
- return this;
1718
- };
1719
-
1720
- /**
1721
- * Checks if this application container supports the given capabilities.
1722
- * @param {{ service:string, action: string }[]} aRequiredCapabilities The capabilities to check.
1723
- * @returns {boolean} true if the blue box capabilities contain the given service and action
1724
- *
1725
- * @since 1.130.0
1726
- * @private
1727
- */
1728
- ApplicationContainer.prototype.supportsBlueBoxCapabilities = function (aRequiredCapabilities) {
1729
- const oCapabilities = this.getBlueBoxCapabilities();
1730
-
1731
- return aRequiredCapabilities.every((oRequiredCapability) => {
1732
- return oCapabilities[`${oRequiredCapability.service}.${oRequiredCapability.action}`.toLowerCase()];
1733
- });
1734
- };
1735
-
1736
- //Attach private functions which should be testable via unit tests to the prototype of the ApplicationContainer
1737
- //to make them available outside for testing.
1738
- ApplicationContainer.prototype._getCommunicationHandlers = getCommunicationHandlers;
1739
- ApplicationContainer.prototype._adaptIsUrlSupportedResultForMessagePopover = adaptIsUrlSupportedResultForMessagePopover;
1740
- ApplicationContainer.prototype._getLogoutHandler = getLogoutHandler;
1741
- ApplicationContainer.prototype._getParameterMap = getParameterMap;
1742
- ApplicationContainer.prototype._getTranslatedText = getTranslatedText;
1743
- ApplicationContainer.prototype._createErrorControl = createErrorControl;
1744
- ApplicationContainer.prototype._destroyChild = destroyChild;
1745
- ApplicationContainer.prototype._createUi5View = createUi5View;
1746
- ApplicationContainer.prototype._publishExternalEvent = publishExternalEvent;
1747
- ApplicationContainer.prototype._createUi5Component = createUi5Component;
1748
- ApplicationContainer.prototype._disableRouter = disableRouter;
1749
- ApplicationContainer.prototype._createSystemForUrl = createSystemForUrl;
1750
- ApplicationContainer.prototype._isTrustedPostMessageSource = isTrustedPostMessageSource;
1751
- ApplicationContainer.prototype._handleMessageEvent = handleMessageEvent;
1752
- ApplicationContainer.prototype._logout = logout;
1753
- ApplicationContainer.prototype._renderControlInDiv = renderControlInDiv;
1754
- ApplicationContainer.prototype._checkNwbcUrlAdjustment = checkNwbcUrlAdjustment;
1755
- ApplicationContainer.prototype._adjustNwbcUrl = adjustNwbcUrl;
1756
- ApplicationContainer.prototype._render = render;
1757
- ApplicationContainer.prototype._getIFrame = getIFrame;
1758
- ApplicationContainer.prototype._getIFrameUrl = getIFrameUrl;
1759
- ApplicationContainer.prototype._resetPluginsLoadIndications = resetPluginsLoadIndications;
1760
- ApplicationContainer.prototype._handlePostMessagesForPluginsPostLoading = handlePostMessagesForPluginsPostLoading;
1761
- // helper for tests
1762
- ApplicationContainer.prototype._setCachedUI5Version = function (sNewVersion) {
1763
- sUI5Version = sNewVersion;
1764
- oUI5VersionPromise = oUI5VersionPromise.then(() => {
1765
- sUI5Version = sNewVersion;
1766
- });
1767
- };
1768
- return ApplicationContainer;
1769
- }, true);