@ui5/webcomponents 2.11.0-rc.2 → 2.11.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 (843) hide show
  1. package/CHANGELOG.md +45 -0
  2. package/dist/.tsbuildinfo +1 -1
  3. package/dist/Assets-node.d.ts +16 -0
  4. package/dist/Assets-node.js +19 -0
  5. package/dist/Assets-node.js.map +1 -0
  6. package/dist/Avatar.d.ts +4 -0
  7. package/dist/Avatar.js +9 -4
  8. package/dist/Avatar.js.map +1 -1
  9. package/dist/Breadcrumbs.js +2 -2
  10. package/dist/Breadcrumbs.js.map +1 -1
  11. package/dist/Calendar.d.ts +31 -8
  12. package/dist/Calendar.js +100 -26
  13. package/dist/Calendar.js.map +1 -1
  14. package/dist/CalendarHeaderTemplate.js +1 -1
  15. package/dist/CalendarHeaderTemplate.js.map +1 -1
  16. package/dist/CalendarTemplate.js +3 -1
  17. package/dist/CalendarTemplate.js.map +1 -1
  18. package/dist/CheckBoxTemplate.js +1 -1
  19. package/dist/CheckBoxTemplate.js.map +1 -1
  20. package/dist/ComboBox.d.ts +1 -0
  21. package/dist/ComboBox.js +4 -1
  22. package/dist/ComboBox.js.map +1 -1
  23. package/dist/ComboBoxPopoverTemplate.js +1 -1
  24. package/dist/ComboBoxPopoverTemplate.js.map +1 -1
  25. package/dist/DynamicDateRange.d.ts +133 -0
  26. package/dist/DynamicDateRange.js +291 -0
  27. package/dist/DynamicDateRange.js.map +1 -0
  28. package/dist/DynamicDateRangeInputTemplate.d.ts +2 -0
  29. package/dist/DynamicDateRangeInputTemplate.js +13 -0
  30. package/dist/DynamicDateRangeInputTemplate.js.map +1 -0
  31. package/dist/DynamicDateRangePopoverTemplate.d.ts +2 -0
  32. package/dist/DynamicDateRangePopoverTemplate.js +18 -0
  33. package/dist/DynamicDateRangePopoverTemplate.js.map +1 -0
  34. package/dist/DynamicDateRangeTemplate.d.ts +2 -0
  35. package/dist/DynamicDateRangeTemplate.js +9 -0
  36. package/dist/DynamicDateRangeTemplate.js.map +1 -0
  37. package/dist/Icon.js +2 -2
  38. package/dist/Icon.js.map +1 -1
  39. package/dist/Input.d.ts +1 -0
  40. package/dist/Input.js +4 -1
  41. package/dist/Input.js.map +1 -1
  42. package/dist/Tab.d.ts +2 -1
  43. package/dist/Tab.js +2 -1
  44. package/dist/Tab.js.map +1 -1
  45. package/dist/TabContainer.js +2 -2
  46. package/dist/TabContainer.js.map +1 -1
  47. package/dist/Table.d.ts +0 -6
  48. package/dist/Table.js +3 -6
  49. package/dist/Table.js.map +1 -1
  50. package/dist/TableCell.d.ts +0 -1
  51. package/dist/TableCell.js +0 -1
  52. package/dist/TableCell.js.map +1 -1
  53. package/dist/TableGrowing.d.ts +0 -1
  54. package/dist/TableGrowing.js +0 -1
  55. package/dist/TableGrowing.js.map +1 -1
  56. package/dist/TableHeaderCell.d.ts +0 -1
  57. package/dist/TableHeaderCell.js +0 -1
  58. package/dist/TableHeaderCell.js.map +1 -1
  59. package/dist/TableHeaderCellActionAI.d.ts +0 -1
  60. package/dist/TableHeaderCellActionAI.js +0 -1
  61. package/dist/TableHeaderCellActionAI.js.map +1 -1
  62. package/dist/TableHeaderRow.d.ts +0 -1
  63. package/dist/TableHeaderRow.js +0 -1
  64. package/dist/TableHeaderRow.js.map +1 -1
  65. package/dist/TableRow.d.ts +1 -2
  66. package/dist/TableRow.js +9 -5
  67. package/dist/TableRow.js.map +1 -1
  68. package/dist/TableRowAction.d.ts +0 -1
  69. package/dist/TableRowAction.js +0 -1
  70. package/dist/TableRowAction.js.map +1 -1
  71. package/dist/TableRowActionNavigation.d.ts +0 -1
  72. package/dist/TableRowActionNavigation.js +0 -1
  73. package/dist/TableRowActionNavigation.js.map +1 -1
  74. package/dist/TableSelection.d.ts +1 -1
  75. package/dist/TableSelection.js +1 -1
  76. package/dist/TableSelection.js.map +1 -1
  77. package/dist/TableSelectionBase.d.ts +9 -2
  78. package/dist/TableSelectionBase.js +14 -3
  79. package/dist/TableSelectionBase.js.map +1 -1
  80. package/dist/TableSelectionMulti.d.ts +0 -1
  81. package/dist/TableSelectionMulti.js +0 -5
  82. package/dist/TableSelectionMulti.js.map +1 -1
  83. package/dist/Tokenizer.d.ts +2 -0
  84. package/dist/Tokenizer.js +7 -1
  85. package/dist/Tokenizer.js.map +1 -1
  86. package/dist/TokenizerPopoverTemplate.js +1 -1
  87. package/dist/TokenizerPopoverTemplate.js.map +1 -1
  88. package/dist/Toolbar.d.ts +3 -22
  89. package/dist/Toolbar.js +12 -45
  90. package/dist/Toolbar.js.map +1 -1
  91. package/dist/ToolbarButton.d.ts +10 -11
  92. package/dist/ToolbarButton.js +14 -23
  93. package/dist/ToolbarButton.js.map +1 -1
  94. package/dist/ToolbarButtonTemplate.js +2 -3
  95. package/dist/ToolbarButtonTemplate.js.map +1 -1
  96. package/dist/ToolbarItem.d.ts +13 -17
  97. package/dist/ToolbarItem.js +18 -22
  98. package/dist/ToolbarItem.js.map +1 -1
  99. package/dist/ToolbarSelect.d.ts +0 -4
  100. package/dist/ToolbarSelect.js +5 -9
  101. package/dist/ToolbarSelect.js.map +1 -1
  102. package/dist/ToolbarSelectTemplate.js +1 -1
  103. package/dist/ToolbarSelectTemplate.js.map +1 -1
  104. package/dist/ToolbarSeparator.d.ts +0 -4
  105. package/dist/ToolbarSeparator.js +6 -9
  106. package/dist/ToolbarSeparator.js.map +1 -1
  107. package/dist/ToolbarSpacer.d.ts +0 -3
  108. package/dist/ToolbarSpacer.js +2 -9
  109. package/dist/ToolbarSpacer.js.map +1 -1
  110. package/dist/ToolbarTemplate.js +15 -3
  111. package/dist/ToolbarTemplate.js.map +1 -1
  112. package/dist/Tree.js +20 -2
  113. package/dist/Tree.js.map +1 -1
  114. package/dist/YearPicker.d.ts +2 -3
  115. package/dist/YearPicker.js +7 -33
  116. package/dist/YearPicker.js.map +1 -1
  117. package/dist/YearRangePicker.d.ts +144 -0
  118. package/dist/YearRangePicker.js +418 -0
  119. package/dist/YearRangePicker.js.map +1 -0
  120. package/dist/YearRangePickerTemplate.d.ts +2 -0
  121. package/dist/YearRangePickerTemplate.js +6 -0
  122. package/dist/YearRangePickerTemplate.js.map +1 -0
  123. package/dist/bundle.esm.js +6 -0
  124. package/dist/bundle.esm.js.map +1 -1
  125. package/dist/css/themes/Avatar.css +1 -1
  126. package/dist/css/themes/AvatarGroup.css +1 -1
  127. package/dist/css/themes/Bar.css +1 -1
  128. package/dist/css/themes/Breadcrumbs.css +1 -1
  129. package/dist/css/themes/BusyIndicator.css +1 -1
  130. package/dist/css/themes/Button.css +1 -1
  131. package/dist/css/themes/ButtonBadge.css +1 -1
  132. package/dist/css/themes/Calendar.css +1 -1
  133. package/dist/css/themes/CalendarHeader.css +1 -1
  134. package/dist/css/themes/CalendarLegend.css +1 -1
  135. package/dist/css/themes/CalendarLegendItem.css +1 -1
  136. package/dist/css/themes/Card.css +1 -1
  137. package/dist/css/themes/CardHeader.css +1 -1
  138. package/dist/css/themes/Carousel.css +1 -1
  139. package/dist/css/themes/CheckBox.css +1 -1
  140. package/dist/css/themes/ColorPalette.css +1 -1
  141. package/dist/css/themes/ColorPaletteItem.css +1 -1
  142. package/dist/css/themes/ColorPalettePopover.css +1 -1
  143. package/dist/css/themes/ColorPicker.css +1 -1
  144. package/dist/css/themes/ComboBox.css +1 -1
  145. package/dist/css/themes/ComboBoxItem.css +1 -1
  146. package/dist/css/themes/DatePicker.css +1 -1
  147. package/dist/css/themes/DateTimePickerPopover.css +1 -1
  148. package/dist/css/themes/DayPicker.css +1 -1
  149. package/dist/css/themes/Dialog.css +1 -1
  150. package/dist/css/themes/DynamicDateRange.css +1 -0
  151. package/dist/css/themes/DynamicDateRangePopover.css +1 -0
  152. package/dist/css/themes/FileUploader.css +1 -1
  153. package/dist/css/themes/Form.css +1 -1
  154. package/dist/css/themes/FormItem.css +1 -1
  155. package/dist/css/themes/FormItemSpan.css +1 -1
  156. package/dist/css/themes/GrowingButton.css +1 -1
  157. package/dist/css/themes/Icon.css +1 -1
  158. package/dist/css/themes/Input.css +1 -1
  159. package/dist/css/themes/InputIcon.css +1 -1
  160. package/dist/css/themes/InputSharedStyles.css +1 -1
  161. package/dist/css/themes/Link.css +1 -1
  162. package/dist/css/themes/List.css +1 -1
  163. package/dist/css/themes/ListItem.css +1 -1
  164. package/dist/css/themes/ListItemBase.css +1 -1
  165. package/dist/css/themes/ListItemCustom.css +1 -1
  166. package/dist/css/themes/ListItemGroup.css +1 -1
  167. package/dist/css/themes/ListItemGroupHeader.css +1 -1
  168. package/dist/css/themes/ListItemIcon.css +1 -1
  169. package/dist/css/themes/Menu.css +1 -1
  170. package/dist/css/themes/MenuItem.css +1 -1
  171. package/dist/css/themes/MessageStrip.css +1 -1
  172. package/dist/css/themes/MonthPicker.css +1 -1
  173. package/dist/css/themes/MultiComboBox.css +1 -1
  174. package/dist/css/themes/MultiComboBoxItem.css +1 -1
  175. package/dist/css/themes/MultiComboBoxPopover.css +1 -1
  176. package/dist/css/themes/MultiInput.css +1 -1
  177. package/dist/css/themes/OptionBase.css +1 -1
  178. package/dist/css/themes/Panel.css +1 -1
  179. package/dist/css/themes/Popover.css +1 -1
  180. package/dist/css/themes/PopupsCommon.css +1 -1
  181. package/dist/css/themes/ProgressIndicator.css +1 -1
  182. package/dist/css/themes/RadioButton.css +1 -1
  183. package/dist/css/themes/RangeSlider.css +1 -1
  184. package/dist/css/themes/RatingIndicator.css +1 -1
  185. package/dist/css/themes/ResponsivePopover.css +1 -1
  186. package/dist/css/themes/ResponsivePopoverCommon.css +1 -1
  187. package/dist/css/themes/SegmentedButton.css +1 -1
  188. package/dist/css/themes/SegmentedButtonItem.css +1 -1
  189. package/dist/css/themes/Select.css +1 -1
  190. package/dist/css/themes/SliderBase.css +1 -1
  191. package/dist/css/themes/SplitButton.css +1 -1
  192. package/dist/css/themes/StepInput.css +1 -1
  193. package/dist/css/themes/SuggestionItem.css +1 -1
  194. package/dist/css/themes/SuggestionItemCustom.css +1 -1
  195. package/dist/css/themes/Switch.css +1 -1
  196. package/dist/css/themes/TabContainer.css +1 -1
  197. package/dist/css/themes/TabInOverflow.css +1 -1
  198. package/dist/css/themes/TabInStrip.css +1 -1
  199. package/dist/css/themes/TabSemanticIcon.css +1 -1
  200. package/dist/css/themes/TabSeparatorInOverflow.css +1 -1
  201. package/dist/css/themes/TableCellBase.css +1 -1
  202. package/dist/css/themes/TableHeaderRow.css +1 -1
  203. package/dist/css/themes/TableRow.css +1 -1
  204. package/dist/css/themes/TableRowActionBase.css +1 -1
  205. package/dist/css/themes/TableRowBase.css +1 -1
  206. package/dist/css/themes/Tag.css +1 -1
  207. package/dist/css/themes/Text.css +1 -1
  208. package/dist/css/themes/TextArea.css +1 -1
  209. package/dist/css/themes/TimePicker.css +1 -1
  210. package/dist/css/themes/Toast.css +1 -1
  211. package/dist/css/themes/ToggleButton.css +1 -1
  212. package/dist/css/themes/Token.css +1 -1
  213. package/dist/css/themes/Tokenizer.css +1 -1
  214. package/dist/css/themes/TokenizerPopover.css +1 -1
  215. package/dist/css/themes/Toolbar.css +1 -1
  216. package/dist/css/themes/ToolbarPopover.css +1 -1
  217. package/dist/css/themes/ToolbarSelect.css +1 -1
  218. package/dist/css/themes/ToolbarSeparator.css +1 -0
  219. package/dist/css/themes/TreeItem.css +1 -1
  220. package/dist/css/themes/ValueStateMessage.css +1 -1
  221. package/dist/css/themes/YearPicker.css +1 -1
  222. package/dist/css/themes/YearRangePicker.css +1 -0
  223. package/dist/css/themes/sap_fiori_3/parameters-bundle.css +1 -1
  224. package/dist/css/themes/sap_fiori_3_dark/parameters-bundle.css +1 -1
  225. package/dist/css/themes/sap_fiori_3_hcb/parameters-bundle.css +1 -1
  226. package/dist/css/themes/sap_fiori_3_hcw/parameters-bundle.css +1 -1
  227. package/dist/css/themes/sap_horizon/parameters-bundle.css +1 -1
  228. package/dist/css/themes/sap_horizon_dark/parameters-bundle.css +1 -1
  229. package/dist/css/themes/sap_horizon_hcb/parameters-bundle.css +1 -1
  230. package/dist/css/themes/sap_horizon_hcw/parameters-bundle.css +1 -1
  231. package/dist/custom-elements-internal.json +523 -17
  232. package/dist/custom-elements.json +414 -8
  233. package/dist/dynamic-date-range-options/DateRange.d.ts +23 -0
  234. package/dist/dynamic-date-range-options/DateRange.js +71 -0
  235. package/dist/dynamic-date-range-options/DateRange.js.map +1 -0
  236. package/dist/dynamic-date-range-options/DateRangeTemplate.d.ts +2 -0
  237. package/dist/dynamic-date-range-options/DateRangeTemplate.js +11 -0
  238. package/dist/dynamic-date-range-options/DateRangeTemplate.js.map +1 -0
  239. package/dist/dynamic-date-range-options/SingleDate.d.ts +23 -0
  240. package/dist/dynamic-date-range-options/SingleDate.js +67 -0
  241. package/dist/dynamic-date-range-options/SingleDate.js.map +1 -0
  242. package/dist/dynamic-date-range-options/SingleDateTemplate.d.ts +2 -0
  243. package/dist/dynamic-date-range-options/SingleDateTemplate.js +7 -0
  244. package/dist/dynamic-date-range-options/SingleDateTemplate.js.map +1 -0
  245. package/dist/dynamic-date-range-options/Today.d.ts +17 -0
  246. package/dist/dynamic-date-range-options/Today.js +37 -0
  247. package/dist/dynamic-date-range-options/Today.js.map +1 -0
  248. package/dist/dynamic-date-range-options/Tomorrow.d.ts +17 -0
  249. package/dist/dynamic-date-range-options/Tomorrow.js +37 -0
  250. package/dist/dynamic-date-range-options/Tomorrow.js.map +1 -0
  251. package/dist/dynamic-date-range-options/Yesterday.d.ts +17 -0
  252. package/dist/dynamic-date-range-options/Yesterday.js +37 -0
  253. package/dist/dynamic-date-range-options/Yesterday.js.map +1 -0
  254. package/dist/dynamic-date-range-options/toDates.d.ts +7 -0
  255. package/dist/dynamic-date-range-options/toDates.js +41 -0
  256. package/dist/dynamic-date-range-options/toDates.js.map +1 -0
  257. package/dist/features/InputSuggestionsTemplate.js +1 -1
  258. package/dist/features/InputSuggestionsTemplate.js.map +1 -1
  259. package/dist/generated/assets/i18n/messagebundle_ar.json +1 -1
  260. package/dist/generated/assets/i18n/messagebundle_bg.json +1 -1
  261. package/dist/generated/assets/i18n/messagebundle_ca.json +1 -1
  262. package/dist/generated/assets/i18n/messagebundle_cnr.json +1 -1
  263. package/dist/generated/assets/i18n/messagebundle_cs.json +1 -1
  264. package/dist/generated/assets/i18n/messagebundle_cy.json +1 -1
  265. package/dist/generated/assets/i18n/messagebundle_da.json +1 -1
  266. package/dist/generated/assets/i18n/messagebundle_de.json +1 -1
  267. package/dist/generated/assets/i18n/messagebundle_el.json +1 -1
  268. package/dist/generated/assets/i18n/messagebundle_en.json +1 -1
  269. package/dist/generated/assets/i18n/messagebundle_en_GB.json +1 -1
  270. package/dist/generated/assets/i18n/messagebundle_en_US_sappsd.json +1 -1
  271. package/dist/generated/assets/i18n/messagebundle_en_US_saprigi.json +1 -1
  272. package/dist/generated/assets/i18n/messagebundle_en_US_saptrc.json +1 -1
  273. package/dist/generated/assets/i18n/messagebundle_es.json +1 -1
  274. package/dist/generated/assets/i18n/messagebundle_es_MX.json +1 -1
  275. package/dist/generated/assets/i18n/messagebundle_et.json +1 -1
  276. package/dist/generated/assets/i18n/messagebundle_fi.json +1 -1
  277. package/dist/generated/assets/i18n/messagebundle_fr.json +1 -1
  278. package/dist/generated/assets/i18n/messagebundle_fr_CA.json +1 -1
  279. package/dist/generated/assets/i18n/messagebundle_hi.json +1 -1
  280. package/dist/generated/assets/i18n/messagebundle_hr.json +1 -1
  281. package/dist/generated/assets/i18n/messagebundle_hu.json +1 -1
  282. package/dist/generated/assets/i18n/messagebundle_id.json +1 -1
  283. package/dist/generated/assets/i18n/messagebundle_it.json +1 -1
  284. package/dist/generated/assets/i18n/messagebundle_iw.json +1 -1
  285. package/dist/generated/assets/i18n/messagebundle_ja.json +1 -1
  286. package/dist/generated/assets/i18n/messagebundle_kk.json +1 -1
  287. package/dist/generated/assets/i18n/messagebundle_ko.json +1 -1
  288. package/dist/generated/assets/i18n/messagebundle_lt.json +1 -1
  289. package/dist/generated/assets/i18n/messagebundle_lv.json +1 -1
  290. package/dist/generated/assets/i18n/messagebundle_mk.json +1 -1
  291. package/dist/generated/assets/i18n/messagebundle_ms.json +1 -1
  292. package/dist/generated/assets/i18n/messagebundle_nl.json +1 -1
  293. package/dist/generated/assets/i18n/messagebundle_no.json +1 -1
  294. package/dist/generated/assets/i18n/messagebundle_pl.json +1 -1
  295. package/dist/generated/assets/i18n/messagebundle_pt.json +1 -1
  296. package/dist/generated/assets/i18n/messagebundle_pt_PT.json +1 -1
  297. package/dist/generated/assets/i18n/messagebundle_ro.json +1 -1
  298. package/dist/generated/assets/i18n/messagebundle_ru.json +1 -1
  299. package/dist/generated/assets/i18n/messagebundle_sh.json +1 -1
  300. package/dist/generated/assets/i18n/messagebundle_sk.json +1 -1
  301. package/dist/generated/assets/i18n/messagebundle_sl.json +1 -1
  302. package/dist/generated/assets/i18n/messagebundle_sr.json +1 -1
  303. package/dist/generated/assets/i18n/messagebundle_sv.json +1 -1
  304. package/dist/generated/assets/i18n/messagebundle_th.json +1 -1
  305. package/dist/generated/assets/i18n/messagebundle_tr.json +1 -1
  306. package/dist/generated/assets/i18n/messagebundle_uk.json +1 -1
  307. package/dist/generated/assets/i18n/messagebundle_vi.json +1 -1
  308. package/dist/generated/assets/i18n/messagebundle_zh_CN.json +1 -1
  309. package/dist/generated/assets/i18n/messagebundle_zh_TW.json +1 -1
  310. package/dist/generated/assets/themes/sap_fiori_3/parameters-bundle.css.json +1 -1
  311. package/dist/generated/assets/themes/sap_fiori_3_dark/parameters-bundle.css.json +1 -1
  312. package/dist/generated/assets/themes/sap_fiori_3_hcb/parameters-bundle.css.json +1 -1
  313. package/dist/generated/assets/themes/sap_fiori_3_hcw/parameters-bundle.css.json +1 -1
  314. package/dist/generated/assets/themes/sap_horizon/parameters-bundle.css.json +1 -1
  315. package/dist/generated/assets/themes/sap_horizon_dark/parameters-bundle.css.json +1 -1
  316. package/dist/generated/assets/themes/sap_horizon_hcb/parameters-bundle.css.json +1 -1
  317. package/dist/generated/assets/themes/sap_horizon_hcw/parameters-bundle.css.json +1 -1
  318. package/dist/generated/i18n/i18n-defaults.d.ts +14 -1
  319. package/dist/generated/i18n/i18n-defaults.js +14 -1
  320. package/dist/generated/i18n/i18n-defaults.js.map +1 -1
  321. package/dist/generated/json-imports/Themes-node.d.ts +1 -0
  322. package/dist/generated/json-imports/Themes-node.js +25 -0
  323. package/dist/generated/json-imports/Themes-node.js.map +1 -0
  324. package/dist/generated/json-imports/i18n-node.d.ts +1 -0
  325. package/dist/generated/json-imports/i18n-node.js +120 -0
  326. package/dist/generated/json-imports/i18n-node.js.map +1 -0
  327. package/dist/generated/themes/Avatar.css.d.ts +1 -1
  328. package/dist/generated/themes/Avatar.css.js +1 -1
  329. package/dist/generated/themes/Avatar.css.js.map +1 -1
  330. package/dist/generated/themes/AvatarGroup.css.d.ts +1 -1
  331. package/dist/generated/themes/AvatarGroup.css.js +1 -1
  332. package/dist/generated/themes/AvatarGroup.css.js.map +1 -1
  333. package/dist/generated/themes/Bar.css.d.ts +1 -1
  334. package/dist/generated/themes/Bar.css.js +1 -1
  335. package/dist/generated/themes/Bar.css.js.map +1 -1
  336. package/dist/generated/themes/Breadcrumbs.css.d.ts +1 -1
  337. package/dist/generated/themes/Breadcrumbs.css.js +1 -1
  338. package/dist/generated/themes/Breadcrumbs.css.js.map +1 -1
  339. package/dist/generated/themes/BusyIndicator.css.d.ts +1 -1
  340. package/dist/generated/themes/BusyIndicator.css.js +1 -1
  341. package/dist/generated/themes/BusyIndicator.css.js.map +1 -1
  342. package/dist/generated/themes/Button.css.d.ts +1 -1
  343. package/dist/generated/themes/Button.css.js +1 -1
  344. package/dist/generated/themes/Button.css.js.map +1 -1
  345. package/dist/generated/themes/ButtonBadge.css.d.ts +1 -1
  346. package/dist/generated/themes/ButtonBadge.css.js +1 -1
  347. package/dist/generated/themes/ButtonBadge.css.js.map +1 -1
  348. package/dist/generated/themes/Calendar.css.d.ts +1 -1
  349. package/dist/generated/themes/Calendar.css.js +1 -1
  350. package/dist/generated/themes/Calendar.css.js.map +1 -1
  351. package/dist/generated/themes/CalendarHeader.css.d.ts +1 -1
  352. package/dist/generated/themes/CalendarHeader.css.js +1 -1
  353. package/dist/generated/themes/CalendarHeader.css.js.map +1 -1
  354. package/dist/generated/themes/CalendarLegend.css.d.ts +1 -1
  355. package/dist/generated/themes/CalendarLegend.css.js +1 -1
  356. package/dist/generated/themes/CalendarLegend.css.js.map +1 -1
  357. package/dist/generated/themes/CalendarLegendItem.css.d.ts +1 -1
  358. package/dist/generated/themes/CalendarLegendItem.css.js +1 -1
  359. package/dist/generated/themes/CalendarLegendItem.css.js.map +1 -1
  360. package/dist/generated/themes/Card.css.d.ts +1 -1
  361. package/dist/generated/themes/Card.css.js +1 -1
  362. package/dist/generated/themes/Card.css.js.map +1 -1
  363. package/dist/generated/themes/CardHeader.css.d.ts +1 -1
  364. package/dist/generated/themes/CardHeader.css.js +1 -1
  365. package/dist/generated/themes/CardHeader.css.js.map +1 -1
  366. package/dist/generated/themes/Carousel.css.d.ts +1 -1
  367. package/dist/generated/themes/Carousel.css.js +1 -1
  368. package/dist/generated/themes/Carousel.css.js.map +1 -1
  369. package/dist/generated/themes/CheckBox.css.d.ts +1 -1
  370. package/dist/generated/themes/CheckBox.css.js +1 -1
  371. package/dist/generated/themes/CheckBox.css.js.map +1 -1
  372. package/dist/generated/themes/ColorPalette.css.d.ts +1 -1
  373. package/dist/generated/themes/ColorPalette.css.js +1 -1
  374. package/dist/generated/themes/ColorPalette.css.js.map +1 -1
  375. package/dist/generated/themes/ColorPaletteItem.css.d.ts +1 -1
  376. package/dist/generated/themes/ColorPaletteItem.css.js +1 -1
  377. package/dist/generated/themes/ColorPaletteItem.css.js.map +1 -1
  378. package/dist/generated/themes/ColorPalettePopover.css.d.ts +1 -1
  379. package/dist/generated/themes/ColorPalettePopover.css.js +1 -1
  380. package/dist/generated/themes/ColorPalettePopover.css.js.map +1 -1
  381. package/dist/generated/themes/ColorPicker.css.d.ts +1 -1
  382. package/dist/generated/themes/ColorPicker.css.js +1 -1
  383. package/dist/generated/themes/ColorPicker.css.js.map +1 -1
  384. package/dist/generated/themes/ComboBox.css.d.ts +1 -1
  385. package/dist/generated/themes/ComboBox.css.js +1 -1
  386. package/dist/generated/themes/ComboBox.css.js.map +1 -1
  387. package/dist/generated/themes/ComboBoxItem.css.d.ts +1 -1
  388. package/dist/generated/themes/ComboBoxItem.css.js +1 -1
  389. package/dist/generated/themes/ComboBoxItem.css.js.map +1 -1
  390. package/dist/generated/themes/DatePicker.css.d.ts +1 -1
  391. package/dist/generated/themes/DatePicker.css.js +1 -1
  392. package/dist/generated/themes/DatePicker.css.js.map +1 -1
  393. package/dist/generated/themes/DateTimePickerPopover.css.d.ts +1 -1
  394. package/dist/generated/themes/DateTimePickerPopover.css.js +1 -1
  395. package/dist/generated/themes/DateTimePickerPopover.css.js.map +1 -1
  396. package/dist/generated/themes/DayPicker.css.d.ts +1 -1
  397. package/dist/generated/themes/DayPicker.css.js +1 -1
  398. package/dist/generated/themes/DayPicker.css.js.map +1 -1
  399. package/dist/generated/themes/Dialog.css.d.ts +1 -1
  400. package/dist/generated/themes/Dialog.css.js +1 -1
  401. package/dist/generated/themes/Dialog.css.js.map +1 -1
  402. package/dist/generated/themes/DynamicDateRange.css.d.ts +2 -0
  403. package/dist/generated/themes/DynamicDateRange.css.js +8 -0
  404. package/dist/generated/themes/DynamicDateRange.css.js.map +1 -0
  405. package/dist/generated/themes/DynamicDateRangePopover.css.d.ts +2 -0
  406. package/dist/generated/themes/DynamicDateRangePopover.css.js +8 -0
  407. package/dist/generated/themes/DynamicDateRangePopover.css.js.map +1 -0
  408. package/dist/generated/themes/FileUploader.css.d.ts +1 -1
  409. package/dist/generated/themes/FileUploader.css.js +1 -1
  410. package/dist/generated/themes/FileUploader.css.js.map +1 -1
  411. package/dist/generated/themes/Form.css.d.ts +1 -1
  412. package/dist/generated/themes/Form.css.js +1 -1
  413. package/dist/generated/themes/Form.css.js.map +1 -1
  414. package/dist/generated/themes/FormItem.css.d.ts +1 -1
  415. package/dist/generated/themes/FormItem.css.js +1 -1
  416. package/dist/generated/themes/FormItem.css.js.map +1 -1
  417. package/dist/generated/themes/FormItemSpan.css.d.ts +1 -1
  418. package/dist/generated/themes/FormItemSpan.css.js +1 -1
  419. package/dist/generated/themes/FormItemSpan.css.js.map +1 -1
  420. package/dist/generated/themes/GrowingButton.css.d.ts +1 -1
  421. package/dist/generated/themes/GrowingButton.css.js +1 -1
  422. package/dist/generated/themes/GrowingButton.css.js.map +1 -1
  423. package/dist/generated/themes/Icon.css.d.ts +1 -1
  424. package/dist/generated/themes/Icon.css.js +1 -1
  425. package/dist/generated/themes/Icon.css.js.map +1 -1
  426. package/dist/generated/themes/Input.css.d.ts +1 -1
  427. package/dist/generated/themes/Input.css.js +1 -1
  428. package/dist/generated/themes/Input.css.js.map +1 -1
  429. package/dist/generated/themes/InputIcon.css.d.ts +1 -1
  430. package/dist/generated/themes/InputIcon.css.js +1 -1
  431. package/dist/generated/themes/InputIcon.css.js.map +1 -1
  432. package/dist/generated/themes/InputSharedStyles.css.d.ts +1 -1
  433. package/dist/generated/themes/InputSharedStyles.css.js +1 -1
  434. package/dist/generated/themes/InputSharedStyles.css.js.map +1 -1
  435. package/dist/generated/themes/Link.css.d.ts +1 -1
  436. package/dist/generated/themes/Link.css.js +1 -1
  437. package/dist/generated/themes/Link.css.js.map +1 -1
  438. package/dist/generated/themes/List.css.d.ts +1 -1
  439. package/dist/generated/themes/List.css.js +1 -1
  440. package/dist/generated/themes/List.css.js.map +1 -1
  441. package/dist/generated/themes/ListItem.css.d.ts +1 -1
  442. package/dist/generated/themes/ListItem.css.js +1 -1
  443. package/dist/generated/themes/ListItem.css.js.map +1 -1
  444. package/dist/generated/themes/ListItemBase.css.d.ts +1 -1
  445. package/dist/generated/themes/ListItemBase.css.js +1 -1
  446. package/dist/generated/themes/ListItemBase.css.js.map +1 -1
  447. package/dist/generated/themes/ListItemCustom.css.d.ts +1 -1
  448. package/dist/generated/themes/ListItemCustom.css.js +1 -1
  449. package/dist/generated/themes/ListItemCustom.css.js.map +1 -1
  450. package/dist/generated/themes/ListItemGroup.css.d.ts +1 -1
  451. package/dist/generated/themes/ListItemGroup.css.js +1 -1
  452. package/dist/generated/themes/ListItemGroup.css.js.map +1 -1
  453. package/dist/generated/themes/ListItemGroupHeader.css.d.ts +1 -1
  454. package/dist/generated/themes/ListItemGroupHeader.css.js +1 -1
  455. package/dist/generated/themes/ListItemGroupHeader.css.js.map +1 -1
  456. package/dist/generated/themes/ListItemIcon.css.d.ts +1 -1
  457. package/dist/generated/themes/ListItemIcon.css.js +1 -1
  458. package/dist/generated/themes/ListItemIcon.css.js.map +1 -1
  459. package/dist/generated/themes/Menu.css.d.ts +1 -1
  460. package/dist/generated/themes/Menu.css.js +1 -1
  461. package/dist/generated/themes/Menu.css.js.map +1 -1
  462. package/dist/generated/themes/MenuItem.css.d.ts +1 -1
  463. package/dist/generated/themes/MenuItem.css.js +1 -1
  464. package/dist/generated/themes/MenuItem.css.js.map +1 -1
  465. package/dist/generated/themes/MessageStrip.css.d.ts +1 -1
  466. package/dist/generated/themes/MessageStrip.css.js +1 -1
  467. package/dist/generated/themes/MessageStrip.css.js.map +1 -1
  468. package/dist/generated/themes/MonthPicker.css.d.ts +1 -1
  469. package/dist/generated/themes/MonthPicker.css.js +1 -1
  470. package/dist/generated/themes/MonthPicker.css.js.map +1 -1
  471. package/dist/generated/themes/MultiComboBox.css.d.ts +1 -1
  472. package/dist/generated/themes/MultiComboBox.css.js +1 -1
  473. package/dist/generated/themes/MultiComboBox.css.js.map +1 -1
  474. package/dist/generated/themes/MultiComboBoxItem.css.d.ts +1 -1
  475. package/dist/generated/themes/MultiComboBoxItem.css.js +1 -1
  476. package/dist/generated/themes/MultiComboBoxItem.css.js.map +1 -1
  477. package/dist/generated/themes/MultiComboBoxPopover.css.d.ts +1 -1
  478. package/dist/generated/themes/MultiComboBoxPopover.css.js +1 -1
  479. package/dist/generated/themes/MultiComboBoxPopover.css.js.map +1 -1
  480. package/dist/generated/themes/MultiInput.css.d.ts +1 -1
  481. package/dist/generated/themes/MultiInput.css.js +1 -1
  482. package/dist/generated/themes/MultiInput.css.js.map +1 -1
  483. package/dist/generated/themes/OptionBase.css.d.ts +1 -1
  484. package/dist/generated/themes/OptionBase.css.js +1 -1
  485. package/dist/generated/themes/OptionBase.css.js.map +1 -1
  486. package/dist/generated/themes/Panel.css.d.ts +1 -1
  487. package/dist/generated/themes/Panel.css.js +1 -1
  488. package/dist/generated/themes/Panel.css.js.map +1 -1
  489. package/dist/generated/themes/Popover.css.d.ts +1 -1
  490. package/dist/generated/themes/Popover.css.js +1 -1
  491. package/dist/generated/themes/Popover.css.js.map +1 -1
  492. package/dist/generated/themes/PopupsCommon.css.d.ts +1 -1
  493. package/dist/generated/themes/PopupsCommon.css.js +1 -1
  494. package/dist/generated/themes/PopupsCommon.css.js.map +1 -1
  495. package/dist/generated/themes/ProgressIndicator.css.d.ts +1 -1
  496. package/dist/generated/themes/ProgressIndicator.css.js +1 -1
  497. package/dist/generated/themes/ProgressIndicator.css.js.map +1 -1
  498. package/dist/generated/themes/RadioButton.css.d.ts +1 -1
  499. package/dist/generated/themes/RadioButton.css.js +1 -1
  500. package/dist/generated/themes/RadioButton.css.js.map +1 -1
  501. package/dist/generated/themes/RangeSlider.css.d.ts +1 -1
  502. package/dist/generated/themes/RangeSlider.css.js +1 -1
  503. package/dist/generated/themes/RangeSlider.css.js.map +1 -1
  504. package/dist/generated/themes/RatingIndicator.css.d.ts +1 -1
  505. package/dist/generated/themes/RatingIndicator.css.js +1 -1
  506. package/dist/generated/themes/RatingIndicator.css.js.map +1 -1
  507. package/dist/generated/themes/ResponsivePopover.css.d.ts +1 -1
  508. package/dist/generated/themes/ResponsivePopover.css.js +1 -1
  509. package/dist/generated/themes/ResponsivePopover.css.js.map +1 -1
  510. package/dist/generated/themes/ResponsivePopoverCommon.css.d.ts +1 -1
  511. package/dist/generated/themes/ResponsivePopoverCommon.css.js +1 -1
  512. package/dist/generated/themes/ResponsivePopoverCommon.css.js.map +1 -1
  513. package/dist/generated/themes/SegmentedButton.css.d.ts +1 -1
  514. package/dist/generated/themes/SegmentedButton.css.js +1 -1
  515. package/dist/generated/themes/SegmentedButton.css.js.map +1 -1
  516. package/dist/generated/themes/SegmentedButtonItem.css.d.ts +1 -1
  517. package/dist/generated/themes/SegmentedButtonItem.css.js +1 -1
  518. package/dist/generated/themes/SegmentedButtonItem.css.js.map +1 -1
  519. package/dist/generated/themes/Select.css.d.ts +1 -1
  520. package/dist/generated/themes/Select.css.js +1 -1
  521. package/dist/generated/themes/Select.css.js.map +1 -1
  522. package/dist/generated/themes/SliderBase.css.d.ts +1 -1
  523. package/dist/generated/themes/SliderBase.css.js +1 -1
  524. package/dist/generated/themes/SliderBase.css.js.map +1 -1
  525. package/dist/generated/themes/SplitButton.css.d.ts +1 -1
  526. package/dist/generated/themes/SplitButton.css.js +1 -1
  527. package/dist/generated/themes/SplitButton.css.js.map +1 -1
  528. package/dist/generated/themes/StepInput.css.d.ts +1 -1
  529. package/dist/generated/themes/StepInput.css.js +1 -1
  530. package/dist/generated/themes/StepInput.css.js.map +1 -1
  531. package/dist/generated/themes/SuggestionItem.css.d.ts +1 -1
  532. package/dist/generated/themes/SuggestionItem.css.js +1 -1
  533. package/dist/generated/themes/SuggestionItem.css.js.map +1 -1
  534. package/dist/generated/themes/SuggestionItemCustom.css.d.ts +1 -1
  535. package/dist/generated/themes/SuggestionItemCustom.css.js +1 -1
  536. package/dist/generated/themes/SuggestionItemCustom.css.js.map +1 -1
  537. package/dist/generated/themes/Switch.css.d.ts +1 -1
  538. package/dist/generated/themes/Switch.css.js +1 -1
  539. package/dist/generated/themes/Switch.css.js.map +1 -1
  540. package/dist/generated/themes/TabContainer.css.d.ts +1 -1
  541. package/dist/generated/themes/TabContainer.css.js +1 -1
  542. package/dist/generated/themes/TabContainer.css.js.map +1 -1
  543. package/dist/generated/themes/TabInOverflow.css.d.ts +1 -1
  544. package/dist/generated/themes/TabInOverflow.css.js +1 -1
  545. package/dist/generated/themes/TabInOverflow.css.js.map +1 -1
  546. package/dist/generated/themes/TabInStrip.css.d.ts +1 -1
  547. package/dist/generated/themes/TabInStrip.css.js +1 -1
  548. package/dist/generated/themes/TabInStrip.css.js.map +1 -1
  549. package/dist/generated/themes/TabSemanticIcon.css.d.ts +1 -1
  550. package/dist/generated/themes/TabSemanticIcon.css.js +1 -1
  551. package/dist/generated/themes/TabSemanticIcon.css.js.map +1 -1
  552. package/dist/generated/themes/TabSeparatorInOverflow.css.d.ts +1 -1
  553. package/dist/generated/themes/TabSeparatorInOverflow.css.js +1 -1
  554. package/dist/generated/themes/TabSeparatorInOverflow.css.js.map +1 -1
  555. package/dist/generated/themes/TableCellBase.css.d.ts +1 -1
  556. package/dist/generated/themes/TableCellBase.css.js +1 -1
  557. package/dist/generated/themes/TableCellBase.css.js.map +1 -1
  558. package/dist/generated/themes/TableHeaderRow.css.d.ts +1 -1
  559. package/dist/generated/themes/TableHeaderRow.css.js +1 -1
  560. package/dist/generated/themes/TableHeaderRow.css.js.map +1 -1
  561. package/dist/generated/themes/TableRow.css.d.ts +1 -1
  562. package/dist/generated/themes/TableRow.css.js +1 -1
  563. package/dist/generated/themes/TableRow.css.js.map +1 -1
  564. package/dist/generated/themes/TableRowActionBase.css.d.ts +1 -1
  565. package/dist/generated/themes/TableRowActionBase.css.js +1 -1
  566. package/dist/generated/themes/TableRowActionBase.css.js.map +1 -1
  567. package/dist/generated/themes/TableRowBase.css.d.ts +1 -1
  568. package/dist/generated/themes/TableRowBase.css.js +1 -1
  569. package/dist/generated/themes/TableRowBase.css.js.map +1 -1
  570. package/dist/generated/themes/Tag.css.d.ts +1 -1
  571. package/dist/generated/themes/Tag.css.js +1 -1
  572. package/dist/generated/themes/Tag.css.js.map +1 -1
  573. package/dist/generated/themes/Text.css.d.ts +1 -1
  574. package/dist/generated/themes/Text.css.js +1 -1
  575. package/dist/generated/themes/Text.css.js.map +1 -1
  576. package/dist/generated/themes/TextArea.css.d.ts +1 -1
  577. package/dist/generated/themes/TextArea.css.js +1 -1
  578. package/dist/generated/themes/TextArea.css.js.map +1 -1
  579. package/dist/generated/themes/TimePicker.css.d.ts +1 -1
  580. package/dist/generated/themes/TimePicker.css.js +1 -1
  581. package/dist/generated/themes/TimePicker.css.js.map +1 -1
  582. package/dist/generated/themes/Toast.css.d.ts +1 -1
  583. package/dist/generated/themes/Toast.css.js +1 -1
  584. package/dist/generated/themes/Toast.css.js.map +1 -1
  585. package/dist/generated/themes/ToggleButton.css.d.ts +1 -1
  586. package/dist/generated/themes/ToggleButton.css.js +1 -1
  587. package/dist/generated/themes/ToggleButton.css.js.map +1 -1
  588. package/dist/generated/themes/Token.css.d.ts +1 -1
  589. package/dist/generated/themes/Token.css.js +1 -1
  590. package/dist/generated/themes/Token.css.js.map +1 -1
  591. package/dist/generated/themes/Tokenizer.css.d.ts +1 -1
  592. package/dist/generated/themes/Tokenizer.css.js +1 -1
  593. package/dist/generated/themes/Tokenizer.css.js.map +1 -1
  594. package/dist/generated/themes/TokenizerPopover.css.d.ts +1 -1
  595. package/dist/generated/themes/TokenizerPopover.css.js +1 -1
  596. package/dist/generated/themes/TokenizerPopover.css.js.map +1 -1
  597. package/dist/generated/themes/Toolbar.css.d.ts +1 -1
  598. package/dist/generated/themes/Toolbar.css.js +1 -1
  599. package/dist/generated/themes/Toolbar.css.js.map +1 -1
  600. package/dist/generated/themes/ToolbarPopover.css.d.ts +1 -1
  601. package/dist/generated/themes/ToolbarPopover.css.js +1 -1
  602. package/dist/generated/themes/ToolbarPopover.css.js.map +1 -1
  603. package/dist/generated/themes/ToolbarSelect.css.d.ts +1 -1
  604. package/dist/generated/themes/ToolbarSelect.css.js +1 -1
  605. package/dist/generated/themes/ToolbarSelect.css.js.map +1 -1
  606. package/dist/generated/themes/ToolbarSeparator.css.d.ts +2 -0
  607. package/dist/generated/themes/ToolbarSeparator.css.js +8 -0
  608. package/dist/generated/themes/ToolbarSeparator.css.js.map +1 -0
  609. package/dist/generated/themes/TreeItem.css.d.ts +1 -1
  610. package/dist/generated/themes/TreeItem.css.js +1 -1
  611. package/dist/generated/themes/TreeItem.css.js.map +1 -1
  612. package/dist/generated/themes/ValueStateMessage.css.d.ts +1 -1
  613. package/dist/generated/themes/ValueStateMessage.css.js +1 -1
  614. package/dist/generated/themes/ValueStateMessage.css.js.map +1 -1
  615. package/dist/generated/themes/YearPicker.css.d.ts +1 -1
  616. package/dist/generated/themes/YearPicker.css.js +1 -1
  617. package/dist/generated/themes/YearPicker.css.js.map +1 -1
  618. package/dist/generated/themes/YearRangePicker.css.d.ts +2 -0
  619. package/dist/generated/themes/YearRangePicker.css.js +8 -0
  620. package/dist/generated/themes/YearRangePicker.css.js.map +1 -0
  621. package/dist/generated/themes/sap_fiori_3/parameters-bundle.css.d.ts +1 -1
  622. package/dist/generated/themes/sap_fiori_3/parameters-bundle.css.js +1 -1
  623. package/dist/generated/themes/sap_fiori_3/parameters-bundle.css.js.map +1 -1
  624. package/dist/generated/themes/sap_fiori_3_dark/parameters-bundle.css.d.ts +1 -1
  625. package/dist/generated/themes/sap_fiori_3_dark/parameters-bundle.css.js +1 -1
  626. package/dist/generated/themes/sap_fiori_3_dark/parameters-bundle.css.js.map +1 -1
  627. package/dist/generated/themes/sap_fiori_3_hcb/parameters-bundle.css.d.ts +1 -1
  628. package/dist/generated/themes/sap_fiori_3_hcb/parameters-bundle.css.js +1 -1
  629. package/dist/generated/themes/sap_fiori_3_hcb/parameters-bundle.css.js.map +1 -1
  630. package/dist/generated/themes/sap_fiori_3_hcw/parameters-bundle.css.d.ts +1 -1
  631. package/dist/generated/themes/sap_fiori_3_hcw/parameters-bundle.css.js +1 -1
  632. package/dist/generated/themes/sap_fiori_3_hcw/parameters-bundle.css.js.map +1 -1
  633. package/dist/generated/themes/sap_horizon/parameters-bundle.css.d.ts +1 -1
  634. package/dist/generated/themes/sap_horizon/parameters-bundle.css.js +1 -1
  635. package/dist/generated/themes/sap_horizon/parameters-bundle.css.js.map +1 -1
  636. package/dist/generated/themes/sap_horizon_dark/parameters-bundle.css.d.ts +1 -1
  637. package/dist/generated/themes/sap_horizon_dark/parameters-bundle.css.js +1 -1
  638. package/dist/generated/themes/sap_horizon_dark/parameters-bundle.css.js.map +1 -1
  639. package/dist/generated/themes/sap_horizon_hcb/parameters-bundle.css.d.ts +1 -1
  640. package/dist/generated/themes/sap_horizon_hcb/parameters-bundle.css.js +1 -1
  641. package/dist/generated/themes/sap_horizon_hcb/parameters-bundle.css.js.map +1 -1
  642. package/dist/generated/themes/sap_horizon_hcw/parameters-bundle.css.d.ts +1 -1
  643. package/dist/generated/themes/sap_horizon_hcw/parameters-bundle.css.js +1 -1
  644. package/dist/generated/themes/sap_horizon_hcw/parameters-bundle.css.js.map +1 -1
  645. package/dist/popup-utils/PopoverRegistry.js +14 -2
  646. package/dist/popup-utils/PopoverRegistry.js.map +1 -1
  647. package/dist/types/TableSelectionBehavior.d.ts +22 -0
  648. package/dist/types/TableSelectionBehavior.js +24 -0
  649. package/dist/types/TableSelectionBehavior.js.map +1 -0
  650. package/dist/vscode.html-custom-data.json +42 -5
  651. package/dist/web-types.json +143 -13
  652. package/package.json +9 -9
  653. package/src/CalendarHeaderTemplate.tsx +6 -3
  654. package/src/CalendarTemplate.tsx +21 -0
  655. package/src/CheckBoxTemplate.tsx +1 -0
  656. package/src/ComboBoxPopoverTemplate.tsx +1 -1
  657. package/src/DynamicDateRangeInputTemplate.tsx +38 -0
  658. package/src/DynamicDateRangePopoverTemplate.tsx +75 -0
  659. package/src/DynamicDateRangeTemplate.tsx +11 -0
  660. package/src/TokenizerPopoverTemplate.tsx +2 -2
  661. package/src/ToolbarButtonTemplate.tsx +2 -3
  662. package/src/ToolbarSelectTemplate.tsx +1 -1
  663. package/src/ToolbarTemplate.tsx +43 -6
  664. package/src/YearRangePickerTemplate.tsx +42 -0
  665. package/src/dynamic-date-range-options/DateRangeTemplate.tsx +22 -0
  666. package/src/dynamic-date-range-options/SingleDateTemplate.tsx +13 -0
  667. package/src/features/InputSuggestionsTemplate.tsx +1 -1
  668. package/src/i18n/messagebundle.properties +40 -1
  669. package/src/i18n/messagebundle_ar.properties +6 -0
  670. package/src/i18n/messagebundle_bg.properties +6 -0
  671. package/src/i18n/messagebundle_ca.properties +6 -0
  672. package/src/i18n/messagebundle_cnr.properties +6 -0
  673. package/src/i18n/messagebundle_cs.properties +6 -0
  674. package/src/i18n/messagebundle_cy.properties +6 -0
  675. package/src/i18n/messagebundle_da.properties +6 -0
  676. package/src/i18n/messagebundle_de.properties +7 -1
  677. package/src/i18n/messagebundle_el.properties +6 -0
  678. package/src/i18n/messagebundle_en.properties +4 -217
  679. package/src/i18n/messagebundle_en_GB.properties +6 -0
  680. package/src/i18n/messagebundle_en_US_sappsd.properties +6 -0
  681. package/src/i18n/messagebundle_en_US_saprigi.properties +4 -0
  682. package/src/i18n/messagebundle_en_US_saptrc.properties +6 -0
  683. package/src/i18n/messagebundle_es.properties +6 -0
  684. package/src/i18n/messagebundle_es_MX.properties +6 -0
  685. package/src/i18n/messagebundle_et.properties +6 -0
  686. package/src/i18n/messagebundle_fi.properties +6 -0
  687. package/src/i18n/messagebundle_fr.properties +6 -0
  688. package/src/i18n/messagebundle_fr_CA.properties +6 -0
  689. package/src/i18n/messagebundle_hi.properties +6 -0
  690. package/src/i18n/messagebundle_hr.properties +6 -0
  691. package/src/i18n/messagebundle_hu.properties +6 -0
  692. package/src/i18n/messagebundle_id.properties +6 -0
  693. package/src/i18n/messagebundle_it.properties +10 -4
  694. package/src/i18n/messagebundle_iw.properties +6 -0
  695. package/src/i18n/messagebundle_ja.properties +6 -0
  696. package/src/i18n/messagebundle_kk.properties +6 -0
  697. package/src/i18n/messagebundle_ko.properties +6 -0
  698. package/src/i18n/messagebundle_lt.properties +6 -0
  699. package/src/i18n/messagebundle_lv.properties +6 -0
  700. package/src/i18n/messagebundle_mk.properties +6 -0
  701. package/src/i18n/messagebundle_ms.properties +6 -0
  702. package/src/i18n/messagebundle_nl.properties +6 -0
  703. package/src/i18n/messagebundle_no.properties +6 -0
  704. package/src/i18n/messagebundle_pl.properties +6 -0
  705. package/src/i18n/messagebundle_pt.properties +6 -0
  706. package/src/i18n/messagebundle_pt_PT.properties +6 -0
  707. package/src/i18n/messagebundle_ro.properties +6 -0
  708. package/src/i18n/messagebundle_ru.properties +6 -0
  709. package/src/i18n/messagebundle_sh.properties +6 -0
  710. package/src/i18n/messagebundle_sk.properties +6 -0
  711. package/src/i18n/messagebundle_sl.properties +6 -0
  712. package/src/i18n/messagebundle_sr.properties +6 -0
  713. package/src/i18n/messagebundle_sv.properties +6 -0
  714. package/src/i18n/messagebundle_th.properties +6 -0
  715. package/src/i18n/messagebundle_tr.properties +6 -0
  716. package/src/i18n/messagebundle_uk.properties +7 -1
  717. package/src/i18n/messagebundle_vi.properties +6 -0
  718. package/src/i18n/messagebundle_zh_CN.properties +6 -0
  719. package/src/i18n/messagebundle_zh_TW.properties +6 -0
  720. package/src/themes/Avatar.css +1 -1
  721. package/src/themes/AvatarGroup.css +1 -0
  722. package/src/themes/CalendarHeader.css +0 -10
  723. package/src/themes/CheckBox.css +0 -9
  724. package/src/themes/DatePicker.css +0 -1
  725. package/src/themes/DynamicDateRange.css +7 -0
  726. package/src/themes/DynamicDateRangePopover.css +89 -0
  727. package/src/themes/Toolbar.css +0 -7
  728. package/src/themes/ToolbarPopover.css +5 -0
  729. package/src/themes/ToolbarSelect.css +3 -3
  730. package/src/themes/ToolbarSeparator.css +6 -0
  731. package/src/themes/YearRangePicker.css +118 -0
  732. package/src/themes/base/Avatar-parameters.css +1 -0
  733. package/src/themes/base/AvatarGroup-parameters.css +1 -0
  734. package/src/themes/base/DynamicDateRange-parameters.css +3 -0
  735. package/src/themes/base/rtl-parameters.css +1 -1
  736. package/src/themes/sap_horizon/parameters-bundle.css +1 -0
  737. package/cypress/specs/Avatar.cy.tsx +0 -55
  738. package/cypress/specs/AvatarGroup.cy.tsx +0 -66
  739. package/cypress/specs/Breadcrumbs.mobile.cy.tsx +0 -53
  740. package/cypress/specs/Button.cy.tsx +0 -434
  741. package/cypress/specs/Calendar.cy.tsx +0 -710
  742. package/cypress/specs/CalendarLegend.cy.tsx +0 -77
  743. package/cypress/specs/Card.cy.tsx +0 -338
  744. package/cypress/specs/Carousel.cy.tsx +0 -581
  745. package/cypress/specs/Carousel.mobile.cy.tsx +0 -67
  746. package/cypress/specs/ColorPalette.cy.tsx +0 -213
  747. package/cypress/specs/ColorPicker.cy.tsx +0 -332
  748. package/cypress/specs/ComboBox.cy.tsx +0 -198
  749. package/cypress/specs/DateControlsWithTimezone.cy.tsx +0 -75
  750. package/cypress/specs/DatePicker.cy.tsx +0 -1699
  751. package/cypress/specs/DateRangePicker.cy.tsx +0 -594
  752. package/cypress/specs/DateTimePicker.cy.tsx +0 -568
  753. package/cypress/specs/DayPicker.cy.tsx +0 -81
  754. package/cypress/specs/Dialog.cy.tsx +0 -133
  755. package/cypress/specs/ExpandableText.cy.tsx +0 -393
  756. package/cypress/specs/F6.cy.tsx +0 -977
  757. package/cypress/specs/Form.cy.tsx +0 -1022
  758. package/cypress/specs/FormSupport.cy.tsx +0 -975
  759. package/cypress/specs/Input.cy.tsx +0 -978
  760. package/cypress/specs/Label.cy.tsx +0 -144
  761. package/cypress/specs/Link.cy.tsx +0 -216
  762. package/cypress/specs/List.cy.tsx +0 -309
  763. package/cypress/specs/List.mobile.cy.tsx +0 -31
  764. package/cypress/specs/LitKeyFunction.cy.tsx +0 -58
  765. package/cypress/specs/Menu.cy.tsx +0 -617
  766. package/cypress/specs/MessageStrip.cy.tsx +0 -171
  767. package/cypress/specs/MultiComboBox.cy.tsx +0 -189
  768. package/cypress/specs/MultiInput.cy.tsx +0 -72
  769. package/cypress/specs/Popover.cy.tsx +0 -419
  770. package/cypress/specs/RTL.cy.tsx +0 -18
  771. package/cypress/specs/RadioButton.cy.tsx +0 -499
  772. package/cypress/specs/RangeSlider.cy.tsx +0 -52
  773. package/cypress/specs/RatingIndicator.cy.tsx +0 -279
  774. package/cypress/specs/ResponsivePopover.mobile.cy.tsx +0 -112
  775. package/cypress/specs/SegmentedButton.cy.tsx +0 -215
  776. package/cypress/specs/Select.cy.tsx +0 -241
  777. package/cypress/specs/Slider.cy.tsx +0 -87
  778. package/cypress/specs/StepInput.cy.tsx +0 -32
  779. package/cypress/specs/TabContainer.cy.tsx +0 -78
  780. package/cypress/specs/Table.cy.tsx +0 -1025
  781. package/cypress/specs/TableDragAndDrop.cy.tsx +0 -236
  782. package/cypress/specs/TableGrowing.cy.tsx +0 -336
  783. package/cypress/specs/TableLoading.cy.tsx +0 -48
  784. package/cypress/specs/TableNavigation.cy.tsx +0 -223
  785. package/cypress/specs/TableNavigationFixedHeader.cy.tsx +0 -199
  786. package/cypress/specs/TableRowActions.cy.tsx +0 -239
  787. package/cypress/specs/TableSelection.cy.tsx +0 -275
  788. package/cypress/specs/TableSelections.cy.tsx +0 -332
  789. package/cypress/specs/TableUtils.cy.tsx +0 -63
  790. package/cypress/specs/TableVirtualizer.cy.tsx +0 -243
  791. package/cypress/specs/Tag.cy.tsx +0 -120
  792. package/cypress/specs/Text.cy.tsx +0 -46
  793. package/cypress/specs/TextArea.cy.tsx +0 -735
  794. package/cypress/specs/Title.cy.tsx +0 -36
  795. package/cypress/specs/Toast.cy.tsx +0 -45
  796. package/cypress/specs/Tokenizer.cy.tsx +0 -209
  797. package/cypress/specs/Toolbar.cy.tsx +0 -194
  798. package/cypress/specs/Tree.cy.tsx +0 -72
  799. package/cypress/specs/base/AccessibilityTextsHelper.cy.tsx +0 -468
  800. package/cypress/specs/base/Events.cy.tsx +0 -301
  801. package/cypress/specs/base/IconCollection.cy.tsx +0 -58
  802. package/cypress/specs/base/IgnoreCustomElements.cy.tsx +0 -38
  803. package/cypress/specs/base/InvisibleMessage.cy.tsx +0 -31
  804. package/cypress/specs/base/Tooltips.cy.tsx +0 -64
  805. package/cypress/specs/base/css/redfish.custom.theme.css +0 -13
  806. package/cypress/support/commands/Calendar.commands.ts +0 -21
  807. package/cypress/support/commands/ColorPalette.commands.ts +0 -86
  808. package/cypress/support/commands/ColorPicker.commands.ts +0 -38
  809. package/cypress/support/commands/DatePicker.commands.ts +0 -218
  810. package/cypress/support/commands/DateTimePicker.commands.ts +0 -105
  811. package/cypress/support/commands/Dialog.commands.ts +0 -16
  812. package/cypress/support/commands/Menu.commands.ts +0 -52
  813. package/cypress/support/commands/Popover.commands.ts +0 -16
  814. package/cypress/support/commands/ResponsivePopover.commands.ts +0 -42
  815. package/cypress/support/commands/SegmentedButton.commands.ts +0 -32
  816. package/cypress/support/commands/utils/popup-open.ts +0 -35
  817. package/cypress/support/commands.ts +0 -113
  818. package/cypress/support/component-index.html +0 -12
  819. package/cypress/support/component.ts +0 -20
  820. package/cypress/tsconfig.json +0 -42
  821. package/dist/ToolbarPopoverButtonTemplate.d.ts +0 -2
  822. package/dist/ToolbarPopoverButtonTemplate.js +0 -6
  823. package/dist/ToolbarPopoverButtonTemplate.js.map +0 -1
  824. package/dist/ToolbarPopoverSelectTemplate.d.ts +0 -2
  825. package/dist/ToolbarPopoverSelectTemplate.js +0 -7
  826. package/dist/ToolbarPopoverSelectTemplate.js.map +0 -1
  827. package/dist/ToolbarPopoverSeparatorTemplate.d.ts +0 -2
  828. package/dist/ToolbarPopoverSeparatorTemplate.js +0 -5
  829. package/dist/ToolbarPopoverSeparatorTemplate.js.map +0 -1
  830. package/dist/ToolbarPopoverTemplate.d.ts +0 -2
  831. package/dist/ToolbarPopoverTemplate.js +0 -9
  832. package/dist/ToolbarPopoverTemplate.js.map +0 -1
  833. package/dist/ToolbarRegistry.d.ts +0 -5
  834. package/dist/ToolbarRegistry.js +0 -16
  835. package/dist/ToolbarRegistry.js.map +0 -1
  836. package/dist/ToolbarSpacerTemplate.d.ts +0 -2
  837. package/dist/ToolbarSpacerTemplate.js +0 -5
  838. package/dist/ToolbarSpacerTemplate.js.map +0 -1
  839. package/src/ToolbarPopoverButtonTemplate.tsx +0 -24
  840. package/src/ToolbarPopoverSelectTemplate.tsx +0 -29
  841. package/src/ToolbarPopoverSeparatorTemplate.tsx +0 -10
  842. package/src/ToolbarPopoverTemplate.tsx +0 -25
  843. package/src/ToolbarSpacerTemplate.tsx +0 -12
