@ui5/webcomponents 2.0.0-rc.3 → 2.0.0-rc.4

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 (818) hide show
  1. package/.env.testing +4 -0
  2. package/CHANGELOG.md +215 -0
  3. package/README.md +0 -33
  4. package/dist/.tsbuildinfo +1 -1
  5. package/dist/Avatar.d.ts +2 -2
  6. package/dist/AvatarGroup.d.ts +4 -4
  7. package/dist/Breadcrumbs.d.ts +1 -1
  8. package/dist/Breadcrumbs.js +10 -5
  9. package/dist/Breadcrumbs.js.map +1 -1
  10. package/dist/Button.d.ts +26 -13
  11. package/dist/Button.js +34 -18
  12. package/dist/Button.js.map +1 -1
  13. package/dist/Calendar.d.ts +10 -5
  14. package/dist/Calendar.js +81 -26
  15. package/dist/Calendar.js.map +1 -1
  16. package/dist/CalendarDate.d.ts +2 -1
  17. package/dist/CalendarDate.js +1 -0
  18. package/dist/CalendarDate.js.map +1 -1
  19. package/dist/CalendarDateRange.d.ts +31 -0
  20. package/dist/CalendarDateRange.js +36 -0
  21. package/dist/CalendarDateRange.js.map +1 -0
  22. package/dist/CalendarHeader.js +8 -8
  23. package/dist/CalendarHeader.js.map +1 -1
  24. package/dist/CheckBox.d.ts +8 -17
  25. package/dist/CheckBox.js +14 -22
  26. package/dist/CheckBox.js.map +1 -1
  27. package/dist/ColorPalette.d.ts +19 -0
  28. package/dist/ColorPalette.js +112 -13
  29. package/dist/ColorPalette.js.map +1 -1
  30. package/dist/ColorPaletteItem.d.ts +16 -0
  31. package/dist/ColorPaletteItem.js +10 -0
  32. package/dist/ColorPaletteItem.js.map +1 -1
  33. package/dist/ColorPalettePopover.d.ts +5 -0
  34. package/dist/ColorPalettePopover.js +15 -0
  35. package/dist/ColorPalettePopover.js.map +1 -1
  36. package/dist/ColorPicker.d.ts +13 -1
  37. package/dist/ColorPicker.js +10 -0
  38. package/dist/ColorPicker.js.map +1 -1
  39. package/dist/ComboBox.d.ts +23 -11
  40. package/dist/ComboBox.js +156 -58
  41. package/dist/ComboBox.js.map +1 -1
  42. package/dist/ComboBoxItem.d.ts +5 -5
  43. package/dist/ComboBoxItem.js +3 -7
  44. package/dist/ComboBoxItem.js.map +1 -1
  45. package/dist/{ComboBoxGroupItem.d.ts → ComboBoxItemGroup.d.ts} +11 -3
  46. package/dist/{ComboBoxGroupItem.js → ComboBoxItemGroup.js} +24 -9
  47. package/dist/ComboBoxItemGroup.js.map +1 -0
  48. package/dist/CustomListItem.d.ts +7 -0
  49. package/dist/CustomListItem.js +7 -2
  50. package/dist/CustomListItem.js.map +1 -1
  51. package/dist/DatePicker.d.ts +9 -18
  52. package/dist/DatePicker.js +19 -15
  53. package/dist/DatePicker.js.map +1 -1
  54. package/dist/DateRangePicker.d.ts +5 -1
  55. package/dist/DateRangePicker.js +21 -0
  56. package/dist/DateRangePicker.js.map +1 -1
  57. package/dist/DateTimePicker.d.ts +4 -1
  58. package/dist/DateTimePicker.js +14 -0
  59. package/dist/DateTimePicker.js.map +1 -1
  60. package/dist/DayPicker.js +6 -4
  61. package/dist/DayPicker.js.map +1 -1
  62. package/dist/Dialog.d.ts +0 -16
  63. package/dist/Dialog.js +0 -21
  64. package/dist/Dialog.js.map +1 -1
  65. package/dist/FileUploader.d.ts +6 -23
  66. package/dist/FileUploader.js +15 -46
  67. package/dist/FileUploader.js.map +1 -1
  68. package/dist/Form.d.ts +198 -0
  69. package/dist/Form.js +358 -0
  70. package/dist/Form.js.map +1 -0
  71. package/dist/FormGroup.d.ts +63 -0
  72. package/dist/FormGroup.js +86 -0
  73. package/dist/FormGroup.js.map +1 -0
  74. package/dist/FormItem.d.ts +62 -0
  75. package/dist/FormItem.js +76 -0
  76. package/dist/FormItem.js.map +1 -0
  77. package/dist/Input.d.ts +17 -30
  78. package/dist/Input.js +46 -48
  79. package/dist/Input.js.map +1 -1
  80. package/dist/Label.d.ts +1 -1
  81. package/dist/Label.js +1 -1
  82. package/dist/Label.js.map +1 -1
  83. package/dist/Link.d.ts +4 -3
  84. package/dist/Link.js +2 -1
  85. package/dist/Link.js.map +1 -1
  86. package/dist/List.d.ts +3 -2
  87. package/dist/List.js +45 -0
  88. package/dist/List.js.map +1 -1
  89. package/dist/ListItem.d.ts +8 -15
  90. package/dist/ListItem.js +25 -34
  91. package/dist/ListItem.js.map +1 -1
  92. package/dist/ListItemBase.d.ts +24 -2
  93. package/dist/ListItemBase.js +48 -13
  94. package/dist/ListItemBase.js.map +1 -1
  95. package/dist/ListItemGroup.d.ts +6 -1
  96. package/dist/ListItemGroup.js +4 -1
  97. package/dist/ListItemGroup.js.map +1 -1
  98. package/dist/ListItemGroupHeader.d.ts +2 -0
  99. package/dist/ListItemGroupHeader.js +9 -0
  100. package/dist/ListItemGroupHeader.js.map +1 -1
  101. package/dist/Menu.d.ts +11 -90
  102. package/dist/Menu.js +62 -324
  103. package/dist/Menu.js.map +1 -1
  104. package/dist/MenuItem.d.ts +57 -22
  105. package/dist/MenuItem.js +106 -24
  106. package/dist/MenuItem.js.map +1 -1
  107. package/dist/MonthPicker.d.ts +1 -0
  108. package/dist/MonthPicker.js +10 -6
  109. package/dist/MonthPicker.js.map +1 -1
  110. package/dist/MultiComboBox.d.ts +17 -3
  111. package/dist/MultiComboBox.js +63 -25
  112. package/dist/MultiComboBox.js.map +1 -1
  113. package/dist/MultiInput.d.ts +18 -4
  114. package/dist/MultiInput.js +56 -31
  115. package/dist/MultiInput.js.map +1 -1
  116. package/dist/NavigationMenu.d.ts +1 -6
  117. package/dist/NavigationMenu.js +3 -47
  118. package/dist/NavigationMenu.js.map +1 -1
  119. package/dist/NavigationMenuItem.d.ts +22 -3
  120. package/dist/NavigationMenuItem.js +29 -4
  121. package/dist/NavigationMenuItem.js.map +1 -1
  122. package/dist/Option.d.ts +20 -33
  123. package/dist/Option.js +31 -19
  124. package/dist/Option.js.map +1 -1
  125. package/dist/OptionCustom.d.ts +51 -0
  126. package/dist/OptionCustom.js +63 -0
  127. package/dist/OptionCustom.js.map +1 -0
  128. package/dist/Panel.d.ts +1 -1
  129. package/dist/Popover.d.ts +8 -21
  130. package/dist/Popover.js +32 -44
  131. package/dist/Popover.js.map +1 -1
  132. package/dist/Popup.d.ts +20 -23
  133. package/dist/Popup.js +53 -57
  134. package/dist/Popup.js.map +1 -1
  135. package/dist/RadioButton.d.ts +16 -27
  136. package/dist/RadioButton.js +19 -31
  137. package/dist/RadioButton.js.map +1 -1
  138. package/dist/RadioButtonGroup.js +6 -5
  139. package/dist/RadioButtonGroup.js.map +1 -1
  140. package/dist/RangeSlider.d.ts +3 -1
  141. package/dist/RangeSlider.js +7 -0
  142. package/dist/RangeSlider.js.map +1 -1
  143. package/dist/ResponsivePopover.d.ts +4 -16
  144. package/dist/ResponsivePopover.js +17 -30
  145. package/dist/ResponsivePopover.js.map +1 -1
  146. package/dist/SegmentedButtonItem.d.ts +6 -1
  147. package/dist/SegmentedButtonItem.js +7 -4
  148. package/dist/SegmentedButtonItem.js.map +1 -1
  149. package/dist/Select.d.ts +27 -82
  150. package/dist/Select.js +83 -231
  151. package/dist/Select.js.map +1 -1
  152. package/dist/Slider.d.ts +3 -1
  153. package/dist/Slider.js +4 -0
  154. package/dist/Slider.js.map +1 -1
  155. package/dist/SliderBase.d.ts +11 -1
  156. package/dist/SliderBase.js +6 -0
  157. package/dist/SliderBase.js.map +1 -1
  158. package/dist/StandardListItem.d.ts +7 -0
  159. package/dist/StandardListItem.js +3 -0
  160. package/dist/StandardListItem.js.map +1 -1
  161. package/dist/StepInput.d.ts +6 -15
  162. package/dist/StepInput.js +7 -11
  163. package/dist/StepInput.js.map +1 -1
  164. package/dist/Switch.d.ts +8 -17
  165. package/dist/Switch.js +13 -21
  166. package/dist/Switch.js.map +1 -1
  167. package/dist/TabContainer.js +11 -5
  168. package/dist/TabContainer.js.map +1 -1
  169. package/dist/Tag.d.ts +1 -1
  170. package/dist/Tag.js.map +1 -1
  171. package/dist/TextArea.d.ts +9 -18
  172. package/dist/TextArea.js +22 -15
  173. package/dist/TextArea.js.map +1 -1
  174. package/dist/TimePicker.d.ts +24 -24
  175. package/dist/TimePicker.js +32 -59
  176. package/dist/TimePicker.js.map +1 -1
  177. package/dist/TimeSelectionClocks.js +2 -0
  178. package/dist/TimeSelectionClocks.js.map +1 -1
  179. package/dist/TimeSelectionInputs.js +2 -0
  180. package/dist/TimeSelectionInputs.js.map +1 -1
  181. package/dist/Toast.d.ts +1 -1
  182. package/dist/Toast.js +2 -2
  183. package/dist/Toast.js.map +1 -1
  184. package/dist/ToggleSpinButton.d.ts +1 -1
  185. package/dist/ToggleSpinButton.js +1 -1
  186. package/dist/ToggleSpinButton.js.map +1 -1
  187. package/dist/Token.d.ts +5 -0
  188. package/dist/Token.js +3 -0
  189. package/dist/Token.js.map +1 -1
  190. package/dist/Tokenizer.d.ts +11 -5
  191. package/dist/Tokenizer.js +93 -71
  192. package/dist/Tokenizer.js.map +1 -1
  193. package/dist/Toolbar.d.ts +5 -0
  194. package/dist/Toolbar.js +16 -4
  195. package/dist/Toolbar.js.map +1 -1
  196. package/dist/ToolbarButton.d.ts +11 -3
  197. package/dist/ToolbarButton.js +2 -2
  198. package/dist/ToolbarButton.js.map +1 -1
  199. package/dist/TreeItemBase.d.ts +8 -1
  200. package/dist/TreeItemBase.js +3 -1
  201. package/dist/TreeItemBase.js.map +1 -1
  202. package/dist/TreeItemCustom.js +4 -2
  203. package/dist/TreeItemCustom.js.map +1 -1
  204. package/dist/bundle.esm.d.ts +0 -1
  205. package/dist/bundle.esm.js +5 -3
  206. package/dist/bundle.esm.js.map +1 -1
  207. package/dist/css/themes/Avatar.css +1 -1
  208. package/dist/css/themes/AvatarGroup.css +1 -1
  209. package/dist/css/themes/Bar.css +1 -1
  210. package/dist/css/themes/Breadcrumbs.css +1 -1
  211. package/dist/css/themes/BusyIndicator.css +1 -1
  212. package/dist/css/themes/Button.css +1 -1
  213. package/dist/css/themes/Calendar.css +1 -1
  214. package/dist/css/themes/CalendarHeader.css +1 -1
  215. package/dist/css/themes/CalendarLegend.css +1 -1
  216. package/dist/css/themes/CalendarLegendItem.css +1 -1
  217. package/dist/css/themes/Card.css +1 -1
  218. package/dist/css/themes/CardHeader.css +1 -1
  219. package/dist/css/themes/Carousel.css +1 -1
  220. package/dist/css/themes/CheckBox.css +1 -1
  221. package/dist/css/themes/ColorPalette.css +1 -1
  222. package/dist/css/themes/ColorPaletteItem.css +1 -1
  223. package/dist/css/themes/ColorPalettePopover.css +1 -1
  224. package/dist/css/themes/ColorPicker.css +1 -1
  225. package/dist/css/themes/ComboBox.css +1 -1
  226. package/dist/css/themes/CustomListItem.css +1 -1
  227. package/dist/css/themes/DatePicker.css +1 -1
  228. package/dist/css/themes/DateTimePickerPopover.css +1 -1
  229. package/dist/css/themes/DayPicker.css +1 -1
  230. package/dist/css/themes/Dialog.css +1 -1
  231. package/dist/css/themes/FileUploader.css +1 -1
  232. package/dist/css/themes/Form.css +1 -0
  233. package/dist/css/themes/FormItem.css +1 -0
  234. package/dist/css/themes/FormLabelSpan.css +1 -0
  235. package/dist/css/themes/FormLayout.css +1 -0
  236. package/dist/css/themes/GrowingButton.css +1 -1
  237. package/dist/css/themes/Icon.css +1 -1
  238. package/dist/css/themes/Input.css +1 -1
  239. package/dist/css/themes/InputIcon.css +1 -1
  240. package/dist/css/themes/InputSharedStyles.css +1 -1
  241. package/dist/css/themes/Label.css +1 -1
  242. package/dist/css/themes/Link.css +1 -1
  243. package/dist/css/themes/List.css +1 -1
  244. package/dist/css/themes/ListItem.css +1 -1
  245. package/dist/css/themes/ListItemAdditionalText.css +1 -0
  246. package/dist/css/themes/ListItemBase.css +1 -1
  247. package/dist/css/themes/ListItemGroup.css +1 -1
  248. package/dist/css/themes/ListItemGroupHeader.css +1 -1
  249. package/dist/css/themes/ListItemIcon.css +1 -0
  250. package/dist/css/themes/Menu.css +1 -1
  251. package/dist/css/themes/MenuItem.css +1 -0
  252. package/dist/css/themes/MessageStrip.css +1 -1
  253. package/dist/css/themes/MonthPicker.css +1 -1
  254. package/dist/css/themes/MultiComboBox.css +1 -1
  255. package/dist/css/themes/MultiComboBoxPopover.css +1 -1
  256. package/dist/css/themes/MultiInput.css +1 -1
  257. package/dist/css/themes/NavigationMenu.css +1 -1
  258. package/dist/css/themes/NavigationMenuItem.css +1 -0
  259. package/dist/css/themes/OptionBase.css +1 -0
  260. package/dist/css/themes/Panel.css +1 -1
  261. package/dist/css/themes/Popover.css +1 -1
  262. package/dist/css/themes/Popup.css +1 -1
  263. package/dist/css/themes/PopupsCommon.css +1 -1
  264. package/dist/css/themes/ProgressIndicator.css +1 -1
  265. package/dist/css/themes/RadioButton.css +1 -1
  266. package/dist/css/themes/RangeSlider.css +1 -1
  267. package/dist/css/themes/RatingIndicator.css +1 -1
  268. package/dist/css/themes/ResponsivePopover.css +1 -1
  269. package/dist/css/themes/ResponsivePopoverCommon.css +1 -1
  270. package/dist/css/themes/SegmentedButton.css +1 -1
  271. package/dist/css/themes/SegmentedButtonItem.css +1 -1
  272. package/dist/css/themes/Select.css +1 -1
  273. package/dist/css/themes/SelectPopover.css +1 -1
  274. package/dist/css/themes/SliderBase.css +1 -1
  275. package/dist/css/themes/SplitButton.css +1 -1
  276. package/dist/css/themes/StepInput.css +1 -1
  277. package/dist/css/themes/Switch.css +1 -1
  278. package/dist/css/themes/TabContainer.css +1 -1
  279. package/dist/css/themes/TabInOverflow.css +1 -1
  280. package/dist/css/themes/TabInStrip.css +1 -1
  281. package/dist/css/themes/TabSemanticIcon.css +1 -1
  282. package/dist/css/themes/TabSeparatorInOverflow.css +1 -1
  283. package/dist/css/themes/Tag.css +1 -1
  284. package/dist/css/themes/Text.css +1 -1
  285. package/dist/css/themes/TextArea.css +1 -1
  286. package/dist/css/themes/TimePicker.css +1 -1
  287. package/dist/css/themes/Toast.css +1 -1
  288. package/dist/css/themes/ToggleButton.css +1 -1
  289. package/dist/css/themes/Token.css +1 -1
  290. package/dist/css/themes/Tokenizer.css +1 -1
  291. package/dist/css/themes/TokenizerPopover.css +1 -1
  292. package/dist/css/themes/Toolbar.css +1 -1
  293. package/dist/css/themes/ToolbarPopover.css +1 -1
  294. package/dist/css/themes/TreeItem.css +1 -1
  295. package/dist/css/themes/ValueStateMessage.css +1 -1
  296. package/dist/css/themes/YearPicker.css +1 -1
  297. package/dist/css/themes/sap_fiori_3/parameters-bundle.css +1 -1
  298. package/dist/css/themes/sap_fiori_3_dark/parameters-bundle.css +1 -1
  299. package/dist/css/themes/sap_fiori_3_hcb/parameters-bundle.css +1 -1
  300. package/dist/css/themes/sap_fiori_3_hcw/parameters-bundle.css +1 -1
  301. package/dist/css/themes/sap_horizon/parameters-bundle.css +1 -1
  302. package/dist/css/themes/sap_horizon_dark/parameters-bundle.css +1 -1
  303. package/dist/css/themes/sap_horizon_dark_exp/parameters-bundle.css +1 -1
  304. package/dist/css/themes/sap_horizon_exp/parameters-bundle.css +1 -1
  305. package/dist/css/themes/sap_horizon_hcb/parameters-bundle.css +1 -1
  306. package/dist/css/themes/sap_horizon_hcb_exp/parameters-bundle.css +1 -1
  307. package/dist/css/themes/sap_horizon_hcw/parameters-bundle.css +1 -1
  308. package/dist/css/themes/sap_horizon_hcw_exp/parameters-bundle.css +1 -1
  309. package/dist/custom-elements-internal.json +2414 -1795
  310. package/dist/custom-elements.json +1979 -1523
  311. package/dist/features/InputSuggestions.js +3 -1
  312. package/dist/features/InputSuggestions.js.map +1 -1
  313. package/dist/generated/assets/i18n/messagebundle_en.json +1 -1
  314. package/dist/generated/assets/i18n/messagebundle_en_US_saprigi.json +1 -1
  315. package/dist/generated/assets/themes/sap_fiori_3/parameters-bundle.css.json +1 -1
  316. package/dist/generated/assets/themes/sap_fiori_3_dark/parameters-bundle.css.json +1 -1
  317. package/dist/generated/assets/themes/sap_fiori_3_hcb/parameters-bundle.css.json +1 -1
  318. package/dist/generated/assets/themes/sap_fiori_3_hcw/parameters-bundle.css.json +1 -1
  319. package/dist/generated/assets/themes/sap_horizon/parameters-bundle.css.json +1 -1
  320. package/dist/generated/assets/themes/sap_horizon_dark/parameters-bundle.css.json +1 -1
  321. package/dist/generated/assets/themes/sap_horizon_dark_exp/parameters-bundle.css.json +1 -1
  322. package/dist/generated/assets/themes/sap_horizon_exp/parameters-bundle.css.json +1 -1
  323. package/dist/generated/assets/themes/sap_horizon_hcb/parameters-bundle.css.json +1 -1
  324. package/dist/generated/assets/themes/sap_horizon_hcb_exp/parameters-bundle.css.json +1 -1
  325. package/dist/generated/assets/themes/sap_horizon_hcw/parameters-bundle.css.json +1 -1
  326. package/dist/generated/assets/themes/sap_horizon_hcw_exp/parameters-bundle.css.json +1 -1
  327. package/dist/generated/i18n/i18n-defaults.d.ts +6 -2
  328. package/dist/generated/i18n/i18n-defaults.js +6 -2
  329. package/dist/generated/i18n/i18n-defaults.js.map +1 -1
  330. package/dist/generated/templates/BusyIndicatorTemplate.lit.js +2 -2
  331. package/dist/generated/templates/BusyIndicatorTemplate.lit.js.map +1 -1
  332. package/dist/generated/templates/ButtonTemplate.lit.js +3 -2
  333. package/dist/generated/templates/ButtonTemplate.lit.js.map +1 -1
  334. package/dist/generated/templates/CalendarTemplate.lit.js +1 -1
  335. package/dist/generated/templates/CalendarTemplate.lit.js.map +1 -1
  336. package/dist/generated/templates/CheckBoxTemplate.lit.js +1 -1
  337. package/dist/generated/templates/CheckBoxTemplate.lit.js.map +1 -1
  338. package/dist/generated/templates/ColorPaletteItemTemplate.lit.js +2 -2
  339. package/dist/generated/templates/ColorPaletteItemTemplate.lit.js.map +1 -1
  340. package/dist/generated/templates/ColorPalettePopoverTemplate.lit.js +1 -1
  341. package/dist/generated/templates/ColorPalettePopoverTemplate.lit.js.map +1 -1
  342. package/dist/generated/templates/ColorPaletteTemplate.lit.js +1 -1
  343. package/dist/generated/templates/ColorPaletteTemplate.lit.js.map +1 -1
  344. package/dist/generated/templates/ComboBoxPopoverTemplate.lit.js +12 -9
  345. package/dist/generated/templates/ComboBoxPopoverTemplate.lit.js.map +1 -1
  346. package/dist/generated/templates/ComboBoxTemplate.lit.js +14 -11
  347. package/dist/generated/templates/ComboBoxTemplate.lit.js.map +1 -1
  348. package/dist/generated/templates/DatePickerInputTemplate.lit.js +2 -2
  349. package/dist/generated/templates/DatePickerInputTemplate.lit.js.map +1 -1
  350. package/dist/generated/templates/DatePickerPopoverTemplate.lit.js +1 -1
  351. package/dist/generated/templates/DatePickerPopoverTemplate.lit.js.map +1 -1
  352. package/dist/generated/templates/DatePickerTemplate.lit.js +2 -2
  353. package/dist/generated/templates/DatePickerTemplate.lit.js.map +1 -1
  354. package/dist/generated/templates/DateRangePickerTemplate.lit.d.ts +4 -0
  355. package/dist/generated/templates/DateRangePickerTemplate.lit.js +9 -0
  356. package/dist/generated/templates/DateRangePickerTemplate.lit.js.map +1 -0
  357. package/dist/generated/templates/DateTimePickerPopoverTemplate.lit.js +1 -1
  358. package/dist/generated/templates/DateTimePickerPopoverTemplate.lit.js.map +1 -1
  359. package/dist/generated/templates/DateTimePickerTemplate.lit.js +2 -2
  360. package/dist/generated/templates/DateTimePickerTemplate.lit.js.map +1 -1
  361. package/dist/generated/templates/FileUploaderPopoverTemplate.lit.js +1 -1
  362. package/dist/generated/templates/FileUploaderPopoverTemplate.lit.js.map +1 -1
  363. package/dist/generated/templates/FileUploaderTemplate.lit.js +5 -7
  364. package/dist/generated/templates/FileUploaderTemplate.lit.js.map +1 -1
  365. package/dist/generated/templates/FormItemTemplate.lit.d.ts +4 -0
  366. package/dist/generated/templates/FormItemTemplate.lit.js +6 -0
  367. package/dist/generated/templates/FormItemTemplate.lit.js.map +1 -0
  368. package/dist/generated/templates/FormTemplate.lit.d.ts +4 -0
  369. package/dist/generated/templates/FormTemplate.lit.js +13 -0
  370. package/dist/generated/templates/FormTemplate.lit.js.map +1 -0
  371. package/dist/generated/templates/InputPopoverTemplate.lit.js +2 -2
  372. package/dist/generated/templates/InputPopoverTemplate.lit.js.map +1 -1
  373. package/dist/generated/templates/InputTemplate.lit.js +4 -4
  374. package/dist/generated/templates/InputTemplate.lit.js.map +1 -1
  375. package/dist/generated/templates/{MenuListItemTemplate.lit.d.ts → ListItemBaseTemplate.lit.d.ts} +2 -2
  376. package/dist/generated/templates/ListItemBaseTemplate.lit.js +5 -0
  377. package/dist/generated/templates/ListItemBaseTemplate.lit.js.map +1 -0
  378. package/dist/generated/templates/ListItemGroupHeaderTemplate.lit.js +1 -1
  379. package/dist/generated/templates/ListItemGroupHeaderTemplate.lit.js.map +1 -1
  380. package/dist/generated/templates/ListItemGroupTemplate.lit.js +1 -1
  381. package/dist/generated/templates/ListItemGroupTemplate.lit.js.map +1 -1
  382. package/dist/generated/templates/MenuItemTemplate.lit.d.ts +4 -0
  383. package/dist/generated/templates/{MenuListItemTemplate.lit.js → MenuItemTemplate.lit.js} +21 -15
  384. package/dist/generated/templates/MenuItemTemplate.lit.js.map +1 -0
  385. package/dist/generated/templates/MenuTemplate.lit.js +6 -8
  386. package/dist/generated/templates/MenuTemplate.lit.js.map +1 -1
  387. package/dist/generated/templates/MultiComboBoxPopoverTemplate.lit.js +2 -2
  388. package/dist/generated/templates/MultiComboBoxPopoverTemplate.lit.js.map +1 -1
  389. package/dist/generated/templates/MultiComboBoxTemplate.lit.js +4 -4
  390. package/dist/generated/templates/MultiComboBoxTemplate.lit.js.map +1 -1
  391. package/dist/generated/templates/MultiInputTemplate.lit.js +28 -27
  392. package/dist/generated/templates/MultiInputTemplate.lit.js.map +1 -1
  393. package/dist/generated/templates/NavigationMenuItemTemplate.lit.d.ts +4 -0
  394. package/dist/generated/templates/NavigationMenuItemTemplate.lit.js +57 -0
  395. package/dist/generated/templates/NavigationMenuItemTemplate.lit.js.map +1 -0
  396. package/dist/generated/templates/NavigationMenuTemplate.lit.js +6 -19
  397. package/dist/generated/templates/NavigationMenuTemplate.lit.js.map +1 -1
  398. package/dist/generated/templates/OptionCustomTemplate.lit.d.ts +4 -0
  399. package/dist/generated/templates/OptionCustomTemplate.lit.js +5 -0
  400. package/dist/generated/templates/OptionCustomTemplate.lit.js.map +1 -0
  401. package/dist/generated/templates/OptionTemplate.lit.d.ts +4 -0
  402. package/dist/generated/templates/OptionTemplate.lit.js +7 -0
  403. package/dist/generated/templates/OptionTemplate.lit.js.map +1 -0
  404. package/dist/generated/templates/RadioButtonTemplate.lit.js +1 -1
  405. package/dist/generated/templates/RadioButtonTemplate.lit.js.map +1 -1
  406. package/dist/generated/templates/ResponsivePopoverTemplate.lit.js +2 -2
  407. package/dist/generated/templates/ResponsivePopoverTemplate.lit.js.map +1 -1
  408. package/dist/generated/templates/SegmentedButtonItemTemplate.lit.js +1 -1
  409. package/dist/generated/templates/SegmentedButtonItemTemplate.lit.js.map +1 -1
  410. package/dist/generated/templates/SelectPopoverTemplate.lit.js +6 -7
  411. package/dist/generated/templates/SelectPopoverTemplate.lit.js.map +1 -1
  412. package/dist/generated/templates/SelectTemplate.lit.js +8 -9
  413. package/dist/generated/templates/SelectTemplate.lit.js.map +1 -1
  414. package/dist/generated/templates/StepInputTemplate.lit.js +3 -3
  415. package/dist/generated/templates/StepInputTemplate.lit.js.map +1 -1
  416. package/dist/generated/templates/SwitchTemplate.lit.js +1 -1
  417. package/dist/generated/templates/SwitchTemplate.lit.js.map +1 -1
  418. package/dist/generated/templates/TabContainerTemplate.lit.js +2 -2
  419. package/dist/generated/templates/TabContainerTemplate.lit.js.map +1 -1
  420. package/dist/generated/templates/TextAreaPopoverTemplate.lit.js +1 -1
  421. package/dist/generated/templates/TextAreaPopoverTemplate.lit.js.map +1 -1
  422. package/dist/generated/templates/TextAreaTemplate.lit.js +2 -2
  423. package/dist/generated/templates/TextAreaTemplate.lit.js.map +1 -1
  424. package/dist/generated/templates/TimePickerPopoverTemplate.lit.js +2 -2
  425. package/dist/generated/templates/TimePickerPopoverTemplate.lit.js.map +1 -1
  426. package/dist/generated/templates/TimePickerTemplate.lit.js +3 -3
  427. package/dist/generated/templates/TimePickerTemplate.lit.js.map +1 -1
  428. package/dist/generated/templates/ToggleButtonTemplate.lit.js +3 -2
  429. package/dist/generated/templates/ToggleButtonTemplate.lit.js.map +1 -1
  430. package/dist/generated/templates/ToggleSpinButtonTemplate.lit.js +3 -2
  431. package/dist/generated/templates/ToggleSpinButtonTemplate.lit.js.map +1 -1
  432. package/dist/generated/templates/TokenizerPopoverTemplate.lit.js +4 -3
  433. package/dist/generated/templates/TokenizerPopoverTemplate.lit.js.map +1 -1
  434. package/dist/generated/templates/TokenizerTemplate.lit.js +4 -3
  435. package/dist/generated/templates/TokenizerTemplate.lit.js.map +1 -1
  436. package/dist/generated/templates/ToolbarButtonTemplate.lit.js +1 -1
  437. package/dist/generated/templates/ToolbarButtonTemplate.lit.js.map +1 -1
  438. package/dist/generated/templates/ToolbarPopoverButtonTemplate.lit.js +1 -1
  439. package/dist/generated/templates/ToolbarPopoverButtonTemplate.lit.js.map +1 -1
  440. package/dist/generated/templates/ToolbarPopoverTemplate.lit.js +1 -1
  441. package/dist/generated/templates/ToolbarPopoverTemplate.lit.js.map +1 -1
  442. package/dist/generated/templates/ToolbarTemplate.lit.js +1 -1
  443. package/dist/generated/templates/ToolbarTemplate.lit.js.map +1 -1
  444. package/dist/generated/themes/Avatar.css.js +1 -1
  445. package/dist/generated/themes/Avatar.css.js.map +1 -1
  446. package/dist/generated/themes/AvatarGroup.css.js +1 -1
  447. package/dist/generated/themes/AvatarGroup.css.js.map +1 -1
  448. package/dist/generated/themes/Bar.css.js +1 -1
  449. package/dist/generated/themes/Bar.css.js.map +1 -1
  450. package/dist/generated/themes/Breadcrumbs.css.js +1 -1
  451. package/dist/generated/themes/Breadcrumbs.css.js.map +1 -1
  452. package/dist/generated/themes/BusyIndicator.css.js +1 -1
  453. package/dist/generated/themes/BusyIndicator.css.js.map +1 -1
  454. package/dist/generated/themes/Button.css.js +1 -1
  455. package/dist/generated/themes/Button.css.js.map +1 -1
  456. package/dist/generated/themes/Calendar.css.js +1 -1
  457. package/dist/generated/themes/Calendar.css.js.map +1 -1
  458. package/dist/generated/themes/CalendarHeader.css.js +1 -1
  459. package/dist/generated/themes/CalendarHeader.css.js.map +1 -1
  460. package/dist/generated/themes/CalendarLegend.css.js +1 -1
  461. package/dist/generated/themes/CalendarLegend.css.js.map +1 -1
  462. package/dist/generated/themes/CalendarLegendItem.css.js +1 -1
  463. package/dist/generated/themes/CalendarLegendItem.css.js.map +1 -1
  464. package/dist/generated/themes/Card.css.js +1 -1
  465. package/dist/generated/themes/Card.css.js.map +1 -1
  466. package/dist/generated/themes/CardHeader.css.js +1 -1
  467. package/dist/generated/themes/CardHeader.css.js.map +1 -1
  468. package/dist/generated/themes/Carousel.css.js +1 -1
  469. package/dist/generated/themes/Carousel.css.js.map +1 -1
  470. package/dist/generated/themes/CheckBox.css.js +1 -1
  471. package/dist/generated/themes/CheckBox.css.js.map +1 -1
  472. package/dist/generated/themes/ColorPalette.css.js +1 -1
  473. package/dist/generated/themes/ColorPalette.css.js.map +1 -1
  474. package/dist/generated/themes/ColorPaletteItem.css.js +1 -1
  475. package/dist/generated/themes/ColorPaletteItem.css.js.map +1 -1
  476. package/dist/generated/themes/ColorPalettePopover.css.js +1 -1
  477. package/dist/generated/themes/ColorPalettePopover.css.js.map +1 -1
  478. package/dist/generated/themes/ColorPicker.css.js +1 -1
  479. package/dist/generated/themes/ColorPicker.css.js.map +1 -1
  480. package/dist/generated/themes/ComboBox.css.js +1 -1
  481. package/dist/generated/themes/ComboBox.css.js.map +1 -1
  482. package/dist/generated/themes/CustomListItem.css.js +1 -1
  483. package/dist/generated/themes/CustomListItem.css.js.map +1 -1
  484. package/dist/generated/themes/DatePicker.css.js +1 -1
  485. package/dist/generated/themes/DatePicker.css.js.map +1 -1
  486. package/dist/generated/themes/DateTimePickerPopover.css.js +1 -1
  487. package/dist/generated/themes/DateTimePickerPopover.css.js.map +1 -1
  488. package/dist/generated/themes/DayPicker.css.js +1 -1
  489. package/dist/generated/themes/DayPicker.css.js.map +1 -1
  490. package/dist/generated/themes/Dialog.css.js +1 -1
  491. package/dist/generated/themes/Dialog.css.js.map +1 -1
  492. package/dist/generated/themes/FileUploader.css.js +1 -1
  493. package/dist/generated/themes/FileUploader.css.js.map +1 -1
  494. package/dist/generated/themes/Form.css.js +9 -0
  495. package/dist/generated/themes/Form.css.js.map +1 -0
  496. package/dist/generated/themes/FormItem.css.js +9 -0
  497. package/dist/generated/themes/FormItem.css.js.map +1 -0
  498. package/dist/generated/themes/FormLabelSpan.css.js +9 -0
  499. package/dist/generated/themes/FormLabelSpan.css.js.map +1 -0
  500. package/dist/generated/themes/FormLayout.css.d.ts +3 -0
  501. package/dist/generated/themes/FormLayout.css.js +9 -0
  502. package/dist/generated/themes/FormLayout.css.js.map +1 -0
  503. package/dist/generated/themes/GrowingButton.css.js +1 -1
  504. package/dist/generated/themes/GrowingButton.css.js.map +1 -1
  505. package/dist/generated/themes/Icon.css.js +1 -1
  506. package/dist/generated/themes/Icon.css.js.map +1 -1
  507. package/dist/generated/themes/Input.css.js +1 -1
  508. package/dist/generated/themes/Input.css.js.map +1 -1
  509. package/dist/generated/themes/InputIcon.css.js +1 -1
  510. package/dist/generated/themes/InputIcon.css.js.map +1 -1
  511. package/dist/generated/themes/InputSharedStyles.css.js +1 -1
  512. package/dist/generated/themes/InputSharedStyles.css.js.map +1 -1
  513. package/dist/generated/themes/Label.css.js +1 -1
  514. package/dist/generated/themes/Label.css.js.map +1 -1
  515. package/dist/generated/themes/Link.css.js +1 -1
  516. package/dist/generated/themes/Link.css.js.map +1 -1
  517. package/dist/generated/themes/List.css.js +1 -1
  518. package/dist/generated/themes/List.css.js.map +1 -1
  519. package/dist/generated/themes/ListItem.css.js +1 -1
  520. package/dist/generated/themes/ListItem.css.js.map +1 -1
  521. package/dist/generated/themes/ListItemAdditionalText.css.d.ts +3 -0
  522. package/dist/generated/themes/{SelectMenu.css.js → ListItemAdditionalText.css.js} +2 -2
  523. package/dist/generated/themes/ListItemAdditionalText.css.js.map +1 -0
  524. package/dist/generated/themes/ListItemBase.css.js +1 -1
  525. package/dist/generated/themes/ListItemBase.css.js.map +1 -1
  526. package/dist/generated/themes/ListItemGroup.css.js +1 -1
  527. package/dist/generated/themes/ListItemGroup.css.js.map +1 -1
  528. package/dist/generated/themes/ListItemGroupHeader.css.js +1 -1
  529. package/dist/generated/themes/ListItemGroupHeader.css.js.map +1 -1
  530. package/dist/generated/themes/ListItemIcon.css.d.ts +3 -0
  531. package/dist/generated/themes/ListItemIcon.css.js +9 -0
  532. package/dist/generated/themes/ListItemIcon.css.js.map +1 -0
  533. package/dist/generated/themes/Menu.css.js +1 -1
  534. package/dist/generated/themes/Menu.css.js.map +1 -1
  535. package/dist/generated/themes/MenuItem.css.d.ts +3 -0
  536. package/dist/generated/themes/MenuItem.css.js +9 -0
  537. package/dist/generated/themes/MenuItem.css.js.map +1 -0
  538. package/dist/generated/themes/MessageStrip.css.js +1 -1
  539. package/dist/generated/themes/MessageStrip.css.js.map +1 -1
  540. package/dist/generated/themes/MonthPicker.css.js +1 -1
  541. package/dist/generated/themes/MonthPicker.css.js.map +1 -1
  542. package/dist/generated/themes/MultiComboBox.css.js +1 -1
  543. package/dist/generated/themes/MultiComboBox.css.js.map +1 -1
  544. package/dist/generated/themes/MultiComboBoxPopover.css.js +1 -1
  545. package/dist/generated/themes/MultiComboBoxPopover.css.js.map +1 -1
  546. package/dist/generated/themes/MultiInput.css.js +1 -1
  547. package/dist/generated/themes/MultiInput.css.js.map +1 -1
  548. package/dist/generated/themes/NavigationMenu.css.js +1 -1
  549. package/dist/generated/themes/NavigationMenu.css.js.map +1 -1
  550. package/dist/generated/themes/NavigationMenuItem.css.d.ts +3 -0
  551. package/dist/generated/themes/NavigationMenuItem.css.js +9 -0
  552. package/dist/generated/themes/NavigationMenuItem.css.js.map +1 -0
  553. package/dist/generated/themes/OptionBase.css.d.ts +3 -0
  554. package/dist/generated/themes/{SelectMenuOption.css.js → OptionBase.css.js} +3 -2
  555. package/dist/generated/themes/{SelectMenu.css.js.map → OptionBase.css.js.map} +1 -1
  556. package/dist/generated/themes/Panel.css.js +1 -1
  557. package/dist/generated/themes/Panel.css.js.map +1 -1
  558. package/dist/generated/themes/Popover.css.js +1 -1
  559. package/dist/generated/themes/Popover.css.js.map +1 -1
  560. package/dist/generated/themes/Popup.css.js +1 -1
  561. package/dist/generated/themes/Popup.css.js.map +1 -1
  562. package/dist/generated/themes/PopupsCommon.css.js +1 -1
  563. package/dist/generated/themes/PopupsCommon.css.js.map +1 -1
  564. package/dist/generated/themes/ProgressIndicator.css.js +1 -1
  565. package/dist/generated/themes/ProgressIndicator.css.js.map +1 -1
  566. package/dist/generated/themes/RadioButton.css.js +1 -1
  567. package/dist/generated/themes/RadioButton.css.js.map +1 -1
  568. package/dist/generated/themes/RangeSlider.css.js +1 -1
  569. package/dist/generated/themes/RangeSlider.css.js.map +1 -1
  570. package/dist/generated/themes/RatingIndicator.css.js +1 -1
  571. package/dist/generated/themes/RatingIndicator.css.js.map +1 -1
  572. package/dist/generated/themes/ResponsivePopover.css.js +1 -1
  573. package/dist/generated/themes/ResponsivePopover.css.js.map +1 -1
  574. package/dist/generated/themes/ResponsivePopoverCommon.css.js +1 -1
  575. package/dist/generated/themes/ResponsivePopoverCommon.css.js.map +1 -1
  576. package/dist/generated/themes/SegmentedButton.css.js +1 -1
  577. package/dist/generated/themes/SegmentedButton.css.js.map +1 -1
  578. package/dist/generated/themes/SegmentedButtonItem.css.js +1 -1
  579. package/dist/generated/themes/SegmentedButtonItem.css.js.map +1 -1
  580. package/dist/generated/themes/Select.css.js +1 -1
  581. package/dist/generated/themes/Select.css.js.map +1 -1
  582. package/dist/generated/themes/SelectPopover.css.js +1 -1
  583. package/dist/generated/themes/SelectPopover.css.js.map +1 -1
  584. package/dist/generated/themes/SliderBase.css.js +1 -1
  585. package/dist/generated/themes/SliderBase.css.js.map +1 -1
  586. package/dist/generated/themes/SplitButton.css.js +1 -1
  587. package/dist/generated/themes/SplitButton.css.js.map +1 -1
  588. package/dist/generated/themes/StepInput.css.js +1 -1
  589. package/dist/generated/themes/StepInput.css.js.map +1 -1
  590. package/dist/generated/themes/Switch.css.js +1 -1
  591. package/dist/generated/themes/Switch.css.js.map +1 -1
  592. package/dist/generated/themes/TabContainer.css.js +1 -1
  593. package/dist/generated/themes/TabContainer.css.js.map +1 -1
  594. package/dist/generated/themes/TabInOverflow.css.js +1 -1
  595. package/dist/generated/themes/TabInOverflow.css.js.map +1 -1
  596. package/dist/generated/themes/TabInStrip.css.js +1 -1
  597. package/dist/generated/themes/TabInStrip.css.js.map +1 -1
  598. package/dist/generated/themes/TabSemanticIcon.css.js +1 -1
  599. package/dist/generated/themes/TabSemanticIcon.css.js.map +1 -1
  600. package/dist/generated/themes/TabSeparatorInOverflow.css.js +1 -1
  601. package/dist/generated/themes/TabSeparatorInOverflow.css.js.map +1 -1
  602. package/dist/generated/themes/Tag.css.js +1 -1
  603. package/dist/generated/themes/Tag.css.js.map +1 -1
  604. package/dist/generated/themes/Text.css.js +1 -1
  605. package/dist/generated/themes/Text.css.js.map +1 -1
  606. package/dist/generated/themes/TextArea.css.js +1 -1
  607. package/dist/generated/themes/TextArea.css.js.map +1 -1
  608. package/dist/generated/themes/TimePicker.css.js +1 -1
  609. package/dist/generated/themes/TimePicker.css.js.map +1 -1
  610. package/dist/generated/themes/Toast.css.js +1 -1
  611. package/dist/generated/themes/Toast.css.js.map +1 -1
  612. package/dist/generated/themes/ToggleButton.css.js +1 -1
  613. package/dist/generated/themes/ToggleButton.css.js.map +1 -1
  614. package/dist/generated/themes/Token.css.js +1 -1
  615. package/dist/generated/themes/Token.css.js.map +1 -1
  616. package/dist/generated/themes/Tokenizer.css.js +1 -1
  617. package/dist/generated/themes/Tokenizer.css.js.map +1 -1
  618. package/dist/generated/themes/TokenizerPopover.css.js +1 -1
  619. package/dist/generated/themes/TokenizerPopover.css.js.map +1 -1
  620. package/dist/generated/themes/Toolbar.css.js +1 -1
  621. package/dist/generated/themes/Toolbar.css.js.map +1 -1
  622. package/dist/generated/themes/ToolbarPopover.css.js +1 -1
  623. package/dist/generated/themes/ToolbarPopover.css.js.map +1 -1
  624. package/dist/generated/themes/TreeItem.css.js +1 -1
  625. package/dist/generated/themes/TreeItem.css.js.map +1 -1
  626. package/dist/generated/themes/ValueStateMessage.css.js +1 -1
  627. package/dist/generated/themes/ValueStateMessage.css.js.map +1 -1
  628. package/dist/generated/themes/YearPicker.css.js +1 -1
  629. package/dist/generated/themes/YearPicker.css.js.map +1 -1
  630. package/dist/generated/themes/sap_fiori_3/parameters-bundle.css.js +1 -1
  631. package/dist/generated/themes/sap_fiori_3/parameters-bundle.css.js.map +1 -1
  632. package/dist/generated/themes/sap_fiori_3_dark/parameters-bundle.css.js +1 -1
  633. package/dist/generated/themes/sap_fiori_3_dark/parameters-bundle.css.js.map +1 -1
  634. package/dist/generated/themes/sap_fiori_3_hcb/parameters-bundle.css.js +1 -1
  635. package/dist/generated/themes/sap_fiori_3_hcb/parameters-bundle.css.js.map +1 -1
  636. package/dist/generated/themes/sap_fiori_3_hcw/parameters-bundle.css.js +1 -1
  637. package/dist/generated/themes/sap_fiori_3_hcw/parameters-bundle.css.js.map +1 -1
  638. package/dist/generated/themes/sap_horizon/parameters-bundle.css.js +1 -1
  639. package/dist/generated/themes/sap_horizon/parameters-bundle.css.js.map +1 -1
  640. package/dist/generated/themes/sap_horizon_dark/parameters-bundle.css.js +1 -1
  641. package/dist/generated/themes/sap_horizon_dark/parameters-bundle.css.js.map +1 -1
  642. package/dist/generated/themes/sap_horizon_dark_exp/parameters-bundle.css.js +1 -1
  643. package/dist/generated/themes/sap_horizon_dark_exp/parameters-bundle.css.js.map +1 -1
  644. package/dist/generated/themes/sap_horizon_exp/parameters-bundle.css.js +1 -1
  645. package/dist/generated/themes/sap_horizon_exp/parameters-bundle.css.js.map +1 -1
  646. package/dist/generated/themes/sap_horizon_hcb/parameters-bundle.css.js +1 -1
  647. package/dist/generated/themes/sap_horizon_hcb/parameters-bundle.css.js.map +1 -1
  648. package/dist/generated/themes/sap_horizon_hcb_exp/parameters-bundle.css.js +1 -1
  649. package/dist/generated/themes/sap_horizon_hcb_exp/parameters-bundle.css.js.map +1 -1
  650. package/dist/generated/themes/sap_horizon_hcw/parameters-bundle.css.js +1 -1
  651. package/dist/generated/themes/sap_horizon_hcw/parameters-bundle.css.js.map +1 -1
  652. package/dist/generated/themes/sap_horizon_hcw_exp/parameters-bundle.css.js +1 -1
  653. package/dist/generated/themes/sap_horizon_hcw_exp/parameters-bundle.css.js.map +1 -1
  654. package/dist/popup-utils/OpenedPopupsRegistry.js +1 -1
  655. package/dist/popup-utils/OpenedPopupsRegistry.js.map +1 -1
  656. package/dist/popup-utils/PopoverRegistry.js +5 -4
  657. package/dist/popup-utils/PopoverRegistry.js.map +1 -1
  658. package/dist/styles/Icon.css +33 -0
  659. package/dist/styles/Icon.module.css +33 -0
  660. package/dist/types/FormItemSpacing.d.ts +19 -0
  661. package/dist/types/FormItemSpacing.js +21 -0
  662. package/dist/types/FormItemSpacing.js.map +1 -0
  663. package/dist/types/{HighlightTypes.d.ts → Highlight.d.ts} +3 -3
  664. package/dist/types/Highlight.js +30 -0
  665. package/dist/types/Highlight.js.map +1 -0
  666. package/dist/types/InputType.d.ts +7 -1
  667. package/dist/types/InputType.js +6 -0
  668. package/dist/types/InputType.js.map +1 -1
  669. package/dist/types/LinkAccessibleRole.d.ts +19 -0
  670. package/dist/types/LinkAccessibleRole.js +21 -0
  671. package/dist/types/LinkAccessibleRole.js.map +1 -0
  672. package/dist/vscode.html-custom-data.json +306 -157
  673. package/dist/web-types.json +698 -364
  674. package/package.json +10 -10
  675. package/src/BusyIndicator.hbs +1 -1
  676. package/src/Button.hbs +10 -1
  677. package/src/Calendar.hbs +2 -2
  678. package/src/CheckBox.hbs +0 -2
  679. package/src/ColorPalette.hbs +3 -1
  680. package/src/ColorPaletteItem.hbs +1 -1
  681. package/src/ColorPalettePopover.hbs +2 -1
  682. package/src/ComboBox.hbs +2 -2
  683. package/src/ComboBoxPopover.hbs +15 -4
  684. package/src/DatePickerInput.hbs +1 -3
  685. package/src/DatePickerPopover.hbs +3 -3
  686. package/src/DateRangePicker.hbs +23 -0
  687. package/src/DateTimePickerPopover.hbs +2 -2
  688. package/src/FileUploader.hbs +10 -16
  689. package/src/FileUploaderPopover.hbs +1 -1
  690. package/src/Form.hbs +37 -0
  691. package/src/FormItem.hbs +14 -0
  692. package/src/Input.hbs +1 -3
  693. package/src/InputPopover.hbs +5 -5
  694. package/src/ListItemBase.hbs +21 -0
  695. package/src/ListItemGroup.hbs +12 -12
  696. package/src/ListItemGroupHeader.hbs +0 -1
  697. package/src/Menu.hbs +17 -49
  698. package/src/MenuItem.hbs +109 -0
  699. package/src/MonthPicker.hbs +1 -1
  700. package/src/MultiComboBox.hbs +2 -2
  701. package/src/MultiComboBoxPopover.hbs +4 -4
  702. package/src/MultiInput.hbs +4 -2
  703. package/src/NavigationMenu.hbs +14 -101
  704. package/src/NavigationMenuItem.hbs +124 -0
  705. package/src/Option.hbs +15 -0
  706. package/src/OptionCustom.hbs +5 -0
  707. package/src/RadioButton.hbs +0 -1
  708. package/src/ResponsivePopover.hbs +6 -5
  709. package/src/SegmentedButtonItem.hbs +1 -1
  710. package/src/Select.hbs +2 -3
  711. package/src/SelectPopover.hbs +7 -20
  712. package/src/StepInput.hbs +2 -4
  713. package/src/Switch.hbs +0 -1
  714. package/src/TabContainer.hbs +4 -4
  715. package/src/TextArea.hbs +0 -2
  716. package/src/TextAreaPopover.hbs +1 -1
  717. package/src/TimePicker.hbs +4 -5
  718. package/src/TimePickerPopover.hbs +6 -5
  719. package/src/TokenizerPopover.hbs +9 -7
  720. package/src/ToolbarButton.hbs +1 -1
  721. package/src/ToolbarPopover.hbs +2 -2
  722. package/src/ToolbarPopoverButton.hbs +1 -1
  723. package/src/i18n/messagebundle.properties +11 -3
  724. package/src/i18n/messagebundle_en.properties +13 -3
  725. package/src/i18n/messagebundle_en_US_saprigi.properties +13 -3
  726. package/src/styles/Icon.module.css +1 -0
  727. package/src/themes/Button.css +7 -10
  728. package/src/themes/Calendar.css +1 -0
  729. package/src/themes/CalendarLegendItem.css +4 -1
  730. package/src/themes/ColorPalette.css +11 -6
  731. package/src/themes/ColorPaletteItem.css +55 -27
  732. package/src/themes/Form.css +50 -0
  733. package/src/themes/FormItem.css +65 -0
  734. package/src/themes/FormLabelSpan.css +267 -0
  735. package/src/themes/FormLayout.css +159 -0
  736. package/src/themes/GrowingButton.css +1 -1
  737. package/src/themes/Input.css +20 -20
  738. package/src/themes/InputIcon.css +6 -13
  739. package/src/themes/InputSharedStyles.css +15 -16
  740. package/src/themes/Label.css +7 -4
  741. package/src/themes/ListItem.css +6 -57
  742. package/src/themes/ListItemAdditionalText.css +10 -0
  743. package/src/themes/ListItemBase.css +61 -46
  744. package/src/themes/ListItemIcon.css +6 -0
  745. package/src/themes/Menu.css +0 -10
  746. package/src/themes/{MenuListItem.css → MenuItem.css} +12 -0
  747. package/src/themes/MonthPicker.css +23 -0
  748. package/src/themes/NavigationMenu.css +7 -65
  749. package/src/themes/NavigationMenuItem.css +54 -0
  750. package/src/themes/OptionBase.css +3 -0
  751. package/src/themes/Popover.css +1 -1
  752. package/src/themes/Popup.css +1 -1
  753. package/src/themes/ResponsivePopover.css +3 -3
  754. package/src/themes/ResponsivePopoverCommon.css +3 -3
  755. package/src/themes/SegmentedButton.css +2 -3
  756. package/src/themes/SegmentedButtonItem.css +0 -8
  757. package/src/themes/SelectPopover.css +1 -9
  758. package/src/themes/TimePicker.css +1 -24
  759. package/src/themes/base/ColorPalette-parameters.css +10 -4
  760. package/src/themes/base/Form-parameters.css +20 -0
  761. package/src/themes/base/sizes-parameters.css +25 -7
  762. package/src/themes/sap_fiori_3/parameters-bundle.css +2 -2
  763. package/src/themes/sap_fiori_3/sizes-parameters.css +6 -0
  764. package/src/themes/sap_fiori_3_dark/parameters-bundle.css +2 -2
  765. package/src/themes/sap_fiori_3_dark/sizes-parameters.css +6 -0
  766. package/src/themes/sap_fiori_3_hcb/Tag-parameters.css +102 -0
  767. package/src/themes/sap_fiori_3_hcw/Tag-parameters.css +102 -0
  768. package/src/themes/sap_horizon/ColorPalette-parameters.css +7 -4
  769. package/src/themes/sap_horizon/parameters-bundle.css +1 -0
  770. package/src/themes/sap_horizon/sizes-parameters.css +4 -2
  771. package/src/themes/sap_horizon_dark/ColorPalette-parameters.css +7 -4
  772. package/src/themes/sap_horizon_dark/sizes-parameters.css +4 -2
  773. package/src/themes/sap_horizon_dark_exp/ColorPalette-parameters.css +5 -4
  774. package/src/themes/sap_horizon_dark_exp/sizes-parameters.css +1 -2
  775. package/src/themes/sap_horizon_exp/ColorPalette-parameters.css +5 -4
  776. package/src/themes/sap_horizon_exp/parameters-bundle.css +1 -1
  777. package/src/themes/sap_horizon_exp/sizes-parameters.css +1 -2
  778. package/src/themes/sap_horizon_hcb/ColorPalette-parameters.css +8 -0
  779. package/src/themes/sap_horizon_hcb/Tag-parameters.css +9 -9
  780. package/src/themes/sap_horizon_hcb/parameters-bundle.css +1 -1
  781. package/src/themes/sap_horizon_hcw/ColorPalette-parameters.css +8 -0
  782. package/src/themes/sap_horizon_hcw/Tag-parameters.css +9 -9
  783. package/src/themes/sap_horizon_hcw/parameters-bundle.css +1 -1
  784. package/dist/ComboBoxGroupItem.js.map +0 -1
  785. package/dist/MenuListItem.d.ts +0 -61
  786. package/dist/MenuListItem.js +0 -71
  787. package/dist/MenuListItem.js.map +0 -1
  788. package/dist/SelectMenu.d.ts +0 -102
  789. package/dist/SelectMenu.js +0 -237
  790. package/dist/SelectMenu.js.map +0 -1
  791. package/dist/SelectMenuOption.d.ts +0 -94
  792. package/dist/SelectMenuOption.js +0 -78
  793. package/dist/SelectMenuOption.js.map +0 -1
  794. package/dist/css/themes/MenuListItem.css +0 -1
  795. package/dist/css/themes/SelectMenu.css +0 -1
  796. package/dist/css/themes/SelectMenuOption.css +0 -0
  797. package/dist/features/InputElementsFormSupport.d.ts +0 -41
  798. package/dist/features/InputElementsFormSupport.js +0 -134
  799. package/dist/features/InputElementsFormSupport.js.map +0 -1
  800. package/dist/generated/templates/MenuListItemTemplate.lit.js.map +0 -1
  801. package/dist/generated/templates/SelectMenuTemplate.lit.d.ts +0 -4
  802. package/dist/generated/templates/SelectMenuTemplate.lit.js +0 -15
  803. package/dist/generated/templates/SelectMenuTemplate.lit.js.map +0 -1
  804. package/dist/generated/themes/MenuListItem.css.js +0 -9
  805. package/dist/generated/themes/MenuListItem.css.js.map +0 -1
  806. package/dist/generated/themes/SelectMenuOption.css.js.map +0 -1
  807. package/dist/styles/Input.css +0 -0
  808. package/dist/styles/Input.module.css +0 -0
  809. package/dist/types/HighlightTypes.js +0 -30
  810. package/dist/types/HighlightTypes.js.map +0 -1
  811. package/src/MenuListItem.hbs +0 -35
  812. package/src/SelectMenu.hbs +0 -57
  813. package/src/styles/Input.module.css +0 -0
  814. package/src/themes/SelectMenu.css +0 -16
  815. package/src/themes/SelectMenuOption.css +0 -0
  816. /package/dist/generated/themes/{MenuListItem.css.d.ts → Form.css.d.ts} +0 -0
  817. /package/dist/generated/themes/{SelectMenu.css.d.ts → FormItem.css.d.ts} +0 -0
  818. /package/dist/generated/themes/{SelectMenuOption.css.d.ts → FormLabelSpan.css.d.ts} +0 -0
