@ui5/webcomponents 1.14.0-rc.1 → 1.14.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (613) hide show
  1. package/CHANGELOG.md +36 -0
  2. package/dist/Breadcrumbs.d.ts +10 -2
  3. package/dist/Breadcrumbs.js.map +1 -1
  4. package/dist/Calendar.d.ts +2 -2
  5. package/dist/Calendar.js.map +1 -1
  6. package/dist/Carousel.d.ts +31 -0
  7. package/dist/Carousel.js +16 -0
  8. package/dist/Carousel.js.map +1 -1
  9. package/dist/ComboBox.d.ts +2 -2
  10. package/dist/ComboBox.js.map +1 -1
  11. package/dist/DatePicker.d.ts +9 -5
  12. package/dist/DatePicker.js.map +1 -1
  13. package/dist/DateRangePicker.d.ts +4 -2
  14. package/dist/DateRangePicker.js.map +1 -1
  15. package/dist/DateTimePicker.d.ts +4 -2
  16. package/dist/DateTimePicker.js.map +1 -1
  17. package/dist/Dialog.d.ts +10 -0
  18. package/dist/Dialog.js +20 -0
  19. package/dist/Dialog.js.map +1 -1
  20. package/dist/FileUploader.d.ts +4 -0
  21. package/dist/FileUploader.js.map +1 -1
  22. package/dist/Input.d.ts +12 -0
  23. package/dist/Input.js.map +1 -1
  24. package/dist/Label.d.ts +7 -4
  25. package/dist/Label.js +14 -6
  26. package/dist/Label.js.map +1 -1
  27. package/dist/List.d.ts +15 -9
  28. package/dist/List.js.map +1 -1
  29. package/dist/Menu.d.ts +15 -2
  30. package/dist/Menu.js +43 -22
  31. package/dist/Menu.js.map +1 -1
  32. package/dist/MultiComboBox.d.ts +2 -2
  33. package/dist/MultiComboBox.js.map +1 -1
  34. package/dist/MultiInput.d.ts +2 -1
  35. package/dist/MultiInput.js.map +1 -1
  36. package/dist/Popover.d.ts +2 -0
  37. package/dist/Popover.js.map +1 -1
  38. package/dist/Popup.js +5 -2
  39. package/dist/Popup.js.map +1 -1
  40. package/dist/SegmentedButton.d.ts +36 -0
  41. package/dist/SegmentedButton.js +56 -26
  42. package/dist/SegmentedButton.js.map +1 -1
  43. package/dist/Select.d.ts +2 -2
  44. package/dist/Select.js +6 -1
  45. package/dist/Select.js.map +1 -1
  46. package/dist/TabContainer.d.ts +2 -2
  47. package/dist/TabContainer.js.map +1 -1
  48. package/dist/Table.d.ts +9 -2
  49. package/dist/Table.js.map +1 -1
  50. package/dist/TimePicker.d.ts +2 -0
  51. package/dist/TimePicker.js.map +1 -1
  52. package/dist/TimePickerBase.d.ts +8 -1
  53. package/dist/TimePickerBase.js.map +1 -1
  54. package/dist/Tree.d.ts +3 -3
  55. package/dist/Tree.js.map +1 -1
  56. package/dist/api.json +1 -1
  57. package/dist/assets/{Label.95b96777.css → Label.b443825c.css} +1 -1
  58. package/dist/assets/TimePicker.0bfa349e.css +1 -0
  59. package/dist/assets/messagebundle_ar.cb2d513f.js +1 -0
  60. package/dist/assets/messagebundle_bg.fe0fc2a7.js +1 -0
  61. package/dist/assets/messagebundle_ca.5188156e.js +1 -0
  62. package/dist/assets/messagebundle_cs.326d268e.js +1 -0
  63. package/dist/assets/messagebundle_cy.27c00e72.js +1 -0
  64. package/dist/assets/messagebundle_da.8b2efe9a.js +1 -0
  65. package/dist/assets/messagebundle_de.f247aeb5.js +1 -0
  66. package/dist/assets/messagebundle_el.2aa42d04.js +1 -0
  67. package/dist/assets/messagebundle_en.0339fd5b.js +1 -0
  68. package/dist/assets/messagebundle_en_GB.fb50b51d.js +1 -0
  69. package/dist/assets/{messagebundle_en_US_sappsd.aec484c1.js → messagebundle_en_US_sappsd.1c34c7f1.js} +1 -1
  70. package/dist/assets/{messagebundle_en_US_saprigi.f321a5ab.js → messagebundle_en_US_saprigi.72615e29.js} +1 -1
  71. package/dist/assets/messagebundle_en_US_saptrc.2ec2f5b5.js +1 -0
  72. package/dist/assets/messagebundle_es.c3e0ee87.js +1 -0
  73. package/dist/assets/messagebundle_es_MX.66753849.js +1 -0
  74. package/dist/assets/messagebundle_et.416acfd2.js +1 -0
  75. package/dist/assets/messagebundle_fi.d1cbd526.js +1 -0
  76. package/dist/assets/messagebundle_fr.dc36e584.js +1 -0
  77. package/dist/assets/messagebundle_fr_CA.2523bd90.js +1 -0
  78. package/dist/assets/messagebundle_hi.ce0e6a15.js +1 -0
  79. package/dist/assets/messagebundle_hr.ceaae56a.js +1 -0
  80. package/dist/assets/messagebundle_hu.1ea9e4b9.js +1 -0
  81. package/dist/assets/messagebundle_it.42236d24.js +1 -0
  82. package/dist/assets/messagebundle_iw.a7ef7e16.js +1 -0
  83. package/dist/assets/messagebundle_ja.5d29b9fe.js +1 -0
  84. package/dist/assets/messagebundle_kk.a06da1f6.js +1 -0
  85. package/dist/assets/messagebundle_ko.21aacadd.js +1 -0
  86. package/dist/assets/messagebundle_lt.ce9c0489.js +1 -0
  87. package/dist/assets/messagebundle_lv.04d3cfc7.js +1 -0
  88. package/dist/assets/messagebundle_ms.95abdbb4.js +1 -0
  89. package/dist/assets/messagebundle_nl.57fa959f.js +1 -0
  90. package/dist/assets/messagebundle_no.e5f967f2.js +1 -0
  91. package/dist/assets/messagebundle_pl.4e8d92c7.js +1 -0
  92. package/dist/assets/messagebundle_pt.81f79352.js +1 -0
  93. package/dist/assets/messagebundle_pt_PT.57ea1c45.js +1 -0
  94. package/dist/assets/messagebundle_ro.4045f404.js +1 -0
  95. package/dist/assets/messagebundle_ru.093d6aec.js +1 -0
  96. package/dist/assets/messagebundle_sh.adc6cb96.js +1 -0
  97. package/dist/assets/messagebundle_sk.3d142f10.js +1 -0
  98. package/dist/assets/messagebundle_sl.504df99f.js +1 -0
  99. package/dist/assets/messagebundle_sv.614c8881.js +1 -0
  100. package/dist/assets/messagebundle_th.38af175f.js +1 -0
  101. package/dist/assets/messagebundle_tr.888a1c33.js +1 -0
  102. package/dist/assets/messagebundle_uk.89e0a61e.js +1 -0
  103. package/dist/assets/messagebundle_vi.36e677bb.js +1 -0
  104. package/dist/assets/messagebundle_zh_CN.00a7ca32.js +1 -0
  105. package/dist/assets/messagebundle_zh_TW.c2379ed2.js +1 -0
  106. package/dist/assets/parameters-bundle.css.0ec52ac7.js +1 -0
  107. package/dist/assets/parameters-bundle.css.23bec147.js +1 -0
  108. package/dist/assets/{parameters-bundle.css.bdbac4ec.js → parameters-bundle.css.397d6040.js} +1 -1
  109. package/dist/assets/{parameters-bundle.css.ef6e66b9.js → parameters-bundle.css.3fee12aa.js} +1 -1
  110. package/dist/assets/parameters-bundle.css.4a898a1b.js +1 -0
  111. package/dist/assets/parameters-bundle.css.4c54fb75.js +1 -0
  112. package/dist/assets/parameters-bundle.css.6646bc95.js +1 -0
  113. package/dist/assets/parameters-bundle.css.72ef7ff2.js +1 -0
  114. package/dist/assets/parameters-bundle.css.76a7a9e4.js +1 -0
  115. package/dist/assets/parameters-bundle.css.7edd6913.js +1 -0
  116. package/dist/assets/{parameters-bundle.css.0d6c19c9.js → parameters-bundle.css.86ed4ed5.js} +1 -1
  117. package/dist/assets/parameters-bundle.css.8bd32b39.js +1 -0
  118. package/dist/assets/parameters-bundle.css.9ca7ff31.js +1 -0
  119. package/dist/assets/parameters-bundle.css.bed7b1d7.js +1 -0
  120. package/dist/assets/{parameters-bundle.css.b8686554.js → parameters-bundle.css.bfd87960.js} +1 -1
  121. package/dist/assets/parameters-bundle.css.c8caca4e.js +1 -0
  122. package/dist/assets/{parameters-bundle.css.ab21e265.js → parameters-bundle.css.c9f57df8.js} +1 -1
  123. package/dist/assets/parameters-bundle.css.cd179234.js +1 -0
  124. package/dist/assets/parameters-bundle.css.dd9c4590.js +1 -0
  125. package/dist/assets/parameters-bundle.css.ddac1eb8.js +1 -0
  126. package/dist/assets/parameters-bundle.css.e1417378.js +1 -0
  127. package/dist/assets/{parameters-bundle.css.7bae430d.js → parameters-bundle.css.e2318f88.js} +1 -1
  128. package/dist/assets/parameters-bundle.css.e870ea96.js +1 -0
  129. package/dist/assets/parameters-bundle.css.ef756ba2.js +1 -0
  130. package/dist/assets/test/pages/{ComboBox.html.2d8ba2b0.js → ComboBox.html.f440f43b.js} +1 -1
  131. package/dist/assets/test/pages/{Icon.html.23e5ba67.js → Icon.html.dfe2d272.js} +1 -1
  132. package/dist/assets/test/pages/Label.html.717f733f.js +4 -0
  133. package/dist/assets/test/pages/{Popups.html.aee5c427.js → Popups.html.272c9aca.js} +1 -1
  134. package/dist/css/themes/AvatarGroup.css +1 -1
  135. package/dist/css/themes/Carousel.css +1 -1
  136. package/dist/css/themes/DatePicker.css +1 -1
  137. package/dist/css/themes/DayPicker.css +1 -1
  138. package/dist/css/themes/Dialog.css +1 -1
  139. package/dist/css/themes/FileUploader.css +1 -1
  140. package/dist/css/themes/Label.css +1 -1
  141. package/dist/css/themes/Link.css +1 -1
  142. package/dist/css/themes/TimePicker.css +1 -1
  143. package/dist/css/themes/sap_belize/parameters-bundle.css +1 -1
  144. package/dist/css/themes/sap_belize_hcb/parameters-bundle.css +1 -1
  145. package/dist/css/themes/sap_belize_hcw/parameters-bundle.css +1 -1
  146. package/dist/css/themes/sap_fiori_3/parameters-bundle.css +1 -1
  147. package/dist/css/themes/sap_fiori_3_dark/parameters-bundle.css +1 -1
  148. package/dist/css/themes/sap_fiori_3_hcb/parameters-bundle.css +1 -1
  149. package/dist/css/themes/sap_fiori_3_hcw/parameters-bundle.css +1 -1
  150. package/dist/css/themes/sap_horizon/parameters-bundle.css +1 -1
  151. package/dist/css/themes/sap_horizon_dark/parameters-bundle.css +1 -1
  152. package/dist/css/themes/sap_horizon_exp/parameters-bundle.css +1 -1
  153. package/dist/css/themes/sap_horizon_hcb/parameters-bundle.css +1 -1
  154. package/dist/css/themes/sap_horizon_hcw/parameters-bundle.css +1 -1
  155. package/dist/custom-elements.json +1 -1
  156. package/dist/features/InputSuggestions.d.ts +3 -3
  157. package/dist/features/InputSuggestions.js.map +1 -1
  158. package/dist/generated/assets/i18n/messagebundle_ar.json +1 -1
  159. package/dist/generated/assets/i18n/messagebundle_bg.json +1 -1
  160. package/dist/generated/assets/i18n/messagebundle_ca.json +1 -1
  161. package/dist/generated/assets/i18n/messagebundle_cs.json +1 -1
  162. package/dist/generated/assets/i18n/messagebundle_cy.json +1 -1
  163. package/dist/generated/assets/i18n/messagebundle_da.json +1 -1
  164. package/dist/generated/assets/i18n/messagebundle_de.json +1 -1
  165. package/dist/generated/assets/i18n/messagebundle_el.json +1 -1
  166. package/dist/generated/assets/i18n/messagebundle_en.json +1 -1
  167. package/dist/generated/assets/i18n/messagebundle_en_GB.json +1 -1
  168. package/dist/generated/assets/i18n/messagebundle_en_US_sappsd.json +1 -1
  169. package/dist/generated/assets/i18n/messagebundle_en_US_saprigi.json +1 -1
  170. package/dist/generated/assets/i18n/messagebundle_en_US_saptrc.json +1 -1
  171. package/dist/generated/assets/i18n/messagebundle_es.json +1 -1
  172. package/dist/generated/assets/i18n/messagebundle_es_MX.json +1 -1
  173. package/dist/generated/assets/i18n/messagebundle_et.json +1 -1
  174. package/dist/generated/assets/i18n/messagebundle_fi.json +1 -1
  175. package/dist/generated/assets/i18n/messagebundle_fr.json +1 -1
  176. package/dist/generated/assets/i18n/messagebundle_fr_CA.json +1 -1
  177. package/dist/generated/assets/i18n/messagebundle_hi.json +1 -1
  178. package/dist/generated/assets/i18n/messagebundle_hr.json +1 -1
  179. package/dist/generated/assets/i18n/messagebundle_hu.json +1 -1
  180. package/dist/generated/assets/i18n/messagebundle_it.json +1 -1
  181. package/dist/generated/assets/i18n/messagebundle_iw.json +1 -1
  182. package/dist/generated/assets/i18n/messagebundle_ja.json +1 -1
  183. package/dist/generated/assets/i18n/messagebundle_kk.json +1 -1
  184. package/dist/generated/assets/i18n/messagebundle_ko.json +1 -1
  185. package/dist/generated/assets/i18n/messagebundle_lt.json +1 -1
  186. package/dist/generated/assets/i18n/messagebundle_lv.json +1 -1
  187. package/dist/generated/assets/i18n/messagebundle_ms.json +1 -1
  188. package/dist/generated/assets/i18n/messagebundle_nl.json +1 -1
  189. package/dist/generated/assets/i18n/messagebundle_no.json +1 -1
  190. package/dist/generated/assets/i18n/messagebundle_pl.json +1 -1
  191. package/dist/generated/assets/i18n/messagebundle_pt.json +1 -1
  192. package/dist/generated/assets/i18n/messagebundle_pt_PT.json +1 -1
  193. package/dist/generated/assets/i18n/messagebundle_ro.json +1 -1
  194. package/dist/generated/assets/i18n/messagebundle_ru.json +1 -1
  195. package/dist/generated/assets/i18n/messagebundle_sh.json +1 -1
  196. package/dist/generated/assets/i18n/messagebundle_sk.json +1 -1
  197. package/dist/generated/assets/i18n/messagebundle_sl.json +1 -1
  198. package/dist/generated/assets/i18n/messagebundle_sv.json +1 -1
  199. package/dist/generated/assets/i18n/messagebundle_th.json +1 -1
  200. package/dist/generated/assets/i18n/messagebundle_tr.json +1 -1
  201. package/dist/generated/assets/i18n/messagebundle_uk.json +1 -1
  202. package/dist/generated/assets/i18n/messagebundle_vi.json +1 -1
  203. package/dist/generated/assets/i18n/messagebundle_zh_CN.json +1 -1
  204. package/dist/generated/assets/i18n/messagebundle_zh_TW.json +1 -1
  205. package/dist/generated/assets/themes/sap_belize/parameters-bundle.css.json +1 -1
  206. package/dist/generated/assets/themes/sap_belize_hcb/parameters-bundle.css.json +1 -1
  207. package/dist/generated/assets/themes/sap_belize_hcw/parameters-bundle.css.json +1 -1
  208. package/dist/generated/assets/themes/sap_fiori_3/parameters-bundle.css.json +1 -1
  209. package/dist/generated/assets/themes/sap_fiori_3_dark/parameters-bundle.css.json +1 -1
  210. package/dist/generated/assets/themes/sap_fiori_3_hcb/parameters-bundle.css.json +1 -1
  211. package/dist/generated/assets/themes/sap_fiori_3_hcw/parameters-bundle.css.json +1 -1
  212. package/dist/generated/assets/themes/sap_horizon/parameters-bundle.css.json +1 -1
  213. package/dist/generated/assets/themes/sap_horizon_dark/parameters-bundle.css.json +1 -1
  214. package/dist/generated/assets/themes/sap_horizon_exp/parameters-bundle.css.json +1 -1
  215. package/dist/generated/assets/themes/sap_horizon_hcb/parameters-bundle.css.json +1 -1
  216. package/dist/generated/assets/themes/sap_horizon_hcw/parameters-bundle.css.json +1 -1
  217. package/dist/generated/i18n/i18n-defaults.d.ts +6 -1
  218. package/dist/generated/i18n/i18n-defaults.js +6 -1
  219. package/dist/generated/i18n/i18n-defaults.js.map +1 -1
  220. package/dist/generated/templates/AvatarTemplate.lit.js +3 -3
  221. package/dist/generated/templates/AvatarTemplate.lit.js.map +1 -1
  222. package/dist/generated/templates/CarouselTemplate.lit.js +2 -2
  223. package/dist/generated/templates/CarouselTemplate.lit.js.map +1 -1
  224. package/dist/generated/templates/DialogTemplate.lit.js +9 -4
  225. package/dist/generated/templates/DialogTemplate.lit.js.map +1 -1
  226. package/dist/generated/templates/LabelTemplate.lit.js +1 -1
  227. package/dist/generated/templates/LabelTemplate.lit.js.map +1 -1
  228. package/dist/generated/themes/AvatarGroup.css.js +1 -1
  229. package/dist/generated/themes/AvatarGroup.css.js.map +1 -1
  230. package/dist/generated/themes/Carousel.css.js +1 -1
  231. package/dist/generated/themes/Carousel.css.js.map +1 -1
  232. package/dist/generated/themes/DatePicker.css.js +1 -1
  233. package/dist/generated/themes/DatePicker.css.js.map +1 -1
  234. package/dist/generated/themes/DayPicker.css.js +1 -1
  235. package/dist/generated/themes/DayPicker.css.js.map +1 -1
  236. package/dist/generated/themes/Dialog.css.js +1 -1
  237. package/dist/generated/themes/Dialog.css.js.map +1 -1
  238. package/dist/generated/themes/FileUploader.css.js +1 -1
  239. package/dist/generated/themes/FileUploader.css.js.map +1 -1
  240. package/dist/generated/themes/Label.css.js +1 -1
  241. package/dist/generated/themes/Label.css.js.map +1 -1
  242. package/dist/generated/themes/Link.css.js +1 -1
  243. package/dist/generated/themes/Link.css.js.map +1 -1
  244. package/dist/generated/themes/TimePicker.css.js +1 -1
  245. package/dist/generated/themes/TimePicker.css.js.map +1 -1
  246. package/dist/generated/themes/sap_belize/parameters-bundle.css.js +1 -1
  247. package/dist/generated/themes/sap_belize/parameters-bundle.css.js.map +1 -1
  248. package/dist/generated/themes/sap_belize_hcb/parameters-bundle.css.js +1 -1
  249. package/dist/generated/themes/sap_belize_hcb/parameters-bundle.css.js.map +1 -1
  250. package/dist/generated/themes/sap_belize_hcw/parameters-bundle.css.js +1 -1
  251. package/dist/generated/themes/sap_belize_hcw/parameters-bundle.css.js.map +1 -1
  252. package/dist/generated/themes/sap_fiori_3/parameters-bundle.css.js +1 -1
  253. package/dist/generated/themes/sap_fiori_3/parameters-bundle.css.js.map +1 -1
  254. package/dist/generated/themes/sap_fiori_3_dark/parameters-bundle.css.js +1 -1
  255. package/dist/generated/themes/sap_fiori_3_dark/parameters-bundle.css.js.map +1 -1
  256. package/dist/generated/themes/sap_fiori_3_hcb/parameters-bundle.css.js +1 -1
  257. package/dist/generated/themes/sap_fiori_3_hcb/parameters-bundle.css.js.map +1 -1
  258. package/dist/generated/themes/sap_fiori_3_hcw/parameters-bundle.css.js +1 -1
  259. package/dist/generated/themes/sap_fiori_3_hcw/parameters-bundle.css.js.map +1 -1
  260. package/dist/generated/themes/sap_horizon/parameters-bundle.css.js +1 -1
  261. package/dist/generated/themes/sap_horizon/parameters-bundle.css.js.map +1 -1
  262. package/dist/generated/themes/sap_horizon_dark/parameters-bundle.css.js +1 -1
  263. package/dist/generated/themes/sap_horizon_dark/parameters-bundle.css.js.map +1 -1
  264. package/dist/generated/themes/sap_horizon_exp/parameters-bundle.css.js +1 -1
  265. package/dist/generated/themes/sap_horizon_exp/parameters-bundle.css.js.map +1 -1
  266. package/dist/generated/themes/sap_horizon_hcb/parameters-bundle.css.js +1 -1
  267. package/dist/generated/themes/sap_horizon_hcb/parameters-bundle.css.js.map +1 -1
  268. package/dist/generated/themes/sap_horizon_hcw/parameters-bundle.css.js +1 -1
  269. package/dist/generated/themes/sap_horizon_hcw/parameters-bundle.css.js.map +1 -1
  270. package/dist/i18n/messagebundle.properties +14 -0
  271. package/dist/i18n/messagebundle_ar.properties +3 -1
  272. package/dist/i18n/messagebundle_bg.properties +3 -1
  273. package/dist/i18n/messagebundle_ca.properties +3 -1
  274. package/dist/i18n/messagebundle_cs.properties +3 -1
  275. package/dist/i18n/messagebundle_cy.properties +3 -1
  276. package/dist/i18n/messagebundle_da.properties +3 -1
  277. package/dist/i18n/messagebundle_de.properties +2 -0
  278. package/dist/i18n/messagebundle_el.properties +3 -1
  279. package/dist/i18n/messagebundle_en.properties +2 -0
  280. package/dist/i18n/messagebundle_en_GB.properties +2 -0
  281. package/dist/i18n/messagebundle_en_US_sappsd.properties +2 -0
  282. package/dist/i18n/messagebundle_en_US_saprigi.properties +2 -0
  283. package/dist/i18n/messagebundle_en_US_saptrc.properties +2 -0
  284. package/dist/i18n/messagebundle_es.properties +3 -1
  285. package/dist/i18n/messagebundle_es_MX.properties +3 -1
  286. package/dist/i18n/messagebundle_et.properties +3 -1
  287. package/dist/i18n/messagebundle_fi.properties +3 -1
  288. package/dist/i18n/messagebundle_fr.properties +3 -1
  289. package/dist/i18n/messagebundle_fr_CA.properties +3 -1
  290. package/dist/i18n/messagebundle_hi.properties +3 -1
  291. package/dist/i18n/messagebundle_hr.properties +3 -1
  292. package/dist/i18n/messagebundle_hu.properties +3 -1
  293. package/dist/i18n/messagebundle_id.properties +3 -1
  294. package/dist/i18n/messagebundle_it.properties +3 -1
  295. package/dist/i18n/messagebundle_iw.properties +3 -1
  296. package/dist/i18n/messagebundle_ja.properties +5 -3
  297. package/dist/i18n/messagebundle_kk.properties +3 -1
  298. package/dist/i18n/messagebundle_ko.properties +3 -1
  299. package/dist/i18n/messagebundle_lt.properties +3 -1
  300. package/dist/i18n/messagebundle_lv.properties +3 -1
  301. package/dist/i18n/messagebundle_ms.properties +3 -1
  302. package/dist/i18n/messagebundle_nl.properties +3 -1
  303. package/dist/i18n/messagebundle_no.properties +3 -1
  304. package/dist/i18n/messagebundle_pl.properties +3 -1
  305. package/dist/i18n/messagebundle_pt.properties +3 -1
  306. package/dist/i18n/messagebundle_pt_PT.properties +3 -1
  307. package/dist/i18n/messagebundle_ro.properties +3 -1
  308. package/dist/i18n/messagebundle_ru.properties +3 -1
  309. package/dist/i18n/messagebundle_sh.properties +3 -1
  310. package/dist/i18n/messagebundle_sk.properties +3 -1
  311. package/dist/i18n/messagebundle_sl.properties +3 -1
  312. package/dist/i18n/messagebundle_sv.properties +3 -1
  313. package/dist/i18n/messagebundle_th.properties +3 -1
  314. package/dist/i18n/messagebundle_tr.properties +3 -1
  315. package/dist/i18n/messagebundle_uk.properties +3 -1
  316. package/dist/i18n/messagebundle_vi.properties +3 -1
  317. package/dist/i18n/messagebundle_zh_CN.properties +3 -1
  318. package/dist/i18n/messagebundle_zh_TW.properties +3 -1
  319. package/dist/test/pages/72override.html +1 -1
  320. package/dist/test/pages/AnimanitionOff.html +1 -1
  321. package/dist/test/pages/Avatar.html +2 -2
  322. package/dist/test/pages/AvatarGroup.html +1 -1
  323. package/dist/test/pages/Badge.html +1 -1
  324. package/dist/test/pages/Breadcrumbs.html +1 -1
  325. package/dist/test/pages/BusyIndicator.html +1 -1
  326. package/dist/test/pages/Button.html +1 -1
  327. package/dist/test/pages/Calendar.html +1 -1
  328. package/dist/test/pages/Card.html +1 -1
  329. package/dist/test/pages/Carousel.html +7 -2
  330. package/dist/test/pages/CheckBox.html +1 -1
  331. package/dist/test/pages/ColorPalette.html +1 -1
  332. package/dist/test/pages/ColorPalettePopover.html +1 -1
  333. package/dist/test/pages/ColorPicker.html +1 -1
  334. package/dist/test/pages/ComboBox.html +2 -2
  335. package/dist/test/pages/Components.html +1 -1
  336. package/dist/test/pages/CoreControls.html +1 -1
  337. package/dist/test/pages/CoreControls_exp.html +1 -1
  338. package/dist/test/pages/CustomCSS.html +1 -1
  339. package/dist/test/pages/DatePicker.html +1 -1
  340. package/dist/test/pages/DatePicker_test_page.html +1 -1
  341. package/dist/test/pages/DateRangePicker.html +1 -1
  342. package/dist/test/pages/DateTimePicker.html +1 -1
  343. package/dist/test/pages/DateTimePicker_Timezone.html +1 -1
  344. package/dist/test/pages/DayPicker.html +1 -1
  345. package/dist/test/pages/Dialog.html +22 -8
  346. package/dist/test/pages/DialogLifecycle.html +1 -1
  347. package/dist/test/pages/DialogSemantic.html +1 -1
  348. package/dist/test/pages/Eventing.html +1 -1
  349. package/dist/test/pages/F6Test1.html +1 -1
  350. package/dist/test/pages/F6Test2.html +1 -1
  351. package/dist/test/pages/F6Test3.html +1 -1
  352. package/dist/test/pages/F6Test4.html +1 -1
  353. package/dist/test/pages/F6Test5.html +1 -1
  354. package/dist/test/pages/F6Test6.html +1 -1
  355. package/dist/test/pages/F6Test7.html +1 -1
  356. package/dist/test/pages/FileUploader.html +1 -1
  357. package/dist/test/pages/FormComponents.html +1 -1
  358. package/dist/test/pages/FormSupport.html +1 -1
  359. package/dist/test/pages/HCB.html +1 -1
  360. package/dist/test/pages/Icon.html +2 -2
  361. package/dist/test/pages/Icon_and_theming.html +1 -1
  362. package/dist/test/pages/Icon_custom.html +1 -1
  363. package/dist/test/pages/Input.html +1 -1
  364. package/dist/test/pages/InputFieldLabels.html +1 -1
  365. package/dist/test/pages/InputFieldMinWidth.html +1 -1
  366. package/dist/test/pages/InputIcons.html +1 -1
  367. package/dist/test/pages/Input_quickview.html +1 -1
  368. package/dist/test/pages/InputsAlignment.html +1 -1
  369. package/dist/test/pages/InputsLazyLoading.html +1 -1
  370. package/dist/test/pages/ItemNavigation.html +1 -1
  371. package/dist/test/pages/Kitchen.html +1 -1
  372. package/dist/test/pages/Kitchen.openui5.html +1 -1
  373. package/dist/test/pages/Label.html +33 -5
  374. package/dist/test/pages/Link.html +1 -1
  375. package/dist/test/pages/List.html +1 -1
  376. package/dist/test/pages/ListGrowing_Button.html +1 -1
  377. package/dist/test/pages/ListGrowing_Scroll.html +1 -1
  378. package/dist/test/pages/List_keyboard_support.html +1 -1
  379. package/dist/test/pages/List_test_page.html +1 -1
  380. package/dist/test/pages/LitKeyFunction.html +1 -1
  381. package/dist/test/pages/MemoryLeak.html +1 -1
  382. package/dist/test/pages/Menu.html +17 -1
  383. package/dist/test/pages/MessagePage.html +1 -1
  384. package/dist/test/pages/MessageStrip.html +1 -1
  385. package/dist/test/pages/MultiComboBox.html +1 -1
  386. package/dist/test/pages/MultiInput.html +1 -1
  387. package/dist/test/pages/MultiInput_Suggestions.html +1 -1
  388. package/dist/test/pages/OpenUI5-second.html +1 -1
  389. package/dist/test/pages/OpenUI5.html +1 -1
  390. package/dist/test/pages/Panel.html +1 -1
  391. package/dist/test/pages/Popover.html +35 -1
  392. package/dist/test/pages/PopoverArrowBounds.html +1 -1
  393. package/dist/test/pages/Popups.html +2 -2
  394. package/dist/test/pages/ProgressIndicator.html +1 -1
  395. package/dist/test/pages/RTL.html +1 -1
  396. package/dist/test/pages/RadioButton.html +1 -1
  397. package/dist/test/pages/RangeSlider.html +1 -1
  398. package/dist/test/pages/RatingIndicator.html +1 -1
  399. package/dist/test/pages/ResizeHandler.html +1 -1
  400. package/dist/test/pages/ResponsivePopover.html +1 -1
  401. package/dist/test/pages/SegmentedButton.html +2 -2
  402. package/dist/test/pages/Select.html +13 -1
  403. package/dist/test/pages/Simple.html +1 -1
  404. package/dist/test/pages/Slider.html +1 -1
  405. package/dist/test/pages/SplitButton.html +1 -1
  406. package/dist/test/pages/StepInput.html +1 -1
  407. package/dist/test/pages/Switch.html +1 -1
  408. package/dist/test/pages/TabContainer.html +1 -1
  409. package/dist/test/pages/Table-perf-pure.html +1 -1
  410. package/dist/test/pages/Table-perf.html +1 -1
  411. package/dist/test/pages/Table.html +1 -1
  412. package/dist/test/pages/Table2.html +1 -1
  413. package/dist/test/pages/TableAllPopin.html +1 -1
  414. package/dist/test/pages/TableCustomStyling.html +1 -1
  415. package/dist/test/pages/TableGrouping.html +1 -1
  416. package/dist/test/pages/TableGrowingWithButton.html +1 -1
  417. package/dist/test/pages/TableGrowingWithScroll.html +1 -1
  418. package/dist/test/pages/TableSelection.html +1 -1
  419. package/dist/test/pages/TextArea.html +1 -1
  420. package/dist/test/pages/TimePicker.html +18 -10
  421. package/dist/test/pages/TimeSelection.html +1 -1
  422. package/dist/test/pages/Title.html +1 -1
  423. package/dist/test/pages/Toast.html +1 -1
  424. package/dist/test/pages/ToggleButton.html +1 -1
  425. package/dist/test/pages/Tokenizer.html +1 -1
  426. package/dist/test/pages/Tree.html +1 -1
  427. package/dist/test/pages/TreeDynamic.html +1 -1
  428. package/dist/test/pages/WheelSlider_Test_Page.html +1 -1
  429. package/dist/test/pages/base/AriaLabelHelper.html +1 -1
  430. package/dist/test/pages/base/DOMObserver.html +1 -1
  431. package/dist/test/pages/base/IconCollection.html +1 -1
  432. package/dist/test/pages/base/IconCollectionInCustomTheme.html +1 -1
  433. package/dist/test/pages/base/IgnoreCustomElements.html +1 -1
  434. package/dist/test/pages/base/InvisibleMessage.html +1 -1
  435. package/dist/test/pages/form.html +1 -1
  436. package/dist/test/pages/i18n-defaultLang.html +1 -1
  437. package/dist/test/pages/i18n-demo.html +1 -1
  438. package/dist/types/BackgroundDesign.d.ts +30 -0
  439. package/dist/types/BackgroundDesign.js +32 -0
  440. package/dist/types/BackgroundDesign.js.map +1 -0
  441. package/dist/types/BorderDesign.d.ts +24 -0
  442. package/dist/types/BorderDesign.js +26 -0
  443. package/dist/types/BorderDesign.js.map +1 -0
  444. package/dist/types/SegmentedButtonMode.d.ts +24 -0
  445. package/dist/types/SegmentedButtonMode.js +26 -0
  446. package/dist/types/SegmentedButtonMode.js.map +1 -0
  447. package/package.json +7 -7
  448. package/src/Avatar.hbs +3 -2
  449. package/src/Carousel.hbs +2 -2
  450. package/src/Dialog.hbs +33 -16
  451. package/src/Label.hbs +6 -1
  452. package/src/i18n/messagebundle.properties +14 -0
  453. package/src/i18n/messagebundle_ar.properties +3 -1
  454. package/src/i18n/messagebundle_bg.properties +3 -1
  455. package/src/i18n/messagebundle_ca.properties +3 -1
  456. package/src/i18n/messagebundle_cs.properties +3 -1
  457. package/src/i18n/messagebundle_cy.properties +3 -1
  458. package/src/i18n/messagebundle_da.properties +3 -1
  459. package/src/i18n/messagebundle_de.properties +2 -0
  460. package/src/i18n/messagebundle_el.properties +3 -1
  461. package/src/i18n/messagebundle_en.properties +2 -0
  462. package/src/i18n/messagebundle_en_GB.properties +2 -0
  463. package/src/i18n/messagebundle_en_US_sappsd.properties +2 -0
  464. package/src/i18n/messagebundle_en_US_saprigi.properties +2 -0
  465. package/src/i18n/messagebundle_en_US_saptrc.properties +2 -0
  466. package/src/i18n/messagebundle_es.properties +3 -1
  467. package/src/i18n/messagebundle_es_MX.properties +3 -1
  468. package/src/i18n/messagebundle_et.properties +3 -1
  469. package/src/i18n/messagebundle_fi.properties +3 -1
  470. package/src/i18n/messagebundle_fr.properties +3 -1
  471. package/src/i18n/messagebundle_fr_CA.properties +3 -1
  472. package/src/i18n/messagebundle_hi.properties +3 -1
  473. package/src/i18n/messagebundle_hr.properties +3 -1
  474. package/src/i18n/messagebundle_hu.properties +3 -1
  475. package/src/i18n/messagebundle_id.properties +3 -1
  476. package/src/i18n/messagebundle_it.properties +3 -1
  477. package/src/i18n/messagebundle_iw.properties +3 -1
  478. package/src/i18n/messagebundle_ja.properties +5 -3
  479. package/src/i18n/messagebundle_kk.properties +3 -1
  480. package/src/i18n/messagebundle_ko.properties +3 -1
  481. package/src/i18n/messagebundle_lt.properties +3 -1
  482. package/src/i18n/messagebundle_lv.properties +3 -1
  483. package/src/i18n/messagebundle_ms.properties +3 -1
  484. package/src/i18n/messagebundle_nl.properties +3 -1
  485. package/src/i18n/messagebundle_no.properties +3 -1
  486. package/src/i18n/messagebundle_pl.properties +3 -1
  487. package/src/i18n/messagebundle_pt.properties +3 -1
  488. package/src/i18n/messagebundle_pt_PT.properties +3 -1
  489. package/src/i18n/messagebundle_ro.properties +3 -1
  490. package/src/i18n/messagebundle_ru.properties +3 -1
  491. package/src/i18n/messagebundle_sh.properties +3 -1
  492. package/src/i18n/messagebundle_sk.properties +3 -1
  493. package/src/i18n/messagebundle_sl.properties +3 -1
  494. package/src/i18n/messagebundle_sv.properties +3 -1
  495. package/src/i18n/messagebundle_th.properties +3 -1
  496. package/src/i18n/messagebundle_tr.properties +3 -1
  497. package/src/i18n/messagebundle_uk.properties +3 -1
  498. package/src/i18n/messagebundle_vi.properties +3 -1
  499. package/src/i18n/messagebundle_zh_CN.properties +3 -1
  500. package/src/i18n/messagebundle_zh_TW.properties +3 -1
  501. package/src/themes/AvatarGroup.css +4 -0
  502. package/src/themes/Carousel.css +40 -3
  503. package/src/themes/DatePicker.css +2 -0
  504. package/src/themes/DayPicker.css +59 -18
  505. package/src/themes/Dialog.css +2 -0
  506. package/src/themes/FileUploader.css +1 -0
  507. package/src/themes/Label.css +2 -1
  508. package/src/themes/Link.css +20 -23
  509. package/src/themes/TimePicker.css +2 -0
  510. package/src/themes/base/AvatarGroup-parameters.css +2 -2
  511. package/src/themes/base/Carousel-parameters.css +6 -5
  512. package/src/themes/base/DatePicker-parameters.css +1 -0
  513. package/src/themes/base/DayPicker-parameters.css +16 -0
  514. package/src/themes/base/Link-parameters.css +1 -1
  515. package/src/themes/base/Switch-parameters.css +25 -22
  516. package/src/themes/base/sizes-parameters.css +10 -60
  517. package/src/themes/sap_belize/DayPicker-parameters.css +4 -2
  518. package/src/themes/sap_belize/parameters-bundle.css +3 -3
  519. package/src/themes/sap_belize_hcb/DayPicker-parameters.css +3 -0
  520. package/src/themes/sap_belize_hcb/parameters-bundle.css +3 -3
  521. package/src/themes/sap_belize_hcw/DayPicker-parameters.css +3 -0
  522. package/src/themes/sap_belize_hcw/parameters-bundle.css +3 -3
  523. package/src/themes/sap_fiori_3/DayPicker-parameters.css +4 -2
  524. package/src/themes/sap_fiori_3/parameters-bundle.css +3 -3
  525. package/src/themes/sap_fiori_3_dark/DayPicker-parameters.css +4 -2
  526. package/src/themes/sap_fiori_3_dark/parameters-bundle.css +2 -2
  527. package/src/themes/sap_fiori_3_hcb/DayPicker-parameters.css +7 -2
  528. package/src/themes/sap_fiori_3_hcb/Link-parameters.css +3 -0
  529. package/src/themes/sap_fiori_3_hcb/parameters-bundle.css +3 -3
  530. package/src/themes/sap_fiori_3_hcw/DayPicker-parameters.css +7 -2
  531. package/src/themes/sap_fiori_3_hcw/Link-parameters.css +3 -0
  532. package/src/themes/sap_fiori_3_hcw/parameters-bundle.css +3 -3
  533. package/src/themes/sap_horizon/DayPicker-parameters.css +24 -7
  534. package/src/themes/sap_horizon/Link-parameters.css +3 -2
  535. package/src/themes/sap_horizon/Switch-parameters.css +26 -20
  536. package/src/themes/sap_horizon/parameters-bundle.css +2 -2
  537. package/src/themes/sap_horizon_dark/DayPicker-parameters.css +21 -7
  538. package/src/themes/sap_horizon_dark/Link-parameters.css +3 -2
  539. package/src/themes/sap_horizon_dark/Switch-parameters.css +25 -21
  540. package/src/themes/sap_horizon_dark/parameters-bundle.css +2 -2
  541. package/src/themes/sap_horizon_exp/parameters-bundle.css +3 -3
  542. package/src/themes/sap_horizon_hcb/DayPicker-parameters.css +17 -4
  543. package/src/themes/sap_horizon_hcb/Link-parameters.css +4 -3
  544. package/src/themes/sap_horizon_hcb/parameters-bundle.css +3 -3
  545. package/src/themes/sap_horizon_hcw/DayPicker-parameters.css +24 -3
  546. package/src/themes/sap_horizon_hcw/Link-parameters.css +4 -3
  547. package/src/themes/sap_horizon_hcw/Switch-parameters.css +25 -20
  548. package/src/themes/sap_horizon_hcw/parameters-bundle.css +3 -3
  549. package/dist/assets/TimePicker.ad7096e8.css +0 -1
  550. package/dist/assets/messagebundle_ar.79af67c0.js +0 -1
  551. package/dist/assets/messagebundle_bg.762bcd17.js +0 -1
  552. package/dist/assets/messagebundle_ca.408fb1e6.js +0 -1
  553. package/dist/assets/messagebundle_cs.89560d48.js +0 -1
  554. package/dist/assets/messagebundle_cy.af5eb0c4.js +0 -1
  555. package/dist/assets/messagebundle_da.37164a0f.js +0 -1
  556. package/dist/assets/messagebundle_de.e01539c8.js +0 -1
  557. package/dist/assets/messagebundle_el.fb7685a3.js +0 -1
  558. package/dist/assets/messagebundle_en.c44f1aa9.js +0 -1
  559. package/dist/assets/messagebundle_en_GB.2a910709.js +0 -1
  560. package/dist/assets/messagebundle_en_US_saptrc.94f1e535.js +0 -1
  561. package/dist/assets/messagebundle_es.4c047282.js +0 -1
  562. package/dist/assets/messagebundle_es_MX.6b49ce4e.js +0 -1
  563. package/dist/assets/messagebundle_et.88bb961a.js +0 -1
  564. package/dist/assets/messagebundle_fi.b549b299.js +0 -1
  565. package/dist/assets/messagebundle_fr.f5c457c3.js +0 -1
  566. package/dist/assets/messagebundle_fr_CA.6289fadd.js +0 -1
  567. package/dist/assets/messagebundle_hi.f7be0b9a.js +0 -1
  568. package/dist/assets/messagebundle_hr.77e98c16.js +0 -1
  569. package/dist/assets/messagebundle_hu.b57f9066.js +0 -1
  570. package/dist/assets/messagebundle_it.31fa8b53.js +0 -1
  571. package/dist/assets/messagebundle_iw.443316ed.js +0 -1
  572. package/dist/assets/messagebundle_ja.74b06d37.js +0 -1
  573. package/dist/assets/messagebundle_kk.73efd728.js +0 -1
  574. package/dist/assets/messagebundle_ko.f3b32369.js +0 -1
  575. package/dist/assets/messagebundle_lt.65455dfe.js +0 -1
  576. package/dist/assets/messagebundle_lv.0c8602cf.js +0 -1
  577. package/dist/assets/messagebundle_ms.29617199.js +0 -1
  578. package/dist/assets/messagebundle_nl.8f0db1e8.js +0 -1
  579. package/dist/assets/messagebundle_no.21449f71.js +0 -1
  580. package/dist/assets/messagebundle_pl.3550da6c.js +0 -1
  581. package/dist/assets/messagebundle_pt.e53ae247.js +0 -1
  582. package/dist/assets/messagebundle_pt_PT.1b2444c9.js +0 -1
  583. package/dist/assets/messagebundle_ro.915e50eb.js +0 -1
  584. package/dist/assets/messagebundle_ru.49a1191e.js +0 -1
  585. package/dist/assets/messagebundle_sh.e46b398f.js +0 -1
  586. package/dist/assets/messagebundle_sk.8dbd5574.js +0 -1
  587. package/dist/assets/messagebundle_sl.1b1b7790.js +0 -1
  588. package/dist/assets/messagebundle_sv.a67b53be.js +0 -1
  589. package/dist/assets/messagebundle_th.b34a5bf2.js +0 -1
  590. package/dist/assets/messagebundle_tr.95abc23c.js +0 -1
  591. package/dist/assets/messagebundle_uk.00795c72.js +0 -1
  592. package/dist/assets/messagebundle_vi.2391fb9a.js +0 -1
  593. package/dist/assets/messagebundle_zh_CN.aaaf5d44.js +0 -1
  594. package/dist/assets/messagebundle_zh_TW.6e48da4d.js +0 -1
  595. package/dist/assets/parameters-bundle.css.067142cc.js +0 -1
  596. package/dist/assets/parameters-bundle.css.0c0f77f7.js +0 -1
  597. package/dist/assets/parameters-bundle.css.2280ce3e.js +0 -1
  598. package/dist/assets/parameters-bundle.css.3e7079bc.js +0 -1
  599. package/dist/assets/parameters-bundle.css.472c33c9.js +0 -1
  600. package/dist/assets/parameters-bundle.css.49431a75.js +0 -1
  601. package/dist/assets/parameters-bundle.css.4d5e6b22.js +0 -1
  602. package/dist/assets/parameters-bundle.css.5a35203e.js +0 -1
  603. package/dist/assets/parameters-bundle.css.6cfbdef7.js +0 -1
  604. package/dist/assets/parameters-bundle.css.7f80e0a9.js +0 -1
  605. package/dist/assets/parameters-bundle.css.a20b2e10.js +0 -1
  606. package/dist/assets/parameters-bundle.css.a3056727.js +0 -1
  607. package/dist/assets/parameters-bundle.css.a51d0093.js +0 -1
  608. package/dist/assets/parameters-bundle.css.b7a02c6d.js +0 -1
  609. package/dist/assets/parameters-bundle.css.c948f166.js +0 -1
  610. package/dist/assets/parameters-bundle.css.c9ff28ae.js +0 -1
  611. package/dist/assets/parameters-bundle.css.f3164b8d.js +0 -1
  612. package/dist/assets/parameters-bundle.css.f81c3a09.js +0 -1
  613. package/dist/assets/test/pages/Label.html.09573306.js +0 -4
