@ui5/webcomponents 2.13.5 → 2.13.7

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 (456) hide show
  1. package/CHANGELOG.md +20 -0
  2. package/dist/.tsbuildinfo +1 -1
  3. package/dist/ComboBox.d.ts +16 -0
  4. package/dist/ComboBox.js +42 -1
  5. package/dist/ComboBox.js.map +1 -1
  6. package/dist/Input.d.ts +15 -0
  7. package/dist/Input.js +43 -1
  8. package/dist/Input.js.map +1 -1
  9. package/dist/MultiComboBox.d.ts +16 -0
  10. package/dist/MultiComboBox.js +59 -6
  11. package/dist/MultiComboBox.js.map +1 -1
  12. package/dist/MultiInput.js +1 -1
  13. package/dist/MultiInput.js.map +1 -1
  14. package/dist/css/themes/Avatar.css +1 -1
  15. package/dist/css/themes/AvatarGroup.css +1 -1
  16. package/dist/css/themes/Bar.css +1 -1
  17. package/dist/css/themes/Breadcrumbs.css +1 -1
  18. package/dist/css/themes/BusyIndicator.css +1 -1
  19. package/dist/css/themes/Button.css +1 -1
  20. package/dist/css/themes/ButtonBadge.css +1 -1
  21. package/dist/css/themes/Calendar.css +1 -1
  22. package/dist/css/themes/CalendarHeader.css +1 -1
  23. package/dist/css/themes/CalendarLegend.css +1 -1
  24. package/dist/css/themes/CalendarLegendItem.css +1 -1
  25. package/dist/css/themes/Card.css +1 -1
  26. package/dist/css/themes/CardHeader.css +1 -1
  27. package/dist/css/themes/Carousel.css +1 -1
  28. package/dist/css/themes/CheckBox.css +1 -1
  29. package/dist/css/themes/ColorPalette.css +1 -1
  30. package/dist/css/themes/ColorPaletteItem.css +1 -1
  31. package/dist/css/themes/ColorPalettePopover.css +1 -1
  32. package/dist/css/themes/ColorPicker.css +1 -1
  33. package/dist/css/themes/ComboBox.css +1 -1
  34. package/dist/css/themes/ComboBoxItem.css +1 -1
  35. package/dist/css/themes/DatePicker.css +1 -1
  36. package/dist/css/themes/DateTimePickerPopover.css +1 -1
  37. package/dist/css/themes/DayPicker.css +1 -1
  38. package/dist/css/themes/Dialog.css +1 -1
  39. package/dist/css/themes/DynamicDateRange.css +1 -1
  40. package/dist/css/themes/DynamicDateRangePopover.css +1 -1
  41. package/dist/css/themes/FileUploader.css +1 -1
  42. package/dist/css/themes/Form.css +1 -1
  43. package/dist/css/themes/FormItem.css +1 -1
  44. package/dist/css/themes/FormItemSpan.css +1 -1
  45. package/dist/css/themes/GrowingButton.css +1 -1
  46. package/dist/css/themes/Icon.css +1 -1
  47. package/dist/css/themes/Input.css +1 -1
  48. package/dist/css/themes/InputIcon.css +1 -1
  49. package/dist/css/themes/InputSharedStyles.css +1 -1
  50. package/dist/css/themes/Link.css +1 -1
  51. package/dist/css/themes/List.css +1 -1
  52. package/dist/css/themes/ListItem.css +1 -1
  53. package/dist/css/themes/ListItemBase.css +1 -1
  54. package/dist/css/themes/ListItemCustom.css +1 -1
  55. package/dist/css/themes/ListItemGroup.css +1 -1
  56. package/dist/css/themes/ListItemGroupHeader.css +1 -1
  57. package/dist/css/themes/ListItemIcon.css +1 -1
  58. package/dist/css/themes/Menu.css +1 -1
  59. package/dist/css/themes/MenuItem.css +1 -1
  60. package/dist/css/themes/MessageStrip.css +1 -1
  61. package/dist/css/themes/MonthPicker.css +1 -1
  62. package/dist/css/themes/MultiComboBox.css +1 -1
  63. package/dist/css/themes/MultiComboBoxItem.css +1 -1
  64. package/dist/css/themes/MultiComboBoxPopover.css +1 -1
  65. package/dist/css/themes/MultiInput.css +1 -1
  66. package/dist/css/themes/OptionBase.css +1 -1
  67. package/dist/css/themes/Panel.css +1 -1
  68. package/dist/css/themes/Popover.css +1 -1
  69. package/dist/css/themes/PopupsCommon.css +1 -1
  70. package/dist/css/themes/ProgressIndicator.css +1 -1
  71. package/dist/css/themes/RadioButton.css +1 -1
  72. package/dist/css/themes/RangeSlider.css +1 -1
  73. package/dist/css/themes/RatingIndicator.css +1 -1
  74. package/dist/css/themes/ResponsivePopover.css +1 -1
  75. package/dist/css/themes/ResponsivePopoverCommon.css +1 -1
  76. package/dist/css/themes/SegmentedButton.css +1 -1
  77. package/dist/css/themes/SegmentedButtonItem.css +1 -1
  78. package/dist/css/themes/Select.css +1 -1
  79. package/dist/css/themes/SliderBase.css +1 -1
  80. package/dist/css/themes/SplitButton.css +1 -1
  81. package/dist/css/themes/StepInput.css +1 -1
  82. package/dist/css/themes/SuggestionItem.css +1 -1
  83. package/dist/css/themes/SuggestionItemCustom.css +1 -1
  84. package/dist/css/themes/Switch.css +1 -1
  85. package/dist/css/themes/TabContainer.css +1 -1
  86. package/dist/css/themes/TabInOverflow.css +1 -1
  87. package/dist/css/themes/TabInStrip.css +1 -1
  88. package/dist/css/themes/TabSemanticIcon.css +1 -1
  89. package/dist/css/themes/TabSeparatorInOverflow.css +1 -1
  90. package/dist/css/themes/TableCellBase.css +1 -1
  91. package/dist/css/themes/TableHeaderRow.css +1 -1
  92. package/dist/css/themes/TableRow.css +1 -1
  93. package/dist/css/themes/TableRowActionBase.css +1 -1
  94. package/dist/css/themes/TableRowBase.css +1 -1
  95. package/dist/css/themes/Tag.css +1 -1
  96. package/dist/css/themes/Text.css +1 -1
  97. package/dist/css/themes/TextArea.css +1 -1
  98. package/dist/css/themes/TimePicker.css +1 -1
  99. package/dist/css/themes/Toast.css +1 -1
  100. package/dist/css/themes/ToggleButton.css +1 -1
  101. package/dist/css/themes/Token.css +1 -1
  102. package/dist/css/themes/Tokenizer.css +1 -1
  103. package/dist/css/themes/TokenizerPopover.css +1 -1
  104. package/dist/css/themes/Toolbar.css +1 -1
  105. package/dist/css/themes/ToolbarButton.css +1 -1
  106. package/dist/css/themes/ToolbarPopover.css +1 -1
  107. package/dist/css/themes/ToolbarSeparator.css +1 -1
  108. package/dist/css/themes/TreeItem.css +1 -1
  109. package/dist/css/themes/ValueStateMessage.css +1 -1
  110. package/dist/css/themes/ValueStateVariables.css +1 -1
  111. package/dist/css/themes/YearPicker.css +1 -1
  112. package/dist/css/themes/YearRangePicker.css +1 -1
  113. package/dist/css/themes/sap_fiori_3/parameters-bundle.css +1 -1
  114. package/dist/css/themes/sap_fiori_3_dark/parameters-bundle.css +1 -1
  115. package/dist/css/themes/sap_fiori_3_hcb/parameters-bundle.css +1 -1
  116. package/dist/css/themes/sap_fiori_3_hcw/parameters-bundle.css +1 -1
  117. package/dist/css/themes/sap_horizon/parameters-bundle.css +1 -1
  118. package/dist/css/themes/sap_horizon_dark/parameters-bundle.css +1 -1
  119. package/dist/css/themes/sap_horizon_hcb/parameters-bundle.css +1 -1
  120. package/dist/css/themes/sap_horizon_hcw/parameters-bundle.css +1 -1
  121. package/dist/custom-elements-internal.json +15 -0
  122. package/dist/custom-elements.json +15 -0
  123. package/dist/features/InputComposition.d.ts +12 -0
  124. package/dist/features/InputComposition.js +30 -0
  125. package/dist/features/InputComposition.js.map +1 -0
  126. package/dist/generated/assets/themes/sap_fiori_3/parameters-bundle.css.json +1 -1
  127. package/dist/generated/assets/themes/sap_fiori_3_dark/parameters-bundle.css.json +1 -1
  128. package/dist/generated/assets/themes/sap_fiori_3_hcb/parameters-bundle.css.json +1 -1
  129. package/dist/generated/assets/themes/sap_fiori_3_hcw/parameters-bundle.css.json +1 -1
  130. package/dist/generated/assets/themes/sap_horizon/parameters-bundle.css.json +1 -1
  131. package/dist/generated/assets/themes/sap_horizon_dark/parameters-bundle.css.json +1 -1
  132. package/dist/generated/assets/themes/sap_horizon_hcb/parameters-bundle.css.json +1 -1
  133. package/dist/generated/assets/themes/sap_horizon_hcw/parameters-bundle.css.json +1 -1
  134. package/dist/generated/themes/Avatar.css.d.ts +1 -1
  135. package/dist/generated/themes/Avatar.css.js +1 -1
  136. package/dist/generated/themes/Avatar.css.js.map +1 -1
  137. package/dist/generated/themes/AvatarGroup.css.d.ts +1 -1
  138. package/dist/generated/themes/AvatarGroup.css.js +1 -1
  139. package/dist/generated/themes/AvatarGroup.css.js.map +1 -1
  140. package/dist/generated/themes/Bar.css.d.ts +1 -1
  141. package/dist/generated/themes/Bar.css.js +1 -1
  142. package/dist/generated/themes/Bar.css.js.map +1 -1
  143. package/dist/generated/themes/Breadcrumbs.css.d.ts +1 -1
  144. package/dist/generated/themes/Breadcrumbs.css.js +1 -1
  145. package/dist/generated/themes/Breadcrumbs.css.js.map +1 -1
  146. package/dist/generated/themes/BusyIndicator.css.d.ts +1 -1
  147. package/dist/generated/themes/BusyIndicator.css.js +1 -1
  148. package/dist/generated/themes/BusyIndicator.css.js.map +1 -1
  149. package/dist/generated/themes/Button.css.d.ts +1 -1
  150. package/dist/generated/themes/Button.css.js +1 -1
  151. package/dist/generated/themes/Button.css.js.map +1 -1
  152. package/dist/generated/themes/ButtonBadge.css.d.ts +1 -1
  153. package/dist/generated/themes/ButtonBadge.css.js +1 -1
  154. package/dist/generated/themes/ButtonBadge.css.js.map +1 -1
  155. package/dist/generated/themes/Calendar.css.d.ts +1 -1
  156. package/dist/generated/themes/Calendar.css.js +1 -1
  157. package/dist/generated/themes/Calendar.css.js.map +1 -1
  158. package/dist/generated/themes/CalendarHeader.css.d.ts +1 -1
  159. package/dist/generated/themes/CalendarHeader.css.js +1 -1
  160. package/dist/generated/themes/CalendarHeader.css.js.map +1 -1
  161. package/dist/generated/themes/CalendarLegend.css.d.ts +1 -1
  162. package/dist/generated/themes/CalendarLegend.css.js +1 -1
  163. package/dist/generated/themes/CalendarLegend.css.js.map +1 -1
  164. package/dist/generated/themes/CalendarLegendItem.css.d.ts +1 -1
  165. package/dist/generated/themes/CalendarLegendItem.css.js +1 -1
  166. package/dist/generated/themes/CalendarLegendItem.css.js.map +1 -1
  167. package/dist/generated/themes/Card.css.d.ts +1 -1
  168. package/dist/generated/themes/Card.css.js +1 -1
  169. package/dist/generated/themes/Card.css.js.map +1 -1
  170. package/dist/generated/themes/CardHeader.css.d.ts +1 -1
  171. package/dist/generated/themes/CardHeader.css.js +1 -1
  172. package/dist/generated/themes/CardHeader.css.js.map +1 -1
  173. package/dist/generated/themes/Carousel.css.d.ts +1 -1
  174. package/dist/generated/themes/Carousel.css.js +1 -1
  175. package/dist/generated/themes/Carousel.css.js.map +1 -1
  176. package/dist/generated/themes/CheckBox.css.d.ts +1 -1
  177. package/dist/generated/themes/CheckBox.css.js +1 -1
  178. package/dist/generated/themes/CheckBox.css.js.map +1 -1
  179. package/dist/generated/themes/ColorPalette.css.d.ts +1 -1
  180. package/dist/generated/themes/ColorPalette.css.js +1 -1
  181. package/dist/generated/themes/ColorPalette.css.js.map +1 -1
  182. package/dist/generated/themes/ColorPaletteItem.css.d.ts +1 -1
  183. package/dist/generated/themes/ColorPaletteItem.css.js +1 -1
  184. package/dist/generated/themes/ColorPaletteItem.css.js.map +1 -1
  185. package/dist/generated/themes/ColorPalettePopover.css.d.ts +1 -1
  186. package/dist/generated/themes/ColorPalettePopover.css.js +1 -1
  187. package/dist/generated/themes/ColorPalettePopover.css.js.map +1 -1
  188. package/dist/generated/themes/ColorPicker.css.d.ts +1 -1
  189. package/dist/generated/themes/ColorPicker.css.js +1 -1
  190. package/dist/generated/themes/ColorPicker.css.js.map +1 -1
  191. package/dist/generated/themes/ComboBox.css.d.ts +1 -1
  192. package/dist/generated/themes/ComboBox.css.js +1 -1
  193. package/dist/generated/themes/ComboBox.css.js.map +1 -1
  194. package/dist/generated/themes/ComboBoxItem.css.d.ts +1 -1
  195. package/dist/generated/themes/ComboBoxItem.css.js +1 -1
  196. package/dist/generated/themes/ComboBoxItem.css.js.map +1 -1
  197. package/dist/generated/themes/DatePicker.css.d.ts +1 -1
  198. package/dist/generated/themes/DatePicker.css.js +1 -1
  199. package/dist/generated/themes/DatePicker.css.js.map +1 -1
  200. package/dist/generated/themes/DateTimePickerPopover.css.d.ts +1 -1
  201. package/dist/generated/themes/DateTimePickerPopover.css.js +1 -1
  202. package/dist/generated/themes/DateTimePickerPopover.css.js.map +1 -1
  203. package/dist/generated/themes/DayPicker.css.d.ts +1 -1
  204. package/dist/generated/themes/DayPicker.css.js +1 -1
  205. package/dist/generated/themes/DayPicker.css.js.map +1 -1
  206. package/dist/generated/themes/Dialog.css.d.ts +1 -1
  207. package/dist/generated/themes/Dialog.css.js +1 -1
  208. package/dist/generated/themes/Dialog.css.js.map +1 -1
  209. package/dist/generated/themes/DynamicDateRange.css.d.ts +1 -1
  210. package/dist/generated/themes/DynamicDateRange.css.js +1 -1
  211. package/dist/generated/themes/DynamicDateRange.css.js.map +1 -1
  212. package/dist/generated/themes/DynamicDateRangePopover.css.d.ts +1 -1
  213. package/dist/generated/themes/DynamicDateRangePopover.css.js +1 -1
  214. package/dist/generated/themes/DynamicDateRangePopover.css.js.map +1 -1
  215. package/dist/generated/themes/FileUploader.css.d.ts +1 -1
  216. package/dist/generated/themes/FileUploader.css.js +1 -1
  217. package/dist/generated/themes/FileUploader.css.js.map +1 -1
  218. package/dist/generated/themes/Form.css.d.ts +1 -1
  219. package/dist/generated/themes/Form.css.js +1 -1
  220. package/dist/generated/themes/Form.css.js.map +1 -1
  221. package/dist/generated/themes/FormItem.css.d.ts +1 -1
  222. package/dist/generated/themes/FormItem.css.js +1 -1
  223. package/dist/generated/themes/FormItem.css.js.map +1 -1
  224. package/dist/generated/themes/FormItemSpan.css.d.ts +1 -1
  225. package/dist/generated/themes/FormItemSpan.css.js +1 -1
  226. package/dist/generated/themes/FormItemSpan.css.js.map +1 -1
  227. package/dist/generated/themes/GrowingButton.css.d.ts +1 -1
  228. package/dist/generated/themes/GrowingButton.css.js +1 -1
  229. package/dist/generated/themes/GrowingButton.css.js.map +1 -1
  230. package/dist/generated/themes/Icon.css.d.ts +1 -1
  231. package/dist/generated/themes/Icon.css.js +1 -1
  232. package/dist/generated/themes/Icon.css.js.map +1 -1
  233. package/dist/generated/themes/Input.css.d.ts +1 -1
  234. package/dist/generated/themes/Input.css.js +1 -1
  235. package/dist/generated/themes/Input.css.js.map +1 -1
  236. package/dist/generated/themes/InputIcon.css.d.ts +1 -1
  237. package/dist/generated/themes/InputIcon.css.js +1 -1
  238. package/dist/generated/themes/InputIcon.css.js.map +1 -1
  239. package/dist/generated/themes/InputSharedStyles.css.d.ts +1 -1
  240. package/dist/generated/themes/InputSharedStyles.css.js +1 -1
  241. package/dist/generated/themes/InputSharedStyles.css.js.map +1 -1
  242. package/dist/generated/themes/Link.css.d.ts +1 -1
  243. package/dist/generated/themes/Link.css.js +1 -1
  244. package/dist/generated/themes/Link.css.js.map +1 -1
  245. package/dist/generated/themes/List.css.d.ts +1 -1
  246. package/dist/generated/themes/List.css.js +1 -1
  247. package/dist/generated/themes/List.css.js.map +1 -1
  248. package/dist/generated/themes/ListItem.css.d.ts +1 -1
  249. package/dist/generated/themes/ListItem.css.js +1 -1
  250. package/dist/generated/themes/ListItem.css.js.map +1 -1
  251. package/dist/generated/themes/ListItemBase.css.d.ts +1 -1
  252. package/dist/generated/themes/ListItemBase.css.js +1 -1
  253. package/dist/generated/themes/ListItemBase.css.js.map +1 -1
  254. package/dist/generated/themes/ListItemCustom.css.d.ts +1 -1
  255. package/dist/generated/themes/ListItemCustom.css.js +1 -1
  256. package/dist/generated/themes/ListItemCustom.css.js.map +1 -1
  257. package/dist/generated/themes/ListItemGroup.css.d.ts +1 -1
  258. package/dist/generated/themes/ListItemGroup.css.js +1 -1
  259. package/dist/generated/themes/ListItemGroup.css.js.map +1 -1
  260. package/dist/generated/themes/ListItemGroupHeader.css.d.ts +1 -1
  261. package/dist/generated/themes/ListItemGroupHeader.css.js +1 -1
  262. package/dist/generated/themes/ListItemGroupHeader.css.js.map +1 -1
  263. package/dist/generated/themes/ListItemIcon.css.d.ts +1 -1
  264. package/dist/generated/themes/ListItemIcon.css.js +1 -1
  265. package/dist/generated/themes/ListItemIcon.css.js.map +1 -1
  266. package/dist/generated/themes/Menu.css.d.ts +1 -1
  267. package/dist/generated/themes/Menu.css.js +1 -1
  268. package/dist/generated/themes/Menu.css.js.map +1 -1
  269. package/dist/generated/themes/MenuItem.css.d.ts +1 -1
  270. package/dist/generated/themes/MenuItem.css.js +1 -1
  271. package/dist/generated/themes/MenuItem.css.js.map +1 -1
  272. package/dist/generated/themes/MessageStrip.css.d.ts +1 -1
  273. package/dist/generated/themes/MessageStrip.css.js +1 -1
  274. package/dist/generated/themes/MessageStrip.css.js.map +1 -1
  275. package/dist/generated/themes/MonthPicker.css.d.ts +1 -1
  276. package/dist/generated/themes/MonthPicker.css.js +1 -1
  277. package/dist/generated/themes/MonthPicker.css.js.map +1 -1
  278. package/dist/generated/themes/MultiComboBox.css.d.ts +1 -1
  279. package/dist/generated/themes/MultiComboBox.css.js +1 -1
  280. package/dist/generated/themes/MultiComboBox.css.js.map +1 -1
  281. package/dist/generated/themes/MultiComboBoxItem.css.d.ts +1 -1
  282. package/dist/generated/themes/MultiComboBoxItem.css.js +1 -1
  283. package/dist/generated/themes/MultiComboBoxItem.css.js.map +1 -1
  284. package/dist/generated/themes/MultiComboBoxPopover.css.d.ts +1 -1
  285. package/dist/generated/themes/MultiComboBoxPopover.css.js +1 -1
  286. package/dist/generated/themes/MultiComboBoxPopover.css.js.map +1 -1
  287. package/dist/generated/themes/MultiInput.css.d.ts +1 -1
  288. package/dist/generated/themes/MultiInput.css.js +1 -1
  289. package/dist/generated/themes/MultiInput.css.js.map +1 -1
  290. package/dist/generated/themes/OptionBase.css.d.ts +1 -1
  291. package/dist/generated/themes/OptionBase.css.js +1 -1
  292. package/dist/generated/themes/OptionBase.css.js.map +1 -1
  293. package/dist/generated/themes/Panel.css.d.ts +1 -1
  294. package/dist/generated/themes/Panel.css.js +1 -1
  295. package/dist/generated/themes/Panel.css.js.map +1 -1
  296. package/dist/generated/themes/Popover.css.d.ts +1 -1
  297. package/dist/generated/themes/Popover.css.js +1 -1
  298. package/dist/generated/themes/Popover.css.js.map +1 -1
  299. package/dist/generated/themes/PopupsCommon.css.d.ts +1 -1
  300. package/dist/generated/themes/PopupsCommon.css.js +1 -1
  301. package/dist/generated/themes/PopupsCommon.css.js.map +1 -1
  302. package/dist/generated/themes/ProgressIndicator.css.d.ts +1 -1
  303. package/dist/generated/themes/ProgressIndicator.css.js +1 -1
  304. package/dist/generated/themes/ProgressIndicator.css.js.map +1 -1
  305. package/dist/generated/themes/RadioButton.css.d.ts +1 -1
  306. package/dist/generated/themes/RadioButton.css.js +1 -1
  307. package/dist/generated/themes/RadioButton.css.js.map +1 -1
  308. package/dist/generated/themes/RangeSlider.css.d.ts +1 -1
  309. package/dist/generated/themes/RangeSlider.css.js +1 -1
  310. package/dist/generated/themes/RangeSlider.css.js.map +1 -1
  311. package/dist/generated/themes/RatingIndicator.css.d.ts +1 -1
  312. package/dist/generated/themes/RatingIndicator.css.js +1 -1
  313. package/dist/generated/themes/RatingIndicator.css.js.map +1 -1
  314. package/dist/generated/themes/ResponsivePopover.css.d.ts +1 -1
  315. package/dist/generated/themes/ResponsivePopover.css.js +1 -1
  316. package/dist/generated/themes/ResponsivePopover.css.js.map +1 -1
  317. package/dist/generated/themes/ResponsivePopoverCommon.css.d.ts +1 -1
  318. package/dist/generated/themes/ResponsivePopoverCommon.css.js +1 -1
  319. package/dist/generated/themes/ResponsivePopoverCommon.css.js.map +1 -1
  320. package/dist/generated/themes/SegmentedButton.css.d.ts +1 -1
  321. package/dist/generated/themes/SegmentedButton.css.js +1 -1
  322. package/dist/generated/themes/SegmentedButton.css.js.map +1 -1
  323. package/dist/generated/themes/SegmentedButtonItem.css.d.ts +1 -1
  324. package/dist/generated/themes/SegmentedButtonItem.css.js +1 -1
  325. package/dist/generated/themes/SegmentedButtonItem.css.js.map +1 -1
  326. package/dist/generated/themes/Select.css.d.ts +1 -1
  327. package/dist/generated/themes/Select.css.js +1 -1
  328. package/dist/generated/themes/Select.css.js.map +1 -1
  329. package/dist/generated/themes/SliderBase.css.d.ts +1 -1
  330. package/dist/generated/themes/SliderBase.css.js +1 -1
  331. package/dist/generated/themes/SliderBase.css.js.map +1 -1
  332. package/dist/generated/themes/SplitButton.css.d.ts +1 -1
  333. package/dist/generated/themes/SplitButton.css.js +1 -1
  334. package/dist/generated/themes/SplitButton.css.js.map +1 -1
  335. package/dist/generated/themes/StepInput.css.d.ts +1 -1
  336. package/dist/generated/themes/StepInput.css.js +1 -1
  337. package/dist/generated/themes/StepInput.css.js.map +1 -1
  338. package/dist/generated/themes/SuggestionItem.css.d.ts +1 -1
  339. package/dist/generated/themes/SuggestionItem.css.js +1 -1
  340. package/dist/generated/themes/SuggestionItem.css.js.map +1 -1
  341. package/dist/generated/themes/SuggestionItemCustom.css.d.ts +1 -1
  342. package/dist/generated/themes/SuggestionItemCustom.css.js +1 -1
  343. package/dist/generated/themes/SuggestionItemCustom.css.js.map +1 -1
  344. package/dist/generated/themes/Switch.css.d.ts +1 -1
  345. package/dist/generated/themes/Switch.css.js +1 -1
  346. package/dist/generated/themes/Switch.css.js.map +1 -1
  347. package/dist/generated/themes/TabContainer.css.d.ts +1 -1
  348. package/dist/generated/themes/TabContainer.css.js +1 -1
  349. package/dist/generated/themes/TabContainer.css.js.map +1 -1
  350. package/dist/generated/themes/TabInOverflow.css.d.ts +1 -1
  351. package/dist/generated/themes/TabInOverflow.css.js +1 -1
  352. package/dist/generated/themes/TabInOverflow.css.js.map +1 -1
  353. package/dist/generated/themes/TabInStrip.css.d.ts +1 -1
  354. package/dist/generated/themes/TabInStrip.css.js +1 -1
  355. package/dist/generated/themes/TabInStrip.css.js.map +1 -1
  356. package/dist/generated/themes/TabSemanticIcon.css.d.ts +1 -1
  357. package/dist/generated/themes/TabSemanticIcon.css.js +1 -1
  358. package/dist/generated/themes/TabSemanticIcon.css.js.map +1 -1
  359. package/dist/generated/themes/TabSeparatorInOverflow.css.d.ts +1 -1
  360. package/dist/generated/themes/TabSeparatorInOverflow.css.js +1 -1
  361. package/dist/generated/themes/TabSeparatorInOverflow.css.js.map +1 -1
  362. package/dist/generated/themes/TableCellBase.css.d.ts +1 -1
  363. package/dist/generated/themes/TableCellBase.css.js +1 -1
  364. package/dist/generated/themes/TableCellBase.css.js.map +1 -1
  365. package/dist/generated/themes/TableHeaderRow.css.d.ts +1 -1
  366. package/dist/generated/themes/TableHeaderRow.css.js +1 -1
  367. package/dist/generated/themes/TableHeaderRow.css.js.map +1 -1
  368. package/dist/generated/themes/TableRow.css.d.ts +1 -1
  369. package/dist/generated/themes/TableRow.css.js +1 -1
  370. package/dist/generated/themes/TableRow.css.js.map +1 -1
  371. package/dist/generated/themes/TableRowActionBase.css.d.ts +1 -1
  372. package/dist/generated/themes/TableRowActionBase.css.js +1 -1
  373. package/dist/generated/themes/TableRowActionBase.css.js.map +1 -1
  374. package/dist/generated/themes/TableRowBase.css.d.ts +1 -1
  375. package/dist/generated/themes/TableRowBase.css.js +1 -1
  376. package/dist/generated/themes/TableRowBase.css.js.map +1 -1
  377. package/dist/generated/themes/Tag.css.d.ts +1 -1
  378. package/dist/generated/themes/Tag.css.js +1 -1
  379. package/dist/generated/themes/Tag.css.js.map +1 -1
  380. package/dist/generated/themes/Text.css.d.ts +1 -1
  381. package/dist/generated/themes/Text.css.js +1 -1
  382. package/dist/generated/themes/Text.css.js.map +1 -1
  383. package/dist/generated/themes/TextArea.css.d.ts +1 -1
  384. package/dist/generated/themes/TextArea.css.js +1 -1
  385. package/dist/generated/themes/TextArea.css.js.map +1 -1
  386. package/dist/generated/themes/TimePicker.css.d.ts +1 -1
  387. package/dist/generated/themes/TimePicker.css.js +1 -1
  388. package/dist/generated/themes/TimePicker.css.js.map +1 -1
  389. package/dist/generated/themes/Toast.css.d.ts +1 -1
  390. package/dist/generated/themes/Toast.css.js +1 -1
  391. package/dist/generated/themes/Toast.css.js.map +1 -1
  392. package/dist/generated/themes/ToggleButton.css.d.ts +1 -1
  393. package/dist/generated/themes/ToggleButton.css.js +1 -1
  394. package/dist/generated/themes/ToggleButton.css.js.map +1 -1
  395. package/dist/generated/themes/Token.css.d.ts +1 -1
  396. package/dist/generated/themes/Token.css.js +1 -1
  397. package/dist/generated/themes/Token.css.js.map +1 -1
  398. package/dist/generated/themes/Tokenizer.css.d.ts +1 -1
  399. package/dist/generated/themes/Tokenizer.css.js +1 -1
  400. package/dist/generated/themes/Tokenizer.css.js.map +1 -1
  401. package/dist/generated/themes/TokenizerPopover.css.d.ts +1 -1
  402. package/dist/generated/themes/TokenizerPopover.css.js +1 -1
  403. package/dist/generated/themes/TokenizerPopover.css.js.map +1 -1
  404. package/dist/generated/themes/Toolbar.css.d.ts +1 -1
  405. package/dist/generated/themes/Toolbar.css.js +1 -1
  406. package/dist/generated/themes/Toolbar.css.js.map +1 -1
  407. package/dist/generated/themes/ToolbarButton.css.d.ts +1 -1
  408. package/dist/generated/themes/ToolbarButton.css.js +1 -1
  409. package/dist/generated/themes/ToolbarButton.css.js.map +1 -1
  410. package/dist/generated/themes/ToolbarPopover.css.d.ts +1 -1
  411. package/dist/generated/themes/ToolbarPopover.css.js +1 -1
  412. package/dist/generated/themes/ToolbarPopover.css.js.map +1 -1
  413. package/dist/generated/themes/ToolbarSeparator.css.d.ts +1 -1
  414. package/dist/generated/themes/ToolbarSeparator.css.js +1 -1
  415. package/dist/generated/themes/ToolbarSeparator.css.js.map +1 -1
  416. package/dist/generated/themes/TreeItem.css.d.ts +1 -1
  417. package/dist/generated/themes/TreeItem.css.js +1 -1
  418. package/dist/generated/themes/TreeItem.css.js.map +1 -1
  419. package/dist/generated/themes/ValueStateMessage.css.d.ts +1 -1
  420. package/dist/generated/themes/ValueStateMessage.css.js +1 -1
  421. package/dist/generated/themes/ValueStateMessage.css.js.map +1 -1
  422. package/dist/generated/themes/ValueStateVariables.css.d.ts +1 -1
  423. package/dist/generated/themes/ValueStateVariables.css.js +1 -1
  424. package/dist/generated/themes/ValueStateVariables.css.js.map +1 -1
  425. package/dist/generated/themes/YearPicker.css.d.ts +1 -1
  426. package/dist/generated/themes/YearPicker.css.js +1 -1
  427. package/dist/generated/themes/YearPicker.css.js.map +1 -1
  428. package/dist/generated/themes/YearRangePicker.css.d.ts +1 -1
  429. package/dist/generated/themes/YearRangePicker.css.js +1 -1
  430. package/dist/generated/themes/YearRangePicker.css.js.map +1 -1
  431. package/dist/generated/themes/sap_fiori_3/parameters-bundle.css.d.ts +1 -1
  432. package/dist/generated/themes/sap_fiori_3/parameters-bundle.css.js +1 -1
  433. package/dist/generated/themes/sap_fiori_3/parameters-bundle.css.js.map +1 -1
  434. package/dist/generated/themes/sap_fiori_3_dark/parameters-bundle.css.d.ts +1 -1
  435. package/dist/generated/themes/sap_fiori_3_dark/parameters-bundle.css.js +1 -1
  436. package/dist/generated/themes/sap_fiori_3_dark/parameters-bundle.css.js.map +1 -1
  437. package/dist/generated/themes/sap_fiori_3_hcb/parameters-bundle.css.d.ts +1 -1
  438. package/dist/generated/themes/sap_fiori_3_hcb/parameters-bundle.css.js +1 -1
  439. package/dist/generated/themes/sap_fiori_3_hcb/parameters-bundle.css.js.map +1 -1
  440. package/dist/generated/themes/sap_fiori_3_hcw/parameters-bundle.css.d.ts +1 -1
  441. package/dist/generated/themes/sap_fiori_3_hcw/parameters-bundle.css.js +1 -1
  442. package/dist/generated/themes/sap_fiori_3_hcw/parameters-bundle.css.js.map +1 -1
  443. package/dist/generated/themes/sap_horizon/parameters-bundle.css.d.ts +1 -1
  444. package/dist/generated/themes/sap_horizon/parameters-bundle.css.js +1 -1
  445. package/dist/generated/themes/sap_horizon/parameters-bundle.css.js.map +1 -1
  446. package/dist/generated/themes/sap_horizon_dark/parameters-bundle.css.d.ts +1 -1
  447. package/dist/generated/themes/sap_horizon_dark/parameters-bundle.css.js +1 -1
  448. package/dist/generated/themes/sap_horizon_dark/parameters-bundle.css.js.map +1 -1
  449. package/dist/generated/themes/sap_horizon_hcb/parameters-bundle.css.d.ts +1 -1
  450. package/dist/generated/themes/sap_horizon_hcb/parameters-bundle.css.js +1 -1
  451. package/dist/generated/themes/sap_horizon_hcb/parameters-bundle.css.js.map +1 -1
  452. package/dist/generated/themes/sap_horizon_hcw/parameters-bundle.css.d.ts +1 -1
  453. package/dist/generated/themes/sap_horizon_hcw/parameters-bundle.css.js +1 -1
  454. package/dist/generated/themes/sap_horizon_hcw/parameters-bundle.css.js.map +1 -1
  455. package/dist/web-types.json +1 -1
  456. package/package.json +9 -9
