From 37c04178480d2ef4af6de4918d68d78b178de314 Mon Sep 17 00:00:00 2001 From: Andrew Kingston Date: Sun, 23 Jun 2024 18:42:39 +0100 Subject: [PATCH] Add bulk cell delete featuer --- .../grid/controls/BulkDeleteHandler.svelte | 68 ++++++++++++++++--- .../grid/overlays/KeyboardManager.svelte | 3 + .../grid/overlays/MenuOverlay.svelte | 9 ++- 3 files changed, 67 insertions(+), 13 deletions(-) diff --git a/packages/frontend-core/src/components/grid/controls/BulkDeleteHandler.svelte b/packages/frontend-core/src/components/grid/controls/BulkDeleteHandler.svelte index 1f835c3991..fb05348fa4 100644 --- a/packages/frontend-core/src/components/grid/controls/BulkDeleteHandler.svelte +++ b/packages/frontend-core/src/components/grid/controls/BulkDeleteHandler.svelte @@ -1,19 +1,35 @@ - + - Are you sure you want to delete {selectedRowCount} - row{selectedRowCount === 1 ? "" : "s"}? + Are you sure you want to delete {$selectedRowCount} + row{$selectedRowCount === 1 ? "" : "s"}? + + + + + + Are you sure you want to delete {$selectedCellCount} + cell{$selectedCellCount === 1 ? "" : "s"}? diff --git a/packages/frontend-core/src/components/grid/overlays/KeyboardManager.svelte b/packages/frontend-core/src/components/grid/overlays/KeyboardManager.svelte index e74cddd61b..5c189b155b 100644 --- a/packages/frontend-core/src/components/grid/overlays/KeyboardManager.svelte +++ b/packages/frontend-core/src/components/grid/overlays/KeyboardManager.svelte @@ -81,6 +81,9 @@ return handle(() => changeFocusedRow(1, e.shiftKey)) case "Escape": return handle(selectedCells.actions.clear) + case "Delete": + case "Backspace": + return handle(() => dispatch("request-bulk-delete")) } } diff --git a/packages/frontend-core/src/components/grid/overlays/MenuOverlay.svelte b/packages/frontend-core/src/components/grid/overlays/MenuOverlay.svelte index 99ecc602a4..5e433140d9 100644 --- a/packages/frontend-core/src/components/grid/overlays/MenuOverlay.svelte +++ b/packages/frontend-core/src/components/grid/overlays/MenuOverlay.svelte @@ -20,6 +20,7 @@ selectedRowCount, copyAllowed, pasteAllowed, + selectedCellCount, } = getContext("grid") let anchor @@ -92,8 +93,12 @@ > Paste - {}}> - Delete + dispatch("request-bulk-delete")} + > + Delete {$selectedCellCount} cells {:else}