@ui5/webcomponents 2.15.0-rc.3 → 2.16.0-rc.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 (534) hide show
  1. package/CHANGELOG.md +32 -0
  2. package/dist/.tsbuildinfo +1 -1
  3. package/dist/ComboBox.js +6 -1
  4. package/dist/ComboBox.js.map +1 -1
  5. package/dist/DatePicker.d.ts +1 -0
  6. package/dist/DatePicker.js +8 -2
  7. package/dist/DatePicker.js.map +1 -1
  8. package/dist/DateRangePicker.js +7 -1
  9. package/dist/DateRangePicker.js.map +1 -1
  10. package/dist/DateTimePicker.js +1 -1
  11. package/dist/DateTimePicker.js.map +1 -1
  12. package/dist/Select.d.ts +20 -1
  13. package/dist/Select.js +62 -1
  14. package/dist/Select.js.map +1 -1
  15. package/dist/SelectTemplate.js +1 -1
  16. package/dist/SelectTemplate.js.map +1 -1
  17. package/dist/Table.d.ts +2 -0
  18. package/dist/Table.js +6 -1
  19. package/dist/Table.js.map +1 -1
  20. package/dist/TableCell.d.ts +4 -2
  21. package/dist/TableCell.js +9 -2
  22. package/dist/TableCell.js.map +1 -1
  23. package/dist/TableCellTemplate.js +4 -2
  24. package/dist/TableCellTemplate.js.map +1 -1
  25. package/dist/TableCustomAnnouncement.d.ts +23 -0
  26. package/dist/TableCustomAnnouncement.js +189 -0
  27. package/dist/TableCustomAnnouncement.js.map +1 -0
  28. package/dist/TableHeaderCell.d.ts +5 -0
  29. package/dist/TableHeaderCell.js +12 -0
  30. package/dist/TableHeaderCell.js.map +1 -1
  31. package/dist/TableHeaderCellActionBase.d.ts +3 -0
  32. package/dist/TableHeaderCellActionBase.js +6 -0
  33. package/dist/TableHeaderCellActionBase.js.map +1 -1
  34. package/dist/TableHeaderRowTemplate.js +9 -5
  35. package/dist/TableHeaderRowTemplate.js.map +1 -1
  36. package/dist/TableNavigation.js +0 -1
  37. package/dist/TableNavigation.js.map +1 -1
  38. package/dist/TableRow.d.ts +7 -3
  39. package/dist/TableRow.js +33 -6
  40. package/dist/TableRow.js.map +1 -1
  41. package/dist/TableRowTemplate.d.ts +1 -1
  42. package/dist/TableRowTemplate.js +14 -6
  43. package/dist/TableRowTemplate.js.map +1 -1
  44. package/dist/TableSelection.js +3 -3
  45. package/dist/TableSelection.js.map +1 -1
  46. package/dist/TableSelectionBase.d.ts +2 -0
  47. package/dist/TableSelectionBase.js +7 -0
  48. package/dist/TableSelectionBase.js.map +1 -1
  49. package/dist/TableSelectionMulti.d.ts +0 -1
  50. package/dist/TableSelectionMulti.js +7 -11
  51. package/dist/TableSelectionMulti.js.map +1 -1
  52. package/dist/TableUtils.d.ts +3 -3
  53. package/dist/TableUtils.js +5 -5
  54. package/dist/TableUtils.js.map +1 -1
  55. package/dist/Tokenizer.d.ts +1 -1
  56. package/dist/Tokenizer.js +1 -1
  57. package/dist/Tokenizer.js.map +1 -1
  58. package/dist/css/themes/Avatar.css +1 -1
  59. package/dist/css/themes/AvatarGroup.css +1 -1
  60. package/dist/css/themes/Bar.css +1 -1
  61. package/dist/css/themes/Breadcrumbs.css +1 -1
  62. package/dist/css/themes/BusyIndicator.css +1 -1
  63. package/dist/css/themes/Button.css +1 -1
  64. package/dist/css/themes/ButtonBadge.css +1 -1
  65. package/dist/css/themes/Calendar.css +1 -1
  66. package/dist/css/themes/CalendarHeader.css +1 -1
  67. package/dist/css/themes/CalendarLegend.css +1 -1
  68. package/dist/css/themes/CalendarLegendItem.css +1 -1
  69. package/dist/css/themes/Card.css +1 -1
  70. package/dist/css/themes/CardHeader.css +1 -1
  71. package/dist/css/themes/Carousel.css +1 -1
  72. package/dist/css/themes/CheckBox.css +1 -1
  73. package/dist/css/themes/ColorPalette.css +1 -1
  74. package/dist/css/themes/ColorPaletteItem.css +1 -1
  75. package/dist/css/themes/ColorPalettePopover.css +1 -1
  76. package/dist/css/themes/ColorPicker.css +1 -1
  77. package/dist/css/themes/ComboBox.css +1 -1
  78. package/dist/css/themes/ComboBoxItem.css +1 -1
  79. package/dist/css/themes/DatePicker.css +1 -1
  80. package/dist/css/themes/DatePickerPopover.css +1 -1
  81. package/dist/css/themes/DateTimePickerPopover.css +1 -1
  82. package/dist/css/themes/DayPicker.css +1 -1
  83. package/dist/css/themes/Dialog.css +1 -1
  84. package/dist/css/themes/DynamicDateRange.css +1 -1
  85. package/dist/css/themes/DynamicDateRangePopover.css +1 -1
  86. package/dist/css/themes/FileUploader.css +1 -1
  87. package/dist/css/themes/Form.css +1 -1
  88. package/dist/css/themes/FormItem.css +1 -1
  89. package/dist/css/themes/FormItemSpan.css +1 -1
  90. package/dist/css/themes/GrowingButton.css +1 -1
  91. package/dist/css/themes/Icon.css +1 -1
  92. package/dist/css/themes/Input.css +1 -1
  93. package/dist/css/themes/InputIcon.css +1 -1
  94. package/dist/css/themes/InputSharedStyles.css +1 -1
  95. package/dist/css/themes/Link.css +1 -1
  96. package/dist/css/themes/List.css +1 -1
  97. package/dist/css/themes/ListItem.css +1 -1
  98. package/dist/css/themes/ListItemBase.css +1 -1
  99. package/dist/css/themes/ListItemCustom.css +1 -1
  100. package/dist/css/themes/ListItemGroup.css +1 -1
  101. package/dist/css/themes/ListItemGroupHeader.css +1 -1
  102. package/dist/css/themes/ListItemIcon.css +1 -1
  103. package/dist/css/themes/Menu.css +1 -1
  104. package/dist/css/themes/MenuItem.css +1 -1
  105. package/dist/css/themes/MessageStrip.css +1 -1
  106. package/dist/css/themes/MonthPicker.css +1 -1
  107. package/dist/css/themes/MultiComboBox.css +1 -1
  108. package/dist/css/themes/MultiComboBoxItem.css +1 -1
  109. package/dist/css/themes/MultiComboBoxPopover.css +1 -1
  110. package/dist/css/themes/MultiInput.css +1 -1
  111. package/dist/css/themes/OptionBase.css +1 -1
  112. package/dist/css/themes/Panel.css +1 -1
  113. package/dist/css/themes/Popover.css +1 -1
  114. package/dist/css/themes/PopupsCommon.css +1 -1
  115. package/dist/css/themes/ProgressIndicator.css +1 -1
  116. package/dist/css/themes/RadioButton.css +1 -1
  117. package/dist/css/themes/RangeSlider.css +1 -1
  118. package/dist/css/themes/RatingIndicator.css +1 -1
  119. package/dist/css/themes/ResponsivePopover.css +1 -1
  120. package/dist/css/themes/ResponsivePopoverCommon.css +1 -1
  121. package/dist/css/themes/SegmentedButton.css +1 -1
  122. package/dist/css/themes/SegmentedButtonItem.css +1 -1
  123. package/dist/css/themes/Select.css +1 -1
  124. package/dist/css/themes/SliderBase.css +1 -1
  125. package/dist/css/themes/SliderTooltip.css +1 -1
  126. package/dist/css/themes/SplitButton.css +1 -1
  127. package/dist/css/themes/StepInput.css +1 -1
  128. package/dist/css/themes/SuggestionItem.css +1 -1
  129. package/dist/css/themes/SuggestionItemCustom.css +1 -1
  130. package/dist/css/themes/Switch.css +1 -1
  131. package/dist/css/themes/TabContainer.css +1 -1
  132. package/dist/css/themes/TabInOverflow.css +1 -1
  133. package/dist/css/themes/TabInStrip.css +1 -1
  134. package/dist/css/themes/TabSemanticIcon.css +1 -1
  135. package/dist/css/themes/TabSeparatorInOverflow.css +1 -1
  136. package/dist/css/themes/TableCell.css +1 -1
  137. package/dist/css/themes/TableCellBase.css +1 -1
  138. package/dist/css/themes/TableHeaderRow.css +1 -1
  139. package/dist/css/themes/TableRow.css +1 -1
  140. package/dist/css/themes/TableRowActionBase.css +1 -1
  141. package/dist/css/themes/TableRowBase.css +1 -1
  142. package/dist/css/themes/Tag.css +1 -1
  143. package/dist/css/themes/Text.css +1 -1
  144. package/dist/css/themes/TextArea.css +1 -1
  145. package/dist/css/themes/TimePicker.css +1 -1
  146. package/dist/css/themes/Toast.css +1 -1
  147. package/dist/css/themes/ToggleButton.css +1 -1
  148. package/dist/css/themes/Token.css +1 -1
  149. package/dist/css/themes/Tokenizer.css +1 -1
  150. package/dist/css/themes/TokenizerPopover.css +1 -1
  151. package/dist/css/themes/Toolbar.css +1 -1
  152. package/dist/css/themes/ToolbarButton.css +1 -1
  153. package/dist/css/themes/ToolbarPopover.css +1 -1
  154. package/dist/css/themes/ToolbarSeparator.css +1 -1
  155. package/dist/css/themes/TreeItem.css +1 -1
  156. package/dist/css/themes/ValueStateMessage.css +1 -1
  157. package/dist/css/themes/ValueStateVariables.css +1 -1
  158. package/dist/css/themes/YearPicker.css +1 -1
  159. package/dist/css/themes/YearRangePicker.css +1 -1
  160. package/dist/css/themes/sap_fiori_3/parameters-bundle.css +1 -1
  161. package/dist/css/themes/sap_fiori_3_dark/parameters-bundle.css +1 -1
  162. package/dist/css/themes/sap_fiori_3_hcb/parameters-bundle.css +1 -1
  163. package/dist/css/themes/sap_fiori_3_hcw/parameters-bundle.css +1 -1
  164. package/dist/css/themes/sap_horizon/parameters-bundle.css +1 -1
  165. package/dist/css/themes/sap_horizon_dark/parameters-bundle.css +1 -1
  166. package/dist/css/themes/sap_horizon_hcb/parameters-bundle.css +1 -1
  167. package/dist/css/themes/sap_horizon_hcw/parameters-bundle.css +1 -1
  168. package/dist/custom-elements-internal.json +93 -1
  169. package/dist/custom-elements.json +56 -0
  170. package/dist/generated/assets/i18n/messagebundle_en.json +1 -1
  171. package/dist/generated/assets/i18n/messagebundle_fr.json +1 -1
  172. package/dist/generated/assets/themes/sap_fiori_3/parameters-bundle.css.json +1 -1
  173. package/dist/generated/assets/themes/sap_fiori_3_dark/parameters-bundle.css.json +1 -1
  174. package/dist/generated/assets/themes/sap_fiori_3_hcb/parameters-bundle.css.json +1 -1
  175. package/dist/generated/assets/themes/sap_fiori_3_hcw/parameters-bundle.css.json +1 -1
  176. package/dist/generated/assets/themes/sap_horizon/parameters-bundle.css.json +1 -1
  177. package/dist/generated/assets/themes/sap_horizon_dark/parameters-bundle.css.json +1 -1
  178. package/dist/generated/assets/themes/sap_horizon_hcb/parameters-bundle.css.json +1 -1
  179. package/dist/generated/assets/themes/sap_horizon_hcw/parameters-bundle.css.json +1 -1
  180. package/dist/generated/i18n/i18n-defaults.d.ts +15 -3
  181. package/dist/generated/i18n/i18n-defaults.js +16 -4
  182. package/dist/generated/i18n/i18n-defaults.js.map +1 -1
  183. package/dist/generated/themes/Avatar.css.d.ts +1 -1
  184. package/dist/generated/themes/Avatar.css.js +1 -1
  185. package/dist/generated/themes/Avatar.css.js.map +1 -1
  186. package/dist/generated/themes/AvatarGroup.css.d.ts +1 -1
  187. package/dist/generated/themes/AvatarGroup.css.js +1 -1
  188. package/dist/generated/themes/AvatarGroup.css.js.map +1 -1
  189. package/dist/generated/themes/Bar.css.d.ts +1 -1
  190. package/dist/generated/themes/Bar.css.js +1 -1
  191. package/dist/generated/themes/Bar.css.js.map +1 -1
  192. package/dist/generated/themes/Breadcrumbs.css.d.ts +1 -1
  193. package/dist/generated/themes/Breadcrumbs.css.js +1 -1
  194. package/dist/generated/themes/Breadcrumbs.css.js.map +1 -1
  195. package/dist/generated/themes/BusyIndicator.css.d.ts +1 -1
  196. package/dist/generated/themes/BusyIndicator.css.js +1 -1
  197. package/dist/generated/themes/BusyIndicator.css.js.map +1 -1
  198. package/dist/generated/themes/Button.css.d.ts +1 -1
  199. package/dist/generated/themes/Button.css.js +1 -1
  200. package/dist/generated/themes/Button.css.js.map +1 -1
  201. package/dist/generated/themes/ButtonBadge.css.d.ts +1 -1
  202. package/dist/generated/themes/ButtonBadge.css.js +1 -1
  203. package/dist/generated/themes/ButtonBadge.css.js.map +1 -1
  204. package/dist/generated/themes/Calendar.css.d.ts +1 -1
  205. package/dist/generated/themes/Calendar.css.js +1 -1
  206. package/dist/generated/themes/Calendar.css.js.map +1 -1
  207. package/dist/generated/themes/CalendarHeader.css.d.ts +1 -1
  208. package/dist/generated/themes/CalendarHeader.css.js +1 -1
  209. package/dist/generated/themes/CalendarHeader.css.js.map +1 -1
  210. package/dist/generated/themes/CalendarLegend.css.d.ts +1 -1
  211. package/dist/generated/themes/CalendarLegend.css.js +1 -1
  212. package/dist/generated/themes/CalendarLegend.css.js.map +1 -1
  213. package/dist/generated/themes/CalendarLegendItem.css.d.ts +1 -1
  214. package/dist/generated/themes/CalendarLegendItem.css.js +1 -1
  215. package/dist/generated/themes/CalendarLegendItem.css.js.map +1 -1
  216. package/dist/generated/themes/Card.css.d.ts +1 -1
  217. package/dist/generated/themes/Card.css.js +1 -1
  218. package/dist/generated/themes/Card.css.js.map +1 -1
  219. package/dist/generated/themes/CardHeader.css.d.ts +1 -1
  220. package/dist/generated/themes/CardHeader.css.js +1 -1
  221. package/dist/generated/themes/CardHeader.css.js.map +1 -1
  222. package/dist/generated/themes/Carousel.css.d.ts +1 -1
  223. package/dist/generated/themes/Carousel.css.js +1 -1
  224. package/dist/generated/themes/Carousel.css.js.map +1 -1
  225. package/dist/generated/themes/CheckBox.css.d.ts +1 -1
  226. package/dist/generated/themes/CheckBox.css.js +1 -1
  227. package/dist/generated/themes/CheckBox.css.js.map +1 -1
  228. package/dist/generated/themes/ColorPalette.css.d.ts +1 -1
  229. package/dist/generated/themes/ColorPalette.css.js +1 -1
  230. package/dist/generated/themes/ColorPalette.css.js.map +1 -1
  231. package/dist/generated/themes/ColorPaletteItem.css.d.ts +1 -1
  232. package/dist/generated/themes/ColorPaletteItem.css.js +1 -1
  233. package/dist/generated/themes/ColorPaletteItem.css.js.map +1 -1
  234. package/dist/generated/themes/ColorPalettePopover.css.d.ts +1 -1
  235. package/dist/generated/themes/ColorPalettePopover.css.js +1 -1
  236. package/dist/generated/themes/ColorPalettePopover.css.js.map +1 -1
  237. package/dist/generated/themes/ColorPicker.css.d.ts +1 -1
  238. package/dist/generated/themes/ColorPicker.css.js +1 -1
  239. package/dist/generated/themes/ColorPicker.css.js.map +1 -1
  240. package/dist/generated/themes/ComboBox.css.d.ts +1 -1
  241. package/dist/generated/themes/ComboBox.css.js +1 -1
  242. package/dist/generated/themes/ComboBox.css.js.map +1 -1
  243. package/dist/generated/themes/ComboBoxItem.css.d.ts +1 -1
  244. package/dist/generated/themes/ComboBoxItem.css.js +1 -1
  245. package/dist/generated/themes/ComboBoxItem.css.js.map +1 -1
  246. package/dist/generated/themes/DatePicker.css.d.ts +1 -1
  247. package/dist/generated/themes/DatePicker.css.js +1 -1
  248. package/dist/generated/themes/DatePicker.css.js.map +1 -1
  249. package/dist/generated/themes/DatePickerPopover.css.d.ts +1 -1
  250. package/dist/generated/themes/DatePickerPopover.css.js +1 -1
  251. package/dist/generated/themes/DatePickerPopover.css.js.map +1 -1
  252. package/dist/generated/themes/DateTimePickerPopover.css.d.ts +1 -1
  253. package/dist/generated/themes/DateTimePickerPopover.css.js +1 -1
  254. package/dist/generated/themes/DateTimePickerPopover.css.js.map +1 -1
  255. package/dist/generated/themes/DayPicker.css.d.ts +1 -1
  256. package/dist/generated/themes/DayPicker.css.js +1 -1
  257. package/dist/generated/themes/DayPicker.css.js.map +1 -1
  258. package/dist/generated/themes/Dialog.css.d.ts +1 -1
  259. package/dist/generated/themes/Dialog.css.js +1 -1
  260. package/dist/generated/themes/Dialog.css.js.map +1 -1
  261. package/dist/generated/themes/DynamicDateRange.css.d.ts +1 -1
  262. package/dist/generated/themes/DynamicDateRange.css.js +1 -1
  263. package/dist/generated/themes/DynamicDateRange.css.js.map +1 -1
  264. package/dist/generated/themes/DynamicDateRangePopover.css.d.ts +1 -1
  265. package/dist/generated/themes/DynamicDateRangePopover.css.js +1 -1
  266. package/dist/generated/themes/DynamicDateRangePopover.css.js.map +1 -1
  267. package/dist/generated/themes/FileUploader.css.d.ts +1 -1
  268. package/dist/generated/themes/FileUploader.css.js +1 -1
  269. package/dist/generated/themes/FileUploader.css.js.map +1 -1
  270. package/dist/generated/themes/Form.css.d.ts +1 -1
  271. package/dist/generated/themes/Form.css.js +1 -1
  272. package/dist/generated/themes/Form.css.js.map +1 -1
  273. package/dist/generated/themes/FormItem.css.d.ts +1 -1
  274. package/dist/generated/themes/FormItem.css.js +1 -1
  275. package/dist/generated/themes/FormItem.css.js.map +1 -1
  276. package/dist/generated/themes/FormItemSpan.css.d.ts +1 -1
  277. package/dist/generated/themes/FormItemSpan.css.js +1 -1
  278. package/dist/generated/themes/FormItemSpan.css.js.map +1 -1
  279. package/dist/generated/themes/GrowingButton.css.d.ts +1 -1
  280. package/dist/generated/themes/GrowingButton.css.js +1 -1
  281. package/dist/generated/themes/GrowingButton.css.js.map +1 -1
  282. package/dist/generated/themes/Icon.css.d.ts +1 -1
  283. package/dist/generated/themes/Icon.css.js +1 -1
  284. package/dist/generated/themes/Icon.css.js.map +1 -1
  285. package/dist/generated/themes/Input.css.d.ts +1 -1
  286. package/dist/generated/themes/Input.css.js +1 -1
  287. package/dist/generated/themes/Input.css.js.map +1 -1
  288. package/dist/generated/themes/InputIcon.css.d.ts +1 -1
  289. package/dist/generated/themes/InputIcon.css.js +1 -1
  290. package/dist/generated/themes/InputIcon.css.js.map +1 -1
  291. package/dist/generated/themes/InputSharedStyles.css.d.ts +1 -1
  292. package/dist/generated/themes/InputSharedStyles.css.js +1 -1
  293. package/dist/generated/themes/InputSharedStyles.css.js.map +1 -1
  294. package/dist/generated/themes/Link.css.d.ts +1 -1
  295. package/dist/generated/themes/Link.css.js +1 -1
  296. package/dist/generated/themes/Link.css.js.map +1 -1
  297. package/dist/generated/themes/List.css.d.ts +1 -1
  298. package/dist/generated/themes/List.css.js +1 -1
  299. package/dist/generated/themes/List.css.js.map +1 -1
  300. package/dist/generated/themes/ListItem.css.d.ts +1 -1
  301. package/dist/generated/themes/ListItem.css.js +1 -1
  302. package/dist/generated/themes/ListItem.css.js.map +1 -1
  303. package/dist/generated/themes/ListItemBase.css.d.ts +1 -1
  304. package/dist/generated/themes/ListItemBase.css.js +1 -1
  305. package/dist/generated/themes/ListItemBase.css.js.map +1 -1
  306. package/dist/generated/themes/ListItemCustom.css.d.ts +1 -1
  307. package/dist/generated/themes/ListItemCustom.css.js +1 -1
  308. package/dist/generated/themes/ListItemCustom.css.js.map +1 -1
  309. package/dist/generated/themes/ListItemGroup.css.d.ts +1 -1
  310. package/dist/generated/themes/ListItemGroup.css.js +1 -1
  311. package/dist/generated/themes/ListItemGroup.css.js.map +1 -1
  312. package/dist/generated/themes/ListItemGroupHeader.css.d.ts +1 -1
  313. package/dist/generated/themes/ListItemGroupHeader.css.js +1 -1
  314. package/dist/generated/themes/ListItemGroupHeader.css.js.map +1 -1
  315. package/dist/generated/themes/ListItemIcon.css.d.ts +1 -1
  316. package/dist/generated/themes/ListItemIcon.css.js +1 -1
  317. package/dist/generated/themes/ListItemIcon.css.js.map +1 -1
  318. package/dist/generated/themes/Menu.css.d.ts +1 -1
  319. package/dist/generated/themes/Menu.css.js +1 -1
  320. package/dist/generated/themes/Menu.css.js.map +1 -1
  321. package/dist/generated/themes/MenuItem.css.d.ts +1 -1
  322. package/dist/generated/themes/MenuItem.css.js +1 -1
  323. package/dist/generated/themes/MenuItem.css.js.map +1 -1
  324. package/dist/generated/themes/MessageStrip.css.d.ts +1 -1
  325. package/dist/generated/themes/MessageStrip.css.js +1 -1
  326. package/dist/generated/themes/MessageStrip.css.js.map +1 -1
  327. package/dist/generated/themes/MonthPicker.css.d.ts +1 -1
  328. package/dist/generated/themes/MonthPicker.css.js +1 -1
  329. package/dist/generated/themes/MonthPicker.css.js.map +1 -1
  330. package/dist/generated/themes/MultiComboBox.css.d.ts +1 -1
  331. package/dist/generated/themes/MultiComboBox.css.js +1 -1
  332. package/dist/generated/themes/MultiComboBox.css.js.map +1 -1
  333. package/dist/generated/themes/MultiComboBoxItem.css.d.ts +1 -1
  334. package/dist/generated/themes/MultiComboBoxItem.css.js +1 -1
  335. package/dist/generated/themes/MultiComboBoxItem.css.js.map +1 -1
  336. package/dist/generated/themes/MultiComboBoxPopover.css.d.ts +1 -1
  337. package/dist/generated/themes/MultiComboBoxPopover.css.js +1 -1
  338. package/dist/generated/themes/MultiComboBoxPopover.css.js.map +1 -1
  339. package/dist/generated/themes/MultiInput.css.d.ts +1 -1
  340. package/dist/generated/themes/MultiInput.css.js +1 -1
  341. package/dist/generated/themes/MultiInput.css.js.map +1 -1
  342. package/dist/generated/themes/OptionBase.css.d.ts +1 -1
  343. package/dist/generated/themes/OptionBase.css.js +1 -1
  344. package/dist/generated/themes/OptionBase.css.js.map +1 -1
  345. package/dist/generated/themes/Panel.css.d.ts +1 -1
  346. package/dist/generated/themes/Panel.css.js +1 -1
  347. package/dist/generated/themes/Panel.css.js.map +1 -1
  348. package/dist/generated/themes/Popover.css.d.ts +1 -1
  349. package/dist/generated/themes/Popover.css.js +1 -1
  350. package/dist/generated/themes/Popover.css.js.map +1 -1
  351. package/dist/generated/themes/PopupsCommon.css.d.ts +1 -1
  352. package/dist/generated/themes/PopupsCommon.css.js +1 -1
  353. package/dist/generated/themes/PopupsCommon.css.js.map +1 -1
  354. package/dist/generated/themes/ProgressIndicator.css.d.ts +1 -1
  355. package/dist/generated/themes/ProgressIndicator.css.js +1 -1
  356. package/dist/generated/themes/ProgressIndicator.css.js.map +1 -1
  357. package/dist/generated/themes/RadioButton.css.d.ts +1 -1
  358. package/dist/generated/themes/RadioButton.css.js +1 -1
  359. package/dist/generated/themes/RadioButton.css.js.map +1 -1
  360. package/dist/generated/themes/RangeSlider.css.d.ts +1 -1
  361. package/dist/generated/themes/RangeSlider.css.js +1 -1
  362. package/dist/generated/themes/RangeSlider.css.js.map +1 -1
  363. package/dist/generated/themes/RatingIndicator.css.d.ts +1 -1
  364. package/dist/generated/themes/RatingIndicator.css.js +1 -1
  365. package/dist/generated/themes/RatingIndicator.css.js.map +1 -1
  366. package/dist/generated/themes/ResponsivePopover.css.d.ts +1 -1
  367. package/dist/generated/themes/ResponsivePopover.css.js +1 -1
  368. package/dist/generated/themes/ResponsivePopover.css.js.map +1 -1
  369. package/dist/generated/themes/ResponsivePopoverCommon.css.d.ts +1 -1
  370. package/dist/generated/themes/ResponsivePopoverCommon.css.js +1 -1
  371. package/dist/generated/themes/ResponsivePopoverCommon.css.js.map +1 -1
  372. package/dist/generated/themes/SegmentedButton.css.d.ts +1 -1
  373. package/dist/generated/themes/SegmentedButton.css.js +1 -1
  374. package/dist/generated/themes/SegmentedButton.css.js.map +1 -1
  375. package/dist/generated/themes/SegmentedButtonItem.css.d.ts +1 -1
  376. package/dist/generated/themes/SegmentedButtonItem.css.js +1 -1
  377. package/dist/generated/themes/SegmentedButtonItem.css.js.map +1 -1
  378. package/dist/generated/themes/Select.css.d.ts +1 -1
  379. package/dist/generated/themes/Select.css.js +1 -1
  380. package/dist/generated/themes/Select.css.js.map +1 -1
  381. package/dist/generated/themes/SliderBase.css.d.ts +1 -1
  382. package/dist/generated/themes/SliderBase.css.js +1 -1
  383. package/dist/generated/themes/SliderBase.css.js.map +1 -1
  384. package/dist/generated/themes/SliderTooltip.css.d.ts +1 -1
  385. package/dist/generated/themes/SliderTooltip.css.js +1 -1
  386. package/dist/generated/themes/SliderTooltip.css.js.map +1 -1
  387. package/dist/generated/themes/SplitButton.css.d.ts +1 -1
  388. package/dist/generated/themes/SplitButton.css.js +1 -1
  389. package/dist/generated/themes/SplitButton.css.js.map +1 -1
  390. package/dist/generated/themes/StepInput.css.d.ts +1 -1
  391. package/dist/generated/themes/StepInput.css.js +1 -1
  392. package/dist/generated/themes/StepInput.css.js.map +1 -1
  393. package/dist/generated/themes/SuggestionItem.css.d.ts +1 -1
  394. package/dist/generated/themes/SuggestionItem.css.js +1 -1
  395. package/dist/generated/themes/SuggestionItem.css.js.map +1 -1
  396. package/dist/generated/themes/SuggestionItemCustom.css.d.ts +1 -1
  397. package/dist/generated/themes/SuggestionItemCustom.css.js +1 -1
  398. package/dist/generated/themes/SuggestionItemCustom.css.js.map +1 -1
  399. package/dist/generated/themes/Switch.css.d.ts +1 -1
  400. package/dist/generated/themes/Switch.css.js +1 -1
  401. package/dist/generated/themes/Switch.css.js.map +1 -1
  402. package/dist/generated/themes/TabContainer.css.d.ts +1 -1
  403. package/dist/generated/themes/TabContainer.css.js +1 -1
  404. package/dist/generated/themes/TabContainer.css.js.map +1 -1
  405. package/dist/generated/themes/TabInOverflow.css.d.ts +1 -1
  406. package/dist/generated/themes/TabInOverflow.css.js +1 -1
  407. package/dist/generated/themes/TabInOverflow.css.js.map +1 -1
  408. package/dist/generated/themes/TabInStrip.css.d.ts +1 -1
  409. package/dist/generated/themes/TabInStrip.css.js +1 -1
  410. package/dist/generated/themes/TabInStrip.css.js.map +1 -1
  411. package/dist/generated/themes/TabSemanticIcon.css.d.ts +1 -1
  412. package/dist/generated/themes/TabSemanticIcon.css.js +1 -1
  413. package/dist/generated/themes/TabSemanticIcon.css.js.map +1 -1
  414. package/dist/generated/themes/TabSeparatorInOverflow.css.d.ts +1 -1
  415. package/dist/generated/themes/TabSeparatorInOverflow.css.js +1 -1
  416. package/dist/generated/themes/TabSeparatorInOverflow.css.js.map +1 -1
  417. package/dist/generated/themes/TableCell.css.d.ts +1 -1
  418. package/dist/generated/themes/TableCell.css.js +1 -1
  419. package/dist/generated/themes/TableCell.css.js.map +1 -1
  420. package/dist/generated/themes/TableCellBase.css.d.ts +1 -1
  421. package/dist/generated/themes/TableCellBase.css.js +1 -1
  422. package/dist/generated/themes/TableCellBase.css.js.map +1 -1
  423. package/dist/generated/themes/TableHeaderRow.css.d.ts +1 -1
  424. package/dist/generated/themes/TableHeaderRow.css.js +1 -1
  425. package/dist/generated/themes/TableHeaderRow.css.js.map +1 -1
  426. package/dist/generated/themes/TableRow.css.d.ts +1 -1
  427. package/dist/generated/themes/TableRow.css.js +1 -1
  428. package/dist/generated/themes/TableRow.css.js.map +1 -1
  429. package/dist/generated/themes/TableRowActionBase.css.d.ts +1 -1
  430. package/dist/generated/themes/TableRowActionBase.css.js +1 -1
  431. package/dist/generated/themes/TableRowActionBase.css.js.map +1 -1
  432. package/dist/generated/themes/TableRowBase.css.d.ts +1 -1
  433. package/dist/generated/themes/TableRowBase.css.js +1 -1
  434. package/dist/generated/themes/TableRowBase.css.js.map +1 -1
  435. package/dist/generated/themes/Tag.css.d.ts +1 -1
  436. package/dist/generated/themes/Tag.css.js +1 -1
  437. package/dist/generated/themes/Tag.css.js.map +1 -1
  438. package/dist/generated/themes/Text.css.d.ts +1 -1
  439. package/dist/generated/themes/Text.css.js +1 -1
  440. package/dist/generated/themes/Text.css.js.map +1 -1
  441. package/dist/generated/themes/TextArea.css.d.ts +1 -1
  442. package/dist/generated/themes/TextArea.css.js +1 -1
  443. package/dist/generated/themes/TextArea.css.js.map +1 -1
  444. package/dist/generated/themes/TimePicker.css.d.ts +1 -1
  445. package/dist/generated/themes/TimePicker.css.js +1 -1
  446. package/dist/generated/themes/TimePicker.css.js.map +1 -1
  447. package/dist/generated/themes/Toast.css.d.ts +1 -1
  448. package/dist/generated/themes/Toast.css.js +1 -1
  449. package/dist/generated/themes/Toast.css.js.map +1 -1
  450. package/dist/generated/themes/ToggleButton.css.d.ts +1 -1
  451. package/dist/generated/themes/ToggleButton.css.js +1 -1
  452. package/dist/generated/themes/ToggleButton.css.js.map +1 -1
  453. package/dist/generated/themes/Token.css.d.ts +1 -1
  454. package/dist/generated/themes/Token.css.js +1 -1
  455. package/dist/generated/themes/Token.css.js.map +1 -1
  456. package/dist/generated/themes/Tokenizer.css.d.ts +1 -1
  457. package/dist/generated/themes/Tokenizer.css.js +1 -1
  458. package/dist/generated/themes/Tokenizer.css.js.map +1 -1
  459. package/dist/generated/themes/TokenizerPopover.css.d.ts +1 -1
  460. package/dist/generated/themes/TokenizerPopover.css.js +1 -1
  461. package/dist/generated/themes/TokenizerPopover.css.js.map +1 -1
  462. package/dist/generated/themes/Toolbar.css.d.ts +1 -1
  463. package/dist/generated/themes/Toolbar.css.js +1 -1
  464. package/dist/generated/themes/Toolbar.css.js.map +1 -1
  465. package/dist/generated/themes/ToolbarButton.css.d.ts +1 -1
  466. package/dist/generated/themes/ToolbarButton.css.js +1 -1
  467. package/dist/generated/themes/ToolbarButton.css.js.map +1 -1
  468. package/dist/generated/themes/ToolbarPopover.css.d.ts +1 -1
  469. package/dist/generated/themes/ToolbarPopover.css.js +1 -1
  470. package/dist/generated/themes/ToolbarPopover.css.js.map +1 -1
  471. package/dist/generated/themes/ToolbarSeparator.css.d.ts +1 -1
  472. package/dist/generated/themes/ToolbarSeparator.css.js +1 -1
  473. package/dist/generated/themes/ToolbarSeparator.css.js.map +1 -1
  474. package/dist/generated/themes/TreeItem.css.d.ts +1 -1
  475. package/dist/generated/themes/TreeItem.css.js +1 -1
  476. package/dist/generated/themes/TreeItem.css.js.map +1 -1
  477. package/dist/generated/themes/ValueStateMessage.css.d.ts +1 -1
  478. package/dist/generated/themes/ValueStateMessage.css.js +1 -1
  479. package/dist/generated/themes/ValueStateMessage.css.js.map +1 -1
  480. package/dist/generated/themes/ValueStateVariables.css.d.ts +1 -1
  481. package/dist/generated/themes/ValueStateVariables.css.js +1 -1
  482. package/dist/generated/themes/ValueStateVariables.css.js.map +1 -1
  483. package/dist/generated/themes/YearPicker.css.d.ts +1 -1
  484. package/dist/generated/themes/YearPicker.css.js +1 -1
  485. package/dist/generated/themes/YearPicker.css.js.map +1 -1
  486. package/dist/generated/themes/YearRangePicker.css.d.ts +1 -1
  487. package/dist/generated/themes/YearRangePicker.css.js +1 -1
  488. package/dist/generated/themes/YearRangePicker.css.js.map +1 -1
  489. package/dist/generated/themes/sap_fiori_3/parameters-bundle.css.d.ts +1 -1
  490. package/dist/generated/themes/sap_fiori_3/parameters-bundle.css.js +1 -1
  491. package/dist/generated/themes/sap_fiori_3/parameters-bundle.css.js.map +1 -1
  492. package/dist/generated/themes/sap_fiori_3_dark/parameters-bundle.css.d.ts +1 -1
  493. package/dist/generated/themes/sap_fiori_3_dark/parameters-bundle.css.js +1 -1
  494. package/dist/generated/themes/sap_fiori_3_dark/parameters-bundle.css.js.map +1 -1
  495. package/dist/generated/themes/sap_fiori_3_hcb/parameters-bundle.css.d.ts +1 -1
  496. package/dist/generated/themes/sap_fiori_3_hcb/parameters-bundle.css.js +1 -1
  497. package/dist/generated/themes/sap_fiori_3_hcb/parameters-bundle.css.js.map +1 -1
  498. package/dist/generated/themes/sap_fiori_3_hcw/parameters-bundle.css.d.ts +1 -1
  499. package/dist/generated/themes/sap_fiori_3_hcw/parameters-bundle.css.js +1 -1
  500. package/dist/generated/themes/sap_fiori_3_hcw/parameters-bundle.css.js.map +1 -1
  501. package/dist/generated/themes/sap_horizon/parameters-bundle.css.d.ts +1 -1
  502. package/dist/generated/themes/sap_horizon/parameters-bundle.css.js +1 -1
  503. package/dist/generated/themes/sap_horizon/parameters-bundle.css.js.map +1 -1
  504. package/dist/generated/themes/sap_horizon_dark/parameters-bundle.css.d.ts +1 -1
  505. package/dist/generated/themes/sap_horizon_dark/parameters-bundle.css.js +1 -1
  506. package/dist/generated/themes/sap_horizon_dark/parameters-bundle.css.js.map +1 -1
  507. package/dist/generated/themes/sap_horizon_hcb/parameters-bundle.css.d.ts +1 -1
  508. package/dist/generated/themes/sap_horizon_hcb/parameters-bundle.css.js +1 -1
  509. package/dist/generated/themes/sap_horizon_hcb/parameters-bundle.css.js.map +1 -1
  510. package/dist/generated/themes/sap_horizon_hcw/parameters-bundle.css.d.ts +1 -1
  511. package/dist/generated/themes/sap_horizon_hcw/parameters-bundle.css.js +1 -1
  512. package/dist/generated/themes/sap_horizon_hcw/parameters-bundle.css.js.map +1 -1
  513. package/dist/popup-utils/OpenedPopupsRegistry.js +2 -1
  514. package/dist/popup-utils/OpenedPopupsRegistry.js.map +1 -1
  515. package/dist/types/SelectTwoColumnSeparator.d.ts +22 -0
  516. package/dist/types/SelectTwoColumnSeparator.js +24 -0
  517. package/dist/types/SelectTwoColumnSeparator.js.map +1 -0
  518. package/dist/types/TableGrowingMode.d.ts +0 -1
  519. package/dist/types/TableGrowingMode.js +0 -1
  520. package/dist/types/TableGrowingMode.js.map +1 -1
  521. package/dist/vscode.html-custom-data.json +9 -0
  522. package/dist/web-types.json +14 -1
  523. package/package.json +9 -9
  524. package/src/SelectTemplate.tsx +1 -1
  525. package/src/TableCellTemplate.tsx +6 -4
  526. package/src/TableHeaderRowTemplate.tsx +12 -5
  527. package/src/TableRowTemplate.tsx +28 -13
  528. package/src/i18n/messagebundle.properties +30 -6
  529. package/src/i18n/messagebundle_en.properties +1 -1
  530. package/src/i18n/messagebundle_fr.properties +13 -13
  531. package/src/themes/ListItem.css +4 -4
  532. package/src/themes/SliderTooltip.css +1 -1
  533. package/src/themes/TableCell.css +4 -3
  534. package/src/themes/TableHeaderRow.css +6 -1
