diff --git a/components/lib/datatable/datatable.d.ts b/components/lib/datatable/datatable.d.ts index b81347a050..a7457985bf 100644 --- a/components/lib/datatable/datatable.d.ts +++ b/components/lib/datatable/datatable.d.ts @@ -363,11 +363,11 @@ interface DataTableSelectionSingleChangeEvent { +interface DataTableSelectionCellSingleChangeEvent { /** * Browser event. */ @@ -386,6 +386,30 @@ interface DataTableSelectionCellChangeEvent [key: string]: any; } +/** + * Custom cell multiple selection change event. + * @see {@link DataTableProps.onSelectionChange} + * @event + */ +interface DataTableSelectionCellMultipleChangeEvent { + /** + * Browser event. + */ + originalEvent: React.SyntheticEvent; + /** + * Selection objects. + */ + value: Array>; + /** + * Type of the selection. + */ + type?: 'cell'; + /** + * Extra options. + */ + [key: string]: any; +} + /** * Custom select all change event. * @see {@link DataTableProps.onSelectAllChange} @@ -1851,7 +1875,7 @@ interface DataTablePropsMultiple extends Dat * Defines valid properties in DataTable component. In addition to these, all properties of HTMLDivElement can be used in this component. * @group Properties */ -interface DataTablePropsCell extends DataTableBaseProps { +interface DataTablePropsCellSingle extends DataTableBaseProps { /** * Whether to cell selection is enabled or not. * @defaultValue false @@ -1860,7 +1884,7 @@ interface DataTablePropsCell extends DataTab /** * Specifies the selection mode, valid values are "single", "multiple", "radiobutton" and "checkbox". */ - selectionMode: 'single' | 'multiple'; + selectionMode: 'single'; /** * Selected cells. */ @@ -1872,16 +1896,46 @@ interface DataTablePropsCell extends DataTab onContextMenuSelectionChange?(event: DataTableContextMenuMultipleSelectionChangeEvent): void; /** * Callback to invoke when selection changes. - * @param {DataTableSelectionCellChangeEvent} event - Custom selection change event. + * @param {DataTableSelectionCellSingleChangeEvent} event - Custom selection change event. + */ + onSelectionChange?(event: DataTableSelectionCellSingleChangeEvent): void; +} + +/** + * Defines valid properties in DataTable component. In addition to these, all properties of HTMLDivElement can be used in this component. + * @group Properties + */ +interface DataTablePropsCellMultiple extends DataTableBaseProps { + /** + * Whether to cell selection is enabled or not. + * @defaultValue false + */ + cellSelection: true; + /** + * Specifies the selection mode, valid values are "single", "multiple", "radiobutton" and "checkbox". + */ + selectionMode: 'multiple'; + /** + * Selected cells. + */ + selection: Array> | null; + /** + * Callback to invoke when a row selected with right click. + * @param {DataTableRowEvent} event - Custom row event. + */ + onContextMenuSelectionChange?(event: DataTableContextMenuMultipleSelectionChangeEvent): void; + /** + * Callback to invoke when selection changes. + * @param {DataTableSelectionCellMultipleChangeEvent} event - Custom selection change event. */ - onSelectionChange?(event: DataTableSelectionCellChangeEvent): void; + onSelectionChange?(event: DataTableSelectionCellMultipleChangeEvent): void; } /** * Defines valid properties in DataTable component. In addition to these, all properties of HTMLDivElement can be used in this component. * @group Properties */ -export type DataTableProps = DataTablePropsSingle | DataTablePropsCell | DataTablePropsMultiple; +export type DataTableProps = DataTablePropsSingle | DataTablePropsCellSingle | DataTablePropsMultiple | DataTablePropsCellMultiple; /** * **PrimeReact - DataTable