diff --git a/COMPONENT_INDEX.md b/COMPONENT_INDEX.md index 43037eb1..42c32a27 100644 --- a/COMPONENT_INDEX.md +++ b/COMPONENT_INDEX.md @@ -1008,6 +1008,7 @@ export interface DataTableCell { | mouseenter:row | dispatched | DataTableRow | | mouseleave:row | dispatched | DataTableRow | | click:row--expand | dispatched | { expanded: boolean; row: DataTableRow; } | +| click:row--select | dispatched | { selected: boolean; row: DataTableRow; } | | click:cell | dispatched | DataTableCell | ## `DataTableSkeleton` diff --git a/docs/src/COMPONENT_API.json b/docs/src/COMPONENT_API.json index 13b1ae4e..c4024a81 100644 --- a/docs/src/COMPONENT_API.json +++ b/docs/src/COMPONENT_API.json @@ -2663,6 +2663,11 @@ "name": "click:row--expand", "detail": "{ expanded: boolean; row: DataTableRow; }" }, + { + "type": "dispatched", + "name": "click:row--select", + "detail": "{ selected: boolean; row: DataTableRow; }" + }, { "type": "dispatched", "name": "click:cell", diff --git a/src/DataTable/DataTable.svelte b/src/DataTable/DataTable.svelte index fa90873f..32ab17a6 100644 --- a/src/DataTable/DataTable.svelte +++ b/src/DataTable/DataTable.svelte @@ -18,6 +18,7 @@ * @event {DataTableRow} mouseenter:row * @event {DataTableRow} mouseleave:row * @event {{ expanded: boolean; row: DataTableRow; }} click:row--expand + * @event {{ selected: boolean; row: DataTableRow; }} click:row--select * @event {DataTableCell} click:cell * @restProps {div} */ @@ -440,6 +441,7 @@ checked="{selectedRowIds.includes(row.id)}" on:change="{() => { selectedRowIds = [row.id]; + dispatch('click:row--select', { row, selected: true }); }}" /> {:else} @@ -451,8 +453,10 @@ selectedRowIds = selectedRowIds.filter( (id) => id !== row.id ); + dispatch('click:row--select', { row, selected: false }); } else { selectedRowIds = [...selectedRowIds, row.id]; + dispatch('click:row--select', { row, selected: true }); } }}" /> diff --git a/types/DataTable/DataTable.svelte.d.ts b/types/DataTable/DataTable.svelte.d.ts index e3be8ebf..67ba8eda 100644 --- a/types/DataTable/DataTable.svelte.d.ts +++ b/types/DataTable/DataTable.svelte.d.ts @@ -198,6 +198,10 @@ export default class DataTable extends SvelteComponentTyped< expanded: boolean; row: DataTableRow; }>; + ["click:row--select"]: CustomEvent<{ + selected: boolean; + row: DataTableRow; + }>; ["click:cell"]: CustomEvent; }, {