@@ -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-strict.js\";\nimport getEffectiveScrollbarStyle from \"@ui5/webcomponents-base/dist/util/getEffectiveScrollbarStyle.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport jsxRenderer from \"@ui5/webcomponents-base/dist/renderer/JsxRenderer.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/AccessibilityTextsHelper.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 type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport type { I18nText } from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport i18n from \"@ui5/webcomponents-base/dist/decorators/i18n.js\";\nimport DOMReferenceConverter from \"@ui5/webcomponents-base/dist/converters/DOMReference.js\";\nimport type { UI5CustomEvent } from \"@ui5/webcomponents-base\";\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 type ResponsivePopover from \"./ResponsivePopover.js\";\nimport type List from \"./List.js\";\nimport type { ListItemDeleteEventDetail } from \"./List.js\";\nimport ListSelectionMode from \"./types/ListSelectionMode.js\";\nimport type Token from \"./Token.js\";\nimport type { IToken } from \"./MultiInput.js\";\nimport type { TokenDeleteEventDetail } from \"./Token.js\";\nimport TokenizerTemplate from \"./TokenizerTemplate.js\";\nimport type Button from \"./Button.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\tTOKENIZER_CLEAR_ALL,\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 type 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 UI5Element\n * @public\n * @since 2.0.0\n * @experimental This component is availabe since 2.0 under an experimental flag and its API and behaviour are subject to change.\n */\n@customElement({\n\ttag: \"ui5-tokenizer\",\n\tlanguageAware: true,\n\trenderer: jsxRenderer,\n\ttemplate: TokenizerTemplate,\n\tstyles: [\n\t\tTokenizerCss,\n\t\tResponsivePopoverCommonCss,\n\t\tSuggestionsCss,\n\t\tTokenizerPopoverCss,\n\t\tgetEffectiveScrollbarStyle(),\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(\"token-delete\", {\n\tbubbles: true,\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(\"selection-change\", {\n\tbubbles: true,\n})\n\n/**\n * Fired when nMore link is pressed.\n * @private\n */\n@event(\"show-more-items-press\", {\n\tbubbles: true,\n})\n\n/**\n * Fired before nMore Popover is opened.\n * @private\n */\n@event(\"before-more-popover-open\", {\n\tbubbles: true,\n})\n\nclass Tokenizer extends UI5Element {\n\teventDetails!: {\n\t\t\"token-delete\": TokenizerTokenDeleteEventDetail,\n\t\t\"selection-change\": TokenizerSelectionChangeEventDetail,\n\t\t\"show-more-items-press\": void,\n\t\t\"before-more-popover-open\": void,\n\t};\n\n\t/**\n\t * Defines whether the component is read-only.\n\t *\n\t * **Note:** A read-only component is not editable,\n\t * but still provides visual feedback upon user interaction.\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\treadonly = false;\n\n\t/**\n\t * Defines whether tokens are displayed on multiple lines.\n\t *\n\t * **Note:** The `multiLine` property is in an experimental state and is a subject to change.\n\t * @default false\n\t * @since 2.5.0\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\tmultiLine = false;\n\n\t/**\n\t * Defines whether \"Clear All\" button is present. Ensure `multiLine` is enabled, otherwise `showClearAll` will have no effect.\n\t *\n\t * **Note:** The `showClearAll` property is in an experimental state and is a subject to change.\n\t * @default false\n\t * @since 2.5.0\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\tshowClearAll = false;\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 = false;\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()\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()\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 = false;\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 = false\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 undefined\n\t */\n\t@property({\n\t\tconverter: DOMReferenceConverter,\n\t})\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({ type: Number })\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 = false;\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 = false;\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 = false;\n\n\t@property({ type: Number })\n\t_nMoreCount = 0;\n\n\t@property({ type: Number })\n\t_tokensCount = 0;\n\n\t/**\n\t * Defines the tokens to be displayed.\n\t * @public\n\t */\n\t@slot({\n\t\ttype: HTMLElement,\n\t\t\"default\": true,\n\t\tindividualSlots: true,\n\t})\n\ttokens!: Array<Token>;\n\n\t@i18n(\"@ui5/webcomponents\")\n\tstatic i18nBundle: I18nBundle;\n\t_resizeHandler: ResizeObserverCallback;\n\t_itemNav: ItemNavigation;\n\t_scrollEnablement: ScrollEnablement | undefined;\n\t_expandedScrollWidth?: number;\n\t_tokenDeleting = false;\n\t_preventCollapse = false;\n\t_skipTabIndex = false;\n\t_previousToken: Token | null = 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._deletedDialogItems = [];\n\t}\n\n\thandleClearAll() {\n\t\tthis.fireDecoratorEvent(\"token-delete\", { tokens: this._tokens });\n\t}\n\n\tonBeforeRendering() {\n\t\tif (!this.multiLine) {\n\t\t\tthis._scrollEnablement = new ScrollEnablement(this);\n\t\t}\n\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) || this.multiLine;\n\t\t\ttoken.readonly = this.readonly;\n\t\t});\n\t}\n\n\tonEnterDOM() {\n\t\tResizeHandler.register(this, this._resizeHandler);\n\t}\n\n\tonExitDOM() {\n\t\tResizeHandler.deregister(this, 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.fireDecoratorEvent(\"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(e: CustomEvent) {\n\t\tconst tokens = this._tokens;\n\t\tconst firstToken = tokens[0];\n\t\tconst targetToken = e.target as Token;\n\n\t\tif (tokens.length === 1 && firstToken.isTruncatable) {\n\t\t\tthis.open = firstToken.selected;\n\t\t}\n\n\t\tif (this.multiLine && targetToken.isTruncatable) {\n\t\t\tthis.opener = targetToken;\n\t\t\tthis.open = targetToken.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\tif (this._scrollEnablement) {\n\t\t\tthis._scrollEnablement.scrollContainer = this.contentDom;\n\t\t}\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.fireDecoratorEvent(\"token-delete\", { tokens: [token] });\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.fireDecoratorEvent(\"token-delete\", { tokens: this._selectedTokens });\n\t\t} else {\n\t\t\tthis.fireDecoratorEvent(\"token-delete\", { tokens: [token] });\n\t\t}\n\t}\n\n\tasync itemDelete(e: CustomEvent<ListItemDeleteEventDetail>) {\n\t\tconst token = this.getTokenByRefId(e.detail.item.getAttribute(\"data-ui5-token-ref-id\")!);\n\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.fireDecoratorEvent(\"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\tthis._deletedDialogItems.push(token);\n\t\t\t} else {\n\t\t\t\tthis.fireDecoratorEvent(\"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\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.fireDecoratorEvent(\"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: UI5CustomEvent<Button, \"click\">) {\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.fireDecoratorEvent(\"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.fireDecoratorEvent(\"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.fireDecoratorEvent(\"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.fireDecoratorEvent(\"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.fireDecoratorEvent(\"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.fireDecoratorEvent(\"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.fireDecoratorEvent(\"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.fireDecoratorEvent(\"selection-change\", {\n\t\t\t\ttokens: this._selectedTokens,\n\t\t\t});\n\t\t}\n\t}\n\n\tget hasTokens() {\n\t\treturn this._tokens.length > 0;\n\t}\n\n\tget showEffectiveClearAll() {\n\t\treturn this.showClearAll && this.hasTokens && this.multiLine && !this.readonly;\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\t// return this.opener ? this : this.opener;\n\t\tif (this.opener) {\n\t\t\treturn this.opener;\n\t\t}\n\t\treturn this;\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 _clearAllText() {\n\t\treturn Tokenizer.i18nBundle.getText(TOKENIZER_CLEAR_ALL);\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\tgetPopover() {\n\t\treturn this.shadowRoot!.querySelector<ResponsivePopover>(\"[ui5-responsive-popover]\")!;\n\t}\n\n\tgetTokenByRefId(refId: string) {\n\t\treturn this._tokens.find(token => token._id === refId)!;\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"]}
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-strict.js\";\nimport getEffectiveScrollbarStyle from \"@ui5/webcomponents-base/dist/util/getEffectiveScrollbarStyle.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport jsxRenderer from \"@ui5/webcomponents-base/dist/renderer/JsxRenderer.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/AccessibilityTextsHelper.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 type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport type { I18nText } from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport i18n from \"@ui5/webcomponents-base/dist/decorators/i18n.js\";\nimport DOMReferenceConverter from \"@ui5/webcomponents-base/dist/converters/DOMReference.js\";\nimport type { UI5CustomEvent } from \"@ui5/webcomponents-base\";\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 type ResponsivePopover from \"./ResponsivePopover.js\";\nimport type List from \"./List.js\";\nimport type { ListItemDeleteEventDetail } from \"./List.js\";\nimport ListSelectionMode from \"./types/ListSelectionMode.js\";\nimport type Token from \"./Token.js\";\nimport type { IToken } from \"./MultiInput.js\";\nimport type { TokenDeleteEventDetail } from \"./Token.js\";\nimport TokenizerTemplate from \"./TokenizerTemplate.js\";\nimport type Button from \"./Button.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\tTOKENIZER_CLEAR_ALL,\n\tTOKENIZER_DIALOG_OK_BUTTON,\n\tTOKENIZER_DIALOG_CANCEL_BUTTON,\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 type 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 UI5Element\n * @public\n * @since 2.0.0\n * @experimental This component is availabe since 2.0 under an experimental flag and its API and behaviour are subject to change.\n */\n@customElement({\n\ttag: \"ui5-tokenizer\",\n\tlanguageAware: true,\n\trenderer: jsxRenderer,\n\ttemplate: TokenizerTemplate,\n\tstyles: [\n\t\tTokenizerCss,\n\t\tResponsivePopoverCommonCss,\n\t\tSuggestionsCss,\n\t\tTokenizerPopoverCss,\n\t\tgetEffectiveScrollbarStyle(),\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(\"token-delete\", {\n\tbubbles: true,\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(\"selection-change\", {\n\tbubbles: true,\n})\n\n/**\n * Fired when nMore link is pressed.\n * @private\n */\n@event(\"show-more-items-press\", {\n\tbubbles: true,\n})\n\n/**\n * Fired before nMore Popover is opened.\n * @private\n */\n@event(\"before-more-popover-open\", {\n\tbubbles: true,\n})\n\nclass Tokenizer extends UI5Element {\n\teventDetails!: {\n\t\t\"token-delete\": TokenizerTokenDeleteEventDetail,\n\t\t\"selection-change\": TokenizerSelectionChangeEventDetail,\n\t\t\"show-more-items-press\": void,\n\t\t\"before-more-popover-open\": void,\n\t};\n\n\t/**\n\t * Defines whether the component is read-only.\n\t *\n\t * **Note:** A read-only component is not editable,\n\t * but still provides visual feedback upon user interaction.\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\treadonly = false;\n\n\t/**\n\t * Defines whether tokens are displayed on multiple lines.\n\t *\n\t * **Note:** The `multiLine` property is in an experimental state and is a subject to change.\n\t * @default false\n\t * @since 2.5.0\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\tmultiLine = false;\n\n\t/**\n\t * Defines whether \"Clear All\" button is present. Ensure `multiLine` is enabled, otherwise `showClearAll` will have no effect.\n\t *\n\t * **Note:** The `showClearAll` property is in an experimental state and is a subject to change.\n\t * @default false\n\t * @since 2.5.0\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\tshowClearAll = false;\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 = false;\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()\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()\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 = false;\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 = false\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 undefined\n\t */\n\t@property({\n\t\tconverter: DOMReferenceConverter,\n\t})\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({ type: Number })\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 = false;\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 = false;\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 = false;\n\n\t@property({ type: Number })\n\t_nMoreCount = 0;\n\n\t@property({ type: Number })\n\t_tokensCount = 0;\n\n\t/**\n\t * Defines the tokens to be displayed.\n\t * @public\n\t */\n\t@slot({\n\t\ttype: HTMLElement,\n\t\t\"default\": true,\n\t\tindividualSlots: true,\n\t})\n\ttokens!: Array<Token>;\n\n\t@i18n(\"@ui5/webcomponents\")\n\tstatic i18nBundle: I18nBundle;\n\t_resizeHandler: ResizeObserverCallback;\n\t_itemNav: ItemNavigation;\n\t_scrollEnablement: ScrollEnablement | undefined;\n\t_expandedScrollWidth?: number;\n\t_tokenDeleting = false;\n\t_preventCollapse = false;\n\t_skipTabIndex = false;\n\t_previousToken: Token | null = 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._deletedDialogItems = [];\n\t}\n\n\thandleClearAll() {\n\t\tthis.fireDecoratorEvent(\"token-delete\", { tokens: this._tokens });\n\t}\n\n\tonBeforeRendering() {\n\t\tif (!this.multiLine) {\n\t\t\tthis._scrollEnablement = new ScrollEnablement(this);\n\t\t}\n\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) || this.multiLine;\n\t\t\ttoken.readonly = this.readonly;\n\t\t});\n\t}\n\n\tonEnterDOM() {\n\t\tResizeHandler.register(this, this._resizeHandler);\n\t}\n\n\tonExitDOM() {\n\t\tResizeHandler.deregister(this, 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.fireDecoratorEvent(\"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(e: CustomEvent) {\n\t\tconst tokens = this._tokens;\n\t\tconst firstToken = tokens[0];\n\t\tconst targetToken = e.target as Token;\n\n\t\tif (tokens.length === 1 && firstToken.isTruncatable) {\n\t\t\tthis.open = firstToken.selected;\n\t\t}\n\n\t\tif (this.multiLine && targetToken.isTruncatable) {\n\t\t\tthis.opener = targetToken;\n\t\t\tthis.open = targetToken.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\tif (this._scrollEnablement) {\n\t\t\tthis._scrollEnablement.scrollContainer = this.contentDom;\n\t\t}\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.fireDecoratorEvent(\"token-delete\", { tokens: [token] });\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.fireDecoratorEvent(\"token-delete\", { tokens: this._selectedTokens });\n\t\t} else {\n\t\t\tthis.fireDecoratorEvent(\"token-delete\", { tokens: [token] });\n\t\t}\n\t}\n\n\tasync itemDelete(e: CustomEvent<ListItemDeleteEventDetail>) {\n\t\tconst token = this.getTokenByRefId(e.detail.item.getAttribute(\"data-ui5-token-ref-id\")!);\n\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.fireDecoratorEvent(\"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\tthis._deletedDialogItems.push(token);\n\t\t\t} else {\n\t\t\t\tthis.fireDecoratorEvent(\"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\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.fireDecoratorEvent(\"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: UI5CustomEvent<Button, \"click\">) {\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.fireDecoratorEvent(\"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.fireDecoratorEvent(\"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.fireDecoratorEvent(\"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.fireDecoratorEvent(\"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.fireDecoratorEvent(\"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.fireDecoratorEvent(\"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.fireDecoratorEvent(\"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.fireDecoratorEvent(\"selection-change\", {\n\t\t\t\ttokens: this._selectedTokens,\n\t\t\t});\n\t\t}\n\t}\n\n\tget hasTokens() {\n\t\treturn this._tokens.length > 0;\n\t}\n\n\tget showEffectiveClearAll() {\n\t\treturn this.showClearAll && this.hasTokens && this.multiLine && !this.readonly;\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\t// return this.opener ? this : this.opener;\n\t\tif (this.opener) {\n\t\t\treturn this.opener;\n\t\t}\n\t\treturn this;\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 _clearAllText() {\n\t\treturn Tokenizer.i18nBundle.getText(TOKENIZER_CLEAR_ALL);\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 _okButtonText() {\n\t\treturn Tokenizer.i18nBundle.getText(TOKENIZER_DIALOG_OK_BUTTON);\n\t}\n\n\tget _cancelButtonText() {\n\t\treturn Tokenizer.i18nBundle.getText(TOKENIZER_DIALOG_CANCEL_BUTTON);\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\tgetPopover() {\n\t\treturn this.shadowRoot!.querySelector<ResponsivePopover>(\"[ui5-responsive-popover]\")!;\n\t}\n\n\tgetTokenByRefId(refId: string) {\n\t\treturn this._tokens.find(token => token._id === refId)!;\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"]}
@@ -8,6 +8,6 @@ export default function TokenizerPopoverTemplate() {
8
8
  return (_jsxs(ResponsivePopover, { "tokenizer-popover": "true", open: this.open, opener: this.morePopoverOpener, style: { "min-width": this.popoverMinWidth ? `${this.popoverMinWidth}px` : `${this.getBoundingClientRect().width}px` }, contentOnlyOnDesktop: true, preventFocusRestore: true, hideArrow: this.hidePopoverArrow, placement: "Bottom", horizontalAlign: "Start", onClose: this.handleAfterClose, onBeforeClose: this.handleBeforeClose, onBeforeOpen: this.handleBeforeOpen, children: [this._isPhone &&
9
9
  _jsx("div", { slot: "header", class: "ui5-responsive-popover-header", children: _jsx("div", { class: "row", children: _jsx(Title, { level: "H1", wrappingType: "None", class: "ui5-responsive-popover-header-text", children: this.morePopoverTitle }) }) }), _jsx(List, { class: "ui5-tokenizer-list", selectionMode: this._nMoreListMode, separators: "None", onKeyDown: this._onPopoverListKeydown, onItemDelete: this.itemDelete, children: this._tokens
10
10
  .map(token => _jsx(ListItemStandard, { "data-ui5-token-ref-id": token._id, wrappingType: "Normal", children: token.text }, String(token._id))) }), this._isPhone &&
11
- _jsxs("div", { slot: "footer", class: "ui5-responsive-popover-footer", children: [_jsx(Button, { design: "Emphasized", "data-ui5-tokenizer-dialog-ok-button": true, onClick: this.handleDialogButtonPress, children: "OK" }), _jsx(Button, { design: "Transparent", onClick: this.handleDialogButtonPress, children: "Cancel" })] })] }));
11
+ _jsxs("div", { slot: "footer", class: "ui5-responsive-popover-footer", children: [_jsx(Button, { design: "Emphasized", "data-ui5-tokenizer-dialog-ok-button": true, onClick: this.handleDialogButtonPress, children: this._okButtonText }), _jsx(Button, { design: "Transparent", onClick: this.handleDialogButtonPress, children: this._cancelButtonText })] })] }));
12
12
  }
