@insticc/react-datagrid-2 1.1.15 → 1.1.16

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.
@@ -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
+ // };