@sapui5/sap.ushell 1.138.0 → 1.139.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (757) hide show
  1. package/package.json +1 -1
  2. package/src/main/js/sap/ushell/.library +1 -1
  3. package/src/main/js/sap/ushell/ApplicationType/UrlPostProcessing.js +14 -10
  4. package/src/main/js/sap/ushell/ApplicationType/wcfResolution.js +32 -26
  5. package/src/main/js/sap/ushell/Container.js +0 -1
  6. package/src/main/js/sap/ushell/Fiori20Adapter.js +1 -1
  7. package/src/main/js/sap/ushell/Fiori20AdapterTest.js +1 -1
  8. package/src/main/js/sap/ushell/NWBCInterface.js +1 -1
  9. package/src/main/js/sap/ushell/TechnicalParameters.js +1 -1
  10. package/src/main/js/sap/ushell/URLTemplateProcessor/DefinitionParameterSetBuilder.js +1 -1
  11. package/src/main/js/sap/ushell/URLTemplateProcessor/DependencyGraph.js +1 -1
  12. package/src/main/js/sap/ushell/URLTemplateProcessor/Functions.js +1 -1
  13. package/src/main/js/sap/ushell/URLTemplateProcessor/Resolvers.js +1 -1
  14. package/src/main/js/sap/ushell/URLTemplateProcessor/TemplateParameterParser.js +1 -1
  15. package/src/main/js/sap/ushell/URLTemplateProcessor/utils.js +1 -1
  16. package/src/main/js/sap/ushell/URLTemplateProcessor.js +1 -1
  17. package/src/main/js/sap/ushell/Ui5NativeServiceFactory.js +12 -12
  18. package/src/main/js/sap/ushell/Ui5ServiceFactory.js +1 -1
  19. package/src/main/js/sap/ushell/User.js +32 -12
  20. package/src/main/js/sap/ushell/adapters/cdm/ClientSideTargetResolutionAdapter.js +1 -1
  21. package/src/main/js/sap/ushell/adapters/cdm/CommonDataModelAdapter.js +1 -1
  22. package/src/main/js/sap/ushell/adapters/cdm/ConfigurationDefaultsAdapter.js +1 -1
  23. package/src/main/js/sap/ushell/adapters/cdm/ContainerAdapter.js +1 -1
  24. package/src/main/js/sap/ushell/adapters/cdm/LaunchPageAdapter.js +1 -1
  25. package/src/main/js/sap/ushell/adapters/cdm/PagesCommonDataModelAdapter.js +1 -1
  26. package/src/main/js/sap/ushell/adapters/cdm/PersonalizationAdapter.js +1 -1
  27. package/src/main/js/sap/ushell/adapters/cdm/PersonalizationV2Adapter.js +1 -1
  28. package/src/main/js/sap/ushell/adapters/cdm/Ui5ComponentLoaderAdapter.js +1 -1
  29. package/src/main/js/sap/ushell/adapters/cdm/_LaunchPage/modifyHome.js +1 -1
  30. package/src/main/js/sap/ushell/adapters/cdm/_LaunchPage/readCatalogs.js +1 -1
  31. package/src/main/js/sap/ushell/adapters/cdm/_LaunchPage/readHome.js +1 -1
  32. package/src/main/js/sap/ushell/adapters/cdm/_LaunchPage/uri.transform.js +1 -1
  33. package/src/main/js/sap/ushell/adapters/cdm/util/AppForInbound.js +1 -1
  34. package/src/main/js/sap/ushell/adapters/cdm/util/cdmSiteUtils.js +1 -1
  35. package/src/main/js/sap/ushell/adapters/cdm/v3/AdapterBase.js +1 -1
  36. package/src/main/js/sap/ushell/adapters/cdm/v3/FlpLaunchPageAdapter.js +1 -1
  37. package/src/main/js/sap/ushell/adapters/cdm/v3/LaunchPageAdapter.js +1 -1
  38. package/src/main/js/sap/ushell/adapters/cdm/v3/StaticGroupsAdapter.js +1 -1
  39. package/src/main/js/sap/ushell/adapters/cdm/v3/_LaunchPage/readApplications.js +1 -1
  40. package/src/main/js/sap/ushell/adapters/cdm/v3/_LaunchPage/readCatalogs.js +1 -1
  41. package/src/main/js/sap/ushell/adapters/cdm/v3/_LaunchPage/readHome.js +1 -1
  42. package/src/main/js/sap/ushell/adapters/cdm/v3/_LaunchPage/readPages.js +1 -1
  43. package/src/main/js/sap/ushell/adapters/cdm/v3/_LaunchPage/readUtils.js +1 -1
  44. package/src/main/js/sap/ushell/adapters/cdm/v3/_LaunchPage/readVisualizations.js +1 -1
  45. package/src/main/js/sap/ushell/adapters/cep/MenuAdapter.js +12 -58
  46. package/src/main/js/sap/ushell/adapters/cep/NavTargetResolutionAdapter.js +1 -1
  47. package/src/main/js/sap/ushell/adapters/cep/NavTargetResolutionInternalAdapter.js +1 -1
  48. package/src/main/js/sap/ushell/adapters/cep/SearchCEPAdapter.js +1 -1
  49. package/src/main/js/sap/ushell/adapters/cflp/UserDefaultParameterPersistenceAdapter.js +1 -1
  50. package/src/main/js/sap/ushell/adapters/local/AdapterContainer.js +1 -1
  51. package/src/main/js/sap/ushell/adapters/local/AppStateAdapter.js +1 -1
  52. package/src/main/js/sap/ushell/adapters/local/ClientSideTargetResolutionAdapter.js +1 -1
  53. package/src/main/js/sap/ushell/adapters/local/ContainerAdapter.js +1 -1
  54. package/src/main/js/sap/ushell/adapters/local/FlpLaunchPageAdapter.js +1 -1
  55. package/src/main/js/sap/ushell/adapters/local/LaunchPageAdapter.js +1 -1
  56. package/src/main/js/sap/ushell/adapters/local/NavTargetResolutionAdapter.js +1 -1
  57. package/src/main/js/sap/ushell/adapters/local/NavTargetResolutionInternalAdapter.js +1 -1
  58. package/src/main/js/sap/ushell/adapters/local/PageBuildingAdapter.js +1 -1
  59. package/src/main/js/sap/ushell/adapters/local/PagePersistenceAdapter.js +1 -1
  60. package/src/main/js/sap/ushell/adapters/local/PersonalizationAdapter.js +1 -1
  61. package/src/main/js/sap/ushell/adapters/local/PersonalizationV2Adapter.js +1 -1
  62. package/src/main/js/sap/ushell/adapters/local/SearchAdapter.js +1 -1
  63. package/src/main/js/sap/ushell/adapters/local/SearchCEPAdapter.js +1 -1
  64. package/src/main/js/sap/ushell/adapters/local/SupportTicketAdapter.js +1 -1
  65. package/src/main/js/sap/ushell/adapters/local/Ui5ComponentLoaderAdapter.js +1 -1
  66. package/src/main/js/sap/ushell/adapters/local/UserDefaultParameterPersistenceAdapter.js +1 -1
  67. package/src/main/js/sap/ushell/adapters/local/UserInfoAdapter.js +1 -1
  68. package/src/main/js/sap/ushell/appIntegration/AppLifeCycle.js +3 -5
  69. package/src/main/js/sap/ushell/appIntegration/ApplicationContainer.js +14 -1
  70. package/src/main/js/sap/ushell/appIntegration/ApplicationHandle.js +8 -3
  71. package/src/main/js/sap/ushell/appIntegration/IframeApplicationContainer.js +8 -8
  72. package/src/main/js/sap/ushell/appIntegration/PostMessageManager/AppruntimeHandler.js +17 -12
  73. package/src/main/js/sap/ushell/appIntegration/PostMessageManager/ExtensionItems.js +6 -23
  74. package/src/main/js/sap/ushell/appIntegration/PostMessageManager/LifecycleHandler.js +112 -92
  75. package/src/main/js/sap/ushell/appIntegration/PostMessageManager/NWBCHandler.js +15 -7
  76. package/src/main/js/sap/ushell/appIntegration/PostMessageManager/ServiceHandler.js +257 -214
  77. package/src/main/js/sap/ushell/appIntegration/PostMessageManager.js +347 -117
  78. package/src/main/js/sap/ushell/appIntegration/UI5ApplicationContainer.js +1 -0
  79. package/src/main/js/sap/ushell/appIntegration/contracts/EmbeddedUI5Handler.js +15 -19
  80. package/src/main/js/sap/ushell/appIntegration/contracts/StatefulContainerV1Handler.js +15 -14
  81. package/src/main/js/sap/ushell/appIntegration/contracts/StatefulContainerV2Handler.js +38 -40
  82. package/src/main/js/sap/ushell/appRuntime/ui5/renderers/fiori2/RendererExtensions.js +1 -1
  83. package/src/main/js/sap/ushell/appRuntime/ui5/services/AppConfiguration.js +1 -1
  84. package/src/main/js/sap/ushell/appRuntime/ui5/services/AppLifeCycle.js +1 -1
  85. package/src/main/js/sap/ushell/appRuntime/ui5/services/AppState.js +1 -8
  86. package/src/main/js/sap/ushell/appRuntime/ui5/services/Bookmark.js +1 -1
  87. package/src/main/js/sap/ushell/appRuntime/ui5/services/BookmarkV2.js +1 -1
  88. package/src/main/js/sap/ushell/appRuntime/ui5/services/CommonDataModel.js +1 -1
  89. package/src/main/js/sap/ushell/appRuntime/ui5/services/Container.js +1 -1
  90. package/src/main/js/sap/ushell/appRuntime/ui5/services/CrossApplicationNavigation.js +1 -1
  91. package/src/main/js/sap/ushell/appRuntime/ui5/services/Extension/Item.js +1 -1
  92. package/src/main/js/sap/ushell/appRuntime/ui5/services/Extension.js +25 -1
  93. package/src/main/js/sap/ushell/appRuntime/ui5/services/FlpLaunchPage.js +1 -1
  94. package/src/main/js/sap/ushell/appRuntime/ui5/services/FrameBoundExtension.js +1 -1
  95. package/src/main/js/sap/ushell/appRuntime/ui5/services/LaunchPage.js +1 -1
  96. package/src/main/js/sap/ushell/appRuntime/ui5/services/MessageBroker.js +1 -1
  97. package/src/main/js/sap/ushell/appRuntime/ui5/services/NavTargetResolution.js +1 -1
  98. package/src/main/js/sap/ushell/appRuntime/ui5/services/NavTargetResolutionInternal.js +1 -1
  99. package/src/main/js/sap/ushell/appRuntime/ui5/services/Navigation.js +1 -1
  100. package/src/main/js/sap/ushell/appRuntime/ui5/services/ReferenceResolver.js +1 -1
  101. package/src/main/js/sap/ushell/appRuntime/ui5/services/ShellNavigation.js +1 -1
  102. package/src/main/js/sap/ushell/appRuntime/ui5/services/ShellNavigationInternal.js +1 -1
  103. package/src/main/js/sap/ushell/appRuntime/ui5/services/ShellUIService.js +1 -1
  104. package/src/main/js/sap/ushell/appRuntime/ui5/services/UserInfo.js +1 -1
  105. package/src/main/js/sap/ushell/appRuntime/ui5/services/adapters/Ui5ComponentLoaderAdapter.js +1 -1
  106. package/src/main/js/sap/ushell/bootstrap/SchedulingAgent/StepConfiguration.json +0 -2
  107. package/src/main/js/sap/ushell/bootstrap/SchedulingAgent/logger.js +1 -1
  108. package/src/main/js/sap/ushell/bootstrap/SchedulingAgent/state.js +1 -1
  109. package/src/main/js/sap/ushell/bootstrap/common/common.configure.ui5datetimeformat.js +1 -1
  110. package/src/main/js/sap/ushell/bootstrap/common/common.create.configcontract.core.js +4 -1
  111. package/src/main/js/sap/ushell/bootstrap/sandbox2.js +1 -1
  112. package/src/main/js/sap/ushell/components/CatalogsManager.js +157 -157
  113. package/src/main/js/sap/ushell/components/ComponentKeysHandler.js +180 -187
  114. package/src/main/js/sap/ushell/components/DestroyHelper.js +4 -4
  115. package/src/main/js/sap/ushell/components/GroupsHelper.js +21 -21
  116. package/src/main/js/sap/ushell/components/HomepageManager.js +465 -424
  117. package/src/main/js/sap/ushell/components/MessagingHelper.js +24 -24
  118. package/src/main/js/sap/ushell/components/SharedComponentUtils.js +16 -16
  119. package/src/main/js/sap/ushell/components/_HomepageManager/DashboardLoadingManager.js +43 -43
  120. package/src/main/js/sap/ushell/components/_HomepageManager/PagingManager.js +43 -39
  121. package/src/main/js/sap/ushell/components/_HomepageManager/PersistentPageOperationAdapter.js +166 -175
  122. package/src/main/js/sap/ushell/components/_HomepageManager/TransientPageOperationAdapter.js +57 -57
  123. package/src/main/js/sap/ushell/components/appfinder/AppFinder.controller.js +96 -99
  124. package/src/main/js/sap/ushell/components/appfinder/AppFinderView.js +27 -21
  125. package/src/main/js/sap/ushell/components/appfinder/Catalog.controller.js +180 -178
  126. package/src/main/js/sap/ushell/components/appfinder/CatalogView.js +56 -56
  127. package/src/main/js/sap/ushell/components/appfinder/Component.js +12 -16
  128. package/src/main/js/sap/ushell/components/appfinder/EasyAccess.controller.js +129 -133
  129. package/src/main/js/sap/ushell/components/appfinder/EasyAccessView.js +10 -10
  130. package/src/main/js/sap/ushell/components/appfinder/GroupListPopover.controller.js +22 -22
  131. package/src/main/js/sap/ushell/components/appfinder/GroupListPopoverView.js +14 -14
  132. package/src/main/js/sap/ushell/components/appfinder/HierarchyApps.controller.js +75 -78
  133. package/src/main/js/sap/ushell/components/appfinder/HierarchyAppsView.js +24 -27
  134. package/src/main/js/sap/ushell/components/appfinder/HierarchyFolders.controller.js +44 -46
  135. package/src/main/js/sap/ushell/components/appfinder/HierarchyFoldersView.js +22 -22
  136. package/src/main/js/sap/ushell/components/appfinder/VisualizationOrganizerHelper.js +28 -28
  137. package/src/main/js/sap/ushell/components/appfinder/manifest.json +1 -1
  138. package/src/main/js/sap/ushell/components/cards/Card.controller.js +16 -20
  139. package/src/main/js/sap/ushell/components/cards/Configuration.controller.js +35 -37
  140. package/src/main/js/sap/ushell/components/cards/ManifestPropertyHelper.js +32 -34
  141. package/src/main/js/sap/ushell/components/cepsearchresult/app/Main.controller.js +7 -12
  142. package/src/main/js/sap/ushell/components/cepsearchresult/app/Main.view.xml +2 -9
  143. package/src/main/js/sap/ushell/components/cepsearchresult/app/cards/searchresultwidget/Extension.js +0 -1
  144. package/src/main/js/sap/ushell/components/cepsearchresult/app/css/style.css +58 -0
  145. package/src/main/js/sap/ushell/components/cepsearchresult/app/util/AdvancedFormatters.js +0 -1
  146. package/src/main/js/sap/ushell/components/cepsearchresult/app/util/Edition.js +0 -1
  147. package/src/main/js/sap/ushell/components/cepsearchresult/app/util/EditionAdvanced.js +0 -1
  148. package/src/main/js/sap/ushell/components/cepsearchresult/app/util/appendStyleVars.js +0 -1
  149. package/src/main/js/sap/ushell/components/cepsearchresult/app/util/controls/Category.js +13 -13
  150. package/src/main/js/sap/ushell/components/cepsearchresult/app/util/controls/Highlighter.js +2 -5
  151. package/src/main/js/sap/ushell/components/cepsearchresult/app/util/controls/Paginator.js +0 -2
  152. package/src/main/js/sap/ushell/components/cepsearchresult/app/util/controls/categories/Event.js +4 -3
  153. package/src/main/js/sap/ushell/components/contentFinder/CatalogService.js +8 -9
  154. package/src/main/js/sap/ushell/components/contentFinder/Component.js +2 -2
  155. package/src/main/js/sap/ushell/components/contentFinder/controller/AppSearch.controller.js +1 -3
  156. package/src/main/js/sap/ushell/components/contentFinder/controller/ContentFinderDialog.controller.js +1 -1
  157. package/src/main/js/sap/ushell/components/contentFinder/dialog/Component.js +2 -2
  158. package/src/main/js/sap/ushell/components/contentFinder/dialog/manifest.json +1 -1
  159. package/src/main/js/sap/ushell/components/contentFinder/manifest.json +1 -1
  160. package/src/main/js/sap/ushell/components/contentFinder/model/GraphQLListBinding.js +3 -5
  161. package/src/main/js/sap/ushell/components/contentFinder/model/GraphQLModel.js +2 -2
  162. package/src/main/js/sap/ushell/components/contentFinder/model/formatter.js +13 -6
  163. package/src/main/js/sap/ushell/components/contentFinder/resources/resources.properties +3 -3
  164. package/src/main/js/sap/ushell/components/contentFinder/resources/resources_en_US_saprigi.properties +1 -1
  165. package/src/main/js/sap/ushell/components/contentFinder/view/AppSearch.view.xml +2 -14
  166. package/src/main/js/sap/ushell/components/contentFinder/view/AppSearchCategoryTreeTable.fragment.xml +14 -7
  167. package/src/main/js/sap/ushell/components/contentFinder/view/VisualizationsNoDataIllustratedMessage.fragment.xml +1 -1
  168. package/src/main/js/sap/ushell/components/contentFinderStandalone/Component.js +2 -2
  169. package/src/main/js/sap/ushell/components/contentFinderStandalone/controller/ContentFinderStandalone.controller.js +2 -4
  170. package/src/main/js/sap/ushell/components/contentFinderStandalone/manifest.json +1 -1
  171. package/src/main/js/sap/ushell/components/factsheet/Component.js +13 -8
  172. package/src/main/js/sap/ushell/components/factsheet/annotation/Mapping.js +166 -118
  173. package/src/main/js/sap/ushell/components/factsheet/controls/PictureTile.js +20 -16
  174. package/src/main/js/sap/ushell/components/factsheet/controls/PictureTileRenderer.js +3 -3
  175. package/src/main/js/sap/ushell/components/factsheet/controls/PictureViewer.js +84 -77
  176. package/src/main/js/sap/ushell/components/factsheet/controls/PictureViewerItem.js +4 -4
  177. package/src/main/js/sap/ushell/components/factsheet/controls/PictureViewerRenderer.js +2 -2
  178. package/src/main/js/sap/ushell/components/factsheet/factory/ThingInspector.js +1356 -1139
  179. package/src/main/js/sap/ushell/components/factsheet/tools/ODataUrlTemplating.js +9 -5
  180. package/src/main/js/sap/ushell/components/factsheet/views/ThingViewer.controller.js +1 -1
  181. package/src/main/js/sap/ushell/components/factsheet/views/ThingViewer.view.js +9 -6
  182. package/src/main/js/sap/ushell/components/homeApp/error/Component.js +1 -1
  183. package/src/main/js/sap/ushell/components/homeApp/error/HomeAppError.controller.js +4 -4
  184. package/src/main/js/sap/ushell/components/homepage/ActionMode.js +51 -48
  185. package/src/main/js/sap/ushell/components/homepage/Component.js +11 -11
  186. package/src/main/js/sap/ushell/components/homepage/DashboardContent.controller.js +185 -192
  187. package/src/main/js/sap/ushell/components/homepage/DashboardContent.view.js +60 -50
  188. package/src/main/js/sap/ushell/components/homepage/DashboardGroupsBox.js +199 -202
  189. package/src/main/js/sap/ushell/components/homepage/DashboardUIActions.js +152 -160
  190. package/src/main/js/sap/ushell/components/homepage/manifest.json +1 -1
  191. package/src/main/js/sap/ushell/components/pages/ActionMode.js +72 -74
  192. package/src/main/js/sap/ushell/components/pages/Component.js +7 -32
  193. package/src/main/js/sap/ushell/components/pages/MyHomeImport.js +46 -46
  194. package/src/main/js/sap/ushell/components/pages/StateManager.js +9 -10
  195. package/src/main/js/sap/ushell/components/pages/controller/MyHome.controller.js +4 -4
  196. package/src/main/js/sap/ushell/components/pages/controller/PageRuntime.controller.js +243 -215
  197. package/src/main/js/sap/ushell/components/pages/controller/PagesAndSpaceId.js +23 -24
  198. package/src/main/js/sap/ushell/components/pages/manifest.json +1 -1
  199. package/src/main/js/sap/ushell/components/runtimeSwitcher/Component.js +1 -1
  200. package/src/main/js/sap/ushell/components/runtimeSwitcher/controller/RuntimeSwitcher.controller.js +60 -70
  201. package/src/main/js/sap/ushell/components/runtimeSwitcher/manifest.json +1 -1
  202. package/src/main/js/sap/ushell/components/shell/FloatingContainer/Component.js +0 -5
  203. package/src/main/js/sap/ushell/components/shell/FloatingContainer/controls/FloatingContainer.js +3 -3
  204. package/src/main/js/sap/ushell/components/shell/FloatingContainer/manifest.json +1 -1
  205. package/src/main/js/sap/ushell/components/shell/MenuBar/Component.js +18 -50
  206. package/src/main/js/sap/ushell/components/shell/MenuBar/controller/MenuBar.controller.js +73 -83
  207. package/src/main/js/sap/ushell/components/shell/MenuBar/manifest.json +1 -1
  208. package/src/main/js/sap/ushell/components/shell/NavigationBarMenu/Component.js +1 -1
  209. package/src/main/js/sap/ushell/components/shell/NavigationBarMenu/controller/NavigationBarMenu.controller.js +49 -50
  210. package/src/main/js/sap/ushell/components/shell/NavigationBarMenu/controller/NavigationBarMenuButton.controller.js +5 -5
  211. package/src/main/js/sap/ushell/components/shell/NavigationBarMenu/manifest.json +1 -1
  212. package/src/main/js/sap/ushell/components/shell/Notifications/Component.js +35 -33
  213. package/src/main/js/sap/ushell/components/shell/Notifications/Notifications.controller.js +8 -9
  214. package/src/main/js/sap/ushell/components/shell/Notifications/NotificationsList.controller.js +5 -11
  215. package/src/main/js/sap/ushell/components/shell/PostLoadingHeaderEnhancement/Component.js +63 -42
  216. package/src/main/js/sap/ushell/components/shell/ProductSwitch/Component.js +20 -22
  217. package/src/main/js/sap/ushell/components/shell/Search/Component.js +20 -12
  218. package/src/main/js/sap/ushell/components/shell/Search/ESearch.js +18 -21
  219. package/src/main/js/sap/ushell/components/shell/Search/manifest.json +1 -1
  220. package/src/main/js/sap/ushell/components/shell/SearchCEP/Component.js +21 -14
  221. package/src/main/js/sap/ushell/components/shell/SearchCEP/SearchCEP.controller.js +204 -250
  222. package/src/main/js/sap/ushell/components/shell/SearchCEP/SearchProviders/FrequentActivityProvider.js +25 -24
  223. package/src/main/js/sap/ushell/components/shell/SearchCEP/SearchProviders/RecentSearchProvider.js +9 -9
  224. package/src/main/js/sap/ushell/components/shell/SearchCEP/SearchProviders/SearchProvider.js +4 -4
  225. package/src/main/js/sap/ushell/components/shell/SearchCEP/SearchProviders/SearchServiceProvider.js +63 -65
  226. package/src/main/js/sap/ushell/components/shell/SearchCEPNew/Component.js +420 -0
  227. package/src/main/js/sap/ushell/components/shell/SearchCEPNew/SearchProviders/FrequentActivityProvider.js +84 -0
  228. package/src/main/js/sap/ushell/components/shell/SearchCEPNew/SearchProviders/RecentSearchProvider.js +63 -0
  229. package/src/main/js/sap/ushell/components/shell/SearchCEPNew/SearchProviders/SearchProvider.js +141 -0
  230. package/src/main/js/sap/ushell/components/shell/SearchCEPNew/SearchProviders/SearchServiceProvider.js +177 -0
  231. package/src/main/js/sap/ushell/components/shell/SearchCEPNew/manifest.json +43 -0
  232. package/src/main/js/sap/ushell/components/shell/SearchCEPNew/resources/resources.properties +17 -0
  233. package/src/main/js/sap/ushell/components/shell/Settings/Component.js +50 -35
  234. package/src/main/js/sap/ushell/components/shell/Settings/ErrorMessageHelper.js +10 -10
  235. package/src/main/js/sap/ushell/components/shell/Settings/UserSettings.controller.js +150 -150
  236. package/src/main/js/sap/ushell/components/shell/Settings/appearance/Appearance.controller.js +66 -63
  237. package/src/main/js/sap/ushell/components/shell/Settings/appearance/AppearanceEntry.js +12 -15
  238. package/src/main/js/sap/ushell/components/shell/Settings/homepage/HomepageEntry.js +34 -37
  239. package/src/main/js/sap/ushell/components/shell/Settings/notifications/NotificationsEntry.js +6 -7
  240. package/src/main/js/sap/ushell/components/shell/Settings/notifications/NotificationsSetting.controller.js +46 -48
  241. package/src/main/js/sap/ushell/components/shell/Settings/search/Search.controller.js +4 -4
  242. package/src/main/js/sap/ushell/components/shell/Settings/search/SearchEntry.js +13 -13
  243. package/src/main/js/sap/ushell/components/shell/Settings/spaces/SpacesEntry.js +11 -13
  244. package/src/main/js/sap/ushell/components/shell/Settings/spaces/SpacesSetting.controller.js +41 -42
  245. package/src/main/js/sap/ushell/components/shell/Settings/userAccount/UserAccountEntry.js +11 -15
  246. package/src/main/js/sap/ushell/components/shell/Settings/userAccount/UserAccountSelector.controller.js +35 -37
  247. package/src/main/js/sap/ushell/components/shell/Settings/userActivities/UserActivitiesEntry.js +6 -7
  248. package/src/main/js/sap/ushell/components/shell/Settings/userActivities/UserActivitiesSetting.controller.js +7 -8
  249. package/src/main/js/sap/ushell/components/shell/Settings/userDefaults/Component.js +2 -2
  250. package/src/main/js/sap/ushell/components/shell/Settings/userDefaults/UserDefaultsEntry.js +16 -16
  251. package/src/main/js/sap/ushell/components/shell/Settings/userDefaults/UserDefaultsForm.js +17 -17
  252. package/src/main/js/sap/ushell/components/shell/Settings/userDefaults/controller/ExtendedValueDialog.controller.js +21 -24
  253. package/src/main/js/sap/ushell/components/shell/Settings/userDefaults/controller/UserDefaultsSetting.controller.js +136 -137
  254. package/src/main/js/sap/ushell/components/shell/Settings/userLanguageRegion/LanguageRegionSelector.controller.js +73 -78
  255. package/src/main/js/sap/ushell/components/shell/Settings/userLanguageRegion/UserLanguageRegionEntry.js +8 -8
  256. package/src/main/js/sap/ushell/components/shell/ShellBar/Component.js +30 -23
  257. package/src/main/js/sap/ushell/components/shell/ShellBar/controller/ShellBar.controller.js +34 -22
  258. package/src/main/js/sap/ushell/components/shell/ShellBar/manifest.json +1 -1
  259. package/src/main/js/sap/ushell/components/shell/ShellBar/view/ShellBar.view.xml +21 -9
  260. package/src/main/js/sap/ushell/components/shell/SideNavigation/Component.js +7 -11
  261. package/src/main/js/sap/ushell/components/shell/SideNavigation/controller/SideNavigation.controller.js +3 -3
  262. package/src/main/js/sap/ushell/components/shell/SideNavigation/manifest.json +1 -1
  263. package/src/main/js/sap/ushell/components/shell/SideNavigation/modules/AllSpaces.js +3 -4
  264. package/src/main/js/sap/ushell/components/shell/SideNavigation/modules/AppFinder.js +2 -2
  265. package/src/main/js/sap/ushell/components/shell/SideNavigation/modules/Favorites.js +8 -3
  266. package/src/main/js/sap/ushell/components/shell/SideNavigation/modules/GenericFixedNavigationListProvider.js +2 -2
  267. package/src/main/js/sap/ushell/components/shell/SideNavigation/modules/GenericNavigationListProvider.js +2 -2
  268. package/src/main/js/sap/ushell/components/shell/SideNavigation/modules/MyHome.js +2 -2
  269. package/src/main/js/sap/ushell/components/shell/SideNavigation/modules/NavigationHelper.js +4 -4
  270. package/src/main/js/sap/ushell/components/shell/SideNavigation/modules/RecentActivity.js +4 -4
  271. package/src/main/js/sap/ushell/components/shell/SideNavigation/modules/Spaces.js +5 -6
  272. package/src/main/js/sap/ushell/components/shell/SideNavigation/modules/SpacesNavigationListProvider.js +2 -3
  273. package/src/main/js/sap/ushell/components/shell/UserActionsMenu/Component.js +3 -4
  274. package/src/main/js/sap/ushell/components/shell/UserActionsMenu/UserActionsMenu.controller.js +47 -48
  275. package/src/main/js/sap/ushell/components/shell/UserImage/Component.js +27 -30
  276. package/src/main/js/sap/ushell/components/tiles/action/ActionTile.controller.js +55 -55
  277. package/src/main/js/sap/ushell/components/tiles/action/Configuration.controller.js +39 -41
  278. package/src/main/js/sap/ushell/components/tiles/applauncher/Component.js +3 -3
  279. package/src/main/js/sap/ushell/components/tiles/applauncher/Configuration.controller.js +26 -27
  280. package/src/main/js/sap/ushell/components/tiles/applauncher/StaticTile.controller.js +66 -66
  281. package/src/main/js/sap/ushell/components/tiles/applauncher/StaticTile.view.js +5 -5
  282. package/src/main/js/sap/ushell/components/tiles/applauncherdynamic/Component.js +2 -2
  283. package/src/main/js/sap/ushell/components/tiles/applauncherdynamic/Configuration.controller.js +27 -27
  284. package/src/main/js/sap/ushell/components/tiles/applauncherdynamic/DynamicTile.controller.js +107 -107
  285. package/src/main/js/sap/ushell/components/tiles/applauncherdynamic/DynamicTile.view.js +7 -7
  286. package/src/main/js/sap/ushell/components/tiles/cdm/applauncher/Component.js +7 -7
  287. package/src/main/js/sap/ushell/components/tiles/cdm/applauncher/StaticTile.controller.js +31 -31
  288. package/src/main/js/sap/ushell/components/tiles/cdm/applauncher/StaticTile.view.js +2 -2
  289. package/src/main/js/sap/ushell/components/tiles/cdm/applauncherdynamic/Component.js +15 -15
  290. package/src/main/js/sap/ushell/components/tiles/cdm/applauncherdynamic/DynamicTile.controller.js +85 -86
  291. package/src/main/js/sap/ushell/components/tiles/cdm/applauncherdynamic/DynamicTile.view.js +4 -4
  292. package/src/main/js/sap/ushell/components/tiles/generic.js +133 -131
  293. package/src/main/js/sap/ushell/components/tiles/indicatorArea/AreaChartTile.controller.js +71 -71
  294. package/src/main/js/sap/ushell/components/tiles/indicatorArea/AreaChartTile.view.js +17 -17
  295. package/src/main/js/sap/ushell/components/tiles/indicatorDual/DualTile.controller.js +49 -49
  296. package/src/main/js/sap/ushell/components/tiles/indicatorDual/DualTile.view.js +9 -9
  297. package/src/main/js/sap/ushell/components/tiles/indicatorDualComparison/DualComparison.controller.js +80 -80
  298. package/src/main/js/sap/ushell/components/tiles/indicatorDualComparison/DualComparison.view.js +3 -3
  299. package/src/main/js/sap/ushell/components/tiles/indicatorDualContribution/DualContribution.controller.js +74 -75
  300. package/src/main/js/sap/ushell/components/tiles/indicatorDualContribution/DualContribution.view.js +3 -3
  301. package/src/main/js/sap/ushell/components/tiles/indicatorDualDeviation/DualDeviation.controller.js +55 -55
  302. package/src/main/js/sap/ushell/components/tiles/indicatorDualDeviation/DualDeviation.view.js +12 -12
  303. package/src/main/js/sap/ushell/components/tiles/indicatorDualTrend/DualTrend.controller.js +83 -84
  304. package/src/main/js/sap/ushell/components/tiles/indicatorDualTrend/DualTrend.view.js +15 -15
  305. package/src/main/js/sap/ushell/components/tiles/indicatorHarveyBall/HarveyBallTile.controller.js +71 -71
  306. package/src/main/js/sap/ushell/components/tiles/indicatorHarveyBall/HarveyBallTile.view.js +7 -7
  307. package/src/main/js/sap/ushell/components/tiles/indicatorTileUtils/cache.js +4 -4
  308. package/src/main/js/sap/ushell/components/tiles/indicatorTileUtils/indicatorTileHelper.js +4 -4
  309. package/src/main/js/sap/ushell/components/tiles/indicatorTileUtils/oData4Analytics.js +230 -232
  310. package/src/main/js/sap/ushell/components/tiles/indicatorTileUtils/smartBusinessUtil.js +271 -272
  311. package/src/main/js/sap/ushell/components/tiles/indicatorcomparison/ComparisonTile.controller.js +55 -55
  312. package/src/main/js/sap/ushell/components/tiles/indicatorcomparison/ComparisonTile.view.js +4 -4
  313. package/src/main/js/sap/ushell/components/tiles/indicatorcontribution/ContributionTile.controller.js +53 -53
  314. package/src/main/js/sap/ushell/components/tiles/indicatorcontribution/ContributionTile.view.js +5 -5
  315. package/src/main/js/sap/ushell/components/tiles/indicatordeviation/DeviationTile.controller.js +20 -20
  316. package/src/main/js/sap/ushell/components/tiles/indicatordeviation/DeviationTile.view.js +11 -11
  317. package/src/main/js/sap/ushell/components/tiles/indicatornumeric/NumericTile.controller.js +14 -15
  318. package/src/main/js/sap/ushell/components/tiles/indicatornumeric/NumericTile.view.js +10 -10
  319. package/src/main/js/sap/ushell/components/tiles/sbtilecontent.js +6 -6
  320. package/src/main/js/sap/ushell/components/tiles/utils.js +699 -664
  321. package/src/main/js/sap/ushell/components/visualizationOrganizer/Component.js +217 -217
  322. package/src/main/js/sap/ushell/components/workPageBuilder/Component.js +4 -8
  323. package/src/main/js/sap/ushell/components/workPageBuilder/controller/WorkPageBuilder.accessibility.js +40 -42
  324. package/src/main/js/sap/ushell/components/workPageBuilder/controller/WorkPageBuilder.controller.js +257 -262
  325. package/src/main/js/sap/ushell/components/workPageBuilder/controller/WorkPageBuilder.layout.js +19 -20
  326. package/src/main/js/sap/ushell/components/workPageBuilder/controls/WorkPage.js +6 -6
  327. package/src/main/js/sap/ushell/components/workPageBuilder/controls/WorkPageButton.js +37 -38
  328. package/src/main/js/sap/ushell/components/workPageBuilder/controls/WorkPageCell.js +97 -100
  329. package/src/main/js/sap/ushell/components/workPageBuilder/controls/WorkPageColumn.js +81 -82
  330. package/src/main/js/sap/ushell/components/workPageBuilder/controls/WorkPageColumnRenderer.js +9 -9
  331. package/src/main/js/sap/ushell/components/workPageBuilder/controls/WorkPageColumnResizer.js +38 -39
  332. package/src/main/js/sap/ushell/components/workPageBuilder/controls/WorkPageRenderer.js +5 -5
  333. package/src/main/js/sap/ushell/components/workPageBuilder/controls/WorkPageRow.js +8 -9
  334. package/src/main/js/sap/ushell/components/workPageBuilder/controls/WorkPageRowRenderer.js +9 -9
  335. package/src/main/js/sap/ushell/components/workPageBuilder/manifest.json +1 -1
  336. package/src/main/js/sap/ushell/components/workPageRuntime/Component.js +4 -4
  337. package/src/main/js/sap/ushell/components/workPageRuntime/controller/WorkPageRuntime.controller.js +15 -15
  338. package/src/main/js/sap/ushell/components/workPageRuntime/manifest.json +1 -1
  339. package/src/main/js/sap/ushell/designtime/ApplicationContainer.designtime.js +1 -1
  340. package/src/main/js/sap/ushell/gen/ui5/webcomponents/dist/Avatar.js +7 -1
  341. package/src/main/js/sap/ushell/gen/ui5/webcomponents/dist/ListItemGroup.js +90 -0
  342. package/src/main/js/sap/ushell/gen/ui5/webcomponents/dist/MenuItem.js +10 -0
  343. package/src/main/js/sap/ushell/gen/ui5/webcomponents-base.js +19 -11
  344. package/src/main/js/sap/ushell/gen/ui5/webcomponents-fiori/dist/Search.js +144 -0
  345. package/src/main/js/sap/ushell/gen/ui5/webcomponents-fiori/dist/SearchItem.js +68 -0
  346. package/src/main/js/sap/ushell/gen/ui5/webcomponents-fiori/dist/SearchItemGroup.js +34 -0
  347. package/src/main/js/sap/ushell/gen/ui5/webcomponents-fiori/dist/SearchMessageArea.js +51 -0
  348. package/src/main/js/sap/ushell/gen/ui5/webcomponents-fiori/dist/SearchScope.js +55 -0
  349. package/src/main/js/sap/ushell/gen/ui5/webcomponents-fiori/dist/ShellBar.js +5 -0
  350. package/src/main/js/sap/ushell/gen/ui5/webcomponents-fiori/dist/ShellBarBranding.js +76 -0
  351. package/src/main/js/sap/ushell/gen/ui5/webcomponents-fiori/dist/ShellBarSearch.js +133 -0
  352. package/src/main/js/sap/ushell/gen/ui5/webcomponents-fiori.js +83 -1
  353. package/src/main/js/sap/ushell/gen/ui5/webcomponents.js +80 -2
  354. package/src/main/js/sap/ushell/library.js +1 -1
  355. package/src/main/js/sap/ushell/navigation/NavigationState.js +126 -0
  356. package/src/main/js/sap/ushell/navigationMode.js +1 -1
  357. package/src/main/js/sap/ushell/performance/ShellAnalytics.js +1 -1
  358. package/src/main/js/sap/ushell/performance/StatisticalRecord.js +1 -1
  359. package/src/main/js/sap/ushell/plugins/appwarmup/Component.js +1 -1
  360. package/src/main/js/sap/ushell/renderer/AccessKeysHandler.js +8 -4
  361. package/src/main/js/sap/ushell/renderer/Renderer.js +19 -7
  362. package/src/main/js/sap/ushell/renderer/Shell.controller.js +11 -5
  363. package/src/main/js/sap/ushell/renderer/Shell.view.js +4 -1
  364. package/src/main/js/sap/ushell/renderer/resources/resources_ar.properties +2 -0
  365. package/src/main/js/sap/ushell/renderer/resources/resources_bg.properties +2 -0
  366. package/src/main/js/sap/ushell/renderer/resources/resources_ca.properties +2 -0
  367. package/src/main/js/sap/ushell/renderer/resources/resources_cnr.properties +2 -0
  368. package/src/main/js/sap/ushell/renderer/resources/resources_cs.properties +2 -0
  369. package/src/main/js/sap/ushell/renderer/resources/resources_cy.properties +2 -0
  370. package/src/main/js/sap/ushell/renderer/resources/resources_da.properties +2 -0
  371. package/src/main/js/sap/ushell/renderer/resources/resources_de.properties +2 -0
  372. package/src/main/js/sap/ushell/renderer/resources/resources_el.properties +2 -0
  373. package/src/main/js/sap/ushell/renderer/resources/resources_en.properties +2 -0
  374. package/src/main/js/sap/ushell/renderer/resources/resources_en_GB.properties +2 -0
  375. package/src/main/js/sap/ushell/renderer/resources/resources_en_US_saprigi.properties +2 -0
  376. package/src/main/js/sap/ushell/renderer/resources/resources_es.properties +2 -0
  377. package/src/main/js/sap/ushell/renderer/resources/resources_es_MX.properties +2 -0
  378. package/src/main/js/sap/ushell/renderer/resources/resources_et.properties +2 -0
  379. package/src/main/js/sap/ushell/renderer/resources/resources_fi.properties +2 -0
  380. package/src/main/js/sap/ushell/renderer/resources/resources_fr.properties +2 -0
  381. package/src/main/js/sap/ushell/renderer/resources/resources_fr_CA.properties +2 -0
  382. package/src/main/js/sap/ushell/renderer/resources/resources_hi.properties +2 -0
  383. package/src/main/js/sap/ushell/renderer/resources/resources_hr.properties +2 -0
  384. package/src/main/js/sap/ushell/renderer/resources/resources_hu.properties +3 -1
  385. package/src/main/js/sap/ushell/renderer/resources/resources_id.properties +2 -0
  386. package/src/main/js/sap/ushell/renderer/resources/resources_it.properties +2 -0
  387. package/src/main/js/sap/ushell/renderer/resources/resources_iw.properties +2 -0
  388. package/src/main/js/sap/ushell/renderer/resources/resources_ja.properties +2 -0
  389. package/src/main/js/sap/ushell/renderer/resources/resources_kk.properties +2 -0
  390. package/src/main/js/sap/ushell/renderer/resources/resources_ko.properties +2 -0
  391. package/src/main/js/sap/ushell/renderer/resources/resources_lt.properties +2 -0
  392. package/src/main/js/sap/ushell/renderer/resources/resources_lv.properties +2 -0
  393. package/src/main/js/sap/ushell/renderer/resources/resources_mk.properties +2 -0
  394. package/src/main/js/sap/ushell/renderer/resources/resources_ms.properties +2 -0
  395. package/src/main/js/sap/ushell/renderer/resources/resources_nl.properties +2 -0
  396. package/src/main/js/sap/ushell/renderer/resources/resources_no.properties +2 -0
  397. package/src/main/js/sap/ushell/renderer/resources/resources_pl.properties +2 -0
  398. package/src/main/js/sap/ushell/renderer/resources/resources_pt.properties +2 -0
  399. package/src/main/js/sap/ushell/renderer/resources/resources_pt_PT.properties +2 -0
  400. package/src/main/js/sap/ushell/renderer/resources/resources_ro.properties +2 -0
  401. package/src/main/js/sap/ushell/renderer/resources/resources_ru.properties +2 -0
  402. package/src/main/js/sap/ushell/renderer/resources/resources_sh.properties +2 -0
  403. package/src/main/js/sap/ushell/renderer/resources/resources_sk.properties +2 -0
  404. package/src/main/js/sap/ushell/renderer/resources/resources_sl.properties +3 -1
  405. package/src/main/js/sap/ushell/renderer/resources/resources_sr.properties +2 -0
  406. package/src/main/js/sap/ushell/renderer/resources/resources_sv.properties +2 -0
  407. package/src/main/js/sap/ushell/renderer/resources/resources_th.properties +2 -0
  408. package/src/main/js/sap/ushell/renderer/resources/resources_tr.properties +2 -0
  409. package/src/main/js/sap/ushell/renderer/resources/resources_uk.properties +2 -0
  410. package/src/main/js/sap/ushell/renderer/resources/resources_vi.properties +3 -1
  411. package/src/main/js/sap/ushell/renderer/resources/resources_zh_CN.properties +2 -0
  412. package/src/main/js/sap/ushell/renderer/resources/resources_zh_TW.properties +2 -0
  413. package/src/main/js/sap/ushell/renderer/search/searchComponent/manifest.json +1 -1
  414. package/src/main/js/sap/ushell/services/AllMyApps.js +5 -5
  415. package/src/main/js/sap/ushell/services/AppConfiguration.js +3 -5
  416. package/src/main/js/sap/ushell/services/AppLifeCycle.js +2 -2
  417. package/src/main/js/sap/ushell/services/AppState.js +86 -102
  418. package/src/main/js/sap/ushell/services/AppType.js +2 -2
  419. package/src/main/js/sap/ushell/services/Bookmark.js +156 -164
  420. package/src/main/js/sap/ushell/services/BookmarkV2.js +10 -13
  421. package/src/main/js/sap/ushell/services/ClientSideTargetResolution/Formatter.js +1 -1
  422. package/src/main/js/sap/ushell/services/ClientSideTargetResolution/InboundIndex.js +1 -1
  423. package/src/main/js/sap/ushell/services/ClientSideTargetResolution/InboundProvider.js +1 -1
  424. package/src/main/js/sap/ushell/services/ClientSideTargetResolution/PrelaunchOperations.js +1 -1
  425. package/src/main/js/sap/ushell/services/ClientSideTargetResolution/Search.js +1 -1
  426. package/src/main/js/sap/ushell/services/ClientSideTargetResolution/StagedLogger.js +1 -1
  427. package/src/main/js/sap/ushell/services/ClientSideTargetResolution/SystemContext.js +1 -1
  428. package/src/main/js/sap/ushell/services/ClientSideTargetResolution/Utils.js +1 -1
  429. package/src/main/js/sap/ushell/services/ClientSideTargetResolution/VirtualInbounds.js +1 -1
  430. package/src/main/js/sap/ushell/services/ClientSideTargetResolution/XAppStateProcessing.js +1 -1
  431. package/src/main/js/sap/ushell/services/ClientSideTargetResolution.js +27 -31
  432. package/src/main/js/sap/ushell/services/CommonDataModel/SiteConverter.js +1 -1
  433. package/src/main/js/sap/ushell/services/CommonDataModel/vizTypeDefaults/VizTypeDefaults.js +1 -1
  434. package/src/main/js/sap/ushell/services/CommonDataModel.js +295 -353
  435. package/src/main/js/sap/ushell/services/Configuration.js +14 -12
  436. package/src/main/js/sap/ushell/services/ConfigurationDefaults.js +34 -35
  437. package/src/main/js/sap/ushell/services/Container.js +2 -2
  438. package/src/main/js/sap/ushell/services/ContentExtensionAdapterFactory.js +29 -62
  439. package/src/main/js/sap/ushell/services/CrossApplicationNavigation.js +227 -266
  440. package/src/main/js/sap/ushell/services/DarkModeSupport.js +17 -16
  441. package/src/main/js/sap/ushell/services/EndUserFeedback.js +5 -4
  442. package/src/main/js/sap/ushell/services/Extension/Item.js +7 -12
  443. package/src/main/js/sap/ushell/services/Extension.js +54 -19
  444. package/src/main/js/sap/ushell/services/FlpLaunchPage.js +209 -213
  445. package/src/main/js/sap/ushell/services/FrameBoundExtension/FloatingContainer.js +3 -3
  446. package/src/main/js/sap/ushell/services/FrameBoundExtension/Footer.js +3 -3
  447. package/src/main/js/sap/ushell/services/FrameBoundExtension/Item.js +6 -6
  448. package/src/main/js/sap/ushell/services/FrameBoundExtension/SidePane.js +1 -1
  449. package/src/main/js/sap/ushell/services/FrameBoundExtension/ToolArea.js +1 -1
  450. package/src/main/js/sap/ushell/services/FrameBoundExtension/UserSettingsEntry.js +4 -4
  451. package/src/main/js/sap/ushell/services/FrameBoundExtension.js +3 -3
  452. package/src/main/js/sap/ushell/services/LaunchPage.js +1 -2
  453. package/src/main/js/sap/ushell/services/Menu.js +264 -289
  454. package/src/main/js/sap/ushell/services/Message.js +3 -3
  455. package/src/main/js/sap/ushell/services/MessageBroker/MessageBrokerEngine.js +6 -29
  456. package/src/main/js/sap/ushell/services/MessageBroker.js +14 -10
  457. package/src/main/js/sap/ushell/services/MessageInternal.js +37 -38
  458. package/src/main/js/sap/ushell/services/NavTargetResolution.js +2 -5
  459. package/src/main/js/sap/ushell/services/NavTargetResolutionInternal.js +153 -157
  460. package/src/main/js/sap/ushell/services/Navigation/compatibility.js +4 -6
  461. package/src/main/js/sap/ushell/services/Navigation/utils.js +62 -64
  462. package/src/main/js/sap/ushell/services/Navigation.js +10 -14
  463. package/src/main/js/sap/ushell/services/NavigationDataProvider.js +2 -2
  464. package/src/main/js/sap/ushell/services/Notifications.js +29 -15
  465. package/src/main/js/sap/ushell/services/NotificationsV2.js +86 -98
  466. package/src/main/js/sap/ushell/services/PageBuilding.js +9 -6
  467. package/src/main/js/sap/ushell/services/PagePersistence.js +3 -3
  468. package/src/main/js/sap/ushell/services/PageReferencing.js +4 -2
  469. package/src/main/js/sap/ushell/services/Pages.js +635 -683
  470. package/src/main/js/sap/ushell/services/Personalization.js +103 -134
  471. package/src/main/js/sap/ushell/services/PersonalizationV2/ContextContainer.js +29 -32
  472. package/src/main/js/sap/ushell/services/PersonalizationV2/Personalizer.js +21 -6
  473. package/src/main/js/sap/ushell/services/PersonalizationV2/TransientPersonalizer.js +1 -2
  474. package/src/main/js/sap/ushell/services/PersonalizationV2/Variant.js +5 -1
  475. package/src/main/js/sap/ushell/services/PersonalizationV2/VariantSet.js +5 -8
  476. package/src/main/js/sap/ushell/services/PersonalizationV2/VariantSetAdapter.js +2 -2
  477. package/src/main/js/sap/ushell/services/PersonalizationV2/WindowAdapter.js +10 -11
  478. package/src/main/js/sap/ushell/services/PersonalizationV2/WindowAdapterContainer.js +27 -27
  479. package/src/main/js/sap/ushell/services/PersonalizationV2/constants.js +1 -2
  480. package/src/main/js/sap/ushell/services/PersonalizationV2/constants.private.js +1 -1
  481. package/src/main/js/sap/ushell/services/PersonalizationV2/utils.js +5 -5
  482. package/src/main/js/sap/ushell/services/PersonalizationV2.js +92 -105
  483. package/src/main/js/sap/ushell/services/PluginManager/Extensions.js +9 -9
  484. package/src/main/js/sap/ushell/services/PluginManager/HeaderExtensions.js +2 -2
  485. package/src/main/js/sap/ushell/services/PluginManager/MenuExtensions.js +4 -4
  486. package/src/main/js/sap/ushell/services/PluginManager/SimpleExpression.js +5 -8
  487. package/src/main/js/sap/ushell/services/PluginManager.js +12 -8
  488. package/src/main/js/sap/ushell/services/ReferenceResolver.js +21 -28
  489. package/src/main/js/sap/ushell/services/Search.js +25 -21
  490. package/src/main/js/sap/ushell/services/SearchCEP.js +38 -32
  491. package/src/main/js/sap/ushell/services/SearchableContent.js +203 -223
  492. package/src/main/js/sap/ushell/services/ShellNavigation.js +5 -3
  493. package/src/main/js/sap/ushell/services/ShellNavigationHashChanger.js +160 -164
  494. package/src/main/js/sap/ushell/services/ShellNavigationInternal.js +23 -19
  495. package/src/main/js/sap/ushell/services/SmartNavigation.js +86 -82
  496. package/src/main/js/sap/ushell/services/SpaceContent.js +73 -106
  497. package/src/main/js/sap/ushell/services/SupportTicket.js +1 -1
  498. package/src/main/js/sap/ushell/services/UITracer.js +48 -62
  499. package/src/main/js/sap/ushell/services/URLShortening.js +2 -2
  500. package/src/main/js/sap/ushell/services/URLTemplate.js +7 -8
  501. package/src/main/js/sap/ushell/services/Ui5ComponentHandle.js +5 -5
  502. package/src/main/js/sap/ushell/services/Ui5ComponentLoader.js +1 -1
  503. package/src/main/js/sap/ushell/services/UsageAnalytics.js +2 -3
  504. package/src/main/js/sap/ushell/services/UserDefaultParameterPersistence.js +10 -10
  505. package/src/main/js/sap/ushell/services/UserDefaultParameters.js +12 -13
  506. package/src/main/js/sap/ushell/services/UserInfo.js +27 -15
  507. package/src/main/js/sap/ushell/services/UserRecents/RecentActivity.js +6 -7
  508. package/src/main/js/sap/ushell/services/UserRecents/RecentAppsUsage.js +5 -5
  509. package/src/main/js/sap/ushell/services/UserRecents/RecentsList.js +2 -2
  510. package/src/main/js/sap/ushell/services/UserRecents/UserRecentsBase.js +2 -2
  511. package/src/main/js/sap/ushell/services/UserRecents.js +3 -3
  512. package/src/main/js/sap/ushell/services/VisualizationDataProvider.js +63 -66
  513. package/src/main/js/sap/ushell/services/VisualizationInstantiation.js +11 -11
  514. package/src/main/js/sap/ushell/services/_ContentExtensionAdapterFactory/ContentExtensionAdapterConfig.js +1 -1
  515. package/src/main/js/sap/ushell/services/_ContentExtensionAdapterFactory/FeaturedGroupConfig.js +1 -1
  516. package/src/main/js/sap/ushell/services/_CrossApplicationNavigation/utils.js +1 -1
  517. package/src/main/js/sap/ushell/services/_PageReferencing/PageReferencer.js +1 -1
  518. package/src/main/js/sap/ushell/services/personalization/VariantSetAdapter.js +10 -10
  519. package/src/main/js/sap/ushell/state/BaseState.js +2 -3
  520. package/src/main/js/sap/ushell/state/BindingHelper.js +2 -4
  521. package/src/main/js/sap/ushell/state/ControlManager.js +2 -3
  522. package/src/main/js/sap/ushell/state/CurrentState.js +2 -2
  523. package/src/main/js/sap/ushell/state/KeepAlive.js +2 -2
  524. package/src/main/js/sap/ushell/state/ShellModel.js +2 -3
  525. package/src/main/js/sap/ushell/state/StateManager/LaunchpadState.js +2 -2
  526. package/src/main/js/sap/ushell/state/StateManager/Operation.js +2 -2
  527. package/src/main/js/sap/ushell/state/StateManager/ShellMode.js +2 -2
  528. package/src/main/js/sap/ushell/state/StateManager.js +3 -3
  529. package/src/main/js/sap/ushell/state/StateRules.js +2 -3
  530. package/src/main/js/sap/ushell/state/StrategyFactory/DefaultStrategy.js +2 -3
  531. package/src/main/js/sap/ushell/state/StrategyFactory/FloatingActionsStrategy.js +2 -3
  532. package/src/main/js/sap/ushell/state/StrategyFactory/FloatingContainerStrategy.js +2 -3
  533. package/src/main/js/sap/ushell/state/StrategyFactory/HeadEndItemsStrategy.js +3 -4
  534. package/src/main/js/sap/ushell/state/StrategyFactory/HeadItemsStrategy.js +3 -4
  535. package/src/main/js/sap/ushell/state/StrategyFactory/SidePaneStrategy.js +2 -3
  536. package/src/main/js/sap/ushell/state/StrategyFactory/SubHeaderStrategy.js +2 -3
  537. package/src/main/js/sap/ushell/state/StrategyFactory/UserActionsStrategy.js +3 -4
  538. package/src/main/js/sap/ushell/state/StrategyFactory.js +2 -3
  539. package/src/main/js/sap/ushell/state/modules/BackNavigation.js +2 -5
  540. package/src/main/js/sap/ushell/state/modules/ContentDensity.js +3 -3
  541. package/src/main/js/sap/ushell/state/modules/Favicon.js +3 -3
  542. package/src/main/js/sap/ushell/state/modules/HeaderLogo.js +3 -3
  543. package/src/main/js/sap/ushell/support/plugins/flpConfig/FlpConfigurationPlugin.js +123 -123
  544. package/src/main/js/sap/ushell/themes/base/ShellBar.less +2 -1
  545. package/src/main/js/sap/ushell/themes/base/ShellHeader.less +1 -1
  546. package/src/main/js/sap/ushell/themes/base/ToolAreaItem.less +1 -0
  547. package/src/main/js/sap/ushell/themes/sap_fiori_3/ShellBar.less +9 -0
  548. package/src/main/js/sap/ushell/themes/sap_fiori_3/ShellHeader.less +6 -0
  549. package/src/main/js/sap/ushell/themes/sap_fiori_3/library.source.less +1 -0
  550. package/src/main/js/sap/ushell/themes/sap_fiori_3_dark/ShellBar.less +9 -0
  551. package/src/main/js/sap/ushell/themes/sap_fiori_3_dark/library.source.less +1 -0
  552. package/src/main/js/sap/ushell/themes/sap_fiori_3_hcb/ShellBar.less +9 -0
  553. package/src/main/js/sap/ushell/themes/sap_fiori_3_hcb/library.source.less +1 -0
  554. package/src/main/js/sap/ushell/themes/sap_fiori_3_hcw/ShellBar.less +9 -0
  555. package/src/main/js/sap/ushell/themes/sap_fiori_3_hcw/library.source.less +1 -0
  556. package/src/main/js/sap/ushell/themes/sap_hcb/base_ShellHeader.less +1 -1
  557. package/src/main/js/sap/ushell/thirdparty/AccessibilityTextsHelper.js +13 -0
  558. package/src/main/js/sap/ushell/thirdparty/Avatar.js +83 -16
  559. package/src/main/js/sap/ushell/thirdparty/BusyIndicator.js +16 -241
  560. package/src/main/js/sap/ushell/thirdparty/Button.js +1 -1
  561. package/src/main/js/sap/ushell/thirdparty/Button2.js +34 -14
  562. package/src/main/js/sap/ushell/thirdparty/Icon.js +11 -11
  563. package/src/main/js/sap/ushell/thirdparty/Icons.js +81 -79
  564. package/src/main/js/sap/ushell/thirdparty/Label.js +4 -4
  565. package/src/main/js/sap/ushell/thirdparty/Link.js +11 -10
  566. package/src/main/js/sap/ushell/thirdparty/List.js +34 -487
  567. package/src/main/js/sap/ushell/thirdparty/ListBoxItemGroupTemplate.js +14 -0
  568. package/src/main/js/sap/ushell/thirdparty/ListItemBase.js +239 -0
  569. package/src/main/js/sap/ushell/thirdparty/ListItemCustom.js +1669 -91
  570. package/src/main/js/sap/ushell/thirdparty/ListItemGroup.js +472 -0
  571. package/src/main/js/sap/ushell/thirdparty/Menu.js +70 -81
  572. package/src/main/js/sap/ushell/thirdparty/MenuItem.js +1 -1
  573. package/src/main/js/sap/ushell/thirdparty/MenuItem2.js +348 -40
  574. package/src/main/js/sap/ushell/thirdparty/NotificationList.js +5 -5
  575. package/src/main/js/sap/ushell/thirdparty/NotificationListGroupItem.js +15 -15
  576. package/src/main/js/sap/ushell/thirdparty/NotificationListItem.js +511 -517
  577. package/src/main/js/sap/ushell/thirdparty/NotificationListItemBase.js +3 -3
  578. package/src/main/js/sap/ushell/thirdparty/ResponsivePopover.js +2264 -0
  579. package/src/main/js/sap/ushell/thirdparty/SearchItem.js +111 -0
  580. package/src/main/js/sap/ushell/thirdparty/SearchItemGroup.js +47 -0
  581. package/src/main/js/sap/ushell/thirdparty/SearchMessageArea.js +49 -0
  582. package/src/main/js/sap/ushell/thirdparty/SearchScope.js +39 -0
  583. package/src/main/js/sap/ushell/thirdparty/ShellBar.js +177 -170
  584. package/src/main/js/sap/ushell/thirdparty/ShellBarBranding.js +119 -0
  585. package/src/main/js/sap/ushell/thirdparty/ShellBarSearch.js +7 -0
  586. package/src/main/js/sap/ushell/thirdparty/ShellBarSearch2.js +3248 -0
  587. package/src/main/js/sap/ushell/thirdparty/Tag.js +15 -14
  588. package/src/main/js/sap/ushell/thirdparty/Text.js +9 -9
  589. package/src/main/js/sap/ushell/thirdparty/Title.js +167 -0
  590. package/src/main/js/sap/ushell/thirdparty/UserMenu.js +55 -54
  591. package/src/main/js/sap/ushell/thirdparty/UserMenuItem.js +5 -5
  592. package/src/main/js/sap/ushell/thirdparty/ValueState.js +7 -0
  593. package/src/main/js/sap/ushell/thirdparty/_dynamics/InputSuggestions.js +444 -0
  594. package/src/main/js/sap/ushell/thirdparty/_dynamics/ListItemStandardExpandableTextTemplate.js +7 -7
  595. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_ar2.js +39 -0
  596. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_ar3.js +26 -8
  597. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_bg2.js +40 -1
  598. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_bg3.js +26 -8
  599. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_ca2.js +41 -2
  600. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_ca3.js +27 -9
  601. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_cnr2.js +39 -0
  602. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_cnr3.js +25 -7
  603. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_cs2.js +39 -0
  604. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_cs3.js +25 -7
  605. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_cy2.js +39 -0
  606. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_cy3.js +26 -8
  607. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_da2.js +39 -0
  608. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_da3.js +25 -7
  609. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_de2.js +39 -0
  610. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_de3.js +26 -8
  611. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_el2.js +39 -0
  612. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_el3.js +25 -7
  613. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_en2.js +45 -0
  614. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_en3.js +26 -8
  615. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_en_GB2.js +39 -0
  616. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_en_GB3.js +26 -8
  617. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_en_US_sappsd2.js +39 -0
  618. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_en_US_sappsd3.js +26 -8
  619. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_en_US_saprigi2.js +45 -0
  620. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_en_US_saprigi3.js +23 -8
  621. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_en_US_saptrc2.js +39 -0
  622. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_en_US_saptrc3.js +26 -8
  623. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_es2.js +42 -3
  624. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_es3.js +27 -9
  625. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_es_MX2.js +42 -3
  626. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_es_MX3.js +28 -10
  627. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_et2.js +39 -0
  628. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_et3.js +25 -7
  629. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_fi2.js +39 -0
  630. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_fi3.js +25 -7
  631. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_fr2.js +39 -0
  632. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_fr3.js +26 -8
  633. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_fr_CA2.js +39 -0
  634. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_fr_CA3.js +25 -7
  635. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_hi2.js +39 -0
  636. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_hi3.js +25 -7
  637. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_hr2.js +39 -0
  638. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_hr3.js +25 -7
  639. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_hu2.js +39 -0
  640. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_hu3.js +25 -7
  641. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_id2.js +39 -0
  642. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_id3.js +26 -8
  643. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_it2.js +43 -4
  644. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_it3.js +29 -11
  645. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_iw2.js +39 -0
  646. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_iw3.js +27 -9
  647. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_ja2.js +39 -0
  648. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_ja3.js +26 -8
  649. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_kk2.js +39 -0
  650. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_kk3.js +26 -8
  651. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_ko2.js +39 -0
  652. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_ko3.js +25 -7
  653. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_lt2.js +39 -0
  654. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_lt3.js +25 -7
  655. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_lv2.js +39 -0
  656. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_lv3.js +27 -9
  657. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_mk2.js +40 -1
  658. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_mk3.js +25 -7
  659. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_ms2.js +40 -1
  660. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_ms3.js +27 -9
  661. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_nl2.js +39 -0
  662. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_nl3.js +25 -7
  663. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_no2.js +39 -0
  664. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_no3.js +26 -8
  665. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_pl2.js +39 -0
  666. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_pl3.js +26 -8
  667. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_pt2.js +39 -0
  668. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_pt3.js +25 -7
  669. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_pt_PT2.js +39 -0
  670. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_pt_PT3.js +26 -8
  671. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_ro2.js +39 -0
  672. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_ro3.js +25 -7
  673. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_ru2.js +39 -0
  674. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_ru3.js +25 -7
  675. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_sh2.js +39 -0
  676. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_sh3.js +25 -7
  677. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_sk2.js +39 -0
  678. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_sk3.js +25 -7
  679. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_sl2.js +41 -2
  680. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_sl3.js +26 -8
  681. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_sr2.js +39 -0
  682. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_sr3.js +25 -7
  683. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_sv2.js +39 -0
  684. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_sv3.js +26 -8
  685. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_th2.js +39 -0
  686. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_th3.js +25 -7
  687. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_tr2.js +39 -0
  688. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_tr3.js +25 -7
  689. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_uk2.js +40 -1
  690. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_uk3.js +25 -7
  691. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_vi2.js +39 -0
  692. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_vi3.js +26 -8
  693. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_zh_CN2.js +39 -0
  694. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_zh_CN3.js +26 -8
  695. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_zh_TW2.js +41 -2
  696. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_zh_TW3.js +25 -7
  697. package/src/main/js/sap/ushell/thirdparty/_dynamics/parameters-bundle.css10.js +1 -1
  698. package/src/main/js/sap/ushell/thirdparty/_dynamics/parameters-bundle.css11.js +1 -1
  699. package/src/main/js/sap/ushell/thirdparty/_dynamics/parameters-bundle.css12.js +1 -1
  700. package/src/main/js/sap/ushell/thirdparty/_dynamics/parameters-bundle.css13.js +1 -1
  701. package/src/main/js/sap/ushell/thirdparty/_dynamics/parameters-bundle.css14.js +1 -1
  702. package/src/main/js/sap/ushell/thirdparty/_dynamics/parameters-bundle.css15.js +1 -1
  703. package/src/main/js/sap/ushell/thirdparty/_dynamics/parameters-bundle.css16.js +1 -1
  704. package/src/main/js/sap/ushell/thirdparty/_dynamics/parameters-bundle.css17.js +1 -1
  705. package/src/main/js/sap/ushell/thirdparty/_dynamics/parameters-bundle.css18.js +1 -1
  706. package/src/main/js/sap/ushell/thirdparty/_dynamics/parameters-bundle.css19.js +1 -1
  707. package/src/main/js/sap/ushell/thirdparty/_dynamics/parameters-bundle.css20.js +1 -1
  708. package/src/main/js/sap/ushell/thirdparty/_dynamics/parameters-bundle.css21.js +1 -1
  709. package/src/main/js/sap/ushell/thirdparty/_dynamics/parameters-bundle.css22.js +1 -1
  710. package/src/main/js/sap/ushell/thirdparty/_dynamics/parameters-bundle.css23.js +1 -1
  711. package/src/main/js/sap/ushell/thirdparty/_dynamics/parameters-bundle.css24.js +1 -1
  712. package/src/main/js/sap/ushell/thirdparty/_dynamics/parameters-bundle.css25.js +1 -1
  713. package/src/main/js/sap/ushell/thirdparty/_dynamics/parameters-bundle.css26.js +7 -0
  714. package/src/main/js/sap/ushell/thirdparty/_dynamics/parameters-bundle.css3.js +1 -1
  715. package/src/main/js/sap/ushell/thirdparty/_dynamics/parameters-bundle.css4.js +1 -1
  716. package/src/main/js/sap/ushell/thirdparty/_dynamics/parameters-bundle.css5.js +1 -1
  717. package/src/main/js/sap/ushell/thirdparty/_dynamics/parameters-bundle.css6.js +1 -1
  718. package/src/main/js/sap/ushell/thirdparty/_dynamics/parameters-bundle.css7.js +1 -1
  719. package/src/main/js/sap/ushell/thirdparty/_dynamics/parameters-bundle.css8.js +1 -1
  720. package/src/main/js/sap/ushell/thirdparty/_dynamics/parameters-bundle.css9.js +1 -1
  721. package/src/main/js/sap/ushell/thirdparty/encodeXML.js +87 -0
  722. package/src/main/js/sap/ushell/thirdparty/generateHighlightedMarkup.js +9 -0
  723. package/src/main/js/sap/ushell/thirdparty/i18n-defaults.js +143 -149
  724. package/src/main/js/sap/ushell/thirdparty/i18n-defaults2.js +16 -0
  725. package/src/main/js/sap/ushell/thirdparty/information.js +10 -13
  726. package/src/main/js/sap/ushell/thirdparty/information2.js +13 -0
  727. package/src/main/js/sap/ushell/thirdparty/overflow.js +2 -2
  728. package/src/main/js/sap/ushell/thirdparty/parameters-bundle.css.js +1 -1
  729. package/src/main/js/sap/ushell/thirdparty/parameters-bundle.css2.js +44 -0
  730. package/src/main/js/sap/ushell/thirdparty/query.js +1 -4
  731. package/src/main/js/sap/ushell/thirdparty/slim-arrow-down.js +44 -0
  732. package/src/main/js/sap/ushell/thirdparty/sys-enter-2.js +7 -0
  733. package/src/main/js/sap/ushell/thirdparty/toLowercaseEnumValue.js +0 -8
  734. package/src/main/js/sap/ushell/thirdparty/webcomponents-base.js +35 -31
  735. package/src/main/js/sap/ushell/thirdparty/webcomponents-fiori.js +8 -8
  736. package/src/main/js/sap/ushell/thirdparty/webcomponents.js +16 -16
  737. package/src/main/js/sap/ushell/thirdparty/willShowContent.js +7 -0
  738. package/src/main/js/sap/ushell/ui/ShellHeader.js +0 -1
  739. package/src/main/js/sap/ushell/ui/cards/RecentActivitiesExtension.js +1 -1
  740. package/src/main/js/sap/ushell/ui/launchpad/ExtendedChangeDetection.js +1 -1
  741. package/src/main/js/sap/ushell/ui/launchpad/Section.js +1 -1
  742. package/src/main/js/sap/ushell/ui/launchpad/VizInstance.js +6 -1
  743. package/src/main/js/sap/ushell/ui/launchpad/section/CompactArea.js +1 -1
  744. package/src/main/js/sap/ushell/ui/shell/ToolAreaItem.js +5 -2
  745. package/src/main/js/sap/ushell/ui/utils.js +1 -1
  746. package/src/main/js/sap/ushell/ui5service/ShellUIServiceFactory.js +1 -1
  747. package/src/main/js/sap/ushell/ui5service/UserStatus.js +1 -1
  748. package/src/main/js/sap/ushell/utils/UrlShortening.js +1 -1
  749. package/src/main/js/sap/ushell/utils/workpage/WorkPageHost.js +1 -1
  750. package/src/main/js/sap/ushell/utils/workpage/WorkPageService.js +1 -1
  751. package/src/main/js/sap/ushell/utils/workpage/WorkPageVizInstantiation.js +1 -1
  752. package/src/main/js/sap/ushell/utils.js +32 -1
  753. package/src/test/js/sap/ushell/bootstrap/sandbox.js +1 -1
  754. package/ui5.yaml +2 -0
  755. package/src/main/js/sap/ushell/thirdparty/ListItemTemplate.js +0 -3920
  756. package/src/main/js/sap/ushell/thirdparty/_dynamics/parameters-bundle.css2.js +0 -7
  757. /package/src/main/js/sap/ushell/components/shell/SearchCEP/{SearchFieldFragment.fragment.xml → SearchField.fragment.xml} +0 -0
