@bsuite/data-grid 1.0.1 → 1.2.0
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/DataGrid.d.ts.map +1 -1
- package/dist/DataGrid.js +216 -6
- package/dist/DataGrid.js.map +1 -1
- package/dist/components/DataGridToolbar.d.ts +37 -0
- package/dist/components/DataGridToolbar.d.ts.map +1 -0
- package/dist/components/DataGridToolbar.js +74 -0
- package/dist/components/DataGridToolbar.js.map +1 -0
- package/dist/index.d.ts +10 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +8 -1
- package/dist/index.js.map +1 -1
- package/dist/types.d.ts +123 -0
- package/dist/types.d.ts.map +1 -1
- package/package.json +1 -1
package/dist/DataGrid.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DataGrid.d.ts","sourceRoot":"","sources":["../src/DataGrid.tsx"],"names":[],"mappings":"AAAA,OAAO,EAaL,KAAK,YAAY,EAClB,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"DataGrid.d.ts","sourceRoot":"","sources":["../src/DataGrid.tsx"],"names":[],"mappings":"AAAA,OAAO,EAaL,KAAK,YAAY,EAClB,MAAM,OAAO,CAAC;AA8Bf,OAAO,KAAK,EAMV,cAAc,EACd,aAAa,EACd,MAAM,YAAY,CAAC;AA6jCpB,eAAO,MAAM,QAAQ,EAAgC,CAAC,IAAI,EACxD,KAAK,EAAE,aAAa,CAAC,IAAI,CAAC,GAAG;IAAE,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,CAAA;CAAE,KAC7D,YAAY,CAAC"}
|
package/dist/DataGrid.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
2
|
import { forwardRef, useCallback, useEffect, useImperativeHandle, useMemo, useReducer, useRef, useState, } from 'react';
|
|
3
|
-
import { getCoreRowModel, getSortedRowModel, useReactTable, } from '@tanstack/react-table';
|
|
3
|
+
import { getCoreRowModel, getExpandedRowModel, getFilteredRowModel, getGroupedRowModel, getSortedRowModel, useReactTable, } from '@tanstack/react-table';
|
|
4
4
|
import { useVirtualizer } from '@tanstack/react-virtual';
|
|
5
5
|
import { DndContext, PointerSensor, useSensor, useSensors } from '@dnd-kit/core';
|
|
6
6
|
import { SortableContext, arrayMove, horizontalListSortingStrategy } from '@dnd-kit/sortable';
|
|
@@ -40,7 +40,7 @@ function editorFor(column) {
|
|
|
40
40
|
}
|
|
41
41
|
}
|
|
42
42
|
function DataGridInner(props, ref) {
|
|
43
|
-
const { columns, data, getRowId, onCellsEdited, onError, frozenFirstColumn = true, rowHeight = DEFAULT_ROW_HEIGHT, headerHeight = DEFAULT_HEADER_HEIGHT, height = '100%', className, undoLimit = DEFAULT_UNDO_LIMIT, emptyState, } = props;
|
|
43
|
+
const { columns, data, getRowId, onCellsEdited, onError, frozenFirstColumn = true, rowHeight = DEFAULT_ROW_HEIGHT, headerHeight = DEFAULT_HEADER_HEIGHT, height = '100%', className, undoLimit = DEFAULT_UNDO_LIMIT, emptyState, onRowClick, groupBy = null, groupExpanded, onGroupExpandedChange, columnVisibility: columnVisibilityProp, onColumnVisibilityChange, globalFilter, onLinkEdit, } = props;
|
|
44
44
|
const scrollRef = useRef(null);
|
|
45
45
|
const columnConfigById = useMemo(() => new Map(columns.map((c) => [c.id, c])), [columns]);
|
|
46
46
|
const tableColumns = useMemo(() => columns.map((col) => ({
|
|
@@ -55,6 +55,21 @@ function DataGridInner(props, ref) {
|
|
|
55
55
|
const [sorting, setSorting] = useState([]);
|
|
56
56
|
const [columnOrder, setColumnOrder] = useState(() => columns.map((c) => c.id));
|
|
57
57
|
const [columnSizing, setColumnSizing] = useState({});
|
|
58
|
+
/*
|
|
59
|
+
* Column visibility is CONTROLLED when the page supplies a change handler,
|
|
60
|
+
* so the reader's choice can be persisted, and uncontrolled otherwise. The
|
|
61
|
+
* uncontrolled copy still exists rather than being skipped: a grid that only
|
|
62
|
+
* hides columns when its host bothers to wire persistence would be a
|
|
63
|
+
* capability nobody gets by default.
|
|
64
|
+
*/
|
|
65
|
+
const [ownColumnVisibility, setOwnColumnVisibility] = useState({});
|
|
66
|
+
const columnVisibility = columnVisibilityProp ?? ownColumnVisibility;
|
|
67
|
+
const setColumnVisibility = useCallback((next) => {
|
|
68
|
+
if (onColumnVisibilityChange)
|
|
69
|
+
onColumnVisibilityChange(next);
|
|
70
|
+
else
|
|
71
|
+
setOwnColumnVisibility(next);
|
|
72
|
+
}, [onColumnVisibilityChange]);
|
|
58
73
|
// Keep columnOrder in sync if the `columns` prop's identity set changes
|
|
59
74
|
// (columns added/removed) without discarding the user's chosen order.
|
|
60
75
|
useEffect(() => {
|
|
@@ -67,18 +82,66 @@ function DataGridInner(props, ref) {
|
|
|
67
82
|
return next.length === prev.length && next.every((id, i) => id === prev[i]) ? prev : next;
|
|
68
83
|
});
|
|
69
84
|
}, [columns]);
|
|
85
|
+
/*
|
|
86
|
+
* Grouping is DERIVED from the prop, never held locally: the host owns the
|
|
87
|
+
* choice so it can persist it. A local copy would silently diverge from the
|
|
88
|
+
* saved view preference the moment the reader reloaded.
|
|
89
|
+
*/
|
|
90
|
+
const grouping = useMemo(() => (groupBy ? [groupBy] : []), [groupBy]);
|
|
91
|
+
const [expanded, setExpanded] = useState(true);
|
|
92
|
+
/*
|
|
93
|
+
* Default is EXPANDED, and that is the deliberate choice. A grid that opens
|
|
94
|
+
* with every group shut shows the reader a list of headings and none of their
|
|
95
|
+
* data, which is a worse first screen than the flat grid it replaced.
|
|
96
|
+
*/
|
|
97
|
+
useEffect(() => {
|
|
98
|
+
setExpanded(groupExpanded && Object.keys(groupExpanded).length > 0 ? groupExpanded : true);
|
|
99
|
+
}, [groupExpanded]);
|
|
70
100
|
const table = useReactTable({
|
|
71
101
|
data,
|
|
72
102
|
columns: tableColumns,
|
|
73
|
-
state: { sorting, columnOrder, columnSizing },
|
|
103
|
+
state: { sorting, columnOrder, columnSizing, columnVisibility, globalFilter, grouping, expanded },
|
|
104
|
+
onExpandedChange: (updater) => {
|
|
105
|
+
const next = typeof updater === 'function' ? updater(expanded) : updater;
|
|
106
|
+
setExpanded(next);
|
|
107
|
+
if (onGroupExpandedChange && typeof next === 'object')
|
|
108
|
+
onGroupExpandedChange(next);
|
|
109
|
+
},
|
|
74
110
|
onSortingChange: setSorting,
|
|
75
111
|
onColumnOrderChange: setColumnOrder,
|
|
76
112
|
onColumnSizingChange: setColumnSizing,
|
|
113
|
+
onColumnVisibilityChange: (updater) => setColumnVisibility(typeof updater === 'function' ? updater(columnVisibility) : updater),
|
|
114
|
+
onGlobalFilterChange: () => {
|
|
115
|
+
/* filter text is owned by the host; this exists so the table does not
|
|
116
|
+
warn about an uncontrolled state field. */
|
|
117
|
+
},
|
|
118
|
+
/*
|
|
119
|
+
* Filter the FORMATTED value, not the raw one.
|
|
120
|
+
*
|
|
121
|
+
* The reader filters what they can SEE. A date stored `2026-08-23` and
|
|
122
|
+
* shown `23/08/2026` must match a search for "23/08" — matching the raw
|
|
123
|
+
* value would silently return nothing for the string on screen.
|
|
124
|
+
*/
|
|
125
|
+
globalFilterFn: (row, _columnId, value) => {
|
|
126
|
+
const needle = String(value ?? '').toLowerCase();
|
|
127
|
+
if (!needle)
|
|
128
|
+
return true;
|
|
129
|
+
return columns.some((col) => {
|
|
130
|
+
if (columnVisibility[col.id] === false)
|
|
131
|
+
return false;
|
|
132
|
+
const raw = col.accessor(row.original);
|
|
133
|
+
const shown = col.formatValue ? col.formatValue(raw, row.original) : formatCellValue(raw, col.dataType);
|
|
134
|
+
return String(shown).toLowerCase().includes(needle);
|
|
135
|
+
});
|
|
136
|
+
},
|
|
77
137
|
columnResizeMode: 'onChange',
|
|
78
138
|
enableColumnResizing: true,
|
|
79
139
|
getRowId,
|
|
80
140
|
getCoreRowModel: getCoreRowModel(),
|
|
141
|
+
getGroupedRowModel: getGroupedRowModel(),
|
|
142
|
+
getExpandedRowModel: getExpandedRowModel(),
|
|
81
143
|
getSortedRowModel: getSortedRowModel(),
|
|
144
|
+
getFilteredRowModel: getFilteredRowModel(),
|
|
82
145
|
});
|
|
83
146
|
const rows = table.getRowModel().rows;
|
|
84
147
|
const visibleColumns = table.getVisibleLeafColumns();
|
|
@@ -425,12 +488,39 @@ function DataGridInner(props, ref) {
|
|
|
425
488
|
};
|
|
426
489
|
}, []);
|
|
427
490
|
// ── Cell interaction ------------------------------------------------
|
|
491
|
+
/*
|
|
492
|
+
* A linked column with no `renderEditor` must NEVER open a text editor.
|
|
493
|
+
*
|
|
494
|
+
* Falling back to free text is the single worst failure available here: the
|
|
495
|
+
* cell looks editable, someone types a host name, and the row now holds a
|
|
496
|
+
* string where every other row holds a reference — the exact divergence the
|
|
497
|
+
* link exists to make unrepresentable. Refusing the edit is loud and
|
|
498
|
+
* recoverable; a silent text box is neither.
|
|
499
|
+
*/
|
|
500
|
+
function canEditColumn(columnId) {
|
|
501
|
+
const config = columnConfigById.get(columnId);
|
|
502
|
+
if (!config)
|
|
503
|
+
return false;
|
|
504
|
+
if (config.editable === false)
|
|
505
|
+
return false;
|
|
506
|
+
if (config.link && !config.renderEditor) {
|
|
507
|
+
onError({
|
|
508
|
+
message: `column "${columnId}" declares link entity "${config.link.entity}" but supplies no renderEditor. ` +
|
|
509
|
+
'A linked cell must be edited through the app\'s own entity selector — the same one the form uses ' +
|
|
510
|
+
'(select, or add new). Refusing rather than falling back to a text input, which would let a name be ' +
|
|
511
|
+
'typed into one row while every other row holds a reference.',
|
|
512
|
+
phase: 'edit',
|
|
513
|
+
edits: [],
|
|
514
|
+
});
|
|
515
|
+
return false;
|
|
516
|
+
}
|
|
517
|
+
return true;
|
|
518
|
+
}
|
|
428
519
|
function beginEditing(pos, seedChar) {
|
|
429
520
|
const column = visibleColumns[pos.col];
|
|
430
521
|
if (!column)
|
|
431
522
|
return;
|
|
432
|
-
|
|
433
|
-
if (config?.editable === false)
|
|
523
|
+
if (!canEditColumn(column.id))
|
|
434
524
|
return;
|
|
435
525
|
setEditSeedChar(seedChar);
|
|
436
526
|
setEditingCell(pos);
|
|
@@ -448,8 +538,74 @@ function DataGridInner(props, ref) {
|
|
|
448
538
|
const previousValue = getEffectiveValue(row.index, column.id);
|
|
449
539
|
if (Object.is(previousValue, nextValue))
|
|
450
540
|
return;
|
|
541
|
+
/*
|
|
542
|
+
* A LINKED cell stores a REFERENCE, so committing it re-points this row at
|
|
543
|
+
* a different record. It never writes a name.
|
|
544
|
+
*
|
|
545
|
+
* The value arriving from the editor is a record id, because the editor
|
|
546
|
+
* for a linked column is a picker over `options` and free text is refused.
|
|
547
|
+
* That refusal is the whole one-shot mechanism: a host name cannot be
|
|
548
|
+
* mistyped into a row, so two rows cannot hold different spellings of the
|
|
549
|
+
* same host, and correcting the host's name is done once on the record
|
|
550
|
+
* that owns it — every row follows because every row only ever held a
|
|
551
|
+
* pointer.
|
|
552
|
+
*/
|
|
553
|
+
const config = columnConfigById.get(column.id);
|
|
554
|
+
if (config?.link) {
|
|
555
|
+
void commitLinkEdit({
|
|
556
|
+
entity: config.link.entity,
|
|
557
|
+
columnId: column.id,
|
|
558
|
+
rowIndex: row.index,
|
|
559
|
+
row: data[row.index],
|
|
560
|
+
previousRefId: config.link.refId(data[row.index]),
|
|
561
|
+
refId: nextValue === null || nextValue === undefined ? null : String(nextValue),
|
|
562
|
+
});
|
|
563
|
+
return;
|
|
564
|
+
}
|
|
451
565
|
void commitEdits([{ rowIndex: row.index, columnId: column.id, previousValue, value: nextValue, row: data[row.index] }], 'edit');
|
|
452
566
|
}
|
|
567
|
+
/*
|
|
568
|
+
* Persist a re-link, optimistically showing it first.
|
|
569
|
+
*
|
|
570
|
+
* A single row changes, because a link lives on the row. The referenced
|
|
571
|
+
* record is untouched — editing IT is the job of the surface that owns it,
|
|
572
|
+
* which is exactly why one correction there reaches every row here without
|
|
573
|
+
* this package propagating anything.
|
|
574
|
+
*/
|
|
575
|
+
async function commitLinkEdit(edit) {
|
|
576
|
+
setOverlay((prev) => {
|
|
577
|
+
const next = new Map(prev);
|
|
578
|
+
next.set(overlayKey(edit.rowIndex, edit.columnId), edit.refId);
|
|
579
|
+
return next;
|
|
580
|
+
});
|
|
581
|
+
try {
|
|
582
|
+
if (!onLinkEdit) {
|
|
583
|
+
throw new Error(`column "${edit.columnId}" declares link entity "${edit.entity}" but no onLinkEdit handler was supplied`);
|
|
584
|
+
}
|
|
585
|
+
await onLinkEdit(edit);
|
|
586
|
+
}
|
|
587
|
+
catch (err) {
|
|
588
|
+
setOverlay((prev) => {
|
|
589
|
+
const next = new Map(prev);
|
|
590
|
+
next.delete(overlayKey(edit.rowIndex, edit.columnId));
|
|
591
|
+
return next;
|
|
592
|
+
});
|
|
593
|
+
onError({
|
|
594
|
+
message: err instanceof Error ? err.message : String(err),
|
|
595
|
+
cause: err,
|
|
596
|
+
phase: 'edit',
|
|
597
|
+
edits: [
|
|
598
|
+
{
|
|
599
|
+
rowIndex: edit.rowIndex,
|
|
600
|
+
columnId: edit.columnId,
|
|
601
|
+
previousValue: edit.previousRefId,
|
|
602
|
+
value: edit.refId,
|
|
603
|
+
row: edit.row,
|
|
604
|
+
},
|
|
605
|
+
],
|
|
606
|
+
});
|
|
607
|
+
}
|
|
608
|
+
}
|
|
453
609
|
function handleEditorCancel() {
|
|
454
610
|
setEditingCell(null);
|
|
455
611
|
setEditSeedChar(undefined);
|
|
@@ -601,7 +757,61 @@ function DataGridInner(props, ref) {
|
|
|
601
757
|
})] }) }), virtualRows.map((vr) => {
|
|
602
758
|
const row = rows[vr.index];
|
|
603
759
|
const rowTop = headerHeight + vr.start;
|
|
604
|
-
|
|
760
|
+
/*
|
|
761
|
+
* A GROUP HEADER is a different thing from a row of data, and drawing it
|
|
762
|
+
* as one is how a grouped grid becomes unreadable: the heading lines up
|
|
763
|
+
* under the first column, every other column is blank, and a heading is
|
|
764
|
+
* indistinguishable from an empty record.
|
|
765
|
+
*
|
|
766
|
+
* So it spans the full width, carries its own count, and is NOT clickable
|
|
767
|
+
* as a record — there is no record behind it.
|
|
768
|
+
*/
|
|
769
|
+
if (row.getIsGrouped()) {
|
|
770
|
+
const groupColumn = columns.find((c) => c.id === row.groupingColumnId);
|
|
771
|
+
const rawValue = row.getGroupingValue(String(row.groupingColumnId));
|
|
772
|
+
const shown = groupColumn?.formatValue
|
|
773
|
+
? groupColumn.formatValue(rawValue, row.original)
|
|
774
|
+
: formatCellValue(rawValue, groupColumn?.dataType);
|
|
775
|
+
const isExpanded = row.getIsExpanded();
|
|
776
|
+
const label = String(shown ?? '') || '(none)';
|
|
777
|
+
return (_jsxs("div", { role: "row", "aria-expanded": isExpanded, className: "absolute left-0 z-10 flex items-center gap-2 border-b border-border bg-muted/60 px-3 text-sm font-medium", style: { top: rowTop, width: totalWidth, height: vr.size }, children: [_jsx("button", { type: "button", onClick: row.getToggleExpandedHandler(), "aria-label": `${isExpanded ? 'Collapse' : 'Expand'} ${label}`, className: "flex h-5 w-5 shrink-0 items-center justify-center rounded hover:bg-muted", children: _jsx("span", { "aria-hidden": true, className: "text-xs", children: isExpanded ? '\u25be' : '\u25b8' }) }), _jsxs("span", { className: "truncate", children: [groupColumn?.header ? `${groupColumn.header}: ` : '', label] }), _jsxs("span", { className: "text-xs font-normal text-muted-foreground", children: [row.subRows.length, " ", row.subRows.length === 1 ? 'row' : 'rows'] })] }, row.id));
|
|
778
|
+
}
|
|
779
|
+
return (_jsxs("div", { role: "row", className: cn('absolute left-0 flex', onRowClick && 'cursor-pointer hover:bg-muted/40'), style: { top: rowTop, width: totalWidth, height: vr.size },
|
|
780
|
+
/*
|
|
781
|
+
* A row opens its record, WITHOUT stealing the spreadsheet's
|
|
782
|
+
* own click behaviour.
|
|
783
|
+
*
|
|
784
|
+
* Skipped when: a cell is being edited (the click is going to
|
|
785
|
+
* an input), the click carries a modifier (ctrl/cmd/shift
|
|
786
|
+
* already mean "extend the selection"), or the reader has
|
|
787
|
+
* dragged out a multi-cell range (they were selecting, not
|
|
788
|
+
* navigating). Without those guards this handler would fire on
|
|
789
|
+
* every range-select and make the grid unusable as a grid.
|
|
790
|
+
*/
|
|
791
|
+
onClick: (event) => {
|
|
792
|
+
if (!onRowClick)
|
|
793
|
+
return;
|
|
794
|
+
if (editingCell)
|
|
795
|
+
return;
|
|
796
|
+
if (event.ctrlKey || event.metaKey || event.shiftKey || event.altKey)
|
|
797
|
+
return;
|
|
798
|
+
if (normalizedSelection) {
|
|
799
|
+
const multiCell = normalizedSelection.startRow !== normalizedSelection.endRow ||
|
|
800
|
+
normalizedSelection.startCol !== normalizedSelection.endCol;
|
|
801
|
+
if (multiCell)
|
|
802
|
+
return;
|
|
803
|
+
}
|
|
804
|
+
onRowClick(row.original, row.index);
|
|
805
|
+
}, onKeyDown: (event) => {
|
|
806
|
+
// Keyboard parity: a row you can click is a row you can open
|
|
807
|
+
// from the keyboard. Enter is already the grid's "edit" key
|
|
808
|
+
// on an editable cell, so this only fires when nothing is
|
|
809
|
+
// being edited.
|
|
810
|
+
if (!onRowClick || editingCell)
|
|
811
|
+
return;
|
|
812
|
+
if (event.key === 'Enter' && !event.shiftKey)
|
|
813
|
+
onRowClick(row.original, row.index);
|
|
814
|
+
}, children: [frozenColumn && (_jsx(GridCellRenderer, { gridRow: vr.index, gridCol: 0, frozen: true, style: { position: 'sticky', left: 0, zIndex: 10, width: frozenWidth, height: vr.size }, column: columnConfigById.get(frozenColumn.id), row: row.original, rowIndex: row.index, value: getEffectiveValue(row.index, frozenColumn.id), isSelected: Boolean(normalizedSelection && isCellInRange({ row: vr.index, col: 0 }, normalizedSelection)), isActive: Boolean(selection && selection.focus.row === vr.index && selection.focus.col === 0), isEditing: Boolean(editingCell && editingCell.row === vr.index && editingCell.col === 0), editSeedChar: editSeedChar, onCommit: handleEditorCommit, onCancel: handleEditorCancel, onMouseDown: (e) => handleCellMouseDown({ row: vr.index, col: 0 }, e), onMouseEnter: () => handleCellMouseEnter({ row: vr.index, col: 0 }), onDoubleClick: () => beginEditing({ row: vr.index, col: 0 }) })), virtualColumns.map((vc) => {
|
|
605
815
|
const column = scrollableColumns[vc.index];
|
|
606
816
|
const gridCol = vc.index + (frozenFirstColumn ? 1 : 0);
|
|
607
817
|
const config = columnConfigById.get(column.id);
|
package/dist/DataGrid.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DataGrid.js","sourceRoot":"","sources":["../src/DataGrid.tsx"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"DataGrid.js","sourceRoot":"","sources":["../src/DataGrid.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { type ReactNode } from 'react';
|
|
2
|
+
import type { DataGridColumn } from '../types.js';
|
|
3
|
+
/**
|
|
4
|
+
* Row heights, named for what the reader is trying to do rather than in px.
|
|
5
|
+
*
|
|
6
|
+
* "Nothing vertically truncated" is the operator's requirement, and it is a
|
|
7
|
+
* property of the CONTENT, not a number — a cell holding a wrapped address
|
|
8
|
+
* needs a taller row than one holding a date. Naming the steps lets the reader
|
|
9
|
+
* pick by intent; the px values are an implementation detail they never see.
|
|
10
|
+
*/
|
|
11
|
+
export declare const ROW_HEIGHTS: {
|
|
12
|
+
readonly compact: 32;
|
|
13
|
+
readonly comfortable: 48;
|
|
14
|
+
readonly tall: 72;
|
|
15
|
+
readonly 'extra tall': 112;
|
|
16
|
+
};
|
|
17
|
+
export type RowHeightName = keyof typeof ROW_HEIGHTS;
|
|
18
|
+
export declare function rowHeightNameFor(px: number): RowHeightName;
|
|
19
|
+
export interface DataGridToolbarProps<TRow> {
|
|
20
|
+
columns: DataGridColumn<TRow>[];
|
|
21
|
+
/** Free-text filter. Matches the FORMATTED value of visible columns. */
|
|
22
|
+
filter: string;
|
|
23
|
+
onFilterChange: (next: string) => void;
|
|
24
|
+
/** Column id -> shown. Absent id = shown. */
|
|
25
|
+
columnVisibility: Record<string, boolean>;
|
|
26
|
+
onColumnVisibilityChange: (next: Record<string, boolean>) => void;
|
|
27
|
+
rowHeight: number;
|
|
28
|
+
onRowHeightChange: (next: number) => void;
|
|
29
|
+
/** Row count AFTER filtering, so the reader can see the filter working. */
|
|
30
|
+
visibleRowCount?: number;
|
|
31
|
+
totalRowCount?: number;
|
|
32
|
+
/** Anything the page wants on the same line — a "New" button, usually. */
|
|
33
|
+
children?: ReactNode;
|
|
34
|
+
className?: string;
|
|
35
|
+
}
|
|
36
|
+
export declare function DataGridToolbar<TRow>({ columns, filter, onFilterChange, columnVisibility, onColumnVisibilityChange, rowHeight, onRowHeightChange, visibleRowCount, totalRowCount, children, className, }: DataGridToolbarProps<TRow>): import("react").JSX.Element;
|
|
37
|
+
//# sourceMappingURL=DataGridToolbar.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DataGridToolbar.d.ts","sourceRoot":"","sources":["../../src/components/DataGridToolbar.tsx"],"names":[],"mappings":"AAoBA,OAAO,EAAmB,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAExD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAElD;;;;;;;GAOG;AACH,eAAO,MAAM,WAAW;;;;;CAKd,CAAC;AAEX,MAAM,MAAM,aAAa,GAAG,MAAM,OAAO,WAAW,CAAC;AAErD,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,MAAM,GAAG,aAAa,CAM1D;AAED,MAAM,WAAW,oBAAoB,CAAC,IAAI;IACxC,OAAO,EAAE,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC;IAChC,wEAAwE;IACxE,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACvC,6CAA6C;IAC7C,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC1C,wBAAwB,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;IAClE,SAAS,EAAE,MAAM,CAAC;IAClB,iBAAiB,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC1C,2EAA2E;IAC3E,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,0EAA0E;IAC1E,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,EACpC,OAAO,EACP,MAAM,EACN,cAAc,EACd,gBAAgB,EAChB,wBAAwB,EACxB,SAAS,EACT,iBAAiB,EACjB,eAAe,EACf,aAAa,EACb,QAAQ,EACR,SAAS,GACV,EAAE,oBAAoB,CAAC,IAAI,CAAC,+BAoH5B"}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
/*
|
|
3
|
+
* DataGridToolbar — the reader's controls for a list.
|
|
4
|
+
*
|
|
5
|
+
* The grid gained filtering, column visibility and an adjustable row height as
|
|
6
|
+
* PROPS. Props are not a capability: a reader cannot pass a prop. Precedent
|
|
7
|
+
* 20260824__zero_consumer_is_not_done — "a package, token, hook, RPC,
|
|
8
|
+
* component, column or endpoint shipping with ZERO CONSUMERS is NOT done" —
|
|
9
|
+
* so the controls ship with the surface that reaches them.
|
|
10
|
+
*
|
|
11
|
+
* WHY A SEPARATE COMPONENT rather than baked into DataGrid: a page already
|
|
12
|
+
* owns a header, and several already have their own search box. Forcing a
|
|
13
|
+
* second toolbar inside the grid would put two search inputs on the same
|
|
14
|
+
* screen. This one is opt-in and composable, and a page that already has a
|
|
15
|
+
* filter can wire `globalFilter` straight to its own input instead.
|
|
16
|
+
*
|
|
17
|
+
* Every control is CONTROLLED. The page owns the state, so it can persist the
|
|
18
|
+
* reader's choice per user and per surface — which is what "on users
|
|
19
|
+
* preference" requires. An uncontrolled toolbar would reset on every reload
|
|
20
|
+
* and be a demo rather than a preference.
|
|
21
|
+
*/
|
|
22
|
+
import { useId, useState } from 'react';
|
|
23
|
+
import { cn } from '../cn.js';
|
|
24
|
+
/**
|
|
25
|
+
* Row heights, named for what the reader is trying to do rather than in px.
|
|
26
|
+
*
|
|
27
|
+
* "Nothing vertically truncated" is the operator's requirement, and it is a
|
|
28
|
+
* property of the CONTENT, not a number — a cell holding a wrapped address
|
|
29
|
+
* needs a taller row than one holding a date. Naming the steps lets the reader
|
|
30
|
+
* pick by intent; the px values are an implementation detail they never see.
|
|
31
|
+
*/
|
|
32
|
+
export const ROW_HEIGHTS = {
|
|
33
|
+
compact: 32,
|
|
34
|
+
comfortable: 48,
|
|
35
|
+
tall: 72,
|
|
36
|
+
'extra tall': 112,
|
|
37
|
+
};
|
|
38
|
+
export function rowHeightNameFor(px) {
|
|
39
|
+
const entries = Object.entries(ROW_HEIGHTS);
|
|
40
|
+
// Nearest named step, so a persisted value from an older release still maps.
|
|
41
|
+
return entries.reduce((best, [name, value]) => Math.abs(value - px) < Math.abs(ROW_HEIGHTS[best] - px) ? name : best, entries[0][0]);
|
|
42
|
+
}
|
|
43
|
+
export function DataGridToolbar({ columns, filter, onFilterChange, columnVisibility, onColumnVisibilityChange, rowHeight, onRowHeightChange, visibleRowCount, totalRowCount, children, className, }) {
|
|
44
|
+
const [columnsOpen, setColumnsOpen] = useState(false);
|
|
45
|
+
const filterId = useId();
|
|
46
|
+
const panelId = useId();
|
|
47
|
+
const hiddenCount = columns.filter((c) => columnVisibility[c.id] === false).length;
|
|
48
|
+
const filtering = filter.trim().length > 0;
|
|
49
|
+
return (_jsxs("div", { className: cn('flex flex-wrap items-center gap-2 pb-2', className), children: [_jsxs("div", { className: "flex items-center gap-1.5", children: [_jsx("label", { htmlFor: filterId, className: "sr-only", children: "Filter rows" }), _jsx("input", { id: filterId, type: "search", value: filter, onChange: (e) => onFilterChange(e.target.value), placeholder: "Filter\u2026", className: "h-8 w-48 rounded-md border border-border bg-background px-2 text-sm text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring" }), filtering && visibleRowCount !== undefined && totalRowCount !== undefined && (_jsxs("output", { className: "text-sm text-muted-foreground", "aria-live": "polite", children: [visibleRowCount, " of ", totalRowCount] }))] }), _jsxs("div", { className: "relative", children: [_jsx("button", { type: "button", "aria-expanded": columnsOpen, "aria-controls": panelId, onClick: () => setColumnsOpen((o) => !o), className: "h-8 rounded-md border border-border px-2 text-sm text-muted-foreground transition-colors hover:bg-muted hover:text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring", children: hiddenCount > 0 ? `Columns (${hiddenCount} hidden)` : 'Columns' }), columnsOpen && (_jsx("div", { id: panelId, role: "group", "aria-label": "Choose columns", className: "absolute z-50 mt-1 max-h-72 w-56 overflow-y-auto rounded-md border border-border bg-card p-2 shadow-lg", children: columns.map((col) => {
|
|
50
|
+
const shown = columnVisibility[col.id] !== false;
|
|
51
|
+
const isLast = shown && columns.filter((c) => columnVisibility[c.id] !== false).length === 1;
|
|
52
|
+
return (_jsxs("label", { className: cn('flex items-center gap-2 rounded px-1 py-1 text-sm', isLast ? 'opacity-50' : 'cursor-pointer hover:bg-muted'), children: [_jsx("input", { type: "checkbox", checked: shown,
|
|
53
|
+
/*
|
|
54
|
+
* The last visible column cannot be hidden. An empty grid
|
|
55
|
+
* is not a preference, it is a dead end the reader has to
|
|
56
|
+
* guess their way out of.
|
|
57
|
+
*
|
|
58
|
+
* GUARDED TWICE, deliberately. `disabled` is a UI hint,
|
|
59
|
+
* not an enforcement: a click dispatched around it — by a
|
|
60
|
+
* test, a script, or a browser quirk — still reached this
|
|
61
|
+
* handler and produced `{host: false, started: false}`,
|
|
62
|
+
* hiding every column. Measured, not theorised: that is
|
|
63
|
+
* exactly how the first version of this failed its own
|
|
64
|
+
* test. The state change is refused where the state is
|
|
65
|
+
* actually written.
|
|
66
|
+
*/
|
|
67
|
+
disabled: isLast, onChange: (e) => {
|
|
68
|
+
if (isLast && !e.target.checked)
|
|
69
|
+
return;
|
|
70
|
+
onColumnVisibilityChange({ ...columnVisibility, [col.id]: e.target.checked });
|
|
71
|
+
} }), _jsx("span", { children: col.header })] }, col.id));
|
|
72
|
+
}) }))] }), _jsxs("label", { className: "flex items-center gap-1.5", children: [_jsx("span", { className: "text-sm text-muted-foreground", children: "Rows" }), _jsx("select", { value: rowHeightNameFor(rowHeight), onChange: (e) => onRowHeightChange(ROW_HEIGHTS[e.target.value]), "aria-label": "Row height", className: "h-8 rounded-md border border-border bg-background px-2 text-sm text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring", children: Object.keys(ROW_HEIGHTS).map((name) => (_jsx("option", { value: name, children: name }, name))) })] }), children] }));
|
|
73
|
+
}
|
|
74
|
+
//# sourceMappingURL=DataGridToolbar.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DataGridToolbar.js","sourceRoot":"","sources":["../../src/components/DataGridToolbar.tsx"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -6,7 +6,13 @@
|
|
|
6
6
|
* (@tanstack/react-table), cell-range selection, keyboard grid navigation,
|
|
7
7
|
* a TSV clipboard round-trip, a fill handle, and an undo/redo stack.
|
|
8
8
|
*
|
|
9
|
-
*
|
|
9
|
+
* FIRST CONSUMER, 2026-08-29: crm7 `/hr/disciplinary` (crm7#2205) — a read-and-open
|
|
10
|
+
* listing, 8 columns, `onRowClick` into the case record. It is the only one; the
|
|
11
|
+
* remaining ~155 crm7 tables are still hand-rolled, and `EnhancedDataTable` (43 pages)
|
|
12
|
+
* is NOT a one-edit conversion — its cell renderers read TanStack's `row.original`,
|
|
13
|
+
* which is not this package's `row`. See
|
|
14
|
+
* `docs/20260829-enhanceddatatable-is-not-a-one-edit-conversion-v1.00W.md`.
|
|
15
|
+
*
|
|
10
16
|
* Import the pure logic (TSV, selection maths, fill maths, undo stack,
|
|
11
17
|
* keyboard maths, clipboard glue) independently via `@bsuite/data-grid/lib`
|
|
12
18
|
* if a host only needs the non-React pieces.
|
|
@@ -17,4 +23,7 @@ export { formatCellValue, parseCellValue } from './formatting.js';
|
|
|
17
23
|
export { cn } from './cn.js';
|
|
18
24
|
export type { ColumnDataType, SelectOption, CellEditorProps, CellRendererProps, DataGridColumn, CellEdit, DataGridErrorPhase, DataGridError, DataGridHandle, DataGridProps, } from './types.js';
|
|
19
25
|
export type { CellPosition, CellRange } from './lib/selection.js';
|
|
26
|
+
export { DataGridToolbar, ROW_HEIGHTS, rowHeightNameFor } from './components/DataGridToolbar.js';
|
|
27
|
+
export type { DataGridToolbarProps, RowHeightName } from './components/DataGridToolbar.js';
|
|
28
|
+
export type { LinkEdit } from './types.js';
|
|
20
29
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AACH,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EACL,UAAU,EACV,YAAY,EACZ,UAAU,EACV,aAAa,EACb,YAAY,GACb,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAClE,OAAO,EAAE,EAAE,EAAE,MAAM,SAAS,CAAC;AAE7B,YAAY,EACV,cAAc,EACd,YAAY,EACZ,eAAe,EACf,iBAAiB,EACjB,cAAc,EACd,QAAQ,EACR,kBAAkB,EAClB,aAAa,EACb,cAAc,EACd,aAAa,GACd,MAAM,YAAY,CAAC;AAEpB,YAAY,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAClE,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AACjG,YAAY,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAC3F,YAAY,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -6,7 +6,13 @@
|
|
|
6
6
|
* (@tanstack/react-table), cell-range selection, keyboard grid navigation,
|
|
7
7
|
* a TSV clipboard round-trip, a fill handle, and an undo/redo stack.
|
|
8
8
|
*
|
|
9
|
-
*
|
|
9
|
+
* FIRST CONSUMER, 2026-08-29: crm7 `/hr/disciplinary` (crm7#2205) — a read-and-open
|
|
10
|
+
* listing, 8 columns, `onRowClick` into the case record. It is the only one; the
|
|
11
|
+
* remaining ~155 crm7 tables are still hand-rolled, and `EnhancedDataTable` (43 pages)
|
|
12
|
+
* is NOT a one-edit conversion — its cell renderers read TanStack's `row.original`,
|
|
13
|
+
* which is not this package's `row`. See
|
|
14
|
+
* `docs/20260829-enhanceddatatable-is-not-a-one-edit-conversion-v1.00W.md`.
|
|
15
|
+
*
|
|
10
16
|
* Import the pure logic (TSV, selection maths, fill maths, undo stack,
|
|
11
17
|
* keyboard maths, clipboard glue) independently via `@bsuite/data-grid/lib`
|
|
12
18
|
* if a host only needs the non-React pieces.
|
|
@@ -15,4 +21,5 @@ export { DataGrid } from './DataGrid.js';
|
|
|
15
21
|
export { TextEditor, NumberEditor, DateEditor, BooleanEditor, SelectEditor, } from './editors/index.js';
|
|
16
22
|
export { formatCellValue, parseCellValue } from './formatting.js';
|
|
17
23
|
export { cn } from './cn.js';
|
|
24
|
+
export { DataGridToolbar, ROW_HEIGHTS, rowHeightNameFor } from './components/DataGridToolbar.js';
|
|
18
25
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AACH,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EACL,UAAU,EACV,YAAY,EACZ,UAAU,EACV,aAAa,EACb,YAAY,GACb,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAClE,OAAO,EAAE,EAAE,EAAE,MAAM,SAAS,CAAC;AAgB7B,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC"}
|
package/dist/types.d.ts
CHANGED
|
@@ -45,6 +45,54 @@ export interface DataGridColumn<TRow = unknown> {
|
|
|
45
45
|
sortable?: boolean;
|
|
46
46
|
/** Default true. Set false for a computed/read-only column. */
|
|
47
47
|
editable?: boolean;
|
|
48
|
+
/**
|
|
49
|
+
* This cell is a LINK to another record, not a value typed into this row.
|
|
50
|
+
*
|
|
51
|
+
* Operator, 2026-08-28: "it was always meant to be applied to a cell. e.g.
|
|
52
|
+
* link a host to a placement it comes from linking and selecting the hosts
|
|
53
|
+
* record i dont type the same host name everytime. this is the oneshot
|
|
54
|
+
* policy."
|
|
55
|
+
*
|
|
56
|
+
* The estate's one-shot doctrine gives every entity exactly one owning
|
|
57
|
+
* surface for create/edit. A linked cell stores a REFERENCE; the text on
|
|
58
|
+
* screen is derived from the referenced record. Two consequences follow, and
|
|
59
|
+
* the grid enforces both rather than documenting them:
|
|
60
|
+
*
|
|
61
|
+
* 1. TYPING FILTERS, IT DOES NOT ENTER. The editor is a searchable picker:
|
|
62
|
+
* you type to narrow the list of records — operator, 2026-08-28: "you
|
|
63
|
+
* can type it to filter though" — and only a SELECTED record commits. An
|
|
64
|
+
* arbitrary string is refused, so a host name cannot be mistyped into a
|
|
65
|
+
* row and two rows cannot hold different spellings of the same host.
|
|
66
|
+
*
|
|
67
|
+
* 2. A TYPO IS FIXED ONCE, AT SOURCE, AND EVERY ROW FOLLOWS. Not because
|
|
68
|
+
* the grid propagates anything — because there is only one copy. Three
|
|
69
|
+
* placements showing the same host all change when the host record
|
|
70
|
+
* changes, and no code in this package is involved.
|
|
71
|
+
*
|
|
72
|
+
* Fill-down IS allowed here and copies the REFERENCE, which is the ordinary
|
|
73
|
+
* "point these three placements at the same host" gesture. What it can never
|
|
74
|
+
* do is copy a string.
|
|
75
|
+
*
|
|
76
|
+
* `renderEditor` IS REQUIRED alongside this, and the grid refuses to edit the
|
|
77
|
+
* cell without it. The editor is the APP'S OWN entity selector — the same
|
|
78
|
+
* component the placement form uses to choose a host, with the same
|
|
79
|
+
* select-and-add-new behaviour (operator, 2026-08-28: "same as selecting a
|
|
80
|
+
* host record when entering the host on a placement form. same principle.
|
|
81
|
+
* select, add new."). crm7 ships 31 of these plus quick-create dialogs.
|
|
82
|
+
*
|
|
83
|
+
* This package deliberately does NOT implement a picker of its own. A second
|
|
84
|
+
* picker would be a second create/edit surface for the same entity, which is
|
|
85
|
+
* the one-shot violation this whole mechanism exists to prevent — and the
|
|
86
|
+
* failure mode if it were optional is the worst one available: the cell
|
|
87
|
+
* would silently fall back to a TEXT INPUT, and the first person to type a
|
|
88
|
+
* host name would reintroduce exactly the divergence the link prevents.
|
|
89
|
+
*/
|
|
90
|
+
link?: {
|
|
91
|
+
/** The owning entity, for the audit trail and the host's dispatch. */
|
|
92
|
+
entity: string;
|
|
93
|
+
/** Which record this row currently points at. `null` = unlinked. */
|
|
94
|
+
refId: (row: TRow) => string | null;
|
|
95
|
+
};
|
|
48
96
|
/** Escape hatch for a fully custom inline editor (e.g. an FK-lookup
|
|
49
97
|
* picker). Not implemented in this package by design. */
|
|
50
98
|
renderEditor?: (props: CellEditorProps<TRow>) => ReactNode;
|
|
@@ -55,6 +103,21 @@ export interface DataGridColumn<TRow = unknown> {
|
|
|
55
103
|
* type-aware (see parseCellValue). */
|
|
56
104
|
parseValue?: (raw: string, row: TRow) => unknown;
|
|
57
105
|
}
|
|
106
|
+
/**
|
|
107
|
+
* A row was pointed at a different record.
|
|
108
|
+
*
|
|
109
|
+
* This is a re-LINK, never a rename: the referenced record's own fields are
|
|
110
|
+
* edited on the surface that owns it, which is what makes one fix reach every
|
|
111
|
+
* row without this package doing anything.
|
|
112
|
+
*/
|
|
113
|
+
export interface LinkEdit<TRow = unknown> {
|
|
114
|
+
entity: string;
|
|
115
|
+
columnId: string;
|
|
116
|
+
rowIndex: number;
|
|
117
|
+
row: TRow;
|
|
118
|
+
previousRefId: string | null;
|
|
119
|
+
refId: string | null;
|
|
120
|
+
}
|
|
58
121
|
export interface CellEdit<TRow = unknown> {
|
|
59
122
|
rowIndex: number;
|
|
60
123
|
columnId: string;
|
|
@@ -115,5 +178,65 @@ export interface DataGridProps<TRow = unknown> {
|
|
|
115
178
|
/** Max entries retained in the undo stack. Default 200. */
|
|
116
179
|
undoLimit?: number;
|
|
117
180
|
emptyState?: ReactNode;
|
|
181
|
+
/**
|
|
182
|
+
* Group rows by this column id, or `null` for a flat grid.
|
|
183
|
+
*
|
|
184
|
+
* EXISTS BECAUSE the report surfaces cannot convert without it. crm7's
|
|
185
|
+
* `ReportTable` lets a reader choose a groupBy column and PERSISTS it as a view
|
|
186
|
+
* preference; converting that page to a grid with no grouping would have deleted
|
|
187
|
+
* a feature people use, which is a regression wearing a migration's clothes.
|
|
188
|
+
*
|
|
189
|
+
* Controlled by the host so the choice can be persisted. Grouping is a VIEW,
|
|
190
|
+
* not a mutation: `onRowClick` still receives the original record and the
|
|
191
|
+
* original data index, so a grouped grid opens the same record a flat one does.
|
|
192
|
+
*/
|
|
193
|
+
groupBy?: string | null;
|
|
194
|
+
/** Fires when the reader collapses or expands a group. */
|
|
195
|
+
onGroupExpandedChange?: (expanded: Record<string, boolean>) => void;
|
|
196
|
+
/** Initial collapsed/expanded state per group id. Absent means all expanded. */
|
|
197
|
+
groupExpanded?: Record<string, boolean>;
|
|
198
|
+
/**
|
|
199
|
+
* Open the record behind a row.
|
|
200
|
+
*
|
|
201
|
+
* Operator, 2026-08-28: "each row clickable and live". A listing whose rows
|
|
202
|
+
* do not open the record is a report, not a list — the reader has to go find
|
|
203
|
+
* the thing they were just looking at.
|
|
204
|
+
*
|
|
205
|
+
* Fires on a plain single click on a NON-editing cell. It deliberately does
|
|
206
|
+
* NOT fire while a cell is being edited, nor on a range-select drag, nor on
|
|
207
|
+
* a modified click (ctrl/cmd/shift) — those already mean "select cells", and
|
|
208
|
+
* stealing them would break the spreadsheet behaviour this grid exists for.
|
|
209
|
+
*/
|
|
210
|
+
onRowClick?: (row: TRow, index: number) => void;
|
|
211
|
+
/**
|
|
212
|
+
* A row was pointed at a different record. REQUIRED if any column declares
|
|
213
|
+
* `link` — a grid that lets you re-link and then drops the write is worse
|
|
214
|
+
* than one that refuses the edit, because the screen shows the new host and
|
|
215
|
+
* the database keeps the old one.
|
|
216
|
+
*/
|
|
217
|
+
onLinkEdit?: (edit: LinkEdit<TRow>) => void | Promise<void>;
|
|
218
|
+
/**
|
|
219
|
+
* Which columns are shown, by column id. Absent id = visible.
|
|
220
|
+
*
|
|
221
|
+
* Controlled when `onColumnVisibilityChange` is supplied, so a page can
|
|
222
|
+
* persist the reader's choice; uncontrolled otherwise.
|
|
223
|
+
*/
|
|
224
|
+
columnVisibility?: Record<string, boolean>;
|
|
225
|
+
onColumnVisibilityChange?: (next: Record<string, boolean>) => void;
|
|
226
|
+
/**
|
|
227
|
+
* Free-text filter across every visible column's FORMATTED value.
|
|
228
|
+
*
|
|
229
|
+
* Formatted, not raw: the reader filters what they can see. A date shown as
|
|
230
|
+
* `23/08/2026` must match "23/08", which its ISO storage value would not.
|
|
231
|
+
*/
|
|
232
|
+
globalFilter?: string;
|
|
233
|
+
/**
|
|
234
|
+
* Row height in px. Supply `onRowHeightChange` to let the reader adjust it.
|
|
235
|
+
*
|
|
236
|
+
* Operator, 2026-08-28: "row height adjustible so nothing vertically
|
|
237
|
+
* truncated". A fixed 32px row silently clips a cell whose content wraps,
|
|
238
|
+
* and the reader has no way to see what was cut.
|
|
239
|
+
*/
|
|
240
|
+
onRowHeightChange?: (next: number) => void;
|
|
118
241
|
}
|
|
119
242
|
//# sourceMappingURL=types.d.ts.map
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@bsuite/data-grid",
|
|
3
|
-
"version": "1.0
|
|
3
|
+
"version": "1.2.0",
|
|
4
4
|
"description": "Virtualized, spreadsheet-feel data grid for BSuite apps \u2014 cell range selection, keyboard grid navigation, TSV clipboard round-trip, fill handle, undo/redo. Built on @tanstack/react-table + @tanstack/react-virtual.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "UNLICENSED",
|