@@ -19,6 +19,7 @@ import "./ComboBoxItemGroup.js";
19
19
  import type ComboBoxFilter from "./types/ComboBoxFilter.js";
20
20
  import PopoverHorizontalAlign from "./types/PopoverHorizontalAlign.js";
21
21
  import type { InputEventDetail } from "./Input.js";
22
+ import type InputComposition from "./features/InputComposition.js";
22
23
  /**
23
24
  * Interface for components that may be slotted inside a `ui5-combobox`
24
25
  * @public
@@ -220,6 +221,12 @@ declare class ComboBox extends UI5Element implements IFormInputElement {
220
221
  * @private
221
222
  */
222
223
  _linksListenersArray: Array<(args: any) => void>;
224
+ /**
225
+ * Indicates whether IME composition is currently active
226
+ * @default false
227
+ * @private
228
+ */
229
+ _isComposing: boolean;
223
230
  /**
224
231
  * Defines the component items.
225
232
  * @public
@@ -252,7 +259,9 @@ declare class ComboBox extends UI5Element implements IFormInputElement {
252
259
  _selectedItemText: string;
253
260
  _userTypedValue: string;
254
261
  _valueStateLinks: Array<HTMLElement>;
262
+ _composition?: InputComposition;
255
263
  static i18nBundle: I18nBundle;
264
+ static composition: typeof InputComposition;
256
265
  get formValidityMessage(): string;
257
266
  get formValidity(): ValidityStateFlags;
258
267
  formElementAnchor(): Promise<HTMLElement | undefined>;
@@ -261,6 +270,7 @@ declare class ComboBox extends UI5Element implements IFormInputElement {
261
270
  onBeforeRendering(): void;
262
271
  get iconsCount(): number;
263
272
  onAfterRendering(): void;
273
+ onEnterDOM(): void;
264
274
  onExitDOM(): void;
265
275
  _focusin(e: FocusEvent): void;
266
276
  _focusout(e: FocusEvent): void;
@@ -316,6 +326,12 @@ declare class ComboBox extends UI5Element implements IFormInputElement {
316
326
  _makeAllVisible(item: IComboBoxItem): void;
317
327
  _scrollToItem(indexOfItem: number): void;
318
328
  _announceValueStateText(): void;
329
+ /**
330
+ * Enables IME composition handling.
331
+ * Dynamically loads the InputComposition feature and sets up event listeners.
332
+ * @private
333
+ */
334
+ _enableComposition(): void;
319
335
  get _headerTitleText(): string;
320
336
  get _iconAccessibleNameText(): string;
321
337
  get _popupLabel(): string;
package/dist/ComboBox.js CHANGED
@@ -210,6 +210,12 @@ let ComboBox = ComboBox_1 = class ComboBox extends UI5Element {
210
210
  * @private
211
211
  */
212
212
  this._linksListenersArray = [];
213
+ /**
214
+ * Indicates whether IME composition is currently active
215
+ * @default false
216
+ * @private
217
+ */
218
+ this._isComposing = false;
213
219
  this._initialRendering = true;
214
220
  this._itemFocused = false;
215
221
  // used only for Safari fix (check onAfterRendering)
@@ -264,8 +270,12 @@ let ComboBox = ComboBox_1 = class ComboBox extends UI5Element {
264
270
  this._valueStateLinks = this.linksInAriaValueStateHiddenText;
265
271
  }
266
272
  }
273
+ onEnterDOM() {
274
+ this._enableComposition();
275
+ }
267
276
  onExitDOM() {
268
277
  this._removeLinksEventListeners();
278
+ this._composition?.removeEventListeners();
269
279
  }
