qbs-react-grid 1.2.1 → 1.2.2

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 (51) hide show
  1. package/dist/css/qbs-react-grid.css +1 -1095
  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/Table.js +19 -19
  5. package/es/less/index.less +3 -0
  6. package/es/qbsTable/QbsTable.js +34 -7
  7. package/es/qbsTable/TableCardList.d.ts +5 -0
  8. package/es/qbsTable/TableCardList.js +564 -0
  9. package/es/qbsTable/Toolbar.js +16 -2
  10. package/es/qbsTable/commontypes.d.ts +9 -0
  11. package/es/qbsTable/utilities/CardComponent.d.ts +12 -0
  12. package/es/qbsTable/utilities/CardComponent.js +64 -0
  13. package/es/qbsTable/utilities/CardMenuDropdown.d.ts +13 -0
  14. package/es/qbsTable/utilities/CardMenuDropdown.js +89 -0
  15. package/es/qbsTable/utilities/SwitchCardColumns.d.ts +2 -0
  16. package/es/qbsTable/utilities/SwitchCardColumns.js +24 -0
  17. package/es/qbsTable/utilities/icons.d.ts +3 -0
  18. package/es/qbsTable/utilities/icons.js +45 -0
  19. package/es/utils/getTotalByColumns.js +1 -1
  20. package/es/utils/mergeCells.js +1 -1
  21. package/es/utils/useCellDescriptor.js +11 -11
  22. package/es/utils/useClassNames.js +2 -0
  23. package/lib/Table.js +19 -19
  24. package/lib/less/index.less +3 -0
  25. package/lib/qbsTable/QbsTable.js +34 -7
  26. package/lib/qbsTable/TableCardList.d.ts +5 -0
  27. package/lib/qbsTable/TableCardList.js +571 -0
  28. package/lib/qbsTable/Toolbar.js +16 -2
  29. package/lib/qbsTable/commontypes.d.ts +9 -0
  30. package/lib/qbsTable/utilities/CardComponent.d.ts +12 -0
  31. package/lib/qbsTable/utilities/CardComponent.js +72 -0
  32. package/lib/qbsTable/utilities/CardMenuDropdown.d.ts +13 -0
  33. package/lib/qbsTable/utilities/CardMenuDropdown.js +95 -0
  34. package/lib/qbsTable/utilities/SwitchCardColumns.d.ts +2 -0
  35. package/lib/qbsTable/utilities/SwitchCardColumns.js +30 -0
  36. package/lib/qbsTable/utilities/icons.d.ts +3 -0
  37. package/lib/qbsTable/utilities/icons.js +50 -2
  38. package/lib/utils/getTotalByColumns.js +1 -1
  39. package/lib/utils/mergeCells.js +1 -1
  40. package/lib/utils/useCellDescriptor.js +11 -11
  41. package/lib/utils/useClassNames.js +2 -0
  42. package/package.json +11 -6
  43. package/src/less/index.less +3 -0
  44. package/src/qbsTable/QbsTable.tsx +201 -173
  45. package/src/qbsTable/TableCardList.tsx +629 -0
  46. package/src/qbsTable/Toolbar.tsx +22 -2
  47. package/src/qbsTable/commontypes.ts +9 -0
  48. package/src/qbsTable/utilities/CardComponent.tsx +102 -0
  49. package/src/qbsTable/utilities/CardMenuDropdown.tsx +118 -0
  50. package/src/qbsTable/utilities/SwitchCardColumns.tsx +29 -0
  51. package/src/qbsTable/utilities/icons.tsx +51 -0
