@ui5/webcomponents 1.13.0 → 1.13.2

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 (326) hide show
  1. package/CHANGELOG.md +34 -2
  2. package/dist/Calendar.js +1 -3
  3. package/dist/Calendar.js.map +1 -1
  4. package/dist/DateComponentBase.d.ts +16 -1
  5. package/dist/DateComponentBase.js +30 -15
  6. package/dist/DateComponentBase.js.map +1 -1
  7. package/dist/DatePicker.js +4 -10
  8. package/dist/DatePicker.js.map +1 -1
  9. package/dist/DateRangePicker.d.ts +1 -1
  10. package/dist/DateRangePicker.js +4 -4
  11. package/dist/DateRangePicker.js.map +1 -1
  12. package/dist/DateTimePicker.js +2 -2
  13. package/dist/DateTimePicker.js.map +1 -1
  14. package/dist/MonthPicker.d.ts +2 -2
  15. package/dist/MonthPicker.js.map +1 -1
  16. package/dist/MultiComboBox.js +3 -1
  17. package/dist/MultiComboBox.js.map +1 -1
  18. package/dist/TimePicker.d.ts +1 -1
  19. package/dist/TimePicker.js +1 -1
  20. package/dist/TimePicker.js.map +1 -1
  21. package/dist/TimePickerBase.d.ts +1 -1
  22. package/dist/TimePickerBase.js +3 -3
  23. package/dist/TimePickerBase.js.map +1 -1
  24. package/dist/TimeSelection.d.ts +1 -1
  25. package/dist/TimeSelection.js +3 -3
  26. package/dist/TimeSelection.js.map +1 -1
  27. package/dist/TreeItemBase.d.ts +1 -1
  28. package/dist/TreeItemBase.js +1 -1
  29. package/dist/TreeItemBase.js.map +1 -1
  30. package/dist/api.json +1 -1
  31. package/dist/assets/{Carousel.f4a2672a.css → Carousel.a417e400.css} +1 -1
  32. package/dist/assets/ar.1041ec31.js +1 -0
  33. package/dist/assets/ar_EG.e95bec64.js +1 -0
  34. package/dist/assets/ar_SA.f148c268.js +1 -0
  35. package/dist/assets/bg.a5220db4.js +1 -0
  36. package/dist/assets/ca.e2d8c74a.js +1 -0
  37. package/dist/assets/cs.1329f2cd.js +1 -0
  38. package/dist/assets/da.8e8b0c3c.js +1 -0
  39. package/dist/assets/de.5189d32b.js +1 -0
  40. package/dist/assets/de_AT.3e48bebb.js +1 -0
  41. package/dist/assets/de_CH.92c64343.js +1 -0
  42. package/dist/assets/el.28eaca55.js +1 -0
  43. package/dist/assets/el_CY.32dcd4ff.js +1 -0
  44. package/dist/assets/en.45b4416a.js +1 -0
  45. package/dist/assets/en_AU.883bab70.js +1 -0
  46. package/dist/assets/en_GB.471ed2a3.js +1 -0
  47. package/dist/assets/en_HK.ec8572d7.js +1 -0
  48. package/dist/assets/en_IE.f777b349.js +1 -0
  49. package/dist/assets/en_IN.5a48cecf.js +1 -0
  50. package/dist/assets/en_NZ.6ccb69b4.js +1 -0
  51. package/dist/assets/en_PG.c1608957.js +1 -0
  52. package/dist/assets/en_SG.b63cc070.js +1 -0
  53. package/dist/assets/en_ZA.cd22b16a.js +1 -0
  54. package/dist/assets/es.d3f150cc.js +1 -0
  55. package/dist/assets/es_AR.927ccd27.js +1 -0
  56. package/dist/assets/es_BO.04001b79.js +1 -0
  57. package/dist/assets/es_CL.edc9b0de.js +1 -0
  58. package/dist/assets/es_CO.6281f9a6.js +1 -0
  59. package/dist/assets/es_MX.6f93b801.js +1 -0
  60. package/dist/assets/es_PE.888ff0f7.js +1 -0
  61. package/dist/assets/es_UY.ac61590e.js +1 -0
  62. package/dist/assets/es_VE.d5608918.js +1 -0
  63. package/dist/assets/et.ef445219.js +1 -0
  64. package/dist/assets/fa.9a9a21d7.js +1 -0
  65. package/dist/assets/fi.dc730063.js +1 -0
  66. package/dist/assets/fr.011a0e66.js +1 -0
  67. package/dist/assets/fr_BE.4136204b.js +1 -0
  68. package/dist/assets/fr_CA.58f92f20.js +1 -0
  69. package/dist/assets/fr_CH.b7d6ec2c.js +1 -0
  70. package/dist/assets/fr_LU.39b07855.js +1 -0
  71. package/dist/assets/he.9b41d56e.js +1 -0
  72. package/dist/assets/hi.7cb5ad1d.js +1 -0
  73. package/dist/assets/hr.2b28d0ba.js +1 -0
  74. package/dist/assets/hu.c3ac3f70.js +1 -0
  75. package/dist/assets/id.426b2421.js +1 -0
  76. package/dist/assets/it.ae39da3a.js +1 -0
  77. package/dist/assets/it_CH.a563377d.js +1 -0
  78. package/dist/assets/ja.be911ee9.js +1 -0
  79. package/dist/assets/kk.90f2ba89.js +1 -0
  80. package/dist/assets/ko.565a3e63.js +1 -0
  81. package/dist/assets/lt.a282adbc.js +1 -0
  82. package/dist/assets/lv.0e9df9cb.js +1 -0
  83. package/dist/assets/messagebundle_de.33dc33ea.js +1 -0
  84. package/dist/assets/ms.e914c13a.js +1 -0
  85. package/dist/assets/nb.1d73a460.js +1 -0
  86. package/dist/assets/nl.a680abff.js +1 -0
  87. package/dist/assets/nl_BE.a4dc5781.js +1 -0
  88. package/dist/assets/pl.c0276728.js +1 -0
  89. package/dist/assets/pt.9536023e.js +1 -0
  90. package/dist/assets/pt_PT.2736c73a.js +1 -0
  91. package/dist/assets/ro.ffce20e9.js +1 -0
  92. package/dist/assets/ru.34fce129.js +1 -0
  93. package/dist/assets/ru_UA.7b719d26.js +1 -0
  94. package/dist/assets/sk.738988a3.js +1 -0
  95. package/dist/assets/sl.82708a3f.js +1 -0
  96. package/dist/assets/sr.a69c8ac7.js +1 -0
  97. package/dist/assets/sr_Latn.ce4d0563.js +1 -0
  98. package/dist/assets/sv.86262274.js +1 -0
  99. package/dist/assets/test/pages/{ComboBox.html.cf015503.js → ComboBox.html.7a8266c1.js} +1 -1
  100. package/dist/assets/test/pages/{Icon.html.89db7569.js → Icon.html.ae37223a.js} +1 -1
  101. package/dist/assets/test/pages/{Label.html.fecdf0ce.js → Label.html.227cb1b0.js} +1 -1
  102. package/dist/assets/test/pages/{Popups.html.ab9c99cd.js → Popups.html.0c15c9f3.js} +1 -1
  103. package/dist/assets/th.8ecb41b0.js +1 -0
  104. package/dist/assets/tr.72b9d85d.js +1 -0
  105. package/dist/assets/uk.ed9211ae.js +1 -0
  106. package/dist/assets/vi.9d0fe81c.js +1 -0
  107. package/dist/assets/zh_CN.cad8f95e.js +1 -0
  108. package/dist/assets/zh_HK.6f4cdfe2.js +1 -0
  109. package/dist/assets/zh_SG.4924225d.js +1 -0
  110. package/dist/assets/zh_TW.f3327c83.js +1 -0
  111. package/dist/css/themes/Carousel.css +1 -1
  112. package/dist/css/themes/ComboBox.css +1 -1
  113. package/dist/css/themes/Input.css +1 -1
  114. package/dist/css/themes/MultiComboBox.css +1 -1
  115. package/dist/css/themes/Select.css +1 -1
  116. package/dist/generated/assets/i18n/messagebundle_de.json +1 -1
  117. package/dist/generated/templates/CarouselTemplate.lit.js +1 -1
  118. package/dist/generated/templates/CarouselTemplate.lit.js.map +1 -1
  119. package/dist/generated/themes/Carousel.css.js +1 -1
  120. package/dist/generated/themes/Carousel.css.js.map +1 -1
  121. package/dist/generated/themes/ComboBox.css.js +1 -1
  122. package/dist/generated/themes/ComboBox.css.js.map +1 -1
  123. package/dist/generated/themes/Input.css.js +1 -1
  124. package/dist/generated/themes/Input.css.js.map +1 -1
  125. package/dist/generated/themes/MultiComboBox.css.js +1 -1
  126. package/dist/generated/themes/MultiComboBox.css.js.map +1 -1
  127. package/dist/generated/themes/Select.css.js +1 -1
  128. package/dist/generated/themes/Select.css.js.map +1 -1
  129. package/dist/i18n/messagebundle_de.properties +1 -1
  130. package/dist/test/pages/72override.html +1 -1
  131. package/dist/test/pages/AnimanitionOff.html +1 -1
  132. package/dist/test/pages/Avatar.html +1 -1
  133. package/dist/test/pages/AvatarGroup.html +1 -1
  134. package/dist/test/pages/Badge.html +1 -1
  135. package/dist/test/pages/Breadcrumbs.html +1 -1
  136. package/dist/test/pages/BusyIndicator.html +1 -1
  137. package/dist/test/pages/Button.html +1 -1
  138. package/dist/test/pages/Calendar.html +6 -1
  139. package/dist/test/pages/Card.html +1 -1
  140. package/dist/test/pages/Carousel.html +33 -9
  141. package/dist/test/pages/CheckBox.html +1 -1
  142. package/dist/test/pages/ColorPalette.html +1 -1
  143. package/dist/test/pages/ColorPalettePopover.html +1 -1
  144. package/dist/test/pages/ColorPicker.html +1 -1
  145. package/dist/test/pages/ComboBox.html +2 -2
  146. package/dist/test/pages/Components.html +1 -1
  147. package/dist/test/pages/CoreControls.html +1 -1
  148. package/dist/test/pages/CoreControls_exp.html +1 -1
  149. package/dist/test/pages/CustomCSS.html +1 -1
  150. package/dist/test/pages/DatePicker.html +8 -2
  151. package/dist/test/pages/DatePicker_test_page.html +4 -1
  152. package/dist/test/pages/DateRangePicker.html +4 -1
  153. package/dist/test/pages/DateTimePicker.html +10 -1
  154. package/dist/test/pages/DateTimePicker_Timezone.html +1 -1
  155. package/dist/test/pages/DayPicker.html +1 -1
  156. package/dist/test/pages/Dialog.html +1 -1
  157. package/dist/test/pages/DialogLifecycle.html +1 -1
  158. package/dist/test/pages/DialogSemantic.html +1 -1
  159. package/dist/test/pages/Eventing.html +1 -1
  160. package/dist/test/pages/F6Test1.html +1 -1
  161. package/dist/test/pages/F6Test2.html +1 -1
  162. package/dist/test/pages/F6Test3.html +1 -1
  163. package/dist/test/pages/F6Test4.html +1 -1
  164. package/dist/test/pages/F6Test5.html +1 -1
  165. package/dist/test/pages/F6Test6.html +1 -1
  166. package/dist/test/pages/F6Test7.html +1 -1
  167. package/dist/test/pages/FileUploader.html +1 -1
  168. package/dist/test/pages/FormComponents.html +1 -1
  169. package/dist/test/pages/FormSupport.html +1 -1
  170. package/dist/test/pages/HCB.html +1 -1
  171. package/dist/test/pages/Icon.html +2 -2
  172. package/dist/test/pages/Icon_and_theming.html +1 -1
  173. package/dist/test/pages/Icon_custom.html +1 -1
  174. package/dist/test/pages/Input.html +1 -1
  175. package/dist/test/pages/InputFieldLabels.html +1 -1
  176. package/dist/test/pages/InputFieldMinWidth.html +1 -1
  177. package/dist/test/pages/InputIcons.html +1 -1
  178. package/dist/test/pages/Input_quickview.html +1 -1
  179. package/dist/test/pages/InputsAlignment.html +1 -1
  180. package/dist/test/pages/InputsLazyLoading.html +1 -1
  181. package/dist/test/pages/ItemNavigation.html +1 -1
  182. package/dist/test/pages/Kitchen.html +1 -1
  183. package/dist/test/pages/Kitchen.openui5.html +1 -1
  184. package/dist/test/pages/Label.html +2 -2
  185. package/dist/test/pages/Link.html +1 -1
  186. package/dist/test/pages/List.html +1 -1
  187. package/dist/test/pages/ListGrowing_Button.html +1 -1
  188. package/dist/test/pages/ListGrowing_Scroll.html +1 -1
  189. package/dist/test/pages/List_keyboard_support.html +1 -1
  190. package/dist/test/pages/List_test_page.html +1 -1
  191. package/dist/test/pages/LitKeyFunction.html +1 -1
  192. package/dist/test/pages/MemoryLeak.html +1 -1
  193. package/dist/test/pages/Menu.html +1 -1
  194. package/dist/test/pages/MessagePage.html +1 -1
  195. package/dist/test/pages/MessageStrip.html +1 -1
  196. package/dist/test/pages/MultiComboBox.html +1 -1
  197. package/dist/test/pages/MultiInput.html +1 -1
  198. package/dist/test/pages/MultiInput_Suggestions.html +1 -1
  199. package/dist/test/pages/OpenUI5-second.html +1 -1
  200. package/dist/test/pages/OpenUI5.html +1 -1
  201. package/dist/test/pages/Panel.html +1 -1
  202. package/dist/test/pages/Popover.html +1 -1
  203. package/dist/test/pages/PopoverArrowBounds.html +1 -1
  204. package/dist/test/pages/Popups.html +2 -2
  205. package/dist/test/pages/ProgressIndicator.html +1 -1
  206. package/dist/test/pages/RTL.html +1 -1
  207. package/dist/test/pages/RadioButton.html +1 -1
  208. package/dist/test/pages/RangeSlider.html +1 -1
  209. package/dist/test/pages/RatingIndicator.html +1 -1
  210. package/dist/test/pages/ResizeHandler.html +1 -1
  211. package/dist/test/pages/ResponsivePopover.html +1 -1
  212. package/dist/test/pages/SegmentedButton.html +1 -1
  213. package/dist/test/pages/Select.html +1 -1
  214. package/dist/test/pages/Simple.html +1 -1
  215. package/dist/test/pages/Slider.html +1 -1
  216. package/dist/test/pages/SplitButton.html +1 -1
  217. package/dist/test/pages/StepInput.html +1 -1
  218. package/dist/test/pages/Switch.html +1 -1
  219. package/dist/test/pages/TabContainer.html +1 -1
  220. package/dist/test/pages/Table-perf-pure.html +1 -1
  221. package/dist/test/pages/Table-perf.html +1 -1
  222. package/dist/test/pages/Table.html +1 -1
  223. package/dist/test/pages/Table2.html +1 -1
  224. package/dist/test/pages/TableAllPopin.html +1 -1
  225. package/dist/test/pages/TableCustomStyling.html +1 -1
  226. package/dist/test/pages/TableGrouping.html +1 -1
  227. package/dist/test/pages/TableGrowingWithButton.html +1 -1
  228. package/dist/test/pages/TableGrowingWithScroll.html +1 -1
  229. package/dist/test/pages/TableSelection.html +1 -1
  230. package/dist/test/pages/TextArea.html +1 -1
  231. package/dist/test/pages/TimePicker.html +1 -1
  232. package/dist/test/pages/TimeSelection.html +1 -1
  233. package/dist/test/pages/Title.html +1 -1
  234. package/dist/test/pages/Toast.html +1 -1
  235. package/dist/test/pages/ToggleButton.html +1 -1
  236. package/dist/test/pages/Tree.html +1 -1
  237. package/dist/test/pages/WheelSlider_Test_Page.html +1 -1
  238. package/dist/test/pages/base/AriaLabelHelper.html +1 -1
  239. package/dist/test/pages/base/DOMObserver.html +1 -1
  240. package/dist/test/pages/base/IconCollection.html +1 -1
  241. package/dist/test/pages/base/IconCollectionInCustomTheme.html +1 -1
  242. package/dist/test/pages/base/InvisibleMessage.html +1 -1
  243. package/dist/test/pages/form.html +1 -1
  244. package/dist/test/pages/i18n-defaultLang.html +1 -1
  245. package/dist/test/pages/i18n-demo.html +1 -1
  246. package/package.json +7 -7
  247. package/src/Carousel.hbs +28 -29
  248. package/src/i18n/messagebundle_de.properties +1 -1
  249. package/src/themes/Carousel.css +2 -2
  250. package/src/themes/Input.css +2 -0
  251. package/tsconfig.json +1 -2
  252. package/dist/assets/ar.0aceaa46.js +0 -1
  253. package/dist/assets/ar_EG.62a0def6.js +0 -1
  254. package/dist/assets/ar_SA.885e9d81.js +0 -1
  255. package/dist/assets/bg.af7ae3d3.js +0 -1
  256. package/dist/assets/ca.d9f9c394.js +0 -1
  257. package/dist/assets/cs.097079f5.js +0 -1
  258. package/dist/assets/da.6fa564f4.js +0 -1
  259. package/dist/assets/de.daec088c.js +0 -1
  260. package/dist/assets/de_AT.c7a2904e.js +0 -1
  261. package/dist/assets/de_CH.c06952aa.js +0 -1
  262. package/dist/assets/el.813313df.js +0 -1
  263. package/dist/assets/el_CY.014d91a7.js +0 -1
  264. package/dist/assets/en.a5c4d80e.js +0 -1
  265. package/dist/assets/en_AU.27d88f19.js +0 -1
  266. package/dist/assets/en_GB.69bad9e3.js +0 -1
  267. package/dist/assets/en_HK.4d0bf565.js +0 -1
  268. package/dist/assets/en_IE.d233cae1.js +0 -1
  269. package/dist/assets/en_IN.610eb0e2.js +0 -1
  270. package/dist/assets/en_NZ.b7cb54fa.js +0 -1
  271. package/dist/assets/en_PG.bc93b24a.js +0 -1
  272. package/dist/assets/en_SG.3ad82097.js +0 -1
  273. package/dist/assets/en_ZA.b5155ee0.js +0 -1
  274. package/dist/assets/es.a859a6c7.js +0 -1
  275. package/dist/assets/es_AR.53418237.js +0 -1
  276. package/dist/assets/es_BO.b28df27d.js +0 -1
  277. package/dist/assets/es_CL.c80fa0e1.js +0 -1
  278. package/dist/assets/es_CO.0dae4df5.js +0 -1
  279. package/dist/assets/es_MX.d1baccdc.js +0 -1
  280. package/dist/assets/es_PE.c08782b5.js +0 -1
  281. package/dist/assets/es_UY.87a72a96.js +0 -1
  282. package/dist/assets/es_VE.1bbf4414.js +0 -1
  283. package/dist/assets/et.8a55b077.js +0 -1
  284. package/dist/assets/fa.495488c9.js +0 -1
  285. package/dist/assets/fi.28bc1e37.js +0 -1
  286. package/dist/assets/fr.1cac868e.js +0 -1
  287. package/dist/assets/fr_BE.4e7e94ff.js +0 -1
  288. package/dist/assets/fr_CA.6fe2d4bb.js +0 -1
  289. package/dist/assets/fr_CH.68ccaa7e.js +0 -1
  290. package/dist/assets/fr_LU.14ceff78.js +0 -1
  291. package/dist/assets/he.a8417f75.js +0 -1
  292. package/dist/assets/hi.da74285c.js +0 -1
  293. package/dist/assets/hr.a8046a3c.js +0 -1
  294. package/dist/assets/hu.be21b738.js +0 -1
  295. package/dist/assets/id.ff756dd5.js +0 -1
  296. package/dist/assets/it.514531d3.js +0 -1
  297. package/dist/assets/it_CH.ace0ec44.js +0 -1
  298. package/dist/assets/ja.2ac0d7fc.js +0 -1
  299. package/dist/assets/kk.43ca749b.js +0 -1
  300. package/dist/assets/ko.57703acf.js +0 -1
  301. package/dist/assets/lt.c93c6948.js +0 -1
  302. package/dist/assets/lv.c3b9c645.js +0 -1
  303. package/dist/assets/messagebundle_de.07dbdade.js +0 -1
  304. package/dist/assets/ms.08e953a7.js +0 -1
  305. package/dist/assets/nb.698f666f.js +0 -1
  306. package/dist/assets/nl.86aba7ce.js +0 -1
  307. package/dist/assets/nl_BE.aeb4d527.js +0 -1
  308. package/dist/assets/pl.4a63f4da.js +0 -1
  309. package/dist/assets/pt.70d82dc5.js +0 -1
  310. package/dist/assets/pt_PT.d4b085f1.js +0 -1
  311. package/dist/assets/ro.9d6cc2d1.js +0 -1
  312. package/dist/assets/ru.f66b88b7.js +0 -1
  313. package/dist/assets/ru_UA.17aba7d7.js +0 -1
  314. package/dist/assets/sk.04703e35.js +0 -1
  315. package/dist/assets/sl.86740f8b.js +0 -1
  316. package/dist/assets/sr.63a13073.js +0 -1
  317. package/dist/assets/sr_Latn.5759744e.js +0 -1
  318. package/dist/assets/sv.22dda50f.js +0 -1
  319. package/dist/assets/th.05fcc17c.js +0 -1
  320. package/dist/assets/tr.98dc6dfd.js +0 -1
  321. package/dist/assets/uk.9824204c.js +0 -1
  322. package/dist/assets/vi.b72792c6.js +0 -1
  323. package/dist/assets/zh_CN.ef0ec92a.js +0 -1
  324. package/dist/assets/zh_HK.1fe7830a.js +0 -1
  325. package/dist/assets/zh_SG.6c8275a7.js +0 -1
  326. package/dist/assets/zh_TW.7b1013aa.js +0 -1
