diff --git a/packages/web/src/elements/QueryDesignColumns.svelte b/packages/web/src/elements/QueryDesignColumns.svelte index 45dfd5336..e060dac30 100644 --- a/packages/web/src/elements/QueryDesignColumns.svelte +++ b/packages/web/src/elements/QueryDesignColumns.svelte @@ -18,6 +18,7 @@ import TableControl from './TableControl.svelte'; import FormStyledButton from '../buttons/FormStyledButton.svelte'; import _ from 'lodash'; + import FontIcon from '../icons/FontIcon.svelte'; export let value; export let onChange; @@ -38,6 +39,28 @@ })); }; + const moveColumn = (col, d) => { + onChange(current => { + const index = _.findIndex( + current.columns || [], + x => col.designerId == x.designerId && col.columnName == x.columnName + ); + + if (index >= 0 && index + d >= 0 && index + d < current.columns?.length) { + const columns = [...current.columns]; + + [columns[index], columns[index + d]] = [columns[index + d], columns[index]]; + + return { + ...current, + columns, + }; + } + + return current; + }); + }; + const addExpressionColumn = () => { onChange(current => ({ ...current, @@ -207,7 +230,11 @@ /> - removeColumn(row)}>Remove +
+ removeColumn(row)} square> + moveColumn(row, -1)} square> + moveColumn(row, 1)} square> +