@@ -0,0 +1,571 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ exports.__esModule = true;
5
+ exports["default"] = void 0;
6
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
7
+ var _react = _interopRequireWildcard(require("react"));
8
+ var _Cell = _interopRequireDefault(require("../Cell"));
9
+ var _Column = _interopRequireDefault(require("../Column"));
10
+ var _ColumnGroup = _interopRequireDefault(require("../ColumnGroup"));
11
+ var _HeaderCell = _interopRequireDefault(require("../HeaderCell"));
12
+ var _Pagination = _interopRequireDefault(require("../Pagination"));
13
+ var _Table = _interopRequireDefault(require("../Table"));
14
+ var _CustomTableCell = require("./CustomTableCell");
15
+ var _Toolbar = _interopRequireDefault(require("./Toolbar"));
16
+ var _ColumShowHide = _interopRequireDefault(require("./utilities/ColumShowHide"));
17
+ var _debounce = _interopRequireDefault(require("./utilities/debounce"));
18
+ var _deepEqual = require("./utilities/deepEqual");
19
+ var _empty = _interopRequireDefault(require("./utilities/empty"));
20
+ var _icons = require("./utilities/icons");
21
+ require("../../dist/css/qbs-react-grid.css");
22
+ 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); }
23
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
24
+ // import 'qbs-react-table/dist/css/qbs-react-grid.css';
25
+
26
+ var CHECKBOX_LINE_HEIGHT = '36px';
27
+ var COLUMN_WIDTH = 250;
28
+ var QbsTable = function QbsTable(_ref) {
29
+ var _Object$keys;
30
+ var handleColumnSort = _ref.handleColumnSort,
31
+ data = _ref.data,
32
+ propColumn = _ref.columns,
33
+ sortColumn = _ref.sortColumn,
34
+ sortType = _ref.sortType,
35
+ _ref$selection = _ref.selection,
36
+ selection = _ref$selection === void 0 ? false : _ref$selection,
37
+ onSelect = _ref.onSelect,
38
+ _ref$title = _ref.title,
39
+ title = _ref$title === void 0 ? 'My Tabl' : _ref$title,
40
+ _ref$search = _ref.search,
41
+ search = _ref$search === void 0 ? false : _ref$search,
42
+ asyncSearch = _ref.asyncSearch,
43
+ searchValue = _ref.searchValue,
44
+ onSearch = _ref.onSearch,
45
+ handleSearchValue = _ref.handleSearchValue,
46
+ _ref$paginationProps = _ref.paginationProps,
47
+ paginationProps = _ref$paginationProps === void 0 ? {} : _ref$paginationProps,
48
+ _ref$pagination = _ref.pagination,
49
+ pagination = _ref$pagination === void 0 ? false : _ref$pagination,
50
+ _ref$cellBordered = _ref.cellBordered,
51
+ cellBordered = _ref$cellBordered === void 0 ? false : _ref$cellBordered,
52
+ _ref$bordered = _ref.bordered,
53
+ bordered = _ref$bordered === void 0 ? false : _ref$bordered,
54
+ minHeight = _ref.minHeight,
55
+ _ref$height = _ref.height,
56
+ height = _ref$height === void 0 ? 630 : _ref$height,
57
+ onExpandChange = _ref.onExpandChange,
58
+ wordWrap = _ref.wordWrap,
59
+ _ref$dataRowKey = _ref.dataRowKey,
60
+ dataRowKey = _ref$dataRowKey === void 0 ? 'id' : _ref$dataRowKey,
61
+ defaultExpandAllRows = _ref.defaultExpandAllRows,
62
+ handleRowExpanded = _ref.handleRowExpanded,
63
+ _ref$shouldUpdateScro = _ref.shouldUpdateScroll,
64
+ shouldUpdateScroll = _ref$shouldUpdateScro === void 0 ? false : _ref$shouldUpdateScro,
65
+ _ref$rowExpand = _ref.rowExpand,
66
+ rowExpand = _ref$rowExpand === void 0 ? false : _ref$rowExpand,
67
+ _ref$actionProps = _ref.actionProps,
68
+ actionProps = _ref$actionProps === void 0 ? [] : _ref$actionProps,
69
+ theme = _ref.theme,
70
+ handleMenuActions = _ref.handleMenuActions,
71
+ onRowClick = _ref.onRowClick,
72
+ expandedRowKeys = _ref.expandedRowKeys,
73
+ setExpandedRowKeys = _ref.setExpandedRowKeys,
74
+ primaryFilter = _ref.primaryFilter,
75
+ advancefilter = _ref.advancefilter,
76
+ _ref$classes = _ref.classes,
77
+ classes = _ref$classes === void 0 ? {} : _ref$classes,
78
+ toolbar = _ref.toolbar,
79
+ _ref$columnToggle = _ref.columnToggle,
80
+ columnToggle = _ref$columnToggle === void 0 ? true : _ref$columnToggle,
81
+ handleColumnToggle = _ref.handleColumnToggle,
82
+ tableHeaderActions = _ref.tableHeaderActions,
83
+ isLoading = _ref.isLoading,
84
+ selectedRowActions = _ref.selectedRowActions,
85
+ handleResetColumns = _ref.handleResetColumns,
86
+ selectedRows = _ref.selectedRows,
87
+ _ref$headerHeight = _ref.headerHeight,
88
+ headerHeight = _ref$headerHeight === void 0 ? 40 : _ref$headerHeight,
89
+ tableBodyHeight = _ref.tableBodyHeight,
90
+ customRowStatus = _ref.customRowStatus,
91
+ searchPlaceholder = _ref.searchPlaceholder,
92
+ _ref$rowExpandedHeigh = _ref.rowExpandedHeight,
93
+ rowExpandedHeight = _ref$rowExpandedHeigh === void 0 ? 317 : _ref$rowExpandedHeigh,
94
+ renderSortIcon = _ref.renderSortIcon,
95
+ _ref$tableKey = _ref.tableKey,
96
+ tableKey = _ref$tableKey === void 0 ? 'parent' : _ref$tableKey,
97
+ _renderEmpty = _ref.renderEmpty,
98
+ autoHeight = _ref.autoHeight,
99
+ emptySubTitle = _ref.emptySubTitle,
100
+ emptyTitle = _ref.emptyTitle;
101
+ var _useState = (0, _react.useState)(false),
102
+ loading = _useState[0],
103
+ setLoading = _useState[1];
104
+ var _useState2 = (0, _react.useState)(propColumn),
105
+ columns = _useState2[0],
106
+ setColumns = _useState2[1];
107
+ var _useState3 = (0, _react.useState)([]),
108
+ checkedKeys = _useState3[0],
109
+ setCheckedKeys = _useState3[1];
110
+ var dataTheme = (0, _react.useMemo)(function () {
111
+ var _localStorage$getItem;
112
+ return (_localStorage$getItem = localStorage.getItem('theme')) != null ? _localStorage$getItem : theme;
113
+ }, [theme]);
114
+ var _useState4 = (0, _react.useState)(false),
115
+ isOpen = _useState4[0],
116
+ setIsOpen = _useState4[1];
117
+ var prevColumns = (0, _react.useRef)();
118
+ var tableBodyRef = (0, _react.useRef)(null);
119
+ var handleSortColumn = (0, _react.useCallback)(function (sortColumn, sortType) {
120
+ setLoading(true);
121
+ setTimeout(function () {
122
+ setLoading(false);
123
+ handleColumnSort === null || handleColumnSort === void 0 ? void 0 : handleColumnSort(sortColumn, sortType);
124
+ }, 500);
125
+ }, [handleColumnSort]);
126
+ (0, _react.useEffect)(function () {
127
+ if (selectedRows) {
128
+ setCheckedKeys(selectedRows != null ? selectedRows : []);
129
+ } else {
130
+ setCheckedKeys([]);
131
+ }
132
+ }, [selectedRows]);
133
+ var handleChecked = (0, _debounce["default"])(function (keys) {
134
+ onSelect === null || onSelect === void 0 ? void 0 : onSelect(keys);
135
+ }, 500);
136
+ var handleCheckAll = (0, _react.useCallback)(function (event) {
137
+ var keys = event.target.checked ? data.map(function (item) {
138
+ return item.id;
139
+ }) : [];
140
+ // let updatedKeys = [...keys];
141
+ // if (checkedKeys) {
142
+ // updatedKeys = [...checkedKeys, ...updatedKeys];
143
+ // } TODO => previous bug fix removed this section
144
+ var updatedKeys = [].concat(keys);
145
+ setCheckedKeys(updatedKeys);
146
+ handleChecked(updatedKeys);
147
+ }, [data]);
148
+ var handleCheck = (0, _react.useCallback)(function (event) {
149
+ var value = event.target.value;
150
+ if (value !== undefined) {
151
+ var updatedKeys = event.target.checked ? [].concat(checkedKeys, [value]) : checkedKeys.filter(function (key) {
152
+ return key !== value;
153
+ });
154
+ setCheckedKeys(updatedKeys);
155
+ handleChecked(updatedKeys);
156
+ }
157
+ }, [checkedKeys]);
158
+ var handleToggle = (0, _react.useCallback)(function (columnName) {
159
+ var lastVisibleColumn = null;
160
+ var visibleCount = 0;
161
+ var updatedColumns = columns === null || columns === void 0 ? void 0 : columns.map(function (col) {
162
+ // Toggle visibility for the matched column
163
+ if (col.title === columnName) {
164
+ col = (0, _extends2["default"])({}, col, {
165
+ isVisible: !col.isVisible
166
+ });
167
+ }
168
+ if (col.isVisible) {
169
+ lastVisibleColumn = col;
170
+ visibleCount++;
171
+ }
172
+ return col;
173
+ });
174
+ if (visibleCount > 0 && lastVisibleColumn) {
175
+ updatedColumns.forEach(function (col) {
176
+ var _lastVisibleColumn;
177
+ if (col.field === ((_lastVisibleColumn = lastVisibleColumn) === null || _lastVisibleColumn === void 0 ? void 0 : _lastVisibleColumn.field) && col.title === lastVisibleColumn.title) {
178
+ col.resizable = false;
179
+ } else {
180
+ col.resizable = true;
181
+ }
182
+ });
183
+ }
184
+ setColumns(updatedColumns);
185
+ }, [columns]);
186
+ var handleColumnWidth = (0, _react.useCallback)(function (newWidth, dataKey) {
187
+ if (newWidth === undefined || dataKey === undefined) return;
188
+ setColumns(function (prevColumns) {
189
+ return prevColumns.map(function (column) {
190
+ return column.field === dataKey ? (0, _extends2["default"])({}, column, {
191
+ colWidth: newWidth
192
+ }) : column;
193
+ });
194
+ });
195
+ }, []);
196
+ (0, _react.useEffect)(function () {
197
+ if (wordWrap === 'fit-content') {
198
+ setColumns(function (prevColumns) {
199
+ return prevColumns.map(function (column) {
200
+ return column.field ? (0, _extends2["default"])({}, column, {
201
+ colWidth: calculateWidth(column.field)
202
+ }) : column;
203
+ });
204
+ });
205
+ }
206
+ }, [wordWrap]);
207
+ var onReorder = (0, _react.useCallback)(function (columns) {
208
+ setColumns(columns);
209
+ }, []);
210
+
211
+ // useEffect(() => {
212
+ // }, [columns]);
213
+
214
+ var handleClear = function handleClear(_ref2) {
215
+ setCheckedKeys([]);
216
+ handleChecked([]);
217
+ };
218
+ var toolbarProps = {
219
+ title: title,
220
+ search: search,
221
+ searchValue: searchValue,
222
+ pagination: pagination,
223
+ onSearch: onSearch,
224
+ handleSearchValue: handleSearchValue,
225
+ asyncSearch: asyncSearch,
226
+ paginationProps: paginationProps,
227
+ primaryFilter: primaryFilter,
228
+ advancefilter: advancefilter,
229
+ className: classes === null || classes === void 0 ? void 0 : classes.toolbarClass,
230
+ handleToggle: handleToggle,
231
+ onReorder: onReorder,
232
+ columnToggle: columnToggle,
233
+ columns: columns,
234
+ checkedKeys: checkedKeys,
235
+ tableHeaderActions: tableHeaderActions,
236
+ selectedRowActions: selectedRowActions,
237
+ onSelect: handleClear,
238
+ handleColumnToggle: handleColumnToggle,
239
+ dataLength: data === null || data === void 0 ? void 0 : data.length,
240
+ searchPlaceholder: searchPlaceholder
241
+ };
242
+ var themeToggle = (0, _react.useMemo)(function () {
243
+ return document.getElementById('themeToggle');
244
+ }, []);
245
+ (0, _react.useEffect)(function () {
246
+ var handleThemeToggle = function handleThemeToggle() {
247
+ if (themeToggle !== null && themeToggle !== void 0 && themeToggle.checked) {
248
+ document.body.setAttribute('data-theme', 'dark');
249
+ } else {
250
+ document.body.removeAttribute('data-theme');
251
+ }
252
+ };
253
+ var handleDOMContentLoaded = function handleDOMContentLoaded() {
254
+ if (localStorage.getItem('theme') === 'dark') {
255
+ document.body.setAttribute('data-theme', 'dark');
256
+ if (themeToggle) {
257
+ themeToggle.checked = true;
258
+ }
259
+ }
260
+ };
261
+ themeToggle === null || themeToggle === void 0 ? void 0 : themeToggle.addEventListener('change', handleThemeToggle);
262
+ document.addEventListener('DOMContentLoaded', handleDOMContentLoaded);
263
+ return function () {
264
+ themeToggle === null || themeToggle === void 0 ? void 0 : themeToggle.removeEventListener('change', handleThemeToggle);
265
+ document.removeEventListener('DOMContentLoaded', handleDOMContentLoaded);
266
+ };
267
+ }, [themeToggle]);
268
+ var handleExpanded = (0, _react.useCallback)(function (rowData) {
269
+ console.log(rowData);
270
+ var keyValue = dataRowKey;
271
+ var key = rowData[keyValue];
272
+ var nextExpandedRowKeys = new Set(expandedRowKeys);
273
+ if (nextExpandedRowKeys.has(key)) {
274
+ nextExpandedRowKeys["delete"](key);
275
+ } else {
276
+ nextExpandedRowKeys.add(key);
277
+ }
278
+ setExpandedRowKeys === null || setExpandedRowKeys === void 0 ? void 0 : setExpandedRowKeys(Array.from(nextExpandedRowKeys));
279
+ }, [dataRowKey, expandedRowKeys, setExpandedRowKeys]);
280
+ var calculateWidth = function calculateWidth(str, fontSize, characterWidth) {
281
+ if (fontSize === void 0) {
282
+ fontSize = 8;
283
+ }
284
+ if (characterWidth === void 0) {
285
+ characterWidth = 1;
286
+ }
287
+ var result = findLargestCell(str) * fontSize * characterWidth;
288
+ return result > 60 ? result : 60;
289
+ };
290
+ function findLargestCell(columnTitle) {
291
+ var largestCellLength = 0;
292
+ data.forEach(function (row) {
293
+ if (row[columnTitle] && String(row[columnTitle]).length > largestCellLength) {
294
+ largestCellLength = String(row[columnTitle]).length;
295
+ }
296
+ });
297
+ return largestCellLength;
298
+ }
299
+ var handleColumnsResizable = (0, _react.useCallback)(function () {
300
+ var _filteredColumns$leng;
301
+ var filteredColumns = columns === null || columns === void 0 ? void 0 : columns.filter(function (item) {
302
+ return item.isVisible;
303
+ });
304
+ var length = (_filteredColumns$leng = filteredColumns === null || filteredColumns === void 0 ? void 0 : filteredColumns.length) != null ? _filteredColumns$leng : 0;
305
+ var lastVisibleColumn = filteredColumns[length - 1];
306
+ var reColumns = columns === null || columns === void 0 ? void 0 : columns.map(function (item) {
307
+ return (item === null || item === void 0 ? void 0 : item.field) === (lastVisibleColumn === null || lastVisibleColumn === void 0 ? void 0 : lastVisibleColumn.field) ? (0, _extends2["default"])({}, item, {
308
+ resizable: false
309
+ }) : item;
310
+ });
311
+ setColumns(reColumns);
312
+ }, [columns]);
313
+ (0, _react.useEffect)(function () {
314
+ setColumns(propColumn);
315
+ }, [propColumn]);
316
+ (0, _react.useEffect)(function () {
317
+ if (!(0, _deepEqual.deepEqual)(columns, prevColumns.current)) {
318
+ handleColumnsResizable();
319
+ }
320
+ prevColumns.current = columns;
321
+ }, [columns, handleColumnsResizable]);
322
+ var findGrouped = function findGrouped() {
323
+ return columns !== null && columns !== void 0 && columns.find(function (item) {
324
+ return item.grouped;
325
+ }) ? true : false;
326
+ };
327
+ var columnsRendered = (0, _react.useMemo)(function () {
328
+ return (columns != null ? columns : []).map(function (_ref3) {
329
+ var title = _ref3.title,
330
+ field = _ref3.field,
331
+ resizable = _ref3.resizable,
332
+ sortable = _ref3.sortable,
333
+ colWidth = _ref3.colWidth,
334
+ align = _ref3.align,
335
+ grouped = _ref3.grouped,
336
+ groupHeader = _ref3.groupHeader,
337
+ fixed = _ref3.fixed,
338
+ children = _ref3.children,
339
+ customCell = _ref3.customCell,
340
+ renderCell = _ref3.renderCell,
341
+ isVisible = _ref3.isVisible,
342
+ link = _ref3.link,
343
+ getPath = _ref3.getPath,
344
+ rowClick = _ref3.rowClick,
345
+ sortKey = _ref3.sortKey,
346
+ type = _ref3.type,
347
+ hideLink = _ref3.hideLink;
348
+ return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, isVisible && /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, grouped ? /*#__PURE__*/_react["default"].createElement(_ColumnGroup["default"], {
349
+ header: groupHeader,
350
+ fixed: fixed,
351
+ align: align,
352
+ verticalAlign: "middle",
353
+ groupHeaderHeight: 40
354
+ }, /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, children === null || children === void 0 ? void 0 : children.map(function (child) {
355
+ var _child$colWidth;
356
+ return /*#__PURE__*/_react["default"].createElement(_Column["default"], {
357
+ key: child.title,
358
+ sortable: child.sortable,
359
+ width: (_child$colWidth = child.colWidth) != null ? _child$colWidth : COLUMN_WIDTH,
360
+ resizable: child.resizable,
361
+ align: child.align,
362
+ onResize: handleColumnWidth,
363
+ fixed: child.fixed
364
+ }, /*#__PURE__*/_react["default"].createElement(_HeaderCell["default"], {
365
+ dataTheme: dataTheme,
366
+ verticalAlign: 'middle',
367
+ className: " " + classes.headerClass,
368
+ sortKey: child.sortKey,
369
+ renderSortIcon: renderSortIcon
370
+ }, child.title), child.customCell || child.link ? /*#__PURE__*/_react["default"].createElement(_CustomTableCell.CustomTableCell, {
371
+ renderCell: child.renderCell,
372
+ dataKey: child.field,
373
+ dataTheme: dataTheme,
374
+ type: child.type,
375
+ path: child.getPath,
376
+ link: child.link
377
+ }) : /*#__PURE__*/_react["default"].createElement(_Cell["default"], {
378
+ className: " " + classes.cellClass,
379
+ dataKey: child.field,
380
+ dataTheme: dataTheme
381
+ }));
382
+ }))) : /*#__PURE__*/_react["default"].createElement(_Column["default"], {
383
+ key: title,
384
+ sortable: sortable,
385
+ width: colWidth != null ? colWidth : COLUMN_WIDTH,
386
+ resizable: resizable,
387
+ align: align,
388
+ fixed: fixed,
389
+ onResize: handleColumnWidth
390
+ }, /*#__PURE__*/_react["default"].createElement(_HeaderCell["default"], {
391
+ dataTheme: dataTheme,
392
+ verticalAlign: findGrouped() ? 'middle' : undefined,
393
+ className: " " + classes.headerClass,
394
+ sortKey: sortKey,
395
+ renderSortIcon: renderSortIcon
396
+ }, title), customCell || link ? /*#__PURE__*/_react["default"].createElement(_CustomTableCell.CustomTableCell, {
397
+ renderCell: renderCell,
398
+ dataKey: field,
399
+ rowClick: rowClick,
400
+ type: type,
401
+ hideLink: hideLink,
402
+ path: getPath,
403
+ dataTheme: dataTheme,
404
+ link: link
405
+ }) : /*#__PURE__*/_react["default"].createElement(_Cell["default"], {
406
+ dataKey: field,
407
+ dataTheme: dataTheme,
408
+ className: " " + classes.cellClass
409
+ }))));
410
+ });
411
+ }, [columns, dataTheme]);
412
+ return /*#__PURE__*/_react["default"].createElement("div", {
413
+ className: "qbs-table " + classes.tableContainerClass,
414
+ "data-theme": dataTheme
415
+ }, toolbar && /*#__PURE__*/_react["default"].createElement(_Toolbar["default"], toolbarProps), /*#__PURE__*/_react["default"].createElement("div", {
416
+ className: "qbs-table-border-wrap"
417
+ }, /*#__PURE__*/_react["default"].createElement(_Table["default"], {
418
+ height: autoHeight ? undefined : height,
419
+ key: tableKey,
420
+ tableKey: tableKey,
421
+ data: data,
422
+ tableBodyRef: tableBodyRef,
423
+ dataTheme: dataTheme,
424
+ wordWrap: wordWrap,
425
+ autoHeight: autoHeight,
426
+ sortColumn: sortColumn,
427
+ style: {
428
+ position: 'relative'
429
+ },
430
+ sortType: sortType,
431
+ onSortColumn: handleSortColumn,
432
+ onRowClick: onRowClick,
433
+ tableBodyHeight: tableBodyHeight,
434
+ cellBordered: cellBordered,
435
+ bordered: bordered,
436
+ renderEmpty: function renderEmpty(info) {
437
+ return _renderEmpty ? _renderEmpty(info) : /*#__PURE__*/_react["default"].createElement(_empty["default"], {
438
+ title: emptyTitle != null ? emptyTitle : 'No Data Found',
439
+ subtitle: emptySubTitle
440
+ });
441
+ },
442
+ columns: columns,
443
+ minHeight: minHeight,
444
+ headerHeight: headerHeight,
445
+ rowExpandedHeight: rowExpandedHeight,
446
+ loading: isLoading != null ? isLoading : loading,
447
+ showHeader: true,
448
+ defaultChecked: true,
449
+ expandedRowKeys: expandedRowKeys,
450
+ onExpandChange: onExpandChange,
451
+ rowKey: dataRowKey != null ? dataRowKey : 'id',
452
+ defaultExpandAllRows: defaultExpandAllRows,
453
+ shouldUpdateScroll: shouldUpdateScroll,
454
+ renderRowExpanded: function renderRowExpanded(rowData) {
455
+ return handleRowExpanded === null || handleRowExpanded === void 0 ? void 0 : handleRowExpanded(rowData);
456
+ }
457
+ }, rowExpand && /*#__PURE__*/_react["default"].createElement(_Column["default"], {
458
+ width: 70,
459
+ align: "center",
460
+ fixed: "left"
461
+ }, /*#__PURE__*/_react["default"].createElement(_HeaderCell["default"], {
462
+ verticalAlign: findGrouped() ? 'middle' : undefined,
463
+ className: " " + classes.headerlClass,
464
+ renderSortIcon: renderSortIcon
465
+ }, "#"), /*#__PURE__*/_react["default"].createElement(_CustomTableCell.ExpandCell, {
466
+ dataKey: dataRowKey,
467
+ expandedRowKeys: expandedRowKeys,
468
+ onChange: handleExpanded
469
+ })), selection && /*#__PURE__*/_react["default"].createElement(_Column["default"], {
470
+ width: 50,
471
+ align: "center",
472
+ fixed: "left"
473
+ }, /*#__PURE__*/_react["default"].createElement(_HeaderCell["default"], {
474
+ style: {
475
+ padding: 0
476
+ },
477
+ verticalAlign: findGrouped() ? 'middle' : undefined,
478
+ dataTheme: dataTheme,
479
+ renderSortIcon: renderSortIcon,
480
+ className: "qbs-checkbox-border-none " + classes.headerlClass
481
+ }, /*#__PURE__*/_react["default"].createElement("div", {
482
+ style: {
483
+ lineHeight: CHECKBOX_LINE_HEIGHT
484
+ },
485
+ className: "qbs-table-checkbox " + classes.selectionCell
486
+ }, /*#__PURE__*/_react["default"].createElement("input", {
487
+ type: "checkbox",
488
+ onChange: handleCheckAll,
489
+ id: 'checkbox-all',
490
+ className: "qbs-table-checkbox-input " + classes.tableCheckBoxClass,
491
+ checked: (data === null || data === void 0 ? void 0 : data.length) > 0 && data.every(function (item) {
492
+ return checkedKeys === null || checkedKeys === void 0 ? void 0 : checkedKeys.includes(item.id);
493
+ })
494
+ }), /*#__PURE__*/_react["default"].createElement("label", {
495
+ htmlFor: 'checkbox-all'
496
+ }, /*#__PURE__*/_react["default"].createElement("svg", {
497
+ width: "8",
498
+ height: "6",
499
+ viewBox: "0 0 8 6",
500
+ fill: "none",
501
+ xmlns: "http://www.w3.org/2000/svg"
502
+ }, /*#__PURE__*/_react["default"].createElement("path", {
503
+ d: "M0 3.21739L2.89883 6L8 1.06994L6.89494 0L2.89883 3.86768L1.09728 2.14745L0 3.21739Z",
504
+ fill: "white"
505
+ }))))), /*#__PURE__*/_react["default"].createElement(_CustomTableCell.CheckCell, {
506
+ dataKey: "id",
507
+ checkedKeys: checkedKeys,
508
+ className: "" + classes.tableCheckBoxClass,
509
+ onChange: handleCheck,
510
+ dataTheme: dataTheme
511
+ })), customRowStatus && ((_Object$keys = Object.keys(customRowStatus)) === null || _Object$keys === void 0 ? void 0 : _Object$keys.length) > 0 && /*#__PURE__*/_react["default"].createElement(_Column["default"], {
512
+ width: 50,
513
+ align: "center",
514
+ fixed: "left"
515
+ }, /*#__PURE__*/_react["default"].createElement(_HeaderCell["default"], {
516
+ verticalAlign: findGrouped() ? 'middle' : undefined,
517
+ className: " " + classes.headerlClass,
518
+ renderSortIcon: renderSortIcon
519
+ }, ' '), /*#__PURE__*/_react["default"].createElement(_CustomTableCell.CustomRowStatus, {
520
+ getIcon: customRowStatus.getIcon,
521
+ dataKey: customRowStatus.field,
522
+ rowClick: customRowStatus.onClick,
523
+ path: customRowStatus.getPath,
524
+ link: customRowStatus.link,
525
+ getToolTip: customRowStatus.getToolTip
526
+ })), columnsRendered, !actionProps || (actionProps === null || actionProps === void 0 ? void 0 : actionProps.length) === 0 && columnToggle && /*#__PURE__*/_react["default"].createElement(_Column["default"], {
527
+ width: 40,
528
+ fixed: "right"
529
+ }, /*#__PURE__*/_react["default"].createElement(_HeaderCell["default"], {
530
+ verticalAlign: findGrouped() ? 'middle' : undefined,
531
+ className: " " + classes.headerlClass,
532
+ dataTheme: dataTheme,
533
+ renderSortIcon: renderSortIcon
534
+ }, /*#__PURE__*/_react["default"].createElement(_ColumShowHide["default"], {
535
+ columns: columns,
536
+ onToggle: handleToggle,
537
+ onReorder: onReorder,
538
+ isOpen: isOpen,
539
+ tableHeight: height,
540
+ setIsOpen: setIsOpen,
541
+ handleResetColumns: handleResetColumns,
542
+ handleColumnToggle: handleColumnToggle
543
+ })), /*#__PURE__*/_react["default"].createElement(_Cell["default"], null)), actionProps && (actionProps === null || actionProps === void 0 ? void 0 : actionProps.length) > 0 && /*#__PURE__*/_react["default"].createElement(_Column["default"], {
544
+ width: 40,
545
+ fixed: "right"
546
+ }, /*#__PURE__*/_react["default"].createElement(_HeaderCell["default"], {
547
+ verticalAlign: findGrouped() ? 'middle' : undefined,
548
+ className: " " + classes.headerlClass,
549
+ dataTheme: dataTheme,
550
+ renderSortIcon: renderSortIcon
551
+ }, !columnToggle ? /*#__PURE__*/_react["default"].createElement(_icons.SettingsIcon, null) : /*#__PURE__*/_react["default"].createElement(_ColumShowHide["default"], {
552
+ columns: columns,
553
+ onToggle: handleToggle,
554
+ tableHeight: height,
555
+ onReorder: onReorder,
556
+ isOpen: isOpen,
557
+ setIsOpen: setIsOpen,
558
+ handleResetColumns: handleResetColumns,
559
+ handleColumnToggle: handleColumnToggle
560
+ })), /*#__PURE__*/_react["default"].createElement(_CustomTableCell.ActionCell, {
561
+ tableBodyRef: tableBodyRef,
562
+ actionProps: actionProps,
563
+ className: classes.cellClass + " " + classes.actionCellClass,
564
+ handleMenuActions: handleMenuActions,
565
+ dataTheme: dataTheme
566
+ }))), /*#__PURE__*/_react["default"].createElement("div", null, pagination && (data === null || data === void 0 ? void 0 : data.length) > 0 && /*#__PURE__*/_react["default"].createElement(_Pagination["default"], {
567
+ paginationProps: paginationProps
568
+ }))));
569
+ };
570
+ var _default = QbsTable;
571
+ exports["default"] = _default;
@@ -7,6 +7,8 @@ var _react = _interopRequireWildcard(require("react"));
7
7
  var _debounce = _interopRequireDefault(require("./utilities/debounce"));