@@ -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 {string}\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\titem.ref.selected = item.selected;\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 { 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 {string}\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,4 +1,4 @@
1
- /// <reference types="openui5" resolution-mode="require"/>
1
+ /// <reference types="openui5" />
2
2
  import TimePickerBase from "./TimePickerBase.js";
3
3
  /**
4
4
  * @class
@@ -99,7 +99,7 @@ let TimePicker = TimePicker_1 = class TimePicker extends TimePickerBase {
99
99
  * @name sap.ui.webc.main.TimePicker.prototype.dateValue
100
100
  */
101
101
  get dateValue() {
102
- return this.getFormat().parse(this._effectiveValue, undefined, undefined);
102
+ return this.getFormat().parse(this._effectiveValue);
103
103
  }
104
104
  get accInfo() {
105
105
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"TimePicker.js","sourceRoot":"","sources":["../src/TimePicker.ts"],"names":[],"mappings":";;;;;;;AAAA,OAAO,SAAS,MAAM,kDAAkD,CAAC;AACzE,OAAO,2BAA2B,MAAM,qEAAqE,CAAC;AAC9G,OAAO,QAAQ,MAAM,qDAAqD,CAAC;AAC3E,OAAO,aAAa,MAAM,0DAA0D,CAAC;AACrF,OAAO,cAAc,MAAM,qBAAqB,CAAC;AAEjD,OAAO,EACN,4BAA4B,GAC5B,MAAM,mCAAmC,CAAC;AAE3C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgEG;AAEH,IAAM,UAAU,kBAAhB,MAAM,UAAW,SAAQ,cAAc;IAiCtC,IAAI,cAAc;QACjB,MAAM,QAAQ,GAAG,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAClD,MAAM,QAAQ,GAAG,CAAC,IAAI,CAAC,aAAa,IAAI,CAAC,QAAQ,CAAC;QAElD,MAAM,UAAU,GAAG,2BAA2B,CAAC,SAAS,EAAE,CAAC,CAAC;QAC5D,OAAO,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC;IAC5E,CAAC;IAED,IAAI,cAAc;QACjB,2DAA2D;QAC3D,OAAO,IAAI,CAAC,SAAS,EAAE,CAAC,cAAc,CAAC,OAAiB,CAAC;IAC1D,CAAC;IAED,IAAI,YAAY;QACf,OAAO,IAAI,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC;IAChF,CAAC;IAED;;;;;;;OAOG;IACH,IAAI,SAAS;QACZ,OAAO,IAAI,CAAC,SAAS,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,eAAyB,EAAE,SAA+B,EAAE,SAA+B,CAAC,CAAC;IACjI,CAAC;IAED,IAAI,OAAO;QACV,OAAO;YACN,qBAAqB,EAAE,IAAI,CAAC,mBAAmB;YAC/C,cAAc,EAAE,QAAQ;YACxB,kBAAkB,EAAE,MAAM;YAC1B,cAAc,EAAE,GAAG,IAAI,CAAC,GAAG,qBAAqB;SAChD,CAAC;IACH,CAAC;IAED,IAAI,mBAAmB;QACtB,OAAO,YAAU,CAAC,UAAU,CAAC,OAAO,CAAC,4BAA4B,CAAC,CAAC;IACpE,CAAC;CACD,CAAA;AA3DA;IADC,QAAQ,CAAC,EAAE,YAAY,EAAE,SAAS,EAAE,CAAC;+CACjB;AAgBrB;IADC,QAAQ,EAAE;iDACY;AA/BlB,UAAU;IADf,aAAa,CAAC,iBAAiB,CAAC;GAC3B,UAAU,CA0Ef;AAED,UAAU,CAAC,MAAM,EAAE,CAAC;AAEpB,eAAe,UAAU,CAAC","sourcesContent":["import getLocale from \"@ui5/webcomponents-base/dist/locale/getLocale.js\";\nimport getCachedLocaleDataInstance from \"@ui5/webcomponents-localization/dist/getCachedLocaleDataInstance.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport TimePickerBase from \"./TimePickerBase.js\";\n\nimport {\n\tTIMEPICKER_INPUT_DESCRIPTION,\n} from \"./generated/i18n/i18n-defaults.js\";\n\n/**\n * @class\n *\n * <h3 class=\"comment-api-title\">Overview</h3>\n * The <code>ui5-time-picker</code> component provides an input field with assigned sliders which are opened on user action.\n * The <code>ui5-time-picker</code> allows users to select a localized time using touch,\n * mouse, or keyboard input. It consists of two parts: the time input field and the\n * sliders.\n *\n * <h3>Usage</h3>\n * The user can enter a time by:\n * <ul>\n * <li>Using the sliders that are displayed in a popup</li>\n * <li>Typing it in directly in the input field</li>\n * </ul>\n * <br><br>\n * When the user makes an entry and chooses the enter key, the sliders shows the corresponding time.\n * When the user directly triggers the sliders display, the actual time is displayed.\n * For the <code>ui5-time-picker</code>\n *\n * <h3>Formatting</h3>\n *\n * If a time is entered by typing it into\n * the input field, it must fit to the used time format.\n * <br><br>\n * Supported format options are pattern-based on Unicode LDML Date Format notation.\n * For more information, see <ui5-link target=\"_blank\" href=\"http://unicode.org/reports/tr35/#Date_Field_Symbol_Table\">UTS #35: Unicode Locale Data Markup Language</ui5-link>.\n * <br><br>\n * For example, if the <code>format-pattern</code> is \"HH:mm:ss\",\n * a valid value string is \"11:42:35\" and the same is displayed in the input.\n *\n * <h3>Keyboard handling</h3>\n * [F4], [ALT]+[UP], [ALT]+[DOWN] Open/Close picker dialog and move focus to it.\n * <br>\n * When closed:\n * <ul>\n * <li>[PAGEUP] - Increments hours by 1. If 12 am is reached, increment hours to 1 pm and vice versa.</li>\n * <li>[PAGEDOWN] - Decrements the corresponding field by 1. If 1 pm is reached, decrement hours to 12 am and vice versa.</li>\n * <li>[SHIFT]+[PAGEUP] Increments minutes by 1.</li>\n * <li>[SHIFT]+ [PAGEDOWN] Decrements minutes by 1.</li>\n * <li>[SHIFT]+[CTRL]+[PAGEUP] Increments seconds by 1.</li>\n * <li>[SHIFT]+[CTRL]+ [PAGEDOWN] Decrements seconds by 1.</li>\n * </ul>\n * When opened:\n * <ul>\n * <li>[UP] If focus is on one of the selection lists: Select the value which is above the current value. If the first value is selected, select the last value in the list. Exception: AM/ PM List: stay on the first item.</li>\n * <li>[DOWN] If focus is on one of the selection lists: Select the value which is below the current value. If the last value is selected, select the first value in the list. Exception: AM/ PM List: stay on the last item.</li>\n * <li>[LEFT] If focus is on one of the selection lists: Move focus to the selection list which is left of the current selection list. If focus is at the first selection list, move focus to the last selection list.</li>\n * <li>[RIGHT] If focus is on one of the selection lists: Move focus to the selection list which is right of the current selection list. When focus is at the last selection list, move focus to the first selection list.</li>\n * <li>[PAGEUP] If focus is on one of the selection lists: Move focus to the first entry of this list.</li>\n * <li>[PAGEDOWN] If focus is on one of the selection lists: Move focus to the last entry of this list.</li>\n * </ul>\n *\n * <h3>ES6 Module Import</h3>\n *\n * <code>import \"@ui5/webcomponents/dist/TimePicker.js\";</code>\n *\n * @constructor\n * @author SAP SE\n * @alias sap.ui.webc.main.TimePicker\n * @extends sap.ui.webc.main.TimePickerBase\n * @tagname ui5-time-picker\n * @public\n * @since 1.0.0-rc.6\n */\n@customElement(\"ui5-time-picker\")\nclass TimePicker extends TimePickerBase {\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 *\n\t * <br><br>\n\t * <b>Note:</b> When no placeholder is set, the format pattern is displayed as a placeholder.\n\t * Passing an empty string as the value of this property will make the component appear empty - without placeholder or format pattern.\n\t *\n\t * @type {string}\n\t * @name sap.ui.webc.main.TimePicker.prototype.placeholder\n\t * @defaultvalue undefined\n\t * @public\n\t */\n\t@property({ defaultValue: undefined })\n\tplaceholder?: string;\n\n\t/**\n\t * Determines the format, displayed in the input field.\n\t *\n\t * Example:\n\t * HH:mm:ss -> 11:42:35\n\t * hh:mm:ss a -> 2:23:15 PM\n\t * mm:ss -> 12:04 (only minutes and seconds)\n\t *\n\t * @type {string}\n\t * @name sap.ui.webc.main.TimePicker.prototype.formatPattern\n\t * @defaultvalue \"\"\n\t * @public\n\t */\n\t@property()\n\tformatPattern!: string;\n\n\tget _formatPattern() {\n\t\tconst hasHours = !!this.formatPattern.match(/H/i);\n\t\tconst fallback = !this.formatPattern || !hasHours;\n\n\t\tconst localeData = getCachedLocaleDataInstance(getLocale());\n\t\treturn fallback ? localeData.getTimePattern(\"medium\") : this.formatPattern;\n\t}\n\n\tget _displayFormat() {\n\t\t// @ts-ignore oFormatOptions is a private API of DateFormat\n\t\treturn this.getFormat().oFormatOptions.pattern as string;\n\t}\n\n\tget _placeholder() {\n\t\treturn this.placeholder !== undefined ? this.placeholder : this._displayFormat;\n\t}\n\n\t/**\n\t * Currently selected time represented as JavaScript Date instance\n\t *\n\t * @readonly\n\t * @type {Date}\n\t * @public\n\t * @name sap.ui.webc.main.TimePicker.prototype.dateValue\n\t */\n\tget dateValue() {\n\t\treturn this.getFormat().parse(this._effectiveValue as string, undefined as unknown as boolean, undefined as unknown as boolean);\n\t}\n\n\tget accInfo() {\n\t\treturn {\n\t\t\t\"ariaRoledescription\": this.dateAriaDescription,\n\t\t\t\"ariaHasPopup\": \"dialog\",\n\t\t\t\"ariaAutoComplete\": \"none\",\n\t\t\t\"ariaControls\": `${this._id}-responsive-popover`,\n\t\t};\n\t}\n\n\tget dateAriaDescription() {\n\t\treturn TimePicker.i18nBundle.getText(TIMEPICKER_INPUT_DESCRIPTION);\n\t}\n}\n\nTimePicker.define();\n\nexport default TimePicker;\n"]}
1
+ {"version":3,"file":"TimePicker.js","sourceRoot":"","sources":["../src/TimePicker.ts"],"names":[],"mappings":";;;;;;;AAAA,OAAO,SAAS,MAAM,kDAAkD,CAAC;AACzE,OAAO,2BAA2B,MAAM,qEAAqE,CAAC;AAC9G,OAAO,QAAQ,MAAM,qDAAqD,CAAC;AAC3E,OAAO,aAAa,MAAM,0DAA0D,CAAC;AACrF,OAAO,cAAc,MAAM,qBAAqB,CAAC;AAEjD,OAAO,EACN,4BAA4B,GAC5B,MAAM,mCAAmC,CAAC;AAE3C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgEG;AAEH,IAAM,UAAU,kBAAhB,MAAM,UAAW,SAAQ,cAAc;IAiCtC,IAAI,cAAc;QACjB,MAAM,QAAQ,GAAG,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAClD,MAAM,QAAQ,GAAG,CAAC,IAAI,CAAC,aAAa,IAAI,CAAC,QAAQ,CAAC;QAElD,MAAM,UAAU,GAAG,2BAA2B,CAAC,SAAS,EAAE,CAAC,CAAC;QAC5D,OAAO,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC;IAC5E,CAAC;IAED,IAAI,cAAc;QACjB,2DAA2D;QAC3D,OAAO,IAAI,CAAC,SAAS,EAAE,CAAC,cAAc,CAAC,OAAiB,CAAC;IAC1D,CAAC;IAED,IAAI,YAAY;QACf,OAAO,IAAI,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC;IAChF,CAAC;IAED;;;;;;;OAOG;IACH,IAAI,SAAS;QACZ,OAAO,IAAI,CAAC,SAAS,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,eAAyB,CAAC,CAAC;IAC/D,CAAC;IAED,IAAI,OAAO;QACV,OAAO;YACN,qBAAqB,EAAE,IAAI,CAAC,mBAAmB;YAC/C,cAAc,EAAE,QAAQ;YACxB,kBAAkB,EAAE,MAAM;YAC1B,cAAc,EAAE,GAAG,IAAI,CAAC,GAAG,qBAAqB;SAChD,CAAC;IACH,CAAC;IAED,IAAI,mBAAmB;QACtB,OAAO,YAAU,CAAC,UAAU,CAAC,OAAO,CAAC,4BAA4B,CAAC,CAAC;IACpE,CAAC;CACD,CAAA;AA3DA;IADC,QAAQ,CAAC,EAAE,YAAY,EAAE,SAAS,EAAE,CAAC;+CACjB;AAgBrB;IADC,QAAQ,EAAE;iDACY;AA/BlB,UAAU;IADf,aAAa,CAAC,iBAAiB,CAAC;GAC3B,UAAU,CA0Ef;AAED,UAAU,CAAC,MAAM,EAAE,CAAC;AAEpB,eAAe,UAAU,CAAC","sourcesContent":["import getLocale from \"@ui5/webcomponents-base/dist/locale/getLocale.js\";\nimport getCachedLocaleDataInstance from \"@ui5/webcomponents-localization/dist/getCachedLocaleDataInstance.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport TimePickerBase from \"./TimePickerBase.js\";\n\nimport {\n\tTIMEPICKER_INPUT_DESCRIPTION,\n} from \"./generated/i18n/i18n-defaults.js\";\n\n/**\n * @class\n *\n * <h3 class=\"comment-api-title\">Overview</h3>\n * The <code>ui5-time-picker</code> component provides an input field with assigned sliders which are opened on user action.\n * The <code>ui5-time-picker</code> allows users to select a localized time using touch,\n * mouse, or keyboard input. It consists of two parts: the time input field and the\n * sliders.\n *\n * <h3>Usage</h3>\n * The user can enter a time by:\n * <ul>\n * <li>Using the sliders that are displayed in a popup</li>\n * <li>Typing it in directly in the input field</li>\n * </ul>\n * <br><br>\n * When the user makes an entry and chooses the enter key, the sliders shows the corresponding time.\n * When the user directly triggers the sliders display, the actual time is displayed.\n * For the <code>ui5-time-picker</code>\n *\n * <h3>Formatting</h3>\n *\n * If a time is entered by typing it into\n * the input field, it must fit to the used time format.\n * <br><br>\n * Supported format options are pattern-based on Unicode LDML Date Format notation.\n * For more information, see <ui5-link target=\"_blank\" href=\"http://unicode.org/reports/tr35/#Date_Field_Symbol_Table\">UTS #35: Unicode Locale Data Markup Language</ui5-link>.\n * <br><br>\n * For example, if the <code>format-pattern</code> is \"HH:mm:ss\",\n * a valid value string is \"11:42:35\" and the same is displayed in the input.\n *\n * <h3>Keyboard handling</h3>\n * [F4], [ALT]+[UP], [ALT]+[DOWN] Open/Close picker dialog and move focus to it.\n * <br>\n * When closed:\n * <ul>\n * <li>[PAGEUP] - Increments hours by 1. If 12 am is reached, increment hours to 1 pm and vice versa.</li>\n * <li>[PAGEDOWN] - Decrements the corresponding field by 1. If 1 pm is reached, decrement hours to 12 am and vice versa.</li>\n * <li>[SHIFT]+[PAGEUP] Increments minutes by 1.</li>\n * <li>[SHIFT]+ [PAGEDOWN] Decrements minutes by 1.</li>\n * <li>[SHIFT]+[CTRL]+[PAGEUP] Increments seconds by 1.</li>\n * <li>[SHIFT]+[CTRL]+ [PAGEDOWN] Decrements seconds by 1.</li>\n * </ul>\n * When opened:\n * <ul>\n * <li>[UP] If focus is on one of the selection lists: Select the value which is above the current value. If the first value is selected, select the last value in the list. Exception: AM/ PM List: stay on the first item.</li>\n * <li>[DOWN] If focus is on one of the selection lists: Select the value which is below the current value. If the last value is selected, select the first value in the list. Exception: AM/ PM List: stay on the last item.</li>\n * <li>[LEFT] If focus is on one of the selection lists: Move focus to the selection list which is left of the current selection list. If focus is at the first selection list, move focus to the last selection list.</li>\n * <li>[RIGHT] If focus is on one of the selection lists: Move focus to the selection list which is right of the current selection list. When focus is at the last selection list, move focus to the first selection list.</li>\n * <li>[PAGEUP] If focus is on one of the selection lists: Move focus to the first entry of this list.</li>\n * <li>[PAGEDOWN] If focus is on one of the selection lists: Move focus to the last entry of this list.</li>\n * </ul>\n *\n * <h3>ES6 Module Import</h3>\n *\n * <code>import \"@ui5/webcomponents/dist/TimePicker.js\";</code>\n *\n * @constructor\n * @author SAP SE\n * @alias sap.ui.webc.main.TimePicker\n * @extends sap.ui.webc.main.TimePickerBase\n * @tagname ui5-time-picker\n * @public\n * @since 1.0.0-rc.6\n */\n@customElement(\"ui5-time-picker\")\nclass TimePicker extends TimePickerBase {\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 *\n\t * <br><br>\n\t * <b>Note:</b> When no placeholder is set, the format pattern is displayed as a placeholder.\n\t * Passing an empty string as the value of this property will make the component appear empty - without placeholder or format pattern.\n\t *\n\t * @type {string}\n\t * @name sap.ui.webc.main.TimePicker.prototype.placeholder\n\t * @defaultvalue undefined\n\t * @public\n\t */\n\t@property({ defaultValue: undefined })\n\tplaceholder?: string;\n\n\t/**\n\t * Determines the format, displayed in the input field.\n\t *\n\t * Example:\n\t * HH:mm:ss -> 11:42:35\n\t * hh:mm:ss a -> 2:23:15 PM\n\t * mm:ss -> 12:04 (only minutes and seconds)\n\t *\n\t * @type {string}\n\t * @name sap.ui.webc.main.TimePicker.prototype.formatPattern\n\t * @defaultvalue \"\"\n\t * @public\n\t */\n\t@property()\n\tformatPattern!: string;\n\n\tget _formatPattern() {\n\t\tconst hasHours = !!this.formatPattern.match(/H/i);\n\t\tconst fallback = !this.formatPattern || !hasHours;\n\n\t\tconst localeData = getCachedLocaleDataInstance(getLocale());\n\t\treturn fallback ? localeData.getTimePattern(\"medium\") : this.formatPattern;\n\t}\n\n\tget _displayFormat() {\n\t\t// @ts-ignore oFormatOptions is a private API of DateFormat\n\t\treturn this.getFormat().oFormatOptions.pattern as string;\n\t}\n\n\tget _placeholder() {\n\t\treturn this.placeholder !== undefined ? this.placeholder : this._displayFormat;\n\t}\n\n\t/**\n\t * Currently selected time represented as JavaScript Date instance\n\t *\n\t * @readonly\n\t * @type {Date}\n\t * @public\n\t * @name sap.ui.webc.main.TimePicker.prototype.dateValue\n\t */\n\tget dateValue() {\n\t\treturn this.getFormat().parse(this._effectiveValue as string);\n\t}\n\n\tget accInfo() {\n\t\treturn {\n\t\t\t\"ariaRoledescription\": this.dateAriaDescription,\n\t\t\t\"ariaHasPopup\": \"dialog\",\n\t\t\t\"ariaAutoComplete\": \"none\",\n\t\t\t\"ariaControls\": `${this._id}-responsive-popover`,\n\t\t};\n\t}\n\n\tget dateAriaDescription() {\n\t\treturn TimePicker.i18nBundle.getText(TIMEPICKER_INPUT_DESCRIPTION);\n\t}\n}\n\nTimePicker.define();\n\nexport default TimePicker;\n"]}
@@ -1,4 +1,4 @@
1
- /// <reference types="openui5" resolution-mode="require"/>
1
+ /// <reference types="openui5" />
2
2
  import UI5Element from "@ui5/webcomponents-base/dist/UI5Element.js";
3
3
  import type I18nBundle from "@ui5/webcomponents-base/dist/i18nBundle.js";
4
4
  import ValueState from "@ui5/webcomponents-base/dist/types/ValueState.js";
@@ -263,16 +263,16 @@ let TimePickerBase = TimePickerBase_1 = class TimePickerBase extends UI5Element
263
263
  if (value === "") {
264
264
  return true;
265
265
  }
266
- return !!this.getFormat().parse(value, undefined, undefined);
266
+ return !!this.getFormat().parse(value);
267
267
  }
268
268
  normalizeValue(value) {
269
269
  if (value === "") {
270
270
  return value;
271
271
  }
272
- return this.getFormat().format(this.getFormat().parse(value, undefined, undefined));
272
+ return this.getFormat().format(this.getFormat().parse(value));
273
273
  }
274
274
  _modifyValueBy(amount, unit) {
275
- const date = this.getFormat().parse(this._effectiveValue, undefined, undefined);
275
+ const date = this.getFormat().parse(this._effectiveValue);
276
276
  if (!date) {
277
277
  return;
278
278
  }