@rufous/ui 0.1.68 → 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 +113 -86
- package/dist/DataGrid/DataGrid.js +1 -1
- package/dist/DataGrid/index.cjs +113 -86
- package/dist/DataGrid/index.js +1 -1
- package/dist/Dialogs/BaseDialog.js +4 -4
- package/dist/Dialogs/index.js +4 -4
- package/dist/TextFields/AddressLookup.js +2 -2
- package/dist/{chunk-B6EOV25J.js → chunk-LG4EJGMI.js} +113 -86
- package/dist/main.cjs +113 -86
- package/dist/main.js +9 -9
- package/package.json +1 -1
- package/dist/{chunk-EB6MPFGC.js → chunk-GHCM2AWR.js} +3 -3
package/dist/main.cjs
CHANGED
|
@@ -30384,22 +30384,31 @@ function DataGrid({
|
|
|
30384
30384
|
pageSizeOptions = [5, 10, 25, 50],
|
|
30385
30385
|
title
|
|
30386
30386
|
}) {
|
|
30387
|
-
const
|
|
30388
|
-
|
|
30389
|
-
|
|
30390
|
-
|
|
30391
|
-
|
|
30392
|
-
|
|
30387
|
+
const [columnOverrides, setColumnOverrides] = (0, import_react18.useState)({});
|
|
30388
|
+
const resolvedColumns = (0, import_react18.useMemo)(() => {
|
|
30389
|
+
return initialColumnsProp.map((col) => {
|
|
30390
|
+
const field = String(col.field || col.key || "");
|
|
30391
|
+
const override = columnOverrides[field] || {};
|
|
30392
|
+
return {
|
|
30393
|
+
...col,
|
|
30394
|
+
field,
|
|
30395
|
+
headerName: col.headerName || col.header || "",
|
|
30396
|
+
hidden: override.hidden !== void 0 ? override.hidden : col.hidden,
|
|
30397
|
+
pinned: override.pinned !== void 0 ? override.pinned : col.pinned
|
|
30398
|
+
};
|
|
30399
|
+
});
|
|
30400
|
+
}, [initialColumnsProp, columnOverrides]);
|
|
30393
30401
|
const [columnWidths, setColumnWidths] = (0, import_react18.useState)(() => {
|
|
30394
30402
|
const widths = {};
|
|
30395
|
-
|
|
30403
|
+
initialColumnsProp.forEach((col) => {
|
|
30404
|
+
const field = String(col.field || col.key || "");
|
|
30396
30405
|
const w = col.width || 200;
|
|
30397
|
-
widths[
|
|
30406
|
+
widths[field] = typeof w === "number" ? w : parseInt(w);
|
|
30398
30407
|
});
|
|
30399
30408
|
return widths;
|
|
30400
30409
|
});
|
|
30401
30410
|
const [pageSize, setPageSize] = (0, import_react18.useState)(initialPageSize);
|
|
30402
|
-
const [
|
|
30411
|
+
const [sortField, setSortField] = (0, import_react18.useState)(null);
|
|
30403
30412
|
const [sortDirection, setSortDirection] = (0, import_react18.useState)(null);
|
|
30404
30413
|
const [filterText, setFilterText] = (0, import_react18.useState)("");
|
|
30405
30414
|
const [currentPage, setCurrentPage] = (0, import_react18.useState)(1);
|
|
@@ -30412,40 +30421,15 @@ function DataGrid({
|
|
|
30412
30421
|
const menuRef = (0, import_react18.useRef)(null);
|
|
30413
30422
|
const [showManageColumns, setShowManageColumns] = (0, import_react18.useState)(false);
|
|
30414
30423
|
const [showAdvancedFilter, setShowAdvancedFilter] = (0, import_react18.useState)(false);
|
|
30424
|
+
const initialFilterCol = String(initialColumnsProp[0]?.field || initialColumnsProp[0]?.key || "");
|
|
30415
30425
|
const [advancedFilters, setAdvancedFilters] = (0, import_react18.useState)([
|
|
30416
|
-
{ column:
|
|
30426
|
+
{ column: initialFilterCol, operator: "contains", value: "", logic: "AND" }
|
|
30417
30427
|
]);
|
|
30418
|
-
(0, import_react18.useEffect)(() => {
|
|
30419
|
-
setColumns((prevColumns) => {
|
|
30420
|
-
return initialColumns.map((newCol) => {
|
|
30421
|
-
const prevCol = prevColumns.find((c) => (c.key || c.field) === (newCol.key || newCol.field));
|
|
30422
|
-
if (!prevCol) return newCol;
|
|
30423
|
-
return {
|
|
30424
|
-
...newCol,
|
|
30425
|
-
hidden: prevCol.hidden !== void 0 ? prevCol.hidden : newCol.hidden,
|
|
30426
|
-
pinned: prevCol.pinned !== void 0 ? prevCol.pinned : newCol.pinned
|
|
30427
|
-
};
|
|
30428
|
-
});
|
|
30429
|
-
});
|
|
30430
|
-
}, [initialColumns]);
|
|
30431
|
-
(0, import_react18.useEffect)(() => {
|
|
30432
|
-
setColumnWidths((prev) => {
|
|
30433
|
-
const next = { ...prev };
|
|
30434
|
-
initialColumns.forEach((col) => {
|
|
30435
|
-
const key = String(col.key);
|
|
30436
|
-
if (next[key] === void 0) {
|
|
30437
|
-
const w = col.width || 200;
|
|
30438
|
-
next[key] = typeof w === "number" ? w : parseInt(w);
|
|
30439
|
-
}
|
|
30440
|
-
});
|
|
30441
|
-
return next;
|
|
30442
|
-
});
|
|
30443
|
-
}, [initialColumns]);
|
|
30444
30428
|
const [colSearch, setColSearch] = (0, import_react18.useState)("");
|
|
30445
30429
|
(0, import_react18.useEffect)(() => {
|
|
30446
30430
|
const handleMouseMove = (e) => {
|
|
30447
30431
|
if (!resizingColumn) return;
|
|
30448
|
-
const col =
|
|
30432
|
+
const col = resolvedColumns.find((c) => String(c.field) === resizingColumn);
|
|
30449
30433
|
const diff = e.clientX - startX;
|
|
30450
30434
|
const minW = col?.minWidth ? typeof col.minWidth === "number" ? col.minWidth : parseInt(col.minWidth) : 80;
|
|
30451
30435
|
const maxW = col?.maxWidth ? typeof col.maxWidth === "number" ? col.maxWidth : parseInt(col.maxWidth) : Infinity;
|
|
@@ -30461,7 +30445,7 @@ function DataGrid({
|
|
|
30461
30445
|
document.removeEventListener("mousemove", handleMouseMove);
|
|
30462
30446
|
document.removeEventListener("mouseup", handleMouseUp);
|
|
30463
30447
|
};
|
|
30464
|
-
}, [resizingColumn, startX, startWidth,
|
|
30448
|
+
}, [resizingColumn, startX, startWidth, resolvedColumns]);
|
|
30465
30449
|
(0, import_react18.useEffect)(() => {
|
|
30466
30450
|
const handleClickOutside = (e) => {
|
|
30467
30451
|
if (menuRef.current && !menuRef.current.contains(e.target)) {
|
|
@@ -30471,32 +30455,55 @@ function DataGrid({
|
|
|
30471
30455
|
document.addEventListener("mousedown", handleClickOutside);
|
|
30472
30456
|
return () => document.removeEventListener("mousedown", handleClickOutside);
|
|
30473
30457
|
}, []);
|
|
30474
|
-
|
|
30458
|
+
(0, import_react18.useEffect)(() => {
|
|
30459
|
+
setColumnWidths((prev) => {
|
|
30460
|
+
const next = { ...prev };
|
|
30461
|
+
initialColumnsProp.forEach((col) => {
|
|
30462
|
+
const field = String(col.field || col.key || "");
|
|
30463
|
+
if (next[field] === void 0) {
|
|
30464
|
+
const w = col.width || 200;
|
|
30465
|
+
next[field] = typeof w === "number" ? w : parseInt(w);
|
|
30466
|
+
}
|
|
30467
|
+
});
|
|
30468
|
+
return next;
|
|
30469
|
+
});
|
|
30470
|
+
}, [initialColumnsProp]);
|
|
30471
|
+
const handleSort = (fieldKey, dir) => {
|
|
30475
30472
|
if (dir !== void 0) {
|
|
30476
|
-
|
|
30473
|
+
setSortField(fieldKey);
|
|
30477
30474
|
setSortDirection(dir);
|
|
30478
|
-
} else if (
|
|
30475
|
+
} else if (sortField === fieldKey) {
|
|
30479
30476
|
if (sortDirection === "asc") setSortDirection("desc");
|
|
30480
30477
|
else {
|
|
30481
|
-
|
|
30478
|
+
setSortField(null);
|
|
30482
30479
|
setSortDirection(null);
|
|
30483
30480
|
}
|
|
30484
30481
|
} else {
|
|
30485
|
-
|
|
30482
|
+
setSortField(fieldKey);
|
|
30486
30483
|
setSortDirection("asc");
|
|
30487
30484
|
}
|
|
30488
30485
|
setActiveMenu(null);
|
|
30489
30486
|
};
|
|
30490
|
-
const togglePin = (
|
|
30491
|
-
|
|
30492
|
-
|
|
30493
|
-
|
|
30487
|
+
const togglePin = (fieldKey, side) => {
|
|
30488
|
+
setColumnOverrides((prev) => {
|
|
30489
|
+
const current = prev[fieldKey] || {};
|
|
30490
|
+
return {
|
|
30491
|
+
...prev,
|
|
30492
|
+
[fieldKey]: { ...current, pinned: current.pinned === side ? void 0 : side }
|
|
30493
|
+
};
|
|
30494
|
+
});
|
|
30494
30495
|
setActiveMenu(null);
|
|
30495
30496
|
};
|
|
30496
|
-
const toggleHide = (
|
|
30497
|
-
|
|
30498
|
-
|
|
30499
|
-
|
|
30497
|
+
const toggleHide = (fieldKey) => {
|
|
30498
|
+
setColumnOverrides((prev) => {
|
|
30499
|
+
const current = prev[fieldKey] || {};
|
|
30500
|
+
const col = resolvedColumns.find((c) => String(c.field) === fieldKey);
|
|
30501
|
+
if (col?.hideable === false) return prev;
|
|
30502
|
+
return {
|
|
30503
|
+
...prev,
|
|
30504
|
+
[fieldKey]: { ...current, hidden: !current.hidden }
|
|
30505
|
+
};
|
|
30506
|
+
});
|
|
30500
30507
|
setActiveMenu(null);
|
|
30501
30508
|
};
|
|
30502
30509
|
const filteredData = (0, import_react18.useMemo)(() => {
|
|
@@ -30538,30 +30545,30 @@ function DataGrid({
|
|
|
30538
30545
|
});
|
|
30539
30546
|
}, [data, filterText, advancedFilters]);
|
|
30540
30547
|
const sortedData = (0, import_react18.useMemo)(() => {
|
|
30541
|
-
if (!
|
|
30542
|
-
const col =
|
|
30548
|
+
if (!sortField || !sortDirection) return filteredData;
|
|
30549
|
+
const col = resolvedColumns.find((c) => c.field === sortField);
|
|
30543
30550
|
return [...filteredData].sort((a, b) => {
|
|
30544
|
-
let aVal = a[
|
|
30545
|
-
let bVal = b[
|
|
30551
|
+
let aVal = a[sortField];
|
|
30552
|
+
let bVal = b[sortField];
|
|
30546
30553
|
if (col?.valueGetter) {
|
|
30547
|
-
aVal = col.valueGetter({ value: aVal, row: a, field: String(
|
|
30548
|
-
bVal = col.valueGetter({ value: bVal, row: b, field: String(
|
|
30554
|
+
aVal = col.valueGetter({ value: aVal, row: a, field: String(sortField) });
|
|
30555
|
+
bVal = col.valueGetter({ value: bVal, row: b, field: String(sortField) });
|
|
30549
30556
|
}
|
|
30550
30557
|
if (aVal < bVal) return sortDirection === "asc" ? -1 : 1;
|
|
30551
30558
|
if (aVal > bVal) return sortDirection === "asc" ? 1 : -1;
|
|
30552
30559
|
return 0;
|
|
30553
30560
|
});
|
|
30554
|
-
}, [filteredData,
|
|
30561
|
+
}, [filteredData, sortField, sortDirection, resolvedColumns]);
|
|
30555
30562
|
const totalPages = Math.max(1, Math.ceil(sortedData.length / pageSize));
|
|
30556
30563
|
const paginatedData = (0, import_react18.useMemo)(() => {
|
|
30557
30564
|
const start = (currentPage - 1) * pageSize;
|
|
30558
30565
|
return sortedData.slice(start, start + pageSize);
|
|
30559
30566
|
}, [sortedData, currentPage, pageSize]);
|
|
30560
30567
|
const handleExport = () => {
|
|
30561
|
-
const visibleCols =
|
|
30562
|
-
const headers = visibleCols.map((c) => c.
|
|
30568
|
+
const visibleCols = resolvedColumns.filter((c) => !c.hidden);
|
|
30569
|
+
const headers = visibleCols.map((c) => c.headerName).join(",");
|
|
30563
30570
|
const rows = sortedData.map(
|
|
30564
|
-
(item) => visibleCols.map((c) => `"${String(item[c.
|
|
30571
|
+
(item) => visibleCols.map((c) => `"${String(item[c.field]).replace(/"/g, '""')}"`).join(",")
|
|
30565
30572
|
);
|
|
30566
30573
|
const csv = [headers, ...rows].join("\n");
|
|
30567
30574
|
const blob = new Blob([csv], { type: "text/csv;charset=utf-8;" });
|
|
@@ -30572,24 +30579,24 @@ function DataGrid({
|
|
|
30572
30579
|
link2.click();
|
|
30573
30580
|
document.body.removeChild(link2);
|
|
30574
30581
|
};
|
|
30575
|
-
const handleMenuOpen = (e,
|
|
30582
|
+
const handleMenuOpen = (e, keyStr) => {
|
|
30576
30583
|
e.stopPropagation();
|
|
30577
30584
|
const rect = e.currentTarget.getBoundingClientRect();
|
|
30578
30585
|
setMenuPosition({ top: rect.bottom + 4, left: rect.left });
|
|
30579
|
-
setActiveMenu(
|
|
30586
|
+
setActiveMenu(keyStr);
|
|
30580
30587
|
};
|
|
30581
30588
|
const visibleColumns = (0, import_react18.useMemo)(() => {
|
|
30582
|
-
const left =
|
|
30583
|
-
const mid =
|
|
30584
|
-
const right =
|
|
30589
|
+
const left = resolvedColumns.filter((c) => !c.hidden && c.pinned === "left");
|
|
30590
|
+
const mid = resolvedColumns.filter((c) => !c.hidden && !c.pinned);
|
|
30591
|
+
const right = resolvedColumns.filter((c) => !c.hidden && c.pinned === "right");
|
|
30585
30592
|
return [...left, ...mid, ...right];
|
|
30586
|
-
}, [
|
|
30593
|
+
}, [resolvedColumns]);
|
|
30587
30594
|
const getLeftOffset = (col, idx) => {
|
|
30588
30595
|
if (col.pinned !== "left") return void 0;
|
|
30589
30596
|
let offset2 = 0;
|
|
30590
30597
|
for (let i = 0; i < idx; i++) {
|
|
30591
30598
|
if (visibleColumns[i].pinned === "left") {
|
|
30592
|
-
offset2 += columnWidths[String(visibleColumns[i].
|
|
30599
|
+
offset2 += columnWidths[String(visibleColumns[i].field)] || 200;
|
|
30593
30600
|
}
|
|
30594
30601
|
}
|
|
30595
30602
|
return offset2;
|
|
@@ -30623,14 +30630,14 @@ function DataGrid({
|
|
|
30623
30630
|
},
|
|
30624
30631
|
/* @__PURE__ */ import_react18.default.createElement(import_lucide_react.Columns, { size: 16 })
|
|
30625
30632
|
), /* @__PURE__ */ import_react18.default.createElement("button", { className: "dg-action-btn", onClick: handleExport }, /* @__PURE__ */ import_react18.default.createElement(import_lucide_react.Download, { size: 14 }), " Export CSV"))), /* @__PURE__ */ import_react18.default.createElement("div", { className: "dg-table-wrap" }, /* @__PURE__ */ import_react18.default.createElement("table", { className: "dg-table" }, /* @__PURE__ */ import_react18.default.createElement("thead", null, /* @__PURE__ */ import_react18.default.createElement("tr", null, visibleColumns.map((col, idx) => {
|
|
30626
|
-
const
|
|
30627
|
-
const width = columnWidths[
|
|
30633
|
+
const colField = String(col.field);
|
|
30634
|
+
const width = columnWidths[colField] || 200;
|
|
30628
30635
|
const leftOffset = getLeftOffset(col, idx);
|
|
30629
|
-
const isSorted =
|
|
30636
|
+
const isSorted = sortField === col.field;
|
|
30630
30637
|
return /* @__PURE__ */ import_react18.default.createElement(
|
|
30631
30638
|
"th",
|
|
30632
30639
|
{
|
|
30633
|
-
key:
|
|
30640
|
+
key: colField,
|
|
30634
30641
|
className: `dg-thead-cell${col.pinned === "left" ? " pinned-left" : col.pinned === "right" ? " pinned-right" : ""} ${col.headerClassName || ""}`,
|
|
30635
30642
|
style: { width, minWidth: width, left: leftOffset, flex: col.flex }
|
|
30636
30643
|
},
|
|
@@ -30638,25 +30645,25 @@ function DataGrid({
|
|
|
30638
30645
|
"div",
|
|
30639
30646
|
{
|
|
30640
30647
|
className: `dg-th-label${col.sortable === false ? " no-sort" : ""}`,
|
|
30641
|
-
onClick: () => col.sortable !== false && handleSort(col.
|
|
30648
|
+
onClick: () => col.sortable !== false && handleSort(col.field || "")
|
|
30642
30649
|
},
|
|
30643
|
-
col.
|
|
30650
|
+
col.headerName,
|
|
30644
30651
|
isSorted && sortDirection === "asc" && /* @__PURE__ */ import_react18.default.createElement(import_lucide_react.ChevronUp, { size: 12 }),
|
|
30645
30652
|
isSorted && sortDirection === "desc" && /* @__PURE__ */ import_react18.default.createElement(import_lucide_react.ChevronDown, { size: 12 })
|
|
30646
30653
|
), /* @__PURE__ */ import_react18.default.createElement("div", { className: "dg-th-actions" }, !col.disableColumnMenu && /* @__PURE__ */ import_react18.default.createElement(
|
|
30647
30654
|
"button",
|
|
30648
30655
|
{
|
|
30649
30656
|
className: "dg-th-menu-btn",
|
|
30650
|
-
onClick: (e) => handleMenuOpen(e,
|
|
30657
|
+
onClick: (e) => handleMenuOpen(e, colField)
|
|
30651
30658
|
},
|
|
30652
30659
|
/* @__PURE__ */ import_react18.default.createElement(import_lucide_react.MoreVertical, { size: 13 })
|
|
30653
30660
|
), /* @__PURE__ */ import_react18.default.createElement(
|
|
30654
30661
|
"div",
|
|
30655
30662
|
{
|
|
30656
|
-
className: `dg-resizer${resizingColumn ===
|
|
30663
|
+
className: `dg-resizer${resizingColumn === colField ? " resizing" : ""}`,
|
|
30657
30664
|
onMouseDown: (e) => {
|
|
30658
30665
|
e.preventDefault();
|
|
30659
|
-
setResizingColumn(
|
|
30666
|
+
setResizingColumn(colField);
|
|
30660
30667
|
setStartX(e.clientX);
|
|
30661
30668
|
setStartWidth(width);
|
|
30662
30669
|
}
|
|
@@ -30664,19 +30671,19 @@ function DataGrid({
|
|
|
30664
30671
|
)))
|
|
30665
30672
|
);
|
|
30666
30673
|
}), actions && /* @__PURE__ */ import_react18.default.createElement("th", { style: { width: 0, padding: 0 } }))), /* @__PURE__ */ import_react18.default.createElement("tbody", null, paginatedData.length === 0 ? /* @__PURE__ */ import_react18.default.createElement("tr", null, /* @__PURE__ */ import_react18.default.createElement("td", { colSpan: visibleColumns.length + (actions ? 1 : 0), className: "dg-empty" }, "No records found")) : paginatedData.map((item) => /* @__PURE__ */ import_react18.default.createElement("tr", { key: item.id, className: "dg-tbody-row" }, visibleColumns.map((col, idx) => {
|
|
30667
|
-
const
|
|
30668
|
-
const width = columnWidths[
|
|
30674
|
+
const colField = String(col.field);
|
|
30675
|
+
const width = columnWidths[colField] || 200;
|
|
30669
30676
|
const leftOffset = getLeftOffset(col, idx);
|
|
30670
30677
|
return /* @__PURE__ */ import_react18.default.createElement(
|
|
30671
30678
|
"td",
|
|
30672
30679
|
{
|
|
30673
|
-
key: `${item.id}-${
|
|
30680
|
+
key: `${item.id}-${colField}`,
|
|
30674
30681
|
className: `dg-td${col.pinned === "left" ? " pinned-left" : ""} ${col.cellClassName || ""}`,
|
|
30675
30682
|
style: { width, minWidth: width, maxWidth: width, left: leftOffset, flex: col.flex }
|
|
30676
30683
|
},
|
|
30677
30684
|
(() => {
|
|
30678
|
-
const field = String(col.
|
|
30679
|
-
const rawValue = item[col.
|
|
30685
|
+
const field = String(col.field);
|
|
30686
|
+
const rawValue = item[col.field || ""];
|
|
30680
30687
|
let value = col.valueGetter ? col.valueGetter({ value: rawValue, row: item, field }) : rawValue;
|
|
30681
30688
|
const formattedValue = col.valueFormatter ? col.valueFormatter({ value, row: item, field }) : value;
|
|
30682
30689
|
if (col.renderCell) {
|
|
@@ -30744,7 +30751,27 @@ function DataGrid({
|
|
|
30744
30751
|
value: colSearch,
|
|
30745
30752
|
onChange: (e) => setColSearch(e.target.value)
|
|
30746
30753
|
}
|
|
30747
|
-
)),
|
|
30754
|
+
)), resolvedColumns.filter((c) => c.header.toLowerCase().includes(colSearch.toLowerCase())).map((col) => {
|
|
30755
|
+
const key = String(col.key);
|
|
30756
|
+
const isUnhideable = col.hideable === false;
|
|
30757
|
+
return /* @__PURE__ */ import_react18.default.createElement("div", { key, className: `dg-col-row${isUnhideable ? " disabled" : ""}` }, /* @__PURE__ */ import_react18.default.createElement("div", { className: "dg-col-label" }, /* @__PURE__ */ import_react18.default.createElement("div", { className: "dg-col-dot", style: { background: col.hidden ? "var(--border-color)" : "var(--primary-color)" } }), col.header), !isUnhideable && /* @__PURE__ */ import_react18.default.createElement("button", { className: "dg-icon-btn", onClick: () => toggleHide(key) }, col.hidden ? /* @__PURE__ */ import_react18.default.createElement(import_lucide_react.EyeOff, { size: 14 }) : /* @__PURE__ */ import_react18.default.createElement(import_lucide_react.EyeOff, { size: 14, style: { opacity: 0.4 } })));
|
|
30758
|
+
})), /* @__PURE__ */ import_react18.default.createElement("div", { className: "dg-modal-footer" }, /* @__PURE__ */ import_react18.default.createElement("button", { className: "dg-action-btn", onClick: () => setColumnOverrides((prev) => {
|
|
30759
|
+
const next = { ...prev };
|
|
30760
|
+
resolvedColumns.forEach((c) => {
|
|
30761
|
+
const k = String(c.key);
|
|
30762
|
+
next[k] = { ...next[k], hidden: false };
|
|
30763
|
+
});
|
|
30764
|
+
return next;
|
|
30765
|
+
}) }, "Show All"), /* @__PURE__ */ import_react18.default.createElement("button", { className: "dg-action-btn", onClick: () => {
|
|
30766
|
+
const newOverrides = { ...columnOverrides };
|
|
30767
|
+
resolvedColumns.forEach((c) => {
|
|
30768
|
+
if (c.hideable !== false) {
|
|
30769
|
+
const key = String(c.key);
|
|
30770
|
+
newOverrides[key] = { ...newOverrides[key], hidden: true };
|
|
30771
|
+
}
|
|
30772
|
+
});
|
|
30773
|
+
setColumnOverrides(newOverrides);
|
|
30774
|
+
} }, "Hide All")))), showAdvancedFilter && /* @__PURE__ */ import_react18.default.createElement("div", { className: "dg-modal-overlay", onClick: () => setShowAdvancedFilter(false) }, /* @__PURE__ */ import_react18.default.createElement("div", { className: "dg-modal dg-modal-wide", onClick: (e) => e.stopPropagation() }, /* @__PURE__ */ import_react18.default.createElement("div", { className: "dg-modal-header" }, /* @__PURE__ */ import_react18.default.createElement("h3", null, "Filters"), /* @__PURE__ */ import_react18.default.createElement("button", { className: "dg-icon-btn", onClick: () => setShowAdvancedFilter(false) }, /* @__PURE__ */ import_react18.default.createElement(import_lucide_react.X, { size: 18 }))), /* @__PURE__ */ import_react18.default.createElement("div", { className: "dg-modal-body" }, advancedFilters.map((f, idx) => /* @__PURE__ */ import_react18.default.createElement("div", { key: idx }, idx > 0 && /* @__PURE__ */ import_react18.default.createElement("div", { className: "dg-filter-logic" }, /* @__PURE__ */ import_react18.default.createElement(
|
|
30748
30775
|
"button",
|
|
30749
30776
|
{
|
|
30750
30777
|
className: `dg-logic-btn${f.logic === "AND" ? " active" : ""}`,
|
|
@@ -30765,7 +30792,7 @@ function DataGrid({
|
|
|
30765
30792
|
value: f.column,
|
|
30766
30793
|
onChange: (e) => setAdvancedFilters((p) => p.map((fi, i) => i === idx ? { ...fi, column: e.target.value } : fi))
|
|
30767
30794
|
},
|
|
30768
|
-
|
|
30795
|
+
resolvedColumns.map((c) => /* @__PURE__ */ import_react18.default.createElement("option", { key: String(c.key), value: String(c.key) }, c.header))
|
|
30769
30796
|
), /* @__PURE__ */ import_react18.default.createElement(
|
|
30770
30797
|
"select",
|
|
30771
30798
|
{
|
|
@@ -30792,7 +30819,7 @@ function DataGrid({
|
|
|
30792
30819
|
{
|
|
30793
30820
|
className: "dg-action-btn",
|
|
30794
30821
|
style: { alignSelf: "flex-start", marginTop: 4 },
|
|
30795
|
-
onClick: () => setAdvancedFilters((p) => [...p, { column: String(
|
|
30822
|
+
onClick: () => setAdvancedFilters((p) => [...p, { column: String(resolvedColumns[0].key), operator: "contains", value: "", logic: "AND" }])
|
|
30796
30823
|
},
|
|
30797
30824
|
/* @__PURE__ */ import_react18.default.createElement(import_lucide_react.Plus, { size: 14 }),
|
|
30798
30825
|
" Add Filter"
|
|
@@ -30800,7 +30827,7 @@ function DataGrid({
|
|
|
30800
30827
|
"button",
|
|
30801
30828
|
{
|
|
30802
30829
|
className: "dg-action-btn",
|
|
30803
|
-
onClick: () => setAdvancedFilters([{ column: String(
|
|
30830
|
+
onClick: () => setAdvancedFilters([{ column: String(resolvedColumns[0].key), operator: "contains", value: "", logic: "AND" }])
|
|
30804
30831
|
},
|
|
30805
30832
|
/* @__PURE__ */ import_react18.default.createElement(import_lucide_react.Trash2, { size: 14 }),
|
|
30806
30833
|
" Reset"
|
package/dist/main.js
CHANGED
|
@@ -172,17 +172,24 @@ import {
|
|
|
172
172
|
} from "./chunk-Q5XKCUE3.js";
|
|
173
173
|
import {
|
|
174
174
|
AddressLookup_default
|
|
175
|
-
} from "./chunk-
|
|
175
|
+
} from "./chunk-GHCM2AWR.js";
|
|
176
176
|
import {
|
|
177
177
|
FloatingInput
|
|
178
178
|
} from "./chunk-UPCMMCPQ.js";
|
|
179
179
|
import {
|
|
180
180
|
Checkbox
|
|
181
181
|
} from "./chunk-X357WQOT.js";
|
|
182
|
+
import {
|
|
183
|
+
RufousThemeProvider,
|
|
184
|
+
useRufousTheme
|
|
185
|
+
} from "./chunk-BOE27BFQ.js";
|
|
186
|
+
import {
|
|
187
|
+
APP_THEMES
|
|
188
|
+
} from "./chunk-S7BNFVQO.js";
|
|
182
189
|
import "./chunk-7KRG7VNW.js";
|
|
183
190
|
import {
|
|
184
191
|
DataGrid
|
|
185
|
-
} from "./chunk-
|
|
192
|
+
} from "./chunk-LG4EJGMI.js";
|
|
186
193
|
import "./chunk-GJGRMMAQ.js";
|
|
187
194
|
import {
|
|
188
195
|
RichTextEditor
|
|
@@ -203,13 +210,6 @@ import {
|
|
|
203
210
|
import {
|
|
204
211
|
circularProgress_default
|
|
205
212
|
} from "./chunk-CTBYVXFP.js";
|
|
206
|
-
import {
|
|
207
|
-
RufousThemeProvider,
|
|
208
|
-
useRufousTheme
|
|
209
|
-
} from "./chunk-BOE27BFQ.js";
|
|
210
|
-
import {
|
|
211
|
-
APP_THEMES
|
|
212
|
-
} from "./chunk-S7BNFVQO.js";
|
|
213
213
|
import "./chunk-LI4N7JWK.js";
|
|
214
214
|
export {
|
|
215
215
|
APP_THEMES,
|
package/package.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import {
|
|
2
2
|
FloatingInput
|
|
3
3
|
} from "./chunk-UPCMMCPQ.js";
|
|
4
|
-
import {
|
|
5
|
-
circularProgress_default
|
|
6
|
-
} from "./chunk-CTBYVXFP.js";
|
|
7
4
|
import {
|
|
8
5
|
useRufousTheme
|
|
9
6
|
} from "./chunk-BOE27BFQ.js";
|
|
7
|
+
import {
|
|
8
|
+
circularProgress_default
|
|
9
|
+
} from "./chunk-CTBYVXFP.js";
|
|
10
10
|
|
|
11
11
|
// lib/TextFields/AddressLookup.tsx
|
|
12
12
|
import React, { useState, useRef, useEffect } from "react";
|