@sapui5/sap.ushell 1.115.0 → 1.116.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 (519) hide show
  1. package/package.json +7 -2
  2. package/src/main/js/sap/ushell/.library +1 -1
  3. package/src/main/js/sap/ushell/CanvasShapesManager.js +2 -2
  4. package/src/main/js/sap/ushell/Container.js +10 -2
  5. package/src/main/js/sap/ushell/Fiori20Adapter.js +1 -1
  6. package/src/main/js/sap/ushell/Fiori20AdapterTest.js +1 -1
  7. package/src/main/js/sap/ushell/NWBCInterface.js +1 -1
  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/Ui5ComponentLoaderAdapter.js +1 -1
  26. package/src/main/js/sap/ushell/adapters/cdm/_LaunchPage/modifyHome.js +1 -1
  27. package/src/main/js/sap/ushell/adapters/cdm/_LaunchPage/readCatalogs.js +1 -1
  28. package/src/main/js/sap/ushell/adapters/cdm/_LaunchPage/readHome.js +1 -1
  29. package/src/main/js/sap/ushell/adapters/cdm/_LaunchPage/uri.transform.js +1 -1
  30. package/src/main/js/sap/ushell/adapters/cdm/util/AppForInbound.js +1 -1
  31. package/src/main/js/sap/ushell/adapters/cdm/util/cdmSiteUtils.js +1 -1
  32. package/src/main/js/sap/ushell/adapters/cdm/v3/AdapterBase.js +1 -1
  33. package/src/main/js/sap/ushell/adapters/cdm/v3/LaunchPageAdapter.js +41 -1
  34. package/src/main/js/sap/ushell/adapters/cdm/v3/StaticGroupsAdapter.js +3 -4
  35. package/src/main/js/sap/ushell/adapters/cdm/v3/_LaunchPage/readApplications.js +1 -1
  36. package/src/main/js/sap/ushell/adapters/cdm/v3/_LaunchPage/readCatalogs.js +1 -1
  37. package/src/main/js/sap/ushell/adapters/cdm/v3/_LaunchPage/readHome.js +1 -1
  38. package/src/main/js/sap/ushell/adapters/cdm/v3/_LaunchPage/readPages.js +1 -1
  39. package/src/main/js/sap/ushell/adapters/cdm/v3/_LaunchPage/readUtils.js +1 -1
  40. package/src/main/js/sap/ushell/adapters/cdm/v3/_LaunchPage/readVisualizations.js +1 -1
  41. package/src/main/js/sap/ushell/adapters/cep/MenuAdapter.js +62 -53
  42. package/src/main/js/sap/ushell/adapters/cep/NavTargetResolutionAdapter.js +1 -1
  43. package/src/main/js/sap/ushell/adapters/cep/SearchCEPAdapter.js +222 -59
  44. package/src/main/js/sap/ushell/adapters/cflp/UserDefaultParameterPersistenceAdapter.js +1 -1
  45. package/src/main/js/sap/ushell/adapters/local/AdapterContainer.js +1 -1
  46. package/src/main/js/sap/ushell/adapters/local/AppStateAdapter.js +2 -2
  47. package/src/main/js/sap/ushell/adapters/local/ClientSideTargetResolutionAdapter.js +1 -1
  48. package/src/main/js/sap/ushell/adapters/local/ContainerAdapter.js +2 -2
  49. package/src/main/js/sap/ushell/adapters/local/LaunchPageAdapter.js +1 -1
  50. package/src/main/js/sap/ushell/adapters/local/MenuAdapter.js +35 -0
  51. package/src/main/js/sap/ushell/adapters/local/NavTargetResolutionAdapter.js +1 -1
  52. package/src/main/js/sap/ushell/adapters/local/PageBuildingAdapter.js +1 -1
  53. package/src/main/js/sap/ushell/adapters/local/PagePersistenceAdapter.js +1 -1
  54. package/src/main/js/sap/ushell/adapters/local/PersonalizationAdapter.js +1 -1
  55. package/src/main/js/sap/ushell/adapters/local/SearchAdapter.js +2 -10
  56. package/src/main/js/sap/ushell/adapters/local/SearchCEPAdapter.js +902 -218
  57. package/src/main/js/sap/ushell/adapters/local/SupportTicketAdapter.js +2 -3
  58. package/src/main/js/sap/ushell/adapters/local/Ui5ComponentLoaderAdapter.js +1 -1
  59. package/src/main/js/sap/ushell/adapters/local/UserDefaultParameterPersistenceAdapter.js +1 -1
  60. package/src/main/js/sap/ushell/adapters/local/UserInfoAdapter.js +12 -2
  61. package/src/main/js/sap/ushell/appRuntime/ui5/AppRuntime.js +18 -9
  62. package/src/main/js/sap/ushell/appRuntime/ui5/plugins/baseRta/Trigger.js +1 -2
  63. package/src/main/js/sap/ushell/appRuntime/ui5/renderers/fiori2/RendererExtensions.js +7 -27
  64. package/src/main/js/sap/ushell/appRuntime/ui5/services/AppLifeCycleAgent.js +3 -3
  65. package/src/main/js/sap/ushell/appRuntime/ui5/services/AppState.js +7 -3
  66. package/src/main/js/sap/ushell/appRuntime/ui5/services/Container.js +99 -3
  67. package/src/main/js/sap/ushell/appRuntime/ui5/services/CrossApplicationNavigation.js +1 -1
  68. package/src/main/js/sap/ushell/appRuntime/ui5/services/ShellUIService.js +3 -0
  69. package/src/main/js/sap/ushell/appRuntime/ui5/services/adapters/Ui5ComponentLoaderAdapter.js +1 -1
  70. package/src/main/js/sap/ushell/bootstrap/_SchedulingAgent/logger.js +1 -1
  71. package/src/main/js/sap/ushell/bootstrap/_SchedulingAgent/state.js +1 -1
  72. package/src/main/js/sap/ushell/bootstrap/cdm/cdm.constants.js +8 -8
  73. package/src/main/js/sap/ushell/bootstrap/common/common.configure.ui5datetimeformat.js +1 -1
  74. package/src/main/js/sap/ushell/bootstrap/common/common.configure.ui5language.js +2 -2
  75. package/src/main/js/sap/ushell/bootstrap/common/common.create.configcontract.core.js +3 -0
  76. package/src/main/js/sap/ushell/components/HeaderManager.js +3 -0
  77. package/src/main/js/sap/ushell/components/HomepageManager.js +1 -1
  78. package/src/main/js/sap/ushell/components/appfinder/manifest.json +1 -1
  79. package/src/main/js/sap/ushell/components/applicationIntegration/AppLifeCycle.js +167 -299
  80. package/src/main/js/sap/ushell/components/applicationIntegration/Storage.js +14 -189
  81. package/src/main/js/sap/ushell/components/applicationIntegration/application/Application.js +19 -12
  82. package/src/main/js/sap/ushell/components/applicationIntegration/application/BlueBoxHandler.js +296 -216
  83. package/src/main/js/sap/ushell/components/applicationIntegration/application/BlueBoxesCache.js +40 -10
  84. package/src/main/js/sap/ushell/components/applicationIntegration/application/PostMessageAPI.js +43 -2
  85. package/src/main/js/sap/ushell/components/applicationIntegration/configuration/AppMeta.js +1 -1
  86. package/src/main/js/sap/ushell/components/applicationIntegration/elements/model.js +1 -1
  87. package/src/main/js/sap/ushell/components/applicationIntegration/relatedServices/RelatedServices.js +1 -1
  88. package/src/main/js/sap/ushell/components/applicationIntegration/relatedShellElements/RelatedShellElements.js +1 -1
  89. package/src/main/js/sap/ushell/components/cepsearchresult/app/Main.controller.js +4 -2
  90. package/src/main/js/sap/ushell/components/cepsearchresult/app/cards/searchresultwidget/i18n/i18n.properties +7 -7
  91. package/src/main/js/sap/ushell/components/cepsearchresult/app/cards/searchresultwidget/i18n/i18n_ar.properties +27 -27
  92. package/src/main/js/sap/ushell/components/cepsearchresult/app/cards/searchresultwidget/i18n/i18n_bg.properties +27 -27
  93. package/src/main/js/sap/ushell/components/cepsearchresult/app/cards/searchresultwidget/i18n/i18n_ca.properties +26 -26
  94. package/src/main/js/sap/ushell/components/cepsearchresult/app/cards/searchresultwidget/i18n/i18n_cy.properties +27 -27
  95. package/src/main/js/sap/ushell/components/cepsearchresult/app/cards/searchresultwidget/i18n/i18n_da.properties +27 -27
  96. package/src/main/js/sap/ushell/components/cepsearchresult/app/cards/searchresultwidget/i18n/i18n_de.properties +27 -27
  97. package/src/main/js/sap/ushell/components/cepsearchresult/app/cards/searchresultwidget/i18n/i18n_el.properties +27 -27
  98. package/src/main/js/sap/ushell/components/cepsearchresult/app/cards/searchresultwidget/i18n/i18n_en_GB.properties +3 -3
  99. package/src/main/js/sap/ushell/components/cepsearchresult/app/cards/searchresultwidget/i18n/i18n_en_US_sappsd.properties +5 -5
  100. package/src/main/js/sap/ushell/components/cepsearchresult/app/cards/searchresultwidget/i18n/i18n_es_MX.properties +26 -26
  101. package/src/main/js/sap/ushell/components/cepsearchresult/app/cards/searchresultwidget/i18n/i18n_fi.properties +27 -27
  102. package/src/main/js/sap/ushell/components/cepsearchresult/app/cards/searchresultwidget/i18n/i18n_fr_CA.properties +26 -26
  103. package/src/main/js/sap/ushell/components/cepsearchresult/app/cards/searchresultwidget/i18n/i18n_hi.properties +27 -27
  104. package/src/main/js/sap/ushell/components/cepsearchresult/app/cards/searchresultwidget/i18n/i18n_hr.properties +27 -27
  105. package/src/main/js/sap/ushell/components/cepsearchresult/app/cards/searchresultwidget/i18n/i18n_hu.properties +27 -27
  106. package/src/main/js/sap/ushell/components/cepsearchresult/app/cards/searchresultwidget/i18n/i18n_id.properties +27 -27
  107. package/src/main/js/sap/ushell/components/cepsearchresult/app/cards/searchresultwidget/i18n/i18n_it.properties +26 -26
  108. package/src/main/js/sap/ushell/components/cepsearchresult/app/cards/searchresultwidget/i18n/i18n_iw.properties +27 -27
  109. package/src/main/js/sap/ushell/components/cepsearchresult/app/cards/searchresultwidget/i18n/i18n_ja.properties +27 -27
  110. package/src/main/js/sap/ushell/components/cepsearchresult/app/cards/searchresultwidget/i18n/i18n_ko.properties +27 -27
  111. package/src/main/js/sap/ushell/components/cepsearchresult/app/cards/searchresultwidget/i18n/i18n_lt.properties +27 -27
  112. package/src/main/js/sap/ushell/components/cepsearchresult/app/cards/searchresultwidget/i18n/i18n_lv.properties +27 -27
  113. package/src/main/js/sap/ushell/components/cepsearchresult/app/cards/searchresultwidget/i18n/i18n_ms.properties +27 -27
  114. package/src/main/js/sap/ushell/components/cepsearchresult/app/cards/searchresultwidget/i18n/i18n_nl.properties +27 -27
  115. package/src/main/js/sap/ushell/components/cepsearchresult/app/cards/searchresultwidget/i18n/i18n_no.properties +27 -27
  116. package/src/main/js/sap/ushell/components/cepsearchresult/app/cards/searchresultwidget/i18n/i18n_pl.properties +27 -27
  117. package/src/main/js/sap/ushell/components/cepsearchresult/app/cards/searchresultwidget/i18n/i18n_pt.properties +27 -27
  118. package/src/main/js/sap/ushell/components/cepsearchresult/app/cards/searchresultwidget/i18n/i18n_pt_PT.properties +27 -27
  119. package/src/main/js/sap/ushell/components/cepsearchresult/app/cards/searchresultwidget/i18n/i18n_ro.properties +26 -26
  120. package/src/main/js/sap/ushell/components/cepsearchresult/app/cards/searchresultwidget/i18n/i18n_ru.properties +27 -27
  121. package/src/main/js/sap/ushell/components/cepsearchresult/app/cards/searchresultwidget/i18n/i18n_sh.properties +27 -27
  122. package/src/main/js/sap/ushell/components/cepsearchresult/app/cards/searchresultwidget/i18n/i18n_sl.properties +27 -27
  123. package/src/main/js/sap/ushell/components/cepsearchresult/app/cards/searchresultwidget/i18n/i18n_sv.properties +27 -27
  124. package/src/main/js/sap/ushell/components/cepsearchresult/app/cards/searchresultwidget/i18n/i18n_th.properties +27 -27
  125. package/src/main/js/sap/ushell/components/cepsearchresult/app/cards/searchresultwidget/i18n/i18n_uk.properties +27 -27
  126. package/src/main/js/sap/ushell/components/cepsearchresult/app/cards/searchresultwidget/i18n/i18n_vi.properties +27 -27
  127. package/src/main/js/sap/ushell/components/cepsearchresult/app/cards/searchresultwidget/i18n/i18n_zh_CN.properties +27 -27
  128. package/src/main/js/sap/ushell/components/cepsearchresult/app/cards/searchresultwidget/i18n/i18n_zh_TW.properties +27 -27
  129. package/src/main/js/sap/ushell/components/cepsearchresult/app/util/controls/categories/Application.js +39 -79
  130. package/src/main/js/sap/ushell/components/cepsearchresult/app/util/i18n/i18n_ar.properties +18 -18
  131. package/src/main/js/sap/ushell/components/cepsearchresult/app/util/i18n/i18n_bg.properties +18 -18
  132. package/src/main/js/sap/ushell/components/cepsearchresult/app/util/i18n/i18n_ca.properties +15 -15
  133. package/src/main/js/sap/ushell/components/cepsearchresult/app/util/i18n/i18n_cy.properties +18 -18
  134. package/src/main/js/sap/ushell/components/cepsearchresult/app/util/i18n/i18n_da.properties +18 -18
  135. package/src/main/js/sap/ushell/components/cepsearchresult/app/util/i18n/i18n_de.properties +15 -15
  136. package/src/main/js/sap/ushell/components/cepsearchresult/app/util/i18n/i18n_el.properties +18 -18
  137. package/src/main/js/sap/ushell/components/cepsearchresult/app/util/i18n/i18n_en_GB.properties +2 -2
  138. package/src/main/js/sap/ushell/components/cepsearchresult/app/util/i18n/i18n_es_MX.properties +15 -15
  139. package/src/main/js/sap/ushell/components/cepsearchresult/app/util/i18n/i18n_fi.properties +18 -18
  140. package/src/main/js/sap/ushell/components/cepsearchresult/app/util/i18n/i18n_fr_CA.properties +15 -15
  141. package/src/main/js/sap/ushell/components/cepsearchresult/app/util/i18n/i18n_hi.properties +18 -18
  142. package/src/main/js/sap/ushell/components/cepsearchresult/app/util/i18n/i18n_hr.properties +18 -18
  143. package/src/main/js/sap/ushell/components/cepsearchresult/app/util/i18n/i18n_hu.properties +18 -18
  144. package/src/main/js/sap/ushell/components/cepsearchresult/app/util/i18n/i18n_id.properties +18 -18
  145. package/src/main/js/sap/ushell/components/cepsearchresult/app/util/i18n/i18n_it.properties +17 -17
  146. package/src/main/js/sap/ushell/components/cepsearchresult/app/util/i18n/i18n_iw.properties +18 -18
  147. package/src/main/js/sap/ushell/components/cepsearchresult/app/util/i18n/i18n_ja.properties +18 -18
  148. package/src/main/js/sap/ushell/components/cepsearchresult/app/util/i18n/i18n_ko.properties +18 -18
  149. package/src/main/js/sap/ushell/components/cepsearchresult/app/util/i18n/i18n_lt.properties +18 -18
  150. package/src/main/js/sap/ushell/components/cepsearchresult/app/util/i18n/i18n_lv.properties +18 -18
  151. package/src/main/js/sap/ushell/components/cepsearchresult/app/util/i18n/i18n_ms.properties +18 -18
  152. package/src/main/js/sap/ushell/components/cepsearchresult/app/util/i18n/i18n_nl.properties +18 -18
  153. package/src/main/js/sap/ushell/components/cepsearchresult/app/util/i18n/i18n_no.properties +18 -18
  154. package/src/main/js/sap/ushell/components/cepsearchresult/app/util/i18n/i18n_pl.properties +18 -18
  155. package/src/main/js/sap/ushell/components/cepsearchresult/app/util/i18n/i18n_pt.properties +18 -18
  156. package/src/main/js/sap/ushell/components/cepsearchresult/app/util/i18n/i18n_pt_PT.properties +18 -18
  157. package/src/main/js/sap/ushell/components/cepsearchresult/app/util/i18n/i18n_ro.properties +17 -17
  158. package/src/main/js/sap/ushell/components/cepsearchresult/app/util/i18n/i18n_ru.properties +18 -18
  159. package/src/main/js/sap/ushell/components/cepsearchresult/app/util/i18n/i18n_sl.properties +18 -18
  160. package/src/main/js/sap/ushell/components/cepsearchresult/app/util/i18n/i18n_th.properties +17 -17
  161. package/src/main/js/sap/ushell/components/cepsearchresult/app/util/i18n/i18n_uk.properties +18 -18
  162. package/src/main/js/sap/ushell/components/cepsearchresult/app/util/i18n/i18n_vi.properties +18 -18
  163. package/src/main/js/sap/ushell/components/cepsearchresult/app/util/i18n/i18n_zh_CN.properties +18 -18
  164. package/src/main/js/sap/ushell/components/cepsearchresult/app/util/i18n/i18n_zh_TW.properties +18 -18
  165. package/src/main/js/sap/ushell/components/container/ApplicationContainer.js +16 -6
  166. package/src/main/js/sap/ushell/components/contentFinder/Component.js +28 -28
  167. package/src/main/js/sap/ushell/components/contentFinder/controller/AppSearch.controller.js +2 -2
  168. package/src/main/js/sap/ushell/components/contentFinder/controller/ContentFinderDialog.controller.js +1 -1
  169. package/src/main/js/sap/ushell/components/contentFinder/controller/WidgetGallery.controller.js +1 -1
  170. package/src/main/js/sap/ushell/components/contentFinder/manifest.json +1 -1
  171. package/src/main/js/sap/ushell/components/contentFinder/resources/resources.properties +2 -2
  172. package/src/main/js/sap/ushell/components/contentFinder/resources/resources_ar.properties +8 -10
  173. package/src/main/js/sap/ushell/components/contentFinder/resources/resources_bg.properties +8 -10
  174. package/src/main/js/sap/ushell/components/contentFinder/resources/resources_ca.properties +8 -10
  175. package/src/main/js/sap/ushell/components/contentFinder/resources/resources_cs.properties +1 -3
  176. package/src/main/js/sap/ushell/components/contentFinder/resources/resources_cy.properties +8 -10
  177. package/src/main/js/sap/ushell/components/contentFinder/resources/resources_da.properties +8 -10
  178. package/src/main/js/sap/ushell/components/contentFinder/resources/resources_de.properties +8 -10
  179. package/src/main/js/sap/ushell/components/contentFinder/resources/resources_el.properties +7 -9
  180. package/src/main/js/sap/ushell/components/contentFinder/resources/resources_en.properties +1 -3
  181. package/src/main/js/sap/ushell/components/contentFinder/resources/resources_en_GB.properties +1 -3
  182. package/src/main/js/sap/ushell/components/contentFinder/resources/resources_en_US_sappsd.properties +1 -3
  183. package/src/main/js/sap/ushell/components/contentFinder/resources/resources_en_US_saprigi.properties +1 -3
  184. package/src/main/js/sap/ushell/components/contentFinder/resources/resources_en_US_saptrc.properties +1 -3
  185. package/src/main/js/sap/ushell/components/contentFinder/resources/resources_es.properties +1 -3
  186. package/src/main/js/sap/ushell/components/contentFinder/resources/resources_es_MX.properties +8 -10
  187. package/src/main/js/sap/ushell/components/contentFinder/resources/resources_et.properties +1 -3
  188. package/src/main/js/sap/ushell/components/contentFinder/resources/resources_fi.properties +8 -10
  189. package/src/main/js/sap/ushell/components/contentFinder/resources/resources_fr.properties +1 -3
  190. package/src/main/js/sap/ushell/components/contentFinder/resources/resources_fr_CA.properties +8 -10
  191. package/src/main/js/sap/ushell/components/contentFinder/resources/resources_hi.properties +7 -9
  192. package/src/main/js/sap/ushell/components/contentFinder/resources/resources_hr.properties +7 -9
  193. package/src/main/js/sap/ushell/components/contentFinder/resources/resources_hu.properties +8 -10
  194. package/src/main/js/sap/ushell/components/contentFinder/resources/resources_id.properties +8 -10
  195. package/src/main/js/sap/ushell/components/contentFinder/resources/resources_it.properties +10 -12
  196. package/src/main/js/sap/ushell/components/contentFinder/resources/resources_iw.properties +8 -10
  197. package/src/main/js/sap/ushell/components/contentFinder/resources/resources_ja.properties +7 -9
  198. package/src/main/js/sap/ushell/components/contentFinder/resources/resources_kk.properties +1 -3
  199. package/src/main/js/sap/ushell/components/contentFinder/resources/resources_ko.properties +7 -9
  200. package/src/main/js/sap/ushell/components/contentFinder/resources/resources_lt.properties +7 -9
  201. package/src/main/js/sap/ushell/components/contentFinder/resources/resources_lv.properties +7 -9
  202. package/src/main/js/sap/ushell/components/contentFinder/resources/resources_ms.properties +8 -10
  203. package/src/main/js/sap/ushell/components/contentFinder/resources/resources_nl.properties +7 -9
  204. package/src/main/js/sap/ushell/components/contentFinder/resources/resources_no.properties +8 -10
  205. package/src/main/js/sap/ushell/components/contentFinder/resources/resources_pl.properties +8 -10
  206. package/src/main/js/sap/ushell/components/contentFinder/resources/resources_pt.properties +8 -10
  207. package/src/main/js/sap/ushell/components/contentFinder/resources/resources_pt_PT.properties +8 -10
  208. package/src/main/js/sap/ushell/components/contentFinder/resources/resources_ro.properties +8 -10
  209. package/src/main/js/sap/ushell/components/contentFinder/resources/resources_ru.properties +8 -10
  210. package/src/main/js/sap/ushell/components/contentFinder/resources/resources_sh.properties +1 -3
  211. package/src/main/js/sap/ushell/components/contentFinder/resources/resources_sk.properties +1 -3
  212. package/src/main/js/sap/ushell/components/contentFinder/resources/resources_sl.properties +8 -10
  213. package/src/main/js/sap/ushell/components/contentFinder/resources/resources_sv.properties +1 -3
  214. package/src/main/js/sap/ushell/components/contentFinder/resources/resources_th.properties +7 -9
  215. package/src/main/js/sap/ushell/components/contentFinder/resources/resources_tr.properties +1 -3
  216. package/src/main/js/sap/ushell/components/contentFinder/resources/resources_uk.properties +8 -10
  217. package/src/main/js/sap/ushell/components/contentFinder/resources/resources_vi.properties +8 -10
  218. package/src/main/js/sap/ushell/components/contentFinder/resources/resources_zh_CN.properties +8 -10
  219. package/src/main/js/sap/ushell/components/contentFinder/resources/resources_zh_TW.properties +7 -9
  220. package/src/main/js/sap/ushell/components/contentFinder/view/AppSearch.view.xml +7 -1
  221. package/src/main/js/sap/ushell/components/contentFinder/view/AppSearchBox.fragment.xml +1 -1
  222. package/src/main/js/sap/ushell/components/contentFinder/view/AppSearchPaginated.view.xml +2 -3
  223. package/src/main/js/sap/ushell/components/contentFinder/view/WidgetGallery.view.xml +2 -8
  224. package/src/main/js/sap/ushell/components/factsheet/Component.js +1 -1
  225. package/src/main/js/sap/ushell/components/homepage/ActionMode.js +1 -1
  226. package/src/main/js/sap/ushell/components/homepage/DashboardContent.view.js +1 -1
  227. package/src/main/js/sap/ushell/components/homepage/DashboardGroupsBox.js +1 -1
  228. package/src/main/js/sap/ushell/components/homepage/DashboardUIActions.js +1 -1
  229. package/src/main/js/sap/ushell/components/homepage/manifest.json +1 -1
  230. package/src/main/js/sap/ushell/components/pages/ActionMode.js +1 -1
  231. package/src/main/js/sap/ushell/components/pages/Component.js +1 -1
  232. package/src/main/js/sap/ushell/components/pages/MyHomeImport.js +1 -1
  233. package/src/main/js/sap/ushell/components/pages/controller/PageRuntime.controller.js +1 -1
  234. package/src/main/js/sap/ushell/components/pages/manifest.json +1 -1
  235. package/src/main/js/sap/ushell/components/runtimeSwitcher/controller/RuntimeSwitcher.controller.js +1 -1
  236. package/src/main/js/sap/ushell/components/runtimeSwitcher/manifest.json +1 -1
  237. package/src/main/js/sap/ushell/components/shell/MenuBar/manifest.json +1 -1
  238. package/src/main/js/sap/ushell/components/shell/NavigationBarMenu/controller/NavigationBarMenu.controller.js +1 -1
  239. package/src/main/js/sap/ushell/components/shell/NavigationBarMenu/manifest.json +1 -1
  240. package/src/main/js/sap/ushell/components/shell/NavigationBarMenu/view/NavigationBarMenu.view.xml +1 -1
  241. package/src/main/js/sap/ushell/components/shell/Notifications/Component.js +1 -1
  242. package/src/main/js/sap/ushell/components/shell/ProductSwitch/Component.js +1 -1
  243. package/src/main/js/sap/ushell/components/shell/Search/manifest.json +1 -1
  244. package/src/main/js/sap/ushell/components/shell/SearchCEP/Component.js +1 -1
  245. package/src/main/js/sap/ushell/components/shell/SearchCEP/ProvidersExecuter.js +4 -4
  246. package/src/main/js/sap/ushell/components/shell/SearchCEP/SearchCEP.controller.js +626 -598
  247. package/src/main/js/sap/ushell/components/shell/SearchCEP/SearchFieldFragment.fragment.xml +2 -102
  248. package/src/main/js/sap/ushell/components/shell/SearchCEP/SearchProviders/FrequentActivityProvider.js +28 -33
  249. package/src/main/js/sap/ushell/components/shell/SearchCEP/SearchProviders/RecentSearchProvider.js +12 -14
  250. package/src/main/js/sap/ushell/components/shell/SearchCEP/SearchProviders/SearchProvider.js +80 -17
  251. package/src/main/js/sap/ushell/components/shell/SearchCEP/SearchProviders/SearchServiceProvider.js +164 -0
  252. package/src/main/js/sap/ushell/components/shell/Settings/Component.js +1 -1
  253. package/src/main/js/sap/ushell/components/shell/Settings/ContentWrapper.fragment.xml +1 -3
  254. package/src/main/js/sap/ushell/components/shell/Settings/appearance/Appearance.view.xml +6 -5
  255. package/src/main/js/sap/ushell/components/shell/Settings/userLanguageRegion/LanguageRegionSelector.controller.js +21 -10
  256. package/src/main/js/sap/ushell/components/shell/Settings/userLanguageRegion/LanguageRegionSelector.view.xml +8 -1
  257. package/src/main/js/sap/ushell/components/shell/UserActionsMenu/Component.js +1 -1
  258. package/src/main/js/sap/ushell/components/shell/UserImage/Component.js +1 -1
  259. package/src/main/js/sap/ushell/components/tiles/applauncher/StaticTile.view.js +5 -0
  260. package/src/main/js/sap/ushell/components/tiles/applauncherdynamic/DynamicTile.view.js +5 -0
  261. package/src/main/js/sap/ushell/components/tiles/cdm/applauncher/Component.js +12 -0
  262. package/src/main/js/sap/ushell/components/tiles/cdm/applauncher/StaticTile.controller.js +13 -3
  263. package/src/main/js/sap/ushell/components/tiles/cdm/applauncher/StaticTile.view.js +1 -1
  264. package/src/main/js/sap/ushell/components/tiles/cdm/applauncher/StaticTile.view.xml +1 -1
  265. package/src/main/js/sap/ushell/components/tiles/cdm/applauncherdynamic/Component.js +24 -0
  266. package/src/main/js/sap/ushell/components/tiles/cdm/applauncherdynamic/DynamicTile.controller.js +57 -4
  267. package/src/main/js/sap/ushell/components/tiles/cdm/applauncherdynamic/DynamicTile.view.js +1 -1
  268. package/src/main/js/sap/ushell/components/tiles/cdm/applauncherdynamic/DynamicTile.view.xml +1 -1
  269. package/src/main/js/sap/ushell/components/visualizationOrganizer/Component.js +1 -1
  270. package/src/main/js/sap/ushell/components/workPageBuilder/Component.js +71 -34
  271. package/src/main/js/sap/ushell/components/workPageBuilder/controller/WorkPageBuilder.accessibility.js +35 -1
  272. package/src/main/js/sap/ushell/components/workPageBuilder/controller/WorkPageBuilder.controller.js +360 -227
  273. package/src/main/js/sap/ushell/components/workPageBuilder/controller/WorkPageBuilder.layout.js +369 -0
  274. package/src/main/js/sap/ushell/components/workPageBuilder/controller/WorkPageHost.js +1 -1
  275. package/src/main/js/sap/ushell/components/workPageBuilder/controls/WorkPage.js +24 -5
  276. package/src/main/js/sap/ushell/components/workPageBuilder/controls/WorkPageButton.js +2 -2
  277. package/src/main/js/sap/ushell/components/workPageBuilder/controls/WorkPageCell.js +69 -39
  278. package/src/main/js/sap/ushell/components/workPageBuilder/controls/WorkPageColumn.js +16 -11
  279. package/src/main/js/sap/ushell/components/workPageBuilder/controls/WorkPageColumnRenderer.js +13 -1
  280. package/src/main/js/sap/ushell/components/workPageBuilder/controls/WorkPageColumnResizer.js +2 -2
  281. package/src/main/js/sap/ushell/components/workPageBuilder/controls/WorkPageRenderer.js +7 -1
  282. package/src/main/js/sap/ushell/components/workPageBuilder/controls/WorkPageRow.js +11 -10
  283. package/src/main/js/sap/ushell/components/workPageBuilder/controls/WorkPageRowRenderer.js +5 -0
  284. package/src/main/js/sap/ushell/components/workPageBuilder/manifest.json +1 -1
  285. package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources.properties +5 -1
  286. package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_ar.properties +31 -27
  287. package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_bg.properties +31 -27
  288. package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_ca.properties +31 -27
  289. package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_cs.properties +27 -23
  290. package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_cy.properties +31 -27
  291. package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_da.properties +31 -27
  292. package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_de.properties +31 -27
  293. package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_el.properties +31 -27
  294. package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_en.properties +21 -17
  295. package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_en_GB.properties +21 -17
  296. package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_en_US_sappsd.properties +34 -5
  297. package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_en_US_saprigi.properties +4 -0
  298. package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_en_US_saptrc.properties +35 -6
  299. package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_es.properties +26 -22
  300. package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_es_MX.properties +31 -27
  301. package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_et.properties +26 -22
  302. package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_fi.properties +31 -27
  303. package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_fr.properties +26 -22
  304. package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_fr_CA.properties +31 -27
  305. package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_hi.properties +31 -27
  306. package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_hr.properties +33 -29
  307. package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_hu.properties +31 -27
  308. package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_id.properties +31 -27
  309. package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_it.properties +30 -26
  310. package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_iw.properties +32 -28
  311. package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_ja.properties +31 -27
  312. package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_kk.properties +26 -22
  313. package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_ko.properties +31 -27
  314. package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_lt.properties +32 -28
  315. package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_lv.properties +31 -27
  316. package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_ms.properties +31 -27
  317. package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_nl.properties +31 -27
  318. package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_no.properties +31 -27
  319. package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_pl.properties +31 -27
  320. package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_pt.properties +31 -27
  321. package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_pt_PT.properties +31 -27
  322. package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_ro.properties +31 -27
  323. package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_ru.properties +31 -27
  324. package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_sh.properties +26 -22
  325. package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_sk.properties +26 -22
  326. package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_sl.properties +31 -27
  327. package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_sv.properties +31 -27
  328. package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_th.properties +31 -27
  329. package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_tr.properties +26 -22
  330. package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_uk.properties +31 -27
  331. package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_vi.properties +31 -27
  332. package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_zh_CN.properties +31 -27
  333. package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_zh_TW.properties +31 -27
  334. package/src/main/js/sap/ushell/components/workPageBuilder/view/WorkPageBuilder.view.xml +88 -42
  335. package/src/main/js/sap/ushell/components/workPageRuntime/Component.js +1 -1
  336. package/src/main/js/sap/ushell/components/workPageRuntime/controller/WorkPageRuntime.controller.js +6 -5
  337. package/src/main/js/sap/ushell/components/workPageRuntime/manifest.json +1 -1
  338. package/src/main/js/sap/ushell/components/workPageRuntime/services/NavigationResolver.js +1 -1
  339. package/src/main/js/sap/ushell/components/workPageRuntime/services/WorkPage.js +32 -30
  340. package/src/main/js/sap/ushell/designtime/ApplicationContainer.designtime.js +1 -1
  341. package/src/main/js/sap/ushell/library.js +1 -1
  342. package/src/main/js/sap/ushell/navigationMode.js +1 -1
  343. package/src/main/js/sap/ushell/performance/ShellAnalytics.js +1 -1
  344. package/src/main/js/sap/ushell/performance/StatisticalRecord.js +1 -1
  345. package/src/main/js/sap/ushell/plugins/appwarmup/Component.js +1 -1
  346. package/src/main/js/sap/ushell/renderers/fiori2/Renderer.js +7 -5
  347. package/src/main/js/sap/ushell/renderers/fiori2/RendererExtensions.js +0 -48
  348. package/src/main/js/sap/ushell/renderers/fiori2/Shell.controller.js +26 -25
  349. package/src/main/js/sap/ushell/renderers/fiori2/Shell.view.js +7 -2
  350. package/src/main/js/sap/ushell/renderers/fiori2/ShellAsync.view.js +1 -1
  351. package/src/main/js/sap/ushell/renderers/fiori2/ShellLayout.js +1 -1
  352. package/src/main/js/sap/ushell/renderers/fiori2/resources/resources_ar.properties +1 -0
  353. package/src/main/js/sap/ushell/renderers/fiori2/resources/resources_bg.properties +19 -18
  354. package/src/main/js/sap/ushell/renderers/fiori2/resources/resources_ca.properties +1 -0
  355. package/src/main/js/sap/ushell/renderers/fiori2/resources/resources_cs.properties +7 -6
  356. package/src/main/js/sap/ushell/renderers/fiori2/resources/resources_cy.properties +2 -1
  357. package/src/main/js/sap/ushell/renderers/fiori2/resources/resources_da.properties +1 -0
  358. package/src/main/js/sap/ushell/renderers/fiori2/resources/resources_de.properties +14 -13
  359. package/src/main/js/sap/ushell/renderers/fiori2/resources/resources_el.properties +2 -1
  360. package/src/main/js/sap/ushell/renderers/fiori2/resources/resources_en.properties +2 -1
  361. package/src/main/js/sap/ushell/renderers/fiori2/resources/resources_en_GB.properties +1 -0
  362. package/src/main/js/sap/ushell/renderers/fiori2/resources/resources_en_US_sappsd.properties +1 -0
  363. package/src/main/js/sap/ushell/renderers/fiori2/resources/resources_en_US_saprigi.properties +1 -0
  364. package/src/main/js/sap/ushell/renderers/fiori2/resources/resources_en_US_saptrc.properties +1 -0
  365. package/src/main/js/sap/ushell/renderers/fiori2/resources/resources_es.properties +1 -0
  366. package/src/main/js/sap/ushell/renderers/fiori2/resources/resources_es_MX.properties +1 -0
  367. package/src/main/js/sap/ushell/renderers/fiori2/resources/resources_et.properties +1 -0
  368. package/src/main/js/sap/ushell/renderers/fiori2/resources/resources_fi.properties +1 -0
  369. package/src/main/js/sap/ushell/renderers/fiori2/resources/resources_fr.properties +3 -2
  370. package/src/main/js/sap/ushell/renderers/fiori2/resources/resources_fr_CA.properties +1 -0
  371. package/src/main/js/sap/ushell/renderers/fiori2/resources/resources_hi.properties +1 -0
  372. package/src/main/js/sap/ushell/renderers/fiori2/resources/resources_hr.properties +1 -0
  373. package/src/main/js/sap/ushell/renderers/fiori2/resources/resources_hu.properties +1 -0
  374. package/src/main/js/sap/ushell/renderers/fiori2/resources/resources_id.properties +1 -0
  375. package/src/main/js/sap/ushell/renderers/fiori2/resources/resources_it.properties +1 -0
  376. package/src/main/js/sap/ushell/renderers/fiori2/resources/resources_iw.properties +1 -0
  377. package/src/main/js/sap/ushell/renderers/fiori2/resources/resources_ja.properties +1 -0
  378. package/src/main/js/sap/ushell/renderers/fiori2/resources/resources_kk.properties +1 -0
  379. package/src/main/js/sap/ushell/renderers/fiori2/resources/resources_ko.properties +3 -2
  380. package/src/main/js/sap/ushell/renderers/fiori2/resources/resources_lt.properties +1 -0
  381. package/src/main/js/sap/ushell/renderers/fiori2/resources/resources_lv.properties +1 -0
  382. package/src/main/js/sap/ushell/renderers/fiori2/resources/resources_ms.properties +4 -3
  383. package/src/main/js/sap/ushell/renderers/fiori2/resources/resources_nl.properties +1 -0
  384. package/src/main/js/sap/ushell/renderers/fiori2/resources/resources_no.properties +2 -1
  385. package/src/main/js/sap/ushell/renderers/fiori2/resources/resources_pl.properties +7 -6
  386. package/src/main/js/sap/ushell/renderers/fiori2/resources/resources_pt.properties +1 -0
  387. package/src/main/js/sap/ushell/renderers/fiori2/resources/resources_pt_PT.properties +1 -0
  388. package/src/main/js/sap/ushell/renderers/fiori2/resources/resources_ro.properties +1 -0
  389. package/src/main/js/sap/ushell/renderers/fiori2/resources/resources_ru.properties +1 -0
  390. package/src/main/js/sap/ushell/renderers/fiori2/resources/resources_sh.properties +1 -0
  391. package/src/main/js/sap/ushell/renderers/fiori2/resources/resources_sk.properties +2 -1
  392. package/src/main/js/sap/ushell/renderers/fiori2/resources/resources_sl.properties +1 -0
  393. package/src/main/js/sap/ushell/renderers/fiori2/resources/resources_sv.properties +1 -0
  394. package/src/main/js/sap/ushell/renderers/fiori2/resources/resources_th.properties +1 -0
  395. package/src/main/js/sap/ushell/renderers/fiori2/resources/resources_tr.properties +2 -1
  396. package/src/main/js/sap/ushell/renderers/fiori2/resources/resources_uk.properties +1 -0
  397. package/src/main/js/sap/ushell/renderers/fiori2/resources/resources_vi.properties +1 -0
  398. package/src/main/js/sap/ushell/renderers/fiori2/resources/resources_zh_CN.properties +1 -0
  399. package/src/main/js/sap/ushell/renderers/fiori2/resources/resources_zh_TW.properties +1 -0
  400. package/src/main/js/sap/ushell/renderers/fiori2/search/searchComponent/manifest.json +1 -1
  401. package/src/main/js/sap/ushell/renderers/fiori2/utils.js +28 -0
  402. package/src/main/js/sap/ushell/services/AppLifeCycle.js +37 -10
  403. package/src/main/js/sap/ushell/services/AppState.js +19 -7
  404. package/src/main/js/sap/ushell/services/Bookmark.js +2 -2
  405. package/src/main/js/sap/ushell/services/ClientSideTargetResolution.js +1 -1
  406. package/src/main/js/sap/ushell/services/CommonDataModel.js +1 -1
  407. package/src/main/js/sap/ushell/services/Configuration.js +1 -1
  408. package/src/main/js/sap/ushell/services/ConfigurationDefaults.js +1 -1
  409. package/src/main/js/sap/ushell/services/ContentExtensionAdapterFactory.js +1 -1
  410. package/src/main/js/sap/ushell/services/CrossApplicationNavigation.js +4 -4
  411. package/src/main/js/sap/ushell/services/DarkModeSupport.js +1 -1
  412. package/src/main/js/sap/ushell/services/EndUserFeedback.js +3 -3
  413. package/src/main/js/sap/ushell/services/LaunchPage.js +22 -4
  414. package/src/main/js/sap/ushell/services/Menu.js +5 -1
  415. package/src/main/js/sap/ushell/services/Message.js +8 -7
  416. package/src/main/js/sap/ushell/services/MessageBroker.js +1 -1
  417. package/src/main/js/sap/ushell/services/NavTargetResolution.js +1 -1
  418. package/src/main/js/sap/ushell/services/NavigationDataProvider.js +1 -1
  419. package/src/main/js/sap/ushell/services/Notifications.js +18 -15
  420. package/src/main/js/sap/ushell/services/PageBuilding.js +1 -1
  421. package/src/main/js/sap/ushell/services/PagePersistence.js +1 -1
  422. package/src/main/js/sap/ushell/services/PageReferencing.js +1 -1
  423. package/src/main/js/sap/ushell/services/Pages.js +1 -1
  424. package/src/main/js/sap/ushell/services/Personalization.js +10 -8
  425. package/src/main/js/sap/ushell/services/PluginManager.js +1 -1
  426. package/src/main/js/sap/ushell/services/ReferenceResolver.js +1 -1
  427. package/src/main/js/sap/ushell/services/Search.js +1 -1
  428. package/src/main/js/sap/ushell/services/SearchCEP.js +278 -30
  429. package/src/main/js/sap/ushell/services/SearchableContent.js +77 -18
  430. package/src/main/js/sap/ushell/services/SmartNavigation.js +1 -1
  431. package/src/main/js/sap/ushell/services/SpaceContent.js +1 -1
  432. package/src/main/js/sap/ushell/services/SupportTicket.js +10 -7
  433. package/src/main/js/sap/ushell/services/UITracer.js +244 -0
  434. package/src/main/js/sap/ushell/services/URLParsing.js +10 -7
  435. package/src/main/js/sap/ushell/services/URLShortening.js +1 -1
  436. package/src/main/js/sap/ushell/services/URLTemplate.js +1 -1
  437. package/src/main/js/sap/ushell/services/Ui5ComponentLoader.js +1 -1
  438. package/src/main/js/sap/ushell/services/UsageAnalytics.js +6 -3
  439. package/src/main/js/sap/ushell/services/UserDefaultParameterPersistence.js +1 -1
  440. package/src/main/js/sap/ushell/services/UserDefaultParameters.js +19 -27
  441. package/src/main/js/sap/ushell/services/UserInfo.js +6 -5
  442. package/src/main/js/sap/ushell/services/UserRecents.js +1 -1
  443. package/src/main/js/sap/ushell/services/VisualizationDataProvider.js +1 -1
  444. package/src/main/js/sap/ushell/services/VisualizationInstantiation.js +1 -1
  445. package/src/main/js/sap/ushell/services/_AppState/AppStatePersistencyMethod.js +13 -2
  446. package/src/main/js/sap/ushell/services/_ClientSideTargetResolution/Formatter.js +1 -1
  447. package/src/main/js/sap/ushell/services/_ClientSideTargetResolution/InboundIndex.js +1 -1
  448. package/src/main/js/sap/ushell/services/_ClientSideTargetResolution/InboundProvider.js +1 -1
  449. package/src/main/js/sap/ushell/services/_ClientSideTargetResolution/PrelaunchOperations.js +1 -1
  450. package/src/main/js/sap/ushell/services/_ClientSideTargetResolution/Search.js +1 -1
  451. package/src/main/js/sap/ushell/services/_ClientSideTargetResolution/StagedLogger.js +1 -1
  452. package/src/main/js/sap/ushell/services/_ClientSideTargetResolution/SystemContext.js +1 -1
  453. package/src/main/js/sap/ushell/services/_ClientSideTargetResolution/Utils.js +1 -1
  454. package/src/main/js/sap/ushell/services/_ClientSideTargetResolution/VirtualInbounds.js +1 -1
  455. package/src/main/js/sap/ushell/services/_ClientSideTargetResolution/XAppStateProcessing.js +1 -1
  456. package/src/main/js/sap/ushell/services/_CommonDataModel/SiteConverter.js +1 -1
  457. package/src/main/js/sap/ushell/services/_ContentExtensionAdapterFactory/ContentExtensionAdapterConfig.js +1 -1
  458. package/src/main/js/sap/ushell/services/_ContentExtensionAdapterFactory/FeaturedGroupConfig.js +1 -1
  459. package/src/main/js/sap/ushell/services/_CrossApplicationNavigation/utils.js +1 -1
  460. package/src/main/js/sap/ushell/services/_MessageBroker/MessageBrokerEngine.js +1 -1
  461. package/src/main/js/sap/ushell/services/_PageReferencing/PageReferencer.js +1 -1
  462. package/src/main/js/sap/ushell/services/_Personalization/TransientPersonalizer.js +10 -16
  463. package/src/main/js/sap/ushell/services/_PluginManager/Extensions.js +1 -1
  464. package/src/main/js/sap/ushell/services/_PluginManager/HeaderExtensions.js +1 -1
  465. package/src/main/js/sap/ushell/services/_PluginManager/MenuExtensions.js +1 -1
  466. package/src/main/js/sap/ushell/services/_Ui5ComponentLoader/utils.js +1 -1
  467. package/src/main/js/sap/ushell/services/_VisualizationInstantiation/VizInstance.js +33 -8
  468. package/src/main/js/sap/ushell/services/_VisualizationInstantiation/VizInstanceCdm.js +44 -2
  469. package/src/main/js/sap/ushell/services/_VisualizationInstantiation/VizInstanceLink.js +1 -1
  470. package/src/main/js/sap/ushell/services/{_AppState → appstate}/AppState.js +1 -1
  471. package/src/main/js/sap/ushell/services/appstate/AppStatePersistencyMethod.js +14 -0
  472. package/src/main/js/sap/ushell/services/{_AppState → appstate}/SequentializingAdapter.js +1 -1
  473. package/src/main/js/sap/ushell/services/{_AppState → appstate}/WindowAdapter.js +1 -1
  474. package/src/main/js/sap/ushell/support/plugins/flpConfig/FlpConfigurationPlugin.js +1 -1
  475. package/src/main/js/sap/ushell/themes/base/ContentFinder.less +0 -9
  476. package/src/main/js/sap/ushell/themes/base/SearchCEP.less +32 -198
  477. package/src/main/js/sap/ushell/themes/base/SearchFLP.less +5 -0
  478. package/src/main/js/sap/ushell/themes/base/WorkPage.less +7 -24
  479. package/src/main/js/sap/ushell/themes/base/WorkPageCell.less +57 -20
  480. package/src/main/js/sap/ushell/themes/base/WorkPageColumn.less +37 -12
  481. package/src/main/js/sap/ushell/themes/base/WorkPageColumnResizer.less +59 -0
  482. package/src/main/js/sap/ushell/themes/base/WorkPageRow.less +12 -37
  483. package/src/main/js/sap/ushell/themes/sap_horizon/SearchCEP.less +16 -96
  484. package/src/main/js/sap/ushell/themes/sap_horizon/WorkPageCell.less +2 -7
  485. package/src/main/js/sap/ushell/themes/sap_horizon_dark/SearchCEP.less +15 -124
  486. package/src/main/js/sap/ushell/themes/sap_horizon_dark/WorkPageCell.less +2 -7
  487. package/src/main/js/sap/ushell/themes/sap_horizon_hcb/SearchCEP.less +10 -196
  488. package/src/main/js/sap/ushell/themes/sap_horizon_hcb/WorkPageCell.less +2 -7
  489. package/src/main/js/sap/ushell/themes/sap_horizon_hcw/SearchCEP.less +9 -189
  490. package/src/main/js/sap/ushell/themes/sap_horizon_hcw/WorkPageCell.less +2 -7
  491. package/src/main/js/sap/ushell/ui/ContentNodeSelector.js +5 -0
  492. package/src/main/js/sap/ushell/ui/bookmark/SaveOnPage.view.xml +15 -17
  493. package/src/main/js/sap/ushell/ui/cards/RecentActivitiesExtension.js +1 -1
  494. package/src/main/js/sap/ushell/ui/footerbar/AddBookmarkButton.js +8 -7
  495. package/src/main/js/sap/ushell/ui/footerbar/SaveAsTile.view.js +6 -6
  496. package/src/main/js/sap/ushell/ui/launchpad/ExtendedChangeDetection.js +1 -1
  497. package/src/main/js/sap/ushell/ui/launchpad/Page.js +1 -1
  498. package/src/main/js/sap/ushell/ui/launchpad/Section.js +2 -2
  499. package/src/main/js/sap/ushell/ui/launchpad/Tile.js +16 -2
  500. package/src/main/js/sap/ushell/ui/launchpad/TileRenderer.js +3 -2
  501. package/src/main/js/sap/ushell/ui/launchpad/section/CompactArea.js +1 -1
  502. package/src/main/js/sap/ushell/ui/shell/ShellHeadItem.js +1 -1
  503. package/src/main/js/sap/ushell/ui/shell/ShellNavigationMenu.js +1 -1
  504. package/src/main/js/sap/ushell/ui/shell/SysInfoBar.js +1 -1
  505. package/src/main/js/sap/ushell/ui/shell/ToolArea.js +9 -5
  506. package/src/main/js/sap/ushell/ui/shell/ToolAreaItem.js +1 -1
  507. package/src/main/js/sap/ushell/ui/utils.js +1 -1
  508. package/src/main/js/sap/ushell/ui5service/ShellUIService.js +7 -2
  509. package/src/main/js/sap/ushell/ui5service/UserStatus.js +1 -1
  510. package/src/main/js/sap/ushell/utils/UrlShortening.js +1 -1
  511. package/src/main/js/sap/ushell/utils/WindowUtils.js +2 -2
  512. package/src/test/js/sap/ushell/bootstrap/sandbox.js +1 -1
  513. package/ui5.yaml +26 -25
  514. package/src/main/js/sap/ushell/adapters/cep/SearchCEPApplicationAdapter.js +0 -264
  515. package/src/main/js/sap/ushell/components/cepsearchresult/app/util/jsSearch.js +0 -919
  516. package/src/main/js/sap/ushell/components/shell/SearchCEP/SearchProviders/NavigationSvcSearchProvider.js +0 -126
  517. /package/src/main/js/sap/ushell/services/{_AppState → appstate}/AppStatePersistencySettings.js +0 -0
  518. /package/src/main/js/sap/ushell/services/{_AppState → appstate}/LimitedBuffer.js +0 -0
  519. /package/src/main/js/sap/ushell/services/{_AppState → appstate}/Sequentializer.js +0 -0
