@ui5/webcomponents 2.1.0-rc.0 → 2.1.0-rc.1

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 (438) hide show
  1. package/CHANGELOG.md +28 -0
  2. package/dist/.tsbuildinfo +1 -1
  3. package/dist/ComboBox.d.ts +1 -2
  4. package/dist/ComboBox.js +3 -6
  5. package/dist/ComboBox.js.map +1 -1
  6. package/dist/DatePicker.d.ts +1 -1
  7. package/dist/DatePicker.js.map +1 -1
  8. package/dist/Dialog.d.ts +1 -7
  9. package/dist/Dialog.js +1 -8
  10. package/dist/Dialog.js.map +1 -1
  11. package/dist/FileUploader.d.ts +1 -1
  12. package/dist/FileUploader.js.map +1 -1
  13. package/dist/Input.d.ts +2 -2
  14. package/dist/Input.js +19 -9
  15. package/dist/Input.js.map +1 -1
  16. package/dist/ListItemGroup.d.ts +19 -0
  17. package/dist/ListItemGroup.js +120 -1
  18. package/dist/ListItemGroup.js.map +1 -1
  19. package/dist/MultiComboBox.d.ts +1 -1
  20. package/dist/MultiComboBox.js.map +1 -1
  21. package/dist/Popover.d.ts +2 -6
  22. package/dist/Popover.js +9 -8
  23. package/dist/Popover.js.map +1 -1
  24. package/dist/Popup.d.ts +2 -7
  25. package/dist/Popup.js +9 -7
  26. package/dist/Popup.js.map +1 -1
  27. package/dist/RatingIndicator.js +1 -0
  28. package/dist/RatingIndicator.js.map +1 -1
  29. package/dist/ResponsivePopover.js +0 -2
  30. package/dist/ResponsivePopover.js.map +1 -1
  31. package/dist/Select.d.ts +1 -1
  32. package/dist/Select.js +8 -4
  33. package/dist/Select.js.map +1 -1
  34. package/dist/StepInput.d.ts +1 -1
  35. package/dist/StepInput.js.map +1 -1
  36. package/dist/TextArea.d.ts +2 -2
  37. package/dist/TextArea.js +2 -2
  38. package/dist/TextArea.js.map +1 -1
  39. package/dist/TimePicker.d.ts +1 -1
  40. package/dist/TimePicker.js.map +1 -1
  41. package/dist/Title.d.ts +9 -0
  42. package/dist/Title.js +12 -0
  43. package/dist/Title.js.map +1 -1
  44. package/dist/Toolbar.js +1 -0
  45. package/dist/Toolbar.js.map +1 -1
  46. package/dist/css/themes/Avatar.css +1 -1
  47. package/dist/css/themes/AvatarGroup.css +1 -1
  48. package/dist/css/themes/Bar.css +1 -1
  49. package/dist/css/themes/Breadcrumbs.css +1 -1
  50. package/dist/css/themes/BusyIndicator.css +1 -1
  51. package/dist/css/themes/Button.css +1 -1
  52. package/dist/css/themes/Calendar.css +1 -1
  53. package/dist/css/themes/CalendarHeader.css +1 -1
  54. package/dist/css/themes/CalendarLegend.css +1 -1
  55. package/dist/css/themes/CalendarLegendItem.css +1 -1
  56. package/dist/css/themes/Card.css +1 -1
  57. package/dist/css/themes/CardHeader.css +1 -1
  58. package/dist/css/themes/Carousel.css +1 -1
  59. package/dist/css/themes/CheckBox.css +1 -1
  60. package/dist/css/themes/ColorPalette.css +1 -1
  61. package/dist/css/themes/ColorPaletteItem.css +1 -1
  62. package/dist/css/themes/ColorPalettePopover.css +1 -1
  63. package/dist/css/themes/ColorPicker.css +1 -1
  64. package/dist/css/themes/ComboBox.css +1 -1
  65. package/dist/css/themes/DatePicker.css +1 -1
  66. package/dist/css/themes/DateTimePickerPopover.css +1 -1
  67. package/dist/css/themes/DayPicker.css +1 -1
  68. package/dist/css/themes/Dialog.css +1 -1
  69. package/dist/css/themes/FileUploader.css +1 -1
  70. package/dist/css/themes/Form.css +1 -1
  71. package/dist/css/themes/FormItem.css +1 -1
  72. package/dist/css/themes/FormLabelSpan.css +1 -1
  73. package/dist/css/themes/GrowingButton.css +1 -1
  74. package/dist/css/themes/Icon.css +1 -1
  75. package/dist/css/themes/Input.css +1 -1
  76. package/dist/css/themes/InputIcon.css +1 -1
  77. package/dist/css/themes/InputSharedStyles.css +1 -1
  78. package/dist/css/themes/Link.css +1 -1
  79. package/dist/css/themes/List.css +1 -1
  80. package/dist/css/themes/ListItem.css +1 -1
  81. package/dist/css/themes/ListItemBase.css +1 -1
  82. package/dist/css/themes/ListItemCustom.css +1 -1
  83. package/dist/css/themes/ListItemGroup.css +1 -1
  84. package/dist/css/themes/ListItemGroupHeader.css +1 -1
  85. package/dist/css/themes/ListItemIcon.css +1 -1
  86. package/dist/css/themes/Menu.css +1 -1
  87. package/dist/css/themes/MenuItem.css +1 -1
  88. package/dist/css/themes/MessageStrip.css +1 -1
  89. package/dist/css/themes/MonthPicker.css +1 -1
  90. package/dist/css/themes/MultiComboBox.css +1 -1
  91. package/dist/css/themes/MultiComboBoxPopover.css +1 -1
  92. package/dist/css/themes/MultiInput.css +1 -1
  93. package/dist/css/themes/NavigationMenu.css +1 -1
  94. package/dist/css/themes/NavigationMenuItem.css +1 -1
  95. package/dist/css/themes/OptionBase.css +1 -1
  96. package/dist/css/themes/Panel.css +1 -1
  97. package/dist/css/themes/Popover.css +1 -1
  98. package/dist/css/themes/PopupsCommon.css +1 -1
  99. package/dist/css/themes/ProgressIndicator.css +1 -1
  100. package/dist/css/themes/RadioButton.css +1 -1
  101. package/dist/css/themes/RangeSlider.css +1 -1
  102. package/dist/css/themes/RatingIndicator.css +1 -1
  103. package/dist/css/themes/ResponsivePopover.css +1 -1
  104. package/dist/css/themes/ResponsivePopoverCommon.css +1 -1
  105. package/dist/css/themes/SegmentedButton.css +1 -1
  106. package/dist/css/themes/SegmentedButtonItem.css +1 -1
  107. package/dist/css/themes/Select.css +1 -1
  108. package/dist/css/themes/SliderBase.css +1 -1
  109. package/dist/css/themes/SplitButton.css +1 -1
  110. package/dist/css/themes/StepInput.css +1 -1
  111. package/dist/css/themes/SuggestionItem.css +1 -1
  112. package/dist/css/themes/SuggestionItemCustom.css +1 -1
  113. package/dist/css/themes/Switch.css +1 -1
  114. package/dist/css/themes/TabContainer.css +1 -1
  115. package/dist/css/themes/TabInOverflow.css +1 -1
  116. package/dist/css/themes/TabInStrip.css +1 -1
  117. package/dist/css/themes/TabSemanticIcon.css +1 -1
  118. package/dist/css/themes/TabSeparatorInOverflow.css +1 -1
  119. package/dist/css/themes/TableCellBase.css +1 -1
  120. package/dist/css/themes/TableHeaderRow.css +1 -1
  121. package/dist/css/themes/TableRowBase.css +1 -1
  122. package/dist/css/themes/Tag.css +1 -1
  123. package/dist/css/themes/Text.css +1 -1
  124. package/dist/css/themes/TextArea.css +1 -1
  125. package/dist/css/themes/TimePicker.css +1 -1
  126. package/dist/css/themes/Title.css +1 -1
  127. package/dist/css/themes/Toast.css +1 -1
  128. package/dist/css/themes/ToggleButton.css +1 -1
  129. package/dist/css/themes/Token.css +1 -1
  130. package/dist/css/themes/Tokenizer.css +1 -1
  131. package/dist/css/themes/TokenizerPopover.css +1 -1
  132. package/dist/css/themes/Toolbar.css +1 -1
  133. package/dist/css/themes/ToolbarPopover.css +1 -1
  134. package/dist/css/themes/TreeItem.css +1 -1
  135. package/dist/css/themes/ValueStateMessage.css +1 -1
  136. package/dist/css/themes/YearPicker.css +1 -1
  137. package/dist/css/themes/sap_fiori_3/parameters-bundle.css +1 -1
  138. package/dist/css/themes/sap_fiori_3_dark/parameters-bundle.css +1 -1
  139. package/dist/css/themes/sap_fiori_3_hcb/parameters-bundle.css +1 -1
  140. package/dist/css/themes/sap_fiori_3_hcw/parameters-bundle.css +1 -1
  141. package/dist/css/themes/sap_horizon/parameters-bundle.css +1 -1
  142. package/dist/css/themes/sap_horizon_dark/parameters-bundle.css +1 -1
  143. package/dist/css/themes/sap_horizon_dark_exp/parameters-bundle.css +1 -1
  144. package/dist/css/themes/sap_horizon_exp/parameters-bundle.css +1 -1
  145. package/dist/css/themes/sap_horizon_hcb/parameters-bundle.css +1 -1
  146. package/dist/css/themes/sap_horizon_hcb_exp/parameters-bundle.css +1 -1
  147. package/dist/css/themes/sap_horizon_hcw/parameters-bundle.css +1 -1
  148. package/dist/css/themes/sap_horizon_hcw_exp/parameters-bundle.css +1 -1
  149. package/dist/custom-elements-internal.json +194 -16
  150. package/dist/custom-elements.json +110 -16
  151. package/dist/features/InputSuggestions.js +5 -2
  152. package/dist/features/InputSuggestions.js.map +1 -1
  153. package/dist/generated/assets/themes/sap_fiori_3/parameters-bundle.css.json +1 -1
  154. package/dist/generated/assets/themes/sap_fiori_3_dark/parameters-bundle.css.json +1 -1
  155. package/dist/generated/assets/themes/sap_fiori_3_hcb/parameters-bundle.css.json +1 -1
  156. package/dist/generated/assets/themes/sap_fiori_3_hcw/parameters-bundle.css.json +1 -1
  157. package/dist/generated/assets/themes/sap_horizon/parameters-bundle.css.json +1 -1
  158. package/dist/generated/assets/themes/sap_horizon_dark/parameters-bundle.css.json +1 -1
  159. package/dist/generated/assets/themes/sap_horizon_dark_exp/parameters-bundle.css.json +1 -1
  160. package/dist/generated/assets/themes/sap_horizon_exp/parameters-bundle.css.json +1 -1
  161. package/dist/generated/assets/themes/sap_horizon_hcb/parameters-bundle.css.json +1 -1
  162. package/dist/generated/assets/themes/sap_horizon_hcb_exp/parameters-bundle.css.json +1 -1
  163. package/dist/generated/assets/themes/sap_horizon_hcw/parameters-bundle.css.json +1 -1
  164. package/dist/generated/assets/themes/sap_horizon_hcw_exp/parameters-bundle.css.json +1 -1
  165. package/dist/generated/templates/ColorPalettePopoverTemplate.lit.js +1 -1
  166. package/dist/generated/templates/ColorPalettePopoverTemplate.lit.js.map +1 -1
  167. package/dist/generated/templates/ComboBoxPopoverTemplate.lit.js +9 -10
  168. package/dist/generated/templates/ComboBoxPopoverTemplate.lit.js.map +1 -1
  169. package/dist/generated/templates/ComboBoxTemplate.lit.js +9 -10
  170. package/dist/generated/templates/ComboBoxTemplate.lit.js.map +1 -1
  171. package/dist/generated/templates/DialogTemplate.lit.js +2 -2
  172. package/dist/generated/templates/DialogTemplate.lit.js.map +1 -1
  173. package/dist/generated/templates/ListItemBaseTemplate.lit.js +1 -1
  174. package/dist/generated/templates/ListItemBaseTemplate.lit.js.map +1 -1
  175. package/dist/generated/templates/ListItemGroupTemplate.lit.js +1 -1
  176. package/dist/generated/templates/ListItemGroupTemplate.lit.js.map +1 -1
  177. package/dist/generated/templates/OptionCustomTemplate.lit.js +1 -1
  178. package/dist/generated/templates/OptionCustomTemplate.lit.js.map +1 -1
  179. package/dist/generated/templates/OptionTemplate.lit.js +1 -1
  180. package/dist/generated/templates/OptionTemplate.lit.js.map +1 -1
  181. package/dist/generated/templates/PopoverTemplate.lit.js +3 -3
  182. package/dist/generated/templates/PopoverTemplate.lit.js.map +1 -1
  183. package/dist/generated/templates/PopupTemplate.lit.js +1 -1
  184. package/dist/generated/templates/PopupTemplate.lit.js.map +1 -1
  185. package/dist/generated/templates/ResponsivePopoverTemplate.lit.js +3 -3
  186. package/dist/generated/templates/ResponsivePopoverTemplate.lit.js.map +1 -1
  187. package/dist/generated/templates/SuggestionItemCustomTemplate.lit.js +1 -1
  188. package/dist/generated/templates/SuggestionItemCustomTemplate.lit.js.map +1 -1
  189. package/dist/generated/templates/SuggestionItemGroupTemplate.lit.js +1 -1
  190. package/dist/generated/templates/SuggestionItemGroupTemplate.lit.js.map +1 -1
  191. package/dist/generated/templates/SuggestionItemTemplate.lit.js +1 -1
  192. package/dist/generated/templates/SuggestionItemTemplate.lit.js.map +1 -1
  193. package/dist/generated/templates/TabInOverflowTemplate.lit.js +1 -1
  194. package/dist/generated/templates/TabInOverflowTemplate.lit.js.map +1 -1
  195. package/dist/generated/templates/TokenizerPopoverTemplate.lit.js +1 -1
  196. package/dist/generated/templates/TokenizerPopoverTemplate.lit.js.map +1 -1
  197. package/dist/generated/templates/TokenizerTemplate.lit.js +1 -1
  198. package/dist/generated/templates/TokenizerTemplate.lit.js.map +1 -1
  199. package/dist/generated/themes/Avatar.css.js +1 -1
  200. package/dist/generated/themes/Avatar.css.js.map +1 -1
  201. package/dist/generated/themes/AvatarGroup.css.js +1 -1
  202. package/dist/generated/themes/AvatarGroup.css.js.map +1 -1
  203. package/dist/generated/themes/Bar.css.js +1 -1
  204. package/dist/generated/themes/Bar.css.js.map +1 -1
  205. package/dist/generated/themes/Breadcrumbs.css.js +1 -1
  206. package/dist/generated/themes/Breadcrumbs.css.js.map +1 -1
  207. package/dist/generated/themes/BusyIndicator.css.js +1 -1
  208. package/dist/generated/themes/BusyIndicator.css.js.map +1 -1
  209. package/dist/generated/themes/Button.css.js +1 -1
  210. package/dist/generated/themes/Button.css.js.map +1 -1
  211. package/dist/generated/themes/Calendar.css.js +1 -1
  212. package/dist/generated/themes/Calendar.css.js.map +1 -1
  213. package/dist/generated/themes/CalendarHeader.css.js +1 -1
  214. package/dist/generated/themes/CalendarHeader.css.js.map +1 -1
  215. package/dist/generated/themes/CalendarLegend.css.js +1 -1
  216. package/dist/generated/themes/CalendarLegend.css.js.map +1 -1
  217. package/dist/generated/themes/CalendarLegendItem.css.js +1 -1
  218. package/dist/generated/themes/CalendarLegendItem.css.js.map +1 -1
  219. package/dist/generated/themes/Card.css.js +1 -1
  220. package/dist/generated/themes/Card.css.js.map +1 -1
  221. package/dist/generated/themes/CardHeader.css.js +1 -1
  222. package/dist/generated/themes/CardHeader.css.js.map +1 -1
  223. package/dist/generated/themes/Carousel.css.js +1 -1
  224. package/dist/generated/themes/Carousel.css.js.map +1 -1
  225. package/dist/generated/themes/CheckBox.css.js +1 -1
  226. package/dist/generated/themes/CheckBox.css.js.map +1 -1
  227. package/dist/generated/themes/ColorPalette.css.js +1 -1
  228. package/dist/generated/themes/ColorPalette.css.js.map +1 -1
  229. package/dist/generated/themes/ColorPaletteItem.css.js +1 -1
  230. package/dist/generated/themes/ColorPaletteItem.css.js.map +1 -1
  231. package/dist/generated/themes/ColorPalettePopover.css.js +1 -1
  232. package/dist/generated/themes/ColorPalettePopover.css.js.map +1 -1
  233. package/dist/generated/themes/ColorPicker.css.js +1 -1
  234. package/dist/generated/themes/ColorPicker.css.js.map +1 -1
  235. package/dist/generated/themes/ComboBox.css.js +1 -1
  236. package/dist/generated/themes/ComboBox.css.js.map +1 -1
  237. package/dist/generated/themes/DatePicker.css.js +1 -1
  238. package/dist/generated/themes/DatePicker.css.js.map +1 -1
  239. package/dist/generated/themes/DateTimePickerPopover.css.js +1 -1
  240. package/dist/generated/themes/DateTimePickerPopover.css.js.map +1 -1
  241. package/dist/generated/themes/DayPicker.css.js +1 -1
  242. package/dist/generated/themes/DayPicker.css.js.map +1 -1
  243. package/dist/generated/themes/Dialog.css.js +1 -1
  244. package/dist/generated/themes/Dialog.css.js.map +1 -1
  245. package/dist/generated/themes/FileUploader.css.js +1 -1
  246. package/dist/generated/themes/FileUploader.css.js.map +1 -1
  247. package/dist/generated/themes/Form.css.js +1 -1
  248. package/dist/generated/themes/Form.css.js.map +1 -1
  249. package/dist/generated/themes/FormItem.css.js +1 -1
  250. package/dist/generated/themes/FormItem.css.js.map +1 -1
  251. package/dist/generated/themes/FormLabelSpan.css.js +1 -1
  252. package/dist/generated/themes/FormLabelSpan.css.js.map +1 -1
  253. package/dist/generated/themes/GrowingButton.css.js +1 -1
  254. package/dist/generated/themes/GrowingButton.css.js.map +1 -1
  255. package/dist/generated/themes/Icon.css.js +1 -1
  256. package/dist/generated/themes/Icon.css.js.map +1 -1
  257. package/dist/generated/themes/Input.css.js +1 -1
  258. package/dist/generated/themes/Input.css.js.map +1 -1
  259. package/dist/generated/themes/InputIcon.css.js +1 -1
  260. package/dist/generated/themes/InputIcon.css.js.map +1 -1
  261. package/dist/generated/themes/InputSharedStyles.css.js +1 -1
  262. package/dist/generated/themes/InputSharedStyles.css.js.map +1 -1
  263. package/dist/generated/themes/Link.css.js +1 -1
  264. package/dist/generated/themes/Link.css.js.map +1 -1
  265. package/dist/generated/themes/List.css.js +1 -1
  266. package/dist/generated/themes/List.css.js.map +1 -1
  267. package/dist/generated/themes/ListItem.css.js +1 -1
  268. package/dist/generated/themes/ListItem.css.js.map +1 -1
  269. package/dist/generated/themes/ListItemBase.css.js +1 -1
  270. package/dist/generated/themes/ListItemBase.css.js.map +1 -1
  271. package/dist/generated/themes/ListItemCustom.css.js +1 -1
  272. package/dist/generated/themes/ListItemCustom.css.js.map +1 -1
  273. package/dist/generated/themes/ListItemGroup.css.js +1 -1
  274. package/dist/generated/themes/ListItemGroup.css.js.map +1 -1
  275. package/dist/generated/themes/ListItemGroupHeader.css.js +1 -1
  276. package/dist/generated/themes/ListItemGroupHeader.css.js.map +1 -1
  277. package/dist/generated/themes/ListItemIcon.css.js +1 -1
  278. package/dist/generated/themes/ListItemIcon.css.js.map +1 -1
  279. package/dist/generated/themes/Menu.css.js +1 -1
  280. package/dist/generated/themes/Menu.css.js.map +1 -1
  281. package/dist/generated/themes/MenuItem.css.js +1 -1
  282. package/dist/generated/themes/MenuItem.css.js.map +1 -1
  283. package/dist/generated/themes/MessageStrip.css.js +1 -1
  284. package/dist/generated/themes/MessageStrip.css.js.map +1 -1
  285. package/dist/generated/themes/MonthPicker.css.js +1 -1
  286. package/dist/generated/themes/MonthPicker.css.js.map +1 -1
  287. package/dist/generated/themes/MultiComboBox.css.js +1 -1
  288. package/dist/generated/themes/MultiComboBox.css.js.map +1 -1
  289. package/dist/generated/themes/MultiComboBoxPopover.css.js +1 -1
  290. package/dist/generated/themes/MultiComboBoxPopover.css.js.map +1 -1
  291. package/dist/generated/themes/MultiInput.css.js +1 -1
  292. package/dist/generated/themes/MultiInput.css.js.map +1 -1
  293. package/dist/generated/themes/NavigationMenu.css.js +1 -1
  294. package/dist/generated/themes/NavigationMenu.css.js.map +1 -1
  295. package/dist/generated/themes/NavigationMenuItem.css.js +1 -1
  296. package/dist/generated/themes/NavigationMenuItem.css.js.map +1 -1
  297. package/dist/generated/themes/OptionBase.css.js +1 -1
  298. package/dist/generated/themes/OptionBase.css.js.map +1 -1
  299. package/dist/generated/themes/Panel.css.js +1 -1
  300. package/dist/generated/themes/Panel.css.js.map +1 -1
  301. package/dist/generated/themes/Popover.css.js +1 -1
  302. package/dist/generated/themes/Popover.css.js.map +1 -1
  303. package/dist/generated/themes/PopupsCommon.css.js +1 -1
  304. package/dist/generated/themes/PopupsCommon.css.js.map +1 -1
  305. package/dist/generated/themes/ProgressIndicator.css.js +1 -1
  306. package/dist/generated/themes/ProgressIndicator.css.js.map +1 -1
  307. package/dist/generated/themes/RadioButton.css.js +1 -1
  308. package/dist/generated/themes/RadioButton.css.js.map +1 -1
  309. package/dist/generated/themes/RangeSlider.css.js +1 -1
  310. package/dist/generated/themes/RangeSlider.css.js.map +1 -1
  311. package/dist/generated/themes/RatingIndicator.css.js +1 -1
  312. package/dist/generated/themes/RatingIndicator.css.js.map +1 -1
  313. package/dist/generated/themes/ResponsivePopover.css.js +1 -1
  314. package/dist/generated/themes/ResponsivePopover.css.js.map +1 -1
  315. package/dist/generated/themes/ResponsivePopoverCommon.css.js +1 -1
  316. package/dist/generated/themes/ResponsivePopoverCommon.css.js.map +1 -1
  317. package/dist/generated/themes/SegmentedButton.css.js +1 -1
  318. package/dist/generated/themes/SegmentedButton.css.js.map +1 -1
  319. package/dist/generated/themes/SegmentedButtonItem.css.js +1 -1
  320. package/dist/generated/themes/SegmentedButtonItem.css.js.map +1 -1
  321. package/dist/generated/themes/Select.css.js +1 -1
  322. package/dist/generated/themes/Select.css.js.map +1 -1
  323. package/dist/generated/themes/SliderBase.css.js +1 -1
  324. package/dist/generated/themes/SliderBase.css.js.map +1 -1
  325. package/dist/generated/themes/SplitButton.css.js +1 -1
  326. package/dist/generated/themes/SplitButton.css.js.map +1 -1
  327. package/dist/generated/themes/StepInput.css.js +1 -1
  328. package/dist/generated/themes/StepInput.css.js.map +1 -1
  329. package/dist/generated/themes/SuggestionItem.css.js +1 -1
  330. package/dist/generated/themes/SuggestionItem.css.js.map +1 -1
  331. package/dist/generated/themes/SuggestionItemCustom.css.js +1 -1
  332. package/dist/generated/themes/SuggestionItemCustom.css.js.map +1 -1
  333. package/dist/generated/themes/Switch.css.js +1 -1
  334. package/dist/generated/themes/Switch.css.js.map +1 -1
  335. package/dist/generated/themes/TabContainer.css.js +1 -1
  336. package/dist/generated/themes/TabContainer.css.js.map +1 -1
  337. package/dist/generated/themes/TabInOverflow.css.js +1 -1
  338. package/dist/generated/themes/TabInOverflow.css.js.map +1 -1
  339. package/dist/generated/themes/TabInStrip.css.js +1 -1
  340. package/dist/generated/themes/TabInStrip.css.js.map +1 -1
  341. package/dist/generated/themes/TabSemanticIcon.css.js +1 -1
  342. package/dist/generated/themes/TabSemanticIcon.css.js.map +1 -1
  343. package/dist/generated/themes/TabSeparatorInOverflow.css.js +1 -1
  344. package/dist/generated/themes/TabSeparatorInOverflow.css.js.map +1 -1
  345. package/dist/generated/themes/TableCellBase.css.js +1 -1
  346. package/dist/generated/themes/TableCellBase.css.js.map +1 -1
  347. package/dist/generated/themes/TableHeaderRow.css.js +1 -1
  348. package/dist/generated/themes/TableHeaderRow.css.js.map +1 -1
  349. package/dist/generated/themes/TableRowBase.css.js +1 -1
  350. package/dist/generated/themes/TableRowBase.css.js.map +1 -1
  351. package/dist/generated/themes/Tag.css.js +1 -1
  352. package/dist/generated/themes/Tag.css.js.map +1 -1
  353. package/dist/generated/themes/Text.css.js +1 -1
  354. package/dist/generated/themes/Text.css.js.map +1 -1
  355. package/dist/generated/themes/TextArea.css.js +1 -1
  356. package/dist/generated/themes/TextArea.css.js.map +1 -1
  357. package/dist/generated/themes/TimePicker.css.js +1 -1
  358. package/dist/generated/themes/TimePicker.css.js.map +1 -1
  359. package/dist/generated/themes/Title.css.js +1 -1
  360. package/dist/generated/themes/Title.css.js.map +1 -1
  361. package/dist/generated/themes/Toast.css.js +1 -1
  362. package/dist/generated/themes/Toast.css.js.map +1 -1
  363. package/dist/generated/themes/ToggleButton.css.js +1 -1
  364. package/dist/generated/themes/ToggleButton.css.js.map +1 -1
  365. package/dist/generated/themes/Token.css.js +1 -1
  366. package/dist/generated/themes/Token.css.js.map +1 -1
  367. package/dist/generated/themes/Tokenizer.css.js +1 -1
  368. package/dist/generated/themes/Tokenizer.css.js.map +1 -1
  369. package/dist/generated/themes/TokenizerPopover.css.js +1 -1
  370. package/dist/generated/themes/TokenizerPopover.css.js.map +1 -1
  371. package/dist/generated/themes/Toolbar.css.js +1 -1
  372. package/dist/generated/themes/Toolbar.css.js.map +1 -1
  373. package/dist/generated/themes/ToolbarPopover.css.js +1 -1
  374. package/dist/generated/themes/ToolbarPopover.css.js.map +1 -1
  375. package/dist/generated/themes/TreeItem.css.js +1 -1
  376. package/dist/generated/themes/TreeItem.css.js.map +1 -1
  377. package/dist/generated/themes/ValueStateMessage.css.js +1 -1
  378. package/dist/generated/themes/ValueStateMessage.css.js.map +1 -1
  379. package/dist/generated/themes/YearPicker.css.js +1 -1
  380. package/dist/generated/themes/YearPicker.css.js.map +1 -1
  381. package/dist/generated/themes/sap_fiori_3/parameters-bundle.css.js +1 -1
  382. package/dist/generated/themes/sap_fiori_3/parameters-bundle.css.js.map +1 -1
  383. package/dist/generated/themes/sap_fiori_3_dark/parameters-bundle.css.js +1 -1
  384. package/dist/generated/themes/sap_fiori_3_dark/parameters-bundle.css.js.map +1 -1
  385. package/dist/generated/themes/sap_fiori_3_hcb/parameters-bundle.css.js +1 -1
  386. package/dist/generated/themes/sap_fiori_3_hcb/parameters-bundle.css.js.map +1 -1
  387. package/dist/generated/themes/sap_fiori_3_hcw/parameters-bundle.css.js +1 -1
  388. package/dist/generated/themes/sap_fiori_3_hcw/parameters-bundle.css.js.map +1 -1
  389. package/dist/generated/themes/sap_horizon/parameters-bundle.css.js +1 -1
  390. package/dist/generated/themes/sap_horizon/parameters-bundle.css.js.map +1 -1
  391. package/dist/generated/themes/sap_horizon_dark/parameters-bundle.css.js +1 -1
  392. package/dist/generated/themes/sap_horizon_dark/parameters-bundle.css.js.map +1 -1
  393. package/dist/generated/themes/sap_horizon_dark_exp/parameters-bundle.css.js +1 -1
  394. package/dist/generated/themes/sap_horizon_dark_exp/parameters-bundle.css.js.map +1 -1
  395. package/dist/generated/themes/sap_horizon_exp/parameters-bundle.css.js +1 -1
  396. package/dist/generated/themes/sap_horizon_exp/parameters-bundle.css.js.map +1 -1
  397. package/dist/generated/themes/sap_horizon_hcb/parameters-bundle.css.js +1 -1
  398. package/dist/generated/themes/sap_horizon_hcb/parameters-bundle.css.js.map +1 -1
  399. package/dist/generated/themes/sap_horizon_hcb_exp/parameters-bundle.css.js +1 -1
  400. package/dist/generated/themes/sap_horizon_hcb_exp/parameters-bundle.css.js.map +1 -1
  401. package/dist/generated/themes/sap_horizon_hcw/parameters-bundle.css.js +1 -1
  402. package/dist/generated/themes/sap_horizon_hcw/parameters-bundle.css.js.map +1 -1
  403. package/dist/generated/themes/sap_horizon_hcw_exp/parameters-bundle.css.js +1 -1
  404. package/dist/generated/themes/sap_horizon_hcw_exp/parameters-bundle.css.js.map +1 -1
  405. package/dist/vscode.html-custom-data.json +27 -15
  406. package/dist/web-types.json +80 -29
  407. package/package.json +9 -9
  408. package/src/ColorPalettePopover.hbs +1 -1
  409. package/src/ComboBoxPopover.hbs +5 -3
  410. package/src/Dialog.hbs +1 -1
  411. package/src/ListItemBase.hbs +5 -1
  412. package/src/ListItemGroup.hbs +20 -11
  413. package/src/Option.hbs +5 -1
  414. package/src/OptionCustom.hbs +4 -0
  415. package/src/Popover.hbs +1 -1
  416. package/src/Popup.hbs +0 -1
  417. package/src/ResponsivePopover.hbs +1 -1
  418. package/src/TabInOverflow.hbs +2 -2
  419. package/src/Title.hbs +1 -1
  420. package/src/TokenizerPopover.hbs +1 -1
  421. package/src/themes/ListItemGroup.css +4 -0
  422. package/src/themes/PopupsCommon.css +0 -2
  423. package/src/themes/Tag.css +6 -12
  424. package/src/themes/Title.css +7 -13
  425. package/src/themes/base/PopupsCommon-parameters.css +0 -1
  426. package/src/themes/base/Tag-parameters.css +2 -2
  427. package/src/themes/sap_horizon/PopupsCommon-parameters.css +0 -1
  428. package/src/themes/sap_horizon/Tag-parameters.css +1 -2
  429. package/src/themes/sap_horizon_dark/PopupsCommon-parameters.css +0 -1
  430. package/src/themes/sap_horizon_dark/Tag-parameters.css +1 -2
  431. package/src/themes/sap_horizon_dark_exp/PopupsCommon-parameters.css +0 -1
  432. package/src/themes/sap_horizon_exp/PopupsCommon-parameters.css +0 -1
  433. package/src/themes/sap_horizon_hcb/PopupsCommon-parameters.css +0 -1
  434. package/src/themes/sap_horizon_hcb/Tag-parameters.css +1 -2
  435. package/src/themes/sap_horizon_hcb_exp/PopupsCommon-parameters.css +0 -1
  436. package/src/themes/sap_horizon_hcw/PopupsCommon-parameters.css +0 -1
  437. package/src/themes/sap_horizon_hcw/Tag-parameters.css +1 -2
  438. package/src/themes/sap_horizon_hcw_exp/PopupsCommon-parameters.css +0 -1
