@ui5/webcomponents 2.8.0-rc.2 → 2.8.0

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 (755) hide show
  1. package/CHANGELOG.md +47 -0
  2. package/cypress/specs/AvatarGroup.cy.tsx +36 -0
  3. package/cypress/specs/Dialog.cy.tsx +89 -0
  4. package/cypress/specs/Input.cy.tsx +170 -1
  5. package/cypress/specs/Link.cy.tsx +199 -14
  6. package/cypress/specs/Popover.cy.tsx +176 -0
  7. package/cypress/specs/Select.cy.tsx +15 -0
  8. package/cypress/specs/TabContainer.cy.tsx +29 -0
  9. package/cypress/specs/Table.cy.tsx +5 -24
  10. package/cypress/specs/TableDragAndDrop.cy.tsx +1 -1
  11. package/cypress/specs/TableNavigation.cy.tsx +223 -0
  12. package/cypress/specs/TableNavigationFixedHeader.cy.tsx +199 -0
  13. package/cypress/specs/TableSelection.cy.tsx +37 -0
  14. package/cypress/specs/TableSelections.cy.tsx +296 -0
  15. package/cypress/specs/Text.cy.tsx +19 -3
  16. package/cypress/specs/Tokenizer.cy.tsx +36 -0
  17. package/cypress/specs/Toolbar.cy.tsx +22 -0
  18. package/dist/.tsbuildinfo +1 -1
  19. package/dist/Avatar.d.ts +4 -1
  20. package/dist/Avatar.js.map +1 -1
  21. package/dist/AvatarGroup.js +1 -0
  22. package/dist/AvatarGroup.js.map +1 -1
  23. package/dist/ColorPicker.d.ts +4 -1
  24. package/dist/ColorPicker.js +1 -1
  25. package/dist/ColorPicker.js.map +1 -1
  26. package/dist/ComboBoxItemGroupTemplate.js +2 -2
  27. package/dist/ComboBoxItemGroupTemplate.js.map +1 -1
  28. package/dist/Input.d.ts +1 -1
  29. package/dist/Input.js +10 -5
  30. package/dist/Input.js.map +1 -1
  31. package/dist/List.d.ts +5 -2
  32. package/dist/List.js +24 -2
  33. package/dist/List.js.map +1 -1
  34. package/dist/ListBoxItemGroupTemplate.d.ts +4 -0
  35. package/dist/ListBoxItemGroupTemplate.js +13 -0
  36. package/dist/ListBoxItemGroupTemplate.js.map +1 -0
  37. package/dist/ListItemGroupHeader.d.ts +6 -0
  38. package/dist/ListItemGroupHeader.js +20 -3
  39. package/dist/ListItemGroupHeader.js.map +1 -1
  40. package/dist/ListItemGroupHeaderTemplate.js +3 -3
  41. package/dist/ListItemGroupHeaderTemplate.js.map +1 -1
  42. package/dist/ListItemGroupTemplate.d.ts +1 -3
  43. package/dist/ListItemGroupTemplate.js +5 -8
  44. package/dist/ListItemGroupTemplate.js.map +1 -1
  45. package/dist/ListTemplate.js +1 -1
  46. package/dist/ListTemplate.js.map +1 -1
  47. package/dist/MultiComboBoxItemGroupTemplate.js +2 -2
  48. package/dist/MultiComboBoxItemGroupTemplate.js.map +1 -1
  49. package/dist/Popover.d.ts +0 -6
  50. package/dist/Popover.js +0 -9
  51. package/dist/Popover.js.map +1 -1
  52. package/dist/Popup.js +3 -1
  53. package/dist/Popup.js.map +1 -1
  54. package/dist/Select.d.ts +7 -0
  55. package/dist/Select.js +3 -0
  56. package/dist/Select.js.map +1 -1
  57. package/dist/SelectTemplate.js +2 -2
  58. package/dist/SelectTemplate.js.map +1 -1
  59. package/dist/SuggestionItemGroup.js +2 -0
  60. package/dist/SuggestionItemGroup.js.map +1 -1
  61. package/dist/TabContainer.d.ts +11 -0
  62. package/dist/TabContainer.js +18 -4
  63. package/dist/TabContainer.js.map +1 -1
  64. package/dist/TabContainerTemplate.js +1 -0
  65. package/dist/TabContainerTemplate.js.map +1 -1
  66. package/dist/Table.d.ts +17 -11
  67. package/dist/Table.js +16 -35
  68. package/dist/Table.js.map +1 -1
  69. package/dist/TableCell.d.ts +1 -0
  70. package/dist/TableCell.js +8 -1
  71. package/dist/TableCell.js.map +1 -1
  72. package/dist/TableCellBase.js +2 -2
  73. package/dist/TableCellBase.js.map +1 -1
  74. package/dist/TableCellTemplate.d.ts +2 -0
  75. package/dist/TableCellTemplate.js +6 -0
  76. package/dist/TableCellTemplate.js.map +1 -0
  77. package/dist/TableGrowing.js +4 -4
  78. package/dist/TableGrowing.js.map +1 -1
  79. package/dist/TableGrowingTemplate.d.ts +2 -0
  80. package/dist/TableGrowingTemplate.js +6 -0
  81. package/dist/TableGrowingTemplate.js.map +1 -0
  82. package/dist/TableHeaderCell.d.ts +0 -3
  83. package/dist/TableHeaderCell.js +1 -10
  84. package/dist/TableHeaderCell.js.map +1 -1
  85. package/dist/TableHeaderCellActionBase.js +5 -6
  86. package/dist/TableHeaderCellActionBase.js.map +1 -1
  87. package/dist/TableHeaderCellActionBaseTemplate.d.ts +2 -0
  88. package/dist/TableHeaderCellActionBaseTemplate.js +6 -0
  89. package/dist/TableHeaderCellActionBaseTemplate.js.map +1 -0
  90. package/dist/TableHeaderCellTemplate.d.ts +2 -0
  91. package/dist/TableHeaderCellTemplate.js +19 -0
  92. package/dist/TableHeaderCellTemplate.js.map +1 -0
  93. package/dist/TableHeaderRow.d.ts +2 -3
  94. package/dist/TableHeaderRow.js +1 -6
  95. package/dist/TableHeaderRow.js.map +1 -1
  96. package/dist/TableHeaderRowTemplate.d.ts +2 -0
  97. package/dist/TableHeaderRowTemplate.js +11 -0
  98. package/dist/TableHeaderRowTemplate.js.map +1 -0
  99. package/dist/TableNavigation.js +3 -3
  100. package/dist/TableNavigation.js.map +1 -1
  101. package/dist/TableRow.d.ts +7 -5
  102. package/dist/TableRow.js +4 -14
  103. package/dist/TableRow.js.map +1 -1
  104. package/dist/TableRowAction.d.ts +9 -8
  105. package/dist/TableRowAction.js +9 -11
  106. package/dist/TableRowAction.js.map +1 -1
  107. package/dist/TableRowActionBase.js +3 -6
  108. package/dist/TableRowActionBase.js.map +1 -1
  109. package/dist/TableRowActionBaseTemplate.d.ts +2 -0
  110. package/dist/TableRowActionBaseTemplate.js +13 -0
  111. package/dist/TableRowActionBaseTemplate.js.map +1 -0
  112. package/dist/TableRowBase.d.ts +4 -4
  113. package/dist/TableRowBase.js +10 -10
  114. package/dist/TableRowBase.js.map +1 -1
  115. package/dist/TableRowTemplate.d.ts +2 -0
  116. package/dist/TableRowTemplate.js +17 -0
  117. package/dist/TableRowTemplate.js.map +1 -0
  118. package/dist/TableSelection.d.ts +9 -7
  119. package/dist/TableSelection.js +34 -30
  120. package/dist/TableSelection.js.map +1 -1
  121. package/dist/TableSelectionBase.d.ts +79 -0
  122. package/dist/TableSelectionBase.js +108 -0
  123. package/dist/TableSelectionBase.js.map +1 -0
  124. package/dist/TableSelectionMulti.d.ts +92 -0
  125. package/dist/TableSelectionMulti.js +260 -0
  126. package/dist/TableSelectionMulti.js.map +1 -0
  127. package/dist/TableSelectionSingle.d.ts +49 -0
  128. package/dist/TableSelectionSingle.js +67 -0
  129. package/dist/TableSelectionSingle.js.map +1 -0
  130. package/dist/TableTemplate.d.ts +2 -0
  131. package/dist/TableTemplate.js +18 -0
  132. package/dist/TableTemplate.js.map +1 -0
  133. package/dist/TableUtils.js +1 -1
  134. package/dist/TableUtils.js.map +1 -1
  135. package/dist/Tokenizer.js +2 -2
  136. package/dist/Tokenizer.js.map +1 -1
  137. package/dist/Toolbar.d.ts +3 -0
  138. package/dist/Toolbar.js +4 -1
  139. package/dist/Toolbar.js.map +1 -1
  140. package/dist/ToolbarPopoverTemplate.js +1 -1
  141. package/dist/ToolbarPopoverTemplate.js.map +1 -1
  142. package/dist/bundle.esm.js +2 -0
  143. package/dist/bundle.esm.js.map +1 -1
  144. package/dist/css/themes/Avatar.css +1 -1
  145. package/dist/css/themes/AvatarGroup.css +1 -1
  146. package/dist/css/themes/Bar.css +1 -1
  147. package/dist/css/themes/Breadcrumbs.css +1 -1
  148. package/dist/css/themes/BusyIndicator.css +1 -1
  149. package/dist/css/themes/Button.css +1 -1
  150. package/dist/css/themes/ButtonBadge.css +1 -1
  151. package/dist/css/themes/Calendar.css +1 -1
  152. package/dist/css/themes/CalendarHeader.css +1 -1
  153. package/dist/css/themes/CalendarLegend.css +1 -1
  154. package/dist/css/themes/CalendarLegendItem.css +1 -1
  155. package/dist/css/themes/Card.css +1 -1
  156. package/dist/css/themes/CardHeader.css +1 -1
  157. package/dist/css/themes/Carousel.css +1 -1
  158. package/dist/css/themes/CheckBox.css +1 -1
  159. package/dist/css/themes/ColorPalette.css +1 -1
  160. package/dist/css/themes/ColorPaletteItem.css +1 -1
  161. package/dist/css/themes/ColorPalettePopover.css +1 -1
  162. package/dist/css/themes/ColorPicker.css +1 -1
  163. package/dist/css/themes/ComboBox.css +1 -1
  164. package/dist/css/themes/ComboBoxItem.css +1 -1
  165. package/dist/css/themes/DatePicker.css +1 -1
  166. package/dist/css/themes/DateTimePickerPopover.css +1 -1
  167. package/dist/css/themes/DayPicker.css +1 -1
  168. package/dist/css/themes/Dialog.css +1 -1
  169. package/dist/css/themes/FileUploader.css +1 -1
  170. package/dist/css/themes/Form.css +1 -1
  171. package/dist/css/themes/FormItem.css +1 -1
  172. package/dist/css/themes/FormItemSpan.css +1 -1
  173. package/dist/css/themes/GrowingButton.css +1 -1
  174. package/dist/css/themes/Icon.css +1 -1
  175. package/dist/css/themes/Input.css +1 -1
  176. package/dist/css/themes/InputIcon.css +1 -1
  177. package/dist/css/themes/InputSharedStyles.css +1 -1
  178. package/dist/css/themes/Link.css +1 -1
  179. package/dist/css/themes/List.css +1 -1
  180. package/dist/css/themes/ListItem.css +1 -1
  181. package/dist/css/themes/ListItemBase.css +1 -1
  182. package/dist/css/themes/ListItemCustom.css +1 -1
  183. package/dist/css/themes/ListItemGroup.css +1 -1
  184. package/dist/css/themes/ListItemGroupHeader.css +1 -1
  185. package/dist/css/themes/ListItemIcon.css +1 -1
  186. package/dist/css/themes/Menu.css +1 -1
  187. package/dist/css/themes/MenuItem.css +1 -1
  188. package/dist/css/themes/MessageStrip.css +1 -1
  189. package/dist/css/themes/MonthPicker.css +1 -1
  190. package/dist/css/themes/MultiComboBox.css +1 -1
  191. package/dist/css/themes/MultiComboBoxItem.css +1 -1
  192. package/dist/css/themes/MultiComboBoxPopover.css +1 -1
  193. package/dist/css/themes/MultiInput.css +1 -1
  194. package/dist/css/themes/OptionBase.css +1 -1
  195. package/dist/css/themes/Panel.css +1 -1
  196. package/dist/css/themes/Popover.css +1 -1
  197. package/dist/css/themes/PopupsCommon.css +1 -1
  198. package/dist/css/themes/ProgressIndicator.css +1 -1
  199. package/dist/css/themes/RadioButton.css +1 -1
  200. package/dist/css/themes/RangeSlider.css +1 -1
  201. package/dist/css/themes/RatingIndicator.css +1 -1
  202. package/dist/css/themes/ResponsivePopover.css +1 -1
  203. package/dist/css/themes/ResponsivePopoverCommon.css +1 -1
  204. package/dist/css/themes/SegmentedButton.css +1 -1
  205. package/dist/css/themes/SegmentedButtonItem.css +1 -1
  206. package/dist/css/themes/Select.css +1 -1
  207. package/dist/css/themes/SliderBase.css +1 -1
  208. package/dist/css/themes/SplitButton.css +1 -1
  209. package/dist/css/themes/StepInput.css +1 -1
  210. package/dist/css/themes/SuggestionItem.css +1 -1
  211. package/dist/css/themes/SuggestionItemCustom.css +1 -1
  212. package/dist/css/themes/Switch.css +1 -1
  213. package/dist/css/themes/TabContainer.css +1 -1
  214. package/dist/css/themes/TabInOverflow.css +1 -1
  215. package/dist/css/themes/TabInStrip.css +1 -1
  216. package/dist/css/themes/TabSemanticIcon.css +1 -1
  217. package/dist/css/themes/TabSeparatorInOverflow.css +1 -1
  218. package/dist/css/themes/Table.css +1 -1
  219. package/dist/css/themes/TableCell.css +1 -1
  220. package/dist/css/themes/TableCellBase.css +1 -1
  221. package/dist/css/themes/TableGrowing.css +1 -1
  222. package/dist/css/themes/TableHeaderRow.css +1 -1
  223. package/dist/css/themes/TableRow.css +1 -1
  224. package/dist/css/themes/TableRowActionBase.css +1 -1
  225. package/dist/css/themes/TableRowBase.css +1 -1
  226. package/dist/css/themes/Tag.css +1 -1
  227. package/dist/css/themes/Text.css +1 -1
  228. package/dist/css/themes/TextArea.css +1 -1
  229. package/dist/css/themes/TimePicker.css +1 -1
  230. package/dist/css/themes/Toast.css +1 -1
  231. package/dist/css/themes/ToggleButton.css +1 -1
  232. package/dist/css/themes/Token.css +1 -1
  233. package/dist/css/themes/Tokenizer.css +1 -1
  234. package/dist/css/themes/TokenizerPopover.css +1 -1
  235. package/dist/css/themes/Toolbar.css +1 -1
  236. package/dist/css/themes/ToolbarPopover.css +1 -1
  237. package/dist/css/themes/TreeItem.css +1 -1
  238. package/dist/css/themes/ValueStateMessage.css +1 -1
  239. package/dist/css/themes/YearPicker.css +1 -1
  240. package/dist/css/themes/sap_fiori_3/parameters-bundle.css +1 -1
  241. package/dist/css/themes/sap_fiori_3_dark/parameters-bundle.css +1 -1
  242. package/dist/css/themes/sap_fiori_3_hcb/parameters-bundle.css +1 -1
  243. package/dist/css/themes/sap_fiori_3_hcw/parameters-bundle.css +1 -1
  244. package/dist/css/themes/sap_horizon/parameters-bundle.css +1 -1
  245. package/dist/css/themes/sap_horizon_dark/parameters-bundle.css +1 -1
  246. package/dist/css/themes/sap_horizon_hcb/parameters-bundle.css +1 -1
  247. package/dist/css/themes/sap_horizon_hcw/parameters-bundle.css +1 -1
  248. package/dist/custom-elements-internal.json +762 -31
  249. package/dist/custom-elements.json +725 -31
  250. package/dist/features/InputSuggestions.js +0 -2
  251. package/dist/features/InputSuggestions.js.map +1 -1
  252. package/dist/features/InputSuggestionsTemplate.js +2 -1
  253. package/dist/features/InputSuggestionsTemplate.js.map +1 -1
  254. package/dist/generated/assets/i18n/messagebundle_ar.json +1 -1
  255. package/dist/generated/assets/i18n/messagebundle_bg.json +1 -1
  256. package/dist/generated/assets/i18n/messagebundle_ca.json +1 -1
  257. package/dist/generated/assets/i18n/messagebundle_cnr.json +1 -1
  258. package/dist/generated/assets/i18n/messagebundle_cs.json +1 -1
  259. package/dist/generated/assets/i18n/messagebundle_cy.json +1 -1
  260. package/dist/generated/assets/i18n/messagebundle_da.json +1 -1
  261. package/dist/generated/assets/i18n/messagebundle_de.json +1 -1
  262. package/dist/generated/assets/i18n/messagebundle_el.json +1 -1
  263. package/dist/generated/assets/i18n/messagebundle_en.json +1 -1
  264. package/dist/generated/assets/i18n/messagebundle_en_GB.json +1 -1
  265. package/dist/generated/assets/i18n/messagebundle_en_US_saprigi.json +1 -1
  266. package/dist/generated/assets/i18n/messagebundle_es.json +1 -1
  267. package/dist/generated/assets/i18n/messagebundle_es_MX.json +1 -1
  268. package/dist/generated/assets/i18n/messagebundle_et.json +1 -1
  269. package/dist/generated/assets/i18n/messagebundle_fi.json +1 -1
  270. package/dist/generated/assets/i18n/messagebundle_fr.json +1 -1
  271. package/dist/generated/assets/i18n/messagebundle_fr_CA.json +1 -1
  272. package/dist/generated/assets/i18n/messagebundle_hi.json +1 -1
  273. package/dist/generated/assets/i18n/messagebundle_hr.json +1 -1
  274. package/dist/generated/assets/i18n/messagebundle_hu.json +1 -1
  275. package/dist/generated/assets/i18n/messagebundle_it.json +1 -1
  276. package/dist/generated/assets/i18n/messagebundle_iw.json +1 -1
  277. package/dist/generated/assets/i18n/messagebundle_ja.json +1 -1
  278. package/dist/generated/assets/i18n/messagebundle_kk.json +1 -1
  279. package/dist/generated/assets/i18n/messagebundle_ko.json +1 -1
  280. package/dist/generated/assets/i18n/messagebundle_lt.json +1 -1
  281. package/dist/generated/assets/i18n/messagebundle_lv.json +1 -1
  282. package/dist/generated/assets/i18n/messagebundle_mk.json +1 -1
  283. package/dist/generated/assets/i18n/messagebundle_ms.json +1 -1
  284. package/dist/generated/assets/i18n/messagebundle_nl.json +1 -1
  285. package/dist/generated/assets/i18n/messagebundle_no.json +1 -1
  286. package/dist/generated/assets/i18n/messagebundle_pl.json +1 -1
  287. package/dist/generated/assets/i18n/messagebundle_pt.json +1 -1
  288. package/dist/generated/assets/i18n/messagebundle_pt_PT.json +1 -1
  289. package/dist/generated/assets/i18n/messagebundle_ro.json +1 -1
  290. package/dist/generated/assets/i18n/messagebundle_ru.json +1 -1
  291. package/dist/generated/assets/i18n/messagebundle_sh.json +1 -1
  292. package/dist/generated/assets/i18n/messagebundle_sk.json +1 -1
  293. package/dist/generated/assets/i18n/messagebundle_sl.json +1 -1
  294. package/dist/generated/assets/i18n/messagebundle_sr.json +1 -1
  295. package/dist/generated/assets/i18n/messagebundle_sv.json +1 -1
  296. package/dist/generated/assets/i18n/messagebundle_th.json +1 -1
  297. package/dist/generated/assets/i18n/messagebundle_tr.json +1 -1
  298. package/dist/generated/assets/i18n/messagebundle_uk.json +1 -1
  299. package/dist/generated/assets/i18n/messagebundle_vi.json +1 -1
  300. package/dist/generated/assets/i18n/messagebundle_zh_CN.json +1 -1
  301. package/dist/generated/assets/i18n/messagebundle_zh_TW.json +1 -1
  302. package/dist/generated/assets/themes/sap_fiori_3/parameters-bundle.css.json +1 -1
  303. package/dist/generated/assets/themes/sap_fiori_3_dark/parameters-bundle.css.json +1 -1
  304. package/dist/generated/assets/themes/sap_fiori_3_hcb/parameters-bundle.css.json +1 -1
  305. package/dist/generated/assets/themes/sap_fiori_3_hcw/parameters-bundle.css.json +1 -1
  306. package/dist/generated/assets/themes/sap_horizon/parameters-bundle.css.json +1 -1
  307. package/dist/generated/assets/themes/sap_horizon_dark/parameters-bundle.css.json +1 -1
  308. package/dist/generated/assets/themes/sap_horizon_hcb/parameters-bundle.css.json +1 -1
  309. package/dist/generated/assets/themes/sap_horizon_hcw/parameters-bundle.css.json +1 -1
  310. package/dist/generated/i18n/i18n-defaults.d.ts +4 -1
  311. package/dist/generated/i18n/i18n-defaults.js +4 -1
  312. package/dist/generated/i18n/i18n-defaults.js.map +1 -1
  313. package/dist/generated/themes/Avatar.css.d.ts +1 -1
  314. package/dist/generated/themes/Avatar.css.js +1 -1
  315. package/dist/generated/themes/Avatar.css.js.map +1 -1
  316. package/dist/generated/themes/AvatarGroup.css.d.ts +1 -1
  317. package/dist/generated/themes/AvatarGroup.css.js +1 -1
  318. package/dist/generated/themes/AvatarGroup.css.js.map +1 -1
  319. package/dist/generated/themes/Bar.css.d.ts +1 -1
  320. package/dist/generated/themes/Bar.css.js +1 -1
  321. package/dist/generated/themes/Bar.css.js.map +1 -1
  322. package/dist/generated/themes/Breadcrumbs.css.d.ts +1 -1
  323. package/dist/generated/themes/Breadcrumbs.css.js +1 -1
  324. package/dist/generated/themes/Breadcrumbs.css.js.map +1 -1
  325. package/dist/generated/themes/BusyIndicator.css.d.ts +1 -1
  326. package/dist/generated/themes/BusyIndicator.css.js +1 -1
  327. package/dist/generated/themes/BusyIndicator.css.js.map +1 -1
  328. package/dist/generated/themes/Button.css.d.ts +1 -1
  329. package/dist/generated/themes/Button.css.js +1 -1
  330. package/dist/generated/themes/Button.css.js.map +1 -1
  331. package/dist/generated/themes/ButtonBadge.css.d.ts +1 -1
  332. package/dist/generated/themes/ButtonBadge.css.js +1 -1
  333. package/dist/generated/themes/ButtonBadge.css.js.map +1 -1
  334. package/dist/generated/themes/Calendar.css.d.ts +1 -1
  335. package/dist/generated/themes/Calendar.css.js +1 -1
  336. package/dist/generated/themes/Calendar.css.js.map +1 -1
  337. package/dist/generated/themes/CalendarHeader.css.d.ts +1 -1
  338. package/dist/generated/themes/CalendarHeader.css.js +1 -1
  339. package/dist/generated/themes/CalendarHeader.css.js.map +1 -1
  340. package/dist/generated/themes/CalendarLegend.css.d.ts +1 -1
  341. package/dist/generated/themes/CalendarLegend.css.js +1 -1
  342. package/dist/generated/themes/CalendarLegend.css.js.map +1 -1
  343. package/dist/generated/themes/CalendarLegendItem.css.d.ts +1 -1
  344. package/dist/generated/themes/CalendarLegendItem.css.js +1 -1
  345. package/dist/generated/themes/CalendarLegendItem.css.js.map +1 -1
  346. package/dist/generated/themes/Card.css.d.ts +1 -1
  347. package/dist/generated/themes/Card.css.js +1 -1
  348. package/dist/generated/themes/Card.css.js.map +1 -1
  349. package/dist/generated/themes/CardHeader.css.d.ts +1 -1
  350. package/dist/generated/themes/CardHeader.css.js +1 -1
  351. package/dist/generated/themes/CardHeader.css.js.map +1 -1
  352. package/dist/generated/themes/Carousel.css.d.ts +1 -1
  353. package/dist/generated/themes/Carousel.css.js +1 -1
  354. package/dist/generated/themes/Carousel.css.js.map +1 -1
  355. package/dist/generated/themes/CheckBox.css.d.ts +1 -1
  356. package/dist/generated/themes/CheckBox.css.js +1 -1
  357. package/dist/generated/themes/CheckBox.css.js.map +1 -1
  358. package/dist/generated/themes/ColorPalette.css.d.ts +1 -1
  359. package/dist/generated/themes/ColorPalette.css.js +1 -1
  360. package/dist/generated/themes/ColorPalette.css.js.map +1 -1
  361. package/dist/generated/themes/ColorPaletteItem.css.d.ts +1 -1
  362. package/dist/generated/themes/ColorPaletteItem.css.js +1 -1
  363. package/dist/generated/themes/ColorPaletteItem.css.js.map +1 -1
  364. package/dist/generated/themes/ColorPalettePopover.css.d.ts +1 -1
  365. package/dist/generated/themes/ColorPalettePopover.css.js +1 -1
  366. package/dist/generated/themes/ColorPalettePopover.css.js.map +1 -1
  367. package/dist/generated/themes/ColorPicker.css.d.ts +1 -1
  368. package/dist/generated/themes/ColorPicker.css.js +1 -1
  369. package/dist/generated/themes/ColorPicker.css.js.map +1 -1
  370. package/dist/generated/themes/ComboBox.css.d.ts +1 -1
  371. package/dist/generated/themes/ComboBox.css.js +1 -1
  372. package/dist/generated/themes/ComboBox.css.js.map +1 -1
  373. package/dist/generated/themes/ComboBoxItem.css.d.ts +1 -1
  374. package/dist/generated/themes/ComboBoxItem.css.js +1 -1
  375. package/dist/generated/themes/ComboBoxItem.css.js.map +1 -1
  376. package/dist/generated/themes/DatePicker.css.d.ts +1 -1
  377. package/dist/generated/themes/DatePicker.css.js +1 -1
  378. package/dist/generated/themes/DatePicker.css.js.map +1 -1
  379. package/dist/generated/themes/DateTimePickerPopover.css.d.ts +1 -1
  380. package/dist/generated/themes/DateTimePickerPopover.css.js +1 -1
  381. package/dist/generated/themes/DateTimePickerPopover.css.js.map +1 -1
  382. package/dist/generated/themes/DayPicker.css.d.ts +1 -1
  383. package/dist/generated/themes/DayPicker.css.js +1 -1
  384. package/dist/generated/themes/DayPicker.css.js.map +1 -1
  385. package/dist/generated/themes/Dialog.css.d.ts +1 -1
  386. package/dist/generated/themes/Dialog.css.js +1 -1
  387. package/dist/generated/themes/Dialog.css.js.map +1 -1
  388. package/dist/generated/themes/FileUploader.css.d.ts +1 -1
  389. package/dist/generated/themes/FileUploader.css.js +1 -1
  390. package/dist/generated/themes/FileUploader.css.js.map +1 -1
  391. package/dist/generated/themes/Form.css.d.ts +1 -1
  392. package/dist/generated/themes/Form.css.js +1 -1
  393. package/dist/generated/themes/Form.css.js.map +1 -1
  394. package/dist/generated/themes/FormItem.css.d.ts +1 -1
  395. package/dist/generated/themes/FormItem.css.js +1 -1
  396. package/dist/generated/themes/FormItem.css.js.map +1 -1
  397. package/dist/generated/themes/FormItemSpan.css.d.ts +1 -1
  398. package/dist/generated/themes/FormItemSpan.css.js +1 -1
  399. package/dist/generated/themes/FormItemSpan.css.js.map +1 -1
  400. package/dist/generated/themes/GrowingButton.css.d.ts +1 -1
  401. package/dist/generated/themes/GrowingButton.css.js +1 -1
  402. package/dist/generated/themes/GrowingButton.css.js.map +1 -1
  403. package/dist/generated/themes/Icon.css.d.ts +1 -1
  404. package/dist/generated/themes/Icon.css.js +1 -1
  405. package/dist/generated/themes/Icon.css.js.map +1 -1
  406. package/dist/generated/themes/Input.css.d.ts +1 -1
  407. package/dist/generated/themes/Input.css.js +1 -1
  408. package/dist/generated/themes/Input.css.js.map +1 -1
  409. package/dist/generated/themes/InputIcon.css.d.ts +1 -1
  410. package/dist/generated/themes/InputIcon.css.js +1 -1
  411. package/dist/generated/themes/InputIcon.css.js.map +1 -1
  412. package/dist/generated/themes/InputSharedStyles.css.d.ts +1 -1
  413. package/dist/generated/themes/InputSharedStyles.css.js +1 -1
  414. package/dist/generated/themes/InputSharedStyles.css.js.map +1 -1
  415. package/dist/generated/themes/Link.css.d.ts +1 -1
  416. package/dist/generated/themes/Link.css.js +1 -1
  417. package/dist/generated/themes/Link.css.js.map +1 -1
  418. package/dist/generated/themes/List.css.d.ts +1 -1
  419. package/dist/generated/themes/List.css.js +1 -1
  420. package/dist/generated/themes/List.css.js.map +1 -1
  421. package/dist/generated/themes/ListItem.css.d.ts +1 -1
  422. package/dist/generated/themes/ListItem.css.js +1 -1
  423. package/dist/generated/themes/ListItem.css.js.map +1 -1
  424. package/dist/generated/themes/ListItemBase.css.d.ts +1 -1
  425. package/dist/generated/themes/ListItemBase.css.js +1 -1
  426. package/dist/generated/themes/ListItemBase.css.js.map +1 -1
  427. package/dist/generated/themes/ListItemCustom.css.d.ts +1 -1
  428. package/dist/generated/themes/ListItemCustom.css.js +1 -1
  429. package/dist/generated/themes/ListItemCustom.css.js.map +1 -1
  430. package/dist/generated/themes/ListItemGroup.css.d.ts +1 -1
  431. package/dist/generated/themes/ListItemGroup.css.js +1 -1
  432. package/dist/generated/themes/ListItemGroup.css.js.map +1 -1
  433. package/dist/generated/themes/ListItemGroupHeader.css.d.ts +1 -1
  434. package/dist/generated/themes/ListItemGroupHeader.css.js +1 -1
  435. package/dist/generated/themes/ListItemGroupHeader.css.js.map +1 -1
  436. package/dist/generated/themes/ListItemIcon.css.d.ts +1 -1
  437. package/dist/generated/themes/ListItemIcon.css.js +1 -1
  438. package/dist/generated/themes/ListItemIcon.css.js.map +1 -1
  439. package/dist/generated/themes/Menu.css.d.ts +1 -1
  440. package/dist/generated/themes/Menu.css.js +1 -1
  441. package/dist/generated/themes/Menu.css.js.map +1 -1
  442. package/dist/generated/themes/MenuItem.css.d.ts +1 -1
  443. package/dist/generated/themes/MenuItem.css.js +1 -1
  444. package/dist/generated/themes/MenuItem.css.js.map +1 -1
  445. package/dist/generated/themes/MessageStrip.css.d.ts +1 -1
  446. package/dist/generated/themes/MessageStrip.css.js +1 -1
  447. package/dist/generated/themes/MessageStrip.css.js.map +1 -1
  448. package/dist/generated/themes/MonthPicker.css.d.ts +1 -1
  449. package/dist/generated/themes/MonthPicker.css.js +1 -1
  450. package/dist/generated/themes/MonthPicker.css.js.map +1 -1
  451. package/dist/generated/themes/MultiComboBox.css.d.ts +1 -1
  452. package/dist/generated/themes/MultiComboBox.css.js +1 -1
  453. package/dist/generated/themes/MultiComboBox.css.js.map +1 -1
  454. package/dist/generated/themes/MultiComboBoxItem.css.d.ts +1 -1
  455. package/dist/generated/themes/MultiComboBoxItem.css.js +1 -1
  456. package/dist/generated/themes/MultiComboBoxItem.css.js.map +1 -1
  457. package/dist/generated/themes/MultiComboBoxPopover.css.d.ts +1 -1
  458. package/dist/generated/themes/MultiComboBoxPopover.css.js +1 -1
  459. package/dist/generated/themes/MultiComboBoxPopover.css.js.map +1 -1
  460. package/dist/generated/themes/MultiInput.css.d.ts +1 -1
  461. package/dist/generated/themes/MultiInput.css.js +1 -1
  462. package/dist/generated/themes/MultiInput.css.js.map +1 -1
  463. package/dist/generated/themes/OptionBase.css.d.ts +1 -1
  464. package/dist/generated/themes/OptionBase.css.js +1 -1
  465. package/dist/generated/themes/OptionBase.css.js.map +1 -1
  466. package/dist/generated/themes/Panel.css.d.ts +1 -1
  467. package/dist/generated/themes/Panel.css.js +1 -1
  468. package/dist/generated/themes/Panel.css.js.map +1 -1
  469. package/dist/generated/themes/Popover.css.d.ts +1 -1
  470. package/dist/generated/themes/Popover.css.js +1 -1
  471. package/dist/generated/themes/Popover.css.js.map +1 -1
  472. package/dist/generated/themes/PopupsCommon.css.d.ts +1 -1
  473. package/dist/generated/themes/PopupsCommon.css.js +1 -1
  474. package/dist/generated/themes/PopupsCommon.css.js.map +1 -1
  475. package/dist/generated/themes/ProgressIndicator.css.d.ts +1 -1
  476. package/dist/generated/themes/ProgressIndicator.css.js +1 -1
  477. package/dist/generated/themes/ProgressIndicator.css.js.map +1 -1
  478. package/dist/generated/themes/RadioButton.css.d.ts +1 -1
  479. package/dist/generated/themes/RadioButton.css.js +1 -1
  480. package/dist/generated/themes/RadioButton.css.js.map +1 -1
  481. package/dist/generated/themes/RangeSlider.css.d.ts +1 -1
  482. package/dist/generated/themes/RangeSlider.css.js +1 -1
  483. package/dist/generated/themes/RangeSlider.css.js.map +1 -1
  484. package/dist/generated/themes/RatingIndicator.css.d.ts +1 -1
  485. package/dist/generated/themes/RatingIndicator.css.js +1 -1
  486. package/dist/generated/themes/RatingIndicator.css.js.map +1 -1
  487. package/dist/generated/themes/ResponsivePopover.css.d.ts +1 -1
  488. package/dist/generated/themes/ResponsivePopover.css.js +1 -1
  489. package/dist/generated/themes/ResponsivePopover.css.js.map +1 -1
  490. package/dist/generated/themes/ResponsivePopoverCommon.css.d.ts +1 -1
  491. package/dist/generated/themes/ResponsivePopoverCommon.css.js +1 -1
  492. package/dist/generated/themes/ResponsivePopoverCommon.css.js.map +1 -1
  493. package/dist/generated/themes/SegmentedButton.css.d.ts +1 -1
  494. package/dist/generated/themes/SegmentedButton.css.js +1 -1
  495. package/dist/generated/themes/SegmentedButton.css.js.map +1 -1
  496. package/dist/generated/themes/SegmentedButtonItem.css.d.ts +1 -1
  497. package/dist/generated/themes/SegmentedButtonItem.css.js +1 -1
  498. package/dist/generated/themes/SegmentedButtonItem.css.js.map +1 -1
  499. package/dist/generated/themes/Select.css.d.ts +1 -1
  500. package/dist/generated/themes/Select.css.js +1 -1
  501. package/dist/generated/themes/Select.css.js.map +1 -1
  502. package/dist/generated/themes/SliderBase.css.d.ts +1 -1
  503. package/dist/generated/themes/SliderBase.css.js +1 -1
  504. package/dist/generated/themes/SliderBase.css.js.map +1 -1
  505. package/dist/generated/themes/SplitButton.css.d.ts +1 -1
  506. package/dist/generated/themes/SplitButton.css.js +1 -1
  507. package/dist/generated/themes/SplitButton.css.js.map +1 -1
  508. package/dist/generated/themes/StepInput.css.d.ts +1 -1
  509. package/dist/generated/themes/StepInput.css.js +1 -1
  510. package/dist/generated/themes/StepInput.css.js.map +1 -1
  511. package/dist/generated/themes/SuggestionItem.css.d.ts +1 -1
  512. package/dist/generated/themes/SuggestionItem.css.js +1 -1
  513. package/dist/generated/themes/SuggestionItem.css.js.map +1 -1
  514. package/dist/generated/themes/SuggestionItemCustom.css.d.ts +1 -1
  515. package/dist/generated/themes/SuggestionItemCustom.css.js +1 -1
  516. package/dist/generated/themes/SuggestionItemCustom.css.js.map +1 -1
  517. package/dist/generated/themes/Switch.css.d.ts +1 -1
  518. package/dist/generated/themes/Switch.css.js +1 -1
  519. package/dist/generated/themes/Switch.css.js.map +1 -1
  520. package/dist/generated/themes/TabContainer.css.d.ts +1 -1
  521. package/dist/generated/themes/TabContainer.css.js +1 -1
  522. package/dist/generated/themes/TabContainer.css.js.map +1 -1
  523. package/dist/generated/themes/TabInOverflow.css.d.ts +1 -1
  524. package/dist/generated/themes/TabInOverflow.css.js +1 -1
  525. package/dist/generated/themes/TabInOverflow.css.js.map +1 -1
  526. package/dist/generated/themes/TabInStrip.css.d.ts +1 -1
  527. package/dist/generated/themes/TabInStrip.css.js +1 -1
  528. package/dist/generated/themes/TabInStrip.css.js.map +1 -1
  529. package/dist/generated/themes/TabSemanticIcon.css.d.ts +1 -1
  530. package/dist/generated/themes/TabSemanticIcon.css.js +1 -1
  531. package/dist/generated/themes/TabSemanticIcon.css.js.map +1 -1
  532. package/dist/generated/themes/TabSeparatorInOverflow.css.d.ts +1 -1
  533. package/dist/generated/themes/TabSeparatorInOverflow.css.js +1 -1
  534. package/dist/generated/themes/TabSeparatorInOverflow.css.js.map +1 -1
  535. package/dist/generated/themes/Table.css.d.ts +1 -1
  536. package/dist/generated/themes/Table.css.js +1 -1
  537. package/dist/generated/themes/Table.css.js.map +1 -1
  538. package/dist/generated/themes/TableCell.css.d.ts +1 -1
  539. package/dist/generated/themes/TableCell.css.js +1 -1
  540. package/dist/generated/themes/TableCell.css.js.map +1 -1
  541. package/dist/generated/themes/TableCellBase.css.d.ts +1 -1
  542. package/dist/generated/themes/TableCellBase.css.js +1 -1
  543. package/dist/generated/themes/TableCellBase.css.js.map +1 -1
  544. package/dist/generated/themes/TableGrowing.css.d.ts +1 -1
  545. package/dist/generated/themes/TableGrowing.css.js +1 -1
  546. package/dist/generated/themes/TableGrowing.css.js.map +1 -1
  547. package/dist/generated/themes/TableHeaderRow.css.d.ts +1 -1
  548. package/dist/generated/themes/TableHeaderRow.css.js +1 -1
  549. package/dist/generated/themes/TableHeaderRow.css.js.map +1 -1
  550. package/dist/generated/themes/TableRow.css.d.ts +1 -1
  551. package/dist/generated/themes/TableRow.css.js +1 -1
  552. package/dist/generated/themes/TableRow.css.js.map +1 -1
  553. package/dist/generated/themes/TableRowActionBase.css.d.ts +1 -1
  554. package/dist/generated/themes/TableRowActionBase.css.js +1 -1
  555. package/dist/generated/themes/TableRowActionBase.css.js.map +1 -1
  556. package/dist/generated/themes/TableRowBase.css.d.ts +1 -1
  557. package/dist/generated/themes/TableRowBase.css.js +1 -1
  558. package/dist/generated/themes/TableRowBase.css.js.map +1 -1
  559. package/dist/generated/themes/Tag.css.d.ts +1 -1
  560. package/dist/generated/themes/Tag.css.js +1 -1
  561. package/dist/generated/themes/Tag.css.js.map +1 -1
  562. package/dist/generated/themes/Text.css.d.ts +1 -1
  563. package/dist/generated/themes/Text.css.js +1 -1
  564. package/dist/generated/themes/Text.css.js.map +1 -1
  565. package/dist/generated/themes/TextArea.css.d.ts +1 -1
  566. package/dist/generated/themes/TextArea.css.js +1 -1
  567. package/dist/generated/themes/TextArea.css.js.map +1 -1
  568. package/dist/generated/themes/TimePicker.css.d.ts +1 -1
  569. package/dist/generated/themes/TimePicker.css.js +1 -1
  570. package/dist/generated/themes/TimePicker.css.js.map +1 -1
  571. package/dist/generated/themes/Toast.css.d.ts +1 -1
  572. package/dist/generated/themes/Toast.css.js +1 -1
  573. package/dist/generated/themes/Toast.css.js.map +1 -1
  574. package/dist/generated/themes/ToggleButton.css.d.ts +1 -1
  575. package/dist/generated/themes/ToggleButton.css.js +1 -1
  576. package/dist/generated/themes/ToggleButton.css.js.map +1 -1
  577. package/dist/generated/themes/Token.css.d.ts +1 -1
  578. package/dist/generated/themes/Token.css.js +1 -1
  579. package/dist/generated/themes/Token.css.js.map +1 -1
  580. package/dist/generated/themes/Tokenizer.css.d.ts +1 -1
  581. package/dist/generated/themes/Tokenizer.css.js +1 -1
  582. package/dist/generated/themes/Tokenizer.css.js.map +1 -1
  583. package/dist/generated/themes/TokenizerPopover.css.d.ts +1 -1
  584. package/dist/generated/themes/TokenizerPopover.css.js +1 -1
  585. package/dist/generated/themes/TokenizerPopover.css.js.map +1 -1
  586. package/dist/generated/themes/Toolbar.css.d.ts +1 -1
  587. package/dist/generated/themes/Toolbar.css.js +1 -1
  588. package/dist/generated/themes/Toolbar.css.js.map +1 -1
  589. package/dist/generated/themes/ToolbarPopover.css.d.ts +1 -1
  590. package/dist/generated/themes/ToolbarPopover.css.js +1 -1
  591. package/dist/generated/themes/ToolbarPopover.css.js.map +1 -1
  592. package/dist/generated/themes/TreeItem.css.d.ts +1 -1
  593. package/dist/generated/themes/TreeItem.css.js +1 -1
  594. package/dist/generated/themes/TreeItem.css.js.map +1 -1
  595. package/dist/generated/themes/ValueStateMessage.css.d.ts +1 -1
  596. package/dist/generated/themes/ValueStateMessage.css.js +1 -1
  597. package/dist/generated/themes/ValueStateMessage.css.js.map +1 -1
  598. package/dist/generated/themes/YearPicker.css.d.ts +1 -1
  599. package/dist/generated/themes/YearPicker.css.js +1 -1
  600. package/dist/generated/themes/YearPicker.css.js.map +1 -1
  601. package/dist/generated/themes/sap_fiori_3/parameters-bundle.css.d.ts +1 -1
  602. package/dist/generated/themes/sap_fiori_3/parameters-bundle.css.js +1 -1
  603. package/dist/generated/themes/sap_fiori_3/parameters-bundle.css.js.map +1 -1
  604. package/dist/generated/themes/sap_fiori_3_dark/parameters-bundle.css.d.ts +1 -1
  605. package/dist/generated/themes/sap_fiori_3_dark/parameters-bundle.css.js +1 -1
  606. package/dist/generated/themes/sap_fiori_3_dark/parameters-bundle.css.js.map +1 -1
  607. package/dist/generated/themes/sap_fiori_3_hcb/parameters-bundle.css.d.ts +1 -1
  608. package/dist/generated/themes/sap_fiori_3_hcb/parameters-bundle.css.js +1 -1
  609. package/dist/generated/themes/sap_fiori_3_hcb/parameters-bundle.css.js.map +1 -1
  610. package/dist/generated/themes/sap_fiori_3_hcw/parameters-bundle.css.d.ts +1 -1
  611. package/dist/generated/themes/sap_fiori_3_hcw/parameters-bundle.css.js +1 -1
  612. package/dist/generated/themes/sap_fiori_3_hcw/parameters-bundle.css.js.map +1 -1
  613. package/dist/generated/themes/sap_horizon/parameters-bundle.css.d.ts +1 -1
  614. package/dist/generated/themes/sap_horizon/parameters-bundle.css.js +1 -1
  615. package/dist/generated/themes/sap_horizon/parameters-bundle.css.js.map +1 -1
  616. package/dist/generated/themes/sap_horizon_dark/parameters-bundle.css.d.ts +1 -1
  617. package/dist/generated/themes/sap_horizon_dark/parameters-bundle.css.js +1 -1
  618. package/dist/generated/themes/sap_horizon_dark/parameters-bundle.css.js.map +1 -1
  619. package/dist/generated/themes/sap_horizon_hcb/parameters-bundle.css.d.ts +1 -1
  620. package/dist/generated/themes/sap_horizon_hcb/parameters-bundle.css.js +1 -1
  621. package/dist/generated/themes/sap_horizon_hcb/parameters-bundle.css.js.map +1 -1
  622. package/dist/generated/themes/sap_horizon_hcw/parameters-bundle.css.d.ts +1 -1
  623. package/dist/generated/themes/sap_horizon_hcw/parameters-bundle.css.js +1 -1
  624. package/dist/generated/themes/sap_horizon_hcw/parameters-bundle.css.js.map +1 -1
  625. package/dist/popup-utils/PopoverRegistry.js +2 -2
  626. package/dist/popup-utils/PopoverRegistry.js.map +1 -1
  627. package/dist/types/ListItemAccessibleRole.d.ts +5 -0
  628. package/dist/types/ListItemAccessibleRole.js +5 -0
  629. package/dist/types/ListItemAccessibleRole.js.map +1 -1
  630. package/dist/types/TableSelectionMode.d.ts +1 -0
  631. package/dist/types/TableSelectionMode.js +1 -0
  632. package/dist/types/TableSelectionMode.js.map +1 -1
  633. package/dist/vscode.html-custom-data.json +51 -10
  634. package/dist/web-types.json +99 -23
  635. package/package.json +9 -9
  636. package/src/ComboBoxItemGroupTemplate.tsx +2 -2
  637. package/src/ListBoxItemGroupTemplate.tsx +33 -0
  638. package/src/ListItemGroupHeaderTemplate.tsx +5 -3
  639. package/src/ListItemGroupTemplate.tsx +21 -19
  640. package/src/ListTemplate.tsx +1 -0
  641. package/src/MultiComboBoxItemGroupTemplate.tsx +2 -2
  642. package/src/SelectTemplate.tsx +2 -0
  643. package/src/TabContainerTemplate.tsx +1 -0
  644. package/src/TableCellTemplate.tsx +15 -0
  645. package/src/TableGrowingTemplate.tsx +23 -0
  646. package/src/TableHeaderCellActionBaseTemplate.tsx +13 -0
  647. package/src/TableHeaderCellTemplate.tsx +27 -0
  648. package/src/TableHeaderRowTemplate.tsx +44 -0
  649. package/src/TableRowActionBaseTemplate.tsx +28 -0
  650. package/src/TableRowTemplate.tsx +76 -0
  651. package/src/TableTemplate.tsx +76 -0
  652. package/src/ToolbarPopoverTemplate.tsx +1 -0
  653. package/src/features/InputSuggestionsTemplate.tsx +2 -0
  654. package/src/i18n/messagebundle.properties +9 -0
  655. package/src/i18n/messagebundle_ar.properties +2 -0
  656. package/src/i18n/messagebundle_bg.properties +2 -0
  657. package/src/i18n/messagebundle_ca.properties +2 -0
  658. package/src/i18n/messagebundle_cnr.properties +2 -0
  659. package/src/i18n/messagebundle_cs.properties +2 -0
  660. package/src/i18n/messagebundle_cy.properties +2 -0
  661. package/src/i18n/messagebundle_da.properties +2 -0
  662. package/src/i18n/messagebundle_de.properties +2 -0
  663. package/src/i18n/messagebundle_el.properties +2 -0
  664. package/src/i18n/messagebundle_en.properties +2 -0
  665. package/src/i18n/messagebundle_en_GB.properties +2 -0
  666. package/src/i18n/messagebundle_en_US_saprigi.properties +4 -0
  667. package/src/i18n/messagebundle_es.properties +2 -0
  668. package/src/i18n/messagebundle_es_MX.properties +2 -0
  669. package/src/i18n/messagebundle_et.properties +2 -0
  670. package/src/i18n/messagebundle_fi.properties +2 -0
  671. package/src/i18n/messagebundle_fr.properties +2 -0
  672. package/src/i18n/messagebundle_fr_CA.properties +2 -0
  673. package/src/i18n/messagebundle_hi.properties +2 -0
  674. package/src/i18n/messagebundle_hr.properties +2 -0
  675. package/src/i18n/messagebundle_hu.properties +2 -0
  676. package/src/i18n/messagebundle_id.properties +2 -0
  677. package/src/i18n/messagebundle_it.properties +2 -0
  678. package/src/i18n/messagebundle_iw.properties +2 -0
  679. package/src/i18n/messagebundle_ja.properties +2 -0
  680. package/src/i18n/messagebundle_kk.properties +2 -0
  681. package/src/i18n/messagebundle_ko.properties +2 -0
  682. package/src/i18n/messagebundle_lt.properties +2 -0
  683. package/src/i18n/messagebundle_lv.properties +2 -0
  684. package/src/i18n/messagebundle_mk.properties +2 -0
  685. package/src/i18n/messagebundle_ms.properties +2 -0
  686. package/src/i18n/messagebundle_nl.properties +2 -0
  687. package/src/i18n/messagebundle_no.properties +2 -0
  688. package/src/i18n/messagebundle_pl.properties +2 -0
  689. package/src/i18n/messagebundle_pt.properties +2 -0
  690. package/src/i18n/messagebundle_pt_PT.properties +2 -0
  691. package/src/i18n/messagebundle_ro.properties +2 -0
  692. package/src/i18n/messagebundle_ru.properties +2 -0
  693. package/src/i18n/messagebundle_sh.properties +2 -0
  694. package/src/i18n/messagebundle_sk.properties +2 -0
  695. package/src/i18n/messagebundle_sl.properties +2 -0
  696. package/src/i18n/messagebundle_sr.properties +2 -0
  697. package/src/i18n/messagebundle_sv.properties +2 -0
  698. package/src/i18n/messagebundle_th.properties +2 -0
  699. package/src/i18n/messagebundle_tr.properties +2 -0
  700. package/src/i18n/messagebundle_uk.properties +2 -0
  701. package/src/i18n/messagebundle_vi.properties +2 -0
  702. package/src/i18n/messagebundle_zh_CN.properties +2 -0
  703. package/src/i18n/messagebundle_zh_TW.properties +2 -0
  704. package/src/themes/Avatar.css +51 -2
  705. package/src/themes/Menu.css +7 -0
  706. package/src/themes/PopupsCommon.css +7 -4
  707. package/src/themes/TabContainer.css +4 -0
  708. package/src/themes/TableCell.css +5 -1
  709. package/src/themes/TableCellBase.css +1 -1
  710. package/src/themes/TableGrowing.css +4 -1
  711. package/src/themes/Text.css +9 -5
  712. package/src/themes/Toast.css +1 -1
  713. package/src/themes/Token.css +10 -10
  714. package/src/themes/base/Avatar-parameters.css +1 -1
  715. package/src/themes/base/Toast-parameters.css +2 -2
  716. package/src/themes/sap_horizon/Avatar-parameters.css +3 -2
  717. package/src/themes/sap_horizon/Switch-parameters.css +7 -7
  718. package/src/themes/sap_horizon_dark/Avatar-parameters.css +2 -1
  719. package/src/themes/sap_horizon_dark/Switch-parameters.css +7 -7
  720. package/src/themes/sap_horizon_hcb/Avatar-parameters.css +3 -2
  721. package/src/themes/sap_horizon_hcb/Switch-parameters.css +7 -28
  722. package/src/themes/sap_horizon_hcw/Avatar-parameters.css +3 -2
  723. package/src/themes/sap_horizon_hcw/Switch-parameters.css +7 -7
  724. package/dist/SuggestionItemGroupTemplate.d.ts +0 -2
  725. package/dist/SuggestionItemGroupTemplate.js +0 -5
  726. package/dist/SuggestionItemGroupTemplate.js.map +0 -1
  727. package/dist/generated/templates/TableGrowingTemplate.lit.d.ts +0 -3
  728. package/dist/generated/templates/TableGrowingTemplate.lit.js +0 -8
  729. package/dist/generated/templates/TableGrowingTemplate.lit.js.map +0 -1
  730. package/dist/generated/templates/TableHeaderCellActionBaseTemplate.lit.d.ts +0 -3
  731. package/dist/generated/templates/TableHeaderCellActionBaseTemplate.lit.js +0 -7
  732. package/dist/generated/templates/TableHeaderCellActionBaseTemplate.lit.js.map +0 -1
  733. package/dist/generated/templates/TableHeaderCellTemplate.lit.d.ts +0 -3
  734. package/dist/generated/templates/TableHeaderCellTemplate.lit.js +0 -8
  735. package/dist/generated/templates/TableHeaderCellTemplate.lit.js.map +0 -1
  736. package/dist/generated/templates/TableHeaderRowTemplate.lit.d.ts +0 -3
  737. package/dist/generated/templates/TableHeaderRowTemplate.lit.js +0 -12
  738. package/dist/generated/templates/TableHeaderRowTemplate.lit.js.map +0 -1
  739. package/dist/generated/templates/TableRowActionBaseTemplate.lit.d.ts +0 -3
  740. package/dist/generated/templates/TableRowActionBaseTemplate.lit.js +0 -11
  741. package/dist/generated/templates/TableRowActionBaseTemplate.lit.js.map +0 -1
  742. package/dist/generated/templates/TableRowTemplate.lit.d.ts +0 -3
  743. package/dist/generated/templates/TableRowTemplate.lit.js +0 -18
  744. package/dist/generated/templates/TableRowTemplate.lit.js.map +0 -1
  745. package/dist/generated/templates/TableTemplate.lit.d.ts +0 -3
  746. package/dist/generated/templates/TableTemplate.lit.js +0 -12
  747. package/dist/generated/templates/TableTemplate.lit.js.map +0 -1
  748. package/src/SuggestionItemGroupTemplate.tsx +0 -6
  749. package/src/Table.hbs +0 -63
  750. package/src/TableGrowing.hbs +0 -17
  751. package/src/TableHeaderCell.hbs +0 -5
  752. package/src/TableHeaderCellActionBase.hbs +0 -6
  753. package/src/TableHeaderRow.hbs +0 -28
  754. package/src/TableRow.hbs +0 -55
  755. package/src/TableRowActionBase.hbs +0 -16
