@ui5/webcomponents 2.13.0-rc.2 → 2.13.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 (692) hide show
  1. package/CHANGELOG.md +47 -0
  2. package/dist/.tsbuildinfo +1 -1
  3. package/dist/Assets-fetch.d.ts +1 -0
  4. package/dist/Assets-fetch.js +1 -0
  5. package/dist/Assets-fetch.js.map +1 -1
  6. package/dist/Assets-node.d.ts +1 -0
  7. package/dist/Assets-node.js +1 -0
  8. package/dist/Assets-node.js.map +1 -1
  9. package/dist/Assets.d.ts +1 -0
  10. package/dist/Assets.js +1 -0
  11. package/dist/Assets.js.map +1 -1
  12. package/dist/AvatarGroup.d.ts +1 -1
  13. package/dist/Button.d.ts +18 -1
  14. package/dist/Button.js +28 -2
  15. package/dist/Button.js.map +1 -1
  16. package/dist/ButtonTemplate.js +12 -9
  17. package/dist/ButtonTemplate.js.map +1 -1
  18. package/dist/CalendarLegend.d.ts +1 -0
  19. package/dist/CalendarLegend.js +3 -0
  20. package/dist/CalendarLegend.js.map +1 -1
  21. package/dist/ColorPalette.d.ts +1 -0
  22. package/dist/ColorPalette.js +3 -0
  23. package/dist/ColorPalette.js.map +1 -1
  24. package/dist/ColorPalettePopover.d.ts +1 -1
  25. package/dist/ColorPalettePopover.js.map +1 -1
  26. package/dist/ColorPicker.js +8 -0
  27. package/dist/ColorPicker.js.map +1 -1
  28. package/dist/ComboBox.d.ts +3 -5
  29. package/dist/ComboBox.js +41 -11
  30. package/dist/ComboBox.js.map +1 -1
  31. package/dist/ComboBoxPopoverTemplate.js +1 -1
  32. package/dist/ComboBoxPopoverTemplate.js.map +1 -1
  33. package/dist/Dialog.js +0 -1
  34. package/dist/Dialog.js.map +1 -1
  35. package/dist/FileUploader.d.ts +1 -1
  36. package/dist/FileUploader.js +16 -7
  37. package/dist/FileUploader.js.map +1 -1
  38. package/dist/IconTemplate.js +21 -2
  39. package/dist/IconTemplate.js.map +1 -1
  40. package/dist/Input.d.ts +1 -3
  41. package/dist/Input.js +4 -6
  42. package/dist/Input.js.map +1 -1
  43. package/dist/InputPopoverTemplate.js +1 -1
  44. package/dist/InputPopoverTemplate.js.map +1 -1
  45. package/dist/ListItemGroup.d.ts +19 -0
  46. package/dist/ListItemGroup.js +21 -0
  47. package/dist/ListItemGroup.js.map +1 -1
  48. package/dist/ListItemGroupHeader.d.ts +47 -0
  49. package/dist/ListItemGroupHeader.js +78 -0
  50. package/dist/ListItemGroupHeader.js.map +1 -1
  51. package/dist/ListItemGroupHeaderTemplate.js +13 -1
  52. package/dist/ListItemGroupHeaderTemplate.js.map +1 -1
  53. package/dist/ListItemGroupTemplate.js +1 -1
  54. package/dist/ListItemGroupTemplate.js.map +1 -1
  55. package/dist/ListTemplate.js +1 -1
  56. package/dist/ListTemplate.js.map +1 -1
  57. package/dist/Menu.d.ts +2 -1
  58. package/dist/Menu.js +3 -0
  59. package/dist/Menu.js.map +1 -1
  60. package/dist/MultiComboBox.js +6 -3
  61. package/dist/MultiComboBox.js.map +1 -1
  62. package/dist/Popover.d.ts +4 -4
  63. package/dist/Popover.js +9 -2
  64. package/dist/Popover.js.map +1 -1
  65. package/dist/Popup.js +1 -0
  66. package/dist/Popup.js.map +1 -1
  67. package/dist/SegmentedButton.d.ts +1 -0
  68. package/dist/SegmentedButton.js +3 -0
  69. package/dist/SegmentedButton.js.map +1 -1
  70. package/dist/SplitButton.d.ts +35 -12
  71. package/dist/SplitButton.js +39 -8
  72. package/dist/SplitButton.js.map +1 -1
  73. package/dist/SplitButtonTemplate.js +2 -3
  74. package/dist/SplitButtonTemplate.js.map +1 -1
  75. package/dist/Table.d.ts +3 -1
  76. package/dist/Table.js +17 -1
  77. package/dist/Table.js.map +1 -1
  78. package/dist/TableHeaderRow.d.ts +1 -0
  79. package/dist/TableHeaderRow.js +5 -1
  80. package/dist/TableHeaderRow.js.map +1 -1
  81. package/dist/TableHeaderRowTemplate.d.ts +1 -1
  82. package/dist/TableHeaderRowTemplate.js +7 -4
  83. package/dist/TableHeaderRowTemplate.js.map +1 -1
  84. package/dist/TableRow.d.ts +2 -1
  85. package/dist/TableRow.js +11 -2
  86. package/dist/TableRow.js.map +1 -1
  87. package/dist/TableRowTemplate.js +1 -1
  88. package/dist/TableRowTemplate.js.map +1 -1
  89. package/dist/TableSelection.d.ts +2 -0
  90. package/dist/TableSelection.js +6 -0
  91. package/dist/TableSelection.js.map +1 -1
  92. package/dist/TableSelectionBase.d.ts +8 -0
  93. package/dist/TableSelectionBase.js +17 -0
  94. package/dist/TableSelectionBase.js.map +1 -1
  95. package/dist/TableSelectionMulti.d.ts +4 -0
  96. package/dist/TableSelectionMulti.js +21 -0
  97. package/dist/TableSelectionMulti.js.map +1 -1
  98. package/dist/TableTemplate.js +2 -2
  99. package/dist/TableTemplate.js.map +1 -1
  100. package/dist/Tokenizer.d.ts +2 -2
  101. package/dist/Tokenizer.js.map +1 -1
  102. package/dist/Toolbar.d.ts +1 -1
  103. package/dist/Toolbar.js +8 -3
  104. package/dist/Toolbar.js.map +1 -1
  105. package/dist/ToolbarButton.js.map +1 -1
  106. package/dist/bundle-assets/IconPensilJSXTemplate.d.ts +1 -0
  107. package/dist/bundle-assets/IconPensilJSXTemplate.js +5 -0
  108. package/dist/bundle-assets/IconPensilJSXTemplate.js.map +1 -0
  109. package/dist/bundle-assets/IconPensilLitTemplate.d.ts +1 -0
  110. package/dist/bundle-assets/IconPensilLitTemplate.js +11 -0
  111. package/dist/bundle-assets/IconPensilLitTemplate.js.map +1 -0
  112. package/dist/bundle.common.bootstrap.d.ts +1 -0
  113. package/dist/bundle.common.bootstrap.js +2 -0
  114. package/dist/bundle.common.bootstrap.js.map +1 -1
  115. package/dist/bundle.esm.d.ts +1 -0
  116. package/dist/bundle.esm.js +18 -1
  117. package/dist/bundle.esm.js.map +1 -1
  118. package/dist/colorpicker-utils/ColorValue.d.ts +3 -0
  119. package/dist/colorpicker-utils/ColorValue.js +36 -12
  120. package/dist/colorpicker-utils/ColorValue.js.map +1 -1
  121. package/dist/css/themes/Avatar.css +1 -1
  122. package/dist/css/themes/AvatarGroup.css +1 -1
  123. package/dist/css/themes/Bar.css +1 -1
  124. package/dist/css/themes/Breadcrumbs.css +1 -1
  125. package/dist/css/themes/BusyIndicator.css +1 -1
  126. package/dist/css/themes/Button.css +1 -1
  127. package/dist/css/themes/ButtonBadge.css +1 -1
  128. package/dist/css/themes/Calendar.css +1 -1
  129. package/dist/css/themes/CalendarHeader.css +1 -1
  130. package/dist/css/themes/CalendarLegend.css +1 -1
  131. package/dist/css/themes/CalendarLegendItem.css +1 -1
  132. package/dist/css/themes/Card.css +1 -1
  133. package/dist/css/themes/CardHeader.css +1 -1
  134. package/dist/css/themes/Carousel.css +1 -1
  135. package/dist/css/themes/CheckBox.css +1 -1
  136. package/dist/css/themes/ColorPalette.css +1 -1
  137. package/dist/css/themes/ColorPaletteItem.css +1 -1
  138. package/dist/css/themes/ColorPalettePopover.css +1 -1
  139. package/dist/css/themes/ColorPicker.css +1 -1
  140. package/dist/css/themes/ComboBox.css +1 -1
  141. package/dist/css/themes/ComboBoxItem.css +1 -1
  142. package/dist/css/themes/DatePicker.css +1 -1
  143. package/dist/css/themes/DateTimePickerPopover.css +1 -1
  144. package/dist/css/themes/DayPicker.css +1 -1
  145. package/dist/css/themes/Dialog.css +1 -1
  146. package/dist/css/themes/DynamicDateRange.css +1 -1
  147. package/dist/css/themes/DynamicDateRangePopover.css +1 -1
  148. package/dist/css/themes/FileUploader.css +1 -1
  149. package/dist/css/themes/Form.css +1 -1
  150. package/dist/css/themes/FormItem.css +1 -1
  151. package/dist/css/themes/FormItemSpan.css +1 -1
  152. package/dist/css/themes/GrowingButton.css +1 -1
  153. package/dist/css/themes/Icon.css +1 -1
  154. package/dist/css/themes/Input.css +1 -1
  155. package/dist/css/themes/InputIcon.css +1 -1
  156. package/dist/css/themes/InputSharedStyles.css +1 -1
  157. package/dist/css/themes/Link.css +1 -1
  158. package/dist/css/themes/List.css +1 -1
  159. package/dist/css/themes/ListItem.css +1 -1
  160. package/dist/css/themes/ListItemBase.css +1 -1
  161. package/dist/css/themes/ListItemCustom.css +1 -1
  162. package/dist/css/themes/ListItemGroup.css +1 -1
  163. package/dist/css/themes/ListItemGroupHeader.css +1 -1
  164. package/dist/css/themes/ListItemIcon.css +1 -1
  165. package/dist/css/themes/Menu.css +1 -1
  166. package/dist/css/themes/MenuItem.css +1 -1
  167. package/dist/css/themes/MessageStrip.css +1 -1
  168. package/dist/css/themes/MonthPicker.css +1 -1
  169. package/dist/css/themes/MultiComboBox.css +1 -1
  170. package/dist/css/themes/MultiComboBoxItem.css +1 -1
  171. package/dist/css/themes/MultiComboBoxPopover.css +1 -1
  172. package/dist/css/themes/MultiInput.css +1 -1
  173. package/dist/css/themes/OptionBase.css +1 -1
  174. package/dist/css/themes/Panel.css +1 -1
  175. package/dist/css/themes/Popover.css +1 -1
  176. package/dist/css/themes/PopupsCommon.css +1 -1
  177. package/dist/css/themes/ProgressIndicator.css +1 -1
  178. package/dist/css/themes/RadioButton.css +1 -1
  179. package/dist/css/themes/RangeSlider.css +1 -1
  180. package/dist/css/themes/RatingIndicator.css +1 -1
  181. package/dist/css/themes/ResponsivePopover.css +1 -1
  182. package/dist/css/themes/ResponsivePopoverCommon.css +1 -1
  183. package/dist/css/themes/SegmentedButton.css +1 -1
  184. package/dist/css/themes/SegmentedButtonItem.css +1 -1
  185. package/dist/css/themes/Select.css +1 -1
  186. package/dist/css/themes/SliderBase.css +1 -1
  187. package/dist/css/themes/SplitButton.css +1 -1
  188. package/dist/css/themes/StepInput.css +1 -1
  189. package/dist/css/themes/SuggestionItem.css +1 -1
  190. package/dist/css/themes/SuggestionItemCustom.css +1 -1
  191. package/dist/css/themes/Switch.css +1 -1
  192. package/dist/css/themes/TabContainer.css +1 -1
  193. package/dist/css/themes/TabInOverflow.css +1 -1
  194. package/dist/css/themes/TabInStrip.css +1 -1
  195. package/dist/css/themes/TabSemanticIcon.css +1 -1
  196. package/dist/css/themes/TabSeparatorInOverflow.css +1 -1
  197. package/dist/css/themes/TableCellBase.css +1 -1
  198. package/dist/css/themes/TableHeaderRow.css +1 -1
  199. package/dist/css/themes/TableRow.css +1 -1
  200. package/dist/css/themes/TableRowActionBase.css +1 -1
  201. package/dist/css/themes/TableRowBase.css +1 -1
  202. package/dist/css/themes/Tag.css +1 -1
  203. package/dist/css/themes/Text.css +1 -1
  204. package/dist/css/themes/TextArea.css +1 -1
  205. package/dist/css/themes/TimePicker.css +1 -1
  206. package/dist/css/themes/Toast.css +1 -1
  207. package/dist/css/themes/ToggleButton.css +1 -1
  208. package/dist/css/themes/Token.css +1 -1
  209. package/dist/css/themes/Tokenizer.css +1 -1
  210. package/dist/css/themes/TokenizerPopover.css +1 -1
  211. package/dist/css/themes/Toolbar.css +1 -1
  212. package/dist/css/themes/ToolbarButton.css +1 -1
  213. package/dist/css/themes/ToolbarPopover.css +1 -1
  214. package/dist/css/themes/ToolbarSeparator.css +1 -1
  215. package/dist/css/themes/TreeItem.css +1 -1
  216. package/dist/css/themes/ValueStateMessage.css +1 -1
  217. package/dist/css/themes/ValueStateVariables.css +1 -1
  218. package/dist/css/themes/YearPicker.css +1 -1
  219. package/dist/css/themes/YearRangePicker.css +1 -1
  220. package/dist/css/themes/sap_fiori_3/parameters-bundle.css +1 -1
  221. package/dist/css/themes/sap_fiori_3_dark/parameters-bundle.css +1 -1
  222. package/dist/css/themes/sap_fiori_3_hcb/parameters-bundle.css +1 -1
  223. package/dist/css/themes/sap_fiori_3_hcw/parameters-bundle.css +1 -1
  224. package/dist/css/themes/sap_horizon/parameters-bundle.css +1 -1
  225. package/dist/css/themes/sap_horizon_dark/parameters-bundle.css +1 -1
  226. package/dist/css/themes/sap_horizon_hcb/parameters-bundle.css +1 -1
  227. package/dist/css/themes/sap_horizon_hcw/parameters-bundle.css +1 -1
  228. package/dist/custom-elements-internal.json +278 -8
  229. package/dist/custom-elements.json +269 -8
  230. package/dist/features/ListItemStandardExpandableText.js +2 -0
  231. package/dist/features/ListItemStandardExpandableText.js.map +1 -1
  232. package/dist/features/ListItemStandardExpandableTextTemplate.d.ts +2 -2
  233. package/dist/features/ListItemStandardExpandableTextTemplate.js.map +1 -1
  234. package/dist/generated/assets/i18n/messagebundle_ar.json +1 -1
  235. package/dist/generated/assets/i18n/messagebundle_bg.json +1 -1
  236. package/dist/generated/assets/i18n/messagebundle_ca.json +1 -1
  237. package/dist/generated/assets/i18n/messagebundle_cnr.json +1 -1
  238. package/dist/generated/assets/i18n/messagebundle_cs.json +1 -1
  239. package/dist/generated/assets/i18n/messagebundle_cy.json +1 -1
  240. package/dist/generated/assets/i18n/messagebundle_da.json +1 -1
  241. package/dist/generated/assets/i18n/messagebundle_de.json +1 -1
  242. package/dist/generated/assets/i18n/messagebundle_el.json +1 -1
  243. package/dist/generated/assets/i18n/messagebundle_en.json +1 -1
  244. package/dist/generated/assets/i18n/messagebundle_en_GB.json +1 -1
  245. package/dist/generated/assets/i18n/messagebundle_en_US_sappsd.json +1 -1
  246. package/dist/generated/assets/i18n/messagebundle_en_US_saprigi.json +1 -1
  247. package/dist/generated/assets/i18n/messagebundle_en_US_saptrc.json +1 -1
  248. package/dist/generated/assets/i18n/messagebundle_es.json +1 -1
  249. package/dist/generated/assets/i18n/messagebundle_es_MX.json +1 -1
  250. package/dist/generated/assets/i18n/messagebundle_et.json +1 -1
  251. package/dist/generated/assets/i18n/messagebundle_fi.json +1 -1
  252. package/dist/generated/assets/i18n/messagebundle_fr.json +1 -1
  253. package/dist/generated/assets/i18n/messagebundle_fr_CA.json +1 -1
  254. package/dist/generated/assets/i18n/messagebundle_hi.json +1 -1
  255. package/dist/generated/assets/i18n/messagebundle_hr.json +1 -1
  256. package/dist/generated/assets/i18n/messagebundle_hu.json +1 -1
  257. package/dist/generated/assets/i18n/messagebundle_id.json +1 -1
  258. package/dist/generated/assets/i18n/messagebundle_it.json +1 -1
  259. package/dist/generated/assets/i18n/messagebundle_iw.json +1 -1
  260. package/dist/generated/assets/i18n/messagebundle_ja.json +1 -1
  261. package/dist/generated/assets/i18n/messagebundle_kk.json +1 -1
  262. package/dist/generated/assets/i18n/messagebundle_ko.json +1 -1
  263. package/dist/generated/assets/i18n/messagebundle_lt.json +1 -1
  264. package/dist/generated/assets/i18n/messagebundle_lv.json +1 -1
  265. package/dist/generated/assets/i18n/messagebundle_mk.json +1 -1
  266. package/dist/generated/assets/i18n/messagebundle_ms.json +1 -1
  267. package/dist/generated/assets/i18n/messagebundle_nl.json +1 -1
  268. package/dist/generated/assets/i18n/messagebundle_no.json +1 -1
  269. package/dist/generated/assets/i18n/messagebundle_pl.json +1 -1
  270. package/dist/generated/assets/i18n/messagebundle_pt.json +1 -1
  271. package/dist/generated/assets/i18n/messagebundle_pt_PT.json +1 -1
  272. package/dist/generated/assets/i18n/messagebundle_ro.json +1 -1
  273. package/dist/generated/assets/i18n/messagebundle_ru.json +1 -1
  274. package/dist/generated/assets/i18n/messagebundle_sh.json +1 -1
  275. package/dist/generated/assets/i18n/messagebundle_sk.json +1 -1
  276. package/dist/generated/assets/i18n/messagebundle_sl.json +1 -1
  277. package/dist/generated/assets/i18n/messagebundle_sr.json +1 -1
  278. package/dist/generated/assets/i18n/messagebundle_sv.json +1 -1
  279. package/dist/generated/assets/i18n/messagebundle_th.json +1 -1
  280. package/dist/generated/assets/i18n/messagebundle_tr.json +1 -1
  281. package/dist/generated/assets/i18n/messagebundle_uk.json +1 -1
  282. package/dist/generated/assets/i18n/messagebundle_vi.json +1 -1
  283. package/dist/generated/assets/i18n/messagebundle_zh_CN.json +1 -1
  284. package/dist/generated/assets/i18n/messagebundle_zh_TW.json +1 -1
  285. package/dist/generated/assets/themes/sap_fiori_3/parameters-bundle.css.json +1 -1
  286. package/dist/generated/assets/themes/sap_fiori_3_dark/parameters-bundle.css.json +1 -1
  287. package/dist/generated/assets/themes/sap_fiori_3_hcb/parameters-bundle.css.json +1 -1
  288. package/dist/generated/assets/themes/sap_fiori_3_hcw/parameters-bundle.css.json +1 -1
  289. package/dist/generated/assets/themes/sap_horizon/parameters-bundle.css.json +1 -1
  290. package/dist/generated/assets/themes/sap_horizon_dark/parameters-bundle.css.json +1 -1
  291. package/dist/generated/assets/themes/sap_horizon_hcb/parameters-bundle.css.json +1 -1
  292. package/dist/generated/assets/themes/sap_horizon_hcw/parameters-bundle.css.json +1 -1
  293. package/dist/generated/i18n/i18n-defaults.d.ts +8 -1
  294. package/dist/generated/i18n/i18n-defaults.js +8 -1
  295. package/dist/generated/i18n/i18n-defaults.js.map +1 -1
  296. package/dist/generated/themes/Avatar.css.d.ts +1 -1
  297. package/dist/generated/themes/Avatar.css.js +1 -1
  298. package/dist/generated/themes/Avatar.css.js.map +1 -1
  299. package/dist/generated/themes/AvatarGroup.css.d.ts +1 -1
  300. package/dist/generated/themes/AvatarGroup.css.js +1 -1
  301. package/dist/generated/themes/AvatarGroup.css.js.map +1 -1
  302. package/dist/generated/themes/Bar.css.d.ts +1 -1
  303. package/dist/generated/themes/Bar.css.js +1 -1
  304. package/dist/generated/themes/Bar.css.js.map +1 -1
  305. package/dist/generated/themes/Breadcrumbs.css.d.ts +1 -1
  306. package/dist/generated/themes/Breadcrumbs.css.js +1 -1
  307. package/dist/generated/themes/Breadcrumbs.css.js.map +1 -1
  308. package/dist/generated/themes/BusyIndicator.css.d.ts +1 -1
  309. package/dist/generated/themes/BusyIndicator.css.js +1 -1
  310. package/dist/generated/themes/BusyIndicator.css.js.map +1 -1
  311. package/dist/generated/themes/Button.css.d.ts +1 -1
  312. package/dist/generated/themes/Button.css.js +1 -1
  313. package/dist/generated/themes/Button.css.js.map +1 -1
  314. package/dist/generated/themes/ButtonBadge.css.d.ts +1 -1
  315. package/dist/generated/themes/ButtonBadge.css.js +1 -1
  316. package/dist/generated/themes/ButtonBadge.css.js.map +1 -1
  317. package/dist/generated/themes/Calendar.css.d.ts +1 -1
  318. package/dist/generated/themes/Calendar.css.js +1 -1
  319. package/dist/generated/themes/Calendar.css.js.map +1 -1
  320. package/dist/generated/themes/CalendarHeader.css.d.ts +1 -1
  321. package/dist/generated/themes/CalendarHeader.css.js +1 -1
  322. package/dist/generated/themes/CalendarHeader.css.js.map +1 -1
  323. package/dist/generated/themes/CalendarLegend.css.d.ts +1 -1
  324. package/dist/generated/themes/CalendarLegend.css.js +1 -1
  325. package/dist/generated/themes/CalendarLegend.css.js.map +1 -1
  326. package/dist/generated/themes/CalendarLegendItem.css.d.ts +1 -1
  327. package/dist/generated/themes/CalendarLegendItem.css.js +1 -1
  328. package/dist/generated/themes/CalendarLegendItem.css.js.map +1 -1
  329. package/dist/generated/themes/Card.css.d.ts +1 -1
  330. package/dist/generated/themes/Card.css.js +1 -1
  331. package/dist/generated/themes/Card.css.js.map +1 -1
  332. package/dist/generated/themes/CardHeader.css.d.ts +1 -1
  333. package/dist/generated/themes/CardHeader.css.js +1 -1
  334. package/dist/generated/themes/CardHeader.css.js.map +1 -1
  335. package/dist/generated/themes/Carousel.css.d.ts +1 -1
  336. package/dist/generated/themes/Carousel.css.js +1 -1
  337. package/dist/generated/themes/Carousel.css.js.map +1 -1
  338. package/dist/generated/themes/CheckBox.css.d.ts +1 -1
  339. package/dist/generated/themes/CheckBox.css.js +1 -1
  340. package/dist/generated/themes/CheckBox.css.js.map +1 -1
  341. package/dist/generated/themes/ColorPalette.css.d.ts +1 -1
  342. package/dist/generated/themes/ColorPalette.css.js +1 -1
  343. package/dist/generated/themes/ColorPalette.css.js.map +1 -1
  344. package/dist/generated/themes/ColorPaletteItem.css.d.ts +1 -1
  345. package/dist/generated/themes/ColorPaletteItem.css.js +1 -1
  346. package/dist/generated/themes/ColorPaletteItem.css.js.map +1 -1
  347. package/dist/generated/themes/ColorPalettePopover.css.d.ts +1 -1
  348. package/dist/generated/themes/ColorPalettePopover.css.js +1 -1
  349. package/dist/generated/themes/ColorPalettePopover.css.js.map +1 -1
  350. package/dist/generated/themes/ColorPicker.css.d.ts +1 -1
  351. package/dist/generated/themes/ColorPicker.css.js +1 -1
  352. package/dist/generated/themes/ColorPicker.css.js.map +1 -1
  353. package/dist/generated/themes/ComboBox.css.d.ts +1 -1
  354. package/dist/generated/themes/ComboBox.css.js +1 -1
  355. package/dist/generated/themes/ComboBox.css.js.map +1 -1
  356. package/dist/generated/themes/ComboBoxItem.css.d.ts +1 -1
  357. package/dist/generated/themes/ComboBoxItem.css.js +1 -1
  358. package/dist/generated/themes/ComboBoxItem.css.js.map +1 -1
  359. package/dist/generated/themes/DatePicker.css.d.ts +1 -1
  360. package/dist/generated/themes/DatePicker.css.js +1 -1
  361. package/dist/generated/themes/DatePicker.css.js.map +1 -1
  362. package/dist/generated/themes/DateTimePickerPopover.css.d.ts +1 -1
  363. package/dist/generated/themes/DateTimePickerPopover.css.js +1 -1
  364. package/dist/generated/themes/DateTimePickerPopover.css.js.map +1 -1
  365. package/dist/generated/themes/DayPicker.css.d.ts +1 -1
  366. package/dist/generated/themes/DayPicker.css.js +1 -1
  367. package/dist/generated/themes/DayPicker.css.js.map +1 -1
  368. package/dist/generated/themes/Dialog.css.d.ts +1 -1
  369. package/dist/generated/themes/Dialog.css.js +1 -1
  370. package/dist/generated/themes/Dialog.css.js.map +1 -1
  371. package/dist/generated/themes/DynamicDateRange.css.d.ts +1 -1
  372. package/dist/generated/themes/DynamicDateRange.css.js +1 -1
  373. package/dist/generated/themes/DynamicDateRange.css.js.map +1 -1
  374. package/dist/generated/themes/DynamicDateRangePopover.css.d.ts +1 -1
  375. package/dist/generated/themes/DynamicDateRangePopover.css.js +1 -1
  376. package/dist/generated/themes/DynamicDateRangePopover.css.js.map +1 -1
  377. package/dist/generated/themes/FileUploader.css.d.ts +1 -1
  378. package/dist/generated/themes/FileUploader.css.js +1 -1
  379. package/dist/generated/themes/FileUploader.css.js.map +1 -1
  380. package/dist/generated/themes/Form.css.d.ts +1 -1
  381. package/dist/generated/themes/Form.css.js +1 -1
  382. package/dist/generated/themes/Form.css.js.map +1 -1
  383. package/dist/generated/themes/FormItem.css.d.ts +1 -1
  384. package/dist/generated/themes/FormItem.css.js +1 -1
  385. package/dist/generated/themes/FormItem.css.js.map +1 -1
  386. package/dist/generated/themes/FormItemSpan.css.d.ts +1 -1
  387. package/dist/generated/themes/FormItemSpan.css.js +1 -1
  388. package/dist/generated/themes/FormItemSpan.css.js.map +1 -1
  389. package/dist/generated/themes/GrowingButton.css.d.ts +1 -1
  390. package/dist/generated/themes/GrowingButton.css.js +1 -1
  391. package/dist/generated/themes/GrowingButton.css.js.map +1 -1
  392. package/dist/generated/themes/Icon.css.d.ts +1 -1
  393. package/dist/generated/themes/Icon.css.js +1 -1
  394. package/dist/generated/themes/Icon.css.js.map +1 -1
  395. package/dist/generated/themes/Input.css.d.ts +1 -1
  396. package/dist/generated/themes/Input.css.js +1 -1
  397. package/dist/generated/themes/Input.css.js.map +1 -1
  398. package/dist/generated/themes/InputIcon.css.d.ts +1 -1
  399. package/dist/generated/themes/InputIcon.css.js +1 -1
  400. package/dist/generated/themes/InputIcon.css.js.map +1 -1
  401. package/dist/generated/themes/InputSharedStyles.css.d.ts +1 -1
  402. package/dist/generated/themes/InputSharedStyles.css.js +1 -1
  403. package/dist/generated/themes/InputSharedStyles.css.js.map +1 -1
  404. package/dist/generated/themes/Link.css.d.ts +1 -1
  405. package/dist/generated/themes/Link.css.js +1 -1
  406. package/dist/generated/themes/Link.css.js.map +1 -1
  407. package/dist/generated/themes/List.css.d.ts +1 -1
  408. package/dist/generated/themes/List.css.js +1 -1
  409. package/dist/generated/themes/List.css.js.map +1 -1
  410. package/dist/generated/themes/ListItem.css.d.ts +1 -1
  411. package/dist/generated/themes/ListItem.css.js +1 -1
  412. package/dist/generated/themes/ListItem.css.js.map +1 -1
  413. package/dist/generated/themes/ListItemBase.css.d.ts +1 -1
  414. package/dist/generated/themes/ListItemBase.css.js +1 -1
  415. package/dist/generated/themes/ListItemBase.css.js.map +1 -1
  416. package/dist/generated/themes/ListItemCustom.css.d.ts +1 -1
  417. package/dist/generated/themes/ListItemCustom.css.js +1 -1
  418. package/dist/generated/themes/ListItemCustom.css.js.map +1 -1
  419. package/dist/generated/themes/ListItemGroup.css.d.ts +1 -1
  420. package/dist/generated/themes/ListItemGroup.css.js +1 -1
  421. package/dist/generated/themes/ListItemGroup.css.js.map +1 -1
  422. package/dist/generated/themes/ListItemGroupHeader.css.d.ts +1 -1
  423. package/dist/generated/themes/ListItemGroupHeader.css.js +1 -1
  424. package/dist/generated/themes/ListItemGroupHeader.css.js.map +1 -1
  425. package/dist/generated/themes/ListItemIcon.css.d.ts +1 -1
  426. package/dist/generated/themes/ListItemIcon.css.js +1 -1
  427. package/dist/generated/themes/ListItemIcon.css.js.map +1 -1
  428. package/dist/generated/themes/Menu.css.d.ts +1 -1
  429. package/dist/generated/themes/Menu.css.js +1 -1
  430. package/dist/generated/themes/Menu.css.js.map +1 -1
  431. package/dist/generated/themes/MenuItem.css.d.ts +1 -1
  432. package/dist/generated/themes/MenuItem.css.js +1 -1
  433. package/dist/generated/themes/MenuItem.css.js.map +1 -1
  434. package/dist/generated/themes/MessageStrip.css.d.ts +1 -1
  435. package/dist/generated/themes/MessageStrip.css.js +1 -1
  436. package/dist/generated/themes/MessageStrip.css.js.map +1 -1
  437. package/dist/generated/themes/MonthPicker.css.d.ts +1 -1
  438. package/dist/generated/themes/MonthPicker.css.js +1 -1
  439. package/dist/generated/themes/MonthPicker.css.js.map +1 -1
  440. package/dist/generated/themes/MultiComboBox.css.d.ts +1 -1
  441. package/dist/generated/themes/MultiComboBox.css.js +1 -1
  442. package/dist/generated/themes/MultiComboBox.css.js.map +1 -1
  443. package/dist/generated/themes/MultiComboBoxItem.css.d.ts +1 -1
  444. package/dist/generated/themes/MultiComboBoxItem.css.js +1 -1
  445. package/dist/generated/themes/MultiComboBoxItem.css.js.map +1 -1
  446. package/dist/generated/themes/MultiComboBoxPopover.css.d.ts +1 -1
  447. package/dist/generated/themes/MultiComboBoxPopover.css.js +1 -1
  448. package/dist/generated/themes/MultiComboBoxPopover.css.js.map +1 -1
  449. package/dist/generated/themes/MultiInput.css.d.ts +1 -1
  450. package/dist/generated/themes/MultiInput.css.js +1 -1
  451. package/dist/generated/themes/MultiInput.css.js.map +1 -1
  452. package/dist/generated/themes/OptionBase.css.d.ts +1 -1
  453. package/dist/generated/themes/OptionBase.css.js +1 -1
  454. package/dist/generated/themes/OptionBase.css.js.map +1 -1
  455. package/dist/generated/themes/Panel.css.d.ts +1 -1
  456. package/dist/generated/themes/Panel.css.js +1 -1
  457. package/dist/generated/themes/Panel.css.js.map +1 -1
  458. package/dist/generated/themes/Popover.css.d.ts +1 -1
  459. package/dist/generated/themes/Popover.css.js +1 -1
  460. package/dist/generated/themes/Popover.css.js.map +1 -1
  461. package/dist/generated/themes/PopupsCommon.css.d.ts +1 -1
  462. package/dist/generated/themes/PopupsCommon.css.js +1 -1
  463. package/dist/generated/themes/PopupsCommon.css.js.map +1 -1
  464. package/dist/generated/themes/ProgressIndicator.css.d.ts +1 -1
  465. package/dist/generated/themes/ProgressIndicator.css.js +1 -1
  466. package/dist/generated/themes/ProgressIndicator.css.js.map +1 -1
  467. package/dist/generated/themes/RadioButton.css.d.ts +1 -1
  468. package/dist/generated/themes/RadioButton.css.js +1 -1
  469. package/dist/generated/themes/RadioButton.css.js.map +1 -1
  470. package/dist/generated/themes/RangeSlider.css.d.ts +1 -1
  471. package/dist/generated/themes/RangeSlider.css.js +1 -1
  472. package/dist/generated/themes/RangeSlider.css.js.map +1 -1
  473. package/dist/generated/themes/RatingIndicator.css.d.ts +1 -1
  474. package/dist/generated/themes/RatingIndicator.css.js +1 -1
  475. package/dist/generated/themes/RatingIndicator.css.js.map +1 -1
  476. package/dist/generated/themes/ResponsivePopover.css.d.ts +1 -1
  477. package/dist/generated/themes/ResponsivePopover.css.js +1 -1
  478. package/dist/generated/themes/ResponsivePopover.css.js.map +1 -1
  479. package/dist/generated/themes/ResponsivePopoverCommon.css.d.ts +1 -1
  480. package/dist/generated/themes/ResponsivePopoverCommon.css.js +1 -1
  481. package/dist/generated/themes/ResponsivePopoverCommon.css.js.map +1 -1
  482. package/dist/generated/themes/SegmentedButton.css.d.ts +1 -1
  483. package/dist/generated/themes/SegmentedButton.css.js +1 -1
  484. package/dist/generated/themes/SegmentedButton.css.js.map +1 -1
  485. package/dist/generated/themes/SegmentedButtonItem.css.d.ts +1 -1
  486. package/dist/generated/themes/SegmentedButtonItem.css.js +1 -1
  487. package/dist/generated/themes/SegmentedButtonItem.css.js.map +1 -1
  488. package/dist/generated/themes/Select.css.d.ts +1 -1
  489. package/dist/generated/themes/Select.css.js +1 -1
  490. package/dist/generated/themes/Select.css.js.map +1 -1
  491. package/dist/generated/themes/SliderBase.css.d.ts +1 -1
  492. package/dist/generated/themes/SliderBase.css.js +1 -1
  493. package/dist/generated/themes/SliderBase.css.js.map +1 -1
  494. package/dist/generated/themes/SplitButton.css.d.ts +1 -1
  495. package/dist/generated/themes/SplitButton.css.js +1 -1
  496. package/dist/generated/themes/SplitButton.css.js.map +1 -1
  497. package/dist/generated/themes/StepInput.css.d.ts +1 -1
  498. package/dist/generated/themes/StepInput.css.js +1 -1
  499. package/dist/generated/themes/StepInput.css.js.map +1 -1
  500. package/dist/generated/themes/SuggestionItem.css.d.ts +1 -1
  501. package/dist/generated/themes/SuggestionItem.css.js +1 -1
  502. package/dist/generated/themes/SuggestionItem.css.js.map +1 -1
  503. package/dist/generated/themes/SuggestionItemCustom.css.d.ts +1 -1
  504. package/dist/generated/themes/SuggestionItemCustom.css.js +1 -1
  505. package/dist/generated/themes/SuggestionItemCustom.css.js.map +1 -1
  506. package/dist/generated/themes/Switch.css.d.ts +1 -1
  507. package/dist/generated/themes/Switch.css.js +1 -1
  508. package/dist/generated/themes/Switch.css.js.map +1 -1
  509. package/dist/generated/themes/TabContainer.css.d.ts +1 -1
  510. package/dist/generated/themes/TabContainer.css.js +1 -1
  511. package/dist/generated/themes/TabContainer.css.js.map +1 -1
  512. package/dist/generated/themes/TabInOverflow.css.d.ts +1 -1
  513. package/dist/generated/themes/TabInOverflow.css.js +1 -1
  514. package/dist/generated/themes/TabInOverflow.css.js.map +1 -1
  515. package/dist/generated/themes/TabInStrip.css.d.ts +1 -1
  516. package/dist/generated/themes/TabInStrip.css.js +1 -1
  517. package/dist/generated/themes/TabInStrip.css.js.map +1 -1
  518. package/dist/generated/themes/TabSemanticIcon.css.d.ts +1 -1
  519. package/dist/generated/themes/TabSemanticIcon.css.js +1 -1
  520. package/dist/generated/themes/TabSemanticIcon.css.js.map +1 -1
  521. package/dist/generated/themes/TabSeparatorInOverflow.css.d.ts +1 -1
  522. package/dist/generated/themes/TabSeparatorInOverflow.css.js +1 -1
  523. package/dist/generated/themes/TabSeparatorInOverflow.css.js.map +1 -1
  524. package/dist/generated/themes/TableCellBase.css.d.ts +1 -1
  525. package/dist/generated/themes/TableCellBase.css.js +1 -1
  526. package/dist/generated/themes/TableCellBase.css.js.map +1 -1
  527. package/dist/generated/themes/TableHeaderRow.css.d.ts +1 -1
  528. package/dist/generated/themes/TableHeaderRow.css.js +1 -1
  529. package/dist/generated/themes/TableHeaderRow.css.js.map +1 -1
  530. package/dist/generated/themes/TableRow.css.d.ts +1 -1
  531. package/dist/generated/themes/TableRow.css.js +1 -1
  532. package/dist/generated/themes/TableRow.css.js.map +1 -1
  533. package/dist/generated/themes/TableRowActionBase.css.d.ts +1 -1
  534. package/dist/generated/themes/TableRowActionBase.css.js +1 -1
  535. package/dist/generated/themes/TableRowActionBase.css.js.map +1 -1
  536. package/dist/generated/themes/TableRowBase.css.d.ts +1 -1
  537. package/dist/generated/themes/TableRowBase.css.js +1 -1
  538. package/dist/generated/themes/TableRowBase.css.js.map +1 -1
  539. package/dist/generated/themes/Tag.css.d.ts +1 -1
  540. package/dist/generated/themes/Tag.css.js +1 -1
  541. package/dist/generated/themes/Tag.css.js.map +1 -1
  542. package/dist/generated/themes/Text.css.d.ts +1 -1
  543. package/dist/generated/themes/Text.css.js +1 -1
  544. package/dist/generated/themes/Text.css.js.map +1 -1
  545. package/dist/generated/themes/TextArea.css.d.ts +1 -1
  546. package/dist/generated/themes/TextArea.css.js +1 -1
  547. package/dist/generated/themes/TextArea.css.js.map +1 -1
  548. package/dist/generated/themes/TimePicker.css.d.ts +1 -1
  549. package/dist/generated/themes/TimePicker.css.js +1 -1
  550. package/dist/generated/themes/TimePicker.css.js.map +1 -1
  551. package/dist/generated/themes/Toast.css.d.ts +1 -1
  552. package/dist/generated/themes/Toast.css.js +1 -1
  553. package/dist/generated/themes/Toast.css.js.map +1 -1
  554. package/dist/generated/themes/ToggleButton.css.d.ts +1 -1
  555. package/dist/generated/themes/ToggleButton.css.js +1 -1
  556. package/dist/generated/themes/ToggleButton.css.js.map +1 -1
  557. package/dist/generated/themes/Token.css.d.ts +1 -1
  558. package/dist/generated/themes/Token.css.js +1 -1
  559. package/dist/generated/themes/Token.css.js.map +1 -1
  560. package/dist/generated/themes/Tokenizer.css.d.ts +1 -1
  561. package/dist/generated/themes/Tokenizer.css.js +1 -1
  562. package/dist/generated/themes/Tokenizer.css.js.map +1 -1
  563. package/dist/generated/themes/TokenizerPopover.css.d.ts +1 -1
  564. package/dist/generated/themes/TokenizerPopover.css.js +1 -1
  565. package/dist/generated/themes/TokenizerPopover.css.js.map +1 -1
  566. package/dist/generated/themes/Toolbar.css.d.ts +1 -1
  567. package/dist/generated/themes/Toolbar.css.js +1 -1
  568. package/dist/generated/themes/Toolbar.css.js.map +1 -1
  569. package/dist/generated/themes/ToolbarButton.css.d.ts +1 -1
  570. package/dist/generated/themes/ToolbarButton.css.js +1 -1
  571. package/dist/generated/themes/ToolbarButton.css.js.map +1 -1
  572. package/dist/generated/themes/ToolbarPopover.css.d.ts +1 -1
  573. package/dist/generated/themes/ToolbarPopover.css.js +1 -1
  574. package/dist/generated/themes/ToolbarPopover.css.js.map +1 -1
  575. package/dist/generated/themes/ToolbarSeparator.css.d.ts +1 -1
  576. package/dist/generated/themes/ToolbarSeparator.css.js +1 -1
  577. package/dist/generated/themes/ToolbarSeparator.css.js.map +1 -1
  578. package/dist/generated/themes/TreeItem.css.d.ts +1 -1
  579. package/dist/generated/themes/TreeItem.css.js +1 -1
  580. package/dist/generated/themes/TreeItem.css.js.map +1 -1
  581. package/dist/generated/themes/ValueStateMessage.css.d.ts +1 -1
  582. package/dist/generated/themes/ValueStateMessage.css.js +1 -1
  583. package/dist/generated/themes/ValueStateMessage.css.js.map +1 -1
  584. package/dist/generated/themes/ValueStateVariables.css.d.ts +1 -1
  585. package/dist/generated/themes/ValueStateVariables.css.js +1 -1
  586. package/dist/generated/themes/ValueStateVariables.css.js.map +1 -1
  587. package/dist/generated/themes/YearPicker.css.d.ts +1 -1
  588. package/dist/generated/themes/YearPicker.css.js +1 -1
  589. package/dist/generated/themes/YearPicker.css.js.map +1 -1
  590. package/dist/generated/themes/YearRangePicker.css.d.ts +1 -1
  591. package/dist/generated/themes/YearRangePicker.css.js +1 -1
  592. package/dist/generated/themes/YearRangePicker.css.js.map +1 -1
  593. package/dist/generated/themes/sap_fiori_3/parameters-bundle.css.d.ts +1 -1
  594. package/dist/generated/themes/sap_fiori_3/parameters-bundle.css.js +1 -1
  595. package/dist/generated/themes/sap_fiori_3/parameters-bundle.css.js.map +1 -1
  596. package/dist/generated/themes/sap_fiori_3_dark/parameters-bundle.css.d.ts +1 -1
  597. package/dist/generated/themes/sap_fiori_3_dark/parameters-bundle.css.js +1 -1
  598. package/dist/generated/themes/sap_fiori_3_dark/parameters-bundle.css.js.map +1 -1
  599. package/dist/generated/themes/sap_fiori_3_hcb/parameters-bundle.css.d.ts +1 -1
  600. package/dist/generated/themes/sap_fiori_3_hcb/parameters-bundle.css.js +1 -1
  601. package/dist/generated/themes/sap_fiori_3_hcb/parameters-bundle.css.js.map +1 -1
  602. package/dist/generated/themes/sap_fiori_3_hcw/parameters-bundle.css.d.ts +1 -1
  603. package/dist/generated/themes/sap_fiori_3_hcw/parameters-bundle.css.js +1 -1
  604. package/dist/generated/themes/sap_fiori_3_hcw/parameters-bundle.css.js.map +1 -1
  605. package/dist/generated/themes/sap_horizon/parameters-bundle.css.d.ts +1 -1
  606. package/dist/generated/themes/sap_horizon/parameters-bundle.css.js +1 -1
  607. package/dist/generated/themes/sap_horizon/parameters-bundle.css.js.map +1 -1
  608. package/dist/generated/themes/sap_horizon_dark/parameters-bundle.css.d.ts +1 -1
  609. package/dist/generated/themes/sap_horizon_dark/parameters-bundle.css.js +1 -1
  610. package/dist/generated/themes/sap_horizon_dark/parameters-bundle.css.js.map +1 -1
  611. package/dist/generated/themes/sap_horizon_hcb/parameters-bundle.css.d.ts +1 -1
  612. package/dist/generated/themes/sap_horizon_hcb/parameters-bundle.css.js +1 -1
  613. package/dist/generated/themes/sap_horizon_hcb/parameters-bundle.css.js.map +1 -1
  614. package/dist/generated/themes/sap_horizon_hcw/parameters-bundle.css.d.ts +1 -1
  615. package/dist/generated/themes/sap_horizon_hcw/parameters-bundle.css.js +1 -1
  616. package/dist/generated/themes/sap_horizon_hcw/parameters-bundle.css.js.map +1 -1
  617. package/dist/vscode.html-custom-data.json +46 -1
  618. package/dist/web-types.json +112 -7
  619. package/package.json +9 -9
  620. package/src/ButtonTemplate.tsx +14 -1
  621. package/src/ComboBoxPopoverTemplate.tsx +1 -1
  622. package/src/IconTemplate.tsx +32 -3
  623. package/src/InputPopoverTemplate.tsx +1 -1
  624. package/src/ListItemGroupHeaderTemplate.tsx +19 -1
  625. package/src/ListItemGroupTemplate.tsx +1 -1
  626. package/src/ListTemplate.tsx +1 -1
  627. package/src/SplitButtonTemplate.tsx +28 -22
  628. package/src/TableHeaderRowTemplate.tsx +8 -4
  629. package/src/TableRowTemplate.tsx +1 -1
  630. package/src/TableTemplate.tsx +3 -1
  631. package/src/bundle-assets/IconPensilJSXTemplate.tsx +10 -0
  632. package/src/features/ListItemStandardExpandableTextTemplate.tsx +2 -2
  633. package/src/i18n/messagebundle.properties +14 -0
  634. package/src/i18n/messagebundle_ar.properties +26 -2
  635. package/src/i18n/messagebundle_bg.properties +26 -2
  636. package/src/i18n/messagebundle_ca.properties +26 -2
  637. package/src/i18n/messagebundle_cnr.properties +26 -2
  638. package/src/i18n/messagebundle_cs.properties +26 -2
  639. package/src/i18n/messagebundle_cy.properties +26 -2
  640. package/src/i18n/messagebundle_da.properties +26 -2
  641. package/src/i18n/messagebundle_de.properties +27 -3
  642. package/src/i18n/messagebundle_el.properties +26 -2
  643. package/src/i18n/messagebundle_en.properties +26 -241
  644. package/src/i18n/messagebundle_en_GB.properties +26 -2
  645. package/src/i18n/messagebundle_en_US_sappsd.properties +8 -0
  646. package/src/i18n/messagebundle_en_US_saprigi.properties +15 -0
  647. package/src/i18n/messagebundle_en_US_saptrc.properties +8 -0
  648. package/src/i18n/messagebundle_es.properties +26 -2
  649. package/src/i18n/messagebundle_es_MX.properties +26 -2
  650. package/src/i18n/messagebundle_et.properties +26 -2
  651. package/src/i18n/messagebundle_fi.properties +26 -2
  652. package/src/i18n/messagebundle_fr.properties +26 -2
  653. package/src/i18n/messagebundle_fr_CA.properties +26 -2
  654. package/src/i18n/messagebundle_hi.properties +26 -2
  655. package/src/i18n/messagebundle_hr.properties +26 -2
  656. package/src/i18n/messagebundle_hu.properties +26 -2
  657. package/src/i18n/messagebundle_id.properties +27 -3
  658. package/src/i18n/messagebundle_it.properties +26 -2
  659. package/src/i18n/messagebundle_iw.properties +26 -2
  660. package/src/i18n/messagebundle_ja.properties +26 -2
  661. package/src/i18n/messagebundle_kk.properties +26 -2
  662. package/src/i18n/messagebundle_ko.properties +26 -2
  663. package/src/i18n/messagebundle_lt.properties +26 -2
  664. package/src/i18n/messagebundle_lv.properties +26 -2
  665. package/src/i18n/messagebundle_mk.properties +26 -2
  666. package/src/i18n/messagebundle_ms.properties +26 -2
  667. package/src/i18n/messagebundle_nl.properties +26 -2
  668. package/src/i18n/messagebundle_no.properties +26 -2
  669. package/src/i18n/messagebundle_pl.properties +26 -2
  670. package/src/i18n/messagebundle_pt.properties +26 -2
  671. package/src/i18n/messagebundle_pt_PT.properties +26 -2
  672. package/src/i18n/messagebundle_ro.properties +26 -2
  673. package/src/i18n/messagebundle_ru.properties +27 -3
  674. package/src/i18n/messagebundle_sh.properties +26 -2
  675. package/src/i18n/messagebundle_sk.properties +26 -2
  676. package/src/i18n/messagebundle_sl.properties +27 -3
  677. package/src/i18n/messagebundle_sr.properties +26 -2
  678. package/src/i18n/messagebundle_sv.properties +26 -2
  679. package/src/i18n/messagebundle_th.properties +26 -2
  680. package/src/i18n/messagebundle_tr.properties +26 -2
  681. package/src/i18n/messagebundle_uk.properties +26 -2
  682. package/src/i18n/messagebundle_vi.properties +26 -2
  683. package/src/i18n/messagebundle_zh_CN.properties +26 -2
  684. package/src/i18n/messagebundle_zh_TW.properties +26 -2
  685. package/src/themes/Button.css +39 -2
  686. package/src/themes/ListItemGroupHeader.css +4 -0
  687. package/src/themes/MultiComboBoxPopover.css +4 -0
  688. package/src/themes/ToolbarButton.css +3 -0
  689. package/src/themes/ValueStateMessage.css +4 -1
  690. package/src/themes/base/ValueStateMessage-parameters.css +4 -0
  691. package/src/themes/sap_horizon/TabContainer-parameters.css +0 -1
  692. package/src/themes/sap_horizon_dark/TabContainer-parameters.css +0 -1