8
8
  var _SearchInput = _interopRequireDefault(require("./utilities/SearchInput"));
9
9
  var _tablecalc = require("./utilities/tablecalc");
10
+ var _ToolTip = _interopRequireDefault(require("./utilities/ToolTip"));
11
+ var _icons = require("./utilities/icons");
10
12
  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
13
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
12
14
  var ToolBar = function ToolBar(_ref) {
@@ -27,7 +29,11 @@ var ToolBar = function ToolBar(_ref) {
27
29
  checkedKeys = _ref.checkedKeys,
28
30
  onSelect = _ref.onSelect,
29
31
  dataLength = _ref.dataLength,
30
- searchPlaceholder = _ref.searchPlaceholder;
32
+ searchPlaceholder = _ref.searchPlaceholder,
33
+ tableViewToggle = _ref.tableViewToggle,
34
+ setTableViewToggle = _ref.setTableViewToggle,
35
+ _ref$enableTableToggl = _ref.enableTableToggle,
36
+ enableTableToggle = _ref$enableTableToggl === void 0 ? false : _ref$enableTableToggl;
31
37
  var debouncedOnSearch = (0, _react.useCallback)((0, _debounce["default"])(onSearch != null ? onSearch : function () {}, 1000), [onSearch]);
32
38
  var _useState = (0, _react.useState)(searchValue),
33
39
  searchParam = _useState[0],
@@ -73,7 +79,15 @@ var ToolBar = function ToolBar(_ref) {
73
79
  searchValue: searchParam
74
80
  }), primaryFilter)), /*#__PURE__*/_react["default"].createElement("div", {
75
81
  className: "end-container"
76
- }, tableHeaderActions)), advancefilter && /*#__PURE__*/_react["default"].createElement("div", {
82
+ }, tableHeaderActions, /*#__PURE__*/_react["default"].createElement("div", {
83
+ className: " pr-1 cursor-pointer",
84
+ onClick: function onClick() {
85
+ return setTableViewToggle === null || setTableViewToggle === void 0 ? void 0 : setTableViewToggle(!tableViewToggle);
86
+ }
87
+ }, !enableTableToggle && /*#__PURE__*/_react["default"].createElement(_ToolTip["default"], {
88
+ enabled: true,
89
+ title: tableViewToggle ? 'Switch to Card View' : 'Switch to Table View'
90
+ }, !tableViewToggle ? /*#__PURE__*/_react["default"].createElement(_icons.CardIcon, null) : /*#__PURE__*/_react["default"].createElement(_icons.TableIcon, null))))), advancefilter && /*#__PURE__*/_react["default"].createElement("div", {
77
91
  className: "sub-qbs-table-toolbar"
78
92
  }, advancefilter), (pagination && dataLength > 0 || checkedKeys && (checkedKeys === null || checkedKeys === void 0 ? void 0 : checkedKeys.length) > 0) && /*#__PURE__*/_react["default"].createElement("div", {
79
93
  className: "qbs-table-toolbar-sub-container " + (checkedKeys && (checkedKeys === null || checkedKeys === void 0 ? void 0 : checkedKeys.length) > 0 ? 'selected-row' : '')
@@ -42,6 +42,9 @@ export interface ActionProps {
42
42
  toolTip?: string;
43
43
  hidden?: boolean;
44
44
  hide?: (data: any, index?: number) => boolean;
45
+ isWarning?: boolean;
46
+ label?: string;
47
+ iconName?: string;
45
48
  }
46
49
  export interface QbsTableProps {
47
50
  tableKey?: string;
@@ -116,6 +119,8 @@ export interface QbsTableProps {
116
119
  renderEmpty?: (info: React.ReactNode) => React.ReactNode;
117
120
  emptySubTitle?: string;
118
121
  emptyTitle?: string;
122
+ enableTableToggle?: boolean;
123
+ tableView?: boolean;
119
124
  }
120
125
  export interface QbsTableToolbarProps {
121
126
  title?: string;
@@ -140,6 +145,10 @@ export interface QbsTableToolbarProps {
140
145
  dataLength: number;
141
146
  headerHeight?: number;
142
147
  searchPlaceholder?: string;
148
+ tableView?: boolean;
149
+ enableTableToggle?: boolean;
150
+ tableViewToggle?: boolean;
151
+ setTableViewToggle?: (value: boolean) => void;
143
152
  selectedRowActions?: {
144
153
  actionTitle?: string;
145
154
  action: (checked: (number | string)[]) => void;
@@ -0,0 +1,12 @@
1
+ import React from 'react';
2
+ import { QbsColumnProps } from '../commontypes';
3
+ type Props = {
4
+ columns: QbsColumnProps[];
5
+ data: any;
6
+ tableBodyRef: any;
7
+ actionProps?: any;
8
+ index?: number;
9
+ handleMenuActions?: () => void;
10
+ };
11
+ declare const CardComponent: React.FC<Props>;
12
+ export default CardComponent;