From 1582903aa34e30a9c60c79d8d217a805f3edc733 Mon Sep 17 00:00:00 2001
From: aarondoet <42084688+aarondoet@users.noreply.github.com>
Date: Tue, 3 Sep 2024 21:28:32 +0000
Subject: [PATCH 1/5] Implement table sorting and searching
---
src/lib/table/Table.svelte | 56 +++++++++++++++++--
src/lib/table/TableBody.svelte | 18 +++++-
src/lib/table/TableBodyCell.svelte | 4 +-
src/lib/table/TableBodyRow.svelte | 4 +-
src/lib/table/TableHead.svelte | 4 +-
src/lib/table/TableHeadCell.svelte | 41 ++++++++++++--
src/lib/table/TableSearch.svelte | 34 +++++++++--
src/lib/table/index.ts | 7 ++-
src/routes/components/table/+page.svelte | 10 ++--
.../components/table/md/search-input.md | 8 +--
10 files changed, 152 insertions(+), 34 deletions(-)
diff --git a/src/lib/table/Table.svelte b/src/lib/table/Table.svelte
index f32f823f..13db7964 100644
--- a/src/lib/table/Table.svelte
+++ b/src/lib/table/Table.svelte
@@ -1,12 +1,15 @@
-
+ {#if filter}
+
+
+
+ {#if header}
+ {@render header()}
+ {/if}
+
+ {:else if header}
+ {@render header()}
+ {/if}
+ {#if footer}
+ {@render footer()}
+ {/if}
diff --git a/src/lib/table/TableBody.svelte b/src/lib/table/TableBody.svelte
index 8cfc4065..617c68c4 100644
--- a/src/lib/table/TableBody.svelte
+++ b/src/lib/table/TableBody.svelte
@@ -33,5 +33,6 @@
## Props
@prop children
@prop class: className
+@prop row
@prop ...restProps
-->
diff --git a/src/lib/table/TableHeadCell.svelte b/src/lib/table/TableHeadCell.svelte
index a683bae3..9aad476d 100644
--- a/src/lib/table/TableHeadCell.svelte
+++ b/src/lib/table/TableHeadCell.svelte
@@ -54,6 +54,12 @@
[Go to docs](https://svelte-5-ui-lib.codewithshin.com/)
## Props
@prop children
+@prop padding = 'px-6 py-3'
@prop class: className
+@prop btnClass
+@prop sort
+@prop defaultDirection = 'asc'
+@prop sortDirection = $bindable()
+@prop defaultSort
@prop ...restProps
-->
diff --git a/src/lib/table/TableSearch.svelte b/src/lib/table/TableSearch.svelte
index fae5e5e8..f1b24504 100644
--- a/src/lib/table/TableSearch.svelte
+++ b/src/lib/table/TableSearch.svelte
@@ -108,7 +108,8 @@
@prop header
@prop footer
@prop divClass = 'relative overflow-x-auto shadow-md sm:rounded-lg'
-@prop inputValue = $bindable()
+@prop inputValue = $bindable('')
+@prop placeholder
@prop striped
@prop hoverable
@prop customColor = ''
@@ -120,5 +121,7 @@
@prop svgClass = 'w-5 h-5 text-gray-500 dark:text-gray-400'
@prop tableClass = 'w-full text-left text-sm'
@prop class: className
+@prop items
+@prop filter
@prop ...restProps
-->
From 8ac2da24b92c2be08bfd9b5b2ea6f17ba295d33c Mon Sep 17 00:00:00 2001
From: aarondoet <42084688+aarondoet@users.noreply.github.com>
Date: Tue, 3 Sep 2024 22:58:05 +0000
Subject: [PATCH 4/5] Clean up unused imports
---
src/lib/table/Table.svelte | 2 +-
src/lib/table/TableBody.svelte | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/lib/table/Table.svelte b/src/lib/table/Table.svelte
index 1f70add8..d58b7860 100644
--- a/src/lib/table/Table.svelte
+++ b/src/lib/table/Table.svelte
@@ -4,7 +4,7 @@
import { twMerge, twJoin } from 'tailwind-merge';
import { setContext } from 'svelte';
import { type TableColrType, type TableCtxType } from '.';
- import { writable, type Writable } from 'svelte/store';
+ import { writable } from 'svelte/store';
interface Props extends HTMLTableAttributes {
children: Snippet;
diff --git a/src/lib/table/TableBody.svelte b/src/lib/table/TableBody.svelte
index 617c68c4..452d9295 100644
--- a/src/lib/table/TableBody.svelte
+++ b/src/lib/table/TableBody.svelte
@@ -1,5 +1,5 @@
{#if children}
{@render children()}
{/if}
- {#if row && sorted}
- {#each sorted as item, index}
+ {#if row && filtered}
+ {#each filtered as item, index}
{@render row({item, index})}
{/each}
{/if}