@@ -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.js\";\nimport type { ClassMap, Timeout } from \"@ui5/webcomponents-base/dist/types.js\";\nimport litRender from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.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 {\n\tisShow,\n\tisDown,\n\tisUp,\n\tisSpace,\n\tisSpaceCtrl,\n\tisSpaceShift,\n\tisRight,\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\tisCtrlV,\n\tisDeleteShift,\n\tisInsertShift,\n\tisInsertCtrl,\n\tisBackSpace,\n\tisDelete,\n\tisEscape,\n\tisEnter,\n} from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport Integer from \"@ui5/webcomponents-base/dist/types/Integer.js\";\nimport \"@ui5/webcomponents-icons/dist/slim-arrow-down.js\";\nimport {\n\tisPhone,\n\tisAndroid,\n} from \"@ui5/webcomponents-base/dist/Device.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport { getI18nBundle } from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport \"@ui5/webcomponents-icons/dist/decline.js\";\nimport \"@ui5/webcomponents-icons/dist/multiselect-all.js\";\nimport \"@ui5/webcomponents-icons/dist/not-editable.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 { getFeature } from \"@ui5/webcomponents-base/dist/FeaturesRegistry.js\";\nimport { getEffectiveAriaLabelText } from \"@ui5/webcomponents-base/dist/util/AriaLabelHelper.js\";\nimport MultiComboBoxItem from \"./MultiComboBoxItem.js\";\nimport MultiComboBoxGroupItem from \"./MultiComboBoxGroupItem.js\";\nimport GroupHeaderListItem from \"./GroupHeaderListItem.js\";\nimport Tokenizer, { ClipboardDataOperation } from \"./Tokenizer.js\";\nimport type { TokenizerTokenDeleteEventDetail } from \"./Tokenizer.js\";\nimport Token from \"./Token.js\";\nimport Icon from \"./Icon.js\";\nimport Popover from \"./Popover.js\";\nimport ResponsivePopover from \"./ResponsivePopover.js\";\nimport List from \"./List.js\";\nimport type { SelectionChangeEventDetail } from \"./List.js\";\nimport StandardListItem from \"./StandardListItem.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\tINPUT_SUGGESTIONS_TITLE,\n\tSELECT_OPTIONS,\n\tMULTICOMBOBOX_DIALOG_OK_BUTTON,\n\tVALUE_STATE_ERROR_ALREADY_SELECTED,\n} from \"./generated/i18n/i18n-defaults.js\";\n\n// Templates\nimport MultiComboBoxTemplate from \"./generated/templates/MultiComboBoxTemplate.lit.js\";\nimport MultiComboBoxPopoverTemplate from \"./generated/templates/MultiComboBoxPopoverTemplate.lit.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 ComboBoxFilter from \"./types/ComboBoxFilter.js\";\nimport type FormSupportT from \"./features/InputElementsFormSupport.js\";\nimport type ListItemBase from \"./ListItemBase.js\";\n\ninterface IMultiComboBoxItem extends UI5Element {\n\ttext: string,\n\tselected: boolean,\n\tisGroupItem?: boolean,\n\tstableDomRef: string,\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 * <h3 class=\"comment-api-title\">Overview</h3>\n *\n * The <code>ui5-multi-combobox</code> 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 * <h3>Structure</h3>\n * The <code>ui5-multi-combobox</code> consists of the following elements:\n * <ul>\n * <li> Tokenizer - a list of tokens with selected options.</li>\n * <li> Input field - displays the selected option/s as token/s. Users can type to filter the list.</li>\n * <li> Drop-down arrow - expands\\collapses the option list.</li>\n * <li> Option list - the list of available options.</li>\n * </ul>\n * <h3>Keyboard Handling</h3>\n *\n * The <code>ui5-multi-combobox</code> provides advanced keyboard handling.\n *\n * <h4>Picker</h4>\n * If the <code>ui5-multi-combobox</code> is focused,\n * you can open or close the drop-down by pressing <code>F4</code>, <code>ALT+UP</code> or <code>ALT+DOWN</code> keys.\n * Once the drop-down is opened, you can use the <code>UP</code> and <code>DOWN</code> arrow keys\n * to navigate through the available options and select one by pressing the <code>Space</code> or <code>Enter</code> keys.\n * <br>\n *\n * <h4>Tokens</h4>\n * <ul>\n * <li> Left/Right arrow keys - moves the focus selection form the currently focused token to the previous/next one (if available). </li>\n * <li> Delete - deletes the token and focuses the previous token. </li>\n * <li> Backspace - deletes the token and focus the next token. </li>\n * </ul>\n *\n * <h3>CSS Shadow Parts</h3>\n *\n * <ui5-link target=\"_blank\" href=\"https://developer.mozilla.org/en-US/docs/Web/CSS/::part\">CSS Shadow Parts</ui5-link> allow developers to style elements inside the Shadow DOM.\n * <br>\n * The <code>ui5-multi-combobox</code> exposes the following CSS Shadow Parts:\n * <ul>\n * <li>token-{index} - Used to style each token(where <code>token-0</code> corresponds to the first item)</li>\n * </ul>\n *\n * <h3>ES6 Module Import</h3>\n *\n * <code>import \"@ui5/webcomponents/dist/MultiComboBox\";</code>\n *\n *\n * @constructor\n * @author SAP SE\n * @alias sap.ui.webc.main.MultiComboBox\n * @extends sap.ui.webc.base.UI5Element\n * @tagname ui5-multi-combobox\n * @public\n * @appenddocs sap.ui.webc.main.MultiComboBoxItem sap.ui.webc.main.MultiComboBoxGroupItem\n * @since 0.11.0\n */\n@customElement({\n\ttag: \"ui5-multi-combobox\",\n\tlanguageAware: true,\n\trenderer: litRender,\n\ttemplate: MultiComboBoxTemplate,\n\tstaticAreaTemplate: MultiComboBoxPopoverTemplate,\n\tstyles: multiCbxStyles,\n\tstaticAreaStyles: [ResponsivePopoverCommonCss, ValueStateMessageCss, SuggestionsCss, MultiComboBoxPopover],\n\tdependencies: [\n\t\tMultiComboBoxItem,\n\t\tMultiComboBoxGroupItem,\n\t\tTokenizer,\n\t\tToken,\n\t\tIcon,\n\t\tResponsivePopover,\n\t\tPopover,\n\t\tList,\n\t\tStandardListItem,\n\t\tGroupHeaderListItem,\n\t\tToggleButton,\n\t\tButton,\n\t],\n})\n/**\n * Fired when the input operation has finished by pressing Enter or on focusout.\n *\n * @event sap.ui.webc.main.MultiComboBox#change\n * @public\n */\n @event(\"change\")\n\n/**\n * Fired when the value of the component changes at each keystroke.\n *\n * @event sap.ui.webc.main.MultiComboBox#input\n * @public\n */\n@event(\"input\")\n\n/**\n * Fired when the dropdown is opened or closed.\n *\n * @event sap.ui.webc.main.MultiComboBox#open-change\n * @since 1.0.0-rc.5\n * @public\n */\n@event(\"open-change\")\n\n/**\n * Fired when selection is changed by user interaction\n * in <code>SingleSelect</code> and <code>MultiSelect</code> modes.\n *\n * @event sap.ui.webc.main.MultiComboBox#selection-change\n * @param {Array} items an array of the selected items.\n * @public\n */\n@event(\"selection-change\", {\n\tdetail: {\n\t\titems: { type: Array },\n\t},\n})\n\nclass MultiComboBox extends UI5Element {\n\t/**\n\t * Defines the value of the component.\n\t * <br><br>\n\t * <b>Note:</b> The property is updated upon typing.\n\t *\n\t * @type {string}\n\t * @name sap.ui.webc.main.MultiComboBox.prototype.value\n\t * @defaultvalue \"\"\n\t * @formEvents change input\n\t * @formProperty\n\t * @public\n\t */\n\t@property()\n\tvalue!: string;\n\n\t/**\n\t * Defines whether the value will be autcompleted to match an item\n\t *\n\t * @type {boolean}\n\t * @name sap.ui.webc.main.MultiComboBox.prototype.noTypeahead\n\t * @defaultvalue false\n\t * @public\n\t * @since 1.4.0\n\t */\n\t@property({ type: Boolean })\n\tnoTypeahead!: boolean;\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 * @type {string}\n\t * @name sap.ui.webc.main.MultiComboBox.prototype.placeholder\n\t * @defaultvalue \"\"\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 *\n\t * @type {boolean}\n\t * @name sap.ui.webc.main.MultiComboBox.prototype.allowCustomValues\n\t * @defaultvalue false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\tallowCustomValues!: boolean;\n\n\t/**\n\t * Defines whether the component is in disabled state.\n\t * <br><br>\n\t * <b>Note:</b> A disabled component is completely noninteractive.\n\t *\n\t * @type {boolean}\n\t * @name sap.ui.webc.main.MultiComboBox.prototype.disabled\n\t * @defaultvalue false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\tdisabled!: boolean;\n\n\t/**\n\t * Defines the value state of the component.\n\t * <br><br>\n\t * Available options are:\n\t * <ul>\n\t * <li><code>None</code></li>\n\t * <li><code>Error</code></li>\n\t * <li><code>Warning</code></li>\n\t * <li><code>Success</code></li>\n\t * <li><code>Information</code></li>\n\t * </ul>\n\t *\n\t * @type {sap.ui.webc.base.types.ValueState}\n\t * @name sap.ui.webc.main.MultiComboBox.prototype.valueState\n\t * @defaultvalue \"None\"\n\t * @public\n\t */\n\t@property({ type: ValueState, defaultValue: ValueState.None })\n\tvalueState!: `${ValueState}`;\n\n\t/**\n\t * Defines whether the component is read-only.\n\t * <br><br>\n\t * <b>Note:</b> A read-only component is not editable,\n\t * but still provides visual feedback upon user interaction.\n\t *\n\t * @type {boolean}\n\t * @name sap.ui.webc.main.MultiComboBox.prototype.readonly\n\t * @defaultvalue false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\treadonly!: boolean;\n\n\t/**\n\t * Defines whether the component is required.\n\t *\n\t * @type {boolean}\n\t * @name sap.ui.webc.main.MultiComboBox.prototype.required\n\t * @defaultvalue false\n\t * @public\n\t * @since 1.0.0-rc.5\n\t */\n\t@property({ type: Boolean })\n\trequired!: boolean;\n\n\t/**\n\t * Defines the filter type of the component.\n\t * Available options are: <code>StartsWithPerTerm</code>, <code>StartsWith</code>, <code>Contains</code> and <code>None</code>.\n\t *\n\t * @type {sap.ui.webc.main.types.ComboBoxFilter}\n\t * @name sap.ui.webc.main.MultiComboBox.prototype.filter\n\t * @defaultvalue \"StartsWithPerTerm\"\n\t * @public\n\t */\n\t@property({ type: ComboBoxFilter, defaultValue: ComboBoxFilter.StartsWithPerTerm })\n\tfilter!: `${ComboBoxFilter}`;\n\n\t/**\n\t * Indicates whether the dropdown is open. True if the dropdown is open, false otherwise.\n\t *\n\t * @type {boolean}\n\t * @name sap.ui.webc.main.MultiComboBox.prototype.open\n\t * @defaultvalue false\n\t * @readonly\n\t * @since 1.0.0-rc.5\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\topen!: boolean;\n\n\t/**\n\t * Defines the accessible ARIA name of the component.\n\t *\n\t * @type {string}\n\t * @name sap.ui.webc.main.MultiComboBox.prototype.accessibleName\n\t * @defaultvalue: \"\"\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 *\n\t * @type {string}\n\t * @name sap.ui.webc.main.MultiComboBox.prototype.accessibleNameRef\n\t * @defaultvalue \"\"\n\t * @public\n\t * @since 1.4.0\n\t */\n\t@property()\n\taccessibleNameRef!: string;\n\n\t@property({ type: Object, noAttribute: true, multiple: true })\n\t_filteredItems!: Array<IMultiComboBoxItem>;\n\n\t@property({ type: Boolean })\n\tfilterSelected!: boolean;\n\n\t@property({ type: Boolean })\n\tfocused!: boolean;\n\n\t@property({ type: Boolean, noAttribute: true })\n\t_tokenizerFocused!: boolean;\n\n\t@property({ type: Boolean, noAttribute: true })\n\t_iconPressed!: boolean;\n\n\t@property({ validator: Integer, noAttribute: true })\n\t_inputWidth!: number;\n\n\t@property({ validator: Integer, noAttribute: true, defaultValue: 0 })\n\t_listWidth!: number;\n\n\t@property({ type: Boolean, noAttribute: true })\n\t_performingSelectionTwice!: boolean;\n\n\t/**\n\t * Indicates whether the tokenizer has tokens\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\ttokenizerAvailable!: boolean;\n\n\t/**\n\t * Defines the component items.\n\t *\n\t * @type {sap.ui.webc.main.IMultiComboBoxItem[]}\n\t * @name sap.ui.webc.main.MultiComboBox.prototype.default\n\t * @slot items\n\t * @public\n\t */\n\t@slot({ type: HTMLElement, \"default\": true, invalidateOnChildChange: true })\n\titems!: Array<IMultiComboBoxItem>;\n\n\t/**\n\t* Defines the icon to be displayed in the component.\n\t*\n\t* @type {sap.ui.webc.main.IIcon[]}\n\t* @name sap.ui.webc.main.MultiComboBox.prototype.icon\n\t* @slot\n\t* @public\n\t* @since 1.0.0-rc.9\n\t*/\n\t@slot()\n\ticon!: Array<Icon>;\n\n\t/**\n\t * Defines the value state message that will be displayed as pop up under the component.\n\t * <br><br>\n\t *\n\t * <b>Note:</b> If not specified, a default text (in the respective language) will be displayed.\n\t * <br>\n\t * <b>Note:</b> The <code>valueStateMessage</code> would be displayed,\n\t * when the component is in <code>Information</code>, <code>Warning</code> or <code>Error</code> value state.\n\t * @type {HTMLElement[]}\n\t * @name sap.ui.webc.main.MultiComboBox.prototype.valueStateMessage\n\t * @since 1.0.0-rc.9\n\t * @slot\n\t * @public\n\t */\n\t@slot()\n\tvalueStateMessage!: Array<HTMLElement>;\n\n\tselectedValues: Array<IMultiComboBoxItem>;\n\t_inputLastValue: string;\n\t_valueBeforeOpen: 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\tallItemsPopover?: ResponsivePopover;\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\tFormSupport?: typeof FormSupportT;\n\tstatic i18nBundle: I18nBundle;\n\n\tconstructor() {\n\t\tsuper();\n\n\t\tthis._filteredItems = [];\n\t\tthis.selectedValues = [];\n\t\tthis._itemsBeforeOpen = [];\n\t\tthis._inputLastValue = \"\";\n\t\tthis._valueBeforeOpen = \"\";\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 = \"\";\n\t\tthis.currentItemIdx = -1;\n\t\tthis.FormSupport = undefined;\n\t}\n\n\tonEnterDOM() {\n\t\tResizeHandler.register(this, this._handleResizeBound);\n\t}\n\n\tonExitDOM() {\n\t\tResizeHandler.deregister(this, this._handleResizeBound);\n\t}\n\n\t_handleResize() {\n\t\tthis._inputWidth = this.offsetWidth;\n\t}\n\n\t_inputChange() {\n\t\tthis.fireEvent(\"change\");\n\t}\n\n\ttogglePopover() {\n\t\tthis.allItemsPopover?.toggle(this);\n\t}\n\n\ttogglePopoverByDropdownIcon() {\n\t\tthis._shouldFilterItems = false;\n\t\tthis.allItemsPopover?.toggle(this);\n\t}\n\n\t_showFilteredItems() {\n\t\tthis.filterSelected = true;\n\t\tthis._showMorePressed = true;\n\n\t\tthis.togglePopover();\n\t}\n\n\tfilterSelectedItems(e: MouseEvent) {\n\t\tthis.filterSelected = (e.target as ToggleButton).pressed;\n\t\tconst selectedItems = this._filteredItems.filter(item => item.selected);\n\t\tthis.selectedItems = this.items.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\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\tinput.value = this._inputLastValue;\n\t\t\treturn;\n\t\t}\n\n\t\tif (!filteredItems.length && value && !this.allowCustomValues) {\n\t\t\tinput.value = this.valueBeforeAutoComplete || this._inputLastValue;\n\t\t\tthis.valueState = ValueState.Error;\n\n\t\t\tthis._shouldAutocomplete = false;\n\t\t\tthis._resetValueState(oldValueState);\n\n\t\t\treturn;\n\t\t}\n\n\t\tthis._inputLastValue = input.value;\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.allItemsPopover?.close();\n\t\t\t} else {\n\t\t\t\tthis.allItemsPopover?.showAt(this);\n\t\t\t}\n\t\t}\n\n\t\tthis.fireEvent(\"input\");\n\t}\n\n\t_tokenDelete(e: CustomEvent<TokenizerTokenDeleteEventDetail>) {\n\t\tconst token: Token = e.detail.ref;\n\t\tconst deletingItem = this.items.find(item => item._id === token.getAttribute(\"data-ui5-id\"))!;\n\n\t\tdeletingItem.selected = false;\n\t\tthis._deleting = true;\n\t\tthis._preventTokenizerToggle = true;\n\n\t\tthis.fireSelectionChange();\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_handleArrowLeft() {\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\tif (cursorPosition === 0 && !isTextSelected) {\n\t\t\tthis._tokenizer._focusLastToken();\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 (!relatedTarget || !relatedTarget.hasAttribute(\"ui5-token\")) {\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\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.allItemsPopover?.opened) {\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 (isCtrlV(e) || isInsertShift(e)) {\n\t\t\tthis._handlePaste();\n\t\t\treturn;\n\t\t}\n\n\t\tif (isSpaceShift(e)) {\n\t\t\te.preventDefault();\n\t\t}\n\n\t\tif (\n\t\t\t\t e.key === \"ArrowLeft\"\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\tasync _handlePaste() {\n\t\tif (this.readonly) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst pastedText = await navigator.clipboard.readText();\n\n\t\tif (!pastedText) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst separatedText = pastedText.split(/\\r\\n|\\r|\\n/g);\n\t\tconst matchingItems = this.items.filter(item => separatedText.indexOf(item.text) > -1 && !item.selected);\n\n\t\tif (matchingItems.length) {\n\t\t\tmatchingItems.forEach(item => {\n\t\t\t\titem.selected = true;\n\t\t\t\tthis.value = \"\";\n\t\t\t\tthis.fireSelectionChange();\n\t\t\t});\n\t\t} else {\n\t\t\tthis.value = pastedText;\n\t\t\tthis.fireEvent(\"input\");\n\t\t}\n\t}\n\n\t_handleShow(e: KeyboardEvent) {\n\t\tconst items = this.items;\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.items.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.items;\n\n\t\tthis.togglePopover();\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[0];\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.allowCustomValues || (!this.open && this.allowCustomValues)) {\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.allItemsPopover?.close();\n\t}\n\n\t_handleSelectAll() {\n\t\tconst filteredItems = this._filteredItems;\n\t\tconst allItemsSelected = filteredItems.every(item => item.selected);\n\n\t\tfilteredItems.forEach(item => {\n\t\t\titem.selected = !allItemsSelected;\n\t\t});\n\n\t\tthis.fireSelectionChange();\n\t}\n\n\t_onValueStateKeydown(e: KeyboardEvent) {\n\t\tconst isArrowDown = isDown(e);\n\t\tconst isArrowUp = isUp(e);\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\tthis._handleArrowDown();\n\t\t}\n\n\t\tif (isArrowUp || isUpCtrl(e)) {\n\t\t\tthis._shouldAutocomplete = true;\n\t\t\tthis._inputDom.focus();\n\t\t}\n\t}\n\n\tasync _onItemKeydown(e: KeyboardEvent) {\n\t\tconst isFirstItem = this.list?.items[0] === e.target;\n\t\tconst isArrowUp = isUp(e) || isUpCtrl(e);\n\n\t\tif (this.hasValueStateMessage && !this.valueStateHeader) {\n\t\t\tawait this._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?.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?.items[this.list?._itemNavigation._currentIndex].focus();\n\t\t}\n\n\t\te.preventDefault();\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?.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?.items[this.list?._itemNavigation._currentIndex].focus();\n\t\t}\n\n\t\tif (isShow(e)) {\n\t\t\tthis.togglePopover();\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 (((isArrowUp && isFirstItem) || isHome(e)) && this.valueStateHeader) {\n\t\t\tthis.valueStateHeader.focus();\n\t\t}\n\n\t\tif (!this.valueStateHeader && isFirstItem && isArrowUp) {\n\t\t\tthis._inputDom.focus();\n\t\t\tthis._shouldAutocomplete = true;\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._inputDom.focus();\n\t\tthis.allItemsPopover?.close();\n\t}\n\n\tasync _handleArrowNavigation(e: KeyboardEvent, isDownControl: boolean) {\n\t\tconst isArrowDown = isDownControl || isDown(e);\n\t\tconst hasSuggestions = this.items.length;\n\t\tconst isOpen = this.allItemsPopover?.opened;\n\n\t\te.preventDefault();\n\n\t\tif (this.hasValueStateMessage && !this.valueStateHeader) {\n\t\t\tawait this._setValueStateHeader();\n\t\t}\n\n\t\tif (isArrowDown && isOpen && this.valueStateHeader) {\n\t\t\tthis.value = this.valueBeforeAutoComplete || this.value;\n\t\t\tthis.valueStateHeader.focus();\n\t\t\treturn;\n\t\t}\n\n\t\tif (isArrowDown && hasSuggestions) {\n\t\t\tthis._handleArrowDown();\n\t\t}\n\n\t\tif (!isArrowDown && !isOpen && !this.readonly) {\n\t\t\tthis._navigateToPrevItem();\n\t\t}\n\t}\n\n\t_handleArrowDown() {\n\t\tconst isOpen = this.allItemsPopover?.opened;\n\t\tconst firstListItem = this.list?.items[0];\n\n\t\tif (isOpen) {\n\t\t\tfirstListItem && this.list?._itemNavigation.setCurrentItem(firstListItem);\n\t\t\tthis.value = this.valueBeforeAutoComplete || this.value;\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_handleItemRangeSelection(e: KeyboardEvent) {\n\t\tconst items = this.items;\n\t\tconst listItems = this.list?.items;\n\t\tconst currentItemIdx = listItems?.indexOf(e.target as ListItemBase) || -1;\n\t\tconst nextItemIdx = currentItemIdx + 1;\n\t\tconst prevItemIdx = currentItemIdx - 1;\n\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\tthis.fireSelectionChange();\n\t}\n\n\t_navigateToNextItem() {\n\t\tconst items = this.items;\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.items[++this.currentItemIdx];\n\n\t\twhile ((this.currentItemIdx < itemsCount - 1 && currentItem.selected) || currentItem.isGroupItem) {\n\t\t\tcurrentItem = this.items[++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.items;\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.items[--this.currentItemIdx];\n\n\t\twhile ((currentItem && this.currentItemIdx > 0) && (currentItem.selected || currentItem.isGroupItem)) {\n\t\t\tcurrentItem = this.items[--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.items.find(item => (item.text.toLowerCase() === lowerCaseValue && !item.isGroupItem));\n\t\tconst oldValueState = this.valueState;\n\t\tconst innerInput = this._innerInput;\n\n\t\tif (this.FormSupport) {\n\t\t\tthis.FormSupport.triggerFormSubmit(this);\n\t\t}\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.Error;\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\tmatchingItem.selected = true;\n\t\t\t\tthis.value = \"\";\n\t\t\t\tthis.fireSelectionChange();\n\t\t\t}\n\n\t\t\tinnerInput.setSelectionRange(matchingItem.text.length, matchingItem.text.length);\n\t\t\tthis.allItemsPopover?.close();\n\t\t}\n\t}\n\n\t_resetValueState(valueState: `${ValueState}`, callback?: () => void) {\n\t\tthis._validationTimeout = setTimeout(() => {\n\t\t\tthis.valueState = valueState;\n\t\t\tthis._validationTimeout = null;\n\n\t\t\tcallback && callback();\n\t\t}, 2000);\n\t}\n\n\t_onTokenizerKeydown(e: KeyboardEvent) {\n\t\tconst isCtrl = !!(e.metaKey || e.ctrlKey);\n\n\t\tif (isRight(e)) {\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 ((isCtrl && [\"c\", \"x\"].includes(e.key.toLowerCase())) || isDeleteShift(e) || isInsertCtrl(e)) {\n\t\t\te.preventDefault();\n\n\t\t\tconst isCut = e.key.toLowerCase() === \"x\" || isDeleteShift(e);\n\t\t\tconst selectedTokens = this._tokenizer.tokens.filter(token => token.selected);\n\n\t\t\tif (isCut) {\n\t\t\t\tconst cutResult = this._tokenizer._fillClipboard(ClipboardDataOperation.cut, selectedTokens);\n\t\t\t\tselectedTokens.forEach(token => {\n\t\t\t\t\tthis._tokenizer.deleteToken(token);\n\t\t\t\t});\n\n\t\t\t\tthis.focus();\n\t\t\t\treturn cutResult;\n\t\t\t}\n\t\t\treturn this._tokenizer._fillClipboard(ClipboardDataOperation.copy, selectedTokens);\n\t\t}\n\n\t\tif (isCtrlV(e) || isInsertShift(e)) {\n\t\t\tthis._handlePaste();\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.items.filter(item => !item.isGroupItem);\n\t\tconst filteredItems = (Filters[this.filter] || Filters.StartsWithPerTerm)(str, itemsToFilter, \"text\");\n\n\t\t// Return the filtered items and their group items\n\t\treturn this.items.filter((item, idx, allItems) => MultiComboBox._groupItemFilter(item, ++idx, allItems, filteredItems) || filteredItems.indexOf(item) !== -1);\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 *\n\t * @private\n\t */\n\t static _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_afterOpenPicker() {\n\t\tthis._toggle();\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.allItemsPopover?.focus();\n\t\t}\n\n\t\tthis._isOpenedByKeyboard = false;\n\t}\n\n\t_toggle() {\n\t\tthis.open = !this.open;\n\t\tthis.fireEvent(\"open-change\");\n\t}\n\n\t_getSelectedItems(): Array<MultiComboBoxItem> {\n\t\t// Angular 2 way data binding\n\t\tthis.selectedValues = this.items.filter(item => item.selected);\n\t\treturn this.selectedValues as Array<MultiComboBoxItem>;\n\t}\n\n\t_listSelectionChange(e: CustomEvent<SelectionChangeEventDetail>) {\n\t\t// sync list items and cb items\n\t\tthis.syncItems((e.target as List).items);\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\tthis.fireSelectionChange();\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.selectionComponentPressed && !isSpace(castedEvent) && !isSpaceCtrl(castedEvent)) {\n\t\t\tthis.allItemsPopover?.close();\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\tthis.fireSelectionChange();\n\t\t\t}\n\n\t\t\tthis.fireEvent(\"input\");\n\t\t}\n\n\t\tthis.value = this.valueBeforeAutoComplete || \"\";\n\t}\n\n\tsyncItems(listItems: Array<ListItemBase>) {\n\t\tlistItems.forEach(item => {\n\t\t\tthis.items.forEach(mcbItem => {\n\t\t\t\tif (mcbItem._id === item.getAttribute(\"data-ui5-token-id\")) {\n\t\t\t\t\tmcbItem.selected = item.selected;\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\t}\n\n\tfireSelectionChange() {\n\t\tthis.fireEvent<MultiComboBoxSelectionChangeEventDetail>(\"selection-change\", { items: this._getSelectedItems() });\n\t\t// Angular 2 way data binding\n\t\tthis.fireEvent(\"value-changed\");\n\t}\n\n\tasync _getRespPopover() {\n\t\tconst staticAreaItem = await this.getStaticAreaItemDomRef();\n\t\tthis.allItemsPopover = staticAreaItem!.querySelector(`.ui5-multi-combobox-all-items-responsive-popover`)!;\n\t}\n\n\tasync _getList(): Promise<List> {\n\t\tconst staticAreaItem = await this.getStaticAreaItemDomRef();\n\t\tthis.list = staticAreaItem!.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.allItemsPopover?.showAt(this);\n\t\t}\n\n\t\tthis._showMorePressed = false;\n\t}\n\n\t_afterClosePicker() {\n\t\t// close device's keyboard and prevent further typing\n\t\tif (isPhone()) {\n\t\t\tthis.blur();\n\t\t}\n\n\t\tthis._toggle();\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._itemsBeforeOpen = this.items.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\n\t\tif (this.filterSelected) {\n\t\t\tconst selectedItems = this._filteredItems.filter(item => item.selected);\n\t\t\tthis.selectedItems = this.items.filter((item, idx, allItems) => MultiComboBox._groupItemFilter(item, ++idx, allItems, selectedItems) || selectedItems.indexOf(item) !== -1);\n\t\t}\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.items.length) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst matchingItems = this._startsWithMatchingItems(current).filter(item => !item.isGroupItem && !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.items, \"text\");\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\tthis.FormSupport = getFeature(\"FormSupport\");\n\t\tthis._inputLastValue = value;\n\n\t\tif (input && !input.value) {\n\t\t\tthis.valueBeforeAutoComplete = \"\";\n\t\t\tthis._filteredItems = this.items;\n\t\t}\n\n\t\tthis.items.forEach(item => {\n\t\t\titem._getRealDomRef = () => this.allItemsPopover!.querySelector(`*[data-ui5-stable=${item.stableDomRef}]`)!;\n\t\t});\n\n\t\tthis.tokenizerAvailable = this._getSelectedItems().length > 0;\n\t\tthis.style.setProperty(\"--_ui5-input-icons-count\", `${this.iconsCount}`);\n\n\t\tif (!input || !value) {\n\t\t\treturn;\n\t\t}\n\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() && !autoCompletedChars) {\n\t\t\tconst item = this._getFirstMatchingItem(value);\n\n\t\t\t// Keep the original typed in text intact\n\t\t\tthis.valueBeforeAutoComplete = value;\n\t\t\titem && this._handleTypeAhead(item, value);\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.items;\n\t\t}\n\t}\n\n\tasync onAfterRendering() {\n\t\tawait this._getRespPopover();\n\t\tawait this._getList();\n\n\t\tthis.toggle(this.shouldDisplayOnlyValueStateMessage);\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}\n\n\tget _isPhone() {\n\t\treturn isPhone();\n\t}\n\n\t_onIconMousedown() {\n\t\tthis._iconPressed = 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\ttoggle(isToggled: boolean) {\n\t\tif (isToggled && !this.open) {\n\t\t\tthis.openPopover();\n\t\t} else {\n\t\t\tthis.closePopover();\n\t\t}\n\t}\n\n\thandleCancel() {\n\t\tthis._itemsBeforeOpen.forEach(item => {\n\t\t\tif (item.ref instanceof MultiComboBoxItem) {\n\t\t\t\titem.ref.selected = item.selected;\n\t\t\t}\n\t\t});\n\n\t\tthis.togglePopover();\n\n\t\tthis.value = this._valueBeforeOpen;\n\t}\n\n\thandleOK() {\n\t\tif (isPhone()) {\n\t\t\tthis.fireSelectionChange();\n\t\t}\n\n\t\tthis.togglePopover();\n\t}\n\n\tasync openPopover() {\n\t\t(await this._getPopover())?.showAt(this);\n\t}\n\n\t_forwardFocusToInner() {\n\t\tthis._innerInput.focus();\n\t}\n\n\tasync closePopover() {\n\t\t(await this._getPopover())?.close();\n\t}\n\n\tasync _getPopover() {\n\t\tconst staticAreaItem = await this.getStaticAreaItemDomRef();\n\t\treturn (staticAreaItem!.querySelector<Popover>(\"[ui5-popover]\"))!;\n\t}\n\n\tasync _getResponsivePopover() {\n\t\tconst staticAreaItem = await this.getStaticAreaItemDomRef();\n\t\treturn staticAreaItem!.querySelector<ResponsivePopover>(\"[ui5-responsive-popover]\")!;\n\t}\n\n\tasync _setValueStateHeader() {\n\t\tconst responsivePopover = await 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() || this.readonly) {\n\t\t\tthis.focused = true;\n\t\t\tthis._tokenizer.expanded = true;\n\t\t} else {\n\t\t\tthis._innerInput.blur();\n\t\t}\n\n\t\tif (!isPhone() && (((e.relatedTarget as HTMLElement)?.tagName !== \"UI5-STATIC-AREA-ITEM\") || !e.relatedTarget)) {\n\t\t\tthis._innerInput.setSelectionRange(0, this.value.length);\n\t\t}\n\n\t\tthis._lastValue = this.value;\n\t\tthis.valueBeforeAutoComplete = \"\";\n\t}\n\n\tinputFocusOut(e: FocusEvent) {\n\t\tif (!this.shadowRoot!.contains(e.relatedTarget as Node) && !this._deleting) {\n\t\t\tthis.focused = false;\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.allowCustomValues && (this.staticAreaItem !== e.relatedTarget)) {\n\t\t\t\tthis.value = \"\";\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\" : \"MultiSelect\";\n\t}\n\n\tget _listItemsType() {\n\t\treturn this.readonly ? \"Inactive\" : \"Active\";\n\t}\n\n\tget hasValueState() {\n\t\treturn this.valueState !== ValueState.None;\n\t}\n\n\tget hasValueStateMessage() {\n\t\treturn this.hasValueState && this.valueState !== ValueState.Success;\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\treturn `${text}`.concat(\" \", this.valueStateMessageText.map(el => el.textContent).join(\" \"));\n\t}\n\n\tget valueStateDefaultText(): string {\n\t\tif (this.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[this.valueState];\n\t}\n\n\tget valueStateTextId() {\n\t\treturn this.hasValueState ? `ui5-multi-combobox-valueStateDesc` : undefined;\n\t}\n\n\tget valueStateMessageText() {\n\t\treturn this.getSlottedNodes(\"valueStateMessage\").map(el => el.cloneNode(true));\n\t}\n\n\tget ariaLabelText() {\n\t\treturn getEffectiveAriaLabelText(this);\n\t}\n\n\t/**\n\t * This method is relevant for sap_horizon theme only\n\t */\n\t get _valueStateMessageIcon() {\n\t\tif (this.valueState === ValueState.None) {\n\t\t\treturn \"\";\n\t\t}\n\n\t\treturn {\n\t\t\t[ValueState.Error]: \"error\",\n\t\t\t[ValueState.Warning]: \"alert\",\n\t\t\t[ValueState.Success]: \"sys-enter-2\",\n\t\t\t[ValueState.Information]: \"information\",\n\t\t}[this.valueState];\n\t}\n\n\tget _tokensCountText() {\n\t\tif (!this._tokenizer) {\n\t\t\treturn;\n\t\t}\n\t\treturn this._tokenizer._tokensCountText();\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.valueStateTextId ? `${this._tokensCountTextId} ${this.valueStateTextId}` : `${this._tokensCountTextId}`;\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;\n\t}\n\n\tget valueStateTypeMappings(): ValueStateTypeAnnouncement {\n\t\treturn {\n\t\t\t[ValueState.Success]: 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.Error]: MultiComboBox.i18nBundle.getText(VALUE_STATE_TYPE_ERROR),\n\t\t\t[ValueState.Warning]: 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.Success]: MultiComboBox.i18nBundle.getText(VALUE_STATE_SUCCESS),\n\t\t\t[ValueState.Error]: MultiComboBox.i18nBundle.getText(VALUE_STATE_ERROR),\n\t\t\t[ValueState.Warning]: 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.allItemsPopover?.opened) {\n\t\t\t\treturn this.allItemsPopover.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 _dialogOkButton() {\n\t\treturn MultiComboBox.i18nBundle.getText(MULTICOMBOBOX_DIALOG_OK_BUTTON);\n\t}\n\n\tget _tokenizerExpanded() {\n\t\tif (isPhone() || this.readonly) {\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() {\n\t\treturn this.effectiveDir !== \"rtl\" ? \"Left\" : \"Right\";\n\t}\n\n\tget iconsCount() {\n\t\tconst slottedIconsCount = this.icon?.length || 0;\n\t\tconst arrowDownIconsCount = this.readonly ? 0 : 1;\n\t\treturn slottedIconsCount + arrowDownIconsCount;\n\t}\n\n\tget classes(): ClassMap {\n\t\treturn {\n\t\t\tpopover: {\n\t\t\t\t\"ui5-multi-combobox-all-items-responsive-popover\": true,\n\t\t\t\t\"ui5-suggestions-popover\": true,\n\t\t\t\t\"ui5-suggestions-popover-with-value-state-header\": this.hasValueStateMessage,\n\t\t\t},\n\t\t\tpopoverValueState: {\n\t\t\t\t\"ui5-valuestatemessage-root\": true,\n\t\t\t\t\"ui5-valuestatemessage-header\": true,\n\t\t\t\t\"ui5-valuestatemessage--success\": this.valueState === ValueState.Success,\n\t\t\t\t\"ui5-valuestatemessage--error\": this.valueState === ValueState.Error,\n\t\t\t\t\"ui5-valuestatemessage--warning\": this.valueState === ValueState.Warning,\n\t\t\t\t\"ui5-valuestatemessage--information\": this.valueState === ValueState.Information,\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%\" : `${this._inputWidth}px`,\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\tstatic async onDefine() {\n\t\tMultiComboBox.i18nBundle = await getI18nBundle(\"@ui5/webcomponents\");\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.js\";\nimport type { ClassMap, Timeout } from \"@ui5/webcomponents-base/dist/types.js\";\nimport litRender from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.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 {\n\tisShow,\n\tisDown,\n\tisUp,\n\tisSpace,\n\tisSpaceCtrl,\n\tisSpaceShift,\n\tisRight,\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\tisCtrlV,\n\tisDeleteShift,\n\tisInsertShift,\n\tisInsertCtrl,\n\tisBackSpace,\n\tisDelete,\n\tisEscape,\n\tisEnter,\n} from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport Integer from \"@ui5/webcomponents-base/dist/types/Integer.js\";\nimport \"@ui5/webcomponents-icons/dist/slim-arrow-down.js\";\nimport {\n\tisPhone,\n\tisAndroid,\n} from \"@ui5/webcomponents-base/dist/Device.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport { getI18nBundle } from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport \"@ui5/webcomponents-icons/dist/decline.js\";\nimport \"@ui5/webcomponents-icons/dist/multiselect-all.js\";\nimport \"@ui5/webcomponents-icons/dist/not-editable.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 { getFeature } from \"@ui5/webcomponents-base/dist/FeaturesRegistry.js\";\nimport { getEffectiveAriaLabelText } from \"@ui5/webcomponents-base/dist/util/AriaLabelHelper.js\";\nimport MultiComboBoxItem from \"./MultiComboBoxItem.js\";\nimport MultiComboBoxGroupItem from \"./MultiComboBoxGroupItem.js\";\nimport GroupHeaderListItem from \"./GroupHeaderListItem.js\";\nimport Tokenizer, { ClipboardDataOperation } from \"./Tokenizer.js\";\nimport type { TokenizerTokenDeleteEventDetail } from \"./Tokenizer.js\";\nimport Token from \"./Token.js\";\nimport Icon 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 StandardListItem from \"./StandardListItem.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\tINPUT_SUGGESTIONS_TITLE,\n\tSELECT_OPTIONS,\n\tMULTICOMBOBOX_DIALOG_OK_BUTTON,\n\tVALUE_STATE_ERROR_ALREADY_SELECTED,\n} from \"./generated/i18n/i18n-defaults.js\";\n\n// Templates\nimport MultiComboBoxTemplate from \"./generated/templates/MultiComboBoxTemplate.lit.js\";\nimport MultiComboBoxPopoverTemplate from \"./generated/templates/MultiComboBoxPopoverTemplate.lit.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 ComboBoxFilter from \"./types/ComboBoxFilter.js\";\nimport type FormSupportT from \"./features/InputElementsFormSupport.js\";\nimport type ListItemBase from \"./ListItemBase.js\";\n\ninterface IMultiComboBoxItem extends UI5Element {\n\ttext: string,\n\tselected: boolean,\n\tisGroupItem?: boolean,\n\tstableDomRef: string,\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 * <h3 class=\"comment-api-title\">Overview</h3>\n *\n * The <code>ui5-multi-combobox</code> 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 * <h3>Structure</h3>\n * The <code>ui5-multi-combobox</code> consists of the following elements:\n * <ul>\n * <li> Tokenizer - a list of tokens with selected options.</li>\n * <li> Input field - displays the selected option/s as token/s. Users can type to filter the list.</li>\n * <li> Drop-down arrow - expands\\collapses the option list.</li>\n * <li> Option list - the list of available options.</li>\n * </ul>\n * <h3>Keyboard Handling</h3>\n *\n * The <code>ui5-multi-combobox</code> provides advanced keyboard handling.\n *\n * <h4>Picker</h4>\n * If the <code>ui5-multi-combobox</code> is focused,\n * you can open or close the drop-down by pressing <code>F4</code>, <code>ALT+UP</code> or <code>ALT+DOWN</code> keys.\n * Once the drop-down is opened, you can use the <code>UP</code> and <code>DOWN</code> arrow keys\n * to navigate through the available options and select one by pressing the <code>Space</code> or <code>Enter</code> keys.\n * <br>\n *\n * <h4>Tokens</h4>\n * <ul>\n * <li> Left/Right arrow keys - moves the focus selection form the currently focused token to the previous/next one (if available). </li>\n * <li> Delete - deletes the token and focuses the previous token. </li>\n * <li> Backspace - deletes the token and focus the next token. </li>\n * </ul>\n *\n * <h3>CSS Shadow Parts</h3>\n *\n * <ui5-link target=\"_blank\" href=\"https://developer.mozilla.org/en-US/docs/Web/CSS/::part\">CSS Shadow Parts</ui5-link> allow developers to style elements inside the Shadow DOM.\n * <br>\n * The <code>ui5-multi-combobox</code> exposes the following CSS Shadow Parts:\n * <ul>\n * <li>token-{index} - Used to style each token(where <code>token-0</code> corresponds to the first item)</li>\n * </ul>\n *\n * <h3>ES6 Module Import</h3>\n *\n * <code>import \"@ui5/webcomponents/dist/MultiComboBox\";</code>\n *\n *\n * @constructor\n * @author SAP SE\n * @alias sap.ui.webc.main.MultiComboBox\n * @extends sap.ui.webc.base.UI5Element\n * @tagname ui5-multi-combobox\n * @public\n * @appenddocs sap.ui.webc.main.MultiComboBoxItem sap.ui.webc.main.MultiComboBoxGroupItem\n * @since 0.11.0\n */\n@customElement({\n\ttag: \"ui5-multi-combobox\",\n\tlanguageAware: true,\n\trenderer: litRender,\n\ttemplate: MultiComboBoxTemplate,\n\tstaticAreaTemplate: MultiComboBoxPopoverTemplate,\n\tstyles: multiCbxStyles,\n\tstaticAreaStyles: [ResponsivePopoverCommonCss, ValueStateMessageCss, SuggestionsCss, MultiComboBoxPopover],\n\tdependencies: [\n\t\tMultiComboBoxItem,\n\t\tMultiComboBoxGroupItem,\n\t\tTokenizer,\n\t\tToken,\n\t\tIcon,\n\t\tResponsivePopover,\n\t\tPopover,\n\t\tList,\n\t\tStandardListItem,\n\t\tGroupHeaderListItem,\n\t\tToggleButton,\n\t\tButton,\n\t],\n})\n/**\n * Fired when the input operation has finished by pressing Enter or on focusout.\n *\n * @event sap.ui.webc.main.MultiComboBox#change\n * @public\n */\n @event(\"change\")\n\n/**\n * Fired when the value of the component changes at each keystroke.\n *\n * @event sap.ui.webc.main.MultiComboBox#input\n * @public\n */\n@event(\"input\")\n\n/**\n * Fired when the dropdown is opened or closed.\n *\n * @event sap.ui.webc.main.MultiComboBox#open-change\n * @since 1.0.0-rc.5\n * @public\n */\n@event(\"open-change\")\n\n/**\n * Fired when selection is changed by user interaction\n * in <code>SingleSelect</code> and <code>MultiSelect</code> modes.\n *\n * @event sap.ui.webc.main.MultiComboBox#selection-change\n * @param {Array} items an array of the selected items.\n * @public\n */\n@event(\"selection-change\", {\n\tdetail: {\n\t\titems: { type: Array },\n\t},\n})\n\nclass MultiComboBox extends UI5Element {\n\t/**\n\t * Defines the value of the component.\n\t * <br><br>\n\t * <b>Note:</b> The property is updated upon typing.\n\t *\n\t * @type {string}\n\t * @name sap.ui.webc.main.MultiComboBox.prototype.value\n\t * @defaultvalue \"\"\n\t * @formEvents change input\n\t * @formProperty\n\t * @public\n\t */\n\t@property()\n\tvalue!: string;\n\n\t/**\n\t * Defines whether the value will be autcompleted to match an item\n\t *\n\t * @type {boolean}\n\t * @name sap.ui.webc.main.MultiComboBox.prototype.noTypeahead\n\t * @defaultvalue false\n\t * @public\n\t * @since 1.4.0\n\t */\n\t@property({ type: Boolean })\n\tnoTypeahead!: boolean;\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 * @type {string}\n\t * @name sap.ui.webc.main.MultiComboBox.prototype.placeholder\n\t * @defaultvalue \"\"\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 *\n\t * @type {boolean}\n\t * @name sap.ui.webc.main.MultiComboBox.prototype.allowCustomValues\n\t * @defaultvalue false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\tallowCustomValues!: boolean;\n\n\t/**\n\t * Defines whether the component is in disabled state.\n\t * <br><br>\n\t * <b>Note:</b> A disabled component is completely noninteractive.\n\t *\n\t * @type {boolean}\n\t * @name sap.ui.webc.main.MultiComboBox.prototype.disabled\n\t * @defaultvalue false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\tdisabled!: boolean;\n\n\t/**\n\t * Defines the value state of the component.\n\t * <br><br>\n\t * Available options are:\n\t * <ul>\n\t * <li><code>None</code></li>\n\t * <li><code>Error</code></li>\n\t * <li><code>Warning</code></li>\n\t * <li><code>Success</code></li>\n\t * <li><code>Information</code></li>\n\t * </ul>\n\t *\n\t * @type {sap.ui.webc.base.types.ValueState}\n\t * @name sap.ui.webc.main.MultiComboBox.prototype.valueState\n\t * @defaultvalue \"None\"\n\t * @public\n\t */\n\t@property({ type: ValueState, defaultValue: ValueState.None })\n\tvalueState!: `${ValueState}`;\n\n\t/**\n\t * Defines whether the component is read-only.\n\t * <br><br>\n\t * <b>Note:</b> A read-only component is not editable,\n\t * but still provides visual feedback upon user interaction.\n\t *\n\t * @type {boolean}\n\t * @name sap.ui.webc.main.MultiComboBox.prototype.readonly\n\t * @defaultvalue false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\treadonly!: boolean;\n\n\t/**\n\t * Defines whether the component is required.\n\t *\n\t * @type {boolean}\n\t * @name sap.ui.webc.main.MultiComboBox.prototype.required\n\t * @defaultvalue false\n\t * @public\n\t * @since 1.0.0-rc.5\n\t */\n\t@property({ type: Boolean })\n\trequired!: boolean;\n\n\t/**\n\t * Defines the filter type of the component.\n\t * Available options are: <code>StartsWithPerTerm</code>, <code>StartsWith</code>, <code>Contains</code> and <code>None</code>.\n\t *\n\t * @type {sap.ui.webc.main.types.ComboBoxFilter}\n\t * @name sap.ui.webc.main.MultiComboBox.prototype.filter\n\t * @defaultvalue \"StartsWithPerTerm\"\n\t * @public\n\t */\n\t@property({ type: ComboBoxFilter, defaultValue: ComboBoxFilter.StartsWithPerTerm })\n\tfilter!: `${ComboBoxFilter}`;\n\n\t/**\n\t * Indicates whether the dropdown is open. True if the dropdown is open, false otherwise.\n\t *\n\t * @type {boolean}\n\t * @name sap.ui.webc.main.MultiComboBox.prototype.open\n\t * @defaultvalue false\n\t * @readonly\n\t * @since 1.0.0-rc.5\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\topen!: boolean;\n\n\t/**\n\t * Defines the accessible ARIA name of the component.\n\t *\n\t * @type {string}\n\t * @name sap.ui.webc.main.MultiComboBox.prototype.accessibleName\n\t * @defaultvalue: \"\"\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 *\n\t * @type {string}\n\t * @name sap.ui.webc.main.MultiComboBox.prototype.accessibleNameRef\n\t * @defaultvalue \"\"\n\t * @public\n\t * @since 1.4.0\n\t */\n\t@property()\n\taccessibleNameRef!: string;\n\n\t@property({ type: Object, noAttribute: true, multiple: true })\n\t_filteredItems!: Array<IMultiComboBoxItem>;\n\n\t@property({ type: Boolean })\n\tfilterSelected!: boolean;\n\n\t@property({ type: Boolean })\n\tfocused!: boolean;\n\n\t@property({ type: Boolean, noAttribute: true })\n\t_tokenizerFocused!: boolean;\n\n\t@property({ type: Boolean, noAttribute: true })\n\t_iconPressed!: boolean;\n\n\t@property({ validator: Integer, noAttribute: true })\n\t_inputWidth!: number;\n\n\t@property({ validator: Integer, noAttribute: true, defaultValue: 0 })\n\t_listWidth!: number;\n\n\t@property({ type: Boolean, noAttribute: true })\n\t_performingSelectionTwice!: boolean;\n\n\t/**\n\t * Indicates whether the tokenizer has tokens\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\ttokenizerAvailable!: boolean;\n\n\t/**\n\t * Defines the component items.\n\t *\n\t * @type {sap.ui.webc.main.IMultiComboBoxItem[]}\n\t * @name sap.ui.webc.main.MultiComboBox.prototype.default\n\t * @slot items\n\t * @public\n\t */\n\t@slot({ type: HTMLElement, \"default\": true, invalidateOnChildChange: true })\n\titems!: Array<IMultiComboBoxItem>;\n\n\t/**\n\t* Defines the icon to be displayed in the component.\n\t*\n\t* @type {sap.ui.webc.main.IIcon[]}\n\t* @name sap.ui.webc.main.MultiComboBox.prototype.icon\n\t* @slot\n\t* @public\n\t* @since 1.0.0-rc.9\n\t*/\n\t@slot()\n\ticon!: Array<Icon>;\n\n\t/**\n\t * Defines the value state message that will be displayed as pop up under the component.\n\t * <br><br>\n\t *\n\t * <b>Note:</b> If not specified, a default text (in the respective language) will be displayed.\n\t * <br>\n\t * <b>Note:</b> The <code>valueStateMessage</code> would be displayed,\n\t * when the component is in <code>Information</code>, <code>Warning</code> or <code>Error</code> value state.\n\t * @type {HTMLElement[]}\n\t * @name sap.ui.webc.main.MultiComboBox.prototype.valueStateMessage\n\t * @since 1.0.0-rc.9\n\t * @slot\n\t * @public\n\t */\n\t@slot()\n\tvalueStateMessage!: Array<HTMLElement>;\n\n\tselectedValues: Array<IMultiComboBoxItem>;\n\t_inputLastValue: string;\n\t_valueBeforeOpen: 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\tallItemsPopover?: ResponsivePopover;\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\tFormSupport?: typeof FormSupportT;\n\tstatic i18nBundle: I18nBundle;\n\n\tconstructor() {\n\t\tsuper();\n\n\t\tthis._filteredItems = [];\n\t\tthis.selectedValues = [];\n\t\tthis._itemsBeforeOpen = [];\n\t\tthis._inputLastValue = \"\";\n\t\tthis._valueBeforeOpen = \"\";\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 = \"\";\n\t\tthis.currentItemIdx = -1;\n\t\tthis.FormSupport = undefined;\n\t}\n\n\tonEnterDOM() {\n\t\tResizeHandler.register(this, this._handleResizeBound);\n\t}\n\n\tonExitDOM() {\n\t\tResizeHandler.deregister(this, this._handleResizeBound);\n\t}\n\n\t_handleResize() {\n\t\tthis._inputWidth = this.offsetWidth;\n\t}\n\n\t_inputChange() {\n\t\tthis.fireEvent(\"change\");\n\t}\n\n\ttogglePopover() {\n\t\tthis.allItemsPopover?.toggle(this);\n\t}\n\n\ttogglePopoverByDropdownIcon() {\n\t\tthis._shouldFilterItems = false;\n\t\tthis.allItemsPopover?.toggle(this);\n\t}\n\n\t_showFilteredItems() {\n\t\tthis.filterSelected = true;\n\t\tthis._showMorePressed = true;\n\n\t\tthis.togglePopover();\n\t}\n\n\tfilterSelectedItems(e: MouseEvent) {\n\t\tthis.filterSelected = (e.target as ToggleButton).pressed;\n\t\tconst selectedItems = this._filteredItems.filter(item => item.selected);\n\t\tthis.selectedItems = this.items.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\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\tinput.value = this._inputLastValue;\n\t\t\treturn;\n\t\t}\n\n\t\tif (!filteredItems.length && value && !this.allowCustomValues) {\n\t\t\tinput.value = this.valueBeforeAutoComplete || this._inputLastValue;\n\t\t\tthis.valueState = ValueState.Error;\n\n\t\t\tthis._shouldAutocomplete = false;\n\t\t\tthis._resetValueState(oldValueState);\n\n\t\t\treturn;\n\t\t}\n\n\t\tthis._inputLastValue = input.value;\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.allItemsPopover?.close();\n\t\t\t} else {\n\t\t\t\tthis.allItemsPopover?.showAt(this);\n\t\t\t}\n\t\t}\n\n\t\tthis.fireEvent(\"input\");\n\t}\n\n\t_tokenDelete(e: CustomEvent<TokenizerTokenDeleteEventDetail>) {\n\t\tconst token: Token = e.detail.ref;\n\t\tconst deletingItem = this.items.find(item => item._id === token.getAttribute(\"data-ui5-id\"))!;\n\n\t\tdeletingItem.selected = false;\n\t\tthis._deleting = true;\n\t\tthis._preventTokenizerToggle = true;\n\n\t\tthis.fireSelectionChange();\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_handleArrowLeft() {\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\tif (cursorPosition === 0 && !isTextSelected) {\n\t\t\tthis._tokenizer._focusLastToken();\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 (!relatedTarget || !relatedTarget.hasAttribute(\"ui5-token\")) {\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\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.allItemsPopover?.opened) {\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 (isCtrlV(e) || isInsertShift(e)) {\n\t\t\tthis._handlePaste();\n\t\t\treturn;\n\t\t}\n\n\t\tif (isSpaceShift(e)) {\n\t\t\te.preventDefault();\n\t\t}\n\n\t\tif (\n\t\t\t\t e.key === \"ArrowLeft\"\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\tasync _handlePaste() {\n\t\tif (this.readonly) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst pastedText = await navigator.clipboard.readText();\n\n\t\tif (!pastedText) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst separatedText = pastedText.split(/\\r\\n|\\r|\\n/g);\n\t\tconst matchingItems = this.items.filter(item => separatedText.indexOf(item.text) > -1 && !item.selected);\n\n\t\tif (matchingItems.length) {\n\t\t\tmatchingItems.forEach(item => {\n\t\t\t\titem.selected = true;\n\t\t\t\tthis.value = \"\";\n\t\t\t\tthis.fireSelectionChange();\n\t\t\t});\n\t\t} else {\n\t\t\tthis.value = pastedText;\n\t\t\tthis.fireEvent(\"input\");\n\t\t}\n\t}\n\n\t_handleShow(e: KeyboardEvent) {\n\t\tconst items = this.items;\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.items.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.items;\n\n\t\tthis.togglePopover();\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[0];\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.allowCustomValues || (!this.open && this.allowCustomValues)) {\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.allItemsPopover?.close();\n\t}\n\n\t_handleSelectAll() {\n\t\tconst filteredItems = this._filteredItems;\n\t\tconst allItemsSelected = filteredItems.every(item => item.selected);\n\n\t\tfilteredItems.forEach(item => {\n\t\t\titem.selected = !allItemsSelected;\n\t\t});\n\n\t\tthis.fireSelectionChange();\n\t}\n\n\t_onValueStateKeydown(e: KeyboardEvent) {\n\t\tconst isArrowDown = isDown(e);\n\t\tconst isArrowUp = isUp(e);\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\tthis._handleArrowDown();\n\t\t}\n\n\t\tif (isArrowUp || isUpCtrl(e)) {\n\t\t\tthis._shouldAutocomplete = true;\n\t\t\tthis._inputDom.focus();\n\t\t}\n\t}\n\n\tasync _onItemKeydown(e: KeyboardEvent) {\n\t\tconst isFirstItem = this.list?.items[0] === e.target;\n\t\tconst isArrowUp = isUp(e) || isUpCtrl(e);\n\n\t\tif (this.hasValueStateMessage && !this.valueStateHeader) {\n\t\t\tawait this._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?.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?.items[this.list?._itemNavigation._currentIndex].focus();\n\t\t}\n\n\t\te.preventDefault();\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?.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?.items[this.list?._itemNavigation._currentIndex].focus();\n\t\t}\n\n\t\tif (isShow(e)) {\n\t\t\tthis.togglePopover();\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 (((isArrowUp && isFirstItem) || isHome(e)) && this.valueStateHeader) {\n\t\t\tthis.valueStateHeader.focus();\n\t\t}\n\n\t\tif (!this.valueStateHeader && isFirstItem && isArrowUp) {\n\t\t\tthis._inputDom.focus();\n\t\t\tthis._shouldAutocomplete = true;\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._inputDom.focus();\n\t\tthis.allItemsPopover?.close();\n\t}\n\n\tasync _handleArrowNavigation(e: KeyboardEvent, isDownControl: boolean) {\n\t\tconst isArrowDown = isDownControl || isDown(e);\n\t\tconst hasSuggestions = this.items.length;\n\t\tconst isOpen = this.allItemsPopover?.opened;\n\n\t\te.preventDefault();\n\n\t\tif (this.hasValueStateMessage && !this.valueStateHeader) {\n\t\t\tawait this._setValueStateHeader();\n\t\t}\n\n\t\tif (isArrowDown && isOpen && this.valueStateHeader) {\n\t\t\tthis.value = this.valueBeforeAutoComplete || this.value;\n\t\t\tthis.valueStateHeader.focus();\n\t\t\treturn;\n\t\t}\n\n\t\tif (isArrowDown && hasSuggestions) {\n\t\t\tthis._handleArrowDown();\n\t\t}\n\n\t\tif (!isArrowDown && !isOpen && !this.readonly) {\n\t\t\tthis._navigateToPrevItem();\n\t\t}\n\t}\n\n\t_handleArrowDown() {\n\t\tconst isOpen = this.allItemsPopover?.opened;\n\t\tconst firstListItem = this.list?.items[0];\n\n\t\tif (isOpen) {\n\t\t\tfirstListItem && this.list?._itemNavigation.setCurrentItem(firstListItem);\n\t\t\tthis.value = this.valueBeforeAutoComplete || this.value;\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_handleItemRangeSelection(e: KeyboardEvent) {\n\t\tconst items = this.items;\n\t\tconst listItems = this.list?.items;\n\t\tconst currentItemIdx = listItems?.indexOf(e.target as ListItemBase) || -1;\n\t\tconst nextItemIdx = currentItemIdx + 1;\n\t\tconst prevItemIdx = currentItemIdx - 1;\n\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\tthis.fireSelectionChange();\n\t}\n\n\t_navigateToNextItem() {\n\t\tconst items = this.items;\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.items[++this.currentItemIdx];\n\n\t\twhile ((this.currentItemIdx < itemsCount - 1 && currentItem.selected) || currentItem.isGroupItem) {\n\t\t\tcurrentItem = this.items[++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.items;\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.items[--this.currentItemIdx];\n\n\t\twhile ((currentItem && this.currentItemIdx > 0) && (currentItem.selected || currentItem.isGroupItem)) {\n\t\t\tcurrentItem = this.items[--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.items.find(item => (item.text.toLowerCase() === lowerCaseValue && !item.isGroupItem));\n\t\tconst oldValueState = this.valueState;\n\t\tconst innerInput = this._innerInput;\n\n\t\tif (this.FormSupport) {\n\t\t\tthis.FormSupport.triggerFormSubmit(this);\n\t\t}\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.Error;\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\tmatchingItem.selected = true;\n\t\t\t\tthis.value = \"\";\n\t\t\t\tthis.fireSelectionChange();\n\t\t\t}\n\n\t\t\tinnerInput.setSelectionRange(matchingItem.text.length, matchingItem.text.length);\n\t\t\tthis.allItemsPopover?.close();\n\t\t}\n\t}\n\n\t_resetValueState(valueState: `${ValueState}`, callback?: () => void) {\n\t\tthis._validationTimeout = setTimeout(() => {\n\t\t\tthis.valueState = valueState;\n\t\t\tthis._validationTimeout = null;\n\n\t\t\tcallback && callback();\n\t\t}, 2000);\n\t}\n\n\t_onTokenizerKeydown(e: KeyboardEvent) {\n\t\tconst isCtrl = !!(e.metaKey || e.ctrlKey);\n\n\t\tif (isRight(e)) {\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 ((isCtrl && [\"c\", \"x\"].includes(e.key.toLowerCase())) || isDeleteShift(e) || isInsertCtrl(e)) {\n\t\t\te.preventDefault();\n\n\t\t\tconst isCut = e.key.toLowerCase() === \"x\" || isDeleteShift(e);\n\t\t\tconst selectedTokens = this._tokenizer.tokens.filter(token => token.selected);\n\n\t\t\tif (isCut) {\n\t\t\t\tconst cutResult = this._tokenizer._fillClipboard(ClipboardDataOperation.cut, selectedTokens);\n\t\t\t\tselectedTokens.forEach(token => {\n\t\t\t\t\tthis._tokenizer.deleteToken(token);\n\t\t\t\t});\n\n\t\t\t\tthis.focus();\n\t\t\t\treturn cutResult;\n\t\t\t}\n\t\t\treturn this._tokenizer._fillClipboard(ClipboardDataOperation.copy, selectedTokens);\n\t\t}\n\n\t\tif (isCtrlV(e) || isInsertShift(e)) {\n\t\t\tthis._handlePaste();\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.items.filter(item => !item.isGroupItem);\n\t\tconst filteredItems = (Filters[this.filter] || Filters.StartsWithPerTerm)(str, itemsToFilter, \"text\");\n\n\t\t// Return the filtered items and their group items\n\t\treturn this.items.filter((item, idx, allItems) => MultiComboBox._groupItemFilter(item, ++idx, allItems, filteredItems) || filteredItems.indexOf(item) !== -1);\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 *\n\t * @private\n\t */\n\t static _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_afterOpenPicker() {\n\t\tthis._toggle();\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.allItemsPopover?.focus();\n\t\t}\n\n\t\tthis._isOpenedByKeyboard = false;\n\t}\n\n\t_toggle() {\n\t\tthis.open = !this.open;\n\t\tthis.fireEvent(\"open-change\");\n\t}\n\n\t_getSelectedItems(): Array<MultiComboBoxItem> {\n\t\t// Angular 2 way data binding\n\t\tthis.selectedValues = this.items.filter(item => item.selected);\n\t\treturn this.selectedValues as Array<MultiComboBoxItem>;\n\t}\n\n\t_listSelectionChange(e: CustomEvent<ListSelectionChangeEventDetail>) {\n\t\t// sync list items and cb items\n\t\tthis.syncItems((e.target as List).items);\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\tthis.fireSelectionChange();\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.selectionComponentPressed && !isSpace(castedEvent) && !isSpaceCtrl(castedEvent)) {\n\t\t\tthis.allItemsPopover?.close();\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\tthis.fireSelectionChange();\n\t\t\t}\n\n\t\t\tthis.fireEvent(\"input\");\n\t\t}\n\n\t\tthis.value = this.valueBeforeAutoComplete || \"\";\n\t}\n\n\tsyncItems(listItems: Array<ListItemBase>) {\n\t\tlistItems.forEach(item => {\n\t\t\tthis.items.forEach(mcbItem => {\n\t\t\t\tif (mcbItem._id === item.getAttribute(\"data-ui5-token-id\")) {\n\t\t\t\t\tmcbItem.selected = item.selected;\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\t}\n\n\tfireSelectionChange() {\n\t\tthis.fireEvent<MultiComboBoxSelectionChangeEventDetail>(\"selection-change\", { items: this._getSelectedItems() });\n\t\t// Angular 2 way data binding\n\t\tthis.fireEvent(\"value-changed\");\n\t}\n\n\tasync _getRespPopover() {\n\t\tconst staticAreaItem = await this.getStaticAreaItemDomRef();\n\t\tthis.allItemsPopover = staticAreaItem!.querySelector(`.ui5-multi-combobox-all-items-responsive-popover`)!;\n\t}\n\n\tasync _getList(): Promise<List> {\n\t\tconst staticAreaItem = await this.getStaticAreaItemDomRef();\n\t\tthis.list = staticAreaItem!.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.allItemsPopover?.showAt(this);\n\t\t}\n\n\t\tthis._showMorePressed = false;\n\t}\n\n\t_afterClosePicker() {\n\t\t// close device's keyboard and prevent further typing\n\t\tif (isPhone()) {\n\t\t\tthis.blur();\n\t\t}\n\n\t\tthis._toggle();\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._itemsBeforeOpen = this.items.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\n\t\tif (this.filterSelected) {\n\t\t\tconst selectedItems = this._filteredItems.filter(item => item.selected);\n\t\t\tthis.selectedItems = this.items.filter((item, idx, allItems) => MultiComboBox._groupItemFilter(item, ++idx, allItems, selectedItems) || selectedItems.indexOf(item) !== -1);\n\t\t}\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.items.length) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst matchingItems = this._startsWithMatchingItems(current).filter(item => !item.isGroupItem && !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.items, \"text\");\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\tthis.FormSupport = getFeature(\"FormSupport\");\n\t\tthis._inputLastValue = value;\n\n\t\tif (input && !input.value) {\n\t\t\tthis.valueBeforeAutoComplete = \"\";\n\t\t\tthis._filteredItems = this.items;\n\t\t}\n\n\t\tthis.items.forEach(item => {\n\t\t\titem._getRealDomRef = () => this.allItemsPopover!.querySelector(`*[data-ui5-stable=${item.stableDomRef}]`)!;\n\t\t});\n\n\t\tthis.tokenizerAvailable = this._getSelectedItems().length > 0;\n\t\tthis.style.setProperty(\"--_ui5-input-icons-count\", `${this.iconsCount}`);\n\n\t\tif (!input || !value) {\n\t\t\treturn;\n\t\t}\n\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() && !autoCompletedChars) {\n\t\t\tconst item = this._getFirstMatchingItem(value);\n\n\t\t\t// Keep the original typed in text intact\n\t\t\tthis.valueBeforeAutoComplete = value;\n\t\t\titem && this._handleTypeAhead(item, value);\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.items;\n\t\t}\n\t}\n\n\tasync onAfterRendering() {\n\t\tawait this._getRespPopover();\n\t\tawait this._getList();\n\n\t\tthis.toggle(this.shouldDisplayOnlyValueStateMessage);\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}\n\n\tget _isPhone() {\n\t\treturn isPhone();\n\t}\n\n\t_onIconMousedown() {\n\t\tthis._iconPressed = 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\ttoggle(isToggled: boolean) {\n\t\tif (isToggled && !this.open) {\n\t\t\tthis.openPopover();\n\t\t} else {\n\t\t\tthis.closePopover();\n\t\t}\n\t}\n\n\thandleCancel() {\n\t\tthis._itemsBeforeOpen.forEach(item => {\n\t\t\tif (item.ref instanceof MultiComboBoxItem) {\n\t\t\t\titem.ref.selected = item.selected;\n\t\t\t}\n\t\t});\n\n\t\tthis.togglePopover();\n\n\t\tthis.value = this._valueBeforeOpen;\n\t}\n\n\thandleOK() {\n\t\tif (isPhone()) {\n\t\t\tthis.fireSelectionChange();\n\t\t}\n\n\t\tthis.togglePopover();\n\t}\n\n\tasync openPopover() {\n\t\t(await this._getPopover())?.showAt(this);\n\t}\n\n\t_forwardFocusToInner() {\n\t\tthis._innerInput.focus();\n\t}\n\n\tasync closePopover() {\n\t\t(await this._getPopover())?.close();\n\t}\n\n\tasync _getPopover() {\n\t\tconst staticAreaItem = await this.getStaticAreaItemDomRef();\n\t\treturn (staticAreaItem!.querySelector<Popover>(\"[ui5-popover]\"))!;\n\t}\n\n\tasync _getResponsivePopover() {\n\t\tconst staticAreaItem = await this.getStaticAreaItemDomRef();\n\t\treturn staticAreaItem!.querySelector<ResponsivePopover>(\"[ui5-responsive-popover]\")!;\n\t}\n\n\tasync _setValueStateHeader() {\n\t\tconst responsivePopover = await 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() || this.readonly) {\n\t\t\tthis.focused = true;\n\t\t\tthis._tokenizer.expanded = true;\n\t\t} else {\n\t\t\tthis._innerInput.blur();\n\t\t}\n\n\t\tif (!isPhone() && (((e.relatedTarget as HTMLElement)?.tagName !== \"UI5-STATIC-AREA-ITEM\") || !e.relatedTarget)) {\n\t\t\tthis._innerInput.setSelectionRange(0, this.value.length);\n\t\t}\n\n\t\tthis._lastValue = this.value;\n\t\tthis.valueBeforeAutoComplete = \"\";\n\t}\n\n\tinputFocusOut(e: FocusEvent) {\n\t\tif (!this.shadowRoot!.contains(e.relatedTarget as Node) && !this._deleting) {\n\t\t\tthis.focused = false;\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.allowCustomValues && (this.staticAreaItem !== e.relatedTarget)) {\n\t\t\t\tthis.value = \"\";\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\" : \"MultiSelect\";\n\t}\n\n\tget _listItemsType() {\n\t\treturn this.readonly ? \"Inactive\" : \"Active\";\n\t}\n\n\tget hasValueState() {\n\t\treturn this.valueState !== ValueState.None;\n\t}\n\n\tget hasValueStateMessage() {\n\t\treturn this.hasValueState && this.valueState !== ValueState.Success;\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\treturn `${text}`.concat(\" \", this.valueStateMessageText.map(el => el.textContent).join(\" \"));\n\t}\n\n\tget valueStateDefaultText(): string {\n\t\tif (this.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[this.valueState];\n\t}\n\n\tget valueStateTextId() {\n\t\treturn this.hasValueState ? `ui5-multi-combobox-valueStateDesc` : undefined;\n\t}\n\n\tget valueStateMessageText() {\n\t\treturn this.getSlottedNodes(\"valueStateMessage\").map(el => el.cloneNode(true));\n\t}\n\n\tget ariaLabelText() {\n\t\treturn getEffectiveAriaLabelText(this);\n\t}\n\n\t/**\n\t * This method is relevant for sap_horizon theme only\n\t */\n\t get _valueStateMessageIcon() {\n\t\tif (this.valueState === ValueState.None) {\n\t\t\treturn \"\";\n\t\t}\n\n\t\treturn {\n\t\t\t[ValueState.Error]: \"error\",\n\t\t\t[ValueState.Warning]: \"alert\",\n\t\t\t[ValueState.Success]: \"sys-enter-2\",\n\t\t\t[ValueState.Information]: \"information\",\n\t\t}[this.valueState];\n\t}\n\n\tget _tokensCountText() {\n\t\tif (!this._tokenizer) {\n\t\t\treturn;\n\t\t}\n\t\treturn this._tokenizer._tokensCountText();\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.valueStateTextId ? `${this._tokensCountTextId} ${this.valueStateTextId}` : `${this._tokensCountTextId}`;\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;\n\t}\n\n\tget valueStateTypeMappings(): ValueStateTypeAnnouncement {\n\t\treturn {\n\t\t\t[ValueState.Success]: 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.Error]: MultiComboBox.i18nBundle.getText(VALUE_STATE_TYPE_ERROR),\n\t\t\t[ValueState.Warning]: 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.Success]: MultiComboBox.i18nBundle.getText(VALUE_STATE_SUCCESS),\n\t\t\t[ValueState.Error]: MultiComboBox.i18nBundle.getText(VALUE_STATE_ERROR),\n\t\t\t[ValueState.Warning]: 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.allItemsPopover?.opened) {\n\t\t\t\treturn this.allItemsPopover.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 _dialogOkButton() {\n\t\treturn MultiComboBox.i18nBundle.getText(MULTICOMBOBOX_DIALOG_OK_BUTTON);\n\t}\n\n\tget _tokenizerExpanded() {\n\t\tif (isPhone() || this.readonly) {\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() {\n\t\treturn this.effectiveDir !== \"rtl\" ? \"Left\" : \"Right\";\n\t}\n\n\tget iconsCount() {\n\t\tconst slottedIconsCount = this.icon?.length || 0;\n\t\tconst arrowDownIconsCount = this.readonly ? 0 : 1;\n\t\treturn slottedIconsCount + arrowDownIconsCount;\n\t}\n\n\tget classes(): ClassMap {\n\t\treturn {\n\t\t\tpopover: {\n\t\t\t\t\"ui5-multi-combobox-all-items-responsive-popover\": true,\n\t\t\t\t\"ui5-suggestions-popover\": true,\n\t\t\t\t\"ui5-suggestions-popover-with-value-state-header\": this.hasValueStateMessage,\n\t\t\t},\n\t\t\tpopoverValueState: {\n\t\t\t\t\"ui5-valuestatemessage-root\": true,\n\t\t\t\t\"ui5-valuestatemessage-header\": true,\n\t\t\t\t\"ui5-valuestatemessage--success\": this.valueState === ValueState.Success,\n\t\t\t\t\"ui5-valuestatemessage--error\": this.valueState === ValueState.Error,\n\t\t\t\t\"ui5-valuestatemessage--warning\": this.valueState === ValueState.Warning,\n\t\t\t\t\"ui5-valuestatemessage--information\": this.valueState === ValueState.Information,\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%\" : `${this._inputWidth}px`,\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\tstatic async onDefine() {\n\t\tMultiComboBox.i18nBundle = await getI18nBundle(\"@ui5/webcomponents\");\n\t}\n}\n\nMultiComboBox.define();\n\nexport default MultiComboBox;\n\nexport type {\n\tIMultiComboBoxItem,\n\tMultiComboBoxSelectionChangeEventDetail,\n};\n"]}
@@ -3,6 +3,7 @@ import Token from "./Token.js";
3
3
  import Tokenizer from "./Tokenizer.js";
