qbs-react-grid 2.2.17 → 2.2.18
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/dist/css/qbs-react-grid.css +1 -1
- package/dist/css/qbs-react-grid.min.css +1 -1
- package/dist/css/qbs-react-grid.min.css.map +1 -1
- package/es/Cell.js +2 -1
- package/es/Pagination.d.ts +3 -0
- package/es/Pagination.js +8 -3
- package/es/Table.d.ts +3 -0
- package/es/Table.js +18 -12
- package/es/index.d.ts +1 -1
- package/es/index.js +1 -1
- package/es/less/pagination.less +9 -9
- package/es/qbsTable/QbsTable.js +110 -73
- package/es/qbsTable/TableCardList.js +2 -0
- package/es/qbsTable/Toolbar.js +6 -3
- package/es/qbsTable/commontypes.d.ts +21 -12
- package/es/qbsTable/labels.d.ts +6 -2
- package/es/qbsTable/labels.js +10 -1
- package/es/qbsTable/utilities/CardComponent.d.ts +2 -0
- package/es/qbsTable/utilities/CardComponent.js +7 -3
- package/es/qbsTable/utilities/CardMenuDropdown.d.ts +2 -0
- package/es/qbsTable/utilities/CardMenuDropdown.js +7 -7
- package/es/qbsTable/utilities/SearchInput.d.ts +1 -0
- package/es/qbsTable/utilities/SearchInput.js +3 -1
- package/es/qbsTable/utilities/empty.js +1 -1
- package/es/qbsTable/utilities/tablecalc.d.ts +1 -1
- package/es/qbsTable/utilities/tablecalc.js +7 -2
- package/es/utils/useCellDescriptor.js +0 -1
- package/es/utils/useScrollListener.d.ts +1 -0
- package/es/utils/useScrollListener.js +5 -3
- package/lib/Cell.js +2 -1
- package/lib/Pagination.d.ts +3 -0
- package/lib/Pagination.js +8 -3
- package/lib/Table.d.ts +3 -0
- package/lib/Table.js +18 -12
- package/lib/index.d.ts +1 -1
- package/lib/index.js +3 -1
- package/lib/less/pagination.less +9 -9
- package/lib/qbsTable/QbsTable.js +110 -73
- package/lib/qbsTable/TableCardList.js +2 -0
- package/lib/qbsTable/Toolbar.js +6 -3
- package/lib/qbsTable/commontypes.d.ts +21 -12
- package/lib/qbsTable/labels.d.ts +6 -2
- package/lib/qbsTable/labels.js +13 -2
- package/lib/qbsTable/utilities/CardComponent.d.ts +2 -0
- package/lib/qbsTable/utilities/CardComponent.js +7 -3
- package/lib/qbsTable/utilities/CardMenuDropdown.d.ts +2 -0
- package/lib/qbsTable/utilities/CardMenuDropdown.js +6 -5
- package/lib/qbsTable/utilities/SearchInput.d.ts +1 -0
- package/lib/qbsTable/utilities/SearchInput.js +3 -1
- package/lib/qbsTable/utilities/empty.js +1 -1
- package/lib/qbsTable/utilities/tablecalc.d.ts +1 -1
- package/lib/qbsTable/utilities/tablecalc.js +7 -2
- package/lib/utils/useCellDescriptor.js +0 -1
- package/lib/utils/useScrollListener.d.ts +1 -0
- package/lib/utils/useScrollListener.js +5 -3
- package/package.json +2 -2
- package/src/Cell.tsx +3 -1
- package/src/HeaderCell.tsx +0 -1
- package/src/Pagination.tsx +10 -3
- package/src/Table.tsx +23 -10
- package/src/customSelect.tsx +88 -88
- package/src/index.ts +2 -0
- package/src/less/pagination.less +9 -9
- package/src/qbsTable/QbsTable.tsx +84 -39
- package/src/qbsTable/TableCardList.tsx +2 -0
- package/src/qbsTable/Toolbar.tsx +4 -2
- package/src/qbsTable/commontypes.ts +21 -12
- package/src/qbsTable/labels.ts +9 -2
- package/src/qbsTable/utilities/CardComponent.tsx +7 -2
- package/src/qbsTable/utilities/CardMenuDropdown.tsx +11 -6
- package/src/qbsTable/utilities/SearchInput.tsx +3 -1
- package/src/qbsTable/utilities/empty.tsx +2 -2
- package/src/qbsTable/utilities/tablecalc.ts +8 -2
- package/src/utils/useCellDescriptor.ts +0 -1
- package/src/utils/useScrollListener.ts +13 -3
- package/src/utils/useTableRows.ts +1 -1
package/lib/qbsTable/QbsTable.js
CHANGED
|
@@ -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
|
-
|
|
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
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
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$
|
|
130
|
-
|
|
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
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
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
|
|
152
|
-
return (
|
|
156
|
+
var _ref2;
|
|
157
|
+
return (_ref2 = theme != null ? theme : typeof localStorage !== 'undefined' ? localStorage.getItem('theme') : null) != null ? _ref2 : 'light';
|
|
153
158
|
}, [theme]);
|
|
154
|
-
var
|
|
155
|
-
|
|
156
|
-
|
|
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
|
|
159
|
-
tableViewToggle =
|
|
160
|
-
setTableViewToggle =
|
|
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
|
|
164
|
-
|
|
165
|
-
|
|
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 (
|
|
516
|
-
var title =
|
|
517
|
-
field =
|
|
518
|
-
resizable =
|
|
519
|
-
sortable =
|
|
520
|
-
colWidth =
|
|
521
|
-
align =
|
|
522
|
-
grouped =
|
|
523
|
-
groupHeader =
|
|
524
|
-
fixed =
|
|
525
|
-
children =
|
|
526
|
-
customCell =
|
|
527
|
-
renderCell =
|
|
528
|
-
isVisible =
|
|
529
|
-
link =
|
|
530
|
-
getPath =
|
|
531
|
-
rowClick =
|
|
532
|
-
sortKey =
|
|
533
|
-
type =
|
|
534
|
-
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 :
|
|
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 :
|
|
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,
|
package/lib/qbsTable/Toolbar.js
CHANGED
|
@@ -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.
|
|
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;
|
|
@@ -40,7 +40,7 @@ export interface PaginationProps {
|
|
|
40
40
|
export interface ActionProps {
|
|
41
41
|
title?: string;
|
|
42
42
|
action?: (row: any) => void;
|
|
43
|
-
icon
|
|
43
|
+
icon?: React.ReactNode;
|
|
44
44
|
toolTip?: string;
|
|
45
45
|
hidden?: boolean;
|
|
46
46
|
hide?: (data: any, index?: number) => boolean;
|
|
@@ -70,6 +70,7 @@ export interface QbsTableProps {
|
|
|
70
70
|
searchValue?: string;
|
|
71
71
|
handleSearchValue?: (value?: string) => void;
|
|
72
72
|
theme?: string;
|
|
73
|
+
rtl?: boolean;
|
|
73
74
|
onRowClick?: (data: any) => void;
|
|
74
75
|
cellBordered?: boolean;
|
|
75
76
|
bordered?: boolean;
|
|
@@ -83,9 +84,8 @@ export interface QbsTableProps {
|
|
|
83
84
|
expandedRowKeys?: readonly number[];
|
|
84
85
|
setExpandedRowKeys?: (value: readonly number[]) => void;
|
|
85
86
|
handleMenuActions?: (actions: ActionProps, rowData: any) => void;
|
|
86
|
-
dropType?: 'vertical' | string;
|
|
87
|
+
dropType?: 'horizondal' | 'vertical' | string;
|
|
87
88
|
labels?: QbsTableLabels;
|
|
88
|
-
rtl?: boolean;
|
|
89
89
|
handleRowExpanded?: (rowData: any) => React.ReactNode;
|
|
90
90
|
shouldUpdateScroll?: boolean;
|
|
91
91
|
rowExpand?: boolean;
|
|
@@ -99,6 +99,8 @@ export interface QbsTableProps {
|
|
|
99
99
|
disabled?: boolean;
|
|
100
100
|
hidden?: boolean;
|
|
101
101
|
customHide?: string;
|
|
102
|
+
buttonClassName?: string;
|
|
103
|
+
icon?: ReactElement | ReactNode;
|
|
102
104
|
}[];
|
|
103
105
|
selectedRows?: (number | string)[];
|
|
104
106
|
classes?: {
|
|
@@ -131,13 +133,18 @@ export interface QbsTableProps {
|
|
|
131
133
|
handleTableCardView?: (data: any) => React.ReactNode;
|
|
132
134
|
isCustomTableCardView?: boolean;
|
|
133
135
|
handleCustomCardLoader?: () => React.ReactNode;
|
|
136
|
+
hasMoreData?: boolean;
|
|
137
|
+
loadMoreData?: () => void;
|
|
138
|
+
infiniteScroll?: boolean;
|
|
139
|
+
infiniteLoading?: boolean;
|
|
140
|
+
viewMode?: string;
|
|
134
141
|
rowViewToggle?: boolean;
|
|
135
142
|
defaultRowView?: boolean;
|
|
136
143
|
fullWidthView?: boolean;
|
|
137
144
|
setTableFullView?: (value: boolean) => void;
|
|
138
145
|
setRowViewToggle?: (value: boolean) => void;
|
|
139
|
-
isFullScreen?: boolean;
|
|
140
146
|
rowHeight?: number;
|
|
147
|
+
isFullScreen?: boolean;
|
|
141
148
|
showHeader?: boolean;
|
|
142
149
|
}
|
|
143
150
|
export interface QbsTableToolbarProps {
|
|
@@ -163,24 +170,26 @@ export interface QbsTableToolbarProps {
|
|
|
163
170
|
dataLength: number;
|
|
164
171
|
headerHeight?: number;
|
|
165
172
|
searchPlaceholder?: string;
|
|
173
|
+
labels?: QbsTableLabels;
|
|
174
|
+
rtl?: boolean;
|
|
166
175
|
tableView?: boolean;
|
|
167
176
|
enableTableToggle?: boolean;
|
|
168
177
|
tableViewToggle?: boolean;
|
|
169
178
|
setTableViewToggle?: (value: boolean) => void;
|
|
170
|
-
rowViewToggle?: boolean;
|
|
171
|
-
defaultRowView?: boolean;
|
|
172
|
-
fullWidthView?: boolean;
|
|
173
|
-
setTableFullView?: (value: boolean) => void;
|
|
174
|
-
setRowViewToggle?: (value: boolean) => void;
|
|
175
|
-
isFullScreen?: boolean;
|
|
176
|
-
labels?: QbsTableLabels;
|
|
177
|
-
rtl?: boolean;
|
|
178
179
|
selectedRowActions?: {
|
|
179
180
|
actionTitle?: string;
|
|
180
181
|
action: (checked: (number | string)[]) => void;
|
|
181
182
|
disabled?: boolean;
|
|
182
183
|
hidden?: boolean;
|
|
183
184
|
customHide?: string;
|
|
185
|
+
buttonClassName?: string;
|
|
186
|
+
icon?: ReactElement | ReactNode;
|
|
184
187
|
}[];
|
|
188
|
+
rowViewToggle?: boolean;
|
|
189
|
+
defaultRowView?: boolean;
|
|
190
|
+
fullWidthView?: boolean;
|
|
191
|
+
setTableFullView?: (value: boolean) => void;
|
|
192
|
+
setRowViewToggle?: (value: boolean) => void;
|
|
193
|
+
isFullScreen?: boolean;
|
|
185
194
|
}
|
|
186
195
|
export {};
|
package/lib/qbsTable/labels.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export
|
|
1
|
+
export interface QbsTableLabels {
|
|
2
2
|
search?: string;
|
|
3
3
|
searchAriaLabel?: string;
|
|
4
4
|
clear?: string;
|
|
@@ -19,7 +19,11 @@ export type QbsTableLabels = {
|
|
|
19
19
|
viewMore?: string;
|
|
20
20
|
viewLess?: string;
|
|
21
21
|
actions?: string;
|
|
22
|
-
}
|
|
22
|
+
}
|
|
23
23
|
export declare const defaultQbsTableLabels: QbsTableLabels;
|
|
24
|
+
/** @deprecated Use defaultQbsTableLabels */
|
|
25
|
+
export declare const DEFAULT_QBS_TABLE_LABELS: QbsTableLabels;
|
|
24
26
|
export declare const mergeQbsTableLabels: (overrides?: QbsTableLabels) => QbsTableLabels;
|
|
27
|
+
/** @deprecated Use mergeQbsTableLabels */
|
|
28
|
+
export declare const mergeLabels: (overrides?: QbsTableLabels) => QbsTableLabels;
|
|
25
29
|
export declare const formatSelectedItems: (count: number, labels?: QbsTableLabels) => string;
|
package/lib/qbsTable/labels.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 = void 0;
|
|
5
|
+
exports.mergeQbsTableLabels = exports.mergeLabels = exports.formatSelectedItems = exports.defaultQbsTableLabels = exports.DEFAULT_QBS_TABLE_LABELS = void 0;
|
|
6
6
|
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
7
7
|
var defaultQbsTableLabels = {
|
|
8
8
|
search: 'Search',
|
|
@@ -28,11 +28,22 @@ var defaultQbsTableLabels = {
|
|
|
28
28
|
viewLess: 'View Less',
|
|
29
29
|
actions: 'Actions'
|
|
30
30
|
};
|
|
31
|
+
|
|
32
|
+
/** @deprecated Use defaultQbsTableLabels */
|
|
31
33
|
exports.defaultQbsTableLabels = defaultQbsTableLabels;
|
|
34
|
+
var DEFAULT_QBS_TABLE_LABELS = defaultQbsTableLabels;
|
|
35
|
+
exports.DEFAULT_QBS_TABLE_LABELS = DEFAULT_QBS_TABLE_LABELS;
|
|
32
36
|
var mergeQbsTableLabels = function mergeQbsTableLabels(overrides) {
|
|
33
|
-
|
|
37
|
+
var _overrides$showingRan;
|
|
38
|
+
return (0, _extends2["default"])({}, defaultQbsTableLabels, overrides, {
|
|
39
|
+
showingRange: (_overrides$showingRan = overrides === null || overrides === void 0 ? void 0 : overrides.showingRange) != null ? _overrides$showingRan : defaultQbsTableLabels.showingRange
|
|
40
|
+
});
|
|
34
41
|
};
|
|
42
|
+
|
|
43
|
+
/** @deprecated Use mergeQbsTableLabels */
|
|
35
44
|
exports.mergeQbsTableLabels = mergeQbsTableLabels;
|
|
45
|
+
var mergeLabels = mergeQbsTableLabels;
|
|
46
|
+
exports.mergeLabels = mergeLabels;
|
|
36
47
|
var formatSelectedItems = function formatSelectedItems(count, labels) {
|
|
37
48
|
var merged = mergeQbsTableLabels(labels);
|
|
38
49
|
return merged.selectedItems + " (" + count + ")";
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { QbsColumnProps } from '../commontypes';
|
|
3
|
+
import { type QbsTableLabels } from '../labels';
|
|
3
4
|
type Props = {
|
|
4
5
|
columns: QbsColumnProps[];
|
|
5
6
|
data: any;
|
|
@@ -9,6 +10,7 @@ type Props = {
|
|
|
9
10
|
handleMenuActions?: () => void;
|
|
10
11
|
cardColumLimit?: number;
|
|
11
12
|
childDetailHeading?: string;
|
|
13
|
+
labels?: QbsTableLabels;
|
|
12
14
|
};
|
|
13
15
|
declare const CardComponent: React.FC<Props>;
|
|
14
16
|
export default CardComponent;
|
|
@@ -4,6 +4,7 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
|
|
|
4
4
|
exports.__esModule = true;
|
|
5
5
|
exports["default"] = void 0;
|
|
6
6
|
var _react = _interopRequireWildcard(require("react"));
|
|
7
|
+
var _labels = require("../labels");
|
|
7
8
|
var _CardMenuDropdown = _interopRequireDefault(require("./CardMenuDropdown"));
|
|
8
9
|
var _handleFormatCell = require("./handleFormatCell");
|
|
9
10
|
var _icons = require("./icons");
|
|
@@ -22,7 +23,9 @@ var CardComponent = function CardComponent(_ref) {
|
|
|
22
23
|
cardColumLimit = _ref$cardColumLimit === void 0 ? 5 : _ref$cardColumLimit,
|
|
23
24
|
handleMenuActions = _ref.handleMenuActions,
|
|
24
25
|
_ref$childDetailHeadi = _ref.childDetailHeading,
|
|
25
|
-
childDetailHeading = _ref$childDetailHeadi === void 0 ? '' : _ref$childDetailHeadi
|
|
26
|
+
childDetailHeading = _ref$childDetailHeadi === void 0 ? '' : _ref$childDetailHeadi,
|
|
27
|
+
labelsProp = _ref.labels;
|
|
28
|
+
var labels = (0, _labels.mergeLabels)(labelsProp);
|
|
26
29
|
var _useState = (0, _react.useState)(false),
|
|
27
30
|
viewMore = _useState[0],
|
|
28
31
|
setViewMore = _useState[1];
|
|
@@ -71,10 +74,11 @@ var CardComponent = function CardComponent(_ref) {
|
|
|
71
74
|
rowData: data,
|
|
72
75
|
iconName: "more",
|
|
73
76
|
rowIndex: index,
|
|
74
|
-
handleMenuActions: handleMenuActions
|
|
77
|
+
handleMenuActions: handleMenuActions,
|
|
78
|
+
labels: labels
|
|
75
79
|
})), columns.length > initialDisplayCount && /*#__PURE__*/_react["default"].createElement(_ToolTip["default"], {
|
|
76
80
|
tableBodyRef: useCardRef,
|
|
77
|
-
title: viewMore ?
|
|
81
|
+
title: viewMore ? labels.viewLess : labels.viewMore,
|
|
78
82
|
enabled: false
|
|
79
83
|
}, /*#__PURE__*/_react["default"].createElement("button", {
|
|
80
84
|
onClick: toggleViewMore,
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { ActionProps } from '../commontypes';
|
|
3
|
+
import { type QbsTableLabels } from '../labels';
|
|
3
4
|
type Props = {
|
|
4
5
|
iconName: string;
|
|
5
6
|
actionDropDown: ActionProps[];
|
|
@@ -8,6 +9,7 @@ type Props = {
|
|
|
8
9
|
dataTheme?: string;
|
|
9
10
|
tableBodyRef: React.RefObject<HTMLDivElement>;
|
|
10
11
|
rowIndex?: number;
|
|
12
|
+
labels?: QbsTableLabels;
|
|
11
13
|
};
|
|
12
14
|
declare const CardMenuDropdown: React.FC<Props>;
|
|
13
15
|
export default CardMenuDropdown;
|
|
@@ -4,6 +4,7 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
|
|
|
4
4
|
exports.__esModule = true;
|
|
5
5
|
exports["default"] = void 0;
|
|
6
6
|
var _react = _interopRequireWildcard(require("react"));
|
|
7
|
+
var _labels = require("../labels");
|
|
7
8
|
var _icons = require("./icons");
|
|
8
9
|
var _ToolTip = _interopRequireDefault(require("./ToolTip"));
|
|
9
10
|
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); }
|
|
@@ -11,7 +12,9 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj &&
|
|
|
11
12
|
var CardMenuDropdown = function CardMenuDropdown(_ref) {
|
|
12
13
|
var actionDropDown = _ref.actionDropDown,
|
|
13
14
|
handleMenuActions = _ref.handleMenuActions,
|
|
14
|
-
rowData = _ref.rowData
|
|
15
|
+
rowData = _ref.rowData,
|
|
16
|
+
labelsProp = _ref.labels;
|
|
17
|
+
var labels = (0, _labels.mergeLabels)(labelsProp);
|
|
15
18
|
var _useState = (0, _react.useState)(false),
|
|
16
19
|
openMenu = _useState[0],
|
|
17
20
|
setOpenMenu = _useState[1];
|
|
@@ -38,7 +41,6 @@ var CardMenuDropdown = function CardMenuDropdown(_ref) {
|
|
|
38
41
|
var dropdownHeight = 200; // Adjust this if your dropdown height varies
|
|
39
42
|
var spaceBelow = window.innerHeight - buttonRect.bottom;
|
|
40
43
|
var spaceAbove = buttonRect.top;
|
|
41
|
-
console.log(spaceAbove, spaceBelow, dropdownHeight);
|
|
42
44
|
if (spaceBelow < dropdownHeight && spaceAbove > spaceBelow) {
|
|
43
45
|
setMenuPositionStyles({
|
|
44
46
|
bottom: '30px',
|
|
@@ -71,9 +73,8 @@ var CardMenuDropdown = function CardMenuDropdown(_ref) {
|
|
|
71
73
|
onClick: toggleMenu,
|
|
72
74
|
ref: menuButtonRef
|
|
73
75
|
}, /*#__PURE__*/_react["default"].createElement(_ToolTip["default"], {
|
|
74
|
-
title:
|
|
75
|
-
enabled: false
|
|
76
|
-
ref: menuButtonRef
|
|
76
|
+
title: labels.actions,
|
|
77
|
+
enabled: false
|
|
77
78
|
}, /*#__PURE__*/_react["default"].createElement(_icons.ThreeDotIcon, null))), openMenu && /*#__PURE__*/_react["default"].createElement("div", {
|
|
78
79
|
className: " qbs-card-dropdown rounded absolute right-0 mt-2 w-auto min-w-11 z-10 shadow-modalShadow bg-white dark:bg-[#424242] dark:text-white",
|
|
79
80
|
style: menuPositionStyles
|