package/dist/Tokenizer.js CHANGED
@@ -13,6 +13,7 @@ import customElement from "@ui5/webcomponents-base/dist/decorators/customElement
13
13
  import litRender from "@ui5/webcomponents-base/dist/renderer/LitRenderer.js";
14
14
  import DOMReference from "@ui5/webcomponents-base/dist/types/DOMReference.js";
15
15
  import ResizeHandler from "@ui5/webcomponents-base/dist/delegate/ResizeHandler.js";
16
+ import { renderFinished } from "@ui5/webcomponents-base/dist/Render.js";
16
17
  import ItemNavigation from "@ui5/webcomponents-base/dist/delegate/ItemNavigation.js";
17
18
  import { getEffectiveAriaLabelText } from "@ui5/webcomponents-base/dist/util/AriaLabelHelper.js";
18
19
  import getActiveElement from "@ui5/webcomponents-base/dist/util/getActiveElement.js";
@@ -27,6 +28,7 @@ import List from "./List.js";
27
28
  import ListSelectionMode from "./types/ListSelectionMode.js";
28
29
  import Title from "./Title.js";
29
30
  import Button from "./Button.js";
31
+ import Icon from "./Icon.js";
30
32
  import StandardListItem from "./StandardListItem.js";
31
33
  import "./Token.js";
