diff --git a/packages/web/src/designer/Designer.svelte b/packages/web/src/designer/Designer.svelte index fe5059791..66157da4b 100644 --- a/packages/web/src/designer/Designer.svelte +++ b/packages/web/src/designer/Designer.svelte @@ -183,6 +183,20 @@ ); }; + const selectTable = (table, addToSelection) => { + callChange( + current => ({ + ...current, + tables: (current.tables || []).map(x => + x.designerId == table.designerId + ? { ...x, isSelectedTable: true } + : { ...x, isSelectedTable: addToSelection ? x.isSelectedTable : false } + ), + }), + true + ); + }; + const removeTable = table => { callChange(current => ({ ...current, @@ -587,6 +601,17 @@ on:dragover={e => e.preventDefault()} on:drop={handleDrop} style={`width:${canvasWidth}px;height:${canvasHeight}px;`} + on:mousedown={e => { + if (e.button == 0 && settings?.canSelectTables) { + callChange( + current => ({ + ...current, + tables: (current.tables || []).map(x => ({ ...x, isSelectedTable: false })), + }), + true + ); + } + }} > {#each references || [] as ref (ref.designerId)} onBringToFront(table)} + on:mousedown={e => { + if (e.button == 0) { + e.stopPropagation(); + onBringToFront(table); + if (settings?.canSelectTables && !table?.isSelectedTable) { + onSelectTable(table, e.ctrlKey); + } + } + }} use:contextMenu={settings?.canSelectColumns ? '__no_menu' : createMenu} use:moveDrag={settings?.canSelectColumns ? null : [handleMoveStart, handleMove, handleMoveEnd]} > @@ -146,6 +156,12 @@ /> {/each} + {#if table?.isSelectedTable} +
+
+
+
+ {/if}