qbs-react-grid 1.1.14 → 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.
package/es/Table.d.ts CHANGED
@@ -36,6 +36,7 @@ export interface TableProps<Row, Key> extends Omit<StandardProps, 'onScroll'> {
36
36
  height?: number;
37
37
  /** The minimum height of the table. The height is maintained even when the content is not stretched. */
38
38
  minHeight?: number;
39
+ columns?: any;
39
40
  /** The row of the table has a mouseover effect */
40
41
  hover?: boolean;
41
42
  /** The height of the table header */
package/es/Table.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import _extends from "@babel/runtime/helpers/esm/extends";
2
2
  import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
3
- var _excluded = ["affixHeader", "children", "classPrefix", "className", "data", "defaultSortType", "width", "expandedRowKeys", "defaultExpandAllRows", "defaultExpandedRowKeys", "style", "id", "isTree", "hover", "bordered", "cellBordered", "wordWrap", "loading", "locale", "showHeader", "pagination", "paginationProps", "sortColumn", "rowHeight", "sortType", "headerHeight", "minHeight", "height", "autoHeight", "fillHeight", "rtl", "translate3d", "rowKey", "virtualized", "rowClassName", "rowExpandedHeight", "disabledScroll", "affixHorizontalScrollbar", "loadAnimation", "shouldUpdateScroll", "renderRow", "renderRowExpanded", "renderLoading", "renderEmpty", "onSortColumn", "onScroll", "renderTreeToggle", "onRowClick", "onRowContextMenu", "onExpandChange", "onTouchStart", "onTouchMove", "onTouchEnd", "dataTheme", "tableBodyHeight"],
3
+ var _excluded = ["affixHeader", "children", "classPrefix", "className", "data", "defaultSortType", "width", "expandedRowKeys", "defaultExpandAllRows", "defaultExpandedRowKeys", "style", "id", "isTree", "hover", "bordered", "cellBordered", "wordWrap", "loading", "locale", "showHeader", "pagination", "paginationProps", "sortColumn", "rowHeight", "sortType", "headerHeight", "minHeight", "height", "autoHeight", "fillHeight", "rtl", "translate3d", "rowKey", "virtualized", "rowClassName", "rowExpandedHeight", "disabledScroll", "affixHorizontalScrollbar", "loadAnimation", "shouldUpdateScroll", "renderRow", "renderRowExpanded", "renderLoading", "renderEmpty", "onSortColumn", "onScroll", "renderTreeToggle", "onRowClick", "onRowContextMenu", "onExpandChange", "onTouchStart", "onTouchMove", "onTouchEnd", "dataTheme", "tableBodyHeight", "columns"],
4
4
  _excluded2 = ["depth", "rowIndex"],
5
5
  _excluded3 = ["cellHeight"];
6
6
  import { getTranslateDOMPositionXY } from 'dom-lib/translateDOMPositionXY';
@@ -113,6 +113,7 @@ var Table = /*#__PURE__*/React.forwardRef(function (props, ref) {
113
113
  onTouchEnd = props.onTouchEnd,
114
114
  dataTheme = props.dataTheme,
115
115
  tableBodyHeight = props.tableBodyHeight,
116
+ columns = props.columns,
116
117
  rest = _objectWithoutPropertiesLoose(props, _excluded);
117
118
  var _useClassNames = useClassNames(classPrefix, typeof classPrefix !== 'undefined'),
118
119
  withClassPrefix = _useClassNames.withClassPrefix,
@@ -359,7 +360,7 @@ var Table = /*#__PURE__*/React.forwardRef(function (props, ref) {
359
360
  }));
360
361
  var styles = _extends({
361
362
  width: widthProp || 'auto',
362
- height: tableBodyHeight != null ? tableBodyHeight : getTableHeight()
363
+ height: getTableHeight()
363
364
  }, style);
364
365
  var renderRowExpanded = useCallback(function (rowData) {
365
366
  var styles = {
@@ -617,6 +618,7 @@ var Table = /*#__PURE__*/React.forwardRef(function (props, ref) {
617
618
  var _visibleRows$current;
618
619
  var height = getTableHeight();
619
620
  var bodyHeight = height - headerHeight;
621
+ console.log(bodyHeight, height);
620
622
  var bodyStyles = {
621
623
  top: headerHeight,
622
624
  height: bodyHeight,
@@ -722,9 +724,9 @@ var Table = /*#__PURE__*/React.forwardRef(function (props, ref) {
722
724
  }
723
725
  var wheelStyles = {
724
726
  position: 'absolute',
725
- height: contentHeight,
726
- minHeight: tableBodyHeight,
727
- maxHeight: tableBodyHeight,
727
+ // height: contentHeight,
728
+ minHeight: contentHeight,
729
+ // maxHeight: tableBodyHeight,
728
730
  pointerEvents: isScrolling ? 'none' : undefined
729
731
  };
730
732
  var topRowStyles = {
@@ -387,12 +387,16 @@ var QbsTable = function QbsTable(_ref) {
387
387
  dataTheme: dataTheme,
388
388
  wordWrap: wordWrap,
389
389
  sortColumn: sortColumn,
390
+ style: {
391
+ position: 'relative'
392
+ },
390
393
  sortType: sortType,
391
394
  onSortColumn: handleSortColumn,
392
395
  onRowClick: onRowClick,
393
396
  tableBodyHeight: tableBodyHeight,
394
397
  cellBordered: cellBordered,
395
398
  bordered: bordered,
399
+ columns: columns,
396
400
  minHeight: minHeight,
397
401
  headerHeight: headerHeight,
398
402
  loading: isLoading != null ? isLoading : loading,
@@ -458,7 +462,21 @@ var QbsTable = function QbsTable(_ref) {
458
462
  className: "" + classes.tableCheckBoxClass,
459
463
  onChange: handleCheck,
460
464
  dataTheme: dataTheme
461
- })), columnsRendered, (actionProps && (actionProps === null || actionProps === void 0 ? void 0 : actionProps.length) > 0 || columnToggle) && /*#__PURE__*/React.createElement(Column, {
465
+ })), columnsRendered, !actionProps || (actionProps === null || actionProps === void 0 ? void 0 : actionProps.length) === 0 && columnToggle && /*#__PURE__*/React.createElement(Column, {
466
+ width: 40,
467
+ fixed: "right"
468
+ }, /*#__PURE__*/React.createElement(HeaderCell, {
469
+ verticalAlign: findGrouped() ? 'middle' : undefined,
470
+ className: " " + classes.headerlClass,
471
+ dataTheme: dataTheme
472
+ }, /*#__PURE__*/React.createElement(ColumToggle, {
473
+ columns: columns,
474
+ onToggle: handleToggle,
475
+ onReorder: onReorder,
476
+ isOpen: isOpen,
477
+ setIsOpen: setIsOpen,
478
+ handleResetColumns: handleResetColumns
479
+ })), /*#__PURE__*/React.createElement(Cell, null)), actionProps && (actionProps === null || actionProps === void 0 ? void 0 : actionProps.length) > 0 && /*#__PURE__*/React.createElement(Column, {
462
480
  width: 40,
463
481
  fixed: "right"
464
482
  }, /*#__PURE__*/React.createElement(HeaderCell, {
@@ -472,7 +490,7 @@ var QbsTable = function QbsTable(_ref) {
472
490
  isOpen: isOpen,
473
491
  setIsOpen: setIsOpen,
474
492
  handleResetColumns: handleResetColumns
475
- })), actionProps && (actionProps === null || actionProps === void 0 ? void 0 : actionProps.length) > 0 && /*#__PURE__*/React.createElement(ActionCell, {
493
+ })), /*#__PURE__*/React.createElement(ActionCell, {
476
494
  actionProps: actionProps,
477
495
  className: classes.cellClass + " " + classes.actionCellClass,
478
496
  handleMenuActions: handleMenuActions,
package/lib/Table.d.ts CHANGED
@@ -36,6 +36,7 @@ export interface TableProps<Row, Key> extends Omit<StandardProps, 'onScroll'> {
36
36
  height?: number;
37
37
  /** The minimum height of the table. The height is maintained even when the content is not stretched. */
38
38
  minHeight?: number;
39
+ columns?: any;
39
40
  /** The row of the table has a mouseover effect */
40
41
  hover?: boolean;
41
42
  /** The height of the table header */
package/lib/Table.js CHANGED
@@ -20,7 +20,7 @@ var _Row = _interopRequireDefault(require("./Row"));
20
20
  var _Scrollbar = _interopRequireDefault(require("./Scrollbar"));
21
21
  var _TableContext = _interopRequireDefault(require("./TableContext"));
22
22
  var _utils = require("./utils");
23
- var _excluded = ["affixHeader", "children", "classPrefix", "className", "data", "defaultSortType", "width", "expandedRowKeys", "defaultExpandAllRows", "defaultExpandedRowKeys", "style", "id", "isTree", "hover", "bordered", "cellBordered", "wordWrap", "loading", "locale", "showHeader", "pagination", "paginationProps", "sortColumn", "rowHeight", "sortType", "headerHeight", "minHeight", "height", "autoHeight", "fillHeight", "rtl", "translate3d", "rowKey", "virtualized", "rowClassName", "rowExpandedHeight", "disabledScroll", "affixHorizontalScrollbar", "loadAnimation", "shouldUpdateScroll", "renderRow", "renderRowExpanded", "renderLoading", "renderEmpty", "onSortColumn", "onScroll", "renderTreeToggle", "onRowClick", "onRowContextMenu", "onExpandChange", "onTouchStart", "onTouchMove", "onTouchEnd", "dataTheme", "tableBodyHeight"],
23
+ var _excluded = ["affixHeader", "children", "classPrefix", "className", "data", "defaultSortType", "width", "expandedRowKeys", "defaultExpandAllRows", "defaultExpandedRowKeys", "style", "id", "isTree", "hover", "bordered", "cellBordered", "wordWrap", "loading", "locale", "showHeader", "pagination", "paginationProps", "sortColumn", "rowHeight", "sortType", "headerHeight", "minHeight", "height", "autoHeight", "fillHeight", "rtl", "translate3d", "rowKey", "virtualized", "rowClassName", "rowExpandedHeight", "disabledScroll", "affixHorizontalScrollbar", "loadAnimation", "shouldUpdateScroll", "renderRow", "renderRowExpanded", "renderLoading", "renderEmpty", "onSortColumn", "onScroll", "renderTreeToggle", "onRowClick", "onRowContextMenu", "onExpandChange", "onTouchStart", "onTouchMove", "onTouchEnd", "dataTheme", "tableBodyHeight", "columns"],
24
24
  _excluded2 = ["depth", "rowIndex"],
25
25
  _excluded3 = ["cellHeight"];
26
26
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
@@ -120,6 +120,7 @@ var Table = /*#__PURE__*/_react["default"].forwardRef(function (props, ref) {
120
120
  onTouchEnd = props.onTouchEnd,
121
121
  dataTheme = props.dataTheme,
122
122
  tableBodyHeight = props.tableBodyHeight,
123
+ columns = props.columns,
123
124
  rest = (0, _objectWithoutPropertiesLoose2["default"])(props, _excluded);
124
125
  var _useClassNames = (0, _utils.useClassNames)(classPrefix, typeof classPrefix !== 'undefined'),
125
126
  withClassPrefix = _useClassNames.withClassPrefix,
@@ -366,7 +367,7 @@ var Table = /*#__PURE__*/_react["default"].forwardRef(function (props, ref) {
366
367
  }));
367
368
  var styles = (0, _extends2["default"])({
368
369
  width: widthProp || 'auto',
369
- height: tableBodyHeight != null ? tableBodyHeight : getTableHeight()
370
+ height: getTableHeight()
370
371
  }, style);
371
372
  var renderRowExpanded = (0, _react.useCallback)(function (rowData) {
372
373
  var styles = {
@@ -624,6 +625,7 @@ var Table = /*#__PURE__*/_react["default"].forwardRef(function (props, ref) {
624
625
  var _visibleRows$current;
625
626
  var height = getTableHeight();
626
627
  var bodyHeight = height - headerHeight;
628
+ console.log(bodyHeight, height);
627
629
  var bodyStyles = {
628
630
  top: headerHeight,
629
631
  height: bodyHeight,
@@ -729,9 +731,9 @@ var Table = /*#__PURE__*/_react["default"].forwardRef(function (props, ref) {
729
731
  }
730
732
  var wheelStyles = {
731
733
  position: 'absolute',
732
- height: contentHeight,
733
- minHeight: tableBodyHeight,
734
- maxHeight: tableBodyHeight,
734
+ // height: contentHeight,
735
+ minHeight: contentHeight,
736
+ // maxHeight: tableBodyHeight,
735
737
  pointerEvents: isScrolling ? 'none' : undefined
736
738
  };
737
739
  var topRowStyles = {
@@ -394,12 +394,16 @@ var QbsTable = function QbsTable(_ref) {
394
394
  dataTheme: dataTheme,
395
395
  wordWrap: wordWrap,
396
396
  sortColumn: sortColumn,
397
+ style: {
398
+ position: 'relative'
399
+ },
397
400
  sortType: sortType,
398
401
  onSortColumn: handleSortColumn,
399
402
  onRowClick: onRowClick,
400
403
  tableBodyHeight: tableBodyHeight,
401
404
  cellBordered: cellBordered,
402
405
  bordered: bordered,
406
+ columns: columns,
403
407
  minHeight: minHeight,
404
408
  headerHeight: headerHeight,
405
409
  loading: isLoading != null ? isLoading : loading,
@@ -465,7 +469,21 @@ var QbsTable = function QbsTable(_ref) {
465
469
  className: "" + classes.tableCheckBoxClass,
466
470
  onChange: handleCheck,
467
471
  dataTheme: dataTheme
468
- })), columnsRendered, (actionProps && (actionProps === null || actionProps === void 0 ? void 0 : actionProps.length) > 0 || columnToggle) && /*#__PURE__*/_react["default"].createElement(_Column["default"], {
472
+ })), columnsRendered, !actionProps || (actionProps === null || actionProps === void 0 ? void 0 : actionProps.length) === 0 && columnToggle && /*#__PURE__*/_react["default"].createElement(_Column["default"], {
473
+ width: 40,
474
+ fixed: "right"
475
+ }, /*#__PURE__*/_react["default"].createElement(_HeaderCell["default"], {
476
+ verticalAlign: findGrouped() ? 'middle' : undefined,
477
+ className: " " + classes.headerlClass,
478
+ dataTheme: dataTheme
479
+ }, /*#__PURE__*/_react["default"].createElement(_ColumShowHide["default"], {
480
+ columns: columns,
481
+ onToggle: handleToggle,
482
+ onReorder: onReorder,
483
+ isOpen: isOpen,
484
+ setIsOpen: setIsOpen,
485
+ handleResetColumns: handleResetColumns
486
+ })), /*#__PURE__*/_react["default"].createElement(_Cell["default"], null)), actionProps && (actionProps === null || actionProps === void 0 ? void 0 : actionProps.length) > 0 && /*#__PURE__*/_react["default"].createElement(_Column["default"], {
469
487
  width: 40,
470
488
  fixed: "right"
471
489
  }, /*#__PURE__*/_react["default"].createElement(_HeaderCell["default"], {
@@ -479,7 +497,7 @@ var QbsTable = function QbsTable(_ref) {
479
497
  isOpen: isOpen,
480
498
  setIsOpen: setIsOpen,
481
499
  handleResetColumns: handleResetColumns
482
- })), actionProps && (actionProps === null || actionProps === void 0 ? void 0 : actionProps.length) > 0 && /*#__PURE__*/_react["default"].createElement(_CustomTableCell.ActionCell, {
500
+ })), /*#__PURE__*/_react["default"].createElement(_CustomTableCell.ActionCell, {
483
501
  actionProps: actionProps,
484
502
  className: classes.cellClass + " " + classes.actionCellClass,
485
503
  handleMenuActions: handleMenuActions,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "qbs-react-grid",
3
- "version": "1.1.14",
3
+ "version": "1.1.16",
4
4
  "description": "A React table component",
5
5
  "main": "lib/index.js",
6
6
  "typings": "lib/index.d.ts",
package/src/Table.tsx CHANGED
@@ -6,14 +6,40 @@ import PropTypes from 'prop-types';
6
6
  import React, { useCallback, useImperativeHandle, useReducer, useRef, useState } from 'react';
7
7
 
8
8
  import CellGroup from './CellGroup';
9
- import { CELL_PADDING_HEIGHT, EXPANDED_KEY, ROW_HEADER_HEIGHT, ROW_HEIGHT, SCROLLBAR_WIDTH, SORT_TYPE, TREE_DEPTH } from './constants';
9
+ import {
10
+ CELL_PADDING_HEIGHT,
11
+ EXPANDED_KEY,
12
+ ROW_HEADER_HEIGHT,
13
+ ROW_HEIGHT,
14
+ SCROLLBAR_WIDTH,
15
+ SORT_TYPE,
16
+ TREE_DEPTH
17
+ } from './constants';
10
18
  import EmptyMessage from './EmptyMessage';
11
19
  import Loader from './Loader';
12
20
  import MouseArea from './MouseArea';
13
21
  import Row, { RowProps } from './Row';
14
22
  import Scrollbar, { ScrollbarInstance } from './Scrollbar';
15
23
  import TableContext from './TableContext';
16
- import { findAllParents, findRowKeys, flattenData, isRTL, isSupportTouchEvent, mergeCells, resetLeftForCells, shouldShowRowByExpanded, useAffix, useCellDescriptor, useClassNames, useControlled, usePosition, useScrollListener, useTableDimension, useTableRows, useUpdateEffect } from './utils';
24
+ import {
25
+ findAllParents,
26
+ findRowKeys,
27
+ flattenData,
28
+ isRTL,
29
+ isSupportTouchEvent,
30
+ mergeCells,
31
+ resetLeftForCells,
32
+ shouldShowRowByExpanded,
33
+ useAffix,
34
+ useCellDescriptor,
35
+ useClassNames,
36
+ useControlled,
37
+ usePosition,
38
+ useScrollListener,
39
+ useTableDimension,
40
+ useTableRows,
41
+ useUpdateEffect
42
+ } from './utils';
17
43
 
18
44
  import type {
19
45
  StandardProps,
@@ -101,6 +127,7 @@ export interface TableProps<Row, Key> extends Omit<StandardProps, 'onScroll'> {
101
127
  /** The minimum height of the table. The height is maintained even when the content is not stretched. */
102
128
  minHeight?: number;
103
129
 
130
+ columns?: any;
104
131
  /** The row of the table has a mouseover effect */
105
132
  hover?: boolean;
106
133
 
@@ -307,6 +334,7 @@ const Table = React.forwardRef(<Row extends RowDataType, Key>(props: TableProps<
307
334
  onTouchEnd,
308
335
  dataTheme,
309
336
  tableBodyHeight,
337
+ columns,
310
338
  ...rest
311
339
  } = props;
312
340
 
@@ -567,7 +595,9 @@ const Table = React.forwardRef(<Row extends RowDataType, Key>(props: TableProps<
567
595
 
568
596
  const styles = {
569
597
  width: widthProp || 'auto',
570
- height: tableBodyHeight ?? getTableHeight(),
598
+ height: getTableHeight(),
599
+ // height: tableBodyHeight ?? getTableHeight(),
600
+
571
601
  ...style
572
602
  };
573
603
 
@@ -919,6 +949,7 @@ const Table = React.forwardRef(<Row extends RowDataType, Key>(props: TableProps<
919
949
  const renderTableBody = (bodyCells: any[], rowWidth: number) => {
920
950
  const height = getTableHeight();
921
951
  const bodyHeight = height - headerHeight;
952
+ console.log(bodyHeight, height);
922
953
  const bodyStyles = {
923
954
  top: headerHeight,
924
955
  height: bodyHeight,
@@ -1045,9 +1076,9 @@ const Table = React.forwardRef(<Row extends RowDataType, Key>(props: TableProps<
1045
1076
 
1046
1077
  const wheelStyles: React.CSSProperties = {
1047
1078
  position: 'absolute',
1048
- height: contentHeight,
1049
- minHeight: tableBodyHeight,
1050
- maxHeight: tableBodyHeight,
1079
+ // height: contentHeight,
1080
+ minHeight: contentHeight,
1081
+ // maxHeight: tableBodyHeight,
1051
1082
  pointerEvents: isScrolling ? 'none' : undefined
1052
1083
  };
1053
1084
  const topRowStyles = { height: topHideHeight };
@@ -407,6 +407,7 @@ const QbsTable: React.FC<QbsTableProps> = ({
407
407
  ),
408
408
  [columns, dataTheme]
409
409
  );
410
+
410
411
  return (
411
412
  <div className={`qbs-table ${classes.tableContainerClass}`} data-theme={dataTheme}>
412
413
  {toolbar && <ToolBar {...toolbarProps} />}
@@ -417,12 +418,14 @@ const QbsTable: React.FC<QbsTableProps> = ({
417
418
  dataTheme={dataTheme}
418
419
  wordWrap={wordWrap}
419
420
  sortColumn={sortColumn}
421
+ style={{ position: 'relative' }}
420
422
  sortType={sortType}
421
423
  onSortColumn={handleSortColumn}
422
424
  onRowClick={onRowClick}
423
425
  tableBodyHeight={tableBodyHeight}
424
426
  cellBordered={cellBordered}
425
427
  bordered={bordered}
428
+ columns={columns}
426
429
  minHeight={minHeight}
427
430
  headerHeight={headerHeight}
428
431
  loading={isLoading ?? loading}
@@ -497,8 +500,27 @@ const QbsTable: React.FC<QbsTableProps> = ({
497
500
  </Column>
498
501
  )}
499
502
  {columnsRendered}
500
-
501
- {((actionProps && actionProps?.length > 0) || columnToggle) && (
503
+ {!actionProps ||
504
+ (actionProps?.length === 0 && columnToggle && (
505
+ <Column width={40} fixed="right">
506
+ <HeaderCell
507
+ verticalAlign={findGrouped() ? 'middle' : undefined}
508
+ className={` ${classes.headerlClass}`}
509
+ dataTheme={dataTheme}
510
+ >
511
+ <ColumToggle
512
+ columns={columns}
513
+ onToggle={handleToggle}
514
+ onReorder={onReorder}
515
+ isOpen={isOpen}
516
+ setIsOpen={setIsOpen}
517
+ handleResetColumns={handleResetColumns}
518
+ />
519
+ </HeaderCell>
520
+ <Cell />
521
+ </Column>
522
+ ))}
523
+ {actionProps && actionProps?.length > 0 && (
502
524
  <Column width={40} fixed="right">
503
525
  <HeaderCell
504
526
  verticalAlign={findGrouped() ? 'middle' : undefined}
@@ -518,17 +540,16 @@ const QbsTable: React.FC<QbsTableProps> = ({
518
540
  />
519
541
  )}
520
542
  </HeaderCell>
521
- {actionProps && actionProps?.length > 0 && (
522
- <ActionCell
523
- actionProps={actionProps}
524
- className={`${classes.cellClass} ${classes.actionCellClass}`}
525
- handleMenuActions={handleMenuActions}
526
- dataTheme={dataTheme}
527
- />
528
- )}
543
+ <ActionCell
544
+ actionProps={actionProps}
545
+ className={`${classes.cellClass} ${classes.actionCellClass}`}
546
+ handleMenuActions={handleMenuActions}
547
+ dataTheme={dataTheme}
548
+ />
529
549
  </Column>
530
550
  )}
531
551
  </Table>
552
+
532
553
  <div>
533
554
  {pagination && data?.length > 0 && <Pagination paginationProps={paginationProps} />}
534
555
  </div>
@@ -305,7 +305,6 @@ const useTableDimension = <Row extends RowDataType, Key>(props: TableDimensionPr
305
305
  if (fillHeight) {
306
306
  return tableHeight.current;
307
307
  }
308
-
309
308
  if (data?.length === 0 && autoHeight) {
310
309
  return heightProp;
311
310
  }