@@ -0,0 +1,3248 @@
1
+ sap.ui.define(['require', 'exports', 'sap/ushell/thirdparty/webcomponents-base', 'sap/ushell/thirdparty/webcomponents', 'sap/ushell/thirdparty/webcomponents-fiori', 'sap/ushell/thirdparty/event-strict', 'sap/ushell/thirdparty/Icons', 'sap/ushell/thirdparty/parameters-bundle.css2', 'sap/ushell/thirdparty/Button2', 'sap/ushell/thirdparty/Icon', 'sap/ushell/thirdparty/ListItemBase', 'sap/ushell/thirdparty/i18n-defaults', 'sap/ushell/thirdparty/ResponsivePopover', 'sap/ushell/thirdparty/AccessibilityTextsHelper', 'sap/ushell/thirdparty/ValueState', 'sap/ushell/thirdparty/information', 'sap/ushell/thirdparty/List', 'sap/ushell/thirdparty/Label', 'sap/ushell/thirdparty/slim-arrow-down', 'sap/ushell/thirdparty/BusyIndicator', 'sap/ushell/thirdparty/encodeXML', 'sap/ushell/thirdparty/information2', 'sap/ushell/thirdparty/sys-enter-2', 'sap/ushell/thirdparty/parameters-bundle.css', 'sap/ushell/thirdparty/i18n-defaults2'], (function (require, exports, webcomponentsBase, webcomponents, webcomponentsFiori, eventStrict, Icons, parametersBundle_css, Button, Icon, ListItemBase, i18nDefaults, ResponsivePopover, AccessibilityTextsHelper, ValueState, information, List, Label, slimArrowDown, BusyIndicator, encodeXML, information$1, sysEnter2, parametersBundle_css$1, i18nDefaults$1) { 'use strict';
2
+
3
+ function ListItemBaseTemplate(hooks, injectedProps) {
4
+ const listItemContent = hooks?.listItemContent || defaultListItemContent;
5
+ return (parametersBundle_css.jsx("li", { part: "native-li", "data-sap-focus-ref": true, tabindex: this._effectiveTabIndex, class: this.classes.main, draggable: this.movable, role: injectedProps?.role, title: injectedProps?.title, onFocusIn: this._onfocusin, onKeyUp: this._onkeyup, onKeyDown: this._onkeydown, onClick: this._onclick, children: listItemContent.call(this) }));
6
+ }
7
+ function defaultListItemContent() {
8
+ return parametersBundle_css.jsx("div", { part: "content", id: `${this._id}-content`, class: "ui5-li-content", children: parametersBundle_css.jsx("div", { class: "ui5-li-text-wrapper", children: parametersBundle_css.jsx("span", { part: "title", class: "ui5-li-title", children: parametersBundle_css.jsx("slot", {}) }) }) });
9
+ }
10
+
11
+ function OptionTemplate() {
12
+ return ListItemBaseTemplate.call(this, { listItemContent: listItemContent$1 }, { role: "option", title: this.tooltip });
13
+ }
14
+ function listItemContent$1() {
15
+ return (parametersBundle_css.jsxs("div", { part: "content", id: `${this._id}-content`, class: "ui5-li-content", children: [this.displayIconBegin &&
16
+ parametersBundle_css.jsx(Icon.Icon, { part: "icon", name: this.icon, class: "ui5-li-icon", mode: "Decorative" }), parametersBundle_css.jsxs("div", { class: "ui5-li-text-wrapper", children: [parametersBundle_css.jsx("span", { part: "title", class: "ui5-li-title", children: parametersBundle_css.jsx("slot", {}) }), this.additionalText &&
17
+ parametersBundle_css.jsx("span", { part: "additional-text", class: "ui5-li-additional-text", children: this.additionalText })] })] }));
18
+ }
19
+
20
+ Icons.p("sap/ushell/gen/ui5/webcomponents-theming", "sap_horizon", async () => parametersBundle_css.defaultThemeBase);
21
+ Icons.p("sap/ushell/gen/ui5/webcomponents", "sap_horizon", async () => i18nDefaults.defaultTheme);
22
+ var optionBaseCss = `:host{height:var(--_ui5-v2-13-0-rc-0_list_item_dropdown_base_height);--_ui5-v2-13-0-rc-0_list_item_title_size: var(--sapFontSize)}
23
+ `;
24
+
25
+ Icons.p("sap/ushell/gen/ui5/webcomponents-theming", "sap_horizon", async () => parametersBundle_css.defaultThemeBase);
26
+ Icons.p("sap/ushell/gen/ui5/webcomponents", "sap_horizon", async () => i18nDefaults.defaultTheme);
27
+ var listItemIconCss = `.ui5-li-icon{color:var(--sapList_TextColor);min-width:var(--_ui5-v2-13-0-rc-0_list_item_icon_size);min-height:var(--_ui5-v2-13-0-rc-0_list_item_icon_size);padding-inline-end:var(--_ui5-v2-13-0-rc-0_list_item_icon_padding-inline-end)}
28
+ `;
29
+
30
+ var __decorate$6 = (this && this.__decorate) || function (decorators, target, key, desc) {
31
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
32
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
33
+ 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;
34
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
35
+ };
36
+ /**
37
+ * @class
38
+ *
39
+ * ### Overview
40
+ *
41
+ * The `ui5-option` component defines the content of an option in the `ui5-select`.
42
+ *
43
+ * ### ES6 Module Import
44
+ *
45
+ * `import "sap/ushell/gen/ui5/webcomponents/dist/Option.js";`
46
+ * @constructor
47
+ * @extends ListItemBase
48
+ * @implements {IOption}
49
+ * @public
50
+ */
51
+ let Option = class Option extends ListItemBase.ListItemBase {
52
+ get displayIconBegin() {
53
+ return !!this.icon;
54
+ }
55
+ get effectiveDisplayText() {
56
+ return this.textContent || "";
57
+ }
58
+ };
59
+ __decorate$6([
60
+ webcomponentsBase.d({ type: Node, "default": true, invalidateOnChildChange: true })
61
+ ], Option.prototype, "text", void 0);
62
+ __decorate$6([
63
+ webcomponentsBase.s()
64
+ ], Option.prototype, "value", void 0);
65
+ __decorate$6([
66
+ webcomponentsBase.s()
67
+ ], Option.prototype, "icon", void 0);
68
+ __decorate$6([
69
+ webcomponentsBase.s()
70
+ ], Option.prototype, "additionalText", void 0);
71
+ __decorate$6([
72
+ webcomponentsBase.s()
73
+ ], Option.prototype, "tooltip", void 0);
74
+ __decorate$6([
75
+ webcomponentsBase.s({ type: Boolean })
76
+ ], Option.prototype, "selected", void 0);
77
+ Option = __decorate$6([
78
+ webcomponentsBase.m({
79
+ tag: "ui5-option",
80
+ template: OptionTemplate,
81
+ styles: [
82
+ ListItemBase.ListItemBase.styles,
83
+ ResponsivePopover.listItemAdditionalTextCss,
84
+ listItemIconCss,
85
+ optionBaseCss,
86
+ ],
87
+ })
88
+ ], Option);
89
+ Option.define();
90
+ var Option$1 = Option;
91
+
92
+ let t,n$1;const l=e=>{e.style.position="absolute",e.style.clip="rect(1px,1px,1px,1px)",e.style.userSelect="none",e.style.left="-1000px",e.style.top="-1000px",e.style.pointerEvents="none";};Icons.P(()=>{t&&n$1||(t=document.createElement("span"),n$1=document.createElement("span"),t.classList.add("ui5-invisiblemessage-polite"),n$1.classList.add("ui5-invisiblemessage-assertive"),t.setAttribute("aria-live","polite"),n$1.setAttribute("aria-live","assertive"),t.setAttribute("role","alert"),n$1.setAttribute("role","alert"),l(t),l(n$1),Icons.o("ui5-announcement-area").appendChild(t),Icons.o("ui5-announcement-area").appendChild(n$1));});const p=(e,s)=>{const i=t;i.textContent="",i.textContent=e,setTimeout(()=>{i.textContent===e&&(i.textContent="");},3e3);};
93
+
94
+ function SelectPopoverTemplate() {
95
+ return (parametersBundle_css.jsxs(parametersBundle_css.Fragment, { children: [this.options.length > 0 &&
96
+ parametersBundle_css.jsxs(ResponsivePopover.ResponsivePopover, { class: {
97
+ "ui5-select-popover": true,
98
+ ...this.classes.popover
99
+ }, part: "popover", style: this.styles.responsivePopover, placement: "Bottom", horizontalAlign: "Start", hideArrow: true, preventInitialFocus: true, onOpen: this._afterOpen, onBeforeOpen: this._beforeOpen, onClose: this._afterClose, onKeyDown: this._onkeydown, children: [this._isPhone &&
100
+ parametersBundle_css.jsxs("div", { slot: "header", class: "ui5-responsive-popover-header", children: [parametersBundle_css.jsxs("div", { class: "row", children: [parametersBundle_css.jsx("span", { children: this._headerTitleText }), parametersBundle_css.jsx(Button.Button, { class: "ui5-responsive-popover-close-btn", icon: information.decline, design: "Transparent", onClick: this._toggleRespPopover })] }), this.hasValueStateText &&
101
+ parametersBundle_css.jsx("div", { class: {
102
+ "row": true,
103
+ "ui5-select-value-state-dialog-header": true,
104
+ ...this.classes.popoverValueState
105
+ }, children: this._isPickerOpen && valueStateMessage$1.call(this) })] }), !this._isPhone && this.hasValueStateText &&
106
+ parametersBundle_css.jsxs("div", { class: this.classes.popoverValueState, style: this.styles.responsivePopoverHeader, children: [parametersBundle_css.jsx(Icon.Icon, { class: "ui5-input-value-state-message-icon", name: this._valueStateMessageInputIcon }), this._isPickerOpen && valueStateMessage$1.call(this)] }), parametersBundle_css.jsx(List.List, { separators: "None", onMouseDown: this._itemMousedown, onItemClick: this._handleItemPress, accessibleRole: "ListBox", children: parametersBundle_css.jsx("slot", {}) })] }), this.shouldOpenValueStateMessagePopover &&
107
+ parametersBundle_css.jsx(ResponsivePopover.Popover, { part: "popover", class: "ui5-valuestatemessage-popover", preventInitialFocus: true, preventFocusRestore: true, hideArrow: true, placement: "Bottom", horizontalAlign: "Start", children: parametersBundle_css.jsxs("div", { class: this.classes.popoverValueState, style: this.styles.popoverHeader, children: [parametersBundle_css.jsx(Icon.Icon, { class: "ui5-input-value-state-message-icon", name: this._valueStateMessageInputIcon }), valueStateMessage$1.call(this)] }) })] }));
108
+ }
109
+ function valueStateMessage$1() {
110
+ return (parametersBundle_css.jsx(parametersBundle_css.Fragment, { children: this.shouldDisplayDefaultValueStateMessage
111
+ ? this.valueStateText
112
+ : parametersBundle_css.jsx("slot", { onClick: this._applyFocus, name: "valueStateMessage" }) }));
113
+ }
114
+
115
+ function SelectTemplate() {
116
+ return (parametersBundle_css.jsxs(parametersBundle_css.Fragment, { children: [parametersBundle_css.jsxs("div", { class: {
117
+ "ui5-select-root": true,
118
+ "ui5-input-focusable-element": true,
119
+ }, id: `${this._id}-select`, onClick: this._onclick, title: this.tooltip, children: [!this.icon && this.selectedOptionIcon &&
120
+ parametersBundle_css.jsx(Icon.Icon, { mode: "Decorative", class: "ui5-select-option-icon", name: this.selectedOptionIcon }), parametersBundle_css.jsx("div", { class: "ui5-select-label-root", "data-sap-focus-ref": true, tabindex: this._effectiveTabIndex, role: "combobox", "aria-haspopup": "listbox", "aria-label": this.ariaLabelText, "aria-describedby": this.valueStateTextId, "aria-disabled": this.isDisabled, "aria-required": this.required, "aria-readonly": this.readonly, "aria-expanded": this._isPickerOpen, "aria-roledescription": this._ariaRoleDescription, onKeyDown: this._onkeydown, onKeyPress: this._handleKeyboardNavigation, onKeyUp: this._onkeyup, onFocusIn: this._onfocusin, onFocusOut: this._onfocusout, children: this.hasCustomLabel
121
+ ? parametersBundle_css.jsx("slot", { name: "label" })
122
+ : this.text }), this.icon &&
123
+ parametersBundle_css.jsx("div", { class: {
124
+ "ui5-select-icon-root": true,
125
+ "inputIcon": true,
126
+ "inputIcon--pressed": this._iconPressed,
127
+ }, children: parametersBundle_css.jsx(Icon.Icon, { name: this.icon, class: {
128
+ "ui5-select-icon": true,
129
+ } }) }), !this.icon && !this.readonly &&
130
+ parametersBundle_css.jsx("div", { class: {
131
+ "ui5-select-icon-root": true,
132
+ "inputIcon": true,
133
+ "inputIcon--pressed": this._iconPressed,
134
+ }, children: parametersBundle_css.jsx(Icon.Icon, { part: "icon", name: slimArrowDown.slimArrowDown, class: {
135
+ "ui5-select-icon": true,
136
+ } }) }), this.hasValueState &&
137
+ parametersBundle_css.jsx("span", { id: `${this._id}-valueStateDesc`, class: "ui5-hidden-text", children: this.valueStateText })] }), SelectPopoverTemplate.call(this)] }));
138
+ }
139
+
140
+ Icons.p("sap/ushell/gen/ui5/webcomponents-theming", "sap_horizon", async () => parametersBundle_css.defaultThemeBase);
141
+ Icons.p("sap/ushell/gen/ui5/webcomponents", "sap_horizon", async () => i18nDefaults.defaultTheme);
142
+ var selectCss = `:host{vertical-align:middle}.ui5-hidden-text{position:absolute;clip:rect(1px,1px,1px,1px);user-select:none;left:-1000px;top:-1000px;pointer-events:none;font-size:0}.inputIcon{color:var(--_ui5-v2-13-0-rc-0_input_icon_color);cursor:pointer;outline:none;padding:var(--_ui5-v2-13-0-rc-0_input_icon_padding);border-inline-start:var(--_ui5-v2-13-0-rc-0_input_icon_border);min-width:1rem;min-height:1rem;border-radius:var(--_ui5-v2-13-0-rc-0_input_icon_border_radius)}.inputIcon.inputIcon--pressed{background:var(--_ui5-v2-13-0-rc-0_input_icon_pressed_bg);box-shadow:var(--_ui5-v2-13-0-rc-0_input_icon_box_shadow);border-inline-start:var(--_ui5-v2-13-0-rc-0_select_hover_icon_left_border);color:var(--_ui5-v2-13-0-rc-0_input_icon_pressed_color)}.inputIcon:active{background-color:var(--sapButton_Active_Background);box-shadow:var(--_ui5-v2-13-0-rc-0_input_icon_box_shadow);border-inline-start:var(--_ui5-v2-13-0-rc-0_select_hover_icon_left_border);color:var(--_ui5-v2-13-0-rc-0_input_icon_pressed_color)}.inputIcon:not(.inputIcon--pressed):not(:active):hover{background:var(--_ui5-v2-13-0-rc-0_input_icon_hover_bg);box-shadow:var(--_ui5-v2-13-0-rc-0_input_icon_box_shadow)}.inputIcon:hover{border-inline-start:var(--_ui5-v2-13-0-rc-0_select_hover_icon_left_border);box-shadow:var(--_ui5-v2-13-0-rc-0_input_icon_box_shadow)}:host(:not([hidden])){display:inline-block}:host{width:var(--_ui5-v2-13-0-rc-0_input_width);min-width:calc(var(--_ui5-v2-13-0-rc-0_input_min_width) + (var(--_ui5-v2-13-0-rc-0-input-icons-count)*var(--_ui5-v2-13-0-rc-0_input_icon_width)));margin:var(--_ui5-v2-13-0-rc-0_input_margin_top_bottom) 0;height:var(--_ui5-v2-13-0-rc-0_input_height);color:var(--sapField_TextColor);font-size:var(--sapFontSize);font-family:"72override",var(--sapFontFamily);font-style:normal;border:var(--_ui5-v2-13-0-rc-0-input-border);border-radius:var(--_ui5-v2-13-0-rc-0_input_border_radius);box-sizing:border-box;text-align:start;transition:var(--_ui5-v2-13-0-rc-0_input_transition);background:var(--sapField_BackgroundStyle);background-color:var(--_ui5-v2-13-0-rc-0_input_background_color)}:host(:not([readonly])),:host([readonly][disabled]){box-shadow:var(--sapField_Shadow)}:host([focused]:not([opened])){border-color:var(--_ui5-v2-13-0-rc-0_input_focused_border_color);background-color:var(--sapField_Focus_Background)}.ui5-input-focusable-element{position:relative}:host([focused]:not([opened])) .ui5-input-focusable-element:after{content:var(--ui5-v2-13-0-rc-0_input_focus_pseudo_element_content);position:absolute;pointer-events:none;z-index:2;border:var(--sapContent_FocusWidth) var(--sapContent_FocusStyle) var(--_ui5-v2-13-0-rc-0_input_focus_outline_color);border-radius:var(--_ui5-v2-13-0-rc-0_input_focus_border_radius);top:var(--_ui5-v2-13-0-rc-0_input_focus_offset);bottom:var(--_ui5-v2-13-0-rc-0_input_focus_offset);left:var(--_ui5-v2-13-0-rc-0_input_focus_offset);right:var(--_ui5-v2-13-0-rc-0_input_focus_offset)}:host([focused][readonly]:not([opened])) .ui5-input-focusable-element:after{top:var(--_ui5-v2-13-0-rc-0_input_readonly_focus_offset);bottom:var(--_ui5-v2-13-0-rc-0_input_readonly_focus_offset);left:var(--_ui5-v2-13-0-rc-0_input_readonly_focus_offset);right:var(--_ui5-v2-13-0-rc-0_input_readonly_focus_offset);border-radius:var(--_ui5-v2-13-0-rc-0_input_readonly_focus_border_radius)}.ui5-input-root:before{content:"";position:absolute;width:calc(100% - 2px);left:1px;bottom:-2px;border-bottom-left-radius:8px;border-bottom-right-radius:8px;height:var(--_ui5-v2-13-0-rc-0_input_bottom_border_height);transition:var(--_ui5-v2-13-0-rc-0_input_transition);background-color:var(--_ui5-v2-13-0-rc-0_input_bottom_border_color)}.ui5-input-root{width:100%;height:100%;position:relative;background:transparent;display:inline-block;outline:none;box-sizing:border-box;color:inherit;transition:border-color .2s ease-in-out;border-radius:var(--_ui5-v2-13-0-rc-0_input_border_radius);overflow:hidden}:host([disabled]){opacity:var(--_ui5-v2-13-0-rc-0_input_disabled_opacity);cursor:default;pointer-events:none;background-color:var(--_ui5-v2-13-0-rc-0-input_disabled_background);border-color:var(--_ui5-v2-13-0-rc-0_input_disabled_border_color)}:host([disabled]) .ui5-input-root:before,:host([readonly]) .ui5-input-root:before{content:none}[inner-input]{background:transparent;color:inherit;border:none;font-style:inherit;-webkit-appearance:none;-moz-appearance:textfield;padding:var(--_ui5-v2-13-0-rc-0_input_inner_padding);box-sizing:border-box;width:100%;text-overflow:ellipsis;flex:1;outline:none;font-size:inherit;font-family:inherit;line-height:inherit;letter-spacing:inherit;word-spacing:inherit;text-align:inherit}[inner-input][inner-input-with-icon]{padding:var(--_ui5-v2-13-0-rc-0_input_inner_padding_with_icon)}[inner-input][type=search]::-webkit-search-decoration,[inner-input][type=search]::-webkit-search-cancel-button,[inner-input][type=search]::-webkit-search-results-button,[inner-input][type=search]::-webkit-search-results-decoration{display:none}[inner-input]::-ms-reveal,[inner-input]::-ms-clear{display:none}.ui5-input-value-state-icon{height:100%;display:var(--_ui5-v2-13-0-rc-0-input-value-state-icon-display);align-items:center}.ui5-input-value-state-icon>svg{margin-right:8px}[inner-input]::selection{background:var(--sapSelectedColor);color:var(--sapContent_ContrastTextColor)}:host([disabled]) [inner-input]::-webkit-input-placeholder{visibility:hidden}:host([readonly]) [inner-input]::-webkit-input-placeholder{visibility:hidden}:host([disabled]) [inner-input]::-moz-placeholder{visibility:hidden}:host([readonly]) [inner-input]::-moz-placeholder{visibility:hidden}[inner-input]::-webkit-input-placeholder{font-weight:400;font-style:var(--_ui5-v2-13-0-rc-0_input_placeholder_style);color:var(--_ui5-v2-13-0-rc-0_input_placeholder_color);padding-right:.125rem}[inner-input]::-moz-placeholder{font-weight:400;font-style:var(--_ui5-v2-13-0-rc-0_input_placeholder_style);color:var(--_ui5-v2-13-0-rc-0_input_placeholder_color);padding-right:.125rem}:host([value-state="Negative"]) [inner-input]::-webkit-input-placeholder{color:var(--_ui5-v2-13-0-rc-0-input_error_placeholder_color);font-weight:var(--_ui5-v2-13-0-rc-0_input_value_state_error_warning_placeholder_font_weight)}:host([value-state="Negative"]) [inner-input]::-moz-placeholder{color:var(--_ui5-v2-13-0-rc-0-input_error_placeholder_color);font-weight:var(--_ui5-v2-13-0-rc-0_input_value_state_error_warning_placeholder_font_weight)}:host([value-state="Critical"]) [inner-input]::-webkit-input-placeholder{font-weight:var(--_ui5-v2-13-0-rc-0_input_value_state_error_warning_placeholder_font_weight)}:host([value-state="Critical"]) [inner-input]::-moz-placeholder{font-weight:var(--_ui5-v2-13-0-rc-0_input_value_state_error_warning_placeholder_font_weight)}:host([value-state="Positive"]) [inner-input]::-webkit-input-placeholder{color:var(--_ui5-v2-13-0-rc-0_input_placeholder_color)}:host([value-state="Positive"]) [inner-input]::-moz-placeholder{color:var(--_ui5-v2-13-0-rc-0_input_placeholder_color)}:host([value-state="Information"]) [inner-input]::-webkit-input-placeholder{color:var(--_ui5-v2-13-0-rc-0_input_placeholder_color)}:host([value-state="Information"]) [inner-input]::-moz-placeholder{color:var(--_ui5-v2-13-0-rc-0_input_placeholder_color)}.ui5-input-content{height:100%;box-sizing:border-box;display:flex;flex-direction:row;justify-content:flex-end;overflow:hidden;outline:none;background:transparent;color:inherit;border-radius:var(--_ui5-v2-13-0-rc-0_input_border_radius)}:host([readonly]:not([disabled])){border:var(--_ui5-v2-13-0-rc-0_input_readonly_border);background:var(--sapField_ReadOnly_BackgroundStyle);background-color:var(--_ui5-v2-13-0-rc-0_input_readonly_background)}:host([value-state="None"]:not([readonly]):hover),:host(:not([value-state]):not([readonly]):hover){border:var(--_ui5-v2-13-0-rc-0_input_hover_border);border-color:var(--_ui5-v2-13-0-rc-0_input_focused_border_color);box-shadow:var(--sapField_Hover_Shadow);background:var(--sapField_Hover_BackgroundStyle);background-color:var(--sapField_Hover_Background)}:host(:not([value-state]):not([readonly])[focused]:not([opened]):hover),:host([value-state="None"]:not([readonly])[focused]:not([opened]):hover){box-shadow:none}:host([focused]):not([opened]) .ui5-input-root:before{content:none}:host(:not([readonly]):not([disabled])[value-state]:not([value-state="None"])){border-width:var(--_ui5-v2-13-0-rc-0_input_state_border_width)}:host([value-state="Negative"]) [inner-input],:host([value-state="Critical"]) [inner-input]{font-style:var(--_ui5-v2-13-0-rc-0_input_error_warning_font_style);text-indent:var(--_ui5-v2-13-0-rc-0_input_error_warning_text_indent)}:host([value-state="Negative"]) [inner-input]{font-weight:var(--_ui5-v2-13-0-rc-0_input_error_font_weight)}:host([value-state="Critical"]) [inner-input]{font-weight:var(--_ui5-v2-13-0-rc-0_input_warning_font_weight)}:host([value-state="Negative"]:not([readonly]):not([disabled])){background:var(--sapField_InvalidBackgroundStyle);background-color:var(--sapField_InvalidBackground);border-color:var(--_ui5-v2-13-0-rc-0_input_value_state_error_border_color);box-shadow:var(--sapField_InvalidShadow)}:host([value-state="Negative"][focused]:not([opened]):not([readonly])){background-color:var(--_ui5-v2-13-0-rc-0_input_focused_value_state_error_background);border-color:var(--_ui5-v2-13-0-rc-0_input_focused_value_state_error_border_color)}:host([value-state="Negative"][focused]:not([opened]):not([readonly])) .ui5-input-focusable-element:after{border-color:var(--_ui5-v2-13-0-rc-0_input_focused_value_state_error_focus_outline_color)}:host([value-state="Negative"]:not([readonly])) .ui5-input-root:before{background-color:var(--_ui5-v2-13-0-rc-0-input-value-state-error-border-botom-color)}:host([value-state="Negative"]:not([readonly]):not([focused]):hover),:host([value-state="Negative"]:not([readonly])[focused][opened]:hover){background-color:var(--_ui5-v2-13-0-rc-0_input_value_state_error_hover_background);box-shadow:var(--sapField_Hover_InvalidShadow)}:host([value-state="Negative"]:not([readonly]):not([disabled])),:host([value-state="Critical"]:not([readonly]):not([disabled])),:host([value-state="Information"]:not([readonly]):not([disabled])){border-style:var(--_ui5-v2-13-0-rc-0_input_error_warning_border_style)}:host([value-state="Critical"]:not([readonly]):not([disabled])){background:var(--sapField_WarningBackgroundStyle);background-color:var(--sapField_WarningBackground);border-color:var(--_ui5-v2-13-0-rc-0_input_value_state_warning_border_color);box-shadow:var(--sapField_WarningShadow)}:host([value-state="Critical"][focused]:not([opened]):not([readonly])){background-color:var(--_ui5-v2-13-0-rc-0_input_focused_value_state_warning_background);border-color:var(--_ui5-v2-13-0-rc-0_input_focused_value_state_warning_border_color)}:host([value-state="Critical"][focused]:not([opened]):not([readonly])) .ui5-input-focusable-element:after{border-color:var(--_ui5-v2-13-0-rc-0_input_focused_value_state_warning_focus_outline_color)}:host([value-state="Critical"]:not([readonly])) .ui5-input-root:before{background-color:var(--_ui5-v2-13-0-rc-0_input_value_state_warning_border_botom_color)}:host([value-state="Critical"]:not([readonly]):not([focused]):hover),:host([value-state="Critical"]:not([readonly])[focused][opened]:hover){background-color:var(--sapField_Hover_Background);box-shadow:var(--sapField_Hover_WarningShadow)}:host([value-state="Positive"]:not([readonly]):not([disabled])){background:var(--sapField_SuccessBackgroundStyle);background-color:var(--sapField_SuccessBackground);border-color:var(--_ui5-v2-13-0-rc-0_input_value_state_success_border_color);border-width:var(--_ui5-v2-13-0-rc-0_input_value_state_success_border_width);box-shadow:var(--sapField_SuccessShadow)}:host([value-state="Positive"][focused]:not([opened]):not([readonly])){background-color:var(--_ui5-v2-13-0-rc-0_input_focused_value_state_success_background);border-color:var(--_ui5-v2-13-0-rc-0_input_focused_value_state_success_border_color)}:host([value-state="Positive"][focused]:not([opened]):not([readonly])) .ui5-input-focusable-element:after{border-color:var(--_ui5-v2-13-0-rc-0_input_focused_value_state_success_focus_outline_color)}:host([value-state="Positive"]:not([readonly])) .ui5-input-root:before{background-color:var(--_ui5-v2-13-0-rc-0_input_value_state_success_border_botom_color)}:host([value-state="Positive"]:not([readonly]):not([focused]):hover),:host([value-state="Positive"]:not([readonly])[focused][opened]:hover){background-color:var(--sapField_Hover_Background);box-shadow:var(--sapField_Hover_SuccessShadow)}:host([value-state="Information"]:not([readonly]):not([disabled])){background:var(--sapField_InformationBackgroundStyle);background-color:var(--sapField_InformationBackground);border-color:var(--_ui5-v2-13-0-rc-0_input_value_state_information_border_color);border-width:var(--_ui5-v2-13-0-rc-0_input_information_border_width);box-shadow:var(--sapField_InformationShadow)}:host([value-state="Information"][focused]:not([opened]):not([readonly])){background-color:var(--_ui5-v2-13-0-rc-0_input_focused_value_state_information_background);border-color:var(--_ui5-v2-13-0-rc-0_input_focused_value_state_information_border_color)}:host([value-state="Information"]:not([readonly])) .ui5-input-root:before{background-color:var(--_ui5-v2-13-0-rc-0_input_value_success_information_border_botom_color)}:host([value-state="Information"]:not([readonly]):not([focused]):hover),:host([value-state="Information"]:not([readonly])[focused][opened]:hover){background-color:var(--sapField_Hover_Background);box-shadow:var(--sapField_Hover_InformationShadow)}.ui5-input-icon-root{min-width:var(--_ui5-v2-13-0-rc-0_input_icon_min_width);height:100%;display:flex;justify-content:center;align-items:center}::slotted([ui5-icon][slot="icon"]){align-self:start;padding:var(--_ui5-v2-13-0-rc-0_input_custom_icon_padding);box-sizing:content-box!important}:host([value-state="Negative"]) .inputIcon,:host([value-state="Critical"]) .inputIcon{padding:var(--_ui5-v2-13-0-rc-0_input_error_warning_icon_padding)}:host([value-state="Negative"][focused]) .inputIcon,:host([value-state="Critical"][focused]) .inputIcon{padding:var(--_ui5-v2-13-0-rc-0_input_error_warning_focused_icon_padding)}:host([value-state="Information"]) .inputIcon{padding:var(--_ui5-v2-13-0-rc-0_input_information_icon_padding)}:host([value-state="Information"][focused]) .inputIcon{padding:var(--_ui5-v2-13-0-rc-0_input_information_focused_icon_padding)}:host([value-state="Negative"]) ::slotted(.inputIcon[ui5-icon]),:host([value-state="Negative"]) ::slotted([ui5-icon][slot="icon"]),:host([value-state="Critical"]) ::slotted([ui5-icon][slot="icon"]){padding:var(--_ui5-v2-13-0-rc-0_input_error_warning_custom_icon_padding)}:host([value-state="Negative"][focused]) ::slotted(.inputIcon[ui5-icon]),:host([value-state="Negative"][focused]) ::slotted([ui5-icon][slot="icon"]),:host([value-state="Critical"][focused]) ::slotted([ui5-icon][slot="icon"]){padding:var(--_ui5-v2-13-0-rc-0_input_error_warning_custom_focused_icon_padding)}:host([value-state="Information"]) ::slotted([ui5-icon][slot="icon"]){padding:var(--_ui5-v2-13-0-rc-0_input_information_custom_icon_padding)}:host([value-state="Information"][focused]) ::slotted([ui5-icon][slot="icon"]){padding:var(--_ui5-v2-13-0-rc-0_input_information_custom_focused_icon_padding)}:host([value-state="Negative"]) .inputIcon:active,:host([value-state="Negative"]) .inputIcon.inputIcon--pressed{box-shadow:var(--_ui5-v2-13-0-rc-0_input_error_icon_box_shadow);color:var(--_ui5-v2-13-0-rc-0_input_icon_error_pressed_color)}:host([value-state="Negative"]) .inputIcon:not(.inputIcon--pressed):not(:active):hover{box-shadow:var(--_ui5-v2-13-0-rc-0_input_error_icon_box_shadow)}:host([value-state="Critical"]) .inputIcon:active,:host([value-state="Critical"]) .inputIcon.inputIcon--pressed{box-shadow:var(--_ui5-v2-13-0-rc-0_input_warning_icon_box_shadow);color:var(--_ui5-v2-13-0-rc-0_input_icon_warning_pressed_color)}:host([value-state="Critical"]) .inputIcon:not(.inputIcon--pressed):not(:active):hover{box-shadow:var(--_ui5-v2-13-0-rc-0_input_warning_icon_box_shadow)}:host([value-state="Information"]) .inputIcon:active,:host([value-state="Information"]) .inputIcon.inputIcon--pressed{box-shadow:var(--_ui5-v2-13-0-rc-0_input_information_icon_box_shadow);color:var(--_ui5-v2-13-0-rc-0_input_icon_information_pressed_color)}:host([value-state="Information"]) .inputIcon:not(.inputIcon--pressed):not(:active):hover{box-shadow:var(--_ui5-v2-13-0-rc-0_input_information_icon_box_shadow)}:host([value-state="Positive"]) .inputIcon:active,:host([value-state="Positive"]) .inputIcon.inputIcon--pressed{box-shadow:var(--_ui5-v2-13-0-rc-0_input_success_icon_box_shadow);color:var(--_ui5-v2-13-0-rc-0_input_icon_success_pressed_color)}:host([value-state="Positive"]) .inputIcon:not(.inputIcon--pressed):not(:active):hover{box-shadow:var(--_ui5-v2-13-0-rc-0_input_success_icon_box_shadow)}.ui5-input-clear-icon-wrapper{height:var(--_ui5-v2-13-0-rc-0_input_icon_wrapper_height);padding:0;width:var(--_ui5-v2-13-0-rc-0_input_icon_width);min-width:var(--_ui5-v2-13-0-rc-0_input_icon_width);display:flex;justify-content:center;align-items:center;box-sizing:border-box}:host([value-state]:not([value-state="None"]):not([value-state="Positive"])) .ui5-input-clear-icon-wrapper{height:var(--_ui5-v2-13-0-rc-0_input_icon_wrapper_state_height);vertical-align:top}:host([value-state="Positive"]) .ui5-input-clear-icon-wrapper{height:var(--_ui5-v2-13-0-rc-0_input_icon_wrapper_success_state_height)}[ui5-icon].ui5-input-clear-icon{padding:0;color:inherit}[inner-input]::-webkit-outer-spin-button,[inner-input]::-webkit-inner-spin-button{-webkit-appearance:inherit;margin:inherit}:host([icon]){min-width:var(--_ui5-v2-13-0-rc-0_button_base_min_width);width:var(--_ui5-v2-13-0-rc-0_button_base_min_width)}:host([icon]) .ui5-select-root{min-width:var(--_ui5-v2-13-0-rc-0_button_base_min_width)}:host([icon]) .ui5-select-label-root{min-width:0;padding-inline-start:0}.ui5-select-root{min-width:calc(var(--_ui5-v2-13-0-rc-0_input_min_width) + (var(--_ui5-v2-13-0-rc-0-input-icons-count)*var(--_ui5-v2-13-0-rc-0_input_icon_width)));width:100%;height:100%;display:flex;outline:none;cursor:pointer;overflow:hidden;border-radius:var(--_ui5-v2-13-0-rc-0_input_border_radius)}.ui5-select-label-root{flex-shrink:1;flex-grow:1;align-self:center;min-width:1rem;padding-inline-start:.5rem;cursor:pointer;outline:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--_ui5-v2-13-0-rc-0_select_label_color);font-family:"72override",var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400}.ui5-select-option-icon{padding-inline-start:.5rem;color:var(--sapField_TextColor);align-self:center}:host(:not([disabled])){cursor:pointer}.ui5-select-icon-root{display:flex;justify-content:center;align-items:center;box-sizing:border-box;width:var(--_ui5-v2-13-0-rc-0_select_icon_width);min-width:var(--_ui5-v2-13-0-rc-0_select_icon_width);height:var(--_ui5-v2-13-0-rc-0_select_icon_wrapper_height);padding:0}.ui5-select-icon{color:inherit}:host([value-state]:not([value-state="None"],[value-state="Positive"])) .ui5-select-icon-root{height:var(--_ui5-v2-13-0-rc-0_select_icon_wrapper_state_height)}
143
+ `;
144
+
145
+ Icons.p("sap/ushell/gen/ui5/webcomponents-theming", "sap_horizon", async () => parametersBundle_css.defaultThemeBase);
146
+ Icons.p("sap/ushell/gen/ui5/webcomponents", "sap_horizon", async () => i18nDefaults.defaultTheme);
147
+ var ResponsivePopoverCommonCss = `.input-root-phone{flex:1;position:relative;height:var(--_ui5-v2-13-0-rc-0_input_height);color:var(--sapField_TextColor);font-size:var(--sapFontSize);font-family:"72override",var(--sapFontFamily);background:var(--sapField_BackgroundStyle);background-color:var(--_ui5-v2-13-0-rc-0_input_background_color);border:var(--_ui5-v2-13-0-rc-0-input-border);border-radius:var(--_ui5-v2-13-0-rc-0_input_border_radius);box-sizing:border-box}.input-root-phone [inner-input]{padding:0 .5rem;width:100%;height:100%}.input-root-phone [inner-input]:focus{background-color:var(--sapField_Focus_Background)}.input-root-phone:focus-within:before{content:"";position:absolute;pointer-events:none;z-index:2;border:var(--sapContent_FocusWidth) var(--sapContent_FocusStyle) var(--sapContent_FocusColor);border-radius:var(--_ui5-v2-13-0-rc-0_input_focus_border_radius);top:var(--_ui5-v2-13-0-rc-0_input_focus_offset);bottom:var(--_ui5-v2-13-0-rc-0_input_focus_offset);left:var(--_ui5-v2-13-0-rc-0_input_focus_offset);right:var(--_ui5-v2-13-0-rc-0_input_focus_offset)}.input-root-phone [value-state=Negative] .inputIcon[data-ui5-compact-size],.input-root-phone [value-state=Positive] .inputIcon[data-ui5-compact-size],.input-root-phone [value-state=Critical] .inputIcon[data-ui5-compact-size]{padding:.1875rem .5rem}[inner-input]{background:transparent;color:inherit;border:none;font-style:normal;-webkit-appearance:none;-moz-appearance:textfield;line-height:normal;padding:var(--_ui5-v2-13-0-rc-0_input_inner_padding);box-sizing:border-box;min-width:3rem;text-overflow:ellipsis;flex:1;outline:none;font-size:inherit;font-family:inherit;border-radius:var(--_ui5-v2-13-0-rc-0_input_border_radius)}[inner-input]::selection,[inner-input]::-moz-selection{background:var(--sapSelectedColor);color:var(--sapContent_ContrastTextColor)}[inner-input]::-webkit-input-placeholder{font-style:var(--_ui5-v2-13-0-rc-0_input_placeholder_style);color:var(--sapField_PlaceholderTextColor)}[inner-input]::-moz-placeholder{font-style:var(--_ui5-v2-13-0-rc-0_input_placeholder_style);color:var(--sapField_PlaceholderTextColor)}.input-root-phone[value-state]:not([value-state=None]){border-width:var(--_ui5-v2-13-0-rc-0_input_state_border_width)}.input-root-phone[value-state=Negative] [inner-input],.input-root-phone[value-state=Critical] [inner-input]{font-style:var(--_ui5-v2-13-0-rc-0_input_error_warning_font_style)}.input-root-phone[value-state=Negative] [inner-input]{font-weight:var(--_ui5-v2-13-0-rc-0_input_error_font_weight)}.input-root-phone[value-state=Negative]:not([readonly]){background:var(--sapField_InvalidBackgroundStyle);background-color:var(--sapField_InvalidBackground);border-color:var(--_ui5-v2-13-0-rc-0_input_value_state_error_border_color)}.input-root-phone[value-state=Negative]:not([readonly]) [inner-input]:focus{background-color:var(--_ui5-v2-13-0-rc-0_input_focused_value_state_error_background);border-color:var(--_ui5-v2-13-0-rc-0_input_focused_value_state_error_border_color)}.input-root-phone[value-state=Negative]:not([readonly]):focus-within:before{border-color:var(--_ui5-v2-13-0-rc-0_input_focused_value_state_error_focus_outline_color)}.input-root-phone[value-state=Negative]:not([readonly]):not([disabled]),.input-root-phone[value-state=Critical]:not([readonly]):not([disabled]),.input-root-phone[value-state=Information]:not([readonly]):not([disabled]){border-style:var(--_ui5-v2-13-0-rc-0_input_error_warning_border_style)}.input-root-phone[value-state=Critical]:not([readonly]){background:var(--sapField_WarningBackgroundStyle);background-color:var(--sapField_WarningBackground);border-color:var(--_ui5-v2-13-0-rc-0_input_value_state_warning_border_color)}.input-root-phone[value-state=Critical]:not([readonly]) [inner-input]:focus{background-color:var(--_ui5-v2-13-0-rc-0_input_focused_value_state_warning_background);border-color:var(--_ui5-v2-13-0-rc-0_input_focused_value_state_warning_border_color)}.input-root-phone[value-state=Critical]:not([readonly]):focus-within:before{border-color:var(--_ui5-v2-13-0-rc-0_input_focused_value_state_warning_focus_outline_color)}.input-root-phone[value-state=Positive]:not([readonly]){background:var(--sapField_SuccessBackgroundStyle);background-color:var(--sapField_SuccessBackground);border-color:var(--_ui5-v2-13-0-rc-0_input_value_state_success_border_color);border-width:var(--_ui5-v2-13-0-rc-0_input_value_state_success_border_width)}.input-root-phone[value-state=Positive]:not([readonly]) [inner-input]:focus{background-color:var(--_ui5-v2-13-0-rc-0_input_focused_value_state_success_background);border-color:var(--_ui5-v2-13-0-rc-0_input_focused_value_state_success_border_color)}.input-root-phone[value-state=Positive]:not([readonly]):focus-within:before{border-color:var(--_ui5-v2-13-0-rc-0_input_focused_value_state_success_focus_outline_color)}.input-root-phone[value-state=Information]:not([readonly]){background:var(--sapField_InformationBackgroundStyle);background-color:var(--sapField_InformationBackground);border-color:var(--_ui5-v2-13-0-rc-0_input_value_state_information_border_color);border-width:var(--_ui5-v2-13-0-rc-0_input_information_border_width)}.input-root-phone[value-state=Information]:not([readonly]) [inner-input]:focus{background-color:var(--_ui5-v2-13-0-rc-0_input_focused_value_state_information_background);border-color:var(--_ui5-v2-13-0-rc-0_input_focused_value_state_information_border_color)}.ui5-multi-combobox-toggle-button{margin-left:.5rem}.ui5-responsive-popover-header{width:100%;min-height:2.5rem;display:flex;flex-direction:column}.ui5-responsive-popover-header-text{width:calc(100% - var(--_ui5-v2-13-0-rc-0_button_base_min_width))}.ui5-responsive-popover-header .row{box-sizing:border-box;padding:.25rem 1rem;min-height:2.5rem;display:flex;justify-content:center;align-items:center;font-size:var(--sapFontHeader5Size)}.ui5-responsive-popover-footer{display:flex;justify-content:flex-end;padding:.25rem 0;width:100%}.ui5-responsive-popover-close-btn{position:absolute;right:1rem}
148
+ `;
149
+
150
+ Icons.p("sap/ushell/gen/ui5/webcomponents-theming", "sap_horizon", async () => parametersBundle_css.defaultThemeBase);
151
+ Icons.p("sap/ushell/gen/ui5/webcomponents", "sap_horizon", async () => i18nDefaults.defaultTheme);
152
+ var ValueStateMessageCss = `.ui5-valuestatemessage-popover{border-radius:var(--_ui5-v2-13-0-rc-0_value_state_message_popover_border_radius);box-shadow:var(--_ui5-v2-13-0-rc-0_value_state_message_popover_box_shadow)}.ui5-input-value-state-message-icon{width:var(--_ui5-v2-13-0-rc-0_value_state_message_icon_width);height:var(--_ui5-v2-13-0-rc-0_value_state_message_icon_height);display:var(--_ui5-v2-13-0-rc-0_input_value_state_icon_display);position:absolute;padding-right:.375rem}.ui5-valuestatemessage-root .ui5-input-value-state-message-icon{left:var(--_ui5-v2-13-0-rc-0_input_value_state_icon_offset)}.ui5-input-value-state-message-icon[name=error]{color:var(--sapNegativeElementColor)}.ui5-input-value-state-message-icon[name=alert]{color:var(--sapCriticalElementColor)}.ui5-input-value-state-message-icon[name=success]{color:var(--sapPositiveElementColor)}.ui5-input-value-state-message-icon[name=information]{color:var(--sapInformativeElementColor)}.ui5-valuestatemessage-root{box-sizing:border-box;display:inline-block;color:var(--sapTextColor);font-size:var(--sapFontSmallSize);font-family:"72override",var(--sapFontFamily);height:auto;padding:var(--_ui5-v2-13-0-rc-0_value_state_message_padding);overflow:hidden;text-overflow:ellipsis;min-width:6.25rem;border:var(--_ui5-v2-13-0-rc-0_value_state_message_border);line-height:var(--_ui5-v2-13-0-rc-0_value_state_message_line_height)}[ui5-responsive-popover] .ui5-valuestatemessage-header,[ui5-popover] .ui5-valuestatemessage-header{min-height:2rem}[ui5-responsive-popover] .ui5-valuestatemessage-header{padding:var(--_ui5-v2-13-0-rc-0_value_state_header_padding);border:var(--_ui5-v2-13-0-rc-0_value_state_header_border);border-bottom:var(--_ui5-v2-13-0-rc-0_value_state_header_border_bottom);flex-grow:1;position:relative}.ui5-valuestatemessage--success{background:var(--sapSuccessBackground)}.ui5-valuestatemessage--warning{background:var(--sapWarningBackground)}.ui5-valuestatemessage--error{background:var(--sapErrorBackground)}.ui5-valuestatemessage--information{background:var(--sapInformationBackground)}.ui5-responsive-popover-header.ui5-responsive-popover-header--focused,.ui5-responsive-popover-header:focus{outline-offset:var(--_ui5-v2-13-0-rc-0_value_state_header_offset);outline:var(--sapContent_FocusWidth) var(--sapContent_FocusStyle) var(--sapContent_FocusColor)}.ui5-valuestatemessage-popover::part(header),.ui5-valuestatemessage-popover::part(content){padding:0}.ui5-valuestatemessage-popover::part(header),.ui5-valuestatemessage-popover::part(footer){min-height:0}.ui5-valuestatemessage-popover::part(header),.ui5-popover-with-value-state-header::part(header),.ui5-popover-with-value-state-header-phone::part(header){margin-bottom:0}.ui5-popover-with-value-state-header-phone .ui5-valuestatemessage-root{padding:var(--_ui5-v2-13-0-rc-0_value_state_message_padding_phone);width:100%}.ui5-popover-with-value-state-header-phone .ui5-input-value-state-message-icon{left:var(--_ui5-v2-13-0-rc-0_value_state_message_icon_offset_phone)}.ui5-popover-with-value-state-header-phone .ui5-valuestatemessage-header{position:relative;flex:none;top:0;left:0}.ui5-popover-with-value-state-header-phone::part(content){padding:0;overflow:hidden;display:flex;flex-direction:column}.ui5-popover-with-value-state-header-phone [ui5-list]{overflow:auto}[ui5-responsive-popover] .ui5-valuestatemessage--error{box-shadow:var(--_ui5-v2-13-0-rc-0_value_state_header_box_shadow_error)}[ui5-responsive-popover] .ui5-valuestatemessage--information{box-shadow:var(--_ui5-v2-13-0-rc-0_value_state_header_box_shadow_information)}[ui5-responsive-popover] .ui5-valuestatemessage--success{box-shadow:var(--_ui5-v2-13-0-rc-0_value_state_header_box_shadow_success)}[ui5-responsive-popover] .ui5-valuestatemessage--warning{box-shadow:var(--_ui5-v2-13-0-rc-0_value_state_header_box_shadow_warning)}[ui5-responsive-popover].ui5-popover-with-value-state-header .ui5-valuestatemessage-root:has(+[ui5-list]:empty){box-shadow:none}
153
+ `;
154
+
155
+ Icons.p("sap/ushell/gen/ui5/webcomponents-theming", "sap_horizon", async () => parametersBundle_css.defaultThemeBase);
156
+ Icons.p("sap/ushell/gen/ui5/webcomponents", "sap_horizon", async () => i18nDefaults.defaultTheme);
157
+ var SelectPopoverCss = `.ui5-select-popover::part(content),.ui5-select-popover::part(header){padding:0}
158
+ `;
159
+
160
+ var __decorate$5 = (this && this.__decorate) || function (decorators, target, key, desc) {
161
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
162
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
163
+ 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;
164
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
165
+ };
166
+ var Select_1;
167
+ /**
168
+ * @class
169
+ *
170
+ * ### Overview
171
+ *
172
+ * The `ui5-select` component is used to create a drop-down list.
173
+ *
174
+ * ### Usage
175
+ *
176
+ * There are two main usages of the `ui5-select>`.
177
+ *
178
+ * - With Option (`ui5-option`) web component:
179
+ *
180
+ * The available options of the Select are defined by using the Option component.
181
+ * The Option comes with predefined design and layout, including `icon`, `text` and `additional-text`.
182
+ *
183
+ * - With OptionCustom (`ui5-option-custom`) web component.
184
+ *
185
+ * Options with custom content are defined by using the OptionCustom component.
186
+ * The OptionCustom component comes with no predefined layout and it expects consumers to define it.
187
+ *
188
+ * ### Selection
189
+ *
190
+ * The options can be selected via user interaction (click or with the use of the Space and Enter keys)
191
+ * and programmatically - the Select component supports two distinct selection APIs, though mixing them is not supported:
192
+ * - The "value" property of the Select component
193
+ * - The "selected" property on individual options
194
+ *
195
+ * **Note:** If the "value" property is set but does not match any option,
196
+ * no option will be selected and the Select component will be displayed as empty.
197
+ *
198
+ * **Note:** when both "value" and "selected" are both used (although discouraged),
199
+ * the "value" property will take precedence.
200
+ *
201
+ * ### Keyboard Handling
202
+ *
203
+ * The `ui5-select` provides advanced keyboard handling.
204
+ *
205
+ * - [F4] / [Alt] + [Up] / [Alt] + [Down] / [Space] or [Enter] - Opens/closes the drop-down.
206
+ * - [Up] or [Down] - If the drop-down is closed - changes selection to the next or the previous option. If the drop-down is opened - moves focus to the next or the previous option.
207
+ * - [Space], [Enter] - If the drop-down is opened - selects the focused option.
208
+ * - [Escape] - Closes the drop-down without changing the selection.
209
+ * - [Home] - Navigates to first option
210
+ * - [End] - Navigates to the last option
211
+ *
212
+ * ### ES6 Module Import
213
+ *
214
+ * `import "sap/ushell/gen/ui5/webcomponents/dist/Select";`
215
+ *
216
+ * `import "sap/ushell/gen/ui5/webcomponents/dist/Option";`
217
+ * `import "sap/ushell/gen/ui5/webcomponents/dist/OptionCustom";`
218
+ * @constructor
219
+ * @extends UI5Element
220
+ * @public
221
+ * @csspart popover - Used to style the popover element
222
+ * @since 0.8.0
223
+ */
224
+ let Select = Select_1 = class Select extends webcomponentsBase.b {
225
+ constructor() {
226
+ super(...arguments);
227
+ /**
228
+ * Defines whether the component is in disabled state.
229
+ *
230
+ * **Note:** A disabled component is noninteractive.
231
+ * @default false
232
+ * @public
233
+ */
234
+ this.disabled = false;
235
+ /**
236
+ * Defines the value state of the component.
237
+ * @default "None"
238
+ * @public
239
+ */
240
+ this.valueState = "None";
241
+ /**
242
+ * Defines whether the component is required.
243
+ * @since 1.0.0-rc.9
244
+ * @default false
245
+ * @public
246
+ */
247
+ this.required = false;
248
+ /**
249
+ * Defines whether the component is read-only.
250
+ *
251
+ * **Note:** A read-only component is not editable,
252
+ * but still provides visual feedback upon user interaction.
253
+ * @default false
254
+ * @since 1.21.0
255
+ * @public
256
+ */
257
+ this.readonly = false;
258
+ /**
259
+ * @private
260
+ */
261
+ this._iconPressed = false;
262
+ /**
263
+ * @private
264
+ */
265
+ this.opened = false;
266
+ /**
267
+ * @private
268
+ */
269
+ this._listWidth = 0;
270
+ /**
271
+ * @private
272
+ */
273
+ this.focused = false;
274
+ this._selectedIndexBeforeOpen = -1;
275
+ this._escapePressed = false;
276
+ this._lastSelectedOption = null;
277
+ this._typedChars = "";
278
+ }
279
+ ;
280
+ get formValidityMessage() {
281
+ return Select_1.i18nBundle.getText(i18nDefaults.FORM_SELECTABLE_REQUIRED);
282
+ }
283
+ get formValidity() {
284
+ return { valueMissing: this.required && (this.selectedOption?.getAttribute("value") === "") };
285
+ }
286
+ async formElementAnchor() {
287
+ return this.getFocusDomRefAsync();
288
+ }
289
+ get formFormattedValue() {
290
+ if (this._valueStorage !== undefined) {
291
+ return this._valueStorage;
292
+ }
293
+ const selectedOption = this.selectedOption;
294
+ if (selectedOption) {
295
+ if ("value" in selectedOption && selectedOption.value !== undefined) {
296
+ return selectedOption.value;
297
+ }
298
+ return selectedOption.hasAttribute("value") ? selectedOption.getAttribute("value") : selectedOption.textContent;
299
+ }
300
+ return "";
301
+ }
302
+ onBeforeRendering() {
303
+ this._applySelection();
304
+ this.style.setProperty(Icons.d$1("--_ui5-input-icons-count"), `${this.iconsCount}`);
305
+ }
306
+ onAfterRendering() {
307
+ this.toggleValueStatePopover(this.shouldOpenValueStateMessagePopover);
308
+ if (this._isPickerOpen) {
309
+ if (!this._listWidth) {
310
+ this._listWidth = this.responsivePopover.offsetWidth;
311
+ }
312
+ }
313
+ }
314
+ /**
315
+ * Selects an option, based on the Select's "value" property,
316
+ * or the options' "selected" property.
317
+ */
318
+ _applySelection() {
319
+ // Flow 1: "value" has not been used
320
+ if (this._valueStorage === undefined) {
321
+ this._applyAutoSelection();
322
+ return;
323
+ }
324
+ // Flow 2: "value" has been used - select the option by value or apply auto selection
325
+ this._applySelectionByValue(this._valueStorage);
326
+ }
327
+ /**
328
+ * Selects an option by given value.
329
+ */
330
+ _applySelectionByValue(value) {
331
+ if (value !== (this.selectedOption?.value || this.selectedOption?.textContent)) {
332
+ const options = Array.from(this.children);
333
+ options.forEach(option => {
334
+ option.selected = !!((option.getAttribute("value") || option.textContent) === value);
335
+ });
336
+ }
337
+ }
338
+ /**
339
+ * Selects the first option if no option is selected,
340
+ * or selects the last option if multiple options are selected.
341
+ */
342
+ _applyAutoSelection() {
343
+ let selectedIndex = this.options.findLastIndex(option => option.selected);
344
+ selectedIndex = selectedIndex === -1 ? 0 : selectedIndex;
345
+ for (let i = 0; i < this.options.length; i++) {
346
+ this.options[i].selected = selectedIndex === i;
347
+ if (selectedIndex === i) {
348
+ break;
349
+ }
350
+ }
351
+ }
352
+ /**
353
+ * Sets value by given option.
354
+ */
355
+ _setValueByOption(option) {
356
+ this.value = option.value || option.textContent || "";
357
+ }
358
+ _applyFocus() {
359
+ this.focus();
360
+ }
361
+ _onfocusin() {
362
+ this.focused = true;
363
+ }
364
+ _onfocusout() {
365
+ this.focused = false;
366
+ }
367
+ get _isPickerOpen() {
368
+ return !!this.responsivePopover && this.responsivePopover.open;
369
+ }
370
+ _respPopover() {
371
+ return this.shadowRoot.querySelector("[ui5-responsive-popover]");
372
+ }
373
+ /**
374
+ * Defines the value of the component:
375
+ *
376
+ * - when get - returns the value of the component or the value/text content of the selected option.
377
+ * - when set - selects the option with matching `value` property or text content.
378
+ *
379
+ * **Note:** Use either the Select's value or the Options' selected property.
380
+ * Mixed usage could result in unexpected behavior.
381
+ *
382
+ * **Note:** If the given value does not match any existing option,
383
+ * no option will be selected and the Select component will be displayed as empty.
384
+ * @public
385
+ * @default ""
386
+ * @since 1.20.0
387
+ * @formProperty
388
+ * @formEvents change liveChange
389
+ */
390
+ set value(newValue) {
391
+ this._valueStorage = newValue;
392
+ }
393
+ get value() {
394
+ if (this._valueStorage !== undefined) {
395
+ return this._valueStorage;
396
+ }
397
+ return this.selectedOption?.value === undefined ? (this.selectedOption?.textContent || "") : this.selectedOption?.value;
398
+ }
399
+ get _selectedIndex() {
400
+ return this.options.findIndex(option => option.selected);
401
+ }
402
+ /**
403
+ * Currently selected `ui5-option` element.
404
+ * @public
405
+ * @default undefined
406
+ */
407
+ get selectedOption() {
408
+ return this.options.find(option => option.selected);
409
+ }
410
+ get text() {
411
+ return this.selectedOption?.effectiveDisplayText;
412
+ }
413
+ _toggleRespPopover() {
414
+ if (this.disabled || this.readonly) {
415
+ return;
416
+ }
417
+ this._iconPressed = true;
418
+ this.responsivePopover = this._respPopover();
419
+ if (this._isPickerOpen) {
420
+ this.responsivePopover.open = false;
421
+ }
422
+ else {
423
+ this.responsivePopover.opener = this;
424
+ this.responsivePopover.open = true;
425
+ }
426
+ }
427
+ _onkeydown(e) {
428
+ const isTab = (webcomponentsBase.B(e) || webcomponentsBase.m$1(e));
429
+ if (isTab && this._isPickerOpen) {
430
+ this.responsivePopover.open = false;
431
+ }
432
+ else if (webcomponentsBase.ao(e)) {
433
+ e.preventDefault();
434
+ this._toggleRespPopover();
435
+ }
436
+ else if (webcomponentsBase.i(e)) {
437
+ e.preventDefault();
438
+ }
439
+ else if (webcomponentsBase.H(e) && this._isPickerOpen) {
440
+ this._escapePressed = true;
441
+ }
442
+ else if (webcomponentsBase.F(e)) {
443
+ this._handleHomeKey(e);
444
+ }
445
+ else if (webcomponentsBase.W(e)) {
446
+ this._handleEndKey(e);
447
+ }
448
+ else if (webcomponentsBase.b$1(e)) {
449
+ this._handleSelectionChange();
450
+ }
451
+ else if (webcomponentsBase.D(e) || webcomponentsBase.P(e)) {
452
+ this._handleArrowNavigation(e);
453
+ }
454
+ }
455
+ _handleKeyboardNavigation(e) {
456
+ if (webcomponentsBase.b$1(e) || this.readonly) {
457
+ return;
458
+ }
459
+ const typedCharacter = e.key.toLowerCase();
460
+ this._typedChars += typedCharacter;
461
+ // We check if we have more than one characters and they are all duplicate, we set the
462
+ // text to be the last input character (typedCharacter). If not, we set the text to be
463
+ // the whole input string.
464
+ const text = (/^(.)\1+$/i).test(this._typedChars) ? typedCharacter : this._typedChars;
465
+ clearTimeout(this._typingTimeoutID);
466
+ this._typingTimeoutID = setTimeout(() => {
467
+ this._typedChars = "";
468
+ this._typingTimeoutID = -1;
469
+ }, 1000);
470
+ this._selectTypedItem(text);
471
+ }
472
+ _selectTypedItem(text) {
473
+ const currentIndex = this._selectedIndex;
474
+ const itemToSelect = this._searchNextItemByText(text);
475
+ if (itemToSelect) {
476
+ const nextIndex = this.options.indexOf(itemToSelect);
477
+ this._changeSelectedItem(this._selectedIndex, nextIndex);
478
+ if (currentIndex !== this._selectedIndex) {
479
+ this.itemSelectionAnnounce();
480
+ this._scrollSelectedItem();
481
+ }
482
+ }
483
+ }
484
+ _searchNextItemByText(text) {
485
+ let orderedOptions = this.options.slice(0);
486
+ const optionsAfterSelected = orderedOptions.splice(this._selectedIndex + 1, orderedOptions.length - this._selectedIndex);
487
+ const optionsBeforeSelected = orderedOptions.splice(0, orderedOptions.length - 1);
488
+ orderedOptions = optionsAfterSelected.concat(optionsBeforeSelected);
489
+ return orderedOptions.find(option => option.effectiveDisplayText.toLowerCase().startsWith(text));
490
+ }
491
+ _handleHomeKey(e) {
492
+ e.preventDefault();
493
+ if (this.readonly) {
494
+ return;
495
+ }
496
+ this._changeSelectedItem(this._selectedIndex, 0);
497
+ }
498
+ _handleEndKey(e) {
499
+ e.preventDefault();
500
+ if (this.readonly) {
501
+ return;
502
+ }
503
+ const lastIndex = this.options.length - 1;
504
+ this._changeSelectedItem(this._selectedIndex, lastIndex);
505
+ }
506
+ _onkeyup(e) {
507
+ if (webcomponentsBase.i(e)) {
508
+ if (this._isPickerOpen) {
509
+ this._handleSelectionChange();
510
+ }
511
+ else {
512
+ this._toggleRespPopover();
513
+ }
514
+ }
515
+ }
516
+ _getItemIndex(item) {
517
+ return this.options.indexOf(item);
518
+ }
519
+ _select(index) {
520
+ const selectedIndex = this._selectedIndex;
521
+ if (index < 0 || index >= this.options.length || this.options.length === 0) {
522
+ return;
523
+ }
524
+ if (this.options[selectedIndex]) {
525
+ this.options[selectedIndex].selected = false;
526
+ }
527
+ const selectedOption = this.options[index];
528
+ if (selectedIndex !== index) {
529
+ this.fireDecoratorEvent("live-change", { selectedOption });
530
+ }
531
+ selectedOption.selected = true;
532
+ if (this._valueStorage !== undefined) {
533
+ this._setValueByOption(selectedOption);
534
+ }
535
+ }
536
+ /**
537
+ * The user clicked on an item from the list
538
+ * @private
539
+ */
540
+ _handleItemPress(e) {
541
+ const listItem = e.detail.item;
542
+ const selectedItemIndex = this._getItemIndex(listItem);
543
+ this._handleSelectionChange(selectedItemIndex);
544
+ }
545
+ _itemMousedown(e) {
546
+ // prevent actual focus of items
547
+ e.preventDefault();
548
+ }
549
+ _onclick() {
550
+ this.getFocusDomRef().focus();
551
+ this._toggleRespPopover();
552
+ }
553
+ /**
554
+ * The user selected an item with Enter or Space
555
+ * @private
556
+ */
557
+ _handleSelectionChange(index = this._selectedIndex) {
558
+ this._typedChars = "";
559
+ this._select(index);
560
+ this._toggleRespPopover();
561
+ }
562
+ _scrollSelectedItem() {
563
+ if (this._isPickerOpen) {
564
+ const itemRef = this._currentlySelectedOption?.getDomRef();
565
+ if (itemRef) {
566
+ itemRef.scrollIntoView({
567
+ behavior: "auto",
568
+ block: "nearest",
569
+ inline: "nearest",
570
+ });
571
+ }
572
+ }
573
+ }
574
+ _handleArrowNavigation(e) {
575
+ e.preventDefault();
576
+ if (this.readonly) {
577
+ return;
578
+ }
579
+ let nextIndex = -1;
580
+ const currentIndex = this._selectedIndex;
581
+ const isDownKey = webcomponentsBase.P(e);
582
+ if (isDownKey) {
583
+ nextIndex = this._getNextOptionIndex();
584
+ }
585
+ else {
586
+ nextIndex = this._getPreviousOptionIndex();
587
+ }
588
+ this._changeSelectedItem(this._selectedIndex, nextIndex);
589
+ if (currentIndex !== this._selectedIndex) {
590
+ // Announce new item even if picker is opened.
591
+ // The aria-activedescendents attribute can't be used,
592
+ // because listitem elements are in different shadow dom
593
+ this.itemSelectionAnnounce();
594
+ this._scrollSelectedItem();
595
+ }
596
+ }
597
+ _changeSelectedItem(oldIndex, newIndex) {
598
+ const options = this.options;
599
+ const previousOption = options[oldIndex];
600
+ const nextOption = options[newIndex];
601
+ if (previousOption === nextOption) {
602
+ return;
603
+ }
604
+ previousOption.selected = false;
605
+ previousOption.focused = false;
606
+ nextOption.selected = true;
607
+ nextOption.focused = true;
608
+ if (this._valueStorage !== undefined) {
609
+ this._setValueByOption(nextOption);
610
+ }
611
+ this.fireDecoratorEvent("live-change", { selectedOption: nextOption });
612
+ if (!this._isPickerOpen) {
613
+ // arrow pressed on closed picker - do selection change
614
+ this._fireChangeEvent(nextOption);
615
+ }
616
+ }
617
+ _getNextOptionIndex() {
618
+ return this._selectedIndex === (this.options.length - 1) ? this._selectedIndex : (this._selectedIndex + 1);
619
+ }
620
+ _getPreviousOptionIndex() {
621
+ return this._selectedIndex === 0 ? this._selectedIndex : (this._selectedIndex - 1);
622
+ }
623
+ _beforeOpen() {
624
+ this._selectedIndexBeforeOpen = this._selectedIndex;
625
+ this._lastSelectedOption = this.options[this._selectedIndex];
626
+ }
627
+ _afterOpen() {
628
+ this.opened = true;
629
+ this.fireDecoratorEvent("open");
630
+ this.itemSelectionAnnounce();
631
+ this._scrollSelectedItem();
632
+ this._applyFocusToSelectedItem();
633
+ }
634
+ _applyFocusToSelectedItem() {
635
+ this.options.forEach(option => {
636
+ option.focused = option.selected;
637
+ });
638
+ }
639
+ _afterClose() {
640
+ this.opened = false;
641
+ this._iconPressed = false;
642
+ this._listWidth = 0;
643
+ if (this._escapePressed) {
644
+ this._select(this._selectedIndexBeforeOpen);
645
+ this._escapePressed = false;
646
+ }
647
+ else if (this._lastSelectedOption !== this.options[this._selectedIndex]) {
648
+ this._fireChangeEvent(this.options[this._selectedIndex]);
649
+ this._lastSelectedOption = this.options[this._selectedIndex];
650
+ }
651
+ this.fireDecoratorEvent("close");
652
+ }
653
+ get hasCustomLabel() {
654
+ return !!this.label.length;
655
+ }
656
+ _fireChangeEvent(selectedOption) {
657
+ const changePrevented = !this.fireDecoratorEvent("change", { selectedOption });
658
+ // Angular two way data binding
659
+ this.fireDecoratorEvent("selected-item-changed");
660
+ // Fire input event for Vue.js two-way binding
661
+ this.fireDecoratorEvent("input");
662
+ if (changePrevented) {
663
+ this._select(this._selectedIndexBeforeOpen);
664
+ }
665
+ }
666
+ get valueStateTextMappings() {
667
+ return {
668
+ [ValueState.o.Positive]: Select_1.i18nBundle.getText(i18nDefaults.VALUE_STATE_SUCCESS),
669
+ [ValueState.o.Information]: Select_1.i18nBundle.getText(i18nDefaults.VALUE_STATE_INFORMATION),
670
+ [ValueState.o.Negative]: Select_1.i18nBundle.getText(i18nDefaults.VALUE_STATE_ERROR),
671
+ [ValueState.o.Critical]: Select_1.i18nBundle.getText(i18nDefaults.VALUE_STATE_WARNING),
672
+ };
673
+ }
674
+ get valueStateTypeMappings() {
675
+ return {
676
+ [ValueState.o.Positive]: Select_1.i18nBundle.getText(i18nDefaults.VALUE_STATE_TYPE_SUCCESS),
677
+ [ValueState.o.Information]: Select_1.i18nBundle.getText(i18nDefaults.VALUE_STATE_TYPE_INFORMATION),
678
+ [ValueState.o.Negative]: Select_1.i18nBundle.getText(i18nDefaults.VALUE_STATE_TYPE_ERROR),
679
+ [ValueState.o.Critical]: Select_1.i18nBundle.getText(i18nDefaults.VALUE_STATE_TYPE_WARNING),
680
+ };
681
+ }
682
+ get valueStateText() {
683
+ let valueStateText;
684
+ if (this.shouldDisplayDefaultValueStateMessage) {
685
+ valueStateText = this.valueStateDefaultText;
686
+ }
687
+ else {
688
+ valueStateText = this.valueStateMessage.map(el => el.textContent).join(" ");
689
+ }
690
+ return `${this.valueStateTypeText} ${valueStateText}`;
691
+ }
692
+ get valueStateDefaultText() {
693
+ return this.valueState !== ValueState.o.None ? this.valueStateTextMappings[this.valueState] : "";
694
+ }
695
+ get valueStateTypeText() {
696
+ return this.valueState !== ValueState.o.None ? this.valueStateTypeMappings[this.valueState] : "";
697
+ }
698
+ get hasValueState() {
699
+ return this.valueState !== ValueState.o.None;
700
+ }
701
+ get valueStateTextId() {
702
+ return this.hasValueState ? `${this._id}-valueStateDesc` : undefined;
703
+ }
704
+ get isDisabled() {
705
+ return this.disabled || undefined;
706
+ }
707
+ get _headerTitleText() {
708
+ return Select_1.i18nBundle.getText(i18nDefaults.INPUT_SUGGESTIONS_TITLE);
709
+ }
710
+ get _currentlySelectedOption() {
711
+ return this.options[this._selectedIndex];
712
+ }
713
+ get _effectiveTabIndex() {
714
+ return this.disabled
715
+ || (this.responsivePopover // Handles focus on Tab/Shift + Tab when the popover is opened
716
+ && this.responsivePopover.open) ? -1 : 0;
717
+ }
718
+ /**
719
+ * This method is relevant for sap_horizon theme only
720
+ */
721
+ get _valueStateMessageInputIcon() {
722
+ const iconPerValueState = {
723
+ Negative: "error",
724
+ Critical: "alert",
725
+ Positive: "sys-enter-2",
726
+ Information: "information",
727
+ };
728
+ return this.valueState !== ValueState.o.None ? iconPerValueState[this.valueState] : "";
729
+ }
730
+ get iconsCount() {
731
+ return this.selectedOptionIcon ? 2 : 1;
732
+ }
733
+ get classes() {
734
+ return {
735
+ popoverValueState: {
736
+ "ui5-valuestatemessage-root": true,
737
+ "ui5-valuestatemessage--success": this.valueState === ValueState.o.Positive,
738
+ "ui5-valuestatemessage--error": this.valueState === ValueState.o.Negative,
739
+ "ui5-valuestatemessage--warning": this.valueState === ValueState.o.Critical,
740
+ "ui5-valuestatemessage--information": this.valueState === ValueState.o.Information,
741
+ },
742
+ popover: {
743
+ "ui5-select-popover-valuestate": this.hasValueState,
744
+ },
745
+ };
746
+ }
747
+ get styles() {
748
+ return {
749
+ popoverHeader: {
750
+ "max-width": `${this.offsetWidth}px`,
751
+ },
752
+ responsivePopoverHeader: {
753
+ "display": this.options.length && this._listWidth === 0 ? "none" : "inline-block",
754
+ "width": `${this.options.length ? this._listWidth : this.offsetWidth}px`,
755
+ },
756
+ responsivePopover: {
757
+ "min-width": `${this.offsetWidth}px`,
758
+ },
759
+ };
760
+ }
761
+ get ariaLabelText() {
762
+ return AccessibilityTextsHelper.A(this);
763
+ }
764
+ get shouldDisplayDefaultValueStateMessage() {
765
+ return !this.valueStateMessage.length && this.hasValueStateText;
766
+ }
767
+ get hasValueStateText() {
768
+ return this.hasValueState && this.valueState !== ValueState.o.Positive;
769
+ }
770
+ get shouldOpenValueStateMessagePopover() {
771
+ return this.focused && this.hasValueStateText && !this._iconPressed
772
+ && !this._isPickerOpen && !this._isPhone;
773
+ }
774
+ get _ariaRoleDescription() {
775
+ return Select_1.i18nBundle.getText(i18nDefaults.SELECT_ROLE_DESCRIPTION);
776
+ }
777
+ get _isPhone() {
778
+ return Icons.d();
779
+ }
780
+ itemSelectionAnnounce() {
781
+ let text;
782
+ const optionsCount = this.options.length;
783
+ const itemPositionText = Select_1.i18nBundle.getText(i18nDefaults.LIST_ITEM_POSITION, this._selectedIndex + 1, optionsCount);
784
+ if (this.focused && this._currentlySelectedOption) {
785
+ text = `${this._currentlySelectedOption.textContent} ${this._isPickerOpen ? itemPositionText : ""}`;
786
+ p(text);
787
+ }
788
+ }
789
+ openValueStatePopover() {
790
+ this.valueStatePopover = this._getPopover();
791
+ if (this.valueStatePopover) {
792
+ this.valueStatePopover.opener = this;
793
+ this.valueStatePopover.open = true;
794
+ }
795
+ }
796
+ closeValueStatePopover() {
797
+ this.valueStatePopover && (this.valueStatePopover.open = false);
798
+ }
799
+ toggleValueStatePopover(open) {
800
+ if (open) {
801
+ this.openValueStatePopover();
802
+ }
803
+ else {
804
+ this.closeValueStatePopover();
805
+ }
806
+ }
807
+ get selectedOptionIcon() {
808
+ return this.selectedOption && this.selectedOption.icon;
809
+ }
810
+ _getPopover() {
811
+ return this.shadowRoot.querySelector("[ui5-popover]");
812
+ }
813
+ };
814
+ __decorate$5([
815
+ webcomponentsBase.s({ type: Boolean })
816
+ ], Select.prototype, "disabled", void 0);
817
+ __decorate$5([
818
+ webcomponentsBase.s()
819
+ ], Select.prototype, "icon", void 0);
820
+ __decorate$5([
821
+ webcomponentsBase.s()
822
+ ], Select.prototype, "name", void 0);
823
+ __decorate$5([
824
+ webcomponentsBase.s()
825
+ ], Select.prototype, "valueState", void 0);
826
+ __decorate$5([
827
+ webcomponentsBase.s({ type: Boolean })
828
+ ], Select.prototype, "required", void 0);
829
+ __decorate$5([
830
+ webcomponentsBase.s({ type: Boolean })
831
+ ], Select.prototype, "readonly", void 0);
832
+ __decorate$5([
833
+ webcomponentsBase.s()
834
+ ], Select.prototype, "accessibleName", void 0);
835
+ __decorate$5([
836
+ webcomponentsBase.s()
837
+ ], Select.prototype, "accessibleNameRef", void 0);
838
+ __decorate$5([
839
+ webcomponentsBase.s()
840
+ ], Select.prototype, "tooltip", void 0);
841
+ __decorate$5([
842
+ webcomponentsBase.s({ type: Boolean, noAttribute: true })
843
+ ], Select.prototype, "_iconPressed", void 0);
844
+ __decorate$5([
845
+ webcomponentsBase.s({ type: Boolean })
846
+ ], Select.prototype, "opened", void 0);
847
+ __decorate$5([
848
+ webcomponentsBase.s({ type: Number, noAttribute: true })
849
+ ], Select.prototype, "_listWidth", void 0);
850
+ __decorate$5([
851
+ webcomponentsBase.s({ type: Boolean })
852
+ ], Select.prototype, "focused", void 0);
853
+ __decorate$5([
854
+ webcomponentsBase.d({ "default": true, type: HTMLElement, invalidateOnChildChange: true })
855
+ ], Select.prototype, "options", void 0);
856
+ __decorate$5([
857
+ webcomponentsBase.d()
858
+ ], Select.prototype, "valueStateMessage", void 0);
859
+ __decorate$5([
860
+ webcomponentsBase.d()
861
+ ], Select.prototype, "label", void 0);
862
+ __decorate$5([
863
+ webcomponentsBase.s()
864
+ ], Select.prototype, "value", null);
865
+ __decorate$5([
866
+ i18nDefaults.i("sap/ushell/gen/ui5/webcomponents")
867
+ ], Select, "i18nBundle", void 0);
868
+ Select = Select_1 = __decorate$5([
869
+ webcomponentsBase.m({
870
+ tag: "ui5-select",
871
+ languageAware: true,
872
+ formAssociated: true,
873
+ renderer: parametersBundle_css.y,
874
+ template: SelectTemplate,
875
+ styles: [
876
+ selectCss,
877
+ ResponsivePopoverCommonCss,
878
+ ValueStateMessageCss,
879
+ SelectPopoverCss,
880
+ ],
881
+ dependencies: [
882
+ Label,
883
+ ResponsivePopover.ResponsivePopover,
884
+ ResponsivePopover.Popover,
885
+ List.List,
886
+ Icon.Icon,
887
+ Button.Button,
888
+ ],
889
+ })
890
+ /**
891
+ * Fired when the selected option changes.
892
+ * @param {IOption} selectedOption the selected option.
893
+ * @public
894
+ */
895
+ ,
896
+ eventStrict.l("change", {
897
+ bubbles: true,
898
+ cancelable: true,
899
+ })
900
+ /**
901
+ * Fired when the user navigates through the options, but the selection is not finalized,
902
+ * or when pressing the ESC key to revert the current selection.
903
+ * @param {IOption} selectedOption the selected option.
904
+ * @public
905
+ * @since 1.17.0
906
+ */
907
+ ,
908
+ eventStrict.l("live-change", {
909
+ bubbles: true,
910
+ })
911
+ /**
912
+ * Fired after the component's dropdown menu opens.
913
+ * @public
914
+ */
915
+ ,
916
+ eventStrict.l("open")
917
+ /**
918
+ * Fired after the component's dropdown menu closes.
919
+ * @public
920
+ */
921
+ ,
922
+ eventStrict.l("close")
923
+ /**
924
+ * Fired to make Angular two way data binding work properly.
925
+ * @private
926
+ */
927
+ ,
928
+ eventStrict.l("selected-item-changed", {
929
+ bubbles: true,
930
+ })
931
+ /**
932
+ * Fired to make Vue.js two way data binding work properly.
933
+ * @private
934
+ */
935
+ ,
936
+ eventStrict.l("input", {
937
+ bubbles: true,
938
+ })
939
+ ], Select);
940
+ Select.define();
941
+ var Select$1 = Select;
942
+
943
+ function SearchFieldTemplate(options) {
944
+ return (!options?.forceExpanded && this.collapsed ? (parametersBundle_css.jsx(Button.Button, { class: "ui5-shell-search-field-button", icon: slimArrowDown.search, design: Button.ButtonDesign.Transparent, "data-sap-focus-ref": true, onClick: this._handleSearchIconPress, tooltip: this._effectiveIconTooltip, accessibleName: this._effectiveIconTooltip, accessibilityAttributes: this._searchButtonAccessibilityAttributes })) : (parametersBundle_css.jsx("div", { class: "ui5-search-field-root", role: "search", onFocusOut: this._onFocusOutSearch, children: parametersBundle_css.jsxs("div", { class: "ui5-search-field-content", children: [this.scopes?.length ? (parametersBundle_css.jsxs(parametersBundle_css.Fragment, { children: [parametersBundle_css.jsx(Select$1, { onChange: this._handleScopeChange, class: "sapUiSizeCompact ui5-search-field-select", accessibleName: this._translations.scope, tooltip: this._translations.scope, children: this.scopes.map(scopeOption => (parametersBundle_css.jsx(Option$1, { selected: scopeOption.selected, "data-ui5-stable": scopeOption.stableDomRef, ref: this.captureRef.bind(scopeOption), children: scopeOption.text }))) }), parametersBundle_css.jsx("div", { class: "ui5-search-field-separator" })] })) : this.filterButton ? (parametersBundle_css.jsxs(parametersBundle_css.Fragment, { children: [parametersBundle_css.jsx("div", { class: "ui5-filter-wrapper", style: "display: contents", children: parametersBundle_css.jsx("slot", { name: "filterButton" }) }), parametersBundle_css.jsx("div", { class: "ui5-search-field-separator" })] })) : null, parametersBundle_css.jsx("input", { class: "ui5-search-field-inner-input", role: "searchbox", "aria-description": this.accessibleDescription, "aria-label": this.accessibleName || this._translations.searchFieldAriaLabel, value: this.value, placeholder: this.placeholder, "data-sap-focus-ref": true, onInput: this._handleInput, onFocusIn: this._onfocusin, onFocusOut: this._onfocusout, onKeyDown: this._onkeydown, onClick: this._handleInnerClick }), this._effectiveShowClearIcon &&
945
+ parametersBundle_css.jsx(Icon.Icon, { class: "ui5-shell-search-field-icon", name: information.decline, showTooltip: true, accessibleName: this._translations.clearIcon, onClick: this._handleClear }), parametersBundle_css.jsx(Icon.Icon, { class: {
946
+ "ui5-shell-search-field-icon": true,
947
+ "ui5-shell-search-field-search-icon": this._isSearchIcon,
948
+ }, name: slimArrowDown.search, showTooltip: true, accessibleName: this._effectiveIconTooltip, onClick: this._handleSearchIconPress })] }) })));
949
+ }
950
+
951
+ const n=t=>{let e=0;return (t.selectionStart||t.selectionStart===0)&&(e=t.selectionDirection==="backward"?t.selectionStart:t.selectionEnd),e},o=(t,e)=>{t.selectionStart?(t.focus(),t.setSelectionRange(e,e)):t.focus();};
952
+
953
+ /**
954
+ * Different input types.
955
+ * @public
956
+ */
957
+ var InputType;
958
+ (function (InputType) {
959
+ /**
960
+ * Defines a one-line text input field:
961
+ * @public
962
+ */
963
+ InputType["Text"] = "Text";
964
+ /**
965
+ * Used for input fields that must contain an e-mail address.
966
+ * @public
967
+ */
968
+ InputType["Email"] = "Email";
969
+ /**
970
+ * Defines a numeric input field.
971
+ * @public
972
+ */
973
+ InputType["Number"] = "Number";
974
+ /**
975
+ * Defines a password field.
976
+ * @public
977
+ */
978
+ InputType["Password"] = "Password";
979
+ /**
980
+ * Used for input fields that should contain a telephone number.
981
+ * @public
982
+ */
983
+ InputType["Tel"] = "Tel";
984
+ /**
985
+ * Used for input fields that should contain a URL address.
986
+ * @public
987
+ */
988
+ InputType["URL"] = "URL";
989
+ /**
990
+ * Used for input fields that should contain a search term.
991
+ * @since 2.0.0
992
+ * @public
993
+ */
994
+ InputType["Search"] = "Search";
995
+ })(InputType || (InputType = {}));
996
+ var InputType$1 = InputType;
997
+
998
+ function InputPopoverTemplate(hooks) {
999
+ const suggestionsList = hooks?.suggestionsList;
1000
+ return (parametersBundle_css.jsxs(parametersBundle_css.Fragment, { children: [this._effectiveShowSuggestions && this.Suggestions?.template.call(this, { suggestionsList, valueStateMessage, valueStateMessageInputIcon }), this.hasValueStateMessage &&
1001
+ parametersBundle_css.jsx(ResponsivePopover.Popover, { preventInitialFocus: true, preventFocusRestore: true, hideArrow: true, class: "ui5-valuestatemessage-popover", placement: "Bottom", tabindex: -1, horizontalAlign: this._valueStatePopoverHorizontalAlign, opener: this, open: this.valueStateOpen, onClose: this._handleValueStatePopoverAfterClose, children: parametersBundle_css.jsxs("div", { slot: "header", class: this.classes.popoverValueState, style: this.styles.popoverHeader, children: [parametersBundle_css.jsx(Icon.Icon, { class: "ui5-input-value-state-message-icon", name: valueStateMessageInputIcon.call(this) }), this.valueStateOpen && valueStateMessage.call(this)] }) })] }));
1002
+ }
1003
+ function valueStateMessage() {
1004
+ return (parametersBundle_css.jsx(parametersBundle_css.Fragment, { children: this.shouldDisplayDefaultValueStateMessage ? this.valueStateText : parametersBundle_css.jsx("slot", { name: "valueStateMessage" }) }));
1005
+ }
1006
+ function valueStateMessageInputIcon() {
1007
+ const iconPerValueState = {
1008
+ Negative: information$1.error,
1009
+ Critical: information$1.alert,
1010
+ Positive: sysEnter2.selectedAccount,
1011
+ Information: information$1.information,
1012
+ };
1013
+ return this.valueState !== ValueState.o.None ? iconPerValueState[this.valueState] : "";
1014
+ }
1015
+
1016
+ function InputTemplate(hooks) {
1017
+ const suggestionsList = hooks?.suggestionsList;
1018
+ const preContent = hooks?.preContent || defaultPreContent;
1019
+ const postContent = hooks?.postContent || defaultPostContent;
1020
+ return (parametersBundle_css.jsxs(parametersBundle_css.Fragment, { children: [parametersBundle_css.jsx("div", { class: "ui5-input-root ui5-input-focusable-element", part: "root", onFocusIn: this._onfocusin, onFocusOut: this._onfocusout, children: parametersBundle_css.jsxs("div", { class: "ui5-input-content", children: [preContent.call(this), parametersBundle_css.jsx("input", { id: "inner", part: "input", class: "ui5-input-inner", style: this.styles.innerInput, type: this.inputNativeType, "inner-input": true, "inner-input-with-icon": !!this.icon.length, disabled: this.disabled, readonly: this._readonly, value: this._innerValue, placeholder: this._placeholder, maxlength: this.maxlength, role: this.accInfo.role, enterkeyhint: this.hint, "aria-controls": this.accInfo.ariaControls, "aria-invalid": this.accInfo.ariaInvalid, "aria-haspopup": this.accInfo.ariaHasPopup, "aria-describedby": this.accInfo.ariaDescribedBy, "aria-roledescription": this.accInfo.ariaRoledescription, "aria-autocomplete": this.accInfo.ariaAutoComplete, "aria-expanded": this.accInfo.ariaExpanded, "aria-label": this.accInfo.ariaLabel, "aria-required": this.required, autocomplete: "off", "data-sap-focus-ref": true, step: this.nativeInputAttributes.step, min: this.nativeInputAttributes.min, max: this.nativeInputAttributes.max, onInput: this._handleNativeInput, onChange: this._handleChange, onSelect: this._handleSelect, onKeyDown: this._onkeydown, onKeyUp: this._onkeyup, onClick: this._click, onFocusIn: this.innerFocusIn }), this._effectiveShowClearIcon &&
1021
+ parametersBundle_css.jsx("div", { tabindex: -1, class: "ui5-input-clear-icon-wrapper inputIcon", part: "clear-icon-wrapper", onClick: this._clear, onMouseDown: this._iconMouseDown, children: parametersBundle_css.jsx(Icon.Icon, { part: "clear-icon", class: "ui5-input-clear-icon", name: information.decline, tabindex: -1, accessibleName: this.clearIconAccessibleName }) }), this.icon.length > 0 &&
1022
+ parametersBundle_css.jsx("div", { class: "ui5-input-icon-root", tabindex: -1, children: parametersBundle_css.jsx("slot", { name: "icon" }) }), parametersBundle_css.jsx("div", { class: "ui5-input-value-state-icon", children: this._valueStateInputIcon }), postContent.call(this), this._effectiveShowSuggestions &&
1023
+ parametersBundle_css.jsxs(parametersBundle_css.Fragment, { children: [parametersBundle_css.jsx("span", { id: "suggestionsText", class: "ui5-hidden-text", children: this.suggestionsText }), parametersBundle_css.jsx("span", { id: "selectionText", class: "ui5-hidden-text", "aria-live": "polite", role: "status" }), parametersBundle_css.jsx("span", { id: "suggestionsCount", class: "ui5-hidden-text", "aria-live": "polite", children: this.availableSuggestionsCount })] }), this.accInfo.ariaDescription &&
1024
+ parametersBundle_css.jsx("span", { id: "descr", class: "ui5-hidden-text", children: this.accInfo.ariaDescription }), this.accInfo.accessibleDescription &&
1025
+ parametersBundle_css.jsx("span", { id: "accessibleDescription", class: "ui5-hidden-text", children: this.accInfo.accessibleDescription }), this.hasValueState &&
1026
+ parametersBundle_css.jsx("span", { id: "valueStateDesc", class: "ui5-hidden-text", children: this.ariaValueStateHiddenText })] }) }), InputPopoverTemplate.call(this, { suggestionsList })] }));
1027
+ }
1028
+ function defaultPreContent() { }
1029
+ function defaultPostContent() { }
1030
+
1031
+ const escapeReg = /[[\]{}()*+?.\\^$|]/g;
1032
+ const escapeRegExp = (str) => {
1033
+ return str.replace(escapeReg, "\\$&");
1034
+ };
1035
+ const StartsWithPerTerm = (value, items, propName) => {
1036
+ const reg = new RegExp(`(^|\\s)${escapeRegExp(value.toLowerCase())}.*`, "g");
1037
+ return items.filter(item => {
1038
+ const text = item[propName];
1039
+ reg.lastIndex = 0;
1040
+ return reg.test(text.toLowerCase());
1041
+ });
1042
+ };
1043
+ const StartsWith = (value, items, propName) => items.filter(item => (item[propName] || "").toLowerCase().startsWith(value.toLowerCase()));
1044
+
1045
+ Icons.p("sap/ushell/gen/ui5/webcomponents-theming", "sap_horizon", async () => parametersBundle_css.defaultThemeBase);
1046
+ Icons.p("sap/ushell/gen/ui5/webcomponents", "sap_horizon", async () => i18nDefaults.defaultTheme);
1047
+ var inputStyles = `:host{vertical-align:middle}.ui5-hidden-text{position:absolute;clip:rect(1px,1px,1px,1px);user-select:none;left:-1000px;top:-1000px;pointer-events:none;font-size:0}.inputIcon{color:var(--_ui5-v2-13-0-rc-0_input_icon_color);cursor:pointer;outline:none;padding:var(--_ui5-v2-13-0-rc-0_input_icon_padding);border-inline-start:var(--_ui5-v2-13-0-rc-0_input_icon_border);min-width:1rem;min-height:1rem;border-radius:var(--_ui5-v2-13-0-rc-0_input_icon_border_radius)}.inputIcon.inputIcon--pressed{background:var(--_ui5-v2-13-0-rc-0_input_icon_pressed_bg);box-shadow:var(--_ui5-v2-13-0-rc-0_input_icon_box_shadow);border-inline-start:var(--_ui5-v2-13-0-rc-0_select_hover_icon_left_border);color:var(--_ui5-v2-13-0-rc-0_input_icon_pressed_color)}.inputIcon:active{background-color:var(--sapButton_Active_Background);box-shadow:var(--_ui5-v2-13-0-rc-0_input_icon_box_shadow);border-inline-start:var(--_ui5-v2-13-0-rc-0_select_hover_icon_left_border);color:var(--_ui5-v2-13-0-rc-0_input_icon_pressed_color)}.inputIcon:not(.inputIcon--pressed):not(:active):hover{background:var(--_ui5-v2-13-0-rc-0_input_icon_hover_bg);box-shadow:var(--_ui5-v2-13-0-rc-0_input_icon_box_shadow)}.inputIcon:hover{border-inline-start:var(--_ui5-v2-13-0-rc-0_select_hover_icon_left_border);box-shadow:var(--_ui5-v2-13-0-rc-0_input_icon_box_shadow)}:host(:not([hidden])){display:inline-block}:host{width:var(--_ui5-v2-13-0-rc-0_input_width);min-width:calc(var(--_ui5-v2-13-0-rc-0_input_min_width) + (var(--_ui5-v2-13-0-rc-0-input-icons-count)*var(--_ui5-v2-13-0-rc-0_input_icon_width)));margin:var(--_ui5-v2-13-0-rc-0_input_margin_top_bottom) 0;height:var(--_ui5-v2-13-0-rc-0_input_height);color:var(--sapField_TextColor);font-size:var(--sapFontSize);font-family:"72override",var(--sapFontFamily);font-style:normal;border:var(--_ui5-v2-13-0-rc-0-input-border);border-radius:var(--_ui5-v2-13-0-rc-0_input_border_radius);box-sizing:border-box;text-align:start;transition:var(--_ui5-v2-13-0-rc-0_input_transition);background:var(--sapField_BackgroundStyle);background-color:var(--_ui5-v2-13-0-rc-0_input_background_color)}:host(:not([readonly])),:host([readonly][disabled]){box-shadow:var(--sapField_Shadow)}:host([focused]:not([opened])){border-color:var(--_ui5-v2-13-0-rc-0_input_focused_border_color);background-color:var(--sapField_Focus_Background)}.ui5-input-focusable-element{position:relative}:host([focused]:not([opened])) .ui5-input-focusable-element:after{content:var(--ui5-v2-13-0-rc-0_input_focus_pseudo_element_content);position:absolute;pointer-events:none;z-index:2;border:var(--sapContent_FocusWidth) var(--sapContent_FocusStyle) var(--_ui5-v2-13-0-rc-0_input_focus_outline_color);border-radius:var(--_ui5-v2-13-0-rc-0_input_focus_border_radius);top:var(--_ui5-v2-13-0-rc-0_input_focus_offset);bottom:var(--_ui5-v2-13-0-rc-0_input_focus_offset);left:var(--_ui5-v2-13-0-rc-0_input_focus_offset);right:var(--_ui5-v2-13-0-rc-0_input_focus_offset)}:host([focused][readonly]:not([opened])) .ui5-input-focusable-element:after{top:var(--_ui5-v2-13-0-rc-0_input_readonly_focus_offset);bottom:var(--_ui5-v2-13-0-rc-0_input_readonly_focus_offset);left:var(--_ui5-v2-13-0-rc-0_input_readonly_focus_offset);right:var(--_ui5-v2-13-0-rc-0_input_readonly_focus_offset);border-radius:var(--_ui5-v2-13-0-rc-0_input_readonly_focus_border_radius)}.ui5-input-root:before{content:"";position:absolute;width:calc(100% - 2px);left:1px;bottom:-2px;border-bottom-left-radius:8px;border-bottom-right-radius:8px;height:var(--_ui5-v2-13-0-rc-0_input_bottom_border_height);transition:var(--_ui5-v2-13-0-rc-0_input_transition);background-color:var(--_ui5-v2-13-0-rc-0_input_bottom_border_color)}.ui5-input-root{width:100%;height:100%;position:relative;background:transparent;display:inline-block;outline:none;box-sizing:border-box;color:inherit;transition:border-color .2s ease-in-out;border-radius:var(--_ui5-v2-13-0-rc-0_input_border_radius);overflow:hidden}:host([disabled]){opacity:var(--_ui5-v2-13-0-rc-0_input_disabled_opacity);cursor:default;pointer-events:none;background-color:var(--_ui5-v2-13-0-rc-0-input_disabled_background);border-color:var(--_ui5-v2-13-0-rc-0_input_disabled_border_color)}:host([disabled]) .ui5-input-root:before,:host([readonly]) .ui5-input-root:before{content:none}[inner-input]{background:transparent;color:inherit;border:none;font-style:inherit;-webkit-appearance:none;-moz-appearance:textfield;padding:var(--_ui5-v2-13-0-rc-0_input_inner_padding);box-sizing:border-box;width:100%;text-overflow:ellipsis;flex:1;outline:none;font-size:inherit;font-family:inherit;line-height:inherit;letter-spacing:inherit;word-spacing:inherit;text-align:inherit}[inner-input][inner-input-with-icon]{padding:var(--_ui5-v2-13-0-rc-0_input_inner_padding_with_icon)}[inner-input][type=search]::-webkit-search-decoration,[inner-input][type=search]::-webkit-search-cancel-button,[inner-input][type=search]::-webkit-search-results-button,[inner-input][type=search]::-webkit-search-results-decoration{display:none}[inner-input]::-ms-reveal,[inner-input]::-ms-clear{display:none}.ui5-input-value-state-icon{height:100%;display:var(--_ui5-v2-13-0-rc-0-input-value-state-icon-display);align-items:center}.ui5-input-value-state-icon>svg{margin-right:8px}[inner-input]::selection{background:var(--sapSelectedColor);color:var(--sapContent_ContrastTextColor)}:host([disabled]) [inner-input]::-webkit-input-placeholder{visibility:hidden}:host([readonly]) [inner-input]::-webkit-input-placeholder{visibility:hidden}:host([disabled]) [inner-input]::-moz-placeholder{visibility:hidden}:host([readonly]) [inner-input]::-moz-placeholder{visibility:hidden}[inner-input]::-webkit-input-placeholder{font-weight:400;font-style:var(--_ui5-v2-13-0-rc-0_input_placeholder_style);color:var(--_ui5-v2-13-0-rc-0_input_placeholder_color);padding-right:.125rem}[inner-input]::-moz-placeholder{font-weight:400;font-style:var(--_ui5-v2-13-0-rc-0_input_placeholder_style);color:var(--_ui5-v2-13-0-rc-0_input_placeholder_color);padding-right:.125rem}:host([value-state="Negative"]) [inner-input]::-webkit-input-placeholder{color:var(--_ui5-v2-13-0-rc-0-input_error_placeholder_color);font-weight:var(--_ui5-v2-13-0-rc-0_input_value_state_error_warning_placeholder_font_weight)}:host([value-state="Negative"]) [inner-input]::-moz-placeholder{color:var(--_ui5-v2-13-0-rc-0-input_error_placeholder_color);font-weight:var(--_ui5-v2-13-0-rc-0_input_value_state_error_warning_placeholder_font_weight)}:host([value-state="Critical"]) [inner-input]::-webkit-input-placeholder{font-weight:var(--_ui5-v2-13-0-rc-0_input_value_state_error_warning_placeholder_font_weight)}:host([value-state="Critical"]) [inner-input]::-moz-placeholder{font-weight:var(--_ui5-v2-13-0-rc-0_input_value_state_error_warning_placeholder_font_weight)}:host([value-state="Positive"]) [inner-input]::-webkit-input-placeholder{color:var(--_ui5-v2-13-0-rc-0_input_placeholder_color)}:host([value-state="Positive"]) [inner-input]::-moz-placeholder{color:var(--_ui5-v2-13-0-rc-0_input_placeholder_color)}:host([value-state="Information"]) [inner-input]::-webkit-input-placeholder{color:var(--_ui5-v2-13-0-rc-0_input_placeholder_color)}:host([value-state="Information"]) [inner-input]::-moz-placeholder{color:var(--_ui5-v2-13-0-rc-0_input_placeholder_color)}.ui5-input-content{height:100%;box-sizing:border-box;display:flex;flex-direction:row;justify-content:flex-end;overflow:hidden;outline:none;background:transparent;color:inherit;border-radius:var(--_ui5-v2-13-0-rc-0_input_border_radius)}:host([readonly]:not([disabled])){border:var(--_ui5-v2-13-0-rc-0_input_readonly_border);background:var(--sapField_ReadOnly_BackgroundStyle);background-color:var(--_ui5-v2-13-0-rc-0_input_readonly_background)}:host([value-state="None"]:not([readonly]):hover),:host(:not([value-state]):not([readonly]):hover){border:var(--_ui5-v2-13-0-rc-0_input_hover_border);border-color:var(--_ui5-v2-13-0-rc-0_input_focused_border_color);box-shadow:var(--sapField_Hover_Shadow);background:var(--sapField_Hover_BackgroundStyle);background-color:var(--sapField_Hover_Background)}:host(:not([value-state]):not([readonly])[focused]:not([opened]):hover),:host([value-state="None"]:not([readonly])[focused]:not([opened]):hover){box-shadow:none}:host([focused]):not([opened]) .ui5-input-root:before{content:none}:host(:not([readonly]):not([disabled])[value-state]:not([value-state="None"])){border-width:var(--_ui5-v2-13-0-rc-0_input_state_border_width)}:host([value-state="Negative"]) [inner-input],:host([value-state="Critical"]) [inner-input]{font-style:var(--_ui5-v2-13-0-rc-0_input_error_warning_font_style);text-indent:var(--_ui5-v2-13-0-rc-0_input_error_warning_text_indent)}:host([value-state="Negative"]) [inner-input]{font-weight:var(--_ui5-v2-13-0-rc-0_input_error_font_weight)}:host([value-state="Critical"]) [inner-input]{font-weight:var(--_ui5-v2-13-0-rc-0_input_warning_font_weight)}:host([value-state="Negative"]:not([readonly]):not([disabled])){background:var(--sapField_InvalidBackgroundStyle);background-color:var(--sapField_InvalidBackground);border-color:var(--_ui5-v2-13-0-rc-0_input_value_state_error_border_color);box-shadow:var(--sapField_InvalidShadow)}:host([value-state="Negative"][focused]:not([opened]):not([readonly])){background-color:var(--_ui5-v2-13-0-rc-0_input_focused_value_state_error_background);border-color:var(--_ui5-v2-13-0-rc-0_input_focused_value_state_error_border_color)}:host([value-state="Negative"][focused]:not([opened]):not([readonly])) .ui5-input-focusable-element:after{border-color:var(--_ui5-v2-13-0-rc-0_input_focused_value_state_error_focus_outline_color)}:host([value-state="Negative"]:not([readonly])) .ui5-input-root:before{background-color:var(--_ui5-v2-13-0-rc-0-input-value-state-error-border-botom-color)}:host([value-state="Negative"]:not([readonly]):not([focused]):hover),:host([value-state="Negative"]:not([readonly])[focused][opened]:hover){background-color:var(--_ui5-v2-13-0-rc-0_input_value_state_error_hover_background);box-shadow:var(--sapField_Hover_InvalidShadow)}:host([value-state="Negative"]:not([readonly]):not([disabled])),:host([value-state="Critical"]:not([readonly]):not([disabled])),:host([value-state="Information"]:not([readonly]):not([disabled])){border-style:var(--_ui5-v2-13-0-rc-0_input_error_warning_border_style)}:host([value-state="Critical"]:not([readonly]):not([disabled])){background:var(--sapField_WarningBackgroundStyle);background-color:var(--sapField_WarningBackground);border-color:var(--_ui5-v2-13-0-rc-0_input_value_state_warning_border_color);box-shadow:var(--sapField_WarningShadow)}:host([value-state="Critical"][focused]:not([opened]):not([readonly])){background-color:var(--_ui5-v2-13-0-rc-0_input_focused_value_state_warning_background);border-color:var(--_ui5-v2-13-0-rc-0_input_focused_value_state_warning_border_color)}:host([value-state="Critical"][focused]:not([opened]):not([readonly])) .ui5-input-focusable-element:after{border-color:var(--_ui5-v2-13-0-rc-0_input_focused_value_state_warning_focus_outline_color)}:host([value-state="Critical"]:not([readonly])) .ui5-input-root:before{background-color:var(--_ui5-v2-13-0-rc-0_input_value_state_warning_border_botom_color)}:host([value-state="Critical"]:not([readonly]):not([focused]):hover),:host([value-state="Critical"]:not([readonly])[focused][opened]:hover){background-color:var(--sapField_Hover_Background);box-shadow:var(--sapField_Hover_WarningShadow)}:host([value-state="Positive"]:not([readonly]):not([disabled])){background:var(--sapField_SuccessBackgroundStyle);background-color:var(--sapField_SuccessBackground);border-color:var(--_ui5-v2-13-0-rc-0_input_value_state_success_border_color);border-width:var(--_ui5-v2-13-0-rc-0_input_value_state_success_border_width);box-shadow:var(--sapField_SuccessShadow)}:host([value-state="Positive"][focused]:not([opened]):not([readonly])){background-color:var(--_ui5-v2-13-0-rc-0_input_focused_value_state_success_background);border-color:var(--_ui5-v2-13-0-rc-0_input_focused_value_state_success_border_color)}:host([value-state="Positive"][focused]:not([opened]):not([readonly])) .ui5-input-focusable-element:after{border-color:var(--_ui5-v2-13-0-rc-0_input_focused_value_state_success_focus_outline_color)}:host([value-state="Positive"]:not([readonly])) .ui5-input-root:before{background-color:var(--_ui5-v2-13-0-rc-0_input_value_state_success_border_botom_color)}:host([value-state="Positive"]:not([readonly]):not([focused]):hover),:host([value-state="Positive"]:not([readonly])[focused][opened]:hover){background-color:var(--sapField_Hover_Background);box-shadow:var(--sapField_Hover_SuccessShadow)}:host([value-state="Information"]:not([readonly]):not([disabled])){background:var(--sapField_InformationBackgroundStyle);background-color:var(--sapField_InformationBackground);border-color:var(--_ui5-v2-13-0-rc-0_input_value_state_information_border_color);border-width:var(--_ui5-v2-13-0-rc-0_input_information_border_width);box-shadow:var(--sapField_InformationShadow)}:host([value-state="Information"][focused]:not([opened]):not([readonly])){background-color:var(--_ui5-v2-13-0-rc-0_input_focused_value_state_information_background);border-color:var(--_ui5-v2-13-0-rc-0_input_focused_value_state_information_border_color)}:host([value-state="Information"]:not([readonly])) .ui5-input-root:before{background-color:var(--_ui5-v2-13-0-rc-0_input_value_success_information_border_botom_color)}:host([value-state="Information"]:not([readonly]):not([focused]):hover),:host([value-state="Information"]:not([readonly])[focused][opened]:hover){background-color:var(--sapField_Hover_Background);box-shadow:var(--sapField_Hover_InformationShadow)}.ui5-input-icon-root{min-width:var(--_ui5-v2-13-0-rc-0_input_icon_min_width);height:100%;display:flex;justify-content:center;align-items:center}::slotted([ui5-icon][slot="icon"]){align-self:start;padding:var(--_ui5-v2-13-0-rc-0_input_custom_icon_padding);box-sizing:content-box!important}:host([value-state="Negative"]) .inputIcon,:host([value-state="Critical"]) .inputIcon{padding:var(--_ui5-v2-13-0-rc-0_input_error_warning_icon_padding)}:host([value-state="Negative"][focused]) .inputIcon,:host([value-state="Critical"][focused]) .inputIcon{padding:var(--_ui5-v2-13-0-rc-0_input_error_warning_focused_icon_padding)}:host([value-state="Information"]) .inputIcon{padding:var(--_ui5-v2-13-0-rc-0_input_information_icon_padding)}:host([value-state="Information"][focused]) .inputIcon{padding:var(--_ui5-v2-13-0-rc-0_input_information_focused_icon_padding)}:host([value-state="Negative"]) ::slotted(.inputIcon[ui5-icon]),:host([value-state="Negative"]) ::slotted([ui5-icon][slot="icon"]),:host([value-state="Critical"]) ::slotted([ui5-icon][slot="icon"]){padding:var(--_ui5-v2-13-0-rc-0_input_error_warning_custom_icon_padding)}:host([value-state="Negative"][focused]) ::slotted(.inputIcon[ui5-icon]),:host([value-state="Negative"][focused]) ::slotted([ui5-icon][slot="icon"]),:host([value-state="Critical"][focused]) ::slotted([ui5-icon][slot="icon"]){padding:var(--_ui5-v2-13-0-rc-0_input_error_warning_custom_focused_icon_padding)}:host([value-state="Information"]) ::slotted([ui5-icon][slot="icon"]){padding:var(--_ui5-v2-13-0-rc-0_input_information_custom_icon_padding)}:host([value-state="Information"][focused]) ::slotted([ui5-icon][slot="icon"]){padding:var(--_ui5-v2-13-0-rc-0_input_information_custom_focused_icon_padding)}:host([value-state="Negative"]) .inputIcon:active,:host([value-state="Negative"]) .inputIcon.inputIcon--pressed{box-shadow:var(--_ui5-v2-13-0-rc-0_input_error_icon_box_shadow);color:var(--_ui5-v2-13-0-rc-0_input_icon_error_pressed_color)}:host([value-state="Negative"]) .inputIcon:not(.inputIcon--pressed):not(:active):hover{box-shadow:var(--_ui5-v2-13-0-rc-0_input_error_icon_box_shadow)}:host([value-state="Critical"]) .inputIcon:active,:host([value-state="Critical"]) .inputIcon.inputIcon--pressed{box-shadow:var(--_ui5-v2-13-0-rc-0_input_warning_icon_box_shadow);color:var(--_ui5-v2-13-0-rc-0_input_icon_warning_pressed_color)}:host([value-state="Critical"]) .inputIcon:not(.inputIcon--pressed):not(:active):hover{box-shadow:var(--_ui5-v2-13-0-rc-0_input_warning_icon_box_shadow)}:host([value-state="Information"]) .inputIcon:active,:host([value-state="Information"]) .inputIcon.inputIcon--pressed{box-shadow:var(--_ui5-v2-13-0-rc-0_input_information_icon_box_shadow);color:var(--_ui5-v2-13-0-rc-0_input_icon_information_pressed_color)}:host([value-state="Information"]) .inputIcon:not(.inputIcon--pressed):not(:active):hover{box-shadow:var(--_ui5-v2-13-0-rc-0_input_information_icon_box_shadow)}:host([value-state="Positive"]) .inputIcon:active,:host([value-state="Positive"]) .inputIcon.inputIcon--pressed{box-shadow:var(--_ui5-v2-13-0-rc-0_input_success_icon_box_shadow);color:var(--_ui5-v2-13-0-rc-0_input_icon_success_pressed_color)}:host([value-state="Positive"]) .inputIcon:not(.inputIcon--pressed):not(:active):hover{box-shadow:var(--_ui5-v2-13-0-rc-0_input_success_icon_box_shadow)}.ui5-input-clear-icon-wrapper{height:var(--_ui5-v2-13-0-rc-0_input_icon_wrapper_height);padding:0;width:var(--_ui5-v2-13-0-rc-0_input_icon_width);min-width:var(--_ui5-v2-13-0-rc-0_input_icon_width);display:flex;justify-content:center;align-items:center;box-sizing:border-box}:host([value-state]:not([value-state="None"]):not([value-state="Positive"])) .ui5-input-clear-icon-wrapper{height:var(--_ui5-v2-13-0-rc-0_input_icon_wrapper_state_height);vertical-align:top}:host([value-state="Positive"]) .ui5-input-clear-icon-wrapper{height:var(--_ui5-v2-13-0-rc-0_input_icon_wrapper_success_state_height)}[ui5-icon].ui5-input-clear-icon{padding:0;color:inherit}[inner-input]::-webkit-outer-spin-button,[inner-input]::-webkit-inner-spin-button{-webkit-appearance:inherit;margin:inherit}
1048
+ `;
1049
+
1050
+ Icons.p("sap/ushell/gen/ui5/webcomponents-theming", "sap_horizon", async () => parametersBundle_css.defaultThemeBase);
1051
+ Icons.p("sap/ushell/gen/ui5/webcomponents", "sap_horizon", async () => i18nDefaults.defaultTheme);
1052
+ var SuggestionsCss = `.ui5-suggestions-popover{box-shadow:var(--sapContent_Shadow1)}.ui5-suggestions-popover::part(header),.ui5-suggestions-popover::part(content){padding:0}.ui5-suggestions-popover::part(footer){padding:0 1rem}.input-root-phone.native-input-wrapper{display:contents}.input-root-phone.native-input-wrapper:before{display:none}.native-input-wrapper .ui5-input-inner-phone{margin:0}
1053
+ `;
1054
+
1055
+ var __decorate$4 = (this && this.__decorate) || function (decorators, target, key, desc) {
1056
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
1057
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
1058
+ 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;
1059
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
1060
+ };
1061
+ var Input_1;
1062
+ // all sementic events
1063
+ var INPUT_EVENTS;
1064
+ (function (INPUT_EVENTS) {
1065
+ INPUT_EVENTS["CHANGE"] = "change";
1066
+ INPUT_EVENTS["INPUT"] = "input";
1067
+ INPUT_EVENTS["SELECTION_CHANGE"] = "selection-change";
1068
+ })(INPUT_EVENTS || (INPUT_EVENTS = {}));
1069
+ // all user interactions
1070
+ var INPUT_ACTIONS;
1071
+ (function (INPUT_ACTIONS) {
1072
+ INPUT_ACTIONS["ACTION_ENTER"] = "enter";
1073
+ INPUT_ACTIONS["ACTION_USER_INPUT"] = "input";
1074
+ })(INPUT_ACTIONS || (INPUT_ACTIONS = {}));
1075
+ /**
1076
+ * @class
1077
+ * ### Overview
1078
+ *
1079
+ * The `ui5-input` component allows the user to enter and edit text or numeric values in one line.
1080
+ *
1081
+ * Additionally, you can provide `suggestionItems`,
1082
+ * that are displayed in a popover right under the input.
1083
+ *
1084
+ * The text field can be editable or read-only (`readonly` property),
1085
+ * and it can be enabled or disabled (`disabled` property).
1086
+ * To visualize semantic states, such as "Negative" or "Critical", the `valueState` property is provided.
1087
+ * When the user makes changes to the text, the change event is fired,
1088
+ * which enables you to react on any text change.
1089
+ *
1090
+ * ### Keyboard Handling
1091
+ * The `ui5-input` provides the following keyboard shortcuts:
1092
+ *
1093
+ * - [Escape] - Closes the suggestion list, if open. If closed or not enabled, cancels changes and reverts to the value which the Input field had when it got the focus.
1094
+ * - [Enter] or [Return] - If suggestion list is open takes over the current matching item and closes it. If value state or group header is focused, does nothing.
1095
+ * - [Down] - Focuses the next matching item in the suggestion list. Selection-change event is fired.
1096
+ * - [Up] - Focuses the previous matching item in the suggestion list. Selection-change event is fired.
1097
+ * - [Home] - If focus is in the text input, moves caret before the first character. If focus is in the list, highlights the first item and updates the input accordingly.
1098
+ * - [End] - If focus is in the text input, moves caret after the last character. If focus is in the list, highlights the last item and updates the input accordingly.
1099
+ * - [Page Up] - If focus is in the list, moves highlight up by page size (10 items by default). If focus is in the input, does nothing.
1100
+ * - [Page Down] - If focus is in the list, moves highlight down by page size (10 items by default). If focus is in the input, does nothing.
1101
+ *
1102
+ * ### ES6 Module Import
1103
+ *
1104
+ * `import "sap/ushell/gen/ui5/webcomponents/dist/Input.js";`
1105
+ *
1106
+ * @constructor
1107
+ * @extends UI5Element
1108
+ * @public
1109
+ * @csspart root - Used to style the root DOM element of the Input component
1110
+ * @csspart input - Used to style the native input element
1111
+ * @csspart clear-icon - Used to style the clear icon, which can be pressed to clear user input text
1112
+ */
1113
+ let Input = Input_1 = class Input extends webcomponentsBase.b {
1114
+ get formValidityMessage() {
1115
+ return Input_1.i18nBundle.getText(i18nDefaults.FORM_TEXTFIELD_REQUIRED);
1116
+ }
1117
+ get _effectiveShowSuggestions() {
1118
+ return !!(this.showSuggestions && this.Suggestions);
1119
+ }
1120
+ get formValidity() {
1121
+ return { valueMissing: this.required && !this.value };
1122
+ }
1123
+ async formElementAnchor() {
1124
+ return this.getFocusDomRefAsync();
1125
+ }
1126
+ get formFormattedValue() {
1127
+ return this.value;
1128
+ }
1129
+ constructor() {
1130
+ super();
1131
+ /**
1132
+ * Defines whether the component is in disabled state.
1133
+ *
1134
+ * **Note:** A disabled component is completely noninteractive.
1135
+ * @default false
1136
+ * @public
1137
+ */
1138
+ this.disabled = false;
1139
+ /**
1140
+ * Defines if characters within the suggestions are to be highlighted
1141
+ * in case the input value matches parts of the suggestions text.
1142
+ *
1143
+ * **Note:** takes effect when `showSuggestions` is set to `true`
1144
+ * @default false
1145
+ * @private
1146
+ * @since 1.0.0-rc.8
1147
+ */
1148
+ this.highlight = false;
1149
+ /**
1150
+ * Defines whether the component is read-only.
1151
+ *
1152
+ * **Note:** A read-only component is not editable,
1153
+ * but still provides visual feedback upon user interaction.
1154
+ * @default false
1155
+ * @public
1156
+ */
1157
+ this.readonly = false;
1158
+ /**
1159
+ * Defines whether the component is required.
1160
+ * @default false
1161
+ * @public
1162
+ * @since 1.0.0-rc.3
1163
+ */
1164
+ this.required = false;
1165
+ /**
1166
+ * Defines whether the value will be autcompleted to match an item
1167
+ * @default false
1168
+ * @public
1169
+ * @since 1.4.0
1170
+ */
1171
+ this.noTypeahead = false;
1172
+ /**
1173
+ * Defines the HTML type of the component.
1174
+ *
1175
+ * **Notes:**
1176
+ *
1177
+ * - The particular effect of this property differs depending on the browser
1178
+ * and the current language settings, especially for type `Number`.
1179
+ * - The property is mostly intended to be used with touch devices
1180
+ * that use different soft keyboard layouts depending on the given input type.
1181
+ * @default "Text"
1182
+ * @public
1183
+ */
1184
+ this.type = "Text";
1185
+ /**
1186
+ * Defines the value of the component.
1187
+ *
1188
+ * **Note:** The property is updated upon typing.
1189
+ * @default ""
1190
+ * @formEvents change input
1191
+ * @formProperty
1192
+ * @public
1193
+ */
1194
+ this.value = "";
1195
+ /**
1196
+ * Defines the inner stored value of the component.
1197
+ *
1198
+ * **Note:** The property is updated upon typing. In some special cases the old value is kept (e.g. deleting the value after the dot in a float)
1199
+ * @default ""
1200
+ * @private
1201
+ */
1202
+ this._innerValue = "";
1203
+ /**
1204
+ * Defines the value state of the component.
1205
+ * @default "None"
1206
+ * @public
1207
+ */
1208
+ this.valueState = "None";
1209
+ /**
1210
+ * Defines whether the component should show suggestions, if such are present.
1211
+ *
1212
+ * @default false
1213
+ * @public
1214
+ */
1215
+ this.showSuggestions = false;
1216
+ /**
1217
+ * Defines whether the clear icon of the input will be shown.
1218
+ * @default false
1219
+ * @public
1220
+ * @since 1.2.0
1221
+ */
1222
+ this.showClearIcon = false;
1223
+ /**
1224
+ * Defines whether the suggestions picker is open.
1225
+ * The picker will not open if the `showSuggestions` property is set to `false`, the input is disabled or the input is readonly.
1226
+ * The picker will close automatically and `close` event will be fired if the input is not in the viewport.
1227
+ * @default false
1228
+ * @public
1229
+ * @since 2.0.0
1230
+ */
1231
+ this.open = false;
1232
+ /**
1233
+ * Defines whether the clear icon is visible.
1234
+ * @default false
1235
+ * @private
1236
+ * @since 1.2.0
1237
+ */
1238
+ this._effectiveShowClearIcon = false;
1239
+ /**
1240
+ * @private
1241
+ */
1242
+ this.focused = false;
1243
+ this.valueStateOpen = false;
1244
+ /**
1245
+ * Indicates whether the visual focus is on the value state header
1246
+ * @private
1247
+ */
1248
+ this._isValueStateFocused = false;
1249
+ this._inputAccInfo = {};
1250
+ this._nativeInputAttributes = {};
1251
+ this._inputIconFocused = false;
1252
+ // Indicates if there is selected suggestionItem.
1253
+ this.hasSuggestionItemSelected = false;
1254
+ // Represents the value before user moves selection from suggestion item to another
1255
+ // and its value is updated after each move.
1256
+ // Note: Used to register and fire "input" event upon [Space] or [Enter].
1257
+ // Note: The property "value" is updated upon selection move and can`t be used.
1258
+ this.valueBeforeItemSelection = "";
1259
+ // Represents the value before user moves selection between the suggestion items
1260
+ // and its value remains the same when the user navigates up or down the list.
1261
+ // Note: Used to cancel selection upon [Escape].
1262
+ this.valueBeforeSelectionStart = "";
1263
+ // tracks the value between focus in and focus out to detect that change event should be fired.
1264
+ this.previousValue = "";
1265
+ // Indicates, if the component is rendering for first time.
1266
+ this.firstRendering = true;
1267
+ // The typed in value.
1268
+ this.typedInValue = "";
1269
+ // The last value confirmed by the user with "ENTER"
1270
+ this.lastConfirmedValue = "";
1271
+ // Indicates, if the user is typing. Gets reset once popup is closed
1272
+ this.isTyping = false;
1273
+ // Indicates whether the value of the input is comming from a suggestion item
1274
+ this._isLatestValueFromSuggestions = false;
1275
+ this._isChangeTriggeredBySuggestion = false;
1276
+ this._indexOfSelectedItem = -1;
1277
+ this._handleResizeBound = this._handleResize.bind(this);
1278
+ this._keepInnerValue = false;
1279
+ this._focusedAfterClear = false;
1280
+ }
1281
+ onEnterDOM() {
1282
+ webcomponentsBase.f.register(this, this._handleResizeBound);
1283
+ AccessibilityTextsHelper.y(this, this._updateAssociatedLabelsTexts.bind(this));
1284
+ }
1285
+ onExitDOM() {
1286
+ webcomponentsBase.f.deregister(this, this._handleResizeBound);
1287
+ AccessibilityTextsHelper.T(this);
1288
+ }
1289
+ _highlightSuggestionItem(item) {
1290
+ item.markupText = this.typedInValue ? this.Suggestions?.hightlightInput((item.text || ""), this.typedInValue) : encodeXML.fnEncodeXML(item.text || "");
1291
+ }
1292
+ _isGroupItem(item) {
1293
+ return item.hasAttribute("ui5-suggestion-item-group");
1294
+ }
1295
+ onBeforeRendering() {
1296
+ if (!this._keepInnerValue) {
1297
+ this._innerValue = this.value === null ? "" : this.value;
1298
+ }
1299
+ if (this.showSuggestions) {
1300
+ this.enableSuggestions();
1301
+ this._flattenItems.forEach(item => {
1302
+ if (item.hasAttribute("ui5-suggestion-item")) {
1303
+ this._highlightSuggestionItem(item);
1304
+ }
1305
+ else if (this._isGroupItem(item)) {
1306
+ item.items?.forEach(nestedItem => {
1307
+ this._highlightSuggestionItem(nestedItem);
1308
+ });
1309
+ }
1310
+ });
1311
+ }
1312
+ this._effectiveShowClearIcon = (this.showClearIcon && !!this.value && !this.readonly && !this.disabled);
1313
+ this.style.setProperty(Icons.d$1("--_ui5-input-icons-count"), `${this.iconsCount}`);
1314
+ const hasItems = !!this._flattenItems.length;
1315
+ const hasValue = !!this.value;
1316
+ const isFocused = this.shadowRoot.querySelector("input") === webcomponentsBase.t();
1317
+ if (this.shouldDisplayOnlyValueStateMessage) {
1318
+ this.openValueStatePopover();
1319
+ }
1320
+ else {
1321
+ this.closeValueStatePopover();
1322
+ }
1323
+ const preventOpenPicker = this.disabled || this.readonly;
1324
+ if (preventOpenPicker) {
1325
+ this.open = false;
1326
+ }
1327
+ else if (!this._isPhone) {
1328
+ this.open = hasItems && (this.open || (hasValue && isFocused && this.isTyping));
1329
+ }
1330
+ const value = this.value;
1331
+ const innerInput = this.getInputDOMRefSync();
1332
+ if (!innerInput || !value) {
1333
+ return;
1334
+ }
1335
+ const autoCompletedChars = innerInput.selectionEnd - innerInput.selectionStart;
1336
+ // Typehead causes issues on Android devices, so we disable it for now
1337
+ // If there is already a selection the autocomplete has already been performed
1338
+ if (this._shouldAutocomplete && !Icons.P$1() && !autoCompletedChars && !this._isKeyNavigation) {
1339
+ const item = this._getFirstMatchingItem(value);
1340
+ if (item) {
1341
+ this._handleTypeAhead(item);
1342
+ this._selectMatchingItem(item);
1343
+ }
1344
+ }
1345
+ }
1346
+ onAfterRendering() {
1347
+ const innerInput = this.getInputDOMRefSync();
1348
+ if (this.showSuggestions && this.Suggestions?._getPicker()) {
1349
+ this._listWidth = this.Suggestions._getListWidth();
1350
+ // disabled ItemNavigation from the list since we are not using it
1351
+ this.Suggestions._getList()._itemNavigation._getItems = () => [];
1352
+ }
1353
+ if (this._performTextSelection) {
1354
+ // this is required to syncronize lit-html input's value and user's input
1355
+ // lit-html does not sync its stored value for the value property when the user is typing
1356
+ if (innerInput.value !== this._innerValue) {
1357
+ innerInput.value = this._innerValue;
1358
+ }
1359
+ if (this.typedInValue.length && this.value.length) {
1360
+ innerInput.setSelectionRange(this.typedInValue.length, this.value.length);
1361
+ }
1362
+ this.fireDecoratorEvent("type-ahead");
1363
+ }
1364
+ this._performTextSelection = false;
1365
+ }
1366
+ _onkeydown(e) {
1367
+ this._isKeyNavigation = true;
1368
+ this._shouldAutocomplete = !this.noTypeahead && !(webcomponentsBase.x(e) || webcomponentsBase.V(e) || webcomponentsBase.H(e));
1369
+ if (webcomponentsBase.D(e)) {
1370
+ return this._handleUp(e);
1371
+ }
1372
+ if (webcomponentsBase.P(e)) {
1373
+ return this._handleDown(e);
1374
+ }
1375
+ if (webcomponentsBase.i(e)) {
1376
+ return this._handleSpace(e);
1377
+ }
1378
+ if (webcomponentsBase.B(e)) {
1379
+ return this._handleTab();
1380
+ }
1381
+ if (webcomponentsBase.b$1(e)) {
1382
+ const isValueUnchanged = this.previousValue === this.getInputDOMRefSync().value;
1383
+ this._enterKeyDown = true;
1384
+ if (isValueUnchanged && this._internals.form) {
1385
+ webcomponentsBase.i$1(this);
1386
+ }
1387
+ return this._handleEnter(e);
1388
+ }
1389
+ if (webcomponentsBase.Y(e)) {
1390
+ return this._handlePageUp(e);
1391
+ }
1392
+ if (webcomponentsBase.Z(e)) {
1393
+ return this._handlePageDown(e);
1394
+ }
1395
+ if (webcomponentsBase.F(e)) {
1396
+ return this._handleHome(e);
1397
+ }
1398
+ if (webcomponentsBase.W(e)) {
1399
+ return this._handleEnd(e);
1400
+ }
1401
+ if (webcomponentsBase.H(e)) {
1402
+ return this._handleEscape();
1403
+ }
1404
+ if (this.showSuggestions) {
1405
+ this._clearPopoverFocusAndSelection();
1406
+ }
1407
+ this._isKeyNavigation = false;
1408
+ }
1409
+ _onkeyup(e) {
1410
+ // The native Delete event does not update the value property "on time".
1411
+ // So, the (native) change event is always fired with the old value
1412
+ if (webcomponentsBase.V(e)) {
1413
+ this.value = e.target.value;
1414
+ }
1415
+ this._enterKeyDown = false;
1416
+ }
1417
+ get currentItemIndex() {
1418
+ const allItems = this.Suggestions?._getItems();
1419
+ const currentItem = allItems.find(item => { return item.selected || item.focused; });
1420
+ const indexOfCurrentItem = currentItem ? allItems.indexOf(currentItem) : -1;
1421
+ return indexOfCurrentItem;
1422
+ }
1423
+ _handleUp(e) {
1424
+ if (this.Suggestions?.isOpened()) {
1425
+ this.Suggestions.onUp(e, this.currentItemIndex);
1426
+ }
1427
+ }
1428
+ _handleDown(e) {
1429
+ if (this.Suggestions?.isOpened()) {
1430
+ this.Suggestions.onDown(e, this.currentItemIndex);
1431
+ }
1432
+ }
1433
+ _handleSpace(e) {
1434
+ if (this.Suggestions) {
1435
+ this.Suggestions.onSpace(e);
1436
+ }
1437
+ }
1438
+ _handleTab() {
1439
+ if (this.Suggestions && (this.previousValue !== this.value)) {
1440
+ this.Suggestions.onTab();
1441
+ }
1442
+ }
1443
+ _handleEnter(e) {
1444
+ // if a group item is focused, this is false
1445
+ const suggestionItemPressed = !!(this.Suggestions?.onEnter(e));
1446
+ const innerInput = this.getInputDOMRefSync();
1447
+ const matchingItem = this._selectableItems.find(item => {
1448
+ return item.text === this.value;
1449
+ });
1450
+ if (matchingItem) {
1451
+ const itemText = matchingItem.text || "";
1452
+ innerInput.setSelectionRange(itemText.length, itemText.length);
1453
+ if (!suggestionItemPressed) {
1454
+ this.fireSelectionChange(matchingItem, true);
1455
+ this.acceptSuggestion(matchingItem, true);
1456
+ this.open = false;
1457
+ }
1458
+ }
1459
+ if (this._isPhone && !this._flattenItems.length && !this.isTypeNumber) {
1460
+ innerInput.setSelectionRange(this.value.length, this.value.length);
1461
+ }
1462
+ if (!suggestionItemPressed) {
1463
+ this.lastConfirmedValue = this.value;
1464
+ return;
1465
+ }
1466
+ this.focused = true;
1467
+ }
1468
+ _handlePageUp(e) {
1469
+ if (this._isSuggestionsFocused) {
1470
+ this.Suggestions?.onPageUp(e);
1471
+ }
1472
+ else {
1473
+ e.preventDefault();
1474
+ }
1475
+ }
1476
+ _handlePageDown(e) {
1477
+ if (this._isSuggestionsFocused) {
1478
+ this.Suggestions?.onPageDown(e);
1479
+ }
1480
+ else {
1481
+ e.preventDefault();
1482
+ }
1483
+ }
1484
+ _handleHome(e) {
1485
+ if (this._isSuggestionsFocused) {
1486
+ this.Suggestions?.onHome(e);
1487
+ }
1488
+ }
1489
+ _handleEnd(e) {
1490
+ if (this._isSuggestionsFocused) {
1491
+ this.Suggestions?.onEnd(e);
1492
+ }
1493
+ }
1494
+ _handleEscape() {
1495
+ const hasSuggestions = this.showSuggestions && !!this.Suggestions;
1496
+ const isOpen = hasSuggestions && this.open;
1497
+ const innerInput = this.getInputDOMRefSync();
1498
+ const isAutoCompleted = innerInput.selectionEnd - innerInput.selectionStart > 0;
1499
+ this.isTyping = false;
1500
+ if (this.value !== this.previousValue && this.value !== this.lastConfirmedValue && !this.open) {
1501
+ this.value = this.lastConfirmedValue ? this.lastConfirmedValue : this.previousValue;
1502
+ this.fireDecoratorEvent(INPUT_EVENTS.INPUT, { inputType: "" });
1503
+ return;
1504
+ }
1505
+ if (!isOpen) {
1506
+ this.value = this.lastConfirmedValue ? this.lastConfirmedValue : this.previousValue;
1507
+ return;
1508
+ }
1509
+ if (isOpen && this.Suggestions?._isItemOnTarget()) {
1510
+ // Restore the value.
1511
+ this.value = this.typedInValue || this.valueBeforeSelectionStart;
1512
+ this.focused = true;
1513
+ return;
1514
+ }
1515
+ if (isAutoCompleted) {
1516
+ this.value = this.typedInValue;
1517
+ }
1518
+ if (this._isValueStateFocused) {
1519
+ this._isValueStateFocused = false;
1520
+ this.focused = true;
1521
+ }
1522
+ }
1523
+ _onfocusin(e) {
1524
+ this.focused = true; // invalidating property
1525
+ if (!this._focusedAfterClear) {
1526
+ this.previousValue = this.value;
1527
+ }
1528
+ this.valueBeforeSelectionStart = this.value;
1529
+ this._inputIconFocused = !!e.target && e.target === this.querySelector("[ui5-icon]");
1530
+ this._focusedAfterClear = false;
1531
+ }
1532
+ /**
1533
+ * Called on "focusin" of the native input HTML Element.
1534
+ * **Note:** implemented in MultiInput, but used in the Input template.
1535
+ */
1536
+ innerFocusIn() { }
1537
+ _onfocusout(e) {
1538
+ const toBeFocused = e.relatedTarget;
1539
+ if (this.Suggestions?._getPicker().contains(toBeFocused) || this.contains(toBeFocused) || this.getSlottedNodes("valueStateMessage").some(el => el.contains(toBeFocused))) {
1540
+ return;
1541
+ }
1542
+ this._keepInnerValue = false;
1543
+ this.focused = false; // invalidating property
1544
+ this._isChangeTriggeredBySuggestion = false;
1545
+ if (this.showClearIcon && !this._effectiveShowClearIcon) {
1546
+ this._clearIconClicked = false;
1547
+ this._handleChange();
1548
+ }
1549
+ this.open = false;
1550
+ this._clearPopoverFocusAndSelection();
1551
+ if (!this._clearIconClicked) {
1552
+ this.previousValue = "";
1553
+ }
1554
+ this.lastConfirmedValue = "";
1555
+ this.isTyping = false;
1556
+ if ((this.value !== this.previousValue) && this.showClearIcon) {
1557
+ this._clearIconClicked = false;
1558
+ }
1559
+ }
1560
+ _clearPopoverFocusAndSelection() {
1561
+ if (!this.showSuggestions || !this.Suggestions) {
1562
+ return;
1563
+ }
1564
+ this._isValueStateFocused = false;
1565
+ this.hasSuggestionItemSelected = false;
1566
+ this.Suggestions?._deselectItems();
1567
+ this.Suggestions?._clearItemFocus();
1568
+ }
1569
+ _click() {
1570
+ if (Icons.d() && !this.readonly && this.Suggestions) {
1571
+ this.blur();
1572
+ this.open = true;
1573
+ }
1574
+ }
1575
+ _handleChange() {
1576
+ if (this._clearIconClicked) {
1577
+ this._clearIconClicked = false;
1578
+ return;
1579
+ }
1580
+ const fireChange = () => {
1581
+ if (!this._isChangeTriggeredBySuggestion) {
1582
+ this.fireDecoratorEvent(INPUT_EVENTS.CHANGE);
1583
+ }
1584
+ this.previousValue = this.value;
1585
+ this.typedInValue = this.value;
1586
+ this._isChangeTriggeredBySuggestion = false;
1587
+ };
1588
+ if (this.previousValue !== this.getInputDOMRefSync().value) {
1589
+ // if picker is open there might be a selected item, wait next tick to get the value applied
1590
+ if (this.Suggestions?._getPicker().open && this._flattenItems.some(item => item.hasAttribute("ui5-suggestion-item") && item.selected)) {
1591
+ this._changeToBeFired = true;
1592
+ }
1593
+ else {
1594
+ fireChange();
1595
+ if (this._enterKeyDown && this._internals.form) {
1596
+ webcomponentsBase.i$1(this);
1597
+ }
1598
+ }
1599
+ }
1600
+ }
1601
+ _clear() {
1602
+ const valueBeforeClear = this.value;
1603
+ this.value = "";
1604
+ const prevented = !this.fireDecoratorEvent(INPUT_EVENTS.INPUT, { inputType: "" });
1605
+ if (prevented) {
1606
+ this.value = valueBeforeClear;
1607
+ return;
1608
+ }
1609
+ if (!this._isPhone) {
1610
+ this.fireResetSelectionChange();
1611
+ this.focus();
1612
+ this._focusedAfterClear = true;
1613
+ }
1614
+ }
1615
+ _iconMouseDown() {
1616
+ this._clearIconClicked = true;
1617
+ }
1618
+ _scroll(e) {
1619
+ this.fireDecoratorEvent("suggestion-scroll", {
1620
+ scrollTop: e.detail.scrollTop,
1621
+ scrollContainer: e.detail.targetRef,
1622
+ });
1623
+ }
1624
+ _handleSelect() {
1625
+ this.fireDecoratorEvent("select");
1626
+ }
1627
+ _handleInput(e) {
1628
+ const eventType = (e.detail && e.detail.inputType) || "";
1629
+ this._input(e, eventType);
1630
+ }
1631
+ _handleNativeInput(e) {
1632
+ const eventType = e.inputType || "";
1633
+ this._input(e, eventType);
1634
+ }
1635
+ _input(e, eventType) {
1636
+ const inputDomRef = this.getInputDOMRefSync();
1637
+ const emptyValueFiredOnNumberInput = this.value && this.isTypeNumber && !inputDomRef.value;
1638
+ this._keepInnerValue = false;
1639
+ const allowedEventTypes = [
1640
+ "deleteWordBackward",
1641
+ "deleteWordForward",
1642
+ "deleteSoftLineBackward",
1643
+ "deleteSoftLineForward",
1644
+ "deleteEntireSoftLine",
1645
+ "deleteHardLineBackward",
1646
+ "deleteHardLineForward",
1647
+ "deleteByDrag",
1648
+ "deleteByCut",
1649
+ "deleteContent",
1650
+ "deleteContentBackward",
1651
+ "deleteContentForward",
1652
+ "historyUndo",
1653
+ ];
1654
+ this._shouldAutocomplete = !allowedEventTypes.includes(eventType) && !this.noTypeahead;
1655
+ if (e instanceof InputEvent) {
1656
+ // ---- Special cases of numeric Input ----
1657
+ // ---------------- Start -----------------
1658
+ // When the last character after the delimiter is removed.
1659
+ // In such cases, we want to skip the re-rendering of the
1660
+ // component as this leads to cursor repositioning and causes user experience issues.
1661
+ // There are few scenarios:
1662
+ // Example: type "123.4" and press BACKSPACE - the native input is firing event with the whole part as value (123).
1663
+ // Pressing BACKSPACE again will remove the delimiter and the native input will fire event with the whole part as value again (123).
1664
+ // Example: type "123.456", select/mark "456" and press BACKSPACE - the native input is firing event with the whole part as value (123).
1665
+ // Example: type "123.456", select/mark "123.456" and press BACKSPACE - the native input is firing event with empty value.
1666
+ const delimiterCase = this.isTypeNumber
1667
+ && (e.inputType === "deleteContentForward" || e.inputType === "deleteContentBackward")
1668
+ && !e.target.value.includes(".")
1669
+ && this.value.includes(".");
1670
+ // Handle special numeric notation with "e", example "12.5e12"
1671
+ const eNotationCase = emptyValueFiredOnNumberInput && e.data === "e";
1672
+ // Handle special numeric notation with "-", example "-3"
1673
+ // When pressing BACKSPACE, the native input fires event with empty value
1674
+ const minusRemovalCase = emptyValueFiredOnNumberInput
1675
+ && this.value.startsWith("-")
1676
+ && this.value.length === 2
1677
+ && (e.inputType === "deleteContentForward" || e.inputType === "deleteContentBackward");
1678
+ if (delimiterCase || eNotationCase || minusRemovalCase) {
1679
+ this.value = e.target.value;
1680
+ this._keepInnerValue = true;
1681
+ }
1682
+ // ----------------- End ------------------
1683
+ }
1684
+ if (e.target === inputDomRef) {
1685
+ this.focused = true;
1686
+ // stop the native event, as the semantic "input" would be fired.
1687
+ e.stopImmediatePropagation();
1688
+ }
1689
+ this.fireEventByAction(INPUT_ACTIONS.ACTION_ENTER, e);
1690
+ this.hasSuggestionItemSelected = false;
1691
+ this._isValueStateFocused = false;
1692
+ if (this.Suggestions) {
1693
+ this.Suggestions.updateSelectedItemPosition(-1);
1694
+ }
1695
+ this.isTyping = true;
1696
+ }
1697
+ _startsWithMatchingItems(str) {
1698
+ return StartsWith(str, this._selectableItems, "text");
1699
+ }
1700
+ _getFirstMatchingItem(current) {
1701
+ if (!this._flattenItems.length) {
1702
+ return;
1703
+ }
1704
+ const matchingItems = this._startsWithMatchingItems(current).filter(item => !this._isGroupItem(item));
1705
+ if (matchingItems.length) {
1706
+ return matchingItems[0];
1707
+ }
1708
+ }
1709
+ _handleSelectionChange(e) {
1710
+ this.Suggestions?.onItemPress(e);
1711
+ }
1712
+ _selectMatchingItem(item) {
1713
+ item.selected = true;
1714
+ }
1715
+ _handleTypeAhead(item) {
1716
+ const value = item.text ? item.text : "";
1717
+ this._innerValue = value;
1718
+ this.value = value;
1719
+ this._performTextSelection = true;
1720
+ this._shouldAutocomplete = false;
1721
+ }
1722
+ _handleResize() {
1723
+ this._inputWidth = this.offsetWidth;
1724
+ }
1725
+ _updateAssociatedLabelsTexts() {
1726
+ this._associatedLabelsTexts = AccessibilityTextsHelper.M(this);
1727
+ this._accessibleLabelsRefTexts = AccessibilityTextsHelper.E(this);
1728
+ this._associatedDescriptionRefTexts = AccessibilityTextsHelper.p(this);
1729
+ }
1730
+ _closePicker() {
1731
+ this.open = false;
1732
+ }
1733
+ _afterOpenPicker() {
1734
+ // Set initial focus to the native input
1735
+ if (Icons.d()) {
1736
+ (this.getInputDOMRef()).focus();
1737
+ }
1738
+ this._handlePickerAfterOpen();
1739
+ }
1740
+ _afterClosePicker() {
1741
+ this.announceSelectedItem();
1742
+ // close device's keyboard and prevent further typing
1743
+ if (Icons.d()) {
1744
+ this.blur();
1745
+ this.focused = false;
1746
+ }
1747
+ if (this._changeToBeFired && !this._isChangeTriggeredBySuggestion) {
1748
+ this.previousValue = this.value;
1749
+ this.fireDecoratorEvent(INPUT_EVENTS.CHANGE);
1750
+ }
1751
+ else {
1752
+ this._isChangeTriggeredBySuggestion = false;
1753
+ }
1754
+ this._changeToBeFired = false;
1755
+ this.open = false;
1756
+ this.isTyping = false;
1757
+ if (this.hasSuggestionItemSelected) {
1758
+ this.focus();
1759
+ }
1760
+ this._handlePickerAfterClose();
1761
+ }
1762
+ _handlePickerAfterOpen() {
1763
+ this.fireDecoratorEvent("open");
1764
+ }
1765
+ _handlePickerAfterClose() {
1766
+ this.Suggestions?._onClose();
1767
+ this.fireDecoratorEvent("close");
1768
+ }
1769
+ openValueStatePopover() {
1770
+ this.valueStateOpen = true;
1771
+ }
1772
+ closeValueStatePopover() {
1773
+ this.valueStateOpen = false;
1774
+ }
1775
+ _handleValueStatePopoverAfterClose() {
1776
+ this.valueStateOpen = false;
1777
+ }
1778
+ _getValueStatePopover() {
1779
+ return this.shadowRoot.querySelector("[ui5-popover]");
1780
+ }
1781
+ enableSuggestions() {
1782
+ if (this.Suggestions) {
1783
+ return;
1784
+ }
1785
+ const setup = (Suggestions) => {
1786
+ Suggestions.i18nBundle = Input_1.i18nBundle;
1787
+ this.Suggestions = new Suggestions(this, "suggestionItems", true, false);
1788
+ };
1789
+ // If the feature is preloaded (the user manually imported InputSuggestions.js), it is already available on the constructor
1790
+ if (Input_1.SuggestionsClass) {
1791
+ setup(Input_1.SuggestionsClass);
1792
+ // If feature is not preloaded, load it dynamically
1793
+ }
1794
+ else {
1795
+ new Promise(function (resolve, reject) { require(['sap/ushell/thirdparty/_dynamics/InputSuggestions'], resolve, reject); }).then(SuggestionsModule => {
1796
+ setup(SuggestionsModule.default);
1797
+ });
1798
+ }
1799
+ }
1800
+ acceptSuggestion(item, keyboardUsed) {
1801
+ if (this._isGroupItem(item)) {
1802
+ return;
1803
+ }
1804
+ const value = this.typedInValue || this.value;
1805
+ const itemText = item.text || "";
1806
+ const fireChange = keyboardUsed
1807
+ ? this.valueBeforeItemSelection !== itemText : value !== itemText;
1808
+ this.hasSuggestionItemSelected = true;
1809
+ this.value = itemText;
1810
+ if (fireChange && (this.previousValue !== itemText)) {
1811
+ this.valueBeforeItemSelection = itemText;
1812
+ this.lastConfirmedValue = itemText;
1813
+ this._performTextSelection = true;
1814
+ this.fireDecoratorEvent(INPUT_EVENTS.CHANGE);
1815
+ this._isChangeTriggeredBySuggestion = true;
1816
+ // value might change in the change event handler
1817
+ this.typedInValue = this.value;
1818
+ this.previousValue = this.value;
1819
+ }
1820
+ this.valueBeforeSelectionStart = "";
1821
+ this.isTyping = false;
1822
+ this.open = false;
1823
+ }
1824
+ /**
1825
+ * Updates the input value on item select.
1826
+ * @param item The item that is on select
1827
+ */
1828
+ updateValueOnSelect(item) {
1829
+ const itemValue = this._isGroupItem(item) ? this.valueBeforeSelectionStart : item.text;
1830
+ this.value = itemValue || "";
1831
+ this._performTextSelection = true;
1832
+ }
1833
+ fireEventByAction(action, e) {
1834
+ const valueBeforeInput = this.value;
1835
+ const inputRef = this.getInputDOMRefSync();
1836
+ if (this.disabled || this.readonly) {
1837
+ return;
1838
+ }
1839
+ const inputValue = this.getInputValue();
1840
+ const isUserInput = action === INPUT_ACTIONS.ACTION_ENTER;
1841
+ this.value = inputValue;
1842
+ this.typedInValue = inputValue;
1843
+ this.valueBeforeSelectionStart = inputValue;
1844
+ const valueAfterInput = this.value;
1845
+ if (isUserInput) { // input
1846
+ const inputType = e.inputType || "";
1847
+ const prevented = !this.fireDecoratorEvent(INPUT_EVENTS.INPUT, { inputType });
1848
+ if (prevented) {
1849
+ // if the value is not changed after preventing the input event, revert the value
1850
+ if (valueAfterInput === this.value) {
1851
+ this.value = valueBeforeInput;
1852
+ }
1853
+ inputRef && (inputRef.value = this.value);
1854
+ }
1855
+ this.fireResetSelectionChange();
1856
+ }
1857
+ }
1858
+ getInputValue() {
1859
+ const domRef = this.getDomRef();
1860
+ if (domRef) {
1861
+ return (this.getInputDOMRef()).value;
1862
+ }
1863
+ return "";
1864
+ }
1865
+ getInputDOMRef() {
1866
+ if (Icons.d() && this.Suggestions) {
1867
+ return this.Suggestions._getPicker().querySelector(".ui5-input-inner-phone");
1868
+ }
1869
+ return this.nativeInput;
1870
+ }
1871
+ getInputDOMRefSync() {
1872
+ if (Icons.d() && this.Suggestions?._getPicker()) {
1873
+ return this.Suggestions._getPicker().querySelector(".ui5-input-inner-phone").shadowRoot.querySelector("input");
1874
+ }
1875
+ return this.nativeInput;
1876
+ }
1877
+ /**
1878
+ * Returns a reference to the native input element
1879
+ * @protected
1880
+ */
1881
+ get nativeInput() {
1882
+ const domRef = this.getDomRef();
1883
+ return domRef ? domRef.querySelector(`input`) : null;
1884
+ }
1885
+ get nativeInputWidth() {
1886
+ return this.nativeInput ? this.nativeInput.offsetWidth : 0;
1887
+ }
1888
+ /**
1889
+ * Returns if the suggestions popover is scrollable.
1890
+ * The method returns `Promise` that resolves to true,
1891
+ * if the popup is scrollable and false otherwise.
1892
+ */
1893
+ isSuggestionsScrollable() {
1894
+ if (!this.Suggestions) {
1895
+ return Promise.resolve(false);
1896
+ }
1897
+ return this.Suggestions?._isScrollable();
1898
+ }
1899
+ onItemMouseDown(e) {
1900
+ e.preventDefault();
1901
+ }
1902
+ onItemSelected(suggestionItem, keyboardUsed) {
1903
+ const shouldFireSelectionChange = !keyboardUsed && !suggestionItem?.focused && this.valueBeforeItemSelection !== suggestionItem.text;
1904
+ if (shouldFireSelectionChange) {
1905
+ this.fireSelectionChange(suggestionItem, true);
1906
+ }
1907
+ this.acceptSuggestion(suggestionItem, keyboardUsed);
1908
+ }
1909
+ _handleSuggestionItemPress(e) {
1910
+ this.Suggestions?.onItemPress(e);
1911
+ }
1912
+ onItemSelect(item) {
1913
+ this.valueBeforeItemSelection = this.value;
1914
+ this.updateValueOnSelect(item);
1915
+ this.announceSelectedItem();
1916
+ this.fireSelectionChange(item, true);
1917
+ }
1918
+ get _flattenItems() {
1919
+ return this.getSlottedNodes("suggestionItems").flatMap(item => {
1920
+ return this._isGroupItem(item) ? [item, ...item.items] : [item];
1921
+ });
1922
+ }
1923
+ get _selectableItems() {
1924
+ return this._flattenItems.filter(item => !this._isGroupItem(item));
1925
+ }
1926
+ get valueStateTypeMappings() {
1927
+ return {
1928
+ "Positive": Input_1.i18nBundle.getText(i18nDefaults.VALUE_STATE_TYPE_SUCCESS),
1929
+ "Information": Input_1.i18nBundle.getText(i18nDefaults.VALUE_STATE_TYPE_INFORMATION),
1930
+ "Negative": Input_1.i18nBundle.getText(i18nDefaults.VALUE_STATE_TYPE_ERROR),
1931
+ "Critical": Input_1.i18nBundle.getText(i18nDefaults.VALUE_STATE_TYPE_WARNING),
1932
+ };
1933
+ }
1934
+ valueStateTextMappings() {
1935
+ return {
1936
+ "Positive": Input_1.i18nBundle.getText(i18nDefaults.VALUE_STATE_SUCCESS),
1937
+ "Information": Input_1.i18nBundle.getText(i18nDefaults.VALUE_STATE_INFORMATION),
1938
+ "Negative": Input_1.i18nBundle.getText(i18nDefaults.VALUE_STATE_ERROR),
1939
+ "Critical": Input_1.i18nBundle.getText(i18nDefaults.VALUE_STATE_WARNING),
1940
+ };
1941
+ }
1942
+ announceSelectedItem() {
1943
+ const invisibleText = this.shadowRoot.querySelector(`#selectionText`);
1944
+ if (invisibleText) {
1945
+ invisibleText.textContent = this.itemSelectionAnnounce;
1946
+ }
1947
+ }
1948
+ fireSelectionChange(item, isValueFromSuggestions) {
1949
+ if (this.Suggestions) {
1950
+ this.fireDecoratorEvent(INPUT_EVENTS.SELECTION_CHANGE, { item });
1951
+ this._isLatestValueFromSuggestions = isValueFromSuggestions;
1952
+ }
1953
+ }
1954
+ fireResetSelectionChange() {
1955
+ if (this._isLatestValueFromSuggestions) {
1956
+ this.fireSelectionChange(null, false);
1957
+ this.valueBeforeItemSelection = this.value;
1958
+ }
1959
+ }
1960
+ get _readonly() {
1961
+ return this.readonly && !this.disabled;
1962
+ }
1963
+ get _headerTitleText() {
1964
+ return Input_1.i18nBundle.getText(i18nDefaults.INPUT_SUGGESTIONS_TITLE);
1965
+ }
1966
+ get _suggestionsOkButtonText() {
1967
+ return Input_1.i18nBundle.getText(i18nDefaults.INPUT_SUGGESTIONS_OK_BUTTON);
1968
+ }
1969
+ get clearIconAccessibleName() {
1970
+ return Input_1.i18nBundle.getText(i18nDefaults.INPUT_CLEAR_ICON_ACC_NAME);
1971
+ }
1972
+ get _popupLabel() {
1973
+ return Input_1.i18nBundle.getText(i18nDefaults.INPUT_AVALIABLE_VALUES);
1974
+ }
1975
+ get inputType() {
1976
+ return this.type;
1977
+ }
1978
+ get inputNativeType() {
1979
+ return this.type.toLowerCase();
1980
+ }
1981
+ get isTypeNumber() {
1982
+ return this.type === InputType$1.Number;
1983
+ }
1984
+ get suggestionsTextId() {
1985
+ return this.showSuggestions ? `suggestionsText` : "";
1986
+ }
1987
+ get valueStateTextId() {
1988
+ return this.hasValueState ? `valueStateDesc` : "";
1989
+ }
1990
+ get _accInfoAriaDescription() {
1991
+ return (this._inputAccInfo && this._inputAccInfo.ariaDescription) || "";
1992
+ }
1993
+ get _accInfoAriaDescriptionId() {
1994
+ const hasAriaDescription = this._accInfoAriaDescription !== "";
1995
+ return hasAriaDescription ? "descr" : "";
1996
+ }
1997
+ get ariaDescriptionText() {
1998
+ return this._associatedDescriptionRefTexts || AccessibilityTextsHelper.L(this);
1999
+ }
2000
+ get ariaDescriptionTextId() {
2001
+ return this.ariaDescriptionText ? "accessibleDescription" : "";
2002
+ }
2003
+ get ariaDescribedByIds() {
2004
+ return [
2005
+ this.suggestionsTextId,
2006
+ this.valueStateTextId,
2007
+ this._inputAccInfo.ariaDescribedBy,
2008
+ this._accInfoAriaDescriptionId,
2009
+ this.ariaDescriptionTextId,
2010
+ ].filter(Boolean).join(" ");
2011
+ }
2012
+ get accInfo() {
2013
+ const ariaHasPopupDefault = this.showSuggestions ? "dialog" : undefined;
2014
+ const ariaAutoCompleteDefault = this.showSuggestions ? "list" : undefined;
2015
+ return {
2016
+ "ariaRoledescription": this._inputAccInfo && (this._inputAccInfo.ariaRoledescription || undefined),
2017
+ "ariaDescribedBy": this.ariaDescribedByIds || undefined,
2018
+ "ariaInvalid": this.valueState === ValueState.o.Negative ? true : undefined,
2019
+ "ariaHasPopup": this._inputAccInfo.ariaHasPopup ? this._inputAccInfo.ariaHasPopup : ariaHasPopupDefault,
2020
+ "ariaAutoComplete": this._inputAccInfo.ariaAutoComplete ? this._inputAccInfo.ariaAutoComplete : ariaAutoCompleteDefault,
2021
+ "role": this._inputAccInfo && this._inputAccInfo.role,
2022
+ "ariaControls": this._inputAccInfo && this._inputAccInfo.ariaControls,
2023
+ "ariaExpanded": this._inputAccInfo && this._inputAccInfo.ariaExpanded,
2024
+ "ariaDescription": this._accInfoAriaDescription,
2025
+ "accessibleDescription": this.ariaDescriptionText,
2026
+ "ariaLabel": (this._inputAccInfo && this._inputAccInfo.ariaLabel) || this._accessibleLabelsRefTexts || this.accessibleName || this._associatedLabelsTexts || undefined,
2027
+ };
2028
+ }
2029
+ get nativeInputAttributes() {
2030
+ return {
2031
+ "min": this.isTypeNumber ? this._nativeInputAttributes.min : undefined,
2032
+ "max": this.isTypeNumber ? this._nativeInputAttributes.max : undefined,
2033
+ "step": this.isTypeNumber ? (this._nativeInputAttributes.step || "any") : undefined,
2034
+ };
2035
+ }
2036
+ get ariaValueStateHiddenText() {
2037
+ if (!this.hasValueState) {
2038
+ return;
2039
+ }
2040
+ const valueState = this.valueState !== ValueState.o.None ? this.valueStateTypeMappings[this.valueState] : "";
2041
+ if (this.shouldDisplayDefaultValueStateMessage) {
2042
+ return this.valueStateText ? `${valueState} ${this.valueStateText}` : valueState;
2043
+ }
2044
+ return `${valueState}`.concat(" ", this.valueStateMessage.map(el => el.textContent).join(" "));
2045
+ }
2046
+ get itemSelectionAnnounce() {
2047
+ return this.Suggestions ? this.Suggestions.itemSelectionAnnounce : "";
2048
+ }
2049
+ get iconsCount() {
2050
+ const slottedIconsCount = this.icon ? this.icon.length : 0;
2051
+ const clearIconCount = Number(this._effectiveShowClearIcon) ?? 0;
2052
+ return slottedIconsCount + clearIconCount;
2053
+ }
2054
+ get classes() {
2055
+ return {
2056
+ popover: {
2057
+ "ui5-suggestions-popover": this.showSuggestions,
2058
+ "ui5-popover-with-value-state-header-phone": this._isPhone && this.showSuggestions && this.hasValueStateMessage,
2059
+ "ui5-popover-with-value-state-header": !this._isPhone && this.showSuggestions && this.hasValueStateMessage,
2060
+ },
2061
+ popoverValueState: {
2062
+ "ui5-valuestatemessage-root": true,
2063
+ "ui5-valuestatemessage-header": true,
2064
+ "ui5-valuestatemessage--success": this.valueState === ValueState.o.Positive,
2065
+ "ui5-valuestatemessage--error": this.valueState === ValueState.o.Negative,
2066
+ "ui5-valuestatemessage--warning": this.valueState === ValueState.o.Critical,
2067
+ "ui5-valuestatemessage--information": this.valueState === ValueState.o.Information,
2068
+ },
2069
+ };
2070
+ }
2071
+ get styles() {
2072
+ const remSizeIxPx = parseInt(getComputedStyle(document.documentElement).fontSize);
2073
+ const stylesObject = {
2074
+ popoverHeader: {
2075
+ "max-width": this._inputWidth ? `${this._inputWidth}px` : "",
2076
+ },
2077
+ suggestionPopoverHeader: {
2078
+ "display": this._listWidth === 0 ? "none" : "inline-block",
2079
+ "width": this._listWidth ? `${this._listWidth}px` : "",
2080
+ },
2081
+ suggestionsPopover: {
2082
+ "min-width": this._inputWidth ? `${this._inputWidth}px` : "",
2083
+ "max-width": this._inputWidth && (this._inputWidth / remSizeIxPx) > 40 ? `${this._inputWidth}px` : "40rem",
2084
+ },
2085
+ innerInput: {
2086
+ "padding": "",
2087
+ },
2088
+ };
2089
+ return stylesObject;
2090
+ }
2091
+ get suggestionSeparators() {
2092
+ return "None";
2093
+ }
2094
+ get shouldDisplayOnlyValueStateMessage() {
2095
+ return this.hasValueStateMessage && !this.readonly && !this.open && this.focused;
2096
+ }
2097
+ get shouldDisplayDefaultValueStateMessage() {
2098
+ return !this.valueStateMessage.length && this.hasValueStateMessage;
2099
+ }
2100
+ get hasValueState() {
2101
+ return this.valueState !== ValueState.o.None;
2102
+ }
2103
+ get hasValueStateMessage() {
2104
+ return this.hasValueState && this.valueState !== ValueState.o.Positive
2105
+ && (!this._inputIconFocused // Handles the cases when valueStateMessage is forwarded (from datepicker e.g.)
2106
+ || !!(this._isPhone && this.Suggestions)); // Handles Input with suggestions on mobile
2107
+ }
2108
+ get valueStateText() {
2109
+ return this.valueState !== ValueState.o.None ? this.valueStateTextMappings()[this.valueState] : undefined;
2110
+ }
2111
+ get suggestionsText() {
2112
+ return Input_1.i18nBundle.getText(i18nDefaults.INPUT_SUGGESTIONS);
2113
+ }
2114
+ get availableSuggestionsCount() {
2115
+ if (this.showSuggestions && (this.value || this.Suggestions?.isOpened())) {
2116
+ const nonGroupItems = this._selectableItems;
2117
+ switch (nonGroupItems.length) {
2118
+ case 0:
2119
+ return Input_1.i18nBundle.getText(i18nDefaults.INPUT_SUGGESTIONS_NO_HIT);
2120
+ case 1:
2121
+ return Input_1.i18nBundle.getText(i18nDefaults.INPUT_SUGGESTIONS_ONE_HIT);
2122
+ default:
2123
+ return Input_1.i18nBundle.getText(i18nDefaults.INPUT_SUGGESTIONS_MORE_HITS, nonGroupItems.length);
2124
+ }
2125
+ }
2126
+ return undefined;
2127
+ }
2128
+ get step() {
2129
+ return this.isTypeNumber ? "any" : undefined;
2130
+ }
2131
+ get _isPhone() {
2132
+ return Icons.d();
2133
+ }
2134
+ get _isSuggestionsFocused() {
2135
+ return !this.focused && this.Suggestions?.isOpened();
2136
+ }
2137
+ /**
2138
+ * Returns the placeholder value.
2139
+ * @protected
2140
+ */
2141
+ get _placeholder() {
2142
+ return this.placeholder;
2143
+ }
2144
+ /**
2145
+ * This method is relevant for sap_horizon theme only
2146
+ */
2147
+ get _valueStateInputIcon() {
2148
+ const iconPerValueState = {
2149
+ Negative: `<path xmlns="http://www.w3.org/2000/svg" fill-rule="evenodd" clip-rule="evenodd" d="M10 20C4.47715 20 0 15.5228 0 10C0 4.47715 4.47715 0 10 0C15.5228 0 20 4.47715 20 10C20 15.5228 15.5228 20 10 20ZM7.70711 13.7071C7.31658 14.0976 6.68342 14.0976 6.29289 13.7071C5.90237 13.3166 5.90237 12.6834 6.29289 12.2929L8.58579 10L6.29289 7.70711C5.90237 7.31658 5.90237 6.68342 6.29289 6.29289C6.68342 5.90237 7.31658 5.90237 7.70711 6.29289L10 8.58579L12.2929 6.29289C12.6834 5.90237 13.3166 5.90237 13.7071 6.29289C14.0976 6.68342 14.0976 7.31658 13.7071 7.70711L11.4142 10L13.7071 12.2929C14.0976 12.6834 14.0976 13.3166 13.7071 13.7071C13.3166 14.0976 12.6834 14.0976 12.2929 13.7071L10 11.4142L7.70711 13.7071Z" fill="#EE3939"/>`,
2150
+ Critical: `<path xmlns="http://www.w3.org/2000/svg" fill-rule="evenodd" clip-rule="evenodd" d="M11.8619 0.49298C11.6823 0.187541 11.3544 0 11 0C10.6456 0 10.3177 0.187541 10.1381 0.49298L0.138066 17.493C-0.0438112 17.8022 -0.0461447 18.1851 0.13195 18.4965C0.310046 18.8079 0.641283 19 1 19H21C21.3587 19 21.69 18.8079 21.868 18.4965C22.0461 18.1851 22.0438 17.8022 21.8619 17.493L11.8619 0.49298ZM11 6C11.5523 6 12 6.44772 12 7V10C12 10.5523 11.5523 11 11 11C10.4477 11 10 10.5523 10 10V7C10 6.44772 10.4477 6 11 6ZM11 16C11.8284 16 12.5 15.3284 12.5 14.5C12.5 13.6716 11.8284 13 11 13C10.1716 13 9.5 13.6716 9.5 14.5C9.5 15.3284 10.1716 16 11 16Z" fill="#F58B00"/>`,
2151
+ Positive: `<path xmlns="http://www.w3.org/2000/svg" fill-rule="evenodd" clip-rule="evenodd" d="M0 10C0 15.5228 4.47715 20 10 20C15.5228 20 20 15.5228 20 10C20 4.47715 15.5228 0 10 0C4.47715 0 0 4.47715 0 10ZM14.7071 6.29289C14.3166 5.90237 13.6834 5.90237 13.2929 6.29289L8 11.5858L6.70711 10.2929C6.31658 9.90237 5.68342 9.90237 5.29289 10.2929C4.90237 10.6834 4.90237 11.3166 5.29289 11.7071L7.29289 13.7071C7.68342 14.0976 8.31658 14.0976 8.70711 13.7071L14.7071 7.70711C15.0976 7.31658 15.0976 6.68342 14.7071 6.29289Z" fill="#36A41D"/>`,
2152
+ Information: `<path xmlns="http://www.w3.org/2000/svg" fill-rule="evenodd" clip-rule="evenodd" d="M3 0C1.34315 0 0 1.34315 0 3V15C0 16.6569 1.34315 18 3 18H15C16.6569 18 18 16.6569 18 15V3C18 1.34315 16.6569 0 15 0H3ZM9 6.5C9.82843 6.5 10.5 5.82843 10.5 5C10.5 4.17157 9.82843 3.5 9 3.5C8.17157 3.5 7.5 4.17157 7.5 5C7.5 5.82843 8.17157 6.5 9 6.5ZM9 8.5C9.55228 8.5 10 8.94772 10 9.5V13.5C10 14.0523 9.55228 14.5 9 14.5C8.44771 14.5 8 14.0523 8 13.5V9.5C8 8.94772 8.44771 8.5 9 8.5Z" fill="#1B90FF"/>`,
2153
+ };
2154
+ if (this.valueState !== ValueState.o.None) {
2155
+ return `
2156
+ <svg xmlns="http://www.w3.org/2000/svg" width="24" height="20" viewBox="0 0 20 20" fill="none">
2157
+ ${iconPerValueState[this.valueState]};
2158
+ </svg>
2159
+ `;
2160
+ }
2161
+ return "";
2162
+ }
2163
+ get _valueStatePopoverHorizontalAlign() {
2164
+ return this.effectiveDir !== "rtl" ? "Start" : "End";
2165
+ }
2166
+ /**
2167
+ * This method is relevant for sap_horizon theme only
2168
+ */
2169
+ get _valueStateMessageInputIcon() {
2170
+ const iconPerValueState = {
2171
+ Negative: "error",
2172
+ Critical: "alert",
2173
+ Positive: "sys-enter-2",
2174
+ Information: "information",
2175
+ };
2176
+ return this.valueState !== ValueState.o.None ? iconPerValueState[this.valueState] : "";
2177
+ }
2178
+ /**
2179
+ * Returns the caret position inside the native input
2180
+ * @protected
2181
+ */
2182
+ getCaretPosition() {
2183
+ return n(this.nativeInput);
2184
+ }
2185
+ /**
2186
+ * Sets the caret to a certain position inside the native input
2187
+ * @protected
2188
+ */
2189
+ setCaretPosition(pos) {
2190
+ o(this.nativeInput, pos);
2191
+ }
2192
+ /**
2193
+ * Removes the fractional part of floating-point number.
2194
+ * @param value the numeric value of Input of type "Number"
2195
+ */
2196
+ removeFractionalPart(value) {
2197
+ if (value.includes(".")) {
2198
+ return value.slice(0, value.indexOf("."));
2199
+ }
2200
+ if (value.includes(",")) {
2201
+ return value.slice(0, value.indexOf(","));
2202
+ }
2203
+ return value;
2204
+ }
2205
+ };
2206
+ __decorate$4([
2207
+ webcomponentsBase.s({ type: Boolean })
2208
+ ], Input.prototype, "disabled", void 0);
2209
+ __decorate$4([
2210
+ webcomponentsBase.s({ type: Boolean })
2211
+ ], Input.prototype, "highlight", void 0);
2212
+ __decorate$4([
2213
+ webcomponentsBase.s()
2214
+ ], Input.prototype, "placeholder", void 0);
2215
+ __decorate$4([
2216
+ webcomponentsBase.s({ type: Boolean })
2217
+ ], Input.prototype, "readonly", void 0);
2218
+ __decorate$4([
2219
+ webcomponentsBase.s({ type: Boolean })
2220
+ ], Input.prototype, "required", void 0);
2221
+ __decorate$4([
2222
+ webcomponentsBase.s({ type: Boolean })
2223
+ ], Input.prototype, "noTypeahead", void 0);
2224
+ __decorate$4([
2225
+ webcomponentsBase.s()
2226
+ ], Input.prototype, "type", void 0);
2227
+ __decorate$4([
2228
+ webcomponentsBase.s()
2229
+ ], Input.prototype, "value", void 0);
2230
+ __decorate$4([
2231
+ webcomponentsBase.s({ noAttribute: true })
2232
+ ], Input.prototype, "_innerValue", void 0);
2233
+ __decorate$4([
2234
+ webcomponentsBase.s()
2235
+ ], Input.prototype, "valueState", void 0);
2236
+ __decorate$4([
2237
+ webcomponentsBase.s()
2238
+ ], Input.prototype, "name", void 0);
2239
+ __decorate$4([
2240
+ webcomponentsBase.s({ type: Boolean })
2241
+ ], Input.prototype, "showSuggestions", void 0);
2242
+ __decorate$4([
2243
+ webcomponentsBase.s({ type: Number })
2244
+ ], Input.prototype, "maxlength", void 0);
2245
+ __decorate$4([
2246
+ webcomponentsBase.s()
2247
+ ], Input.prototype, "accessibleName", void 0);
2248
+ __decorate$4([
2249
+ webcomponentsBase.s()
2250
+ ], Input.prototype, "accessibleNameRef", void 0);
2251
+ __decorate$4([
2252
+ webcomponentsBase.s()
2253
+ ], Input.prototype, "accessibleDescription", void 0);
2254
+ __decorate$4([
2255
+ webcomponentsBase.s()
2256
+ ], Input.prototype, "accessibleDescriptionRef", void 0);
2257
+ __decorate$4([
2258
+ webcomponentsBase.s({ type: Boolean })
2259
+ ], Input.prototype, "showClearIcon", void 0);
2260
+ __decorate$4([
2261
+ webcomponentsBase.s({ type: Boolean })
2262
+ ], Input.prototype, "open", void 0);
2263
+ __decorate$4([
2264
+ webcomponentsBase.s({ type: Boolean })
2265
+ ], Input.prototype, "_effectiveShowClearIcon", void 0);
2266
+ __decorate$4([
2267
+ webcomponentsBase.s({ type: Boolean })
2268
+ ], Input.prototype, "focused", void 0);
2269
+ __decorate$4([
2270
+ webcomponentsBase.s()
2271
+ ], Input.prototype, "hint", void 0);
2272
+ __decorate$4([
2273
+ webcomponentsBase.s({ type: Boolean })
2274
+ ], Input.prototype, "valueStateOpen", void 0);
2275
+ __decorate$4([
2276
+ webcomponentsBase.s({ type: Boolean })
2277
+ ], Input.prototype, "_isValueStateFocused", void 0);
2278
+ __decorate$4([
2279
+ webcomponentsBase.s({ type: Object })
2280
+ ], Input.prototype, "_inputAccInfo", void 0);
2281
+ __decorate$4([
2282
+ webcomponentsBase.s({ type: Object })
2283
+ ], Input.prototype, "_nativeInputAttributes", void 0);
2284
+ __decorate$4([
2285
+ webcomponentsBase.s({ type: Number })
2286
+ ], Input.prototype, "_inputWidth", void 0);
2287
+ __decorate$4([
2288
+ webcomponentsBase.s({ type: Number })
2289
+ ], Input.prototype, "_listWidth", void 0);
2290
+ __decorate$4([
2291
+ webcomponentsBase.s({ type: Boolean, noAttribute: true })
2292
+ ], Input.prototype, "_inputIconFocused", void 0);
2293
+ __decorate$4([
2294
+ webcomponentsBase.s({ noAttribute: true })
2295
+ ], Input.prototype, "_associatedLabelsTexts", void 0);
2296
+ __decorate$4([
2297
+ webcomponentsBase.s({ noAttribute: true })
2298
+ ], Input.prototype, "_accessibleLabelsRefTexts", void 0);
2299
+ __decorate$4([
2300
+ webcomponentsBase.s({ noAttribute: true })
2301
+ ], Input.prototype, "_associatedDescriptionRefTexts", void 0);
2302
+ __decorate$4([
2303
+ webcomponentsBase.s({ type: Object })
2304
+ ], Input.prototype, "Suggestions", void 0);
2305
+ __decorate$4([
2306
+ webcomponentsBase.d({ type: HTMLElement, "default": true })
2307
+ ], Input.prototype, "suggestionItems", void 0);
2308
+ __decorate$4([
2309
+ webcomponentsBase.d()
2310
+ ], Input.prototype, "icon", void 0);
2311
+ __decorate$4([
2312
+ webcomponentsBase.d({
2313
+ type: HTMLElement,
2314
+ invalidateOnChildChange: true,
2315
+ })
2316
+ ], Input.prototype, "valueStateMessage", void 0);
2317
+ __decorate$4([
2318
+ i18nDefaults.i("sap/ushell/gen/ui5/webcomponents")
2319
+ ], Input, "i18nBundle", void 0);
2320
+ Input = Input_1 = __decorate$4([
2321
+ webcomponentsBase.m({
2322
+ tag: "ui5-input",
2323
+ languageAware: true,
2324
+ formAssociated: true,
2325
+ renderer: parametersBundle_css.y,
2326
+ template: InputTemplate,
2327
+ styles: [
2328
+ inputStyles,
2329
+ ResponsivePopoverCommonCss,
2330
+ ValueStateMessageCss,
2331
+ SuggestionsCss,
2332
+ ],
2333
+ })
2334
+ /**
2335
+ * Fired when the input operation has finished by pressing Enter or on focusout.
2336
+ * @public
2337
+ */
2338
+ ,
2339
+ eventStrict.l("change", {
2340
+ bubbles: true,
2341
+ })
2342
+ /**
2343
+ * Fired when the value of the component changes at each keystroke,
2344
+ * and when a suggestion item has been selected.
2345
+ * @public
2346
+ */
2347
+ ,
2348
+ eventStrict.l("input", {
2349
+ bubbles: true,
2350
+ cancelable: true,
2351
+ })
2352
+ /**
2353
+ * Fired when some text has been selected.
2354
+ *
2355
+ * @since 2.0.0
2356
+ * @public
2357
+ */
2358
+ ,
2359
+ eventStrict.l("select", {
2360
+ bubbles: true,
2361
+ })
2362
+ /**
2363
+ * Fired when the user navigates to a suggestion item via the ARROW keys,
2364
+ * as a preview, before the final selection.
2365
+ * @param {HTMLElement} item The previewed suggestion item.
2366
+ * @public
2367
+ * @since 2.0.0
2368
+ */
2369
+ ,
2370
+ eventStrict.l("selection-change", {
2371
+ bubbles: true,
2372
+ })
2373
+ /**
2374
+ * Fires when a suggestion item is autocompleted in the input.
2375
+ *
2376
+ * @private
2377
+ */
2378
+ ,
2379
+ eventStrict.l("type-ahead", {
2380
+ bubbles: true,
2381
+ })
2382
+ /**
2383
+ * Fired when the user scrolls the suggestion popover.
2384
+ * @param {Integer} scrollTop The current scroll position.
2385
+ * @param {HTMLElement} scrollContainer The scroll container.
2386
+ * @protected
2387
+ * @since 1.0.0-rc.8
2388
+ */
2389
+ ,
2390
+ eventStrict.l("suggestion-scroll", {
2391
+ bubbles: true,
2392
+ })
2393
+ /**
2394
+ * Fired when the suggestions picker is open.
2395
+ * @public
2396
+ * @since 2.0.0
2397
+ */
2398
+ ,
2399
+ eventStrict.l("open", {
2400
+ bubbles: true,
2401
+ })
2402
+ /**
2403
+ * Fired when the suggestions picker is closed.
2404
+ * @public
2405
+ * @since 2.0.0
2406
+ */
2407
+ ,
2408
+ eventStrict.l("close")
2409
+ ], Input);
2410
+ Input.define();
2411
+ var Input$1 = Input;
2412
+
2413
+ function SuggestionItemTemplate() {
2414
+ return [ListItemBaseTemplate.call(this, { listItemContent }, { role: "option" })];
2415
+ }
2416
+ function listItemContent() {
2417
+ return parametersBundle_css.jsx("div", { part: "content", id: "content", class: "ui5-li-content", children: parametersBundle_css.jsxs("div", { class: "ui5-li-text-wrapper", children: [parametersBundle_css.jsx("span", { part: "title", className: "ui5-li-title", dangerouslySetInnerHTML: { __html: this.markupText } }), this.additionalText &&
2418
+ parametersBundle_css.jsx("span", { part: "additional-text", class: "ui5-li-additional-text", children: this.additionalText })] }) });
2419
+ }
2420
+
2421
+ Icons.p("sap/ushell/gen/ui5/webcomponents-theming", "sap_horizon", async () => parametersBundle_css.defaultThemeBase);
2422
+ Icons.p("sap/ushell/gen/ui5/webcomponents", "sap_horizon", async () => i18nDefaults.defaultTheme);
2423
+ var styles = `:host([ui5-suggestion-item]){height:auto;min-height:var(--_ui5-v2-13-0-rc-0_list_item_base_height)}:host([ui5-suggestion-item]) .ui5-li-root{min-height:var(--_ui5-v2-13-0-rc-0_list_item_base_height)}:host([ui5-suggestion-item]) .ui5-li-content{padding-bottom:.5rem;padding-top:.5rem;box-sizing:border-box}
2424
+ `;
2425
+
2426
+ var __decorate$3 = (this && this.__decorate) || function (decorators, target, key, desc) {
2427
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
2428
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
2429
+ 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;
2430
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
2431
+ };
2432
+ /**
2433
+ * @class
2434
+ * The `ui5-suggestion-item` represents the suggestion item of the `ui5-input`.
2435
+ * @constructor
2436
+ * @extends ListItemBase
2437
+ * @abstract
2438
+ * @implements { IInputSuggestionItemSelectable }
2439
+ * @public
2440
+ */
2441
+ let SuggestionItem = class SuggestionItem extends ListItemBase.ListItemBase {
2442
+ constructor() {
2443
+ super(...arguments);
2444
+ /**
2445
+ * Defines the markup text that will be displayed as suggestion.
2446
+ * Used for highlighting the matching parts of the text.
2447
+ *
2448
+ * @since 2.0.0
2449
+ * @private
2450
+ */
2451
+ this.markupText = "";
2452
+ }
2453
+ onEnterDOM() {
2454
+ if (Icons.f()) {
2455
+ this.setAttribute("desktop", "");
2456
+ }
2457
+ }
2458
+ get _effectiveTabIndex() {
2459
+ return -1;
2460
+ }
2461
+ };
2462
+ __decorate$3([
2463
+ webcomponentsBase.s()
2464
+ ], SuggestionItem.prototype, "text", void 0);
2465
+ __decorate$3([
2466
+ webcomponentsBase.s()
2467
+ ], SuggestionItem.prototype, "additionalText", void 0);
2468
+ __decorate$3([
2469
+ webcomponentsBase.s()
2470
+ ], SuggestionItem.prototype, "markupText", void 0);
2471
+ SuggestionItem = __decorate$3([
2472
+ webcomponentsBase.m({
2473
+ tag: "ui5-suggestion-item",
2474
+ template: SuggestionItemTemplate,
2475
+ styles: [ListItemBase.ListItemBase.styles, styles],
2476
+ })
2477
+ ], SuggestionItem);
2478
+ SuggestionItem.define();
2479
+ var SuggestionItem$1 = SuggestionItem;
2480
+
2481
+ /**
2482
+ * Different input key hints.
2483
+ * https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/enterkeyhint
2484
+ *
2485
+ * @private
2486
+ */
2487
+ var InputKeyHint;
2488
+ (function (InputKeyHint) {
2489
+ InputKeyHint["Search"] = "search";
2490
+ InputKeyHint["Go"] = "go";
2491
+ InputKeyHint["Next"] = "next";
2492
+ InputKeyHint["Enter"] = "enter";
2493
+ InputKeyHint["Done"] = "done";
2494
+ InputKeyHint["Previous"] = "previous";
2495
+ InputKeyHint["Send"] = "send";
2496
+ })(InputKeyHint || (InputKeyHint = {}));
2497
+ var InputKeyHint$1 = InputKeyHint;
2498
+
2499
+ function SearchPopoverTemplate(headerTemplate) {
2500
+ return (parametersBundle_css.jsxs(ResponsivePopover.ResponsivePopover, { hideArrow: true, preventFocusRestore: true, preventInitialFocus: !Icons.d(), accessibleNameRef: "suggestions-speech-output message-area-text message-area-description", placement: ResponsivePopover.PopoverPlacement.Bottom, horizontalAlign: ResponsivePopover.PopoverHorizontalAlign.Start, open: this.open, opener: this, onOpen: this._handleOpen, onClose: this._handleClose, onBeforeClose: this._handleBeforeClose, onBeforeOpen: this._handleBeforeOpen, class: {
2501
+ "ui5-search-popover": true,
2502
+ "ui5-search-popover-phone": Icons.d(),
2503
+ }, children: [Icons.d() ? (headerTemplate ? headerTemplate.call(this) : (parametersBundle_css.jsx(parametersBundle_css.Fragment, { children: parametersBundle_css.jsxs("header", { slot: "header", class: "ui5-search-popup-searching-header", children: [parametersBundle_css.jsx(Input$1, { class: "ui5-search-popover-search-field", onInput: this._handleMobileInput, showClearIcon: this.showClearIcon, noTypeahead: this.noTypeahead, hint: InputKeyHint$1.Search, onKeyDown: this._onMobileInputKeydown, children: this._flattenItems.map(item => {
2504
+ return (parametersBundle_css.jsx(SuggestionItem$1, { text: item.text }));
2505
+ }) }), parametersBundle_css.jsx(Button.Button, { design: Button.ButtonDesign.Transparent, onClick: this._handleCancel, children: this.cancelButtonText })] }) }))) : null, parametersBundle_css.jsxs("main", { class: "ui5-search-popover-content", children: [parametersBundle_css.jsx("slot", { name: "messageArea" }), parametersBundle_css.jsx("div", { class: "search-popover-busy-wrapper", children: parametersBundle_css.jsx(BusyIndicator.BusyIndicator, { active: true }) }), this.items.length ?
2506
+ parametersBundle_css.jsx(List.List, { class: "ui5-search-list", separators: List.ListSeparator.None, onKeyDown: this._onItemKeydown, accessibleRole: List.ListAccessibleRole.ListBox, onItemClick: this._onItemClick, children: parametersBundle_css.jsx("slot", {}) })
2507
+ : (parametersBundle_css.jsx("slot", { name: "illustration" })), parametersBundle_css.jsx("span", { class: "ui5-hidden-text", id: "suggestions-speech-output", children: this.suggestionsText }), this.messageArea[0]?.text ? (parametersBundle_css.jsx("span", { class: "ui5-hidden-text", id: "message-area-text", children: this.messageArea[0].text })) : null, this.messageArea[0]?.description ? (parametersBundle_css.jsx("span", { class: "ui5-hidden-text", id: "message-area-description", children: this.messageArea[0].description })) : null] }), this.action.length ? (parametersBundle_css.jsx("slot", { onKeyDown: this._handleActionKeydown, name: "action", slot: "footer" })) : null] }));
2508
+ }
2509
+
2510
+ function SearchTemplate() {
2511
+ return (parametersBundle_css.jsxs(parametersBundle_css.Fragment, { children: [SearchFieldTemplate.call(this), SearchPopoverTemplate.call(this)] }));
2512
+ }
2513
+
2514
+ Icons.p("sap/ushell/gen/ui5/webcomponents-theming", "sap_horizon", async () => parametersBundle_css.defaultThemeBase);
2515
+ Icons.p("sap/ushell/gen/ui5/webcomponents-fiori", "sap_horizon", async () => parametersBundle_css$1.defaultTheme);
2516
+ var SearchCss = `.ui5-hidden-text{position:absolute;clip:rect(1px,1px,1px,1px);user-select:none;left:-1000px;top:-1000px;pointer-events:none;font-size:0}.ui5-search-popover{width:var(--search_width);margin-top:.25rem;box-sizing:border-box}.ui5-search-popup-searching-header{display:flex;gap:.5rem;width:100%;align-items:center}.ui5-search-popover::part(header){padding:.5rem 1rem;box-shadow:none;box-sizing:border-box}.ui5-search-popover::part(header):before{display:none}.ui5-search-popover::part(content){padding:0;box-shadow:none}:host([loading]) .ui5-search-popover main{min-height:2rem}.ui5-search-popover-search-field{flex:1;height:2.25rem;border-radius:var(--_ui5-v2-13-0-rc-0_search_input_border_radius)}.ui5-search-popover-search-field::part(root):after{border-radius:var(--_ui5-v2-13-0-rc-0_search_input_border_radius)}.ui5-search-popover-search-field::part(input){padding-inline-start:.875rem}.ui5-search-popover-search-field::part(clear-icon-wrapper){margin-inline-end:.5rem}.ui5-search-popover-loading-bi{width:100%;height:100%}::slotted([slot="action"]){width:100%;margin-top:.5rem;margin-bottom:.5rem}.search-popover-busy-wrapper{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);z-index:42;width:100%;height:100%;display:none;justify-content:center;align-items:center;pointer-events:all}:host([loading]) .search-popover-busy-wrapper{display:flex;width:100%;height:100%}.search-popover-busy-wrapper [ui5-busy-indicator]{z-index:1}.search-popover-busy-wrapper:after{content:"";position:absolute;top:0;left:0;width:100%;height:100%;background:var(--_ui5-v2-13-0-rc-0-search-loading-overlay-background);opacity:var(--_ui5-v2-13-0-rc-0-search-loading-overlay-transparency);border-radius:var(--_ui5-v2-13-0-rc-0_popup_border_radius)}.ui5-search-list{margin:.25rem;width:calc(100% - .5rem)}.ui5-search-popover-phone .ui5-search-popover-content{position:relative;width:100%;height:100%;display:flex;flex-direction:column}.ui5-search-popover-phone .search-popover-busy-wrapper:after{border-radius:0}
2517
+ `;
2518
+
2519
+ Icons.p("sap/ushell/gen/ui5/webcomponents-theming", "sap_horizon", async () => parametersBundle_css.defaultThemeBase);
2520
+ Icons.p("sap/ushell/gen/ui5/webcomponents-fiori", "sap_horizon", async () => parametersBundle_css$1.defaultTheme);
2521
+ var SearchFieldCss = `:host,.ui5-shellbar-search-field-wrapper{height:2.25rem;display:flex;align-items:center}:host(:not([collapsed])),.ui5-shellbar-search-field-wrapper{min-width:18rem;max-width:36rem;margin:0;height:2.25rem;color:var(--sapShell_TextColor);font-size:var(--sapFontSize);font-family:"72override",var(--sapFontFamily);font-style:normal;box-shadow:var(--sapField_Shadow);border-radius:var(--_ui5-v2-13-0-rc-0_search_input_border_radius);box-sizing:border-box;text-align:start;background:var(--sapField_BackgroundStyle);background-color:var(--_ui5-v2-13-0-rc-0-search-wrapper-background);position:relative}.ui5-shellbar-search-field-wrapper{flex:1;min-width:auto}:host(:not([collapsed]):hover),:host(:not([collapsed]):focus-within),.ui5-shellbar-search-field-wrapper:focus-within{box-shadow:var(--sapField_Hover_Shadow);background:var(--_ui5-v2-13-0-rc-0-search-wrapper-hover-background);background-color:var(--_ui5-v2-13-0-rc-0-search-wrapper-hover-background-color)}:host([focused-inner-input]) .ui5-search-field-root{outline:var(--_ui5-v2-13-0-rc-0_search_wrapper_outline);border-radius:var(--_ui5-v2-13-0-rc-0_search_input_border_radius);outline-offset:-.125rem}.ui5-search-field-root{width:100%;height:100%;position:relative;background:transparent;display:inline-block;outline:none;box-sizing:border-box;color:inherit;transition:border-color .2s ease-in-out;border-radius:var(--_ui5-v2-13-0-rc-0_search_input_border_radius);overflow:hidden}.ui5-search-field-content{height:100%;display:flex;flex-direction:row;justify-content:flex-end;align-items:center;overflow:hidden}[ui5-select]{--_ui5-v2-13-0-rc-0_content_density: compact;outline:none;margin:var(--_ui5-v2-13-0-rc-0_search_input_scope_margin);max-width:10rem;border-radius:var(--_ui5-v2-13-0-rc-0_search_input_border_radius);border:var(--_ui5-v2-13-0-rc-0-search-border);box-shadow:none;background:unset;background-color:var(--_ui5-v2-13-0-rc-0-search-elements-background);height:var(--_ui5-v2-13-0-rc-0-search-select-height);--_ui5-v2-13-0-rc-0_select_label_color: var(--sapShell_TextColor)}[ui5-select]:hover{box-shadow:var(--sapField_Hover_Shadow)}[ui5-select]::part(icon){display:flex;justify-content:center;align-items:stretch;height:100%;padding:0 .5rem;align-self:center;border-radius:var(--_ui5-v2-13-0-rc-0_search_input_border_radius);color:var(--sapShell_InteractiveTextColor)}[ui5-select]::part(icon):hover{background-color:var(--sapShell_Hover_Background)}[ui5-select]::part(popover){background-color:var(--sapShellColor)}.ui5-filter-wrapper{--_ui5-v2-13-0-rc-0_button_focused_border_radius: var(--_ui5-v2-13-0-rc-0_search_filter_button_border_radius)}::slotted([slot="filterButton"]){min-width:var(--_ui5-v2-13-0-rc-0_search_icon_size);height:var(--_ui5-v2-13-0-rc-0_search_icon_size);border:var(--_ui5-v2-13-0-rc-0_search_filter_button_border);border-radius:var(--_ui5-v2-13-0-rc-0_search_filter_button_border_radius);color:var(--sapShell_InteractiveTextColor);outline:none;background:var(--_ui5-v2-13-0-rc-0-search-filter_button_background_color);box-sizing:border-box;margin-inline-end:.1875rem;margin-inline-start:.25rem}::slotted([slot="filterButton"]:focus-within){background-color:var(--ui5-v2-13-0-rc-0_search_filter_button_background_active);border:var(--_ui5-v2-13-0-rc-0_search_filter_button_border)}::slotted([slot="filterButton"]:hover){background-color:var(--sapShell_Hover_Background);border:var(--_ui5-v2-13-0-rc-0_seach_filter_button_border_hover)}.ui5-search-field-inner-input{font-size:var(--sapFontSize);font-family:"72override",var(--sapFontFamily);font-style:normal;padding:.5rem 0;height:100%;width:100%;box-sizing:border-box;background-color:var(--_ui5-v2-13-0-rc-0-search-elements-background);border:var(--_ui5-v2-13-0-rc-0-search-border);outline:none;color:inherit;padding-inline-start:var(--_ui5-v2-13-0-rc-0-search-input-start-padding);padding-inline-end:var(--_ui5-v2-13-0-rc-0_search_input_end_padding)}:host([focused-inner-input]) .ui5-search-field-inner-input{outline:var(--_ui5-v2-13-0-rc-0_search_input_outline);border-radius:var(--_ui5-v2-13-0-rc-0_search_input_border_radius);outline-offset:-.3125rem}:host(:not([mode="Scoped"])) .ui5-search-field-inner-input{padding-inline-start:.875rem}[ui5-select]:hover,.ui5-search-field-inner-input:hover{background-color:var(--_ui5-v2-13-0-rc-0-search-elements-hover-background)}[ui5-select]:focus-within,.ui5-search-field-inner-input:focus-within{background-color:var(--_ui5-v2-13-0-rc-0-search-elements-active-background)}.ui5-search-field-inner-input::placeholder{font-weight:400;font-style:italic;color:var(--sapField_PlaceholderTextColor);padding-inline-start:.125rem}:host([mode="Scoped"]) .ui5-search-field-inner-input{margin-inline-start:var(--_ui5-v2-13-0-rc-0_search_input_start_margin)}.ui5-search-field-separator{height:1.5rem;width:.0625rem;background:var(--_ui5-v2-13-0-rc-0_search_separator_background);box-sizing:border-box}.ui5-shell-search-field-button{outline:none;min-width:var(--_ui5-v2-13-0-rc-0_search_icon_size);height:var(--_ui5-v2-13-0-rc-0_search_icon_size);border-radius:var(--_ui5-v2-13-0-rc-0_search_icon_border_radius);margin-inline-end:.25rem;margin-inline-start:.1875rem;box-sizing:border-box;cursor:pointer}.ui5-shell-search-field-button:not([design=Emphasized]){color:var(--sapShell_InteractiveTextColor);background-color:var(--_ui5-v2-13-0-rc-0-search-elements-background)}.ui5-shell-search-field-button:not([design=Emphasized]):hover{background-color:var(--sapShell_Hover_Background)}.ui5-shell-search-field-button[desktop]:not([active])::part(button):after,.ui5-shell-search-field-button:not([active])::part(button):focus-visible:after,.ui5-shell-search-field-button[desktop][active][design=Emphasized]::part(button):focus-within:after,.ui5-shell-search-field-button[active][design=Emphasized]::part(button):focus-visible:after,.ui5-shell-search-field-button[desktop][active]::part(button):focus-within:before,.ui5-shell-search-field-button[active]::part(button):focus-visible:before,.ui5-shell-search-field-button[design=Emphasized][desktop]::part(button):focus-within:before,.ui5-shell-search-field-button[design=Emphasized]::part(button):focus-visible:before{border-radius:var(--_ui5-v2-13-0-rc-0_search_icon_border_radius)}.ui5-shell-search-field-icon{display:flex;justify-content:center;align-items:stretch;cursor:pointer;outline:none;min-width:var(--_ui5-v2-13-0-rc-0_search_icon_size);height:var(--_ui5-v2-13-0-rc-0_search_icon_size);border-radius:var(--_ui5-v2-13-0-rc-0_search_icon_border_radius);margin-inline-end:.25rem;margin-inline-start:.1875rem;box-sizing:border-box;color:var(--sapShell_InteractiveTextColor);background-color:var(--_ui5-v2-13-0-rc-0-search-elements-background);border:var(--_ui5-v2-13-0-rc-0-search-icon-border)}.ui5-shell-search-field-icon::part(root){padding:var(--_ui5-v2-13-0-rc-0_search_icon_padding);width:1rem;height:1rem;outline-offset:-.125rem}.ui5-shell-search-field-icon:hover::part(root){padding:var(--_ui5-v2-13-0-rc-0_search_icon_hover_padding);outline-offset:-.1875rem}.ui5-shell-search-field-icon:focus::part(root){border-radius:var(--_ui5-v2-13-0-rc-0_search_icon_border_radius)}.ui5-shell-search-field-icon:hover,.ui5-shell-search-field-input-button:hover{background:var(--sapShell_Hover_Background);border:1px solid var(--sapButton_Lite_Hover_BorderColor);color:var(--sapShell_InteractiveTextColor)}.ui5-shell-search-field-search-icon{background-color:var(--sapButton_Emphasized_Background);border-color:var(--sapButton_Emphasized_BorderColor);color:var(--sapButton_Emphasized_TextColor)}.ui5-search-field-select{--_ui5-v2-13-0-rc-0_input_focus_border_radius: var(--_ui5-v2-13-0-rc-0_search_input_border_radius)}
2522
+ `;
2523
+
2524
+ var __decorate$2 = (this && this.__decorate) || function (decorators, target, key, desc) {
2525
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
2526
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
2527
+ 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;
2528
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
2529
+ };
2530
+ var SearchField_1;
2531
+ /**
2532
+ * @class
2533
+ *
2534
+ * ### Overview
2535
+ *
2536
+ * A `ui5-search-field` is an input field, used for user search.
2537
+ *
2538
+ * The `ui5-search-field` consists of several elements parts:
2539
+ * - Scope - displays a select in the beggining of the component, used for filtering results by their scope.
2540
+ * - Input field - for user input value
2541
+ * - Clear button - gives the possibility for deleting the entered value
2542
+ * - Search button - a primary button for performing search, when the user has entered a search term
2543
+ *
2544
+ * ### ES6 Module Import
2545
+ *
2546
+ * `import "sap/ushell/gen/ui5/webcomponents-fiori/dist/SearchField.js";`
2547
+ *
2548
+ * @constructor
2549
+ * @extends UI5Element
2550
+ * @private
2551
+ */
2552
+ let SearchField = SearchField_1 = class SearchField extends webcomponentsBase.b {
2553
+ constructor() {
2554
+ super(...arguments);
2555
+ /**
2556
+ * Defines whether the clear icon of the search will be shown.
2557
+ * @default false
2558
+ * @public
2559
+ */
2560
+ this.showClearIcon = false;
2561
+ /**
2562
+ * Defines whether the component is collapsed.
2563
+ *
2564
+ * @default false
2565
+ * @private
2566
+ */
2567
+ this.collapsed = false;
2568
+ /**
2569
+ * Defines the value of the component.
2570
+ *
2571
+ * **Note:** The property is updated upon typing.
2572
+ * @default ""
2573
+ * @public
2574
+ */
2575
+ this.value = "";
2576
+ /**
2577
+ * @private
2578
+ */
2579
+ this.focusedInnerInput = false;
2580
+ /**
2581
+ * @private
2582
+ */
2583
+ this._effectiveShowClearIcon = false;
2584
+ }
2585
+ onBeforeRendering() {
2586
+ this._effectiveShowClearIcon = (this.showClearIcon && !!this.value);
2587
+ }
2588
+ _onkeydown(e) {
2589
+ if (webcomponentsBase.b$1(e)) {
2590
+ return this._handleEnter();
2591
+ }
2592
+ }
2593
+ _onfocusin() {
2594
+ this.focusedInnerInput = true;
2595
+ }
2596
+ _onfocusout() {
2597
+ this.focusedInnerInput = false;
2598
+ }
2599
+ _onFocusOutSearch(e) { } // eslint-disable-line
2600
+ _handleEnter() {
2601
+ if (this.value.length) {
2602
+ this._handleSearchEvent();
2603
+ }
2604
+ }
2605
+ _handleInnerClick() { } // eslint-disable-line
2606
+ _handleSearchIconPress() {
2607
+ this._handleSearchEvent();
2608
+ setTimeout(() => {
2609
+ this.focus();
2610
+ }, 0);
2611
+ }
2612
+ _handleSearchEvent() {
2613
+ this.fireDecoratorEvent("search");
2614
+ }
2615
+ _handleInput(e) {
2616
+ this.value = e.target.value;
2617
+ this.fireDecoratorEvent("input");
2618
+ }
2619
+ _handleClear() {
2620
+ this.value = "";
2621
+ this.fireDecoratorEvent("input");
2622
+ this.focus();
2623
+ }
2624
+ _handleScopeChange(e) {
2625
+ const item = e.detail.selectedOption;
2626
+ this.fireDecoratorEvent("scope-change", {
2627
+ scope: item.scopeOption,
2628
+ });
2629
+ }
2630
+ get _isSearchIcon() {
2631
+ return this.value.length && this.focusedInnerInput;
2632
+ }
2633
+ get _searchButtonAccessibilityAttributes() {
2634
+ return {
2635
+ expanded: !this.collapsed,
2636
+ };
2637
+ }
2638
+ get _translations() {
2639
+ return {
2640
+ scope: SearchField_1.i18nBundle.getText(i18nDefaults$1.SEARCH_FIELD_SCOPE_SELECT_LABEL),
2641
+ searchIcon: SearchField_1.i18nBundle.getText(i18nDefaults$1.SEARCH_FIELD_SEARCH_ICON),
2642
+ clearIcon: SearchField_1.i18nBundle.getText(i18nDefaults$1.SEARCH_FIELD_CLEAR_ICON),
2643
+ searchFieldAriaLabel: SearchField_1.i18nBundle.getText(i18nDefaults$1.SEARCH_FIELD_LABEL),
2644
+ };
2645
+ }
2646
+ get _effectiveIconTooltip() {
2647
+ return this._translations.searchIcon;
2648
+ }
2649
+ captureRef(ref) {
2650
+ if (ref) {
2651
+ ref.scopeOption = this;
2652
+ }
2653
+ }
2654
+ };
2655
+ __decorate$2([
2656
+ webcomponentsBase.s({ type: Boolean })
2657
+ ], SearchField.prototype, "showClearIcon", void 0);
2658
+ __decorate$2([
2659
+ webcomponentsBase.s({ type: Boolean })
2660
+ ], SearchField.prototype, "collapsed", void 0);
2661
+ __decorate$2([
2662
+ webcomponentsBase.s()
2663
+ ], SearchField.prototype, "value", void 0);
2664
+ __decorate$2([
2665
+ webcomponentsBase.s()
2666
+ ], SearchField.prototype, "placeholder", void 0);
2667
+ __decorate$2([
2668
+ webcomponentsBase.s()
2669
+ ], SearchField.prototype, "accessibleName", void 0);
2670
+ __decorate$2([
2671
+ webcomponentsBase.s()
2672
+ ], SearchField.prototype, "accessibleDescription", void 0);
2673
+ __decorate$2([
2674
+ webcomponentsBase.d({ type: HTMLElement, individualSlots: true, invalidateOnChildChange: true })
2675
+ ], SearchField.prototype, "scopes", void 0);
2676
+ __decorate$2([
2677
+ webcomponentsBase.d()
2678
+ ], SearchField.prototype, "filterButton", void 0);
2679
+ __decorate$2([
2680
+ webcomponentsBase.s({ type: Boolean })
2681
+ ], SearchField.prototype, "focusedInnerInput", void 0);
2682
+ __decorate$2([
2683
+ webcomponentsBase.s({ type: Boolean })
2684
+ ], SearchField.prototype, "_effectiveShowClearIcon", void 0);
2685
+ __decorate$2([
2686
+ i18nDefaults.i("sap/ushell/gen/ui5/webcomponents-fiori")
2687
+ ], SearchField, "i18nBundle", void 0);
2688
+ SearchField = SearchField_1 = __decorate$2([
2689
+ webcomponentsBase.m({
2690
+ tag: "ui5-search-field",
2691
+ languageAware: true,
2692
+ renderer: parametersBundle_css.y,
2693
+ template: SearchFieldTemplate,
2694
+ styles: [
2695
+ SearchFieldCss,
2696
+ ],
2697
+ })
2698
+ /**
2699
+ * Fired when typing in input or clear icon is pressed.
2700
+ *
2701
+ * @public
2702
+ */
2703
+ ,
2704
+ eventStrict.l("input", {
2705
+ bubbles: true,
2706
+ })
2707
+ /**
2708
+ * Fired when the scope has changed.
2709
+ * @public
2710
+ * @param {HTMLElement} scope The newly selected scope
2711
+ */
2712
+ ,
2713
+ eventStrict.l("scope-change", {
2714
+ bubbles: true,
2715
+ })
2716
+ /**
2717
+ * Fired when the user has triggered search with Enter key or Search Button press.
2718
+ * @public
2719
+ */
2720
+ ,
2721
+ eventStrict.l("search", {
2722
+ bubbles: true,
2723
+ cancelable: true,
2724
+ })
2725
+ ], SearchField);
2726
+ SearchField.define();
2727
+ var SearchField$1 = SearchField;
2728
+
2729
+ var __decorate$1 = (this && this.__decorate) || function (decorators, target, key, desc) {
2730
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
2731
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
2732
+ 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;
2733
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
2734
+ };
2735
+ var Search_1;
2736
+ /**
2737
+ * @class
2738
+ *
2739
+ * ### Overview
2740
+ *
2741
+ * A `ui5-search` is an input with suggestions, used for user search.
2742
+ *
2743
+ * The `ui5-search` consists of several elements parts:
2744
+ * - Scope - displays a select in the beggining of the component, used for filtering results by their scope.
2745
+ * - Input field - for user input value
2746
+ * - Clear button - gives the possibility for deleting the entered value
2747
+ * - Search button - a primary button for performing search, when the user has entered a search term
2748
+ * - Suggestions - a list with available search suggestions
2749
+ *
2750
+ * ### ES6 Module Import
2751
+ *
2752
+ * `import "sap/ushell/gen/ui5/webcomponents-fiori/dist/Search.js";`
2753
+ *
2754
+ * @constructor
2755
+ * @extends SearchField
2756
+ * @public
2757
+ * @since 2.9.0
2758
+ * @experimental
2759
+ */
2760
+ let Search = Search_1 = class Search extends SearchField$1 {
2761
+ constructor() {
2762
+ super();
2763
+ /**
2764
+ * Indicates whether a loading indicator should be shown in the popup.
2765
+ * @default false
2766
+ * @public
2767
+ */
2768
+ this.loading = false;
2769
+ /**
2770
+ * Defines whether the value will be autcompleted to match an item.
2771
+ * @default false
2772
+ * @public
2773
+ */
2774
+ this.noTypeahead = false;
2775
+ /**
2776
+ * Indicates whether the items picker is open.
2777
+ * @public
2778
+ */
2779
+ this.open = false;
2780
+ // The typed in value.
2781
+ this._typedInValue = "";
2782
+ this._matchedPerTerm = false;
2783
+ this._valueBeforeOpen = this.getAttribute("value") || "";
2784
+ }
2785
+ onBeforeRendering() {
2786
+ super.onBeforeRendering();
2787
+ const innerInput = this.nativeInput;
2788
+ const autoCompletedChars = innerInput && (innerInput.selectionEnd - innerInput.selectionStart);
2789
+ // If there is already a selection the autocomplete has already been performed
2790
+ if (this._shouldAutocomplete && !autoCompletedChars) {
2791
+ const item = this._getFirstMatchingItem(this.value);
2792
+ this._proposedItem = item;
2793
+ if (item) {
2794
+ this._handleTypeAhead(item);
2795
+ this._deselectItems();
2796
+ item.selected = true;
2797
+ }
2798
+ else {
2799
+ this._typedInValue = this.value;
2800
+ }
2801
+ }
2802
+ else {
2803
+ this._typedInValue = this.value;
2804
+ }
2805
+ if (Icons.d() && this.open) {
2806
+ const item = this._getFirstMatchingItem(this.value);
2807
+ this._proposedItem = item;
2808
+ this._deselectItems();
2809
+ if (item && this._performItemSelectionOnMobile) {
2810
+ item.selected = true;
2811
+ }
2812
+ }
2813
+ this._flattenItems.forEach(item => {
2814
+ item.highlightText = this._typedInValue;
2815
+ });
2816
+ this._shouldAutocomplete = false;
2817
+ }
2818
+ onAfterRendering() {
2819
+ const innerInput = this.nativeInput;
2820
+ if (this._performTextSelection && innerInput && innerInput.value !== this._innerValue) {
2821
+ innerInput.value = this._innerValue || "";
2822
+ }
2823
+ if (this._performTextSelection && this._typedInValue.length && this.value.length) {
2824
+ innerInput?.setSelectionRange(this._typedInValue.length, this.value.length);
2825
+ }
2826
+ this._performTextSelection = false;
2827
+ if (!this.collapsed) {
2828
+ this.style.setProperty("--search_width", `${this.getBoundingClientRect().width}px`);
2829
+ }
2830
+ }
2831
+ _handleMobileInput(e) {
2832
+ this.value = e.target.value;
2833
+ this._performItemSelectionOnMobile = this._shouldPerformSelectionOnMobile(e.detail.inputType);
2834
+ this.fireDecoratorEvent("input");
2835
+ }
2836
+ _shouldPerformSelectionOnMobile(inputType) {
2837
+ const allowedEventTypes = [
2838
+ "deleteWordBackward",
2839
+ "deleteWordForward",
2840
+ "deleteSoftLineBackward",
2841
+ "deleteSoftLineForward",
2842
+ "deleteEntireSoftLine",
2843
+ "deleteHardLineBackward",
2844
+ "deleteHardLineForward",
2845
+ "deleteByDrag",
2846
+ "deleteByCut",
2847
+ "deleteContent",
2848
+ "deleteContentBackward",
2849
+ "deleteContentForward",
2850
+ "historyUndo",
2851
+ ];
2852
+ return !this.noTypeahead && !allowedEventTypes.includes(inputType || "");
2853
+ }
2854
+ _handleTypeAhead(item) {
2855
+ const originalValue = item.text || "";
2856
+ let displayValue = originalValue;
2857
+ if (!originalValue.toLowerCase().startsWith(this.value.toLowerCase())) {
2858
+ this._matchedPerTerm = true;
2859
+ displayValue = `${this.value} - ${originalValue}`;
2860
+ }
2861
+ else {
2862
+ this._matchedPerTerm = false;
2863
+ }
2864
+ this._typedInValue = this.value;
2865
+ this._innerValue = displayValue;
2866
+ this._performTextSelection = true;
2867
+ this.value = displayValue;
2868
+ }
2869
+ _startsWithMatchingItems(str) {
2870
+ return StartsWith(str, this._flattenItems.filter(item => !this._isGroupItem(item)), "text");
2871
+ }
2872
+ _startsWithPerTermMatchingItems(str) {
2873
+ return StartsWithPerTerm(str, this._flattenItems.filter(item => !this._isGroupItem(item)), "text");
2874
+ }
2875
+ _isGroupItem(item) {
2876
+ return item.hasAttribute("ui5-search-item-group");
2877
+ }
2878
+ _deselectItems() {
2879
+ this._flattenItems.forEach(item => {
2880
+ item.selected = false;
2881
+ });
2882
+ }
2883
+ _handleDown(e) {
2884
+ if (this.open) {
2885
+ e.preventDefault();
2886
+ this._handleArrowDown();
2887
+ }
2888
+ }
2889
+ _handleArrowDown() {
2890
+ const firstListItem = this._getItemsList()?.getSlottedNodes("items")[0];
2891
+ if (this.open) {
2892
+ this._deselectItems();
2893
+ this.value = this._typedInValue || this.value;
2894
+ this._innerValue = this.value;
2895
+ firstListItem?.focus();
2896
+ }
2897
+ }
2898
+ _handleRight(e) {
2899
+ if (this._matchedPerTerm) {
2900
+ e.preventDefault();
2901
+ this.value = this._typedInValue;
2902
+ this._innerValue = this._typedInValue;
2903
+ this._proposedItem = undefined;
2904
+ }
2905
+ }
2906
+ _handleInnerClick() {
2907
+ if (Icons.d()) {
2908
+ this.open = true;
2909
+ }
2910
+ }
2911
+ _handleSearchIconPress() {
2912
+ if (Icons.d()) {
2913
+ this.open = true;
2914
+ }
2915
+ else {
2916
+ super._handleSearchIconPress();
2917
+ }
2918
+ }
2919
+ _handleEnter() {
2920
+ const prevented = !this.fireDecoratorEvent("search", { item: this._proposedItem });
2921
+ if (prevented) {
2922
+ return;
2923
+ }
2924
+ const innerInput = this.nativeInput;
2925
+ if (this._matchedPerTerm) {
2926
+ this.value = this._proposedItem?.text || this.value;
2927
+ this._innerValue = this.value;
2928
+ this._typedInValue = this.value;
2929
+ this._matchedPerTerm = false;
2930
+ }
2931
+ innerInput.setSelectionRange(this.value.length, this.value.length);
2932
+ this.open = false;
2933
+ }
2934
+ _onMobileInputKeydown(e) {
2935
+ if (webcomponentsBase.b$1(e)) {
2936
+ this.value = this.mobileInput?.value || this.value;
2937
+ this._handleEnter();
2938
+ this.blur();
2939
+ }
2940
+ }
2941
+ _handleSearchEvent() {
2942
+ this.fireDecoratorEvent("search", { item: this._proposedItem });
2943
+ }
2944
+ _handleEscape() {
2945
+ this.value = this._typedInValue || this.value;
2946
+ this._innerValue = this.value;
2947
+ }
2948
+ _handleInput(e) {
2949
+ super._handleInput(e);
2950
+ if (Icons.d()) {
2951
+ return;
2952
+ }
2953
+ this.open = (e.currentTarget.value.length > 0) && this._popoupHasAnyContent();
2954
+ }
2955
+ _popoupHasAnyContent() {
2956
+ return this.items.length > 0 || this.illustration.length > 0 || this.messageArea.length > 0 || this.loading || this.action.length > 0;
2957
+ }
2958
+ _onFooterButtonKeyDown(e) {
2959
+ if (webcomponentsBase.D(e)) {
2960
+ this._flattenItems[this._flattenItems.length - 1].focus();
2961
+ }
2962
+ if (webcomponentsBase.m$1(e)) {
2963
+ this._getItemsList().focus();
2964
+ }
2965
+ }
2966
+ _onItemKeydown(e) {
2967
+ const isFirstItem = this._flattenItems[0] === e.target;
2968
+ const isLastItem = this._flattenItems[this._flattenItems.length - 1] === e.target;
2969
+ const isArrowUp = webcomponentsBase.D(e);
2970
+ const isArrowDown = webcomponentsBase.P(e);
2971
+ const isTab = webcomponentsBase.B(e);
2972
+ e.preventDefault();
2973
+ if (isFirstItem && isArrowUp) {
2974
+ this.nativeInput?.focus();
2975
+ this._shouldAutocomplete = true;
2976
+ }
2977
+ if ((isLastItem && isArrowDown) || isTab) {
2978
+ this._getFooterButton()?.focus();
2979
+ }
2980
+ }
2981
+ _onItemClick(e) {
2982
+ const item = e.detail.item;
2983
+ const prevented = !this.fireDecoratorEvent("search", { item });
2984
+ if (prevented) {
2985
+ if (Icons.d()) {
2986
+ this.open = false;
2987
+ }
2988
+ return;
2989
+ }
2990
+ this.value = item.text;
2991
+ this._innerValue = this.value;
2992
+ this._typedInValue = this.value;
2993
+ this.open = false;
2994
+ this.focus();
2995
+ }
2996
+ _onkeydown(e) {
2997
+ super._onkeydown(e);
2998
+ if (this.loading) {
2999
+ return;
3000
+ }
3001
+ this._shouldAutocomplete = !this.noTypeahead
3002
+ && !(webcomponentsBase.x(e) || webcomponentsBase.V(e) || webcomponentsBase.H(e) || webcomponentsBase.D(e) || webcomponentsBase.P(e) || webcomponentsBase.B(e) || webcomponentsBase.b$1(e) || webcomponentsBase.Y(e) || webcomponentsBase.Z(e) || webcomponentsBase.F(e) || webcomponentsBase.W(e) || webcomponentsBase.H(e));
3003
+ if (webcomponentsBase.c(e)) {
3004
+ this._handleRight(e);
3005
+ }
3006
+ if (webcomponentsBase.P(e)) {
3007
+ this._handleDown(e);
3008
+ }
3009
+ if (webcomponentsBase.H(e)) {
3010
+ this._handleEscape();
3011
+ }
3012
+ }
3013
+ _onfocusout() {
3014
+ super._onfocusout();
3015
+ if (this._matchedPerTerm) {
3016
+ this.value = this._typedInValue;
3017
+ this._innerValue = this._typedInValue;
3018
+ }
3019
+ this._matchedPerTerm = false;
3020
+ }
3021
+ _onFocusOutSearch(e) {
3022
+ const target = e.relatedTarget;
3023
+ if (this._getPicker().contains(target) || this.contains(target)) {
3024
+ return;
3025
+ }
3026
+ this.open = false;
3027
+ }
3028
+ _handleBeforeClose(e) {
3029
+ if (e.detail.escPressed) {
3030
+ this.focus();
3031
+ }
3032
+ }
3033
+ _handleCancel() {
3034
+ this._handleClose();
3035
+ this.value = this._valueBeforeOpen;
3036
+ this.fireDecoratorEvent("input");
3037
+ }
3038
+ _handleClose() {
3039
+ this.open = false;
3040
+ this.fireDecoratorEvent("close");
3041
+ }
3042
+ _handleBeforeOpen() {
3043
+ this._valueBeforeOpen = this.value;
3044
+ if (Icons.d() && this.mobileInput) {
3045
+ this.mobileInput.value = this.value;
3046
+ }
3047
+ }
3048
+ _handleOpen() {
3049
+ this.fireDecoratorEvent("open");
3050
+ }
3051
+ _handleActionKeydown(e) {
3052
+ if (webcomponentsBase.D(e)) {
3053
+ this._flattenItems[this._flattenItems.length - 1].focus();
3054
+ }
3055
+ }
3056
+ _onFooterButtonClick() {
3057
+ this.fireDecoratorEvent("popup-action-press");
3058
+ }
3059
+ _getFirstMatchingItem(current) {
3060
+ if (!this._flattenItems.length || !current) {
3061
+ return;
3062
+ }
3063
+ const startsWithMatches = this._startsWithMatchingItems(current);
3064
+ const partialMatches = this._startsWithPerTermMatchingItems(current);
3065
+ if (!startsWithMatches.length) {
3066
+ return partialMatches[0] ?? undefined;
3067
+ }
3068
+ if (!partialMatches.length) {
3069
+ return startsWithMatches[0];
3070
+ }
3071
+ return this._flattenItems.indexOf(startsWithMatches[0]) <= this._flattenItems.indexOf(partialMatches[0])
3072
+ ? startsWithMatches[0]
3073
+ : partialMatches[0];
3074
+ }
3075
+ _getPicker() {
3076
+ return this.shadowRoot.querySelector("[ui5-responsive-popover]");
3077
+ }
3078
+ _getItemsList() {
3079
+ return this._getPicker().querySelector(".ui5-search-list");
3080
+ }
3081
+ _getFooterButton() {
3082
+ return this.action[0];
3083
+ }
3084
+ get _flattenItems() {
3085
+ return this.getSlottedNodes("items").flatMap(item => {
3086
+ return this._isGroupItem(item) ? [item, ...item.items] : [item];
3087
+ });
3088
+ }
3089
+ get nativeInput() {
3090
+ const domRef = this.getDomRef();
3091
+ return domRef?.querySelector(`input`);
3092
+ }
3093
+ get mobileInput() {
3094
+ const domRef = this.shadowRoot;
3095
+ return domRef ? domRef.querySelector(`[ui5-input]`) : null;
3096
+ }
3097
+ get cancelButtonText() {
3098
+ return Search_1.i18nBundle.getText(i18nDefaults$1.SEARCH_CANCEL_BUTTON);
3099
+ }
3100
+ get suggestionsText() {
3101
+ return Search_1.i18nBundle.getText(i18nDefaults$1.SEARCH_SUGGESTIONS);
3102
+ }
3103
+ get scopeSelect() {
3104
+ const domRef = this.shadowRoot;
3105
+ return domRef ? domRef.querySelector(`[ui5-select]`) : null;
3106
+ }
3107
+ };
3108
+ __decorate$1([
3109
+ webcomponentsBase.s({ type: Boolean })
3110
+ ], Search.prototype, "loading", void 0);
3111
+ __decorate$1([
3112
+ webcomponentsBase.s({ type: Boolean })
3113
+ ], Search.prototype, "noTypeahead", void 0);
3114
+ __decorate$1([
3115
+ webcomponentsBase.d({ type: HTMLElement, "default": true })
3116
+ ], Search.prototype, "items", void 0);
3117
+ __decorate$1([
3118
+ webcomponentsBase.d()
3119
+ ], Search.prototype, "action", void 0);
3120
+ __decorate$1([
3121
+ webcomponentsBase.d()
3122
+ ], Search.prototype, "illustration", void 0);
3123
+ __decorate$1([
3124
+ webcomponentsBase.d()
3125
+ ], Search.prototype, "messageArea", void 0);
3126
+ __decorate$1([
3127
+ webcomponentsBase.s({ type: Boolean })
3128
+ ], Search.prototype, "open", void 0);
3129
+ __decorate$1([
3130
+ webcomponentsBase.s({ noAttribute: true })
3131
+ ], Search.prototype, "_innerValue", void 0);
3132
+ __decorate$1([
3133
+ webcomponentsBase.s({ type: Boolean })
3134
+ ], Search.prototype, "_performItemSelectionOnMobile", void 0);
3135
+ __decorate$1([
3136
+ i18nDefaults.i("sap/ushell/gen/ui5/webcomponents-fiori")
3137
+ ], Search, "i18nBundle", void 0);
3138
+ Search = Search_1 = __decorate$1([
3139
+ webcomponentsBase.m({
3140
+ tag: "ui5-search",
3141
+ languageAware: true,
3142
+ renderer: parametersBundle_css.y,
3143
+ template: SearchTemplate,
3144
+ styles: [
3145
+ SearchField$1.styles,
3146
+ SearchCss,
3147
+ ],
3148
+ })
3149
+ /**
3150
+ * Fired when the popup is opened.
3151
+ *
3152
+ * @public
3153
+ */
3154
+ ,
3155
+ eventStrict.l("open")
3156
+ /**
3157
+ * Fired when the popup is closed.
3158
+ *
3159
+ * @public
3160
+ */
3161
+ ,
3162
+ eventStrict.l("close")
3163
+ ], Search);
3164
+ Search.define();
3165
+ var Search$1 = Search;
3166
+
3167
+ function ShellBarSearchPopoverTemplate() {
3168
+ return (SearchPopoverTemplate.call(this, ShellBarSearchDialogHeader));
3169
+ }
3170
+ function ShellBarSearchDialogHeader() {
3171
+ return (parametersBundle_css.jsx(parametersBundle_css.Fragment, { children: parametersBundle_css.jsxs("header", { slot: "header", class: "ui5-search-popup-searching-header", children: [parametersBundle_css.jsx("div", { class: "ui5-shellbar-search-field-wrapper", children: SearchFieldTemplate.call(this, { forceExpanded: true }) }), parametersBundle_css.jsx(Button.Button, { design: Button.ButtonDesign.Transparent, onClick: this._handleCancel, children: this.cancelButtonText })] }) }));
3172
+ }
3173
+
3174
+ function ShellBarSearchTemplate() {
3175
+ return (parametersBundle_css.jsxs(parametersBundle_css.Fragment, { children: [SearchFieldTemplate.call(this), ShellBarSearchPopoverTemplate.call(this)] }));
3176
+ }
3177
+
3178
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3179
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3180
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
3181
+ 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;
3182
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
3183
+ };
3184
+ var ShellBarSearch_1;
3185
+ /**
3186
+ * @class
3187
+ * Search field for the ShellBar component.
3188
+ * @constructor
3189
+ * @extends Search
3190
+ * @public
3191
+ * @since 2.10.0
3192
+ * @experimental
3193
+ */
3194
+ let ShellBarSearch = ShellBarSearch_1 = class ShellBarSearch extends Search$1 {
3195
+ _handleSearchIconPress() {
3196
+ super._handleSearchIconPress();
3197
+ if (this.collapsed) {
3198
+ this.collapsed = false;
3199
+ }
3200
+ else if (!this.value) {
3201
+ this.collapsed = true;
3202
+ }
3203
+ }
3204
+ _onFocusOutSearch(e) {
3205
+ if (Icons.d()) {
3206
+ return;
3207
+ }
3208
+ super._onFocusOutSearch(e);
3209
+ }
3210
+ _handleInput(e) {
3211
+ super._handleInput(e);
3212
+ if (Icons.d()) {
3213
+ this._performItemSelectionOnMobile = this._shouldPerformSelectionOnMobile(e.inputType);
3214
+ }
3215
+ }
3216
+ get _effectiveIconTooltip() {
3217
+ if (this.collapsed) {
3218
+ return ShellBarSearch_1.i18nBundle.getText(i18nDefaults$1.SHELLBAR_SEARCH_COLLAPSED);
3219
+ }
3220
+ if (this.value) {
3221
+ return ShellBarSearch_1.i18nBundle.getText(i18nDefaults$1.SEARCH_FIELD_SEARCH_ICON);
3222
+ }
3223
+ return ShellBarSearch_1.i18nBundle.getText(i18nDefaults$1.SHELLBAR_SEARCH_EXPANDED);
3224
+ }
3225
+ get nativeInput() {
3226
+ const domRef = this.shadowRoot;
3227
+ return Icons.d() ? domRef?.querySelector(`[ui5-responsive-popover] input`) : super.nativeInput;
3228
+ }
3229
+ onBeforeRendering() {
3230
+ super.onBeforeRendering();
3231
+ if (Icons.d()) {
3232
+ this.collapsed = true;
3233
+ }
3234
+ }
3235
+ };
3236
+ ShellBarSearch = ShellBarSearch_1 = __decorate([
3237
+ webcomponentsBase.m({
3238
+ tag: "ui5-shellbar-search",
3239
+ template: ShellBarSearchTemplate,
3240
+ })
3241
+ ], ShellBarSearch);
3242
+ ShellBarSearch.define();
3243
+ var ShellBarSearch$1 = ShellBarSearch;
3244
+
3245
+ exports.Input = Input$1;
3246
+ exports.ShellBarSearch = ShellBarSearch$1;
3247
+
3248
+ }));