@insticc/react-datagrid-2 1.1.15 → 1.1.17
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/build/index.js +7 -0
- package/build/wrapper/ActionButton.js +214 -0
- package/build/wrapper/ColumnFilter.js +105 -0
- package/build/wrapper/ExportActions.js +114 -0
- package/build/wrapper/images/cache.png +0 -0
- package/build/wrapper/images/cacheloading.png +0 -0
- package/build/wrapper/index.js +931 -0
- package/build/wrapper/styles/styles.css +30 -0
- package/build/wrapper/utils/DefaultCellTypes.js +186 -0
- package/build/wrapper/utils/FormatDate.js +74 -0
- package/build/wrapper/utils/GridHelper.js +30 -0
- package/build/wrapper/utils/filters.js +63 -0
- package/build/wrapper/utils/gridFixedHeader.js +48 -0
- package/package.json +50 -50
|
@@ -0,0 +1,931 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports["default"] = void 0;
|
|
8
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
9
|
+
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
10
|
+
var _materialReactTable = require("material-react-table");
|
|
11
|
+
var _xDatePickers = require("@mui/x-date-pickers");
|
|
12
|
+
var _AdapterDateFns = require("@mui/x-date-pickers/AdapterDateFns");
|
|
13
|
+
var _semanticUiReact = require("semantic-ui-react");
|
|
14
|
+
var _material = require("@mui/material");
|
|
15
|
+
var _ColumnFilter = _interopRequireDefault(require("./ColumnFilter"));
|
|
16
|
+
var _ExportActions = _interopRequireDefault(require("./ExportActions"));
|
|
17
|
+
var _ActionButton = _interopRequireWildcard(require("./ActionButton"));
|
|
18
|
+
var _GridHelper = _interopRequireDefault(require("./utils/GridHelper"));
|
|
19
|
+
var _gridFixedHeader = _interopRequireDefault(require("./utils/gridFixedHeader"));
|
|
20
|
+
var _filters = require("./utils/filters");
|
|
21
|
+
require("bootstrap/dist/css/bootstrap.min.css");
|
|
22
|
+
require("semantic-ui-css/semantic.min.css");
|
|
23
|
+
require("./styles/styles.css");
|
|
24
|
+
var _DefaultCellTypes = require("./utils/DefaultCellTypes");
|
|
25
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
|
|
26
|
+
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
|
|
27
|
+
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
|
|
28
|
+
function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
|
|
29
|
+
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
30
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
31
|
+
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
|
|
32
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
|
|
33
|
+
function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
34
|
+
function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
|
|
35
|
+
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
36
|
+
function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
|
|
37
|
+
function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
|
|
38
|
+
function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
|
|
39
|
+
function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
|
|
40
|
+
var DataGrid = function DataGrid(_ref) {
|
|
41
|
+
var columns = _ref.columns,
|
|
42
|
+
columnVisibilityState = _ref.columnVisibilityState,
|
|
43
|
+
columnOrder = _ref.columnOrder,
|
|
44
|
+
createRows = _ref.createRows,
|
|
45
|
+
_ref$actions = _ref.actions,
|
|
46
|
+
actions = _ref$actions === void 0 ? null : _ref$actions,
|
|
47
|
+
_ref$extraActions = _ref.extraActions,
|
|
48
|
+
extraActions = _ref$extraActions === void 0 ? null : _ref$extraActions,
|
|
49
|
+
_ref$hasExcelExport = _ref.hasExcelExport,
|
|
50
|
+
hasExcelExport = _ref$hasExcelExport === void 0 ? false : _ref$hasExcelExport,
|
|
51
|
+
_ref$hasPdfExport = _ref.hasPdfExport,
|
|
52
|
+
hasPdfExport = _ref$hasPdfExport === void 0 ? false : _ref$hasPdfExport,
|
|
53
|
+
_ref$rowHeight = _ref.rowHeight,
|
|
54
|
+
rowHeight = _ref$rowHeight === void 0 ? 75 : _ref$rowHeight,
|
|
55
|
+
_ref$fontSize = _ref.fontSize,
|
|
56
|
+
fontSize = _ref$fontSize === void 0 ? 14 : _ref$fontSize,
|
|
57
|
+
_ref$globalFilterFn = _ref.globalFilterFn,
|
|
58
|
+
globalFilterFn = _ref$globalFilterFn === void 0 ? 'contains' : _ref$globalFilterFn,
|
|
59
|
+
_ref$disableSelect = _ref.disableSelect,
|
|
60
|
+
disableSelect = _ref$disableSelect === void 0 ? false : _ref$disableSelect,
|
|
61
|
+
_ref$enableColumnFilt = _ref.enableColumnFilterModes,
|
|
62
|
+
enableColumnFilterModes = _ref$enableColumnFilt === void 0 ? true : _ref$enableColumnFilt,
|
|
63
|
+
_ref$pagination = _ref.pagination,
|
|
64
|
+
pagination = _ref$pagination === void 0 ? 'both' : _ref$pagination,
|
|
65
|
+
_ref$itemsPerPage = _ref.itemsPerPage,
|
|
66
|
+
itemsPerPage = _ref$itemsPerPage === void 0 ? [50, 100, 150] : _ref$itemsPerPage,
|
|
67
|
+
_ref$selectedIds = _ref.selectedIds,
|
|
68
|
+
selectedIds = _ref$selectedIds === void 0 ? [] : _ref$selectedIds,
|
|
69
|
+
selectData = _ref.selectData,
|
|
70
|
+
rowKey = _ref.rowKey,
|
|
71
|
+
_ref$pageSize = _ref.pageSize,
|
|
72
|
+
pageSize = _ref$pageSize === void 0 ? 150 : _ref$pageSize,
|
|
73
|
+
_ref$enableMultiRowSe = _ref.enableMultiRowSelection,
|
|
74
|
+
enableMultiRowSelection = _ref$enableMultiRowSe === void 0 ? true : _ref$enableMultiRowSe,
|
|
75
|
+
_ref$enableFullScreen = _ref.enableFullScreenToggle,
|
|
76
|
+
enableFullScreenToggle = _ref$enableFullScreen === void 0 ? false : _ref$enableFullScreen,
|
|
77
|
+
_ref$enableDensityTog = _ref.enableDensityToggle,
|
|
78
|
+
enableDensityToggle = _ref$enableDensityTog === void 0 ? false : _ref$enableDensityTog,
|
|
79
|
+
_ref$enableGlobalFilt = _ref.enableGlobalFilter,
|
|
80
|
+
enableGlobalFilter = _ref$enableGlobalFilt === void 0 ? false : _ref$enableGlobalFilt,
|
|
81
|
+
_ref$hasSubRows = _ref.hasSubRows,
|
|
82
|
+
hasSubRows = _ref$hasSubRows === void 0 ? false : _ref$hasSubRows,
|
|
83
|
+
_ref$enableExpanding = _ref.enableExpanding,
|
|
84
|
+
enableExpanding = _ref$enableExpanding === void 0 ? false : _ref$enableExpanding,
|
|
85
|
+
_ref$enablePagination = _ref.enablePagination,
|
|
86
|
+
enablePagination = _ref$enablePagination === void 0 ? true : _ref$enablePagination,
|
|
87
|
+
_ref$enableTopToolbar = _ref.enableTopToolbar,
|
|
88
|
+
enableTopToolbar = _ref$enableTopToolbar === void 0 ? true : _ref$enableTopToolbar,
|
|
89
|
+
_ref$enableBottomTool = _ref.enableBottomToolbar,
|
|
90
|
+
enableBottomToolbar = _ref$enableBottomTool === void 0 ? false : _ref$enableBottomTool,
|
|
91
|
+
_ref$enableVirtualiza = _ref.enableVirtualization,
|
|
92
|
+
enableVirtualization = _ref$enableVirtualiza === void 0 ? false : _ref$enableVirtualiza,
|
|
93
|
+
_ref$enableFixedHeade = _ref.enableFixedHeader,
|
|
94
|
+
enableFixedHeader = _ref$enableFixedHeade === void 0 ? true : _ref$enableFixedHeade,
|
|
95
|
+
_ref$enableFixedActio = _ref.enableFixedActions,
|
|
96
|
+
enableFixedActions = _ref$enableFixedActio === void 0 ? false : _ref$enableFixedActio,
|
|
97
|
+
_ref$gridHeight = _ref.gridHeight,
|
|
98
|
+
gridHeight = _ref$gridHeight === void 0 ? 600 : _ref$gridHeight,
|
|
99
|
+
onVisibleRowsChange = _ref.onVisibleRowsChange,
|
|
100
|
+
updateCache = _ref.updateCache,
|
|
101
|
+
cacheUpdateText = _ref.cacheUpdateText,
|
|
102
|
+
cacheUpdating = _ref.cacheUpdating,
|
|
103
|
+
getRowStyle = _ref.getRowStyle,
|
|
104
|
+
_ref$gridHelper = _ref.gridHelper,
|
|
105
|
+
gridHelper = _ref$gridHelper === void 0 ? null : _ref$gridHelper,
|
|
106
|
+
_ref$disableRows = _ref.disableRows,
|
|
107
|
+
disableRows = _ref$disableRows === void 0 ? [] : _ref$disableRows,
|
|
108
|
+
_ref$selectAllMode = _ref.selectAllMode,
|
|
109
|
+
selectAllMode = _ref$selectAllMode === void 0 ? 'page' : _ref$selectAllMode,
|
|
110
|
+
_ref$hasClearFiltersB = _ref.hasClearFiltersBtn,
|
|
111
|
+
hasClearFiltersBtn = _ref$hasClearFiltersB === void 0 ? true : _ref$hasClearFiltersB,
|
|
112
|
+
_ref$hasClearSelectio = _ref.hasClearSelectionBtn,
|
|
113
|
+
hasClearSelectionBtn = _ref$hasClearSelectio === void 0 ? true : _ref$hasClearSelectio,
|
|
114
|
+
_ref$disableAllAction = _ref.disableAllActions,
|
|
115
|
+
disableAllActions = _ref$disableAllAction === void 0 ? false : _ref$disableAllAction,
|
|
116
|
+
_ref$disableSideActio = _ref.disableSideActions,
|
|
117
|
+
disableSideActions = _ref$disableSideActio === void 0 ? false : _ref$disableSideActio,
|
|
118
|
+
_ref$enableCompactSty = _ref.enableCompactStyleMode,
|
|
119
|
+
enableCompactStyleMode = _ref$enableCompactSty === void 0 ? false : _ref$enableCompactSty;
|
|
120
|
+
var _useState = (0, _react.useState)(selectedIds.reduce(function (a, v) {
|
|
121
|
+
return _objectSpread(_objectSpread({}, a), {}, _defineProperty({}, v, true));
|
|
122
|
+
}, {})),
|
|
123
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
124
|
+
rowSelection = _useState2[0],
|
|
125
|
+
setRowSelection = _useState2[1];
|
|
126
|
+
var _useState3 = (0, _react.useState)(true),
|
|
127
|
+
_useState4 = _slicedToArray(_useState3, 2),
|
|
128
|
+
isLoading = _useState4[0],
|
|
129
|
+
setIsLoading = _useState4[1];
|
|
130
|
+
var _useState5 = (0, _react.useState)([]),
|
|
131
|
+
_useState6 = _slicedToArray(_useState5, 2),
|
|
132
|
+
sorting = _useState6[0],
|
|
133
|
+
setSorting = _useState6[1];
|
|
134
|
+
var _useState7 = (0, _react.useState)(false),
|
|
135
|
+
_useState8 = _slicedToArray(_useState7, 2),
|
|
136
|
+
open = _useState8[0],
|
|
137
|
+
setOpen = _useState8[1];
|
|
138
|
+
//optionally access the underlying virtualizer instance
|
|
139
|
+
var rowVirtualizerInstanceRef = (0, _react.useRef)(null);
|
|
140
|
+
if (gridHelper && (!gridHelper.content || !gridHelper.title)) {
|
|
141
|
+
throw new Error("The 'gridHelper' prop object is expected to contain both 'title' and 'content' properties. Ensure that both are provided if 'gridHelper' is defined.");
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
// get the selected rows (if is a int that means that the row is selected if is a double that means that is a subrow)
|
|
145
|
+
// so if is a subrow we need to go to the parent row and get the id that is on the position after the .
|
|
146
|
+
// 308.1 this is a subrow so we need to get the 308 row and get the id of the subrow that is in the position 1 of the array
|
|
147
|
+
var getSelectedRows = function getSelectedRows(rows) {
|
|
148
|
+
var data = createRows;
|
|
149
|
+
return Object.keys(rows).filter(function (key) {
|
|
150
|
+
return rows[key];
|
|
151
|
+
}).map(function (key) {
|
|
152
|
+
if (key.toString().includes('.')) {
|
|
153
|
+
// This is a subrow
|
|
154
|
+
var _key$split = key.split('.'),
|
|
155
|
+
_key$split2 = _slicedToArray(_key$split, 2),
|
|
156
|
+
parentId = _key$split2[0],
|
|
157
|
+
subRowIndex = _key$split2[1];
|
|
158
|
+
var parentRow = data[parseInt(parentId, 10)];
|
|
159
|
+
if (parentRow && parentRow.subRows) {
|
|
160
|
+
return parentRow.subRows[parseInt(subRowIndex, 10)];
|
|
161
|
+
}
|
|
162
|
+
} else {
|
|
163
|
+
// This is a parent row
|
|
164
|
+
return data[parseInt(key, 10)];
|
|
165
|
+
}
|
|
166
|
+
return null;
|
|
167
|
+
}).filter(function (row) {
|
|
168
|
+
return row;
|
|
169
|
+
});
|
|
170
|
+
};
|
|
171
|
+
|
|
172
|
+
// implemented to update selectedIds when props change
|
|
173
|
+
(0, _react.useEffect)(function () {
|
|
174
|
+
var currentSelectionIds = Object.keys(rowSelection);
|
|
175
|
+
// Check if the lengths are different or if any `selectedIds` are not in `rowSelection`
|
|
176
|
+
var isSelectionOutOfSync = selectedIds.length !== currentSelectionIds.length || selectedIds.some(function (id) {
|
|
177
|
+
return !rowSelection[id];
|
|
178
|
+
});
|
|
179
|
+
if (isSelectionOutOfSync) {
|
|
180
|
+
var newSelection = selectedIds.reduce(function (acc, id) {
|
|
181
|
+
acc[id] = true; // Set true for each id in selectedIds
|
|
182
|
+
return acc;
|
|
183
|
+
}, {});
|
|
184
|
+
setRowSelection(newSelection);
|
|
185
|
+
}
|
|
186
|
+
}, [selectedIds]);
|
|
187
|
+
(0, _react.useEffect)(function () {
|
|
188
|
+
if (hasSubRows) {
|
|
189
|
+
if (Object.keys(rowSelection).length > 0) {
|
|
190
|
+
selectData(getSelectedRows(rowSelection));
|
|
191
|
+
}
|
|
192
|
+
} else {
|
|
193
|
+
// DEPRECATED:
|
|
194
|
+
// selectData(table.getSelectedRowModel().rows.map(row => row.original));
|
|
195
|
+
|
|
196
|
+
var selectedRowIds = Object.keys(table.getState().rowSelection);
|
|
197
|
+
var selectedRows = selectedRowIds.map(function (rowId) {
|
|
198
|
+
var matchingRow = table.getSelectedRowModel().rows.find(function (row) {
|
|
199
|
+
return "".concat(row.id) === rowId;
|
|
200
|
+
});
|
|
201
|
+
return matchingRow ? matchingRow.original : null; // Return original if found
|
|
202
|
+
}).filter(function (row) {
|
|
203
|
+
return row !== null;
|
|
204
|
+
}); // Filter out any null values
|
|
205
|
+
selectData(selectedRows);
|
|
206
|
+
}
|
|
207
|
+
}, [rowSelection]);
|
|
208
|
+
(0, _react.useEffect)(function () {
|
|
209
|
+
if (typeof window !== 'undefined') {
|
|
210
|
+
setIsLoading(false);
|
|
211
|
+
}
|
|
212
|
+
}, []);
|
|
213
|
+
(0, _react.useEffect)(function () {
|
|
214
|
+
//scroll to the top of the table when the sorting changes
|
|
215
|
+
try {
|
|
216
|
+
var _rowVirtualizerInstan, _rowVirtualizerInstan2;
|
|
217
|
+
(_rowVirtualizerInstan = rowVirtualizerInstanceRef.current) === null || _rowVirtualizerInstan === void 0 || (_rowVirtualizerInstan2 = _rowVirtualizerInstan.scrollToIndex) === null || _rowVirtualizerInstan2 === void 0 || _rowVirtualizerInstan2.call(_rowVirtualizerInstan, 0);
|
|
218
|
+
} catch (error) {
|
|
219
|
+
console.error(error);
|
|
220
|
+
}
|
|
221
|
+
}, [sorting]);
|
|
222
|
+
|
|
223
|
+
/**
|
|
224
|
+
* Creates the columns for the DataGrid and generates it's default properties.
|
|
225
|
+
* @param {Array} columns
|
|
226
|
+
* @returns the DataGrid columns.
|
|
227
|
+
*/
|
|
228
|
+
var createColumns = function createColumns(columns) {
|
|
229
|
+
return columns.map(function (column) {
|
|
230
|
+
var _column$enableSorting, _column$enableColumnF, _column$enableColumnF2, _column$filterFn, _column$enableResizin, _column$grow, _column$enableClickTo, _column$enableColumnA;
|
|
231
|
+
return _objectSpread(_objectSpread({}, column), {}, {
|
|
232
|
+
enableSorting: (_column$enableSorting = column.enableSorting) !== null && _column$enableSorting !== void 0 ? _column$enableSorting : true,
|
|
233
|
+
enableColumnFilter: (_column$enableColumnF = column.enableColumnFilter) !== null && _column$enableColumnF !== void 0 ? _column$enableColumnF : true,
|
|
234
|
+
enableColumnFilterModes: (_column$enableColumnF2 = column.enableColumnFilterModes) !== null && _column$enableColumnF2 !== void 0 ? _column$enableColumnF2 : true,
|
|
235
|
+
filterFn: column.isDateColumn ? undefined : (_column$filterFn = column.filterFn) !== null && _column$filterFn !== void 0 ? _column$filterFn : 'contains',
|
|
236
|
+
enableResizing: (_column$enableResizin = column.enableResizing) !== null && _column$enableResizin !== void 0 ? _column$enableResizin : true,
|
|
237
|
+
grow: (_column$grow = column.grow) !== null && _column$grow !== void 0 ? _column$grow : true,
|
|
238
|
+
enableClickToCopy: (_column$enableClickTo = column.enableClickToCopy) !== null && _column$enableClickTo !== void 0 ? _column$enableClickTo : false,
|
|
239
|
+
enableColumnActions: (_column$enableColumnA = column.enableColumnActions) !== null && _column$enableColumnA !== void 0 ? _column$enableColumnA : false,
|
|
240
|
+
// sortingFn: --> basic default, datetime for date
|
|
241
|
+
sortingFn: column.sortingFn ? column.sortingFn : column.isDateColumn // Use custom sorting for date columns
|
|
242
|
+
? function (rowA, rowB, columnId) {
|
|
243
|
+
var valueA = rowA.getValue(columnId);
|
|
244
|
+
var valueB = rowB.getValue(columnId);
|
|
245
|
+
// Parse values as timestamps or handle invalid dates
|
|
246
|
+
var dateA = valueA && !isNaN(new Date(valueA).getTime()) ? new Date(valueA).getTime() : null;
|
|
247
|
+
var dateB = valueB && !isNaN(new Date(valueB).getTime()) ? new Date(valueB).getTime() : null;
|
|
248
|
+
if (dateA === null && dateB === null) return 0; // Both null, equal
|
|
249
|
+
if (dateA === null) return 1; // Null values go last
|
|
250
|
+
if (dateB === null) return -1; // Null values go last
|
|
251
|
+
return dateA - dateB; // Compare by timestamp
|
|
252
|
+
} : 'basic',
|
|
253
|
+
// Use default sorting for non-date columns
|
|
254
|
+
Cell: function Cell(props) {
|
|
255
|
+
var content = props.cell.getValue();
|
|
256
|
+
var cellClass = column.cellClass,
|
|
257
|
+
CustomCell = column.Cell,
|
|
258
|
+
type = column.type;
|
|
259
|
+
var typeValue = type && _DefaultCellTypes.DEFAULT_CELL_TYPES[type] ? _DefaultCellTypes.DEFAULT_CELL_TYPES[type](props) : null;
|
|
260
|
+
if (typeValue) content = typeValue;
|
|
261
|
+
if (CustomCell) content = /*#__PURE__*/_react["default"].createElement(CustomCell, _extends({}, props, {
|
|
262
|
+
typeValue: typeValue
|
|
263
|
+
}));
|
|
264
|
+
if (cellClass) content = /*#__PURE__*/_react["default"].createElement("div", {
|
|
265
|
+
className: cellClass
|
|
266
|
+
}, content);
|
|
267
|
+
return content;
|
|
268
|
+
}
|
|
269
|
+
});
|
|
270
|
+
});
|
|
271
|
+
};
|
|
272
|
+
var renderTopToolbarCustomActions = function renderTopToolbarCustomActions(_ref2) {
|
|
273
|
+
var table = _ref2.table;
|
|
274
|
+
var selectedRows = table.getSelectedRowModel().flatRows;
|
|
275
|
+
return /*#__PURE__*/_react["default"].createElement("div", {
|
|
276
|
+
style: {
|
|
277
|
+
display: 'flex',
|
|
278
|
+
flexDirection: 'column',
|
|
279
|
+
gap: '.5em',
|
|
280
|
+
width: '100%'
|
|
281
|
+
}
|
|
282
|
+
}, /*#__PURE__*/_react["default"].createElement("div", {
|
|
283
|
+
style: {
|
|
284
|
+
display: 'flex',
|
|
285
|
+
justifyContent: 'space-between'
|
|
286
|
+
}
|
|
287
|
+
}, /*#__PURE__*/_react["default"].createElement("div", {
|
|
288
|
+
style: {
|
|
289
|
+
display: 'flex',
|
|
290
|
+
flexDirection: 'row',
|
|
291
|
+
gap: '.5em',
|
|
292
|
+
flexWrap: 'wrap'
|
|
293
|
+
}
|
|
294
|
+
}, (actions === null || actions === void 0 ? void 0 : actions.length) > 0 && actions.map(function (e) {
|
|
295
|
+
var isVisible = e.visible !== undefined ? e.visible : true;
|
|
296
|
+
if (isVisible) {
|
|
297
|
+
return /*#__PURE__*/_react["default"].createElement(_ActionButton["default"], {
|
|
298
|
+
table: table,
|
|
299
|
+
key: e.key || e.name,
|
|
300
|
+
toggle: e.toggle,
|
|
301
|
+
active: e.active,
|
|
302
|
+
name: e.name,
|
|
303
|
+
tooltip: e.tooltip,
|
|
304
|
+
onClick: e["function"],
|
|
305
|
+
icon: e.icon,
|
|
306
|
+
color: e.color,
|
|
307
|
+
selectionMode: e.selectionMode,
|
|
308
|
+
confirmMessage: e.confirmMessage,
|
|
309
|
+
hasConfirmMessage: e.hasConfirmMessage,
|
|
310
|
+
disabled: e.disabled
|
|
311
|
+
});
|
|
312
|
+
}
|
|
313
|
+
})), !disableSideActions && /*#__PURE__*/_react["default"].createElement("div", {
|
|
314
|
+
style: {
|
|
315
|
+
display: 'flex',
|
|
316
|
+
alignSelf: 'flex-end',
|
|
317
|
+
justifyContent: 'end',
|
|
318
|
+
flexDirection: 'row',
|
|
319
|
+
flexWrap: 'wrap',
|
|
320
|
+
gap: 3
|
|
321
|
+
}
|
|
322
|
+
}, (extraActions === null || extraActions === void 0 ? void 0 : extraActions.length) > 0 && extraActions.map(function (a, idx) {
|
|
323
|
+
var _ref3 = a || {},
|
|
324
|
+
fnc = _ref3["function"],
|
|
325
|
+
content = _ref3.content,
|
|
326
|
+
_ref3$tooltip = _ref3.tooltip,
|
|
327
|
+
tooltip = _ref3$tooltip === void 0 ? '' : _ref3$tooltip,
|
|
328
|
+
icon = _ref3.icon,
|
|
329
|
+
_ref3$style = _ref3.style,
|
|
330
|
+
style = _ref3$style === void 0 ? {} : _ref3$style,
|
|
331
|
+
propsButton = _ref3.propsButton;
|
|
332
|
+
var defaultStyle = {
|
|
333
|
+
display: 'flex',
|
|
334
|
+
height: '36px',
|
|
335
|
+
alignItems: 'center',
|
|
336
|
+
justifyContent: 'center'
|
|
337
|
+
};
|
|
338
|
+
return /*#__PURE__*/_react["default"].createElement(_material.Tooltip, {
|
|
339
|
+
key: "extraActions" + idx,
|
|
340
|
+
title: tooltip || content,
|
|
341
|
+
arrow: true
|
|
342
|
+
}, /*#__PURE__*/_react["default"].createElement("span", null, /*#__PURE__*/_react["default"].createElement(_semanticUiReact.Button, _extends({
|
|
343
|
+
circular: true,
|
|
344
|
+
onClick: function onClick() {
|
|
345
|
+
return fnc ? fnc() : {};
|
|
346
|
+
},
|
|
347
|
+
content: content,
|
|
348
|
+
icon: (0, _ActionButton.renderIcon)(icon, tooltip || content),
|
|
349
|
+
style: _objectSpread(_objectSpread({}, defaultStyle), style)
|
|
350
|
+
}, propsButton))));
|
|
351
|
+
}), /*#__PURE__*/_react["default"].createElement(_ExportActions["default"], {
|
|
352
|
+
table: table,
|
|
353
|
+
data: createRows,
|
|
354
|
+
columns: columns,
|
|
355
|
+
hasExcelExport: hasExcelExport,
|
|
356
|
+
hasPdfExport: hasPdfExport
|
|
357
|
+
}), updateCache && /*#__PURE__*/_react["default"].createElement(_material.Tooltip, {
|
|
358
|
+
title: cacheUpdateText,
|
|
359
|
+
arrow: true
|
|
360
|
+
}, /*#__PURE__*/_react["default"].createElement("span", null, /*#__PURE__*/_react["default"].createElement(_semanticUiReact.Button, {
|
|
361
|
+
circular: true,
|
|
362
|
+
disabled: cacheUpdating,
|
|
363
|
+
onClick: function onClick() {
|
|
364
|
+
return updateCache();
|
|
365
|
+
},
|
|
366
|
+
content: /*#__PURE__*/_react["default"].createElement("img", {
|
|
367
|
+
src: cacheUpdating ? require('./images/cacheloading.png') : require('./images/cache.png'),
|
|
368
|
+
alt: "cache",
|
|
369
|
+
style: {
|
|
370
|
+
width: "60px"
|
|
371
|
+
}
|
|
372
|
+
}),
|
|
373
|
+
primary: true,
|
|
374
|
+
inverted: true,
|
|
375
|
+
style: {
|
|
376
|
+
display: 'flex',
|
|
377
|
+
height: '36px',
|
|
378
|
+
alignItems: 'center',
|
|
379
|
+
justifyContent: 'center'
|
|
380
|
+
}
|
|
381
|
+
}))), hasClearSelectionBtn && (!disableSelect || disableRows.length > 0) && /*#__PURE__*/_react["default"].createElement(_material.Tooltip, {
|
|
382
|
+
title: "Clear all rows selected",
|
|
383
|
+
arrow: true
|
|
384
|
+
}, /*#__PURE__*/_react["default"].createElement("span", null, /*#__PURE__*/_react["default"].createElement(_semanticUiReact.Button, {
|
|
385
|
+
circular: true,
|
|
386
|
+
disabled: selectedRows.length < 1,
|
|
387
|
+
onClick: function onClick() {
|
|
388
|
+
return table.resetRowSelection();
|
|
389
|
+
},
|
|
390
|
+
content: /*#__PURE__*/_react["default"].createElement("span", null, /*#__PURE__*/_react["default"].createElement(_semanticUiReact.Icon, {
|
|
391
|
+
style: {
|
|
392
|
+
margin: 0,
|
|
393
|
+
color: 'inherit'
|
|
394
|
+
},
|
|
395
|
+
name: "square outline"
|
|
396
|
+
}), /*#__PURE__*/_react["default"].createElement(_semanticUiReact.Icon, {
|
|
397
|
+
style: {
|
|
398
|
+
margin: 0,
|
|
399
|
+
color: 'inherit'
|
|
400
|
+
},
|
|
401
|
+
name: "close"
|
|
402
|
+
})),
|
|
403
|
+
primary: true,
|
|
404
|
+
basic: true
|
|
405
|
+
// style={{ display: 'flex', height: '40px', alignItems: 'center', justifyContent: 'center' }}
|
|
406
|
+
}))), hasClearFiltersBtn && /*#__PURE__*/_react["default"].createElement(_material.Tooltip, {
|
|
407
|
+
title: "Clear Filters",
|
|
408
|
+
arrow: true
|
|
409
|
+
}, /*#__PURE__*/_react["default"].createElement("span", null, /*#__PURE__*/_react["default"].createElement(_semanticUiReact.Button, {
|
|
410
|
+
circular: true,
|
|
411
|
+
onClick: function onClick() {
|
|
412
|
+
return table.resetColumnFilters();
|
|
413
|
+
},
|
|
414
|
+
content: /*#__PURE__*/_react["default"].createElement("span", null, /*#__PURE__*/_react["default"].createElement(_semanticUiReact.Icon, {
|
|
415
|
+
style: {
|
|
416
|
+
margin: 0,
|
|
417
|
+
color: 'inherit'
|
|
418
|
+
},
|
|
419
|
+
name: "filter"
|
|
420
|
+
}), /*#__PURE__*/_react["default"].createElement(_semanticUiReact.Icon, {
|
|
421
|
+
style: {
|
|
422
|
+
margin: 0,
|
|
423
|
+
color: 'inherit'
|
|
424
|
+
},
|
|
425
|
+
name: "close"
|
|
426
|
+
})),
|
|
427
|
+
inverted: true,
|
|
428
|
+
color: "orange"
|
|
429
|
+
// style={{ display: 'flex', height: '40px', alignItems: 'center', justifyContent: 'center' }}
|
|
430
|
+
}))), gridHelper && /*#__PURE__*/_react["default"].createElement(_material.Tooltip, {
|
|
431
|
+
title: "Grid Help",
|
|
432
|
+
arrow: true
|
|
433
|
+
}, /*#__PURE__*/_react["default"].createElement("span", null, /*#__PURE__*/_react["default"].createElement(_semanticUiReact.Button, {
|
|
434
|
+
circular: true,
|
|
435
|
+
onClick: function onClick() {
|
|
436
|
+
return setOpen(true);
|
|
437
|
+
},
|
|
438
|
+
icon: "help",
|
|
439
|
+
color: "blue"
|
|
440
|
+
// style={{ display: 'flex', height: '40px', alignItems: 'center', justifyContent: 'center' }}
|
|
441
|
+
}))))));
|
|
442
|
+
};
|
|
443
|
+
|
|
444
|
+
/**
|
|
445
|
+
* Generates all the table's properties.
|
|
446
|
+
*/
|
|
447
|
+
var table = (0, _materialReactTable.useMaterialReactTable)(_objectSpread(_objectSpread({
|
|
448
|
+
data: createRows,
|
|
449
|
+
columns: createColumns(columns),
|
|
450
|
+
enableRowSelection: disableRows.length > 0 ? function (row) {
|
|
451
|
+
return !disableRows.includes(row.original[rowKey]);
|
|
452
|
+
} : !disableSelect,
|
|
453
|
+
enableSubRowSelection: hasSubRows,
|
|
454
|
+
enableMultiRowSelection: enableMultiRowSelection,
|
|
455
|
+
enableFullScreenToggle: enableFullScreenToggle,
|
|
456
|
+
enableDensityToggle: enableDensityToggle,
|
|
457
|
+
enableGlobalFilter: enableGlobalFilter,
|
|
458
|
+
enableGlobalFilterModes: false,
|
|
459
|
+
enableToolbarInternalActions: false,
|
|
460
|
+
positionToolbarAlertBanner: "none",
|
|
461
|
+
enableColumnPinning: true,
|
|
462
|
+
enableColumnResizing: true,
|
|
463
|
+
selectAllMode: selectAllMode,
|
|
464
|
+
autoResetPageIndex: false,
|
|
465
|
+
enableColumnVirtualization: enableVirtualization,
|
|
466
|
+
enableRowVirtualization: enableVirtualization,
|
|
467
|
+
rowVirtualizerInstanceRef: rowVirtualizerInstanceRef,
|
|
468
|
+
//optional
|
|
469
|
+
rowVirtualizerOptions: {
|
|
470
|
+
overscan: 5
|
|
471
|
+
},
|
|
472
|
+
//optionally customize the row virtualizer
|
|
473
|
+
columnVirtualizerOptions: {
|
|
474
|
+
overscan: columns.length
|
|
475
|
+
},
|
|
476
|
+
//optionally customize the column virtualizer
|
|
477
|
+
state: {
|
|
478
|
+
isLoading: isLoading,
|
|
479
|
+
sorting: sorting,
|
|
480
|
+
showColumnFilters: true,
|
|
481
|
+
showGlobalFilter: enableGlobalFilter,
|
|
482
|
+
rowSelection: rowSelection,
|
|
483
|
+
columnVisibility: columnVisibilityState || {} // Add column visibility state
|
|
484
|
+
},
|
|
485
|
+
initialState: {
|
|
486
|
+
// showColumnFilters: true,
|
|
487
|
+
pagination: {
|
|
488
|
+
pageSize: pageSize,
|
|
489
|
+
pageIndex: 0
|
|
490
|
+
},
|
|
491
|
+
columnOrder: columnOrder || [] // Add column order to initial state
|
|
492
|
+
},
|
|
493
|
+
columnResizeMode: 'onEnd',
|
|
494
|
+
enableColumnFilterModes: enableColumnFilterModes,
|
|
495
|
+
globalFilterFn: globalFilterFn,
|
|
496
|
+
positionPagination: pagination,
|
|
497
|
+
paginationDisplayMode: 'pages',
|
|
498
|
+
muiPaginationProps: {
|
|
499
|
+
rowsPerPageOptions: itemsPerPage
|
|
500
|
+
},
|
|
501
|
+
layoutMode: 'grid',
|
|
502
|
+
enableStickyHeader: true,
|
|
503
|
+
filterFns: {
|
|
504
|
+
regex: function regex(row, id, filterValue) {
|
|
505
|
+
var regex = null;
|
|
506
|
+
try {
|
|
507
|
+
regex = new RegExp(filterValue, 'gi');
|
|
508
|
+
} catch (e) {
|
|
509
|
+
return regex;
|
|
510
|
+
}
|
|
511
|
+
return regex.test(row.getValue(id));
|
|
512
|
+
},
|
|
513
|
+
logical: function logical(row, id, filterValue) {
|
|
514
|
+
var result = (0, _filters.logicalFilter)(row, id, filterValue);
|
|
515
|
+
return result;
|
|
516
|
+
}
|
|
517
|
+
},
|
|
518
|
+
localization: {
|
|
519
|
+
filterRegex: 'Regex',
|
|
520
|
+
filterLogical: 'Logical'
|
|
521
|
+
},
|
|
522
|
+
renderColumnFilterModeMenuItems: function renderColumnFilterModeMenuItems(_ref4) {
|
|
523
|
+
var internalFilterOptions = _ref4.internalFilterOptions,
|
|
524
|
+
onSelectFilterMode = _ref4.onSelectFilterMode;
|
|
525
|
+
return [/*#__PURE__*/_react["default"].createElement(_ColumnFilter["default"], {
|
|
526
|
+
key: "filters",
|
|
527
|
+
filterOptions: internalFilterOptions,
|
|
528
|
+
onSelectFilterMode: onSelectFilterMode
|
|
529
|
+
})];
|
|
530
|
+
},
|
|
531
|
+
renderTopToolbar: function renderTopToolbar(_ref5) {
|
|
532
|
+
var table = _ref5.table;
|
|
533
|
+
var selectedRows = table.getSelectedRowModel().flatRows;
|
|
534
|
+
var _table$getState$pagin = table.getState().pagination,
|
|
535
|
+
pageIndex = _table$getState$pagin.pageIndex,
|
|
536
|
+
pageSize = _table$getState$pagin.pageSize;
|
|
537
|
+
var filteredRowCount = table.getFilteredRowModel().rows.length;
|
|
538
|
+
return /*#__PURE__*/_react["default"].createElement("div", {
|
|
539
|
+
style: {
|
|
540
|
+
display: 'flex',
|
|
541
|
+
flexDirection: 'column',
|
|
542
|
+
padding: '8px',
|
|
543
|
+
gap: '8px'
|
|
544
|
+
},
|
|
545
|
+
className: "grid-sticky-actions"
|
|
546
|
+
}, !disableAllActions && renderTopToolbarCustomActions && /*#__PURE__*/_react["default"].createElement("div", {
|
|
547
|
+
style: {
|
|
548
|
+
width: '100%'
|
|
549
|
+
}
|
|
550
|
+
}, renderTopToolbarCustomActions({
|
|
551
|
+
table: table
|
|
552
|
+
})), /*#__PURE__*/_react["default"].createElement("div", {
|
|
553
|
+
style: {
|
|
554
|
+
display: 'flex',
|
|
555
|
+
alignItems: 'center',
|
|
556
|
+
gap: '8px',
|
|
557
|
+
alignSelf: 'flex-end'
|
|
558
|
+
}
|
|
559
|
+
}, /*#__PURE__*/_react["default"].createElement(_material.Stack, {
|
|
560
|
+
direction: "row",
|
|
561
|
+
alignItems: "center",
|
|
562
|
+
justifyContent: "space-between"
|
|
563
|
+
}, /*#__PURE__*/_react["default"].createElement(_material.TablePagination, {
|
|
564
|
+
component: "div",
|
|
565
|
+
count: filteredRowCount,
|
|
566
|
+
page: 0,
|
|
567
|
+
onPageChange: function onPageChange() {},
|
|
568
|
+
rowsPerPage: pageSize,
|
|
569
|
+
onRowsPerPageChange: function onRowsPerPageChange(e) {
|
|
570
|
+
return table.setPageSize(Number(e.target.value));
|
|
571
|
+
},
|
|
572
|
+
rowsPerPageOptions: itemsPerPage,
|
|
573
|
+
labelDisplayedRows: function labelDisplayedRows() {
|
|
574
|
+
return "";
|
|
575
|
+
},
|
|
576
|
+
showFirstButton: false,
|
|
577
|
+
showLastButton: false,
|
|
578
|
+
sx: {
|
|
579
|
+
'& .MuiTablePagination-toolbar': {
|
|
580
|
+
padding: 0,
|
|
581
|
+
margin: 0,
|
|
582
|
+
gap: '4px'
|
|
583
|
+
},
|
|
584
|
+
'& *': {
|
|
585
|
+
margin: 0,
|
|
586
|
+
fontSize: '14px'
|
|
587
|
+
},
|
|
588
|
+
"& .MuiTablePagination-actions": {
|
|
589
|
+
display: "none"
|
|
590
|
+
}
|
|
591
|
+
}
|
|
592
|
+
}), /*#__PURE__*/_react["default"].createElement(_material.Pagination, {
|
|
593
|
+
count: Math.ceil(filteredRowCount / pageSize),
|
|
594
|
+
page: pageIndex + 1,
|
|
595
|
+
onChange: function onChange(_, value) {
|
|
596
|
+
return table.setPageIndex(value - 1);
|
|
597
|
+
},
|
|
598
|
+
showFirstButton: true,
|
|
599
|
+
showLastButton: true
|
|
600
|
+
})), /*#__PURE__*/_react["default"].createElement("div", {
|
|
601
|
+
style: {
|
|
602
|
+
marginRight: '5px',
|
|
603
|
+
fontSize: '14px'
|
|
604
|
+
}
|
|
605
|
+
}, /*#__PURE__*/_react["default"].createElement(_material.Tooltip, {
|
|
606
|
+
title: "Selected/Filtered/Total",
|
|
607
|
+
arrow: true
|
|
608
|
+
}, /*#__PURE__*/_react["default"].createElement("span", null, !disableSelect && "".concat(selectedRows.length, "/"), filteredRowCount, "/", createRows.length)))));
|
|
609
|
+
},
|
|
610
|
+
muiTableHeadProps: {
|
|
611
|
+
className: 'grid-sticky-header'
|
|
612
|
+
},
|
|
613
|
+
muiTableHeadCellProps: {
|
|
614
|
+
sx: _objectSpread({}, enableCompactStyleMode ? {
|
|
615
|
+
fontWeight: 'bold',
|
|
616
|
+
fontSize: "clamp(".concat(fontSize - 3, "px, 1.2vw, ").concat(fontSize + 1, "px)"),
|
|
617
|
+
borderRight: '1px solid #D7D7D7',
|
|
618
|
+
borderTop: '1px solid #D7D7D7',
|
|
619
|
+
padding: '7px',
|
|
620
|
+
margin: 0,
|
|
621
|
+
'& .Mui-TableHeadCell-ResizeHandle-Wrapper': {
|
|
622
|
+
padding: '0 !important',
|
|
623
|
+
width: '2px !important'
|
|
624
|
+
},
|
|
625
|
+
'& .MuiBox-root.css-17xkj1h': {
|
|
626
|
+
padding: '0 !important',
|
|
627
|
+
margin: '0 !important'
|
|
628
|
+
},
|
|
629
|
+
'& .MuiInputBase-root': {
|
|
630
|
+
fontSize: "clamp(".concat(fontSize - 4, "px, 1vw, ").concat(fontSize - 1, "px)"),
|
|
631
|
+
height: '17px',
|
|
632
|
+
padding: '0 2px',
|
|
633
|
+
width: '100%',
|
|
634
|
+
margin: 0
|
|
635
|
+
},
|
|
636
|
+
'& .MuiFormHelperText-root': {
|
|
637
|
+
fontSize: "clamp(".concat(fontSize - 4, "px, 0.9vw, ").concat(fontSize - 2, "px)")
|
|
638
|
+
},
|
|
639
|
+
'& .MuiCollapse-root': {
|
|
640
|
+
maxHeight: enableColumnFilterModes ? '37px' : '17px'
|
|
641
|
+
}
|
|
642
|
+
} : {
|
|
643
|
+
fontWeight: 'bold',
|
|
644
|
+
// fontSize: '11px',
|
|
645
|
+
fontSize: '14px',
|
|
646
|
+
borderRight: '1px solid #D7D7D7',
|
|
647
|
+
borderTop: '1px solid #D7D7D7',
|
|
648
|
+
padding: 'auto'
|
|
649
|
+
})
|
|
650
|
+
},
|
|
651
|
+
muiTableBodyCellProps: function muiTableBodyCellProps(_ref6) {
|
|
652
|
+
var row = _ref6.row;
|
|
653
|
+
var isDisabled = disableRows.length > 0 ? disableRows.includes(row.original[rowKey]) : false;
|
|
654
|
+
return {
|
|
655
|
+
sx: _objectSpread(_objectSpread({
|
|
656
|
+
fontWeight: row.getIsSelected() ? "bold" : "normal",
|
|
657
|
+
backgroundColor: isDisabled ? "#e3e3e3" : row.depth === 1 ? "lightgrey" : row.depth === 2 ? "grey" : "white",
|
|
658
|
+
borderRight: "1px solid #D7D7D7",
|
|
659
|
+
minHeight: rowHeight
|
|
660
|
+
}, enableCompactStyleMode ? {
|
|
661
|
+
padding: '2px',
|
|
662
|
+
paddingLeft: row.depth ? "".concat(row.depth * 7, " px") : '7px',
|
|
663
|
+
boxSizing: 'border-box',
|
|
664
|
+
fontSize: "clamp(".concat(fontSize - 3, "px, 1.1vw, ").concat(fontSize, "px)"),
|
|
665
|
+
whiteSpace: 'nowrap'
|
|
666
|
+
} : {
|
|
667
|
+
padding: "auto",
|
|
668
|
+
paddingLeft: row.depth ? "".concat(row.depth * 15, "px") : "12px",
|
|
669
|
+
boxSizing: "border-box"
|
|
670
|
+
}), getRowStyle && getRowStyle({
|
|
671
|
+
row: row
|
|
672
|
+
}))
|
|
673
|
+
};
|
|
674
|
+
},
|
|
675
|
+
muiTableContainerProps: {
|
|
676
|
+
sx: {
|
|
677
|
+
maxHeight: gridHeight
|
|
678
|
+
}
|
|
679
|
+
},
|
|
680
|
+
defaultDisplayColumn: {
|
|
681
|
+
enableResizing: true
|
|
682
|
+
},
|
|
683
|
+
defaultColumn: {
|
|
684
|
+
maxSize: 800,
|
|
685
|
+
// minSize: 50,
|
|
686
|
+
minSize: 15,
|
|
687
|
+
muiFilterCheckboxProps: {
|
|
688
|
+
sx: {
|
|
689
|
+
minWidth: 50
|
|
690
|
+
}
|
|
691
|
+
}
|
|
692
|
+
},
|
|
693
|
+
displayColumnDefOptions: {
|
|
694
|
+
'mrt-row-select': {
|
|
695
|
+
size: 60,
|
|
696
|
+
minSize: 10,
|
|
697
|
+
header: '',
|
|
698
|
+
muiTableBodyCellProps: {
|
|
699
|
+
sx: {
|
|
700
|
+
justifyContent: 'center',
|
|
701
|
+
borderRight: '1px solid #D7D7D7'
|
|
702
|
+
}
|
|
703
|
+
},
|
|
704
|
+
muiTableHeadCellProps: {
|
|
705
|
+
sx: _objectSpread(_objectSpread({}, enableCompactStyleMode ? {
|
|
706
|
+
fontSize: "".concat(fontSize, " px"),
|
|
707
|
+
justifyContent: 'center'
|
|
708
|
+
} : {
|
|
709
|
+
fontSize: '14px'
|
|
710
|
+
}), {}, {
|
|
711
|
+
padding: enableMultiRowSelection ? '0 8px' : '0 19px',
|
|
712
|
+
fontWeight: 'bold',
|
|
713
|
+
borderRight: '1px solid #D7D7D7',
|
|
714
|
+
borderTop: '1px solid #D7D7D7'
|
|
715
|
+
})
|
|
716
|
+
}
|
|
717
|
+
},
|
|
718
|
+
'mrt-row-expand': {
|
|
719
|
+
size: 25,
|
|
720
|
+
minSize: 10,
|
|
721
|
+
muiTableBodyCellProps: {
|
|
722
|
+
sx: {
|
|
723
|
+
justifyContent: 'center',
|
|
724
|
+
borderRight: '1px solid #D7D7D7'
|
|
725
|
+
}
|
|
726
|
+
},
|
|
727
|
+
muiTableHeadCellProps: {
|
|
728
|
+
sx: {
|
|
729
|
+
borderRight: '1px solid #D7D7D7',
|
|
730
|
+
borderTop: '1px solid #D7D7D7'
|
|
731
|
+
}
|
|
732
|
+
}
|
|
733
|
+
}
|
|
734
|
+
},
|
|
735
|
+
getRowId: function getRowId(originalRow) {
|
|
736
|
+
return originalRow[rowKey];
|
|
737
|
+
},
|
|
738
|
+
getRowProps: function getRowProps(row) {
|
|
739
|
+
var _row$original;
|
|
740
|
+
return {
|
|
741
|
+
style: {
|
|
742
|
+
backgroundColor: (_row$original = row.original) !== null && _row$original !== void 0 && _row$original.isSubRow ? '#f0f0f0' : 'white'
|
|
743
|
+
}
|
|
744
|
+
};
|
|
745
|
+
},
|
|
746
|
+
onRowSelectionChange: setRowSelection
|
|
747
|
+
}, !disableSelect && {
|
|
748
|
+
muiTableBodyRowProps: function muiTableBodyRowProps(_ref7) {
|
|
749
|
+
var row = _ref7.row;
|
|
750
|
+
return {
|
|
751
|
+
onClick: function onClick(event) {
|
|
752
|
+
event.preventDefault();
|
|
753
|
+
var rowId = row.id;
|
|
754
|
+
setRowSelection(function (prev) {
|
|
755
|
+
return prev[rowId] ? {} : _defineProperty({}, rowId, true);
|
|
756
|
+
});
|
|
757
|
+
},
|
|
758
|
+
sx: {
|
|
759
|
+
cursor: 'pointer',
|
|
760
|
+
backgroundColor: row.depth > 0 ? '#f0f0f0' : 'white'
|
|
761
|
+
}
|
|
762
|
+
};
|
|
763
|
+
}
|
|
764
|
+
}), {}, {
|
|
765
|
+
onSortingChange: setSorting,
|
|
766
|
+
enablePagination: enablePagination,
|
|
767
|
+
enableTopToolbar: enableTopToolbar,
|
|
768
|
+
enableBottomToolbar: enableBottomToolbar,
|
|
769
|
+
enableExpanding: enableExpanding,
|
|
770
|
+
// the subrow only affect the subrow checkbox and the parent row checkbox is not affected, the parent row checkbox is only affected by the parent row checkbox
|
|
771
|
+
muiSelectCheckboxProps: function muiSelectCheckboxProps(_ref9) {
|
|
772
|
+
var row = _ref9.row;
|
|
773
|
+
return hasSubRows && {
|
|
774
|
+
checked: rowSelection[row.id] || false,
|
|
775
|
+
indeterminate: false,
|
|
776
|
+
onChange: function onChange() {
|
|
777
|
+
var rowId = row.id.toString();
|
|
778
|
+
setRowSelection(function (prev) {
|
|
779
|
+
var newSelection = _objectSpread({}, prev);
|
|
780
|
+
if (newSelection[rowId]) {
|
|
781
|
+
// If the row is already selected, deselect it
|
|
782
|
+
delete newSelection[rowId];
|
|
783
|
+
} else {
|
|
784
|
+
// If the row is not selected, select it
|
|
785
|
+
newSelection[rowId] = true;
|
|
786
|
+
}
|
|
787
|
+
return newSelection;
|
|
788
|
+
});
|
|
789
|
+
}
|
|
790
|
+
};
|
|
791
|
+
}
|
|
792
|
+
// renderToolbarAlertBannerContent: (e) => {
|
|
793
|
+
// console.log(e);
|
|
794
|
+
// return (
|
|
795
|
+
// <div>
|
|
796
|
+
// Hello
|
|
797
|
+
// </div>
|
|
798
|
+
// )}
|
|
799
|
+
}));
|
|
800
|
+
(0, _react.useEffect)(function () {
|
|
801
|
+
var rows = table.getRowModel().rows.map(function (r) {
|
|
802
|
+
return r.original;
|
|
803
|
+
});
|
|
804
|
+
onVisibleRowsChange === null || onVisibleRowsChange === void 0 || onVisibleRowsChange(rows);
|
|
805
|
+
}, [table.getRowModel().rows]);
|
|
806
|
+
(0, _react.useEffect)(function () {
|
|
807
|
+
return enableFixedHeader && (0, _gridFixedHeader["default"])('fixed-header', enableFixedActions);
|
|
808
|
+
}, []);
|
|
809
|
+
return /*#__PURE__*/_react["default"].createElement(_xDatePickers.LocalizationProvider, {
|
|
810
|
+
dateAdapter: _AdapterDateFns.AdapterDateFns
|
|
811
|
+
}, open && /*#__PURE__*/_react["default"].createElement(_GridHelper["default"], {
|
|
812
|
+
onClose: function onClose() {
|
|
813
|
+
return setOpen(false);
|
|
814
|
+
},
|
|
815
|
+
open: open,
|
|
816
|
+
title: gridHelper.title,
|
|
817
|
+
content: gridHelper.content
|
|
818
|
+
}), /*#__PURE__*/_react["default"].createElement("span", {
|
|
819
|
+
id: "fixed-header"
|
|
820
|
+
}, /*#__PURE__*/_react["default"].createElement(_materialReactTable.MaterialReactTable, {
|
|
821
|
+
table: table
|
|
822
|
+
})));
|
|
823
|
+
};
|
|
824
|
+
DataGrid.propTypes = {
|
|
825
|
+
columns: _propTypes["default"].array.isRequired,
|
|
826
|
+
// array of the data grid columns
|
|
827
|
+
columnVisibilityState: _propTypes["default"].object,
|
|
828
|
+
// object for column visibility state
|
|
829
|
+
columnOrder: _propTypes["default"].array,
|
|
830
|
+
// array for column order
|
|
831
|
+
createRows: _propTypes["default"].array.isRequired,
|
|
832
|
+
// array of the data grid data
|
|
833
|
+
actions: _propTypes["default"].arrayOf(_propTypes["default"].shape({
|
|
834
|
+
name: _propTypes["default"].string,
|
|
835
|
+
"function": _propTypes["default"].func.isRequired,
|
|
836
|
+
tooltip: _propTypes["default"].string,
|
|
837
|
+
color: _propTypes["default"].oneOf(['blue', 'red', 'green', 'yellow', 'orange', 'black', 'grey', 'teal', 'brown', 'violet', 'purple', 'olive', 'pink']),
|
|
838
|
+
icon: _propTypes["default"].oneOfType([_propTypes["default"].element, _propTypes["default"].string]),
|
|
839
|
+
selectionMode: _propTypes["default"].oneOf(['single', 'multi', 'always']),
|
|
840
|
+
confirmMessage: _propTypes["default"].oneOfType([_propTypes["default"].element, _propTypes["default"].string]),
|
|
841
|
+
hasConfirmMessage: _propTypes["default"].bool
|
|
842
|
+
})),
|
|
843
|
+
// array of objects -> each object represents a single data grid action button
|
|
844
|
+
extraActions: _propTypes["default"].arrayOf(_propTypes["default"].shape({
|
|
845
|
+
tooltip: _propTypes["default"].string,
|
|
846
|
+
"function": _propTypes["default"].func.isRequired,
|
|
847
|
+
content: _propTypes["default"].oneOfType([_propTypes["default"].string, _propTypes["default"].element]).isRequired,
|
|
848
|
+
icon: _propTypes["default"].oneOfType([_propTypes["default"].element, _propTypes["default"].string]),
|
|
849
|
+
style: _propTypes["default"].object,
|
|
850
|
+
propsButton: _propTypes["default"].object
|
|
851
|
+
})),
|
|
852
|
+
// array of objects -> each object represents a single data grid extra action button
|
|
853
|
+
hasExcelExport: _propTypes["default"].bool,
|
|
854
|
+
// defines whether there is an export button for excel
|
|
855
|
+
hasPdfExport: _propTypes["default"].bool,
|
|
856
|
+
// defines whether there is an export button for pdf
|
|
857
|
+
rowHeight: _propTypes["default"].number,
|
|
858
|
+
// defines the row height
|
|
859
|
+
fontSize: _propTypes["default"].number,
|
|
860
|
+
// defines the font size
|
|
861
|
+
globalFilterFn: _propTypes["default"].oneOf(['contains', 'fuzzy', 'between', 'equals', 'greaterThan', 'lessThan', 'notEquals', 'lessThanOrEqualTo', 'greaterThanOrEqualTo', 'empty', 'notEmpty', 'startsWith', 'endsWith', 'endsWith', 'betweenInclusive']),
|
|
862
|
+
// defines the global filter option
|
|
863
|
+
disableSelect: _propTypes["default"].bool,
|
|
864
|
+
// defines whether the data grid has row selection (checkboxes)
|
|
865
|
+
enableColumnFilterModes: _propTypes["default"].bool,
|
|
866
|
+
// enables/disables column filtering modes
|
|
867
|
+
hasClearFiltersBtn: _propTypes["default"].bool,
|
|
868
|
+
// Defines whether there is an clear filters button
|
|
869
|
+
pagination: _propTypes["default"].oneOf(['top', 'bottom', 'both']),
|
|
870
|
+
// defines the pagination position
|
|
871
|
+
itemsPerPage: _propTypes["default"].arrayOf(_propTypes["default"].number),
|
|
872
|
+
// defines the number of rows per page
|
|
873
|
+
selectData: _propTypes["default"].func,
|
|
874
|
+
//
|
|
875
|
+
rowKey: _propTypes["default"].string,
|
|
876
|
+
//
|
|
877
|
+
pageSize: _propTypes["default"].number,
|
|
878
|
+
//
|
|
879
|
+
enableMultiRowSelection: _propTypes["default"].bool,
|
|
880
|
+
enableFullScreenToggle: _propTypes["default"].bool,
|
|
881
|
+
enableDensityToggle: _propTypes["default"].bool,
|
|
882
|
+
enableGlobalFilter: _propTypes["default"].bool,
|
|
883
|
+
enableTopToolbar: _propTypes["default"].bool,
|
|
884
|
+
// Defines whether there is top toolbar
|
|
885
|
+
enableBottomToolbar: _propTypes["default"].bool,
|
|
886
|
+
// Defines whether there is bottom toolbar
|
|
887
|
+
enablePagination: _propTypes["default"].bool,
|
|
888
|
+
// Defines whether there is an pagination
|
|
889
|
+
enableVirtualization: _propTypes["default"].bool,
|
|
890
|
+
gridHeight: _propTypes["default"].oneOfType([_propTypes["default"].number, _propTypes["default"].string]),
|
|
891
|
+
// defines the height of the grid content, can be a number like 600, or a string like '600px' or 'fit-content'
|
|
892
|
+
gridHelper: _propTypes["default"].oneOfType([_propTypes["default"].shape({
|
|
893
|
+
title: _propTypes["default"].oneOfType([_propTypes["default"].string, _propTypes["default"].element]).isRequired,
|
|
894
|
+
// title is required if gridHelper exists
|
|
895
|
+
content: _propTypes["default"].oneOfType([_propTypes["default"].string, _propTypes["default"].element]).isRequired // content is required if gridHelper exists
|
|
896
|
+
}), _propTypes["default"].oneOf([null]) // Allow null as a valid value
|
|
897
|
+
]),
|
|
898
|
+
disableRows: _propTypes["default"].array,
|
|
899
|
+
selectAllMode: _propTypes["default"].string,
|
|
900
|
+
onVisibleRowsChange: _propTypes["default"].func,
|
|
901
|
+
// Function called with the currently visible rows whenever the table updates its visible row model.
|
|
902
|
+
enableFixedHeader: _propTypes["default"].bool,
|
|
903
|
+
// Defines whether headers are pinned to the top
|
|
904
|
+
enableFixedActions: _propTypes["default"].bool,
|
|
905
|
+
// Defines whether action buttons are pinned to the top
|
|
906
|
+
updateCache: _propTypes["default"].func,
|
|
907
|
+
// Function triggered when the cache update button is clicked.
|
|
908
|
+
cacheUpdateText: _propTypes["default"].string,
|
|
909
|
+
// Tooltip text shown on hover over the cache update button.
|
|
910
|
+
cacheUpdating: _propTypes["default"].bool,
|
|
911
|
+
// Indicates whether a cache update is currently in progress.
|
|
912
|
+
getRowStyle: _propTypes["default"].func,
|
|
913
|
+
// Function that defines custom styles for each row.
|
|
914
|
+
enableCompactStyleMode: _propTypes["default"].bool,
|
|
915
|
+
// Enables/disables the compact style mode
|
|
916
|
+
hasClearSelectionBtn: _propTypes["default"].bool,
|
|
917
|
+
// Defines whether there is an clear selection button
|
|
918
|
+
disableAllActions: _propTypes["default"].bool,
|
|
919
|
+
// Defines whether the Top Toolbar has all actions
|
|
920
|
+
disableSideActions: _propTypes["default"].bool // Defines whether the Top Toolbar has side actions
|
|
921
|
+
};
|
|
922
|
+
var _default = exports["default"] = DataGrid; // DataGrid.defaultProps = {
|
|
923
|
+
// hasExcelExport: false,
|
|
924
|
+
// hasPdfExport: false,
|
|
925
|
+
// globalFilterFn: 'contains',
|
|
926
|
+
// enableColumnFilterModes: true,
|
|
927
|
+
// disableSelect: false,
|
|
928
|
+
// pagination: 'both',
|
|
929
|
+
// itemsPerPage: [10, 15, 20, 25],
|
|
930
|
+
// rowHeight: 60,
|
|
931
|
+
// };
|