13
13
  //# sourceMappingURL=TokenizerPopoverTemplate.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"TokenizerPopoverTemplate.js","sourceRoot":"","sources":["../src/TokenizerPopoverTemplate.tsx"],"names":[],"mappings":";AAAA,OAAO,MAAM,MAAM,aAAa,CAAC;AACjC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,gBAAgB,MAAM,uBAAuB,CAAC;AACrD,OAAO,iBAAiB,MAAM,wBAAwB,CAAC;AACvD,OAAO,KAAK,MAAM,YAAY,CAAC;AAG/B,MAAM,CAAC,OAAO,UAAU,wBAAwB;IAC/C,OAAO,CACN,MAAC,iBAAiB,yBACC,MAAM,EACxB,IAAI,EAAE,IAAI,CAAC,IAAI,EACf,MAAM,EAAE,IAAI,CAAC,iBAAiB,EAC9B,KAAK,EAAE,EAAE,WAAW,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,eAAe,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,qBAAqB,EAAE,CAAC,KAAK,IAAI,EAAE,EACtH,oBAAoB,EAAE,IAAI,EAC1B,mBAAmB,EAAE,IAAI,EACzB,SAAS,EAAE,IAAI,CAAC,gBAAgB,EAChC,SAAS,EAAC,QAAQ,EAClB,eAAe,EAAC,OAAO,EACvB,OAAO,EAAE,IAAI,CAAC,gBAAgB,EAC9B,aAAa,EAAE,IAAI,CAAC,iBAAiB,EACrC,YAAY,EAAE,IAAI,CAAC,gBAAgB,aAElC,IAAI,CAAC,QAAQ;gBACd,cAAK,IAAI,EAAC,QAAQ,EAAC,KAAK,EAAC,+BAA+B,YACvD,cAAK,KAAK,EAAC,KAAK,YACf,KAAC,KAAK,IACL,KAAK,EAAC,IAAI,EACV,YAAY,EAAC,MAAM,EACnB,KAAK,EAAC,oCAAoC,YAEzC,IAAI,CAAC,gBAAgB,GACf,GACH,GACD,EAEN,KAAC,IAAI,IACJ,KAAK,EAAC,oBAAoB,EAC1B,aAAa,EAAE,IAAI,CAAC,cAAc,EAClC,UAAU,EAAC,MAAM,EACjB,SAAS,EAAE,IAAI,CAAC,qBAAqB,EACrC,YAAY,EAAE,IAAI,CAAC,UAAU,YAE5B,IAAI,CAAC,OAAO;qBACX,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,KAAC,gBAAgB,6BAAgD,KAAK,CAAC,GAAG,EAAE,YAAY,EAAC,QAAQ,YAAE,KAAK,CAAC,IAAI,IAAtF,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAyF,CAAC,GAC3I,EAEN,IAAI,CAAC,QAAQ;gBACd,eAAK,IAAI,EAAC,QAAQ,EAAC,KAAK,EAAC,+BAA+B,aACvD,KAAC,MAAM,IACN,MAAM,EAAC,YAAY,+CAEnB,OAAO,EAAE,IAAI,CAAC,uBAAuB,mBAC1B,EACZ,KAAC,MAAM,IACN,MAAM,EAAC,aAAa,EACpB,OAAO,EAAE,IAAI,CAAC,uBAAuB,uBACtB,IACX,IAEa,CACpB,CAAC;AACH,CAAC","sourcesContent":["import Button from \"./Button.js\";\nimport List from \"./List.js\";\nimport ListItemStandard from \"./ListItemStandard.js\";\nimport ResponsivePopover from \"./ResponsivePopover.js\";\nimport Title from \"./Title.js\";\nimport type Tokenizer from \"./Tokenizer.js\";\n\nexport default function TokenizerPopoverTemplate(this: Tokenizer) {\n\treturn (\n\t\t<ResponsivePopover\n\t\t\ttokenizer-popover=\"true\"\n\t\t\topen={this.open}\n\t\t\topener={this.morePopoverOpener}\n\t\t\tstyle={{ \"min-width\": this.popoverMinWidth ? `${this.popoverMinWidth}px` : `${this.getBoundingClientRect().width}px` }}\n\t\t\tcontentOnlyOnDesktop={true}\n\t\t\tpreventFocusRestore={true}\n\t\t\thideArrow={this.hidePopoverArrow}\n\t\t\tplacement=\"Bottom\"\n\t\t\thorizontalAlign=\"Start\"\n\t\t\tonClose={this.handleAfterClose}\n\t\t\tonBeforeClose={this.handleBeforeClose}\n\t\t\tonBeforeOpen={this.handleBeforeOpen}\n\t\t>\n\t\t\t{this._isPhone &&\n\t\t\t<div slot=\"header\" class=\"ui5-responsive-popover-header\">\n\t\t\t\t<div class=\"row\">\n\t\t\t\t\t<Title\n\t\t\t\t\t\tlevel=\"H1\"\n\t\t\t\t\t\twrappingType=\"None\"\n\t\t\t\t\t\tclass=\"ui5-responsive-popover-header-text\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{this.morePopoverTitle}\n\t\t\t\t\t</Title>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t}\n\t\t\t<List\n\t\t\t\tclass=\"ui5-tokenizer-list\"\n\t\t\t\tselectionMode={this._nMoreListMode}\n\t\t\t\tseparators=\"None\"\n\t\t\t\tonKeyDown={this._onPopoverListKeydown}\n\t\t\t\tonItemDelete={this.itemDelete}\n\t\t\t>\n\t\t\t\t{this._tokens\n\t\t\t\t\t.map(token => <ListItemStandard key={String(token._id)} data-ui5-token-ref-id={token._id} wrappingType=\"Normal\">{token.text}</ListItemStandard>)}\n\t\t\t</List>\n\n\t\t\t{this._isPhone &&\n\t\t\t<div slot=\"footer\" class=\"ui5-responsive-popover-footer\">\n\t\t\t\t<Button\n\t\t\t\t\tdesign=\"Emphasized\"\n\t\t\t\t\tdata-ui5-tokenizer-dialog-ok-button\n\t\t\t\t\tonClick={this.handleDialogButtonPress}\n\t\t\t\t>OK</Button>\n\t\t\t\t<Button\n\t\t\t\t\tdesign=\"Transparent\"\n\t\t\t\t\tonClick={this.handleDialogButtonPress}\n\t\t\t\t>Cancel</Button>\n\t\t\t</div>\n\t\t\t}\n\t\t</ResponsivePopover>\n\t);\n}\n"]}
