From 269aa417325494e635a446e0f8e3aee37cc98c1f Mon Sep 17 00:00:00 2001 From: Andrew Kingston Date: Fri, 3 May 2024 11:47:54 +0100 Subject: [PATCH 01/10] Add WIP --- .../ButtonConfiguration/ButtonSetting.svelte | 2 +- .../DraggableList/DraggableList.svelte | 3 - .../EditComponentPopover.svelte | 65 +++++++++---------- .../controls/EditComponentPopover/index.js | 18 ----- .../FieldConfiguration/FieldSetting.svelte | 2 +- .../FieldSetting.svelte | 2 +- .../PrimaryColumnFieldSetting.svelte | 2 +- .../GridColumnConfiguration/getColumns.js | 2 + .../src/components/portal/onboarding/tours.js | 4 -- packages/client/manifest.json | 6 ++ 10 files changed, 43 insertions(+), 63 deletions(-) rename packages/builder/src/components/design/settings/controls/{EditComponentPopover => }/EditComponentPopover.svelte (81%) delete mode 100644 packages/builder/src/components/design/settings/controls/EditComponentPopover/index.js diff --git a/packages/builder/src/components/design/settings/controls/ButtonConfiguration/ButtonSetting.svelte b/packages/builder/src/components/design/settings/controls/ButtonConfiguration/ButtonSetting.svelte index 9a88875140..2387fda683 100644 --- a/packages/builder/src/components/design/settings/controls/ButtonConfiguration/ButtonSetting.svelte +++ b/packages/builder/src/components/design/settings/controls/ButtonConfiguration/ButtonSetting.svelte @@ -1,5 +1,5 @@ - { - if (!open) { - popover.show() - open = true - } - }} -/> + { - drawers = [] - $draggable.actions.select(componentInstance._id) - }} - on:close={() => { - open = false - if ($draggable.selected === componentInstance._id) { - $draggable.actions.select() - } - }} + open={isOpen} + on:close={close} {anchor} align="left-outside" showPopover={drawers.length === 0} clickOutsideOverride={drawers.length > 0} maxHeight={600} offset={18} - handlePostionUpdate={customPositionHandler} > diff --git a/packages/builder/src/components/design/settings/controls/EditComponentPopover/index.js b/packages/builder/src/components/design/settings/controls/EditComponentPopover/index.js deleted file mode 100644 index 2dc3f60185..0000000000 --- a/packages/builder/src/components/design/settings/controls/EditComponentPopover/index.js +++ /dev/null @@ -1,18 +0,0 @@ -export const customPositionHandler = (anchorBounds, eleBounds, cfg) => { - let { left, top, offset } = cfg - let percentageOffset = 30 - // left-outside - left = anchorBounds.left - eleBounds.width - (offset || 5) - - // shift up from the anchor, if space allows - let offsetPos = Math.floor(eleBounds.height / 100) * percentageOffset - let defaultTop = anchorBounds.top - offsetPos - - if (window.innerHeight - defaultTop < eleBounds.height) { - top = window.innerHeight - eleBounds.height - 5 - } else { - top = anchorBounds.top - offsetPos - } - - return { ...cfg, left, top } -} diff --git a/packages/builder/src/components/design/settings/controls/FieldConfiguration/FieldSetting.svelte b/packages/builder/src/components/design/settings/controls/FieldConfiguration/FieldSetting.svelte index 771bcf20e0..27590a9858 100644 --- a/packages/builder/src/components/design/settings/controls/FieldConfiguration/FieldSetting.svelte +++ b/packages/builder/src/components/design/settings/controls/FieldConfiguration/FieldSetting.svelte @@ -1,5 +1,5 @@
@@ -148,6 +160,7 @@ notifyError={notificationStore.actions.error} buttons={enrichedButtons} on:rowclick={e => onRowClick?.({ row: e.detail })} + on:columnresize={onColumnResize} /> diff --git a/packages/frontend-core/src/components/grid/stores/columns.js b/packages/frontend-core/src/components/grid/stores/columns.js index f463348a1f..8ceaae105f 100644 --- a/packages/frontend-core/src/components/grid/stores/columns.js +++ b/packages/frontend-core/src/components/grid/stores/columns.js @@ -194,7 +194,7 @@ export const initialise = context => { name: field, label: fieldSchema.displayName || field, schema: fieldSchema, - width: oldColumn?.width || fieldSchema.width || DefaultColumnWidth, + width: fieldSchema.width || oldColumn?.width || DefaultColumnWidth, visible: fieldSchema.visible ?? true, order: fieldSchema.order ?? oldColumn?.order, primaryDisplay: field === primaryDisplay, diff --git a/packages/frontend-core/src/components/grid/stores/resize.js b/packages/frontend-core/src/components/grid/stores/resize.js index 157465e838..38ce16740e 100644 --- a/packages/frontend-core/src/components/grid/stores/resize.js +++ b/packages/frontend-core/src/components/grid/stores/resize.js @@ -21,7 +21,7 @@ export const createStores = () => { } export const createActions = context => { - const { resize, columns, stickyColumn, ui } = context + const { resize, columns, stickyColumn, ui, dispatch } = context // Starts resizing a certain column const startResizing = (column, e) => { @@ -102,6 +102,8 @@ export const createActions = context => { // Persist width if it changed if ($resize.width !== $resize.initialWidth) { await columns.actions.saveChanges() + const { column, width } = $resize + dispatch("columnresize", { column, width }) } } From 9a0d6801a1409a42b2a333e4a21a8180d2e13b69 Mon Sep 17 00:00:00 2001 From: Andrew Kingston Date: Tue, 14 May 2024 09:17:16 +0100 Subject: [PATCH 04/10] Add sensible min and max column widths --- packages/client/manifest.json | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/packages/client/manifest.json b/packages/client/manifest.json index f423a7255b..3a1cd2b5df 100644 --- a/packages/client/manifest.json +++ b/packages/client/manifest.json @@ -2751,7 +2751,9 @@ "type": "number", "label": "Initial width", "key": "width", - "placeholder": "Auto" + "placeholder": "Auto", + "min": 80, + "max": 9999 } ] }, From 28e91959e51e0f05973a12c3bbbae4ba3126655b Mon Sep 17 00:00:00 2001 From: Andrew Kingston Date: Fri, 17 May 2024 11:24:51 +0100 Subject: [PATCH 05/10] Fix grid block having incorrect toolbar position in builder preview --- .../src/components/app/GridBlock.svelte | 76 ++++++++++--------- 1 file changed, 39 insertions(+), 37 deletions(-) diff --git a/packages/client/src/components/app/GridBlock.svelte b/packages/client/src/components/app/GridBlock.svelte index cf0ec76109..446a792784 100644 --- a/packages/client/src/components/app/GridBlock.svelte +++ b/packages/client/src/components/app/GridBlock.svelte @@ -44,6 +44,7 @@ $: schemaOverrides = getSchemaOverrides(parsedColumns) $: enrichedButtons = enrichButtons(buttons) $: selectedRows = deriveSelectedRows(gridContext) + $: styles = patchStyles($component.styles, minHeight) $: data = { selectedRows: $selectedRows } $: actions = [ { @@ -128,52 +129,54 @@ ) } + const patchStyles = (styles, minHeight) => { + return { + ...styles, + normal: { + ...styles?.normal, + "min-height": `${minHeight}px`, + }, + } + } + onMount(() => { gridContext = grid.getContext() gridContext.minHeight.subscribe($height => (minHeight = $height)) }) - -
- onRowClick?.({ row: e.detail })} - /> -
-
+
+ onRowClick?.({ row: e.detail })} + /> +