@sapui5/sap.ushell 1.138.0 → 1.139.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 (757) 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/UrlPostProcessing.js +14 -10
  4. package/src/main/js/sap/ushell/ApplicationType/wcfResolution.js +32 -26
  5. package/src/main/js/sap/ushell/Container.js +0 -1
  6. package/src/main/js/sap/ushell/Fiori20Adapter.js +1 -1
  7. package/src/main/js/sap/ushell/Fiori20AdapterTest.js +1 -1
  8. package/src/main/js/sap/ushell/NWBCInterface.js +1 -1
  9. package/src/main/js/sap/ushell/TechnicalParameters.js +1 -1
  10. package/src/main/js/sap/ushell/URLTemplateProcessor/DefinitionParameterSetBuilder.js +1 -1
  11. package/src/main/js/sap/ushell/URLTemplateProcessor/DependencyGraph.js +1 -1
  12. package/src/main/js/sap/ushell/URLTemplateProcessor/Functions.js +1 -1
  13. package/src/main/js/sap/ushell/URLTemplateProcessor/Resolvers.js +1 -1
  14. package/src/main/js/sap/ushell/URLTemplateProcessor/TemplateParameterParser.js +1 -1
  15. package/src/main/js/sap/ushell/URLTemplateProcessor/utils.js +1 -1
  16. package/src/main/js/sap/ushell/URLTemplateProcessor.js +1 -1
  17. package/src/main/js/sap/ushell/Ui5NativeServiceFactory.js +12 -12
  18. package/src/main/js/sap/ushell/Ui5ServiceFactory.js +1 -1
  19. package/src/main/js/sap/ushell/User.js +32 -12
  20. package/src/main/js/sap/ushell/adapters/cdm/ClientSideTargetResolutionAdapter.js +1 -1
  21. package/src/main/js/sap/ushell/adapters/cdm/CommonDataModelAdapter.js +1 -1
  22. package/src/main/js/sap/ushell/adapters/cdm/ConfigurationDefaultsAdapter.js +1 -1
  23. package/src/main/js/sap/ushell/adapters/cdm/ContainerAdapter.js +1 -1
  24. package/src/main/js/sap/ushell/adapters/cdm/LaunchPageAdapter.js +1 -1
  25. package/src/main/js/sap/ushell/adapters/cdm/PagesCommonDataModelAdapter.js +1 -1
  26. package/src/main/js/sap/ushell/adapters/cdm/PersonalizationAdapter.js +1 -1
  27. package/src/main/js/sap/ushell/adapters/cdm/PersonalizationV2Adapter.js +1 -1
  28. package/src/main/js/sap/ushell/adapters/cdm/Ui5ComponentLoaderAdapter.js +1 -1
  29. package/src/main/js/sap/ushell/adapters/cdm/_LaunchPage/modifyHome.js +1 -1
  30. package/src/main/js/sap/ushell/adapters/cdm/_LaunchPage/readCatalogs.js +1 -1
  31. package/src/main/js/sap/ushell/adapters/cdm/_LaunchPage/readHome.js +1 -1
  32. package/src/main/js/sap/ushell/adapters/cdm/_LaunchPage/uri.transform.js +1 -1
  33. package/src/main/js/sap/ushell/adapters/cdm/util/AppForInbound.js +1 -1
  34. package/src/main/js/sap/ushell/adapters/cdm/util/cdmSiteUtils.js +1 -1
  35. package/src/main/js/sap/ushell/adapters/cdm/v3/AdapterBase.js +1 -1
  36. package/src/main/js/sap/ushell/adapters/cdm/v3/FlpLaunchPageAdapter.js +1 -1
  37. package/src/main/js/sap/ushell/adapters/cdm/v3/LaunchPageAdapter.js +1 -1
  38. package/src/main/js/sap/ushell/adapters/cdm/v3/StaticGroupsAdapter.js +1 -1
  39. package/src/main/js/sap/ushell/adapters/cdm/v3/_LaunchPage/readApplications.js +1 -1
  40. package/src/main/js/sap/ushell/adapters/cdm/v3/_LaunchPage/readCatalogs.js +1 -1
  41. package/src/main/js/sap/ushell/adapters/cdm/v3/_LaunchPage/readHome.js +1 -1
  42. package/src/main/js/sap/ushell/adapters/cdm/v3/_LaunchPage/readPages.js +1 -1
  43. package/src/main/js/sap/ushell/adapters/cdm/v3/_LaunchPage/readUtils.js +1 -1
  44. package/src/main/js/sap/ushell/adapters/cdm/v3/_LaunchPage/readVisualizations.js +1 -1
  45. package/src/main/js/sap/ushell/adapters/cep/MenuAdapter.js +12 -58
  46. package/src/main/js/sap/ushell/adapters/cep/NavTargetResolutionAdapter.js +1 -1
  47. package/src/main/js/sap/ushell/adapters/cep/NavTargetResolutionInternalAdapter.js +1 -1
  48. package/src/main/js/sap/ushell/adapters/cep/SearchCEPAdapter.js +1 -1
  49. package/src/main/js/sap/ushell/adapters/cflp/UserDefaultParameterPersistenceAdapter.js +1 -1
  50. package/src/main/js/sap/ushell/adapters/local/AdapterContainer.js +1 -1
  51. package/src/main/js/sap/ushell/adapters/local/AppStateAdapter.js +1 -1
  52. package/src/main/js/sap/ushell/adapters/local/ClientSideTargetResolutionAdapter.js +1 -1
  53. package/src/main/js/sap/ushell/adapters/local/ContainerAdapter.js +1 -1
  54. package/src/main/js/sap/ushell/adapters/local/FlpLaunchPageAdapter.js +1 -1
  55. package/src/main/js/sap/ushell/adapters/local/LaunchPageAdapter.js +1 -1
  56. package/src/main/js/sap/ushell/adapters/local/NavTargetResolutionAdapter.js +1 -1
  57. package/src/main/js/sap/ushell/adapters/local/NavTargetResolutionInternalAdapter.js +1 -1
  58. package/src/main/js/sap/ushell/adapters/local/PageBuildingAdapter.js +1 -1
  59. package/src/main/js/sap/ushell/adapters/local/PagePersistenceAdapter.js +1 -1
  60. package/src/main/js/sap/ushell/adapters/local/PersonalizationAdapter.js +1 -1
  61. package/src/main/js/sap/ushell/adapters/local/PersonalizationV2Adapter.js +1 -1
  62. package/src/main/js/sap/ushell/adapters/local/SearchAdapter.js +1 -1
  63. package/src/main/js/sap/ushell/adapters/local/SearchCEPAdapter.js +1 -1
  64. package/src/main/js/sap/ushell/adapters/local/SupportTicketAdapter.js +1 -1
  65. package/src/main/js/sap/ushell/adapters/local/Ui5ComponentLoaderAdapter.js +1 -1
  66. package/src/main/js/sap/ushell/adapters/local/UserDefaultParameterPersistenceAdapter.js +1 -1
  67. package/src/main/js/sap/ushell/adapters/local/UserInfoAdapter.js +1 -1
  68. package/src/main/js/sap/ushell/appIntegration/AppLifeCycle.js +3 -5
  69. package/src/main/js/sap/ushell/appIntegration/ApplicationContainer.js +14 -1
  70. package/src/main/js/sap/ushell/appIntegration/ApplicationHandle.js +8 -3
  71. package/src/main/js/sap/ushell/appIntegration/IframeApplicationContainer.js +8 -8
  72. package/src/main/js/sap/ushell/appIntegration/PostMessageManager/AppruntimeHandler.js +17 -12
  73. package/src/main/js/sap/ushell/appIntegration/PostMessageManager/ExtensionItems.js +6 -23
  74. package/src/main/js/sap/ushell/appIntegration/PostMessageManager/LifecycleHandler.js +112 -92
  75. package/src/main/js/sap/ushell/appIntegration/PostMessageManager/NWBCHandler.js +15 -7
  76. package/src/main/js/sap/ushell/appIntegration/PostMessageManager/ServiceHandler.js +257 -214
  77. package/src/main/js/sap/ushell/appIntegration/PostMessageManager.js +347 -117
  78. package/src/main/js/sap/ushell/appIntegration/UI5ApplicationContainer.js +1 -0
  79. package/src/main/js/sap/ushell/appIntegration/contracts/EmbeddedUI5Handler.js +15 -19
  80. package/src/main/js/sap/ushell/appIntegration/contracts/StatefulContainerV1Handler.js +15 -14
  81. package/src/main/js/sap/ushell/appIntegration/contracts/StatefulContainerV2Handler.js +38 -40
  82. package/src/main/js/sap/ushell/appRuntime/ui5/renderers/fiori2/RendererExtensions.js +1 -1
  83. package/src/main/js/sap/ushell/appRuntime/ui5/services/AppConfiguration.js +1 -1
  84. package/src/main/js/sap/ushell/appRuntime/ui5/services/AppLifeCycle.js +1 -1
  85. package/src/main/js/sap/ushell/appRuntime/ui5/services/AppState.js +1 -8
  86. package/src/main/js/sap/ushell/appRuntime/ui5/services/Bookmark.js +1 -1
  87. package/src/main/js/sap/ushell/appRuntime/ui5/services/BookmarkV2.js +1 -1
  88. package/src/main/js/sap/ushell/appRuntime/ui5/services/CommonDataModel.js +1 -1
  89. package/src/main/js/sap/ushell/appRuntime/ui5/services/Container.js +1 -1
  90. package/src/main/js/sap/ushell/appRuntime/ui5/services/CrossApplicationNavigation.js +1 -1
  91. package/src/main/js/sap/ushell/appRuntime/ui5/services/Extension/Item.js +1 -1
  92. package/src/main/js/sap/ushell/appRuntime/ui5/services/Extension.js +25 -1
  93. package/src/main/js/sap/ushell/appRuntime/ui5/services/FlpLaunchPage.js +1 -1
  94. package/src/main/js/sap/ushell/appRuntime/ui5/services/FrameBoundExtension.js +1 -1
  95. package/src/main/js/sap/ushell/appRuntime/ui5/services/LaunchPage.js +1 -1
  96. package/src/main/js/sap/ushell/appRuntime/ui5/services/MessageBroker.js +1 -1
  97. package/src/main/js/sap/ushell/appRuntime/ui5/services/NavTargetResolution.js +1 -1
  98. package/src/main/js/sap/ushell/appRuntime/ui5/services/NavTargetResolutionInternal.js +1 -1
  99. package/src/main/js/sap/ushell/appRuntime/ui5/services/Navigation.js +1 -1
  100. package/src/main/js/sap/ushell/appRuntime/ui5/services/ReferenceResolver.js +1 -1
  101. package/src/main/js/sap/ushell/appRuntime/ui5/services/ShellNavigation.js +1 -1
  102. package/src/main/js/sap/ushell/appRuntime/ui5/services/ShellNavigationInternal.js +1 -1
  103. package/src/main/js/sap/ushell/appRuntime/ui5/services/ShellUIService.js +1 -1
  104. package/src/main/js/sap/ushell/appRuntime/ui5/services/UserInfo.js +1 -1
  105. package/src/main/js/sap/ushell/appRuntime/ui5/services/adapters/Ui5ComponentLoaderAdapter.js +1 -1
  106. package/src/main/js/sap/ushell/bootstrap/SchedulingAgent/StepConfiguration.json +0 -2
  107. package/src/main/js/sap/ushell/bootstrap/SchedulingAgent/logger.js +1 -1
  108. package/src/main/js/sap/ushell/bootstrap/SchedulingAgent/state.js +1 -1
  109. package/src/main/js/sap/ushell/bootstrap/common/common.configure.ui5datetimeformat.js +1 -1
  110. package/src/main/js/sap/ushell/bootstrap/common/common.create.configcontract.core.js +4 -1
  111. package/src/main/js/sap/ushell/bootstrap/sandbox2.js +1 -1
  112. package/src/main/js/sap/ushell/components/CatalogsManager.js +157 -157
  113. package/src/main/js/sap/ushell/components/ComponentKeysHandler.js +180 -187
  114. package/src/main/js/sap/ushell/components/DestroyHelper.js +4 -4
  115. package/src/main/js/sap/ushell/components/GroupsHelper.js +21 -21
  116. package/src/main/js/sap/ushell/components/HomepageManager.js +465 -424
  117. package/src/main/js/sap/ushell/components/MessagingHelper.js +24 -24
  118. package/src/main/js/sap/ushell/components/SharedComponentUtils.js +16 -16
  119. package/src/main/js/sap/ushell/components/_HomepageManager/DashboardLoadingManager.js +43 -43
  120. package/src/main/js/sap/ushell/components/_HomepageManager/PagingManager.js +43 -39
  121. package/src/main/js/sap/ushell/components/_HomepageManager/PersistentPageOperationAdapter.js +166 -175
  122. package/src/main/js/sap/ushell/components/_HomepageManager/TransientPageOperationAdapter.js +57 -57
  123. package/src/main/js/sap/ushell/components/appfinder/AppFinder.controller.js +96 -99
  124. package/src/main/js/sap/ushell/components/appfinder/AppFinderView.js +27 -21
  125. package/src/main/js/sap/ushell/components/appfinder/Catalog.controller.js +180 -178
  126. package/src/main/js/sap/ushell/components/appfinder/CatalogView.js +56 -56
  127. package/src/main/js/sap/ushell/components/appfinder/Component.js +12 -16
  128. package/src/main/js/sap/ushell/components/appfinder/EasyAccess.controller.js +129 -133
  129. package/src/main/js/sap/ushell/components/appfinder/EasyAccessView.js +10 -10
  130. package/src/main/js/sap/ushell/components/appfinder/GroupListPopover.controller.js +22 -22
  131. package/src/main/js/sap/ushell/components/appfinder/GroupListPopoverView.js +14 -14
  132. package/src/main/js/sap/ushell/components/appfinder/HierarchyApps.controller.js +75 -78
  133. package/src/main/js/sap/ushell/components/appfinder/HierarchyAppsView.js +24 -27
  134. package/src/main/js/sap/ushell/components/appfinder/HierarchyFolders.controller.js +44 -46
  135. package/src/main/js/sap/ushell/components/appfinder/HierarchyFoldersView.js +22 -22
  136. package/src/main/js/sap/ushell/components/appfinder/VisualizationOrganizerHelper.js +28 -28
  137. package/src/main/js/sap/ushell/components/appfinder/manifest.json +1 -1
  138. package/src/main/js/sap/ushell/components/cards/Card.controller.js +16 -20
  139. package/src/main/js/sap/ushell/components/cards/Configuration.controller.js +35 -37
  140. package/src/main/js/sap/ushell/components/cards/ManifestPropertyHelper.js +32 -34
  141. package/src/main/js/sap/ushell/components/cepsearchresult/app/Main.controller.js +7 -12
  142. package/src/main/js/sap/ushell/components/cepsearchresult/app/Main.view.xml +2 -9
  143. package/src/main/js/sap/ushell/components/cepsearchresult/app/cards/searchresultwidget/Extension.js +0 -1
  144. package/src/main/js/sap/ushell/components/cepsearchresult/app/css/style.css +58 -0
  145. package/src/main/js/sap/ushell/components/cepsearchresult/app/util/AdvancedFormatters.js +0 -1
  146. package/src/main/js/sap/ushell/components/cepsearchresult/app/util/Edition.js +0 -1
  147. package/src/main/js/sap/ushell/components/cepsearchresult/app/util/EditionAdvanced.js +0 -1
  148. package/src/main/js/sap/ushell/components/cepsearchresult/app/util/appendStyleVars.js +0 -1
  149. package/src/main/js/sap/ushell/components/cepsearchresult/app/util/controls/Category.js +13 -13
  150. package/src/main/js/sap/ushell/components/cepsearchresult/app/util/controls/Highlighter.js +2 -5
  151. package/src/main/js/sap/ushell/components/cepsearchresult/app/util/controls/Paginator.js +0 -2
  152. package/src/main/js/sap/ushell/components/cepsearchresult/app/util/controls/categories/Event.js +4 -3
  153. package/src/main/js/sap/ushell/components/contentFinder/CatalogService.js +8 -9
  154. package/src/main/js/sap/ushell/components/contentFinder/Component.js +2 -2
  155. package/src/main/js/sap/ushell/components/contentFinder/controller/AppSearch.controller.js +1 -3
  156. package/src/main/js/sap/ushell/components/contentFinder/controller/ContentFinderDialog.controller.js +1 -1
  157. package/src/main/js/sap/ushell/components/contentFinder/dialog/Component.js +2 -2
  158. package/src/main/js/sap/ushell/components/contentFinder/dialog/manifest.json +1 -1
  159. package/src/main/js/sap/ushell/components/contentFinder/manifest.json +1 -1
  160. package/src/main/js/sap/ushell/components/contentFinder/model/GraphQLListBinding.js +3 -5
  161. package/src/main/js/sap/ushell/components/contentFinder/model/GraphQLModel.js +2 -2
  162. package/src/main/js/sap/ushell/components/contentFinder/model/formatter.js +13 -6
  163. package/src/main/js/sap/ushell/components/contentFinder/resources/resources.properties +3 -3
  164. package/src/main/js/sap/ushell/components/contentFinder/resources/resources_en_US_saprigi.properties +1 -1
  165. package/src/main/js/sap/ushell/components/contentFinder/view/AppSearch.view.xml +2 -14
  166. package/src/main/js/sap/ushell/components/contentFinder/view/AppSearchCategoryTreeTable.fragment.xml +14 -7
  167. package/src/main/js/sap/ushell/components/contentFinder/view/VisualizationsNoDataIllustratedMessage.fragment.xml +1 -1
  168. package/src/main/js/sap/ushell/components/contentFinderStandalone/Component.js +2 -2
  169. package/src/main/js/sap/ushell/components/contentFinderStandalone/controller/ContentFinderStandalone.controller.js +2 -4
  170. package/src/main/js/sap/ushell/components/contentFinderStandalone/manifest.json +1 -1
  171. package/src/main/js/sap/ushell/components/factsheet/Component.js +13 -8
  172. package/src/main/js/sap/ushell/components/factsheet/annotation/Mapping.js +166 -118
  173. package/src/main/js/sap/ushell/components/factsheet/controls/PictureTile.js +20 -16
  174. package/src/main/js/sap/ushell/components/factsheet/controls/PictureTileRenderer.js +3 -3
  175. package/src/main/js/sap/ushell/components/factsheet/controls/PictureViewer.js +84 -77
  176. package/src/main/js/sap/ushell/components/factsheet/controls/PictureViewerItem.js +4 -4
  177. package/src/main/js/sap/ushell/components/factsheet/controls/PictureViewerRenderer.js +2 -2
  178. package/src/main/js/sap/ushell/components/factsheet/factory/ThingInspector.js +1356 -1139
  179. package/src/main/js/sap/ushell/components/factsheet/tools/ODataUrlTemplating.js +9 -5
  180. package/src/main/js/sap/ushell/components/factsheet/views/ThingViewer.controller.js +1 -1
  181. package/src/main/js/sap/ushell/components/factsheet/views/ThingViewer.view.js +9 -6
  182. package/src/main/js/sap/ushell/components/homeApp/error/Component.js +1 -1
  183. package/src/main/js/sap/ushell/components/homeApp/error/HomeAppError.controller.js +4 -4
  184. package/src/main/js/sap/ushell/components/homepage/ActionMode.js +51 -48
  185. package/src/main/js/sap/ushell/components/homepage/Component.js +11 -11
  186. package/src/main/js/sap/ushell/components/homepage/DashboardContent.controller.js +185 -192
  187. package/src/main/js/sap/ushell/components/homepage/DashboardContent.view.js +60 -50
  188. package/src/main/js/sap/ushell/components/homepage/DashboardGroupsBox.js +199 -202
  189. package/src/main/js/sap/ushell/components/homepage/DashboardUIActions.js +152 -160
  190. package/src/main/js/sap/ushell/components/homepage/manifest.json +1 -1
  191. package/src/main/js/sap/ushell/components/pages/ActionMode.js +72 -74
  192. package/src/main/js/sap/ushell/components/pages/Component.js +7 -32
  193. package/src/main/js/sap/ushell/components/pages/MyHomeImport.js +46 -46
  194. package/src/main/js/sap/ushell/components/pages/StateManager.js +9 -10
  195. package/src/main/js/sap/ushell/components/pages/controller/MyHome.controller.js +4 -4
  196. package/src/main/js/sap/ushell/components/pages/controller/PageRuntime.controller.js +243 -215
  197. package/src/main/js/sap/ushell/components/pages/controller/PagesAndSpaceId.js +23 -24
  198. package/src/main/js/sap/ushell/components/pages/manifest.json +1 -1
  199. package/src/main/js/sap/ushell/components/runtimeSwitcher/Component.js +1 -1
  200. package/src/main/js/sap/ushell/components/runtimeSwitcher/controller/RuntimeSwitcher.controller.js +60 -70
  201. package/src/main/js/sap/ushell/components/runtimeSwitcher/manifest.json +1 -1
  202. package/src/main/js/sap/ushell/components/shell/FloatingContainer/Component.js +0 -5
  203. package/src/main/js/sap/ushell/components/shell/FloatingContainer/controls/FloatingContainer.js +3 -3
  204. package/src/main/js/sap/ushell/components/shell/FloatingContainer/manifest.json +1 -1
  205. package/src/main/js/sap/ushell/components/shell/MenuBar/Component.js +18 -50
  206. package/src/main/js/sap/ushell/components/shell/MenuBar/controller/MenuBar.controller.js +73 -83
  207. package/src/main/js/sap/ushell/components/shell/MenuBar/manifest.json +1 -1
  208. package/src/main/js/sap/ushell/components/shell/NavigationBarMenu/Component.js +1 -1
  209. package/src/main/js/sap/ushell/components/shell/NavigationBarMenu/controller/NavigationBarMenu.controller.js +49 -50
  210. package/src/main/js/sap/ushell/components/shell/NavigationBarMenu/controller/NavigationBarMenuButton.controller.js +5 -5
  211. package/src/main/js/sap/ushell/components/shell/NavigationBarMenu/manifest.json +1 -1
  212. package/src/main/js/sap/ushell/components/shell/Notifications/Component.js +35 -33
  213. package/src/main/js/sap/ushell/components/shell/Notifications/Notifications.controller.js +8 -9
  214. package/src/main/js/sap/ushell/components/shell/Notifications/NotificationsList.controller.js +5 -11
  215. package/src/main/js/sap/ushell/components/shell/PostLoadingHeaderEnhancement/Component.js +63 -42
  216. package/src/main/js/sap/ushell/components/shell/ProductSwitch/Component.js +20 -22
  217. package/src/main/js/sap/ushell/components/shell/Search/Component.js +20 -12
  218. package/src/main/js/sap/ushell/components/shell/Search/ESearch.js +18 -21
  219. package/src/main/js/sap/ushell/components/shell/Search/manifest.json +1 -1
  220. package/src/main/js/sap/ushell/components/shell/SearchCEP/Component.js +21 -14
  221. package/src/main/js/sap/ushell/components/shell/SearchCEP/SearchCEP.controller.js +204 -250
  222. package/src/main/js/sap/ushell/components/shell/SearchCEP/SearchProviders/FrequentActivityProvider.js +25 -24
  223. package/src/main/js/sap/ushell/components/shell/SearchCEP/SearchProviders/RecentSearchProvider.js +9 -9
  224. package/src/main/js/sap/ushell/components/shell/SearchCEP/SearchProviders/SearchProvider.js +4 -4
  225. package/src/main/js/sap/ushell/components/shell/SearchCEP/SearchProviders/SearchServiceProvider.js +63 -65
  226. package/src/main/js/sap/ushell/components/shell/SearchCEPNew/Component.js +420 -0
  227. package/src/main/js/sap/ushell/components/shell/SearchCEPNew/SearchProviders/FrequentActivityProvider.js +84 -0
  228. package/src/main/js/sap/ushell/components/shell/SearchCEPNew/SearchProviders/RecentSearchProvider.js +63 -0
  229. package/src/main/js/sap/ushell/components/shell/SearchCEPNew/SearchProviders/SearchProvider.js +141 -0
  230. package/src/main/js/sap/ushell/components/shell/SearchCEPNew/SearchProviders/SearchServiceProvider.js +177 -0
  231. package/src/main/js/sap/ushell/components/shell/SearchCEPNew/manifest.json +43 -0
  232. package/src/main/js/sap/ushell/components/shell/SearchCEPNew/resources/resources.properties +17 -0
  233. package/src/main/js/sap/ushell/components/shell/Settings/Component.js +50 -35
  234. package/src/main/js/sap/ushell/components/shell/Settings/ErrorMessageHelper.js +10 -10
  235. package/src/main/js/sap/ushell/components/shell/Settings/UserSettings.controller.js +150 -150
  236. package/src/main/js/sap/ushell/components/shell/Settings/appearance/Appearance.controller.js +66 -63
  237. package/src/main/js/sap/ushell/components/shell/Settings/appearance/AppearanceEntry.js +12 -15
  238. package/src/main/js/sap/ushell/components/shell/Settings/homepage/HomepageEntry.js +34 -37
  239. package/src/main/js/sap/ushell/components/shell/Settings/notifications/NotificationsEntry.js +6 -7
  240. package/src/main/js/sap/ushell/components/shell/Settings/notifications/NotificationsSetting.controller.js +46 -48
  241. package/src/main/js/sap/ushell/components/shell/Settings/search/Search.controller.js +4 -4
  242. package/src/main/js/sap/ushell/components/shell/Settings/search/SearchEntry.js +13 -13
  243. package/src/main/js/sap/ushell/components/shell/Settings/spaces/SpacesEntry.js +11 -13
  244. package/src/main/js/sap/ushell/components/shell/Settings/spaces/SpacesSetting.controller.js +41 -42
  245. package/src/main/js/sap/ushell/components/shell/Settings/userAccount/UserAccountEntry.js +11 -15
  246. package/src/main/js/sap/ushell/components/shell/Settings/userAccount/UserAccountSelector.controller.js +35 -37
  247. package/src/main/js/sap/ushell/components/shell/Settings/userActivities/UserActivitiesEntry.js +6 -7
  248. package/src/main/js/sap/ushell/components/shell/Settings/userActivities/UserActivitiesSetting.controller.js +7 -8
  249. package/src/main/js/sap/ushell/components/shell/Settings/userDefaults/Component.js +2 -2
  250. package/src/main/js/sap/ushell/components/shell/Settings/userDefaults/UserDefaultsEntry.js +16 -16
  251. package/src/main/js/sap/ushell/components/shell/Settings/userDefaults/UserDefaultsForm.js +17 -17
  252. package/src/main/js/sap/ushell/components/shell/Settings/userDefaults/controller/ExtendedValueDialog.controller.js +21 -24
  253. package/src/main/js/sap/ushell/components/shell/Settings/userDefaults/controller/UserDefaultsSetting.controller.js +136 -137
  254. package/src/main/js/sap/ushell/components/shell/Settings/userLanguageRegion/LanguageRegionSelector.controller.js +73 -78
  255. package/src/main/js/sap/ushell/components/shell/Settings/userLanguageRegion/UserLanguageRegionEntry.js +8 -8
  256. package/src/main/js/sap/ushell/components/shell/ShellBar/Component.js +30 -23
  257. package/src/main/js/sap/ushell/components/shell/ShellBar/controller/ShellBar.controller.js +34 -22
  258. package/src/main/js/sap/ushell/components/shell/ShellBar/manifest.json +1 -1
  259. package/src/main/js/sap/ushell/components/shell/ShellBar/view/ShellBar.view.xml +21 -9
  260. package/src/main/js/sap/ushell/components/shell/SideNavigation/Component.js +7 -11
  261. package/src/main/js/sap/ushell/components/shell/SideNavigation/controller/SideNavigation.controller.js +3 -3
  262. package/src/main/js/sap/ushell/components/shell/SideNavigation/manifest.json +1 -1
  263. package/src/main/js/sap/ushell/components/shell/SideNavigation/modules/AllSpaces.js +3 -4
  264. package/src/main/js/sap/ushell/components/shell/SideNavigation/modules/AppFinder.js +2 -2
  265. package/src/main/js/sap/ushell/components/shell/SideNavigation/modules/Favorites.js +8 -3
  266. package/src/main/js/sap/ushell/components/shell/SideNavigation/modules/GenericFixedNavigationListProvider.js +2 -2
  267. package/src/main/js/sap/ushell/components/shell/SideNavigation/modules/GenericNavigationListProvider.js +2 -2
  268. package/src/main/js/sap/ushell/components/shell/SideNavigation/modules/MyHome.js +2 -2
  269. package/src/main/js/sap/ushell/components/shell/SideNavigation/modules/NavigationHelper.js +4 -4
  270. package/src/main/js/sap/ushell/components/shell/SideNavigation/modules/RecentActivity.js +4 -4
  271. package/src/main/js/sap/ushell/components/shell/SideNavigation/modules/Spaces.js +5 -6
  272. package/src/main/js/sap/ushell/components/shell/SideNavigation/modules/SpacesNavigationListProvider.js +2 -3
  273. package/src/main/js/sap/ushell/components/shell/UserActionsMenu/Component.js +3 -4
  274. package/src/main/js/sap/ushell/components/shell/UserActionsMenu/UserActionsMenu.controller.js +47 -48
  275. package/src/main/js/sap/ushell/components/shell/UserImage/Component.js +27 -30
  276. package/src/main/js/sap/ushell/components/tiles/action/ActionTile.controller.js +55 -55
  277. package/src/main/js/sap/ushell/components/tiles/action/Configuration.controller.js +39 -41
  278. package/src/main/js/sap/ushell/components/tiles/applauncher/Component.js +3 -3
  279. package/src/main/js/sap/ushell/components/tiles/applauncher/Configuration.controller.js +26 -27
  280. package/src/main/js/sap/ushell/components/tiles/applauncher/StaticTile.controller.js +66 -66
  281. package/src/main/js/sap/ushell/components/tiles/applauncher/StaticTile.view.js +5 -5
  282. package/src/main/js/sap/ushell/components/tiles/applauncherdynamic/Component.js +2 -2
  283. package/src/main/js/sap/ushell/components/tiles/applauncherdynamic/Configuration.controller.js +27 -27
  284. package/src/main/js/sap/ushell/components/tiles/applauncherdynamic/DynamicTile.controller.js +107 -107
  285. package/src/main/js/sap/ushell/components/tiles/applauncherdynamic/DynamicTile.view.js +7 -7
  286. package/src/main/js/sap/ushell/components/tiles/cdm/applauncher/Component.js +7 -7
  287. package/src/main/js/sap/ushell/components/tiles/cdm/applauncher/StaticTile.controller.js +31 -31
  288. package/src/main/js/sap/ushell/components/tiles/cdm/applauncher/StaticTile.view.js +2 -2
  289. package/src/main/js/sap/ushell/components/tiles/cdm/applauncherdynamic/Component.js +15 -15
  290. package/src/main/js/sap/ushell/components/tiles/cdm/applauncherdynamic/DynamicTile.controller.js +85 -86
  291. package/src/main/js/sap/ushell/components/tiles/cdm/applauncherdynamic/DynamicTile.view.js +4 -4
  292. package/src/main/js/sap/ushell/components/tiles/generic.js +133 -131
  293. package/src/main/js/sap/ushell/components/tiles/indicatorArea/AreaChartTile.controller.js +71 -71
  294. package/src/main/js/sap/ushell/components/tiles/indicatorArea/AreaChartTile.view.js +17 -17
  295. package/src/main/js/sap/ushell/components/tiles/indicatorDual/DualTile.controller.js +49 -49
  296. package/src/main/js/sap/ushell/components/tiles/indicatorDual/DualTile.view.js +9 -9
  297. package/src/main/js/sap/ushell/components/tiles/indicatorDualComparison/DualComparison.controller.js +80 -80
  298. package/src/main/js/sap/ushell/components/tiles/indicatorDualComparison/DualComparison.view.js +3 -3
  299. package/src/main/js/sap/ushell/components/tiles/indicatorDualContribution/DualContribution.controller.js +74 -75
  300. package/src/main/js/sap/ushell/components/tiles/indicatorDualContribution/DualContribution.view.js +3 -3
  301. package/src/main/js/sap/ushell/components/tiles/indicatorDualDeviation/DualDeviation.controller.js +55 -55
  302. package/src/main/js/sap/ushell/components/tiles/indicatorDualDeviation/DualDeviation.view.js +12 -12
  303. package/src/main/js/sap/ushell/components/tiles/indicatorDualTrend/DualTrend.controller.js +83 -84
  304. package/src/main/js/sap/ushell/components/tiles/indicatorDualTrend/DualTrend.view.js +15 -15
  305. package/src/main/js/sap/ushell/components/tiles/indicatorHarveyBall/HarveyBallTile.controller.js +71 -71
  306. package/src/main/js/sap/ushell/components/tiles/indicatorHarveyBall/HarveyBallTile.view.js +7 -7
  307. package/src/main/js/sap/ushell/components/tiles/indicatorTileUtils/cache.js +4 -4
  308. package/src/main/js/sap/ushell/components/tiles/indicatorTileUtils/indicatorTileHelper.js +4 -4
  309. package/src/main/js/sap/ushell/components/tiles/indicatorTileUtils/oData4Analytics.js +230 -232
  310. package/src/main/js/sap/ushell/components/tiles/indicatorTileUtils/smartBusinessUtil.js +271 -272
  311. package/src/main/js/sap/ushell/components/tiles/indicatorcomparison/ComparisonTile.controller.js +55 -55
  312. package/src/main/js/sap/ushell/components/tiles/indicatorcomparison/ComparisonTile.view.js +4 -4
  313. package/src/main/js/sap/ushell/components/tiles/indicatorcontribution/ContributionTile.controller.js +53 -53
  314. package/src/main/js/sap/ushell/components/tiles/indicatorcontribution/ContributionTile.view.js +5 -5
  315. package/src/main/js/sap/ushell/components/tiles/indicatordeviation/DeviationTile.controller.js +20 -20
  316. package/src/main/js/sap/ushell/components/tiles/indicatordeviation/DeviationTile.view.js +11 -11
  317. package/src/main/js/sap/ushell/components/tiles/indicatornumeric/NumericTile.controller.js +14 -15
  318. package/src/main/js/sap/ushell/components/tiles/indicatornumeric/NumericTile.view.js +10 -10
  319. package/src/main/js/sap/ushell/components/tiles/sbtilecontent.js +6 -6
  320. package/src/main/js/sap/ushell/components/tiles/utils.js +699 -664
  321. package/src/main/js/sap/ushell/components/visualizationOrganizer/Component.js +217 -217
  322. package/src/main/js/sap/ushell/components/workPageBuilder/Component.js +4 -8
  323. package/src/main/js/sap/ushell/components/workPageBuilder/controller/WorkPageBuilder.accessibility.js +40 -42
  324. package/src/main/js/sap/ushell/components/workPageBuilder/controller/WorkPageBuilder.controller.js +257 -262
  325. package/src/main/js/sap/ushell/components/workPageBuilder/controller/WorkPageBuilder.layout.js +19 -20
  326. package/src/main/js/sap/ushell/components/workPageBuilder/controls/WorkPage.js +6 -6
  327. package/src/main/js/sap/ushell/components/workPageBuilder/controls/WorkPageButton.js +37 -38
  328. package/src/main/js/sap/ushell/components/workPageBuilder/controls/WorkPageCell.js +97 -100
  329. package/src/main/js/sap/ushell/components/workPageBuilder/controls/WorkPageColumn.js +81 -82
  330. package/src/main/js/sap/ushell/components/workPageBuilder/controls/WorkPageColumnRenderer.js +9 -9
  331. package/src/main/js/sap/ushell/components/workPageBuilder/controls/WorkPageColumnResizer.js +38 -39
  332. package/src/main/js/sap/ushell/components/workPageBuilder/controls/WorkPageRenderer.js +5 -5
  333. package/src/main/js/sap/ushell/components/workPageBuilder/controls/WorkPageRow.js +8 -9
  334. package/src/main/js/sap/ushell/components/workPageBuilder/controls/WorkPageRowRenderer.js +9 -9
  335. package/src/main/js/sap/ushell/components/workPageBuilder/manifest.json +1 -1
  336. package/src/main/js/sap/ushell/components/workPageRuntime/Component.js +4 -4
  337. package/src/main/js/sap/ushell/components/workPageRuntime/controller/WorkPageRuntime.controller.js +15 -15
  338. package/src/main/js/sap/ushell/components/workPageRuntime/manifest.json +1 -1
  339. package/src/main/js/sap/ushell/designtime/ApplicationContainer.designtime.js +1 -1
  340. package/src/main/js/sap/ushell/gen/ui5/webcomponents/dist/Avatar.js +7 -1
  341. package/src/main/js/sap/ushell/gen/ui5/webcomponents/dist/ListItemGroup.js +90 -0
  342. package/src/main/js/sap/ushell/gen/ui5/webcomponents/dist/MenuItem.js +10 -0
  343. package/src/main/js/sap/ushell/gen/ui5/webcomponents-base.js +19 -11
  344. package/src/main/js/sap/ushell/gen/ui5/webcomponents-fiori/dist/Search.js +144 -0
  345. package/src/main/js/sap/ushell/gen/ui5/webcomponents-fiori/dist/SearchItem.js +68 -0
  346. package/src/main/js/sap/ushell/gen/ui5/webcomponents-fiori/dist/SearchItemGroup.js +34 -0
  347. package/src/main/js/sap/ushell/gen/ui5/webcomponents-fiori/dist/SearchMessageArea.js +51 -0
  348. package/src/main/js/sap/ushell/gen/ui5/webcomponents-fiori/dist/SearchScope.js +55 -0
  349. package/src/main/js/sap/ushell/gen/ui5/webcomponents-fiori/dist/ShellBar.js +5 -0
  350. package/src/main/js/sap/ushell/gen/ui5/webcomponents-fiori/dist/ShellBarBranding.js +76 -0
  351. package/src/main/js/sap/ushell/gen/ui5/webcomponents-fiori/dist/ShellBarSearch.js +133 -0
  352. package/src/main/js/sap/ushell/gen/ui5/webcomponents-fiori.js +83 -1
  353. package/src/main/js/sap/ushell/gen/ui5/webcomponents.js +80 -2
  354. package/src/main/js/sap/ushell/library.js +1 -1
  355. package/src/main/js/sap/ushell/navigation/NavigationState.js +126 -0
  356. package/src/main/js/sap/ushell/navigationMode.js +1 -1
  357. package/src/main/js/sap/ushell/performance/ShellAnalytics.js +1 -1
  358. package/src/main/js/sap/ushell/performance/StatisticalRecord.js +1 -1
  359. package/src/main/js/sap/ushell/plugins/appwarmup/Component.js +1 -1
  360. package/src/main/js/sap/ushell/renderer/AccessKeysHandler.js +8 -4
  361. package/src/main/js/sap/ushell/renderer/Renderer.js +19 -7
  362. package/src/main/js/sap/ushell/renderer/Shell.controller.js +11 -5
  363. package/src/main/js/sap/ushell/renderer/Shell.view.js +4 -1
  364. package/src/main/js/sap/ushell/renderer/resources/resources_ar.properties +2 -0
  365. package/src/main/js/sap/ushell/renderer/resources/resources_bg.properties +2 -0
  366. package/src/main/js/sap/ushell/renderer/resources/resources_ca.properties +2 -0
  367. package/src/main/js/sap/ushell/renderer/resources/resources_cnr.properties +2 -0
  368. package/src/main/js/sap/ushell/renderer/resources/resources_cs.properties +2 -0
  369. package/src/main/js/sap/ushell/renderer/resources/resources_cy.properties +2 -0
  370. package/src/main/js/sap/ushell/renderer/resources/resources_da.properties +2 -0
  371. package/src/main/js/sap/ushell/renderer/resources/resources_de.properties +2 -0
  372. package/src/main/js/sap/ushell/renderer/resources/resources_el.properties +2 -0
  373. package/src/main/js/sap/ushell/renderer/resources/resources_en.properties +2 -0
  374. package/src/main/js/sap/ushell/renderer/resources/resources_en_GB.properties +2 -0
  375. package/src/main/js/sap/ushell/renderer/resources/resources_en_US_saprigi.properties +2 -0
  376. package/src/main/js/sap/ushell/renderer/resources/resources_es.properties +2 -0
  377. package/src/main/js/sap/ushell/renderer/resources/resources_es_MX.properties +2 -0
  378. package/src/main/js/sap/ushell/renderer/resources/resources_et.properties +2 -0
  379. package/src/main/js/sap/ushell/renderer/resources/resources_fi.properties +2 -0
  380. package/src/main/js/sap/ushell/renderer/resources/resources_fr.properties +2 -0
  381. package/src/main/js/sap/ushell/renderer/resources/resources_fr_CA.properties +2 -0
  382. package/src/main/js/sap/ushell/renderer/resources/resources_hi.properties +2 -0
  383. package/src/main/js/sap/ushell/renderer/resources/resources_hr.properties +2 -0
  384. package/src/main/js/sap/ushell/renderer/resources/resources_hu.properties +3 -1
  385. package/src/main/js/sap/ushell/renderer/resources/resources_id.properties +2 -0
  386. package/src/main/js/sap/ushell/renderer/resources/resources_it.properties +2 -0
  387. package/src/main/js/sap/ushell/renderer/resources/resources_iw.properties +2 -0
  388. package/src/main/js/sap/ushell/renderer/resources/resources_ja.properties +2 -0
  389. package/src/main/js/sap/ushell/renderer/resources/resources_kk.properties +2 -0
  390. package/src/main/js/sap/ushell/renderer/resources/resources_ko.properties +2 -0
  391. package/src/main/js/sap/ushell/renderer/resources/resources_lt.properties +2 -0
  392. package/src/main/js/sap/ushell/renderer/resources/resources_lv.properties +2 -0
  393. package/src/main/js/sap/ushell/renderer/resources/resources_mk.properties +2 -0
  394. package/src/main/js/sap/ushell/renderer/resources/resources_ms.properties +2 -0
  395. package/src/main/js/sap/ushell/renderer/resources/resources_nl.properties +2 -0
  396. package/src/main/js/sap/ushell/renderer/resources/resources_no.properties +2 -0
  397. package/src/main/js/sap/ushell/renderer/resources/resources_pl.properties +2 -0
  398. package/src/main/js/sap/ushell/renderer/resources/resources_pt.properties +2 -0
  399. package/src/main/js/sap/ushell/renderer/resources/resources_pt_PT.properties +2 -0
  400. package/src/main/js/sap/ushell/renderer/resources/resources_ro.properties +2 -0
  401. package/src/main/js/sap/ushell/renderer/resources/resources_ru.properties +2 -0
  402. package/src/main/js/sap/ushell/renderer/resources/resources_sh.properties +2 -0
  403. package/src/main/js/sap/ushell/renderer/resources/resources_sk.properties +2 -0
  404. package/src/main/js/sap/ushell/renderer/resources/resources_sl.properties +3 -1
  405. package/src/main/js/sap/ushell/renderer/resources/resources_sr.properties +2 -0
  406. package/src/main/js/sap/ushell/renderer/resources/resources_sv.properties +2 -0
  407. package/src/main/js/sap/ushell/renderer/resources/resources_th.properties +2 -0
  408. package/src/main/js/sap/ushell/renderer/resources/resources_tr.properties +2 -0
  409. package/src/main/js/sap/ushell/renderer/resources/resources_uk.properties +2 -0
  410. package/src/main/js/sap/ushell/renderer/resources/resources_vi.properties +3 -1
  411. package/src/main/js/sap/ushell/renderer/resources/resources_zh_CN.properties +2 -0
  412. package/src/main/js/sap/ushell/renderer/resources/resources_zh_TW.properties +2 -0
  413. package/src/main/js/sap/ushell/renderer/search/searchComponent/manifest.json +1 -1
  414. package/src/main/js/sap/ushell/services/AllMyApps.js +5 -5
  415. package/src/main/js/sap/ushell/services/AppConfiguration.js +3 -5
  416. package/src/main/js/sap/ushell/services/AppLifeCycle.js +2 -2
  417. package/src/main/js/sap/ushell/services/AppState.js +86 -102
  418. package/src/main/js/sap/ushell/services/AppType.js +2 -2
  419. package/src/main/js/sap/ushell/services/Bookmark.js +156 -164
  420. package/src/main/js/sap/ushell/services/BookmarkV2.js +10 -13
  421. package/src/main/js/sap/ushell/services/ClientSideTargetResolution/Formatter.js +1 -1
  422. package/src/main/js/sap/ushell/services/ClientSideTargetResolution/InboundIndex.js +1 -1
  423. package/src/main/js/sap/ushell/services/ClientSideTargetResolution/InboundProvider.js +1 -1
  424. package/src/main/js/sap/ushell/services/ClientSideTargetResolution/PrelaunchOperations.js +1 -1
  425. package/src/main/js/sap/ushell/services/ClientSideTargetResolution/Search.js +1 -1
  426. package/src/main/js/sap/ushell/services/ClientSideTargetResolution/StagedLogger.js +1 -1
  427. package/src/main/js/sap/ushell/services/ClientSideTargetResolution/SystemContext.js +1 -1
  428. package/src/main/js/sap/ushell/services/ClientSideTargetResolution/Utils.js +1 -1
  429. package/src/main/js/sap/ushell/services/ClientSideTargetResolution/VirtualInbounds.js +1 -1
  430. package/src/main/js/sap/ushell/services/ClientSideTargetResolution/XAppStateProcessing.js +1 -1
  431. package/src/main/js/sap/ushell/services/ClientSideTargetResolution.js +27 -31
  432. package/src/main/js/sap/ushell/services/CommonDataModel/SiteConverter.js +1 -1
  433. package/src/main/js/sap/ushell/services/CommonDataModel/vizTypeDefaults/VizTypeDefaults.js +1 -1
  434. package/src/main/js/sap/ushell/services/CommonDataModel.js +295 -353
  435. package/src/main/js/sap/ushell/services/Configuration.js +14 -12
  436. package/src/main/js/sap/ushell/services/ConfigurationDefaults.js +34 -35
  437. package/src/main/js/sap/ushell/services/Container.js +2 -2
  438. package/src/main/js/sap/ushell/services/ContentExtensionAdapterFactory.js +29 -62
  439. package/src/main/js/sap/ushell/services/CrossApplicationNavigation.js +227 -266
  440. package/src/main/js/sap/ushell/services/DarkModeSupport.js +17 -16
  441. package/src/main/js/sap/ushell/services/EndUserFeedback.js +5 -4
  442. package/src/main/js/sap/ushell/services/Extension/Item.js +7 -12
  443. package/src/main/js/sap/ushell/services/Extension.js +54 -19
  444. package/src/main/js/sap/ushell/services/FlpLaunchPage.js +209 -213
  445. package/src/main/js/sap/ushell/services/FrameBoundExtension/FloatingContainer.js +3 -3
  446. package/src/main/js/sap/ushell/services/FrameBoundExtension/Footer.js +3 -3
  447. package/src/main/js/sap/ushell/services/FrameBoundExtension/Item.js +6 -6
  448. package/src/main/js/sap/ushell/services/FrameBoundExtension/SidePane.js +1 -1
  449. package/src/main/js/sap/ushell/services/FrameBoundExtension/ToolArea.js +1 -1
  450. package/src/main/js/sap/ushell/services/FrameBoundExtension/UserSettingsEntry.js +4 -4
  451. package/src/main/js/sap/ushell/services/FrameBoundExtension.js +3 -3
  452. package/src/main/js/sap/ushell/services/LaunchPage.js +1 -2
  453. package/src/main/js/sap/ushell/services/Menu.js +264 -289
  454. package/src/main/js/sap/ushell/services/Message.js +3 -3
  455. package/src/main/js/sap/ushell/services/MessageBroker/MessageBrokerEngine.js +6 -29
  456. package/src/main/js/sap/ushell/services/MessageBroker.js +14 -10
  457. package/src/main/js/sap/ushell/services/MessageInternal.js +37 -38
  458. package/src/main/js/sap/ushell/services/NavTargetResolution.js +2 -5
  459. package/src/main/js/sap/ushell/services/NavTargetResolutionInternal.js +153 -157
  460. package/src/main/js/sap/ushell/services/Navigation/compatibility.js +4 -6
  461. package/src/main/js/sap/ushell/services/Navigation/utils.js +62 -64
  462. package/src/main/js/sap/ushell/services/Navigation.js +10 -14
  463. package/src/main/js/sap/ushell/services/NavigationDataProvider.js +2 -2
  464. package/src/main/js/sap/ushell/services/Notifications.js +29 -15
  465. package/src/main/js/sap/ushell/services/NotificationsV2.js +86 -98
  466. package/src/main/js/sap/ushell/services/PageBuilding.js +9 -6
  467. package/src/main/js/sap/ushell/services/PagePersistence.js +3 -3
  468. package/src/main/js/sap/ushell/services/PageReferencing.js +4 -2
  469. package/src/main/js/sap/ushell/services/Pages.js +635 -683
  470. package/src/main/js/sap/ushell/services/Personalization.js +103 -134
  471. package/src/main/js/sap/ushell/services/PersonalizationV2/ContextContainer.js +29 -32
  472. package/src/main/js/sap/ushell/services/PersonalizationV2/Personalizer.js +21 -6
  473. package/src/main/js/sap/ushell/services/PersonalizationV2/TransientPersonalizer.js +1 -2
  474. package/src/main/js/sap/ushell/services/PersonalizationV2/Variant.js +5 -1
  475. package/src/main/js/sap/ushell/services/PersonalizationV2/VariantSet.js +5 -8
  476. package/src/main/js/sap/ushell/services/PersonalizationV2/VariantSetAdapter.js +2 -2
  477. package/src/main/js/sap/ushell/services/PersonalizationV2/WindowAdapter.js +10 -11
  478. package/src/main/js/sap/ushell/services/PersonalizationV2/WindowAdapterContainer.js +27 -27
  479. package/src/main/js/sap/ushell/services/PersonalizationV2/constants.js +1 -2
  480. package/src/main/js/sap/ushell/services/PersonalizationV2/constants.private.js +1 -1
  481. package/src/main/js/sap/ushell/services/PersonalizationV2/utils.js +5 -5
  482. package/src/main/js/sap/ushell/services/PersonalizationV2.js +92 -105
  483. package/src/main/js/sap/ushell/services/PluginManager/Extensions.js +9 -9
  484. package/src/main/js/sap/ushell/services/PluginManager/HeaderExtensions.js +2 -2
  485. package/src/main/js/sap/ushell/services/PluginManager/MenuExtensions.js +4 -4
  486. package/src/main/js/sap/ushell/services/PluginManager/SimpleExpression.js +5 -8
  487. package/src/main/js/sap/ushell/services/PluginManager.js +12 -8
  488. package/src/main/js/sap/ushell/services/ReferenceResolver.js +21 -28
  489. package/src/main/js/sap/ushell/services/Search.js +25 -21
  490. package/src/main/js/sap/ushell/services/SearchCEP.js +38 -32
  491. package/src/main/js/sap/ushell/services/SearchableContent.js +203 -223
  492. package/src/main/js/sap/ushell/services/ShellNavigation.js +5 -3
  493. package/src/main/js/sap/ushell/services/ShellNavigationHashChanger.js +160 -164
  494. package/src/main/js/sap/ushell/services/ShellNavigationInternal.js +23 -19
  495. package/src/main/js/sap/ushell/services/SmartNavigation.js +86 -82
  496. package/src/main/js/sap/ushell/services/SpaceContent.js +73 -106
  497. package/src/main/js/sap/ushell/services/SupportTicket.js +1 -1
  498. package/src/main/js/sap/ushell/services/UITracer.js +48 -62
  499. package/src/main/js/sap/ushell/services/URLShortening.js +2 -2
  500. package/src/main/js/sap/ushell/services/URLTemplate.js +7 -8
  501. package/src/main/js/sap/ushell/services/Ui5ComponentHandle.js +5 -5
  502. package/src/main/js/sap/ushell/services/Ui5ComponentLoader.js +1 -1
  503. package/src/main/js/sap/ushell/services/UsageAnalytics.js +2 -3
  504. package/src/main/js/sap/ushell/services/UserDefaultParameterPersistence.js +10 -10
  505. package/src/main/js/sap/ushell/services/UserDefaultParameters.js +12 -13
  506. package/src/main/js/sap/ushell/services/UserInfo.js +27 -15
  507. package/src/main/js/sap/ushell/services/UserRecents/RecentActivity.js +6 -7
  508. package/src/main/js/sap/ushell/services/UserRecents/RecentAppsUsage.js +5 -5
  509. package/src/main/js/sap/ushell/services/UserRecents/RecentsList.js +2 -2
  510. package/src/main/js/sap/ushell/services/UserRecents/UserRecentsBase.js +2 -2
  511. package/src/main/js/sap/ushell/services/UserRecents.js +3 -3
  512. package/src/main/js/sap/ushell/services/VisualizationDataProvider.js +63 -66
  513. package/src/main/js/sap/ushell/services/VisualizationInstantiation.js +11 -11
  514. package/src/main/js/sap/ushell/services/_ContentExtensionAdapterFactory/ContentExtensionAdapterConfig.js +1 -1
  515. package/src/main/js/sap/ushell/services/_ContentExtensionAdapterFactory/FeaturedGroupConfig.js +1 -1
  516. package/src/main/js/sap/ushell/services/_CrossApplicationNavigation/utils.js +1 -1
  517. package/src/main/js/sap/ushell/services/_PageReferencing/PageReferencer.js +1 -1
  518. package/src/main/js/sap/ushell/services/personalization/VariantSetAdapter.js +10 -10
  519. package/src/main/js/sap/ushell/state/BaseState.js +2 -3
  520. package/src/main/js/sap/ushell/state/BindingHelper.js +2 -4
  521. package/src/main/js/sap/ushell/state/ControlManager.js +2 -3
  522. package/src/main/js/sap/ushell/state/CurrentState.js +2 -2
  523. package/src/main/js/sap/ushell/state/KeepAlive.js +2 -2
  524. package/src/main/js/sap/ushell/state/ShellModel.js +2 -3
  525. package/src/main/js/sap/ushell/state/StateManager/LaunchpadState.js +2 -2
  526. package/src/main/js/sap/ushell/state/StateManager/Operation.js +2 -2
  527. package/src/main/js/sap/ushell/state/StateManager/ShellMode.js +2 -2
  528. package/src/main/js/sap/ushell/state/StateManager.js +3 -3
  529. package/src/main/js/sap/ushell/state/StateRules.js +2 -3
  530. package/src/main/js/sap/ushell/state/StrategyFactory/DefaultStrategy.js +2 -3
  531. package/src/main/js/sap/ushell/state/StrategyFactory/FloatingActionsStrategy.js +2 -3
  532. package/src/main/js/sap/ushell/state/StrategyFactory/FloatingContainerStrategy.js +2 -3
  533. package/src/main/js/sap/ushell/state/StrategyFactory/HeadEndItemsStrategy.js +3 -4
  534. package/src/main/js/sap/ushell/state/StrategyFactory/HeadItemsStrategy.js +3 -4
  535. package/src/main/js/sap/ushell/state/StrategyFactory/SidePaneStrategy.js +2 -3
  536. package/src/main/js/sap/ushell/state/StrategyFactory/SubHeaderStrategy.js +2 -3
  537. package/src/main/js/sap/ushell/state/StrategyFactory/UserActionsStrategy.js +3 -4
  538. package/src/main/js/sap/ushell/state/StrategyFactory.js +2 -3
  539. package/src/main/js/sap/ushell/state/modules/BackNavigation.js +2 -5
  540. package/src/main/js/sap/ushell/state/modules/ContentDensity.js +3 -3
  541. package/src/main/js/sap/ushell/state/modules/Favicon.js +3 -3
  542. package/src/main/js/sap/ushell/state/modules/HeaderLogo.js +3 -3
  543. package/src/main/js/sap/ushell/support/plugins/flpConfig/FlpConfigurationPlugin.js +123 -123
  544. package/src/main/js/sap/ushell/themes/base/ShellBar.less +2 -1
  545. package/src/main/js/sap/ushell/themes/base/ShellHeader.less +1 -1
  546. package/src/main/js/sap/ushell/themes/base/ToolAreaItem.less +1 -0
  547. package/src/main/js/sap/ushell/themes/sap_fiori_3/ShellBar.less +9 -0
  548. package/src/main/js/sap/ushell/themes/sap_fiori_3/ShellHeader.less +6 -0
  549. package/src/main/js/sap/ushell/themes/sap_fiori_3/library.source.less +1 -0
  550. package/src/main/js/sap/ushell/themes/sap_fiori_3_dark/ShellBar.less +9 -0
  551. package/src/main/js/sap/ushell/themes/sap_fiori_3_dark/library.source.less +1 -0
  552. package/src/main/js/sap/ushell/themes/sap_fiori_3_hcb/ShellBar.less +9 -0
  553. package/src/main/js/sap/ushell/themes/sap_fiori_3_hcb/library.source.less +1 -0
  554. package/src/main/js/sap/ushell/themes/sap_fiori_3_hcw/ShellBar.less +9 -0
  555. package/src/main/js/sap/ushell/themes/sap_fiori_3_hcw/library.source.less +1 -0
  556. package/src/main/js/sap/ushell/themes/sap_hcb/base_ShellHeader.less +1 -1
  557. package/src/main/js/sap/ushell/thirdparty/AccessibilityTextsHelper.js +13 -0
  558. package/src/main/js/sap/ushell/thirdparty/Avatar.js +83 -16
  559. package/src/main/js/sap/ushell/thirdparty/BusyIndicator.js +16 -241
  560. package/src/main/js/sap/ushell/thirdparty/Button.js +1 -1
  561. package/src/main/js/sap/ushell/thirdparty/Button2.js +34 -14
  562. package/src/main/js/sap/ushell/thirdparty/Icon.js +11 -11
  563. package/src/main/js/sap/ushell/thirdparty/Icons.js +81 -79
  564. package/src/main/js/sap/ushell/thirdparty/Label.js +4 -4
  565. package/src/main/js/sap/ushell/thirdparty/Link.js +11 -10
  566. package/src/main/js/sap/ushell/thirdparty/List.js +34 -487
  567. package/src/main/js/sap/ushell/thirdparty/ListBoxItemGroupTemplate.js +14 -0
  568. package/src/main/js/sap/ushell/thirdparty/ListItemBase.js +239 -0
  569. package/src/main/js/sap/ushell/thirdparty/ListItemCustom.js +1669 -91
  570. package/src/main/js/sap/ushell/thirdparty/ListItemGroup.js +472 -0
  571. package/src/main/js/sap/ushell/thirdparty/Menu.js +70 -81
  572. package/src/main/js/sap/ushell/thirdparty/MenuItem.js +1 -1
  573. package/src/main/js/sap/ushell/thirdparty/MenuItem2.js +348 -40
  574. package/src/main/js/sap/ushell/thirdparty/NotificationList.js +5 -5
  575. package/src/main/js/sap/ushell/thirdparty/NotificationListGroupItem.js +15 -15
  576. package/src/main/js/sap/ushell/thirdparty/NotificationListItem.js +511 -517
  577. package/src/main/js/sap/ushell/thirdparty/NotificationListItemBase.js +3 -3
  578. package/src/main/js/sap/ushell/thirdparty/ResponsivePopover.js +2264 -0
  579. package/src/main/js/sap/ushell/thirdparty/SearchItem.js +111 -0
  580. package/src/main/js/sap/ushell/thirdparty/SearchItemGroup.js +47 -0
  581. package/src/main/js/sap/ushell/thirdparty/SearchMessageArea.js +49 -0
  582. package/src/main/js/sap/ushell/thirdparty/SearchScope.js +39 -0
  583. package/src/main/js/sap/ushell/thirdparty/ShellBar.js +177 -170
  584. package/src/main/js/sap/ushell/thirdparty/ShellBarBranding.js +119 -0
  585. package/src/main/js/sap/ushell/thirdparty/ShellBarSearch.js +7 -0
  586. package/src/main/js/sap/ushell/thirdparty/ShellBarSearch2.js +3248 -0
  587. package/src/main/js/sap/ushell/thirdparty/Tag.js +15 -14
  588. package/src/main/js/sap/ushell/thirdparty/Text.js +9 -9
  589. package/src/main/js/sap/ushell/thirdparty/Title.js +167 -0
  590. package/src/main/js/sap/ushell/thirdparty/UserMenu.js +55 -54
  591. package/src/main/js/sap/ushell/thirdparty/UserMenuItem.js +5 -5
  592. package/src/main/js/sap/ushell/thirdparty/ValueState.js +7 -0
  593. package/src/main/js/sap/ushell/thirdparty/_dynamics/InputSuggestions.js +444 -0
  594. package/src/main/js/sap/ushell/thirdparty/_dynamics/ListItemStandardExpandableTextTemplate.js +7 -7
  595. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_ar2.js +39 -0
  596. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_ar3.js +26 -8
  597. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_bg2.js +40 -1
  598. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_bg3.js +26 -8
  599. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_ca2.js +41 -2
  600. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_ca3.js +27 -9
  601. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_cnr2.js +39 -0
  602. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_cnr3.js +25 -7
  603. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_cs2.js +39 -0
  604. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_cs3.js +25 -7
  605. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_cy2.js +39 -0
  606. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_cy3.js +26 -8
  607. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_da2.js +39 -0
  608. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_da3.js +25 -7
  609. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_de2.js +39 -0
  610. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_de3.js +26 -8
  611. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_el2.js +39 -0
  612. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_el3.js +25 -7
  613. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_en2.js +45 -0
  614. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_en3.js +26 -8
  615. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_en_GB2.js +39 -0
  616. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_en_GB3.js +26 -8
  617. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_en_US_sappsd2.js +39 -0
  618. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_en_US_sappsd3.js +26 -8
  619. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_en_US_saprigi2.js +45 -0
  620. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_en_US_saprigi3.js +23 -8
  621. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_en_US_saptrc2.js +39 -0
  622. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_en_US_saptrc3.js +26 -8
  623. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_es2.js +42 -3
  624. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_es3.js +27 -9
  625. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_es_MX2.js +42 -3
  626. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_es_MX3.js +28 -10
  627. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_et2.js +39 -0
  628. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_et3.js +25 -7
  629. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_fi2.js +39 -0
  630. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_fi3.js +25 -7
  631. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_fr2.js +39 -0
  632. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_fr3.js +26 -8
  633. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_fr_CA2.js +39 -0
  634. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_fr_CA3.js +25 -7
  635. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_hi2.js +39 -0
  636. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_hi3.js +25 -7
  637. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_hr2.js +39 -0
  638. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_hr3.js +25 -7
  639. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_hu2.js +39 -0
  640. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_hu3.js +25 -7
  641. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_id2.js +39 -0
  642. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_id3.js +26 -8
  643. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_it2.js +43 -4
  644. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_it3.js +29 -11
  645. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_iw2.js +39 -0
  646. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_iw3.js +27 -9
  647. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_ja2.js +39 -0
  648. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_ja3.js +26 -8
  649. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_kk2.js +39 -0
  650. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_kk3.js +26 -8
  651. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_ko2.js +39 -0
  652. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_ko3.js +25 -7
  653. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_lt2.js +39 -0
  654. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_lt3.js +25 -7
  655. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_lv2.js +39 -0
  656. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_lv3.js +27 -9
  657. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_mk2.js +40 -1
  658. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_mk3.js +25 -7
  659. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_ms2.js +40 -1
  660. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_ms3.js +27 -9
  661. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_nl2.js +39 -0
  662. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_nl3.js +25 -7
  663. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_no2.js +39 -0
  664. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_no3.js +26 -8
  665. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_pl2.js +39 -0
  666. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_pl3.js +26 -8
  667. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_pt2.js +39 -0
  668. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_pt3.js +25 -7
  669. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_pt_PT2.js +39 -0
  670. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_pt_PT3.js +26 -8
  671. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_ro2.js +39 -0
  672. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_ro3.js +25 -7
  673. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_ru2.js +39 -0
  674. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_ru3.js +25 -7
  675. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_sh2.js +39 -0
  676. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_sh3.js +25 -7
  677. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_sk2.js +39 -0
  678. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_sk3.js +25 -7
  679. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_sl2.js +41 -2
  680. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_sl3.js +26 -8
  681. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_sr2.js +39 -0
  682. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_sr3.js +25 -7
  683. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_sv2.js +39 -0
  684. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_sv3.js +26 -8
  685. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_th2.js +39 -0
  686. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_th3.js +25 -7
  687. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_tr2.js +39 -0
  688. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_tr3.js +25 -7
  689. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_uk2.js +40 -1
  690. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_uk3.js +25 -7
  691. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_vi2.js +39 -0
  692. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_vi3.js +26 -8
  693. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_zh_CN2.js +39 -0
  694. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_zh_CN3.js +26 -8
  695. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_zh_TW2.js +41 -2
  696. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_zh_TW3.js +25 -7
  697. package/src/main/js/sap/ushell/thirdparty/_dynamics/parameters-bundle.css10.js +1 -1
  698. package/src/main/js/sap/ushell/thirdparty/_dynamics/parameters-bundle.css11.js +1 -1
  699. package/src/main/js/sap/ushell/thirdparty/_dynamics/parameters-bundle.css12.js +1 -1
  700. package/src/main/js/sap/ushell/thirdparty/_dynamics/parameters-bundle.css13.js +1 -1
  701. package/src/main/js/sap/ushell/thirdparty/_dynamics/parameters-bundle.css14.js +1 -1
  702. package/src/main/js/sap/ushell/thirdparty/_dynamics/parameters-bundle.css15.js +1 -1
  703. package/src/main/js/sap/ushell/thirdparty/_dynamics/parameters-bundle.css16.js +1 -1
  704. package/src/main/js/sap/ushell/thirdparty/_dynamics/parameters-bundle.css17.js +1 -1
  705. package/src/main/js/sap/ushell/thirdparty/_dynamics/parameters-bundle.css18.js +1 -1
  706. package/src/main/js/sap/ushell/thirdparty/_dynamics/parameters-bundle.css19.js +1 -1
  707. package/src/main/js/sap/ushell/thirdparty/_dynamics/parameters-bundle.css20.js +1 -1
  708. package/src/main/js/sap/ushell/thirdparty/_dynamics/parameters-bundle.css21.js +1 -1
  709. package/src/main/js/sap/ushell/thirdparty/_dynamics/parameters-bundle.css22.js +1 -1
  710. package/src/main/js/sap/ushell/thirdparty/_dynamics/parameters-bundle.css23.js +1 -1
  711. package/src/main/js/sap/ushell/thirdparty/_dynamics/parameters-bundle.css24.js +1 -1
  712. package/src/main/js/sap/ushell/thirdparty/_dynamics/parameters-bundle.css25.js +1 -1
  713. package/src/main/js/sap/ushell/thirdparty/_dynamics/parameters-bundle.css26.js +7 -0
  714. package/src/main/js/sap/ushell/thirdparty/_dynamics/parameters-bundle.css3.js +1 -1
  715. package/src/main/js/sap/ushell/thirdparty/_dynamics/parameters-bundle.css4.js +1 -1
  716. package/src/main/js/sap/ushell/thirdparty/_dynamics/parameters-bundle.css5.js +1 -1
  717. package/src/main/js/sap/ushell/thirdparty/_dynamics/parameters-bundle.css6.js +1 -1
  718. package/src/main/js/sap/ushell/thirdparty/_dynamics/parameters-bundle.css7.js +1 -1
  719. package/src/main/js/sap/ushell/thirdparty/_dynamics/parameters-bundle.css8.js +1 -1
  720. package/src/main/js/sap/ushell/thirdparty/_dynamics/parameters-bundle.css9.js +1 -1
  721. package/src/main/js/sap/ushell/thirdparty/encodeXML.js +87 -0
  722. package/src/main/js/sap/ushell/thirdparty/generateHighlightedMarkup.js +9 -0
  723. package/src/main/js/sap/ushell/thirdparty/i18n-defaults.js +143 -149
  724. package/src/main/js/sap/ushell/thirdparty/i18n-defaults2.js +16 -0
  725. package/src/main/js/sap/ushell/thirdparty/information.js +10 -13
  726. package/src/main/js/sap/ushell/thirdparty/information2.js +13 -0
  727. package/src/main/js/sap/ushell/thirdparty/overflow.js +2 -2
  728. package/src/main/js/sap/ushell/thirdparty/parameters-bundle.css.js +1 -1
  729. package/src/main/js/sap/ushell/thirdparty/parameters-bundle.css2.js +44 -0
  730. package/src/main/js/sap/ushell/thirdparty/query.js +1 -4
  731. package/src/main/js/sap/ushell/thirdparty/slim-arrow-down.js +44 -0
  732. package/src/main/js/sap/ushell/thirdparty/sys-enter-2.js +7 -0
  733. package/src/main/js/sap/ushell/thirdparty/toLowercaseEnumValue.js +0 -8
  734. package/src/main/js/sap/ushell/thirdparty/webcomponents-base.js +35 -31
  735. package/src/main/js/sap/ushell/thirdparty/webcomponents-fiori.js +8 -8
  736. package/src/main/js/sap/ushell/thirdparty/webcomponents.js +16 -16
  737. package/src/main/js/sap/ushell/thirdparty/willShowContent.js +7 -0
  738. package/src/main/js/sap/ushell/ui/ShellHeader.js +0 -1
  739. package/src/main/js/sap/ushell/ui/cards/RecentActivitiesExtension.js +1 -1
  740. package/src/main/js/sap/ushell/ui/launchpad/ExtendedChangeDetection.js +1 -1
  741. package/src/main/js/sap/ushell/ui/launchpad/Section.js +1 -1
  742. package/src/main/js/sap/ushell/ui/launchpad/VizInstance.js +6 -1
  743. package/src/main/js/sap/ushell/ui/launchpad/section/CompactArea.js +1 -1
  744. package/src/main/js/sap/ushell/ui/shell/ToolAreaItem.js +5 -2
  745. package/src/main/js/sap/ushell/ui/utils.js +1 -1
  746. package/src/main/js/sap/ushell/ui5service/ShellUIServiceFactory.js +1 -1
  747. package/src/main/js/sap/ushell/ui5service/UserStatus.js +1 -1
  748. package/src/main/js/sap/ushell/utils/UrlShortening.js +1 -1
  749. package/src/main/js/sap/ushell/utils/workpage/WorkPageHost.js +1 -1
  750. package/src/main/js/sap/ushell/utils/workpage/WorkPageService.js +1 -1
  751. package/src/main/js/sap/ushell/utils/workpage/WorkPageVizInstantiation.js +1 -1
  752. package/src/main/js/sap/ushell/utils.js +32 -1
  753. package/src/test/js/sap/ushell/bootstrap/sandbox.js +1 -1
  754. package/ui5.yaml +2 -0
  755. package/src/main/js/sap/ushell/thirdparty/ListItemTemplate.js +0 -3920
  756. package/src/main/js/sap/ushell/thirdparty/_dynamics/parameters-bundle.css2.js +0 -7
  757. /package/src/main/js/sap/ushell/components/shell/SearchCEP/{SearchFieldFragment.fragment.xml → SearchField.fragment.xml} +0 -0