@@ -4233,7 +4233,7 @@
4233
4233
  },
4234
4234
  {
4235
4235
  "name": "valueStateMessage",
4236
- "description": "Defines the value state message that will be displayed as pop up under the component.\nThe value state message slot should contain only one root element.\n\n**Note:** If not specified, a default text (in the respective language) will be displayed.\n\n**Note:** The `valueStateMessage` would be displayed,\nwhen the `ui5-combobox` is in `Information`, `Warning` or `Error` value state."
4236
+ "description": "Defines the value state message that will be displayed as pop up under the component.\nThe value state message slot should contain only one root element.\n\n**Note:** If not specified, a default text (in the respective language) will be displayed.\n\n**Note:** The `valueStateMessage` would be displayed,\nwhen the `ui5-combobox` is in `Information`, `Critical` or `Negative` value state."
4237
4237
  },
4238
4238
  {
4239
4239
  "name": "icon",
@@ -4857,7 +4857,7 @@
4857
4857
  "slots": [
4858
4858
  {
4859
4859
  "name": "valueStateMessage",
4860
- "description": "Defines the value state message that will be displayed as pop up under the component.\n\n**Note:** If not specified, a default text (in the respective language) will be displayed.\n\n**Note:** The `valueStateMessage` would be displayed,\nwhen the component is in `Information`, `Warning` or `Error` value state."
4860
+ "description": "Defines the value state message that will be displayed as pop up under the component.\n\n**Note:** If not specified, a default text (in the respective language) will be displayed.\n\n**Note:** The `valueStateMessage` would be displayed,\nwhen the component is in `Information`, `Critical` or `Negative` value state."
4861
4861
  }
4862
4862
  ],
4863
4863
  "members": [
@@ -6782,7 +6782,7 @@
6782
6782
  "declarations": [
6783
6783
  {
6784
6784
  "kind": "class",
6785
- "description": "### Overview\nThe `ui5-dialog` component is used to temporarily display some information in a\nsize-limited window in front of the regular app screen.\nIt is used to prompt the user for an action or a confirmation.\nThe `ui5-dialog` interrupts the current app processing as it is the only focused UI element and\nthe main screen is dimmed/blocked.\nThe dialog combines concepts known from other technologies where the windows have\nnames such as dialog box, dialog window, pop-up, pop-up window, alert box, or message box.\n\nThe `ui5-dialog` is modal, which means that an user action is required before it is possible to return to the parent window.\nTo open multiple dialogs, each dialog element should be separate in the markup. This will ensure the correct modal behavior. Avoid nesting dialogs within each other.\nThe content of the `ui5-dialog` is fully customizable.\n\n### Structure\nA `ui5-dialog` consists of a header, content, and a footer for action buttons.\nThe `ui5-dialog` is usually displayed at the center of the screen.\nIts position can be changed by the user. To enable this, you need to set the property `draggable` accordingly.\n\n\n### Responsive Behavior\nThe `stretch` property can be used to stretch the\n`ui5-dialog` on full screen.\n\n**Note:** When a `ui5-bar` is used in the header or in the footer, you should remove the default dialog's paddings.\n\nFor more information see the sample \"Bar in Header/Footer\".\n\n### Keyboard Handling\n\n#### Basic Navigation\nWhen the `ui5-dialog` has the `draggable` property set to `true` and the header is focused, the user can move the dialog\nwith the following keyboard shortcuts:\n\n- [Up] or [Down] arrow keys - Move the dialog up/down.\n- [Left] or [Right] arrow keys - Move the dialog left/right.\n\n#### Resizing\nWhen the `ui5-dialog` has the `resizable` property set to `true` and the header is focused, the user can change the size of the dialog\nwith the following keyboard shortcuts:\n\n- [Shift] + [Up] or [Down] - Decrease/Increase the height of the dialog.\n- [Shift] + [Left] or [Right] - Decrease/Increase the width of the dialog.\n\n### ES6 Module Import\n\n`import \"@ui5/webcomponents/dist/Dialog\";`\n\n**Note:** We recommend placing popup-like components (`ui5-dialog` and `ui5-popover`)\noutside any other components. Preferably, the popup-like components should be placed\nin an upper level HTML element. Otherwise, in some cases the parent HTML elements can break\nthe position and/or z-index management of the popup-like components.\n\n**Note:** We don't recommend nesting popup-like components (`ui5-dialog`, `ui5-popover`).",
6785
+ "description": "### Overview\nThe `ui5-dialog` component is used to temporarily display some information in a\nsize-limited window in front of the regular app screen.\nIt is used to prompt the user for an action or a confirmation.\nThe `ui5-dialog` interrupts the current app processing as it is the only focused UI element and\nthe main screen is dimmed/blocked.\nThe dialog combines concepts known from other technologies where the windows have\nnames such as dialog box, dialog window, pop-up, pop-up window, alert box, or message box.\n\nThe `ui5-dialog` is modal, which means that a user action is required before it is possible to return to the parent window.\nTo open multiple dialogs, each dialog element should be separate in the markup. This will ensure the correct modal behavior. Avoid nesting dialogs within each other.\nThe content of the `ui5-dialog` is fully customizable.\n\n### Structure\nA `ui5-dialog` consists of a header, content, and a footer for action buttons.\nThe `ui5-dialog` is usually displayed at the center of the screen.\nIts position can be changed by the user. To enable this, you need to set the property `draggable` accordingly.\n\n\n### Responsive Behavior\nThe `stretch` property can be used to stretch the\n`ui5-dialog` on full screen.\n\n**Note:** When a `ui5-bar` is used in the header or in the footer, you should remove the default dialog's paddings.\n\nFor more information see the sample \"Bar in Header/Footer\".\n\n### Keyboard Handling\n\n#### Basic Navigation\nWhen the `ui5-dialog` has the `draggable` property set to `true` and the header is focused, the user can move the dialog\nwith the following keyboard shortcuts:\n\n- [Up] or [Down] arrow keys - Move the dialog up/down.\n- [Left] or [Right] arrow keys - Move the dialog left/right.\n\n#### Resizing\nWhen the `ui5-dialog` has the `resizable` property set to `true` and the header is focused, the user can change the size of the dialog\nwith the following keyboard shortcuts:\n\n- [Shift] + [Up] or [Down] - Decrease/Increase the height of the dialog.\n- [Shift] + [Left] or [Right] - Decrease/Increase the width of the dialog.\n\n### ES6 Module Import\n\n`import \"@ui5/webcomponents/dist/Dialog\";`",
6786
6786
  "name": "Dialog",
6787
6787
  "cssParts": [
6788
6788
  {
@@ -7237,7 +7237,7 @@
7237
7237
  },
7238
7238
  {
7239
7239
  "name": "valueStateMessage",
7240
- "description": "Defines the value state message that will be displayed as pop up under the component.\n\n**Note:** If not specified, a default text (in the respective language) will be displayed.\n\n**Note:** The `valueStateMessage` would be displayed,\nwhen the component is in `Information`, `Warning` or `Error` value state."
7240
+ "description": "Defines the value state message that will be displayed as pop up under the component.\n\n**Note:** If not specified, a default text (in the respective language) will be displayed.\n\n**Note:** The `valueStateMessage` would be displayed,\nwhen the component is in `Information`, `Critical` or `Negative` value state."
7241
7241
  }
7242
7242
  ],
7243
7243
  "members": [
@@ -7963,7 +7963,7 @@
7963
7963
  "declarations": [
7964
7964
  {
7965
7965
  "kind": "class",
7966
- "description": "### Overview\n\nThe `ui5-input` component allows the user to enter and edit text or numeric values in one line.\n\nAdditionally, you can provide `suggestionItems`,\nthat are displayed in a popover right under the input.\n\nThe text field can be editable or read-only (`readonly` property),\nand it can be enabled or disabled (`disabled` property).\nTo visualize semantic states, such as \"error\" or \"warning\", the `valueState` property is provided.\nWhen the user makes changes to the text, the change event is fired,\nwhich enables you to react on any text change.\n\n**Note:** If you are using the `ui5-input` as a single npm module,\ndon't forget to import the `InputSuggestions` module from\n\"@ui5/webcomponents/dist/features/InputSuggestions.js\"\nto enable the suggestions functionality.\n\n### Keyboard Handling\nThe `ui5-input` provides the following keyboard shortcuts:\n\n- [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.\n- [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.\n- [Down] - Focuses the next matching item in the suggestion list. Selection-change event is fired.\n- [Up] - Focuses the previous matching item in the suggestion list. Selection-change event is fired.\n- [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.\n- [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.\n- [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.\n- [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.\n\n### ES6 Module Import\n\n`import \"@ui5/webcomponents/dist/Input.js\";`\n\n`import \"@ui5/webcomponents/dist/features/InputSuggestions.js\";` (optional - for input suggestions support)",
7966
+ "description": "### Overview\n\nThe `ui5-input` component allows the user to enter and edit text or numeric values in one line.\n\nAdditionally, you can provide `suggestionItems`,\nthat are displayed in a popover right under the input.\n\nThe text field can be editable or read-only (`readonly` property),\nand it can be enabled or disabled (`disabled` property).\nTo visualize semantic states, such as \"Negative\" or \"Critical\", the `valueState` property is provided.\nWhen the user makes changes to the text, the change event is fired,\nwhich enables you to react on any text change.\n\n**Note:** If you are using the `ui5-input` as a single npm module,\ndon't forget to import the `InputSuggestions` module from\n\"@ui5/webcomponents/dist/features/InputSuggestions.js\"\nto enable the suggestions functionality.\n\n### Keyboard Handling\nThe `ui5-input` provides the following keyboard shortcuts:\n\n- [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.\n- [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.\n- [Down] - Focuses the next matching item in the suggestion list. Selection-change event is fired.\n- [Up] - Focuses the previous matching item in the suggestion list. Selection-change event is fired.\n- [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.\n- [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.\n- [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.\n- [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.\n\n### ES6 Module Import\n\n`import \"@ui5/webcomponents/dist/Input.js\";`\n\n`import \"@ui5/webcomponents/dist/features/InputSuggestions.js\";` (optional - for input suggestions support)",
7967
7967
  "name": "Input",
7968
7968
  "slots": [
7969
7969
  {
@@ -7976,7 +7976,7 @@
7976
7976
  },
7977
7977
  {
7978
7978
  "name": "valueStateMessage",
7979
- "description": "Defines the value state message that will be displayed as pop up under the component.\nThe value state message slot should contain only one root element.\n\n**Note:** If not specified, a default text (in the respective language) will be displayed.\n\n**Note:** The `valueStateMessage` would be displayed,\nwhen the component is in `Information`, `Warning` or `Error` value state.\n\n**Note:** If the component has `suggestionItems`,\nthe `valueStateMessage` would be displayed as part of the same popover, if used on desktop, or dialog - on phone."
7979
+ "description": "Defines the value state message that will be displayed as pop up under the component.\nThe value state message slot should contain only one root element.\n\n**Note:** If not specified, a default text (in the respective language) will be displayed.\n\n**Note:** The `valueStateMessage` would be displayed,\nwhen the component is in `Information`, `Critical` or `Negative` value state.\n\n**Note:** If the component has `suggestionItems`,\nthe `valueStateMessage` would be displayed as part of the same popover, if used on desktop, or dialog - on phone."
7980
7980
  }
7981
7981
  ],
7982
7982
  "members": [
@@ -9830,6 +9830,36 @@
9830
9830
  "default": "undefined"
9831
9831
  }
9832
9832
  ],
9833
+ "events": [
9834
+ {
9835
+ "name": "move-over",
9836
+ "type": {
9837
+ "text": "CustomEvent<ListItemGroupMoveEventDetail>",
9838
+ "references": [
9839
+ {
9840
+ "name": "ListItemGroupMoveEventDetail",
9841
+ "package": "@ui5/webcomponents",
9842
+ "module": "dist/ListItemGroup.js"
9843
+ }
9844
+ ]
9845
+ },
9846
+ "description": "Fired when a movable list item is moved over a potential drop target during a dragging operation.\n\nIf the new position is valid, prevent the default action of the event using `preventDefault()`."
9847
+ },
9848
+ {
9849
+ "name": "move",
9850
+ "type": {
9851
+ "text": "CustomEvent<ListItemGroupMoveEventDetail>",
9852
+ "references": [
9853
+ {
9854
+ "name": "ListItemGroupMoveEventDetail",
9855
+ "package": "@ui5/webcomponents",
9856
+ "module": "dist/ListItemGroup.js"
9857
+ }
9858
+ ]
9859
+ },
9860
+ "description": "Fired when a movable list item is dropped onto a drop target.\n\n**Note:** `move` event is fired only if there was a preceding `move-over` with prevented default action."
9861
+ }
9862
+ ],
9833
9863
  "attributes": [
9834
9864
  {
9835
9865
  "description": "Defines the header text of the <code>ui5-li-group</code>.",
@@ -11117,7 +11147,7 @@
11117
11147
  },
11118
11148
  {
11119
11149
  "name": "valueStateMessage",
11120
- "description": "Defines the value state message that will be displayed as pop up under the component.\nThe value state message slot should contain only one root element.\n\n**Note:** If not specified, a default text (in the respective language) will be displayed.\n\n**Note:** The `valueStateMessage` would be displayed,\nwhen the component is in `Information`, `Warning` or `Error` value state."
11150
+ "description": "Defines the value state message that will be displayed as pop up under the component.\nThe value state message slot should contain only one root element.\n\n**Note:** If not specified, a default text (in the respective language) will be displayed.\n\n**Note:** The `valueStateMessage` would be displayed,\nwhen the component is in `Information`, `Critical` or `Negative` value state."
11121
11151
  }
11122
11152
  ],
11123
11153
  "members": [
@@ -12777,7 +12807,7 @@
12777
12807
  "declarations": [
12778
12808
  {
12779
12809
  "kind": "class",
12780
- "description": "### Overview\n\nThe `ui5-popover` component displays additional information for an object\nin a compact way and without leaving the page.\nThe Popover can contain various UI elements, such as fields, tables, images, and charts.\nIt can also include actions in the footer.\n\n### Structure\n\nThe popover has three main areas:\n\n- Header (optional)\n- Content\n- Footer (optional)\n\n**Note:** The `ui5-popover` is closed when the user clicks\nor taps outside the popover\nor selects an action within the popover. You can prevent this with the\n`modal` property.\n\n### ES6 Module Import\n\n`import \"@ui5/webcomponents/dist/Popover.js\";`\n\n**Note: ** We recommend placing popup-like components (`ui5-dialog` and `ui5-popover`)\noutside any other components. Preferably, the popup-like components should be placed\nin an upper level HTML element. Otherwise, in some cases the parent HTML elements can break\nthe position and/or z-index management of the popup-like components.\n\n**Note:** We don't recommend nesting popup-like components (`ui5-dialog`, `ui5-popover`).",
12810
+ "description": "### Overview\n\nThe `ui5-popover` component displays additional information for an object\nin a compact way and without leaving the page.\nThe Popover can contain various UI elements, such as fields, tables, images, and charts.\nIt can also include actions in the footer.\n\n### Structure\n\nThe popover has three main areas:\n\n- Header (optional)\n- Content\n- Footer (optional)\n\n**Note:** The `ui5-popover` is closed when the user clicks\nor taps outside the popover\nor selects an action within the popover. You can prevent this with the\n`modal` property.\n\n### ES6 Module Import\n\n`import \"@ui5/webcomponents/dist/Popover.js\";`",
12781
12811
  "name": "Popover",
12782
12812
  "cssParts": [
12783
12813
  {
@@ -13279,7 +13309,7 @@
13279
13309
  "declarations": [
13280
13310
  {
13281
13311
  "kind": "class",
13282
- "description": "### Overview\nBase class for all popup Web Components.\n\nIf you need to create your own popup-like custom UI5 Web Components, it is highly recommended that you extend\nat least Popup in order to have consistency with other popups in terms of modal behavior and z-index management.\n\n1. The Popup class handles modality:\n - The \"isModal\" getter can be overridden by derivatives to provide their own conditions when they are modal or not\n - Derivatives may call the \"blockPageScrolling\" and \"unblockPageScrolling\" static methods to temporarily remove scrollbars on the html element\n - Derivatives may call the \"openPopup\" and \"closePopup\" methods which handle focus, manage the popup registry and for modal popups, manage the blocking layer\n\n 2. Provides blocking layer (relevant for modal popups only):\n - It is in the static area\n - Controlled by the \"open\" and \"close\" methods\n\n3. The Popup class \"traps\" focus:\n - Derivatives may call the \"applyInitialFocus\" method (usually when opening, to transfer focus inside the popup)\n\n4. The Popup class automatically assigns \"z-index\"\n - Each time a popup is opened, it gets a higher than the previously opened popup z-index\n\n5. The template of this component exposes two inline partials you can override in derivatives:\n - beforeContent (upper part of the box, useful for header/title/close button)\n - afterContent (lower part, useful for footer/action buttons)",
13312
+ "description": "### Overview\nBase class for all popup Web Components.\n\nIf you need to create your own popup-like custom UI5 Web Components.\n\n1. The Popup class handles modality:\n - The \"isModal\" getter can be overridden by derivatives to provide their own conditions when they are modal or not\n - Derivatives may call the \"blockPageScrolling\" and \"unblockPageScrolling\" static methods to temporarily remove scrollbars on the html element\n - Derivatives may call the \"openPopup\" and \"closePopup\" methods which handle focus, manage the popup registry and for modal popups, manage the blocking layer\n\n 2. Provides blocking layer (relevant for modal popups only):\n - Controlled by the \"open\" and \"close\" methods\n\n3. The Popup class \"traps\" focus:\n - Derivatives may call the \"applyInitialFocus\" method (usually when opening, to transfer focus inside the popup)\n\n4. The template of this component exposes two inline partials you can override in derivatives:\n - beforeContent (upper part of the box, useful for header/title/close button)\n - afterContent (lower part, useful for footer/action buttons)",
13283
13313
  "name": "Popup",
13284
13314
  "slots": [
13285
13315
  {
@@ -15379,7 +15409,7 @@
15379
15409
  },
15380
15410
  {
15381
15411
  "name": "valueStateMessage",
15382
- "description": "Defines the value state message that will be displayed as pop up under the component.\n\n**Note:** If not specified, a default text (in the respective language) will be displayed.\n\n**Note:** The `valueStateMessage` would be displayed,\nwhen the component is in `Information`, `Warning` or `Error` value state.\n\n**Note:** If the component has `suggestionItems`,\nthe `valueStateMessage` would be displayed as part of the same popover, if used on desktop, or dialog - on phone."
15412
+ "description": "Defines the value state message that will be displayed as pop up under the component.\n\n**Note:** If not specified, a default text (in the respective language) will be displayed.\n\n**Note:** The `valueStateMessage` would be displayed,\nwhen the component is in `Information`, `Critical` or `Negative` value state.\n\n**Note:** If the component has `suggestionItems`,\nthe `valueStateMessage` would be displayed as part of the same popover, if used on desktop, or dialog - on phone."
15383
15413
  },
15384
15414
  {
15385
15415
  "name": "label",
@@ -16466,7 +16496,7 @@
16466
16496
  "slots": [
16467
16497
  {
16468
16498
  "name": "valueStateMessage",
16469
- "description": "Defines the value state message that will be displayed as pop up under the component.\n\n**Note:** If not specified, a default text (in the respective language) will be displayed.\n\n**Note:** The `valueStateMessage` would be displayed,\nwhen the component is in `Information`, `Warning` or `Error` value state."
16499
+ "description": "Defines the value state message that will be displayed as pop up under the component.\n\n**Note:** If not specified, a default text (in the respective language) will be displayed.\n\n**Note:** The `valueStateMessage` would be displayed,\nwhen the component is in `Information`, `Critical` or `Negative` value state."
16470
16500
  }
16471
16501
  ],
16472
16502
  "members": [
@@ -16999,6 +17029,44 @@
16999
17029
  "module": "dist/ListItemGroup.js"
17000
17030
  }
17001
17031
  }
17032
+ ],
17033
+ "events": [
17034
+ {
17035
+ "name": "move-over",
17036
+ "type": {
17037
+ "text": "CustomEvent<ListItemGroupMoveEventDetail>",
17038
+ "references": [
17039
+ {
17040
+ "name": "ListItemGroupMoveEventDetail",
17041
+ "package": "@ui5/webcomponents",
17042
+ "module": "dist/ListItemGroup.js"
17043
+ }
17044
+ ]
17045
+ },
17046
+ "description": "Fired when a movable list item is moved over a potential drop target during a dragging operation.\n\nIf the new position is valid, prevent the default action of the event using `preventDefault()`.",
17047
+ "inheritedFrom": {
17048
+ "name": "ListItemGroup",
17049
+ "module": "dist/ListItemGroup.js"
17050
+ }
17051
+ },
17052
+ {
17053
+ "name": "move",
17054
+ "type": {
17055
+ "text": "CustomEvent<ListItemGroupMoveEventDetail>",
17056
+ "references": [
17057
+ {
17058
+ "name": "ListItemGroupMoveEventDetail",
17059
+ "package": "@ui5/webcomponents",
17060
+ "module": "dist/ListItemGroup.js"
17061
+ }
17062
+ ]
17063
+ },
17064
+ "description": "Fired when a movable list item is dropped onto a drop target.\n\n**Note:** `move` event is fired only if there was a preceding `move-over` with prevented default action.",
17065
+ "inheritedFrom": {
17066
+ "name": "ListItemGroup",
17067
+ "module": "dist/ListItemGroup.js"
17068
+ }
17069
+ }
17002
17070
  ]
17003
17071
  }
17004
17072
  ],
@@ -18951,7 +19019,7 @@
18951
19019
  ]
18952
19020
  },
18953
19021
  "default": "\"None\"",
18954
- "description": "Defines the value state of the component.\n\n**Note:** If `maxlength` property is set,\nthe component turns into \"Warning\" state once the characters exceeds the limit.\nIn this case, only the \"Error\" state is considered and can be applied.",
19022
+ "description": "Defines the value state of the component.\n\n**Note:** If `maxlength` property is set,\nthe component turns into \"Critical\" state once the characters exceeds the limit.\nIn this case, only the \"Negative\" state is considered and can be applied.",
18955
19023
  "privacy": "public"
18956
19024
  },
18957
19025
  {
@@ -19112,7 +19180,7 @@
19112
19180
  }
19113
19181
  },
19114
19182
  {
19115
- "description": "Defines the value state of the component.\n\n**Note:** If `maxlength` property is set,\nthe component turns into \"Warning\" state once the characters exceeds the limit.\nIn this case, only the \"Error\" state is considered and can be applied.",
19183
+ "description": "Defines the value state of the component.\n\n**Note:** If `maxlength` property is set,\nthe component turns into \"Critical\" state once the characters exceeds the limit.\nIn this case, only the \"Negative\" state is considered and can be applied.",
19116
19184
  "name": "value-state",
19117
19185
  "default": "\"None\"",
19118
19186
  "fieldName": "valueState",
@@ -19232,7 +19300,7 @@
19232
19300
  "slots": [
19233
19301
  {
19234
19302
  "name": "valueStateMessage",
19235
- "description": "Defines the value state message that will be displayed as pop up under the `ui5-time-picker`.\n\n**Note:** If not specified, a default text (in the respective language) will be displayed.\n\n**Note:** The `valueStateMessage` would be displayed,\nwhen the `ui5-time-picker` is in `Information`, `Warning` or `Error` value state."
19303
+ "description": "Defines the value state message that will be displayed as pop up under the `ui5-time-picker`.\n\n**Note:** If not specified, a default text (in the respective language) will be displayed.\n\n**Note:** The `valueStateMessage` would be displayed,\nwhen the `ui5-time-picker` is in `Information`, `Critical` or `Negative` value state."
19236
19304
  }
19237
19305
  ],
19238
19306
  "members": [
@@ -19694,7 +19762,24 @@
19694
19762
  ]
19695
19763
  },
19696
19764
  "default": "\"H2\"",
19697
- "description": "Defines the component level.\nAvailable options are: `\"H6\"` to `\"H1\"`.",
19765
+ "description": "Defines the component level.\nAvailable options are: `\"H6\"` to `\"H1\"`.\nThis property does not influence the style of the component.\nUse the property `size` for this purpose instead.",
19766
+ "privacy": "public"
19767
+ },
19768
+ {
19769
+ "kind": "field",
19770
+ "name": "size",
19771
+ "type": {
19772
+ "text": "TitleLevel",
19773
+ "references": [
19774
+ {
19775
+ "name": "TitleLevel",
19776
+ "package": "@ui5/webcomponents",
19777
+ "module": "dist/types/TitleLevel.js"
19778
+ }
19779
+ ]
19780
+ },
19781
+ "default": "\"H5\"",
19782
+ "description": "Defines the visual appearance of the title.\nAvailable options are: `\"H6\"` to `\"H1\"`.",
19698
19783
  "privacy": "public"
19699
19784
  }
19700
19785
  ],
@@ -19709,13 +19794,22 @@
19709
19794
  }
19710
19795
  },
19711
19796
  {
19712
- "description": "Defines the component level.\nAvailable options are: `\"H6\"` to `\"H1\"`.",
19797
+ "description": "Defines the component level.\nAvailable options are: `\"H6\"` to `\"H1\"`.\nThis property does not influence the style of the component.\nUse the property `size` for this purpose instead.",
19713
19798
  "name": "level",
19714
19799
  "default": "\"H2\"",
19715
19800
  "fieldName": "level",
19716
19801
  "type": {
19717
19802
  "text": "\"H1\" | \"H2\" | \"H3\" | \"H4\" | \"H5\" | \"H6\""
19718
19803
  }
19804
+ },
19805
+ {
19806
+ "description": "Defines the visual appearance of the title.\nAvailable options are: `\"H6\"` to `\"H1\"`.",
19807
+ "name": "size",
19808
+ "default": "\"H5\"",
19809
+ "fieldName": "size",
19810
+ "type": {
19811
+ "text": "\"H1\" | \"H2\" | \"H3\" | \"H4\" | \"H5\" | \"H6\""
19812
+ }
19719
19813
  }
19720
19814
  ],
19721
19815
  "superclass": {
@@ -340,10 +340,13 @@ class Suggestions {
340
340
  *
341
341
  */
342
342
  _getItems() {
343
- return Array.from(this._getComponent().querySelectorAll("[ui5-suggestion-item], [ui5-suggestion-item-group], [ui5-suggestion-item-custom]"));
343
+ const suggestionComponent = this._getComponent();
344
+ return suggestionComponent.getSlottedNodes("suggestionItems").flatMap(item => {
345
+ return item.hasAttribute("ui5-suggestion-item-group") ? [item, ...item.items] : [item];
346
+ });
344
347
  }
345
348
  _getNonGroupItems() {
346
- return Array.from(this._getComponent().querySelectorAll("[ui5-suggestion-item], [ui5-suggestion-item-custom]"));
349
+ return this._getItems().filter(item => !item.hasAttribute("ui5-suggestion-item-group"));
347
350
  }
348
351
  _getComponent() {
349
352
  return this.component;
@@ -1 +1 @@
1
- {"version":3,"file":"InputSuggestions.js","sourceRoot":"","sources":["../../src/features/InputSuggestions.ts"],"names":[],"mappings":"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","sourcesContent":["import type UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport { registerFeature } from \"@ui5/webcomponents-base/dist/FeaturesRegistry.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport { getI18nBundle } from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport generateHighlightedMarkup from \"@ui5/webcomponents-base/dist/util/generateHighlightedMarkup.js\";\nimport List from \"../List.js\";\nimport type { ListItemClickEventDetail, ListSelectionChangeEventDetail } from \"../List.js\";\nimport type ResponsivePopover from \"../ResponsivePopover.js\";\nimport SuggestionItem from \"../SuggestionItem.js\";\nimport Button from \"../Button.js\";\nimport Icon from \"../Icon.js\";\nimport type ListItemGroupHeader from \"../ListItemGroupHeader.js\";\n\nimport {\n\tLIST_ITEM_POSITION,\n\tLIST_ITEM_GROUP_HEADER,\n} from \"../generated/i18n/i18n-defaults.js\";\nimport type ListItemBase from \"../ListItemBase.js\";\nimport SuggestionItemGroup from \"../SuggestionItemGroup.js\";\nimport type { IInputSuggestionItem, IInputSuggestionItemSelectable } from \"../Input.js\";\n\ninterface SuggestionComponent extends UI5Element {\n\t_isValueStateFocused: boolean;\n\tfocused: boolean;\n\thasSuggestionItemSelected: boolean;\n\tvalue: string;\n\ttypedInValue: string;\n\thasValueStateMessage: boolean;\n\tsuggestionItems: Array<IInputSuggestionItem>;\n\topen: boolean;\n\tonItemSelected: (pressedItem: IInputSuggestionItemSelectable, keyboardUsed: boolean) => void;\n\tonItemSelect: (item: IInputSuggestionItem) => void;\n}\n\ntype SuggestionsAccInfo = {\n\tisGroup: boolean;\n\tcurrentPos?: number;\n\tlistSize?: number;\n\titemText: string;\n\tadditionalText?: string;\n}\n\n/**\n * A class to manage the `Input` suggestion items.\n * @class\n * @private\n */\nclass Suggestions {\n\tcomponent: SuggestionComponent;\n\tslotName: string;\n\thandleFocus: boolean;\n\thighlight: boolean;\n\tselectedItemIndex: number;\n\taccInfo?: SuggestionsAccInfo;\n\t_scrollContainer?: HTMLElement;\n\t_handledPress?: boolean;\n\tattachedAfterOpened?: boolean;\n\tattachedAfterClose?: boolean;\n\tstatic i18nBundle: I18nBundle;\n\tstatic SCROLL_STEP = 60;\n\n\tconstructor(component: SuggestionComponent, slotName: string, highlight: boolean, handleFocus: boolean) {\n\t\t// The component, that the suggestion would plug into.\n\t\tthis.component = component;\n\n\t\t// Defines the items` slot name.\n\t\tthis.slotName = slotName;\n\n\t\t// Defines, if the focus will be moved via the arrow keys.\n\t\tthis.handleFocus = handleFocus;\n\n\t\t// Defines, if the suggestions should highlight.\n\t\tthis.highlight = highlight;\n\n\t\t// An integer value to store the currently selected item position,\n\t\t// that changes due to user interaction.\n\t\tthis.selectedItemIndex = -1;\n\t}\n\n\tonUp(e: KeyboardEvent) {\n\t\te.preventDefault();\n\t\tthis._handleItemNavigation(false /* forward */);\n\t\treturn true;\n\t}\n\n\tonDown(e: KeyboardEvent) {\n\t\te.preventDefault();\n\t\tthis._handleItemNavigation(true /* forward */);\n\t\treturn true;\n\t}\n\n\tonSpace(e: KeyboardEvent) {\n\t\tif (this._isItemOnTarget()) {\n\t\t\te.preventDefault();\n\t\t\tthis.onItemSelected(this._selectedItem, true /* keyboardUsed */);\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n\n\tonEnter(e: KeyboardEvent) {\n\t\tif (this._isGroupItem) {\n\t\t\te.preventDefault();\n\t\t\treturn false;\n\t\t}\n\n\t\tif (this._isItemOnTarget()) {\n\t\t\tthis.onItemSelected(this._selectedItem, true /* keyboardUsed */);\n\t\t\treturn true;\n\t\t}\n\n\t\treturn false;\n\t}\n\n\tonPageUp(e: KeyboardEvent) {\n\t\te.preventDefault();\n\n\t\tconst isItemIndexValid = this.selectedItemIndex - 10 > -1;\n\n\t\tif (this._hasValueState && !isItemIndexValid) {\n\t\t\tthis._focusValueState();\n\t\t\treturn true;\n\t\t}\n\n\t\tthis._moveItemSelection(this.selectedItemIndex,\n\t\t\tisItemIndexValid ? this.selectedItemIndex -= 10 : this.selectedItemIndex = 0);\n\t\treturn true;\n\t}\n\n\tonPageDown(e: KeyboardEvent) {\n\t\te.preventDefault();\n\n\t\tconst items = this._getItems();\n\t\tconst lastItemIndex = items.length - 1;\n\t\tconst isItemIndexValid = this.selectedItemIndex + 10 <= lastItemIndex;\n\n\t\tif (this._hasValueState && !items) {\n\t\t\tthis._focusValueState();\n\t\t\treturn true;\n\t\t}\n\n\t\tthis._moveItemSelection(this.selectedItemIndex,\n\t\t\tisItemIndexValid ? this.selectedItemIndex += 10 : this.selectedItemIndex = lastItemIndex);\n\t\treturn true;\n\t}\n\n\tonHome(e: KeyboardEvent) {\n\t\te.preventDefault();\n\n\t\tif (this._hasValueState) {\n\t\t\tthis._focusValueState();\n\t\t\treturn true;\n\t\t}\n\n\t\tthis._moveItemSelection(this.selectedItemIndex, this.selectedItemIndex = 0);\n\t\treturn true;\n\t}\n\n\tonEnd(e: KeyboardEvent) {\n\t\te.preventDefault();\n\n\t\tconst lastItemIndex = this._getItems().length - 1;\n\n\t\tif (this._hasValueState && !lastItemIndex) {\n\t\t\tthis._focusValueState();\n\t\t\treturn true;\n\t\t}\n\n\t\tthis._moveItemSelection(this.selectedItemIndex, this.selectedItemIndex = lastItemIndex);\n\t\treturn true;\n\t}\n\n\tonTab() {\n\t\tif (this._isItemOnTarget()) {\n\t\t\tthis.onItemSelected(this._selectedItem, true);\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n\n\ttoggle(bToggle: boolean, options: { preventFocusRestore: boolean }) {\n\t\tconst toggle = bToggle !== undefined ? bToggle : !this.isOpened();\n\n\t\tif (toggle) {\n\t\t\tthis._getComponent().open = true;\n\t\t} else {\n\t\t\tthis.close(options.preventFocusRestore);\n\t\t}\n\t}\n\n\tget _selectedItem() {\n\t\treturn this._getNonGroupItems().find(item => item.selected) as SuggestionItem | null;\n\t}\n\n\t_isScrollable() {\n\t\tconst sc = this._getScrollContainer();\n\t\treturn sc.offsetHeight < sc.scrollHeight;\n\t}\n\n\tclose(preventFocusRestore = false) {\n\t\tconst selectedItem = this._getItems() && this._getItems()[this.selectedItemIndex];\n\n\t\tthis._getComponent().open = false;\n\t\tconst picker = this._getPicker();\n\t\tpicker.preventFocusRestore = preventFocusRestore;\n\t\tpicker.open = false;\n\n\t\tif (selectedItem && selectedItem.focused) {\n\t\t\tselectedItem.focused = false;\n\t\t}\n\t}\n\n\tupdateSelectedItemPosition(pos: number) {\n\t\tthis.selectedItemIndex = pos;\n\t}\n\n\tonItemSelected(selectedItem: IInputSuggestionItemSelectable | null, keyboardUsed: boolean) {\n\t\tconst item = selectedItem;\n\t\tconst nonGroupItems = this._getNonGroupItems();\n\n\t\tif (!item) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.accInfo = {\n\t\t\tisGroup: item.hasAttribute(\"ui5-suggestion-item-group\"),\n\t\t\tcurrentPos: nonGroupItems.indexOf(item) + 1,\n\t\t\tlistSize: nonGroupItems.length,\n\t\t\titemText: item.text || \"\",\n\t\t\tadditionalText: item.additionalText,\n\t\t};\n\n\t\tthis._getComponent().onItemSelected(item, keyboardUsed);\n\t\titem.selected = false;\n\t\titem.focused = false;\n\t\tthis._getComponent().open = false;\n\t}\n\n\tonItemSelect(item: IInputSuggestionItem) {\n\t\tthis._getComponent().onItemSelect(item);\n\t}\n\n\t/* Private methods */\n\t// Note: Split into two separate handlers\n\tonItemPress(e: CustomEvent<ListItemClickEventDetail | ListSelectionChangeEventDetail>) {\n\t\tlet pressedItem: ListItemBase; // SuggestionListItem\n\t\tconst isPressEvent = e.type === \"ui5-item-click\";\n\n\t\t// Only use the press e if the item is already selected, in all other cases we are listening for 'ui5-selection-change' from the list\n\t\t// Also we have to check if the selection-change is fired by the list's 'item-click' event handling, to avoid double handling on our side\n\t\tif ((isPressEvent && !(e.detail as ListItemClickEventDetail).item.selected) || (this._handledPress && !isPressEvent)) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (isPressEvent && (e.detail as ListItemClickEventDetail).item.selected) {\n\t\t\tpressedItem = (e.detail as ListItemClickEventDetail).item;\n\t\t\tthis._handledPress = true;\n\t\t} else {\n\t\t\tpressedItem = (e.detail as ListSelectionChangeEventDetail).selectedItems[0];\n\t\t}\n\n\t\tthis.onItemSelected(pressedItem as SuggestionItem, false /* keyboardUsed */);\n\t}\n\n\t_onOpen() {\n\t\tthis._applyFocus();\n\t}\n\n\t_onClose() {\n\t\tthis._handledPress = false;\n\t}\n\n\t_applyFocus() {\n\t\tif (this.selectedItemIndex) {\n\t\t\tthis._getItems()[this.selectedItemIndex]?.focus();\n\t\t}\n\t}\n\n\t_isItemOnTarget() {\n\t\treturn this.isOpened() && this.selectedItemIndex !== null && this.selectedItemIndex !== -1 && !this._isGroupItem;\n\t}\n\n\tget _isGroupItem() {\n\t\tconst items = this._getItems();\n\n\t\tif (!items || !items[this.selectedItemIndex]) {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn items[this.selectedItemIndex].hasAttribute(\"ui5-suggestion-item-group\");\n\t}\n\n\tisOpened() {\n\t\treturn !!(this._getPicker()?.open);\n\t}\n\n\t_handleItemNavigation(forward: boolean) {\n\t\tif (!this._getItems().length) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (forward) {\n\t\t\tthis._selectNextItem();\n\t\t} else {\n\t\t\tthis._selectPreviousItem();\n\t\t}\n\t}\n\n\t_selectNextItem() {\n\t\tconst itemsCount = this._getItems().length;\n\t\tconst previousSelectedIdx = this.selectedItemIndex;\n\n\t\tif (this._hasValueState && previousSelectedIdx === -1 && !this.component._isValueStateFocused) {\n\t\t\tthis._focusValueState();\n\t\t\treturn;\n\t\t}\n\n\t\tif ((previousSelectedIdx === -1 && !this._hasValueState) || this.component._isValueStateFocused) {\n\t\t\tthis._clearValueStateFocus();\n\t\t\tthis.selectedItemIndex = -1;\n\t\t}\n\n\t\tif (previousSelectedIdx !== -1 && previousSelectedIdx + 1 > itemsCount - 1) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._moveItemSelection(previousSelectedIdx, ++this.selectedItemIndex);\n\t}\n\n\t_selectPreviousItem() {\n\t\tconst items = this._getItems();\n\t\tconst previousSelectedIdx = this.selectedItemIndex;\n\n\t\tif (this._hasValueState && previousSelectedIdx === 0 && !this.component._isValueStateFocused) {\n\t\t\tthis.component.hasSuggestionItemSelected = false;\n\t\t\tthis.component._isValueStateFocused = true;\n\t\t\tthis.selectedItemIndex = 0;\n\n\t\t\titems[0].focused = false;\n\n\t\t\tif (items[0].hasAttribute(\"ui5-suggestion-item\")) {\n\t\t\t\t(items[0] as SuggestionItem).selected = false;\n\t\t\t}\n\n\t\t\treturn;\n\t\t}\n\n\t\tif (this.component._isValueStateFocused) {\n\t\t\tthis.component.focused = true;\n\t\t\tthis.component._isValueStateFocused = false;\n\t\t\tthis.selectedItemIndex = 0;\n\n\t\t\treturn;\n\t\t}\n\n\t\tif (previousSelectedIdx === -1 || previousSelectedIdx === null) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (previousSelectedIdx - 1 < 0) {\n\t\t\tif (items[previousSelectedIdx].hasAttribute(\"ui5-suggestion-item\") || items[previousSelectedIdx].hasAttribute(\"ui5-suggestion-item-custom\")) {\n\t\t\t\t(items[previousSelectedIdx] as SuggestionItem).selected = false;\n\t\t\t}\n\n\t\t\titems[previousSelectedIdx].focused = false;\n\n\t\t\tthis.component.focused = true;\n\t\t\tthis.component.hasSuggestionItemSelected = false;\n\t\t\tthis.selectedItemIndex -= 1;\n\t\t\treturn;\n\t\t}\n\n\t\tthis._moveItemSelection(previousSelectedIdx, --this.selectedItemIndex);\n\t}\n\n\t_moveItemSelection(previousIdx: number, nextIdx: number) {\n\t\tconst items = this._getItems();\n\t\tconst currentItem = items[nextIdx];\n\t\tconst previousItem = items[previousIdx];\n\t\tconst nonGroupItems = this._getNonGroupItems();\n\t\tconst isGroupItem = currentItem.hasAttribute(\"ui5-suggestion-item-group\");\n\n\t\tif (!currentItem) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.component.focused = false;\n\t\tthis._clearValueStateFocus();\n\n\t\tconst selectedItem = this._getItems()[this.selectedItemIndex];\n\n\t\tthis.accInfo = {\n\t\t\tisGroup: isGroupItem,\n\t\t\tcurrentPos: items.indexOf(currentItem) + 1,\n\t\t\titemText: (isGroupItem ? (selectedItem as SuggestionItemGroup).headerText : (selectedItem as IInputSuggestionItemSelectable).text) || \"\",\n\t\t};\n\n\t\tif (currentItem.hasAttribute(\"ui5-suggestion-item\") || currentItem.hasAttribute(\"ui5-suggestion-item-custom\")) {\n\t\t\tthis.accInfo.additionalText = (currentItem as IInputSuggestionItemSelectable).additionalText || \"\";\n\t\t\tthis.accInfo.currentPos = nonGroupItems.indexOf(currentItem as IInputSuggestionItemSelectable) + 1;\n\t\t\tthis.accInfo.listSize = nonGroupItems.length;\n\t\t}\n\n\t\tif (previousItem) {\n\t\t\tpreviousItem.focused = false;\n\t\t}\n\t\tif (previousItem?.hasAttribute(\"ui5-suggestion-item\") || previousItem?.hasAttribute(\"ui5-suggestion-item-custom\")) {\n\t\t\t(previousItem as IInputSuggestionItemSelectable).selected = false;\n\t\t}\n\n\t\tif (currentItem) {\n\t\t\tcurrentItem.focused = true;\n\n\t\t\tif (!isGroupItem) {\n\t\t\t\t(currentItem as IInputSuggestionItemSelectable).selected = true;\n\t\t\t}\n\n\t\t\tif (this.handleFocus) {\n\t\t\t\tcurrentItem.focus();\n\t\t\t}\n\t\t}\n\n\t\tthis.component.hasSuggestionItemSelected = true;\n\t\tthis.onItemSelect(currentItem);\n\n\t\tif (!this._isItemIntoView(currentItem)) {\n\t\t\tconst itemRef = this._isGroupItem ? (currentItem.shadowRoot!.querySelector(\"[ui5-li-group-header]\") as ListItemGroupHeader)! : currentItem;\n\t\t\tthis._scrollItemIntoView(itemRef);\n\t\t}\n\t}\n\n\t_deselectItems() {\n\t\tconst items = this._getItems();\n\t\titems.forEach(item => {\n\t\t\tif (item.hasAttribute(\"ui5-suggestion-item\")) {\n\t\t\t\t(item as SuggestionItem).selected = false;\n\t\t\t}\n\n\t\t\titem.focused = false;\n\t\t});\n\t}\n\n\t_clearItemFocus() {\n\t\tconst focusedItem = this._getItems().find(item => item.focused);\n\n\t\tif (focusedItem) {\n\t\t\tfocusedItem.focused = false;\n\t\t}\n\t}\n\n\t_isItemIntoView(item: IInputSuggestionItem) {\n\t\tconst rectItem = item.getDomRef()!.getBoundingClientRect();\n\t\tconst rectInput = this._getComponent().getDomRef()!.getBoundingClientRect();\n\t\tconst windowHeight = (window.innerHeight || document.documentElement.clientHeight);\n\n\t\treturn (rectItem.top + Suggestions.SCROLL_STEP <= windowHeight) && (rectItem.top >= rectInput.top);\n\t}\n\n\t_scrollItemIntoView(item: IInputSuggestionItem) {\n\t\titem.scrollIntoView({\n\t\t\tbehavior: \"auto\",\n\t\t\tblock: \"nearest\",\n\t\t\tinline: \"nearest\",\n\t\t});\n\t}\n\n\t_getScrollContainer() {\n\t\tif (!this._scrollContainer) {\n\t\t\tthis._scrollContainer = this._getPicker()!.shadowRoot!.querySelector(\".ui5-popup-content\")!;\n\t\t}\n\n\t\treturn this._scrollContainer;\n\t}\n\n\t/**\n\t * Returns the items in 1D array.\n\t *\n\t */\n\t_getItems(): Array<IInputSuggestionItem> {\n\t\treturn Array.from(this._getComponent().querySelectorAll(\"[ui5-suggestion-item], [ui5-suggestion-item-group], [ui5-suggestion-item-custom]\"));\n\t}\n\n\t_getNonGroupItems(): Array<IInputSuggestionItemSelectable> {\n\t\treturn Array.from(this._getComponent().querySelectorAll(\"[ui5-suggestion-item], [ui5-suggestion-item-custom]\"));\n\t}\n\n\t_getComponent(): SuggestionComponent {\n\t\treturn this.component;\n\t}\n\n\t_getList() {\n\t\treturn this._getPicker().querySelector<List>(\"[ui5-list]\")!;\n\t}\n\n\t_getListWidth() {\n\t\treturn this._getList()?.offsetWidth;\n\t}\n\n\t_getPicker() {\n\t\treturn this._getComponent().shadowRoot!.querySelector<ResponsivePopover>(\"[ui5-responsive-popover]\")!;\n\t}\n\n\tget itemSelectionAnnounce() {\n\t\tif (!this.accInfo) {\n\t\t\treturn \"\";\n\t\t}\n\n\t\tif (this.accInfo.isGroup) {\n\t\t\treturn `${Suggestions.i18nBundle.getText(LIST_ITEM_GROUP_HEADER)} ${this.accInfo.itemText}`;\n\t\t}\n\n\t\tconst itemPositionText = Suggestions.i18nBundle.getText(LIST_ITEM_POSITION, this.accInfo.currentPos || 0, this.accInfo.listSize || 0);\n\n\t\treturn `${this.accInfo.additionalText} ${itemPositionText}`;\n\t}\n\n\thightlightInput(text: string, input: string) {\n\t\treturn generateHighlightedMarkup(text, input);\n\t}\n\n\tget _hasValueState() {\n\t\treturn this.component.hasValueStateMessage;\n\t}\n\n\t_focusValueState() {\n\t\tthis.component._isValueStateFocused = true;\n\t\tthis.component.focused = false;\n\t\tthis.component.hasSuggestionItemSelected = false;\n\t\tthis.selectedItemIndex = 0;\n\t\tthis.component.value = this.component.typedInValue;\n\n\t\tthis._deselectItems();\n\t}\n\n\t_clearValueStateFocus() {\n\t\tthis.component._isValueStateFocused = false;\n\t}\n\n\t_clearSelectedSuggestionAndaccInfo() {\n\t\tthis.accInfo = undefined;\n\t\tthis.selectedItemIndex = 0;\n\t}\n\n\tstatic get dependencies() {\n\t\treturn [\n\t\t\tSuggestionItem,\n\t\t\tSuggestionItemGroup,\n\t\t\tList,\n\t\t\tButton,\n\t\t\tIcon,\n\t\t];\n\t}\n\n\tstatic async init() {\n\t\tSuggestions.i18nBundle = await getI18nBundle(\"@ui5/webcomponents\");\n\t}\n}\n\n// Add suggestions support to the global features registry so that Input.js can use it\nregisterFeature(\"InputSuggestions\", Suggestions);\n\nexport default Suggestions;\n\nexport type {\n\tSuggestionComponent,\n};\n"]}
1
+ {"version":3,"file":"InputSuggestions.js","sourceRoot":"","sources":["../../src/features/InputSuggestions.ts"],"names":[],"mappings":"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","sourcesContent":["import type UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport { registerFeature } from \"@ui5/webcomponents-base/dist/FeaturesRegistry.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport { getI18nBundle } from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport generateHighlightedMarkup from \"@ui5/webcomponents-base/dist/util/generateHighlightedMarkup.js\";\nimport List from \"../List.js\";\nimport type { ListItemClickEventDetail, ListSelectionChangeEventDetail } from \"../List.js\";\nimport type ResponsivePopover from \"../ResponsivePopover.js\";\nimport SuggestionItem from \"../SuggestionItem.js\";\nimport Button from \"../Button.js\";\nimport Icon from \"../Icon.js\";\nimport type ListItemGroupHeader from \"../ListItemGroupHeader.js\";\n\nimport {\n\tLIST_ITEM_POSITION,\n\tLIST_ITEM_GROUP_HEADER,\n} from \"../generated/i18n/i18n-defaults.js\";\nimport type ListItemBase from \"../ListItemBase.js\";\nimport SuggestionItemGroup from \"../SuggestionItemGroup.js\";\nimport type { IInputSuggestionItem, IInputSuggestionItemSelectable } from \"../Input.js\";\n\ninterface SuggestionComponent extends UI5Element {\n\t_isValueStateFocused: boolean;\n\tfocused: boolean;\n\thasSuggestionItemSelected: boolean;\n\tvalue: string;\n\ttypedInValue: string;\n\thasValueStateMessage: boolean;\n\tsuggestionItems: Array<IInputSuggestionItem>;\n\topen: boolean;\n\tonItemSelected: (pressedItem: IInputSuggestionItemSelectable, keyboardUsed: boolean) => void;\n\tonItemSelect: (item: IInputSuggestionItem) => void;\n}\n\ntype SuggestionsAccInfo = {\n\tisGroup: boolean;\n\tcurrentPos?: number;\n\tlistSize?: number;\n\titemText: string;\n\tadditionalText?: string;\n}\n\n/**\n * A class to manage the `Input` suggestion items.\n * @class\n * @private\n */\nclass Suggestions {\n\tcomponent: SuggestionComponent;\n\tslotName: string;\n\thandleFocus: boolean;\n\thighlight: boolean;\n\tselectedItemIndex: number;\n\taccInfo?: SuggestionsAccInfo;\n\t_scrollContainer?: HTMLElement;\n\t_handledPress?: boolean;\n\tattachedAfterOpened?: boolean;\n\tattachedAfterClose?: boolean;\n\tstatic i18nBundle: I18nBundle;\n\tstatic SCROLL_STEP = 60;\n\n\tconstructor(component: SuggestionComponent, slotName: string, highlight: boolean, handleFocus: boolean) {\n\t\t// The component, that the suggestion would plug into.\n\t\tthis.component = component;\n\n\t\t// Defines the items` slot name.\n\t\tthis.slotName = slotName;\n\n\t\t// Defines, if the focus will be moved via the arrow keys.\n\t\tthis.handleFocus = handleFocus;\n\n\t\t// Defines, if the suggestions should highlight.\n\t\tthis.highlight = highlight;\n\n\t\t// An integer value to store the currently selected item position,\n\t\t// that changes due to user interaction.\n\t\tthis.selectedItemIndex = -1;\n\t}\n\n\tonUp(e: KeyboardEvent) {\n\t\te.preventDefault();\n\t\tthis._handleItemNavigation(false /* forward */);\n\t\treturn true;\n\t}\n\n\tonDown(e: KeyboardEvent) {\n\t\te.preventDefault();\n\t\tthis._handleItemNavigation(true /* forward */);\n\t\treturn true;\n\t}\n\n\tonSpace(e: KeyboardEvent) {\n\t\tif (this._isItemOnTarget()) {\n\t\t\te.preventDefault();\n\t\t\tthis.onItemSelected(this._selectedItem, true /* keyboardUsed */);\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n\n\tonEnter(e: KeyboardEvent) {\n\t\tif (this._isGroupItem) {\n\t\t\te.preventDefault();\n\t\t\treturn false;\n\t\t}\n\n\t\tif (this._isItemOnTarget()) {\n\t\t\tthis.onItemSelected(this._selectedItem, true /* keyboardUsed */);\n\t\t\treturn true;\n\t\t}\n\n\t\treturn false;\n\t}\n\n\tonPageUp(e: KeyboardEvent) {\n\t\te.preventDefault();\n\n\t\tconst isItemIndexValid = this.selectedItemIndex - 10 > -1;\n\n\t\tif (this._hasValueState && !isItemIndexValid) {\n\t\t\tthis._focusValueState();\n\t\t\treturn true;\n\t\t}\n\n\t\tthis._moveItemSelection(this.selectedItemIndex,\n\t\t\tisItemIndexValid ? this.selectedItemIndex -= 10 : this.selectedItemIndex = 0);\n\t\treturn true;\n\t}\n\n\tonPageDown(e: KeyboardEvent) {\n\t\te.preventDefault();\n\n\t\tconst items = this._getItems();\n\t\tconst lastItemIndex = items.length - 1;\n\t\tconst isItemIndexValid = this.selectedItemIndex + 10 <= lastItemIndex;\n\n\t\tif (this._hasValueState && !items) {\n\t\t\tthis._focusValueState();\n\t\t\treturn true;\n\t\t}\n\n\t\tthis._moveItemSelection(this.selectedItemIndex,\n\t\t\tisItemIndexValid ? this.selectedItemIndex += 10 : this.selectedItemIndex = lastItemIndex);\n\t\treturn true;\n\t}\n\n\tonHome(e: KeyboardEvent) {\n\t\te.preventDefault();\n\n\t\tif (this._hasValueState) {\n\t\t\tthis._focusValueState();\n\t\t\treturn true;\n\t\t}\n\n\t\tthis._moveItemSelection(this.selectedItemIndex, this.selectedItemIndex = 0);\n\t\treturn true;\n\t}\n\n\tonEnd(e: KeyboardEvent) {\n\t\te.preventDefault();\n\n\t\tconst lastItemIndex = this._getItems().length - 1;\n\n\t\tif (this._hasValueState && !lastItemIndex) {\n\t\t\tthis._focusValueState();\n\t\t\treturn true;\n\t\t}\n\n\t\tthis._moveItemSelection(this.selectedItemIndex, this.selectedItemIndex = lastItemIndex);\n\t\treturn true;\n\t}\n\n\tonTab() {\n\t\tif (this._isItemOnTarget()) {\n\t\t\tthis.onItemSelected(this._selectedItem, true);\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n\n\ttoggle(bToggle: boolean, options: { preventFocusRestore: boolean }) {\n\t\tconst toggle = bToggle !== undefined ? bToggle : !this.isOpened();\n\n\t\tif (toggle) {\n\t\t\tthis._getComponent().open = true;\n\t\t} else {\n\t\t\tthis.close(options.preventFocusRestore);\n\t\t}\n\t}\n\n\tget _selectedItem() {\n\t\treturn this._getNonGroupItems().find(item => item.selected) as SuggestionItem | null;\n\t}\n\n\t_isScrollable() {\n\t\tconst sc = this._getScrollContainer();\n\t\treturn sc.offsetHeight < sc.scrollHeight;\n\t}\n\n\tclose(preventFocusRestore = false) {\n\t\tconst selectedItem = this._getItems() && this._getItems()[this.selectedItemIndex];\n\n\t\tthis._getComponent().open = false;\n\t\tconst picker = this._getPicker();\n\t\tpicker.preventFocusRestore = preventFocusRestore;\n\t\tpicker.open = false;\n\n\t\tif (selectedItem && selectedItem.focused) {\n\t\t\tselectedItem.focused = false;\n\t\t}\n\t}\n\n\tupdateSelectedItemPosition(pos: number) {\n\t\tthis.selectedItemIndex = pos;\n\t}\n\n\tonItemSelected(selectedItem: IInputSuggestionItemSelectable | null, keyboardUsed: boolean) {\n\t\tconst item = selectedItem;\n\t\tconst nonGroupItems = this._getNonGroupItems();\n\n\t\tif (!item) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.accInfo = {\n\t\t\tisGroup: item.hasAttribute(\"ui5-suggestion-item-group\"),\n\t\t\tcurrentPos: nonGroupItems.indexOf(item) + 1,\n\t\t\tlistSize: nonGroupItems.length,\n\t\t\titemText: item.text || \"\",\n\t\t\tadditionalText: item.additionalText,\n\t\t};\n\n\t\tthis._getComponent().onItemSelected(item, keyboardUsed);\n\t\titem.selected = false;\n\t\titem.focused = false;\n\t\tthis._getComponent().open = false;\n\t}\n\n\tonItemSelect(item: IInputSuggestionItem) {\n\t\tthis._getComponent().onItemSelect(item);\n\t}\n\n\t/* Private methods */\n\t// Note: Split into two separate handlers\n\tonItemPress(e: CustomEvent<ListItemClickEventDetail | ListSelectionChangeEventDetail>) {\n\t\tlet pressedItem: ListItemBase; // SuggestionListItem\n\t\tconst isPressEvent = e.type === \"ui5-item-click\";\n\n\t\t// Only use the press e if the item is already selected, in all other cases we are listening for 'ui5-selection-change' from the list\n\t\t// Also we have to check if the selection-change is fired by the list's 'item-click' event handling, to avoid double handling on our side\n\t\tif ((isPressEvent && !(e.detail as ListItemClickEventDetail).item.selected) || (this._handledPress && !isPressEvent)) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (isPressEvent && (e.detail as ListItemClickEventDetail).item.selected) {\n\t\t\tpressedItem = (e.detail as ListItemClickEventDetail).item;\n\t\t\tthis._handledPress = true;\n\t\t} else {\n\t\t\tpressedItem = (e.detail as ListSelectionChangeEventDetail).selectedItems[0];\n\t\t}\n\n\t\tthis.onItemSelected(pressedItem as SuggestionItem, false /* keyboardUsed */);\n\t}\n\n\t_onOpen() {\n\t\tthis._applyFocus();\n\t}\n\n\t_onClose() {\n\t\tthis._handledPress = false;\n\t}\n\n\t_applyFocus() {\n\t\tif (this.selectedItemIndex) {\n\t\t\tthis._getItems()[this.selectedItemIndex]?.focus();\n\t\t}\n\t}\n\n\t_isItemOnTarget() {\n\t\treturn this.isOpened() && this.selectedItemIndex !== null && this.selectedItemIndex !== -1 && !this._isGroupItem;\n\t}\n\n\tget _isGroupItem() {\n\t\tconst items = this._getItems();\n\n\t\tif (!items || !items[this.selectedItemIndex]) {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn items[this.selectedItemIndex].hasAttribute(\"ui5-suggestion-item-group\");\n\t}\n\n\tisOpened() {\n\t\treturn !!(this._getPicker()?.open);\n\t}\n\n\t_handleItemNavigation(forward: boolean) {\n\t\tif (!this._getItems().length) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (forward) {\n\t\t\tthis._selectNextItem();\n\t\t} else {\n\t\t\tthis._selectPreviousItem();\n\t\t}\n\t}\n\n\t_selectNextItem() {\n\t\tconst itemsCount = this._getItems().length;\n\t\tconst previousSelectedIdx = this.selectedItemIndex;\n\n\t\tif (this._hasValueState && previousSelectedIdx === -1 && !this.component._isValueStateFocused) {\n\t\t\tthis._focusValueState();\n\t\t\treturn;\n\t\t}\n\n\t\tif ((previousSelectedIdx === -1 && !this._hasValueState) || this.component._isValueStateFocused) {\n\t\t\tthis._clearValueStateFocus();\n\t\t\tthis.selectedItemIndex = -1;\n\t\t}\n\n\t\tif (previousSelectedIdx !== -1 && previousSelectedIdx + 1 > itemsCount - 1) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._moveItemSelection(previousSelectedIdx, ++this.selectedItemIndex);\n\t}\n\n\t_selectPreviousItem() {\n\t\tconst items = this._getItems();\n\t\tconst previousSelectedIdx = this.selectedItemIndex;\n\n\t\tif (this._hasValueState && previousSelectedIdx === 0 && !this.component._isValueStateFocused) {\n\t\t\tthis.component.hasSuggestionItemSelected = false;\n\t\t\tthis.component._isValueStateFocused = true;\n\t\t\tthis.selectedItemIndex = 0;\n\n\t\t\titems[0].focused = false;\n\n\t\t\tif (items[0].hasAttribute(\"ui5-suggestion-item\")) {\n\t\t\t\t(items[0] as SuggestionItem).selected = false;\n\t\t\t}\n\n\t\t\treturn;\n\t\t}\n\n\t\tif (this.component._isValueStateFocused) {\n\t\t\tthis.component.focused = true;\n\t\t\tthis.component._isValueStateFocused = false;\n\t\t\tthis.selectedItemIndex = 0;\n\n\t\t\treturn;\n\t\t}\n\n\t\tif (previousSelectedIdx === -1 || previousSelectedIdx === null) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (previousSelectedIdx - 1 < 0) {\n\t\t\tif (items[previousSelectedIdx].hasAttribute(\"ui5-suggestion-item\") || items[previousSelectedIdx].hasAttribute(\"ui5-suggestion-item-custom\")) {\n\t\t\t\t(items[previousSelectedIdx] as SuggestionItem).selected = false;\n\t\t\t}\n\n\t\t\titems[previousSelectedIdx].focused = false;\n\n\t\t\tthis.component.focused = true;\n\t\t\tthis.component.hasSuggestionItemSelected = false;\n\t\t\tthis.selectedItemIndex -= 1;\n\t\t\treturn;\n\t\t}\n\n\t\tthis._moveItemSelection(previousSelectedIdx, --this.selectedItemIndex);\n\t}\n\n\t_moveItemSelection(previousIdx: number, nextIdx: number) {\n\t\tconst items = this._getItems();\n\t\tconst currentItem = items[nextIdx];\n\t\tconst previousItem = items[previousIdx];\n\t\tconst nonGroupItems = this._getNonGroupItems();\n\t\tconst isGroupItem = currentItem.hasAttribute(\"ui5-suggestion-item-group\");\n\n\t\tif (!currentItem) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.component.focused = false;\n\t\tthis._clearValueStateFocus();\n\n\t\tconst selectedItem = this._getItems()[this.selectedItemIndex];\n\n\t\tthis.accInfo = {\n\t\t\tisGroup: isGroupItem,\n\t\t\tcurrentPos: items.indexOf(currentItem) + 1,\n\t\t\titemText: (isGroupItem ? (selectedItem as SuggestionItemGroup).headerText : (selectedItem as IInputSuggestionItemSelectable).text) || \"\",\n\t\t};\n\n\t\tif (currentItem.hasAttribute(\"ui5-suggestion-item\") || currentItem.hasAttribute(\"ui5-suggestion-item-custom\")) {\n\t\t\tthis.accInfo.additionalText = (currentItem as IInputSuggestionItemSelectable).additionalText || \"\";\n\t\t\tthis.accInfo.currentPos = nonGroupItems.indexOf(currentItem as IInputSuggestionItemSelectable) + 1;\n\t\t\tthis.accInfo.listSize = nonGroupItems.length;\n\t\t}\n\n\t\tif (previousItem) {\n\t\t\tpreviousItem.focused = false;\n\t\t}\n\t\tif (previousItem?.hasAttribute(\"ui5-suggestion-item\") || previousItem?.hasAttribute(\"ui5-suggestion-item-custom\")) {\n\t\t\t(previousItem as IInputSuggestionItemSelectable).selected = false;\n\t\t}\n\n\t\tif (currentItem) {\n\t\t\tcurrentItem.focused = true;\n\n\t\t\tif (!isGroupItem) {\n\t\t\t\t(currentItem as IInputSuggestionItemSelectable).selected = true;\n\t\t\t}\n\n\t\t\tif (this.handleFocus) {\n\t\t\t\tcurrentItem.focus();\n\t\t\t}\n\t\t}\n\n\t\tthis.component.hasSuggestionItemSelected = true;\n\t\tthis.onItemSelect(currentItem);\n\n\t\tif (!this._isItemIntoView(currentItem)) {\n\t\t\tconst itemRef = this._isGroupItem ? (currentItem.shadowRoot!.querySelector(\"[ui5-li-group-header]\") as ListItemGroupHeader)! : currentItem;\n\t\t\tthis._scrollItemIntoView(itemRef);\n\t\t}\n\t}\n\n\t_deselectItems() {\n\t\tconst items = this._getItems();\n\t\titems.forEach(item => {\n\t\t\tif (item.hasAttribute(\"ui5-suggestion-item\")) {\n\t\t\t\t(item as SuggestionItem).selected = false;\n\t\t\t}\n\n\t\t\titem.focused = false;\n\t\t});\n\t}\n\n\t_clearItemFocus() {\n\t\tconst focusedItem = this._getItems().find(item => item.focused);\n\n\t\tif (focusedItem) {\n\t\t\tfocusedItem.focused = false;\n\t\t}\n\t}\n\n\t_isItemIntoView(item: IInputSuggestionItem) {\n\t\tconst rectItem = item.getDomRef()!.getBoundingClientRect();\n\t\tconst rectInput = this._getComponent().getDomRef()!.getBoundingClientRect();\n\t\tconst windowHeight = (window.innerHeight || document.documentElement.clientHeight);\n\n\t\treturn (rectItem.top + Suggestions.SCROLL_STEP <= windowHeight) && (rectItem.top >= rectInput.top);\n\t}\n\n\t_scrollItemIntoView(item: IInputSuggestionItem) {\n\t\titem.scrollIntoView({\n\t\t\tbehavior: \"auto\",\n\t\t\tblock: \"nearest\",\n\t\t\tinline: \"nearest\",\n\t\t});\n\t}\n\n\t_getScrollContainer() {\n\t\tif (!this._scrollContainer) {\n\t\t\tthis._scrollContainer = this._getPicker()!.shadowRoot!.querySelector(\".ui5-popup-content\")!;\n\t\t}\n\n\t\treturn this._scrollContainer;\n\t}\n\n\t/**\n\t * Returns the items in 1D array.\n\t *\n\t */\n\t_getItems(): Array<IInputSuggestionItem> {\n\t\tconst suggestionComponent = this._getComponent();\n\n\t\treturn suggestionComponent.getSlottedNodes<IInputSuggestionItem>(\"suggestionItems\").flatMap(item => {\n\t\t\treturn item.hasAttribute(\"ui5-suggestion-item-group\") ? [item, ...item.items!] : [item];\n\t\t});\n\t}\n\n\t_getNonGroupItems(): Array<IInputSuggestionItemSelectable> {\n\t\treturn this._getItems().filter(item => !item.hasAttribute(\"ui5-suggestion-item-group\")) as Array<IInputSuggestionItemSelectable>;\n\t}\n\n\t_getComponent(): SuggestionComponent {\n\t\treturn this.component;\n\t}\n\n\t_getList() {\n\t\treturn this._getPicker().querySelector<List>(\"[ui5-list]\")!;\n\t}\n\n\t_getListWidth() {\n\t\treturn this._getList()?.offsetWidth;\n\t}\n\n\t_getPicker() {\n\t\treturn this._getComponent().shadowRoot!.querySelector<ResponsivePopover>(\"[ui5-responsive-popover]\")!;\n\t}\n\n\tget itemSelectionAnnounce() {\n\t\tif (!this.accInfo) {\n\t\t\treturn \"\";\n\t\t}\n\n\t\tif (this.accInfo.isGroup) {\n\t\t\treturn `${Suggestions.i18nBundle.getText(LIST_ITEM_GROUP_HEADER)} ${this.accInfo.itemText}`;\n\t\t}\n\n\t\tconst itemPositionText = Suggestions.i18nBundle.getText(LIST_ITEM_POSITION, this.accInfo.currentPos || 0, this.accInfo.listSize || 0);\n\n\t\treturn `${this.accInfo.additionalText} ${itemPositionText}`;\n\t}\n\n\thightlightInput(text: string, input: string) {\n\t\treturn generateHighlightedMarkup(text, input);\n\t}\n\n\tget _hasValueState() {\n\t\treturn this.component.hasValueStateMessage;\n\t}\n\n\t_focusValueState() {\n\t\tthis.component._isValueStateFocused = true;\n\t\tthis.component.focused = false;\n\t\tthis.component.hasSuggestionItemSelected = false;\n\t\tthis.selectedItemIndex = 0;\n\t\tthis.component.value = this.component.typedInValue;\n\n\t\tthis._deselectItems();\n\t}\n\n\t_clearValueStateFocus() {\n\t\tthis.component._isValueStateFocused = false;\n\t}\n\n\t_clearSelectedSuggestionAndaccInfo() {\n\t\tthis.accInfo = undefined;\n\t\tthis.selectedItemIndex = 0;\n\t}\n\n\tstatic get dependencies() {\n\t\treturn [\n\t\t\tSuggestionItem,\n\t\t\tSuggestionItemGroup,\n\t\t\tList,\n\t\t\tButton,\n\t\t\tIcon,\n\t\t];\n\t}\n\n\tstatic async init() {\n\t\tSuggestions.i18nBundle = await getI18nBundle(\"@ui5/webcomponents\");\n\t}\n}\n\n// Add suggestions support to the global features registry so that Input.js can use it\nregisterFeature(\"InputSuggestions\", Suggestions);\n\nexport default Suggestions;\n\nexport type {\n\tSuggestionComponent,\n};\n"]}