@ui5/webcomponents 2.8.0-rc.1 → 2.8.0-rc.3

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 (690) hide show
  1. package/CHANGELOG.md +47 -0
  2. package/cypress/specs/Avatar.cy.tsx +15 -0
  3. package/cypress/specs/Dialog.cy.tsx +89 -0
  4. package/cypress/specs/Input.cy.tsx +230 -1
  5. package/cypress/specs/Popover.cy.tsx +242 -0
  6. package/cypress/specs/Select.cy.tsx +15 -0
  7. package/cypress/specs/Table.cy.tsx +86 -83
  8. package/cypress/specs/TableNavigation.cy.tsx +223 -0
  9. package/cypress/specs/TableNavigationFixedHeader.cy.tsx +199 -0
  10. package/cypress/specs/TableSelection.cy.tsx +280 -0
  11. package/cypress/specs/TableSelections.cy.tsx +296 -0
  12. package/cypress/specs/Text.cy.tsx +19 -3
  13. package/cypress/specs/Tokenizer.cy.tsx +36 -0
  14. package/cypress/specs/base/Events.cy.tsx +4 -5
  15. package/dist/.tsbuildinfo +1 -1
  16. package/dist/Avatar.d.ts +4 -1
  17. package/dist/Avatar.js.map +1 -1
  18. package/dist/AvatarTemplate.js +1 -1
  19. package/dist/AvatarTemplate.js.map +1 -1
  20. package/dist/ComboBoxItemGroupTemplate.js +2 -2
  21. package/dist/ComboBoxItemGroupTemplate.js.map +1 -1
  22. package/dist/ExpandableText.d.ts +0 -1
  23. package/dist/ExpandableText.js +0 -7
  24. package/dist/ExpandableText.js.map +1 -1
  25. package/dist/ExpandableTextTemplate.js +1 -1
  26. package/dist/ExpandableTextTemplate.js.map +1 -1
  27. package/dist/Input.d.ts +1 -1
  28. package/dist/Input.js +11 -8
  29. package/dist/Input.js.map +1 -1
  30. package/dist/InputPopoverTemplate.d.ts +4 -1
  31. package/dist/InputPopoverTemplate.js +3 -2
  32. package/dist/InputPopoverTemplate.js.map +1 -1
  33. package/dist/InputTemplate.d.ts +3 -1
  34. package/dist/InputTemplate.js +2 -1
  35. package/dist/InputTemplate.js.map +1 -1
  36. package/dist/List.d.ts +5 -2
  37. package/dist/List.js +24 -2
  38. package/dist/List.js.map +1 -1
  39. package/dist/ListBoxItemGroupTemplate.d.ts +4 -0
  40. package/dist/ListBoxItemGroupTemplate.js +13 -0
  41. package/dist/ListBoxItemGroupTemplate.js.map +1 -0
  42. package/dist/ListItemGroupHeader.d.ts +6 -0
  43. package/dist/ListItemGroupHeader.js +20 -3
  44. package/dist/ListItemGroupHeader.js.map +1 -1
  45. package/dist/ListItemGroupHeaderTemplate.js +3 -3
  46. package/dist/ListItemGroupHeaderTemplate.js.map +1 -1
  47. package/dist/ListItemGroupTemplate.d.ts +1 -3
  48. package/dist/ListItemGroupTemplate.js +5 -8
  49. package/dist/ListItemGroupTemplate.js.map +1 -1
  50. package/dist/ListTemplate.js +2 -2
  51. package/dist/ListTemplate.js.map +1 -1
  52. package/dist/MultiComboBoxItemGroupTemplate.js +2 -2
  53. package/dist/MultiComboBoxItemGroupTemplate.js.map +1 -1
  54. package/dist/Popover.d.ts +0 -6
  55. package/dist/Popover.js +8 -14
  56. package/dist/Popover.js.map +1 -1
  57. package/dist/Popup.js +3 -1
  58. package/dist/Popup.js.map +1 -1
  59. package/dist/Select.d.ts +7 -0
  60. package/dist/Select.js +4 -3
  61. package/dist/Select.js.map +1 -1
  62. package/dist/SelectTemplate.js +2 -2
  63. package/dist/SelectTemplate.js.map +1 -1
  64. package/dist/SuggestionItemGroup.js +2 -0
  65. package/dist/SuggestionItemGroup.js.map +1 -1
  66. package/dist/Table.d.ts +13 -7
  67. package/dist/Table.js +26 -28
  68. package/dist/Table.js.map +1 -1
  69. package/dist/TableCellBase.d.ts +1 -0
  70. package/dist/TableCellBase.js +4 -0
  71. package/dist/TableCellBase.js.map +1 -1
  72. package/dist/TableHeaderCell.d.ts +11 -0
  73. package/dist/TableHeaderCell.js +14 -0
  74. package/dist/TableHeaderCell.js.map +1 -1
  75. package/dist/TableHeaderCellActionAI.d.ts +1 -0
  76. package/dist/TableHeaderCellActionAI.js +1 -0
  77. package/dist/TableHeaderCellActionAI.js.map +1 -1
  78. package/dist/TableHeaderRow.d.ts +0 -1
  79. package/dist/TableHeaderRow.js +1 -4
  80. package/dist/TableHeaderRow.js.map +1 -1
  81. package/dist/TableRow.d.ts +5 -3
  82. package/dist/TableRow.js +2 -9
  83. package/dist/TableRow.js.map +1 -1
  84. package/dist/TableRowAction.d.ts +10 -8
  85. package/dist/TableRowAction.js +10 -11
  86. package/dist/TableRowAction.js.map +1 -1
  87. package/dist/TableRowActionNavigation.d.ts +1 -0
  88. package/dist/TableRowActionNavigation.js +1 -0
  89. package/dist/TableRowActionNavigation.js.map +1 -1
  90. package/dist/TableRowBase.d.ts +2 -2
  91. package/dist/TableRowBase.js +9 -7
  92. package/dist/TableRowBase.js.map +1 -1
  93. package/dist/TableSelection.d.ts +9 -7
  94. package/dist/TableSelection.js +34 -30
  95. package/dist/TableSelection.js.map +1 -1
  96. package/dist/TableSelectionBase.d.ts +79 -0
  97. package/dist/TableSelectionBase.js +108 -0
  98. package/dist/TableSelectionBase.js.map +1 -0
  99. package/dist/TableSelectionMulti.d.ts +92 -0
  100. package/dist/TableSelectionMulti.js +260 -0
  101. package/dist/TableSelectionMulti.js.map +1 -0
  102. package/dist/TableSelectionSingle.d.ts +49 -0
  103. package/dist/TableSelectionSingle.js +67 -0
  104. package/dist/TableSelectionSingle.js.map +1 -0
  105. package/dist/Tokenizer.js +2 -2
  106. package/dist/Tokenizer.js.map +1 -1
  107. package/dist/bundle.esm.js +2 -0
  108. package/dist/bundle.esm.js.map +1 -1
  109. package/dist/css/themes/Avatar.css +1 -1
  110. package/dist/css/themes/AvatarGroup.css +1 -1
  111. package/dist/css/themes/Bar.css +1 -1
  112. package/dist/css/themes/Breadcrumbs.css +1 -1
  113. package/dist/css/themes/BusyIndicator.css +1 -1
  114. package/dist/css/themes/Button.css +1 -1
  115. package/dist/css/themes/ButtonBadge.css +1 -1
  116. package/dist/css/themes/Calendar.css +1 -1
  117. package/dist/css/themes/CalendarHeader.css +1 -1
  118. package/dist/css/themes/CalendarLegend.css +1 -1
  119. package/dist/css/themes/CalendarLegendItem.css +1 -1
  120. package/dist/css/themes/Card.css +1 -1
  121. package/dist/css/themes/CardHeader.css +1 -1
  122. package/dist/css/themes/Carousel.css +1 -1
  123. package/dist/css/themes/CheckBox.css +1 -1
  124. package/dist/css/themes/ColorPalette.css +1 -1
  125. package/dist/css/themes/ColorPaletteItem.css +1 -1
  126. package/dist/css/themes/ColorPalettePopover.css +1 -1
  127. package/dist/css/themes/ColorPicker.css +1 -1
  128. package/dist/css/themes/ComboBox.css +1 -1
  129. package/dist/css/themes/ComboBoxItem.css +1 -1
  130. package/dist/css/themes/DatePicker.css +1 -1
  131. package/dist/css/themes/DateTimePickerPopover.css +1 -1
  132. package/dist/css/themes/DayPicker.css +1 -1
  133. package/dist/css/themes/Dialog.css +1 -1
  134. package/dist/css/themes/FileUploader.css +1 -1
  135. package/dist/css/themes/Form.css +1 -1
  136. package/dist/css/themes/FormItem.css +1 -1
  137. package/dist/css/themes/FormItemSpan.css +1 -1
  138. package/dist/css/themes/GrowingButton.css +1 -1
  139. package/dist/css/themes/Icon.css +1 -1
  140. package/dist/css/themes/Input.css +1 -1
  141. package/dist/css/themes/InputIcon.css +1 -1
  142. package/dist/css/themes/InputSharedStyles.css +1 -1
  143. package/dist/css/themes/Link.css +1 -1
  144. package/dist/css/themes/List.css +1 -1
  145. package/dist/css/themes/ListItem.css +1 -1
  146. package/dist/css/themes/ListItemBase.css +1 -1
  147. package/dist/css/themes/ListItemCustom.css +1 -1
  148. package/dist/css/themes/ListItemGroup.css +1 -1
  149. package/dist/css/themes/ListItemGroupHeader.css +1 -1
  150. package/dist/css/themes/ListItemIcon.css +1 -1
  151. package/dist/css/themes/Menu.css +1 -1
  152. package/dist/css/themes/MenuItem.css +1 -1
  153. package/dist/css/themes/MessageStrip.css +1 -1
  154. package/dist/css/themes/MonthPicker.css +1 -1
  155. package/dist/css/themes/MultiComboBox.css +1 -1
  156. package/dist/css/themes/MultiComboBoxItem.css +1 -1
  157. package/dist/css/themes/MultiComboBoxPopover.css +1 -1
  158. package/dist/css/themes/MultiInput.css +1 -1
  159. package/dist/css/themes/OptionBase.css +1 -1
  160. package/dist/css/themes/Panel.css +1 -1
  161. package/dist/css/themes/Popover.css +1 -1
  162. package/dist/css/themes/PopupsCommon.css +1 -1
  163. package/dist/css/themes/ProgressIndicator.css +1 -1
  164. package/dist/css/themes/RadioButton.css +1 -1
  165. package/dist/css/themes/RangeSlider.css +1 -1
  166. package/dist/css/themes/RatingIndicator.css +1 -1
  167. package/dist/css/themes/ResponsivePopover.css +1 -1
  168. package/dist/css/themes/ResponsivePopoverCommon.css +1 -1
  169. package/dist/css/themes/SegmentedButton.css +1 -1
  170. package/dist/css/themes/SegmentedButtonItem.css +1 -1
  171. package/dist/css/themes/Select.css +1 -1
  172. package/dist/css/themes/SliderBase.css +1 -1
  173. package/dist/css/themes/SplitButton.css +1 -1
  174. package/dist/css/themes/StepInput.css +1 -1
  175. package/dist/css/themes/SuggestionItem.css +1 -1
  176. package/dist/css/themes/SuggestionItemCustom.css +1 -1
  177. package/dist/css/themes/Switch.css +1 -1
  178. package/dist/css/themes/TabContainer.css +1 -1
  179. package/dist/css/themes/TabInOverflow.css +1 -1
  180. package/dist/css/themes/TabInStrip.css +1 -1
  181. package/dist/css/themes/TabSemanticIcon.css +1 -1
  182. package/dist/css/themes/TabSeparatorInOverflow.css +1 -1
  183. package/dist/css/themes/Table.css +1 -1
  184. package/dist/css/themes/TableCellBase.css +1 -1
  185. package/dist/css/themes/TableHeaderRow.css +1 -1
  186. package/dist/css/themes/TableRow.css +1 -1
  187. package/dist/css/themes/TableRowActionBase.css +1 -1
  188. package/dist/css/themes/TableRowBase.css +1 -1
  189. package/dist/css/themes/Tag.css +1 -1
  190. package/dist/css/themes/Text.css +1 -1
  191. package/dist/css/themes/TextArea.css +1 -1
  192. package/dist/css/themes/TimePicker.css +1 -1
  193. package/dist/css/themes/Toast.css +1 -1
  194. package/dist/css/themes/ToggleButton.css +1 -1
  195. package/dist/css/themes/Token.css +1 -1
  196. package/dist/css/themes/Tokenizer.css +1 -1
  197. package/dist/css/themes/TokenizerPopover.css +1 -1
  198. package/dist/css/themes/Toolbar.css +1 -1
  199. package/dist/css/themes/ToolbarPopover.css +1 -1
  200. package/dist/css/themes/TreeItem.css +1 -1
  201. package/dist/css/themes/ValueStateMessage.css +1 -1
  202. package/dist/css/themes/YearPicker.css +1 -1
  203. package/dist/css/themes/sap_fiori_3/parameters-bundle.css +1 -1
  204. package/dist/css/themes/sap_fiori_3_dark/parameters-bundle.css +1 -1
  205. package/dist/css/themes/sap_fiori_3_hcb/parameters-bundle.css +1 -1
  206. package/dist/css/themes/sap_fiori_3_hcw/parameters-bundle.css +1 -1
  207. package/dist/css/themes/sap_horizon/parameters-bundle.css +1 -1
  208. package/dist/css/themes/sap_horizon_dark/parameters-bundle.css +1 -1
  209. package/dist/css/themes/sap_horizon_hcb/parameters-bundle.css +1 -1
  210. package/dist/css/themes/sap_horizon_hcw/parameters-bundle.css +1 -1
  211. package/dist/custom-elements-internal.json +772 -34
  212. package/dist/custom-elements.json +725 -31
  213. package/dist/features/InputSuggestions.js +0 -2
  214. package/dist/features/InputSuggestions.js.map +1 -1
  215. package/dist/features/InputSuggestionsTemplate.d.ts +5 -1
  216. package/dist/features/InputSuggestionsTemplate.js +9 -5
  217. package/dist/features/InputSuggestionsTemplate.js.map +1 -1
  218. package/dist/generated/assets/i18n/messagebundle_ar.json +1 -1
  219. package/dist/generated/assets/i18n/messagebundle_bg.json +1 -1
  220. package/dist/generated/assets/i18n/messagebundle_ca.json +1 -1
  221. package/dist/generated/assets/i18n/messagebundle_cnr.json +1 -1
  222. package/dist/generated/assets/i18n/messagebundle_cs.json +1 -1
  223. package/dist/generated/assets/i18n/messagebundle_cy.json +1 -1
  224. package/dist/generated/assets/i18n/messagebundle_da.json +1 -1
  225. package/dist/generated/assets/i18n/messagebundle_de.json +1 -1
  226. package/dist/generated/assets/i18n/messagebundle_el.json +1 -1
  227. package/dist/generated/assets/i18n/messagebundle_en.json +1 -1
  228. package/dist/generated/assets/i18n/messagebundle_en_GB.json +1 -1
  229. package/dist/generated/assets/i18n/messagebundle_en_US_sappsd.json +1 -1
  230. package/dist/generated/assets/i18n/messagebundle_en_US_saprigi.json +1 -1
  231. package/dist/generated/assets/i18n/messagebundle_en_US_saptrc.json +1 -1
  232. package/dist/generated/assets/i18n/messagebundle_es.json +1 -1
  233. package/dist/generated/assets/i18n/messagebundle_es_MX.json +1 -1
  234. package/dist/generated/assets/i18n/messagebundle_et.json +1 -1
  235. package/dist/generated/assets/i18n/messagebundle_fi.json +1 -1
  236. package/dist/generated/assets/i18n/messagebundle_fr.json +1 -1
  237. package/dist/generated/assets/i18n/messagebundle_fr_CA.json +1 -1
  238. package/dist/generated/assets/i18n/messagebundle_hi.json +1 -1
  239. package/dist/generated/assets/i18n/messagebundle_hr.json +1 -1
  240. package/dist/generated/assets/i18n/messagebundle_hu.json +1 -1
  241. package/dist/generated/assets/i18n/messagebundle_it.json +1 -1
  242. package/dist/generated/assets/i18n/messagebundle_iw.json +1 -1
  243. package/dist/generated/assets/i18n/messagebundle_ja.json +1 -1
  244. package/dist/generated/assets/i18n/messagebundle_kk.json +1 -1
  245. package/dist/generated/assets/i18n/messagebundle_ko.json +1 -1
  246. package/dist/generated/assets/i18n/messagebundle_lt.json +1 -1
  247. package/dist/generated/assets/i18n/messagebundle_lv.json +1 -1
  248. package/dist/generated/assets/i18n/messagebundle_mk.json +1 -1
  249. package/dist/generated/assets/i18n/messagebundle_ms.json +1 -1
  250. package/dist/generated/assets/i18n/messagebundle_nl.json +1 -1
  251. package/dist/generated/assets/i18n/messagebundle_no.json +1 -1
  252. package/dist/generated/assets/i18n/messagebundle_pl.json +1 -1
  253. package/dist/generated/assets/i18n/messagebundle_pt.json +1 -1
  254. package/dist/generated/assets/i18n/messagebundle_pt_PT.json +1 -1
  255. package/dist/generated/assets/i18n/messagebundle_ro.json +1 -1
  256. package/dist/generated/assets/i18n/messagebundle_ru.json +1 -1
  257. package/dist/generated/assets/i18n/messagebundle_sh.json +1 -1
  258. package/dist/generated/assets/i18n/messagebundle_sk.json +1 -1
  259. package/dist/generated/assets/i18n/messagebundle_sl.json +1 -1
  260. package/dist/generated/assets/i18n/messagebundle_sr.json +1 -1
  261. package/dist/generated/assets/i18n/messagebundle_sv.json +1 -1
  262. package/dist/generated/assets/i18n/messagebundle_th.json +1 -1
  263. package/dist/generated/assets/i18n/messagebundle_tr.json +1 -1
  264. package/dist/generated/assets/i18n/messagebundle_uk.json +1 -1
  265. package/dist/generated/assets/i18n/messagebundle_vi.json +1 -1
  266. package/dist/generated/assets/i18n/messagebundle_zh_CN.json +1 -1
  267. package/dist/generated/assets/i18n/messagebundle_zh_TW.json +1 -1
  268. package/dist/generated/assets/themes/sap_fiori_3/parameters-bundle.css.json +1 -1
  269. package/dist/generated/assets/themes/sap_fiori_3_dark/parameters-bundle.css.json +1 -1
  270. package/dist/generated/assets/themes/sap_fiori_3_hcb/parameters-bundle.css.json +1 -1
  271. package/dist/generated/assets/themes/sap_fiori_3_hcw/parameters-bundle.css.json +1 -1
  272. package/dist/generated/assets/themes/sap_horizon/parameters-bundle.css.json +1 -1
  273. package/dist/generated/assets/themes/sap_horizon_dark/parameters-bundle.css.json +1 -1
  274. package/dist/generated/assets/themes/sap_horizon_hcb/parameters-bundle.css.json +1 -1
  275. package/dist/generated/assets/themes/sap_horizon_hcw/parameters-bundle.css.json +1 -1
  276. package/dist/generated/i18n/i18n-defaults.d.ts +3 -1
  277. package/dist/generated/i18n/i18n-defaults.js +3 -1
  278. package/dist/generated/i18n/i18n-defaults.js.map +1 -1
  279. package/dist/generated/templates/TableHeaderRowTemplate.lit.js +1 -1
  280. package/dist/generated/templates/TableHeaderRowTemplate.lit.js.map +1 -1
  281. package/dist/generated/templates/TableRowTemplate.lit.js +2 -2
  282. package/dist/generated/templates/TableRowTemplate.lit.js.map +1 -1
  283. package/dist/generated/themes/Avatar.css.d.ts +1 -1
  284. package/dist/generated/themes/Avatar.css.js +1 -1
  285. package/dist/generated/themes/Avatar.css.js.map +1 -1
  286. package/dist/generated/themes/AvatarGroup.css.d.ts +1 -1
  287. package/dist/generated/themes/AvatarGroup.css.js +1 -1
  288. package/dist/generated/themes/AvatarGroup.css.js.map +1 -1
  289. package/dist/generated/themes/Bar.css.d.ts +1 -1
  290. package/dist/generated/themes/Bar.css.js +1 -1
  291. package/dist/generated/themes/Bar.css.js.map +1 -1
  292. package/dist/generated/themes/Breadcrumbs.css.d.ts +1 -1
  293. package/dist/generated/themes/Breadcrumbs.css.js +1 -1
  294. package/dist/generated/themes/Breadcrumbs.css.js.map +1 -1
  295. package/dist/generated/themes/BusyIndicator.css.d.ts +1 -1
  296. package/dist/generated/themes/BusyIndicator.css.js +1 -1
  297. package/dist/generated/themes/BusyIndicator.css.js.map +1 -1
  298. package/dist/generated/themes/Button.css.d.ts +1 -1
  299. package/dist/generated/themes/Button.css.js +1 -1
  300. package/dist/generated/themes/Button.css.js.map +1 -1
  301. package/dist/generated/themes/ButtonBadge.css.d.ts +1 -1
  302. package/dist/generated/themes/ButtonBadge.css.js +1 -1
  303. package/dist/generated/themes/ButtonBadge.css.js.map +1 -1
  304. package/dist/generated/themes/Calendar.css.d.ts +1 -1
  305. package/dist/generated/themes/Calendar.css.js +1 -1
  306. package/dist/generated/themes/Calendar.css.js.map +1 -1
  307. package/dist/generated/themes/CalendarHeader.css.d.ts +1 -1
  308. package/dist/generated/themes/CalendarHeader.css.js +1 -1
  309. package/dist/generated/themes/CalendarHeader.css.js.map +1 -1
  310. package/dist/generated/themes/CalendarLegend.css.d.ts +1 -1
  311. package/dist/generated/themes/CalendarLegend.css.js +1 -1
  312. package/dist/generated/themes/CalendarLegend.css.js.map +1 -1
  313. package/dist/generated/themes/CalendarLegendItem.css.d.ts +1 -1
  314. package/dist/generated/themes/CalendarLegendItem.css.js +1 -1
  315. package/dist/generated/themes/CalendarLegendItem.css.js.map +1 -1
  316. package/dist/generated/themes/Card.css.d.ts +1 -1
  317. package/dist/generated/themes/Card.css.js +1 -1
  318. package/dist/generated/themes/Card.css.js.map +1 -1
  319. package/dist/generated/themes/CardHeader.css.d.ts +1 -1
  320. package/dist/generated/themes/CardHeader.css.js +1 -1
  321. package/dist/generated/themes/CardHeader.css.js.map +1 -1
  322. package/dist/generated/themes/Carousel.css.d.ts +1 -1
  323. package/dist/generated/themes/Carousel.css.js +1 -1
  324. package/dist/generated/themes/Carousel.css.js.map +1 -1
  325. package/dist/generated/themes/CheckBox.css.d.ts +1 -1
  326. package/dist/generated/themes/CheckBox.css.js +1 -1
  327. package/dist/generated/themes/CheckBox.css.js.map +1 -1
  328. package/dist/generated/themes/ColorPalette.css.d.ts +1 -1
  329. package/dist/generated/themes/ColorPalette.css.js +1 -1
  330. package/dist/generated/themes/ColorPalette.css.js.map +1 -1
  331. package/dist/generated/themes/ColorPaletteItem.css.d.ts +1 -1
  332. package/dist/generated/themes/ColorPaletteItem.css.js +1 -1
  333. package/dist/generated/themes/ColorPaletteItem.css.js.map +1 -1
  334. package/dist/generated/themes/ColorPalettePopover.css.d.ts +1 -1
  335. package/dist/generated/themes/ColorPalettePopover.css.js +1 -1
  336. package/dist/generated/themes/ColorPalettePopover.css.js.map +1 -1
  337. package/dist/generated/themes/ColorPicker.css.d.ts +1 -1
  338. package/dist/generated/themes/ColorPicker.css.js +1 -1
  339. package/dist/generated/themes/ColorPicker.css.js.map +1 -1
  340. package/dist/generated/themes/ComboBox.css.d.ts +1 -1
  341. package/dist/generated/themes/ComboBox.css.js +1 -1
  342. package/dist/generated/themes/ComboBox.css.js.map +1 -1
  343. package/dist/generated/themes/ComboBoxItem.css.d.ts +1 -1
  344. package/dist/generated/themes/ComboBoxItem.css.js +1 -1
  345. package/dist/generated/themes/ComboBoxItem.css.js.map +1 -1
  346. package/dist/generated/themes/DatePicker.css.d.ts +1 -1
  347. package/dist/generated/themes/DatePicker.css.js +1 -1
  348. package/dist/generated/themes/DatePicker.css.js.map +1 -1
  349. package/dist/generated/themes/DateTimePickerPopover.css.d.ts +1 -1
  350. package/dist/generated/themes/DateTimePickerPopover.css.js +1 -1
  351. package/dist/generated/themes/DateTimePickerPopover.css.js.map +1 -1
  352. package/dist/generated/themes/DayPicker.css.d.ts +1 -1
  353. package/dist/generated/themes/DayPicker.css.js +1 -1
  354. package/dist/generated/themes/DayPicker.css.js.map +1 -1
  355. package/dist/generated/themes/Dialog.css.d.ts +1 -1
  356. package/dist/generated/themes/Dialog.css.js +1 -1
  357. package/dist/generated/themes/Dialog.css.js.map +1 -1
  358. package/dist/generated/themes/FileUploader.css.d.ts +1 -1
  359. package/dist/generated/themes/FileUploader.css.js +1 -1
  360. package/dist/generated/themes/FileUploader.css.js.map +1 -1
  361. package/dist/generated/themes/Form.css.d.ts +1 -1
  362. package/dist/generated/themes/Form.css.js +1 -1
  363. package/dist/generated/themes/Form.css.js.map +1 -1
  364. package/dist/generated/themes/FormItem.css.d.ts +1 -1
  365. package/dist/generated/themes/FormItem.css.js +1 -1
  366. package/dist/generated/themes/FormItem.css.js.map +1 -1
  367. package/dist/generated/themes/FormItemSpan.css.d.ts +1 -1
  368. package/dist/generated/themes/FormItemSpan.css.js +1 -1
  369. package/dist/generated/themes/FormItemSpan.css.js.map +1 -1
  370. package/dist/generated/themes/GrowingButton.css.d.ts +1 -1
  371. package/dist/generated/themes/GrowingButton.css.js +1 -1
  372. package/dist/generated/themes/GrowingButton.css.js.map +1 -1
  373. package/dist/generated/themes/Icon.css.d.ts +1 -1
  374. package/dist/generated/themes/Icon.css.js +1 -1
  375. package/dist/generated/themes/Icon.css.js.map +1 -1
  376. package/dist/generated/themes/Input.css.d.ts +1 -1
  377. package/dist/generated/themes/Input.css.js +1 -1
  378. package/dist/generated/themes/Input.css.js.map +1 -1
  379. package/dist/generated/themes/InputIcon.css.d.ts +1 -1
  380. package/dist/generated/themes/InputIcon.css.js +1 -1
  381. package/dist/generated/themes/InputIcon.css.js.map +1 -1
  382. package/dist/generated/themes/InputSharedStyles.css.d.ts +1 -1
  383. package/dist/generated/themes/InputSharedStyles.css.js +1 -1
  384. package/dist/generated/themes/InputSharedStyles.css.js.map +1 -1
  385. package/dist/generated/themes/Link.css.d.ts +1 -1
  386. package/dist/generated/themes/Link.css.js +1 -1
  387. package/dist/generated/themes/Link.css.js.map +1 -1
  388. package/dist/generated/themes/List.css.d.ts +1 -1
  389. package/dist/generated/themes/List.css.js +1 -1
  390. package/dist/generated/themes/List.css.js.map +1 -1
  391. package/dist/generated/themes/ListItem.css.d.ts +1 -1
  392. package/dist/generated/themes/ListItem.css.js +1 -1
  393. package/dist/generated/themes/ListItem.css.js.map +1 -1
  394. package/dist/generated/themes/ListItemBase.css.d.ts +1 -1
  395. package/dist/generated/themes/ListItemBase.css.js +1 -1
  396. package/dist/generated/themes/ListItemBase.css.js.map +1 -1
  397. package/dist/generated/themes/ListItemCustom.css.d.ts +1 -1
  398. package/dist/generated/themes/ListItemCustom.css.js +1 -1
  399. package/dist/generated/themes/ListItemCustom.css.js.map +1 -1
  400. package/dist/generated/themes/ListItemGroup.css.d.ts +1 -1
  401. package/dist/generated/themes/ListItemGroup.css.js +1 -1
  402. package/dist/generated/themes/ListItemGroup.css.js.map +1 -1
  403. package/dist/generated/themes/ListItemGroupHeader.css.d.ts +1 -1
  404. package/dist/generated/themes/ListItemGroupHeader.css.js +1 -1
  405. package/dist/generated/themes/ListItemGroupHeader.css.js.map +1 -1
  406. package/dist/generated/themes/ListItemIcon.css.d.ts +1 -1
  407. package/dist/generated/themes/ListItemIcon.css.js +1 -1
  408. package/dist/generated/themes/ListItemIcon.css.js.map +1 -1
  409. package/dist/generated/themes/Menu.css.d.ts +1 -1
  410. package/dist/generated/themes/Menu.css.js +1 -1
  411. package/dist/generated/themes/Menu.css.js.map +1 -1
  412. package/dist/generated/themes/MenuItem.css.d.ts +1 -1
  413. package/dist/generated/themes/MenuItem.css.js +1 -1
  414. package/dist/generated/themes/MenuItem.css.js.map +1 -1
  415. package/dist/generated/themes/MessageStrip.css.d.ts +1 -1
  416. package/dist/generated/themes/MessageStrip.css.js +1 -1
  417. package/dist/generated/themes/MessageStrip.css.js.map +1 -1
  418. package/dist/generated/themes/MonthPicker.css.d.ts +1 -1
  419. package/dist/generated/themes/MonthPicker.css.js +1 -1
  420. package/dist/generated/themes/MonthPicker.css.js.map +1 -1
  421. package/dist/generated/themes/MultiComboBox.css.d.ts +1 -1
  422. package/dist/generated/themes/MultiComboBox.css.js +1 -1
  423. package/dist/generated/themes/MultiComboBox.css.js.map +1 -1
  424. package/dist/generated/themes/MultiComboBoxItem.css.d.ts +1 -1
  425. package/dist/generated/themes/MultiComboBoxItem.css.js +1 -1
  426. package/dist/generated/themes/MultiComboBoxItem.css.js.map +1 -1
  427. package/dist/generated/themes/MultiComboBoxPopover.css.d.ts +1 -1
  428. package/dist/generated/themes/MultiComboBoxPopover.css.js +1 -1
  429. package/dist/generated/themes/MultiComboBoxPopover.css.js.map +1 -1
  430. package/dist/generated/themes/MultiInput.css.d.ts +1 -1
  431. package/dist/generated/themes/MultiInput.css.js +1 -1
  432. package/dist/generated/themes/MultiInput.css.js.map +1 -1
  433. package/dist/generated/themes/OptionBase.css.d.ts +1 -1
  434. package/dist/generated/themes/OptionBase.css.js +1 -1
  435. package/dist/generated/themes/OptionBase.css.js.map +1 -1
  436. package/dist/generated/themes/Panel.css.d.ts +1 -1
  437. package/dist/generated/themes/Panel.css.js +1 -1
  438. package/dist/generated/themes/Panel.css.js.map +1 -1
  439. package/dist/generated/themes/Popover.css.d.ts +1 -1
  440. package/dist/generated/themes/Popover.css.js +1 -1
  441. package/dist/generated/themes/Popover.css.js.map +1 -1
  442. package/dist/generated/themes/PopupsCommon.css.d.ts +1 -1
  443. package/dist/generated/themes/PopupsCommon.css.js +1 -1
  444. package/dist/generated/themes/PopupsCommon.css.js.map +1 -1
  445. package/dist/generated/themes/ProgressIndicator.css.d.ts +1 -1
  446. package/dist/generated/themes/ProgressIndicator.css.js +1 -1
  447. package/dist/generated/themes/ProgressIndicator.css.js.map +1 -1
  448. package/dist/generated/themes/RadioButton.css.d.ts +1 -1
  449. package/dist/generated/themes/RadioButton.css.js +1 -1
  450. package/dist/generated/themes/RadioButton.css.js.map +1 -1
  451. package/dist/generated/themes/RangeSlider.css.d.ts +1 -1
  452. package/dist/generated/themes/RangeSlider.css.js +1 -1
  453. package/dist/generated/themes/RangeSlider.css.js.map +1 -1
  454. package/dist/generated/themes/RatingIndicator.css.d.ts +1 -1
  455. package/dist/generated/themes/RatingIndicator.css.js +1 -1
  456. package/dist/generated/themes/RatingIndicator.css.js.map +1 -1
  457. package/dist/generated/themes/ResponsivePopover.css.d.ts +1 -1
  458. package/dist/generated/themes/ResponsivePopover.css.js +1 -1
  459. package/dist/generated/themes/ResponsivePopover.css.js.map +1 -1
  460. package/dist/generated/themes/ResponsivePopoverCommon.css.d.ts +1 -1
  461. package/dist/generated/themes/ResponsivePopoverCommon.css.js +1 -1
  462. package/dist/generated/themes/ResponsivePopoverCommon.css.js.map +1 -1
  463. package/dist/generated/themes/SegmentedButton.css.d.ts +1 -1
  464. package/dist/generated/themes/SegmentedButton.css.js +1 -1
  465. package/dist/generated/themes/SegmentedButton.css.js.map +1 -1
  466. package/dist/generated/themes/SegmentedButtonItem.css.d.ts +1 -1
  467. package/dist/generated/themes/SegmentedButtonItem.css.js +1 -1
  468. package/dist/generated/themes/SegmentedButtonItem.css.js.map +1 -1
  469. package/dist/generated/themes/Select.css.d.ts +1 -1
  470. package/dist/generated/themes/Select.css.js +1 -1
  471. package/dist/generated/themes/Select.css.js.map +1 -1
  472. package/dist/generated/themes/SliderBase.css.d.ts +1 -1
  473. package/dist/generated/themes/SliderBase.css.js +1 -1
  474. package/dist/generated/themes/SliderBase.css.js.map +1 -1
  475. package/dist/generated/themes/SplitButton.css.d.ts +1 -1
  476. package/dist/generated/themes/SplitButton.css.js +1 -1
  477. package/dist/generated/themes/SplitButton.css.js.map +1 -1
  478. package/dist/generated/themes/StepInput.css.d.ts +1 -1
  479. package/dist/generated/themes/StepInput.css.js +1 -1
  480. package/dist/generated/themes/StepInput.css.js.map +1 -1
  481. package/dist/generated/themes/SuggestionItem.css.d.ts +1 -1
  482. package/dist/generated/themes/SuggestionItem.css.js +1 -1
  483. package/dist/generated/themes/SuggestionItem.css.js.map +1 -1
  484. package/dist/generated/themes/SuggestionItemCustom.css.d.ts +1 -1
  485. package/dist/generated/themes/SuggestionItemCustom.css.js +1 -1
  486. package/dist/generated/themes/SuggestionItemCustom.css.js.map +1 -1
  487. package/dist/generated/themes/Switch.css.d.ts +1 -1
  488. package/dist/generated/themes/Switch.css.js +1 -1
  489. package/dist/generated/themes/Switch.css.js.map +1 -1
  490. package/dist/generated/themes/TabContainer.css.d.ts +1 -1
  491. package/dist/generated/themes/TabContainer.css.js +1 -1
  492. package/dist/generated/themes/TabContainer.css.js.map +1 -1
  493. package/dist/generated/themes/TabInOverflow.css.d.ts +1 -1
  494. package/dist/generated/themes/TabInOverflow.css.js +1 -1
  495. package/dist/generated/themes/TabInOverflow.css.js.map +1 -1
  496. package/dist/generated/themes/TabInStrip.css.d.ts +1 -1
  497. package/dist/generated/themes/TabInStrip.css.js +1 -1
  498. package/dist/generated/themes/TabInStrip.css.js.map +1 -1
  499. package/dist/generated/themes/TabSemanticIcon.css.d.ts +1 -1
  500. package/dist/generated/themes/TabSemanticIcon.css.js +1 -1
  501. package/dist/generated/themes/TabSemanticIcon.css.js.map +1 -1
  502. package/dist/generated/themes/TabSeparatorInOverflow.css.d.ts +1 -1
  503. package/dist/generated/themes/TabSeparatorInOverflow.css.js +1 -1
  504. package/dist/generated/themes/TabSeparatorInOverflow.css.js.map +1 -1
  505. package/dist/generated/themes/Table.css.d.ts +1 -1
  506. package/dist/generated/themes/Table.css.js +1 -1
  507. package/dist/generated/themes/Table.css.js.map +1 -1
  508. package/dist/generated/themes/TableCellBase.css.d.ts +1 -1
  509. package/dist/generated/themes/TableCellBase.css.js +1 -1
  510. package/dist/generated/themes/TableCellBase.css.js.map +1 -1
  511. package/dist/generated/themes/TableHeaderRow.css.d.ts +1 -1
  512. package/dist/generated/themes/TableHeaderRow.css.js +1 -1
  513. package/dist/generated/themes/TableHeaderRow.css.js.map +1 -1
  514. package/dist/generated/themes/TableRow.css.d.ts +1 -1
  515. package/dist/generated/themes/TableRow.css.js +1 -1
  516. package/dist/generated/themes/TableRow.css.js.map +1 -1
  517. package/dist/generated/themes/TableRowActionBase.css.d.ts +1 -1
  518. package/dist/generated/themes/TableRowActionBase.css.js +1 -1
  519. package/dist/generated/themes/TableRowActionBase.css.js.map +1 -1
  520. package/dist/generated/themes/TableRowBase.css.d.ts +1 -1
  521. package/dist/generated/themes/TableRowBase.css.js +1 -1
  522. package/dist/generated/themes/TableRowBase.css.js.map +1 -1
  523. package/dist/generated/themes/Tag.css.d.ts +1 -1
  524. package/dist/generated/themes/Tag.css.js +1 -1
  525. package/dist/generated/themes/Tag.css.js.map +1 -1
  526. package/dist/generated/themes/Text.css.d.ts +1 -1
  527. package/dist/generated/themes/Text.css.js +1 -1
  528. package/dist/generated/themes/Text.css.js.map +1 -1
  529. package/dist/generated/themes/TextArea.css.d.ts +1 -1
  530. package/dist/generated/themes/TextArea.css.js +1 -1
  531. package/dist/generated/themes/TextArea.css.js.map +1 -1
  532. package/dist/generated/themes/TimePicker.css.d.ts +1 -1
  533. package/dist/generated/themes/TimePicker.css.js +1 -1
  534. package/dist/generated/themes/TimePicker.css.js.map +1 -1
  535. package/dist/generated/themes/Toast.css.d.ts +1 -1
  536. package/dist/generated/themes/Toast.css.js +1 -1
  537. package/dist/generated/themes/Toast.css.js.map +1 -1
  538. package/dist/generated/themes/ToggleButton.css.d.ts +1 -1
  539. package/dist/generated/themes/ToggleButton.css.js +1 -1
  540. package/dist/generated/themes/ToggleButton.css.js.map +1 -1
  541. package/dist/generated/themes/Token.css.d.ts +1 -1
  542. package/dist/generated/themes/Token.css.js +1 -1
  543. package/dist/generated/themes/Token.css.js.map +1 -1
  544. package/dist/generated/themes/Tokenizer.css.d.ts +1 -1
  545. package/dist/generated/themes/Tokenizer.css.js +1 -1
  546. package/dist/generated/themes/Tokenizer.css.js.map +1 -1
  547. package/dist/generated/themes/TokenizerPopover.css.d.ts +1 -1
  548. package/dist/generated/themes/TokenizerPopover.css.js +1 -1
  549. package/dist/generated/themes/TokenizerPopover.css.js.map +1 -1
  550. package/dist/generated/themes/Toolbar.css.d.ts +1 -1
  551. package/dist/generated/themes/Toolbar.css.js +1 -1
  552. package/dist/generated/themes/Toolbar.css.js.map +1 -1
  553. package/dist/generated/themes/ToolbarPopover.css.d.ts +1 -1
  554. package/dist/generated/themes/ToolbarPopover.css.js +1 -1
  555. package/dist/generated/themes/ToolbarPopover.css.js.map +1 -1
  556. package/dist/generated/themes/TreeItem.css.d.ts +1 -1
  557. package/dist/generated/themes/TreeItem.css.js +1 -1
  558. package/dist/generated/themes/TreeItem.css.js.map +1 -1
  559. package/dist/generated/themes/ValueStateMessage.css.d.ts +1 -1
  560. package/dist/generated/themes/ValueStateMessage.css.js +1 -1
  561. package/dist/generated/themes/ValueStateMessage.css.js.map +1 -1
  562. package/dist/generated/themes/YearPicker.css.d.ts +1 -1
  563. package/dist/generated/themes/YearPicker.css.js +1 -1
  564. package/dist/generated/themes/YearPicker.css.js.map +1 -1
  565. package/dist/generated/themes/sap_fiori_3/parameters-bundle.css.d.ts +1 -1
  566. package/dist/generated/themes/sap_fiori_3/parameters-bundle.css.js +1 -1
  567. package/dist/generated/themes/sap_fiori_3/parameters-bundle.css.js.map +1 -1
  568. package/dist/generated/themes/sap_fiori_3_dark/parameters-bundle.css.d.ts +1 -1
  569. package/dist/generated/themes/sap_fiori_3_dark/parameters-bundle.css.js +1 -1
  570. package/dist/generated/themes/sap_fiori_3_dark/parameters-bundle.css.js.map +1 -1
  571. package/dist/generated/themes/sap_fiori_3_hcb/parameters-bundle.css.d.ts +1 -1
  572. package/dist/generated/themes/sap_fiori_3_hcb/parameters-bundle.css.js +1 -1
  573. package/dist/generated/themes/sap_fiori_3_hcb/parameters-bundle.css.js.map +1 -1
  574. package/dist/generated/themes/sap_fiori_3_hcw/parameters-bundle.css.d.ts +1 -1
  575. package/dist/generated/themes/sap_fiori_3_hcw/parameters-bundle.css.js +1 -1
  576. package/dist/generated/themes/sap_fiori_3_hcw/parameters-bundle.css.js.map +1 -1
  577. package/dist/generated/themes/sap_horizon/parameters-bundle.css.d.ts +1 -1
  578. package/dist/generated/themes/sap_horizon/parameters-bundle.css.js +1 -1
  579. package/dist/generated/themes/sap_horizon/parameters-bundle.css.js.map +1 -1
  580. package/dist/generated/themes/sap_horizon_dark/parameters-bundle.css.d.ts +1 -1
  581. package/dist/generated/themes/sap_horizon_dark/parameters-bundle.css.js +1 -1
  582. package/dist/generated/themes/sap_horizon_dark/parameters-bundle.css.js.map +1 -1
  583. package/dist/generated/themes/sap_horizon_hcb/parameters-bundle.css.d.ts +1 -1
  584. package/dist/generated/themes/sap_horizon_hcb/parameters-bundle.css.js +1 -1
  585. package/dist/generated/themes/sap_horizon_hcb/parameters-bundle.css.js.map +1 -1
  586. package/dist/generated/themes/sap_horizon_hcw/parameters-bundle.css.d.ts +1 -1
  587. package/dist/generated/themes/sap_horizon_hcw/parameters-bundle.css.js +1 -1
  588. package/dist/generated/themes/sap_horizon_hcw/parameters-bundle.css.js.map +1 -1
  589. package/dist/types/ListItemAccessibleRole.d.ts +5 -0
  590. package/dist/types/ListItemAccessibleRole.js +5 -0
  591. package/dist/types/ListItemAccessibleRole.js.map +1 -1
  592. package/dist/types/TableCellHorizontalAlign.d.ts +1 -0
  593. package/dist/types/TableCellHorizontalAlign.js +1 -0
  594. package/dist/types/TableCellHorizontalAlign.js.map +1 -1
  595. package/dist/types/TableGrowingMode.d.ts +1 -0
  596. package/dist/types/TableGrowingMode.js +1 -0
  597. package/dist/types/TableGrowingMode.js.map +1 -1
  598. package/dist/types/TableOverflowMode.d.ts +1 -0
  599. package/dist/types/TableOverflowMode.js +1 -0
  600. package/dist/types/TableOverflowMode.js.map +1 -1
  601. package/dist/types/TableSelectionMode.d.ts +2 -0
  602. package/dist/types/TableSelectionMode.js +2 -0
  603. package/dist/types/TableSelectionMode.js.map +1 -1
  604. package/dist/vscode.html-custom-data.json +51 -10
  605. package/dist/web-types.json +99 -23
  606. package/package.json +10 -10
  607. package/src/AvatarTemplate.tsx +1 -1
  608. package/src/ComboBoxItemGroupTemplate.tsx +2 -2
  609. package/src/ExpandableTextTemplate.tsx +0 -1
  610. package/src/InputPopoverTemplate.tsx +5 -2
  611. package/src/InputTemplate.tsx +5 -3
  612. package/src/ListBoxItemGroupTemplate.tsx +33 -0
  613. package/src/ListItemGroupHeaderTemplate.tsx +5 -3
  614. package/src/ListItemGroupTemplate.tsx +21 -19
  615. package/src/ListTemplate.tsx +2 -1
  616. package/src/MultiComboBoxItemGroupTemplate.tsx +2 -2
  617. package/src/SelectTemplate.tsx +2 -0
  618. package/src/TableHeaderRow.hbs +1 -1
  619. package/src/TableRow.hbs +2 -2
  620. package/src/features/InputSuggestionsTemplate.tsx +12 -6
  621. package/src/i18n/messagebundle.properties +6 -0
  622. package/src/i18n/messagebundle_ar.properties +2 -0
  623. package/src/i18n/messagebundle_bg.properties +2 -0
  624. package/src/i18n/messagebundle_ca.properties +2 -0
  625. package/src/i18n/messagebundle_cnr.properties +2 -0
  626. package/src/i18n/messagebundle_cs.properties +2 -0
  627. package/src/i18n/messagebundle_cy.properties +2 -0
  628. package/src/i18n/messagebundle_da.properties +2 -0
  629. package/src/i18n/messagebundle_de.properties +2 -0
  630. package/src/i18n/messagebundle_el.properties +2 -0
  631. package/src/i18n/messagebundle_en.properties +2 -0
  632. package/src/i18n/messagebundle_en_GB.properties +2 -0
  633. package/src/i18n/messagebundle_en_US_sappsd.properties +2 -0
  634. package/src/i18n/messagebundle_en_US_saprigi.properties +2 -0
  635. package/src/i18n/messagebundle_en_US_saptrc.properties +2 -0
  636. package/src/i18n/messagebundle_es.properties +2 -0
  637. package/src/i18n/messagebundle_es_MX.properties +2 -0
  638. package/src/i18n/messagebundle_et.properties +2 -0
  639. package/src/i18n/messagebundle_fi.properties +2 -0
  640. package/src/i18n/messagebundle_fr.properties +2 -0
  641. package/src/i18n/messagebundle_fr_CA.properties +2 -0
  642. package/src/i18n/messagebundle_hi.properties +2 -0
  643. package/src/i18n/messagebundle_hr.properties +2 -0
  644. package/src/i18n/messagebundle_hu.properties +2 -0
  645. package/src/i18n/messagebundle_id.properties +2 -0
  646. package/src/i18n/messagebundle_it.properties +2 -0
  647. package/src/i18n/messagebundle_iw.properties +2 -0
  648. package/src/i18n/messagebundle_ja.properties +2 -0
  649. package/src/i18n/messagebundle_kk.properties +2 -0
  650. package/src/i18n/messagebundle_ko.properties +2 -0
  651. package/src/i18n/messagebundle_lt.properties +2 -0
  652. package/src/i18n/messagebundle_lv.properties +2 -0
  653. package/src/i18n/messagebundle_mk.properties +2 -0
  654. package/src/i18n/messagebundle_ms.properties +2 -0
  655. package/src/i18n/messagebundle_nl.properties +2 -0
  656. package/src/i18n/messagebundle_no.properties +2 -0
  657. package/src/i18n/messagebundle_pl.properties +2 -0
  658. package/src/i18n/messagebundle_pt.properties +2 -0
  659. package/src/i18n/messagebundle_pt_PT.properties +2 -0
  660. package/src/i18n/messagebundle_ro.properties +2 -0
  661. package/src/i18n/messagebundle_ru.properties +2 -0
  662. package/src/i18n/messagebundle_sh.properties +2 -0
  663. package/src/i18n/messagebundle_sk.properties +2 -0
  664. package/src/i18n/messagebundle_sl.properties +2 -0
  665. package/src/i18n/messagebundle_sr.properties +2 -0
  666. package/src/i18n/messagebundle_sv.properties +2 -0
  667. package/src/i18n/messagebundle_th.properties +2 -0
  668. package/src/i18n/messagebundle_tr.properties +2 -0
  669. package/src/i18n/messagebundle_uk.properties +2 -0
  670. package/src/i18n/messagebundle_vi.properties +2 -0
  671. package/src/i18n/messagebundle_zh_CN.properties +2 -0
  672. package/src/i18n/messagebundle_zh_TW.properties +2 -0
  673. package/src/themes/Avatar.css +51 -2
  674. package/src/themes/CheckBox.css +1 -1
  675. package/src/themes/List.css +1 -1
  676. package/src/themes/Menu.css +7 -0
  677. package/src/themes/PopupsCommon.css +7 -4
  678. package/src/themes/Tag.css +1 -6
  679. package/src/themes/Text.css +9 -5
  680. package/src/themes/Toast.css +1 -1
  681. package/src/themes/base/Avatar-parameters.css +1 -1
  682. package/src/themes/base/Toast-parameters.css +2 -2
  683. package/src/themes/sap_horizon/Avatar-parameters.css +3 -2
  684. package/src/themes/sap_horizon_dark/Avatar-parameters.css +2 -1
  685. package/src/themes/sap_horizon_hcb/Avatar-parameters.css +3 -2
  686. package/src/themes/sap_horizon_hcw/Avatar-parameters.css +3 -2
  687. package/dist/SuggestionItemGroupTemplate.d.ts +0 -2
  688. package/dist/SuggestionItemGroupTemplate.js +0 -5
  689. package/dist/SuggestionItemGroupTemplate.js.map +0 -1
  690. package/src/SuggestionItemGroupTemplate.tsx +0 -6
