@ui5/webcomponents 2.17.0-rc.1 → 2.17.0-rc.3

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 (604) hide show
  1. package/CHANGELOG.md +39 -0
  2. package/dist/.tsbuildinfo +1 -1
  3. package/dist/Bar.d.ts +16 -1
  4. package/dist/Bar.js +14 -1
  5. package/dist/Bar.js.map +1 -1
  6. package/dist/BarTemplate.js +1 -1
  7. package/dist/BarTemplate.js.map +1 -1
  8. package/dist/ColorPicker.d.ts +2 -0
  9. package/dist/ColorPicker.js +7 -1
  10. package/dist/ColorPicker.js.map +1 -1
  11. package/dist/ColorPickerTemplate.js +2 -2
  12. package/dist/ColorPickerTemplate.js.map +1 -1
  13. package/dist/ComboBox.d.ts +0 -2
  14. package/dist/ComboBox.js +0 -4
  15. package/dist/ComboBox.js.map +1 -1
  16. package/dist/ComboBoxPopoverTemplate.js +2 -1
  17. package/dist/ComboBoxPopoverTemplate.js.map +1 -1
  18. package/dist/DatePicker.d.ts +1 -0
  19. package/dist/DatePicker.js +5 -1
  20. package/dist/DatePicker.js.map +1 -1
  21. package/dist/DatePickerInputTemplate.js +1 -1
  22. package/dist/DatePickerInputTemplate.js.map +1 -1
  23. package/dist/Input.d.ts +0 -2
  24. package/dist/Input.js +0 -3
  25. package/dist/Input.js.map +1 -1
  26. package/dist/InputPopoverTemplate.js +2 -1
  27. package/dist/InputPopoverTemplate.js.map +1 -1
  28. package/dist/MenuItem.d.ts +0 -2
  29. package/dist/MenuItem.js +0 -3
  30. package/dist/MenuItem.js.map +1 -1
  31. package/dist/MenuItemTemplate.js +2 -1
  32. package/dist/MenuItemTemplate.js.map +1 -1
  33. package/dist/MultiComboBox.d.ts +0 -2
  34. package/dist/MultiComboBox.js +0 -3
  35. package/dist/MultiComboBox.js.map +1 -1
  36. package/dist/MultiComboBoxPopoverTemplate.js +2 -1
  37. package/dist/MultiComboBoxPopoverTemplate.js.map +1 -1
  38. package/dist/Popover.d.ts +19 -6
  39. package/dist/Popover.js +82 -50
  40. package/dist/Popover.js.map +1 -1
  41. package/dist/TextArea.d.ts +0 -2
  42. package/dist/TextArea.js +0 -3
  43. package/dist/TextArea.js.map +1 -1
  44. package/dist/TextAreaPopoverTemplate.js +2 -1
  45. package/dist/TextAreaPopoverTemplate.js.map +1 -1
  46. package/dist/TimePicker.d.ts +1 -0
  47. package/dist/TimePicker.js +1 -0
  48. package/dist/TimePicker.js.map +1 -1
  49. package/dist/TimePickerTemplate.js +1 -1
  50. package/dist/TimePickerTemplate.js.map +1 -1
  51. package/dist/ToolbarButton.d.ts +24 -0
  52. package/dist/ToolbarButton.js +32 -0
  53. package/dist/ToolbarButton.js.map +1 -1
  54. package/dist/ToolbarButtonTemplate.js +1 -1
  55. package/dist/ToolbarButtonTemplate.js.map +1 -1
  56. package/dist/css/themes/Avatar.css +1 -1
  57. package/dist/css/themes/AvatarGroup.css +1 -1
  58. package/dist/css/themes/Bar.css +1 -1
  59. package/dist/css/themes/Breadcrumbs.css +1 -1
  60. package/dist/css/themes/BusyIndicator.css +1 -1
  61. package/dist/css/themes/Button.css +1 -1
  62. package/dist/css/themes/ButtonBadge.css +1 -1
  63. package/dist/css/themes/Calendar.css +1 -1
  64. package/dist/css/themes/CalendarHeader.css +1 -1
  65. package/dist/css/themes/CalendarLegend.css +1 -1
  66. package/dist/css/themes/CalendarLegendItem.css +1 -1
  67. package/dist/css/themes/Card.css +1 -1
  68. package/dist/css/themes/CardHeader.css +1 -1
  69. package/dist/css/themes/Carousel.css +1 -1
  70. package/dist/css/themes/CheckBox.css +1 -1
  71. package/dist/css/themes/ColorPalette.css +1 -1
  72. package/dist/css/themes/ColorPaletteItem.css +1 -1
  73. package/dist/css/themes/ColorPalettePopover.css +1 -1
  74. package/dist/css/themes/ColorPicker.css +1 -1
  75. package/dist/css/themes/ComboBox.css +1 -1
  76. package/dist/css/themes/ComboBoxItem.css +1 -1
  77. package/dist/css/themes/DatePicker.css +1 -1
  78. package/dist/css/themes/DatePickerPopover.css +1 -1
  79. package/dist/css/themes/DateRangePicker.css +1 -1
  80. package/dist/css/themes/DateTimePicker.css +1 -1
  81. package/dist/css/themes/DateTimePickerPopover.css +1 -1
  82. package/dist/css/themes/DayPicker.css +1 -1
  83. package/dist/css/themes/Dialog.css +1 -1
  84. package/dist/css/themes/DraggableElement.css +1 -1
  85. package/dist/css/themes/DropIndicator.css +1 -1
  86. package/dist/css/themes/DynamicDateRange.css +1 -1
  87. package/dist/css/themes/DynamicDateRangePopover.css +1 -1
  88. package/dist/css/themes/ExpandableText.css +1 -1
  89. package/dist/css/themes/FileUploader.css +1 -1
  90. package/dist/css/themes/Form.css +1 -1
  91. package/dist/css/themes/FormItem.css +1 -1
  92. package/dist/css/themes/FormItemSpan.css +1 -1
  93. package/dist/css/themes/GrowingButton.css +1 -1
  94. package/dist/css/themes/Icon.css +1 -1
  95. package/dist/css/themes/Input.css +1 -1
  96. package/dist/css/themes/InputIcon.css +1 -1
  97. package/dist/css/themes/InputSharedStyles.css +1 -1
  98. package/dist/css/themes/Label.css +1 -1
  99. package/dist/css/themes/Link.css +1 -1
  100. package/dist/css/themes/List.css +1 -1
  101. package/dist/css/themes/ListItem.css +1 -1
  102. package/dist/css/themes/ListItemAdditionalText.css +1 -1
  103. package/dist/css/themes/ListItemBase.css +1 -1
  104. package/dist/css/themes/ListItemCustom.css +1 -1
  105. package/dist/css/themes/ListItemGroup.css +1 -1
  106. package/dist/css/themes/ListItemGroupHeader.css +1 -1
  107. package/dist/css/themes/ListItemIcon.css +1 -1
  108. package/dist/css/themes/Menu.css +1 -1
  109. package/dist/css/themes/MenuItem.css +1 -1
  110. package/dist/css/themes/MenuSeparator.css +1 -1
  111. package/dist/css/themes/MessageStrip.css +1 -1
  112. package/dist/css/themes/MonthPicker.css +1 -1
  113. package/dist/css/themes/MultiComboBox.css +1 -1
  114. package/dist/css/themes/MultiComboBoxItem.css +1 -1
  115. package/dist/css/themes/MultiComboBoxPopover.css +1 -1
  116. package/dist/css/themes/MultiInput.css +1 -1
  117. package/dist/css/themes/OptionBase.css +1 -1
  118. package/dist/css/themes/Panel.css +1 -1
  119. package/dist/css/themes/Popover.css +1 -1
  120. package/dist/css/themes/PopupsCommon.css +1 -1
  121. package/dist/css/themes/ProgressIndicator.css +1 -1
  122. package/dist/css/themes/RadioButton.css +1 -1
  123. package/dist/css/themes/RangeSlider.css +1 -1
  124. package/dist/css/themes/RatingIndicator.css +1 -1
  125. package/dist/css/themes/ResponsivePopover.css +1 -1
  126. package/dist/css/themes/ResponsivePopoverCommon.css +1 -1
  127. package/dist/css/themes/SegmentedButton.css +1 -1
  128. package/dist/css/themes/SegmentedButtonItem.css +1 -1
  129. package/dist/css/themes/Select.css +1 -1
  130. package/dist/css/themes/SliderBase.css +1 -1
  131. package/dist/css/themes/SliderTooltip.css +1 -1
  132. package/dist/css/themes/SplitButton.css +1 -1
  133. package/dist/css/themes/StepInput.css +1 -1
  134. package/dist/css/themes/SuggestionItem.css +1 -1
  135. package/dist/css/themes/SuggestionItemCustom.css +1 -1
  136. package/dist/css/themes/Suggestions.css +1 -1
  137. package/dist/css/themes/Switch.css +1 -1
  138. package/dist/css/themes/TabContainer.css +1 -1
  139. package/dist/css/themes/TabInOverflow.css +1 -1
  140. package/dist/css/themes/TabInStrip.css +1 -1
  141. package/dist/css/themes/TabSemanticIcon.css +1 -1
  142. package/dist/css/themes/TabSeparatorInOverflow.css +1 -1
  143. package/dist/css/themes/TabSeparatorInStrip.css +1 -1
  144. package/dist/css/themes/Table.css +1 -1
  145. package/dist/css/themes/TableCell.css +1 -1
  146. package/dist/css/themes/TableCellBase.css +1 -1
  147. package/dist/css/themes/TableGrowing.css +1 -1
  148. package/dist/css/themes/TableHeaderCell.css +1 -1
  149. package/dist/css/themes/TableHeaderRow.css +1 -1
  150. package/dist/css/themes/TableRow.css +1 -1
  151. package/dist/css/themes/TableRowActionBase.css +1 -1
  152. package/dist/css/themes/TableRowBase.css +1 -1
  153. package/dist/css/themes/Tag.css +1 -1
  154. package/dist/css/themes/Text.css +1 -1
  155. package/dist/css/themes/TextArea.css +1 -1
  156. package/dist/css/themes/TimePicker.css +1 -1
  157. package/dist/css/themes/TimePickerClock.css +1 -1
  158. package/dist/css/themes/TimeSelectionClocks.css +1 -1
  159. package/dist/css/themes/TimeSelectionInputs.css +1 -1
  160. package/dist/css/themes/Title.css +1 -1
  161. package/dist/css/themes/Toast.css +1 -1
  162. package/dist/css/themes/ToggleButton.css +1 -1
  163. package/dist/css/themes/Token.css +1 -1
  164. package/dist/css/themes/Tokenizer.css +1 -1
  165. package/dist/css/themes/TokenizerPopover.css +1 -1
  166. package/dist/css/themes/Toolbar.css +1 -1
  167. package/dist/css/themes/ToolbarButton.css +1 -1
  168. package/dist/css/themes/ToolbarPopover.css +1 -1
  169. package/dist/css/themes/ToolbarSeparator.css +1 -1
  170. package/dist/css/themes/TreeItem.css +1 -1
  171. package/dist/css/themes/ValueStateMessage.css +1 -1
  172. package/dist/css/themes/ValueStateVariables.css +1 -1
  173. package/dist/css/themes/YearPicker.css +1 -1
  174. package/dist/css/themes/YearRangePicker.css +1 -1
  175. package/dist/css/themes/sap_fiori_3/parameters-bundle.css +1 -1
  176. package/dist/css/themes/sap_fiori_3_dark/parameters-bundle.css +1 -1
  177. package/dist/css/themes/sap_fiori_3_hcb/parameters-bundle.css +1 -1
  178. package/dist/css/themes/sap_fiori_3_hcw/parameters-bundle.css +1 -1
  179. package/dist/css/themes/sap_horizon/parameters-bundle.css +1 -1
  180. package/dist/css/themes/sap_horizon_dark/parameters-bundle.css +1 -1
  181. package/dist/css/themes/sap_horizon_hcb/parameters-bundle.css +1 -1
  182. package/dist/css/themes/sap_horizon_hcw/parameters-bundle.css +1 -1
  183. package/dist/custom-elements-internal.json +92 -0
  184. package/dist/custom-elements.json +89 -0
  185. package/dist/generated/assets/i18n/messagebundle_en_US_sappsd.json +1 -1
  186. package/dist/generated/assets/i18n/messagebundle_en_US_saprigi.json +1 -1
  187. package/dist/generated/assets/i18n/messagebundle_en_US_saptrc.json +1 -1
  188. package/dist/generated/assets/themes/sap_fiori_3/parameters-bundle.css.json +1 -1
  189. package/dist/generated/assets/themes/sap_fiori_3_dark/parameters-bundle.css.json +1 -1
  190. package/dist/generated/assets/themes/sap_fiori_3_hcb/parameters-bundle.css.json +1 -1
  191. package/dist/generated/assets/themes/sap_fiori_3_hcw/parameters-bundle.css.json +1 -1
  192. package/dist/generated/assets/themes/sap_horizon/parameters-bundle.css.json +1 -1
  193. package/dist/generated/assets/themes/sap_horizon_dark/parameters-bundle.css.json +1 -1
  194. package/dist/generated/assets/themes/sap_horizon_hcb/parameters-bundle.css.json +1 -1
  195. package/dist/generated/assets/themes/sap_horizon_hcw/parameters-bundle.css.json +1 -1
  196. package/dist/generated/i18n/i18n-defaults.d.ts +4 -1
  197. package/dist/generated/i18n/i18n-defaults.js +4 -1
  198. package/dist/generated/i18n/i18n-defaults.js.map +1 -1
  199. package/dist/generated/themes/Avatar.css.d.ts +1 -1
  200. package/dist/generated/themes/Avatar.css.js +1 -1
  201. package/dist/generated/themes/Avatar.css.js.map +1 -1
  202. package/dist/generated/themes/AvatarGroup.css.d.ts +1 -1
  203. package/dist/generated/themes/AvatarGroup.css.js +1 -1
  204. package/dist/generated/themes/AvatarGroup.css.js.map +1 -1
  205. package/dist/generated/themes/Bar.css.d.ts +1 -1
  206. package/dist/generated/themes/Bar.css.js +1 -1
  207. package/dist/generated/themes/Bar.css.js.map +1 -1
  208. package/dist/generated/themes/Breadcrumbs.css.d.ts +1 -1
  209. package/dist/generated/themes/Breadcrumbs.css.js +1 -1
  210. package/dist/generated/themes/Breadcrumbs.css.js.map +1 -1
  211. package/dist/generated/themes/BusyIndicator.css.d.ts +1 -1
  212. package/dist/generated/themes/BusyIndicator.css.js +1 -1
  213. package/dist/generated/themes/BusyIndicator.css.js.map +1 -1
  214. package/dist/generated/themes/Button.css.d.ts +1 -1
  215. package/dist/generated/themes/Button.css.js +1 -1
  216. package/dist/generated/themes/Button.css.js.map +1 -1
  217. package/dist/generated/themes/ButtonBadge.css.d.ts +1 -1
  218. package/dist/generated/themes/ButtonBadge.css.js +1 -1
  219. package/dist/generated/themes/ButtonBadge.css.js.map +1 -1
  220. package/dist/generated/themes/Calendar.css.d.ts +1 -1
  221. package/dist/generated/themes/Calendar.css.js +1 -1
  222. package/dist/generated/themes/Calendar.css.js.map +1 -1
  223. package/dist/generated/themes/CalendarHeader.css.d.ts +1 -1
  224. package/dist/generated/themes/CalendarHeader.css.js +1 -1
  225. package/dist/generated/themes/CalendarHeader.css.js.map +1 -1
  226. package/dist/generated/themes/CalendarLegend.css.d.ts +1 -1
  227. package/dist/generated/themes/CalendarLegend.css.js +1 -1
  228. package/dist/generated/themes/CalendarLegend.css.js.map +1 -1
  229. package/dist/generated/themes/CalendarLegendItem.css.d.ts +1 -1
  230. package/dist/generated/themes/CalendarLegendItem.css.js +1 -1
  231. package/dist/generated/themes/CalendarLegendItem.css.js.map +1 -1
  232. package/dist/generated/themes/Card.css.d.ts +1 -1
  233. package/dist/generated/themes/Card.css.js +1 -1
  234. package/dist/generated/themes/Card.css.js.map +1 -1
  235. package/dist/generated/themes/CardHeader.css.d.ts +1 -1
  236. package/dist/generated/themes/CardHeader.css.js +1 -1
  237. package/dist/generated/themes/CardHeader.css.js.map +1 -1
  238. package/dist/generated/themes/Carousel.css.d.ts +1 -1
  239. package/dist/generated/themes/Carousel.css.js +1 -1
  240. package/dist/generated/themes/Carousel.css.js.map +1 -1
  241. package/dist/generated/themes/CheckBox.css.d.ts +1 -1
  242. package/dist/generated/themes/CheckBox.css.js +1 -1
  243. package/dist/generated/themes/CheckBox.css.js.map +1 -1
  244. package/dist/generated/themes/ColorPalette.css.d.ts +1 -1
  245. package/dist/generated/themes/ColorPalette.css.js +1 -1
  246. package/dist/generated/themes/ColorPalette.css.js.map +1 -1
  247. package/dist/generated/themes/ColorPaletteItem.css.d.ts +1 -1
  248. package/dist/generated/themes/ColorPaletteItem.css.js +1 -1
  249. package/dist/generated/themes/ColorPaletteItem.css.js.map +1 -1
  250. package/dist/generated/themes/ColorPalettePopover.css.d.ts +1 -1
  251. package/dist/generated/themes/ColorPalettePopover.css.js +1 -1
  252. package/dist/generated/themes/ColorPalettePopover.css.js.map +1 -1
  253. package/dist/generated/themes/ColorPicker.css.d.ts +1 -1
  254. package/dist/generated/themes/ColorPicker.css.js +1 -1
  255. package/dist/generated/themes/ColorPicker.css.js.map +1 -1
  256. package/dist/generated/themes/ComboBox.css.d.ts +1 -1
  257. package/dist/generated/themes/ComboBox.css.js +1 -1
  258. package/dist/generated/themes/ComboBox.css.js.map +1 -1
  259. package/dist/generated/themes/ComboBoxItem.css.d.ts +1 -1
  260. package/dist/generated/themes/ComboBoxItem.css.js +1 -1
  261. package/dist/generated/themes/ComboBoxItem.css.js.map +1 -1
  262. package/dist/generated/themes/DatePicker.css.d.ts +1 -1
  263. package/dist/generated/themes/DatePicker.css.js +1 -1
  264. package/dist/generated/themes/DatePicker.css.js.map +1 -1
  265. package/dist/generated/themes/DatePickerPopover.css.d.ts +1 -1
  266. package/dist/generated/themes/DatePickerPopover.css.js +1 -1
  267. package/dist/generated/themes/DatePickerPopover.css.js.map +1 -1
  268. package/dist/generated/themes/DateRangePicker.css.d.ts +1 -1
  269. package/dist/generated/themes/DateRangePicker.css.js +1 -1
  270. package/dist/generated/themes/DateRangePicker.css.js.map +1 -1
  271. package/dist/generated/themes/DateTimePicker.css.d.ts +1 -1
  272. package/dist/generated/themes/DateTimePicker.css.js +1 -1
  273. package/dist/generated/themes/DateTimePicker.css.js.map +1 -1
  274. package/dist/generated/themes/DateTimePickerPopover.css.d.ts +1 -1
  275. package/dist/generated/themes/DateTimePickerPopover.css.js +1 -1
  276. package/dist/generated/themes/DateTimePickerPopover.css.js.map +1 -1
  277. package/dist/generated/themes/DayPicker.css.d.ts +1 -1
  278. package/dist/generated/themes/DayPicker.css.js +1 -1
  279. package/dist/generated/themes/DayPicker.css.js.map +1 -1
  280. package/dist/generated/themes/Dialog.css.d.ts +1 -1
  281. package/dist/generated/themes/Dialog.css.js +1 -1
  282. package/dist/generated/themes/Dialog.css.js.map +1 -1
  283. package/dist/generated/themes/DraggableElement.css.d.ts +1 -1
  284. package/dist/generated/themes/DraggableElement.css.js +1 -1
  285. package/dist/generated/themes/DraggableElement.css.js.map +1 -1
  286. package/dist/generated/themes/DropIndicator.css.d.ts +1 -1
  287. package/dist/generated/themes/DropIndicator.css.js +1 -1
  288. package/dist/generated/themes/DropIndicator.css.js.map +1 -1
  289. package/dist/generated/themes/DynamicDateRange.css.d.ts +1 -1
  290. package/dist/generated/themes/DynamicDateRange.css.js +1 -1
  291. package/dist/generated/themes/DynamicDateRange.css.js.map +1 -1
  292. package/dist/generated/themes/DynamicDateRangePopover.css.d.ts +1 -1
  293. package/dist/generated/themes/DynamicDateRangePopover.css.js +1 -1
  294. package/dist/generated/themes/DynamicDateRangePopover.css.js.map +1 -1
  295. package/dist/generated/themes/ExpandableText.css.d.ts +1 -1
  296. package/dist/generated/themes/ExpandableText.css.js +1 -1
  297. package/dist/generated/themes/ExpandableText.css.js.map +1 -1
  298. package/dist/generated/themes/FileUploader.css.d.ts +1 -1
  299. package/dist/generated/themes/FileUploader.css.js +1 -1
  300. package/dist/generated/themes/FileUploader.css.js.map +1 -1
  301. package/dist/generated/themes/Form.css.d.ts +1 -1
  302. package/dist/generated/themes/Form.css.js +1 -1
  303. package/dist/generated/themes/Form.css.js.map +1 -1
  304. package/dist/generated/themes/FormItem.css.d.ts +1 -1
  305. package/dist/generated/themes/FormItem.css.js +1 -1
  306. package/dist/generated/themes/FormItem.css.js.map +1 -1
  307. package/dist/generated/themes/FormItemSpan.css.d.ts +1 -1
  308. package/dist/generated/themes/FormItemSpan.css.js +1 -1
  309. package/dist/generated/themes/FormItemSpan.css.js.map +1 -1
  310. package/dist/generated/themes/GrowingButton.css.d.ts +1 -1
  311. package/dist/generated/themes/GrowingButton.css.js +1 -1
  312. package/dist/generated/themes/GrowingButton.css.js.map +1 -1
  313. package/dist/generated/themes/Icon.css.d.ts +1 -1
  314. package/dist/generated/themes/Icon.css.js +1 -1
  315. package/dist/generated/themes/Icon.css.js.map +1 -1
  316. package/dist/generated/themes/Input.css.d.ts +1 -1
  317. package/dist/generated/themes/Input.css.js +1 -1
  318. package/dist/generated/themes/Input.css.js.map +1 -1
  319. package/dist/generated/themes/InputIcon.css.d.ts +1 -1
  320. package/dist/generated/themes/InputIcon.css.js +1 -1
  321. package/dist/generated/themes/InputIcon.css.js.map +1 -1
  322. package/dist/generated/themes/InputSharedStyles.css.d.ts +1 -1
  323. package/dist/generated/themes/InputSharedStyles.css.js +1 -1
  324. package/dist/generated/themes/InputSharedStyles.css.js.map +1 -1
  325. package/dist/generated/themes/Label.css.d.ts +1 -1
  326. package/dist/generated/themes/Label.css.js +1 -1
  327. package/dist/generated/themes/Label.css.js.map +1 -1
  328. package/dist/generated/themes/Link.css.d.ts +1 -1
  329. package/dist/generated/themes/Link.css.js +1 -1
  330. package/dist/generated/themes/Link.css.js.map +1 -1
  331. package/dist/generated/themes/List.css.d.ts +1 -1
  332. package/dist/generated/themes/List.css.js +1 -1
  333. package/dist/generated/themes/List.css.js.map +1 -1
  334. package/dist/generated/themes/ListItem.css.d.ts +1 -1
  335. package/dist/generated/themes/ListItem.css.js +1 -1
  336. package/dist/generated/themes/ListItem.css.js.map +1 -1
  337. package/dist/generated/themes/ListItemAdditionalText.css.d.ts +1 -1
  338. package/dist/generated/themes/ListItemAdditionalText.css.js +1 -1
  339. package/dist/generated/themes/ListItemAdditionalText.css.js.map +1 -1
  340. package/dist/generated/themes/ListItemBase.css.d.ts +1 -1
  341. package/dist/generated/themes/ListItemBase.css.js +1 -1
  342. package/dist/generated/themes/ListItemBase.css.js.map +1 -1
  343. package/dist/generated/themes/ListItemCustom.css.d.ts +1 -1
  344. package/dist/generated/themes/ListItemCustom.css.js +1 -1
  345. package/dist/generated/themes/ListItemCustom.css.js.map +1 -1
  346. package/dist/generated/themes/ListItemGroup.css.d.ts +1 -1
  347. package/dist/generated/themes/ListItemGroup.css.js +1 -1
  348. package/dist/generated/themes/ListItemGroup.css.js.map +1 -1
  349. package/dist/generated/themes/ListItemGroupHeader.css.d.ts +1 -1
  350. package/dist/generated/themes/ListItemGroupHeader.css.js +1 -1
  351. package/dist/generated/themes/ListItemGroupHeader.css.js.map +1 -1
  352. package/dist/generated/themes/ListItemIcon.css.d.ts +1 -1
  353. package/dist/generated/themes/ListItemIcon.css.js +1 -1
  354. package/dist/generated/themes/ListItemIcon.css.js.map +1 -1
  355. package/dist/generated/themes/Menu.css.d.ts +1 -1
  356. package/dist/generated/themes/Menu.css.js +1 -1
  357. package/dist/generated/themes/Menu.css.js.map +1 -1
  358. package/dist/generated/themes/MenuItem.css.d.ts +1 -1
  359. package/dist/generated/themes/MenuItem.css.js +1 -1
  360. package/dist/generated/themes/MenuItem.css.js.map +1 -1
  361. package/dist/generated/themes/MenuSeparator.css.d.ts +1 -1
  362. package/dist/generated/themes/MenuSeparator.css.js +1 -1
  363. package/dist/generated/themes/MenuSeparator.css.js.map +1 -1
  364. package/dist/generated/themes/MessageStrip.css.d.ts +1 -1
  365. package/dist/generated/themes/MessageStrip.css.js +1 -1
  366. package/dist/generated/themes/MessageStrip.css.js.map +1 -1
  367. package/dist/generated/themes/MonthPicker.css.d.ts +1 -1
  368. package/dist/generated/themes/MonthPicker.css.js +1 -1
  369. package/dist/generated/themes/MonthPicker.css.js.map +1 -1
  370. package/dist/generated/themes/MultiComboBox.css.d.ts +1 -1
  371. package/dist/generated/themes/MultiComboBox.css.js +1 -1
  372. package/dist/generated/themes/MultiComboBox.css.js.map +1 -1
  373. package/dist/generated/themes/MultiComboBoxItem.css.d.ts +1 -1
  374. package/dist/generated/themes/MultiComboBoxItem.css.js +1 -1
  375. package/dist/generated/themes/MultiComboBoxItem.css.js.map +1 -1
  376. package/dist/generated/themes/MultiComboBoxPopover.css.d.ts +1 -1
  377. package/dist/generated/themes/MultiComboBoxPopover.css.js +1 -1
  378. package/dist/generated/themes/MultiComboBoxPopover.css.js.map +1 -1
  379. package/dist/generated/themes/MultiInput.css.d.ts +1 -1
  380. package/dist/generated/themes/MultiInput.css.js +1 -1
  381. package/dist/generated/themes/MultiInput.css.js.map +1 -1
  382. package/dist/generated/themes/OptionBase.css.d.ts +1 -1
  383. package/dist/generated/themes/OptionBase.css.js +1 -1
  384. package/dist/generated/themes/OptionBase.css.js.map +1 -1
  385. package/dist/generated/themes/Panel.css.d.ts +1 -1
  386. package/dist/generated/themes/Panel.css.js +1 -1
  387. package/dist/generated/themes/Panel.css.js.map +1 -1
  388. package/dist/generated/themes/Popover.css.d.ts +1 -1
  389. package/dist/generated/themes/Popover.css.js +1 -1
  390. package/dist/generated/themes/Popover.css.js.map +1 -1
  391. package/dist/generated/themes/PopupsCommon.css.d.ts +1 -1
  392. package/dist/generated/themes/PopupsCommon.css.js +1 -1
  393. package/dist/generated/themes/PopupsCommon.css.js.map +1 -1
  394. package/dist/generated/themes/ProgressIndicator.css.d.ts +1 -1
  395. package/dist/generated/themes/ProgressIndicator.css.js +1 -1
  396. package/dist/generated/themes/ProgressIndicator.css.js.map +1 -1
  397. package/dist/generated/themes/RadioButton.css.d.ts +1 -1
  398. package/dist/generated/themes/RadioButton.css.js +1 -1
  399. package/dist/generated/themes/RadioButton.css.js.map +1 -1
  400. package/dist/generated/themes/RangeSlider.css.d.ts +1 -1
  401. package/dist/generated/themes/RangeSlider.css.js +1 -1
  402. package/dist/generated/themes/RangeSlider.css.js.map +1 -1
  403. package/dist/generated/themes/RatingIndicator.css.d.ts +1 -1
  404. package/dist/generated/themes/RatingIndicator.css.js +1 -1
  405. package/dist/generated/themes/RatingIndicator.css.js.map +1 -1
  406. package/dist/generated/themes/ResponsivePopover.css.d.ts +1 -1
  407. package/dist/generated/themes/ResponsivePopover.css.js +1 -1
  408. package/dist/generated/themes/ResponsivePopover.css.js.map +1 -1
  409. package/dist/generated/themes/ResponsivePopoverCommon.css.d.ts +1 -1
  410. package/dist/generated/themes/ResponsivePopoverCommon.css.js +1 -1
  411. package/dist/generated/themes/ResponsivePopoverCommon.css.js.map +1 -1
  412. package/dist/generated/themes/SegmentedButton.css.d.ts +1 -1
  413. package/dist/generated/themes/SegmentedButton.css.js +1 -1
  414. package/dist/generated/themes/SegmentedButton.css.js.map +1 -1
  415. package/dist/generated/themes/SegmentedButtonItem.css.d.ts +1 -1
  416. package/dist/generated/themes/SegmentedButtonItem.css.js +1 -1
  417. package/dist/generated/themes/SegmentedButtonItem.css.js.map +1 -1
  418. package/dist/generated/themes/Select.css.d.ts +1 -1
  419. package/dist/generated/themes/Select.css.js +1 -1
  420. package/dist/generated/themes/Select.css.js.map +1 -1
  421. package/dist/generated/themes/SliderBase.css.d.ts +1 -1
  422. package/dist/generated/themes/SliderBase.css.js +1 -1
  423. package/dist/generated/themes/SliderBase.css.js.map +1 -1
  424. package/dist/generated/themes/SliderTooltip.css.d.ts +1 -1
  425. package/dist/generated/themes/SliderTooltip.css.js +1 -1
  426. package/dist/generated/themes/SliderTooltip.css.js.map +1 -1
  427. package/dist/generated/themes/SplitButton.css.d.ts +1 -1
  428. package/dist/generated/themes/SplitButton.css.js +1 -1
  429. package/dist/generated/themes/SplitButton.css.js.map +1 -1
  430. package/dist/generated/themes/StepInput.css.d.ts +1 -1
  431. package/dist/generated/themes/StepInput.css.js +1 -1
  432. package/dist/generated/themes/StepInput.css.js.map +1 -1
  433. package/dist/generated/themes/SuggestionItem.css.d.ts +1 -1
  434. package/dist/generated/themes/SuggestionItem.css.js +1 -1
  435. package/dist/generated/themes/SuggestionItem.css.js.map +1 -1
  436. package/dist/generated/themes/SuggestionItemCustom.css.d.ts +1 -1
  437. package/dist/generated/themes/SuggestionItemCustom.css.js +1 -1
  438. package/dist/generated/themes/SuggestionItemCustom.css.js.map +1 -1
  439. package/dist/generated/themes/Suggestions.css.d.ts +1 -1
  440. package/dist/generated/themes/Suggestions.css.js +1 -1
  441. package/dist/generated/themes/Suggestions.css.js.map +1 -1
  442. package/dist/generated/themes/Switch.css.d.ts +1 -1
  443. package/dist/generated/themes/Switch.css.js +1 -1
  444. package/dist/generated/themes/Switch.css.js.map +1 -1
  445. package/dist/generated/themes/TabContainer.css.d.ts +1 -1
  446. package/dist/generated/themes/TabContainer.css.js +1 -1
  447. package/dist/generated/themes/TabContainer.css.js.map +1 -1
  448. package/dist/generated/themes/TabInOverflow.css.d.ts +1 -1
  449. package/dist/generated/themes/TabInOverflow.css.js +1 -1
  450. package/dist/generated/themes/TabInOverflow.css.js.map +1 -1
  451. package/dist/generated/themes/TabInStrip.css.d.ts +1 -1
  452. package/dist/generated/themes/TabInStrip.css.js +1 -1
  453. package/dist/generated/themes/TabInStrip.css.js.map +1 -1
  454. package/dist/generated/themes/TabSemanticIcon.css.d.ts +1 -1
  455. package/dist/generated/themes/TabSemanticIcon.css.js +1 -1
  456. package/dist/generated/themes/TabSemanticIcon.css.js.map +1 -1
  457. package/dist/generated/themes/TabSeparatorInOverflow.css.d.ts +1 -1
  458. package/dist/generated/themes/TabSeparatorInOverflow.css.js +1 -1
  459. package/dist/generated/themes/TabSeparatorInOverflow.css.js.map +1 -1
  460. package/dist/generated/themes/TabSeparatorInStrip.css.d.ts +1 -1
  461. package/dist/generated/themes/TabSeparatorInStrip.css.js +1 -1
  462. package/dist/generated/themes/TabSeparatorInStrip.css.js.map +1 -1
  463. package/dist/generated/themes/Table.css.d.ts +1 -1
  464. package/dist/generated/themes/Table.css.js +1 -1
  465. package/dist/generated/themes/Table.css.js.map +1 -1
  466. package/dist/generated/themes/TableCell.css.d.ts +1 -1
  467. package/dist/generated/themes/TableCell.css.js +1 -1
  468. package/dist/generated/themes/TableCell.css.js.map +1 -1
  469. package/dist/generated/themes/TableCellBase.css.d.ts +1 -1
  470. package/dist/generated/themes/TableCellBase.css.js +1 -1
  471. package/dist/generated/themes/TableCellBase.css.js.map +1 -1
  472. package/dist/generated/themes/TableGrowing.css.d.ts +1 -1
  473. package/dist/generated/themes/TableGrowing.css.js +1 -1
  474. package/dist/generated/themes/TableGrowing.css.js.map +1 -1
  475. package/dist/generated/themes/TableHeaderCell.css.d.ts +1 -1
  476. package/dist/generated/themes/TableHeaderCell.css.js +1 -1
  477. package/dist/generated/themes/TableHeaderCell.css.js.map +1 -1
  478. package/dist/generated/themes/TableHeaderRow.css.d.ts +1 -1
  479. package/dist/generated/themes/TableHeaderRow.css.js +1 -1
  480. package/dist/generated/themes/TableHeaderRow.css.js.map +1 -1
  481. package/dist/generated/themes/TableRow.css.d.ts +1 -1
  482. package/dist/generated/themes/TableRow.css.js +1 -1
  483. package/dist/generated/themes/TableRow.css.js.map +1 -1
  484. package/dist/generated/themes/TableRowActionBase.css.d.ts +1 -1
  485. package/dist/generated/themes/TableRowActionBase.css.js +1 -1
  486. package/dist/generated/themes/TableRowActionBase.css.js.map +1 -1
  487. package/dist/generated/themes/TableRowBase.css.d.ts +1 -1
  488. package/dist/generated/themes/TableRowBase.css.js +1 -1
  489. package/dist/generated/themes/TableRowBase.css.js.map +1 -1
  490. package/dist/generated/themes/Tag.css.d.ts +1 -1
  491. package/dist/generated/themes/Tag.css.js +1 -1
  492. package/dist/generated/themes/Tag.css.js.map +1 -1
  493. package/dist/generated/themes/Text.css.d.ts +1 -1
  494. package/dist/generated/themes/Text.css.js +1 -1
  495. package/dist/generated/themes/Text.css.js.map +1 -1
  496. package/dist/generated/themes/TextArea.css.d.ts +1 -1
  497. package/dist/generated/themes/TextArea.css.js +1 -1
  498. package/dist/generated/themes/TextArea.css.js.map +1 -1
  499. package/dist/generated/themes/TimePicker.css.d.ts +1 -1
  500. package/dist/generated/themes/TimePicker.css.js +1 -1
  501. package/dist/generated/themes/TimePicker.css.js.map +1 -1
  502. package/dist/generated/themes/TimePickerClock.css.d.ts +1 -1
  503. package/dist/generated/themes/TimePickerClock.css.js +1 -1
  504. package/dist/generated/themes/TimePickerClock.css.js.map +1 -1
  505. package/dist/generated/themes/TimeSelectionClocks.css.d.ts +1 -1
  506. package/dist/generated/themes/TimeSelectionClocks.css.js +1 -1
  507. package/dist/generated/themes/TimeSelectionClocks.css.js.map +1 -1
  508. package/dist/generated/themes/TimeSelectionInputs.css.d.ts +1 -1
  509. package/dist/generated/themes/TimeSelectionInputs.css.js +1 -1
  510. package/dist/generated/themes/TimeSelectionInputs.css.js.map +1 -1
  511. package/dist/generated/themes/Title.css.d.ts +1 -1
  512. package/dist/generated/themes/Title.css.js +1 -1
  513. package/dist/generated/themes/Title.css.js.map +1 -1
  514. package/dist/generated/themes/Toast.css.d.ts +1 -1
  515. package/dist/generated/themes/Toast.css.js +1 -1
  516. package/dist/generated/themes/Toast.css.js.map +1 -1
  517. package/dist/generated/themes/ToggleButton.css.d.ts +1 -1
  518. package/dist/generated/themes/ToggleButton.css.js +1 -1
  519. package/dist/generated/themes/ToggleButton.css.js.map +1 -1
  520. package/dist/generated/themes/Token.css.d.ts +1 -1
  521. package/dist/generated/themes/Token.css.js +1 -1
  522. package/dist/generated/themes/Token.css.js.map +1 -1
  523. package/dist/generated/themes/Tokenizer.css.d.ts +1 -1
  524. package/dist/generated/themes/Tokenizer.css.js +1 -1
  525. package/dist/generated/themes/Tokenizer.css.js.map +1 -1
  526. package/dist/generated/themes/TokenizerPopover.css.d.ts +1 -1
  527. package/dist/generated/themes/TokenizerPopover.css.js +1 -1
  528. package/dist/generated/themes/TokenizerPopover.css.js.map +1 -1
  529. package/dist/generated/themes/Toolbar.css.d.ts +1 -1
  530. package/dist/generated/themes/Toolbar.css.js +1 -1
  531. package/dist/generated/themes/Toolbar.css.js.map +1 -1
  532. package/dist/generated/themes/ToolbarButton.css.d.ts +1 -1
  533. package/dist/generated/themes/ToolbarButton.css.js +1 -1
  534. package/dist/generated/themes/ToolbarButton.css.js.map +1 -1
  535. package/dist/generated/themes/ToolbarPopover.css.d.ts +1 -1
  536. package/dist/generated/themes/ToolbarPopover.css.js +1 -1
  537. package/dist/generated/themes/ToolbarPopover.css.js.map +1 -1
  538. package/dist/generated/themes/ToolbarSeparator.css.d.ts +1 -1
  539. package/dist/generated/themes/ToolbarSeparator.css.js +1 -1
  540. package/dist/generated/themes/ToolbarSeparator.css.js.map +1 -1
  541. package/dist/generated/themes/TreeItem.css.d.ts +1 -1
  542. package/dist/generated/themes/TreeItem.css.js +1 -1
  543. package/dist/generated/themes/TreeItem.css.js.map +1 -1
  544. package/dist/generated/themes/ValueStateMessage.css.d.ts +1 -1
  545. package/dist/generated/themes/ValueStateMessage.css.js +1 -1
  546. package/dist/generated/themes/ValueStateMessage.css.js.map +1 -1
  547. package/dist/generated/themes/ValueStateVariables.css.d.ts +1 -1
  548. package/dist/generated/themes/ValueStateVariables.css.js +1 -1
  549. package/dist/generated/themes/ValueStateVariables.css.js.map +1 -1
  550. package/dist/generated/themes/YearPicker.css.d.ts +1 -1
  551. package/dist/generated/themes/YearPicker.css.js +1 -1
  552. package/dist/generated/themes/YearPicker.css.js.map +1 -1
  553. package/dist/generated/themes/YearRangePicker.css.d.ts +1 -1
  554. package/dist/generated/themes/YearRangePicker.css.js +1 -1
  555. package/dist/generated/themes/YearRangePicker.css.js.map +1 -1
  556. package/dist/generated/themes/sap_fiori_3/parameters-bundle.css.d.ts +1 -1
  557. package/dist/generated/themes/sap_fiori_3/parameters-bundle.css.js +1 -1
  558. package/dist/generated/themes/sap_fiori_3/parameters-bundle.css.js.map +1 -1
  559. package/dist/generated/themes/sap_fiori_3_dark/parameters-bundle.css.d.ts +1 -1
  560. package/dist/generated/themes/sap_fiori_3_dark/parameters-bundle.css.js +1 -1
  561. package/dist/generated/themes/sap_fiori_3_dark/parameters-bundle.css.js.map +1 -1
  562. package/dist/generated/themes/sap_fiori_3_hcb/parameters-bundle.css.d.ts +1 -1
  563. package/dist/generated/themes/sap_fiori_3_hcb/parameters-bundle.css.js +1 -1
  564. package/dist/generated/themes/sap_fiori_3_hcb/parameters-bundle.css.js.map +1 -1
  565. package/dist/generated/themes/sap_fiori_3_hcw/parameters-bundle.css.d.ts +1 -1
  566. package/dist/generated/themes/sap_fiori_3_hcw/parameters-bundle.css.js +1 -1
  567. package/dist/generated/themes/sap_fiori_3_hcw/parameters-bundle.css.js.map +1 -1
  568. package/dist/generated/themes/sap_horizon/parameters-bundle.css.d.ts +1 -1
  569. package/dist/generated/themes/sap_horizon/parameters-bundle.css.js +1 -1
  570. package/dist/generated/themes/sap_horizon/parameters-bundle.css.js.map +1 -1
  571. package/dist/generated/themes/sap_horizon_dark/parameters-bundle.css.d.ts +1 -1
  572. package/dist/generated/themes/sap_horizon_dark/parameters-bundle.css.js +1 -1
  573. package/dist/generated/themes/sap_horizon_dark/parameters-bundle.css.js.map +1 -1
  574. package/dist/generated/themes/sap_horizon_hcb/parameters-bundle.css.d.ts +1 -1
  575. package/dist/generated/themes/sap_horizon_hcb/parameters-bundle.css.js +1 -1
  576. package/dist/generated/themes/sap_horizon_hcb/parameters-bundle.css.js.map +1 -1
  577. package/dist/generated/themes/sap_horizon_hcw/parameters-bundle.css.d.ts +1 -1
  578. package/dist/generated/themes/sap_horizon_hcw/parameters-bundle.css.js +1 -1
  579. package/dist/generated/themes/sap_horizon_hcw/parameters-bundle.css.js.map +1 -1
  580. package/dist/vscode.html-custom-data.json +19 -4
  581. package/dist/web-types.json +51 -5
  582. package/package.json +9 -9
  583. package/src/BarTemplate.tsx +1 -1
  584. package/src/ColorPickerTemplate.tsx +10 -2
  585. package/src/ComboBoxPopoverTemplate.tsx +2 -1
  586. package/src/DatePickerInputTemplate.tsx +1 -0
  587. package/src/InputPopoverTemplate.tsx +2 -1
  588. package/src/MenuItemTemplate.tsx +2 -1
  589. package/src/MultiComboBoxPopoverTemplate.tsx +2 -1
  590. package/src/TextAreaPopoverTemplate.tsx +2 -1
  591. package/src/TimePickerTemplate.tsx +1 -0
  592. package/src/ToolbarButtonTemplate.tsx +1 -1
  593. package/src/i18n/messagebundle.properties +11 -2
  594. package/src/i18n/messagebundle_en_US_sappsd.properties +2 -0
  595. package/src/i18n/messagebundle_en_US_saprigi.properties +2 -0
  596. package/src/i18n/messagebundle_en_US_saptrc.properties +2 -0
  597. package/src/themes/MenuItem.css +0 -5
  598. package/src/themes/Popover.css +4 -4
  599. package/src/themes/SliderBase.css +1 -1
  600. package/src/themes/base/Input-parameters.css +1 -1
  601. package/src/themes/base/SliderBase-parameters.css +4 -3
  602. package/src/themes/base/rtl-parameters.css +0 -2
  603. package/src/themes/sap_horizon_hcb/SliderBase-parameters.css +1 -2
  604. package/src/themes/sap_horizon_hcw/SliderBase-parameters.css +1 -2