@@ -28,6 +28,9 @@ declare abstract class TableHeaderCellActionBase extends UI5Element {
28
28
  };
29
29
  onBeforeRendering(): void;
30
30
  _onClick(e: UI5CustomEvent<Button, "click">): void;
31
+ get accessibilityInfo(): {
32
+ description: string;
33
+ };
31
34
  get _tooltip(): string;
32
35
  get _icon(): string;
33
36
  }
@@ -9,6 +9,7 @@ import { customElement, eventStrict } from "@ui5/webcomponents-base/dist/decorat
9
9
  import jsxRenderer from "@ui5/webcomponents-base/dist/renderer/JsxRenderer.js";
10
10
  import TableHeaderCellActionBaseTemplate from "./TableHeaderCellActionBaseTemplate.js";
11
11
  import TableHeaderCellActionBaseStyles from "./generated/themes/TableHeaderCellActionBase.css.js";
12
+ import getActiveElement from "@ui5/webcomponents-base/dist/util/getActiveElement.js";
12
13
  /**
13
14
  * Fired when a header cell action is clicked.
14
15
  *
@@ -26,6 +27,11 @@ let TableHeaderCellActionBase = class TableHeaderCellActionBase extends UI5Eleme
26
27
  action.fireDecoratorEvent("click", { targetRef: e.target });
27
28
  e.stopPropagation();
28
29
  }
30
+ get accessibilityInfo() {
31
+ return {
32
+ description: getActiveElement()?.hasAttribute("ui5-table-cell-base") ? this._tooltip : "",
33
+ };
34
+ }
29
35
  get _tooltip() {
30
36
  return this.getRenderInfo().tooltip;
31
37
  }
@@ -1 +1 @@
1
- {"version":3,"file":"TableHeaderCellActionBase.js","sourceRoot":"","sources":["../src/TableHeaderCellActionBase.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,UAAU,MAAM,4CAA4C,CAAC;AACpE,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,4CAA4C,CAAC;AACxF,OAAO,WAAW,MAAM,sDAAsD,CAAC;AAE/E,OAAO,iCAAiC,MAAM,wCAAwC,CAAC;AACvF,OAAO,+BAA+B,MAAM,qDAAqD,CAAC;AAelG;;;;;;GAMG;AAmBH,IAAe,yBAAyB,GAAxC,MAAe,yBAA0B,SAAQ,UAAU;IAU1D,iBAAiB;QAChB,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IACrD,CAAC;IAED,QAAQ,CAAC,CAAkC;QAC1C,wHAAwH;QACxH,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,EAAE,YAAY,CAAC,uBAAuB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAG,IAAI,CAAC,WAAW,EAAiB,CAAC,IAAkB,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAS,CAAC;QACvK,MAAM,CAAC,kBAAkB,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC,MAAqB,EAAE,CAAC,CAAC;QAC3E,CAAC,CAAC,eAAe,EAAE,CAAC;IACrB,CAAC;IAED,IAAI,QAAQ;QACX,OAAO,IAAI,CAAC,aAAa,EAAE,CAAC,OAAO,CAAC;IACrC,CAAC;IAED,IAAI,KAAK;QACR,OAAO,IAAI,CAAC,aAAa,EAAE,CAAC,IAAI,CAAC;IAClC,CAAC;CACD,CAAA;AA5Bc,yBAAyB;IAlBvC,WAAW,CAAC,OAAO,EAAE;QACrB,OAAO,EAAE,KAAK;KACd,CAAC;IAEF;;;;;;;;OAQG;;IACF,aAAa,CAAC;QACd,QAAQ,EAAE,WAAW;QACrB,MAAM,EAAE,+BAA+B;QACvC,QAAQ,EAAE,iCAAiC;KAC3C,CAAC;GACa,yBAAyB,CA4BvC;AAED,eAAe,yBAAyB,CAAC","sourcesContent":["import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport { customElement, eventStrict } from \"@ui5/webcomponents-base/dist/decorators.js\";\nimport jsxRenderer from \"@ui5/webcomponents-base/dist/renderer/JsxRenderer.js\";\nimport type { UI5CustomEvent } from \"@ui5/webcomponents-base\";\nimport TableHeaderCellActionBaseTemplate from \"./TableHeaderCellActionBaseTemplate.js\";\nimport TableHeaderCellActionBaseStyles from \"./generated/themes/TableHeaderCellActionBase.css.js\";\nimport type TableCell from \"./TableCell.js\";\nimport type Button from \"./Button.js\";\n\n/**\n * Fired when a header cell action is clicked.\n *\n * @param {HTMLElement} targetRef The reference to the element that triggered the event\n * @public\n * @since 2.8.0\n */\ntype TableHeaderCellActionClickEventDetail = {\n\ttargetRef: HTMLElement;\n};\n\n/**\n * Fired when a header cell action is clicked.\n *\n * @param {HTMLElement} targetRef The reference to the element that triggered the event\n * @public\n * @since 2.8.0\n */\n@eventStrict(\"click\", {\n\tbubbles: false,\n})\n\n/**\n * @class\n * The `TableHeaderCellActionBase` class serves as a foundation for table header cell actions.\n * @constructor\n * @abstract\n * @extends UI5Element\n * @since 2.8.0\n * @public\n */\n@customElement({\n\trenderer: jsxRenderer,\n\tstyles: TableHeaderCellActionBaseStyles,\n\ttemplate: TableHeaderCellActionBaseTemplate,\n})\nabstract class TableHeaderCellActionBase extends UI5Element {\n\teventDetails!: {\n\t\t\"click\": TableHeaderCellActionClickEventDetail,\n\t}\n\n\tabstract getRenderInfo(): {\n\t\ticon: string;\n\t\ttooltip: string;\n\t};\n\n\tonBeforeRendering() {\n\t\tthis.toggleAttribute(\"_popin\", !this.parentElement);\n\t}\n\n\t_onClick(e: UI5CustomEvent<Button, \"click\">) {\n\t\t// Retrieve the real action (if parent is header cell this instance is fine, otherwise retrieve it from the header cell)\n\t\tconst action = this.parentElement?.hasAttribute(\"ui5-table-header-cell\") ? this : ((this.getRootNode() as ShadowRoot).host as TableCell)._headerCell.action[0] as this;\n\t\taction.fireDecoratorEvent(\"click\", { targetRef: e.target as HTMLElement });\n\t\te.stopPropagation();\n\t}\n\n\tget _tooltip() {\n\t\treturn this.getRenderInfo().tooltip;\n\t}\n\n\tget _icon() {\n\t\treturn this.getRenderInfo().icon;\n\t}\n}\n\nexport default TableHeaderCellActionBase;\n\nexport type {\n\tTableHeaderCellActionClickEventDetail,\n};\n"]}
1
+ {"version":3,"file":"TableHeaderCellActionBase.js","sourceRoot":"","sources":["../src/TableHeaderCellActionBase.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,UAAU,MAAM,4CAA4C,CAAC;AACpE,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,4CAA4C,CAAC;AACxF,OAAO,WAAW,MAAM,sDAAsD,CAAC;AAC/E,OAAO,iCAAiC,MAAM,wCAAwC,CAAC;AACvF,OAAO,+BAA+B,MAAM,qDAAqD,CAAC;AAClG,OAAO,gBAAgB,MAAM,uDAAuD,CAAC;AAgBrF;;;;;;GAMG;AAmBH,IAAe,yBAAyB,GAAxC,MAAe,yBAA0B,SAAQ,UAAU;IAU1D,iBAAiB;QAChB,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IACrD,CAAC;IAED,QAAQ,CAAC,CAAkC;QAC1C,wHAAwH;QACxH,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,EAAE,YAAY,CAAC,uBAAuB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAG,IAAI,CAAC,WAAW,EAAiB,CAAC,IAAkB,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAS,CAAC;QACvK,MAAM,CAAC,kBAAkB,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC,MAAqB,EAAE,CAAC,CAAC;QAC3E,CAAC,CAAC,eAAe,EAAE,CAAC;IACrB,CAAC;IAED,IAAI,iBAAiB;QACpB,OAAO;YACN,WAAW,EAAE,gBAAgB,EAAE,EAAE,YAAY,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE;SACzF,CAAC;IACH,CAAC;IAED,IAAI,QAAQ;QACX,OAAO,IAAI,CAAC,aAAa,EAAE,CAAC,OAAO,CAAC;IACrC,CAAC;IAED,IAAI,KAAK;QACR,OAAO,IAAI,CAAC,aAAa,EAAE,CAAC,IAAI,CAAC;IAClC,CAAC;CACD,CAAA;AAlCc,yBAAyB;IAlBvC,WAAW,CAAC,OAAO,EAAE;QACrB,OAAO,EAAE,KAAK;KACd,CAAC;IAEF;;;;;;;;OAQG;;IACF,aAAa,CAAC;QACd,QAAQ,EAAE,WAAW;QACrB,MAAM,EAAE,+BAA+B;QACvC,QAAQ,EAAE,iCAAiC;KAC3C,CAAC;GACa,yBAAyB,CAkCvC;AAED,eAAe,yBAAyB,CAAC","sourcesContent":["import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport { customElement, eventStrict } from \"@ui5/webcomponents-base/dist/decorators.js\";\nimport jsxRenderer from \"@ui5/webcomponents-base/dist/renderer/JsxRenderer.js\";\nimport TableHeaderCellActionBaseTemplate from \"./TableHeaderCellActionBaseTemplate.js\";\nimport TableHeaderCellActionBaseStyles from \"./generated/themes/TableHeaderCellActionBase.css.js\";\nimport getActiveElement from \"@ui5/webcomponents-base/dist/util/getActiveElement.js\";\nimport type { UI5CustomEvent } from \"@ui5/webcomponents-base\";\nimport type TableCell from \"./TableCell.js\";\nimport type Button from \"./Button.js\";\n\n/**\n * Fired when a header cell action is clicked.\n *\n * @param {HTMLElement} targetRef The reference to the element that triggered the event\n * @public\n * @since 2.8.0\n */\ntype TableHeaderCellActionClickEventDetail = {\n\ttargetRef: HTMLElement;\n};\n\n/**\n * Fired when a header cell action is clicked.\n *\n * @param {HTMLElement} targetRef The reference to the element that triggered the event\n * @public\n * @since 2.8.0\n */\n@eventStrict(\"click\", {\n\tbubbles: false,\n})\n\n/**\n * @class\n * The `TableHeaderCellActionBase` class serves as a foundation for table header cell actions.\n * @constructor\n * @abstract\n * @extends UI5Element\n * @since 2.8.0\n * @public\n */\n@customElement({\n\trenderer: jsxRenderer,\n\tstyles: TableHeaderCellActionBaseStyles,\n\ttemplate: TableHeaderCellActionBaseTemplate,\n})\nabstract class TableHeaderCellActionBase extends UI5Element {\n\teventDetails!: {\n\t\t\"click\": TableHeaderCellActionClickEventDetail,\n\t}\n\n\tabstract getRenderInfo(): {\n\t\ticon: string;\n\t\ttooltip: string;\n\t};\n\n\tonBeforeRendering() {\n\t\tthis.toggleAttribute(\"_popin\", !this.parentElement);\n\t}\n\n\t_onClick(e: UI5CustomEvent<Button, \"click\">) {\n\t\t// Retrieve the real action (if parent is header cell this instance is fine, otherwise retrieve it from the header cell)\n\t\tconst action = this.parentElement?.hasAttribute(\"ui5-table-header-cell\") ? this : ((this.getRootNode() as ShadowRoot).host as TableCell)._headerCell.action[0] as this;\n\t\taction.fireDecoratorEvent(\"click\", { targetRef: e.target as HTMLElement });\n\t\te.stopPropagation();\n\t}\n\n\tget accessibilityInfo() {\n\t\treturn {\n\t\t\tdescription: getActiveElement()?.hasAttribute(\"ui5-table-cell-base\") ? this._tooltip : \"\",\n\t\t};\n\t}\n\n\tget _tooltip() {\n\t\treturn this.getRenderInfo().tooltip;\n\t}\n\n\tget _icon() {\n\t\treturn this.getRenderInfo().icon;\n\t}\n}\n\nexport default TableHeaderCellActionBase;\n\nexport type {\n\tTableHeaderCellActionClickEventDetail,\n};\n"]}
@@ -7,17 +7,21 @@ import ClearAll from "@ui5/webcomponents-icons/dist/clear-all.js";
7
7
  import IconDesign from "./types/IconDesign.js";
8
8
  export default function TableHeaderRowTemplate(ariaColIndex = 1) {
9
9
  return (_jsxs(_Fragment, { children: [this._hasSelector &&
10
- _jsx(TableHeaderCell, { id: "selection-cell", "aria-selected": this._isSelected, "aria-label": this._i18nSelection, "aria-description": this._selectionCellAriaDescription, "aria-colindex": ariaColIndex++, "data-ui5-table-cell-fixed": true, "data-ui5-table-selection-component": true, children: !this._isMultiSelect ?
10
+ _jsx(TableHeaderCell, { id: "selection-cell", "aria-selected": this._isSelected, "aria-label": this._i18nSelection, "aria-description": this._selectionCellAriaDescription, "aria-colindex": ariaColIndex++, "data-ui5-table-selection-cell": true, "data-ui5-table-cell-fixed": true, "data-ui5-table-acc-text": "", children: !this._isMultiSelect ?
11
11
  _jsx(_Fragment, {})
12
12
  :
13
13
  this._shouldRenderClearAll ?
14
14
  _jsx(Icon, { name: ClearAll, mode: IconMode.Decorative, showTooltip: true, accessibleName: this._i18nDeselectAllRows, design: this._hasSelectedRows ? IconDesign.Default : IconDesign.NonInteractive, onClick: this._onSelectionChange })
15
15
  :
16
- _jsx(CheckBox, { id: "selection-component", tabindex: -1, checked: this._isSelected, onChange: this._onSelectionChange, accessibleName: this._i18nRowSelector, title: this._isSelected ? this._i18nDeselectAllRows : this._i18nSelectAllRows }) }), this._visibleCells.map(cell => {
16
+ _jsx(CheckBox, { id: "selection-component", tabindex: -1, checked: this._isSelected, onChange: this._onSelectionChange, accessibleName: this._i18nRowSelector, title: this._isSelected ? this._i18nDeselectAllRows : this._i18nSelectAllRows }) }), this.cells.flatMap(cell => {
17
+ if (cell._popin) {
18
+ cell.ariaColIndex = null;
19
+ return [];
20
+ }
17
21
  cell.ariaColIndex = `${ariaColIndex++}`;
18
- return _jsx("slot", { name: cell._individualSlot }, cell._individualSlot);
22
+ return [_jsx("slot", { name: cell._individualSlot })];
19
23
  }), this._rowActionCount > 0 &&
20
- _jsx(TableHeaderCell, { id: "actions-cell", "aria-colindex": ariaColIndex++, "aria-label": this._i18nRowActions }), this._popinCells.length > 0 &&
21
- _jsx(TableHeaderCell, { id: "popin-cell", "aria-label": this._i18nRowPopin, "data-excluded-from-navigation": true })] }));
24
+ _jsx(TableHeaderCell, { id: "actions-cell", "aria-colindex": ariaColIndex++, children: _jsx("div", { id: "actions-cell-content", children: this._i18nRowActions }) }), this._popinCells.length > 0 &&
25
+ _jsx(TableHeaderCell, { id: "popin-cell", "aria-colindex": ariaColIndex++, "aria-label": this._i18nRowPopin, "data-excluded-from-navigation": true })] }));
22
26
  }
