@cdx-ui/data-grid 0.0.1-beta.185

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.
Files changed (54) hide show
  1. package/README.md +11 -0
  2. package/lib/commonjs/DataGrid.js +478 -0
  3. package/lib/commonjs/DataGrid.js.map +1 -0
  4. package/lib/commonjs/adapter/columns.js +38 -0
  5. package/lib/commonjs/adapter/columns.js.map +1 -0
  6. package/lib/commonjs/adapter/selectColumn.js +18 -0
  7. package/lib/commonjs/adapter/selectColumn.js.map +1 -0
  8. package/lib/commonjs/index.js +13 -0
  9. package/lib/commonjs/index.js.map +1 -0
  10. package/lib/commonjs/package.json +1 -0
  11. package/lib/commonjs/styles.js +61 -0
  12. package/lib/commonjs/styles.js.map +1 -0
  13. package/lib/commonjs/types.js +17 -0
  14. package/lib/commonjs/types.js.map +1 -0
  15. package/lib/commonjs/useDataGridTable.js +253 -0
  16. package/lib/commonjs/useDataGridTable.js.map +1 -0
  17. package/lib/module/DataGrid.js +474 -0
  18. package/lib/module/DataGrid.js.map +1 -0
  19. package/lib/module/adapter/columns.js +32 -0
  20. package/lib/module/adapter/columns.js.map +1 -0
  21. package/lib/module/adapter/selectColumn.js +14 -0
  22. package/lib/module/adapter/selectColumn.js.map +1 -0
  23. package/lib/module/index.js +4 -0
  24. package/lib/module/index.js.map +1 -0
  25. package/lib/module/styles.js +57 -0
  26. package/lib/module/styles.js.map +1 -0
  27. package/lib/module/types.js +13 -0
  28. package/lib/module/types.js.map +1 -0
  29. package/lib/module/useDataGridTable.js +240 -0
  30. package/lib/module/useDataGridTable.js.map +1 -0
  31. package/lib/typescript/DataGrid.d.ts +7 -0
  32. package/lib/typescript/DataGrid.d.ts.map +1 -0
  33. package/lib/typescript/adapter/columns.d.ts +17 -0
  34. package/lib/typescript/adapter/columns.d.ts.map +1 -0
  35. package/lib/typescript/adapter/selectColumn.d.ts +9 -0
  36. package/lib/typescript/adapter/selectColumn.d.ts.map +1 -0
  37. package/lib/typescript/index.d.ts +3 -0
  38. package/lib/typescript/index.d.ts.map +1 -0
  39. package/lib/typescript/styles.d.ts +22 -0
  40. package/lib/typescript/styles.d.ts.map +1 -0
  41. package/lib/typescript/types.d.ts +112 -0
  42. package/lib/typescript/types.d.ts.map +1 -0
  43. package/lib/typescript/useDataGridTable.d.ts +54 -0
  44. package/lib/typescript/useDataGridTable.d.ts.map +1 -0
  45. package/package.json +87 -0
  46. package/src/DataGrid.tsx +622 -0
  47. package/src/adapter/columns.test.ts +47 -0
  48. package/src/adapter/columns.ts +32 -0
  49. package/src/adapter/selectColumn.ts +12 -0
  50. package/src/index.ts +17 -0
  51. package/src/styles.ts +104 -0
  52. package/src/types.ts +133 -0
  53. package/src/useDataGridTable.test.ts +125 -0
  54. package/src/useDataGridTable.ts +295 -0
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+
3
+ export const SELECT_COLUMN_ID = '__select__';
4
+ export const DEFAULT_PAGE_SIZE_OPTIONS = [25, 50, 100];
5
+ export const DEFAULT_PAGINATION_MODEL = {
6
+ page: 0,
7
+ pageSize: 25
8
+ };
9
+ export const EMPTY_SELECTION = {
10
+ type: 'include',
11
+ ids: new Set()
12
+ };
13
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["SELECT_COLUMN_ID","DEFAULT_PAGE_SIZE_OPTIONS","DEFAULT_PAGINATION_MODEL","page","pageSize","EMPTY_SELECTION","type","ids","Set"],"sourceRoot":"../../src","sources":["types.ts"],"mappings":";;AAwHA,OAAO,MAAMA,gBAAgB,GAAG,YAAY;AAE5C,OAAO,MAAMC,yBAAyB,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,GAAG,CAAU;AAE/D,OAAO,MAAMC,wBAA6C,GAAG;EAC3DC,IAAI,EAAE,CAAC;EACPC,QAAQ,EAAE;AACZ,CAAC;AAED,OAAO,MAAMC,eAAsC,GAAG;EACpDC,IAAI,EAAE,SAAS;EACfC,GAAG,EAAE,IAAIC,GAAG,CAAC;AACf,CAAC","ignoreList":[]}
@@ -0,0 +1,240 @@
1
+ "use strict";
2
+
3
+ import { useMemo } from 'react';
4
+ import { columnFilteringFeature, createFilteredRowModel, createPaginatedRowModel, createSortedRowModel, filterFn_includesString, globalFilteringFeature, rowPaginationFeature, rowSelectionFeature, rowSortingFeature, sortFn_alphanumeric, sortFn_text, tableFeatures, useTable } from '@tanstack/react-table';
5
+ import { createSelectColumn } from './adapter/selectColumn';
6
+ import { applyUpdater, gridColDefToColumnDef } from './adapter/columns';
7
+ import { SELECT_COLUMN_ID } from './types';
8
+ const features = tableFeatures({
9
+ columnFilteringFeature,
10
+ globalFilteringFeature,
11
+ rowSortingFeature,
12
+ rowPaginationFeature,
13
+ rowSelectionFeature,
14
+ filteredRowModel: createFilteredRowModel(),
15
+ sortedRowModel: createSortedRowModel(),
16
+ paginatedRowModel: createPaginatedRowModel(),
17
+ filterFns: {
18
+ includesString: filterFn_includesString
19
+ },
20
+ sortFns: {
21
+ alphanumeric: sortFn_alphanumeric,
22
+ text: sortFn_text
23
+ }
24
+ });
25
+ export function sortModelToSortingState(model) {
26
+ return model.map(item => ({
27
+ id: item.field,
28
+ desc: item.sort === 'desc'
29
+ }));
30
+ }
31
+ export function sortingStateToSortModel(state) {
32
+ return state.filter(item => item.id !== SELECT_COLUMN_ID).slice(0, 1).map(item => ({
33
+ field: item.id,
34
+ sort: item.desc ? 'desc' : 'asc'
35
+ }));
36
+ }
37
+ export function paginationModelToState(model) {
38
+ return {
39
+ pageIndex: model.page,
40
+ pageSize: model.pageSize
41
+ };
42
+ }
43
+ export function paginationStateToModel(state) {
44
+ return {
45
+ page: state.pageIndex,
46
+ pageSize: state.pageSize
47
+ };
48
+ }
49
+ function columnFilterValueToString(value) {
50
+ if (typeof value === 'string') {
51
+ return value;
52
+ }
53
+ if (value == null) {
54
+ return '';
55
+ }
56
+ if (typeof value === 'number' || typeof value === 'boolean' || typeof value === 'bigint') {
57
+ return String(value);
58
+ }
59
+ return '';
60
+ }
61
+ export function filterModelToColumnFilters(model) {
62
+ return model.filter(item => item.value.trim().length > 0).map(item => ({
63
+ id: item.field,
64
+ value: item.value
65
+ }));
66
+ }
67
+ export function columnFiltersToFilterModel(state) {
68
+ return state.filter(item => item.id !== SELECT_COLUMN_ID).map(item => ({
69
+ field: item.id,
70
+ value: columnFilterValueToString(item.value)
71
+ }));
72
+ }
73
+ function selectionIdKey(id) {
74
+ return `${typeof id}:${String(id)}`;
75
+ }
76
+ export function selectionModelToRowSelection(model, allIds) {
77
+ const selected = new Set();
78
+ if (model.type === 'include') {
79
+ for (const id of model.ids) {
80
+ selected.add(selectionIdKey(id));
81
+ }
82
+ } else {
83
+ for (const id of allIds) {
84
+ if (!model.ids.has(id)) {
85
+ selected.add(selectionIdKey(id));
86
+ }
87
+ }
88
+ }
89
+ return Object.fromEntries([...selected].map(id => [id, true]));
90
+ }
91
+ export function rowSelectionToModel(state, previousModel, allIds) {
92
+ const currentIdsByKey = new Map();
93
+ for (const id of allIds) {
94
+ currentIdsByKey.set(selectionIdKey(id), id);
95
+ }
96
+ const selectedKeys = new Set(Object.keys(state).filter(key => state[key]));
97
+ const ids = new Set(previousModel.ids);
98
+ if (previousModel.type === 'exclude') {
99
+ for (const [key, id] of currentIdsByKey) {
100
+ if (selectedKeys.has(key)) {
101
+ ids.delete(id);
102
+ } else {
103
+ ids.add(id);
104
+ }
105
+ }
106
+ return {
107
+ type: 'exclude',
108
+ ids
109
+ };
110
+ }
111
+ for (const [key, id] of currentIdsByKey) {
112
+ if (selectedKeys.has(key)) {
113
+ ids.add(id);
114
+ } else {
115
+ ids.delete(id);
116
+ }
117
+ }
118
+ return {
119
+ type: 'include',
120
+ ids
121
+ };
122
+ }
123
+ export function resolveRowId(row, getRowId) {
124
+ if (getRowId) {
125
+ return getRowId(row);
126
+ }
127
+ const id = row.id;
128
+ if (typeof id === 'string' || typeof id === 'number') {
129
+ return id;
130
+ }
131
+ if (__DEV__) {
132
+ console.warn('[DataGrid] Each row needs an `id` or a `getRowId` function. Missing ids break selection.');
133
+ }
134
+ return '';
135
+ }
136
+ export function useDataGridTable({
137
+ rows,
138
+ columns,
139
+ getRowId,
140
+ checkboxSelection,
141
+ disableColumnSorting,
142
+ paginationMode,
143
+ sortingMode,
144
+ rowCount,
145
+ sortModel,
146
+ onSortModelChange,
147
+ paginationModel,
148
+ onPaginationModelChange,
149
+ filterModel,
150
+ onFilterModelChange,
151
+ quickFilter,
152
+ onQuickFilterChange,
153
+ rowSelectionModel,
154
+ onRowSelectionModelChange
155
+ }) {
156
+ const data = useMemo(() => [...rows], [rows]);
157
+ const allIds = useMemo(() => data.map(row => resolveRowId(row, getRowId)), [data, getRowId]);
158
+ const columnDefs = useMemo(() => {
159
+ const mapped = columns.map(col => {
160
+ const def = gridColDefToColumnDef(col);
161
+ if (disableColumnSorting) {
162
+ def.enableSorting = false;
163
+ }
164
+ return def;
165
+ });
166
+ return checkboxSelection ? [createSelectColumn(), ...mapped] : mapped;
167
+ }, [checkboxSelection, columns, disableColumnSorting]);
168
+ const sortingState = useMemo(() => sortModelToSortingState(sortModel), [sortModel]);
169
+ const paginationState = useMemo(() => paginationModelToState(paginationModel), [paginationModel]);
170
+ const columnFilterState = useMemo(() => filterModelToColumnFilters(filterModel), [filterModel]);
171
+ const rowSelectionState = useMemo(() => selectionModelToRowSelection(rowSelectionModel, allIds), [rowSelectionModel, allIds]);
172
+ const resetPaginationPage = () => {
173
+ onPaginationModelChange({
174
+ ...paginationModel,
175
+ page: 0
176
+ });
177
+ };
178
+ const setQuickFilter = value => {
179
+ onQuickFilterChange(value);
180
+ resetPaginationPage();
181
+ };
182
+ const setColumnFilter = (field, value) => {
183
+ const next = filterModel.filter(item => item.field !== field);
184
+ if (value.trim().length > 0) {
185
+ next.push({
186
+ field,
187
+ value
188
+ });
189
+ }
190
+ onFilterModelChange(next);
191
+ resetPaginationPage();
192
+ };
193
+ const table = useTable({
194
+ features,
195
+ columns: columnDefs,
196
+ data,
197
+ getRowId: row => selectionIdKey(resolveRowId(row, getRowId)),
198
+ enableMultiSort: false,
199
+ enableMultiRowSelection: true,
200
+ manualPagination: paginationMode === 'server',
201
+ manualSorting: sortingMode === 'server',
202
+ autoResetPageIndex: false,
203
+ rowCount: paginationMode === 'server' ? rowCount : undefined,
204
+ state: {
205
+ sorting: sortingState,
206
+ pagination: paginationState,
207
+ columnFilters: columnFilterState,
208
+ globalFilter: quickFilter,
209
+ rowSelection: rowSelectionState
210
+ },
211
+ onSortingChange: updater => {
212
+ const next = applyUpdater(updater, sortingState);
213
+ onSortModelChange(sortingStateToSortModel(next));
214
+ resetPaginationPage();
215
+ },
216
+ onPaginationChange: updater => {
217
+ const next = applyUpdater(updater, paginationState);
218
+ onPaginationModelChange(paginationStateToModel(next));
219
+ },
220
+ onColumnFiltersChange: updater => {
221
+ const next = applyUpdater(updater, columnFilterState);
222
+ onFilterModelChange(columnFiltersToFilterModel(next));
223
+ resetPaginationPage();
224
+ },
225
+ onGlobalFilterChange: updater => {
226
+ const next = applyUpdater(updater, quickFilter);
227
+ setQuickFilter(typeof next === 'string' ? next : '');
228
+ },
229
+ onRowSelectionChange: updater => {
230
+ const next = applyUpdater(updater, rowSelectionState);
231
+ onRowSelectionModelChange(rowSelectionToModel(next, rowSelectionModel, allIds));
232
+ }
233
+ });
234
+ return {
235
+ table,
236
+ setQuickFilter,
237
+ setColumnFilter
238
+ };
239
+ }
240
+ //# sourceMappingURL=useDataGridTable.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["useMemo","columnFilteringFeature","createFilteredRowModel","createPaginatedRowModel","createSortedRowModel","filterFn_includesString","globalFilteringFeature","rowPaginationFeature","rowSelectionFeature","rowSortingFeature","sortFn_alphanumeric","sortFn_text","tableFeatures","useTable","createSelectColumn","applyUpdater","gridColDefToColumnDef","SELECT_COLUMN_ID","features","filteredRowModel","sortedRowModel","paginatedRowModel","filterFns","includesString","sortFns","alphanumeric","text","sortModelToSortingState","model","map","item","id","field","desc","sort","sortingStateToSortModel","state","filter","slice","paginationModelToState","pageIndex","page","pageSize","paginationStateToModel","columnFilterValueToString","value","String","filterModelToColumnFilters","trim","length","columnFiltersToFilterModel","selectionIdKey","selectionModelToRowSelection","allIds","selected","Set","type","ids","add","has","Object","fromEntries","rowSelectionToModel","previousModel","currentIdsByKey","Map","set","selectedKeys","keys","key","delete","resolveRowId","row","getRowId","__DEV__","console","warn","useDataGridTable","rows","columns","checkboxSelection","disableColumnSorting","paginationMode","sortingMode","rowCount","sortModel","onSortModelChange","paginationModel","onPaginationModelChange","filterModel","onFilterModelChange","quickFilter","onQuickFilterChange","rowSelectionModel","onRowSelectionModelChange","data","columnDefs","mapped","col","def","enableSorting","sortingState","paginationState","columnFilterState","rowSelectionState","resetPaginationPage","setQuickFilter","setColumnFilter","next","push","table","enableMultiSort","enableMultiRowSelection","manualPagination","manualSorting","autoResetPageIndex","undefined","sorting","pagination","columnFilters","globalFilter","rowSelection","onSortingChange","updater","onPaginationChange","onColumnFiltersChange","onGlobalFilterChange","onRowSelectionChange"],"sourceRoot":"../../src","sources":["useDataGridTable.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,7 @@
1
+ import { type DataGridProps, type GridValidRowModel } from './types';
2
+ export declare function DataGrid<R extends GridValidRowModel>(props: DataGridProps<R>): import("react/jsx-runtime").JSX.Element;
3
+ export declare namespace DataGrid {
4
+ var displayName: string;
5
+ }
6
+ export type { DataGridProps };
7
+ //# sourceMappingURL=DataGrid.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DataGrid.d.ts","sourceRoot":"","sources":["../../src/DataGrid.tsx"],"names":[],"mappings":"AAoCA,OAAO,EAKL,KAAK,aAAa,EAElB,KAAK,iBAAiB,EACvB,MAAM,SAAS,CAAC;AA2jBjB,wBAAgB,QAAQ,CAAC,CAAC,SAAS,iBAAiB,EAAE,KAAK,EAAE,aAAa,CAAC,CAAC,CAAC,2CAE5E;yBAFe,QAAQ;;;AAMxB,YAAY,EAAE,aAAa,EAAE,CAAC"}
@@ -0,0 +1,17 @@
1
+ import type { TableAlignment } from '@cdx-ui/components';
2
+ import type { GridAlignment, GridColDef, GridValidRowModel } from '../types';
3
+ export declare function gridColDefToColumnDef<R extends GridValidRowModel>(col: GridColDef<R>): {
4
+ id: string;
5
+ accessorFn: (row: R) => unknown;
6
+ header: string;
7
+ enableSorting: boolean;
8
+ enableColumnFilter: boolean;
9
+ enableGlobalFilter: boolean;
10
+ filterFn: "includesString";
11
+ meta: {
12
+ colDef: GridColDef<R>;
13
+ };
14
+ };
15
+ export declare function applyUpdater<T>(updater: T | ((old: T) => T), previous: T): T;
16
+ export declare function normalizeGridAlignment(align?: GridAlignment): TableAlignment;
17
+ //# sourceMappingURL=columns.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"columns.d.ts","sourceRoot":"","sources":["../../../src/adapter/columns.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,KAAK,EAAE,aAAa,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAE7E,wBAAgB,qBAAqB,CAAC,CAAC,SAAS,iBAAiB,EAAE,GAAG,EAAE,UAAU,CAAC,CAAC,CAAC;;sBAG/D,CAAC;;;;;;;;;EAWtB;AAED,wBAAgB,YAAY,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,GAAG,CAAC,CAE5E;AAED,wBAAgB,sBAAsB,CAAC,KAAK,CAAC,EAAE,aAAa,GAAG,cAAc,CAQ5E"}
@@ -0,0 +1,9 @@
1
+ export declare function createSelectColumn(): {
2
+ readonly id: "__select__";
3
+ readonly header: "__select__";
4
+ readonly enableSorting: false;
5
+ readonly enableColumnFilter: false;
6
+ readonly enableGlobalFilter: false;
7
+ readonly size: 48;
8
+ };
9
+ //# sourceMappingURL=selectColumn.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"selectColumn.d.ts","sourceRoot":"","sources":["../../../src/adapter/selectColumn.ts"],"names":[],"mappings":"AAEA,wBAAgB,kBAAkB;;;;;;;EASjC"}
@@ -0,0 +1,3 @@
1
+ export { DataGrid } from './DataGrid';
2
+ export type { DataGridProps, GridAlignment, GridColDef, GridFilterItem, GridFilterModel, GridPaginationModel, GridRenderCellParams, GridRowId, GridRowSelectionModel, GridRowsProp, GridSortDirection, GridSortItem, GridSortModel, GridValidRowModel, } from './types';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,YAAY,EACV,aAAa,EACb,aAAa,EACb,UAAU,EACV,cAAc,EACd,eAAe,EACf,mBAAmB,EACnB,oBAAoB,EACpB,SAAS,EACT,qBAAqB,EACrB,YAAY,EACZ,iBAAiB,EACjB,YAAY,EACZ,aAAa,EACb,iBAAiB,GAClB,MAAM,SAAS,CAAC"}
@@ -0,0 +1,22 @@
1
+ export declare const dataGridRootVariants: (props?: import("class-variance-authority/types").ClassProp | undefined) => string;
2
+ export declare const dataGridMainVariants: (props?: import("class-variance-authority/types").ClassProp | undefined) => string;
3
+ export declare const dataGridToolbarVariants: (props?: import("class-variance-authority/types").ClassProp | undefined) => string;
4
+ export declare const dataGridToolbarSearchVariants: (props?: import("class-variance-authority/types").ClassProp | undefined) => string;
5
+ export declare const dataGridToolbarActionsVariants: (props?: import("class-variance-authority/types").ClassProp | undefined) => string;
6
+ export declare const dataGridFooterVariants: (props?: import("class-variance-authority/types").ClassProp | undefined) => string;
7
+ export declare const dataGridOverlayVariants: (props?: ({
8
+ headerFilters?: boolean | null | undefined;
9
+ } & import("class-variance-authority/types").ClassProp) | undefined) => string;
10
+ export declare const dataGridEmptyOverlayVariants: (props?: import("class-variance-authority/types").ClassProp | undefined) => string;
11
+ export declare const dataGridHeaderCellInnerVariants: (props?: import("class-variance-authority/types").ClassProp | undefined) => string;
12
+ export declare const dataGridTableVariants: (props?: import("class-variance-authority/types").ClassProp | undefined) => string;
13
+ export declare const dataGridHeaderVariants: (props?: import("class-variance-authority/types").ClassProp | undefined) => string;
14
+ export declare const dataGridBodyVariants: (props?: import("class-variance-authority/types").ClassProp | undefined) => string;
15
+ export declare const dataGridFilterInputVariants: (props?: import("class-variance-authority/types").ClassProp | undefined) => string;
16
+ export declare const dataGridHeadVariants: (props?: import("class-variance-authority/types").ClassProp | undefined) => string;
17
+ export declare const dataGridSelectHeadVariants: (props?: import("class-variance-authority/types").ClassProp | undefined) => string;
18
+ export declare const dataGridCellVariants: (props?: import("class-variance-authority/types").ClassProp | undefined) => string;
19
+ export declare const dataGridSelectCellVariants: (props?: import("class-variance-authority/types").ClassProp | undefined) => string;
20
+ export declare const dataGridPaginationVariants: (props?: import("class-variance-authority/types").ClassProp | undefined) => string;
21
+ export declare const dataGridPaginationRangeVariants: (props?: import("class-variance-authority/types").ClassProp | undefined) => string;
22
+ //# sourceMappingURL=styles.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"styles.d.ts","sourceRoot":"","sources":["../../src/styles.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,oBAAoB,oFAEhC,CAAC;AAEF,eAAO,MAAM,oBAAoB,oFAEhC,CAAC;AAEF,eAAO,MAAM,uBAAuB,oFAEnC,CAAC;AAEF,eAAO,MAAM,6BAA6B,oFAAiC,CAAC;AAE5E,eAAO,MAAM,8BAA8B,oFAA6C,CAAC;AAEzF,eAAO,MAAM,sBAAsB,oFAElC,CAAC;AAEF,eAAO,MAAM,uBAAuB;;8EAanC,CAAC;AAEF,eAAO,MAAM,4BAA4B,oFAExC,CAAC;AAEF,eAAO,MAAM,+BAA+B,oFAAqC,CAAC;AAGlF,eAAO,MAAM,qBAAqB,oFAKjC,CAAC;AAEF,eAAO,MAAM,sBAAsB,oFAMjC,CAAC;AAEH,eAAO,MAAM,oBAAoB,oFAKhC,CAAC;AAEF,eAAO,MAAM,2BAA2B,oFAAkB,CAAC;AAE3D,eAAO,MAAM,oBAAoB,oFAM/B,CAAC;AAEH,eAAO,MAAM,0BAA0B,oFAMrC,CAAC;AAEH,eAAO,MAAM,oBAAoB,oFAM/B,CAAC;AAEH,eAAO,MAAM,0BAA0B,oFAMrC,CAAC;AAEH,eAAO,MAAM,0BAA0B,oFAA2D,CAAC;AAEnG,eAAO,MAAM,+BAA+B,oFAAuB,CAAC"}
@@ -0,0 +1,112 @@
1
+ import type { ReactNode } from 'react';
2
+ import type { ViewStyle } from 'react-native';
3
+ export type GridRowId = string | number;
4
+ export type GridValidRowModel = Record<string, unknown>;
5
+ export type GridRowsProp<R extends GridValidRowModel = GridValidRowModel> = readonly R[];
6
+ export type GridSortDirection = 'asc' | 'desc';
7
+ export type GridAlignment = 'start' | 'center' | 'end' | 'left' | 'right';
8
+ export interface GridSortItem {
9
+ field: string;
10
+ sort: GridSortDirection;
11
+ }
12
+ export type GridSortModel = GridSortItem[];
13
+ export interface GridPaginationModel {
14
+ page: number;
15
+ pageSize: number;
16
+ }
17
+ export interface GridRowSelectionModel {
18
+ type: 'include' | 'exclude';
19
+ ids: Set<GridRowId>;
20
+ }
21
+ export interface GridFilterItem {
22
+ field: string;
23
+ value: string;
24
+ }
25
+ export type GridFilterModel = GridFilterItem[];
26
+ export interface GridRenderCellParams<R extends GridValidRowModel = GridValidRowModel> {
27
+ value: unknown;
28
+ row: R;
29
+ field: string;
30
+ id: GridRowId;
31
+ }
32
+ export interface GridColDef<R extends GridValidRowModel = GridValidRowModel> {
33
+ field: string;
34
+ headerName?: string;
35
+ width?: number;
36
+ minWidth?: number;
37
+ flex?: number;
38
+ /**
39
+ * Logical cell-content alignment.
40
+ *
41
+ * `left` and `right` are deprecated compatibility aliases for `start` and `end`.
42
+ * @default 'start'
43
+ */
44
+ align?: GridAlignment;
45
+ /**
46
+ * Logical header-content alignment. Defaults to `align`.
47
+ *
48
+ * `left` and `right` are deprecated compatibility aliases for `start` and `end`.
49
+ */
50
+ headerAlign?: GridAlignment;
51
+ sortable?: boolean;
52
+ filterable?: boolean;
53
+ type?: 'string';
54
+ valueGetter?: (value: unknown, row: R, col: GridColDef<R>) => unknown;
55
+ valueFormatter?: (value: unknown, row: R, col: GridColDef<R>) => ReactNode | string;
56
+ renderCell?: (params: GridRenderCellParams<R>) => ReactNode;
57
+ renderHeader?: () => ReactNode;
58
+ }
59
+ export type GridPaginationMode = 'client' | 'server';
60
+ export interface DataGridProps<R extends GridValidRowModel = GridValidRowModel> {
61
+ rows: GridRowsProp<R>;
62
+ columns: readonly GridColDef<R>[];
63
+ getRowId?: (row: R) => GridRowId;
64
+ /** Shows the loading overlay, disables pagination, and suppresses the empty state. */
65
+ loading?: boolean;
66
+ checkboxSelection?: boolean;
67
+ hideFooter?: boolean;
68
+ hideFooterPagination?: boolean;
69
+ disableColumnSorting?: boolean;
70
+ paginationMode?: GridPaginationMode;
71
+ sortingMode?: GridPaginationMode;
72
+ rowCount?: number;
73
+ sortModel?: GridSortModel;
74
+ defaultSortModel?: GridSortModel;
75
+ onSortModelChange?: (model: GridSortModel) => void;
76
+ paginationModel?: GridPaginationModel;
77
+ defaultPaginationModel?: GridPaginationModel;
78
+ onPaginationModelChange?: (model: GridPaginationModel) => void;
79
+ /** Options for the footer rows-per-page control. Defaults to 25, 50, 100. */
80
+ pageSizeOptions?: readonly (number | {
81
+ value: number;
82
+ label: string;
83
+ })[];
84
+ rowSelectionModel?: GridRowSelectionModel;
85
+ defaultRowSelectionModel?: GridRowSelectionModel;
86
+ onRowSelectionModelChange?: (model: GridRowSelectionModel) => void;
87
+ filterModel?: GridFilterModel;
88
+ defaultFilterModel?: GridFilterModel;
89
+ onFilterModelChange?: (model: GridFilterModel) => void;
90
+ quickFilter?: string;
91
+ defaultQuickFilter?: string;
92
+ onQuickFilterChange?: (value: string) => void;
93
+ /** Shows the toolbar search field. Off by default, same as MUI Community. */
94
+ showToolbar?: boolean;
95
+ /** Consumer-owned toolbar controls beside search (export, density, toggles, etc.). Wire actions to app state that drives grid props — DataGrid does not ship toolbar buttons. */
96
+ toolbarActions?: ReactNode;
97
+ headerFilters?: boolean;
98
+ /** Replaces the default centered "No rows" message. Shown when `rows` is empty and not loading. */
99
+ noRowsOverlay?: ReactNode;
100
+ /** Replaces the default skeleton rows shown when `loading` is true. */
101
+ loadingOverlay?: ReactNode;
102
+ className?: string;
103
+ style?: ViewStyle;
104
+ label?: string;
105
+ 'aria-label'?: string;
106
+ 'aria-labelledby'?: string;
107
+ }
108
+ export declare const SELECT_COLUMN_ID = "__select__";
109
+ export declare const DEFAULT_PAGE_SIZE_OPTIONS: readonly [25, 50, 100];
110
+ export declare const DEFAULT_PAGINATION_MODEL: GridPaginationModel;
111
+ export declare const EMPTY_SELECTION: GridRowSelectionModel;
112
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,54 @@
1
+ import { type ColumnFiltersState, type PaginationState, type RowSelectionState, type SortingState } from '@tanstack/react-table';
2
+ import type { GridColDef, GridFilterModel, GridPaginationModel, GridRowId, GridRowSelectionModel, GridRowsProp, GridSortModel, GridValidRowModel } from './types';
3
+ export declare function sortModelToSortingState(model: GridSortModel): SortingState;
4
+ export declare function sortingStateToSortModel(state: SortingState): GridSortModel;
5
+ export declare function paginationModelToState(model: GridPaginationModel): PaginationState;
6
+ export declare function paginationStateToModel(state: PaginationState): GridPaginationModel;
7
+ export declare function filterModelToColumnFilters(model: GridFilterModel): ColumnFiltersState;
8
+ export declare function columnFiltersToFilterModel(state: ColumnFiltersState): GridFilterModel;
9
+ export declare function selectionModelToRowSelection(model: GridRowSelectionModel, allIds: GridRowId[]): RowSelectionState;
10
+ export declare function rowSelectionToModel(state: RowSelectionState, previousModel: GridRowSelectionModel, allIds: GridRowId[]): GridRowSelectionModel;
11
+ export declare function resolveRowId<R extends GridValidRowModel>(row: R, getRowId?: (row: R) => GridRowId): GridRowId;
12
+ interface UseDataGridTableParams<R extends GridValidRowModel> {
13
+ rows: GridRowsProp<R>;
14
+ columns: readonly GridColDef<R>[];
15
+ getRowId?: (row: R) => GridRowId;
16
+ checkboxSelection: boolean;
17
+ disableColumnSorting: boolean;
18
+ paginationMode: 'client' | 'server';
19
+ sortingMode: 'client' | 'server';
20
+ rowCount?: number;
21
+ sortModel: GridSortModel;
22
+ onSortModelChange: (model: GridSortModel) => void;
23
+ paginationModel: GridPaginationModel;
24
+ onPaginationModelChange: (model: GridPaginationModel) => void;
25
+ filterModel: GridFilterModel;
26
+ onFilterModelChange: (model: GridFilterModel) => void;
27
+ quickFilter: string;
28
+ onQuickFilterChange: (value: string) => void;
29
+ rowSelectionModel: GridRowSelectionModel;
30
+ onRowSelectionModelChange: (model: GridRowSelectionModel) => void;
31
+ }
32
+ export declare function useDataGridTable<R extends GridValidRowModel>({ rows, columns, getRowId, checkboxSelection, disableColumnSorting, paginationMode, sortingMode, rowCount, sortModel, onSortModelChange, paginationModel, onPaginationModelChange, filterModel, onFilterModelChange, quickFilter, onQuickFilterChange, rowSelectionModel, onRowSelectionModelChange, }: UseDataGridTableParams<R>): {
33
+ table: import("@tanstack/react-table").ReactTable<{
34
+ columnFilteringFeature: import("@tanstack/react-table").TableFeature;
35
+ globalFilteringFeature: import("@tanstack/react-table").TableFeature;
36
+ rowSortingFeature: import("@tanstack/react-table").TableFeature;
37
+ rowPaginationFeature: import("@tanstack/react-table").TableFeature;
38
+ rowSelectionFeature: import("@tanstack/react-table").TableFeature;
39
+ filteredRowModel: (table: import("@tanstack/react-table").Table<any, any>) => () => import("@tanstack/react-table").RowModel<any, any>;
40
+ sortedRowModel: (table: import("@tanstack/react-table").Table<any, any>) => () => import("@tanstack/react-table").RowModel<any, any>;
41
+ paginatedRowModel: (table: import("@tanstack/react-table").Table<any, any>) => () => import("@tanstack/react-table").RowModel<any, any>;
42
+ filterFns: {
43
+ includesString: import("@tanstack/react-table").CreatedFilterFn<any, any>;
44
+ };
45
+ sortFns: {
46
+ alphanumeric: import("@tanstack/react-table").CreatedSortFn<any, any>;
47
+ text: import("@tanstack/react-table").CreatedSortFn<any, any>;
48
+ };
49
+ }, R, import("@tanstack/react-table").TableState_ColumnFiltering & import("@tanstack/react-table").TableState_GlobalFiltering & import("@tanstack/react-table").TableState_RowPagination & import("@tanstack/react-table").TableState_RowSelection & import("@tanstack/react-table").TableState_RowSorting>;
50
+ setQuickFilter: (value: string) => void;
51
+ setColumnFilter: (field: string, value: string) => void;
52
+ };
53
+ export {};
54
+ //# sourceMappingURL=useDataGridTable.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useDataGridTable.d.ts","sourceRoot":"","sources":["../../src/useDataGridTable.ts"],"names":[],"mappings":"AACA,OAAO,EAcL,KAAK,kBAAkB,EACvB,KAAK,eAAe,EACpB,KAAK,iBAAiB,EACtB,KAAK,YAAY,EAClB,MAAM,uBAAuB,CAAC;AAG/B,OAAO,KAAK,EACV,UAAU,EACV,eAAe,EACf,mBAAmB,EACnB,SAAS,EACT,qBAAqB,EACrB,YAAY,EACZ,aAAa,EACb,iBAAiB,EAClB,MAAM,SAAS,CAAC;AAgBjB,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,aAAa,GAAG,YAAY,CAE1E;AAED,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,YAAY,GAAG,aAAa,CAQ1E;AAED,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,mBAAmB,GAAG,eAAe,CAElF;AAED,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,eAAe,GAAG,mBAAmB,CAElF;AAeD,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,eAAe,GAAG,kBAAkB,CAIrF;AAED,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,kBAAkB,GAAG,eAAe,CAIrF;AAMD,wBAAgB,4BAA4B,CAC1C,KAAK,EAAE,qBAAqB,EAC5B,MAAM,EAAE,SAAS,EAAE,GAClB,iBAAiB,CAcnB;AAED,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,iBAAiB,EACxB,aAAa,EAAE,qBAAqB,EACpC,MAAM,EAAE,SAAS,EAAE,GAClB,qBAAqB,CA4BvB;AAED,wBAAgB,YAAY,CAAC,CAAC,SAAS,iBAAiB,EACtD,GAAG,EAAE,CAAC,EACN,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,SAAS,GAC/B,SAAS,CAcX;AAED,UAAU,sBAAsB,CAAC,CAAC,SAAS,iBAAiB;IAC1D,IAAI,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC;IACtB,OAAO,EAAE,SAAS,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC;IAClC,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,SAAS,CAAC;IACjC,iBAAiB,EAAE,OAAO,CAAC;IAC3B,oBAAoB,EAAE,OAAO,CAAC;IAC9B,cAAc,EAAE,QAAQ,GAAG,QAAQ,CAAC;IACpC,WAAW,EAAE,QAAQ,GAAG,QAAQ,CAAC;IACjC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,aAAa,CAAC;IACzB,iBAAiB,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI,CAAC;IAClD,eAAe,EAAE,mBAAmB,CAAC;IACrC,uBAAuB,EAAE,CAAC,KAAK,EAAE,mBAAmB,KAAK,IAAI,CAAC;IAC9D,WAAW,EAAE,eAAe,CAAC;IAC7B,mBAAmB,EAAE,CAAC,KAAK,EAAE,eAAe,KAAK,IAAI,CAAC;IACtD,WAAW,EAAE,MAAM,CAAC;IACpB,mBAAmB,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7C,iBAAiB,EAAE,qBAAqB,CAAC;IACzC,yBAAyB,EAAE,CAAC,KAAK,EAAE,qBAAqB,KAAK,IAAI,CAAC;CACnE;AAED,wBAAgB,gBAAgB,CAAC,CAAC,SAAS,iBAAiB,EAAE,EAC5D,IAAI,EACJ,OAAO,EACP,QAAQ,EACR,iBAAiB,EACjB,oBAAoB,EACpB,cAAc,EACd,WAAW,EACX,QAAQ,EACR,SAAS,EACT,iBAAiB,EACjB,eAAe,EACf,uBAAuB,EACvB,WAAW,EACX,mBAAmB,EACnB,WAAW,EACX,mBAAmB,EACnB,iBAAiB,EACjB,yBAAyB,GAC1B,EAAE,sBAAsB,CAAC,CAAC,CAAC;;;;;;;;;;;;;;;;;;4BA2BK,MAAM;6BAKL,MAAM,SAAS,MAAM;EAoDtD"}
package/package.json ADDED
@@ -0,0 +1,87 @@
1
+ {
2
+ "name": "@cdx-ui/data-grid",
3
+ "version": "0.0.1-beta.185",
4
+ "license": "MIT",
5
+ "repository": {
6
+ "type": "git",
7
+ "url": "https://github.com/dfh-candescent-ui/ui-component-framework",
8
+ "directory": "packages/data-grid"
9
+ },
10
+ "sideEffects": false,
11
+ "exports": {
12
+ ".": {
13
+ "react-native": "./src/index.ts",
14
+ "types": "./lib/typescript/index.d.ts",
15
+ "import": "./lib/module/index.js",
16
+ "require": "./lib/commonjs/index.js",
17
+ "default": "./lib/module/index.js"
18
+ }
19
+ },
20
+ "main": "lib/commonjs/index.js",
21
+ "module": "lib/module/index.js",
22
+ "source": "src/index.ts",
23
+ "react-native": "src/index.ts",
24
+ "types": "lib/typescript/index.d.ts",
25
+ "files": [
26
+ "lib",
27
+ "src",
28
+ "coverage.svg"
29
+ ],
30
+ "dependencies": {
31
+ "@tanstack/react-table": "9.2.4",
32
+ "@cdx-ui/icons": "0.0.1-beta.185",
33
+ "@cdx-ui/utils": "0.0.1-beta.185",
34
+ "@cdx-ui/components": "0.0.1-beta.185",
35
+ "@cdx-ui/primitives": "0.0.1-beta.185"
36
+ },
37
+ "peerDependencies": {
38
+ "react": "^18.2.0 || ^19.0.0",
39
+ "react-native": ">=0.76.0",
40
+ "react-native-web": ">=0.19.0"
41
+ },
42
+ "peerDependenciesMeta": {
43
+ "react-native": {
44
+ "optional": true
45
+ },
46
+ "react-native-web": {
47
+ "optional": true
48
+ }
49
+ },
50
+ "devDependencies": {
51
+ "@types/react": "19.1.17",
52
+ "react": "19.1.0",
53
+ "react-native": "*",
54
+ "react-native-builder-bob": "*",
55
+ "react-native-web": "*",
56
+ "typescript": "*"
57
+ },
58
+ "nx": {
59
+ "tags": [
60
+ "type:lib",
61
+ "scope:data-grid"
62
+ ]
63
+ },
64
+ "react-native-builder-bob": {
65
+ "source": "src",
66
+ "output": "lib",
67
+ "exclude": "**/{__tests__/**,__fixtures__/**,__mocks__/**,*.test.ts,*.test.tsx,*.spec.ts,*.spec.tsx}",
68
+ "targets": [
69
+ "commonjs",
70
+ "module",
71
+ [
72
+ "typescript",
73
+ {
74
+ "project": "tsconfig.build.json"
75
+ }
76
+ ]
77
+ ]
78
+ },
79
+ "publishConfig": {
80
+ "access": "public"
81
+ },
82
+ "scripts": {
83
+ "build": "bob build",
84
+ "lint": "eslint src/",
85
+ "test": "node ../../scripts/split-jest-coverage.mjs data-grid-rntl data-grid-axe -- --config ../../jest.config.js"
86
+ }
87
+ }