@@ -4,10 +4,9 @@ sap.ui.define([
4
4
  "sap/ui/core/mvc/Controller",
5
5
  "sap/ui/model/json/JSONModel",
6
6
  "sap/ui/core/Fragment",
7
+ "sap/m/List",
8
+ "sap/m/StandardListItem",
7
9
  "sap/ushell/components/shell/SearchCEP/SearchProviders/SearchProvider",
8
- "sap/ushell/components/shell/SearchCEP/SearchProviders/NavigationSvcSearchProvider",
9
- "sap/ushell/components/shell/SearchCEP/SearchProviders/FrequentActivityProvider",
10
- "sap/ushell/components/shell/SearchCEP/SearchProviders/RecentSearchProvider",
11
10
  "sap/base/Log",
12
11
  "sap/ushell/utils/WindowUtils",
13
12
  "sap/ui/thirdparty/jquery",
@@ -16,15 +15,15 @@ sap.ui.define([
16
15
  "sap/ui/Device",
17
16
  "sap/ui/core/Configuration",
18
17
  "sap/base/util/UriParameters",
19
- "sap/ui/core/Core"
18
+ "sap/ui/core/Core",
19
+ "sap/ushell/EventHub"
20
20
  ], function (
21
21
  Controller,
22
22
  JSONModel,
23
23
  Fragment,
24
+ List,
25
+ StandardListItem,
24
26
  SearchProvider,
25
- NavigationSvcSearchProvider,
26
- FrequentActivityProvider,
27
- RecentSearchProvider,
28
27
  Log,
29
28
  WindowUtils,
30
29
  jQuery,
@@ -33,56 +32,69 @@ sap.ui.define([
33
32
  Device,
34
33
  Configuration,
35
34
  UriParameters,
36
- Core
35
+ Core,
36
+ EventHub
37
37
  ) {
38
38
  "use strict";
39
+
39
40
  return Controller.extend("sap.ushell.components.shell.SearchCEP.SearchCEP", {
40
41
 
41
42
  onInit: function () {
43
+
44
+ this._bIsMyHome = false;
42
45
  this._bEscPressed = false;
46
+ this.bGrowingReset = false;
47
+ this._SearchCEPService = sap.ushell.Container.getServiceAsync("SearchCEP");
48
+
49
+ this._SearchCEPService.then(function (oSearchCEPService) {
50
+ this._registerDefaultProviders(oSearchCEPService);
51
+ this._listenToServiceEvents(oSearchCEPService);
52
+ }.bind(this));
53
+
43
54
  this._toggleSearchPopover(false);
55
+
44
56
  this._oPlaceHolderSF = Core.byId("PlaceHolderSearchField");
45
- this._oPlaceHolderSF.oParent.getDomRef().firstChild.lastChild.setAttribute("tabindex", "0");
46
- this._bIsMyHome = false;
47
- var sPlatform = sap.ushell.Container.getFLPPlatform(true),
48
- urlParams = UriParameters.fromURL(document.URL);
49
- this._bOnInit = true;
50
- this.bNavigateToNewResultPage = urlParams.get("cep-search-result-app") === "true";
57
+
58
+ var sPlatform = sap.ushell.Container.getFLPPlatform(true);
59
+
51
60
  if (sPlatform === "MYHOME") {
52
61
  this._bIsMyHome = true;
53
62
  }
54
63
  },
55
64
 
56
- onSuggest: function (event) {
65
+ onSuggest: function (oEvent) {
66
+
57
67
  if (this._bEscPressed) {
58
68
  return;
59
69
  }
60
- var sUrl = sap.ushell.Container.getFLPUrl(true);
61
- var sHash = UrlParsing.getHash(sUrl),
70
+
71
+ var sUrl = sap.ushell.Container.getFLPUrl(true),
72
+ sHash = UrlParsing.getHash(sUrl),
62
73
  sIntent = sHash.split("&/")[0];
63
74
 
64
- if (this.bOnNavigationToResultPage === true && (sIntent === "Action-search" || sIntent === "WorkZoneSearchResult-display")) {
75
+ if (this.bOnNavigationToResultPage === true &&
76
+ (sIntent === "Action-search" || sIntent === "WorkZoneSearchResult-display")
77
+ ) {
65
78
  if (this._oPopover.isOpen()) {
66
79
  this._oPopover.close();
67
80
  }
68
81
  return;
69
82
  }
83
+
70
84
  this.bOnNavigationToResultPage = false;
71
- var sValue = event.getParameter("suggestValue");
72
85
  this.oSF.focus();
73
86
 
74
- if (this._recentSearchTermSelected === true) {
75
- this._recentSearchTermSelected = false;
76
- return;
77
- }
78
87
  if (this.bOpeningPopOver === true && this._oPopover.isOpen() === true) {
79
88
  this.bOpeningPopOver = false;
80
89
  return;
81
90
  }
82
- this.testProviders(sValue);
91
+
92
+ var sValue = oEvent.getParameter("suggestValue");
93
+ this._testProviders(sValue);
83
94
  },
84
95
 
85
- onfocusin: function (event) {
96
+ onfocusin: function (oEvent) {
97
+
86
98
  if (this.oSF.getEnableSuggestions() && Device.system.phone) {
87
99
  // eslint-disable-next-line no-undef
88
100
  jQuery(this.oSF.getDomRef()).find("input").attr("inputmode", "search");
@@ -91,241 +103,548 @@ sap.ui.define([
91
103
  }
92
104
  },
93
105
 
94
- getHomePageApps: function () {
95
- var that = this;
96
- NavigationSvcSearchProvider.execSearch().then(function (oResult) {
97
- var sGroupName = "homePageApplications";
98
- if (Array.isArray(oResult[sGroupName]) && oResult[sGroupName].length > 0) {
99
- that.oProducts = oResult[sGroupName].slice(0, 12);
100
- }
101
- });
102
- },
106
+ onSearch: function (oEvent) {
103
107
 
104
- getScreenSize: function () {
105
- var oScreenSize = Device.media.getCurrentRange(Device.media.RANGESETS.SAP_STANDARD_EXTENDED);
106
- if (oScreenSize.from >= 1440) {
107
- return "XL";
108
- } else if (oScreenSize.from >= 1024) {
109
- return "L";
110
- } else if (oScreenSize.from >= 600) {
111
- return "M";
112
- } else if (oScreenSize.from >= 0) {
113
- return "S";
114
- }
115
- },
108
+ var sSearchTerm = oEvent.getParameter("query"),
109
+ bEscPressed = oEvent.getParameter("escPressed"),
110
+ bClearButtonPressed = oEvent.getParameter("clearButtonPressed"),
111
+ oSearchResultList = Core.byId("SearchResultList");
116
112
 
117
- onSearch: function (event) {
118
- if (this._bEscPressed) {
113
+ if (bEscPressed) {
114
+ this._bEscPressed = bEscPressed;
115
+ if (this.oSF.getValue() || this._oPlaceHolderSF.getValue()) {
116
+ this.oSF.setValue("");
117
+ this._oPlaceHolderSF.setValue("");
118
+ } else {
119
+ this._oPopover.close();
120
+ }
119
121
  return;
120
122
  }
121
- var sSearchTerm = event.getParameter("query"),
122
- bClearButtonPressed = event.getParameter("clearButtonPressed");
123
- if (bClearButtonPressed === true) {
123
+
124
+ if (bClearButtonPressed) {
125
+
124
126
  this.oSF.setValue("");
125
127
  this._oPlaceHolderSF.setValue("");
126
128
  this.bOpeningPopOver = false;
127
- this.testProviders();
128
- if (this._oSearchHistoryList.getItems().length === 0 && this._oFrequentlyUsedAppsList.getItems().length === 0 && this._oProductsList.getItems().length === 0) {
129
+
130
+ this._testProviders();
131
+
132
+ var bClosePopover = true,
133
+ aLists = this._oPopover.getContent()[1].getItems();
134
+
135
+ for (var nIdx in aLists) {
136
+ if (aLists[nIdx].getItems().length) {
137
+ bClosePopover = false;
138
+ }
139
+ }
140
+
141
+ if (bClosePopover) {
129
142
  this._oPopover.close();
130
143
  }
131
144
  return;
132
145
  }
133
146
 
134
147
  if (sSearchTerm) {
148
+ sSearchTerm = sSearchTerm.trim();
135
149
  // sync inputs in case esc was pressed and value was entered, cleared and another one entered
136
150
  this._oPlaceHolderSF.setValue(this.oSF.getValue());
137
-
138
151
  this._saveSearchTerm(sSearchTerm);
139
- if (this._bIsMyHome === true) {
140
- if (this._oSearchResultList.getItems().length > 0) {
141
- this._oSearchResultList.getItems()[0].focus();
142
- var sBindingContext = "searchResults";
143
- var sSemanticObject = this._oSearchResultList.getItems()[0].getBindingContext(sBindingContext).getObject().semanticObject;
144
- var sAction = this._oSearchResultList.getItems()[0].getBindingContext(sBindingContext).getObject().semanticObjectAction;
145
- this._navigateApp(sSemanticObject, sAction);
152
+
153
+ if (this._bIsMyHome) {
154
+ if (oSearchResultList.getItems().length > 0) {
155
+
156
+ var oBindingContext = oSearchResultList.getItems()[0].getBindingContext("resultModel"),
157
+ oResult = oBindingContext.getObject();
158
+
159
+ this._navigateToApp(oResult);
146
160
  }
147
161
  } else {
148
162
  this._navigateToResultPage(sSearchTerm);
149
163
  }
164
+ this._oPopover.close();
150
165
  }
151
166
  },
152
167
 
153
168
  onBeforeOpen: function () {
154
- this._oPopover.addStyleClass("sapUshellCEPSearchFieldPopover");
155
- var sSearchState = Core.byId("shell-header").getSearchState();
156
- var bCollapse = false;
169
+
170
+ var bCollapse = false,
171
+ oShellHeader = Core.byId("shell-header"),
172
+ sSearchState = oShellHeader.getSearchState();
173
+
157
174
  if (sSearchState === "COL") {
158
175
  bCollapse = true;
159
176
  }
160
- Core.byId("shell-header").setSearchState("EXP", 35, false); // intermediate state to force shell to show overlay
161
- Core.byId("shell-header").setSearchState("EXP_S", 35, true);
177
+
178
+ this._oPopover.addStyleClass("sapUshellCEPSearchFieldPopover");
179
+
180
+ // intermediate state to force shell to show overlay
181
+ oShellHeader.setSearchState("EXP", 35, false);
182
+ oShellHeader.setSearchState("EXP_S", 35, true);
183
+
162
184
  if (bCollapse === true) {
163
- Core.byId("shell-header").setSearchState("COL", 35, false);
185
+ oShellHeader.setSearchState("COL", 35, false);
164
186
  }
165
187
  },
166
188
 
167
189
  onAfterOpen: function () {
168
- if (Core.byId("SearchHistoryList-trigger")) {
169
- Core.byId("SearchHistoryList-trigger").addEventDelegate({
170
- onkeydown: this._keyDownSearchHistoryListMoreTrigger.bind(this),
171
- onmousedown: this._mouseDownSearchHistoryListMoreTrigger.bind(this)
172
- });
173
- }
174
- if (Core.byId("FrequentlyUsedAppsList-trigger")) {
175
- Core.byId("FrequentlyUsedAppsList-trigger").addEventDelegate({
176
- onkeydown: this._keyDownFrequentlyUsedAppsListMoreTrigger.bind(this)
177
- });
178
- }
179
- if (Core.byId("ProductsList-trigger")) {
180
- Core.byId("ProductsList-trigger").addEventDelegate({
181
- onkeydown: this._keyDownProductsListMoreTrigger.bind(this)
182
- });
183
- }
184
-
185
- // set handlers for screen reader to announce relevant list name
186
- if (this._oFrequentlyUsedAppsList.getItems().length > 0) {
187
- this._oFrequentlyUsedAppsList.getItems()[0].addEventDelegate({
188
- onkeyup: this._keyUpFrequentlyUsedAppsListMoreTrigger.bind(this)
189
- });
190
- }
191
- if (this._oProductsList.getItems().length > 0) {
192
- this._oProductsList.getItems()[0].addEventDelegate({
193
- onkeyup: this._keyUpProductsListMoreTrigger.bind(this)
194
- });
195
- }
196
190
 
197
191
  var nPlaceHolderSFHeight = document.getElementById("PlaceHolderSearchField").clientHeight;
198
192
  document.getElementById("CEPSearchField").style.height = nPlaceHolderSFHeight + "px";
199
-
200
193
  // add tooltip to CEP Search icon
201
194
  jQuery(this.oSF.getDomRef()).find("#CEPSearchField-search").attr("title", resources.i18n.getText("search"));
195
+ this._removeBottomDivider();
202
196
  },
203
197
 
204
- onAfterClose: function () {
198
+ onAfterClose: function (oEvent) {
199
+
200
+ var oSFicon = Core.byId("sf"),
201
+ oShellHeader = Core.byId("shell-header"),
202
+ sScreenSize = this._getScreenSize(),
203
+ aLists = this._oPopover.getContent()[1].getItems();
204
+
205
205
  this._oPlaceHolderSF.setValue(this.oSF.getValue());
206
+
206
207
  if (this._bEscPressed) {
207
208
  this._bEscPressed = false;
208
209
  this._oPlaceHolderSF.focus();
209
210
  }
210
211
 
211
- var sScreenSize = this.getScreenSize();
212
212
  if (sScreenSize !== "XL" && this.oSF.getValue() === "") {
213
- Core.byId("shell-header").setSearchState("COL", 35, false);
214
- Core.byId("sf").setVisible();
213
+ oShellHeader.setSearchState("COL", 35, false);
214
+ oSFicon.setVisible();
215
215
  } else {
216
- Core.byId("shell-header").setSearchState("EXP", 35, false); // intermediate state to force shell to disable overlay
217
- Core.byId("shell-header").setSearchState("EXP_S", 35, false);
216
+ // intermediate state to force shell to disable overlay
217
+ oShellHeader.setSearchState("EXP", 35, false);
218
+ oShellHeader.setSearchState("EXP_S", 35, false);
219
+ }
220
+
221
+ aLists.forEach(function (oList) {
222
+ var oListConfig = oList._getProviderConfig(),
223
+ sGroupName = this._getDefaultProviderGroupName(oListConfig.id);
224
+ // notify external search providers
225
+ if (oList.getVisible() && !sGroupName) {
226
+ if (typeof oListConfig.popoverClosed === "function") {
227
+ var fnPopoverClosedHandler = oListConfig.popoverClosed;
228
+ fnPopoverClosedHandler(oEvent);
229
+ }
230
+ }
231
+ }.bind(this));
232
+ },
233
+
234
+ _listenToServiceEvents: function (oSearchCEPService) {
235
+
236
+ EventHub.on("updateExtProviderLists").do(this._updateExtProviderLists.bind(this, oSearchCEPService));
237
+ },
238
+
239
+ _updateExtProviderLists: function (oSearchCEPService) {
240
+
241
+ if (this._oPopover) {
242
+ var oContent = this._oPopover.getContent()[1],
243
+ aLists = oContent.getItems(),
244
+ pExtProvidersPromise = oSearchCEPService.getExternalSearchProvidersPriorityArray();
245
+
246
+ // remove external provider lists
247
+ for (var idx in aLists) {
248
+ var oList = aLists[idx],
249
+ oProvider = oList._getProviderConfig(),
250
+ sGroupName = this._getDefaultProviderGroupName(oProvider.id);
251
+
252
+ if (!sGroupName) {
253
+ oContent.removeItem(oList);
254
+ oList.destroy();
255
+ this._oResultModel.setProperty("/" + oProvider.name, []);
256
+ }
257
+ }
258
+
259
+ if (!Device.support.touch) {
260
+ this._sContentDensityClass = "sapUiSizeCompact";
261
+ } else {
262
+ this._sContentDensityClass = "sapUiSizeCozy";
263
+ }
264
+
265
+ // add external provider lists
266
+ pExtProvidersPromise.then(function (aExtProviders) {
267
+ for (var indx in aExtProviders) {
268
+ var oExList = this._createList(aExtProviders[indx], undefined);
269
+ oExList.addStyleClass(this._sContentDensityClass);
270
+ oContent.addItem(oExList);
271
+ }
272
+
273
+ if (this._oPopover.isOpen()) {
274
+ // fill external provider lists
275
+ if (aExtProviders.length) {
276
+ this._testProviders(this.oSF.getValue());
277
+ }
278
+ this._removeBottomDivider();
279
+ }
280
+ }.bind(this));
218
281
  }
219
282
  },
220
283
 
221
- onGrowingStarted: function (event) {
222
- var nActualItems = event.getParameter("actual");
223
- if (nActualItems > 0) {
224
- this._oSearchHistoryList.setGrowingThreshold(8);
284
+ _registerDefaultProviders: function (oSearchCEPService) {
285
+
286
+ for (var sKey in SearchProvider.defaultProviders) {
287
+ oSearchCEPService._registerDefaultSearchProvider(SearchProvider.defaultProviders[sKey]);
288
+ }
289
+ },
290
+
291
+ _getScreenSize: function () {
292
+
293
+ var oScreenSize = Device.media.getCurrentRange(Device.media.RANGESETS.SAP_STANDARD_EXTENDED);
294
+
295
+ if (oScreenSize.from >= 1440) {
296
+ return "XL";
297
+ } else if (oScreenSize.from >= 1024) {
298
+ return "L";
299
+ } else if (oScreenSize.from >= 600) {
300
+ return "M";
301
+ } else if (oScreenSize.from >= 0) {
302
+ return "S";
225
303
  }
226
304
  },
227
305
 
228
- onGrowingFinishedResults: function () {
229
- this._boldResults(this._oSearchResultList, this.oSF.getValue());
306
+ _focusNextList: function (oCurrentList) {
307
+
308
+ var aLists = this._oPopover.getContent()[1].getItems(),
309
+ oCurrentListIndex = aLists.map(function (oList) {
310
+ return oList.getId();
311
+ }).indexOf(oCurrentList.getId()),
312
+ aNextLists = aLists.slice(oCurrentListIndex + 1);
313
+
314
+ for (var idx = 0; idx < aNextLists.length; idx++) {
315
+ if (aNextLists[idx].getVisible() && aNextLists[idx].getItems().length) {
316
+
317
+ var oControl = aNextLists[idx].getItems()[0],
318
+ oParent = oControl.getParent(),
319
+ oListConfig = oParent._getProviderConfig();
320
+
321
+ oControl.focus();
322
+ // add list name to first list item aria text for screen reader to announce relevant list name
323
+ this._setListNameToAriaLabelledBy(oControl, oListConfig.title);
324
+ break;
325
+ }
326
+ }
230
327
  },
231
328
 
232
- onExit: function () {
329
+ _focusPreviousList: function (oCurrentList) {
330
+
331
+ var aLists = this._oPopover.getContent()[1].getItems(),
332
+ oCurrentListIndex = aLists.map(function (oList) {
333
+ return oList.getId();
334
+ }).indexOf(oCurrentList.getId()),
335
+ aPreviousLists = aLists.slice(0, oCurrentListIndex);
336
+
337
+ if (!aPreviousLists.length) {
338
+ // focus search field if no previous lists found
339
+ this.oSF.focus();
340
+ return;
341
+ }
342
+
343
+ for (var idx = aPreviousLists.length - 1; idx >= 0; idx--) {
344
+ if (aPreviousLists[idx].getVisible() && aPreviousLists[idx].getItems().length) {
345
+ var oListItems = aPreviousLists[idx].getItems(),
346
+ oAdditionalItems = document.getElementById(aPreviousLists[idx].getId() + "-triggerList"),
347
+ oAdditionalItemsStyle = window.getComputedStyle(oAdditionalItems);
348
+ // check if previous list has "more" button
349
+ if (oAdditionalItemsStyle.display === "none") {
350
+ // focus last item
351
+ oListItems[oListItems.length - 1].focus();
352
+ } else {
353
+ Core.byId(aPreviousLists[idx].getId() + "-trigger").focus();
354
+ }
355
+ break;
356
+ }
357
+
358
+ if (idx === 0) {
359
+ // focus search field if no relevant lists found
360
+ this.oSF.focus();
361
+ }
362
+ }
233
363
  },
234
364
 
235
- testProviders: function (sQuery) {
236
- var arrProviders,
237
- idx,
238
- that = this,
239
- bIsSearch = false,
240
- bRecentActivity = false;
241
- if (sQuery !== undefined && sQuery !== "" && sQuery.trim().length !== 0) {
242
- this._setListsVisible(false, this._oSearchHistoryList);
243
- this._setListsVisible(false, this._oFrequentlyUsedAppsList);
244
- this._setListsVisible(false, this._oProductsList);
245
- arrProviders = [NavigationSvcSearchProvider];
246
- bIsSearch = true;
365
+ _keyDownHandler: function (oEvent) {
366
+
367
+ var oControl = oEvent.srcControl,
368
+ oParent = oControl.getParent(),
369
+ aCurrentListItems = oParent.getItems();
370
+
371
+ if (oEvent.code === 40 || oEvent.code === "ArrowDown") {
372
+ // if event was triggered on the last item in the list
373
+ if (aCurrentListItems[aCurrentListItems.length - 1] === oControl) {
374
+ var oAdditionalItems = document.getElementById(oParent.getId() + "-triggerList"),
375
+ oAdditionalItemsStyle = window.getComputedStyle(oAdditionalItems);
376
+ // if no additional items ("More" button), move focus to the first item of the next list
377
+ if (oAdditionalItemsStyle.display === "none") {
378
+ this._focusNextList(oParent);
379
+ }
380
+ }
381
+ // if event was triggered on "More" button, move focus to the first item of the next list
382
+ if (oControl.getId().endsWith("-trigger")) {
383
+ this._focusNextList(oParent);
384
+ }
385
+ } else if (oEvent.code === 38 || oEvent.code === "ArrowUp") {
386
+ if (aCurrentListItems[0] === oControl) {
387
+ this._focusPreviousList(oParent);
388
+ }
389
+ }
390
+ },
391
+
392
+ _setListNameToAriaLabelledBy: function (oControl, sListName) {
393
+
394
+ var oCurrentControl = oControl.getDomRef(),
395
+ sHiddenSpanId = jQuery(oCurrentControl).attr("aria-labelledby"),
396
+ sText = Core.byId(sHiddenSpanId).getProperty("text");
397
+
398
+ jQuery(Core.byId(sHiddenSpanId).getDomRef()).text(sListName + ". " + sText);
399
+ },
400
+
401
+ _getDefaultProviderGroupName: function (sProviderId) {
402
+
403
+ var oListGroupMap = {
404
+ SearchResultList: "applications",
405
+ FrequentlyUsedAppsList: "frequentApplications",
406
+ SearchHistoryList: "recentSearches",
407
+ ProductsList: "homePageApplications",
408
+ ExternalSearchAppsList: "externalSearchApplications"
409
+ };
410
+
411
+ return oListGroupMap[sProviderId];
412
+ },
413
+
414
+ _removeBottomDivider: function () {
415
+
416
+ // remove divider under bottom list
417
+ setTimeout(function () {
418
+ var oBottomList = jQuery(this._oPopover.getDomRef()).find(".searchCEPList.sapUshellCEPListDivider").not(":hidden").last();
419
+ if (oBottomList.length) {
420
+ oBottomList.addClass("bottomCEPlist");
421
+ }
422
+ }.bind(this), 100);
423
+ },
424
+
425
+ _createList: function (oConfiguration, oModel) {
426
+
427
+ var oList = new List({
428
+ id: oConfiguration.id,
429
+ showSeparators: "None",
430
+ headerText: oConfiguration.titleVisible ? oConfiguration.title : "",
431
+ growing: true,
432
+ showNoData: oConfiguration.showNoData || false,
433
+ growingThreshold: oConfiguration.defaultItemCount,
434
+ growingScrollToLoad: false,
435
+ items: {
436
+ path: "resultModel>/" + oConfiguration.name,
437
+ template: (new StandardListItem({
438
+ type: "Active",
439
+ title: "{resultModel>text}",
440
+ icon: "{resultModel>icon}",
441
+ iconDensityAware: false
442
+ })).addStyleClass("sapUiTinyMarginBeginEnd")
443
+ },
444
+
445
+ growingStarted: this._listUpdateStart.bind(this),
446
+ updateStarted: this._listUpdateStart.bind(this),
447
+ itemPress: this._itemPress.bind(this)
448
+ }).addStyleClass("searchCEPList sapUshellCEPListDivider");
449
+
450
+ switch (oConfiguration.id) {
451
+ case "SearchResultList":
452
+ oList.attachUpdateFinished(this._resultListUpdateFinish.bind(this));
453
+ break;
454
+ }
455
+
456
+ oList.setModel(oModel, "resultModel");
457
+ oList._providerConfig = oConfiguration;
458
+ oList._getProviderConfig = function () {
459
+ return this._providerConfig;
460
+ };
461
+
462
+ oList.addEventDelegate({
463
+ onkeydown: this._keyDownHandler.bind(this),
464
+ onsapdown: this._keyDownHandler.bind(this)
465
+ });
466
+
467
+ return oList;
468
+ },
469
+
470
+ _itemPress: function (oEvent) {
471
+
472
+ var fnHandleItemPress,
473
+ oControl = oEvent.getParameter("srcControl"),
474
+ oParent = oControl.getParent(),
475
+ oListConfig = oParent._getProviderConfig(),
476
+ sGroupName = this._getDefaultProviderGroupName(oListConfig.id);
477
+
478
+ if (sGroupName) {
479
+ // use local handler for default provider
480
+ sGroupName = sGroupName.charAt(0).toUpperCase() + sGroupName.substring(1);
481
+ fnHandleItemPress = "_on" + sGroupName + "Press";
482
+ this[fnHandleItemPress](oEvent);
247
483
  } else {
248
- this._setListsVisible(false, this._oSearchResultList);
249
- this._setListsVisible(false, this._oExternalSearchResultList);
250
- if (this._bOnInit !== true) {
251
- arrProviders = [FrequentActivityProvider, RecentSearchProvider];
252
- if (this._oProductsList.getItems().length > 0) {
253
- this._setListsVisible(true, this._oProductsList);
254
- bRecentActivity = true;
484
+ // use configuration handler for external provider
485
+ fnHandleItemPress = oListConfig.itemPress;
486
+ fnHandleItemPress(oEvent);
487
+
488
+ // handle custom press event for specific item
489
+ var iControlIdx = oParent.getItems().indexOf(oControl),
490
+ aModelListItems = this._oResultModel.getProperty("/" + oListConfig.name),
491
+ oModelListItem = aModelListItems[iControlIdx];
492
+
493
+ if (oModelListItem.hasOwnProperty("press") && typeof oModelListItem.press === "function") {
494
+ fnHandleItemPress = oModelListItem.press;
495
+ fnHandleItemPress(oEvent);
496
+ }
497
+ }
498
+ },
499
+
500
+ _listUpdateStart: function (oEvent) {
501
+
502
+ var oList = oEvent.getSource(),
503
+ oConfiguration = oList._getProviderConfig(),
504
+ iActualItems = oEvent.getParameter("actual"),
505
+ sReason = oEvent.getParameter("reason"),
506
+ iThreshold = this.bGrowingReset ? oConfiguration.maxItemCount : oConfiguration.defaultItemCount;
507
+ /*
508
+ * Currently UI5 List fires both deprecated and its new alternative events (growingStarted -> updateStarted).
509
+ * updateStarted fires before growingStarted, so all of its changes are overwritten.
510
+ * For the time being we should handle both events in the same way.
511
+ */
512
+ if (iActualItems && iActualItems > 0) {
513
+ if (sReason) {
514
+ // updateStart
515
+ switch (sReason.toLowerCase()) {
516
+ case "growing":
517
+ // reset property for new threshold to take effect
518
+ this.bGrowingReset = true;
519
+ var oProperty = this._oResultModel.getProperty("/" + oConfiguration.name);
520
+ this._oResultModel.setProperty("/" + oConfiguration.name, []);
521
+ this._oResultModel.setProperty("/" + oConfiguration.name, oProperty);
522
+ oList.setGrowingThreshold(oConfiguration.maxItemCount);
523
+ break;
524
+ case "change":
525
+ oList.setGrowingThreshold(iThreshold);
526
+ break;
255
527
  }
256
528
  } else {
257
- if (Array.isArray(this.oProducts) && this.oProducts.length > 0) {
258
- bRecentActivity = true;
259
- this._setListsVisible(true, this._oProductsList);
260
- this._oProductsList.setModel(new JSONModel(this.oProducts), "productsResults");
261
- arrProviders = [FrequentActivityProvider, RecentSearchProvider];
262
- } else {
263
- arrProviders = [NavigationSvcSearchProvider, FrequentActivityProvider, RecentSearchProvider];
264
- }
265
- this._bOnInit = false;
529
+ // deprecated growingStart
530
+ oList.setGrowingThreshold(iThreshold);
266
531
  }
532
+ this._removeBottomDivider();
533
+ }
534
+ },
535
+
536
+ _resultListUpdateFinish: function (oEvent) {
537
+
538
+ var oList = oEvent.getSource(),
539
+ oConfiguration = oList._getProviderConfig(),
540
+ sQuery = oList.getModel("resultModel").getProperty("/query");
541
+
542
+ if (oConfiguration.highlightResult && oConfiguration.highlightResult === true) {
543
+ var oResults = oList.$().find(".sapMSLITitleOnly");
544
+
545
+ jQuery.each(oResults, function (oConfiguration, index) {
546
+ var sRegex = new RegExp(sQuery, "gi"),
547
+ // remove <b> from previous highlighting
548
+ sCleanText = oResults[index].innerHTML.replace(/<[^>]*>/g, ""),
549
+ sBoldTitle = sCleanText.replace(sRegex, function (oConfiguration, sPart) {
550
+ return this._getBoldTitle(oConfiguration, sPart);
551
+ }.bind(this, oConfiguration));
552
+ oResults[index].innerHTML = this._getHighlightedHtml(oConfiguration, sBoldTitle);
553
+ }.bind(this, oConfiguration));
554
+ }
555
+ },
556
+
557
+ _getBoldTitle: function (oConfiguration, sPart) {
558
+
559
+ if (oConfiguration.highlightSearchStringPart && oConfiguration.highlightSearchStringPart === true) {
560
+ return "<b>" + sPart + "</b>";
561
+ }
562
+ return "</b>" + sPart + "<b>";
563
+ },
564
+
565
+ _getHighlightedHtml: function (oConfiguration, sBoldTitle) {
566
+
567
+ if (!oConfiguration.highlightSearchStringPart || oConfiguration.highlightSearchStringPart !== true) {
568
+ return "<b>" + sBoldTitle + "</b>";
569
+ }
570
+ return sBoldTitle;
571
+ },
572
+
573
+ _testProviders: function (sQuery) {
574
+
575
+ if (!this._oResultModel) {
576
+ this._oResultModel = new JSONModel({});
577
+ this._oPopover.setModel(this._oResultModel, "resultModel");
578
+ }
579
+
580
+ var oModel = this._oResultModel,
581
+ iQueryLength = (sQuery || "").trim().length,
582
+ aLists = this._oPopover.getContent()[1].getItems();
583
+
584
+ oModel.setProperty("/query", sQuery);
585
+
586
+ if (!Device.support.touch) {
587
+ this._sContentDensityClass = "sapUiSizeCompact";
588
+ } else {
589
+ this._sContentDensityClass = "sapUiSizeCozy";
267
590
  }
268
- for (idx = 0; idx < arrProviders.length; idx++) {
269
- (function (oProvider) {
270
- oProvider.execSearch(sQuery).then(function (oResult) {
271
- for (var groupId in SearchProvider.GROUP_TYPE) {
272
- var sGroupName = SearchProvider.GROUP_TYPE[groupId];
273
- if (Array.isArray(oResult[sGroupName]) && oResult[sGroupName].length > 0) {
274
- if (sGroupName === "recentSearches") {
275
- bRecentActivity = true;
276
- that._setListsVisible(true, that._oSearchHistoryList);
277
- that._oSearchHistoryList.setGrowingThreshold(2);
278
- that._oSearchHistoryList.setModel(new JSONModel(oResult[sGroupName].slice(0, 10)), "searchTerms");
279
- } else if (sGroupName === "frequentApplications") {
280
- bRecentActivity = true;
281
- that._setListsVisible(true, that._oFrequentlyUsedAppsList);
282
- that._oFrequentlyUsedAppsList.setModel(new JSONModel(oResult[sGroupName].slice(0, 12)), "freqUsedApps");
283
- } else if (bIsSearch !== true && sGroupName === "homePageApplications") {
284
- bRecentActivity = true;
285
- that._setListsVisible(true, that._oProductsList);
286
- that._oProductsList.setModel(new JSONModel(oResult[sGroupName].slice(0, 12)), "productsResults");
287
- } else if (bIsSearch === true && sGroupName === "applications") {
288
- that._setListsVisible(true, that._oSearchResultList);
289
- that._oSearchResultList.setModel(new JSONModel(oResult[sGroupName].slice(0, 12)), "searchResults");
290
- that._applyResultsAcc(oResult[sGroupName].length);
291
- setTimeout(function () {
292
- that._boldResults(that._oSearchResultList, sQuery);
293
- if (Core.byId("SearchResultList-trigger")) {
294
- Core.byId("SearchResultList-trigger").addEventDelegate({
295
- onkeydown: that._keyDownSearchResultListMoreTrigger.bind(that)
296
- });
297
- }
298
- }, 50);
299
- } else if (bIsSearch === true && sGroupName === "externalSearchApplications") {
300
- that._setListsVisible(true, that._oExternalSearchResultList);
301
- that._oExternalSearchResultList.setModel(new JSONModel(oResult[sGroupName].slice(0, 12)), "externalSearchResults");
302
- }
303
- if (!that._oPopover.isOpen() && (bRecentActivity === true || bIsSearch === true)) {
304
- that._toggleSearchPopover(true);
305
- }
306
- that.oSF.focus();
307
- } else if (!that._oPopover.isOpen() && bRecentActivity === true && that._oProductsList.getItems().length > 0) {
308
- that._toggleSearchPopover(true);
309
- } else if (bIsSearch === true && sGroupName === "applications") {
310
- if (!oResult[sGroupName] || oResult[sGroupName].length === 0) {
311
- that._setListsVisible(true, that._oSearchResultList);
312
- that._oSearchResultList.setModel(new JSONModel({}), "searchResults");
313
- that._applyResultsAcc(0);
591
+
592
+ for (var idx in aLists) {
593
+ var oList = aLists[idx],
594
+ oProvider = oList._getProviderConfig(),
595
+ sGroupName = this._getDefaultProviderGroupName(oProvider.id);
596
+
597
+ oList.setVisible(false);
598
+
599
+ if (iQueryLength >= oProvider.minQueryLength && iQueryLength <= oProvider.maxQueryLength) {
600
+
601
+ oProvider.execSearch(sQuery, sGroupName).then(function (oListRef, oProviderRef, aResult) {
602
+
603
+ if (aResult && Array.isArray(aResult) && aResult.length > 0) {
604
+
605
+ // trigger list update after popover is reopened (native events are not firing)
606
+ if (oModel.getProperty("/" + oProviderRef.name)) {
607
+ this.bGrowingReset = false;
608
+ oModel.setProperty("/" + oProviderRef.name, []);
609
+ }
610
+
611
+ oListRef.setVisible(true);
612
+ if (!this._oPopover.isOpen()) {
613
+ this._toggleSearchPopover(true);
614
+ }
615
+
616
+ var aResultItems = aResult.slice(0, oProviderRef.maxItemCount);
617
+ oModel.setProperty("/" + oProviderRef.name, aResultItems);
618
+
619
+ // custom behavior for default providers
620
+ switch (oListRef.getId()) {
621
+ case "SearchResultList":
622
+ this._applyResultsAcc(aResultItems.length);
623
+ break;
624
+ }
625
+ this.oSF.focus();
626
+ } else {
627
+ oModel.setProperty("/" + oProviderRef.name, []);
628
+ // custom behavior for default providers
629
+ switch (oListRef.getId()) {
630
+ case "SearchResultList":
631
+ this._applyResultsAcc(0);
314
632
  var sNoResults = resources.i18n.getText("no_apps_found", [sQuery]);
315
- that._oSearchResultList.setNoDataText(sNoResults);
316
- if (!that._oPopover.isOpen()) {
317
- that._toggleSearchPopover(true);
318
- }
319
- }
633
+ oListRef.setNoDataText(sNoResults);
634
+ oListRef.setVisible(true);
635
+ break;
320
636
  }
321
637
  }
322
- });
323
- })(arrProviders[idx]);
638
+ }.bind(this, oList, oProvider));
639
+ }
324
640
  }
641
+ this._removeBottomDivider();
325
642
  },
326
643
 
327
644
  _applyResultsAcc: function (iNumOfItems) {
645
+
328
646
  var sAriaText = "";
647
+
329
648
  // add items to list
330
649
  if (iNumOfItems === 1) {
331
650
  sAriaText = resources.i18n.getText("one_result_search_aria", iNumOfItems);
@@ -338,36 +657,25 @@ sap.ui.define([
338
657
  this.oSF.$("SuggDescr").text(sAriaText);
339
658
  },
340
659
 
341
- _boldResults: function (oList, sQuery) {
342
- var oItems = oList.getItems(),
343
- inputText = oList.$().find(".sapMSLITitleOnly");
344
- jQuery.each(inputText, function (i) {
345
- var sTitle = oItems[i].getTitle(),
346
- reg = new RegExp(sQuery, 'gi');
347
- var sBoldTitle = sTitle;
348
- sBoldTitle = sBoldTitle.replace(reg, function (str) {
349
- return '</b>' + str + '<b>';
350
- });
351
- sBoldTitle = '<b>' + sBoldTitle + '</b>';
352
- inputText[i].innerHTML = sBoldTitle;
353
- });
354
- },
355
-
356
660
  _toggleSearchPopover: function (bOpen) {
661
+
357
662
  if (!this._oPopover) {
358
663
  Fragment.load({
359
664
  name: "sap.ushell.components.shell.SearchCEP.SearchFieldFragment",
360
665
  type: "XML",
361
666
  controller: this
362
667
  }).then(function (popover) {
668
+
363
669
  this._oPopover = popover;
364
- var sScreenSize = this.getScreenSize();
365
- var nPlaceHolderSFWidth = document.getElementById("PlaceHolderSearchField").clientWidth;
670
+ var sScreenSize = this._getScreenSize(),
671
+ nPlaceHolderSFWidth = document.getElementById("PlaceHolderSearchField").clientWidth;
672
+
366
673
  if (sScreenSize === "S") {
367
674
  nPlaceHolderSFWidth = 1.1 * nPlaceHolderSFWidth;
368
675
  } else {
369
676
  nPlaceHolderSFWidth = 1.05 * nPlaceHolderSFWidth;
370
677
  }
678
+
371
679
  this._oPopover.setContentWidth(nPlaceHolderSFWidth + "px");
372
680
  if (Configuration.getRTL() === true) {
373
681
  var nOffsetX = this._oPopover.getOffsetX();
@@ -375,23 +683,9 @@ sap.ui.define([
375
683
  }
376
684
 
377
685
  this._initializeSearchField();
378
- this._initializeSearchHistoryList();
379
- this._initializeFrequentlyUsedAppsList();
380
- this._initializeSearchResultList();
381
- this._initializeProductsList();
382
- this._initializeExternalSearchResultList();
383
- if (!Device.support.touch) {
384
- this._sContentDensityClass = "sapUiSizeCompact";
385
- } else {
386
- this._sContentDensityClass = "sapUiSizeCozy";
387
- }
388
- this._oSearchHistoryList.addStyleClass(this._sContentDensityClass);
389
- this._oFrequentlyUsedAppsList.addStyleClass(this._sContentDensityClass);
390
- this._oSearchResultList.addStyleClass(this._sContentDensityClass);
391
- this._oProductsList.addStyleClass(this._sContentDensityClass);
392
- this._oExternalSearchResultList.addStyleClass(this._sContentDensityClass);
393
- this.testProviders();
394
- this._toggleSearchPopover(bOpen);
686
+ this._initLists().then(function () {
687
+ this._testProviders();
688
+ }.bind(this));
395
689
  }.bind(this));
396
690
  } else if (bOpen) {
397
691
  this._oPopover.openBy(this._oPlaceHolderSF);
@@ -402,264 +696,86 @@ sap.ui.define([
402
696
  }
403
697
  },
404
698
 
405
- _keyDownSearchField: function (event) {
406
- if (event.code === 40 || event.code === "ArrowDown") {
407
- this.oSF.focus();
408
- if (!this._oPopover.isOpen()) {
409
- this._toggleSearchPopover(true);
410
- }
411
- if (this._oSearchHistoryList.getVisible() === true && this._oSearchHistoryList.getItems().length > 0) {
412
- this._oSearchHistoryList.getItems()[0].focus();
413
- } else if (this._oFrequentlyUsedAppsList.getVisible() === true && this._oFrequentlyUsedAppsList.getItems().length > 0) {
414
- this._oFrequentlyUsedAppsList.getItems()[0].focus();
415
- } else if (this._oProductsList.getVisible() === true && this._oProductsList.getItems().length > 0) {
416
- this._oProductsList.getItems()[0].focus();
417
- } else if (this._oSearchResultList.getVisible() === true && this._oSearchResultList.getItems().length > 0) {
418
- this._oSearchResultList.getItems()[0].focus();
419
- } else if (this._oExternalSearchResultList.getVisible() === true && this._oExternalSearchResultList.getItems().length > 0) {
420
- this._oExternalSearchResultList.getItems()[0].focus();
421
- }
422
- } else if (event.code === 116 || event.code === "F5") {
423
- window.location.reload();
424
- } else if (event.code === 9 || event.code === "Tab") {
425
- var element;
426
- if (event.shiftKey) {
427
- element = this._oPlaceHolderSF.oParent.getDomRef().firstChild.lastChild.firstChild;
428
- } else {
429
- element = this._oPlaceHolderSF.oParent.getDomRef().lastChild.firstChild;
430
- if (element && getComputedStyle(element).display === "none") {
431
- element = this._oPlaceHolderSF.oParent.getDomRef().lastChild.firstChild.nextSibling;
432
- }
433
- }
434
- setTimeout(function () {
435
- if (this.getScreenSize() === "S" || this.getScreenSize() === "M") {
436
- Core.byId("shell-header").setSearchState("COL", 35, false);
437
- Core.byId("sf").setVisible(true);
438
- }
439
- if (element !== null) {
440
- element.focus();
441
- }
442
- }.bind(this), 0);
443
- } else if (event.code === 27 || event.code === "Escape") {
444
- this.oSF.setValue("");
445
- this._oPlaceHolderSF.setValue("");
446
- this._bEscPressed = true;
447
- }
448
- },
699
+ _initLists: function () {
449
700
 
450
- _keyDownSearchHistoryList: function (event) {
451
- var nNumOfItemsHistoryList = this._oSearchHistoryList.getItems().length;
452
- if (event.code === 40 || event.code === "ArrowDown") {
453
- if (nNumOfItemsHistoryList > 0 && this._oSearchHistoryList.getItems()[nNumOfItemsHistoryList - 1] === event.srcControl) {
454
- var searchHistoryStyle = window.getComputedStyle(document.getElementById("SearchHistoryList-triggerList"), "");
455
- if (searchHistoryStyle.display === "none") {
456
- if (this._oFrequentlyUsedAppsList.getVisible() === true && this._oFrequentlyUsedAppsList.getItems().length > 0) {
457
- this._oFrequentlyUsedAppsList.getItems()[0].focus();
458
- } else if (this._oProductsList.getVisible() === true && this._oProductsList.getItems().length > 0) {
459
- this._oProductsList.getItems()[0].focus();
460
- }
461
- } else {
462
- Core.byId("SearchHistoryList-trigger").focus();
463
- }
464
- }
465
- } else if (event.code === 38 || event.code === "ArrowUp") {
466
- if (nNumOfItemsHistoryList > 0 && this._oSearchHistoryList.getItems()[0] === event.srcControl) {
467
- this.oSF.focus();
468
- }
469
- }
470
- },
701
+ return this._SearchCEPService.then(function (oSearchCEPService) {
471
702
 
472
- _keyDownFrequentlyUsedAppsList: function (event) {
473
- var frequentlyUsedStyle,
474
- nNumOfItemsFreqUsedAppsList = this._oFrequentlyUsedAppsList.getItems().length;
475
- if (event.code === 40 || event.code === "ArrowDown") {
476
- if (nNumOfItemsFreqUsedAppsList > 0 && this._oFrequentlyUsedAppsList.getItems()[nNumOfItemsFreqUsedAppsList - 1] === event.srcControl) {
477
- frequentlyUsedStyle = window.getComputedStyle(document.getElementById("FrequentlyUsedAppsList-triggerList"), "");
478
- if (frequentlyUsedStyle.display === "none") {
479
- if (this._oProductsList.getVisible() === true && this._oProductsList.getItems().length > 0) {
480
- this._oProductsList.getItems()[0].focus();
481
- }
482
- } else {
483
- Core.byId("FrequentlyUsedAppsList-trigger").focus();
484
- }
485
- }
486
- } else if (event.code === 38 || event.code === "ArrowUp") {
487
- if (nNumOfItemsFreqUsedAppsList > 0 && this._oFrequentlyUsedAppsList.getItems()[0] === event.srcControl) {
488
- var nNumOfItemsHistoryList = this._oSearchHistoryList.getItems().length;
489
- if (this._oSearchHistoryList.getVisible() === true && nNumOfItemsHistoryList > 0) {
490
- var sSearchHistoryListStyle = window.getComputedStyle(document.getElementById("SearchHistoryList-triggerList"), "");
491
- if (sSearchHistoryListStyle.display === "none") {
492
- if (nNumOfItemsHistoryList > 0) {
493
- this._oSearchHistoryList.getItems()[nNumOfItemsHistoryList - 1].focus();
494
- }
495
- } else {
496
- Core.byId("SearchHistoryList-trigger").focus();
497
- }
498
- } else {
499
- this.oSF.focus();
500
- }
501
- }
502
- } else if (event.code === 13 || event.code === "Enter") {
503
- var sAppId = event.srcControl.getBindingContext("freqUsedApps").getObject().appId;
504
- var sSemanticObj = sAppId.split("-")[0];
505
- sSemanticObj = sSemanticObj.split("#")[1];
506
- var sAction = sAppId.split("-")[1];
507
- this._navigateApp(sSemanticObj, sAction);
508
- }
509
- },
510
-
511
- _keyDownProductsList: function (event) {
512
- var style,
513
- nNumOfItemsProducts = this._oProductsList.getItems().length,
514
- nNumOfItemsFreqUsedApps = this._oFrequentlyUsedAppsList.getItems().length,
515
- nNumOfItemsHistoryList = this._oSearchHistoryList.getItems().length;
516
- if (event.code === 40 || event.code === "ArrowDown") {
517
- if (nNumOfItemsProducts > 0 && this._oProductsList.getItems()[nNumOfItemsProducts - 1] === event.srcControl) {
518
- style = window.getComputedStyle(document.getElementById("ProductsList-triggerList"), "");
519
- if (style.display !== "none") {
520
- Core.byId("ProductsList-trigger").focus();
521
- }
522
- }
523
- } else if (event.code === 38 || event.code === "ArrowUp") {
524
- if (nNumOfItemsProducts > 0 && this._oProductsList.getItems()[0] === event.srcControl) {
525
- if (this._oFrequentlyUsedAppsList.getVisible() === true && nNumOfItemsFreqUsedApps > 0) {
526
- style = window.getComputedStyle(document.getElementById("FrequentlyUsedAppsList-triggerList"), "");
527
- if (style.display === "none") {
528
- this._oFrequentlyUsedAppsList.getItems()[nNumOfItemsFreqUsedApps - 1].focus();
529
- } else {
530
- Core.byId("FrequentlyUsedAppsList-trigger").focus();
531
- }
532
- } else if (this._oSearchHistoryList.getVisible() === true && nNumOfItemsHistoryList > 0) {
533
- style = window.getComputedStyle(document.getElementById("SearchHistoryList-triggerList"), "");
534
- if (style.display === "none") {
535
- this._oSearchHistoryList.getItems()[nNumOfItemsHistoryList - 1].focus();
536
- } else {
537
- Core.byId("SearchHistoryList-trigger").focus();
538
- }
539
- } else {
540
- this.oSF.focus();
541
- }
542
- }
543
- } else if (event.code === 13 || event.code === "Enter") {
544
- this.onProductsPress(event);
545
- }
546
- },
547
-
548
- _keyUpFrequentlyUsedAppsListMoreTrigger: function (event) {
549
- var oCurrentControl = event.srcControl.getDomRef(),
550
- sHiddenSpanId = oCurrentControl.getAttribute("aria-labelledby"),
551
- sText = Core.byId(sHiddenSpanId).getProperty("text"),
552
- sNewText = resources.i18n.getText("frequentAppsCEPSearch");
703
+ var pProvidersPromise = oSearchCEPService.getSearchProvidersPriorityArray(),
704
+ oContent = this._oPopover.getContent()[1];
553
705
 
554
- jQuery(Core.byId(sHiddenSpanId).getDomRef()).text(sNewText + ". " + sText);
555
- },
556
-
557
- _keyUpProductsListMoreTrigger: function (event) {
558
- var oCurrentControl = event.srcControl.getDomRef(),
559
- sHiddenSpanId = oCurrentControl.getAttribute("aria-labelledby"),
560
- sText = Core.byId(sHiddenSpanId).getProperty("text"),
561
- sNewText = resources.i18n.getText("products");
562
-
563
- jQuery(Core.byId(sHiddenSpanId).getDomRef()).text(sNewText + ". " + sText);
564
- },
565
-
566
- _keyDownSearchHistoryListMoreTrigger: function (event) {
567
- if (event.code === 40 || event.code === "ArrowDown") {
568
- if (this._oFrequentlyUsedAppsList.getVisible() === true && this._oFrequentlyUsedAppsList.getItems().length > 0) {
569
- this._oFrequentlyUsedAppsList.getItems()[0].focus();
570
- } else if (this._oProductsList.getVisible() === true && this._oProductsList.getItems().length > 0) {
571
- this._oProductsList.getItems()[0].focus();
572
- }
573
- } else if (event.code === 38 || event.code === "ArrowUp") {
574
- var nNumOfItemsHistoryList = this._oSearchHistoryList.getItems().length;
575
- if (nNumOfItemsHistoryList > 0) {
576
- this._oSearchHistoryList.getItems()[nNumOfItemsHistoryList - 1].focus();
706
+ if (!Device.support.touch) {
707
+ this._sContentDensityClass = "sapUiSizeCompact";
708
+ } else {
709
+ this._sContentDensityClass = "sapUiSizeCozy";
577
710
  }
578
- } else if (event.code === 13 || event.code === "Enter") {
579
- this._oSearchHistoryList.setGrowingThreshold(8);
580
- }
581
- },
582
711
 
583
- _mouseDownSearchHistoryListMoreTrigger: function (event) {
584
- this._oSearchHistoryList.setGrowingThreshold(8);
712
+ return pProvidersPromise.then(function (aProviders) {
713
+ for (var i = 0; i < aProviders.length; i++) {
714
+ var oList = this._createList(aProviders[i], this._oResultModel);
715
+ oList.addStyleClass(this._sContentDensityClass);
716
+ oContent.addItem(oList);
717
+ }
718
+ }.bind(this));
719
+ }.bind(this));
585
720
  },
586
721
 
587
- _keyDownFrequentlyUsedAppsListMoreTrigger: function (event) {
588
- if (event.code === 38 || event.code === "ArrowUp") {
589
- var nNumOfItemsFreqUsedAppsList = this._oFrequentlyUsedAppsList.getItems().length;
590
- if (nNumOfItemsFreqUsedAppsList > 0) {
591
- this._oFrequentlyUsedAppsList.getItems()[nNumOfItemsFreqUsedAppsList - 1].focus();
592
- }
593
- } else if (event.code === 40 || event.code === "ArrowDown") {
594
- if (this._oProductsList.getVisible() === true && this._oProductsList.getItems().length > 0) {
595
- this._oProductsList.getItems()[0].focus();
596
- }
597
- }
598
- },
722
+ _keyDownSearchField: function (oEvent) {
599
723
 
600
- _keyDownProductsListMoreTrigger: function (event) {
601
- if (event.code === 38 || event.code === "ArrowUp") {
602
- var nNumOfItemsProductsList = this._oProductsList.getItems().length;
603
- if (nNumOfItemsProductsList > 0) {
604
- this._oProductsList.getItems()[nNumOfItemsProductsList - 1].focus();
605
- }
606
- }
607
- },
724
+ if (oEvent.code === 40 || oEvent.code === "ArrowDown") {
725
+ this.oSF.focus();
726
+ var aLists = this._oPopover.getContent()[1].getItems();
608
727
 
609
- _keyDownSearchResultListMoreTrigger: function (event) {
610
- if (event.code === 38 || event.code === "ArrowUp") {
611
- var nNumOfItemsSearchResultList = this._oSearchResultList.getItems().length;
612
- if (nNumOfItemsSearchResultList > 0) {
613
- this._oSearchResultList.getItems()[nNumOfItemsSearchResultList - 1].focus();
614
- }
615
- } else if (event.code === 40 || event.code === "ArrowDown") {
616
- if (this._oExternalSearchResultList.getVisible() === true && this._oExternalSearchResultList.getItems().length > 0) {
617
- this._oExternalSearchResultList.getItems()[0].focus();
618
- }
619
- }
620
- },
728
+ for (var sListKey in aLists) {
729
+ if (aLists[sListKey].getVisible() && aLists[sListKey].getItems().length > 0) {
730
+
731
+ var oControl = aLists[sListKey].getItems()[0],
732
+ oParent = oControl.getParent(),
733
+ oListConfig = oParent._getProviderConfig();
621
734
 
622
- _keyDownSearchResultList: function (event) {
623
- var nNumOfItemsSearchResultList = this._oSearchResultList.getItems().length;
624
- if (event.code === 40 || event.code === "ArrowDown") {
625
- if (nNumOfItemsSearchResultList > 0 && this._oSearchResultList.getItems()[nNumOfItemsSearchResultList - 1] === event.srcControl) {
626
- var style = window.getComputedStyle(document.getElementById("SearchResultList-triggerList"), "");
627
- if (style.display !== "none") {
628
- Core.byId("SearchResultList-trigger").focus();
629
- } else if (this._oExternalSearchResultList.getVisible() === true && this._oExternalSearchResultList.getItems().length > 0) {
630
- this._oExternalSearchResultList.getItems()[0].focus();
735
+ oControl.focus();
736
+ this._setListNameToAriaLabelledBy(oControl, oListConfig.title);
737
+ break;
631
738
  }
632
739
  }
633
- } else if (event.code === 38 || event.code === "ArrowUp") {
634
- if (nNumOfItemsSearchResultList > 0 && this._oSearchResultList.getItems()[0] === event.srcControl) {
635
- this.oSF.focus();
636
- }
637
- }
638
- },
639
-
640
- _keyDownExternalSearchResultList: function (event) {
641
- var nNumOfItemsExternal = this._oExternalSearchResultList.getItems().length,
642
- nNumOfAppsResultList = this._oSearchResultList.getItems().length,
643
- style = "";
644
- if (event.code === 38 || event.code === "ArrowUp") {
645
- if (nNumOfItemsExternal > 0 && this._oExternalSearchResultList.getItems()[0] === event.srcControl) {
646
- if (this._oSearchResultList.getVisible() === true && nNumOfAppsResultList > 0) {
647
- style = window.getComputedStyle(document.getElementById("SearchResultList-triggerList"), "");
648
- if (style.display === "none") {
649
- this._oSearchResultList.getItems()[nNumOfAppsResultList - 1].focus();
650
- } else {
651
- Core.byId("SearchResultList-trigger").focus();
740
+ } else if (oEvent.code === 116 || oEvent.code === "F5") {
741
+ window.location.reload();
742
+ } else if (oEvent.code === 9 || oEvent.code === "Tab") {
743
+ var oElement;
744
+ if (oEvent.shiftKey) {
745
+ oElement = this._oPlaceHolderSF.oParent.getDomRef().firstChild.lastChild.firstChild;
746
+ } else {
747
+ // sapUshellShellHeadEnd area
748
+ var oSapUshellShellHeadEnd = this._oPlaceHolderSF.oParent.getDomRef().lastChild,
749
+ aChildNodes = oSapUshellShellHeadEnd.childNodes;
750
+ // iterate until visible child found
751
+ for (var sChildKey in aChildNodes) {
752
+ if (getComputedStyle(aChildNodes[sChildKey]).display !== "none") {
753
+ oElement = aChildNodes[sChildKey];
754
+ break;
652
755
  }
653
- } else {
654
- this.oSF.focus();
655
756
  }
656
757
  }
758
+ setTimeout(function () {
759
+ if (this._getScreenSize() === "S" || this._getScreenSize() === "M") {
760
+ Core.byId("shell-header").setSearchState("COL", 35, false);
761
+ Core.byId("sf").setVisible(true);
762
+ }
763
+ if (oElement) {
764
+ oElement.focus();
765
+ }
766
+ }.bind(this), 0);
767
+ } else if (oEvent.code === 27 || oEvent.code === "Escape") {
768
+ this.oSF.setValue("");
769
+ this._oPlaceHolderSF.setValue("");
770
+ this._bEscPressed = true;
657
771
  }
658
772
  },
659
773
 
660
774
  _initializeSearchField: function () {
775
+
661
776
  this.oSF = Core.byId("CEPSearchField");
662
777
  var nPlaceHolderSFWidth = document.getElementById("PlaceHolderSearchField").clientWidth;
778
+
663
779
  this.oSF.setWidth(nPlaceHolderSFWidth + "px");
664
780
  this.oSF.addEventDelegate({
665
781
  onkeydown: this._keyDownSearchField.bind(this),
@@ -667,165 +783,82 @@ sap.ui.define([
667
783
  });
668
784
  },
669
785
 
670
- _initializeSearchHistoryList: function () {
671
- this._oSearchHistoryList = Core.byId("SearchHistoryList");
672
- this._oSearchHistoryList.addEventDelegate({
673
- onkeydown: this._keyDownSearchHistoryList.bind(this),
674
- onsapdown: this._keyDownSearchHistoryList.bind(this)
675
- });
676
- },
677
-
678
- _initializeFrequentlyUsedAppsList: function () {
679
- this._oFrequentlyUsedAppsList = Core.byId("FrequentlyUsedAppsList");
680
- this._oFrequentlyUsedAppsList.setHeaderText(resources.i18n.getText("frequentAppsCEPSearch"));
681
- this._oFrequentlyUsedAppsList.addEventDelegate({
682
- onkeydown: this._keyDownFrequentlyUsedAppsList.bind(this),
683
- onsapdown: this._keyDownFrequentlyUsedAppsList.bind(this)
684
- });
685
- },
686
-
687
- _initializeSearchResultList: function () {
688
- this._oSearchResultList = Core.byId("SearchResultList");
689
- this._oSearchResultList.addEventDelegate({
690
- onkeydown: this._keyDownSearchResultList.bind(this),
691
- onsapdown: this._keyDownSearchResultList.bind(this)
692
- });
693
- },
694
-
695
- _initializeProductsList: function () {
696
- this._oProductsList = Core.byId("ProductsList");
697
- this._oProductsList.setHeaderText(resources.i18n.getText("products"));
698
- this._oProductsList.addEventDelegate({
699
- onkeydown: this._keyDownProductsList.bind(this),
700
- onsapdown: this._keyDownProductsList.bind(this)
701
- });
702
- },
703
-
704
- _initializeExternalSearchResultList: function () {
705
- this._oExternalSearchResultList = Core.byId("ExternalSearchAppsList");
706
- this._oExternalSearchResultList.setHeaderText(resources.i18n.getText("searchWithin"));
707
- this._oExternalSearchResultList.addEventDelegate({
708
- onkeydown: this._keyDownExternalSearchResultList.bind(this)
709
- });
710
- },
711
-
712
786
  _saveSearchTerm: function (sTerm) {
787
+
713
788
  if (sTerm) {
714
789
  sap.ushell.Container.getServiceAsync("UserRecents")
715
790
  .then(function (UserRecentsService) {
716
- UserRecentsService.addSearchActivity({
717
- sTerm: sTerm
718
- }).then(function () {
719
- return;
720
- });
791
+ UserRecentsService.addSearchActivity({ sTerm: sTerm });
721
792
  });
722
793
  }
723
794
  },
724
795
 
725
- onRecentSearchPress: function (event) {
726
- var searchTerm = event.getParameter("listItem").getProperty("title");
727
- this._recentSearchTermSelected = true;
796
+ _onRecentSearchesPress: function (oEvent) {
797
+
798
+ var searchTerm = oEvent.getParameter("listItem").getProperty("title");
799
+
728
800
  this.oSF.setValue(searchTerm);
729
- this.testProviders(searchTerm);
801
+ setTimeout(function () {
802
+ this._testProviders(searchTerm);
803
+ }.bind(this));
730
804
  },
731
805
 
732
- onSearchResultPress: function (event) {
733
- var sSearchTerm = this.oSF.getValue();
806
+ _onApplicationsPress: function (oEvent) {
807
+
808
+ var sSearchTerm = this.oSF.getValue(),
809
+ oBindingContext = oEvent.getParameter("listItem").getBindingContext("resultModel"),
810
+ oResult = oBindingContext.getObject();
811
+
734
812
  this._saveSearchTerm(sSearchTerm);
735
- var sBindingContext = "searchResults";
736
- var sSemanticObject = event.getParameter("listItem").getBindingContext(sBindingContext).getObject().semanticObject;
737
- var sAction = event.getParameter("listItem").getBindingContext(sBindingContext).getObject().semanticObjectAction;
738
- this._navigateApp(sSemanticObject, sAction);
813
+ this._navigateToApp(oResult);
739
814
  },
740
815
 
741
- onProductsPress: function (event) {
742
- var sSearchTerm = this.oSF.getValue();
816
+ _onHomePageApplicationsPress: function (oEvent) {
817
+
818
+ var sSearchTerm = this.oSF.getValue(),
819
+ oBindingContext = oEvent.getParameter("listItem").getBindingContext("resultModel"),
820
+ oResult = oBindingContext.getObject();
821
+
743
822
  this._saveSearchTerm(sSearchTerm);
744
- var sBindingContext = "productsResults";
745
- var sSemanticObject = event.getParameter("listItem").getBindingContext(sBindingContext).getObject().semanticObject;
746
- var sAction = event.getParameter("listItem").getBindingContext(sBindingContext).getObject().semanticObjectAction;
747
- this._navigateApp(sSemanticObject, sAction);
823
+ this._navigateToApp(oResult);
748
824
  },
749
825
 
750
- onExternalSearchResultPress: function (event) {
751
- var sSearchTerm = this.oSF.getValue();
826
+ _onExternalSearchApplicationsPress: function (oEvent) {
827
+
828
+ var sSearchTerm = this.oSF.getValue(),
829
+ oBindingContext = oEvent.getParameter("listItem").getBindingContext("resultModel"),
830
+ oResult = oBindingContext.getObject();
831
+
752
832
  this._saveSearchTerm(sSearchTerm);
753
833
  // Navigate to ES from search within list
754
- if (event.getParameter("listItem").getBindingContext("externalSearchResults").getObject().isEnterpriseSearch === true) {
834
+ if (oResult && oResult.isEnterpriseSearch === true) {
755
835
  this._navigateToResultPage(sSearchTerm, true);
756
836
  } else {
757
- var sUrl = event.getParameter("listItem").getBindingContext("externalSearchResults").getObject().url;
758
- if (sUrl !== undefined && sUrl !== null) {
759
- this._navigateURL(sUrl);
760
- }
837
+ this._navigateToApp(oResult, sSearchTerm);
761
838
  }
762
839
  },
763
840
 
764
- onFreqUsedAppsPress: function (event) {
765
- var sAppId = event.getParameter("listItem").getBindingContext("freqUsedApps").getObject().appId;
766
- var sSemanticObj = sAppId.split("-")[0];
767
- sSemanticObj = sSemanticObj.split("#")[1];
768
- var sAction = sAppId.split("-")[1];
769
- this._navigateApp(sSemanticObj, sAction);
770
- if (this._oPopover.isOpen()) {
771
- this._oPopover.close();
772
- }
773
- },
841
+ _onFrequentApplicationsPress: function (oEvent) {
842
+
843
+ var oBindingContext = oEvent.getParameter("listItem").getBindingContext("resultModel"),
844
+ oResult = oBindingContext.getObject();
774
845
 
775
- onFreqUsedProductsPress: function (event) {
776
- var sAppId = event.getParameter("listItem").getBindingContext("freqUsedProducts").getObject().appId;
777
- var sSemanticObj = sAppId.split("-")[0];
778
- sSemanticObj = sSemanticObj.split("#")[1];
779
- var sAction = sAppId.split("-")[1];
780
- this._navigateApp(sSemanticObj, sAction);
846
+ this._navigateToApp(oResult);
781
847
  if (this._oPopover.isOpen()) {
782
848
  this._oPopover.close();
783
849
  }
784
850
  },
785
851
 
786
- _setListsVisible: function (bVisible, oList) {
787
- oList.setVisible(bVisible);
788
- if (this._oSearchHistoryList.getVisible() === true) {
789
- if (this._oFrequentlyUsedAppsList.getVisible() === true || this._oProductsList.getVisible() === true) {
790
- this._oSearchHistoryList.addStyleClass("sapUshellCEPListDivider");
791
- }
792
- }
793
- if (this._oFrequentlyUsedAppsList.getVisible() === true) {
794
- if (this._oProductsList.getVisible() === true) {
795
- this._oFrequentlyUsedAppsList.addStyleClass("sapUshellCEPListDivider");
796
- }
797
- }
798
- if (this._oSearchResultList.getVisible() === true) {
799
- if (this._oExternalSearchResultList.getVisible() === true) {
800
- this._oSearchResultList.addStyleClass("sapUshellCEPListDivider");
801
- }
802
- }
803
- },
852
+ _navigateToApp: function (oResult, sSearchTerm) {
804
853
 
805
- _navigateURL: function (sUrl) {
806
- WindowUtils.openURL(sUrl);
807
- this.oSF.setValue("");
808
- setTimeout(function () {
809
- if (this._oPopover.isOpen()) {
810
- this._oPopover.close();
811
- }
812
- }.bind(this), 500);
813
- },
814
-
815
- _navigateApp: function (sSemanticObject, sAction) {
816
- var oParams = {};
817
- sap.ushell.Container.getServiceAsync("CrossApplicationNavigation").then(function (oCrossAppNavService) {
818
- oCrossAppNavService.toExternal({
819
- target: {
820
- semanticObject: sSemanticObject,
821
- action: sAction
822
- },
823
- params: oParams
824
- });
854
+ this._SearchCEPService.then(function (oSearchCEPService) {
855
+ oSearchCEPService.navigate(oResult, sSearchTerm);
825
856
  });
857
+
826
858
  if (this.oSF.getValue() !== "") {
827
859
  this.oSF.setValue("");
828
860
  }
861
+
829
862
  setTimeout(function () {
830
863
  if (this._oPopover.isOpen()) {
831
864
  this._oPopover.close();
@@ -834,34 +867,29 @@ sap.ui.define([
834
867
  },
835
868
 
836
869
  _navigateToResultPage: function (sTerm, bAll) {
837
- var sHash;
838
870
  if (sTerm === "") {
839
871
  return;
840
872
  }
873
+ var sHash = "#WorkZoneSearchResult-display?searchTerm=" + sTerm + "&category=app";
841
874
  if (bAll === true) {
842
875
  sHash = "#Action-search&/top=20&filter={\"dataSource\":{\"type\":\"Category\",\"id\":\"All\",\"label\":\"All\",\"labelPlural\":\"All\"},\"searchTerm\":\"" +
843
876
  sTerm + "\",\"rootCondition\":{\"type\":\"Complex\",\"operator\":\"And\",\"conditions\":[]}}";
844
- } else if (this.bNavigateToNewResultPage === true) {
845
- sHash = "#WorkZoneSearchResult-display?searchTerm=" + sTerm + "&category=app";
846
- } else {
847
- sHash = "#Action-search&/top=20&filter={\"dataSource\":{\"type\":\"Category\",\"id\":\"$$APPS$$\",\"label\":\"Apps\",\"labelPlural\":\"Apps\"},\"searchTerm\":\"" +
848
- sTerm + "\",\"rootCondition\":{\"type\":\"Complex\",\"operator\":\"And\",\"conditions\":[]}}";
849
877
  }
850
878
  this.bOnNavigationToResultPage = true;
851
- sap.ushell.Container.getServiceAsync("CrossApplicationNavigation").then(function (oCrossAppNavService) {
879
+ var pNavServicePromise = sap.ushell.Container.getServiceAsync("CrossApplicationNavigation");
880
+ pNavServicePromise.then(function (oCrossAppNavService) {
852
881
  oCrossAppNavService.toExternal({
853
882
  target: {
854
883
  shellHash: sHash
855
884
  }
856
885
  });
857
886
  });
858
- if (this.bNavigateToNewResultPage === true) {
859
- setTimeout(function () {
860
- if (this._oPopover.isOpen()) {
861
- this._oPopover.close();
862
- }
863
- }.bind(this), 500);
887
+ setTimeout(function () {
888
+ if (this._oPopover.isOpen()) {
889
+ this._oPopover.close();
864
890
  }
891
+ }.bind(this), 500);
892
+
865
893
  setTimeout(function () {
866
894
  this.bOnNavigationToResultPage = false;
867
895
  }.bind(this), 3000);