From 9c761137e871f1608d47d662927995e77fbe355f Mon Sep 17 00:00:00 2001 From: Bilux Date: Thu, 20 Oct 2022 18:40:46 +0100 Subject: [PATCH 1/2] add an overflow menu selection variant for DataTable --- src/DataTable/DataTable.svelte | 17 ++++++++++++++--- types/DataTable/DataTable.svelte.d.ts | 12 ++++++++++++ 2 files changed, 26 insertions(+), 3 deletions(-) diff --git a/src/DataTable/DataTable.svelte b/src/DataTable/DataTable.svelte index e59b3f00..c5cfe279 100644 --- a/src/DataTable/DataTable.svelte +++ b/src/DataTable/DataTable.svelte @@ -93,6 +93,9 @@ /** Set to `true` for the radio selection variant */ export let radio = false; + /** Set to `true` for the overflow menu selection variant */ + export let overflowMenu = false; + /** * Set to `true` for the selectable variant * Automatically set to `true` if `radio` or `batchSelection` are `true` @@ -126,11 +129,15 @@ /** Set to `number` to set current page */ export let page = 0; + /** Obtain a reference to the trigger body element */ + export let tRef = null; + import { createEventDispatcher, setContext } from "svelte"; import { writable } from "svelte/store"; import ChevronRight from "../icons/ChevronRight.svelte"; import InlineCheckbox from "../Checkbox/InlineCheckbox.svelte"; import RadioButton from "../RadioButton/RadioButton.svelte"; + import OverflowMenu from "../OverflowMenu/OverflowMenu.svelte"; import Table from "./Table.svelte"; import TableBody from "./TableBody.svelte"; import TableCell from "./TableCell.svelte"; @@ -194,7 +201,7 @@ expandable = true; expanded = expandedRowIds.length === expandableRowIds.length; } - $: if (radio || batchSelection) selectable = true; + $: if (radio || batchSelection || OverflowMenu) selectable = true; $: headerKeys = headers.map(({ key }) => key); $: tableCellsByRowId = rows.reduce((rows, row) => { rows[row.id] = headerKeys.map((key, index) => ({ @@ -258,7 +265,7 @@ }; - + {#if title || $$slots.title || description || $$slots.description}
{#if title || $$slots.title} @@ -309,7 +316,7 @@ {#if selectable && !batchSelection} {/if} - {#if batchSelection && !radio} + {#if batchSelection && !radio && !overflowMenu} + {:else if overflowMenu} + + + {:else} Date: Thu, 20 Oct 2022 23:48:39 +0100 Subject: [PATCH 2/2] fix a typo and spacing --- src/DataTable/DataTable.svelte | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/DataTable/DataTable.svelte b/src/DataTable/DataTable.svelte index c5cfe279..79ed16f3 100644 --- a/src/DataTable/DataTable.svelte +++ b/src/DataTable/DataTable.svelte @@ -201,7 +201,7 @@ expandable = true; expanded = expandedRowIds.length === expandableRowIds.length; } - $: if (radio || batchSelection || OverflowMenu) selectable = true; + $: if (radio || batchSelection || overflowMenu) selectable = true; $: headerKeys = headers.map(({ key }) => key); $: tableCellsByRowId = rows.reduce((rows, row) => { rows[row.id] = headerKeys.map((key, index) => ({ @@ -314,7 +314,7 @@ {/if} {#if selectable && !batchSelection} - + {/if} {#if batchSelection && !radio && !overflowMenu} @@ -458,7 +458,7 @@ }}" /> {:else if overflowMenu} - + {:else}