package/dist/TableRow.js CHANGED
@@ -56,10 +56,10 @@ let TableRow = class TableRow extends TableRowBase {
56
56
  }
57
57
  onBeforeRendering() {
58
58
  super.onBeforeRendering();
59
- toggleAttribute(this, "_interactive", this._isInteractive);
60
- toggleAttribute(this, "aria-rowindex", this.position !== undefined, `${this.position + 1}`);
61
59
  toggleAttribute(this, "aria-current", this._renderNavigated && this.navigated, "true");
60
+ toggleAttribute(this, "_interactive", this._isInteractive);
62
61
  toggleAttribute(this, "draggable", this.movable, "true");
62
+ this.ariaRowIndex = `${this._rowIndex + 2}`;
63
63
  }
64
64
  async focus(focusOptions) {
65
65
  this.setAttribute("tabindex", "-1");
@@ -100,6 +100,15 @@ let TableRow = class TableRow extends TableRowBase {
100
100
  get _isInteractive() {
101
101
  return this.interactive || (this._isSelectable && !this._hasSelector);
102
102
  }
103
+ get _rowIndex() {
104
+ if (this.position !== undefined) {
105
+ return this.position;
106
+ }
107
+ if (this._table) {
108
+ return this._table.rows.indexOf(this);
109
+ }
110
+ return -1;
111
+ }
103
112
  get _hasOverflowActions() {
104
113
  let renderedActionsCount = 0;
105
114
  return this.actions.some(action => {
@@ -1 +1 @@
1
- {"version":3,"file":"TableRow.js","sourceRoot":"","sources":["../src/TableRow.ts"],"names":[],"mappings":"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","sourcesContent":["import { customElement, slot, property } from \"@ui5/webcomponents-base/dist/decorators.js\";\nimport { isEnter } from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport getActiveElement from \"@ui5/webcomponents-base/dist/util/getActiveElement.js\";\nimport type { UI5CustomEvent } from \"@ui5/webcomponents-base\";\nimport { toggleAttribute } from \"./TableUtils.js\";\nimport TableRowTemplate from \"./TableRowTemplate.js\";\nimport TableRowBase from \"./TableRowBase.js\";\nimport TableRowCss from \"./generated/themes/TableRow.css.js\";\nimport type TableCell from \"./TableCell.js\";\nimport type TableRowActionBase from \"./TableRowActionBase.js\";\nimport type Button from \"./Button.js\";\nimport \"@ui5/webcomponents-icons/dist/overflow.js\";\n\n/**\n * @class\n *\n * ### Overview\n *\n * The `ui5-table-row` component represents a row in the `ui5-table`.\n *\n * ### ES6 Module Import\n *\n * `import \"@ui5/webcomponents/dist/TableRow.js\";`\n *\n * @constructor\n * @extends TableRowBase\n * @since 2.0.0\n * @public\n */\n@customElement({\n\ttag: \"ui5-table-row\",\n\tstyles: [TableRowBase.styles, TableRowCss],\n\ttemplate: TableRowTemplate,\n})\nclass TableRow extends TableRowBase {\n\t/**\n\t * Defines the cells of the component.\n\t *\n\t * **Note:** Use `ui5-table-cell` for the intended design.\n\t *\n\t * @public\n\t */\n\t@slot({\n\t\ttype: HTMLElement,\n\t\t\"default\": true,\n\t\tindividualSlots: true,\n\t\tinvalidateOnChildChange: {\n\t\t\tproperties: [\"_popin\", \"_popinHidden\"],\n\t\t\tslots: false,\n\t\t},\n\t})\n\tcells!: Array<TableCell>;\n\n\t/**\n\t * Defines the actions of the component.\n\t *\n\t * **Note:** Use `ui5-table-row-action` or `ui5-table-row-action-navigation` for the intended design.\n\t *\n\t * @since 2.7.0\n\t * @public\n\t */\n\t@slot({\n\t\ttype: HTMLElement,\n\t\tindividualSlots: true,\n\t})\n\tactions!: Array<TableRowActionBase>;\n\n\t/**\n\t * Unique identifier of the row.\n\t *\n\t * **Note:** For selection features to work properly, this property is mandatory, and its value must not contain spaces.\n\t *\n\t * @default undefined\n\t * @public\n\t */\n\t@property()\n\trowKey?: string;\n\n\t/**\n\t * Defines the position of the row related to the total number of rows within the table when the `ui5-table-virtualizer` feature is used.\n\t *\n\t * @default undefined\n\t * @since 2.5.0\n\t * @public\n\t */\n\t@property({ type: Number })\n\tposition?: number;\n\n\t/**\n\t * Defines the interactive state of the row.\n\t *\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\tinteractive = false;\n\n\t/**\n\t * Defines the navigated state of the row.\n\t *\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\tnavigated = false;\n\n\t/**\n\t * Defines whether the row is movable.\n\t *\n\t * @default false\n\t * @since 2.6.0\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\tmovable = false;\n\n\tonBeforeRendering() {\n\t\tsuper.onBeforeRendering();\n\t\ttoggleAttribute(this, \"_interactive\", this._isInteractive);\n\t\ttoggleAttribute(this, \"aria-rowindex\", this.position !== undefined, `${this.position! + 1}`);\n\t\ttoggleAttribute(this, \"aria-current\", this._renderNavigated && this.navigated, \"true\");\n\t\ttoggleAttribute(this, \"draggable\", this.movable, \"true\");\n\t}\n\n\tasync focus(focusOptions?: FocusOptions | undefined): Promise<void> {\n\t\tthis.setAttribute(\"tabindex\", \"-1\");\n\t\tHTMLElement.prototype.focus.call(this, focusOptions);\n\t\treturn Promise.resolve();\n\t}\n\n\t_onkeydown(e: KeyboardEvent, eventOrigin: HTMLElement) {\n\t\tsuper._onkeydown(e, eventOrigin);\n\t\tif (e.defaultPrevented) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (eventOrigin === this && this._isInteractive && isEnter(e)) {\n\t\t\tthis.toggleAttribute(\"_active\", true);\n\t\t\tthis._onclick();\n\t\t}\n\t}\n\n\t_onclick() {\n\t\tif (this === getActiveElement()) {\n\t\t\tif (this._isSelectable && !this._hasSelector) {\n\t\t\t\tthis._onSelectionChange();\n\t\t\t} else \tif (this.interactive) {\n\t\t\t\tthis._table?._onRowClick(this);\n\t\t\t}\n\t\t}\n\t}\n\n\t_onkeyup() {\n\t\tthis.removeAttribute(\"_active\");\n\t}\n\n\t_onfocusout() {\n\t\tthis.removeAttribute(\"_active\");\n\t}\n\n\t_onOverflowButtonClick(e: UI5CustomEvent<Button, \"click\">) {\n\t\tconst ctor = this.actions[0].constructor as typeof TableRowActionBase;\n\t\tctor.showMenu(this._overflowActions, e.target as HTMLElement);\n\t\te.stopPropagation();\n\t}\n\n\tget _isInteractive() {\n\t\treturn this.interactive || (this._isSelectable && !this._hasSelector);\n\t}\n\n\tget _hasOverflowActions() {\n\t\tlet renderedActionsCount = 0;\n\t\treturn this.actions.some(action => {\n\t\t\tif (action.isFixedAction() || !action.invisible) {\n\t\t\t\trenderedActionsCount++;\n\t\t\t}\n\t\t\treturn renderedActionsCount > this._rowActionCount;\n\t\t});\n\t}\n\n\tget _flexibleActions() {\n\t\tconst flexibleActions = this.actions.filter(action => !action.isFixedAction());\n\t\tconst fixedActionsCount = this.actions.length - flexibleActions.length;\n\t\tlet maxFlexibleActionsCount = this._rowActionCount - fixedActionsCount;\n\t\tif (maxFlexibleActionsCount < 1) {\n\t\t\treturn []; // fixed actions occupy all the available space\n\t\t}\n\t\tif (flexibleActions.length <= maxFlexibleActionsCount) {\n\t\t\treturn flexibleActions; // all actions fit the available space\n\t\t}\n\n\t\tconst visibleFlexibleActions = flexibleActions.filter(action => !action.invisible);\n\t\tif (visibleFlexibleActions.length > maxFlexibleActionsCount) {\n\t\t\tmaxFlexibleActionsCount--;\t// preserve space for the overflow button\n\t\t}\n\n\t\treturn visibleFlexibleActions.slice(0, maxFlexibleActionsCount);\n\t}\n\n\tget _fixedActions() {\n\t\tlet maxFixedActionsCount = this._rowActionCount;\n\t\tif (this._hasOverflowActions) {\n\t\t\tmaxFixedActionsCount--;\n\t\t}\n\n\t\tconst fixedActions = this.actions.filter(action => action.isFixedAction());\n\t\treturn fixedActions.slice(0, maxFixedActionsCount);\n\t}\n\n\tget _overflowActions() {\n\t\tconst fixedActions = this._fixedActions;\n\t\tconst flexibleActions = this._flexibleActions;\n\t\tconst overflowActions: Array<TableRowActionBase> = [];\n\t\tthis.actions.forEach(action => {\n\t\t\tif (!action.invisible && !fixedActions.includes(action) && !flexibleActions.includes(action)) {\n\t\t\t\toverflowActions.push(action);\n\t\t\t}\n\t\t});\n\n\t\treturn overflowActions;\n\t}\n}\n\nTableRow.define();\n\nexport default TableRow;\n"]}
1
+ {"version":3,"file":"TableRow.js","sourceRoot":"","sources":["../src/TableRow.ts"],"names":[],"mappings":"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","sourcesContent":["import { customElement, slot, property } from \"@ui5/webcomponents-base/dist/decorators.js\";\nimport { isEnter } from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport getActiveElement from \"@ui5/webcomponents-base/dist/util/getActiveElement.js\";\nimport type { UI5CustomEvent } from \"@ui5/webcomponents-base\";\nimport { toggleAttribute } from \"./TableUtils.js\";\nimport TableRowTemplate from \"./TableRowTemplate.js\";\nimport TableRowBase from \"./TableRowBase.js\";\nimport TableRowCss from \"./generated/themes/TableRow.css.js\";\nimport type TableCell from \"./TableCell.js\";\nimport type TableRowActionBase from \"./TableRowActionBase.js\";\nimport type Button from \"./Button.js\";\nimport \"@ui5/webcomponents-icons/dist/overflow.js\";\n\n/**\n * @class\n *\n * ### Overview\n *\n * The `ui5-table-row` component represents a row in the `ui5-table`.\n *\n * ### ES6 Module Import\n *\n * `import \"@ui5/webcomponents/dist/TableRow.js\";`\n *\n * @constructor\n * @extends TableRowBase\n * @since 2.0.0\n * @public\n */\n@customElement({\n\ttag: \"ui5-table-row\",\n\tstyles: [TableRowBase.styles, TableRowCss],\n\ttemplate: TableRowTemplate,\n})\nclass TableRow extends TableRowBase {\n\t/**\n\t * Defines the cells of the component.\n\t *\n\t * **Note:** Use `ui5-table-cell` for the intended design.\n\t *\n\t * @public\n\t */\n\t@slot({\n\t\ttype: HTMLElement,\n\t\t\"default\": true,\n\t\tindividualSlots: true,\n\t\tinvalidateOnChildChange: {\n\t\t\tproperties: [\"_popin\", \"_popinHidden\"],\n\t\t\tslots: false,\n\t\t},\n\t})\n\tcells!: Array<TableCell>;\n\n\t/**\n\t * Defines the actions of the component.\n\t *\n\t * **Note:** Use `ui5-table-row-action` or `ui5-table-row-action-navigation` for the intended design.\n\t *\n\t * @since 2.7.0\n\t * @public\n\t */\n\t@slot({\n\t\ttype: HTMLElement,\n\t\tindividualSlots: true,\n\t})\n\tactions!: Array<TableRowActionBase>;\n\n\t/**\n\t * Unique identifier of the row.\n\t *\n\t * **Note:** For selection features to work properly, this property is mandatory, and its value must not contain spaces.\n\t *\n\t * @default undefined\n\t * @public\n\t */\n\t@property()\n\trowKey?: string;\n\n\t/**\n\t * Defines the 0-based position of the row related to the total number of rows within the table when the `ui5-table-virtualizer` feature is used.\n\t *\n\t * @default undefined\n\t * @since 2.5.0\n\t * @public\n\t */\n\t@property({ type: Number })\n\tposition?: number;\n\n\t/**\n\t * Defines the interactive state of the row.\n\t *\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\tinteractive = false;\n\n\t/**\n\t * Defines the navigated state of the row.\n\t *\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\tnavigated = false;\n\n\t/**\n\t * Defines whether the row is movable.\n\t *\n\t * @default false\n\t * @since 2.6.0\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\tmovable = false;\n\n\tonBeforeRendering() {\n\t\tsuper.onBeforeRendering();\n\t\ttoggleAttribute(this, \"aria-current\", this._renderNavigated && this.navigated, \"true\");\n\t\ttoggleAttribute(this, \"_interactive\", this._isInteractive);\n\t\ttoggleAttribute(this, \"draggable\", this.movable, \"true\");\n\t\tthis.ariaRowIndex = `${this._rowIndex + 2}`;\n\t}\n\n\tasync focus(focusOptions?: FocusOptions | undefined): Promise<void> {\n\t\tthis.setAttribute(\"tabindex\", \"-1\");\n\t\tHTMLElement.prototype.focus.call(this, focusOptions);\n\t\treturn Promise.resolve();\n\t}\n\n\t_onkeydown(e: KeyboardEvent, eventOrigin: HTMLElement) {\n\t\tsuper._onkeydown(e, eventOrigin);\n\t\tif (e.defaultPrevented) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (eventOrigin === this && this._isInteractive && isEnter(e)) {\n\t\t\tthis.toggleAttribute(\"_active\", true);\n\t\t\tthis._onclick();\n\t\t}\n\t}\n\n\t_onclick() {\n\t\tif (this === getActiveElement()) {\n\t\t\tif (this._isSelectable && !this._hasSelector) {\n\t\t\t\tthis._onSelectionChange();\n\t\t\t} else \tif (this.interactive) {\n\t\t\t\tthis._table?._onRowClick(this);\n\t\t\t}\n\t\t}\n\t}\n\n\t_onkeyup() {\n\t\tthis.removeAttribute(\"_active\");\n\t}\n\n\t_onfocusout() {\n\t\tthis.removeAttribute(\"_active\");\n\t}\n\n\t_onOverflowButtonClick(e: UI5CustomEvent<Button, \"click\">) {\n\t\tconst ctor = this.actions[0].constructor as typeof TableRowActionBase;\n\t\tctor.showMenu(this._overflowActions, e.target as HTMLElement);\n\t\te.stopPropagation();\n\t}\n\n\tget _isInteractive() {\n\t\treturn this.interactive || (this._isSelectable && !this._hasSelector);\n\t}\n\n\tget _rowIndex() {\n\t\tif (this.position !== undefined) {\n\t\t\treturn this.position;\n\t\t}\n\t\tif (this._table) {\n\t\t\treturn this._table.rows.indexOf(this);\n\t\t}\n\t\treturn -1;\n\t}\n\n\tget _hasOverflowActions() {\n\t\tlet renderedActionsCount = 0;\n\t\treturn this.actions.some(action => {\n\t\t\tif (action.isFixedAction() || !action.invisible) {\n\t\t\t\trenderedActionsCount++;\n\t\t\t}\n\t\t\treturn renderedActionsCount > this._rowActionCount;\n\t\t});\n\t}\n\n\tget _flexibleActions() {\n\t\tconst flexibleActions = this.actions.filter(action => !action.isFixedAction());\n\t\tconst fixedActionsCount = this.actions.length - flexibleActions.length;\n\t\tlet maxFlexibleActionsCount = this._rowActionCount - fixedActionsCount;\n\t\tif (maxFlexibleActionsCount < 1) {\n\t\t\treturn []; // fixed actions occupy all the available space\n\t\t}\n\t\tif (flexibleActions.length <= maxFlexibleActionsCount) {\n\t\t\treturn flexibleActions; // all actions fit the available space\n\t\t}\n\n\t\tconst visibleFlexibleActions = flexibleActions.filter(action => !action.invisible);\n\t\tif (visibleFlexibleActions.length > maxFlexibleActionsCount) {\n\t\t\tmaxFlexibleActionsCount--;\t// preserve space for the overflow button\n\t\t}\n\n\t\treturn visibleFlexibleActions.slice(0, maxFlexibleActionsCount);\n\t}\n\n\tget _fixedActions() {\n\t\tlet maxFixedActionsCount = this._rowActionCount;\n\t\tif (this._hasOverflowActions) {\n\t\t\tmaxFixedActionsCount--;\n\t\t}\n\n\t\tconst fixedActions = this.actions.filter(action => action.isFixedAction());\n\t\treturn fixedActions.slice(0, maxFixedActionsCount);\n\t}\n\n\tget _overflowActions() {\n\t\tconst fixedActions = this._fixedActions;\n\t\tconst flexibleActions = this._flexibleActions;\n\t\tconst overflowActions: Array<TableRowActionBase> = [];\n\t\tthis.actions.forEach(action => {\n\t\t\tif (!action.invisible && !fixedActions.includes(action) && !flexibleActions.includes(action)) {\n\t\t\t\toverflowActions.push(action);\n\t\t\t}\n\t\t});\n\n\t\treturn overflowActions;\n\t}\n}\n\nTableRow.define();\n\nexport default TableRow;\n"]}
@@ -12,7 +12,7 @@ export default function TableRowTemplate() {
12
12
  _jsx(RadioButton, { id: "selection-component", tabindex: -1, name: this._tableId, checked: this._isSelected, onChange: this._onSelectionChange, accessibleName: this._i18nRowSelector }) }), this._visibleCells.map(cell => (_jsx("slot", { name: cell._individualSlot }))), this._rowActionCount > 0 &&
13
13
  _jsxs(TableCell, { id: "actions-cell", children: [this._flexibleActions.map(action => (_jsx("slot", { name: action._individualSlot }))), this._hasOverflowActions &&
14
14
  _jsx(Button, { id: "overflow", icon: "overflow", design: ButtonDesign.Transparent, onClick: this._onOverflowButtonClick }), this._fixedActions.map(action => (_jsx("slot", { name: action._individualSlot })))] }), this._renderNavigated &&
15
- _jsx(TableCell, { id: "navigated-cell", "data-excluded-from-navigation": true, children: _jsx("div", { id: "navigated" }) }), this._popinCells.length > 0 &&
15
+ _jsx(TableCell, { id: "navigated-cell", "data-excluded-from-navigation": true, "aria-hidden": true, children: _jsx("div", { id: "navigated" }) }), this._popinCells.length > 0 &&
16
16
  _jsx(TableCell, { id: "popin-cell", children: this._popinCells.map(cell => (_jsx("slot", { name: cell._individualSlot }))) })] }));