@@ -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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TableSelectionBase.js","sourceRoot":"","sources":["../src/TableSelectionBase.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,UAAU,MAAM,4CAA4C,CAAC;AACpE,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,4CAA4C,CAAC;AACnF,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAapD;;;;GAIG;AAaH,IAAe,kBAAkB;AARjC;;;;;;;GAOG;AACH,MAAe,kBAAmB,SAAQ,UAAU;IAApD;;QAcU,eAAU,GAAG,gBAAgB,CAAC;IAyFxC,CAAC;IAtFA,eAAe,CAAC,KAAY;QAC3B,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACpB,IAAI,CAAC,uBAAuB,EAAE,CAAC;IAChC,CAAC;IAED,SAAS;QACR,IAAI,CAAC,uBAAuB,EAAE,CAAC;QAC/B,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC;IACzB,CAAC;IAED,iBAAiB;QAChB,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,aAAa,IAAI,iBAAiB,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC;YACjF,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC;QAClC,CAAC;QACD,IAAI,CAAC,uBAAuB,EAAE,CAAC;IAChC,CAAC;IAED,sEAAsE;IACtE,YAAY;QACX,OAAO,IAAI,CAAC;IACb,CAAC;IAED;;OAEG;IACH,iBAAiB;QAChB,OAAO,KAAK,CAAC;IACd,CAAC;IAED;;OAEG;IACH,qBAAqB;QACpB,OAAO,IAAI,CAAC;IACb,CAAC;IAED;;;;;OAKG;IACH,SAAS,CAAC,GAAa;QACtB,OAAO,GAAG,CAAC,MAAM,IAAI,EAAE,CAAC;IACzB,CAAC;IAED;;;;;OAKG;IACH,WAAW,CAAC,MAAc;QACzB,IAAI,IAAI,CAAC,MAAM,IAAI,MAAM,EAAE,CAAC;YAC3B,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,MAAM,CAAC,CAAC;QACrE,CAAC;IACF,CAAC;IAmBD;;;;OAIG;IACO,uBAAuB;QAChC,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YACjB,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;YAC1B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC;QACpD,CAAC;IACF,CAAC;CACD,CAAA;AA3FA;IADC,QAAQ,EAAE;oDACO;AAZJ,kBAAkB;IAZhC,WAAW,CAAC,QAAQ,EAAE;QACtB,OAAO,EAAE,KAAK;KACd,CAAC;IAEF;;;;;;;OAOG;GACY,kBAAkB,CAuGhC;AAED,eAAe,kBAAkB,CAAC","sourcesContent":["import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport { property, eventStrict } from \"@ui5/webcomponents-base/dist/decorators.js\";\nimport { isInstanceOfTable } from \"./TableUtils.js\";\nimport type Table from \"./Table.js\";\nimport type TableRowBase from \"./TableRowBase.js\";\nimport type TableRow from \"./TableRow.js\";\nimport type { ITableFeature } from \"./Table.js\";\n\n/**\n * Fired when selection is changed by user interaction.\n *\n * @public\n */\ntype TableSelectionBaseChangeEventDetail = void;\n\n/**\n * Fired when the selection is changed by user interaction.\n *\n * @public\n */\n@eventStrict(\"change\", {\n\tbubbles: false,\n})\n\n/**\n * @class\n * The `TableSelectionBase` class serves as a foundation for table selections.\n * @constructor\n * @extends UI5Element\n * @since 2.8.0\n * @public\n */\nabstract class TableSelectionBase extends UI5Element implements ITableFeature {\n\teventDetails!: {\n\t\tchange: TableSelectionBaseChangeEventDetail,\n\t}\n\n\t/**\n\t * Defines the selected elements of the component.\n\t *\n\t * @default undefined\n\t * @public\n\t */\n\t@property()\n\tselected?: string;\n\n\treadonly identifier = \"TableSelection\";\n\tprotected _table?: Table;\n\n\tonTableActivate(table: Table) {\n\t\tthis._table = table;\n\t\tthis._invalidateTableAndRows();\n\t}\n\n\tonExitDOM() {\n\t\tthis._invalidateTableAndRows();\n\t\tthis._table = undefined;\n\t}\n\n\tonBeforeRendering() {\n\t\tif (!this._table && this.parentElement && isInstanceOfTable(this.parentElement)) {\n\t\t\tthis._table = this.parentElement;\n\t\t}\n\t\tthis._invalidateTableAndRows();\n\t}\n\n\t// this will be removed when the legacy selection component is removed\n\tisSelectable(): boolean {\n\t\treturn true;\n\t}\n\n\t/**\n\t * Determines if the component allows multiple selection.\n\t */\n\tisMultiSelectable(): boolean {\n\t\treturn false;\n\t}\n\n\t/**\n\t * Determines whether a row selector (for example, `radiobutton` or `checkbox`) is rendered.\n\t */\n\tisRowSelectorRequired(): boolean {\n\t\treturn true;\n\t}\n\n\t/**\n\t * Returns the unique key associated with the table row.\n\t *\n\t * @param row The row instance\n\t * @public\n\t */\n\tgetRowKey(row: TableRow): string {\n\t\treturn row.rowKey || \"\";\n\t}\n\n\t/**\n\t * Returns the table row instance for the given row key.\n\t *\n\t * @param rowKey The row key\n\t * @public\n\t */\n\tgetRowByKey(rowKey: string): TableRow | undefined {\n\t\tif (this._table && rowKey) {\n\t\t\treturn this._table.rows.find(row => this.getRowKey(row) === rowKey);\n\t\t}\n\t}\n\n\t/**\n\t * Determines whether the specified table row is currently selected.\n\t *\n\t * @param row The row instance\n\t * @public\n\t */\n\tabstract isSelected(row: TableRowBase): boolean;\n\n\t/**\n\t * Sets the selected state of the specified table row.\n\t *\n\t * @param row The row instance\n\t * @param selected Whether the row is selected\n\t * @public\n\t */\n\tabstract setSelected(row: TableRowBase, selected: boolean, _fireEvent: boolean): void;\n\n\t/**\n\t * Invalidates the table and its rows to re-evaluate the selection.\n\t *\n\t * @protected\n\t */\n\tprotected _invalidateTableAndRows() {\n\t\tif (this._table) {\n\t\t\tthis._table._invalidate++;\n\t\t\tthis._table.rows.forEach(row => row._invalidate++);\n\t\t}\n\t}\n}\n\nexport default TableSelectionBase;\n\nexport type {\n\tTableSelectionBaseChangeEventDetail,\n};\n"]}
@@ -0,0 +1,92 @@
1
+ import TableSelectionBase from "./TableSelectionBase.js";
2
+ import type TableRow from "./TableRow.js";
3
+ import type TableRowBase from "./TableRowBase.js";
4
+ /**
5
+ * @class
6
+ *
7
+ * ### Overview
8
+ *
9
+ * The `ui5-table-selection-multi` component is used inside the `ui5-table` to add multi-selection capabilities to the `ui5-table`.
10
+ * Since selection is key-based, each `ui5-table-row` must define a unique `row-key` property.
11
+ *
12
+ * ### Usage
13
+ *
14
+ * The `ui5-table-selection-multi` component is a feature designed exclusively for use within the `ui5-table` component.
15
+ * It must be placed inside the `features` slot of `ui5-table`.
16
+ * This component is not intended for standalone use.
17
+ *
18
+ * ```html
19
+ * <ui5-table>
20
+ * <ui5-table-selection-multi slot="features" selected="Row1 Row3"></ui5-table-selection-multi>
21
+ * </ui5-table>
22
+ * ```
23
+ *
24
+ * ### ES6 Module Import
25
+ *
26
+ * `import "@ui5/webcomponents/dist/TableSelectionMulti.js";`
27
+ *
28
+ * @constructor
29
+ * @extends TableSelectionBase
30
+ * @since 2.8.0
31
+ * @public
32
+ */
33
+ declare class TableSelectionMulti extends TableSelectionBase {
34
+ /**
35
+ * Defines the `row-key` values of selected rows, with each value separated by a space.
36
+ *
37
+ * @default undefined
38
+ * @public
39
+ */
40
+ selected?: string;
41
+ private _rowsLength;
42
+ private _rangeSelection?;
43
+ onTableBeforeRendering(): void;
44
+ isMultiSelectable(): boolean;
45
+ isSelected(row: TableRowBase): boolean;
46
+ setSelected(row: TableRowBase, selected: boolean, _fireEvent?: boolean): void;
47
+ /**
48
+ * Returns an array of the selected rows.
49
+ *
50
+ * @public
51
+ */
52
+ getSelectedRows(): TableRow[];
53
+ /**
54
+ * Determines whether all rows are selected.
55
+ *
56
+ * @public
57
+ */
58
+ areAllRowsSelected(): boolean;
59
+ /**
60
+ * Returns the `selected` property as a set of unique `row-key` values.
61
+ *
62
+ * @public
63
+ */
64
+ getSelectedAsSet(): Set<string>;
65
+ /**
66
+ * Sets the `selected` property using the provided set of unique `row-key` values.
67
+ *
68
+ * @param selectedSet A set of `row-key` values
69
+ * @public
70
+ */
71
+ setSelectedAsSet(selectedSet: Set<string>): void;
72
+ _invalidateTableAndRows(): void;
73
+ _onkeydown(e: KeyboardEvent): void;
74
+ _onkeyup(e: KeyboardEvent, eventOrigin: HTMLElement): void;
75
+ _onclick(e: MouseEvent): void;
76
+ /**
77
+ * Start the range selection and initialises the range selection state
78
+ * @param row starting row
79
+ * @private
80
+ */
81
+ _startRangeSelection(row: TableRow, isMouse?: boolean): void;
82
+ /**
83
+ * Handles the range selection
84
+ * @param targetRow Row that is currently focused
85
+ * @param change indicates direction
86
+ * @private
87
+ */
88
+ _handleRangeSelection(targetRow: TableRow, change: number): void;
89
+ _stopRangeSelection(): void;
90
+ _reverseRangeSelection(): void;
91
+ }
92
+ export default TableSelectionMulti;
@@ -0,0 +1,260 @@
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 { customElement, property } from "@ui5/webcomponents-base/dist/decorators.js";
8
+ import TableSelectionBase from "./TableSelectionBase.js";
9
+ import getActiveElement from "@ui5/webcomponents-base/dist/util/getActiveElement.js";
10
+ import { isSelectionCheckbox, isHeaderSelector, findRowInPath } from "./TableUtils.js";
11
+ import { isUpShift } from "@ui5/webcomponents-base/dist/Keys.js";
12
+ /**
13
+ * @class
14
+ *
15
+ * ### Overview
16
+ *
17
+ * The `ui5-table-selection-multi` component is used inside the `ui5-table` to add multi-selection capabilities to the `ui5-table`.
18
+ * Since selection is key-based, each `ui5-table-row` must define a unique `row-key` property.
19
+ *
20
+ * ### Usage
21
+ *
22
+ * The `ui5-table-selection-multi` component is a feature designed exclusively for use within the `ui5-table` component.
23
+ * It must be placed inside the `features` slot of `ui5-table`.
24
+ * This component is not intended for standalone use.
25
+ *
26
+ * ```html
27
+ * <ui5-table>
28
+ * <ui5-table-selection-multi slot="features" selected="Row1 Row3"></ui5-table-selection-multi>
29
+ * </ui5-table>
30
+ * ```
31
+ *
32
+ * ### ES6 Module Import
33
+ *
34
+ * `import "@ui5/webcomponents/dist/TableSelectionMulti.js";`
35
+ *
36
+ * @constructor
37
+ * @extends TableSelectionBase
38
+ * @since 2.8.0
39
+ * @public
40
+ */
41
+ let TableSelectionMulti = class TableSelectionMulti extends TableSelectionBase {
42
+ constructor() {
43
+ super(...arguments);
44
+ this._rowsLength = 0;
45
+ }
46
+ onTableBeforeRendering() {
47
+ if (this._table && this._table.headerRow[0] && this._rowsLength !== this._table.rows.length) {
48
+ this._rowsLength = this._table.rows.length;
49
+ this._table.headerRow[0]._invalidate++;
50
+ }
51
+ }
52
+ isMultiSelectable() {
53
+ return true;
54
+ }
55
+ isSelected(row) {
56
+ if (row.isHeaderRow()) {
57
+ return this.areAllRowsSelected();
58
+ }
59
+ const rowKey = this.getRowKey(row);
60
+ return this.getSelectedAsSet().has(rowKey);
61
+ }
62
+ setSelected(row, selected, _fireEvent = false) {
63
+ if (this._rangeSelection?.isMouse && this._rangeSelection.shiftPressed) {
64
+ return;
65
+ }
66
+ const tableRows = row.isHeaderRow() ? this._table.rows : [row];
67
+ const selectedSet = this.getSelectedAsSet();
68
+ tableRows.forEach(tableRow => {
69
+ const rowKey = this.getRowKey(tableRow);
70
+ selectedSet[selected ? "add" : "delete"](rowKey);
71
+ });
72
+ this.setSelectedAsSet(selectedSet);
73
+ _fireEvent && this.fireDecoratorEvent("change");
74
+ }
75
+ /**
76
+ * Returns an array of the selected rows.
77
+ *
78
+ * @public
79
+ */
80
+ getSelectedRows() {
81
+ return this._table ? this._table.rows.filter(row => this.isSelected(row)) : [];
82
+ }
83
+ /**
84
+ * Determines whether all rows are selected.
85
+ *
86
+ * @public
87
+ */
88
+ areAllRowsSelected() {
89
+ if (!this._table || !this._table.rows.length) {
90
+ return false;
91
+ }
92
+ const selectedSet = this.getSelectedAsSet();
93
+ return this._table.rows.every(row => {
94
+ const rowKey = this.getRowKey(row);
95
+ return selectedSet.has(rowKey);
96
+ });
97
+ }
98
+ /**
99
+ * Returns the `selected` property as a set of unique `row-key` values.
100
+ *
101
+ * @public
102
+ */
103
+ getSelectedAsSet() {
104
+ const selected = this.selected || "";
105
+ const selectedArray = selected.split(" ").filter(String);
106
+ return new Set(selectedArray);
107
+ }
108
+ /**
109
+ * Sets the `selected` property using the provided set of unique `row-key` values.
110
+ *
111
+ * @param selectedSet A set of `row-key` values
112
+ * @public
113
+ */
114
+ setSelectedAsSet(selectedSet) {
115
+ this.selected = [...selectedSet].join(" ");
116
+ }
117
+ _invalidateTableAndRows() {
118
+ super._invalidateTableAndRows();
119
+ const headerRow = this._table?.headerRow[0];
120
+ headerRow && headerRow._invalidate++;
121
+ }
122
+ _onkeydown(e) {
123
+ if (!this._table || !e.shiftKey) {
124
+ return;
125
+ }
126
+ const focusedElement = getActiveElement(); // Assumption: The focused element is always the "next" row after navigation.
127
+ if (!(focusedElement?.hasAttribute("ui5-table-row") || this._rangeSelection?.isMouse || focusedElement?.hasAttribute("ui5-growing-row"))) {
128
+ this._stopRangeSelection();
129
+ return;
130
+ }
131
+ if (!this._rangeSelection) {
132
+ // If no range selection is active, start one
133
+ this._startRangeSelection(focusedElement);
134
+ }
135
+ else if (e.key === "ArrowUp" || e.key === "ArrowDown") {
136
+ const change = isUpShift(e) ? -1 : 1;
137
+ this._handleRangeSelection(focusedElement, change);
138
+ }
139
+ if (this._rangeSelection) {
140
+ this._rangeSelection.shiftPressed = e.shiftKey;
141
+ }
142
+ }
143
+ _onkeyup(e, eventOrigin) {
144
+ if (!this._table) {
145
+ return;
146
+ }
147
+ if (!eventOrigin.hasAttribute("ui5-table-row") || !this._rangeSelection || !e.shiftKey) {
148
+ // Stop range selection if a) Shift is relased or b) the event target is not a row
149
+ this._stopRangeSelection();
150
+ }
151
+ if (this._rangeSelection) {
152
+ this._rangeSelection.shiftPressed = e.shiftKey;
153
+ }
154
+ }
155
+ _onclick(e) {
156
+ if (!this._table) {
157
+ return;
158
+ }
159
+ if (isHeaderSelector(e)) {
160
+ this._stopRangeSelection();
161
+ return;
162
+ }
163
+ if (!isSelectionCheckbox(e)) {
164
+ this._stopRangeSelection();
165
+ return;
166
+ }
167
+ const row = findRowInPath(e.composedPath());
168
+ if (e.shiftKey && this._rangeSelection?.isMouse) {
169
+ const startRow = this._rangeSelection.rows[0];
170
+ const startIndex = this._table.rows.indexOf(startRow);
171
+ const endIndex = this._table.rows.indexOf(row);
172
+ // When doing a range selection and clicking on an already selected row, the checked status should not change
173
+ // Therefore, we need to manually set the checked attribute again, as clicking it would deselect it and leads to
174
+ // a visual inconsistency.
175
+ row.shadowRoot?.querySelector("#selection-component")?.toggleAttribute("checked", true);
176
+ if (startIndex === -1 || endIndex === -1 || row.rowKey === startRow.rowKey || row.rowKey === this._rangeSelection.rows[this._rangeSelection.rows.length - 1].rowKey) {
177
+ return;
178
+ }
179
+ const change = endIndex - startIndex;
180
+ this._handleRangeSelection(row, change);
181
+ }
182
+ else if (row) {
183
+ this._startRangeSelection(row, true);
184
+ }
185
+ }
186
+ /**
187
+ * Start the range selection and initialises the range selection state
188
+ * @param row starting row
189
+ * @private
190
+ */
191
+ _startRangeSelection(row, isMouse = false) {
192
+ const selected = this.isSelected(row);
193
+ if (isMouse && !selected) {
194
+ // Do not initiate range selection if the row is not selected
195
+ return;
196
+ }
197
+ this._rangeSelection = {
198
+ selected,
199
+ isUp: null,
200
+ rows: [row],
201
+ isMouse,
202
+ shiftPressed: false,
203
+ };
204
+ }
205
+ /**
206
+ * Handles the range selection
207
+ * @param targetRow Row that is currently focused
208
+ * @param change indicates direction
209
+ * @private
210
+ */
211
+ _handleRangeSelection(targetRow, change) {
212
+ if (!this._rangeSelection) {
213
+ return;
214
+ }
215
+ const isUp = change > 0;
216
+ this._rangeSelection.isUp ??= isUp;
217
+ const shouldReverseSelection = isUp !== this._rangeSelection.isUp && !this._rangeSelection.isMouse;
218
+ let selectionChanged = shouldReverseSelection && this.isSelected(targetRow);
219
+ if (shouldReverseSelection) {
220
+ this._reverseRangeSelection();
221
+ }
222
+ else {
223
+ const rowIndex = this._table.rows.indexOf(targetRow);
224
+ const [startIndex, endIndex] = [rowIndex, rowIndex - change].sort((a, b) => a - b);
225
+ const selectedSet = this.getSelectedAsSet();
226
+ selectionChanged = this._table?.rows.slice(startIndex, endIndex + 1).reduce((changed, row) => {
227
+ const isRowNotInSelection = !this._rangeSelection?.rows.includes(row);
228
+ const isRowSelectionDifferent = this.isSelected(row) !== this._rangeSelection.selected;
229
+ if (isRowNotInSelection) {
230
+ this._rangeSelection?.rows.push(row);
231
+ }
232
+ selectedSet[this._rangeSelection.selected ? "add" : "delete"](this.getRowKey(row));
233
+ return changed || isRowSelectionDifferent;
234
+ }, selectionChanged) || false;
235
+ this.setSelectedAsSet(selectedSet);
236
+ }
237
+ selectionChanged && this.fireDecoratorEvent("change");
238
+ }
239
+ _stopRangeSelection() {
240
+ this._rangeSelection = null;
241
+ }
242
+ _reverseRangeSelection() {
243
+ const row = this._rangeSelection?.rows.pop();
244
+ if (row) {
245
+ this.setSelected(row, false);
246
+ }
247
+ if (this._rangeSelection?.rows.length === 1) {
248
+ this._rangeSelection.isUp = null;
249
+ }
250
+ }
251
+ };
252
+ __decorate([
253
+ property()
254
+ ], TableSelectionMulti.prototype, "selected", void 0);
255
+ TableSelectionMulti = __decorate([
256
+ customElement({ tag: "ui5-table-selection-multi" })
257
+ ], TableSelectionMulti);
258
+ TableSelectionMulti.define();
259
+ export default TableSelectionMulti;
260
+ //# sourceMappingURL=TableSelectionMulti.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TableSelectionMulti.js","sourceRoot":"","sources":["../src/TableSelectionMulti.ts"],"names":[],"mappings":"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","sourcesContent":["import { customElement, property } from \"@ui5/webcomponents-base/dist/decorators.js\";\nimport TableSelectionBase from \"./TableSelectionBase.js\";\nimport getActiveElement from \"@ui5/webcomponents-base/dist/util/getActiveElement.js\";\nimport { isSelectionCheckbox, isHeaderSelector, findRowInPath } from \"./TableUtils.js\";\nimport { isUpShift } from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport type TableRow from \"./TableRow.js\";\nimport type TableRowBase from \"./TableRowBase.js\";\n\n/**\n * @class\n *\n * ### Overview\n *\n * The `ui5-table-selection-multi` component is used inside the `ui5-table` to add multi-selection capabilities to the `ui5-table`.\n * Since selection is key-based, each `ui5-table-row` must define a unique `row-key` property.\n *\n * ### Usage\n *\n * The `ui5-table-selection-multi` component is a feature designed exclusively for use within the `ui5-table` component.\n * It must be placed inside the `features` slot of `ui5-table`.\n * This component is not intended for standalone use.\n *\n * ```html\n * <ui5-table>\n * \t<ui5-table-selection-multi slot=\"features\" selected=\"Row1 Row3\"></ui5-table-selection-multi>\n * </ui5-table>\n * ```\n *\n * ### ES6 Module Import\n *\n * `import \"@ui5/webcomponents/dist/TableSelectionMulti.js\";`\n *\n * @constructor\n * @extends TableSelectionBase\n * @since 2.8.0\n * @public\n */\n@customElement({ tag: \"ui5-table-selection-multi\" })\n\nclass TableSelectionMulti extends TableSelectionBase {\n\t/**\n\t * Defines the `row-key` values of selected rows, with each value separated by a space.\n\t *\n\t * @default undefined\n\t * @public\n\t */\n\t@property()\n\tselected?: string;\n\n\tprivate _rowsLength = 0;\n\tprivate _rangeSelection?: {\n\t\tselected: boolean,\n\t\tisUp: boolean | null,\n\t\trows: TableRow[],\n\t\tisMouse: boolean,\n\t\tshiftPressed: boolean\n\t} | null;\n\n\tonTableBeforeRendering() {\n\t\tif (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\tisMultiSelectable(): boolean {\n\t\treturn true;\n\t}\n\n\tisSelected(row: TableRowBase): boolean {\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.getSelectedAsSet().has(rowKey);\n\t}\n\n\tsetSelected(row: TableRowBase, selected: boolean, _fireEvent: boolean = false) {\n\t\tif (this._rangeSelection?.isMouse && this._rangeSelection.shiftPressed) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst tableRows = row.isHeaderRow() ? this._table!.rows : [row as TableRow];\n\t\tconst selectedSet = this.getSelectedAsSet();\n\t\ttableRows.forEach(tableRow => {\n\t\t\tconst rowKey = this.getRowKey(tableRow);\n\t\t\tselectedSet[selected ? \"add\" : \"delete\"](rowKey);\n\t\t});\n\n\t\tthis.setSelectedAsSet(selectedSet);\n\t\t_fireEvent && this.fireDecoratorEvent(\"change\");\n\t}\n\n\t/**\n\t * Returns an array of the selected rows.\n\t *\n\t * @public\n\t */\n\tgetSelectedRows(): TableRow[] {\n\t\treturn this._table ? this._table.rows.filter(row => this.isSelected(row)) : [];\n\t}\n\n\t/**\n\t * Determines whether all rows are selected.\n\t *\n\t * @public\n\t */\n\tareAllRowsSelected(): boolean {\n\t\tif (!this._table || !this._table.rows.length) {\n\t\t\treturn false;\n\t\t}\n\n\t\tconst selectedSet = this.getSelectedAsSet();\n\t\treturn this._table.rows.every(row => {\n\t\t\tconst rowKey = this.getRowKey(row);\n\t\t\treturn selectedSet.has(rowKey);\n\t\t});\n\t}\n\n\t/**\n\t * Returns the `selected` property as a set of unique `row-key` values.\n\t *\n\t * @public\n\t */\n\tgetSelectedAsSet(): Set<string> {\n\t\tconst selected = this.selected || \"\";\n\t\tconst selectedArray = selected.split(\" \").filter(String);\n\t\treturn new Set(selectedArray);\n\t}\n\n\t/**\n\t * Sets the `selected` property using the provided set of unique `row-key` values.\n\t *\n\t * @param selectedSet A set of `row-key` values\n\t * @public\n\t */\n\tsetSelectedAsSet(selectedSet: Set<string>): void {\n\t\tthis.selected = [...selectedSet].join(\" \");\n\t}\n\n\t_invalidateTableAndRows() {\n\t\tsuper._invalidateTableAndRows();\n\t\tconst headerRow = this._table?.headerRow[0];\n\t\theaderRow && headerRow._invalidate++;\n\t}\n\n\t_onkeydown(e: KeyboardEvent) {\n\t\tif (!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\t\t\tconst selectedSet = this.getSelectedAsSet();\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\tselectedSet[this._rangeSelection!.selected ? \"add\" : \"delete\"](this.getRowKey(row));\n\n\t\t\t\treturn changed || isRowSelectionDifferent;\n\t\t\t}, selectionChanged) || false;\n\n\t\t\tthis.setSelectedAsSet(selectedSet);\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.setSelected(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\nTableSelectionMulti.define();\n\nexport default TableSelectionMulti;\n"]}
@@ -0,0 +1,49 @@
1
+ import TableSelectionBase from "./TableSelectionBase.js";
2
+ import type TableRow from "./TableRow.js";
3
+ /**
4
+ * @class
5
+ *
6
+ * ### Overview
7
+ *
8
+ * The `ui5-table-selection-single` component is used inside the `ui5-table` to add single selection capabilities to the `ui5-table`.
9
+ * Since selection is key-based, each `ui5-table-row` must define a unique `row-key` property.
10
+ *
11
+ * ### Usage
12
+ *
13
+ * The `ui5-table-selection-single` component is a feature designed exclusively for use within the `ui5-table` component.
14
+ * It must be placed inside the `features` slot of `ui5-table`.
15
+ * This component is not intended for standalone use.
16
+ *
17
+ * ```html
18
+ * <ui5-table>
19
+ * <ui5-table-selection-single slot="features" selected="Row1"></ui5-table-selection-single>
20
+ * </ui5-table>
21
+ * ```
22
+ *
23
+ * ### ES6 Module Import
24
+ *
25
+ * `import "@ui5/webcomponents/dist/TableSelectionSingle.js";`
26
+ *
27
+ * @constructor
28
+ * @extends TableSelectionBase
29
+ * @since 2.8.0
30
+ * @public
31
+ */
32
+ declare class TableSelectionSingle extends TableSelectionBase {
33
+ /**
34
+ * Defines the `row-key` value of the selected row.
35
+ *
36
+ * @default undefined
37
+ * @public
38
+ */
39
+ selected?: string;
40
+ isSelected(row: TableRow): boolean;
41
+ setSelected(row: TableRow, selected: boolean, _fireEvent?: boolean): void;
42
+ /**
43
+ * Returns the selected row.
44
+ *
45
+ * @public
46
+ */
47
+ getSelectedRow(): TableRow | undefined;
48
+ }
49
+ export default TableSelectionSingle;