@rufous/ui 0.1.67 → 0.1.69
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/DataGrid.cjs +114 -56
- package/dist/DataGrid/DataGrid.d.cts +1 -1
- package/dist/DataGrid/DataGrid.d.ts +1 -1
- package/dist/DataGrid/DataGrid.js +1 -1
- package/dist/DataGrid/index.cjs +114 -56
- package/dist/DataGrid/index.js +1 -1
- package/dist/DataGrid/types.d.cts +4 -2
- package/dist/DataGrid/types.d.ts +4 -2
- package/dist/Dialogs/BaseDialog.js +4 -4
- package/dist/Dialogs/index.js +4 -4
- package/dist/{chunk-IKG2B6JQ.js → chunk-LG4EJGMI.js} +114 -56
- package/dist/main.cjs +114 -56
- package/dist/main.js +7 -7
- package/package.json +1 -1
|
@@ -36,24 +36,38 @@ module.exports = __toCommonJS(DataGrid_exports);
|
|
|
36
36
|
var import_react = __toESM(require("react"), 1);
|
|
37
37
|
var import_lucide_react = require("lucide-react");
|
|
38
38
|
function DataGrid({
|
|
39
|
-
columns:
|
|
39
|
+
columns: initialColumnsProp,
|
|
40
40
|
data,
|
|
41
41
|
actions,
|
|
42
42
|
pageSize: initialPageSize = 10,
|
|
43
43
|
pageSizeOptions = [5, 10, 25, 50],
|
|
44
44
|
title
|
|
45
45
|
}) {
|
|
46
|
-
const [
|
|
46
|
+
const [columnOverrides, setColumnOverrides] = (0, import_react.useState)({});
|
|
47
|
+
const resolvedColumns = (0, import_react.useMemo)(() => {
|
|
48
|
+
return initialColumnsProp.map((col) => {
|
|
49
|
+
const field = String(col.field || col.key || "");
|
|
50
|
+
const override = columnOverrides[field] || {};
|
|
51
|
+
return {
|
|
52
|
+
...col,
|
|
53
|
+
field,
|
|
54
|
+
headerName: col.headerName || col.header || "",
|
|
55
|
+
hidden: override.hidden !== void 0 ? override.hidden : col.hidden,
|
|
56
|
+
pinned: override.pinned !== void 0 ? override.pinned : col.pinned
|
|
57
|
+
};
|
|
58
|
+
});
|
|
59
|
+
}, [initialColumnsProp, columnOverrides]);
|
|
47
60
|
const [columnWidths, setColumnWidths] = (0, import_react.useState)(() => {
|
|
48
61
|
const widths = {};
|
|
49
|
-
|
|
62
|
+
initialColumnsProp.forEach((col) => {
|
|
63
|
+
const field = String(col.field || col.key || "");
|
|
50
64
|
const w = col.width || 200;
|
|
51
|
-
widths[
|
|
65
|
+
widths[field] = typeof w === "number" ? w : parseInt(w);
|
|
52
66
|
});
|
|
53
67
|
return widths;
|
|
54
68
|
});
|
|
55
69
|
const [pageSize, setPageSize] = (0, import_react.useState)(initialPageSize);
|
|
56
|
-
const [
|
|
70
|
+
const [sortField, setSortField] = (0, import_react.useState)(null);
|
|
57
71
|
const [sortDirection, setSortDirection] = (0, import_react.useState)(null);
|
|
58
72
|
const [filterText, setFilterText] = (0, import_react.useState)("");
|
|
59
73
|
const [currentPage, setCurrentPage] = (0, import_react.useState)(1);
|
|
@@ -66,14 +80,15 @@ function DataGrid({
|
|
|
66
80
|
const menuRef = (0, import_react.useRef)(null);
|
|
67
81
|
const [showManageColumns, setShowManageColumns] = (0, import_react.useState)(false);
|
|
68
82
|
const [showAdvancedFilter, setShowAdvancedFilter] = (0, import_react.useState)(false);
|
|
83
|
+
const initialFilterCol = String(initialColumnsProp[0]?.field || initialColumnsProp[0]?.key || "");
|
|
69
84
|
const [advancedFilters, setAdvancedFilters] = (0, import_react.useState)([
|
|
70
|
-
{ column:
|
|
85
|
+
{ column: initialFilterCol, operator: "contains", value: "", logic: "AND" }
|
|
71
86
|
]);
|
|
72
87
|
const [colSearch, setColSearch] = (0, import_react.useState)("");
|
|
73
88
|
(0, import_react.useEffect)(() => {
|
|
74
89
|
const handleMouseMove = (e) => {
|
|
75
90
|
if (!resizingColumn) return;
|
|
76
|
-
const col =
|
|
91
|
+
const col = resolvedColumns.find((c) => String(c.field) === resizingColumn);
|
|
77
92
|
const diff = e.clientX - startX;
|
|
78
93
|
const minW = col?.minWidth ? typeof col.minWidth === "number" ? col.minWidth : parseInt(col.minWidth) : 80;
|
|
79
94
|
const maxW = col?.maxWidth ? typeof col.maxWidth === "number" ? col.maxWidth : parseInt(col.maxWidth) : Infinity;
|
|
@@ -89,7 +104,7 @@ function DataGrid({
|
|
|
89
104
|
document.removeEventListener("mousemove", handleMouseMove);
|
|
90
105
|
document.removeEventListener("mouseup", handleMouseUp);
|
|
91
106
|
};
|
|
92
|
-
}, [resizingColumn, startX, startWidth,
|
|
107
|
+
}, [resizingColumn, startX, startWidth, resolvedColumns]);
|
|
93
108
|
(0, import_react.useEffect)(() => {
|
|
94
109
|
const handleClickOutside = (e) => {
|
|
95
110
|
if (menuRef.current && !menuRef.current.contains(e.target)) {
|
|
@@ -99,32 +114,55 @@ function DataGrid({
|
|
|
99
114
|
document.addEventListener("mousedown", handleClickOutside);
|
|
100
115
|
return () => document.removeEventListener("mousedown", handleClickOutside);
|
|
101
116
|
}, []);
|
|
102
|
-
|
|
117
|
+
(0, import_react.useEffect)(() => {
|
|
118
|
+
setColumnWidths((prev) => {
|
|
119
|
+
const next = { ...prev };
|
|
120
|
+
initialColumnsProp.forEach((col) => {
|
|
121
|
+
const field = String(col.field || col.key || "");
|
|
122
|
+
if (next[field] === void 0) {
|
|
123
|
+
const w = col.width || 200;
|
|
124
|
+
next[field] = typeof w === "number" ? w : parseInt(w);
|
|
125
|
+
}
|
|
126
|
+
});
|
|
127
|
+
return next;
|
|
128
|
+
});
|
|
129
|
+
}, [initialColumnsProp]);
|
|
130
|
+
const handleSort = (fieldKey, dir) => {
|
|
103
131
|
if (dir !== void 0) {
|
|
104
|
-
|
|
132
|
+
setSortField(fieldKey);
|
|
105
133
|
setSortDirection(dir);
|
|
106
|
-
} else if (
|
|
134
|
+
} else if (sortField === fieldKey) {
|
|
107
135
|
if (sortDirection === "asc") setSortDirection("desc");
|
|
108
136
|
else {
|
|
109
|
-
|
|
137
|
+
setSortField(null);
|
|
110
138
|
setSortDirection(null);
|
|
111
139
|
}
|
|
112
140
|
} else {
|
|
113
|
-
|
|
141
|
+
setSortField(fieldKey);
|
|
114
142
|
setSortDirection("asc");
|
|
115
143
|
}
|
|
116
144
|
setActiveMenu(null);
|
|
117
145
|
};
|
|
118
|
-
const togglePin = (
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
146
|
+
const togglePin = (fieldKey, side) => {
|
|
147
|
+
setColumnOverrides((prev) => {
|
|
148
|
+
const current = prev[fieldKey] || {};
|
|
149
|
+
return {
|
|
150
|
+
...prev,
|
|
151
|
+
[fieldKey]: { ...current, pinned: current.pinned === side ? void 0 : side }
|
|
152
|
+
};
|
|
153
|
+
});
|
|
122
154
|
setActiveMenu(null);
|
|
123
155
|
};
|
|
124
|
-
const toggleHide = (
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
156
|
+
const toggleHide = (fieldKey) => {
|
|
157
|
+
setColumnOverrides((prev) => {
|
|
158
|
+
const current = prev[fieldKey] || {};
|
|
159
|
+
const col = resolvedColumns.find((c) => String(c.field) === fieldKey);
|
|
160
|
+
if (col?.hideable === false) return prev;
|
|
161
|
+
return {
|
|
162
|
+
...prev,
|
|
163
|
+
[fieldKey]: { ...current, hidden: !current.hidden }
|
|
164
|
+
};
|
|
165
|
+
});
|
|
128
166
|
setActiveMenu(null);
|
|
129
167
|
};
|
|
130
168
|
const filteredData = (0, import_react.useMemo)(() => {
|
|
@@ -166,30 +204,30 @@ function DataGrid({
|
|
|
166
204
|
});
|
|
167
205
|
}, [data, filterText, advancedFilters]);
|
|
168
206
|
const sortedData = (0, import_react.useMemo)(() => {
|
|
169
|
-
if (!
|
|
170
|
-
const col =
|
|
207
|
+
if (!sortField || !sortDirection) return filteredData;
|
|
208
|
+
const col = resolvedColumns.find((c) => c.field === sortField);
|
|
171
209
|
return [...filteredData].sort((a, b) => {
|
|
172
|
-
let aVal = a[
|
|
173
|
-
let bVal = b[
|
|
210
|
+
let aVal = a[sortField];
|
|
211
|
+
let bVal = b[sortField];
|
|
174
212
|
if (col?.valueGetter) {
|
|
175
|
-
aVal = col.valueGetter({ value: aVal, row: a, field: String(
|
|
176
|
-
bVal = col.valueGetter({ value: bVal, row: b, field: String(
|
|
213
|
+
aVal = col.valueGetter({ value: aVal, row: a, field: String(sortField) });
|
|
214
|
+
bVal = col.valueGetter({ value: bVal, row: b, field: String(sortField) });
|
|
177
215
|
}
|
|
178
216
|
if (aVal < bVal) return sortDirection === "asc" ? -1 : 1;
|
|
179
217
|
if (aVal > bVal) return sortDirection === "asc" ? 1 : -1;
|
|
180
218
|
return 0;
|
|
181
219
|
});
|
|
182
|
-
}, [filteredData,
|
|
220
|
+
}, [filteredData, sortField, sortDirection, resolvedColumns]);
|
|
183
221
|
const totalPages = Math.max(1, Math.ceil(sortedData.length / pageSize));
|
|
184
222
|
const paginatedData = (0, import_react.useMemo)(() => {
|
|
185
223
|
const start = (currentPage - 1) * pageSize;
|
|
186
224
|
return sortedData.slice(start, start + pageSize);
|
|
187
225
|
}, [sortedData, currentPage, pageSize]);
|
|
188
226
|
const handleExport = () => {
|
|
189
|
-
const visibleCols =
|
|
190
|
-
const headers = visibleCols.map((c) => c.
|
|
227
|
+
const visibleCols = resolvedColumns.filter((c) => !c.hidden);
|
|
228
|
+
const headers = visibleCols.map((c) => c.headerName).join(",");
|
|
191
229
|
const rows = sortedData.map(
|
|
192
|
-
(item) => visibleCols.map((c) => `"${String(item[c.
|
|
230
|
+
(item) => visibleCols.map((c) => `"${String(item[c.field]).replace(/"/g, '""')}"`).join(",")
|
|
193
231
|
);
|
|
194
232
|
const csv = [headers, ...rows].join("\n");
|
|
195
233
|
const blob = new Blob([csv], { type: "text/csv;charset=utf-8;" });
|
|
@@ -200,24 +238,24 @@ function DataGrid({
|
|
|
200
238
|
link.click();
|
|
201
239
|
document.body.removeChild(link);
|
|
202
240
|
};
|
|
203
|
-
const handleMenuOpen = (e,
|
|
241
|
+
const handleMenuOpen = (e, keyStr) => {
|
|
204
242
|
e.stopPropagation();
|
|
205
243
|
const rect = e.currentTarget.getBoundingClientRect();
|
|
206
244
|
setMenuPosition({ top: rect.bottom + 4, left: rect.left });
|
|
207
|
-
setActiveMenu(
|
|
245
|
+
setActiveMenu(keyStr);
|
|
208
246
|
};
|
|
209
247
|
const visibleColumns = (0, import_react.useMemo)(() => {
|
|
210
|
-
const left =
|
|
211
|
-
const mid =
|
|
212
|
-
const right =
|
|
248
|
+
const left = resolvedColumns.filter((c) => !c.hidden && c.pinned === "left");
|
|
249
|
+
const mid = resolvedColumns.filter((c) => !c.hidden && !c.pinned);
|
|
250
|
+
const right = resolvedColumns.filter((c) => !c.hidden && c.pinned === "right");
|
|
213
251
|
return [...left, ...mid, ...right];
|
|
214
|
-
}, [
|
|
252
|
+
}, [resolvedColumns]);
|
|
215
253
|
const getLeftOffset = (col, idx) => {
|
|
216
254
|
if (col.pinned !== "left") return void 0;
|
|
217
255
|
let offset = 0;
|
|
218
256
|
for (let i = 0; i < idx; i++) {
|
|
219
257
|
if (visibleColumns[i].pinned === "left") {
|
|
220
|
-
offset += columnWidths[String(visibleColumns[i].
|
|
258
|
+
offset += columnWidths[String(visibleColumns[i].field)] || 200;
|
|
221
259
|
}
|
|
222
260
|
}
|
|
223
261
|
return offset;
|
|
@@ -251,14 +289,14 @@ function DataGrid({
|
|
|
251
289
|
},
|
|
252
290
|
/* @__PURE__ */ import_react.default.createElement(import_lucide_react.Columns, { size: 16 })
|
|
253
291
|
), /* @__PURE__ */ import_react.default.createElement("button", { className: "dg-action-btn", onClick: handleExport }, /* @__PURE__ */ import_react.default.createElement(import_lucide_react.Download, { size: 14 }), " Export CSV"))), /* @__PURE__ */ import_react.default.createElement("div", { className: "dg-table-wrap" }, /* @__PURE__ */ import_react.default.createElement("table", { className: "dg-table" }, /* @__PURE__ */ import_react.default.createElement("thead", null, /* @__PURE__ */ import_react.default.createElement("tr", null, visibleColumns.map((col, idx) => {
|
|
254
|
-
const
|
|
255
|
-
const width = columnWidths[
|
|
292
|
+
const colField = String(col.field);
|
|
293
|
+
const width = columnWidths[colField] || 200;
|
|
256
294
|
const leftOffset = getLeftOffset(col, idx);
|
|
257
|
-
const isSorted =
|
|
295
|
+
const isSorted = sortField === col.field;
|
|
258
296
|
return /* @__PURE__ */ import_react.default.createElement(
|
|
259
297
|
"th",
|
|
260
298
|
{
|
|
261
|
-
key:
|
|
299
|
+
key: colField,
|
|
262
300
|
className: `dg-thead-cell${col.pinned === "left" ? " pinned-left" : col.pinned === "right" ? " pinned-right" : ""} ${col.headerClassName || ""}`,
|
|
263
301
|
style: { width, minWidth: width, left: leftOffset, flex: col.flex }
|
|
264
302
|
},
|
|
@@ -266,25 +304,25 @@ function DataGrid({
|
|
|
266
304
|
"div",
|
|
267
305
|
{
|
|
268
306
|
className: `dg-th-label${col.sortable === false ? " no-sort" : ""}`,
|
|
269
|
-
onClick: () => col.sortable !== false && handleSort(col.
|
|
307
|
+
onClick: () => col.sortable !== false && handleSort(col.field || "")
|
|
270
308
|
},
|
|
271
|
-
col.
|
|
309
|
+
col.headerName,
|
|
272
310
|
isSorted && sortDirection === "asc" && /* @__PURE__ */ import_react.default.createElement(import_lucide_react.ChevronUp, { size: 12 }),
|
|
273
311
|
isSorted && sortDirection === "desc" && /* @__PURE__ */ import_react.default.createElement(import_lucide_react.ChevronDown, { size: 12 })
|
|
274
312
|
), /* @__PURE__ */ import_react.default.createElement("div", { className: "dg-th-actions" }, !col.disableColumnMenu && /* @__PURE__ */ import_react.default.createElement(
|
|
275
313
|
"button",
|
|
276
314
|
{
|
|
277
315
|
className: "dg-th-menu-btn",
|
|
278
|
-
onClick: (e) => handleMenuOpen(e,
|
|
316
|
+
onClick: (e) => handleMenuOpen(e, colField)
|
|
279
317
|
},
|
|
280
318
|
/* @__PURE__ */ import_react.default.createElement(import_lucide_react.MoreVertical, { size: 13 })
|
|
281
319
|
), /* @__PURE__ */ import_react.default.createElement(
|
|
282
320
|
"div",
|
|
283
321
|
{
|
|
284
|
-
className: `dg-resizer${resizingColumn ===
|
|
322
|
+
className: `dg-resizer${resizingColumn === colField ? " resizing" : ""}`,
|
|
285
323
|
onMouseDown: (e) => {
|
|
286
324
|
e.preventDefault();
|
|
287
|
-
setResizingColumn(
|
|
325
|
+
setResizingColumn(colField);
|
|
288
326
|
setStartX(e.clientX);
|
|
289
327
|
setStartWidth(width);
|
|
290
328
|
}
|
|
@@ -292,19 +330,19 @@ function DataGrid({
|
|
|
292
330
|
)))
|
|
293
331
|
);
|
|
294
332
|
}), actions && /* @__PURE__ */ import_react.default.createElement("th", { style: { width: 0, padding: 0 } }))), /* @__PURE__ */ import_react.default.createElement("tbody", null, paginatedData.length === 0 ? /* @__PURE__ */ import_react.default.createElement("tr", null, /* @__PURE__ */ import_react.default.createElement("td", { colSpan: visibleColumns.length + (actions ? 1 : 0), className: "dg-empty" }, "No records found")) : paginatedData.map((item) => /* @__PURE__ */ import_react.default.createElement("tr", { key: item.id, className: "dg-tbody-row" }, visibleColumns.map((col, idx) => {
|
|
295
|
-
const
|
|
296
|
-
const width = columnWidths[
|
|
333
|
+
const colField = String(col.field);
|
|
334
|
+
const width = columnWidths[colField] || 200;
|
|
297
335
|
const leftOffset = getLeftOffset(col, idx);
|
|
298
336
|
return /* @__PURE__ */ import_react.default.createElement(
|
|
299
337
|
"td",
|
|
300
338
|
{
|
|
301
|
-
key: `${item.id}-${
|
|
339
|
+
key: `${item.id}-${colField}`,
|
|
302
340
|
className: `dg-td${col.pinned === "left" ? " pinned-left" : ""} ${col.cellClassName || ""}`,
|
|
303
341
|
style: { width, minWidth: width, maxWidth: width, left: leftOffset, flex: col.flex }
|
|
304
342
|
},
|
|
305
343
|
(() => {
|
|
306
|
-
const field = String(col.
|
|
307
|
-
const rawValue = item[col.
|
|
344
|
+
const field = String(col.field);
|
|
345
|
+
const rawValue = item[col.field || ""];
|
|
308
346
|
let value = col.valueGetter ? col.valueGetter({ value: rawValue, row: item, field }) : rawValue;
|
|
309
347
|
const formattedValue = col.valueFormatter ? col.valueFormatter({ value, row: item, field }) : value;
|
|
310
348
|
if (col.renderCell) {
|
|
@@ -372,7 +410,27 @@ function DataGrid({
|
|
|
372
410
|
value: colSearch,
|
|
373
411
|
onChange: (e) => setColSearch(e.target.value)
|
|
374
412
|
}
|
|
375
|
-
)),
|
|
413
|
+
)), resolvedColumns.filter((c) => c.header.toLowerCase().includes(colSearch.toLowerCase())).map((col) => {
|
|
414
|
+
const key = String(col.key);
|
|
415
|
+
const isUnhideable = col.hideable === false;
|
|
416
|
+
return /* @__PURE__ */ import_react.default.createElement("div", { key, className: `dg-col-row${isUnhideable ? " disabled" : ""}` }, /* @__PURE__ */ import_react.default.createElement("div", { className: "dg-col-label" }, /* @__PURE__ */ import_react.default.createElement("div", { className: "dg-col-dot", style: { background: col.hidden ? "var(--border-color)" : "var(--primary-color)" } }), col.header), !isUnhideable && /* @__PURE__ */ import_react.default.createElement("button", { className: "dg-icon-btn", onClick: () => toggleHide(key) }, col.hidden ? /* @__PURE__ */ import_react.default.createElement(import_lucide_react.EyeOff, { size: 14 }) : /* @__PURE__ */ import_react.default.createElement(import_lucide_react.EyeOff, { size: 14, style: { opacity: 0.4 } })));
|
|
417
|
+
})), /* @__PURE__ */ import_react.default.createElement("div", { className: "dg-modal-footer" }, /* @__PURE__ */ import_react.default.createElement("button", { className: "dg-action-btn", onClick: () => setColumnOverrides((prev) => {
|
|
418
|
+
const next = { ...prev };
|
|
419
|
+
resolvedColumns.forEach((c) => {
|
|
420
|
+
const k = String(c.key);
|
|
421
|
+
next[k] = { ...next[k], hidden: false };
|
|
422
|
+
});
|
|
423
|
+
return next;
|
|
424
|
+
}) }, "Show All"), /* @__PURE__ */ import_react.default.createElement("button", { className: "dg-action-btn", onClick: () => {
|
|
425
|
+
const newOverrides = { ...columnOverrides };
|
|
426
|
+
resolvedColumns.forEach((c) => {
|
|
427
|
+
if (c.hideable !== false) {
|
|
428
|
+
const key = String(c.key);
|
|
429
|
+
newOverrides[key] = { ...newOverrides[key], hidden: true };
|
|
430
|
+
}
|
|
431
|
+
});
|
|
432
|
+
setColumnOverrides(newOverrides);
|
|
433
|
+
} }, "Hide All")))), showAdvancedFilter && /* @__PURE__ */ import_react.default.createElement("div", { className: "dg-modal-overlay", onClick: () => setShowAdvancedFilter(false) }, /* @__PURE__ */ import_react.default.createElement("div", { className: "dg-modal dg-modal-wide", onClick: (e) => e.stopPropagation() }, /* @__PURE__ */ import_react.default.createElement("div", { className: "dg-modal-header" }, /* @__PURE__ */ import_react.default.createElement("h3", null, "Filters"), /* @__PURE__ */ import_react.default.createElement("button", { className: "dg-icon-btn", onClick: () => setShowAdvancedFilter(false) }, /* @__PURE__ */ import_react.default.createElement(import_lucide_react.X, { size: 18 }))), /* @__PURE__ */ import_react.default.createElement("div", { className: "dg-modal-body" }, advancedFilters.map((f, idx) => /* @__PURE__ */ import_react.default.createElement("div", { key: idx }, idx > 0 && /* @__PURE__ */ import_react.default.createElement("div", { className: "dg-filter-logic" }, /* @__PURE__ */ import_react.default.createElement(
|
|
376
434
|
"button",
|
|
377
435
|
{
|
|
378
436
|
className: `dg-logic-btn${f.logic === "AND" ? " active" : ""}`,
|
|
@@ -393,7 +451,7 @@ function DataGrid({
|
|
|
393
451
|
value: f.column,
|
|
394
452
|
onChange: (e) => setAdvancedFilters((p) => p.map((fi, i) => i === idx ? { ...fi, column: e.target.value } : fi))
|
|
395
453
|
},
|
|
396
|
-
|
|
454
|
+
resolvedColumns.map((c) => /* @__PURE__ */ import_react.default.createElement("option", { key: String(c.key), value: String(c.key) }, c.header))
|
|
397
455
|
), /* @__PURE__ */ import_react.default.createElement(
|
|
398
456
|
"select",
|
|
399
457
|
{
|
|
@@ -420,7 +478,7 @@ function DataGrid({
|
|
|
420
478
|
{
|
|
421
479
|
className: "dg-action-btn",
|
|
422
480
|
style: { alignSelf: "flex-start", marginTop: 4 },
|
|
423
|
-
onClick: () => setAdvancedFilters((p) => [...p, { column: String(
|
|
481
|
+
onClick: () => setAdvancedFilters((p) => [...p, { column: String(resolvedColumns[0].key), operator: "contains", value: "", logic: "AND" }])
|
|
424
482
|
},
|
|
425
483
|
/* @__PURE__ */ import_react.default.createElement(import_lucide_react.Plus, { size: 14 }),
|
|
426
484
|
" Add Filter"
|
|
@@ -428,7 +486,7 @@ function DataGrid({
|
|
|
428
486
|
"button",
|
|
429
487
|
{
|
|
430
488
|
className: "dg-action-btn",
|
|
431
|
-
onClick: () => setAdvancedFilters([{ column: String(
|
|
489
|
+
onClick: () => setAdvancedFilters([{ column: String(resolvedColumns[0].key), operator: "contains", value: "", logic: "AND" }])
|
|
432
490
|
},
|
|
433
491
|
/* @__PURE__ */ import_react.default.createElement(import_lucide_react.Trash2, { size: 14 }),
|
|
434
492
|
" Reset"
|
|
@@ -3,6 +3,6 @@ import { DataGridProps } from './types.cjs';
|
|
|
3
3
|
|
|
4
4
|
declare function DataGrid<T extends {
|
|
5
5
|
id: string | number;
|
|
6
|
-
}>({ columns:
|
|
6
|
+
}>({ columns: initialColumnsProp, data, actions, pageSize: initialPageSize, pageSizeOptions, title }: DataGridProps<T>): React__default.JSX.Element;
|
|
7
7
|
|
|
8
8
|
export { DataGrid, DataGrid as default };
|
|
@@ -3,6 +3,6 @@ import { DataGridProps } from './types.js';
|
|
|
3
3
|
|
|
4
4
|
declare function DataGrid<T extends {
|
|
5
5
|
id: string | number;
|
|
6
|
-
}>({ columns:
|
|
6
|
+
}>({ columns: initialColumnsProp, data, actions, pageSize: initialPageSize, pageSizeOptions, title }: DataGridProps<T>): React__default.JSX.Element;
|
|
7
7
|
|
|
8
8
|
export { DataGrid, DataGrid as default };
|