qbs-react-grid 2.2.17 → 2.2.19

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.
Files changed (79) hide show
  1. package/dist/css/qbs-react-grid.css +1 -1
  2. package/dist/css/qbs-react-grid.min.css +1 -1
  3. package/dist/css/qbs-react-grid.min.css.map +1 -1
  4. package/es/Cell.js +2 -1
  5. package/es/Pagination.d.ts +3 -0
  6. package/es/Pagination.js +8 -3
  7. package/es/Table.d.ts +3 -0
  8. package/es/Table.js +18 -12
  9. package/es/index.d.ts +1 -1
  10. package/es/index.js +1 -1
  11. package/es/less/pagination.less +9 -9
  12. package/es/qbsTable/QbsTable.js +110 -73
  13. package/es/qbsTable/TableCardList.js +2 -0
  14. package/es/qbsTable/Toolbar.js +6 -3
  15. package/es/qbsTable/commontypes.d.ts +21 -12
  16. package/es/qbsTable/labels.d.ts +6 -2
  17. package/es/qbsTable/labels.js +10 -1
  18. package/es/qbsTable/utilities/CardComponent.d.ts +2 -0
  19. package/es/qbsTable/utilities/CardComponent.js +7 -3
  20. package/es/qbsTable/utilities/CardMenuDropdown.d.ts +2 -0
  21. package/es/qbsTable/utilities/CardMenuDropdown.js +7 -7
  22. package/es/qbsTable/utilities/SearchInput.d.ts +1 -0
  23. package/es/qbsTable/utilities/SearchInput.js +3 -1
  24. package/es/qbsTable/utilities/VerticalDropDownMenu.js +36 -23
  25. package/es/qbsTable/utilities/empty.js +1 -1
  26. package/es/qbsTable/utilities/tablecalc.d.ts +1 -1
  27. package/es/qbsTable/utilities/tablecalc.js +7 -2
  28. package/es/utils/useCellDescriptor.js +0 -1
  29. package/es/utils/useScrollListener.d.ts +1 -0
  30. package/es/utils/useScrollListener.js +5 -3
  31. package/lib/Cell.js +2 -1
  32. package/lib/Pagination.d.ts +3 -0
  33. package/lib/Pagination.js +8 -3
  34. package/lib/Table.d.ts +3 -0
  35. package/lib/Table.js +18 -12
  36. package/lib/index.d.ts +1 -1
  37. package/lib/index.js +3 -1
  38. package/lib/less/pagination.less +9 -9
  39. package/lib/qbsTable/QbsTable.js +110 -73
  40. package/lib/qbsTable/TableCardList.js +2 -0
  41. package/lib/qbsTable/Toolbar.js +6 -3
  42. package/lib/qbsTable/commontypes.d.ts +21 -12
  43. package/lib/qbsTable/labels.d.ts +6 -2
  44. package/lib/qbsTable/labels.js +13 -2
  45. package/lib/qbsTable/utilities/CardComponent.d.ts +2 -0
  46. package/lib/qbsTable/utilities/CardComponent.js +7 -3
  47. package/lib/qbsTable/utilities/CardMenuDropdown.d.ts +2 -0
  48. package/lib/qbsTable/utilities/CardMenuDropdown.js +6 -5
  49. package/lib/qbsTable/utilities/SearchInput.d.ts +1 -0
  50. package/lib/qbsTable/utilities/SearchInput.js +3 -1
  51. package/lib/qbsTable/utilities/VerticalDropDownMenu.js +36 -23
  52. package/lib/qbsTable/utilities/empty.js +1 -1
  53. package/lib/qbsTable/utilities/tablecalc.d.ts +1 -1
  54. package/lib/qbsTable/utilities/tablecalc.js +7 -2
  55. package/lib/utils/useCellDescriptor.js +0 -1
  56. package/lib/utils/useScrollListener.d.ts +1 -0
  57. package/lib/utils/useScrollListener.js +5 -3
  58. package/package.json +2 -2
  59. package/src/Cell.tsx +3 -1
  60. package/src/HeaderCell.tsx +0 -1
  61. package/src/Pagination.tsx +10 -3
  62. package/src/Table.tsx +23 -10
  63. package/src/customSelect.tsx +88 -88
  64. package/src/index.ts +2 -0
  65. package/src/less/pagination.less +9 -9
  66. package/src/qbsTable/QbsTable.tsx +84 -39
  67. package/src/qbsTable/TableCardList.tsx +2 -0
  68. package/src/qbsTable/Toolbar.tsx +4 -2
  69. package/src/qbsTable/commontypes.ts +21 -12
  70. package/src/qbsTable/labels.ts +9 -2
  71. package/src/qbsTable/utilities/CardComponent.tsx +7 -2
  72. package/src/qbsTable/utilities/CardMenuDropdown.tsx +11 -6
  73. package/src/qbsTable/utilities/SearchInput.tsx +3 -1
  74. package/src/qbsTable/utilities/VerticalDropDownMenu.tsx +42 -30
  75. package/src/qbsTable/utilities/empty.tsx +2 -2
  76. package/src/qbsTable/utilities/tablecalc.ts +8 -2
  77. package/src/utils/useCellDescriptor.ts +0 -1
  78. package/src/utils/useScrollListener.ts +13 -3
  79. package/src/utils/useTableRows.ts +1 -1
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", "columns", "tableBodyRef", "tableKey"],
23
+ var _excluded = ["affixHeader", "children", "classPrefix", "className", "data", "defaultSortType", "width", "expandedRowKeys", "defaultExpandAllRows", "defaultExpandedRowKeys", "style", "id", "isTree", "hover", "bordered", "cellBordered", "wordWrap", "loading", "locale", "showHeader", "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", "tableBodyHeight", "columns", "tableBodyRef", "tableKey", "handleInfiniteScroll", "infiniteLoading", "wheelWrapperRef"],
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); }
@@ -77,10 +77,6 @@ var Table = /*#__PURE__*/_react["default"].forwardRef(function (props, ref) {
77
77
  } : _props$locale,
78
78
  _props$showHeader = props.showHeader,
79
79
  showHeader = _props$showHeader === void 0 ? true : _props$showHeader,
80
- _props$pagination = props.pagination,
81
- pagination = _props$pagination === void 0 ? true : _props$pagination,
82
- _props$paginationProp = props.paginationProps,
83
- paginationProps = _props$paginationProp === void 0 ? {} : _props$paginationProp,
84
80
  sortColumn = props.sortColumn,
85
81
  _props$rowHeight = props.rowHeight,
86
82
  rowHeight = _props$rowHeight === void 0 ? _constants.ROW_HEIGHT : _props$rowHeight,
@@ -118,18 +114,19 @@ var Table = /*#__PURE__*/_react["default"].forwardRef(function (props, ref) {
118
114
  onTouchStart = props.onTouchStart,
119
115
  onTouchMove = props.onTouchMove,
120
116
  onTouchEnd = props.onTouchEnd,
121
- dataTheme = props.dataTheme,
122
117
  tableBodyHeight = props.tableBodyHeight,
123
118
  columns = props.columns,
124
119
  tableBodyRef = props.tableBodyRef,
125
120
  tableKey = props.tableKey,
121
+ handleInfiniteScroll = props.handleInfiniteScroll,
122
+ infiniteLoading = props.infiniteLoading,
123
+ wheelWrapperRef = props.wheelWrapperRef,
126
124
  rest = (0, _objectWithoutPropertiesLoose2["default"])(props, _excluded);
127
125
  var _useClassNames = (0, _utils.useClassNames)(classPrefix, typeof classPrefix !== 'undefined'),
128
126
  withClassPrefix = _useClassNames.withClassPrefix,
129
127
  mergeCls = _useClassNames.merge,
130
128
  prefix = _useClassNames.prefix;
131
129
  var childTableRef = (0, _react.useRef)(null);
132
-
133
130
  // Use `forceUpdate` to force the component to re-render after manipulating the DOM.
134
131
  var _useReducer = (0, _react.useReducer)(function (x) {
135
132
  return x + 1;
@@ -188,7 +185,6 @@ var Table = /*#__PURE__*/_react["default"].forwardRef(function (props, ref) {
188
185
  var affixHeaderWrapperRef = (0, _react.useRef)(null);
189
186
  var headerWrapperRef = (0, _react.useRef)(null);
190
187
  // const tableBodyRef = useRef<HTMLDivElement>(null);
191
- var wheelWrapperRef = (0, _react.useRef)(null);
192
188
  var scrollbarXRef = (0, _react.useRef)(null);
193
189
  var scrollbarYRef = (0, _react.useRef)(null);
194
190
  var handleTableResizeChange = function handleTableResizeChange(_prevSize, event) {
@@ -300,7 +296,8 @@ var Table = /*#__PURE__*/_react["default"].forwardRef(function (props, ref) {
300
296
  onScroll: onScroll,
301
297
  onTouchStart: onTouchStart,
302
298
  onTouchMove: onTouchMove,
303
- onTouchEnd: onTouchEnd
299
+ onTouchEnd: onTouchEnd,
300
+ handleInfiniteScroll: handleInfiniteScroll
304
301
  }),
305
302
  isScrolling = _useScrollListener.isScrolling,
306
303
  isChildFocused = _useScrollListener.isChildFocused,
@@ -624,7 +621,9 @@ var Table = /*#__PURE__*/_react["default"].forwardRef(function (props, ref) {
624
621
  width: tableWidth.current
625
622
  },
626
623
  length: tableWidth.current,
627
- onScroll: onScrollHorizontal,
624
+ onScroll: function onScroll(delta) {
625
+ onScrollHorizontal(delta);
626
+ },
628
627
  scrollLength: contentWidth.current,
629
628
  ref: scrollbarXRef
630
629
  }));
@@ -788,7 +787,9 @@ var Table = /*#__PURE__*/_react["default"].forwardRef(function (props, ref) {
788
787
  role: "rowgroup",
789
788
  className: prefix('body-row-wrapper'),
790
789
  style: bodyStyles,
791
- onScroll: onScrollBody
790
+ onScroll: function onScroll(e) {
791
+ onScrollBody === null || onScrollBody === void 0 ? void 0 : onScrollBody(e); // existing handler
792
+ }
792
793
  }, !loading && /*#__PURE__*/_react["default"].createElement("div", {
793
794
  style: wheelStyles,
794
795
  className: prefix('body-wheel-area'),
@@ -799,7 +800,12 @@ var Table = /*#__PURE__*/_react["default"].forwardRef(function (props, ref) {
799
800
  }) : null, visibleRows.current, bottomHideHeight ? /*#__PURE__*/_react["default"].createElement(_Row["default"], {
800
801
  style: bottomRowStyles,
801
802
  className: "virtualized"
802
- }) : null), /*#__PURE__*/_react["default"].createElement(_EmptyMessage["default"], {
803
+ }) : null, infiniteLoading && /*#__PURE__*/_react["default"].createElement("div", {
804
+ style: {
805
+ padding: 12,
806
+ textAlign: 'center'
807
+ }
808
+ }, /*#__PURE__*/_react["default"].createElement("span", null, "Loading more rows\u2026"))), /*#__PURE__*/_react["default"].createElement(_EmptyMessage["default"], {
803
809
  locale: locale,
804
810
  renderEmpty: renderEmpty,
805
811
  addPrefix: prefix,
package/lib/index.d.ts CHANGED
@@ -13,5 +13,5 @@ export type { HeaderCellProps } from './HeaderCell';
13
13
  export type { ColumnGroupProps } from './ColumnGroup';
14
14
  export type { QbsTableProps } from './qbsTable/commontypes';
15
15
  export type { QbsTableLabels } from './qbsTable/labels';
16
- export { mergeQbsTableLabels, defaultQbsTableLabels, formatSelectedItems, } from './qbsTable/labels';
16
+ export { mergeQbsTableLabels, mergeLabels, defaultQbsTableLabels, DEFAULT_QBS_TABLE_LABELS, formatSelectedItems, } from './qbsTable/labels';
17
17
  export type { StandardProps, SortType, RowDataType, RowKeyType, TableSizeChangeEventName } from './@types/common';
package/lib/index.js CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
4
  exports.__esModule = true;
5
- exports.mergeQbsTableLabels = exports.formatSelectedItems = exports.defaultQbsTableLabels = exports.Table = exports.QbsTable = exports.Pagination = exports.HeaderCell = exports.ColumnGroup = exports.Column = exports.Cell = void 0;
5
+ exports.mergeQbsTableLabels = exports.mergeLabels = exports.formatSelectedItems = exports.defaultQbsTableLabels = exports.Table = exports.QbsTable = exports.Pagination = exports.HeaderCell = exports.DEFAULT_QBS_TABLE_LABELS = exports.ColumnGroup = exports.Column = exports.Cell = void 0;
6
6
  var _Table = _interopRequireDefault(require("./Table"));
7
7
  exports.Table = _Table["default"];
8
8
  var _Column = _interopRequireDefault(require("./Column"));
@@ -19,5 +19,7 @@ var _Pagination = _interopRequireDefault(require("./Pagination"));
19
19
  exports.Pagination = _Pagination["default"];
20
20
  var _labels = require("./qbsTable/labels");
21
21
  exports.mergeQbsTableLabels = _labels.mergeQbsTableLabels;
22
+ exports.mergeLabels = _labels.mergeLabels;
22
23
  exports.defaultQbsTableLabels = _labels.defaultQbsTableLabels;
24
+ exports.DEFAULT_QBS_TABLE_LABELS = _labels.DEFAULT_QBS_TABLE_LABELS;
23
25
  exports.formatSelectedItems = _labels.formatSelectedItems;
@@ -5,8 +5,8 @@
5
5
  min-height: 40px;
6
6
  align-items: center;
7
7
  border-radius: 0 0 4px 4px;
8
- border-top: 1px solid #d6d8dc;
9
- background: #fff;
8
+ border-top: 1px solid var(--base-gray-border, #d6d8dc);
9
+ background: var(--table-bg, #fff);
10
10
  &-header {
11
11
  border-bottom: 1px solid #eee;
12
12
  position: absolute;
@@ -27,8 +27,8 @@
27
27
  font-weight: 500;
28
28
  line-height: 20px;
29
29
  border-radius: 6px;
30
- border: 1px solid #d6d8dc;
31
- background: #fff;
30
+ border: 1px solid var(--base-gray-border, #d6d8dc);
31
+ background: var(--gray-light-1, #fff);
32
32
  }
33
33
  .qbs-table-icon-container {
34
34
  padding: 0;
@@ -109,7 +109,7 @@
109
109
  font-style: normal;
110
110
  font-weight: 500;
111
111
  line-height: 20px;
112
- color: #313131;
112
+ color: var(--gray-dark-3, #313131);
113
113
  }
114
114
  }
115
115
 
@@ -125,7 +125,7 @@
125
125
  .custom-select-trigger {
126
126
  padding: 2px 8px;
127
127
  cursor: pointer;
128
- border: 1px solid #d6d8dc;
128
+ border: 1px solid var(--base-gray-border, #d6d8dc);
129
129
  border-radius: 4px;
130
130
  min-width: 65px;
131
131
  position: relative;
@@ -140,7 +140,7 @@
140
140
  list-style: none;
141
141
  margin: 2px 0 0;
142
142
  padding: 0;
143
- background: #fff;
143
+ background: var(--gray-light-1, #fff);
144
144
  border-radius: 8px;
145
145
  box-shadow: 0 8px 20px 0 #00000026;
146
146
  }
@@ -158,7 +158,7 @@ ul.custom-select-options.top {
158
158
 
159
159
  .custom-select-option:hover,
160
160
  .custom-select-option.selected {
161
- background-color: #f0f0f0;
161
+ background-color: var(--table-row-hover-bg, #f0f0f0);
162
162
  }
163
163
 
164
164
  .custom-select-trigger:before {
@@ -167,7 +167,7 @@ ul.custom-select-options.top {
167
167
  right: 10px;
168
168
  top: 6px;
169
169
  font-weight: bold;
170
- border: solid black;
170
+ border: solid var(--gray-dark-3, black);
171
171
  border-width: 0 1px 1px 0;
172
172
  display: inline-block;
173
173
  padding: 3px;
@@ -11,6 +11,7 @@ var _ColumnGroup = _interopRequireDefault(require("../ColumnGroup"));
11
11
  var _HeaderCell = _interopRequireDefault(require("../HeaderCell"));
12
12
  var _Pagination = _interopRequireDefault(require("../Pagination"));
13
13
  var _Table = _interopRequireDefault(require("../Table"));
14
+ var _isRTL = _interopRequireDefault(require("../utils/isRTL"));
14
15
  var _useResponsiveStore = _interopRequireDefault(require("../utils/useResponsiveStore"));
15
16
  var _labels = require("./labels");
16
17
  var _CustomTableCell = require("./CustomTableCell");
@@ -29,6 +30,7 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj &&
29
30
 
30
31
  var CHECKBOX_LINE_HEIGHT = '36px';
31
32
  var COLUMN_WIDTH = 250;
33
+ var REFRESH_KEY = 0;
32
34
  var QbsTable = function QbsTable(_ref) {
33
35
  var _Object$keys;
34
36
  var handleColumnSort = _ref.handleColumnSort,
@@ -59,7 +61,7 @@ var QbsTable = function QbsTable(_ref) {
59
61
  _ref$height = _ref.height,
60
62
  height = _ref$height === void 0 ? 630 : _ref$height,
61
63
  onExpandChange = _ref.onExpandChange,
62
- wordWrap = _ref.wordWrap,
64
+ propsWordWrap = _ref.wordWrap,
63
65
  _ref$dataRowKey = _ref.dataRowKey,
64
66
  dataRowKey = _ref$dataRowKey === void 0 ? 'id' : _ref$dataRowKey,
65
67
  defaultExpandAllRows = _ref.defaultExpandAllRows,
@@ -71,6 +73,7 @@ var QbsTable = function QbsTable(_ref) {
71
73
  _ref$actionProps = _ref.actionProps,
72
74
  actionProps = _ref$actionProps === void 0 ? [] : _ref$actionProps,
73
75
  theme = _ref.theme,
76
+ rtlProp = _ref.rtl,
74
77
  handleMenuActions = _ref.handleMenuActions,
75
78
  onRowClick = _ref.onRowClick,
76
79
  expandedRowKeys = _ref.expandedRowKeys,
@@ -114,10 +117,11 @@ var QbsTable = function QbsTable(_ref) {
114
117
  isCustomTableCardView = _ref$isCustomTableCar === void 0 ? false : _ref$isCustomTableCar,
115
118
  handleTableCardView = _ref.handleTableCardView,
116
119
  handleCustomCardLoader = _ref.handleCustomCardLoader,
117
- dropType = _ref.dropType,
118
- labelsProp = _ref.labels,
119
- _ref$rtl = _ref.rtl,
120
- rtl = _ref$rtl === void 0 ? false : _ref$rtl,
120
+ hasMoreData = _ref.hasMoreData,
121
+ loadMoreData = _ref.loadMoreData,
122
+ infiniteLoading = _ref.infiniteLoading,
123
+ _ref$infiniteScroll = _ref.infiniteScroll,
124
+ infiniteScroll = _ref$infiniteScroll === void 0 ? false : _ref$infiniteScroll,
121
125
  _ref$rowViewToggle = _ref.rowViewToggle,
122
126
  rowViewToggle = _ref$rowViewToggle === void 0 ? false : _ref$rowViewToggle,
123
127
  _ref$defaultRowView = _ref.defaultRowView,
@@ -126,43 +130,50 @@ var QbsTable = function QbsTable(_ref) {
126
130
  fullWidthView = _ref$fullWidthView === void 0 ? false : _ref$fullWidthView,
127
131
  setTableFullView = _ref.setTableFullView,
128
132
  setRowViewToggle = _ref.setRowViewToggle,
129
- _ref$isFullScreen = _ref.isFullScreen,
130
- isFullScreen = _ref$isFullScreen === void 0 ? false : _ref$isFullScreen,
133
+ _ref$dropType = _ref.dropType,
134
+ dropType = _ref$dropType === void 0 ? 'horizondal' : _ref$dropType,
131
135
  rowHeight = _ref.rowHeight,
136
+ isFullScreen = _ref.isFullScreen,
132
137
  _ref$showHeader = _ref.showHeader,
133
- showHeader = _ref$showHeader === void 0 ? true : _ref$showHeader;
138
+ showHeader = _ref$showHeader === void 0 ? true : _ref$showHeader,
139
+ labelsProp = _ref.labels;
134
140
  var labels = (0, _react.useMemo)(function () {
135
141
  return (0, _labels.mergeQbsTableLabels)(labelsProp);
136
142
  }, [labelsProp]);
137
- var effectiveWordWrap = (0, _react.useMemo)(function () {
138
- if (!rowViewToggle) return wordWrap;
139
- return defaultRowView ? false : 'break-word';
140
- }, [rowViewToggle, defaultRowView, wordWrap]);
141
- var _useState = (0, _react.useState)(false),
142
- loading = _useState[0],
143
- setLoading = _useState[1];
144
- var _useState2 = (0, _react.useState)(propColumn),
145
- columns = _useState2[0],
146
- setColumns = _useState2[1];
147
- var _useState3 = (0, _react.useState)([]),
148
- checkedKeys = _useState3[0],
149
- setCheckedKeys = _useState3[1];
143
+ var _useState = (0, _react.useState)(0),
144
+ rowViewRefreshKey = _useState[0],
145
+ setRowViewRefreshKey = _useState[1];
146
+ var _useState2 = (0, _react.useState)(false),
147
+ loading = _useState2[0],
148
+ setLoading = _useState2[1];
149
+ var _useState3 = (0, _react.useState)(propColumn),
150
+ columns = _useState3[0],
151
+ setColumns = _useState3[1];
152
+ var _useState4 = (0, _react.useState)([]),
153
+ checkedKeys = _useState4[0],
154
+ setCheckedKeys = _useState4[1];
150
155
  var dataTheme = (0, _react.useMemo)(function () {
151
- var _localStorage$getItem;
152
- return (_localStorage$getItem = localStorage.getItem('theme')) != null ? _localStorage$getItem : theme;
156
+ var _ref2;
157
+ return (_ref2 = theme != null ? theme : typeof localStorage !== 'undefined' ? localStorage.getItem('theme') : null) != null ? _ref2 : 'light';
153
158
  }, [theme]);
154
- var _useState4 = (0, _react.useState)(false),
155
- isOpen = _useState4[0],
156
- setIsOpen = _useState4[1];
159
+ var rtl = rtlProp != null ? rtlProp : (0, _isRTL["default"])();
160
+ var _useState5 = (0, _react.useState)(false),
161
+ isOpen = _useState5[0],
162
+ setIsOpen = _useState5[1];
157
163
  var prevColumns = (0, _react.useRef)(null);
158
- var _useState5 = (0, _react.useState)(tableView),
159
- tableViewToggle = _useState5[0],
160
- setTableViewToggle = _useState5[1];
164
+ var _useState6 = (0, _react.useState)(tableView),
165
+ tableViewToggle = _useState6[0],
166
+ setTableViewToggle = _useState6[1];
161
167
  var isMobile = (0, _useResponsiveStore["default"])();
162
168
  var tableBodyRef = (0, _react.useRef)(null);
163
- var _useState6 = (0, _react.useState)(0),
164
- rowViewRefreshKey = _useState6[0],
165
- setRowViewRefreshKey = _useState6[1];
169
+ var wheelWrapperRef = (0, _react.useRef)(null);
170
+ var _useState7 = (0, _react.useState)(propsWordWrap != null ? propsWordWrap : false),
171
+ wordWrap = _useState7[0],
172
+ setWordWrap = _useState7[1];
173
+ var effectiveWordWrap = (0, _react.useMemo)(function () {
174
+ if (!rowViewToggle) return wordWrap;
175
+ return defaultRowView ? false : 'break-word';
176
+ }, [rowViewToggle, defaultRowView, wordWrap]);
166
177
  (0, _react.useEffect)(function () {
167
178
  if (rowViewToggle) {
168
179
  setRowViewRefreshKey(function (key) {
@@ -209,12 +220,6 @@ var QbsTable = function QbsTable(_ref) {
209
220
  handleChecked(updatedKeys);
210
221
  }
211
222
  }, [checkedKeys]);
212
- var rowKeyField = dataRowKey != null ? dataRowKey : 'id';
213
- var getRowClassName = (0, _react.useCallback)(function (rowData) {
214
- if (!selection) return '';
215
- var key = rowData === null || rowData === void 0 ? void 0 : rowData[rowKeyField];
216
- return key !== undefined && checkedKeys !== null && checkedKeys !== void 0 && checkedKeys.includes(key) ? 'qbs-table-row-checked' : '';
217
- }, [selection, checkedKeys, rowKeyField]);
218
223
  var handleToggle = (0, _react.useCallback)(function (columnName) {
219
224
  var lastVisibleColumn = null;
220
225
  var visibleCount = 0;
@@ -245,6 +250,7 @@ var QbsTable = function QbsTable(_ref) {
245
250
  }, [columns]);
246
251
  var handleColumnWidth = (0, _react.useCallback)(function (newWidth, dataKey) {
247
252
  if (newWidth === undefined || dataKey === undefined) return;
253
+ REFRESH_KEY = REFRESH_KEY + 1;
248
254
  setColumns(function (prevColumns) {
249
255
  return prevColumns.map(function (column) {
250
256
  return column.field === dataKey ? (0, _extends2["default"])({}, column, {
@@ -264,14 +270,21 @@ var QbsTable = function QbsTable(_ref) {
264
270
  });
265
271
  }
266
272
  }, [wordWrap]);
273
+ (0, _react.useEffect)(function () {
274
+ if (!defaultRowView) {
275
+ setWordWrap('break-word');
276
+ } else {
277
+ setWordWrap(false);
278
+ }
279
+ REFRESH_KEY = REFRESH_KEY + 1;
280
+ }, [defaultRowView]);
267
281
  var onReorder = (0, _react.useCallback)(function (columns) {
268
282
  setColumns(columns);
269
283
  }, []);
270
284
 
271
285
  // useEffect(() => {
272
286
  // }, [columns]);
273
-
274
- var handleClear = function handleClear(_ref2) {
287
+ var handleClear = function handleClear(_ref3) {
275
288
  setCheckedKeys([]);
276
289
  handleChecked([]);
277
290
  };
@@ -310,10 +323,16 @@ var QbsTable = function QbsTable(_ref) {
310
323
  labels: labels,
311
324
  rtl: rtl
312
325
  };
326
+ (0, _react.useEffect)(function () {
327
+ if (!dataTheme || typeof document === 'undefined') return;
328
+ document.body.setAttribute('data-theme', dataTheme === 'dark' ? 'dark' : 'light');
329
+ document.documentElement.dataset.theme = dataTheme;
330
+ }, [dataTheme]);
313
331
  var themeToggle = (0, _react.useMemo)(function () {
314
- return document.getElementById('themeToggle');
332
+ return typeof document !== 'undefined' ? document.getElementById('themeToggle') : null;
315
333
  }, []);
316
334
  (0, _react.useEffect)(function () {
335
+ if (theme || typeof document === 'undefined') return;
317
336
  var handleThemeToggle = function handleThemeToggle() {
318
337
  if (themeToggle !== null && themeToggle !== void 0 && themeToggle.checked) {
319
338
  document.body.setAttribute('data-theme', 'dark');
@@ -335,9 +354,8 @@ var QbsTable = function QbsTable(_ref) {
335
354
  themeToggle === null || themeToggle === void 0 ? void 0 : themeToggle.removeEventListener('change', handleThemeToggle);
336
355
  document.removeEventListener('DOMContentLoaded', handleDOMContentLoaded);
337
356
  };
338
- }, [themeToggle]);
357
+ }, [theme, themeToggle]);
339
358
  var handleExpanded = (0, _react.useCallback)(function (rowData) {
340
- console.log(rowData);
341
359
  var keyValue = dataRowKey;
342
360
  var key = rowData[keyValue];
343
361
  var nextExpandedRowKeys = new Set(expandedRowKeys);
@@ -512,26 +530,26 @@ var QbsTable = function QbsTable(_ref) {
512
530
  // [columns, dataTheme]
513
531
  // );
514
532
  var columnsRendered = (0, _react.useMemo)(function () {
515
- return (columns != null ? columns : []).map(function (_ref3) {
516
- var title = _ref3.title,
517
- field = _ref3.field,
518
- resizable = _ref3.resizable,
519
- sortable = _ref3.sortable,
520
- colWidth = _ref3.colWidth,
521
- align = _ref3.align,
522
- grouped = _ref3.grouped,
523
- groupHeader = _ref3.groupHeader,
524
- fixed = _ref3.fixed,
525
- children = _ref3.children,
526
- customCell = _ref3.customCell,
527
- renderCell = _ref3.renderCell,
528
- isVisible = _ref3.isVisible,
529
- link = _ref3.link,
530
- getPath = _ref3.getPath,
531
- rowClick = _ref3.rowClick,
532
- sortKey = _ref3.sortKey,
533
- type = _ref3.type,
534
- hideLink = _ref3.hideLink;
533
+ return (columns != null ? columns : []).map(function (_ref4) {
534
+ var title = _ref4.title,
535
+ field = _ref4.field,
536
+ resizable = _ref4.resizable,
537
+ sortable = _ref4.sortable,
538
+ colWidth = _ref4.colWidth,
539
+ align = _ref4.align,
540
+ grouped = _ref4.grouped,
541
+ groupHeader = _ref4.groupHeader,
542
+ fixed = _ref4.fixed,
543
+ children = _ref4.children,
544
+ customCell = _ref4.customCell,
545
+ renderCell = _ref4.renderCell,
546
+ isVisible = _ref4.isVisible,
547
+ link = _ref4.link,
548
+ getPath = _ref4.getPath,
549
+ rowClick = _ref4.rowClick,
550
+ sortKey = _ref4.sortKey,
551
+ type = _ref4.type,
552
+ hideLink = _ref4.hideLink;
535
553
  return isVisible ? grouped ? /*#__PURE__*/_react["default"].createElement(_ColumnGroup["default"], {
536
554
  header: groupHeader,
537
555
  fixed: fixed,
@@ -599,41 +617,57 @@ var QbsTable = function QbsTable(_ref) {
599
617
  },
600
618
  // ✅ Fix: Type assertion to ReactElement[]
601
619
  [columns, dataTheme]);
620
+ var handleInfiniteScroll = function handleInfiniteScroll(scroll) {
621
+ if (!infiniteScroll) return;
622
+ var wrapper = wheelWrapperRef.current;
623
+ if (!wrapper || !hasMoreData || infiniteLoading) return;
624
+ var scrollTop = wrapper.scrollTop,
625
+ clientHeight = wrapper.clientHeight;
626
+ var scrollHeight = Math.abs(scroll) + (height - headerHeight);
627
+ // Trigger fetch when user scrolls within 100px of bottom
628
+ if (scrollTop + clientHeight >= scrollHeight - 70) {
629
+ loadMoreData === null || loadMoreData === void 0 ? void 0 : loadMoreData(); // fetch next page here
630
+ }
631
+ };
602
632
  return /*#__PURE__*/_react["default"].createElement("div", {
603
633
  className: "qbs-table " + classes.tableContainerClass,
604
- "data-theme": dataTheme
634
+ "data-theme": dataTheme,
635
+ dir: rtl ? 'rtl' : 'ltr'
605
636
  }, toolbar && /*#__PURE__*/_react["default"].createElement(_Toolbar["default"], toolbarProps), /*#__PURE__*/_react["default"].createElement("div", {
606
637
  className: "qbs-table-border-wrap"
607
638
  }, tableViewToggle ? /*#__PURE__*/_react["default"].createElement(_Table["default"], {
608
639
  height: autoHeight ? undefined : height,
609
640
  key: tableKey + "-" + rowViewRefreshKey,
610
641
  tableKey: tableKey,
611
- rtl: rtl,
612
642
  data: data,
643
+ rtl: rtl,
613
644
  tableBodyRef: tableBodyRef,
614
645
  dataTheme: dataTheme,
615
646
  wordWrap: effectiveWordWrap,
647
+ wheelWrapperRef: wheelWrapperRef,
648
+ rowHeight: rowHeight,
616
649
  autoHeight: autoHeight,
650
+ handleInfiniteScroll: handleInfiniteScroll,
617
651
  sortColumn: sortColumn,
618
652
  style: {
619
653
  position: 'relative'
620
654
  },
621
655
  sortType: sortType,
622
656
  onSortColumn: handleSortColumn,
657
+ infiniteLoading: infiniteLoading,
623
658
  onRowClick: onRowClick,
624
659
  tableBodyHeight: tableBodyHeight,
625
660
  cellBordered: cellBordered,
626
661
  bordered: bordered,
627
662
  renderEmpty: function renderEmpty(info) {
628
663
  return _renderEmpty ? _renderEmpty(info) : /*#__PURE__*/_react["default"].createElement(_empty["default"], {
629
- title: emptyTitle != null ? emptyTitle : 'No Data Found',
664
+ title: emptyTitle != null ? emptyTitle : labels.noDataFound,
630
665
  subtitle: emptySubTitle
631
666
  });
632
667
  },
633
668
  columns: columns,
634
669
  minHeight: minHeight,
635
670
  headerHeight: headerHeight,
636
- rowHeight: rowHeight,
637
671
  rowExpandedHeight: rowExpandedHeight,
638
672
  loading: isLoading != null ? isLoading : loading,
639
673
  showHeader: showHeader,
@@ -641,7 +675,6 @@ var QbsTable = function QbsTable(_ref) {
641
675
  expandedRowKeys: expandedRowKeys,
642
676
  onExpandChange: onExpandChange,
643
677
  rowKey: dataRowKey != null ? dataRowKey : 'id',
644
- rowClassName: selection ? getRowClassName : undefined,
645
678
  defaultExpandAllRows: defaultExpandAllRows,
646
679
  shouldUpdateScroll: shouldUpdateScroll,
647
680
  renderRowExpanded: function renderRowExpanded(rowData) {
@@ -756,11 +789,12 @@ var QbsTable = function QbsTable(_ref) {
756
789
  rtl: rtl
757
790
  })), /*#__PURE__*/_react["default"].createElement(_CustomTableCell.ActionCell, {
758
791
  tableBodyRef: tableBodyRef,
792
+ dropType: dropType,
793
+ wheelWrapperRef: wheelWrapperRef,
759
794
  actionProps: actionProps,
760
795
  className: classes.cellClass + " " + classes.actionCellClass,
761
796
  handleMenuActions: handleMenuActions,
762
- dataTheme: dataTheme,
763
- dropType: dropType
797
+ dataTheme: dataTheme
764
798
  }))) : /*#__PURE__*/_react["default"].createElement("div", {
765
799
  className: isCustomTableCardView && ((data === null || data === void 0 ? void 0 : data.length) === 0 || !data) && !isLoading ? 'qbs-card-empty-wrapper' : isCustomTableCardView ? 'qbs-card-wrapper' : ' p-2',
766
800
  style: {
@@ -771,7 +805,7 @@ var QbsTable = function QbsTable(_ref) {
771
805
  }, ((data === null || data === void 0 ? void 0 : data.length) === 0 || !data) && !isLoading && /*#__PURE__*/_react["default"].createElement("div", {
772
806
  className: "flex flex-col gap-2 p-2 mt-6 card-empty-container"
773
807
  }, /*#__PURE__*/_react["default"].createElement(_empty["default"], {
774
- title: emptyTitle != null ? emptyTitle : 'No Data Found',
808
+ title: emptyTitle != null ? emptyTitle : labels.noDataFound,
775
809
  subtitle: emptySubTitle
776
810
  })), isLoading ? handleCustomCardLoader ? /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, handleCustomCardLoader()) : /*#__PURE__*/_react["default"].createElement("div", {
777
811
  className: "flex flex-col gap-2 p-2"
@@ -786,10 +820,13 @@ var QbsTable = function QbsTable(_ref) {
786
820
  childDetailHeading: childDetailHeading,
787
821
  columns: columns,
788
822
  tableBodyRef: tableBodyRef,
789
- actionProps: actionProps
823
+ actionProps: actionProps,
824
+ labels: labels
790
825
  }));
791
826
  })), /*#__PURE__*/_react["default"].createElement("div", null, pagination && (data === null || data === void 0 ? void 0 : data.length) > 0 && /*#__PURE__*/_react["default"].createElement(_Pagination["default"], {
792
- paginationProps: paginationProps
827
+ paginationProps: paginationProps,
828
+ labels: labels,
829
+ dataTheme: dataTheme
793
830
  }))));
794
831
  };
795
832
  var _default = QbsTable;
@@ -140,6 +140,7 @@ var QbsTable = function QbsTable(_ref) {
140
140
  setIsOpen = _useState4[1];
141
141
  var prevColumns = (0, _react.useRef)(null);
142
142
  var tableBodyRef = (0, _react.useRef)(null);
143
+ var wheelWrapperRef = (0, _react.useRef)(null);
143
144
  var handleSortColumn = (0, _react.useCallback)(function (sortColumn, sortType) {
144
145
  setLoading(true);
145
146
  setTimeout(function () {
@@ -459,6 +460,7 @@ var QbsTable = function QbsTable(_ref) {
459
460
  rtl: rtl,
460
461
  data: data,
461
462
  tableBodyRef: tableBodyRef,
463
+ wheelWrapperRef: wheelWrapperRef,
462
464
  dataTheme: dataTheme,
463
465
  wordWrap: effectiveWordWrap,
464
466
  autoHeight: autoHeight,
@@ -218,19 +218,22 @@ var ToolBar = function ToolBar(_ref) {
218
218
  return onSelect === null || onSelect === void 0 ? void 0 : onSelect([]);
219
219
  }
220
220
  }, labels.clear), selectedRowActions === null || selectedRowActions === void 0 ? void 0 : selectedRowActions.map(function (actions, index) {
221
+ var _actions$buttonClassN;
221
222
  return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, {
222
223
  key: index.toString()
223
224
  }, handleHide(actions) && /*#__PURE__*/_react["default"].createElement("button", {
224
225
  type: "button",
225
- className: "btn",
226
+ className: "btn " + ((_actions$buttonClassN = actions === null || actions === void 0 ? void 0 : actions.buttonClassName) != null ? _actions$buttonClassN : ''),
226
227
  disabled: actions.disabled,
227
228
  onClick: function onClick() {
228
229
  return actions === null || actions === void 0 ? void 0 : actions.action(checkedKeys);
229
230
  }
230
- }, actions.actionTitle));
231
+ }, (actions === null || actions === void 0 ? void 0 : actions.icon) && /*#__PURE__*/_react["default"].createElement("span", {
232
+ className: "mr-2"
233
+ }, actions.icon), /*#__PURE__*/_react["default"].createElement("span", null, actions.actionTitle)));
231
234
  }))) : /*#__PURE__*/_react["default"].createElement("div", null, pagination && paginationProps && dataLength > 0 && /*#__PURE__*/_react["default"].createElement("div", {
232
235
  className: "rows-count"
233
- }, (0, _tablecalc.getRowDisplayRange)((_paginationProps$tota = paginationProps.total) != null ? _paginationProps$tota : 0, (_paginationProps$rows = paginationProps.rowsPerPage) != null ? _paginationProps$rows : 0, (_paginationProps$curr = paginationProps.currentPage) != null ? _paginationProps$curr : 0)))));
236
+ }, (0, _tablecalc.getRowDisplayRange)((_paginationProps$tota = paginationProps.total) != null ? _paginationProps$tota : 0, (_paginationProps$rows = paginationProps.rowsPerPage) != null ? _paginationProps$rows : 0, (_paginationProps$curr = paginationProps.currentPage) != null ? _paginationProps$curr : 0, labels.showingRange)))));
234
237
  };
235
238
  var _default = ToolBar;
236
239
  exports["default"] = _default;