4
4
  import type { TokenizerTokenDeleteEventDetail } from "./Tokenizer.js";
5
5
  import "@ui5/webcomponents-icons/dist/value-help.js";
6
+ import type { InputSuggestionItemSelectEventDetail as MultiInputSuggestionItemSelectEventDetail, InputSuggestionItemPreviewEventDetail as MultiInputSuggestionItemPreviewEventDetail } from "./Input.js";
6
7
  type MultiInputTokenDeleteEventDetail = {
7
8
  token: Token;
8
9
  };
@@ -110,4 +111,4 @@ declare class MultiInput extends Input {
110
111
  get ariaRoleDescription(): string;
111
112
  }
112
113
  export default MultiInput;
113
- export { MultiInputTokenDeleteEventDetail };
114
+ export type { MultiInputTokenDeleteEventDetail, MultiInputSuggestionItemSelectEventDetail, MultiInputSuggestionItemPreviewEventDetail, };
@@ -1 +1 @@
1
- {"version":3,"file":"MultiInput.js","sourceRoot":"","sources":["../src/MultiInput.ts"],"names":[],"mappings":"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","sourcesContent":["import 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.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport litRender from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\nimport {\n\tisShow,\n\tisBackSpace,\n\tisLeft,\n\tisRight,\n\tisRightCtrl,\n\tisHome,\n\tisEnd,\n} from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport { MULTIINPUT_ROLEDESCRIPTION_TEXT } from \"./generated/i18n/i18n-defaults.js\";\nimport Input from \"./Input.js\";\nimport MultiInputTemplate from \"./generated/templates/MultiInputTemplate.lit.js\";\nimport styles from \"./generated/themes/MultiInput.css.js\";\nimport Token from \"./Token.js\";\nimport Tokenizer, { ClipboardDataOperation } from \"./Tokenizer.js\";\nimport type { TokenizerTokenDeleteEventDetail } from \"./Tokenizer.js\";\nimport Icon from \"./Icon.js\";\nimport \"@ui5/webcomponents-icons/dist/value-help.js\";\n\ntype MultiInputTokenDeleteEventDetail = {\n\ttoken: Token;\n}\n\n/**\n * @class\n * <h3>Overview</h3>\n * A <code>ui5-multi-input</code> field allows the user to enter multiple values, which are displayed as <code>ui5-token</code>.\n *\n * User can choose interaction for creating tokens.\n * Fiori Guidelines say that user should create tokens when:\n * <ul>\n * <li>Type a value in the input and press enter or focus out the input field (<code>change</code> event is fired)</li>\n * <li>Select a value from the suggestion list (<code>suggestion-item-select</code> event is fired)</li>\n * </ul>\n *\n * <h3>ES6 Module Import</h3>\n *\n * <code>import \"@ui5/webcomponents/dist/MultiInput\";</code>\n *\n * @constructor\n * @author SAP SE\n * @alias sap.ui.webc.main.MultiInput\n * @extends sap.ui.webc.main.Input\n * @tagname ui5-multi-input\n * @appenddocs sap.ui.webc.main.Token\n * @since 1.0.0-rc.9\n * @public\n */\n@customElement({\n\ttag: \"ui5-multi-input\",\n\trenderer: litRender,\n\ttemplate: MultiInputTemplate,\n\tstyles: [Input.styles, styles],\n\tdependencies: [\n\t\t...Input.dependencies,\n\t\tTokenizer,\n\t\tToken,\n\t\tIcon,\n\t],\n})\n/**\n * Fired when the value help icon is pressed\n * and F4 or ALT/OPTION + ARROW_UP/ARROW_DOWN keyboard keys are used.\n *\n * @event sap.ui.webc.main.MultiInput#value-help-trigger\n * @public\n */\n@event(\"value-help-trigger\")\n\n/**\n * Fired when a token is about to be deleted.\n *\n * @event sap.ui.webc.main.MultiInput#token-delete\n * @param {HTMLElement} token deleted token.\n * @public\n */\n@event(\"token-delete\", {\n\tdetail: {\n\t\ttoken: { type: HTMLElement },\n\t},\n})\n\nclass MultiInput extends Input {\n\t/**\n\t * Determines whether a value help icon will be visualized in the end of the input.\n\t * Pressing the icon will fire <code>value-help-trigger</code> event.\n\t *\n\t * @type {boolean}\n\t * @name sap.ui.webc.main.MultiInput.prototype.showValueHelpIcon\n\t * @defaultvalue false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\tshowValueHelpIcon!: boolean;\n\n\t/**\n\t * Indicates whether the tokenizer is expanded or collapsed(shows the n more label)\n\t * @defaultvalue false\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\texpandedTokenizer!: boolean;\n\n\t/**\n\t * Indicates whether the tokenizer has tokens\n\t * @defaultvalue false\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\ttokenizerAvailable!: boolean;\n\n\t/**\n\t * Defines the component tokens.\n\t *\n\t * @type {sap.ui.webc.main.IToken[]}\n\t * @name sap.ui.webc.main.MultiInput.prototype.tokens\n\t * @slot tokens\n\t * @public\n\t */\n\t@slot()\n\ttokens!: Array<Token>;\n\n\t_skipOpenSuggestions: boolean;\n\t_valueHelpIconPressed: boolean;\n\n\tconstructor() {\n\t\tsuper();\n\n\t\t// Prevent suggestions' opening.\n\t\tthis._skipOpenSuggestions = false;\n\t\tthis._valueHelpIconPressed = false;\n\t}\n\n\tvalueHelpPress() {\n\t\tthis.closePopover();\n\t\tthis.fireEvent(\"value-help-trigger\");\n\t}\n\n\tshowMorePress() {\n\t\tthis.expandedTokenizer = false;\n\t\tthis.focus();\n\t}\n\n\ttokenDelete(e: CustomEvent<TokenizerTokenDeleteEventDetail>) {\n\t\tconst focusedToken = e.detail.ref;\n\t\tconst selectedTokens = this.tokens.filter(token => token.selected);\n\t\tconst shouldFocusInput = this.tokens.length - 1 === 0 || this.tokens.length === selectedTokens.length;\n\n\t\tif (this._readonly) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (focusedToken) {\n\t\t\tthis.fireEvent<MultiInputTokenDeleteEventDetail>(\"token-delete\", { token: focusedToken });\n\t\t\tif (shouldFocusInput) {\n\t\t\t\tthis.focus();\n\t\t\t}\n\n\t\t\treturn;\n\t\t}\n\n\t\tif (selectedTokens.indexOf(focusedToken) === -1) {\n\t\t\tselectedTokens.push(focusedToken);\n\t\t}\n\n\t\tselectedTokens.forEach(token => {\n\t\t\tthis.fireEvent(\"token-delete\", { token });\n\t\t});\n\t}\n\n\tvalueHelpMouseDown(e: MouseEvent) {\n\t\tconst target = e.target as Icon;\n\t\tthis.closePopover();\n\t\tthis.tokenizer.closeMorePopover();\n\t\tthis._valueHelpIconPressed = true;\n\t\ttarget.focus();\n\t}\n\n\t_tokenizerFocusOut(e: FocusEvent) {\n\t\tif (!this.contains(e.relatedTarget as HTMLElement)) {\n\t\t\tthis.tokenizer._tokens.forEach(token => { token.selected = false; });\n\t\t\tthis.tokenizer.scrollToStart();\n\t\t}\n\t}\n\n\tvalueHelpMouseUp() {\n\t\tsetTimeout(() => {\n\t\t\tthis._valueHelpIconPressed = false;\n\t\t}, 0);\n\t}\n\n\tinnerFocusIn() {\n\t\tthis.expandedTokenizer = true;\n\t\tthis.focused = true;\n\t\tthis.tokenizer.scrollToEnd();\n\t}\n\n\t_onkeydown(e: KeyboardEvent) {\n\t\tsuper._onkeydown(e);\n\n\t\tconst target = e.target as HTMLInputElement;\n\t\tconst isHomeInBeginning = isHome(e) && target.selectionStart === 0;\n\n\t\tif (isHomeInBeginning) {\n\t\t\tthis._skipOpenSuggestions = true; // Prevent input focus when navigating through the tokens\n\t\t\treturn this._focusFirstToken(e);\n\t\t}\n\n\t\tif (isLeft(e) || isBackSpace(e)) {\n\t\t\tthis._skipOpenSuggestions = true;\n\t\t\treturn this._handleLeft(e);\n\t\t}\n\n\t\tthis._skipOpenSuggestions = false;\n\n\t\tif (isShow(e)) {\n\t\t\tthis.valueHelpPress();\n\t\t}\n\t}\n\n\t_onTokenizerKeydown(e: KeyboardEvent) {\n\t\tconst rightCtrl = isRightCtrl(e);\n\t\tconst isCtrl = !!(e.metaKey || e.ctrlKey);\n\t\tconst tokens = this.tokens;\n\n\t\tif (isRight(e) || isEnd(e) || rightCtrl) {\n\t\t\te.preventDefault();\n\t\t\tconst lastTokenIndex = this.tokens.length - 1;\n\n\t\t\tif (e.target === this.tokens[lastTokenIndex] && this.tokens[lastTokenIndex] === document.activeElement) {\n\t\t\t\tsetTimeout(() => {\n\t\t\t\t\tthis.focus();\n\t\t\t\t}, 0);\n\t\t\t} else if (rightCtrl) {\n\t\t\t\te.preventDefault();\n\t\t\t\treturn this.tokenizer._handleArrowCtrl(e, e.target as Token, this.tokens, true);\n\t\t\t}\n\t\t}\n\n\t\tif (isCtrl && [\"c\", \"x\"].includes(e.key.toLowerCase())) {\n\t\t\te.preventDefault();\n\n\t\t\tconst isCut = e.key.toLowerCase() === \"x\";\n\t\t\tconst selectedTokens = tokens.filter(token => token.selected);\n\n\t\t\tif (isCut) {\n\t\t\t\tconst cutResult = this.tokenizer._fillClipboard(ClipboardDataOperation.cut, selectedTokens);\n\n\t\t\t\tselectedTokens.forEach(token => {\n\t\t\t\t\tthis.fireEvent<MultiInputTokenDeleteEventDetail>(\"token-delete\", { token });\n\t\t\t\t});\n\n\t\t\t\tthis.focus();\n\n\t\t\t\treturn cutResult;\n\t\t\t}\n\n\t\t\treturn this.tokenizer._fillClipboard(ClipboardDataOperation.copy, selectedTokens);\n\t\t}\n\t}\n\n\t_handleLeft(e: KeyboardEvent) {\n\t\tconst cursorPosition = this.getDomRef()!.querySelector(`input`)!.selectionStart;\n\t\tconst tokens = this.tokens;\n\t\tconst lastToken = tokens.length && tokens[tokens.length - 1];\n\n\t\tif (cursorPosition === 0 && lastToken) {\n\t\t\te.preventDefault();\n\t\t\tlastToken.focus();\n\t\t\tthis.tokenizer._itemNav.setCurrentItem(lastToken);\n\t\t}\n\t}\n\n\t_focusFirstToken(e: KeyboardEvent) {\n\t\tconst tokens = this.tokens;\n\t\tconst firstToken = tokens.length && tokens[0];\n\n\t\tif (firstToken) {\n\t\t\te.preventDefault();\n\n\t\t\tfirstToken.focus();\n\t\t\tthis.tokenizer._itemNav.setCurrentItem(firstToken);\n\t\t}\n\t}\n\n\t_onfocusout(e: FocusEvent) {\n\t\tsuper._onfocusout(e);\n\t\tconst relatedTarget = e.relatedTarget as HTMLElement;\n\t\tconst insideDOM = this.contains(relatedTarget);\n\t\tconst insideShadowDom = this.shadowRoot!.contains(relatedTarget);\n\n\t\tif (!insideDOM && !insideShadowDom) {\n\t\t\tthis.expandedTokenizer = false;\n\n\t\t\t// we need to reset tabindex setting by tokenizer\n\t\t\tthis.tokenizer._itemNav._currentIndex = -1;\n\t\t}\n\t}\n\n\t/**\n\t * @override\n\t */\n\tasync _onfocusin(e: FocusEvent) {\n\t\tconst inputDomRef = await this.getInputDOMRef();\n\n\t\tif (e.target === inputDomRef) {\n\t\t\tawait super._onfocusin(e);\n\t\t}\n\t}\n\n\tlastItemDeleted() {\n\t\tsetTimeout(() => {\n\t\t\tthis.focus();\n\t\t}, 0);\n\t}\n\n\tonBeforeRendering() {\n\t\tsuper.onBeforeRendering();\n\n\t\tthis.style.setProperty(\"--_ui5-input-icons-count\", `${this.iconsCount}`);\n\t\tthis.tokenizerAvailable = this.tokens && this.tokens.length > 0;\n\t}\n\n\tget iconsCount() {\n\t\treturn super.iconsCount + (this.showValueHelpIcon ? 1 : 0);\n\t}\n\n\tget tokenizer() {\n\t\treturn this.shadowRoot!.querySelector<Tokenizer>(\"[ui5-tokenizer]\")!;\n\t}\n\n\tget _tokensCountText() {\n\t\tif (!this.tokenizer) {\n\t\t\treturn;\n\t\t}\n\t\treturn this.tokenizer._tokensCountText();\n\t}\n\n\tget _tokensCountTextId() {\n\t\treturn `${this._id}-hiddenText-nMore`;\n\t}\n\n\t/**\n\t * Returns the placeholder value when there are no tokens.\n\t * @protected\n\t */\n\tget _placeholder() {\n\t\tif (this.tokenizer && this.tokenizer._tokens.length) {\n\t\t\treturn \"\";\n\t\t}\n\n\t\treturn this.placeholder;\n\t}\n\n\tget accInfo() {\n\t\tconst ariaDescribedBy = `${this._tokensCountTextId} ${this.suggestionsTextId} ${this.valueStateTextId}`.trim();\n\t\treturn {\n\t\t\t\"input\": {\n\t\t\t\t...super.accInfo.input,\n\t\t\t\t\"ariaRoledescription\": this.ariaRoleDescription,\n\t\t\t\t\"ariaDescribedBy\": ariaDescribedBy,\n\t\t\t},\n\t\t};\n\t}\n\n\tget ariaRoleDescription() {\n\t\treturn MultiInput.i18nBundle.getText(MULTIINPUT_ROLEDESCRIPTION_TEXT);\n\t}\n}\n\nMultiInput.define();\n\nexport default MultiInput;\nexport { MultiInputTokenDeleteEventDetail };\n"]}
1
+ {"version":3,"file":"MultiInput.js","sourceRoot":"","sources":["../src/MultiInput.ts"],"names":[],"mappings":"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","sourcesContent":["import 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.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport litRender from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\nimport {\n\tisShow,\n\tisBackSpace,\n\tisLeft,\n\tisRight,\n\tisRightCtrl,\n\tisHome,\n\tisEnd,\n} from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport { MULTIINPUT_ROLEDESCRIPTION_TEXT } from \"./generated/i18n/i18n-defaults.js\";\nimport Input from \"./Input.js\";\nimport MultiInputTemplate from \"./generated/templates/MultiInputTemplate.lit.js\";\nimport styles from \"./generated/themes/MultiInput.css.js\";\nimport Token from \"./Token.js\";\nimport Tokenizer, { ClipboardDataOperation } from \"./Tokenizer.js\";\nimport type { TokenizerTokenDeleteEventDetail } from \"./Tokenizer.js\";\nimport Icon from \"./Icon.js\";\nimport \"@ui5/webcomponents-icons/dist/value-help.js\";\n\nimport type {\n\tInputSuggestionItemSelectEventDetail as MultiInputSuggestionItemSelectEventDetail,\n\tInputSuggestionItemPreviewEventDetail as MultiInputSuggestionItemPreviewEventDetail,\n} from \"./Input.js\";\n\ntype MultiInputTokenDeleteEventDetail = {\n\ttoken: Token;\n}\n\n/**\n * @class\n * <h3>Overview</h3>\n * A <code>ui5-multi-input</code> field allows the user to enter multiple values, which are displayed as <code>ui5-token</code>.\n *\n * User can choose interaction for creating tokens.\n * Fiori Guidelines say that user should create tokens when:\n * <ul>\n * <li>Type a value in the input and press enter or focus out the input field (<code>change</code> event is fired)</li>\n * <li>Select a value from the suggestion list (<code>suggestion-item-select</code> event is fired)</li>\n * </ul>\n *\n * <h3>ES6 Module Import</h3>\n *\n * <code>import \"@ui5/webcomponents/dist/MultiInput\";</code>\n *\n * @constructor\n * @author SAP SE\n * @alias sap.ui.webc.main.MultiInput\n * @extends sap.ui.webc.main.Input\n * @tagname ui5-multi-input\n * @appenddocs sap.ui.webc.main.Token\n * @since 1.0.0-rc.9\n * @public\n */\n@customElement({\n\ttag: \"ui5-multi-input\",\n\trenderer: litRender,\n\ttemplate: MultiInputTemplate,\n\tstyles: [Input.styles, styles],\n\tdependencies: [\n\t\t...Input.dependencies,\n\t\tTokenizer,\n\t\tToken,\n\t\tIcon,\n\t],\n})\n/**\n * Fired when the value help icon is pressed\n * and F4 or ALT/OPTION + ARROW_UP/ARROW_DOWN keyboard keys are used.\n *\n * @event sap.ui.webc.main.MultiInput#value-help-trigger\n * @public\n */\n@event(\"value-help-trigger\")\n\n/**\n * Fired when a token is about to be deleted.\n *\n * @event sap.ui.webc.main.MultiInput#token-delete\n * @param {HTMLElement} token deleted token.\n * @public\n */\n@event(\"token-delete\", {\n\tdetail: {\n\t\ttoken: { type: HTMLElement },\n\t},\n})\n\nclass MultiInput extends Input {\n\t/**\n\t * Determines whether a value help icon will be visualized in the end of the input.\n\t * Pressing the icon will fire <code>value-help-trigger</code> event.\n\t *\n\t * @type {boolean}\n\t * @name sap.ui.webc.main.MultiInput.prototype.showValueHelpIcon\n\t * @defaultvalue false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\tshowValueHelpIcon!: boolean;\n\n\t/**\n\t * Indicates whether the tokenizer is expanded or collapsed(shows the n more label)\n\t * @defaultvalue false\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\texpandedTokenizer!: boolean;\n\n\t/**\n\t * Indicates whether the tokenizer has tokens\n\t * @defaultvalue false\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\ttokenizerAvailable!: boolean;\n\n\t/**\n\t * Defines the component tokens.\n\t *\n\t * @type {sap.ui.webc.main.IToken[]}\n\t * @name sap.ui.webc.main.MultiInput.prototype.tokens\n\t * @slot tokens\n\t * @public\n\t */\n\t@slot()\n\ttokens!: Array<Token>;\n\n\t_skipOpenSuggestions: boolean;\n\t_valueHelpIconPressed: boolean;\n\n\tconstructor() {\n\t\tsuper();\n\n\t\t// Prevent suggestions' opening.\n\t\tthis._skipOpenSuggestions = false;\n\t\tthis._valueHelpIconPressed = false;\n\t}\n\n\tvalueHelpPress() {\n\t\tthis.closePopover();\n\t\tthis.fireEvent(\"value-help-trigger\");\n\t}\n\n\tshowMorePress() {\n\t\tthis.expandedTokenizer = false;\n\t\tthis.focus();\n\t}\n\n\ttokenDelete(e: CustomEvent<TokenizerTokenDeleteEventDetail>) {\n\t\tconst focusedToken = e.detail.ref;\n\t\tconst selectedTokens = this.tokens.filter(token => token.selected);\n\t\tconst shouldFocusInput = this.tokens.length - 1 === 0 || this.tokens.length === selectedTokens.length;\n\n\t\tif (this._readonly) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (focusedToken) {\n\t\t\tthis.fireEvent<MultiInputTokenDeleteEventDetail>(\"token-delete\", { token: focusedToken });\n\t\t\tif (shouldFocusInput) {\n\t\t\t\tthis.focus();\n\t\t\t}\n\n\t\t\treturn;\n\t\t}\n\n\t\tif (selectedTokens.indexOf(focusedToken) === -1) {\n\t\t\tselectedTokens.push(focusedToken);\n\t\t}\n\n\t\tselectedTokens.forEach(token => {\n\t\t\tthis.fireEvent<MultiInputTokenDeleteEventDetail>(\"token-delete\", { token });\n\t\t});\n\t}\n\n\tvalueHelpMouseDown(e: MouseEvent) {\n\t\tconst target = e.target as Icon;\n\t\tthis.closePopover();\n\t\tthis.tokenizer.closeMorePopover();\n\t\tthis._valueHelpIconPressed = true;\n\t\ttarget.focus();\n\t}\n\n\t_tokenizerFocusOut(e: FocusEvent) {\n\t\tif (!this.contains(e.relatedTarget as HTMLElement)) {\n\t\t\tthis.tokenizer._tokens.forEach(token => { token.selected = false; });\n\t\t\tthis.tokenizer.scrollToStart();\n\t\t}\n\t}\n\n\tvalueHelpMouseUp() {\n\t\tsetTimeout(() => {\n\t\t\tthis._valueHelpIconPressed = false;\n\t\t}, 0);\n\t}\n\n\tinnerFocusIn() {\n\t\tthis.expandedTokenizer = true;\n\t\tthis.focused = true;\n\t\tthis.tokenizer.scrollToEnd();\n\t}\n\n\t_onkeydown(e: KeyboardEvent) {\n\t\tsuper._onkeydown(e);\n\n\t\tconst target = e.target as HTMLInputElement;\n\t\tconst isHomeInBeginning = isHome(e) && target.selectionStart === 0;\n\n\t\tif (isHomeInBeginning) {\n\t\t\tthis._skipOpenSuggestions = true; // Prevent input focus when navigating through the tokens\n\t\t\treturn this._focusFirstToken(e);\n\t\t}\n\n\t\tif (isLeft(e) || isBackSpace(e)) {\n\t\t\tthis._skipOpenSuggestions = true;\n\t\t\treturn this._handleLeft(e);\n\t\t}\n\n\t\tthis._skipOpenSuggestions = false;\n\n\t\tif (isShow(e)) {\n\t\t\tthis.valueHelpPress();\n\t\t}\n\t}\n\n\t_onTokenizerKeydown(e: KeyboardEvent) {\n\t\tconst rightCtrl = isRightCtrl(e);\n\t\tconst isCtrl = !!(e.metaKey || e.ctrlKey);\n\t\tconst tokens = this.tokens;\n\n\t\tif (isRight(e) || isEnd(e) || rightCtrl) {\n\t\t\te.preventDefault();\n\t\t\tconst lastTokenIndex = this.tokens.length - 1;\n\n\t\t\tif (e.target === this.tokens[lastTokenIndex] && this.tokens[lastTokenIndex] === document.activeElement) {\n\t\t\t\tsetTimeout(() => {\n\t\t\t\t\tthis.focus();\n\t\t\t\t}, 0);\n\t\t\t} else if (rightCtrl) {\n\t\t\t\te.preventDefault();\n\t\t\t\treturn this.tokenizer._handleArrowCtrl(e, e.target as Token, this.tokens, true);\n\t\t\t}\n\t\t}\n\n\t\tif (isCtrl && [\"c\", \"x\"].includes(e.key.toLowerCase())) {\n\t\t\te.preventDefault();\n\n\t\t\tconst isCut = e.key.toLowerCase() === \"x\";\n\t\t\tconst selectedTokens = tokens.filter(token => token.selected);\n\n\t\t\tif (isCut) {\n\t\t\t\tconst cutResult = this.tokenizer._fillClipboard(ClipboardDataOperation.cut, selectedTokens);\n\n\t\t\t\tselectedTokens.forEach(token => {\n\t\t\t\t\tthis.fireEvent<MultiInputTokenDeleteEventDetail>(\"token-delete\", { token });\n\t\t\t\t});\n\n\t\t\t\tthis.focus();\n\n\t\t\t\treturn cutResult;\n\t\t\t}\n\n\t\t\treturn this.tokenizer._fillClipboard(ClipboardDataOperation.copy, selectedTokens);\n\t\t}\n\t}\n\n\t_handleLeft(e: KeyboardEvent) {\n\t\tconst cursorPosition = this.getDomRef()!.querySelector(`input`)!.selectionStart;\n\t\tconst tokens = this.tokens;\n\t\tconst lastToken = tokens.length && tokens[tokens.length - 1];\n\n\t\tif (cursorPosition === 0 && lastToken) {\n\t\t\te.preventDefault();\n\t\t\tlastToken.focus();\n\t\t\tthis.tokenizer._itemNav.setCurrentItem(lastToken);\n\t\t}\n\t}\n\n\t_focusFirstToken(e: KeyboardEvent) {\n\t\tconst tokens = this.tokens;\n\t\tconst firstToken = tokens.length && tokens[0];\n\n\t\tif (firstToken) {\n\t\t\te.preventDefault();\n\n\t\t\tfirstToken.focus();\n\t\t\tthis.tokenizer._itemNav.setCurrentItem(firstToken);\n\t\t}\n\t}\n\n\t_onfocusout(e: FocusEvent) {\n\t\tsuper._onfocusout(e);\n\t\tconst relatedTarget = e.relatedTarget as HTMLElement;\n\t\tconst insideDOM = this.contains(relatedTarget);\n\t\tconst insideShadowDom = this.shadowRoot!.contains(relatedTarget);\n\n\t\tif (!insideDOM && !insideShadowDom) {\n\t\t\tthis.expandedTokenizer = false;\n\n\t\t\t// we need to reset tabindex setting by tokenizer\n\t\t\tthis.tokenizer._itemNav._currentIndex = -1;\n\t\t}\n\t}\n\n\t/**\n\t * @override\n\t */\n\tasync _onfocusin(e: FocusEvent) {\n\t\tconst inputDomRef = await this.getInputDOMRef();\n\n\t\tif (e.target === inputDomRef) {\n\t\t\tawait super._onfocusin(e);\n\t\t}\n\t}\n\n\tlastItemDeleted() {\n\t\tsetTimeout(() => {\n\t\t\tthis.focus();\n\t\t}, 0);\n\t}\n\n\tonBeforeRendering() {\n\t\tsuper.onBeforeRendering();\n\n\t\tthis.style.setProperty(\"--_ui5-input-icons-count\", `${this.iconsCount}`);\n\t\tthis.tokenizerAvailable = this.tokens && this.tokens.length > 0;\n\t}\n\n\tget iconsCount() {\n\t\treturn super.iconsCount + (this.showValueHelpIcon ? 1 : 0);\n\t}\n\n\tget tokenizer() {\n\t\treturn this.shadowRoot!.querySelector<Tokenizer>(\"[ui5-tokenizer]\")!;\n\t}\n\n\tget _tokensCountText() {\n\t\tif (!this.tokenizer) {\n\t\t\treturn;\n\t\t}\n\t\treturn this.tokenizer._tokensCountText();\n\t}\n\n\tget _tokensCountTextId() {\n\t\treturn `${this._id}-hiddenText-nMore`;\n\t}\n\n\t/**\n\t * Returns the placeholder value when there are no tokens.\n\t * @protected\n\t */\n\tget _placeholder() {\n\t\tif (this.tokenizer && this.tokenizer._tokens.length) {\n\t\t\treturn \"\";\n\t\t}\n\n\t\treturn this.placeholder;\n\t}\n\n\tget accInfo() {\n\t\tconst ariaDescribedBy = `${this._tokensCountTextId} ${this.suggestionsTextId} ${this.valueStateTextId}`.trim();\n\t\treturn {\n\t\t\t\"input\": {\n\t\t\t\t...super.accInfo.input,\n\t\t\t\t\"ariaRoledescription\": this.ariaRoleDescription,\n\t\t\t\t\"ariaDescribedBy\": ariaDescribedBy,\n\t\t\t},\n\t\t};\n\t}\n\n\tget ariaRoleDescription() {\n\t\treturn MultiInput.i18nBundle.getText(MULTIINPUT_ROLEDESCRIPTION_TEXT);\n\t}\n}\n\nMultiInput.define();\n\nexport default MultiInput;\nexport type {\n\tMultiInputTokenDeleteEventDetail,\n\tMultiInputSuggestionItemSelectEventDetail,\n\tMultiInputSuggestionItemPreviewEventDetail,\n};\n"]}
package/dist/Popover.d.ts CHANGED
@@ -1,4 +1,5 @@
1
1
  import Popup from "./Popup.js";
2
+ import type { PopupBeforeCloseEventDetail as PopoverBeforeCloseEventDetail } from "./Popup.js";
2
3
  import PopoverPlacementType from "./types/PopoverPlacementType.js";
3
4
  import PopoverVerticalAlign from "./types/PopoverVerticalAlign.js";
4
5
  import PopoverHorizontalAlign from "./types/PopoverHorizontalAlign.js";
@@ -327,3 +328,4 @@ declare class Popover extends Popup {
327
328
  declare const instanceOfPopover: (object: any) => object is Popover;
328
329
  export default Popover;
329
330
  export { instanceOfPopover };
331
+ export type { PopoverBeforeCloseEventDetail, };