@sapui5/sap.ushell 1.125.0 → 1.126.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (317) 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/Container.js +137 -62
  4. package/src/main/js/sap/ushell/Fiori20Adapter.js +1 -1
  5. package/src/main/js/sap/ushell/Fiori20AdapterTest.js +1 -1
  6. package/src/main/js/sap/ushell/NWBCInterface.js +1 -1
  7. package/src/main/js/sap/ushell/SessionHandler.js +35 -31
  8. package/src/main/js/sap/ushell/TechnicalParameters.js +1 -1
  9. package/src/main/js/sap/ushell/URLTemplateProcessor.js +1 -1
  10. package/src/main/js/sap/ushell/Ui5NativeServiceFactory.js +1 -1
  11. package/src/main/js/sap/ushell/Ui5ServiceFactory.js +1 -1
  12. package/src/main/js/sap/ushell/_URLTemplateProcessor/DefinitionParameterSetBuilder.js +1 -1
  13. package/src/main/js/sap/ushell/_URLTemplateProcessor/DependencyGraph.js +1 -1
  14. package/src/main/js/sap/ushell/_URLTemplateProcessor/Functions.js +1 -1
  15. package/src/main/js/sap/ushell/_URLTemplateProcessor/Resolvers.js +1 -1
  16. package/src/main/js/sap/ushell/_URLTemplateProcessor/TemplateParameterParser.js +1 -1
  17. package/src/main/js/sap/ushell/_URLTemplateProcessor/utils.js +1 -1
  18. package/src/main/js/sap/ushell/adapters/cdm/ClientSideTargetResolutionAdapter.js +1 -1
  19. package/src/main/js/sap/ushell/adapters/cdm/CommonDataModelAdapter.js +1 -1
  20. package/src/main/js/sap/ushell/adapters/cdm/ConfigurationDefaultsAdapter.js +1 -1
  21. package/src/main/js/sap/ushell/adapters/cdm/ContainerAdapter.js +1 -1
  22. package/src/main/js/sap/ushell/adapters/cdm/LaunchPageAdapter.js +1 -1
  23. package/src/main/js/sap/ushell/adapters/cdm/PagesCommonDataModelAdapter.js +1 -1
  24. package/src/main/js/sap/ushell/adapters/cdm/PersonalizationAdapter.js +1 -1
  25. package/src/main/js/sap/ushell/adapters/cdm/PersonalizationV2Adapter.js +1 -1
  26. package/src/main/js/sap/ushell/adapters/cdm/Ui5ComponentLoaderAdapter.js +1 -1
  27. package/src/main/js/sap/ushell/adapters/cdm/_LaunchPage/modifyHome.js +1 -1
  28. package/src/main/js/sap/ushell/adapters/cdm/_LaunchPage/readCatalogs.js +1 -1
  29. package/src/main/js/sap/ushell/adapters/cdm/_LaunchPage/readHome.js +1 -1
  30. package/src/main/js/sap/ushell/adapters/cdm/_LaunchPage/uri.transform.js +1 -1
  31. package/src/main/js/sap/ushell/adapters/cdm/util/AppForInbound.js +1 -1
  32. package/src/main/js/sap/ushell/adapters/cdm/util/cdmSiteUtils.js +1 -1
  33. package/src/main/js/sap/ushell/adapters/cdm/v3/AdapterBase.js +1 -1
  34. package/src/main/js/sap/ushell/adapters/cdm/v3/FlpLaunchPageAdapter.js +1 -1
  35. package/src/main/js/sap/ushell/adapters/cdm/v3/LaunchPageAdapter.js +1 -1
  36. package/src/main/js/sap/ushell/adapters/cdm/v3/StaticGroupsAdapter.js +1 -1
  37. package/src/main/js/sap/ushell/adapters/cdm/v3/_LaunchPage/readApplications.js +1 -1
  38. package/src/main/js/sap/ushell/adapters/cdm/v3/_LaunchPage/readCatalogs.js +1 -1
  39. package/src/main/js/sap/ushell/adapters/cdm/v3/_LaunchPage/readHome.js +1 -1
  40. package/src/main/js/sap/ushell/adapters/cdm/v3/_LaunchPage/readPages.js +1 -1
  41. package/src/main/js/sap/ushell/adapters/cdm/v3/_LaunchPage/readUtils.js +1 -1
  42. package/src/main/js/sap/ushell/adapters/cdm/v3/_LaunchPage/readVisualizations.js +1 -1
  43. package/src/main/js/sap/ushell/adapters/cdm/v3/utilsCdm.js +34 -0
  44. package/src/main/js/sap/ushell/adapters/cep/NavTargetResolutionAdapter.js +1 -1
  45. package/src/main/js/sap/ushell/adapters/cep/NavTargetResolutionInternalAdapter.js +1 -1
  46. package/src/main/js/sap/ushell/adapters/cep/SearchCEPAdapter.js +1 -1
  47. package/src/main/js/sap/ushell/adapters/cflp/UserDefaultParameterPersistenceAdapter.js +1 -1
  48. package/src/main/js/sap/ushell/adapters/local/AdapterContainer.js +1 -1
  49. package/src/main/js/sap/ushell/adapters/local/AppStateAdapter.js +1 -1
  50. package/src/main/js/sap/ushell/adapters/local/ClientSideTargetResolutionAdapter.js +4 -4
  51. package/src/main/js/sap/ushell/adapters/local/ContainerAdapter.js +1 -1
  52. package/src/main/js/sap/ushell/adapters/local/FlpLaunchPageAdapter.js +1 -1
  53. package/src/main/js/sap/ushell/adapters/local/LaunchPageAdapter.js +1 -1
  54. package/src/main/js/sap/ushell/adapters/local/NavTargetResolutionAdapter.js +1 -1
  55. package/src/main/js/sap/ushell/adapters/local/NavTargetResolutionInternalAdapter.js +1 -1
  56. package/src/main/js/sap/ushell/adapters/local/PageBuildingAdapter.js +1 -1
  57. package/src/main/js/sap/ushell/adapters/local/PagePersistenceAdapter.js +1 -1
  58. package/src/main/js/sap/ushell/adapters/local/PersonalizationAdapter.js +1 -1
  59. package/src/main/js/sap/ushell/adapters/local/PersonalizationV2Adapter.js +1 -1
  60. package/src/main/js/sap/ushell/adapters/local/SearchAdapter.js +1 -1
  61. package/src/main/js/sap/ushell/adapters/local/SearchCEPAdapter.js +1 -1
  62. package/src/main/js/sap/ushell/adapters/local/SupportTicketAdapter.js +1 -1
  63. package/src/main/js/sap/ushell/adapters/local/Ui5ComponentLoaderAdapter.js +1 -1
  64. package/src/main/js/sap/ushell/adapters/local/UserDefaultParameterPersistenceAdapter.js +1 -1
  65. package/src/main/js/sap/ushell/adapters/local/UserInfoAdapter.js +1 -1
  66. package/src/main/js/sap/ushell/api/RTA.js +14 -2
  67. package/src/main/js/sap/ushell/appRuntime/ui5/AppRuntime.js +5 -5
  68. package/src/main/js/sap/ushell/appRuntime/ui5/renderers/fiori2/RendererExtensions.js +1 -1
  69. package/src/main/js/sap/ushell/appRuntime/ui5/services/AppConfiguration.js +1 -1
  70. package/src/main/js/sap/ushell/appRuntime/ui5/services/AppState.js +1 -1
  71. package/src/main/js/sap/ushell/appRuntime/ui5/services/Bookmark.js +1 -1
  72. package/src/main/js/sap/ushell/appRuntime/ui5/services/BookmarkV2.js +1 -1
  73. package/src/main/js/sap/ushell/appRuntime/ui5/services/CommonDataModel.js +1 -1
  74. package/src/main/js/sap/ushell/appRuntime/ui5/services/Container.js +1 -1
  75. package/src/main/js/sap/ushell/appRuntime/ui5/services/CrossApplicationNavigation.js +1 -1
  76. package/src/main/js/sap/ushell/appRuntime/ui5/services/Extension/Item.js +1 -1
  77. package/src/main/js/sap/ushell/appRuntime/ui5/services/Extension.js +1 -1
  78. package/src/main/js/sap/ushell/appRuntime/ui5/services/FrameBoundExtension.js +1 -1
  79. package/src/main/js/sap/ushell/appRuntime/ui5/services/LaunchPage.js +1 -1
  80. package/src/main/js/sap/ushell/appRuntime/ui5/services/MessageBroker.js +1 -1
  81. package/src/main/js/sap/ushell/appRuntime/ui5/services/NavTargetResolution.js +1 -1
  82. package/src/main/js/sap/ushell/appRuntime/ui5/services/NavTargetResolutionInternal.js +1 -1
  83. package/src/main/js/sap/ushell/appRuntime/ui5/services/Navigation.js +1 -1
  84. package/src/main/js/sap/ushell/appRuntime/ui5/services/ReferenceResolver.js +1 -1
  85. package/src/main/js/sap/ushell/appRuntime/ui5/services/ShellNavigation.js +1 -1
  86. package/src/main/js/sap/ushell/appRuntime/ui5/services/ShellNavigationInternal.js +1 -1
  87. package/src/main/js/sap/ushell/appRuntime/ui5/services/ShellUIService.js +1 -1
  88. package/src/main/js/sap/ushell/appRuntime/ui5/services/UserInfo.js +1 -1
  89. package/src/main/js/sap/ushell/appRuntime/ui5/services/adapters/Ui5ComponentLoaderAdapter.js +1 -1
  90. package/src/main/js/sap/ushell/bootstrap/_SchedulingAgent/logger.js +1 -1
  91. package/src/main/js/sap/ushell/bootstrap/_SchedulingAgent/state.js +1 -1
  92. package/src/main/js/sap/ushell/bootstrap/common/common.configure.ui5datetimeformat.js +1 -1
  93. package/src/main/js/sap/ushell/bootstrap/common/common.create.configcontract.core.js +2 -1
  94. package/src/main/js/sap/ushell/bootstrap/sandbox2.js +3 -3
  95. package/src/main/js/sap/ushell/components/CatalogsManager.js +4 -1
  96. package/src/main/js/sap/ushell/components/HomepageManager.js +1 -0
  97. package/src/main/js/sap/ushell/components/_HeaderManager/ShellHeader.controller.js +1 -0
  98. package/src/main/js/sap/ushell/components/appfinder/manifest.json +1 -1
  99. package/src/main/js/sap/ushell/components/applicationIntegration/AppLifeCycle.js +1 -1
  100. package/src/main/js/sap/ushell/components/applicationIntegration/application/Application.js +1 -1
  101. package/src/main/js/sap/ushell/components/applicationIntegration/application/BlueBoxHandler.js +2 -2
  102. package/src/main/js/sap/ushell/components/applicationIntegration/application/BlueBoxesCache.js +37 -7
  103. package/src/main/js/sap/ushell/components/applicationIntegration/application/PostMessageAPI.js +1 -1
  104. package/src/main/js/sap/ushell/components/applicationIntegration/configuration/AppMeta.js +1 -1
  105. package/src/main/js/sap/ushell/components/applicationIntegration/elements/model.js +1 -1
  106. package/src/main/js/sap/ushell/components/applicationIntegration/relatedServices/RelatedServices.js +1 -1
  107. package/src/main/js/sap/ushell/components/applicationIntegration/relatedShellElements/RelatedShellElements.js +1 -1
  108. package/src/main/js/sap/ushell/components/container/ApplicationContainer.js +1 -1
  109. package/src/main/js/sap/ushell/components/contentFinder/Component.js +1 -1
  110. package/src/main/js/sap/ushell/components/contentFinder/controller/AppSearch.controller.js +1 -1
  111. package/src/main/js/sap/ushell/components/contentFinder/controller/ContentFinderDialog.controller.js +1 -1
  112. package/src/main/js/sap/ushell/components/contentFinder/controller/WidgetGallery.controller.js +1 -1
  113. package/src/main/js/sap/ushell/components/contentFinder/manifest.json +1 -1
  114. package/src/main/js/sap/ushell/components/contentFinderStandalone/Component.js +1 -1
  115. package/src/main/js/sap/ushell/components/contentFinderStandalone/controller/ContentFinderStandalone.controller.js +1 -1
  116. package/src/main/js/sap/ushell/components/contentFinderStandalone/manifest.json +1 -1
  117. package/src/main/js/sap/ushell/components/contentFinderStandalone/manifestAppSearch.json +1 -1
  118. package/src/main/js/sap/ushell/components/factsheet/Component.js +1 -1
  119. package/src/main/js/sap/ushell/components/homepage/ActionMode.js +1 -1
  120. package/src/main/js/sap/ushell/components/homepage/DashboardContent.view.js +1 -1
  121. package/src/main/js/sap/ushell/components/homepage/DashboardGroupsBox.js +1 -1
  122. package/src/main/js/sap/ushell/components/homepage/DashboardUIActions.js +1 -1
  123. package/src/main/js/sap/ushell/components/homepage/manifest.json +1 -1
  124. package/src/main/js/sap/ushell/components/pages/ActionMode.js +1 -1
  125. package/src/main/js/sap/ushell/components/pages/Component.js +1 -1
  126. package/src/main/js/sap/ushell/components/pages/MyHomeImport.js +1 -1
  127. package/src/main/js/sap/ushell/components/pages/controller/PageRuntime.controller.js +2 -1
  128. package/src/main/js/sap/ushell/components/pages/manifest.json +1 -1
  129. package/src/main/js/sap/ushell/components/runtimeSwitcher/controller/RuntimeSwitcher.controller.js +11 -3
  130. package/src/main/js/sap/ushell/components/runtimeSwitcher/manifest.json +1 -1
  131. package/src/main/js/sap/ushell/components/shell/MenuBar/manifest.json +1 -1
  132. package/src/main/js/sap/ushell/components/shell/NavigationBarMenu/controller/NavigationBarMenu.controller.js +1 -1
  133. package/src/main/js/sap/ushell/components/shell/NavigationBarMenu/manifest.json +1 -1
  134. package/src/main/js/sap/ushell/components/shell/Notifications/Component.js +1 -1
  135. package/src/main/js/sap/ushell/components/shell/Notifications/Notifications.controller.js +1 -2
  136. package/src/main/js/sap/ushell/components/shell/ProductSwitch/Component.js +1 -1
  137. package/src/main/js/sap/ushell/components/shell/Search/manifest.json +1 -1
  138. package/src/main/js/sap/ushell/components/shell/SearchCEP/Component.js +1 -1
  139. package/src/main/js/sap/ushell/components/shell/SearchCEP/SearchProviders/FrequentActivityProvider.js +1 -1
  140. package/src/main/js/sap/ushell/components/shell/SearchCEP/SearchProviders/RecentSearchProvider.js +1 -1
  141. package/src/main/js/sap/ushell/components/shell/SearchCEP/SearchProviders/SearchProvider.js +1 -1
  142. package/src/main/js/sap/ushell/components/shell/SearchCEP/SearchProviders/SearchServiceProvider.js +1 -1
  143. package/src/main/js/sap/ushell/components/shell/Settings/Component.js +1 -1
  144. package/src/main/js/sap/ushell/components/shell/Settings/UserSettings.controller.js +10 -0
  145. package/src/main/js/sap/ushell/components/shell/Settings/userLanguageRegion/LanguageRegionSelector.controller.js +1 -0
  146. package/src/main/js/sap/ushell/components/shell/UserActionsMenu/Component.js +1 -1
  147. package/src/main/js/sap/ushell/components/shell/UserImage/Component.js +1 -1
  148. package/src/main/js/sap/ushell/components/tiles/cdm/applauncherdynamic/Component.js +3 -0
  149. package/src/main/js/sap/ushell/components/visualizationOrganizer/Component.js +1 -1
  150. package/src/main/js/sap/ushell/components/workPageBuilder/Component.js +1 -1
  151. package/src/main/js/sap/ushell/components/workPageBuilder/controller/WorkPageBuilder.accessibility.js +1 -1
  152. package/src/main/js/sap/ushell/components/workPageBuilder/controller/WorkPageBuilder.controller.js +1 -1
  153. package/src/main/js/sap/ushell/components/workPageBuilder/controls/WorkPage.js +1 -1
  154. package/src/main/js/sap/ushell/components/workPageBuilder/controls/WorkPageButton.js +1 -1
  155. package/src/main/js/sap/ushell/components/workPageBuilder/controls/WorkPageCell.js +1 -1
  156. package/src/main/js/sap/ushell/components/workPageBuilder/controls/WorkPageColumn.js +1 -1
  157. package/src/main/js/sap/ushell/components/workPageBuilder/controls/WorkPageColumnResizer.js +1 -1
  158. package/src/main/js/sap/ushell/components/workPageBuilder/controls/WorkPageRow.js +1 -1
  159. package/src/main/js/sap/ushell/components/workPageBuilder/manifest.json +1 -1
  160. package/src/main/js/sap/ushell/components/workPageRuntime/Component.js +1 -1
  161. package/src/main/js/sap/ushell/components/workPageRuntime/controller/WorkPageRuntime.controller.js +1 -1
  162. package/src/main/js/sap/ushell/components/workPageRuntime/manifest.json +1 -1
  163. package/src/main/js/sap/ushell/designtime/ApplicationContainer.designtime.js +1 -1
  164. package/src/main/js/sap/ushell/library.js +1 -1
  165. package/src/main/js/sap/ushell/navigationMode.js +1 -1
  166. package/src/main/js/sap/ushell/performance/ShellAnalytics.js +1 -1
  167. package/src/main/js/sap/ushell/performance/StatisticalRecord.js +1 -1
  168. package/src/main/js/sap/ushell/plugins/appwarmup/Component.js +1 -1
  169. package/src/main/js/sap/ushell/renderer/History.js +1 -2
  170. package/src/main/js/sap/ushell/renderer/Renderer.js +2 -2
  171. package/src/main/js/sap/ushell/renderer/Shell.controller.js +1 -1
  172. package/src/main/js/sap/ushell/renderer/resources/resources_ar.properties +4 -4
  173. package/src/main/js/sap/ushell/renderer/resources/resources_bg.properties +4 -4
  174. package/src/main/js/sap/ushell/renderer/resources/resources_ca.properties +4 -4
  175. package/src/main/js/sap/ushell/renderer/resources/resources_cnr.properties +4 -4
  176. package/src/main/js/sap/ushell/renderer/resources/resources_cs.properties +3 -3
  177. package/src/main/js/sap/ushell/renderer/resources/resources_cy.properties +4 -4
  178. package/src/main/js/sap/ushell/renderer/resources/resources_da.properties +4 -4
  179. package/src/main/js/sap/ushell/renderer/resources/resources_de.properties +4 -4
  180. package/src/main/js/sap/ushell/renderer/resources/resources_el.properties +4 -4
  181. package/src/main/js/sap/ushell/renderer/resources/resources_en.properties +4 -4
  182. package/src/main/js/sap/ushell/renderer/resources/resources_en_GB.properties +4 -4
  183. package/src/main/js/sap/ushell/renderer/resources/resources_en_US_saprigi.properties +4 -4
  184. package/src/main/js/sap/ushell/renderer/resources/resources_es.properties +4 -4
  185. package/src/main/js/sap/ushell/renderer/resources/resources_es_MX.properties +4 -4
  186. package/src/main/js/sap/ushell/renderer/resources/resources_et.properties +4 -4
  187. package/src/main/js/sap/ushell/renderer/resources/resources_fi.properties +4 -4
  188. package/src/main/js/sap/ushell/renderer/resources/resources_fr.properties +4 -4
  189. package/src/main/js/sap/ushell/renderer/resources/resources_fr_CA.properties +37 -37
  190. package/src/main/js/sap/ushell/renderer/resources/resources_hi.properties +4 -4
  191. package/src/main/js/sap/ushell/renderer/resources/resources_hr.properties +4 -4
  192. package/src/main/js/sap/ushell/renderer/resources/resources_hu.properties +4 -4
  193. package/src/main/js/sap/ushell/renderer/resources/resources_id.properties +4 -4
  194. package/src/main/js/sap/ushell/renderer/resources/resources_it.properties +4 -4
  195. package/src/main/js/sap/ushell/renderer/resources/resources_iw.properties +4 -4
  196. package/src/main/js/sap/ushell/renderer/resources/resources_ja.properties +4 -4
  197. package/src/main/js/sap/ushell/renderer/resources/resources_kk.properties +4 -4
  198. package/src/main/js/sap/ushell/renderer/resources/resources_ko.properties +4 -4
  199. package/src/main/js/sap/ushell/renderer/resources/resources_lt.properties +4 -4
  200. package/src/main/js/sap/ushell/renderer/resources/resources_lv.properties +4 -4
  201. package/src/main/js/sap/ushell/renderer/resources/resources_mk.properties +4 -4
  202. package/src/main/js/sap/ushell/renderer/resources/resources_ms.properties +4 -4
  203. package/src/main/js/sap/ushell/renderer/resources/resources_nl.properties +4 -4
  204. package/src/main/js/sap/ushell/renderer/resources/resources_no.properties +4 -4
  205. package/src/main/js/sap/ushell/renderer/resources/resources_pl.properties +4 -4
  206. package/src/main/js/sap/ushell/renderer/resources/resources_pt.properties +4 -4
  207. package/src/main/js/sap/ushell/renderer/resources/resources_pt_PT.properties +4 -4
  208. package/src/main/js/sap/ushell/renderer/resources/resources_ro.properties +4 -4
  209. package/src/main/js/sap/ushell/renderer/resources/resources_ru.properties +4 -4
  210. package/src/main/js/sap/ushell/renderer/resources/resources_sh.properties +4 -4
  211. package/src/main/js/sap/ushell/renderer/resources/resources_sk.properties +4 -4
  212. package/src/main/js/sap/ushell/renderer/resources/resources_sl.properties +4 -4
  213. package/src/main/js/sap/ushell/renderer/resources/resources_sr.properties +4 -4
  214. package/src/main/js/sap/ushell/renderer/resources/resources_sv.properties +4 -4
  215. package/src/main/js/sap/ushell/renderer/resources/resources_th.properties +4 -4
  216. package/src/main/js/sap/ushell/renderer/resources/resources_tr.properties +4 -4
  217. package/src/main/js/sap/ushell/renderer/resources/resources_uk.properties +4 -4
  218. package/src/main/js/sap/ushell/renderer/resources/resources_vi.properties +4 -4
  219. package/src/main/js/sap/ushell/renderer/resources/resources_zh_CN.properties +4 -4
  220. package/src/main/js/sap/ushell/renderer/resources/resources_zh_TW.properties +4 -4
  221. package/src/main/js/sap/ushell/renderer/search/searchComponent/manifest.json +1 -1
  222. package/src/main/js/sap/ushell/services/AppConfiguration.js +13 -11
  223. package/src/main/js/sap/ushell/services/AppLifeCycle.js +1 -1
  224. package/src/main/js/sap/ushell/services/AppState.js +1 -1
  225. package/src/main/js/sap/ushell/services/Bookmark.js +1 -1
  226. package/src/main/js/sap/ushell/services/BookmarkV2.js +1 -1
  227. package/src/main/js/sap/ushell/services/ClientSideTargetResolution.js +625 -750
  228. package/src/main/js/sap/ushell/services/CommonDataModel.js +21 -14
  229. package/src/main/js/sap/ushell/services/Configuration.js +1 -1
  230. package/src/main/js/sap/ushell/services/ConfigurationDefaults.js +1 -1
  231. package/src/main/js/sap/ushell/services/ContentExtensionAdapterFactory.js +1 -1
  232. package/src/main/js/sap/ushell/services/CrossApplicationNavigation.js +14 -3
  233. package/src/main/js/sap/ushell/services/DarkModeSupport.js +1 -1
  234. package/src/main/js/sap/ushell/services/Extension/Item.js +1 -1
  235. package/src/main/js/sap/ushell/services/Extension.js +1 -1
  236. package/src/main/js/sap/ushell/services/FlpLaunchPage.js +1 -1
  237. package/src/main/js/sap/ushell/services/FrameBoundExtension/FloatingContainer.js +1 -1
  238. package/src/main/js/sap/ushell/services/FrameBoundExtension/Footer.js +1 -1
  239. package/src/main/js/sap/ushell/services/FrameBoundExtension/Item.js +1 -1
  240. package/src/main/js/sap/ushell/services/FrameBoundExtension/SidePane.js +1 -1
  241. package/src/main/js/sap/ushell/services/FrameBoundExtension/ToolArea.js +1 -1
  242. package/src/main/js/sap/ushell/services/FrameBoundExtension.js +1 -1
  243. package/src/main/js/sap/ushell/services/LaunchPage.js +1 -1
  244. package/src/main/js/sap/ushell/services/Menu.js +1 -1
  245. package/src/main/js/sap/ushell/services/Message.js +1 -1
  246. package/src/main/js/sap/ushell/services/MessageBroker.js +1 -1
  247. package/src/main/js/sap/ushell/services/MessageInternal.js +1 -1
  248. package/src/main/js/sap/ushell/services/Navigation/compatibility.js +1 -1
  249. package/src/main/js/sap/ushell/services/Navigation/utils.js +1 -1
  250. package/src/main/js/sap/ushell/services/Navigation.js +3 -3
  251. package/src/main/js/sap/ushell/services/NavigationDataProvider.js +1 -1
  252. package/src/main/js/sap/ushell/services/PageBuilding.js +1 -1
  253. package/src/main/js/sap/ushell/services/PagePersistence.js +1 -1
  254. package/src/main/js/sap/ushell/services/PageReferencing.js +1 -1
  255. package/src/main/js/sap/ushell/services/Pages.js +1 -1
  256. package/src/main/js/sap/ushell/services/Personalization.js +1 -1
  257. package/src/main/js/sap/ushell/services/PersonalizationV2.js +1 -1
  258. package/src/main/js/sap/ushell/services/PluginManager.js +1 -1
  259. package/src/main/js/sap/ushell/services/ReferenceResolver.js +223 -229
  260. package/src/main/js/sap/ushell/services/Search.js +1 -1
  261. package/src/main/js/sap/ushell/services/SearchCEP.js +1 -1
  262. package/src/main/js/sap/ushell/services/SearchableContent.js +1 -1
  263. package/src/main/js/sap/ushell/services/ShellNavigation.js +1 -1
  264. package/src/main/js/sap/ushell/services/SmartNavigation.js +1 -1
  265. package/src/main/js/sap/ushell/services/SpaceContent.js +1 -1
  266. package/src/main/js/sap/ushell/services/UITracer.js +1 -1
  267. package/src/main/js/sap/ushell/services/URLShortening.js +1 -1
  268. package/src/main/js/sap/ushell/services/URLTemplate.js +1 -1
  269. package/src/main/js/sap/ushell/services/Ui5ComponentLoader.js +1 -1
  270. package/src/main/js/sap/ushell/services/UserDefaultParameterPersistence.js +87 -78
  271. package/src/main/js/sap/ushell/services/UserDefaultParameters.js +225 -271
  272. package/src/main/js/sap/ushell/services/UserInfo.js +1 -1
  273. package/src/main/js/sap/ushell/services/UserRecents.js +1 -1
  274. package/src/main/js/sap/ushell/services/VisualizationDataProvider.js +1 -1
  275. package/src/main/js/sap/ushell/services/VisualizationInstantiation.js +1 -1
  276. package/src/main/js/sap/ushell/services/_ClientSideTargetResolution/Formatter.js +10 -10
  277. package/src/main/js/sap/ushell/services/_ClientSideTargetResolution/InboundIndex.js +9 -6
  278. package/src/main/js/sap/ushell/services/_ClientSideTargetResolution/InboundProvider.js +16 -25
  279. package/src/main/js/sap/ushell/services/_ClientSideTargetResolution/ParameterMapping.js +3 -1
  280. package/src/main/js/sap/ushell/services/_ClientSideTargetResolution/PrelaunchOperations.js +15 -21
  281. package/src/main/js/sap/ushell/services/_ClientSideTargetResolution/Search.js +52 -45
  282. package/src/main/js/sap/ushell/services/_ClientSideTargetResolution/StagedLogger.js +3 -5
  283. package/src/main/js/sap/ushell/services/_ClientSideTargetResolution/SystemContext.js +5 -2
  284. package/src/main/js/sap/ushell/services/_ClientSideTargetResolution/Utils.js +1 -1
  285. package/src/main/js/sap/ushell/services/_ClientSideTargetResolution/VirtualInbounds.js +1 -1
  286. package/src/main/js/sap/ushell/services/_ClientSideTargetResolution/XAppStateProcessing.js +63 -80
  287. package/src/main/js/sap/ushell/services/_CommonDataModel/SiteConverter.js +1 -1
  288. package/src/main/js/sap/ushell/services/_CommonDataModel/vizTypeDefaults/VizTypeDefaults.js +1 -1
  289. package/src/main/js/sap/ushell/services/_ContentExtensionAdapterFactory/ContentExtensionAdapterConfig.js +1 -1
  290. package/src/main/js/sap/ushell/services/_ContentExtensionAdapterFactory/FeaturedGroupConfig.js +1 -1
  291. package/src/main/js/sap/ushell/services/_CrossApplicationNavigation/utils.js +1 -1
  292. package/src/main/js/sap/ushell/services/_MessageBroker/MessageBrokerEngine.js +1 -1
  293. package/src/main/js/sap/ushell/services/_PageReferencing/PageReferencer.js +1 -1
  294. package/src/main/js/sap/ushell/services/_PluginManager/Extensions.js +1 -1
  295. package/src/main/js/sap/ushell/services/_PluginManager/HeaderExtensions.js +1 -1
  296. package/src/main/js/sap/ushell/services/_PluginManager/MenuExtensions.js +1 -1
  297. package/src/main/js/sap/ushell/services/_Ui5ComponentLoader/utils.js +1 -1
  298. package/src/main/js/sap/ushell/support/plugins/flpConfig/FlpConfigurationPlugin.js +1 -1
  299. package/src/main/js/sap/ushell/themes/sap_horizon/Tile.less +2 -6
  300. package/src/main/js/sap/ushell/ui/cards/RecentActivitiesExtension.js +1 -1
  301. package/src/main/js/sap/ushell/ui/footerbar/SendAsEmailButton.js +2 -2
  302. package/src/main/js/sap/ushell/ui/launchpad/ExtendedChangeDetection.js +1 -1
  303. package/src/main/js/sap/ushell/ui/launchpad/Section.js +3 -6
  304. package/src/main/js/sap/ushell/ui/launchpad/section/CompactArea.js +1 -1
  305. package/src/main/js/sap/ushell/ui/shell/ShellHeadItem.js +3 -8
  306. package/src/main/js/sap/ushell/ui/shell/ToolAreaItem.js +1 -2
  307. package/src/main/js/sap/ushell/ui/utils.js +1 -1
  308. package/src/main/js/sap/ushell/ui5service/ShellUIService.js +1 -1
  309. package/src/main/js/sap/ushell/ui5service/UserStatus.js +1 -1
  310. package/src/main/js/sap/ushell/utils/UrlShortening.js +1 -1
  311. package/src/main/js/sap/ushell/utils/WindowUtils.js +17 -0
  312. package/src/main/js/sap/ushell/utils/tilecard/TileCard.js +305 -305
  313. package/src/main/js/sap/ushell/utils/workpage/WorkPageHost.js +1 -1
  314. package/src/main/js/sap/ushell/utils/workpage/WorkPageService.js +22 -5
  315. package/src/main/js/sap/ushell/utils/workpage/WorkPageVizInstantiation.js +7 -6
  316. package/src/test/js/sap/ushell/bootstrap/sandbox.js +1 -1
  317. package/ui5.yaml +1 -1