32
34
  import TokenizerTemplate from "./generated/templates/TokenizerTemplate.lit.js";
@@ -77,8 +79,8 @@ var ClipboardDataOperation;
77
79
  *
78
80
  * @constructor
79
81
  * @extends sap.ui.webc.base.UI5Element
80
- * @since 2.0
81
82
  * @public
83
+ * @since 2.0.0
82
84
  */
83
85
  let Tokenizer = Tokenizer_1 = class Tokenizer extends UI5Element {
84
86
  _handleResize() {
@@ -93,6 +95,7 @@ let Tokenizer = Tokenizer_1 = class Tokenizer extends UI5Element {
93
95
  });
94
96
  this._scrollEnablement = new ScrollEnablement(this);
95
97
  this._tokenDeleting = false;
98
+ this._deletedDialogItems = [];
96
99
  }
97
100
  onBeforeRendering() {
98
101
  const tokensLength = this._tokens.length;
@@ -168,15 +171,10 @@ let Tokenizer = Tokenizer_1 = class Tokenizer extends UI5Element {
168
171
  const target = e.target;
169
172
  if (!e.detail) { // if there are no details, the event is triggered by a click
170
173
  this._tokenClickDelete(e, target);
171
- this.open = !this._tokens.length;
174
+ this.open = false;
172
175
  return;
173
176
  }
174
- if (this._selectedTokens.length) {
175
- this._selectedTokens.forEach(token => this.deleteToken(token, e.detail.backSpace));
176
- }
177
- else {
178
- this.deleteToken(target, e.detail.backSpace);
179
- }
177
+ this.deleteToken(target, e.detail.backSpace);
180
178
  }
181
179
  _tokenClickDelete(e, token) {
182
180
  const tokens = this._getVisibleTokens();
@@ -186,7 +184,7 @@ let Tokenizer = Tokenizer_1 = class Tokenizer extends UI5Element {
186
184
  const nextToken = tokens[nextTokenIndex]; // if the last item was deleted this will be undefined
187
185
  this._handleCurrentItemAfterDeletion(nextToken);
188
186
  this._tokenDeleting = true;
189
- this.fireEvent("token-delete", { ref: token || target });
187
+ this.fireEvent("token-delete", { tokens: [token] || [target] });
190
188
  }
191
189
  _handleCurrentItemAfterDeletion(nextToken) {
192
190
  if (nextToken && !isPhone()) {
@@ -216,7 +214,13 @@ let Tokenizer = Tokenizer_1 = class Tokenizer extends UI5Element {
216
214
  let nextToken = tokens[nextTokenIndex];
217
215
  if (notSelectedTokens.length > 1) {
218
216
  while (nextToken && nextToken.selected) {
219
- nextToken = forwardFocusToPrevious ? tokens[--nextTokenIndex] : tokens[++nextTokenIndex];
217
+ nextTokenIndex = forwardFocusToPrevious ? --nextTokenIndex : ++nextTokenIndex;
218
+ if (nextTokenIndex < 0) {
219
+ nextToken = notSelectedTokens[0];
220
+ }
221
+ if (nextTokenIndex > notSelectedTokens.length) {
222
+ nextToken = notSelectedTokens[notSelectedTokens.length - 1];
223
+ }
220
224
  }
221
225
  }
222
226
  else {
@@ -224,37 +228,41 @@ let Tokenizer = Tokenizer_1 = class Tokenizer extends UI5Element {
224
228
  }
225
229
  this._handleCurrentItemAfterDeletion(nextToken);
226
230
  this._tokenDeleting = true;
227
- this.fireEvent("token-delete", { ref: token });
231
+ if (this._selectedTokens.length) {
232
+ this.fireEvent("token-delete", { tokens: this._selectedTokens });
233
+ }
234
+ else {
235
+ this.fireEvent("token-delete", { tokens: [token] });
236
+ }
228
237
  }
229
- itemDelete(e) {
238
+ async itemDelete(e) {
230
239
  const token = e.detail.item.tokenRef;
231
240
  const tokensArray = this._tokens;
232
241
  // delay the token deletion in order to close the popover before removing token of the DOM
233
242
  if (tokensArray.length === 1) {
234
- if (tokensArray[0].isTruncatable) {
235
- const morePopover = this.getPopover();
236
- morePopover.addEventListener("ui5-after-close", () => {
237
- this.fireEvent("token-delete", { ref: token });
238
- }, {
239
- once: true,
240
- });
241
- return;
242
- }
243
- this.fireEvent("token-delete", { ref: token });
243
+ const morePopover = this.getPopover();
244
+ morePopover.addEventListener("ui5-close", () => {
245
+ this.fireEvent("token-delete", { tokens: [token] });
246
+ }, {
247
+ once: true,
248
+ });
244
249
  this.open = false;
245
250
  }
246
251
  else {
247
- this.fireEvent("token-delete", { ref: token });
252
+ if (isPhone()) {
253
+ token._isVisible = false;
254
+ this._deletedDialogItems.push(token);
255
+ }
256
+ else {
257
+ this.fireEvent("token-delete", { tokens: [token] });
258
+ }
248
259
  const currentListItem = e.detail.item;
249
260
  const nextListItem = currentListItem.nextElementSibling;
250
- const preciousListItem = currentListItem.previousElementSibling;
251
- if (nextListItem) {
252
- const nextListItemIcon = nextListItem.shadowRoot.querySelector("[part=delete-button]");
253
- nextListItemIcon.focus();
254
- }
255
- else if (preciousListItem) {
256
- const previousListItemIcon = preciousListItem.shadowRoot.querySelector("[part=delete-button]");
257
- previousListItemIcon.focus();
261
+ const previousListItem = currentListItem.previousElementSibling;
262
+ const focusItem = nextListItem || previousListItem;
263
+ if (focusItem) {
264
+ await renderFinished();
265
+ focusItem.focus();
258
266
  }
259
267
  }
260
268
  }
@@ -271,17 +279,28 @@ let Tokenizer = Tokenizer_1 = class Tokenizer extends UI5Element {
271
279
  }
272
280
  }
273
281
  handleBeforeOpen() {
282
+ this._tokens.forEach(token => {
283
+ token._isVisible = true;
284
+ });
285
+ const list = this._getList();
286
+ const firstListItem = list.querySelectorAll("[ui5-li]")[0];
287
+ list._itemNavigation.setCurrentItem(firstListItem);
274
288
  this.fireEvent("before-more-popover-open");
275
289
  }
276
290
  handleAfterClose() {
277
291
  this.open = false;
278
292
  this._preventCollapse = false;
279
293
  this._focusedElementBeforeOpen = null;
294
+ this._tokens.forEach(token => {
295
+ token._isVisible = true;
296
+ });
280
297
  }
281
298
  handleDialogButtonPress(e) {
282
299
  const isOkButton = e.target.hasAttribute("data-ui5-tokenizer-dialog-ok-button");
283
300
  const confirm = !!isOkButton;
284
- this.fireEvent("dialog-button-press", { confirm });
301
+ if (confirm && this._deletedDialogItems.length) {
302
+ this.fireEvent("token-delete", { tokens: this._deletedDialogItems });
303
+ }
285
304
  this.open = false;
286
305
  }
287
306
  _onkeydown(e) {
@@ -290,9 +309,10 @@ let Tokenizer = Tokenizer_1 = class Tokenizer extends UI5Element {
290
309
  e.preventDefault();
291
310
  const isCut = e.key.toLowerCase() === "x" || isDeleteShift(e);
292
311
  const selectedTokens = this._tokens.filter(token => token.selected);
312
+ const focusedToken = selectedTokens.find(token => token.focused);
293
313
  if (isCut) {
294
314
  const cutResult = this._fillClipboard(ClipboardDataOperation.cut, selectedTokens);
295
- selectedTokens.forEach(token => this.deleteToken(token));
315
+ focusedToken && this.deleteToken(focusedToken);
296
316
  return cutResult;
297
317
  }
298
318
  return this._fillClipboard(ClipboardDataOperation.copy, selectedTokens);
@@ -383,7 +403,7 @@ let Tokenizer = Tokenizer_1 = class Tokenizer extends UI5Element {
383
403
  const selectedTokensChanged = JSON.stringify(previousSelectedTokens) !== JSON.stringify(this._selectedTokens);
384
404
  if (selectedTokensChanged) {
385
405
  this.fireEvent("selection-change", {
386
- selectedTokens: this._selectedTokens,
406
+ tokens: this._selectedTokens,
387
407
  });
388
408
  }
389
409
  tokens[0].focus();
@@ -399,7 +419,7 @@ let Tokenizer = Tokenizer_1 = class Tokenizer extends UI5Element {
399
419
  const selectedTokensChanged = JSON.stringify(previousSelectedTokens) !== JSON.stringify(this._selectedTokens);
400
420
  if (selectedTokensChanged) {
401
421
  this.fireEvent("selection-change", {
402
- selectedTokens: this._selectedTokens,
422
+ tokens: this._selectedTokens,
403
423
  });
404
424
  }
405
425
  tokens[tokens.length - 1].focus();
@@ -441,7 +461,7 @@ let Tokenizer = Tokenizer_1 = class Tokenizer extends UI5Element {
441
461
  const selectedTokensChanged = JSON.stringify(previousSelectedTokens) !== JSON.stringify(this._selectedTokens);
442
462
  if (selectedTokensChanged) {
443
463
  this.fireEvent("selection-change", {
444
- selectedTokens: this._selectedTokens,
464
+ tokens: this._selectedTokens,
445
465
  });
446
466
  }
447
467
  tokens[nextIndex].focus();
@@ -450,7 +470,7 @@ let Tokenizer = Tokenizer_1 = class Tokenizer extends UI5Element {
450
470
  _click(e) {
451
471
  if (e.metaKey || e.ctrlKey) {
452
472
  this.fireEvent("selection-change", {
453
- selectedTokens: this._selectedTokens,
473
+ tokens: this._selectedTokens,
454
474
  });
455
475
  return;
456
476
  }
@@ -477,7 +497,7 @@ let Tokenizer = Tokenizer_1 = class Tokenizer extends UI5Element {
477
497
  });
478
498
  }
479
499
  this.fireEvent("selection-change", {
480
- selectedTokens: this._selectedTokens,
500
+ tokens: this._selectedTokens,
481
501
  });
482
502
  return;
483
503
  }
@@ -514,7 +534,7 @@ let Tokenizer = Tokenizer_1 = class Tokenizer extends UI5Element {
514
534
  const tokensAreSelected = tokens.every(token => token.selected);
515
535
  tokens.forEach(token => { token.selected = !tokensAreSelected; });
516
536
  this.fireEvent("selection-change", {
517
- selectedTokens: this._selectedTokens,
537
+ tokens: this._selectedTokens,
518
538
  });
519
539
  }
520
540
  _handleTokenSelection(e, deselectAll = true) {
@@ -527,7 +547,7 @@ let Tokenizer = Tokenizer_1 = class Tokenizer extends UI5Element {
527
547
  }
528
548
  });
529
549
  this.fireEvent("selection-change", {
530
- selectedTokens: this._selectedTokens,
550
+ tokens: this._selectedTokens,
531
551
  });
532
552
  }
533
553
  }
@@ -582,6 +602,9 @@ let Tokenizer = Tokenizer_1 = class Tokenizer extends UI5Element {
582
602
  this._scrollEnablement.scrollTo(this.contentDom.scrollLeft + (tokenRect.right - tokenContainerRect.right + 5), 0);
583
603
  }
584
604
  }
605
+ _getList() {
606
+ return this.getPopover().querySelector("[ui5-list]");
607
+ }
585
608
  get _tokens() {
586
609
  return this.getSlottedNodes("tokens");
587
610
  }
@@ -663,17 +686,6 @@ let Tokenizer = Tokenizer_1 = class Tokenizer extends UI5Element {
663
686
  },
664
687
  };
665
688
  }
666
- _tokensCountText() {
667
- const iTokenCount = this._tokens.length;
668
- const tokenCountMap = {
669
- 0: TOKENIZER_ARIA_CONTAIN_TOKEN,
670
- 1: TOKENIZER_ARIA_CONTAIN_ONE_TOKEN,
671
- };
672
- if (iTokenCount in tokenCountMap) {
673
- return Tokenizer_1.i18nBundle.getText(tokenCountMap[iTokenCount]);
674
- }
675
- return Tokenizer_1.i18nBundle.getText(TOKENIZER_ARIA_CONTAIN_SEVERAL_TOKENS, iTokenCount);
676
- }
677
689
  /**
678
690
  * @protected
679
691
  */
@@ -732,7 +744,15 @@ __decorate([
732
744
  property({ validator: Integer })
733
745
  ], Tokenizer.prototype, "_tokensCount", void 0);
734
746
  __decorate([
735
- slot({ type: HTMLElement, "default": true, individualSlots: true })
747
+ slot({
748
+ type: HTMLElement,
749
+ "default": true,
750
+ individualSlots: true,
751
+ invalidateOnChildChange: {
752
+ properties: ["_isVisible"],
753
+ slots: false,
754
+ },
755
+ })
736
756
  ], Tokenizer.prototype, "tokens", void 0);
737
757
  Tokenizer = Tokenizer_1 = __decorate([
738
758
  customElement({
@@ -752,47 +772,38 @@ Tokenizer = Tokenizer_1 = __decorate([
752
772
  StandardListItem,
753
773
  Title,
754
774
  Button,
775
+ Icon,
755
776
  ],
756
777
  })
757
778
  /**
758
- * Fired when a token is deleted (delete icon, delete or backspace is pressed)
759
- *
760
- * @param {HTMLElement} ref DOM ref of the token to be deleted.
779
+ * Fired when tokens are being deleted (delete icon, delete or backspace is pressed)
780
+ * @param {Array} tokens An array containing the deleted tokens.
761
781
  * @public
762
782
  */
763
783
  ,
764
784
  event("token-delete", {
765
785
  detail: {
766
- ref: { type: HTMLElement },
786
+ /**
787
+ * @public
788
+ */
789
+ tokens: { type: Array },
767
790
  },
768
791
  })
769
792
  /**
770
793
  * Fired when token selection is changed by user interaction
771
794
  *
772
- * @param {Array<Token>} selectedTokens An array of the selected items.
795
+ * @param {Array<Token>} tokens An array of the selected items.
773
796
  * @public
774
797
  */
775
798
  ,
776
799
  event("selection-change", {
777
800
  detail: {
778
- selectedTokens: { type: Array },
779
- },
780
- })
781
- /**
782
- * Fired when a dialog button is pressed.
783
- *
784
- * @param {Boolean} confirm Indicates if the action is confirm.
785
- * @public
786
- */
787
- ,
788
- event("dialog-button-press", {
789
- detail: {
790
- confirm: { type: Boolean },
801
+ tokens: { type: Array },
791
802
  },
792
803
  })
793
804
  /**
794
805
  * Fired when nMore link is pressed.
795
- * @public
806
+ * @private
796
807
  */
797
808
  ,
798
809
  event("show-more-items-press")
@@ -803,7 +814,18 @@ Tokenizer = Tokenizer_1 = __decorate([
803
814
  ,
804
815
  event("before-more-popover-open")
805
816
  ], Tokenizer);
817
+ const getTokensCountText = (iTokenCount) => {
818
+ const tokenCountMap = {
819
+ 0: TOKENIZER_ARIA_CONTAIN_TOKEN,
820
+ 1: TOKENIZER_ARIA_CONTAIN_ONE_TOKEN,
821
+ };
822
+ if (iTokenCount in tokenCountMap) {
823
+ return Tokenizer.i18nBundle.getText(tokenCountMap[iTokenCount]);
824
+ }
825
+ return Tokenizer.i18nBundle.getText(TOKENIZER_ARIA_CONTAIN_SEVERAL_TOKENS, iTokenCount);
826
+ };
806
827
  Tokenizer.define();
807
828
  export default Tokenizer;
829
+ export { getTokensCountText };
808
830
  export { ClipboardDataOperation };
809
831
  //# sourceMappingURL=Tokenizer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Tokenizer.js","sourceRoot":"","sources":["../src/Tokenizer.ts"],"names":[],"mappings":"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","sourcesContent":["import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport litRender from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\nimport DOMReference from \"@ui5/webcomponents-base/dist/types/DOMReference.js\";\nimport ResizeHandler from \"@ui5/webcomponents-base/dist/delegate/ResizeHandler.js\";\nimport type { ResizeObserverCallback } from \"@ui5/webcomponents-base/dist/delegate/ResizeHandler.js\";\nimport ItemNavigation from \"@ui5/webcomponents-base/dist/delegate/ItemNavigation.js\";\nimport { getEffectiveAriaLabelText } from \"@ui5/webcomponents-base/dist/util/AriaLabelHelper.js\";\nimport getActiveElement from \"@ui5/webcomponents-base/dist/util/getActiveElement.js\";\nimport { getFocusedElement } from \"@ui5/webcomponents-base/dist/util/PopupUtils.js\";\nimport ScrollEnablement from \"@ui5/webcomponents-base/dist/delegate/ScrollEnablement.js\";\nimport Integer from \"@ui5/webcomponents-base/dist/types/Integer.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport { getI18nBundle, I18nText } from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport {\n\tisSpace,\n\tisSpaceCtrl,\n\tisSpaceShift,\n\tisLeftCtrl,\n\tisRightCtrl,\n\tisUpCtrl,\n\tisDownCtrl,\n\tisUpShift,\n\tisDownShift,\n\tisLeftShift,\n\tisRightShift,\n\tisLeftShiftCtrl,\n\tisRightShiftCtrl,\n\tisDeleteShift,\n\tisInsertCtrl,\n\tisEnd,\n\tisHome,\n\tisHomeShift,\n\tisEndShift,\n\tisPageUpShift,\n\tisPageDownShift,\n\tisHomeCtrl,\n\tisEndCtrl,\n\tisRight,\n\tisLeft,\n\tisUp,\n\tisDown,\n\tisEscape,\n} from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport { isPhone } from \"@ui5/webcomponents-base/dist/Device.js\";\nimport ResponsivePopover from \"./ResponsivePopover.js\";\nimport List from \"./List.js\";\nimport ListSelectionMode from \"./types/ListSelectionMode.js\";\nimport Title from \"./Title.js\";\nimport Button from \"./Button.js\";\nimport StandardListItem from \"./StandardListItem.js\";\nimport Token from \"./Token.js\";\nimport type { IToken } from \"./MultiInput.js\";\nimport type { TokenDeleteEventDetail } from \"./Token.js\";\nimport TokenizerTemplate from \"./generated/templates/TokenizerTemplate.lit.js\";\nimport {\n\tMULTIINPUT_SHOW_MORE_TOKENS,\n\tTOKENIZER_ARIA_LABEL,\n\tTOKENIZER_POPOVER_REMOVE,\n\tTOKENIZER_ARIA_CONTAIN_TOKEN,\n\tTOKENIZER_ARIA_CONTAIN_ONE_TOKEN,\n\tTOKENIZER_ARIA_CONTAIN_SEVERAL_TOKENS,\n\tTOKENIZER_SHOW_ALL_ITEMS,\n} from \"./generated/i18n/i18n-defaults.js\";\n\n// Styles\nimport TokenizerCss from \"./generated/themes/Tokenizer.css.js\";\nimport TokenizerPopoverCss from \"./generated/themes/TokenizerPopover.css.js\";\nimport ResponsivePopoverCommonCss from \"./generated/themes/ResponsivePopoverCommon.css.js\";\n\n// reuse suggestions focus styling for NMore popup\nimport SuggestionsCss from \"./generated/themes/Suggestions.css.js\";\nimport ListItem from \"./ListItem.js\";\n\ntype TokenCountMapType = { [x: number]: I18nText };\n\ntype TokenizerTokenDeleteEventDetail = {\n\tref: Token;\n}\n\ntype TokenizerSelectionChangeEventDetail = {\n\tselectedTokens: Token[];\n}\n\ntype TokenizerDialogButtonPressDetail = {\n\tconfirm: boolean;\n}\n\nenum ClipboardDataOperation {\n\tcut = \"cut\",\n\tcopy = \"copy\",\n}\n\n/**\n * @class\n *\n * ### Overview\n *\n * A `ui5-tokenizer` is an invisible container for `ui5-token`s that supports keyboard navigation and token selection.\n *\n * The `ui5-tokenizer` consists of two parts:\n * - Tokens - displays the available tokens.\n * - N-more indicator - contains the number of the remaining tokens that cannot be displayed due to the limited space.\n *\n * ### Keyboard Handling\n *\n * #### Basic Navigation\n * The `ui5-tokenizer` provides advanced keyboard handling.\n * When a token is focused the user can use the following keyboard\n * shortcuts in order to perform a navigation:\n *\n * - [Left] or [Right] / [Up] or [Down] - Navigates left and right through the tokens.\n * - [Home] - Navigates to the first token.\n * - [End] - Navigates to the last token.\n *\n * The user can use the following keyboard shortcuts to perform actions (such as select, delete):\n *\n * - [Space] - Selects a token.\n * - [Backspace] / [Delete] - Deletes a token.\n * **Note:** The deletion of a token is handled by the application with the use of the `token-delete` event.\n *\n * ### ES6 Module Import\n *\n * `import \"@ui5/webcomponents/dist/Tokenizer.js\";`\n *\n * @constructor\n * @extends sap.ui.webc.base.UI5Element\n * @since 2.0\n * @public\n */\n@customElement({\n\ttag: \"ui5-tokenizer\",\n\tlanguageAware: true,\n\trenderer: litRender,\n\ttemplate: TokenizerTemplate,\n\tstyles: [\n\t\tTokenizerCss,\n\t\tResponsivePopoverCommonCss,\n\t\tSuggestionsCss,\n\t\tTokenizerPopoverCss,\n\t],\n\tdependencies: [\n\t\tResponsivePopover,\n\t\tList,\n\t\tStandardListItem,\n\t\tTitle,\n\t\tButton,\n\t],\n})\n\n/**\n * Fired when a token is deleted (delete icon, delete or backspace is pressed)\n *\n * @param {HTMLElement} ref DOM ref of the token to be deleted.\n * @public\n */\n@event<TokenizerTokenDeleteEventDetail>(\"token-delete\", {\n\tdetail: {\n\t\tref: { type: HTMLElement },\n\t},\n})\n\n/**\n * Fired when token selection is changed by user interaction\n *\n * @param {Array<Token>} selectedTokens An array of the selected items.\n * @public\n */\n@event<TokenizerSelectionChangeEventDetail>(\"selection-change\", {\n\tdetail: {\n\t\tselectedTokens: { type: Array },\n\t},\n})\n\n/**\n * Fired when a dialog button is pressed.\n *\n * @param {Boolean} confirm Indicates if the action is confirm.\n * @public\n */\n@event<TokenizerDialogButtonPressDetail>(\"dialog-button-press\", {\n\tdetail: {\n\t\tconfirm: { type: Boolean },\n\t},\n})\n\n/**\n * Fired when nMore link is pressed.\n * @public\n */\n@event(\"show-more-items-press\")\n\n/**\n * Fired before nMore Popover is opened.\n * @private\n */\n@event(\"before-more-popover-open\")\n\nclass Tokenizer extends UI5Element {\n\t/**\n\t * Defines whether the component is read-only.\n\t *\n\t * **Note:** A read-only component is not editable,\n\t * but still provides visual feedback upon user interaction.\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\treadonly!: boolean;\n\n\t/**\n\t * Defines whether the component is disabled.\n\t *\n\t * **Note:** A disabled component is completely noninteractive.\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\tdisabled!: boolean;\n\n\t/**\n\t * Defines the accessible ARIA name of the component.\n\t * @default undefined\n\t * @public\n\t */\n\t@property({ defaultValue: undefined })\n\taccessibleName?: string;\n\n\t/**\n\t * Receives id(or many ids) of the elements that label the component.\n\t * @default undefined\n\t * @public\n\t */\n\t@property({ defaultValue: undefined })\n\taccessibleNameRef?: string;\n\n\t/**\n\t * Indicates if the tokenizer should show all tokens or n more label instead\n\t * **Note:** Used inside MultiInput and MultiComboBox components.\n\t * @default false\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\texpanded!: boolean;\n\n\t/**\n\t * Indicates if the nMore popover is open\n\t * **Note:** Used inside MultiInput and MultiComboBox components.\n\t * @default false\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\topen!: boolean;\n\n\t/**\n\t * Defines the ID or DOM Reference of the element that the menu is shown at\n\t * **Note:** Used inside MultiInput and MultiComboBox components.\n\t * @private\n\t * @default \"\"\n\t */\n\t@property({ validator: DOMReference, defaultValue: \"\" })\n\topener!: HTMLElement;\n\n\t/**\n\t * Sets the min-width of the nMore Popover.\n\t * **Note:** Used inside MultiInput and MultiComboBox components.\n\t * @private\n\t */\n\t@property({ validator: Integer })\n\tpopoverMinWidth?: number;\n\n\t/**\n\t * Prevents tokens to be part of the tab chain.\n\t * **Note:** Used inside MultiInput and MultiComboBox components.\n\t * @default false\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\tpreventInitialFocus!: boolean;\n\n\t/**\n\t * Prevent opening of n-more Popover when label is clicked\n\t * **Note:** Used inside MultiComboBox component.\n\t * @default false\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\tpreventPopoverOpen!: boolean;\n\n\t/**\n\t * Hides the popover arrow.\n\t * **Note:** Used inside MultiInput and MultiComboBox components.\n\t * @default false\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\thidePopoverArrow!: boolean;\n\n\t@property({ validator: Integer })\n\t_nMoreCount!: number;\n\n\t@property({ validator: Integer })\n\t_tokensCount!: number;\n\n\t@slot({ type: HTMLElement, \"default\": true, individualSlots: true })\n\ttokens!: Array<Token>;\n\n\tstatic i18nBundle: I18nBundle;\n\t_resizeHandler: ResizeObserverCallback;\n\t_itemNav: ItemNavigation;\n\t_scrollEnablement: ScrollEnablement;\n\t_expandedScrollWidth?: number;\n\t_tokenDeleting!: boolean;\n\t_preventCollapse!: boolean;\n\t_skipTabIndex!: boolean;\n\t_previousToken!: Token | null;\n\t_focusedElementBeforeOpen?: HTMLElement | null;\n\n\t_handleResize() {\n\t\tthis._nMoreCount = this.overflownTokens.length;\n\t}\n\n\tconstructor() {\n\t\tsuper();\n\n\t\tthis._resizeHandler = this._handleResize.bind(this);\n\n\t\tthis._itemNav = new ItemNavigation(this, {\n\t\t\tcurrentIndex: -1,\n\t\t\tgetItemsCallback: this._getVisibleTokens.bind(this),\n\t\t});\n\n\t\tthis._scrollEnablement = new ScrollEnablement(this);\n\t\tthis._tokenDeleting = false;\n\t}\n\n\tonBeforeRendering() {\n\t\tconst tokensLength = this._tokens.length;\n\t\tthis._tokensCount = tokensLength;\n\n\t\tthis._tokens.forEach(token => {\n\t\t\ttoken.singleToken = tokensLength === 1;\n\t\t\ttoken.readonly = this.readonly;\n\t\t});\n\t}\n\n\tonEnterDOM() {\n\t\tResizeHandler.register(this.contentDom, this._resizeHandler);\n\t}\n\n\tonExitDOM() {\n\t\tResizeHandler.deregister(this.contentDom, this._resizeHandler);\n\t}\n\n\t_handleNMoreClick() {\n\t\tif (this.disabled) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.expanded = true;\n\n\t\tif (!this.preventPopoverOpen) {\n\t\t\tthis.open = true;\n\t\t\tthis.scrollToEnd();\n\t\t}\n\n\t\tthis._tokens.forEach(token => {\n\t\t\ttoken.forcedTabIndex = \"-1\";\n\t\t});\n\n\t\tthis._skipTabIndex = true;\n\n\t\tthis.fireEvent(\"show-more-items-press\");\n\t}\n\n\t_onmousedown(e: MouseEvent) {\n\t\tif ((e.target as HTMLElement).hasAttribute(\"ui5-token\")) {\n\t\t\tconst target = e.target as Token;\n\t\t\tthis.expanded = true;\n\n\t\t\tif (this.open) {\n\t\t\t\tthis._preventCollapse = true;\n\t\t\t}\n\n\t\t\tif (!target.toBeDeleted) {\n\t\t\t\tthis._itemNav.setCurrentItem(target);\n\t\t\t\tthis._scrollToToken(target);\n\t\t\t}\n\t\t}\n\t}\n\n\tonTokenSelect() {\n\t\tconst tokens = this._tokens;\n\t\tconst firstToken = tokens[0];\n\n\t\tif (tokens.length === 1 && firstToken.isTruncatable) {\n\t\t\tthis.open = firstToken.selected;\n\t\t}\n\t}\n\n\t_getVisibleTokens() {\n\t\tif (this.disabled) {\n\t\t\treturn [];\n\t\t}\n\n\t\treturn this._tokens.filter((token, index) => {\n\t\t\treturn index < (this._tokens.length - this._nMoreCount);\n\t\t});\n\t}\n\n\tonAfterRendering() {\n\t\tconst tokensArray = this._tokens;\n\t\tconst firstToken = tokensArray[0];\n\n\t\tthis._nMoreCount = this.overflownTokens.length;\n\n\t\tif (firstToken && !this.disabled && !this.preventInitialFocus && !this._skipTabIndex) {\n\t\t\tfirstToken.forcedTabIndex = \"0\";\n\t\t}\n\n\t\tthis._scrollEnablement.scrollContainer = this.contentDom;\n\n\t\tif (this.expanded) {\n\t\t\tthis._expandedScrollWidth = this.contentDom.scrollWidth;\n\t\t}\n\n\t\tthis._tokenDeleting = false;\n\t}\n\n\t_delete(e: CustomEvent<TokenDeleteEventDetail>) {\n\t\tconst target = e.target as Token;\n\n\t\tif (!e.detail) { // if there are no details, the event is triggered by a click\n\t\t\tthis._tokenClickDelete(e, target);\n\t\t\tthis.open = !this._tokens.length;\n\n\t\t\treturn;\n\t\t}\n\n\t\tif (this._selectedTokens.length) {\n\t\t\tthis._selectedTokens.forEach(token => this.deleteToken(token, e.detail.backSpace));\n\t\t} else {\n\t\t\tthis.deleteToken(target, e.detail.backSpace);\n\t\t}\n\t}\n\n\t_tokenClickDelete(e: CustomEvent<TokenDeleteEventDetail>, token: Token) {\n\t\tconst tokens = this._getVisibleTokens();\n\t\tconst target = e.target as Token;\n\t\tconst deletedTokenIndex = token ? tokens.indexOf(token) : tokens.indexOf(target); // The index of the token that just got deleted\n\t\tconst nextTokenIndex = deletedTokenIndex === tokens.length - 1 ? deletedTokenIndex - 1 : deletedTokenIndex + 1; // The index of the next token that needs to be focused next due to the deletion\n\t\tconst nextToken = tokens[nextTokenIndex]; // if the last item was deleted this will be undefined\n\n\t\tthis._handleCurrentItemAfterDeletion(nextToken);\n\n\t\tthis._tokenDeleting = true;\n\t\tthis.fireEvent<TokenizerTokenDeleteEventDetail>(\"token-delete\", { ref: token || target });\n\t}\n\n\t_handleCurrentItemAfterDeletion(nextToken: Token) {\n\t\tif (nextToken && !isPhone()) {\n\t\t\tsetTimeout(() => {\n\t\t\t\tnextToken.focus();\n\t\t\t}, 0);\n\t\t}\n\t}\n\n\t/**\n\t * Removes a token from the Tokenizer.\n\t * This method should only be used by ui5-multi-combobox and ui5-multi-input\n\t * @protected\n\t * @param token Token to be focused.\n\t * @param forwardFocusToPrevious Indicates whether the focus will be forwarded to previous or next token after deletion.\n\t */\n\tdeleteToken(token: Token, forwardFocusToPrevious?: boolean) {\n\t\tconst tokens = this._getVisibleTokens();\n\t\tconst deletedTokenIndex = tokens.indexOf(token);\n\t\tlet nextTokenIndex = (deletedTokenIndex === tokens.length - 1) ? deletedTokenIndex - 1 : deletedTokenIndex + 1;\n\t\tconst notSelectedTokens = tokens.filter(t => !t.selected);\n\n\t\tif (forwardFocusToPrevious) { // on backspace key select the previous item (unless deleting the first)\n\t\t\tnextTokenIndex = deletedTokenIndex === 0 ? deletedTokenIndex + 1 : deletedTokenIndex - 1;\n\t\t} else { // on delete key or mouse click on the \"x\" select the next item (unless deleting the last)\n\t\t\tnextTokenIndex = deletedTokenIndex === tokens.length - 1 ? deletedTokenIndex - 1 : deletedTokenIndex + 1;\n\t\t}\n\n\t\tlet nextToken = tokens[nextTokenIndex];\n\n\t\tif (notSelectedTokens.length > 1) {\n\t\t\twhile (nextToken && nextToken.selected) {\n\t\t\t\tnextToken = forwardFocusToPrevious ? tokens[--nextTokenIndex] : tokens[++nextTokenIndex];\n\t\t\t}\n\t\t} else {\n\t\t\tnextToken = notSelectedTokens[0];\n\t\t}\n\n\t\tthis._handleCurrentItemAfterDeletion(nextToken);\n\n\t\tthis._tokenDeleting = true;\n\t\tthis.fireEvent<TokenizerTokenDeleteEventDetail>(\"token-delete\", { ref: token });\n\t}\n\n\titemDelete(e: CustomEvent) {\n\t\tconst token = e.detail.item.tokenRef;\n\t\tconst tokensArray = this._tokens;\n\n\t\t// delay the token deletion in order to close the popover before removing token of the DOM\n\t\tif (tokensArray.length === 1) {\n\t\t\tif (tokensArray[0].isTruncatable) {\n\t\t\t\tconst morePopover = this.getPopover();\n\n\t\t\t\tmorePopover.addEventListener(\"ui5-after-close\", () => {\n\t\t\t\t\tthis.fireEvent<TokenizerTokenDeleteEventDetail>(\"token-delete\", { ref: token });\n\t\t\t\t}, {\n\t\t\t\t\tonce: true,\n\t\t\t\t});\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tthis.fireEvent<TokenizerTokenDeleteEventDetail>(\"token-delete\", { ref: token });\n\t\t\tthis.open = false;\n\t\t} else {\n\t\t\tthis.fireEvent<TokenizerTokenDeleteEventDetail>(\"token-delete\", { ref: token });\n\n\t\t\tconst currentListItem = e.detail.item as ListItem;\n\t\t\tconst nextListItem = currentListItem.nextElementSibling;\n\t\t\tconst preciousListItem = currentListItem.previousElementSibling;\n\n\t\t\tif (nextListItem) {\n\t\t\t\tconst nextListItemIcon = nextListItem.shadowRoot!.querySelector<HTMLElement>(\"[part=delete-button]\")!;\n\t\t\t\tnextListItemIcon.focus();\n\t\t\t} else if (preciousListItem) {\n\t\t\t\tconst previousListItemIcon = preciousListItem.shadowRoot!.querySelector<HTMLElement>(\"[part=delete-button]\")!;\n\t\t\t\tpreviousListItemIcon.focus();\n\t\t\t}\n\t\t}\n\t}\n\n\thandleBeforeClose() {\n\t\tconst tokensArray = this._tokens;\n\n\t\tif (isPhone()) {\n\t\t\ttokensArray.forEach(token => {\n\t\t\t\ttoken.selected = false;\n\t\t\t});\n\t\t}\n\n\t\tif (!this._tokenDeleting && !this._preventCollapse) {\n\t\t\tthis._preventCollapse = false;\n\t\t\tthis.expanded = false;\n\t\t}\n\t}\n\n\thandleBeforeOpen() {\n\t\tthis.fireEvent(\"before-more-popover-open\");\n\t}\n\n\thandleAfterClose() {\n\t\tthis.open = false;\n\t\tthis._preventCollapse = false;\n\t\tthis._focusedElementBeforeOpen = null;\n\t}\n\n\thandleDialogButtonPress(e: MouseEvent) {\n\t\tconst isOkButton = (e.target as HTMLElement).hasAttribute(\"data-ui5-tokenizer-dialog-ok-button\");\n\t\tconst confirm = !!isOkButton;\n\n\t\tthis.fireEvent(\"dialog-button-press\", { confirm });\n\t\tthis.open = false;\n\t}\n\n\t_onkeydown(e: KeyboardEvent) {\n\t\tconst isCtrl = !!(e.metaKey || e.ctrlKey);\n\n\t\tif ((isCtrl && [\"c\", \"x\"].includes(e.key.toLowerCase())) || isDeleteShift(e) || isInsertCtrl(e)) {\n\t\t\te.preventDefault();\n\n\t\t\tconst isCut = e.key.toLowerCase() === \"x\" || isDeleteShift(e);\n\t\t\tconst selectedTokens = this._tokens.filter(token => token.selected);\n\n\t\t\tif (isCut) {\n\t\t\t\tconst cutResult = this._fillClipboard(ClipboardDataOperation.cut, selectedTokens);\n\n\t\t\t\tselectedTokens.forEach(token => this.deleteToken(token));\n\n\t\t\t\treturn cutResult;\n\t\t\t}\n\n\t\t\treturn this._fillClipboard(ClipboardDataOperation.copy, selectedTokens);\n\t\t}\n\n\t\tif (isCtrl && e.key.toLowerCase() === \"i\" && this._tokens.length > 0) {\n\t\t\te.preventDefault();\n\n\t\t\tthis._preventCollapse = true;\n\t\t\tthis._focusedElementBeforeOpen = getFocusedElement();\n\n\t\t\tthis.open = true;\n\t\t}\n\n\t\tif (isSpaceShift(e)) {\n\t\t\te.preventDefault();\n\t\t}\n\n\t\tif (isSpace(e) || isSpaceCtrl(e)) {\n\t\t\te.preventDefault();\n\n\t\t\treturn this._handleTokenSelection(e, false);\n\t\t}\n\n\t\tif (isHomeShift(e) || isPageUpShift(e)) {\n\t\t\tthis._handleHomeShift(e);\n\t\t}\n\n\t\tif (isEndShift(e) || isPageDownShift(e)) {\n\t\t\tthis._handleEndShift(e);\n\t\t}\n\n\t\tthis._handleItemNavigation(e, this._tokens);\n\t}\n\n\t_onPopoverListKeydown(e: KeyboardEvent) {\n\t\tconst isCtrl = !!(e.metaKey || e.ctrlKey);\n\n\t\tif ((isCtrl && e.key.toLowerCase() === \"i\") || isEscape(e)) {\n\t\t\te.preventDefault();\n\t\t\tthis.open = false;\n\n\t\t\tthis._preventCollapse = true;\n\t\t\tthis._focusedElementBeforeOpen && this._focusedElementBeforeOpen.focus();\n\n\t\t\tif (!this._focusedElementBeforeOpen) {\n\t\t\t\tthis._focusLastToken();\n\t\t\t}\n\t\t}\n\n\t\tif (e.key.toLowerCase() === \"f7\") {\n\t\t\te.preventDefault();\n\n\t\t\tconst eventTarget = e.target as ListItem;\n\t\t\tconst activeElement = getActiveElement();\n\n\t\t\tif (activeElement?.part.value === \"native-li\") {\n\t\t\t\teventTarget.shadowRoot!.querySelector<HTMLElement>(\"[part=delete-button]\")!.focus();\n\t\t\t} else {\n\t\t\t\teventTarget.focus();\n\t\t\t}\n\t\t}\n\t}\n\n\t_handleItemNavigation(e: KeyboardEvent, tokens: Array<Token>) {\n\t\tconst isCtrl = !!(e.metaKey || e.ctrlKey);\n\t\tconst target = e.target as Token;\n\n\t\tif (isLeftCtrl(e) || isRightCtrl(e) || isDownCtrl(e) || isUpCtrl(e)) {\n\t\t\treturn this._handleArrowCtrl(e, target, tokens, isRightCtrl(e) || isDownCtrl(e));\n\t\t}\n\n\t\tif (isLeftShift(e) || isRightShift(e) || isUpShift(e) || isDownShift(e) || isLeftShiftCtrl(e) || isRightShiftCtrl(e)) {\n\t\t\te.preventDefault();\n\t\t\treturn this._handleArrowShift(target, tokens, (isRightShift(e) || isRightShiftCtrl(e) || isDownShift(e)));\n\t\t}\n\n\t\tif (isHome(e) || isEnd(e) || isHomeCtrl(e) || isEndCtrl(e)) {\n\t\t\te.preventDefault();\n\t\t\treturn this._handleHome(tokens, isEnd(e) || isEndCtrl(e));\n\t\t}\n\n\t\tif (isCtrl && e.key.toLowerCase() === \"a\") {\n\t\t\te.preventDefault();\n\n\t\t\treturn this._toggleTokenSelection(tokens);\n\t\t}\n\n\t\tif (isLeft(e) || isRight(e) || isUp(e) || isDown(e)) {\n\t\t\te.preventDefault();\n\t\t\tconst nextTokenIdx = this._calcNextTokenIndex(this._tokens.find(token => token.focused)!, tokens, (isRight(e) || isDown(e)));\n\t\t\tthis._scrollToToken(tokens[nextTokenIdx]);\n\t\t}\n\t}\n\n\t_handleHome(tokens: Array<Token>, endKeyPressed: boolean) {\n\t\tif (!tokens || !tokens.length) {\n\t\t\treturn -1;\n\t\t}\n\n\t\tconst index = endKeyPressed ? tokens.length - 1 : 0;\n\n\t\ttokens[index].focus();\n\t}\n\n\t_handleHomeShift(e: KeyboardEvent) {\n\t\tconst tokens = this._tokens;\n\t\tconst target = e.target as Token;\n\t\tconst currentTokenIdx = tokens.indexOf(target);\n\t\tconst previousSelectedTokens = [...this._selectedTokens];\n\n\t\ttokens.filter((token, index) => index <= currentTokenIdx).forEach(token => {\n\t\t\ttoken.selected = true;\n\t\t});\n\n\t\tconst selectedTokensChanged = JSON.stringify(previousSelectedTokens) !== JSON.stringify(this._selectedTokens);\n\n\t\tif (selectedTokensChanged) {\n\t\t\tthis.fireEvent<TokenizerSelectionChangeEventDetail>(\"selection-change\", {\n\t\t\t\tselectedTokens: this._selectedTokens,\n\t\t\t});\n\t\t}\n\n\t\ttokens[0].focus();\n\t}\n\n\t_handleEndShift(e: KeyboardEvent) {\n\t\tconst tokens = this._tokens;\n\t\tconst target = e.target as Token;\n\t\tconst currentTokenIdx = tokens.indexOf(target);\n\t\tconst previousSelectedTokens = [...this._selectedTokens];\n\n\t\ttokens.filter((token, index) => index >= currentTokenIdx).forEach(token => {\n\t\t\ttoken.selected = true;\n\t\t});\n\n\t\tconst selectedTokensChanged = JSON.stringify(previousSelectedTokens) !== JSON.stringify(this._selectedTokens);\n\n\t\tif (selectedTokensChanged) {\n\t\t\tthis.fireEvent<TokenizerSelectionChangeEventDetail>(\"selection-change\", {\n\t\t\t\tselectedTokens: this._selectedTokens,\n\t\t\t});\n\t\t}\n\n\t\ttokens[tokens.length - 1].focus();\n\t}\n\n\t_calcNextTokenIndex(focusedToken: IToken, tokens: Array<IToken>, backwards: boolean) {\n\t\tif (!tokens.length) {\n\t\t\treturn -1;\n\t\t}\n\n\t\tconst focusedTokenIndex = tokens.indexOf(focusedToken);\n\t\tlet nextIndex = backwards ? (focusedTokenIndex + 1) : (focusedTokenIndex - 1);\n\n\t\tif (nextIndex >= tokens.length) {\n\t\t\tnextIndex = tokens.length - 1;\n\t\t}\n\n\t\tif (nextIndex < 0) {\n\t\t\tnextIndex = 0;\n\t\t}\n\n\t\treturn nextIndex;\n\t}\n\n\t_handleArrowCtrl(e: KeyboardEvent, focusedToken: IToken, tokens: Array<IToken>, backwards: boolean) {\n\t\tconst nextIndex = this._calcNextTokenIndex(focusedToken, tokens, backwards);\n\n\t\te.preventDefault();\n\n\t\tif (nextIndex === -1) {\n\t\t\treturn;\n\t\t}\n\n\t\tsetTimeout(() => {\n\t\t\ttokens[nextIndex].focus();\n\t\t}, 0);\n\n\t\tthis._scrollToToken(tokens[nextIndex]);\n\t}\n\n\t_handleArrowShift(focusedToken: Token, tokens: Array<Token>, backwards: boolean) {\n\t\tconst focusedTokenIndex = tokens.indexOf(focusedToken);\n\t\tconst nextIndex = backwards ? (focusedTokenIndex + 1) : (focusedTokenIndex - 1);\n\t\tconst previousSelectedTokens = [...this._selectedTokens];\n\n\t\tif (nextIndex === -1 || nextIndex === tokens.length) {\n\t\t\treturn;\n\t\t}\n\n\t\tfocusedToken.selected = true;\n\t\ttokens[nextIndex].selected = true;\n\n\t\tconst selectedTokensChanged = JSON.stringify(previousSelectedTokens) !== JSON.stringify(this._selectedTokens);\n\n\t\tif (selectedTokensChanged) {\n\t\t\tthis.fireEvent<TokenizerSelectionChangeEventDetail>(\"selection-change\", {\n\t\t\t\tselectedTokens: this._selectedTokens,\n\t\t\t});\n\t\t}\n\n\t\ttokens[nextIndex].focus();\n\n\t\tthis._scrollToToken(tokens[nextIndex]);\n\t}\n\n\t_click(e: MouseEvent) {\n\t\tif (e.metaKey || e.ctrlKey) {\n\t\t\tthis.fireEvent<TokenizerSelectionChangeEventDetail>(\"selection-change\", {\n\t\t\t\tselectedTokens: this._selectedTokens,\n\t\t\t});\n\t\t\treturn;\n\t\t}\n\n\t\tconst targetToken = e.target as Token;\n\n\t\tif (!e.shiftKey) {\n\t\t\tthis._previousToken = targetToken;\n\t\t}\n\n\t\tlet focusedToken = targetToken;\n\n\t\tif (this._previousToken) {\n\t\t\tfocusedToken = this._previousToken;\n\t\t} else {\n\t\t\tthis._previousToken = focusedToken;\n\t\t}\n\n\t\tif (e.shiftKey) {\n\t\t\tconst tokensArray = this._tokens;\n\t\t\tconst lastClickedIndex = tokensArray.indexOf(targetToken);\n\t\t\tconst firstSelectedTokenIndex = tokensArray.indexOf(focusedToken);\n\t\t\tconst start = Math.min(lastClickedIndex, firstSelectedTokenIndex);\n\t\t\tconst end = Math.max(lastClickedIndex, firstSelectedTokenIndex);\n\n\t\t\tif (lastClickedIndex !== -1) {\n\t\t\t\ttokensArray.forEach((token, i) => {\n\t\t\t\t\ttoken.selected = i >= start && i <= end;\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tthis.fireEvent<TokenizerSelectionChangeEventDetail>(\"selection-change\", {\n\t\t\t\tselectedTokens: this._selectedTokens,\n\t\t\t});\n\n\t\t\treturn;\n\t\t}\n\n\t\tthis._handleTokenSelection(e);\n\t}\n\n\t_onfocusin(e: FocusEvent) {\n\t\tconst target = e.target as Token;\n\t\tthis.open = false;\n\t\tthis._itemNav.setCurrentItem(target);\n\n\t\tif (!this.expanded) {\n\t\t\tthis.expanded = true;\n\t\t}\n\t}\n\n\t_onfocusout(e: FocusEvent) {\n\t\tconst relatedTarget = e.relatedTarget as HTMLElement;\n\n\t\tthis._tokens.forEach(token => {\n\t\t\ttoken.forcedTabIndex = \"-1\";\n\t\t});\n\n\t\tthis._itemNav._currentIndex = -1;\n\t\tthis._skipTabIndex = true;\n\n\t\tif (!this.contains(relatedTarget)) {\n\t\t\tthis._tokens[0].forcedTabIndex = \"0\";\n\t\t\tthis._skipTabIndex = false;\n\t\t}\n\n\t\tif (!this._tokenDeleting && !this._preventCollapse) {\n\t\t\tthis._preventCollapse = false;\n\t\t\tthis.expanded = false;\n\t\t}\n\t}\n\n\t_toggleTokenSelection(tokens: Array<Token>) {\n\t\tif (!tokens || !tokens.length) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst tokensAreSelected = tokens.every(token => token.selected);\n\t\ttokens.forEach(token => { token.selected = !tokensAreSelected; });\n\n\t\tthis.fireEvent<TokenizerSelectionChangeEventDetail>(\"selection-change\", {\n\t\t\tselectedTokens: this._selectedTokens,\n\t\t});\n\t}\n\n\t_handleTokenSelection(e: KeyboardEvent | MouseEvent, deselectAll = true) {\n\t\tconst target = e.target as Token;\n\n\t\tif (target.hasAttribute(\"ui5-token\")) {\n\t\t\tconst deselectTokens = deselectAll ? this._tokens : [];\n\n\t\t\tdeselectTokens.forEach(token => {\n\t\t\t\tif (token !== target) {\n\t\t\t\t\ttoken.selected = false;\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tthis.fireEvent<TokenizerSelectionChangeEventDetail>(\"selection-change\", {\n\t\t\t\tselectedTokens: this._selectedTokens,\n\t\t\t});\n\t\t}\n\t}\n\n\t_fillClipboard(shortcutName: ClipboardDataOperation, tokens: Array<IToken>) {\n\t\tconst tokensTexts = tokens.filter(token => token.selected).map(token => token.text).join(\"\\r\\n\");\n\n\t\tconst cutToClipboard = (e: ClipboardEvent) => {\n\t\t\tif (e.clipboardData) {\n\t\t\t\te.clipboardData.setData(\"text/plain\", tokensTexts);\n\t\t\t}\n\n\t\t\te.preventDefault();\n\t\t};\n\n\t\tdocument.addEventListener(shortcutName, cutToClipboard);\n\t\tdocument.execCommand(shortcutName);\n\t\tdocument.removeEventListener(shortcutName, cutToClipboard);\n\t}\n\n\t/**\n\t * Scrolls the container of the tokens to its beginning.\n\t * This method is used by MultiInput and MultiComboBox.\n\t * @protected\n\t */\n\tscrollToStart() {\n\t\tif (this._scrollEnablement.scrollContainer) {\n\t\t\tthis._scrollEnablement.scrollTo(0, 0);\n\t\t}\n\t}\n\n\t/**\n\t * Scrolls the container of the tokens to its end when expanded.\n\t * This method is used by MultiInput and MultiComboBox.\n\t * @protected\n\t */\n\tscrollToEnd() {\n\t\tconst expandedTokenizerScrollWidth = this.contentDom && (this.effectiveDir !== \"rtl\" ? this.contentDom.scrollWidth : -this.contentDom.scrollWidth);\n\t\tif (this._scrollEnablement.scrollContainer) {\n\t\t\tthis._scrollEnablement.scrollTo(expandedTokenizerScrollWidth, 0, 5, 10);\n\t\t}\n\t}\n\n\t/**\n\t * Scrolls token to the visible area of the container.\n\t * Adds 4 pixels to the scroll position to ensure padding and border visibility on both ends\n\t * @protected\n\t */\n\t_scrollToToken(token: IToken) {\n\t\tif (!this.contentDom) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst tokenRect = token.getBoundingClientRect();\n\t\tconst tokenContainerRect = this.contentDom.getBoundingClientRect();\n\n\t\tif (tokenRect.left < tokenContainerRect.left) {\n\t\t\tthis._scrollEnablement.scrollTo(this.contentDom.scrollLeft - (tokenContainerRect.left - tokenRect.left + 5), 0);\n\t\t} else if (tokenRect.right > tokenContainerRect.right) {\n\t\t\tthis._scrollEnablement.scrollTo(this.contentDom.scrollLeft + (tokenRect.right - tokenContainerRect.right + 5), 0);\n\t\t}\n\t}\n\n\tget _tokens() {\n\t\treturn this.getSlottedNodes<Token>(\"tokens\");\n\t}\n\n\tget morePopoverOpener(): HTMLElement {\n\t\treturn Object.keys(this.opener).length === 0 ? this : this.opener;\n\t}\n\n\tget _nMoreText() {\n\t\tif (!this._nMoreCount) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (this._getVisibleTokens().length) {\n\t\t\treturn Tokenizer.i18nBundle.getText(MULTIINPUT_SHOW_MORE_TOKENS, this._nMoreCount);\n\t\t}\n\n\t\treturn Tokenizer.i18nBundle.getText(TOKENIZER_SHOW_ALL_ITEMS, this._nMoreCount);\n\t}\n\n\tget showNMore() {\n\t\treturn !this.expanded && !!this.overflownTokens.length;\n\t}\n\n\tget contentDom() {\n\t\treturn this.shadowRoot!.querySelector<HTMLElement>(\".ui5-tokenizer--content\")!;\n\t}\n\n\tget moreLink() {\n\t\treturn this.shadowRoot!.querySelector<HTMLElement>(\".ui5-tokenizer-more-text\");\n\t}\n\n\tget tokenizerLabel() {\n\t\tconst effectiveLabelText = getEffectiveAriaLabelText(this);\n\t\treturn effectiveLabelText || Tokenizer.i18nBundle.getText(TOKENIZER_ARIA_LABEL);\n\t}\n\n\tget tokenizerAriaDescription() {\n\t\treturn getEffectiveAriaLabelText(this) ? Tokenizer.i18nBundle.getText(TOKENIZER_ARIA_LABEL) : undefined;\n\t}\n\n\tget _ariaDisabled() {\n\t\treturn this.disabled || undefined;\n\t}\n\n\tget _ariaReadonly() {\n\t\treturn this.readonly || undefined;\n\t}\n\n\tget morePopoverTitle() {\n\t\treturn Tokenizer.i18nBundle.getText(TOKENIZER_POPOVER_REMOVE);\n\t}\n\n\tget overflownTokens() {\n\t\tif (!this.contentDom) {\n\t\t\treturn [];\n\t\t}\n\n\t\tconst tokensArray = this._tokens;\n\n\t\t// Reset the overflow prop of the tokens first in order\n\t\t// to use their dimensions for calculation because already\n\t\t// hidden tokens are set to 'display: none'\n\t\ttokensArray.forEach(token => {\n\t\t\ttoken.overflows = false;\n\t\t});\n\n\t\treturn tokensArray.filter(token => {\n\t\t\tconst parentRect = this.contentDom.getBoundingClientRect();\n\t\t\tconst tokenRect = token.getBoundingClientRect();\n\t\t\tconst tokenEnd = Number(tokenRect.right.toFixed(2));\n\t\t\tconst parentEnd = Number(parentRect.right.toFixed(2));\n\t\t\tconst tokenStart = Number(tokenRect.left.toFixed(2));\n\t\t\tconst parentStart = Number(parentRect.left.toFixed(2));\n\n\t\t\ttoken.overflows = !this.expanded && ((tokenStart < parentStart) || (tokenEnd > parentEnd));\n\n\t\t\treturn token.overflows;\n\t\t});\n\t}\n\n\tget _isPhone() {\n\t\treturn isPhone();\n\t}\n\n\tget _selectedTokens() {\n\t\treturn this._tokens.filter(token => token.selected);\n\t}\n\n\tget _nMoreListMode() {\n\t\tif (this.readonly || this.disabled) {\n\t\t\treturn ListSelectionMode.None;\n\t\t}\n\n\t\treturn ListSelectionMode.Delete;\n\t}\n\n\tget styles() {\n\t\treturn {\n\t\t\tpopover: {\n\t\t\t\t\"min-width\": this.popoverMinWidth ? `${this.popoverMinWidth}px` : `${this.getBoundingClientRect().width}px`,\n\t\t\t},\n\t\t};\n\t}\n\n\t_tokensCountText() {\n\t\tconst iTokenCount = this._tokens.length;\n\n\t\tconst tokenCountMap: TokenCountMapType = {\n\t\t\t0: TOKENIZER_ARIA_CONTAIN_TOKEN,\n\t\t\t1: TOKENIZER_ARIA_CONTAIN_ONE_TOKEN,\n\t\t};\n\n\t\tif (iTokenCount in tokenCountMap) {\n\t\t\treturn Tokenizer.i18nBundle.getText(tokenCountMap[iTokenCount]);\n\t\t}\n\n\t\treturn Tokenizer.i18nBundle.getText(TOKENIZER_ARIA_CONTAIN_SEVERAL_TOKENS, iTokenCount);\n\t}\n\n\t/**\n\t * @protected\n\t */\n\t_focusLastToken() {\n\t\tconst tokens = this._tokens;\n\t\tif (tokens.length === 0) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst lastToken = tokens[tokens.length - 1];\n\t\tlastToken.focus();\n\t}\n\n\tstatic async onDefine() {\n\t\tTokenizer.i18nBundle = await getI18nBundle(\"@ui5/webcomponents\");\n\t}\n\n\tgetPopover() {\n\t\treturn this.shadowRoot!.querySelector<ResponsivePopover>(\"[ui5-responsive-popover]\")!;\n\t}\n}\n\nTokenizer.define();\n\nexport default Tokenizer;\nexport { ClipboardDataOperation };\nexport type { TokenizerTokenDeleteEventDetail, TokenizerSelectionChangeEventDetail, TokenizerDialogButtonPressDetail };\n"]}
1
+ {"version":3,"file":"Tokenizer.js","sourceRoot":"","sources":["../src/Tokenizer.ts"],"names":[],"mappings":"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","sourcesContent":["import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport litRender from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\nimport DOMReference from \"@ui5/webcomponents-base/dist/types/DOMReference.js\";\nimport ResizeHandler from \"@ui5/webcomponents-base/dist/delegate/ResizeHandler.js\";\nimport { renderFinished } from \"@ui5/webcomponents-base/dist/Render.js\";\nimport type { ResizeObserverCallback } from \"@ui5/webcomponents-base/dist/delegate/ResizeHandler.js\";\nimport ItemNavigation from \"@ui5/webcomponents-base/dist/delegate/ItemNavigation.js\";\nimport { getEffectiveAriaLabelText } from \"@ui5/webcomponents-base/dist/util/AriaLabelHelper.js\";\nimport getActiveElement from \"@ui5/webcomponents-base/dist/util/getActiveElement.js\";\nimport { getFocusedElement } from \"@ui5/webcomponents-base/dist/util/PopupUtils.js\";\nimport ScrollEnablement from \"@ui5/webcomponents-base/dist/delegate/ScrollEnablement.js\";\nimport Integer from \"@ui5/webcomponents-base/dist/types/Integer.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport { getI18nBundle, I18nText } from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport {\n\tisSpace,\n\tisSpaceCtrl,\n\tisSpaceShift,\n\tisLeftCtrl,\n\tisRightCtrl,\n\tisUpCtrl,\n\tisDownCtrl,\n\tisUpShift,\n\tisDownShift,\n\tisLeftShift,\n\tisRightShift,\n\tisLeftShiftCtrl,\n\tisRightShiftCtrl,\n\tisDeleteShift,\n\tisInsertCtrl,\n\tisEnd,\n\tisHome,\n\tisHomeShift,\n\tisEndShift,\n\tisPageUpShift,\n\tisPageDownShift,\n\tisHomeCtrl,\n\tisEndCtrl,\n\tisRight,\n\tisLeft,\n\tisUp,\n\tisDown,\n\tisEscape,\n} from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport { isPhone } from \"@ui5/webcomponents-base/dist/Device.js\";\nimport ResponsivePopover from \"./ResponsivePopover.js\";\nimport List from \"./List.js\";\nimport ListSelectionMode from \"./types/ListSelectionMode.js\";\nimport Title from \"./Title.js\";\nimport Button from \"./Button.js\";\nimport Icon from \"./Icon.js\";\nimport StandardListItem from \"./StandardListItem.js\";\nimport Token from \"./Token.js\";\nimport type { IToken } from \"./MultiInput.js\";\nimport type { TokenDeleteEventDetail } from \"./Token.js\";\nimport TokenizerTemplate from \"./generated/templates/TokenizerTemplate.lit.js\";\nimport {\n\tMULTIINPUT_SHOW_MORE_TOKENS,\n\tTOKENIZER_ARIA_LABEL,\n\tTOKENIZER_POPOVER_REMOVE,\n\tTOKENIZER_ARIA_CONTAIN_TOKEN,\n\tTOKENIZER_ARIA_CONTAIN_ONE_TOKEN,\n\tTOKENIZER_ARIA_CONTAIN_SEVERAL_TOKENS,\n\tTOKENIZER_SHOW_ALL_ITEMS,\n} from \"./generated/i18n/i18n-defaults.js\";\n\n// Styles\nimport TokenizerCss from \"./generated/themes/Tokenizer.css.js\";\nimport TokenizerPopoverCss from \"./generated/themes/TokenizerPopover.css.js\";\nimport ResponsivePopoverCommonCss from \"./generated/themes/ResponsivePopoverCommon.css.js\";\n\n// reuse suggestions focus styling for NMore popup\nimport SuggestionsCss from \"./generated/themes/Suggestions.css.js\";\nimport ListItem from \"./ListItem.js\";\n\ntype TokenCountMapType = { [x: number]: I18nText };\n\ntype TokenizerTokenDeleteEventDetail = {\n\ttokens: Token[];\n}\n\ntype TokenizerSelectionChangeEventDetail = {\n\ttokens: Token[];\n}\n\ntype TokenizerDialogButtonPressDetail = {\n\tconfirm: boolean;\n}\n\nenum ClipboardDataOperation {\n\tcut = \"cut\",\n\tcopy = \"copy\",\n}\n\n/**\n * @class\n *\n * ### Overview\n *\n * A `ui5-tokenizer` is an invisible container for `ui5-token`s that supports keyboard navigation and token selection.\n *\n * The `ui5-tokenizer` consists of two parts:\n * - Tokens - displays the available tokens.\n * - N-more indicator - contains the number of the remaining tokens that cannot be displayed due to the limited space.\n *\n * ### Keyboard Handling\n *\n * #### Basic Navigation\n * The `ui5-tokenizer` provides advanced keyboard handling.\n * When a token is focused the user can use the following keyboard\n * shortcuts in order to perform a navigation:\n *\n * - [Left] or [Right] / [Up] or [Down] - Navigates left and right through the tokens.\n * - [Home] - Navigates to the first token.\n * - [End] - Navigates to the last token.\n *\n * The user can use the following keyboard shortcuts to perform actions (such as select, delete):\n *\n * - [Space] - Selects a token.\n * - [Backspace] / [Delete] - Deletes a token.\n * **Note:** The deletion of a token is handled by the application with the use of the `token-delete` event.\n *\n * ### ES6 Module Import\n *\n * `import \"@ui5/webcomponents/dist/Tokenizer.js\";`\n *\n * @constructor\n * @extends sap.ui.webc.base.UI5Element\n * @public\n * @since 2.0.0\n */\n@customElement({\n\ttag: \"ui5-tokenizer\",\n\tlanguageAware: true,\n\trenderer: litRender,\n\ttemplate: TokenizerTemplate,\n\tstyles: [\n\t\tTokenizerCss,\n\t\tResponsivePopoverCommonCss,\n\t\tSuggestionsCss,\n\t\tTokenizerPopoverCss,\n\t],\n\tdependencies: [\n\t\tResponsivePopover,\n\t\tList,\n\t\tStandardListItem,\n\t\tTitle,\n\t\tButton,\n\t\tIcon,\n\t],\n})\n\n/**\n * Fired when tokens are being deleted (delete icon, delete or backspace is pressed)\n * @param {Array} tokens An array containing the deleted tokens.\n * @public\n */\n@event<TokenizerTokenDeleteEventDetail>(\"token-delete\", {\n\tdetail: {\n\t\t/**\n\t\t* @public\n\t\t*/\n\t\ttokens: { type: Array },\n\t},\n})\n\n/**\n * Fired when token selection is changed by user interaction\n *\n * @param {Array<Token>} tokens An array of the selected items.\n * @public\n */\n@event<TokenizerSelectionChangeEventDetail>(\"selection-change\", {\n\tdetail: {\n\t\ttokens: { type: Array },\n\t},\n})\n\n/**\n * Fired when nMore link is pressed.\n * @private\n */\n@event(\"show-more-items-press\")\n\n/**\n * Fired before nMore Popover is opened.\n * @private\n */\n@event(\"before-more-popover-open\")\n\nclass Tokenizer extends UI5Element {\n\t/**\n\t * Defines whether the component is read-only.\n\t *\n\t * **Note:** A read-only component is not editable,\n\t * but still provides visual feedback upon user interaction.\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\treadonly!: boolean;\n\n\t/**\n\t * Defines whether the component is disabled.\n\t *\n\t * **Note:** A disabled component is completely noninteractive.\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\tdisabled!: boolean;\n\n\t/**\n\t * Defines the accessible ARIA name of the component.\n\t * @default undefined\n\t * @public\n\t */\n\t@property({ defaultValue: undefined })\n\taccessibleName?: string;\n\n\t/**\n\t * Receives id(or many ids) of the elements that label the component.\n\t * @default undefined\n\t * @public\n\t */\n\t@property({ defaultValue: undefined })\n\taccessibleNameRef?: string;\n\n\t/**\n\t * Indicates if the tokenizer should show all tokens or n more label instead\n\t * **Note:** Used inside MultiInput and MultiComboBox components.\n\t * @default false\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\texpanded!: boolean;\n\n\t/**\n\t * Indicates if the nMore popover is open\n\t * **Note:** Used inside MultiInput and MultiComboBox components.\n\t * @default false\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\topen!: boolean;\n\n\t/**\n\t * Defines the ID or DOM Reference of the element that the menu is shown at\n\t * When using this attribute in a declarative way, you must only use the `id` (as a string) of the element at which you want to show the tokenizer.\n\t * You can only set the `opener` attribute to a DOM Reference when using JavaScript.\n\t * **Note:** Used inside MultiInput and MultiComboBox components.\n\t * @private\n\t * @default \"\"\n\t */\n\t@property({ validator: DOMReference, defaultValue: \"\" })\n\topener!: HTMLElement;\n\n\t/**\n\t * Sets the min-width of the nMore Popover.\n\t * **Note:** Used inside MultiInput and MultiComboBox components.\n\t * @private\n\t */\n\t@property({ validator: Integer })\n\tpopoverMinWidth?: number;\n\n\t/**\n\t * Prevents tokens to be part of the tab chain.\n\t * **Note:** Used inside MultiInput and MultiComboBox components.\n\t * @default false\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\tpreventInitialFocus!: boolean;\n\n\t/**\n\t * Prevent opening of n-more Popover when label is clicked\n\t * **Note:** Used inside MultiComboBox component.\n\t * @default false\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\tpreventPopoverOpen!: boolean;\n\n\t/**\n\t * Hides the popover arrow.\n\t * **Note:** Used inside MultiInput and MultiComboBox components.\n\t * @default false\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\thidePopoverArrow!: boolean;\n\n\t@property({ validator: Integer })\n\t_nMoreCount!: number;\n\n\t@property({ validator: Integer })\n\t_tokensCount!: number;\n\n\t@slot({\n\t\ttype: HTMLElement,\n\t\t\"default\": true,\n\t\tindividualSlots: true,\n\t\tinvalidateOnChildChange: {\n\t\t\tproperties: [\"_isVisible\"],\n\t\t\tslots: false,\n\t\t},\n\t})\n\ttokens!: Array<Token>;\n\n\tstatic i18nBundle: I18nBundle;\n\t_resizeHandler: ResizeObserverCallback;\n\t_itemNav: ItemNavigation;\n\t_scrollEnablement: ScrollEnablement;\n\t_expandedScrollWidth?: number;\n\t_tokenDeleting!: boolean;\n\t_preventCollapse!: boolean;\n\t_skipTabIndex!: boolean;\n\t_previousToken!: Token | null;\n\t_focusedElementBeforeOpen?: HTMLElement | null;\n\t_deletedDialogItems!: Token[];\n\n\t_handleResize() {\n\t\tthis._nMoreCount = this.overflownTokens.length;\n\t}\n\n\tconstructor() {\n\t\tsuper();\n\n\t\tthis._resizeHandler = this._handleResize.bind(this);\n\n\t\tthis._itemNav = new ItemNavigation(this, {\n\t\t\tcurrentIndex: -1,\n\t\t\tgetItemsCallback: this._getVisibleTokens.bind(this),\n\t\t});\n\n\t\tthis._scrollEnablement = new ScrollEnablement(this);\n\t\tthis._tokenDeleting = false;\n\t\tthis._deletedDialogItems = [];\n\t}\n\n\tonBeforeRendering() {\n\t\tconst tokensLength = this._tokens.length;\n\t\tthis._tokensCount = tokensLength;\n\n\t\tthis._tokens.forEach(token => {\n\t\t\ttoken.singleToken = tokensLength === 1;\n\t\t\ttoken.readonly = this.readonly;\n\t\t});\n\t}\n\n\tonEnterDOM() {\n\t\tResizeHandler.register(this.contentDom, this._resizeHandler);\n\t}\n\n\tonExitDOM() {\n\t\tResizeHandler.deregister(this.contentDom, this._resizeHandler);\n\t}\n\n\t_handleNMoreClick() {\n\t\tif (this.disabled) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.expanded = true;\n\n\t\tif (!this.preventPopoverOpen) {\n\t\t\tthis.open = true;\n\t\t\tthis.scrollToEnd();\n\t\t}\n\n\t\tthis._tokens.forEach(token => {\n\t\t\ttoken.forcedTabIndex = \"-1\";\n\t\t});\n\n\t\tthis._skipTabIndex = true;\n\n\t\tthis.fireEvent(\"show-more-items-press\");\n\t}\n\n\t_onmousedown(e: MouseEvent) {\n\t\tif ((e.target as HTMLElement).hasAttribute(\"ui5-token\")) {\n\t\t\tconst target = e.target as Token;\n\t\t\tthis.expanded = true;\n\n\t\t\tif (this.open) {\n\t\t\t\tthis._preventCollapse = true;\n\t\t\t}\n\n\t\t\tif (!target.toBeDeleted) {\n\t\t\t\tthis._itemNav.setCurrentItem(target);\n\t\t\t\tthis._scrollToToken(target);\n\t\t\t}\n\t\t}\n\t}\n\n\tonTokenSelect() {\n\t\tconst tokens = this._tokens;\n\t\tconst firstToken = tokens[0];\n\n\t\tif (tokens.length === 1 && firstToken.isTruncatable) {\n\t\t\tthis.open = firstToken.selected;\n\t\t}\n\t}\n\n\t_getVisibleTokens() {\n\t\tif (this.disabled) {\n\t\t\treturn [];\n\t\t}\n\n\t\treturn this._tokens.filter((token, index) => {\n\t\t\treturn index < (this._tokens.length - this._nMoreCount);\n\t\t});\n\t}\n\n\tonAfterRendering() {\n\t\tconst tokensArray = this._tokens;\n\t\tconst firstToken = tokensArray[0];\n\n\t\tthis._nMoreCount = this.overflownTokens.length;\n\n\t\tif (firstToken && !this.disabled && !this.preventInitialFocus && !this._skipTabIndex) {\n\t\t\tfirstToken.forcedTabIndex = \"0\";\n\t\t}\n\n\t\tthis._scrollEnablement.scrollContainer = this.contentDom;\n\n\t\tif (this.expanded) {\n\t\t\tthis._expandedScrollWidth = this.contentDom.scrollWidth;\n\t\t}\n\n\t\tthis._tokenDeleting = false;\n\t}\n\n\t_delete(e: CustomEvent<TokenDeleteEventDetail>) {\n\t\tconst target = e.target as Token;\n\n\t\tif (!e.detail) { // if there are no details, the event is triggered by a click\n\t\t\tthis._tokenClickDelete(e, target);\n\t\t\tthis.open = false;\n\n\t\t\treturn;\n\t\t}\n\n\t\tthis.deleteToken(target, e.detail.backSpace);\n\t}\n\n\t_tokenClickDelete(e: CustomEvent<TokenDeleteEventDetail>, token: Token) {\n\t\tconst tokens = this._getVisibleTokens();\n\t\tconst target = e.target as Token;\n\t\tconst deletedTokenIndex = token ? tokens.indexOf(token) : tokens.indexOf(target); // The index of the token that just got deleted\n\t\tconst nextTokenIndex = deletedTokenIndex === tokens.length - 1 ? deletedTokenIndex - 1 : deletedTokenIndex + 1; // The index of the next token that needs to be focused next due to the deletion\n\t\tconst nextToken = tokens[nextTokenIndex]; // if the last item was deleted this will be undefined\n\n\t\tthis._handleCurrentItemAfterDeletion(nextToken);\n\n\t\tthis._tokenDeleting = true;\n\t\tthis.fireEvent<TokenizerTokenDeleteEventDetail>(\"token-delete\", { tokens: [token] || [target] });\n\t}\n\n\t_handleCurrentItemAfterDeletion(nextToken: Token) {\n\t\tif (nextToken && !isPhone()) {\n\t\t\tsetTimeout(() => {\n\t\t\t\tnextToken.focus();\n\t\t\t}, 0);\n\t\t}\n\t}\n\n\t/**\n\t * Removes a token from the Tokenizer.\n\t * This method should only be used by ui5-multi-combobox and ui5-multi-input\n\t * @protected\n\t * @param token Token to be focused.\n\t * @param forwardFocusToPrevious Indicates whether the focus will be forwarded to previous or next token after deletion.\n\t */\n\tdeleteToken(token: Token, forwardFocusToPrevious?: boolean) {\n\t\tconst tokens = this._getVisibleTokens();\n\t\tconst deletedTokenIndex = tokens.indexOf(token);\n\t\tlet nextTokenIndex = (deletedTokenIndex === tokens.length - 1) ? deletedTokenIndex - 1 : deletedTokenIndex + 1;\n\t\tconst notSelectedTokens = tokens.filter(t => !t.selected);\n\n\t\tif (forwardFocusToPrevious) { // on backspace key select the previous item (unless deleting the first)\n\t\t\tnextTokenIndex = deletedTokenIndex === 0 ? deletedTokenIndex + 1 : deletedTokenIndex - 1;\n\t\t} else { // on delete key or mouse click on the \"x\" select the next item (unless deleting the last)\n\t\t\tnextTokenIndex = deletedTokenIndex === tokens.length - 1 ? deletedTokenIndex - 1 : deletedTokenIndex + 1;\n\t\t}\n\n\t\tlet nextToken = tokens[nextTokenIndex];\n\n\t\tif (notSelectedTokens.length > 1) {\n\t\t\twhile (nextToken && nextToken.selected) {\n\t\t\t\tnextTokenIndex = forwardFocusToPrevious ? --nextTokenIndex : ++nextTokenIndex;\n\n\t\t\t\tif (nextTokenIndex < 0) {\n\t\t\t\t\tnextToken = notSelectedTokens[0];\n\t\t\t\t}\n\n\t\t\t\tif (nextTokenIndex > notSelectedTokens.length) {\n\t\t\t\t\tnextToken = notSelectedTokens[notSelectedTokens.length - 1];\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tnextToken = notSelectedTokens[0];\n\t\t}\n\n\t\tthis._handleCurrentItemAfterDeletion(nextToken);\n\n\t\tthis._tokenDeleting = true;\n\n\t\tif (this._selectedTokens.length) {\n\t\t\tthis.fireEvent<TokenizerTokenDeleteEventDetail>(\"token-delete\", { tokens: this._selectedTokens });\n\t\t} else {\n\t\t\tthis.fireEvent<TokenizerTokenDeleteEventDetail>(\"token-delete\", { tokens: [token] });\n\t\t}\n\t}\n\n\tasync itemDelete(e: CustomEvent) {\n\t\tconst token = e.detail.item.tokenRef;\n\t\tconst tokensArray = this._tokens;\n\n\t\t// delay the token deletion in order to close the popover before removing token of the DOM\n\t\tif (tokensArray.length === 1) {\n\t\t\tconst morePopover = this.getPopover();\n\n\t\t\tmorePopover.addEventListener(\"ui5-close\", () => {\n\t\t\t\tthis.fireEvent<TokenizerTokenDeleteEventDetail>(\"token-delete\", { tokens: [token] });\n\t\t\t}, {\n\t\t\t\tonce: true,\n\t\t\t});\n\t\t\tthis.open = false;\n\t\t} else {\n\t\t\tif (isPhone()) {\n\t\t\t\ttoken._isVisible = false;\n\t\t\t\tthis._deletedDialogItems.push(token as Token);\n\t\t\t} else {\n\t\t\t\tthis.fireEvent<TokenizerTokenDeleteEventDetail>(\"token-delete\", { tokens: [token] });\n\t\t\t}\n\t\t\tconst currentListItem = e.detail.item as ListItem;\n\t\t\tconst nextListItem = currentListItem.nextElementSibling as ListItem;\n\t\t\tconst previousListItem = currentListItem.previousElementSibling as ListItem;\n\t\t\tconst focusItem = nextListItem || previousListItem;\n\n\t\t\tif (focusItem) {\n\t\t\t\tawait renderFinished();\n\t\t\t\tfocusItem.focus();\n\t\t\t}\n\t\t}\n\t}\n\n\thandleBeforeClose() {\n\t\tconst tokensArray = this._tokens;\n\n\t\tif (isPhone()) {\n\t\t\ttokensArray.forEach(token => {\n\t\t\t\ttoken.selected = false;\n\t\t\t});\n\t\t}\n\n\t\tif (!this._tokenDeleting && !this._preventCollapse) {\n\t\t\tthis._preventCollapse = false;\n\t\t\tthis.expanded = false;\n\t\t}\n\t}\n\n\thandleBeforeOpen() {\n\t\tthis._tokens.forEach(token => {\n\t\t\ttoken._isVisible = true;\n\t\t});\n\n\t\tconst list = this._getList();\n\t\tconst firstListItem = list.querySelectorAll(\"[ui5-li]\")[0]! as ListItem;\n\n\t\tlist._itemNavigation.setCurrentItem(firstListItem);\n\n\t\tthis.fireEvent(\"before-more-popover-open\");\n\t}\n\n\thandleAfterClose() {\n\t\tthis.open = false;\n\t\tthis._preventCollapse = false;\n\t\tthis._focusedElementBeforeOpen = null;\n\n\t\tthis._tokens.forEach(token => {\n\t\t\ttoken._isVisible = true;\n\t\t});\n\t}\n\n\thandleDialogButtonPress(e: MouseEvent) {\n\t\tconst isOkButton = (e.target as HTMLElement).hasAttribute(\"data-ui5-tokenizer-dialog-ok-button\");\n\t\tconst confirm = !!isOkButton;\n\n\t\tif (confirm && this._deletedDialogItems.length) {\n\t\t\tthis.fireEvent<TokenizerTokenDeleteEventDetail>(\"token-delete\", { tokens: this._deletedDialogItems });\n\t\t}\n\n\t\tthis.open = false;\n\t}\n\n\t_onkeydown(e: KeyboardEvent) {\n\t\tconst isCtrl = !!(e.metaKey || e.ctrlKey);\n\n\t\tif ((isCtrl && [\"c\", \"x\"].includes(e.key.toLowerCase())) || isDeleteShift(e) || isInsertCtrl(e)) {\n\t\t\te.preventDefault();\n\n\t\t\tconst isCut = e.key.toLowerCase() === \"x\" || isDeleteShift(e);\n\t\t\tconst selectedTokens = this._tokens.filter(token => token.selected);\n\t\t\tconst focusedToken = selectedTokens.find(token => token.focused);\n\n\t\t\tif (isCut) {\n\t\t\t\tconst cutResult = this._fillClipboard(ClipboardDataOperation.cut, selectedTokens);\n\n\t\t\t\tfocusedToken && this.deleteToken(focusedToken);\n\n\t\t\t\treturn cutResult;\n\t\t\t}\n\n\t\t\treturn this._fillClipboard(ClipboardDataOperation.copy, selectedTokens);\n\t\t}\n\n\t\tif (isCtrl && e.key.toLowerCase() === \"i\" && this._tokens.length > 0) {\n\t\t\te.preventDefault();\n\n\t\t\tthis._preventCollapse = true;\n\t\t\tthis._focusedElementBeforeOpen = getFocusedElement();\n\n\t\t\tthis.open = true;\n\t\t}\n\n\t\tif (isSpaceShift(e)) {\n\t\t\te.preventDefault();\n\t\t}\n\n\t\tif (isSpace(e) || isSpaceCtrl(e)) {\n\t\t\te.preventDefault();\n\n\t\t\treturn this._handleTokenSelection(e, false);\n\t\t}\n\n\t\tif (isHomeShift(e) || isPageUpShift(e)) {\n\t\t\tthis._handleHomeShift(e);\n\t\t}\n\n\t\tif (isEndShift(e) || isPageDownShift(e)) {\n\t\t\tthis._handleEndShift(e);\n\t\t}\n\n\t\tthis._handleItemNavigation(e, this._tokens);\n\t}\n\n\t_onPopoverListKeydown(e: KeyboardEvent) {\n\t\tconst isCtrl = !!(e.metaKey || e.ctrlKey);\n\n\t\tif ((isCtrl && e.key.toLowerCase() === \"i\") || isEscape(e)) {\n\t\t\te.preventDefault();\n\t\t\tthis.open = false;\n\n\t\t\tthis._preventCollapse = true;\n\t\t\tthis._focusedElementBeforeOpen && this._focusedElementBeforeOpen.focus();\n\n\t\t\tif (!this._focusedElementBeforeOpen) {\n\t\t\t\tthis._focusLastToken();\n\t\t\t}\n\t\t}\n\n\t\tif (e.key.toLowerCase() === \"f7\") {\n\t\t\te.preventDefault();\n\n\t\t\tconst eventTarget = e.target as ListItem;\n\t\t\tconst activeElement = getActiveElement();\n\n\t\t\tif (activeElement?.part.value === \"native-li\") {\n\t\t\t\teventTarget.shadowRoot!.querySelector<HTMLElement>(\"[part=delete-button]\")!.focus();\n\t\t\t} else {\n\t\t\t\teventTarget.focus();\n\t\t\t}\n\t\t}\n\t}\n\n\t_handleItemNavigation(e: KeyboardEvent, tokens: Array<Token>) {\n\t\tconst isCtrl = !!(e.metaKey || e.ctrlKey);\n\t\tconst target = e.target as Token;\n\n\t\tif (isLeftCtrl(e) || isRightCtrl(e) || isDownCtrl(e) || isUpCtrl(e)) {\n\t\t\treturn this._handleArrowCtrl(e, target, tokens, isRightCtrl(e) || isDownCtrl(e));\n\t\t}\n\n\t\tif (isLeftShift(e) || isRightShift(e) || isUpShift(e) || isDownShift(e) || isLeftShiftCtrl(e) || isRightShiftCtrl(e)) {\n\t\t\te.preventDefault();\n\t\t\treturn this._handleArrowShift(target, tokens, (isRightShift(e) || isRightShiftCtrl(e) || isDownShift(e)));\n\t\t}\n\n\t\tif (isHome(e) || isEnd(e) || isHomeCtrl(e) || isEndCtrl(e)) {\n\t\t\te.preventDefault();\n\t\t\treturn this._handleHome(tokens, isEnd(e) || isEndCtrl(e));\n\t\t}\n\n\t\tif (isCtrl && e.key.toLowerCase() === \"a\") {\n\t\t\te.preventDefault();\n\n\t\t\treturn this._toggleTokenSelection(tokens);\n\t\t}\n\n\t\tif (isLeft(e) || isRight(e) || isUp(e) || isDown(e)) {\n\t\t\te.preventDefault();\n\t\t\tconst nextTokenIdx = this._calcNextTokenIndex(this._tokens.find(token => token.focused)!, tokens, (isRight(e) || isDown(e)));\n\t\t\tthis._scrollToToken(tokens[nextTokenIdx]);\n\t\t}\n\t}\n\n\t_handleHome(tokens: Array<Token>, endKeyPressed: boolean) {\n\t\tif (!tokens || !tokens.length) {\n\t\t\treturn -1;\n\t\t}\n\n\t\tconst index = endKeyPressed ? tokens.length - 1 : 0;\n\n\t\ttokens[index].focus();\n\t}\n\n\t_handleHomeShift(e: KeyboardEvent) {\n\t\tconst tokens = this._tokens;\n\t\tconst target = e.target as Token;\n\t\tconst currentTokenIdx = tokens.indexOf(target);\n\t\tconst previousSelectedTokens = [...this._selectedTokens];\n\n\t\ttokens.filter((token, index) => index <= currentTokenIdx).forEach(token => {\n\t\t\ttoken.selected = true;\n\t\t});\n\n\t\tconst selectedTokensChanged = JSON.stringify(previousSelectedTokens) !== JSON.stringify(this._selectedTokens);\n\n\t\tif (selectedTokensChanged) {\n\t\t\tthis.fireEvent<TokenizerSelectionChangeEventDetail>(\"selection-change\", {\n\t\t\t\ttokens: this._selectedTokens,\n\t\t\t});\n\t\t}\n\n\t\ttokens[0].focus();\n\t}\n\n\t_handleEndShift(e: KeyboardEvent) {\n\t\tconst tokens = this._tokens;\n\t\tconst target = e.target as Token;\n\t\tconst currentTokenIdx = tokens.indexOf(target);\n\t\tconst previousSelectedTokens = [...this._selectedTokens];\n\n\t\ttokens.filter((token, index) => index >= currentTokenIdx).forEach(token => {\n\t\t\ttoken.selected = true;\n\t\t});\n\n\t\tconst selectedTokensChanged = JSON.stringify(previousSelectedTokens) !== JSON.stringify(this._selectedTokens);\n\n\t\tif (selectedTokensChanged) {\n\t\t\tthis.fireEvent<TokenizerSelectionChangeEventDetail>(\"selection-change\", {\n\t\t\t\ttokens: this._selectedTokens,\n\t\t\t});\n\t\t}\n\n\t\ttokens[tokens.length - 1].focus();\n\t}\n\n\t_calcNextTokenIndex(focusedToken: IToken, tokens: Array<IToken>, backwards: boolean) {\n\t\tif (!tokens.length) {\n\t\t\treturn -1;\n\t\t}\n\n\t\tconst focusedTokenIndex = tokens.indexOf(focusedToken);\n\t\tlet nextIndex = backwards ? (focusedTokenIndex + 1) : (focusedTokenIndex - 1);\n\n\t\tif (nextIndex >= tokens.length) {\n\t\t\tnextIndex = tokens.length - 1;\n\t\t}\n\n\t\tif (nextIndex < 0) {\n\t\t\tnextIndex = 0;\n\t\t}\n\n\t\treturn nextIndex;\n\t}\n\n\t_handleArrowCtrl(e: KeyboardEvent, focusedToken: IToken, tokens: Array<IToken>, backwards: boolean) {\n\t\tconst nextIndex = this._calcNextTokenIndex(focusedToken, tokens, backwards);\n\n\t\te.preventDefault();\n\n\t\tif (nextIndex === -1) {\n\t\t\treturn;\n\t\t}\n\n\t\tsetTimeout(() => {\n\t\t\ttokens[nextIndex].focus();\n\t\t}, 0);\n\n\t\tthis._scrollToToken(tokens[nextIndex]);\n\t}\n\n\t_handleArrowShift(focusedToken: Token, tokens: Array<Token>, backwards: boolean) {\n\t\tconst focusedTokenIndex = tokens.indexOf(focusedToken);\n\t\tconst nextIndex = backwards ? (focusedTokenIndex + 1) : (focusedTokenIndex - 1);\n\t\tconst previousSelectedTokens = [...this._selectedTokens];\n\n\t\tif (nextIndex === -1 || nextIndex === tokens.length) {\n\t\t\treturn;\n\t\t}\n\n\t\tfocusedToken.selected = true;\n\t\ttokens[nextIndex].selected = true;\n\n\t\tconst selectedTokensChanged = JSON.stringify(previousSelectedTokens) !== JSON.stringify(this._selectedTokens);\n\n\t\tif (selectedTokensChanged) {\n\t\t\tthis.fireEvent<TokenizerSelectionChangeEventDetail>(\"selection-change\", {\n\t\t\t\ttokens: this._selectedTokens,\n\t\t\t});\n\t\t}\n\n\t\ttokens[nextIndex].focus();\n\n\t\tthis._scrollToToken(tokens[nextIndex]);\n\t}\n\n\t_click(e: MouseEvent) {\n\t\tif (e.metaKey || e.ctrlKey) {\n\t\t\tthis.fireEvent<TokenizerSelectionChangeEventDetail>(\"selection-change\", {\n\t\t\t\ttokens: this._selectedTokens,\n\t\t\t});\n\t\t\treturn;\n\t\t}\n\n\t\tconst targetToken = e.target as Token;\n\n\t\tif (!e.shiftKey) {\n\t\t\tthis._previousToken = targetToken;\n\t\t}\n\n\t\tlet focusedToken = targetToken;\n\n\t\tif (this._previousToken) {\n\t\t\tfocusedToken = this._previousToken;\n\t\t} else {\n\t\t\tthis._previousToken = focusedToken;\n\t\t}\n\n\t\tif (e.shiftKey) {\n\t\t\tconst tokensArray = this._tokens;\n\t\t\tconst lastClickedIndex = tokensArray.indexOf(targetToken);\n\t\t\tconst firstSelectedTokenIndex = tokensArray.indexOf(focusedToken);\n\t\t\tconst start = Math.min(lastClickedIndex, firstSelectedTokenIndex);\n\t\t\tconst end = Math.max(lastClickedIndex, firstSelectedTokenIndex);\n\n\t\t\tif (lastClickedIndex !== -1) {\n\t\t\t\ttokensArray.forEach((token, i) => {\n\t\t\t\t\ttoken.selected = i >= start && i <= end;\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tthis.fireEvent<TokenizerSelectionChangeEventDetail>(\"selection-change\", {\n\t\t\t\ttokens: this._selectedTokens,\n\t\t\t});\n\n\t\t\treturn;\n\t\t}\n\n\t\tthis._handleTokenSelection(e);\n\t}\n\n\t_onfocusin(e: FocusEvent) {\n\t\tconst target = e.target as Token;\n\t\tthis.open = false;\n\t\tthis._itemNav.setCurrentItem(target);\n\n\t\tif (!this.expanded) {\n\t\t\tthis.expanded = true;\n\t\t}\n\t}\n\n\t_onfocusout(e: FocusEvent) {\n\t\tconst relatedTarget = e.relatedTarget as HTMLElement;\n\n\t\tthis._tokens.forEach(token => {\n\t\t\ttoken.forcedTabIndex = \"-1\";\n\t\t});\n\n\t\tthis._itemNav._currentIndex = -1;\n\t\tthis._skipTabIndex = true;\n\n\t\tif (!this.contains(relatedTarget)) {\n\t\t\tthis._tokens[0].forcedTabIndex = \"0\";\n\t\t\tthis._skipTabIndex = false;\n\t\t}\n\n\t\tif (!this._tokenDeleting && !this._preventCollapse) {\n\t\t\tthis._preventCollapse = false;\n\t\t\tthis.expanded = false;\n\t\t}\n\t}\n\n\t_toggleTokenSelection(tokens: Array<Token>) {\n\t\tif (!tokens || !tokens.length) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst tokensAreSelected = tokens.every(token => token.selected);\n\t\ttokens.forEach(token => { token.selected = !tokensAreSelected; });\n\n\t\tthis.fireEvent<TokenizerSelectionChangeEventDetail>(\"selection-change\", {\n\t\t\ttokens: this._selectedTokens,\n\t\t});\n\t}\n\n\t_handleTokenSelection(e: KeyboardEvent | MouseEvent, deselectAll = true) {\n\t\tconst target = e.target as Token;\n\n\t\tif (target.hasAttribute(\"ui5-token\")) {\n\t\t\tconst deselectTokens = deselectAll ? this._tokens : [];\n\n\t\t\tdeselectTokens.forEach(token => {\n\t\t\t\tif (token !== target) {\n\t\t\t\t\ttoken.selected = false;\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tthis.fireEvent<TokenizerSelectionChangeEventDetail>(\"selection-change\", {\n\t\t\t\ttokens: this._selectedTokens,\n\t\t\t});\n\t\t}\n\t}\n\n\t_fillClipboard(shortcutName: ClipboardDataOperation, tokens: Array<IToken>) {\n\t\tconst tokensTexts = tokens.filter(token => token.selected).map(token => token.text).join(\"\\r\\n\");\n\n\t\tconst cutToClipboard = (e: ClipboardEvent) => {\n\t\t\tif (e.clipboardData) {\n\t\t\t\te.clipboardData.setData(\"text/plain\", tokensTexts);\n\t\t\t}\n\n\t\t\te.preventDefault();\n\t\t};\n\n\t\tdocument.addEventListener(shortcutName, cutToClipboard);\n\t\tdocument.execCommand(shortcutName);\n\t\tdocument.removeEventListener(shortcutName, cutToClipboard);\n\t}\n\n\t/**\n\t * Scrolls the container of the tokens to its beginning.\n\t * This method is used by MultiInput and MultiComboBox.\n\t * @protected\n\t */\n\tscrollToStart() {\n\t\tif (this._scrollEnablement.scrollContainer) {\n\t\t\tthis._scrollEnablement.scrollTo(0, 0);\n\t\t}\n\t}\n\n\t/**\n\t * Scrolls the container of the tokens to its end when expanded.\n\t * This method is used by MultiInput and MultiComboBox.\n\t * @protected\n\t */\n\tscrollToEnd() {\n\t\tconst expandedTokenizerScrollWidth = this.contentDom && (this.effectiveDir !== \"rtl\" ? this.contentDom.scrollWidth : -this.contentDom.scrollWidth);\n\t\tif (this._scrollEnablement.scrollContainer) {\n\t\t\tthis._scrollEnablement.scrollTo(expandedTokenizerScrollWidth, 0, 5, 10);\n\t\t}\n\t}\n\n\t/**\n\t * Scrolls token to the visible area of the container.\n\t * Adds 4 pixels to the scroll position to ensure padding and border visibility on both ends\n\t * @protected\n\t */\n\t_scrollToToken(token: IToken) {\n\t\tif (!this.contentDom) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst tokenRect = token.getBoundingClientRect();\n\t\tconst tokenContainerRect = this.contentDom.getBoundingClientRect();\n\n\t\tif (tokenRect.left < tokenContainerRect.left) {\n\t\t\tthis._scrollEnablement.scrollTo(this.contentDom.scrollLeft - (tokenContainerRect.left - tokenRect.left + 5), 0);\n\t\t} else if (tokenRect.right > tokenContainerRect.right) {\n\t\t\tthis._scrollEnablement.scrollTo(this.contentDom.scrollLeft + (tokenRect.right - tokenContainerRect.right + 5), 0);\n\t\t}\n\t}\n\n\t_getList() {\n\t\treturn this.getPopover().querySelector<List>(\"[ui5-list]\")!;\n\t}\n\n\tget _tokens() {\n\t\treturn this.getSlottedNodes<Token>(\"tokens\");\n\t}\n\n\tget morePopoverOpener(): HTMLElement {\n\t\treturn Object.keys(this.opener).length === 0 ? this : this.opener;\n\t}\n\n\tget _nMoreText() {\n\t\tif (!this._nMoreCount) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (this._getVisibleTokens().length) {\n\t\t\treturn Tokenizer.i18nBundle.getText(MULTIINPUT_SHOW_MORE_TOKENS, this._nMoreCount);\n\t\t}\n\n\t\treturn Tokenizer.i18nBundle.getText(TOKENIZER_SHOW_ALL_ITEMS, this._nMoreCount);\n\t}\n\n\tget showNMore() {\n\t\treturn !this.expanded && !!this.overflownTokens.length;\n\t}\n\n\tget contentDom() {\n\t\treturn this.shadowRoot!.querySelector<HTMLElement>(\".ui5-tokenizer--content\")!;\n\t}\n\n\tget moreLink() {\n\t\treturn this.shadowRoot!.querySelector<HTMLElement>(\".ui5-tokenizer-more-text\");\n\t}\n\n\tget tokenizerLabel() {\n\t\tconst effectiveLabelText = getEffectiveAriaLabelText(this);\n\t\treturn effectiveLabelText || Tokenizer.i18nBundle.getText(TOKENIZER_ARIA_LABEL);\n\t}\n\n\tget tokenizerAriaDescription() {\n\t\treturn getEffectiveAriaLabelText(this) ? Tokenizer.i18nBundle.getText(TOKENIZER_ARIA_LABEL) : undefined;\n\t}\n\n\tget _ariaDisabled() {\n\t\treturn this.disabled || undefined;\n\t}\n\n\tget _ariaReadonly() {\n\t\treturn this.readonly || undefined;\n\t}\n\n\tget morePopoverTitle() {\n\t\treturn Tokenizer.i18nBundle.getText(TOKENIZER_POPOVER_REMOVE);\n\t}\n\n\tget overflownTokens() {\n\t\tif (!this.contentDom) {\n\t\t\treturn [];\n\t\t}\n\n\t\tconst tokensArray = this._tokens;\n\n\t\t// Reset the overflow prop of the tokens first in order\n\t\t// to use their dimensions for calculation because already\n\t\t// hidden tokens are set to 'display: none'\n\t\ttokensArray.forEach(token => {\n\t\t\ttoken.overflows = false;\n\t\t});\n\n\t\treturn tokensArray.filter(token => {\n\t\t\tconst parentRect = this.contentDom.getBoundingClientRect();\n\t\t\tconst tokenRect = token.getBoundingClientRect();\n\t\t\tconst tokenEnd = Number(tokenRect.right.toFixed(2));\n\t\t\tconst parentEnd = Number(parentRect.right.toFixed(2));\n\t\t\tconst tokenStart = Number(tokenRect.left.toFixed(2));\n\t\t\tconst parentStart = Number(parentRect.left.toFixed(2));\n\n\t\t\ttoken.overflows = !this.expanded && ((tokenStart < parentStart) || (tokenEnd > parentEnd));\n\n\t\t\treturn token.overflows;\n\t\t});\n\t}\n\n\tget _isPhone() {\n\t\treturn isPhone();\n\t}\n\n\tget _selectedTokens() {\n\t\treturn this._tokens.filter(token => token.selected);\n\t}\n\n\tget _nMoreListMode() {\n\t\tif (this.readonly || this.disabled) {\n\t\t\treturn ListSelectionMode.None;\n\t\t}\n\n\t\treturn ListSelectionMode.Delete;\n\t}\n\n\tget styles() {\n\t\treturn {\n\t\t\tpopover: {\n\t\t\t\t\"min-width\": this.popoverMinWidth ? `${this.popoverMinWidth}px` : `${this.getBoundingClientRect().width}px`,\n\t\t\t},\n\t\t};\n\t}\n\n\t/**\n\t * @protected\n\t */\n\t_focusLastToken() {\n\t\tconst tokens = this._tokens;\n\t\tif (tokens.length === 0) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst lastToken = tokens[tokens.length - 1];\n\t\tlastToken.focus();\n\t}\n\n\tstatic async onDefine() {\n\t\tTokenizer.i18nBundle = await getI18nBundle(\"@ui5/webcomponents\");\n\t}\n\n\tgetPopover() {\n\t\treturn this.shadowRoot!.querySelector<ResponsivePopover>(\"[ui5-responsive-popover]\")!;\n\t}\n}\n\nconst getTokensCountText = (iTokenCount: number) => {\n\tconst tokenCountMap: TokenCountMapType = {\n\t\t0: TOKENIZER_ARIA_CONTAIN_TOKEN,\n\t\t1: TOKENIZER_ARIA_CONTAIN_ONE_TOKEN,\n\t};\n\n\tif (iTokenCount in tokenCountMap) {\n\t\treturn Tokenizer.i18nBundle.getText(tokenCountMap[iTokenCount]);\n\t}\n\n\treturn Tokenizer.i18nBundle.getText(TOKENIZER_ARIA_CONTAIN_SEVERAL_TOKENS, iTokenCount);\n};\n\nTokenizer.define();\n\nexport default Tokenizer;\nexport { getTokensCountText };\nexport { ClipboardDataOperation };\nexport type { TokenizerTokenDeleteEventDetail, TokenizerSelectionChangeEventDetail, TokenizerDialogButtonPressDetail };\n"]}