@ui5/webcomponents 0.0.0-8e1845415 → 0.0.0-90f690396

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 (926) hide show
  1. package/.eslintrc.cjs +3 -0
  2. package/.npsrc.json +3 -0
  3. package/CHANGELOG.md +61 -0
  4. package/config/wdio.conf.cjs +13 -0
  5. package/dist/Assets-static.js.map +1 -1
  6. package/dist/Assets.js.map +1 -1
  7. package/dist/Avatar.d.ts +3 -1
  8. package/dist/Avatar.js.map +1 -1
  9. package/dist/AvatarGroup.js.map +1 -1
  10. package/dist/Badge.js.map +1 -1
  11. package/dist/Breadcrumbs.js.map +1 -1
  12. package/dist/BreadcrumbsItem.js.map +1 -1
  13. package/dist/BusyIndicator.js.map +1 -1
  14. package/dist/Button.d.ts +8 -3
  15. package/dist/Button.js +7 -2
  16. package/dist/Button.js.map +1 -1
  17. package/dist/Calendar.js.map +1 -1
  18. package/dist/CalendarDate.js.map +1 -1
  19. package/dist/CalendarHeader.js.map +1 -1
  20. package/dist/CalendarPart.js +4 -1
  21. package/dist/CalendarPart.js.map +1 -1
  22. package/dist/Card.js.map +1 -1
  23. package/dist/CardHeader.js.map +1 -1
  24. package/dist/Carousel.js.map +1 -1
  25. package/dist/CheckBox.js.map +1 -1
  26. package/dist/ColorPalette.js.map +1 -1
  27. package/dist/ColorPaletteItem.js.map +1 -1
  28. package/dist/ColorPalettePopover.js.map +1 -1
  29. package/dist/ColorPicker.js.map +1 -1
  30. package/dist/ComboBox.js.map +1 -1
  31. package/dist/ComboBoxGroupItem.js.map +1 -1
  32. package/dist/ComboBoxItem.js.map +1 -1
  33. package/dist/CustomListItem.js.map +1 -1
  34. package/dist/DateComponentBase.js.map +1 -1
  35. package/dist/DatePicker.d.ts +2 -2
  36. package/dist/DatePicker.js +11 -8
  37. package/dist/DatePicker.js.map +1 -1
  38. package/dist/DateRangePicker.js.map +1 -1
  39. package/dist/DateTimePicker.d.ts +1 -1
  40. package/dist/DateTimePicker.js +1 -1
  41. package/dist/DateTimePicker.js.map +1 -1
  42. package/dist/DayPicker.js.map +1 -1
  43. package/dist/Dialog.js.map +1 -1
  44. package/dist/FileUploader.js.map +1 -1
  45. package/dist/Filters.js.map +1 -1
  46. package/dist/GroupHeaderListItem.js.map +1 -1
  47. package/dist/Icon.d.ts +10 -10
  48. package/dist/Icon.js +7 -7
  49. package/dist/Icon.js.map +1 -1
  50. package/dist/Input.d.ts +2 -1
  51. package/dist/Input.js +30 -16
  52. package/dist/Input.js.map +1 -1
  53. package/dist/Interfaces.js.map +1 -1
  54. package/dist/Label.js.map +1 -1
  55. package/dist/Link.js.map +1 -1
  56. package/dist/List.js.map +1 -1
  57. package/dist/ListItem.js.map +1 -1
  58. package/dist/ListItemBase.d.ts +1 -1
  59. package/dist/ListItemBase.js +4 -7
  60. package/dist/ListItemBase.js.map +1 -1
  61. package/dist/Menu.js.map +1 -1
  62. package/dist/MenuItem.d.ts +1 -1
  63. package/dist/MenuItem.js.map +1 -1
  64. package/dist/MessageStrip.d.ts +1 -1
  65. package/dist/MessageStrip.js.map +1 -1
  66. package/dist/MonthPicker.js.map +1 -1
  67. package/dist/MultiComboBox.js +1 -0
  68. package/dist/MultiComboBox.js.map +1 -1
  69. package/dist/MultiComboBoxGroupItem.js.map +1 -1
  70. package/dist/MultiComboBoxItem.js.map +1 -1
  71. package/dist/MultiInput.js.map +1 -1
  72. package/dist/Option.d.ts +1 -1
  73. package/dist/Option.js.map +1 -1
  74. package/dist/Panel.js.map +1 -1
  75. package/dist/Popover.d.ts +1 -0
  76. package/dist/Popover.js +18 -6
  77. package/dist/Popover.js.map +1 -1
  78. package/dist/Popup.js.map +1 -1
  79. package/dist/ProgressIndicator.js.map +1 -1
  80. package/dist/RadioButton.js.map +1 -1
  81. package/dist/RadioButtonGroup.js.map +1 -1
  82. package/dist/RangeSlider.js.map +1 -1
  83. package/dist/RatingIndicator.js.map +1 -1
  84. package/dist/ResponsivePopover.js.map +1 -1
  85. package/dist/SegmentedButton.js.map +1 -1
  86. package/dist/SegmentedButtonItem.js.map +1 -1
  87. package/dist/Select.js +1 -0
  88. package/dist/Select.js.map +1 -1
  89. package/dist/Slider.js.map +1 -1
  90. package/dist/SliderBase.js.map +1 -1
  91. package/dist/SplitButton.d.ts +2 -1
  92. package/dist/SplitButton.js +3 -0
  93. package/dist/SplitButton.js.map +1 -1
  94. package/dist/StandardListItem.d.ts +1 -1
  95. package/dist/StandardListItem.js.map +1 -1
  96. package/dist/StepInput.js.map +1 -1
  97. package/dist/SuggestionGroupItem.js.map +1 -1
  98. package/dist/SuggestionItem.d.ts +1 -1
  99. package/dist/SuggestionItem.js.map +1 -1
  100. package/dist/SuggestionListItem.js.map +1 -1
  101. package/dist/Switch.js.map +1 -1
  102. package/dist/Tab.d.ts +1 -1
  103. package/dist/Tab.js.map +1 -1
  104. package/dist/TabContainer.js.map +1 -1
  105. package/dist/TabSeparator.js.map +1 -1
  106. package/dist/Table.d.ts +1 -1
  107. package/dist/Table.js +1 -1
  108. package/dist/Table.js.map +1 -1
  109. package/dist/TableCell.js.map +1 -1
  110. package/dist/TableColumn.js.map +1 -1
  111. package/dist/TableGroupRow.js.map +1 -1
  112. package/dist/TableRow.js.map +1 -1
  113. package/dist/TextArea.js.map +1 -1
  114. package/dist/TimePicker.d.ts +3 -2
  115. package/dist/TimePicker.js +1 -1
  116. package/dist/TimePicker.js.map +1 -1
  117. package/dist/TimePickerBase.d.ts +1 -1
  118. package/dist/TimePickerBase.js +2 -2
  119. package/dist/TimePickerBase.js.map +1 -1
  120. package/dist/TimeSelection.d.ts +2 -1
  121. package/dist/TimeSelection.js.map +1 -1
  122. package/dist/Title.js.map +1 -1
  123. package/dist/Toast.js.map +1 -1
  124. package/dist/ToggleButton.js.map +1 -1
  125. package/dist/Token.js.map +1 -1
  126. package/dist/Tokenizer.js.map +1 -1
  127. package/dist/Tree.js.map +1 -1
  128. package/dist/TreeItem.js.map +1 -1
  129. package/dist/TreeItemBase.js.map +1 -1
  130. package/dist/TreeItemCustom.d.ts +1 -1
  131. package/dist/TreeItemCustom.js +1 -1
  132. package/dist/TreeItemCustom.js.map +1 -1
  133. package/dist/TreeList.js.map +1 -1
  134. package/dist/WheelSlider.js.map +1 -1
  135. package/dist/YearPicker.js.map +1 -1
  136. package/dist/api.json +1 -1
  137. package/dist/assets/IconCollectionInCustomTheme.91b08a2b.css +1 -0
  138. package/dist/assets/Popover.366b9193.css +1 -0
  139. package/dist/assets/{SAP-icons-TNT.91a61c6d.js → SAP-icons-TNT.198a2fb9.js} +1 -1
  140. package/dist/assets/SAP-icons-TNT.1a9c4736.js +1 -0
  141. package/dist/assets/SAP-icons-business-suite.0589a2e2.js +1 -0
  142. package/dist/assets/SAP-icons-business-suite.cabfcb50.js +1 -0
  143. package/dist/assets/SAP-icons.94515297.js +1 -0
  144. package/dist/assets/SAP-icons.e7342524.js +1 -0
  145. package/dist/assets/ar.79bcdac6.js +1 -0
  146. package/dist/assets/ar_EG.317b7da4.js +1 -0
  147. package/dist/assets/ar_SA.47fa752a.js +1 -0
  148. package/dist/assets/bg.9fa59b57.js +1 -0
  149. package/dist/assets/ca.33231602.js +1 -0
  150. package/dist/assets/cs.c6834326.js +1 -0
  151. package/dist/assets/da.7d6c5c63.js +1 -0
  152. package/dist/assets/de.034ba268.js +1 -0
  153. package/dist/assets/de_AT.c6f8b56c.js +1 -0
  154. package/dist/assets/de_CH.fbb1fd8b.js +1 -0
  155. package/dist/assets/el.a52af6dd.js +1 -0
  156. package/dist/assets/el_CY.dfc81973.js +1 -0
  157. package/dist/assets/en.9d5e30c6.js +1 -0
  158. package/dist/assets/en_AU.af8c9202.js +1 -0
  159. package/dist/assets/en_GB.e07779d4.js +1 -0
  160. package/dist/assets/en_HK.bdda93ce.js +1 -0
  161. package/dist/assets/en_IE.81db172b.js +1 -0
  162. package/dist/assets/en_IN.dc6c4aa0.js +1 -0
  163. package/dist/assets/en_NZ.a287ea30.js +1 -0
  164. package/dist/assets/en_PG.a841abf3.js +1 -0
  165. package/dist/assets/en_SG.a8c53dc3.js +1 -0
  166. package/dist/assets/en_ZA.e412e4cb.js +1 -0
  167. package/dist/assets/es.a8053ce5.js +1 -0
  168. package/dist/assets/es_AR.400678e2.js +1 -0
  169. package/dist/assets/es_BO.5d505e47.js +1 -0
  170. package/dist/assets/es_CL.a6e4a80b.js +1 -0
  171. package/dist/assets/es_CO.1f7597a4.js +1 -0
  172. package/dist/assets/es_MX.9164aad6.js +1 -0
  173. package/dist/assets/es_PE.85c8a5f4.js +1 -0
  174. package/dist/assets/es_UY.4b0bd2f1.js +1 -0
  175. package/dist/assets/es_VE.194a01d7.js +1 -0
  176. package/dist/assets/et.1ba4add0.js +1 -0
  177. package/dist/assets/fa.e60c18ea.js +1 -0
  178. package/dist/assets/fi.2b63587f.js +1 -0
  179. package/dist/assets/fr.f21ec134.js +1 -0
  180. package/dist/assets/fr_BE.bf9d2736.js +1 -0
  181. package/dist/assets/fr_CA.47fa4dde.js +1 -0
  182. package/dist/assets/fr_CH.6c03e6c0.js +1 -0
  183. package/dist/assets/fr_LU.19d18947.js +1 -0
  184. package/dist/assets/he.fd2788ce.js +1 -0
  185. package/dist/assets/hi.df686f37.js +1 -0
  186. package/dist/assets/hr.9540378d.js +1 -0
  187. package/dist/assets/hu.7fc5a600.js +1 -0
  188. package/dist/assets/id.a727d950.js +1 -0
  189. package/dist/assets/it.11c23822.js +1 -0
  190. package/dist/assets/it_CH.0daa9b0b.js +1 -0
  191. package/dist/assets/ja.65e8d301.js +1 -0
  192. package/dist/assets/{kitchen-scripts.f2c8101e.js → kitchen-scripts.4ffb6cdb.js} +1 -1
  193. package/dist/assets/kk.a1e73b3f.js +1 -0
  194. package/dist/assets/ko.3a143713.js +1 -0
  195. package/dist/assets/lt.5ff0cdf7.js +1 -0
  196. package/dist/assets/lv.d37ad18b.js +1 -0
  197. package/dist/assets/messagebundle_ar.4a952712.js +1 -0
  198. package/dist/assets/messagebundle_bg.005d394d.js +1 -0
  199. package/dist/assets/messagebundle_ca.42a55677.js +1 -0
  200. package/dist/assets/messagebundle_cs.af423fbd.js +1 -0
  201. package/dist/assets/messagebundle_cy.dbe56ca5.js +1 -0
  202. package/dist/assets/messagebundle_da.8c1bf79d.js +1 -0
  203. package/dist/assets/messagebundle_de.07dbdade.js +1 -0
  204. package/dist/assets/messagebundle_el.60b0af39.js +1 -0
  205. package/dist/assets/messagebundle_en.7bf1186a.js +1 -0
  206. package/dist/assets/messagebundle_en_GB.74ca8ab1.js +1 -0
  207. package/dist/assets/messagebundle_en_US_sappsd.4b5e22df.js +1 -0
  208. package/dist/assets/{messagebundle_en_US_saprigi.4fc3019b.js → messagebundle_en_US_saprigi.8f67a54b.js} +1 -1
  209. package/dist/assets/messagebundle_en_US_saptrc.1c1645fc.js +1 -0
  210. package/dist/assets/messagebundle_es.0cc30b6e.js +1 -0
  211. package/dist/assets/messagebundle_es_MX.af835417.js +1 -0
  212. package/dist/assets/messagebundle_et.f0b9692c.js +1 -0
  213. package/dist/assets/messagebundle_fi.ce799ebc.js +1 -0
  214. package/dist/assets/messagebundle_fr.138d08d9.js +1 -0
  215. package/dist/assets/messagebundle_fr_CA.21862365.js +1 -0
  216. package/dist/assets/messagebundle_hi.36d322e9.js +1 -0
  217. package/dist/assets/messagebundle_hr.aca7500d.js +1 -0
  218. package/dist/assets/messagebundle_hu.cd5bc60e.js +1 -0
  219. package/dist/assets/messagebundle_it.707234b5.js +1 -0
  220. package/dist/assets/messagebundle_iw.80b7ae6a.js +1 -0
  221. package/dist/assets/messagebundle_ja.54ced6c6.js +1 -0
  222. package/dist/assets/messagebundle_kk.29fafd2d.js +1 -0
  223. package/dist/assets/messagebundle_ko.8f74bc59.js +1 -0
  224. package/dist/assets/messagebundle_lt.d8c67fb7.js +1 -0
  225. package/dist/assets/messagebundle_lv.3a838a47.js +1 -0
  226. package/dist/assets/messagebundle_ms.57fb5eb8.js +1 -0
  227. package/dist/assets/messagebundle_nl.e091d15c.js +1 -0
  228. package/dist/assets/messagebundle_no.11207bec.js +1 -0
  229. package/dist/assets/messagebundle_pl.a642af11.js +1 -0
  230. package/dist/assets/messagebundle_pt.150a4c67.js +1 -0
  231. package/dist/assets/messagebundle_pt_PT.9c822d87.js +1 -0
  232. package/dist/assets/messagebundle_ro.8a4e217c.js +1 -0
  233. package/dist/assets/messagebundle_ru.3ab0178d.js +1 -0
  234. package/dist/assets/messagebundle_sh.67fd26db.js +1 -0
  235. package/dist/assets/messagebundle_sk.d5b20773.js +1 -0
  236. package/dist/assets/messagebundle_sl.2d887b8e.js +1 -0
  237. package/dist/assets/messagebundle_sv.e4cae15c.js +1 -0
  238. package/dist/assets/messagebundle_th.50b9123a.js +1 -0
  239. package/dist/assets/messagebundle_tr.6ea45efc.js +1 -0
  240. package/dist/assets/messagebundle_uk.9705fda1.js +1 -0
  241. package/dist/assets/messagebundle_uk.ed0a7c66.js +1 -0
  242. package/dist/assets/messagebundle_vi.fd114413.js +1 -0
  243. package/dist/assets/messagebundle_zh_CN.0f26b4c2.js +1 -0
  244. package/dist/assets/messagebundle_zh_TW.26f10b28.js +1 -0
  245. package/dist/assets/ms.073a5293.js +1 -0
  246. package/dist/assets/nb.2ac5f938.js +1 -0
  247. package/dist/assets/nl.32e385c8.js +1 -0
  248. package/dist/assets/nl_BE.5f2ba97a.js +1 -0
  249. package/dist/assets/parameters-bundle.css.01644757.js +1 -0
  250. package/dist/assets/parameters-bundle.css.2c8496aa.js +1 -0
  251. package/dist/assets/parameters-bundle.css.52765351.js +1 -0
  252. package/dist/assets/parameters-bundle.css.699b96c0.js +1 -0
  253. package/dist/assets/parameters-bundle.css.6db4d34a.js +1 -0
  254. package/dist/assets/parameters-bundle.css.70a65e3a.js +1 -0
  255. package/dist/assets/parameters-bundle.css.71348be9.js +1 -0
  256. package/dist/assets/parameters-bundle.css.71c92b92.js +1 -0
  257. package/dist/assets/parameters-bundle.css.9bd22734.js +1 -0
  258. package/dist/assets/parameters-bundle.css.b7a262bf.js +1 -0
  259. package/dist/assets/parameters-bundle.css.c565b624.js +1 -0
  260. package/dist/assets/parameters-bundle.css.cbd268df.js +1 -0
  261. package/dist/assets/parameters-bundle.css.d3b9e3dd.js +1 -0
  262. package/dist/assets/parameters-bundle.css.f552e9e6.js +1 -0
  263. package/dist/assets/pl.6bedf0c8.js +1 -0
  264. package/dist/assets/pt.98edc8e1.js +1 -0
  265. package/dist/assets/pt_PT.6026aa4b.js +1 -0
  266. package/dist/assets/ro.93c0d8c1.js +1 -0
  267. package/dist/assets/ru.0222a174.js +1 -0
  268. package/dist/assets/ru_UA.a32ee2f1.js +1 -0
  269. package/dist/assets/sk.42921e02.js +1 -0
  270. package/dist/assets/sl.2cdea3d5.js +1 -0
  271. package/dist/assets/sr.204807ce.js +1 -0
  272. package/dist/assets/sr_Latn.be10667b.js +1 -0
  273. package/dist/assets/sv.6ace6bc0.js +1 -0
  274. package/dist/assets/th.cb59bba6.js +1 -0
  275. package/dist/assets/tr.6fe122f4.js +1 -0
  276. package/dist/assets/uk.812ee10f.js +1 -0
  277. package/dist/assets/vi.33e14ba9.js +1 -0
  278. package/dist/assets/zh_CN.f23435f2.js +1 -0
  279. package/dist/assets/zh_HK.efe9e5bf.js +1 -0
  280. package/dist/assets/zh_SG.25dc8c02.js +1 -0
  281. package/dist/assets/zh_TW.a566ed25.js +1 -0
  282. package/dist/css/themes/BusyIndicator.css +1 -1
  283. package/dist/css/themes/CheckBox.css +1 -1
  284. package/dist/css/themes/Icon.css +1 -1
  285. package/dist/css/themes/ProgressIndicator.css +1 -1
  286. package/dist/css/themes/StepInput.css +1 -1
  287. package/dist/css/themes/TextArea.css +1 -1
  288. package/dist/custom-elements.json +1 -1
  289. package/dist/features/ColorPaletteMoreColors.js.map +1 -1
  290. package/dist/features/InputElementsFormSupport.d.ts +1 -1
  291. package/dist/features/InputElementsFormSupport.js.map +1 -1
  292. package/dist/features/InputSuggestions.js.map +1 -1
  293. package/dist/generated/assets/i18n/messagebundle_ar.json +1 -1
  294. package/dist/generated/assets/i18n/messagebundle_bg.json +1 -1
  295. package/dist/generated/assets/i18n/messagebundle_ca.json +1 -1
  296. package/dist/generated/assets/i18n/messagebundle_cs.json +1 -1
  297. package/dist/generated/assets/i18n/messagebundle_cy.json +1 -1
  298. package/dist/generated/assets/i18n/messagebundle_da.json +1 -1
  299. package/dist/generated/assets/i18n/messagebundle_de.json +1 -1
  300. package/dist/generated/assets/i18n/messagebundle_el.json +1 -1
  301. package/dist/generated/assets/i18n/messagebundle_en.json +1 -1
  302. package/dist/generated/assets/i18n/messagebundle_en_GB.json +1 -1
  303. package/dist/generated/assets/i18n/messagebundle_en_US_sappsd.json +1 -1
  304. package/dist/generated/assets/i18n/messagebundle_en_US_saprigi.json +1 -1
  305. package/dist/generated/assets/i18n/messagebundle_en_US_saptrc.json +1 -1
  306. package/dist/generated/assets/i18n/messagebundle_es.json +1 -1
  307. package/dist/generated/assets/i18n/messagebundle_es_MX.json +1 -1
  308. package/dist/generated/assets/i18n/messagebundle_et.json +1 -1
  309. package/dist/generated/assets/i18n/messagebundle_fi.json +1 -1
  310. package/dist/generated/assets/i18n/messagebundle_fr.json +1 -1
  311. package/dist/generated/assets/i18n/messagebundle_fr_CA.json +1 -1
  312. package/dist/generated/assets/i18n/messagebundle_hi.json +1 -1
  313. package/dist/generated/assets/i18n/messagebundle_hr.json +1 -1
  314. package/dist/generated/assets/i18n/messagebundle_hu.json +1 -1
  315. package/dist/generated/assets/i18n/messagebundle_it.json +1 -1
  316. package/dist/generated/assets/i18n/messagebundle_iw.json +1 -1
  317. package/dist/generated/assets/i18n/messagebundle_ja.json +1 -1
  318. package/dist/generated/assets/i18n/messagebundle_kk.json +1 -1
  319. package/dist/generated/assets/i18n/messagebundle_ko.json +1 -1
  320. package/dist/generated/assets/i18n/messagebundle_lt.json +1 -1
  321. package/dist/generated/assets/i18n/messagebundle_lv.json +1 -1
  322. package/dist/generated/assets/i18n/messagebundle_ms.json +1 -1
  323. package/dist/generated/assets/i18n/messagebundle_nl.json +1 -1
  324. package/dist/generated/assets/i18n/messagebundle_no.json +1 -1
  325. package/dist/generated/assets/i18n/messagebundle_pl.json +1 -1
  326. package/dist/generated/assets/i18n/messagebundle_pt.json +1 -1
  327. package/dist/generated/assets/i18n/messagebundle_pt_PT.json +1 -1
  328. package/dist/generated/assets/i18n/messagebundle_ro.json +1 -1
  329. package/dist/generated/assets/i18n/messagebundle_ru.json +1 -1
  330. package/dist/generated/assets/i18n/messagebundle_sh.json +1 -1
  331. package/dist/generated/assets/i18n/messagebundle_sk.json +1 -1
  332. package/dist/generated/assets/i18n/messagebundle_sl.json +1 -1
  333. package/dist/generated/assets/i18n/messagebundle_sv.json +1 -1
  334. package/dist/generated/assets/i18n/messagebundle_th.json +1 -1
  335. package/dist/generated/assets/i18n/messagebundle_tr.json +1 -1
  336. package/dist/generated/assets/i18n/messagebundle_uk.json +1 -1
  337. package/dist/generated/assets/i18n/messagebundle_vi.json +1 -1
  338. package/dist/generated/assets/i18n/messagebundle_zh_CN.json +1 -1
  339. package/dist/generated/assets/i18n/messagebundle_zh_TW.json +1 -1
  340. package/dist/generated/assets/themes/sap_horizon/parameters-bundle.css.json +1 -1
  341. package/dist/generated/assets/themes/sap_horizon_dark/parameters-bundle.css.json +1 -1
  342. package/dist/generated/i18n/i18n-defaults.d.ts +1 -2
  343. package/dist/generated/i18n/i18n-defaults.js +1 -2
  344. package/dist/generated/i18n/i18n-defaults.js.map +1 -1
  345. package/dist/generated/templates/ButtonTemplate.lit.js +1 -1
  346. package/dist/generated/templates/ComboBoxTemplate.lit.js +1 -1
  347. package/dist/generated/templates/DatePickerTemplate.lit.js +1 -1
  348. package/dist/generated/templates/MultiComboBoxTemplate.lit.js +1 -1
  349. package/dist/generated/templates/MultiInputTemplate.lit.js +1 -1
  350. package/dist/generated/templates/SplitButtonTemplate.lit.js +2 -1
  351. package/dist/generated/templates/StepInputTemplate.lit.js +2 -2
  352. package/dist/generated/templates/TimePickerTemplate.lit.js +1 -1
  353. package/dist/generated/templates/ToggleButtonTemplate.lit.js +1 -1
  354. package/dist/generated/templates/TreeItemBaseTemplate.lit.js +3 -3
  355. package/dist/generated/templates/TreeItemCustomTemplate.lit.js +3 -3
  356. package/dist/generated/templates/TreeItemTemplate.lit.js +3 -3
  357. package/dist/generated/themes/Avatar.css.js.map +1 -1
  358. package/dist/generated/themes/AvatarGroup.css.js.map +1 -1
  359. package/dist/generated/themes/Badge.css.js.map +1 -1
  360. package/dist/generated/themes/Breadcrumbs.css.js.map +1 -1
  361. package/dist/generated/themes/BreadcrumbsPopover.css.js.map +1 -1
  362. package/dist/generated/themes/BrowserScrollbar.css.js.map +1 -1
  363. package/dist/generated/themes/BusyIndicator.css.js +1 -1
  364. package/dist/generated/themes/BusyIndicator.css.js.map +1 -1
  365. package/dist/generated/themes/Button.css.js.map +1 -1
  366. package/dist/generated/themes/Calendar.css.js.map +1 -1
  367. package/dist/generated/themes/CalendarHeader.css.js.map +1 -1
  368. package/dist/generated/themes/Card.css.js.map +1 -1
  369. package/dist/generated/themes/CardHeader.css.js.map +1 -1
  370. package/dist/generated/themes/Carousel.css.js.map +1 -1
  371. package/dist/generated/themes/CheckBox.css.js +1 -1
  372. package/dist/generated/themes/CheckBox.css.js.map +1 -1
  373. package/dist/generated/themes/ColorPalette.css.js.map +1 -1
  374. package/dist/generated/themes/ColorPaletteItem.css.js.map +1 -1
  375. package/dist/generated/themes/ColorPalettePopover.css.js.map +1 -1
  376. package/dist/generated/themes/ColorPaletteStaticArea.css.js.map +1 -1
  377. package/dist/generated/themes/ColorPicker.css.js.map +1 -1
  378. package/dist/generated/themes/ComboBox.css.js.map +1 -1
  379. package/dist/generated/themes/ComboBoxPopover.css.js.map +1 -1
  380. package/dist/generated/themes/CustomListItem.css.js.map +1 -1
  381. package/dist/generated/themes/DatePicker.css.js.map +1 -1
  382. package/dist/generated/themes/DatePickerPopover.css.js.map +1 -1
  383. package/dist/generated/themes/DateRangePicker.css.js.map +1 -1
  384. package/dist/generated/themes/DateTimePicker.css.js.map +1 -1
  385. package/dist/generated/themes/DateTimePickerPopover.css.js.map +1 -1
  386. package/dist/generated/themes/DayPicker.css.js.map +1 -1
  387. package/dist/generated/themes/Dialog.css.js.map +1 -1
  388. package/dist/generated/themes/FileUploader.css.js.map +1 -1
  389. package/dist/generated/themes/GroupHeaderListItem.css.js.map +1 -1
  390. package/dist/generated/themes/GrowingButton.css.js.map +1 -1
  391. package/dist/generated/themes/Icon.css.js +1 -1
  392. package/dist/generated/themes/Icon.css.js.map +1 -1
  393. package/dist/generated/themes/Input.css.js.map +1 -1
  394. package/dist/generated/themes/InputIcon.css.js.map +1 -1
  395. package/dist/generated/themes/InvisibleTextStyles.css.js.map +1 -1
  396. package/dist/generated/themes/Label.css.js.map +1 -1
  397. package/dist/generated/themes/Link.css.js.map +1 -1
  398. package/dist/generated/themes/List.css.js.map +1 -1
  399. package/dist/generated/themes/ListItem.css.js.map +1 -1
  400. package/dist/generated/themes/ListItemBase.css.js.map +1 -1
  401. package/dist/generated/themes/Menu.css.js.map +1 -1
  402. package/dist/generated/themes/MessageStrip.css.js.map +1 -1
  403. package/dist/generated/themes/MonthPicker.css.js.map +1 -1
  404. package/dist/generated/themes/MultiComboBox.css.js.map +1 -1
  405. package/dist/generated/themes/MultiComboBoxPopover.css.js.map +1 -1
  406. package/dist/generated/themes/MultiInput.css.js.map +1 -1
  407. package/dist/generated/themes/Panel.css.js.map +1 -1
  408. package/dist/generated/themes/Popover.css.js.map +1 -1
  409. package/dist/generated/themes/Popup.css.js.map +1 -1
  410. package/dist/generated/themes/PopupGlobal.css.js.map +1 -1
  411. package/dist/generated/themes/PopupStaticAreaStyles.css.js.map +1 -1
  412. package/dist/generated/themes/PopupsCommon.css.js.map +1 -1
  413. package/dist/generated/themes/ProgressIndicator.css.js +1 -1
  414. package/dist/generated/themes/ProgressIndicator.css.js.map +1 -1
  415. package/dist/generated/themes/RadioButton.css.js.map +1 -1
  416. package/dist/generated/themes/RangeSlider.css.js.map +1 -1
  417. package/dist/generated/themes/RatingIndicator.css.js.map +1 -1
  418. package/dist/generated/themes/ResponsivePopover.css.js.map +1 -1
  419. package/dist/generated/themes/ResponsivePopoverCommon.css.js.map +1 -1
  420. package/dist/generated/themes/SegmentedButton.css.js.map +1 -1
  421. package/dist/generated/themes/Select.css.js.map +1 -1
  422. package/dist/generated/themes/SelectPopover.css.js.map +1 -1
  423. package/dist/generated/themes/SliderBase.css.js.map +1 -1
  424. package/dist/generated/themes/SplitButton.css.js.map +1 -1
  425. package/dist/generated/themes/StepInput.css.js +1 -1
  426. package/dist/generated/themes/StepInput.css.js.map +1 -1
  427. package/dist/generated/themes/Suggestions.css.js.map +1 -1
  428. package/dist/generated/themes/Switch.css.js.map +1 -1
  429. package/dist/generated/themes/Tab.css.js.map +1 -1
  430. package/dist/generated/themes/TabContainer.css.js.map +1 -1
  431. package/dist/generated/themes/TabInOverflow.css.js.map +1 -1
  432. package/dist/generated/themes/TabInStrip.css.js.map +1 -1
  433. package/dist/generated/themes/TabSemanticIcon.css.js.map +1 -1
  434. package/dist/generated/themes/TabSeparatorInOverflow.css.js.map +1 -1
  435. package/dist/generated/themes/TabSeparatorInStrip.css.js.map +1 -1
  436. package/dist/generated/themes/Table.css.js.map +1 -1
  437. package/dist/generated/themes/TableCell.css.js.map +1 -1
  438. package/dist/generated/themes/TableColumn.css.js.map +1 -1
  439. package/dist/generated/themes/TableGroupRow.css.js.map +1 -1
  440. package/dist/generated/themes/TableRow.css.js.map +1 -1
  441. package/dist/generated/themes/TapHighlightColor.css.js.map +1 -1
  442. package/dist/generated/themes/TextArea.css.js +1 -1
  443. package/dist/generated/themes/TextArea.css.js.map +1 -1
  444. package/dist/generated/themes/TimePicker.css.js.map +1 -1
  445. package/dist/generated/themes/TimePickerPopover.css.js.map +1 -1
  446. package/dist/generated/themes/TimeSelection.css.js.map +1 -1
  447. package/dist/generated/themes/Title.css.js.map +1 -1
  448. package/dist/generated/themes/Toast.css.js.map +1 -1
  449. package/dist/generated/themes/ToggleButton.css.js.map +1 -1
  450. package/dist/generated/themes/Token.css.js.map +1 -1
  451. package/dist/generated/themes/Tokenizer.css.js.map +1 -1
  452. package/dist/generated/themes/TokenizerPopover.css.js.map +1 -1
  453. package/dist/generated/themes/Tree.css.js.map +1 -1
  454. package/dist/generated/themes/TreeItem.css.js.map +1 -1
  455. package/dist/generated/themes/ValueStateMessage.css.js.map +1 -1
  456. package/dist/generated/themes/WheelSlider.css.js.map +1 -1
  457. package/dist/generated/themes/YearPicker.css.js.map +1 -1
  458. package/dist/generated/themes/sap_belize/parameters-bundle.css.js.map +1 -1
  459. package/dist/generated/themes/sap_belize_hcb/parameters-bundle.css.js.map +1 -1
  460. package/dist/generated/themes/sap_belize_hcw/parameters-bundle.css.js.map +1 -1
  461. package/dist/generated/themes/sap_fiori_3/parameters-bundle.css.js.map +1 -1
  462. package/dist/generated/themes/sap_fiori_3_dark/parameters-bundle.css.js.map +1 -1
  463. package/dist/generated/themes/sap_fiori_3_hcb/parameters-bundle.css.js.map +1 -1
  464. package/dist/generated/themes/sap_fiori_3_hcw/parameters-bundle.css.js.map +1 -1
  465. package/dist/generated/themes/sap_horizon/parameters-bundle.css.js +1 -1
  466. package/dist/generated/themes/sap_horizon/parameters-bundle.css.js.map +1 -1
  467. package/dist/generated/themes/sap_horizon_dark/parameters-bundle.css.js +1 -1
  468. package/dist/generated/themes/sap_horizon_dark/parameters-bundle.css.js.map +1 -1
  469. package/dist/generated/themes/sap_horizon_exp/parameters-bundle.css.js.map +1 -1
  470. package/dist/generated/themes/sap_horizon_hcb/parameters-bundle.css.js.map +1 -1
  471. package/dist/generated/themes/sap_horizon_hcw/parameters-bundle.css.js.map +1 -1
  472. package/dist/i18n/messagebundle.properties +0 -3
  473. package/dist/i18n/messagebundle_ar.properties +0 -2
  474. package/dist/i18n/messagebundle_bg.properties +0 -2
  475. package/dist/i18n/messagebundle_ca.properties +0 -2
  476. package/dist/i18n/messagebundle_cs.properties +0 -2
  477. package/dist/i18n/messagebundle_cy.properties +0 -2
  478. package/dist/i18n/messagebundle_da.properties +0 -2
  479. package/dist/i18n/messagebundle_de.properties +0 -2
  480. package/dist/i18n/messagebundle_el.properties +0 -2
  481. package/dist/i18n/messagebundle_en.properties +0 -2
  482. package/dist/i18n/messagebundle_en_GB.properties +0 -2
  483. package/dist/i18n/messagebundle_en_US_sappsd.properties +0 -2
  484. package/dist/i18n/messagebundle_en_US_saprigi.properties +0 -2
  485. package/dist/i18n/messagebundle_en_US_saptrc.properties +0 -2
  486. package/dist/i18n/messagebundle_es.properties +0 -2
  487. package/dist/i18n/messagebundle_es_MX.properties +0 -2
  488. package/dist/i18n/messagebundle_et.properties +0 -2
  489. package/dist/i18n/messagebundle_fi.properties +0 -2
  490. package/dist/i18n/messagebundle_fr.properties +0 -2
  491. package/dist/i18n/messagebundle_fr_CA.properties +0 -2
  492. package/dist/i18n/messagebundle_hi.properties +0 -2
  493. package/dist/i18n/messagebundle_hr.properties +0 -2
  494. package/dist/i18n/messagebundle_hu.properties +0 -2
  495. package/dist/i18n/messagebundle_id.properties +0 -2
  496. package/dist/i18n/messagebundle_it.properties +0 -2
  497. package/dist/i18n/messagebundle_iw.properties +0 -2
  498. package/dist/i18n/messagebundle_ja.properties +0 -2
  499. package/dist/i18n/messagebundle_kk.properties +0 -2
  500. package/dist/i18n/messagebundle_ko.properties +0 -2
  501. package/dist/i18n/messagebundle_lt.properties +0 -2
  502. package/dist/i18n/messagebundle_lv.properties +0 -2
  503. package/dist/i18n/messagebundle_ms.properties +0 -2
  504. package/dist/i18n/messagebundle_nl.properties +0 -2
  505. package/dist/i18n/messagebundle_no.properties +0 -2
  506. package/dist/i18n/messagebundle_pl.properties +0 -2
  507. package/dist/i18n/messagebundle_pt.properties +0 -2
  508. package/dist/i18n/messagebundle_pt_PT.properties +0 -2
  509. package/dist/i18n/messagebundle_ro.properties +0 -2
  510. package/dist/i18n/messagebundle_ru.properties +0 -2
  511. package/dist/i18n/messagebundle_sh.properties +0 -2
  512. package/dist/i18n/messagebundle_sk.properties +0 -2
  513. package/dist/i18n/messagebundle_sl.properties +0 -2
  514. package/dist/i18n/messagebundle_sv.properties +0 -2
  515. package/dist/i18n/messagebundle_th.properties +0 -2
  516. package/dist/i18n/messagebundle_tr.properties +0 -2
  517. package/dist/i18n/messagebundle_uk.properties +0 -2
  518. package/dist/i18n/messagebundle_vi.properties +0 -2
  519. package/dist/i18n/messagebundle_zh_CN.properties +0 -2
  520. package/dist/i18n/messagebundle_zh_TW.properties +0 -2
  521. package/dist/popup-utils/OpenedPopupsRegistry.js.map +1 -1
  522. package/dist/popup-utils/PopoverRegistry.js.map +1 -1
  523. package/dist/timepicker-utils/TimeSlider.js.map +1 -1
  524. package/dist/types/AvatarColorScheme.js.map +1 -1
  525. package/dist/types/AvatarGroupType.js.map +1 -1
  526. package/dist/types/AvatarShape.js.map +1 -1
  527. package/dist/types/AvatarSize.js.map +1 -1
  528. package/dist/types/BreadcrumbsDesign.js.map +1 -1
  529. package/dist/types/BreadcrumbsSeparatorStyle.js.map +1 -1
  530. package/dist/types/BusyIndicatorSize.js.map +1 -1
  531. package/dist/types/ButtonDesign.js.map +1 -1
  532. package/dist/types/CalendarPickersMode.js.map +1 -1
  533. package/dist/types/CalendarSelectionMode.js.map +1 -1
  534. package/dist/types/CarouselArrowsPlacement.js.map +1 -1
  535. package/dist/types/CarouselPageIndicatorStyle.js.map +1 -1
  536. package/dist/types/ComboBoxFilter.js.map +1 -1
  537. package/dist/types/HasPopup.js.map +1 -1
  538. package/dist/types/IconDesign.js.map +1 -1
  539. package/dist/types/InputType.js.map +1 -1
  540. package/dist/types/LinkDesign.js.map +1 -1
  541. package/dist/types/ListGrowingMode.js.map +1 -1
  542. package/dist/types/ListItemType.js.map +1 -1
  543. package/dist/types/ListMode.js.map +1 -1
  544. package/dist/types/ListSeparators.js.map +1 -1
  545. package/dist/types/MessageStripDesign.js.map +1 -1
  546. package/dist/types/PanelAccessibleRole.js.map +1 -1
  547. package/dist/types/PopoverHorizontalAlign.d.ts +4 -4
  548. package/dist/types/PopoverHorizontalAlign.js +4 -4
  549. package/dist/types/PopoverHorizontalAlign.js.map +1 -1
  550. package/dist/types/PopoverPlacementType.js.map +1 -1
  551. package/dist/types/PopoverVerticalAlign.js.map +1 -1
  552. package/dist/types/PopupAccessibleRole.js.map +1 -1
  553. package/dist/types/Priority.js.map +1 -1
  554. package/dist/types/SemanticColor.js.map +1 -1
  555. package/dist/types/SwitchDesign.js.map +1 -1
  556. package/dist/types/TabContainerBackgroundDesign.js.map +1 -1
  557. package/dist/types/TabContainerTabsPlacement.js.map +1 -1
  558. package/dist/types/TabLayout.js.map +1 -1
  559. package/dist/types/TableColumnPopinDisplay.js.map +1 -1
  560. package/dist/types/TableGrowingMode.js.map +1 -1
  561. package/dist/types/TableMode.js.map +1 -1
  562. package/dist/types/TableRowType.js.map +1 -1
  563. package/dist/types/TabsOverflowMode.js.map +1 -1
  564. package/dist/types/TitleLevel.js.map +1 -1
  565. package/dist/types/ToastPlacement.js.map +1 -1
  566. package/dist/types/WrappingType.js.map +1 -1
  567. package/package.json +8 -7
  568. package/src/Button.hbs +1 -1
  569. package/src/ComboBox.hbs +9 -10
  570. package/src/DatePicker.hbs +12 -12
  571. package/src/MultiComboBox.hbs +10 -11
  572. package/src/MultiInput.hbs +7 -8
  573. package/src/SplitButton.hbs +3 -1
  574. package/src/StepInput.hbs +2 -2
  575. package/src/TimePicker.hbs +10 -10
  576. package/src/TreeItemBase.hbs +2 -3
  577. package/src/i18n/messagebundle.properties +0 -3
  578. package/src/i18n/messagebundle_ar.properties +0 -2
  579. package/src/i18n/messagebundle_bg.properties +0 -2
  580. package/src/i18n/messagebundle_ca.properties +0 -2
  581. package/src/i18n/messagebundle_cs.properties +0 -2
  582. package/src/i18n/messagebundle_cy.properties +0 -2
  583. package/src/i18n/messagebundle_da.properties +0 -2
  584. package/src/i18n/messagebundle_de.properties +0 -2
  585. package/src/i18n/messagebundle_el.properties +0 -2
  586. package/src/i18n/messagebundle_en.properties +0 -2
  587. package/src/i18n/messagebundle_en_GB.properties +0 -2
  588. package/src/i18n/messagebundle_en_US_sappsd.properties +0 -2
  589. package/src/i18n/messagebundle_en_US_saprigi.properties +0 -2
  590. package/src/i18n/messagebundle_en_US_saptrc.properties +0 -2
  591. package/src/i18n/messagebundle_es.properties +0 -2
  592. package/src/i18n/messagebundle_es_MX.properties +0 -2
  593. package/src/i18n/messagebundle_et.properties +0 -2
  594. package/src/i18n/messagebundle_fi.properties +0 -2
  595. package/src/i18n/messagebundle_fr.properties +0 -2
  596. package/src/i18n/messagebundle_fr_CA.properties +0 -2
  597. package/src/i18n/messagebundle_hi.properties +0 -2
  598. package/src/i18n/messagebundle_hr.properties +0 -2
  599. package/src/i18n/messagebundle_hu.properties +0 -2
  600. package/src/i18n/messagebundle_id.properties +0 -2
  601. package/src/i18n/messagebundle_it.properties +0 -2
  602. package/src/i18n/messagebundle_iw.properties +0 -2
  603. package/src/i18n/messagebundle_ja.properties +0 -2
  604. package/src/i18n/messagebundle_kk.properties +0 -2
  605. package/src/i18n/messagebundle_ko.properties +0 -2
  606. package/src/i18n/messagebundle_lt.properties +0 -2
  607. package/src/i18n/messagebundle_lv.properties +0 -2
  608. package/src/i18n/messagebundle_ms.properties +0 -2
  609. package/src/i18n/messagebundle_nl.properties +0 -2
  610. package/src/i18n/messagebundle_no.properties +0 -2
  611. package/src/i18n/messagebundle_pl.properties +0 -2
  612. package/src/i18n/messagebundle_pt.properties +0 -2
  613. package/src/i18n/messagebundle_pt_PT.properties +0 -2
  614. package/src/i18n/messagebundle_ro.properties +0 -2
  615. package/src/i18n/messagebundle_ru.properties +0 -2
  616. package/src/i18n/messagebundle_sh.properties +0 -2
  617. package/src/i18n/messagebundle_sk.properties +0 -2
  618. package/src/i18n/messagebundle_sl.properties +0 -2
  619. package/src/i18n/messagebundle_sv.properties +0 -2
  620. package/src/i18n/messagebundle_th.properties +0 -2
  621. package/src/i18n/messagebundle_tr.properties +0 -2
  622. package/src/i18n/messagebundle_uk.properties +0 -2
  623. package/src/i18n/messagebundle_vi.properties +0 -2
  624. package/src/i18n/messagebundle_zh_CN.properties +0 -2
  625. package/src/i18n/messagebundle_zh_TW.properties +0 -2
  626. package/src/themes/BusyIndicator.css +1 -0
  627. package/src/themes/CheckBox.css +1 -0
  628. package/src/themes/Icon.css +0 -4
  629. package/src/themes/ProgressIndicator.css +1 -1
  630. package/src/themes/StepInput.css +1 -0
  631. package/src/themes/TextArea.css +6 -3
  632. package/src/themes/sap_horizon/CheckBox-parameters.css +0 -1
  633. package/src/themes/sap_horizon_dark/CheckBox-parameters.css +0 -1
  634. package/tsconfig.json +1 -0
  635. package/.dev-server-port +0 -1
  636. package/dist/DurationPicker.js +0 -312
  637. package/dist/assets/DurationPicker.d4e0845b.css +0 -1
  638. package/dist/assets/Popover.bde799ce.css +0 -1
  639. package/dist/assets/SAP-icons-TNT.9ee5f818.js +0 -1
  640. package/dist/assets/SAP-icons-business-suite.5e4d496e.js +0 -1
  641. package/dist/assets/SAP-icons-business-suite.7313c1b1.js +0 -1
  642. package/dist/assets/SAP-icons.216218d4.js +0 -1
  643. package/dist/assets/SAP-icons.4f7faebd.js +0 -1
  644. package/dist/assets/ar.c8a9c7c2.js +0 -1
  645. package/dist/assets/ar_EG.bc0b8c4a.js +0 -1
  646. package/dist/assets/ar_SA.e02fea0b.js +0 -1
  647. package/dist/assets/bg.1c4cbc9c.js +0 -1
  648. package/dist/assets/ca.a4e7480a.js +0 -1
  649. package/dist/assets/cs.e731c541.js +0 -1
  650. package/dist/assets/da.718b3439.js +0 -1
  651. package/dist/assets/de.ae411210.js +0 -1
  652. package/dist/assets/de_AT.cb17127f.js +0 -1
  653. package/dist/assets/de_CH.b0eaf2ed.js +0 -1
  654. package/dist/assets/el.7daeddb3.js +0 -1
  655. package/dist/assets/el_CY.dac8ac43.js +0 -1
  656. package/dist/assets/en.baed18b1.js +0 -1
  657. package/dist/assets/en_AU.8c929d24.js +0 -1
  658. package/dist/assets/en_GB.4e429aa6.js +0 -1
  659. package/dist/assets/en_HK.529b415b.js +0 -1
  660. package/dist/assets/en_IE.ff068141.js +0 -1
  661. package/dist/assets/en_IN.30d13a3a.js +0 -1
  662. package/dist/assets/en_NZ.2529c280.js +0 -1
  663. package/dist/assets/en_PG.649a81d5.js +0 -1
  664. package/dist/assets/en_SG.1fbf47e1.js +0 -1
  665. package/dist/assets/en_ZA.bb83c383.js +0 -1
  666. package/dist/assets/es.5d010a1f.js +0 -1
  667. package/dist/assets/es_AR.7f372ffe.js +0 -1
  668. package/dist/assets/es_BO.7ba05a1b.js +0 -1
  669. package/dist/assets/es_CL.a37af7ca.js +0 -1
  670. package/dist/assets/es_CO.36557bc1.js +0 -1
  671. package/dist/assets/es_MX.0539dea0.js +0 -1
  672. package/dist/assets/es_PE.925f6359.js +0 -1
  673. package/dist/assets/es_UY.c3cd8bb4.js +0 -1
  674. package/dist/assets/es_VE.6ee9a7fe.js +0 -1
  675. package/dist/assets/et.90440de4.js +0 -1
  676. package/dist/assets/fa.5717a297.js +0 -1
  677. package/dist/assets/fi.1bfca1c3.js +0 -1
  678. package/dist/assets/fr.491d3e0c.js +0 -1
  679. package/dist/assets/fr_BE.6ccfd56c.js +0 -1
  680. package/dist/assets/fr_CA.ffe12267.js +0 -1
  681. package/dist/assets/fr_CH.5d77b4bc.js +0 -1
  682. package/dist/assets/fr_LU.c07815db.js +0 -1
  683. package/dist/assets/he.79f10a9d.js +0 -1
  684. package/dist/assets/hi.29863484.js +0 -1
  685. package/dist/assets/hr.99813023.js +0 -1
  686. package/dist/assets/hu.23e0baa9.js +0 -1
  687. package/dist/assets/id.4c30fabd.js +0 -1
  688. package/dist/assets/it.528a18da.js +0 -1
  689. package/dist/assets/it_CH.87ff79eb.js +0 -1
  690. package/dist/assets/ja.8846f5e2.js +0 -1
  691. package/dist/assets/kk.01694e17.js +0 -1
  692. package/dist/assets/ko.d3b0053b.js +0 -1
  693. package/dist/assets/lt.a74d5456.js +0 -1
  694. package/dist/assets/lv.6831c2cc.js +0 -1
  695. package/dist/assets/messagebundle_ar.74efb031.js +0 -1
  696. package/dist/assets/messagebundle_bg.369c6fc8.js +0 -1
  697. package/dist/assets/messagebundle_ca.a3cd4b52.js +0 -1
  698. package/dist/assets/messagebundle_cs.289421ac.js +0 -1
  699. package/dist/assets/messagebundle_cy.b1830522.js +0 -1
  700. package/dist/assets/messagebundle_da.c05fe259.js +0 -1
  701. package/dist/assets/messagebundle_de.8a4032cc.js +0 -1
  702. package/dist/assets/messagebundle_el.7c63c645.js +0 -1
  703. package/dist/assets/messagebundle_en.6e890ca9.js +0 -1
  704. package/dist/assets/messagebundle_en_GB.6a665cc2.js +0 -1
  705. package/dist/assets/messagebundle_en_US_sappsd.9968eca8.js +0 -1
  706. package/dist/assets/messagebundle_en_US_saptrc.ce217732.js +0 -1
  707. package/dist/assets/messagebundle_es.0f0c4cdc.js +0 -1
  708. package/dist/assets/messagebundle_es_MX.f88d6e93.js +0 -1
  709. package/dist/assets/messagebundle_et.6e83e7fa.js +0 -1
  710. package/dist/assets/messagebundle_fi.ebcedd15.js +0 -1
  711. package/dist/assets/messagebundle_fr.f0c09c02.js +0 -1
  712. package/dist/assets/messagebundle_fr_CA.241e035f.js +0 -1
  713. package/dist/assets/messagebundle_hi.ea9222e3.js +0 -1
  714. package/dist/assets/messagebundle_hr.29b90b8a.js +0 -1
  715. package/dist/assets/messagebundle_hu.28f6367c.js +0 -1
  716. package/dist/assets/messagebundle_it.ef9f06fc.js +0 -1
  717. package/dist/assets/messagebundle_iw.52eeba6c.js +0 -1
  718. package/dist/assets/messagebundle_ja.54f39fb4.js +0 -1
  719. package/dist/assets/messagebundle_kk.4795b8bf.js +0 -1
  720. package/dist/assets/messagebundle_ko.298dee97.js +0 -1
  721. package/dist/assets/messagebundle_lt.50d45929.js +0 -1
  722. package/dist/assets/messagebundle_lv.6deb88b8.js +0 -1
  723. package/dist/assets/messagebundle_ms.0eb3e9fb.js +0 -1
  724. package/dist/assets/messagebundle_nl.d86b913f.js +0 -1
  725. package/dist/assets/messagebundle_no.4b4b68f9.js +0 -1
  726. package/dist/assets/messagebundle_pl.90d2d216.js +0 -1
  727. package/dist/assets/messagebundle_pt.682bdce3.js +0 -1
  728. package/dist/assets/messagebundle_pt_PT.5931734e.js +0 -1
  729. package/dist/assets/messagebundle_ro.c8b49647.js +0 -1
  730. package/dist/assets/messagebundle_ru.03b05c74.js +0 -1
  731. package/dist/assets/messagebundle_sh.d85d5fca.js +0 -1
  732. package/dist/assets/messagebundle_sk.0c356651.js +0 -1
  733. package/dist/assets/messagebundle_sl.6fbd00d2.js +0 -1
  734. package/dist/assets/messagebundle_sv.fd3992b5.js +0 -1
  735. package/dist/assets/messagebundle_th.69c4b78b.js +0 -1
  736. package/dist/assets/messagebundle_tr.f5e05dea.js +0 -1
  737. package/dist/assets/messagebundle_uk.8fe7f052.js +0 -1
  738. package/dist/assets/messagebundle_uk.e712215f.js +0 -1
  739. package/dist/assets/messagebundle_vi.dfccc988.js +0 -1
  740. package/dist/assets/messagebundle_zh_CN.0bec6825.js +0 -1
  741. package/dist/assets/messagebundle_zh_TW.be5ac4ff.js +0 -1
  742. package/dist/assets/ms.da64ef13.js +0 -1
  743. package/dist/assets/nb.06945878.js +0 -1
  744. package/dist/assets/nl.d0a7a73f.js +0 -1
  745. package/dist/assets/nl_BE.70dbb313.js +0 -1
  746. package/dist/assets/parameters-bundle.css.06915823.js +0 -1
  747. package/dist/assets/parameters-bundle.css.0fbb157c.js +0 -1
  748. package/dist/assets/parameters-bundle.css.1472a695.js +0 -1
  749. package/dist/assets/parameters-bundle.css.27f47e2c.js +0 -1
  750. package/dist/assets/parameters-bundle.css.3d177072.js +0 -1
  751. package/dist/assets/parameters-bundle.css.555b94dc.js +0 -1
  752. package/dist/assets/parameters-bundle.css.568a0fcb.js +0 -1
  753. package/dist/assets/parameters-bundle.css.83dc09a3.js +0 -1
  754. package/dist/assets/parameters-bundle.css.998f5591.js +0 -1
  755. package/dist/assets/parameters-bundle.css.aa4080ac.js +0 -1
  756. package/dist/assets/parameters-bundle.css.c5191133.js +0 -1
  757. package/dist/assets/parameters-bundle.css.dbd9833e.js +0 -1
  758. package/dist/assets/parameters-bundle.css.e59e43e9.js +0 -1
  759. package/dist/assets/parameters-bundle.css.ecedad1a.js +0 -1
  760. package/dist/assets/pl.695e03e0.js +0 -1
  761. package/dist/assets/pt.c917a469.js +0 -1
  762. package/dist/assets/pt_PT.0a89cd6c.js +0 -1
  763. package/dist/assets/ro.862460c6.js +0 -1
  764. package/dist/assets/ru.d1fa0fbb.js +0 -1
  765. package/dist/assets/ru_UA.37f83cbb.js +0 -1
  766. package/dist/assets/sk.c3dcbb2e.js +0 -1
  767. package/dist/assets/sl.a8e1c9c9.js +0 -1
  768. package/dist/assets/sr.8153af77.js +0 -1
  769. package/dist/assets/sr_Latn.99cb0a61.js +0 -1
  770. package/dist/assets/sv.bc115d54.js +0 -1
  771. package/dist/assets/th.688dbee7.js +0 -1
  772. package/dist/assets/tr.b0d6f870.js +0 -1
  773. package/dist/assets/uk.ab69fcaa.js +0 -1
  774. package/dist/assets/vi.5516bb07.js +0 -1
  775. package/dist/assets/zh_CN.f1932ba8.js +0 -1
  776. package/dist/assets/zh_HK.2a75a13d.js +0 -1
  777. package/dist/assets/zh_SG.bd55647f.js +0 -1
  778. package/dist/assets/zh_TW.2cab47aa.js +0 -1
  779. package/src/Assets-static.ts +0 -6
  780. package/src/Assets.ts +0 -7
  781. package/src/Avatar.ts +0 -422
  782. package/src/AvatarGroup.ts +0 -609
  783. package/src/Badge.ts +0 -133
  784. package/src/Breadcrumbs.ts +0 -665
  785. package/src/BreadcrumbsItem.ts +0 -93
  786. package/src/BusyIndicator.ts +0 -247
  787. package/src/Button.ts +0 -491
  788. package/src/Calendar.ts +0 -523
  789. package/src/CalendarDate.ts +0 -37
  790. package/src/CalendarHeader.ts +0 -205
  791. package/src/CalendarPart.ts +0 -100
  792. package/src/Card.ts +0 -139
  793. package/src/CardHeader.ts +0 -265
  794. package/src/Carousel.ts +0 -724
  795. package/src/CheckBox.ts +0 -462
  796. package/src/ColorPalette.ts +0 -492
  797. package/src/ColorPaletteItem.ts +0 -116
  798. package/src/ColorPalettePopover.ts +0 -234
  799. package/src/ColorPicker.ts +0 -524
  800. package/src/ComboBox.ts +0 -1229
  801. package/src/ComboBoxGroupItem.ts +0 -52
  802. package/src/ComboBoxItem.ts +0 -69
  803. package/src/CustomListItem.ts +0 -85
  804. package/src/DateComponentBase.ts +0 -173
  805. package/src/DatePicker.ts +0 -882
  806. package/src/DateRangePicker.ts +0 -370
  807. package/src/DateTimePicker.ts +0 -431
  808. package/src/DayPicker.ts +0 -805
  809. package/src/Dialog.ts +0 -702
  810. package/src/DurationPicker.js +0 -312
  811. package/src/FileUploader.ts +0 -511
  812. package/src/Filters.ts +0 -28
  813. package/src/GroupHeaderListItem.ts +0 -79
  814. package/src/Icon.ts +0 -423
  815. package/src/Input.ts +0 -1757
  816. package/src/Interfaces.ts +0 -202
  817. package/src/Label.ts +0 -136
  818. package/src/Link.ts +0 -397
  819. package/src/List.ts +0 -1129
  820. package/src/ListItem.ts +0 -498
  821. package/src/ListItemBase.ts +0 -165
  822. package/src/Menu.ts +0 -597
  823. package/src/MenuItem.ts +0 -169
  824. package/src/MessageStrip.ts +0 -232
  825. package/src/MonthPicker.ts +0 -345
  826. package/src/MultiComboBox.ts +0 -1698
  827. package/src/MultiComboBoxGroupItem.ts +0 -53
  828. package/src/MultiComboBoxItem.ts +0 -38
  829. package/src/MultiInput.ts +0 -379
  830. package/src/Option.ts +0 -119
  831. package/src/Panel.ts +0 -437
  832. package/src/Popover.ts +0 -850
  833. package/src/Popup.ts +0 -648
  834. package/src/ProgressIndicator.ts +0 -224
  835. package/src/RadioButton.ts +0 -518
  836. package/src/RadioButtonGroup.ts +0 -236
  837. package/src/RangeSlider.ts +0 -907
  838. package/src/RatingIndicator.ts +0 -315
  839. package/src/ResponsivePopover.ts +0 -227
  840. package/src/SegmentedButton.ts +0 -309
  841. package/src/SegmentedButtonItem.ts +0 -104
  842. package/src/Select.ts +0 -911
  843. package/src/Slider.ts +0 -364
  844. package/src/SliderBase.ts +0 -760
  845. package/src/SplitButton.ts +0 -410
  846. package/src/StandardListItem.ts +0 -212
  847. package/src/StepInput.ts +0 -636
  848. package/src/SuggestionGroupItem.ts +0 -49
  849. package/src/SuggestionItem.ts +0 -132
  850. package/src/SuggestionListItem.ts +0 -73
  851. package/src/Switch.ts +0 -291
  852. package/src/Tab.ts +0 -469
  853. package/src/TabContainer.ts +0 -1328
  854. package/src/TabSeparator.ts +0 -89
  855. package/src/Table.ts +0 -1289
  856. package/src/TableCell.ts +0 -71
  857. package/src/TableColumn.ts +0 -128
  858. package/src/TableGroupRow.ts +0 -146
  859. package/src/TableRow.ts +0 -492
  860. package/src/TextArea.ts +0 -703
  861. package/src/TimePicker.ts +0 -155
  862. package/src/TimePickerBase.ts +0 -494
  863. package/src/TimeSelection.ts +0 -510
  864. package/src/Title.ts +0 -110
  865. package/src/Toast.ts +0 -226
  866. package/src/ToggleButton.ts +0 -74
  867. package/src/Token.ts +0 -237
  868. package/src/Tokenizer.ts +0 -737
  869. package/src/Tree.ts +0 -509
  870. package/src/TreeItem.ts +0 -90
  871. package/src/TreeItemBase.ts +0 -410
  872. package/src/TreeItemCustom.ts +0 -89
  873. package/src/TreeList.ts +0 -44
  874. package/src/WheelSlider.ts +0 -432
  875. package/src/YearPicker.ts +0 -386
  876. package/src/features/ColorPaletteMoreColors.ts +0 -45
  877. package/src/features/InputElementsFormSupport.ts +0 -141
  878. package/src/features/InputSuggestions.ts +0 -669
  879. package/src/popup-utils/OpenedPopupsRegistry.ts +0 -76
  880. package/src/popup-utils/PopoverRegistry.ts +0 -166
  881. package/src/timepicker-utils/TimeSlider.ts +0 -120
  882. package/src/types/AvatarColorScheme.ts +0 -89
  883. package/src/types/AvatarGroupType.ts +0 -28
  884. package/src/types/AvatarShape.ts +0 -26
  885. package/src/types/AvatarSize.ts +0 -52
  886. package/src/types/BreadcrumbsDesign.ts +0 -28
  887. package/src/types/BreadcrumbsSeparatorStyle.ts +0 -55
  888. package/src/types/BusyIndicatorSize.ts +0 -33
  889. package/src/types/ButtonDesign.ts +0 -54
  890. package/src/types/CalendarPickersMode.ts +0 -34
  891. package/src/types/CalendarSelectionMode.ts +0 -33
  892. package/src/types/CarouselArrowsPlacement.ts +0 -26
  893. package/src/types/CarouselPageIndicatorStyle.ts +0 -27
  894. package/src/types/ComboBoxFilter.ts +0 -40
  895. package/src/types/HasPopup.ts +0 -47
  896. package/src/types/IconDesign.ts +0 -68
  897. package/src/types/InputType.ts +0 -54
  898. package/src/types/LinkDesign.ts +0 -33
  899. package/src/types/ListGrowingMode.ts +0 -34
  900. package/src/types/ListItemType.ts +0 -40
  901. package/src/types/ListMode.ts +0 -63
  902. package/src/types/ListSeparators.ts +0 -32
  903. package/src/types/MessageStripDesign.ts +0 -40
  904. package/src/types/PanelAccessibleRole.ts +0 -37
  905. package/src/types/PopoverHorizontalAlign.ts +0 -40
  906. package/src/types/PopoverPlacementType.ts +0 -40
  907. package/src/types/PopoverVerticalAlign.ts +0 -40
  908. package/src/types/PopupAccessibleRole.ts +0 -34
  909. package/src/types/Priority.ts +0 -40
  910. package/src/types/SemanticColor.ts +0 -47
  911. package/src/types/SwitchDesign.ts +0 -26
  912. package/src/types/TabContainerBackgroundDesign.ts +0 -33
  913. package/src/types/TabContainerTabsPlacement.ts +0 -26
  914. package/src/types/TabLayout.ts +0 -26
  915. package/src/types/TableColumnPopinDisplay.ts +0 -26
  916. package/src/types/TableGrowingMode.ts +0 -34
  917. package/src/types/TableMode.ts +0 -33
  918. package/src/types/TableRowType.ts +0 -26
  919. package/src/types/TabsOverflowMode.ts +0 -26
  920. package/src/types/TitleLevel.ts +0 -54
  921. package/src/types/ToastPlacement.ts +0 -77
  922. package/src/types/WrappingType.ts +0 -26
  923. /package/config/postcss.components/{postcss.config.js → postcss.config.cjs} +0 -0
  924. /package/config/postcss.themes/{postcss.config.js → postcss.config.cjs} +0 -0
  925. /package/dist/assets/{kitchen-scripts.7e433e08.css → kitchen-styles.7e433e08.css} +0 -0
  926. /package/{package-scripts.js → package-scripts.cjs} +0 -0