@@ -16,6 +16,7 @@ import type I18nBundle from "@ui5/webcomponents-base/dist/i18nBundle.js";
16
16
  * @extends TableRowActionBase
17
17
  * @since 2.7.0
18
18
  * @public
19
+ * @experimental
19
20
  */
20
21
  declare class TableRowActionNavigation extends TableRowActionBase {
21
22
  /**
@@ -24,6 +24,7 @@ import "@ui5/webcomponents-icons/dist/navigation-right-arrow.js";
24
24
  * @extends TableRowActionBase
25
25
  * @since 2.7.0
26
26
  * @public
27
+ * @experimental
27
28
  */
28
29
  let TableRowActionNavigation = TableRowActionNavigation_1 = class TableRowActionNavigation extends TableRowActionBase {
29
30
  constructor() {
@@ -1 +1 @@
1
- {"version":3,"file":"TableRowActionNavigation.js","sourceRoot":"","sources":["../src/TableRowActionNavigation.ts"],"names":[],"mappings":";;;;;;;AAAA,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,4CAA4C,CAAC;AAC3F,OAAO,kBAAkB,MAAM,yBAAyB,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AACrE,OAAO,yDAAyD,CAAC;AAGjE;;;;;;;;;;;;;;;GAeG;AAGH,IAAM,wBAAwB,gCAA9B,MAAM,wBAAyB,SAAQ,kBAAkB;IAAzD;;QACC;;;;;WAKG;QAEH,gBAAW,GAAG,KAAK,CAAC;IAoBrB,CAAC;IAfA,aAAa;QACZ,OAAO;YACN,IAAI,EAAE,IAAI,CAAC,eAAe;YAC1B,IAAI,EAAE,wBAAwB;YAC9B,WAAW,EAAE,IAAI,CAAC,WAAW;SAC7B,CAAC;IACH,CAAC;IAED,aAAa;QACZ,OAAO,IAAI,CAAC;IACb,CAAC;IAED,IAAI,eAAe;QAClB,OAAO,0BAAwB,CAAC,UAAU,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;IACtE,CAAC;CACD,CAAA;AApBA;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;6DACR;AAGb;IADN,IAAI,CAAC,oBAAoB,CAAC;kDACG;AAXzB,wBAAwB;IAF7B,aAAa,CAAC,EAAE,GAAG,EAAE,iCAAiC,EAAE,CAAC;GAEpD,wBAAwB,CA4B7B;AAED,wBAAwB,CAAC,MAAM,EAAE,CAAC;AAElC,eAAe,wBAAwB,CAAC","sourcesContent":["import { customElement, property, i18n } from \"@ui5/webcomponents-base/dist/decorators.js\";\nimport TableRowActionBase from \"./TableRowActionBase.js\";\nimport { TABLE_NAVIGATION } from \"./generated/i18n/i18n-defaults.js\";\nimport \"@ui5/webcomponents-icons/dist/navigation-right-arrow.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\n\n/**\n * @class\n *\n * ### Overview\n *\n * The `ui5-table-row-action-navigation` component defines a navigation action for table rows.\n *\n * ### ES6 Module Import\n *\n * `import \"@ui5/webcomponents/dist/TableRowActionNavigation.js\";`\n *\n * @constructor\n * @extends TableRowActionBase\n * @since 2.7.0\n * @public\n */\n@customElement({ tag: \"ui5-table-row-action-navigation\" })\n\nclass TableRowActionNavigation extends TableRowActionBase {\n\t/**\n\t * Defines the interactive state of the navigation action.\n\t *\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\tinteractive = false;\n\n\t@i18n(\"@ui5/webcomponents\")\n\tstatic i18nBundle: I18nBundle;\n\n\tgetRenderInfo() {\n\t\treturn {\n\t\t\ttext: this._i18nNavigation,\n\t\t\ticon: \"navigation-right-arrow\",\n\t\t\tinteractive: this.interactive,\n\t\t};\n\t}\n\n\tisFixedAction() {\n\t\treturn true;\n\t}\n\n\tget _i18nNavigation() {\n\t\treturn TableRowActionNavigation.i18nBundle.getText(TABLE_NAVIGATION);\n\t}\n}\n\nTableRowActionNavigation.define();\n\nexport default TableRowActionNavigation;\n"]}
1
+ {"version":3,"file":"TableRowActionNavigation.js","sourceRoot":"","sources":["../src/TableRowActionNavigation.ts"],"names":[],"mappings":";;;;;;;AAAA,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,4CAA4C,CAAC;AAC3F,OAAO,kBAAkB,MAAM,yBAAyB,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AACrE,OAAO,yDAAyD,CAAC;AAGjE;;;;;;;;;;;;;;;;GAgBG;AAGH,IAAM,wBAAwB,gCAA9B,MAAM,wBAAyB,SAAQ,kBAAkB;IAAzD;;QACC;;;;;WAKG;QAEH,gBAAW,GAAG,KAAK,CAAC;IAoBrB,CAAC;IAfA,aAAa;QACZ,OAAO;YACN,IAAI,EAAE,IAAI,CAAC,eAAe;YAC1B,IAAI,EAAE,wBAAwB;YAC9B,WAAW,EAAE,IAAI,CAAC,WAAW;SAC7B,CAAC;IACH,CAAC;IAED,aAAa;QACZ,OAAO,IAAI,CAAC;IACb,CAAC;IAED,IAAI,eAAe;QAClB,OAAO,0BAAwB,CAAC,UAAU,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;IACtE,CAAC;CACD,CAAA;AApBA;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;6DACR;AAGb;IADN,IAAI,CAAC,oBAAoB,CAAC;kDACG;AAXzB,wBAAwB;IAF7B,aAAa,CAAC,EAAE,GAAG,EAAE,iCAAiC,EAAE,CAAC;GAEpD,wBAAwB,CA4B7B;AAED,wBAAwB,CAAC,MAAM,EAAE,CAAC;AAElC,eAAe,wBAAwB,CAAC","sourcesContent":["import { customElement, property, i18n } from \"@ui5/webcomponents-base/dist/decorators.js\";\nimport TableRowActionBase from \"./TableRowActionBase.js\";\nimport { TABLE_NAVIGATION } from \"./generated/i18n/i18n-defaults.js\";\nimport \"@ui5/webcomponents-icons/dist/navigation-right-arrow.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\n\n/**\n * @class\n *\n * ### Overview\n *\n * The `ui5-table-row-action-navigation` component defines a navigation action for table rows.\n *\n * ### ES6 Module Import\n *\n * `import \"@ui5/webcomponents/dist/TableRowActionNavigation.js\";`\n *\n * @constructor\n * @extends TableRowActionBase\n * @since 2.7.0\n * @public\n * @experimental\n */\n@customElement({ tag: \"ui5-table-row-action-navigation\" })\n\nclass TableRowActionNavigation extends TableRowActionBase {\n\t/**\n\t * Defines the interactive state of the navigation action.\n\t *\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\tinteractive = false;\n\n\t@i18n(\"@ui5/webcomponents\")\n\tstatic i18nBundle: I18nBundle;\n\n\tgetRenderInfo() {\n\t\treturn {\n\t\t\ttext: this._i18nNavigation,\n\t\t\ticon: \"navigation-right-arrow\",\n\t\t\tinteractive: this.interactive,\n\t\t};\n\t}\n\n\tisFixedAction() {\n\t\treturn true;\n\t}\n\n\tget _i18nNavigation() {\n\t\treturn TableRowActionNavigation.i18nBundle.getText(TABLE_NAVIGATION);\n\t}\n}\n\nTableRowActionNavigation.define();\n\nexport default TableRowActionNavigation;\n"]}
@@ -19,12 +19,12 @@ declare abstract class TableRowBase extends UI5Element {
19
19
  onEnterDOM(): void;
20
20
  onBeforeRendering(): void;
21
21
  getFocusDomRef(): this;
22
- _informSelectionChange(): void;
23
22
  isHeaderRow(): boolean;
23
+ _onSelectionChange(): void;
24
24
  _onkeydown(e: KeyboardEvent, eventOrigin: HTMLElement): void;
25
25
  get _table(): Table | undefined;
26
26
  get _tableId(): string | undefined;
27
- get _tableSelection(): import("./TableSelection.js").default | undefined;
27
+ get _tableSelection(): import("./TableSelectionBase.js").default | import("./TableSelection.js").default | undefined;
28
28
  get _isSelected(): boolean | undefined;
29
29
  get _isSelectable(): boolean | undefined;
30
30
  get _isMultiSelect(): boolean | undefined;
@@ -45,15 +45,17 @@ let TableRowBase = TableRowBase_1 = class TableRowBase extends UI5Element {
45
45
  getFocusDomRef() {
46
46
  return this;
47
47
  }
48
- _informSelectionChange() {
49
- this._tableSelection?.informSelectionChange(this);
50
- }
51
48
  isHeaderRow() {
52
49
  return false;
53
50
  }
51
+ _onSelectionChange() {
52
+ const tableSelection = this._tableSelection;
53
+ const selected = tableSelection.isMultiSelectable() ? !this._isSelected : true;
54
+ tableSelection.setSelected(this, selected, true);
55
+ }
54
56
  _onkeydown(e, eventOrigin) {
55
57
  if ((eventOrigin === this && this._isSelectable && isSpace(e)) || (eventOrigin === this._selectionCell && (isSpace(e) || isEnter(e)))) {
56
- this._informSelectionChange();
58
+ this._onSelectionChange();
57
59
  e.preventDefault();
58
60
  }
59
61
  }
@@ -74,10 +76,10 @@ let TableRowBase = TableRowBase_1 = class TableRowBase extends UI5Element {
74
76
  return this._tableSelection?.isSelectable();
75
77
  }
76
78
  get _isMultiSelect() {
77
- return this._tableSelection?.isMultiSelect();
79
+ return this._tableSelection?.isMultiSelectable();
78
80
  }
79
81
  get _hasRowSelector() {
80
- return this._tableSelection?.hasRowSelector();
82
+ return this._tableSelection?.isRowSelectorRequired();
81
83
  }
82
84
  get _selectionCell() {
83
85
  return this.shadowRoot.getElementById("selection-cell");
@@ -86,7 +88,7 @@ let TableRowBase = TableRowBase_1 = class TableRowBase extends UI5Element {
86
88
  return this.cells.filter(c => !c._popin);
87
89
  }
88
90
  get _popinCells() {
89
- return this.cells.filter(c => c._popin);
91
+ return this.cells.filter(c => c._popin && !c._popinHidden);
90
92
  }
91
93
  get _stickyCells() {
92
94
  const selectionCell = this.shadowRoot?.querySelector("#selection-cell"), navigatedCell = this.shadowRoot?.querySelector("#navigated-cell");
@@ -1 +1 @@
1
- {"version":3,"file":"TableRowBase.js","sourceRoot":"","sources":["../src/TableRowBase.ts"],"names":[],"mappings":"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","sourcesContent":["import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport { isEnter, isSpace } from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport litRender from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport i18n from \"@ui5/webcomponents-base/dist/decorators/i18n.js\";\nimport type TableCellBase from \"./TableCellBase.js\";\nimport TableRowBaseCss from \"./generated/themes/TableRowBase.css.js\";\nimport type Table from \"./Table.js\";\nimport CheckBox from \"./CheckBox.js\";\nimport { isInstanceOfTable } from \"./TableUtils.js\";\nimport {\n\tTABLE_ROW_SELECTOR,\n} from \"./generated/i18n/i18n-defaults.js\";\n\n/**\n * @class\n * A class to serve as a foundation for the `TableRow` and `TableHeaderRow` classes.\n * @constructor\n * @abstract\n * @extends UI5Element\n * @since 2.0.0\n * @public\n */\n@customElement({\n\trenderer: litRender,\n\tstyles: TableRowBaseCss,\n\tdependencies: [CheckBox],\n})\nabstract class TableRowBase extends UI5Element {\n\tcells!: Array<TableCellBase>;\n\n\t@property({ type: Number, noAttribute: true })\n\t_invalidate = 0;\n\n\t@property({ type: Number, noAttribute: true })\n\t_rowActionCount = 0;\n\n\t@i18n(\"@ui5/webcomponents\")\n\tstatic i18nBundle: I18nBundle;\n\n\tonEnterDOM() {\n\t\tthis.setAttribute(\"role\", \"row\");\n\t\tthis.toggleAttribute(\"ui5-table-row-base\", true);\n\t}\n\n\tonBeforeRendering() {\n\t\tif (this._isSelectable) {\n\t\t\tthis.setAttribute(\"aria-selected\", `${this._isSelected}`);\n\t\t} else {\n\t\t\tthis.removeAttribute(\"aria-selected\");\n\t\t}\n\t}\n\n\tgetFocusDomRef() {\n\t\treturn this;\n\t}\n\n\t_informSelectionChange() {\n\t\tthis._tableSelection?.informSelectionChange(this);\n\t}\n\n\tisHeaderRow(): boolean {\n\t\treturn false;\n\t}\n\n\t_onkeydown(e: KeyboardEvent, eventOrigin: HTMLElement) {\n\t\tif ((eventOrigin === this && this._isSelectable && isSpace(e)) || (eventOrigin === this._selectionCell && (isSpace(e) || isEnter(e)))) {\n\t\t\tthis._informSelectionChange();\n\t\t\te.preventDefault();\n\t\t}\n\t}\n\n\tget _table(): Table | undefined {\n\t\tconst element = this.parentElement;\n\t\treturn isInstanceOfTable(element) ? element : undefined;\n\t}\n\n\tget _tableId() {\n\t\treturn this._table?._id;\n\t}\n\n\tget _tableSelection() {\n\t\treturn this._table?._getSelection();\n\t}\n\n\tget _isSelected() {\n\t\treturn this._tableSelection?.isSelected(this);\n\t}\n\n\tget _isSelectable() {\n\t\treturn this._tableSelection?.isSelectable();\n\t}\n\n\tget _isMultiSelect() {\n\t\treturn this._tableSelection?.isMultiSelect();\n\t}\n\n\tget _hasRowSelector() {\n\t\treturn this._tableSelection?.hasRowSelector();\n\t}\n\n\tget _selectionCell() {\n\t\treturn this.shadowRoot!.getElementById(\"selection-cell\");\n\t}\n\n\tget _visibleCells() {\n\t\treturn this.cells.filter(c => !c._popin);\n\t}\n\n\tget _popinCells() {\n\t\treturn this.cells.filter(c => c._popin);\n\t}\n\n\tget _stickyCells() {\n\t\tconst selectionCell = this.shadowRoot?.querySelector(\"#selection-cell\"),\n\t\t\tnavigatedCell = this.shadowRoot?.querySelector(\"#navigated-cell\");\n\n\t\t// filter out null/undefined\n\t\treturn [selectionCell, ...this.cells, navigatedCell].filter(cell => cell?.hasAttribute(\"fixed\"));\n\t}\n\n\tget _i18nRowSelector(): string {\n\t\treturn TableRowBase.i18nBundle.getText(TABLE_ROW_SELECTOR);\n\t}\n}\n\nexport default TableRowBase;\n"]}
1
+ {"version":3,"file":"TableRowBase.js","sourceRoot":"","sources":["../src/TableRowBase.ts"],"names":[],"mappings":"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","sourcesContent":["import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport { isEnter, isSpace } from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport litRender from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport i18n from \"@ui5/webcomponents-base/dist/decorators/i18n.js\";\nimport type TableCellBase from \"./TableCellBase.js\";\nimport TableRowBaseCss from \"./generated/themes/TableRowBase.css.js\";\nimport type Table from \"./Table.js\";\nimport CheckBox from \"./CheckBox.js\";\nimport { isInstanceOfTable } from \"./TableUtils.js\";\nimport {\n\tTABLE_ROW_SELECTOR,\n} from \"./generated/i18n/i18n-defaults.js\";\n\n/**\n * @class\n * A class to serve as a foundation for the `TableRow` and `TableHeaderRow` classes.\n * @constructor\n * @abstract\n * @extends UI5Element\n * @since 2.0.0\n * @public\n */\n@customElement({\n\trenderer: litRender,\n\tstyles: TableRowBaseCss,\n\tdependencies: [CheckBox],\n})\nabstract class TableRowBase extends UI5Element {\n\tcells!: Array<TableCellBase>;\n\n\t@property({ type: Number, noAttribute: true })\n\t_invalidate = 0;\n\n\t@property({ type: Number, noAttribute: true })\n\t_rowActionCount = 0;\n\n\t@i18n(\"@ui5/webcomponents\")\n\tstatic i18nBundle: I18nBundle;\n\n\tonEnterDOM() {\n\t\tthis.setAttribute(\"role\", \"row\");\n\t\tthis.toggleAttribute(\"ui5-table-row-base\", true);\n\t}\n\n\tonBeforeRendering() {\n\t\tif (this._isSelectable) {\n\t\t\tthis.setAttribute(\"aria-selected\", `${this._isSelected}`);\n\t\t} else {\n\t\t\tthis.removeAttribute(\"aria-selected\");\n\t\t}\n\t}\n\n\tgetFocusDomRef() {\n\t\treturn this;\n\t}\n\n\tisHeaderRow(): boolean {\n\t\treturn false;\n\t}\n\n\t_onSelectionChange() {\n\t\tconst tableSelection = this._tableSelection!;\n\t\tconst selected = tableSelection.isMultiSelectable() ? !this._isSelected : true;\n\t\ttableSelection.setSelected(this, selected, true);\n\t}\n\n\t_onkeydown(e: KeyboardEvent, eventOrigin: HTMLElement) {\n\t\tif ((eventOrigin === this && this._isSelectable && isSpace(e)) || (eventOrigin === this._selectionCell && (isSpace(e) || isEnter(e)))) {\n\t\t\tthis._onSelectionChange();\n\t\t\te.preventDefault();\n\t\t}\n\t}\n\n\tget _table(): Table | undefined {\n\t\tconst element = this.parentElement;\n\t\treturn isInstanceOfTable(element) ? element : undefined;\n\t}\n\n\tget _tableId() {\n\t\treturn this._table?._id;\n\t}\n\n\tget _tableSelection() {\n\t\treturn this._table?._getSelection();\n\t}\n\n\tget _isSelected() {\n\t\treturn this._tableSelection?.isSelected(this);\n\t}\n\n\tget _isSelectable() {\n\t\treturn this._tableSelection?.isSelectable();\n\t}\n\n\tget _isMultiSelect() {\n\t\treturn this._tableSelection?.isMultiSelectable();\n\t}\n\n\tget _hasRowSelector() {\n\t\treturn this._tableSelection?.isRowSelectorRequired();\n\t}\n\n\tget _selectionCell() {\n\t\treturn this.shadowRoot!.getElementById(\"selection-cell\");\n\t}\n\n\tget _visibleCells() {\n\t\treturn this.cells.filter(c => !c._popin);\n\t}\n\n\tget _popinCells() {\n\t\treturn this.cells.filter(c => c._popin && !c._popinHidden);\n\t}\n\n\tget _stickyCells() {\n\t\tconst selectionCell = this.shadowRoot?.querySelector(\"#selection-cell\"),\n\t\t\tnavigatedCell = this.shadowRoot?.querySelector(\"#navigated-cell\");\n\n\t\t// filter out null/undefined\n\t\treturn [selectionCell, ...this.cells, navigatedCell].filter(cell => cell?.hasAttribute(\"fixed\"));\n\t}\n\n\tget _i18nRowSelector(): string {\n\t\treturn TableRowBase.i18nBundle.getText(TABLE_ROW_SELECTOR);\n\t}\n}\n\nexport default TableRowBase;\n"]}
@@ -9,7 +9,7 @@ import type TableRowBase from "./TableRowBase.js";
9
9
  *
10
10
  * ### Overview
11
11
  *
12
- * The `ui5-table-selection` component is used inside the `ui5-table` ti add key-based selection capabilities to the `ui5-table`.
12
+ * The `ui5-table-selection` component is used inside the `ui5-table` to add key-based selection capabilities to the `ui5-table`.
13
13
  *
14
14
  * The component offers three selection modes:
15
15
  * * Single - select a single row.
@@ -39,6 +39,7 @@ import type TableRowBase from "./TableRowBase.js";
39
39
  * @since 2.0.0
40
40
  * @public
41
41
  * @experimental This web component is available since 2.0 with an experimental flag and its API and behavior are subject to change.
42
+ * @deprecated This component is deprecated and will be removed in future releases. Use the `ui5-table-selection-single` or `ui5-table-selection-multi` components instead.
42
43
  */
43
44
  declare class TableSelection extends UI5Element implements ITableFeature {
44
45
  eventDetails: {
@@ -60,6 +61,7 @@ declare class TableSelection extends UI5Element implements ITableFeature {
60
61
  selected: string;
61
62
  readonly identifier = "TableSelection";
62
63
  _table?: Table;
64
+ _rowsLength: number;
63
65
  _rangeSelection?: {
64
66
  selected: boolean;
65
67
  isUp: boolean | null;
@@ -70,21 +72,21 @@ declare class TableSelection extends UI5Element implements ITableFeature {
70
72
  onTableActivate(table: Table): void;
71
73
  onExitDOM(): void;
72
74
  onBeforeRendering(): void;
75
+ onTableBeforeRendering(): void;
73
76
  isSelectable(): boolean;
74
- isMultiSelect(): boolean;
75
- hasRowSelector(): boolean;
76
- getRowIdentifier(row: TableRow): string;
77
+ isMultiSelectable(): boolean;
78
+ isRowSelectorRequired(): boolean;
79
+ getRowKey(row: TableRow): string;
77
80
  isSelected(row: TableRowBase): boolean;
78
81
  hasSelectedRow(): boolean;
79
82
  areAllRowsSelected(): boolean;
80
- informSelectionChange(row: TableRowBase): void;
83
+ setSelected(row: TableRowBase, selected: boolean, fireEvent?: boolean): void;
81
84
  get selectedAsArray(): string[];
82
85
  set selectedAsArray(selectedArray: string[]);
83
86
  get selectedAsSet(): Set<string>;
84
87
  set selectedAsSet(selectedSet: Set<string>);
85
88
  _selectRow(row: TableRow, selected: boolean): void;
86
- _informRowSelectionChange(row: TableRow): void;
87
- _informHeaderRowSelectionChange(): void;
89
+ _selectHeaderRow(selected: boolean): void;
88
90
  _invalidateTableAndRows(): void;
89
91
  _onkeydown(e: KeyboardEvent): void;
90
92
  _onkeyup(e: KeyboardEvent, eventOrigin: HTMLElement): void;
@@ -17,7 +17,7 @@ import { isSelectionCheckbox, isHeaderSelector, findRowInPath } from "./TableUti
17
17
  *
18
18
  * ### Overview
19
19
  *
20
- * The `ui5-table-selection` component is used inside the `ui5-table` ti add key-based selection capabilities to the `ui5-table`.
20
+ * The `ui5-table-selection` component is used inside the `ui5-table` to add key-based selection capabilities to the `ui5-table`.
21
21
  *
22
22
  * The component offers three selection modes:
23
23
  * * Single - select a single row.
@@ -47,6 +47,7 @@ import { isSelectionCheckbox, isHeaderSelector, findRowInPath } from "./TableUti
47
47
  * @since 2.0.0
48
48
  * @public
49
49
  * @experimental This web component is available since 2.0 with an experimental flag and its API and behavior are subject to change.
50
+ * @deprecated This component is deprecated and will be removed in future releases. Use the `ui5-table-selection-single` or `ui5-table-selection-multi` components instead.
50
51
  */
51
52
  let TableSelection = class TableSelection extends UI5Element {
52
53
  constructor() {
@@ -66,6 +67,7 @@ let TableSelection = class TableSelection extends UI5Element {
66
67
  */
67
68
  this.selected = "";
68
69
  this.identifier = "TableSelection";
70
+ this._rowsLength = 0;
69
71
  }
70
72
  onTableActivate(table) {
71
73
  this._table = table;
@@ -79,17 +81,23 @@ let TableSelection = class TableSelection extends UI5Element {
79
81
  onBeforeRendering() {
80
82
  this._invalidateTableAndRows();
81
83
  }
84
+ onTableBeforeRendering() {
85
+ if (this.isMultiSelectable() && this._table && this._table.headerRow[0] && this._rowsLength !== this._table.rows.length) {
86
+ this._rowsLength = this._table.rows.length;
87
+ this._table.headerRow[0]._invalidate++;
88
+ }
89
+ }
82
90
  isSelectable() {
83
91
  return this.mode !== TableSelectionMode.None;
84
92
  }
85
- isMultiSelect() {
93
+ isMultiSelectable() {
86
94
  return this.mode === TableSelectionMode.Multiple;
87
95
  }
88
- hasRowSelector() {
96
+ isRowSelectorRequired() {
89
97
  return this.mode !== TableSelectionMode.None;
90
98
  }
91
- getRowIdentifier(row) {
92
- return row.rowKey;
99
+ getRowKey(row) {
100
+ return row.rowKey || "";
93
101
  }
94
102
  isSelected(row) {
95
103
  if (!this._table || !this.isSelectable()) {
@@ -98,8 +106,8 @@ let TableSelection = class TableSelection extends UI5Element {
98
106
  if (row.isHeaderRow()) {
99
107
  return this.areAllRowsSelected();
100
108
  }
101
- const rowIdentifier = this.getRowIdentifier(row);
102
- return this.selectedAsArray.includes(rowIdentifier);
109
+ const rowKey = this.getRowKey(row);
110
+ return this.selectedAsArray.includes(rowKey);
103
111
  }
104
112
  hasSelectedRow() {
105
113
  if (!this._table || !this.isSelectable()) {
@@ -107,8 +115,8 @@ let TableSelection = class TableSelection extends UI5Element {
107
115
  }
108
116
  const selectedArray = this.selectedAsArray;
109
117
  return this._table.rows.some(row => {
110
- const rowIdentifier = this.getRowIdentifier(row);
111
- return selectedArray.includes(rowIdentifier);
118
+ const rowKey = this.getRowKey(row);
119
+ return selectedArray.includes(rowKey);
112
120
  });
113
121
  }
114
122
  areAllRowsSelected() {
@@ -117,19 +125,22 @@ let TableSelection = class TableSelection extends UI5Element {
117
125
  }
118
126
  const selectedArray = this.selectedAsArray;
119
127
  return this._table.rows.every(row => {
120
- const rowIdentifier = this.getRowIdentifier(row);
121
- return selectedArray.includes(rowIdentifier);
128
+ const rowKey = this.getRowKey(row);
129
+ return selectedArray.includes(rowKey);
122
130
  });
123
131
  }
124
- informSelectionChange(row) {
132
+ setSelected(row, selected, fireEvent = false) {
125
133
  if (this._rangeSelection?.isMouse && this._rangeSelection.shiftPressed) {
126
134
  return;
127
135
  }
128
136
  if (row.isHeaderRow()) {
129
- this._informHeaderRowSelectionChange();
137
+ this._selectHeaderRow(selected);
130
138
  }
131
139
  else {
132
- this._informRowSelectionChange(row);
140
+ this._selectRow(row, selected);
141
+ }
142
+ if (fireEvent) {
143
+ this.fireDecoratorEvent("change");
133
144
  }
134
145
  }
135
146
  get selectedAsArray() {
@@ -145,30 +156,23 @@ let TableSelection = class TableSelection extends UI5Element {
145
156
  this.selectedAsArray = [...selectedSet];
146
157
  }
147
158
  _selectRow(row, selected) {
148
- const rowIdentifier = this.getRowIdentifier(row);
159
+ const rowKey = this.getRowKey(row);
149
160
  if (this.mode === TableSelectionMode.Multiple) {
150
161
  const selectedSet = this.selectedAsSet;
151
- selectedSet[selected ? "add" : "delete"](rowIdentifier);
162
+ selectedSet[selected ? "add" : "delete"](rowKey);
152
163
  this.selectedAsSet = selectedSet;
153
164
  }
154
165
  else {
155
- this.selected = selected ? rowIdentifier : "";
166
+ this.selected = selected ? rowKey : "";
156
167
  }
157
168
  }
158
- _informRowSelectionChange(row) {
159
- const isRowSelected = this.isMultiSelect() ? !this.isSelected(row) : true;
160
- this._selectRow(row, isRowSelected);
161
- this.fireDecoratorEvent("change");
162
- }
163
- _informHeaderRowSelectionChange() {
164
- const isRowSelected = this.areAllRowsSelected();
169
+ _selectHeaderRow(selected) {
165
170
  const selectedSet = this.selectedAsSet;
166
171
  this._table.rows.forEach(row => {
167
- const rowIdentifier = this.getRowIdentifier(row);
168
- selectedSet[isRowSelected ? "delete" : "add"](rowIdentifier);
172
+ const rowKey = this.getRowKey(row);
173
+ selectedSet[selected ? "add" : "delete"](rowKey);
169
174
  });
170
175
  this.selectedAsSet = selectedSet;
171
- this.fireDecoratorEvent("change");
172
176
  }
173
177
  _invalidateTableAndRows() {
174
178
  if (!this._table) {
@@ -177,7 +181,7 @@ let TableSelection = class TableSelection extends UI5Element {
177
181
  if (!this.isSelectable()) {
178
182
  this.selected = "";
179
183
  }
180
- else if (!this.isMultiSelect()) {
184
+ else if (!this.isMultiSelectable()) {
181
185
  this.selected = this.selectedAsArray.shift() || "";
182
186
  }
183
187
  this._table._invalidate++;
@@ -185,7 +189,7 @@ let TableSelection = class TableSelection extends UI5Element {
185
189
  this._table.rows.forEach(row => row._invalidate++);
186
190
  }
187
191
  _onkeydown(e) {
188
- if (!this.isMultiSelect() || !this._table || !e.shiftKey) {
192
+ if (!this.isMultiSelectable() || !this._table || !e.shiftKey) {
189
193
  return;
190
194
  }
191
195
  const focusedElement = getActiveElement(); // Assumption: The focused element is always the "next" row after navigation.
@@ -321,7 +325,7 @@ __decorate([
321
325
  TableSelection = __decorate([
322
326
  customElement({ tag: "ui5-table-selection" })
323
327
  /**
324
- * Fired when selection is changed by user interaction.
328
+ * Fired when the selection is changed by user interaction.
325
329
  *
326
330
  * @public
327
331
  */
@@ -1 +1 @@
1
- {"version":3,"file":"TableSelection.js","sourceRoot":"","sources":["../src/TableSelection.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n\tisUpShift,\n} from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport getActiveElement from \"@ui5/webcomponents-base/dist/util/getActiveElement.js\";\nimport UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event-strict.js\";\nimport TableSelectionMode from \"./types/TableSelectionMode.js\";\nimport type Table from \"./Table.js\";\nimport type { ITableFeature } from \"./Table.js\";\nimport type TableRow from \"./TableRow.js\";\nimport type TableRowBase from \"./TableRowBase.js\";\nimport { isSelectionCheckbox, isHeaderSelector, findRowInPath } from \"./TableUtils.js\";\n\n/**\n * @class\n *\n * ### Overview\n *\n * The `ui5-table-selection` component is used inside the `ui5-table` ti add key-based selection capabilities to the `ui5-table`.\n *\n * The component offers three selection modes:\n * * Single - select a single row.\n * * Multiple - select multiple rows.\n * * None - no selection active.\n *\n * As the selection is key-based, `ui5-table-row` components need to define a unique `row-key` property.\n *\n * ### Usage\n *\n * The `ui5-table-selection` component is only used inside the `ui5-table` component as a feature.\n * It has to be slotted inside the `ui5-table` in the `features` slot.\n * The component is not intended to be used as a standalone component.\n *\n * ```html\n * <ui5-table>\n * \t<ui5-table-selection mode=\"Multiple\" slot=\"features\"></ui5-table-selection>\n * </ui5-table>\n * ```\n *\n * ### ES6 Module Import\n *\n * `import \"@ui5/webcomponents/dist/TableSelection.js\";`\n *\n * @constructor\n * @extends UI5Element\n * @since 2.0.0\n * @public\n * @experimental This web component is available since 2.0 with an experimental flag and its API and behavior are subject to change.\n */\n@customElement({ tag: \"ui5-table-selection\" })\n\n/**\n * Fired when selection is changed by user interaction.\n *\n * @public\n */\n@event(\"change\", {\n\tbubbles: true,\n})\n\nclass TableSelection extends UI5Element implements ITableFeature {\n\teventDetails!: {\n\t\tchange: void,\n\t}\n\t/**\n\t * Defines the selection mode.\n\t *\n\t * @default \"Multiple\"\n\t * @public\n\t */\n\t@property()\n\tmode: `${TableSelectionMode}` = \"Multiple\";\n\n\t/**\n\t * Defines the selected rows separated by a space.\n\t *\n\t * @default \"\"\n\t * @public\n\t */\n\t@property()\n\tselected = \"\";\n\n\treadonly identifier = \"TableSelection\";\n\t_table?: Table;\n\t_rangeSelection?: {selected: boolean, isUp: boolean | null, rows: TableRow[], isMouse: boolean, shiftPressed: boolean} | null;\n\n\tonTableActivate(table: Table) {\n\t\tthis._table = table;\n\t\tthis._invalidateTableAndRows();\n\t}\n\n\tonExitDOM() {\n\t\tthis.mode = TableSelectionMode.None;\n\t\tthis._invalidateTableAndRows();\n\t\tthis._table = undefined;\n\t}\n\n\tonBeforeRendering() {\n\t\tthis._invalidateTableAndRows();\n\t}\n\n\tisSelectable(): boolean {\n\t\treturn this.mode !== TableSelectionMode.None;\n\t}\n\n\tisMultiSelect(): boolean {\n\t\treturn this.mode === TableSelectionMode.Multiple;\n\t}\n\n\thasRowSelector(): boolean {\n\t\treturn this.mode !== TableSelectionMode.None;\n\t}\n\n\tgetRowIdentifier(row: TableRow): string {\n\t\treturn row.rowKey;\n\t}\n\n\tisSelected(row: TableRowBase): boolean {\n\t\tif (!this._table || !this.isSelectable()) {\n\t\t\treturn false;\n\t\t}\n\n\t\tif (row.isHeaderRow()) {\n\t\t\treturn this.areAllRowsSelected();\n\t\t}\n\n\t\tconst rowIdentifier = this.getRowIdentifier(row as TableRow);\n\t\treturn this.selectedAsArray.includes(rowIdentifier);\n\t}\n\n\thasSelectedRow(): boolean {\n\t\tif (!this._table || !this.isSelectable()) {\n\t\t\treturn false;\n\t\t}\n\n\t\tconst selectedArray = this.selectedAsArray;\n\t\treturn this._table.rows.some(row => {\n\t\t\tconst rowIdentifier = this.getRowIdentifier(row);\n\t\t\treturn selectedArray.includes(rowIdentifier);\n\t\t});\n\t}\n\n\tareAllRowsSelected(): boolean {\n\t\tif (!this._table || !this._table.rows.length || this.mode !== TableSelectionMode.Multiple) {\n\t\t\treturn false;\n\t\t}\n\n\t\tconst selectedArray = this.selectedAsArray;\n\t\treturn this._table.rows.every(row => {\n\t\t\tconst rowIdentifier = this.getRowIdentifier(row);\n\t\t\treturn selectedArray.includes(rowIdentifier);\n\t\t});\n\t}\n\n\tinformSelectionChange(row: TableRowBase) {\n\t\tif (this._rangeSelection?.isMouse && this._rangeSelection.shiftPressed) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (row.isHeaderRow()) {\n\t\t\tthis._informHeaderRowSelectionChange();\n\t\t} else {\n\t\t\tthis._informRowSelectionChange(row as TableRow);\n\t\t}\n\t}\n\n\tget selectedAsArray(): string[] {\n\t\treturn this.selected.split(\" \").filter(String);\n\t}\n\n\tset selectedAsArray(selectedArray: string[]) {\n\t\tthis.selected = selectedArray.filter(String).join(\" \");\n\t}\n\n\tget selectedAsSet(): Set<string> {\n\t\treturn new Set(this.selectedAsArray);\n\t}\n\n\tset selectedAsSet(selectedSet: Set<string>) {\n\t\tthis.selectedAsArray = [...selectedSet];\n\t}\n\n\t_selectRow(row: TableRow, selected: boolean) {\n\t\tconst rowIdentifier = this.getRowIdentifier(row);\n\t\tif (this.mode === TableSelectionMode.Multiple) {\n\t\t\tconst selectedSet = this.selectedAsSet;\n\t\t\tselectedSet[selected ? \"add\" : \"delete\"](rowIdentifier);\n\t\t\tthis.selectedAsSet = selectedSet;\n\t\t} else {\n\t\t\tthis.selected = selected ? rowIdentifier : \"\";\n\t\t}\n\t}\n\n\t_informRowSelectionChange(row: TableRow) {\n\t\tconst isRowSelected = this.isMultiSelect() ? !this.isSelected(row) : true;\n\t\tthis._selectRow(row, isRowSelected);\n\t\tthis.fireDecoratorEvent(\"change\");\n\t}\n\n\t_informHeaderRowSelectionChange() {\n\t\tconst isRowSelected = this.areAllRowsSelected();\n\t\tconst selectedSet = this.selectedAsSet;\n\t\tthis._table!.rows.forEach(row => {\n\t\t\tconst rowIdentifier = this.getRowIdentifier(row);\n\t\t\tselectedSet[isRowSelected ? \"delete\" : \"add\"](rowIdentifier);\n\t\t});\n\t\tthis.selectedAsSet = selectedSet;\n\t\tthis.fireDecoratorEvent(\"change\");\n\t}\n\n\t_invalidateTableAndRows() {\n\t\tif (!this._table) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (!this.isSelectable()) {\n\t\t\tthis.selected = \"\";\n\t\t} else if (!this.isMultiSelect()) {\n\t\t\tthis.selected = this.selectedAsArray.shift() || \"\";\n\t\t}\n\n\t\tthis._table._invalidate++;\n\t\tthis._table.headerRow[0]._invalidate++;\n\t\tthis._table.rows.forEach(row => row._invalidate++);\n\t}\n\n\t_onkeydown(e: KeyboardEvent) {\n\t\tif (!this.isMultiSelect() || !this._table || !e.shiftKey) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst focusedElement = getActiveElement(); // Assumption: The focused element is always the \"next\" row after navigation.\n\n\t\tif (!(focusedElement?.hasAttribute(\"ui5-table-row\") || this._rangeSelection?.isMouse || focusedElement?.hasAttribute(\"ui5-growing-row\"))) {\n\t\t\tthis._stopRangeSelection();\n\t\t\treturn;\n\t\t}\n\n\t\tif (!this._rangeSelection) {\n\t\t\t// If no range selection is active, start one\n\t\t\tthis._startRangeSelection(focusedElement as TableRow);\n\t\t} else if (e.key === \"ArrowUp\" || e.key === \"ArrowDown\") {\n\t\t\tconst change = isUpShift(e) ? -1 : 1;\n\t\t\tthis._handleRangeSelection(focusedElement as TableRow, change);\n\t\t}\n\n\t\tif (this._rangeSelection) {\n\t\t\tthis._rangeSelection.shiftPressed = e.shiftKey;\n\t\t}\n\t}\n\n\t_onkeyup(e: KeyboardEvent, eventOrigin: HTMLElement) {\n\t\tif (!this._table) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (!eventOrigin.hasAttribute(\"ui5-table-row\") || !this._rangeSelection || !e.shiftKey) {\n\t\t\t// Stop range selection if a) Shift is relased or b) the event target is not a row\n\t\t\tthis._stopRangeSelection();\n\t\t}\n\n\t\tif (this._rangeSelection) {\n\t\t\tthis._rangeSelection.shiftPressed = e.shiftKey;\n\t\t}\n\t}\n\n\t_onclick(e: MouseEvent) {\n\t\tif (!this._table) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (isHeaderSelector(e)) {\n\t\t\tthis._stopRangeSelection();\n\t\t\treturn;\n\t\t}\n\n\t\tif (!isSelectionCheckbox(e)) {\n\t\t\tthis._stopRangeSelection();\n\t\t\treturn;\n\t\t}\n\n\t\tconst row = findRowInPath(e.composedPath());\n\n\t\tif (e.shiftKey && this._rangeSelection?.isMouse) {\n\t\t\tconst startRow = this._rangeSelection.rows[0];\n\t\t\tconst startIndex = this._table.rows.indexOf(startRow);\n\t\t\tconst endIndex = this._table.rows.indexOf(row);\n\n\t\t\t// When doing a range selection and clicking on an already selected row, the checked status should not change\n\t\t\t// Therefore, we need to manually set the checked attribute again, as clicking it would deselect it and leads to\n\t\t\t// a visual inconsistency.\n\t\t\trow.shadowRoot?.querySelector(\"#selection-component\")?.toggleAttribute(\"checked\", true);\n\n\t\t\tif (startIndex === -1 || endIndex === -1 || row.rowKey === startRow.rowKey || row.rowKey === this._rangeSelection.rows[this._rangeSelection.rows.length - 1].rowKey) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst change = endIndex - startIndex;\n\t\t\tthis._handleRangeSelection(row, change);\n\t\t} else if (row) {\n\t\t\tthis._startRangeSelection(row, true);\n\t\t}\n\t}\n\n\t/**\n\t * Start the range selection and initialises the range selection state\n\t * @param row starting row\n\t * @private\n\t */\n\t_startRangeSelection(row: TableRow, isMouse = false) {\n\t\tconst selected = this.isSelected(row);\n\t\tif (isMouse && !selected) {\n\t\t\t// Do not initiate range selection if the row is not selected\n\t\t\treturn;\n\t\t}\n\n\t\tthis._rangeSelection = {\n\t\t\tselected,\n\t\t\tisUp: null,\n\t\t\trows: [row],\n\t\t\tisMouse,\n\t\t\tshiftPressed: false,\n\t\t};\n\t}\n\n\t/**\n\t * Handles the range selection\n\t * @param targetRow row that is currently focused\n\t * @param change indicates direction\n\t * @private\n\t */\n\t_handleRangeSelection(targetRow: TableRow, change: number) {\n\t\tif (!this._rangeSelection) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst isUp = change > 0;\n\t\tthis._rangeSelection.isUp ??= isUp;\n\n\t\tconst shouldReverseSelection = isUp !== this._rangeSelection.isUp && !this._rangeSelection.isMouse;\n\t\tlet selectionChanged = shouldReverseSelection && this.isSelected(targetRow);\n\n\t\tif (shouldReverseSelection) {\n\t\t\tthis._reverseRangeSelection();\n\t\t} else {\n\t\t\tconst rowIndex = this._table!.rows.indexOf(targetRow);\n\t\t\tconst [startIndex, endIndex] = [rowIndex, rowIndex - change].sort((a, b) => a - b);\n\n\t\t\tselectionChanged = this._table?.rows.slice(startIndex, endIndex + 1).reduce((changed, row) => {\n\t\t\t\tconst isRowNotInSelection = !this._rangeSelection?.rows.includes(row);\n\t\t\t\tconst isRowSelectionDifferent = this.isSelected(row) !== this._rangeSelection!.selected;\n\n\t\t\t\tif (isRowNotInSelection) {\n\t\t\t\t\tthis._rangeSelection?.rows.push(row);\n\t\t\t\t}\n\n\t\t\t\tthis._selectRow(row, this._rangeSelection!.selected);\n\n\t\t\t\treturn changed || isRowSelectionDifferent;\n\t\t\t}, selectionChanged) || false;\n\t\t}\n\n\t\tselectionChanged && this.fireDecoratorEvent(\"change\");\n\t}\n\n\t_stopRangeSelection() {\n\t\tthis._rangeSelection = null;\n\t}\n\n\t_reverseRangeSelection() {\n\t\tconst row = this._rangeSelection?.rows.pop();\n\t\tif (row) {\n\t\t\tthis._selectRow(row, false);\n\t\t}\n\n\t\tif (this._rangeSelection?.rows.length === 1) {\n\t\t\tthis._rangeSelection.isUp = null;\n\t\t}\n\t}\n}\n\nTableSelection.define();\n\nexport default TableSelection;\n"]}
1
+ {"version":3,"file":"TableSelection.js","sourceRoot":"","sources":["../src/TableSelection.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n\tisUpShift,\n} from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport getActiveElement from \"@ui5/webcomponents-base/dist/util/getActiveElement.js\";\nimport UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event-strict.js\";\nimport TableSelectionMode from \"./types/TableSelectionMode.js\";\nimport type Table from \"./Table.js\";\nimport type { ITableFeature } from \"./Table.js\";\nimport type TableRow from \"./TableRow.js\";\nimport type TableRowBase from \"./TableRowBase.js\";\nimport { isSelectionCheckbox, isHeaderSelector, findRowInPath } from \"./TableUtils.js\";\n\n/**\n * @class\n *\n * ### Overview\n *\n * The `ui5-table-selection` component is used inside the `ui5-table` to add key-based selection capabilities to the `ui5-table`.\n *\n * The component offers three selection modes:\n * * Single - select a single row.\n * * Multiple - select multiple rows.\n * * None - no selection active.\n *\n * As the selection is key-based, `ui5-table-row` components need to define a unique `row-key` property.\n *\n * ### Usage\n *\n * The `ui5-table-selection` component is only used inside the `ui5-table` component as a feature.\n * It has to be slotted inside the `ui5-table` in the `features` slot.\n * The component is not intended to be used as a standalone component.\n *\n * ```html\n * <ui5-table>\n * \t<ui5-table-selection mode=\"Multiple\" slot=\"features\"></ui5-table-selection>\n * </ui5-table>\n * ```\n *\n * ### ES6 Module Import\n *\n * `import \"@ui5/webcomponents/dist/TableSelection.js\";`\n *\n * @constructor\n * @extends UI5Element\n * @since 2.0.0\n * @public\n * @experimental This web component is available since 2.0 with an experimental flag and its API and behavior are subject to change.\n * @deprecated This component is deprecated and will be removed in future releases. Use the `ui5-table-selection-single` or `ui5-table-selection-multi` components instead.\n */\n@customElement({ tag: \"ui5-table-selection\" })\n\n/**\n * Fired when the selection is changed by user interaction.\n *\n * @public\n */\n@event(\"change\", {\n\tbubbles: true,\n})\n\nclass TableSelection extends UI5Element implements ITableFeature {\n\teventDetails!: {\n\t\tchange: void,\n\t}\n\t/**\n\t * Defines the selection mode.\n\t *\n\t * @default \"Multiple\"\n\t * @public\n\t */\n\t@property()\n\tmode: `${TableSelectionMode}` = \"Multiple\";\n\n\t/**\n\t * Defines the selected rows separated by a space.\n\t *\n\t * @default \"\"\n\t * @public\n\t */\n\t@property()\n\tselected = \"\";\n\n\treadonly identifier = \"TableSelection\";\n\t_table?: Table;\n\t_rowsLength = 0;\n\t_rangeSelection?: {selected: boolean, isUp: boolean | null, rows: TableRow[], isMouse: boolean, shiftPressed: boolean} | null;\n\n\tonTableActivate(table: Table) {\n\t\tthis._table = table;\n\t\tthis._invalidateTableAndRows();\n\t}\n\n\tonExitDOM() {\n\t\tthis.mode = TableSelectionMode.None;\n\t\tthis._invalidateTableAndRows();\n\t\tthis._table = undefined;\n\t}\n\n\tonBeforeRendering() {\n\t\tthis._invalidateTableAndRows();\n\t}\n\n\tonTableBeforeRendering() {\n\t\tif (this.isMultiSelectable() && this._table && this._table.headerRow[0] && this._rowsLength !== this._table.rows.length) {\n\t\t\tthis._rowsLength = this._table.rows.length;\n\t\t\tthis._table.headerRow[0]._invalidate++;\n\t\t}\n\t}\n\n\tisSelectable(): boolean {\n\t\treturn this.mode !== TableSelectionMode.None;\n\t}\n\n\tisMultiSelectable(): boolean {\n\t\treturn this.mode === TableSelectionMode.Multiple;\n\t}\n\n\tisRowSelectorRequired(): boolean {\n\t\treturn this.mode !== TableSelectionMode.None;\n\t}\n\n\tgetRowKey(row: TableRow): string {\n\t\treturn row.rowKey || \"\";\n\t}\n\n\tisSelected(row: TableRowBase): boolean {\n\t\tif (!this._table || !this.isSelectable()) {\n\t\t\treturn false;\n\t\t}\n\n\t\tif (row.isHeaderRow()) {\n\t\t\treturn this.areAllRowsSelected();\n\t\t}\n\n\t\tconst rowKey = this.getRowKey(row as TableRow);\n\t\treturn this.selectedAsArray.includes(rowKey);\n\t}\n\n\thasSelectedRow(): boolean {\n\t\tif (!this._table || !this.isSelectable()) {\n\t\t\treturn false;\n\t\t}\n\n\t\tconst selectedArray = this.selectedAsArray;\n\t\treturn this._table.rows.some(row => {\n\t\t\tconst rowKey = this.getRowKey(row);\n\t\t\treturn selectedArray.includes(rowKey);\n\t\t});\n\t}\n\n\tareAllRowsSelected(): boolean {\n\t\tif (!this._table || !this._table.rows.length || this.mode !== TableSelectionMode.Multiple) {\n\t\t\treturn false;\n\t\t}\n\n\t\tconst selectedArray = this.selectedAsArray;\n\t\treturn this._table.rows.every(row => {\n\t\t\tconst rowKey = this.getRowKey(row);\n\t\t\treturn selectedArray.includes(rowKey);\n\t\t});\n\t}\n\n\tsetSelected(row: TableRowBase, selected: boolean, fireEvent = false) {\n\t\tif (this._rangeSelection?.isMouse && this._rangeSelection.shiftPressed) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (row.isHeaderRow()) {\n\t\t\tthis._selectHeaderRow(selected);\n\t\t} else {\n\t\t\tthis._selectRow(row as TableRow, selected);\n\t\t}\n\n\t\tif (fireEvent) {\n\t\t\tthis.fireDecoratorEvent(\"change\");\n\t\t}\n\t}\n\n\tget selectedAsArray(): string[] {\n\t\treturn this.selected.split(\" \").filter(String);\n\t}\n\n\tset selectedAsArray(selectedArray: string[]) {\n\t\tthis.selected = selectedArray.filter(String).join(\" \");\n\t}\n\n\tget selectedAsSet(): Set<string> {\n\t\treturn new Set(this.selectedAsArray);\n\t}\n\n\tset selectedAsSet(selectedSet: Set<string>) {\n\t\tthis.selectedAsArray = [...selectedSet];\n\t}\n\n\t_selectRow(row: TableRow, selected: boolean) {\n\t\tconst rowKey = this.getRowKey(row);\n\t\tif (this.mode === TableSelectionMode.Multiple) {\n\t\t\tconst selectedSet = this.selectedAsSet;\n\t\t\tselectedSet[selected ? \"add\" : \"delete\"](rowKey);\n\t\t\tthis.selectedAsSet = selectedSet;\n\t\t} else {\n\t\t\tthis.selected = selected ? rowKey : \"\";\n\t\t}\n\t}\n\n\t_selectHeaderRow(selected: boolean) {\n\t\tconst selectedSet = this.selectedAsSet;\n\t\tthis._table!.rows.forEach(row => {\n\t\t\tconst rowKey = this.getRowKey(row);\n\t\t\tselectedSet[selected ? \"add\" : \"delete\"](rowKey);\n\t\t});\n\t\tthis.selectedAsSet = selectedSet;\n\t}\n\n\t_invalidateTableAndRows() {\n\t\tif (!this._table) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (!this.isSelectable()) {\n\t\t\tthis.selected = \"\";\n\t\t} else if (!this.isMultiSelectable()) {\n\t\t\tthis.selected = this.selectedAsArray.shift() || \"\";\n\t\t}\n\n\t\tthis._table._invalidate++;\n\t\tthis._table.headerRow[0]._invalidate++;\n\t\tthis._table.rows.forEach(row => row._invalidate++);\n\t}\n\n\t_onkeydown(e: KeyboardEvent) {\n\t\tif (!this.isMultiSelectable() || !this._table || !e.shiftKey) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst focusedElement = getActiveElement(); // Assumption: The focused element is always the \"next\" row after navigation.\n\n\t\tif (!(focusedElement?.hasAttribute(\"ui5-table-row\") || this._rangeSelection?.isMouse || focusedElement?.hasAttribute(\"ui5-growing-row\"))) {\n\t\t\tthis._stopRangeSelection();\n\t\t\treturn;\n\t\t}\n\n\t\tif (!this._rangeSelection) {\n\t\t\t// If no range selection is active, start one\n\t\t\tthis._startRangeSelection(focusedElement as TableRow);\n\t\t} else if (e.key === \"ArrowUp\" || e.key === \"ArrowDown\") {\n\t\t\tconst change = isUpShift(e) ? -1 : 1;\n\t\t\tthis._handleRangeSelection(focusedElement as TableRow, change);\n\t\t}\n\n\t\tif (this._rangeSelection) {\n\t\t\tthis._rangeSelection.shiftPressed = e.shiftKey;\n\t\t}\n\t}\n\n\t_onkeyup(e: KeyboardEvent, eventOrigin: HTMLElement) {\n\t\tif (!this._table) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (!eventOrigin.hasAttribute(\"ui5-table-row\") || !this._rangeSelection || !e.shiftKey) {\n\t\t\t// Stop range selection if a) Shift is relased or b) the event target is not a row\n\t\t\tthis._stopRangeSelection();\n\t\t}\n\n\t\tif (this._rangeSelection) {\n\t\t\tthis._rangeSelection.shiftPressed = e.shiftKey;\n\t\t}\n\t}\n\n\t_onclick(e: MouseEvent) {\n\t\tif (!this._table) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (isHeaderSelector(e)) {\n\t\t\tthis._stopRangeSelection();\n\t\t\treturn;\n\t\t}\n\n\t\tif (!isSelectionCheckbox(e)) {\n\t\t\tthis._stopRangeSelection();\n\t\t\treturn;\n\t\t}\n\n\t\tconst row = findRowInPath(e.composedPath());\n\n\t\tif (e.shiftKey && this._rangeSelection?.isMouse) {\n\t\t\tconst startRow = this._rangeSelection.rows[0];\n\t\t\tconst startIndex = this._table.rows.indexOf(startRow);\n\t\t\tconst endIndex = this._table.rows.indexOf(row);\n\n\t\t\t// When doing a range selection and clicking on an already selected row, the checked status should not change\n\t\t\t// Therefore, we need to manually set the checked attribute again, as clicking it would deselect it and leads to\n\t\t\t// a visual inconsistency.\n\t\t\trow.shadowRoot?.querySelector(\"#selection-component\")?.toggleAttribute(\"checked\", true);\n\n\t\t\tif (startIndex === -1 || endIndex === -1 || row.rowKey === startRow.rowKey || row.rowKey === this._rangeSelection.rows[this._rangeSelection.rows.length - 1].rowKey) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst change = endIndex - startIndex;\n\t\t\tthis._handleRangeSelection(row, change);\n\t\t} else if (row) {\n\t\t\tthis._startRangeSelection(row, true);\n\t\t}\n\t}\n\n\t/**\n\t * Start the range selection and initialises the range selection state\n\t * @param row starting row\n\t * @private\n\t */\n\t_startRangeSelection(row: TableRow, isMouse = false) {\n\t\tconst selected = this.isSelected(row);\n\t\tif (isMouse && !selected) {\n\t\t\t// Do not initiate range selection if the row is not selected\n\t\t\treturn;\n\t\t}\n\n\t\tthis._rangeSelection = {\n\t\t\tselected,\n\t\t\tisUp: null,\n\t\t\trows: [row],\n\t\t\tisMouse,\n\t\t\tshiftPressed: false,\n\t\t};\n\t}\n\n\t/**\n\t * Handles the range selection\n\t * @param targetRow row that is currently focused\n\t * @param change indicates direction\n\t * @private\n\t */\n\t_handleRangeSelection(targetRow: TableRow, change: number) {\n\t\tif (!this._rangeSelection) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst isUp = change > 0;\n\t\tthis._rangeSelection.isUp ??= isUp;\n\n\t\tconst shouldReverseSelection = isUp !== this._rangeSelection.isUp && !this._rangeSelection.isMouse;\n\t\tlet selectionChanged = shouldReverseSelection && this.isSelected(targetRow);\n\n\t\tif (shouldReverseSelection) {\n\t\t\tthis._reverseRangeSelection();\n\t\t} else {\n\t\t\tconst rowIndex = this._table!.rows.indexOf(targetRow);\n\t\t\tconst [startIndex, endIndex] = [rowIndex, rowIndex - change].sort((a, b) => a - b);\n\n\t\t\tselectionChanged = this._table?.rows.slice(startIndex, endIndex + 1).reduce((changed, row) => {\n\t\t\t\tconst isRowNotInSelection = !this._rangeSelection?.rows.includes(row);\n\t\t\t\tconst isRowSelectionDifferent = this.isSelected(row) !== this._rangeSelection!.selected;\n\n\t\t\t\tif (isRowNotInSelection) {\n\t\t\t\t\tthis._rangeSelection?.rows.push(row);\n\t\t\t\t}\n\n\t\t\t\tthis._selectRow(row, this._rangeSelection!.selected);\n\n\t\t\t\treturn changed || isRowSelectionDifferent;\n\t\t\t}, selectionChanged) || false;\n\t\t}\n\n\t\tselectionChanged && this.fireDecoratorEvent(\"change\");\n\t}\n\n\t_stopRangeSelection() {\n\t\tthis._rangeSelection = null;\n\t}\n\n\t_reverseRangeSelection() {\n\t\tconst row = this._rangeSelection?.rows.pop();\n\t\tif (row) {\n\t\t\tthis._selectRow(row, false);\n\t\t}\n\n\t\tif (this._rangeSelection?.rows.length === 1) {\n\t\t\tthis._rangeSelection.isUp = null;\n\t\t}\n\t}\n}\n\nTableSelection.define();\n\nexport default TableSelection;\n"]}
@@ -0,0 +1,79 @@
1
+ import UI5Element from "@ui5/webcomponents-base/dist/UI5Element.js";
2
+ import type Table from "./Table.js";
3
+ import type TableRowBase from "./TableRowBase.js";
4
+ import type TableRow from "./TableRow.js";
5
+ import type { ITableFeature } from "./Table.js";
6
+ /**
7
+ * Fired when selection is changed by user interaction.
8
+ *
9
+ * @public
10
+ */
11
+ type TableSelectionBaseChangeEventDetail = void;
12
+ /**
13
+ * Fired when the selection is changed by user interaction.
14
+ *
15
+ * @public
16
+ */
17
+ declare abstract class TableSelectionBase extends UI5Element implements ITableFeature {
18
+ eventDetails: {
19
+ change: TableSelectionBaseChangeEventDetail;
20
+ };
21
+ /**
22
+ * Defines the selected elements of the component.
23
+ *
24
+ * @default undefined
25
+ * @public
26
+ */
27
+ selected?: string;
28
+ readonly identifier = "TableSelection";
29
+ protected _table?: Table;
30
+ onTableActivate(table: Table): void;
31
+ onExitDOM(): void;
32
+ onBeforeRendering(): void;
33
+ isSelectable(): boolean;
34
+ /**
35
+ * Determines if the component allows multiple selection.
36
+ */
37
+ isMultiSelectable(): boolean;
38
+ /**
39
+ * Determines whether a row selector (for example, `radiobutton` or `checkbox`) is rendered.
40
+ */
41
+ isRowSelectorRequired(): boolean;
42
+ /**
43
+ * Returns the unique key associated with the table row.
44
+ *
45
+ * @param row The row instance
46
+ * @public
47
+ */
48
+ getRowKey(row: TableRow): string;
49
+ /**
50
+ * Returns the table row instance for the given row key.
51
+ *
52
+ * @param rowKey The row key
53
+ * @public
54
+ */
55
+ getRowByKey(rowKey: string): TableRow | undefined;
56
+ /**
57
+ * Determines whether the specified table row is currently selected.
58
+ *
59
+ * @param row The row instance
60
+ * @public
61
+ */
62
+ abstract isSelected(row: TableRowBase): boolean;
63
+ /**
64
+ * Sets the selected state of the specified table row.
65
+ *
66
+ * @param row The row instance
67
+ * @param selected Whether the row is selected
68
+ * @public
69
+ */
70
+ abstract setSelected(row: TableRowBase, selected: boolean, _fireEvent: boolean): void;
71
+ /**
72
+ * Invalidates the table and its rows to re-evaluate the selection.
73
+ *
74
+ * @protected
75
+ */
76
+ protected _invalidateTableAndRows(): void;
77
+ }
78
+ export default TableSelectionBase;
79
+ export type { TableSelectionBaseChangeEventDetail, };
@@ -0,0 +1,108 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ import UI5Element from "@ui5/webcomponents-base/dist/UI5Element.js";
8
+ import { property, eventStrict } from "@ui5/webcomponents-base/dist/decorators.js";
9
+ import { isInstanceOfTable } from "./TableUtils.js";
10
+ /**
11
+ * Fired when the selection is changed by user interaction.
12
+ *
13
+ * @public
14
+ */
15
+ let TableSelectionBase =
16
+ /**
17
+ * @class
18
+ * The `TableSelectionBase` class serves as a foundation for table selections.
19
+ * @constructor
20
+ * @extends UI5Element
21
+ * @since 2.8.0
22
+ * @public
23
+ */
24
+ class TableSelectionBase extends UI5Element {
25
+ constructor() {
26
+ super(...arguments);
27
+ this.identifier = "TableSelection";
28
+ }
29
+ onTableActivate(table) {
30
+ this._table = table;
31
+ this._invalidateTableAndRows();
32
+ }
33
+ onExitDOM() {
34
+ this._invalidateTableAndRows();
35
+ this._table = undefined;
36
+ }
37
+ onBeforeRendering() {
38
+ if (!this._table && this.parentElement && isInstanceOfTable(this.parentElement)) {
39
+ this._table = this.parentElement;
40
+ }
41
+ this._invalidateTableAndRows();
42
+ }
43
+ // this will be removed when the legacy selection component is removed
44
+ isSelectable() {
45
+ return true;
46
+ }
47
+ /**
48
+ * Determines if the component allows multiple selection.
49
+ */
50
+ isMultiSelectable() {
51
+ return false;
52
+ }
53
+ /**
54
+ * Determines whether a row selector (for example, `radiobutton` or `checkbox`) is rendered.
55
+ */
56
+ isRowSelectorRequired() {
57
+ return true;
58
+ }
59
+ /**
60
+ * Returns the unique key associated with the table row.
61
+ *
62
+ * @param row The row instance
63
+ * @public
64
+ */
65
+ getRowKey(row) {
66
+ return row.rowKey || "";
67
+ }
68
+ /**
69
+ * Returns the table row instance for the given row key.
70
+ *
71
+ * @param rowKey The row key
72
+ * @public
73
+ */
74
+ getRowByKey(rowKey) {
75
+ if (this._table && rowKey) {
76
+ return this._table.rows.find(row => this.getRowKey(row) === rowKey);
77
+ }
78
+ }
79
+ /**
80
+ * Invalidates the table and its rows to re-evaluate the selection.
81
+ *
82
+ * @protected
83
+ */
84
+ _invalidateTableAndRows() {
85
+ if (this._table) {
86
+ this._table._invalidate++;
87
+ this._table.rows.forEach(row => row._invalidate++);
88
+ }
89
+ }
90
+ };
91
+ __decorate([
92
+ property()
93
+ ], TableSelectionBase.prototype, "selected", void 0);
94
+ TableSelectionBase = __decorate([
95
+ eventStrict("change", {
96
+ bubbles: false,
97
+ })
98
+ /**
99
+ * @class
100
+ * The `TableSelectionBase` class serves as a foundation for table selections.
101
+ * @constructor
102
+ * @extends UI5Element
103
+ * @since 2.8.0
104
+ * @public
105
+ */
106
+ ], TableSelectionBase);
107
+ export default TableSelectionBase;
108
+ //# sourceMappingURL=TableSelectionBase.js.map