@insticc/react-datagrid-2 1.0.28 → 1.0.30

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.
@@ -31,7 +31,9 @@ var ActionButton = function ActionButton(_ref) {
31
31
  _ref$confirmMessage = _ref.confirmMessage,
32
32
  confirmMessage = _ref$confirmMessage === void 0 ? 'Are you sure you want to perform this action?' : _ref$confirmMessage,
33
33
  _ref$hasConfirmMessag = _ref.hasConfirmMessage,
34
- hasConfirmMessage = _ref$hasConfirmMessag === void 0 ? true : _ref$hasConfirmMessag;
34
+ hasConfirmMessage = _ref$hasConfirmMessag === void 0 ? true : _ref$hasConfirmMessag,
35
+ _ref$disabled = _ref.disabled,
36
+ disabled = _ref$disabled === void 0 ? false : _ref$disabled;
35
37
  var _useState = (0, _react.useState)(false),
36
38
  _useState2 = _slicedToArray(_useState, 2),
37
39
  enableConfirmMessage = _useState2[0],
@@ -125,7 +127,7 @@ var ActionButton = function ActionButton(_ref) {
125
127
  title: tooltip || name,
126
128
  arrow: true
127
129
  }, /*#__PURE__*/_react["default"].createElement("span", null, /*#__PURE__*/_react["default"].createElement(_semanticUiReact.Button, {
128
- disabled: shouldDisableActionButton(table),
130
+ disabled: disabled || shouldDisableActionButton(table),
129
131
  onClick: function onClick() {
130
132
  return hasConfirmMessage ? setEnableConfirmMessage(true) : handleConfirm();
131
133
  },
@@ -189,7 +191,9 @@ ActionButton.propTypes = {
189
191
  // the action button selection mode
190
192
  confirmMessage: _propTypes["default"].string,
191
193
  // the action confirming message
192
- hasConfirmMessage: _propTypes["default"].bool // defines whether there is a confirm message for the action button
194
+ hasConfirmMessage: _propTypes["default"].bool,
195
+ // defines whether there is a confirm message for the action button
196
+ disabled: _propTypes["default"].bool // defines whether the button is disabled
193
197
  };
194
198
 
195
199
  // ActionButton.defaultProps = {
@@ -13,6 +13,7 @@ var _material = require("@mui/material");
13
13
  var _ColumnFilter = _interopRequireDefault(require("./ColumnFilter"));
14
14
  var _ExportActions = _interopRequireDefault(require("./ExportActions"));
15
15
  var _ActionButton = _interopRequireDefault(require("./ActionButton"));
16
+ var _GridHelper = _interopRequireDefault(require("./utils/GridHelper"));
16
17
  var _filters = require("./utils/filters");
17
18
  require("bootstrap/dist/css/bootstrap.min.css");
18
19
  require("semantic-ui-css/semantic.min.css");
@@ -80,7 +81,9 @@ var DataGrid = function DataGrid(_ref) {
80
81
  _ref$enableVirtualiza = _ref.enableVirtualization,
81
82
  enableVirtualization = _ref$enableVirtualiza === void 0 ? false : _ref$enableVirtualiza,
82
83
  _ref$gridHeight = _ref.gridHeight,
83
- gridHeight = _ref$gridHeight === void 0 ? 600 : _ref$gridHeight;
84
+ gridHeight = _ref$gridHeight === void 0 ? 600 : _ref$gridHeight,
85
+ _ref$gridHelper = _ref.gridHelper,
86
+ gridHelper = _ref$gridHelper === void 0 ? null : _ref$gridHelper;
84
87
  var _useState = (0, _react.useState)(selectedIds.reduce(function (a, v) {
85
88
  return _objectSpread(_objectSpread({}, a), {}, _defineProperty({}, v, true));
86
89
  }, {})),
@@ -95,6 +98,10 @@ var DataGrid = function DataGrid(_ref) {
95
98
  _useState6 = _slicedToArray(_useState5, 2),
96
99
  sorting = _useState6[0],
97
100
  setSorting = _useState6[1];
101
+ var _useState7 = (0, _react.useState)(false),
102
+ _useState8 = _slicedToArray(_useState7, 2),
103
+ open = _useState8[0],
104
+ setOpen = _useState8[1];
98
105
  //optionally access the underlying virtualizer instance
99
106
  var rowVirtualizerInstanceRef = (0, _react.useRef)(null);
100
107
 
@@ -195,13 +202,19 @@ var DataGrid = function DataGrid(_ref) {
195
202
  enableClickToCopy: (_column$enableClickTo = column.enableClickToCopy) !== null && _column$enableClickTo !== void 0 ? _column$enableClickTo : false,
196
203
  enableColumnActions: (_column$enableColumnA = column.enableColumnActions) !== null && _column$enableColumnA !== void 0 ? _column$enableColumnA : false,
197
204
  // sortingFn: --> basic default, datetime for date
198
- sortingFn: column.isDateColumn ? function (rowA, rowB, columnId) {
199
- var dateA = rowA.getValue(columnId) ? new Date(rowA.getValue(columnId)).getTime() : null;
200
- var dateB = rowB.getValue(columnId) ? new Date(rowB.getValue(columnId)).getTime() : null;
201
- if (dateA === null) return 1;
202
- if (dateB === null) return -1;
203
- return dateA - dateB; // Sort by timestamp
205
+ sortingFn: column.sortingFn ? column.sortingFn : column.isDateColumn // Use custom sorting for date columns
206
+ ? function (rowA, rowB, columnId) {
207
+ var valueA = rowA.getValue(columnId);
208
+ var valueB = rowB.getValue(columnId);
209
+ // Parse values as timestamps or handle invalid dates
210
+ var dateA = valueA && !isNaN(new Date(valueA).getTime()) ? new Date(valueA).getTime() : null;
211
+ var dateB = valueB && !isNaN(new Date(valueB).getTime()) ? new Date(valueB).getTime() : null;
212
+ if (dateA === null && dateB === null) return 0; // Both null, equal
213
+ if (dateA === null) return 1; // Null values go last
214
+ if (dateB === null) return -1; // Null values go last
215
+ return dateA - dateB; // Compare by timestamp
204
216
  } : 'basic',
217
+ // Use default sorting for non-date columns
205
218
  Cell: function Cell(props) {
206
219
  return column.cellClass ? /*#__PURE__*/_react["default"].createElement("div", {
207
220
  className: column.cellClass
@@ -329,7 +342,8 @@ var DataGrid = function DataGrid(_ref) {
329
342
  color: e.color,
330
343
  selectionMode: e.selectionMode,
331
344
  confirmMessage: e.confirmMessage,
332
- hasConfirmMessage: e.hasConfirmMessage
345
+ hasConfirmMessage: e.hasConfirmMessage,
346
+ disabled: e.disabled
333
347
  });
334
348
  }
335
349
  }), /*#__PURE__*/_react["default"].createElement(_ExportActions["default"], {
@@ -349,24 +363,32 @@ var DataGrid = function DataGrid(_ref) {
349
363
  title: "Clear all rows selected",
350
364
  arrow: true
351
365
  }, /*#__PURE__*/_react["default"].createElement("span", null, /*#__PURE__*/_react["default"].createElement(_semanticUiReact.Button, {
366
+ circular: true,
352
367
  disabled: selectedRows.length < 1,
353
368
  onClick: function onClick() {
354
369
  return table.resetRowSelection();
355
370
  },
356
- icon: "redo",
357
- content: "Clear Selection",
371
+ content: /*#__PURE__*/_react["default"].createElement("span", null, /*#__PURE__*/_react["default"].createElement(_semanticUiReact.Icon, {
372
+ style: {
373
+ margin: 0,
374
+ color: 'inherit'
375
+ },
376
+ name: "square outline"
377
+ }), /*#__PURE__*/_react["default"].createElement(_semanticUiReact.Icon, {
378
+ style: {
379
+ margin: 0,
380
+ color: 'inherit'
381
+ },
382
+ name: "close"
383
+ })),
358
384
  primary: true,
359
- basic: true,
360
- style: {
361
- display: 'flex',
362
- height: '40px',
363
- alignItems: 'center',
364
- justifyContent: 'center'
365
- }
385
+ basic: true
386
+ // style={{ display: 'flex', height: '40px', alignItems: 'center', justifyContent: 'center' }}
366
387
  }))), /*#__PURE__*/_react["default"].createElement(_material.Tooltip, {
367
388
  title: "Clear Filters",
368
389
  arrow: true
369
390
  }, /*#__PURE__*/_react["default"].createElement("span", null, /*#__PURE__*/_react["default"].createElement(_semanticUiReact.Button, {
391
+ circular: true,
370
392
  onClick: function onClick() {
371
393
  return table.resetColumnFilters();
372
394
  },
@@ -384,13 +406,19 @@ var DataGrid = function DataGrid(_ref) {
384
406
  name: "close"
385
407
  })),
386
408
  inverted: true,
387
- color: "orange",
388
- style: {
389
- display: 'flex',
390
- height: '40px',
391
- alignItems: 'center',
392
- justifyContent: 'center'
393
- }
409
+ color: "orange"
410
+ // style={{ display: 'flex', height: '40px', alignItems: 'center', justifyContent: 'center' }}
411
+ }))), gridHelper && /*#__PURE__*/_react["default"].createElement(_material.Tooltip, {
412
+ title: "Grid Help",
413
+ arrow: true
414
+ }, /*#__PURE__*/_react["default"].createElement("span", null, /*#__PURE__*/_react["default"].createElement(_semanticUiReact.Button, {
415
+ circular: true,
416
+ onClick: function onClick() {
417
+ return setOpen(true);
418
+ },
419
+ icon: "help",
420
+ color: "blue"
421
+ // style={{ display: 'flex', height: '40px', alignItems: 'center', justifyContent: 'center' }}
394
422
  }))))), /*#__PURE__*/_react["default"].createElement("div", {
395
423
  style: {
396
424
  alignSelf: 'flex-end',
@@ -537,7 +565,13 @@ var DataGrid = function DataGrid(_ref) {
537
565
  // </div>
538
566
  // )}
539
567
  });
540
- return /*#__PURE__*/_react["default"].createElement("div", null, /*#__PURE__*/_react["default"].createElement(_materialReactTable.MaterialReactTable, {
568
+ return /*#__PURE__*/_react["default"].createElement("div", null, open && /*#__PURE__*/_react["default"].createElement(_GridHelper["default"], {
569
+ onClose: function onClose() {
570
+ return setOpen(false);
571
+ },
572
+ open: open,
573
+ content: gridHelper
574
+ }), /*#__PURE__*/_react["default"].createElement(_materialReactTable.MaterialReactTable, {
541
575
  table: table
542
576
  }));
543
577
  };
@@ -590,7 +624,9 @@ DataGrid.propTypes = {
590
624
  enableDensityToggle: _propTypes["default"].bool,
591
625
  enableGlobalFilter: _propTypes["default"].bool,
592
626
  enableVirtualization: _propTypes["default"].bool,
593
- gridHeight: _propTypes["default"].oneOfType([_propTypes["default"].number, _propTypes["default"].string]) // defines the height of the grid content, can be a number like 600, or a string like '600px' or 'fit-content'
627
+ gridHeight: _propTypes["default"].oneOfType([_propTypes["default"].number, _propTypes["default"].string]),
628
+ // defines the height of the grid content, can be a number like 600, or a string like '600px' or 'fit-content'
629
+ gridHelper: _propTypes["default"].oneOfType([_propTypes["default"].string, _propTypes["default"].element])
594
630
  };
595
631
  var _default = exports["default"] = DataGrid; // DataGrid.defaultProps = {
596
632
  // hasExcelExport: false,
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports["default"] = void 0;
7
+ var _react = _interopRequireDefault(require("react"));
8
+ var _semanticUiReact = require("semantic-ui-react");
9
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
10
+ var GridHelper = function GridHelper(_ref) {
11
+ var open = _ref.open,
12
+ content = _ref.content,
13
+ onClose = _ref.onClose;
14
+ return /*#__PURE__*/_react["default"].createElement(_semanticUiReact.Modal, {
15
+ open: open,
16
+ centered: true,
17
+ style: {
18
+ top: 'auto',
19
+ right: 'auto',
20
+ left: 'auto',
21
+ bottom: 'auto',
22
+ height: 'fit-content'
23
+ }
24
+ }, /*#__PURE__*/_react["default"].createElement(_semanticUiReact.Modal.Header, null, "Grid Helper"), /*#__PURE__*/_react["default"].createElement(_semanticUiReact.Modal.Content, null, content), /*#__PURE__*/_react["default"].createElement(_semanticUiReact.Modal.Actions, null, /*#__PURE__*/_react["default"].createElement(_semanticUiReact.Button, {
25
+ primary: true,
26
+ onClick: onClose
27
+ }, "Close")));
28
+ };
29
+ var _default = exports["default"] = GridHelper;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@insticc/react-datagrid-2",
3
- "version": "1.0.28",
3
+ "version": "1.0.30",
4
4
  "description": "",
5
5
  "main": "build/index.js",
6
6
  "scripts": {