@ui5/webcomponents 2.27.0-rc.1 → 2.27.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 (297) hide show
  1. package/CHANGELOG.md +39 -0
  2. package/dist/.tsbuildinfo +1 -1
  3. package/dist/AvatarBadge.d.ts +16 -0
  4. package/dist/AvatarBadge.js +6 -0
  5. package/dist/AvatarBadge.js.map +1 -1
  6. package/dist/CardHeaderTemplate.js +6 -5
  7. package/dist/CardHeaderTemplate.js.map +1 -1
  8. package/dist/DateTimeInput.d.ts +6 -0
  9. package/dist/DateTimeInput.js +11 -0
  10. package/dist/DateTimeInput.js.map +1 -1
  11. package/dist/Filters.js +1 -1
  12. package/dist/Filters.js.map +1 -1
  13. package/dist/List.js +4 -1
  14. package/dist/List.js.map +1 -1
  15. package/dist/ListItem.d.ts +4 -4
  16. package/dist/ListItem.js +6 -6
  17. package/dist/ListItem.js.map +1 -1
  18. package/dist/ListItemGroupBase.d.ts +1 -1
  19. package/dist/ListItemGroupBase.js +1 -1
  20. package/dist/ListItemGroupBase.js.map +1 -1
  21. package/dist/MultiComboBox.js +1 -1
  22. package/dist/MultiComboBox.js.map +1 -1
  23. package/dist/NumberInput.d.ts +3 -3
  24. package/dist/NumberInput.js +2 -2
  25. package/dist/NumberInput.js.map +1 -1
  26. package/dist/RatingIndicator.d.ts +1 -5
  27. package/dist/RatingIndicator.js +6 -11
  28. package/dist/RatingIndicator.js.map +1 -1
  29. package/dist/RatingIndicatorTemplate.js +1 -1
  30. package/dist/RatingIndicatorTemplate.js.map +1 -1
  31. package/dist/Select.d.ts +1 -0
  32. package/dist/Select.js.map +1 -1
  33. package/dist/TableHeaderCell.d.ts +3 -0
  34. package/dist/TableHeaderCell.js +16 -0
  35. package/dist/TableHeaderCell.js.map +1 -1
  36. package/dist/TableHeaderCellTemplate.js +3 -15
  37. package/dist/TableHeaderCellTemplate.js.map +1 -1
  38. package/dist/TableHeaderRow.d.ts +2 -0
  39. package/dist/TableHeaderRow.js +6 -0
  40. package/dist/TableHeaderRow.js.map +1 -1
  41. package/dist/TableHeaderRowTemplate.js +6 -7
  42. package/dist/TableHeaderRowTemplate.js.map +1 -1
  43. package/dist/TableRow.d.ts +2 -0
  44. package/dist/TableRow.js +6 -0
  45. package/dist/TableRow.js.map +1 -1
  46. package/dist/TableRowActionBase.d.ts +3 -1
  47. package/dist/TableRowActionBase.js +8 -0
  48. package/dist/TableRowActionBase.js.map +1 -1
  49. package/dist/TableRowBase.d.ts +1 -0
  50. package/dist/TableRowBase.js +3 -0
  51. package/dist/TableRowBase.js.map +1 -1
  52. package/dist/TableRowTemplate.js +6 -11
  53. package/dist/TableRowTemplate.js.map +1 -1
  54. package/dist/TableSelection.d.ts +5 -0
  55. package/dist/TableSelection.js +11 -0
  56. package/dist/TableSelection.js.map +1 -1
  57. package/dist/TableSelectionBase.d.ts +13 -0
  58. package/dist/TableSelectionBase.js +18 -0
  59. package/dist/TableSelectionBase.js.map +1 -1
  60. package/dist/TableSelectionMulti.d.ts +5 -0
  61. package/dist/TableSelectionMulti.js +12 -0
  62. package/dist/TableSelectionMulti.js.map +1 -1
  63. package/dist/TableSelectionSingle.d.ts +2 -0
  64. package/dist/TableSelectionSingle.js +4 -0
  65. package/dist/TableSelectionSingle.js.map +1 -1
  66. package/dist/TimePicker.d.ts +10 -0
  67. package/dist/TimePicker.js +51 -11
  68. package/dist/TimePicker.js.map +1 -1
  69. package/dist/TimePickerPopoverTemplate.js +1 -1
  70. package/dist/TimePickerPopoverTemplate.js.map +1 -1
  71. package/dist/TimePickerTemplate.js +1 -1
  72. package/dist/TimePickerTemplate.js.map +1 -1
  73. package/dist/Token.d.ts +1 -0
  74. package/dist/Token.js +6 -0
  75. package/dist/Token.js.map +1 -1
  76. package/dist/Tokenizer.d.ts +6 -0
  77. package/dist/Tokenizer.js +27 -10
  78. package/dist/Tokenizer.js.map +1 -1
  79. package/dist/Toolbar.d.ts +27 -0
  80. package/dist/Toolbar.js +102 -20
  81. package/dist/Toolbar.js.map +1 -1
  82. package/dist/ToolbarItemBase.d.ts +51 -0
  83. package/dist/ToolbarItemBase.js +65 -0
  84. package/dist/ToolbarItemBase.js.map +1 -1
  85. package/dist/css/themes/AvatarBadge.css +1 -1
  86. package/dist/css/themes/CalendarHeader.css +1 -1
  87. package/dist/css/themes/CardHeader.css +1 -1
  88. package/dist/css/themes/DynamicDateRangePopover.css +1 -1
  89. package/dist/css/themes/ListItemBase.css +1 -1
  90. package/dist/css/themes/RatingIndicator.css +1 -1
  91. package/dist/css/themes/Token.css +1 -1
  92. package/dist/css/themes/sap_fiori_3_hcb/parameters-bundle.css +1 -1
  93. package/dist/css/themes/sap_fiori_3_hcw/parameters-bundle.css +1 -1
  94. package/dist/css/themes/sap_horizon/parameters-bundle.css +1 -1
  95. package/dist/css/themes/sap_horizon_auto/parameters-bundle.css +1 -1
  96. package/dist/css/themes/sap_horizon_dark/parameters-bundle.css +1 -1
  97. package/dist/css/themes/sap_horizon_hc_auto/parameters-bundle.css +2 -2
  98. package/dist/css/themes/sap_horizon_hcb/parameters-bundle.css +1 -1
  99. package/dist/css/themes/sap_horizon_hcw/parameters-bundle.css +1 -1
  100. package/dist/custom-elements-internal.json +179 -76
  101. package/dist/custom-elements.json +167 -72
  102. package/dist/dynamic-date-range-options/DateRange.js +3 -4
  103. package/dist/dynamic-date-range-options/DateRange.js.map +1 -1
  104. package/dist/dynamic-date-range-options/FromDateTime.js +4 -5
  105. package/dist/dynamic-date-range-options/FromDateTime.js.map +1 -1
  106. package/dist/dynamic-date-range-options/SingleDate.js +2 -2
  107. package/dist/dynamic-date-range-options/SingleDate.js.map +1 -1
  108. package/dist/dynamic-date-range-options/ToDateTime.js +4 -5
  109. package/dist/dynamic-date-range-options/ToDateTime.js.map +1 -1
  110. package/dist/dynamic-date-range-options/toDates.d.ts +2 -1
  111. package/dist/dynamic-date-range-options/toDates.js +5 -1
  112. package/dist/dynamic-date-range-options/toDates.js.map +1 -1
  113. package/dist/generated/assets/i18n/messagebundle_ar.json +1 -1
  114. package/dist/generated/assets/i18n/messagebundle_bg.json +1 -1
  115. package/dist/generated/assets/i18n/messagebundle_ca.json +1 -1
  116. package/dist/generated/assets/i18n/messagebundle_cnr.json +1 -1
  117. package/dist/generated/assets/i18n/messagebundle_cs.json +1 -1
  118. package/dist/generated/assets/i18n/messagebundle_cy.json +1 -1
  119. package/dist/generated/assets/i18n/messagebundle_da.json +1 -1
  120. package/dist/generated/assets/i18n/messagebundle_de.json +1 -1
  121. package/dist/generated/assets/i18n/messagebundle_el.json +1 -1
  122. package/dist/generated/assets/i18n/messagebundle_en.json +1 -1
  123. package/dist/generated/assets/i18n/messagebundle_en_GB.json +1 -1
  124. package/dist/generated/assets/i18n/messagebundle_en_US_sappsd.json +1 -1
  125. package/dist/generated/assets/i18n/messagebundle_en_US_saprigi.json +1 -1
  126. package/dist/generated/assets/i18n/messagebundle_en_US_saptrc.json +1 -1
  127. package/dist/generated/assets/i18n/messagebundle_es.json +1 -1
  128. package/dist/generated/assets/i18n/messagebundle_es_MX.json +1 -1
  129. package/dist/generated/assets/i18n/messagebundle_et.json +1 -1
  130. package/dist/generated/assets/i18n/messagebundle_fi.json +1 -1
  131. package/dist/generated/assets/i18n/messagebundle_fr.json +1 -1
  132. package/dist/generated/assets/i18n/messagebundle_fr_CA.json +1 -1
  133. package/dist/generated/assets/i18n/messagebundle_hi.json +1 -1
  134. package/dist/generated/assets/i18n/messagebundle_hr.json +1 -1
  135. package/dist/generated/assets/i18n/messagebundle_hu.json +1 -1
  136. package/dist/generated/assets/i18n/messagebundle_id.json +1 -1
  137. package/dist/generated/assets/i18n/messagebundle_it.json +1 -1
  138. package/dist/generated/assets/i18n/messagebundle_iw.json +1 -1
  139. package/dist/generated/assets/i18n/messagebundle_ja.json +1 -1
  140. package/dist/generated/assets/i18n/messagebundle_kk.json +1 -1
  141. package/dist/generated/assets/i18n/messagebundle_ko.json +1 -1
  142. package/dist/generated/assets/i18n/messagebundle_lt.json +1 -1
  143. package/dist/generated/assets/i18n/messagebundle_lv.json +1 -1
  144. package/dist/generated/assets/i18n/messagebundle_mk.json +1 -1
  145. package/dist/generated/assets/i18n/messagebundle_ms.json +1 -1
  146. package/dist/generated/assets/i18n/messagebundle_nl.json +1 -1
  147. package/dist/generated/assets/i18n/messagebundle_no.json +1 -1
  148. package/dist/generated/assets/i18n/messagebundle_pl.json +1 -1
  149. package/dist/generated/assets/i18n/messagebundle_pt.json +1 -1
  150. package/dist/generated/assets/i18n/messagebundle_pt_PT.json +1 -1
  151. package/dist/generated/assets/i18n/messagebundle_ro.json +1 -1
  152. package/dist/generated/assets/i18n/messagebundle_ru.json +1 -1
  153. package/dist/generated/assets/i18n/messagebundle_sh.json +1 -1
  154. package/dist/generated/assets/i18n/messagebundle_sk.json +1 -1
  155. package/dist/generated/assets/i18n/messagebundle_sl.json +1 -1
  156. package/dist/generated/assets/i18n/messagebundle_sr.json +1 -1
  157. package/dist/generated/assets/i18n/messagebundle_sv.json +1 -1
  158. package/dist/generated/assets/i18n/messagebundle_th.json +1 -1
  159. package/dist/generated/assets/i18n/messagebundle_tr.json +1 -1
  160. package/dist/generated/assets/i18n/messagebundle_uk.json +1 -1
  161. package/dist/generated/assets/i18n/messagebundle_vi.json +1 -1
  162. package/dist/generated/assets/i18n/messagebundle_zh_CN.json +1 -1
  163. package/dist/generated/assets/i18n/messagebundle_zh_TW.json +1 -1
  164. package/dist/generated/assets/themes/sap_fiori_3_hcb/parameters-bundle.css.json +1 -1
  165. package/dist/generated/assets/themes/sap_fiori_3_hcw/parameters-bundle.css.json +1 -1
  166. package/dist/generated/assets/themes/sap_horizon/parameters-bundle.css.json +1 -1
  167. package/dist/generated/assets/themes/sap_horizon_auto/parameters-bundle.css.json +1 -1
  168. package/dist/generated/assets/themes/sap_horizon_dark/parameters-bundle.css.json +1 -1
  169. package/dist/generated/assets/themes/sap_horizon_hc_auto/parameters-bundle.css.json +1 -1
  170. package/dist/generated/assets/themes/sap_horizon_hcb/parameters-bundle.css.json +1 -1
  171. package/dist/generated/assets/themes/sap_horizon_hcw/parameters-bundle.css.json +1 -1
  172. package/dist/generated/i18n/i18n-defaults.d.ts +3 -1
  173. package/dist/generated/i18n/i18n-defaults.js +6 -4
  174. package/dist/generated/i18n/i18n-defaults.js.map +1 -1
  175. package/dist/generated/themes/AvatarBadge.css.d.ts +1 -1
  176. package/dist/generated/themes/AvatarBadge.css.js +1 -1
  177. package/dist/generated/themes/AvatarBadge.css.js.map +1 -1
  178. package/dist/generated/themes/CalendarHeader.css.d.ts +1 -1
  179. package/dist/generated/themes/CalendarHeader.css.js +1 -1
  180. package/dist/generated/themes/CalendarHeader.css.js.map +1 -1
  181. package/dist/generated/themes/CardHeader.css.d.ts +1 -1
  182. package/dist/generated/themes/CardHeader.css.js +1 -1
  183. package/dist/generated/themes/CardHeader.css.js.map +1 -1
  184. package/dist/generated/themes/DynamicDateRangePopover.css.d.ts +1 -1
  185. package/dist/generated/themes/DynamicDateRangePopover.css.js +1 -1
  186. package/dist/generated/themes/DynamicDateRangePopover.css.js.map +1 -1
  187. package/dist/generated/themes/ListItemBase.css.d.ts +1 -1
  188. package/dist/generated/themes/ListItemBase.css.js +1 -1
  189. package/dist/generated/themes/ListItemBase.css.js.map +1 -1
  190. package/dist/generated/themes/RatingIndicator.css.d.ts +1 -1
  191. package/dist/generated/themes/RatingIndicator.css.js +1 -1
  192. package/dist/generated/themes/RatingIndicator.css.js.map +1 -1
  193. package/dist/generated/themes/Token.css.d.ts +1 -1
  194. package/dist/generated/themes/Token.css.js +1 -1
  195. package/dist/generated/themes/Token.css.js.map +1 -1
  196. package/dist/generated/themes/sap_fiori_3_hcb/parameters-bundle.css.d.ts +1 -1
  197. package/dist/generated/themes/sap_fiori_3_hcb/parameters-bundle.css.js +1 -1
  198. package/dist/generated/themes/sap_fiori_3_hcb/parameters-bundle.css.js.map +1 -1
  199. package/dist/generated/themes/sap_fiori_3_hcw/parameters-bundle.css.d.ts +1 -1
  200. package/dist/generated/themes/sap_fiori_3_hcw/parameters-bundle.css.js +1 -1
  201. package/dist/generated/themes/sap_fiori_3_hcw/parameters-bundle.css.js.map +1 -1
  202. package/dist/generated/themes/sap_horizon/parameters-bundle.css.d.ts +1 -1
  203. package/dist/generated/themes/sap_horizon/parameters-bundle.css.js +1 -1
  204. package/dist/generated/themes/sap_horizon/parameters-bundle.css.js.map +1 -1
  205. package/dist/generated/themes/sap_horizon_auto/parameters-bundle.css.d.ts +1 -1
  206. package/dist/generated/themes/sap_horizon_auto/parameters-bundle.css.js +1 -1
  207. package/dist/generated/themes/sap_horizon_auto/parameters-bundle.css.js.map +1 -1
  208. package/dist/generated/themes/sap_horizon_dark/parameters-bundle.css.d.ts +1 -1
  209. package/dist/generated/themes/sap_horizon_dark/parameters-bundle.css.js +1 -1
  210. package/dist/generated/themes/sap_horizon_dark/parameters-bundle.css.js.map +1 -1
  211. package/dist/generated/themes/sap_horizon_hc_auto/parameters-bundle.css.d.ts +1 -1
  212. package/dist/generated/themes/sap_horizon_hc_auto/parameters-bundle.css.js +2 -2
  213. package/dist/generated/themes/sap_horizon_hc_auto/parameters-bundle.css.js.map +1 -1
  214. package/dist/generated/themes/sap_horizon_hcb/parameters-bundle.css.d.ts +1 -1
  215. package/dist/generated/themes/sap_horizon_hcb/parameters-bundle.css.js +1 -1
  216. package/dist/generated/themes/sap_horizon_hcb/parameters-bundle.css.js.map +1 -1
  217. package/dist/generated/themes/sap_horizon_hcw/parameters-bundle.css.d.ts +1 -1
  218. package/dist/generated/themes/sap_horizon_hcw/parameters-bundle.css.js +1 -1
  219. package/dist/generated/themes/sap_horizon_hcw/parameters-bundle.css.js.map +1 -1
  220. package/dist/types/ListItemType.d.ts +2 -1
  221. package/dist/types/ListItemType.js +2 -1
  222. package/dist/types/ListItemType.js.map +1 -1
  223. package/dist/vscode.html-custom-data.json +38 -18
  224. package/dist/web-types.json +76 -36
  225. package/package.json +9 -9
  226. package/src/CardHeaderTemplate.tsx +19 -20
  227. package/src/RatingIndicatorTemplate.tsx +0 -1
  228. package/src/TableHeaderCellTemplate.tsx +4 -16
  229. package/src/TableHeaderRowTemplate.tsx +15 -15
  230. package/src/TableRowTemplate.tsx +10 -20
  231. package/src/TimePickerPopoverTemplate.tsx +1 -0
  232. package/src/TimePickerTemplate.tsx +1 -0
  233. package/src/i18n/messagebundle.properties +6 -0
  234. package/src/i18n/messagebundle_ar.properties +13 -6
  235. package/src/i18n/messagebundle_bg.properties +13 -6
  236. package/src/i18n/messagebundle_ca.properties +13 -6
  237. package/src/i18n/messagebundle_cnr.properties +13 -6
  238. package/src/i18n/messagebundle_cs.properties +13 -6
  239. package/src/i18n/messagebundle_cy.properties +13 -6
  240. package/src/i18n/messagebundle_da.properties +13 -6
  241. package/src/i18n/messagebundle_de.properties +13 -6
  242. package/src/i18n/messagebundle_el.properties +13 -6
  243. package/src/i18n/messagebundle_en.properties +11 -6
  244. package/src/i18n/messagebundle_en_GB.properties +13 -6
  245. package/src/i18n/messagebundle_en_US_sappsd.properties +13 -6
  246. package/src/i18n/messagebundle_en_US_saprigi.properties +6 -0
  247. package/src/i18n/messagebundle_en_US_saptrc.properties +13 -6
  248. package/src/i18n/messagebundle_es.properties +13 -6
  249. package/src/i18n/messagebundle_es_MX.properties +13 -6
  250. package/src/i18n/messagebundle_et.properties +13 -6
  251. package/src/i18n/messagebundle_fi.properties +13 -6
  252. package/src/i18n/messagebundle_fr.properties +13 -6
  253. package/src/i18n/messagebundle_fr_CA.properties +13 -6
  254. package/src/i18n/messagebundle_hi.properties +13 -6
  255. package/src/i18n/messagebundle_hr.properties +13 -6
  256. package/src/i18n/messagebundle_hu.properties +13 -6
  257. package/src/i18n/messagebundle_id.properties +13 -6
  258. package/src/i18n/messagebundle_it.properties +13 -6
  259. package/src/i18n/messagebundle_iw.properties +13 -6
  260. package/src/i18n/messagebundle_ja.properties +13 -6
  261. package/src/i18n/messagebundle_kk.properties +13 -6
  262. package/src/i18n/messagebundle_ko.properties +13 -6
  263. package/src/i18n/messagebundle_lt.properties +13 -6
  264. package/src/i18n/messagebundle_lv.properties +13 -6
  265. package/src/i18n/messagebundle_mk.properties +13 -6
  266. package/src/i18n/messagebundle_ms.properties +13 -6
  267. package/src/i18n/messagebundle_nl.properties +13 -6
  268. package/src/i18n/messagebundle_no.properties +13 -6
  269. package/src/i18n/messagebundle_pl.properties +13 -6
  270. package/src/i18n/messagebundle_pt.properties +13 -6
  271. package/src/i18n/messagebundle_pt_PT.properties +13 -6
  272. package/src/i18n/messagebundle_ro.properties +13 -6
  273. package/src/i18n/messagebundle_ru.properties +13 -6
  274. package/src/i18n/messagebundle_sh.properties +13 -6
  275. package/src/i18n/messagebundle_sk.properties +13 -6
  276. package/src/i18n/messagebundle_sl.properties +13 -6
  277. package/src/i18n/messagebundle_sr.properties +13 -6
  278. package/src/i18n/messagebundle_sv.properties +13 -6
  279. package/src/i18n/messagebundle_th.properties +13 -6
  280. package/src/i18n/messagebundle_tr.properties +13 -6
  281. package/src/i18n/messagebundle_uk.properties +13 -6
  282. package/src/i18n/messagebundle_vi.properties +13 -6
  283. package/src/i18n/messagebundle_zh_CN.properties +13 -6
  284. package/src/i18n/messagebundle_zh_TW.properties +13 -6
  285. package/src/themes/AvatarBadge.css +12 -0
  286. package/src/themes/CalendarHeader.css +7 -6
  287. package/src/themes/CardHeader.css +12 -14
  288. package/src/themes/DynamicDateRangePopover.css +2 -3
  289. package/src/themes/ListItemBase.css +1 -1
  290. package/src/themes/RatingIndicator.css +2 -1
  291. package/src/themes/Token.css +6 -3
  292. package/src/themes/sap_fiori_3_hcb/CalendarHeader-parameters.css +3 -4
  293. package/src/themes/sap_fiori_3_hcw/CalendarHeader-parameters.css +3 -4
  294. package/src/themes/sap_horizon/CalendarHeader-parameters.css +0 -1
  295. package/src/themes/sap_horizon_dark/CalendarHeader-parameters.css +0 -1
  296. package/src/themes/sap_horizon_hcb/CalendarHeader-parameters.css +3 -3
  297. package/src/themes/sap_horizon_hcw/CalendarHeader-parameters.css +3 -3
