@sapui5/sap.ushell 1.116.0 → 1.117.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 (465) hide show
  1. package/package.json +1 -1
  2. package/src/main/js/sap/ushell/.library +1 -1
  3. package/src/main/js/sap/ushell/ApplicationType.js +47 -939
  4. package/src/main/js/sap/ushell/Container.js +3 -3
  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/Layout.js +1 -1
  8. package/src/main/js/sap/ushell/NWBCInterface.js +1 -1
  9. package/src/main/js/sap/ushell/SessionHandler.js +7 -5
  10. package/src/main/js/sap/ushell/TechnicalParameters.js +1 -1
  11. package/src/main/js/sap/ushell/URLTemplateProcessor.js +1 -1
  12. package/src/main/js/sap/ushell/Ui5NativeServiceFactory.js +1 -1
  13. package/src/main/js/sap/ushell/Ui5ServiceFactory.js +1 -1
  14. package/src/main/js/sap/ushell/User.js +2 -2
  15. package/src/main/js/sap/ushell/_ApplicationType/guiResolution.js +3 -4
  16. package/src/main/js/sap/ushell/_ApplicationType/ui5Resolution.js +121 -0
  17. package/src/main/js/sap/ushell/_ApplicationType/urlResolution.js +105 -0
  18. package/src/main/js/sap/ushell/_ApplicationType/urlTemplateResolution.js +626 -0
  19. package/src/main/js/sap/ushell/_ApplicationType/utils.js +94 -3
  20. package/src/main/js/sap/ushell/_ApplicationType/wcfResolution.js +61 -0
  21. package/src/main/js/sap/ushell/_ApplicationType/wdaResolution.js +28 -0
  22. package/src/main/js/sap/ushell/_URLTemplateProcessor/DefinitionParameterSetBuilder.js +1 -1
  23. package/src/main/js/sap/ushell/_URLTemplateProcessor/DependencyGraph.js +1 -1
  24. package/src/main/js/sap/ushell/_URLTemplateProcessor/Functions.js +1 -1
  25. package/src/main/js/sap/ushell/_URLTemplateProcessor/Resolvers.js +1 -1
  26. package/src/main/js/sap/ushell/_URLTemplateProcessor/TemplateParameterParser.js +1 -1
  27. package/src/main/js/sap/ushell/_URLTemplateProcessor/utils.js +1 -1
  28. package/src/main/js/sap/ushell/adapters/cdm/ClientSideTargetResolutionAdapter.js +1 -1
  29. package/src/main/js/sap/ushell/adapters/cdm/CommonDataModelAdapter.js +1 -1
  30. package/src/main/js/sap/ushell/adapters/cdm/ConfigurationDefaultsAdapter.js +1 -1
  31. package/src/main/js/sap/ushell/adapters/cdm/ContainerAdapter.js +1 -1
  32. package/src/main/js/sap/ushell/adapters/cdm/LaunchPageAdapter.js +12 -3
  33. package/src/main/js/sap/ushell/adapters/cdm/PagesCommonDataModelAdapter.js +1 -1
  34. package/src/main/js/sap/ushell/adapters/cdm/PersonalizationAdapter.js +1 -1
  35. package/src/main/js/sap/ushell/adapters/cdm/Ui5ComponentLoaderAdapter.js +1 -1
  36. package/src/main/js/sap/ushell/adapters/cdm/_LaunchPage/modifyHome.js +1 -1
  37. package/src/main/js/sap/ushell/adapters/cdm/_LaunchPage/readCatalogs.js +1 -1
  38. package/src/main/js/sap/ushell/adapters/cdm/_LaunchPage/readHome.js +1 -1
  39. package/src/main/js/sap/ushell/adapters/cdm/_LaunchPage/uri.transform.js +1 -1
  40. package/src/main/js/sap/ushell/adapters/cdm/util/AppForInbound.js +1 -1
  41. package/src/main/js/sap/ushell/adapters/cdm/util/cdmSiteUtils.js +1 -1
  42. package/src/main/js/sap/ushell/adapters/cdm/v3/AdapterBase.js +1 -1
  43. package/src/main/js/sap/ushell/adapters/cdm/v3/LaunchPageAdapter.js +12 -3
  44. package/src/main/js/sap/ushell/adapters/cdm/v3/StaticGroupsAdapter.js +1 -1
  45. package/src/main/js/sap/ushell/adapters/cdm/v3/_LaunchPage/readApplications.js +1 -1
  46. package/src/main/js/sap/ushell/adapters/cdm/v3/_LaunchPage/readCatalogs.js +1 -1
  47. package/src/main/js/sap/ushell/adapters/cdm/v3/_LaunchPage/readHome.js +1 -1
  48. package/src/main/js/sap/ushell/adapters/cdm/v3/_LaunchPage/readPages.js +1 -1
  49. package/src/main/js/sap/ushell/adapters/cdm/v3/_LaunchPage/readUtils.js +1 -1
  50. package/src/main/js/sap/ushell/adapters/cdm/v3/_LaunchPage/readVisualizations.js +1 -1
  51. package/src/main/js/sap/ushell/adapters/cep/MenuAdapter.js +4 -5
  52. package/src/main/js/sap/ushell/adapters/cep/NavTargetResolutionAdapter.js +1 -1
  53. package/src/main/js/sap/ushell/adapters/cep/SearchCEPAdapter.js +1 -1
  54. package/src/main/js/sap/ushell/adapters/cflp/UserDefaultParameterPersistenceAdapter.js +1 -1
  55. package/src/main/js/sap/ushell/adapters/local/AdapterContainer.js +1 -1
  56. package/src/main/js/sap/ushell/adapters/local/AppStateAdapter.js +1 -1
  57. package/src/main/js/sap/ushell/adapters/local/ClientSideTargetResolutionAdapter.js +1 -1
  58. package/src/main/js/sap/ushell/adapters/local/ContainerAdapter.js +1 -1
  59. package/src/main/js/sap/ushell/adapters/local/LaunchPageAdapter.js +20 -4
  60. package/src/main/js/sap/ushell/adapters/local/NavTargetResolutionAdapter.js +1 -1
  61. package/src/main/js/sap/ushell/adapters/local/PageBuildingAdapter.js +1 -1
  62. package/src/main/js/sap/ushell/adapters/local/PagePersistenceAdapter.js +1 -1
  63. package/src/main/js/sap/ushell/adapters/local/PersonalizationAdapter.js +1 -1
  64. package/src/main/js/sap/ushell/adapters/local/SearchAdapter.js +1 -1
  65. package/src/main/js/sap/ushell/adapters/local/SearchCEPAdapter.js +1 -1
  66. package/src/main/js/sap/ushell/adapters/local/SupportTicketAdapter.js +1 -1
  67. package/src/main/js/sap/ushell/adapters/local/Ui5ComponentLoaderAdapter.js +1 -1
  68. package/src/main/js/sap/ushell/adapters/local/UserDefaultParameterPersistenceAdapter.js +1 -1
  69. package/src/main/js/sap/ushell/adapters/local/UserInfoAdapter.js +1 -1
  70. package/src/main/js/sap/ushell/appRuntime/ui5/AppCommunicationMgr.js +11 -6
  71. package/src/main/js/sap/ushell/appRuntime/ui5/AppRuntime.js +2 -4
  72. package/src/main/js/sap/ushell/appRuntime/ui5/AppRuntimeContext.js +43 -2
  73. package/src/main/js/sap/ushell/appRuntime/ui5/SessionHandlerAgent.js +14 -12
  74. package/src/main/js/sap/ushell/appRuntime/ui5/plugins/scriptAgent/Component.js +8 -8
  75. package/src/main/js/sap/ushell/appRuntime/ui5/services/AppLifeCycleAgent.js +7 -4
  76. package/src/main/js/sap/ushell/appRuntime/ui5/services/Bookmark.js +18 -7
  77. package/src/main/js/sap/ushell/appRuntime/ui5/services/ShellUIService.js +12 -66
  78. package/src/main/js/sap/ushell/appRuntime/ui5/services/adapters/Ui5ComponentLoaderAdapter.js +1 -1
  79. package/src/main/js/sap/ushell/bootstrap/_SchedulingAgent/logger.js +1 -1
  80. package/src/main/js/sap/ushell/bootstrap/_SchedulingAgent/state.js +1 -1
  81. package/src/main/js/sap/ushell/bootstrap/common/common.configure.ui5datetimeformat.js +1 -1
  82. package/src/main/js/sap/ushell/bootstrap/common/common.create.configcontract.core.js +29 -2
  83. package/src/main/js/sap/ushell/components/ComponentKeysHandler.js +4 -2
  84. package/src/main/js/sap/ushell/components/GroupsHelper.js +15 -13
  85. package/src/main/js/sap/ushell/components/HeaderManager.js +3 -1
  86. package/src/main/js/sap/ushell/components/HomepageManager.js +3 -6
  87. package/src/main/js/sap/ushell/components/MessagingHelper.js +2 -2
  88. package/src/main/js/sap/ushell/components/_HeaderManager/AddHeadEndItemsStrategy.js +4 -3
  89. package/src/main/js/sap/ushell/components/_HeaderManager/ControlManager.js +5 -7
  90. package/src/main/js/sap/ushell/components/_HeaderManager/ShellHeader.controller.js +12 -10
  91. package/src/main/js/sap/ushell/components/_HomepageManager/DashboardLoadingManager.js +3 -1
  92. package/src/main/js/sap/ushell/components/appfinder/AppFinderView.js +7 -4
  93. package/src/main/js/sap/ushell/components/appfinder/Catalog.controller.js +19 -5
  94. package/src/main/js/sap/ushell/components/appfinder/CatalogView.js +8 -12
  95. package/src/main/js/sap/ushell/components/appfinder/EasyAccess.controller.js +3 -3
  96. package/src/main/js/sap/ushell/components/appfinder/GroupListPopover.controller.js +3 -1
  97. package/src/main/js/sap/ushell/components/appfinder/HierarchyFolders.controller.js +1 -1
  98. package/src/main/js/sap/ushell/components/appfinder/HierarchyFoldersView.js +3 -1
  99. package/src/main/js/sap/ushell/components/appfinder/VisualizationOrganizerHelper.js +4 -3
  100. package/src/main/js/sap/ushell/components/appfinder/manifest.json +1 -1
  101. package/src/main/js/sap/ushell/components/applicationIntegration/AppLifeCycle.js +245 -377
  102. package/src/main/js/sap/ushell/components/applicationIntegration/Storage.js +22 -5
  103. package/src/main/js/sap/ushell/components/applicationIntegration/application/Application.js +23 -148
  104. package/src/main/js/sap/ushell/components/applicationIntegration/application/BlueBoxHandler.js +199 -306
  105. package/src/main/js/sap/ushell/components/applicationIntegration/application/BlueBoxesCache.js +42 -19
  106. package/src/main/js/sap/ushell/components/applicationIntegration/application/PostMessageAPI.js +90 -65
  107. package/src/main/js/sap/ushell/components/applicationIntegration/application/PostMessageAPIInterface.js +3 -4
  108. package/src/main/js/sap/ushell/components/applicationIntegration/application/PostMessageUtils.js +185 -0
  109. package/src/main/js/sap/ushell/components/applicationIntegration/application/WebGUIStatefulHandler.js +88 -0
  110. package/src/main/js/sap/ushell/components/applicationIntegration/configuration/AppMeta.js +3 -3
  111. package/src/main/js/sap/ushell/components/applicationIntegration/elements/model.js +1 -1
  112. package/src/main/js/sap/ushell/components/applicationIntegration/relatedServices/RelatedServices.js +1 -1
  113. package/src/main/js/sap/ushell/components/applicationIntegration/relatedShellElements/RelatedShellElements.js +1 -1
  114. package/src/main/js/sap/ushell/components/cards/Configuration.controller.js +2 -3
  115. package/src/main/js/sap/ushell/components/container/ApplicationContainer.js +24 -595
  116. package/src/main/js/sap/ushell/components/container/IframePOSTUtils.js +225 -0
  117. package/src/main/js/sap/ushell/components/contentFinder/Component.js +1 -1
  118. package/src/main/js/sap/ushell/components/contentFinder/controller/AppSearch.controller.js +1 -1
  119. package/src/main/js/sap/ushell/components/contentFinder/controller/ContentFinderDialog.controller.js +1 -1
  120. package/src/main/js/sap/ushell/components/contentFinder/controller/WidgetGallery.controller.js +1 -1
  121. package/src/main/js/sap/ushell/components/contentFinder/manifest.json +1 -1
  122. package/src/main/js/sap/ushell/components/contentFinder/model/GraphQLListBinding.js +2 -2
  123. package/src/main/js/sap/ushell/components/contentFinder/model/GraphQLModel.js +2 -2
  124. package/src/main/js/sap/ushell/components/contentFinder/model/formatter.js +2 -2
  125. package/src/main/js/sap/ushell/components/factsheet/Component.js +1 -1
  126. package/src/main/js/sap/ushell/components/homepage/ActionMode.js +12 -3
  127. package/src/main/js/sap/ushell/components/homepage/Component.js +3 -1
  128. package/src/main/js/sap/ushell/components/homepage/DashboardContent.controller.js +25 -0
  129. package/src/main/js/sap/ushell/components/homepage/DashboardContent.view.js +12 -10
  130. package/src/main/js/sap/ushell/components/homepage/DashboardGroupsBox.js +1 -3
  131. package/src/main/js/sap/ushell/components/homepage/DashboardUIActions.js +13 -11
  132. package/src/main/js/sap/ushell/components/homepage/FLPAnalytics.js +11 -11
  133. package/src/main/js/sap/ushell/components/homepage/manifest.json +1 -1
  134. package/src/main/js/sap/ushell/components/pages/ActionMode.js +6 -6
  135. package/src/main/js/sap/ushell/components/pages/Component.js +1 -1
  136. package/src/main/js/sap/ushell/components/pages/MyHomeImport.js +1 -1
  137. package/src/main/js/sap/ushell/components/pages/StateManager.js +3 -2
  138. package/src/main/js/sap/ushell/components/pages/controller/PageRuntime.controller.js +90 -20
  139. package/src/main/js/sap/ushell/components/pages/controller/PagesAndSpaceId.js +1 -1
  140. package/src/main/js/sap/ushell/components/pages/manifest.json +1 -1
  141. package/src/main/js/sap/ushell/components/pages/view/PageRuntime.view.xml +1 -45
  142. package/src/main/js/sap/ushell/components/runtimeSwitcher/controller/RuntimeSwitcher.controller.js +4 -4
  143. package/src/main/js/sap/ushell/components/runtimeSwitcher/manifest.json +1 -1
  144. package/src/main/js/sap/ushell/components/shell/MenuBar/manifest.json +1 -1
  145. package/src/main/js/sap/ushell/components/shell/NavigationBarMenu/controller/NavigationBarMenu.controller.js +182 -46
  146. package/src/main/js/sap/ushell/components/shell/NavigationBarMenu/manifest.json +1 -1
  147. package/src/main/js/sap/ushell/components/shell/NavigationBarMenu/view/CustomTreeItem.fragment.xml +4 -4
  148. package/src/main/js/sap/ushell/components/shell/NavigationBarMenu/view/NavigationBarMenuPopover.fragment.xml +8 -1
  149. package/src/main/js/sap/ushell/components/shell/Notifications/Component.js +14 -12
  150. package/src/main/js/sap/ushell/components/shell/PostLoadingHeaderEnhancement/Component.js +1 -3
  151. package/src/main/js/sap/ushell/components/shell/ProductSwitch/Component.js +8 -6
  152. package/src/main/js/sap/ushell/components/shell/Search/manifest.json +1 -1
  153. package/src/main/js/sap/ushell/components/shell/SearchCEP/Component.js +16 -4
  154. package/src/main/js/sap/ushell/components/shell/SearchCEP/SearchCEP.controller.js +34 -40
  155. package/src/main/js/sap/ushell/components/shell/SearchCEP/SearchProviders/FrequentActivityProvider.js +1 -1
  156. package/src/main/js/sap/ushell/components/shell/SearchCEP/SearchProviders/RecentSearchProvider.js +1 -1
  157. package/src/main/js/sap/ushell/components/shell/SearchCEP/SearchProviders/SearchProvider.js +1 -1
  158. package/src/main/js/sap/ushell/components/shell/SearchCEP/SearchProviders/SearchServiceProvider.js +4 -7
  159. package/src/main/js/sap/ushell/components/shell/Settings/Component.js +1 -1
  160. package/src/main/js/sap/ushell/components/shell/Settings/ErrorMessageHelper.js +4 -2
  161. package/src/main/js/sap/ushell/components/shell/Settings/UserSettings.controller.js +24 -26
  162. package/src/main/js/sap/ushell/components/shell/Settings/appearance/Appearance.controller.js +8 -7
  163. package/src/main/js/sap/ushell/components/shell/Settings/userAccount/UserAccountSelector.controller.js +3 -1
  164. package/src/main/js/sap/ushell/components/shell/Settings/userAccount/UserAccountSetting.fragment.xml +2 -0
  165. package/src/main/js/sap/ushell/components/shell/Settings/userDefaults/UserDefaultsForm.js +5 -1
  166. package/src/main/js/sap/ushell/components/shell/Settings/userDefaults/controller/UserDefaultsSetting.controller.js +20 -2
  167. package/src/main/js/sap/ushell/components/shell/Settings/userLanguageRegion/UserLanguageRegionEntry.js +12 -22
  168. package/src/main/js/sap/ushell/components/shell/UserActionsMenu/Component.js +4 -2
  169. package/src/main/js/sap/ushell/components/shell/UserActionsMenu/UserActionsMenu.controller.js +50 -46
  170. package/src/main/js/sap/ushell/components/shell/UserImage/Component.js +1 -1
  171. package/src/main/js/sap/ushell/components/tiles/applauncher/StaticTile.controller.js +11 -3
  172. package/src/main/js/sap/ushell/components/tiles/applauncherdynamic/DynamicTile.controller.js +11 -2
  173. package/src/main/js/sap/ushell/components/tiles/cdm/applauncher/StaticTile.controller.js +11 -4
  174. package/src/main/js/sap/ushell/components/tiles/cdm/applauncherdynamic/DynamicTile.controller.js +14 -3
  175. package/src/main/js/sap/ushell/components/visualizationOrganizer/Component.js +28 -28
  176. package/src/main/js/sap/ushell/components/workPageBuilder/Component.js +1 -1
  177. package/src/main/js/sap/ushell/components/workPageBuilder/controller/WorkPageBuilder.accessibility.js +1 -1
  178. package/src/main/js/sap/ushell/components/workPageBuilder/controller/WorkPageBuilder.controller.js +204 -28
  179. package/src/main/js/sap/ushell/components/workPageBuilder/controller/WorkPageHost.js +60 -4
  180. package/src/main/js/sap/ushell/components/workPageBuilder/controls/WorkPage.js +1 -1
  181. package/src/main/js/sap/ushell/components/workPageBuilder/controls/WorkPageButton.js +1 -1
  182. package/src/main/js/sap/ushell/components/workPageBuilder/controls/WorkPageCell.js +1 -1
  183. package/src/main/js/sap/ushell/components/workPageBuilder/controls/WorkPageColumn.js +1 -1
  184. package/src/main/js/sap/ushell/components/workPageBuilder/controls/WorkPageColumnResizer.js +1 -1
  185. package/src/main/js/sap/ushell/components/workPageBuilder/controls/WorkPageRow.js +1 -1
  186. package/src/main/js/sap/ushell/components/workPageBuilder/manifest.json +1 -1
  187. package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources.properties +10 -2
  188. package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_ar.properties +5 -2
  189. package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_bg.properties +5 -2
  190. package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_ca.properties +5 -2
  191. package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_cs.properties +5 -2
  192. package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_cy.properties +5 -2
  193. package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_da.properties +5 -2
  194. package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_de.properties +5 -2
  195. package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_el.properties +5 -2
  196. package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_en.properties +5 -2
  197. package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_en_GB.properties +5 -2
  198. package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_en_US_sappsd.properties +5 -2
  199. package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_en_US_saprigi.properties +5 -2
  200. package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_es.properties +5 -2
  201. package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_es_MX.properties +5 -2
  202. package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_et.properties +5 -2
  203. package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_fi.properties +5 -2
  204. package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_fr.properties +5 -2
  205. package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_fr_CA.properties +5 -2
  206. package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_hi.properties +5 -2
  207. package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_hr.properties +5 -2
  208. package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_hu.properties +5 -2
  209. package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_id.properties +5 -2
  210. package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_it.properties +5 -2
  211. package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_iw.properties +5 -2
  212. package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_ja.properties +5 -2
  213. package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_kk.properties +5 -2
  214. package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_ko.properties +5 -2
  215. package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_lt.properties +5 -2
  216. package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_lv.properties +5 -2
  217. package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_ms.properties +5 -2
  218. package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_nl.properties +5 -2
  219. package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_no.properties +5 -2
  220. package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_pl.properties +5 -2
  221. package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_pt.properties +5 -2
  222. package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_pt_PT.properties +5 -2
  223. package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_ro.properties +5 -2
  224. package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_ru.properties +5 -2
  225. package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_sh.properties +5 -2
  226. package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_sk.properties +5 -2
  227. package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_sl.properties +5 -2
  228. package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_sv.properties +5 -2
  229. package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_th.properties +5 -2
  230. package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_tr.properties +5 -2
  231. package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_uk.properties +5 -2
  232. package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_vi.properties +5 -2
  233. package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_zh_CN.properties +5 -2
  234. package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_zh_TW.properties +5 -2
  235. package/src/main/js/sap/ushell/components/workPageRuntime/Component.js +1 -1
  236. package/src/main/js/sap/ushell/components/workPageRuntime/controller/WorkPageRuntime.controller.js +2 -2
  237. package/src/main/js/sap/ushell/components/workPageRuntime/manifest.json +1 -1
  238. package/src/main/js/sap/ushell/components/workPageRuntime/services/NavigationResolver.js +11 -11
  239. package/src/main/js/sap/ushell/components/workPageRuntime/services/WorkPage.js +4 -4
  240. package/src/main/js/sap/ushell/designtime/ApplicationContainer.designtime.js +1 -1
  241. package/src/main/js/sap/ushell/library.js +1 -1
  242. package/src/main/js/sap/ushell/navigationMode.js +1 -1
  243. package/src/main/js/sap/ushell/performance/FesrEnhancer.js +20 -21
  244. package/src/main/js/sap/ushell/performance/ShellAnalytics.js +47 -32
  245. package/src/main/js/sap/ushell/performance/StatisticalRecord.js +65 -31
  246. package/src/main/js/sap/ushell/plugins/appwarmup/Component.js +1 -1
  247. package/src/main/js/sap/ushell/renderers/fiori2/Renderer.js +2 -2
  248. package/src/main/js/sap/ushell/renderers/fiori2/Shell.controller.js +78 -75
  249. package/src/main/js/sap/ushell/renderers/fiori2/Shell.view.js +2 -2
  250. package/src/main/js/sap/ushell/renderers/fiori2/ShellAsync.view.js +1 -1
  251. package/src/main/js/sap/ushell/renderers/fiori2/allMyApps/AllMyApps.controller.js +93 -94
  252. package/src/main/js/sap/ushell/renderers/fiori2/allMyApps/AllMyAppsKeyboardHandler.js +8 -8
  253. package/src/main/js/sap/ushell/renderers/fiori2/resources/resources.properties +4 -2
  254. package/src/main/js/sap/ushell/renderers/fiori2/resources/resources_ar.properties +2 -1
  255. package/src/main/js/sap/ushell/renderers/fiori2/resources/resources_bg.properties +2 -1
  256. package/src/main/js/sap/ushell/renderers/fiori2/resources/resources_ca.properties +2 -1
  257. package/src/main/js/sap/ushell/renderers/fiori2/resources/resources_cs.properties +2 -1
  258. package/src/main/js/sap/ushell/renderers/fiori2/resources/resources_cy.properties +2 -1
  259. package/src/main/js/sap/ushell/renderers/fiori2/resources/resources_da.properties +2 -1
  260. package/src/main/js/sap/ushell/renderers/fiori2/resources/resources_de.properties +2 -1
  261. package/src/main/js/sap/ushell/renderers/fiori2/resources/resources_el.properties +2 -1
  262. package/src/main/js/sap/ushell/renderers/fiori2/resources/resources_en.properties +2 -1
  263. package/src/main/js/sap/ushell/renderers/fiori2/resources/resources_en_GB.properties +2 -1
  264. package/src/main/js/sap/ushell/renderers/fiori2/resources/resources_en_US_sappsd.properties +2 -1
  265. package/src/main/js/sap/ushell/renderers/fiori2/resources/resources_en_US_saprigi.properties +2 -1
  266. package/src/main/js/sap/ushell/renderers/fiori2/resources/resources_en_US_saptrc.properties +1 -1
  267. package/src/main/js/sap/ushell/renderers/fiori2/resources/resources_es.properties +2 -1
  268. package/src/main/js/sap/ushell/renderers/fiori2/resources/resources_es_MX.properties +2 -1
  269. package/src/main/js/sap/ushell/renderers/fiori2/resources/resources_et.properties +2 -1
  270. package/src/main/js/sap/ushell/renderers/fiori2/resources/resources_fi.properties +2 -1
  271. package/src/main/js/sap/ushell/renderers/fiori2/resources/resources_fr.properties +2 -1
  272. package/src/main/js/sap/ushell/renderers/fiori2/resources/resources_fr_CA.properties +2 -1
  273. package/src/main/js/sap/ushell/renderers/fiori2/resources/resources_hi.properties +2 -1
  274. package/src/main/js/sap/ushell/renderers/fiori2/resources/resources_hr.properties +14 -13
  275. package/src/main/js/sap/ushell/renderers/fiori2/resources/resources_hu.properties +2 -1
  276. package/src/main/js/sap/ushell/renderers/fiori2/resources/resources_id.properties +2 -1
  277. package/src/main/js/sap/ushell/renderers/fiori2/resources/resources_it.properties +2 -1
  278. package/src/main/js/sap/ushell/renderers/fiori2/resources/resources_iw.properties +2 -1
  279. package/src/main/js/sap/ushell/renderers/fiori2/resources/resources_ja.properties +2 -1
  280. package/src/main/js/sap/ushell/renderers/fiori2/resources/resources_kk.properties +2 -1
  281. package/src/main/js/sap/ushell/renderers/fiori2/resources/resources_ko.properties +2 -1
  282. package/src/main/js/sap/ushell/renderers/fiori2/resources/resources_lt.properties +2 -1
  283. package/src/main/js/sap/ushell/renderers/fiori2/resources/resources_lv.properties +2 -1
  284. package/src/main/js/sap/ushell/renderers/fiori2/resources/resources_ms.properties +2 -1
  285. package/src/main/js/sap/ushell/renderers/fiori2/resources/resources_nl.properties +2 -1
  286. package/src/main/js/sap/ushell/renderers/fiori2/resources/resources_no.properties +2 -1
  287. package/src/main/js/sap/ushell/renderers/fiori2/resources/resources_pl.properties +2 -1
  288. package/src/main/js/sap/ushell/renderers/fiori2/resources/resources_pt.properties +2 -1
  289. package/src/main/js/sap/ushell/renderers/fiori2/resources/resources_pt_PT.properties +2 -1
  290. package/src/main/js/sap/ushell/renderers/fiori2/resources/resources_ro.properties +2 -1
  291. package/src/main/js/sap/ushell/renderers/fiori2/resources/resources_ru.properties +2 -1
  292. package/src/main/js/sap/ushell/renderers/fiori2/resources/resources_sh.properties +2 -1
  293. package/src/main/js/sap/ushell/renderers/fiori2/resources/resources_sk.properties +2 -1
  294. package/src/main/js/sap/ushell/renderers/fiori2/resources/resources_sl.properties +2 -1
  295. package/src/main/js/sap/ushell/renderers/fiori2/resources/resources_sv.properties +2 -1
  296. package/src/main/js/sap/ushell/renderers/fiori2/resources/resources_th.properties +2 -1
  297. package/src/main/js/sap/ushell/renderers/fiori2/resources/resources_tr.properties +2 -1
  298. package/src/main/js/sap/ushell/renderers/fiori2/resources/resources_uk.properties +2 -1
  299. package/src/main/js/sap/ushell/renderers/fiori2/resources/resources_vi.properties +2 -1
  300. package/src/main/js/sap/ushell/renderers/fiori2/resources/resources_zh_CN.properties +2 -1
  301. package/src/main/js/sap/ushell/renderers/fiori2/resources/resources_zh_TW.properties +2 -1
  302. package/src/main/js/sap/ushell/renderers/fiori2/search/searchComponent/manifest.json +1 -1
  303. package/src/main/js/sap/ushell/services/AppConfiguration.js +24 -2
  304. package/src/main/js/sap/ushell/services/AppLifeCycle.js +18 -16
  305. package/src/main/js/sap/ushell/services/AppState.js +1 -1
  306. package/src/main/js/sap/ushell/services/Bookmark.js +54 -20
  307. package/src/main/js/sap/ushell/services/ClientSideTargetResolution.js +1 -1
  308. package/src/main/js/sap/ushell/services/CommonDataModel.js +1 -1
  309. package/src/main/js/sap/ushell/services/Configuration.js +1 -1
  310. package/src/main/js/sap/ushell/services/ConfigurationDefaults.js +1 -1
  311. package/src/main/js/sap/ushell/services/ContentExtensionAdapterFactory.js +1 -1
  312. package/src/main/js/sap/ushell/services/CrossApplicationNavigation.js +1 -1
  313. package/src/main/js/sap/ushell/services/DarkModeSupport.js +1 -1
  314. package/src/main/js/sap/ushell/services/LaunchPage.js +1 -1
  315. package/src/main/js/sap/ushell/services/Menu.js +1 -1
  316. package/src/main/js/sap/ushell/services/Message.js +1 -1
  317. package/src/main/js/sap/ushell/services/MessageBroker.js +1 -1
  318. package/src/main/js/sap/ushell/services/NavigationDataProvider.js +1 -1
  319. package/src/main/js/sap/ushell/services/PageBuilding.js +1 -1
  320. package/src/main/js/sap/ushell/services/PagePersistence.js +1 -1
  321. package/src/main/js/sap/ushell/services/PageReferencing.js +1 -1
  322. package/src/main/js/sap/ushell/services/Pages.js +1 -1
  323. package/src/main/js/sap/ushell/services/Personalization.js +1 -1
  324. package/src/main/js/sap/ushell/services/PluginManager.js +30 -8
  325. package/src/main/js/sap/ushell/services/ReferenceResolver.js +1 -1
  326. package/src/main/js/sap/ushell/services/Search.js +1 -1
  327. package/src/main/js/sap/ushell/services/SearchCEP.js +8 -2
  328. package/src/main/js/sap/ushell/services/SearchableContent.js +1 -1
  329. package/src/main/js/sap/ushell/services/SmartNavigation.js +1 -1
  330. package/src/main/js/sap/ushell/services/SpaceContent.js +12 -4
  331. package/src/main/js/sap/ushell/services/UITracer.js +295 -33
  332. package/src/main/js/sap/ushell/services/URLParsing.js +1 -1
  333. package/src/main/js/sap/ushell/services/URLShortening.js +1 -1
  334. package/src/main/js/sap/ushell/services/URLTemplate.js +1 -1
  335. package/src/main/js/sap/ushell/services/Ui5ComponentLoader.js +1 -1
  336. package/src/main/js/sap/ushell/services/UserDefaultParameterPersistence.js +1 -1
  337. package/src/main/js/sap/ushell/services/UserDefaultParameters.js +1 -1
  338. package/src/main/js/sap/ushell/services/UserInfo.js +1 -1
  339. package/src/main/js/sap/ushell/services/UserRecents.js +1 -1
  340. package/src/main/js/sap/ushell/services/VisualizationDataProvider.js +1 -1
  341. package/src/main/js/sap/ushell/services/VisualizationInstantiation.js +1 -1
  342. package/src/main/js/sap/ushell/services/_ClientSideTargetResolution/Formatter.js +1 -1
  343. package/src/main/js/sap/ushell/services/_ClientSideTargetResolution/InboundIndex.js +1 -1
  344. package/src/main/js/sap/ushell/services/_ClientSideTargetResolution/InboundProvider.js +1 -1
  345. package/src/main/js/sap/ushell/services/_ClientSideTargetResolution/PrelaunchOperations.js +1 -1
  346. package/src/main/js/sap/ushell/services/_ClientSideTargetResolution/Search.js +1 -1
  347. package/src/main/js/sap/ushell/services/_ClientSideTargetResolution/StagedLogger.js +1 -1
  348. package/src/main/js/sap/ushell/services/_ClientSideTargetResolution/SystemContext.js +1 -1
  349. package/src/main/js/sap/ushell/services/_ClientSideTargetResolution/Utils.js +1 -1
  350. package/src/main/js/sap/ushell/services/_ClientSideTargetResolution/VirtualInbounds.js +1 -1
  351. package/src/main/js/sap/ushell/services/_ClientSideTargetResolution/XAppStateProcessing.js +1 -1
  352. package/src/main/js/sap/ushell/services/_CommonDataModel/SiteConverter.js +1 -1
  353. package/src/main/js/sap/ushell/services/_ContentExtensionAdapterFactory/ContentExtensionAdapterConfig.js +1 -1
  354. package/src/main/js/sap/ushell/services/_ContentExtensionAdapterFactory/FeaturedGroupConfig.js +1 -1
  355. package/src/main/js/sap/ushell/services/_CrossApplicationNavigation/utils.js +1 -1
  356. package/src/main/js/sap/ushell/services/_MessageBroker/MessageBrokerEngine.js +9 -46
  357. package/src/main/js/sap/ushell/services/_PageReferencing/PageReferencer.js +1 -1
  358. package/src/main/js/sap/ushell/services/_PluginManager/Extensions.js +1 -1
  359. package/src/main/js/sap/ushell/services/_PluginManager/HeaderExtensions.js +1 -1
  360. package/src/main/js/sap/ushell/services/_PluginManager/MenuExtensions.js +1 -1
  361. package/src/main/js/sap/ushell/services/_Ui5ComponentLoader/utils.js +1 -1
  362. package/src/main/js/sap/ushell/services/_VisualizationInstantiation/VizInstance.js +10 -3
  363. package/src/main/js/sap/ushell/services/_VisualizationInstantiation/VizInstanceLink.js +12 -4
  364. package/src/main/js/sap/ushell/support/plugins/flpConfig/FlpConfigurationPlugin.js +1 -1
  365. package/src/main/js/sap/ushell/themes/base/MenuBar.less +3 -3
  366. package/src/main/js/sap/ushell/themes/base/SearchCEP.less +1 -1
  367. package/src/main/js/sap/ushell/themes/base/ShellAppTitle.less +10 -30
  368. package/src/main/js/sap/ushell/themes/base/fonts/BusinessSuiteInAppSymbols.eot +0 -0
  369. package/src/main/js/sap/ushell/themes/base/fonts/BusinessSuiteInAppSymbols.json +2 -1
  370. package/src/main/js/sap/ushell/themes/base/fonts/BusinessSuiteInAppSymbols.ttf +0 -0
  371. package/src/main/js/sap/ushell/themes/base/fonts/BusinessSuiteInAppSymbols.woff +0 -0
  372. package/src/main/js/sap/ushell/themes/base/fonts/BusinessSuiteInAppSymbols.woff2 +0 -0
  373. package/src/main/js/sap/ushell/themes/base/fonts/horizon/BusinessSuiteInAppSymbols.eot +0 -0
  374. package/src/main/js/sap/ushell/themes/base/fonts/horizon/BusinessSuiteInAppSymbols.ttf +0 -0
  375. package/src/main/js/sap/ushell/themes/base/fonts/horizon/BusinessSuiteInAppSymbols.woff +0 -0
  376. package/src/main/js/sap/ushell/themes/base/fonts/horizon/BusinessSuiteInAppSymbols.woff2 +0 -0
  377. package/src/main/js/sap/ushell/themes/sap_belize/ShellHeader.less +1 -11
  378. package/src/main/js/sap/ushell/themes/sap_belize_hcb/ShellHeader.less +0 -11
  379. package/src/main/js/sap/ushell/themes/sap_belize_hcw/ShellHeader.less +1 -13
  380. package/src/main/js/sap/ushell/themes/sap_fiori_3/ShellHeader.less +1 -9
  381. package/src/main/js/sap/ushell/themes/sap_fiori_3_dark/ShellHeader.less +1 -9
  382. package/src/main/js/sap/ushell/themes/sap_fiori_3_hcb/ShellHeader.less +1 -10
  383. package/src/main/js/sap/ushell/themes/sap_fiori_3_hcw/ShellHeader.less +0 -12
  384. package/src/main/js/sap/ushell/themes/sap_hcb/ShellHeader.less +0 -12
  385. package/src/main/js/sap/ushell/themes/sap_horizon/ShellAppTitle.less +1 -9
  386. package/src/main/js/sap/ushell/themes/sap_horizon_dark/ShellAppTitle.less +1 -7
  387. package/src/main/js/sap/ushell/themes/sap_horizon_hcb/ShellAppTitle.less +0 -9
  388. package/src/main/js/sap/ushell/themes/sap_horizon_hcw/ShellAppTitle.less +0 -11
  389. package/src/main/js/sap/ushell/ui/QuickAccess.js +11 -2
  390. package/src/main/js/sap/ushell/ui/ShellHeader.fragment.xml +5 -1
  391. package/src/main/js/sap/ushell/ui/ShellHeader.js +5 -1
  392. package/src/main/js/sap/ushell/ui/ShellHeaderRenderer.js +1 -1
  393. package/src/main/js/sap/ushell/ui/cards/RecentActivitiesExtension.js +1 -1
  394. package/src/main/js/sap/ushell/ui/footerbar/AddBookmarkButton.js +5 -5
  395. package/src/main/js/sap/ushell/ui/launchpad/ExtendedChangeDetection.js +1 -1
  396. package/src/main/js/sap/ushell/ui/launchpad/Page.js +8 -16
  397. package/src/main/js/sap/ushell/ui/launchpad/Section.js +732 -171
  398. package/src/main/js/sap/ushell/ui/launchpad/SectionRenderer.js +66 -0
  399. package/src/main/js/sap/ushell/ui/launchpad/section/CompactArea.js +14 -1
  400. package/src/main/js/sap/ushell/ui/shell/ShellAppTitle.js +115 -63
  401. package/src/main/js/sap/ushell/ui/shell/ShellHeadItem.js +1 -1
  402. package/src/main/js/sap/ushell/ui/shell/ShellNavigationMenu.js +30 -76
  403. package/src/main/js/sap/ushell/ui/shell/SysInfoBar.js +1 -1
  404. package/src/main/js/sap/ushell/ui/shell/ToolAreaItem.js +1 -1
  405. package/src/main/js/sap/ushell/ui/utils.js +1 -1
  406. package/src/main/js/sap/ushell/ui5service/ShellUIService.js +1 -1
  407. package/src/main/js/sap/ushell/ui5service/UserStatus.js +1 -1
  408. package/src/main/js/sap/ushell/utils/DynamicTileRequest.js +23 -2
  409. package/src/main/js/sap/ushell/utils/UrlShortening.js +1 -1
  410. package/src/main/js/sap/ushell/utils.js +108 -0
  411. package/src/test/js/sap/ushell/bootstrap/sandbox.js +1 -1
  412. package/ui5.yaml +1 -1
  413. package/src/main/js/sap/ushell/appRuntime/ui5/AppRuntimePostMessage.js +0 -82
  414. package/src/main/js/sap/ushell/appRuntime/ui5/AppRuntimePostMessageAPI.js +0 -34
  415. package/src/main/js/sap/ushell/appRuntime/ui5/plugins/scriptAgent/i18n/i18n.properties +0 -5
  416. package/src/main/js/sap/ushell/appRuntime/ui5/plugins/scriptAgent/i18n/i18n_ar.properties +0 -2
  417. package/src/main/js/sap/ushell/appRuntime/ui5/plugins/scriptAgent/i18n/i18n_bg.properties +0 -2
  418. package/src/main/js/sap/ushell/appRuntime/ui5/plugins/scriptAgent/i18n/i18n_ca.properties +0 -2
  419. package/src/main/js/sap/ushell/appRuntime/ui5/plugins/scriptAgent/i18n/i18n_cs.properties +0 -2
  420. package/src/main/js/sap/ushell/appRuntime/ui5/plugins/scriptAgent/i18n/i18n_cy.properties +0 -2
  421. package/src/main/js/sap/ushell/appRuntime/ui5/plugins/scriptAgent/i18n/i18n_da.properties +0 -2
  422. package/src/main/js/sap/ushell/appRuntime/ui5/plugins/scriptAgent/i18n/i18n_de.properties +0 -2
  423. package/src/main/js/sap/ushell/appRuntime/ui5/plugins/scriptAgent/i18n/i18n_el.properties +0 -2
  424. package/src/main/js/sap/ushell/appRuntime/ui5/plugins/scriptAgent/i18n/i18n_en.properties +0 -2
  425. package/src/main/js/sap/ushell/appRuntime/ui5/plugins/scriptAgent/i18n/i18n_en_GB.properties +0 -2
  426. package/src/main/js/sap/ushell/appRuntime/ui5/plugins/scriptAgent/i18n/i18n_en_US_sappsd.properties +0 -2
  427. package/src/main/js/sap/ushell/appRuntime/ui5/plugins/scriptAgent/i18n/i18n_en_US_saprigi.properties +0 -2
  428. package/src/main/js/sap/ushell/appRuntime/ui5/plugins/scriptAgent/i18n/i18n_en_US_saptrc.properties +0 -2
  429. package/src/main/js/sap/ushell/appRuntime/ui5/plugins/scriptAgent/i18n/i18n_es.properties +0 -2
  430. package/src/main/js/sap/ushell/appRuntime/ui5/plugins/scriptAgent/i18n/i18n_es_MX.properties +0 -2
  431. package/src/main/js/sap/ushell/appRuntime/ui5/plugins/scriptAgent/i18n/i18n_et.properties +0 -2
  432. package/src/main/js/sap/ushell/appRuntime/ui5/plugins/scriptAgent/i18n/i18n_fi.properties +0 -2
  433. package/src/main/js/sap/ushell/appRuntime/ui5/plugins/scriptAgent/i18n/i18n_fr.properties +0 -2
  434. package/src/main/js/sap/ushell/appRuntime/ui5/plugins/scriptAgent/i18n/i18n_fr_CA.properties +0 -2
  435. package/src/main/js/sap/ushell/appRuntime/ui5/plugins/scriptAgent/i18n/i18n_hi.properties +0 -2
  436. package/src/main/js/sap/ushell/appRuntime/ui5/plugins/scriptAgent/i18n/i18n_hr.properties +0 -2
  437. package/src/main/js/sap/ushell/appRuntime/ui5/plugins/scriptAgent/i18n/i18n_hu.properties +0 -2
  438. package/src/main/js/sap/ushell/appRuntime/ui5/plugins/scriptAgent/i18n/i18n_id.properties +0 -2
  439. package/src/main/js/sap/ushell/appRuntime/ui5/plugins/scriptAgent/i18n/i18n_it.properties +0 -2
  440. package/src/main/js/sap/ushell/appRuntime/ui5/plugins/scriptAgent/i18n/i18n_iw.properties +0 -2
  441. package/src/main/js/sap/ushell/appRuntime/ui5/plugins/scriptAgent/i18n/i18n_ja.properties +0 -2
  442. package/src/main/js/sap/ushell/appRuntime/ui5/plugins/scriptAgent/i18n/i18n_kk.properties +0 -2
  443. package/src/main/js/sap/ushell/appRuntime/ui5/plugins/scriptAgent/i18n/i18n_ko.properties +0 -2
  444. package/src/main/js/sap/ushell/appRuntime/ui5/plugins/scriptAgent/i18n/i18n_lt.properties +0 -2
  445. package/src/main/js/sap/ushell/appRuntime/ui5/plugins/scriptAgent/i18n/i18n_lv.properties +0 -2
  446. package/src/main/js/sap/ushell/appRuntime/ui5/plugins/scriptAgent/i18n/i18n_ms.properties +0 -2
  447. package/src/main/js/sap/ushell/appRuntime/ui5/plugins/scriptAgent/i18n/i18n_nl.properties +0 -2
  448. package/src/main/js/sap/ushell/appRuntime/ui5/plugins/scriptAgent/i18n/i18n_no.properties +0 -2
  449. package/src/main/js/sap/ushell/appRuntime/ui5/plugins/scriptAgent/i18n/i18n_pl.properties +0 -2
  450. package/src/main/js/sap/ushell/appRuntime/ui5/plugins/scriptAgent/i18n/i18n_pt.properties +0 -2
  451. package/src/main/js/sap/ushell/appRuntime/ui5/plugins/scriptAgent/i18n/i18n_pt_PT.properties +0 -2
  452. package/src/main/js/sap/ushell/appRuntime/ui5/plugins/scriptAgent/i18n/i18n_ro.properties +0 -2
  453. package/src/main/js/sap/ushell/appRuntime/ui5/plugins/scriptAgent/i18n/i18n_ru.properties +0 -2
  454. package/src/main/js/sap/ushell/appRuntime/ui5/plugins/scriptAgent/i18n/i18n_sh.properties +0 -2
  455. package/src/main/js/sap/ushell/appRuntime/ui5/plugins/scriptAgent/i18n/i18n_sk.properties +0 -2
  456. package/src/main/js/sap/ushell/appRuntime/ui5/plugins/scriptAgent/i18n/i18n_sl.properties +0 -2
  457. package/src/main/js/sap/ushell/appRuntime/ui5/plugins/scriptAgent/i18n/i18n_sv.properties +0 -2
  458. package/src/main/js/sap/ushell/appRuntime/ui5/plugins/scriptAgent/i18n/i18n_th.properties +0 -2
  459. package/src/main/js/sap/ushell/appRuntime/ui5/plugins/scriptAgent/i18n/i18n_tr.properties +0 -2
  460. package/src/main/js/sap/ushell/appRuntime/ui5/plugins/scriptAgent/i18n/i18n_uk.properties +0 -2
  461. package/src/main/js/sap/ushell/appRuntime/ui5/plugins/scriptAgent/i18n/i18n_vi.properties +0 -2
  462. package/src/main/js/sap/ushell/appRuntime/ui5/plugins/scriptAgent/i18n/i18n_zh_CN.properties +0 -2
  463. package/src/main/js/sap/ushell/appRuntime/ui5/plugins/scriptAgent/i18n/i18n_zh_TW.properties +0 -2
  464. package/src/main/js/sap/ushell/appRuntime/ui5/plugins/scriptAgent/manifest.json +0 -66
  465. package/src/main/js/sap/ushell/ui/launchpad/Section.control.xml +0 -243
