qbs-react-grid 1.1.11 → 1.1.13

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.
@@ -2,11 +2,12 @@ import _extends from "@babel/runtime/helpers/esm/extends";
2
2
  import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
3
3
  var _excluded = ["rowData", "onChange", "checkedKeys", "dataKey", "dataTheme"],
4
4
  _excluded2 = ["rowData", "dataKey", "expandedRowKeys", "onChange"],
5
- _excluded3 = ["rowData", "renderCell", "toolTip", "dataKey", "onChange", "rowClick", "type", "link"];
5
+ _excluded3 = ["rowData", "renderCell", "toolTip", "dataKey", "onChange", "rowClick", "type", "path", "link"];
6
6
  import React from 'react';
7
7
  import Cell from '../Cell';
8
8
  import { handleCellFormat } from './utilities/handleFormatCell';
9
9
  import MenuDropDown from './utilities/menuDropDown';
10
+ import { Link } from 'react-router-dom';
10
11
  var CHECKBOX_LINE_HEIGHT = '36px';
11
12
  export var CheckCell = /*#__PURE__*/React.memo(function (_ref) {
12
13
  var rowData = _ref.rowData,
@@ -72,7 +73,7 @@ export var ExpandCell = /*#__PURE__*/React.memo(function (_ref3) {
72
73
  }) ? '-' : '+'));
73
74
  });
74
75
  export var CustomTableCell = /*#__PURE__*/React.memo(function (_ref4) {
75
- var _renderCell, _renderCell2;
76
+ var _renderCell, _path, _renderCell2, _renderCell3;
76
77
  var rowData = _ref4.rowData,
77
78
  renderCell = _ref4.renderCell,
78
79
  toolTip = _ref4.toolTip,
@@ -80,14 +81,18 @@ export var CustomTableCell = /*#__PURE__*/React.memo(function (_ref4) {
80
81
  onChange = _ref4.onChange,
81
82
  rowClick = _ref4.rowClick,
82
83
  type = _ref4.type,
84
+ path = _ref4.path,
83
85
  link = _ref4.link,
84
86
  props = _objectWithoutPropertiesLoose(_ref4, _excluded3);
85
87
  return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Cell, _extends({}, props, {
86
88
  dataKey: dataKey
87
- }), link ? /*#__PURE__*/React.createElement("a", {
89
+ }), link && !path ? /*#__PURE__*/React.createElement("a", {
88
90
  onClick: function onClick() {
89
91
  return rowClick === null || rowClick === void 0 ? void 0 : rowClick(rowData);
90
92
  },
91
93
  className: "qbs-table-row-link"
92
- }, renderCell ? (_renderCell = renderCell(rowData)) === null || _renderCell === void 0 ? void 0 : _renderCell.cell : handleCellFormat(rowData[dataKey], type)) : /*#__PURE__*/React.createElement(React.Fragment, null, renderCell ? (_renderCell2 = renderCell(rowData)) === null || _renderCell2 === void 0 ? void 0 : _renderCell2.cell : handleCellFormat(rowData[dataKey], type))));
94
+ }, renderCell ? (_renderCell = renderCell(rowData)) === null || _renderCell === void 0 ? void 0 : _renderCell.cell : handleCellFormat(rowData[dataKey], type)) : path ? /*#__PURE__*/React.createElement(Link, {
95
+ to: (_path = path === null || path === void 0 ? void 0 : path(rowData)) != null ? _path : '',
96
+ className: "qbs-table-row-link"
97
+ }, renderCell ? (_renderCell2 = renderCell(rowData)) === null || _renderCell2 === void 0 ? void 0 : _renderCell2.cell : handleCellFormat(rowData[dataKey], type)) : /*#__PURE__*/React.createElement(React.Fragment, null, renderCell ? (_renderCell3 = renderCell(rowData)) === null || _renderCell3 === void 0 ? void 0 : _renderCell3.cell : handleCellFormat(rowData[dataKey], type))));
93
98
  });
