diff --git a/packages/web/src/datagrid/DataGridCore.svelte b/packages/web/src/datagrid/DataGridCore.svelte index ccc8ef1a7..2f1c15073 100644 --- a/packages/web/src/datagrid/DataGridCore.svelte +++ b/packages/web/src/datagrid/DataGridCore.svelte @@ -190,6 +190,7 @@ export let allRowCount = undefined; export let onReferenceSourceChanged = undefined; export let onReferenceClick = undefined; + export let onSelectionChanged = undefined; export let onSave; export let focusOnVisible = false; export let onExportGrid = null; @@ -417,6 +418,30 @@ domFocusField.focus(); } + const lastPublishledRef = { current: '' }; + $: if (onSelectionChanged) { + const published = getCellsPublished(selectedCells); + const stringified = stableStringify(published); + if (lastPublishledRef.current != stringified) { + // console.log('PUBLISH', published); + // console.log('lastPublishledRef.current', lastPublishledRef.current); + // console.log('stringified', stringified); + lastPublishledRef.current = stringified; + onSelectionChanged(published); + } + } + + function getCellsPublished(cells) { + const regular = cellsToRegularCells(cells); + // @ts-ignore + return regular + .map(cell => ({ + row: cell[0], + column: realColumnUniqueNames[cell[1]], + })) + .filter(x => x.column); + } + function scrollIntoView(cell) { const [row, col] = cell; diff --git a/packages/web/src/freetable/FreeTableGrid.svelte b/packages/web/src/freetable/FreeTableGrid.svelte index 2de33ac78..8dcd3f287 100644 --- a/packages/web/src/freetable/FreeTableGrid.svelte +++ b/packages/web/src/freetable/FreeTableGrid.svelte @@ -1,5 +1,6 @@