@@ -3,54 +3,97 @@
3
3
  /**
4
4
  * @fileOverview Provides control sap.ushell.ui.launchpad.Section
5
5
  *
6
- * @version 1.116.0
6
+ * @version 1.117.0
7
7
  */
8
8
  sap.ui.define([
9
9
  "sap/base/Log",
10
10
  "sap/base/util/deepClone",
11
+ "sap/f/dnd/GridDropInfo",
12
+ "sap/f/GridContainer",
11
13
  "sap/f/GridContainerItemLayoutData",
14
+ "sap/f/GridContainerSettings",
15
+ "sap/m/Button",
16
+ "sap/m/Input",
17
+ "sap/m/Label",
12
18
  "sap/m/library",
19
+ "sap/m/Text",
20
+ "sap/m/Title",
21
+ "sap/m/ToolbarSpacer",
22
+ "sap/m/OverflowToolbar",
23
+ "sap/m/OverflowToolbarLayoutData",
24
+ "sap/ui/core/Control",
13
25
  "sap/ui/core/Core",
26
+ "sap/ui/core/CustomData",
27
+ "sap/ui/core/dnd/DragInfo",
28
+ "sap/ui/core/dnd/DropInfo",
14
29
  "sap/ui/core/InvisibleMessage",
15
30
  "sap/ui/core/library",
16
- "sap/ui/core/XMLComposite",
17
31
  "sap/ui/events/KeyCodes",
18
32
  "sap/ui/model/Filter",
19
33
  "sap/ushell/resources",
20
34
  "sap/ushell/ui/launchpad/ExtendedChangeDetection",
21
35
  "sap/ushell/library",
22
- "sap/f/dnd/GridDropInfo",
23
- "sap/f/GridContainer",
24
36
  "sap/ushell/ui/launchpad/section/CompactArea",
25
- "sap/ui/core/Element"
37
+ "sap/ui/core/Element",
38
+ "sap/ushell/ui/launchpad/SectionRenderer"
26
39
  ], function (
27
40
  Log,
28
41
  deepClone,
42
+ GridDropInfo,
43
+ GridContainer,
29
44
  GridContainerItemLayoutData,
45
+ GridContainerSettings,
46
+ Button,
47
+ Input,
48
+ Label,
30
49
  mobileLibrary,
50
+ Text,
51
+ Title,
52
+ ToolbarSpacer,
53
+ OverflowToolbar,
54
+ OverflowToolbarLayoutData,
55
+ Control,
31
56
  Core,
57
+ CustomData,
58
+ DragInfo,
59
+ DropInfo,
32
60
  InvisibleMessage,
33
61
  coreLibrary,
34
- XMLComposite,
35
62
  KeyCodes,
36
63
  Filter,
37
64
  resources,
38
65
  ExtendedChangeDetection,
39
66
  ushellLibrary,
40
- // XMLComposite dependencies
41
- GridDropInfo,
42
- GridContainer,
43
67
  CompactArea,
44
- Element
68
+ Element,
69
+ SectionRenderer
45
70
  ) {
46
71
  "use strict";
47
72
 
73
+ // shortcut for sap.m.ButtonType
74
+ var ButtonType = mobileLibrary.ButtonType;
75
+
76
+ // shortcut for sap.m.OverflowToolbarPriority
77
+ var OverflowToolbarPriority = mobileLibrary.OverflowToolbarPriority;
78
+
48
79
  // shortcut for sap.m.TileSizeBehavior
49
80
  var TileSizeBehavior = mobileLibrary.TileSizeBehavior;
50
81
 
82
+ // shortcut for sap.ui.core.dnd.DropLayout
83
+ var DropLayout = coreLibrary.dnd.DropLayout;
84
+
85
+ // shortcut for sap.ui.core.dnd.DropPosition
86
+ var DropPosition = coreLibrary.dnd.DropPosition;
87
+
51
88
  // shortcut for sap.ui.core.InvisibleMessageMode
52
89
  var InvisibleMessageMode = coreLibrary.InvisibleMessageMode;
53
90
 
91
+ // shortcut for sap.ui.core.TextAlign
92
+ var TextAlign = coreLibrary.TextAlign;
93
+
94
+ // shortcut for sap.ui.core.TitleLevel
95
+ var TitleLevel = coreLibrary.TitleLevel;
96
+
54
97
  // shortcut for sap.ushell.DisplayFormat
55
98
  var DisplayFormat = ushellLibrary.DisplayFormat;
56
99
 
@@ -117,22 +160,17 @@ sap.ui.define([
117
160
  * @extends sap.ui.core.XMLComposite
118
161
  *
119
162
  * @author SAP SE
120
- * @version 1.116.0
163
+ * @version 1.117.0
121
164
  *
122
165
  * @private
123
166
  * @alias sap.ushell.ui.launchpad.Section
124
167
  * @ui5-metamodel This control/element also will be described in the UI5 (legacy) designtime metamodel
125
168
  */
126
- var Section = XMLComposite.extend("sap.ushell.ui.launchpad.Section", /** @lends sap.ushell.ui.launchpad.Section.prototype */ {
169
+ var Section = Control.extend("sap.ushell.ui.launchpad.Section", /** @lends sap.ushell.ui.launchpad.Section.prototype */ {
127
170
  metadata: {
128
171
  library: "sap.ushell",
129
172
  properties: {
130
173
 
131
- /**
132
- * Specifies if the section should display in the edit mode.
133
- */
134
- editable: { type: "boolean", group: "Misc", defaultValue: false },
135
-
136
174
  /**
137
175
  * Specifies the data-help-id attribute of the Section.
138
176
  * If left empty, the attribute is not rendered.
@@ -151,6 +189,11 @@ sap.ui.define([
151
189
  */
152
190
  default: { type: "boolean", group: "Misc", defaultValue: false },
153
191
 
192
+ /**
193
+ * Specifies if the section should display in the edit mode.
194
+ */
195
+ editable: { type: "boolean", group: "Misc", defaultValue: false },
196
+
154
197
  /**
155
198
  * Specifies if the 'Add Visualization' button should be shown during editing of the section. (See editable property)
156
199
  * The 'Add Visualization' button triggers the add event when it is pressed.
@@ -191,6 +234,26 @@ sap.ui.define([
191
234
  */
192
235
  enableVisualizationReordering: { type: "boolean", group: "Behavior", defaultValue: false },
193
236
 
237
+ /**
238
+ * Specifies the default value for the grid container's gap property for different screen sizes
239
+ */
240
+ gridContainerGap: { type: "string", group: "Appearance", defaultValue: "0.5rem" },
241
+ gridContainerGapXS: { type: "string", group: "Appearance", defaultValue: "0.475rem" },
242
+ gridContainerGapS: { type: "string", group: "Appearance", defaultValue: "0.475rem" },
243
+ gridContainerGapM: { type: "string", group: "Appearance", defaultValue: "0.5rem" },
244
+ gridContainerGapL: { type: "string", group: "Appearance", defaultValue: "0.5rem" },
245
+ gridContainerGapXL: { type: "string", group: "Appearance", defaultValue: "0.5rem" },
246
+
247
+ /**
248
+ * Specifies the default value for the row size for different screen sizes
249
+ */
250
+ gridContainerRowSize: { type: "string", group: "Appearance", defaultValue: "5.25rem" },
251
+ gridContainerRowSizeXS: { type: "string", group: "Appearance", defaultValue: "4.375rem" },
252
+ gridContainerRowSizeS: { type: "string", group: "Appearance", defaultValue: "5.25rem" },
253
+ gridContainerRowSizeM: { type: "string", group: "Appearance", defaultValue: "5.25rem" },
254
+ gridContainerRowSizeL: { type: "string", group: "Appearance", defaultValue: "5.25rem" },
255
+ gridContainerRowSizeXL: { type: "string", group: "Appearance", defaultValue: "5.25rem" },
256
+
194
257
  /**
195
258
  * This text is displayed when the control contains no visualizations.
196
259
  */
@@ -219,35 +282,7 @@ sap.ui.define([
219
282
  /**
220
283
  * Specifies the sizeBehavior of the grid.
221
284
  */
222
- sizeBehavior: { type: "sap.m.TileSizeBehavior", group: "Misc", defaultValue: TileSizeBehavior.Responsive },
223
-
224
- /**
225
- * Specifies the default value for the grid container's gap property for different screen sizes
226
- */
227
- gridContainerGap: { type: "string", group: "Appearance", defaultValue: "0.5rem" },
228
- gridContainerGapXS: { type: "string", group: "Appearance", defaultValue: "0.475rem" },
229
- gridContainerGapS: { type: "string", group: "Appearance", defaultValue: "0.475rem" },
230
- gridContainerGapM: { type: "string", group: "Appearance", defaultValue: "0.5rem" },
231
- gridContainerGapL: { type: "string", group: "Appearance", defaultValue: "0.5rem" },
232
- gridContainerGapXL: { type: "string", group: "Appearance", defaultValue: "0.5rem" },
233
-
234
- /**
235
- * Specifies the default value for the row size for different screen sizes
236
- */
237
- gridContainerRowSize: { type: "string", group: "Appearance", defaultValue: "5.25rem" },
238
- gridContainerRowSizeXS: { type: "string", group: "Appearance", defaultValue: "4.375rem" },
239
- gridContainerRowSizeS: { type: "string", group: "Appearance", defaultValue: "5.25rem" },
240
- gridContainerRowSizeM: { type: "string", group: "Appearance", defaultValue: "5.25rem" },
241
- gridContainerRowSizeL: { type: "string", group: "Appearance", defaultValue: "5.25rem" },
242
- gridContainerRowSizeXL: { type: "string", group: "Appearance", defaultValue: "5.25rem" },
243
-
244
- /**
245
- * Specifies whether a drag operation with the mouse is happening.
246
- * This property is "bound" to the document dragstart / dragend event during initialization.
247
- * It should not be used in other places.
248
- * @private
249
- */
250
- _duringDrag: { type: "boolean", group: "Behavior", defaultValue: false }
285
+ sizeBehavior: { type: "sap.m.TileSizeBehavior", group: "Misc", defaultValue: TileSizeBehavior.Responsive }
251
286
  },
252
287
  defaultAggregation: "visualizations",
253
288
  aggregations: {
@@ -271,7 +306,7 @@ sap.ui.define([
271
306
  type: "sap.ui.core.Control",
272
307
  multiple: true,
273
308
  forwarding: {
274
- idSuffix: "--defaultArea",
309
+ idSuffix: "-defaultArea",
275
310
  aggregation: "items",
276
311
  forwardBinding: false
277
312
  },
@@ -285,7 +320,7 @@ sap.ui.define([
285
320
  type: "sap.ui.core.Control",
286
321
  multiple: true,
287
322
  forwarding: {
288
- idSuffix: "--flatArea",
323
+ idSuffix: "-flatArea",
289
324
  aggregation: "items",
290
325
  forwardBinding: false
291
326
  },
@@ -299,11 +334,41 @@ sap.ui.define([
299
334
  type: "sap.ui.core.Control",
300
335
  multiple: true,
301
336
  forwarding: {
302
- idSuffix: "--compactArea",
337
+ idSuffix: "-compactArea",
303
338
  aggregation: "items",
304
339
  forwardBinding: false
305
340
  },
306
341
  dnd: true
342
+ },
343
+ _title: {
344
+ type: "sap.m.Title",
345
+ multiple: false,
346
+ hidden: true
347
+ },
348
+ _header: {
349
+ type: "sap.m.OverflowToolbar",
350
+ multiple: false,
351
+ hidden: true
352
+ },
353
+ _noVisualizationsText: {
354
+ type: "sap.m.Text",
355
+ multiple: false,
356
+ hidden: true
357
+ },
358
+ _defaultArea: {
359
+ type: "sap.f.GridContainer",
360
+ multiple: false,
361
+ hidden: true
362
+ },
363
+ _flatArea: {
364
+ type: "sap.f.GridContainer",
365
+ multiple: false,
366
+ hidden: true
367
+ },
368
+ _compactArea: {
369
+ type: "sap.ushell.ui.launchpad.section.CompactArea",
370
+ multiple: false,
371
+ hidden: true
307
372
  }
308
373
  },
309
374
  events: {
@@ -404,6 +469,7 @@ sap.ui.define([
404
469
  }
405
470
  }
406
471
  },
472
+ renderer: SectionRenderer,
407
473
  resourceModel: resources.i18nModel
408
474
  });
409
475
 
@@ -481,17 +547,17 @@ sap.ui.define([
481
547
 
482
548
  var oDefaultBinding = deepClone(oBindingInfo);
483
549
  oDefaultBinding.filters = getDefaultAreaFilter();
484
- XMLComposite.prototype.bindAggregation.call(this, "defaultItems", oDefaultBinding);
550
+ Control.prototype.bindAggregation.call(this, "defaultItems", oDefaultBinding);
485
551
 
486
552
  var oFlatBinding = deepClone(oBindingInfo);
487
553
  oFlatBinding.filters = getFlatAreaFilter();
488
- XMLComposite.prototype.bindAggregation.call(this, "flatItems", oFlatBinding);
554
+ Control.prototype.bindAggregation.call(this, "flatItems", oFlatBinding);
489
555
 
490
556
  var oLinkBinding = deepClone(oBindingInfo);
491
557
  oLinkBinding.filters = getCompactAreaFilter();
492
- XMLComposite.prototype.bindAggregation.call(this, "compactItems", oLinkBinding);
558
+ Control.prototype.bindAggregation.call(this, "compactItems", oLinkBinding);
493
559
  } else {
494
- XMLComposite.prototype.bindAggregation.call(this, sAggregationName, oBindingInfo);
560
+ Control.prototype.bindAggregation.call(this, sAggregationName, oBindingInfo);
495
561
  }
496
562
  return this;
497
563
  };
@@ -615,76 +681,43 @@ sap.ui.define([
615
681
 
616
682
  // Toggle the container visibility in case there are no visualizations in the section.
617
683
  Section.prototype.handleEmptyContentAreas = function () {
618
- var bDefaultAreaHasItems = !!this.getDefaultItems().length,
619
- bFlatAreaHasItems = !!this.getFlatItems().length,
620
- bCompactAreaHasItems = !!this.getCompactItems().length,
621
- bSectionEmpty = !bDefaultAreaHasItems && !bCompactAreaHasItems && !bFlatAreaHasItems;
622
-
623
- this.oVBox.toggleStyleClass("sapUshellSectionNoVisualizations", bSectionEmpty);
624
- this.oDefaultArea.toggleStyleClass("sapUshellSectionDefaultArea", bDefaultAreaHasItems);
625
- this.oFlatArea.toggleStyleClass("sapUshellSectionFlatArea", bFlatAreaHasItems);
626
-
627
- var oVBoxDomRef = this.oVBox.getDomRef && this.oVBox.getDomRef();
628
- if (oVBoxDomRef && this.getEditable() && this.getShowNoVisualizationsText() && bSectionEmpty) {
629
- oVBoxDomRef.setAttribute("aria-describedBy", this.byId("noVisualizationsText").getId());
630
- } else if (oVBoxDomRef) {
631
- oVBoxDomRef.removeAttribute("aria-describedBy");
684
+ var bDefaultAreaHasItems = !!this.getDefaultItems().length;
685
+ var bFlatAreaHasItems = !!this.getFlatItems().length;
686
+ var bCompactAreaHasItems = !!this.getCompactItems().length;
687
+ var bSectionEmpty = !bDefaultAreaHasItems && !bCompactAreaHasItems && !bFlatAreaHasItems;
688
+
689
+ this.toggleStyleClass("sapUshellSectionNoVisualizations", bSectionEmpty);
690
+ this.getAggregation("_defaultArea").toggleStyleClass("sapUshellSectionDefaultArea", bDefaultAreaHasItems);
691
+ this.getAggregation("_flatArea").toggleStyleClass("sapUshellSectionFlatArea", bFlatAreaHasItems);
692
+
693
+ var oDomRef = this.getDomRef();
694
+ if (oDomRef) {
695
+ if (this.getEditable() && this.getShowNoVisualizationsText() && bSectionEmpty) {
696
+ oDomRef.setAttribute("aria-describedBy", this.getAggregation("_noVisualizationsText").getId());
697
+ } else {
698
+ oDomRef.removeAttribute("aria-describedBy");
699
+ }
632
700
  }
633
701
  };
634
702
 
635
-
636
703
  Section.prototype.init = function () {
637
- this.oVBox = this.byId("content");
638
- this.oDefaultArea = this.byId("defaultArea");
639
- this.oFlatArea = this.byId("flatArea");
640
- this.oCompactArea = this.byId("compactArea");
641
- this.oNoVisualizationsText = this.byId("noVisualizationsText");
642
-
643
- this.oCompactArea.setVisible(true);
644
-
645
- // TODO: clarify aria description for the links section.
646
-
647
- var fnAdjustAriaLabelToTitleChange = function () {
648
- var oVBoxDomRef = this.oVBox.getDomRef();
649
- if (oVBoxDomRef) {
650
- var sAriaLabel;
651
- if (this.getTitle().trim()) {
652
- sAriaLabel = resources.i18n.getText("Section.Description", this.getTitle());
653
- } else {
654
- sAriaLabel = resources.i18n.getText("Section.Description.EmptySectionTitle");
655
- }
656
- oVBoxDomRef.setAttribute("aria-label", sAriaLabel);
657
- }
658
- }.bind(this);
704
+ this.setAggregation("_title", new Title({
705
+ text: this.getTitle(),
706
+ level: TitleLevel.H3,
707
+ visible: !this.getEditable() && this.getShowSection()
708
+ }).addStyleClass("sapUshellSectionTitle sapContrastPlus"));
659
709
 
660
- this.oVBox.addEventDelegate({
661
- onBeforeRendering: function () {
662
- this.byId("title-edit").detachChange(fnAdjustAriaLabelToTitleChange);
663
- }.bind(this),
664
- onAfterRendering: function () {
665
- var oVBoxDomRef = this.oVBox.getDomRef();
666
- if (this.getEditable()) {
667
- oVBoxDomRef.setAttribute("tabindex", "0");
668
- }
669
- fnAdjustAriaLabelToTitleChange();
670
- oVBoxDomRef.setAttribute("role", "group");
671
- this.byId("title-edit").attachChange(fnAdjustAriaLabelToTitleChange);
672
- }.bind(this)
673
- });
710
+ this._initHeaderAggregation();
674
711
 
675
- this.oDefaultArea.addEventDelegate({
676
- onAfterRendering: this.handleEmptyContentAreas.bind(this)
677
- });
678
- this.oFlatArea.addEventDelegate({
679
- onAfterRendering: this.handleEmptyContentAreas.bind(this)
680
- });
681
- this.oCompactArea.addEventDelegate({
682
- onAfterRendering: this.handleEmptyContentAreas.bind(this)
683
- });
712
+ this.setAggregation("_noVisualizationsText", new Text({
713
+ text: this.getNoVisualizationsText(),
714
+ textAlign: TextAlign.Center,
715
+ visible: this.getEditable() && this.getShowNoVisualizationsText()
716
+ }).addStyleClass("sapUshellSectionNoVisualizationsText"));
684
717
 
685
- this.oDefaultArea.attachBorderReached(this.onBorderReached.bind(this));
686
- this.oFlatArea.attachBorderReached(this.onBorderReached.bind(this));
687
- this.oCompactArea.attachBorderReached(this.onBorderReached.bind(this));
718
+ this._initGridContainerAggregation(); // defaultArea
719
+ this._initGridContainerAggregation(true); // flatArea
720
+ this._initCompactAreaAggregation(true); // compactArea
688
721
 
689
722
 
690
723
  this._oInvisibleMessageInstance = InvisibleMessage.getInstance();
@@ -695,76 +728,585 @@ sap.ui.define([
695
728
 
696
729
  // mouse DnD uses implicit Conversion
697
730
  this._fnGlobalDragStart = function () {
698
- this.setProperty("_duringDrag", true);
731
+ var aFlatAreaDragDropConfig = this.getAggregation("_flatArea").getDragDropConfig();
732
+ var aCompactAreaDragDropConfig = this.getAggregation("_compactArea").getDragDropConfig();
733
+ aFlatAreaDragDropConfig[0].setGroupName("Section");
734
+ aFlatAreaDragDropConfig[1].setGroupName("Section");
735
+ aCompactAreaDragDropConfig[0].setGroupName("Section");
736
+ aCompactAreaDragDropConfig[1].setGroupName("Section");
737
+ aCompactAreaDragDropConfig[2].setGroupName("Section");
699
738
  }.bind(this);
700
739
 
701
740
  this._fnGlobalDragEnd = function () {
702
- this.setProperty("_duringDrag", false);
741
+ var aFlatAreaDragDropConfig = this.getAggregation("_flatArea").getDragDropConfig();
742
+ var aCompactAreaDragDropConfig = this.getAggregation("_compactArea").getDragDropConfig();
743
+ aFlatAreaDragDropConfig[0].setGroupName("FlatArea");
744
+ aFlatAreaDragDropConfig[1].setGroupName("FlatArea");
745
+ aCompactAreaDragDropConfig[0].setGroupName("CompactArea");
746
+ aCompactAreaDragDropConfig[1].setGroupName("CompactArea");
747
+ aCompactAreaDragDropConfig[2].setGroupName("CompactArea");
703
748
  }.bind(this);
704
749
 
705
750
  document.addEventListener("dragstart", this._fnGlobalDragStart, false);
706
751
  document.addEventListener("dragend", this._fnGlobalDragEnd, false);
707
752
  };
708
753
 
709
- Section.prototype.destroy = function () {
710
- XMLComposite.prototype.destroy.apply(this, arguments);
711
- this._oDefaultItemsChangeDetection.destroy();
712
- this._oFlatItemsChangeDetection.destroy();
713
- this._oCompactItemsChangeDetection.destroy();
754
+ Section.prototype._initHeaderAggregation = function () {
755
+ var sTitle = this.getTitle();
756
+ var bDefault = this.getDefault();
757
+
758
+ var oInput = new Input({
759
+ maxLength: 100,
760
+ placeholder: resources.i18n.getText("Section.TitlePlaceholder"),
761
+ value: sTitle,
762
+ valueLiveUpdate: true,
763
+ visible: !bDefault,
764
+ change: function (oEvent) {
765
+ this.setTitle(oEvent.getParameter("value"));
766
+ this.fireTitleChange();
767
+ }.bind(this),
768
+ layoutData: new OverflowToolbarLayoutData({
769
+ priority: OverflowToolbarPriority.NeverOverflow,
770
+ shrinkable: true,
771
+ minWidth: "10rem",
772
+ maxWidth: "40rem"
773
+ })
774
+ });
714
775
 
715
- document.removeEventListener("dragstart", this._fnGlobalDragStart, false);
716
- document.removeEventListener("dragend", this._fnGlobalDragEnd, false);
776
+ this.setAggregation("_header", new OverflowToolbar({
777
+ content: [
778
+ new Text({
779
+ text: sTitle,
780
+ visible: bDefault,
781
+ layoutData: new OverflowToolbarLayoutData({
782
+ priority: OverflowToolbarPriority.NeverOverflow
783
+ })
784
+ }),
785
+ new Label({
786
+ text: resources.i18n.getText("Section.Label.Title"),
787
+ labelFor: oInput.getId(),
788
+ showColon: true,
789
+ visible: !bDefault,
790
+ layoutData: new OverflowToolbarLayoutData({
791
+ priority: OverflowToolbarPriority.NeverOverflow
792
+ })
793
+ }),
794
+ oInput,
795
+ new ToolbarSpacer(),
796
+ new Button({
797
+ text: resources.i18n.getText("Section.Button.AddVisualization"),
798
+ type: ButtonType.Transparent,
799
+ press: this.fireAdd.bind(this, { section: this }),
800
+ visible: this.getEnableAddButton() && !bDefault
801
+ }),
802
+ new Button({
803
+ text: this.getShowSection() ? resources.i18n.getText("Section.Button.Hide") : resources.i18n.getText("Section.Button.Show"),
804
+ type: ButtonType.Transparent,
805
+ press: function () {
806
+ var bValue = !this.getShowSection();
807
+ // temporary work around until sap.m.Button announces a label change to the user.
808
+ var oMResources = Core.getLibraryResourceBundle("sap.m");
809
+ this._oInvisibleMessageInstance.announce([
810
+ resources.i18n.getText(bValue ? "Section.nowBeingShown" : "Section.nowBeingHidden"),
811
+ resources.i18n.getText("Section.ButtonLabelChanged"),
812
+ resources.i18n.getText(bValue ? "Section.Button.Hide" : "Section.Button.Show"),
813
+ oMResources.getText("ACC_CTR_TYPE_BUTTON")
814
+ ].join(" "), InvisibleMessageMode.Polite);
815
+
816
+ this.setShowSection(bValue);
817
+ this.fireSectionVisibilityChange({ visible: bValue });
818
+ }.bind(this),
819
+ visible: this.getEnableShowHideButton() && !bDefault
820
+ }),
821
+ new Button({
822
+ text: resources.i18n.getText("Section.Button.Reset"),
823
+ type: ButtonType.Transparent,
824
+ press: this.fireReset.bind(this),
825
+ visible: this.getEnableResetButton() && !bDefault
826
+ }),
827
+ new Button({
828
+ text: resources.i18n.getText("Section.Button.Delete"),
829
+ type: ButtonType.Transparent,
830
+ press: this.fireDelete.bind(this),
831
+ visible: this.getEnableDeleteButton() && !bDefault
832
+ })
833
+ ],
834
+ visible: this.getEditable()
835
+ }).addStyleClass("sapUshellSectionHeader"));
836
+ };
717
837
 
718
- if (this.oCompactItemsNavigation) {
719
- this.oCompactArea.removeDelegate(this.oCompactItemsNavigation);
720
- this.oCompactItemsNavigation.destroy();
721
- this.oCompactItemsNavigation = null;
838
+ Section.prototype._initGridContainerAggregation = function (bFlatArea) {
839
+ var oGridContainer = new GridContainer({
840
+ id: this.getId() + (bFlatArea ? "-flatArea" : "-defaultArea"),
841
+ containerQuery: this.getEnableGridContainerQuery(),
842
+ minHeight: "0",
843
+ visible: this.getEditable() || this.getShowSection(),
844
+ customData: [
845
+ new CustomData({
846
+ key: "default",
847
+ value: this.getDefault()
848
+ }),
849
+ new CustomData({
850
+ key: "area",
851
+ value: bFlatArea ? DisplayFormat.Flat : DisplayFormat.Standard
852
+ })
853
+ ],
854
+ layout: new GridContainerSettings({
855
+ rowSize: this.getGridContainerRowSize(),
856
+ columnSize: this.getGridContainerRowSize(),
857
+ gap: this.getGridContainerGap()
858
+ }),
859
+ layoutXS: new GridContainerSettings({
860
+ columns: 0,
861
+ rowSize: this.getGridContainerRowSizeXS(),
862
+ columnSize: this.getGridContainerRowSizeXS(),
863
+ gap: this.getGridContainerGapXS()
864
+ }),
865
+ layoutS: new GridContainerSettings({
866
+ columns: 0,
867
+ rowSize: this.getGridContainerRowSizeS(),
868
+ columnSize: this.getGridContainerRowSizeS(),
869
+ gap: this.getGridContainerGapS()
870
+ }),
871
+ layoutM: new GridContainerSettings({
872
+ columns: 0,
873
+ rowSize: this.getGridContainerRowSizeM(),
874
+ columnSize: this.getGridContainerRowSizeM(),
875
+ gap: this.getGridContainerGapM()
876
+ }),
877
+ layoutL: new GridContainerSettings({
878
+ columns: 0,
879
+ rowSize: this.getGridContainerRowSizeL(),
880
+ columnSize: this.getGridContainerRowSizeL(),
881
+ gap: this.getGridContainerGapL()
882
+ }),
883
+ layoutXL: new GridContainerSettings({
884
+ columns: 0,
885
+ rowSize: this.getGridContainerRowSizeXL(),
886
+ columnSize: this.getGridContainerRowSizeXL(),
887
+ gap: this.getGridContainerGapXL()
888
+ }),
889
+ dragDropConfig: [
890
+ new DragInfo({
891
+ enabled: this.getEnableVisualizationReordering(),
892
+ groupName: bFlatArea ? "flatArea" : "Section",
893
+ sourceAggregation: "items"
894
+ }),
895
+ new GridDropInfo({
896
+ enabled: this.getEnableVisualizationReordering(),
897
+ groupName: bFlatArea ? "flatArea" : "Section",
898
+ dropLayout: DropLayout.Horizontal,
899
+ dropPosition: DropPosition.Between,
900
+ targetAggregation: "items",
901
+ dropIndicatorSize: bFlatArea ? this._getFlatDropIndicatorSize.bind(this) : this._getDefaultDropIndicatorSize.bind(this),
902
+ dragEnter: this._onDragEnter.bind(this),
903
+ drop: this._reorderVisualizations.bind(this)
904
+ })
905
+ ]
906
+ }).addStyleClass("sapUshellSectionGridContainer");
907
+
908
+ if (this.getEnableGridBreakpoints()) {
909
+ var bSmallSize = this.getSizeBehavior() === "Small";
910
+
911
+ oGridContainer.getLayoutXS().setColumns(4);
912
+ oGridContainer.getLayoutS().setColumns(4);
913
+ oGridContainer.getLayoutM().setColumns(6);
914
+ oGridContainer.getLayoutL().setColumns(bSmallSize ? 12 : 10);
915
+ oGridContainer.getLayoutXL().setColumns(bSmallSize ? 16 : 14);
722
916
  }
723
- if (this._oInvisibleMessageInstance) {
724
- this._oInvisibleMessageInstance.destroy();
725
- }
726
- XMLComposite.prototype.destroy.apply(this, arguments);
917
+
918
+ oGridContainer.addEventDelegate({
919
+ onAfterRendering: this.handleEmptyContentAreas.bind(this)
920
+ });
921
+ oGridContainer.attachBorderReached(this.onBorderReached.bind(this));
922
+
923
+ this.setAggregation(bFlatArea ? "_flatArea" : "_defaultArea", oGridContainer);
924
+ };
925
+
926
+ Section.prototype._initCompactAreaAggregation = function () {
927
+ var oCompactArea = new CompactArea({
928
+ id: this.getId() + "-compactArea",
929
+ enableLinkReordering: this.getEnableVisualizationReordering(),
930
+ itemDrop: this._reorderVisualizations.bind(this),
931
+ customData: [
932
+ new CustomData({
933
+ key: "default",
934
+ value: this.getDefault()
935
+ }),
936
+ new CustomData({
937
+ key: "area",
938
+ value: DisplayFormat.Compact
939
+ })
940
+ ],
941
+ dragDropConfig: [
942
+ new DragInfo({
943
+ enabled: this.getEnableVisualizationReordering(),
944
+ groupName: "CompactArea",
945
+ sourceAggregation: "items"
946
+ }),
947
+ new DropInfo({
948
+ enabled: this.getEnableVisualizationReordering(),
949
+ groupName: "CompactArea",
950
+ dropLayout: DropLayout.Horizontal,
951
+ dropPosition: DropPosition.Between,
952
+ targetAggregation: "items",
953
+ dragEnter: this._onDragEnter.bind(this),
954
+ drop: this._reorderVisualizations.bind(this)
955
+ }),
956
+ new DropInfo({
957
+ enabled: this.getEnableVisualizationReordering(),
958
+ groupName: "CompactArea",
959
+ dragEnter: this._onDragEnter.bind(this),
960
+ drop: this._reorderVisualizations.bind(this)
961
+ })
962
+ ]
963
+ }).addStyleClass("sapUshellSectionGridContainer");
964
+ oCompactArea.addEventDelegate({
965
+ onAfterRendering: this.handleEmptyContentAreas.bind(this)
966
+ });
967
+ oCompactArea.attachBorderReached(this.onBorderReached.bind(this));
968
+ this.setAggregation("_compactArea", oCompactArea);
969
+ };
970
+
971
+ Section.prototype.setDefault = function (value) {
972
+ this.setProperty("default", value, true);
973
+ var aHeaderContent = this.getAggregation("_header").getContent();
974
+ aHeaderContent[0].setVisible(value);
975
+ aHeaderContent[1].setVisible(!value);
976
+ aHeaderContent[2].setVisible(!value);
977
+ aHeaderContent[4].setVisible(this.getEnableAddButton() && !value);
978
+ aHeaderContent[5].setVisible(this.getEnableShowHideButton() && !value);
979
+ aHeaderContent[6].setVisible(this.getEnableResetButton() && !value);
980
+ aHeaderContent[7].setVisible(this.getEnableDeleteButton() && !value);
981
+ this.getAggregation("_defaultArea").getCustomData()[0].setValue(value);
982
+ this.getAggregation("_flatArea").getCustomData()[0].setValue(value);
983
+ this.getAggregation("_compactArea").getCustomData()[0].setValue(value);
984
+ return this;
727
985
  };
728
986
 
729
987
  Section.prototype.setEditable = function (value) {
730
988
  if (value === undefined || this.getEditable() === value) {
731
989
  return this;
732
990
  }
733
- this.setProperty("editable", !!value, true);
734
- this.oVBox.toggleStyleClass("sapUshellSectionEdit", !!value);
735
- return this;
736
991
 
992
+ this.setProperty("editable", value, true);
993
+ this.toggleStyleClass("sapUshellSectionEdit", value);
994
+ this.getAggregation("_title").setVisible(!value && this.getShowSection());
995
+ this.getAggregation("_header").setVisible(value);
996
+ this.getAggregation("_noVisualizationsText").setVisible(value && this.getShowNoVisualizationsText());
997
+ this.getAggregation("_defaultArea").setVisible(value || this.getShowSection());
998
+ this.getAggregation("_flatArea").setVisible(value || this.getShowSection());
999
+ this.getAggregation("_compactArea").setVisible(value || this.getShowSection());
1000
+
1001
+ var oDomRef = this.getDomRef();
1002
+ if (oDomRef) {
1003
+ if (value) {
1004
+ oDomRef.setAttribute("tabindex", "0");
1005
+ if (this.getShowNoVisualizationsText()) {
1006
+ oDomRef.setAttribute("aria-describedBy", this.getAggregation("_noVisualizationsText").getId());
1007
+ } else {
1008
+ oDomRef.removeAttribute("aria-describedBy");
1009
+ }
1010
+ } else {
1011
+ oDomRef.removeAttribute("tabindex");
1012
+ }
1013
+ }
1014
+ return this;
737
1015
  };
738
1016
 
739
- /**
740
- * Is called when the "Show Section" Switch is changed.
741
- *
742
- * @param {boolean} value Whether the section should be shown or not.
743
- * @private
744
- */
745
- Section.prototype._showHidePressed = function (value) {
746
- // temporary work around until sap.m.Button announces a label change to the user.
747
- var oMResources = Core.getLibraryResourceBundle("sap.m");
748
- this._oInvisibleMessageInstance.announce([
749
- resources.i18n.getText(value ? "Section.nowBeingShown" : "Section.nowBeingHidden"),
750
- resources.i18n.getText("Section.ButtonLabelChanged"),
751
- resources.i18n.getText(value ? "Section.Button.Hide" : "Section.Button.Show"),
752
- oMResources.getText("ACC_CTR_TYPE_BUTTON")
753
- ].join(" "), InvisibleMessageMode.Polite);
754
-
755
- this.setShowSection(value);
1017
+ Section.prototype.setEnableAddButton = function (value) {
1018
+ this.setProperty("enableAddButton", value, true);
1019
+ this.getAggregation("_header").getContent()[4].setVisible(value && !this.getDefault());
1020
+ return this;
1021
+ };
1022
+
1023
+ Section.prototype.setEnableDeleteButton = function (value) {
1024
+ this.setProperty("enableDeleteButton", value, true);
1025
+ this.getAggregation("_header").getContent()[7].setVisible(value && !this.getDefault());
1026
+ return this;
1027
+ };
1028
+
1029
+ Section.prototype.setEnableGridBreakpoints = function (value) {
1030
+ this.setProperty("enableGridBreakpoints", value, true);
1031
+ var oDefaultArea = this.getAggregation("_defaultArea");
1032
+ var oFlatArea = this.getAggregation("_flatArea");
1033
+
1034
+ if (value) {
1035
+ var bSmallSize = this.getSizeBehavior() === "Small";
1036
+
1037
+ oDefaultArea.getLayoutXS().setColumns(4);
1038
+ oDefaultArea.getLayoutS().setColumns(4);
1039
+ oDefaultArea.getLayoutM().setColumns(6);
1040
+ oDefaultArea.getLayoutL().setColumns(bSmallSize ? 12 : 10);
1041
+ oDefaultArea.getLayoutXL().setColumns(bSmallSize ? 16 : 14);
1042
+ oFlatArea.getLayoutXS().setColumns(4);
1043
+ oFlatArea.getLayoutS().setColumns(4);
1044
+ oFlatArea.getLayoutM().setColumns(6);
1045
+ oFlatArea.getLayoutL().setColumns(bSmallSize ? 12 : 10);
1046
+ oFlatArea.getLayoutXL().setColumns(bSmallSize ? 16 : 14);
1047
+ } else {
1048
+ oDefaultArea.getLayoutXS().setColumns(0);
1049
+ oDefaultArea.getLayoutS().setColumns(0);
1050
+ oDefaultArea.getLayoutM().setColumns(0);
1051
+ oDefaultArea.getLayoutL().setColumns(0);
1052
+ oDefaultArea.getLayoutXL().setColumns(0);
1053
+ oFlatArea.getLayoutXS().setColumns(0);
1054
+ oFlatArea.getLayoutS().setColumns(0);
1055
+ oFlatArea.getLayoutM().setColumns(0);
1056
+ oFlatArea.getLayoutL().setColumns(0);
1057
+ oFlatArea.getLayoutXL().setColumns(0);
1058
+ }
1059
+
1060
+ return this;
1061
+ };
1062
+
1063
+ Section.prototype.setEnableGridContainerQuery = function (value) {
1064
+ this.setProperty("enableGridContainerQuery", value, true);
1065
+ this.getAggregation("_defaultArea").setContainerQuery(value);
1066
+ this.getAggregation("_flatArea").setContainerQuery(value);
1067
+ return this;
1068
+ };
1069
+
1070
+ Section.prototype.setEnableResetButton = function (value) {
1071
+ this.setProperty("enableResetButton", value, true);
1072
+ this.getAggregation("_header").getContent()[6].setVisible(value && !this.getDefault());
1073
+ return this;
1074
+ };
1075
+
1076
+ Section.prototype.setEnableShowHideButton = function (value) {
1077
+ this.setProperty("enableShowHideButton", value, true);
1078
+ this.getAggregation("_header").getContent()[5].setVisible(value && !this.getDefault());
1079
+ return this;
1080
+ };
1081
+
1082
+ Section.prototype.setEnableVisualizationReordering = function (value) {
1083
+ this.setProperty("enableVisualizationReordering", value, true);
1084
+ var oCompactArea = this.getAggregation("_compactArea");
1085
+ var aDefaultAreaDragDropConfig = this.getAggregation("_defaultArea").getDragDropConfig();
1086
+ var aFlatAreaDragDropConfig = this.getAggregation("_flatArea").getDragDropConfig();
1087
+ var aCompactAreaDragDropConfig = oCompactArea.getDragDropConfig();
1088
+
1089
+ oCompactArea.setEnableLinkReordering(value);
1090
+ aDefaultAreaDragDropConfig[0].setEnabled(value);
1091
+ aDefaultAreaDragDropConfig[1].setEnabled(value);
1092
+ aFlatAreaDragDropConfig[0].setEnabled(value);
1093
+ aFlatAreaDragDropConfig[1].setEnabled(value);
1094
+ aCompactAreaDragDropConfig[0].setEnabled(value);
1095
+ aCompactAreaDragDropConfig[1].setEnabled(value);
1096
+ aCompactAreaDragDropConfig[2].setEnabled(value);
1097
+ return this;
1098
+ };
1099
+
1100
+ Section.prototype.setGridContainerGap = function (value) {
1101
+ this.setProperty("gridContainerGap", value, true);
1102
+ this.getAggregation("_defaultArea").getLayout().setGap(value);
1103
+ this.getAggregation("_flatArea").getLayout().setGap(value);
1104
+ return this;
1105
+ };
1106
+
1107
+ Section.prototype.setGridContainerGapXS = function (value) {
1108
+ this.setProperty("gridContainerGapXS", value, true);
1109
+ this.getAggregation("_defaultArea").getLayoutXS().setGap(value);
1110
+ this.getAggregation("_flatArea").getLayoutXS().setGap(value);
1111
+ return this;
1112
+ };
1113
+
1114
+ Section.prototype.setGridContainerGapS = function (value) {
1115
+ this.setProperty("gridContainerGapS", value, true);
1116
+ this.getAggregation("_defaultArea").getLayoutS().setGap(value);
1117
+ this.getAggregation("_flatArea").getLayoutS().setGap(value);
1118
+ return this;
1119
+ };
1120
+
1121
+ Section.prototype.setGridContainerGapM = function (value) {
1122
+ this.setProperty("gridContainerGapM", value, true);
1123
+ this.getAggregation("_defaultArea").getLayoutM().setGap(value);
1124
+ this.getAggregation("_flatArea").getLayoutM().setGap(value);
1125
+ return this;
1126
+ };
1127
+
1128
+ Section.prototype.setGridContainerGapL = function (value) {
1129
+ this.setProperty("gridContainerGapL", value, true);
1130
+ this.getAggregation("_defaultArea").getLayoutL().setGap(value);
1131
+ this.getAggregation("_flatArea").getLayoutL().setGap(value);
1132
+ return this;
1133
+ };
1134
+
1135
+ Section.prototype.setGridContainerGapXL = function (value) {
1136
+ this.setProperty("gridContainerGapXL", value, true);
1137
+ this.getAggregation("_defaultArea").getLayoutXL().setGap(value);
1138
+ this.getAggregation("_flatArea").getLayoutXL().setGap(value);
1139
+ return this;
1140
+ };
1141
+
1142
+ Section.prototype.setGridContainerRowSize = function (value) {
1143
+ this.setProperty("gridContainerRowSize", value, true);
1144
+ var oDefaultArea = this.getAggregation("_defaultArea");
1145
+ var oFlatArea = this.getAggregation("_flatArea");
1146
+
1147
+ oDefaultArea.getLayout().setRowSize(value);
1148
+ oDefaultArea.getLayout().setColumnSize(value);
1149
+ oFlatArea.getLayout().setRowSize(value);
1150
+ oFlatArea.getLayout().setColumnSize(value);
1151
+ return this;
1152
+ };
1153
+
1154
+ Section.prototype.setGridContainerRowSizeXS = function (value) {
1155
+ this.setProperty("gridContainerRowSizeXS", value, true);
1156
+ var oDefaultArea = this.getAggregation("_defaultArea");
1157
+ var oFlatArea = this.getAggregation("_flatArea");
1158
+
1159
+ oDefaultArea.getLayoutXS().setRowSize(value);
1160
+ oDefaultArea.getLayoutXS().setColumnSize(value);
1161
+ oFlatArea.getLayoutXS().setRowSize(value);
1162
+ oFlatArea.getLayoutXS().setColumnSize(value);
1163
+ return this;
1164
+ };
1165
+
1166
+ Section.prototype.setGridContainerRowSizeS = function (value) {
1167
+ this.setProperty("gridContainerRowSizeS", value, true);
1168
+ var oDefaultArea = this.getAggregation("_defaultArea");
1169
+ var oFlatArea = this.getAggregation("_flatArea");
1170
+
1171
+ oDefaultArea.getLayoutS().setRowSize(value);
1172
+ oDefaultArea.getLayoutS().setColumnSize(value);
1173
+ oFlatArea.getLayoutS().setRowSize(value);
1174
+ oFlatArea.getLayoutS().setColumnSize(value);
1175
+ return this;
1176
+ };
1177
+
1178
+ Section.prototype.setGridContainerRowSizeM = function (value) {
1179
+ this.setProperty("gridContainerRowSizeM", value, true);
1180
+ var oDefaultArea = this.getAggregation("_defaultArea");
1181
+ var oFlatArea = this.getAggregation("_flatArea");
1182
+
1183
+ oDefaultArea.getLayoutM().setRowSize(value);
1184
+ oDefaultArea.getLayoutM().setColumnSize(value);
1185
+ oFlatArea.getLayoutM().setRowSize(value);
1186
+ oFlatArea.getLayoutM().setColumnSize(value);
1187
+ return this;
1188
+ };
1189
+
1190
+ Section.prototype.setGridContainerRowSizeL = function (value) {
1191
+ this.setProperty("gridContainerRowSizeL", value, true);
1192
+ var oDefaultArea = this.getAggregation("_defaultArea");
1193
+ var oFlatArea = this.getAggregation("_flatArea");
1194
+
1195
+ oDefaultArea.getLayoutL().setRowSize(value);
1196
+ oDefaultArea.getLayoutL().setColumnSize(value);
1197
+ oFlatArea.getLayoutL().setRowSize(value);
1198
+ oFlatArea.getLayoutL().setColumnSize(value);
1199
+ return this;
1200
+ };
1201
+
1202
+ Section.prototype.setGridContainerRowSizeXL = function (value) {
1203
+ this.setProperty("gridContainerRowSizeXL", value, true);
1204
+ var oDefaultArea = this.getAggregation("_defaultArea");
1205
+ var oFlatArea = this.getAggregation("_flatArea");
1206
+
1207
+ oDefaultArea.getLayoutXL().setRowSize(value);
1208
+ oDefaultArea.getLayoutXL().setColumnSize(value);
1209
+ oFlatArea.getLayoutXL().setRowSize(value);
1210
+ oFlatArea.getLayoutXL().setColumnSize(value);
1211
+ return this;
1212
+ };
1213
+
1214
+ Section.prototype.setNoVisualizationsText = function (value) {
1215
+ this.setProperty("noVisualizationsText", value, true);
1216
+ this.getAggregation("_noVisualizationsText").setText(value);
1217
+ return this;
1218
+ };
1219
+
1220
+ Section.prototype.setTitle = function (value) {
1221
+ this.setProperty("title", value, true);
1222
+ this.getAggregation("_title").setText(value);
1223
+ this.getAggregation("_header").getContent()[0].setText(value);
1224
+ this.getAggregation("_header").getContent()[2].setValue(value);
1225
+
1226
+ var oDomRef = this.getDomRef();
1227
+ if (oDomRef) {
1228
+ oDomRef.setAttribute("aria-label", this.getAriaLabel());
1229
+ }
1230
+ return this;
1231
+ };
1232
+
1233
+ Section.prototype.setShowNoVisualizationsText = function (value) {
1234
+ this.setProperty("showNoVisualizationsText", value, true);
1235
+ this.getAggregation("_noVisualizationsText").setVisible(this.getEditable() && value);
1236
+ var oDomRef = this.getDomRef();
1237
+ if (oDomRef) {
1238
+ if (this.getEditable() && value) {
1239
+ oDomRef.setAttribute("aria-describedBy", this.getAggregation("_noVisualizationsText").getId());
1240
+ } else {
1241
+ oDomRef.removeAttribute("aria-describedBy");
1242
+ }
1243
+ }
1244
+ return this;
756
1245
  };
757
1246
 
758
- // The function toggles section visibility and creates a corresponding accessibility announcement
759
1247
  Section.prototype.setShowSection = function (value) {
760
1248
  if (value === undefined || this.getShowSection() === value) {
761
1249
  return this;
762
1250
  }
763
- this.setProperty("showSection", value, true);
764
- this.oVBox.toggleStyleClass("sapUshellSectionHidden", !value);
765
- this.fireSectionVisibilityChange({ visible: value });
766
- return this;
767
1251
 
1252
+ this.setProperty("showSection", value, true);
1253
+ this.toggleStyleClass("sapUshellSectionHidden", !value);
1254
+ this.getAggregation("_title").setVisible(!this.getEditable() && value);
1255
+ this.getAggregation("_defaultArea").setVisible(this.getEditable() || value);
1256
+ this.getAggregation("_flatArea").setVisible(this.getEditable() || value);
1257
+ this.getAggregation("_compactArea").setVisible(this.getEditable() || value);
1258
+ this.getAggregation("_header").getContent()[5].setText(value ? resources.i18n.getText("Section.Button.Hide") : resources.i18n.getText("Section.Button.Show"));
1259
+ return this;
1260
+ };
1261
+
1262
+ Section.prototype.setSizeBehavior = function (value) {
1263
+ this.setProperty("sizeBehavior", value, true);
1264
+ if (this.getEnableGridBreakpoints()) {
1265
+ var oDefaultArea = this.getAggregation("_defaultArea");
1266
+ var oFlatArea = this.getAggregation("_flatArea");
1267
+
1268
+ oDefaultArea.getLayoutL().setColumns(value ? 12 : 10);
1269
+ oDefaultArea.getLayoutXL().setColumns(value ? 16 : 14);
1270
+ oFlatArea.getLayoutL().setColumns(value ? 12 : 10);
1271
+ oFlatArea.getLayoutXL().setColumns(value ? 16 : 14);
1272
+ }
1273
+ return this;
1274
+ };
1275
+
1276
+ Section.prototype.destroy = function () {
1277
+ Control.prototype.destroy.apply(this, arguments);
1278
+ this._oDefaultItemsChangeDetection.destroy();
1279
+ this._oFlatItemsChangeDetection.destroy();
1280
+ this._oCompactItemsChangeDetection.destroy();
1281
+
1282
+ document.removeEventListener("dragstart", this._fnGlobalDragStart, false);
1283
+ document.removeEventListener("dragend", this._fnGlobalDragEnd, false);
1284
+
1285
+ if (this._oInvisibleMessageInstance) {
1286
+ this._oInvisibleMessageInstance.destroy();
1287
+ }
1288
+ };
1289
+
1290
+ /**
1291
+ * Generates the localized aria label string for the section.
1292
+ *
1293
+ * @returns {string} the localized aria label containing the title of the section.
1294
+ */
1295
+ Section.prototype.getAriaLabel = function () {
1296
+ var sTitle = this.getTitle() && this.getTitle().trim();
1297
+ if (sTitle) {
1298
+ return resources.i18n.getText("Section.Description", sTitle);
1299
+ }
1300
+ return resources.i18n.getText("Section.Description.EmptySectionTitle");
1301
+ };
1302
+
1303
+ /**
1304
+ * @returns {sap.m.Input} the title input from the section header.
1305
+ *
1306
+ * @since 1.117.0
1307
+ */
1308
+ Section.prototype.getTitleInput = function () {
1309
+ return this.getAggregation("_header").getContent()[2];
768
1310
  };
769
1311
 
770
1312
  /**
@@ -856,7 +1398,7 @@ sap.ui.define([
856
1398
  if (sAggregationName === "defaultItems" || sAggregationName === "flatItems") {
857
1399
  this._addVisualizationLayoutData(oObject);
858
1400
  }
859
- XMLComposite.prototype.addAggregation.apply(this, arguments);
1401
+ Control.prototype.addAggregation.apply(this, arguments);
860
1402
  this.handleEmptyContentAreas();
861
1403
  return this;
862
1404
  };
@@ -865,11 +1407,30 @@ sap.ui.define([
865
1407
  if (sAggregationName === "defaultItems" || sAggregationName === "flatItems") {
866
1408
  this._addVisualizationLayoutData(oObject, sAggregationName);
867
1409
  }
868
- XMLComposite.prototype.insertAggregation.apply(this, arguments);
1410
+ Control.prototype.insertAggregation.apply(this, arguments);
869
1411
  this.handleEmptyContentAreas();
870
1412
  return this;
871
1413
  };
872
1414
 
1415
+ /**
1416
+ * Does a lookup on the internal aggregations and searches for a proper dom ref to focus
1417
+ *
1418
+ * @returns {HTMLElement} the dom ref to focus
1419
+ * @private
1420
+ */
1421
+ Section.prototype.getFocusDomRef = function () {
1422
+ if (this.getEditable()) {
1423
+ return this.getDomRef();
1424
+ }
1425
+ if (this.getDefaultItems().length) {
1426
+ return this.getAggregation("_defaultArea").getFocusDomRef();
1427
+ }
1428
+ if (this.getFlatItems().length) {
1429
+ return this.getAggregation("_flatArea").getFocusDomRef();
1430
+ }
1431
+ return this.getAggregation("_compactArea").getFocusDomRef();
1432
+ };
1433
+
873
1434
  /**
874
1435
  * Returns the LayoutData for the given item.
875
1436
  *
@@ -999,7 +1560,7 @@ sap.ui.define([
999
1560
  /**
1000
1561
  * Returns the visual position of a visualization in a section. It is not the same as the order in the model.
1001
1562
  *
1002
- * @param {object | integer} viz Visualization control that belongs to a section or its index in the model.
1563
+ * @param {object | int} viz Visualization control that belongs to a section or its index in the model.
1003
1564
  * @returns {object} Position of the visualization ({index, area},
1004
1565
  * where index is relative position of a visualization in the area and
1005
1566
  * area is either "default" for normal tiles, "flat" for flat and flat wide tiles and "compact" for links)
@@ -1009,21 +1570,21 @@ sap.ui.define([
1009
1570
  if (isFinite(viz)) {
1010
1571
  viz = this.getVisualizations()[viz];
1011
1572
  }
1012
- var index = this.oDefaultArea.getItems().indexOf(viz);
1573
+ var index = this.getAggregation("_defaultArea").getItems().indexOf(viz);
1013
1574
  if (index >= 0) {
1014
1575
  return {
1015
1576
  index: index,
1016
1577
  area: DisplayFormat.Standard
1017
1578
  };
1018
1579
  }
1019
- index = this.oFlatArea.getItems().indexOf(viz);
1580
+ index = this.getAggregation("_flatArea").getItems().indexOf(viz);
1020
1581
  if (index >= 0) {
1021
1582
  return {
1022
1583
  index: index,
1023
1584
  area: DisplayFormat.Flat
1024
1585
  };
1025
1586
  }
1026
- index = this.oCompactArea.getItems().indexOf(viz);
1587
+ index = this.getAggregation("_compactArea").getItems().indexOf(viz);
1027
1588
  if (index >= 0) {
1028
1589
  return {
1029
1590
  index: index,
@@ -1042,16 +1603,16 @@ sap.ui.define([
1042
1603
  * default items come first, then the flat area items and then the compact area items.
1043
1604
  * If the last focused item is removed from the default area, the fist item in the compact area is focused.
1044
1605
  *
1045
- * @param {object | integer} pos Position of the visualization to focus ({index, area} or index)
1606
+ * @param {object | int} pos Position of the visualization to focus ({index, area} or index)
1046
1607
  * @private
1047
1608
  */
1048
1609
  Section.prototype._focusItem = function (pos) {
1049
1610
  window.setTimeout(function () {
1050
1611
  var area = pos && pos.area ? pos.area : DisplayFormat.Standard;
1051
1612
  var index = pos && pos.index ? pos.index : pos;
1052
- var nDefaultItems = this.oDefaultArea.getItems().length;
1053
- var nFlatItems = this.oFlatArea.getItems().length;
1054
- var nCompactItems = this.oCompactArea.getItems().length;
1613
+ var nDefaultItems = this.getAggregation("_defaultArea").getItems().length;
1614
+ var nFlatItems = this.getAggregation("_flatArea").getItems().length;
1615
+ var nCompactItems = this.getAggregation("_compactArea").getItems().length;
1055
1616
 
1056
1617
  // checks
1057
1618
  if (isNaN(index) || index < 0) { // focus the first item by default
@@ -1081,16 +1642,16 @@ sap.ui.define([
1081
1642
  if (index >= nFlatItems) { // focus the last item
1082
1643
  index = nFlatItems - 1;
1083
1644
  }
1084
- this.oFlatArea.focusItem(index);
1645
+ this.getAggregation("_flatArea").focusItem(index);
1085
1646
  break;
1086
1647
  case DisplayFormat.Compact:
1087
- this.oCompactArea.focusItem(index);
1648
+ this.getAggregation("_compactArea").focusItem(index);
1088
1649
  break;
1089
1650
  default: // "default area"
1090
1651
  if (index >= nDefaultItems) { // focus the last item
1091
1652
  index = nDefaultItems - 1;
1092
1653
  }
1093
- this.oDefaultArea.focusItem(index);
1654
+ this.getAggregation("_defaultArea").focusItem(index);
1094
1655
  break;
1095
1656
  }
1096
1657
  }.bind(this), 0);