1
+ {"version":3,"file":"TokenizerPopoverTemplate.js","sourceRoot":"","sources":["../src/TokenizerPopoverTemplate.tsx"],"names":[],"mappings":";AAAA,OAAO,MAAM,MAAM,aAAa,CAAC;AACjC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,gBAAgB,MAAM,uBAAuB,CAAC;AACrD,OAAO,iBAAiB,MAAM,wBAAwB,CAAC;AACvD,OAAO,KAAK,MAAM,YAAY,CAAC;AAG/B,MAAM,CAAC,OAAO,UAAU,wBAAwB;IAC/C,OAAO,CACN,MAAC,iBAAiB,yBACC,MAAM,EACxB,IAAI,EAAE,IAAI,CAAC,IAAI,EACf,MAAM,EAAE,IAAI,CAAC,iBAAiB,EAC9B,KAAK,EAAE,EAAE,WAAW,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,eAAe,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,qBAAqB,EAAE,CAAC,KAAK,IAAI,EAAE,EACtH,oBAAoB,EAAE,IAAI,EAC1B,mBAAmB,EAAE,IAAI,EACzB,SAAS,EAAE,IAAI,CAAC,gBAAgB,EAChC,SAAS,EAAC,QAAQ,EAClB,eAAe,EAAC,OAAO,EACvB,OAAO,EAAE,IAAI,CAAC,gBAAgB,EAC9B,aAAa,EAAE,IAAI,CAAC,iBAAiB,EACrC,YAAY,EAAE,IAAI,CAAC,gBAAgB,aAElC,IAAI,CAAC,QAAQ;gBACd,cAAK,IAAI,EAAC,QAAQ,EAAC,KAAK,EAAC,+BAA+B,YACvD,cAAK,KAAK,EAAC,KAAK,YACf,KAAC,KAAK,IACL,KAAK,EAAC,IAAI,EACV,YAAY,EAAC,MAAM,EACnB,KAAK,EAAC,oCAAoC,YAEzC,IAAI,CAAC,gBAAgB,GACf,GACH,GACD,EAEN,KAAC,IAAI,IACJ,KAAK,EAAC,oBAAoB,EAC1B,aAAa,EAAE,IAAI,CAAC,cAAc,EAClC,UAAU,EAAC,MAAM,EACjB,SAAS,EAAE,IAAI,CAAC,qBAAqB,EACrC,YAAY,EAAE,IAAI,CAAC,UAAU,YAE5B,IAAI,CAAC,OAAO;qBACX,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,KAAC,gBAAgB,6BAAgD,KAAK,CAAC,GAAG,EAAE,YAAY,EAAC,QAAQ,YAAE,KAAK,CAAC,IAAI,IAAtF,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAyF,CAAC,GAC3I,EAEN,IAAI,CAAC,QAAQ;gBACd,eAAK,IAAI,EAAC,QAAQ,EAAC,KAAK,EAAC,+BAA+B,aACvD,KAAC,MAAM,IACN,MAAM,EAAC,YAAY,+CAEnB,OAAO,EAAE,IAAI,CAAC,uBAAuB,YACpC,IAAI,CAAC,aAAa,GAAU,EAC9B,KAAC,MAAM,IACN,MAAM,EAAC,aAAa,EACpB,OAAO,EAAE,IAAI,CAAC,uBAAuB,YACpC,IAAI,CAAC,iBAAiB,GAAU,IAC7B,IAEa,CACpB,CAAC;AACH,CAAC","sourcesContent":["import Button from \"./Button.js\";\nimport List from \"./List.js\";\nimport ListItemStandard from \"./ListItemStandard.js\";\nimport ResponsivePopover from \"./ResponsivePopover.js\";\nimport Title from \"./Title.js\";\nimport type Tokenizer from \"./Tokenizer.js\";\n\nexport default function TokenizerPopoverTemplate(this: Tokenizer) {\n\treturn (\n\t\t<ResponsivePopover\n\t\t\ttokenizer-popover=\"true\"\n\t\t\topen={this.open}\n\t\t\topener={this.morePopoverOpener}\n\t\t\tstyle={{ \"min-width\": this.popoverMinWidth ? `${this.popoverMinWidth}px` : `${this.getBoundingClientRect().width}px` }}\n\t\t\tcontentOnlyOnDesktop={true}\n\t\t\tpreventFocusRestore={true}\n\t\t\thideArrow={this.hidePopoverArrow}\n\t\t\tplacement=\"Bottom\"\n\t\t\thorizontalAlign=\"Start\"\n\t\t\tonClose={this.handleAfterClose}\n\t\t\tonBeforeClose={this.handleBeforeClose}\n\t\t\tonBeforeOpen={this.handleBeforeOpen}\n\t\t>\n\t\t\t{this._isPhone &&\n\t\t\t<div slot=\"header\" class=\"ui5-responsive-popover-header\">\n\t\t\t\t<div class=\"row\">\n\t\t\t\t\t<Title\n\t\t\t\t\t\tlevel=\"H1\"\n\t\t\t\t\t\twrappingType=\"None\"\n\t\t\t\t\t\tclass=\"ui5-responsive-popover-header-text\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{this.morePopoverTitle}\n\t\t\t\t\t</Title>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t}\n\t\t\t<List\n\t\t\t\tclass=\"ui5-tokenizer-list\"\n\t\t\t\tselectionMode={this._nMoreListMode}\n\t\t\t\tseparators=\"None\"\n\t\t\t\tonKeyDown={this._onPopoverListKeydown}\n\t\t\t\tonItemDelete={this.itemDelete}\n\t\t\t>\n\t\t\t\t{this._tokens\n\t\t\t\t\t.map(token => <ListItemStandard key={String(token._id)} data-ui5-token-ref-id={token._id} wrappingType=\"Normal\">{token.text}</ListItemStandard>)}\n\t\t\t</List>\n\n\t\t\t{this._isPhone &&\n\t\t\t<div slot=\"footer\" class=\"ui5-responsive-popover-footer\">\n\t\t\t\t<Button\n\t\t\t\t\tdesign=\"Emphasized\"\n\t\t\t\t\tdata-ui5-tokenizer-dialog-ok-button\n\t\t\t\t\tonClick={this.handleDialogButtonPress}\n\t\t\t\t>{this._okButtonText}</Button>\n\t\t\t\t<Button\n\t\t\t\t\tdesign=\"Transparent\"\n\t\t\t\t\tonClick={this.handleDialogButtonPress}\n\t\t\t\t>{this._cancelButtonText}</Button>\n\t\t\t</div>\n\t\t\t}\n\t\t</ResponsivePopover>\n\t);\n}\n"]}
package/dist/Toolbar.d.ts CHANGED
@@ -93,9 +93,8 @@ declare class Toolbar extends UI5Element {
93
93
  itemsToOverflow: Array<ToolbarItem>;
94
94
  itemsWidth: number;
95
95
  minContentWidth: number;
96
- itemsWidthMeasured: boolean;
97
96
  ITEMS_WIDTH_MAP: Map<string, number>;
98
- static get styles(): import("@ui5/webcomponents-base").ComponentStylesData[];
97
+ static get styles(): string[];
99
98
  constructor();
100
99
  /**
101
100
  * Read-only members
@@ -104,16 +103,8 @@ declare class Toolbar extends UI5Element {
104
103
  get padding(): number;
105
104
  get alwaysOverflowItems(): ToolbarItem[];
106
105
  get movableItems(): ToolbarItem[];
107
- get overflowItems(): {
108
- toolbarTemplate: import("@ui5/webcomponents-base/dist/renderer/executeTemplate.js").TemplateFunction;
109
- toolbarPopoverTemplate: import("@ui5/webcomponents-base/dist/renderer/executeTemplate.js").TemplateFunction;
110
- context: ToolbarItem;
111
- }[];
112
- get standardItems(): {
113
- toolbarTemplate: import("@ui5/webcomponents-base/dist/renderer/executeTemplate.js").TemplateFunction;
114
- toolbarPopoverTemplate: import("@ui5/webcomponents-base/dist/renderer/executeTemplate.js").TemplateFunction;
115
- context: ToolbarItem;
116
- }[];
106
+ get overflowItems(): ToolbarItem[];
107
+ get standardItems(): ToolbarItem[];
117
108
  get hideOverflowButton(): boolean;
118
109
  get interactiveItemsCount(): number;
119
110
  /**
@@ -143,8 +134,6 @@ declare class Toolbar extends UI5Element {
143
134
  * Toolbar Overflow Popover
144
135
  */
145
136
  get overflowButtonDOM(): Button | null;
146
- get itemsDOM(): Element | null;
147
- get hasItemWithText(): boolean;
148
137
  get hasFlexibleSpacers(): boolean;
149
138
  /**
150
139
  * Lifecycle methods
@@ -185,16 +174,8 @@ declare class Toolbar extends UI5Element {
185
174
  attachListeners(): void;
186
175
  detachListeners(): void;
187
176
  onToolbarItemChange(): void;
188
- getItemsInfo(items: Array<ToolbarItem>): {
189
- toolbarTemplate: import("@ui5/webcomponents-base/dist/renderer/executeTemplate.js").TemplateFunction;
190
- toolbarPopoverTemplate: import("@ui5/webcomponents-base/dist/renderer/executeTemplate.js").TemplateFunction;
191
- context: ToolbarItem;
192
- }[];
193
177
  getItemWidth(item: ToolbarItem): number;
194
178
  getCachedItemWidth(id: string): number | undefined;
195
- getItemByID(id: string): ToolbarItem | undefined;
196
- getRegisteredToolbarItemByID(id: string): HTMLElement | null;
197
- preprocessItems(): void;
198
179
  }
199
180
  export default Toolbar;
200
181
  export type { ToolbarMinWidthChangeEventDetail, };
package/dist/Toolbar.js CHANGED
@@ -22,7 +22,6 @@ import ToolbarTemplate from "./ToolbarTemplate.js";
22
22
  import ToolbarCss from "./generated/themes/Toolbar.css.js";
23
23
  import ToolbarPopoverCss from "./generated/themes/ToolbarPopover.css.js";
24
24
  import ToolbarItemOverflowBehavior from "./types/ToolbarItemOverflowBehavior.js";
25
- import { getRegisteredToolbarItem, getRegisteredStyles, } from "./ToolbarRegistry.js";
26
25
  function calculateCSSREMValue(styleSet, propertyName) {
27
26
  return Number(styleSet.getPropertyValue(propertyName).replace("rem", "")) * parseInt(getComputedStyle(document.body).getPropertyValue("font-size"));
28
27
  }
@@ -52,11 +51,9 @@ function parsePxValue(styleSet, propertyName) {
52
51
  */
53
52
  let Toolbar = Toolbar_1 = class Toolbar extends UI5Element {
54
53
  static get styles() {
55
- const styles = getRegisteredStyles();
56
54
  return [
57
55
  ToolbarCss,
58
56
  ToolbarPopoverCss,
59
- ...styles,
60
57
  ];
61
58
  }
62
59
  constructor() {
@@ -83,7 +80,6 @@ let Toolbar = Toolbar_1 = class Toolbar extends UI5Element {
83
80
  this.itemsToOverflow = [];
84
81
  this.itemsWidth = 0;
85
82
  this.minContentWidth = 0;
86
- this.itemsWidthMeasured = false;
87
83
  this.ITEMS_WIDTH_MAP = new Map();
88
84
  this._onResize = this.onResize.bind(this);
89
85
  this._onCloseOverflow = this.closeOverflow.bind(this);
@@ -107,11 +103,11 @@ let Toolbar = Toolbar_1 = class Toolbar extends UI5Element {
107
103
  }
108
104
  get overflowItems() {
109
105
  // spacers are ignored
110
- const overflowItems = this.getItemsInfo(this.itemsToOverflow.filter(item => !item.ignoreSpace));
106
+ const overflowItems = this.itemsToOverflow.filter(item => !item.ignoreSpace);
111
107
  return this.reverseOverflow ? overflowItems.reverse() : overflowItems;
112
108
  }
113
109
  get standardItems() {
114
- return this.getItemsInfo(this.items.filter(item => this.itemsToOverflow.indexOf(item) === -1));
110
+ return this.items.filter(item => this.itemsToOverflow.indexOf(item) === -1);
115
111
  }
116
112
  get hideOverflowButton() {
117
113
  return this.itemsToOverflow.filter(item => !(item.ignoreSpace || item.isSeparator)).length === 0;
@@ -156,12 +152,6 @@ let Toolbar = Toolbar_1 = class Toolbar extends UI5Element {
156
152
  get overflowButtonDOM() {
157
153
  return this.shadowRoot.querySelector(".ui5-tb-overflow-btn");
158
154
  }
159
- get itemsDOM() {
160
- return this.shadowRoot.querySelector(".ui5-tb-items");
161
- }
162
- get hasItemWithText() {
163
- return this.itemsToOverflow.some((item) => item.containsText);
164
- }
165
155
  get hasFlexibleSpacers() {
166
156
  return this.items.some((item) => item.hasFlexibleWidth);
167
157
  }
@@ -182,12 +172,14 @@ let Toolbar = Toolbar_1 = class Toolbar extends UI5Element {
182
172
  onBeforeRendering() {
183
173
  this.detachListeners();
184
174
  this.attachListeners();
185
- this.preprocessItems();
186
175
  }
187
176
  async onAfterRendering() {
188
177
  await renderFinished();
189
178
  this.storeItemsWidth();
190
179
  this.processOverflowLayout();
180
+ this.items.forEach(item => {
181
+ item.isOverflowed = this.overflowItems.map(overflowItem => overflowItem).indexOf(item) !== -1;
182
+ });
191
183
  }
192
184
  /**
193
185
  * Returns if the overflow popup is open.
@@ -331,31 +323,16 @@ let Toolbar = Toolbar_1 = class Toolbar extends UI5Element {
331
323
  * Private members
332
324
  */
333
325
  attachListeners() {
334
- this.addEventListener("close-overflow", this._onCloseOverflow);
326
+ this.addEventListener("ui5-close-overflow", this._onCloseOverflow);
335
327
  }
336
328
  detachListeners() {
337
- this.removeEventListener("close-overflow", this._onCloseOverflow);
329
+ this.removeEventListener("ui5-close-overflow", this._onCloseOverflow);
338
330
  }
339
331
  onToolbarItemChange() {
340
332
  // some items were updated reset the cache and trigger a re-render
341
333
  this.itemsToOverflow = [];
342
334
  this.contentWidth = 0; // re-render
343
335
  }
344
- getItemsInfo(items) {
345
- return items.map((item) => {
346
- const ctor = item.constructor;
347
- const ElementClass = getRegisteredToolbarItem(ctor.getMetadata().getPureTag());
348
- if (!ElementClass) {
349
- return null;
350
- }
351
- const toolbarItem = {
352
- toolbarTemplate: ElementClass.toolbarTemplate,
353
- toolbarPopoverTemplate: ElementClass.toolbarPopoverTemplate,
354
- context: item,
355
- };
356
- return toolbarItem;
357
- }).filter(item => !!item);
358
- }
359
336
  getItemWidth(item) {
360
337
  // Spacer width - always 0 for flexible spacers, so that they shrink, otherwise - measure the width normally
361
338
  if (item.ignoreSpace || item.isSeparator) {
@@ -363,9 +340,9 @@ let Toolbar = Toolbar_1 = class Toolbar extends UI5Element {
363
340
  }
364
341
  const id = item._id;
365
342
  // Measure rendered width for spacers with width, and for normal items
366
- const renderedItem = this.getRegisteredToolbarItemByID(id);
343
+ const renderedItem = this.shadowRoot.querySelector(`#${item.slot}`);
367
344
  let itemWidth = 0;
368
- if (renderedItem) {
345
+ if (renderedItem && renderedItem.offsetWidth) {
369
346
  const ItemCSSStyleSet = getComputedStyle(renderedItem);
370
347
  itemWidth = renderedItem.offsetWidth + parsePxValue(ItemCSSStyleSet, "margin-inline-end")
371
348
  + parsePxValue(ItemCSSStyleSet, "margin-inline-start");
@@ -378,18 +355,6 @@ let Toolbar = Toolbar_1 = class Toolbar extends UI5Element {
378
355
  getCachedItemWidth(id) {
379
356
  return this.ITEMS_WIDTH_MAP.get(id);
380
357
  }
381
- getItemByID(id) {
382
- return this.items.find(item => item._id === id);
383
- }
384
- getRegisteredToolbarItemByID(id) {
385
- return this.itemsDOM.querySelector(`[data-ui5-external-action-item-id="${id}"]`);
386
- }
387
- preprocessItems() {
388
- this.items.forEach(item => {
389
- item._getRealDomRef = () => this.getDomRef().querySelector(`[data-ui5-stable*=${item.stableDomRef}]`)
390
- ?? this.getOverflowPopover().querySelector(`[data-ui5-stable*=${item.stableDomRef}]`);
391
- });
392
- }
393
358
  };
394
359
  __decorate([
395
360
  property()
@@ -416,7 +381,9 @@ __decorate([
416
381
  property({ type: Boolean })
417
382
  ], Toolbar.prototype, "popoverOpen", void 0);
418
383
  __decorate([
419
- slot({ "default": true, type: HTMLElement, invalidateOnChildChange: true })
384
+ slot({
385
+ "default": true, type: HTMLElement, invalidateOnChildChange: true, individualSlots: true,
386
+ })
420
387
  ], Toolbar.prototype, "items", void 0);
421
388
  __decorate([
422
389
  i18n("@ui5/webcomponents")