17
17
  }
18
18
  //# sourceMappingURL=TableRowTemplate.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"TableRowTemplate.js","sourceRoot":"","sources":["../src/TableRowTemplate.tsx"],"names":[],"mappings":";AAAA,OAAO,SAAS,MAAM,gBAAgB,CAAC;AACvC,OAAO,QAAQ,MAAM,eAAe,CAAC;AACrC,OAAO,WAAW,MAAM,kBAAkB,CAAC;AAC3C,OAAO,MAAM,MAAM,aAAa,CAAC;AACjC,OAAO,YAAY,MAAM,yBAAyB,CAAC;AAGnD,MAAM,CAAC,OAAO,UAAU,gBAAgB;IACvC,OAAO,CACN,8BACG,IAAI,CAAC,YAAY;gBAClB,KAAC,SAAS,IACT,EAAE,EAAC,gBAAgB,mBACJ,IAAI,CAAC,WAAW,2FAI7B,IAAI,CAAC,cAAc,CAAC,CAAC;wBACtB,KAAC,QAAQ,IAAC,EAAE,EAAC,qBAAqB,EACjC,QAAQ,EAAE,CAAC,CAAC,EACZ,OAAO,EAAE,IAAI,CAAC,WAAW,EACzB,QAAQ,EAAE,IAAI,CAAC,kBAAkB,EACjC,cAAc,EAAE,IAAI,CAAC,gBAAgB,GAC1B;wBACZ,CAAC;4BACD,KAAC,WAAW,IAAC,EAAE,EAAC,qBAAqB,EACpC,QAAQ,EAAE,CAAC,CAAC,EACZ,IAAI,EAAE,IAAI,CAAC,QAAQ,EACnB,OAAO,EAAE,IAAI,CAAC,WAAW,EACzB,QAAQ,EAAE,IAAI,CAAC,kBAAkB,EACjC,cAAc,EAAE,IAAI,CAAC,gBAAgB,GACvB,GAEL,EAGX,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAChC,eAAM,IAAI,EAAE,IAAI,CAAC,eAAe,GAAS,CACzC,CAAC,EAEA,IAAI,CAAC,eAAe,GAAG,CAAC;gBACzB,MAAC,SAAS,IAAC,EAAE,EAAC,cAAc,aACzB,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CACrC,eAAM,IAAI,EAAE,MAAM,CAAC,eAAe,GAAS,CAC3C,CAAC,EAEA,IAAI,CAAC,mBAAmB;4BACzB,KAAC,MAAM,IACN,EAAE,EAAC,UAAU,EACb,IAAI,EAAC,UAAU,EACf,MAAM,EAAE,YAAY,CAAC,WAAW,EAChC,OAAO,EAAE,IAAI,CAAC,sBAAsB,GAC3B,EAGT,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAClC,eAAM,IAAI,EAAE,MAAM,CAAC,eAAe,GAAS,CAC3C,CAAC,IACS,EAGX,IAAI,CAAC,gBAAgB;gBACtB,KAAC,SAAS,IAAC,EAAE,EAAC,gBAAgB,mCAAgC,IAAI,YACjE,cAAK,EAAE,EAAC,WAAW,GAAO,GACf,EAGX,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC;gBAC5B,KAAC,SAAS,IAAC,EAAE,EAAC,YAAY,YACvB,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAC9B,eAAM,IAAI,EAAE,IAAI,CAAC,eAAe,GAAS,CACzC,CAAC,GACS,IAEX,CACH,CAAC;AACH,CAAC","sourcesContent":["import TableCell from \"./TableCell.js\";\nimport CheckBox from \"./CheckBox.js\";\nimport RadioButton from \"./RadioButton.js\";\nimport Button from \"./Button.js\";\nimport ButtonDesign from \"./types/ButtonDesign.js\";\nimport type TableRow from \"./TableRow.js\";\n\nexport default function TableRowTemplate(this: TableRow) {\n\treturn (\n\t\t<>\n\t\t\t{ this._hasSelector &&\n\t\t\t\t<TableCell\n\t\t\t\t\tid=\"selection-cell\"\n\t\t\t\t\taria-selected={this._isSelected}\n\t\t\t\t\tdata-ui5-table-cell-fixed\n\t\t\t\t\tdata-ui5-table-selection-component\n\t\t\t\t>\n\t\t\t\t\t{ this._isMultiSelect ?\n\t\t\t\t\t\t<CheckBox id=\"selection-component\"\n\t\t\t\t\t\t\ttabindex={-1}\n\t\t\t\t\t\t\tchecked={this._isSelected}\n\t\t\t\t\t\t\tonChange={this._onSelectionChange}\n\t\t\t\t\t\t\taccessibleName={this._i18nRowSelector}\n\t\t\t\t\t\t></CheckBox>\n\t\t\t\t\t\t:\n\t\t\t\t\t\t<RadioButton id=\"selection-component\"\n\t\t\t\t\t\t\ttabindex={-1}\n\t\t\t\t\t\t\tname={this._tableId}\n\t\t\t\t\t\t\tchecked={this._isSelected}\n\t\t\t\t\t\t\tonChange={this._onSelectionChange}\n\t\t\t\t\t\t\taccessibleName={this._i18nRowSelector}\n\t\t\t\t\t\t></RadioButton>\n\t\t\t\t\t}\n\t\t\t\t</TableCell>\n\t\t\t}\n\n\t\t\t{ this._visibleCells.map(cell => (\n\t\t\t\t<slot name={cell._individualSlot}></slot>\n\t\t\t))}\n\n\t\t\t{ this._rowActionCount > 0 &&\n\t\t\t\t<TableCell id=\"actions-cell\">\n\t\t\t\t\t{ this._flexibleActions.map(action => (\n\t\t\t\t\t\t<slot name={action._individualSlot}></slot>\n\t\t\t\t\t))}\n\n\t\t\t\t\t{ this._hasOverflowActions &&\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tid=\"overflow\"\n\t\t\t\t\t\t\ticon=\"overflow\"\n\t\t\t\t\t\t\tdesign={ButtonDesign.Transparent}\n\t\t\t\t\t\t\tonClick={this._onOverflowButtonClick}\n\t\t\t\t\t\t></Button>\n\t\t\t\t\t}\n\n\t\t\t\t\t{ this._fixedActions.map(action => (\n\t\t\t\t\t\t<slot name={action._individualSlot}></slot>\n\t\t\t\t\t))}\n\t\t\t\t</TableCell>\n\t\t\t}\n\n\t\t\t{ this._renderNavigated &&\n\t\t\t\t<TableCell id=\"navigated-cell\" data-excluded-from-navigation={true}>\n\t\t\t\t\t<div id=\"navigated\"></div>\n\t\t\t\t</TableCell>\n\t\t\t}\n\n\t\t\t{ this._popinCells.length > 0 &&\n\t\t\t\t<TableCell id=\"popin-cell\">\n\t\t\t\t\t{ this._popinCells.map(cell => (\n\t\t\t\t\t\t<slot name={cell._individualSlot}></slot>\n\t\t\t\t\t))}\n\t\t\t\t</TableCell>\n\t\t\t}\n\t\t</>\n\t);\n}\n"]}
