@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
@@ -1,3920 +0,0 @@
1
- sap.ui.define(['exports', 'sap/ushell/thirdparty/webcomponents-base', 'sap/ushell/thirdparty/i18n-defaults', 'sap/ushell/thirdparty/BusyIndicator', 'sap/ushell/thirdparty/event-strict', 'sap/ushell/thirdparty/Icons', 'sap/ushell/thirdparty/information', 'sap/ushell/thirdparty/List', 'sap/ushell/thirdparty/toLowercaseEnumValue', 'sap/ushell/thirdparty/Icon', 'sap/ushell/thirdparty/Button2', 'sap/ushell/thirdparty/Label'], (function (exports, webcomponentsBase, i18nDefaults, BusyIndicator, eventStrict, Icons, information, List, toLowercaseEnumValue, Icon, Button, Label) { 'use strict';
2
-
3
- const name$d = "slim-arrow-right";
4
- const pathData$d = "M357.5 233q10 10 10 23t-10 23l-165 165q-12 11-23 0t0-23l160-159q6-6 0-12l-159-159q-5-5-5-11t5-11 11-5 11 5z";
5
- const ltr$d = false;
6
- const collection$d = "SAP-icons-v4";
7
- const packageName$d = "sap/ushell/gen/ui5/webcomponents-icons";
8
-
9
- Icons.f(name$d, { pathData: pathData$d, ltr: ltr$d, collection: collection$d, packageName: packageName$d });
10
-
11
- const name$c = "slim-arrow-right";
12
- const pathData$c = "M186 416q-11 0-18.5-7.5T160 390q0-10 8-18l121-116-121-116q-8-8-8-18 0-11 7.5-18.5T186 96q10 0 17 7l141 134q8 8 8 19 0 12-8 18L203 409q-7 7-17 7z";
13
- const ltr$c = false;
14
- const collection$c = "SAP-icons-v5";
15
- const packageName$c = "sap/ushell/gen/ui5/webcomponents-icons";
16
-
17
- Icons.f(name$c, { pathData: pathData$c, ltr: ltr$c, collection: collection$c, packageName: packageName$c });
18
-
19
- var slimArrowRight = "slim-arrow-right";
20
-
21
- const e={toAttribute(t){return t instanceof HTMLElement?null:t},fromAttribute(t){return t}};
22
-
23
- const name$b = "edit";
24
- const pathData$b = "M475 104q5 7 5 12 0 6-5 11L150 453q-4 4-8 4L32 480l22-110q0-5 4-9L384 36q4-4 11-4t11 4zm-121 99l-46-45L84 381l46 46zm87-88l-46-44-64 64 45 45z";
25
- const ltr$b = false;
26
- const collection$b = "SAP-icons-v4";
27
- const packageName$b = "sap/ushell/gen/ui5/webcomponents-icons";
28
-
29
- Icons.f(name$b, { pathData: pathData$b, ltr: ltr$b, collection: collection$b, packageName: packageName$b });
30
-
31
- const name$a = "edit";
32
- const pathData$a = "M505 94q7 7 7 18t-6 17L130 505q-7 7-18 7H26q-11 0-18.5-7.5T0 486v-86q1-10 6-16L382 7q7-7 18-7t18 7zm-55 18l-50-50-50 50 50 50zm-86 86l-50-50L62 400l50 50z";
33
- const ltr$a = false;
34
- const collection$a = "SAP-icons-v5";
35
- const packageName$a = "sap/ushell/gen/ui5/webcomponents-icons";
36
-
37
- Icons.f(name$a, { pathData: pathData$a, ltr: ltr$a, collection: collection$a, packageName: packageName$a });
38
-
39
- var edit = "edit";
40
-
41
- /**
42
- * Different types of Highlight .
43
- *
44
- * @public
45
- */
46
- var Highlight;
47
- (function (Highlight) {
48
- /**
49
- * @public
50
- */
51
- Highlight["None"] = "None";
52
- /**
53
- * @public
54
- */
55
- Highlight["Positive"] = "Positive";
56
- /**
57
- * @public
58
- */
59
- Highlight["Critical"] = "Critical";
60
- /**
61
- * @public
62
- */
63
- Highlight["Negative"] = "Negative";
64
- /**
65
- * @public
66
- */
67
- Highlight["Information"] = "Information";
68
- })(Highlight || (Highlight = {}));
69
- var Highlight$1 = Highlight;
70
-
71
- /**
72
- * Different list item types.
73
- * @public
74
- */
75
- var ListItemType;
76
- (function (ListItemType) {
77
- /**
78
- * Indicates the list item does not have any active feedback when item is pressed.
79
- * @public
80
- */
81
- ListItemType["Inactive"] = "Inactive";
82
- /**
83
- * Indicates that the item is clickable via active feedback when item is pressed.
84
- * @public
85
- */
86
- ListItemType["Active"] = "Active";
87
- /**
88
- * Enables detail button of the list item that fires detail-click event.
89
- * @public
90
- */
91
- ListItemType["Detail"] = "Detail";
92
- /**
93
- * Enables the type of navigation, which is specified to add an arrow at the end of the items and fires navigate-click event.
94
- * @public
95
- */
96
- ListItemType["Navigation"] = "Navigation";
97
- })(ListItemType || (ListItemType = {}));
98
- var ListItemType$1 = ListItemType;
99
-
100
- Icons.p("sap/ushell/gen/ui5/webcomponents-theming", "sap_horizon", async () => i18nDefaults.defaultThemeBase);
101
- Icons.p("sap/ushell/gen/ui5/webcomponents", "sap_horizon", async () => i18nDefaults.defaultTheme);
102
- var styles = `.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([navigated]) .ui5-li-root .ui5-li-navigated{width:.1875rem;position:absolute;right:0;top:0;bottom:0;background-color:var(--sapList_SelectionBorderColor)}:host([active][actionable]) .ui5-li-root .ui5-li-icon{color:var(--sapList_Active_TextColor)}:host([active][actionable]) .ui5-li-title,:host([active][actionable]) .ui5-li-desc,:host([active][actionable]) .ui5-li-additional-text{color:var(--sapList_Active_TextColor)}:host([active][actionable]) .ui5-li-additional-text{text-shadow:none}:host([additional-text-state="Critical"]) .ui5-li-additional-text{color:var(--sapCriticalTextColor)}:host([additional-text-state="Positive"]) .ui5-li-additional-text{color:var(--sapPositiveTextColor)}:host([additional-text-state="Negative"]) .ui5-li-additional-text{color:var(--sapNegativeTextColor)}:host([additional-text-state="Information"]) .ui5-li-additional-text{color:var(--sapInformativeTextColor)}:host([has-title][description]){height:5rem}:host([has-title][image]){height:5rem}:host([_has-image]){height:5rem}:host([image]) .ui5-li-content{height:3rem}::slotted(img[slot="image"]){width:var(--_ui5-v2-11-0-rc-3_list_item_img_size);height:var(--_ui5-v2-11-0-rc-3_list_item_img_size);border-radius:var(--ui5-v2-11-0-rc-3-avatar-border-radius);object-fit:contain}::slotted([ui5-icon][slot="image"]){color:var(--sapContent_NonInteractiveIconColor);min-width:var(--_ui5-v2-11-0-rc-3_list_item_icon_size);min-height:var(--_ui5-v2-11-0-rc-3_list_item_icon_size);padding-inline-end:var(--_ui5-v2-11-0-rc-3_list_item_icon_padding-inline-end)}::slotted([ui5-avatar][slot="image"]){min-width:var(--_ui5-v2-11-0-rc-3_list_item_img_size);min-height:var(--_ui5-v2-11-0-rc-3_list_item_img_size);margin-top:var(--_ui5-v2-11-0-rc-3_list_item_img_top_margin);margin-bottom:var(--_ui5-v2-11-0-rc-3_list_item_img_bottom_margin);margin-inline-end:var(--_ui5-v2-11-0-rc-3_list_item_img_hn_margin)}:host([wrapping-type="None"][description]) .ui5-li-root{padding:1rem}:host([description]) .ui5-li-content{height:3rem}:host([has-title][description]) .ui5-li-title{padding-bottom:.375rem}.ui5-li-text-wrapper{flex-direction:column}:host([description]) .ui5-li-text-wrapper{height:100%;justify-content:space-between;padding:.125rem 0}.ui5-li-description-info-wrapper{display:flex;justify-content:space-between}.ui5-li-additional-text,:host(:not([wrapping-type="Normal"])) .ui5-li-title,.ui5-li-desc{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}:host([wrapping-type="Normal"]){height:auto}:host([wrapping-type="Normal"]) .ui5-li-content{margin:var(--_ui5-v2-11-0-rc-3_list_item_content_vertical_offset) 0}.ui5-li-desc{color:var(--sapContent_LabelColor);font-size:var(--sapFontSize)}:host([description]) .ui5-li-additional-text{align-self:flex-end}.ui5-li-icon{min-width:var(--_ui5-v2-11-0-rc-3_list_item_icon_size);min-height:var(--_ui5-v2-11-0-rc-3_list_item_icon_size);color:var(--sapContent_NonInteractiveIconColor);padding-inline-end:var(--_ui5-v2-11-0-rc-3_list_item_icon_padding-inline-end)}:host([icon-end]) .ui5-li-icon{padding-inline-start:var(--_ui5-v2-11-0-rc-3_list_item_icon_padding-inline-end)}.ui5-li-detailbtn,.ui5-li-deletebtn{display:flex;align-items:center;margin-left:var(--_ui5-v2-11-0-rc-3_list_buttons_left_space)}.ui5-li-multisel-cb,.ui5-li-singlesel-radiobtn{flex-shrink:0}:host([description]) .ui5-li-singlesel-radiobtn{align-self:flex-start;margin-top:var(--_ui5-v2-11-0-rc-3_list_item_selection_btn_margin_top)}:host([description]) .ui5-li-multisel-cb{align-self:flex-start;margin-top:var(--_ui5-v2-11-0-rc-3_list_item_selection_btn_margin_top)}:host([_selection-mode="SingleStart"][wrapping-type]) .ui5-li-root{padding-inline:0 1rem}:host([_selection-mode="Multiple"][wrapping-type]) .ui5-li-root{padding-inline:0 1rem}:host([_selection-mode="SingleEnd"][wrapping-type]) .ui5-li-root{padding-inline:1rem 0}:host [ui5-checkbox].ui5-li-singlesel-radiobtn{margin-right:var(--_ui5-v2-11-0-rc-3_list_item_cb_margin_right)}.ui5-li-highlight{position:absolute;width:.375rem;bottom:0;left:0;top:0;border-inline-end:.0625rem solid var(--ui5-v2-11-0-rc-3-listitem-background-color);box-sizing:border-box}:host([highlight="Negative"]) .ui5-li-highlight{background:var(--sapNegativeTextColor)}:host([highlight="Critical"]) .ui5-li-highlight{background:var(--sapCriticalTextColor)}:host([highlight="Positive"]) .ui5-li-highlight{background:var(--sapPositiveTextColor)}:host([highlight="Information"]) .ui5-li-highlight{background:var(--sapInformativeTextColor)}:host([wrapping-type="Normal"][description]),:host([wrapping-type="Normal"][has-title][description]),:host([wrapping-type="Normal"][has-title][image]){height:auto;min-height:5rem}:host([wrapping-type="Normal"][description]) .ui5-li-content,:host([wrapping-type="Normal"][image]) .ui5-li-content{height:auto;min-height:3rem}:host([wrapping-type="Normal"][has-title][description]) .ui5-li-title{padding-bottom:.75rem}:host([wrapping-type="Normal"][additional-text]) .ui5-li-additional-text{padding-inline-start:.75rem}:host([wrapping-type="Normal"]) .ui5-li-description-info-wrapper{flex-direction:column}:host([wrapping-type="Normal"]) .ui5-li-description-info-wrapper .ui5-li-additional-text{white-space:normal}:host([wrapping-type="Normal"]) .ui5-li-multisel-cb,:host([wrapping-type="Normal"]) .ui5-li-singlesel-radiobtn{display:flex;align-self:flex-start}:host([wrapping-type="Normal"][description]) .ui5-li-multisel-cb,:host([wrapping-type="Normal"][description]) .ui5-li-singlesel-radiobtn{margin-top:0}:host([wrapping-type="Normal"]) .ui5-li-icon,:host([wrapping-type="Normal"]) .ui5-li-image{display:flex;align-self:flex-start}:host([wrapping-type="Normal"][icon-end]) .ui5-li-icon{margin-top:var(--_ui5-v2-11-0-rc-3_list_item_content_vertical_offset)}:host([wrapping-type="Normal"]) ::slotted([ui5-avatar][slot="image"]){margin-top:0;margin-bottom:0}:host([wrapping-type="Normal"]) .ui5-li-detailbtn,:host([wrapping-type="Normal"]) .ui5-li-deletebtn{margin-inline-start:.875rem}
103
- `;
104
-
105
- Icons.p("sap/ushell/gen/ui5/webcomponents-theming", "sap_horizon", async () => i18nDefaults.defaultThemeBase);
106
- Icons.p("sap/ushell/gen/ui5/webcomponents", "sap_horizon", async () => i18nDefaults.defaultTheme);
107
- 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}
108
- `;
109
-
110
- var __decorate$7 = (this && this.__decorate) || function (decorators, target, key, desc) {
111
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
112
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
113
- 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;
114
- return c > 3 && r && Object.defineProperty(target, key, r), r;
115
- };
116
- var ListItem_1;
117
- /**
118
- * @class
119
- * A class to serve as a base
120
- * for the `ListItemStandard` and `ListItemCustom` classes.
121
- * @constructor
122
- * @abstract
123
- * @extends ListItemBase
124
- * @public
125
- */
126
- let ListItem = ListItem_1 = class ListItem extends BusyIndicator.ListItemBase {
127
- constructor() {
128
- super();
129
- /**
130
- * Defines the visual indication and behavior of the list items.
131
- * Available options are `Active` (by default), `Inactive`, `Detail` and `Navigation`.
132
- *
133
- * **Note:** When set to `Active` or `Navigation`, the item will provide visual response upon press and hover,
134
- * while with type `Inactive` and `Detail` - will not.
135
- * @default "Active"
136
- * @public
137
- */
138
- this.type = "Active";
139
- /**
140
- * Defines the additional accessibility attributes that will be applied to the component.
141
- * The following fields are supported:
142
- *
143
- * - **ariaSetsize**: Defines the number of items in the current set when not all items in the set are present in the DOM.
144
- * **Note:** The value is an integer reflecting the number of items in the complete set. If the size of the entire set is unknown, set `-1`.
145
- *
146
- * - **ariaPosinset**: Defines an element's number or position in the current set when not all items are present in the DOM.
147
- * **Note:** The value is an integer greater than or equal to 1, and less than or equal to the size of the set when that size is known.
148
- *
149
- * @default {}
150
- * @public
151
- * @since 1.15.0
152
- */
153
- this.accessibilityAttributes = {};
154
- /**
155
- * The navigated state of the list item.
156
- * If set to `true`, a navigation indicator is displayed at the end of the list item.
157
- * @default false
158
- * @public
159
- * @since 1.10.0
160
- */
161
- this.navigated = false;
162
- /**
163
- * Indicates if the list item is active, e.g pressed down with the mouse or the keyboard keys.
164
- * @private
165
- */
166
- this.active = false;
167
- /**
168
- * Defines the highlight state of the list items.
169
- * Available options are: `"None"` (by default), `"Positive"`, `"Critical"`, `"Information"` and `"Negative"`.
170
- * @default "None"
171
- * @public
172
- * @since 1.24
173
- */
174
- this.highlight = "None";
175
- /**
176
- * Used to define the role of the list item.
177
- * @private
178
- * @default "ListItem"
179
- * @since 1.3.0
180
- *
181
- */
182
- this.accessibleRole = "ListItem";
183
- this._selectionMode = "None";
184
- /**
185
- * Defines the current media query size.
186
- * @default "S"
187
- * @private
188
- */
189
- this.mediaRange = "S";
190
- this.deactivateByKey = (e) => {
191
- if (webcomponentsBase.b$1(e)) {
192
- this.deactivate();
193
- }
194
- };
195
- this.deactivate = () => {
196
- if (this.active) {
197
- this.active = false;
198
- }
199
- };
200
- }
201
- onBeforeRendering() {
202
- super.onBeforeRendering();
203
- this.actionable = (this.type === ListItemType$1.Active || this.type === ListItemType$1.Navigation) && (this._selectionMode !== List.ListSelectionMode.Delete);
204
- }
205
- onEnterDOM() {
206
- super.onEnterDOM();
207
- document.addEventListener("mouseup", this.deactivate);
208
- document.addEventListener("touchend", this.deactivate);
209
- document.addEventListener("keyup", this.deactivateByKey);
210
- }
211
- onExitDOM() {
212
- document.removeEventListener("mouseup", this.deactivate);
213
- document.removeEventListener("keyup", this.deactivateByKey);
214
- document.removeEventListener("touchend", this.deactivate);
215
- }
216
- async _onkeydown(e) {
217
- if ((webcomponentsBase.i(e) || webcomponentsBase.b$1(e)) && this._isTargetSelfFocusDomRef(e)) {
218
- return;
219
- }
220
- super._onkeydown(e);
221
- const itemActive = this.type === ListItemType$1.Active, itemNavigated = this.typeNavigation;
222
- if ((webcomponentsBase.i(e) || webcomponentsBase.b$1(e)) && (itemActive || itemNavigated)) {
223
- this.activate();
224
- }
225
- if (webcomponentsBase.so(e)) {
226
- const activeElement = webcomponentsBase.t();
227
- const focusDomRef = this.getFocusDomRef();
228
- if (activeElement === focusDomRef) {
229
- const firstFocusable = await BusyIndicator.b(focusDomRef);
230
- firstFocusable?.focus();
231
- }
232
- else {
233
- focusDomRef.focus();
234
- }
235
- }
236
- }
237
- _onkeyup(e) {
238
- super._onkeyup(e);
239
- if (webcomponentsBase.i(e) || webcomponentsBase.b$1(e)) {
240
- this.deactivate();
241
- }
242
- if (this.modeDelete && webcomponentsBase.V(e)) {
243
- this.onDelete();
244
- }
245
- }
246
- _onmousedown() {
247
- this.activate();
248
- }
249
- _onmouseup() {
250
- if (this.getFocusDomRef().matches(":has(:focus-within)")) {
251
- return;
252
- }
253
- this.deactivate();
254
- }
255
- _ontouchend() {
256
- this._onmouseup();
257
- }
258
- _onfocusin(e) {
259
- super._onfocusin(e);
260
- if (e.target !== this.getFocusDomRef()) {
261
- this.deactivate();
262
- }
263
- }
264
- _onfocusout(e) {
265
- if (e.target !== this.getFocusDomRef()) {
266
- return;
267
- }
268
- this.deactivate();
269
- }
270
- _ondragstart(e) {
271
- if (!e.dataTransfer) {
272
- return;
273
- }
274
- if (e.target === this._listItem) {
275
- this.setAttribute("data-moving", "");
276
- e.dataTransfer.dropEffect = "move";
277
- e.dataTransfer.effectAllowed = "move";
278
- }
279
- }
280
- _ondragend(e) {
281
- if (e.target === this._listItem) {
282
- this.removeAttribute("data-moving");
283
- }
284
- }
285
- _isTargetSelfFocusDomRef(e) {
286
- const target = e.target, focusDomRef = this.getFocusDomRef();
287
- return target !== focusDomRef;
288
- }
289
- /**
290
- * Called when selection components in Single (ui5-radio-button)
291
- * and Multi (ui5-checkbox) selection modes are used.
292
- */
293
- onMultiSelectionComponentPress(e) {
294
- if (this.isInactive) {
295
- return;
296
- }
297
- this.fireDecoratorEvent("selection-requested", { item: this, selected: e.target.checked, selectionComponentPressed: true });
298
- }
299
- onSingleSelectionComponentPress(e) {
300
- if (this.isInactive) {
301
- return;
302
- }
303
- this.fireDecoratorEvent("selection-requested", { item: this, selected: !e.target.checked, selectionComponentPressed: true });
304
- }
305
- activate() {
306
- if (this.type === ListItemType$1.Active || this.type === ListItemType$1.Navigation) {
307
- this.active = true;
308
- }
309
- }
310
- onDelete() {
311
- this.fireDecoratorEvent("selection-requested", { item: this, selectionComponentPressed: false });
312
- }
313
- onDetailClick() {
314
- this.fireDecoratorEvent("detail-click", { item: this, selected: this.selected });
315
- }
316
- fireItemPress(e) {
317
- if (this.isInactive) {
318
- return;
319
- }
320
- super.fireItemPress(e);
321
- if (document.activeElement !== this) {
322
- this.focus();
323
- }
324
- }
325
- get isInactive() {
326
- return this.type === ListItemType$1.Inactive || this.type === ListItemType$1.Detail;
327
- }
328
- get placeSelectionElementBefore() {
329
- return this._selectionMode === List.ListSelectionMode.Multiple
330
- || this._selectionMode === List.ListSelectionMode.SingleStart;
331
- }
332
- get placeSelectionElementAfter() {
333
- return !this.placeSelectionElementBefore
334
- && (this._selectionMode === List.ListSelectionMode.SingleEnd || this._selectionMode === List.ListSelectionMode.Delete);
335
- }
336
- get modeSingleSelect() {
337
- return [
338
- List.ListSelectionMode.SingleStart,
339
- List.ListSelectionMode.SingleEnd,
340
- List.ListSelectionMode.Single,
341
- ].includes(this._selectionMode);
342
- }
343
- get modeMultiple() {
344
- return this._selectionMode === List.ListSelectionMode.Multiple;
345
- }
346
- get modeDelete() {
347
- return this._selectionMode === List.ListSelectionMode.Delete;
348
- }
349
- get typeDetail() {
350
- return this.type === ListItemType$1.Detail;
351
- }
352
- get typeNavigation() {
353
- return this.type === ListItemType$1.Navigation;
354
- }
355
- get typeActive() {
356
- return this.type === ListItemType$1.Active;
357
- }
358
- get _ariaSelected() {
359
- if (this.modeMultiple || this.modeSingleSelect) {
360
- return this.selected;
361
- }
362
- return undefined;
363
- }
364
- get listItemAccessibleRole() {
365
- return (this._forcedAccessibleRole || this.accessibleRole.toLowerCase());
366
- }
367
- get ariaSelectedText() {
368
- let ariaSelectedText;
369
- // Selected state needs to be supported separately since now the role mapping is list -> listitem[]
370
- // to avoid the issue of nesting interactive elements, ex. (option -> radio/checkbox);
371
- // The text is added to aria-describedby because as part of the aria-labelledby
372
- // the whole content of the item is readout when the aria-labelledby value is changed.
373
- if (this._ariaSelected !== undefined) {
374
- ariaSelectedText = this._ariaSelected ? ListItem_1.i18nBundle.getText(i18nDefaults.LIST_ITEM_SELECTED) : ListItem_1.i18nBundle.getText(i18nDefaults.LIST_ITEM_NOT_SELECTED);
375
- }
376
- return ariaSelectedText;
377
- }
378
- get deleteText() {
379
- return ListItem_1.i18nBundle.getText(i18nDefaults.DELETE);
380
- }
381
- get hasDeleteButtonSlot() {
382
- return !!this.deleteButton.length;
383
- }
384
- get _accessibleNameRef() {
385
- if (this.accessibleName) {
386
- // accessibleName is set - return labels excluding content
387
- return `${this._id}-invisibleText`;
388
- }
389
- // accessibleName is not set - return _accInfo.listItemAriaLabel including content
390
- return `${this._id}-content ${this._id}-invisibleText`;
391
- }
392
- get ariaLabelledByText() {
393
- const texts = [
394
- this._accInfo.listItemAriaLabel,
395
- this.accessibleName,
396
- this.typeActive ? ListItem_1.i18nBundle.getText(i18nDefaults.LIST_ITEM_ACTIVE) : undefined,
397
- ].filter(Boolean);
398
- return texts.join(" ");
399
- }
400
- get _accInfo() {
401
- return {
402
- role: this.listItemAccessibleRole,
403
- ariaExpanded: undefined,
404
- ariaLevel: undefined,
405
- ariaLabel: ListItem_1.i18nBundle.getText(i18nDefaults.ARIA_LABEL_LIST_ITEM_CHECKBOX),
406
- ariaLabelRadioButton: ListItem_1.i18nBundle.getText(i18nDefaults.ARIA_LABEL_LIST_ITEM_RADIO_BUTTON),
407
- ariaSelectedText: this.ariaSelectedText,
408
- ariaHaspopup: this.accessibilityAttributes.hasPopup,
409
- setsize: this.accessibilityAttributes.ariaSetsize,
410
- posinset: this.accessibilityAttributes.ariaPosinset,
411
- tooltip: this.tooltip,
412
- };
413
- }
414
- get _hasHighlightColor() {
415
- return this.highlight !== Highlight$1.None;
416
- }
417
- get hasConfigurableMode() {
418
- return true;
419
- }
420
- get _listItem() {
421
- return this.shadowRoot.querySelector("li");
422
- }
423
- };
424
- __decorate$7([
425
- webcomponentsBase.s()
426
- ], ListItem.prototype, "type", void 0);
427
- __decorate$7([
428
- webcomponentsBase.s({ type: Object })
429
- ], ListItem.prototype, "accessibilityAttributes", void 0);
430
- __decorate$7([
431
- webcomponentsBase.s({ type: Boolean })
432
- ], ListItem.prototype, "navigated", void 0);
433
- __decorate$7([
434
- webcomponentsBase.s()
435
- ], ListItem.prototype, "tooltip", void 0);
436
- __decorate$7([
437
- webcomponentsBase.s({ type: Boolean })
438
- ], ListItem.prototype, "active", void 0);
439
- __decorate$7([
440
- webcomponentsBase.s()
441
- ], ListItem.prototype, "highlight", void 0);
442
- __decorate$7([
443
- webcomponentsBase.s({ type: Boolean })
444
- ], ListItem.prototype, "selected", void 0);
445
- __decorate$7([
446
- webcomponentsBase.s()
447
- ], ListItem.prototype, "accessibleRole", void 0);
448
- __decorate$7([
449
- webcomponentsBase.s()
450
- ], ListItem.prototype, "_forcedAccessibleRole", void 0);
451
- __decorate$7([
452
- webcomponentsBase.s()
453
- ], ListItem.prototype, "_selectionMode", void 0);
454
- __decorate$7([
455
- webcomponentsBase.s()
456
- ], ListItem.prototype, "mediaRange", void 0);
457
- __decorate$7([
458
- webcomponentsBase.d()
459
- ], ListItem.prototype, "deleteButton", void 0);
460
- __decorate$7([
461
- i18nDefaults.i("sap/ushell/gen/ui5/webcomponents")
462
- ], ListItem, "i18nBundle", void 0);
463
- ListItem = ListItem_1 = __decorate$7([
464
- webcomponentsBase.m({
465
- languageAware: true,
466
- renderer: i18nDefaults.y,
467
- styles: [
468
- BusyIndicator.ListItemBase.styles,
469
- listItemAdditionalTextCss,
470
- styles,
471
- ],
472
- })
473
- /**
474
- * Fired when the user clicks on the detail button when type is `Detail`.
475
- * @public
476
- */
477
- ,
478
- eventStrict.l("detail-click", {
479
- bubbles: true,
480
- }),
481
- eventStrict.l("selection-requested", {
482
- bubbles: true,
483
- })
484
- ], ListItem);
485
- var ListItem$1 = ListItem;
486
-
487
- function PopubBlockLayerTemplate() {
488
- return (i18nDefaults.jsx("div", { class: "ui5-block-layer", onKeyDown: this._preventBlockLayerFocus, onMouseDown: this._preventBlockLayerFocus }));
489
- }
490
-
491
- function PopupTemplate(hooks) {
492
- return (i18nDefaults.jsxs(i18nDefaults.Fragment, { children: [PopubBlockLayerTemplate.call(this), i18nDefaults.jsxs("section", { "root-element": true, style: this.styles.root, class: this.classes.root, role: this._role, "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: [i18nDefaults.jsx("span", { class: "first-fe", "data-ui5-focus-trap": true, role: "none", tabIndex: 0, onFocusIn: this.forwardToLast }), (hooks?.beforeContent || beforeContent$2).call(this), i18nDefaults.jsx("div", { style: this.styles.content, class: this.classes.content, onScroll: this._scroll, part: "content", children: i18nDefaults.jsx("slot", {}) }), (hooks?.afterContent || afterContent$2).call(this), i18nDefaults.jsx("span", { class: "last-fe", "data-ui5-focus-trap": true, role: "none", tabIndex: 0, onFocusIn: this.forwardToFirst })] })] }));
493
- }
494
- function beforeContent$2() { }
495
- function afterContent$2() { }
496
-
497
- /**
498
- * Different types of Title level.
499
- * @public
500
- */
501
- var TitleLevel;
502
- (function (TitleLevel) {
503
- /**
504
- * Renders `h1` tag.
505
- * @public
506
- */
507
- TitleLevel["H1"] = "H1";
508
- /**
509
- * Renders `h2` tag.
510
- * @public
511
- */
512
- TitleLevel["H2"] = "H2";
513
- /**
514
- * Renders `h3` tag.
515
- * @public
516
- */
517
- TitleLevel["H3"] = "H3";
518
- /**
519
- * Renders `h4` tag.
520
- * @public
521
- */
522
- TitleLevel["H4"] = "H4";
523
- /**
524
- * Renders `h5` tag.
525
- * @public
526
- */
527
- TitleLevel["H5"] = "H5";
528
- /**
529
- * Renders `h6` tag.
530
- * @public
531
- */
532
- TitleLevel["H6"] = "H6";
533
- })(TitleLevel || (TitleLevel = {}));
534
- var TitleLevel$1 = TitleLevel;
535
-
536
- function TitleTemplate() {
537
- return (i18nDefaults.jsx(i18nDefaults.Fragment, { children: title.call(this, this.level) }));
538
- }
539
- function title(titleLevel) {
540
- switch (titleLevel) {
541
- case "H1":
542
- return (i18nDefaults.jsx("h1", { class: "ui5-title-root", children: titleInner.call(this) }));
543
- case "H2":
544
- return (i18nDefaults.jsx("h2", { class: "ui5-title-root", children: titleInner.call(this) }));
545
- case "H3":
546
- return (i18nDefaults.jsx("h3", { class: "ui5-title-root", children: titleInner.call(this) }));
547
- case "H4":
548
- return (i18nDefaults.jsx("h4", { class: "ui5-title-root", children: titleInner.call(this) }));
549
- case "H5":
550
- return (i18nDefaults.jsx("h5", { class: "ui5-title-root", children: titleInner.call(this) }));
551
- case "H6":
552
- return (i18nDefaults.jsx("h6", { id: `${this._id}-inner`, class: "ui5-title-root", children: titleInner.call(this) }));
553
- default:
554
- return (i18nDefaults.jsx("h2", { class: "ui5-title-root", children: titleInner.call(this) }));
555
- }
556
- }
557
- function titleInner() {
558
- return (i18nDefaults.jsx("span", { id: `${this._id}-inner`, children: i18nDefaults.jsx("slot", {}) }));
559
- }
560
-
561
- Icons.p("sap/ushell/gen/ui5/webcomponents-theming", "sap_horizon", async () => i18nDefaults.defaultThemeBase);
562
- Icons.p("sap/ushell/gen/ui5/webcomponents", "sap_horizon", async () => i18nDefaults.defaultTheme);
563
- var titleCss = `:host(:not([hidden])){display:block;cursor:text}:host{max-width:100%;color:var(--sapGroup_TitleTextColor);font-size:var(--sapFontHeader5Size);font-family:"72override",var(--sapFontHeaderFamily);text-shadow:var(--sapContent_TextShadow)}.ui5-title-root{display:inline-block;position:relative;font-weight:400;font-size:inherit;box-sizing:border-box;overflow:hidden;text-overflow:ellipsis;max-width:100%;vertical-align:bottom;-webkit-margin-before:0;-webkit-margin-after:0;-webkit-margin-start:0;-webkit-margin-end:0;margin:0;cursor:inherit}:host{white-space:pre-line}:host([wrapping-type="None"]){white-space:nowrap}.ui5-title-root,:host ::slotted(*){white-space:inherit}::slotted(*){font-size:inherit;font-family:inherit;text-shadow:inherit}:host([size="H1"]){font-size:var(--sapFontHeader1Size)}:host([size="H2"]){font-size:var(--sapFontHeader2Size)}:host([size="H3"]){font-size:var(--sapFontHeader3Size)}:host([size="H4"]){font-size:var(--sapFontHeader4Size)}:host([size="H5"]){font-size:var(--sapFontHeader5Size)}:host([size="H6"]){font-size:var(--sapFontHeader6Size)}
564
- `;
565
-
566
- var __decorate$6 = (this && this.__decorate) || function (decorators, target, key, desc) {
567
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
568
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
569
- 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;
570
- return c > 3 && r && Object.defineProperty(target, key, r), r;
571
- };
572
- /**
573
- * @class
574
- *
575
- * ### Overview
576
- *
577
- * The `ui5-title` component is used to display titles inside a page.
578
- * It is a simple, large-sized text with explicit header/title semantics.
579
- *
580
- * ### ES6 Module Import
581
- *
582
- * `import "sap/ushell/gen/ui5/webcomponents/dist/Title.js";`
583
- * @constructor
584
- * @extends UI5Element
585
- * @slot {Node[]} default - Defines the text of the component.
586
- * This component supports nesting a `Link` component inside.
587
- *
588
- * **Note:** Although this slot accepts HTML Elements, it is strongly recommended that you only use text in order to preserve the intended design.
589
- * @public
590
- */
591
- let Title = class Title extends webcomponentsBase.b {
592
- constructor() {
593
- super(...arguments);
594
- /**
595
- * Defines how the text of a component will be displayed when there is not enough space.
596
- *
597
- * **Note:** for option "Normal" the text will wrap and the words will not be broken based on hyphenation.
598
- * @default "Normal"
599
- * @public
600
- */
601
- this.wrappingType = "Normal";
602
- /**
603
- * Defines the component level.
604
- * Available options are: `"H6"` to `"H1"`.
605
- * This property does not influence the style of the component.
606
- * Use the property `size` for this purpose instead.
607
- * @default "H2"
608
- * @public
609
- */
610
- this.level = "H2";
611
- /**
612
- * Defines the visual appearance of the title.
613
- * Available options are: `"H6"` to `"H1"`.
614
- * @default "H5"
615
- * @public
616
- */
617
- this.size = "H5";
618
- }
619
- get h1() {
620
- return this.level === TitleLevel$1.H1;
621
- }
622
- get h2() {
623
- return this.level === TitleLevel$1.H2;
624
- }
625
- get h3() {
626
- return this.level === TitleLevel$1.H3;
627
- }
628
- get h4() {
629
- return this.level === TitleLevel$1.H4;
630
- }
631
- get h5() {
632
- return this.level === TitleLevel$1.H5;
633
- }
634
- get h6() {
635
- return this.level === TitleLevel$1.H6;
636
- }
637
- };
638
- __decorate$6([
639
- webcomponentsBase.s()
640
- ], Title.prototype, "wrappingType", void 0);
641
- __decorate$6([
642
- webcomponentsBase.s()
643
- ], Title.prototype, "level", void 0);
644
- __decorate$6([
645
- webcomponentsBase.s()
646
- ], Title.prototype, "size", void 0);
647
- Title = __decorate$6([
648
- webcomponentsBase.m({
649
- tag: "ui5-title",
650
- renderer: i18nDefaults.y,
651
- template: TitleTemplate,
652
- styles: titleCss,
653
- })
654
- ], Title);
655
- Title.define();
656
- var Title$1 = Title;
657
-
658
- function PopoverTemplate() {
659
- return PopupTemplate.call(this, {
660
- beforeContent: beforeContent$1,
661
- afterContent: afterContent$1,
662
- });
663
- }
664
- function beforeContent$1() {
665
- return (i18nDefaults.jsxs(i18nDefaults.Fragment, { children: [i18nDefaults.jsx("span", { class: "ui5-popover-arrow", style: this.styles.arrow }), this._displayHeader &&
666
- i18nDefaults.jsx("header", { class: "ui5-popup-header-root", id: "ui5-popup-header", part: "header", children: this.header.length ?
667
- i18nDefaults.jsx("slot", { name: "header" })
668
- :
669
- i18nDefaults.jsx(Title$1, { level: "H1", class: "ui5-popup-header-text", children: this.headerText }) })] }));
670
- }
671
- function afterContent$1() {
672
- return (i18nDefaults.jsx(i18nDefaults.Fragment, { children: this._displayFooter && !!this.footer.length &&
673
- i18nDefaults.jsx("footer", { class: "ui5-popup-footer-root", part: "footer", children: i18nDefaults.jsx("slot", { name: "footer" }) }) }));
674
- }
675
-
676
- const m$1=(t,a,e)=>Math.min(Math.max(t,a),Math.max(a,e));
677
-
678
- 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)};
679
-
680
- /**
681
- * Popup accessible roles.
682
- * @public
683
- */
684
- var PopupAccessibleRole;
685
- (function (PopupAccessibleRole) {
686
- /**
687
- * Represents no ARIA role.
688
- * @public
689
- */
690
- PopupAccessibleRole["None"] = "None";
691
- /**
692
- * Represents the ARIA role "dialog".
693
- * @public
694
- */
695
- PopupAccessibleRole["Dialog"] = "Dialog";
696
- /**
697
- * Represents the ARIA role "alertdialog".
698
- * @public
699
- */
700
- PopupAccessibleRole["AlertDialog"] = "AlertDialog";
701
- })(PopupAccessibleRole || (PopupAccessibleRole = {}));
702
- var PopupAccessibleRole$1 = PopupAccessibleRole;
703
-
704
- const OpenedPopupsRegistry = Icons.m("OpenedPopupsRegistry", { openedRegistry: [] });
705
- const addOpenedPopup = (instance, parentPopovers = []) => {
706
- if (!OpenedPopupsRegistry.openedRegistry.some(popup => popup.instance === instance)) {
707
- OpenedPopupsRegistry.openedRegistry.push({
708
- instance,
709
- parentPopovers,
710
- });
711
- }
712
- _updateTopModalPopup();
713
- if (OpenedPopupsRegistry.openedRegistry.length === 1) {
714
- attachGlobalListener();
715
- }
716
- };
717
- const removeOpenedPopup = (instance) => {
718
- OpenedPopupsRegistry.openedRegistry = OpenedPopupsRegistry.openedRegistry.filter(el => {
719
- return el.instance !== instance;
720
- });
721
- _updateTopModalPopup();
722
- if (!OpenedPopupsRegistry.openedRegistry.length) {
723
- detachGlobalListener();
724
- }
725
- };
726
- const getOpenedPopups = () => {
727
- return [...OpenedPopupsRegistry.openedRegistry];
728
- };
729
- const _keydownListener = (event) => {
730
- if (!OpenedPopupsRegistry.openedRegistry.length) {
731
- return;
732
- }
733
- if (webcomponentsBase.H(event)) {
734
- event.stopPropagation();
735
- OpenedPopupsRegistry.openedRegistry[OpenedPopupsRegistry.openedRegistry.length - 1].instance.closePopup(true);
736
- }
737
- };
738
- const attachGlobalListener = () => {
739
- document.addEventListener("keydown", _keydownListener);
740
- };
741
- const detachGlobalListener = () => {
742
- document.removeEventListener("keydown", _keydownListener);
743
- };
744
- const _updateTopModalPopup = () => {
745
- let popup;
746
- let hasModal = false;
747
- for (let i = OpenedPopupsRegistry.openedRegistry.length - 1; i >= 0; i--) {
748
- popup = OpenedPopupsRegistry.openedRegistry[i].instance;
749
- if (!hasModal && popup.isModal) {
750
- popup.isTopModalPopup = true;
751
- hasModal = true;
752
- }
753
- else {
754
- popup.isTopModalPopup = false;
755
- }
756
- }
757
- };
758
-
759
- Icons.p("sap/ushell/gen/ui5/webcomponents-theming", "sap_horizon", async () => i18nDefaults.defaultThemeBase);
760
- Icons.p("sap/ushell/gen/ui5/webcomponents", "sap_horizon", async () => i18nDefaults.defaultTheme);
761
- var popupStlyes = `:host{min-width:1px;overflow:visible;border:none;inset:unset;margin:0;padding:0}
762
- `;
763
-
764
- Icons.p("sap/ushell/gen/ui5/webcomponents-theming", "sap_horizon", async () => i18nDefaults.defaultThemeBase);
765
- Icons.p("sap/ushell/gen/ui5/webcomponents", "sap_horizon", async () => i18nDefaults.defaultTheme);
766
- var popupBlockLayerStyles = `.ui5-block-layer{position:fixed;z-index:-1;display:none;inset:-500px;outline:none;pointer-events:all}
767
- `;
768
-
769
- Icons.p("sap/ushell/gen/ui5/webcomponents-theming", "sap_horizon", async () => i18nDefaults.defaultThemeBase);
770
- Icons.p("sap/ushell/gen/ui5/webcomponents", "sap_horizon", async () => i18nDefaults.defaultTheme);
771
- var globalStyles = `.ui5-popup-scroll-blocker{overflow:hidden}
772
- `;
773
-
774
- var __decorate$5 = (this && this.__decorate) || function (decorators, target, key, desc) {
775
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
776
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
777
- 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;
778
- return c > 3 && r && Object.defineProperty(target, key, r), r;
779
- };
780
- var Popup_1;
781
- const createBlockingStyle = () => {
782
- if (!Icons.S("data-ui5-popup-scroll-blocker")) {
783
- Icons.c$5(globalStyles, "data-ui5-popup-scroll-blocker");
784
- }
785
- };
786
- createBlockingStyle();
787
- const pageScrollingBlockers = new Set();
788
- /**
789
- * @class
790
- * ### Overview
791
- * Base class for all popup Web Components.
792
- *
793
- * If you need to create your own popup-like custom UI5 Web Components.
794
- *
795
- * 1. The Popup class handles modality:
796
- * - The "isModal" getter can be overridden by derivatives to provide their own conditions when they are modal or not
797
- * - Derivatives may call the "blockPageScrolling" and "unblockPageScrolling" static methods to temporarily remove scrollbars on the html element
798
- * - Derivatives may call the "openPopup" and "closePopup" methods which handle focus, manage the popup registry and for modal popups, manage the blocking layer
799
- *
800
- * 2. Provides blocking layer (relevant for modal popups only):
801
- * - Controlled by the "open" and "close" methods
802
- *
803
- * 3. The Popup class "traps" focus:
804
- * - Derivatives may call the "applyInitialFocus" method (usually when opening, to transfer focus inside the popup)
805
- *
806
- * 4. The template of this component exposes two inline partials you can override in derivatives:
807
- * - beforeContent (upper part of the box, useful for header/title/close button)
808
- * - afterContent (lower part, useful for footer/action buttons)
809
- * @constructor
810
- * @extends UI5Element
811
- * @public
812
- */
813
- let Popup = Popup_1 = class Popup extends webcomponentsBase.b {
814
- constructor() {
815
- super();
816
- /**
817
- * Defines if the focus should be returned to the previously focused element,
818
- * when the popup closes.
819
- * @default false
820
- * @public
821
- * @since 1.0.0-rc.8
822
- */
823
- this.preventFocusRestore = false;
824
- /**
825
- * Allows setting a custom role.
826
- * @default "Dialog"
827
- * @public
828
- * @since 1.10.0
829
- */
830
- this.accessibleRole = "Dialog";
831
- /**
832
- * Indicates whether initial focus should be prevented.
833
- * @public
834
- * @default false
835
- * @since 2.0.0
836
- */
837
- this.preventInitialFocus = false;
838
- /**
839
- * Indicates if the element is the top modal popup
840
- *
841
- * This property is calculated automatically
842
- * @private
843
- * @default false
844
- */
845
- this.isTopModalPopup = false;
846
- /**
847
- * @private
848
- */
849
- this.onPhone = false;
850
- /**
851
- * @private
852
- */
853
- this.onDesktop = false;
854
- this._opened = false;
855
- this._open = false;
856
- this._resizeHandler = this._resize.bind(this);
857
- this._getRealDomRef = () => {
858
- return this.shadowRoot.querySelector("[root-element]");
859
- };
860
- }
861
- onBeforeRendering() {
862
- this.onPhone = Icons.d$1();
863
- this.onDesktop = Icons.f$1();
864
- }
865
- onAfterRendering() {
866
- Icons.f$3().then(() => {
867
- this._updateMediaRange();
868
- });
869
- }
870
- onEnterDOM() {
871
- this.setAttribute("popover", "manual");
872
- webcomponentsBase.f.register(this, this._resizeHandler);
873
- if (Icons.f$1()) {
874
- this.setAttribute("desktop", "");
875
- }
876
- this.tabIndex = -1;
877
- if (this.open) {
878
- this.showPopover();
879
- this.openPopup();
880
- }
881
- }
882
- onExitDOM() {
883
- if (this._opened) {
884
- Popup_1.unblockPageScrolling(this);
885
- this._removeOpenedPopup();
886
- }
887
- webcomponentsBase.f.deregister(this, this._resizeHandler);
888
- }
889
- /**
890
- * Indicates if the element is open
891
- * @public
892
- * @default false
893
- * @since 1.2.0
894
- */
895
- set open(value) {
896
- if (this._open === value) {
897
- return;
898
- }
899
- this._open = value;
900
- if (value) {
901
- this.openPopup();
902
- }
903
- else {
904
- this.closePopup();
905
- }
906
- }
907
- get open() {
908
- return this._open;
909
- }
910
- async openPopup() {
911
- if (this._opened) {
912
- return;
913
- }
914
- const prevented = !this.fireDecoratorEvent("before-open");
915
- if (prevented) {
916
- this.open = false;
917
- return;
918
- }
919
- if (this.isModal) {
920
- Popup_1.blockPageScrolling(this);
921
- }
922
- this._focusedElementBeforeOpen = r();
923
- this._show();
924
- this._opened = true;
925
- if (this.getDomRef()) {
926
- this._updateMediaRange();
927
- }
928
- this._addOpenedPopup();
929
- this.open = true;
930
- // initial focus, if focused element is statically created
931
- await this.applyInitialFocus();
932
- await Icons.f$3();
933
- if (this.isConnected) {
934
- this.fireDecoratorEvent("open");
935
- }
936
- }
937
- _resize() {
938
- this._updateMediaRange();
939
- }
940
- /**
941
- * Prevents the user from interacting with the content under the block layer
942
- */
943
- _preventBlockLayerFocus(e) {
944
- e.preventDefault();
945
- }
946
- /**
947
- * Temporarily removes scrollbars from the html element
948
- * @protected
949
- */
950
- static blockPageScrolling(popup) {
951
- pageScrollingBlockers.add(popup);
952
- if (pageScrollingBlockers.size !== 1) {
953
- return;
954
- }
955
- document.documentElement.classList.add("ui5-popup-scroll-blocker");
956
- }
957
- /**
958
- * Restores scrollbars on the html element, if needed
959
- * @protected
960
- */
961
- static unblockPageScrolling(popup) {
962
- pageScrollingBlockers.delete(popup);
963
- if (pageScrollingBlockers.size !== 0) {
964
- return;
965
- }
966
- document.documentElement.classList.remove("ui5-popup-scroll-blocker");
967
- }
968
- _scroll(e) {
969
- this.fireDecoratorEvent("scroll", {
970
- scrollTop: e.target.scrollTop,
971
- targetRef: e.target,
972
- });
973
- }
974
- _onkeydown(e) {
975
- const isTabOutAttempt = e.target === this._root && webcomponentsBase.m$1(e);
976
- // if the popup is closed, focus is already moved, so Enter keydown may result in click on the newly focused element
977
- const isEnterOnClosedPopupChild = webcomponentsBase.b$1(e) && !this.open;
978
- if (isTabOutAttempt || isEnterOnClosedPopupChild) {
979
- e.preventDefault();
980
- }
981
- }
982
- _onfocusout(e) {
983
- // relatedTarget is the element, which will get focus. If no such element exists, focus the root.
984
- // This happens after the mouse is released in order to not interrupt text selection.
985
- if (!e.relatedTarget) {
986
- this._shouldFocusRoot = true;
987
- }
988
- }
989
- _onmousedown(e) {
990
- if (this.shadowRoot.contains(e.target)) {
991
- this._shouldFocusRoot = true;
992
- }
993
- else {
994
- this._shouldFocusRoot = false;
995
- }
996
- }
997
- _onmouseup() {
998
- if (this._shouldFocusRoot) {
999
- if (Icons.g$2()) {
1000
- this._root.focus();
1001
- }
1002
- this._shouldFocusRoot = false;
1003
- }
1004
- }
1005
- /**
1006
- * Focus trapping
1007
- * @private
1008
- */
1009
- async forwardToFirst() {
1010
- const firstFocusable = await BusyIndicator.b(this);
1011
- if (firstFocusable) {
1012
- firstFocusable.focus();
1013
- }
1014
- else {
1015
- this._root.focus();
1016
- }
1017
- }
1018
- /**
1019
- * Focus trapping
1020
- * @private
1021
- */
1022
- async forwardToLast() {
1023
- const lastFocusable = await BusyIndicator.H(this);
1024
- if (lastFocusable) {
1025
- lastFocusable.focus();
1026
- }
1027
- else {
1028
- this._root.focus();
1029
- }
1030
- }
1031
- /**
1032
- * Use this method to focus the element denoted by "initialFocus", if provided,
1033
- * or the first focusable element otherwise.
1034
- * @protected
1035
- */
1036
- async applyInitialFocus() {
1037
- if (!this.preventInitialFocus) {
1038
- await this.applyFocus();
1039
- }
1040
- }
1041
- /**
1042
- * Focuses the element denoted by `initialFocus`, if provided,
1043
- * or the first focusable element otherwise.
1044
- * @public
1045
- * @returns Promise that resolves when the focus is applied
1046
- */
1047
- async applyFocus() {
1048
- // do nothing if the standard HTML autofocus is used
1049
- if (this.querySelector("[autofocus]")) {
1050
- return;
1051
- }
1052
- await this._waitForDomRef();
1053
- if (this.getRootNode() === this) {
1054
- return;
1055
- }
1056
- let element;
1057
- if (this.initialFocus) {
1058
- element = this.getRootNode().getElementById(this.initialFocus)
1059
- || document.getElementById(this.initialFocus);
1060
- }
1061
- element = element || await BusyIndicator.b(this) || this._root; // in case of no focusable content focus the root
1062
- if (element) {
1063
- if (element === this._root) {
1064
- element.tabIndex = -1;
1065
- }
1066
- element.focus();
1067
- }
1068
- }
1069
- isFocusWithin() {
1070
- return a(this._root);
1071
- }
1072
- _updateMediaRange() {
1073
- this.mediaRange = webcomponentsBase.i$2.getCurrentRange(webcomponentsBase.i$2.RANGESETS.RANGE_4STEPS, this.getDomRef().offsetWidth);
1074
- }
1075
- /**
1076
- * Adds the popup to the "opened popups registry"
1077
- * @protected
1078
- */
1079
- _addOpenedPopup() {
1080
- addOpenedPopup(this);
1081
- }
1082
- /**
1083
- * Closes the popup.
1084
- */
1085
- closePopup(escPressed = false, preventRegistryUpdate = false, preventFocusRestore = false) {
1086
- if (!this._opened) {
1087
- return;
1088
- }
1089
- const prevented = !this.fireDecoratorEvent("before-close", { escPressed });
1090
- if (prevented) {
1091
- this.open = true;
1092
- return;
1093
- }
1094
- this._opened = false;
1095
- if (this.isModal) {
1096
- Popup_1.unblockPageScrolling(this);
1097
- }
1098
- this.hide();
1099
- this.open = false;
1100
- if (!preventRegistryUpdate) {
1101
- this._removeOpenedPopup();
1102
- }
1103
- if (!this.preventFocusRestore && !preventFocusRestore) {
1104
- this.resetFocus();
1105
- }
1106
- this.fireDecoratorEvent("close");
1107
- }
1108
- /**
1109
- * Removes the popup from the "opened popups registry"
1110
- * @protected
1111
- */
1112
- _removeOpenedPopup() {
1113
- removeOpenedPopup(this);
1114
- }
1115
- /**
1116
- * Returns the focus to the previously focused element
1117
- * @protected
1118
- */
1119
- resetFocus() {
1120
- this._focusedElementBeforeOpen?.focus();
1121
- this._focusedElementBeforeOpen = null;
1122
- }
1123
- /**
1124
- * Sets "block" display to the popup. The property can be overriden by derivatives of Popup.
1125
- * @protected
1126
- */
1127
- _show() {
1128
- if (this.isConnected) {
1129
- this.setAttribute("popover", "manual");
1130
- this.showPopover();
1131
- }
1132
- }
1133
- /**
1134
- * Sets "none" display to the popup
1135
- * @protected
1136
- */
1137
- hide() {
1138
- this.isConnected && this.hidePopover();
1139
- }
1140
- /**
1141
- * Ensures ariaLabel is never null or empty string
1142
- * @protected
1143
- */
1144
- get _ariaLabel() {
1145
- return toLowercaseEnumValue.A(this);
1146
- }
1147
- get _root() {
1148
- return this.shadowRoot.querySelector(".ui5-popup-root");
1149
- }
1150
- get _role() {
1151
- return (this.accessibleRole === PopupAccessibleRole$1.None) ? undefined : toLowercaseEnumValue.n(this.accessibleRole);
1152
- }
1153
- get _ariaModal() {
1154
- return this.accessibleRole === PopupAccessibleRole$1.None ? undefined : "true";
1155
- }
1156
- get contentDOM() {
1157
- return this.shadowRoot.querySelector(".ui5-popup-content");
1158
- }
1159
- get styles() {
1160
- return {
1161
- root: {},
1162
- content: {},
1163
- };
1164
- }
1165
- get classes() {
1166
- return {
1167
- root: {
1168
- "ui5-popup-root": true,
1169
- },
1170
- content: {
1171
- "ui5-popup-content": true,
1172
- },
1173
- };
1174
- }
1175
- };
1176
- __decorate$5([
1177
- webcomponentsBase.s()
1178
- ], Popup.prototype, "initialFocus", void 0);
1179
- __decorate$5([
1180
- webcomponentsBase.s({ type: Boolean })
1181
- ], Popup.prototype, "preventFocusRestore", void 0);
1182
- __decorate$5([
1183
- webcomponentsBase.s()
1184
- ], Popup.prototype, "accessibleName", void 0);
1185
- __decorate$5([
1186
- webcomponentsBase.s()
1187
- ], Popup.prototype, "accessibleNameRef", void 0);
1188
- __decorate$5([
1189
- webcomponentsBase.s()
1190
- ], Popup.prototype, "accessibleRole", void 0);
1191
- __decorate$5([
1192
- webcomponentsBase.s()
1193
- ], Popup.prototype, "mediaRange", void 0);
1194
- __decorate$5([
1195
- webcomponentsBase.s({ type: Boolean })
1196
- ], Popup.prototype, "preventInitialFocus", void 0);
1197
- __decorate$5([
1198
- webcomponentsBase.s({ type: Boolean, noAttribute: true })
1199
- ], Popup.prototype, "isTopModalPopup", void 0);
1200
- __decorate$5([
1201
- webcomponentsBase.d({ type: HTMLElement, "default": true })
1202
- ], Popup.prototype, "content", void 0);
1203
- __decorate$5([
1204
- webcomponentsBase.s({ type: Boolean })
1205
- ], Popup.prototype, "onPhone", void 0);
1206
- __decorate$5([
1207
- webcomponentsBase.s({ type: Boolean })
1208
- ], Popup.prototype, "onDesktop", void 0);
1209
- __decorate$5([
1210
- webcomponentsBase.s({ type: Boolean })
1211
- ], Popup.prototype, "open", null);
1212
- Popup = Popup_1 = __decorate$5([
1213
- webcomponentsBase.m({
1214
- renderer: i18nDefaults.y,
1215
- styles: [popupStlyes, popupBlockLayerStyles],
1216
- template: PopupTemplate,
1217
- })
1218
- /**
1219
- * Fired before the component is opened. This event can be cancelled, which will prevent the popup from opening.
1220
- * @public
1221
- */
1222
- ,
1223
- eventStrict.l("before-open", {
1224
- cancelable: true,
1225
- })
1226
- /**
1227
- * Fired after the component is opened.
1228
- * @public
1229
- */
1230
- ,
1231
- eventStrict.l("open")
1232
- /**
1233
- * Fired before the component is closed. This event can be cancelled, which will prevent the popup from closing.
1234
- * @public
1235
- * @param {boolean} escPressed Indicates that `ESC` key has triggered the event.
1236
- */
1237
- ,
1238
- eventStrict.l("before-close", {
1239
- cancelable: true,
1240
- })
1241
- /**
1242
- * Fired after the component is closed.
1243
- * @public
1244
- */
1245
- ,
1246
- eventStrict.l("close")
1247
- /**
1248
- * Fired whenever the popup content area is scrolled
1249
- * @private
1250
- */
1251
- ,
1252
- eventStrict.l("scroll", {
1253
- bubbles: true,
1254
- })
1255
- ], Popup);
1256
- var Popup$1 = Popup;
1257
-
1258
- const name$9 = "resize-corner";
1259
- const pathData$9 = "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";
1260
- const ltr$9 = false;
1261
- const collection$9 = "SAP-icons-v4";
1262
- const packageName$9 = "sap/ushell/gen/ui5/webcomponents-icons";
1263
-
1264
- Icons.f(name$9, { pathData: pathData$9, ltr: ltr$9, collection: collection$9, packageName: packageName$9 });
1265
-
1266
- const name$8 = "resize-corner";
1267
- const pathData$8 = "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";
1268
- const ltr$8 = false;
1269
- const collection$8 = "SAP-icons-v5";
1270
- const packageName$8 = "sap/ushell/gen/ui5/webcomponents-icons";
1271
-
1272
- Icons.f(name$8, { pathData: pathData$8, ltr: ltr$8, collection: collection$8, packageName: packageName$8 });
1273
-
1274
- var resizeCorner = "resize-corner";
1275
-
1276
- function DialogTemplate() {
1277
- return PopupTemplate.call(this, {
1278
- beforeContent,
1279
- afterContent,
1280
- });
1281
- }
1282
- function beforeContent() {
1283
- return (i18nDefaults.jsx(i18nDefaults.Fragment, { children: !!this._displayHeader &&
1284
- i18nDefaults.jsx("header", { children: i18nDefaults.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 &&
1285
- i18nDefaults.jsx(Icon.Icon, { class: "ui5-dialog-value-state-icon", name: this._dialogStateIcon }), this.header.length ?
1286
- i18nDefaults.jsx("slot", { name: "header" })
1287
- :
1288
- i18nDefaults.jsx(Title$1, { level: "H1", id: "ui5-popup-header-text", class: "ui5-popup-header-text", children: this.headerText }), this.resizable ?
1289
- this.draggable ?
1290
- i18nDefaults.jsx("span", { id: `${this._id}-descr`, "aria-hidden": "true", class: "ui5-hidden-text", children: this.ariaDescribedByHeaderTextDraggableAndResizable })
1291
- :
1292
- i18nDefaults.jsx("span", { id: `${this._id}-descr`, "aria-hidden": "true", class: "ui5-hidden-text", children: this.ariaDescribedByHeaderTextResizable })
1293
- :
1294
- this.draggable &&
1295
- i18nDefaults.jsx("span", { id: `${this._id}-descr`, "aria-hidden": "true", class: "ui5-hidden-text", children: this.ariaDescribedByHeaderTextDraggable })] }) }) }));
1296
- }
1297
- function afterContent() {
1298
- return (i18nDefaults.jsxs(i18nDefaults.Fragment, { children: [!!this.footer.length &&
1299
- i18nDefaults.jsx("footer", { class: "ui5-popup-footer-root", part: "footer", children: i18nDefaults.jsx("slot", { name: "footer" }) }), this._showResizeHandle &&
1300
- i18nDefaults.jsx("div", { class: "ui5-popup-resize-handle", onMouseDown: this._onResizeMouseDown, children: i18nDefaults.jsx(Icon.Icon, { name: resizeCorner }) })] }));
1301
- }
1302
-
1303
- Icons.p("sap/ushell/gen/ui5/webcomponents-theming", "sap_horizon", async () => i18nDefaults.defaultThemeBase);
1304
- Icons.p("sap/ushell/gen/ui5/webcomponents", "sap_horizon", async () => i18nDefaults.defaultTheme);
1305
- var PopupsCommonCss = `:host{position:fixed;background:var(--sapGroup_ContentBackground);border-radius:var(--_ui5-v2-11-0-rc-3_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-11-0-rc-3_popup_header_shadow);border-bottom:var(--_ui5-v2-11-0-rc-3_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-11-0-rc-3_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-11-0-rc-3_popup_default_header_height);max-height:var(--_ui5-v2-11-0-rc-3_popup_default_header_height);line-height:var(--_ui5-v2-11-0-rc-3_popup_default_header_height);text-overflow:ellipsis;overflow:hidden;white-space:nowrap;max-width:100%;display:inline-flex;justify-content:var(--_ui5-v2-11-0-rc-3_popup_header_prop_header_text_alignment)}:host([header-text]) .ui5-popup-header-root{justify-content:var(--_ui5-v2-11-0-rc-3_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-11-0-rc-3_popup_content_padding_s)}:host([media-range="M"]) .ui5-popup-content,:host([media-range="L"]) .ui5-popup-content{padding:1rem var(--_ui5-v2-11-0-rc-3_popup_content_padding_m_l)}:host([media-range="XL"]) .ui5-popup-content{padding:1rem var(--_ui5-v2-11-0-rc-3_popup_content_padding_xl)}.ui5-popup-header-root{background:var(--_ui5-v2-11-0-rc-3_popup_header_background)}:host([media-range="S"]) .ui5-popup-header-root,:host([media-range="S"]) .ui5-popup-footer-root{padding-left:var(--_ui5-v2-11-0-rc-3_popup_header_footer_padding_s);padding-right:var(--_ui5-v2-11-0-rc-3_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-11-0-rc-3_popup_header_footer_padding_m_l);padding-right:var(--_ui5-v2-11-0-rc-3_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-11-0-rc-3_popup_header_footer_padding_xl);padding-right:var(--_ui5-v2-11-0-rc-3_popup_header_footer_padding_xl)}
1306
- `;
1307
-
1308
- Icons.p("sap/ushell/gen/ui5/webcomponents-theming", "sap_horizon", async () => i18nDefaults.defaultThemeBase);
1309
- Icons.p("sap/ushell/gen/ui5/webcomponents", "sap_horizon", async () => i18nDefaults.defaultTheme);
1310
- 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-11-0-rc-3_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-11-0-rc-3_dialog_header_error_state_icon_color)}:host([state="Information"]) .ui5-dialog-value-state-icon{color:var(--_ui5-v2-11-0-rc-3_dialog_header_information_state_icon_color)}:host([state="Positive"]) .ui5-dialog-value-state-icon{color:var(--_ui5-v2-11-0-rc-3_dialog_header_success_state_icon_color)}:host([state="Critical"]) .ui5-dialog-value-state-icon{color:var(--_ui5-v2-11-0-rc-3_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-11-0-rc-3_dialog_header_focus_left_offset);bottom:var(--_ui5-v2-11-0-rc-3_dialog_header_focus_bottom_offset);right:var(--_ui5-v2-11-0-rc-3_dialog_header_focus_right_offset);top:var(--_ui5-v2-11-0-rc-3_dialog_header_focus_top_offset);border:var(--sapContent_FocusWidth) var(--sapContent_FocusStyle) var(--sapContent_FocusColor);border-radius:var(--_ui5-v2-11-0-rc-3_dialog_header_border_radius) var(--_ui5-v2-11-0-rc-3_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-11-0-rc-3_dialog_content_min_height);flex:1 1 auto}.ui5-popup-resize-handle{position:absolute;bottom:-.5rem;inset-inline-end:-.5rem;cursor:var(--_ui5-v2-11-0-rc-3_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-11-0-rc-3_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-11-0-rc-3_popup_block_layer_background);opacity:var(--_ui5-v2-11-0-rc-3_popup_block_layer_opacity)}.ui5-block-layer{display:block}
1311
- `;
1312
-
1313
- var __decorate$4 = (this && this.__decorate) || function (decorators, target, key, desc) {
1314
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
1315
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
1316
- 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;
1317
- return c > 3 && r && Object.defineProperty(target, key, r), r;
1318
- };
1319
- var Dialog_1;
1320
- /**
1321
- * Defines the step size at which this component would change by when being dragged or resized with the keyboard.
1322
- */
1323
- const STEP_SIZE = 16;
1324
- /**
1325
- * Defines the icons corresponding to the dialog's state.
1326
- */
1327
- const ICON_PER_STATE = {
1328
- [information.o.Negative]: "error",
1329
- [information.o.Critical]: "alert",
1330
- [information.o.Positive]: "sys-enter-2",
1331
- [information.o.Information]: "information",
1332
- };
1333
- /**
1334
- * @class
1335
- * ### Overview
1336
- * The `ui5-dialog` component is used to temporarily display some information in a
1337
- * size-limited window in front of the regular app screen.
1338
- * It is used to prompt the user for an action or a confirmation.
1339
- * The `ui5-dialog` interrupts the current app processing as it is the only focused UI element and
1340
- * the main screen is dimmed/blocked.
1341
- * The dialog combines concepts known from other technologies where the windows have
1342
- * names such as dialog box, dialog window, pop-up, pop-up window, alert box, or message box.
1343
- *
1344
- * The `ui5-dialog` is modal, which means that a user action is required before it is possible to return to the parent window.
1345
- * 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.
1346
- * The content of the `ui5-dialog` is fully customizable.
1347
- *
1348
- * ### Structure
1349
- * A `ui5-dialog` consists of a header, content, and a footer for action buttons.
1350
- * The `ui5-dialog` is usually displayed at the center of the screen.
1351
- * Its position can be changed by the user. To enable this, you need to set the property `draggable` accordingly.
1352
-
1353
- *
1354
- * ### Responsive Behavior
1355
- * 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.
1356
- *
1357
- * **Note:** When a `ui5-bar` is used in the header or in the footer, you should remove the default dialog's paddings.
1358
- *
1359
- * For more information see the sample "Bar in Header/Footer".
1360
-
1361
- * ### Keyboard Handling
1362
- *
1363
- * #### Basic Navigation
1364
- * When the `ui5-dialog` has the `draggable` property set to `true` and the header is focused, the user can move the dialog
1365
- * with the following keyboard shortcuts:
1366
- *
1367
- * - [Up] or [Down] arrow keys - Move the dialog up/down.
1368
- * - [Left] or [Right] arrow keys - Move the dialog left/right.
1369
- *
1370
- * #### Resizing
1371
- * 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
1372
- * with the following keyboard shortcuts:
1373
- *
1374
- * - [Shift] + [Up] or [Down] - Decrease/Increase the height of the dialog.
1375
- * - [Shift] + [Left] or [Right] - Decrease/Increase the width of the dialog.
1376
- *
1377
- * ### ES6 Module Import
1378
- *
1379
- * `import "sap/ushell/gen/ui5/webcomponents/dist/Dialog";`
1380
- *
1381
- * @constructor
1382
- * @extends Popup
1383
- * @public
1384
- * @csspart header - Used to style the header of the component
1385
- * @csspart content - Used to style the content of the component
1386
- * @csspart footer - Used to style the footer of the component
1387
- */
1388
- let Dialog = Dialog_1 = class Dialog extends Popup$1 {
1389
- constructor() {
1390
- super();
1391
- /**
1392
- * Determines if the dialog will be stretched to full screen on mobile. On desktop,
1393
- * the dialog will be stretched to approximately 90% of the viewport.
1394
- *
1395
- * **Note:** For better usability of the component it is recommended to set this property to "true" when the dialog is opened on phone.
1396
- * @default false
1397
- * @public
1398
- */
1399
- this.stretch = false;
1400
- /**
1401
- * Determines whether the component is draggable.
1402
- * If this property is set to true, the Dialog will be draggable by its header.
1403
- *
1404
- * **Note:** The component can be draggable only in desktop mode.
1405
- *
1406
- * **Note:** This property overrides the default HTML "draggable" attribute native behavior.
1407
- * When "draggable" is set to true, the native browser "draggable"
1408
- * behavior is prevented and only the Dialog custom logic ("draggable by its header") works.
1409
- * @default false
1410
- * @since 1.0.0-rc.9
1411
- * @public
1412
- */
1413
- this.draggable = false;
1414
- /**
1415
- * Configures the component to be resizable.
1416
- * If this property is set to true, the Dialog will have a resize handle in its bottom right corner in LTR languages.
1417
- * In RTL languages, the resize handle will be placed in the bottom left corner.
1418
- *
1419
- * **Note:** The component can be resizable only in desktop mode.
1420
- *
1421
- * **Note:** Upon resizing, externally defined height and width styling will be ignored.
1422
- * @default false
1423
- * @since 1.0.0-rc.10
1424
- * @public
1425
- */
1426
- this.resizable = false;
1427
- /**
1428
- * Defines the state of the `Dialog`.
1429
- *
1430
- * **Note:** If `"Negative"` and `"Critical"` states is set, it will change the
1431
- * accessibility role to "alertdialog", if the accessibleRole property is set to `"Dialog"`.
1432
- * @default "None"
1433
- * @public
1434
- * @since 1.0.0-rc.15
1435
- */
1436
- this.state = "None";
1437
- this._draggedOrResized = false;
1438
- this._revertSize = () => {
1439
- Object.assign(this.style, {
1440
- top: "",
1441
- left: "",
1442
- width: "",
1443
- height: "",
1444
- });
1445
- };
1446
- this._screenResizeHandler = this._screenResize.bind(this);
1447
- this._dragMouseMoveHandler = this._onDragMouseMove.bind(this);
1448
- this._dragMouseUpHandler = this._onDragMouseUp.bind(this);
1449
- this._resizeMouseMoveHandler = this._onResizeMouseMove.bind(this);
1450
- this._resizeMouseUpHandler = this._onResizeMouseUp.bind(this);
1451
- this._dragStartHandler = this._handleDragStart.bind(this);
1452
- }
1453
- static _isHeader(element) {
1454
- return element.classList.contains("ui5-popup-header-root") || element.getAttribute("slot") === "header";
1455
- }
1456
- get isModal() {
1457
- return true;
1458
- }
1459
- get _ariaLabelledBy() {
1460
- let ariaLabelledById;
1461
- if (this.headerText && !this._ariaLabel) {
1462
- ariaLabelledById = "ui5-popup-header-text";
1463
- }
1464
- return ariaLabelledById;
1465
- }
1466
- get ariaRoleDescriptionHeaderText() {
1467
- return (this.resizable || this.draggable) ? Dialog_1.i18nBundle.getText(i18nDefaults.DIALOG_HEADER_ARIA_ROLE_DESCRIPTION) : undefined;
1468
- }
1469
- get effectiveAriaDescribedBy() {
1470
- return (this.resizable || this.draggable) ? `${this._id}-descr` : undefined;
1471
- }
1472
- get ariaDescribedByHeaderTextResizable() {
1473
- return Dialog_1.i18nBundle.getText(i18nDefaults.DIALOG_HEADER_ARIA_DESCRIBEDBY_RESIZABLE);
1474
- }
1475
- get ariaDescribedByHeaderTextDraggable() {
1476
- return Dialog_1.i18nBundle.getText(i18nDefaults.DIALOG_HEADER_ARIA_DESCRIBEDBY_DRAGGABLE);
1477
- }
1478
- get ariaDescribedByHeaderTextDraggableAndResizable() {
1479
- return Dialog_1.i18nBundle.getText(i18nDefaults.DIALOG_HEADER_ARIA_DESCRIBEDBY_DRAGGABLE_RESIZABLE);
1480
- }
1481
- /**
1482
- * Determines if the header should be shown.
1483
- */
1484
- get _displayHeader() {
1485
- return this.header.length || this.headerText || this.draggable || this.resizable;
1486
- }
1487
- get _movable() {
1488
- return !this.stretch && this.onDesktop && (this.draggable || this.resizable);
1489
- }
1490
- get _headerTabIndex() {
1491
- return this._movable ? 0 : undefined;
1492
- }
1493
- get _showResizeHandle() {
1494
- return this.resizable && this.onDesktop;
1495
- }
1496
- get _minHeight() {
1497
- let minHeight = Number.parseInt(window.getComputedStyle(this.contentDOM).minHeight);
1498
- const header = this._root.querySelector(".ui5-popup-header-root");
1499
- if (header) {
1500
- minHeight += header.offsetHeight;
1501
- }
1502
- const footer = this._root.querySelector(".ui5-popup-footer-root");
1503
- if (footer) {
1504
- minHeight += footer.offsetHeight;
1505
- }
1506
- return minHeight;
1507
- }
1508
- get hasValueState() {
1509
- return this.state !== information.o.None;
1510
- }
1511
- get _dialogStateIcon() {
1512
- return ICON_PER_STATE[this.state];
1513
- }
1514
- get _role() {
1515
- if (this.accessibleRole === PopupAccessibleRole$1.None) {
1516
- return undefined;
1517
- }
1518
- if (this.state === information.o.Negative || this.state === information.o.Critical) {
1519
- return toLowercaseEnumValue.n(PopupAccessibleRole$1.AlertDialog);
1520
- }
1521
- return toLowercaseEnumValue.n(this.accessibleRole);
1522
- }
1523
- _show() {
1524
- super._show();
1525
- this._center();
1526
- }
1527
- onBeforeRendering() {
1528
- super.onBeforeRendering();
1529
- this._isRTL = this.effectiveDir === "rtl";
1530
- }
1531
- onEnterDOM() {
1532
- super.onEnterDOM();
1533
- this._attachScreenResizeHandler();
1534
- this.addEventListener("dragstart", this._dragStartHandler);
1535
- this.setAttribute("data-sap-ui-fastnavgroup-container", "true");
1536
- }
1537
- onExitDOM() {
1538
- super.onExitDOM();
1539
- this._detachScreenResizeHandler();
1540
- this.removeEventListener("dragstart", this._dragStartHandler);
1541
- }
1542
- /**
1543
- * @override
1544
- */
1545
- _resize() {
1546
- super._resize();
1547
- if (!this._draggedOrResized) {
1548
- this._center();
1549
- }
1550
- }
1551
- _screenResize() {
1552
- this._center();
1553
- }
1554
- _attachScreenResizeHandler() {
1555
- if (!this._screenResizeHandlerAttached) {
1556
- window.addEventListener("resize", this._screenResizeHandler);
1557
- this._screenResizeHandlerAttached = true;
1558
- }
1559
- }
1560
- _detachScreenResizeHandler() {
1561
- if (this._screenResizeHandlerAttached) {
1562
- window.removeEventListener("resize", this._screenResizeHandler);
1563
- this._screenResizeHandlerAttached = false; // prevent dialog from repositioning during resizing
1564
- }
1565
- }
1566
- _center() {
1567
- const height = window.innerHeight - this.offsetHeight, width = window.innerWidth - this.offsetWidth;
1568
- Object.assign(this.style, {
1569
- top: `${Math.round(height / 2)}px`,
1570
- left: `${Math.round(width / 2)}px`,
1571
- });
1572
- }
1573
- /**
1574
- * Event handlers
1575
- */
1576
- _onDragMouseDown(e) {
1577
- // allow dragging only on the header
1578
- if (!this._movable || !this.draggable || !Dialog_1._isHeader(e.target)) {
1579
- return;
1580
- }
1581
- const { top, left, } = this.getBoundingClientRect();
1582
- const { width, height, } = window.getComputedStyle(this);
1583
- Object.assign(this.style, {
1584
- top: `${top}px`,
1585
- left: `${left}px`,
1586
- width: `${Math.round(Number.parseFloat(width) * 100) / 100}px`,
1587
- height: `${Math.round(Number.parseFloat(height) * 100) / 100}px`,
1588
- });
1589
- this._x = e.clientX;
1590
- this._y = e.clientY;
1591
- this._draggedOrResized = true;
1592
- this._attachMouseDragHandlers();
1593
- }
1594
- _onDragMouseMove(e) {
1595
- e.preventDefault();
1596
- const { clientX, clientY } = e;
1597
- const calcX = this._x - clientX;
1598
- const calcY = this._y - clientY;
1599
- const { left, top, } = this.getBoundingClientRect();
1600
- Object.assign(this.style, {
1601
- left: `${Math.floor(left - calcX)}px`,
1602
- top: `${Math.floor(top - calcY)}px`,
1603
- });
1604
- this._x = clientX;
1605
- this._y = clientY;
1606
- }
1607
- _onDragMouseUp() {
1608
- delete this._x;
1609
- delete this._y;
1610
- this._detachMouseDragHandlers();
1611
- }
1612
- _onDragOrResizeKeyDown(e) {
1613
- if (!this._movable || !Dialog_1._isHeader(e.target)) {
1614
- return;
1615
- }
1616
- if (this.draggable && [webcomponentsBase.D, webcomponentsBase.P, webcomponentsBase.K, webcomponentsBase.c].some(key => key(e))) {
1617
- this._dragWithEvent(e);
1618
- return;
1619
- }
1620
- if (this.resizable && [webcomponentsBase.O, webcomponentsBase.u$1, webcomponentsBase.w, webcomponentsBase.T].some(key => key(e))) {
1621
- this._resizeWithEvent(e);
1622
- }
1623
- }
1624
- _dragWithEvent(e) {
1625
- const { top, left, width, height, } = this.getBoundingClientRect();
1626
- let newPos = 0;
1627
- let posDirection = "top";
1628
- switch (true) {
1629
- case webcomponentsBase.D(e):
1630
- newPos = top - STEP_SIZE;
1631
- posDirection = "top";
1632
- break;
1633
- case webcomponentsBase.P(e):
1634
- newPos = top + STEP_SIZE;
1635
- posDirection = "top";
1636
- break;
1637
- case webcomponentsBase.K(e):
1638
- newPos = left - STEP_SIZE;
1639
- posDirection = "left";
1640
- break;
1641
- case webcomponentsBase.c(e):
1642
- newPos = left + STEP_SIZE;
1643
- posDirection = "left";
1644
- break;
1645
- }
1646
- newPos = m$1(newPos, 0, posDirection === "left" ? window.innerWidth - width : window.innerHeight - height);
1647
- this.style[posDirection] = `${newPos}px`;
1648
- }
1649
- _resizeWithEvent(e) {
1650
- this._draggedOrResized = true;
1651
- this.addEventListener("ui5-before-close", this._revertSize, { once: true });
1652
- const { top, left } = this.getBoundingClientRect(), style = window.getComputedStyle(this), minWidth = Number.parseFloat(style.minWidth), maxWidth = window.innerWidth - left, maxHeight = window.innerHeight - top;
1653
- let width = Number.parseFloat(style.width), height = Number.parseFloat(style.height);
1654
- switch (true) {
1655
- case webcomponentsBase.O(e):
1656
- height -= STEP_SIZE;
1657
- break;
1658
- case webcomponentsBase.u$1(e):
1659
- height += STEP_SIZE;
1660
- break;
1661
- case webcomponentsBase.w(e):
1662
- width -= STEP_SIZE;
1663
- break;
1664
- case webcomponentsBase.T(e):
1665
- width += STEP_SIZE;
1666
- break;
1667
- }
1668
- width = m$1(width, minWidth, maxWidth);
1669
- height = m$1(height, this._minHeight, maxHeight);
1670
- Object.assign(this.style, {
1671
- width: `${width}px`,
1672
- height: `${height}px`,
1673
- });
1674
- }
1675
- _attachMouseDragHandlers() {
1676
- window.addEventListener("mousemove", this._dragMouseMoveHandler);
1677
- window.addEventListener("mouseup", this._dragMouseUpHandler);
1678
- }
1679
- _detachMouseDragHandlers() {
1680
- window.removeEventListener("mousemove", this._dragMouseMoveHandler);
1681
- window.removeEventListener("mouseup", this._dragMouseUpHandler);
1682
- }
1683
- _onResizeMouseDown(e) {
1684
- if (!this._movable || !this.resizable) {
1685
- return;
1686
- }
1687
- e.preventDefault();
1688
- const { top, left, } = this.getBoundingClientRect();
1689
- const { width, height, minWidth, } = window.getComputedStyle(this);
1690
- this._initialX = e.clientX;
1691
- this._initialY = e.clientY;
1692
- this._initialWidth = Number.parseFloat(width);
1693
- this._initialHeight = Number.parseFloat(height);
1694
- this._initialTop = top;
1695
- this._initialLeft = left;
1696
- this._minWidth = Number.parseFloat(minWidth);
1697
- this._cachedMinHeight = this._minHeight;
1698
- Object.assign(this.style, {
1699
- top: `${top}px`,
1700
- left: `${left}px`,
1701
- });
1702
- this._draggedOrResized = true;
1703
- this._attachMouseResizeHandlers();
1704
- }
1705
- _onResizeMouseMove(e) {
1706
- const { clientX, clientY } = e;
1707
- let newWidth, newLeft;
1708
- if (this._isRTL) {
1709
- newWidth = m$1(this._initialWidth - (clientX - this._initialX), this._minWidth, this._initialLeft + this._initialWidth);
1710
- newLeft = m$1(this._initialLeft + (clientX - this._initialX), 0, this._initialX + this._initialWidth - this._minWidth);
1711
- }
1712
- else {
1713
- newWidth = m$1(this._initialWidth + (clientX - this._initialX), this._minWidth, window.innerWidth - this._initialLeft);
1714
- }
1715
- const newHeight = m$1(this._initialHeight + (clientY - this._initialY), this._cachedMinHeight, window.innerHeight - this._initialTop);
1716
- Object.assign(this.style, {
1717
- height: `${newHeight}px`,
1718
- width: `${newWidth}px`,
1719
- left: newLeft ? `${newLeft}px` : undefined,
1720
- });
1721
- }
1722
- _onResizeMouseUp() {
1723
- delete this._initialX;
1724
- delete this._initialY;
1725
- delete this._initialWidth;
1726
- delete this._initialHeight;
1727
- delete this._initialTop;
1728
- delete this._initialLeft;
1729
- delete this._minWidth;
1730
- delete this._cachedMinHeight;
1731
- this._detachMouseResizeHandlers();
1732
- }
1733
- _handleDragStart(e) {
1734
- if (this.draggable) {
1735
- e.preventDefault();
1736
- }
1737
- }
1738
- _attachMouseResizeHandlers() {
1739
- window.addEventListener("mousemove", this._resizeMouseMoveHandler);
1740
- window.addEventListener("mouseup", this._resizeMouseUpHandler);
1741
- this.addEventListener("ui5-before-close", this._revertSize, { once: true });
1742
- }
1743
- _detachMouseResizeHandlers() {
1744
- window.removeEventListener("mousemove", this._resizeMouseMoveHandler);
1745
- window.removeEventListener("mouseup", this._resizeMouseUpHandler);
1746
- }
1747
- };
1748
- __decorate$4([
1749
- webcomponentsBase.s()
1750
- ], Dialog.prototype, "headerText", void 0);
1751
- __decorate$4([
1752
- webcomponentsBase.s({ type: Boolean })
1753
- ], Dialog.prototype, "stretch", void 0);
1754
- __decorate$4([
1755
- webcomponentsBase.s({ type: Boolean })
1756
- ], Dialog.prototype, "draggable", void 0);
1757
- __decorate$4([
1758
- webcomponentsBase.s({ type: Boolean })
1759
- ], Dialog.prototype, "resizable", void 0);
1760
- __decorate$4([
1761
- webcomponentsBase.s()
1762
- ], Dialog.prototype, "state", void 0);
1763
- __decorate$4([
1764
- webcomponentsBase.d()
1765
- ], Dialog.prototype, "header", void 0);
1766
- __decorate$4([
1767
- webcomponentsBase.d()
1768
- ], Dialog.prototype, "footer", void 0);
1769
- __decorate$4([
1770
- i18nDefaults.i("sap/ushell/gen/ui5/webcomponents")
1771
- ], Dialog, "i18nBundle", void 0);
1772
- Dialog = Dialog_1 = __decorate$4([
1773
- webcomponentsBase.m({
1774
- tag: "ui5-dialog",
1775
- template: DialogTemplate,
1776
- styles: [
1777
- Popup$1.styles,
1778
- PopupsCommonCss,
1779
- dialogCSS,
1780
- List.a(),
1781
- ],
1782
- })
1783
- ], Dialog);
1784
- Dialog.define();
1785
- var Dialog$1 = Dialog;
1786
-
1787
- function ResponsivePopoverTemplate() {
1788
- if (!this._isPhone) {
1789
- return PopoverTemplate.call(this);
1790
- }
1791
- return (i18nDefaults.jsxs(Dialog$1, { "root-element": true, accessibleName: this.accessibleName, accessibleNameRef: this.accessibleNameRef, 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 && i18nDefaults.jsx(i18nDefaults.Fragment, { children: this.header.length ?
1792
- i18nDefaults.jsx("slot", { slot: "header", name: "header" })
1793
- :
1794
- i18nDefaults.jsxs("div", { class: this.classes.header, slot: "header", children: [this.headerText &&
1795
- i18nDefaults.jsx(Title$1, { level: "H1", wrappingType: "None", class: "ui5-popup-header-text ui5-responsive-popover-header-text", children: this.headerText }), !this._hideCloseButton &&
1796
- i18nDefaults.jsx(Button.Button, { icon: information.decline, design: "Transparent", accessibleName: this._closeDialogAriaLabel, onClick: this._dialogCloseButtonClick })] }) }), i18nDefaults.jsx("slot", {}), i18nDefaults.jsx("slot", { slot: "footer", name: "footer" })] }));
1797
- }
1798
-
1799
- /**
1800
- * Popover placements.
1801
- * @public
1802
- */
1803
- var PopoverPlacement;
1804
- (function (PopoverPlacement) {
1805
- /**
1806
- * Popover will be placed at the start of the reference element.
1807
- * @public
1808
- */
1809
- PopoverPlacement["Start"] = "Start";
1810
- /**
1811
- * Popover will be placed at the end of the reference element.
1812
- * @public
1813
- */
1814
- PopoverPlacement["End"] = "End";
1815
- /**
1816
- * Popover will be placed at the top of the reference element.
1817
- * @public
1818
- */
1819
- PopoverPlacement["Top"] = "Top";
1820
- /**
1821
- * Popover will be placed at the bottom of the reference element.
1822
- * @public
1823
- */
1824
- PopoverPlacement["Bottom"] = "Bottom";
1825
- })(PopoverPlacement || (PopoverPlacement = {}));
1826
- var PopoverPlacement$1 = PopoverPlacement;
1827
-
1828
- /**
1829
- * Popover vertical align types.
1830
- * @public
1831
- */
1832
- var PopoverVerticalAlign;
1833
- (function (PopoverVerticalAlign) {
1834
- /**
1835
- * @public
1836
- */
1837
- PopoverVerticalAlign["Center"] = "Center";
1838
- /**
1839
- * Popover will be placed at the top of the reference control.
1840
- * @public
1841
- */
1842
- PopoverVerticalAlign["Top"] = "Top";
1843
- /**
1844
- * Popover will be placed at the bottom of the reference control.
1845
- * @public
1846
- */
1847
- PopoverVerticalAlign["Bottom"] = "Bottom";
1848
- /**
1849
- * Popover will be streched
1850
- * @public
1851
- */
1852
- PopoverVerticalAlign["Stretch"] = "Stretch";
1853
- })(PopoverVerticalAlign || (PopoverVerticalAlign = {}));
1854
- var PopoverVerticalAlign$1 = PopoverVerticalAlign;
1855
-
1856
- /**
1857
- * Popover horizontal align types.
1858
- * @public
1859
- */
1860
- var PopoverHorizontalAlign;
1861
- (function (PopoverHorizontalAlign) {
1862
- /**
1863
- * Popover is centered.
1864
- * @public
1865
- */
1866
- PopoverHorizontalAlign["Center"] = "Center";
1867
- /**
1868
- * Popover is aligned with the start of the target.
1869
- * @public
1870
- */
1871
- PopoverHorizontalAlign["Start"] = "Start";
1872
- /**
1873
- * Popover is aligned with the end of the target.
1874
- * @public
1875
- */
1876
- PopoverHorizontalAlign["End"] = "End";
1877
- /**
1878
- * Popover is stretched.
1879
- * @public
1880
- */
1881
- PopoverHorizontalAlign["Stretch"] = "Stretch";
1882
- })(PopoverHorizontalAlign || (PopoverHorizontalAlign = {}));
1883
- var PopoverHorizontalAlign$1 = PopoverHorizontalAlign;
1884
-
1885
- let updateInterval;
1886
- const intervalTimeout = 300;
1887
- const openedRegistry = [];
1888
- const repositionPopovers = () => {
1889
- openedRegistry.forEach(popover => {
1890
- popover.instance.reposition();
1891
- });
1892
- };
1893
- const closePopoversIfLostFocus = () => {
1894
- if (webcomponentsBase.t().tagName === "IFRAME") {
1895
- getRegistry().reverse().forEach(popup => popup.instance.closePopup(false, false, true));
1896
- }
1897
- };
1898
- const runUpdateInterval = () => {
1899
- updateInterval = setInterval(() => {
1900
- repositionPopovers();
1901
- closePopoversIfLostFocus();
1902
- }, intervalTimeout);
1903
- };
1904
- const stopUpdateInterval = () => {
1905
- clearInterval(updateInterval);
1906
- };
1907
- const attachGlobalScrollHandler = () => {
1908
- document.addEventListener("scroll", repositionPopovers, { capture: true });
1909
- };
1910
- const detachGlobalScrollHandler = () => {
1911
- document.removeEventListener("scroll", repositionPopovers, { capture: true });
1912
- };
1913
- const attachScrollHandler = (popover) => {
1914
- popover && popover.shadowRoot.addEventListener("scroll", repositionPopovers, { capture: true });
1915
- };
1916
- const detachScrollHandler = (popover) => {
1917
- popover && popover.shadowRoot.removeEventListener("scroll", repositionPopovers, { capture: true });
1918
- };
1919
- const attachGlobalClickHandler = () => {
1920
- document.addEventListener("mousedown", clickHandler, { capture: true });
1921
- };
1922
- const detachGlobalClickHandler = () => {
1923
- document.removeEventListener("mousedown", clickHandler, { capture: true });
1924
- };
1925
- const clickHandler = (event) => {
1926
- const openedPopups = getOpenedPopups();
1927
- if (openedPopups.length === 0) {
1928
- return;
1929
- }
1930
- const isTopPopupPopover = instanceOfPopover(openedPopups[openedPopups.length - 1].instance);
1931
- if (!isTopPopupPopover) {
1932
- return;
1933
- }
1934
- // loop all open popovers
1935
- for (let i = (openedPopups.length - 1); i !== -1; i--) {
1936
- const popup = openedPopups[i].instance;
1937
- // if popup is modal, opener is clicked, popup is dialog skip closing
1938
- if (popup.isModal || popup.isOpenerClicked(event)) {
1939
- return;
1940
- }
1941
- if (f(event, popup.getBoundingClientRect())) {
1942
- break;
1943
- }
1944
- popup.closePopup();
1945
- }
1946
- };
1947
- const addOpenedPopover = (instance) => {
1948
- const parentPopovers = getParentPopoversIfNested(instance);
1949
- addOpenedPopup(instance, parentPopovers);
1950
- openedRegistry.push({
1951
- instance,
1952
- parentPopovers,
1953
- });
1954
- attachScrollHandler(instance);
1955
- if (openedRegistry.length === 1) {
1956
- attachGlobalScrollHandler();
1957
- attachGlobalClickHandler();
1958
- runUpdateInterval();
1959
- }
1960
- };
1961
- const removeOpenedPopover = (instance) => {
1962
- const popoversToClose = [instance];
1963
- for (let i = 0; i < openedRegistry.length; i++) {
1964
- const indexOfCurrentInstance = openedRegistry[i].parentPopovers.indexOf(instance);
1965
- if (openedRegistry[i].parentPopovers.length > 0 && indexOfCurrentInstance > -1) {
1966
- popoversToClose.push(openedRegistry[i].instance);
1967
- }
1968
- }
1969
- for (let i = popoversToClose.length - 1; i >= 0; i--) {
1970
- for (let j = 0; j < openedRegistry.length; j++) {
1971
- let indexOfItemToRemove = -1;
1972
- if (popoversToClose[i] === openedRegistry[j].instance) {
1973
- indexOfItemToRemove = j;
1974
- }
1975
- if (indexOfItemToRemove >= 0) {
1976
- removeOpenedPopup(openedRegistry[indexOfItemToRemove].instance);
1977
- detachScrollHandler(openedRegistry[indexOfItemToRemove].instance);
1978
- const itemToClose = openedRegistry.splice(indexOfItemToRemove, 1);
1979
- itemToClose[0].instance.closePopup(false, true);
1980
- }
1981
- }
1982
- }
1983
- if (!openedRegistry.length) {
1984
- detachGlobalScrollHandler();
1985
- detachGlobalClickHandler();
1986
- stopUpdateInterval();
1987
- }
1988
- };
1989
- const getRegistry = () => {
1990
- return openedRegistry;
1991
- };
1992
- const getParentPopoversIfNested = (instance) => {
1993
- let currentElement = instance.parentNode;
1994
- const parentPopovers = [];
1995
- while (currentElement && currentElement.parentNode) {
1996
- for (let i = 0; i < openedRegistry.length; i++) {
1997
- if (currentElement === openedRegistry[i].instance) {
1998
- parentPopovers.push(currentElement);
1999
- }
2000
- }
2001
- currentElement = currentElement.parentNode;
2002
- }
2003
- return parentPopovers;
2004
- };
2005
-
2006
- Icons.p("sap/ushell/gen/ui5/webcomponents-theming", "sap_horizon", async () => i18nDefaults.defaultThemeBase);
2007
- Icons.p("sap/ushell/gen/ui5/webcomponents", "sap_horizon", async () => i18nDefaults.defaultTheme);
2008
- var PopoverCss = `:host{box-shadow:var(--_ui5-v2-11-0-rc-3_popover_box_shadow);background-color:var(--_ui5-v2-11-0-rc-3_popover_background);max-width:calc(100vw - (100vw - 100%) - 2 * var(--_ui5-v2-11-0-rc-3_popup_viewport_margin))}:host([hide-arrow]){box-shadow:var(--_ui5-v2-11-0-rc-3_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-11-0-rc-3_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-11-0-rc-3_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-11-0-rc-3_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-11-0-rc-3_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-11-0-rc-3_popover_background);box-shadow:var(--_ui5-v2-11-0-rc-3_popover_box_shadow);transform:rotate(-45deg)}:host([modal])::backdrop{background-color:var(--_ui5-v2-11-0-rc-3_popup_block_layer_background);opacity:var(--_ui5-v2-11-0-rc-3_popup_block_layer_opacity)}:host([modal]) .ui5-block-layer{display:block}
2009
- `;
2010
-
2011
- var __decorate$3 = (this && this.__decorate) || function (decorators, target, key, desc) {
2012
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
2013
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
2014
- 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;
2015
- return c > 3 && r && Object.defineProperty(target, key, r), r;
2016
- };
2017
- var Popover_1;
2018
- const ARROW_SIZE = 8;
2019
- /**
2020
- * @class
2021
- *
2022
- * ### Overview
2023
- *
2024
- * The `ui5-popover` component displays additional information for an object
2025
- * in a compact way and without leaving the page.
2026
- * The Popover can contain various UI elements, such as fields, tables, images, and charts.
2027
- * It can also include actions in the footer.
2028
- *
2029
- * ### Structure
2030
- *
2031
- * The popover has three main areas:
2032
- *
2033
- * - Header (optional)
2034
- * - Content
2035
- * - Footer (optional)
2036
- *
2037
- * **Note:** The `ui5-popover` is closed when the user clicks
2038
- * or taps outside the popover
2039
- * or selects an action within the popover. You can prevent this with the
2040
- * `modal` property.
2041
- *
2042
- * ### ES6 Module Import
2043
- *
2044
- * `import "sap/ushell/gen/ui5/webcomponents/dist/Popover.js";`
2045
- *
2046
- * @constructor
2047
- * @extends Popup
2048
- * @since 1.0.0-rc.6
2049
- * @public
2050
- * @csspart header - Used to style the header of the component
2051
- * @csspart content - Used to style the content of the component
2052
- * @csspart footer - Used to style the footer of the component
2053
- */
2054
- let Popover = Popover_1 = class Popover extends Popup$1 {
2055
- static get VIEWPORT_MARGIN() {
2056
- return 10; // px
2057
- }
2058
- constructor() {
2059
- super();
2060
- /**
2061
- * Determines on which side the component is placed at.
2062
- * @default "End"
2063
- * @public
2064
- */
2065
- this.placement = "End";
2066
- /**
2067
- * Determines the horizontal alignment of the component.
2068
- * @default "Center"
2069
- * @public
2070
- */
2071
- this.horizontalAlign = "Center";
2072
- /**
2073
- * Determines the vertical alignment of the component.
2074
- * @default "Center"
2075
- * @public
2076
- */
2077
- this.verticalAlign = "Center";
2078
- /**
2079
- * Defines whether the component should close when
2080
- * clicking/tapping outside of the popover.
2081
- * If enabled, it blocks any interaction with the background.
2082
- * @default false
2083
- * @public
2084
- */
2085
- this.modal = false;
2086
- /**
2087
- * Determines whether the component arrow is hidden.
2088
- * @default false
2089
- * @public
2090
- * @since 1.0.0-rc.15
2091
- */
2092
- this.hideArrow = false;
2093
- /**
2094
- * Determines if there is no enough space, the component can be placed
2095
- * over the target.
2096
- * @default false
2097
- * @public
2098
- */
2099
- this.allowTargetOverlap = false;
2100
- /**
2101
- * Sets the X translation of the arrow
2102
- * @private
2103
- */
2104
- this.arrowTranslateX = 0;
2105
- /**
2106
- * Sets the Y translation of the arrow
2107
- * @private
2108
- */
2109
- this.arrowTranslateY = 0;
2110
- /**
2111
- * Returns the calculated placement depending on the free space
2112
- * @private
2113
- */
2114
- this.actualPlacement = "End";
2115
- }
2116
- /**
2117
- * Defines the ID or DOM Reference of the element at which the popover is shown.
2118
- * 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.
2119
- * You can only set the `opener` attribute to a DOM Reference when using JavaScript.
2120
- * @public
2121
- * @default undefined
2122
- * @since 1.2.0
2123
- */
2124
- set opener(value) {
2125
- if (this._opener === value) {
2126
- return;
2127
- }
2128
- this._opener = value;
2129
- if (value && this.open) {
2130
- this.openPopup();
2131
- }
2132
- }
2133
- get opener() {
2134
- return this._opener;
2135
- }
2136
- async openPopup() {
2137
- if (this._opened) {
2138
- return;
2139
- }
2140
- const opener = this.getOpenerHTMLElement(this.opener);
2141
- if (!opener) {
2142
- return;
2143
- }
2144
- if (this.isOpenerOutsideViewport(opener.getBoundingClientRect())) {
2145
- await Icons.f$3();
2146
- this.open = false;
2147
- this.fireDecoratorEvent("close");
2148
- return;
2149
- }
2150
- this._openerRect = opener.getBoundingClientRect();
2151
- await super.openPopup();
2152
- }
2153
- isOpenerClicked(e) {
2154
- const target = e.target;
2155
- const opener = this.getOpenerHTMLElement(this.opener);
2156
- if (!opener) {
2157
- return false;
2158
- }
2159
- if (target === opener) {
2160
- return true;
2161
- }
2162
- if (this._isUI5AbstractElement(target) && target.getFocusDomRef() === opener) {
2163
- return true;
2164
- }
2165
- return e.composedPath().indexOf(opener) > -1;
2166
- }
2167
- /**
2168
- * Override for the _addOpenedPopup hook, which would otherwise just call addOpenedPopup(this)
2169
- * @private
2170
- */
2171
- _addOpenedPopup() {
2172
- addOpenedPopover(this);
2173
- }
2174
- /**
2175
- * Override for the _removeOpenedPopup hook, which would otherwise just call removeOpenedPopup(this)
2176
- * @private
2177
- */
2178
- _removeOpenedPopup() {
2179
- removeOpenedPopover(this);
2180
- }
2181
- getOpenerHTMLElement(opener) {
2182
- if (opener === undefined) {
2183
- return opener;
2184
- }
2185
- if (opener instanceof HTMLElement) {
2186
- return this._isUI5AbstractElement(opener) ? opener.getFocusDomRef() : opener;
2187
- }
2188
- let rootNode = this.getRootNode();
2189
- if (rootNode === this) {
2190
- rootNode = document;
2191
- }
2192
- let openerHTMLElement = rootNode.getElementById(opener);
2193
- if (rootNode instanceof ShadowRoot && !openerHTMLElement) {
2194
- openerHTMLElement = document.getElementById(opener);
2195
- }
2196
- if (openerHTMLElement) {
2197
- return this._isUI5AbstractElement(openerHTMLElement) ? openerHTMLElement.getFocusDomRef() : openerHTMLElement;
2198
- }
2199
- return openerHTMLElement;
2200
- }
2201
- shouldCloseDueToOverflow(placement, openerRect) {
2202
- const threshold = 32;
2203
- const limits = {
2204
- "Start": openerRect.right,
2205
- "End": openerRect.left,
2206
- "Top": openerRect.top,
2207
- "Bottom": openerRect.bottom,
2208
- };
2209
- const opener = this.getOpenerHTMLElement(this.opener);
2210
- const closedPopupParent = i(opener);
2211
- let overflowsBottom = false;
2212
- let overflowsTop = false;
2213
- if (closedPopupParent instanceof Popover_1) {
2214
- const contentRect = closedPopupParent.getBoundingClientRect();
2215
- overflowsBottom = openerRect.top > (contentRect.top + contentRect.height);
2216
- overflowsTop = (openerRect.top + openerRect.height) < contentRect.top;
2217
- }
2218
- return (limits[placement] < 0 || (limits[placement] + threshold > closedPopupParent.innerHeight)) || overflowsBottom || overflowsTop;
2219
- }
2220
- shouldCloseDueToNoOpener(openerRect) {
2221
- return openerRect.top === 0
2222
- && openerRect.bottom === 0
2223
- && openerRect.left === 0
2224
- && openerRect.right === 0;
2225
- }
2226
- isOpenerOutsideViewport(openerRect) {
2227
- return openerRect.bottom < 0
2228
- || openerRect.top > window.innerHeight
2229
- || openerRect.right < 0
2230
- || openerRect.left > window.innerWidth;
2231
- }
2232
- /**
2233
- * @override
2234
- */
2235
- _resize() {
2236
- super._resize();
2237
- if (this.open) {
2238
- this.reposition();
2239
- }
2240
- }
2241
- reposition() {
2242
- this._show();
2243
- }
2244
- async _show() {
2245
- super._show();
2246
- const opener = this.getOpenerHTMLElement(this.opener);
2247
- if (opener && webcomponentsBase.v(opener) && !opener.getDomRef()) {
2248
- return;
2249
- }
2250
- if (!this._opened) {
2251
- this._showOutsideViewport();
2252
- }
2253
- const popoverSize = this.getPopoverSize();
2254
- let placement;
2255
- if (popoverSize.width === 0 || popoverSize.height === 0) {
2256
- // size can not be determined properly at this point, popover will be shown with the next reposition
2257
- return;
2258
- }
2259
- if (this.open) {
2260
- // update opener rect if it was changed during the popover being opened
2261
- this._openerRect = opener.getBoundingClientRect();
2262
- }
2263
- if (this._oldPlacement && this.shouldCloseDueToNoOpener(this._openerRect) && this.isFocusWithin()) {
2264
- // reuse the old placement as the opener is not available,
2265
- // but keep the popover open as the focus is within
2266
- placement = this._oldPlacement;
2267
- }
2268
- else {
2269
- placement = this.calcPlacement(this._openerRect, popoverSize);
2270
- }
2271
- if (this._preventRepositionAndClose || this.isOpenerOutsideViewport(this._openerRect)) {
2272
- await this._waitForDomRef();
2273
- return this.closePopup();
2274
- }
2275
- this._oldPlacement = placement;
2276
- this.actualPlacement = placement.placement;
2277
- let left = m$1(this._left, Popover_1.VIEWPORT_MARGIN, document.documentElement.clientWidth - popoverSize.width - Popover_1.VIEWPORT_MARGIN);
2278
- if (this.actualPlacement === PopoverPlacement$1.End) {
2279
- left = Math.max(left, this._left);
2280
- }
2281
- let top = m$1(this._top, Popover_1.VIEWPORT_MARGIN, document.documentElement.clientHeight - popoverSize.height - Popover_1.VIEWPORT_MARGIN);
2282
- if (this.actualPlacement === PopoverPlacement$1.Bottom) {
2283
- top = Math.max(top, this._top);
2284
- }
2285
- this.arrowTranslateX = placement.arrow.x;
2286
- this.arrowTranslateY = placement.arrow.y;
2287
- top = this._adjustForIOSKeyboard(top);
2288
- Object.assign(this.style, {
2289
- top: `${top}px`,
2290
- left: `${left}px`,
2291
- });
2292
- if (this.horizontalAlign === PopoverHorizontalAlign$1.Stretch && this._width) {
2293
- this.style.width = this._width;
2294
- }
2295
- if (this.verticalAlign === PopoverVerticalAlign$1.Stretch && this._height) {
2296
- this.style.height = this._height;
2297
- }
2298
- }
2299
- /**
2300
- * Adjust the desired top position to compensate for shift of the screen
2301
- * caused by opened keyboard on iOS which affects all elements with position:fixed.
2302
- * @private
2303
- * @param top The target top in px.
2304
- * @returns The adjusted top in px.
2305
- */
2306
- _adjustForIOSKeyboard(top) {
2307
- if (!Icons.w$1()) {
2308
- return top;
2309
- }
2310
- const actualTop = Math.ceil(this.getBoundingClientRect().top);
2311
- return top + (Number.parseInt(this.style.top || "0") - actualTop);
2312
- }
2313
- getPopoverSize() {
2314
- const rect = this.getBoundingClientRect(), width = rect.width, height = rect.height;
2315
- return { width, height };
2316
- }
2317
- _showOutsideViewport() {
2318
- Object.assign(this.style, {
2319
- top: "-10000px",
2320
- left: "-10000px",
2321
- });
2322
- }
2323
- _isUI5AbstractElement(el) {
2324
- return webcomponentsBase.v(el) && el.isUI5AbstractElement;
2325
- }
2326
- get arrowDOM() {
2327
- return this.shadowRoot.querySelector(".ui5-popover-arrow");
2328
- }
2329
- /**
2330
- * @protected
2331
- */
2332
- focusOpener() {
2333
- this.getOpenerHTMLElement(this.opener)?.focus();
2334
- }
2335
- /**
2336
- * @private
2337
- */
2338
- calcPlacement(targetRect, popoverSize) {
2339
- let left = Popover_1.VIEWPORT_MARGIN;
2340
- let top = 0;
2341
- const allowTargetOverlap = this.allowTargetOverlap;
2342
- const clientWidth = document.documentElement.clientWidth;
2343
- const clientHeight = document.documentElement.clientHeight;
2344
- let maxHeight = clientHeight;
2345
- let maxWidth = clientWidth;
2346
- const placement = this.getActualPlacement(targetRect, popoverSize);
2347
- this._preventRepositionAndClose = this.shouldCloseDueToNoOpener(targetRect) || this.shouldCloseDueToOverflow(placement, targetRect);
2348
- const isVertical = placement === PopoverPlacement$1.Top
2349
- || placement === PopoverPlacement$1.Bottom;
2350
- if (this.horizontalAlign === PopoverHorizontalAlign$1.Stretch && isVertical) {
2351
- popoverSize.width = targetRect.width;
2352
- this._width = `${targetRect.width}px`;
2353
- }
2354
- else if (this.verticalAlign === PopoverVerticalAlign$1.Stretch && !isVertical) {
2355
- popoverSize.height = targetRect.height;
2356
- this._height = `${targetRect.height}px`;
2357
- }
2358
- const arrowOffset = this.hideArrow ? 0 : ARROW_SIZE;
2359
- // calc popover positions
2360
- switch (placement) {
2361
- case PopoverPlacement$1.Top:
2362
- left = this.getVerticalLeft(targetRect, popoverSize);
2363
- top = Math.max(targetRect.top - popoverSize.height - arrowOffset, 0);
2364
- if (!allowTargetOverlap) {
2365
- maxHeight = targetRect.top - arrowOffset;
2366
- }
2367
- break;
2368
- case PopoverPlacement$1.Bottom:
2369
- left = this.getVerticalLeft(targetRect, popoverSize);
2370
- top = targetRect.bottom + arrowOffset;
2371
- if (allowTargetOverlap) {
2372
- top = Math.max(Math.min(top, clientHeight - popoverSize.height), 0);
2373
- }
2374
- else {
2375
- maxHeight = clientHeight - targetRect.bottom - arrowOffset;
2376
- }
2377
- break;
2378
- case PopoverPlacement$1.Start:
2379
- left = Math.max(targetRect.left - popoverSize.width - arrowOffset, 0);
2380
- top = this.getHorizontalTop(targetRect, popoverSize);
2381
- if (!allowTargetOverlap) {
2382
- maxWidth = targetRect.left - arrowOffset;
2383
- }
2384
- break;
2385
- case PopoverPlacement$1.End:
2386
- left = targetRect.left + targetRect.width + arrowOffset;
2387
- top = this.getHorizontalTop(targetRect, popoverSize);
2388
- if (allowTargetOverlap) {
2389
- left = Math.max(Math.min(left, clientWidth - popoverSize.width), 0);
2390
- }
2391
- else {
2392
- maxWidth = clientWidth - targetRect.right - arrowOffset;
2393
- }
2394
- break;
2395
- }
2396
- // correct popover positions
2397
- if (isVertical) {
2398
- if (popoverSize.width > clientWidth || left < Popover_1.VIEWPORT_MARGIN) {
2399
- left = Popover_1.VIEWPORT_MARGIN;
2400
- }
2401
- else if (left + popoverSize.width > clientWidth - Popover_1.VIEWPORT_MARGIN) {
2402
- left = clientWidth - Popover_1.VIEWPORT_MARGIN - popoverSize.width;
2403
- }
2404
- }
2405
- else {
2406
- if (popoverSize.height > clientHeight || top < Popover_1.VIEWPORT_MARGIN) { // eslint-disable-line
2407
- top = Popover_1.VIEWPORT_MARGIN;
2408
- }
2409
- else if (top + popoverSize.height > clientHeight - Popover_1.VIEWPORT_MARGIN) {
2410
- top = clientHeight - Popover_1.VIEWPORT_MARGIN - popoverSize.height;
2411
- }
2412
- }
2413
- this._maxHeight = Math.round(maxHeight - Popover_1.VIEWPORT_MARGIN);
2414
- this._maxWidth = Math.round(maxWidth - Popover_1.VIEWPORT_MARGIN);
2415
- if (this._left === undefined || Math.abs(this._left - left) > 1.5) {
2416
- this._left = Math.round(left);
2417
- }
2418
- if (this._top === undefined || Math.abs(this._top - top) > 1.5) {
2419
- this._top = Math.round(top);
2420
- }
2421
- const borderRadius = Number.parseInt(window.getComputedStyle(this).getPropertyValue("border-radius"));
2422
- const arrowPos = this.getArrowPosition(targetRect, popoverSize, left, top, isVertical, borderRadius);
2423
- this._left += this.getRTLCorrectionLeft();
2424
- return {
2425
- arrow: arrowPos,
2426
- top: this._top,
2427
- left: this._left,
2428
- placement,
2429
- };
2430
- }
2431
- getRTLCorrectionLeft() {
2432
- return parseFloat(window.getComputedStyle(this).left) - this.getBoundingClientRect().left;
2433
- }
2434
- /**
2435
- * Calculates the position for the arrow.
2436
- * @private
2437
- * @param targetRect BoundingClientRect of the target element
2438
- * @param popoverSize Width and height of the popover
2439
- * @param left Left offset of the popover
2440
- * @param top Top offset of the popover
2441
- * @param isVertical If the popover is positioned vertically to the target element
2442
- * @param borderRadius Value of the border-radius property
2443
- * @returns Arrow's coordinates
2444
- */
2445
- getArrowPosition(targetRect, popoverSize, left, top, isVertical, borderRadius) {
2446
- const horizontalAlign = this._actualHorizontalAlign;
2447
- let arrowXCentered = horizontalAlign === PopoverHorizontalAlign$1.Center || horizontalAlign === PopoverHorizontalAlign$1.Stretch;
2448
- if (horizontalAlign === PopoverHorizontalAlign$1.End && left <= targetRect.left) {
2449
- arrowXCentered = true;
2450
- }
2451
- if (horizontalAlign === PopoverHorizontalAlign$1.Start && left + popoverSize.width >= targetRect.left + targetRect.width) {
2452
- arrowXCentered = true;
2453
- }
2454
- let arrowTranslateX = 0;
2455
- if (isVertical && arrowXCentered) {
2456
- arrowTranslateX = targetRect.left + targetRect.width / 2 - left - popoverSize.width / 2;
2457
- }
2458
- let arrowTranslateY = 0;
2459
- if (!isVertical) {
2460
- arrowTranslateY = targetRect.top + targetRect.height / 2 - top - popoverSize.height / 2;
2461
- }
2462
- // Restricts the arrow's translate value along each dimension,
2463
- // so that the arrow does not clip over the popover's rounded borders.
2464
- const safeRangeForArrowY = popoverSize.height / 2 - borderRadius - ARROW_SIZE / 2 - 2;
2465
- arrowTranslateY = m$1(arrowTranslateY, -safeRangeForArrowY, safeRangeForArrowY);
2466
- const safeRangeForArrowX = popoverSize.width / 2 - borderRadius - ARROW_SIZE / 2 - 2;
2467
- arrowTranslateX = m$1(arrowTranslateX, -safeRangeForArrowX, safeRangeForArrowX);
2468
- return {
2469
- x: Math.round(arrowTranslateX),
2470
- y: Math.round(arrowTranslateY),
2471
- };
2472
- }
2473
- /**
2474
- * Fallbacks to new placement, prioritizing `Left` and `Right` placements.
2475
- * @private
2476
- */
2477
- fallbackPlacement(clientWidth, clientHeight, targetRect, popoverSize) {
2478
- if (targetRect.left > popoverSize.width) {
2479
- return PopoverPlacement$1.Start;
2480
- }
2481
- if (clientWidth - targetRect.right > targetRect.left) {
2482
- return PopoverPlacement$1.End;
2483
- }
2484
- if (clientHeight - targetRect.bottom > popoverSize.height) {
2485
- return PopoverPlacement$1.Bottom;
2486
- }
2487
- if (clientHeight - targetRect.bottom < targetRect.top) {
2488
- return PopoverPlacement$1.Top;
2489
- }
2490
- }
2491
- getActualPlacement(targetRect, popoverSize) {
2492
- const placement = this.placement;
2493
- let actualPlacement = placement;
2494
- const clientWidth = document.documentElement.clientWidth;
2495
- const clientHeight = document.documentElement.clientHeight;
2496
- switch (placement) {
2497
- case PopoverPlacement$1.Top:
2498
- if (targetRect.top < popoverSize.height
2499
- && targetRect.top < clientHeight - targetRect.bottom) {
2500
- actualPlacement = PopoverPlacement$1.Bottom;
2501
- }
2502
- break;
2503
- case PopoverPlacement$1.Bottom:
2504
- if (clientHeight - targetRect.bottom < popoverSize.height
2505
- && clientHeight - targetRect.bottom < targetRect.top) {
2506
- actualPlacement = PopoverPlacement$1.Top;
2507
- }
2508
- break;
2509
- case PopoverPlacement$1.Start:
2510
- if (targetRect.left < popoverSize.width) {
2511
- actualPlacement = this.fallbackPlacement(clientWidth, clientHeight, targetRect, popoverSize) || placement;
2512
- }
2513
- break;
2514
- case PopoverPlacement$1.End:
2515
- if (clientWidth - targetRect.right < popoverSize.width) {
2516
- actualPlacement = this.fallbackPlacement(clientWidth, clientHeight, targetRect, popoverSize) || placement;
2517
- }
2518
- break;
2519
- }
2520
- return actualPlacement;
2521
- }
2522
- getVerticalLeft(targetRect, popoverSize) {
2523
- const horizontalAlign = this._actualHorizontalAlign;
2524
- let left = Popover_1.VIEWPORT_MARGIN;
2525
- switch (horizontalAlign) {
2526
- case PopoverHorizontalAlign$1.Center:
2527
- case PopoverHorizontalAlign$1.Stretch:
2528
- left = targetRect.left - (popoverSize.width - targetRect.width) / 2;
2529
- break;
2530
- case PopoverHorizontalAlign$1.Start:
2531
- left = targetRect.left;
2532
- break;
2533
- case PopoverHorizontalAlign$1.End:
2534
- left = targetRect.right - popoverSize.width;
2535
- break;
2536
- }
2537
- return left;
2538
- }
2539
- getHorizontalTop(targetRect, popoverSize) {
2540
- let top = 0;
2541
- switch (this.verticalAlign) {
2542
- case PopoverVerticalAlign$1.Center:
2543
- case PopoverVerticalAlign$1.Stretch:
2544
- top = targetRect.top - (popoverSize.height - targetRect.height) / 2;
2545
- break;
2546
- case PopoverVerticalAlign$1.Top:
2547
- top = targetRect.top;
2548
- break;
2549
- case PopoverVerticalAlign$1.Bottom:
2550
- top = targetRect.bottom - popoverSize.height;
2551
- break;
2552
- }
2553
- return top;
2554
- }
2555
- get isModal() {
2556
- return this.modal;
2557
- }
2558
- get _ariaLabelledBy() {
2559
- if (!this._ariaLabel && this._displayHeader) {
2560
- return "ui5-popup-header";
2561
- }
2562
- return undefined;
2563
- }
2564
- get styles() {
2565
- return {
2566
- ...super.styles,
2567
- root: {
2568
- "max-height": this._maxHeight ? `${this._maxHeight}px` : "",
2569
- "max-width": this._maxWidth ? `${this._maxWidth}px` : "",
2570
- },
2571
- arrow: {
2572
- transform: `translate(${this.arrowTranslateX}px, ${this.arrowTranslateY}px)`,
2573
- },
2574
- };
2575
- }
2576
- get classes() {
2577
- const allClasses = super.classes;
2578
- allClasses.root["ui5-popover-root"] = true;
2579
- return allClasses;
2580
- }
2581
- /**
2582
- * Hook for descendants to hide header.
2583
- */
2584
- get _displayHeader() {
2585
- return !!(this.header.length || this.headerText);
2586
- }
2587
- /**
2588
- * Hook for descendants to hide footer.
2589
- */
2590
- get _displayFooter() {
2591
- return true;
2592
- }
2593
- get _actualHorizontalAlign() {
2594
- if (this.effectiveDir === "rtl") {
2595
- if (this.horizontalAlign === PopoverHorizontalAlign$1.Start) {
2596
- return PopoverHorizontalAlign$1.End;
2597
- }
2598
- if (this.horizontalAlign === PopoverHorizontalAlign$1.End) {
2599
- return PopoverHorizontalAlign$1.Start;
2600
- }
2601
- }
2602
- return this.horizontalAlign;
2603
- }
2604
- };
2605
- __decorate$3([
2606
- webcomponentsBase.s()
2607
- ], Popover.prototype, "headerText", void 0);
2608
- __decorate$3([
2609
- webcomponentsBase.s()
2610
- ], Popover.prototype, "placement", void 0);
2611
- __decorate$3([
2612
- webcomponentsBase.s()
2613
- ], Popover.prototype, "horizontalAlign", void 0);
2614
- __decorate$3([
2615
- webcomponentsBase.s()
2616
- ], Popover.prototype, "verticalAlign", void 0);
2617
- __decorate$3([
2618
- webcomponentsBase.s({ type: Boolean })
2619
- ], Popover.prototype, "modal", void 0);
2620
- __decorate$3([
2621
- webcomponentsBase.s({ type: Boolean })
2622
- ], Popover.prototype, "hideArrow", void 0);
2623
- __decorate$3([
2624
- webcomponentsBase.s({ type: Boolean })
2625
- ], Popover.prototype, "allowTargetOverlap", void 0);
2626
- __decorate$3([
2627
- webcomponentsBase.s({ type: Number, noAttribute: true })
2628
- ], Popover.prototype, "arrowTranslateX", void 0);
2629
- __decorate$3([
2630
- webcomponentsBase.s({ type: Number, noAttribute: true })
2631
- ], Popover.prototype, "arrowTranslateY", void 0);
2632
- __decorate$3([
2633
- webcomponentsBase.s()
2634
- ], Popover.prototype, "actualPlacement", void 0);
2635
- __decorate$3([
2636
- webcomponentsBase.s({ type: Number, noAttribute: true })
2637
- ], Popover.prototype, "_maxHeight", void 0);
2638
- __decorate$3([
2639
- webcomponentsBase.s({ type: Number, noAttribute: true })
2640
- ], Popover.prototype, "_maxWidth", void 0);
2641
- __decorate$3([
2642
- webcomponentsBase.d({ type: HTMLElement })
2643
- ], Popover.prototype, "header", void 0);
2644
- __decorate$3([
2645
- webcomponentsBase.d({ type: HTMLElement })
2646
- ], Popover.prototype, "footer", void 0);
2647
- __decorate$3([
2648
- webcomponentsBase.s({ converter: e })
2649
- ], Popover.prototype, "opener", null);
2650
- Popover = Popover_1 = __decorate$3([
2651
- webcomponentsBase.m({
2652
- tag: "ui5-popover",
2653
- styles: [
2654
- Popup$1.styles,
2655
- PopupsCommonCss,
2656
- PopoverCss,
2657
- List.a(),
2658
- ],
2659
- template: PopoverTemplate,
2660
- })
2661
- ], Popover);
2662
- const instanceOfPopover = (object) => {
2663
- return "opener" in object;
2664
- };
2665
- Popover.define();
2666
- var Popover$1 = Popover;
2667
-
2668
- Icons.p("sap/ushell/gen/ui5/webcomponents-theming", "sap_horizon", async () => i18nDefaults.defaultThemeBase);
2669
- Icons.p("sap/ushell/gen/ui5/webcomponents", "sap_horizon", async () => i18nDefaults.defaultTheme);
2670
- var ResponsivePopoverCss = `:host{--_ui5-v2-11-0-rc-3_input_width: 100%;min-width:6.25rem;min-height:2rem}:host([on-phone]){display:contents}.ui5-responsive-popover-header{height:var(--_ui5-v2-11-0-rc-3-responsive_popover_header_height);display:flex;justify-content:var(--_ui5-v2-11-0-rc-3_popup_header_prop_header_text_alignment);align-items:center;width:100%}.ui5-responsive-popover-header-text{width:calc(100% - var(--_ui5-v2-11-0-rc-3_button_base_min_width))}.ui5-responsive-popover-header-no-title{justify-content:flex-end}
2671
- `;
2672
-
2673
- var __decorate$2 = (this && this.__decorate) || function (decorators, target, key, desc) {
2674
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
2675
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
2676
- 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;
2677
- return c > 3 && r && Object.defineProperty(target, key, r), r;
2678
- };
2679
- var ResponsivePopover_1;
2680
- /**
2681
- * @class
2682
- *
2683
- * ### Overview
2684
- * The `ui5-responsive-popover` acts as a Popover on desktop and tablet, while on phone it acts as a Dialog.
2685
- * The component improves tremendously the user experience on mobile.
2686
- *
2687
- * ### Usage
2688
- * Use it when you want to make sure that all the content is visible on any device.
2689
- *
2690
- * ### ES6 Module Import
2691
- *
2692
- * `import "sap/ushell/gen/ui5/webcomponents/dist/ResponsivePopover.js";`
2693
- * @constructor
2694
- * @extends Popover
2695
- * @since 1.0.0-rc.6
2696
- * @public
2697
- * @csspart header - Used to style the header of the component
2698
- * @csspart content - Used to style the content of the component
2699
- * @csspart footer - Used to style the footer of the component
2700
- */
2701
- let ResponsivePopover = ResponsivePopover_1 = class ResponsivePopover extends Popover$1 {
2702
- constructor() {
2703
- super();
2704
- /**
2705
- * Defines if only the content would be displayed (without header and footer) in the popover on Desktop.
2706
- * By default both the header and footer would be displayed.
2707
- * @private
2708
- */
2709
- this.contentOnlyOnDesktop = false;
2710
- /**
2711
- * Used internaly for controls which must not have header.
2712
- * @private
2713
- */
2714
- this._hideHeader = false;
2715
- /**
2716
- * Defines whether a close button will be rendered in the header of the component
2717
- * **Note:** If you are using the `header` slot, this property will have no effect
2718
- * @private
2719
- * @default false
2720
- * @since 1.0.0-rc.16
2721
- */
2722
- this._hideCloseButton = false;
2723
- }
2724
- async openPopup() {
2725
- if (!Icons.d$1()) {
2726
- await super.openPopup();
2727
- }
2728
- else if (this._dialog) {
2729
- this._dialog.open = true;
2730
- }
2731
- }
2732
- async _show() {
2733
- if (!Icons.d$1()) {
2734
- return super._show();
2735
- }
2736
- }
2737
- _dialogCloseButtonClick() {
2738
- this.closePopup();
2739
- }
2740
- /**
2741
- * Closes the popover/dialog.
2742
- * @override
2743
- */
2744
- closePopup(escPressed = false, preventRegistryUpdate = false, preventFocusRestore = false) {
2745
- if (!Icons.d$1()) {
2746
- super.closePopup(escPressed, preventRegistryUpdate, preventFocusRestore);
2747
- }
2748
- else {
2749
- this._dialog?.closePopup(escPressed, preventRegistryUpdate, preventFocusRestore);
2750
- }
2751
- }
2752
- toggle(opener) {
2753
- if (this.open) {
2754
- this.closePopup();
2755
- return;
2756
- }
2757
- this.opener = opener;
2758
- this.open = true;
2759
- }
2760
- get classes() {
2761
- const allClasses = super.classes;
2762
- allClasses.header = {
2763
- "ui5-responsive-popover-header": true,
2764
- "ui5-responsive-popover-header-no-title": !this.headerText,
2765
- };
2766
- return allClasses;
2767
- }
2768
- get _dialog() {
2769
- return this.shadowRoot.querySelector("[ui5-dialog]");
2770
- }
2771
- get contentDOM() {
2772
- return Icons.d$1() ? this._dialog.contentDOM : super.contentDOM;
2773
- }
2774
- get _isPhone() {
2775
- return Icons.d$1();
2776
- }
2777
- get _displayHeader() {
2778
- return (Icons.d$1() || !this.contentOnlyOnDesktop) && super._displayHeader;
2779
- }
2780
- get _displayFooter() {
2781
- return Icons.d$1() || !this.contentOnlyOnDesktop;
2782
- }
2783
- get _closeDialogAriaLabel() {
2784
- return ResponsivePopover_1.i18nBundle.getText(i18nDefaults.RESPONSIVE_POPOVER_CLOSE_DIALOG_BUTTON);
2785
- }
2786
- _beforeDialogOpen() {
2787
- this._opened = true;
2788
- this.open = true;
2789
- this.fireDecoratorEvent("before-open");
2790
- }
2791
- _afterDialogOpen() {
2792
- this.fireDecoratorEvent("open");
2793
- }
2794
- _beforeDialogClose(e) {
2795
- this.fireDecoratorEvent("before-close", e.detail);
2796
- }
2797
- _afterDialogClose() {
2798
- this._opened = false;
2799
- this.open = false;
2800
- this.fireDecoratorEvent("close");
2801
- }
2802
- get isModal() {
2803
- if (!Icons.d$1()) {
2804
- return super.isModal;
2805
- }
2806
- return this._dialog.isModal;
2807
- }
2808
- };
2809
- __decorate$2([
2810
- webcomponentsBase.s({ type: Boolean })
2811
- ], ResponsivePopover.prototype, "contentOnlyOnDesktop", void 0);
2812
- __decorate$2([
2813
- webcomponentsBase.s({ type: Boolean })
2814
- ], ResponsivePopover.prototype, "_hideHeader", void 0);
2815
- __decorate$2([
2816
- webcomponentsBase.s({ type: Boolean })
2817
- ], ResponsivePopover.prototype, "_hideCloseButton", void 0);
2818
- __decorate$2([
2819
- i18nDefaults.i("sap/ushell/gen/ui5/webcomponents")
2820
- ], ResponsivePopover, "i18nBundle", void 0);
2821
- ResponsivePopover = ResponsivePopover_1 = __decorate$2([
2822
- webcomponentsBase.m({
2823
- tag: "ui5-responsive-popover",
2824
- styles: [Popover$1.styles, ResponsivePopoverCss],
2825
- template: ResponsivePopoverTemplate,
2826
- })
2827
- ], ResponsivePopover);
2828
- ResponsivePopover.define();
2829
- var ResponsivePopover$1 = ResponsivePopover;
2830
-
2831
- class RadioButtonGroup {
2832
- static hasGroup(groupName) {
2833
- return this.groups.has(groupName);
2834
- }
2835
- static getGroup(groupName) {
2836
- return this.groups.get(groupName);
2837
- }
2838
- static getCheckedRadioFromGroup(groupName) {
2839
- return this.checkedRadios.get(groupName);
2840
- }
2841
- static removeGroup(groupName) {
2842
- this.checkedRadios.delete(groupName);
2843
- return this.groups.delete(groupName);
2844
- }
2845
- static addToGroup(radioBtn, groupName) {
2846
- if (this.hasGroup(groupName)) {
2847
- this.enforceSingleSelection(radioBtn, groupName);
2848
- if (this.getGroup(groupName)) {
2849
- this.getGroup(groupName).push(radioBtn);
2850
- }
2851
- }
2852
- else {
2853
- this.createGroup(radioBtn, groupName);
2854
- }
2855
- this.updateTabOrder(groupName);
2856
- }
2857
- static removeFromGroup(radioBtn, groupName) {
2858
- const group = this.getGroup(groupName);
2859
- if (!group) {
2860
- return;
2861
- }
2862
- const checkedRadio = this.getCheckedRadioFromGroup(groupName);
2863
- // Remove the radio button from the given group
2864
- group.forEach((_radioBtn, idx, arr) => {
2865
- if (radioBtn._id === _radioBtn._id) {
2866
- return arr.splice(idx, 1);
2867
- }
2868
- });
2869
- if (checkedRadio === radioBtn) {
2870
- this.checkedRadios.set(groupName, null);
2871
- }
2872
- // Remove the group if it is empty
2873
- if (!group.length) {
2874
- this.removeGroup(groupName);
2875
- }
2876
- this.updateTabOrder(groupName);
2877
- }
2878
- static createGroup(radioBtn, groupName) {
2879
- if (radioBtn.checked) {
2880
- this.checkedRadios.set(groupName, radioBtn);
2881
- }
2882
- this.groups.set(groupName, [radioBtn]);
2883
- }
2884
- static selectNextItem(item, groupName) {
2885
- const group = this.getGroup(groupName);
2886
- if (!group) {
2887
- return;
2888
- }
2889
- const groupLength = group.length, currentItemPosition = group.indexOf(item);
2890
- if (groupLength <= 1) {
2891
- return;
2892
- }
2893
- const nextItemToFocus = this._nextFocusable(currentItemPosition, group);
2894
- if (!nextItemToFocus) {
2895
- return;
2896
- }
2897
- this.updateSelectionInGroup(nextItemToFocus, groupName);
2898
- }
2899
- static updateFormValidity(groupName) {
2900
- const group = this.getGroup(groupName);
2901
- if (!group) {
2902
- return;
2903
- }
2904
- const hasRequired = group.some(r => r.required);
2905
- const hasChecked = group.some(r => r.checked);
2906
- group.forEach(r => {
2907
- r._groupChecked = hasChecked;
2908
- r._groupRequired = hasRequired;
2909
- });
2910
- }
2911
- static updateTabOrder(groupName) {
2912
- const group = this.getGroup(groupName);
2913
- if (!group) {
2914
- return;
2915
- }
2916
- const hasCheckedRadio = group.some(radioBtn => radioBtn.checked);
2917
- group.filter(radioBtn => !radioBtn.disabled).forEach((radioBtn, idx) => {
2918
- let activeElement = webcomponentsBase.t();
2919
- if (activeElement?.classList.contains("ui5-radio-root")) {
2920
- activeElement = activeElement.getRootNode();
2921
- if (activeElement instanceof ShadowRoot) {
2922
- activeElement = activeElement.host;
2923
- }
2924
- }
2925
- if (hasCheckedRadio) {
2926
- if (activeElement?.hasAttribute("ui5-radio-button") && activeElement.readonly) {
2927
- radioBtn._tabIndex = activeElement === radioBtn && radioBtn.readonly ? 0 : -1;
2928
- }
2929
- else {
2930
- radioBtn._tabIndex = radioBtn.checked ? 0 : -1;
2931
- }
2932
- }
2933
- else {
2934
- radioBtn._tabIndex = idx === 0 ? 0 : -1;
2935
- }
2936
- });
2937
- }
2938
- static selectPreviousItem(item, groupName) {
2939
- const group = this.getGroup(groupName);
2940
- if (!group) {
2941
- return;
2942
- }
2943
- const groupLength = group.length, currentItemPosition = group.indexOf(item);
2944
- if (groupLength <= 1) {
2945
- return;
2946
- }
2947
- const previousItemToFocus = this._previousFocusable(currentItemPosition, group);
2948
- if (!previousItemToFocus) {
2949
- return;
2950
- }
2951
- this.updateSelectionInGroup(previousItemToFocus, groupName);
2952
- }
2953
- static selectItem(item, groupName) {
2954
- this.updateSelectionInGroup(item, groupName);
2955
- this.updateTabOrder(groupName);
2956
- this.updateFormValidity(groupName);
2957
- }
2958
- static updateSelectionInGroup(radioBtnToSelect, groupName) {
2959
- const checkedRadio = this.getCheckedRadioFromGroup(groupName);
2960
- if (checkedRadio && !radioBtnToSelect.readonly) {
2961
- this._deselectRadio(checkedRadio);
2962
- this.checkedRadios.set(groupName, radioBtnToSelect);
2963
- }
2964
- // the focusable radio buttons are the enabled and the read-only ones, but only the enabled are selectable
2965
- if (radioBtnToSelect) {
2966
- radioBtnToSelect.focus();
2967
- if (!radioBtnToSelect.readonly) {
2968
- this._selectRadio(radioBtnToSelect);
2969
- }
2970
- else {
2971
- // Ensure updateTabOrder is called after focus
2972
- setTimeout(() => {
2973
- this.updateTabOrder(groupName);
2974
- }, 0);
2975
- }
2976
- }
2977
- }
2978
- static _deselectRadio(radioBtn) {
2979
- if (radioBtn) {
2980
- radioBtn.checked = false;
2981
- }
2982
- }
2983
- static _selectRadio(radioBtn) {
2984
- radioBtn.checked = true;
2985
- radioBtn._checked = true;
2986
- radioBtn.fireDecoratorEvent("change");
2987
- }
2988
- static _nextFocusable(pos, group) {
2989
- if (!group) {
2990
- return null;
2991
- }
2992
- const groupLength = group.length;
2993
- let nextRadioToFocus = null;
2994
- if (pos === groupLength - 1) {
2995
- if (group[0].disabled) {
2996
- return this._nextFocusable(1, group);
2997
- }
2998
- nextRadioToFocus = group[0];
2999
- }
3000
- else if (group[pos + 1].disabled) {
3001
- return this._nextFocusable(pos + 1, group);
3002
- }
3003
- else {
3004
- nextRadioToFocus = group[pos + 1];
3005
- }
3006
- return nextRadioToFocus;
3007
- }
3008
- static _previousFocusable(pos, group) {
3009
- const groupLength = group.length;
3010
- let previousRadioToFocus = null;
3011
- if (pos === 0) {
3012
- if (group[groupLength - 1].disabled) {
3013
- return this._previousFocusable(groupLength - 1, group);
3014
- }
3015
- previousRadioToFocus = group[groupLength - 1];
3016
- }
3017
- else if (group[pos - 1].disabled) {
3018
- return this._previousFocusable(pos - 1, group);
3019
- }
3020
- else {
3021
- previousRadioToFocus = group[pos - 1];
3022
- }
3023
- return previousRadioToFocus;
3024
- }
3025
- static enforceSingleSelection(radioBtn, groupName) {
3026
- const checkedRadio = this.getCheckedRadioFromGroup(groupName);
3027
- if (radioBtn.checked) {
3028
- if (!checkedRadio) {
3029
- this.checkedRadios.set(groupName, radioBtn);
3030
- }
3031
- else if (radioBtn !== checkedRadio) {
3032
- this._deselectRadio(checkedRadio);
3033
- this.checkedRadios.set(groupName, radioBtn);
3034
- }
3035
- }
3036
- else if (radioBtn === checkedRadio) {
3037
- this.checkedRadios.set(groupName, null);
3038
- }
3039
- this.updateTabOrder(groupName);
3040
- this.updateFormValidity(groupName);
3041
- }
3042
- static get groups() {
3043
- if (!this._groups) {
3044
- this._groups = new Map();
3045
- }
3046
- return this._groups;
3047
- }
3048
- static get checkedRadios() {
3049
- if (!this._checkedRadios) {
3050
- this._checkedRadios = new Map();
3051
- }
3052
- return this._checkedRadios;
3053
- }
3054
- }
3055
-
3056
- function RadioButtonTemplate() {
3057
- return (i18nDefaults.jsxs("div", { role: "radio", class: "ui5-radio-root", "aria-checked": this.checked, "aria-disabled": this.effectiveAriaDisabled, "aria-describedby": this.effectiveAriaDescribedBy, "aria-label": this.ariaLabelText, tabindex: this.effectiveTabIndex, onClick: this._onclick, onKeyDown: this._onkeydown, onKeyUp: this._onkeyup, onMouseDown: this._onmousedown, onMouseUp: this._onmouseup, onFocusOut: this._onfocusout, children: [i18nDefaults.jsxs("div", { class: {
3058
- "ui5-radio-inner": true,
3059
- "ui5-radio-inner--hoverable": !this.disabled && !this.readonly && Icons.f$1(),
3060
- }, children: [i18nDefaults.jsxs("svg", { class: "ui5-radio-svg", focusable: "false", "aria-hidden": "true", children: [i18nDefaults.jsx("circle", { part: "outer-ring", class: "ui5-radio-svg-outer", cx: "50%", cy: "50%", r: "50%" }), i18nDefaults.jsx("circle", { part: "inner-ring", class: "ui5-radio-svg-inner", cx: "50%", cy: "50%" })] }), i18nDefaults.jsx("input", { type: "radio", required: this.required, checked: this.checked, readonly: this.readonly, disabled: this.disabled, name: this.name, "data-sap-no-tab-ref": true })] }), this.text &&
3061
- i18nDefaults.jsx(Label, { id: `${this._id}-label`, class: "ui5-radio-label", for: this._id, wrappingType: this.wrappingType, children: this.text }), this.hasValueState &&
3062
- i18nDefaults.jsx("span", { id: `${this._id}-descr`, class: "ui5-hidden-text", children: this.valueStateText })] }));
3063
- }
3064
-
3065
- Icons.p("sap/ushell/gen/ui5/webcomponents-theming", "sap_horizon", async () => i18nDefaults.defaultThemeBase);
3066
- Icons.p("sap/ushell/gen/ui5/webcomponents", "sap_horizon", async () => i18nDefaults.defaultTheme);
3067
- var radioButtonCss = `.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(:not([hidden])){display:inline-block}:host{min-width:var(--_ui5-v2-11-0-rc-3_radio_button_min_width);max-width:100%;text-overflow:ellipsis;overflow:hidden;color:var(--_ui5-v2-11-0-rc-3_radio_button_color);border-radius:var(--_ui5-v2-11-0-rc-3_radio_button_border_radius)}:host(:not([disabled])) .ui5-radio-root{cursor:pointer}:host([checked]){color:var(--_ui5-v2-11-0-rc-3_radio_button_checked_fill)}:host([checked]) .ui5-radio-svg-inner{fill:var(--_ui5-v2-11-0-rc-3_radio_button_inner_ring_color)}:host([checked]) .ui5-radio-svg-outer{stroke:var(--_ui5-v2-11-0-rc-3_radio_button_outer_ring_color)}:host([disabled]) .ui5-radio-root{color:var(--_ui5-v2-11-0-rc-3_radio_button_color);opacity:var(--sapContent_DisabledOpacity)}:host([disabled][checked]) .ui5-radio-svg-outer{stroke:var(--_ui5-v2-11-0-rc-3_radio_button_color)}:host(:not([disabled])[desktop]) .ui5-radio-root:focus:before,:host(:not([disabled])) .ui5-radio-root:focus-visible:before{content:"";display:var(--_ui5-v2-11-0-rc-3_radio_button_focus_outline);position:absolute;inset:var(--_ui5-v2-11-0-rc-3_radio_button_focus_dist);pointer-events:none;border:var(--_ui5-v2-11-0-rc-3_radio_button_border_width) var(--sapContent_FocusStyle) var(--sapContent_FocusColor);border-radius:var(--_ui5-v2-11-0-rc-3_radio_button_border_radius)}:host(:not([value-state="Negative"]):not([value-state="Critical"]):not([value-state="Positive"]):not([value-state="Information"])) .ui5-radio-root:hover .ui5-radio-inner--hoverable .ui5-radio-svg-outer{stroke:var(--_ui5-v2-11-0-rc-3_radio_button_outer_ring_hover_color)}:host(:not([value-state="Negative"]):not([value-state="Critical"]):not([value-state="Positive"]):not([value-state="Information"])[checked]) .ui5-radio-root:hover .ui5-radio-inner--hoverable .ui5-radio-svg-outer{stroke:var(--_ui5-v2-11-0-rc-3_radio_button_outer_ring_checked_hover_color)}.ui5-radio-root:hover .ui5-radio-inner--hoverable .ui5-radio-svg-outer,:host([checked]) .ui5-radio-root:hover .ui5-radio-inner--hoverable .ui5-radio-svg-outer{fill:var(--_ui5-v2-11-0-rc-3_radio_button_hover_fill)}:host([active][checked]:not([value-state]):not([disabled]):not([readonly])) .ui5-radio-svg-outer{stroke:var(--_ui5-v2-11-0-rc-3_radio_button_outer_ring_checked_hover_color)}:host([active]:not([checked]):not([value-state]):not([disabled]):not([readonly])) .ui5-radio-svg-outer{stroke:var(--_ui5-v2-11-0-rc-3_radio_button_outer_ring_active_color)}:host([text]) .ui5-radio-root{padding-inline-end:var(--_ui5-v2-11-0-rc-3_radio_button_border_width)}:host([text][desktop]) .ui5-radio-root:focus:before,:host([text]) .ui5-radio-root:focus-visible:before{inset-inline-end:0px}:host([text]) .ui5-radio-inner{padding:var(--_ui5-v2-11-0-rc-3_radio_button_outer_ring_padding_with_label)}:host([checked][readonly]) .ui5-radio-svg-inner{fill:var(--_ui5-v2-11-0-rc-3_radio_button_read_only_inner_ring_color)}:host([readonly]) .ui5-radio-root .ui5-radio-svg-outer{fill:var(--sapField_ReadOnly_Background);stroke:var(--sapField_ReadOnly_BorderColor);stroke-dasharray:var(--_ui5-v2-11-0-rc-3_radio_button_read_only_border_type);stroke-width:var(--_ui5-v2-11-0-rc-3_radio_button_read_only_border_width)}:host([value-state="Negative"]) .ui5-radio-svg-outer,:host([value-state="Critical"]) .ui5-radio-svg-outer{stroke-width:var(--sapField_InvalidBorderWidth)}:host([value-state="Information"]) .ui5-radio-svg-outer{stroke-width:var(--_ui5-v2-11-0-rc-3_radio_button_information_border_width)}:host([value-state="Negative"][checked]) .ui5-radio-svg-inner{fill:var(--_ui5-v2-11-0-rc-3_radio_button_checked_error_fill)}:host([value-state="Negative"]) .ui5-radio-svg-outer,:host([value-state="Negative"]) .ui5-radio-root:hover .ui5-radio-inner.ui5-radio-inner--hoverable:hover .ui5-radio-svg-outer{stroke:var(--sapField_InvalidColor);fill:var(--sapField_InvalidBackground)}:host([value-state="Negative"]) .ui5-radio-root:hover .ui5-radio-inner.ui5-radio-inner--hoverable .ui5-radio-svg-outer{fill:var(--_ui5-v2-11-0-rc-3_radio_button_hover_fill_error)}:host([value-state="Critical"][checked]) .ui5-radio-svg-inner{fill:var(--_ui5-v2-11-0-rc-3_radio_button_checked_warning_fill)}:host([value-state="Critical"]) .ui5-radio-svg-outer,:host([value-state="Critical"]) .ui5-radio-root:hover .ui5-radio-inner.ui5-radio-inner--hoverable:hover .ui5-radio-svg-outer{stroke:var(--sapField_WarningColor);fill:var(--sapField_WarningBackground)}:host([value-state="Critical"]) .ui5-radio-root:hover .ui5-radio-inner.ui5-radio-inner--hoverable .ui5-radio-svg-outer{fill:var(--_ui5-v2-11-0-rc-3_radio_button_hover_fill_warning)}:host([value-state="Positive"][checked]) .ui5-radio-svg-inner{fill:var(--_ui5-v2-11-0-rc-3_radio_button_checked_success_fill)}:host([value-state="Positive"]) .ui5-radio-svg-outer,:host([value-state="Positive"]) .ui5-radio-root:hover .ui5-radio-inner.ui5-radio-inner--hoverable:hover .ui5-radio-svg-outer{stroke:var(--sapField_SuccessColor);fill:var(--sapField_SuccessBackground)}:host([value-state="Positive"]) .ui5-radio-root:hover .ui5-radio-inner.ui5-radio-inner--hoverable .ui5-radio-svg-outer{fill:var(--_ui5-v2-11-0-rc-3_radio_button_hover_fill_success)}:host([value-state="Information"][checked]) .ui5-radio-svg-inner{fill:var(--_ui5-v2-11-0-rc-3_radio_button_checked_information_fill)}:host([value-state="Information"]) .ui5-radio-svg-outer,:host([value-state="Information"]) .ui5-radio-root:hover .ui5-radio-inner.ui5-radio-inner--hoverable:hover .ui5-radio-svg-outer{stroke:var(--sapField_InformationColor);fill:var(--sapField_InformationBackground)}:host([value-state="Information"]) .ui5-radio-root:hover .ui5-radio-inner.ui5-radio-inner--hoverable .ui5-radio-svg-outer{fill:var(--_ui5-v2-11-0-rc-3_radio_button_hover_fill_information)}:host([value-state="Negative"]) .ui5-radio-root,:host([value-state="Critical"]) .ui5-radio-root,:host([value-state="Information"]) .ui5-radio-root{stroke-dasharray:var(--_ui5-v2-11-0-rc-3_radio_button_warning_error_border_dash)}.ui5-radio-root{height:auto;position:relative;display:inline-flex;flex-wrap:nowrap;outline:none;max-width:100%;box-sizing:border-box;border:var(--_ui5-v2-11-0-rc-3_radio_button_border);border-radius:var(--_ui5-v2-11-0-rc-3_radio_button_border_radius)}.ui5-radio-inner{display:flex;align-items:center;padding:var(--_ui5-v2-11-0-rc-3_radio_button_outer_ring_padding);flex-shrink:0;height:var(--_ui5-v2-11-0-rc-3_radio_button_inner_size);font-size:1rem;pointer-events:none;vertical-align:top}.ui5-radio-inner{outline:none}.ui5-radio-inner input{-webkit-appearance:none;visibility:hidden;width:0;left:0;position:absolute;font-size:inherit;margin:0}[ui5-label].ui5-radio-label{display:flex;align-items:center;padding-inline-end:var(--_ui5-v2-11-0-rc-3_radio_button_label_offset);padding-block:var(--_ui5-v2-11-0-rc-3_radio_button_label_side_padding);vertical-align:top;max-width:100%;pointer-events:none;color:var(--_ui5-v2-11-0-rc-3_radio_button_label_color);overflow-wrap:break-word}:host([wrapping-type="None"][text]) .ui5-radio-root{height:var(--_ui5-v2-11-0-rc-3_radio_button_height)}:host([wrapping-type="None"][text]) [ui5-label].ui5-radio-label{text-overflow:ellipsis;overflow:hidden}.ui5-radio-svg{height:var(--_ui5-v2-11-0-rc-3_radio_button_svg_size);width:var(--_ui5-v2-11-0-rc-3_radio_button_svg_size);overflow:visible;pointer-events:none}.ui5-radio-svg-outer{fill:var(--_ui5-v2-11-0-rc-3_radio_button_outer_ring_bg);stroke:currentColor;stroke-width:var(--_ui5-v2-11-0-rc-3_radio_button_outer_ring_width)}.ui5-radio-svg-inner{fill:none;r:var(--_ui5-v2-11-0-rc-3_radio_button_inner_ring_radius)}.ui5-radio-svg-outer,.ui5-radio-svg-inner{flex-shrink:0}:host(.ui5-li-singlesel-radiobtn) .ui5-radio-root .ui5-radio-inner .ui5-radio-svg-outer{fill:var(--sapList_Background)}
3068
- `;
3069
-
3070
- var __decorate$1 = (this && this.__decorate) || function (decorators, target, key, desc) {
3071
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3072
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
3073
- 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;
3074
- return c > 3 && r && Object.defineProperty(target, key, r), r;
3075
- };
3076
- var RadioButton_1;
3077
- let isGlobalHandlerAttached$1 = false;
3078
- let activeRadio;
3079
- /**
3080
- * @class
3081
- *
3082
- * ### Overview
3083
- *
3084
- * The `ui5-radio-button` component enables users to select a single option from a set of options.
3085
- * When a `ui5-radio-button` is selected by the user, the
3086
- * `change` event is fired.
3087
- * When a `ui5-radio-button` that is within a group is selected, the one
3088
- * that was previously selected gets automatically deselected. You can group radio buttons by using the `name` property.
3089
- *
3090
- * **Note:** If `ui5-radio-button` is not part of a group, it can be selected once, but can not be deselected back.
3091
- *
3092
- * ### Keyboard Handling
3093
- *
3094
- * Once the `ui5-radio-button` is on focus, it might be selected by pressing the Space and Enter keys.
3095
- *
3096
- * The Arrow Down/Arrow Up and Arrow Left/Arrow Right keys can be used to change selection between next/previous radio buttons in one group,
3097
- * while TAB and SHIFT + TAB can be used to enter or leave the radio button group.
3098
- *
3099
- * **Note:** On entering radio button group, the focus goes to the currently selected radio button.
3100
- *
3101
- * ### ES6 Module Import
3102
- *
3103
- * `import "sap/ushell/gen/ui5/webcomponents/dist/RadioButton";`
3104
- * @constructor
3105
- * @extends UI5Element
3106
- * @public
3107
- * @csspart outer-ring - Used to style the outer ring of the `ui5-radio-button`.
3108
- * @csspart inner-ring - Used to style the inner ring of the `ui5-radio-button`.
3109
- */
3110
- let RadioButton = RadioButton_1 = class RadioButton extends webcomponentsBase.b {
3111
- get formValidityMessage() {
3112
- return RadioButton_1.i18nBundle.getText(i18nDefaults.FORM_SELECTABLE_REQUIRED2);
3113
- }
3114
- get formValidity() {
3115
- return { valueMissing: this._groupRequired && !this._groupChecked };
3116
- }
3117
- async formElementAnchor() {
3118
- return this.getFocusDomRefAsync();
3119
- }
3120
- get formFormattedValue() {
3121
- return this.checked ? (this.value || "on") : null;
3122
- }
3123
- constructor() {
3124
- super();
3125
- /**
3126
- * Defines whether the component is disabled.
3127
- *
3128
- * **Note:** A disabled component is completely noninteractive.
3129
- * @default false
3130
- * @public
3131
- */
3132
- this.disabled = false;
3133
- /**
3134
- * Defines whether the component is read-only.
3135
- *
3136
- * **Note:** A read-only component isn't editable or selectable.
3137
- * However, because it's focusable, it still provides visual feedback upon user interaction.
3138
- * @default false
3139
- * @public
3140
- */
3141
- this.readonly = false;
3142
- /**
3143
- * Defines whether the component is required.
3144
- * @default false
3145
- * @public
3146
- * @since 1.9.0
3147
- */
3148
- this.required = false;
3149
- /**
3150
- * Defines whether the component is checked or not.
3151
- *
3152
- * **Note:** The property value can be changed with user interaction,
3153
- * either by clicking/tapping on the component,
3154
- * or by using the Space or Enter key.
3155
- *
3156
- * **Note:** Only enabled radio buttons can be checked.
3157
- * Read-only radio buttons are not selectable, and therefore are always unchecked.
3158
- * @default false
3159
- * @formEvents change
3160
- * @formProperty
3161
- * @public
3162
- * @since 1.0.0-rc.15
3163
- */
3164
- this.checked = false;
3165
- /**
3166
- * Defines the value state of the component.
3167
- * @default "None"
3168
- * @public
3169
- */
3170
- this.valueState = "None";
3171
- /**
3172
- * Defines the form value of the component.
3173
- * When a form with a radio button group is submitted, the group's value
3174
- * will be the value of the currently selected radio button.
3175
- * @default ""
3176
- * @public
3177
- */
3178
- this.value = "";
3179
- /**
3180
- * Defines whether the component text wraps when there is not enough space.
3181
- *
3182
- * **Note:** for option "Normal" the text will wrap and the words will not be broken based on hyphenation.
3183
- * @default "Normal"
3184
- * @public
3185
- */
3186
- this.wrappingType = "Normal";
3187
- /**
3188
- * Defines the active state (pressed or not) of the component.
3189
- * @default false
3190
- * @private
3191
- */
3192
- this.active = false;
3193
- /**
3194
- * Defines if the component is selected in specific group
3195
- * @default false
3196
- * @private
3197
- */
3198
- this._groupChecked = false;
3199
- this._groupRequired = false;
3200
- this._name = "";
3201
- this._checked = false;
3202
- this._deactivate = () => {
3203
- if (activeRadio) {
3204
- activeRadio.active = false;
3205
- }
3206
- };
3207
- if (!isGlobalHandlerAttached$1) {
3208
- document.addEventListener("mouseup", this._deactivate);
3209
- isGlobalHandlerAttached$1 = true;
3210
- }
3211
- }
3212
- onAfterRendering() {
3213
- this.syncGroup();
3214
- }
3215
- onEnterDOM() {
3216
- if (Icons.f$1()) {
3217
- this.setAttribute("desktop", "");
3218
- }
3219
- }
3220
- onExitDOM() {
3221
- this.syncGroup(true);
3222
- }
3223
- syncGroup(forceRemove) {
3224
- const oldGroup = this._name;
3225
- const currentGroup = this.name;
3226
- const oldChecked = this._checked;
3227
- const currentChecked = this.checked;
3228
- if (forceRemove) {
3229
- RadioButtonGroup.removeFromGroup(this, oldGroup);
3230
- }
3231
- if (currentGroup !== oldGroup) {
3232
- if (oldGroup) {
3233
- // remove the control from the previous group
3234
- RadioButtonGroup.removeFromGroup(this, oldGroup);
3235
- }
3236
- if (currentGroup) {
3237
- // add the control to the existing group
3238
- RadioButtonGroup.addToGroup(this, currentGroup);
3239
- }
3240
- }
3241
- else if (currentGroup && this.isConnected) {
3242
- RadioButtonGroup.enforceSingleSelection(this, currentGroup);
3243
- }
3244
- if (this.name && currentChecked !== oldChecked) {
3245
- RadioButtonGroup.updateTabOrder(this.name);
3246
- }
3247
- this._name = this.name || "";
3248
- this._checked = this.checked;
3249
- }
3250
- _onclick() {
3251
- return this.toggle();
3252
- }
3253
- _handleDown(e) {
3254
- const currentGroup = this.name;
3255
- if (!currentGroup) {
3256
- return;
3257
- }
3258
- e.preventDefault();
3259
- RadioButtonGroup.selectNextItem(this, currentGroup);
3260
- }
3261
- _handleUp(e) {
3262
- const currentGroup = this.name;
3263
- if (!currentGroup) {
3264
- return;
3265
- }
3266
- e.preventDefault();
3267
- RadioButtonGroup.selectPreviousItem(this, currentGroup);
3268
- }
3269
- _onkeydown(e) {
3270
- if (webcomponentsBase.i(e)) {
3271
- this.active = true;
3272
- return e.preventDefault();
3273
- }
3274
- if (webcomponentsBase.b$1(e)) {
3275
- this.active = true;
3276
- return this.toggle();
3277
- }
3278
- const isRTL = this.effectiveDir === "rtl";
3279
- if (webcomponentsBase.P(e) || (!isRTL && webcomponentsBase.c(e)) || (isRTL && webcomponentsBase.K(e))) {
3280
- this._handleDown(e);
3281
- }
3282
- if (webcomponentsBase.D(e) || (!isRTL && webcomponentsBase.K(e)) || (isRTL && webcomponentsBase.c(e))) {
3283
- this._handleUp(e);
3284
- }
3285
- }
3286
- _onkeyup(e) {
3287
- if (webcomponentsBase.i(e)) {
3288
- this.toggle();
3289
- }
3290
- this.active = false;
3291
- }
3292
- _onmousedown() {
3293
- this.active = true;
3294
- activeRadio = this; // eslint-disable-line
3295
- }
3296
- _onmouseup() {
3297
- this.active = false;
3298
- }
3299
- _onfocusout() {
3300
- this.active = false;
3301
- }
3302
- toggle() {
3303
- if (!this.canToggle()) {
3304
- return this;
3305
- }
3306
- if (!this.name) {
3307
- this.checked = !this.checked;
3308
- this.fireDecoratorEvent("change");
3309
- return this;
3310
- }
3311
- RadioButtonGroup.selectItem(this, this.name);
3312
- return this;
3313
- }
3314
- canToggle() {
3315
- return !(this.disabled || this.readonly || this.checked);
3316
- }
3317
- get effectiveAriaDisabled() {
3318
- return (this.disabled || this.readonly) ? true : undefined;
3319
- }
3320
- get ariaLabelText() {
3321
- return [toLowercaseEnumValue.A(this), this.text].filter(Boolean).join(" ");
3322
- }
3323
- get effectiveAriaDescribedBy() {
3324
- return this.hasValueState ? `${this._id}-descr` : undefined;
3325
- }
3326
- get hasValueState() {
3327
- return this.valueState !== information.o.None;
3328
- }
3329
- get valueStateText() {
3330
- switch (this.valueState) {
3331
- case information.o.Negative:
3332
- return RadioButton_1.i18nBundle.getText(i18nDefaults.VALUE_STATE_ERROR);
3333
- case information.o.Critical:
3334
- return RadioButton_1.i18nBundle.getText(i18nDefaults.VALUE_STATE_WARNING);
3335
- case information.o.Positive:
3336
- return RadioButton_1.i18nBundle.getText(i18nDefaults.VALUE_STATE_SUCCESS);
3337
- case information.o.Information:
3338
- return RadioButton_1.i18nBundle.getText(i18nDefaults.VALUE_STATE_INFORMATION);
3339
- default:
3340
- return "";
3341
- }
3342
- }
3343
- get effectiveTabIndex() {
3344
- const tabindex = this.getAttribute("tabindex");
3345
- if (this.disabled) {
3346
- return -1;
3347
- }
3348
- if (this.name) {
3349
- return this._tabIndex;
3350
- }
3351
- return tabindex ? parseInt(tabindex) : 0;
3352
- }
3353
- };
3354
- __decorate$1([
3355
- webcomponentsBase.s({ type: Boolean })
3356
- ], RadioButton.prototype, "disabled", void 0);
3357
- __decorate$1([
3358
- webcomponentsBase.s({ type: Boolean })
3359
- ], RadioButton.prototype, "readonly", void 0);
3360
- __decorate$1([
3361
- webcomponentsBase.s({ type: Boolean })
3362
- ], RadioButton.prototype, "required", void 0);
3363
- __decorate$1([
3364
- webcomponentsBase.s({ type: Boolean })
3365
- ], RadioButton.prototype, "checked", void 0);
3366
- __decorate$1([
3367
- webcomponentsBase.s()
3368
- ], RadioButton.prototype, "text", void 0);
3369
- __decorate$1([
3370
- webcomponentsBase.s()
3371
- ], RadioButton.prototype, "valueState", void 0);
3372
- __decorate$1([
3373
- webcomponentsBase.s()
3374
- ], RadioButton.prototype, "name", void 0);
3375
- __decorate$1([
3376
- webcomponentsBase.s()
3377
- ], RadioButton.prototype, "value", void 0);
3378
- __decorate$1([
3379
- webcomponentsBase.s()
3380
- ], RadioButton.prototype, "wrappingType", void 0);
3381
- __decorate$1([
3382
- webcomponentsBase.s()
3383
- ], RadioButton.prototype, "accessibleName", void 0);
3384
- __decorate$1([
3385
- webcomponentsBase.s()
3386
- ], RadioButton.prototype, "accessibleNameRef", void 0);
3387
- __decorate$1([
3388
- webcomponentsBase.s({ type: Number })
3389
- ], RadioButton.prototype, "_tabIndex", void 0);
3390
- __decorate$1([
3391
- webcomponentsBase.s({ type: Boolean })
3392
- ], RadioButton.prototype, "active", void 0);
3393
- __decorate$1([
3394
- webcomponentsBase.s({ type: Boolean, noAttribute: true })
3395
- ], RadioButton.prototype, "_groupChecked", void 0);
3396
- __decorate$1([
3397
- webcomponentsBase.s({ type: Boolean, noAttribute: true })
3398
- ], RadioButton.prototype, "_groupRequired", void 0);
3399
- __decorate$1([
3400
- i18nDefaults.i("sap/ushell/gen/ui5/webcomponents")
3401
- ], RadioButton, "i18nBundle", void 0);
3402
- RadioButton = RadioButton_1 = __decorate$1([
3403
- webcomponentsBase.m({
3404
- tag: "ui5-radio-button",
3405
- languageAware: true,
3406
- formAssociated: true,
3407
- renderer: i18nDefaults.y,
3408
- template: RadioButtonTemplate,
3409
- styles: radioButtonCss,
3410
- })
3411
- /**
3412
- * Fired when the component checked state changes.
3413
- * @public
3414
- * @since 1.0.0-rc.15
3415
- */
3416
- ,
3417
- eventStrict.l("change", {
3418
- bubbles: true,
3419
- })
3420
- ], RadioButton);
3421
- RadioButton.define();
3422
- var RadioButton$1 = RadioButton;
3423
-
3424
- Icons.p("sap/ushell/gen/ui5/webcomponents-theming", "sap_horizon", async () => i18nDefaults.defaultThemeBase);
3425
- Icons.p("sap/ushell/gen/ui5/webcomponents", "sap_horizon", async () => i18nDefaults.defaultTheme);
3426
- var checkboxCss = `.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{-webkit-tap-highlight-color:rgba(0,0,0,0)}:host(:not([hidden])){display:inline-block}:host([required]){vertical-align:middle}:host{overflow:hidden;max-width:100%;outline:none;border-radius:var(--_ui5-v2-11-0-rc-3_checkbox_border_radius);transition:var(--_ui5-v2-11-0-rc-3_checkbox_transition);cursor:pointer;user-select:none;-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none}:host([disabled]){cursor:default}:host([disabled]) .ui5-checkbox-root{opacity:var(--_ui5-v2-11-0-rc-3_checkbox_disabled_opacity)}:host([disabled]) .ui5-checkbox-inner{border-color:var(--_ui5-v2-11-0-rc-3_checkbox_inner_disabled_border_color)}:host([disabled]) .ui5-checkbox-label{color:var(--_ui5-v2-11-0-rc-3_checkbox_disabled_label_color)}:host([readonly]:not([value-state="Critical"]):not([value-state="Negative"])) .ui5-checkbox-inner{background:var(--sapField_ReadOnly_Background);border:var(--_ui5-v2-11-0-rc-3_checkbox_inner_readonly_border);color:var(--sapField_TextColor)}:host(:not([wrapping-type="None"])[text]) .ui5-checkbox-root{min-height:auto;box-sizing:border-box;align-items:flex-start;padding-top:var(--_ui5-v2-11-0-rc-3_checkbox_root_side_padding);padding-bottom:var(--_ui5-v2-11-0-rc-3_checkbox_root_side_padding)}:host(:not([wrapping-type="None"])[text]) .ui5-checkbox-root .ui5-checkbox-label{overflow-wrap:break-word;align-self:center}:host([desktop][text]:not([wrapping-type="None"])) .ui5-checkbox-root:focus:before,.ui5-checkbox-root[text]:focus-visible:before{inset-block:var(--_ui5-v2-11-0-rc-3_checkbox_wrapped_focus_inset_block)}:host([value-state="Negative"]) .ui5-checkbox-inner,:host([value-state="Negative"]) .ui5-checkbox--hoverable:hover .ui5-checkbox-inner{background:var(--sapField_InvalidBackground);border:var(--_ui5-v2-11-0-rc-3_checkbox_inner_error_border);color:var(--sapField_InvalidColor)}:host([value-state="Negative"]) .ui5-checkbox--hoverable:hover .ui5-checkbox-inner{background:var(--_ui5-v2-11-0-rc-3_checkbox_inner_error_background_hover)}:host([value-state="Critical"]) .ui5-checkbox-inner,:host([value-state="Critical"]) .ui5-checkbox--hoverable:hover .ui5-checkbox-inner{background:var(--sapField_WarningBackground);border:var(--_ui5-v2-11-0-rc-3_checkbox_inner_warning_border);color:var(--_ui5-v2-11-0-rc-3_checkbox_inner_warning_color)}:host([value-state="Critical"]) .ui5-checkbox--hoverable:hover .ui5-checkbox-inner{background:var(--_ui5-v2-11-0-rc-3_checkbox_inner_warning_background_hover)}:host([value-state="Information"]) .ui5-checkbox-inner,:host([value-state="Information"]) .ui5-checkbox--hoverable:hover .ui5-checkbox-inner{background:var(--sapField_InformationBackground);border:var(--_ui5-v2-11-0-rc-3_checkbox_inner_information_border);color:var(--_ui5-v2-11-0-rc-3_checkbox_inner_information_color)}:host([value-state="Information"]) .ui5-checkbox--hoverable:hover .ui5-checkbox-inner{background:var(--_ui5-v2-11-0-rc-3_checkbox_inner_information_background_hover)}:host([value-state="Positive"]) .ui5-checkbox-inner,:host([value-state="Positive"]) .ui5-checkbox--hoverable:hover .ui5-checkbox-inner{background:var(--sapField_SuccessBackground);border:var(--_ui5-v2-11-0-rc-3_checkbox_inner_success_border);color:var(--sapField_SuccessColor)}:host([value-state="Positive"]) .ui5-checkbox--hoverable:hover .ui5-checkbox-inner{background:var(--_ui5-v2-11-0-rc-3_checkbox_inner_success_background_hover)}:host([value-state="Critical"]) .ui5-checkbox-icon,:host([value-state="Critical"][indeterminate]) .ui5-checkbox-inner:after{color:var(--_ui5-v2-11-0-rc-3_checkbox_checkmark_warning_color)}.ui5-checkbox-root{position:relative;display:inline-flex;align-items:center;max-width:100%;min-height:var(--_ui5-v2-11-0-rc-3_checkbox_width_height);min-width:var(--_ui5-v2-11-0-rc-3_checkbox_width_height);padding:0 var(--_ui5-v2-11-0-rc-3_checkbox_wrapper_padding);outline:none;transition:var(--_ui5-v2-11-0-rc-3_checkbox_transition);border:var(--_ui5-v2-11-0-rc-3_checkbox_default_focus_border);border-radius:var(--_ui5-v2-11-0-rc-3_checkbox_border_radius);box-sizing:border-box}:host([desktop]) .ui5-checkbox-root:focus:before,.ui5-checkbox-root:focus-visible:before{display:var(--_ui5-v2-11-0-rc-3_checkbox_focus_outline_display);content:"";position:absolute;inset-inline:var(--_ui5-v2-11-0-rc-3_checkbox_focus_position);inset-block:var(--_ui5-v2-11-0-rc-3_checkbox_focus_position);border:var(--_ui5-v2-11-0-rc-3_checkbox_focus_outline);border-radius:var(--_ui5-v2-11-0-rc-3_checkbox_focus_border_radius)}:host([text]) .ui5-checkbox-root{padding-inline-end:var(--_ui5-v2-11-0-rc-3_checkbox_right_focus_distance)}:host([text]) .ui5-checkbox-root:focus:before,:host([text]) .ui5-checkbox-root:focus-visible:before{inset-inline-end:0}:host(:hover:not([disabled])){background:var(--_ui5-v2-11-0-rc-3_checkbox_outer_hover_background)}.ui5-checkbox--hoverable .ui5-checkbox-label:hover{color:var(--_ui5-v2-11-0-rc-3_checkbox_label_color)}:host(:not([active]):not([checked]):not([value-state])) .ui5-checkbox--hoverable:hover .ui5-checkbox-inner,:host(:not([active]):not([checked])[value-state="None"]) .ui5-checkbox--hoverable:hover .ui5-checkbox-inner{background:var(--_ui5-v2-11-0-rc-3_checkbox_hover_background);border-color:var(--_ui5-v2-11-0-rc-3_checkbox_inner_hover_border_color)}:host(:not([active])[checked]:not([value-state])) .ui5-checkbox--hoverable:hover .ui5-checkbox-inner,:host(:not([active])[checked][value-state="None"]) .ui5-checkbox--hoverable:hover .ui5-checkbox-inner{background:var(--_ui5-v2-11-0-rc-3_checkbox_hover_background);border-color:var(--_ui5-v2-11-0-rc-3_checkbox_inner_hover_checked_border_color)}:host([checked]:not([value-state])) .ui5-checkbox-inner,:host([checked][value-state="None"]) .ui5-checkbox-inner{border-color:var(--_ui5-v2-11-0-rc-3_checkbox_inner_selected_border_color)}:host([active]:not([checked]):not([value-state]):not([disabled])) .ui5-checkbox-inner,:host([active]:not([checked])[value-state="None"]:not([disabled])) .ui5-checkbox-inner{border-color:var(--_ui5-v2-11-0-rc-3_checkbox_inner_active_border_color);background-color:var(--_ui5-v2-11-0-rc-3_checkbox_active_background)}:host([active][checked]:not([value-state]):not([disabled])) .ui5-checkbox-inner,:host([active][checked][value-state="None"]:not([disabled])) .ui5-checkbox-inner{border-color:var(--_ui5-v2-11-0-rc-3_checkbox_inner_selected_border_color);background-color:var(--_ui5-v2-11-0-rc-3_checkbox_active_background)}.ui5-checkbox-inner{min-width:var(--_ui5-v2-11-0-rc-3_checkbox_inner_width_height);max-width:var(--_ui5-v2-11-0-rc-3_checkbox_inner_width_height);height:var(--_ui5-v2-11-0-rc-3_checkbox_inner_width_height);max-height:var(--_ui5-v2-11-0-rc-3_checkbox_inner_width_height);border:var(--_ui5-v2-11-0-rc-3_checkbox_inner_border);border-radius:var(--_ui5-v2-11-0-rc-3_checkbox_inner_border_radius);background:var(--_ui5-v2-11-0-rc-3_checkbox_inner_background);color:var(--_ui5-v2-11-0-rc-3_checkbox_checkmark_color);box-sizing:border-box;position:relative;cursor:inherit}:host([indeterminate][checked]) .ui5-checkbox-inner:after{content:"";background-color:currentColor;position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:var(--_ui5-v2-11-0-rc-3_checkbox_partially_icon_size);height:var(--_ui5-v2-11-0-rc-3_checkbox_partially_icon_size)}:host input{-webkit-appearance:none;visibility:hidden;width:0;left:0;position:absolute;font-size:inherit}.ui5-checkbox-root .ui5-checkbox-label{margin-inline-start:var(--_ui5-v2-11-0-rc-3_checkbox_label_offset);cursor:inherit;text-overflow:ellipsis;overflow:hidden;pointer-events:none;color:var(--_ui5-v2-11-0-rc-3_checkbox_label_color)}.ui5-checkbox-icon{width:var(--_ui5-v2-11-0-rc-3_checkbox_icon_size);height:var(--_ui5-v2-11-0-rc-3_checkbox_icon_size);color:currentColor;cursor:inherit;position:absolute;left:50%;top:50%;transform:translate(-50%,-50%)}:host([display-only]){cursor:default}:host([display-only]) .ui5-checkbox-display-only-icon-inner [ui5-icon]{color:var(--sapTextColor)}:host([display-only]) .ui5-checkbox-display-only-icon-inner{min-width:var(--_ui5-v2-11-0-rc-3_checkbox_inner_width_height);max-width:var(--_ui5-v2-11-0-rc-3_checkbox_inner_width_height);height:var(--_ui5-v2-11-0-rc-3_checkbox_inner_width_height);max-height:var(--_ui5-v2-11-0-rc-3_checkbox_inner_width_height);display:flex;align-items:center;justify-content:center}
3427
- `;
3428
-
3429
- const name$7 = "accept";
3430
- const pathData$7 = "M455.8 94q9 9 3 19l-222 326q-4 8-12 9t-14-5l-151-167q-5-5-4.5-11t5.5-11l25-25q12-12 23 0l96 96q5 5 13 4.5t12-8.5l175-249q4-7 11.5-8t13.5 4z";
3431
- const ltr$7 = true;
3432
- const collection$7 = "SAP-icons-v4";
3433
- const packageName$7 = "sap/ushell/gen/ui5/webcomponents-icons";
3434
-
3435
- Icons.f(name$7, { pathData: pathData$7, ltr: ltr$7, collection: collection$7, packageName: packageName$7 });
3436
-
3437
- const name$6 = "accept";
3438
- const pathData$6 = "M187 416q-12 0-20-9L71 299q-7-7-7-17 0-11 7.5-18.5T90 256q12 0 19 9l77 87 217-247q8-9 19-9t18.5 7.5T448 122q0 10-6 16L206 407q-7 9-19 9z";
3439
- const ltr$6 = true;
3440
- const collection$6 = "SAP-icons-v5";
3441
- const packageName$6 = "sap/ushell/gen/ui5/webcomponents-icons";
3442
-
3443
- Icons.f(name$6, { pathData: pathData$6, ltr: ltr$6, collection: collection$6, packageName: packageName$6 });
3444
-
3445
- var accept = "accept";
3446
-
3447
- const name$5 = "complete";
3448
- const pathData$5 = "M431.958 320h32v128q0 14-9.5 23t-22.5 9h-384q-14 0-23-9t-9-23V64q0-13 9-22.5t23-9.5h128v32h-128v384h384V320zm60-295q7 7 2 16l-185 272q-3 6-10 7t-12-4l-125-139q-9-9 0-18l21-21q10-10 19 0l80 80q5 5 11.5 4t9.5-8l146-207q3-6 9.5-7t11.5 4z";
3449
- const ltr$5 = true;
3450
- const collection$5 = "SAP-icons-v4";
3451
- const packageName$5 = "sap/ushell/gen/ui5/webcomponents-icons";
3452
-
3453
- Icons.f(name$5, { pathData: pathData$5, ltr: ltr$5, collection: collection$5, packageName: packageName$5 });
3454
-
3455
- const name$4 = "complete";
3456
- const pathData$4 = "M438 224q11 0 18.5 7.5T464 250v140q0 38-26 64t-64 26H106q-38 0-64-26t-26-64V122q0-38 26-64t64-26h237q11 0 18 7.5t7 18.5-7 18-18 7H106q-16 0-27.5 11.5T67 122v268q0 16 11.5 27.5T106 429h268q16 0 27.5-11.5T413 390V250q0-11 7-18.5t18-7.5zm32-192q11 0 18.5 7.5T496 58q0 10-7 17L257 312q-6 8-18 8-10 0-18-8l-70-71q-7-7-7-18t7.5-18 18.5-7 18 7l51 53L452 40q8-8 18-8z";
3457
- const ltr$4 = true;
3458
- const collection$4 = "SAP-icons-v5";
3459
- const packageName$4 = "sap/ushell/gen/ui5/webcomponents-icons";
3460
-
3461
- Icons.f(name$4, { pathData: pathData$4, ltr: ltr$4, collection: collection$4, packageName: packageName$4 });
3462
-
3463
- var complete = "complete";
3464
-
3465
- const name$3 = "border";
3466
- const pathData$3 = "M448 32q13 0 22.5 9t9.5 23v384q0 14-9.5 23t-22.5 9H64q-14 0-23-9t-9-23V64q0-14 9-23t23-9h384zm0 32H64v384h384V64z";
3467
- const ltr$3 = false;
3468
- const collection$3 = "SAP-icons-v4";
3469
- const packageName$3 = "sap/ushell/gen/ui5/webcomponents-icons";
3470
-
3471
- Icons.f(name$3, { pathData: pathData$3, ltr: ltr$3, collection: collection$3, packageName: packageName$3 });
3472
-
3473
- const name$2 = "border";
3474
- const pathData$2 = "M390 480H122q-38 0-64-26t-26-64V122q0-38 26-64t64-26h268q38 0 64 26t26 64v268q0 38-26 64t-64 26zM122 83q-17 0-28 11t-11 28v268q0 17 11 28t28 11h268q17 0 28-11t11-28V122q0-17-11-28t-28-11H122z";
3475
- const ltr$2 = false;
3476
- const collection$2 = "SAP-icons-v5";
3477
- const packageName$2 = "sap/ushell/gen/ui5/webcomponents-icons";
3478
-
3479
- Icons.f(name$2, { pathData: pathData$2, ltr: ltr$2, collection: collection$2, packageName: packageName$2 });
3480
-
3481
- var border = "border";
3482
-
3483
- const name$1 = "tri-state";
3484
- const pathData$1 = "M448 32q13 0 22.5 9.5T480 64v384q0 14-9.5 23t-22.5 9H64q-14 0-23-9t-9-23V64q0-13 9-22.5T64 32h384zm0 32H64v384h384V64zM160 345V169q0-8 8-8h176q8 0 8 8v176q0 8-8 8H168q-8 0-8-8z";
3485
- const ltr$1 = false;
3486
- const collection$1 = "SAP-icons-v4";
3487
- const packageName$1 = "sap/ushell/gen/ui5/webcomponents-icons";
3488
-
3489
- Icons.f(name$1, { pathData: pathData$1, ltr: ltr$1, collection: collection$1, packageName: packageName$1 });
3490
-
3491
- const name = "tri-state";
3492
- const pathData = "M390 32q38 0 64 26t26 64v268q0 38-26 64t-64 26H122q-38 0-64-26t-26-64V122q0-38 26-64t64-26h268zm39 90q0-17-11-28t-28-11H122q-17 0-28 11t-11 28v268q0 17 11 28t28 11h268q17 0 28-11t11-28V122zm-77 38v192H160V160h192z";
3493
- const ltr = false;
3494
- const collection = "SAP-icons-v5";
3495
- const packageName = "sap/ushell/gen/ui5/webcomponents-icons";
3496
-
3497
- Icons.f(name, { pathData, ltr, collection, packageName });
3498
-
3499
- var triState = "tri-state";
3500
-
3501
- function CheckBoxTemplate() {
3502
- return (i18nDefaults.jsxs("div", { class: {
3503
- "ui5-checkbox-root": true,
3504
- "ui5-checkbox--hoverable": !this.disabled && !this.readonly && Icons.f$1(),
3505
- }, role: "checkbox", part: "root", "aria-checked": this.effectiveAriaChecked, "aria-readonly": this.ariaReadonly, "aria-disabled": this.effectiveAriaDisabled, "aria-label": this.ariaLabelText, "aria-labelledby": this.ariaLabelledBy, "aria-describedby": this.ariaDescribedBy, "aria-required": this.required, tabindex: this.effectiveTabIndex, onMouseDown: this._onmousedown, onMouseUp: this._onmouseup, onKeyDown: this._onkeydown, onKeyUp: this._onkeyup, onClick: this._onclick, onFocusOut: this._onfocusout, children: [this.isDisplayOnly ?
3506
- i18nDefaults.jsx("div", { class: "ui5-checkbox-display-only-icon-inner", children: i18nDefaults.jsx(Icon.Icon, { "aria-hidden": "true", name: displayOnlyIcon.call(this), class: "ui5-checkbox-display-only-icon", part: "icon" }) })
3507
- :
3508
- i18nDefaults.jsx("div", { id: `${this._id}-CbBg`, class: "ui5-checkbox-inner", children: this.isCompletelyChecked &&
3509
- i18nDefaults.jsx(Icon.Icon, { "aria-hidden": "true", name: accept, class: "ui5-checkbox-icon", part: "icon" }) }), i18nDefaults.jsx("input", { id: `${this._id}-CB`, type: "checkbox", checked: this.checked, readonly: this.readonly, disabled: this.disabled, tabindex: -1, "aria-hidden": "true", "data-sap-no-tab-ref": true }), this.text &&
3510
- i18nDefaults.jsx(Label, { id: `${this._id}-label`, part: "label", class: "ui5-checkbox-label", wrappingType: this.wrappingType, required: this.required, children: this.text }), this.hasValueState &&
3511
- i18nDefaults.jsx("span", { id: `${this._id}-descr`, class: "ui5-hidden-text", children: this.valueStateText })] }));
3512
- }
3513
- function displayOnlyIcon() {
3514
- if (this.isCompletelyChecked) {
3515
- return complete;
3516
- }
3517
- if (this.checked && this.indeterminate) {
3518
- return triState;
3519
- }
3520
- return border;
3521
- }
3522
-
3523
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3524
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3525
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
3526
- 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;
3527
- return c > 3 && r && Object.defineProperty(target, key, r), r;
3528
- };
3529
- var CheckBox_1;
3530
- let isGlobalHandlerAttached = false;
3531
- let activeCb;
3532
- /**
3533
- * @class
3534
- *
3535
- * ### Overview
3536
- *
3537
- * Allows the user to set a binary value, such as true/false or yes/no for an item.
3538
- *
3539
- * The `ui5-checkbox` component consists of a box and a label that describes its purpose.
3540
- * If it's checked, an indicator is displayed inside the box.
3541
- * To check/uncheck the `ui5-checkbox`, the user has to click or tap the square
3542
- * box or its label.
3543
- *
3544
- * The `ui5-checkbox` component only has 2 states - checked and unchecked.
3545
- * Clicking or tapping toggles the `ui5-checkbox` between checked and unchecked state.
3546
- *
3547
- * ### Usage
3548
- *
3549
- * You can define the checkbox text with via the `text` property. If the text exceeds the available width, it is truncated by default.
3550
- * In case you prefer text to truncate, set the `wrappingType` property to "None".
3551
- * The touchable area for toggling the `ui5-checkbox` ends where the text ends.
3552
- *
3553
- * You can disable the `ui5-checkbox` by setting the `disabled` property to
3554
- * `true`,
3555
- * or use the `ui5-checkbox` in read-only mode by setting the `readonly`
3556
- * property to `true`.
3557
- *
3558
- * ### Keyboard Handling
3559
- *
3560
- * The user can use the following keyboard shortcuts to toggle the checked state of the `ui5-checkbox`.
3561
- *
3562
- * - [Space],[Enter] - Toggles between different states: checked, not checked.
3563
- *
3564
- * ### ES6 Module Import
3565
- *
3566
- * `import "sap/ushell/gen/ui5/webcomponents/dist/CheckBox.js";`
3567
- * @constructor
3568
- * @extends UI5Element
3569
- * @public
3570
- * @csspart root - Used to style the outermost wrapper of the `ui5-checkbox`
3571
- * @csspart label - Used to style the label of the `ui5-checkbox`
3572
- * @csspart icon - Used to style the icon of the `ui5-checkbox`
3573
- */
3574
- let CheckBox = CheckBox_1 = class CheckBox extends webcomponentsBase.b {
3575
- get formValidityMessage() {
3576
- return CheckBox_1.i18nBundle.getText(i18nDefaults.FORM_CHECKABLE_REQUIRED);
3577
- }
3578
- get formValidity() {
3579
- return { valueMissing: this.required && !this.checked };
3580
- }
3581
- async formElementAnchor() {
3582
- return this.getFocusDomRefAsync();
3583
- }
3584
- get formFormattedValue() {
3585
- return this.checked ? "on" : null;
3586
- }
3587
- constructor() {
3588
- super();
3589
- /**
3590
- * Defines whether the component is disabled.
3591
- *
3592
- * **Note:** A disabled component is completely noninteractive.
3593
- * @default false
3594
- * @public
3595
- */
3596
- this.disabled = false;
3597
- /**
3598
- * Defines whether the component is read-only.
3599
- *
3600
- * **Note:** A read-only component is not editable,
3601
- * but still provides visual feedback upon user interaction.
3602
- * @default false
3603
- * @public
3604
- */
3605
- this.readonly = false;
3606
- /**
3607
- * Determines whether the `ui5-checkbox` is in display only state.
3608
- *
3609
- * When set to `true`, the `ui5-checkbox` is not interactive, not editable, not focusable
3610
- * and not in the tab chain. This setting is used for forms in review mode.
3611
- *
3612
- * **Note:** When the property `disabled` is set to `true` this property has no effect.
3613
- * @since 1.22.0
3614
- * @public
3615
- * @default false
3616
- */
3617
- this.displayOnly = false;
3618
- /**
3619
- * Defines whether the component is required.
3620
- *
3621
- * **Note:** We advise against using the text property of the checkbox when there is a
3622
- * label associated with it to avoid having two required asterisks.
3623
- * @default false
3624
- * @public
3625
- * @since 1.3.0
3626
- */
3627
- this.required = false;
3628
- /**
3629
- * Defines whether the component is displayed as partially checked.
3630
- *
3631
- * **Note:** The indeterminate state can be set only programmatically and can’t be achieved by user
3632
- * interaction and the resulting visual state depends on the values of the `indeterminate`
3633
- * and `checked` properties:
3634
- *
3635
- * - If the component is checked and indeterminate, it will be displayed as partially checked
3636
- * - If the component is checked and it is not indeterminate, it will be displayed as checked
3637
- * - If the component is not checked, it will be displayed as not checked regardless value of the indeterminate attribute
3638
- * @default false
3639
- * @public
3640
- * @since 1.0.0-rc.15
3641
- */
3642
- this.indeterminate = false;
3643
- /**
3644
- * Defines if the component is checked.
3645
- *
3646
- * **Note:** The property can be changed with user interaction,
3647
- * either by cliking/tapping on the component, or by
3648
- * pressing the Enter or Space key.
3649
- * @default false
3650
- * @formEvents change
3651
- * @formProperty
3652
- * @public
3653
- */
3654
- this.checked = false;
3655
- /**
3656
- * Defines the value state of the component.
3657
- * @default "None"
3658
- * @public
3659
- */
3660
- this.valueState = "None";
3661
- /**
3662
- * Defines whether the component text wraps when there is not enough space.
3663
- *
3664
- * **Note:** for option "Normal" the text will wrap and the words will not be broken based on hyphenation.
3665
- * **Note:** for option "None" the text will be truncated with an ellipsis.
3666
- * @default "Normal"
3667
- * @public
3668
- */
3669
- this.wrappingType = "Normal";
3670
- /**
3671
- * Defines the active state (pressed or not) of the component.
3672
- * @private
3673
- */
3674
- this.active = false;
3675
- this._deactivate = () => {
3676
- if (activeCb) {
3677
- activeCb.active = false;
3678
- }
3679
- };
3680
- if (!isGlobalHandlerAttached) {
3681
- document.addEventListener("mouseup", this._deactivate);
3682
- isGlobalHandlerAttached = true;
3683
- }
3684
- }
3685
- onEnterDOM() {
3686
- if (Icons.f$1()) {
3687
- this.setAttribute("desktop", "");
3688
- }
3689
- }
3690
- _onclick() {
3691
- this.toggle();
3692
- }
3693
- _onmousedown() {
3694
- if (this.readonly || this.disabled) {
3695
- return;
3696
- }
3697
- this.active = true;
3698
- activeCb = this; // eslint-disable-line
3699
- }
3700
- _onmouseup() {
3701
- this.active = false;
3702
- }
3703
- _onfocusout() {
3704
- this.active = false;
3705
- }
3706
- _onkeydown(e) {
3707
- if (webcomponentsBase.i(e)) {
3708
- e.preventDefault();
3709
- }
3710
- if (this.readonly || this.disabled) {
3711
- return;
3712
- }
3713
- if (webcomponentsBase.b$1(e)) {
3714
- this.toggle();
3715
- }
3716
- this.active = true;
3717
- }
3718
- _onkeyup(e) {
3719
- if (webcomponentsBase.i(e)) {
3720
- this.toggle();
3721
- }
3722
- this.active = false;
3723
- }
3724
- toggle() {
3725
- if (this.canToggle()) {
3726
- const lastState = {
3727
- checked: this.checked,
3728
- indeterminate: this.indeterminate,
3729
- };
3730
- if (this.indeterminate) {
3731
- this.indeterminate = false;
3732
- this.checked = true;
3733
- }
3734
- else {
3735
- this.checked = !this.checked;
3736
- }
3737
- const changePrevented = !this.fireDecoratorEvent("change");
3738
- // Angular two way data binding
3739
- const valueChangePrevented = !this.fireDecoratorEvent("value-changed");
3740
- if (changePrevented || valueChangePrevented) {
3741
- this.checked = lastState.checked;
3742
- this.indeterminate = lastState.indeterminate;
3743
- }
3744
- }
3745
- return this;
3746
- }
3747
- canToggle() {
3748
- return !(this.disabled || this.readonly || this.displayOnly);
3749
- }
3750
- valueStateTextMappings() {
3751
- return {
3752
- "Negative": CheckBox_1.i18nBundle.getText(i18nDefaults.VALUE_STATE_ERROR),
3753
- "Critical": CheckBox_1.i18nBundle.getText(i18nDefaults.VALUE_STATE_WARNING),
3754
- "Positive": CheckBox_1.i18nBundle.getText(i18nDefaults.VALUE_STATE_SUCCESS),
3755
- };
3756
- }
3757
- get ariaLabelText() {
3758
- return toLowercaseEnumValue.A(this);
3759
- }
3760
- get classes() {
3761
- return {
3762
- main: {
3763
- "ui5-checkbox--hoverable": !this.disabled && !this.readonly && Icons.f$1(),
3764
- },
3765
- };
3766
- }
3767
- get ariaReadonly() {
3768
- return this.readonly || this.displayOnly ? "true" : undefined;
3769
- }
3770
- get effectiveAriaDisabled() {
3771
- return this.disabled ? "true" : undefined;
3772
- }
3773
- get effectiveAriaChecked() {
3774
- return this.indeterminate && this.checked ? "mixed" : this.checked;
3775
- }
3776
- get ariaLabelledBy() {
3777
- if (!this.ariaLabelText) {
3778
- return this.text ? `${this._id}-label` : undefined;
3779
- }
3780
- return undefined;
3781
- }
3782
- get ariaDescribedBy() {
3783
- return this.hasValueState ? `${this._id}-descr` : undefined;
3784
- }
3785
- get hasValueState() {
3786
- return this.valueState !== information.o.None;
3787
- }
3788
- get valueStateText() {
3789
- if (this.valueState !== information.o.None && this.valueState !== information.o.Information) {
3790
- return this.valueStateTextMappings()[this.valueState];
3791
- }
3792
- }
3793
- get effectiveTabIndex() {
3794
- const tabindex = this.getAttribute("tabindex");
3795
- if (this.tabbable) {
3796
- return tabindex ? parseInt(tabindex) : 0;
3797
- }
3798
- }
3799
- get tabbable() {
3800
- return !this.disabled && !this.displayOnly;
3801
- }
3802
- get isCompletelyChecked() {
3803
- return this.checked && !this.indeterminate;
3804
- }
3805
- get isDisplayOnly() {
3806
- return this.displayOnly && !this.disabled;
3807
- }
3808
- };
3809
- __decorate([
3810
- webcomponentsBase.s()
3811
- ], CheckBox.prototype, "accessibleNameRef", void 0);
3812
- __decorate([
3813
- webcomponentsBase.s()
3814
- ], CheckBox.prototype, "accessibleName", void 0);
3815
- __decorate([
3816
- webcomponentsBase.s({ type: Boolean })
3817
- ], CheckBox.prototype, "disabled", void 0);
3818
- __decorate([
3819
- webcomponentsBase.s({ type: Boolean })
3820
- ], CheckBox.prototype, "readonly", void 0);
3821
- __decorate([
3822
- webcomponentsBase.s({ type: Boolean })
3823
- ], CheckBox.prototype, "displayOnly", void 0);
3824
- __decorate([
3825
- webcomponentsBase.s({ type: Boolean })
3826
- ], CheckBox.prototype, "required", void 0);
3827
- __decorate([
3828
- webcomponentsBase.s({ type: Boolean })
3829
- ], CheckBox.prototype, "indeterminate", void 0);
3830
- __decorate([
3831
- webcomponentsBase.s({ type: Boolean })
3832
- ], CheckBox.prototype, "checked", void 0);
3833
- __decorate([
3834
- webcomponentsBase.s()
3835
- ], CheckBox.prototype, "text", void 0);
3836
- __decorate([
3837
- webcomponentsBase.s()
3838
- ], CheckBox.prototype, "valueState", void 0);
3839
- __decorate([
3840
- webcomponentsBase.s()
3841
- ], CheckBox.prototype, "wrappingType", void 0);
3842
- __decorate([
3843
- webcomponentsBase.s()
3844
- ], CheckBox.prototype, "name", void 0);
3845
- __decorate([
3846
- webcomponentsBase.s({ type: Boolean })
3847
- ], CheckBox.prototype, "active", void 0);
3848
- __decorate([
3849
- i18nDefaults.i("sap/ushell/gen/ui5/webcomponents")
3850
- ], CheckBox, "i18nBundle", void 0);
3851
- CheckBox = CheckBox_1 = __decorate([
3852
- webcomponentsBase.m({
3853
- tag: "ui5-checkbox",
3854
- languageAware: true,
3855
- formAssociated: true,
3856
- renderer: i18nDefaults.y,
3857
- template: CheckBoxTemplate,
3858
- styles: checkboxCss,
3859
- })
3860
- /**
3861
- * Fired when the component checked state changes.
3862
- * @public
3863
- */
3864
- ,
3865
- eventStrict.l("change", {
3866
- bubbles: true,
3867
- cancelable: true,
3868
- })
3869
- /**
3870
- * Fired to make Angular two way data binding work properly.
3871
- * @private
3872
- */
3873
- ,
3874
- eventStrict.l("value-changed", {
3875
- bubbles: true,
3876
- cancelable: true,
3877
- })
3878
- ], CheckBox);
3879
- CheckBox.define();
3880
- var CheckBox$1 = CheckBox;
3881
-
3882
- const predefinedHooks = {
3883
- listItemPreContent,
3884
- listItemContent,
3885
- imageBegin,
3886
- iconBegin,
3887
- iconEnd,
3888
- selectionElement,
3889
- };
3890
- function ListItemTemplate(hooks) {
3891
- const currentHooks = { ...predefinedHooks, ...hooks };
3892
- return i18nDefaults.jsxs("li", { part: "native-li", "data-sap-focus-ref": true, tabindex: this._effectiveTabIndex, class: this.classes.main, onFocusIn: this._onfocusin, onFocusOut: this._onfocusout, onKeyUp: this._onkeyup, onKeyDown: this._onkeydown, onMouseUp: this._onmouseup, onMouseDown: this._onmousedown, onTouchStart: this._onmousedown, onTouchEnd: this._ontouchend, onClick: this._onclick, draggable: this.movable, onDragStart: this._ondragstart, onDragEnd: this._ondragend, role: this._accInfo.role, title: this._accInfo.tooltip, "aria-expanded": this._accInfo.ariaExpanded, "aria-level": this._accInfo.ariaLevel, "aria-haspopup": this._accInfo.ariaHaspopup, "aria-posinset": this._accInfo.posinset, "aria-setsize": this._accInfo.setsize, "aria-describedby": `${this._id}-invisibleText-describedby`, "aria-labelledby": this._accessibleNameRef, "aria-disabled": this._ariaDisabled, "aria-selected": this._accInfo.ariaSelected, "aria-checked": this._accInfo.ariaChecked, "aria-owns": this._accInfo.ariaOwns, "aria-keyshortcuts": this._accInfo.ariaKeyShortcuts, children: [currentHooks.listItemPreContent.call(this), this.placeSelectionElementBefore && selectionElement.call(this), this._hasHighlightColor && i18nDefaults.jsx("div", { class: "ui5-li-highlight" }), i18nDefaults.jsxs("div", { part: "content", id: `${this._id}-content`, class: "ui5-li-content", children: [currentHooks.imageBegin.call(this), currentHooks.iconBegin.call(this), currentHooks.listItemContent.call(this)] }), currentHooks.iconEnd.call(this), this.typeDetail && (i18nDefaults.jsx("div", { class: "ui5-li-detailbtn", children: i18nDefaults.jsx(Button.Button, { part: "detail-button", design: "Transparent", onClick: this.onDetailClick, icon: edit }) })), this.typeNavigation && (i18nDefaults.jsx(Icon.Icon, { name: slimArrowRight })), this.navigated && (i18nDefaults.jsx("div", { class: "ui5-li-navigated" })), this.placeSelectionElementAfter && (currentHooks.selectionElement.call(this)), i18nDefaults.jsx("span", { id: `${this._id}-invisibleText`, class: "ui5-hidden-text", children: this.ariaLabelledByText }), i18nDefaults.jsx("span", { id: `${this._id}-invisibleText-describedby`, class: "ui5-hidden-text", children: this._accInfo.ariaSelectedText })] });
3893
- }
3894
- function listItemPreContent() { }
3895
- function listItemContent() { }
3896
- function imageBegin() { }
3897
- function iconBegin() { }
3898
- function iconEnd() { }
3899
- function selectionElement() {
3900
- switch (true) {
3901
- case this.modeSingleSelect:
3902
- return (i18nDefaults.jsx(RadioButton$1, { part: "radio", disabled: this.isInactive, accessibleName: this._accInfo.ariaLabelRadioButton, tabindex: -1, id: `${this._id}-singleSelectionElement`, class: "ui5-li-singlesel-radiobtn", checked: this.selected, onChange: this.onSingleSelectionComponentPress }));
3903
- case this.modeMultiple:
3904
- return (i18nDefaults.jsx(CheckBox$1, { part: "checkbox", disabled: this.isInactive, indeterminate: this.indeterminate, tabindex: -1, id: `${this._id}-multiSelectionElement`, class: "ui5-li-multisel-cb", checked: this.selected, accessibleName: this._accInfo.ariaLabel, onChange: this.onMultiSelectionComponentPress }));
3905
- case this.modeDelete:
3906
- return (i18nDefaults.jsx("div", { class: "ui5-li-deletebtn", children: this.hasDeleteButtonSlot ?
3907
- (i18nDefaults.jsx("slot", { name: "deleteButton" })) : (i18nDefaults.jsx(Button.Button, { part: "delete-button", tabindex: -1, "data-sap-no-tab-ref": true, id: `${this._id}-deleteSelectionElement`, design: "Transparent", icon: information.decline, onClick: this.onDelete, tooltip: this.deleteText })) }));
3908
- }
3909
- }
3910
-
3911
- exports.ListItem = ListItem$1;
3912
- exports.ListItemTemplate = ListItemTemplate;
3913
- exports.Popover = Popover$1;
3914
- exports.ResponsivePopover = ResponsivePopover$1;
3915
- exports.Title = Title$1;
3916
- exports.e = e;
3917
- exports.edit = edit;
3918
- exports.slimArrowRight = slimArrowRight;
3919
-
3920
- }));