@@ -1,1698 +0,0 @@
1
- import UI5Element from "@ui5/webcomponents-base/dist/UI5Element.js";
2
- import customElement from "@ui5/webcomponents-base/dist/decorators/customElement.js";
3
- import property from "@ui5/webcomponents-base/dist/decorators/property.js";
4
- import slot from "@ui5/webcomponents-base/dist/decorators/slot.js";
5
- import event from "@ui5/webcomponents-base/dist/decorators/event.js";
6
- import type { ClassMap, Timeout } from "@ui5/webcomponents-base/dist/types.js";
7
- import litRender from "@ui5/webcomponents-base/dist/renderer/LitRenderer.js";
8
- import ResizeHandler from "@ui5/webcomponents-base/dist/delegate/ResizeHandler.js";
9
- import type { ResizeObserverCallback } from "@ui5/webcomponents-base/dist/delegate/ResizeHandler.js";
10
- import ValueState from "@ui5/webcomponents-base/dist/types/ValueState.js";
11
- import {
12
- isShow,
13
- isDown,
14
- isUp,
15
- isSpace,
16
- isSpaceCtrl,
17
- isSpaceShift,
18
- isRight,
19
- isHome,
20
- isEnd,
21
- isTabNext,
22
- isTabPrevious,
23
- isUpShift,
24
- isDownShift,
25
- isLeftCtrl,
26
- isRightCtrl,
27
- isUpCtrl,
28
- isDownCtrl,
29
- isHomeCtrl,
30
- isEndCtrl,
31
- isCtrlA,
32
- isCtrlV,
33
- isDeleteShift,
34
- isInsertShift,
35
- isInsertCtrl,
36
- isBackSpace,
37
- isDelete,
38
- isEscape,
39
- isEnter,
40
- } from "@ui5/webcomponents-base/dist/Keys.js";
41
- import Integer from "@ui5/webcomponents-base/dist/types/Integer.js";
42
- import "@ui5/webcomponents-icons/dist/slim-arrow-down.js";
43
- import {
44
- isPhone,
45
- isAndroid,
46
- } from "@ui5/webcomponents-base/dist/Device.js";
47
- import type I18nBundle from "@ui5/webcomponents-base/dist/i18nBundle.js";
48
- import { getI18nBundle } from "@ui5/webcomponents-base/dist/i18nBundle.js";
49
- import "@ui5/webcomponents-icons/dist/decline.js";
50
- import "@ui5/webcomponents-icons/dist/multiselect-all.js";
51
- import "@ui5/webcomponents-icons/dist/not-editable.js";
52
- import "@ui5/webcomponents-icons/dist/error.js";
53
- import "@ui5/webcomponents-icons/dist/alert.js";
54
- import "@ui5/webcomponents-icons/dist/sys-enter-2.js";
55
- import "@ui5/webcomponents-icons/dist/information.js";
56
- import { getFeature } from "@ui5/webcomponents-base/dist/FeaturesRegistry.js";
57
- import { getEffectiveAriaLabelText } from "@ui5/webcomponents-base/dist/util/AriaLabelHelper.js";
58
- import MultiComboBoxItem from "./MultiComboBoxItem.js";
59
- import MultiComboBoxGroupItem from "./MultiComboBoxGroupItem.js";
60
- import GroupHeaderListItem from "./GroupHeaderListItem.js";
61
- import Tokenizer, { ClipboardDataOperation } from "./Tokenizer.js";
62
- import type { TokenizerTokenDeleteEventDetail } from "./Tokenizer.js";
63
- import Token from "./Token.js";
64
- import Icon from "./Icon.js";
65
- import Popover from "./Popover.js";
66
- import ResponsivePopover from "./ResponsivePopover.js";
67
- import List from "./List.js";
68
- import type { SelectionChangeEventDetail } from "./List.js";
69
- import StandardListItem from "./StandardListItem.js";
70
- import ToggleButton from "./ToggleButton.js";
71
- import * as Filters from "./Filters.js";
72
- import Button from "./Button.js";
73
- import {
74
- VALUE_STATE_SUCCESS,
75
- VALUE_STATE_ERROR,
76
- VALUE_STATE_WARNING,
77
- VALUE_STATE_INFORMATION,
78
- VALUE_STATE_TYPE_SUCCESS,
79
- VALUE_STATE_TYPE_INFORMATION,
80
- VALUE_STATE_TYPE_ERROR,
81
- VALUE_STATE_TYPE_WARNING,
82
- INPUT_SUGGESTIONS_TITLE,
83
- SELECT_OPTIONS,
84
- MULTICOMBOBOX_DIALOG_OK_BUTTON,
85
- VALUE_STATE_ERROR_ALREADY_SELECTED,
86
- } from "./generated/i18n/i18n-defaults.js";
87
-
88
- // Templates
89
- import MultiComboBoxTemplate from "./generated/templates/MultiComboBoxTemplate.lit.js";
90
- import MultiComboBoxPopoverTemplate from "./generated/templates/MultiComboBoxPopoverTemplate.lit.js";
91
-
92
- // Styles
93
- import multiCbxStyles from "./generated/themes/MultiComboBox.css.js";
94
- import ResponsivePopoverCommonCss from "./generated/themes/ResponsivePopoverCommon.css.js";
95
- import ValueStateMessageCss from "./generated/themes/ValueStateMessage.css.js";
96
- import SuggestionsCss from "./generated/themes/Suggestions.css.js";
97
- import MultiComboBoxPopover from "./generated/themes/MultiComboBoxPopover.css.js";
98
- import ComboBoxFilter from "./types/ComboBoxFilter.js";
99
- import type FormSupportT from "./features/InputElementsFormSupport.js";
100
- import type ListItemBase from "./ListItemBase.js";
101
-
102
- interface IMultiComboBoxItem extends UI5Element {
103
- text: string,
104
- selected: boolean,
105
- isGroupItem?: boolean,
106
- stableDomRef: string,
107
- }
108
-
109
- type ValueStateAnnouncement = Record<Exclude<ValueState, ValueState.None>, string>;
110
- type ValueStateTypeAnnouncement = Record<Exclude<ValueState, ValueState.None>, string>;
111
-
112
- type MultiComboBoxSelectionChangeEventDetail = {
113
- items: Array<MultiComboBoxItem>,
114
- };
115
-
116
- type MultiComboboxItemWithSelection = {
117
- ref: IMultiComboBoxItem,
118
- selected: boolean,
119
- };
120
-
121
- /**
122
- * @class
123
- *
124
- * <h3 class="comment-api-title">Overview</h3>
125
- *
126
- * 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.
127
- *
128
- * 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.
129
- * The options in the list have checkboxes that permit multi-selection. Entered values are displayed as tokens.
130
- * <h3>Structure</h3>
131
- * The <code>ui5-multi-combobox</code> consists of the following elements:
132
- * <ul>
133
- * <li> Tokenizer - a list of tokens with selected options.</li>
134
- * <li> Input field - displays the selected option/s as token/s. Users can type to filter the list.</li>
135
- * <li> Drop-down arrow - expands\collapses the option list.</li>
136
- * <li> Option list - the list of available options.</li>
137
- * </ul>
138
- * <h3>Keyboard Handling</h3>
139
- *
140
- * The <code>ui5-multi-combobox</code> provides advanced keyboard handling.
141
- *
142
- * <h4>Picker</h4>
143
- * If the <code>ui5-multi-combobox</code> is focused,
144
- * you can open or close the drop-down by pressing <code>F4</code>, <code>ALT+UP</code> or <code>ALT+DOWN</code> keys.
145
- * Once the drop-down is opened, you can use the <code>UP</code> and <code>DOWN</code> arrow keys
146
- * to navigate through the available options and select one by pressing the <code>Space</code> or <code>Enter</code> keys.
147
- * <br>
148
- *
149
- * <h4>Tokens</h4>
150
- * <ul>
151
- * <li> Left/Right arrow keys - moves the focus selection form the currently focused token to the previous/next one (if available). </li>
152
- * <li> Delete - deletes the token and focuses the previous token. </li>
153
- * <li> Backspace - deletes the token and focus the next token. </li>
154
- * </ul>
155
- *
156
- * <h3>CSS Shadow Parts</h3>
157
- *
158
- * <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.
159
- * <br>
160
- * The <code>ui5-multi-combobox</code> exposes the following CSS Shadow Parts:
161
- * <ul>
162
- * <li>token-{index} - Used to style each token(where <code>token-0</code> corresponds to the first item)</li>
163
- * </ul>
164
- *
165
- * <h3>ES6 Module Import</h3>
166
- *
167
- * <code>import "@ui5/webcomponents/dist/MultiComboBox";</code>
168
- *
169
- *
170
- * @constructor
171
- * @author SAP SE
172
- * @alias sap.ui.webc.main.MultiComboBox
173
- * @extends sap.ui.webc.base.UI5Element
174
- * @tagname ui5-multi-combobox
175
- * @public
176
- * @appenddocs sap.ui.webc.main.MultiComboBoxItem sap.ui.webc.main.MultiComboBoxGroupItem
177
- * @since 0.11.0
178
- */
179
- @customElement({
180
- tag: "ui5-multi-combobox",
181
- languageAware: true,
182
- renderer: litRender,
183
- template: MultiComboBoxTemplate,
184
- staticAreaTemplate: MultiComboBoxPopoverTemplate,
185
- styles: multiCbxStyles,
186
- staticAreaStyles: [ResponsivePopoverCommonCss, ValueStateMessageCss, SuggestionsCss, MultiComboBoxPopover],
187
- dependencies: [
188
- MultiComboBoxItem,
189
- MultiComboBoxGroupItem,
190
- Tokenizer,
191
- Token,
192
- Icon,
193
- ResponsivePopover,
194
- Popover,
195
- List,
196
- StandardListItem,
197
- GroupHeaderListItem,
198
- ToggleButton,
199
- Button,
200
- ],
201
- })
202
- /**
203
- * Fired when the input operation has finished by pressing Enter or on focusout.
204
- *
205
- * @event sap.ui.webc.main.MultiComboBox#change
206
- * @public
207
- */
208
- @event("change")
209
-
210
- /**
211
- * Fired when the value of the component changes at each keystroke.
212
- *
213
- * @event sap.ui.webc.main.MultiComboBox#input
214
- * @public
215
- */
216
- @event("input")
217
-
218
- /**
219
- * Fired when the dropdown is opened or closed.
220
- *
221
- * @event sap.ui.webc.main.MultiComboBox#open-change
222
- * @since 1.0.0-rc.5
223
- * @public
224
- */
225
- @event("open-change")
226
-
227
- /**
228
- * Fired when selection is changed by user interaction
229
- * in <code>SingleSelect</code> and <code>MultiSelect</code> modes.
230
- *
231
- * @event sap.ui.webc.main.MultiComboBox#selection-change
232
- * @param {Array} items an array of the selected items.
233
- * @public
234
- */
235
- @event("selection-change", {
236
- detail: {
237
- items: { type: Array },
238
- },
239
- })
240
-
241
- class MultiComboBox extends UI5Element {
242
- /**
243
- * Defines the value of the component.
244
- * <br><br>
245
- * <b>Note:</b> The property is updated upon typing.
246
- *
247
- * @type {string}
248
- * @name sap.ui.webc.main.MultiComboBox.prototype.value
249
- * @defaultvalue ""
250
- * @formEvents change input
251
- * @formProperty
252
- * @public
253
- */
254
- @property()
255
- value!: string;
256
-
257
- /**
258
- * Defines whether the value will be autcompleted to match an item
259
- *
260
- * @type {boolean}
261
- * @name sap.ui.webc.main.MultiComboBox.prototype.noTypeahead
262
- * @defaultvalue false
263
- * @public
264
- * @since 1.4.0
265
- */
266
- @property({ type: Boolean })
267
- noTypeahead!: boolean;
268
-
269
- /**
270
- * Defines a short hint intended to aid the user with data entry when the
271
- * component has no value.
272
- * @type {string}
273
- * @name sap.ui.webc.main.MultiComboBox.prototype.placeholder
274
- * @defaultvalue ""
275
- * @public
276
- */
277
- @property()
278
- placeholder!: string;
279
-
280
- /**
281
- * Defines if the user input will be prevented, if no matching item has been found
282
- *
283
- * @type {boolean}
284
- * @name sap.ui.webc.main.MultiComboBox.prototype.allowCustomValues
285
- * @defaultvalue false
286
- * @public
287
- */
288
- @property({ type: Boolean })
289
- allowCustomValues!: boolean;
290
-
291
- /**
292
- * Defines whether the component is in disabled state.
293
- * <br><br>
294
- * <b>Note:</b> A disabled component is completely noninteractive.
295
- *
296
- * @type {boolean}
297
- * @name sap.ui.webc.main.MultiComboBox.prototype.disabled
298
- * @defaultvalue false
299
- * @public
300
- */
301
- @property({ type: Boolean })
302
- disabled!: boolean;
303
-
304
- /**
305
- * Defines the value state of the component.
306
- * <br><br>
307
- * Available options are:
308
- * <ul>
309
- * <li><code>None</code></li>
310
- * <li><code>Error</code></li>
311
- * <li><code>Warning</code></li>
312
- * <li><code>Success</code></li>
313
- * <li><code>Information</code></li>
314
- * </ul>
315
- *
316
- * @type {sap.ui.webc.base.types.ValueState}
317
- * @name sap.ui.webc.main.MultiComboBox.prototype.valueState
318
- * @defaultvalue "None"
319
- * @public
320
- */
321
- @property({ type: ValueState, defaultValue: ValueState.None })
322
- valueState!: ValueState;
323
-
324
- /**
325
- * Defines whether the component is read-only.
326
- * <br><br>
327
- * <b>Note:</b> A read-only component is not editable,
328
- * but still provides visual feedback upon user interaction.
329
- *
330
- * @type {boolean}
331
- * @name sap.ui.webc.main.MultiComboBox.prototype.readonly
332
- * @defaultvalue false
333
- * @public
334
- */
335
- @property({ type: Boolean })
336
- readonly!: boolean;
337
-
338
- /**
339
- * Defines whether the component is required.
340
- *
341
- * @type {boolean}
342
- * @name sap.ui.webc.main.MultiComboBox.prototype.required
343
- * @defaultvalue false
344
- * @public
345
- * @since 1.0.0-rc.5
346
- */
347
- @property({ type: Boolean })
348
- required!: boolean;
349
-
350
- /**
351
- * Defines the filter type of the component.
352
- * Available options are: <code>StartsWithPerTerm</code>, <code>StartsWith</code>, <code>Contains</code> and <code>None</code>.
353
- *
354
- * @type {string}
355
- * @name sap.ui.webc.main.MultiComboBox.prototype.filter
356
- * @defaultvalue "StartsWithPerTerm"
357
- * @public
358
- */
359
- @property({ type: ComboBoxFilter, defaultValue: ComboBoxFilter.StartsWithPerTerm })
360
- filter!: ComboBoxFilter;
361
-
362
- /**
363
- * Indicates whether the dropdown is open. True if the dropdown is open, false otherwise.
364
- *
365
- * @type {boolean}
366
- * @name sap.ui.webc.main.MultiComboBox.prototype.open
367
- * @defaultvalue false
368
- * @readonly
369
- * @since 1.0.0-rc.5
370
- * @public
371
- */
372
- @property({ type: Boolean })
373
- open!: boolean;
374
-
375
- /**
376
- * Defines the accessible ARIA name of the component.
377
- *
378
- * @type {string}
379
- * @name sap.ui.webc.main.MultiComboBox.prototype.accessibleName
380
- * @defaultvalue: ""
381
- * @public
382
- * @since 1.4.0
383
- */
384
- @property()
385
- accessibleName!: string;
386
-
387
- /**
388
- * Receives id(or many ids) of the elements that label the component.
389
- *
390
- * @type {string}
391
- * @name sap.ui.webc.main.MultiComboBox.prototype.accessibleNameRef
392
- * @defaultvalue ""
393
- * @public
394
- * @since 1.4.0
395
- */
396
- @property()
397
- accessibleNameRef!: string;
398
-
399
- @property({ type: Object, noAttribute: true, multiple: true })
400
- _filteredItems!: Array<IMultiComboBoxItem>;
401
-
402
- @property({ type: Boolean })
403
- filterSelected!: boolean;
404
-
405
- @property({ type: Boolean })
406
- focused!: boolean;
407
-
408
- @property({ type: Boolean, noAttribute: true })
409
- _tokenizerFocused!: boolean;
410
-
411
- @property({ type: Boolean, noAttribute: true })
412
- _iconPressed!: boolean;
413
-
414
- @property({ validator: Integer, noAttribute: true })
415
- _inputWidth!: number;
416
-
417
- @property({ validator: Integer, noAttribute: true, defaultValue: 0 })
418
- _listWidth!: number;
419
-
420
- @property({ type: Boolean, noAttribute: true })
421
- _performingSelectionTwice!: boolean;
422
-
423
- /**
424
- * Indicates whether the tokenizer has tokens
425
- * @private
426
- */
427
- @property({ type: Boolean })
428
- tokenizerAvailable!: boolean;
429
-
430
- /**
431
- * Defines the component items.
432
- *
433
- * @type {sap.ui.webc.main.IMultiComboBoxItem[]}
434
- * @name sap.ui.webc.main.MultiComboBox.prototype.default
435
- * @slot items
436
- * @public
437
- */
438
- @slot({ type: HTMLElement, "default": true, invalidateOnChildChange: true })
439
- items!: Array<IMultiComboBoxItem>;
440
-
441
- /**
442
- * Defines the icon to be displayed in the component.
443
- *
444
- * @type {sap.ui.webc.main.IIcon[]}
445
- * @name sap.ui.webc.main.MultiComboBox.prototype.icon
446
- * @slot
447
- * @public
448
- * @since 1.0.0-rc.9
449
- */
450
- @slot()
451
- icon!: Array<Icon>;
452
-
453
- /**
454
- * Defines the value state message that will be displayed as pop up under the component.
455
- * <br><br>
456
- *
457
- * <b>Note:</b> If not specified, a default text (in the respective language) will be displayed.
458
- * <br>
459
- * <b>Note:</b> The <code>valueStateMessage</code> would be displayed,
460
- * when the component is in <code>Information</code>, <code>Warning</code> or <code>Error</code> value state.
461
- * @type {HTMLElement[]}
462
- * @name sap.ui.webc.main.MultiComboBox.prototype.valueStateMessage
463
- * @since 1.0.0-rc.9
464
- * @slot
465
- * @public
466
- */
467
- @slot()
468
- valueStateMessage!: Array<HTMLElement>;
469
-
470
- selectedValues: Array<IMultiComboBoxItem>;
471
- _inputLastValue: string;
472
- _valueBeforeOpen: string
473
- _deleting: boolean;
474
- _validationTimeout: Timeout | null;
475
- _handleResizeBound: ResizeObserverCallback;
476
- valueBeforeAutoComplete: string;
477
- currentItemIdx: number;
478
- _lastValue: string;
479
- _shouldFilterItems?: boolean;
480
- _showMorePressed?: boolean;
481
- allItemsPopover?: ResponsivePopover;
482
- valueStateHeader?: HTMLElement;
483
- list?: List;
484
- _shouldAutocomplete?: boolean;
485
- _preventTokenizerToggle?: boolean;
486
- _isOpenedByKeyboard?: boolean;
487
- _itemToFocus?: IMultiComboBoxItem;
488
- _itemsBeforeOpen: Array<MultiComboboxItemWithSelection>;
489
- selectedItems?: Array<IMultiComboBoxItem>;
490
- FormSupport?: typeof FormSupportT;
491
- static i18nBundle: I18nBundle;
492
-
493
- constructor() {
494
- super();
495
-
496
- this._filteredItems = [];
497
- this.selectedValues = [];
498
- this._itemsBeforeOpen = [];
499
- this._inputLastValue = "";
500
- this._valueBeforeOpen = "";
501
- this._deleting = false;
502
- this._validationTimeout = null;
503
- this._handleResizeBound = this._handleResize.bind(this);
504
- this.valueBeforeAutoComplete = "";
505
- this._lastValue = "";
506
- this.currentItemIdx = -1;
507
- this.FormSupport = undefined;
508
- }
509
-
510
- onEnterDOM() {
511
- ResizeHandler.register(this, this._handleResizeBound);
512
- }
513
-
514
- onExitDOM() {
515
- ResizeHandler.deregister(this, this._handleResizeBound);
516
- }
517
-
518
- _handleResize() {
519
- this._inputWidth = this.offsetWidth;
520
- }
521
-
522
- _inputChange() {
523
- this.fireEvent("change");
524
- }
525
-
526
- togglePopover() {
527
- this.allItemsPopover?.toggle(this);
528
- }
529
-
530
- togglePopoverByDropdownIcon() {
531
- this._shouldFilterItems = false;
532
- this.allItemsPopover?.toggle(this);
533
- }
534
-
535
- _showFilteredItems() {
536
- this.filterSelected = true;
537
- this._showMorePressed = true;
538
-
539
- this.togglePopover();
540
- }
541
-
542
- filterSelectedItems(e: MouseEvent) {
543
- this.filterSelected = (e.target as ToggleButton).pressed;
544
- const selectedItems = this._filteredItems.filter(item => item.selected);
545
- this.selectedItems = this.items.filter((item, idx, allItems) => MultiComboBox._groupItemFilter(item, ++idx, allItems, selectedItems) || selectedItems.indexOf(item) !== -1);
546
- }
547
-
548
- get _showAllItemsButtonPressed(): boolean {
549
- return this.filterSelected;
550
- }
551
-
552
- get _inputDom(): HTMLInputElement {
553
- return this.shadowRoot!.querySelector("#ui5-multi-combobox-input")!;
554
- }
555
-
556
- _inputLiveChange(e: InputEvent) {
557
- const input = e.target as HTMLInputElement;
558
- const value: string = input.value;
559
- const filteredItems: Array<IMultiComboBoxItem> = this._filterItems(value);
560
- const oldValueState: ValueState = this.valueState;
561
-
562
- this._shouldFilterItems = true;
563
-
564
- if (this.filterSelected) {
565
- this.filterSelected = false;
566
- }
567
-
568
- if (this._validationTimeout) {
569
- input.value = this._inputLastValue;
570
- return;
571
- }
572
-
573
- if (!filteredItems.length && value && !this.allowCustomValues) {
574
- input.value = this.valueBeforeAutoComplete || this._inputLastValue;
575
- this.valueState = ValueState.Error;
576
-
577
- this._shouldAutocomplete = false;
578
- this._resetValueState(oldValueState);
579
-
580
- return;
581
- }
582
-
583
- this._inputLastValue = input.value;
584
- this.value = input.value;
585
- this._filteredItems = filteredItems;
586
-
587
- if (!isPhone()) {
588
- if (filteredItems.length === 0) {
589
- this.allItemsPopover?.close();
590
- } else {
591
- this.allItemsPopover?.showAt(this);
592
- }
593
- }
594
-
595
- this.fireEvent("input");
596
- }
597
-
598
- _tokenDelete(e: CustomEvent<TokenizerTokenDeleteEventDetail>) {
599
- const token: Token = e.detail.ref;
600
- const deletingItem = this.items.find(item => item._id === token.getAttribute("data-ui5-id"))!;
601
-
602
- deletingItem.selected = false;
603
- this._deleting = true;
604
-
605
- this.fireSelectionChange();
606
- }
607
-
608
- get _getPlaceholder(): string {
609
- if (this._getSelectedItems().length) {
610
- return "";
611
- }
612
-
613
- return this.placeholder;
614
- }
615
-
616
- _handleArrowLeft() {
617
- const inputDomRef = this._inputDom;
618
- const cursorPosition = inputDomRef.selectionStart || 0;
619
- const isTextSelected = ((inputDomRef.selectionEnd || 0) - cursorPosition) > 0;
620
-
621
- if (cursorPosition === 0 && !isTextSelected) {
622
- this._tokenizer._focusLastToken();
623
- }
624
- }
625
-
626
- _tokenizerFocusOut(e: FocusEvent) {
627
- this._tokenizerFocused = false;
628
-
629
- const tokensCount = this._tokenizer.tokens.length;
630
- const selectedTokens = this._selectedTokensCount;
631
- const lastTokenBeingDeleted = tokensCount - 1 === 0 && this._deleting;
632
- const allTokensAreBeingDeleted = selectedTokens === tokensCount && this._deleting;
633
- const relatedTarget: HTMLElement | undefined = e.relatedTarget as HTMLElement;
634
-
635
- if (!relatedTarget || !relatedTarget.hasAttribute("ui5-token")) {
636
- this._tokenizer.tokens.forEach(token => {
637
- token.selected = false;
638
- });
639
-
640
- this._tokenizer.expanded = this._preventTokenizerToggle ? this._tokenizer.expanded : false;
641
- }
642
-
643
- if (allTokensAreBeingDeleted || lastTokenBeingDeleted) {
644
- setTimeout(() => {
645
- if (!isPhone()) {
646
- this._inputDom.focus();
647
- }
648
-
649
- this._deleting = false;
650
- }, 0);
651
- }
652
- }
653
-
654
- _tokenizerFocusIn() {
655
- this._tokenizerFocused = true;
656
- this.focused = false;
657
- }
658
-
659
- _onkeydown(e: KeyboardEvent) {
660
- const isArrowDownCtrl: boolean = isDownCtrl(e);
661
-
662
- if (isShow(e) && !this.disabled) {
663
- this._handleShow(e);
664
- return;
665
- }
666
-
667
- if (isDownShift(e) || isUpShift(e)) {
668
- e.preventDefault();
669
- return;
670
- }
671
-
672
- if (isUp(e) || isDown(e) || isUpCtrl(e) || isArrowDownCtrl) {
673
- this._handleArrowNavigation(e, isArrowDownCtrl);
674
- return;
675
- }
676
-
677
- // CTRL + Arrow Down navigation is performed by the ItemNavigation module of the List,
678
- // here we only implement the text selection of the selected item
679
- if (isArrowDownCtrl && !this.allItemsPopover?.opened) {
680
- setTimeout(() => this._inputDom.setSelectionRange(0, this._inputDom.value.length), 0);
681
- }
682
-
683
- if (isLeftCtrl(e) || isRightCtrl(e)) {
684
- this._handleArrowCtrl(e);
685
- return;
686
- }
687
-
688
- if (isCtrlV(e) || isInsertShift(e)) {
689
- this._handlePaste();
690
- return;
691
- }
692
-
693
- if (isSpaceShift(e)) {
694
- e.preventDefault();
695
- }
696
-
697
- if (
698
- e.key === "ArrowLeft"
699
- || e.key === "Show"
700
- || e.key === "PageUp"
701
- || e.key === "PageDown"
702
- || e.key === "Backspace"
703
- || e.key === "Escape"
704
- || e.key === "Home"
705
- || e.key === "End"
706
- || e.key === "Tab"
707
- || e.key === "ArrowDown"
708
- || e.key === "Enter"
709
- ) {
710
- this[`_handle${e.key}`](e);
711
- }
712
-
713
- this._shouldAutocomplete = !this.noTypeahead && !(isBackSpace(e) || isDelete(e) || isEscape(e) || isEnter(e));
714
- }
715
-
716
- async _handlePaste() {
717
- if (this.readonly) {
718
- return;
719
- }
720
-
721
- const pastedText = await navigator.clipboard.readText();
722
-
723
- if (!pastedText) {
724
- return;
725
- }
726
-
727
- const separatedText = pastedText.split(/\r\n|\r|\n/g);
728
- const matchingItems = this.items.filter(item => separatedText.indexOf(item.text) > -1 && !item.selected);
729
-
730
- if (matchingItems.length) {
731
- matchingItems.forEach(item => {
732
- item.selected = true;
733
- this.value = "";
734
- this.fireSelectionChange();
735
- });
736
- } else {
737
- this.value = pastedText;
738
- this.fireEvent("input");
739
- }
740
- }
741
-
742
- _handleShow(e: KeyboardEvent) {
743
- const items = this.items;
744
- const selectedItem = this._getSelectedItems()[0];
745
- const focusedToken = this._tokenizer.tokens.find(token => token.focused);
746
- const value = this.value;
747
- const matchingItem = this.items.find(item => item.text.localeCompare(value, undefined, { sensitivity: "base" }) === 0);
748
-
749
- e.preventDefault();
750
-
751
- if (this.readonly) {
752
- return;
753
- }
754
-
755
- this._isOpenedByKeyboard = true;
756
- this._shouldFilterItems = false;
757
- this._filteredItems = this.items;
758
-
759
- this.togglePopover();
760
-
761
- if (!focusedToken && matchingItem) {
762
- this._itemToFocus = matchingItem;
763
- return;
764
- }
765
-
766
- if (selectedItem && !focusedToken) {
767
- this._itemToFocus = selectedItem;
768
- } else if (focusedToken && e.target === focusedToken) {
769
- this._itemToFocus = items.find(item => item.text === focusedToken.text);
770
- } else {
771
- this._itemToFocus = items[0];
772
- }
773
- }
774
-
775
- _handlePageUp(e: KeyboardEvent) {
776
- e.preventDefault();
777
- }
778
-
779
- _handlePageDown(e: KeyboardEvent) {
780
- e.preventDefault();
781
- }
782
-
783
- _handleBackspace(e: KeyboardEvent) {
784
- if ((e.target as HTMLInputElement).value === "") {
785
- e.preventDefault();
786
- this._tokenizer._focusLastToken();
787
- }
788
- }
789
-
790
- _handleEscape() {
791
- const innerInput = this._innerInput;
792
- const isAutoCompleted = ((innerInput.selectionEnd || 0) - (innerInput.selectionStart || 0)) > 0;
793
-
794
- if (isAutoCompleted) {
795
- this.value = this.valueBeforeAutoComplete;
796
- }
797
-
798
- if (!this.allowCustomValues || (!this.open && this.allowCustomValues)) {
799
- this.value = this._lastValue;
800
- }
801
- }
802
-
803
- _handleHome(e: KeyboardEvent) {
804
- const shouldFocusToken = this._isFocusInside && (e.target as HTMLInputElement).selectionStart === 0 && this._tokenizer.tokens.length > 0;
805
-
806
- if (shouldFocusToken) {
807
- e.preventDefault();
808
- this._tokenizer.tokens[0].focus();
809
- }
810
- }
811
-
812
- _handleEnd(e: KeyboardEvent) {
813
- const tokens = this._tokenizer.tokens;
814
- const lastTokenIdx = tokens.length - 1;
815
- const shouldFocusInput = e.target === tokens[lastTokenIdx] && tokens[lastTokenIdx] === this.shadowRoot!.activeElement;
816
-
817
- if (shouldFocusInput) {
818
- e.preventDefault();
819
- this._inputDom.focus();
820
- }
821
- }
822
-
823
- _handleTab() {
824
- this.allItemsPopover?.close();
825
- }
826
-
827
- _handleSelectAll() {
828
- const filteredItems = this._filteredItems;
829
- const allItemsSelected = filteredItems.every(item => item.selected);
830
-
831
- filteredItems.forEach(item => {
832
- item.selected = !allItemsSelected;
833
- });
834
-
835
- this.fireSelectionChange();
836
- }
837
-
838
- _onValueStateKeydown(e: KeyboardEvent) {
839
- const isArrowDown = isDown(e);
840
- const isArrowUp = isUp(e);
841
-
842
- if (isTabNext(e) || isTabPrevious(e)) {
843
- this._onItemTab();
844
- return;
845
- }
846
-
847
- e.preventDefault();
848
-
849
- if (isArrowDown || isDownCtrl(e)) {
850
- this._handleArrowDown();
851
- }
852
-
853
- if (isArrowUp || isUpCtrl(e)) {
854
- this._shouldAutocomplete = true;
855
- this._inputDom.focus();
856
- }
857
- }
858
-
859
- async _onItemKeydown(e: KeyboardEvent) {
860
- const isFirstItem = this.list?.items[0] === e.target;
861
- const isArrowUp = isUp(e) || isUpCtrl(e);
862
-
863
- if (this.hasValueStateMessage && !this.valueStateHeader) {
864
- await this._setValueStateHeader();
865
- }
866
-
867
- if (isTabNext(e) || isTabPrevious(e)) {
868
- this._onItemTab();
869
- return;
870
- }
871
-
872
- if (isHomeCtrl(e)) {
873
- this.list?._itemNavigation._handleHome();
874
- this.list?.items[this.list?._itemNavigation._currentIndex].focus();
875
- }
876
-
877
- if (isEndCtrl(e)) {
878
- this.list?._itemNavigation._handleEnd();
879
- this.list?.items[this.list?._itemNavigation._currentIndex].focus();
880
- }
881
-
882
- e.preventDefault();
883
-
884
- if (isDownShift(e) || isUpShift(e)) {
885
- this._handleItemRangeSelection(e);
886
- return;
887
- }
888
-
889
- if ((isUpCtrl(e)) && !isFirstItem) {
890
- this.list?._itemNavigation._handleUp();
891
- this.list?.items[this.list?._itemNavigation._currentIndex].focus();
892
- }
893
-
894
- if (isDownCtrl(e)) {
895
- this.list?._itemNavigation._handleDown();
896
- this.list?.items[this.list?._itemNavigation._currentIndex].focus();
897
- }
898
-
899
- if (isShow(e)) {
900
- this.togglePopover();
901
- }
902
-
903
- if (isCtrlA(e)) {
904
- this._handleSelectAll();
905
- return;
906
- }
907
-
908
- if (((isArrowUp && isFirstItem) || isHome(e)) && this.valueStateHeader) {
909
- this.valueStateHeader.focus();
910
- }
911
-
912
- if (!this.valueStateHeader && isFirstItem && isArrowUp) {
913
- this._inputDom.focus();
914
- this._shouldAutocomplete = true;
915
- }
916
- }
917
-
918
- _handleArrowCtrl(e: KeyboardEvent) {
919
- const input = this._inputDom;
920
- const isArrowLeft = isLeftCtrl(e);
921
-
922
- if (isArrowLeft && input.selectionStart === 0 && input.selectionEnd === 0) {
923
- e.preventDefault();
924
- }
925
-
926
- if (isArrowLeft && ((input.selectionEnd || 0) - (input.selectionStart || 0) > 0)) {
927
- input.setSelectionRange(0, 0);
928
- }
929
- }
930
-
931
- _onItemTab() {
932
- this._inputDom.focus();
933
- this.allItemsPopover?.close();
934
- }
935
-
936
- async _handleArrowNavigation(e: KeyboardEvent, isDownControl: boolean) {
937
- const isArrowDown = isDownControl || isDown(e);
938
- const hasSuggestions = this.items.length;
939
- const isOpen = this.allItemsPopover?.opened;
940
-
941
- e.preventDefault();
942
-
943
- if (this.hasValueStateMessage && !this.valueStateHeader) {
944
- await this._setValueStateHeader();
945
- }
946
-
947
- if (isArrowDown && isOpen && this.valueStateHeader) {
948
- this.value = this.valueBeforeAutoComplete || this.value;
949
- this.valueStateHeader.focus();
950
- return;
951
- }
952
-
953
- if (isArrowDown && hasSuggestions) {
954
- this._handleArrowDown();
955
- }
956
-
957
- if (!isArrowDown && !isOpen && !this.readonly) {
958
- this._navigateToPrevItem();
959
- }
960
- }
961
-
962
- _handleArrowDown() {
963
- const isOpen = this.allItemsPopover?.opened;
964
- const firstListItem = this.list?.items[0];
965
-
966
- if (isOpen) {
967
- firstListItem && this.list?._itemNavigation.setCurrentItem(firstListItem);
968
- this.value = this.valueBeforeAutoComplete || this.value;
969
- firstListItem?.focus();
970
- } else if (!this.readonly) {
971
- this._navigateToNextItem();
972
- }
973
- }
974
-
975
- _handleItemRangeSelection(e: KeyboardEvent) {
976
- const items = this.items;
977
- const listItems = this.list?.items;
978
- const currentItemIdx = listItems?.indexOf(e.target as ListItemBase) || -1;
979
- const nextItemIdx = currentItemIdx + 1;
980
- const prevItemIdx = currentItemIdx - 1;
981
-
982
- if (isDownShift(e) && items[nextItemIdx]) {
983
- items[nextItemIdx].selected = items[currentItemIdx].selected;
984
- items[nextItemIdx].focus();
985
- }
986
-
987
- if (isUpShift(e) && items[prevItemIdx]) {
988
- items[prevItemIdx].selected = items[currentItemIdx].selected;
989
- items[prevItemIdx].focus();
990
- }
991
-
992
- this.fireSelectionChange();
993
- }
994
-
995
- _navigateToNextItem() {
996
- const items = this.items;
997
- const itemsCount = items.length;
998
- const previousItemIdx = this.currentItemIdx;
999
-
1000
- if (previousItemIdx > -1 && items[previousItemIdx].text !== this.value) {
1001
- this.currentItemIdx = -1;
1002
- }
1003
-
1004
- if (previousItemIdx >= itemsCount - 1) {
1005
- return;
1006
- }
1007
-
1008
- let currentItem = this.items[++this.currentItemIdx];
1009
-
1010
- while ((this.currentItemIdx < itemsCount - 1 && currentItem.selected) || currentItem.isGroupItem) {
1011
- currentItem = this.items[++this.currentItemIdx];
1012
- }
1013
-
1014
- if (currentItem.selected === true || currentItem.isGroupItem) {
1015
- this.currentItemIdx = previousItemIdx;
1016
- return;
1017
- }
1018
-
1019
- this.value = currentItem.text;
1020
- this._innerInput.value = currentItem.text;
1021
- this._innerInput.setSelectionRange(0, currentItem.text.length);
1022
- }
1023
-
1024
- _navigateToPrevItem() {
1025
- const items = this.items;
1026
- let previousItemIdx = this.currentItemIdx;
1027
-
1028
- if ((!this.value && previousItemIdx !== -1) || (previousItemIdx !== -1 && this.value && this.value !== items[previousItemIdx].text)) {
1029
- previousItemIdx = -1;
1030
- }
1031
-
1032
- if (previousItemIdx === -1) {
1033
- this.currentItemIdx = items.length;
1034
- }
1035
-
1036
- if (previousItemIdx === 0) {
1037
- this.currentItemIdx = 0;
1038
- return;
1039
- }
1040
-
1041
- let currentItem = this.items[--this.currentItemIdx];
1042
-
1043
- while ((currentItem && this.currentItemIdx > 0) && (currentItem.selected || currentItem.isGroupItem)) {
1044
- currentItem = this.items[--this.currentItemIdx];
1045
- }
1046
-
1047
- if (!currentItem) {
1048
- return;
1049
- }
1050
-
1051
- if (currentItem.selected || currentItem.isGroupItem) {
1052
- this.currentItemIdx = previousItemIdx;
1053
- return;
1054
- }
1055
-
1056
- this.value = currentItem.text;
1057
- this._innerInput.value = currentItem.text;
1058
- this._innerInput.setSelectionRange(0, currentItem.text.length);
1059
- }
1060
-
1061
- _handleEnter() {
1062
- const lowerCaseValue = this.value.toLowerCase();
1063
- const matchingItem = this.items.find(item => (item.text.toLowerCase() === lowerCaseValue && !item.isGroupItem));
1064
- const oldValueState = this.valueState;
1065
- const innerInput = this._innerInput;
1066
-
1067
- if (this.FormSupport) {
1068
- this.FormSupport.triggerFormSubmit(this);
1069
- }
1070
-
1071
- if (matchingItem) {
1072
- if (matchingItem.selected) {
1073
- if (this._validationTimeout) {
1074
- return;
1075
- }
1076
-
1077
- this.valueState = ValueState.Error;
1078
- this._performingSelectionTwice = true;
1079
- this._resetValueState(oldValueState, () => {
1080
- this._performingSelectionTwice = false;
1081
- });
1082
- } else {
1083
- matchingItem.selected = true;
1084
- this.value = "";
1085
- this.fireSelectionChange();
1086
- }
1087
-
1088
- innerInput.setSelectionRange(matchingItem.text.length, matchingItem.text.length);
1089
- this.allItemsPopover?.close();
1090
- }
1091
- }
1092
-
1093
- _resetValueState(valueState: ValueState, callback?: () => void) {
1094
- this._validationTimeout = setTimeout(() => {
1095
- this.valueState = valueState;
1096
- this._validationTimeout = null;
1097
-
1098
- callback && callback();
1099
- }, 2000);
1100
- }
1101
-
1102
- _onTokenizerKeydown(e: KeyboardEvent) {
1103
- const isCtrl = !!(e.metaKey || e.ctrlKey);
1104
-
1105
- if (isRight(e)) {
1106
- const lastTokenIndex = this._tokenizer.tokens.length - this._tokenizer.overflownTokens.length - 1;
1107
-
1108
- if (e.target === this._tokenizer.tokens[lastTokenIndex]) {
1109
- setTimeout(() => {
1110
- this._inputDom.focus();
1111
- }, 0);
1112
- }
1113
- }
1114
-
1115
- if ((isCtrl && ["c", "x"].includes(e.key.toLowerCase())) || isDeleteShift(e) || isInsertCtrl(e)) {
1116
- e.preventDefault();
1117
-
1118
- const isCut = e.key.toLowerCase() === "x" || isDeleteShift(e);
1119
- const selectedTokens = this._tokenizer.tokens.filter(token => token.selected);
1120
-
1121
- if (isCut) {
1122
- const cutResult = this._tokenizer._fillClipboard(ClipboardDataOperation.cut, selectedTokens);
1123
- selectedTokens.forEach(token => {
1124
- this._tokenizer.deleteToken(token);
1125
- });
1126
-
1127
- this.focus();
1128
- return cutResult;
1129
- }
1130
- return this._tokenizer._fillClipboard(ClipboardDataOperation.copy, selectedTokens);
1131
- }
1132
-
1133
- if (isCtrlV(e) || isInsertShift(e)) {
1134
- this._handlePaste();
1135
- }
1136
-
1137
- if (isHome(e)) {
1138
- this._handleHome(e);
1139
- }
1140
-
1141
- if (isEnd(e)) {
1142
- this._handleEnd(e);
1143
- }
1144
-
1145
- if (isShow(e) && !this.readonly && !this.disabled) {
1146
- this._preventTokenizerToggle = true;
1147
- this._handleShow(e);
1148
- }
1149
- }
1150
-
1151
- _filterItems(str: string) {
1152
- const itemsToFilter = this.items.filter(item => !item.isGroupItem);
1153
- const filteredItems = (Filters[this.filter] || Filters.StartsWithPerTerm)(str, itemsToFilter, "text");
1154
-
1155
- // Return the filtered items and their group items
1156
- return this.items.filter((item, idx, allItems) => MultiComboBox._groupItemFilter(item, ++idx, allItems, filteredItems) || filteredItems.indexOf(item) !== -1);
1157
- }
1158
-
1159
- /**
1160
- * Returns true if the group header should be shown (if there is a filtered suggestion item for this group item)
1161
- *
1162
- * @private
1163
- */
1164
- static _groupItemFilter(item: IMultiComboBoxItem, idx: number, allItems: Array<IMultiComboBoxItem>, filteredItems: Array<IMultiComboBoxItem>) {
1165
- if (item.isGroupItem) {
1166
- let groupHasFilteredItems;
1167
-
1168
- while (allItems[idx] && !allItems[idx].isGroupItem && !groupHasFilteredItems) {
1169
- groupHasFilteredItems = filteredItems.indexOf(allItems[idx]) !== -1;
1170
- idx++;
1171
- }
1172
-
1173
- return groupHasFilteredItems;
1174
- }
1175
- }
1176
-
1177
- _afterOpenPicker() {
1178
- this._toggle();
1179
-
1180
- if (!isPhone() && !this._isOpenedByKeyboard) {
1181
- this._innerInput.focus();
1182
- } else if (this._isOpenedByKeyboard) {
1183
- this._itemToFocus?.focus();
1184
- } else {
1185
- this.allItemsPopover?.focus();
1186
- }
1187
-
1188
- this._isOpenedByKeyboard = false;
1189
- }
1190
-
1191
- _toggle() {
1192
- this.open = !this.open;
1193
- this.fireEvent("open-change");
1194
- }
1195
-
1196
- _getSelectedItems(): Array<MultiComboBoxItem> {
1197
- // Angular 2 way data binding
1198
- this.selectedValues = this.items.filter(item => item.selected);
1199
- return this.selectedValues as Array<MultiComboBoxItem>;
1200
- }
1201
-
1202
- _listSelectionChange(e: CustomEvent<SelectionChangeEventDetail>) {
1203
- // sync list items and cb items
1204
- this.syncItems((e.target as List).items);
1205
-
1206
- // don't call selection change right after selection as user can cancel it on phone
1207
- if (!isPhone()) {
1208
- this.fireSelectionChange();
1209
- }
1210
-
1211
- // casted to KeyboardEvent since isSpace and isSpaceCtrl accepts KeyboardEvent only
1212
- const castedEvent = { key: e.detail.key } as KeyboardEvent;
1213
-
1214
- if (!e.detail.selectionComponentPressed && !isSpace(castedEvent) && !isSpaceCtrl(castedEvent)) {
1215
- this.allItemsPopover?.close();
1216
- this.value = "";
1217
-
1218
- // if the item (not checkbox) is clicked, call the selection change
1219
- if (isPhone()) {
1220
- this.fireSelectionChange();
1221
- }
1222
-
1223
- this.fireEvent("input");
1224
- }
1225
-
1226
- this.value = this.valueBeforeAutoComplete || "";
1227
- }
1228
-
1229
- syncItems(listItems: Array<ListItemBase>) {
1230
- listItems.forEach(item => {
1231
- this.items.forEach(mcbItem => {
1232
- if (mcbItem._id === item.getAttribute("data-ui5-token-id")) {
1233
- mcbItem.selected = item.selected;
1234
- }
1235
- });
1236
- });
1237
- }
1238
-
1239
- fireSelectionChange() {
1240
- this.fireEvent<MultiComboBoxSelectionChangeEventDetail>("selection-change", { items: this._getSelectedItems() });
1241
- // Angular 2 way data binding
1242
- this.fireEvent("value-changed");
1243
- }
1244
-
1245
- async _getRespPopover() {
1246
- const staticAreaItem = await this.getStaticAreaItemDomRef();
1247
- this.allItemsPopover = staticAreaItem!.querySelector(`.ui5-multi-combobox-all-items-responsive-popover`)!;
1248
- }
1249
-
1250
- async _getList(): Promise<List> {
1251
- const staticAreaItem = await this.getStaticAreaItemDomRef();
1252
- this.list = staticAreaItem!.querySelector(".ui5-multi-combobox-all-items-list")!;
1253
- return this.list;
1254
- }
1255
-
1256
- _click() {
1257
- if (isPhone() && !this.readonly && !this._showMorePressed && !this._deleting) {
1258
- this.allItemsPopover?.showAt(this);
1259
- }
1260
-
1261
- this._showMorePressed = false;
1262
- }
1263
-
1264
- _afterClosePicker() {
1265
- // close device's keyboard and prevent further typing
1266
- if (isPhone()) {
1267
- this.blur();
1268
- }
1269
-
1270
- this._toggle();
1271
-
1272
- this._iconPressed = false;
1273
- this._preventTokenizerToggle = false;
1274
- this.filterSelected = false;
1275
- }
1276
-
1277
- _beforeOpen() {
1278
- this._itemsBeforeOpen = this.items.map(item => {
1279
- return {
1280
- ref: item,
1281
- selected: item.selected,
1282
- };
1283
- });
1284
-
1285
- this._valueBeforeOpen = this.value;
1286
-
1287
- if (this.filterSelected) {
1288
- const selectedItems = this._filteredItems.filter(item => item.selected);
1289
- this.selectedItems = this.items.filter((item, idx, allItems) => MultiComboBox._groupItemFilter(item, ++idx, allItems, selectedItems) || selectedItems.indexOf(item) !== -1);
1290
- }
1291
- }
1292
-
1293
- _handleTypeAhead(item: IMultiComboBoxItem, filterValue: string) {
1294
- if (!item) {
1295
- return;
1296
- }
1297
-
1298
- const value = item.text;
1299
- const innerInput = this._innerInput;
1300
-
1301
- filterValue = filterValue || "";
1302
- this.value = value;
1303
-
1304
- innerInput.value = value;
1305
- innerInput.setSelectionRange(filterValue.length, value.length);
1306
-
1307
- this._shouldAutocomplete = false;
1308
- }
1309
-
1310
- _getFirstMatchingItem(current: string) {
1311
- if (!this.items.length) {
1312
- return;
1313
- }
1314
-
1315
- const matchingItems = this._startsWithMatchingItems(current).filter(item => !item.isGroupItem && !item.selected);
1316
-
1317
- if (matchingItems.length) {
1318
- return matchingItems[0];
1319
- }
1320
- }
1321
-
1322
- _startsWithMatchingItems(str: string) {
1323
- return Filters.StartsWith(str, this.items, "text");
1324
- }
1325
-
1326
- onBeforeRendering() {
1327
- const input = this._innerInput;
1328
- const autoCompletedChars = input && (input.selectionEnd || 0) - (input.selectionStart || 0);
1329
- const value = input && input.value;
1330
-
1331
- this.FormSupport = getFeature("FormSupport");
1332
- this._inputLastValue = value;
1333
-
1334
- if (input && !input.value) {
1335
- this.valueBeforeAutoComplete = "";
1336
- this._filteredItems = this.items;
1337
- }
1338
-
1339
- this.items.forEach(item => {
1340
- item._getRealDomRef = () => this.allItemsPopover!.querySelector(`*[data-ui5-stable=${item.stableDomRef}]`)!;
1341
- });
1342
-
1343
- this.tokenizerAvailable = this._getSelectedItems().length > 0;
1344
- this.style.setProperty("--_ui5-input-icons-count", `${this.iconsCount}`);
1345
-
1346
- if (!input || !value) {
1347
- return;
1348
- }
1349
-
1350
- // Typehead causes issues on Android devices, so we disable it for now
1351
- // If there is already a selection the autocomplete has already been performed
1352
- if (this._shouldAutocomplete && !isAndroid() && !autoCompletedChars) {
1353
- const item = this._getFirstMatchingItem(value);
1354
-
1355
- // Keep the original typed in text intact
1356
- this.valueBeforeAutoComplete = value;
1357
- item && this._handleTypeAhead(item, value);
1358
- }
1359
-
1360
- if (this._shouldFilterItems) {
1361
- this._filteredItems = this._filterItems(this._shouldAutocomplete || !!autoCompletedChars ? this.valueBeforeAutoComplete : value);
1362
- } else {
1363
- this._filteredItems = this.items;
1364
- }
1365
- }
1366
-
1367
- async onAfterRendering() {
1368
- await this._getRespPopover();
1369
- await this._getList();
1370
-
1371
- this.toggle(this.shouldDisplayOnlyValueStateMessage);
1372
- this.storeResponsivePopoverWidth();
1373
-
1374
- this._deleting = false;
1375
- // force resize of the tokenizer on invalidation
1376
- this._tokenizer._handleResize();
1377
- }
1378
-
1379
- get _isPhone() {
1380
- return isPhone();
1381
- }
1382
-
1383
- _onIconMousedown() {
1384
- this._iconPressed = true;
1385
- }
1386
-
1387
- storeResponsivePopoverWidth() {
1388
- if (this.open && !this._listWidth) {
1389
- this._listWidth = this.list!.offsetWidth;
1390
- }
1391
- }
1392
-
1393
- toggle(isToggled: boolean) {
1394
- if (isToggled && !this.open) {
1395
- this.openPopover();
1396
- } else {
1397
- this.closePopover();
1398
- }
1399
- }
1400
-
1401
- handleCancel() {
1402
- this._itemsBeforeOpen.forEach(item => {
1403
- item.ref.selected = item.selected;
1404
- });
1405
-
1406
- this.togglePopover();
1407
-
1408
- this.value = this._valueBeforeOpen;
1409
- }
1410
-
1411
- handleOK() {
1412
- if (isPhone()) {
1413
- this.fireSelectionChange();
1414
- }
1415
-
1416
- this.togglePopover();
1417
- }
1418
-
1419
- async openPopover() {
1420
- (await this._getPopover())?.showAt(this);
1421
- }
1422
-
1423
- _forwardFocusToInner() {
1424
- this._innerInput.focus();
1425
- }
1426
-
1427
- async closePopover() {
1428
- (await this._getPopover())?.close();
1429
- }
1430
-
1431
- async _getPopover() {
1432
- const staticAreaItem = await this.getStaticAreaItemDomRef();
1433
- return (staticAreaItem!.querySelector<Popover>("[ui5-popover]"))!;
1434
- }
1435
-
1436
- async _getResponsivePopover() {
1437
- const staticAreaItem = await this.getStaticAreaItemDomRef();
1438
- return staticAreaItem!.querySelector<ResponsivePopover>("[ui5-responsive-popover]")!;
1439
- }
1440
-
1441
- async _setValueStateHeader() {
1442
- const responsivePopover = await this._getResponsivePopover();
1443
- this.valueStateHeader = responsivePopover.querySelector("div.ui5-responsive-popover-header.ui5-valuestatemessage-root")!;
1444
- }
1445
-
1446
- get _tokenizer() {
1447
- return this.shadowRoot!.querySelector<Tokenizer>("[ui5-tokenizer]")!;
1448
- }
1449
-
1450
- inputFocusIn(e: FocusEvent) {
1451
- if (!isPhone() || this.readonly) {
1452
- this.focused = true;
1453
- this._tokenizer.expanded = true;
1454
- } else {
1455
- this._innerInput.blur();
1456
- }
1457
-
1458
- if (!isPhone() && (((e.relatedTarget as HTMLElement)?.tagName !== "UI5-STATIC-AREA-ITEM") || !e.relatedTarget)) {
1459
- this._innerInput.setSelectionRange(0, this.value.length);
1460
- }
1461
-
1462
- this._lastValue = this.value;
1463
- this.valueBeforeAutoComplete = "";
1464
- }
1465
-
1466
- inputFocusOut(e: FocusEvent) {
1467
- if (!this.shadowRoot!.contains(e.relatedTarget as Node) && !this._deleting) {
1468
- this.focused = false;
1469
- this._tokenizer.expanded = this.open;
1470
- // remove the value if user focus out the input and focus is not going in the popover
1471
- if (!isPhone() && !this.allowCustomValues && (this.staticAreaItem !== e.relatedTarget)) {
1472
- this.value = "";
1473
- }
1474
- }
1475
- }
1476
-
1477
- get editable() {
1478
- return !this.readonly;
1479
- }
1480
-
1481
- get _isFocusInside() {
1482
- return !isPhone() && (this.focused || this._tokenizerFocused);
1483
- }
1484
-
1485
- get selectedItemsListMode() {
1486
- return this.readonly ? "None" : "MultiSelect";
1487
- }
1488
-
1489
- get _listItemsType() {
1490
- return this.readonly ? "Inactive" : "Active";
1491
- }
1492
-
1493
- get hasValueState() {
1494
- return this.valueState !== ValueState.None;
1495
- }
1496
-
1497
- get hasValueStateMessage() {
1498
- return this.hasValueState && this.valueState !== ValueState.Success;
1499
- }
1500
-
1501
- get ariaValueStateHiddenText() {
1502
- if (!this.hasValueState) {
1503
- return;
1504
- }
1505
-
1506
- let text = "";
1507
-
1508
- if (this.valueState !== ValueState.None) {
1509
- text = this.valueStateTypeMappings[this.valueState];
1510
- }
1511
-
1512
- if (this.shouldDisplayDefaultValueStateMessage) {
1513
- return `${text} ${this.valueStateDefaultText || ""}`;
1514
- }
1515
-
1516
- return `${text}`.concat(" ", this.valueStateMessageText.map(el => el.textContent).join(" "));
1517
- }
1518
-
1519
- get valueStateDefaultText(): string {
1520
- if (this.valueState === ValueState.None) {
1521
- return "";
1522
- }
1523
-
1524
- if (this._performingSelectionTwice) {
1525
- return MultiComboBox.i18nBundle.getText(VALUE_STATE_ERROR_ALREADY_SELECTED);
1526
- }
1527
-
1528
- return this.valueStateTextMappings[this.valueState];
1529
- }
1530
-
1531
- get valueStateTextId() {
1532
- return this.hasValueState ? `ui5-multi-combobox-valueStateDesc` : undefined;
1533
- }
1534
-
1535
- get valueStateMessageText() {
1536
- return this.getSlottedNodes("valueStateMessage").map(el => el.cloneNode(true));
1537
- }
1538
-
1539
- get ariaLabelText() {
1540
- return getEffectiveAriaLabelText(this);
1541
- }
1542
-
1543
- /**
1544
- * This method is relevant for sap_horizon theme only
1545
- */
1546
- get _valueStateMessageIcon() {
1547
- if (this.valueState === ValueState.None) {
1548
- return "";
1549
- }
1550
-
1551
- return {
1552
- [ValueState.Error]: "error",
1553
- [ValueState.Warning]: "alert",
1554
- [ValueState.Success]: "sys-enter-2",
1555
- [ValueState.Information]: "information",
1556
- }[this.valueState];
1557
- }
1558
-
1559
- get _tokensCountText() {
1560
- if (!this._tokenizer) {
1561
- return;
1562
- }
1563
- return this._tokenizer._tokensCountText();
1564
- }
1565
-
1566
- get _tokensCountTextId() {
1567
- return "ui5-multi-combobox-hiddenText-nMore";
1568
- }
1569
-
1570
- get _selectedTokensCount() {
1571
- return this._tokenizer.tokens.filter(token => token.selected).length;
1572
- }
1573
-
1574
- get ariaDescribedByText() {
1575
- return this.valueStateTextId ? `${this._tokensCountTextId} ${this.valueStateTextId}` : `${this._tokensCountTextId}`;
1576
- }
1577
-
1578
- get shouldDisplayDefaultValueStateMessage() {
1579
- return !this.valueStateMessage.length && this.hasValueStateMessage;
1580
- }
1581
-
1582
- get shouldDisplayOnlyValueStateMessage() {
1583
- return this.focused && !this.readonly && this.hasValueStateMessage && !this._iconPressed;
1584
- }
1585
-
1586
- get valueStateTypeMappings(): ValueStateTypeAnnouncement {
1587
- return {
1588
- [ValueState.Success]: MultiComboBox.i18nBundle.getText(VALUE_STATE_TYPE_SUCCESS),
1589
- [ValueState.Information]: MultiComboBox.i18nBundle.getText(VALUE_STATE_TYPE_INFORMATION),
1590
- [ValueState.Error]: MultiComboBox.i18nBundle.getText(VALUE_STATE_TYPE_ERROR),
1591
- [ValueState.Warning]: MultiComboBox.i18nBundle.getText(VALUE_STATE_TYPE_WARNING),
1592
- };
1593
- }
1594
-
1595
- get valueStateTextMappings(): ValueStateAnnouncement {
1596
- return {
1597
- [ValueState.Success]: MultiComboBox.i18nBundle.getText(VALUE_STATE_SUCCESS),
1598
- [ValueState.Error]: MultiComboBox.i18nBundle.getText(VALUE_STATE_ERROR),
1599
- [ValueState.Warning]: MultiComboBox.i18nBundle.getText(VALUE_STATE_WARNING),
1600
- [ValueState.Information]: MultiComboBox.i18nBundle.getText(VALUE_STATE_INFORMATION),
1601
- };
1602
- }
1603
-
1604
- get _innerInput(): HTMLInputElement {
1605
- if (isPhone()) {
1606
- if (this.allItemsPopover?.opened) {
1607
- return this.allItemsPopover.querySelector("input")!;
1608
- }
1609
- }
1610
-
1611
- return this._inputDom;
1612
- }
1613
-
1614
- get _headerTitleText() {
1615
- return MultiComboBox.i18nBundle.getText(INPUT_SUGGESTIONS_TITLE);
1616
- }
1617
-
1618
- get _iconAccessibleNameText() {
1619
- return MultiComboBox.i18nBundle.getText(SELECT_OPTIONS);
1620
- }
1621
-
1622
- get _dialogOkButton() {
1623
- return MultiComboBox.i18nBundle.getText(MULTICOMBOBOX_DIALOG_OK_BUTTON);
1624
- }
1625
-
1626
- get _tokenizerExpanded() {
1627
- if (isPhone() || this.readonly) {
1628
- return false;
1629
- }
1630
-
1631
- if (this._preventTokenizerToggle) {
1632
- return this._tokenizer.expanded;
1633
- }
1634
-
1635
- const isCurrentlyExpanded = this._tokenizer?.expanded;
1636
- const shouldBeExpanded = this.focused || this.open || isCurrentlyExpanded;
1637
-
1638
- return shouldBeExpanded;
1639
- }
1640
-
1641
- get _valueStatePopoverHorizontalAlign() {
1642
- return this.effectiveDir !== "rtl" ? "Left" : "Right";
1643
- }
1644
-
1645
- get iconsCount() {
1646
- const slottedIconsCount = this.icon?.length || 0;
1647
- const arrowDownIconsCount = this.readonly ? 0 : 1;
1648
- return slottedIconsCount + arrowDownIconsCount;
1649
- }
1650
-
1651
- get classes(): ClassMap {
1652
- return {
1653
- popover: {
1654
- "ui5-multi-combobox-all-items-responsive-popover": true,
1655
- "ui5-suggestions-popover": true,
1656
- "ui5-suggestions-popover-with-value-state-header": this.hasValueStateMessage,
1657
- },
1658
- popoverValueState: {
1659
- "ui5-valuestatemessage-root": true,
1660
- "ui5-valuestatemessage-header": true,
1661
- "ui5-valuestatemessage--success": this.valueState === ValueState.Success,
1662
- "ui5-valuestatemessage--error": this.valueState === ValueState.Error,
1663
- "ui5-valuestatemessage--warning": this.valueState === ValueState.Warning,
1664
- "ui5-valuestatemessage--information": this.valueState === ValueState.Information,
1665
- },
1666
- };
1667
- }
1668
-
1669
- get styles() {
1670
- const remSizeIxPx = parseInt(getComputedStyle(document.documentElement).fontSize);
1671
- return {
1672
- popoverValueStateMessage: {
1673
- "width": `${this._listWidth || 0}px`,
1674
- "display": this._listWidth === 0 ? "none" : "inline-block",
1675
- },
1676
- popoverHeader: {
1677
- "max-width": isPhone() ? "100%" : `${this._inputWidth}px`,
1678
- },
1679
- suggestionsPopover: {
1680
- "min-width": `${this._inputWidth}px`,
1681
- "max-width": (this._inputWidth / remSizeIxPx) > 40 ? `${this._inputWidth}px` : "40rem",
1682
- },
1683
- };
1684
- }
1685
-
1686
- static async onDefine() {
1687
- MultiComboBox.i18nBundle = await getI18nBundle("@ui5/webcomponents");
1688
- }
1689
- }
1690
-
1691
- MultiComboBox.define();
1692
-
1693
- export default MultiComboBox;
1694
-
1695
- export type {
1696
- IMultiComboBoxItem,
1697
- MultiComboBoxSelectionChangeEventDetail,
1698
- };