1
+ {"version":3,"file":"TableRowTemplate.js","sourceRoot":"","sources":["../src/TableRowTemplate.tsx"],"names":[],"mappings":";AAAA,OAAO,SAAS,MAAM,gBAAgB,CAAC;AACvC,OAAO,QAAQ,MAAM,eAAe,CAAC;AACrC,OAAO,WAAW,MAAM,kBAAkB,CAAC;AAC3C,OAAO,MAAM,MAAM,aAAa,CAAC;AACjC,OAAO,YAAY,MAAM,yBAAyB,CAAC;AAGnD,MAAM,CAAC,OAAO,UAAU,gBAAgB;IACvC,OAAO,CACN,8BACG,IAAI,CAAC,YAAY;gBAClB,KAAC,SAAS,IACT,EAAE,EAAC,gBAAgB,mBACJ,IAAI,CAAC,WAAW,2FAI7B,IAAI,CAAC,cAAc,CAAC,CAAC;wBACtB,KAAC,QAAQ,IAAC,EAAE,EAAC,qBAAqB,EACjC,QAAQ,EAAE,CAAC,CAAC,EACZ,OAAO,EAAE,IAAI,CAAC,WAAW,EACzB,QAAQ,EAAE,IAAI,CAAC,kBAAkB,EACjC,cAAc,EAAE,IAAI,CAAC,gBAAgB,GAC1B;wBACZ,CAAC;4BACD,KAAC,WAAW,IAAC,EAAE,EAAC,qBAAqB,EACpC,QAAQ,EAAE,CAAC,CAAC,EACZ,IAAI,EAAE,IAAI,CAAC,QAAQ,EACnB,OAAO,EAAE,IAAI,CAAC,WAAW,EACzB,QAAQ,EAAE,IAAI,CAAC,kBAAkB,EACjC,cAAc,EAAE,IAAI,CAAC,gBAAgB,GACvB,GAEL,EAGX,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAChC,eAAM,IAAI,EAAE,IAAI,CAAC,eAAe,GAAS,CACzC,CAAC,EAEA,IAAI,CAAC,eAAe,GAAG,CAAC;gBACzB,MAAC,SAAS,IAAC,EAAE,EAAC,cAAc,aACzB,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CACrC,eAAM,IAAI,EAAE,MAAM,CAAC,eAAe,GAAS,CAC3C,CAAC,EAEA,IAAI,CAAC,mBAAmB;4BACzB,KAAC,MAAM,IACN,EAAE,EAAC,UAAU,EACb,IAAI,EAAC,UAAU,EACf,MAAM,EAAE,YAAY,CAAC,WAAW,EAChC,OAAO,EAAE,IAAI,CAAC,sBAAsB,GAC3B,EAGT,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAClC,eAAM,IAAI,EAAE,MAAM,CAAC,eAAe,GAAS,CAC3C,CAAC,IACS,EAGX,IAAI,CAAC,gBAAgB;gBACtB,KAAC,SAAS,IAAC,EAAE,EAAC,gBAAgB,wDAA4C,IAAI,YAC7E,cAAK,EAAE,EAAC,WAAW,GAAO,GACf,EAGX,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC;gBAC5B,KAAC,SAAS,IAAC,EAAE,EAAC,YAAY,YACvB,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAC9B,eAAM,IAAI,EAAE,IAAI,CAAC,eAAe,GAAS,CACzC,CAAC,GACS,IAEX,CACH,CAAC;AACH,CAAC","sourcesContent":["import TableCell from \"./TableCell.js\";\nimport CheckBox from \"./CheckBox.js\";\nimport RadioButton from \"./RadioButton.js\";\nimport Button from \"./Button.js\";\nimport ButtonDesign from \"./types/ButtonDesign.js\";\nimport type TableRow from \"./TableRow.js\";\n\nexport default function TableRowTemplate(this: TableRow) {\n\treturn (\n\t\t<>\n\t\t\t{ this._hasSelector &&\n\t\t\t\t<TableCell\n\t\t\t\t\tid=\"selection-cell\"\n\t\t\t\t\taria-selected={this._isSelected}\n\t\t\t\t\tdata-ui5-table-cell-fixed\n\t\t\t\t\tdata-ui5-table-selection-component\n\t\t\t\t>\n\t\t\t\t\t{ this._isMultiSelect ?\n\t\t\t\t\t\t<CheckBox id=\"selection-component\"\n\t\t\t\t\t\t\ttabindex={-1}\n\t\t\t\t\t\t\tchecked={this._isSelected}\n\t\t\t\t\t\t\tonChange={this._onSelectionChange}\n\t\t\t\t\t\t\taccessibleName={this._i18nRowSelector}\n\t\t\t\t\t\t></CheckBox>\n\t\t\t\t\t\t:\n\t\t\t\t\t\t<RadioButton id=\"selection-component\"\n\t\t\t\t\t\t\ttabindex={-1}\n\t\t\t\t\t\t\tname={this._tableId}\n\t\t\t\t\t\t\tchecked={this._isSelected}\n\t\t\t\t\t\t\tonChange={this._onSelectionChange}\n\t\t\t\t\t\t\taccessibleName={this._i18nRowSelector}\n\t\t\t\t\t\t></RadioButton>\n\t\t\t\t\t}\n\t\t\t\t</TableCell>\n\t\t\t}\n\n\t\t\t{ this._visibleCells.map(cell => (\n\t\t\t\t<slot name={cell._individualSlot}></slot>\n\t\t\t))}\n\n\t\t\t{ this._rowActionCount > 0 &&\n\t\t\t\t<TableCell id=\"actions-cell\">\n\t\t\t\t\t{ this._flexibleActions.map(action => (\n\t\t\t\t\t\t<slot name={action._individualSlot}></slot>\n\t\t\t\t\t))}\n\n\t\t\t\t\t{ this._hasOverflowActions &&\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tid=\"overflow\"\n\t\t\t\t\t\t\ticon=\"overflow\"\n\t\t\t\t\t\t\tdesign={ButtonDesign.Transparent}\n\t\t\t\t\t\t\tonClick={this._onOverflowButtonClick}\n\t\t\t\t\t\t></Button>\n\t\t\t\t\t}\n\n\t\t\t\t\t{ this._fixedActions.map(action => (\n\t\t\t\t\t\t<slot name={action._individualSlot}></slot>\n\t\t\t\t\t))}\n\t\t\t\t</TableCell>\n\t\t\t}\n\n\t\t\t{ this._renderNavigated &&\n\t\t\t\t<TableCell id=\"navigated-cell\" data-excluded-from-navigation aria-hidden={true}>\n\t\t\t\t\t<div id=\"navigated\"></div>\n\t\t\t\t</TableCell>\n\t\t\t}\n\n\t\t\t{ this._popinCells.length > 0 &&\n\t\t\t\t<TableCell id=\"popin-cell\">\n\t\t\t\t\t{ this._popinCells.map(cell => (\n\t\t\t\t\t\t<slot name={cell._individualSlot}></slot>\n\t\t\t\t\t))}\n\t\t\t\t</TableCell>\n\t\t\t}\n\t\t</>\n\t);\n}\n"]}
@@ -79,6 +79,8 @@ declare class TableSelection extends UI5Element implements ITableFeature {
79
79
  isSelectable(): boolean;
80
80
  isMultiSelectable(): boolean;
81
81
  isRowSelectorRequired(): boolean;
82
+ getAriaDescriptionForTable(): string | undefined;
83
+ getAriaDescriptionForColumnHeader(): string | undefined;
82
84
  getRowKey(row: TableRow): string;
83
85
  isSelected(row: TableRowBase): boolean;
84
86
  hasSelectedRow(): boolean;
@@ -101,6 +101,12 @@ let TableSelection = class TableSelection extends UI5Element {
101
101
  isRowSelectorRequired() {
102
102
  return this.mode !== TableSelectionMode.None;
103
103
  }
104
+ getAriaDescriptionForTable() {
105
+ return undefined;
106
+ }
107
+ getAriaDescriptionForColumnHeader() {
108
+ return undefined;
109
+ }
104
110
  getRowKey(row) {
105
111
  return row.rowKey || "";
106
112
  }
@@ -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` 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 * @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 * @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 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\tonClickCaptureBound: (e: MouseEvent) => void;\n\n\tconstructor() {\n\t\tsuper();\n\t\tthis.onClickCaptureBound = this._onClickCapture.bind(this);\n\t}\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\n\t\tthis._table?.removeEventListener(\"click\", this.onClickCaptureBound);\n\t}\n\n\tonTableAfterRendering(): void {\n\t\tthis._table?.addEventListener(\"click\", this.onClickCaptureBound, { capture: true });\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\tconst row = focusedElement as TableRow;\n\t\t\tthis._startRangeSelection(row, this.isSelected(row));\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_onClickCapture(e: MouseEvent) {\n\t\tif (!this._table || this.mode !== TableSelectionMode.Multiple) {\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\tconst selectionState = this.isSelected(startRow);\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\", selectionState);\n\t\t\te.stopPropagation();\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, !this.isSelected(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, selected: boolean, isMouse = false) {\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 * @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 * @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 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\tonClickCaptureBound: (e: MouseEvent) => void;\n\n\tconstructor() {\n\t\tsuper();\n\t\tthis.onClickCaptureBound = this._onClickCapture.bind(this);\n\t}\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\n\t\tthis._table?.removeEventListener(\"click\", this.onClickCaptureBound);\n\t}\n\n\tonTableAfterRendering(): void {\n\t\tthis._table?.addEventListener(\"click\", this.onClickCaptureBound, { capture: true });\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\tgetAriaDescriptionForTable(): string | undefined {\n\t\treturn undefined;\n\t}\n\n\tgetAriaDescriptionForColumnHeader(): string | undefined {\n\t\treturn undefined;\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\tconst row = focusedElement as TableRow;\n\t\t\tthis._startRangeSelection(row, this.isSelected(row));\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_onClickCapture(e: MouseEvent) {\n\t\tif (!this._table || this.mode !== TableSelectionMode.Multiple) {\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\tconst selectionState = this.isSelected(startRow);\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\", selectionState);\n\t\t\te.stopPropagation();\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, !this.isSelected(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, selected: boolean, isMouse = false) {\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"]}
@@ -48,6 +48,14 @@ declare abstract class TableSelectionBase extends UI5Element implements ITableFe
48
48
  * Determines whether a row selector (for example, `radiobutton` or `checkbox`) is rendered.
49
49
  */
50
50
  isRowSelectorRequired(): boolean;
51
+ /**
52
+ * Returns the ARIA description of the Table as an alternative to aria-multiselectable.
53
+ */
54
+ getAriaDescriptionForTable(): string | undefined;
55
+ /**
56
+ * Returns the ARIA description of the selection component displayed in the column header.
57
+ */
58
+ getAriaDescriptionForColumnHeader(): string | undefined;
51
59
  /**
52
60
  * Returns the unique key associated with the table row.
53
61
  *
@@ -8,6 +8,7 @@ import UI5Element from "@ui5/webcomponents-base/dist/UI5Element.js";
8
8
  import { property, eventStrict } from "@ui5/webcomponents-base/dist/decorators.js";
9
9
  import { isInstanceOfTable } from "./TableUtils.js";
10
10
  import TableSelectionBehavior from "./types/TableSelectionBehavior.js";
11
+ import { TABLE_MULTI_SELECTABLE, TABLE_SINGLE_SELECTABLE, } from "./generated/i18n/i18n-defaults.js";
11
12
  /**
12
13
  * Fired when the selection is changed by user interaction.
13
14
  *
@@ -65,6 +66,22 @@ class TableSelectionBase extends UI5Element {
65
66
  isRowSelectorRequired() {
66
67
  return this.behavior === TableSelectionBehavior.RowSelector;
67
68
  }
69
+ /**
70
+ * Returns the ARIA description of the Table as an alternative to aria-multiselectable.
71
+ */
72
+ getAriaDescriptionForTable() {
73
+ if (!this._table || !this._table.rows.length) {
74
+ return undefined;
75
+ }
76
+ const i18nBundle = this._table.constructor.i18nBundle;
77
+ return i18nBundle.getText(this.isMultiSelectable() ? TABLE_MULTI_SELECTABLE : TABLE_SINGLE_SELECTABLE);
78
+ }
79
+ /**
80
+ * Returns the ARIA description of the selection component displayed in the column header.
81
+ */
82
+ getAriaDescriptionForColumnHeader() {
83
+ return undefined;
84
+ }
68
85
  /**
69
86
  * Returns the unique key associated with the table row.
70
87
  *
@@ -1 +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;AAKpD,OAAO,sBAAsB,MAAM,mCAAmC,CAAC;AASvE;;;;GAIG;AAaH,IAAe,kBAAkB;AARjC;;;;;;;GAOG;AACH,MAAe,kBAAmB,SAAQ,UAAU;IAApD;;QAcC;;;;;;WAMG;QAEH,aAAQ,GAAgC,aAAa,CAAC;QAE7C,eAAU,GAAG,gBAAgB,CAAC;IAsFxC,CAAC;IAnFA,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,QAAQ,KAAK,sBAAsB,CAAC,WAAW,CAAC;IAC7D,CAAC;IAED;;;;OAIG;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;IAkBD;;OAEG;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;YACnD,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC;QACzD,CAAC;IACF,CAAC;CACD,CAAA;AAlGA;IADC,QAAQ,EAAE;oDACO;AAUlB;IADC,QAAQ,EAAE;oDAC2C;AAtBxC,kBAAkB;IAZhC,WAAW,CAAC,QAAQ,EAAE;QACtB,OAAO,EAAE,KAAK;KACd,CAAC;IAEF;;;;;;;OAOG;GACY,kBAAkB,CA8GhC;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\";\nimport TableSelectionBehavior from \"./types/TableSelectionBehavior.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\t/**\n\t * Defines the selection behavior.\n\t *\n\t * @default \"RowSelector\"\n\t * @public\n\t * @since 2.11\n\t */\n\t@property()\n\tbehavior: `${TableSelectionBehavior}` = \"RowSelector\";\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 this.behavior === TableSelectionBehavior.RowSelector;\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 */\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 */\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 * @param fireEvent Whether the change event should be fired\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\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\tthis._table.headerRow.forEach(row => row._invalidate++);\n\t\t}\n\t}\n}\n\nexport default TableSelectionBase;\n\nexport type {\n\tTableSelectionBaseChangeEventDetail,\n};\n"]}
1
+ {"version":3,"file":"TableSelectionBase.js","sourceRoot":"","sources":["../src/TableSelectionBase.ts"],"names":[],"mappings":"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","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\";\nimport TableSelectionBehavior from \"./types/TableSelectionBehavior.js\";\nimport {\n\tTABLE_MULTI_SELECTABLE,\n\tTABLE_SINGLE_SELECTABLE,\n} from \"./generated/i18n/i18n-defaults.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\t/**\n\t * Defines the selection behavior.\n\t *\n\t * @default \"RowSelector\"\n\t * @public\n\t * @since 2.11\n\t */\n\t@property()\n\tbehavior: `${TableSelectionBehavior}` = \"RowSelector\";\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 this.behavior === TableSelectionBehavior.RowSelector;\n\t}\n\n\t/**\n\t * Returns the ARIA description of the Table as an alternative to aria-multiselectable.\n\t */\n\tgetAriaDescriptionForTable(): string | undefined {\n\t\tif (!this._table || !this._table.rows.length) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\tconst i18nBundle = (this._table.constructor as typeof Table).i18nBundle;\n\t\treturn i18nBundle.getText(this.isMultiSelectable() ? TABLE_MULTI_SELECTABLE : TABLE_SINGLE_SELECTABLE);\n\t}\n\n\t/**\n\t * Returns the ARIA description of the selection component displayed in the column header.\n\t */\n\tgetAriaDescriptionForColumnHeader(): string | undefined {\n\t\treturn undefined;\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 */\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 */\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 * @param fireEvent Whether the change event should be fired\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\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\tthis._table.headerRow.forEach(row => row._invalidate++);\n\t\t}\n\t}\n}\n\nexport default TableSelectionBase;\n\nexport type {\n\tTableSelectionBaseChangeEventDetail,\n};\n"]}
@@ -79,6 +79,10 @@ declare class TableSelectionMulti extends TableSelectionBase {
79
79
  * @public
80
80
  */
81
81
  setSelectedAsSet(selectedSet: Set<string>): void;
82
+ /**
83
+ * Returns the ARIA description of the selection component displayed in the column header.
84
+ */
85
+ getAriaDescriptionForColumnHeader(): string | undefined;
82
86
  _onkeydown(e: KeyboardEvent): void;
83
87
  _onkeyup(e: KeyboardEvent, eventOrigin: HTMLElement): void;
84
88
  _onclickCapture(e: MouseEvent): void;
@@ -9,6 +9,7 @@ import TableSelectionBase from "./TableSelectionBase.js";
9
9
  import getActiveElement from "@ui5/webcomponents-base/dist/util/getActiveElement.js";
10
10
  import { isSelectionCheckbox, isHeaderSelector, findRowInPath } from "./TableUtils.js";
11
11
  import { isUpShift } from "@ui5/webcomponents-base/dist/Keys.js";
12
+ import { TABLE_COLUMNHEADER_SELECTALL_DESCRIPTION, TABLE_COLUMNHEADER_SELECTALL_CHECKED, TABLE_COLUMNHEADER_SELECTALL_NOT_CHECKED, TABLE_COLUMNHEADER_CLEARALL_DESCRIPTION, TABLE_COLUMNHEADER_CLEARALL_DISABLED, } from "./generated/i18n/i18n-defaults.js";
12
13
  /**
13
14
  * @class
14
15
  *
@@ -132,6 +133,26 @@ let TableSelectionMulti = class TableSelectionMulti extends TableSelectionBase {
132
133
  setSelectedAsSet(selectedSet) {
133
134
  this.selected = [...selectedSet].join(" ");
134
135
  }
136
+ /**
137
+ * Returns the ARIA description of the selection component displayed in the column header.
138
+ */
139
+ getAriaDescriptionForColumnHeader() {
140
+ if (!this._table || !this._table.rows.length || this.behavior === "RowOnly") {
141
+ return undefined;
142
+ }
143
+ let description = "";
144
+ const seperator = " . ";
145
+ const i18nBundle = this._table.constructor.i18nBundle;
146
+ if (this.headerSelector === "SelectAll") {
147
+ description = i18nBundle.getText(TABLE_COLUMNHEADER_SELECTALL_DESCRIPTION);
148
+ description += seperator + i18nBundle.getText(this.areAllRowsSelected() ? TABLE_COLUMNHEADER_SELECTALL_CHECKED : TABLE_COLUMNHEADER_SELECTALL_NOT_CHECKED);
149
+ }
150
+ else {
151
+ description = i18nBundle.getText(TABLE_COLUMNHEADER_CLEARALL_DESCRIPTION);
152
+ description += this.getSelectedRows().length === 0 ? seperator + i18nBundle.getText(TABLE_COLUMNHEADER_CLEARALL_DISABLED) : "";
153
+ }
154
+ return description;
155
+ }
135
156
  _onkeydown(e) {
136
157
  if (!this._table || !e.shiftKey) {
137
158
  return;
@@ -1 +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\";\nimport type TableSelectionMultiHeaderSelector from \"./types/TableSelectionMultiHeaderSelector.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\t/**\n\t * Defines the selector of the header row.\n\t *\n\t * @default \"SelectAll\"\n\t * @public\n\t * @since 2.12\n\t */\n\t@property()\n\theaderSelector: `${TableSelectionMultiHeaderSelector}` = \"SelectAll\";\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\t_onClickCaptureBound: (e: MouseEvent) => void;\n\n\tconstructor() {\n\t\tsuper();\n\t\tthis._onClickCaptureBound = this._onclickCapture.bind(this);\n\t}\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\n\t\tthis._table?.removeEventListener(\"click\", this._onClickCaptureBound);\n\t}\n\n\tonTableAfterRendering() {\n\t\tthis._table?.addEventListener(\"click\", this._onClickCaptureBound, { capture: true });\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.headerSelector === \"ClearAll\" ? true : 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\tconst selectionChanged = tableRows.reduce((selectedSetChanged, tableRow) => {\n\t\t\tconst rowKey = this.getRowKey(tableRow);\n\t\t\tif (!rowKey) {\n\t\t\t\treturn selectedSetChanged;\n\t\t\t}\n\n\t\t\tconst setSize = selectedSet.size;\n\t\t\tselectedSet[selected ? \"add\" : \"delete\"](rowKey);\n\t\t\treturn selectedSetChanged || setSize !== selectedSet.size;\n\t\t}, false);\n\n\t\tif (selectionChanged) {\n\t\t\tthis.setSelectedAsSet(selectedSet);\n\t\t\tfireEvent && this.fireDecoratorEvent(\"change\");\n\t\t}\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\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_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\tconst row = focusedElement as TableRow;\n\t\t\tthis._startRangeSelection(row, this.isSelected(row));\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_onclickCapture(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// Set checkbox to the selection state of the start row (if it is selected)\n\t\t\tconst selectionState = this.isSelected(startRow);\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\", selectionState);\n\t\t\te.stopPropagation();\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, !this.isSelected(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, selected: boolean, isMouse = false) {\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"]}
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 Table from \"./Table.js\";\nimport type TableRow from \"./TableRow.js\";\nimport type TableRowBase from \"./TableRowBase.js\";\nimport type TableSelectionMultiHeaderSelector from \"./types/TableSelectionMultiHeaderSelector.js\";\nimport {\n\tTABLE_COLUMNHEADER_SELECTALL_DESCRIPTION,\n\tTABLE_COLUMNHEADER_SELECTALL_CHECKED,\n\tTABLE_COLUMNHEADER_SELECTALL_NOT_CHECKED,\n\tTABLE_COLUMNHEADER_CLEARALL_DESCRIPTION,\n\tTABLE_COLUMNHEADER_CLEARALL_DISABLED,\n} from \"./generated/i18n/i18n-defaults.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\t/**\n\t * Defines the selector of the header row.\n\t *\n\t * @default \"SelectAll\"\n\t * @public\n\t * @since 2.12\n\t */\n\t@property()\n\theaderSelector: `${TableSelectionMultiHeaderSelector}` = \"SelectAll\";\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\t_onClickCaptureBound: (e: MouseEvent) => void;\n\n\tconstructor() {\n\t\tsuper();\n\t\tthis._onClickCaptureBound = this._onclickCapture.bind(this);\n\t}\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\n\t\tthis._table?.removeEventListener(\"click\", this._onClickCaptureBound);\n\t}\n\n\tonTableAfterRendering() {\n\t\tthis._table?.addEventListener(\"click\", this._onClickCaptureBound, { capture: true });\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.headerSelector === \"ClearAll\" ? true : 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\tconst selectionChanged = tableRows.reduce((selectedSetChanged, tableRow) => {\n\t\t\tconst rowKey = this.getRowKey(tableRow);\n\t\t\tif (!rowKey) {\n\t\t\t\treturn selectedSetChanged;\n\t\t\t}\n\n\t\t\tconst setSize = selectedSet.size;\n\t\t\tselectedSet[selected ? \"add\" : \"delete\"](rowKey);\n\t\t\treturn selectedSetChanged || setSize !== selectedSet.size;\n\t\t}, false);\n\n\t\tif (selectionChanged) {\n\t\t\tthis.setSelectedAsSet(selectedSet);\n\t\t\tfireEvent && this.fireDecoratorEvent(\"change\");\n\t\t}\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\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/**\n\t * Returns the ARIA description of the selection component displayed in the column header.\n\t */\n\tgetAriaDescriptionForColumnHeader(): string | undefined {\n\t\tif (!this._table || !this._table.rows.length || this.behavior === \"RowOnly\") {\n\t\t\treturn undefined;\n\t\t}\n\n\t\tlet description = \"\";\n\t\tconst seperator = \" . \";\n\t\tconst i18nBundle = (this._table.constructor as typeof Table).i18nBundle;\n\t\tif (this.headerSelector === \"SelectAll\") {\n\t\t\tdescription = i18nBundle.getText(TABLE_COLUMNHEADER_SELECTALL_DESCRIPTION);\n\t\t\tdescription += seperator + i18nBundle.getText(this.areAllRowsSelected() ? TABLE_COLUMNHEADER_SELECTALL_CHECKED : TABLE_COLUMNHEADER_SELECTALL_NOT_CHECKED);\n\t\t} else {\n\t\t\tdescription = i18nBundle.getText(TABLE_COLUMNHEADER_CLEARALL_DESCRIPTION);\n\t\t\tdescription += this.getSelectedRows().length === 0 ? seperator + i18nBundle.getText(TABLE_COLUMNHEADER_CLEARALL_DISABLED) : \"\";\n\t\t}\n\t\treturn description;\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\tconst row = focusedElement as TableRow;\n\t\t\tthis._startRangeSelection(row, this.isSelected(row));\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_onclickCapture(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// Set checkbox to the selection state of the start row (if it is selected)\n\t\t\tconst selectionState = this.isSelected(startRow);\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\", selectionState);\n\t\t\te.stopPropagation();\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, !this.isSelected(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, selected: boolean, isMouse = false) {\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"]}
@@ -4,7 +4,7 @@ import TableCell from "./TableCell.js";
4
4
  import DropIndicator from "./DropIndicator.js";
5
5
  import BusyIndicator from "./BusyIndicator.js";
6
6
  export default function TableTemplate() {
7
- return (_jsxs(_Fragment, { children: [_jsx("div", { id: "before", role: "none", tabindex: 0, "ui5-table-dummy-focus-area": true }), _jsxs("div", { id: "table", role: "grid", style: this.styles.table, "aria-label": this._ariaLabel, "aria-rowcount": this._ariaRowCount, "aria-multiselectable": this._ariaMultiSelectable, children: [_jsx("slot", { name: "headerRow" }), _jsx("div", { id: "rows", children: _jsx("div", { id: "spacer", style: this.styles.spacer, children: _jsx("slot", {}) }) }), this.rows.length === 0 &&
7
+ return (_jsxs(_Fragment, { children: [_jsx("div", { id: "before", role: "none", tabindex: 0, "ui5-table-dummy-focus-area": true }), _jsxs("div", { id: "table", role: "grid", style: this.styles.table, "aria-label": this._ariaLabel, "aria-description": this._ariaDescription, "aria-rowcount": this._ariaRowCount, "aria-colcount": this._ariaColCount, "aria-multiselectable": this._ariaMultiSelectable, children: [_jsx("slot", { name: "headerRow" }), _jsx("div", { id: "rows", children: _jsx("div", { id: "spacer", style: this.styles.spacer, children: _jsx("slot", {}) }) }), this.rows.length === 0 &&
8
8
  _jsx(TableRow, { id: "no-data-row", children: _jsx(TableCell, { id: "no-data-cell", "data-excluded-from-navigation": true, "horizontal-align": "Center", children: this.noData.length > 0 ?
9
9
  _jsx("slot", { name: "noData" })
10
10
  :
@@ -13,6 +13,6 @@ export default function TableTemplate() {
13
13
  _jsx(BusyIndicator, { id: "loading", delay: this.loadingDelay, active: true, "data-sap-focus-ref": true })] }), _jsx("div", { id: "after", role: "none", tabindex: 0, "ui5-table-dummy-focus-area": true })] }));
14
14
  }
15
15
  function growingRow() {
16
- return (_jsx(TableRow, { id: "growing-row", "ui5-growing-row": true, children: _jsx(TableCell, { id: "growing-cell", children: _jsx("slot", { name: this._getGrowing()?._individualSlot }) }) }));
16
+ return (_jsx(TableRow, { id: "growing-row", "ui5-growing-row": true, "aria-hidden": true, children: _jsx(TableCell, { id: "growing-cell", children: _jsx("slot", { name: this._getGrowing()?._individualSlot }) }) }));
17
17
  }
18
18
  //# sourceMappingURL=TableTemplate.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"TableTemplate.js","sourceRoot":"","sources":["../src/TableTemplate.tsx"],"names":[],"mappings":";AACA,OAAO,QAAQ,MAAM,eAAe,CAAC;AACrC,OAAO,SAAS,MAAM,gBAAgB,CAAC;AACvC,OAAO,aAAa,MAAM,oBAAoB,CAAC;AAC/C,OAAO,aAAa,MAAM,oBAAoB,CAAC;AAE/C,MAAM,CAAC,OAAO,UAAU,aAAa;IACpC,OAAO,CACN,8BACC,cAAK,EAAE,EAAC,QAAQ,EAAC,IAAI,EAAC,MAAM,EAAC,QAAQ,EAAE,CAAC,uCAAmC,EAE3E,eAAK,EAAE,EAAC,OAAO,EAAC,IAAI,EAAC,MAAM,EAC1B,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,gBACZ,IAAI,CAAC,UAAU,mBACZ,IAAI,CAAC,aAAa,0BACX,IAAI,CAAC,oBAAoB,aAE/C,eAAM,IAAI,EAAC,WAAW,GAAQ,EAE9B,cAAK,EAAE,EAAC,MAAM,YACb,cAAK,EAAE,EAAC,QAAQ,EAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,YACzC,gBAAa,GACR,GACD,EAEJ,IAAI,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC;wBACvB,KAAC,QAAQ,IAAC,EAAE,EAAC,aAAa,YACzB,KAAC,SAAS,IAAC,EAAE,EAAC,cAAc,6DAAgD,QAAQ,YACjF,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;oCACzB,eAAM,IAAI,EAAC,QAAQ,GAAQ;oCAC3B,CAAC;wCACD,IAAI,CAAC,oBAAoB,GAEf,GACF,EAGV,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,WAAW,EAAE,EAAE,mBAAmB,EAAE;wBAClE,cAAK,EAAE,EAAC,QAAQ,EAAC,IAAI,EAAC,UAAU,YAC7B,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAClB,EAGP,KAAC,aAAa,IACb,WAAW,EAAC,YAAY,EACxB,cAAc,EAAE,IAAI,GACJ,EAEjB,6BAAiB,MAAM,EAAC,EAAE,EAAC,eAAe,YACzC,cAAK,EAAE,EAAC,gBAAgB,YACvB,cAAK,EAAE,EAAC,WAAW,iBAAa,MAAM,EAAC,QAAQ,EAAE,CAAC,CAAC,GAAQ,GACtD,GACD,EAEJ,IAAI,CAAC,OAAO;wBACb,KAAC,aAAa,IAAC,EAAE,EAAC,SAAS,EAC1B,KAAK,EAAE,IAAI,CAAC,YAAY,EACxB,MAAM,EAAE,IAAI,+BAEI,IAEb,EAEN,cAAK,EAAE,EAAC,OAAO,EAAC,IAAI,EAAC,MAAM,EAAC,QAAQ,EAAE,CAAC,uCAAmC,IACxE,CACH,CAAC;AACH,CAAC;AAED,SAAS,UAAU;IAClB,OAAO,CACN,KAAC,QAAQ,IAAC,EAAE,EAAC,aAAa,qCACzB,KAAC,SAAS,IAAC,EAAE,EAAC,cAAc,YAC3B,eAAM,IAAI,EAAE,IAAI,CAAC,WAAW,EAAE,EAAE,eAAe,GAAS,GAC7C,GACF,CACX,CAAC;AACH,CAAC","sourcesContent":["import type Table from \"./Table.js\";\nimport TableRow from \"./TableRow.js\";\nimport TableCell from \"./TableCell.js\";\nimport DropIndicator from \"./DropIndicator.js\";\nimport BusyIndicator from \"./BusyIndicator.js\";\n\nexport default function TableTemplate(this: Table) {\n\treturn (\n\t\t<>\n\t\t\t<div id=\"before\" role=\"none\" tabindex={0} ui5-table-dummy-focus-area></div>\n\n\t\t\t<div id=\"table\" role=\"grid\"\n\t\t\t\tstyle={this.styles.table}\n\t\t\t\taria-label={this._ariaLabel}\n\t\t\t\taria-rowcount={this._ariaRowCount}\n\t\t\t\taria-multiselectable={this._ariaMultiSelectable}\n\t\t\t>\n\t\t\t\t<slot name=\"headerRow\"></slot>\n\n\t\t\t\t<div id=\"rows\">\n\t\t\t\t\t<div id=\"spacer\" style={this.styles.spacer}>\n\t\t\t\t\t\t<slot></slot>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\n\t\t\t\t{ this.rows.length === 0 &&\n\t\t\t\t\t<TableRow id=\"no-data-row\">\n\t\t\t\t\t\t<TableCell id=\"no-data-cell\" data-excluded-from-navigation horizontal-align=\"Center\">\n\t\t\t\t\t\t\t{ this.noData.length > 0 ?\n\t\t\t\t\t\t\t\t<slot name=\"noData\"></slot>\n\t\t\t\t\t\t\t\t:\n\t\t\t\t\t\t\t\tthis._effectiveNoDataText\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t</TableCell>\n\t\t\t\t\t</TableRow>\n\t\t\t\t}\n\n\t\t\t\t{ this.rows.length > 0 && this._getGrowing()?.hasGrowingComponent() &&\n\t\t\t\t\t<div id=\"footer\" role=\"rowgroup\">\n\t\t\t\t\t\t{ growingRow.call(this) }\n\t\t\t\t\t</div>\n\t\t\t\t}\n\n\t\t\t\t<DropIndicator\n\t\t\t\t\torientation=\"Horizontal\"\n\t\t\t\t\townerReference={this}\n\t\t\t\t></DropIndicator>\n\n\t\t\t\t<div aria-hidden=\"true\" id=\"table-end-row\">\n\t\t\t\t\t<div id=\"table-end-cell\">\n\t\t\t\t\t\t<div id=\"table-end\" aria-hidden=\"true\" tabindex={-1}></div>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\n\t\t\t\t{ this.loading &&\n\t\t\t\t\t<BusyIndicator id=\"loading\"\n\t\t\t\t\t\tdelay={this.loadingDelay}\n\t\t\t\t\t\tactive={true}\n\t\t\t\t\t\tdata-sap-focus-ref\n\t\t\t\t\t></BusyIndicator>\n\t\t\t\t}\n\t\t\t</div>\n\n\t\t\t<div id=\"after\" role=\"none\" tabindex={0} ui5-table-dummy-focus-area></div>\n\t\t</>\n\t);\n}\n\nfunction growingRow(this: Table) {\n\treturn (\n\t\t<TableRow id=\"growing-row\" ui5-growing-row>\n\t\t\t<TableCell id=\"growing-cell\">\n\t\t\t\t<slot name={this._getGrowing()?._individualSlot}></slot>\n\t\t\t</TableCell>\n\t\t</TableRow>\n\t);\n}\n"]}
1
+ {"version":3,"file":"TableTemplate.js","sourceRoot":"","sources":["../src/TableTemplate.tsx"],"names":[],"mappings":";AACA,OAAO,QAAQ,MAAM,eAAe,CAAC;AACrC,OAAO,SAAS,MAAM,gBAAgB,CAAC;AACvC,OAAO,aAAa,MAAM,oBAAoB,CAAC;AAC/C,OAAO,aAAa,MAAM,oBAAoB,CAAC;AAE/C,MAAM,CAAC,OAAO,UAAU,aAAa;IACpC,OAAO,CACN,8BACC,cAAK,EAAE,EAAC,QAAQ,EAAC,IAAI,EAAC,MAAM,EAAC,QAAQ,EAAE,CAAC,uCAAmC,EAE3E,eAAK,EAAE,EAAC,OAAO,EAAC,IAAI,EAAC,MAAM,EAC1B,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,gBACZ,IAAI,CAAC,UAAU,sBACT,IAAI,CAAC,gBAAgB,mBACxB,IAAI,CAAC,aAAa,mBAClB,IAAI,CAAC,aAAa,0BACX,IAAI,CAAC,oBAAoB,aAE/C,eAAM,IAAI,EAAC,WAAW,GAAQ,EAE9B,cAAK,EAAE,EAAC,MAAM,YACb,cAAK,EAAE,EAAC,QAAQ,EAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,YACzC,gBAAa,GACR,GACD,EAEJ,IAAI,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC;wBACvB,KAAC,QAAQ,IAAC,EAAE,EAAC,aAAa,YACzB,KAAC,SAAS,IAAC,EAAE,EAAC,cAAc,6DAAgD,QAAQ,YACjF,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;oCACzB,eAAM,IAAI,EAAC,QAAQ,GAAQ;oCAC3B,CAAC;wCACD,IAAI,CAAC,oBAAoB,GAEf,GACF,EAGV,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,WAAW,EAAE,EAAE,mBAAmB,EAAE;wBAClE,cAAK,EAAE,EAAC,QAAQ,EAAC,IAAI,EAAC,UAAU,YAC7B,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAClB,EAGP,KAAC,aAAa,IACb,WAAW,EAAC,YAAY,EACxB,cAAc,EAAE,IAAI,GACJ,EAEjB,6BAAiB,MAAM,EAAC,EAAE,EAAC,eAAe,YACzC,cAAK,EAAE,EAAC,gBAAgB,YACvB,cAAK,EAAE,EAAC,WAAW,iBAAa,MAAM,EAAC,QAAQ,EAAE,CAAC,CAAC,GAAQ,GACtD,GACD,EAEJ,IAAI,CAAC,OAAO;wBACb,KAAC,aAAa,IAAC,EAAE,EAAC,SAAS,EAC1B,KAAK,EAAE,IAAI,CAAC,YAAY,EACxB,MAAM,EAAE,IAAI,+BAEI,IAEb,EAEN,cAAK,EAAE,EAAC,OAAO,EAAC,IAAI,EAAC,MAAM,EAAC,QAAQ,EAAE,CAAC,uCAAmC,IACxE,CACH,CAAC;AACH,CAAC;AAED,SAAS,UAAU;IAClB,OAAO,CACN,KAAC,QAAQ,IAAC,EAAE,EAAC,aAAa,0CAA8B,IAAI,YAC3D,KAAC,SAAS,IAAC,EAAE,EAAC,cAAc,YAC3B,eAAM,IAAI,EAAE,IAAI,CAAC,WAAW,EAAE,EAAE,eAAe,GAAS,GAC7C,GACF,CACX,CAAC;AACH,CAAC","sourcesContent":["import type Table from \"./Table.js\";\nimport TableRow from \"./TableRow.js\";\nimport TableCell from \"./TableCell.js\";\nimport DropIndicator from \"./DropIndicator.js\";\nimport BusyIndicator from \"./BusyIndicator.js\";\n\nexport default function TableTemplate(this: Table) {\n\treturn (\n\t\t<>\n\t\t\t<div id=\"before\" role=\"none\" tabindex={0} ui5-table-dummy-focus-area></div>\n\n\t\t\t<div id=\"table\" role=\"grid\"\n\t\t\t\tstyle={this.styles.table}\n\t\t\t\taria-label={this._ariaLabel}\n\t\t\t\taria-description={this._ariaDescription}\n\t\t\t\taria-rowcount={this._ariaRowCount}\n\t\t\t\taria-colcount={this._ariaColCount}\n\t\t\t\taria-multiselectable={this._ariaMultiSelectable}\n\t\t\t>\n\t\t\t\t<slot name=\"headerRow\"></slot>\n\n\t\t\t\t<div id=\"rows\">\n\t\t\t\t\t<div id=\"spacer\" style={this.styles.spacer}>\n\t\t\t\t\t\t<slot></slot>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\n\t\t\t\t{ this.rows.length === 0 &&\n\t\t\t\t\t<TableRow id=\"no-data-row\">\n\t\t\t\t\t\t<TableCell id=\"no-data-cell\" data-excluded-from-navigation horizontal-align=\"Center\">\n\t\t\t\t\t\t\t{ this.noData.length > 0 ?\n\t\t\t\t\t\t\t\t<slot name=\"noData\"></slot>\n\t\t\t\t\t\t\t\t:\n\t\t\t\t\t\t\t\tthis._effectiveNoDataText\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t</TableCell>\n\t\t\t\t\t</TableRow>\n\t\t\t\t}\n\n\t\t\t\t{ this.rows.length > 0 && this._getGrowing()?.hasGrowingComponent() &&\n\t\t\t\t\t<div id=\"footer\" role=\"rowgroup\">\n\t\t\t\t\t\t{ growingRow.call(this) }\n\t\t\t\t\t</div>\n\t\t\t\t}\n\n\t\t\t\t<DropIndicator\n\t\t\t\t\torientation=\"Horizontal\"\n\t\t\t\t\townerReference={this}\n\t\t\t\t></DropIndicator>\n\n\t\t\t\t<div aria-hidden=\"true\" id=\"table-end-row\">\n\t\t\t\t\t<div id=\"table-end-cell\">\n\t\t\t\t\t\t<div id=\"table-end\" aria-hidden=\"true\" tabindex={-1}></div>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\n\t\t\t\t{ this.loading &&\n\t\t\t\t\t<BusyIndicator id=\"loading\"\n\t\t\t\t\t\tdelay={this.loadingDelay}\n\t\t\t\t\t\tactive={true}\n\t\t\t\t\t\tdata-sap-focus-ref\n\t\t\t\t\t></BusyIndicator>\n\t\t\t\t}\n\t\t\t</div>\n\n\t\t\t<div id=\"after\" role=\"none\" tabindex={0} ui5-table-dummy-focus-area></div>\n\t\t</>\n\t);\n}\n\nfunction growingRow(this: Table) {\n\treturn (\n\t\t<TableRow id=\"growing-row\" ui5-growing-row aria-hidden={true}>\n\t\t\t<TableCell id=\"growing-cell\">\n\t\t\t\t<slot name={this._getGrowing()?._individualSlot}></slot>\n\t\t\t</TableCell>\n\t\t</TableRow>\n\t);\n}\n"]}
@@ -139,7 +139,7 @@ declare class Tokenizer extends UI5Element {
139
139
  * @private
140
140
  * @default undefined
141
141
  */
142
- opener?: HTMLElement;
142
+ opener?: HTMLElement | string | null;
143
143
  /**
144
144
  * Sets the min-width of the nMore Popover.
145
145
  * **Note:** Used inside MultiInput and MultiComboBox components.
@@ -249,7 +249,7 @@ declare class Tokenizer extends UI5Element {
249
249
  _scrollToToken(token: IToken): void;
250
250
  _getList(): List;
251
251
  get _tokens(): Token[];
252
- get morePopoverOpener(): HTMLElement;
252
+ get morePopoverOpener(): HTMLElement | string | null;
253
253
  get _nMoreText(): string | undefined;
254
254
  get _clearAllText(): string;
255
255
  get showNMore(): boolean;