@dxos/react-ui-table 0.4.8-main.f998f66 → 0.4.8-next.fff1521
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/lib/browser/index.mjs +70 -54
- package/dist/lib/browser/index.mjs.map +3 -3
- package/dist/lib/browser/meta.json +1 -1
- package/dist/types/src/components/Cell/Cell.d.ts.map +1 -1
- package/dist/types/src/components/Table/Table.d.ts +2 -0
- package/dist/types/src/components/Table/Table.d.ts.map +1 -1
- package/dist/types/src/components/Table/Table.stories.d.ts.map +1 -1
- package/dist/types/src/helpers.d.ts.map +1 -1
- package/dist/types/src/theme.d.ts +1 -1
- package/dist/types/src/theme.d.ts.map +1 -1
- package/package.json +14 -14
- package/src/components/Cell/Cell.tsx +4 -1
- package/src/components/Table/Table.stories.tsx +51 -62
- package/src/components/Table/Table.tsx +35 -36
- package/src/helpers.tsx +50 -42
- package/src/theme.ts +3 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Table.d.ts","sourceRoot":"","sources":["../../../../../src/components/Table/Table.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Table.d.ts","sourceRoot":"","sources":["../../../../../src/components/Table/Table.tsx"],"names":[],"mappings":"AAeA,OAAO,EAAkB,KAAK,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAWlF,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,SAAS,CAAC;AAG1C,eAAO,MAAM,KAAK,kEAoIjB,CAAC;AA0FF,eAAO,MAAM,+BAA+B,0BAzCzC,KAAK,mBAAmB,OAAO,EAAE,OAAO,CAAC,EAAE,kBAAkB,CAAC,gBAyCmD,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Table.stories.d.ts","sourceRoot":"","sources":["../../../../../src/components/Table/Table.stories.tsx"],"names":[],"mappings":"AAIA,OAAO,YAAY,CAAC;AAMpB,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAQvC,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,aAAa,CAAC;AAKlD,KAAK,IAAI,GAAG;IACV,SAAS,EAAE,SAAS,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,IAAI,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC;;;;;;
|
|
1
|
+
{"version":3,"file":"Table.stories.d.ts","sourceRoot":"","sources":["../../../../../src/components/Table/Table.stories.tsx"],"names":[],"mappings":"AAIA,OAAO,YAAY,CAAC;AAMpB,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAQvC,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,aAAa,CAAC;AAKlD,KAAK,IAAI,GAAG;IACV,SAAS,EAAE,SAAS,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,IAAI,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC;;;;;;4BA4FsB,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAL5B,wBAuCE;AAEF,eAAO,MAAM,OAAO;;;;;CAKnB,CAAC;AAEF,eAAO,MAAM,SAAS;;;;;CAKrB,CAAC;AAEF,eAAO,MAAM,UAAU;;;;;;;;;CAMtB,CAAC;AAEF,eAAO,MAAM,KAAK;;;;CAIjB,CAAC;AAEF,eAAO,MAAM,OAAO;;CAmCnB,CAAC;AAEF,eAAO,MAAM,QAAQ;;CA4BpB,CAAC;AAEF,eAAO,MAAM,SAAS;;CAyBrB,CAAC;AAEF,eAAO,MAAM,eAAe;;CA4B3B,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../../src/helpers.tsx"],"names":[],"mappings":"AAKA,OAAO,EAAwB,KAAK,IAAI,EAAK,MAAM,uBAAuB,CAAC;AAC3E,OAAO,EAEL,KAAK,SAAS,EACd,KAAK,UAAU,EACf,KAAK,OAAO,EACZ,KAAK,YAAY,EAElB,MAAM,uBAAuB,CAAC;AAK/B,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,YAAY,CAAC;AAE5C,OAAO,EAAE,KAAK,cAAc,EAAkB,MAAM,gBAAgB,CAAC;AAOrE,MAAM,MAAM,YAAY,CAAC,KAAK,SAAS,OAAO,EAAE,MAAM,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;AAE1G,eAAO,MAAM,mBAAmB;;;CAG9B,CAAC;AAGH;;GAEG;AACH,MAAM,MAAM,iBAAiB,CAAC,KAAK,EAAE,MAAM,IAAI,OAAO,CAAC,SAAS,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,GAAG;IACjF,IAAI,CAAC,EAAE,UAAU,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IACjC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,cAAc,CAAC;IAC5B,QAAQ,CAAC,EAAE,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;CACpD,CAAC;AAGF,MAAM,MAAM,oBAAoB,CAAC,KAAK,SAAS,OAAO,IAAI;IACxD,KAAK,CAAC,MAAM,EAAE,KAAK,GAAG,MAAM,CAAC;IAC7B,OAAO,CAAC,MAAM,EAAE,KAAK,GAAG,MAAM,CAAC;IAC/B,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC;CACxC,CAAC;AAEF,MAAM,MAAM,qBAAqB,CAAC,KAAK,SAAS,OAAO,IAAI,iBAAiB,CAAC,KAAK,EAAE,GAAG,CAAC,GAAG;IACzF,KAAK,EAAE,oBAAoB,CAAC,KAAK,CAAC,CAAC;CACpC,CAAC;AAEF,MAAM,MAAM,mBAAmB,CAAC,KAAK,SAAS,OAAO,IAAI,iBAAiB,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG,EAAE,CAAC;AAC/F,MAAM,MAAM,sBAAsB,CAAC,KAAK,SAAS,OAAO,IAAI,iBAAiB,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG,EAAE,CAAC;AAElG,MAAM,MAAM,mBAAmB,CAAC,KAAK,SAAS,OAAO,IAAI,iBAAiB,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG;IAC1F,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,gBAAgB,CAAC,KAAK,SAAS,OAAO,IAAI,iBAAiB,CAAC,KAAK,EAAE,SAAS,CAAC,GAAG;IAC1F,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,iBAAiB,CAAC,KAAK,SAAS,OAAO,IAAI,iBAAiB,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG;IACtF,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,mBAAmB,CAAC,KAAK,SAAS,OAAO,IAAI,iBAAiB,CAAC,KAAK,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC;AAEhG,MAAM,MAAM,iBAAiB,CAAC,KAAK,SAAS,OAAO,IAAI,iBAAiB,CAAC,KAAK,EAAE,OAAO,CAAC,GAAG;IACzF,EAAE,CAAC,EAAE;QACH,IAAI,CAAC,EAAE,IAAI,CAAC;QACZ,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC;IACF,GAAG,CAAC,EAAE;QACJ,IAAI,CAAC,EAAE,IAAI,CAAC;QACZ,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC;CACH,CAAC;
|
|
1
|
+
{"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../../src/helpers.tsx"],"names":[],"mappings":"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"}
|
|
@@ -6,7 +6,7 @@ export declare const selectedRow = "!bg-primary-100 dark:!bg-primary-700";
|
|
|
6
6
|
export declare const flushPadding = "pli-0 plb-0";
|
|
7
7
|
export declare const textPadding = "pli-2 plb-0.5";
|
|
8
8
|
export declare const headPadding = "pli-2 plb-1.5";
|
|
9
|
-
export declare const gridCellFocusRing = "focus:z-[11] focus:outline outline-2 outline-primary-500 dark:outline-primary-400";
|
|
9
|
+
export declare const gridCellFocusRing = "focus-within:z-[11] focus-within:outline outline-2 outline-primary-500 dark:outline-primary-400";
|
|
10
10
|
export type TableStyleProps = Partial<TableContextValue<any>>;
|
|
11
11
|
export declare const tableRoot: ComponentFunction<TableStyleProps>;
|
|
12
12
|
export declare const groupTh: ComponentFunction<TableStyleProps>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"theme.d.ts","sourceRoot":"","sources":["../../../src/theme.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAWzD,OAAO,EAAE,KAAK,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAE9D,OAAO,EAAE,KAAK,iBAAiB,EAAE,KAAK,UAAU,EAAE,MAAM,cAAc,CAAC;AAEvE,eAAO,MAAM,UAAU,wCAAwC,CAAC;AAChE,eAAO,MAAM,WAAW,yCAAyC,CAAC;AAClE,eAAO,MAAM,YAAY,gBAAgB,CAAC;AAC1C,eAAO,MAAM,WAAW,kBAAkB,CAAC;AAC3C,eAAO,MAAM,WAAW,kBAAkB,CAAC;AAE3C,eAAO,MAAM,iBAAiB,
|
|
1
|
+
{"version":3,"file":"theme.d.ts","sourceRoot":"","sources":["../../../src/theme.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAWzD,OAAO,EAAE,KAAK,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAE9D,OAAO,EAAE,KAAK,iBAAiB,EAAE,KAAK,UAAU,EAAE,MAAM,cAAc,CAAC;AAEvE,eAAO,MAAM,UAAU,wCAAwC,CAAC;AAChE,eAAO,MAAM,WAAW,yCAAyC,CAAC;AAClE,eAAO,MAAM,YAAY,gBAAgB,CAAC;AAC1C,eAAO,MAAM,WAAW,kBAAkB,CAAC;AAC3C,eAAO,MAAM,WAAW,kBAAkB,CAAC;AAE3C,eAAO,MAAM,iBAAiB,oGACqE,CAAC;AAMpG,MAAM,MAAM,eAAe,GAAG,OAAO,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC;AAE9D,eAAO,MAAM,SAAS,EAAE,iBAAiB,CAAC,eAAe,CACN,CAAC;AAEpD,eAAO,MAAM,OAAO,EAAE,iBAAiB,CAAC,eAAe,CACH,CAAC;AAMrD,MAAM,MAAM,eAAe,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;AAElD,eAAO,MAAM,SAAS,EAAE,iBAAiB,CAAC,eAAe,CAC4D,CAAC;AAEtH,eAAO,MAAM,OAAO,EAAE,iBAAiB,CAAC,eAAe,CAA2C,CAAC;AAEnG,eAAO,MAAM,OAAO,EAAE,iBAAiB,CAAC,eAAe,CAOpD,CAAC;AAEJ,eAAO,MAAM,eAAe,EAAE,iBAAiB,CAAC,eAAe,CAI5D,CAAC;AAEJ,eAAO,MAAM,gBAAgB,EAAE,iBAAiB,CAAC,eAAe,CACQ,CAAC;AAMzE,MAAM,MAAM,eAAe,GAAG,OAAO,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC;AAC9D,eAAO,MAAM,SAAS,EAAE,iBAAiB,CAAC,eAAe,CAAkC,CAAC;AAE5F,MAAM,MAAM,iBAAiB,GAAG,OAAO,CAAC;IAAE,YAAY,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC,CAAC;AACpE,eAAO,MAAM,OAAO,EAAE,iBAAiB,CAAC,iBAAiB,CAOtD,CAAC;AAMJ,eAAO,MAAM,MAAM,EAAE,iBAAiB,CAAC,eAAe,CACwD,CAAC;AAE/G,eAAO,MAAM,SAAS,EAAE,iBAAiB,CAAC,WAAW,CAAC,GAAG,EAAE,GAAG,CAAC,CAAkC,CAAC;AAMlG,MAAM,MAAM,eAAe,GAAG,OAAO,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC;AAE9D,eAAO,MAAM,SAAS,EAAE,iBAAiB,CAAC,eAAe,CACJ,CAAC;AAEtD,eAAO,MAAM,OAAO,EAAE,iBAAiB,CAAC,eAAe,CAAkC,CAAC;AAE1F,eAAO,MAAM,OAAO,EAAE,iBAAiB,CAAC,eAAe,CACO,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dxos/react-ui-table",
|
|
3
|
-
"version": "0.4.8-
|
|
3
|
+
"version": "0.4.8-next.fff1521",
|
|
4
4
|
"description": "A table component.",
|
|
5
5
|
"homepage": "https://dxos.org",
|
|
6
6
|
"bugs": "https://github.com/dxos/dxos/issues",
|
|
@@ -22,15 +22,15 @@
|
|
|
22
22
|
"@tanstack/react-table": "^8.9.3",
|
|
23
23
|
"@tanstack/react-virtual": "^3.0.1",
|
|
24
24
|
"date-fns": "^3.3.1",
|
|
25
|
-
"@dxos/async": "0.4.8-
|
|
26
|
-
"@dxos/invariant": "0.4.8-
|
|
27
|
-
"@dxos/keys": "0.4.8-
|
|
28
|
-
"@dxos/log": "0.4.8-
|
|
29
|
-
"@dxos/react-ui": "0.4.8-
|
|
30
|
-
"@dxos/react-ui-
|
|
31
|
-
"@dxos/react-ui-
|
|
32
|
-
"@dxos/
|
|
33
|
-
"@dxos/
|
|
25
|
+
"@dxos/async": "0.4.8-next.fff1521",
|
|
26
|
+
"@dxos/invariant": "0.4.8-next.fff1521",
|
|
27
|
+
"@dxos/keys": "0.4.8-next.fff1521",
|
|
28
|
+
"@dxos/log": "0.4.8-next.fff1521",
|
|
29
|
+
"@dxos/react-ui": "0.4.8-next.fff1521",
|
|
30
|
+
"@dxos/react-ui-searchlist": "0.4.8-next.fff1521",
|
|
31
|
+
"@dxos/react-ui-theme": "0.4.8-next.fff1521",
|
|
32
|
+
"@dxos/util": "0.4.8-next.fff1521",
|
|
33
|
+
"@dxos/react-ui-types": "0.4.8-next.fff1521"
|
|
34
34
|
},
|
|
35
35
|
"devDependencies": {
|
|
36
36
|
"@phosphor-icons/react": "^2.0.5",
|
|
@@ -40,10 +40,10 @@
|
|
|
40
40
|
"react-dom": "^18.2.0",
|
|
41
41
|
"vite": "^5.1.5",
|
|
42
42
|
"vite-plugin-turbosnap": "^1.0.2",
|
|
43
|
-
"@dxos/echo-schema": "0.4.8-
|
|
44
|
-
"@dxos/
|
|
45
|
-
"@dxos/react-ui-theme": "0.4.8-
|
|
46
|
-
"@dxos/
|
|
43
|
+
"@dxos/echo-schema": "0.4.8-next.fff1521",
|
|
44
|
+
"@dxos/random": "0.4.8-next.fff1521",
|
|
45
|
+
"@dxos/react-ui-theme": "0.4.8-next.fff1521",
|
|
46
|
+
"@dxos/storybook-utils": "0.4.8-next.fff1521"
|
|
47
47
|
},
|
|
48
48
|
"peerDependencies": {
|
|
49
49
|
"@phosphor-icons/react": "^2.0.5",
|
|
@@ -18,8 +18,11 @@ const CELL_NAME = 'Cell';
|
|
|
18
18
|
const FocusableCell = <TData extends RowData, TValue>({ cell, children }: CellProps<TData, TValue>) => {
|
|
19
19
|
const tableContext = useTableContext(CELL_NAME);
|
|
20
20
|
const domAttributes = useFocusableGroup({ tabBehavior: 'limited' });
|
|
21
|
+
|
|
22
|
+
const className = tdRoot(tableContext, cell.column.columnDef.meta?.cell?.classNames);
|
|
23
|
+
|
|
21
24
|
return (
|
|
22
|
-
<td tabIndex={0} {...domAttributes} className={
|
|
25
|
+
<td tabIndex={0} {...domAttributes} className={className}>
|
|
23
26
|
{children}
|
|
24
27
|
</td>
|
|
25
28
|
);
|
|
@@ -5,12 +5,12 @@
|
|
|
5
5
|
import '@dxosTheme';
|
|
6
6
|
|
|
7
7
|
import { Plugs, PlugsConnected } from '@phosphor-icons/react';
|
|
8
|
-
import React, { useEffect, useRef, useState } from 'react';
|
|
8
|
+
import React, { useCallback, useEffect, useMemo, useRef, useState } from 'react';
|
|
9
9
|
|
|
10
10
|
import * as E from '@dxos/echo-schema/schema';
|
|
11
11
|
import { PublicKey } from '@dxos/keys';
|
|
12
12
|
import { faker } from '@dxos/random';
|
|
13
|
-
import {
|
|
13
|
+
import { AnchoredOverflow, DensityProvider } from '@dxos/react-ui';
|
|
14
14
|
import { withTheme } from '@dxos/storybook-utils';
|
|
15
15
|
import { range } from '@dxos/util';
|
|
16
16
|
|
|
@@ -72,7 +72,7 @@ const tableStorySelectModel: SearchListQueryModel<Item> = {
|
|
|
72
72
|
|
|
73
73
|
const { helper, builder } = createColumnBuilder<Item>();
|
|
74
74
|
|
|
75
|
-
const
|
|
75
|
+
const makeColumns = (onUpdate?: ValueUpdater<Item, any>): TableColumnDef<Item, any>[] => [
|
|
76
76
|
helper.display(builder.selectRow()),
|
|
77
77
|
helper.accessor((item) => item.publicKey, { id: 'key', ...builder.key({ tooltip: true }) }),
|
|
78
78
|
helper.accessor(
|
|
@@ -90,26 +90,14 @@ const columns = (onUpdate?: ValueUpdater<Item, any>): TableColumnDef<Item, any>[
|
|
|
90
90
|
builder.number({
|
|
91
91
|
label: 'Count',
|
|
92
92
|
meta: { resizable: true },
|
|
93
|
-
// TODO(burdon): Sorting.
|
|
94
|
-
getGroupingValue: (row) => (row.count ? (row.count < 2_000 ? 'A' : row.count < 5_000 ? 'B' : 'C') : 'D'),
|
|
95
|
-
}),
|
|
96
|
-
),
|
|
97
|
-
helper.accessor(
|
|
98
|
-
'company',
|
|
99
|
-
builder.combobox({
|
|
100
|
-
label: 'Company',
|
|
101
|
-
model: tableStorySelectModel,
|
|
102
93
|
onUpdate,
|
|
94
|
+
getGroupingValue: (row) => (row.count ? (row.count < 2000 ? 'A' : row.count < 5000 ? 'B' : 'C') : 'D'),
|
|
103
95
|
}),
|
|
104
96
|
),
|
|
97
|
+
helper.accessor('company', builder.combobox({ label: 'Company', model: tableStorySelectModel, onUpdate })),
|
|
105
98
|
helper.accessor(
|
|
106
99
|
'complete',
|
|
107
|
-
builder.switch({
|
|
108
|
-
// enableGrouping: true,
|
|
109
|
-
getGroupingValue: (row) => row.complete === true,
|
|
110
|
-
label: '',
|
|
111
|
-
onUpdate,
|
|
112
|
-
}),
|
|
100
|
+
builder.switch({ getGroupingValue: (row) => row.complete === true, label: '', onUpdate }),
|
|
113
101
|
),
|
|
114
102
|
helper.accessor('complete', builder.icon({ id: 'done', label: '' })),
|
|
115
103
|
helper.accessor(
|
|
@@ -135,18 +123,10 @@ export default {
|
|
|
135
123
|
keyAccessor: (item: Item) => item.publicKey.toHex(),
|
|
136
124
|
},
|
|
137
125
|
argTypes: {
|
|
138
|
-
header: {
|
|
139
|
-
|
|
140
|
-
},
|
|
141
|
-
|
|
142
|
-
control: 'boolean',
|
|
143
|
-
},
|
|
144
|
-
border: {
|
|
145
|
-
control: 'boolean',
|
|
146
|
-
},
|
|
147
|
-
fullWidth: {
|
|
148
|
-
control: 'boolean',
|
|
149
|
-
},
|
|
126
|
+
header: { control: 'boolean' },
|
|
127
|
+
footer: { control: 'boolean' },
|
|
128
|
+
border: { control: 'boolean' },
|
|
129
|
+
fullWidth: { control: 'boolean' },
|
|
150
130
|
grouping: {
|
|
151
131
|
control: 'select',
|
|
152
132
|
options: ['none', 'complete', 'count'],
|
|
@@ -164,10 +144,7 @@ export default {
|
|
|
164
144
|
limited: { key: false, started: false },
|
|
165
145
|
},
|
|
166
146
|
},
|
|
167
|
-
rowsSelectable: {
|
|
168
|
-
control: 'select',
|
|
169
|
-
options: [false, true, 'multi'],
|
|
170
|
-
},
|
|
147
|
+
rowsSelectable: { control: 'select', options: [false, true, 'multi'] },
|
|
171
148
|
},
|
|
172
149
|
decorators: [
|
|
173
150
|
withTheme,
|
|
@@ -181,21 +158,21 @@ export default {
|
|
|
181
158
|
|
|
182
159
|
export const Default = {
|
|
183
160
|
args: {
|
|
184
|
-
columns:
|
|
161
|
+
columns: makeColumns(),
|
|
185
162
|
data: createItems(20),
|
|
186
163
|
},
|
|
187
164
|
};
|
|
188
165
|
|
|
189
166
|
export const Scrolling = {
|
|
190
167
|
args: {
|
|
191
|
-
columns:
|
|
168
|
+
columns: makeColumns(),
|
|
192
169
|
data: createItems(200),
|
|
193
170
|
},
|
|
194
171
|
};
|
|
195
172
|
|
|
196
173
|
export const Visibility = {
|
|
197
174
|
args: {
|
|
198
|
-
columns:
|
|
175
|
+
columns: makeColumns(),
|
|
199
176
|
data: createItems(10),
|
|
200
177
|
columnVisibility: { key: false, started: false },
|
|
201
178
|
},
|
|
@@ -203,7 +180,7 @@ export const Visibility = {
|
|
|
203
180
|
|
|
204
181
|
export const Empty = {
|
|
205
182
|
args: {
|
|
206
|
-
columns:
|
|
183
|
+
columns: makeColumns(),
|
|
207
184
|
},
|
|
208
185
|
};
|
|
209
186
|
|
|
@@ -211,6 +188,7 @@ export const Dynamic = {
|
|
|
211
188
|
render: () => {
|
|
212
189
|
const containerRef = useRef<HTMLDivElement | null>(null);
|
|
213
190
|
const [items, setItems] = useState<Item[]>(createItems(50));
|
|
191
|
+
|
|
214
192
|
useEffect(() => {
|
|
215
193
|
const interval = setInterval(() => {
|
|
216
194
|
setItems((items) => {
|
|
@@ -223,12 +201,14 @@ export const Dynamic = {
|
|
|
223
201
|
return () => clearInterval(interval);
|
|
224
202
|
}, []);
|
|
225
203
|
|
|
204
|
+
const columns = useMemo(() => makeColumns(), []);
|
|
205
|
+
|
|
226
206
|
return (
|
|
227
207
|
<AnchoredOverflow.Root classNames='max-bs-[80dvh]' ref={containerRef}>
|
|
228
208
|
<Table<Item>
|
|
229
209
|
rowsSelectable='multi'
|
|
230
210
|
keyAccessor={(row) => row.publicKey.toHex()}
|
|
231
|
-
columns={columns
|
|
211
|
+
columns={columns}
|
|
232
212
|
data={items}
|
|
233
213
|
fullWidth
|
|
234
214
|
footer
|
|
@@ -245,9 +225,13 @@ export const Editable = {
|
|
|
245
225
|
render: () => {
|
|
246
226
|
const containerRef = useRef<HTMLDivElement | null>(null);
|
|
247
227
|
const [items, setItems] = useState<Item[]>(createItems(200));
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
228
|
+
|
|
229
|
+
const onUpdate: ValueUpdater<Item, any> = useCallback(
|
|
230
|
+
(item, prop, value) => setItems((items) => updateItems(items, item.publicKey, prop, value)),
|
|
231
|
+
[setItems],
|
|
232
|
+
);
|
|
233
|
+
|
|
234
|
+
const columns = useMemo(() => makeColumns(onUpdate), [onUpdate]);
|
|
251
235
|
|
|
252
236
|
return (
|
|
253
237
|
<div ref={containerRef} className='fixed inset-0 overflow-auto'>
|
|
@@ -255,7 +239,7 @@ export const Editable = {
|
|
|
255
239
|
role='grid'
|
|
256
240
|
rowsSelectable='multi'
|
|
257
241
|
keyAccessor={(row) => row.publicKey.toHex()}
|
|
258
|
-
columns={columns
|
|
242
|
+
columns={columns}
|
|
259
243
|
data={items}
|
|
260
244
|
fullWidth
|
|
261
245
|
stickyHeader
|
|
@@ -269,25 +253,27 @@ export const Editable = {
|
|
|
269
253
|
|
|
270
254
|
export const Resizable = {
|
|
271
255
|
render: () => {
|
|
256
|
+
const containerRef = useRef<HTMLDivElement | null>(null);
|
|
272
257
|
const [items, setItems] = useState<Item[]>(createItems(10));
|
|
273
|
-
const onUpdate: ValueUpdater<Item, any> = (item, prop, value) => {
|
|
274
|
-
setItems((items) => updateItems(items, item.publicKey, prop, value));
|
|
275
|
-
};
|
|
276
258
|
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
259
|
+
const onUpdate: ValueUpdater<Item, any> = useCallback(
|
|
260
|
+
(item, prop, value) => setItems((items) => updateItems(items, item.publicKey, prop, value)),
|
|
261
|
+
[setItems],
|
|
262
|
+
);
|
|
280
263
|
|
|
281
264
|
return (
|
|
282
|
-
<
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
265
|
+
<div ref={containerRef} className='fixed inset-0 overflow-auto'>
|
|
266
|
+
<Table<Item>
|
|
267
|
+
rowsSelectable='multi'
|
|
268
|
+
keyAccessor={(row) => row.publicKey.toHex()}
|
|
269
|
+
columns={makeColumns(onUpdate)}
|
|
270
|
+
data={items}
|
|
271
|
+
fullWidth
|
|
272
|
+
stickyHeader
|
|
273
|
+
getScrollElement={() => containerRef.current}
|
|
274
|
+
// onColumnResize={handleColumnResize}
|
|
275
|
+
/>
|
|
276
|
+
</div>
|
|
291
277
|
);
|
|
292
278
|
},
|
|
293
279
|
};
|
|
@@ -297,9 +283,12 @@ export const TenThousandRows = {
|
|
|
297
283
|
const containerRef = useRef<HTMLDivElement | null>(null);
|
|
298
284
|
const [items, setItems] = useState<Item[]>(createItems(10000));
|
|
299
285
|
|
|
300
|
-
const onUpdate: ValueUpdater<Item, any> = (
|
|
301
|
-
setItems((items) => updateItems(items, item.publicKey, prop, value))
|
|
302
|
-
|
|
286
|
+
const onUpdate: ValueUpdater<Item, any> = useCallback(
|
|
287
|
+
(item, prop, value) => setItems((items) => updateItems(items, item.publicKey, prop, value)),
|
|
288
|
+
[setItems],
|
|
289
|
+
);
|
|
290
|
+
|
|
291
|
+
const columns = useMemo(() => makeColumns(onUpdate), [onUpdate]);
|
|
303
292
|
|
|
304
293
|
return (
|
|
305
294
|
<div ref={containerRef} className='fixed inset-0 overflow-auto'>
|
|
@@ -307,7 +296,7 @@ export const TenThousandRows = {
|
|
|
307
296
|
role='grid'
|
|
308
297
|
rowsSelectable='multi'
|
|
309
298
|
keyAccessor={(row) => row.publicKey.toHex()}
|
|
310
|
-
columns={columns
|
|
299
|
+
columns={columns}
|
|
311
300
|
data={items}
|
|
312
301
|
fullWidth
|
|
313
302
|
stickyHeader
|
|
@@ -18,6 +18,7 @@ import React, { Fragment, useCallback, useEffect, useState } from 'react';
|
|
|
18
18
|
|
|
19
19
|
import { debounce } from '@dxos/async';
|
|
20
20
|
import { log } from '@dxos/log';
|
|
21
|
+
import { useDefaultValue } from '@dxos/react-ui';
|
|
21
22
|
|
|
22
23
|
import { TableBody } from './TableBody';
|
|
23
24
|
import { TableProvider as UntypedTableProvider, type TypedTableProvider, useTableContext } from './TableContext';
|
|
@@ -29,8 +30,6 @@ import { groupTh, tableRoot } from '../../theme';
|
|
|
29
30
|
export const Table = <TData extends RowData>(props: TableProps<TData>) => {
|
|
30
31
|
const {
|
|
31
32
|
role,
|
|
32
|
-
data = [],
|
|
33
|
-
columns = [],
|
|
34
33
|
onColumnResize,
|
|
35
34
|
columnVisibility,
|
|
36
35
|
header = true,
|
|
@@ -40,16 +39,14 @@ export const Table = <TData extends RowData>(props: TableProps<TData>) => {
|
|
|
40
39
|
getScrollElement,
|
|
41
40
|
} = props;
|
|
42
41
|
|
|
43
|
-
const
|
|
42
|
+
const columns = useDefaultValue(props.columns, []);
|
|
43
|
+
const data = useDefaultValue(props.data, []);
|
|
44
44
|
|
|
45
|
-
|
|
46
|
-
// Column resizing
|
|
47
|
-
//
|
|
45
|
+
const TableProvider = UntypedTableProvider as TypedTableProvider<TData>;
|
|
48
46
|
|
|
49
47
|
const [columnSizing, setColumnSizing] = useState<ColumnSizingState>({});
|
|
50
48
|
|
|
51
49
|
useEffect(() => {
|
|
52
|
-
// Set initial state.
|
|
53
50
|
setColumnSizing(
|
|
54
51
|
columns
|
|
55
52
|
.filter((column) => !!column.size && (column as any).prop !== undefined)
|
|
@@ -58,31 +55,16 @@ export const Table = <TData extends RowData>(props: TableProps<TData>) => {
|
|
|
58
55
|
return state;
|
|
59
56
|
}, {}),
|
|
60
57
|
);
|
|
61
|
-
}, [columns]);
|
|
58
|
+
}, [columns, setColumnSizing]);
|
|
62
59
|
|
|
63
60
|
const [columnSizingInfo, setColumnSizingInfo] = useState<ColumnSizingInfoState>({} as ColumnSizingInfoState);
|
|
64
61
|
|
|
65
|
-
const onColumnResizeDebounced = onColumnResize && debounce(onColumnResize, 1_000);
|
|
66
|
-
useEffect(() => {
|
|
67
|
-
if (columnSizingInfo.columnSizingStart?.length === 0) {
|
|
68
|
-
onColumnResizeDebounced?.(table.getState().columnSizing);
|
|
69
|
-
}
|
|
70
|
-
}, [columnSizingInfo]);
|
|
71
|
-
|
|
72
|
-
//
|
|
73
|
-
// Row selection
|
|
74
|
-
//
|
|
75
|
-
|
|
76
62
|
const [rowSelection = {}, setRowSelection] = useControllableState({
|
|
77
63
|
prop: props.rowSelection,
|
|
78
64
|
onChange: props.onRowSelectionChange,
|
|
79
65
|
defaultProp: props.defaultRowSelection,
|
|
80
66
|
});
|
|
81
67
|
|
|
82
|
-
useEffect(() => {
|
|
83
|
-
onDataSelectionChange?.(Object.keys(rowSelection).map((id) => table.getRowModel().rowsById[id].original));
|
|
84
|
-
}, [onDataSelectionChange, rowSelection]);
|
|
85
|
-
|
|
86
68
|
// TODO(thure): Does @tanstack/react-table really need this intervention? It did seem necessary to enforce single-selection...
|
|
87
69
|
const handleRowSelectionChange = useCallback<OnChangeFn<RowSelectionState>>(
|
|
88
70
|
(updaterOrValue) => {
|
|
@@ -96,15 +78,11 @@ export const Table = <TData extends RowData>(props: TableProps<TData>) => {
|
|
|
96
78
|
setRowSelection({});
|
|
97
79
|
}
|
|
98
80
|
},
|
|
99
|
-
[
|
|
81
|
+
[rowsSelectable, setRowSelection, rowSelection],
|
|
100
82
|
);
|
|
101
83
|
|
|
102
|
-
//
|
|
103
|
-
// Row grouping
|
|
104
|
-
//
|
|
105
|
-
|
|
106
84
|
const [grouping, handleGroupingChange] = useState<GroupingState>(props.grouping ?? []);
|
|
107
|
-
useEffect(() => handleGroupingChange(props.grouping ?? []), [props.grouping]);
|
|
85
|
+
useEffect(() => handleGroupingChange(props.grouping ?? []), [handleGroupingChange, props.grouping]);
|
|
108
86
|
|
|
109
87
|
const table = useReactTable({
|
|
110
88
|
// Data
|
|
@@ -140,18 +118,29 @@ export const Table = <TData extends RowData>(props: TableProps<TData>) => {
|
|
|
140
118
|
getGroupedRowModel: grouping.length > 1 ? getGroupedRowModel() : undefined,
|
|
141
119
|
onGroupingChange: handleGroupingChange,
|
|
142
120
|
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
: rowsSelectable
|
|
147
|
-
? { enableRowSelection: true }
|
|
148
|
-
: {}),
|
|
121
|
+
enableMultiRowSelection: rowsSelectable === 'multi' ? true : undefined,
|
|
122
|
+
enableRowSelection: rowsSelectable === true ? true : undefined,
|
|
123
|
+
|
|
149
124
|
onRowSelectionChange: handleRowSelectionChange,
|
|
150
125
|
|
|
151
126
|
// Debug
|
|
152
127
|
debugTable: debug,
|
|
153
128
|
});
|
|
154
129
|
|
|
130
|
+
const onColumnResizeDebounced = onColumnResize && debounce(onColumnResize, 1_000);
|
|
131
|
+
|
|
132
|
+
useEffect(() => {
|
|
133
|
+
onDataSelectionChange?.(Object.keys(rowSelection).map((id) => table.getRowModel().rowsById[id].original));
|
|
134
|
+
}, [onDataSelectionChange, rowSelection, table]);
|
|
135
|
+
|
|
136
|
+
useEffect(() => {
|
|
137
|
+
const shouldTriggerResize = columnSizingInfo.columnSizingStart?.length === 0;
|
|
138
|
+
|
|
139
|
+
if (shouldTriggerResize) {
|
|
140
|
+
onColumnResizeDebounced?.(table.getState().columnSizing);
|
|
141
|
+
}
|
|
142
|
+
}, [columnSizingInfo, onColumnResizeDebounced, table]);
|
|
143
|
+
|
|
155
144
|
// Create additional expansion column if all columns have fixed width.
|
|
156
145
|
const expand = false; // columns.map((column) => column.size).filter(Boolean).length === columns?.length;
|
|
157
146
|
|
|
@@ -188,6 +177,8 @@ const TableImpl = <TData extends RowData>(props: TableProps<TData>) => {
|
|
|
188
177
|
);
|
|
189
178
|
}
|
|
190
179
|
|
|
180
|
+
const isResizingColumn = table.getState().columnSizingInfo.isResizingColumn;
|
|
181
|
+
|
|
191
182
|
return (
|
|
192
183
|
<table
|
|
193
184
|
role={role}
|
|
@@ -198,7 +189,11 @@ const TableImpl = <TData extends RowData>(props: TableProps<TData>) => {
|
|
|
198
189
|
|
|
199
190
|
{grouping?.length !== 0 ? (
|
|
200
191
|
getScrollElement ? (
|
|
201
|
-
|
|
192
|
+
isResizingColumn ? (
|
|
193
|
+
<MemoizedVirtualisedTableContent getScrollElement={getScrollElement} />
|
|
194
|
+
) : (
|
|
195
|
+
<VirtualizedTableContent getScrollElement={getScrollElement} />
|
|
196
|
+
)
|
|
202
197
|
) : (
|
|
203
198
|
<TableBody rows={rows} />
|
|
204
199
|
)
|
|
@@ -217,6 +212,7 @@ const VirtualizedTableContent = ({
|
|
|
217
212
|
const {
|
|
218
213
|
table: { getRowModel },
|
|
219
214
|
} = useTableContext('VirtualizedTableContent');
|
|
215
|
+
|
|
220
216
|
const rows = getRowModel().rows;
|
|
221
217
|
|
|
222
218
|
const { getTotalSize, getVirtualItems } = useVirtualizer({
|
|
@@ -225,6 +221,7 @@ const VirtualizedTableContent = ({
|
|
|
225
221
|
overscan: 4,
|
|
226
222
|
estimateSize: () => 33,
|
|
227
223
|
});
|
|
224
|
+
|
|
228
225
|
const virtualRows = getVirtualItems();
|
|
229
226
|
const totalSize = getTotalSize();
|
|
230
227
|
|
|
@@ -252,6 +249,8 @@ const VirtualizedTableContent = ({
|
|
|
252
249
|
);
|
|
253
250
|
};
|
|
254
251
|
|
|
252
|
+
export const MemoizedVirtualisedTableContent = React.memo(VirtualizedTableContent) as typeof VirtualizedTableContent;
|
|
253
|
+
|
|
255
254
|
const GroupedTableContent = () => {
|
|
256
255
|
const {
|
|
257
256
|
table: { getGroupedRowModel, getHeaderGroups, getState },
|