diff --git a/packages/web/src/datagrid/CollapseButton.svelte b/packages/web/src/datagrid/CollapseButton.svelte new file mode 100644 index 000000000..13795f112 --- /dev/null +++ b/packages/web/src/datagrid/CollapseButton.svelte @@ -0,0 +1,26 @@ + + +
+ +
+ + diff --git a/packages/web/src/datagrid/DataGrid.svelte b/packages/web/src/datagrid/DataGrid.svelte index aed5453a6..23a4542f6 100644 --- a/packages/web/src/datagrid/DataGrid.svelte +++ b/packages/web/src/datagrid/DataGrid.svelte @@ -88,6 +88,7 @@ setContext('macroValues', macroValues); let managerSize; + let collapsedLeftColumnStore = writable(false); $: isFormView = !!(formDisplay && formDisplay.config && formDisplay.config.isFormView); $: isJsonView = !!config?.isJsonView; @@ -127,15 +128,10 @@ ); - +
- + @@ -177,6 +173,7 @@ []; + export let collapsedLeftColumnStore; // export let generalAllowSave = false; export const activator = createActivator('DataGridCore', false); @@ -565,6 +567,7 @@ function handleGridMouseDown(event) { if (event.target.closest('.buttonLike')) return; if (event.target.closest('.resizeHandleControl')) return; + if (event.target.closest('.collapseButtonMarker')) return; if (event.target.closest('input')) return; // event.target.closest('table').focus(); @@ -991,7 +994,12 @@ data-row="header" data-col="header" style={`width:${headerColWidth}px; min-width:${headerColWidth}px; max-width:${headerColWidth}px`} - /> + > + collapsedLeftColumnStore.update(x => !x)} + /> + {#each visibleRealColumns as col (col.uniqueName)}
-
- -
+ {#if !hideFirst} +
+ +
+ {/if} {#if isSplitter} -
(size += e.detail)} /> + {#if !hideFirst} +
(size += e.detail)} /> + {/if}
diff --git a/packages/web/src/icons/FontIcon.svelte b/packages/web/src/icons/FontIcon.svelte index b2db28fb0..f6659ed1b 100644 --- a/packages/web/src/icons/FontIcon.svelte +++ b/packages/web/src/icons/FontIcon.svelte @@ -48,6 +48,8 @@ 'icon arrow-begin': 'mdi mdi-arrow-collapse-left', 'icon arrow-end': 'mdi mdi-arrow-collapse-right', 'icon arrow-right': 'mdi mdi-arrow-right', + 'icon triple-left': 'mdi mdi-chevron-triple-left', + 'icon triple-right': 'mdi mdi-chevron-triple-right', 'icon format-code': 'mdi mdi-code-tags-check', 'icon show-wizard': 'mdi mdi-comment-edit', 'icon disconnected': 'mdi mdi-lan-disconnect',