270
280
  _focusin(e) {
271
281
  this.focused = true;
@@ -404,7 +414,7 @@ let ComboBox = ComboBox_1 = class ComboBox extends UI5Element {
404
414
  this.filterValue = value;
405
415
  this._clearFocus();
406
416
  // autocomplete
407
- if (shouldAutocomplete && !isAndroid()) {
417
+ if (shouldAutocomplete && !this._isComposing && !isAndroid()) {
408
418
  this._handleTypeAhead(value, value);
409
419
  }
410
420
  this.fireDecoratorEvent("input");
@@ -903,6 +913,34 @@ let ComboBox = ComboBox_1 = class ComboBox extends UI5Element {
903
913
  announce(valueStateText, InvisibleMessageMode.Polite);
904
914
  }
905
915
  }
916
+ /**
917
+ * Enables IME composition handling.
918
+ * Dynamically loads the InputComposition feature and sets up event listeners.
919
+ * @private
920
+ */
921
+ _enableComposition() {
922
+ if (this._composition) {
923
+ return;
924
+ }
925
+ const setup = (InputCompositionClass) => {
926
+ this._composition = new InputCompositionClass({
927
+ getInputEl: () => this.inner,
928
+ updateCompositionState: (isComposing) => {
929
+ this._isComposing = isComposing;
930
+ },
931
+ });
932
+ this._composition.addEventListeners();
933
+ };
934
+ if (ComboBox_1.composition) {
935
+ setup(ComboBox_1.composition);
936
+ }
937
+ else {
938
+ import("./features/InputComposition.js").then(CompositionModule => {
939
+ ComboBox_1.composition = CompositionModule.default;
940
+ setup(CompositionModule.default);
941
+ });
942
+ }
943
+ }
906
944
  get _headerTitleText() {
907
945
  return ComboBox_1.i18nBundle.getText(INPUT_SUGGESTIONS_TITLE);
908
946
  }
@@ -1139,6 +1177,9 @@ __decorate([
1139
1177
  __decorate([
1140
1178
  property({ type: Array })
1141
1179
  ], ComboBox.prototype, "_linksListenersArray", void 0);
1180
+ __decorate([
1181
+ property({ type: Boolean, noAttribute: true })
1182
+ ], ComboBox.prototype, "_isComposing", void 0);
1142
1183
  __decorate([
1143
1184
  slot({
1144
1185
  type: HTMLElement,
@@ -1 +1 @@
1
- {"version":3,"file":"ComboBox.js","sourceRoot":"","sources":["../src/ComboBox.ts"],"names":[],"mappings":"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","sourcesContent":["import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event-strict.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot.js\";\nimport jsxRenderer from \"@ui5/webcomponents-base/dist/renderer/JsxRenderer.js\";\nimport ValueState from \"@ui5/webcomponents-base/dist/types/ValueState.js\";\nimport { isPhone, isAndroid, isMac } from \"@ui5/webcomponents-base/dist/Device.js\";\nimport InvisibleMessageMode from \"@ui5/webcomponents-base/dist/types/InvisibleMessageMode.js\";\nimport { getEffectiveAriaLabelText, getAssociatedLabelForTexts } from \"@ui5/webcomponents-base/dist/util/AccessibilityTextsHelper.js\";\nimport announce from \"@ui5/webcomponents-base/dist/util/InvisibleMessage.js\";\nimport { getScopedVarName } from \"@ui5/webcomponents-base/dist/CustomElementsScope.js\";\nimport \"@ui5/webcomponents-icons/dist/slim-arrow-down.js\";\nimport \"@ui5/webcomponents-icons/dist/decline.js\";\nimport \"@ui5/webcomponents-icons/dist/error.js\";\nimport \"@ui5/webcomponents-icons/dist/alert.js\";\nimport \"@ui5/webcomponents-icons/dist/sys-enter-2.js\";\nimport \"@ui5/webcomponents-icons/dist/information.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport i18n from \"@ui5/webcomponents-base/dist/decorators/i18n.js\";\nimport { submitForm } from \"@ui5/webcomponents-base/dist/features/InputElementsFormSupport.js\";\nimport type { IFormInputElement } from \"@ui5/webcomponents-base/dist/features/InputElementsFormSupport.js\";\nimport {\n\tisBackSpace,\n\tisDelete,\n\tisShow,\n\tisUp,\n\tisDown,\n\tisEnter,\n\tisEscape,\n\tisTabNext,\n\tisTabPrevious,\n\tisPageUp,\n\tisPageDown,\n\tisHome,\n\tisEnd,\n\tisCtrlAltF8,\n} from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport { attachListeners } from \"@ui5/webcomponents-base/dist/util/valueStateNavigation.js\";\nimport arraysAreEqual from \"@ui5/webcomponents-base/dist/util/arraysAreEqual.js\";\n\nimport type { IIcon } from \"./Icon.js\";\nimport * as Filters from \"./Filters.js\";\n\nimport {\n\tVALUE_STATE_SUCCESS,\n\tVALUE_STATE_ERROR,\n\tVALUE_STATE_WARNING,\n\tVALUE_STATE_INFORMATION,\n\tVALUE_STATE_TYPE_SUCCESS,\n\tVALUE_STATE_TYPE_INFORMATION,\n\tVALUE_STATE_TYPE_ERROR,\n\tVALUE_STATE_TYPE_WARNING,\n\tVALUE_STATE_LINK,\n\tVALUE_STATE_LINKS,\n\tVALUE_STATE_LINK_MAC,\n\tVALUE_STATE_LINKS_MAC,\n\tINPUT_SUGGESTIONS_TITLE,\n\tCOMBOBOX_AVAILABLE_OPTIONS,\n\tCOMBOBOX_DIALOG_OK_BUTTON,\n\tSELECT_OPTIONS,\n\tLIST_ITEM_POSITION,\n\tLIST_ITEM_GROUP_HEADER,\n\tINPUT_CLEAR_ICON_ACC_NAME,\n\tFORM_TEXTFIELD_REQUIRED,\n} from \"./generated/i18n/i18n-defaults.js\";\n\n// Templates\nimport ComboBoxTemplate from \"./ComboBoxTemplate.js\";\n\n// Styles\nimport ComboBoxCss from \"./generated/themes/ComboBox.css.js\";\nimport ComboBoxPopoverCss from \"./generated/themes/ComboBoxPopover.css.js\";\nimport ResponsivePopoverCommonCss from \"./generated/themes/ResponsivePopoverCommon.css.js\";\nimport ValueStateMessageCss from \"./generated/themes/ValueStateMessage.css.js\";\nimport SuggestionsCss from \"./generated/themes/Suggestions.css.js\";\n\nimport \"./ComboBoxItem.js\";\nimport type ComboBoxItem from \"./ComboBoxItem.js\";\nimport type Popover from \"./Popover.js\";\nimport type ResponsivePopover from \"./ResponsivePopover.js\";\nimport type List from \"./List.js\";\nimport type { ListItemClickEventDetail } from \"./List.js\";\n// eslint-disable-next-line\nimport \"./ComboBoxItemGroup.js\";\n// eslint-disable-next-line\nimport { isInstanceOfComboBoxItemGroup } from \"./ComboBoxItemGroup.js\";\nimport type ComboBoxFilter from \"./types/ComboBoxFilter.js\";\nimport PopoverHorizontalAlign from \"./types/PopoverHorizontalAlign.js\";\nimport type Input from \"./Input.js\";\nimport type { InputEventDetail } from \"./Input.js\";\n\nconst SKIP_ITEMS_SIZE = 10;\n\n/**\n * Interface for components that may be slotted inside a `ui5-combobox`\n * @public\n */\ninterface IComboBoxItem extends UI5Element {\n\ttext?: string,\n\theaderText?: string,\n\tfocused: boolean,\n\tisGroupItem?: boolean,\n\tselected?: boolean,\n\tadditionalText?: string,\n\t_isVisible?: boolean,\n\titems?: Array<IComboBoxItem>\n}\n\ntype ValueStateAnnouncement = Record<Exclude<ValueState, ValueState.None>, string>;\ntype ValueStateTypeAnnouncement = Record<Exclude<ValueState, ValueState.None>, string>;\n\nenum ValueStateIconMapping {\n\tNegative = \"error\",\n\tCritical = \"alert\",\n\tPositive = \"sys-enter-2\",\n\tInformation = \"information\",\n}\n\ntype ComboBoxSelectionChangeEventDetail = {\n\titem: ComboBoxItem | null,\n};\n\n/**\n * @class\n *\n * ### Overview\n *\n * The `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 *\n * It is commonly used to enable users to select an option from a predefined list.\n *\n * ### Structure\n * The `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 *\n * The `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\";`\n * @constructor\n * @extends UI5Element\n * @public\n * @since 1.0.0-rc.6\n */\n@customElement({\n\ttag: \"ui5-combobox\",\n\tlanguageAware: true,\n\tformAssociated: true,\n\trenderer: jsxRenderer,\n\tstyles: [\n\t\tComboBoxCss,\n\t\tResponsivePopoverCommonCss,\n\t\tValueStateMessageCss,\n\t\tComboBoxPopoverCss,\n\t\tSuggestionsCss,\n\t],\n\ttemplate: ComboBoxTemplate,\n})\n/**\n * Fired when the input operation has finished by pressing Enter, focusout or an item is selected.\n * @public\n */\n@event(\"change\", {\n\tbubbles: true,\n})\n\n/**\n * Fired when the dropdown is opened.\n * @since 2.9.0\n * @public\n */\n@event(\"open\", {\n\tbubbles: true,\n})\n\n/**\n * Fired when the dropdown is closed.\n * @since 2.9.0\n * @public\n */\n@event(\"close\")\n\n/**\n * Fired when typing in input or clear icon is pressed.\n *\n * **Note:** filterValue property is updated, input is changed.\n * @public\n */\n@event(\"input\", {\n\tbubbles: true,\n})\n/**\n * Fired when selection is changed by user interaction\n * @param {IComboBoxItem} item item to be selected.\n * @public\n */\n@event(\"selection-change\", {\n\tbubbles: true,\n})\n\nclass ComboBox extends UI5Element implements IFormInputElement {\n\teventDetails!: {\n\t\t\"change\": void,\n\t\t\"input\": void,\n\t\t\"open\": void,\n\t\t\"close\": void,\n\t\t\"selection-change\": ComboBoxSelectionChangeEventDetail,\n\t}\n\t/**\n\t * Defines the value of the component.\n\t * @default \"\"\n\t * @formEvents change input\n\t * @formProperty\n\t * @public\n\t */\n\t@property()\n\tvalue = \"\";\n\n\t/**\n\t * Determines the name by which the component will be identified upon submission in an HTML form.\n\t *\n\t * **Note:** This property is only applicable within the context of an HTML Form element.\n\t * @default undefined\n\t * @public\n\t * @since 2.0.0\n\t */\n\t@property()\n\tname?: string;\n\n\t/**\n\t * Defines whether the value will be autocompleted to match an item\n\t * @default false\n\t * @public\n\t * @since 1.19.0\n\t */\n\t@property({ type: Boolean })\n\tnoTypeahead = false;\n\n\t/**\n\t * Defines the \"live\" value of the component.\n\t *\n\t * **Note:** If we have an item e.g. \"Bulgaria\", \"B\" is typed, \"ulgaria\" is typed ahead, value will be \"Bulgaria\", filterValue will be \"B\".\n\t *\n\t * **Note:** Initially the filter value is synced with value.\n\t * @default \"\"\n\t * @private\n\t */\n\t@property()\n\tfilterValue = \"\"\n\n\t/**\n\t * Defines a short hint intended to aid the user with data entry when the\n\t * component has no value.\n\t * @default undefined\n\t * @public\n\t */\n\t@property()\n\tplaceholder?: string;\n\n\t/**\n\t * Defines whether the component is in disabled state.\n\t *\n\t * **Note:** A disabled component is completely noninteractive.\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\tdisabled = false;\n\n\t/**\n\t * Defines the value state of the component.\n\t * @default \"None\"\n\t * @public\n\t */\n\t@property()\n\tvalueState: `${ValueState}` = \"None\";\n\n\t/**\n\t * Defines whether the component is read-only.\n\t *\n\t * **Note:** A read-only component is not editable,\n\t * but still provides visual feedback upon user interaction.\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\treadonly = false;\n\n\t/**\n\t * Defines whether the component is required.\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\trequired = false;\n\n\t/**\n\t * Indicates whether a loading indicator should be shown in the picker.\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\tloading = false;\n\n\t/**\n\t * Defines the filter type of the component.\n\t * @default \"StartsWithPerTerm\"\n\t * @public\n\t */\n\t@property()\n\tfilter: `${ComboBoxFilter}` = \"StartsWithPerTerm\";\n\n\t/**\n\t * Defines whether the clear icon of the combobox will be shown.\n\t * @default false\n\t * @public\n\t * @since 1.20.1\n\t */\n\t@property({ type: Boolean })\n\tshowClearIcon = false;\n\n\t/**\n\t * Indicates whether the input is focused\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\tfocused = false;\n\n\t/**\n\t * Defines the accessible ARIA name of the component.\n\t * @default undefined\n\t * @public\n\t * @since 1.0.0-rc.15\n\t */\n\t@property()\n\taccessibleName?: string;\n\n\t/**\n\t * Receives id(or many ids) of the elements that label the component\n\t * @default undefined\n\t * @public\n\t * @since 1.0.0-rc.15\n\t */\n\t@property()\n\taccessibleNameRef?: string;\n\n\t@property({ type: Boolean, noAttribute: true })\n\t_iconPressed = false;\n\n\t@property({ type: Array })\n\t_filteredItems: Array<IComboBoxItem> = [];\n\n\t@property({ type: Number, noAttribute: true })\n\t_listWidth?: number;\n\n\t@property({ type: Boolean, noAttribute: true })\n\t_effectiveShowClearIcon = false\n\n\t/**\n\t * Indicates whether the value state message popover is open.\n\t * @private\n\t * @since 2.0.0\n\t */\n\t@property({ type: Boolean, noAttribute: true })\n\tvalueStateOpen = false;\n\n\t/**\n\t * Indicates whether the items picker is open.\n\t * @public\n\t * @since 2.9.0\n\t */\n\t@property({ type: Boolean })\n\topen = false;\n\n\t/**\n\t * Indicates whether link navigation is being handled.\n\t * @default false\n\t * @since 2.11.0\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\t_handleLinkNavigation: boolean = false;\n\n\t/**\n\t * @private\n\t */\n\t@property({ type: Array })\n\t_linksListenersArray: Array<(args: any) => void> = [];\n\n\t/**\n\t * Defines the component items.\n\t * @public\n\t */\n\t@slot({\n\t\ttype: HTMLElement,\n\t\t\"default\": true,\n\t\tindividualSlots: true,\n\t\tinvalidateOnChildChange: true,\n\t})\n\titems!: Array<IComboBoxItem>;\n\n\t/**\n\t * Defines the value state message that will be displayed as pop up under the component.\n\t * The value state message slot should contain only one root element.\n\t *\n\t * **Note:** If not specified, a default text (in the respective language) will be displayed.\n\t *\n\t * **Note:** The `valueStateMessage` would be displayed,\n\t * when the `ui5-combobox` is in `Information`, `Critical` or `Negative` value state.\n\t * @since 1.0.0-rc.9\n\t * @public\n\t */\n\t@slot()\n\tvalueStateMessage!: Array<HTMLElement>;\n\n\t/**\n\t * Defines the icon to be displayed in the input field.\n\t * @public\n\t * @since 1.0.0-rc.9\n\t */\n\t@slot()\n\ticon!: Array<IIcon>;\n\n\t_initialRendering = true;\n\t_itemFocused = false;\n\t// used only for Safari fix (check onAfterRendering)\n\t_autocomplete = false;\n\t_isKeyNavigation = false;\n\t_selectionPerformed = false;\n\t_lastValue: string;\n\t_selectedItemText = \"\";\n\t_userTypedValue = \"\";\n\t_valueStateLinks: Array<HTMLElement> = [];\n\t@i18n(\"@ui5/webcomponents\")\n\tstatic i18nBundle: I18nBundle;\n\n\tget formValidityMessage() {\n\t\treturn ComboBox.i18nBundle.getText(FORM_TEXTFIELD_REQUIRED);\n\t}\n\n\tget formValidity(): ValidityStateFlags {\n\t\treturn { valueMissing: this.required && !this.value };\n\t}\n\n\tasync formElementAnchor() {\n\t\treturn this.getFocusDomRefAsync();\n\t}\n\n\tget formFormattedValue() {\n\t\treturn this.value;\n\t}\n\n\tconstructor() {\n\t\tsuper();\n\n\t\t// when an initial value is set it should be considered as a _lastValue\n\t\tthis._lastValue = this.getAttribute(\"value\") || \"\";\n\t}\n\n\tonBeforeRendering() {\n\t\tthis._effectiveShowClearIcon = (this.showClearIcon && !!this.value && !this.readonly && !this.disabled);\n\n\t\tif (this._initialRendering || this.filter === \"None\") {\n\t\t\tthis._filteredItems = this.items;\n\t\t}\n\n\t\tif (this.open && !this._isKeyNavigation) {\n\t\t\tconst items = this._filterItems(this.filterValue);\n\t\t\tthis._filteredItems = (items.length && items) || [];\n\t\t}\n\n\t\tconst hasNoVisibleItems = !this._filteredItems.length || !this._filteredItems.some(i => i._isVisible);\n\n\t\t// If there is no filtered items matching the value, show all items when the arrow is pressed\n\t\tif (((hasNoVisibleItems && !isPhone()) && this.value)) {\n\t\t\tthis.items.forEach(this._makeAllVisible.bind(this));\n\t\t\tthis._filteredItems = this.items;\n\t\t}\n\n\t\tif (this.shouldOpenValueStateMessagePopover) {\n\t\t\tthis.valueStateOpen = true;\n\t\t} else {\n\t\t\tthis.valueStateOpen = false;\n\t\t}\n\n\t\tthis._selectMatchingItem();\n\t\tthis._initialRendering = false;\n\n\t\tthis.style.setProperty(getScopedVarName(\"--_ui5-input-icons-count\"), `${this.iconsCount}`);\n\t}\n\n\tget iconsCount() {\n\t\tconst slottedIconsCount = this.icon?.length || 0;\n\t\tconst clearIconCount = Number(this._effectiveShowClearIcon) ?? 0;\n\t\tconst arrowDownIconsCount = this.readonly ? 0 : 1;\n\n\t\treturn slottedIconsCount + clearIconCount + arrowDownIconsCount;\n\t}\n\n\tonAfterRendering() {\n\t\tif (this.inner && this.value !== this.inner.value) {\n\t\t\tthis.value = this.inner.value;\n\t\t}\n\n\t\tthis.storeResponsivePopoverWidth();\n\n\t\tif (!arraysAreEqual(this._valueStateLinks, this.linksInAriaValueStateHiddenText)) {\n\t\t\tthis._removeLinksEventListeners();\n\t\t\tthis._addLinksEventListeners();\n\t\t\tthis._valueStateLinks = this.linksInAriaValueStateHiddenText;\n\t\t}\n\t}\n\n\tonExitDOM() {\n\t\tthis._removeLinksEventListeners();\n\t}\n\n\t_focusin(e: FocusEvent) {\n\t\tthis.focused = true;\n\t\tthis._autocomplete = false;\n\n\t\tif (!e.relatedTarget || (e.relatedTarget !== this.shadowRoot!.querySelector(\".ui5-input-clear-icon\"))) {\n\t\t\tthis._lastValue = this.value;\n\t\t}\n\n\t\t!isPhone() && (e.target as HTMLInputElement).setSelectionRange(0, this.value.length);\n\t}\n\n\t_focusout(e: FocusEvent) {\n\t\tconst toBeFocused = e.relatedTarget as HTMLElement;\n\t\tconst clearIconWrapper = this.shadowRoot!.querySelector(\".ui5-input-clear-icon-wrapper\");\n\t\tconst focusedOutToClearIcon = clearIconWrapper === toBeFocused || clearIconWrapper?.contains(toBeFocused);\n\n\t\tif (this._effectiveShowClearIcon && focusedOutToClearIcon) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._fireChangeEvent();\n\n\t\tconst focusedOutToItemsPicker = this.open && this._getPicker().contains(toBeFocused);\n\t\tconst focusedOutToValueState = this.valueStateOpen && this.contains(toBeFocused);\n\n\t\tif (focusedOutToItemsPicker || focusedOutToValueState || this._handleLinkNavigation) {\n\t\t\te.stopImmediatePropagation();\n\t\t\treturn;\n\t\t}\n\n\t\tif (!(this.getDomRef()!.contains(toBeFocused)) && (this._getPicker() !== e.relatedTarget)) {\n\t\t\tthis.focused = false;\n\t\t}\n\t}\n\n\t_beforeOpenPopover() {\n\t\tif (isPhone()) {\n\t\t\tthis._getPickerInput().value = this.value;\n\t\t}\n\t}\n\n\t_afterOpenPopover() {\n\t\tthis._iconPressed = true;\n\t\tthis.inner.focus();\n\t\tthis.fireDecoratorEvent(\"open\");\n\n\t\tconst allItems = this._getItems();\n\t\tconst currentItem = allItems.find(item => {\n\t\t\treturn item.selected || item.focused;\n\t\t});\n\n\t\tif (currentItem) {\n\t\t\tthis._scrollToItem(allItems.indexOf(currentItem));\n\t\t}\n\t}\n\n\t_afterClosePopover() {\n\t\tthis._iconPressed = false;\n\t\tthis._filteredItems = this.items;\n\t\tthis.filterValue = \"\";\n\t\tthis._selectedItemText = \"\";\n\n\t\t// close device's keyboard and prevent further typing\n\t\tif (isPhone()) {\n\t\t\tthis.blur();\n\t\t}\n\n\t\tif (this._selectionPerformed) {\n\t\t\tthis._lastValue = this.value;\n\t\t\tthis._selectionPerformed = false;\n\t\t}\n\n\t\tthis.open = false;\n\t\tthis.fireDecoratorEvent(\"close\");\n\t}\n\n\t_toggleRespPopover() {\n\t\tif (this.open) {\n\t\t\tthis._closeRespPopover();\n\t\t} else {\n\t\t\tthis._openRespPopover();\n\t\t}\n\t}\n\n\tstoreResponsivePopoverWidth() {\n\t\tif (this.open && !this._listWidth) {\n\t\t\tthis._listWidth = this._getPicker().offsetWidth;\n\t\t}\n\t}\n\n\t_handleValueStatePopoverFocusout() {\n\t\tif (!this._handleLinkNavigation) {\n\t\t\tthis.focused = false;\n\t\t}\n\t}\n\n\t_handleValueStatePopoverAfterClose() {\n\t\tthis.valueStateOpen = false;\n\t}\n\n\t_getValueStatePopover() {\n\t\treturn this.shadowRoot!.querySelector<Popover>(\".ui5-valuestatemessage-popover\")!;\n\t}\n\n\t_getItemsList(): List {\n\t\treturn this._getPicker().querySelector(\".ui5-combobox-items-list\") as List;\n\t}\n\n\t_resetFilter() {\n\t\tthis._userTypedValue = \"\";\n\t\tthis.inner.setSelectionRange(0, this.value.length);\n\t\tthis._filteredItems = this._filterItems(\"\");\n\t\tthis._selectMatchingItem();\n\t}\n\n\t_resetItemVisibility() {\n\t\tthis.items.forEach(item => {\n\t\t\tif (isInstanceOfComboBoxItemGroup(item)) {\n\t\t\t\titem.items?.forEach(i => {\n\t\t\t\t\ti._isVisible = false;\n\t\t\t\t});\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\titem._isVisible = false;\n\t\t});\n\t}\n\n\t_arrowClick() {\n\t\tthis.inner.focus();\n\t\tthis._resetFilter();\n\n\t\tif (isPhone() && this.value && !this._lastValue) {\n\t\t\tthis._lastValue = this.value;\n\t\t}\n\n\t\tthis._toggleRespPopover();\n\t}\n\n\t_handleMobileKeydown(e: KeyboardEvent) {\n\t\tif (isEscape(e)) {\n\t\t\tthis.value = this._lastValue || \"\";\n\t\t\tthis.filterValue = this._lastValue || \"\";\n\t\t\tthis._closeRespPopover();\n\t\t}\n\t}\n\n\t_handleMobileInput(e: CustomEvent<InputEventDetail>) {\n\t\tconst { target } = e;\n\t\tthis.filterValue = (target as Input).value;\n\t\tthis.value = (target as Input).value;\n\t\tthis.fireDecoratorEvent(\"input\");\n\t}\n\n\t_input(e: InputEvent) {\n\t\tconst { value } = e.target as HTMLInputElement;\n\t\tconst shouldAutocomplete = this.shouldAutocomplete(e);\n\n\t\tif (e.target === this.inner) {\n\t\t\t// stop the native event, as the semantic \"input\" would be fired.\n\t\t\te.stopImmediatePropagation();\n\t\t\tthis.focused = true;\n\t\t}\n\n\t\tthis._filteredItems = this._filterItems(value);\n\n\t\tthis.value = value;\n\t\tthis.filterValue = value;\n\n\t\tthis._clearFocus();\n\n\t\t// autocomplete\n\t\tif (shouldAutocomplete && !isAndroid()) {\n\t\t\tthis._handleTypeAhead(value, value);\n\t\t}\n\n\t\tthis.fireDecoratorEvent(\"input\");\n\n\t\tif (isPhone()) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (!this._filteredItems.length || value === \"\") {\n\t\t\tthis._closeRespPopover();\n\t\t} else {\n\t\t\tthis._openRespPopover();\n\t\t}\n\t}\n\n\tshouldAutocomplete(e: InputEvent): boolean {\n\t\tconst eventType = e.inputType;\n\t\tconst allowedEventTypes = [\n\t\t\t\"deleteWordBackward\",\n\t\t\t\"deleteWordForward\",\n\t\t\t\"deleteSoftLineBackward\",\n\t\t\t\"deleteSoftLineForward\",\n\t\t\t\"deleteEntireSoftLine\",\n\t\t\t\"deleteHardLineBackward\",\n\t\t\t\"deleteHardLineForward\",\n\t\t\t\"deleteByDrag\",\n\t\t\t\"deleteByCut\",\n\t\t\t\"deleteContent\",\n\t\t\t\"deleteContentBackward\",\n\t\t\t\"deleteContentForward\",\n\t\t\t\"historyUndo\",\n\t\t];\n\n\t\treturn !this.noTypeahead && !allowedEventTypes.includes(eventType);\n\t}\n\n\t_startsWithMatchingItems(str: string): Array<IComboBoxItem> {\n\t\tconst allItems:Array<IComboBoxItem> = this._getItems().filter(item => !isInstanceOfComboBoxItemGroup(item));\n\t\treturn Filters.StartsWith(str, allItems, \"text\");\n\t}\n\n\t_clearFocus() {\n\t\tconst allItems = this._getItems();\n\n\t\tallItems.map(item => {\n\t\t\titem.focused = false;\n\n\t\t\treturn item;\n\t\t});\n\t}\n\n\t// Get groups and items as a flat array for filtering\n\t_getItems() {\n\t\tconst allItems: Array<IComboBoxItem> = [];\n\n\t\tthis._filteredItems.forEach(item => {\n\t\t\tif (isInstanceOfComboBoxItemGroup(item)) {\n\t\t\t\tconst visibleItems = this.open ? item.items.filter(i => i._isVisible) : item.items;\n\t\t\t\tconst groupedItems = [item, ...visibleItems];\n\t\t\t\tallItems.push(...groupedItems);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tallItems.push(item);\n\t\t});\n\n\t\treturn allItems;\n\t}\n\n\thandleNavKeyPress(e: KeyboardEvent) {\n\t\tconst allItems = this._getItems();\n\n\t\tif (this.focused && (isHome(e) || isEnd(e)) && this.value) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst isOpen = this.open;\n\t\tconst currentItem = allItems.find(item => {\n\t\t\treturn item.selected || item.focused;\n\t\t});\n\n\t\tconst indexOfItem = currentItem ? allItems.indexOf(currentItem) : -1;\n\t\te.preventDefault();\n\n\t\tif (this.focused && isOpen && (isUp(e) || isPageUp(e) || isPageDown(e))) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (allItems.length - 1 === indexOfItem && isDown(e)) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._isKeyNavigation = true;\n\n\t\tif (\n\t\t\te.key === \"ArrowDown\"\n\t\t\t|| e.key === \"ArrowUp\"\n\t\t\t|| e.key === \"PageUp\"\n\t\t\t|| e.key === \"PageDown\"\n\t\t\t|| e.key === \"Home\"\n\t\t\t|| e.key === \"End\"\n\t\t) {\n\t\t\tthis[`_handle${e.key}`](e, indexOfItem);\n\t\t}\n\t}\n\n\t_handleItemNavigation(e: KeyboardEvent, indexOfItem: number, isForward: boolean) {\n\t\tconst allItems = this._getItems();\n\n\t\tconst currentItem: IComboBoxItem = allItems[indexOfItem];\n\t\tconst isGroupItem = currentItem && currentItem.isGroupItem;\n\t\tconst nextItem = isForward ? allItems[indexOfItem + 1] : allItems[indexOfItem - 1];\n\n\t\tif ((!this.open) && ((isGroupItem && !nextItem) || (!isGroupItem && !currentItem))) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._clearFocus();\n\n\t\tif (this.open) {\n\t\t\tthis._itemFocused = true;\n\t\t\tthis.value = isGroupItem ? \"\" : currentItem.text!;\n\t\t\tthis.focused = false;\n\n\t\t\tcurrentItem.focused = true;\n\t\t} else {\n\t\t\tthis.focused = true;\n\t\t\tthis.value = isGroupItem ? nextItem.text! : currentItem.text!;\n\t\t\tcurrentItem.focused = false;\n\t\t}\n\n\t\tthis._announceSelectedItem(indexOfItem);\n\t\tthis._scrollToItem(indexOfItem);\n\n\t\tif (isGroupItem && this.open) {\n\t\t\treturn;\n\t\t}\n\t\t// autocomplete\n\t\tthis._handleTypeAhead(this.value, this.open ? this._userTypedValue : \"\");\n\n\t\tthis.fireDecoratorEvent(\"input\");\n\t}\n\n\t_handleTypeAhead(value: string, filterValue: string) {\n\t\tconst item = this._getFirstMatchingItem(value);\n\n\t\tif (!item) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._applyAtomicValueAndSelection(item, filterValue);\n\t}\n\n\t_handleArrowDown(e: KeyboardEvent, indexOfItem: number) {\n\t\tconst isOpen = this.open;\n\n\t\tif (this.focused && indexOfItem === -1 && isOpen) {\n\t\t\tthis.focused = false;\n\t\t}\n\n\t\tthis._handleItemNavigation(e, ++indexOfItem, true /* isForward */);\n\t}\n\n\t_handleArrowUp(e: KeyboardEvent, indexOfItem: number) {\n\t\tconst isOpen = this.open;\n\n\t\tif (indexOfItem === 0) {\n\t\t\tthis._clearFocus();\n\t\t\tthis._itemFocused = false;\n\t\t\tthis.focused = true;\n\n\t\t\tif (this.hasValueStateText && isOpen) {\n\t\t\t\tthis._filteredItems[0].selected = false;\n\t\t\t\tthis.value = this._userTypedValue;\n\t\t\t}\n\n\t\t\treturn;\n\t\t}\n\n\t\tthis._handleItemNavigation(e, --indexOfItem, false /* isForward */);\n\t}\n\n\t_handlePageUp(e: KeyboardEvent, indexOfItem: number) {\n\t\tconst allItems = this._getItems();\n\t\tconst isProposedIndexValid = indexOfItem - SKIP_ITEMS_SIZE > -1;\n\t\tindexOfItem = isProposedIndexValid ? indexOfItem - SKIP_ITEMS_SIZE : 0;\n\t\tconst shouldMoveForward = isInstanceOfComboBoxItemGroup(allItems[indexOfItem]) && !this.open;\n\n\t\tthis._handleItemNavigation(e, indexOfItem, shouldMoveForward);\n\t}\n\n\t_handlePageDown(e: KeyboardEvent, indexOfItem: number) {\n\t\tconst allItems = this._getItems();\n\t\tconst itemsLength = allItems.length;\n\t\tconst isProposedIndexValid = indexOfItem + SKIP_ITEMS_SIZE < itemsLength;\n\n\t\tindexOfItem = isProposedIndexValid ? indexOfItem + SKIP_ITEMS_SIZE : itemsLength - 1;\n\t\tconst shouldMoveForward = isInstanceOfComboBoxItemGroup(allItems[indexOfItem]) && !this.open;\n\n\t\tthis._handleItemNavigation(e, indexOfItem, shouldMoveForward);\n\t}\n\n\t_handleHome(e: KeyboardEvent) {\n\t\tconst shouldMoveForward = isInstanceOfComboBoxItemGroup(this._filteredItems[0]) && !this.open;\n\n\t\tthis._handleItemNavigation(e, 0, shouldMoveForward);\n\t}\n\n\t_handleEnd(e: KeyboardEvent) {\n\t\tthis._handleItemNavigation(e, this._getItems().length - 1, true /* isForward */);\n\t}\n\n\t_keyup() {\n\t\tthis._userTypedValue = this.value.substring(0, this.inner.selectionStart || 0);\n\t}\n\n\t_keydown(e: KeyboardEvent) {\n\t\tconst isNavKey = isDown(e) || isUp(e) || isPageUp(e) || isPageDown(e) || isHome(e) || isEnd(e);\n\t\tconst allItems: Array<IComboBoxItem> = this._getItems();\n\n\t\tthis._autocomplete = !(isBackSpace(e) || isDelete(e));\n\t\tthis._isKeyNavigation = false;\n\n\t\tif (isNavKey && !this.readonly && this._filteredItems.length) {\n\t\t\tthis.handleNavKeyPress(e);\n\t\t}\n\n\t\tif (isEnter(e)) {\n\t\t\tlet focusedItem: IComboBoxItem | undefined;\n\n\t\t\tthis._filteredItems.forEach(item => {\n\t\t\t\tif (isInstanceOfComboBoxItemGroup(item) && !focusedItem) {\n\t\t\t\t\tfocusedItem = item.items.find(groupItem => groupItem.focused);\n\t\t\t\t}\n\n\t\t\t\tif (item.focused) {\n\t\t\t\t\tfocusedItem = item;\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tthis._fireChangeEvent();\n\n\t\t\tif (this.open && !focusedItem?.isGroupItem) {\n\t\t\t\tthis._closeRespPopover();\n\t\t\t\tthis.focused = true;\n\t\t\t\tthis.inner.setSelectionRange(this.value.length, this.value.length);\n\t\t\t} else if (this._internals.form) {\n\t\t\t\tsubmitForm(this);\n\t\t\t}\n\t\t}\n\n\t\tif (isEscape(e)) {\n\t\t\tthis.focused = true;\n\t\t\tthis.value = !this.open ? this._lastValue : this.value;\n\t\t}\n\n\t\tif ((isTabNext(e) || isTabPrevious(e)) && this.open) {\n\t\t\tthis._closeRespPopover();\n\t\t}\n\n\t\tif (isShow(e) && !this.readonly && !this.disabled) {\n\t\t\te.preventDefault();\n\n\t\t\tthis._resetFilter();\n\t\t\tthis._toggleRespPopover();\n\n\t\t\tconst selectedItem = allItems.find(item => {\n\t\t\t\treturn item.selected;\n\t\t\t});\n\n\t\t\tif (selectedItem && this.open) {\n\t\t\t\tthis._itemFocused = true;\n\t\t\t\tselectedItem.focused = true;\n\t\t\t\tthis.focused = false;\n\t\t\t} else if (this.open && this._filteredItems.length && !this.value.length) {\n\t\t\t\t// If no item is selected, select the first non-group item on \"Show\" (F4, Alt+Up/Down)\n\t\t\t\tconst firstNonGroupItem = this._getItems().findIndex(item => item._isVisible && !item.isGroupItem);\n\t\t\t\tthis._handleItemNavigation(e, firstNonGroupItem, true /* isForward */);\n\t\t\t} else {\n\t\t\t\tthis.focused = true;\n\t\t\t}\n\t\t}\n\n\t\tif (isCtrlAltF8(e)) {\n\t\t\treturn this._handleCtrlALtF8();\n\t\t}\n\t}\n\n\t_addLinksEventListeners() {\n\t\tconst links = this.linksInAriaValueStateHiddenText;\n\n\t\tlinks.forEach((link, index) => {\n\t\t\tthis._linksListenersArray.push((e: KeyboardEvent) => {\n\t\t\t\tattachListeners(e, links, index, {\n\t\t\t\t\tcloseValueState: () => {\n\t\t\t\t\t\tif (this.open) {\n\t\t\t\t\t\t\tthis._closeRespPopover();\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (this.valueStateOpen) {\n\t\t\t\t\t\t\tthis.valueStateOpen = false;\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t\tnavigateToItem: () => {\n\t\t\t\t\t\tthis._handleLinkNavigation = false;\n\t\t\t\t\t\tif (this.open) {\n\t\t\t\t\t\t\tthis.inner.focus();\n\t\t\t\t\t\t\tthis.handleNavKeyPress(e);\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t\tfocusInput: () => {\n\t\t\t\t\t\tthis._handleLinkNavigation = false;\n\t\t\t\t\t\tthis.inner.focus();\n\t\t\t\t\t},\n\t\t\t\t\tisPopoverOpen: () => this.open,\n\t\t\t\t});\n\t\t\t});\n\n\t\t\tlink.addEventListener(\"keydown\", this._linksListenersArray[index]);\n\t\t});\n\t}\n\n\t_removeLinksEventListeners() {\n\t\tconst links = this.linksInAriaValueStateHiddenText;\n\n\t\tlinks.forEach((link, index) => {\n\t\t\tlink.removeEventListener(\"keydown\", this._linksListenersArray[index]);\n\t\t});\n\n\t\tthis._linksListenersArray = [];\n\t\tthis._handleLinkNavigation = false;\n\t}\n\n\t_handleCtrlALtF8() {\n\t\tconst links = this.linksInAriaValueStateHiddenText;\n\n\t\tif (links.length > 0) {\n\t\t\tthis._clearFocus();\n\t\t\tlinks[0].focus();\n\t\t}\n\n\t\tthis._handleLinkNavigation = true;\n\t}\n\n\t_handlePopoverKeydown(e: KeyboardEvent) {\n\t\tif (isTabNext(e)) {\n\t\t\tthis._closeRespPopover();\n\t\t}\n\t}\n\n\t_handlePopoverFocusout() {\n\t\tthis.focused = false;\n\t}\n\n\t_click() {\n\t\tif (isPhone() && !this.readonly) {\n\t\t\tthis._openRespPopover();\n\t\t}\n\t}\n\n\t_closeRespPopover(e?: Event | null) {\n\t\tif ((e && (e.target as HTMLElement).classList.contains(\"ui5-responsive-popover-close-btn\"))) {\n\t\t\tif (this._selectedItemText) {\n\t\t\t\tthis.value = this._selectedItemText;\n\t\t\t\tthis.filterValue = this._selectedItemText;\n\t\t\t} else {\n\t\t\t\tthis.value = this._lastValue || \"\";\n\t\t\t\tthis.filterValue = this._lastValue || \"\";\n\t\t\t}\n\t\t}\n\n\t\tif (isPhone()) {\n\t\t\tthis._fireChangeEvent();\n\t\t}\n\n\t\tthis._clearFocus();\n\t\tthis.open = false;\n\t\tthis.valueStateOpen = false;\n\t}\n\n\t_openRespPopover() {\n\t\tthis.open = true;\n\t}\n\n\t_filterItems(str: string) {\n\t\tlet filteredItem:IComboBoxItem;\n\t\tlet filteredGroupItems: Array<IComboBoxItem> = [];\n\t\tconst filteredItems: Array<IComboBoxItem> = [];\n\t\tconst filteredItemGroups: Array<IComboBoxItem> = [];\n\n\t\tthis._resetItemVisibility();\n\t\tthis.items.forEach(item => {\n\t\t\tif (isInstanceOfComboBoxItemGroup(item)) {\n\t\t\t\tfilteredGroupItems = (Filters[this.filter] || Filters.StartsWithPerTerm)(str, item.items, \"text\");\n\t\t\t\tfilteredGroupItems.forEach(i => {\n\t\t\t\t\ti._isVisible = true;\n\t\t\t\t});\n\n\t\t\t\tif (filteredGroupItems.length) {\n\t\t\t\t\tfilteredItemGroups.push(item);\n\t\t\t\t}\n\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t[filteredItem] = (Filters[this.filter] || Filters.StartsWithPerTerm)(str, [item], \"text\");\n\n\t\t\tif (filteredItem) {\n\t\t\t\tfilteredItem._isVisible = true;\n\t\t\t\tfilteredItems.push(filteredItem);\n\t\t\t}\n\t\t});\n\n\t\treturn [...filteredItemGroups, ...filteredItems];\n\t}\n\n\t_getFirstMatchingItem(current: string): IComboBoxItem | void {\n\t\tconst allItems = this._getItems();\n\t\tconst currentlyFocusedItem = allItems.find(item => item.focused === true);\n\n\t\tif (currentlyFocusedItem?.isGroupItem) {\n\t\t\tthis.value = this.filterValue;\n\t\t\treturn;\n\t\t}\n\n\t\tconst matchingItems: Array<IComboBoxItem> = this._startsWithMatchingItems(current);\n\n\t\tif (matchingItems.length) {\n\t\t\tconst exactMatch = matchingItems.find(item => item.text === current);\n\t\t\treturn exactMatch ?? matchingItems[0];\n\t\t}\n\t}\n\n\t_applyAtomicValueAndSelection(item: IComboBoxItem, filterValue: string) {\n\t\tconst value = (item && item.text) || \"\";\n\n\t\tthis.inner.value = value;\n\t\tthis.inner.setSelectionRange(filterValue.length, value.length);\n\t\tthis.value = value;\n\t}\n\n\t_selectMatchingItem() {\n\t\tconst currentlyFocusedItem = this.items.find(item => item.focused);\n\t\tconst shouldSelectionBeCleared = currentlyFocusedItem && currentlyFocusedItem.isGroupItem;\n\t\tlet itemToBeSelected: IComboBoxItem | undefined;\n\t\tlet previouslySelectedItem: IComboBoxItem | undefined;\n\n\t\t// Find previously selected item\n\t\tthis._filteredItems.forEach(item => {\n\t\t\tif (!isInstanceOfComboBoxItemGroup(item)) {\n\t\t\t\tif (item.selected) {\n\t\t\t\t\tpreviouslySelectedItem = item;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tconst selectedGroupItem = item.items?.find(i => i.selected);\n\t\t\t\tif (selectedGroupItem) {\n\t\t\t\t\tpreviouslySelectedItem = selectedGroupItem;\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\n\t\tthis._filteredItems.forEach(item => {\n\t\t\tif (!shouldSelectionBeCleared && !itemToBeSelected) {\n\t\t\t\titemToBeSelected = ((!item.isGroupItem && (item.text === this.value)) ? item : item?.items?.find(i => i.text === this.value));\n\t\t\t}\n\t\t});\n\n\t\tthis._filteredItems = this._filteredItems.map(item => {\n\t\t\tif (!isInstanceOfComboBoxItemGroup(item)) {\n\t\t\t\titem.selected = item === itemToBeSelected;\n\t\t\t\treturn item;\n\t\t\t}\n\n\t\t\titem.items?.forEach(groupItem => {\n\t\t\t\tgroupItem.selected = itemToBeSelected === groupItem;\n\t\t\t});\n\n\t\t\treturn item;\n\t\t});\n\n\t\t// Fire selection-change event only when selection actually changes\n\t\tif (previouslySelectedItem !== itemToBeSelected) {\n\t\t\tif (itemToBeSelected) {\n\t\t\t\t// New item selected\n\t\t\t\tthis.fireDecoratorEvent(\"selection-change\", {\n\t\t\t\t\titem: itemToBeSelected as ComboBoxItem,\n\t\t\t\t});\n\t\t\t} else if (previouslySelectedItem) {\n\t\t\t\t// Selection cleared - fire event with 'null'\n\t\t\t\tthis.fireDecoratorEvent(\"selection-change\", {\n\t\t\t\t\titem: null,\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}\n\n\t_fireChangeEvent() {\n\t\tif (this.value !== this._lastValue) {\n\t\t\tthis.fireDecoratorEvent(\"change\");\n\t\t\tthis._lastValue = this.value;\n\t\t}\n\t}\n\n\t_inputChange(e: Event) {\n\t\te.preventDefault();\n\t}\n\n\t_itemMousedown(e: MouseEvent) {\n\t\te.preventDefault();\n\t}\n\n\t_selectItem(e: CustomEvent<ListItemClickEventDetail>) {\n\t\tconst item = e.detail.item as ComboBoxItem;\n\n\t\tthis._selectedItemText = item.text || \"\";\n\t\tthis._selectionPerformed = true;\n\n\t\tconst sameItemSelected = this.value === this._selectedItemText;\n\t\tconst sameSelectionPerformed = this.value.toLowerCase() === this.filterValue.toLowerCase();\n\n\t\tif (sameItemSelected && sameSelectionPerformed) {\n\t\t\tthis._fireChangeEvent(); // Click on an already typed, but not memoized value shouold also trigger the change event\n\t\t\treturn this._closeRespPopover();\n\t\t}\n\n\t\tthis.value = this._selectedItemText;\n\n\t\tif (!item.selected) {\n\t\t\tthis.fireDecoratorEvent(\"selection-change\", {\n\t\t\t\titem,\n\t\t\t});\n\t\t}\n\n\t\tthis._fireChangeEvent();\n\t\tthis._closeRespPopover();\n\n\t\t// reset selection\n\t\tthis.inner.setSelectionRange(this.value.length, this.value.length);\n\t}\n\n\t_onItemFocus() {\n\t\tthis._itemFocused = true;\n\t}\n\n\t_announceSelectedItem(indexOfItem: number) {\n\t\tconst allItems = this._getItems();\n\t\tconst currentItem = allItems[indexOfItem];\n\t\tconst nonGroupItems = allItems.filter(item => !item.isGroupItem);\n\t\tconst currentItemAdditionalText = currentItem?.additionalText || \"\";\n\t\tconst isGroupItem = currentItem?.isGroupItem;\n\t\tconst itemPositionText = ComboBox.i18nBundle.getText(LIST_ITEM_POSITION, nonGroupItems.indexOf(currentItem) + 1, nonGroupItems.length);\n\t\tconst groupHeaderText = ComboBox.i18nBundle.getText(LIST_ITEM_GROUP_HEADER);\n\n\t\tif (isGroupItem) {\n\t\t\tannounce(`${groupHeaderText} ${currentItem.headerText}`, InvisibleMessageMode.Polite);\n\t\t} else {\n\t\t\tannounce(`${currentItemAdditionalText} ${itemPositionText}`.trim(), InvisibleMessageMode.Polite);\n\t\t}\n\t}\n\n\t_clear() {\n\t\tconst selectedItem = this.items.find(item => item.selected);\n\n\t\tif (selectedItem?.text === this.value) {\n\t\t\tthis.fireDecoratorEvent(\"change\");\n\t\t}\n\n\t\tthis.value = \"\";\n\t\tthis.fireDecoratorEvent(\"input\");\n\n\t\tif (this._isPhone) {\n\t\t\tthis._lastValue = \"\";\n\t\t\tthis.fireDecoratorEvent(\"change\");\n\t\t} else {\n\t\t\tthis.focus();\n\t\t}\n\t}\n\n\t_makeAllVisible(item: IComboBoxItem) {\n\t\tif (isInstanceOfComboBoxItemGroup(item)) {\n\t\t\titem.items.forEach(groupItem => {\n\t\t\t\tgroupItem._isVisible = true;\n\t\t\t});\n\t\t\treturn;\n\t\t}\n\n\t\titem._isVisible = true;\n\t}\n\n\t_scrollToItem(indexOfItem: number) {\n\t\tconst picker = this._getPicker();\n\t\tconst list = this._getItemsList();\n\t\tconst listItem = list?.listItems[indexOfItem];\n\n\t\tif (listItem) {\n\t\t\tconst pickerRect = picker.getBoundingClientRect();\n\t\t\tconst listItemRect = listItem.getBoundingClientRect();\n\t\t\tconst isListItemInVisibleArea = listItemRect.top >= pickerRect.top && listItemRect.bottom <= pickerRect.bottom;\n\n\t\t\tif (!isListItemInVisibleArea) {\n\t\t\t\tlistItem.scrollIntoView({\n\t\t\t\t\tbehavior: \"auto\",\n\t\t\t\t\tblock: \"nearest\",\n\t\t\t\t\tinline: \"nearest\",\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}\n\n\t_announceValueStateText() {\n\t\tconst valueStateText = this.shouldDisplayDefaultValueStateMessage ? this.valueStateDefaultText : this.valueStateMessage.map(el => el.textContent).join(\" \");\n\n\t\tif (valueStateText) {\n\t\t\tannounce(valueStateText, InvisibleMessageMode.Polite);\n\t\t}\n\t}\n\n\tget _headerTitleText() {\n\t\treturn ComboBox.i18nBundle.getText(INPUT_SUGGESTIONS_TITLE);\n\t}\n\n\tget _iconAccessibleNameText() {\n\t\treturn ComboBox.i18nBundle.getText(SELECT_OPTIONS);\n\t}\n\n\tget _popupLabel() {\n\t\treturn ComboBox.i18nBundle.getText(COMBOBOX_AVAILABLE_OPTIONS);\n\t}\n\n\tget _dialogOkButtonText() {\n\t\treturn ComboBox.i18nBundle.getText(COMBOBOX_DIALOG_OK_BUTTON);\n\t}\n\n\tget inner(): HTMLInputElement {\n\t\treturn (isPhone() && this.open)\n\t\t\t? this._getPickerInput().shadowRoot!.querySelector(\"input\")!\n\t\t\t: this.shadowRoot!.querySelector<HTMLInputElement>(\"[inner-input]\")!;\n\t}\n\n\t_getPicker() {\n\t\treturn this.shadowRoot!.querySelector<ResponsivePopover>(\"[ui5-responsive-popover]\")!;\n\t}\n\n\t_getPickerInput() {\n\t\treturn this._getPicker()!.querySelector<HTMLInputElement>(\"[ui5-input]\")!;\n\t}\n\n\tget openOnMobile() {\n\t\treturn this._isPhone && this.open;\n\t}\n\n\tget hasValueState(): boolean {\n\t\treturn this.valueState !== ValueState.None;\n\t}\n\n\tget hasValueStateText(): boolean {\n\t\treturn this.hasValueState && this.valueState !== ValueState.Positive;\n\t}\n\n\tget ariaValueStateHiddenText(): string {\n\t\tif (!this.hasValueState) {\n\t\t\treturn \"\";\n\t\t}\n\n\t\tlet text = \"\";\n\n\t\tif (this.valueState !== ValueState.None) {\n\t\t\ttext = this.valueStateTypeMappings[this.valueState];\n\t\t}\n\n\t\tif (this.shouldDisplayDefaultValueStateMessage) {\n\t\t\treturn `${text} ${this.valueStateDefaultText || \"\"}`;\n\t\t}\n\n\t\treturn `${text}`.concat(\" \", this.valueStateMessage.map(el => el.textContent).join(\" \"));\n\t}\n\n\tget valueStateDefaultText(): string | undefined {\n\t\tif (this.valueState === ValueState.None) {\n\t\t\treturn;\n\t\t}\n\n\t\treturn this.valueStateTextMappings[this.valueState];\n\t}\n\n\tget valueStateTextMappings(): ValueStateAnnouncement {\n\t\treturn {\n\t\t\t[ValueState.Positive]: ComboBox.i18nBundle.getText(VALUE_STATE_SUCCESS),\n\t\t\t[ValueState.Negative]: ComboBox.i18nBundle.getText(VALUE_STATE_ERROR),\n\t\t\t[ValueState.Critical]: ComboBox.i18nBundle.getText(VALUE_STATE_WARNING),\n\t\t\t[ValueState.Information]: ComboBox.i18nBundle.getText(VALUE_STATE_INFORMATION),\n\t\t};\n\t}\n\n\tget valueStateTypeMappings(): ValueStateTypeAnnouncement {\n\t\treturn {\n\t\t\t[ValueState.Positive]: ComboBox.i18nBundle.getText(VALUE_STATE_TYPE_SUCCESS),\n\t\t\t[ValueState.Information]: ComboBox.i18nBundle.getText(VALUE_STATE_TYPE_INFORMATION),\n\t\t\t[ValueState.Negative]: ComboBox.i18nBundle.getText(VALUE_STATE_TYPE_ERROR),\n\t\t\t[ValueState.Critical]: ComboBox.i18nBundle.getText(VALUE_STATE_TYPE_WARNING),\n\t\t};\n\t}\n\n\tget shouldOpenValueStateMessagePopover(): boolean {\n\t\treturn this.focused && !this.readonly && this.hasValueStateText && !this._iconPressed\n\t\t\t&& !this.open && !this._isPhone;\n\t}\n\n\tget shouldDisplayDefaultValueStateMessage(): boolean {\n\t\treturn !this.valueStateMessage.length && this.hasValueStateText;\n\t}\n\n\tget _valueStatePopoverHorizontalAlign(): `${PopoverHorizontalAlign}` {\n\t\treturn this.effectiveDir !== \"rtl\" ? PopoverHorizontalAlign.Start : PopoverHorizontalAlign.End;\n\t}\n\n\t/**\n\t * This method is relevant for sap_horizon theme only\n\t */\n\tget _valueStateMessageIcon(): string {\n\t\treturn this.valueState !== ValueState.None ? ValueStateIconMapping[this.valueState] : \"\";\n\t}\n\n\tget linksInAriaValueStateHiddenText() {\n\t\tconst links: Array<HTMLElement> = [];\n\t\tif (this.valueStateMessage) {\n\t\t\tthis.valueStateMessage.forEach(element => {\n\t\t\t\tif (element.children.length)\t{\n\t\t\t\t\telement.querySelectorAll(\"ui5-link\").forEach(link => {\n\t\t\t\t\t\tlinks.push(link as HTMLElement);\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t\treturn links;\n\t}\n\n\tget valueStateLinksShortcutsTextAcc() {\n\t\tconst links = this.linksInAriaValueStateHiddenText;\n\t\tif (!links.length) {\n\t\t\treturn \"\";\n\t\t}\n\n\t\tif (isMac()) {\n\t\t\treturn links.length === 1\n\t\t\t\t? ComboBox.i18nBundle.getText(VALUE_STATE_LINK_MAC)\n\t\t\t\t: ComboBox.i18nBundle.getText(VALUE_STATE_LINKS_MAC);\n\t\t}\n\n\t\treturn links.length === 1\n\t\t\t? ComboBox.i18nBundle.getText(VALUE_STATE_LINK)\n\t\t\t: ComboBox.i18nBundle.getText(VALUE_STATE_LINKS);\n\t}\n\n\tget ariaDescribedByText() {\n\t\treturn `${this.valueStateTextId} ${this._valueStateLinksShortcutsTextAccId}`.trim();\n\t}\n\n\tget _valueStateLinksShortcutsTextAccId() {\n\t\treturn this.linksInAriaValueStateHiddenText.length > 0 ? `hiddenText-value-state-link-shortcut` : \"\";\n\t}\n\n\tget valueStateTextId() {\n\t\treturn this.hasValueState ? `value-state-description` : \"\";\n\t}\n\n\tget _isPhone(): boolean {\n\t\treturn isPhone();\n\t}\n\n\tget itemTabIndex() {\n\t\treturn undefined;\n\t}\n\n\tget ariaLabelText(): string | undefined {\n\t\treturn getEffectiveAriaLabelText(this) || getAssociatedLabelForTexts(this);\n\t}\n\n\tget clearIconAccessibleName() {\n\t\treturn ComboBox.i18nBundle.getText(INPUT_CLEAR_ICON_ACC_NAME);\n\t}\n\n\tget responsivePopoverId() {\n\t\treturn `${this._id}-popover`;\n\t}\n\n\tget styles() {\n\t\tconst remSizeInPx = parseInt(getComputedStyle(document.documentElement).fontSize);\n\t\treturn {\n\t\t\tsuggestionPopoverHeader: {\n\t\t\t\t\"display\": this._listWidth === 0 ? \"none\" : \"inline-block\",\n\t\t\t\t\"width\": `${this._listWidth || \"\"}px`,\n\t\t\t\t\"max-width\": \"inherit\",\n\t\t\t},\n\t\t\tsuggestionsPopover: {\n\t\t\t\t\"min-width\": `${this.offsetWidth || 0}px`,\n\t\t\t\t\"max-width\": (this.offsetWidth / remSizeInPx) > 40 ? `${this.offsetWidth}px` : \"40rem\",\n\t\t\t},\n\t\t\tpopoverValueStateMessage: {},\n\t\t};\n\t}\n\n\tget classes() {\n\t\treturn {\n\t\t\tpopover: {\n\t\t\t\t\"ui5-suggestions-popover\": true,\n\t\t\t\t\"ui5-popover-with-value-state-header-phone\": this._isPhone && this.hasValueStateText,\n\t\t\t\t\"ui5-popover-with-value-state-header\": !this._isPhone && this.hasValueStateText,\n\t\t\t},\n\t\t\tpopoverValueState: {\n\t\t\t\t\"ui5-valuestatemessage-header\": true,\n\t\t\t\t\"ui5-valuestatemessage-root\": true,\n\t\t\t\t\"ui5-valuestatemessage--success\": this.valueState === ValueState.Positive,\n\t\t\t\t\"ui5-valuestatemessage--error\": this.valueState === ValueState.Negative,\n\t\t\t\t\"ui5-valuestatemessage--warning\": this.valueState === ValueState.Critical,\n\t\t\t\t\"ui5-valuestatemessage--information\": this.valueState === ValueState.Information,\n\t\t\t},\n\t\t};\n\t}\n}\n\nComboBox.define();\n\nexport default ComboBox;\n\nexport type {\n\tComboBoxSelectionChangeEventDetail,\n\tIComboBoxItem,\n};\n"]}
1
+ {"version":3,"file":"ComboBox.js","sourceRoot":"","sources":["../src/ComboBox.ts"],"names":[],"mappings":";;;;;;;AAAA,OAAO,UAAU,MAAM,4CAA4C,CAAC;AACpE,OAAO,aAAa,MAAM,0DAA0D,CAAC;AACrF,OAAO,QAAQ,MAAM,qDAAqD,CAAC;AAC3E,OAAO,KAAK,MAAM,yDAAyD,CAAC;AAC5E,OAAO,IAAI,MAAM,iDAAiD,CAAC;AACnE,OAAO,WAAW,MAAM,sDAAsD,CAAC;AAC/E,OAAO,UAAU,MAAM,kDAAkD,CAAC;AAC1E,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,wCAAwC,CAAC;AACnF,OAAO,oBAAoB,MAAM,4DAA4D,CAAC;AAC9F,OAAO,EAAE,yBAAyB,EAAE,0BAA0B,EAAE,MAAM,+DAA+D,CAAC;AACtI,OAAO,QAAQ,MAAM,uDAAuD,CAAC;AAC7E,OAAO,EAAE,gBAAgB,EAAE,MAAM,qDAAqD,CAAC;AACvF,OAAO,kDAAkD,CAAC;AAC1D,OAAO,0CAA0C,CAAC;AAClD,OAAO,wCAAwC,CAAC;AAChD,OAAO,wCAAwC,CAAC;AAChD,OAAO,8CAA8C,CAAC;AACtD,OAAO,8CAA8C,CAAC;AAEtD,OAAO,IAAI,MAAM,iDAAiD,CAAC;AACnE,OAAO,EAAE,UAAU,EAAE,MAAM,mEAAmE,CAAC;AAE/F,OAAO,EACN,WAAW,EACX,QAAQ,EACR,MAAM,EACN,IAAI,EACJ,MAAM,EACN,OAAO,EACP,QAAQ,EACR,SAAS,EACT,aAAa,EACb,QAAQ,EACR,UAAU,EACV,MAAM,EACN,KAAK,EACL,WAAW,GACX,MAAM,sCAAsC,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,2DAA2D,CAAC;AAC5F,OAAO,cAAc,MAAM,qDAAqD,CAAC;AAGjF,OAAO,KAAK,OAAO,MAAM,cAAc,CAAC;AAExC,OAAO,EACN,mBAAmB,EACnB,iBAAiB,EACjB,mBAAmB,EACnB,uBAAuB,EACvB,wBAAwB,EACxB,4BAA4B,EAC5B,sBAAsB,EACtB,wBAAwB,EACxB,gBAAgB,EAChB,iBAAiB,EACjB,oBAAoB,EACpB,qBAAqB,EACrB,uBAAuB,EACvB,0BAA0B,EAC1B,yBAAyB,EACzB,cAAc,EACd,kBAAkB,EAClB,sBAAsB,EACtB,yBAAyB,EACzB,uBAAuB,GACvB,MAAM,mCAAmC,CAAC;AAE3C,YAAY;AACZ,OAAO,gBAAgB,MAAM,uBAAuB,CAAC;AAErD,SAAS;AACT,OAAO,WAAW,MAAM,oCAAoC,CAAC;AAC7D,OAAO,kBAAkB,MAAM,2CAA2C,CAAC;AAC3E,OAAO,0BAA0B,MAAM,mDAAmD,CAAC;AAC3F,OAAO,oBAAoB,MAAM,6CAA6C,CAAC;AAC/E,OAAO,cAAc,MAAM,uCAAuC,CAAC;AAEnE,OAAO,mBAAmB,CAAC;AAM3B,2BAA2B;AAC3B,OAAO,wBAAwB,CAAC;AAChC,2BAA2B;AAC3B,OAAO,EAAE,6BAA6B,EAAE,MAAM,wBAAwB,CAAC;AAEvE,OAAO,sBAAsB,MAAM,mCAAmC,CAAC;AAKvE,MAAM,eAAe,GAAG,EAAE,CAAC;AAoB3B,IAAK,qBAKJ;AALD,WAAK,qBAAqB;IACzB,2CAAkB,CAAA;IAClB,2CAAkB,CAAA;IAClB,iDAAwB,CAAA;IACxB,oDAA2B,CAAA;AAC5B,CAAC,EALI,qBAAqB,KAArB,qBAAqB,QAKzB;AAMD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AAyDH,IAAM,QAAQ,gBAAd,MAAM,QAAS,SAAQ,UAAU;IAsPhC,IAAI,mBAAmB;QACtB,OAAO,UAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,uBAAuB,CAAC,CAAC;IAC7D,CAAC;IAED,IAAI,YAAY;QACf,OAAO,EAAE,YAAY,EAAE,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;IACvD,CAAC;IAED,KAAK,CAAC,iBAAiB;QACtB,OAAO,IAAI,CAAC,mBAAmB,EAAE,CAAC;IACnC,CAAC;IAED,IAAI,kBAAkB;QACrB,OAAO,IAAI,CAAC,KAAK,CAAC;IACnB,CAAC;IAED;QACC,KAAK,EAAE,CAAC;QA/PT;;;;;;WAMG;QAEH,UAAK,GAAG,EAAE,CAAC;QAaX;;;;;WAKG;QAEH,gBAAW,GAAG,KAAK,CAAC;QAEpB;;;;;;;;WAQG;QAEH,gBAAW,GAAG,EAAE,CAAA;QAWhB;;;;;;WAMG;QAEH,aAAQ,GAAG,KAAK,CAAC;QAEjB;;;;WAIG;QAEH,eAAU,GAAoB,MAAM,CAAC;QAErC;;;;;;;WAOG;QAEH,aAAQ,GAAG,KAAK,CAAC;QAEjB;;;;WAIG;QAEH,aAAQ,GAAG,KAAK,CAAC;QAEjB;;;;WAIG;QAEH,YAAO,GAAG,KAAK,CAAC;QAEhB;;;;WAIG;QAEH,WAAM,GAAwB,mBAAmB,CAAC;QAElD;;;;;WAKG;QAEH,kBAAa,GAAG,KAAK,CAAC;QAEtB;;;WAGG;QAEH,YAAO,GAAG,KAAK,CAAC;QAqBhB,iBAAY,GAAG,KAAK,CAAC;QAGrB,mBAAc,GAAyB,EAAE,CAAC;QAM1C,4BAAuB,GAAG,KAAK,CAAA;QAE/B;;;;WAIG;QAEH,mBAAc,GAAG,KAAK,CAAC;QAEvB;;;;WAIG;QAEH,SAAI,GAAG,KAAK,CAAC;QAEb;;;;;WAKG;QAEH,0BAAqB,GAAY,KAAK,CAAC;QAEvC;;WAEG;QAEH,yBAAoB,GAA+B,EAAE,CAAC;QAEtD;;;;WAIG;QAEH,iBAAY,GAAG,KAAK,CAAC;QAoCrB,sBAAiB,GAAG,IAAI,CAAC;QACzB,iBAAY,GAAG,KAAK,CAAC;QACrB,oDAAoD;QACpD,kBAAa,GAAG,KAAK,CAAC;QACtB,qBAAgB,GAAG,KAAK,CAAC;QACzB,wBAAmB,GAAG,KAAK,CAAC;QAE5B,sBAAiB,GAAG,EAAE,CAAC;QACvB,oBAAe,GAAG,EAAE,CAAC;QACrB,qBAAgB,GAAuB,EAAE,CAAC;QAyBzC,uEAAuE;QACvE,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;IACpD,CAAC;IAED,iBAAiB;QAChB,IAAI,CAAC,uBAAuB,GAAG,CAAC,IAAI,CAAC,aAAa,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAExG,IAAI,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;YACtD,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC;QAClC,CAAC;QAED,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACzC,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YAClD,IAAI,CAAC,cAAc,GAAG,CAAC,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;QACrD,CAAC;QAED,MAAM,iBAAiB,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;QAEtG,6FAA6F;QAC7F,IAAI,CAAC,CAAC,iBAAiB,IAAI,CAAC,OAAO,EAAE,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YACvD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;YACpD,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC;QAClC,CAAC;QAED,IAAI,IAAI,CAAC,kCAAkC,EAAE,CAAC;YAC7C,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;QAC5B,CAAC;aAAM,CAAC;YACP,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;QAC7B,CAAC;QAED,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC3B,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC;QAE/B,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,gBAAgB,CAAC,0BAA0B,CAAC,EAAE,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;IAC5F,CAAC;IAED,IAAI,UAAU;QACb,MAAM,iBAAiB,GAAG,IAAI,CAAC,IAAI,EAAE,MAAM,IAAI,CAAC,CAAC;QACjD,MAAM,cAAc,GAAG,MAAM,CAAC,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,CAAC;QACjE,MAAM,mBAAmB,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAElD,OAAO,iBAAiB,GAAG,cAAc,GAAG,mBAAmB,CAAC;IACjE,CAAC;IAED,gBAAgB;QACf,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;YACnD,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;QAC/B,CAAC;QAED,IAAI,CAAC,2BAA2B,EAAE,CAAC;QAEnC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,gBAAgB,EAAE,IAAI,CAAC,+BAA+B,CAAC,EAAE,CAAC;YAClF,IAAI,CAAC,0BAA0B,EAAE,CAAC;YAClC,IAAI,CAAC,uBAAuB,EAAE,CAAC;YAC/B,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,+BAA+B,CAAC;QAC9D,CAAC;IACF,CAAC;IAED,UAAU;QACT,IAAI,CAAC,kBAAkB,EAAE,CAAC;IAC3B,CAAC;IAED,SAAS;QACR,IAAI,CAAC,0BAA0B,EAAE,CAAC;QAClC,IAAI,CAAC,YAAY,EAAE,oBAAoB,EAAE,CAAC;IAC3C,CAAC;IAED,QAAQ,CAAC,CAAa;QACrB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACpB,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;QAE3B,IAAI,CAAC,CAAC,CAAC,aAAa,IAAI,CAAC,CAAC,CAAC,aAAa,KAAK,IAAI,CAAC,UAAW,CAAC,aAAa,CAAC,uBAAuB,CAAC,CAAC,EAAE,CAAC;YACvG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC;QAC9B,CAAC;QAED,CAAC,OAAO,EAAE,IAAK,CAAC,CAAC,MAA2B,CAAC,iBAAiB,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACtF,CAAC;IAED,SAAS,CAAC,CAAa;QACtB,MAAM,WAAW,GAAG,CAAC,CAAC,aAA4B,CAAC;QACnD,MAAM,gBAAgB,GAAG,IAAI,CAAC,UAAW,CAAC,aAAa,CAAC,+BAA+B,CAAC,CAAC;QACzF,MAAM,qBAAqB,GAAG,gBAAgB,KAAK,WAAW,IAAI,gBAAgB,EAAE,QAAQ,CAAC,WAAW,CAAC,CAAC;QAE1G,IAAI,IAAI,CAAC,uBAAuB,IAAI,qBAAqB,EAAE,CAAC;YAC3D,OAAO;QACR,CAAC;QAED,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAExB,MAAM,uBAAuB,GAAG,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;QACrF,MAAM,sBAAsB,GAAG,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;QAEjF,IAAI,uBAAuB,IAAI,sBAAsB,IAAI,IAAI,CAAC,qBAAqB,EAAE,CAAC;YACrF,CAAC,CAAC,wBAAwB,EAAE,CAAC;YAC7B,OAAO;QACR,CAAC;QAED,IAAI,CAAC,CAAC,IAAI,CAAC,SAAS,EAAG,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC,aAAa,CAAC,EAAE,CAAC;YAC3F,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;QACtB,CAAC;IACF,CAAC;IAED,kBAAkB;QACjB,IAAI,OAAO,EAAE,EAAE,CAAC;YACf,IAAI,CAAC,eAAe,EAAE,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QAC3C,CAAC;IACF,CAAC;IAED,iBAAiB;QAChB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QACzB,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QACnB,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;QAEhC,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;QAClC,MAAM,WAAW,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;YACxC,OAAO,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,OAAO,CAAC;QACtC,CAAC,CAAC,CAAC;QAEH,IAAI,WAAW,EAAE,CAAC;YACjB,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC;QACnD,CAAC;IACF,CAAC;IAED,kBAAkB;QACjB,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;QAC1B,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC;QACjC,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;QACtB,IAAI,CAAC,iBAAiB,GAAG,EAAE,CAAC;QAE5B,qDAAqD;QACrD,IAAI,OAAO,EAAE,EAAE,CAAC;YACf,IAAI,CAAC,IAAI,EAAE,CAAC;QACb,CAAC;QAED,IAAI,IAAI,CAAC,mBAAmB,EAAE,CAAC;YAC9B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC;YAC7B,IAAI,CAAC,mBAAmB,GAAG,KAAK,CAAC;QAClC,CAAC;QAED,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;QAClB,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC;IAClC,CAAC;IAED,kBAAkB;QACjB,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACf,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAC1B,CAAC;aAAM,CAAC;YACP,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACzB,CAAC;IACF,CAAC;IAED,2BAA2B;QAC1B,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;YACnC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC,WAAW,CAAC;QACjD,CAAC;IACF,CAAC;IAED,gCAAgC;QAC/B,IAAI,CAAC,IAAI,CAAC,qBAAqB,EAAE,CAAC;YACjC,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;QACtB,CAAC;IACF,CAAC;IAED,kCAAkC;QACjC,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;IAC7B,CAAC;IAED,qBAAqB;QACpB,OAAO,IAAI,CAAC,UAAW,CAAC,aAAa,CAAU,gCAAgC,CAAE,CAAC;IACnF,CAAC;IAED,aAAa;QACZ,OAAO,IAAI,CAAC,UAAU,EAAE,CAAC,aAAa,CAAC,0BAA0B,CAAS,CAAC;IAC5E,CAAC;IAED,YAAY;QACX,IAAI,CAAC,eAAe,GAAG,EAAE,CAAC;QAC1B,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QACnD,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;QAC5C,IAAI,CAAC,mBAAmB,EAAE,CAAC;IAC5B,CAAC;IAED,oBAAoB;QACnB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;YACzB,IAAI,6BAA6B,CAAC,IAAI,CAAC,EAAE,CAAC;gBACzC,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE;oBACvB,CAAC,CAAC,UAAU,GAAG,KAAK,CAAC;gBACtB,CAAC,CAAC,CAAC;gBACH,OAAO;YACR,CAAC;YAED,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;QACzB,CAAC,CAAC,CAAC;IACJ,CAAC;IAED,WAAW;QACV,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QACnB,IAAI,CAAC,YAAY,EAAE,CAAC;QAEpB,IAAI,OAAO,EAAE,IAAI,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;YACjD,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC;QAC9B,CAAC;QAED,IAAI,CAAC,kBAAkB,EAAE,CAAC;IAC3B,CAAC;IAED,oBAAoB,CAAC,CAAgB;QACpC,IAAI,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;YACjB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,UAAU,IAAI,EAAE,CAAC;YACnC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,UAAU,IAAI,EAAE,CAAC;YACzC,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAC1B,CAAC;IACF,CAAC;IAED,kBAAkB,CAAC,CAAgC;QAClD,MAAM,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC;QACrB,IAAI,CAAC,WAAW,GAAI,MAAgB,CAAC,KAAK,CAAC;QAC3C,IAAI,CAAC,KAAK,GAAI,MAAgB,CAAC,KAAK,CAAC;QACrC,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC;IAClC,CAAC;IAED,MAAM,CAAC,CAAa;QACnB,MAAM,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC,MAA0B,CAAC;QAC/C,MAAM,kBAAkB,GAAG,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC;QAEtD,IAAI,CAAC,CAAC,MAAM,KAAK,IAAI,CAAC,KAAK,EAAE,CAAC;YAC7B,iEAAiE;YACjE,CAAC,CAAC,wBAAwB,EAAE,CAAC;YAC7B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACrB,CAAC;QAED,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;QAE/C,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;QAEzB,IAAI,CAAC,WAAW,EAAE,CAAC;QAEnB,eAAe;QACf,IAAI,kBAAkB,IAAI,CAAC,IAAI,CAAC,YAAY,IAAI,CAAC,SAAS,EAAE,EAAE,CAAC;YAC9D,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QACrC,CAAC;QAED,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC;QAEjC,IAAI,OAAO,EAAE,EAAE,CAAC;YACf,OAAO;QACR,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,IAAI,KAAK,KAAK,EAAE,EAAE,CAAC;YACjD,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAC1B,CAAC;aAAM,CAAC;YACP,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACzB,CAAC;IACF,CAAC;IAED,kBAAkB,CAAC,CAAa;QAC/B,MAAM,SAAS,GAAG,CAAC,CAAC,SAAS,CAAC;QAC9B,MAAM,iBAAiB,GAAG;YACzB,oBAAoB;YACpB,mBAAmB;YACnB,wBAAwB;YACxB,uBAAuB;YACvB,sBAAsB;YACtB,wBAAwB;YACxB,uBAAuB;YACvB,cAAc;YACd,aAAa;YACb,eAAe;YACf,uBAAuB;YACvB,sBAAsB;YACtB,aAAa;SACb,CAAC;QAEF,OAAO,CAAC,IAAI,CAAC,WAAW,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;IACpE,CAAC;IAED,wBAAwB,CAAC,GAAW;QACnC,MAAM,QAAQ,GAAwB,IAAI,CAAC,SAAS,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,6BAA6B,CAAC,IAAI,CAAC,CAAC,CAAC;QAC5G,OAAO,OAAO,CAAC,UAAU,CAAC,GAAG,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;IAClD,CAAC;IAED,WAAW;QACV,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;QAElC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;YACnB,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;YAErB,OAAO,IAAI,CAAC;QACb,CAAC,CAAC,CAAC;IACJ,CAAC;IAED,qDAAqD;IACrD,SAAS;QACR,MAAM,QAAQ,GAAyB,EAAE,CAAC;QAE1C,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;YAClC,IAAI,6BAA6B,CAAC,IAAI,CAAC,EAAE,CAAC;gBACzC,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC;gBACnF,MAAM,YAAY,GAAG,CAAC,IAAI,EAAE,GAAG,YAAY,CAAC,CAAC;gBAC7C,QAAQ,CAAC,IAAI,CAAC,GAAG,YAAY,CAAC,CAAC;gBAC/B,OAAO;YACR,CAAC;YAED,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACrB,CAAC,CAAC,CAAC;QAEH,OAAO,QAAQ,CAAC;IACjB,CAAC;IAED,iBAAiB,CAAC,CAAgB;QACjC,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;QAElC,IAAI,IAAI,CAAC,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YAC3D,OAAO;QACR,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC;QACzB,MAAM,WAAW,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;YACxC,OAAO,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,OAAO,CAAC;QACtC,CAAC,CAAC,CAAC;QAEH,MAAM,WAAW,GAAG,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACrE,CAAC,CAAC,cAAc,EAAE,CAAC;QAEnB,IAAI,IAAI,CAAC,OAAO,IAAI,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YACzE,OAAO;QACR,CAAC;QAED,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,KAAK,WAAW,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;YACtD,OAAO;QACR,CAAC;QAED,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;QAE7B,IACC,CAAC,CAAC,GAAG,KAAK,WAAW;eAClB,CAAC,CAAC,GAAG,KAAK,SAAS;eACnB,CAAC,CAAC,GAAG,KAAK,QAAQ;eAClB,CAAC,CAAC,GAAG,KAAK,UAAU;eACpB,CAAC,CAAC,GAAG,KAAK,MAAM;eAChB,CAAC,CAAC,GAAG,KAAK,KAAK,EACjB,CAAC;YACF,IAAI,CAAC,UAAU,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC;QACzC,CAAC;IACF,CAAC;IAED,qBAAqB,CAAC,CAAgB,EAAE,WAAmB,EAAE,SAAkB;QAC9E,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;QAElC,MAAM,WAAW,GAAkB,QAAQ,CAAC,WAAW,CAAC,CAAC;QACzD,MAAM,WAAW,GAAG,WAAW,IAAI,WAAW,CAAC,WAAW,CAAC;QAC3D,MAAM,QAAQ,GAAG,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC;QAEnF,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,WAAW,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,WAAW,IAAI,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC;YACpF,OAAO;QACR,CAAC;QAED,IAAI,CAAC,WAAW,EAAE,CAAC;QAEnB,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACf,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;YACzB,IAAI,CAAC,KAAK,GAAG,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,IAAK,CAAC;YAClD,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;YAErB,WAAW,CAAC,OAAO,GAAG,IAAI,CAAC;QAC5B,CAAC;aAAM,CAAC;YACP,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;YACpB,IAAI,CAAC,KAAK,GAAG,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAK,CAAC,CAAC,CAAC,WAAW,CAAC,IAAK,CAAC;YAC9D,WAAW,CAAC,OAAO,GAAG,KAAK,CAAC;QAC7B,CAAC;QAED,IAAI,CAAC,qBAAqB,CAAC,WAAW,CAAC,CAAC;QACxC,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;QAEhC,IAAI,WAAW,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YAC9B,OAAO;QACR,CAAC;QACD,eAAe;QACf,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAEzE,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC;IAClC,CAAC;IAED,gBAAgB,CAAC,KAAa,EAAE,WAAmB;QAClD,MAAM,IAAI,GAAG,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC;QAE/C,IAAI,CAAC,IAAI,EAAE,CAAC;YACX,OAAO;QACR,CAAC;QAED,IAAI,CAAC,6BAA6B,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;IACvD,CAAC;IAED,gBAAgB,CAAC,CAAgB,EAAE,WAAmB;QACrD,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC;QAEzB,IAAI,IAAI,CAAC,OAAO,IAAI,WAAW,KAAK,CAAC,CAAC,IAAI,MAAM,EAAE,CAAC;YAClD,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;QACtB,CAAC;QAED,IAAI,CAAC,qBAAqB,CAAC,CAAC,EAAE,EAAE,WAAW,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;IACpE,CAAC;IAED,cAAc,CAAC,CAAgB,EAAE,WAAmB;QACnD,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC;QAEzB,IAAI,WAAW,KAAK,CAAC,EAAE,CAAC;YACvB,IAAI,CAAC,WAAW,EAAE,CAAC;YACnB,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;YAC1B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;YAEpB,IAAI,IAAI,CAAC,iBAAiB,IAAI,MAAM,EAAE,CAAC;gBACtC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,QAAQ,GAAG,KAAK,CAAC;gBACxC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,eAAe,CAAC;YACnC,CAAC;YAED,OAAO;QACR,CAAC;QAED,IAAI,CAAC,qBAAqB,CAAC,CAAC,EAAE,EAAE,WAAW,EAAE,KAAK,CAAC,eAAe,CAAC,CAAC;IACrE,CAAC;IAED,aAAa,CAAC,CAAgB,EAAE,WAAmB;QAClD,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;QAClC,MAAM,oBAAoB,GAAG,WAAW,GAAG,eAAe,GAAG,CAAC,CAAC,CAAC;QAChE,WAAW,GAAG,oBAAoB,CAAC,CAAC,CAAC,WAAW,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC;QACvE,MAAM,iBAAiB,GAAG,6BAA6B,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;QAE7F,IAAI,CAAC,qBAAqB,CAAC,CAAC,EAAE,WAAW,EAAE,iBAAiB,CAAC,CAAC;IAC/D,CAAC;IAED,eAAe,CAAC,CAAgB,EAAE,WAAmB;QACpD,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;QAClC,MAAM,WAAW,GAAG,QAAQ,CAAC,MAAM,CAAC;QACpC,MAAM,oBAAoB,GAAG,WAAW,GAAG,eAAe,GAAG,WAAW,CAAC;QAEzE,WAAW,GAAG,oBAAoB,CAAC,CAAC,CAAC,WAAW,GAAG,eAAe,CAAC,CAAC,CAAC,WAAW,GAAG,CAAC,CAAC;QACrF,MAAM,iBAAiB,GAAG,6BAA6B,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;QAE7F,IAAI,CAAC,qBAAqB,CAAC,CAAC,EAAE,WAAW,EAAE,iBAAiB,CAAC,CAAC;IAC/D,CAAC;IAED,WAAW,CAAC,CAAgB;QAC3B,MAAM,iBAAiB,GAAG,6BAA6B,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;QAE9F,IAAI,CAAC,qBAAqB,CAAC,CAAC,EAAE,CAAC,EAAE,iBAAiB,CAAC,CAAC;IACrD,CAAC;IAED,UAAU,CAAC,CAAgB;QAC1B,IAAI,CAAC,qBAAqB,CAAC,CAAC,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;IAClF,CAAC;IAED,MAAM;QACL,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,cAAc,IAAI,CAAC,CAAC,CAAC;IAChF,CAAC;IAED,QAAQ,CAAC,CAAgB;QACxB,MAAM,QAAQ,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC;QAC/F,MAAM,QAAQ,GAAyB,IAAI,CAAC,SAAS,EAAE,CAAC;QAExD,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;QACtD,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC;QAE9B,IAAI,QAAQ,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,CAAC;YAC9D,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC;QAC3B,CAAC;QAED,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;YAChB,IAAI,WAAsC,CAAC;YAE3C,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;gBAClC,IAAI,6BAA6B,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;oBACzD,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;gBAC/D,CAAC;gBAED,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;oBAClB,WAAW,GAAG,IAAI,CAAC;gBACpB,CAAC;YACF,CAAC,CAAC,CAAC;YAEH,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAExB,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,WAAW,EAAE,WAAW,EAAE,CAAC;gBAC5C,IAAI,CAAC,iBAAiB,EAAE,CAAC;gBACzB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;gBACpB,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YACpE,CAAC;iBAAM,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;gBACjC,UAAU,CAAC,IAAI,CAAC,CAAC;YAClB,CAAC;QACF,CAAC;QAED,IAAI,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;YACjB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;YACpB,IAAI,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC;QACxD,CAAC;QAED,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,aAAa,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACrD,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAC1B,CAAC;QAED,IAAI,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACnD,CAAC,CAAC,cAAc,EAAE,CAAC;YAEnB,IAAI,CAAC,YAAY,EAAE,CAAC;YACpB,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAE1B,MAAM,YAAY,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;gBACzC,OAAO,IAAI,CAAC,QAAQ,CAAC;YACtB,CAAC,CAAC,CAAC;YAEH,IAAI,YAAY,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;gBAC/B,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;gBACzB,YAAY,CAAC,OAAO,GAAG,IAAI,CAAC;gBAC5B,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;YACtB,CAAC;iBAAM,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,cAAc,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;gBAC1E,sFAAsF;gBACtF,MAAM,iBAAiB,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;gBACnG,IAAI,CAAC,qBAAqB,CAAC,CAAC,EAAE,iBAAiB,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;YACxE,CAAC;iBAAM,CAAC;gBACP,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;YACrB,CAAC;QACF,CAAC;QAED,IAAI,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC;YACpB,OAAO,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAChC,CAAC;IACF,CAAC;IAED,uBAAuB;QACtB,MAAM,KAAK,GAAG,IAAI,CAAC,+BAA+B,CAAC;QAEnD,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;YAC7B,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC,CAAgB,EAAE,EAAE;gBACnD,eAAe,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE;oBAChC,eAAe,EAAE,GAAG,EAAE;wBACrB,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;4BACf,IAAI,CAAC,iBAAiB,EAAE,CAAC;wBAC1B,CAAC;wBACD,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;4BACzB,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;wBAC7B,CAAC;oBACF,CAAC;oBACD,cAAc,EAAE,GAAG,EAAE;wBACpB,IAAI,CAAC,qBAAqB,GAAG,KAAK,CAAC;wBACnC,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;4BACf,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;4BACnB,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC;wBAC3B,CAAC;oBACF,CAAC;oBACD,UAAU,EAAE,GAAG,EAAE;wBAChB,IAAI,CAAC,qBAAqB,GAAG,KAAK,CAAC;wBACnC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;oBACpB,CAAC;oBACD,aAAa,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI;iBAC9B,CAAC,CAAC;YACJ,CAAC,CAAC,CAAC;YAEH,IAAI,CAAC,gBAAgB,CAAC,SAAS,EAAE,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC,CAAC;QACpE,CAAC,CAAC,CAAC;IACJ,CAAC;IAED,0BAA0B;QACzB,MAAM,KAAK,GAAG,IAAI,CAAC,+BAA+B,CAAC;QAEnD,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;YAC7B,IAAI,CAAC,mBAAmB,CAAC,SAAS,EAAE,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC,CAAC;QACvE,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,oBAAoB,GAAG,EAAE,CAAC;QAC/B,IAAI,CAAC,qBAAqB,GAAG,KAAK,CAAC;IACpC,CAAC;IAED,gBAAgB;QACf,MAAM,KAAK,GAAG,IAAI,CAAC,+BAA+B,CAAC;QAEnD,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACtB,IAAI,CAAC,WAAW,EAAE,CAAC;YACnB,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;QAClB,CAAC;QAED,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC;IACnC,CAAC;IAED,qBAAqB,CAAC,CAAgB;QACrC,IAAI,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;YAClB,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAC1B,CAAC;IACF,CAAC;IAED,sBAAsB;QACrB,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;IACtB,CAAC;IAED,MAAM;QACL,IAAI,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACjC,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACzB,CAAC;IACF,CAAC;IAED,iBAAiB,CAAC,CAAgB;QACjC,IAAI,CAAC,CAAC,IAAK,CAAC,CAAC,MAAsB,CAAC,SAAS,CAAC,QAAQ,CAAC,kCAAkC,CAAC,CAAC,EAAE,CAAC;YAC7F,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;gBAC5B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,iBAAiB,CAAC;gBACpC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,iBAAiB,CAAC;YAC3C,CAAC;iBAAM,CAAC;gBACP,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,UAAU,IAAI,EAAE,CAAC;gBACnC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,UAAU,IAAI,EAAE,CAAC;YAC1C,CAAC;QACF,CAAC;QAED,IAAI,OAAO,EAAE,EAAE,CAAC;YACf,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACzB,CAAC;QAED,IAAI,CAAC,WAAW,EAAE,CAAC;QACnB,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;QAClB,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;IAC7B,CAAC;IAED,gBAAgB;QACf,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IAClB,CAAC;IAED,YAAY,CAAC,GAAW;QACvB,IAAI,YAA0B,CAAC;QAC/B,IAAI,kBAAkB,GAAyB,EAAE,CAAC;QAClD,MAAM,aAAa,GAAyB,EAAE,CAAC;QAC/C,MAAM,kBAAkB,GAAyB,EAAE,CAAC;QAEpD,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAC5B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;YACzB,IAAI,6BAA6B,CAAC,IAAI,CAAC,EAAE,CAAC;gBACzC,kBAAkB,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,OAAO,CAAC,iBAAiB,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;gBAClG,kBAAkB,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;oBAC9B,CAAC,CAAC,UAAU,GAAG,IAAI,CAAC;gBACrB,CAAC,CAAC,CAAC;gBAEH,IAAI,kBAAkB,CAAC,MAAM,EAAE,CAAC;oBAC/B,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAC/B,CAAC;gBAED,OAAO;YACR,CAAC;YAED,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,OAAO,CAAC,iBAAiB,CAAC,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,CAAC;YAE1F,IAAI,YAAY,EAAE,CAAC;gBAClB,YAAY,CAAC,UAAU,GAAG,IAAI,CAAC;gBAC/B,aAAa,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAClC,CAAC;QACF,CAAC,CAAC,CAAC;QAEH,OAAO,CAAC,GAAG,kBAAkB,EAAE,GAAG,aAAa,CAAC,CAAC;IAClD,CAAC;IAED,qBAAqB,CAAC,OAAe;QACpC,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;QAClC,MAAM,oBAAoB,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,KAAK,IAAI,CAAC,CAAC;QAE1E,IAAI,oBAAoB,EAAE,WAAW,EAAE,CAAC;YACvC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC;YAC9B,OAAO;QACR,CAAC;QAED,MAAM,aAAa,GAAyB,IAAI,CAAC,wBAAwB,CAAC,OAAO,CAAC,CAAC;QAEnF,IAAI,aAAa,CAAC,MAAM,EAAE,CAAC;YAC1B,MAAM,UAAU,GAAG,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC;YACrE,OAAO,UAAU,IAAI,aAAa,CAAC,CAAC,CAAC,CAAC;QACvC,CAAC;IACF,CAAC;IAED,6BAA6B,CAAC,IAAmB,EAAE,WAAmB;QACrE,MAAM,KAAK,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;QAExC,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC;QACzB,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,WAAW,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;QAC/D,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACpB,CAAC;IAED,mBAAmB;QAClB,MAAM,oBAAoB,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACnE,MAAM,wBAAwB,GAAG,oBAAoB,IAAI,oBAAoB,CAAC,WAAW,CAAC;QAC1F,IAAI,gBAA2C,CAAC;QAChD,IAAI,sBAAiD,CAAC;QAEtD,gCAAgC;QAChC,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;YAClC,IAAI,CAAC,6BAA6B,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC1C,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;oBACnB,sBAAsB,GAAG,IAAI,CAAC;gBAC/B,CAAC;YACF,CAAC;iBAAM,CAAC;gBACP,MAAM,iBAAiB,GAAG,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;gBAC5D,IAAI,iBAAiB,EAAE,CAAC;oBACvB,sBAAsB,GAAG,iBAAiB,CAAC;gBAC5C,CAAC;YACF,CAAC;QACF,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;YAClC,IAAI,CAAC,wBAAwB,IAAI,CAAC,gBAAgB,EAAE,CAAC;gBACpD,gBAAgB,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;YAC/H,CAAC;QACF,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;YACpD,IAAI,CAAC,6BAA6B,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC1C,IAAI,CAAC,QAAQ,GAAG,IAAI,KAAK,gBAAgB,CAAC;gBAC1C,OAAO,IAAI,CAAC;YACb,CAAC;YAED,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,SAAS,CAAC,EAAE;gBAC/B,SAAS,CAAC,QAAQ,GAAG,gBAAgB,KAAK,SAAS,CAAC;YACrD,CAAC,CAAC,CAAC;YAEH,OAAO,IAAI,CAAC;QACb,CAAC,CAAC,CAAC;QAEH,mEAAmE;QACnE,IAAI,sBAAsB,KAAK,gBAAgB,EAAE,CAAC;YACjD,IAAI,gBAAgB,EAAE,CAAC;gBACtB,oBAAoB;gBACpB,IAAI,CAAC,kBAAkB,CAAC,kBAAkB,EAAE;oBAC3C,IAAI,EAAE,gBAAgC;iBACtC,CAAC,CAAC;YACJ,CAAC;iBAAM,IAAI,sBAAsB,EAAE,CAAC;gBACnC,6CAA6C;gBAC7C,IAAI,CAAC,kBAAkB,CAAC,kBAAkB,EAAE;oBAC3C,IAAI,EAAE,IAAI;iBACV,CAAC,CAAC;YACJ,CAAC;QACF,CAAC;IACF,CAAC;IAED,gBAAgB;QACf,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,UAAU,EAAE,CAAC;YACpC,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC;YAClC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC;QAC9B,CAAC;IACF,CAAC;IAED,YAAY,CAAC,CAAQ;QACpB,CAAC,CAAC,cAAc,EAAE,CAAC;IACpB,CAAC;IAED,cAAc,CAAC,CAAa;QAC3B,CAAC,CAAC,cAAc,EAAE,CAAC;IACpB,CAAC;IAED,WAAW,CAAC,CAAwC;QACnD,MAAM,IAAI,GAAG,CAAC,CAAC,MAAM,CAAC,IAAoB,CAAC;QAE3C,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC;QACzC,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC;QAEhC,MAAM,gBAAgB,GAAG,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,iBAAiB,CAAC;QAC/D,MAAM,sBAAsB,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,KAAK,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC;QAE3F,IAAI,gBAAgB,IAAI,sBAAsB,EAAE,CAAC;YAChD,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAC,0FAA0F;YACnH,OAAO,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACjC,CAAC;QAED,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,iBAAiB,CAAC;QAEpC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACpB,IAAI,CAAC,kBAAkB,CAAC,kBAAkB,EAAE;gBAC3C,IAAI;aACJ,CAAC,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACxB,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAEzB,kBAAkB;QAClB,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACpE,CAAC;IAED,YAAY;QACX,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;IAC1B,CAAC;IAED,qBAAqB,CAAC,WAAmB;QACxC,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;QAClC,MAAM,WAAW,GAAG,QAAQ,CAAC,WAAW,CAAC,CAAC;QAC1C,MAAM,aAAa,GAAG,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACjE,MAAM,yBAAyB,GAAG,WAAW,EAAE,cAAc,IAAI,EAAE,CAAC;QACpE,MAAM,WAAW,GAAG,WAAW,EAAE,WAAW,CAAC;QAC7C,MAAM,gBAAgB,GAAG,UAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,kBAAkB,EAAE,aAAa,CAAC,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;QACvI,MAAM,eAAe,GAAG,UAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,sBAAsB,CAAC,CAAC;QAE5E,IAAI,WAAW,EAAE,CAAC;YACjB,QAAQ,CAAC,GAAG,eAAe,IAAI,WAAW,CAAC,UAAU,EAAE,EAAE,oBAAoB,CAAC,MAAM,CAAC,CAAC;QACvF,CAAC;aAAM,CAAC;YACP,QAAQ,CAAC,GAAG,yBAAyB,IAAI,gBAAgB,EAAE,CAAC,IAAI,EAAE,EAAE,oBAAoB,CAAC,MAAM,CAAC,CAAC;QAClG,CAAC;IACF,CAAC;IAED,MAAM;QACL,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAE5D,IAAI,YAAY,EAAE,IAAI,KAAK,IAAI,CAAC,KAAK,EAAE,CAAC;YACvC,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC;QACnC,CAAC;QAED,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;QAChB,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC;QAEjC,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YACnB,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;YACrB,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC;QACnC,CAAC;aAAM,CAAC;YACP,IAAI,CAAC,KAAK,EAAE,CAAC;QACd,CAAC;IACF,CAAC;IAED,eAAe,CAAC,IAAmB;QAClC,IAAI,6BAA6B,CAAC,IAAI,CAAC,EAAE,CAAC;YACzC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE;gBAC9B,SAAS,CAAC,UAAU,GAAG,IAAI,CAAC;YAC7B,CAAC,CAAC,CAAC;YACH,OAAO;QACR,CAAC;QAED,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;IACxB,CAAC;IAED,aAAa,CAAC,WAAmB;QAChC,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;QACjC,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;QAClC,MAAM,QAAQ,GAAG,IAAI,EAAE,SAAS,CAAC,WAAW,CAAC,CAAC;QAE9C,IAAI,QAAQ,EAAE,CAAC;YACd,MAAM,UAAU,GAAG,MAAM,CAAC,qBAAqB,EAAE,CAAC;YAClD,MAAM,YAAY,GAAG,QAAQ,CAAC,qBAAqB,EAAE,CAAC;YACtD,MAAM,uBAAuB,GAAG,YAAY,CAAC,GAAG,IAAI,UAAU,CAAC,GAAG,IAAI,YAAY,CAAC,MAAM,IAAI,UAAU,CAAC,MAAM,CAAC;YAE/G,IAAI,CAAC,uBAAuB,EAAE,CAAC;gBAC9B,QAAQ,CAAC,cAAc,CAAC;oBACvB,QAAQ,EAAE,MAAM;oBAChB,KAAK,EAAE,SAAS;oBAChB,MAAM,EAAE,SAAS;iBACjB,CAAC,CAAC;YACJ,CAAC;QACF,CAAC;IACF,CAAC;IAED,uBAAuB;QACtB,MAAM,cAAc,GAAG,IAAI,CAAC,qCAAqC,CAAC,CAAC,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAE5J,IAAI,cAAc,EAAE,CAAC;YACpB,QAAQ,CAAC,cAAc,EAAE,oBAAoB,CAAC,MAAM,CAAC,CAAC;QACvD,CAAC;IACF,CAAC;IACD;;;;OAIG;IACH,kBAAkB;QACjB,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YACvB,OAAO;QACR,CAAC;QAED,MAAM,KAAK,GAAG,CAAC,qBAA8C,EAAE,EAAE;YAChE,IAAI,CAAC,YAAY,GAAG,IAAI,qBAAqB,CAAC;gBAC7C,UAAU,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK;gBAC5B,sBAAsB,EAAE,CAAC,WAAoB,EAAE,EAAE;oBAChD,IAAI,CAAC,YAAY,GAAG,WAAW,CAAC;gBACjC,CAAC;aACD,CAAC,CAAC;YACH,IAAI,CAAC,YAAY,CAAC,iBAAiB,EAAE,CAAC;QACvC,CAAC,CAAC;QAEF,IAAI,UAAQ,CAAC,WAAW,EAAE,CAAC;YAC1B,KAAK,CAAC,UAAQ,CAAC,WAAW,CAAC,CAAC;QAC7B,CAAC;aAAM,CAAC;YACP,MAAM,CAAC,gCAAgC,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,EAAE;gBACjE,UAAQ,CAAC,WAAW,GAAG,iBAAiB,CAAC,OAAO,CAAC;gBACjD,KAAK,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;YAClC,CAAC,CAAC,CAAC;QACJ,CAAC;IACF,CAAC;IAED,IAAI,gBAAgB;QACnB,OAAO,UAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,uBAAuB,CAAC,CAAC;IAC7D,CAAC;IAED,IAAI,uBAAuB;QAC1B,OAAO,UAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;IACpD,CAAC;IAED,IAAI,WAAW;QACd,OAAO,UAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,0BAA0B,CAAC,CAAC;IAChE,CAAC;IAED,IAAI,mBAAmB;QACtB,OAAO,UAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,yBAAyB,CAAC,CAAC;IAC/D,CAAC;IAED,IAAI,KAAK;QACR,OAAO,CAAC,OAAO,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC;YAC9B,CAAC,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC,UAAW,CAAC,aAAa,CAAC,OAAO,CAAE;YAC5D,CAAC,CAAC,IAAI,CAAC,UAAW,CAAC,aAAa,CAAmB,eAAe,CAAE,CAAC;IACvE,CAAC;IAED,UAAU;QACT,OAAO,IAAI,CAAC,UAAW,CAAC,aAAa,CAAoB,0BAA0B,CAAE,CAAC;IACvF,CAAC;IAED,eAAe;QACd,OAAO,IAAI,CAAC,UAAU,EAAG,CAAC,aAAa,CAAmB,aAAa,CAAE,CAAC;IAC3E,CAAC;IAED,IAAI,YAAY;QACf,OAAO,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,IAAI,CAAC;IACnC,CAAC;IAED,IAAI,aAAa;QAChB,OAAO,IAAI,CAAC,UAAU,KAAK,UAAU,CAAC,IAAI,CAAC;IAC5C,CAAC;IAED,IAAI,iBAAiB;QACpB,OAAO,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,UAAU,KAAK,UAAU,CAAC,QAAQ,CAAC;IACtE,CAAC;IAED,IAAI,wBAAwB;QAC3B,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;YACzB,OAAO,EAAE,CAAC;QACX,CAAC;QAED,IAAI,IAAI,GAAG,EAAE,CAAC;QAEd,IAAI,IAAI,CAAC,UAAU,KAAK,UAAU,CAAC,IAAI,EAAE,CAAC;YACzC,IAAI,GAAG,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACrD,CAAC;QAED,IAAI,IAAI,CAAC,qCAAqC,EAAE,CAAC;YAChD,OAAO,GAAG,IAAI,IAAI,IAAI,CAAC,qBAAqB,IAAI,EAAE,EAAE,CAAC;QACtD,CAAC;QAED,OAAO,GAAG,IAAI,EAAE,CAAC,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IAC1F,CAAC;IAED,IAAI,qBAAqB;QACxB,IAAI,IAAI,CAAC,UAAU,KAAK,UAAU,CAAC,IAAI,EAAE,CAAC;YACzC,OAAO;QACR,CAAC;QAED,OAAO,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACrD,CAAC;IAED,IAAI,sBAAsB;QACzB,OAAO;YACN,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,UAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,mBAAmB,CAAC;YACvE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,UAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,iBAAiB,CAAC;YACrE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,UAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,mBAAmB,CAAC;YACvE,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,UAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,uBAAuB,CAAC;SAC9E,CAAC;IACH,CAAC;IAED,IAAI,sBAAsB;QACzB,OAAO;YACN,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,UAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,wBAAwB,CAAC;YAC5E,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,UAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,4BAA4B,CAAC;YACnF,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,UAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,sBAAsB,CAAC;YAC1E,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,UAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,wBAAwB,CAAC;SAC5E,CAAC;IACH,CAAC;IAED,IAAI,kCAAkC;QACrC,OAAO,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,iBAAiB,IAAI,CAAC,IAAI,CAAC,YAAY;eACjF,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;IAClC,CAAC;IAED,IAAI,qCAAqC;QACxC,OAAO,CAAC,IAAI,CAAC,iBAAiB,CAAC,MAAM,IAAI,IAAI,CAAC,iBAAiB,CAAC;IACjE,CAAC;IAED,IAAI,iCAAiC;QACpC,OAAO,IAAI,CAAC,YAAY,KAAK,KAAK,CAAC,CAAC,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAC,CAAC,sBAAsB,CAAC,GAAG,CAAC;IAChG,CAAC;IAED;;OAEG;IACH,IAAI,sBAAsB;QACzB,OAAO,IAAI,CAAC,UAAU,KAAK,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,qBAAqB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAC1F,CAAC;IAED,IAAI,+BAA+B;QAClC,MAAM,KAAK,GAAuB,EAAE,CAAC;QACrC,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAC5B,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;gBACxC,IAAI,OAAO,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;oBAC7B,OAAO,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;wBACnD,KAAK,CAAC,IAAI,CAAC,IAAmB,CAAC,CAAC;oBACjC,CAAC,CAAC,CAAC;gBACJ,CAAC;YACF,CAAC,CAAC,CAAC;QACJ,CAAC;QACD,OAAO,KAAK,CAAC;IACd,CAAC;IAED,IAAI,+BAA+B;QAClC,MAAM,KAAK,GAAG,IAAI,CAAC,+BAA+B,CAAC;QACnD,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;YACnB,OAAO,EAAE,CAAC;QACX,CAAC;QAED,IAAI,KAAK,EAAE,EAAE,CAAC;YACb,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC;gBACxB,CAAC,CAAC,UAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,oBAAoB,CAAC;gBACnD,CAAC,CAAC,UAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC;QACvD,CAAC;QAED,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC;YACxB,CAAC,CAAC,UAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,gBAAgB,CAAC;YAC/C,CAAC,CAAC,UAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;IACnD,CAAC;IAED,IAAI,mBAAmB;QACtB,OAAO,GAAG,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC,kCAAkC,EAAE,CAAC,IAAI,EAAE,CAAC;IACrF,CAAC;IAED,IAAI,kCAAkC;QACrC,OAAO,IAAI,CAAC,+BAA+B,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,sCAAsC,CAAC,CAAC,CAAC,EAAE,CAAC;IACtG,CAAC;IAED,IAAI,gBAAgB;QACnB,OAAO,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,yBAAyB,CAAC,CAAC,CAAC,EAAE,CAAC;IAC5D,CAAC;IAED,IAAI,QAAQ;QACX,OAAO,OAAO,EAAE,CAAC;IAClB,CAAC;IAED,IAAI,YAAY;QACf,OAAO,SAAS,CAAC;IAClB,CAAC;IAED,IAAI,aAAa;QAChB,OAAO,yBAAyB,CAAC,IAAI,CAAC,IAAI,0BAA0B,CAAC,IAAI,CAAC,CAAC;IAC5E,CAAC;IAED,IAAI,uBAAuB;QAC1B,OAAO,UAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,yBAAyB,CAAC,CAAC;IAC/D,CAAC;IAED,IAAI,mBAAmB;QACtB,OAAO,GAAG,IAAI,CAAC,GAAG,UAAU,CAAC;IAC9B,CAAC;IAED,IAAI,MAAM;QACT,MAAM,WAAW,GAAG,QAAQ,CAAC,gBAAgB,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,QAAQ,CAAC,CAAC;QAClF,OAAO;YACN,uBAAuB,EAAE;gBACxB,SAAS,EAAE,IAAI,CAAC,UAAU,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,cAAc;gBAC1D,OAAO,EAAE,GAAG,IAAI,CAAC,UAAU,IAAI,EAAE,IAAI;gBACrC,WAAW,EAAE,SAAS;aACtB;YACD,kBAAkB,EAAE;gBACnB,WAAW,EAAE,GAAG,IAAI,CAAC,WAAW,IAAI,CAAC,IAAI;gBACzC,WAAW,EAAE,CAAC,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,WAAW,IAAI,CAAC,CAAC,CAAC,OAAO;aACtF;YACD,wBAAwB,EAAE,EAAE;SAC5B,CAAC;IACH,CAAC;IAED,IAAI,OAAO;QACV,OAAO;YACN,OAAO,EAAE;gBACR,yBAAyB,EAAE,IAAI;gBAC/B,2CAA2C,EAAE,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,iBAAiB;gBACpF,qCAAqC,EAAE,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,iBAAiB;aAC/E;YACD,iBAAiB,EAAE;gBAClB,8BAA8B,EAAE,IAAI;gBACpC,4BAA4B,EAAE,IAAI;gBAClC,gCAAgC,EAAE,IAAI,CAAC,UAAU,KAAK,UAAU,CAAC,QAAQ;gBACzE,8BAA8B,EAAE,IAAI,CAAC,UAAU,KAAK,UAAU,CAAC,QAAQ;gBACvE,gCAAgC,EAAE,IAAI,CAAC,UAAU,KAAK,UAAU,CAAC,QAAQ;gBACzE,oCAAoC,EAAE,IAAI,CAAC,UAAU,KAAK,UAAU,CAAC,WAAW;aAChF;SACD,CAAC;IACH,CAAC;CACD,CAAA;AAzzCA;IADC,QAAQ,EAAE;uCACA;AAWX;IADC,QAAQ,EAAE;sCACG;AASd;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;6CACR;AAYpB;IADC,QAAQ,EAAE;6CACK;AAShB;IADC,QAAQ,EAAE;6CACU;AAUrB;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;0CACX;AAQjB;IADC,QAAQ,EAAE;4CAC0B;AAWrC;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;0CACX;AAQjB;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;0CACX;AAQjB;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;yCACZ;AAQhB;IADC,QAAQ,EAAE;wCACuC;AASlD;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;+CACN;AAOtB;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;yCACZ;AAShB;IADC,QAAQ,EAAE;gDACa;AASxB;IADC,QAAQ,EAAE;mDACgB;AAG3B;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;8CAC1B;AAGrB;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;gDACgB;AAG1C;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;4CAC1B;AAGpB;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;yDAChB;AAQ/B;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;gDACxB;AAQvB;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;sCACf;AASb;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;uDACW;AAMvC;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;sDAC4B;AAQtD;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;8CAC1B;AAYrB;IANC,IAAI,CAAC;QACL,IAAI,EAAE,WAAW;QACjB,SAAS,EAAE,IAAI;QACf,eAAe,EAAE,IAAI;QACrB,uBAAuB,EAAE,IAAI;KAC7B,CAAC;uCAC2B;AAc7B;IADC,IAAI,EAAE;mDACgC;AAQvC;IADC,IAAI,EAAE;sCACa;AAcb;IADN,IAAI,CAAC,oBAAoB,CAAC;kCACG;AAnPzB,QAAQ;IAxDb,aAAa,CAAC;QACd,GAAG,EAAE,cAAc;QACnB,aAAa,EAAE,IAAI;QACnB,cAAc,EAAE,IAAI;QACpB,QAAQ,EAAE,WAAW;QACrB,MAAM,EAAE;YACP,WAAW;YACX,0BAA0B;YAC1B,oBAAoB;YACpB,kBAAkB;YAClB,cAAc;SACd;QACD,QAAQ,EAAE,gBAAgB;KAC1B,CAAC;IACF;;;OAGG;;IACF,KAAK,CAAC,QAAQ,EAAE;QAChB,OAAO,EAAE,IAAI;KACb,CAAC;IAEF;;;;OAIG;;IACF,KAAK,CAAC,MAAM,EAAE;QACd,OAAO,EAAE,IAAI;KACb,CAAC;IAEF;;;;OAIG;;IACF,KAAK,CAAC,OAAO,CAAC;IAEf;;;;;OAKG;;IACF,KAAK,CAAC,OAAO,EAAE;QACf,OAAO,EAAE,IAAI;KACb,CAAC;IACF;;;;OAIG;;IACF,KAAK,CAAC,kBAAkB,EAAE;QAC1B,OAAO,EAAE,IAAI;KACb,CAAC;GAEI,QAAQ,CAy0Cb;AAED,QAAQ,CAAC,MAAM,EAAE,CAAC;AAElB,eAAe,QAAQ,CAAC","sourcesContent":["import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event-strict.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot.js\";\nimport jsxRenderer from \"@ui5/webcomponents-base/dist/renderer/JsxRenderer.js\";\nimport ValueState from \"@ui5/webcomponents-base/dist/types/ValueState.js\";\nimport { isPhone, isAndroid, isMac } from \"@ui5/webcomponents-base/dist/Device.js\";\nimport InvisibleMessageMode from \"@ui5/webcomponents-base/dist/types/InvisibleMessageMode.js\";\nimport { getEffectiveAriaLabelText, getAssociatedLabelForTexts } from \"@ui5/webcomponents-base/dist/util/AccessibilityTextsHelper.js\";\nimport announce from \"@ui5/webcomponents-base/dist/util/InvisibleMessage.js\";\nimport { getScopedVarName } from \"@ui5/webcomponents-base/dist/CustomElementsScope.js\";\nimport \"@ui5/webcomponents-icons/dist/slim-arrow-down.js\";\nimport \"@ui5/webcomponents-icons/dist/decline.js\";\nimport \"@ui5/webcomponents-icons/dist/error.js\";\nimport \"@ui5/webcomponents-icons/dist/alert.js\";\nimport \"@ui5/webcomponents-icons/dist/sys-enter-2.js\";\nimport \"@ui5/webcomponents-icons/dist/information.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport i18n from \"@ui5/webcomponents-base/dist/decorators/i18n.js\";\nimport { submitForm } from \"@ui5/webcomponents-base/dist/features/InputElementsFormSupport.js\";\nimport type { IFormInputElement } from \"@ui5/webcomponents-base/dist/features/InputElementsFormSupport.js\";\nimport {\n\tisBackSpace,\n\tisDelete,\n\tisShow,\n\tisUp,\n\tisDown,\n\tisEnter,\n\tisEscape,\n\tisTabNext,\n\tisTabPrevious,\n\tisPageUp,\n\tisPageDown,\n\tisHome,\n\tisEnd,\n\tisCtrlAltF8,\n} from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport { attachListeners } from \"@ui5/webcomponents-base/dist/util/valueStateNavigation.js\";\nimport arraysAreEqual from \"@ui5/webcomponents-base/dist/util/arraysAreEqual.js\";\n\nimport type { IIcon } from \"./Icon.js\";\nimport * as Filters from \"./Filters.js\";\n\nimport {\n\tVALUE_STATE_SUCCESS,\n\tVALUE_STATE_ERROR,\n\tVALUE_STATE_WARNING,\n\tVALUE_STATE_INFORMATION,\n\tVALUE_STATE_TYPE_SUCCESS,\n\tVALUE_STATE_TYPE_INFORMATION,\n\tVALUE_STATE_TYPE_ERROR,\n\tVALUE_STATE_TYPE_WARNING,\n\tVALUE_STATE_LINK,\n\tVALUE_STATE_LINKS,\n\tVALUE_STATE_LINK_MAC,\n\tVALUE_STATE_LINKS_MAC,\n\tINPUT_SUGGESTIONS_TITLE,\n\tCOMBOBOX_AVAILABLE_OPTIONS,\n\tCOMBOBOX_DIALOG_OK_BUTTON,\n\tSELECT_OPTIONS,\n\tLIST_ITEM_POSITION,\n\tLIST_ITEM_GROUP_HEADER,\n\tINPUT_CLEAR_ICON_ACC_NAME,\n\tFORM_TEXTFIELD_REQUIRED,\n} from \"./generated/i18n/i18n-defaults.js\";\n\n// Templates\nimport ComboBoxTemplate from \"./ComboBoxTemplate.js\";\n\n// Styles\nimport ComboBoxCss from \"./generated/themes/ComboBox.css.js\";\nimport ComboBoxPopoverCss from \"./generated/themes/ComboBoxPopover.css.js\";\nimport ResponsivePopoverCommonCss from \"./generated/themes/ResponsivePopoverCommon.css.js\";\nimport ValueStateMessageCss from \"./generated/themes/ValueStateMessage.css.js\";\nimport SuggestionsCss from \"./generated/themes/Suggestions.css.js\";\n\nimport \"./ComboBoxItem.js\";\nimport type ComboBoxItem from \"./ComboBoxItem.js\";\nimport type Popover from \"./Popover.js\";\nimport type ResponsivePopover from \"./ResponsivePopover.js\";\nimport type List from \"./List.js\";\nimport type { ListItemClickEventDetail } from \"./List.js\";\n// eslint-disable-next-line\nimport \"./ComboBoxItemGroup.js\";\n// eslint-disable-next-line\nimport { isInstanceOfComboBoxItemGroup } from \"./ComboBoxItemGroup.js\";\nimport type ComboBoxFilter from \"./types/ComboBoxFilter.js\";\nimport PopoverHorizontalAlign from \"./types/PopoverHorizontalAlign.js\";\nimport type Input from \"./Input.js\";\nimport type { InputEventDetail } from \"./Input.js\";\nimport type InputComposition from \"./features/InputComposition.js\";\n\nconst SKIP_ITEMS_SIZE = 10;\n\n/**\n * Interface for components that may be slotted inside a `ui5-combobox`\n * @public\n */\ninterface IComboBoxItem extends UI5Element {\n\ttext?: string,\n\theaderText?: string,\n\tfocused: boolean,\n\tisGroupItem?: boolean,\n\tselected?: boolean,\n\tadditionalText?: string,\n\t_isVisible?: boolean,\n\titems?: Array<IComboBoxItem>\n}\n\ntype ValueStateAnnouncement = Record<Exclude<ValueState, ValueState.None>, string>;\ntype ValueStateTypeAnnouncement = Record<Exclude<ValueState, ValueState.None>, string>;\n\nenum ValueStateIconMapping {\n\tNegative = \"error\",\n\tCritical = \"alert\",\n\tPositive = \"sys-enter-2\",\n\tInformation = \"information\",\n}\n\ntype ComboBoxSelectionChangeEventDetail = {\n\titem: ComboBoxItem | null,\n};\n\n/**\n * @class\n *\n * ### Overview\n *\n * The `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 *\n * It is commonly used to enable users to select an option from a predefined list.\n *\n * ### Structure\n * The `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 *\n * The `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\";`\n * @constructor\n * @extends UI5Element\n * @public\n * @since 1.0.0-rc.6\n */\n@customElement({\n\ttag: \"ui5-combobox\",\n\tlanguageAware: true,\n\tformAssociated: true,\n\trenderer: jsxRenderer,\n\tstyles: [\n\t\tComboBoxCss,\n\t\tResponsivePopoverCommonCss,\n\t\tValueStateMessageCss,\n\t\tComboBoxPopoverCss,\n\t\tSuggestionsCss,\n\t],\n\ttemplate: ComboBoxTemplate,\n})\n/**\n * Fired when the input operation has finished by pressing Enter, focusout or an item is selected.\n * @public\n */\n@event(\"change\", {\n\tbubbles: true,\n})\n\n/**\n * Fired when the dropdown is opened.\n * @since 2.9.0\n * @public\n */\n@event(\"open\", {\n\tbubbles: true,\n})\n\n/**\n * Fired when the dropdown is closed.\n * @since 2.9.0\n * @public\n */\n@event(\"close\")\n\n/**\n * Fired when typing in input or clear icon is pressed.\n *\n * **Note:** filterValue property is updated, input is changed.\n * @public\n */\n@event(\"input\", {\n\tbubbles: true,\n})\n/**\n * Fired when selection is changed by user interaction\n * @param {IComboBoxItem} item item to be selected.\n * @public\n */\n@event(\"selection-change\", {\n\tbubbles: true,\n})\n\nclass ComboBox extends UI5Element implements IFormInputElement {\n\teventDetails!: {\n\t\t\"change\": void,\n\t\t\"input\": void,\n\t\t\"open\": void,\n\t\t\"close\": void,\n\t\t\"selection-change\": ComboBoxSelectionChangeEventDetail,\n\t}\n\t/**\n\t * Defines the value of the component.\n\t * @default \"\"\n\t * @formEvents change input\n\t * @formProperty\n\t * @public\n\t */\n\t@property()\n\tvalue = \"\";\n\n\t/**\n\t * Determines the name by which the component will be identified upon submission in an HTML form.\n\t *\n\t * **Note:** This property is only applicable within the context of an HTML Form element.\n\t * @default undefined\n\t * @public\n\t * @since 2.0.0\n\t */\n\t@property()\n\tname?: string;\n\n\t/**\n\t * Defines whether the value will be autocompleted to match an item\n\t * @default false\n\t * @public\n\t * @since 1.19.0\n\t */\n\t@property({ type: Boolean })\n\tnoTypeahead = false;\n\n\t/**\n\t * Defines the \"live\" value of the component.\n\t *\n\t * **Note:** If we have an item e.g. \"Bulgaria\", \"B\" is typed, \"ulgaria\" is typed ahead, value will be \"Bulgaria\", filterValue will be \"B\".\n\t *\n\t * **Note:** Initially the filter value is synced with value.\n\t * @default \"\"\n\t * @private\n\t */\n\t@property()\n\tfilterValue = \"\"\n\n\t/**\n\t * Defines a short hint intended to aid the user with data entry when the\n\t * component has no value.\n\t * @default undefined\n\t * @public\n\t */\n\t@property()\n\tplaceholder?: string;\n\n\t/**\n\t * Defines whether the component is in disabled state.\n\t *\n\t * **Note:** A disabled component is completely noninteractive.\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\tdisabled = false;\n\n\t/**\n\t * Defines the value state of the component.\n\t * @default \"None\"\n\t * @public\n\t */\n\t@property()\n\tvalueState: `${ValueState}` = \"None\";\n\n\t/**\n\t * Defines whether the component is read-only.\n\t *\n\t * **Note:** A read-only component is not editable,\n\t * but still provides visual feedback upon user interaction.\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\treadonly = false;\n\n\t/**\n\t * Defines whether the component is required.\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\trequired = false;\n\n\t/**\n\t * Indicates whether a loading indicator should be shown in the picker.\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\tloading = false;\n\n\t/**\n\t * Defines the filter type of the component.\n\t * @default \"StartsWithPerTerm\"\n\t * @public\n\t */\n\t@property()\n\tfilter: `${ComboBoxFilter}` = \"StartsWithPerTerm\";\n\n\t/**\n\t * Defines whether the clear icon of the combobox will be shown.\n\t * @default false\n\t * @public\n\t * @since 1.20.1\n\t */\n\t@property({ type: Boolean })\n\tshowClearIcon = false;\n\n\t/**\n\t * Indicates whether the input is focused\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\tfocused = false;\n\n\t/**\n\t * Defines the accessible ARIA name of the component.\n\t * @default undefined\n\t * @public\n\t * @since 1.0.0-rc.15\n\t */\n\t@property()\n\taccessibleName?: string;\n\n\t/**\n\t * Receives id(or many ids) of the elements that label the component\n\t * @default undefined\n\t * @public\n\t * @since 1.0.0-rc.15\n\t */\n\t@property()\n\taccessibleNameRef?: string;\n\n\t@property({ type: Boolean, noAttribute: true })\n\t_iconPressed = false;\n\n\t@property({ type: Array })\n\t_filteredItems: Array<IComboBoxItem> = [];\n\n\t@property({ type: Number, noAttribute: true })\n\t_listWidth?: number;\n\n\t@property({ type: Boolean, noAttribute: true })\n\t_effectiveShowClearIcon = false\n\n\t/**\n\t * Indicates whether the value state message popover is open.\n\t * @private\n\t * @since 2.0.0\n\t */\n\t@property({ type: Boolean, noAttribute: true })\n\tvalueStateOpen = false;\n\n\t/**\n\t * Indicates whether the items picker is open.\n\t * @public\n\t * @since 2.9.0\n\t */\n\t@property({ type: Boolean })\n\topen = false;\n\n\t/**\n\t * Indicates whether link navigation is being handled.\n\t * @default false\n\t * @since 2.11.0\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\t_handleLinkNavigation: boolean = false;\n\n\t/**\n\t * @private\n\t */\n\t@property({ type: Array })\n\t_linksListenersArray: Array<(args: any) => void> = [];\n\n\t/**\n\t * Indicates whether IME composition is currently active\n\t * @default false\n\t * @private\n\t */\n\t@property({ type: Boolean, noAttribute: true })\n\t_isComposing = false;\n\n\t/**\n\t * Defines the component items.\n\t * @public\n\t */\n\t@slot({\n\t\ttype: HTMLElement,\n\t\t\"default\": true,\n\t\tindividualSlots: true,\n\t\tinvalidateOnChildChange: true,\n\t})\n\titems!: Array<IComboBoxItem>;\n\n\t/**\n\t * Defines the value state message that will be displayed as pop up under the component.\n\t * The value state message slot should contain only one root element.\n\t *\n\t * **Note:** If not specified, a default text (in the respective language) will be displayed.\n\t *\n\t * **Note:** The `valueStateMessage` would be displayed,\n\t * when the `ui5-combobox` is in `Information`, `Critical` or `Negative` value state.\n\t * @since 1.0.0-rc.9\n\t * @public\n\t */\n\t@slot()\n\tvalueStateMessage!: Array<HTMLElement>;\n\n\t/**\n\t * Defines the icon to be displayed in the input field.\n\t * @public\n\t * @since 1.0.0-rc.9\n\t */\n\t@slot()\n\ticon!: Array<IIcon>;\n\n\t_initialRendering = true;\n\t_itemFocused = false;\n\t// used only for Safari fix (check onAfterRendering)\n\t_autocomplete = false;\n\t_isKeyNavigation = false;\n\t_selectionPerformed = false;\n\t_lastValue: string;\n\t_selectedItemText = \"\";\n\t_userTypedValue = \"\";\n\t_valueStateLinks: Array<HTMLElement> = [];\n\t_composition?: InputComposition;\n\t@i18n(\"@ui5/webcomponents\")\n\tstatic i18nBundle: I18nBundle;\n\tstatic composition: typeof InputComposition;\n\n\tget formValidityMessage() {\n\t\treturn ComboBox.i18nBundle.getText(FORM_TEXTFIELD_REQUIRED);\n\t}\n\n\tget formValidity(): ValidityStateFlags {\n\t\treturn { valueMissing: this.required && !this.value };\n\t}\n\n\tasync formElementAnchor() {\n\t\treturn this.getFocusDomRefAsync();\n\t}\n\n\tget formFormattedValue() {\n\t\treturn this.value;\n\t}\n\n\tconstructor() {\n\t\tsuper();\n\n\t\t// when an initial value is set it should be considered as a _lastValue\n\t\tthis._lastValue = this.getAttribute(\"value\") || \"\";\n\t}\n\n\tonBeforeRendering() {\n\t\tthis._effectiveShowClearIcon = (this.showClearIcon && !!this.value && !this.readonly && !this.disabled);\n\n\t\tif (this._initialRendering || this.filter === \"None\") {\n\t\t\tthis._filteredItems = this.items;\n\t\t}\n\n\t\tif (this.open && !this._isKeyNavigation) {\n\t\t\tconst items = this._filterItems(this.filterValue);\n\t\t\tthis._filteredItems = (items.length && items) || [];\n\t\t}\n\n\t\tconst hasNoVisibleItems = !this._filteredItems.length || !this._filteredItems.some(i => i._isVisible);\n\n\t\t// If there is no filtered items matching the value, show all items when the arrow is pressed\n\t\tif (((hasNoVisibleItems && !isPhone()) && this.value)) {\n\t\t\tthis.items.forEach(this._makeAllVisible.bind(this));\n\t\t\tthis._filteredItems = this.items;\n\t\t}\n\n\t\tif (this.shouldOpenValueStateMessagePopover) {\n\t\t\tthis.valueStateOpen = true;\n\t\t} else {\n\t\t\tthis.valueStateOpen = false;\n\t\t}\n\n\t\tthis._selectMatchingItem();\n\t\tthis._initialRendering = false;\n\n\t\tthis.style.setProperty(getScopedVarName(\"--_ui5-input-icons-count\"), `${this.iconsCount}`);\n\t}\n\n\tget iconsCount() {\n\t\tconst slottedIconsCount = this.icon?.length || 0;\n\t\tconst clearIconCount = Number(this._effectiveShowClearIcon) ?? 0;\n\t\tconst arrowDownIconsCount = this.readonly ? 0 : 1;\n\n\t\treturn slottedIconsCount + clearIconCount + arrowDownIconsCount;\n\t}\n\n\tonAfterRendering() {\n\t\tif (this.inner && this.value !== this.inner.value) {\n\t\t\tthis.value = this.inner.value;\n\t\t}\n\n\t\tthis.storeResponsivePopoverWidth();\n\n\t\tif (!arraysAreEqual(this._valueStateLinks, this.linksInAriaValueStateHiddenText)) {\n\t\t\tthis._removeLinksEventListeners();\n\t\t\tthis._addLinksEventListeners();\n\t\t\tthis._valueStateLinks = this.linksInAriaValueStateHiddenText;\n\t\t}\n\t}\n\n\tonEnterDOM() {\n\t\tthis._enableComposition();\n\t}\n\n\tonExitDOM() {\n\t\tthis._removeLinksEventListeners();\n\t\tthis._composition?.removeEventListeners();\n\t}\n\n\t_focusin(e: FocusEvent) {\n\t\tthis.focused = true;\n\t\tthis._autocomplete = false;\n\n\t\tif (!e.relatedTarget || (e.relatedTarget !== this.shadowRoot!.querySelector(\".ui5-input-clear-icon\"))) {\n\t\t\tthis._lastValue = this.value;\n\t\t}\n\n\t\t!isPhone() && (e.target as HTMLInputElement).setSelectionRange(0, this.value.length);\n\t}\n\n\t_focusout(e: FocusEvent) {\n\t\tconst toBeFocused = e.relatedTarget as HTMLElement;\n\t\tconst clearIconWrapper = this.shadowRoot!.querySelector(\".ui5-input-clear-icon-wrapper\");\n\t\tconst focusedOutToClearIcon = clearIconWrapper === toBeFocused || clearIconWrapper?.contains(toBeFocused);\n\n\t\tif (this._effectiveShowClearIcon && focusedOutToClearIcon) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._fireChangeEvent();\n\n\t\tconst focusedOutToItemsPicker = this.open && this._getPicker().contains(toBeFocused);\n\t\tconst focusedOutToValueState = this.valueStateOpen && this.contains(toBeFocused);\n\n\t\tif (focusedOutToItemsPicker || focusedOutToValueState || this._handleLinkNavigation) {\n\t\t\te.stopImmediatePropagation();\n\t\t\treturn;\n\t\t}\n\n\t\tif (!(this.getDomRef()!.contains(toBeFocused)) && (this._getPicker() !== e.relatedTarget)) {\n\t\t\tthis.focused = false;\n\t\t}\n\t}\n\n\t_beforeOpenPopover() {\n\t\tif (isPhone()) {\n\t\t\tthis._getPickerInput().value = this.value;\n\t\t}\n\t}\n\n\t_afterOpenPopover() {\n\t\tthis._iconPressed = true;\n\t\tthis.inner.focus();\n\t\tthis.fireDecoratorEvent(\"open\");\n\n\t\tconst allItems = this._getItems();\n\t\tconst currentItem = allItems.find(item => {\n\t\t\treturn item.selected || item.focused;\n\t\t});\n\n\t\tif (currentItem) {\n\t\t\tthis._scrollToItem(allItems.indexOf(currentItem));\n\t\t}\n\t}\n\n\t_afterClosePopover() {\n\t\tthis._iconPressed = false;\n\t\tthis._filteredItems = this.items;\n\t\tthis.filterValue = \"\";\n\t\tthis._selectedItemText = \"\";\n\n\t\t// close device's keyboard and prevent further typing\n\t\tif (isPhone()) {\n\t\t\tthis.blur();\n\t\t}\n\n\t\tif (this._selectionPerformed) {\n\t\t\tthis._lastValue = this.value;\n\t\t\tthis._selectionPerformed = false;\n\t\t}\n\n\t\tthis.open = false;\n\t\tthis.fireDecoratorEvent(\"close\");\n\t}\n\n\t_toggleRespPopover() {\n\t\tif (this.open) {\n\t\t\tthis._closeRespPopover();\n\t\t} else {\n\t\t\tthis._openRespPopover();\n\t\t}\n\t}\n\n\tstoreResponsivePopoverWidth() {\n\t\tif (this.open && !this._listWidth) {\n\t\t\tthis._listWidth = this._getPicker().offsetWidth;\n\t\t}\n\t}\n\n\t_handleValueStatePopoverFocusout() {\n\t\tif (!this._handleLinkNavigation) {\n\t\t\tthis.focused = false;\n\t\t}\n\t}\n\n\t_handleValueStatePopoverAfterClose() {\n\t\tthis.valueStateOpen = false;\n\t}\n\n\t_getValueStatePopover() {\n\t\treturn this.shadowRoot!.querySelector<Popover>(\".ui5-valuestatemessage-popover\")!;\n\t}\n\n\t_getItemsList(): List {\n\t\treturn this._getPicker().querySelector(\".ui5-combobox-items-list\") as List;\n\t}\n\n\t_resetFilter() {\n\t\tthis._userTypedValue = \"\";\n\t\tthis.inner.setSelectionRange(0, this.value.length);\n\t\tthis._filteredItems = this._filterItems(\"\");\n\t\tthis._selectMatchingItem();\n\t}\n\n\t_resetItemVisibility() {\n\t\tthis.items.forEach(item => {\n\t\t\tif (isInstanceOfComboBoxItemGroup(item)) {\n\t\t\t\titem.items?.forEach(i => {\n\t\t\t\t\ti._isVisible = false;\n\t\t\t\t});\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\titem._isVisible = false;\n\t\t});\n\t}\n\n\t_arrowClick() {\n\t\tthis.inner.focus();\n\t\tthis._resetFilter();\n\n\t\tif (isPhone() && this.value && !this._lastValue) {\n\t\t\tthis._lastValue = this.value;\n\t\t}\n\n\t\tthis._toggleRespPopover();\n\t}\n\n\t_handleMobileKeydown(e: KeyboardEvent) {\n\t\tif (isEscape(e)) {\n\t\t\tthis.value = this._lastValue || \"\";\n\t\t\tthis.filterValue = this._lastValue || \"\";\n\t\t\tthis._closeRespPopover();\n\t\t}\n\t}\n\n\t_handleMobileInput(e: CustomEvent<InputEventDetail>) {\n\t\tconst { target } = e;\n\t\tthis.filterValue = (target as Input).value;\n\t\tthis.value = (target as Input).value;\n\t\tthis.fireDecoratorEvent(\"input\");\n\t}\n\n\t_input(e: InputEvent) {\n\t\tconst { value } = e.target as HTMLInputElement;\n\t\tconst shouldAutocomplete = this.shouldAutocomplete(e);\n\n\t\tif (e.target === this.inner) {\n\t\t\t// stop the native event, as the semantic \"input\" would be fired.\n\t\t\te.stopImmediatePropagation();\n\t\t\tthis.focused = true;\n\t\t}\n\n\t\tthis._filteredItems = this._filterItems(value);\n\n\t\tthis.value = value;\n\t\tthis.filterValue = value;\n\n\t\tthis._clearFocus();\n\n\t\t// autocomplete\n\t\tif (shouldAutocomplete && !this._isComposing && !isAndroid()) {\n\t\t\tthis._handleTypeAhead(value, value);\n\t\t}\n\n\t\tthis.fireDecoratorEvent(\"input\");\n\n\t\tif (isPhone()) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (!this._filteredItems.length || value === \"\") {\n\t\t\tthis._closeRespPopover();\n\t\t} else {\n\t\t\tthis._openRespPopover();\n\t\t}\n\t}\n\n\tshouldAutocomplete(e: InputEvent): boolean {\n\t\tconst eventType = e.inputType;\n\t\tconst allowedEventTypes = [\n\t\t\t\"deleteWordBackward\",\n\t\t\t\"deleteWordForward\",\n\t\t\t\"deleteSoftLineBackward\",\n\t\t\t\"deleteSoftLineForward\",\n\t\t\t\"deleteEntireSoftLine\",\n\t\t\t\"deleteHardLineBackward\",\n\t\t\t\"deleteHardLineForward\",\n\t\t\t\"deleteByDrag\",\n\t\t\t\"deleteByCut\",\n\t\t\t\"deleteContent\",\n\t\t\t\"deleteContentBackward\",\n\t\t\t\"deleteContentForward\",\n\t\t\t\"historyUndo\",\n\t\t];\n\n\t\treturn !this.noTypeahead && !allowedEventTypes.includes(eventType);\n\t}\n\n\t_startsWithMatchingItems(str: string): Array<IComboBoxItem> {\n\t\tconst allItems:Array<IComboBoxItem> = this._getItems().filter(item => !isInstanceOfComboBoxItemGroup(item));\n\t\treturn Filters.StartsWith(str, allItems, \"text\");\n\t}\n\n\t_clearFocus() {\n\t\tconst allItems = this._getItems();\n\n\t\tallItems.map(item => {\n\t\t\titem.focused = false;\n\n\t\t\treturn item;\n\t\t});\n\t}\n\n\t// Get groups and items as a flat array for filtering\n\t_getItems() {\n\t\tconst allItems: Array<IComboBoxItem> = [];\n\n\t\tthis._filteredItems.forEach(item => {\n\t\t\tif (isInstanceOfComboBoxItemGroup(item)) {\n\t\t\t\tconst visibleItems = this.open ? item.items.filter(i => i._isVisible) : item.items;\n\t\t\t\tconst groupedItems = [item, ...visibleItems];\n\t\t\t\tallItems.push(...groupedItems);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tallItems.push(item);\n\t\t});\n\n\t\treturn allItems;\n\t}\n\n\thandleNavKeyPress(e: KeyboardEvent) {\n\t\tconst allItems = this._getItems();\n\n\t\tif (this.focused && (isHome(e) || isEnd(e)) && this.value) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst isOpen = this.open;\n\t\tconst currentItem = allItems.find(item => {\n\t\t\treturn item.selected || item.focused;\n\t\t});\n\n\t\tconst indexOfItem = currentItem ? allItems.indexOf(currentItem) : -1;\n\t\te.preventDefault();\n\n\t\tif (this.focused && isOpen && (isUp(e) || isPageUp(e) || isPageDown(e))) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (allItems.length - 1 === indexOfItem && isDown(e)) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._isKeyNavigation = true;\n\n\t\tif (\n\t\t\te.key === \"ArrowDown\"\n\t\t\t|| e.key === \"ArrowUp\"\n\t\t\t|| e.key === \"PageUp\"\n\t\t\t|| e.key === \"PageDown\"\n\t\t\t|| e.key === \"Home\"\n\t\t\t|| e.key === \"End\"\n\t\t) {\n\t\t\tthis[`_handle${e.key}`](e, indexOfItem);\n\t\t}\n\t}\n\n\t_handleItemNavigation(e: KeyboardEvent, indexOfItem: number, isForward: boolean) {\n\t\tconst allItems = this._getItems();\n\n\t\tconst currentItem: IComboBoxItem = allItems[indexOfItem];\n\t\tconst isGroupItem = currentItem && currentItem.isGroupItem;\n\t\tconst nextItem = isForward ? allItems[indexOfItem + 1] : allItems[indexOfItem - 1];\n\n\t\tif ((!this.open) && ((isGroupItem && !nextItem) || (!isGroupItem && !currentItem))) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._clearFocus();\n\n\t\tif (this.open) {\n\t\t\tthis._itemFocused = true;\n\t\t\tthis.value = isGroupItem ? \"\" : currentItem.text!;\n\t\t\tthis.focused = false;\n\n\t\t\tcurrentItem.focused = true;\n\t\t} else {\n\t\t\tthis.focused = true;\n\t\t\tthis.value = isGroupItem ? nextItem.text! : currentItem.text!;\n\t\t\tcurrentItem.focused = false;\n\t\t}\n\n\t\tthis._announceSelectedItem(indexOfItem);\n\t\tthis._scrollToItem(indexOfItem);\n\n\t\tif (isGroupItem && this.open) {\n\t\t\treturn;\n\t\t}\n\t\t// autocomplete\n\t\tthis._handleTypeAhead(this.value, this.open ? this._userTypedValue : \"\");\n\n\t\tthis.fireDecoratorEvent(\"input\");\n\t}\n\n\t_handleTypeAhead(value: string, filterValue: string) {\n\t\tconst item = this._getFirstMatchingItem(value);\n\n\t\tif (!item) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._applyAtomicValueAndSelection(item, filterValue);\n\t}\n\n\t_handleArrowDown(e: KeyboardEvent, indexOfItem: number) {\n\t\tconst isOpen = this.open;\n\n\t\tif (this.focused && indexOfItem === -1 && isOpen) {\n\t\t\tthis.focused = false;\n\t\t}\n\n\t\tthis._handleItemNavigation(e, ++indexOfItem, true /* isForward */);\n\t}\n\n\t_handleArrowUp(e: KeyboardEvent, indexOfItem: number) {\n\t\tconst isOpen = this.open;\n\n\t\tif (indexOfItem === 0) {\n\t\t\tthis._clearFocus();\n\t\t\tthis._itemFocused = false;\n\t\t\tthis.focused = true;\n\n\t\t\tif (this.hasValueStateText && isOpen) {\n\t\t\t\tthis._filteredItems[0].selected = false;\n\t\t\t\tthis.value = this._userTypedValue;\n\t\t\t}\n\n\t\t\treturn;\n\t\t}\n\n\t\tthis._handleItemNavigation(e, --indexOfItem, false /* isForward */);\n\t}\n\n\t_handlePageUp(e: KeyboardEvent, indexOfItem: number) {\n\t\tconst allItems = this._getItems();\n\t\tconst isProposedIndexValid = indexOfItem - SKIP_ITEMS_SIZE > -1;\n\t\tindexOfItem = isProposedIndexValid ? indexOfItem - SKIP_ITEMS_SIZE : 0;\n\t\tconst shouldMoveForward = isInstanceOfComboBoxItemGroup(allItems[indexOfItem]) && !this.open;\n\n\t\tthis._handleItemNavigation(e, indexOfItem, shouldMoveForward);\n\t}\n\n\t_handlePageDown(e: KeyboardEvent, indexOfItem: number) {\n\t\tconst allItems = this._getItems();\n\t\tconst itemsLength = allItems.length;\n\t\tconst isProposedIndexValid = indexOfItem + SKIP_ITEMS_SIZE < itemsLength;\n\n\t\tindexOfItem = isProposedIndexValid ? indexOfItem + SKIP_ITEMS_SIZE : itemsLength - 1;\n\t\tconst shouldMoveForward = isInstanceOfComboBoxItemGroup(allItems[indexOfItem]) && !this.open;\n\n\t\tthis._handleItemNavigation(e, indexOfItem, shouldMoveForward);\n\t}\n\n\t_handleHome(e: KeyboardEvent) {\n\t\tconst shouldMoveForward = isInstanceOfComboBoxItemGroup(this._filteredItems[0]) && !this.open;\n\n\t\tthis._handleItemNavigation(e, 0, shouldMoveForward);\n\t}\n\n\t_handleEnd(e: KeyboardEvent) {\n\t\tthis._handleItemNavigation(e, this._getItems().length - 1, true /* isForward */);\n\t}\n\n\t_keyup() {\n\t\tthis._userTypedValue = this.value.substring(0, this.inner.selectionStart || 0);\n\t}\n\n\t_keydown(e: KeyboardEvent) {\n\t\tconst isNavKey = isDown(e) || isUp(e) || isPageUp(e) || isPageDown(e) || isHome(e) || isEnd(e);\n\t\tconst allItems: Array<IComboBoxItem> = this._getItems();\n\n\t\tthis._autocomplete = !(isBackSpace(e) || isDelete(e));\n\t\tthis._isKeyNavigation = false;\n\n\t\tif (isNavKey && !this.readonly && this._filteredItems.length) {\n\t\t\tthis.handleNavKeyPress(e);\n\t\t}\n\n\t\tif (isEnter(e)) {\n\t\t\tlet focusedItem: IComboBoxItem | undefined;\n\n\t\t\tthis._filteredItems.forEach(item => {\n\t\t\t\tif (isInstanceOfComboBoxItemGroup(item) && !focusedItem) {\n\t\t\t\t\tfocusedItem = item.items.find(groupItem => groupItem.focused);\n\t\t\t\t}\n\n\t\t\t\tif (item.focused) {\n\t\t\t\t\tfocusedItem = item;\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tthis._fireChangeEvent();\n\n\t\t\tif (this.open && !focusedItem?.isGroupItem) {\n\t\t\t\tthis._closeRespPopover();\n\t\t\t\tthis.focused = true;\n\t\t\t\tthis.inner.setSelectionRange(this.value.length, this.value.length);\n\t\t\t} else if (this._internals.form) {\n\t\t\t\tsubmitForm(this);\n\t\t\t}\n\t\t}\n\n\t\tif (isEscape(e)) {\n\t\t\tthis.focused = true;\n\t\t\tthis.value = !this.open ? this._lastValue : this.value;\n\t\t}\n\n\t\tif ((isTabNext(e) || isTabPrevious(e)) && this.open) {\n\t\t\tthis._closeRespPopover();\n\t\t}\n\n\t\tif (isShow(e) && !this.readonly && !this.disabled) {\n\t\t\te.preventDefault();\n\n\t\t\tthis._resetFilter();\n\t\t\tthis._toggleRespPopover();\n\n\t\t\tconst selectedItem = allItems.find(item => {\n\t\t\t\treturn item.selected;\n\t\t\t});\n\n\t\t\tif (selectedItem && this.open) {\n\t\t\t\tthis._itemFocused = true;\n\t\t\t\tselectedItem.focused = true;\n\t\t\t\tthis.focused = false;\n\t\t\t} else if (this.open && this._filteredItems.length && !this.value.length) {\n\t\t\t\t// If no item is selected, select the first non-group item on \"Show\" (F4, Alt+Up/Down)\n\t\t\t\tconst firstNonGroupItem = this._getItems().findIndex(item => item._isVisible && !item.isGroupItem);\n\t\t\t\tthis._handleItemNavigation(e, firstNonGroupItem, true /* isForward */);\n\t\t\t} else {\n\t\t\t\tthis.focused = true;\n\t\t\t}\n\t\t}\n\n\t\tif (isCtrlAltF8(e)) {\n\t\t\treturn this._handleCtrlALtF8();\n\t\t}\n\t}\n\n\t_addLinksEventListeners() {\n\t\tconst links = this.linksInAriaValueStateHiddenText;\n\n\t\tlinks.forEach((link, index) => {\n\t\t\tthis._linksListenersArray.push((e: KeyboardEvent) => {\n\t\t\t\tattachListeners(e, links, index, {\n\t\t\t\t\tcloseValueState: () => {\n\t\t\t\t\t\tif (this.open) {\n\t\t\t\t\t\t\tthis._closeRespPopover();\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (this.valueStateOpen) {\n\t\t\t\t\t\t\tthis.valueStateOpen = false;\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t\tnavigateToItem: () => {\n\t\t\t\t\t\tthis._handleLinkNavigation = false;\n\t\t\t\t\t\tif (this.open) {\n\t\t\t\t\t\t\tthis.inner.focus();\n\t\t\t\t\t\t\tthis.handleNavKeyPress(e);\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t\tfocusInput: () => {\n\t\t\t\t\t\tthis._handleLinkNavigation = false;\n\t\t\t\t\t\tthis.inner.focus();\n\t\t\t\t\t},\n\t\t\t\t\tisPopoverOpen: () => this.open,\n\t\t\t\t});\n\t\t\t});\n\n\t\t\tlink.addEventListener(\"keydown\", this._linksListenersArray[index]);\n\t\t});\n\t}\n\n\t_removeLinksEventListeners() {\n\t\tconst links = this.linksInAriaValueStateHiddenText;\n\n\t\tlinks.forEach((link, index) => {\n\t\t\tlink.removeEventListener(\"keydown\", this._linksListenersArray[index]);\n\t\t});\n\n\t\tthis._linksListenersArray = [];\n\t\tthis._handleLinkNavigation = false;\n\t}\n\n\t_handleCtrlALtF8() {\n\t\tconst links = this.linksInAriaValueStateHiddenText;\n\n\t\tif (links.length > 0) {\n\t\t\tthis._clearFocus();\n\t\t\tlinks[0].focus();\n\t\t}\n\n\t\tthis._handleLinkNavigation = true;\n\t}\n\n\t_handlePopoverKeydown(e: KeyboardEvent) {\n\t\tif (isTabNext(e)) {\n\t\t\tthis._closeRespPopover();\n\t\t}\n\t}\n\n\t_handlePopoverFocusout() {\n\t\tthis.focused = false;\n\t}\n\n\t_click() {\n\t\tif (isPhone() && !this.readonly) {\n\t\t\tthis._openRespPopover();\n\t\t}\n\t}\n\n\t_closeRespPopover(e?: Event | null) {\n\t\tif ((e && (e.target as HTMLElement).classList.contains(\"ui5-responsive-popover-close-btn\"))) {\n\t\t\tif (this._selectedItemText) {\n\t\t\t\tthis.value = this._selectedItemText;\n\t\t\t\tthis.filterValue = this._selectedItemText;\n\t\t\t} else {\n\t\t\t\tthis.value = this._lastValue || \"\";\n\t\t\t\tthis.filterValue = this._lastValue || \"\";\n\t\t\t}\n\t\t}\n\n\t\tif (isPhone()) {\n\t\t\tthis._fireChangeEvent();\n\t\t}\n\n\t\tthis._clearFocus();\n\t\tthis.open = false;\n\t\tthis.valueStateOpen = false;\n\t}\n\n\t_openRespPopover() {\n\t\tthis.open = true;\n\t}\n\n\t_filterItems(str: string) {\n\t\tlet filteredItem:IComboBoxItem;\n\t\tlet filteredGroupItems: Array<IComboBoxItem> = [];\n\t\tconst filteredItems: Array<IComboBoxItem> = [];\n\t\tconst filteredItemGroups: Array<IComboBoxItem> = [];\n\n\t\tthis._resetItemVisibility();\n\t\tthis.items.forEach(item => {\n\t\t\tif (isInstanceOfComboBoxItemGroup(item)) {\n\t\t\t\tfilteredGroupItems = (Filters[this.filter] || Filters.StartsWithPerTerm)(str, item.items, \"text\");\n\t\t\t\tfilteredGroupItems.forEach(i => {\n\t\t\t\t\ti._isVisible = true;\n\t\t\t\t});\n\n\t\t\t\tif (filteredGroupItems.length) {\n\t\t\t\t\tfilteredItemGroups.push(item);\n\t\t\t\t}\n\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t[filteredItem] = (Filters[this.filter] || Filters.StartsWithPerTerm)(str, [item], \"text\");\n\n\t\t\tif (filteredItem) {\n\t\t\t\tfilteredItem._isVisible = true;\n\t\t\t\tfilteredItems.push(filteredItem);\n\t\t\t}\n\t\t});\n\n\t\treturn [...filteredItemGroups, ...filteredItems];\n\t}\n\n\t_getFirstMatchingItem(current: string): IComboBoxItem | void {\n\t\tconst allItems = this._getItems();\n\t\tconst currentlyFocusedItem = allItems.find(item => item.focused === true);\n\n\t\tif (currentlyFocusedItem?.isGroupItem) {\n\t\t\tthis.value = this.filterValue;\n\t\t\treturn;\n\t\t}\n\n\t\tconst matchingItems: Array<IComboBoxItem> = this._startsWithMatchingItems(current);\n\n\t\tif (matchingItems.length) {\n\t\t\tconst exactMatch = matchingItems.find(item => item.text === current);\n\t\t\treturn exactMatch ?? matchingItems[0];\n\t\t}\n\t}\n\n\t_applyAtomicValueAndSelection(item: IComboBoxItem, filterValue: string) {\n\t\tconst value = (item && item.text) || \"\";\n\n\t\tthis.inner.value = value;\n\t\tthis.inner.setSelectionRange(filterValue.length, value.length);\n\t\tthis.value = value;\n\t}\n\n\t_selectMatchingItem() {\n\t\tconst currentlyFocusedItem = this.items.find(item => item.focused);\n\t\tconst shouldSelectionBeCleared = currentlyFocusedItem && currentlyFocusedItem.isGroupItem;\n\t\tlet itemToBeSelected: IComboBoxItem | undefined;\n\t\tlet previouslySelectedItem: IComboBoxItem | undefined;\n\n\t\t// Find previously selected item\n\t\tthis._filteredItems.forEach(item => {\n\t\t\tif (!isInstanceOfComboBoxItemGroup(item)) {\n\t\t\t\tif (item.selected) {\n\t\t\t\t\tpreviouslySelectedItem = item;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tconst selectedGroupItem = item.items?.find(i => i.selected);\n\t\t\t\tif (selectedGroupItem) {\n\t\t\t\t\tpreviouslySelectedItem = selectedGroupItem;\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\n\t\tthis._filteredItems.forEach(item => {\n\t\t\tif (!shouldSelectionBeCleared && !itemToBeSelected) {\n\t\t\t\titemToBeSelected = ((!item.isGroupItem && (item.text === this.value)) ? item : item?.items?.find(i => i.text === this.value));\n\t\t\t}\n\t\t});\n\n\t\tthis._filteredItems = this._filteredItems.map(item => {\n\t\t\tif (!isInstanceOfComboBoxItemGroup(item)) {\n\t\t\t\titem.selected = item === itemToBeSelected;\n\t\t\t\treturn item;\n\t\t\t}\n\n\t\t\titem.items?.forEach(groupItem => {\n\t\t\t\tgroupItem.selected = itemToBeSelected === groupItem;\n\t\t\t});\n\n\t\t\treturn item;\n\t\t});\n\n\t\t// Fire selection-change event only when selection actually changes\n\t\tif (previouslySelectedItem !== itemToBeSelected) {\n\t\t\tif (itemToBeSelected) {\n\t\t\t\t// New item selected\n\t\t\t\tthis.fireDecoratorEvent(\"selection-change\", {\n\t\t\t\t\titem: itemToBeSelected as ComboBoxItem,\n\t\t\t\t});\n\t\t\t} else if (previouslySelectedItem) {\n\t\t\t\t// Selection cleared - fire event with 'null'\n\t\t\t\tthis.fireDecoratorEvent(\"selection-change\", {\n\t\t\t\t\titem: null,\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}\n\n\t_fireChangeEvent() {\n\t\tif (this.value !== this._lastValue) {\n\t\t\tthis.fireDecoratorEvent(\"change\");\n\t\t\tthis._lastValue = this.value;\n\t\t}\n\t}\n\n\t_inputChange(e: Event) {\n\t\te.preventDefault();\n\t}\n\n\t_itemMousedown(e: MouseEvent) {\n\t\te.preventDefault();\n\t}\n\n\t_selectItem(e: CustomEvent<ListItemClickEventDetail>) {\n\t\tconst item = e.detail.item as ComboBoxItem;\n\n\t\tthis._selectedItemText = item.text || \"\";\n\t\tthis._selectionPerformed = true;\n\n\t\tconst sameItemSelected = this.value === this._selectedItemText;\n\t\tconst sameSelectionPerformed = this.value.toLowerCase() === this.filterValue.toLowerCase();\n\n\t\tif (sameItemSelected && sameSelectionPerformed) {\n\t\t\tthis._fireChangeEvent(); // Click on an already typed, but not memoized value shouold also trigger the change event\n\t\t\treturn this._closeRespPopover();\n\t\t}\n\n\t\tthis.value = this._selectedItemText;\n\n\t\tif (!item.selected) {\n\t\t\tthis.fireDecoratorEvent(\"selection-change\", {\n\t\t\t\titem,\n\t\t\t});\n\t\t}\n\n\t\tthis._fireChangeEvent();\n\t\tthis._closeRespPopover();\n\n\t\t// reset selection\n\t\tthis.inner.setSelectionRange(this.value.length, this.value.length);\n\t}\n\n\t_onItemFocus() {\n\t\tthis._itemFocused = true;\n\t}\n\n\t_announceSelectedItem(indexOfItem: number) {\n\t\tconst allItems = this._getItems();\n\t\tconst currentItem = allItems[indexOfItem];\n\t\tconst nonGroupItems = allItems.filter(item => !item.isGroupItem);\n\t\tconst currentItemAdditionalText = currentItem?.additionalText || \"\";\n\t\tconst isGroupItem = currentItem?.isGroupItem;\n\t\tconst itemPositionText = ComboBox.i18nBundle.getText(LIST_ITEM_POSITION, nonGroupItems.indexOf(currentItem) + 1, nonGroupItems.length);\n\t\tconst groupHeaderText = ComboBox.i18nBundle.getText(LIST_ITEM_GROUP_HEADER);\n\n\t\tif (isGroupItem) {\n\t\t\tannounce(`${groupHeaderText} ${currentItem.headerText}`, InvisibleMessageMode.Polite);\n\t\t} else {\n\t\t\tannounce(`${currentItemAdditionalText} ${itemPositionText}`.trim(), InvisibleMessageMode.Polite);\n\t\t}\n\t}\n\n\t_clear() {\n\t\tconst selectedItem = this.items.find(item => item.selected);\n\n\t\tif (selectedItem?.text === this.value) {\n\t\t\tthis.fireDecoratorEvent(\"change\");\n\t\t}\n\n\t\tthis.value = \"\";\n\t\tthis.fireDecoratorEvent(\"input\");\n\n\t\tif (this._isPhone) {\n\t\t\tthis._lastValue = \"\";\n\t\t\tthis.fireDecoratorEvent(\"change\");\n\t\t} else {\n\t\t\tthis.focus();\n\t\t}\n\t}\n\n\t_makeAllVisible(item: IComboBoxItem) {\n\t\tif (isInstanceOfComboBoxItemGroup(item)) {\n\t\t\titem.items.forEach(groupItem => {\n\t\t\t\tgroupItem._isVisible = true;\n\t\t\t});\n\t\t\treturn;\n\t\t}\n\n\t\titem._isVisible = true;\n\t}\n\n\t_scrollToItem(indexOfItem: number) {\n\t\tconst picker = this._getPicker();\n\t\tconst list = this._getItemsList();\n\t\tconst listItem = list?.listItems[indexOfItem];\n\n\t\tif (listItem) {\n\t\t\tconst pickerRect = picker.getBoundingClientRect();\n\t\t\tconst listItemRect = listItem.getBoundingClientRect();\n\t\t\tconst isListItemInVisibleArea = listItemRect.top >= pickerRect.top && listItemRect.bottom <= pickerRect.bottom;\n\n\t\t\tif (!isListItemInVisibleArea) {\n\t\t\t\tlistItem.scrollIntoView({\n\t\t\t\t\tbehavior: \"auto\",\n\t\t\t\t\tblock: \"nearest\",\n\t\t\t\t\tinline: \"nearest\",\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}\n\n\t_announceValueStateText() {\n\t\tconst valueStateText = this.shouldDisplayDefaultValueStateMessage ? this.valueStateDefaultText : this.valueStateMessage.map(el => el.textContent).join(\" \");\n\n\t\tif (valueStateText) {\n\t\t\tannounce(valueStateText, InvisibleMessageMode.Polite);\n\t\t}\n\t}\n\t/**\n\t * Enables IME composition handling.\n\t * Dynamically loads the InputComposition feature and sets up event listeners.\n\t * @private\n\t */\n\t_enableComposition() {\n\t\tif (this._composition) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst setup = (InputCompositionClass: typeof InputComposition) => {\n\t\t\tthis._composition = new InputCompositionClass({\n\t\t\t\tgetInputEl: () => this.inner,\n\t\t\t\tupdateCompositionState: (isComposing: boolean) => {\n\t\t\t\t\tthis._isComposing = isComposing;\n\t\t\t\t},\n\t\t\t});\n\t\t\tthis._composition.addEventListeners();\n\t\t};\n\n\t\tif (ComboBox.composition) {\n\t\t\tsetup(ComboBox.composition);\n\t\t} else {\n\t\t\timport(\"./features/InputComposition.js\").then(CompositionModule => {\n\t\t\t\tComboBox.composition = CompositionModule.default;\n\t\t\t\tsetup(CompositionModule.default);\n\t\t\t});\n\t\t}\n\t}\n\n\tget _headerTitleText() {\n\t\treturn ComboBox.i18nBundle.getText(INPUT_SUGGESTIONS_TITLE);\n\t}\n\n\tget _iconAccessibleNameText() {\n\t\treturn ComboBox.i18nBundle.getText(SELECT_OPTIONS);\n\t}\n\n\tget _popupLabel() {\n\t\treturn ComboBox.i18nBundle.getText(COMBOBOX_AVAILABLE_OPTIONS);\n\t}\n\n\tget _dialogOkButtonText() {\n\t\treturn ComboBox.i18nBundle.getText(COMBOBOX_DIALOG_OK_BUTTON);\n\t}\n\n\tget inner(): HTMLInputElement {\n\t\treturn (isPhone() && this.open)\n\t\t\t? this._getPickerInput().shadowRoot!.querySelector(\"input\")!\n\t\t\t: this.shadowRoot!.querySelector<HTMLInputElement>(\"[inner-input]\")!;\n\t}\n\n\t_getPicker() {\n\t\treturn this.shadowRoot!.querySelector<ResponsivePopover>(\"[ui5-responsive-popover]\")!;\n\t}\n\n\t_getPickerInput() {\n\t\treturn this._getPicker()!.querySelector<HTMLInputElement>(\"[ui5-input]\")!;\n\t}\n\n\tget openOnMobile() {\n\t\treturn this._isPhone && this.open;\n\t}\n\n\tget hasValueState(): boolean {\n\t\treturn this.valueState !== ValueState.None;\n\t}\n\n\tget hasValueStateText(): boolean {\n\t\treturn this.hasValueState && this.valueState !== ValueState.Positive;\n\t}\n\n\tget ariaValueStateHiddenText(): string {\n\t\tif (!this.hasValueState) {\n\t\t\treturn \"\";\n\t\t}\n\n\t\tlet text = \"\";\n\n\t\tif (this.valueState !== ValueState.None) {\n\t\t\ttext = this.valueStateTypeMappings[this.valueState];\n\t\t}\n\n\t\tif (this.shouldDisplayDefaultValueStateMessage) {\n\t\t\treturn `${text} ${this.valueStateDefaultText || \"\"}`;\n\t\t}\n\n\t\treturn `${text}`.concat(\" \", this.valueStateMessage.map(el => el.textContent).join(\" \"));\n\t}\n\n\tget valueStateDefaultText(): string | undefined {\n\t\tif (this.valueState === ValueState.None) {\n\t\t\treturn;\n\t\t}\n\n\t\treturn this.valueStateTextMappings[this.valueState];\n\t}\n\n\tget valueStateTextMappings(): ValueStateAnnouncement {\n\t\treturn {\n\t\t\t[ValueState.Positive]: ComboBox.i18nBundle.getText(VALUE_STATE_SUCCESS),\n\t\t\t[ValueState.Negative]: ComboBox.i18nBundle.getText(VALUE_STATE_ERROR),\n\t\t\t[ValueState.Critical]: ComboBox.i18nBundle.getText(VALUE_STATE_WARNING),\n\t\t\t[ValueState.Information]: ComboBox.i18nBundle.getText(VALUE_STATE_INFORMATION),\n\t\t};\n\t}\n\n\tget valueStateTypeMappings(): ValueStateTypeAnnouncement {\n\t\treturn {\n\t\t\t[ValueState.Positive]: ComboBox.i18nBundle.getText(VALUE_STATE_TYPE_SUCCESS),\n\t\t\t[ValueState.Information]: ComboBox.i18nBundle.getText(VALUE_STATE_TYPE_INFORMATION),\n\t\t\t[ValueState.Negative]: ComboBox.i18nBundle.getText(VALUE_STATE_TYPE_ERROR),\n\t\t\t[ValueState.Critical]: ComboBox.i18nBundle.getText(VALUE_STATE_TYPE_WARNING),\n\t\t};\n\t}\n\n\tget shouldOpenValueStateMessagePopover(): boolean {\n\t\treturn this.focused && !this.readonly && this.hasValueStateText && !this._iconPressed\n\t\t\t&& !this.open && !this._isPhone;\n\t}\n\n\tget shouldDisplayDefaultValueStateMessage(): boolean {\n\t\treturn !this.valueStateMessage.length && this.hasValueStateText;\n\t}\n\n\tget _valueStatePopoverHorizontalAlign(): `${PopoverHorizontalAlign}` {\n\t\treturn this.effectiveDir !== \"rtl\" ? PopoverHorizontalAlign.Start : PopoverHorizontalAlign.End;\n\t}\n\n\t/**\n\t * This method is relevant for sap_horizon theme only\n\t */\n\tget _valueStateMessageIcon(): string {\n\t\treturn this.valueState !== ValueState.None ? ValueStateIconMapping[this.valueState] : \"\";\n\t}\n\n\tget linksInAriaValueStateHiddenText() {\n\t\tconst links: Array<HTMLElement> = [];\n\t\tif (this.valueStateMessage) {\n\t\t\tthis.valueStateMessage.forEach(element => {\n\t\t\t\tif (element.children.length)\t{\n\t\t\t\t\telement.querySelectorAll(\"ui5-link\").forEach(link => {\n\t\t\t\t\t\tlinks.push(link as HTMLElement);\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t\treturn links;\n\t}\n\n\tget valueStateLinksShortcutsTextAcc() {\n\t\tconst links = this.linksInAriaValueStateHiddenText;\n\t\tif (!links.length) {\n\t\t\treturn \"\";\n\t\t}\n\n\t\tif (isMac()) {\n\t\t\treturn links.length === 1\n\t\t\t\t? ComboBox.i18nBundle.getText(VALUE_STATE_LINK_MAC)\n\t\t\t\t: ComboBox.i18nBundle.getText(VALUE_STATE_LINKS_MAC);\n\t\t}\n\n\t\treturn links.length === 1\n\t\t\t? ComboBox.i18nBundle.getText(VALUE_STATE_LINK)\n\t\t\t: ComboBox.i18nBundle.getText(VALUE_STATE_LINKS);\n\t}\n\n\tget ariaDescribedByText() {\n\t\treturn `${this.valueStateTextId} ${this._valueStateLinksShortcutsTextAccId}`.trim();\n\t}\n\n\tget _valueStateLinksShortcutsTextAccId() {\n\t\treturn this.linksInAriaValueStateHiddenText.length > 0 ? `hiddenText-value-state-link-shortcut` : \"\";\n\t}\n\n\tget valueStateTextId() {\n\t\treturn this.hasValueState ? `value-state-description` : \"\";\n\t}\n\n\tget _isPhone(): boolean {\n\t\treturn isPhone();\n\t}\n\n\tget itemTabIndex() {\n\t\treturn undefined;\n\t}\n\n\tget ariaLabelText(): string | undefined {\n\t\treturn getEffectiveAriaLabelText(this) || getAssociatedLabelForTexts(this);\n\t}\n\n\tget clearIconAccessibleName() {\n\t\treturn ComboBox.i18nBundle.getText(INPUT_CLEAR_ICON_ACC_NAME);\n\t}\n\n\tget responsivePopoverId() {\n\t\treturn `${this._id}-popover`;\n\t}\n\n\tget styles() {\n\t\tconst remSizeInPx = parseInt(getComputedStyle(document.documentElement).fontSize);\n\t\treturn {\n\t\t\tsuggestionPopoverHeader: {\n\t\t\t\t\"display\": this._listWidth === 0 ? \"none\" : \"inline-block\",\n\t\t\t\t\"width\": `${this._listWidth || \"\"}px`,\n\t\t\t\t\"max-width\": \"inherit\",\n\t\t\t},\n\t\t\tsuggestionsPopover: {\n\t\t\t\t\"min-width\": `${this.offsetWidth || 0}px`,\n\t\t\t\t\"max-width\": (this.offsetWidth / remSizeInPx) > 40 ? `${this.offsetWidth}px` : \"40rem\",\n\t\t\t},\n\t\t\tpopoverValueStateMessage: {},\n\t\t};\n\t}\n\n\tget classes() {\n\t\treturn {\n\t\t\tpopover: {\n\t\t\t\t\"ui5-suggestions-popover\": true,\n\t\t\t\t\"ui5-popover-with-value-state-header-phone\": this._isPhone && this.hasValueStateText,\n\t\t\t\t\"ui5-popover-with-value-state-header\": !this._isPhone && this.hasValueStateText,\n\t\t\t},\n\t\t\tpopoverValueState: {\n\t\t\t\t\"ui5-valuestatemessage-header\": true,\n\t\t\t\t\"ui5-valuestatemessage-root\": true,\n\t\t\t\t\"ui5-valuestatemessage--success\": this.valueState === ValueState.Positive,\n\t\t\t\t\"ui5-valuestatemessage--error\": this.valueState === ValueState.Negative,\n\t\t\t\t\"ui5-valuestatemessage--warning\": this.valueState === ValueState.Critical,\n\t\t\t\t\"ui5-valuestatemessage--information\": this.valueState === ValueState.Information,\n\t\t\t},\n\t\t};\n\t}\n}\n\nComboBox.define();\n\nexport default ComboBox;\n\nexport type {\n\tComboBoxSelectionChangeEventDetail,\n\tIComboBoxItem,\n};\n"]}
package/dist/Input.d.ts CHANGED
@@ -15,6 +15,7 @@ import type PopoverHorizontalAlign from "./types/PopoverHorizontalAlign.js";
15
15
  import type { ListItemClickEventDetail, ListSelectionChangeEventDetail } from "./List.js";
16
16
  import type ResponsivePopover from "./ResponsivePopover.js";
17
17
  import type InputKeyHint from "./types/InputKeyHint.js";
18
+ import type InputComposition from "./features/InputComposition.js";
18
19
  /**
19
20
  * Interface for components that represent a suggestion item, usable in `ui5-input`
20
21
  * @public
@@ -310,6 +311,12 @@ declare class Input extends UI5Element implements SuggestionComponent, IFormInpu
310
311
  * @private
311
312
  */
312
313
  _linksListenersArray: Array<(args: any) => void>;
314
+ /**
315
+ * Indicates whether IME composition is currently active
316
+ * @default false
317
+ * @private
318
+ */
319
+ _isComposing: boolean;
313
320
  /**
314
321
  * Defines the suggestion items.
315
322
  *
@@ -363,7 +370,9 @@ declare class Input extends UI5Element implements SuggestionComponent, IFormInpu
363
370
  _isLatestValueFromSuggestions: boolean;
364
371
  _isChangeTriggeredBySuggestion: boolean;
365
372
  _valueStateLinks: Array<HTMLElement>;
373
+ _composition?: InputComposition;
366
374
  static i18nBundle: I18nBundle;
375
+ static composition: typeof InputComposition;
367
376
  /**
368
377
  * Indicates whether link navigation is being handled.
369
378
  * @default false
@@ -433,6 +442,12 @@ declare class Input extends UI5Element implements SuggestionComponent, IFormInpu
433
442
  _handleValueStatePopoverAfterClose(): void;
434
443
  _getValueStatePopover(): Popover;
435
444
  enableSuggestions(): void;
445
+ /**
446
+ * Enables IME composition handling.
447
+ * Dynamically loads the InputComposition feature and sets up event listeners.
448
+ * @private
449
+ */
450
+ _enableComposition(): void;
436
451
  acceptSuggestion(item: IInputSuggestionItemSelectable, keyboardUsed: boolean): void;
437
452
  /**
438
453
  * Updates the input value on item select.