23
27
  //# sourceMappingURL=TableHeaderRowTemplate.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"TableHeaderRowTemplate.js","sourceRoot":"","sources":["../src/TableHeaderRowTemplate.tsx"],"names":[],"mappings":";AAAA,OAAO,QAAQ,MAAM,eAAe,CAAC;AACrC,OAAO,eAAe,MAAM,sBAAsB,CAAC;AACnD,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,QAAQ,MAAM,qBAAqB,CAAC;AAC3C,OAAO,QAAQ,MAAM,4CAA4C,CAAC;AAClE,OAAO,UAAU,MAAM,uBAAuB,CAAC;AAG/C,MAAM,CAAC,OAAO,UAAU,sBAAsB,CAAuB,eAAuB,CAAC;IAC5F,OAAO,CACN,8BACG,IAAI,CAAC,YAAY;gBAClB,KAAC,eAAe,IAAC,EAAE,EAAC,gBAAgB,mBACpB,IAAI,CAAC,WAAW,gBACnB,IAAI,CAAC,cAAc,sBACb,IAAI,CAAC,6BAA6B,mBACrC,YAAY,EAAE,2FAI3B,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;wBACvB,mBAAK;wBACL,CAAC;4BACD,IAAI,CAAC,qBAAqB,CAAC,CAAC;gCAC3B,KAAC,IAAI,IACJ,IAAI,EAAE,QAAQ,EACd,IAAI,EAAE,QAAQ,CAAC,UAAU,EACzB,WAAW,EAAE,IAAI,EACjB,cAAc,EAAE,IAAI,CAAC,oBAAoB,EACzC,MAAM,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,cAAc,EAC9E,OAAO,EAAE,IAAI,CAAC,kBAAkB,GACzB;gCACR,CAAC;oCACD,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,EACrC,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC,CAAC,IAAI,CAAC,kBAAkB,GAClE,GAEG,EAGjB,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;gBAC/B,IAAI,CAAC,YAAY,GAAG,GAAG,YAAY,EAAE,EAAE,CAAC;gBACxC,OAAO,eAAM,IAAI,EAAE,IAAI,CAAC,eAAe,IAAO,IAAI,CAAC,eAAe,CAAS,CAAC;YAC7E,CAAC,CAAC,EAEA,IAAI,CAAC,eAAe,GAAG,CAAC;gBACzB,KAAC,eAAe,IAAC,EAAE,EAAC,cAAc,mBAClB,YAAY,EAAE,gBACjB,IAAI,CAAC,eAAe,GACd,EAGlB,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC;gBAC5B,KAAC,eAAe,IAAC,EAAE,EAAC,YAAY,gBACnB,IAAI,CAAC,aAAa,0CAEZ,IAElB,CACH,CAAC;AACH,CAAC","sourcesContent":["import CheckBox from \"./CheckBox.js\";\nimport TableHeaderCell from \"./TableHeaderCell.js\";\nimport Icon from \"./Icon.js\";\nimport IconMode from \"./types/IconMode.js\";\nimport ClearAll from \"@ui5/webcomponents-icons/dist/clear-all.js\";\nimport IconDesign from \"./types/IconDesign.js\";\nimport type TableHeaderRow from \"./TableHeaderRow.js\";\n\nexport default function TableHeaderRowTemplate(this: TableHeaderRow, ariaColIndex: number = 1) {\n\treturn (\n\t\t<>\n\t\t\t{ this._hasSelector &&\n\t\t\t\t<TableHeaderCell id=\"selection-cell\"\n\t\t\t\t\taria-selected={this._isSelected}\n\t\t\t\t\taria-label={this._i18nSelection}\n\t\t\t\t\taria-description={this._selectionCellAriaDescription}\n\t\t\t\t\taria-colindex={ariaColIndex++}\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<></>\n\t\t\t\t\t\t:\n\t\t\t\t\t\tthis._shouldRenderClearAll ?\n\t\t\t\t\t\t\t<Icon\n\t\t\t\t\t\t\t\tname={ClearAll}\n\t\t\t\t\t\t\t\tmode={IconMode.Decorative}\n\t\t\t\t\t\t\t\tshowTooltip={true}\n\t\t\t\t\t\t\t\taccessibleName={this._i18nDeselectAllRows}\n\t\t\t\t\t\t\t\tdesign={this._hasSelectedRows ? IconDesign.Default : IconDesign.NonInteractive}\n\t\t\t\t\t\t\t\tonClick={this._onSelectionChange}\n\t\t\t\t\t\t\t></Icon>\n\t\t\t\t\t\t\t:\n\t\t\t\t\t\t\t<CheckBox id=\"selection-component\"\n\t\t\t\t\t\t\t\ttabindex={-1}\n\t\t\t\t\t\t\t\tchecked={this._isSelected}\n\t\t\t\t\t\t\t\tonChange={this._onSelectionChange}\n\t\t\t\t\t\t\t\taccessibleName={this._i18nRowSelector}\n\t\t\t\t\t\t\t\ttitle={this._isSelected ? this._i18nDeselectAllRows : this._i18nSelectAllRows}\n\t\t\t\t\t\t\t></CheckBox>\n\t\t\t\t\t}\n\t\t\t\t</TableHeaderCell>\n\t\t\t}\n\n\t\t\t{ this._visibleCells.map(cell => {\n\t\t\t\tcell.ariaColIndex = `${ariaColIndex++}`;\n\t\t\t\treturn <slot name={cell._individualSlot} key={cell._individualSlot}></slot>;\n\t\t\t})}\n\n\t\t\t{ this._rowActionCount > 0 &&\n\t\t\t\t<TableHeaderCell id=\"actions-cell\"\n\t\t\t\t\taria-colindex={ariaColIndex++}\n\t\t\t\t\taria-label={this._i18nRowActions}\n\t\t\t\t></TableHeaderCell>\n\t\t\t}\n\n\t\t\t{ this._popinCells.length > 0 &&\n\t\t\t\t<TableHeaderCell id=\"popin-cell\"\n\t\t\t\t\taria-label={this._i18nRowPopin}\n\t\t\t\t\tdata-excluded-from-navigation\n\t\t\t\t></TableHeaderCell>\n\t\t\t}\n\t\t</>\n\t);\n}\n"]}