@@ -7,7 +7,7 @@
7
7
  * This service should be accessed by the application
8
8
  * via the CrossApplicationNavigation service.
9
9
  *
10
- * @version 1.125.0
10
+ * @version 1.126.1
11
11
  */
12
12
  sap.ui.define([
13
13
  "sap/base/Log",
@@ -27,13 +27,13 @@ sap.ui.define([
27
27
  isEmptyObject,
28
28
  EventProvider,
29
29
  jQuery,
30
- oUtils,
30
+ ushellUtils,
31
31
  Container
32
32
  ) {
33
33
  "use strict";
34
34
 
35
- var sEventNameValueStored = "valueStored";
36
- var aStoreMembers = ["value", "noEdit", "noStore", "extendedValue", "alwaysAskPlugin"];
35
+ const sEventNameValueStored = "valueStored";
36
+ const aStoreMembers = ["value", "noEdit", "noStore", "extendedValue", "alwaysAskPlugin"];
37
37
  /**
38
38
  * @alias sap.ushell.services.UserDefaultParameters
39
39
  * @class
@@ -67,8 +67,7 @@ sap.ui.define([
67
67
  // persistence.
68
68
  this._oWasParameterPersisted = {};
69
69
 
70
- var that = this;
71
- var oStoreValueEventProvider = new EventProvider();
70
+ const oStoreValueEventProvider = new EventProvider();
72
71
 
73
72
  /**
74
73
  * Obtain an integer representing the priority of the plugin
@@ -80,7 +79,7 @@ sap.ui.define([
80
79
  * @private
81
80
  */
82
81
  function getPrio (oPlugin) {
83
- var val = (typeof oPlugin.getComponentData === "function" && oPlugin.getComponentData() && oPlugin.getComponentData().config && oPlugin.getComponentData().config["sap-priority"]) || 0;
82
+ const val = (typeof oPlugin.getComponentData === "function" && oPlugin.getComponentData() && oPlugin.getComponentData().config && oPlugin.getComponentData().config["sap-priority"]) || 0;
84
83
  if (typeof val !== "number" || isNaN(val)) {
85
84
  return 0;
86
85
  }
@@ -100,9 +99,9 @@ sap.ui.define([
100
99
  * @since 1.32.0
101
100
  */
102
101
  this._insertPluginOrdered = function (aPlugins, oPlugin) {
103
- var prioPlugin = getPrio(oPlugin);
104
- for (var i = 0; (i < aPlugins.length) && oPlugin; ++i) {
105
- var prioNth = getPrio(aPlugins[i]);
102
+ const prioPlugin = getPrio(oPlugin);
103
+ for (let i = 0; (i < aPlugins.length) && oPlugin; ++i) {
104
+ const prioNth = getPrio(aPlugins[i]);
106
105
  if (oPlugin && (prioPlugin > prioNth)) {
107
106
  aPlugins.splice(i, 0, oPlugin); // insert at index i;
108
107
  oPlugin = undefined;
@@ -140,32 +139,23 @@ sap.ui.define([
140
139
  *
141
140
  * @private
142
141
  */
143
- this._getUserDefaultValueFromPlugin = function (oPlugin, sParameterName, oSystemContext, oValue) {
144
- var oResult;
142
+ this._getUserDefaultValueFromPlugin = async function (oPlugin, sParameterName, oSystemContext, oValue) {
145
143
  if (typeof oPlugin.getUserDefault === "function") {
146
- oResult = new Promise(function (resolve, reject) {
147
- oPlugin.getUserDefault(sParameterName, oValue, oSystemContext)
148
- .done(function (oNewValue) {
149
- var oResolveValue = oNewValue || oValue;
150
-
151
- var sPluginName = this._getComponentNameOfPlugin(oPlugin);
152
- Log.debug(
153
- "[UserDefaults] Fetched \"" + sParameterName + "\" for SystemContext=" + oSystemContext.id + " from Plugin=" + sPluginName,
154
- JSON.stringify(oResolveValue, null, 2)
155
- );
156
-
157
- resolve(oResolveValue);
158
- }.bind(this))
159
- .fail(function () {
160
- Log.error("invocation of getUserDefault(\"" + sParameterName + "\") for plugin " + that._getComponentNameOfPlugin(oPlugin) + " rejected.", null,
144
+ try {
145
+ const oResult = await ushellUtils.promisify(oPlugin.getUserDefault(sParameterName, oValue, oSystemContext));
146
+ const oResolveValue = oResult || oValue;
147
+
148
+ const sPluginName = this._getComponentNameOfPlugin(oPlugin);
149
+ Log.debug(`[UserDefaults] Fetched "${sParameterName}" for SystemContext="${oSystemContext.id}" from Plugin="${sPluginName}"`, JSON.stringify(oResolveValue, null, 2));
150
+
151
+ return oResolveValue;
152
+ } catch {
153
+ Log.error(`invocation of getUserDefault("${ sParameterName }") for plugin ${ this._getComponentNameOfPlugin(oPlugin) } rejected.`, null,
161
154
  "sap.ushell.services.UserDefaultParameters");
162
- resolve(oValue);
163
- });
164
- }.bind(this));
165
- } else {
166
- oResult = Promise.resolve(oValue);
155
+ }
167
156
  }
168
- return oResult;
157
+
158
+ return oValue;
169
159
  };
170
160
 
171
161
  /**
@@ -188,26 +178,22 @@ sap.ui.define([
188
178
  * @since 1.32.0
189
179
  * @private
190
180
  */
191
- this._iterateOverPluginsToGetDefaultValue = function (sParameterName, oStartValue, oSystemContext) {
181
+ this._iterateOverPluginsToGetDefaultValue = async function (sParameterName, oStartValue, oSystemContext) {
192
182
  // Main promise chain construction: a plugin will only be called once the previous one's promise has resolved
193
183
  // so that we have access to the value returned by that promise.
194
- return new Promise(function (resolve, reject) {
195
- Container.getServiceAsync("PluginManager").then(function (oPluginManagerService) {
196
- oPluginManagerService.loadPlugins("UserDefaults")
197
- .done(function () {
198
- var oPluginPromiseChain = this._aPlugins.reduce(function (oChain, oPlugin) {
199
- var oExtendedChain = oChain.then(this._getUserDefaultValueFromPlugin.bind(this, oPlugin, sParameterName, oSystemContext /*oValue - resolved value*/));
200
- return oExtendedChain;
201
- }.bind(this), Promise.resolve(oStartValue));
202
-
203
- oPluginPromiseChain.then(resolve);
204
- }.bind(this))
205
- .fail(function () {
206
- Log.error("Cannot get value for " + sParameterName + ". One or more plugins could not be loaded.");
207
- reject("Initialization of plugins failed");
208
- });
209
- }.bind(this));
210
- }.bind(this));
184
+ const PluginManager = await Container.getServiceAsync("PluginManager");
185
+
186
+ try {
187
+ await ushellUtils.promisify(PluginManager.loadPlugins("UserDefaults"));
188
+ } catch {
189
+ Log.error(`Cannot get value for ${ sParameterName }. One or more plugins could not be loaded.`);
190
+ return Promise.reject("Initialization of plugins failed");
191
+ }
192
+
193
+ return this._aPlugins.reduce(async (oPromise, oPlugin) =>{
194
+ const oPreviousValue = await oPromise;
195
+ return this._getUserDefaultValueFromPlugin(oPlugin, sParameterName, oSystemContext, oPreviousValue);
196
+ }, Promise.resolve(oStartValue));
211
197
  };
212
198
 
213
199
  this._getStoreDate = function () {
@@ -227,25 +213,20 @@ sap.ui.define([
227
213
  * @since 1.32.0
228
214
  * @private
229
215
  */
230
- this._storeValue = function (sParameterName, oValueObject, bFromEditor, oSystemContext) {
216
+ this._storeValue = async function (sParameterName, oValueObject, bFromEditor, oSystemContext) {
231
217
  if (bFromEditor && oValueObject.extendedValue) {
232
- return Container.getServiceAsync("ClientSideTargetResolution")
233
- .then(function (oClientSideTargetResolutionService) {
234
- return new Promise(function (resolve) {
235
- oClientSideTargetResolutionService.getUserDefaultParameterNames(oSystemContext)
236
- .done(function (oParametersAndExtendedParameters) {
237
- var oExtractedArrays = this._extractKeyArrays(oParametersAndExtendedParameters);
238
- var bRemoveExtendedValue = oExtractedArrays.extended.indexOf(sParameterName) < 0;
239
-
240
- this._saveParameterValue(sParameterName, oValueObject, bFromEditor, bRemoveExtendedValue, oSystemContext)
241
- .then(resolve);
242
- }.bind(this))
243
- .fail(function () {
244
- this._saveParameterValue(sParameterName, oValueObject, bFromEditor, false, oSystemContext)
245
- .then(resolve);
246
- }.bind(this));
247
- }.bind(this));
248
- }.bind(this));
218
+ try {
219
+ const ClientSideTargetResolution = await Container.getServiceAsync("ClientSideTargetResolution");
220
+ const oDeferred = ClientSideTargetResolution.getUserDefaultParameterNames(oSystemContext);
221
+ const oParametersAndExtendedParameters = await ushellUtils.promisify(oDeferred);
222
+
223
+ const oExtractedArrays = this._extractKeyArrays(oParametersAndExtendedParameters);
224
+ const bRemoveExtendedValue = oExtractedArrays.extended.indexOf(sParameterName) < 0;
225
+
226
+ return this._saveParameterValue(sParameterName, oValueObject, bFromEditor, bRemoveExtendedValue, oSystemContext);
227
+ } catch {
228
+ Log.error(`Cannot save value for ${ sParameterName }. One or more plugins could not be loaded.`);
229
+ }
249
230
  }
250
231
 
251
232
  return this._saveParameterValue(sParameterName, oValueObject, bFromEditor, false, oSystemContext);
@@ -265,7 +246,7 @@ sap.ui.define([
265
246
  * @since 1.79.0
266
247
  * @private
267
248
  */
268
- this._saveParameterValue = function (sParameterName, oValueObject, bFromEditor, bRemoveExtendedValue, oSystemContext) {
249
+ this._saveParameterValue = async function (sParameterName, oValueObject, bFromEditor, bRemoveExtendedValue, oSystemContext) {
269
250
  if (bRemoveExtendedValue) {
270
251
  oValueObject.extendedValue = undefined;
271
252
  }
@@ -278,24 +259,21 @@ sap.ui.define([
278
259
  }, oValueObject._shellData);
279
260
  }
280
261
 
281
- return Container.getServiceAsync("UserDefaultParameterPersistence")
282
- .then(function (oUserDefaultParameterPersistenceService) {
283
- return new Promise(function (resolve) {
284
- oUserDefaultParameterPersistenceService
285
- .saveParameterValue(sParameterName, oValueObject, oSystemContext)
286
- .always(function () {
287
- var oStoreValue = {
288
- parameterName: sParameterName,
289
- parameterValue: deepClone(oValueObject || {}),
290
- systemContext: oSystemContext
291
- };
292
-
293
- oStoreValueEventProvider.fireEvent(sEventNameValueStored, oStoreValue);
294
-
295
- resolve(sParameterName);
296
- });
297
- });
298
- });
262
+ try {
263
+ const UserDefaultParameterPersistence = await Container.getServiceAsync("UserDefaultParameterPersistence");
264
+ const oDeferred = UserDefaultParameterPersistence.saveParameterValue(sParameterName, oValueObject, oSystemContext);
265
+ await ushellUtils.promisify(oDeferred);
266
+ } catch { /* always resolve */ }
267
+
268
+ const oStoreValue = {
269
+ parameterName: sParameterName,
270
+ parameterValue: deepClone(oValueObject || {}),
271
+ systemContext: oSystemContext
272
+ };
273
+
274
+ oStoreValueEventProvider.fireEvent(sEventNameValueStored, oStoreValue);
275
+
276
+ return sParameterName;
299
277
  };
300
278
 
301
279
  /**
@@ -313,15 +291,11 @@ sap.ui.define([
313
291
  * @since 1.32.0
314
292
  * @private
315
293
  */
316
- this._getPersistedValue = function (sParameterName, oSystemContext) {
317
- return new Promise(function (resolve, reject) {
318
- Container.getServiceAsync("UserDefaultParameterPersistence")
319
- .then(function (oUserDefaultParameterPersistenceService) {
320
- oUserDefaultParameterPersistenceService.loadParameterValue(sParameterName, oSystemContext)
321
- .done(resolve)
322
- .fail(reject);
323
- });
324
- });
294
+ this._getPersistedValue = async function (sParameterName, oSystemContext) {
295
+ const UserDefaultParameterPersistence = await Container.getServiceAsync("UserDefaultParameterPersistence");
296
+ const oDeferred = UserDefaultParameterPersistence.loadParameterValue(sParameterName, oSystemContext);
297
+
298
+ return ushellUtils.promisify(oDeferred);
325
299
  };
326
300
 
327
301
  /**
@@ -350,7 +324,7 @@ sap.ui.define([
350
324
  * differs.
351
325
  */
352
326
  this._haveSameMembersValue = function (oObject1, oObject2, aMembersToCheck) {
353
- return aMembersToCheck.every(function (sRelevantMember) {
327
+ return aMembersToCheck.every((sRelevantMember) => {
354
328
  return oObject1[sRelevantMember] === oObject2[sRelevantMember]
355
329
  || deepEqual(oObject1[sRelevantMember], oObject2[sRelevantMember]);
356
330
  });
@@ -379,24 +353,23 @@ sap.ui.define([
379
353
  */
380
354
  this._getUserDefaultParameterNames = function (systemContext) {
381
355
  if (!this._oUserDefaultParametersNames[systemContext.id]) {
382
- this._oUserDefaultParametersNames[systemContext.id] = new Promise(function (resolve) {
383
- Container.getServiceAsync("ClientSideTargetResolution")
384
- .then(function (ClientSideTargetResolutionService) {
385
- ClientSideTargetResolutionService.getUserDefaultParameterNames(systemContext)
386
- .done(function (oParametersAndExtendedParameters) {
387
- var oExtractedArrays = this._extractKeyArrays(oParametersAndExtendedParameters);
388
- var aExtendedParameterNames = oExtractedArrays.extended;
389
- var aAllParameterNames = oExtractedArrays.allParameters;
390
- var oMetadataObject = this._arrayToObject(aAllParameterNames);
391
-
392
- resolve({
393
- aAllParameterNames: aAllParameterNames,
394
- aExtendedParameterNames: aExtendedParameterNames,
395
- oMetadataObject: oMetadataObject
396
- });
397
- }.bind(this));
398
- }.bind(this));
399
- }.bind(this));
356
+ this._oUserDefaultParametersNames[systemContext.id] = new Promise(async (resolve) => {
357
+ const ClientSideTargetResolution = await Container.getServiceAsync("ClientSideTargetResolution");
358
+
359
+ const oDeferred = ClientSideTargetResolution.getUserDefaultParameterNames(systemContext);
360
+ const oParametersAndExtendedParameters = await ushellUtils.promisify(oDeferred);
361
+
362
+ const oExtractedArrays = this._extractKeyArrays(oParametersAndExtendedParameters);
363
+ const aExtendedParameterNames = oExtractedArrays.extended;
364
+ const aAllParameterNames = oExtractedArrays.allParameters;
365
+ const oMetadataObject = this._arrayToObject(aAllParameterNames);
366
+
367
+ resolve({
368
+ aAllParameterNames: aAllParameterNames,
369
+ aExtendedParameterNames: aExtendedParameterNames,
370
+ oMetadataObject: oMetadataObject
371
+ });
372
+ });
400
373
  }
401
374
 
402
375
  return this._oUserDefaultParametersNames[systemContext.id];
@@ -404,9 +377,9 @@ sap.ui.define([
404
377
 
405
378
  this._isRelevantParameter = function (sParamName, oSystemContext) {
406
379
  return this._getUserDefaultParameterNames(oSystemContext)
407
- .then(function (oResult) {
380
+ .then((oResult) => {
408
381
  if (!oResult.aAllParameterNames || oResult.aAllParameterNames.indexOf(sParamName) === -1) {
409
- throw new Error("The given parameter \"" + sParamName + "\" is not part of the list of parameters for the given system context.");
382
+ throw new Error(`The given parameter "${ sParamName }" is not part of the list of parameters for the given system context.`);
410
383
  }
411
384
  });
412
385
  };
@@ -416,41 +389,36 @@ sap.ui.define([
416
389
  * maintainable for the end user or not.
417
390
  *
418
391
  * @param {object} systemContext The system context object.
419
- * @returns {Promise<boolean|undefined>}
392
+ * @returns {Promise<boolean>}
420
393
  * A promise that is resolved with a boolean value
421
394
  * which has the value <code>true</code> if user default parameters are
422
395
  * maintainable, and <code>false</code> if not.
423
396
  * The promise will always be resolved.
424
397
  * Note: In case an error occurs, the promise is resolved with <code>undefined</code>.
425
398
  */
426
- this.hasRelevantMaintainableParameters = function (systemContext) {
427
- var bHasRelevantParameters = false;
428
- var aGetValuePromises = [];
429
-
430
- return new Promise(function (resolve) {
431
- this._getUserDefaultParameterNames(systemContext)
432
- .then(function (oParameterNames) {
433
- if (!isEmptyObject(oParameterNames) && oParameterNames.aAllParameterNames) {
434
- oParameterNames.aAllParameterNames.forEach(function (sParameterName) {
435
- var oGetValuePromise = this.getValue(sParameterName, systemContext);
436
- aGetValuePromises.push(oGetValuePromise);
437
- oGetValuePromise.done(function (oValue) {
438
- if (oValue && !oValue.hasOwnProperty("noEdit")) {
439
- bHasRelevantParameters = true;
440
- }
441
- });
442
- }.bind(this));
443
-
444
- jQuery.when.apply(undefined, aGetValuePromises).done(function () {
445
- resolve(bHasRelevantParameters);
446
- }).fail(function () {
447
- resolve();
448
- });
449
- } else {
450
- resolve();
451
- }
452
- }.bind(this));
453
- }.bind(this));
399
+ this.hasRelevantMaintainableParameters = async function (systemContext) {
400
+ try {
401
+ const oParameterNames = await this._getUserDefaultParameterNames(systemContext);
402
+
403
+ if (!isEmptyObject(oParameterNames) && oParameterNames.aAllParameterNames) {
404
+ const aHasRelevantParameters = await Promise.all(oParameterNames.aAllParameterNames.map(async (sParameterName) => {
405
+ try {
406
+ const oValue = await ushellUtils.promisify(this.getValue(sParameterName, systemContext));
407
+
408
+ if (oValue && !oValue.hasOwnProperty("noEdit")) {
409
+ return true;
410
+ }
411
+ } catch { /* always provide a value */ }
412
+
413
+ return false;
414
+ }));
415
+
416
+ return aHasRelevantParameters.some((bHasRelevantParameters) => bHasRelevantParameters);
417
+ }
418
+ } catch { /* always resolve */ }
419
+
420
+
421
+ return false;
454
422
  };
455
423
 
456
424
  /**
@@ -473,28 +441,28 @@ sap.ui.define([
473
441
  // c2) if value was altered, including set to undefined,
474
442
  // [not on critical path] update value in remote persistence
475
443
  // (potentially deleting value if set to undefined!)
476
- var oDeferred = new jQuery.Deferred();
444
+ const oDeferred = new jQuery.Deferred();
477
445
 
478
446
  this._isRelevantParameter(sParameterName, oSystemContext)
479
447
  // no relevant parameter -> no value
480
448
  // This is handled at the end of the chain, as all "then" will
481
449
  // be ignored in case of a rejection in _isRelevantParameter
482
- .then(function () {
450
+ .then(() => {
483
451
  return this._getPersistedValue(sParameterName, oSystemContext)
484
- .then(function (oPersistedValue) {
452
+ .then((oPersistedValue) => {
485
453
  this._oWasParameterPersisted[sParameterName] = true;
486
454
 
487
455
  return oPersistedValue || {};
488
- }.bind(this))
456
+ })
489
457
  // If the server call fails, this ensures that the plugins get called.
490
- .catch(function () {
458
+ .catch(() => {
491
459
  return { value: undefined };
492
460
  });
493
- }.bind(this))
494
- .then(function (oPersistedValue) {
495
- var oValueClone = deepClone(oPersistedValue);
461
+ })
462
+ .then((oPersistedValue) => {
463
+ const oValueClone = deepClone(oPersistedValue);
496
464
 
497
- var bAskValueToPlugins =
465
+ const bAskValueToPlugins =
498
466
  (!oPersistedValue._shellData && this._valueIsEmpty(oPersistedValue)) // _shellData is added by the shell when the parameter is stored
499
467
  || oPersistedValue.noStore // i.e., don't use the stored value
500
468
  || oPersistedValue.alwaysAskPlugin;
@@ -505,22 +473,22 @@ sap.ui.define([
505
473
  }
506
474
 
507
475
  return this._iterateOverPluginsToGetDefaultValue(sParameterName, oPersistedValue, oSystemContext)
508
- .then(function (oNewValue) {
476
+ .then((oNewValue) => {
509
477
  if (!this._oWasParameterPersisted[sParameterName] || !this._haveSameMembersValue(oValueClone, oNewValue, aStoreMembers)) {
510
478
  // avoid multiple calls result in storing a parameter, as we fire and forget via _storeValue below.
511
479
  this._oWasParameterPersisted[sParameterName] = true;
512
480
 
513
481
  this._storeValue(sParameterName, oNewValue, false, oSystemContext)
514
- .then(function () {
482
+ .then(() => {
515
483
  oDeferred.resolve(oNewValue);
516
484
  });
517
485
  } else {
518
486
  oDeferred.resolve(oNewValue);
519
487
  }
520
- }.bind(this))
488
+ })
521
489
  .catch(oDeferred.reject);
522
- }.bind(this))
523
- .catch(function () {
490
+ })
491
+ .catch(() => {
524
492
  oDeferred.resolve({ value: undefined });
525
493
  });
526
494
 
@@ -533,33 +501,23 @@ sap.ui.define([
533
501
  * @param {object} oParameters The map the new parameters are to be added to
534
502
  * @param {string[]} aParameterNames A list containing the new parameter names
535
503
  * @param {object} oSystemContext The system context object
536
- * @returns {jQuery.Promise} Resolves the amended parameter map.
504
+ * @returns {Promise<object>} Resolves the amended parameter map.
537
505
  *
538
506
  * @private
539
507
  */
540
- this._addParameterValuesToParameters = function (oParameters, aParameterNames, oSystemContext) {
541
- var oDeferred = new jQuery.Deferred();
542
- var aPromises = [];
543
-
544
- aParameterNames.forEach(function (sParameterName) {
545
- var oGetValuePromise = this.getValue(sParameterName, oSystemContext);
546
- aPromises.push(oGetValuePromise);
547
-
548
- oGetValuePromise.done(function (oValueObject) {
549
- oParameters[sParameterName].valueObject = oValueObject;
550
- });
551
- }.bind(this));
508
+ this._addParameterValuesToParameters = async function (oParameters, aParameterNames, oSystemContext) {
509
+ await Promise.all(aParameterNames.map(async (sParameterName) => {
510
+ const oValueObject = await ushellUtils.promisify(this.getValue(sParameterName, oSystemContext));
552
511
 
553
- jQuery.when.apply(jQuery, aPromises)
554
- .done(oDeferred.resolve.bind(oDeferred, oParameters))
555
- .fail(oDeferred.reject.bind(oDeferred, oParameters));
512
+ oParameters[sParameterName].valueObject = oValueObject;
513
+ }));
556
514
 
557
- return oDeferred.promise();
515
+ return oParameters;
558
516
  };
559
517
 
560
518
  this._arrayToObject = function (aParameterNames) {
561
- var oRes = {};
562
- aParameterNames.forEach(function (sParameterName) {
519
+ const oRes = {};
520
+ aParameterNames.forEach((sParameterName) => {
563
521
  oRes[sParameterName] = {};
564
522
  });
565
523
  return oRes;
@@ -575,7 +533,6 @@ sap.ui.define([
575
533
 
576
534
  /**
577
535
  * given
578
- * @param {jQuery.Deferred} oDeferred a jQuery Deferred, which is to be resolved if the execution succeeded
579
536
  * @param {string[]} aAllParameterNames all assigned parameter names as array of strings
580
537
  * @param {string[]} aExtendedParameterNames the parameter names as array of strings
581
538
  * @param {object} oMetadataObject a raw metadata object, not yet amended by plugin data
@@ -583,83 +540,68 @@ sap.ui.define([
583
540
  *
584
541
  * @private
585
542
  */
586
- this._getEditorDataAndValue = function (oDeferred, aAllParameterNames, aExtendedParameterNames, oMetadataObject, oSystemContext) {
587
- var that = this;
588
- var aDeferreds = [];
589
- var aResultsOfMetadataPluginCalls = [];
590
-
591
- this._aPlugins.forEach(function (oPlugin) {
543
+ this._getEditorDataAndValue = async function (aAllParameterNames, aExtendedParameterNames, oMetadataObject, oSystemContext) {
544
+ const aPluginMetadata = await Promise.all(this._aPlugins.map(async (oPlugin) => {
592
545
  if (typeof oPlugin.getEditorMetadata === "function") {
593
- var oPluginDeferred = new jQuery.Deferred();
594
- aDeferreds.push(oPluginDeferred);
595
-
596
546
  try {
597
- var iPromisesLength = aDeferreds.length - 1;
598
-
599
- oPlugin.getEditorMetadata(oMetadataObject, oSystemContext)
600
- .done(function (oResultMetadata) {
601
- aResultsOfMetadataPluginCalls[iPromisesLength] = oResultMetadata;
602
- }).always(oPluginDeferred.resolve)
603
- .fail(function () {
604
- Log.error("EditorMetadata for plugin " + that._getComponentNameOfPlugin(oPlugin) + "cannot be invoked.", null, "sap.ushell.services.UserDefaultParameters");
605
- oPluginDeferred.resolve();
606
- });
607
- } catch (ex) {
608
- Log.error("Error invoking getEditorMetaData on plugin: " + ex + ex.stack, null,
609
- "sap.ushell.services.UserDefaultParameters");
610
- oPluginDeferred.resolve();
547
+ const oDeferred = oPlugin.getEditorMetadata(oMetadataObject, oSystemContext);
548
+ const oResultMetadata = await ushellUtils.promisify(oDeferred);
549
+
550
+ return oResultMetadata;
551
+ } catch (error) {
552
+ Log.error(`Error invoking getEditorMetaData on plugin: ${ error }${error.stack}`, null,
553
+ "sap.ushell.services.UserDefaultParameters");
554
+ return;
611
555
  }
612
556
  }
613
- });
614
-
615
- jQuery.when.apply(jQuery, aDeferreds).done(function () {
616
- // all metadata present
617
- var aParameterNamesWithoutMetadata = [];
618
- var oParametersWithMetadata = aResultsOfMetadataPluginCalls.reverse().reduce(function (oPreviousValue, oNthResult) {
619
- aAllParameterNames.forEach(function (sParameterName) {
620
- if (oNthResult[sParameterName] && oNthResult[sParameterName].editorMetadata) {
621
- oPreviousValue[sParameterName].editorMetadata = oNthResult[sParameterName].editorMetadata;
622
- }
623
- });
624
- return oPreviousValue;
625
- }, oMetadataObject);
626
- aAllParameterNames.forEach(function (sParameterName) {
627
- if (!(oParametersWithMetadata[sParameterName] && oParametersWithMetadata[sParameterName].editorMetadata)) {
628
- aParameterNamesWithoutMetadata.push(sParameterName);
557
+ }));
558
+
559
+ // all metadata present
560
+ const aParameterNamesWithoutMetadata = [];
561
+ // apply metadata results on top of the metadata object (start with last plugin result)
562
+ const oParametersWithMetadata = aPluginMetadata.reverse().reduce((oPreviousValue, oPluginMetadata) => {
563
+ aAllParameterNames.forEach((sParameterName) => {
564
+ if (oPluginMetadata?.[sParameterName]?.editorMetadata) {
565
+ oPreviousValue[sParameterName].editorMetadata = oPluginMetadata[sParameterName].editorMetadata;
629
566
  }
630
567
  });
568
+ return oPreviousValue;
569
+ }, oMetadataObject);
570
+ aAllParameterNames.forEach((sParameterName) => {
571
+ if (!(oParametersWithMetadata[sParameterName] && oParametersWithMetadata[sParameterName].editorMetadata)) {
572
+ aParameterNamesWithoutMetadata.push(sParameterName);
573
+ }
574
+ });
631
575
 
632
- // blend in parameters
633
- that._addParameterValuesToParameters(oParametersWithMetadata, aAllParameterNames, oSystemContext).done(function (oParameters) {
634
- // create a deep copy
635
- var oParametersDeepCopy = deepExtend({}, oParameters);
636
- // mark extended parameters!
637
- aExtendedParameterNames.forEach(function (sParameterName) {
638
- if (oParametersDeepCopy[sParameterName]) {
639
- oParametersDeepCopy[sParameterName].editorMetadata = oParametersDeepCopy[sParameterName].editorMetadata || {};
640
- oParametersDeepCopy[sParameterName].editorMetadata.extendedUsage = true;
641
- }
642
- });
643
- // remove all noEdit parameters
644
- var aKeys = Object.keys(oParametersDeepCopy).splice(0);
645
- aKeys.forEach(function (sParameterName) {
646
- var idx;
647
- if (oParametersDeepCopy[sParameterName].valueObject &&
648
- oParametersDeepCopy[sParameterName].valueObject.noEdit === true) {
649
- delete oParametersDeepCopy[sParameterName];
650
- // also from the error log list (noEdit parameters w.o. editorMetadata are no cause of concern)
651
- idx = aParameterNamesWithoutMetadata.indexOf(sParameterName);
652
- if (idx >= 0) {
653
- aParameterNamesWithoutMetadata.splice(idx, 1);
654
- }
655
- }
656
- });
657
- if (aParameterNamesWithoutMetadata.length > 0) {
658
- Log.error("The following parameter names have no editor metadata and thus likely no configured plugin:\n\"" + aParameterNamesWithoutMetadata.join("\",\n\"") + "\".");
576
+ // blend in parameters
577
+ const oBlendedParameters = await this._addParameterValuesToParameters(oParametersWithMetadata, aAllParameterNames, oSystemContext);
578
+ // create a deep copy
579
+ const oParametersDeepCopy = deepExtend({}, oBlendedParameters);
580
+ // mark extended parameters!
581
+ aExtendedParameterNames.forEach((sParameterName) => {
582
+ if (oParametersDeepCopy[sParameterName]) {
583
+ oParametersDeepCopy[sParameterName].editorMetadata = oParametersDeepCopy[sParameterName].editorMetadata || {};
584
+ oParametersDeepCopy[sParameterName].editorMetadata.extendedUsage = true;
585
+ }
586
+ });
587
+ // remove all noEdit parameters
588
+ const aKeys = Object.keys(oParametersDeepCopy).splice(0);
589
+ aKeys.forEach((sParameterName) => {
590
+ let idx;
591
+ if (oParametersDeepCopy[sParameterName].valueObject &&
592
+ oParametersDeepCopy[sParameterName].valueObject.noEdit === true) {
593
+ delete oParametersDeepCopy[sParameterName];
594
+ // also from the error log list (noEdit parameters w.o. editorMetadata are no cause of concern)
595
+ idx = aParameterNamesWithoutMetadata.indexOf(sParameterName);
596
+ if (idx >= 0) {
597
+ aParameterNamesWithoutMetadata.splice(idx, 1);
659
598
  }
660
- oDeferred.resolve(oParametersDeepCopy);
661
- }).fail(oDeferred.reject.bind(oDeferred));
599
+ }
662
600
  });
601
+ if (aParameterNamesWithoutMetadata.length > 0) {
602
+ Log.error(`The following parameter names have no editor metadata and thus likely no configured plugin:\n"${ aParameterNamesWithoutMetadata.join("\",\n\"") }".`);
603
+ }
604
+ return oParametersDeepCopy;
663
605
  };
664
606
 
665
607
  /**
@@ -750,30 +692,37 @@ sap.ui.define([
750
692
  * undefined if no value could be retrieved.
751
693
  */
752
694
  this.editorGetParameters = function (oSystemContext) {
753
- var oDeferred = new jQuery.Deferred();
695
+ const oDeferred = new jQuery.Deferred();
754
696
 
755
697
  Promise.all([
756
698
  Container.getServiceAsync("PluginManager"),
757
699
  this._getUserDefaultParameterNames(oSystemContext)
758
- ]).then(function (aResults) {
759
- var PluginManagerService = aResults[0];
760
- var oParametersAndExtendedParameters = aResults[1];
761
-
762
- if (oParametersAndExtendedParameters.oMetadataObject.length === 0) {
763
- // if array is empty, nothing to display in editor
764
- oDeferred.resolve({});
765
- } else {
766
- PluginManagerService.loadPlugins("UserDefaults")
767
- .done(function () {
768
- // eslint-disable-next-line max-len
769
- this._getEditorDataAndValue(oDeferred, oParametersAndExtendedParameters.aAllParameterNames, oParametersAndExtendedParameters.aExtendedParameterNames, oParametersAndExtendedParameters.oMetadataObject, oSystemContext);
770
- }.bind(this))
771
- .fail(function () {
700
+ ])
701
+ .then((aResults) => {
702
+ const PluginManagerService = aResults[0];
703
+ const oParametersAndExtendedParameters = aResults[1];
704
+
705
+ if (oParametersAndExtendedParameters.oMetadataObject.length === 0) {
706
+ // if array is empty, nothing to display in editor
707
+ return {};
708
+ }
709
+
710
+ return ushellUtils.promisify(PluginManagerService.loadPlugins("UserDefaults"))
711
+ .catch(() => {
772
712
  Log.error("One or more plugins could not be loaded");
773
- oDeferred.reject("Initialization of plugins failed");
713
+ return Promise.reject("Initialization of plugins failed");
714
+ })
715
+ .then(() => {
716
+ const { aAllParameterNames, aExtendedParameterNames, oMetadataObject } = oParametersAndExtendedParameters;
717
+ return this._getEditorDataAndValue(aAllParameterNames, aExtendedParameterNames, oMetadataObject, oSystemContext);
774
718
  });
775
- }
776
- }.bind(this));
719
+ })
720
+ .then((oResult) => {
721
+ oDeferred.resolve(oResult);
722
+ })
723
+ .catch((sErrorMessage) => {
724
+ oDeferred.reject(sErrorMessage);
725
+ });
777
726
 
778
727
  return oDeferred.promise();
779
728
  };
@@ -787,12 +736,12 @@ sap.ui.define([
787
736
  * @private
788
737
  */
789
738
  this._extractKeyArrays = function (oParameters) {
790
- var oResult = {
739
+ const oResult = {
791
740
  simple: oParameters && oParameters.simple && Object.keys(oParameters.simple).sort() || [],
792
741
  extended: oParameters && oParameters.extended && Object.keys(oParameters.extended).sort() || []
793
742
  };
794
743
 
795
- var aOnlyExtendedParameters = oResult.extended.filter(function (sExtendedParameter) {
744
+ const aOnlyExtendedParameters = oResult.extended.filter((sExtendedParameter) => {
796
745
  return oResult.simple.indexOf(sExtendedParameter) < 0;
797
746
  });
798
747
 
@@ -815,10 +764,15 @@ sap.ui.define([
815
764
  * @private
816
765
  */
817
766
  this.editorSetValue = function (sParameterName, oValueObject, oSystemContext) {
818
- var oDeferred = new jQuery.Deferred();
767
+ const oDeferred = new jQuery.Deferred();
819
768
 
820
769
  this._storeValue(sParameterName, oValueObject, true, oSystemContext)
821
- .then(oDeferred.resolve);
770
+ .then(() => {
771
+ oDeferred.resolve();
772
+ })
773
+ .catch(() => {
774
+ oDeferred.resolve();
775
+ });
822
776
 
823
777
  return oDeferred.promise();
824
778
  };