@@ -1 +1 @@
1
- {"version":3,"file":"TableRow.js","sourceRoot":"","sources":["../src/TableRow.ts"],"names":[],"mappings":"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","sourcesContent":["import { customElement, slotStrict as 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 type { Slot, DefaultSlot } from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport {\n\tTABLE_ROW_MULTIPLE_ACTIONS, TABLE_ROW_SINGLE_ACTION, TABLE_ROW_OVERFLOW_BUTTON,\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<TableCell> {\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: [\"merged\", \"_popin\", \"_popinHidden\"],\n\t\t\tslots: false,\n\t\t},\n\t})\n\tcells!: DefaultSlot<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!: Slot<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\tonBeforeRendering() {\n\t\tsuper.onBeforeRendering();\n\t\tthis.ariaRowIndex = (this.role === \"row\") ? `${this._rowIndex + 2}` : null;\n\t\ttoggleAttribute(this, \"draggable\", this.movable, \"true\");\n\t\ttoggleAttribute(this, \"_interactive\", this._isInteractive);\n\t\ttoggleAttribute(this, \"_alternate\", this._alternate);\n\t}\n\n\tasync _onpointerdown(e: PointerEvent) {\n\t\tif (e.button !== 0 || !this._isInteractive) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst composedPath = e.composedPath();\n\t\tcomposedPath.splice(composedPath.indexOf(this));\n\t\tawait new Promise(resolve => setTimeout(resolve)); // wait for the focus to be set\n\t\tconst activeElement = getActiveElement() as Element;\n\t\tif (!composedPath.includes(activeElement)) {\n\t\t\tthis._setActive(\"pointerup\");\n\t\t}\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._setActive(\"keyup\");\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_setActive(deactivationEvent: string) {\n\t\tthis.toggleAttribute(\"_active\", true);\n\t\tdocument.addEventListener(deactivationEvent, () => {\n\t\t\tthis.removeAttribute(\"_active\");\n\t\t}, { once: true });\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.invisible && !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 _overflowButtonTooltip() {\n\t\treturn TableRowBase.i18nBundle.getText(TABLE_ROW_OVERFLOW_BUTTON);\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
+ {"version":3,"file":"TableRow.js","sourceRoot":"","sources":["../src/TableRow.ts"],"names":[],"mappings":"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","sourcesContent":["import { customElement, slotStrict as 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 type { Slot, DefaultSlot } from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport {\n\tTABLE_ROW_MULTIPLE_ACTIONS, TABLE_ROW_SINGLE_ACTION, TABLE_ROW_OVERFLOW_BUTTON,\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<TableCell> {\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: [\"merged\", \"_popin\", \"_popinHidden\"],\n\t\t\tslots: false,\n\t\t},\n\t})\n\tcells!: DefaultSlot<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!: Slot<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\tonBeforeRendering() {\n\t\tsuper.onBeforeRendering();\n\t\tthis.ariaRowIndex = (this.role === \"row\") ? `${this._rowIndex + 2}` : null;\n\t\ttoggleAttribute(this, \"draggable\", this.movable, \"true\");\n\t\ttoggleAttribute(this, \"_interactive\", this._isInteractive);\n\t\ttoggleAttribute(this, \"_alternate\", this._alternate);\n\t}\n\n\tasync _onpointerdown(e: PointerEvent) {\n\t\tif (e.button !== 0 || !this._isInteractive) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst composedPath = e.composedPath();\n\t\tcomposedPath.splice(composedPath.indexOf(this));\n\t\tawait new Promise(resolve => setTimeout(resolve)); // wait for the focus to be set\n\t\tconst activeElement = getActiveElement() as Element;\n\t\tif (!composedPath.includes(activeElement)) {\n\t\t\tthis._setActive(\"pointerup\");\n\t\t}\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._setActive(\"keyup\");\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_setActive(deactivationEvent: string) {\n\t\tthis.toggleAttribute(\"_active\", true);\n\t\tdocument.addEventListener(deactivationEvent, () => {\n\t\t\tthis.removeAttribute(\"_active\");\n\t\t}, { once: true });\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.invisible && !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 _overflowButtonTooltip() {\n\t\treturn TableRowBase.i18nBundle.getText(TABLE_ROW_OVERFLOW_BUTTON);\n\t}\n\n\tget _overflowButtonComponent(): typeof Button | undefined {\n\t\treturn this.actions.at(0)?.overflowButtonComponent;\n\t}\n\n\tget _overflowButtonIcon(): string | undefined {\n\t\treturn this.actions.at(0)?.overflowButtonIcon;\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,6 +1,6 @@
1
1
  import UI5Element from "@ui5/webcomponents-base/dist/UI5Element.js";
2
2
  import type { UI5CustomEvent } from "@ui5/webcomponents-base";
3
- import type Button from "./Button.js";
3
+ import Button from "./Button.js";
4
4
  /**
5
5
  * Fired when a row action is clicked.
6
6
  *
@@ -20,6 +20,8 @@ declare abstract class TableRowActionBase extends UI5Element {
20
20
  * @public
21
21
  */
22
22
  invisible: boolean;
23
+ get overflowButtonComponent(): typeof Button;
24
+ get overflowButtonIcon(): string;
23
25
  private static _menu;
24
26
  private static _menuItems;
25
27
  static showMenu(actions: TableRowActionBase[], opener: HTMLElement): Promise<void>;
@@ -9,6 +9,8 @@ import { customElement, property, eventStrict } from "@ui5/webcomponents-base/di
9
9
  import jsxRenderer from "@ui5/webcomponents-base/dist/renderer/JsxRenderer.js";
10
10
  import TableRowActionBaseTemplate from "./TableRowActionBaseTemplate.js";
11
11
  import TableRowActionBaseStyles from "./generated/themes/TableRowActionBase.css.js";
12
+ import Button from "./Button.js";
13
+ import iconOverflow from "@ui5/webcomponents-icons/dist/overflow.js";
12
14
  let MenuConstructor;
13
15
  let MenuItemConstructor;
14
16
  /**
@@ -30,6 +32,12 @@ let TableRowActionBase = class TableRowActionBase extends UI5Element {
30
32
  */
31
33
  this.invisible = false;
32
34
  }
35
+ get overflowButtonComponent() {
36
+ return Button;
37
+ }
38
+ get overflowButtonIcon() {
39
+ return iconOverflow;
40
+ }
33
41
  static async showMenu(actions, opener) {
34
42
  if (!MenuConstructor) {
35
43
  [MenuConstructor, MenuItemConstructor] = await Promise.all([
@@ -1 +1 @@
1
- {"version":3,"file":"TableRowActionBase.js","sourceRoot":"","sources":["../src/TableRowActionBase.ts"],"names":[],"mappings":"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","sourcesContent":["import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport { customElement, property, 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\";\n\nimport TableRowActionBaseTemplate from \"./TableRowActionBaseTemplate.js\";\nimport TableRowActionBaseStyles from \"./generated/themes/TableRowActionBase.css.js\";\nimport type Menu from \"./Menu.js\";\nimport type MenuItem from \"./MenuItem.js\";\nimport type Table from \"./Table.js\";\nimport type TableRow from \"./TableRow.js\";\nimport type TableRowAction from \"./TableRowAction.js\";\nimport type Button from \"./Button.js\";\n\nlet MenuConstructor: new () => Menu;\nlet MenuItemConstructor: new () => MenuItem;\n\n/**\n * Fired when a row action is clicked.\n *\n * @public\n * @since 2.9.0\n */\n@eventStrict(\"click\", {\n\tbubbles: false,\n})\n\n/**\n * @class\n * The `TableRowActionBase` class serves as a foundation for table row actions.\n * @constructor\n * @abstract\n * @extends UI5Element\n * @since 2.7.0\n * @public\n */\n@customElement({\n\trenderer: jsxRenderer,\n\tstyles: TableRowActionBaseStyles,\n\ttemplate: TableRowActionBaseTemplate,\n})\n\nabstract class TableRowActionBase extends UI5Element {\n\teventDetails!: {\n\t\t\"click\": void,\n\t}\n\n\t/**\n\t * Defines the visibility of the row action.\n\t *\n\t * **Note:** Invisible row actions still take up space, allowing to hide the action while maintaining its position.\n\t *\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\tinvisible = false;\n\n\tprivate static _menu: Menu;\n\tprivate static _menuItems = new WeakMap();\n\tstatic async showMenu(actions: TableRowActionBase[], opener: HTMLElement) {\n\t\tif (!MenuConstructor) {\n\t\t\t[MenuConstructor, MenuItemConstructor] = await Promise.all([\n\t\t\t\timport(\"./Menu.js\").then(module => module.default),\n\t\t\t\timport(\"./MenuItem.js\").then(module => module.default),\n\t\t\t]);\n\t\t}\n\n\t\tif (!this._menu || !this._menu.isConnected) {\n\t\t\tthis._menu = new MenuConstructor();\n\t\t\tthis._menu.addEventListener(\"item-click\", ((e: CustomEvent) => {\n\t\t\t\tconst menuItem = e.detail.item as MenuItem;\n\t\t\t\tconst rowAction = this._menuItems.get(menuItem) as TableRowAction;\n\t\t\t\trowAction._fireClickEvent();\n\t\t\t}) as EventListener);\n\t\t\tdocument.body.append(this._menu);\n\t\t}\n\n\t\tconst menuItems = actions.map(action => {\n\t\t\tconst menuItem = new MenuItemConstructor();\n\t\t\tmenuItem.icon = action._icon;\n\t\t\tmenuItem.text = action._text;\n\t\t\tmenuItem.disabled = !action._isInteractive;\n\t\t\tthis._menuItems.set(menuItem, action);\n\t\t\treturn menuItem;\n\t\t});\n\n\t\tthis._menu.replaceChildren(...menuItems);\n\t\tthis._menu.opener = opener;\n\t\tthis._menu.open = true;\n\t}\n\n\tabstract getRenderInfo(): {\n\t\ttext: string;\n\t\ticon: string;\n\t\tinteractive?: boolean;\n\t};\n\n\tisFixedAction() {\n\t\treturn false;\n\t}\n\n\tonEnterDOM(): void {\n\t\tthis.toggleAttribute(\"_fixed\", this.isFixedAction());\n\t}\n\n\t_fireClickEvent() {\n\t\tconst row = this.parentElement as TableRow;\n\t\tconst table = row.parentElement as Table;\n\t\tthis.fireDecoratorEvent(\"click\");\n\t\ttable._onRowActionClick(this);\n\t}\n\n\t_onActionClick(e: UI5CustomEvent<Button, \"click\">) {\n\t\tthis._fireClickEvent();\n\t\te.stopPropagation();\n\t}\n\n\tget _text() {\n\t\treturn this.getRenderInfo().text;\n\t}\n\n\tget _icon() {\n\t\treturn this.getRenderInfo().icon;\n\t}\n\n\tget _isInteractive() {\n\t\treturn this.getRenderInfo().interactive !== false;\n\t}\n}\n\nexport default TableRowActionBase;\n"]}
1
+ {"version":3,"file":"TableRowActionBase.js","sourceRoot":"","sources":["../src/TableRowActionBase.ts"],"names":[],"mappings":"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","sourcesContent":["import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport { customElement, property, 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\";\n\nimport TableRowActionBaseTemplate from \"./TableRowActionBaseTemplate.js\";\nimport TableRowActionBaseStyles from \"./generated/themes/TableRowActionBase.css.js\";\nimport Button from \"./Button.js\";\nimport iconOverflow from \"@ui5/webcomponents-icons/dist/overflow.js\";\nimport type Menu from \"./Menu.js\";\nimport type MenuItem from \"./MenuItem.js\";\nimport type Table from \"./Table.js\";\nimport type TableRow from \"./TableRow.js\";\nimport type TableRowAction from \"./TableRowAction.js\";\n\nlet MenuConstructor: new () => Menu;\nlet MenuItemConstructor: new () => MenuItem;\n\n/**\n * Fired when a row action is clicked.\n *\n * @public\n * @since 2.9.0\n */\n@eventStrict(\"click\", {\n\tbubbles: false,\n})\n\n/**\n * @class\n * The `TableRowActionBase` class serves as a foundation for table row actions.\n * @constructor\n * @abstract\n * @extends UI5Element\n * @since 2.7.0\n * @public\n */\n@customElement({\n\trenderer: jsxRenderer,\n\tstyles: TableRowActionBaseStyles,\n\ttemplate: TableRowActionBaseTemplate,\n})\n\nabstract class TableRowActionBase extends UI5Element {\n\teventDetails!: {\n\t\t\"click\": void,\n\t}\n\n\t/**\n\t * Defines the visibility of the row action.\n\t *\n\t * **Note:** Invisible row actions still take up space, allowing to hide the action while maintaining its position.\n\t *\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\tinvisible = false;\n\n\tget overflowButtonComponent(): typeof Button {\n\t\treturn Button;\n\t}\n\n\tget overflowButtonIcon(): string {\n\t\treturn iconOverflow;\n\t}\n\n\tprivate static _menu: Menu;\n\tprivate static _menuItems = new WeakMap();\n\tstatic async showMenu(actions: TableRowActionBase[], opener: HTMLElement) {\n\t\tif (!MenuConstructor) {\n\t\t\t[MenuConstructor, MenuItemConstructor] = await Promise.all([\n\t\t\t\timport(\"./Menu.js\").then(module => module.default),\n\t\t\t\timport(\"./MenuItem.js\").then(module => module.default),\n\t\t\t]);\n\t\t}\n\n\t\tif (!this._menu || !this._menu.isConnected) {\n\t\t\tthis._menu = new MenuConstructor();\n\t\t\tthis._menu.addEventListener(\"item-click\", ((e: CustomEvent) => {\n\t\t\t\tconst menuItem = e.detail.item as MenuItem;\n\t\t\t\tconst rowAction = this._menuItems.get(menuItem) as TableRowAction;\n\t\t\t\trowAction._fireClickEvent();\n\t\t\t}) as EventListener);\n\t\t\tdocument.body.append(this._menu);\n\t\t}\n\n\t\tconst menuItems = actions.map(action => {\n\t\t\tconst menuItem = new MenuItemConstructor();\n\t\t\tmenuItem.icon = action._icon;\n\t\t\tmenuItem.text = action._text;\n\t\t\tmenuItem.disabled = !action._isInteractive;\n\t\t\tthis._menuItems.set(menuItem, action);\n\t\t\treturn menuItem;\n\t\t});\n\n\t\tthis._menu.replaceChildren(...menuItems);\n\t\tthis._menu.opener = opener;\n\t\tthis._menu.open = true;\n\t}\n\n\tabstract getRenderInfo(): {\n\t\ttext: string;\n\t\ticon: string;\n\t\tinteractive?: boolean;\n\t};\n\n\tisFixedAction() {\n\t\treturn false;\n\t}\n\n\tonEnterDOM(): void {\n\t\tthis.toggleAttribute(\"_fixed\", this.isFixedAction());\n\t}\n\n\t_fireClickEvent() {\n\t\tconst row = this.parentElement as TableRow;\n\t\tconst table = row.parentElement as Table;\n\t\tthis.fireDecoratorEvent(\"click\");\n\t\ttable._onRowActionClick(this);\n\t}\n\n\t_onActionClick(e: UI5CustomEvent<Button, \"click\">) {\n\t\tthis._fireClickEvent();\n\t\te.stopPropagation();\n\t}\n\n\tget _text() {\n\t\treturn this.getRenderInfo().text;\n\t}\n\n\tget _icon() {\n\t\treturn this.getRenderInfo().icon;\n\t}\n\n\tget _isInteractive() {\n\t\treturn this.getRenderInfo().interactive !== false;\n\t}\n}\n\nexport default TableRowActionBase;\n"]}
@@ -38,6 +38,7 @@ declare abstract class TableRowBase<TCell extends TableCellBase = TableCellBase>
38
38
  get _isSelected(): boolean | undefined;
39
39
  get _isSelectable(): boolean | undefined;
40
40
  get _isMultiSelect(): boolean;
41
+ get _selectionComponent(): typeof UI5Element | typeof import("./RadioButton.js").default | typeof import("./CheckBox.js").default | undefined;
41
42
  get _hasSelector(): boolean | undefined;
42
43
  get _visibleCells(): TCell[];
43
44
  get _firstVisibleCell(): TCell | undefined;
@@ -105,6 +105,9 @@ let TableRowBase = TableRowBase_1 = class TableRowBase extends UI5Element {
105
105
  get _isMultiSelect() {
106
106
  return !!this._tableSelection?.isMultiSelectable();
107
107
  }
108
+ get _selectionComponent() {
109
+ return this._tableSelection?.getSelectionComponent();
110
+ }
108
111
  get _hasSelector() {
109
112
  return this._table?._isRowSelectorRequired;
110
113
  }
@@ -1 +1 @@
1
- {"version":3,"file":"TableRowBase.js","sourceRoot":"","sources":["../src/TableRowBase.ts"],"names":[],"mappings":"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","sourcesContent":["import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport { customElement, property, i18n } from \"@ui5/webcomponents-base/dist/decorators.js\";\nimport { isEnter, isSpace } from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport { isInstanceOfTable, toggleAttribute } from \"./TableUtils.js\";\nimport jsxRenderer from \"@ui5/webcomponents-base/dist/renderer/JsxRenderer.js\";\nimport TableRowBaseCss from \"./generated/themes/TableRowBase.css.js\";\nimport query from \"@ui5/webcomponents-base/dist/decorators/query.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport type TableCellBase from \"./TableCellBase.js\";\nimport type Table from \"./Table.js\";\nimport {\n\tTABLE_ROW_SELECTOR,\n} from \"./generated/i18n/i18n-defaults.js\";\n\n/**\n * @class\n * A class to serve as a foundation for the `TableRow` and `TableHeaderRow` classes.\n * @constructor\n * @abstract\n * @extends UI5Element\n * @since 2.0.0\n * @public\n */\n@customElement({\n\trenderer: jsxRenderer,\n\tstyles: TableRowBaseCss,\n})\nabstract class TableRowBase<TCell extends TableCellBase = TableCellBase> extends UI5Element {\n\tcells!: Array<TCell>;\n\n\t@property({ type: Number, noAttribute: true })\n\t_invalidate = 0;\n\n\t@property({ type: Number, noAttribute: true })\n\t_rowActionCount = 0;\n\n\t@property({ type: Boolean, noAttribute: true })\n\t_renderNavigated = false;\n\n\t@property({ type: Boolean, noAttribute: true })\n\t_alternate = false;\n\n\t@property({ type: Boolean })\n\t_renderDummyCell = false;\n\n\t@query(\"#selection-cell\")\n\t_selectionCell?: HTMLElement;\n\n\t@query(\"#actions-cell\")\n\t_actionsCell?: HTMLElement;\n\n\t@query(\"#navigated-cell\")\n\t_navigatedCell?: HTMLElement;\n\n\t@i18n(\"@ui5/webcomponents\")\n\tstatic i18nBundle: I18nBundle;\n\n\tisHeaderRow(): boolean {\n\t\treturn false;\n\t}\n\n\tisGroupRow(): boolean {\n\t\treturn false;\n\t}\n\n\tonEnterDOM() {\n\t\t!this.role && this.setAttribute(\"role\", \"row\");\n\t\tthis.toggleAttribute(\"ui5-table-row-base\", true);\n\t}\n\n\tonBeforeRendering() {\n\t\ttoggleAttribute(this, \"aria-selected\", this._isSelectable, `${this._isSelected}`);\n\t\ttoggleAttribute(this, \"_has-popin\", this._hasPopin);\n\t}\n\n\tonAfterRendering() {\n\t\tthis._handleCustomFocusOutline();\n\t}\n\n\tgetFocusDomRef() {\n\t\treturn this;\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\tthis._handleCustomFocusOutline();\n\t\treturn Promise.resolve();\n\t}\n\n\t_handleCustomFocusOutline() {\n\t\tif (this._renderDummyCell && !this._hasPopin && document.activeElement === this) {\n\t\t\tconst cells = [...this.shadowRoot!.children].flatMap(element => {\n\t\t\t\treturn element.localName === \"slot\" ? (element as HTMLSlotElement).assignedElements() : [element];\n\t\t\t});\n\t\t\tconst customOutlineAttribute = \"data-ui5-custom-outline\";\n\t\t\tcells.forEach(cell => cell.removeAttribute(customOutlineAttribute));\n\t\t\tconst firstVisibleCell = cells.at(0);\n\t\t\tconst lastVisibleCell = cells.at(-2);\n\t\t\tif (firstVisibleCell === lastVisibleCell) {\n\t\t\t\tfirstVisibleCell?.setAttribute(customOutlineAttribute, \"startend\");\n\t\t\t} else {\n\t\t\t\tfirstVisibleCell?.setAttribute(customOutlineAttribute, \"start\");\n\t\t\t\tlastVisibleCell?.setAttribute(customOutlineAttribute, \"end\");\n\t\t\t}\n\t\t}\n\t}\n\n\t_onSelectionChange() {\n\t\tconst tableSelection = this._tableSelection!;\n\t\tconst selected = tableSelection.isMultiSelectable() ? !this._isSelected : true;\n\t\ttableSelection.setSelected(this, selected, true);\n\t}\n\n\t_onkeydown(e: KeyboardEvent, eventOrigin: HTMLElement) {\n\t\tif ((eventOrigin === this && this._isSelectable && isSpace(e)) || (eventOrigin === this._selectionCell && (isSpace(e) || isEnter(e)))) {\n\t\t\tthis._onSelectionChange();\n\t\t\te.preventDefault();\n\t\t}\n\t}\n\n\tget _table(): Table | undefined {\n\t\tconst element = this.parentElement;\n\t\treturn isInstanceOfTable(element) ? element : undefined;\n\t}\n\n\tget _tableId() {\n\t\treturn this._table?._id;\n\t}\n\n\tget _tableSelection() {\n\t\treturn this._table?._getSelection();\n\t}\n\n\tget _isSelected() {\n\t\treturn this._tableSelection?.isSelected(this);\n\t}\n\n\tget _isSelectable() {\n\t\treturn this._tableSelection?.isSelectable();\n\t}\n\n\tget _isMultiSelect() {\n\t\treturn !!this._tableSelection?.isMultiSelectable();\n\t}\n\n\tget _hasSelector() {\n\t\treturn this._table?._isRowSelectorRequired;\n\t}\n\n\tget _visibleCells() {\n\t\treturn this.cells.filter(c => !c._popin);\n\t}\n\n\tget _firstVisibleCell() {\n\t\treturn this.cells.find(c => !c._popin);\n\t}\n\n\tget _popinCells() {\n\t\treturn this.cells.filter(c => c._popin && !c._popinHidden);\n\t}\n\n\tget _hasPopin() {\n\t\treturn (this._table?.rows.length ?? 0) > 0 && this.cells.some(c => c._popin && !c._popinHidden);\n\t}\n\n\tget _stickyCells() {\n\t\treturn [this._selectionCell, this._actionsCell, this._navigatedCell].filter(Boolean) as HTMLElement[];\n\t}\n\n\tget _i18nRowSelector(): string {\n\t\treturn TableRowBase.i18nBundle.getText(TABLE_ROW_SELECTOR);\n\t}\n}\n\nexport default TableRowBase;\n"]}
1
+ {"version":3,"file":"TableRowBase.js","sourceRoot":"","sources":["../src/TableRowBase.ts"],"names":[],"mappings":"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","sourcesContent":["import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport { customElement, property, i18n } from \"@ui5/webcomponents-base/dist/decorators.js\";\nimport { isEnter, isSpace } from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport { isInstanceOfTable, toggleAttribute } from \"./TableUtils.js\";\nimport jsxRenderer from \"@ui5/webcomponents-base/dist/renderer/JsxRenderer.js\";\nimport TableRowBaseCss from \"./generated/themes/TableRowBase.css.js\";\nimport query from \"@ui5/webcomponents-base/dist/decorators/query.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport type TableCellBase from \"./TableCellBase.js\";\nimport type Table from \"./Table.js\";\nimport {\n\tTABLE_ROW_SELECTOR,\n} from \"./generated/i18n/i18n-defaults.js\";\n\n/**\n * @class\n * A class to serve as a foundation for the `TableRow` and `TableHeaderRow` classes.\n * @constructor\n * @abstract\n * @extends UI5Element\n * @since 2.0.0\n * @public\n */\n@customElement({\n\trenderer: jsxRenderer,\n\tstyles: TableRowBaseCss,\n})\nabstract class TableRowBase<TCell extends TableCellBase = TableCellBase> extends UI5Element {\n\tcells!: Array<TCell>;\n\n\t@property({ type: Number, noAttribute: true })\n\t_invalidate = 0;\n\n\t@property({ type: Number, noAttribute: true })\n\t_rowActionCount = 0;\n\n\t@property({ type: Boolean, noAttribute: true })\n\t_renderNavigated = false;\n\n\t@property({ type: Boolean, noAttribute: true })\n\t_alternate = false;\n\n\t@property({ type: Boolean })\n\t_renderDummyCell = false;\n\n\t@query(\"#selection-cell\")\n\t_selectionCell?: HTMLElement;\n\n\t@query(\"#actions-cell\")\n\t_actionsCell?: HTMLElement;\n\n\t@query(\"#navigated-cell\")\n\t_navigatedCell?: HTMLElement;\n\n\t@i18n(\"@ui5/webcomponents\")\n\tstatic i18nBundle: I18nBundle;\n\n\tisHeaderRow(): boolean {\n\t\treturn false;\n\t}\n\n\tisGroupRow(): boolean {\n\t\treturn false;\n\t}\n\n\tonEnterDOM() {\n\t\t!this.role && this.setAttribute(\"role\", \"row\");\n\t\tthis.toggleAttribute(\"ui5-table-row-base\", true);\n\t}\n\n\tonBeforeRendering() {\n\t\ttoggleAttribute(this, \"aria-selected\", this._isSelectable, `${this._isSelected}`);\n\t\ttoggleAttribute(this, \"_has-popin\", this._hasPopin);\n\t}\n\n\tonAfterRendering() {\n\t\tthis._handleCustomFocusOutline();\n\t}\n\n\tgetFocusDomRef() {\n\t\treturn this;\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\tthis._handleCustomFocusOutline();\n\t\treturn Promise.resolve();\n\t}\n\n\t_handleCustomFocusOutline() {\n\t\tif (this._renderDummyCell && !this._hasPopin && document.activeElement === this) {\n\t\t\tconst cells = [...this.shadowRoot!.children].flatMap(element => {\n\t\t\t\treturn element.localName === \"slot\" ? (element as HTMLSlotElement).assignedElements() : [element];\n\t\t\t});\n\t\t\tconst customOutlineAttribute = \"data-ui5-custom-outline\";\n\t\t\tcells.forEach(cell => cell.removeAttribute(customOutlineAttribute));\n\t\t\tconst firstVisibleCell = cells.at(0);\n\t\t\tconst lastVisibleCell = cells.at(-2);\n\t\t\tif (firstVisibleCell === lastVisibleCell) {\n\t\t\t\tfirstVisibleCell?.setAttribute(customOutlineAttribute, \"startend\");\n\t\t\t} else {\n\t\t\t\tfirstVisibleCell?.setAttribute(customOutlineAttribute, \"start\");\n\t\t\t\tlastVisibleCell?.setAttribute(customOutlineAttribute, \"end\");\n\t\t\t}\n\t\t}\n\t}\n\n\t_onSelectionChange() {\n\t\tconst tableSelection = this._tableSelection!;\n\t\tconst selected = tableSelection.isMultiSelectable() ? !this._isSelected : true;\n\t\ttableSelection.setSelected(this, selected, true);\n\t}\n\n\t_onkeydown(e: KeyboardEvent, eventOrigin: HTMLElement) {\n\t\tif ((eventOrigin === this && this._isSelectable && isSpace(e)) || (eventOrigin === this._selectionCell && (isSpace(e) || isEnter(e)))) {\n\t\t\tthis._onSelectionChange();\n\t\t\te.preventDefault();\n\t\t}\n\t}\n\n\tget _table(): Table | undefined {\n\t\tconst element = this.parentElement;\n\t\treturn isInstanceOfTable(element) ? element : undefined;\n\t}\n\n\tget _tableId() {\n\t\treturn this._table?._id;\n\t}\n\n\tget _tableSelection() {\n\t\treturn this._table?._getSelection();\n\t}\n\n\tget _isSelected() {\n\t\treturn this._tableSelection?.isSelected(this);\n\t}\n\n\tget _isSelectable() {\n\t\treturn this._tableSelection?.isSelectable();\n\t}\n\n\tget _isMultiSelect() {\n\t\treturn !!this._tableSelection?.isMultiSelectable();\n\t}\n\n\tget _selectionComponent() {\n\t\treturn this._tableSelection?.getSelectionComponent();\n\t}\n\n\tget _hasSelector() {\n\t\treturn this._table?._isRowSelectorRequired;\n\t}\n\n\tget _visibleCells() {\n\t\treturn this.cells.filter(c => !c._popin);\n\t}\n\n\tget _firstVisibleCell() {\n\t\treturn this.cells.find(c => !c._popin);\n\t}\n\n\tget _popinCells() {\n\t\treturn this.cells.filter(c => c._popin && !c._popinHidden);\n\t}\n\n\tget _hasPopin() {\n\t\treturn (this._table?.rows.length ?? 0) > 0 && this.cells.some(c => c._popin && !c._popinHidden);\n\t}\n\n\tget _stickyCells() {\n\t\treturn [this._selectionCell, this._actionsCell, this._navigatedCell].filter(Boolean) as HTMLElement[];\n\t}\n\n\tget _i18nRowSelector(): string {\n\t\treturn TableRowBase.i18nBundle.getText(TABLE_ROW_SELECTOR);\n\t}\n}\n\nexport default TableRowBase;\n"]}
@@ -1,16 +1,11 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "@ui5/webcomponents-base/jsx-runtime";
2
2
  import TableCell from "./TableCell.js";
3
- import CheckBox from "./CheckBox.js";
4
- import RadioButton from "./RadioButton.js";
5
- import Button from "./Button.js";
6
- import ButtonDesign from "./types/ButtonDesign.js";
7
- import iconOverflow from "@ui5/webcomponents-icons/dist/overflow.js";
8
3
  export default function TableRowTemplate(ariaColIndex = 1) {
4
+ const SelectionComponent = this._selectionComponent;
5
+ const OverflowButton = this._overflowButtonComponent;
9
6
  return (_jsxs(_Fragment, { children: [this._hasSelector &&
10
- _jsx(TableCell, { id: "selection-cell", "aria-selected": this._isSelected, "aria-colindex": ariaColIndex++, "data-border-merged": this._firstVisibleCell?.merged ? "" : null, "data-ui5-table-selection-cell": true, "data-ui5-acc-text": "", children: this._isMultiSelect ?
11
- _jsx(CheckBox, { id: "selection-component", tabindex: -1, checked: this._isSelected, onChange: this._onSelectionChange, accessibleName: this._i18nRowSelector })
12
- :
13
- _jsx(RadioButton, { id: "selection-component", tabindex: -1, checked: this._isSelected, onChange: this._onSelectionChange, accessibleName: this._i18nRowSelector }) }), this.cells.flatMap(cell => {
7
+ _jsx(TableCell, { id: "selection-cell", "aria-selected": this._isSelected, "aria-colindex": ariaColIndex++, "data-border-merged": this._firstVisibleCell?.merged ? "" : null, "data-ui5-table-selection-cell": true, "data-ui5-acc-text": "", children: SelectionComponent &&
8
+ _jsx(SelectionComponent, { id: "selection-component", tabindex: -1, checked: this._isSelected, onChange: this._onSelectionChange, accessibleName: this._i18nRowSelector }) }), this.cells.flatMap(cell => {
14
9
  if (cell._popin) {
15
10
  cell.role = null;
16
11
  cell.ariaColIndex = null;
@@ -21,8 +16,8 @@ export default function TableRowTemplate(ariaColIndex = 1) {
21
16
  return [_jsx("slot", { name: cell._individualSlot })];
22
17
  }), this._renderDummyCell && this._hasPopin &&
23
18
  _jsx(TableCell, { id: "dummy-cell", role: "none", "aria-hidden": true, "data-border-merged": "", "data-excluded-from-navigation": "" }), this._rowActionCount > 0 &&
24
- _jsxs(TableCell, { id: "actions-cell", "aria-colindex": ariaColIndex++, "data-ui5-acc-text": this._actionCellAccText, children: [this._flexibleActions.map(action => (_jsx("slot", { name: action._individualSlot }))), this._hasOverflowActions &&
25
- _jsx(Button, { id: "overflow", icon: iconOverflow, design: ButtonDesign.Transparent, tooltip: this._overflowButtonTooltip, onClick: this._onOverflowButtonClick }), this._fixedActions.map(action => (_jsx("slot", { name: action._individualSlot })))] }), this._renderNavigated &&
19
+ _jsxs(TableCell, { id: "actions-cell", "aria-colindex": ariaColIndex++, "data-ui5-acc-text": this._actionCellAccText, children: [this._flexibleActions.map(action => (_jsx("slot", { name: action._individualSlot }))), this._hasOverflowActions && OverflowButton &&
20
+ _jsx(OverflowButton, { id: "overflow", icon: this._overflowButtonIcon, design: "Transparent", tooltip: this._overflowButtonTooltip, onClick: this._onOverflowButtonClick }), this._fixedActions.map(action => (_jsx("slot", { name: action._individualSlot })))] }), this._renderNavigated &&
26
21
  _jsx(TableCell, { id: "navigated-cell", "data-excluded-from-navigation": true, "aria-hidden": true, role: "none", children: _jsx("div", { id: "navigated" }) }), this._renderDummyCell && !this._hasPopin &&
27
22
  _jsx(TableCell, { id: "dummy-cell", role: "none", "aria-hidden": true, "data-border-merged": "", "data-excluded-from-navigation": "nofocus" }), this._hasPopin &&
28
23
  _jsx(TableCell, { id: "popin-cell", "data-ui5-table-popin-cell": true, "aria-colindex": ariaColIndex++, children: this._popinCells.map(cell => (_jsx("slot", { name: cell._individualSlot }))) })] }));
@@ -1 +1 @@
1
- {"version":3,"file":"TableRowTemplate.js","sourceRoot":"","sources":["../src/TableRowTemplate.tsx"],"names":[],"mappings":"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","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-border-merged={this._firstVisibleCell?.merged ? \"\" : null}\n\t\t\t\t\tdata-ui5-table-selection-cell\n\t\t\t\t\tdata-ui5-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\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.role = null;\n\t\t\t\t\tcell.ariaColIndex = null;\n\t\t\t\t\treturn [];\n\t\t\t\t}\n\n\t\t\t\tcell.role ??= cell.ariaRole;\n\t\t\t\tcell.ariaColIndex = (cell.role === cell.ariaRole) ? `${ariaColIndex++}` : null;\n\t\t\t\treturn [<slot name={cell._individualSlot}></slot>];\n\t\t\t})}\n\n\t\t\t{ this._renderDummyCell && this._hasPopin &&\n\t\t\t\t<TableCell id=\"dummy-cell\" role=\"none\" aria-hidden={true} data-border-merged=\"\"\n\t\t\t\t\tdata-excluded-from-navigation=\"\">\n\t\t\t\t</TableCell>\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-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\ttooltip={this._overflowButtonTooltip}\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\trole=\"none\"\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._renderDummyCell && !this._hasPopin &&\n\t\t\t\t<TableCell id=\"dummy-cell\" role=\"none\" aria-hidden={true} data-border-merged=\"\"\n\t\t\t\t\tdata-excluded-from-navigation=\"nofocus\">\n\t\t\t\t</TableCell>\n\t\t\t}\n\n\t\t\t{ this._hasPopin &&\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"]}
1
+ {"version":3,"file":"TableRowTemplate.js","sourceRoot":"","sources":["../src/TableRowTemplate.tsx"],"names":[],"mappings":"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","sourcesContent":["import TableCell from \"./TableCell.js\";\nimport type TableRow from \"./TableRow.js\";\n\nexport default function TableRowTemplate(this: TableRow, ariaColIndex: number = 1) {\n\tconst SelectionComponent = this._selectionComponent;\n\tconst OverflowButton = this._overflowButtonComponent;\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-border-merged={this._firstVisibleCell?.merged ? \"\" : null}\n\t\t\t\t\tdata-ui5-table-selection-cell\n\t\t\t\t\tdata-ui5-acc-text=\"\"\n\t\t\t\t>\n\t\t\t\t\t{ SelectionComponent &&\n\t\t\t\t\t\t<SelectionComponent 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></SelectionComponent>\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.role = null;\n\t\t\t\t\tcell.ariaColIndex = null;\n\t\t\t\t\treturn [];\n\t\t\t\t}\n\n\t\t\t\tcell.role ??= cell.ariaRole;\n\t\t\t\tcell.ariaColIndex = (cell.role === cell.ariaRole) ? `${ariaColIndex++}` : null;\n\t\t\t\treturn [<slot name={cell._individualSlot}></slot>];\n\t\t\t})}\n\n\t\t\t{ this._renderDummyCell && this._hasPopin &&\n\t\t\t\t<TableCell id=\"dummy-cell\" role=\"none\" aria-hidden={true} data-border-merged=\"\"\n\t\t\t\t\tdata-excluded-from-navigation=\"\">\n\t\t\t\t</TableCell>\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-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 && OverflowButton &&\n\t\t\t\t\t\t<OverflowButton id=\"overflow\"\n\t\t\t\t\t\t\ticon={this._overflowButtonIcon}\n\t\t\t\t\t\t\tdesign=\"Transparent\"\n\t\t\t\t\t\t\ttooltip={this._overflowButtonTooltip}\n\t\t\t\t\t\t\tonClick={this._onOverflowButtonClick}\n\t\t\t\t\t\t></OverflowButton>\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\trole=\"none\"\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._renderDummyCell && !this._hasPopin &&\n\t\t\t\t<TableCell id=\"dummy-cell\" role=\"none\" aria-hidden={true} data-border-merged=\"\"\n\t\t\t\t\tdata-excluded-from-navigation=\"nofocus\">\n\t\t\t\t</TableCell>\n\t\t\t}\n\n\t\t\t{ this._hasPopin &&\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"]}
@@ -1,5 +1,7 @@
1
1
  import UI5Element from "@ui5/webcomponents-base/dist/UI5Element.js";
2
2
  import TableSelectionMode from "./types/TableSelectionMode.js";
3
+ import CheckBox from "./CheckBox.js";
4
+ import RadioButton from "./RadioButton.js";
3
5
  import type Table from "./Table.js";
4
6
  import type { ITableFeature } from "./Table.js";
5
7
  import type TableRow from "./TableRow.js";
@@ -79,6 +81,9 @@ declare class TableSelection extends UI5Element implements ITableFeature {
79
81
  isSelectable(): boolean;
80
82
  isMultiSelectable(): boolean;
81
83
  isRowSelectorRequired(): boolean;
84
+ getSelectionComponent(): typeof CheckBox | typeof RadioButton;
85
+ getClearAllComponent(): undefined;
86
+ getClearAllIcon(): undefined;
82
87
  getAriaDescriptionForTable(): string | undefined;
83
88
  getAriaDescriptionForColumnHeader(): string | undefined;
84
89
  getRowKey(row: TableRow): string;
@@ -11,6 +11,8 @@ 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 CheckBox from "./CheckBox.js";
15
+ import RadioButton from "./RadioButton.js";
14
16
  import { isSelectionCell, isHeaderSelectionCell, findRowInPath } from "./TableUtils.js";
15
17
  /**
16
18
  * @class
@@ -101,6 +103,15 @@ let TableSelection = class TableSelection extends UI5Element {
101
103
  isRowSelectorRequired() {
102
104
  return this.mode !== TableSelectionMode.None;
103
105
  }
106
+ getSelectionComponent() {
107
+ return this.isMultiSelectable() ? CheckBox : RadioButton;
108
+ }
109
+ getClearAllComponent() {
110
+ return undefined;
111
+ }
112
+ getClearAllIcon() {
113
+ return undefined;
114
+ }
104
115
  getAriaDescriptionForTable() {
105
116
  return undefined;
106
117
  }
@@ -1 +1 @@
1
- {"version":3,"file":"TableSelection.js","sourceRoot":"","sources":["../src/TableSelection.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n\tisUpShift,\n} from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport getActiveElement from \"@ui5/webcomponents-base/dist/util/getActiveElement.js\";\nimport UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event-strict.js\";\nimport TableSelectionMode from \"./types/TableSelectionMode.js\";\nimport { isSelectionCell, isHeaderSelectionCell, findRowInPath } from \"./TableUtils.js\";\nimport type Table from \"./Table.js\";\nimport type { ITableFeature } from \"./Table.js\";\nimport type TableRow from \"./TableRow.js\";\nimport type TableRowBase from \"./TableRowBase.js\";\n\n/**\n * @class\n *\n * ### Overview\n *\n * The `ui5-table-selection` component is used inside the `ui5-table` to add key-based selection capabilities to the `ui5-table`.\n *\n * The component offers three selection modes:\n * * Single - select a single row.\n * * Multiple - select multiple rows.\n * * None - no selection active.\n *\n * As the selection is key-based, `ui5-table-row` components need to define a unique `row-key` property.\n *\n * ### Usage\n *\n * The `ui5-table-selection` component is only used inside the `ui5-table` component as a feature.\n * It has to be slotted inside the `ui5-table` in the `features` slot.\n * The component is not intended to be used as a standalone component.\n *\n * ```html\n * <ui5-table>\n * \t<ui5-table-selection mode=\"Multiple\" slot=\"features\"></ui5-table-selection>\n * </ui5-table>\n * ```\n *\n * ### ES6 Module Import\n *\n * `import \"@ui5/webcomponents/dist/TableSelection.js\";`\n *\n * @constructor\n * @extends UI5Element\n * @since 2.0.0\n * @public\n * @deprecated This component is deprecated and will be removed in future releases. Use the `ui5-table-selection-single` or `ui5-table-selection-multi` components instead.\n * @experimental This web component is available since 2.0 with an experimental flag and its API and behavior are subject to change.\n */\n@customElement({ tag: \"ui5-table-selection\" })\n\n/**\n * Fired when the selection is changed by user interaction.\n *\n * @public\n */\n@event(\"change\", {\n\tbubbles: true,\n})\n\nclass TableSelection extends UI5Element implements ITableFeature {\n\teventDetails!: {\n\t\tchange: void,\n\t}\n\t/**\n\t * Defines the selection mode.\n\t *\n\t * @default \"Multiple\"\n\t * @public\n\t */\n\t@property()\n\tmode: `${TableSelectionMode}` = \"Multiple\";\n\n\t/**\n\t * Defines the selected rows separated by a space.\n\t *\n\t * @default \"\"\n\t * @public\n\t */\n\t@property()\n\tselected = \"\";\n\n\treadonly identifier = \"TableSelection\";\n\t_table?: Table;\n\t_rowsLength = 0;\n\t_rangeSelection?: {selected: boolean, isUp: boolean | null, rows: TableRow[], isMouse: boolean, shiftPressed: boolean} | null;\n\n\tonClickCaptureBound: (e: MouseEvent) => void;\n\n\tconstructor() {\n\t\tsuper();\n\t\tthis.onClickCaptureBound = this._onClickCapture.bind(this);\n\t}\n\n\tonTableActivate(table: Table) {\n\t\tthis._table = table;\n\t\tthis._invalidateTableAndRows();\n\t}\n\n\tonExitDOM() {\n\t\tthis.mode = TableSelectionMode.None;\n\t\tthis._invalidateTableAndRows();\n\t\tthis._table = undefined;\n\t}\n\n\tonBeforeRendering() {\n\t\tthis._invalidateTableAndRows();\n\t}\n\n\tonTableBeforeRendering() {\n\t\tif (this.isMultiSelectable() && this._table && this._table.headerRow[0] && this._rowsLength !== this._table.rows.length) {\n\t\t\tthis._rowsLength = this._table.rows.length;\n\t\t\tthis._table.headerRow[0]._invalidate++;\n\t\t}\n\n\t\tthis._table?.removeEventListener(\"click\", this.onClickCaptureBound);\n\t}\n\n\tonTableAfterRendering(): void {\n\t\tthis._table?.addEventListener(\"click\", this.onClickCaptureBound, { capture: true });\n\t}\n\n\tisSelectable(): boolean {\n\t\treturn this.mode !== TableSelectionMode.None;\n\t}\n\n\tisMultiSelectable(): boolean {\n\t\treturn this.mode === TableSelectionMode.Multiple;\n\t}\n\n\tisRowSelectorRequired(): boolean {\n\t\treturn this.mode !== TableSelectionMode.None;\n\t}\n\n\tgetAriaDescriptionForTable(): string | undefined {\n\t\treturn undefined;\n\t}\n\n\tgetAriaDescriptionForColumnHeader(): string | undefined {\n\t\treturn undefined;\n\t}\n\n\tgetRowKey(row: TableRow): string {\n\t\treturn row.rowKey || \"\";\n\t}\n\n\tisSelected(row: TableRowBase): boolean {\n\t\tif (!this._table || !this.isSelectable()) {\n\t\t\treturn false;\n\t\t}\n\n\t\tif (row.isHeaderRow()) {\n\t\t\treturn this.areAllRowsSelected();\n\t\t}\n\n\t\tconst rowKey = this.getRowKey(row as TableRow);\n\t\treturn this.selectedAsArray.includes(rowKey);\n\t}\n\n\thasSelectedRow(): boolean {\n\t\tif (!this._table || !this.isSelectable()) {\n\t\t\treturn false;\n\t\t}\n\n\t\tconst selectedArray = this.selectedAsArray;\n\t\treturn this._table.rows.some(row => {\n\t\t\tconst rowKey = this.getRowKey(row);\n\t\t\treturn selectedArray.includes(rowKey);\n\t\t});\n\t}\n\n\tareAllRowsSelected(): boolean {\n\t\tif (!this._table || !this._table.rows.length || this.mode !== TableSelectionMode.Multiple) {\n\t\t\treturn false;\n\t\t}\n\n\t\tconst selectedArray = this.selectedAsArray;\n\t\treturn this._table.rows.filter(row => row._isSelectable).every(row => {\n\t\t\tconst rowKey = this.getRowKey(row);\n\t\t\treturn selectedArray.includes(rowKey);\n\t\t});\n\t}\n\n\tsetSelected(row: TableRowBase, selected: boolean, fireEvent = false) {\n\t\tif (this._rangeSelection?.isMouse && this._rangeSelection.shiftPressed) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (row.isHeaderRow()) {\n\t\t\tthis._selectHeaderRow(selected);\n\t\t} else {\n\t\t\tthis._selectRow(row as TableRow, selected);\n\t\t}\n\n\t\tif (fireEvent) {\n\t\t\tthis.fireDecoratorEvent(\"change\");\n\t\t}\n\t}\n\n\tget selectedAsArray(): string[] {\n\t\treturn this.selected.split(\" \").filter(String);\n\t}\n\n\tset selectedAsArray(selectedArray: string[]) {\n\t\tthis.selected = selectedArray.filter(String).join(\" \");\n\t}\n\n\tget selectedAsSet(): Set<string> {\n\t\treturn new Set(this.selectedAsArray);\n\t}\n\n\tset selectedAsSet(selectedSet: Set<string>) {\n\t\tthis.selectedAsArray = [...selectedSet];\n\t}\n\n\t_selectRow(row: TableRow, selected: boolean) {\n\t\tconst rowKey = this.getRowKey(row);\n\t\tif (this.mode === TableSelectionMode.Multiple) {\n\t\t\tconst selectedSet = this.selectedAsSet;\n\t\t\tselectedSet[selected ? \"add\" : \"delete\"](rowKey);\n\t\t\tthis.selectedAsSet = selectedSet;\n\t\t} else {\n\t\t\tthis.selected = selected ? rowKey : \"\";\n\t\t}\n\t}\n\n\t_selectHeaderRow(selected: boolean) {\n\t\tconst selectedSet = this.selectedAsSet;\n\t\tthis._table!.rows.filter(row => row._isSelectable).forEach(row => {\n\t\t\tconst rowKey = this.getRowKey(row);\n\t\t\tselectedSet[selected ? \"add\" : \"delete\"](rowKey);\n\t\t});\n\t\tthis.selectedAsSet = selectedSet;\n\t}\n\n\t_invalidateTableAndRows() {\n\t\tif (!this._table) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (!this.isSelectable()) {\n\t\t\tthis.selected = \"\";\n\t\t} else if (!this.isMultiSelectable()) {\n\t\t\tthis.selected = this.selectedAsArray.shift() || \"\";\n\t\t}\n\n\t\tthis._table._invalidate++;\n\t\tthis._table.headerRow[0]._invalidate++;\n\t\tthis._table.rows.forEach(row => row._invalidate++);\n\t}\n\n\t_onkeydown(e: KeyboardEvent) {\n\t\tif (!this.isMultiSelectable() || !this._table || !e.shiftKey) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst focusedElement = getActiveElement(); // Assumption: The focused element is always the \"next\" row after navigation.\n\n\t\tif (!(focusedElement?.hasAttribute(\"ui5-table-row\") || this._rangeSelection?.isMouse)) {\n\t\t\tthis._stopRangeSelection();\n\t\t\treturn;\n\t\t}\n\n\t\tif (!this._rangeSelection) {\n\t\t\t// If no range selection is active, start one\n\t\t\tconst row = focusedElement as TableRow;\n\t\t\tthis._startRangeSelection(row, this.isSelected(row));\n\t\t} else if (e.key === \"ArrowUp\" || e.key === \"ArrowDown\") {\n\t\t\tconst change = isUpShift(e) ? -1 : 1;\n\t\t\tthis._handleRangeSelection(focusedElement as TableRow, change);\n\t\t}\n\n\t\tif (this._rangeSelection) {\n\t\t\tthis._rangeSelection.shiftPressed = e.shiftKey;\n\t\t}\n\t}\n\n\t_onkeyup(e: KeyboardEvent, eventOrigin: HTMLElement) {\n\t\tif (!this._table) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (!eventOrigin.hasAttribute(\"ui5-table-row\") || !this._rangeSelection || !e.shiftKey) {\n\t\t\t// Stop range selection if a) Shift is relased or b) the event target is not a row\n\t\t\tthis._stopRangeSelection();\n\t\t}\n\n\t\tif (this._rangeSelection) {\n\t\t\tthis._rangeSelection.shiftPressed = e.shiftKey;\n\t\t}\n\t}\n\n\t_onClickCapture(e: MouseEvent) {\n\t\tif (!this._table || this.mode !== TableSelectionMode.Multiple) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (isHeaderSelectionCell(e)) {\n\t\t\tthis._stopRangeSelection();\n\t\t\treturn;\n\t\t}\n\n\t\tif (!isSelectionCell(e)) {\n\t\t\tthis._stopRangeSelection();\n\t\t\treturn;\n\t\t}\n\n\t\tconst row = findRowInPath(e.composedPath());\n\n\t\tif (e.shiftKey && this._rangeSelection?.isMouse) {\n\t\t\tconst startRow = this._rangeSelection.rows[0];\n\t\t\tconst startIndex = this._table.rows.indexOf(startRow);\n\t\t\tconst endIndex = this._table.rows.indexOf(row);\n\n\t\t\tconst selectionState = this.isSelected(startRow);\n\n\t\t\t// When doing a range selection and clicking on an already selected row, the checked status should not change\n\t\t\t// Therefore, we need to manually set the checked attribute again, as clicking it would deselect it and leads to\n\t\t\t// a visual inconsistency.\n\t\t\trow.shadowRoot?.querySelector(\"#selection-component\")?.toggleAttribute(\"checked\", selectionState);\n\t\t\te.stopPropagation();\n\n\t\t\tif (startIndex === -1 || endIndex === -1 || row.rowKey === startRow.rowKey || row.rowKey === this._rangeSelection.rows[this._rangeSelection.rows.length - 1].rowKey) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst change = endIndex - startIndex;\n\t\t\tthis._handleRangeSelection(row, change);\n\t\t} else if (row) {\n\t\t\tthis._startRangeSelection(row, !this.isSelected(row), true);\n\t\t}\n\t}\n\n\t/**\n\t * Start the range selection and initialises the range selection state\n\t * @param row starting row\n\t * @private\n\t */\n\t_startRangeSelection(row: TableRow, selected: boolean, isMouse = false) {\n\t\tthis._rangeSelection = {\n\t\t\tselected,\n\t\t\tisUp: null,\n\t\t\trows: [row],\n\t\t\tisMouse,\n\t\t\tshiftPressed: false,\n\t\t};\n\t}\n\n\t/**\n\t * Handles the range selection\n\t * @param targetRow row that is currently focused\n\t * @param change indicates direction\n\t * @private\n\t */\n\t_handleRangeSelection(targetRow: TableRow, change: number) {\n\t\tif (!this._rangeSelection) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst isUp = change > 0;\n\t\tthis._rangeSelection.isUp ??= isUp;\n\n\t\tconst shouldReverseSelection = isUp !== this._rangeSelection.isUp && !this._rangeSelection.isMouse;\n\t\tlet selectionChanged = shouldReverseSelection && this.isSelected(targetRow);\n\n\t\tif (shouldReverseSelection) {\n\t\t\tthis._reverseRangeSelection();\n\t\t} else {\n\t\t\tconst rowIndex = this._table!.rows.indexOf(targetRow);\n\t\t\tconst [startIndex, endIndex] = [rowIndex, rowIndex - change].sort((a, b) => a - b);\n\n\t\t\tselectionChanged = this._table?.rows.slice(startIndex, endIndex + 1).reduce((changed, row) => {\n\t\t\t\tconst isRowNotInSelection = !this._rangeSelection?.rows.includes(row);\n\t\t\t\tconst isRowSelectionDifferent = this.isSelected(row) !== this._rangeSelection!.selected;\n\n\t\t\t\tif (isRowNotInSelection) {\n\t\t\t\t\tthis._rangeSelection?.rows.push(row);\n\t\t\t\t}\n\n\t\t\t\tthis._selectRow(row, this._rangeSelection!.selected);\n\n\t\t\t\treturn changed || isRowSelectionDifferent;\n\t\t\t}, selectionChanged) || false;\n\t\t}\n\n\t\tselectionChanged && this.fireDecoratorEvent(\"change\");\n\t}\n\n\t_stopRangeSelection() {\n\t\tthis._rangeSelection = null;\n\t}\n\n\t_reverseRangeSelection() {\n\t\tconst row = this._rangeSelection?.rows.pop();\n\t\tif (row) {\n\t\t\tthis._selectRow(row, false);\n\t\t}\n\n\t\tif (this._rangeSelection?.rows.length === 1) {\n\t\t\tthis._rangeSelection.isUp = null;\n\t\t}\n\t}\n}\n\nTableSelection.define();\n\nexport default TableSelection;\n"]}
1
+ {"version":3,"file":"TableSelection.js","sourceRoot":"","sources":["../src/TableSelection.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n\tisUpShift,\n} from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport getActiveElement from \"@ui5/webcomponents-base/dist/util/getActiveElement.js\";\nimport UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event-strict.js\";\nimport TableSelectionMode from \"./types/TableSelectionMode.js\";\nimport CheckBox from \"./CheckBox.js\";\nimport RadioButton from \"./RadioButton.js\";\nimport { isSelectionCell, isHeaderSelectionCell, findRowInPath } from \"./TableUtils.js\";\nimport type Table from \"./Table.js\";\nimport type { ITableFeature } from \"./Table.js\";\nimport type TableRow from \"./TableRow.js\";\nimport type TableRowBase from \"./TableRowBase.js\";\n\n/**\n * @class\n *\n * ### Overview\n *\n * The `ui5-table-selection` component is used inside the `ui5-table` to add key-based selection capabilities to the `ui5-table`.\n *\n * The component offers three selection modes:\n * * Single - select a single row.\n * * Multiple - select multiple rows.\n * * None - no selection active.\n *\n * As the selection is key-based, `ui5-table-row` components need to define a unique `row-key` property.\n *\n * ### Usage\n *\n * The `ui5-table-selection` component is only used inside the `ui5-table` component as a feature.\n * It has to be slotted inside the `ui5-table` in the `features` slot.\n * The component is not intended to be used as a standalone component.\n *\n * ```html\n * <ui5-table>\n * \t<ui5-table-selection mode=\"Multiple\" slot=\"features\"></ui5-table-selection>\n * </ui5-table>\n * ```\n *\n * ### ES6 Module Import\n *\n * `import \"@ui5/webcomponents/dist/TableSelection.js\";`\n *\n * @constructor\n * @extends UI5Element\n * @since 2.0.0\n * @public\n * @deprecated This component is deprecated and will be removed in future releases. Use the `ui5-table-selection-single` or `ui5-table-selection-multi` components instead.\n * @experimental This web component is available since 2.0 with an experimental flag and its API and behavior are subject to change.\n */\n@customElement({ tag: \"ui5-table-selection\" })\n\n/**\n * Fired when the selection is changed by user interaction.\n *\n * @public\n */\n@event(\"change\", {\n\tbubbles: true,\n})\n\nclass TableSelection extends UI5Element implements ITableFeature {\n\teventDetails!: {\n\t\tchange: void,\n\t}\n\t/**\n\t * Defines the selection mode.\n\t *\n\t * @default \"Multiple\"\n\t * @public\n\t */\n\t@property()\n\tmode: `${TableSelectionMode}` = \"Multiple\";\n\n\t/**\n\t * Defines the selected rows separated by a space.\n\t *\n\t * @default \"\"\n\t * @public\n\t */\n\t@property()\n\tselected = \"\";\n\n\treadonly identifier = \"TableSelection\";\n\t_table?: Table;\n\t_rowsLength = 0;\n\t_rangeSelection?: {selected: boolean, isUp: boolean | null, rows: TableRow[], isMouse: boolean, shiftPressed: boolean} | null;\n\n\tonClickCaptureBound: (e: MouseEvent) => void;\n\n\tconstructor() {\n\t\tsuper();\n\t\tthis.onClickCaptureBound = this._onClickCapture.bind(this);\n\t}\n\n\tonTableActivate(table: Table) {\n\t\tthis._table = table;\n\t\tthis._invalidateTableAndRows();\n\t}\n\n\tonExitDOM() {\n\t\tthis.mode = TableSelectionMode.None;\n\t\tthis._invalidateTableAndRows();\n\t\tthis._table = undefined;\n\t}\n\n\tonBeforeRendering() {\n\t\tthis._invalidateTableAndRows();\n\t}\n\n\tonTableBeforeRendering() {\n\t\tif (this.isMultiSelectable() && this._table && this._table.headerRow[0] && this._rowsLength !== this._table.rows.length) {\n\t\t\tthis._rowsLength = this._table.rows.length;\n\t\t\tthis._table.headerRow[0]._invalidate++;\n\t\t}\n\n\t\tthis._table?.removeEventListener(\"click\", this.onClickCaptureBound);\n\t}\n\n\tonTableAfterRendering(): void {\n\t\tthis._table?.addEventListener(\"click\", this.onClickCaptureBound, { capture: true });\n\t}\n\n\tisSelectable(): boolean {\n\t\treturn this.mode !== TableSelectionMode.None;\n\t}\n\n\tisMultiSelectable(): boolean {\n\t\treturn this.mode === TableSelectionMode.Multiple;\n\t}\n\n\tisRowSelectorRequired(): boolean {\n\t\treturn this.mode !== TableSelectionMode.None;\n\t}\n\n\tgetSelectionComponent(): typeof CheckBox | typeof RadioButton {\n\t\treturn this.isMultiSelectable() ? CheckBox : RadioButton;\n\t}\n\n\tgetClearAllComponent(): undefined {\n\t\treturn undefined;\n\t}\n\n\tgetClearAllIcon(): undefined {\n\t\treturn undefined;\n\t}\n\n\tgetAriaDescriptionForTable(): string | undefined {\n\t\treturn undefined;\n\t}\n\n\tgetAriaDescriptionForColumnHeader(): string | undefined {\n\t\treturn undefined;\n\t}\n\n\tgetRowKey(row: TableRow): string {\n\t\treturn row.rowKey || \"\";\n\t}\n\n\tisSelected(row: TableRowBase): boolean {\n\t\tif (!this._table || !this.isSelectable()) {\n\t\t\treturn false;\n\t\t}\n\n\t\tif (row.isHeaderRow()) {\n\t\t\treturn this.areAllRowsSelected();\n\t\t}\n\n\t\tconst rowKey = this.getRowKey(row as TableRow);\n\t\treturn this.selectedAsArray.includes(rowKey);\n\t}\n\n\thasSelectedRow(): boolean {\n\t\tif (!this._table || !this.isSelectable()) {\n\t\t\treturn false;\n\t\t}\n\n\t\tconst selectedArray = this.selectedAsArray;\n\t\treturn this._table.rows.some(row => {\n\t\t\tconst rowKey = this.getRowKey(row);\n\t\t\treturn selectedArray.includes(rowKey);\n\t\t});\n\t}\n\n\tareAllRowsSelected(): boolean {\n\t\tif (!this._table || !this._table.rows.length || this.mode !== TableSelectionMode.Multiple) {\n\t\t\treturn false;\n\t\t}\n\n\t\tconst selectedArray = this.selectedAsArray;\n\t\treturn this._table.rows.filter(row => row._isSelectable).every(row => {\n\t\t\tconst rowKey = this.getRowKey(row);\n\t\t\treturn selectedArray.includes(rowKey);\n\t\t});\n\t}\n\n\tsetSelected(row: TableRowBase, selected: boolean, fireEvent = false) {\n\t\tif (this._rangeSelection?.isMouse && this._rangeSelection.shiftPressed) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (row.isHeaderRow()) {\n\t\t\tthis._selectHeaderRow(selected);\n\t\t} else {\n\t\t\tthis._selectRow(row as TableRow, selected);\n\t\t}\n\n\t\tif (fireEvent) {\n\t\t\tthis.fireDecoratorEvent(\"change\");\n\t\t}\n\t}\n\n\tget selectedAsArray(): string[] {\n\t\treturn this.selected.split(\" \").filter(String);\n\t}\n\n\tset selectedAsArray(selectedArray: string[]) {\n\t\tthis.selected = selectedArray.filter(String).join(\" \");\n\t}\n\n\tget selectedAsSet(): Set<string> {\n\t\treturn new Set(this.selectedAsArray);\n\t}\n\n\tset selectedAsSet(selectedSet: Set<string>) {\n\t\tthis.selectedAsArray = [...selectedSet];\n\t}\n\n\t_selectRow(row: TableRow, selected: boolean) {\n\t\tconst rowKey = this.getRowKey(row);\n\t\tif (this.mode === TableSelectionMode.Multiple) {\n\t\t\tconst selectedSet = this.selectedAsSet;\n\t\t\tselectedSet[selected ? \"add\" : \"delete\"](rowKey);\n\t\t\tthis.selectedAsSet = selectedSet;\n\t\t} else {\n\t\t\tthis.selected = selected ? rowKey : \"\";\n\t\t}\n\t}\n\n\t_selectHeaderRow(selected: boolean) {\n\t\tconst selectedSet = this.selectedAsSet;\n\t\tthis._table!.rows.filter(row => row._isSelectable).forEach(row => {\n\t\t\tconst rowKey = this.getRowKey(row);\n\t\t\tselectedSet[selected ? \"add\" : \"delete\"](rowKey);\n\t\t});\n\t\tthis.selectedAsSet = selectedSet;\n\t}\n\n\t_invalidateTableAndRows() {\n\t\tif (!this._table) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (!this.isSelectable()) {\n\t\t\tthis.selected = \"\";\n\t\t} else if (!this.isMultiSelectable()) {\n\t\t\tthis.selected = this.selectedAsArray.shift() || \"\";\n\t\t}\n\n\t\tthis._table._invalidate++;\n\t\tthis._table.headerRow[0]._invalidate++;\n\t\tthis._table.rows.forEach(row => row._invalidate++);\n\t}\n\n\t_onkeydown(e: KeyboardEvent) {\n\t\tif (!this.isMultiSelectable() || !this._table || !e.shiftKey) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst focusedElement = getActiveElement(); // Assumption: The focused element is always the \"next\" row after navigation.\n\n\t\tif (!(focusedElement?.hasAttribute(\"ui5-table-row\") || this._rangeSelection?.isMouse)) {\n\t\t\tthis._stopRangeSelection();\n\t\t\treturn;\n\t\t}\n\n\t\tif (!this._rangeSelection) {\n\t\t\t// If no range selection is active, start one\n\t\t\tconst row = focusedElement as TableRow;\n\t\t\tthis._startRangeSelection(row, this.isSelected(row));\n\t\t} else if (e.key === \"ArrowUp\" || e.key === \"ArrowDown\") {\n\t\t\tconst change = isUpShift(e) ? -1 : 1;\n\t\t\tthis._handleRangeSelection(focusedElement as TableRow, change);\n\t\t}\n\n\t\tif (this._rangeSelection) {\n\t\t\tthis._rangeSelection.shiftPressed = e.shiftKey;\n\t\t}\n\t}\n\n\t_onkeyup(e: KeyboardEvent, eventOrigin: HTMLElement) {\n\t\tif (!this._table) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (!eventOrigin.hasAttribute(\"ui5-table-row\") || !this._rangeSelection || !e.shiftKey) {\n\t\t\t// Stop range selection if a) Shift is relased or b) the event target is not a row\n\t\t\tthis._stopRangeSelection();\n\t\t}\n\n\t\tif (this._rangeSelection) {\n\t\t\tthis._rangeSelection.shiftPressed = e.shiftKey;\n\t\t}\n\t}\n\n\t_onClickCapture(e: MouseEvent) {\n\t\tif (!this._table || this.mode !== TableSelectionMode.Multiple) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (isHeaderSelectionCell(e)) {\n\t\t\tthis._stopRangeSelection();\n\t\t\treturn;\n\t\t}\n\n\t\tif (!isSelectionCell(e)) {\n\t\t\tthis._stopRangeSelection();\n\t\t\treturn;\n\t\t}\n\n\t\tconst row = findRowInPath(e.composedPath());\n\n\t\tif (e.shiftKey && this._rangeSelection?.isMouse) {\n\t\t\tconst startRow = this._rangeSelection.rows[0];\n\t\t\tconst startIndex = this._table.rows.indexOf(startRow);\n\t\t\tconst endIndex = this._table.rows.indexOf(row);\n\n\t\t\tconst selectionState = this.isSelected(startRow);\n\n\t\t\t// When doing a range selection and clicking on an already selected row, the checked status should not change\n\t\t\t// Therefore, we need to manually set the checked attribute again, as clicking it would deselect it and leads to\n\t\t\t// a visual inconsistency.\n\t\t\trow.shadowRoot?.querySelector(\"#selection-component\")?.toggleAttribute(\"checked\", selectionState);\n\t\t\te.stopPropagation();\n\n\t\t\tif (startIndex === -1 || endIndex === -1 || row.rowKey === startRow.rowKey || row.rowKey === this._rangeSelection.rows[this._rangeSelection.rows.length - 1].rowKey) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst change = endIndex - startIndex;\n\t\t\tthis._handleRangeSelection(row, change);\n\t\t} else if (row) {\n\t\t\tthis._startRangeSelection(row, !this.isSelected(row), true);\n\t\t}\n\t}\n\n\t/**\n\t * Start the range selection and initialises the range selection state\n\t * @param row starting row\n\t * @private\n\t */\n\t_startRangeSelection(row: TableRow, selected: boolean, isMouse = false) {\n\t\tthis._rangeSelection = {\n\t\t\tselected,\n\t\t\tisUp: null,\n\t\t\trows: [row],\n\t\t\tisMouse,\n\t\t\tshiftPressed: false,\n\t\t};\n\t}\n\n\t/**\n\t * Handles the range selection\n\t * @param targetRow row that is currently focused\n\t * @param change indicates direction\n\t * @private\n\t */\n\t_handleRangeSelection(targetRow: TableRow, change: number) {\n\t\tif (!this._rangeSelection) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst isUp = change > 0;\n\t\tthis._rangeSelection.isUp ??= isUp;\n\n\t\tconst shouldReverseSelection = isUp !== this._rangeSelection.isUp && !this._rangeSelection.isMouse;\n\t\tlet selectionChanged = shouldReverseSelection && this.isSelected(targetRow);\n\n\t\tif (shouldReverseSelection) {\n\t\t\tthis._reverseRangeSelection();\n\t\t} else {\n\t\t\tconst rowIndex = this._table!.rows.indexOf(targetRow);\n\t\t\tconst [startIndex, endIndex] = [rowIndex, rowIndex - change].sort((a, b) => a - b);\n\n\t\t\tselectionChanged = this._table?.rows.slice(startIndex, endIndex + 1).reduce((changed, row) => {\n\t\t\t\tconst isRowNotInSelection = !this._rangeSelection?.rows.includes(row);\n\t\t\t\tconst isRowSelectionDifferent = this.isSelected(row) !== this._rangeSelection!.selected;\n\n\t\t\t\tif (isRowNotInSelection) {\n\t\t\t\t\tthis._rangeSelection?.rows.push(row);\n\t\t\t\t}\n\n\t\t\t\tthis._selectRow(row, this._rangeSelection!.selected);\n\n\t\t\t\treturn changed || isRowSelectionDifferent;\n\t\t\t}, selectionChanged) || false;\n\t\t}\n\n\t\tselectionChanged && this.fireDecoratorEvent(\"change\");\n\t}\n\n\t_stopRangeSelection() {\n\t\tthis._rangeSelection = null;\n\t}\n\n\t_reverseRangeSelection() {\n\t\tconst row = this._rangeSelection?.rows.pop();\n\t\tif (row) {\n\t\t\tthis._selectRow(row, false);\n\t\t}\n\n\t\tif (this._rangeSelection?.rows.length === 1) {\n\t\t\tthis._rangeSelection.isUp = null;\n\t\t}\n\t}\n}\n\nTableSelection.define();\n\nexport default TableSelection;\n"]}
@@ -1,4 +1,5 @@
1
1
  import UI5Element from "@ui5/webcomponents-base/dist/UI5Element.js";
2
+ import type Icon from "./Icon.js";
2
3
  import type Table from "./Table.js";
3
4
  import type TableRowBase from "./TableRowBase.js";
4
5
  import type TableRow from "./TableRow.js";
@@ -50,6 +51,18 @@ declare abstract class TableSelectionBase extends UI5Element implements ITableFe
50
51
  * Determines whether a row selector (for example, `radiobutton` or `checkbox`) is rendered.
51
52
  */
52
53
  isRowSelectorRequired(): boolean;
54
+ /**
55
+ * Returns the component used to render the row selector (for example, `CheckBox` or `RadioButton`).
56
+ */
57
+ getSelectionComponent(): typeof UI5Element | undefined;
58
+ /**
59
+ * Returns the component used to render the "Clear All" selector in the column header.
60
+ */
61
+ getClearAllComponent(): typeof Icon | undefined;
62
+ /**
63
+ * Returns the icon name used for the "Clear All" selector in the column header.
64
+ */
65
+ getClearAllIcon(): string | undefined;
53
66
  /**
54
67
  * Returns the ARIA description of the Table as an alternative to aria-multiselectable.
55
68
  */
@@ -73,6 +73,24 @@ class TableSelectionBase extends UI5Element {
73
73
  isRowSelectorRequired() {
74
74
  return this.behavior === TableSelectionBehavior.RowSelector;
75
75
  }
76
+ /**
77
+ * Returns the component used to render the row selector (for example, `CheckBox` or `RadioButton`).
78
+ */
79
+ getSelectionComponent() {
80
+ return undefined;
81
+ }
82
+ /**
83
+ * Returns the component used to render the "Clear All" selector in the column header.
84
+ */
85
+ getClearAllComponent() {
86
+ return undefined;
87
+ }
88
+ /**
89
+ * Returns the icon name used for the "Clear All" selector in the column header.
90
+ */
91
+ getClearAllIcon() {
92
+ return undefined;
93
+ }
76
94
  /**
77
95
  * Returns the ARIA description of the Table as an alternative to aria-multiselectable.
78
96
  */
@@ -1 +1 @@
1
- {"version":3,"file":"TableSelectionBase.js","sourceRoot":"","sources":["../src/TableSelectionBase.ts"],"names":[],"mappings":"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","sourcesContent":["import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport { property, eventStrict } from \"@ui5/webcomponents-base/dist/decorators.js\";\nimport { isInstanceOfTable } from \"./TableUtils.js\";\nimport type Table from \"./Table.js\";\nimport type TableRowBase from \"./TableRowBase.js\";\nimport type TableRow from \"./TableRow.js\";\nimport type { ITableFeature } from \"./Table.js\";\nimport TableSelectionBehavior from \"./types/TableSelectionBehavior.js\";\nimport {\n\tTABLE_MULTI_SELECTABLE,\n\tTABLE_SINGLE_SELECTABLE,\n} from \"./generated/i18n/i18n-defaults.js\";\n\n/**\n * Fired when selection is changed by user interaction.\n *\n * @public\n */\ntype TableSelectionBaseChangeEventDetail = void;\n\n/**\n * Fired when the selection is changed by user interaction.\n *\n * @public\n */\n@eventStrict(\"change\", {\n\tbubbles: false,\n})\n\n/**\n * @class\n * The `TableSelectionBase` class serves as a foundation for table selections.\n * @constructor\n * @extends UI5Element\n * @since 2.8.0\n * @public\n */\nabstract class TableSelectionBase extends UI5Element implements ITableFeature {\n\teventDetails!: {\n\t\tchange: TableSelectionBaseChangeEventDetail,\n\t}\n\n\t/**\n\t * Defines the selected elements of the component.\n\t *\n\t * @default undefined\n\t * @public\n\t */\n\t@property()\n\tselected?: string;\n\n\t/**\n\t * Defines the selection behavior.\n\t *\n\t * @default \"RowSelector\"\n\t * @public\n\t * @since 2.11\n\t */\n\t@property()\n\tbehavior: `${TableSelectionBehavior}` = \"RowSelector\";\n\n\treadonly identifier = \"TableSelection\";\n\tprotected _table?: Table;\n\tprivate _rowsLength = 0;\n\n\tonTableActivate(table: Table) {\n\t\tthis._table = table;\n\t\tthis._invalidateTableAndRows();\n\t}\n\n\tonExitDOM() {\n\t\tthis._invalidateTableAndRows();\n\t\tthis._table = undefined;\n\t}\n\n\tonBeforeRendering() {\n\t\tif (!this._table && this.parentElement && isInstanceOfTable(this.parentElement)) {\n\t\t\tthis._table = this.parentElement;\n\t\t}\n\t\tthis._invalidateTableAndRows();\n\t}\n\n\tonTableBeforeRendering() {\n\t\tif (this._table && this._table.headerRow[0] && this._rowsLength !== this._table.rows.length) {\n\t\t\tthis._rowsLength = this._table.rows.length;\n\t\t\tthis._table.headerRow[0]._invalidate++;\n\t\t}\n\t}\n\n\t// this will be removed when the legacy selection component is removed\n\tisSelectable(): boolean {\n\t\treturn true;\n\t}\n\n\t/**\n\t * Determines if the component allows multiple selection.\n\t */\n\tisMultiSelectable(): boolean {\n\t\treturn false;\n\t}\n\n\t/**\n\t * Determines whether a row selector (for example, `radiobutton` or `checkbox`) is rendered.\n\t */\n\tisRowSelectorRequired(): boolean {\n\t\treturn this.behavior === TableSelectionBehavior.RowSelector;\n\t}\n\n\t/**\n\t * Returns the ARIA description of the Table as an alternative to aria-multiselectable.\n\t */\n\tgetAriaDescriptionForTable(): string | undefined {\n\t\tif (!this._table || !this._table.rows.length) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\tconst i18nBundle = (this._table.constructor as typeof Table).i18nBundle;\n\t\treturn i18nBundle.getText(this.isMultiSelectable() ? TABLE_MULTI_SELECTABLE : TABLE_SINGLE_SELECTABLE);\n\t}\n\n\t/**\n\t * Returns the ARIA description of the selection component displayed in the column header.\n\t */\n\tgetAriaDescriptionForColumnHeader(): string | undefined {\n\t\treturn undefined;\n\t}\n\n\t/**\n\t * Returns the unique key associated with the table row.\n\t *\n\t * @param row The row instance\n\t */\n\tgetRowKey(row: TableRow): string {\n\t\treturn row.rowKey || \"\";\n\t}\n\n\t/**\n\t * Returns the table row instance for the given row key.\n\t *\n\t * @param rowKey The row key\n\t * @public\n\t */\n\tgetRowByKey(rowKey: string): TableRow | undefined {\n\t\tif (this._table && rowKey) {\n\t\t\treturn this._table.rows.find(row => this.getRowKey(row) === rowKey);\n\t\t}\n\t}\n\n\t/**\n\t * Determines whether the specified table row is currently selected.\n\t *\n\t * @param row The row instance\n\t */\n\tabstract isSelected(row: TableRowBase): boolean;\n\n\t/**\n\t * Sets the selected state of the specified table row.\n\t *\n\t * @param row The row instance\n\t * @param selected Whether the row is selected\n\t * @param fireEvent Whether the change event should be fired\n\t */\n\tabstract setSelected(row: TableRowBase, selected: boolean, fireEvent: boolean): void;\n\n\t/**\n\t * Invalidates the table and its rows to re-evaluate the selection.\n\t */\n\tprotected _invalidateTableAndRows() {\n\t\tif (this._table) {\n\t\t\tthis._table._invalidate++;\n\t\t\tthis._table.rows.forEach(row => row._invalidate++);\n\t\t\tthis._table.headerRow.forEach(row => row._invalidate++);\n\t\t}\n\t}\n}\n\nexport default TableSelectionBase;\n\nexport type {\n\tTableSelectionBaseChangeEventDetail,\n};\n"]}
1
+ {"version":3,"file":"TableSelectionBase.js","sourceRoot":"","sources":["../src/TableSelectionBase.ts"],"names":[],"mappings":"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","sourcesContent":["import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport { property, eventStrict } from \"@ui5/webcomponents-base/dist/decorators.js\";\nimport { isInstanceOfTable } from \"./TableUtils.js\";\nimport type Icon from \"./Icon.js\";\nimport type Table from \"./Table.js\";\nimport type TableRowBase from \"./TableRowBase.js\";\nimport type TableRow from \"./TableRow.js\";\nimport type { ITableFeature } from \"./Table.js\";\nimport TableSelectionBehavior from \"./types/TableSelectionBehavior.js\";\nimport {\n\tTABLE_MULTI_SELECTABLE,\n\tTABLE_SINGLE_SELECTABLE,\n} from \"./generated/i18n/i18n-defaults.js\";\n\n/**\n * Fired when selection is changed by user interaction.\n *\n * @public\n */\ntype TableSelectionBaseChangeEventDetail = void;\n\n/**\n * Fired when the selection is changed by user interaction.\n *\n * @public\n */\n@eventStrict(\"change\", {\n\tbubbles: false,\n})\n\n/**\n * @class\n * The `TableSelectionBase` class serves as a foundation for table selections.\n * @constructor\n * @extends UI5Element\n * @since 2.8.0\n * @public\n */\nabstract class TableSelectionBase extends UI5Element implements ITableFeature {\n\teventDetails!: {\n\t\tchange: TableSelectionBaseChangeEventDetail,\n\t}\n\n\t/**\n\t * Defines the selected elements of the component.\n\t *\n\t * @default undefined\n\t * @public\n\t */\n\t@property()\n\tselected?: string;\n\n\t/**\n\t * Defines the selection behavior.\n\t *\n\t * @default \"RowSelector\"\n\t * @public\n\t * @since 2.11\n\t */\n\t@property()\n\tbehavior: `${TableSelectionBehavior}` = \"RowSelector\";\n\n\treadonly identifier = \"TableSelection\";\n\tprotected _table?: Table;\n\tprivate _rowsLength = 0;\n\n\tonTableActivate(table: Table) {\n\t\tthis._table = table;\n\t\tthis._invalidateTableAndRows();\n\t}\n\n\tonExitDOM() {\n\t\tthis._invalidateTableAndRows();\n\t\tthis._table = undefined;\n\t}\n\n\tonBeforeRendering() {\n\t\tif (!this._table && this.parentElement && isInstanceOfTable(this.parentElement)) {\n\t\t\tthis._table = this.parentElement;\n\t\t}\n\t\tthis._invalidateTableAndRows();\n\t}\n\n\tonTableBeforeRendering() {\n\t\tif (this._table && this._table.headerRow[0] && this._rowsLength !== this._table.rows.length) {\n\t\t\tthis._rowsLength = this._table.rows.length;\n\t\t\tthis._table.headerRow[0]._invalidate++;\n\t\t}\n\t}\n\n\t// this will be removed when the legacy selection component is removed\n\tisSelectable(): boolean {\n\t\treturn true;\n\t}\n\n\t/**\n\t * Determines if the component allows multiple selection.\n\t */\n\tisMultiSelectable(): boolean {\n\t\treturn false;\n\t}\n\n\t/**\n\t * Determines whether a row selector (for example, `radiobutton` or `checkbox`) is rendered.\n\t */\n\tisRowSelectorRequired(): boolean {\n\t\treturn this.behavior === TableSelectionBehavior.RowSelector;\n\t}\n\n\t/**\n\t * Returns the component used to render the row selector (for example, `CheckBox` or `RadioButton`).\n\t */\n\tgetSelectionComponent(): typeof UI5Element | undefined {\n\t\treturn undefined;\n\t}\n\n\t/**\n\t * Returns the component used to render the \"Clear All\" selector in the column header.\n\t */\n\tgetClearAllComponent(): typeof Icon | undefined {\n\t\treturn undefined;\n\t}\n\n\t/**\n\t * Returns the icon name used for the \"Clear All\" selector in the column header.\n\t */\n\tgetClearAllIcon(): string | undefined {\n\t\treturn undefined;\n\t}\n\n\t/**\n\t * Returns the ARIA description of the Table as an alternative to aria-multiselectable.\n\t */\n\tgetAriaDescriptionForTable(): string | undefined {\n\t\tif (!this._table || !this._table.rows.length) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\tconst i18nBundle = (this._table.constructor as typeof Table).i18nBundle;\n\t\treturn i18nBundle.getText(this.isMultiSelectable() ? TABLE_MULTI_SELECTABLE : TABLE_SINGLE_SELECTABLE);\n\t}\n\n\t/**\n\t * Returns the ARIA description of the selection component displayed in the column header.\n\t */\n\tgetAriaDescriptionForColumnHeader(): string | undefined {\n\t\treturn undefined;\n\t}\n\n\t/**\n\t * Returns the unique key associated with the table row.\n\t *\n\t * @param row The row instance\n\t */\n\tgetRowKey(row: TableRow): string {\n\t\treturn row.rowKey || \"\";\n\t}\n\n\t/**\n\t * Returns the table row instance for the given row key.\n\t *\n\t * @param rowKey The row key\n\t * @public\n\t */\n\tgetRowByKey(rowKey: string): TableRow | undefined {\n\t\tif (this._table && rowKey) {\n\t\t\treturn this._table.rows.find(row => this.getRowKey(row) === rowKey);\n\t\t}\n\t}\n\n\t/**\n\t * Determines whether the specified table row is currently selected.\n\t *\n\t * @param row The row instance\n\t */\n\tabstract isSelected(row: TableRowBase): boolean;\n\n\t/**\n\t * Sets the selected state of the specified table row.\n\t *\n\t * @param row The row instance\n\t * @param selected Whether the row is selected\n\t * @param fireEvent Whether the change event should be fired\n\t */\n\tabstract setSelected(row: TableRowBase, selected: boolean, fireEvent: boolean): void;\n\n\t/**\n\t * Invalidates the table and its rows to re-evaluate the selection.\n\t */\n\tprotected _invalidateTableAndRows() {\n\t\tif (this._table) {\n\t\t\tthis._table._invalidate++;\n\t\t\tthis._table.rows.forEach(row => row._invalidate++);\n\t\t\tthis._table.headerRow.forEach(row => row._invalidate++);\n\t\t}\n\t}\n}\n\nexport default TableSelectionBase;\n\nexport type {\n\tTableSelectionBaseChangeEventDetail,\n};\n"]}
@@ -1,4 +1,6 @@
1
1
  import TableSelectionBase from "./TableSelectionBase.js";
2
+ import CheckBox from "./CheckBox.js";
3
+ import Icon from "./Icon.js";
2
4
  import type TableRow from "./TableRow.js";
3
5
  import type TableRowBase from "./TableRowBase.js";
4
6
  import type TableSelectionMultiHeaderSelector from "./types/TableSelectionMultiHeaderSelector.js";
@@ -53,6 +55,9 @@ declare class TableSelectionMulti extends TableSelectionBase {
53
55
  onTableBeforeRendering(): void;
54
56
  onTableAfterRendering(): void;
55
57
  isMultiSelectable(): boolean;
58
+ getSelectionComponent(): typeof CheckBox;
59
+ getClearAllComponent(): typeof Icon;
60
+ getClearAllIcon(): string;
56
61
  isSelected(row: TableRowBase): boolean;
57
62
  setSelected(row: TableRowBase, selected: boolean, fireEvent?: boolean): void;
58
63
  /**
@@ -6,6 +6,9 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
6
6
  };
7
7
  import { customElement, property } from "@ui5/webcomponents-base/dist/decorators.js";
8
8
  import TableSelectionBase from "./TableSelectionBase.js";
9
+ import CheckBox from "./CheckBox.js";
10
+ import Icon from "./Icon.js";
11
+ import ClearAll from "@ui5/webcomponents-icons/dist/clear-all.js";
9
12
  import getActiveElement from "@ui5/webcomponents-base/dist/util/getActiveElement.js";
10
13
  import { isSelectionCell, isHeaderSelectionCell, findRowInPath } from "./TableUtils.js";
11
14
  import { isUpShift } from "@ui5/webcomponents-base/dist/Keys.js";
@@ -62,6 +65,15 @@ let TableSelectionMulti = class TableSelectionMulti extends TableSelectionBase {
62
65
  isMultiSelectable() {
63
66
  return true;
64
67
  }
68
+ getSelectionComponent() {
69
+ return CheckBox;
70
+ }
71
+ getClearAllComponent() {
72
+ return Icon;
73
+ }
74
+ getClearAllIcon() {
75
+ return ClearAll;
76
+ }
65
77
  isSelected(row) {
66
78
  if (row.isHeaderRow()) {
67
79
  return this.headerSelector === "ClearAll" ? true : this.areAllRowsSelected();