1
+ {"version":3,"file":"TableHeaderRowTemplate.js","sourceRoot":"","sources":["../src/TableHeaderRowTemplate.tsx"],"names":[],"mappings":";AAAA,OAAO,QAAQ,MAAM,eAAe,CAAC;AACrC,OAAO,eAAe,MAAM,sBAAsB,CAAC;AACnD,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,QAAQ,MAAM,qBAAqB,CAAC;AAC3C,OAAO,QAAQ,MAAM,4CAA4C,CAAC;AAClE,OAAO,UAAU,MAAM,uBAAuB,CAAC;AAG/C,MAAM,CAAC,OAAO,UAAU,sBAAsB,CAAuB,eAAuB,CAAC;IAC5F,OAAO,CACN,8BACG,IAAI,CAAC,YAAY;gBAClB,KAAC,eAAe,IAAC,EAAE,EAAC,gBAAgB,mBACpB,IAAI,CAAC,WAAW,gBACnB,IAAI,CAAC,cAAc,sBACb,IAAI,CAAC,6BAA6B,mBACrC,YAAY,EAAE,uGAGL,EAAE,YAExB,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;wBACvB,mBAAK;wBACL,CAAC;4BACD,IAAI,CAAC,qBAAqB,CAAC,CAAC;gCAC3B,KAAC,IAAI,IACJ,IAAI,EAAE,QAAQ,EACd,IAAI,EAAE,QAAQ,CAAC,UAAU,EACzB,WAAW,EAAE,IAAI,EACjB,cAAc,EAAE,IAAI,CAAC,oBAAoB,EACzC,MAAM,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,cAAc,EAC9E,OAAO,EAAE,IAAI,CAAC,kBAAkB,GACzB;gCACR,CAAC;oCACD,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,EACrC,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC,CAAC,IAAI,CAAC,kBAAkB,GAClE,GAEG,EAGjB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;gBAC3B,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;oBACjB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;oBACzB,OAAO,EAAE,CAAC;gBACX,CAAC;gBACD,IAAI,CAAC,YAAY,GAAG,GAAG,YAAY,EAAE,EAAE,CAAC;gBACxC,OAAO,CAAC,eAAM,IAAI,EAAE,IAAI,CAAC,eAAe,GAAS,CAAC,CAAC;YACpD,CAAC,CAAC,EAEA,IAAI,CAAC,eAAe,GAAG,CAAC;gBACzB,KAAC,eAAe,IAAC,EAAE,EAAC,cAAc,mBAClB,YAAY,EAAE,YAE7B,cAAK,EAAE,EAAC,sBAAsB,YAAE,IAAI,CAAC,eAAe,GAAO,GAC1C,EAGjB,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC;gBAC5B,KAAC,eAAe,IAAC,EAAE,EAAC,YAAY,mBAChB,YAAY,EAAE,gBACjB,IAAI,CAAC,aAAa,0CAEZ,IAElB,CACH,CAAC;AACH,CAAC","sourcesContent":["import CheckBox from \"./CheckBox.js\";\nimport TableHeaderCell from \"./TableHeaderCell.js\";\nimport Icon from \"./Icon.js\";\nimport IconMode from \"./types/IconMode.js\";\nimport ClearAll from \"@ui5/webcomponents-icons/dist/clear-all.js\";\nimport IconDesign from \"./types/IconDesign.js\";\nimport type TableHeaderRow from \"./TableHeaderRow.js\";\n\nexport default function TableHeaderRowTemplate(this: TableHeaderRow, ariaColIndex: number = 1) {\n\treturn (\n\t\t<>\n\t\t\t{ this._hasSelector &&\n\t\t\t\t<TableHeaderCell id=\"selection-cell\"\n\t\t\t\t\taria-selected={this._isSelected}\n\t\t\t\t\taria-label={this._i18nSelection}\n\t\t\t\t\taria-description={this._selectionCellAriaDescription}\n\t\t\t\t\taria-colindex={ariaColIndex++}\n\t\t\t\t\tdata-ui5-table-selection-cell\n\t\t\t\t\tdata-ui5-table-cell-fixed\n\t\t\t\t\tdata-ui5-table-acc-text=\"\"\n\t\t\t\t>\n\t\t\t\t\t{ !this._isMultiSelect ?\n\t\t\t\t\t\t<></>\n\t\t\t\t\t\t:\n\t\t\t\t\t\tthis._shouldRenderClearAll ?\n\t\t\t\t\t\t\t<Icon\n\t\t\t\t\t\t\t\tname={ClearAll}\n\t\t\t\t\t\t\t\tmode={IconMode.Decorative}\n\t\t\t\t\t\t\t\tshowTooltip={true}\n\t\t\t\t\t\t\t\taccessibleName={this._i18nDeselectAllRows}\n\t\t\t\t\t\t\t\tdesign={this._hasSelectedRows ? IconDesign.Default : IconDesign.NonInteractive}\n\t\t\t\t\t\t\t\tonClick={this._onSelectionChange}\n\t\t\t\t\t\t\t></Icon>\n\t\t\t\t\t\t\t:\n\t\t\t\t\t\t\t<CheckBox id=\"selection-component\"\n\t\t\t\t\t\t\t\ttabindex={-1}\n\t\t\t\t\t\t\t\tchecked={this._isSelected}\n\t\t\t\t\t\t\t\tonChange={this._onSelectionChange}\n\t\t\t\t\t\t\t\taccessibleName={this._i18nRowSelector}\n\t\t\t\t\t\t\t\ttitle={this._isSelected ? this._i18nDeselectAllRows : this._i18nSelectAllRows}\n\t\t\t\t\t\t\t></CheckBox>\n\t\t\t\t\t}\n\t\t\t\t</TableHeaderCell>\n\t\t\t}\n\n\t\t\t{ this.cells.flatMap(cell => {\n\t\t\t\tif (cell._popin) {\n\t\t\t\t\tcell.ariaColIndex = null;\n\t\t\t\t\treturn [];\n\t\t\t\t}\n\t\t\t\tcell.ariaColIndex = `${ariaColIndex++}`;\n\t\t\t\treturn [<slot name={cell._individualSlot}></slot>];\n\t\t\t})}\n\n\t\t\t{ this._rowActionCount > 0 &&\n\t\t\t\t<TableHeaderCell id=\"actions-cell\"\n\t\t\t\t\taria-colindex={ariaColIndex++}\n\t\t\t\t>\n\t\t\t\t\t<div id=\"actions-cell-content\">{this._i18nRowActions}</div>\n\t\t\t\t</TableHeaderCell>\n\t\t\t}\n\n\t\t\t{ this._popinCells.length > 0 &&\n\t\t\t\t<TableHeaderCell id=\"popin-cell\"\n\t\t\t\t\taria-colindex={ariaColIndex++}\n\t\t\t\t\taria-label={this._i18nRowPopin}\n\t\t\t\t\tdata-excluded-from-navigation\n\t\t\t\t></TableHeaderCell>\n\t\t\t}\n\t\t</>\n\t);\n}\n"]}
@@ -17,7 +17,6 @@ class TableNavigation extends TableExtension {
17
17
  this._tabPosition = 0;
18
18
  this._table = table;
19
19
  this._gridWalker = new GridWalker();
20
- this._gridWalker.setGrid(this._getNavigationItemsOfGrid());
21
20
  this._onKeyDownCaptureBound = this._onKeyDownCapture.bind(this);
22
21
  // we register the keydown handler on the table element at the capturing phase since the
23
22
  // busy indicator stops the propagation of the keydown event and it never reaches the table
@@ -1 +1 @@
1
- {"version":3,"file":"TableNavigation.js","sourceRoot":"","sources":["../src/TableNavigation.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n\tisUp, isUpShift, isDown, isDownShift, isLeft, isRight, isPageUp, isPageDown, isHome, isEnd, isTabNext, isTabPrevious,\n} from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport isElementHidden from \"@ui5/webcomponents-base/dist/util/isElementHidden.js\";\nimport getActiveElement from \"@ui5/webcomponents-base/dist/util/getActiveElement.js\";\nimport { getTabbableElements } from \"@ui5/webcomponents-base/dist/util/TabbableElements.js\";\nimport TableExtension from \"./TableExtension.js\";\nimport GridWalker from \"./GridWalker.js\";\nimport type TableRowBase from \"./TableRowBase.js\";\nimport type Table from \"./Table.js\";\n\n/**\n * Handles the keyboard navigation for the ui5-table.\n *\n * @class\n * @private\n */\nclass TableNavigation extends TableExtension {\n\t_table: Table;\n\t_gridWalker: GridWalker;\n\t_colPosition: number = 0;\n\t_tabPosition: number = 0;\n\t_ignoreFocusIn?: boolean;\n\t_lastFocusedItem?: HTMLElement;\n\t_onKeyDownCaptureBound: (e: KeyboardEvent) => void;\n\n\tconstructor(table: Table) {\n\t\tsuper();\n\t\tthis._table = table;\n\t\tthis._gridWalker = new GridWalker();\n\t\tthis._gridWalker.setGrid(this._getNavigationItemsOfGrid());\n\t\tthis._onKeyDownCaptureBound = this._onKeyDownCapture.bind(this);\n\n\t\t// we register the keydown handler on the table element at the capturing phase since the\n\t\t// busy indicator stops the propagation of the keydown event and it never reaches the table\n\t\tthis._table.addEventListener(\"keydown\", this._onKeyDownCaptureBound, { capture: true });\n\t}\n\n\t_getNavigationItemsOfRow(row: TableRowBase) {\n\t\treturn [row, ...row.shadowRoot!.children].map(element => {\n\t\t\treturn element.localName === \"slot\" ? (element as HTMLSlotElement).assignedElements() : element;\n\t\t}).flat().filter(element => {\n\t\t\treturn element.localName.includes(\"ui5-table-\") && !element.hasAttribute(\"data-excluded-from-navigation\");\n\t\t}) as HTMLElement[];\n\t}\n\n\t_getNavigationItemsOfGrid() {\n\t\tconst items = [];\n\t\tif (this._table.headerRow[0] && !isElementHidden(this._table.headerRow[0])) {\n\t\t\titems.push(this._getNavigationItemsOfRow(this._table.headerRow[0]));\n\t\t\tthis._gridWalker.setFirstRowPos(1);\n\t\t} else {\n\t\t\tthis._gridWalker.setFirstRowPos(0);\n\t\t}\n\n\t\tif (this._table.rows.length) {\n\t\t\tthis._table.rows.forEach(row => items.push(this._getNavigationItemsOfRow(row)));\n\t\t} else if (this._table._noDataRow) {\n\t\t\titems.push(this._getNavigationItemsOfRow(this._table._noDataRow));\n\t\t}\n\n\t\tif (this._table.rows.length > 0 && this._table._getGrowing()?.hasGrowingComponent()) {\n\t\t\titems.push([this._table._getGrowing()?.getFocusDomRef()]);\n\t\t\tthis._gridWalker.setLastRowPos(-1);\n\t\t} else {\n\t\t\tthis._gridWalker.setLastRowPos(0);\n\t\t}\n\n\t\tif (!this._gridWalker.getCurrent()) {\n\t\t\tthis._gridWalker.setRowPos(this._gridWalker.getFirstRowPos());\n\t\t}\n\n\t\tthis._gridWalker.setGrid(items);\n\t\treturn items;\n\t}\n\n\t_setCurrentItem(e: Event, callback?: (currentItem: HTMLElement) => void) {\n\t\tconst navigationItems = this._getNavigationItemsOfGrid().flat();\n\t\tconst navigationItem = e.composedPath().find(target => navigationItems.includes(target as HTMLElement)) as HTMLElement;\n\t\tif (navigationItem) {\n\t\t\tthis._gridWalker.setCurrent(navigationItem);\n\t\t\tcallback && callback(navigationItem);\n\t\t}\n\t}\n\n\t_isEventFromCurrentItem(e: Event) {\n\t\treturn e.composedPath()[0] === this._gridWalker.getCurrent();\n\t}\n\n\t_focusElement(element: HTMLElement, ignoreFocusIn: boolean = true) {\n\t\tif (!element || element === getActiveElement()) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst navigationItems = this._getNavigationItemsOfGrid().flat();\n\t\tif (navigationItems.includes(this._lastFocusedItem)) {\n\t\t\tthis._lastFocusedItem?.removeAttribute(\"tabindex\");\n\t\t}\n\n\t\tif (navigationItems.includes(element)) {\n\t\t\telement.setAttribute(\"tabindex\", \"-1\");\n\t\t\tthis._lastFocusedItem = element;\n\t\t}\n\n\t\tthis._ignoreFocusIn = ignoreFocusIn;\n\t\telement.focus({ preventScroll: element === this._table._beforeElement || element === this._table._afterElement });\n\t\tif (element instanceof HTMLInputElement) {\n\t\t\telement.select();\n\t\t}\n\t\tthis._ignoreFocusIn = false;\n\t}\n\n\t_focusCurrentItem() {\n\t\tthis._focusElement(this._gridWalker.getCurrent() as HTMLElement);\n\t}\n\n\t_handleEnter(e: KeyboardEvent, eventOrigin: HTMLElement) {\n\t\tif (eventOrigin.hasAttribute(\"ui5-table-cell-base\")) {\n\t\t\tthis._handleF2(e, eventOrigin);\n\t\t}\n\t}\n\n\t_handleF2(e: KeyboardEvent, eventOrigin: HTMLElement) {\n\t\tif (this._isEventFromCurrentItem(e)) {\n\t\t\tconst firstTabbable = getTabbableElements(eventOrigin)[0];\n\t\t\tthis._focusElement(firstTabbable);\n\t\t} else {\n\t\t\tthis._setCurrentItem(e, () => this._focusCurrentItem());\n\t\t}\n\t\te.preventDefault();\n\t}\n\n\t_handleF7(e: KeyboardEvent, eventOrigin: HTMLElement) {\n\t\tif (eventOrigin.hasAttribute(\"ui5-table-row-base\")) {\n\t\t\tthis._gridWalker.setColPos(this._colPosition);\n\t\t\tlet elementToFocus = this._gridWalker.getCurrent() as HTMLElement;\n\t\t\tif (this._tabPosition > -1) {\n\t\t\t\tconst tabbables = getTabbableElements(elementToFocus);\n\t\t\t\telementToFocus = tabbables[this._tabPosition] || tabbables.pop() || elementToFocus;\n\t\t\t}\n\t\t\tthis._focusElement(elementToFocus);\n\t\t} else {\n\t\t\tthis._setCurrentItem(e, currentItem => {\n\t\t\t\tthis._tabPosition = getTabbableElements(currentItem).indexOf(eventOrigin);\n\t\t\t\tthis._colPosition = this._gridWalker.getColPos();\n\t\t\t\tthis._gridWalker.setColPos(0);\n\t\t\t\tthis._focusCurrentItem();\n\t\t\t});\n\t\t}\n\t\te.preventDefault();\n\t}\n\n\t_handleTab(e: KeyboardEvent, eventOrigin: HTMLElement) {\n\t\tif (this._isEventFromCurrentItem(e)) {\n\t\t\tthis._focusElement(e.shiftKey ? this._table._beforeElement : this._table._afterElement);\n\t\t} else {\n\t\t\tconst tabbables = getTabbableElements(this._table._tableElement);\n\t\t\tif (e.shiftKey && tabbables[0] === eventOrigin) {\n\t\t\t\tthis._focusElement(this._table._beforeElement);\n\t\t\t}\n\t\t\tif (!e.shiftKey && tabbables[tabbables.length - 1] === eventOrigin) {\n\t\t\t\tthis._focusElement(this._table._afterElement);\n\t\t\t}\n\t\t}\n\t}\n\n\t_handleArrowUpDown(e: KeyboardEvent, eventOrigin: HTMLElement, direction: -1 | 1) {\n\t\tif (e.shiftKey || e.altKey || e.ctrlKey || e.metaKey || e.defaultPrevented || this._isEventFromCurrentItem(e) || /^(input|textarea)$/i.test(eventOrigin.nodeName)) {\n\t\t\treturn false;\n\t\t}\n\n\t\tthis._setCurrentItem(e, currentItem => {\n\t\t\tthis._tabPosition = getTabbableElements(currentItem).indexOf(eventOrigin);\n\t\t\tthis._gridWalker.setRowPos(this._gridWalker.getRowPos() + direction);\n\t\t\tlet elementToFocus = this._gridWalker.getCurrent() as HTMLElement;\n\t\t\tconst tabbables = getTabbableElements(elementToFocus);\n\t\t\telementToFocus = tabbables[this._tabPosition] || tabbables.pop() || elementToFocus;\n\t\t\tthis._focusElement(elementToFocus);\n\t\t\te.preventDefault();\n\t\t});\n\t\treturn false;\n\t}\n\n\t_handleArrowUp(e: KeyboardEvent, eventOrigin: HTMLElement) {\n\t\treturn this._handleArrowUpDown(e, eventOrigin, -1);\n\t}\n\n\t_handleArrowDown(e: KeyboardEvent, eventOrigin: HTMLElement) {\n\t\treturn this._handleArrowUpDown(e, eventOrigin, 1);\n\t}\n\n\t_onkeydown(e: KeyboardEvent, eventOrigin: HTMLElement) {\n\t\tif (e.defaultPrevented) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (!this._isEventFromCurrentItem(e) && this._getNavigationItemsOfGrid().flat().includes(eventOrigin)) {\n\t\t\tthis._gridWalker.setCurrent(eventOrigin);\n\t\t}\n\n\t\tthis._table._getVirtualizer()?._onKeyDown(e);\n\t\tif (e.defaultPrevented) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst keydownHandlerName = `_handle${e.code}` as keyof TableNavigation;\n\t\tconst keydownHandler = this[keydownHandlerName] as (e: KeyboardEvent, eventOrigin: HTMLElement) => void | false;\n\t\tif (typeof keydownHandler === \"function\" && keydownHandler.call(this, e, eventOrigin) === undefined) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (!this._isEventFromCurrentItem(e)) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (isLeft(e)) {\n\t\t\tthis._gridWalker[this._table.effectiveDir === \"rtl\" ? \"right\" : \"left\"]();\n\t\t} else if (isRight(e)) {\n\t\t\tthis._gridWalker[this._table.effectiveDir === \"rtl\" ? \"left\" : \"right\"]();\n\t\t} else if (isUp(e) || isUpShift(e)) {\n\t\t\tthis._gridWalker.up();\n\t\t} else if (isDown(e) || isDownShift(e)) {\n\t\t\tthis._gridWalker.down();\n\t\t} else if (isHome(e)) {\n\t\t\tthis._gridWalker.home();\n\t\t} else if (isEnd(e)) {\n\t\t\tthis._gridWalker.end();\n\t\t} else if (isPageUp(e)) {\n\t\t\tthis._gridWalker.pageup();\n\t\t} else if (isPageDown(e)) {\n\t\t\tthis._gridWalker.pagedown();\n\t\t} else {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._focusCurrentItem();\n\t\te.preventDefault();\n\t}\n\n\t_onclick(e: PointerEvent) {\n\t\tconst navigationItems = this._getNavigationItemsOfGrid();\n\t\tconst flatNavigationItems = navigationItems.flat();\n\t\tlet navigationItem = null;\n\t\tlet focusableElement = null;\n\n\t\t// eslint-disable-next-line no-restricted-syntax\n\t\tfor (const target of e.composedPath() as any[]) {\n\t\t\tif (target.nodeType === Node.ELEMENT_NODE) {\n\t\t\t\tconst element = target as HTMLElement;\n\t\t\t\tif (element.matches(\":focus-within\")) {\n\t\t\t\t\tfocusableElement = element;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tif (flatNavigationItems.includes(element)) {\n\t\t\t\t\tnavigationItem = element;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif (focusableElement && focusableElement !== this._lastFocusedItem) {\n\t\t\tthis._lastFocusedItem?.removeAttribute(\"tabindex\");\n\t\t\tthis._lastFocusedItem = undefined;\n\t\t} else if (navigationItem) {\n\t\t\tthis._gridWalker.setCurrent(navigationItem);\n\t\t\tthis._gridWalker.setColPos(0);\n\t\t\tthis._focusCurrentItem();\n\t\t}\n\t}\n\n\t_onfocusin(e: FocusEvent, eventOrigin: HTMLElement) {\n\t\tif (this._ignoreFocusIn) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (eventOrigin === this._table._beforeElement || eventOrigin === this._table._afterElement) {\n\t\t\tif (this._table.loading) {\n\t\t\t\tthis._table._loadingElement.focus();\n\t\t\t} else {\n\t\t\t\tthis._getNavigationItemsOfGrid();\n\t\t\t\tthis._gridWalker.setColPos(0);\n\t\t\t\tthis._focusCurrentItem();\n\t\t\t}\n\t\t} else if (eventOrigin !== this._lastFocusedItem && this._getNavigationItemsOfGrid().flat().includes(eventOrigin)) {\n\t\t\tthis._lastFocusedItem = eventOrigin;\n\t\t}\n\t}\n\n\t_onKeyDownCapture(e: KeyboardEvent) {\n\t\tif (!this._table.loading) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (isTabNext(e) || isTabPrevious(e)) {\n\t\t\tthis._focusElement(e.shiftKey ? this._table._beforeElement : this._table._afterElement);\n\t\t\te.stopImmediatePropagation();\n\t\t}\n\t}\n}\n\nexport default TableNavigation;\n"]}
1
+ {"version":3,"file":"TableNavigation.js","sourceRoot":"","sources":["../src/TableNavigation.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n\tisUp, isUpShift, isDown, isDownShift, isLeft, isRight, isPageUp, isPageDown, isHome, isEnd, isTabNext, isTabPrevious,\n} from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport isElementHidden from \"@ui5/webcomponents-base/dist/util/isElementHidden.js\";\nimport getActiveElement from \"@ui5/webcomponents-base/dist/util/getActiveElement.js\";\nimport { getTabbableElements } from \"@ui5/webcomponents-base/dist/util/TabbableElements.js\";\nimport TableExtension from \"./TableExtension.js\";\nimport GridWalker from \"./GridWalker.js\";\nimport type TableRowBase from \"./TableRowBase.js\";\nimport type Table from \"./Table.js\";\n\n/**\n * Handles the keyboard navigation for the ui5-table.\n *\n * @class\n * @private\n */\nclass TableNavigation extends TableExtension {\n\t_table: Table;\n\t_gridWalker: GridWalker;\n\t_colPosition: number = 0;\n\t_tabPosition: number = 0;\n\t_ignoreFocusIn?: boolean;\n\t_lastFocusedItem?: HTMLElement;\n\t_onKeyDownCaptureBound: (e: KeyboardEvent) => void;\n\n\tconstructor(table: Table) {\n\t\tsuper();\n\t\tthis._table = table;\n\t\tthis._gridWalker = new GridWalker();\n\t\tthis._onKeyDownCaptureBound = this._onKeyDownCapture.bind(this);\n\n\t\t// we register the keydown handler on the table element at the capturing phase since the\n\t\t// busy indicator stops the propagation of the keydown event and it never reaches the table\n\t\tthis._table.addEventListener(\"keydown\", this._onKeyDownCaptureBound, { capture: true });\n\t}\n\n\t_getNavigationItemsOfRow(row: TableRowBase) {\n\t\treturn [row, ...row.shadowRoot!.children].map(element => {\n\t\t\treturn element.localName === \"slot\" ? (element as HTMLSlotElement).assignedElements() : element;\n\t\t}).flat().filter(element => {\n\t\t\treturn element.localName.includes(\"ui5-table-\") && !element.hasAttribute(\"data-excluded-from-navigation\");\n\t\t}) as HTMLElement[];\n\t}\n\n\t_getNavigationItemsOfGrid() {\n\t\tconst items = [];\n\t\tif (this._table.headerRow[0] && !isElementHidden(this._table.headerRow[0])) {\n\t\t\titems.push(this._getNavigationItemsOfRow(this._table.headerRow[0]));\n\t\t\tthis._gridWalker.setFirstRowPos(1);\n\t\t} else {\n\t\t\tthis._gridWalker.setFirstRowPos(0);\n\t\t}\n\n\t\tif (this._table.rows.length) {\n\t\t\tthis._table.rows.forEach(row => items.push(this._getNavigationItemsOfRow(row)));\n\t\t} else if (this._table._noDataRow) {\n\t\t\titems.push(this._getNavigationItemsOfRow(this._table._noDataRow));\n\t\t}\n\n\t\tif (this._table.rows.length > 0 && this._table._getGrowing()?.hasGrowingComponent()) {\n\t\t\titems.push([this._table._getGrowing()?.getFocusDomRef()]);\n\t\t\tthis._gridWalker.setLastRowPos(-1);\n\t\t} else {\n\t\t\tthis._gridWalker.setLastRowPos(0);\n\t\t}\n\n\t\tif (!this._gridWalker.getCurrent()) {\n\t\t\tthis._gridWalker.setRowPos(this._gridWalker.getFirstRowPos());\n\t\t}\n\n\t\tthis._gridWalker.setGrid(items);\n\t\treturn items;\n\t}\n\n\t_setCurrentItem(e: Event, callback?: (currentItem: HTMLElement) => void) {\n\t\tconst navigationItems = this._getNavigationItemsOfGrid().flat();\n\t\tconst navigationItem = e.composedPath().find(target => navigationItems.includes(target as HTMLElement)) as HTMLElement;\n\t\tif (navigationItem) {\n\t\t\tthis._gridWalker.setCurrent(navigationItem);\n\t\t\tcallback && callback(navigationItem);\n\t\t}\n\t}\n\n\t_isEventFromCurrentItem(e: Event) {\n\t\treturn e.composedPath()[0] === this._gridWalker.getCurrent();\n\t}\n\n\t_focusElement(element: HTMLElement, ignoreFocusIn: boolean = true) {\n\t\tif (!element || element === getActiveElement()) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst navigationItems = this._getNavigationItemsOfGrid().flat();\n\t\tif (navigationItems.includes(this._lastFocusedItem)) {\n\t\t\tthis._lastFocusedItem?.removeAttribute(\"tabindex\");\n\t\t}\n\n\t\tif (navigationItems.includes(element)) {\n\t\t\telement.setAttribute(\"tabindex\", \"-1\");\n\t\t\tthis._lastFocusedItem = element;\n\t\t}\n\n\t\tthis._ignoreFocusIn = ignoreFocusIn;\n\t\telement.focus({ preventScroll: element === this._table._beforeElement || element === this._table._afterElement });\n\t\tif (element instanceof HTMLInputElement) {\n\t\t\telement.select();\n\t\t}\n\t\tthis._ignoreFocusIn = false;\n\t}\n\n\t_focusCurrentItem() {\n\t\tthis._focusElement(this._gridWalker.getCurrent() as HTMLElement);\n\t}\n\n\t_handleEnter(e: KeyboardEvent, eventOrigin: HTMLElement) {\n\t\tif (eventOrigin.hasAttribute(\"ui5-table-cell-base\")) {\n\t\t\tthis._handleF2(e, eventOrigin);\n\t\t}\n\t}\n\n\t_handleF2(e: KeyboardEvent, eventOrigin: HTMLElement) {\n\t\tif (this._isEventFromCurrentItem(e)) {\n\t\t\tconst firstTabbable = getTabbableElements(eventOrigin)[0];\n\t\t\tthis._focusElement(firstTabbable);\n\t\t} else {\n\t\t\tthis._setCurrentItem(e, () => this._focusCurrentItem());\n\t\t}\n\t\te.preventDefault();\n\t}\n\n\t_handleF7(e: KeyboardEvent, eventOrigin: HTMLElement) {\n\t\tif (eventOrigin.hasAttribute(\"ui5-table-row-base\")) {\n\t\t\tthis._gridWalker.setColPos(this._colPosition);\n\t\t\tlet elementToFocus = this._gridWalker.getCurrent() as HTMLElement;\n\t\t\tif (this._tabPosition > -1) {\n\t\t\t\tconst tabbables = getTabbableElements(elementToFocus);\n\t\t\t\telementToFocus = tabbables[this._tabPosition] || tabbables.pop() || elementToFocus;\n\t\t\t}\n\t\t\tthis._focusElement(elementToFocus);\n\t\t} else {\n\t\t\tthis._setCurrentItem(e, currentItem => {\n\t\t\t\tthis._tabPosition = getTabbableElements(currentItem).indexOf(eventOrigin);\n\t\t\t\tthis._colPosition = this._gridWalker.getColPos();\n\t\t\t\tthis._gridWalker.setColPos(0);\n\t\t\t\tthis._focusCurrentItem();\n\t\t\t});\n\t\t}\n\t\te.preventDefault();\n\t}\n\n\t_handleTab(e: KeyboardEvent, eventOrigin: HTMLElement) {\n\t\tif (this._isEventFromCurrentItem(e)) {\n\t\t\tthis._focusElement(e.shiftKey ? this._table._beforeElement : this._table._afterElement);\n\t\t} else {\n\t\t\tconst tabbables = getTabbableElements(this._table._tableElement);\n\t\t\tif (e.shiftKey && tabbables[0] === eventOrigin) {\n\t\t\t\tthis._focusElement(this._table._beforeElement);\n\t\t\t}\n\t\t\tif (!e.shiftKey && tabbables[tabbables.length - 1] === eventOrigin) {\n\t\t\t\tthis._focusElement(this._table._afterElement);\n\t\t\t}\n\t\t}\n\t}\n\n\t_handleArrowUpDown(e: KeyboardEvent, eventOrigin: HTMLElement, direction: -1 | 1) {\n\t\tif (e.shiftKey || e.altKey || e.ctrlKey || e.metaKey || e.defaultPrevented || this._isEventFromCurrentItem(e) || /^(input|textarea)$/i.test(eventOrigin.nodeName)) {\n\t\t\treturn false;\n\t\t}\n\n\t\tthis._setCurrentItem(e, currentItem => {\n\t\t\tthis._tabPosition = getTabbableElements(currentItem).indexOf(eventOrigin);\n\t\t\tthis._gridWalker.setRowPos(this._gridWalker.getRowPos() + direction);\n\t\t\tlet elementToFocus = this._gridWalker.getCurrent() as HTMLElement;\n\t\t\tconst tabbables = getTabbableElements(elementToFocus);\n\t\t\telementToFocus = tabbables[this._tabPosition] || tabbables.pop() || elementToFocus;\n\t\t\tthis._focusElement(elementToFocus);\n\t\t\te.preventDefault();\n\t\t});\n\t\treturn false;\n\t}\n\n\t_handleArrowUp(e: KeyboardEvent, eventOrigin: HTMLElement) {\n\t\treturn this._handleArrowUpDown(e, eventOrigin, -1);\n\t}\n\n\t_handleArrowDown(e: KeyboardEvent, eventOrigin: HTMLElement) {\n\t\treturn this._handleArrowUpDown(e, eventOrigin, 1);\n\t}\n\n\t_onkeydown(e: KeyboardEvent, eventOrigin: HTMLElement) {\n\t\tif (e.defaultPrevented) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (!this._isEventFromCurrentItem(e) && this._getNavigationItemsOfGrid().flat().includes(eventOrigin)) {\n\t\t\tthis._gridWalker.setCurrent(eventOrigin);\n\t\t}\n\n\t\tthis._table._getVirtualizer()?._onKeyDown(e);\n\t\tif (e.defaultPrevented) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst keydownHandlerName = `_handle${e.code}` as keyof TableNavigation;\n\t\tconst keydownHandler = this[keydownHandlerName] as (e: KeyboardEvent, eventOrigin: HTMLElement) => void | false;\n\t\tif (typeof keydownHandler === \"function\" && keydownHandler.call(this, e, eventOrigin) === undefined) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (!this._isEventFromCurrentItem(e)) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (isLeft(e)) {\n\t\t\tthis._gridWalker[this._table.effectiveDir === \"rtl\" ? \"right\" : \"left\"]();\n\t\t} else if (isRight(e)) {\n\t\t\tthis._gridWalker[this._table.effectiveDir === \"rtl\" ? \"left\" : \"right\"]();\n\t\t} else if (isUp(e) || isUpShift(e)) {\n\t\t\tthis._gridWalker.up();\n\t\t} else if (isDown(e) || isDownShift(e)) {\n\t\t\tthis._gridWalker.down();\n\t\t} else if (isHome(e)) {\n\t\t\tthis._gridWalker.home();\n\t\t} else if (isEnd(e)) {\n\t\t\tthis._gridWalker.end();\n\t\t} else if (isPageUp(e)) {\n\t\t\tthis._gridWalker.pageup();\n\t\t} else if (isPageDown(e)) {\n\t\t\tthis._gridWalker.pagedown();\n\t\t} else {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._focusCurrentItem();\n\t\te.preventDefault();\n\t}\n\n\t_onclick(e: PointerEvent) {\n\t\tconst navigationItems = this._getNavigationItemsOfGrid();\n\t\tconst flatNavigationItems = navigationItems.flat();\n\t\tlet navigationItem = null;\n\t\tlet focusableElement = null;\n\n\t\t// eslint-disable-next-line no-restricted-syntax\n\t\tfor (const target of e.composedPath() as any[]) {\n\t\t\tif (target.nodeType === Node.ELEMENT_NODE) {\n\t\t\t\tconst element = target as HTMLElement;\n\t\t\t\tif (element.matches(\":focus-within\")) {\n\t\t\t\t\tfocusableElement = element;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tif (flatNavigationItems.includes(element)) {\n\t\t\t\t\tnavigationItem = element;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif (focusableElement && focusableElement !== this._lastFocusedItem) {\n\t\t\tthis._lastFocusedItem?.removeAttribute(\"tabindex\");\n\t\t\tthis._lastFocusedItem = undefined;\n\t\t} else if (navigationItem) {\n\t\t\tthis._gridWalker.setCurrent(navigationItem);\n\t\t\tthis._gridWalker.setColPos(0);\n\t\t\tthis._focusCurrentItem();\n\t\t}\n\t}\n\n\t_onfocusin(e: FocusEvent, eventOrigin: HTMLElement) {\n\t\tif (this._ignoreFocusIn) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (eventOrigin === this._table._beforeElement || eventOrigin === this._table._afterElement) {\n\t\t\tif (this._table.loading) {\n\t\t\t\tthis._table._loadingElement.focus();\n\t\t\t} else {\n\t\t\t\tthis._getNavigationItemsOfGrid();\n\t\t\t\tthis._gridWalker.setColPos(0);\n\t\t\t\tthis._focusCurrentItem();\n\t\t\t}\n\t\t} else if (eventOrigin !== this._lastFocusedItem && this._getNavigationItemsOfGrid().flat().includes(eventOrigin)) {\n\t\t\tthis._lastFocusedItem = eventOrigin;\n\t\t}\n\t}\n\n\t_onKeyDownCapture(e: KeyboardEvent) {\n\t\tif (!this._table.loading) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (isTabNext(e) || isTabPrevious(e)) {\n\t\t\tthis._focusElement(e.shiftKey ? this._table._beforeElement : this._table._afterElement);\n\t\t\te.stopImmediatePropagation();\n\t\t}\n\t}\n}\n\nexport default TableNavigation;\n"]}
@@ -1,9 +1,8 @@
1
- import type { UI5CustomEvent } from "@ui5/webcomponents-base";
2
1
  import TableRowBase from "./TableRowBase.js";
3
2
  import type TableCell from "./TableCell.js";
4
3
  import type TableRowActionBase from "./TableRowActionBase.js";
5
4
  import type Button from "./Button.js";
6
- import "@ui5/webcomponents-icons/dist/overflow.js";
5
+ import type { UI5CustomEvent } from "@ui5/webcomponents-base";
7
6
  /**
8
7
  * @class
9
8
  *
@@ -77,6 +76,8 @@ declare class TableRow extends TableRowBase {
77
76
  * @public
78
77
  */
79
78
  movable: boolean;
79
+ _popinCell?: TableCell;
80
+ _actionsCell?: TableCell;
80
81
  onBeforeRendering(): void;
81
82
  focus(focusOptions?: FocusOptions | undefined): Promise<void>;
82
83
  _onkeydown(e: KeyboardEvent, eventOrigin: HTMLElement): void;
@@ -84,11 +85,14 @@ declare class TableRow extends TableRowBase {
84
85
  _onkeyup(): void;
85
86
  _onfocusout(): void;
86
87
  _onOverflowButtonClick(e: UI5CustomEvent<Button, "click">): void;
87
- get _isInteractive(): boolean | undefined;
88
+ get _isInteractive(): boolean;
89
+ get _isNavigable(): boolean;
88
90
  get _rowIndex(): number;
89
91
  get _hasOverflowActions(): boolean;
90
92
  get _flexibleActions(): TableRowActionBase[];
91
93
  get _fixedActions(): TableRowActionBase[];
92
94
  get _overflowActions(): TableRowActionBase[];
95
+ get _availableActionsCount(): number;
96
+ get _actionCellAccText(): string | undefined;
93
97
  }
94
98
  export default TableRow;
package/dist/TableRow.js CHANGED
@@ -7,11 +7,12 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
7
7
  import { customElement, slot, property } from "@ui5/webcomponents-base/dist/decorators.js";
8
8
  import { isEnter } from "@ui5/webcomponents-base/dist/Keys.js";
9
9
  import getActiveElement from "@ui5/webcomponents-base/dist/util/getActiveElement.js";
10
+ import query from "@ui5/webcomponents-base/dist/decorators/query.js";
10
11
  import { toggleAttribute } from "./TableUtils.js";
11
12
  import TableRowTemplate from "./TableRowTemplate.js";
12
13
  import TableRowBase from "./TableRowBase.js";
13
14
  import TableRowCss from "./generated/themes/TableRow.css.js";
14
- import "@ui5/webcomponents-icons/dist/overflow.js";
15
+ import { TABLE_ROW_MULTIPLE_ACTIONS, TABLE_ROW_SINGLE_ACTION, } from "./generated/i18n/i18n-defaults.js";
15
16
  /**
16
17
  * @class
17
18
  *
@@ -81,7 +82,7 @@ let TableRow = class TableRow extends TableRowBase {
81
82
  if (this._isSelectable && !this._hasSelector) {
82
83
  this._onSelectionChange();
83
84
  }
84
- else if (this.interactive) {
85
+ else if (this.interactive || this._isNavigable) {
85
86
  this._table?._onRowClick(this);
86
87
  }
87
88
  }
@@ -98,7 +99,12 @@ let TableRow = class TableRow extends TableRowBase {
98
99
  e.stopPropagation();
99
100
  }
100
101
  get _isInteractive() {
101
- return this.interactive || (this._isSelectable && !this._hasSelector);
102
+ return this.interactive || (this._isSelectable && !this._hasSelector) || this._isNavigable;
103
+ }
104
+ get _isNavigable() {
105
+ return this._fixedActions.find(action => {
106
+ return action.hasAttribute("ui5-table-row-action-navigation") && !action._isInteractive;
107
+ }) !== undefined;
102
108
  }
103
109
  get _rowIndex() {
104
110
  if (this.position !== undefined) {
@@ -110,12 +116,12 @@ let TableRow = class TableRow extends TableRowBase {
110
116
  return -1;
111
117
  }
112
118
  get _hasOverflowActions() {
113
- let renderedActionsCount = 0;
119
+ let renderableActionsCount = 0;
114
120
  return this.actions.some(action => {
115
121
  if (action.isFixedAction() || !action.invisible) {
116
- renderedActionsCount++;
122
+ renderableActionsCount++;
117
123
  }
118
- return renderedActionsCount > this._rowActionCount;
124
+ return renderableActionsCount > this._rowActionCount;
119
125
  });
120
126
  }
121
127
  get _flexibleActions() {
@@ -153,6 +159,21 @@ let TableRow = class TableRow extends TableRowBase {
153
159
  });
154
160
  return overflowActions;
155
161
  }
162
+ get _availableActionsCount() {
163
+ if (this._rowActionCount < 1) {
164
+ return 0;
165
+ }
166
+ return [...this._flexibleActions, ...this._fixedActions].filter(action => {
167
+ return !action.invisible && action._isInteractive;
168
+ }).length + (this._hasOverflowActions ? 1 : 0);
169
+ }
170
+ get _actionCellAccText() {
171
+ const availableActionsCount = this._availableActionsCount;
172
+ if (availableActionsCount > 0) {
173
+ const bundleKey = availableActionsCount === 1 ? TABLE_ROW_SINGLE_ACTION : TABLE_ROW_MULTIPLE_ACTIONS;
174
+ return TableRowBase.i18nBundle.getText(bundleKey, availableActionsCount);
175
+ }
176
+ }
156
177
  };
157
178
  __decorate([
158
179
  slot({
@@ -186,6 +207,12 @@ __decorate([
186
207
  __decorate([
187
208
  property({ type: Boolean })
188
209
  ], TableRow.prototype, "movable", void 0);
210
+ __decorate([
211
+ query("#popin-cell")
212
+ ], TableRow.prototype, "_popinCell", void 0);
213
+ __decorate([
214
+ query("#actions-cell")
215
+ ], TableRow.prototype, "_actionsCell", void 0);
189
216
  TableRow = __decorate([
190
217
  customElement({
191
218
  tag: "ui5-table-row",
@@ -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 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"]}
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 query from \"@ui5/webcomponents-base/dist/decorators/query.js\";\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 type { UI5CustomEvent } from \"@ui5/webcomponents-base\";\nimport {\n\tTABLE_ROW_MULTIPLE_ACTIONS, TABLE_ROW_SINGLE_ACTION,\n} from \"./generated/i18n/i18n-defaults.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\t@query(\"#popin-cell\")\n\t_popinCell?: TableCell;\n\n\t@query(\"#actions-cell\")\n\t_actionsCell?: TableCell;\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 || this._isNavigable) {\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) || this._isNavigable;\n\t}\n\n\tget _isNavigable() {\n\t\treturn this._fixedActions.find(action => {\n\t\t\treturn action.hasAttribute(\"ui5-table-row-action-navigation\") && !action._isInteractive;\n\t\t}) !== undefined;\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 renderableActionsCount = 0;\n\t\treturn this.actions.some(action => {\n\t\t\tif (action.isFixedAction() || !action.invisible) {\n\t\t\t\trenderableActionsCount++;\n\t\t\t}\n\t\t\treturn renderableActionsCount > 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\tget _availableActionsCount() {\n\t\tif (this._rowActionCount < 1) {\n\t\t\treturn 0;\n\t\t}\n\n\t\treturn [...this._flexibleActions, ...this._fixedActions].filter(action => {\n\t\t\treturn !action.invisible && action._isInteractive;\n\t\t}).length + (this._hasOverflowActions ? 1 : 0);\n\t}\n\n\tget _actionCellAccText() {\n\t\tconst availableActionsCount = this._availableActionsCount;\n\t\tif (availableActionsCount > 0) {\n\t\t\tconst bundleKey = availableActionsCount === 1 ? TABLE_ROW_SINGLE_ACTION : TABLE_ROW_MULTIPLE_ACTIONS;\n\t\t\treturn TableRowBase.i18nBundle.getText(bundleKey, availableActionsCount);\n\t\t}\n\t}\n}\n\nTableRow.define();\n\nexport default TableRow;\n"]}
@@ -1,2 +1,2 @@
1
1
  import type TableRow from "./TableRow.js";
2
- export default function TableRowTemplate(this: TableRow): import("@ui5/webcomponents-base/jsx-runtime").JSX.Element;
2
+ export default function TableRowTemplate(this: TableRow, ariaColIndex?: number): import("@ui5/webcomponents-base/jsx-runtime").JSX.Element;
@@ -4,15 +4,23 @@ import CheckBox from "./CheckBox.js";
4
4
  import RadioButton from "./RadioButton.js";
5
5
  import Button from "./Button.js";
6
6
  import ButtonDesign from "./types/ButtonDesign.js";
7
- export default function TableRowTemplate() {
7
+ import iconOverflow from "@ui5/webcomponents-icons/dist/overflow.js";
8
+ export default function TableRowTemplate(ariaColIndex = 1) {
8
9
  return (_jsxs(_Fragment, { children: [this._hasSelector &&
9
- _jsx(TableCell, { id: "selection-cell", "aria-selected": this._isSelected, "data-ui5-table-cell-fixed": true, "data-ui5-table-selection-component": true, children: this._isMultiSelect ?
10
+ _jsx(TableCell, { id: "selection-cell", "aria-selected": this._isSelected, "aria-colindex": ariaColIndex++, "data-ui5-table-selection-cell": true, "data-ui5-table-cell-fixed": true, "data-ui5-table-acc-text": "", children: this._isMultiSelect ?
10
11
  _jsx(CheckBox, { id: "selection-component", tabindex: -1, checked: this._isSelected, onChange: this._onSelectionChange, accessibleName: this._i18nRowSelector })
11
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
- _jsxs(TableCell, { id: "actions-cell", children: [this._flexibleActions.map(action => (_jsx("slot", { name: action._individualSlot }))), this._hasOverflowActions &&
14
- _jsx(Button, { id: "overflow", icon: "overflow", design: ButtonDesign.Transparent, onClick: this._onOverflowButtonClick }), this._fixedActions.map(action => (_jsx("slot", { name: action._individualSlot })))] }), this._renderNavigated &&
13
+ _jsx(RadioButton, { id: "selection-component", tabindex: -1, name: this._tableId, checked: this._isSelected, onChange: this._onSelectionChange, accessibleName: this._i18nRowSelector }) }), this.cells.flatMap(cell => {
14
+ if (cell._popin) {
15
+ cell.ariaColIndex = null;
16
+ return [];
17
+ }
18
+ cell.ariaColIndex = `${ariaColIndex++}`;
19
+ return [_jsx("slot", { name: cell._individualSlot })];
20
+ }), this._rowActionCount > 0 &&
21
+ _jsxs(TableCell, { id: "actions-cell", "aria-colindex": ariaColIndex++, "data-ui5-table-acc-text": this._actionCellAccText, children: [this._flexibleActions.map(action => (_jsx("slot", { name: action._individualSlot }))), this._hasOverflowActions &&
22
+ _jsx(Button, { id: "overflow", icon: iconOverflow, design: ButtonDesign.Transparent, onClick: this._onOverflowButtonClick }), this._fixedActions.map(action => (_jsx("slot", { name: action._individualSlot })))] }), this._renderNavigated &&
15
23
  _jsx(TableCell, { id: "navigated-cell", "data-excluded-from-navigation": true, "aria-hidden": true, children: _jsx("div", { id: "navigated" }) }), this._popinCells.length > 0 &&
16
- _jsx(TableCell, { id: "popin-cell", children: this._popinCells.map(cell => (_jsx("slot", { name: cell._individualSlot }))) })] }));
24
+ _jsx(TableCell, { id: "popin-cell", "data-ui5-table-popin-cell": true, "aria-colindex": ariaColIndex++, children: this._popinCells.map(cell => (_jsx("slot", { name: cell._individualSlot }))) })] }));
17
25
  }
18
26
  //# 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,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"]}
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;AACnD,OAAO,YAAY,MAAM,2CAA2C,CAAC;AAGrE,MAAM,CAAC,OAAO,UAAU,gBAAgB,CAAiB,eAAuB,CAAC;IAChF,OAAO,CACN,8BACG,IAAI,CAAC,YAAY;gBAClB,KAAC,SAAS,IAAC,EAAE,EAAC,gBAAgB,mBACd,IAAI,CAAC,WAAW,mBAChB,YAAY,EAAE,uGAGL,EAAE,YAExB,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,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;gBAC3B,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;oBACjB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;oBACzB,OAAO,EAAE,CAAC;gBACX,CAAC;gBACD,IAAI,CAAC,YAAY,GAAG,GAAG,YAAY,EAAE,EAAE,CAAC;gBACxC,OAAO,CAAC,eAAM,IAAI,EAAE,IAAI,CAAC,eAAe,GAAS,CAAC,CAAC;YACpD,CAAC,CAAC,EAEA,IAAI,CAAC,eAAe,GAAG,CAAC;gBACzB,MAAC,SAAS,IAAC,EAAE,EAAC,cAAc,mBACZ,YAAY,EAAE,6BACJ,IAAI,CAAC,kBAAkB,aAE9C,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,IAAC,EAAE,EAAC,UAAU,EACpB,IAAI,EAAE,YAAY,EAClB,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,wDAEhB,IAAI,YAEjB,cAAK,EAAE,EAAC,WAAW,GAAO,GACf,EAGX,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC;gBAC5B,KAAC,SAAS,IAAC,EAAE,EAAC,YAAY,sDAEV,YAAY,EAAE,YAE3B,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 iconOverflow from \"@ui5/webcomponents-icons/dist/overflow.js\";\nimport type TableRow from \"./TableRow.js\";\n\nexport default function TableRowTemplate(this: TableRow, ariaColIndex: number = 1) {\n\treturn (\n\t\t<>\n\t\t\t{ this._hasSelector &&\n\t\t\t\t<TableCell id=\"selection-cell\"\n\t\t\t\t\taria-selected={this._isSelected}\n\t\t\t\t\taria-colindex={ariaColIndex++}\n\t\t\t\t\tdata-ui5-table-selection-cell\n\t\t\t\t\tdata-ui5-table-cell-fixed\n\t\t\t\t\tdata-ui5-table-acc-text=\"\"\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.cells.flatMap(cell => {\n\t\t\t\tif (cell._popin) {\n\t\t\t\t\tcell.ariaColIndex = null;\n\t\t\t\t\treturn [];\n\t\t\t\t}\n\t\t\t\tcell.ariaColIndex = `${ariaColIndex++}`;\n\t\t\t\treturn [<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\taria-colindex={ariaColIndex++}\n\t\t\t\t\tdata-ui5-table-acc-text={this._actionCellAccText}\n\t\t\t\t>\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 id=\"overflow\"\n\t\t\t\t\t\t\ticon={iconOverflow}\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\"\n\t\t\t\t\tdata-excluded-from-navigation\n\t\t\t\t\taria-hidden={true}\n\t\t\t\t>\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\tdata-ui5-table-popin-cell\n\t\t\t\t\taria-colindex={ariaColIndex++}\n\t\t\t\t>\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"]}
@@ -11,7 +11,7 @@ import customElement from "@ui5/webcomponents-base/dist/decorators/customElement
11
11
  import property from "@ui5/webcomponents-base/dist/decorators/property.js";
12
12
  import event from "@ui5/webcomponents-base/dist/decorators/event-strict.js";
13
13
  import TableSelectionMode from "./types/TableSelectionMode.js";
14
- import { isSelectionCheckbox, isHeaderSelector, findRowInPath } from "./TableUtils.js";
14
+ import { isSelectionCell, isHeaderSelectionCell, findRowInPath } from "./TableUtils.js";
15
15
  /**
16
16
  * @class
17
17
  *
@@ -237,11 +237,11 @@ let TableSelection = class TableSelection extends UI5Element {
237
237
  if (!this._table || this.mode !== TableSelectionMode.Multiple) {
238
238
  return;
239
239
  }
240
- if (isHeaderSelector(e)) {
240
+ if (isHeaderSelectionCell(e)) {
241
241
  this._stopRangeSelection();
242
242
  return;
243
243
  }
244
- if (!isSelectionCheckbox(e)) {
244
+ if (!isSelectionCell(e)) {
245
245
  this._stopRangeSelection();
246
246
  return;
247
247
  }