diff --git a/frontend/src/lib/components/apps/components/display/table/AppAggridExplorerTable.svelte b/frontend/src/lib/components/apps/components/display/table/AppAggridExplorerTable.svelte index 5b8d6dd5d7..5ff9b63eb4 100644 --- a/frontend/src/lib/components/apps/components/display/table/AppAggridExplorerTable.svelte +++ b/frontend/src/lib/components/apps/components/display/table/AppAggridExplorerTable.svelte @@ -40,7 +40,7 @@ const context = getContext('AppViewerContext') const contextPanel = getContext('ContextPanel') - const { app, selectedComponent, componentControl, darkMode } = context + const { app, selectedComponent, componentControl, darkMode, mode } = context let css = initCss($app.css?.aggridcomponent, customCss) @@ -442,7 +442,24 @@ class="ag-theme-alpine" class:ag-theme-alpine-dark={$darkMode} > -
+ +
{ + if ((e.ctrlKey || e.metaKey) && e.key === 'c' && $mode !== 'dnd') { + const selectedCell = api?.getFocusedCell() + if (selectedCell) { + const rowIndex = selectedCell.rowIndex + const colId = selectedCell.column?.getId() + const rowNode = api?.getDisplayedRowAtIndex(rowIndex) + const selectedValue = rowNode?.data?.[colId] + navigator.clipboard.writeText(selectedValue) + sendUserToast('Copied cell value to clipboard', false) + } + } + }} + />
{#if resolvedConfig && 'footer' in resolvedConfig && resolvedConfig.footer}
diff --git a/frontend/src/lib/components/apps/components/display/table/AppAggridTable.svelte b/frontend/src/lib/components/apps/components/display/table/AppAggridTable.svelte index 293142f6c3..0a4bc80997 100644 --- a/frontend/src/lib/components/apps/components/display/table/AppAggridTable.svelte +++ b/frontend/src/lib/components/apps/components/display/table/AppAggridTable.svelte @@ -55,7 +55,7 @@ const iterContext = getContext('ListWrapperContext') const listInputs: ListInputs | undefined = getContext('ListInputs') - const { app, worldStore, selectedComponent, componentControl, darkMode } = context + const { app, worldStore, selectedComponent, componentControl, darkMode, mode } = context const rowHeights = { normal: 40, @@ -287,7 +287,6 @@ pagination: resolvedConfig?.pagination, paginationAutoPageSize: resolvedConfig?.pagination, suppressPaginationPanel: true, - defaultColDef: { flex: resolvedConfig.flex ? 1 : 0, editable: resolvedConfig?.allEditable, @@ -514,7 +513,24 @@ > {#key resolvedConfig?.pagination} {#if loaded} -
+ +
{ + if ((e.ctrlKey || e.metaKey) && e.key === 'c' && $mode !== 'dnd') { + const selectedCell = api?.getFocusedCell() + if (selectedCell) { + const rowIndex = selectedCell.rowIndex + const colId = selectedCell.column?.getId() + const rowNode = api?.getDisplayedRowAtIndex(rowIndex) + const selectedValue = rowNode?.data?.[colId] + navigator.clipboard.writeText(selectedValue) + sendUserToast('Copied cell value to clipboard', false) + } + } + }} + /> {:else} {/if}