@ui5/webcomponents 2.13.0-rc.0 → 2.13.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 (500) hide show
  1. package/CHANGELOG.md +23 -0
  2. package/dist/.tsbuildinfo +1 -1
  3. package/dist/ComboBox.d.ts +23 -6
  4. package/dist/ComboBox.js +128 -54
  5. package/dist/ComboBox.js.map +1 -1
  6. package/dist/ComboBoxPopoverTemplate.js +0 -1
  7. package/dist/ComboBoxPopoverTemplate.js.map +1 -1
  8. package/dist/ComboBoxTemplate.js +2 -1
  9. package/dist/ComboBoxTemplate.js.map +1 -1
  10. package/dist/FileUploader.d.ts +52 -13
  11. package/dist/FileUploader.js +165 -48
  12. package/dist/FileUploader.js.map +1 -1
  13. package/dist/FileUploaderPopoverTemplate.js +1 -3
  14. package/dist/FileUploaderPopoverTemplate.js.map +1 -1
  15. package/dist/FileUploaderTemplate.js +5 -4
  16. package/dist/FileUploaderTemplate.js.map +1 -1
  17. package/dist/Input.d.ts +19 -5
  18. package/dist/Input.js +115 -17
  19. package/dist/Input.js.map +1 -1
  20. package/dist/InputTemplate.js +2 -1
  21. package/dist/InputTemplate.js.map +1 -1
  22. package/dist/ListItemStandard.d.ts +12 -8
  23. package/dist/ListItemStandard.js +3 -8
  24. package/dist/ListItemStandard.js.map +1 -1
  25. package/dist/MultiComboBox.d.ts +20 -1
  26. package/dist/MultiComboBox.js +120 -20
  27. package/dist/MultiComboBox.js.map +1 -1
  28. package/dist/MultiComboBoxPopoverTemplate.js +1 -1
  29. package/dist/MultiComboBoxPopoverTemplate.js.map +1 -1
  30. package/dist/MultiComboBoxTemplate.js +2 -1
  31. package/dist/MultiComboBoxTemplate.js.map +1 -1
  32. package/dist/MultiInput.js +1 -1
  33. package/dist/MultiInput.js.map +1 -1
  34. package/dist/SplitButtonTemplate.js +1 -1
  35. package/dist/SplitButtonTemplate.js.map +1 -1
  36. package/dist/Tokenizer.js +4 -0
  37. package/dist/Tokenizer.js.map +1 -1
  38. package/dist/TokenizerPopoverTemplate.js +1 -1
  39. package/dist/TokenizerPopoverTemplate.js.map +1 -1
  40. package/dist/css/themes/Avatar.css +1 -1
  41. package/dist/css/themes/AvatarGroup.css +1 -1
  42. package/dist/css/themes/Bar.css +1 -1
  43. package/dist/css/themes/Breadcrumbs.css +1 -1
  44. package/dist/css/themes/BusyIndicator.css +1 -1
  45. package/dist/css/themes/Button.css +1 -1
  46. package/dist/css/themes/ButtonBadge.css +1 -1
  47. package/dist/css/themes/Calendar.css +1 -1
  48. package/dist/css/themes/CalendarHeader.css +1 -1
  49. package/dist/css/themes/CalendarLegend.css +1 -1
  50. package/dist/css/themes/CalendarLegendItem.css +1 -1
  51. package/dist/css/themes/Card.css +1 -1
  52. package/dist/css/themes/CardHeader.css +1 -1
  53. package/dist/css/themes/Carousel.css +1 -1
  54. package/dist/css/themes/CheckBox.css +1 -1
  55. package/dist/css/themes/ColorPalette.css +1 -1
  56. package/dist/css/themes/ColorPaletteItem.css +1 -1
  57. package/dist/css/themes/ColorPalettePopover.css +1 -1
  58. package/dist/css/themes/ColorPicker.css +1 -1
  59. package/dist/css/themes/ComboBox.css +1 -1
  60. package/dist/css/themes/ComboBoxItem.css +1 -1
  61. package/dist/css/themes/DatePicker.css +1 -1
  62. package/dist/css/themes/DateTimePickerPopover.css +1 -1
  63. package/dist/css/themes/DayPicker.css +1 -1
  64. package/dist/css/themes/Dialog.css +1 -1
  65. package/dist/css/themes/DynamicDateRange.css +1 -1
  66. package/dist/css/themes/DynamicDateRangePopover.css +1 -1
  67. package/dist/css/themes/FileUploader.css +1 -1
  68. package/dist/css/themes/Form.css +1 -1
  69. package/dist/css/themes/FormItem.css +1 -1
  70. package/dist/css/themes/FormItemSpan.css +1 -1
  71. package/dist/css/themes/GrowingButton.css +1 -1
  72. package/dist/css/themes/Icon.css +1 -1
  73. package/dist/css/themes/Input.css +1 -1
  74. package/dist/css/themes/InputIcon.css +1 -1
  75. package/dist/css/themes/InputSharedStyles.css +1 -1
  76. package/dist/css/themes/Link.css +1 -1
  77. package/dist/css/themes/List.css +1 -1
  78. package/dist/css/themes/ListItem.css +1 -1
  79. package/dist/css/themes/ListItemBase.css +1 -1
  80. package/dist/css/themes/ListItemCustom.css +1 -1
  81. package/dist/css/themes/ListItemGroup.css +1 -1
  82. package/dist/css/themes/ListItemGroupHeader.css +1 -1
  83. package/dist/css/themes/ListItemIcon.css +1 -1
  84. package/dist/css/themes/Menu.css +1 -1
  85. package/dist/css/themes/MenuItem.css +1 -1
  86. package/dist/css/themes/MessageStrip.css +1 -1
  87. package/dist/css/themes/MonthPicker.css +1 -1
  88. package/dist/css/themes/MultiComboBox.css +1 -1
  89. package/dist/css/themes/MultiComboBoxItem.css +1 -1
  90. package/dist/css/themes/MultiComboBoxPopover.css +1 -1
  91. package/dist/css/themes/MultiInput.css +1 -1
  92. package/dist/css/themes/OptionBase.css +1 -1
  93. package/dist/css/themes/Panel.css +1 -1
  94. package/dist/css/themes/Popover.css +1 -1
  95. package/dist/css/themes/PopupsCommon.css +1 -1
  96. package/dist/css/themes/ProgressIndicator.css +1 -1
  97. package/dist/css/themes/RadioButton.css +1 -1
  98. package/dist/css/themes/RangeSlider.css +1 -1
  99. package/dist/css/themes/RatingIndicator.css +1 -1
  100. package/dist/css/themes/ResponsivePopover.css +1 -1
  101. package/dist/css/themes/ResponsivePopoverCommon.css +1 -1
  102. package/dist/css/themes/SegmentedButton.css +1 -1
  103. package/dist/css/themes/SegmentedButtonItem.css +1 -1
  104. package/dist/css/themes/Select.css +1 -1
  105. package/dist/css/themes/SliderBase.css +1 -1
  106. package/dist/css/themes/SplitButton.css +1 -1
  107. package/dist/css/themes/StepInput.css +1 -1
  108. package/dist/css/themes/SuggestionItem.css +1 -1
  109. package/dist/css/themes/SuggestionItemCustom.css +1 -1
  110. package/dist/css/themes/Switch.css +1 -1
  111. package/dist/css/themes/TabContainer.css +1 -1
  112. package/dist/css/themes/TabInOverflow.css +1 -1
  113. package/dist/css/themes/TabInStrip.css +1 -1
  114. package/dist/css/themes/TabSemanticIcon.css +1 -1
  115. package/dist/css/themes/TabSeparatorInOverflow.css +1 -1
  116. package/dist/css/themes/TableCellBase.css +1 -1
  117. package/dist/css/themes/TableHeaderRow.css +1 -1
  118. package/dist/css/themes/TableRow.css +1 -1
  119. package/dist/css/themes/TableRowActionBase.css +1 -1
  120. package/dist/css/themes/TableRowBase.css +1 -1
  121. package/dist/css/themes/Tag.css +1 -1
  122. package/dist/css/themes/Text.css +1 -1
  123. package/dist/css/themes/TextArea.css +1 -1
  124. package/dist/css/themes/TimePicker.css +1 -1
  125. package/dist/css/themes/Toast.css +1 -1
  126. package/dist/css/themes/ToggleButton.css +1 -1
  127. package/dist/css/themes/Token.css +1 -1
  128. package/dist/css/themes/Tokenizer.css +1 -1
  129. package/dist/css/themes/TokenizerPopover.css +1 -1
  130. package/dist/css/themes/Toolbar.css +1 -1
  131. package/dist/css/themes/ToolbarPopover.css +1 -1
  132. package/dist/css/themes/ToolbarSeparator.css +1 -1
  133. package/dist/css/themes/TreeItem.css +1 -1
  134. package/dist/css/themes/ValueStateMessage.css +1 -1
  135. package/dist/css/themes/ValueStateVariables.css +1 -0
  136. package/dist/css/themes/YearPicker.css +1 -1
  137. package/dist/css/themes/YearRangePicker.css +1 -1
  138. package/dist/css/themes/sap_fiori_3/parameters-bundle.css +1 -1
  139. package/dist/css/themes/sap_fiori_3_dark/parameters-bundle.css +1 -1
  140. package/dist/css/themes/sap_fiori_3_hcb/parameters-bundle.css +1 -1
  141. package/dist/css/themes/sap_fiori_3_hcw/parameters-bundle.css +1 -1
  142. package/dist/css/themes/sap_horizon/parameters-bundle.css +1 -1
  143. package/dist/css/themes/sap_horizon_dark/parameters-bundle.css +1 -1
  144. package/dist/css/themes/sap_horizon_hcb/parameters-bundle.css +1 -1
  145. package/dist/css/themes/sap_horizon_hcw/parameters-bundle.css +1 -1
  146. package/dist/custom-elements-internal.json +67 -9
  147. package/dist/custom-elements.json +65 -8
  148. package/dist/features/InputSuggestions.d.ts +0 -3
  149. package/dist/features/InputSuggestions.js +4 -50
  150. package/dist/features/InputSuggestions.js.map +1 -1
  151. package/dist/features/InputSuggestionsTemplate.js +0 -1
  152. package/dist/features/InputSuggestionsTemplate.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_hcb/parameters-bundle.css.json +1 -1
  160. package/dist/generated/assets/themes/sap_horizon_hcw/parameters-bundle.css.json +1 -1
  161. package/dist/generated/i18n/i18n-defaults.d.ts +11 -3
  162. package/dist/generated/i18n/i18n-defaults.js +11 -3
  163. package/dist/generated/i18n/i18n-defaults.js.map +1 -1
  164. package/dist/generated/themes/Avatar.css.d.ts +1 -1
  165. package/dist/generated/themes/Avatar.css.js +1 -1
  166. package/dist/generated/themes/Avatar.css.js.map +1 -1
  167. package/dist/generated/themes/AvatarGroup.css.d.ts +1 -1
  168. package/dist/generated/themes/AvatarGroup.css.js +1 -1
  169. package/dist/generated/themes/AvatarGroup.css.js.map +1 -1
  170. package/dist/generated/themes/Bar.css.d.ts +1 -1
  171. package/dist/generated/themes/Bar.css.js +1 -1
  172. package/dist/generated/themes/Bar.css.js.map +1 -1
  173. package/dist/generated/themes/Breadcrumbs.css.d.ts +1 -1
  174. package/dist/generated/themes/Breadcrumbs.css.js +1 -1
  175. package/dist/generated/themes/Breadcrumbs.css.js.map +1 -1
  176. package/dist/generated/themes/BusyIndicator.css.d.ts +1 -1
  177. package/dist/generated/themes/BusyIndicator.css.js +1 -1
  178. package/dist/generated/themes/BusyIndicator.css.js.map +1 -1
  179. package/dist/generated/themes/Button.css.d.ts +1 -1
  180. package/dist/generated/themes/Button.css.js +1 -1
  181. package/dist/generated/themes/Button.css.js.map +1 -1
  182. package/dist/generated/themes/ButtonBadge.css.d.ts +1 -1
  183. package/dist/generated/themes/ButtonBadge.css.js +1 -1
  184. package/dist/generated/themes/ButtonBadge.css.js.map +1 -1
  185. package/dist/generated/themes/Calendar.css.d.ts +1 -1
  186. package/dist/generated/themes/Calendar.css.js +1 -1
  187. package/dist/generated/themes/Calendar.css.js.map +1 -1
  188. package/dist/generated/themes/CalendarHeader.css.d.ts +1 -1
  189. package/dist/generated/themes/CalendarHeader.css.js +1 -1
  190. package/dist/generated/themes/CalendarHeader.css.js.map +1 -1
  191. package/dist/generated/themes/CalendarLegend.css.d.ts +1 -1
  192. package/dist/generated/themes/CalendarLegend.css.js +1 -1
  193. package/dist/generated/themes/CalendarLegend.css.js.map +1 -1
  194. package/dist/generated/themes/CalendarLegendItem.css.d.ts +1 -1
  195. package/dist/generated/themes/CalendarLegendItem.css.js +1 -1
  196. package/dist/generated/themes/CalendarLegendItem.css.js.map +1 -1
  197. package/dist/generated/themes/Card.css.d.ts +1 -1
  198. package/dist/generated/themes/Card.css.js +1 -1
  199. package/dist/generated/themes/Card.css.js.map +1 -1
  200. package/dist/generated/themes/CardHeader.css.d.ts +1 -1
  201. package/dist/generated/themes/CardHeader.css.js +1 -1
  202. package/dist/generated/themes/CardHeader.css.js.map +1 -1
  203. package/dist/generated/themes/Carousel.css.d.ts +1 -1
  204. package/dist/generated/themes/Carousel.css.js +1 -1
  205. package/dist/generated/themes/Carousel.css.js.map +1 -1
  206. package/dist/generated/themes/CheckBox.css.d.ts +1 -1
  207. package/dist/generated/themes/CheckBox.css.js +1 -1
  208. package/dist/generated/themes/CheckBox.css.js.map +1 -1
  209. package/dist/generated/themes/ColorPalette.css.d.ts +1 -1
  210. package/dist/generated/themes/ColorPalette.css.js +1 -1
  211. package/dist/generated/themes/ColorPalette.css.js.map +1 -1
  212. package/dist/generated/themes/ColorPaletteItem.css.d.ts +1 -1
  213. package/dist/generated/themes/ColorPaletteItem.css.js +1 -1
  214. package/dist/generated/themes/ColorPaletteItem.css.js.map +1 -1
  215. package/dist/generated/themes/ColorPalettePopover.css.d.ts +1 -1
  216. package/dist/generated/themes/ColorPalettePopover.css.js +1 -1
  217. package/dist/generated/themes/ColorPalettePopover.css.js.map +1 -1
  218. package/dist/generated/themes/ColorPicker.css.d.ts +1 -1
  219. package/dist/generated/themes/ColorPicker.css.js +1 -1
  220. package/dist/generated/themes/ColorPicker.css.js.map +1 -1
  221. package/dist/generated/themes/ComboBox.css.d.ts +1 -1
  222. package/dist/generated/themes/ComboBox.css.js +1 -1
  223. package/dist/generated/themes/ComboBox.css.js.map +1 -1
  224. package/dist/generated/themes/ComboBoxItem.css.d.ts +1 -1
  225. package/dist/generated/themes/ComboBoxItem.css.js +1 -1
  226. package/dist/generated/themes/ComboBoxItem.css.js.map +1 -1
  227. package/dist/generated/themes/DatePicker.css.d.ts +1 -1
  228. package/dist/generated/themes/DatePicker.css.js +1 -1
  229. package/dist/generated/themes/DatePicker.css.js.map +1 -1
  230. package/dist/generated/themes/DateTimePickerPopover.css.d.ts +1 -1
  231. package/dist/generated/themes/DateTimePickerPopover.css.js +1 -1
  232. package/dist/generated/themes/DateTimePickerPopover.css.js.map +1 -1
  233. package/dist/generated/themes/DayPicker.css.d.ts +1 -1
  234. package/dist/generated/themes/DayPicker.css.js +1 -1
  235. package/dist/generated/themes/DayPicker.css.js.map +1 -1
  236. package/dist/generated/themes/Dialog.css.d.ts +1 -1
  237. package/dist/generated/themes/Dialog.css.js +1 -1
  238. package/dist/generated/themes/Dialog.css.js.map +1 -1
  239. package/dist/generated/themes/DynamicDateRange.css.d.ts +1 -1
  240. package/dist/generated/themes/DynamicDateRange.css.js +1 -1
  241. package/dist/generated/themes/DynamicDateRange.css.js.map +1 -1
  242. package/dist/generated/themes/DynamicDateRangePopover.css.d.ts +1 -1
  243. package/dist/generated/themes/DynamicDateRangePopover.css.js +1 -1
  244. package/dist/generated/themes/DynamicDateRangePopover.css.js.map +1 -1
  245. package/dist/generated/themes/FileUploader.css.d.ts +1 -1
  246. package/dist/generated/themes/FileUploader.css.js +1 -1
  247. package/dist/generated/themes/FileUploader.css.js.map +1 -1
  248. package/dist/generated/themes/Form.css.d.ts +1 -1
  249. package/dist/generated/themes/Form.css.js +1 -1
  250. package/dist/generated/themes/Form.css.js.map +1 -1
  251. package/dist/generated/themes/FormItem.css.d.ts +1 -1
  252. package/dist/generated/themes/FormItem.css.js +1 -1
  253. package/dist/generated/themes/FormItem.css.js.map +1 -1
  254. package/dist/generated/themes/FormItemSpan.css.d.ts +1 -1
  255. package/dist/generated/themes/FormItemSpan.css.js +1 -1
  256. package/dist/generated/themes/FormItemSpan.css.js.map +1 -1
  257. package/dist/generated/themes/GrowingButton.css.d.ts +1 -1
  258. package/dist/generated/themes/GrowingButton.css.js +1 -1
  259. package/dist/generated/themes/GrowingButton.css.js.map +1 -1
  260. package/dist/generated/themes/Icon.css.d.ts +1 -1
  261. package/dist/generated/themes/Icon.css.js +1 -1
  262. package/dist/generated/themes/Icon.css.js.map +1 -1
  263. package/dist/generated/themes/Input.css.d.ts +1 -1
  264. package/dist/generated/themes/Input.css.js +1 -1
  265. package/dist/generated/themes/Input.css.js.map +1 -1
  266. package/dist/generated/themes/InputIcon.css.d.ts +1 -1
  267. package/dist/generated/themes/InputIcon.css.js +1 -1
  268. package/dist/generated/themes/InputIcon.css.js.map +1 -1
  269. package/dist/generated/themes/InputSharedStyles.css.d.ts +1 -1
  270. package/dist/generated/themes/InputSharedStyles.css.js +1 -1
  271. package/dist/generated/themes/InputSharedStyles.css.js.map +1 -1
  272. package/dist/generated/themes/Link.css.d.ts +1 -1
  273. package/dist/generated/themes/Link.css.js +1 -1
  274. package/dist/generated/themes/Link.css.js.map +1 -1
  275. package/dist/generated/themes/List.css.d.ts +1 -1
  276. package/dist/generated/themes/List.css.js +1 -1
  277. package/dist/generated/themes/List.css.js.map +1 -1
  278. package/dist/generated/themes/ListItem.css.d.ts +1 -1
  279. package/dist/generated/themes/ListItem.css.js +1 -1
  280. package/dist/generated/themes/ListItem.css.js.map +1 -1
  281. package/dist/generated/themes/ListItemBase.css.d.ts +1 -1
  282. package/dist/generated/themes/ListItemBase.css.js +1 -1
  283. package/dist/generated/themes/ListItemBase.css.js.map +1 -1
  284. package/dist/generated/themes/ListItemCustom.css.d.ts +1 -1
  285. package/dist/generated/themes/ListItemCustom.css.js +1 -1
  286. package/dist/generated/themes/ListItemCustom.css.js.map +1 -1
  287. package/dist/generated/themes/ListItemGroup.css.d.ts +1 -1
  288. package/dist/generated/themes/ListItemGroup.css.js +1 -1
  289. package/dist/generated/themes/ListItemGroup.css.js.map +1 -1
  290. package/dist/generated/themes/ListItemGroupHeader.css.d.ts +1 -1
  291. package/dist/generated/themes/ListItemGroupHeader.css.js +1 -1
  292. package/dist/generated/themes/ListItemGroupHeader.css.js.map +1 -1
  293. package/dist/generated/themes/ListItemIcon.css.d.ts +1 -1
  294. package/dist/generated/themes/ListItemIcon.css.js +1 -1
  295. package/dist/generated/themes/ListItemIcon.css.js.map +1 -1
  296. package/dist/generated/themes/Menu.css.d.ts +1 -1
  297. package/dist/generated/themes/Menu.css.js +1 -1
  298. package/dist/generated/themes/Menu.css.js.map +1 -1
  299. package/dist/generated/themes/MenuItem.css.d.ts +1 -1
  300. package/dist/generated/themes/MenuItem.css.js +1 -1
  301. package/dist/generated/themes/MenuItem.css.js.map +1 -1
  302. package/dist/generated/themes/MessageStrip.css.d.ts +1 -1
  303. package/dist/generated/themes/MessageStrip.css.js +1 -1
  304. package/dist/generated/themes/MessageStrip.css.js.map +1 -1
  305. package/dist/generated/themes/MonthPicker.css.d.ts +1 -1
  306. package/dist/generated/themes/MonthPicker.css.js +1 -1
  307. package/dist/generated/themes/MonthPicker.css.js.map +1 -1
  308. package/dist/generated/themes/MultiComboBox.css.d.ts +1 -1
  309. package/dist/generated/themes/MultiComboBox.css.js +1 -1
  310. package/dist/generated/themes/MultiComboBox.css.js.map +1 -1
  311. package/dist/generated/themes/MultiComboBoxItem.css.d.ts +1 -1
  312. package/dist/generated/themes/MultiComboBoxItem.css.js +1 -1
  313. package/dist/generated/themes/MultiComboBoxItem.css.js.map +1 -1
  314. package/dist/generated/themes/MultiComboBoxPopover.css.d.ts +1 -1
  315. package/dist/generated/themes/MultiComboBoxPopover.css.js +1 -1
  316. package/dist/generated/themes/MultiComboBoxPopover.css.js.map +1 -1
  317. package/dist/generated/themes/MultiInput.css.d.ts +1 -1
  318. package/dist/generated/themes/MultiInput.css.js +1 -1
  319. package/dist/generated/themes/MultiInput.css.js.map +1 -1
  320. package/dist/generated/themes/OptionBase.css.d.ts +1 -1
  321. package/dist/generated/themes/OptionBase.css.js +1 -1
  322. package/dist/generated/themes/OptionBase.css.js.map +1 -1
  323. package/dist/generated/themes/Panel.css.d.ts +1 -1
  324. package/dist/generated/themes/Panel.css.js +1 -1
  325. package/dist/generated/themes/Panel.css.js.map +1 -1
  326. package/dist/generated/themes/Popover.css.d.ts +1 -1
  327. package/dist/generated/themes/Popover.css.js +1 -1
  328. package/dist/generated/themes/Popover.css.js.map +1 -1
  329. package/dist/generated/themes/PopupsCommon.css.d.ts +1 -1
  330. package/dist/generated/themes/PopupsCommon.css.js +1 -1
  331. package/dist/generated/themes/PopupsCommon.css.js.map +1 -1
  332. package/dist/generated/themes/ProgressIndicator.css.d.ts +1 -1
  333. package/dist/generated/themes/ProgressIndicator.css.js +1 -1
  334. package/dist/generated/themes/ProgressIndicator.css.js.map +1 -1
  335. package/dist/generated/themes/RadioButton.css.d.ts +1 -1
  336. package/dist/generated/themes/RadioButton.css.js +1 -1
  337. package/dist/generated/themes/RadioButton.css.js.map +1 -1
  338. package/dist/generated/themes/RangeSlider.css.d.ts +1 -1
  339. package/dist/generated/themes/RangeSlider.css.js +1 -1
  340. package/dist/generated/themes/RangeSlider.css.js.map +1 -1
  341. package/dist/generated/themes/RatingIndicator.css.d.ts +1 -1
  342. package/dist/generated/themes/RatingIndicator.css.js +1 -1
  343. package/dist/generated/themes/RatingIndicator.css.js.map +1 -1
  344. package/dist/generated/themes/ResponsivePopover.css.d.ts +1 -1
  345. package/dist/generated/themes/ResponsivePopover.css.js +1 -1
  346. package/dist/generated/themes/ResponsivePopover.css.js.map +1 -1
  347. package/dist/generated/themes/ResponsivePopoverCommon.css.d.ts +1 -1
  348. package/dist/generated/themes/ResponsivePopoverCommon.css.js +1 -1
  349. package/dist/generated/themes/ResponsivePopoverCommon.css.js.map +1 -1
  350. package/dist/generated/themes/SegmentedButton.css.d.ts +1 -1
  351. package/dist/generated/themes/SegmentedButton.css.js +1 -1
  352. package/dist/generated/themes/SegmentedButton.css.js.map +1 -1
  353. package/dist/generated/themes/SegmentedButtonItem.css.d.ts +1 -1
  354. package/dist/generated/themes/SegmentedButtonItem.css.js +1 -1
  355. package/dist/generated/themes/SegmentedButtonItem.css.js.map +1 -1
  356. package/dist/generated/themes/Select.css.d.ts +1 -1
  357. package/dist/generated/themes/Select.css.js +1 -1
  358. package/dist/generated/themes/Select.css.js.map +1 -1
  359. package/dist/generated/themes/SliderBase.css.d.ts +1 -1
  360. package/dist/generated/themes/SliderBase.css.js +1 -1
  361. package/dist/generated/themes/SliderBase.css.js.map +1 -1
  362. package/dist/generated/themes/SplitButton.css.d.ts +1 -1
  363. package/dist/generated/themes/SplitButton.css.js +1 -1
  364. package/dist/generated/themes/SplitButton.css.js.map +1 -1
  365. package/dist/generated/themes/StepInput.css.d.ts +1 -1
  366. package/dist/generated/themes/StepInput.css.js +1 -1
  367. package/dist/generated/themes/StepInput.css.js.map +1 -1
  368. package/dist/generated/themes/SuggestionItem.css.d.ts +1 -1
  369. package/dist/generated/themes/SuggestionItem.css.js +1 -1
  370. package/dist/generated/themes/SuggestionItem.css.js.map +1 -1
  371. package/dist/generated/themes/SuggestionItemCustom.css.d.ts +1 -1
  372. package/dist/generated/themes/SuggestionItemCustom.css.js +1 -1
  373. package/dist/generated/themes/SuggestionItemCustom.css.js.map +1 -1
  374. package/dist/generated/themes/Switch.css.d.ts +1 -1
  375. package/dist/generated/themes/Switch.css.js +1 -1
  376. package/dist/generated/themes/Switch.css.js.map +1 -1
  377. package/dist/generated/themes/TabContainer.css.d.ts +1 -1
  378. package/dist/generated/themes/TabContainer.css.js +1 -1
  379. package/dist/generated/themes/TabContainer.css.js.map +1 -1
  380. package/dist/generated/themes/TabInOverflow.css.d.ts +1 -1
  381. package/dist/generated/themes/TabInOverflow.css.js +1 -1
  382. package/dist/generated/themes/TabInOverflow.css.js.map +1 -1
  383. package/dist/generated/themes/TabInStrip.css.d.ts +1 -1
  384. package/dist/generated/themes/TabInStrip.css.js +1 -1
  385. package/dist/generated/themes/TabInStrip.css.js.map +1 -1
  386. package/dist/generated/themes/TabSemanticIcon.css.d.ts +1 -1
  387. package/dist/generated/themes/TabSemanticIcon.css.js +1 -1
  388. package/dist/generated/themes/TabSemanticIcon.css.js.map +1 -1
  389. package/dist/generated/themes/TabSeparatorInOverflow.css.d.ts +1 -1
  390. package/dist/generated/themes/TabSeparatorInOverflow.css.js +1 -1
  391. package/dist/generated/themes/TabSeparatorInOverflow.css.js.map +1 -1
  392. package/dist/generated/themes/TableCellBase.css.d.ts +1 -1
  393. package/dist/generated/themes/TableCellBase.css.js +1 -1
  394. package/dist/generated/themes/TableCellBase.css.js.map +1 -1
  395. package/dist/generated/themes/TableHeaderRow.css.d.ts +1 -1
  396. package/dist/generated/themes/TableHeaderRow.css.js +1 -1
  397. package/dist/generated/themes/TableHeaderRow.css.js.map +1 -1
  398. package/dist/generated/themes/TableRow.css.d.ts +1 -1
  399. package/dist/generated/themes/TableRow.css.js +1 -1
  400. package/dist/generated/themes/TableRow.css.js.map +1 -1
  401. package/dist/generated/themes/TableRowActionBase.css.d.ts +1 -1
  402. package/dist/generated/themes/TableRowActionBase.css.js +1 -1
  403. package/dist/generated/themes/TableRowActionBase.css.js.map +1 -1
  404. package/dist/generated/themes/TableRowBase.css.d.ts +1 -1
  405. package/dist/generated/themes/TableRowBase.css.js +1 -1
  406. package/dist/generated/themes/TableRowBase.css.js.map +1 -1
  407. package/dist/generated/themes/Tag.css.d.ts +1 -1
  408. package/dist/generated/themes/Tag.css.js +1 -1
  409. package/dist/generated/themes/Tag.css.js.map +1 -1
  410. package/dist/generated/themes/Text.css.d.ts +1 -1
  411. package/dist/generated/themes/Text.css.js +1 -1
  412. package/dist/generated/themes/Text.css.js.map +1 -1
  413. package/dist/generated/themes/TextArea.css.d.ts +1 -1
  414. package/dist/generated/themes/TextArea.css.js +1 -1
  415. package/dist/generated/themes/TextArea.css.js.map +1 -1
  416. package/dist/generated/themes/TimePicker.css.d.ts +1 -1
  417. package/dist/generated/themes/TimePicker.css.js +1 -1
  418. package/dist/generated/themes/TimePicker.css.js.map +1 -1
  419. package/dist/generated/themes/Toast.css.d.ts +1 -1
  420. package/dist/generated/themes/Toast.css.js +1 -1
  421. package/dist/generated/themes/Toast.css.js.map +1 -1
  422. package/dist/generated/themes/ToggleButton.css.d.ts +1 -1
  423. package/dist/generated/themes/ToggleButton.css.js +1 -1
  424. package/dist/generated/themes/ToggleButton.css.js.map +1 -1
  425. package/dist/generated/themes/Token.css.d.ts +1 -1
  426. package/dist/generated/themes/Token.css.js +1 -1
  427. package/dist/generated/themes/Token.css.js.map +1 -1
  428. package/dist/generated/themes/Tokenizer.css.d.ts +1 -1
  429. package/dist/generated/themes/Tokenizer.css.js +1 -1
  430. package/dist/generated/themes/Tokenizer.css.js.map +1 -1
  431. package/dist/generated/themes/TokenizerPopover.css.d.ts +1 -1
  432. package/dist/generated/themes/TokenizerPopover.css.js +1 -1
  433. package/dist/generated/themes/TokenizerPopover.css.js.map +1 -1
  434. package/dist/generated/themes/Toolbar.css.d.ts +1 -1
  435. package/dist/generated/themes/Toolbar.css.js +1 -1
  436. package/dist/generated/themes/Toolbar.css.js.map +1 -1
  437. package/dist/generated/themes/ToolbarPopover.css.d.ts +1 -1
  438. package/dist/generated/themes/ToolbarPopover.css.js +1 -1
  439. package/dist/generated/themes/ToolbarPopover.css.js.map +1 -1
  440. package/dist/generated/themes/ToolbarSeparator.css.d.ts +1 -1
  441. package/dist/generated/themes/ToolbarSeparator.css.js +1 -1
  442. package/dist/generated/themes/ToolbarSeparator.css.js.map +1 -1
  443. package/dist/generated/themes/TreeItem.css.d.ts +1 -1
  444. package/dist/generated/themes/TreeItem.css.js +1 -1
  445. package/dist/generated/themes/TreeItem.css.js.map +1 -1
  446. package/dist/generated/themes/ValueStateMessage.css.d.ts +1 -1
  447. package/dist/generated/themes/ValueStateMessage.css.js +1 -1
  448. package/dist/generated/themes/ValueStateMessage.css.js.map +1 -1
  449. package/dist/generated/themes/ValueStateVariables.css.d.ts +2 -0
  450. package/dist/generated/themes/ValueStateVariables.css.js +8 -0
  451. package/dist/generated/themes/ValueStateVariables.css.js.map +1 -0
  452. package/dist/generated/themes/YearPicker.css.d.ts +1 -1
  453. package/dist/generated/themes/YearPicker.css.js +1 -1
  454. package/dist/generated/themes/YearPicker.css.js.map +1 -1
  455. package/dist/generated/themes/YearRangePicker.css.d.ts +1 -1
  456. package/dist/generated/themes/YearRangePicker.css.js +1 -1
  457. package/dist/generated/themes/YearRangePicker.css.js.map +1 -1
  458. package/dist/generated/themes/sap_fiori_3/parameters-bundle.css.d.ts +1 -1
  459. package/dist/generated/themes/sap_fiori_3/parameters-bundle.css.js +1 -1
  460. package/dist/generated/themes/sap_fiori_3/parameters-bundle.css.js.map +1 -1
  461. package/dist/generated/themes/sap_fiori_3_dark/parameters-bundle.css.d.ts +1 -1
  462. package/dist/generated/themes/sap_fiori_3_dark/parameters-bundle.css.js +1 -1
  463. package/dist/generated/themes/sap_fiori_3_dark/parameters-bundle.css.js.map +1 -1
  464. package/dist/generated/themes/sap_fiori_3_hcb/parameters-bundle.css.d.ts +1 -1
  465. package/dist/generated/themes/sap_fiori_3_hcb/parameters-bundle.css.js +1 -1
  466. package/dist/generated/themes/sap_fiori_3_hcb/parameters-bundle.css.js.map +1 -1
  467. package/dist/generated/themes/sap_fiori_3_hcw/parameters-bundle.css.d.ts +1 -1
  468. package/dist/generated/themes/sap_fiori_3_hcw/parameters-bundle.css.js +1 -1
  469. package/dist/generated/themes/sap_fiori_3_hcw/parameters-bundle.css.js.map +1 -1
  470. package/dist/generated/themes/sap_horizon/parameters-bundle.css.d.ts +1 -1
  471. package/dist/generated/themes/sap_horizon/parameters-bundle.css.js +1 -1
  472. package/dist/generated/themes/sap_horizon/parameters-bundle.css.js.map +1 -1
  473. package/dist/generated/themes/sap_horizon_dark/parameters-bundle.css.d.ts +1 -1
  474. package/dist/generated/themes/sap_horizon_dark/parameters-bundle.css.js +1 -1
  475. package/dist/generated/themes/sap_horizon_dark/parameters-bundle.css.js.map +1 -1
  476. package/dist/generated/themes/sap_horizon_hcb/parameters-bundle.css.d.ts +1 -1
  477. package/dist/generated/themes/sap_horizon_hcb/parameters-bundle.css.js +1 -1
  478. package/dist/generated/themes/sap_horizon_hcb/parameters-bundle.css.js.map +1 -1
  479. package/dist/generated/themes/sap_horizon_hcw/parameters-bundle.css.d.ts +1 -1
  480. package/dist/generated/themes/sap_horizon_hcw/parameters-bundle.css.js +1 -1
  481. package/dist/generated/themes/sap_horizon_hcw/parameters-bundle.css.js.map +1 -1
  482. package/dist/vscode.html-custom-data.json +20 -5
  483. package/dist/web-types.json +38 -8
  484. package/package.json +9 -9
  485. package/src/ComboBoxPopoverTemplate.tsx +0 -1
  486. package/src/ComboBoxTemplate.tsx +4 -1
  487. package/src/FileUploaderPopoverTemplate.tsx +1 -3
  488. package/src/FileUploaderTemplate.tsx +77 -25
  489. package/src/InputTemplate.tsx +4 -0
  490. package/src/MultiComboBoxPopoverTemplate.tsx +1 -1
  491. package/src/MultiComboBoxTemplate.tsx +4 -0
  492. package/src/SplitButtonTemplate.tsx +1 -1
  493. package/src/TokenizerPopoverTemplate.tsx +1 -1
  494. package/src/features/InputSuggestionsTemplate.tsx +0 -1
  495. package/src/i18n/messagebundle.properties +28 -3
  496. package/src/themes/Button.css +2 -2
  497. package/src/themes/FileUploader.css +140 -32
  498. package/src/themes/ValueStateMessage.css +1 -1
  499. package/src/themes/ValueStateVariables.css +27 -0
  500. package/src/themes/base/FileUploader-parameters.css +2 -0
