diff --git a/src/routes/(editor)/experimental.module.css b/src/routes/(editor)/experimental.module.css index 004cc10..40f3bde 100644 --- a/src/routes/(editor)/experimental.module.css +++ b/src/routes/(editor)/experimental.module.css @@ -28,5 +28,9 @@ & > header { padding-inline-start: var(--padding-l); } + + & .table { + border-radius: inherit; + } } } \ No newline at end of file diff --git a/src/routes/(editor)/experimental.tsx b/src/routes/(editor)/experimental.tsx index dc11067..c454f94 100644 --- a/src/routes/(editor)/experimental.tsx +++ b/src/routes/(editor)/experimental.tsx @@ -5,27 +5,47 @@ import { createStore } from "solid-js/store"; import { createEffect, For } from "solid-js"; import { Person, people } from './experimental.data'; +export default function Experimental() { const columns: Column[] = [ - const columns: Column[] = [ { - id: 'key', - label: 'Key', - groupBy(rows: RowNode[]) { - const group = (nodes: (RowNode & { _key: string })[]): Node[] => nodes.every(n => n._key.includes('.') === false) + id: 'id', + label: '#', + groupBy(rows: RowNode[]) { + const group = (nodes: (RowNode & { _key: string })[]): Node[] => nodes.every(n => n._key.includes('.') === false) ? nodes : Object.entries(Object.groupBy(nodes, r => String(r._key).split('.').at(0)!)) - .map>(([key, nodes]) => ({ kind: 'group', key, groupedBy: 'key', nodes: group(nodes!.map(n => ({ ...n, _key: n._key.slice(key.length + 1) }))) })); + .map>(([key, nodes]) => ({ kind: 'group', key, groupedBy: 'id', nodes: group(nodes!.map(n => ({ ...n, _key: n._key.slice(key.length + 1) }))) })); - return group(rows.map(row => ({ ...row, _key: row.value.key }))); + return group(rows.map(row => ({ ...row, _key: row.value.id }))); }, }, { - id: 'value', - label: 'Value', + id: 'name', + label: 'Name', + }, + { + id: 'email', + label: 'Email', + }, + { + id: 'address', + label: 'Address', + }, + { + id: 'currency', + label: 'Currency', + }, + { + id: 'phone', + label: 'Phone', + }, + { + id: 'country', + label: 'Country', }, ]; - const [store, setStore] = createStore<{ selectionMode: SelectionMode, groupBy?: keyof Entry, sort?: { by: keyof Entry, reversed?: boolean } }>({ + const [store, setStore] = createStore<{ selectionMode: SelectionMode, groupBy?: keyof Person, sort?: { by: keyof Person, reversed?: boolean } }>({ selectionMode: SelectionMode.None, // groupBy: 'value', // sortBy: 'key' @@ -85,7 +105,7 @@ import { Person, people } from './experimental.data';
- {{ +
{{ address: (cell) => , }}