From dfa8ca6797de259cce66132dc80cb7ce214bbc51 Mon Sep 17 00:00:00 2001 From: Jan Prochazka Date: Sun, 14 Mar 2021 21:12:29 +0100 Subject: [PATCH] free table editor - working macros --- packages/web/src/datagrid/DataGridCore.svelte | 25 +++++++++++++++++++ .../web/src/freetable/FreeTableGrid.svelte | 14 ++++++++--- .../src/freetable/FreeTableGridCore.svelte | 4 +-- packages/web/src/freetable/MacroDetail.svelte | 3 +++ 4 files changed, 41 insertions(+), 5 deletions(-) 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 @@