@@ -8456,7 +8456,7 @@
8456
8456
  },
8457
8457
  {
8458
8458
  "kind": "class",
8459
- "description": "### Overview\n\nThe `ui5-combobox` component represents a drop-down menu with a list of the available options and a text input field to narrow down the options.\n\nIt is commonly used to enable users to select an option from a predefined list.\n\n### Structure\nThe `ui5-combobox` consists of the following elements:\n\n- Input field - displays the selected option or a custom user entry. Users can type to narrow down the list or enter their own value.\n- Drop-down arrow - expands\\collapses the option list.\n- Option list - the list of available options.\n\n### Keyboard Handling\n\nThe `ui5-combobox` provides advanced keyboard handling.\n\n- [F4], [Alt]+[Up], or [Alt]+[Down] - Toggles the picker.\n- [Escape] - Closes the picker, if open. If closed, cancels changes and reverts the typed in value.\n- [Enter] or [Return] - If picker is open, takes over the currently selected item and closes it.\n- [Down] - Selects the next matching item in the picker.\n- [Up] - Selects the previous matching item in the picker.\n- [Page Down] - Moves selection down by page size (10 items by default).\n- [Page Up] - Moves selection up by page size (10 items by default).\n- [Home] - If focus is in the ComboBox, moves cursor at the beginning of text. If focus is in the picker, selects the first item.\n- [End] - If focus is in the ComboBox, moves cursor at the end of text. If focus is in the picker, selects the last item.\n\n### ES6 Module Import\n\n`import \"@ui5/webcomponents/dist/ComboBox.js\";`",
8459
+ "description": "### Overview\n\nThe `ui5-combobox` component represents a drop-down menu with a list of the available options and a text input field to narrow down the options.\n\nIt is commonly used to enable users to select an option from a predefined list.\n\n### Structure\nThe `ui5-combobox` consists of the following elements:\n\n- Input field - displays the selected option or a custom user entry. Users can type to narrow down the list or enter their own value.\n- Drop-down arrow - expands\\collapses the option list.\n- Option list - the list of available options.\n\n### Keyboard Handling\n\nThe `ui5-combobox` provides advanced keyboard handling.\n\n- [F4], [Alt]+[Up], or [Alt]+[Down] - Toggles the picker.\n- [Escape] - Closes the picker, if open. If closed, cancels changes and reverts the typed in value.\n- [Enter] or [Return] - If picker is open, takes over the currently selected item and closes it.\n- [Down] - Selects the next matching item in the picker.\n- [Up] - Selects the previous matching item in the picker.\n- [Page Down] - Moves selection down by page size (10 items by default).\n- [Page Up] - Moves selection up by page size (10 items by default).\n- [Home] - If focus is in the ComboBox, moves cursor at the beginning of text. If focus is in the picker, selects the first item.\n- [End] - If focus is in the ComboBox, moves cursor at the end of text. If focus is in the picker, selects the last item.\n- [Ctrl]+[Alt]+[F8] or [Command]+[Option]+[F8] - Focuses the first link in the value state message, if available. Pressing [Tab] moves the focus to the next link in the value state message, or closes the value state message if there are no more links.\n\n### ES6 Module Import\n\n`import \"@ui5/webcomponents/dist/ComboBox.js\";`",
8460
8460
  "name": "ComboBox",
8461
8461
  "slots": [
8462
8462
  {
@@ -12662,7 +12662,7 @@
12662
12662
  "slots": [
12663
12663
  {
12664
12664
  "name": "default",
12665
- "description": "By default the component contains a single input field. With this slot you can pass any content that you wish to add. See the samples for more information.\n\n**Note:** If no content is provided in this slot, the component will only consist of an input field and will not be interactable using the keyboard.\nAlso it is not recommended to use any non-interactable components, as it may lead to poor accessibility experience.",
12665
+ "description": "This slot allows you to add custom content to the component, such as a button or any other interactive element to trigger the file selection dialog.\n\n**Note:** For best accessibility experience, set a `tabindex` of \"-1\" on your interactive element, or it will be set automatically.\nThis slot is intended for use cases where you want a button-only file uploader.\nIt is recommended to set the `hideInput` property to \"true\" when using this slot.\nNot setting `hideInput` may negatively impact the screen reader users.",
12666
12666
  "_ui5propertyName": "content",
12667
12667
  "_ui5type": {
12668
12668
  "text": "Array<HTMLElement>"
@@ -12697,7 +12697,7 @@
12697
12697
  "text": "boolean"
12698
12698
  },
12699
12699
  "default": "false",
12700
- "description": "If set to \"true\", the input field of component will not be rendered. Only the default slot that is passed will be rendered.",
12700
+ "description": "If set to \"true\", the input field of component will not be rendered. Only the default slot that is passed will be rendered.\n\n**Note:** Use this property in combination with the default slot to achieve a button-only file uploader design.",
12701
12701
  "privacy": "public"
12702
12702
  },
12703
12703
  {
@@ -12780,6 +12780,36 @@
12780
12780
  "description": "Defines the value state of the component.",
12781
12781
  "privacy": "public"
12782
12782
  },
12783
+ {
12784
+ "kind": "field",
12785
+ "name": "required",
12786
+ "type": {
12787
+ "text": "boolean"
12788
+ },
12789
+ "default": "false",
12790
+ "description": "Defines whether the component is required.",
12791
+ "privacy": "public"
12792
+ },
12793
+ {
12794
+ "kind": "field",
12795
+ "name": "accessibleName",
12796
+ "type": {
12797
+ "text": "string | undefined"
12798
+ },
12799
+ "description": "Defines the accessible ARIA name of the component.",
12800
+ "default": "undefined",
12801
+ "privacy": "public"
12802
+ },
12803
+ {
12804
+ "kind": "field",
12805
+ "name": "accessibleNameRef",
12806
+ "type": {
12807
+ "text": "string | undefined"
12808
+ },
12809
+ "description": "Receives id(or many ids) of the elements that label the input.",
12810
+ "default": "undefined",
12811
+ "privacy": "public"
12812
+ },
12783
12813
  {
12784
12814
  "kind": "field",
12785
12815
  "name": "files",
@@ -12869,7 +12899,7 @@
12869
12899
  }
12870
12900
  },
12871
12901
  {
12872
- "description": "If set to \"true\", the input field of component will not be rendered. Only the default slot that is passed will be rendered.",
12902
+ "description": "If set to \"true\", the input field of component will not be rendered. Only the default slot that is passed will be rendered.\n\n**Note:** Use this property in combination with the default slot to achieve a button-only file uploader design.",
12873
12903
  "name": "hide-input",
12874
12904
  "default": "false",
12875
12905
  "fieldName": "hideInput",
@@ -12940,6 +12970,33 @@
12940
12970
  "text": "\"None\" | \"Positive\" | \"Negative\" | \"Critical\" | \"Information\""
12941
12971
  }
12942
12972
  },
12973
+ {
12974
+ "description": "Defines whether the component is required.",
12975
+ "name": "required",
12976
+ "default": "false",
12977
+ "fieldName": "required",
12978
+ "type": {
12979
+ "text": "boolean"
12980
+ }
12981
+ },
12982
+ {
12983
+ "description": "Defines the accessible ARIA name of the component.",
12984
+ "name": "accessible-name",
12985
+ "default": "undefined",
12986
+ "fieldName": "accessibleName",
12987
+ "type": {
12988
+ "text": "string | undefined"
12989
+ }
12990
+ },
12991
+ {
12992
+ "description": "Receives id(or many ids) of the elements that label the input.",
12993
+ "name": "accessible-name-ref",
12994
+ "default": "undefined",
12995
+ "fieldName": "accessibleNameRef",
12996
+ "type": {
12997
+ "text": "string | undefined"
12998
+ }
12999
+ },
12943
13000
  {
12944
13001
  "description": "FileList of all selected files.",
12945
13002
  "name": "files",
@@ -13670,7 +13727,7 @@
13670
13727
  },
13671
13728
  {
13672
13729
  "kind": "class",
13673
- "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### 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\";`",
13730
+ "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### 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- [Ctrl]+[Alt]+[F8] or [Command]+[Option]+[F8] - Focuses the first link in the value state message, if available. Pressing [Tab] moves the focus to the next link in the value state message, or closes the value state message if there are no more links.\n\n### ES6 Module Import\n\n`import \"@ui5/webcomponents/dist/Input.js\";`",
13674
13731
  "name": "Input",
13675
13732
  "cssParts": [
13676
13733
  {
@@ -16274,12 +16331,13 @@
16274
16331
  ],
16275
16332
  "slots": [
16276
16333
  {
16277
- "description": "Defines the custom formatted text of the component.\n\n**Note:** For optimal text wrapping and a consistent layout, it is strongly recommended to use the `text` property.\n\nUse the `default` slot only when custom formatting with HTML elements (e.g., `<b>`, `<i>`) is required.\nBe aware that wrapping (via `wrappingType=\"Normal\"`) may not function correctly with custom HTML content in the `default` slot.\n\nIf both `text` and `default` slot are used, the `text` property takes precedence.",
16278
16334
  "name": "default",
16279
- "_ui5privacy": "public",
16335
+ "description": "Defines the custom formatted text of the component.\n\n**Note:** For optimal text wrapping and a consistent layout, it is strongly recommended to use the `text` property.\n\nUse the `default` slot only when custom formatting with HTML elements (e.g., `<b>`, `<i>`) is required.\nBe aware that wrapping (via `wrappingType=\"Normal\"`) may not function correctly with custom HTML content in the `default` slot.\n\nIf both `text` and `default` slot are used, the `text` property takes precedence.",
16336
+ "_ui5propertyName": "content",
16280
16337
  "_ui5type": {
16281
16338
  "text": "Array<Node>"
16282
- }
16339
+ },
16340
+ "_ui5privacy": "public"
16283
16341
  },
16284
16342
  {
16285
16343
  "name": "image",
@@ -17948,7 +18006,7 @@
17948
18006
  },
17949
18007
  {
17950
18008
  "kind": "class",
17951
- "description": "### Overview\n\nThe `ui5-multi-combobox` component consists of a list box with items and a text field allowing the user to either type a value directly into the text field, or choose from the list of existing items.\n\nThe drop-down list is used for selecting and filtering values, it enables users to select one or more options from a predefined list. The control provides an editable input field to filter the list, and a dropdown arrow to expand/collapse the list of available options.\nThe options in the list have checkboxes that permit multi-selection. Entered values are displayed as tokens.\n### Structure\nThe `ui5-multi-combobox` consists of the following elements:\n\n- Tokenizer - a list of tokens with selected options.\n- Input field - displays the selected option/s as token/s. Users can type to filter the list.\n- Drop-down arrow - expands\\collapses the option list.\n- Option list - the list of available options.\n\n### Keyboard Handling\n\nThe `ui5-multi-combobox` provides advanced keyboard handling.\n\n#### Picker\nIf the `ui5-multi-combobox` is focused,\nyou can open or close the drop-down by pressing [F4], [Alt] + [Up] or [Alt] + [Down] keys.\nOnce the drop-down is opened, you can use the `UP` and `DOWN` arrow keys\nto navigate through the available options and select one by pressing the `Space` or `Enter` keys.\n\n#### Tokens\n\n- Left/Right arrow keys - moves the focus selection form the currently focused token to the previous/next one (if available).\n- Delete - deletes the token and focuses the previous token.\n- Backspace - deletes the token and focus the next token.\n\n### ES6 Module Import\n\n`import \"@ui5/webcomponents/dist/MultiComboBox.js\";`",
18009
+ "description": "### Overview\n\nThe `ui5-multi-combobox` component consists of a list box with items and a text field allowing the user to either type a value directly into the text field, or choose from the list of existing items.\n\nThe drop-down list is used for selecting and filtering values, it enables users to select one or more options from a predefined list. The control provides an editable input field to filter the list, and a dropdown arrow to expand/collapse the list of available options.\nThe options in the list have checkboxes that permit multi-selection. Entered values are displayed as tokens.\n### Structure\nThe `ui5-multi-combobox` consists of the following elements:\n\n- Tokenizer - a list of tokens with selected options.\n- Input field - displays the selected option/s as token/s. Users can type to filter the list.\n- Drop-down arrow - expands\\collapses the option list.\n- Option list - the list of available options.\n\n### Keyboard Handling\n\nThe `ui5-multi-combobox` provides advanced keyboard handling.\n\n#### Picker\nIf the `ui5-multi-combobox` is focused,\nyou can open or close the drop-down by pressing [F4], [Alt] + [Up] or [Alt] + [Down] keys.\nOnce the drop-down is opened, you can use the `UP` and `DOWN` arrow keys\nto navigate through the available options and select one by pressing the `Space` or `Enter` keys.\n[Ctrl]+[Alt]+[F8] or [Command]+[Option]+[F8] - Focuses the first link in the value state message, if available. Pressing [Tab] moves the focus to the next link in the value state message, or closes the value state message if there are no more links.\n\n#### Tokens\n\n- Left/Right arrow keys - moves the focus selection form the currently focused token to the previous/next one (if available).\n- Delete - deletes the token and focuses the previous token.\n- Backspace - deletes the token and focus the next token.\n\n### ES6 Module Import\n\n`import \"@ui5/webcomponents/dist/MultiComboBox.js\";`",
17952
18010
  "name": "MultiComboBox",
17953
18011
  "cssParts": [
17954
18012
  {
@@ -4974,7 +4974,7 @@
4974
4974
  "declarations": [
4975
4975
  {
4976
4976
  "kind": "class",
4977
- "description": "### Overview\n\nThe `ui5-combobox` component represents a drop-down menu with a list of the available options and a text input field to narrow down the options.\n\nIt is commonly used to enable users to select an option from a predefined list.\n\n### Structure\nThe `ui5-combobox` consists of the following elements:\n\n- Input field - displays the selected option or a custom user entry. Users can type to narrow down the list or enter their own value.\n- Drop-down arrow - expands\\collapses the option list.\n- Option list - the list of available options.\n\n### Keyboard Handling\n\nThe `ui5-combobox` provides advanced keyboard handling.\n\n- [F4], [Alt]+[Up], or [Alt]+[Down] - Toggles the picker.\n- [Escape] - Closes the picker, if open. If closed, cancels changes and reverts the typed in value.\n- [Enter] or [Return] - If picker is open, takes over the currently selected item and closes it.\n- [Down] - Selects the next matching item in the picker.\n- [Up] - Selects the previous matching item in the picker.\n- [Page Down] - Moves selection down by page size (10 items by default).\n- [Page Up] - Moves selection up by page size (10 items by default).\n- [Home] - If focus is in the ComboBox, moves cursor at the beginning of text. If focus is in the picker, selects the first item.\n- [End] - If focus is in the ComboBox, moves cursor at the end of text. If focus is in the picker, selects the last item.\n\n### ES6 Module Import\n\n`import \"@ui5/webcomponents/dist/ComboBox.js\";`",
4977
+ "description": "### Overview\n\nThe `ui5-combobox` component represents a drop-down menu with a list of the available options and a text input field to narrow down the options.\n\nIt is commonly used to enable users to select an option from a predefined list.\n\n### Structure\nThe `ui5-combobox` consists of the following elements:\n\n- Input field - displays the selected option or a custom user entry. Users can type to narrow down the list or enter their own value.\n- Drop-down arrow - expands\\collapses the option list.\n- Option list - the list of available options.\n\n### Keyboard Handling\n\nThe `ui5-combobox` provides advanced keyboard handling.\n\n- [F4], [Alt]+[Up], or [Alt]+[Down] - Toggles the picker.\n- [Escape] - Closes the picker, if open. If closed, cancels changes and reverts the typed in value.\n- [Enter] or [Return] - If picker is open, takes over the currently selected item and closes it.\n- [Down] - Selects the next matching item in the picker.\n- [Up] - Selects the previous matching item in the picker.\n- [Page Down] - Moves selection down by page size (10 items by default).\n- [Page Up] - Moves selection up by page size (10 items by default).\n- [Home] - If focus is in the ComboBox, moves cursor at the beginning of text. If focus is in the picker, selects the first item.\n- [End] - If focus is in the ComboBox, moves cursor at the end of text. If focus is in the picker, selects the last item.\n- [Ctrl]+[Alt]+[F8] or [Command]+[Option]+[F8] - Focuses the first link in the value state message, if available. Pressing [Tab] moves the focus to the next link in the value state message, or closes the value state message if there are no more links.\n\n### ES6 Module Import\n\n`import \"@ui5/webcomponents/dist/ComboBox.js\";`",
4978
4978
  "name": "ComboBox",
4979
4979
  "slots": [
4980
4980
  {
@@ -8650,7 +8650,7 @@
8650
8650
  "slots": [
8651
8651
  {
8652
8652
  "name": "default",
8653
- "description": "By default the component contains a single input field. With this slot you can pass any content that you wish to add. See the samples for more information.\n\n**Note:** If no content is provided in this slot, the component will only consist of an input field and will not be interactable using the keyboard.\nAlso it is not recommended to use any non-interactable components, as it may lead to poor accessibility experience."
8653
+ "description": "This slot allows you to add custom content to the component, such as a button or any other interactive element to trigger the file selection dialog.\n\n**Note:** For best accessibility experience, set a `tabindex` of \"-1\" on your interactive element, or it will be set automatically.\nThis slot is intended for use cases where you want a button-only file uploader.\nIt is recommended to set the `hideInput` property to \"true\" when using this slot.\nNot setting `hideInput` may negatively impact the screen reader users."
8654
8654
  },
8655
8655
  {
8656
8656
  "name": "valueStateMessage",
@@ -8675,7 +8675,7 @@
8675
8675
  "text": "boolean"
8676
8676
  },
8677
8677
  "default": "false",
8678
- "description": "If set to \"true\", the input field of component will not be rendered. Only the default slot that is passed will be rendered.",
8678
+ "description": "If set to \"true\", the input field of component will not be rendered. Only the default slot that is passed will be rendered.\n\n**Note:** Use this property in combination with the default slot to achieve a button-only file uploader design.",
8679
8679
  "privacy": "public"
8680
8680
  },
8681
8681
  {
@@ -8755,6 +8755,36 @@
8755
8755
  "description": "Defines the value state of the component.",
8756
8756
  "privacy": "public"
8757
8757
  },
8758
+ {
8759
+ "kind": "field",
8760
+ "name": "required",
8761
+ "type": {
8762
+ "text": "boolean"
8763
+ },
8764
+ "default": "false",
8765
+ "description": "Defines whether the component is required.",
8766
+ "privacy": "public"
8767
+ },
8768
+ {
8769
+ "kind": "field",
8770
+ "name": "accessibleName",
8771
+ "type": {
8772
+ "text": "string | undefined"
8773
+ },
8774
+ "description": "Defines the accessible ARIA name of the component.",
8775
+ "default": "undefined",
8776
+ "privacy": "public"
8777
+ },
8778
+ {
8779
+ "kind": "field",
8780
+ "name": "accessibleNameRef",
8781
+ "type": {
8782
+ "text": "string | undefined"
8783
+ },
8784
+ "description": "Receives id(or many ids) of the elements that label the input.",
8785
+ "default": "undefined",
8786
+ "privacy": "public"
8787
+ },
8758
8788
  {
8759
8789
  "kind": "field",
8760
8790
  "name": "files",
@@ -8808,7 +8838,7 @@
8808
8838
  }
8809
8839
  },
8810
8840
  {
8811
- "description": "If set to \"true\", the input field of component will not be rendered. Only the default slot that is passed will be rendered.",
8841
+ "description": "If set to \"true\", the input field of component will not be rendered. Only the default slot that is passed will be rendered.\n\n**Note:** Use this property in combination with the default slot to achieve a button-only file uploader design.",
8812
8842
  "name": "hide-input",
8813
8843
  "default": "false",
8814
8844
  "fieldName": "hideInput",
@@ -8879,6 +8909,33 @@
8879
8909
  "text": "\"None\" | \"Positive\" | \"Negative\" | \"Critical\" | \"Information\""
8880
8910
  }
8881
8911
  },
8912
+ {
8913
+ "description": "Defines whether the component is required.",
8914
+ "name": "required",
8915
+ "default": "false",
8916
+ "fieldName": "required",
8917
+ "type": {
8918
+ "text": "boolean"
8919
+ }
8920
+ },
8921
+ {
8922
+ "description": "Defines the accessible ARIA name of the component.",
8923
+ "name": "accessible-name",
8924
+ "default": "undefined",
8925
+ "fieldName": "accessibleName",
8926
+ "type": {
8927
+ "text": "string | undefined"
8928
+ }
8929
+ },
8930
+ {
8931
+ "description": "Receives id(or many ids) of the elements that label the input.",
8932
+ "name": "accessible-name-ref",
8933
+ "default": "undefined",
8934
+ "fieldName": "accessibleNameRef",
8935
+ "type": {
8936
+ "text": "string | undefined"
8937
+ }
8938
+ },
8882
8939
  {
8883
8940
  "description": "FileList of all selected files.",
8884
8941
  "name": "files",
@@ -9512,7 +9569,7 @@
9512
9569
  "declarations": [
9513
9570
  {
9514
9571
  "kind": "class",
9515
- "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### 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\";`",
9572
+ "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### 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- [Ctrl]+[Alt]+[F8] or [Command]+[Option]+[F8] - Focuses the first link in the value state message, if available. Pressing [Tab] moves the focus to the next link in the value state message, or closes the value state message if there are no more links.\n\n### ES6 Module Import\n\n`import \"@ui5/webcomponents/dist/Input.js\";`",
9516
9573
  "name": "Input",
9517
9574
  "cssParts": [
9518
9575
  {
@@ -11696,8 +11753,8 @@
11696
11753
  ],
11697
11754
  "slots": [
11698
11755
  {
11699
- "description": "Defines the custom formatted text of the component.\n\n**Note:** For optimal text wrapping and a consistent layout, it is strongly recommended to use the `text` property.\n\nUse the `default` slot only when custom formatting with HTML elements (e.g., `<b>`, `<i>`) is required.\nBe aware that wrapping (via `wrappingType=\"Normal\"`) may not function correctly with custom HTML content in the `default` slot.\n\nIf both `text` and `default` slot are used, the `text` property takes precedence.",
11700
- "name": "default"
11756
+ "name": "default",
11757
+ "description": "Defines the custom formatted text of the component.\n\n**Note:** For optimal text wrapping and a consistent layout, it is strongly recommended to use the `text` property.\n\nUse the `default` slot only when custom formatting with HTML elements (e.g., `<b>`, `<i>`) is required.\nBe aware that wrapping (via `wrappingType=\"Normal\"`) may not function correctly with custom HTML content in the `default` slot.\n\nIf both `text` and `default` slot are used, the `text` property takes precedence."
11701
11758
  },
11702
11759
  {
11703
11760
  "name": "image",
@@ -13092,7 +13149,7 @@
13092
13149
  "declarations": [
13093
13150
  {
13094
13151
  "kind": "class",
13095
- "description": "### Overview\n\nThe `ui5-multi-combobox` component consists of a list box with items and a text field allowing the user to either type a value directly into the text field, or choose from the list of existing items.\n\nThe drop-down list is used for selecting and filtering values, it enables users to select one or more options from a predefined list. The control provides an editable input field to filter the list, and a dropdown arrow to expand/collapse the list of available options.\nThe options in the list have checkboxes that permit multi-selection. Entered values are displayed as tokens.\n### Structure\nThe `ui5-multi-combobox` consists of the following elements:\n\n- Tokenizer - a list of tokens with selected options.\n- Input field - displays the selected option/s as token/s. Users can type to filter the list.\n- Drop-down arrow - expands\\collapses the option list.\n- Option list - the list of available options.\n\n### Keyboard Handling\n\nThe `ui5-multi-combobox` provides advanced keyboard handling.\n\n#### Picker\nIf the `ui5-multi-combobox` is focused,\nyou can open or close the drop-down by pressing [F4], [Alt] + [Up] or [Alt] + [Down] keys.\nOnce the drop-down is opened, you can use the `UP` and `DOWN` arrow keys\nto navigate through the available options and select one by pressing the `Space` or `Enter` keys.\n\n#### Tokens\n\n- Left/Right arrow keys - moves the focus selection form the currently focused token to the previous/next one (if available).\n- Delete - deletes the token and focuses the previous token.\n- Backspace - deletes the token and focus the next token.\n\n### ES6 Module Import\n\n`import \"@ui5/webcomponents/dist/MultiComboBox.js\";`",
13152
+ "description": "### Overview\n\nThe `ui5-multi-combobox` component consists of a list box with items and a text field allowing the user to either type a value directly into the text field, or choose from the list of existing items.\n\nThe drop-down list is used for selecting and filtering values, it enables users to select one or more options from a predefined list. The control provides an editable input field to filter the list, and a dropdown arrow to expand/collapse the list of available options.\nThe options in the list have checkboxes that permit multi-selection. Entered values are displayed as tokens.\n### Structure\nThe `ui5-multi-combobox` consists of the following elements:\n\n- Tokenizer - a list of tokens with selected options.\n- Input field - displays the selected option/s as token/s. Users can type to filter the list.\n- Drop-down arrow - expands\\collapses the option list.\n- Option list - the list of available options.\n\n### Keyboard Handling\n\nThe `ui5-multi-combobox` provides advanced keyboard handling.\n\n#### Picker\nIf the `ui5-multi-combobox` is focused,\nyou can open or close the drop-down by pressing [F4], [Alt] + [Up] or [Alt] + [Down] keys.\nOnce the drop-down is opened, you can use the `UP` and `DOWN` arrow keys\nto navigate through the available options and select one by pressing the `Space` or `Enter` keys.\n[Ctrl]+[Alt]+[F8] or [Command]+[Option]+[F8] - Focuses the first link in the value state message, if available. Pressing [Tab] moves the focus to the next link in the value state message, or closes the value state message if there are no more links.\n\n#### Tokens\n\n- Left/Right arrow keys - moves the focus selection form the currently focused token to the previous/next one (if available).\n- Delete - deletes the token and focuses the previous token.\n- Backspace - deletes the token and focus the next token.\n\n### ES6 Module Import\n\n`import \"@ui5/webcomponents/dist/MultiComboBox.js\";`",
13096
13153
  "name": "MultiComboBox",
13097
13154
  "cssParts": [
13098
13155
  {
@@ -9,7 +9,6 @@ import type SuggestionItem from "../SuggestionItem.js";
9
9
  import InputSuggestionsTemplate from "./InputSuggestionsTemplate.js";
10
10
  import type { IInputSuggestionItem, IInputSuggestionItemSelectable } from "../Input.js";
11
11
  interface SuggestionComponent extends UI5Element {
12
- _isValueStateFocused: boolean;
13
12
  focused: boolean;
14
13
  hasSuggestionItemSelected: boolean;
15
14
  value: string;
@@ -92,8 +91,6 @@ declare class Suggestions {
92
91
  get itemSelectionAnnounce(): string;
93
92
  hightlightInput(text: string, input: string): string;
94
93
  get _hasValueState(): boolean;
95
- _focusValueState(): void;
96
- _clearValueStateFocus(): void;
97
94
  _clearSelectedSuggestionAndaccInfo(): void;
98
95
  }
99
96
  export default Suggestions;
@@ -60,39 +60,29 @@ class Suggestions {
60
60
  onPageUp(e) {
61
61
  e.preventDefault();
62
62
  const isItemIndexValid = this.selectedItemIndex - 10 > -1;
63
- if (this._hasValueState && !isItemIndexValid) {
64
- this._focusValueState();
65
- return true;
66
- }
67
63
  this._moveItemSelection(this.selectedItemIndex, isItemIndexValid ? this.selectedItemIndex -= 10 : this.selectedItemIndex = 0);
68
64
  return true;
69
65
  }
70
66
  onPageDown(e) {
71
67
  e.preventDefault();
72
68
  const items = this._getItems();
73
- const lastItemIndex = items.length - 1;
74
- const isItemIndexValid = this.selectedItemIndex + 10 <= lastItemIndex;
75
- if (this._hasValueState && !items) {
76
- this._focusValueState();
69
+ if (!items) {
77
70
  return true;
78
71
  }
72
+ const lastItemIndex = items.length - 1;
73
+ const isItemIndexValid = this.selectedItemIndex + 10 <= lastItemIndex;
79
74
  this._moveItemSelection(this.selectedItemIndex, isItemIndexValid ? this.selectedItemIndex += 10 : this.selectedItemIndex = lastItemIndex);
80
75
  return true;
81
76
  }
82
77
  onHome(e) {
83
78
  e.preventDefault();
84
- if (this._hasValueState) {
85
- this._focusValueState();
86
- return true;
87
- }
88
79
  this._moveItemSelection(this.selectedItemIndex, this.selectedItemIndex = 0);
89
80
  return true;
90
81
  }
91
82
  onEnd(e) {
92
83
  e.preventDefault();
93
84
  const lastItemIndex = this._getItems().length - 1;
94
- if (this._hasValueState && !lastItemIndex) {
95
- this._focusValueState();
85
+ if (!lastItemIndex) {
96
86
  return true;
97
87
  }
98
88
  this._moveItemSelection(this.selectedItemIndex, this.selectedItemIndex = lastItemIndex);
@@ -203,14 +193,6 @@ class Suggestions {
203
193
  _selectNextItem() {
204
194
  const itemsCount = this._getItems().length;
205
195
  const previousSelectedIdx = this.selectedItemIndex;
206
- if (this._hasValueState && previousSelectedIdx === -1 && !this.component._isValueStateFocused) {
207
- this._focusValueState();
208
- return;
209
- }
210
- if ((previousSelectedIdx === -1 && !this._hasValueState) || this.component._isValueStateFocused) {
211
- this._clearValueStateFocus();
212
- this.selectedItemIndex = -1;
213
- }
214
196
  if (previousSelectedIdx !== -1 && previousSelectedIdx + 1 > itemsCount - 1) {
215
197
  return;
216
198
  }
@@ -219,22 +201,6 @@ class Suggestions {
219
201
  _selectPreviousItem() {
220
202
  const items = this._getItems();
221
203
  const previousSelectedIdx = this.selectedItemIndex;
222
- if (this._hasValueState && previousSelectedIdx === 0 && !this.component._isValueStateFocused) {
223
- this.component.hasSuggestionItemSelected = false;
224
- this.component._isValueStateFocused = true;
225
- this.selectedItemIndex = 0;
226
- items[0].focused = false;
227
- if (items[0].hasAttribute("ui5-suggestion-item")) {
228
- items[0].selected = false;
229
- }
230
- return;
231
- }
232
- if (this.component._isValueStateFocused) {
233
- this.component.focused = true;
234
- this.component._isValueStateFocused = false;
235
- this.selectedItemIndex = 0;
236
- return;
237
- }
238
204
  if (previousSelectedIdx === -1 || previousSelectedIdx === null) {
239
205
  return;
240
206
  }
@@ -260,7 +226,6 @@ class Suggestions {
260
226
  return;
261
227
  }
262
228
  this.component.focused = false;
263
- this._clearValueStateFocus();
264
229
  const selectedItem = this._getItems()[this.selectedItemIndex];
265
230
  this.accInfo = {
266
231
  isGroup: isGroupItem,
@@ -374,17 +339,6 @@ class Suggestions {
374
339
  get _hasValueState() {
375
340
  return this.component.hasValueStateMessage;
376
341
  }
377
- _focusValueState() {
378
- this.component._isValueStateFocused = true;
379
- this.component.focused = false;
380
- this.component.hasSuggestionItemSelected = false;
381
- this.selectedItemIndex = 0;
382
- this.component.value = this.component.typedInValue;
383
- this._deselectItems();
384
- }
385
- _clearValueStateFocus() {
386
- this.component._isValueStateFocused = false;
387
- }
388
342
  _clearSelectedSuggestionAndaccInfo() {
389
343
  this.accInfo = undefined;
390
344
  this.selectedItemIndex = 0;
@@ -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 type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport generateHighlightedMarkup from \"@ui5/webcomponents-base/dist/util/generateHighlightedMarkup.js\";\nimport type List from \"../List.js\";\nimport type { ListItemClickEventDetail, ListSelectionChangeEventDetail } from \"../List.js\";\nimport type ResponsivePopover from \"../ResponsivePopover.js\";\nimport \"../SuggestionItem.js\";\nimport \"../SuggestionItemGroup.js\";\nimport type SuggestionItem from \"../SuggestionItem.js\";\nimport type ListItemGroupHeader from \"../ListItemGroupHeader.js\";\nimport InputSuggestionsTemplate from \"./InputSuggestionsTemplate.js\";\nimport Input from \"../Input.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 type 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\tget template() {\n\t\treturn InputSuggestionsTemplate;\n\t}\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, indexOfItem: number) {\n\t\te.preventDefault();\n\t\tconst index = !this.isOpened && this._hasValueState && indexOfItem === -1 ? 0 : indexOfItem;\n\t\tthis._handleItemNavigation(false /* forward */, index);\n\t\treturn true;\n\t}\n\n\tonDown(e: KeyboardEvent, indexOfItem: number) {\n\t\te.preventDefault();\n\t\tconst index = !this.isOpened && this._hasValueState && indexOfItem === -1 ? 0 : indexOfItem;\n\t\tthis._handleItemNavigation(true /* forward */, index);\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\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_onClose() {\n\t\tthis._handledPress = false;\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, index: number) {\n\t\tthis.selectedItemIndex = index;\n\n\t\tif (!this._getItems().length) {\n\t\t\treturn;\n\t\t}\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\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\t\tlet headerHeight = 0;\n\n\t\tif (this._hasValueState) {\n\t\t\tconst valueStateHeader = this._getPicker().querySelector(\"[slot=header]\")!;\n\t\t\theaderHeight = valueStateHeader.getBoundingClientRect().height;\n\t\t}\n\n\t\treturn (rectItem.top + Suggestions.SCROLL_STEP <= windowHeight) && (rectItem.top >= rectInput.top + headerHeight);\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\nInput.SuggestionsClass = 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 type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport generateHighlightedMarkup from \"@ui5/webcomponents-base/dist/util/generateHighlightedMarkup.js\";\nimport type List from \"../List.js\";\nimport type { ListItemClickEventDetail, ListSelectionChangeEventDetail } from \"../List.js\";\nimport type ResponsivePopover from \"../ResponsivePopover.js\";\nimport \"../SuggestionItem.js\";\nimport \"../SuggestionItemGroup.js\";\nimport type SuggestionItem from \"../SuggestionItem.js\";\nimport type ListItemGroupHeader from \"../ListItemGroupHeader.js\";\nimport InputSuggestionsTemplate from \"./InputSuggestionsTemplate.js\";\nimport Input from \"../Input.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 type SuggestionItemGroup from \"../SuggestionItemGroup.js\";\nimport type { IInputSuggestionItem, IInputSuggestionItemSelectable } from \"../Input.js\";\n\ninterface SuggestionComponent extends UI5Element {\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\tget template() {\n\t\treturn InputSuggestionsTemplate;\n\t}\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, indexOfItem: number) {\n\t\te.preventDefault();\n\t\tconst index = !this.isOpened && this._hasValueState && indexOfItem === -1 ? 0 : indexOfItem;\n\t\tthis._handleItemNavigation(false /* forward */, index);\n\t\treturn true;\n\t}\n\n\tonDown(e: KeyboardEvent, indexOfItem: number) {\n\t\te.preventDefault();\n\t\tconst index = !this.isOpened && this._hasValueState && indexOfItem === -1 ? 0 : indexOfItem;\n\t\tthis._handleItemNavigation(true /* forward */, index);\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\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\n\t\tif (!items) {\n\t\t\treturn true;\n\t\t}\n\n\t\tconst lastItemIndex = items.length - 1;\n\t\tconst isItemIndexValid = this.selectedItemIndex + 10 <= lastItemIndex;\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\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 (!lastItemIndex) {\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\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_onClose() {\n\t\tthis._handledPress = false;\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, index: number) {\n\t\tthis.selectedItemIndex = index;\n\n\t\tif (!this._getItems().length) {\n\t\t\treturn;\n\t\t}\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\n\t\tconst previousSelectedIdx = this.selectedItemIndex;\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 (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\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\t\tlet headerHeight = 0;\n\n\t\tif (this._hasValueState) {\n\t\t\tconst valueStateHeader = this._getPicker().querySelector(\"[slot=header]\")!;\n\t\t\theaderHeight = valueStateHeader.getBoundingClientRect().height;\n\t\t}\n\n\t\treturn (rectItem.top + Suggestions.SCROLL_STEP <= windowHeight) && (rectItem.top >= rectInput.top + headerHeight);\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_clearSelectedSuggestionAndaccInfo() {\n\t\tthis.accInfo = undefined;\n\t\tthis.selectedItemIndex = 0;\n\t}\n}\n\nInput.SuggestionsClass = Suggestions;\n\nexport default Suggestions;\n\nexport type {\n\tSuggestionComponent,\n};\n"]}
@@ -15,7 +15,6 @@ export default function InputSuggestionsTemplate(hooks) {
15
15
  _jsxs("div", { class: this.classes.popoverValueState, style: this.styles.suggestionPopoverHeader, children: [_jsx(Icon, { class: "ui5-input-value-state-message-icon", name: valueStateMessageInputIcon?.call(this) }), this.open && valueStateMessage?.call(this)] })] }), !this._isPhone && this.hasValueStateMessage &&
16
16
  _jsxs("div", { slot: "header", class: {
17
17
  "ui5-responsive-popover-header": true,
18
- "ui5-responsive-popover-header--focused": this._isValueStateFocused,
19
18
  ...this.classes.popoverValueState,
20
19
  }, style: this.styles.suggestionPopoverHeader, children: [_jsx(Icon, { class: "ui5-input-value-state-message-icon", name: valueStateMessageInputIcon?.call(this) }), this.open && valueStateMessage?.call(this)] }), suggestionsList.call(this), this._isPhone &&
21
20
  _jsx("div", { slot: "footer", class: "ui5-responsive-popover-footer", children: _jsx(Button, { design: "Transparent", onClick: this._closePicker, children: this._suggestionsOkButtonText }) })] }));