@@ -0,0 +1,2264 @@
1
+ sap.ui.define(['exports', 'sap/ushell/thirdparty/Icons', 'sap/ushell/thirdparty/parameters-bundle.css2', 'sap/ushell/thirdparty/i18n-defaults', 'sap/ushell/thirdparty/webcomponents-base', 'sap/ushell/thirdparty/information', 'sap/ushell/thirdparty/Title', 'sap/ushell/thirdparty/List', 'sap/ushell/thirdparty/ValueState', 'sap/ushell/thirdparty/toLowercaseEnumValue', 'sap/ushell/thirdparty/event-strict', 'sap/ushell/thirdparty/BusyIndicator', 'sap/ushell/thirdparty/AccessibilityTextsHelper', 'sap/ushell/thirdparty/Icon', 'sap/ushell/thirdparty/Button2'], (function (exports, Icons, parametersBundle_css, i18nDefaults, webcomponentsBase, information, Title, List, ValueState, toLowercaseEnumValue, eventStrict, BusyIndicator, AccessibilityTextsHelper, Icon, Button) { 'use strict';
2
+
3
+ const e$1={toAttribute(t){return t instanceof HTMLElement?null:t},fromAttribute(t){return t}};
4
+
5
+ Icons.p("sap/ushell/gen/ui5/webcomponents-theming", "sap_horizon", async () => parametersBundle_css.defaultThemeBase);
6
+ Icons.p("sap/ushell/gen/ui5/webcomponents", "sap_horizon", async () => i18nDefaults.defaultTheme);
7
+ var listItemAdditionalTextCss = `.ui5-li-additional-text{margin:0 .25rem;color:var(--sapNeutralTextColor);font-size:var(--sapFontSize);min-width:3.75rem;text-align:end;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
8
+ `;
9
+
10
+ function PopubBlockLayerTemplate() {
11
+ return (parametersBundle_css.jsx("div", { class: "ui5-block-layer", onKeyDown: this._preventBlockLayerFocus, onMouseDown: this._preventBlockLayerFocus }));
12
+ }
13
+
14
+ function PopupTemplate(hooks) {
15
+ return (parametersBundle_css.jsxs(parametersBundle_css.Fragment, { children: [PopubBlockLayerTemplate.call(this), parametersBundle_css.jsxs("section", { "root-element": true, style: this.styles.root, class: this.classes.root, role: this._role, "aria-describedby": this.ariaDescribedByIds, "aria-modal": this._ariaModal, "aria-label": this._ariaLabel, "aria-labelledby": this._ariaLabelledBy, onKeyDown: this._onkeydown, onFocusOut: this._onfocusout, onMouseUp: this._onmouseup, onMouseDown: this._onmousedown, children: [parametersBundle_css.jsx("span", { class: "first-fe", "data-ui5-focus-trap": true, role: "none", tabIndex: 0, onFocusIn: this.forwardToLast }), (hooks?.beforeContent || beforeContent$2).call(this), parametersBundle_css.jsx("div", { style: this.styles.content, class: this.classes.content, onScroll: this._scroll, part: "content", children: parametersBundle_css.jsx("slot", {}) }), this.ariaDescriptionText &&
16
+ parametersBundle_css.jsx("span", { id: "accessibleDescription", class: "ui5-hidden-text", children: this.ariaDescriptionText }), (hooks?.afterContent || afterContent$2).call(this), parametersBundle_css.jsx("span", { class: "last-fe", "data-ui5-focus-trap": true, role: "none", tabIndex: 0, onFocusIn: this.forwardToFirst })] })] }));
17
+ }
18
+ function beforeContent$2() { }
19
+ function afterContent$2() { }
20
+
21
+ function PopoverTemplate() {
22
+ return PopupTemplate.call(this, {
23
+ beforeContent: beforeContent$1,
24
+ afterContent: afterContent$1,
25
+ });
26
+ }
27
+ function beforeContent$1() {
28
+ return (parametersBundle_css.jsxs(parametersBundle_css.Fragment, { children: [parametersBundle_css.jsx("span", { class: "ui5-popover-arrow", style: this.styles.arrow }), this._displayHeader &&
29
+ parametersBundle_css.jsx("header", { class: "ui5-popup-header-root", id: "ui5-popup-header", part: "header", children: this.header.length ?
30
+ parametersBundle_css.jsx("slot", { name: "header" })
31
+ :
32
+ parametersBundle_css.jsx(Title.Title, { level: "H1", class: "ui5-popup-header-text", children: this.headerText }) })] }));
33
+ }
34
+ function afterContent$1() {
35
+ return (parametersBundle_css.jsx(parametersBundle_css.Fragment, { children: this._displayFooter && !!this.footer.length &&
36
+ parametersBundle_css.jsx("footer", { class: "ui5-popup-footer-root", part: "footer", children: parametersBundle_css.jsx("slot", { name: "footer" }) }) }));
37
+ }
38
+
39
+ const m$1=(t,a,e)=>Math.min(Math.max(t,a),Math.max(a,e));
40
+
41
+ const r=()=>{const e=webcomponentsBase.t();return e&&typeof e.focus=="function"?e:null},a=e=>{const n=r();return n?l(e,n):false},l=(e,n)=>{let t=e;if(t.shadowRoot&&(t=Array.from(t.shadowRoot.children).find(c=>c.localName!=="style"),!t))return false;if(t===n)return true;const o=t.localName==="slot"?t.assignedNodes():t.children;return o?Array.from(o).some(s=>l(s,n)):false},m=(e,n,t)=>e>=t.left&&e<=t.right&&n>=t.top&&n<=t.bottom,f=(e,n)=>{let t,o;if(e instanceof MouseEvent)t=e.clientX,o=e.clientY;else {const s=e.touches[0];t=s.clientX,o=s.clientY;}return m(t,o,n)};function d(e){return "isUI5Element"in e&&"_show"in e}const i=e=>{const n=e.parentElement||e.getRootNode&&e.getRootNode().host;return n&&(d(n)||n===document.documentElement)?n:i(n)};
42
+
43
+ /**
44
+ * Popup accessible roles.
45
+ * @public
46
+ */
47
+ var PopupAccessibleRole;
48
+ (function (PopupAccessibleRole) {
49
+ /**
50
+ * Represents no ARIA role.
51
+ * @public
52
+ */
53
+ PopupAccessibleRole["None"] = "None";
54
+ /**
55
+ * Represents the ARIA role "dialog".
56
+ * @public
57
+ */
58
+ PopupAccessibleRole["Dialog"] = "Dialog";
59
+ /**
60
+ * Represents the ARIA role "alertdialog".
61
+ * @public
62
+ */
63
+ PopupAccessibleRole["AlertDialog"] = "AlertDialog";
64
+ })(PopupAccessibleRole || (PopupAccessibleRole = {}));
65
+ var PopupAccessibleRole$1 = PopupAccessibleRole;
66
+
67
+ const OpenedPopupsRegistry = Icons.m("OpenedPopupsRegistry", { openedRegistry: [] });
68
+ const addOpenedPopup = (instance, parentPopovers = []) => {
69
+ if (!OpenedPopupsRegistry.openedRegistry.some(popup => popup.instance === instance)) {
70
+ OpenedPopupsRegistry.openedRegistry.push({
71
+ instance,
72
+ parentPopovers,
73
+ });
74
+ }
75
+ _updateTopModalPopup();
76
+ if (OpenedPopupsRegistry.openedRegistry.length === 1) {
77
+ attachGlobalListener();
78
+ }
79
+ };
80
+ const removeOpenedPopup = (instance) => {
81
+ OpenedPopupsRegistry.openedRegistry = OpenedPopupsRegistry.openedRegistry.filter(el => {
82
+ return el.instance !== instance;
83
+ });
84
+ _updateTopModalPopup();
85
+ if (!OpenedPopupsRegistry.openedRegistry.length) {
86
+ detachGlobalListener();
87
+ }
88
+ };
89
+ const getOpenedPopups = () => {
90
+ return [...OpenedPopupsRegistry.openedRegistry];
91
+ };
92
+ const _keydownListener = (event) => {
93
+ if (!OpenedPopupsRegistry.openedRegistry.length) {
94
+ return;
95
+ }
96
+ if (webcomponentsBase.H(event)) {
97
+ event.stopPropagation();
98
+ OpenedPopupsRegistry.openedRegistry[OpenedPopupsRegistry.openedRegistry.length - 1].instance.closePopup(true);
99
+ }
100
+ };
101
+ const attachGlobalListener = () => {
102
+ document.addEventListener("keydown", _keydownListener);
103
+ };
104
+ const detachGlobalListener = () => {
105
+ document.removeEventListener("keydown", _keydownListener);
106
+ };
107
+ const _updateTopModalPopup = () => {
108
+ let popup;
109
+ let hasModal = false;
110
+ for (let i = OpenedPopupsRegistry.openedRegistry.length - 1; i >= 0; i--) {
111
+ popup = OpenedPopupsRegistry.openedRegistry[i].instance;
112
+ if (!hasModal && popup.isModal) {
113
+ popup.isTopModalPopup = true;
114
+ hasModal = true;
115
+ }
116
+ else {
117
+ popup.isTopModalPopup = false;
118
+ }
119
+ }
120
+ };
121
+
122
+ Icons.p("sap/ushell/gen/ui5/webcomponents-theming", "sap_horizon", async () => parametersBundle_css.defaultThemeBase);
123
+ Icons.p("sap/ushell/gen/ui5/webcomponents", "sap_horizon", async () => i18nDefaults.defaultTheme);
124
+ var popupStlyes = `:host{min-width:1px;overflow:visible;border:none;inset:unset;margin:0;padding:0}
125
+ `;
126
+
127
+ Icons.p("sap/ushell/gen/ui5/webcomponents-theming", "sap_horizon", async () => parametersBundle_css.defaultThemeBase);
128
+ Icons.p("sap/ushell/gen/ui5/webcomponents", "sap_horizon", async () => i18nDefaults.defaultTheme);
129
+ var popupBlockLayerStyles = `.ui5-block-layer{position:fixed;z-index:-1;display:none;inset:-500px;outline:none;pointer-events:all}
130
+ `;
131
+
132
+ Icons.p("sap/ushell/gen/ui5/webcomponents-theming", "sap_horizon", async () => parametersBundle_css.defaultThemeBase);
133
+ Icons.p("sap/ushell/gen/ui5/webcomponents", "sap_horizon", async () => i18nDefaults.defaultTheme);
134
+ var globalStyles = `.ui5-popup-scroll-blocker{overflow:hidden}
135
+ `;
136
+
137
+ var __decorate$3 = (this && this.__decorate) || function (decorators, target, key, desc) {
138
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
139
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
140
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
141
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
142
+ };
143
+ var Popup_1;
144
+ const createBlockingStyle = () => {
145
+ if (!Icons.S("data-ui5-popup-scroll-blocker")) {
146
+ Icons.c$1(globalStyles, "data-ui5-popup-scroll-blocker");
147
+ }
148
+ };
149
+ createBlockingStyle();
150
+ const pageScrollingBlockers = new Set();
151
+ /**
152
+ * @class
153
+ * ### Overview
154
+ * Base class for all popup Web Components.
155
+ *
156
+ * If you need to create your own popup-like custom UI5 Web Components.
157
+ *
158
+ * 1. The Popup class handles modality:
159
+ * - The "isModal" getter can be overridden by derivatives to provide their own conditions when they are modal or not
160
+ * - Derivatives may call the "blockPageScrolling" and "unblockPageScrolling" static methods to temporarily remove scrollbars on the html element
161
+ * - Derivatives may call the "openPopup" and "closePopup" methods which handle focus, manage the popup registry and for modal popups, manage the blocking layer
162
+ *
163
+ * 2. Provides blocking layer (relevant for modal popups only):
164
+ * - Controlled by the "open" and "close" methods
165
+ *
166
+ * 3. The Popup class "traps" focus:
167
+ * - Derivatives may call the "applyInitialFocus" method (usually when opening, to transfer focus inside the popup)
168
+ *
169
+ * 4. The template of this component exposes two inline partials you can override in derivatives:
170
+ * - beforeContent (upper part of the box, useful for header/title/close button)
171
+ * - afterContent (lower part, useful for footer/action buttons)
172
+ * @constructor
173
+ * @extends UI5Element
174
+ * @public
175
+ */
176
+ let Popup = Popup_1 = class Popup extends webcomponentsBase.b {
177
+ constructor() {
178
+ super();
179
+ /**
180
+ * Defines if the focus should be returned to the previously focused element,
181
+ * when the popup closes.
182
+ * @default false
183
+ * @public
184
+ * @since 1.0.0-rc.8
185
+ */
186
+ this.preventFocusRestore = false;
187
+ /**
188
+ * Allows setting a custom role.
189
+ * @default "Dialog"
190
+ * @public
191
+ * @since 1.10.0
192
+ */
193
+ this.accessibleRole = "Dialog";
194
+ /**
195
+ * Indicates whether initial focus should be prevented.
196
+ * @public
197
+ * @default false
198
+ * @since 2.0.0
199
+ */
200
+ this.preventInitialFocus = false;
201
+ /**
202
+ * Indicates if the element is the top modal popup
203
+ *
204
+ * This property is calculated automatically
205
+ * @private
206
+ * @default false
207
+ */
208
+ this.isTopModalPopup = false;
209
+ /**
210
+ * @private
211
+ */
212
+ this.onPhone = false;
213
+ /**
214
+ * @private
215
+ */
216
+ this.onDesktop = false;
217
+ this._opened = false;
218
+ this._open = false;
219
+ this._resizeHandler = this._resize.bind(this);
220
+ this._getRealDomRef = () => {
221
+ return this.shadowRoot.querySelector("[root-element]");
222
+ };
223
+ }
224
+ onBeforeRendering() {
225
+ this.onPhone = Icons.d();
226
+ this.onDesktop = Icons.f();
227
+ }
228
+ onAfterRendering() {
229
+ Icons.f$1().then(() => {
230
+ this._updateMediaRange();
231
+ });
232
+ }
233
+ onEnterDOM() {
234
+ this.setAttribute("popover", "manual");
235
+ webcomponentsBase.f.register(this, this._resizeHandler);
236
+ if (Icons.f()) {
237
+ this.setAttribute("desktop", "");
238
+ }
239
+ this.tabIndex = -1;
240
+ if (this.open) {
241
+ this.showPopover();
242
+ this.openPopup();
243
+ }
244
+ AccessibilityTextsHelper.y(this, this._updateAssociatedLabelsTexts.bind(this));
245
+ }
246
+ onExitDOM() {
247
+ if (this._opened) {
248
+ Popup_1.unblockPageScrolling(this);
249
+ this._removeOpenedPopup();
250
+ }
251
+ webcomponentsBase.f.deregister(this, this._resizeHandler);
252
+ AccessibilityTextsHelper.T(this);
253
+ }
254
+ /**
255
+ * Indicates if the element is open
256
+ * @public
257
+ * @default false
258
+ * @since 1.2.0
259
+ */
260
+ set open(value) {
261
+ if (this._open === value) {
262
+ return;
263
+ }
264
+ this._open = value;
265
+ if (value) {
266
+ this.openPopup();
267
+ }
268
+ else {
269
+ this.closePopup();
270
+ }
271
+ }
272
+ get open() {
273
+ return this._open;
274
+ }
275
+ async openPopup() {
276
+ if (this._opened) {
277
+ return;
278
+ }
279
+ const prevented = !this.fireDecoratorEvent("before-open");
280
+ if (prevented) {
281
+ this.open = false;
282
+ return;
283
+ }
284
+ if (this.isModal) {
285
+ Popup_1.blockPageScrolling(this);
286
+ }
287
+ this._focusedElementBeforeOpen = r();
288
+ this._show();
289
+ this._opened = true;
290
+ if (this.getDomRef()) {
291
+ this._updateMediaRange();
292
+ }
293
+ this._addOpenedPopup();
294
+ this.open = true;
295
+ // initial focus, if focused element is statically created
296
+ await this.applyInitialFocus();
297
+ await Icons.f$1();
298
+ if (this.isConnected) {
299
+ this.fireDecoratorEvent("open");
300
+ }
301
+ }
302
+ _resize() {
303
+ this._updateMediaRange();
304
+ }
305
+ /**
306
+ * Prevents the user from interacting with the content under the block layer
307
+ */
308
+ _preventBlockLayerFocus(e) {
309
+ e.preventDefault();
310
+ }
311
+ /**
312
+ * Temporarily removes scrollbars from the html element
313
+ * @protected
314
+ */
315
+ static blockPageScrolling(popup) {
316
+ pageScrollingBlockers.add(popup);
317
+ if (pageScrollingBlockers.size !== 1) {
318
+ return;
319
+ }
320
+ document.documentElement.classList.add("ui5-popup-scroll-blocker");
321
+ }
322
+ /**
323
+ * Restores scrollbars on the html element, if needed
324
+ * @protected
325
+ */
326
+ static unblockPageScrolling(popup) {
327
+ pageScrollingBlockers.delete(popup);
328
+ if (pageScrollingBlockers.size !== 0) {
329
+ return;
330
+ }
331
+ document.documentElement.classList.remove("ui5-popup-scroll-blocker");
332
+ }
333
+ _scroll(e) {
334
+ this.fireDecoratorEvent("scroll", {
335
+ scrollTop: e.target.scrollTop,
336
+ targetRef: e.target,
337
+ });
338
+ }
339
+ _onkeydown(e) {
340
+ const isTabOutAttempt = e.target === this._root && webcomponentsBase.m$1(e);
341
+ // if the popup is closed, focus is already moved, so Enter keydown may result in click on the newly focused element
342
+ const isEnterOnClosedPopupChild = webcomponentsBase.b$1(e) && !this.open;
343
+ if (isTabOutAttempt || isEnterOnClosedPopupChild) {
344
+ e.preventDefault();
345
+ }
346
+ }
347
+ _onfocusout(e) {
348
+ // relatedTarget is the element, which will get focus. If no such element exists, focus the root.
349
+ // This happens after the mouse is released in order to not interrupt text selection.
350
+ if (!e.relatedTarget) {
351
+ this._shouldFocusRoot = true;
352
+ }
353
+ }
354
+ _onmousedown(e) {
355
+ if (this.shadowRoot.contains(e.target)) {
356
+ this._shouldFocusRoot = true;
357
+ }
358
+ else {
359
+ this._shouldFocusRoot = false;
360
+ }
361
+ }
362
+ _onmouseup() {
363
+ if (this._shouldFocusRoot) {
364
+ if (Icons.g()) {
365
+ this._root.focus();
366
+ }
367
+ this._shouldFocusRoot = false;
368
+ }
369
+ }
370
+ /**
371
+ * Focus trapping
372
+ * @private
373
+ */
374
+ async forwardToFirst() {
375
+ const firstFocusable = await BusyIndicator.b(this);
376
+ if (firstFocusable) {
377
+ firstFocusable.focus();
378
+ }
379
+ else {
380
+ this._root.focus();
381
+ }
382
+ }
383
+ /**
384
+ * Focus trapping
385
+ * @private
386
+ */
387
+ async forwardToLast() {
388
+ const lastFocusable = await BusyIndicator.H(this);
389
+ if (lastFocusable) {
390
+ lastFocusable.focus();
391
+ }
392
+ else {
393
+ this._root.focus();
394
+ }
395
+ }
396
+ /**
397
+ * Use this method to focus the element denoted by "initialFocus", if provided,
398
+ * or the first focusable element otherwise.
399
+ * @protected
400
+ */
401
+ async applyInitialFocus() {
402
+ if (!this.preventInitialFocus) {
403
+ await this.applyFocus();
404
+ }
405
+ }
406
+ /**
407
+ * Focuses the element denoted by `initialFocus`, if provided,
408
+ * or the first focusable element otherwise.
409
+ * @public
410
+ * @returns Promise that resolves when the focus is applied
411
+ */
412
+ async applyFocus() {
413
+ // do nothing if the standard HTML autofocus is used
414
+ if (this.querySelector("[autofocus]")) {
415
+ return;
416
+ }
417
+ await this._waitForDomRef();
418
+ if (this.getRootNode() === this) {
419
+ return;
420
+ }
421
+ let element;
422
+ if (this.initialFocus) {
423
+ element = this.getRootNode().getElementById(this.initialFocus)
424
+ || document.getElementById(this.initialFocus);
425
+ }
426
+ element = element || await BusyIndicator.b(this) || this._root; // in case of no focusable content focus the root
427
+ if (element) {
428
+ if (element === this._root) {
429
+ element.tabIndex = -1;
430
+ }
431
+ element.focus();
432
+ }
433
+ }
434
+ isFocusWithin() {
435
+ return a(this._root);
436
+ }
437
+ _updateMediaRange() {
438
+ this.mediaRange = webcomponentsBase.i$2.getCurrentRange(webcomponentsBase.i$2.RANGESETS.RANGE_4STEPS, this.getDomRef().offsetWidth);
439
+ }
440
+ _updateAssociatedLabelsTexts() {
441
+ this._associatedDescriptionRefTexts = AccessibilityTextsHelper.p(this);
442
+ }
443
+ /**
444
+ * Adds the popup to the "opened popups registry"
445
+ * @protected
446
+ */
447
+ _addOpenedPopup() {
448
+ addOpenedPopup(this);
449
+ }
450
+ /**
451
+ * Closes the popup.
452
+ */
453
+ closePopup(escPressed = false, preventRegistryUpdate = false, preventFocusRestore = false) {
454
+ if (!this._opened) {
455
+ return;
456
+ }
457
+ const prevented = !this.fireDecoratorEvent("before-close", { escPressed });
458
+ if (prevented) {
459
+ this.open = true;
460
+ return;
461
+ }
462
+ this._opened = false;
463
+ if (this.isModal) {
464
+ Popup_1.unblockPageScrolling(this);
465
+ }
466
+ this.hide();
467
+ this.open = false;
468
+ if (!preventRegistryUpdate) {
469
+ this._removeOpenedPopup();
470
+ }
471
+ if (!this.preventFocusRestore && !preventFocusRestore) {
472
+ this.resetFocus();
473
+ }
474
+ this.fireDecoratorEvent("close");
475
+ }
476
+ /**
477
+ * Removes the popup from the "opened popups registry"
478
+ * @protected
479
+ */
480
+ _removeOpenedPopup() {
481
+ removeOpenedPopup(this);
482
+ }
483
+ /**
484
+ * Returns the focus to the previously focused element
485
+ * @protected
486
+ */
487
+ resetFocus() {
488
+ this._focusedElementBeforeOpen?.focus();
489
+ this._focusedElementBeforeOpen = null;
490
+ }
491
+ /**
492
+ * Sets "block" display to the popup. The property can be overriden by derivatives of Popup.
493
+ * @protected
494
+ */
495
+ _show() {
496
+ if (this.isConnected) {
497
+ this.setAttribute("popover", "manual");
498
+ this.showPopover();
499
+ }
500
+ }
501
+ /**
502
+ * Sets "none" display to the popup
503
+ * @protected
504
+ */
505
+ hide() {
506
+ this.isConnected && this.hidePopover();
507
+ }
508
+ /**
509
+ * Ensures ariaLabel is never null or empty string
510
+ * @protected
511
+ */
512
+ get _ariaLabel() {
513
+ return AccessibilityTextsHelper.A(this);
514
+ }
515
+ get _accInfoAriaDescription() {
516
+ return this.ariaDescriptionText || "";
517
+ }
518
+ get ariaDescriptionText() {
519
+ return this._associatedDescriptionRefTexts || AccessibilityTextsHelper.L(this);
520
+ }
521
+ get ariaDescriptionTextId() {
522
+ return this.ariaDescriptionText ? "accessibleDescription" : "";
523
+ }
524
+ get ariaDescribedByIds() {
525
+ return [
526
+ this.ariaDescriptionTextId,
527
+ ].filter(Boolean).join(" ");
528
+ }
529
+ get _root() {
530
+ return this.shadowRoot.querySelector(".ui5-popup-root");
531
+ }
532
+ get _role() {
533
+ return (this.accessibleRole === PopupAccessibleRole$1.None) ? undefined : toLowercaseEnumValue.n(this.accessibleRole);
534
+ }
535
+ get _ariaModal() {
536
+ return this.accessibleRole === PopupAccessibleRole$1.None ? undefined : "true";
537
+ }
538
+ get contentDOM() {
539
+ return this.shadowRoot.querySelector(".ui5-popup-content");
540
+ }
541
+ get styles() {
542
+ return {
543
+ root: {},
544
+ content: {},
545
+ };
546
+ }
547
+ get classes() {
548
+ return {
549
+ root: {
550
+ "ui5-popup-root": true,
551
+ },
552
+ content: {
553
+ "ui5-popup-content": true,
554
+ },
555
+ };
556
+ }
557
+ };
558
+ __decorate$3([
559
+ webcomponentsBase.s()
560
+ ], Popup.prototype, "initialFocus", void 0);
561
+ __decorate$3([
562
+ webcomponentsBase.s({ type: Boolean })
563
+ ], Popup.prototype, "preventFocusRestore", void 0);
564
+ __decorate$3([
565
+ webcomponentsBase.s()
566
+ ], Popup.prototype, "accessibleName", void 0);
567
+ __decorate$3([
568
+ webcomponentsBase.s()
569
+ ], Popup.prototype, "accessibleNameRef", void 0);
570
+ __decorate$3([
571
+ webcomponentsBase.s()
572
+ ], Popup.prototype, "accessibleRole", void 0);
573
+ __decorate$3([
574
+ webcomponentsBase.s()
575
+ ], Popup.prototype, "accessibleDescription", void 0);
576
+ __decorate$3([
577
+ webcomponentsBase.s()
578
+ ], Popup.prototype, "accessibleDescriptionRef", void 0);
579
+ __decorate$3([
580
+ webcomponentsBase.s({ noAttribute: true })
581
+ ], Popup.prototype, "_associatedDescriptionRefTexts", void 0);
582
+ __decorate$3([
583
+ webcomponentsBase.s()
584
+ ], Popup.prototype, "mediaRange", void 0);
585
+ __decorate$3([
586
+ webcomponentsBase.s({ type: Boolean })
587
+ ], Popup.prototype, "preventInitialFocus", void 0);
588
+ __decorate$3([
589
+ webcomponentsBase.s({ type: Boolean, noAttribute: true })
590
+ ], Popup.prototype, "isTopModalPopup", void 0);
591
+ __decorate$3([
592
+ webcomponentsBase.d({ type: HTMLElement, "default": true })
593
+ ], Popup.prototype, "content", void 0);
594
+ __decorate$3([
595
+ webcomponentsBase.s({ type: Boolean })
596
+ ], Popup.prototype, "onPhone", void 0);
597
+ __decorate$3([
598
+ webcomponentsBase.s({ type: Boolean })
599
+ ], Popup.prototype, "onDesktop", void 0);
600
+ __decorate$3([
601
+ webcomponentsBase.s({ type: Boolean })
602
+ ], Popup.prototype, "open", null);
603
+ Popup = Popup_1 = __decorate$3([
604
+ webcomponentsBase.m({
605
+ renderer: parametersBundle_css.y,
606
+ styles: [popupStlyes, popupBlockLayerStyles],
607
+ template: PopupTemplate,
608
+ })
609
+ /**
610
+ * Fired before the component is opened. This event can be cancelled, which will prevent the popup from opening.
611
+ * @public
612
+ */
613
+ ,
614
+ eventStrict.l("before-open", {
615
+ cancelable: true,
616
+ })
617
+ /**
618
+ * Fired after the component is opened.
619
+ * @public
620
+ */
621
+ ,
622
+ eventStrict.l("open")
623
+ /**
624
+ * Fired before the component is closed. This event can be cancelled, which will prevent the popup from closing.
625
+ * @public
626
+ * @param {boolean} escPressed Indicates that `ESC` key has triggered the event.
627
+ */
628
+ ,
629
+ eventStrict.l("before-close", {
630
+ cancelable: true,
631
+ })
632
+ /**
633
+ * Fired after the component is closed.
634
+ * @public
635
+ */
636
+ ,
637
+ eventStrict.l("close")
638
+ /**
639
+ * Fired whenever the popup content area is scrolled
640
+ * @private
641
+ */
642
+ ,
643
+ eventStrict.l("scroll", {
644
+ bubbles: true,
645
+ })
646
+ ], Popup);
647
+ var Popup$1 = Popup;
648
+
649
+ const name$1 = "resize-corner";
650
+ const pathData$1 = "M384 160v32q0 12-10 22L182 406q-10 10-22 10h-32zM224 416l160-160v32q0 12-10 22l-96 96q-10 10-22 10h-32zm160-64v32q0 12-10 22t-22 10h-32z";
651
+ const ltr$1 = false;
652
+ const collection$1 = "SAP-icons-v4";
653
+ const packageName$1 = "sap/ushell/gen/ui5/webcomponents-icons";
654
+
655
+ Icons.f$2(name$1, { pathData: pathData$1, ltr: ltr$1, collection: collection$1, packageName: packageName$1 });
656
+
657
+ const name = "resize-corner";
658
+ const pathData = "M282 416q-11 0-18.5-7.5T256 390t7-18l109-109q7-7 18-7t18.5 7.5T416 282t-7 18L300 409q-7 7-18 7zm-160 0q-11 0-18.5-7.5T96 390t7-18l269-269q7-7 18-7t18.5 7.5T416 122t-7 18L140 409q-7 7-18 7z";
659
+ const ltr = false;
660
+ const collection = "SAP-icons-v5";
661
+ const packageName = "sap/ushell/gen/ui5/webcomponents-icons";
662
+
663
+ Icons.f$2(name, { pathData, ltr, collection, packageName });
664
+
665
+ var resizeCorner = "resize-corner";
666
+
667
+ function DialogTemplate() {
668
+ return PopupTemplate.call(this, {
669
+ beforeContent,
670
+ afterContent,
671
+ });
672
+ }
673
+ function beforeContent() {
674
+ return (parametersBundle_css.jsx(parametersBundle_css.Fragment, { children: !!this._displayHeader &&
675
+ parametersBundle_css.jsx("header", { children: parametersBundle_css.jsxs("div", { class: "ui5-popup-header-root", id: "ui5-popup-header", role: "group", "aria-describedby": this.effectiveAriaDescribedBy, "aria-roledescription": this.ariaRoleDescriptionHeaderText, tabIndex: this._headerTabIndex, onKeyDown: this._onDragOrResizeKeyDown, onMouseDown: this._onDragMouseDown, part: "header", children: [this.hasValueState &&
676
+ parametersBundle_css.jsx(Icon.Icon, { class: "ui5-dialog-value-state-icon", name: this._dialogStateIcon }), this.header.length ?
677
+ parametersBundle_css.jsx("slot", { name: "header" })
678
+ :
679
+ parametersBundle_css.jsx(Title.Title, { level: "H1", id: "ui5-popup-header-text", class: "ui5-popup-header-text", children: this.headerText }), this.resizable ?
680
+ this.draggable ?
681
+ parametersBundle_css.jsx("span", { id: `${this._id}-descr`, "aria-hidden": "true", class: "ui5-hidden-text", children: this.ariaDescribedByHeaderTextDraggableAndResizable })
682
+ :
683
+ parametersBundle_css.jsx("span", { id: `${this._id}-descr`, "aria-hidden": "true", class: "ui5-hidden-text", children: this.ariaDescribedByHeaderTextResizable })
684
+ :
685
+ this.draggable &&
686
+ parametersBundle_css.jsx("span", { id: `${this._id}-descr`, "aria-hidden": "true", class: "ui5-hidden-text", children: this.ariaDescribedByHeaderTextDraggable })] }) }) }));
687
+ }
688
+ function afterContent() {
689
+ return (parametersBundle_css.jsxs(parametersBundle_css.Fragment, { children: [!!this.footer.length &&
690
+ parametersBundle_css.jsx("footer", { class: "ui5-popup-footer-root", part: "footer", children: parametersBundle_css.jsx("slot", { name: "footer" }) }), this._showResizeHandle &&
691
+ parametersBundle_css.jsx("div", { class: "ui5-popup-resize-handle", onMouseDown: this._onResizeMouseDown, children: parametersBundle_css.jsx(Icon.Icon, { name: resizeCorner }) })] }));
692
+ }
693
+
694
+ Icons.p("sap/ushell/gen/ui5/webcomponents-theming", "sap_horizon", async () => parametersBundle_css.defaultThemeBase);
695
+ Icons.p("sap/ushell/gen/ui5/webcomponents", "sap_horizon", async () => i18nDefaults.defaultTheme);
696
+ var PopupsCommonCss = `.ui5-hidden-text{position:absolute;clip:rect(1px,1px,1px,1px);user-select:none;left:-1000px;top:-1000px;pointer-events:none;font-size:0}:host{position:fixed;background:var(--sapGroup_ContentBackground);border-radius:var(--_ui5-v2-13-0-rc-0_popup_border_radius);min-height:2rem;box-sizing:border-box}:host([open]){display:flex}.ui5-popup-root{background:inherit;border-radius:inherit;width:100%;box-sizing:border-box;display:flex;flex-direction:column;overflow:hidden;flex:1 1 auto;outline:none}.ui5-popup-root .ui5-popup-header-root{box-shadow:var(--_ui5-v2-13-0-rc-0_popup_header_shadow);border-bottom:var(--_ui5-v2-13-0-rc-0_popup_header_border)}.ui5-popup-content{color:var(--sapTextColor);flex:auto}.ui5-popup-content:focus{outline:var(--sapContent_FocusWidth) var(--sapContent_FocusStyle) var(--sapContent_FocusColor);outline-offset:calc(-1 * var(--sapContent_FocusWidth));border-radius:var(--_ui5-v2-13-0-rc-0_popup_border_radius)}.ui5-popup-footer-root{background:var(--sapPageFooter_Background);border-top:1px solid var(--sapPageFooter_BorderColor);color:var(--sapPageFooter_TextColor)}.ui5-popup-header-root,.ui5-popup-footer-root,:host([header-text]) .ui5-popup-header-text{margin:0;display:flex;justify-content:center;align-items:center}.ui5-popup-header-root .ui5-popup-header-text{font-weight:var(--sapFontHeaderFamily);font-size:var(--sapFontHeader5Size);color:var(--sapPageHeader_TextColor)}.ui5-popup-content{overflow:auto;box-sizing:border-box}:host([header-text]) .ui5-popup-header-text{min-height:var(--_ui5-v2-13-0-rc-0_popup_default_header_height);max-height:var(--_ui5-v2-13-0-rc-0_popup_default_header_height);line-height:var(--_ui5-v2-13-0-rc-0_popup_default_header_height);text-overflow:ellipsis;overflow:hidden;white-space:nowrap;max-width:100%;display:inline-flex;justify-content:var(--_ui5-v2-13-0-rc-0_popup_header_prop_header_text_alignment)}:host([header-text]) .ui5-popup-header-root{justify-content:var(--_ui5-v2-13-0-rc-0_popup_header_prop_header_text_alignment)}:host(:not([header-text])) .ui5-popup-header-text{display:none}:host([media-range="S"]) .ui5-popup-content{padding:1rem var(--_ui5-v2-13-0-rc-0_popup_content_padding_s)}:host([media-range="M"]) .ui5-popup-content,:host([media-range="L"]) .ui5-popup-content{padding:1rem var(--_ui5-v2-13-0-rc-0_popup_content_padding_m_l)}:host([media-range="XL"]) .ui5-popup-content{padding:1rem var(--_ui5-v2-13-0-rc-0_popup_content_padding_xl)}.ui5-popup-header-root{background:var(--_ui5-v2-13-0-rc-0_popup_header_background)}:host([media-range="S"]) .ui5-popup-header-root,:host([media-range="S"]) .ui5-popup-footer-root{padding-left:var(--_ui5-v2-13-0-rc-0_popup_header_footer_padding_s);padding-right:var(--_ui5-v2-13-0-rc-0_popup_header_footer_padding_s)}:host([media-range="M"]) .ui5-popup-header-root,:host([media-range="L"]) .ui5-popup-header-root,:host([media-range="M"]) .ui5-popup-footer-root,:host([media-range="L"]) .ui5-popup-footer-root{padding-left:var(--_ui5-v2-13-0-rc-0_popup_header_footer_padding_m_l);padding-right:var(--_ui5-v2-13-0-rc-0_popup_header_footer_padding_m_l)}:host([media-range="XL"]) .ui5-popup-header-root,:host([media-range="XL"]) .ui5-popup-footer-root{padding-left:var(--_ui5-v2-13-0-rc-0_popup_header_footer_padding_xl);padding-right:var(--_ui5-v2-13-0-rc-0_popup_header_footer_padding_xl)}
697
+ `;
698
+
699
+ Icons.p("sap/ushell/gen/ui5/webcomponents-theming", "sap_horizon", async () => parametersBundle_css.defaultThemeBase);
700
+ Icons.p("sap/ushell/gen/ui5/webcomponents", "sap_horizon", async () => i18nDefaults.defaultTheme);
701
+ var dialogCSS = `.ui5-hidden-text{position:absolute;clip:rect(1px,1px,1px,1px);user-select:none;left:-1000px;top:-1000px;pointer-events:none;font-size:0}:host{min-width:20rem;min-height:6rem;max-height:94%;max-width:90%;flex-direction:column;box-shadow:var(--sapContent_Shadow3);border-radius:var(--sapElement_BorderCornerRadius)}:host([stretch]){width:90%;height:94%}:host([stretch][on-phone]){width:100%;height:100%;max-height:100%;max-width:100%;border-radius:0;min-width:0}:host([draggable]) .ui5-popup-header-root,:host([draggable]) ::slotted([slot="header"]){cursor:move}:host([draggable]) .ui5-popup-header-root *{cursor:auto}:host([draggable]) .ui5-popup-root{user-select:text}::slotted([slot="header"]){max-width:100%}.ui5-popup-root{display:flex;flex-direction:column;max-width:100vw}.ui5-popup-header-root{position:relative}.ui5-popup-header-root:before{content:"";position:absolute;inset-block-start:auto;inset-block-end:0;inset-inline-start:0;inset-inline-end:0;height:var(--_ui5-v2-13-0-rc-0_dialog_header_state_line_height);background:var(--sapObjectHeader_BorderColor)}:host([state="Negative"]) .ui5-popup-header-root:before{background:var(--sapErrorBorderColor)}:host([state="Information"]) .ui5-popup-header-root:before{background:var(--sapInformationBorderColor)}:host([state="Positive"]) .ui5-popup-header-root:before{background:var(--sapSuccessBorderColor)}:host([state="Critical"]) .ui5-popup-header-root:before{background:var(--sapWarningBorderColor)}.ui5-dialog-value-state-icon{margin-inline-end:.5rem;flex-shrink:0}:host([state="Negative"]) .ui5-dialog-value-state-icon{color:var(--_ui5-v2-13-0-rc-0_dialog_header_error_state_icon_color)}:host([state="Information"]) .ui5-dialog-value-state-icon{color:var(--_ui5-v2-13-0-rc-0_dialog_header_information_state_icon_color)}:host([state="Positive"]) .ui5-dialog-value-state-icon{color:var(--_ui5-v2-13-0-rc-0_dialog_header_success_state_icon_color)}:host([state="Critical"]) .ui5-dialog-value-state-icon{color:var(--_ui5-v2-13-0-rc-0_dialog_header_warning_state_icon_color)}.ui5-popup-header-root{outline:none}:host([desktop]) .ui5-popup-header-root:focus:after,.ui5-popup-header-root:focus-visible:after{content:"";position:absolute;left:var(--_ui5-v2-13-0-rc-0_dialog_header_focus_left_offset);bottom:var(--_ui5-v2-13-0-rc-0_dialog_header_focus_bottom_offset);right:var(--_ui5-v2-13-0-rc-0_dialog_header_focus_right_offset);top:var(--_ui5-v2-13-0-rc-0_dialog_header_focus_top_offset);border:var(--sapContent_FocusWidth) var(--sapContent_FocusStyle) var(--sapContent_FocusColor);border-radius:var(--_ui5-v2-13-0-rc-0_dialog_header_border_radius) var(--_ui5-v2-13-0-rc-0_dialog_header_border_radius) 0 0;pointer-events:none}:host([stretch]) .ui5-popup-content{width:100%;height:100%}.ui5-popup-content{min-height:var(--_ui5-v2-13-0-rc-0_dialog_content_min_height);flex:1 1 auto}.ui5-popup-resize-handle{position:absolute;bottom:-.5rem;inset-inline-end:-.5rem;cursor:var(--_ui5-v2-13-0-rc-0_dialog_resize_cursor);width:1.5rem;height:1.5rem;border-radius:50%}.ui5-popup-resize-handle [ui5-icon]{color:var(--sapButton_Lite_TextColor)}::slotted([slot="footer"]){height:var(--_ui5-v2-13-0-rc-0_dialog_footer_height)}::slotted([slot="footer"][ui5-bar][design="Footer"]){border-top:none}::slotted([slot="header"][ui5-bar]){box-shadow:none}::slotted([slot="footer"][ui5-toolbar]){border:0}:host::backdrop{background-color:var(--_ui5-v2-13-0-rc-0_popup_block_layer_background);opacity:var(--_ui5-v2-13-0-rc-0_popup_block_layer_opacity)}.ui5-block-layer{display:block}
702
+ `;
703
+
704
+ var __decorate$2 = (this && this.__decorate) || function (decorators, target, key, desc) {
705
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
706
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
707
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
708
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
709
+ };
710
+ var Dialog_1;
711
+ /**
712
+ * Defines the step size at which this component would change by when being dragged or resized with the keyboard.
713
+ */
714
+ const STEP_SIZE = 16;
715
+ /**
716
+ * Defines the icons corresponding to the dialog's state.
717
+ */
718
+ const ICON_PER_STATE = {
719
+ [ValueState.o.Negative]: "error",
720
+ [ValueState.o.Critical]: "alert",
721
+ [ValueState.o.Positive]: "sys-enter-2",
722
+ [ValueState.o.Information]: "information",
723
+ };
724
+ /**
725
+ * @class
726
+ * ### Overview
727
+ * The `ui5-dialog` component is used to temporarily display some information in a
728
+ * size-limited window in front of the regular app screen.
729
+ * It is used to prompt the user for an action or a confirmation.
730
+ * The `ui5-dialog` interrupts the current app processing as it is the only focused UI element and
731
+ * the main screen is dimmed/blocked.
732
+ * The dialog combines concepts known from other technologies where the windows have
733
+ * names such as dialog box, dialog window, pop-up, pop-up window, alert box, or message box.
734
+ *
735
+ * The `ui5-dialog` is modal, which means that a user action is required before it is possible to return to the parent window.
736
+ * To open multiple dialogs, each dialog element should be separate in the markup. This will ensure the correct modal behavior. Avoid nesting dialogs within each other.
737
+ * The content of the `ui5-dialog` is fully customizable.
738
+ *
739
+ * ### Structure
740
+ * A `ui5-dialog` consists of a header, content, and a footer for action buttons.
741
+ * The `ui5-dialog` is usually displayed at the center of the screen.
742
+ * Its position can be changed by the user. To enable this, you need to set the property `draggable` accordingly.
743
+
744
+ *
745
+ * ### Responsive Behavior
746
+ * The `stretch` property can be used to stretch the `ui5-dialog` to full screen. For better usability, it's recommended to stretch the dialog to full screen on phone devices.
747
+ *
748
+ * **Note:** When a `ui5-bar` is used in the header or in the footer, you should remove the default dialog's paddings.
749
+ *
750
+ * For more information see the sample "Bar in Header/Footer".
751
+
752
+ * ### Keyboard Handling
753
+ *
754
+ * #### Basic Navigation
755
+ * When the `ui5-dialog` has the `draggable` property set to `true` and the header is focused, the user can move the dialog
756
+ * with the following keyboard shortcuts:
757
+ *
758
+ * - [Up] or [Down] arrow keys - Move the dialog up/down.
759
+ * - [Left] or [Right] arrow keys - Move the dialog left/right.
760
+ *
761
+ * #### Resizing
762
+ * When the `ui5-dialog` has the `resizable` property set to `true` and the header is focused, the user can change the size of the dialog
763
+ * with the following keyboard shortcuts:
764
+ *
765
+ * - [Shift] + [Up] or [Down] - Decrease/Increase the height of the dialog.
766
+ * - [Shift] + [Left] or [Right] - Decrease/Increase the width of the dialog.
767
+ *
768
+ * ### ES6 Module Import
769
+ *
770
+ * `import "sap/ushell/gen/ui5/webcomponents/dist/Dialog";`
771
+ *
772
+ * @constructor
773
+ * @extends Popup
774
+ * @public
775
+ * @csspart header - Used to style the header of the component
776
+ * @csspart content - Used to style the content of the component
777
+ * @csspart footer - Used to style the footer of the component
778
+ */
779
+ let Dialog = Dialog_1 = class Dialog extends Popup$1 {
780
+ constructor() {
781
+ super();
782
+ /**
783
+ * Determines if the dialog will be stretched to full screen on mobile. On desktop,
784
+ * the dialog will be stretched to approximately 90% of the viewport.
785
+ *
786
+ * **Note:** For better usability of the component it is recommended to set this property to "true" when the dialog is opened on phone.
787
+ * @default false
788
+ * @public
789
+ */
790
+ this.stretch = false;
791
+ /**
792
+ * Determines whether the component is draggable.
793
+ * If this property is set to true, the Dialog will be draggable by its header.
794
+ *
795
+ * **Note:** The component can be draggable only in desktop mode.
796
+ *
797
+ * **Note:** This property overrides the default HTML "draggable" attribute native behavior.
798
+ * When "draggable" is set to true, the native browser "draggable"
799
+ * behavior is prevented and only the Dialog custom logic ("draggable by its header") works.
800
+ * @default false
801
+ * @since 1.0.0-rc.9
802
+ * @public
803
+ */
804
+ this.draggable = false;
805
+ /**
806
+ * Configures the component to be resizable.
807
+ * If this property is set to true, the Dialog will have a resize handle in its bottom right corner in LTR languages.
808
+ * In RTL languages, the resize handle will be placed in the bottom left corner.
809
+ *
810
+ * **Note:** The component can be resizable only in desktop mode.
811
+ *
812
+ * **Note:** Upon resizing, externally defined height and width styling will be ignored.
813
+ * @default false
814
+ * @since 1.0.0-rc.10
815
+ * @public
816
+ */
817
+ this.resizable = false;
818
+ /**
819
+ * Defines the state of the `Dialog`.
820
+ *
821
+ * **Note:** If `"Negative"` and `"Critical"` states is set, it will change the
822
+ * accessibility role to "alertdialog", if the accessibleRole property is set to `"Dialog"`.
823
+ * @default "None"
824
+ * @public
825
+ * @since 1.0.0-rc.15
826
+ */
827
+ this.state = "None";
828
+ this._draggedOrResized = false;
829
+ this._revertSize = () => {
830
+ Object.assign(this.style, {
831
+ top: "",
832
+ left: "",
833
+ width: "",
834
+ height: "",
835
+ });
836
+ };
837
+ this._screenResizeHandler = this._screenResize.bind(this);
838
+ this._dragMouseMoveHandler = this._onDragMouseMove.bind(this);
839
+ this._dragMouseUpHandler = this._onDragMouseUp.bind(this);
840
+ this._resizeMouseMoveHandler = this._onResizeMouseMove.bind(this);
841
+ this._resizeMouseUpHandler = this._onResizeMouseUp.bind(this);
842
+ this._dragStartHandler = this._handleDragStart.bind(this);
843
+ }
844
+ static _isHeader(element) {
845
+ return element.classList.contains("ui5-popup-header-root") || element.getAttribute("slot") === "header";
846
+ }
847
+ get isModal() {
848
+ return true;
849
+ }
850
+ get _ariaLabelledBy() {
851
+ let ariaLabelledById;
852
+ if (this.headerText && !this._ariaLabel) {
853
+ ariaLabelledById = "ui5-popup-header-text";
854
+ }
855
+ return ariaLabelledById;
856
+ }
857
+ get ariaRoleDescriptionHeaderText() {
858
+ return (this.resizable || this.draggable) ? Dialog_1.i18nBundle.getText(i18nDefaults.DIALOG_HEADER_ARIA_ROLE_DESCRIPTION) : undefined;
859
+ }
860
+ get effectiveAriaDescribedBy() {
861
+ return (this.resizable || this.draggable) ? `${this._id}-descr` : undefined;
862
+ }
863
+ get ariaDescribedByHeaderTextResizable() {
864
+ return Dialog_1.i18nBundle.getText(i18nDefaults.DIALOG_HEADER_ARIA_DESCRIBEDBY_RESIZABLE);
865
+ }
866
+ get ariaDescribedByHeaderTextDraggable() {
867
+ return Dialog_1.i18nBundle.getText(i18nDefaults.DIALOG_HEADER_ARIA_DESCRIBEDBY_DRAGGABLE);
868
+ }
869
+ get ariaDescribedByHeaderTextDraggableAndResizable() {
870
+ return Dialog_1.i18nBundle.getText(i18nDefaults.DIALOG_HEADER_ARIA_DESCRIBEDBY_DRAGGABLE_RESIZABLE);
871
+ }
872
+ /**
873
+ * Determines if the header should be shown.
874
+ */
875
+ get _displayHeader() {
876
+ return this.header.length || this.headerText || this.draggable || this.resizable;
877
+ }
878
+ get _movable() {
879
+ return !this.stretch && this.onDesktop && (this.draggable || this.resizable);
880
+ }
881
+ get _headerTabIndex() {
882
+ return this._movable ? 0 : undefined;
883
+ }
884
+ get _showResizeHandle() {
885
+ return this.resizable && this.onDesktop;
886
+ }
887
+ get _minHeight() {
888
+ let minHeight = Number.parseInt(window.getComputedStyle(this.contentDOM).minHeight);
889
+ const header = this._root.querySelector(".ui5-popup-header-root");
890
+ if (header) {
891
+ minHeight += header.offsetHeight;
892
+ }
893
+ const footer = this._root.querySelector(".ui5-popup-footer-root");
894
+ if (footer) {
895
+ minHeight += footer.offsetHeight;
896
+ }
897
+ return minHeight;
898
+ }
899
+ get hasValueState() {
900
+ return this.state !== ValueState.o.None;
901
+ }
902
+ get _dialogStateIcon() {
903
+ return ICON_PER_STATE[this.state];
904
+ }
905
+ get _role() {
906
+ if (this.accessibleRole === PopupAccessibleRole$1.None) {
907
+ return undefined;
908
+ }
909
+ if (this.state === ValueState.o.Negative || this.state === ValueState.o.Critical) {
910
+ return toLowercaseEnumValue.n(PopupAccessibleRole$1.AlertDialog);
911
+ }
912
+ return toLowercaseEnumValue.n(this.accessibleRole);
913
+ }
914
+ _show() {
915
+ super._show();
916
+ this._center();
917
+ }
918
+ onBeforeRendering() {
919
+ super.onBeforeRendering();
920
+ this._isRTL = this.effectiveDir === "rtl";
921
+ }
922
+ onEnterDOM() {
923
+ super.onEnterDOM();
924
+ this._attachScreenResizeHandler();
925
+ this.addEventListener("dragstart", this._dragStartHandler);
926
+ this.setAttribute("data-sap-ui-fastnavgroup-container", "true");
927
+ }
928
+ onExitDOM() {
929
+ super.onExitDOM();
930
+ this._detachScreenResizeHandler();
931
+ this.removeEventListener("dragstart", this._dragStartHandler);
932
+ }
933
+ /**
934
+ * @override
935
+ */
936
+ _resize() {
937
+ super._resize();
938
+ if (!this._draggedOrResized) {
939
+ this._center();
940
+ }
941
+ }
942
+ _screenResize() {
943
+ this._center();
944
+ }
945
+ _attachScreenResizeHandler() {
946
+ if (!this._screenResizeHandlerAttached) {
947
+ window.addEventListener("resize", this._screenResizeHandler);
948
+ this._screenResizeHandlerAttached = true;
949
+ }
950
+ }
951
+ _detachScreenResizeHandler() {
952
+ if (this._screenResizeHandlerAttached) {
953
+ window.removeEventListener("resize", this._screenResizeHandler);
954
+ this._screenResizeHandlerAttached = false; // prevent dialog from repositioning during resizing
955
+ }
956
+ }
957
+ _center() {
958
+ const height = window.innerHeight - this.offsetHeight, width = window.innerWidth - this.offsetWidth;
959
+ Object.assign(this.style, {
960
+ top: `${Math.round(height / 2)}px`,
961
+ left: `${Math.round(width / 2)}px`,
962
+ });
963
+ }
964
+ /**
965
+ * Event handlers
966
+ */
967
+ _onDragMouseDown(e) {
968
+ // allow dragging only on the header
969
+ if (!this._movable || !this.draggable || !Dialog_1._isHeader(e.target)) {
970
+ return;
971
+ }
972
+ const { top, left, } = this.getBoundingClientRect();
973
+ const { width, height, } = window.getComputedStyle(this);
974
+ Object.assign(this.style, {
975
+ top: `${top}px`,
976
+ left: `${left}px`,
977
+ width: `${Math.round(Number.parseFloat(width) * 100) / 100}px`,
978
+ height: `${Math.round(Number.parseFloat(height) * 100) / 100}px`,
979
+ });
980
+ this._x = e.clientX;
981
+ this._y = e.clientY;
982
+ this._draggedOrResized = true;
983
+ this._attachMouseDragHandlers();
984
+ }
985
+ _onDragMouseMove(e) {
986
+ e.preventDefault();
987
+ const { clientX, clientY } = e;
988
+ const calcX = this._x - clientX;
989
+ const calcY = this._y - clientY;
990
+ const { left, top, } = this.getBoundingClientRect();
991
+ Object.assign(this.style, {
992
+ left: `${Math.floor(left - calcX)}px`,
993
+ top: `${Math.floor(top - calcY)}px`,
994
+ });
995
+ this._x = clientX;
996
+ this._y = clientY;
997
+ }
998
+ _onDragMouseUp() {
999
+ delete this._x;
1000
+ delete this._y;
1001
+ this._detachMouseDragHandlers();
1002
+ }
1003
+ _onDragOrResizeKeyDown(e) {
1004
+ if (!this._movable || !Dialog_1._isHeader(e.target)) {
1005
+ return;
1006
+ }
1007
+ if (this.draggable && [webcomponentsBase.D, webcomponentsBase.P, webcomponentsBase.K, webcomponentsBase.c].some(key => key(e))) {
1008
+ this._dragWithEvent(e);
1009
+ return;
1010
+ }
1011
+ if (this.resizable && [webcomponentsBase.O, webcomponentsBase.u$1, webcomponentsBase.w, webcomponentsBase.T].some(key => key(e))) {
1012
+ this._resizeWithEvent(e);
1013
+ }
1014
+ }
1015
+ _dragWithEvent(e) {
1016
+ const { top, left, width, height, } = this.getBoundingClientRect();
1017
+ let newPos = 0;
1018
+ let posDirection = "top";
1019
+ switch (true) {
1020
+ case webcomponentsBase.D(e):
1021
+ newPos = top - STEP_SIZE;
1022
+ posDirection = "top";
1023
+ break;
1024
+ case webcomponentsBase.P(e):
1025
+ newPos = top + STEP_SIZE;
1026
+ posDirection = "top";
1027
+ break;
1028
+ case webcomponentsBase.K(e):
1029
+ newPos = left - STEP_SIZE;
1030
+ posDirection = "left";
1031
+ break;
1032
+ case webcomponentsBase.c(e):
1033
+ newPos = left + STEP_SIZE;
1034
+ posDirection = "left";
1035
+ break;
1036
+ }
1037
+ newPos = m$1(newPos, 0, posDirection === "left" ? window.innerWidth - width : window.innerHeight - height);
1038
+ this.style[posDirection] = `${newPos}px`;
1039
+ }
1040
+ _resizeWithEvent(e) {
1041
+ this._draggedOrResized = true;
1042
+ this.addEventListener("ui5-before-close", this._revertSize, { once: true });
1043
+ const { top, left } = this.getBoundingClientRect(), style = window.getComputedStyle(this), minWidth = Number.parseFloat(style.minWidth), maxWidth = window.innerWidth - left, maxHeight = window.innerHeight - top;
1044
+ let width = Number.parseFloat(style.width), height = Number.parseFloat(style.height);
1045
+ switch (true) {
1046
+ case webcomponentsBase.O(e):
1047
+ height -= STEP_SIZE;
1048
+ break;
1049
+ case webcomponentsBase.u$1(e):
1050
+ height += STEP_SIZE;
1051
+ break;
1052
+ case webcomponentsBase.w(e):
1053
+ width -= STEP_SIZE;
1054
+ break;
1055
+ case webcomponentsBase.T(e):
1056
+ width += STEP_SIZE;
1057
+ break;
1058
+ }
1059
+ width = m$1(width, minWidth, maxWidth);
1060
+ height = m$1(height, this._minHeight, maxHeight);
1061
+ Object.assign(this.style, {
1062
+ width: `${width}px`,
1063
+ height: `${height}px`,
1064
+ });
1065
+ }
1066
+ _attachMouseDragHandlers() {
1067
+ window.addEventListener("mousemove", this._dragMouseMoveHandler);
1068
+ window.addEventListener("mouseup", this._dragMouseUpHandler);
1069
+ }
1070
+ _detachMouseDragHandlers() {
1071
+ window.removeEventListener("mousemove", this._dragMouseMoveHandler);
1072
+ window.removeEventListener("mouseup", this._dragMouseUpHandler);
1073
+ }
1074
+ _onResizeMouseDown(e) {
1075
+ if (!this._movable || !this.resizable) {
1076
+ return;
1077
+ }
1078
+ e.preventDefault();
1079
+ const { top, left, } = this.getBoundingClientRect();
1080
+ const { width, height, minWidth, } = window.getComputedStyle(this);
1081
+ this._initialX = e.clientX;
1082
+ this._initialY = e.clientY;
1083
+ this._initialWidth = Number.parseFloat(width);
1084
+ this._initialHeight = Number.parseFloat(height);
1085
+ this._initialTop = top;
1086
+ this._initialLeft = left;
1087
+ this._minWidth = Number.parseFloat(minWidth);
1088
+ this._cachedMinHeight = this._minHeight;
1089
+ Object.assign(this.style, {
1090
+ top: `${top}px`,
1091
+ left: `${left}px`,
1092
+ });
1093
+ this._draggedOrResized = true;
1094
+ this._attachMouseResizeHandlers();
1095
+ }
1096
+ _onResizeMouseMove(e) {
1097
+ const { clientX, clientY } = e;
1098
+ let newWidth, newLeft;
1099
+ if (this._isRTL) {
1100
+ newWidth = m$1(this._initialWidth - (clientX - this._initialX), this._minWidth, this._initialLeft + this._initialWidth);
1101
+ newLeft = m$1(this._initialLeft + (clientX - this._initialX), 0, this._initialX + this._initialWidth - this._minWidth);
1102
+ }
1103
+ else {
1104
+ newWidth = m$1(this._initialWidth + (clientX - this._initialX), this._minWidth, window.innerWidth - this._initialLeft);
1105
+ }
1106
+ const newHeight = m$1(this._initialHeight + (clientY - this._initialY), this._cachedMinHeight, window.innerHeight - this._initialTop);
1107
+ Object.assign(this.style, {
1108
+ height: `${newHeight}px`,
1109
+ width: `${newWidth}px`,
1110
+ left: newLeft ? `${newLeft}px` : undefined,
1111
+ });
1112
+ }
1113
+ _onResizeMouseUp() {
1114
+ delete this._initialX;
1115
+ delete this._initialY;
1116
+ delete this._initialWidth;
1117
+ delete this._initialHeight;
1118
+ delete this._initialTop;
1119
+ delete this._initialLeft;
1120
+ delete this._minWidth;
1121
+ delete this._cachedMinHeight;
1122
+ this._detachMouseResizeHandlers();
1123
+ }
1124
+ _handleDragStart(e) {
1125
+ if (this.draggable) {
1126
+ e.preventDefault();
1127
+ }
1128
+ }
1129
+ _attachMouseResizeHandlers() {
1130
+ window.addEventListener("mousemove", this._resizeMouseMoveHandler);
1131
+ window.addEventListener("mouseup", this._resizeMouseUpHandler);
1132
+ this.addEventListener("ui5-before-close", this._revertSize, { once: true });
1133
+ }
1134
+ _detachMouseResizeHandlers() {
1135
+ window.removeEventListener("mousemove", this._resizeMouseMoveHandler);
1136
+ window.removeEventListener("mouseup", this._resizeMouseUpHandler);
1137
+ }
1138
+ };
1139
+ __decorate$2([
1140
+ webcomponentsBase.s()
1141
+ ], Dialog.prototype, "headerText", void 0);
1142
+ __decorate$2([
1143
+ webcomponentsBase.s({ type: Boolean })
1144
+ ], Dialog.prototype, "stretch", void 0);
1145
+ __decorate$2([
1146
+ webcomponentsBase.s({ type: Boolean })
1147
+ ], Dialog.prototype, "draggable", void 0);
1148
+ __decorate$2([
1149
+ webcomponentsBase.s({ type: Boolean })
1150
+ ], Dialog.prototype, "resizable", void 0);
1151
+ __decorate$2([
1152
+ webcomponentsBase.s()
1153
+ ], Dialog.prototype, "state", void 0);
1154
+ __decorate$2([
1155
+ webcomponentsBase.d()
1156
+ ], Dialog.prototype, "header", void 0);
1157
+ __decorate$2([
1158
+ webcomponentsBase.d()
1159
+ ], Dialog.prototype, "footer", void 0);
1160
+ __decorate$2([
1161
+ i18nDefaults.i("sap/ushell/gen/ui5/webcomponents")
1162
+ ], Dialog, "i18nBundle", void 0);
1163
+ Dialog = Dialog_1 = __decorate$2([
1164
+ webcomponentsBase.m({
1165
+ tag: "ui5-dialog",
1166
+ template: DialogTemplate,
1167
+ styles: [
1168
+ Popup$1.styles,
1169
+ PopupsCommonCss,
1170
+ dialogCSS,
1171
+ List.a(),
1172
+ ],
1173
+ })
1174
+ ], Dialog);
1175
+ Dialog.define();
1176
+ var Dialog$1 = Dialog;
1177
+
1178
+ function ResponsivePopoverTemplate() {
1179
+ if (!this._isPhone) {
1180
+ return PopoverTemplate.call(this);
1181
+ }
1182
+ return (parametersBundle_css.jsxs(Dialog$1, { "root-element": true, accessibleName: this.accessibleName, accessibleNameRef: this.accessibleNameRef, accessibleDescription: this.accessibleDescription, accessibleDescriptionRef: this.accessibleDescriptionRef, accessibleRole: this.accessibleRole, stretch: true, preventInitialFocus: this.preventInitialFocus, preventFocusRestore: this.preventFocusRestore, initialFocus: this.initialFocus, onBeforeOpen: this._beforeDialogOpen, onOpen: this._afterDialogOpen, onBeforeClose: this._beforeDialogClose, onClose: this._afterDialogClose, exportparts: "content, header, footer", open: this.open, children: [!this._hideHeader && parametersBundle_css.jsx(parametersBundle_css.Fragment, { children: this.header.length ?
1183
+ parametersBundle_css.jsx("slot", { slot: "header", name: "header" })
1184
+ :
1185
+ parametersBundle_css.jsxs("div", { class: this.classes.header, slot: "header", children: [this.headerText &&
1186
+ parametersBundle_css.jsx(Title.Title, { level: "H1", wrappingType: "None", class: "ui5-popup-header-text ui5-responsive-popover-header-text", children: this.headerText }), !this._hideCloseButton &&
1187
+ parametersBundle_css.jsx(Button.Button, { icon: information.decline, design: "Transparent", accessibleName: this._closeDialogAriaLabel, onClick: this._dialogCloseButtonClick })] }) }), parametersBundle_css.jsx("slot", {}), parametersBundle_css.jsx("slot", { slot: "footer", name: "footer" })] }));
1188
+ }
1189
+
1190
+ /**
1191
+ * Popover placements.
1192
+ * @public
1193
+ */
1194
+ var PopoverPlacement;
1195
+ (function (PopoverPlacement) {
1196
+ /**
1197
+ * Popover will be placed at the start of the reference element.
1198
+ * @public
1199
+ */
1200
+ PopoverPlacement["Start"] = "Start";
1201
+ /**
1202
+ * Popover will be placed at the end of the reference element.
1203
+ * @public
1204
+ */
1205
+ PopoverPlacement["End"] = "End";
1206
+ /**
1207
+ * Popover will be placed at the top of the reference element.
1208
+ * @public
1209
+ */
1210
+ PopoverPlacement["Top"] = "Top";
1211
+ /**
1212
+ * Popover will be placed at the bottom of the reference element.
1213
+ * @public
1214
+ */
1215
+ PopoverPlacement["Bottom"] = "Bottom";
1216
+ })(PopoverPlacement || (PopoverPlacement = {}));
1217
+ var PopoverPlacement$1 = PopoverPlacement;
1218
+
1219
+ /**
1220
+ * Popover vertical align types.
1221
+ * @public
1222
+ */
1223
+ var PopoverVerticalAlign;
1224
+ (function (PopoverVerticalAlign) {
1225
+ /**
1226
+ * @public
1227
+ */
1228
+ PopoverVerticalAlign["Center"] = "Center";
1229
+ /**
1230
+ * Popover will be placed at the top of the reference control.
1231
+ * @public
1232
+ */
1233
+ PopoverVerticalAlign["Top"] = "Top";
1234
+ /**
1235
+ * Popover will be placed at the bottom of the reference control.
1236
+ * @public
1237
+ */
1238
+ PopoverVerticalAlign["Bottom"] = "Bottom";
1239
+ /**
1240
+ * Popover will be streched
1241
+ * @public
1242
+ */
1243
+ PopoverVerticalAlign["Stretch"] = "Stretch";
1244
+ })(PopoverVerticalAlign || (PopoverVerticalAlign = {}));
1245
+ var PopoverVerticalAlign$1 = PopoverVerticalAlign;
1246
+
1247
+ /**
1248
+ * Popover horizontal align types.
1249
+ * @public
1250
+ */
1251
+ var PopoverHorizontalAlign;
1252
+ (function (PopoverHorizontalAlign) {
1253
+ /**
1254
+ * Popover is centered.
1255
+ * @public
1256
+ */
1257
+ PopoverHorizontalAlign["Center"] = "Center";
1258
+ /**
1259
+ * Popover is aligned with the start of the target.
1260
+ * @public
1261
+ */
1262
+ PopoverHorizontalAlign["Start"] = "Start";
1263
+ /**
1264
+ * Popover is aligned with the end of the target.
1265
+ * @public
1266
+ */
1267
+ PopoverHorizontalAlign["End"] = "End";
1268
+ /**
1269
+ * Popover is stretched.
1270
+ * @public
1271
+ */
1272
+ PopoverHorizontalAlign["Stretch"] = "Stretch";
1273
+ })(PopoverHorizontalAlign || (PopoverHorizontalAlign = {}));
1274
+ var PopoverHorizontalAlign$1 = PopoverHorizontalAlign;
1275
+
1276
+ const e=t=>t.parentElement?t.parentElement:t.parentNode.host;
1277
+
1278
+ let updateInterval;
1279
+ const intervalTimeout = 300;
1280
+ const openedRegistry = [];
1281
+ const repositionPopovers = () => {
1282
+ openedRegistry.forEach(popover => {
1283
+ popover.instance.reposition();
1284
+ });
1285
+ };
1286
+ const closePopoversIfLostFocus = () => {
1287
+ let activeElement = webcomponentsBase.t();
1288
+ if (activeElement.tagName === "IFRAME") {
1289
+ getRegistry().reverse().forEach(popup => {
1290
+ const popover = popup.instance;
1291
+ const opener = popover.getOpenerHTMLElement(popover.opener);
1292
+ while (activeElement) {
1293
+ if (activeElement === opener) {
1294
+ return;
1295
+ }
1296
+ activeElement = e(activeElement);
1297
+ }
1298
+ popover.closePopup(false, false, true);
1299
+ });
1300
+ }
1301
+ };
1302
+ const runUpdateInterval = () => {
1303
+ updateInterval = setInterval(() => {
1304
+ repositionPopovers();
1305
+ closePopoversIfLostFocus();
1306
+ }, intervalTimeout);
1307
+ };
1308
+ const stopUpdateInterval = () => {
1309
+ clearInterval(updateInterval);
1310
+ };
1311
+ const attachGlobalScrollHandler = () => {
1312
+ document.addEventListener("scroll", repositionPopovers, { capture: true });
1313
+ };
1314
+ const detachGlobalScrollHandler = () => {
1315
+ document.removeEventListener("scroll", repositionPopovers, { capture: true });
1316
+ };
1317
+ const attachScrollHandler = (popover) => {
1318
+ popover && popover.shadowRoot.addEventListener("scroll", repositionPopovers, { capture: true });
1319
+ };
1320
+ const detachScrollHandler = (popover) => {
1321
+ popover && popover.shadowRoot.removeEventListener("scroll", repositionPopovers, { capture: true });
1322
+ };
1323
+ const attachGlobalClickHandler = () => {
1324
+ document.addEventListener("mousedown", clickHandler, { capture: true });
1325
+ };
1326
+ const detachGlobalClickHandler = () => {
1327
+ document.removeEventListener("mousedown", clickHandler, { capture: true });
1328
+ };
1329
+ const clickHandler = (event) => {
1330
+ const openedPopups = getOpenedPopups();
1331
+ if (openedPopups.length === 0) {
1332
+ return;
1333
+ }
1334
+ const isTopPopupPopover = instanceOfPopover(openedPopups[openedPopups.length - 1].instance);
1335
+ if (!isTopPopupPopover) {
1336
+ return;
1337
+ }
1338
+ // loop all open popovers
1339
+ for (let i = (openedPopups.length - 1); i !== -1; i--) {
1340
+ const popup = openedPopups[i].instance;
1341
+ // if popup is modal, opener is clicked, popup is dialog skip closing
1342
+ if (popup.isModal || popup.isOpenerClicked(event)) {
1343
+ return;
1344
+ }
1345
+ if (f(event, popup.getBoundingClientRect())) {
1346
+ break;
1347
+ }
1348
+ popup.closePopup();
1349
+ }
1350
+ };
1351
+ const addOpenedPopover = (instance) => {
1352
+ const parentPopovers = getParentPopoversIfNested(instance);
1353
+ addOpenedPopup(instance, parentPopovers);
1354
+ openedRegistry.push({
1355
+ instance,
1356
+ parentPopovers,
1357
+ });
1358
+ attachScrollHandler(instance);
1359
+ if (openedRegistry.length === 1) {
1360
+ attachGlobalScrollHandler();
1361
+ attachGlobalClickHandler();
1362
+ runUpdateInterval();
1363
+ }
1364
+ };
1365
+ const removeOpenedPopover = (instance) => {
1366
+ const popoversToClose = [instance];
1367
+ for (let i = 0; i < openedRegistry.length; i++) {
1368
+ const indexOfCurrentInstance = openedRegistry[i].parentPopovers.indexOf(instance);
1369
+ if (openedRegistry[i].parentPopovers.length > 0 && indexOfCurrentInstance > -1) {
1370
+ popoversToClose.push(openedRegistry[i].instance);
1371
+ }
1372
+ }
1373
+ for (let i = popoversToClose.length - 1; i >= 0; i--) {
1374
+ for (let j = 0; j < openedRegistry.length; j++) {
1375
+ let indexOfItemToRemove = -1;
1376
+ if (popoversToClose[i] === openedRegistry[j].instance) {
1377
+ indexOfItemToRemove = j;
1378
+ }
1379
+ if (indexOfItemToRemove >= 0) {
1380
+ removeOpenedPopup(openedRegistry[indexOfItemToRemove].instance);
1381
+ detachScrollHandler(openedRegistry[indexOfItemToRemove].instance);
1382
+ const itemToClose = openedRegistry.splice(indexOfItemToRemove, 1);
1383
+ itemToClose[0].instance.closePopup(false, true);
1384
+ }
1385
+ }
1386
+ }
1387
+ if (!openedRegistry.length) {
1388
+ detachGlobalScrollHandler();
1389
+ detachGlobalClickHandler();
1390
+ stopUpdateInterval();
1391
+ }
1392
+ };
1393
+ const getRegistry = () => {
1394
+ return openedRegistry;
1395
+ };
1396
+ const getParentPopoversIfNested = (instance) => {
1397
+ let currentElement = instance.parentNode;
1398
+ const parentPopovers = [];
1399
+ while (currentElement && currentElement.parentNode) {
1400
+ for (let i = 0; i < openedRegistry.length; i++) {
1401
+ if (currentElement === openedRegistry[i].instance) {
1402
+ parentPopovers.push(currentElement);
1403
+ }
1404
+ }
1405
+ currentElement = currentElement.parentNode;
1406
+ }
1407
+ return parentPopovers;
1408
+ };
1409
+
1410
+ Icons.p("sap/ushell/gen/ui5/webcomponents-theming", "sap_horizon", async () => parametersBundle_css.defaultThemeBase);
1411
+ Icons.p("sap/ushell/gen/ui5/webcomponents", "sap_horizon", async () => i18nDefaults.defaultTheme);
1412
+ var PopoverCss = `:host{box-shadow:var(--_ui5-v2-13-0-rc-0_popover_box_shadow);background-color:var(--_ui5-v2-13-0-rc-0_popover_background);max-width:calc(100vw - (100vw - 100%) - 2 * var(--_ui5-v2-13-0-rc-0_popup_viewport_margin))}:host([hide-arrow]){box-shadow:var(--_ui5-v2-13-0-rc-0_popover_no_arrow_box_shadow)}:host([actual-placement="Bottom"]) .ui5-popover-arrow{left:calc(50% - .5625rem);top:-.5rem;height:.5rem}:host([actual-placement="Bottom"]) .ui5-popover-arrow:after{margin:var(--_ui5-v2-13-0-rc-0_popover_upward_arrow_margin)}:host([actual-placement="Start"]) .ui5-popover-arrow{top:calc(50% - .5625rem);right:-.5625rem;width:.5625rem}:host([actual-placement="Start"]) .ui5-popover-arrow:after{margin:var(--_ui5-v2-13-0-rc-0_popover_right_arrow_margin)}:host([actual-placement="Top"]) .ui5-popover-arrow{left:calc(50% - .5625rem);height:.5625rem;top:100%}:host([actual-placement="Top"]) .ui5-popover-arrow:after{margin:var(--_ui5-v2-13-0-rc-0_popover_downward_arrow_margin)}:host(:not([actual-placement])) .ui5-popover-arrow,:host([actual-placement="End"]) .ui5-popover-arrow{left:-.5625rem;top:calc(50% - .5625rem);width:.5625rem;height:1rem}:host(:not([actual-placement])) .ui5-popover-arrow:after,:host([actual-placement="End"]) .ui5-popover-arrow:after{margin:var(--_ui5-v2-13-0-rc-0_popover_left_arrow_margin)}:host([hide-arrow]) .ui5-popover-arrow{display:none}.ui5-popover-root{min-width:6.25rem}.ui5-popover-arrow{pointer-events:none;display:block;width:1rem;height:1rem;position:absolute;overflow:hidden}.ui5-popover-arrow:after{content:"";display:block;width:.7rem;height:.7rem;background-color:var(--_ui5-v2-13-0-rc-0_popover_background);box-shadow:var(--_ui5-v2-13-0-rc-0_popover_box_shadow);transform:rotate(-45deg)}:host([modal])::backdrop{background-color:var(--_ui5-v2-13-0-rc-0_popup_block_layer_background);opacity:var(--_ui5-v2-13-0-rc-0_popup_block_layer_opacity)}:host([modal]) .ui5-block-layer{display:block}
1413
+ `;
1414
+
1415
+ var __decorate$1 = (this && this.__decorate) || function (decorators, target, key, desc) {
1416
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
1417
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
1418
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
1419
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
1420
+ };
1421
+ var Popover_1;
1422
+ const ARROW_SIZE = 8;
1423
+ /**
1424
+ * @class
1425
+ *
1426
+ * ### Overview
1427
+ *
1428
+ * The `ui5-popover` component displays additional information for an object
1429
+ * in a compact way and without leaving the page.
1430
+ * The Popover can contain various UI elements, such as fields, tables, images, and charts.
1431
+ * It can also include actions in the footer.
1432
+ *
1433
+ * ### Structure
1434
+ *
1435
+ * The popover has three main areas:
1436
+ *
1437
+ * - Header (optional)
1438
+ * - Content
1439
+ * - Footer (optional)
1440
+ *
1441
+ * **Note:** The `ui5-popover` is closed when the user clicks
1442
+ * or taps outside the popover
1443
+ * or selects an action within the popover. You can prevent this with the
1444
+ * `modal` property.
1445
+ *
1446
+ * ### ES6 Module Import
1447
+ *
1448
+ * `import "sap/ushell/gen/ui5/webcomponents/dist/Popover.js";`
1449
+ *
1450
+ * @constructor
1451
+ * @extends Popup
1452
+ * @since 1.0.0-rc.6
1453
+ * @public
1454
+ * @csspart header - Used to style the header of the component
1455
+ * @csspart content - Used to style the content of the component
1456
+ * @csspart footer - Used to style the footer of the component
1457
+ */
1458
+ let Popover = Popover_1 = class Popover extends Popup$1 {
1459
+ static get VIEWPORT_MARGIN() {
1460
+ return 10; // px
1461
+ }
1462
+ constructor() {
1463
+ super();
1464
+ /**
1465
+ * Determines on which side the component is placed at.
1466
+ * @default "End"
1467
+ * @public
1468
+ */
1469
+ this.placement = "End";
1470
+ /**
1471
+ * Determines the horizontal alignment of the component.
1472
+ * @default "Center"
1473
+ * @public
1474
+ */
1475
+ this.horizontalAlign = "Center";
1476
+ /**
1477
+ * Determines the vertical alignment of the component.
1478
+ * @default "Center"
1479
+ * @public
1480
+ */
1481
+ this.verticalAlign = "Center";
1482
+ /**
1483
+ * Defines whether the component should close when
1484
+ * clicking/tapping outside of the popover.
1485
+ * If enabled, it blocks any interaction with the background.
1486
+ * @default false
1487
+ * @public
1488
+ */
1489
+ this.modal = false;
1490
+ /**
1491
+ * Determines whether the component arrow is hidden.
1492
+ * @default false
1493
+ * @public
1494
+ * @since 1.0.0-rc.15
1495
+ */
1496
+ this.hideArrow = false;
1497
+ /**
1498
+ * Determines if there is no enough space, the component can be placed
1499
+ * over the target.
1500
+ * @default false
1501
+ * @public
1502
+ */
1503
+ this.allowTargetOverlap = false;
1504
+ /**
1505
+ * Sets the X translation of the arrow
1506
+ * @private
1507
+ */
1508
+ this.arrowTranslateX = 0;
1509
+ /**
1510
+ * Sets the Y translation of the arrow
1511
+ * @private
1512
+ */
1513
+ this.arrowTranslateY = 0;
1514
+ /**
1515
+ * Returns the calculated placement depending on the free space
1516
+ * @private
1517
+ */
1518
+ this.actualPlacement = "End";
1519
+ }
1520
+ /**
1521
+ * Defines the ID or DOM Reference of the element at which the popover is shown.
1522
+ * When using this attribute in a declarative way, you must only use the `id` (as a string) of the element at which you want to show the popover.
1523
+ * You can only set the `opener` attribute to a DOM Reference when using JavaScript.
1524
+ * @public
1525
+ * @default undefined
1526
+ * @since 1.2.0
1527
+ */
1528
+ set opener(value) {
1529
+ if (this._opener === value) {
1530
+ return;
1531
+ }
1532
+ this._opener = value;
1533
+ if (value && this.open) {
1534
+ this.openPopup();
1535
+ }
1536
+ }
1537
+ get opener() {
1538
+ return this._opener;
1539
+ }
1540
+ async openPopup() {
1541
+ if (this._opened) {
1542
+ return;
1543
+ }
1544
+ const opener = this.getOpenerHTMLElement(this.opener);
1545
+ if (!opener) {
1546
+ return;
1547
+ }
1548
+ if (this.isOpenerOutsideViewport(opener.getBoundingClientRect())) {
1549
+ await Icons.f$1();
1550
+ this.open = false;
1551
+ this.fireDecoratorEvent("close");
1552
+ return;
1553
+ }
1554
+ this._openerRect = opener.getBoundingClientRect();
1555
+ await super.openPopup();
1556
+ }
1557
+ isOpenerClicked(e) {
1558
+ const target = e.target;
1559
+ const opener = this.getOpenerHTMLElement(this.opener);
1560
+ if (!opener) {
1561
+ return false;
1562
+ }
1563
+ if (target === opener) {
1564
+ return true;
1565
+ }
1566
+ if (this._isUI5AbstractElement(target) && target.getFocusDomRef() === opener) {
1567
+ return true;
1568
+ }
1569
+ return e.composedPath().indexOf(opener) > -1;
1570
+ }
1571
+ /**
1572
+ * Override for the _addOpenedPopup hook, which would otherwise just call addOpenedPopup(this)
1573
+ * @private
1574
+ */
1575
+ _addOpenedPopup() {
1576
+ addOpenedPopover(this);
1577
+ }
1578
+ /**
1579
+ * Override for the _removeOpenedPopup hook, which would otherwise just call removeOpenedPopup(this)
1580
+ * @private
1581
+ */
1582
+ _removeOpenedPopup() {
1583
+ removeOpenedPopover(this);
1584
+ }
1585
+ getOpenerHTMLElement(opener) {
1586
+ if (opener === undefined) {
1587
+ return opener;
1588
+ }
1589
+ if (opener instanceof HTMLElement) {
1590
+ return this._isUI5AbstractElement(opener) ? opener.getFocusDomRef() : opener;
1591
+ }
1592
+ let rootNode = this.getRootNode();
1593
+ if (rootNode === this) {
1594
+ rootNode = document;
1595
+ }
1596
+ let openerHTMLElement = rootNode.getElementById(opener);
1597
+ if (rootNode instanceof ShadowRoot && !openerHTMLElement) {
1598
+ openerHTMLElement = document.getElementById(opener);
1599
+ }
1600
+ if (openerHTMLElement) {
1601
+ return this._isUI5AbstractElement(openerHTMLElement) ? openerHTMLElement.getFocusDomRef() : openerHTMLElement;
1602
+ }
1603
+ return openerHTMLElement;
1604
+ }
1605
+ shouldCloseDueToOverflow(placement, openerRect) {
1606
+ const threshold = 32;
1607
+ const limits = {
1608
+ "Start": openerRect.right,
1609
+ "End": openerRect.left,
1610
+ "Top": openerRect.top,
1611
+ "Bottom": openerRect.bottom,
1612
+ };
1613
+ const opener = this.getOpenerHTMLElement(this.opener);
1614
+ const closedPopupParent = i(opener);
1615
+ let overflowsBottom = false;
1616
+ let overflowsTop = false;
1617
+ if (closedPopupParent instanceof Popover_1) {
1618
+ const contentRect = closedPopupParent.getBoundingClientRect();
1619
+ overflowsBottom = openerRect.top > (contentRect.top + contentRect.height);
1620
+ overflowsTop = (openerRect.top + openerRect.height) < contentRect.top;
1621
+ }
1622
+ return (limits[placement] < 0 || (limits[placement] + threshold > closedPopupParent.innerHeight)) || overflowsBottom || overflowsTop;
1623
+ }
1624
+ shouldCloseDueToNoOpener(openerRect) {
1625
+ return openerRect.top === 0
1626
+ && openerRect.bottom === 0
1627
+ && openerRect.left === 0
1628
+ && openerRect.right === 0;
1629
+ }
1630
+ isOpenerOutsideViewport(openerRect) {
1631
+ return openerRect.bottom < 0
1632
+ || openerRect.top > window.innerHeight
1633
+ || openerRect.right < 0
1634
+ || openerRect.left > window.innerWidth;
1635
+ }
1636
+ /**
1637
+ * @override
1638
+ */
1639
+ _resize() {
1640
+ super._resize();
1641
+ if (this.open) {
1642
+ this.reposition();
1643
+ }
1644
+ }
1645
+ reposition() {
1646
+ this._show();
1647
+ }
1648
+ async _show() {
1649
+ super._show();
1650
+ const opener = this.getOpenerHTMLElement(this.opener);
1651
+ if (opener && webcomponentsBase.v(opener) && !opener.getDomRef()) {
1652
+ return;
1653
+ }
1654
+ if (!this._opened) {
1655
+ this._showOutsideViewport();
1656
+ }
1657
+ const popoverSize = this.getPopoverSize();
1658
+ let placement;
1659
+ if (popoverSize.width === 0 || popoverSize.height === 0) {
1660
+ // size can not be determined properly at this point, popover will be shown with the next reposition
1661
+ return;
1662
+ }
1663
+ if (this.open) {
1664
+ // update opener rect if it was changed during the popover being opened
1665
+ this._openerRect = opener.getBoundingClientRect();
1666
+ }
1667
+ if (this._oldPlacement && this.shouldCloseDueToNoOpener(this._openerRect) && this.isFocusWithin()) {
1668
+ // reuse the old placement as the opener is not available,
1669
+ // but keep the popover open as the focus is within
1670
+ placement = this._oldPlacement;
1671
+ }
1672
+ else {
1673
+ placement = this.calcPlacement(this._openerRect, popoverSize);
1674
+ }
1675
+ if (this._preventRepositionAndClose || this.isOpenerOutsideViewport(this._openerRect)) {
1676
+ await this._waitForDomRef();
1677
+ return this.closePopup();
1678
+ }
1679
+ this._oldPlacement = placement;
1680
+ this.actualPlacement = placement.placement;
1681
+ let left = m$1(this._left, Popover_1.VIEWPORT_MARGIN, document.documentElement.clientWidth - popoverSize.width - Popover_1.VIEWPORT_MARGIN);
1682
+ if (this.actualPlacement === PopoverPlacement$1.End) {
1683
+ left = Math.max(left, this._left);
1684
+ }
1685
+ let top = m$1(this._top, Popover_1.VIEWPORT_MARGIN, document.documentElement.clientHeight - popoverSize.height - Popover_1.VIEWPORT_MARGIN);
1686
+ if (this.actualPlacement === PopoverPlacement$1.Bottom) {
1687
+ top = Math.max(top, this._top);
1688
+ }
1689
+ this.arrowTranslateX = placement.arrow.x;
1690
+ this.arrowTranslateY = placement.arrow.y;
1691
+ top = this._adjustForIOSKeyboard(top);
1692
+ Object.assign(this.style, {
1693
+ top: `${top}px`,
1694
+ left: `${left}px`,
1695
+ });
1696
+ if (this.horizontalAlign === PopoverHorizontalAlign$1.Stretch && this._width) {
1697
+ this.style.width = this._width;
1698
+ }
1699
+ if (this.verticalAlign === PopoverVerticalAlign$1.Stretch && this._height) {
1700
+ this.style.height = this._height;
1701
+ }
1702
+ }
1703
+ /**
1704
+ * Adjust the desired top position to compensate for shift of the screen
1705
+ * caused by opened keyboard on iOS which affects all elements with position:fixed.
1706
+ * @private
1707
+ * @param top The target top in px.
1708
+ * @returns The adjusted top in px.
1709
+ */
1710
+ _adjustForIOSKeyboard(top) {
1711
+ if (!Icons.w()) {
1712
+ return top;
1713
+ }
1714
+ const actualTop = Math.ceil(this.getBoundingClientRect().top);
1715
+ return top + (Number.parseInt(this.style.top || "0") - actualTop);
1716
+ }
1717
+ getPopoverSize(calcScrollHeight = false) {
1718
+ const rect = this.getBoundingClientRect();
1719
+ const width = rect.width;
1720
+ let height;
1721
+ const domRef = this.getDomRef();
1722
+ if (calcScrollHeight && domRef) {
1723
+ const header = domRef.querySelector(".ui5-popup-header-root");
1724
+ const content = domRef.querySelector(".ui5-popup-content");
1725
+ const footer = domRef.querySelector(".ui5-popup-footer-root");
1726
+ height = content?.scrollHeight || 0;
1727
+ height += header?.scrollHeight || 0;
1728
+ height += footer?.scrollHeight || 0;
1729
+ }
1730
+ else {
1731
+ height = rect.height;
1732
+ }
1733
+ return { width, height };
1734
+ }
1735
+ _showOutsideViewport() {
1736
+ Object.assign(this.style, {
1737
+ top: "-10000px",
1738
+ left: "-10000px",
1739
+ });
1740
+ }
1741
+ _isUI5AbstractElement(el) {
1742
+ return webcomponentsBase.v(el) && el.isUI5AbstractElement;
1743
+ }
1744
+ get arrowDOM() {
1745
+ return this.shadowRoot.querySelector(".ui5-popover-arrow");
1746
+ }
1747
+ /**
1748
+ * @protected
1749
+ */
1750
+ focusOpener() {
1751
+ this.getOpenerHTMLElement(this.opener)?.focus();
1752
+ }
1753
+ /**
1754
+ * @private
1755
+ */
1756
+ calcPlacement(targetRect, popoverSize) {
1757
+ let left = Popover_1.VIEWPORT_MARGIN;
1758
+ let top = 0;
1759
+ const allowTargetOverlap = this.allowTargetOverlap;
1760
+ const clientWidth = document.documentElement.clientWidth;
1761
+ const clientHeight = document.documentElement.clientHeight;
1762
+ let maxHeight = clientHeight;
1763
+ let maxWidth = clientWidth;
1764
+ const placement = this.getActualPlacement(targetRect);
1765
+ this._preventRepositionAndClose = this.shouldCloseDueToNoOpener(targetRect) || this.shouldCloseDueToOverflow(placement, targetRect);
1766
+ const isVertical = placement === PopoverPlacement$1.Top
1767
+ || placement === PopoverPlacement$1.Bottom;
1768
+ if (this.horizontalAlign === PopoverHorizontalAlign$1.Stretch && isVertical) {
1769
+ popoverSize.width = targetRect.width;
1770
+ this._width = `${targetRect.width}px`;
1771
+ }
1772
+ else if (this.verticalAlign === PopoverVerticalAlign$1.Stretch && !isVertical) {
1773
+ popoverSize.height = targetRect.height;
1774
+ this._height = `${targetRect.height}px`;
1775
+ }
1776
+ const arrowOffset = this.hideArrow ? 0 : ARROW_SIZE;
1777
+ // calc popover positions
1778
+ switch (placement) {
1779
+ case PopoverPlacement$1.Top:
1780
+ left = this.getVerticalLeft(targetRect, popoverSize);
1781
+ top = Math.max(targetRect.top - popoverSize.height - arrowOffset, 0);
1782
+ if (!allowTargetOverlap) {
1783
+ maxHeight = targetRect.top - arrowOffset;
1784
+ }
1785
+ break;
1786
+ case PopoverPlacement$1.Bottom:
1787
+ left = this.getVerticalLeft(targetRect, popoverSize);
1788
+ top = targetRect.bottom + arrowOffset;
1789
+ if (allowTargetOverlap) {
1790
+ top = Math.max(Math.min(top, clientHeight - popoverSize.height), 0);
1791
+ }
1792
+ else {
1793
+ maxHeight = clientHeight - targetRect.bottom - arrowOffset;
1794
+ }
1795
+ break;
1796
+ case PopoverPlacement$1.Start:
1797
+ left = Math.max(targetRect.left - popoverSize.width - arrowOffset, 0);
1798
+ top = this.getHorizontalTop(targetRect, popoverSize);
1799
+ if (!allowTargetOverlap) {
1800
+ maxWidth = targetRect.left - arrowOffset;
1801
+ }
1802
+ break;
1803
+ case PopoverPlacement$1.End:
1804
+ left = targetRect.left + targetRect.width + arrowOffset;
1805
+ top = this.getHorizontalTop(targetRect, popoverSize);
1806
+ if (allowTargetOverlap) {
1807
+ left = Math.max(Math.min(left, clientWidth - popoverSize.width), 0);
1808
+ }
1809
+ else {
1810
+ maxWidth = clientWidth - targetRect.right - arrowOffset;
1811
+ }
1812
+ break;
1813
+ }
1814
+ // correct popover positions
1815
+ if (isVertical) {
1816
+ if (popoverSize.width > clientWidth || left < Popover_1.VIEWPORT_MARGIN) {
1817
+ left = Popover_1.VIEWPORT_MARGIN;
1818
+ }
1819
+ else if (left + popoverSize.width > clientWidth - Popover_1.VIEWPORT_MARGIN) {
1820
+ left = clientWidth - Popover_1.VIEWPORT_MARGIN - popoverSize.width;
1821
+ }
1822
+ }
1823
+ else {
1824
+ if (popoverSize.height > clientHeight || top < Popover_1.VIEWPORT_MARGIN) { // eslint-disable-line
1825
+ top = Popover_1.VIEWPORT_MARGIN;
1826
+ }
1827
+ else if (top + popoverSize.height > clientHeight - Popover_1.VIEWPORT_MARGIN) {
1828
+ top = clientHeight - Popover_1.VIEWPORT_MARGIN - popoverSize.height;
1829
+ }
1830
+ }
1831
+ this._maxHeight = Math.round(maxHeight - Popover_1.VIEWPORT_MARGIN);
1832
+ this._maxWidth = Math.round(maxWidth - Popover_1.VIEWPORT_MARGIN);
1833
+ if (this._left === undefined || Math.abs(this._left - left) > 1.5) {
1834
+ this._left = Math.round(left);
1835
+ }
1836
+ if (this._top === undefined || Math.abs(this._top - top) > 1.5) {
1837
+ this._top = Math.round(top);
1838
+ }
1839
+ const borderRadius = Number.parseInt(window.getComputedStyle(this).getPropertyValue("border-radius"));
1840
+ const arrowPos = this.getArrowPosition(targetRect, popoverSize, left, top, isVertical, borderRadius);
1841
+ this._left += this.getRTLCorrectionLeft();
1842
+ return {
1843
+ arrow: arrowPos,
1844
+ top: this._top,
1845
+ left: this._left,
1846
+ placement,
1847
+ };
1848
+ }
1849
+ getRTLCorrectionLeft() {
1850
+ return parseFloat(window.getComputedStyle(this).left) - this.getBoundingClientRect().left;
1851
+ }
1852
+ /**
1853
+ * Calculates the position for the arrow.
1854
+ * @private
1855
+ * @param targetRect BoundingClientRect of the target element
1856
+ * @param popoverSize Width and height of the popover
1857
+ * @param left Left offset of the popover
1858
+ * @param top Top offset of the popover
1859
+ * @param isVertical If the popover is positioned vertically to the target element
1860
+ * @param borderRadius Value of the border-radius property
1861
+ * @returns Arrow's coordinates
1862
+ */
1863
+ getArrowPosition(targetRect, popoverSize, left, top, isVertical, borderRadius) {
1864
+ const horizontalAlign = this._actualHorizontalAlign;
1865
+ let arrowXCentered = horizontalAlign === PopoverHorizontalAlign$1.Center || horizontalAlign === PopoverHorizontalAlign$1.Stretch;
1866
+ if (horizontalAlign === PopoverHorizontalAlign$1.End && left <= targetRect.left) {
1867
+ arrowXCentered = true;
1868
+ }
1869
+ if (horizontalAlign === PopoverHorizontalAlign$1.Start && left + popoverSize.width >= targetRect.left + targetRect.width) {
1870
+ arrowXCentered = true;
1871
+ }
1872
+ let arrowTranslateX = 0;
1873
+ if (isVertical && arrowXCentered) {
1874
+ arrowTranslateX = targetRect.left + targetRect.width / 2 - left - popoverSize.width / 2;
1875
+ }
1876
+ let arrowTranslateY = 0;
1877
+ if (!isVertical) {
1878
+ arrowTranslateY = targetRect.top + targetRect.height / 2 - top - popoverSize.height / 2;
1879
+ }
1880
+ // Restricts the arrow's translate value along each dimension,
1881
+ // so that the arrow does not clip over the popover's rounded borders.
1882
+ const safeRangeForArrowY = popoverSize.height / 2 - borderRadius - ARROW_SIZE / 2 - 2;
1883
+ arrowTranslateY = m$1(arrowTranslateY, -safeRangeForArrowY, safeRangeForArrowY);
1884
+ const safeRangeForArrowX = popoverSize.width / 2 - borderRadius - ARROW_SIZE / 2 - 2;
1885
+ arrowTranslateX = m$1(arrowTranslateX, -safeRangeForArrowX, safeRangeForArrowX);
1886
+ return {
1887
+ x: Math.round(arrowTranslateX),
1888
+ y: Math.round(arrowTranslateY),
1889
+ };
1890
+ }
1891
+ /**
1892
+ * Fallbacks to new placement, prioritizing `Left` and `Right` placements.
1893
+ * @private
1894
+ */
1895
+ fallbackPlacement(clientWidth, clientHeight, targetRect, popoverSize) {
1896
+ if (targetRect.left > popoverSize.width) {
1897
+ return PopoverPlacement$1.Start;
1898
+ }
1899
+ if (clientWidth - targetRect.right > targetRect.left) {
1900
+ return PopoverPlacement$1.End;
1901
+ }
1902
+ if (clientHeight - targetRect.bottom > popoverSize.height) {
1903
+ return PopoverPlacement$1.Bottom;
1904
+ }
1905
+ if (clientHeight - targetRect.bottom < targetRect.top) {
1906
+ return PopoverPlacement$1.Top;
1907
+ }
1908
+ }
1909
+ getActualPlacement(targetRect) {
1910
+ const placement = this.placement;
1911
+ let actualPlacement = placement;
1912
+ const isVertical = placement === PopoverPlacement$1.Top
1913
+ || placement === PopoverPlacement$1.Bottom;
1914
+ const popoverSize = this.getPopoverSize(!this.allowTargetOverlap);
1915
+ const clientWidth = document.documentElement.clientWidth;
1916
+ let clientHeight = document.documentElement.clientHeight;
1917
+ let popoverHeight = popoverSize.height;
1918
+ if (isVertical) {
1919
+ popoverHeight += this.hideArrow ? 0 : ARROW_SIZE;
1920
+ clientHeight -= Popover_1.VIEWPORT_MARGIN;
1921
+ }
1922
+ switch (placement) {
1923
+ case PopoverPlacement$1.Top:
1924
+ if (targetRect.top < popoverHeight
1925
+ && targetRect.top < clientHeight - targetRect.bottom) {
1926
+ actualPlacement = PopoverPlacement$1.Bottom;
1927
+ }
1928
+ break;
1929
+ case PopoverPlacement$1.Bottom:
1930
+ if (clientHeight - targetRect.bottom < popoverHeight
1931
+ && clientHeight - targetRect.bottom < targetRect.top) {
1932
+ actualPlacement = PopoverPlacement$1.Top;
1933
+ }
1934
+ break;
1935
+ case PopoverPlacement$1.Start:
1936
+ if (targetRect.left < popoverSize.width) {
1937
+ actualPlacement = this.fallbackPlacement(clientWidth, clientHeight, targetRect, popoverSize) || placement;
1938
+ }
1939
+ break;
1940
+ case PopoverPlacement$1.End:
1941
+ if (clientWidth - targetRect.right < popoverSize.width) {
1942
+ actualPlacement = this.fallbackPlacement(clientWidth, clientHeight, targetRect, popoverSize) || placement;
1943
+ }
1944
+ break;
1945
+ }
1946
+ return actualPlacement;
1947
+ }
1948
+ getVerticalLeft(targetRect, popoverSize) {
1949
+ const horizontalAlign = this._actualHorizontalAlign;
1950
+ let left = Popover_1.VIEWPORT_MARGIN;
1951
+ switch (horizontalAlign) {
1952
+ case PopoverHorizontalAlign$1.Center:
1953
+ case PopoverHorizontalAlign$1.Stretch:
1954
+ left = targetRect.left - (popoverSize.width - targetRect.width) / 2;
1955
+ break;
1956
+ case PopoverHorizontalAlign$1.Start:
1957
+ left = targetRect.left;
1958
+ break;
1959
+ case PopoverHorizontalAlign$1.End:
1960
+ left = targetRect.right - popoverSize.width;
1961
+ break;
1962
+ }
1963
+ return left;
1964
+ }
1965
+ getHorizontalTop(targetRect, popoverSize) {
1966
+ let top = 0;
1967
+ switch (this.verticalAlign) {
1968
+ case PopoverVerticalAlign$1.Center:
1969
+ case PopoverVerticalAlign$1.Stretch:
1970
+ top = targetRect.top - (popoverSize.height - targetRect.height) / 2;
1971
+ break;
1972
+ case PopoverVerticalAlign$1.Top:
1973
+ top = targetRect.top;
1974
+ break;
1975
+ case PopoverVerticalAlign$1.Bottom:
1976
+ top = targetRect.bottom - popoverSize.height;
1977
+ break;
1978
+ }
1979
+ return top;
1980
+ }
1981
+ get isModal() {
1982
+ return this.modal;
1983
+ }
1984
+ get _ariaLabelledBy() {
1985
+ if (!this._ariaLabel && this._displayHeader) {
1986
+ return "ui5-popup-header";
1987
+ }
1988
+ return undefined;
1989
+ }
1990
+ get styles() {
1991
+ return {
1992
+ ...super.styles,
1993
+ root: {
1994
+ "max-height": this._maxHeight ? `${this._maxHeight}px` : "",
1995
+ "max-width": this._maxWidth ? `${this._maxWidth}px` : "",
1996
+ },
1997
+ arrow: {
1998
+ transform: `translate(${this.arrowTranslateX}px, ${this.arrowTranslateY}px)`,
1999
+ },
2000
+ };
2001
+ }
2002
+ get classes() {
2003
+ const allClasses = super.classes;
2004
+ allClasses.root["ui5-popover-root"] = true;
2005
+ return allClasses;
2006
+ }
2007
+ /**
2008
+ * Hook for descendants to hide header.
2009
+ */
2010
+ get _displayHeader() {
2011
+ return !!(this.header.length || this.headerText);
2012
+ }
2013
+ /**
2014
+ * Hook for descendants to hide footer.
2015
+ */
2016
+ get _displayFooter() {
2017
+ return true;
2018
+ }
2019
+ get _actualHorizontalAlign() {
2020
+ if (this.effectiveDir === "rtl") {
2021
+ if (this.horizontalAlign === PopoverHorizontalAlign$1.Start) {
2022
+ return PopoverHorizontalAlign$1.End;
2023
+ }
2024
+ if (this.horizontalAlign === PopoverHorizontalAlign$1.End) {
2025
+ return PopoverHorizontalAlign$1.Start;
2026
+ }
2027
+ }
2028
+ return this.horizontalAlign;
2029
+ }
2030
+ };
2031
+ __decorate$1([
2032
+ webcomponentsBase.s()
2033
+ ], Popover.prototype, "headerText", void 0);
2034
+ __decorate$1([
2035
+ webcomponentsBase.s()
2036
+ ], Popover.prototype, "placement", void 0);
2037
+ __decorate$1([
2038
+ webcomponentsBase.s()
2039
+ ], Popover.prototype, "horizontalAlign", void 0);
2040
+ __decorate$1([
2041
+ webcomponentsBase.s()
2042
+ ], Popover.prototype, "verticalAlign", void 0);
2043
+ __decorate$1([
2044
+ webcomponentsBase.s({ type: Boolean })
2045
+ ], Popover.prototype, "modal", void 0);
2046
+ __decorate$1([
2047
+ webcomponentsBase.s({ type: Boolean })
2048
+ ], Popover.prototype, "hideArrow", void 0);
2049
+ __decorate$1([
2050
+ webcomponentsBase.s({ type: Boolean })
2051
+ ], Popover.prototype, "allowTargetOverlap", void 0);
2052
+ __decorate$1([
2053
+ webcomponentsBase.s({ type: Number, noAttribute: true })
2054
+ ], Popover.prototype, "arrowTranslateX", void 0);
2055
+ __decorate$1([
2056
+ webcomponentsBase.s({ type: Number, noAttribute: true })
2057
+ ], Popover.prototype, "arrowTranslateY", void 0);
2058
+ __decorate$1([
2059
+ webcomponentsBase.s()
2060
+ ], Popover.prototype, "actualPlacement", void 0);
2061
+ __decorate$1([
2062
+ webcomponentsBase.s({ type: Number, noAttribute: true })
2063
+ ], Popover.prototype, "_maxHeight", void 0);
2064
+ __decorate$1([
2065
+ webcomponentsBase.s({ type: Number, noAttribute: true })
2066
+ ], Popover.prototype, "_maxWidth", void 0);
2067
+ __decorate$1([
2068
+ webcomponentsBase.d({ type: HTMLElement })
2069
+ ], Popover.prototype, "header", void 0);
2070
+ __decorate$1([
2071
+ webcomponentsBase.d({ type: HTMLElement })
2072
+ ], Popover.prototype, "footer", void 0);
2073
+ __decorate$1([
2074
+ webcomponentsBase.s({ converter: e$1 })
2075
+ ], Popover.prototype, "opener", null);
2076
+ Popover = Popover_1 = __decorate$1([
2077
+ webcomponentsBase.m({
2078
+ tag: "ui5-popover",
2079
+ styles: [
2080
+ Popup$1.styles,
2081
+ PopupsCommonCss,
2082
+ PopoverCss,
2083
+ List.a(),
2084
+ ],
2085
+ template: PopoverTemplate,
2086
+ })
2087
+ ], Popover);
2088
+ const instanceOfPopover = (object) => {
2089
+ return "opener" in object;
2090
+ };
2091
+ Popover.define();
2092
+ var Popover$1 = Popover;
2093
+
2094
+ Icons.p("sap/ushell/gen/ui5/webcomponents-theming", "sap_horizon", async () => parametersBundle_css.defaultThemeBase);
2095
+ Icons.p("sap/ushell/gen/ui5/webcomponents", "sap_horizon", async () => i18nDefaults.defaultTheme);
2096
+ var ResponsivePopoverCss = `:host{--_ui5-v2-13-0-rc-0_input_width: 100%;min-width:6.25rem;min-height:2rem}:host([on-phone]){display:contents}.ui5-responsive-popover-header{height:var(--_ui5-v2-13-0-rc-0-responsive_popover_header_height);display:flex;justify-content:var(--_ui5-v2-13-0-rc-0_popup_header_prop_header_text_alignment);align-items:center;width:100%}.ui5-responsive-popover-header-text{width:calc(100% - var(--_ui5-v2-13-0-rc-0_button_base_min_width))}.ui5-responsive-popover-header-no-title{justify-content:flex-end}
2097
+ `;
2098
+
2099
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2100
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
2101
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
2102
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
2103
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
2104
+ };
2105
+ var ResponsivePopover_1;
2106
+ /**
2107
+ * @class
2108
+ *
2109
+ * ### Overview
2110
+ * The `ui5-responsive-popover` acts as a Popover on desktop and tablet, while on phone it acts as a Dialog.
2111
+ * The component improves tremendously the user experience on mobile.
2112
+ *
2113
+ * ### Usage
2114
+ * Use it when you want to make sure that all the content is visible on any device.
2115
+ *
2116
+ * ### ES6 Module Import
2117
+ *
2118
+ * `import "sap/ushell/gen/ui5/webcomponents/dist/ResponsivePopover.js";`
2119
+ * @constructor
2120
+ * @extends Popover
2121
+ * @since 1.0.0-rc.6
2122
+ * @public
2123
+ * @csspart header - Used to style the header of the component
2124
+ * @csspart content - Used to style the content of the component
2125
+ * @csspart footer - Used to style the footer of the component
2126
+ */
2127
+ let ResponsivePopover = ResponsivePopover_1 = class ResponsivePopover extends Popover$1 {
2128
+ constructor() {
2129
+ super();
2130
+ /**
2131
+ * Defines if only the content would be displayed (without header and footer) in the popover on Desktop.
2132
+ * By default both the header and footer would be displayed.
2133
+ * @private
2134
+ */
2135
+ this.contentOnlyOnDesktop = false;
2136
+ /**
2137
+ * Used internaly for controls which must not have header.
2138
+ * @private
2139
+ */
2140
+ this._hideHeader = false;
2141
+ /**
2142
+ * Defines whether a close button will be rendered in the header of the component
2143
+ * **Note:** If you are using the `header` slot, this property will have no effect
2144
+ * @private
2145
+ * @default false
2146
+ * @since 1.0.0-rc.16
2147
+ */
2148
+ this._hideCloseButton = false;
2149
+ }
2150
+ async openPopup() {
2151
+ if (!Icons.d()) {
2152
+ await super.openPopup();
2153
+ }
2154
+ else if (this._dialog) {
2155
+ this._dialog.open = true;
2156
+ }
2157
+ }
2158
+ async _show() {
2159
+ if (!Icons.d()) {
2160
+ return super._show();
2161
+ }
2162
+ }
2163
+ _dialogCloseButtonClick() {
2164
+ this.closePopup();
2165
+ }
2166
+ /**
2167
+ * Closes the popover/dialog.
2168
+ * @override
2169
+ */
2170
+ closePopup(escPressed = false, preventRegistryUpdate = false, preventFocusRestore = false) {
2171
+ if (!Icons.d()) {
2172
+ super.closePopup(escPressed, preventRegistryUpdate, preventFocusRestore);
2173
+ }
2174
+ else {
2175
+ this._dialog?.closePopup(escPressed, preventRegistryUpdate, preventFocusRestore);
2176
+ }
2177
+ }
2178
+ toggle(opener) {
2179
+ if (this.open) {
2180
+ this.closePopup();
2181
+ return;
2182
+ }
2183
+ this.opener = opener;
2184
+ this.open = true;
2185
+ }
2186
+ get classes() {
2187
+ const allClasses = super.classes;
2188
+ allClasses.header = {
2189
+ "ui5-responsive-popover-header": true,
2190
+ "ui5-responsive-popover-header-no-title": !this.headerText,
2191
+ };
2192
+ return allClasses;
2193
+ }
2194
+ get _dialog() {
2195
+ return this.shadowRoot.querySelector("[ui5-dialog]");
2196
+ }
2197
+ get contentDOM() {
2198
+ return Icons.d() ? this._dialog.contentDOM : super.contentDOM;
2199
+ }
2200
+ get _isPhone() {
2201
+ return Icons.d();
2202
+ }
2203
+ get _displayHeader() {
2204
+ return (Icons.d() || !this.contentOnlyOnDesktop) && super._displayHeader;
2205
+ }
2206
+ get _displayFooter() {
2207
+ return Icons.d() || !this.contentOnlyOnDesktop;
2208
+ }
2209
+ get _closeDialogAriaLabel() {
2210
+ return ResponsivePopover_1.i18nBundle.getText(i18nDefaults.RESPONSIVE_POPOVER_CLOSE_DIALOG_BUTTON);
2211
+ }
2212
+ _beforeDialogOpen() {
2213
+ this._opened = true;
2214
+ this.open = true;
2215
+ this.fireDecoratorEvent("before-open");
2216
+ }
2217
+ _afterDialogOpen() {
2218
+ this.fireDecoratorEvent("open");
2219
+ }
2220
+ _beforeDialogClose(e) {
2221
+ this.fireDecoratorEvent("before-close", e.detail);
2222
+ }
2223
+ _afterDialogClose() {
2224
+ this._opened = false;
2225
+ this.open = false;
2226
+ this.fireDecoratorEvent("close");
2227
+ }
2228
+ get isModal() {
2229
+ if (!Icons.d()) {
2230
+ return super.isModal;
2231
+ }
2232
+ return this._dialog.isModal;
2233
+ }
2234
+ };
2235
+ __decorate([
2236
+ webcomponentsBase.s({ type: Boolean })
2237
+ ], ResponsivePopover.prototype, "contentOnlyOnDesktop", void 0);
2238
+ __decorate([
2239
+ webcomponentsBase.s({ type: Boolean })
2240
+ ], ResponsivePopover.prototype, "_hideHeader", void 0);
2241
+ __decorate([
2242
+ webcomponentsBase.s({ type: Boolean })
2243
+ ], ResponsivePopover.prototype, "_hideCloseButton", void 0);
2244
+ __decorate([
2245
+ i18nDefaults.i("sap/ushell/gen/ui5/webcomponents")
2246
+ ], ResponsivePopover, "i18nBundle", void 0);
2247
+ ResponsivePopover = ResponsivePopover_1 = __decorate([
2248
+ webcomponentsBase.m({
2249
+ tag: "ui5-responsive-popover",
2250
+ styles: [Popover$1.styles, ResponsivePopoverCss],
2251
+ template: ResponsivePopoverTemplate,
2252
+ })
2253
+ ], ResponsivePopover);
2254
+ ResponsivePopover.define();
2255
+ var ResponsivePopover$1 = ResponsivePopover;
2256
+
2257
+ exports.Popover = Popover$1;
2258
+ exports.PopoverHorizontalAlign = PopoverHorizontalAlign$1;
2259
+ exports.PopoverPlacement = PopoverPlacement$1;
2260
+ exports.ResponsivePopover = ResponsivePopover$1;
2261
+ exports.e = e$1;
2262
+ exports.listItemAdditionalTextCss = listItemAdditionalTextCss;
2263
+
2264
+ }));