@@ -1 +1 @@
1
- {"version":3,"file":"MultiComboBox.js","sourceRoot":"","sources":["../src/MultiComboBox.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 slot from \"@ui5/webcomponents-base/dist/decorators/slot.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event-strict.js\";\nimport type { ClassMap, Timeout } from \"@ui5/webcomponents-base/dist/types.js\";\nimport jsxRender from \"@ui5/webcomponents-base/dist/renderer/JsxRenderer.js\";\nimport ResizeHandler from \"@ui5/webcomponents-base/dist/delegate/ResizeHandler.js\";\nimport type { ResizeObserverCallback } from \"@ui5/webcomponents-base/dist/delegate/ResizeHandler.js\";\nimport ValueState from \"@ui5/webcomponents-base/dist/types/ValueState.js\";\nimport type { UI5CustomEvent } from \"@ui5/webcomponents-base\";\nimport {\n\tisShow,\n\tisDown,\n\tisUp,\n\tisSpace,\n\tisSpaceCtrl,\n\tisSpaceShift,\n\tisRight,\n\tisLeft,\n\tisHome,\n\tisEnd,\n\tisTabNext,\n\tisTabPrevious,\n\tisUpShift,\n\tisDownShift,\n\tisLeftCtrl,\n\tisRightCtrl,\n\tisUpCtrl,\n\tisDownCtrl,\n\tisHomeCtrl,\n\tisEndCtrl,\n\tisCtrlA,\n\tisInsertShift,\n\tisBackSpace,\n\tisDelete,\n\tisEscape,\n\tisEnter,\n\tisCtrlAltF8,\n} from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport \"@ui5/webcomponents-icons/dist/slim-arrow-down.js\";\nimport { renderFinished } from \"@ui5/webcomponents-base/dist/Render.js\";\nimport {\n\tisPhone,\n\tisAndroid,\n\tisFirefox,\n\tisMac,\n} from \"@ui5/webcomponents-base/dist/Device.js\";\nimport { attachListeners } from \"@ui5/webcomponents-base/dist/util/valueStateNavigation.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport i18n from \"@ui5/webcomponents-base/dist/decorators/i18n.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 { getAssociatedLabelForTexts, getEffectiveAriaLabelText } from \"@ui5/webcomponents-base/dist/util/AccessibilityTextsHelper.js\";\nimport arraysAreEqual from \"@ui5/webcomponents-base/dist/util/arraysAreEqual.js\";\nimport { getScopedVarName } from \"@ui5/webcomponents-base/dist/CustomElementsScope.js\";\nimport { submitForm } from \"@ui5/webcomponents-base/dist/features/InputElementsFormSupport.js\";\nimport type { IFormInputElement } from \"@ui5/webcomponents-base/dist/features/InputElementsFormSupport.js\";\nimport MultiComboBoxItem, { isInstanceOfMultiComboBoxItem } from \"./MultiComboBoxItem.js\";\nimport MultiComboBoxItemGroup, { isInstanceOfMultiComboBoxItemGroup } from \"./MultiComboBoxItemGroup.js\";\nimport ListItemGroup from \"./ListItemGroup.js\";\nimport Tokenizer, { getTokensCountText } from \"./Tokenizer.js\";\nimport type { TokenizerTokenDeleteEventDetail } from \"./Tokenizer.js\";\nimport Token from \"./Token.js\";\nimport Icon from \"./Icon.js\";\nimport type { IIcon } from \"./Icon.js\";\nimport Popover from \"./Popover.js\";\nimport ResponsivePopover from \"./ResponsivePopover.js\";\nimport List from \"./List.js\";\nimport type { ListSelectionChangeEventDetail } from \"./List.js\";\nimport ListItemStandard from \"./ListItemStandard.js\";\nimport ToggleButton from \"./ToggleButton.js\";\nimport * as Filters from \"./Filters.js\";\nimport Button from \"./Button.js\";\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\tSELECT_OPTIONS,\n\tSHOW_SELECTED_BUTTON,\n\tMULTICOMBOBOX_DIALOG_OK_BUTTON,\n\tMULTICOMBOBOX_DIALOG_CANCEL_BUTTON,\n\tCOMBOBOX_AVAILABLE_OPTIONS,\n\tVALUE_STATE_ERROR_ALREADY_SELECTED,\n\tMCB_SELECTED_ITEMS,\n\tINPUT_CLEAR_ICON_ACC_NAME,\n\tFORM_MIXED_TEXTFIELD_REQUIRED,\n} from \"./generated/i18n/i18n-defaults.js\";\n\n// Templates\nimport MultiComboBoxTemplate from \"./MultiComboBoxTemplate.js\";\n\n// Styles\nimport multiCbxStyles from \"./generated/themes/MultiComboBox.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\";\nimport MultiComboBoxPopover from \"./generated/themes/MultiComboBoxPopover.css.js\";\nimport type ComboBoxFilter from \"./types/ComboBoxFilter.js\";\nimport CheckBox from \"./CheckBox.js\";\nimport Input from \"./Input.js\";\nimport type { InputEventDetail } from \"./Input.js\";\nimport type PopoverHorizontalAlign from \"./types/PopoverHorizontalAlign.js\";\nimport SuggestionItem from \"./SuggestionItem.js\";\nimport type InputComposition from \"./features/InputComposition.js\";\n\n/**\n * Interface for components that may be slotted inside a `ui5-multi-combobox` as items\n * @public\n */\ninterface IMultiComboBoxItem extends UI5Element {\n\ttext?: string,\n\tadditionalText?: string,\n\theaderText?: string,\n\tselected: boolean,\n\tisGroupItem?: boolean,\n\t_isVisible?: boolean,\n\titems?: Array<IMultiComboBoxItem>,\n}\n\ntype ValueStateAnnouncement = Record<Exclude<ValueState, ValueState.None>, string>;\ntype ValueStateTypeAnnouncement = Record<Exclude<ValueState, ValueState.None>, string>;\n\ntype MultiComboBoxSelectionChangeEventDetail = {\n\titems: Array<MultiComboBoxItem>,\n};\n\ntype MultiComboboxItemWithSelection = {\n\tref: IMultiComboBoxItem,\n\tselected: boolean,\n};\n\n/**\n * @class\n *\n * ### Overview\n *\n * The `ui5-multi-combobox` component consists of a list box with items and a text field allowing the user to either type a value directly into the text field, or choose from the list of existing items.\n *\n * The drop-down list is used for selecting and filtering values, it enables users to select one or more options from a predefined list. The control provides an editable input field to filter the list, and a dropdown arrow to expand/collapse the list of available options.\n * The options in the list have checkboxes that permit multi-selection. Entered values are displayed as tokens.\n * ### Structure\n * The `ui5-multi-combobox` consists of the following elements:\n *\n * - Tokenizer - a list of tokens with selected options.\n * - Input field - displays the selected option/s as token/s. Users can type to filter the list.\n * - Drop-down arrow - expands\\collapses the option list.\n * - Option list - the list of available options.\n *\n * ### Keyboard Handling\n *\n * The `ui5-multi-combobox` provides advanced keyboard handling.\n *\n * #### Picker\n * If the `ui5-multi-combobox` is focused,\n * you can open or close the drop-down by pressing [F4], [Alt] + [Up] or [Alt] + [Down] keys.\n * Once the drop-down is opened, you can use the `UP` and `DOWN` arrow keys\n * to navigate through the available options and select one by pressing the `Space` or `Enter` keys.\n * [Ctrl]+[Alt]+[F8] or [Command]+[Option]+[F8] - Focuses the first link in the value state message, if available. Pressing [Tab] moves the focus to the next link in the value state message, or closes the value state message if there are no more links.\n *\n * #### Tokens\n *\n * - Left/Right arrow keys - moves the focus selection form the currently focused token to the previous/next one (if available).\n * - Delete - deletes the token and focuses the previous token.\n * - Backspace - deletes the token and focus the next token.\n *\n * ### ES6 Module Import\n *\n * `import \"@ui5/webcomponents/dist/MultiComboBox.js\";`\n * @constructor\n * @extends UI5Element\n * @public\n * @since 0.11.0\n * @csspart token-\\{index\\} - Used to style each token(where `token-0` corresponds to the first item)\n */\n@customElement({\n\ttag: \"ui5-multi-combobox\",\n\tlanguageAware: true,\n\tformAssociated: true,\n\trenderer: jsxRender,\n\ttemplate: MultiComboBoxTemplate,\n\tstyles: [\n\t\tmultiCbxStyles,\n\t\tResponsivePopoverCommonCss,\n\t\tValueStateMessageCss,\n\t\tSuggestionsCss,\n\t\tMultiComboBoxPopover,\n\t],\n\tdependencies: [\n\t\tMultiComboBoxItem,\n\t\tMultiComboBoxItemGroup,\n\t\tTokenizer,\n\t\tToken,\n\t\tIcon,\n\t\tInput,\n\t\tResponsivePopover,\n\t\tPopover,\n\t\tList,\n\t\tListItemStandard,\n\t\tListItemGroup,\n\t\tToggleButton,\n\t\tButton,\n\t\tCheckBox,\n\t\tSuggestionItem,\n\t],\n})\n/**\n * Fired when the input operation has finished by pressing Enter or on focusout.\n * @public\n */\n@event(\"change\", {\n\tbubbles: true,\n})\n\n/**\n * Fired when the value of the component changes at each keystroke or clear icon is pressed.\n * @public\n */\n@event(\"input\", {\n\tbubbles: true,\n})\n\n/**\n * Fired when the dropdown is opened.\n * @since 2.0.0\n * @public\n */\n@event(\"open\")\n\n/**\n * Fired when the dropdown is closed.\n * @since 2.0.0\n * @public\n */\n@event(\"close\")\n\n/**\n * Fired when selection is changed by user interaction.\n * @param {IMultiComboBoxItem[]} items an array of the selected items.\n * @public\n */\n@event(\"selection-change\", {\n\tbubbles: true,\n\tcancelable: true,\n})\n\nclass MultiComboBox extends UI5Element implements IFormInputElement {\n\teventDetails!: {\n\t\tchange: void,\n\t\tinput: void,\n\t\topen: void,\n\t\tclose: void,\n\t\t\"selection-change\": MultiComboBoxSelectionChangeEventDetail,\n\t}\n\t/**\n\t * Defines the value of the component.\n\t *\n\t * **Note:** The property is updated upon typing.\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 * **Note:** When the component is used inside a form element,\n\t * the value is sent as the first element in the form data, even if it's empty.\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 autcompleted to match an item\n\t * @default false\n\t * @public\n\t * @since 1.4.0\n\t */\n\t@property({ type: Boolean })\n\tnoTypeahead = false;\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 if the user input will be prevented, if no matching item has been found\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\tnoValidation = false;\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 * @since 1.0.0-rc.5\n\t */\n\t@property({ type: Boolean })\n\trequired = 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 multi-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 * Defines the accessible ARIA name of the component.\n\t * @default undefined\n\t * @public\n\t * @since 1.4.0\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.4.0\n\t */\n\t@property()\n\taccessibleNameRef?: string;\n\n\t/**\n\t * Determines if the select all checkbox is visible on top of suggestions.\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\tshowSelectAll = false;\n\n\t@property()\n\t_effectiveValueState: `${ValueState}` = \"None\";\n\t/**\n\t * Indicates whether the value state message popover is open.\n\t * @private\n\t */\n\t@property({ type: Boolean, noAttribute: true })\n\tvalueStateOpen = false;\n\n\t/**\n\t * Indicates whether the Tokenizer n-more popover is open.\n\t * @private\n\t */\n\t@property({ type: Boolean, noAttribute: true })\n\ttokenizerOpen = 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@property()\n\t_valueBeforeOpen = this.value;\n\n\t@property({ type: Array })\n\t_filteredItems!: Array<IMultiComboBoxItem>;\n\n\t@property({ type: Array })\n\t_previouslySelectedItems!: Array<IMultiComboBoxItem>;\n\n\t@property({ type: Boolean })\n\tfilterSelected = false;\n\n\t@property({ type: Boolean })\n\tfocused = false;\n\n\t@property({ type: Boolean, noAttribute: true })\n\t_tokenizerFocused = false;\n\n\t@property({ type: Boolean, noAttribute: true })\n\t_iconPressed = false;\n\n\t@property({ type: Number, noAttribute: true })\n\t_inputWidth = 0;\n\n\t@property({ type: Number, noAttribute: true })\n\t_listWidth = 0;\n\n\t@property({ type: Boolean, noAttribute: true })\n\t_performingSelectionTwice = false;\n\n\t@property({ type: Boolean, noAttribute: true })\n\t_allSelected = false;\n\n\t@property({ type: Boolean, noAttribute: true })\n\t_effectiveShowClearIcon = false;\n\n\t@property()\n\t_dialogInputValueState: `${ValueState}` = \"None\";\n\n\t/**\n\t * Indicates whether the tokenizer has tokens\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\ttokenizerAvailable = false;\n\n\t/**\n\t * Indicates whether link navigation is being handled.\n\t * @private\n\t * @since 2.11.0\n\t * @default false\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\tinvalidateOnChildChange: true,\n\t\tindividualSlots: true,\n\t})\n\titems!: Array<IMultiComboBoxItem>;\n\n\t/**\n\t* Defines the icon to be displayed in the component.\n\t* @public\n\t* @since 1.0.0-rc.9\n\t*/\n\t@slot()\n\ticon!: Array<IIcon>;\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 component 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\tselectedValues: Array<IMultiComboBoxItem>;\n\t_inputLastValue: string;\n\t_deleting: boolean;\n\t_validationTimeout: Timeout | null;\n\t_handleResizeBound: ResizeObserverCallback;\n\tvalueBeforeAutoComplete: string;\n\tcurrentItemIdx: number;\n\t_lastValue: string;\n\t_shouldFilterItems?: boolean;\n\t_showMorePressed?: boolean;\n\t_clearingValue?: boolean;\n\tvalueStateHeader?: HTMLElement;\n\tlist?: List;\n\t_shouldAutocomplete?: boolean;\n\t_preventTokenizerToggle?: boolean;\n\t_isOpenedByKeyboard?: boolean;\n\t_itemToFocus?: IMultiComboBoxItem;\n\t_itemsBeforeOpen: Array<MultiComboboxItemWithSelection>;\n\tselectedItems: Array<IMultiComboBoxItem>;\n\t_valueStateLinks: Array<HTMLElement>;\n\t_composition?: InputComposition;\n\t_suppressNextLiveChange: boolean; // prevent unwanted live change events during IME composition\n\t@i18n(\"@ui5/webcomponents\")\n\tstatic i18nBundle: I18nBundle;\n\tstatic composition: typeof InputComposition;\n\n\tget formValidityMessage() {\n\t\treturn MultiComboBox.i18nBundle.getText(FORM_MIXED_TEXTFIELD_REQUIRED);\n\t}\n\n\tget formValidity(): ValidityStateFlags {\n\t\tconst selectedItems = (this.items || []).filter(item => item.selected);\n\n\t\treturn { valueMissing: this.required && !this.value && !selectedItems.length };\n\t}\n\n\tasync formElementAnchor() {\n\t\treturn this.getFocusDomRefAsync();\n\t}\n\n\tget formFormattedValue(): FormData | string | null {\n\t\tconst selectedItems = (this.items || []).filter(item => item.selected);\n\n\t\tif (selectedItems.length && this.name) {\n\t\t\tconst formData = new FormData();\n\n\t\t\tformData.append(this.name, this.value);\n\n\t\t\tfor (let i = 0; i < selectedItems.length; i++) {\n\t\t\t\tformData.append(this.name, selectedItems[i].text!);\n\t\t\t}\n\n\t\t\treturn formData;\n\t\t}\n\n\t\treturn this.value;\n\t}\n\n\tconstructor() {\n\t\tsuper();\n\n\t\tthis._filteredItems = [];\n\t\tthis.selectedItems = [];\n\t\tthis._previouslySelectedItems = [];\n\t\tthis.selectedValues = [];\n\t\tthis._itemsBeforeOpen = [];\n\t\tthis._inputLastValue = \"\";\n\t\tthis._deleting = false;\n\t\tthis._validationTimeout = null;\n\t\tthis._handleResizeBound = this._handleResize.bind(this);\n\t\tthis.valueBeforeAutoComplete = \"\";\n\t\tthis._lastValue = this.getAttribute(\"value\") || \"\";\n\t\tthis.currentItemIdx = -1;\n\t\tthis._valueStateLinks = [];\n\t\tthis._suppressNextLiveChange = false;\n\t}\n\n\tonEnterDOM() {\n\t\tResizeHandler.register(this, this._handleResizeBound);\n\t\tthis._enableComposition();\n\t}\n\n\tonExitDOM() {\n\t\tResizeHandler.deregister(this, this._handleResizeBound);\n\t\tthis._removeLinksEventListeners();\n\t\tthis._composition?.removeEventListeners();\n\t}\n\n\t_handleResize() {\n\t\tthis._inputWidth = this.offsetWidth;\n\t}\n\n\t_handleMobileInput(e: CustomEvent<InputEventDetail>) {\n\t\tif (!this.open || this.readonly) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst target = e.target as Input;\n\t\tconst value = target.value;\n\n\t\tif (!this.noValidation && !this._filterItems(value).length) {\n\t\t\tthis._dialogInputValueState = ValueState.Negative;\n\t\t} else {\n\t\t\tthis._dialogInputValueState = this.valueState;\n\t\t}\n\n\t\tthis.value = value;\n\t\tthis._shouldFilterItems = true;\n\t\tthis.valueBeforeAutoComplete = value;\n\n\t\tthis.fireDecoratorEvent(\"input\");\n\t}\n\n\t_inputChange() {\n\t\tif (!this._clearingValue && this._lastValue !== this.value) {\n\t\t\tthis._lastValue = this.value;\n\t\t\tthis.fireDecoratorEvent(\"change\");\n\t\t}\n\t}\n\n\t_onMobileInputKeydown(e: KeyboardEvent) {\n\t\tif (!isEnter(e)) {\n\t\t\treturn;\n\t\t}\n\t\tconst { value } = (e.target as Input);\n\t\tconst matchingItem = this._getItems().find(item => item.text === value);\n\n\t\tif (!matchingItem) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst initiallySelected = matchingItem?.selected;\n\t\tconst changePrevented = this.fireSelectionChange();\n\n\t\tif (!changePrevented) {\n\t\t\tmatchingItem.selected = !initiallySelected;\n\t\t\tthis._getResponsivePopover().preventFocusRestore = false;\n\t\t\tthis.open = false;\n\t\t\tthis.value = \"\";\n\t\t}\n\t}\n\n\t_toggleTokenizerPopover() {\n\t\tthis.tokenizerOpen = false;\n\t\tthis.open = !this.open;\n\t}\n\n\ttogglePopoverByDropdownIcon() {\n\t\tthis._shouldFilterItems = false;\n\t\tthis.open = !this.open;\n\t\tthis.tokenizerOpen = false;\n\t}\n\n\t_showFilteredItems() {\n\t\tthis.filterSelected = true;\n\t\tthis._showMorePressed = true;\n\t\tthis._tokenizer._scrollToEndOnExpand = true;\n\n\t\tthis._toggleTokenizerPopover();\n\t}\n\n\tfilterSelectedItems(e: UI5CustomEvent<ToggleButton, \"click\">) {\n\t\tthis.filterSelected = (e.target as ToggleButton).pressed;\n\t\tconst selectedItems = this._filteredItems.filter(item => item.selected);\n\n\t\tthis.selectedItems = this._getItems().filter((item, idx, allItems) => MultiComboBox._groupItemFilter(item, ++idx, allItems, selectedItems) || selectedItems.indexOf(item) !== -1);\n\t}\n\n\tget _showAllItemsButtonPressed(): boolean {\n\t\treturn this.filterSelected;\n\t}\n\n\tget _inputDom(): HTMLInputElement {\n\t\treturn this.shadowRoot!.querySelector(\"#ui5-multi-combobox-input\")!;\n\t}\n\n\t_inputLiveChange(e: InputEvent) {\n\t\t// This ensures proper input clearing after Enter-based token creation during composition\n\t\tif (this._suppressNextLiveChange) {\n\t\t\tthis._suppressNextLiveChange = false;\n\t\t\treturn;\n\t\t}\n\n\t\tconst input = e.target as HTMLInputElement;\n\t\tconst value: string = input.value;\n\t\tconst filteredItems: Array<IMultiComboBoxItem> = this._filterItems(value);\n\t\tconst oldValueState: `${ValueState}` = this.valueState;\n\n\t\tthis._shouldFilterItems = true;\n\n\t\tif (this.filterSelected) {\n\t\t\tthis.filterSelected = false;\n\t\t}\n\n\t\tif (this._validationTimeout) {\n\t\t\tif (this._filterItems(value).length) {\n\t\t\t\tthis.valueState = this._effectiveValueState;\n\t\t\t\tthis._validationTimeout = null;\n\t\t\t} else {\n\t\t\t\tinput.value = this._inputLastValue;\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\n\t\tthis._effectiveValueState = this.valueState;\n\n\t\tif (!this._isComposing && !filteredItems.length && value && !this.noValidation) {\n\t\t\tconst newValue = this.valueBeforeAutoComplete || this._inputLastValue;\n\n\t\t\tinput.value = newValue;\n\t\t\tthis.value = newValue;\n\t\t\tthis.valueState = ValueState.Negative;\n\n\t\t\tthis._shouldAutocomplete = false;\n\t\t\tthis._resetValueState(oldValueState);\n\n\t\t\treturn;\n\t\t}\n\n\t\tif (!this._isComposing) {\n\t\t\tthis._inputLastValue = input.value;\n\t\t}\n\n\t\tthis.value = input.value;\n\t\tthis._filteredItems = filteredItems;\n\n\t\tif (!isPhone()) {\n\t\t\tif (filteredItems.length === 0) {\n\t\t\t\tthis.open = false;\n\t\t\t} else {\n\t\t\t\tthis.open = true;\n\t\t\t}\n\t\t}\n\n\t\tthis.fireDecoratorEvent(\"input\");\n\t}\n\n\t_tokenDelete(e: CustomEvent<TokenizerTokenDeleteEventDetail>) {\n\t\tthis._previouslySelectedItems = this._getSelectedItems();\n\t\tconst token: Token[] = e.detail.tokens;\n\t\tconst deletingItems = this._getItems().filter(item => token.some(t => t.getAttribute(\"data-ui5-id\") === item._id));\n\n\t\tdeletingItems.forEach(item => {\n\t\t\titem.selected = false;\n\t\t});\n\n\t\tthis._deleting = true;\n\t\tthis._preventTokenizerToggle = true;\n\n\t\tthis.focus();\n\t\tconst changePrevented = this.fireSelectionChange();\n\n\t\tif (changePrevented) {\n\t\t\tthis._revertSelection();\n\t\t}\n\t}\n\n\tget _getPlaceholder(): string {\n\t\tif (this._getSelectedItems().length) {\n\t\t\treturn \"\";\n\t\t}\n\n\t\treturn this.placeholder || \"\";\n\t}\n\n\t// If the input is focused and the cursor is at the beginning/end of the input,\n\t// focus the last token if the direction is LTR/ RTL\n\tget _shouldFocusLastToken(): boolean {\n\t\tconst inputDomRef = this._inputDom;\n\t\tconst cursorPosition = inputDomRef.selectionStart || 0;\n\t\tconst isTextSelected = ((inputDomRef.selectionEnd || 0) - cursorPosition) > 0;\n\n\t\treturn cursorPosition === 0 && !isTextSelected;\n\t}\n\n\t_handleArrowKey(direction: string) {\n\t\tif (this._shouldFocusLastToken && this.effectiveDir === direction) {\n\t\t\tthis._tokenizer._focusLastToken();\n\t\t}\n\t}\n\n\t_handleArrowLeft() {\n\t\tthis._handleArrowKey(\"ltr\");\n\t}\n\n\t_handleArrowRight() {\n\t\tthis._handleArrowKey(\"rtl\");\n\t}\n\n\t_onPopoverFocusOut() {\n\t\tif (!isPhone() || !this._handleLinkNavigation) {\n\t\t\tthis._tokenizer.expanded = this.open;\n\t\t}\n\t}\n\n\t_tokenizerFocusOut(e: FocusEvent) {\n\t\tthis._tokenizerFocused = false;\n\n\t\tconst tokensCount = this._tokenizer.tokens.length;\n\t\tconst selectedTokens = this._selectedTokensCount;\n\t\tconst lastTokenBeingDeleted = tokensCount - 1 === 0 && this._deleting;\n\t\tconst allTokensAreBeingDeleted = selectedTokens === tokensCount && this._deleting;\n\t\tconst relatedTarget: HTMLElement | undefined = e.relatedTarget as HTMLElement;\n\n\t\tif (!this.shadowRoot?.contains(relatedTarget)) {\n\t\t\tthis._tokenizer.tokens.forEach(token => {\n\t\t\t\ttoken.selected = false;\n\t\t\t});\n\n\t\t\tthis._tokenizer.expanded = this._preventTokenizerToggle ? this._tokenizer.expanded : false;\n\t\t}\n\n\t\tif (allTokensAreBeingDeleted || lastTokenBeingDeleted) {\n\t\t\tsetTimeout(() => {\n\t\t\t\tif (!isPhone()) {\n\t\t\t\t\tthis._inputDom.focus();\n\t\t\t\t}\n\n\t\t\t\tthis._deleting = false;\n\t\t\t}, 0);\n\t\t}\n\t}\n\n\t_tokenizerFocusIn() {\n\t\tthis._tokenizerFocused = true;\n\t\tthis.focused = false;\n\t}\n\n\t_onkeydown(e: KeyboardEvent) {\n\t\tconst isArrowDownCtrl: boolean = isDownCtrl(e);\n\t\tconst isCtrl: boolean = e.metaKey || e.ctrlKey;\n\n\t\tif (isShow(e) && !this.disabled) {\n\t\t\tthis._handleShow(e);\n\t\t\treturn;\n\t\t}\n\n\t\tif (isDownShift(e) || isUpShift(e)) {\n\t\t\te.preventDefault();\n\t\t\treturn;\n\t\t}\n\n\t\tif (isUp(e) || isDown(e) || isUpCtrl(e) || isArrowDownCtrl) {\n\t\t\tthis._handleArrowNavigation(e, isArrowDownCtrl);\n\t\t\treturn;\n\t\t}\n\n\t\t// CTRL + Arrow Down navigation is performed by the ItemNavigation module of the List,\n\t\t// here we only implement the text selection of the selected item\n\t\tif (isArrowDownCtrl && !this.open) {\n\t\t\tsetTimeout(() => this._inputDom.setSelectionRange(0, this._inputDom.value.length), 0);\n\t\t}\n\n\t\tif (isLeftCtrl(e) || isRightCtrl(e)) {\n\t\t\tthis._handleArrowCtrl(e);\n\t\t\treturn;\n\t\t}\n\n\t\tif (isInsertShift(e)) {\n\t\t\tthis._handleInsertPaste(e);\n\t\t\treturn;\n\t\t}\n\n\t\tif (isCtrl && e.key.toLowerCase() === \"i\" && this._tokenizer.tokens.length > 0) {\n\t\t\te.preventDefault();\n\t\t\tthis._toggleTokenizerPopover();\n\t\t}\n\n\t\tif (isSpaceShift(e)) {\n\t\t\te.preventDefault();\n\t\t}\n\n\t\tif (isCtrlAltF8(e)) {\n\t\t\treturn this._handleCtrlALtF8();\n\t\t}\n\n\t\tif (\n\t\t\te.key === \"ArrowLeft\"\n\t\t\t|| e.key === \"ArrowRight\"\n\t\t\t|| e.key === \"Show\"\n\t\t\t|| e.key === \"PageUp\"\n\t\t\t|| e.key === \"PageDown\"\n\t\t\t|| e.key === \"Backspace\"\n\t\t\t|| e.key === \"Escape\"\n\t\t\t|| e.key === \"Home\"\n\t\t\t|| e.key === \"End\"\n\t\t\t|| e.key === \"Tab\"\n\t\t\t|| e.key === \"ArrowDown\"\n\t\t\t|| e.key === \"Enter\"\n\t\t) {\n\t\t\tthis[`_handle${e.key}`](e);\n\t\t}\n\n\t\tthis._shouldAutocomplete = !this.noTypeahead && !(isBackSpace(e) || isDelete(e) || isEscape(e) || isEnter(e));\n\t}\n\n\t_selectItems(matchingItems: IMultiComboBoxItem[]) {\n\t\tthis._previouslySelectedItems = this._getSelectedItems();\n\n\t\tmatchingItems.forEach(item => {\n\t\t\titem.selected = true;\n\t\t\tthis.value = \"\";\n\n\t\t\tconst changePrevented = this.fireSelectionChange();\n\n\t\t\tif (changePrevented) {\n\t\t\t\tthis._revertSelection();\n\t\t\t}\n\t\t});\n\t}\n\n\tasync _handlePaste(e: ClipboardEvent) {\n\t\tif (this.readonly) {\n\t\t\treturn;\n\t\t}\n\n\t\te.preventDefault();\n\n\t\tconst pastedText = await navigator.clipboard.readText();\n\t\tdocument.execCommand(\"insertText\", true, pastedText ?? \"\");\n\t\tconst inputEvent = new Event(\"input\", {\n\t\t\tbubbles: true,\n\t\t\tcancelable: true,\n\t\t});\n\n\t\t// Dispatch it\n\t\tthis._innerInput.dispatchEvent(inputEvent);\n\n\t\tif (!pastedText) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._handleTokenCreationUponPaste(pastedText, e);\n\t}\n\n\t_handleTokenCreationUponPaste(pastedText: string, e: KeyboardEvent | ClipboardEvent) {\n\t\tconst separatedText = pastedText.split(/\\r\\n|\\r|\\n|\\t/g).filter(t => !!t);\n\t\tconst matchingItems = this._getItems().filter(item => !item.isGroupItem && !item.selected && separatedText.includes(item.text!));\n\n\t\tif (matchingItems.length > 1) {\n\t\t\te.preventDefault();\n\t\t\tthis._selectItems(matchingItems);\n\t\t}\n\t}\n\n\tasync _handleInsertPaste(e: KeyboardEvent) {\n\t\tif (this.readonly || isFirefox()) {\n\t\t\treturn;\n\t\t}\n\t\te.preventDefault();\n\n\t\tconst pastedText = await navigator.clipboard.readText();\n\t\tdocument.execCommand(\"insertText\", true, pastedText ?? \"\");\n\t\tconst inputEvent = new Event(\"input\", {\n\t\t\tbubbles: true,\n\t\t\tcancelable: true,\n\t\t});\n\n\t\t// Dispatch it\n\t\tthis._innerInput.dispatchEvent(inputEvent);\n\n\t\tif (!pastedText) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._handleTokenCreationUponPaste(pastedText, e);\n\t}\n\n\t_handleShow(e: KeyboardEvent) {\n\t\tconst items = this._getItems();\n\t\tconst selectedItem = this._getSelectedItems()[0];\n\t\tconst focusedToken = this._tokenizer.tokens.find(token => token.focused);\n\t\tconst value = this.value;\n\t\tconst matchingItem = this._getItems().find(item => item.text?.localeCompare(value, undefined, { sensitivity: \"base\" }) === 0);\n\n\t\te.preventDefault();\n\n\t\tif (this.readonly) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._isOpenedByKeyboard = true;\n\t\tthis._shouldFilterItems = false;\n\t\tthis._filteredItems = this._getItems();\n\n\t\tthis._toggleTokenizerPopover();\n\n\t\tif (!focusedToken && matchingItem) {\n\t\t\tthis._itemToFocus = matchingItem;\n\t\t\treturn;\n\t\t}\n\n\t\tif (selectedItem && !focusedToken) {\n\t\t\tthis._itemToFocus = selectedItem;\n\t\t} else if (focusedToken && e.target === focusedToken) {\n\t\t\tthis._itemToFocus = items.find(item => item.text === focusedToken.text);\n\t\t} else {\n\t\t\tthis._itemToFocus = items.find(item => isInstanceOfMultiComboBoxItem(item));\n\t\t}\n\t}\n\n\t_handlePageUp(e: KeyboardEvent) {\n\t\te.preventDefault();\n\t}\n\n\t_handlePageDown(e: KeyboardEvent) {\n\t\te.preventDefault();\n\t}\n\n\t_handleBackspace(e: KeyboardEvent) {\n\t\tif ((e.target as HTMLInputElement).value === \"\") {\n\t\t\te.preventDefault();\n\t\t\tthis._tokenizer._focusLastToken();\n\t\t}\n\t}\n\n\t_handleEscape() {\n\t\tconst innerInput = this._innerInput;\n\t\tconst isAutoCompleted = ((innerInput.selectionEnd || 0) - (innerInput.selectionStart || 0)) > 0;\n\n\t\tif (isAutoCompleted) {\n\t\t\tthis.value = this.valueBeforeAutoComplete;\n\t\t}\n\n\t\tif (!this.noValidation || (!this.open && this.noValidation)) {\n\t\t\tthis.value = this._lastValue;\n\t\t}\n\t}\n\n\t_handleHome(e: KeyboardEvent) {\n\t\tconst shouldFocusToken = this._isFocusInside && (e.target as HTMLInputElement).selectionStart === 0 && this._tokenizer.tokens.length > 0;\n\n\t\tif (shouldFocusToken) {\n\t\t\te.preventDefault();\n\t\t\tthis._tokenizer.tokens[0].focus();\n\t\t}\n\t}\n\n\t_handleEnd(e: KeyboardEvent) {\n\t\tconst tokens = this._tokenizer.tokens;\n\t\tconst lastTokenIdx = tokens.length - 1;\n\t\tconst shouldFocusInput = e.target === tokens[lastTokenIdx] && tokens[lastTokenIdx] === this.shadowRoot!.activeElement;\n\n\t\tif (shouldFocusInput) {\n\t\t\te.preventDefault();\n\t\t\tthis._inputDom.focus();\n\t\t}\n\t}\n\n\t_handleTab() {\n\t\tthis.open = false;\n\t}\n\n\t_handleSelectAll() {\n\t\tconst filteredItems = this._getItems().filter(item => item._isVisible && !item.isGroupItem);\n\t\tconst allItemsSelected = filteredItems.every(item => item.selected);\n\t\tthis._previouslySelectedItems = filteredItems.filter(item => item.selected).map(item => item);\n\n\t\tfilteredItems.forEach(item => {\n\t\t\titem.selected = !allItemsSelected;\n\t\t});\n\n\t\tconst changePrevented = this.fireSelectionChange();\n\n\t\tif (changePrevented) {\n\t\t\tthis._revertSelection();\n\t\t}\n\t}\n\n\t_onListHeaderKeydown(e: KeyboardEvent) {\n\t\tconst isArrowDown = isDown(e);\n\t\tconst isArrowUp = isUp(e);\n\t\tconst isSelectAllFocused = (e.target as HTMLElement).classList.contains(\"ui5-mcb-select-all-checkbox\");\n\n\t\tif (isTabNext(e) || isTabPrevious(e)) {\n\t\t\tthis._onItemTab();\n\t\t\treturn;\n\t\t}\n\n\t\te.preventDefault();\n\n\t\tif (isArrowDown || isDownCtrl(e)) {\n\t\t\tif (this.showSelectAll && !isSelectAllFocused) {\n\t\t\t\treturn (this._getResponsivePopover()!.querySelector(\".ui5-mcb-select-all-checkbox\") as CheckBox).focus();\n\t\t\t}\n\n\t\t\tthis._handleArrowDown();\n\t\t}\n\n\t\tif (isArrowUp || isUpCtrl(e)) {\n\t\t\tif (e.target === this.valueStateHeader || (this.showSelectAll && isSelectAllFocused)) {\n\t\t\t\tthis._shouldAutocomplete = true;\n\t\t\t\treturn this._inputDom.focus();\n\t\t\t}\n\t\t}\n\t}\n\n\t_handleSelectAllCheckboxClick(e: CustomEvent) {\n\t\tif (!this.filterSelected) {\n\t\t\tthis._handleSelectAll();\n\t\t\tthis.filterSelected = false;\n\t\t} else {\n\t\t\tthis._previouslySelectedItems = this._getSelectedItems();\n\t\t\tthis.selectedItems?.filter(item => !item.isGroupItem).forEach(item => {\n\t\t\t\titem.selected = (e.target as CheckBox).checked;\n\t\t\t});\n\n\t\t\tif (!(e.target as CheckBox).checked) {\n\t\t\t\tthis.filterSelected = false;\n\t\t\t}\n\n\t\t\tconst changePrevented = this.fireSelectionChange();\n\n\t\t\tif (changePrevented) {\n\t\t\t\tthis._revertSelection();\n\t\t\t}\n\t\t}\n\t}\n\n\t_onItemKeydown(e: KeyboardEvent) {\n\t\tconst isFirstItemGroup = this.list?.getSlottedNodes<IMultiComboBoxItem>(\"items\")[1] === e.target && this.list?.getSlottedNodes<IMultiComboBoxItem>(\"items\")[0].hasAttribute(\"ui5-li-group\");\n\t\tconst isFirstItem = this.list?.getSlottedNodes<IMultiComboBoxItem>(\"items\")[0] === e.target || isFirstItemGroup;\n\t\tconst isArrowUp = isUp(e) || isUpCtrl(e);\n\n\t\tif (this.hasValueStateMessage && !this.valueStateHeader) {\n\t\t\tthis._setValueStateHeader();\n\t\t}\n\n\t\tif (isTabNext(e) || isTabPrevious(e)) {\n\t\t\tthis._onItemTab();\n\t\t\treturn;\n\t\t}\n\n\t\tif (isHomeCtrl(e)) {\n\t\t\tthis.list?._itemNavigation._handleHome();\n\t\t\tthis.list?.getSlottedNodes<IMultiComboBoxItem>(\"items\")[this.list?._itemNavigation._currentIndex].focus();\n\t\t}\n\n\t\tif (isEndCtrl(e)) {\n\t\t\tthis.list?._itemNavigation._handleEnd();\n\t\t\tthis.list?.getSlottedNodes<IMultiComboBoxItem>(\"items\")[this.list?._itemNavigation._currentIndex].focus();\n\t\t}\n\n\t\te.preventDefault();\n\n\t\tif (isCtrlAltF8(e)) {\n\t\t\treturn this._handleCtrlALtF8();\n\t\t}\n\n\t\tif (isDownShift(e) || isUpShift(e)) {\n\t\t\tthis._handleItemRangeSelection(e);\n\t\t\treturn;\n\t\t}\n\n\t\tif ((isUpCtrl(e)) && !isFirstItem) {\n\t\t\tthis.list?._itemNavigation._handleUp();\n\t\t\tthis.list?.getSlottedNodes<IMultiComboBoxItem>(\"items\")[this.list?._itemNavigation._currentIndex].focus();\n\t\t}\n\n\t\tif (isDownCtrl(e)) {\n\t\t\tthis.list?._itemNavigation._handleDown();\n\t\t\tthis.list?.getSlottedNodes<IMultiComboBoxItem>(\"items\")[this.list?._itemNavigation._currentIndex].focus();\n\t\t}\n\n\t\tif (isShow(e)) {\n\t\t\tthis._toggleTokenizerPopover();\n\t\t}\n\n\t\tif (isCtrlA(e)) {\n\t\t\tthis._handleSelectAll();\n\t\t\treturn;\n\t\t}\n\n\t\tif (isFirstItem && isArrowUp) {\n\t\t\tif (this.showSelectAll) {\n\t\t\t\tif (isFirstItemGroup) {\n\t\t\t\t\tthis.list?.getSlottedNodes<IMultiComboBoxItem>(\"items\")[0].focus();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\t(this._getResponsivePopover()!.querySelector(\".ui5-mcb-select-all-checkbox\") as CheckBox).focus();\n\t\t\t} else {\n\t\t\t\tthis._inputDom.focus();\n\t\t\t\tthis._shouldAutocomplete = true;\n\t\t\t}\n\t\t}\n\t}\n\n\t_handleArrowCtrl(e: KeyboardEvent) {\n\t\tconst input = this._inputDom;\n\t\tconst isArrowLeft = isLeftCtrl(e);\n\n\t\tif (isArrowLeft && input.selectionStart === 0 && input.selectionEnd === 0) {\n\t\t\te.preventDefault();\n\t\t}\n\n\t\tif (isArrowLeft && ((input.selectionEnd || 0) - (input.selectionStart || 0) > 0)) {\n\t\t\tinput.setSelectionRange(0, 0);\n\t\t}\n\t}\n\n\t_onItemTab() {\n\t\tthis._getResponsivePopover().preventFocusRestore = true;\n\t\tthis._inputDom.focus();\n\t\tthis.open = false;\n\t\tthis._tokenizer.expanded = false;\n\t}\n\n\t_handleArrowNavigation(e: KeyboardEvent, isDownControl: boolean) {\n\t\tconst isArrowDown = isDownControl || isDown(e);\n\t\tconst hasSuggestions = this._getItems().length;\n\n\t\te.preventDefault();\n\n\t\tif (this.hasValueStateMessage && !this.valueStateHeader) {\n\t\t\tthis._setValueStateHeader();\n\t\t}\n\n\t\tif (isArrowDown && this.open) {\n\t\t\tif (this.showSelectAll) {\n\t\t\t\t(this._getResponsivePopover()!.querySelector(\".ui5-mcb-select-all-checkbox\") as CheckBox).focus();\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\n\t\tif (isArrowDown && hasSuggestions) {\n\t\t\tthis._handleArrowDown();\n\t\t}\n\n\t\tif (!isArrowDown && !this.open && !this.readonly) {\n\t\t\tthis._navigateToPrevItem();\n\t\t}\n\t}\n\n\tasync _handleArrowDown() {\n\t\tconst firstListItem = this.list?.getSlottedNodes<IMultiComboBoxItem>(\"items\")[0];\n\t\tconst focusRef = firstListItem?.hasAttribute(\"ui5-mcb-item-group\") ? (firstListItem as MultiComboBoxItemGroup).getFocusDomRef() : firstListItem;\n\n\t\tif (this.open) {\n\t\t\tfirstListItem && focusRef && this.list?._itemNavigation.setCurrentItem(focusRef);\n\t\t\tthis.value = this.valueBeforeAutoComplete || this.value;\n\n\t\t\t// wait item navigation to apply correct tabindex\n\t\t\tawait renderFinished();\n\t\t\tfirstListItem?.focus();\n\t\t} else if (!this.readonly) {\n\t\t\tthis._navigateToNextItem();\n\t\t}\n\t}\n\n\t_handleCtrlALtF8() {\n\t\tconst links = this.linksInAriaValueStateHiddenText;\n\n\t\tif (links.length > 0) {\n\t\t\tlinks[0].focus();\n\t\t}\n\n\t\tthis._handleLinkNavigation = true;\n\t}\n\n\t_handleItemRangeSelection(e: KeyboardEvent) {\n\t\tconst items = this._getItems();\n\t\tconst listItems = this.list?.getSlottedNodes<IMultiComboBoxItem>(\"items\");\n\t\tconst currentItemIdx = Number(listItems?.indexOf(e.target as IMultiComboBoxItem));\n\t\tconst nextItemIdx = currentItemIdx + 1;\n\t\tconst prevItemIdx = currentItemIdx - 1;\n\t\tthis._previouslySelectedItems = this._getSelectedItems();\n\t\tif (isDownShift(e) && items[nextItemIdx]) {\n\t\t\titems[nextItemIdx].selected = items[currentItemIdx].selected;\n\t\t\titems[nextItemIdx].focus();\n\t\t}\n\n\t\tif (isUpShift(e) && items[prevItemIdx]) {\n\t\t\titems[prevItemIdx].selected = items[currentItemIdx].selected;\n\t\t\titems[prevItemIdx].focus();\n\t\t}\n\n\t\tconst changePrevented = this.fireSelectionChange();\n\n\t\tif (changePrevented) {\n\t\t\tthis._revertSelection();\n\t\t}\n\t}\n\n\t_navigateToNextItem() {\n\t\tconst items = this._getItems();\n\t\tconst itemsCount = items.length;\n\t\tconst previousItemIdx = this.currentItemIdx;\n\n\t\tif (previousItemIdx > -1 && items[previousItemIdx].text !== this.value) {\n\t\t\tthis.currentItemIdx = -1;\n\t\t}\n\n\t\tif (previousItemIdx >= itemsCount - 1) {\n\t\t\treturn;\n\t\t}\n\n\t\tlet currentItem = this._getItems()[++this.currentItemIdx];\n\n\t\twhile ((this.currentItemIdx < itemsCount - 1 && currentItem.selected) || currentItem.isGroupItem) {\n\t\t\tcurrentItem = this._getItems()[++this.currentItemIdx];\n\t\t}\n\n\t\tif (currentItem.selected === true || currentItem.isGroupItem) {\n\t\t\tthis.currentItemIdx = previousItemIdx;\n\t\t\treturn;\n\t\t}\n\n\t\tthis.value = currentItem.text!;\n\t\tthis._innerInput.value = currentItem.text!;\n\t\tthis._innerInput.setSelectionRange(0, currentItem.text!.length);\n\t}\n\n\t_navigateToPrevItem() {\n\t\tconst items = this._getItems();\n\t\tlet previousItemIdx = this.currentItemIdx;\n\n\t\tif ((!this.value && previousItemIdx !== -1) || (previousItemIdx !== -1 && this.value && this.value !== items[previousItemIdx].text)) {\n\t\t\tpreviousItemIdx = -1;\n\t\t}\n\n\t\tif (previousItemIdx === -1) {\n\t\t\tthis.currentItemIdx = items.length;\n\t\t}\n\n\t\tif (previousItemIdx === 0) {\n\t\t\tthis.currentItemIdx = 0;\n\t\t\treturn;\n\t\t}\n\n\t\tlet currentItem = this._getItems()[--this.currentItemIdx];\n\n\t\twhile ((currentItem && this.currentItemIdx > 0) && (currentItem.selected || currentItem.isGroupItem)) {\n\t\t\tcurrentItem = this._getItems()[--this.currentItemIdx];\n\t\t}\n\n\t\tif (!currentItem) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (currentItem.selected || currentItem.isGroupItem) {\n\t\t\tthis.currentItemIdx = previousItemIdx;\n\t\t\treturn;\n\t\t}\n\n\t\tthis.value = currentItem.text!;\n\t\tthis._innerInput.value = currentItem.text!;\n\t\tthis._innerInput.setSelectionRange(0, currentItem.text!.length);\n\t}\n\n\t_handleEnter() {\n\t\tconst lowerCaseValue = this.value.toLowerCase();\n\t\tconst matchingItem = this._getItems().find(item => (!item.isGroupItem && item.text!.toLowerCase() === lowerCaseValue));\n\t\tconst oldValueState = this.valueState;\n\t\tconst innerInput = this._innerInput;\n\n\t\tif (matchingItem) {\n\t\t\tif (matchingItem.selected) {\n\t\t\t\tif (this._validationTimeout) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tthis.valueState = ValueState.Negative;\n\t\t\t\tthis._performingSelectionTwice = true;\n\t\t\t\tthis._resetValueState(oldValueState, () => {\n\t\t\t\t\tthis._performingSelectionTwice = false;\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tthis._previouslySelectedItems = this._getSelectedItems();\n\t\t\t\tmatchingItem.selected = true;\n\t\t\t\tthis.value = \"\";\n\t\t\t\t// during composition prevent _inputLiveChange for proper input clearing\n\t\t\t\tif (this._isComposing) {\n\t\t\t\t\tthis._suppressNextLiveChange = true;\n\t\t\t\t}\n\n\t\t\t\tconst changePrevented = this.fireSelectionChange();\n\n\t\t\t\tif (changePrevented) {\n\t\t\t\t\tthis._revertSelection();\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tinnerInput.setSelectionRange(matchingItem.text!.length, matchingItem.text!.length);\n\t\t\tthis.open = false;\n\t\t} else if (this._internals?.form) {\n\t\t\tsubmitForm(this);\n\t\t}\n\t}\n\n\t_resetValueState(valueState: `${ValueState}`, callback?: () => void) {\n\t\tthis._validationTimeout = setTimeout(() => {\n\t\t\tthis._effectiveValueState = this.valueState;\n\t\t\tthis._dialogInputValueState = valueState;\n\t\t\tthis.valueState = valueState;\n\t\t\tthis._validationTimeout = null;\n\t\t\tthis._innerInput.focus();\n\n\t\t\tcallback && callback();\n\t\t}, 2000);\n\t}\n\n\t_onTokenizerKeydown(e: KeyboardEvent) {\n\t\tif ((isRight(e) && this.effectiveDir === \"ltr\") || (isLeft(e) && this.effectiveDir === \"rtl\")) {\n\t\t\tconst lastTokenIndex = this._tokenizer.tokens.length - this._tokenizer.overflownTokens.length - 1;\n\n\t\t\tif (e.target === this._tokenizer.tokens[lastTokenIndex]) {\n\t\t\t\tsetTimeout(() => {\n\t\t\t\t\tthis._inputDom.focus();\n\t\t\t\t}, 0);\n\t\t\t}\n\t\t}\n\n\t\tif (isInsertShift(e)) {\n\t\t\tthis._handleInsertPaste(e);\n\t\t}\n\n\t\tif (isHome(e)) {\n\t\t\tthis._handleHome(e);\n\t\t}\n\n\t\tif (isEnd(e)) {\n\t\t\tthis._handleEnd(e);\n\t\t}\n\n\t\tif (isShow(e) && !this.readonly && !this.disabled) {\n\t\t\tthis._preventTokenizerToggle = true;\n\t\t\tthis._handleShow(e);\n\t\t}\n\t}\n\n\t_filterItems(str: string) {\n\t\tconst itemsToFilter = this._getItems().filter(item => !item.isGroupItem);\n\t\tconst filteredItems = (Filters[this.filter] || Filters.StartsWithPerTerm)(str, itemsToFilter, \"text\");\n\n\t\tthis._getItems().forEach(item => {\n\t\t\tif (isInstanceOfMultiComboBoxItem(item)) {\n\t\t\t\titem._isVisible = filteredItems.includes(item);\n\t\t\t}\n\t\t});\n\n\t\treturn this.items.filter(item => {\n\t\t\tif (item.isGroupItem) {\n\t\t\t\treturn (item as MultiComboBoxItemGroup).items.some(listItem => listItem._isVisible) ? item : false;\n\t\t\t}\n\n\t\t\treturn item._isVisible;\n\t\t});\n\t}\n\n\t/**\n\t * Returns true if the group header should be shown (if there is a filtered suggestion item for this group item)\n\t * @private\n\t */\n\tstatic _groupItemFilter(item: IMultiComboBoxItem, idx: number, allItems: Array<IMultiComboBoxItem>, filteredItems: Array<IMultiComboBoxItem>) {\n\t\tif (item.isGroupItem) {\n\t\t\tlet groupHasFilteredItems;\n\n\t\t\twhile (allItems[idx] && !allItems[idx].isGroupItem && !groupHasFilteredItems) {\n\t\t\t\tgroupHasFilteredItems = filteredItems.indexOf(allItems[idx]) !== -1;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\treturn groupHasFilteredItems;\n\t\t}\n\t}\n\n\t_afterOpen() {\n\t\tconst action = this.open ? \"open\" : \"close\";\n\n\t\tif (!isPhone() && !this._isOpenedByKeyboard) {\n\t\t\tthis._innerInput.focus();\n\t\t} else if (this._isOpenedByKeyboard) {\n\t\t\tthis._itemToFocus?.focus();\n\t\t} else {\n\t\t\tthis._getResponsivePopover().focus();\n\t\t}\n\n\t\tthis.fireDecoratorEvent(action);\n\n\t\tthis._previouslySelectedItems = this._getSelectedItems();\n\t\tthis._isOpenedByKeyboard = false;\n\t}\n\n\t/**\n\t * Retrieves a flat structure of all MultiComboBox items from the slotted nodes.\n\t *\n\t * @private\n\t */\n\t_getItems(): Array<IMultiComboBoxItem> {\n\t\tconst items: IMultiComboBoxItem[] = [];\n\t\tconst slottedItems = this.getSlottedNodes<IMultiComboBoxItem>(\"items\");\n\n\t\tslottedItems.forEach(item => {\n\t\t\tif (isInstanceOfMultiComboBoxItemGroup(item)) {\n\t\t\t\tconst groupItems = [item, ...item.items].filter(Boolean);\n\t\t\t\titems.push(...groupItems);\n\t\t\t} else {\n\t\t\t\titems.push(item);\n\t\t\t}\n\t\t});\n\n\t\treturn items;\n\t}\n\n\t_getSelectedItems(): Array<MultiComboBoxItem> {\n\t\t// Angular 2 way data binding\n\t\tthis.selectedValues = this._getItems().filter(item => item.selected);\n\t\treturn this.selectedValues as Array<MultiComboBoxItem>;\n\t}\n\n\t_listSelectionChange(e: CustomEvent<ListSelectionChangeEventDetail>) {\n\t\tlet changePrevented;\n\n\t\tif (this.readonly) {\n\t\t\te.preventDefault();\n\t\t\treturn;\n\t\t}\n\n\t\tif (!isPhone()) {\n\t\t\tthis._previouslySelectedItems = e.detail.previouslySelectedItems;\n\t\t}\n\n\t\t// don't call selection change right after selection as user can cancel it on phone\n\t\tif (!isPhone()) {\n\t\t\tchangePrevented = this.fireSelectionChange();\n\n\t\t\tif (changePrevented) {\n\t\t\t\te.preventDefault();\n\t\t\t\tthis._revertSelection();\n\t\t\t}\n\t\t}\n\n\t\t// casted to KeyboardEvent since isSpace and isSpaceCtrl accepts KeyboardEvent only\n\t\tconst castedEvent = { key: e.detail.key } as KeyboardEvent;\n\n\t\tif (!e.detail.selectedItems.length && this.filterSelected) {\n\t\t\tthis.filterSelected = false;\n\t\t}\n\n\t\tif (!e.detail.selectionComponentPressed && !isSpace(castedEvent) && !isSpaceCtrl(castedEvent)) {\n\t\t\tthis.open = false;\n\t\t\tthis.value = \"\";\n\n\t\t\t// if the item (not checkbox) is clicked, call the selection change\n\t\t\tif (isPhone()) {\n\t\t\t\tchangePrevented = this.fireSelectionChange();\n\t\t\t\tif (changePrevented) {\n\t\t\t\t\te.preventDefault();\n\t\t\t\t\tthis._revertSelection();\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tthis.fireDecoratorEvent(\"input\");\n\t\t\treturn;\n\t\t}\n\n\t\tthis.value = this.valueBeforeAutoComplete || \"\";\n\t}\n\n\tfireSelectionChange() {\n\t\tconst changePrevented = !this.fireDecoratorEvent(\"selection-change\", {\n\t\t\titems: this._getSelectedItems(),\n\t\t});\n\n\t\treturn changePrevented;\n\t}\n\n\t_getList(): List {\n\t\tthis.list = this.shadowRoot!.querySelector(\".ui5-multi-combobox-all-items-list\")!;\n\t\treturn this.list;\n\t}\n\n\t_click() {\n\t\tif (isPhone() && !this.readonly && !this._showMorePressed && !this._deleting) {\n\t\t\tthis.open = true;\n\t\t}\n\n\t\tthis._showMorePressed = false;\n\t}\n\n\thandleBeforeTokenizerPopoverOpen() {\n\t\tconst tokens = this._tokenizer.tokens;\n\t\tconst hasTruncatedToken = tokens.length === 1 && tokens[0].isTruncatable;\n\t\tconst popover = this._getResponsivePopover();\n\n\t\tif (hasTruncatedToken && popover) {\n\t\t\tpopover.preventFocusRestore = true;\n\t\t\tpopover.open = false;\n\t\t}\n\t}\n\n\t_beforeClose() {\n\t\tthis.open = false;\n\t}\n\n\t_afterClose() {\n\t\tconst action = this.open ? \"open\" : \"close\";\n\n\t\t// close device's keyboard and prevent further typing\n\t\tif (isPhone()) {\n\t\t\tthis._dialogInputValueState = this.valueState;\n\t\t\tthis._tokenizer.expanded = false;\n\t\t}\n\n\t\tthis.fireDecoratorEvent(action);\n\n\t\tthis._iconPressed = false;\n\t\tthis._preventTokenizerToggle = false;\n\t\tthis.filterSelected = false;\n\t}\n\n\t_beforeOpen() {\n\t\tthis.open = true;\n\t\tthis._itemsBeforeOpen = this._getItems().map(item => {\n\t\t\treturn {\n\t\t\t\tref: item,\n\t\t\t\tselected: item.selected,\n\t\t\t};\n\t\t});\n\n\t\tthis._valueBeforeOpen = this.value;\n\t\tthis._dialogInputValueState = this.valueState;\n\n\t\t// in order to use the autocomplete feature of the input we should not set value in state\n\t\tthis._innerInput.value = this.value;\n\n\t\tif (this.filterSelected) {\n\t\t\tconst selectedItems = this._filteredItems.filter(item => item.selected);\n\t\t\tthis.selectedItems = this._getItems().filter((item, idx, allItems) => MultiComboBox._groupItemFilter(item, ++idx, allItems, selectedItems) || selectedItems.indexOf(item) !== -1);\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.open = false;\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._forwardFocusToInner();\n\t\t\t\t\t\t\tthis._handleArrowDown();\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._forwardFocusToInner();\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_handleTypeAhead(item: IMultiComboBoxItem, filterValue: string) {\n\t\tif (!item) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst value = item.text;\n\t\tconst innerInput = this._innerInput;\n\n\t\tfilterValue = filterValue || \"\";\n\t\tthis.value = value!;\n\n\t\tinnerInput.value = value!;\n\t\tinnerInput.setSelectionRange(filterValue.length, value!.length);\n\n\t\tthis._shouldAutocomplete = false;\n\t}\n\n\t_getFirstMatchingItem(current: string) {\n\t\tif (!this._getItems().length) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst matchingItems = this._startsWithMatchingItems(current).filter(item => !item.selected);\n\n\t\tif (matchingItems.length) {\n\t\t\treturn matchingItems[0];\n\t\t}\n\t}\n\n\t_startsWithMatchingItems(str: string) {\n\t\treturn Filters.StartsWith(str, this._getItems().filter(item => !item.isGroupItem), \"text\");\n\t}\n\n\t_revertSelection() {\n\t\tthis._filteredItems.forEach(item => {\n\t\t\titem.selected = this._previouslySelectedItems.includes(item);\n\t\t});\n\t}\n\n\tonBeforeRendering() {\n\t\tconst input = this._innerInput;\n\t\tconst autoCompletedChars = input && (input.selectionEnd || 0) - (input.selectionStart || 0);\n\t\tconst value = input && input.value;\n\n\t\tif (this.open) {\n\t\t\tconst list = this._getList();\n\t\t\tconst selectedListItemsCount = this.items.filter(item => item.selected).length;\n\t\t\tthis._allSelected = selectedListItemsCount > 0 && ((selectedListItemsCount === this.items.length) || (list?.getSlottedNodes(\"items\").length === selectedListItemsCount));\n\t\t}\n\n\t\tthis._effectiveShowClearIcon = (this.showClearIcon && !!this.value && !this.readonly && !this.disabled);\n\n\t\tif (input && !input.value) {\n\t\t\tthis.valueBeforeAutoComplete = \"\";\n\t\t\tthis._filteredItems = this._getItems();\n\t\t}\n\n\t\tthis.tokenizerAvailable = this._getSelectedItems().length > 0;\n\t\tthis.style.setProperty(getScopedVarName(\"--_ui5-input-icons-count\"), `${this.iconsCount}`);\n\n\t\tif (!input || !value) {\n\t\t\tthis._getItems().forEach(item => {\n\t\t\t\tif (isInstanceOfMultiComboBoxItem(item)) {\n\t\t\t\t\titem._isVisible = true;\n\t\t\t\t\titem._readonly = this.readonly;\n\t\t\t\t}\n\t\t\t});\n\t\t\treturn;\n\t\t}\n\t\t// Typehead causes issues on Android devices, so we disable it for now\n\t\t// If there is already a selection the autocomplete has already been performed\n\t\tif (this._shouldAutocomplete && !isAndroid()) {\n\t\t\tconst item = this._getFirstMatchingItem(value);\n\n\t\t\t// Prevent typeahead during composition to avoid interfering with the composition process\n\t\t\tif (!this._isComposing && item) {\n\t\t\t\t// Keep the original typed in text intact\n\t\t\t\tthis.valueBeforeAutoComplete = value;\n\t\t\t\tthis._handleTypeAhead(item, value);\n\t\t\t}\n\t\t}\n\n\t\tif (this._shouldFilterItems) {\n\t\t\tthis._filteredItems = this._filterItems(this._shouldAutocomplete || !!autoCompletedChars ? this.valueBeforeAutoComplete : value);\n\t\t} else {\n\t\t\tthis._filteredItems = this._getItems();\n\t\t}\n\t}\n\n\tonAfterRendering() {\n\t\tthis._getList();\n\t\tthis.valueStateOpen = this.shouldDisplayOnlyValueStateMessage || (this._handleLinkNavigation && !this.open);\n\t\tthis.storeResponsivePopoverWidth();\n\n\t\tthis._deleting = false;\n\t\t// force resize of the tokenizer on invalidation\n\t\tthis._tokenizer._handleResize();\n\t\tthis._tokenizer.preventInitialFocus = true;\n\n\t\tif (this.open && !isPhone()) {\n\t\t\tthis._tokenizer._scrollToEndOnExpand = true;\n\t\t\tthis._tokenizer.expanded = true;\n\t\t}\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\tget _isPhone() {\n\t\treturn isPhone();\n\t}\n\n\t_onIconMousedown() {\n\t\tthis._iconPressed = true;\n\t}\n\n\t_clear() {\n\t\tthis.value = \"\";\n\t\tthis._inputDom.value = \"\";\n\t\tthis.fireDecoratorEvent(\"input\");\n\n\t\tif (!this._isPhone) {\n\t\t\tthis.focus();\n\t\t}\n\t}\n\n\t_iconMouseDown() {\n\t\tthis._clearingValue = true;\n\t}\n\n\tstoreResponsivePopoverWidth() {\n\t\tif (this.open && !this._listWidth) {\n\t\t\tthis._listWidth = this.list!.offsetWidth;\n\t\t}\n\t}\n\n\thandleCancel() {\n\t\tthis._itemsBeforeOpen.forEach(item => {\n\t\t\tif (isInstanceOfMultiComboBoxItem(item.ref)) {\n\t\t\t\titem.ref.selected = item.selected;\n\t\t\t}\n\t\t});\n\n\t\tthis._toggleTokenizerPopover();\n\n\t\tthis.value = this._valueBeforeOpen;\n\t}\n\n\thandleOK() {\n\t\tif (isPhone()) {\n\t\t\tconst changePrevented = this.fireSelectionChange();\n\n\t\t\tif (changePrevented) {\n\t\t\t\tthis._revertSelection();\n\t\t\t}\n\t\t}\n\n\t\tif (!this.noValidation) {\n\t\t\tthis.value = \"\";\n\t\t}\n\n\t\tthis._toggleTokenizerPopover();\n\t}\n\n\t_forwardFocusToInner() {\n\t\tthis._innerInput.focus();\n\t}\n\n\tget morePopoverOpener(): HTMLElement {\n\t\tconst tokens = this._tokenizer?.tokens;\n\n\t\tif (tokens?.length === 1 && tokens[0].isTruncatable) {\n\t\t\treturn tokens[0];\n\t\t}\n\n\t\treturn this;\n\t}\n\n\t_getPopover() {\n\t\treturn this.shadowRoot!.querySelector<Popover>(\"[ui5-popover]\")!;\n\t}\n\n\t_getResponsivePopover() {\n\t\treturn this.shadowRoot!.querySelector<ResponsivePopover>(\"[ui5-responsive-popover]\")!;\n\t}\n\n\t_setValueStateHeader() {\n\t\tconst responsivePopover = this._getResponsivePopover();\n\t\tthis.valueStateHeader = responsivePopover.querySelector(\"div.ui5-responsive-popover-header.ui5-valuestatemessage-root\")!;\n\t}\n\n\tget _tokenizer() {\n\t\treturn this.shadowRoot!.querySelector<Tokenizer>(\"[ui5-tokenizer]\")!;\n\t}\n\n\tinputFocusIn(e: FocusEvent) {\n\t\tif (!isPhone()) {\n\t\t\tthis.focused = true;\n\t\t\tthis._tokenizer._scrollToEndOnExpand = true;\n\t\t\tthis._tokenizer.expanded = true;\n\t\t} else {\n\t\t\tthis._innerInput.blur();\n\t\t}\n\n\t\tthis._clearingValue = false;\n\n\t\tif (!isPhone() && e.target === this._innerInput) {\n\t\t\tthis._innerInput.setSelectionRange(0, this.value.length);\n\t\t}\n\t\tthis._tokenizer.tokens.forEach(token => {\n\t\t\ttoken.selected = false;\n\t\t});\n\n\t\tthis.valueBeforeAutoComplete = \"\";\n\t}\n\n\tinputFocusOut(e: FocusEvent) {\n\t\tconst responsivePopover = this._getResponsivePopover();\n\t\tconst popover = this._getPopover();\n\t\tconst focusIsGoingInPopover = [responsivePopover, popover].some(popup => popup?.contains(e.relatedTarget as Node));\n\t\tconst focusIsGoingInValueStatePopup = this?.contains(e.relatedTarget as Node);\n\n\t\tif (focusIsGoingInValueStatePopup || this._handleLinkNavigation) {\n\t\t\tthis.focused = false;\n\t\t\te.stopImmediatePropagation();\n\t\t\treturn;\n\t\t}\n\n\t\tif ((!this.shadowRoot!.contains(e.relatedTarget as Node) || focusIsGoingInPopover) && !this._deleting && !this._clearingValue) {\n\t\t\tthis.focused = false;\n\n\t\t\tif (this._lastValue !== this.value) {\n\t\t\t\tthis._inputChange();\n\t\t\t}\n\n\t\t\tthis._tokenizer.expanded = this.open;\n\t\t\t// remove the value if user focus out the input and focus is not going in the popover\n\t\t\tif (!isPhone() && !this.noValidation && !focusIsGoingInPopover) {\n\t\t\t\tthis.value = \"\";\n\t\t\t}\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._innerInput,\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 (MultiComboBox.composition) {\n\t\t\tsetup(MultiComboBox.composition);\n\t\t} else {\n\t\t\timport(\"./features/InputComposition.js\").then(CompositionModule => {\n\t\t\t\tMultiComboBox.composition = CompositionModule.default;\n\t\t\t\tsetup(CompositionModule.default);\n\t\t\t});\n\t\t}\n\t}\n\n\tget editable() {\n\t\treturn !this.readonly;\n\t}\n\n\tget _isFocusInside() {\n\t\treturn !isPhone() && (this.focused || this._tokenizerFocused);\n\t}\n\n\tget selectedItemsListMode() {\n\t\treturn this.readonly ? \"None\" : \"Multiple\";\n\t}\n\n\tget _listItemsType() {\n\t\treturn this.readonly ? \"Inactive\" : \"Active\";\n\t}\n\n\tget hasValueState() {\n\t\tconst isValueStateSet = this.valueState !== ValueState.None;\n\n\t\tif (isPhone()) {\n\t\t\treturn isValueStateSet || (this._dialogInputValueState !== ValueState.None);\n\t\t}\n\n\t\treturn isValueStateSet;\n\t}\n\n\tget hasValueStateMessage() {\n\t\tconst valueState = isPhone() ? this._dialogInputValueState : this.valueState;\n\n\t\treturn this.hasValueState && valueState !== ValueState.Positive;\n\t}\n\n\tget ariaValueStateHiddenText() {\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\tlet valueStateInnerText = this.valueStateMessage.map(el => el.textContent).join(\" \");\n\t\t// append space before the value state message text if it is not empty\n\t\tvalueStateInnerText = valueStateInnerText.trim().length ? ` ${valueStateInnerText}` : \"\";\n\n\t\tif (this.getValueStateLinksShortcutsTextAcc) {\n\t\t\treturn `${text} ${this.getValueStateLinksShortcutsTextAcc}${valueStateInnerText}`;\n\t\t}\n\n\t\treturn `${text}${valueStateInnerText}`;\n\t}\n\n\tget valueStateDefaultText(): string {\n\t\tconst valueState = isPhone() ? this._dialogInputValueState : this.valueState;\n\n\t\tif (valueState === ValueState.None) {\n\t\t\treturn \"\";\n\t\t}\n\n\t\tif (this._performingSelectionTwice) {\n\t\t\treturn MultiComboBox.i18nBundle.getText(VALUE_STATE_ERROR_ALREADY_SELECTED);\n\t\t}\n\n\t\treturn this.valueStateTextMappings[valueState];\n\t}\n\n\tget valueStateTextId() {\n\t\treturn this.hasValueState ? `ui5-multi-combobox-valueStateDesc` : \"\";\n\t}\n\n\tget ariaLabelText() {\n\t\treturn getEffectiveAriaLabelText(this) || getAssociatedLabelForTexts(this);\n\t}\n\n\t/**\n\t * This method is relevant for sap_horizon theme only\n\t */\n\tget _valueStateMessageIcon() {\n\t\tconst valueState = (isPhone() && this.open) ? this._dialogInputValueState : this.valueState;\n\n\t\tif (valueState === ValueState.None) {\n\t\t\treturn \"\";\n\t\t}\n\n\t\treturn {\n\t\t\t[ValueState.Negative]: \"error\",\n\t\t\t[ValueState.Critical]: \"alert\",\n\t\t\t[ValueState.Positive]: \"sys-enter-2\",\n\t\t\t[ValueState.Information]: \"information\",\n\t\t}[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) {\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 getValueStateLinksShortcutsTextAcc() {\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? MultiComboBox.i18nBundle.getText(VALUE_STATE_LINK_MAC)\n\t\t\t\t: MultiComboBox.i18nBundle.getText(VALUE_STATE_LINKS_MAC);\n\t\t}\n\n\t\treturn links.length === 1\n\t\t\t? MultiComboBox.i18nBundle.getText(VALUE_STATE_LINK)\n\t\t\t: MultiComboBox.i18nBundle.getText(VALUE_STATE_LINKS);\n\t}\n\n\tget _valueStateLinksShortcutsTextAccId() {\n\t\treturn this.linksInAriaValueStateHiddenText.length > 0 ? `hiddenText-value-state-link-shortcut` : \"\";\n\t}\n\n\tget _tokensCountText() {\n\t\tif (!this._tokenizer) {\n\t\t\treturn;\n\t\t}\n\n\t\treturn getTokensCountText(this.selectedValues.length);\n\t}\n\n\tget _tokensCountTextId() {\n\t\treturn \"ui5-multi-combobox-hiddenText-nMore\";\n\t}\n\n\tget _selectedTokensCount() {\n\t\treturn this._tokenizer.tokens.filter(token => token.selected).length;\n\t}\n\n\tget ariaDescribedByText() {\n\t\treturn `${this._tokensCountTextId} ${this.valueStateTextId} ${this._valueStateLinksShortcutsTextAccId}`.trim();\n\t}\n\n\tget shouldDisplayDefaultValueStateMessage() {\n\t\treturn !this.valueStateMessage.length && this.hasValueStateMessage;\n\t}\n\n\tget shouldDisplayOnlyValueStateMessage() {\n\t\treturn this.focused && !this.readonly && this.hasValueStateMessage && !this._iconPressed && !this.open;\n\t}\n\n\tget valueStateTypeMappings(): ValueStateTypeAnnouncement {\n\t\treturn {\n\t\t\t[ValueState.Positive]: MultiComboBox.i18nBundle.getText(VALUE_STATE_TYPE_SUCCESS),\n\t\t\t[ValueState.Information]: MultiComboBox.i18nBundle.getText(VALUE_STATE_TYPE_INFORMATION),\n\t\t\t[ValueState.Negative]: MultiComboBox.i18nBundle.getText(VALUE_STATE_TYPE_ERROR),\n\t\t\t[ValueState.Critical]: MultiComboBox.i18nBundle.getText(VALUE_STATE_TYPE_WARNING),\n\t\t};\n\t}\n\n\tget valueStateTextMappings(): ValueStateAnnouncement {\n\t\treturn {\n\t\t\t[ValueState.Positive]: MultiComboBox.i18nBundle.getText(VALUE_STATE_SUCCESS),\n\t\t\t[ValueState.Negative]: MultiComboBox.i18nBundle.getText(VALUE_STATE_ERROR),\n\t\t\t[ValueState.Critical]: MultiComboBox.i18nBundle.getText(VALUE_STATE_WARNING),\n\t\t\t[ValueState.Information]: MultiComboBox.i18nBundle.getText(VALUE_STATE_INFORMATION),\n\t\t};\n\t}\n\n\tget _innerInput(): HTMLInputElement {\n\t\tif (isPhone()) {\n\t\t\tif (this._getResponsivePopover()?.open) {\n\t\t\t\treturn this._getResponsivePopover().querySelector(\"[ui5-input]\")!.shadowRoot!.querySelector(\"input\")!;\n\t\t\t}\n\t\t}\n\n\t\treturn this._inputDom;\n\t}\n\n\tget _headerTitleText() {\n\t\treturn MultiComboBox.i18nBundle.getText(INPUT_SUGGESTIONS_TITLE);\n\t}\n\n\tget _iconAccessibleNameText() {\n\t\treturn MultiComboBox.i18nBundle.getText(SELECT_OPTIONS);\n\t}\n\n\tget _showSelectedButtonAccessibleNameText() {\n\t\treturn MultiComboBox.i18nBundle.getText(SHOW_SELECTED_BUTTON);\n\t}\n\n\tget _dialogOkButton() {\n\t\treturn MultiComboBox.i18nBundle.getText(MULTICOMBOBOX_DIALOG_OK_BUTTON);\n\t}\n\n\tget _dialogCancelButton() {\n\t\treturn MultiComboBox.i18nBundle.getText(MULTICOMBOBOX_DIALOG_CANCEL_BUTTON);\n\t}\n\n\tget _tokenizerExpanded() {\n\t\tif (isPhone()) {\n\t\t\treturn false;\n\t\t}\n\n\t\tif (this._preventTokenizerToggle) {\n\t\t\treturn this._tokenizer.expanded;\n\t\t}\n\n\t\tconst isCurrentlyExpanded = this._tokenizer?.expanded;\n\t\tconst shouldBeExpanded = this.focused || this.open || isCurrentlyExpanded;\n\n\t\treturn shouldBeExpanded;\n\t}\n\n\tget _valueStatePopoverHorizontalAlign(): `${PopoverHorizontalAlign}` {\n\t\treturn this.effectiveDir !== \"rtl\" ? \"Start\" : \"End\";\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\tget clearIconAccessibleName() {\n\t\treturn MultiComboBox.i18nBundle.getText(INPUT_CLEAR_ICON_ACC_NAME);\n\t}\n\n\tget selectAllCheckboxLabel() {\n\t\tconst items = this._getItems().filter(item => !item.isGroupItem);\n\t\tconst selected = items.filter(item => item.selected);\n\n\t\treturn MultiComboBox.i18nBundle.getText(MCB_SELECTED_ITEMS, selected.length, items.length);\n\t}\n\n\tget _popupLabel() {\n\t\treturn MultiComboBox.i18nBundle.getText(COMBOBOX_AVAILABLE_OPTIONS);\n\t}\n\n\tget responsivePopoverId() {\n\t\treturn `${this._id}-popover`;\n\t}\n\n\tget classes(): ClassMap {\n\t\tconst popover = {\n\t\t\t\"ui5-multi-combobox-all-items-responsive-popover\": true,\n\t\t\t\"ui5-suggestions-popover\": true,\n\t\t\t\"ui5-popover-with-value-state-header-phone\": this._isPhone && this.hasValueStateMessage,\n\t\t\t\"ui5-popover-with-value-state-header\": !this._isPhone && this.hasValueStateMessage,\n\t\t};\n\t\tconst popoverValueState = {\n\t\t\t\"ui5-valuestatemessage-root\": true,\n\t\t\t\"ui5-valuestatemessage-header\": true,\n\t\t\t\"ui5-valuestatemessage--success\": (this.valueState === ValueState.Positive) || (isPhone() && this._dialogInputValueState === ValueState.Positive),\n\t\t\t\"ui5-valuestatemessage--error\": (this.valueState === ValueState.Negative) || (isPhone() && this._dialogInputValueState === ValueState.Negative),\n\t\t\t\"ui5-valuestatemessage--warning\": (this.valueState === ValueState.Critical) || (isPhone() && this._dialogInputValueState === ValueState.Critical),\n\t\t\t\"ui5-valuestatemessage--information\": (this.valueState === ValueState.Information) || (isPhone() && this._dialogInputValueState === ValueState.Information),\n\t\t};\n\t\treturn {\n\t\t\tpopover,\n\t\t\tpopoverValueState,\n\t\t\tresponsivePopoverHeaderValueState: {\n\t\t\t\t\"ui5-responsive-popover-header\": true,\n\t\t\t\t...popoverValueState,\n\t\t\t},\n\t\t};\n\t}\n\n\tget styles() {\n\t\tconst remSizeIxPx = parseInt(getComputedStyle(document.documentElement).fontSize);\n\t\treturn {\n\t\t\tpopoverValueStateMessage: {\n\t\t\t\t\"width\": `${this._listWidth || 0}px`,\n\t\t\t\t\"display\": this._listWidth === 0 ? \"none\" : \"inline-block\",\n\t\t\t},\n\t\t\tpopoverHeader: {\n\t\t\t\t\"max-width\": isPhone() ? \"100%\" : `22rem`,\n\t\t\t},\n\t\t\tsuggestionsPopover: {\n\t\t\t\t\"min-width\": `${this._inputWidth}px`,\n\t\t\t\t\"max-width\": (this._inputWidth / remSizeIxPx) > 40 ? `${this._inputWidth}px` : \"40rem\",\n\t\t\t},\n\t\t};\n\t}\n}\n\nMultiComboBox.define();\n\nexport default MultiComboBox;\n\nexport type {\n\tIMultiComboBoxItem,\n\tMultiComboBoxSelectionChangeEventDetail,\n};\n"]}
1
+ {"version":3,"file":"MultiComboBox.js","sourceRoot":"","sources":["../src/MultiComboBox.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 slot from \"@ui5/webcomponents-base/dist/decorators/slot.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event-strict.js\";\nimport type { ClassMap, Timeout } from \"@ui5/webcomponents-base/dist/types.js\";\nimport jsxRender from \"@ui5/webcomponents-base/dist/renderer/JsxRenderer.js\";\nimport ResizeHandler from \"@ui5/webcomponents-base/dist/delegate/ResizeHandler.js\";\nimport type { ResizeObserverCallback } from \"@ui5/webcomponents-base/dist/delegate/ResizeHandler.js\";\nimport ValueState from \"@ui5/webcomponents-base/dist/types/ValueState.js\";\nimport type { UI5CustomEvent } from \"@ui5/webcomponents-base\";\nimport {\n\tisShow,\n\tisDown,\n\tisUp,\n\tisSpace,\n\tisSpaceCtrl,\n\tisSpaceShift,\n\tisRight,\n\tisLeft,\n\tisHome,\n\tisEnd,\n\tisTabNext,\n\tisTabPrevious,\n\tisUpShift,\n\tisDownShift,\n\tisLeftCtrl,\n\tisRightCtrl,\n\tisUpCtrl,\n\tisDownCtrl,\n\tisHomeCtrl,\n\tisEndCtrl,\n\tisCtrlA,\n\tisInsertShift,\n\tisBackSpace,\n\tisDelete,\n\tisEscape,\n\tisEnter,\n\tisCtrlAltF8,\n} from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport \"@ui5/webcomponents-icons/dist/slim-arrow-down.js\";\nimport { renderFinished } from \"@ui5/webcomponents-base/dist/Render.js\";\nimport {\n\tisPhone,\n\tisAndroid,\n\tisFirefox,\n\tisMac,\n} from \"@ui5/webcomponents-base/dist/Device.js\";\nimport { attachListeners } from \"@ui5/webcomponents-base/dist/util/valueStateNavigation.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport i18n from \"@ui5/webcomponents-base/dist/decorators/i18n.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 { getAssociatedLabelForTexts, getEffectiveAriaLabelText } from \"@ui5/webcomponents-base/dist/util/AccessibilityTextsHelper.js\";\nimport arraysAreEqual from \"@ui5/webcomponents-base/dist/util/arraysAreEqual.js\";\nimport { getScopedVarName } from \"@ui5/webcomponents-base/dist/CustomElementsScope.js\";\nimport { submitForm } from \"@ui5/webcomponents-base/dist/features/InputElementsFormSupport.js\";\nimport type { IFormInputElement } from \"@ui5/webcomponents-base/dist/features/InputElementsFormSupport.js\";\nimport MultiComboBoxItem, { isInstanceOfMultiComboBoxItem } from \"./MultiComboBoxItem.js\";\nimport MultiComboBoxItemGroup, { isInstanceOfMultiComboBoxItemGroup } from \"./MultiComboBoxItemGroup.js\";\nimport ListItemGroup from \"./ListItemGroup.js\";\nimport Tokenizer, { getTokensCountText } from \"./Tokenizer.js\";\nimport type { TokenizerTokenDeleteEventDetail } from \"./Tokenizer.js\";\nimport Token from \"./Token.js\";\nimport Icon from \"./Icon.js\";\nimport type { IIcon } from \"./Icon.js\";\nimport Popover from \"./Popover.js\";\nimport ResponsivePopover from \"./ResponsivePopover.js\";\nimport List from \"./List.js\";\nimport type { ListSelectionChangeEventDetail } from \"./List.js\";\nimport ListItemStandard from \"./ListItemStandard.js\";\nimport ToggleButton from \"./ToggleButton.js\";\nimport * as Filters from \"./Filters.js\";\nimport Button from \"./Button.js\";\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\tSELECT_OPTIONS,\n\tSHOW_SELECTED_BUTTON,\n\tMULTICOMBOBOX_DIALOG_OK_BUTTON,\n\tMULTICOMBOBOX_DIALOG_CANCEL_BUTTON,\n\tCOMBOBOX_AVAILABLE_OPTIONS,\n\tVALUE_STATE_ERROR_ALREADY_SELECTED,\n\tMCB_SELECTED_ITEMS,\n\tINPUT_CLEAR_ICON_ACC_NAME,\n\tFORM_MIXED_TEXTFIELD_REQUIRED,\n} from \"./generated/i18n/i18n-defaults.js\";\n\n// Templates\nimport MultiComboBoxTemplate from \"./MultiComboBoxTemplate.js\";\n\n// Styles\nimport multiCbxStyles from \"./generated/themes/MultiComboBox.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\";\nimport MultiComboBoxPopover from \"./generated/themes/MultiComboBoxPopover.css.js\";\nimport type ComboBoxFilter from \"./types/ComboBoxFilter.js\";\nimport CheckBox from \"./CheckBox.js\";\nimport Input from \"./Input.js\";\nimport type { InputEventDetail } from \"./Input.js\";\nimport SuggestionItem from \"./SuggestionItem.js\";\nimport type InputComposition from \"./features/InputComposition.js\";\n\n/**\n * Interface for components that may be slotted inside a `ui5-multi-combobox` as items\n * @public\n */\ninterface IMultiComboBoxItem extends UI5Element {\n\ttext?: string,\n\tadditionalText?: string,\n\theaderText?: string,\n\tselected: boolean,\n\tisGroupItem?: boolean,\n\t_isVisible?: boolean,\n\titems?: Array<IMultiComboBoxItem>,\n}\n\ntype ValueStateAnnouncement = Record<Exclude<ValueState, ValueState.None>, string>;\ntype ValueStateTypeAnnouncement = Record<Exclude<ValueState, ValueState.None>, string>;\n\ntype MultiComboBoxSelectionChangeEventDetail = {\n\titems: Array<MultiComboBoxItem>,\n};\n\ntype MultiComboboxItemWithSelection = {\n\tref: IMultiComboBoxItem,\n\tselected: boolean,\n};\n\n/**\n * @class\n *\n * ### Overview\n *\n * The `ui5-multi-combobox` component consists of a list box with items and a text field allowing the user to either type a value directly into the text field, or choose from the list of existing items.\n *\n * The drop-down list is used for selecting and filtering values, it enables users to select one or more options from a predefined list. The control provides an editable input field to filter the list, and a dropdown arrow to expand/collapse the list of available options.\n * The options in the list have checkboxes that permit multi-selection. Entered values are displayed as tokens.\n * ### Structure\n * The `ui5-multi-combobox` consists of the following elements:\n *\n * - Tokenizer - a list of tokens with selected options.\n * - Input field - displays the selected option/s as token/s. Users can type to filter the list.\n * - Drop-down arrow - expands\\collapses the option list.\n * - Option list - the list of available options.\n *\n * ### Keyboard Handling\n *\n * The `ui5-multi-combobox` provides advanced keyboard handling.\n *\n * #### Picker\n * If the `ui5-multi-combobox` is focused,\n * you can open or close the drop-down by pressing [F4], [Alt] + [Up] or [Alt] + [Down] keys.\n * Once the drop-down is opened, you can use the `UP` and `DOWN` arrow keys\n * to navigate through the available options and select one by pressing the `Space` or `Enter` keys.\n * [Ctrl]+[Alt]+[F8] or [Command]+[Option]+[F8] - Focuses the first link in the value state message, if available. Pressing [Tab] moves the focus to the next link in the value state message, or closes the value state message if there are no more links.\n *\n * #### Tokens\n *\n * - Left/Right arrow keys - moves the focus selection form the currently focused token to the previous/next one (if available).\n * - Delete - deletes the token and focuses the previous token.\n * - Backspace - deletes the token and focus the next token.\n *\n * ### ES6 Module Import\n *\n * `import \"@ui5/webcomponents/dist/MultiComboBox.js\";`\n * @constructor\n * @extends UI5Element\n * @public\n * @since 0.11.0\n * @csspart token-\\{index\\} - Used to style each token(where `token-0` corresponds to the first item)\n */\n@customElement({\n\ttag: \"ui5-multi-combobox\",\n\tlanguageAware: true,\n\tformAssociated: true,\n\trenderer: jsxRender,\n\ttemplate: MultiComboBoxTemplate,\n\tstyles: [\n\t\tmultiCbxStyles,\n\t\tResponsivePopoverCommonCss,\n\t\tValueStateMessageCss,\n\t\tSuggestionsCss,\n\t\tMultiComboBoxPopover,\n\t],\n\tdependencies: [\n\t\tMultiComboBoxItem,\n\t\tMultiComboBoxItemGroup,\n\t\tTokenizer,\n\t\tToken,\n\t\tIcon,\n\t\tInput,\n\t\tResponsivePopover,\n\t\tPopover,\n\t\tList,\n\t\tListItemStandard,\n\t\tListItemGroup,\n\t\tToggleButton,\n\t\tButton,\n\t\tCheckBox,\n\t\tSuggestionItem,\n\t],\n})\n/**\n * Fired when the input operation has finished by pressing Enter or on focusout.\n * @public\n */\n@event(\"change\", {\n\tbubbles: true,\n})\n\n/**\n * Fired when the value of the component changes at each keystroke or clear icon is pressed.\n * @public\n */\n@event(\"input\", {\n\tbubbles: true,\n})\n\n/**\n * Fired when the dropdown is opened.\n * @since 2.0.0\n * @public\n */\n@event(\"open\")\n\n/**\n * Fired when the dropdown is closed.\n * @since 2.0.0\n * @public\n */\n@event(\"close\")\n\n/**\n * Fired when selection is changed by user interaction.\n * @param {IMultiComboBoxItem[]} items an array of the selected items.\n * @public\n */\n@event(\"selection-change\", {\n\tbubbles: true,\n\tcancelable: true,\n})\n\nclass MultiComboBox extends UI5Element implements IFormInputElement {\n\teventDetails!: {\n\t\tchange: void,\n\t\tinput: void,\n\t\topen: void,\n\t\tclose: void,\n\t\t\"selection-change\": MultiComboBoxSelectionChangeEventDetail,\n\t}\n\t/**\n\t * Defines the value of the component.\n\t *\n\t * **Note:** The property is updated upon typing.\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 * **Note:** When the component is used inside a form element,\n\t * the value is sent as the first element in the form data, even if it's empty.\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 autcompleted to match an item\n\t * @default false\n\t * @public\n\t * @since 1.4.0\n\t */\n\t@property({ type: Boolean })\n\tnoTypeahead = false;\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 if the user input will be prevented, if no matching item has been found\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\tnoValidation = false;\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 * @since 1.0.0-rc.5\n\t */\n\t@property({ type: Boolean })\n\trequired = 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 multi-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 * Defines the accessible ARIA name of the component.\n\t * @default undefined\n\t * @public\n\t * @since 1.4.0\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.4.0\n\t */\n\t@property()\n\taccessibleNameRef?: string;\n\n\t/**\n\t * Determines if the select all checkbox is visible on top of suggestions.\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\tshowSelectAll = false;\n\n\t@property()\n\t_effectiveValueState: `${ValueState}` = \"None\";\n\t/**\n\t * Indicates whether the value state message popover is open.\n\t * @private\n\t */\n\t@property({ type: Boolean, noAttribute: true })\n\tvalueStateOpen = false;\n\n\t/**\n\t * Indicates whether the Tokenizer n-more popover is open.\n\t * @private\n\t */\n\t@property({ type: Boolean, noAttribute: true })\n\ttokenizerOpen = 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@property()\n\t_valueBeforeOpen = this.value;\n\n\t@property({ type: Array })\n\t_filteredItems!: Array<IMultiComboBoxItem>;\n\n\t@property({ type: Array })\n\t_previouslySelectedItems!: Array<IMultiComboBoxItem>;\n\n\t@property({ type: Boolean })\n\tfilterSelected = false;\n\n\t@property({ type: Boolean })\n\tfocused = false;\n\n\t@property({ type: Boolean, noAttribute: true })\n\t_tokenizerFocused = false;\n\n\t@property({ type: Boolean, noAttribute: true })\n\t_iconPressed = false;\n\n\t@property({ type: Number, noAttribute: true })\n\t_inputWidth = 0;\n\n\t@property({ type: Number, noAttribute: true })\n\t_listWidth = 0;\n\n\t@property({ type: Boolean, noAttribute: true })\n\t_performingSelectionTwice = false;\n\n\t@property({ type: Boolean, noAttribute: true })\n\t_allSelected = false;\n\n\t@property({ type: Boolean, noAttribute: true })\n\t_effectiveShowClearIcon = false;\n\n\t@property()\n\t_dialogInputValueState: `${ValueState}` = \"None\";\n\n\t/**\n\t * Indicates whether the tokenizer has tokens\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\ttokenizerAvailable = false;\n\n\t/**\n\t * Indicates whether link navigation is being handled.\n\t * @private\n\t * @since 2.11.0\n\t * @default false\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\tinvalidateOnChildChange: true,\n\t\tindividualSlots: true,\n\t})\n\titems!: Array<IMultiComboBoxItem>;\n\n\t/**\n\t* Defines the icon to be displayed in the component.\n\t* @public\n\t* @since 1.0.0-rc.9\n\t*/\n\t@slot()\n\ticon!: Array<IIcon>;\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 component 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\tselectedValues: Array<IMultiComboBoxItem>;\n\t_inputLastValue: string;\n\t_deleting: boolean;\n\t_validationTimeout: Timeout | null;\n\t_handleResizeBound: ResizeObserverCallback;\n\tvalueBeforeAutoComplete: string;\n\tcurrentItemIdx: number;\n\t_lastValue: string;\n\t_shouldFilterItems?: boolean;\n\t_showMorePressed?: boolean;\n\t_clearingValue?: boolean;\n\tvalueStateHeader?: HTMLElement;\n\tlist?: List;\n\t_shouldAutocomplete?: boolean;\n\t_preventTokenizerToggle?: boolean;\n\t_isOpenedByKeyboard?: boolean;\n\t_itemToFocus?: IMultiComboBoxItem;\n\t_itemsBeforeOpen: Array<MultiComboboxItemWithSelection>;\n\tselectedItems: Array<IMultiComboBoxItem>;\n\t_valueStateLinks: Array<HTMLElement>;\n\t_composition?: InputComposition;\n\t_suppressNextLiveChange: boolean; // prevent unwanted live change events during IME composition\n\t@i18n(\"@ui5/webcomponents\")\n\tstatic i18nBundle: I18nBundle;\n\tstatic composition: typeof InputComposition;\n\n\tget formValidityMessage() {\n\t\treturn MultiComboBox.i18nBundle.getText(FORM_MIXED_TEXTFIELD_REQUIRED);\n\t}\n\n\tget formValidity(): ValidityStateFlags {\n\t\tconst selectedItems = (this.items || []).filter(item => item.selected);\n\n\t\treturn { valueMissing: this.required && !this.value && !selectedItems.length };\n\t}\n\n\tasync formElementAnchor() {\n\t\treturn this.getFocusDomRefAsync();\n\t}\n\n\tget formFormattedValue(): FormData | string | null {\n\t\tconst selectedItems = (this.items || []).filter(item => item.selected);\n\n\t\tif (selectedItems.length && this.name) {\n\t\t\tconst formData = new FormData();\n\n\t\t\tformData.append(this.name, this.value);\n\n\t\t\tfor (let i = 0; i < selectedItems.length; i++) {\n\t\t\t\tformData.append(this.name, selectedItems[i].text!);\n\t\t\t}\n\n\t\t\treturn formData;\n\t\t}\n\n\t\treturn this.value;\n\t}\n\n\tconstructor() {\n\t\tsuper();\n\n\t\tthis._filteredItems = [];\n\t\tthis.selectedItems = [];\n\t\tthis._previouslySelectedItems = [];\n\t\tthis.selectedValues = [];\n\t\tthis._itemsBeforeOpen = [];\n\t\tthis._inputLastValue = \"\";\n\t\tthis._deleting = false;\n\t\tthis._validationTimeout = null;\n\t\tthis._handleResizeBound = this._handleResize.bind(this);\n\t\tthis.valueBeforeAutoComplete = \"\";\n\t\tthis._lastValue = this.getAttribute(\"value\") || \"\";\n\t\tthis.currentItemIdx = -1;\n\t\tthis._valueStateLinks = [];\n\t\tthis._suppressNextLiveChange = false;\n\t}\n\n\tonEnterDOM() {\n\t\tResizeHandler.register(this, this._handleResizeBound);\n\t\tthis._enableComposition();\n\t}\n\n\tonExitDOM() {\n\t\tResizeHandler.deregister(this, this._handleResizeBound);\n\t\tthis._removeLinksEventListeners();\n\t\tthis._composition?.removeEventListeners();\n\t}\n\n\t_handleResize() {\n\t\tthis._inputWidth = this.offsetWidth;\n\t}\n\n\t_handleMobileInput(e: CustomEvent<InputEventDetail>) {\n\t\tif (!this.open || this.readonly) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst target = e.target as Input;\n\t\tconst value = target.value;\n\n\t\tif (!this.noValidation && !this._filterItems(value).length) {\n\t\t\tthis._dialogInputValueState = ValueState.Negative;\n\t\t} else {\n\t\t\tthis._dialogInputValueState = this.valueState;\n\t\t}\n\n\t\tthis.value = value;\n\t\tthis._shouldFilterItems = true;\n\t\tthis.valueBeforeAutoComplete = value;\n\n\t\tthis.fireDecoratorEvent(\"input\");\n\t}\n\n\t_inputChange() {\n\t\tif (!this._clearingValue && this._lastValue !== this.value) {\n\t\t\tthis._lastValue = this.value;\n\t\t\tthis.fireDecoratorEvent(\"change\");\n\t\t}\n\t}\n\n\t_onMobileInputKeydown(e: KeyboardEvent) {\n\t\tif (!isEnter(e)) {\n\t\t\treturn;\n\t\t}\n\t\tconst { value } = (e.target as Input);\n\t\tconst matchingItem = this._getItems().find(item => item.text === value);\n\n\t\tif (!matchingItem) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst initiallySelected = matchingItem?.selected;\n\t\tconst changePrevented = this.fireSelectionChange();\n\n\t\tif (!changePrevented) {\n\t\t\tmatchingItem.selected = !initiallySelected;\n\t\t\tthis._getResponsivePopover().preventFocusRestore = false;\n\t\t\tthis.open = false;\n\t\t\tthis.value = \"\";\n\t\t}\n\t}\n\n\t_toggleTokenizerPopover() {\n\t\tthis.tokenizerOpen = false;\n\t\tthis.open = !this.open;\n\t}\n\n\ttogglePopoverByDropdownIcon() {\n\t\tthis._shouldFilterItems = false;\n\t\tthis.open = !this.open;\n\t\tthis.tokenizerOpen = false;\n\t}\n\n\t_showFilteredItems() {\n\t\tthis.filterSelected = true;\n\t\tthis._showMorePressed = true;\n\t\tthis._tokenizer._scrollToEndOnExpand = true;\n\n\t\tthis._toggleTokenizerPopover();\n\t}\n\n\tfilterSelectedItems(e: UI5CustomEvent<ToggleButton, \"click\">) {\n\t\tthis.filterSelected = (e.target as ToggleButton).pressed;\n\t\tconst selectedItems = this._filteredItems.filter(item => item.selected);\n\n\t\tthis.selectedItems = this._getItems().filter((item, idx, allItems) => MultiComboBox._groupItemFilter(item, ++idx, allItems, selectedItems) || selectedItems.indexOf(item) !== -1);\n\t}\n\n\tget _showAllItemsButtonPressed(): boolean {\n\t\treturn this.filterSelected;\n\t}\n\n\tget _inputDom(): HTMLInputElement {\n\t\treturn this.shadowRoot!.querySelector(\"#ui5-multi-combobox-input\")!;\n\t}\n\n\t_inputLiveChange(e: InputEvent) {\n\t\t// This ensures proper input clearing after Enter-based token creation during composition\n\t\tif (this._suppressNextLiveChange) {\n\t\t\tthis._suppressNextLiveChange = false;\n\t\t\treturn;\n\t\t}\n\n\t\tconst input = e.target as HTMLInputElement;\n\t\tconst value: string = input.value;\n\t\tconst filteredItems: Array<IMultiComboBoxItem> = this._filterItems(value);\n\t\tconst oldValueState: `${ValueState}` = this.valueState;\n\n\t\tthis._shouldFilterItems = true;\n\n\t\tif (this.filterSelected) {\n\t\t\tthis.filterSelected = false;\n\t\t}\n\n\t\tif (this._validationTimeout) {\n\t\t\tif (this._filterItems(value).length) {\n\t\t\t\tthis.valueState = this._effectiveValueState;\n\t\t\t\tthis._validationTimeout = null;\n\t\t\t} else {\n\t\t\t\tinput.value = this._inputLastValue;\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\n\t\tthis._effectiveValueState = this.valueState;\n\n\t\tif (!this._isComposing && !filteredItems.length && value && !this.noValidation) {\n\t\t\tconst newValue = this.valueBeforeAutoComplete || this._inputLastValue;\n\n\t\t\tinput.value = newValue;\n\t\t\tthis.value = newValue;\n\t\t\tthis.valueState = ValueState.Negative;\n\n\t\t\tthis._shouldAutocomplete = false;\n\t\t\tthis._resetValueState(oldValueState);\n\n\t\t\treturn;\n\t\t}\n\n\t\tif (!this._isComposing) {\n\t\t\tthis._inputLastValue = input.value;\n\t\t}\n\n\t\tthis.value = input.value;\n\t\tthis._filteredItems = filteredItems;\n\n\t\tif (!isPhone()) {\n\t\t\tif (filteredItems.length === 0) {\n\t\t\t\tthis.open = false;\n\t\t\t} else {\n\t\t\t\tthis.open = true;\n\t\t\t}\n\t\t}\n\n\t\tthis.fireDecoratorEvent(\"input\");\n\t}\n\n\t_tokenDelete(e: CustomEvent<TokenizerTokenDeleteEventDetail>) {\n\t\tthis._previouslySelectedItems = this._getSelectedItems();\n\t\tconst token: Token[] = e.detail.tokens;\n\t\tconst deletingItems = this._getItems().filter(item => token.some(t => t.getAttribute(\"data-ui5-id\") === item._id));\n\n\t\tdeletingItems.forEach(item => {\n\t\t\titem.selected = false;\n\t\t});\n\n\t\tthis._deleting = true;\n\t\tthis._preventTokenizerToggle = true;\n\n\t\tthis.focus();\n\t\tconst changePrevented = this.fireSelectionChange();\n\n\t\tif (changePrevented) {\n\t\t\tthis._revertSelection();\n\t\t}\n\t}\n\n\tget _getPlaceholder(): string {\n\t\tif (this._getSelectedItems().length) {\n\t\t\treturn \"\";\n\t\t}\n\n\t\treturn this.placeholder || \"\";\n\t}\n\n\t// If the input is focused and the cursor is at the beginning/end of the input,\n\t// focus the last token if the direction is LTR/ RTL\n\tget _shouldFocusLastToken(): boolean {\n\t\tconst inputDomRef = this._inputDom;\n\t\tconst cursorPosition = inputDomRef.selectionStart || 0;\n\t\tconst isTextSelected = ((inputDomRef.selectionEnd || 0) - cursorPosition) > 0;\n\n\t\treturn cursorPosition === 0 && !isTextSelected;\n\t}\n\n\t_handleArrowKey(direction: string) {\n\t\tif (this._shouldFocusLastToken && this.effectiveDir === direction) {\n\t\t\tthis._tokenizer._focusLastToken();\n\t\t}\n\t}\n\n\t_handleArrowLeft() {\n\t\tthis._handleArrowKey(\"ltr\");\n\t}\n\n\t_handleArrowRight() {\n\t\tthis._handleArrowKey(\"rtl\");\n\t}\n\n\t_onPopoverFocusOut() {\n\t\tif (!isPhone() || !this._handleLinkNavigation) {\n\t\t\tthis._tokenizer.expanded = this.open;\n\t\t}\n\t}\n\n\t_tokenizerFocusOut(e: FocusEvent) {\n\t\tthis._tokenizerFocused = false;\n\n\t\tconst tokensCount = this._tokenizer.tokens.length;\n\t\tconst selectedTokens = this._selectedTokensCount;\n\t\tconst lastTokenBeingDeleted = tokensCount - 1 === 0 && this._deleting;\n\t\tconst allTokensAreBeingDeleted = selectedTokens === tokensCount && this._deleting;\n\t\tconst relatedTarget: HTMLElement | undefined = e.relatedTarget as HTMLElement;\n\n\t\tif (!this.shadowRoot?.contains(relatedTarget)) {\n\t\t\tthis._tokenizer.tokens.forEach(token => {\n\t\t\t\ttoken.selected = false;\n\t\t\t});\n\n\t\t\tthis._tokenizer.expanded = this._preventTokenizerToggle ? this._tokenizer.expanded : false;\n\t\t}\n\n\t\tif (allTokensAreBeingDeleted || lastTokenBeingDeleted) {\n\t\t\tsetTimeout(() => {\n\t\t\t\tif (!isPhone()) {\n\t\t\t\t\tthis._inputDom.focus();\n\t\t\t\t}\n\n\t\t\t\tthis._deleting = false;\n\t\t\t}, 0);\n\t\t}\n\t}\n\n\t_tokenizerFocusIn() {\n\t\tthis._tokenizerFocused = true;\n\t\tthis.focused = false;\n\t}\n\n\t_onkeydown(e: KeyboardEvent) {\n\t\tconst isArrowDownCtrl: boolean = isDownCtrl(e);\n\t\tconst isCtrl: boolean = e.metaKey || e.ctrlKey;\n\n\t\tif (isShow(e) && !this.disabled) {\n\t\t\tthis._handleShow(e);\n\t\t\treturn;\n\t\t}\n\n\t\tif (isDownShift(e) || isUpShift(e)) {\n\t\t\te.preventDefault();\n\t\t\treturn;\n\t\t}\n\n\t\tif (isUp(e) || isDown(e) || isUpCtrl(e) || isArrowDownCtrl) {\n\t\t\tthis._handleArrowNavigation(e, isArrowDownCtrl);\n\t\t\treturn;\n\t\t}\n\n\t\t// CTRL + Arrow Down navigation is performed by the ItemNavigation module of the List,\n\t\t// here we only implement the text selection of the selected item\n\t\tif (isArrowDownCtrl && !this.open) {\n\t\t\tsetTimeout(() => this._inputDom.setSelectionRange(0, this._inputDom.value.length), 0);\n\t\t}\n\n\t\tif (isLeftCtrl(e) || isRightCtrl(e)) {\n\t\t\tthis._handleArrowCtrl(e);\n\t\t\treturn;\n\t\t}\n\n\t\tif (isInsertShift(e)) {\n\t\t\tthis._handleInsertPaste(e);\n\t\t\treturn;\n\t\t}\n\n\t\tif (isCtrl && e.key.toLowerCase() === \"i\" && this._tokenizer.tokens.length > 0) {\n\t\t\te.preventDefault();\n\t\t\tthis._toggleTokenizerPopover();\n\t\t}\n\n\t\tif (isSpaceShift(e)) {\n\t\t\te.preventDefault();\n\t\t}\n\n\t\tif (isCtrlAltF8(e)) {\n\t\t\treturn this._handleCtrlALtF8();\n\t\t}\n\n\t\tif (\n\t\t\te.key === \"ArrowLeft\"\n\t\t\t|| e.key === \"ArrowRight\"\n\t\t\t|| e.key === \"Show\"\n\t\t\t|| e.key === \"PageUp\"\n\t\t\t|| e.key === \"PageDown\"\n\t\t\t|| e.key === \"Backspace\"\n\t\t\t|| e.key === \"Escape\"\n\t\t\t|| e.key === \"Home\"\n\t\t\t|| e.key === \"End\"\n\t\t\t|| e.key === \"Tab\"\n\t\t\t|| e.key === \"ArrowDown\"\n\t\t\t|| e.key === \"Enter\"\n\t\t) {\n\t\t\tthis[`_handle${e.key}`](e);\n\t\t}\n\n\t\tthis._shouldAutocomplete = !this.noTypeahead && !(isBackSpace(e) || isDelete(e) || isEscape(e) || isEnter(e));\n\t}\n\n\t_selectItems(matchingItems: IMultiComboBoxItem[]) {\n\t\tthis._previouslySelectedItems = this._getSelectedItems();\n\n\t\tmatchingItems.forEach(item => {\n\t\t\titem.selected = true;\n\t\t\tthis.value = \"\";\n\n\t\t\tconst changePrevented = this.fireSelectionChange();\n\n\t\t\tif (changePrevented) {\n\t\t\t\tthis._revertSelection();\n\t\t\t}\n\t\t});\n\t}\n\n\tasync _handlePaste(e: ClipboardEvent) {\n\t\tif (this.readonly) {\n\t\t\treturn;\n\t\t}\n\n\t\te.preventDefault();\n\n\t\tconst pastedText = await navigator.clipboard.readText();\n\t\tdocument.execCommand(\"insertText\", true, pastedText ?? \"\");\n\t\tconst inputEvent = new Event(\"input\", {\n\t\t\tbubbles: true,\n\t\t\tcancelable: true,\n\t\t});\n\n\t\t// Dispatch it\n\t\tthis._innerInput.dispatchEvent(inputEvent);\n\n\t\tif (!pastedText) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._handleTokenCreationUponPaste(pastedText, e);\n\t}\n\n\t_handleTokenCreationUponPaste(pastedText: string, e: KeyboardEvent | ClipboardEvent) {\n\t\tconst separatedText = pastedText.split(/\\r\\n|\\r|\\n|\\t/g).filter(t => !!t);\n\t\tconst matchingItems = this._getItems().filter(item => !item.isGroupItem && !item.selected && separatedText.includes(item.text!));\n\n\t\tif (matchingItems.length > 1) {\n\t\t\te.preventDefault();\n\t\t\tthis._selectItems(matchingItems);\n\t\t}\n\t}\n\n\tasync _handleInsertPaste(e: KeyboardEvent) {\n\t\tif (this.readonly || isFirefox()) {\n\t\t\treturn;\n\t\t}\n\t\te.preventDefault();\n\n\t\tconst pastedText = await navigator.clipboard.readText();\n\t\tdocument.execCommand(\"insertText\", true, pastedText ?? \"\");\n\t\tconst inputEvent = new Event(\"input\", {\n\t\t\tbubbles: true,\n\t\t\tcancelable: true,\n\t\t});\n\n\t\t// Dispatch it\n\t\tthis._innerInput.dispatchEvent(inputEvent);\n\n\t\tif (!pastedText) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._handleTokenCreationUponPaste(pastedText, e);\n\t}\n\n\t_handleShow(e: KeyboardEvent) {\n\t\tconst items = this._getItems();\n\t\tconst selectedItem = this._getSelectedItems()[0];\n\t\tconst focusedToken = this._tokenizer.tokens.find(token => token.focused);\n\t\tconst value = this.value;\n\t\tconst matchingItem = this._getItems().find(item => item.text?.localeCompare(value, undefined, { sensitivity: \"base\" }) === 0);\n\n\t\te.preventDefault();\n\n\t\tif (this.readonly) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._isOpenedByKeyboard = true;\n\t\tthis._shouldFilterItems = false;\n\t\tthis._filteredItems = this._getItems();\n\n\t\tthis._toggleTokenizerPopover();\n\n\t\tif (!focusedToken && matchingItem) {\n\t\t\tthis._itemToFocus = matchingItem;\n\t\t\treturn;\n\t\t}\n\n\t\tif (selectedItem && !focusedToken) {\n\t\t\tthis._itemToFocus = selectedItem;\n\t\t} else if (focusedToken && e.target === focusedToken) {\n\t\t\tthis._itemToFocus = items.find(item => item.text === focusedToken.text);\n\t\t} else {\n\t\t\tthis._itemToFocus = items.find(item => isInstanceOfMultiComboBoxItem(item));\n\t\t}\n\t}\n\n\t_handlePageUp(e: KeyboardEvent) {\n\t\te.preventDefault();\n\t}\n\n\t_handlePageDown(e: KeyboardEvent) {\n\t\te.preventDefault();\n\t}\n\n\t_handleBackspace(e: KeyboardEvent) {\n\t\tif ((e.target as HTMLInputElement).value === \"\") {\n\t\t\te.preventDefault();\n\t\t\tthis._tokenizer._focusLastToken();\n\t\t}\n\t}\n\n\t_handleEscape() {\n\t\tconst innerInput = this._innerInput;\n\t\tconst isAutoCompleted = ((innerInput.selectionEnd || 0) - (innerInput.selectionStart || 0)) > 0;\n\n\t\tif (isAutoCompleted) {\n\t\t\tthis.value = this.valueBeforeAutoComplete;\n\t\t}\n\n\t\tif (!this.noValidation || (!this.open && this.noValidation)) {\n\t\t\tthis.value = this._lastValue;\n\t\t}\n\t}\n\n\t_handleHome(e: KeyboardEvent) {\n\t\tconst shouldFocusToken = this._isFocusInside && (e.target as HTMLInputElement).selectionStart === 0 && this._tokenizer.tokens.length > 0;\n\n\t\tif (shouldFocusToken) {\n\t\t\te.preventDefault();\n\t\t\tthis._tokenizer.tokens[0].focus();\n\t\t}\n\t}\n\n\t_handleEnd(e: KeyboardEvent) {\n\t\tconst tokens = this._tokenizer.tokens;\n\t\tconst lastTokenIdx = tokens.length - 1;\n\t\tconst shouldFocusInput = e.target === tokens[lastTokenIdx] && tokens[lastTokenIdx] === this.shadowRoot!.activeElement;\n\n\t\tif (shouldFocusInput) {\n\t\t\te.preventDefault();\n\t\t\tthis._inputDom.focus();\n\t\t}\n\t}\n\n\t_handleTab() {\n\t\tthis.open = false;\n\t}\n\n\t_handleSelectAll() {\n\t\tconst filteredItems = this._getItems().filter(item => item._isVisible && !item.isGroupItem);\n\t\tconst allItemsSelected = filteredItems.every(item => item.selected);\n\t\tthis._previouslySelectedItems = filteredItems.filter(item => item.selected).map(item => item);\n\n\t\tfilteredItems.forEach(item => {\n\t\t\titem.selected = !allItemsSelected;\n\t\t});\n\n\t\tconst changePrevented = this.fireSelectionChange();\n\n\t\tif (changePrevented) {\n\t\t\tthis._revertSelection();\n\t\t}\n\t}\n\n\t_onListHeaderKeydown(e: KeyboardEvent) {\n\t\tconst isArrowDown = isDown(e);\n\t\tconst isArrowUp = isUp(e);\n\t\tconst isSelectAllFocused = (e.target as HTMLElement).classList.contains(\"ui5-mcb-select-all-checkbox\");\n\n\t\tif (isTabNext(e) || isTabPrevious(e)) {\n\t\t\tthis._onItemTab();\n\t\t\treturn;\n\t\t}\n\n\t\te.preventDefault();\n\n\t\tif (isArrowDown || isDownCtrl(e)) {\n\t\t\tif (this.showSelectAll && !isSelectAllFocused) {\n\t\t\t\treturn (this._getResponsivePopover()!.querySelector(\".ui5-mcb-select-all-checkbox\") as CheckBox).focus();\n\t\t\t}\n\n\t\t\tthis._handleArrowDown();\n\t\t}\n\n\t\tif (isArrowUp || isUpCtrl(e)) {\n\t\t\tif (e.target === this.valueStateHeader || (this.showSelectAll && isSelectAllFocused)) {\n\t\t\t\tthis._shouldAutocomplete = true;\n\t\t\t\treturn this._inputDom.focus();\n\t\t\t}\n\t\t}\n\t}\n\n\t_handleSelectAllCheckboxClick(e: CustomEvent) {\n\t\tif (!this.filterSelected) {\n\t\t\tthis._handleSelectAll();\n\t\t\tthis.filterSelected = false;\n\t\t} else {\n\t\t\tthis._previouslySelectedItems = this._getSelectedItems();\n\t\t\tthis.selectedItems?.filter(item => !item.isGroupItem).forEach(item => {\n\t\t\t\titem.selected = (e.target as CheckBox).checked;\n\t\t\t});\n\n\t\t\tif (!(e.target as CheckBox).checked) {\n\t\t\t\tthis.filterSelected = false;\n\t\t\t}\n\n\t\t\tconst changePrevented = this.fireSelectionChange();\n\n\t\t\tif (changePrevented) {\n\t\t\t\tthis._revertSelection();\n\t\t\t}\n\t\t}\n\t}\n\n\t_onItemKeydown(e: KeyboardEvent) {\n\t\tconst isFirstItemGroup = this.list?.getSlottedNodes<IMultiComboBoxItem>(\"items\")[1] === e.target && this.list?.getSlottedNodes<IMultiComboBoxItem>(\"items\")[0].hasAttribute(\"ui5-li-group\");\n\t\tconst isFirstItem = this.list?.getSlottedNodes<IMultiComboBoxItem>(\"items\")[0] === e.target || isFirstItemGroup;\n\t\tconst isArrowUp = isUp(e) || isUpCtrl(e);\n\n\t\tif (this.hasValueStateMessage && !this.valueStateHeader) {\n\t\t\tthis._setValueStateHeader();\n\t\t}\n\n\t\tif (isTabNext(e) || isTabPrevious(e)) {\n\t\t\tthis._onItemTab();\n\t\t\treturn;\n\t\t}\n\n\t\tif (isHomeCtrl(e)) {\n\t\t\tthis.list?._itemNavigation._handleHome();\n\t\t\tthis.list?.getSlottedNodes<IMultiComboBoxItem>(\"items\")[this.list?._itemNavigation._currentIndex].focus();\n\t\t}\n\n\t\tif (isEndCtrl(e)) {\n\t\t\tthis.list?._itemNavigation._handleEnd();\n\t\t\tthis.list?.getSlottedNodes<IMultiComboBoxItem>(\"items\")[this.list?._itemNavigation._currentIndex].focus();\n\t\t}\n\n\t\te.preventDefault();\n\n\t\tif (isCtrlAltF8(e)) {\n\t\t\treturn this._handleCtrlALtF8();\n\t\t}\n\n\t\tif (isDownShift(e) || isUpShift(e)) {\n\t\t\tthis._handleItemRangeSelection(e);\n\t\t\treturn;\n\t\t}\n\n\t\tif ((isUpCtrl(e)) && !isFirstItem) {\n\t\t\tthis.list?._itemNavigation._handleUp();\n\t\t\tthis.list?.getSlottedNodes<IMultiComboBoxItem>(\"items\")[this.list?._itemNavigation._currentIndex].focus();\n\t\t}\n\n\t\tif (isDownCtrl(e)) {\n\t\t\tthis.list?._itemNavigation._handleDown();\n\t\t\tthis.list?.getSlottedNodes<IMultiComboBoxItem>(\"items\")[this.list?._itemNavigation._currentIndex].focus();\n\t\t}\n\n\t\tif (isShow(e)) {\n\t\t\tthis._toggleTokenizerPopover();\n\t\t}\n\n\t\tif (isCtrlA(e)) {\n\t\t\tthis._handleSelectAll();\n\t\t\treturn;\n\t\t}\n\n\t\tif (isFirstItem && isArrowUp) {\n\t\t\tif (this.showSelectAll) {\n\t\t\t\tif (isFirstItemGroup) {\n\t\t\t\t\tthis.list?.getSlottedNodes<IMultiComboBoxItem>(\"items\")[0].focus();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\t(this._getResponsivePopover()!.querySelector(\".ui5-mcb-select-all-checkbox\") as CheckBox).focus();\n\t\t\t} else {\n\t\t\t\tthis._inputDom.focus();\n\t\t\t\tthis._shouldAutocomplete = true;\n\t\t\t}\n\t\t}\n\t}\n\n\t_handleArrowCtrl(e: KeyboardEvent) {\n\t\tconst input = this._inputDom;\n\t\tconst isArrowLeft = isLeftCtrl(e);\n\n\t\tif (isArrowLeft && input.selectionStart === 0 && input.selectionEnd === 0) {\n\t\t\te.preventDefault();\n\t\t}\n\n\t\tif (isArrowLeft && ((input.selectionEnd || 0) - (input.selectionStart || 0) > 0)) {\n\t\t\tinput.setSelectionRange(0, 0);\n\t\t}\n\t}\n\n\t_onItemTab() {\n\t\tthis._getResponsivePopover().preventFocusRestore = true;\n\t\tthis._inputDom.focus();\n\t\tthis.open = false;\n\t\tthis._tokenizer.expanded = false;\n\t}\n\n\t_handleArrowNavigation(e: KeyboardEvent, isDownControl: boolean) {\n\t\tconst isArrowDown = isDownControl || isDown(e);\n\t\tconst hasSuggestions = this._getItems().length;\n\n\t\te.preventDefault();\n\n\t\tif (this.hasValueStateMessage && !this.valueStateHeader) {\n\t\t\tthis._setValueStateHeader();\n\t\t}\n\n\t\tif (isArrowDown && this.open) {\n\t\t\tif (this.showSelectAll) {\n\t\t\t\t(this._getResponsivePopover()!.querySelector(\".ui5-mcb-select-all-checkbox\") as CheckBox).focus();\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\n\t\tif (isArrowDown && hasSuggestions) {\n\t\t\tthis._handleArrowDown();\n\t\t}\n\n\t\tif (!isArrowDown && !this.open && !this.readonly) {\n\t\t\tthis._navigateToPrevItem();\n\t\t}\n\t}\n\n\tasync _handleArrowDown() {\n\t\tconst firstListItem = this.list?.getSlottedNodes<IMultiComboBoxItem>(\"items\")[0];\n\t\tconst focusRef = firstListItem?.hasAttribute(\"ui5-mcb-item-group\") ? (firstListItem as MultiComboBoxItemGroup).getFocusDomRef() : firstListItem;\n\n\t\tif (this.open) {\n\t\t\tfirstListItem && focusRef && this.list?._itemNavigation.setCurrentItem(focusRef);\n\t\t\tthis.value = this.valueBeforeAutoComplete || this.value;\n\n\t\t\t// wait item navigation to apply correct tabindex\n\t\t\tawait renderFinished();\n\t\t\tfirstListItem?.focus();\n\t\t} else if (!this.readonly) {\n\t\t\tthis._navigateToNextItem();\n\t\t}\n\t}\n\n\t_handleCtrlALtF8() {\n\t\tconst links = this.linksInAriaValueStateHiddenText;\n\n\t\tif (links.length > 0) {\n\t\t\tlinks[0].focus();\n\t\t}\n\n\t\tthis._handleLinkNavigation = true;\n\t}\n\n\t_handleItemRangeSelection(e: KeyboardEvent) {\n\t\tconst items = this._getItems();\n\t\tconst listItems = this.list?.getSlottedNodes<IMultiComboBoxItem>(\"items\");\n\t\tconst currentItemIdx = Number(listItems?.indexOf(e.target as IMultiComboBoxItem));\n\t\tconst nextItemIdx = currentItemIdx + 1;\n\t\tconst prevItemIdx = currentItemIdx - 1;\n\t\tthis._previouslySelectedItems = this._getSelectedItems();\n\t\tif (isDownShift(e) && items[nextItemIdx]) {\n\t\t\titems[nextItemIdx].selected = items[currentItemIdx].selected;\n\t\t\titems[nextItemIdx].focus();\n\t\t}\n\n\t\tif (isUpShift(e) && items[prevItemIdx]) {\n\t\t\titems[prevItemIdx].selected = items[currentItemIdx].selected;\n\t\t\titems[prevItemIdx].focus();\n\t\t}\n\n\t\tconst changePrevented = this.fireSelectionChange();\n\n\t\tif (changePrevented) {\n\t\t\tthis._revertSelection();\n\t\t}\n\t}\n\n\t_navigateToNextItem() {\n\t\tconst items = this._getItems();\n\t\tconst itemsCount = items.length;\n\t\tconst previousItemIdx = this.currentItemIdx;\n\n\t\tif (previousItemIdx > -1 && items[previousItemIdx].text !== this.value) {\n\t\t\tthis.currentItemIdx = -1;\n\t\t}\n\n\t\tif (previousItemIdx >= itemsCount - 1) {\n\t\t\treturn;\n\t\t}\n\n\t\tlet currentItem = this._getItems()[++this.currentItemIdx];\n\n\t\twhile ((this.currentItemIdx < itemsCount - 1 && currentItem.selected) || currentItem.isGroupItem) {\n\t\t\tcurrentItem = this._getItems()[++this.currentItemIdx];\n\t\t}\n\n\t\tif (currentItem.selected === true || currentItem.isGroupItem) {\n\t\t\tthis.currentItemIdx = previousItemIdx;\n\t\t\treturn;\n\t\t}\n\n\t\tthis.value = currentItem.text!;\n\t\tthis._innerInput.value = currentItem.text!;\n\t\tthis._innerInput.setSelectionRange(0, currentItem.text!.length);\n\t}\n\n\t_navigateToPrevItem() {\n\t\tconst items = this._getItems();\n\t\tlet previousItemIdx = this.currentItemIdx;\n\n\t\tif ((!this.value && previousItemIdx !== -1) || (previousItemIdx !== -1 && this.value && this.value !== items[previousItemIdx].text)) {\n\t\t\tpreviousItemIdx = -1;\n\t\t}\n\n\t\tif (previousItemIdx === -1) {\n\t\t\tthis.currentItemIdx = items.length;\n\t\t}\n\n\t\tif (previousItemIdx === 0) {\n\t\t\tthis.currentItemIdx = 0;\n\t\t\treturn;\n\t\t}\n\n\t\tlet currentItem = this._getItems()[--this.currentItemIdx];\n\n\t\twhile ((currentItem && this.currentItemIdx > 0) && (currentItem.selected || currentItem.isGroupItem)) {\n\t\t\tcurrentItem = this._getItems()[--this.currentItemIdx];\n\t\t}\n\n\t\tif (!currentItem) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (currentItem.selected || currentItem.isGroupItem) {\n\t\t\tthis.currentItemIdx = previousItemIdx;\n\t\t\treturn;\n\t\t}\n\n\t\tthis.value = currentItem.text!;\n\t\tthis._innerInput.value = currentItem.text!;\n\t\tthis._innerInput.setSelectionRange(0, currentItem.text!.length);\n\t}\n\n\t_handleEnter() {\n\t\tconst lowerCaseValue = this.value.toLowerCase();\n\t\tconst matchingItem = this._getItems().find(item => (!item.isGroupItem && item.text!.toLowerCase() === lowerCaseValue));\n\t\tconst oldValueState = this.valueState;\n\t\tconst innerInput = this._innerInput;\n\n\t\tif (matchingItem) {\n\t\t\tif (matchingItem.selected) {\n\t\t\t\tif (this._validationTimeout) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tthis.valueState = ValueState.Negative;\n\t\t\t\tthis._performingSelectionTwice = true;\n\t\t\t\tthis._resetValueState(oldValueState, () => {\n\t\t\t\t\tthis._performingSelectionTwice = false;\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tthis._previouslySelectedItems = this._getSelectedItems();\n\t\t\t\tmatchingItem.selected = true;\n\t\t\t\tthis.value = \"\";\n\t\t\t\t// during composition prevent _inputLiveChange for proper input clearing\n\t\t\t\tif (this._isComposing) {\n\t\t\t\t\tthis._suppressNextLiveChange = true;\n\t\t\t\t}\n\n\t\t\t\tconst changePrevented = this.fireSelectionChange();\n\n\t\t\t\tif (changePrevented) {\n\t\t\t\t\tthis._revertSelection();\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tinnerInput.setSelectionRange(matchingItem.text!.length, matchingItem.text!.length);\n\t\t\tthis.open = false;\n\t\t} else if (this._internals?.form) {\n\t\t\tsubmitForm(this);\n\t\t}\n\t}\n\n\t_resetValueState(valueState: `${ValueState}`, callback?: () => void) {\n\t\tthis._validationTimeout = setTimeout(() => {\n\t\t\tthis._effectiveValueState = this.valueState;\n\t\t\tthis._dialogInputValueState = valueState;\n\t\t\tthis.valueState = valueState;\n\t\t\tthis._validationTimeout = null;\n\t\t\tthis._innerInput.focus();\n\n\t\t\tcallback && callback();\n\t\t}, 2000);\n\t}\n\n\t_onTokenizerKeydown(e: KeyboardEvent) {\n\t\tif ((isRight(e) && this.effectiveDir === \"ltr\") || (isLeft(e) && this.effectiveDir === \"rtl\")) {\n\t\t\tconst lastTokenIndex = this._tokenizer.tokens.length - this._tokenizer.overflownTokens.length - 1;\n\n\t\t\tif (e.target === this._tokenizer.tokens[lastTokenIndex]) {\n\t\t\t\tsetTimeout(() => {\n\t\t\t\t\tthis._inputDom.focus();\n\t\t\t\t}, 0);\n\t\t\t}\n\t\t}\n\n\t\tif (isInsertShift(e)) {\n\t\t\tthis._handleInsertPaste(e);\n\t\t}\n\n\t\tif (isHome(e)) {\n\t\t\tthis._handleHome(e);\n\t\t}\n\n\t\tif (isEnd(e)) {\n\t\t\tthis._handleEnd(e);\n\t\t}\n\n\t\tif (isShow(e) && !this.readonly && !this.disabled) {\n\t\t\tthis._preventTokenizerToggle = true;\n\t\t\tthis._handleShow(e);\n\t\t}\n\t}\n\n\t_filterItems(str: string) {\n\t\tconst itemsToFilter = this._getItems().filter(item => !item.isGroupItem);\n\t\tconst filteredItems = (Filters[this.filter] || Filters.StartsWithPerTerm)(str, itemsToFilter, \"text\");\n\n\t\tthis._getItems().forEach(item => {\n\t\t\tif (isInstanceOfMultiComboBoxItem(item)) {\n\t\t\t\titem._isVisible = filteredItems.includes(item);\n\t\t\t}\n\t\t});\n\n\t\treturn this.items.filter(item => {\n\t\t\tif (item.isGroupItem) {\n\t\t\t\treturn (item as MultiComboBoxItemGroup).items.some(listItem => listItem._isVisible) ? item : false;\n\t\t\t}\n\n\t\t\treturn item._isVisible;\n\t\t});\n\t}\n\n\t/**\n\t * Returns true if the group header should be shown (if there is a filtered suggestion item for this group item)\n\t * @private\n\t */\n\tstatic _groupItemFilter(item: IMultiComboBoxItem, idx: number, allItems: Array<IMultiComboBoxItem>, filteredItems: Array<IMultiComboBoxItem>) {\n\t\tif (item.isGroupItem) {\n\t\t\tlet groupHasFilteredItems;\n\n\t\t\twhile (allItems[idx] && !allItems[idx].isGroupItem && !groupHasFilteredItems) {\n\t\t\t\tgroupHasFilteredItems = filteredItems.indexOf(allItems[idx]) !== -1;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\treturn groupHasFilteredItems;\n\t\t}\n\t}\n\n\t_afterOpen() {\n\t\tconst action = this.open ? \"open\" : \"close\";\n\n\t\tif (!isPhone() && !this._isOpenedByKeyboard) {\n\t\t\tthis._innerInput.focus();\n\t\t} else if (this._isOpenedByKeyboard) {\n\t\t\tthis._itemToFocus?.focus();\n\t\t} else {\n\t\t\tthis._getResponsivePopover().focus();\n\t\t}\n\n\t\tthis.fireDecoratorEvent(action);\n\n\t\tthis._previouslySelectedItems = this._getSelectedItems();\n\t\tthis._isOpenedByKeyboard = false;\n\t}\n\n\t/**\n\t * Retrieves a flat structure of all MultiComboBox items from the slotted nodes.\n\t *\n\t * @private\n\t */\n\t_getItems(): Array<IMultiComboBoxItem> {\n\t\tconst items: IMultiComboBoxItem[] = [];\n\t\tconst slottedItems = this.getSlottedNodes<IMultiComboBoxItem>(\"items\");\n\n\t\tslottedItems.forEach(item => {\n\t\t\tif (isInstanceOfMultiComboBoxItemGroup(item)) {\n\t\t\t\tconst groupItems = [item, ...item.items].filter(Boolean);\n\t\t\t\titems.push(...groupItems);\n\t\t\t} else {\n\t\t\t\titems.push(item);\n\t\t\t}\n\t\t});\n\n\t\treturn items;\n\t}\n\n\t_getSelectedItems(): Array<MultiComboBoxItem> {\n\t\t// Angular 2 way data binding\n\t\tthis.selectedValues = this._getItems().filter(item => item.selected);\n\t\treturn this.selectedValues as Array<MultiComboBoxItem>;\n\t}\n\n\t_listSelectionChange(e: CustomEvent<ListSelectionChangeEventDetail>) {\n\t\tlet changePrevented;\n\n\t\tif (this.readonly) {\n\t\t\te.preventDefault();\n\t\t\treturn;\n\t\t}\n\n\t\tif (!isPhone()) {\n\t\t\tthis._previouslySelectedItems = e.detail.previouslySelectedItems;\n\t\t}\n\n\t\t// don't call selection change right after selection as user can cancel it on phone\n\t\tif (!isPhone()) {\n\t\t\tchangePrevented = this.fireSelectionChange();\n\n\t\t\tif (changePrevented) {\n\t\t\t\te.preventDefault();\n\t\t\t\tthis._revertSelection();\n\t\t\t}\n\t\t}\n\n\t\t// casted to KeyboardEvent since isSpace and isSpaceCtrl accepts KeyboardEvent only\n\t\tconst castedEvent = { key: e.detail.key } as KeyboardEvent;\n\n\t\tif (!e.detail.selectedItems.length && this.filterSelected) {\n\t\t\tthis.filterSelected = false;\n\t\t}\n\n\t\tif (!e.detail.selectionComponentPressed && !isSpace(castedEvent) && !isSpaceCtrl(castedEvent)) {\n\t\t\tthis.open = false;\n\t\t\tthis.value = \"\";\n\n\t\t\t// if the item (not checkbox) is clicked, call the selection change\n\t\t\tif (isPhone()) {\n\t\t\t\tchangePrevented = this.fireSelectionChange();\n\t\t\t\tif (changePrevented) {\n\t\t\t\t\te.preventDefault();\n\t\t\t\t\tthis._revertSelection();\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tthis.fireDecoratorEvent(\"input\");\n\t\t\treturn;\n\t\t}\n\n\t\tthis.value = this.valueBeforeAutoComplete || \"\";\n\t}\n\n\tfireSelectionChange() {\n\t\tconst changePrevented = !this.fireDecoratorEvent(\"selection-change\", {\n\t\t\titems: this._getSelectedItems(),\n\t\t});\n\n\t\treturn changePrevented;\n\t}\n\n\t_getList(): List {\n\t\tthis.list = this.shadowRoot!.querySelector(\".ui5-multi-combobox-all-items-list\")!;\n\t\treturn this.list;\n\t}\n\n\t_click() {\n\t\tif (isPhone() && !this.readonly && !this._showMorePressed && !this._deleting) {\n\t\t\tthis.open = true;\n\t\t}\n\n\t\tthis._showMorePressed = false;\n\t}\n\n\thandleBeforeTokenizerPopoverOpen() {\n\t\tconst tokens = this._tokenizer.tokens;\n\t\tconst hasTruncatedToken = tokens.length === 1 && tokens[0].isTruncatable;\n\t\tconst popover = this._getResponsivePopover();\n\n\t\tif (hasTruncatedToken && popover) {\n\t\t\tpopover.preventFocusRestore = true;\n\t\t\tpopover.open = false;\n\t\t}\n\t}\n\n\t_beforeClose() {\n\t\tthis.open = false;\n\t}\n\n\t_afterClose() {\n\t\tconst action = this.open ? \"open\" : \"close\";\n\n\t\t// close device's keyboard and prevent further typing\n\t\tif (isPhone()) {\n\t\t\tthis._dialogInputValueState = this.valueState;\n\t\t\tthis._tokenizer.expanded = false;\n\t\t}\n\n\t\tthis.fireDecoratorEvent(action);\n\n\t\tthis._iconPressed = false;\n\t\tthis._preventTokenizerToggle = false;\n\t\tthis.filterSelected = false;\n\t}\n\n\t_beforeOpen() {\n\t\tthis.open = true;\n\t\tthis._itemsBeforeOpen = this._getItems().map(item => {\n\t\t\treturn {\n\t\t\t\tref: item,\n\t\t\t\tselected: item.selected,\n\t\t\t};\n\t\t});\n\n\t\tthis._valueBeforeOpen = this.value;\n\t\tthis._dialogInputValueState = this.valueState;\n\n\t\t// in order to use the autocomplete feature of the input we should not set value in state\n\t\tthis._innerInput.value = this.value;\n\n\t\tif (this.filterSelected) {\n\t\t\tconst selectedItems = this._filteredItems.filter(item => item.selected);\n\t\t\tthis.selectedItems = this._getItems().filter((item, idx, allItems) => MultiComboBox._groupItemFilter(item, ++idx, allItems, selectedItems) || selectedItems.indexOf(item) !== -1);\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.open = false;\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._forwardFocusToInner();\n\t\t\t\t\t\t\tthis._handleArrowDown();\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._forwardFocusToInner();\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_handleTypeAhead(item: IMultiComboBoxItem, filterValue: string) {\n\t\tif (!item) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst value = item.text;\n\t\tconst innerInput = this._innerInput;\n\n\t\tfilterValue = filterValue || \"\";\n\t\tthis.value = value!;\n\n\t\tinnerInput.value = value!;\n\t\tinnerInput.setSelectionRange(filterValue.length, value!.length);\n\n\t\tthis._shouldAutocomplete = false;\n\t}\n\n\t_getFirstMatchingItem(current: string) {\n\t\tif (!this._getItems().length) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst matchingItems = this._startsWithMatchingItems(current).filter(item => !item.selected);\n\n\t\tif (matchingItems.length) {\n\t\t\treturn matchingItems[0];\n\t\t}\n\t}\n\n\t_startsWithMatchingItems(str: string) {\n\t\treturn Filters.StartsWith(str, this._getItems().filter(item => !item.isGroupItem), \"text\");\n\t}\n\n\t_revertSelection() {\n\t\tthis._filteredItems.forEach(item => {\n\t\t\titem.selected = this._previouslySelectedItems.includes(item);\n\t\t});\n\t}\n\n\tonBeforeRendering() {\n\t\tconst input = this._innerInput;\n\t\tconst autoCompletedChars = input && (input.selectionEnd || 0) - (input.selectionStart || 0);\n\t\tconst value = input && input.value;\n\n\t\tif (this.open) {\n\t\t\tconst list = this._getList();\n\t\t\tconst selectedListItemsCount = this.items.filter(item => item.selected).length;\n\t\t\tthis._allSelected = selectedListItemsCount > 0 && ((selectedListItemsCount === this.items.length) || (list?.getSlottedNodes(\"items\").length === selectedListItemsCount));\n\t\t}\n\n\t\tthis._effectiveShowClearIcon = (this.showClearIcon && !!this.value && !this.readonly && !this.disabled);\n\n\t\tif (input && !input.value) {\n\t\t\tthis.valueBeforeAutoComplete = \"\";\n\t\t\tthis._filteredItems = this._getItems();\n\t\t}\n\n\t\tthis.tokenizerAvailable = this._getSelectedItems().length > 0;\n\t\tthis.style.setProperty(getScopedVarName(\"--_ui5-input-icons-count\"), `${this.iconsCount}`);\n\n\t\tif (!input || !value) {\n\t\t\tthis._getItems().forEach(item => {\n\t\t\t\tif (isInstanceOfMultiComboBoxItem(item)) {\n\t\t\t\t\titem._isVisible = true;\n\t\t\t\t\titem._readonly = this.readonly;\n\t\t\t\t}\n\t\t\t});\n\t\t\treturn;\n\t\t}\n\t\t// Typehead causes issues on Android devices, so we disable it for now\n\t\t// If there is already a selection the autocomplete has already been performed\n\t\tif (this._shouldAutocomplete && !isAndroid()) {\n\t\t\tconst item = this._getFirstMatchingItem(value);\n\n\t\t\t// Prevent typeahead during composition to avoid interfering with the composition process\n\t\t\tif (!this._isComposing && item) {\n\t\t\t\t// Keep the original typed in text intact\n\t\t\t\tthis.valueBeforeAutoComplete = value;\n\t\t\t\tthis._handleTypeAhead(item, value);\n\t\t\t}\n\t\t}\n\n\t\tif (this._shouldFilterItems) {\n\t\t\tthis._filteredItems = this._filterItems(this._shouldAutocomplete || !!autoCompletedChars ? this.valueBeforeAutoComplete : value);\n\t\t} else {\n\t\t\tthis._filteredItems = this._getItems();\n\t\t}\n\t}\n\n\tonAfterRendering() {\n\t\tthis._getList();\n\t\tthis.valueStateOpen = this.shouldDisplayOnlyValueStateMessage || (this._handleLinkNavigation && !this.open);\n\t\tthis.storeResponsivePopoverWidth();\n\n\t\tthis._deleting = false;\n\t\t// force resize of the tokenizer on invalidation\n\t\tthis._tokenizer._handleResize();\n\t\tthis._tokenizer.preventInitialFocus = true;\n\n\t\tif (this.open && !isPhone()) {\n\t\t\tthis._tokenizer._scrollToEndOnExpand = true;\n\t\t\tthis._tokenizer.expanded = true;\n\t\t}\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\tget _isPhone() {\n\t\treturn isPhone();\n\t}\n\n\t_onIconMousedown() {\n\t\tthis._iconPressed = true;\n\t}\n\n\t_clear() {\n\t\tthis.value = \"\";\n\t\tthis._inputDom.value = \"\";\n\t\tthis.fireDecoratorEvent(\"input\");\n\n\t\tif (!this._isPhone) {\n\t\t\tthis.focus();\n\t\t}\n\t}\n\n\t_iconMouseDown() {\n\t\tthis._clearingValue = true;\n\t}\n\n\tstoreResponsivePopoverWidth() {\n\t\tif (this.open && !this._listWidth) {\n\t\t\tthis._listWidth = this.list!.offsetWidth;\n\t\t}\n\t}\n\n\thandleCancel() {\n\t\tthis._itemsBeforeOpen.forEach(item => {\n\t\t\tif (isInstanceOfMultiComboBoxItem(item.ref)) {\n\t\t\t\titem.ref.selected = item.selected;\n\t\t\t}\n\t\t});\n\n\t\tthis._toggleTokenizerPopover();\n\n\t\tthis.value = this._valueBeforeOpen;\n\t}\n\n\thandleOK() {\n\t\tif (isPhone()) {\n\t\t\tconst changePrevented = this.fireSelectionChange();\n\n\t\t\tif (changePrevented) {\n\t\t\t\tthis._revertSelection();\n\t\t\t}\n\t\t}\n\n\t\tif (!this.noValidation) {\n\t\t\tthis.value = \"\";\n\t\t}\n\n\t\tthis._toggleTokenizerPopover();\n\t}\n\n\t_forwardFocusToInner() {\n\t\tthis._innerInput.focus();\n\t}\n\n\tget morePopoverOpener(): HTMLElement {\n\t\tconst tokens = this._tokenizer?.tokens;\n\n\t\tif (tokens?.length === 1 && tokens[0].isTruncatable) {\n\t\t\treturn tokens[0];\n\t\t}\n\n\t\treturn this;\n\t}\n\n\t_getPopover() {\n\t\treturn this.shadowRoot!.querySelector<Popover>(\"[ui5-popover]\")!;\n\t}\n\n\t_getResponsivePopover() {\n\t\treturn this.shadowRoot!.querySelector<ResponsivePopover>(\"[ui5-responsive-popover]\")!;\n\t}\n\n\t_setValueStateHeader() {\n\t\tconst responsivePopover = this._getResponsivePopover();\n\t\tthis.valueStateHeader = responsivePopover.querySelector(\"div.ui5-responsive-popover-header.ui5-valuestatemessage-root\")!;\n\t}\n\n\tget _tokenizer() {\n\t\treturn this.shadowRoot!.querySelector<Tokenizer>(\"[ui5-tokenizer]\")!;\n\t}\n\n\tinputFocusIn(e: FocusEvent) {\n\t\tif (!isPhone()) {\n\t\t\tthis.focused = true;\n\t\t\tthis._tokenizer._scrollToEndOnExpand = true;\n\t\t\tthis._tokenizer.expanded = true;\n\t\t} else {\n\t\t\tthis._innerInput.blur();\n\t\t}\n\n\t\tthis._clearingValue = false;\n\n\t\tif (!isPhone() && e.target === this._innerInput) {\n\t\t\tthis._innerInput.setSelectionRange(0, this.value.length);\n\t\t}\n\t\tthis._tokenizer.tokens.forEach(token => {\n\t\t\ttoken.selected = false;\n\t\t});\n\n\t\tthis.valueBeforeAutoComplete = \"\";\n\t}\n\n\tinputFocusOut(e: FocusEvent) {\n\t\tconst responsivePopover = this._getResponsivePopover();\n\t\tconst popover = this._getPopover();\n\t\tconst focusIsGoingInPopover = [responsivePopover, popover].some(popup => popup?.contains(e.relatedTarget as Node));\n\t\tconst focusIsGoingInValueStatePopup = this?.contains(e.relatedTarget as Node);\n\n\t\tif (focusIsGoingInValueStatePopup || this._handleLinkNavigation) {\n\t\t\tthis.focused = false;\n\t\t\te.stopImmediatePropagation();\n\t\t\treturn;\n\t\t}\n\n\t\tif ((!this.shadowRoot!.contains(e.relatedTarget as Node) || focusIsGoingInPopover) && !this._deleting && !this._clearingValue) {\n\t\t\tthis.focused = false;\n\n\t\t\tif (this._lastValue !== this.value) {\n\t\t\t\tthis._inputChange();\n\t\t\t}\n\n\t\t\tthis._tokenizer.expanded = this.open;\n\t\t\t// remove the value if user focus out the input and focus is not going in the popover\n\t\t\tif (!isPhone() && !this.noValidation && !focusIsGoingInPopover) {\n\t\t\t\tthis.value = \"\";\n\t\t\t}\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._innerInput,\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 (MultiComboBox.composition) {\n\t\t\tsetup(MultiComboBox.composition);\n\t\t} else {\n\t\t\timport(\"./features/InputComposition.js\").then(CompositionModule => {\n\t\t\t\tMultiComboBox.composition = CompositionModule.default;\n\t\t\t\tsetup(CompositionModule.default);\n\t\t\t});\n\t\t}\n\t}\n\n\tget editable() {\n\t\treturn !this.readonly;\n\t}\n\n\tget _isFocusInside() {\n\t\treturn !isPhone() && (this.focused || this._tokenizerFocused);\n\t}\n\n\tget selectedItemsListMode() {\n\t\treturn this.readonly ? \"None\" : \"Multiple\";\n\t}\n\n\tget _listItemsType() {\n\t\treturn this.readonly ? \"Inactive\" : \"Active\";\n\t}\n\n\tget hasValueState() {\n\t\tconst isValueStateSet = this.valueState !== ValueState.None;\n\n\t\tif (isPhone()) {\n\t\t\treturn isValueStateSet || (this._dialogInputValueState !== ValueState.None);\n\t\t}\n\n\t\treturn isValueStateSet;\n\t}\n\n\tget hasValueStateMessage() {\n\t\tconst valueState = isPhone() ? this._dialogInputValueState : this.valueState;\n\n\t\treturn this.hasValueState && valueState !== ValueState.Positive;\n\t}\n\n\tget ariaValueStateHiddenText() {\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\tlet valueStateInnerText = this.valueStateMessage.map(el => el.textContent).join(\" \");\n\t\t// append space before the value state message text if it is not empty\n\t\tvalueStateInnerText = valueStateInnerText.trim().length ? ` ${valueStateInnerText}` : \"\";\n\n\t\tif (this.getValueStateLinksShortcutsTextAcc) {\n\t\t\treturn `${text} ${this.getValueStateLinksShortcutsTextAcc}${valueStateInnerText}`;\n\t\t}\n\n\t\treturn `${text}${valueStateInnerText}`;\n\t}\n\n\tget valueStateDefaultText(): string {\n\t\tconst valueState = isPhone() ? this._dialogInputValueState : this.valueState;\n\n\t\tif (valueState === ValueState.None) {\n\t\t\treturn \"\";\n\t\t}\n\n\t\tif (this._performingSelectionTwice) {\n\t\t\treturn MultiComboBox.i18nBundle.getText(VALUE_STATE_ERROR_ALREADY_SELECTED);\n\t\t}\n\n\t\treturn this.valueStateTextMappings[valueState];\n\t}\n\n\tget valueStateTextId() {\n\t\treturn this.hasValueState ? `ui5-multi-combobox-valueStateDesc` : \"\";\n\t}\n\n\tget ariaLabelText() {\n\t\treturn getEffectiveAriaLabelText(this) || getAssociatedLabelForTexts(this);\n\t}\n\n\t/**\n\t * This method is relevant for sap_horizon theme only\n\t */\n\tget _valueStateMessageIcon() {\n\t\tconst valueState = (isPhone() && this.open) ? this._dialogInputValueState : this.valueState;\n\n\t\tif (valueState === ValueState.None) {\n\t\t\treturn \"\";\n\t\t}\n\n\t\treturn {\n\t\t\t[ValueState.Negative]: \"error\",\n\t\t\t[ValueState.Critical]: \"alert\",\n\t\t\t[ValueState.Positive]: \"sys-enter-2\",\n\t\t\t[ValueState.Information]: \"information\",\n\t\t}[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) {\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 getValueStateLinksShortcutsTextAcc() {\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? MultiComboBox.i18nBundle.getText(VALUE_STATE_LINK_MAC)\n\t\t\t\t: MultiComboBox.i18nBundle.getText(VALUE_STATE_LINKS_MAC);\n\t\t}\n\n\t\treturn links.length === 1\n\t\t\t? MultiComboBox.i18nBundle.getText(VALUE_STATE_LINK)\n\t\t\t: MultiComboBox.i18nBundle.getText(VALUE_STATE_LINKS);\n\t}\n\n\tget _valueStateLinksShortcutsTextAccId() {\n\t\treturn this.linksInAriaValueStateHiddenText.length > 0 ? `hiddenText-value-state-link-shortcut` : \"\";\n\t}\n\n\tget _tokensCountText() {\n\t\tif (!this._tokenizer) {\n\t\t\treturn;\n\t\t}\n\n\t\treturn getTokensCountText(this.selectedValues.length);\n\t}\n\n\tget _tokensCountTextId() {\n\t\treturn \"ui5-multi-combobox-hiddenText-nMore\";\n\t}\n\n\tget _selectedTokensCount() {\n\t\treturn this._tokenizer.tokens.filter(token => token.selected).length;\n\t}\n\n\tget ariaDescribedByText() {\n\t\treturn `${this._tokensCountTextId} ${this.valueStateTextId} ${this._valueStateLinksShortcutsTextAccId}`.trim();\n\t}\n\n\tget shouldDisplayDefaultValueStateMessage() {\n\t\treturn !this.valueStateMessage.length && this.hasValueStateMessage;\n\t}\n\n\tget shouldDisplayOnlyValueStateMessage() {\n\t\treturn this.focused && !this.readonly && this.hasValueStateMessage && !this._iconPressed && !this.open;\n\t}\n\n\tget valueStateTypeMappings(): ValueStateTypeAnnouncement {\n\t\treturn {\n\t\t\t[ValueState.Positive]: MultiComboBox.i18nBundle.getText(VALUE_STATE_TYPE_SUCCESS),\n\t\t\t[ValueState.Information]: MultiComboBox.i18nBundle.getText(VALUE_STATE_TYPE_INFORMATION),\n\t\t\t[ValueState.Negative]: MultiComboBox.i18nBundle.getText(VALUE_STATE_TYPE_ERROR),\n\t\t\t[ValueState.Critical]: MultiComboBox.i18nBundle.getText(VALUE_STATE_TYPE_WARNING),\n\t\t};\n\t}\n\n\tget valueStateTextMappings(): ValueStateAnnouncement {\n\t\treturn {\n\t\t\t[ValueState.Positive]: MultiComboBox.i18nBundle.getText(VALUE_STATE_SUCCESS),\n\t\t\t[ValueState.Negative]: MultiComboBox.i18nBundle.getText(VALUE_STATE_ERROR),\n\t\t\t[ValueState.Critical]: MultiComboBox.i18nBundle.getText(VALUE_STATE_WARNING),\n\t\t\t[ValueState.Information]: MultiComboBox.i18nBundle.getText(VALUE_STATE_INFORMATION),\n\t\t};\n\t}\n\n\tget _innerInput(): HTMLInputElement {\n\t\tif (isPhone()) {\n\t\t\tif (this._getResponsivePopover()?.open) {\n\t\t\t\treturn this._getResponsivePopover().querySelector(\"[ui5-input]\")!.shadowRoot!.querySelector(\"input\")!;\n\t\t\t}\n\t\t}\n\n\t\treturn this._inputDom;\n\t}\n\n\tget _headerTitleText() {\n\t\treturn MultiComboBox.i18nBundle.getText(INPUT_SUGGESTIONS_TITLE);\n\t}\n\n\tget _iconAccessibleNameText() {\n\t\treturn MultiComboBox.i18nBundle.getText(SELECT_OPTIONS);\n\t}\n\n\tget _showSelectedButtonAccessibleNameText() {\n\t\treturn MultiComboBox.i18nBundle.getText(SHOW_SELECTED_BUTTON);\n\t}\n\n\tget _dialogOkButton() {\n\t\treturn MultiComboBox.i18nBundle.getText(MULTICOMBOBOX_DIALOG_OK_BUTTON);\n\t}\n\n\tget _dialogCancelButton() {\n\t\treturn MultiComboBox.i18nBundle.getText(MULTICOMBOBOX_DIALOG_CANCEL_BUTTON);\n\t}\n\n\tget _tokenizerExpanded() {\n\t\tif (isPhone()) {\n\t\t\treturn false;\n\t\t}\n\n\t\tif (this._preventTokenizerToggle) {\n\t\t\treturn this._tokenizer.expanded;\n\t\t}\n\n\t\tconst isCurrentlyExpanded = this._tokenizer?.expanded;\n\t\tconst shouldBeExpanded = this.focused || this.open || isCurrentlyExpanded;\n\n\t\treturn shouldBeExpanded;\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\tget clearIconAccessibleName() {\n\t\treturn MultiComboBox.i18nBundle.getText(INPUT_CLEAR_ICON_ACC_NAME);\n\t}\n\n\tget selectAllCheckboxLabel() {\n\t\tconst items = this._getItems().filter(item => !item.isGroupItem);\n\t\tconst selected = items.filter(item => item.selected);\n\n\t\treturn MultiComboBox.i18nBundle.getText(MCB_SELECTED_ITEMS, selected.length, items.length);\n\t}\n\n\tget _popupLabel() {\n\t\treturn MultiComboBox.i18nBundle.getText(COMBOBOX_AVAILABLE_OPTIONS);\n\t}\n\n\tget responsivePopoverId() {\n\t\treturn `${this._id}-popover`;\n\t}\n\n\tget classes(): ClassMap {\n\t\tconst popover = {\n\t\t\t\"ui5-multi-combobox-all-items-responsive-popover\": true,\n\t\t\t\"ui5-suggestions-popover\": true,\n\t\t\t\"ui5-popover-with-value-state-header-phone\": this._isPhone && this.hasValueStateMessage,\n\t\t\t\"ui5-popover-with-value-state-header\": !this._isPhone && this.hasValueStateMessage,\n\t\t};\n\t\tconst popoverValueState = {\n\t\t\t\"ui5-valuestatemessage-root\": true,\n\t\t\t\"ui5-valuestatemessage-header\": true,\n\t\t\t\"ui5-valuestatemessage--success\": (this.valueState === ValueState.Positive) || (isPhone() && this._dialogInputValueState === ValueState.Positive),\n\t\t\t\"ui5-valuestatemessage--error\": (this.valueState === ValueState.Negative) || (isPhone() && this._dialogInputValueState === ValueState.Negative),\n\t\t\t\"ui5-valuestatemessage--warning\": (this.valueState === ValueState.Critical) || (isPhone() && this._dialogInputValueState === ValueState.Critical),\n\t\t\t\"ui5-valuestatemessage--information\": (this.valueState === ValueState.Information) || (isPhone() && this._dialogInputValueState === ValueState.Information),\n\t\t};\n\t\treturn {\n\t\t\tpopover,\n\t\t\tpopoverValueState,\n\t\t\tresponsivePopoverHeaderValueState: {\n\t\t\t\t\"ui5-responsive-popover-header\": true,\n\t\t\t\t...popoverValueState,\n\t\t\t},\n\t\t};\n\t}\n\n\tget styles() {\n\t\tconst remSizeIxPx = parseInt(getComputedStyle(document.documentElement).fontSize);\n\t\treturn {\n\t\t\tpopoverValueStateMessage: {\n\t\t\t\t\"width\": `${this._listWidth || 0}px`,\n\t\t\t\t\"display\": this._listWidth === 0 ? \"none\" : \"inline-block\",\n\t\t\t},\n\t\t\tpopoverHeader: {\n\t\t\t\t\"max-width\": isPhone() ? \"100%\" : `22rem`,\n\t\t\t},\n\t\t\tsuggestionsPopover: {\n\t\t\t\t\"min-width\": `${this._inputWidth}px`,\n\t\t\t\t\"max-width\": (this._inputWidth / remSizeIxPx) > 40 ? `${this._inputWidth}px` : \"40rem\",\n\t\t\t},\n\t\t};\n\t}\n}\n\nMultiComboBox.define();\n\nexport default MultiComboBox;\n\nexport type {\n\tIMultiComboBoxItem,\n\tMultiComboBoxSelectionChangeEventDetail,\n};\n"]}