@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,61 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.dataGridToolbarVariants = exports.dataGridToolbarSearchVariants = exports.dataGridToolbarActionsVariants = exports.dataGridTableVariants = exports.dataGridSelectHeadVariants = exports.dataGridSelectCellVariants = exports.dataGridRootVariants = exports.dataGridPaginationVariants = exports.dataGridPaginationRangeVariants = exports.dataGridOverlayVariants = exports.dataGridMainVariants = exports.dataGridHeaderVariants = exports.dataGridHeaderCellInnerVariants = exports.dataGridHeadVariants = exports.dataGridFooterVariants = exports.dataGridFilterInputVariants = exports.dataGridEmptyOverlayVariants = exports.dataGridCellVariants = exports.dataGridBodyVariants = void 0;
7
+ var _reactNative = require("react-native");
8
+ var _utils = require("@cdx-ui/utils");
9
+ const dataGridRootVariants = exports.dataGridRootVariants = (0, _utils.cva)('h-[300px] w-full min-w-0 max-w-full flex-col overflow-hidden rounded-2xl border border-stroke-secondary bg-surface-primary');
10
+ const dataGridMainVariants = exports.dataGridMainVariants = (0, _utils.cva)('relative min-h-0 w-full min-w-0 max-w-full flex-1 overflow-auto');
11
+ const dataGridToolbarVariants = exports.dataGridToolbarVariants = (0, _utils.cva)('shrink-0 flex-row items-center gap-3 border-b border-stroke-secondary px-4 py-4');
12
+ const dataGridToolbarSearchVariants = exports.dataGridToolbarSearchVariants = (0, _utils.cva)('max-w-80 min-w-0 flex-1');
13
+ const dataGridToolbarActionsVariants = exports.dataGridToolbarActionsVariants = (0, _utils.cva)('ms-auto flex-row items-center gap-3');
14
+ const dataGridFooterVariants = exports.dataGridFooterVariants = (0, _utils.cva)('min-h-[52px] shrink-0 flex-row items-center justify-end gap-2 border-t border-stroke-secondary py-0 pe-0.5 ps-6');
15
+ const dataGridOverlayVariants = exports.dataGridOverlayVariants = (0, _utils.cva)('absolute inset-x-0 bottom-0 items-center justify-center bg-surface-primary', {
16
+ variants: {
17
+ headerFilters: {
18
+ true: 'top-24',
19
+ false: 'top-12'
20
+ }
21
+ },
22
+ defaultVariants: {
23
+ headerFilters: false
24
+ }
25
+ });
26
+ const dataGridEmptyOverlayVariants = exports.dataGridEmptyOverlayVariants = (0, _utils.cva)('pointer-events-none absolute inset-0 items-center justify-center');
27
+ const dataGridHeaderCellInnerVariants = exports.dataGridHeaderCellInnerVariants = (0, _utils.cva)('flex-row items-center gap-3');
28
+
29
+ // Collapsed table borders scroll away from sticky headers; separated cell borders stick.
30
+ const dataGridTableVariants = exports.dataGridTableVariants = (0, _utils.cva)(_reactNative.Platform.select({
31
+ web: 'border-separate border-spacing-0',
32
+ default: ''
33
+ }));
34
+ const dataGridHeaderVariants = exports.dataGridHeaderVariants = (0, _utils.cva)(['bg-neutral-50', _reactNative.Platform.select({
35
+ web: 'sticky top-0 z-20',
36
+ default: ''
37
+ })]);
38
+ const dataGridBodyVariants = exports.dataGridBodyVariants = (0, _utils.cva)(_reactNative.Platform.select({
39
+ web: '[&_tr:last-child>*]:border-b-0',
40
+ default: ''
41
+ }));
42
+ const dataGridFilterInputVariants = exports.dataGridFilterInputVariants = (0, _utils.cva)('min-w-24');
43
+ const dataGridHeadVariants = exports.dataGridHeadVariants = (0, _utils.cva)(['h-12 bg-neutral-50 px-4', _reactNative.Platform.select({
44
+ web: 'border-b border-stroke-secondary',
45
+ default: ''
46
+ })]);
47
+ const dataGridSelectHeadVariants = exports.dataGridSelectHeadVariants = (0, _utils.cva)(['w-14 bg-neutral-50 px-4', _reactNative.Platform.select({
48
+ web: 'border-b border-stroke-secondary',
49
+ default: ''
50
+ })]);
51
+ const dataGridCellVariants = exports.dataGridCellVariants = (0, _utils.cva)(['h-12 px-4', _reactNative.Platform.select({
52
+ web: 'border-b border-stroke-secondary',
53
+ default: ''
54
+ })]);
55
+ const dataGridSelectCellVariants = exports.dataGridSelectCellVariants = (0, _utils.cva)(['w-14 px-4', _reactNative.Platform.select({
56
+ web: 'border-b border-stroke-secondary',
57
+ default: ''
58
+ })]);
59
+ const dataGridPaginationVariants = exports.dataGridPaginationVariants = (0, _utils.cva)('flex-row flex-wrap items-center justify-end gap-0');
60
+ const dataGridPaginationRangeVariants = exports.dataGridPaginationRangeVariants = (0, _utils.cva)('mx-5 shrink-0');
61
+ //# sourceMappingURL=styles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_reactNative","require","_utils","dataGridRootVariants","exports","cva","dataGridMainVariants","dataGridToolbarVariants","dataGridToolbarSearchVariants","dataGridToolbarActionsVariants","dataGridFooterVariants","dataGridOverlayVariants","variants","headerFilters","true","false","defaultVariants","dataGridEmptyOverlayVariants","dataGridHeaderCellInnerVariants","dataGridTableVariants","Platform","select","web","default","dataGridHeaderVariants","dataGridBodyVariants","dataGridFilterInputVariants","dataGridHeadVariants","dataGridSelectHeadVariants","dataGridCellVariants","dataGridSelectCellVariants","dataGridPaginationVariants","dataGridPaginationRangeVariants"],"sourceRoot":"../../src","sources":["styles.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.SELECT_COLUMN_ID = exports.EMPTY_SELECTION = exports.DEFAULT_PAGINATION_MODEL = exports.DEFAULT_PAGE_SIZE_OPTIONS = void 0;
7
+ const SELECT_COLUMN_ID = exports.SELECT_COLUMN_ID = '__select__';
8
+ const DEFAULT_PAGE_SIZE_OPTIONS = exports.DEFAULT_PAGE_SIZE_OPTIONS = [25, 50, 100];
9
+ const DEFAULT_PAGINATION_MODEL = exports.DEFAULT_PAGINATION_MODEL = {
10
+ page: 0,
11
+ pageSize: 25
12
+ };
13
+ const EMPTY_SELECTION = exports.EMPTY_SELECTION = {
14
+ type: 'include',
15
+ ids: new Set()
16
+ };
17
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["SELECT_COLUMN_ID","exports","DEFAULT_PAGE_SIZE_OPTIONS","DEFAULT_PAGINATION_MODEL","page","pageSize","EMPTY_SELECTION","type","ids","Set"],"sourceRoot":"../../src","sources":["types.ts"],"mappings":";;;;;;AAwHO,MAAMA,gBAAgB,GAAAC,OAAA,CAAAD,gBAAA,GAAG,YAAY;AAErC,MAAME,yBAAyB,GAAAD,OAAA,CAAAC,yBAAA,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,GAAG,CAAU;AAExD,MAAMC,wBAA6C,GAAAF,OAAA,CAAAE,wBAAA,GAAG;EAC3DC,IAAI,EAAE,CAAC;EACPC,QAAQ,EAAE;AACZ,CAAC;AAEM,MAAMC,eAAsC,GAAAL,OAAA,CAAAK,eAAA,GAAG;EACpDC,IAAI,EAAE,SAAS;EACfC,GAAG,EAAE,IAAIC,GAAG,CAAC;AACf,CAAC","ignoreList":[]}
@@ -0,0 +1,253 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.columnFiltersToFilterModel = columnFiltersToFilterModel;
7
+ exports.filterModelToColumnFilters = filterModelToColumnFilters;
8
+ exports.paginationModelToState = paginationModelToState;
9
+ exports.paginationStateToModel = paginationStateToModel;
10
+ exports.resolveRowId = resolveRowId;
11
+ exports.rowSelectionToModel = rowSelectionToModel;
12
+ exports.selectionModelToRowSelection = selectionModelToRowSelection;
13
+ exports.sortModelToSortingState = sortModelToSortingState;
14
+ exports.sortingStateToSortModel = sortingStateToSortModel;
15
+ exports.useDataGridTable = useDataGridTable;
16
+ var _react = require("react");
17
+ var _reactTable = require("@tanstack/react-table");
18
+ var _selectColumn = require("./adapter/selectColumn");
19
+ var _columns = require("./adapter/columns");
20
+ var _types = require("./types");
21
+ const features = (0, _reactTable.tableFeatures)({
22
+ columnFilteringFeature: _reactTable.columnFilteringFeature,
23
+ globalFilteringFeature: _reactTable.globalFilteringFeature,
24
+ rowSortingFeature: _reactTable.rowSortingFeature,
25
+ rowPaginationFeature: _reactTable.rowPaginationFeature,
26
+ rowSelectionFeature: _reactTable.rowSelectionFeature,
27
+ filteredRowModel: (0, _reactTable.createFilteredRowModel)(),
28
+ sortedRowModel: (0, _reactTable.createSortedRowModel)(),
29
+ paginatedRowModel: (0, _reactTable.createPaginatedRowModel)(),
30
+ filterFns: {
31
+ includesString: _reactTable.filterFn_includesString
32
+ },
33
+ sortFns: {
34
+ alphanumeric: _reactTable.sortFn_alphanumeric,
35
+ text: _reactTable.sortFn_text
36
+ }
37
+ });
38
+ function sortModelToSortingState(model) {
39
+ return model.map(item => ({
40
+ id: item.field,
41
+ desc: item.sort === 'desc'
42
+ }));
43
+ }
44
+ function sortingStateToSortModel(state) {
45
+ return state.filter(item => item.id !== _types.SELECT_COLUMN_ID).slice(0, 1).map(item => ({
46
+ field: item.id,
47
+ sort: item.desc ? 'desc' : 'asc'
48
+ }));
49
+ }
50
+ function paginationModelToState(model) {
51
+ return {
52
+ pageIndex: model.page,
53
+ pageSize: model.pageSize
54
+ };
55
+ }
56
+ function paginationStateToModel(state) {
57
+ return {
58
+ page: state.pageIndex,
59
+ pageSize: state.pageSize
60
+ };
61
+ }
62
+ function columnFilterValueToString(value) {
63
+ if (typeof value === 'string') {
64
+ return value;
65
+ }
66
+ if (value == null) {
67
+ return '';
68
+ }
69
+ if (typeof value === 'number' || typeof value === 'boolean' || typeof value === 'bigint') {
70
+ return String(value);
71
+ }
72
+ return '';
73
+ }
74
+ function filterModelToColumnFilters(model) {
75
+ return model.filter(item => item.value.trim().length > 0).map(item => ({
76
+ id: item.field,
77
+ value: item.value
78
+ }));
79
+ }
80
+ function columnFiltersToFilterModel(state) {
81
+ return state.filter(item => item.id !== _types.SELECT_COLUMN_ID).map(item => ({
82
+ field: item.id,
83
+ value: columnFilterValueToString(item.value)
84
+ }));
85
+ }
86
+ function selectionIdKey(id) {
87
+ return `${typeof id}:${String(id)}`;
88
+ }
89
+ function selectionModelToRowSelection(model, allIds) {
90
+ const selected = new Set();
91
+ if (model.type === 'include') {
92
+ for (const id of model.ids) {
93
+ selected.add(selectionIdKey(id));
94
+ }
95
+ } else {
96
+ for (const id of allIds) {
97
+ if (!model.ids.has(id)) {
98
+ selected.add(selectionIdKey(id));
99
+ }
100
+ }
101
+ }
102
+ return Object.fromEntries([...selected].map(id => [id, true]));
103
+ }
104
+ function rowSelectionToModel(state, previousModel, allIds) {
105
+ const currentIdsByKey = new Map();
106
+ for (const id of allIds) {
107
+ currentIdsByKey.set(selectionIdKey(id), id);
108
+ }
109
+ const selectedKeys = new Set(Object.keys(state).filter(key => state[key]));
110
+ const ids = new Set(previousModel.ids);
111
+ if (previousModel.type === 'exclude') {
112
+ for (const [key, id] of currentIdsByKey) {
113
+ if (selectedKeys.has(key)) {
114
+ ids.delete(id);
115
+ } else {
116
+ ids.add(id);
117
+ }
118
+ }
119
+ return {
120
+ type: 'exclude',
121
+ ids
122
+ };
123
+ }
124
+ for (const [key, id] of currentIdsByKey) {
125
+ if (selectedKeys.has(key)) {
126
+ ids.add(id);
127
+ } else {
128
+ ids.delete(id);
129
+ }
130
+ }
131
+ return {
132
+ type: 'include',
133
+ ids
134
+ };
135
+ }
136
+ function resolveRowId(row, getRowId) {
137
+ if (getRowId) {
138
+ return getRowId(row);
139
+ }
140
+ const id = row.id;
141
+ if (typeof id === 'string' || typeof id === 'number') {
142
+ return id;
143
+ }
144
+ if (__DEV__) {
145
+ console.warn('[DataGrid] Each row needs an `id` or a `getRowId` function. Missing ids break selection.');
146
+ }
147
+ return '';
148
+ }
149
+ function useDataGridTable({
150
+ rows,
151
+ columns,
152
+ getRowId,
153
+ checkboxSelection,
154
+ disableColumnSorting,
155
+ paginationMode,
156
+ sortingMode,
157
+ rowCount,
158
+ sortModel,
159
+ onSortModelChange,
160
+ paginationModel,
161
+ onPaginationModelChange,
162
+ filterModel,
163
+ onFilterModelChange,
164
+ quickFilter,
165
+ onQuickFilterChange,
166
+ rowSelectionModel,
167
+ onRowSelectionModelChange
168
+ }) {
169
+ const data = (0, _react.useMemo)(() => [...rows], [rows]);
170
+ const allIds = (0, _react.useMemo)(() => data.map(row => resolveRowId(row, getRowId)), [data, getRowId]);
171
+ const columnDefs = (0, _react.useMemo)(() => {
172
+ const mapped = columns.map(col => {
173
+ const def = (0, _columns.gridColDefToColumnDef)(col);
174
+ if (disableColumnSorting) {
175
+ def.enableSorting = false;
176
+ }
177
+ return def;
178
+ });
179
+ return checkboxSelection ? [(0, _selectColumn.createSelectColumn)(), ...mapped] : mapped;
180
+ }, [checkboxSelection, columns, disableColumnSorting]);
181
+ const sortingState = (0, _react.useMemo)(() => sortModelToSortingState(sortModel), [sortModel]);
182
+ const paginationState = (0, _react.useMemo)(() => paginationModelToState(paginationModel), [paginationModel]);
183
+ const columnFilterState = (0, _react.useMemo)(() => filterModelToColumnFilters(filterModel), [filterModel]);
184
+ const rowSelectionState = (0, _react.useMemo)(() => selectionModelToRowSelection(rowSelectionModel, allIds), [rowSelectionModel, allIds]);
185
+ const resetPaginationPage = () => {
186
+ onPaginationModelChange({
187
+ ...paginationModel,
188
+ page: 0
189
+ });
190
+ };
191
+ const setQuickFilter = value => {
192
+ onQuickFilterChange(value);
193
+ resetPaginationPage();
194
+ };
195
+ const setColumnFilter = (field, value) => {
196
+ const next = filterModel.filter(item => item.field !== field);
197
+ if (value.trim().length > 0) {
198
+ next.push({
199
+ field,
200
+ value
201
+ });
202
+ }
203
+ onFilterModelChange(next);
204
+ resetPaginationPage();
205
+ };
206
+ const table = (0, _reactTable.useTable)({
207
+ features,
208
+ columns: columnDefs,
209
+ data,
210
+ getRowId: row => selectionIdKey(resolveRowId(row, getRowId)),
211
+ enableMultiSort: false,
212
+ enableMultiRowSelection: true,
213
+ manualPagination: paginationMode === 'server',
214
+ manualSorting: sortingMode === 'server',
215
+ autoResetPageIndex: false,
216
+ rowCount: paginationMode === 'server' ? rowCount : undefined,
217
+ state: {
218
+ sorting: sortingState,
219
+ pagination: paginationState,
220
+ columnFilters: columnFilterState,
221
+ globalFilter: quickFilter,
222
+ rowSelection: rowSelectionState
223
+ },
224
+ onSortingChange: updater => {
225
+ const next = (0, _columns.applyUpdater)(updater, sortingState);
226
+ onSortModelChange(sortingStateToSortModel(next));
227
+ resetPaginationPage();
228
+ },
229
+ onPaginationChange: updater => {
230
+ const next = (0, _columns.applyUpdater)(updater, paginationState);
231
+ onPaginationModelChange(paginationStateToModel(next));
232
+ },
233
+ onColumnFiltersChange: updater => {
234
+ const next = (0, _columns.applyUpdater)(updater, columnFilterState);
235
+ onFilterModelChange(columnFiltersToFilterModel(next));
236
+ resetPaginationPage();
237
+ },
238
+ onGlobalFilterChange: updater => {
239
+ const next = (0, _columns.applyUpdater)(updater, quickFilter);
240
+ setQuickFilter(typeof next === 'string' ? next : '');
241
+ },
242
+ onRowSelectionChange: updater => {
243
+ const next = (0, _columns.applyUpdater)(updater, rowSelectionState);
244
+ onRowSelectionModelChange(rowSelectionToModel(next, rowSelectionModel, allIds));
245
+ }
246
+ });
247
+ return {
248
+ table,
249
+ setQuickFilter,
250
+ setColumnFilter
251
+ };
252
+ }
253
+ //# sourceMappingURL=useDataGridTable.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_react","require","_reactTable","_selectColumn","_columns","_types","features","tableFeatures","columnFilteringFeature","globalFilteringFeature","rowSortingFeature","rowPaginationFeature","rowSelectionFeature","filteredRowModel","createFilteredRowModel","sortedRowModel","createSortedRowModel","paginatedRowModel","createPaginatedRowModel","filterFns","includesString","filterFn_includesString","sortFns","alphanumeric","sortFn_alphanumeric","text","sortFn_text","sortModelToSortingState","model","map","item","id","field","desc","sort","sortingStateToSortModel","state","filter","SELECT_COLUMN_ID","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","useMemo","columnDefs","mapped","col","def","gridColDefToColumnDef","enableSorting","createSelectColumn","sortingState","paginationState","columnFilterState","rowSelectionState","resetPaginationPage","setQuickFilter","setColumnFilter","next","push","table","useTable","enableMultiSort","enableMultiRowSelection","manualPagination","manualSorting","autoResetPageIndex","undefined","sorting","pagination","columnFilters","globalFilter","rowSelection","onSortingChange","updater","applyUpdater","onPaginationChange","onColumnFiltersChange","onGlobalFilterChange","onRowSelectionChange"],"sourceRoot":"../../src","sources":["useDataGridTable.ts"],"mappings":"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","ignoreList":[]}