@@ -311,6 +311,7 @@ var QbsTable = function QbsTable(_ref) {
311
311
  renderCell = _ref3.renderCell,
312
312
  isVisible = _ref3.isVisible,
313
313
  link = _ref3.link,
314
+ getPath = _ref3.getPath,
314
315
  rowClick = _ref3.rowClick,
315
316
  sortKey = _ref3.sortKey,
316
317
  type = _ref3.type;
@@ -335,11 +336,12 @@ var QbsTable = function QbsTable(_ref) {
335
336
  verticalAlign: 'middle',
336
337
  className: " " + classes.headerClass,
337
338
  sortKey: child.sortKey
338
- }, child.title), customCell || child.link ? /*#__PURE__*/React.createElement(CustomTableCell, {
339
+ }, child.title), child.customCell || child.link ? /*#__PURE__*/React.createElement(CustomTableCell, {
339
340
  renderCell: child.renderCell,
340
341
  dataKey: child.field,
341
342
  dataTheme: dataTheme,
342
343
  type: child.type,
344
+ path: child.getPath,
343
345
  link: child.link
344
346
  }) : /*#__PURE__*/React.createElement(Cell, {
345
347
  className: " " + classes.cellClass,
@@ -364,6 +366,7 @@ var QbsTable = function QbsTable(_ref) {
364
366
  dataKey: field,
365
367
  rowClick: rowClick,
366
368
  type: type,
369
+ path: getPath,
367
370
  dataTheme: dataTheme,
368
371
  link: link
369
372
  }) : /*#__PURE__*/React.createElement(Cell, {
@@ -18,6 +18,7 @@ export interface ColumnBase {
18
18
  rowClick?: (rowData: any) => void;
19
19
  sortKey?: string;
20
20
  type?: string;
21
+ getPath?: (data: any) => string;
21
22
  }
22
23
  export interface QbsColumnProps extends ColumnBase {
23
24
  grouped?: boolean;
@@ -9,9 +9,10 @@ var _react = _interopRequireDefault(require("react"));
9
9
  var _Cell = _interopRequireDefault(require("../Cell"));
10
10
  var _handleFormatCell = require("./utilities/handleFormatCell");
11
11
  var _menuDropDown = _interopRequireDefault(require("./utilities/menuDropDown"));
12
+ var _reactRouterDom = require("react-router-dom");
12
13
  var _excluded = ["rowData", "onChange", "checkedKeys", "dataKey", "dataTheme"],
13
14
  _excluded2 = ["rowData", "dataKey", "expandedRowKeys", "onChange"],
14
- _excluded3 = ["rowData", "renderCell", "toolTip", "dataKey", "onChange", "rowClick", "type", "link"];
15
+ _excluded3 = ["rowData", "renderCell", "toolTip", "dataKey", "onChange", "rowClick", "type", "path", "link"];
15
16
  var CHECKBOX_LINE_HEIGHT = '36px';
16
17
  var CheckCell = /*#__PURE__*/_react["default"].memo(function (_ref) {
17
18
  var rowData = _ref.rowData,
@@ -80,7 +81,7 @@ var ExpandCell = /*#__PURE__*/_react["default"].memo(function (_ref3) {
80
81
  });
81
82
  exports.ExpandCell = ExpandCell;
82
83
  var CustomTableCell = /*#__PURE__*/_react["default"].memo(function (_ref4) {
83
- var _renderCell, _renderCell2;
84
+ var _renderCell, _path, _renderCell2, _renderCell3;
84
85
  var rowData = _ref4.rowData,
85
86
  renderCell = _ref4.renderCell,
86
87
  toolTip = _ref4.toolTip,
@@ -88,15 +89,19 @@ var CustomTableCell = /*#__PURE__*/_react["default"].memo(function (_ref4) {
88
89
  onChange = _ref4.onChange,
89
90
  rowClick = _ref4.rowClick,
90
91
  type = _ref4.type,
92
+ path = _ref4.path,
91
93
  link = _ref4.link,
92
94
  props = (0, _objectWithoutPropertiesLoose2["default"])(_ref4, _excluded3);
93
95
  return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement(_Cell["default"], (0, _extends2["default"])({}, props, {
94
96
  dataKey: dataKey
95
- }), link ? /*#__PURE__*/_react["default"].createElement("a", {
97
+ }), link && !path ? /*#__PURE__*/_react["default"].createElement("a", {
96
98
  onClick: function onClick() {
97
99
  return rowClick === null || rowClick === void 0 ? void 0 : rowClick(rowData);
98
100
  },
99
101
  className: "qbs-table-row-link"
100
- }, renderCell ? (_renderCell = renderCell(rowData)) === null || _renderCell === void 0 ? void 0 : _renderCell.cell : (0, _handleFormatCell.handleCellFormat)(rowData[dataKey], type)) : /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, renderCell ? (_renderCell2 = renderCell(rowData)) === null || _renderCell2 === void 0 ? void 0 : _renderCell2.cell : (0, _handleFormatCell.handleCellFormat)(rowData[dataKey], type))));
102
+ }, renderCell ? (_renderCell = renderCell(rowData)) === null || _renderCell === void 0 ? void 0 : _renderCell.cell : (0, _handleFormatCell.handleCellFormat)(rowData[dataKey], type)) : path ? /*#__PURE__*/_react["default"].createElement(_reactRouterDom.Link, {
103
+ to: (_path = path === null || path === void 0 ? void 0 : path(rowData)) != null ? _path : '',
104
+ className: "qbs-table-row-link"
105
+ }, renderCell ? (_renderCell2 = renderCell(rowData)) === null || _renderCell2 === void 0 ? void 0 : _renderCell2.cell : (0, _handleFormatCell.handleCellFormat)(rowData[dataKey], type)) : /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, renderCell ? (_renderCell3 = renderCell(rowData)) === null || _renderCell3 === void 0 ? void 0 : _renderCell3.cell : (0, _handleFormatCell.handleCellFormat)(rowData[dataKey], type))));
101
106
  });
102
107
  exports.CustomTableCell = CustomTableCell;
@@ -318,6 +318,7 @@ var QbsTable = function QbsTable(_ref) {
318
318
  renderCell = _ref3.renderCell,
319
319
  isVisible = _ref3.isVisible,
320
320
  link = _ref3.link,
321
+ getPath = _ref3.getPath,
321
322
  rowClick = _ref3.rowClick,
322
323
  sortKey = _ref3.sortKey,
323
324
  type = _ref3.type;
@@ -342,11 +343,12 @@ var QbsTable = function QbsTable(_ref) {
342
343
  verticalAlign: 'middle',
343
344
  className: " " + classes.headerClass,
344
345
  sortKey: child.sortKey
345
- }, child.title), customCell || child.link ? /*#__PURE__*/_react["default"].createElement(_CustomTableCell.CustomTableCell, {
346
+ }, child.title), child.customCell || child.link ? /*#__PURE__*/_react["default"].createElement(_CustomTableCell.CustomTableCell, {
346
347
  renderCell: child.renderCell,
347
348
  dataKey: child.field,
348
349
  dataTheme: dataTheme,
349
350
  type: child.type,
351
+ path: child.getPath,
350
352
  link: child.link
351
353
  }) : /*#__PURE__*/_react["default"].createElement(_Cell["default"], {
352
354
  className: " " + classes.cellClass,
@@ -371,6 +373,7 @@ var QbsTable = function QbsTable(_ref) {
371
373
  dataKey: field,
372
374
  rowClick: rowClick,
373
375
  type: type,
376
+ path: getPath,
374
377
  dataTheme: dataTheme,
375
378
  link: link
376
379
  }) : /*#__PURE__*/_react["default"].createElement(_Cell["default"], {
@@ -18,6 +18,7 @@ export interface ColumnBase {
18
18
  rowClick?: (rowData: any) => void;
19
19
  sortKey?: string;
20
20
  type?: string;
21
+ getPath?: (data: any) => string;
21
22
  }
22
23
  export interface QbsColumnProps extends ColumnBase {
23
24
  grouped?: boolean;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "qbs-react-grid",
3
- "version": "1.1.11",
3
+ "version": "1.1.13",
4
4
  "description": "A React table component",
5
5
  "main": "lib/index.js",
6
6
  "typings": "lib/index.d.ts",
@@ -44,13 +44,16 @@
44
44
  "classnames": "^2.3.1",
45
45
  "dom-lib": "^3.1.3",
46
46
  "lodash": "^4.17.21",
47
- "react-is": "^17.0.2"
47
+ "react-is": "^17.0.2",
48
+ "react-router-dom": "^6.21.0"
48
49
  },
49
50
  "peerDependencies": {
50
51
  "prop-types": "^15.7.1",
51
52
  "react": "^18.2.0",
52
53
  "react-dom": "^18.2.0",
53
- "rsuite": "^5.21.0"
54
+ "rsuite": "^5.21.0",
55
+ "react-router-dom": "^6.21.0"
56
+
54
57
  },
55
58
  "devDependencies": {
56
59
  "@babel/cli": "^7.12.8",
@@ -3,7 +3,7 @@ import React from 'react';
3
3
  import Cell from '../Cell';
4
4
  import { handleCellFormat } from './utilities/handleFormatCell';
5
5
  import MenuDropDown from './utilities/menuDropDown';
6
-
6
+ import { Link } from 'react-router-dom';
7
7
  const CHECKBOX_LINE_HEIGHT = '36px';
8
8
  export const CheckCell: React.FC<any> = React.memo(
9
9
  ({ rowData, onChange, checkedKeys, dataKey, dataTheme, ...props }) => (
@@ -61,14 +61,18 @@ export const ExpandCell: React.FC<any> = React.memo(
61
61
  )
62
62
  );
63
63
  export const CustomTableCell: React.FC<any> = React.memo(
64
- ({ rowData, renderCell, toolTip, dataKey, onChange, rowClick, type, link, ...props }) => {
64
+ ({ rowData, renderCell, toolTip, dataKey, onChange, rowClick, type, path, link, ...props }) => {
65
65
  return (
66
66
  <>
67
67
  <Cell {...props} dataKey={dataKey}>
68
- {link ? (
68
+ {link && !path ? (
69
69
  <a onClick={() => rowClick?.(rowData)} className="qbs-table-row-link">
70
70
  {renderCell ? renderCell(rowData)?.cell : handleCellFormat(rowData[dataKey], type)}
71
71
  </a>
72
+ ) : path ? (
73
+ <Link to={path?.(rowData) ?? ''} className="qbs-table-row-link">
74
+ {renderCell ? renderCell(rowData)?.cell : handleCellFormat(rowData[dataKey], type)}
75
+ </Link>
72
76
  ) : (
73
77
  <>{renderCell ? renderCell(rowData)?.cell : handleCellFormat(rowData[dataKey], type)}</>
74
78
  )}
@@ -118,7 +118,7 @@ const QbsTable: React.FC<QbsTableProps> = ({
118
118
 
119
119
  [checkedKeys]
120
120
  );
121
-
121
+
122
122
  const handleToggle = useCallback(
123
123
  (columnName: string) => {
124
124
  let lastVisibleColumn: any = null;
@@ -308,6 +308,7 @@ const QbsTable: React.FC<QbsTableProps> = ({
308
308
  renderCell,
309
309
  isVisible,
310
310
  link,
311
+ getPath,
311
312
  rowClick,
312
313
  sortKey,
313
314
  type
@@ -342,12 +343,13 @@ const QbsTable: React.FC<QbsTableProps> = ({
342
343
  >
343
344
  {child.title}
344
345
  </HeaderCell>
345
- {customCell || child.link ? (
346
+ {child.customCell || child.link ? (
346
347
  <CustomTableCell
347
348
  renderCell={child.renderCell}
348
349
  dataKey={child.field}
349
350
  dataTheme={dataTheme}
350
351
  type={child.type}
352
+ path={child.getPath}
351
353
  link={child.link}
352
354
  />
353
355
  ) : (
@@ -385,6 +387,7 @@ const QbsTable: React.FC<QbsTableProps> = ({
385
387
  dataKey={field}
386
388
  rowClick={rowClick}
387
389
  type={type}
390
+ path={getPath}
388
391
  dataTheme={dataTheme}
389
392
  link={link}
390
393
  />
@@ -19,6 +19,7 @@ export interface ColumnBase {
19
19
  rowClick?: (rowData: any) => void;
20
20
  sortKey?: string;
21
21
  type?: string;
22
+ getPath?: (data: any) => string;
22
23
  }
23
24
 
24
25
  export interface QbsColumnProps extends ColumnBase {
@@ -99,7 +100,7 @@ export interface QbsTableProps {
99
100
  handleColumnToggle?: (columns: QbsColumnProps[]) => void;
100
101
  handleResetColumns?: () => void;
101
102
  headerHeight?: number;
102
- tableBodyHeight?:string
103
+ tableBodyHeight?: string;
103
104
  }
104
105
 
105
106
  export interface QbsTableToolbarProps {