@codezee/sixtify-brahma 0.2.185 → 0.2.187
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/package.json +1 -1
- package/packages/shared-components/dist/AgGrid/hooks/useAgGridSelection.d.ts.map +1 -1
- package/packages/shared-components/dist/AgGrid/hooks/useAgGridSelection.js +71 -43
- package/packages/shared-components/dist/SmartGrid/Components/TableFooterComponent/TableFooterComponent.d.ts +2 -4
- package/packages/shared-components/dist/SmartGrid/Components/TableFooterComponent/TableFooterComponent.d.ts.map +1 -1
- package/packages/shared-components/dist/SmartGrid/Components/TableFooterComponent/TableFooterComponent.js +4 -2
- package/packages/shared-components/dist/SmartGrid/Components/TableFooterComponent/components/FooterCell.d.ts +2 -4
- package/packages/shared-components/dist/SmartGrid/Components/TableFooterComponent/components/FooterCell.d.ts.map +1 -1
- package/packages/shared-components/dist/SmartGrid/types/index.d.ts +7 -8
- package/packages/shared-components/dist/SmartGrid/types/index.d.ts.map +1 -1
- package/packages/shared-components/dist/SmartGrid/utils/summaryCalculations.d.ts +2 -11
- package/packages/shared-components/dist/SmartGrid/utils/summaryCalculations.d.ts.map +1 -1
- package/packages/shared-components/dist/SmartGrid/utils/summaryCalculations.js +1 -0
- package/packages/shared-components/dist/utils/CheckboxInput.d.ts.map +1 -1
- package/packages/shared-components/dist/utils/CheckboxInput.js +12 -2
package/package.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useAgGridSelection.d.ts","sourceRoot":"","sources":["../../../src/AgGrid/hooks/useAgGridSelection.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAGvC,KAAK,sBAAsB,CAAC,CAAC,SAAS;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE,IAAI;IACtD,OAAO,EAAE,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;IACnC,gBAAgB,EAAE,CAAC,EAAE,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,QAAQ,EAAE,CAAC,MAAM,EAAE,cAAc,KAAK,OAAO,CAAC;QAC5C,IAAI,EAAE,CAAC,EAAE,CAAC;QACV,UAAU,EAAE,MAAM,CAAC;QACnB,eAAe,CAAC,EAAE,MAAM,CAAC;KAC1B,CAAC,CAAC;IACH,cAAc,EAAE,MAAM,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9C,eAAe,CAAC,EAAE,CAAC,MAAM,EAAE;QAAE,IAAI,EAAE,CAAC,CAAA;KAAE,KAAK,OAAO,CAAC;CACpD,CAAC;AAEF,KAAK,wBAAwB,CAAC,CAAC,SAAS;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE,IAAI;IACxD,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,YAAY,EAAE,CAAC,EAAE,GAAG,IAAI,CAAC;IACzB,kBAAkB,EAAE,CAAC,MAAM,EAAE,cAAc,KAAK,IAAI,CAAC;IACrD,iBAAiB,EAAE,MAAM,IAAI,CAAC;IAC9B,mBAAmB,EAAE,MAAM,IAAI,CAAC;IAChC,cAAc,EAAE,MAAM,IAAI,CAAC;IAC3B,kBAAkB,EAAE,MAAM,IAAI,CAAC;IAC/B,aAAa,EAAE;QACb,OAAO,EAAE,OAAO,CAAC;QACjB,aAAa,EAAE,OAAO,CAAC;KACxB,CAAC;IACF,OAAO,EAAE;QACP,IAAI,EAAE,OAAO,CAAC;QACd,IAAI,EAAE,MAAM,CAAC;QACb,UAAU,EAAE,MAAM,CAAC;QACnB,aAAa,EAAE,MAAM,IAAI,CAAC;KAC3B,GAAG,IAAI,CAAC;CACV,CAAC;AAEF,eAAO,MAAM,kBAAkB,GAAI,CAAC,SAAS;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE,EAAE,2GAQ1D,sBAAsB,CAAC,CAAC,CAAC,KAAG,wBAAwB,CAAC,CAAC,
|
|
1
|
+
{"version":3,"file":"useAgGridSelection.d.ts","sourceRoot":"","sources":["../../../src/AgGrid/hooks/useAgGridSelection.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAGvC,KAAK,sBAAsB,CAAC,CAAC,SAAS;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE,IAAI;IACtD,OAAO,EAAE,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;IACnC,gBAAgB,EAAE,CAAC,EAAE,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,QAAQ,EAAE,CAAC,MAAM,EAAE,cAAc,KAAK,OAAO,CAAC;QAC5C,IAAI,EAAE,CAAC,EAAE,CAAC;QACV,UAAU,EAAE,MAAM,CAAC;QACnB,eAAe,CAAC,EAAE,MAAM,CAAC;KAC1B,CAAC,CAAC;IACH,cAAc,EAAE,MAAM,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9C,eAAe,CAAC,EAAE,CAAC,MAAM,EAAE;QAAE,IAAI,EAAE,CAAC,CAAA;KAAE,KAAK,OAAO,CAAC;CACpD,CAAC;AAEF,KAAK,wBAAwB,CAAC,CAAC,SAAS;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE,IAAI;IACxD,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,YAAY,EAAE,CAAC,EAAE,GAAG,IAAI,CAAC;IACzB,kBAAkB,EAAE,CAAC,MAAM,EAAE,cAAc,KAAK,IAAI,CAAC;IACrD,iBAAiB,EAAE,MAAM,IAAI,CAAC;IAC9B,mBAAmB,EAAE,MAAM,IAAI,CAAC;IAChC,cAAc,EAAE,MAAM,IAAI,CAAC;IAC3B,kBAAkB,EAAE,MAAM,IAAI,CAAC;IAC/B,aAAa,EAAE;QACb,OAAO,EAAE,OAAO,CAAC;QACjB,aAAa,EAAE,OAAO,CAAC;KACxB,CAAC;IACF,OAAO,EAAE;QACP,IAAI,EAAE,OAAO,CAAC;QACd,IAAI,EAAE,MAAM,CAAC;QACb,UAAU,EAAE,MAAM,CAAC;QACnB,aAAa,EAAE,MAAM,IAAI,CAAC;KAC3B,GAAG,IAAI,CAAC;CACV,CAAC;AAEF,eAAO,MAAM,kBAAkB,GAAI,CAAC,SAAS;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE,EAAE,2GAQ1D,sBAAsB,CAAC,CAAC,CAAC,KAAG,wBAAwB,CAAC,CAAC,CAuUxD,CAAC"}
|
|
@@ -5,14 +5,23 @@ const react_1 = require("react");
|
|
|
5
5
|
const useAgGridSelection = ({ gridRef, currentPageItems, totalRecords, selectedEmployee, fetchAll, getExtraParams, isRowSelectable, }) => {
|
|
6
6
|
const [selectedIds, setSelectedIds] = (0, react_1.useState)([]);
|
|
7
7
|
const [allDataCache, setAllDataCache] = (0, react_1.useState)(null);
|
|
8
|
-
const [selectableCount, setSelectableCount] = (0, react_1.useState)(null);
|
|
9
8
|
const originalSelectableCountRef = (0, react_1.useRef)(null);
|
|
10
9
|
const lastQueryParamsRef = (0, react_1.useRef)(null);
|
|
10
|
+
const previousTotalRecordsRef = (0, react_1.useRef)(totalRecords);
|
|
11
11
|
(0, react_1.useEffect)(() => {
|
|
12
|
-
if (originalSelectableCountRef.current === null && totalRecords > 0)
|
|
12
|
+
if ((originalSelectableCountRef.current === null && totalRecords > 0) ||
|
|
13
|
+
(originalSelectableCountRef.current !== null &&
|
|
14
|
+
totalRecords > originalSelectableCountRef.current)) {
|
|
13
15
|
originalSelectableCountRef.current = totalRecords;
|
|
14
16
|
}
|
|
15
|
-
|
|
17
|
+
const totalRecordsChanged = previousTotalRecordsRef.current !== totalRecords;
|
|
18
|
+
if (totalRecordsChanged) {
|
|
19
|
+
if (allDataCache) {
|
|
20
|
+
setAllDataCache(null);
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
previousTotalRecordsRef.current = totalRecords;
|
|
24
|
+
}, [totalRecords, allDataCache, selectedIds.length]);
|
|
16
25
|
const currentPageState = (0, react_1.useMemo)(() => {
|
|
17
26
|
if (!currentPageItems.length) {
|
|
18
27
|
return { selected: 0, checked: false, indeterminate: false };
|
|
@@ -73,28 +82,27 @@ const useAgGridSelection = ({ gridRef, currentPageItems, totalRecords, selectedE
|
|
|
73
82
|
startRow: 0,
|
|
74
83
|
endRow: totalRecords ?? 0,
|
|
75
84
|
...extraParams,
|
|
76
|
-
quickFilter: null,
|
|
77
85
|
});
|
|
78
86
|
const selectableList = isRowSelectable
|
|
79
87
|
? list.filter((item) => isRowSelectable({ data: item }))
|
|
80
88
|
: list;
|
|
81
89
|
const allIds = Array.from(new Set(selectableList.map(({ id }) => id)));
|
|
82
90
|
setAllDataCache(list);
|
|
91
|
+
const calculatedSelectableCount = isRowSelectable
|
|
92
|
+
? list.filter((item) => isRowSelectable({ data: item })).length
|
|
93
|
+
: list.length;
|
|
83
94
|
if (apiSelectableCount !== undefined) {
|
|
84
|
-
setSelectableCount(apiSelectableCount);
|
|
85
95
|
if (originalSelectableCountRef.current === null) {
|
|
86
96
|
originalSelectableCountRef.current = apiSelectableCount;
|
|
87
97
|
}
|
|
88
98
|
}
|
|
89
|
-
else {
|
|
90
|
-
|
|
91
|
-
? list.filter((item) => isRowSelectable({ data: item })).length
|
|
92
|
-
: list.length;
|
|
93
|
-
if (originalSelectableCountRef.current === null) {
|
|
94
|
-
originalSelectableCountRef.current = calculatedSelectableCount;
|
|
95
|
-
}
|
|
99
|
+
else if (originalSelectableCountRef.current === null) {
|
|
100
|
+
originalSelectableCountRef.current = calculatedSelectableCount;
|
|
96
101
|
}
|
|
97
|
-
setSelectedIds(
|
|
102
|
+
setSelectedIds((prev) => {
|
|
103
|
+
const merged = new Set([...prev, ...allIds]);
|
|
104
|
+
return Array.from(merged);
|
|
105
|
+
});
|
|
98
106
|
if (totalRecords === 0 && totalCount) {
|
|
99
107
|
gridRef.current?.api?.setRowCount(totalCount, false);
|
|
100
108
|
}
|
|
@@ -102,7 +110,6 @@ const useAgGridSelection = ({ gridRef, currentPageItems, totalRecords, selectedE
|
|
|
102
110
|
const clearSelection = (0, react_1.useCallback)(() => {
|
|
103
111
|
setSelectedIds([]);
|
|
104
112
|
setAllDataCache(null);
|
|
105
|
-
setSelectableCount(null);
|
|
106
113
|
if (gridRef.current) {
|
|
107
114
|
gridRef.current.api.deselectAll();
|
|
108
115
|
}
|
|
@@ -128,22 +135,11 @@ const useAgGridSelection = ({ gridRef, currentPageItems, totalRecords, selectedE
|
|
|
128
135
|
}, []);
|
|
129
136
|
const selectedRecords = selectedEmployee.length;
|
|
130
137
|
const getTotalRecordsCount = () => {
|
|
131
|
-
if (selectedRecords === 0) {
|
|
132
|
-
return totalRecords;
|
|
133
|
-
}
|
|
134
|
-
if (originalSelectableCountRef.current !== null) {
|
|
135
|
-
return originalSelectableCountRef.current;
|
|
136
|
-
}
|
|
137
|
-
if (selectableCount && selectableCount > totalRecords) {
|
|
138
|
-
return selectableCount;
|
|
139
|
-
}
|
|
140
138
|
if (allDataCache?.length) {
|
|
141
139
|
const calculatedSelectableCount = isRowSelectable
|
|
142
140
|
? allDataCache.filter((item) => isRowSelectable({ data: item })).length
|
|
143
141
|
: allDataCache.length;
|
|
144
|
-
|
|
145
|
-
return calculatedSelectableCount;
|
|
146
|
-
}
|
|
142
|
+
return calculatedSelectableCount;
|
|
147
143
|
}
|
|
148
144
|
return totalRecords;
|
|
149
145
|
};
|
|
@@ -152,6 +148,16 @@ const useAgGridSelection = ({ gridRef, currentPageItems, totalRecords, selectedE
|
|
|
152
148
|
if (!selectedRecords) {
|
|
153
149
|
return null;
|
|
154
150
|
}
|
|
151
|
+
const originalCount = originalSelectableCountRef.current;
|
|
152
|
+
const allOriginalRowsSelected = originalCount !== null && selectedRecords === originalCount;
|
|
153
|
+
if (allOriginalRowsSelected) {
|
|
154
|
+
return {
|
|
155
|
+
show: true,
|
|
156
|
+
text: `All ${originalCount} rows are selected.`,
|
|
157
|
+
buttonText: "Clear selection",
|
|
158
|
+
onButtonClick: clearSelection,
|
|
159
|
+
};
|
|
160
|
+
}
|
|
155
161
|
if (displayRecordsCount === selectedRecords) {
|
|
156
162
|
return {
|
|
157
163
|
show: true,
|
|
@@ -167,34 +173,56 @@ const useAgGridSelection = ({ gridRef, currentPageItems, totalRecords, selectedE
|
|
|
167
173
|
onButtonClick: () => void selectAll(),
|
|
168
174
|
};
|
|
169
175
|
}, [selectedRecords, displayRecordsCount, clearSelection, selectAll]);
|
|
176
|
+
const isInputFieldActive = (0, react_1.useCallback)(() => {
|
|
177
|
+
const activeElement = document.activeElement;
|
|
178
|
+
return (activeElement?.tagName === "INPUT" ||
|
|
179
|
+
activeElement?.tagName === "TEXTAREA" ||
|
|
180
|
+
activeElement?.contentEditable === "true");
|
|
181
|
+
}, []);
|
|
182
|
+
const isHeaderCheckboxActive = (0, react_1.useCallback)(() => {
|
|
183
|
+
const activeElement = document.activeElement;
|
|
184
|
+
return (activeElement?.closest(".ag-header-cell") !== null ||
|
|
185
|
+
activeElement?.closest(".ag-selection-checkbox") !== null ||
|
|
186
|
+
activeElement?.getAttribute("role") === "columnheader");
|
|
187
|
+
}, []);
|
|
170
188
|
(0, react_1.useEffect)(() => {
|
|
171
189
|
const handleKeyDown = (event) => {
|
|
172
|
-
if (
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
if (isInputField || !currentPageItems.length) {
|
|
178
|
-
return;
|
|
179
|
-
}
|
|
190
|
+
if (isInputFieldActive() || !currentPageItems.length) {
|
|
191
|
+
return;
|
|
192
|
+
}
|
|
193
|
+
const key = event.key.toLowerCase();
|
|
194
|
+
if (key === "a" && (event.ctrlKey || event.metaKey)) {
|
|
180
195
|
event.preventDefault();
|
|
181
196
|
selectCurrentPage();
|
|
197
|
+
return;
|
|
182
198
|
}
|
|
183
|
-
if (
|
|
184
|
-
const activeElement = document.activeElement;
|
|
185
|
-
const isInputField = activeElement?.tagName === "INPUT" ||
|
|
186
|
-
activeElement?.tagName === "TEXTAREA" ||
|
|
187
|
-
activeElement?.contentEditable === "true";
|
|
188
|
-
if (isInputField || !currentPageItems.length) {
|
|
189
|
-
return;
|
|
190
|
-
}
|
|
199
|
+
if (key === "a" && event.altKey) {
|
|
191
200
|
event.preventDefault();
|
|
192
201
|
deselectCurrentPage();
|
|
202
|
+
return;
|
|
203
|
+
}
|
|
204
|
+
if ((event.code === "Space" || event.key === " ") &&
|
|
205
|
+
isHeaderCheckboxActive() &&
|
|
206
|
+
gridRef.current) {
|
|
207
|
+
event.preventDefault();
|
|
208
|
+
if (currentPageState.checked) {
|
|
209
|
+
deselectCurrentPage();
|
|
210
|
+
}
|
|
211
|
+
else {
|
|
212
|
+
selectCurrentPage();
|
|
213
|
+
}
|
|
193
214
|
}
|
|
194
215
|
};
|
|
195
216
|
document.addEventListener("keydown", handleKeyDown, true);
|
|
196
217
|
return () => document.removeEventListener("keydown", handleKeyDown, true);
|
|
197
|
-
}, [
|
|
218
|
+
}, [
|
|
219
|
+
currentPageItems.length,
|
|
220
|
+
selectCurrentPage,
|
|
221
|
+
deselectCurrentPage,
|
|
222
|
+
currentPageState.checked,
|
|
223
|
+
isInputFieldActive,
|
|
224
|
+
isHeaderCheckboxActive,
|
|
225
|
+
]);
|
|
198
226
|
return {
|
|
199
227
|
selectedIds,
|
|
200
228
|
allDataCache,
|
|
@@ -1,9 +1,7 @@
|
|
|
1
1
|
import type { Table } from "@tanstack/react-table";
|
|
2
|
+
import type { SummaryRecord } from "../../types";
|
|
2
3
|
type TableFooterProps<T> = {
|
|
3
|
-
summary?:
|
|
4
|
-
style?: React.CSSProperties;
|
|
5
|
-
value?: React.ReactNode;
|
|
6
|
-
}>>;
|
|
4
|
+
summary?: SummaryRecord<T>;
|
|
7
5
|
table: Table<T>;
|
|
8
6
|
};
|
|
9
7
|
export declare function TableFooterComponent<T>({ summary, table, }: Readonly<TableFooterProps<T>>): import("react/jsx-runtime").JSX.Element;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TableFooterComponent.d.ts","sourceRoot":"","sources":["../../../../src/SmartGrid/Components/TableFooterComponent/TableFooterComponent.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"TableFooterComponent.d.ts","sourceRoot":"","sources":["../../../../src/SmartGrid/Components/TableFooterComponent/TableFooterComponent.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAEnD,OAAO,KAAK,EAEV,aAAa,EACd,MAAM,aAAa,CAAC;AAIrB,KAAK,gBAAgB,CAAC,CAAC,IAAI;IACzB,OAAO,CAAC,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC;IAC3B,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;CACjB,CAAC;AAEF,wBAAgB,oBAAoB,CAAC,CAAC,EAAE,EACtC,OAAO,EACP,KAAK,GACN,EAAE,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,2CAoD/B"}
|
|
@@ -21,8 +21,10 @@ function TableFooterComponent({ summary, table, }) {
|
|
|
21
21
|
position: "sticky",
|
|
22
22
|
zIndex: 2,
|
|
23
23
|
}, children: (0, jsx_runtime_1.jsx)("tr", { children: orderedColumns.map((col, index) => {
|
|
24
|
-
|
|
25
|
-
const
|
|
24
|
+
// Type assertion: columnDef may contain a generic accessorKey of type Path<T>
|
|
25
|
+
const accessorKey = col.columnDef
|
|
26
|
+
?.accessorKey;
|
|
27
|
+
const summaryValue = accessorKey !== undefined ? summary?.[accessorKey] : undefined;
|
|
26
28
|
return ((0, jsx_runtime_1.jsx)(FooterCell_1.FooterCell, { col: col, colIndex: index, orderedColumns: orderedColumns, summaryValue: summaryValue }, `footer-${col.id}`));
|
|
27
29
|
}) }) }));
|
|
28
30
|
}
|
|
@@ -1,12 +1,10 @@
|
|
|
1
1
|
import type { Column } from "@tanstack/react-table";
|
|
2
|
+
import type { SummaryValue } from "../../../types";
|
|
2
3
|
type FooterCellProps<T> = {
|
|
3
4
|
col: Column<T, unknown>;
|
|
4
5
|
colIndex: number;
|
|
5
6
|
orderedColumns: Column<T, unknown>[];
|
|
6
|
-
summaryValue?:
|
|
7
|
-
style?: React.CSSProperties;
|
|
8
|
-
value?: React.ReactNode;
|
|
9
|
-
};
|
|
7
|
+
summaryValue?: SummaryValue;
|
|
10
8
|
};
|
|
11
9
|
export declare function FooterCell<T>({ col, colIndex, orderedColumns, summaryValue, }: Readonly<FooterCellProps<T>>): import("react/jsx-runtime").JSX.Element;
|
|
12
10
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FooterCell.d.ts","sourceRoot":"","sources":["../../../../../src/SmartGrid/Components/TableFooterComponent/components/FooterCell.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"FooterCell.d.ts","sourceRoot":"","sources":["../../../../../src/SmartGrid/Components/TableFooterComponent/components/FooterCell.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAEpD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAEnD,KAAK,eAAe,CAAC,CAAC,IAAI;IACxB,GAAG,EAAE,MAAM,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,EAAE,MAAM,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,CAAC;IACrC,YAAY,CAAC,EAAE,YAAY,CAAC;CAC7B,CAAC;AAEF,wBAAgB,UAAU,CAAC,CAAC,EAAE,EAC5B,GAAG,EACH,QAAQ,EACR,cAAc,EACd,YAAY,GACb,EAAE,QAAQ,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,2CAuD9B"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { SxProps, Theme } from "@mui/material";
|
|
2
2
|
import type { ColumnDef, ColumnFiltersState, PaginationState, RowSelectionState, SortingState, Table } from "@tanstack/react-table";
|
|
3
|
-
import type { Ref } from "react";
|
|
4
|
-
type Path<T> = T extends object ? {
|
|
3
|
+
import type { CSSProperties, ReactNode, Ref } from "react";
|
|
4
|
+
export type Path<T> = T extends object ? {
|
|
5
5
|
[K in keyof T]-?: K extends string | number ? T[K] extends object | null | undefined ? `${K}` | `${K}.${Path<Exclude<T[K], null | undefined>>}` : `${K}` : string;
|
|
6
6
|
}[keyof T] : string;
|
|
7
7
|
export type SummaryType = "sum" | "avg" | "count" | "min" | "max" | "cross_field";
|
|
@@ -22,7 +22,7 @@ export type CrossFieldSummaryConfig<T> = {
|
|
|
22
22
|
}>;
|
|
23
23
|
};
|
|
24
24
|
export type SummaryConfig<T> = {
|
|
25
|
-
field: keyof T
|
|
25
|
+
field: keyof Path<T>;
|
|
26
26
|
formatter?: (value: number) => string;
|
|
27
27
|
label?: string;
|
|
28
28
|
type: SummaryType;
|
|
@@ -63,10 +63,10 @@ export type AppColumnDef<TData> = ColumnDef<TData> & {
|
|
|
63
63
|
pinned?: "left" | "right";
|
|
64
64
|
};
|
|
65
65
|
export type SummaryValue = {
|
|
66
|
-
style?:
|
|
67
|
-
value:
|
|
66
|
+
style?: CSSProperties;
|
|
67
|
+
value: ReactNode;
|
|
68
68
|
};
|
|
69
|
-
export type SummaryRecord<T> = Partial<Record<
|
|
69
|
+
export type SummaryRecord<T> = Partial<Record<Path<T>, SummaryValue>>;
|
|
70
70
|
export type CellPosition = {
|
|
71
71
|
columnId: string;
|
|
72
72
|
rowId: string;
|
|
@@ -90,7 +90,7 @@ export type SmartGridRef<T> = {
|
|
|
90
90
|
};
|
|
91
91
|
export type DynamicSummaryConfig<T> = {
|
|
92
92
|
calculation: (values: T[]) => number | string;
|
|
93
|
-
field: keyof T
|
|
93
|
+
field: keyof T | Path<T>;
|
|
94
94
|
formatter?: (value: number) => string;
|
|
95
95
|
label?: string;
|
|
96
96
|
};
|
|
@@ -140,5 +140,4 @@ export type SmartGridProps<T> = {
|
|
|
140
140
|
sx?: SxProps<Theme>;
|
|
141
141
|
totalCount: number;
|
|
142
142
|
};
|
|
143
|
-
export {};
|
|
144
143
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/SmartGrid/types/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,KAAK,EACV,SAAS,EACT,kBAAkB,EAClB,eAAe,EACf,iBAAiB,EACjB,YAAY,EACZ,KAAK,EACN,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/SmartGrid/types/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,15 +1,6 @@
|
|
|
1
1
|
import type { Row } from "@tanstack/react-table";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
field: keyof T;
|
|
5
|
-
formatter?: (value: number) => string;
|
|
6
|
-
label?: string;
|
|
7
|
-
};
|
|
8
|
-
export type DynamicSummaryRecord<T> = Partial<Record<keyof T, {
|
|
9
|
-
style?: React.CSSProperties;
|
|
10
|
-
value: React.ReactNode;
|
|
11
|
-
}>>;
|
|
12
|
-
export declare function calculateDynamicSummary<T>(rows: Row<T>[], configs: DynamicSummaryConfig<T>[]): DynamicSummaryRecord<T>;
|
|
2
|
+
import type { DynamicSummaryConfig, Path } from "../types";
|
|
3
|
+
export declare function calculateDynamicSummary<T>(rows: Row<T>[], configs: DynamicSummaryConfig<T>[]): Partial<Record<Path<T>, import("../types").SummaryValue>>;
|
|
13
4
|
export declare const calculationHelpers: {
|
|
14
5
|
average: <T>(field: keyof T) => (data: T[]) => number;
|
|
15
6
|
count: <T>() => (data: T[]) => number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"summaryCalculations.d.ts","sourceRoot":"","sources":["../../../src/SmartGrid/utils/summaryCalculations.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,uBAAuB,CAAC;AAEjD,
|
|
1
|
+
{"version":3,"file":"summaryCalculations.d.ts","sourceRoot":"","sources":["../../../src/SmartGrid/utils/summaryCalculations.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,uBAAuB,CAAC;AAEjD,OAAO,KAAK,EACV,oBAAoB,EACpB,IAAI,EAEL,MAAM,UAAU,CAAC;AAElB,wBAAgB,uBAAuB,CAAC,CAAC,EACvC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,EACd,OAAO,EAAE,oBAAoB,CAAC,CAAC,CAAC,EAAE,6DAqCnC;AAED,eAAO,MAAM,kBAAkB;cAE1B,CAAC,SAAS,MAAM,CAAC,MACjB,MAAM,CAAC,EAAE,KAAG,MAAM;YAelB,CAAC,QACD,MAAM,CAAC,EAAE,KAAG,MAAM;qBAKlB,CAAC,SAAS,MAAM,CAAC,cAAc,MAAM,MACrC,MAAM,CAAC,EAAE,KAAG,MAAM;UASlB,CAAC,SAAS,MAAM,CAAC,MACjB,MAAM,CAAC,EAAE,KAAG,MAAM;CAOtB,CAAC"}
|
|
@@ -22,6 +22,7 @@ function calculateDynamicSummary(rows, configs) {
|
|
|
22
22
|
const formattedValue = typeof calculatedValue === "number" && config.formatter
|
|
23
23
|
? config.formatter(calculatedValue)
|
|
24
24
|
: calculatedValue;
|
|
25
|
+
// Type assertion: ensure field key matches Path<T> for typed access
|
|
25
26
|
result[config.field] = {
|
|
26
27
|
value: formattedValue,
|
|
27
28
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CheckboxInput.d.ts","sourceRoot":"","sources":["../../src/utils/CheckboxInput.tsx"],"names":[],"mappings":"AAGA,eAAO,MAAM,aAAa,GAAI;;CAAW,
|
|
1
|
+
{"version":3,"file":"CheckboxInput.d.ts","sourceRoot":"","sources":["../../src/utils/CheckboxInput.tsx"],"names":[],"mappings":"AAGA,eAAO,MAAM,aAAa,GAAI;;CAAW,4CA0CxC,CAAC"}
|
|
@@ -10,7 +10,7 @@ const material_1 = require("@mui/material");
|
|
|
10
10
|
const CheckboxInput = ({ ...rest }) => {
|
|
11
11
|
const theme = (0, material_1.useTheme)();
|
|
12
12
|
const { butterflyBlue, iron } = theme.palette.app.color;
|
|
13
|
-
return ((0, jsx_runtime_1.jsx)(material_1.Checkbox, {
|
|
13
|
+
return ((0, jsx_runtime_1.jsx)(material_1.Checkbox, { checkedIcon: (0, jsx_runtime_1.jsx)(CheckBoxRounded_1.default, { fontSize: "small", htmlColor: butterflyBlue[900], sx: {
|
|
14
14
|
borderRadius: 100,
|
|
15
15
|
marginLeft: "-1px",
|
|
16
16
|
} }), icon: (0, jsx_runtime_1.jsx)(material_1.Box, { sx: {
|
|
@@ -19,6 +19,16 @@ const CheckboxInput = ({ ...rest }) => {
|
|
|
19
19
|
border: "1px solid",
|
|
20
20
|
borderColor: iron[800],
|
|
21
21
|
borderRadius: "4px",
|
|
22
|
-
} }),
|
|
22
|
+
} }), sx: {
|
|
23
|
+
"&:hover": {
|
|
24
|
+
backgroundColor: "action.hover",
|
|
25
|
+
},
|
|
26
|
+
"&.Mui-checked:hover": {
|
|
27
|
+
backgroundColor: "action.hover",
|
|
28
|
+
},
|
|
29
|
+
"& .MuiTouchRipple-root": {
|
|
30
|
+
color: butterflyBlue[900],
|
|
31
|
+
},
|
|
32
|
+
}, ...rest }));
|
|
23
33
|
};
|
|
24
34
|
exports.CheckboxInput = CheckboxInput;
|