qbs-react-grid 2.0.16 → 2.2.0

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 (57) 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/Pagination.d.ts +3 -0
  5. package/es/Pagination.js +8 -3
  6. package/es/index.d.ts +1 -1
  7. package/es/less/qbs-table.less +95 -4
  8. package/es/qbsTable/QbsTable.js +53 -34
  9. package/es/qbsTable/TableCardList.js +47 -31
  10. package/es/qbsTable/Toolbar.js +19 -13
  11. package/es/qbsTable/commontypes.d.ts +9 -1
  12. package/es/qbsTable/labels.d.ts +48 -0
  13. package/es/qbsTable/labels.js +34 -0
  14. package/es/qbsTable/utilities/CardComponent.d.ts +2 -0
  15. package/es/qbsTable/utilities/CardComponent.js +7 -3
  16. package/es/qbsTable/utilities/CardMenuDropdown.d.ts +2 -0
  17. package/es/qbsTable/utilities/CardMenuDropdown.js +5 -2
  18. package/es/qbsTable/utilities/ColumShowHide.d.ts +2 -0
  19. package/es/qbsTable/utilities/ColumShowHide.js +9 -6
  20. package/es/qbsTable/utilities/SearchInput.d.ts +1 -0
  21. package/es/qbsTable/utilities/SearchInput.js +3 -1
  22. package/es/qbsTable/utilities/tablecalc.d.ts +1 -1
  23. package/es/qbsTable/utilities/tablecalc.js +7 -2
  24. package/lib/Pagination.d.ts +3 -0
  25. package/lib/Pagination.js +8 -3
  26. package/lib/index.d.ts +1 -1
  27. package/lib/less/qbs-table.less +95 -4
  28. package/lib/qbsTable/QbsTable.js +53 -34
  29. package/lib/qbsTable/TableCardList.js +47 -31
  30. package/lib/qbsTable/Toolbar.js +19 -13
  31. package/lib/qbsTable/commontypes.d.ts +9 -1
  32. package/lib/qbsTable/labels.d.ts +48 -0
  33. package/lib/qbsTable/labels.js +42 -0
  34. package/lib/qbsTable/utilities/CardComponent.d.ts +2 -0
  35. package/lib/qbsTable/utilities/CardComponent.js +7 -3
  36. package/lib/qbsTable/utilities/CardMenuDropdown.d.ts +2 -0
  37. package/lib/qbsTable/utilities/CardMenuDropdown.js +5 -2
  38. package/lib/qbsTable/utilities/ColumShowHide.d.ts +2 -0
  39. package/lib/qbsTable/utilities/ColumShowHide.js +9 -6
  40. package/lib/qbsTable/utilities/SearchInput.d.ts +1 -0
  41. package/lib/qbsTable/utilities/SearchInput.js +3 -1
  42. package/lib/qbsTable/utilities/tablecalc.d.ts +1 -1
  43. package/lib/qbsTable/utilities/tablecalc.js +7 -2
  44. package/package.json +1 -1
  45. package/src/Pagination.tsx +10 -3
  46. package/src/index.ts +1 -1
  47. package/src/less/qbs-table.less +95 -4
  48. package/src/qbsTable/QbsTable.tsx +35 -9
  49. package/src/qbsTable/TableCardList.tsx +31 -7
  50. package/src/qbsTable/Toolbar.tsx +20 -12
  51. package/src/qbsTable/commontypes.ts +13 -2
  52. package/src/qbsTable/labels.ts +58 -0
  53. package/src/qbsTable/utilities/CardComponent.tsx +7 -2
  54. package/src/qbsTable/utilities/CardMenuDropdown.tsx +10 -2
  55. package/src/qbsTable/utilities/ColumShowHide.tsx +10 -6
  56. package/src/qbsTable/utilities/SearchInput.tsx +3 -1
  57. package/src/qbsTable/utilities/tablecalc.ts +8 -2
@@ -104,12 +104,103 @@
104
104
  }
105
105
  }
106
106
  .qbs-table[data-theme='dark'] {
107
- background-color: #333333;
108
- color: #ffffff;
107
+ background-color: #1f1f1f;
108
+ color: #f5f5f5;
109
+
110
+ .qbs-table-border-wrap {
111
+ border-color: #3d3d3d;
112
+ background: #262626;
113
+ }
114
+
115
+ .qbs-table-toolbar-container,
116
+ .qbs-table-toolbar,
117
+ .qbs-table-toolbar-sub-container,
118
+ .sub-qbs-table-toolbar {
119
+ color: #f5f5f5;
120
+ }
121
+
122
+ .qbs-table-search-container {
123
+ .input {
124
+ border-color: #4a4a4a;
125
+ background: #2d2d2d;
126
+ color: #f5f5f5;
127
+
128
+ &:hover,
129
+ &:focus {
130
+ border-color: #6b6b6b;
131
+ background: #2d2d2d;
132
+ }
133
+ }
134
+
135
+ .search-button,
136
+ .close-button {
137
+ color: #d1d1d1;
138
+ background-color: transparent;
139
+ }
140
+ }
141
+
142
+ .qbs-table-column-popup,
143
+ .qbs-table-popup-container {
144
+ background: #2d2d2d;
145
+ color: #f5f5f5;
146
+ border-color: #4a4a4a;
147
+ }
148
+
149
+ .qbs-table-popup-label,
150
+ .qbs-table-popup-value,
151
+ .qbs-table-reset-link {
152
+ color: #f5f5f5;
153
+ }
154
+
155
+ .qbs-table-custom-pagination,
156
+ .qbs-table-pagination-text,
157
+ .rows-count {
158
+ color: #f5f5f5;
159
+ }
160
+
161
+ .qbs-table-icon-container svg path {
162
+ stroke: #e5e5e5;
163
+ }
164
+
165
+ .custom-select-trigger,
166
+ .custom-select-options {
167
+ background: #2d2d2d;
168
+ color: #f5f5f5;
169
+ border-color: #4a4a4a;
170
+ }
171
+
172
+ .qbs-card-container {
173
+ border-color: #4a4a4a;
174
+ background: #262626;
175
+ color: #f5f5f5;
176
+ }
177
+
178
+ .nodata-title {
179
+ color: #f5f5f5;
180
+ }
181
+
182
+ .tooltiptext {
183
+ background-color: #3d3d3d;
184
+ color: #fff;
185
+ }
186
+ }
187
+
188
+ .qbs-table-custom-pagination[data-theme='dark'] {
189
+ color: #f5f5f5;
190
+
191
+ .rows-count,
192
+ .qbs-table-pagination-text {
193
+ color: #f5f5f5;
194
+ }
195
+
196
+ .qbs-table-icon-container svg path {
197
+ stroke: #e5e5e5;
198
+ }
109
199
  }
200
+
110
201
  .rs-table-cell-content[data-theme='dark'] {
111
- background-color: #333333;
112
- color: #ffffff;
202
+ background-color: #262626;
203
+ color: #f5f5f5;
113
204
  }
114
205
  /* Dropdown container */
115
206
  .qbs-table-menu-dropdown {
@@ -7,6 +7,7 @@ import HeaderCell from '../HeaderCell';
7
7
  import Pagination from '../Pagination';
8
8
  import Table from '../Table';
9
9
  import useResponsiveStore from '../utils/useResponsiveStore';
10
+ import { mergeLabels } from './labels';
10
11
  import { ActionCell, CheckCell, CustomRowStatus, CustomTableCell, ExpandCell } from './CustomTableCell';
11
12
  import ToolBar from './Toolbar';
12
13
  import CardComponent from './utilities/CardComponent';
@@ -125,7 +126,13 @@ var QbsTable = function QbsTable(_ref) {
125
126
  _ref$dropType = _ref.dropType,
126
127
  dropType = _ref$dropType === void 0 ? 'horizondal' : _ref$dropType,
127
128
  rowHeight = _ref.rowHeight,
128
- isFullScreen = _ref.isFullScreen;
129
+ isFullScreen = _ref.isFullScreen,
130
+ _ref$showHeader = _ref.showHeader,
131
+ showHeader = _ref$showHeader === void 0 ? true : _ref$showHeader,
132
+ labelsProp = _ref.labels;
133
+ var labels = useMemo(function () {
134
+ return mergeLabels(labelsProp);
135
+ }, [labelsProp]);
129
136
  var _useState = useState(false),
130
137
  loading = _useState[0],
131
138
  setLoading = _useState[1];
@@ -136,8 +143,8 @@ var QbsTable = function QbsTable(_ref) {
136
143
  checkedKeys = _useState3[0],
137
144
  setCheckedKeys = _useState3[1];
138
145
  var dataTheme = useMemo(function () {
139
- var _localStorage$getItem;
140
- return (_localStorage$getItem = localStorage.getItem('theme')) != null ? _localStorage$getItem : theme;
146
+ var _ref2;
147
+ return (_ref2 = theme != null ? theme : typeof localStorage !== 'undefined' ? localStorage.getItem('theme') : null) != null ? _ref2 : 'light';
141
148
  }, [theme]);
142
149
  var _useState4 = useState(false),
143
150
  isOpen = _useState4[0],
@@ -258,7 +265,7 @@ var QbsTable = function QbsTable(_ref) {
258
265
 
259
266
  // useEffect(() => {
260
267
  // }, [columns]);
261
- var handleClear = function handleClear(_ref2) {
268
+ var handleClear = function handleClear(_ref3) {
262
269
  setCheckedKeys([]);
263
270
  handleChecked([]);
264
271
  };
@@ -293,12 +300,19 @@ var QbsTable = function QbsTable(_ref) {
293
300
  fullWidthView: fullWidthView,
294
301
  setTableFullView: setTableFullView,
295
302
  setRowViewToggle: setRowViewToggle,
296
- isFullScreen: isFullScreen
303
+ isFullScreen: isFullScreen,
304
+ labels: labels
297
305
  };
306
+ useEffect(function () {
307
+ if (!dataTheme || typeof document === 'undefined') return;
308
+ document.body.setAttribute('data-theme', dataTheme === 'dark' ? 'dark' : 'light');
309
+ document.documentElement.dataset.theme = dataTheme;
310
+ }, [dataTheme]);
298
311
  var themeToggle = useMemo(function () {
299
- return document.getElementById('themeToggle');
312
+ return typeof document !== 'undefined' ? document.getElementById('themeToggle') : null;
300
313
  }, []);
301
314
  useEffect(function () {
315
+ if (theme || typeof document === 'undefined') return;
302
316
  var handleThemeToggle = function handleThemeToggle() {
303
317
  if (themeToggle !== null && themeToggle !== void 0 && themeToggle.checked) {
304
318
  document.body.setAttribute('data-theme', 'dark');
@@ -320,7 +334,7 @@ var QbsTable = function QbsTable(_ref) {
320
334
  themeToggle === null || themeToggle === void 0 ? void 0 : themeToggle.removeEventListener('change', handleThemeToggle);
321
335
  document.removeEventListener('DOMContentLoaded', handleDOMContentLoaded);
322
336
  };
323
- }, [themeToggle]);
337
+ }, [theme, themeToggle]);
324
338
  var handleExpanded = useCallback(function (rowData) {
325
339
  var keyValue = dataRowKey;
326
340
  var key = rowData[keyValue];
@@ -496,26 +510,26 @@ var QbsTable = function QbsTable(_ref) {
496
510
  // [columns, dataTheme]
497
511
  // );
498
512
  var columnsRendered = useMemo(function () {
499
- return (columns != null ? columns : []).map(function (_ref3) {
500
- var title = _ref3.title,
501
- field = _ref3.field,
502
- resizable = _ref3.resizable,
503
- sortable = _ref3.sortable,
504
- colWidth = _ref3.colWidth,
505
- align = _ref3.align,
506
- grouped = _ref3.grouped,
507
- groupHeader = _ref3.groupHeader,
508
- fixed = _ref3.fixed,
509
- children = _ref3.children,
510
- customCell = _ref3.customCell,
511
- renderCell = _ref3.renderCell,
512
- isVisible = _ref3.isVisible,
513
- link = _ref3.link,
514
- getPath = _ref3.getPath,
515
- rowClick = _ref3.rowClick,
516
- sortKey = _ref3.sortKey,
517
- type = _ref3.type,
518
- hideLink = _ref3.hideLink;
513
+ return (columns != null ? columns : []).map(function (_ref4) {
514
+ var title = _ref4.title,
515
+ field = _ref4.field,
516
+ resizable = _ref4.resizable,
517
+ sortable = _ref4.sortable,
518
+ colWidth = _ref4.colWidth,
519
+ align = _ref4.align,
520
+ grouped = _ref4.grouped,
521
+ groupHeader = _ref4.groupHeader,
522
+ fixed = _ref4.fixed,
523
+ children = _ref4.children,
524
+ customCell = _ref4.customCell,
525
+ renderCell = _ref4.renderCell,
526
+ isVisible = _ref4.isVisible,
527
+ link = _ref4.link,
528
+ getPath = _ref4.getPath,
529
+ rowClick = _ref4.rowClick,
530
+ sortKey = _ref4.sortKey,
531
+ type = _ref4.type,
532
+ hideLink = _ref4.hideLink;
519
533
  return isVisible ? grouped ? /*#__PURE__*/React.createElement(ColumnGroup, {
520
534
  header: groupHeader,
521
535
  fixed: fixed,
@@ -625,7 +639,7 @@ var QbsTable = function QbsTable(_ref) {
625
639
  bordered: bordered,
626
640
  renderEmpty: function renderEmpty(info) {
627
641
  return _renderEmpty ? _renderEmpty(info) : /*#__PURE__*/React.createElement(NoData, {
628
- title: emptyTitle != null ? emptyTitle : 'No Data Found',
642
+ title: emptyTitle != null ? emptyTitle : labels.noDataFound,
629
643
  subtitle: emptySubTitle
630
644
  });
631
645
  },
@@ -634,7 +648,7 @@ var QbsTable = function QbsTable(_ref) {
634
648
  headerHeight: headerHeight,
635
649
  rowExpandedHeight: rowExpandedHeight,
636
650
  loading: isLoading != null ? isLoading : loading,
637
- showHeader: true,
651
+ showHeader: showHeader,
638
652
  defaultChecked: true,
639
653
  expandedRowKeys: expandedRowKeys,
640
654
  onExpandChange: onExpandChange,
@@ -731,7 +745,8 @@ var QbsTable = function QbsTable(_ref) {
731
745
  setViewMode: setViewMode,
732
746
  setIsOpen: setIsOpen,
733
747
  handleResetColumns: handleResetColumns,
734
- handleColumnToggle: handleColumnToggle
748
+ handleColumnToggle: handleColumnToggle,
749
+ labels: labels
735
750
  })), /*#__PURE__*/React.createElement(Cell, null)), actionProps && (actionProps === null || actionProps === void 0 ? void 0 : actionProps.length) > 0 && /*#__PURE__*/React.createElement(Column, {
736
751
  width: 40,
737
752
  fixed: "right"
@@ -750,7 +765,8 @@ var QbsTable = function QbsTable(_ref) {
750
765
  isOpen: isOpen,
751
766
  setIsOpen: setIsOpen,
752
767
  handleResetColumns: handleResetColumns,
753
- handleColumnToggle: handleColumnToggle
768
+ handleColumnToggle: handleColumnToggle,
769
+ labels: labels
754
770
  })), /*#__PURE__*/React.createElement(ActionCell, {
755
771
  tableBodyRef: tableBodyRef,
756
772
  dropType: dropType,
@@ -769,7 +785,7 @@ var QbsTable = function QbsTable(_ref) {
769
785
  }, ((data === null || data === void 0 ? void 0 : data.length) === 0 || !data) && !isLoading && /*#__PURE__*/React.createElement("div", {
770
786
  className: "flex flex-col gap-2 p-2 mt-6 card-empty-container"
771
787
  }, /*#__PURE__*/React.createElement(NoData, {
772
- title: emptyTitle != null ? emptyTitle : 'No Data Found',
788
+ title: emptyTitle != null ? emptyTitle : labels.noDataFound,
773
789
  subtitle: emptySubTitle
774
790
  })), isLoading ? handleCustomCardLoader ? /*#__PURE__*/React.createElement(React.Fragment, null, handleCustomCardLoader()) : /*#__PURE__*/React.createElement("div", {
775
791
  className: "flex flex-col gap-2 p-2"
@@ -784,10 +800,13 @@ var QbsTable = function QbsTable(_ref) {
784
800
  childDetailHeading: childDetailHeading,
785
801
  columns: columns,
786
802
  tableBodyRef: tableBodyRef,
787
- actionProps: actionProps
803
+ actionProps: actionProps,
804
+ labels: labels
788
805
  }));
789
806
  })), /*#__PURE__*/React.createElement("div", null, pagination && (data === null || data === void 0 ? void 0 : data.length) > 0 && /*#__PURE__*/React.createElement(Pagination, {
790
- paginationProps: paginationProps
807
+ paginationProps: paginationProps,
808
+ labels: labels,
809
+ dataTheme: dataTheme
791
810
  }))));
792
811
  };
793
812
  export default QbsTable;
@@ -6,6 +6,7 @@ import ColumnGroup from '../ColumnGroup';
6
6
  import HeaderCell from '../HeaderCell';
7
7
  import Pagination from '../Pagination';
8
8
  import Table from '../Table';
9
+ import { mergeLabels } from './labels';
9
10
  import { ActionCell, CheckCell, CustomRowStatus, CustomTableCell, ExpandCell } from './CustomTableCell';
10
11
  import ToolBar from './Toolbar';
11
12
  import ColumToggle from './utilities/ColumShowHide';
@@ -93,7 +94,11 @@ var QbsTable = function QbsTable(_ref) {
93
94
  emptySubTitle = _ref.emptySubTitle,
94
95
  emptyTitle = _ref.emptyTitle,
95
96
  _ref$dropType = _ref.dropType,
96
- dropType = _ref$dropType === void 0 ? 'horizontal' : _ref$dropType;
97
+ dropType = _ref$dropType === void 0 ? 'horizontal' : _ref$dropType,
98
+ labelsProp = _ref.labels;
99
+ var labels = useMemo(function () {
100
+ return mergeLabels(labelsProp);
101
+ }, [labelsProp]);
97
102
  var _useState = useState(false),
98
103
  loading = _useState[0],
99
104
  setLoading = _useState[1];
@@ -104,8 +109,8 @@ var QbsTable = function QbsTable(_ref) {
104
109
  checkedKeys = _useState3[0],
105
110
  setCheckedKeys = _useState3[1];
106
111
  var dataTheme = useMemo(function () {
107
- var _localStorage$getItem;
108
- return (_localStorage$getItem = localStorage.getItem('theme')) != null ? _localStorage$getItem : theme;
112
+ var _ref2;
113
+ return (_ref2 = theme != null ? theme : typeof localStorage !== 'undefined' ? localStorage.getItem('theme') : null) != null ? _ref2 : 'light';
109
114
  }, [theme]);
110
115
  var _useState4 = useState(false),
111
116
  isOpen = _useState4[0],
@@ -208,7 +213,7 @@ var QbsTable = function QbsTable(_ref) {
208
213
  // useEffect(() => {
209
214
  // }, [columns]);
210
215
 
211
- var handleClear = function handleClear(_ref2) {
216
+ var handleClear = function handleClear(_ref3) {
212
217
  setCheckedKeys([]);
213
218
  handleChecked([]);
214
219
  };
@@ -234,12 +239,19 @@ var QbsTable = function QbsTable(_ref) {
234
239
  onSelect: handleClear,
235
240
  handleColumnToggle: handleColumnToggle,
236
241
  dataLength: data === null || data === void 0 ? void 0 : data.length,
237
- searchPlaceholder: searchPlaceholder
242
+ searchPlaceholder: searchPlaceholder,
243
+ labels: labels
238
244
  };
245
+ useEffect(function () {
246
+ if (!dataTheme || typeof document === 'undefined') return;
247
+ document.body.setAttribute('data-theme', dataTheme === 'dark' ? 'dark' : 'light');
248
+ document.documentElement.dataset.theme = dataTheme;
249
+ }, [dataTheme]);
239
250
  var themeToggle = useMemo(function () {
240
- return document.getElementById('themeToggle');
251
+ return typeof document !== 'undefined' ? document.getElementById('themeToggle') : null;
241
252
  }, []);
242
253
  useEffect(function () {
254
+ if (theme || typeof document === 'undefined') return;
243
255
  var handleThemeToggle = function handleThemeToggle() {
244
256
  if (themeToggle !== null && themeToggle !== void 0 && themeToggle.checked) {
245
257
  document.body.setAttribute('data-theme', 'dark');
@@ -261,7 +273,7 @@ var QbsTable = function QbsTable(_ref) {
261
273
  themeToggle === null || themeToggle === void 0 ? void 0 : themeToggle.removeEventListener('change', handleThemeToggle);
262
274
  document.removeEventListener('DOMContentLoaded', handleDOMContentLoaded);
263
275
  };
264
- }, [themeToggle]);
276
+ }, [theme, themeToggle]);
265
277
  var handleExpanded = useCallback(function (rowData) {
266
278
  var keyValue = dataRowKey;
267
279
  var key = rowData[keyValue];
@@ -321,26 +333,26 @@ var QbsTable = function QbsTable(_ref) {
321
333
  }) ? true : false;
322
334
  };
323
335
  var columnsRendered = useMemo(function () {
324
- return (columns != null ? columns : []).map(function (_ref3) {
325
- var title = _ref3.title,
326
- field = _ref3.field,
327
- resizable = _ref3.resizable,
328
- sortable = _ref3.sortable,
329
- colWidth = _ref3.colWidth,
330
- align = _ref3.align,
331
- grouped = _ref3.grouped,
332
- groupHeader = _ref3.groupHeader,
333
- fixed = _ref3.fixed,
334
- children = _ref3.children,
335
- customCell = _ref3.customCell,
336
- renderCell = _ref3.renderCell,
337
- isVisible = _ref3.isVisible,
338
- link = _ref3.link,
339
- getPath = _ref3.getPath,
340
- rowClick = _ref3.rowClick,
341
- sortKey = _ref3.sortKey,
342
- type = _ref3.type,
343
- hideLink = _ref3.hideLink;
336
+ return (columns != null ? columns : []).map(function (_ref4) {
337
+ var title = _ref4.title,
338
+ field = _ref4.field,
339
+ resizable = _ref4.resizable,
340
+ sortable = _ref4.sortable,
341
+ colWidth = _ref4.colWidth,
342
+ align = _ref4.align,
343
+ grouped = _ref4.grouped,
344
+ groupHeader = _ref4.groupHeader,
345
+ fixed = _ref4.fixed,
346
+ children = _ref4.children,
347
+ customCell = _ref4.customCell,
348
+ renderCell = _ref4.renderCell,
349
+ isVisible = _ref4.isVisible,
350
+ link = _ref4.link,
351
+ getPath = _ref4.getPath,
352
+ rowClick = _ref4.rowClick,
353
+ sortKey = _ref4.sortKey,
354
+ type = _ref4.type,
355
+ hideLink = _ref4.hideLink;
344
356
  return /*#__PURE__*/React.createElement(React.Fragment, null, isVisible && /*#__PURE__*/React.createElement(React.Fragment, null, grouped ? /*#__PURE__*/React.createElement(ColumnGroup, {
345
357
  header: groupHeader,
346
358
  fixed: fixed,
@@ -432,7 +444,7 @@ var QbsTable = function QbsTable(_ref) {
432
444
  bordered: bordered,
433
445
  renderEmpty: function renderEmpty(info) {
434
446
  return _renderEmpty ? _renderEmpty(info) : /*#__PURE__*/React.createElement(NoData, {
435
- title: emptyTitle != null ? emptyTitle : 'No Data Found',
447
+ title: emptyTitle != null ? emptyTitle : labels.noDataFound,
436
448
  subtitle: emptySubTitle
437
449
  });
438
450
  },
@@ -536,7 +548,8 @@ var QbsTable = function QbsTable(_ref) {
536
548
  tableHeight: height,
537
549
  setIsOpen: setIsOpen,
538
550
  handleResetColumns: handleResetColumns,
539
- handleColumnToggle: handleColumnToggle
551
+ handleColumnToggle: handleColumnToggle,
552
+ labels: labels
540
553
  })), /*#__PURE__*/React.createElement(Cell, null)), actionProps && (actionProps === null || actionProps === void 0 ? void 0 : actionProps.length) > 0 && /*#__PURE__*/React.createElement(Column, {
541
554
  width: 40,
542
555
  fixed: "right"
@@ -553,7 +566,8 @@ var QbsTable = function QbsTable(_ref) {
553
566
  isOpen: isOpen,
554
567
  setIsOpen: setIsOpen,
555
568
  handleResetColumns: handleResetColumns,
556
- handleColumnToggle: handleColumnToggle
569
+ handleColumnToggle: handleColumnToggle,
570
+ labels: labels
557
571
  })), /*#__PURE__*/React.createElement(ActionCell, {
558
572
  tableBodyRef: tableBodyRef,
559
573
  actionProps: actionProps,
@@ -562,7 +576,9 @@ var QbsTable = function QbsTable(_ref) {
562
576
  handleMenuActions: handleMenuActions,
563
577
  dataTheme: dataTheme
564
578
  }))), /*#__PURE__*/React.createElement("div", null, pagination && (data === null || data === void 0 ? void 0 : data.length) > 0 && /*#__PURE__*/React.createElement(Pagination, {
565
- paginationProps: paginationProps
579
+ paginationProps: paginationProps,
580
+ labels: labels,
581
+ dataTheme: dataTheme
566
582
  }))));
567
583
  };
568
584
  export default QbsTable;
@@ -3,10 +3,11 @@ import useResponsiveStore from '../utils/useResponsiveStore';
3
3
  import debounce from './utilities/debounce';
4
4
  import { CardView, ContentView, DefaultView, ExpandIcon, TableView } from './utilities/icons';
5
5
  import SearchInput from './utilities/SearchInput';
6
+ import { formatSelectedItems, mergeLabels } from './labels';
6
7
  import { getRowDisplayRange } from './utilities/tablecalc';
7
8
  import TooltipComponent from './utilities/ToolTip';
8
9
  var ToolBar = function ToolBar(_ref) {
9
- var _paginationProps$tota, _paginationProps$rows, _paginationProps$curr;
10
+ var _checkedKeys$length, _paginationProps$tota, _paginationProps$rows, _paginationProps$curr;
10
11
  var pagination = _ref.pagination,
11
12
  _ref$paginationProps = _ref.paginationProps,
12
13
  paginationProps = _ref$paginationProps === void 0 ? {} : _ref$paginationProps,
@@ -37,7 +38,9 @@ var ToolBar = function ToolBar(_ref) {
37
38
  setTableFullView = _ref.setTableFullView,
38
39
  setRowViewToggle = _ref.setRowViewToggle,
39
40
  _ref$isFullScreen = _ref.isFullScreen,
40
- isFullScreen = _ref$isFullScreen === void 0 ? false : _ref$isFullScreen;
41
+ isFullScreen = _ref$isFullScreen === void 0 ? false : _ref$isFullScreen,
42
+ labelsProp = _ref.labels;
43
+ var labels = mergeLabels(labelsProp);
41
44
  var debouncedOnSearch = useCallback(debounce(onSearch != null ? onSearch : function () {}, 1000), [onSearch]);
42
45
  var _useState = useState(searchValue),
43
46
  searchParam = _useState[0],
@@ -86,7 +89,8 @@ var ToolBar = function ToolBar(_ref) {
86
89
  }, /*#__PURE__*/React.createElement("div", {
87
90
  className: "qbs-table-primary-filter"
88
91
  }, search && /*#__PURE__*/React.createElement(SearchInput, {
89
- placeholder: searchPlaceholder != null ? searchPlaceholder : 'Search',
92
+ placeholder: searchPlaceholder != null ? searchPlaceholder : labels.search,
93
+ searchAriaLabel: labels.searchAriaLabel,
90
94
  handleChange: handleChange,
91
95
  handleSearch: handleSearch,
92
96
  searchValue: searchParam
@@ -114,7 +118,7 @@ var ToolBar = function ToolBar(_ref) {
114
118
  className: "flex gap-2 table_cell_style"
115
119
  }, /*#__PURE__*/React.createElement(TooltipComponent, {
116
120
  tableBodyRef: toolbarRef,
117
- title: 'Switch to Default View'
121
+ title: labels.switchToDefaultView
118
122
  }, /*#__PURE__*/React.createElement("div", {
119
123
  onClick: function onClick() {
120
124
  return setRowViewToggle === null || setRowViewToggle === void 0 ? void 0 : setRowViewToggle(true);
@@ -123,7 +127,7 @@ var ToolBar = function ToolBar(_ref) {
123
127
  className: "" + (defaultRowView ? 'active' : '')
124
128
  }))), /*#__PURE__*/React.createElement(TooltipComponent, {
125
129
  tableBodyRef: toolbarRef,
126
- title: 'Switch to Compact View'
130
+ title: labels.switchToRelaxedView
127
131
  }, /*#__PURE__*/React.createElement("div", {
128
132
  onClick: function onClick() {
129
133
  return setRowViewToggle === null || setRowViewToggle === void 0 ? void 0 : setRowViewToggle(false);
@@ -134,7 +138,7 @@ var ToolBar = function ToolBar(_ref) {
134
138
  className: " table_full_width"
135
139
  }, /*#__PURE__*/React.createElement(TooltipComponent, {
136
140
  tableBodyRef: toolbarRef,
137
- title: 'Switch to Full Screen'
141
+ title: labels.switchToFullScreen
138
142
  }, /*#__PURE__*/React.createElement("div", {
139
143
  onClick: function onClick() {
140
144
  return setTableFullView === null || setTableFullView === void 0 ? void 0 : setTableFullView(!fullWidthView);
@@ -145,7 +149,7 @@ var ToolBar = function ToolBar(_ref) {
145
149
  className: "qbs-table-top-icons flex gap-2"
146
150
  }, /*#__PURE__*/React.createElement(TooltipComponent, {
147
151
  tableBodyRef: toolbarRef,
148
- title: 'Switch to Table View'
152
+ title: labels.switchToTableView
149
153
  }, /*#__PURE__*/React.createElement("div", {
150
154
  onClick: function onClick() {
151
155
  return setTableViewToggle === null || setTableViewToggle === void 0 ? void 0 : setTableViewToggle(true);
@@ -160,7 +164,7 @@ var ToolBar = function ToolBar(_ref) {
160
164
  }
161
165
  }, /*#__PURE__*/React.createElement(TooltipComponent, {
162
166
  tableBodyRef: toolbarRef,
163
- title: 'Switch to Card View'
167
+ title: labels.switchToCardView
164
168
  }, /*#__PURE__*/React.createElement(CardView, {
165
169
  className: "" + (!tableViewToggle ? 'active' : '')
166
170
  }))))))), isMobile && isOpen && /*#__PURE__*/React.createElement("div", {
@@ -173,24 +177,26 @@ var ToolBar = function ToolBar(_ref) {
173
177
  className: "qbs-table-toolbar-sub-container-start"
174
178
  }, /*#__PURE__*/React.createElement("div", {
175
179
  className: "selected-row"
176
- }, "Selected Items(" + (checkedKeys === null || checkedKeys === void 0 ? void 0 : checkedKeys.length) + ") "), /*#__PURE__*/React.createElement("div", {
180
+ }, formatSelectedItems(labels.selectedItems, (_checkedKeys$length = checkedKeys === null || checkedKeys === void 0 ? void 0 : checkedKeys.length) != null ? _checkedKeys$length : 0)), /*#__PURE__*/React.createElement("div", {
177
181
  className: "selected-row-action"
178
182
  }, /*#__PURE__*/React.createElement("button", {
179
183
  className: "btn",
180
184
  onClick: function onClick() {
181
185
  return onSelect === null || onSelect === void 0 ? void 0 : onSelect([]);
182
186
  }
183
- }, "Clear"), selectedRowActions === null || selectedRowActions === void 0 ? void 0 : selectedRowActions.map(function (actions, index) {
187
+ }, labels.clear), selectedRowActions === null || selectedRowActions === void 0 ? void 0 : selectedRowActions.map(function (actions, index) {
184
188
  return /*#__PURE__*/React.createElement(React.Fragment, null, handleHide(actions) && /*#__PURE__*/React.createElement("button", {
185
189
  key: index.toString(),
186
- className: "btn",
190
+ className: "btn " + (actions === null || actions === void 0 ? void 0 : actions.buttonClassName),
187
191
  disabled: actions.disabled,
188
192
  onClick: function onClick() {
189
193
  return actions === null || actions === void 0 ? void 0 : actions.action(checkedKeys);
190
194
  }
191
- }, actions.actionTitle));
195
+ }, (actions === null || actions === void 0 ? void 0 : actions.icon) && /*#__PURE__*/React.createElement("span", {
196
+ className: "mr-2"
197
+ }, actions === null || actions === void 0 ? void 0 : actions.icon), /*#__PURE__*/React.createElement("span", null, actions.actionTitle)));
192
198
  }))) : /*#__PURE__*/React.createElement("div", null, pagination && paginationProps && dataLength > 0 && /*#__PURE__*/React.createElement("div", {
193
199
  className: "rows-count"
194
- }, 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)))));
200
+ }, 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)))));
195
201
  };
196
202
  export default ToolBar;
@@ -1,4 +1,6 @@
1
1
  import React, { ReactElement, ReactNode } from 'react';
2
+ import type { QbsTableLabels } from './labels';
3
+ export type { QbsTableLabels };
2
4
  interface Content {
3
5
  cell: ReactNode | string;
4
6
  toolTip?: string;
@@ -89,12 +91,15 @@ export interface QbsTableProps {
89
91
  advancefilter?: ReactElement | ReactNode;
90
92
  tableHeaderActions?: ReactElement | ReactNode;
91
93
  searchPlaceholder?: string;
94
+ labels?: QbsTableLabels;
92
95
  selectedRowActions?: {
93
96
  actionTitle?: string;
94
97
  action: (checked: (number | string)[]) => void;
95
98
  disabled?: boolean;
96
99
  hidden?: boolean;
97
100
  customHide?: string;
101
+ buttonClassName?: string;
102
+ icon?: ReactElement | ReactNode;
98
103
  }[];
99
104
  selectedRows?: (number | string)[];
100
105
  classes?: {
@@ -140,6 +145,7 @@ export interface QbsTableProps {
140
145
  dropType?: 'horizondal' | 'vertical';
141
146
  rowHeight?: number;
142
147
  isFullScreen?: boolean;
148
+ showHeader?: boolean;
143
149
  }
144
150
  export interface QbsTableToolbarProps {
145
151
  title?: string;
@@ -164,6 +170,7 @@ export interface QbsTableToolbarProps {
164
170
  dataLength: number;
165
171
  headerHeight?: number;
166
172
  searchPlaceholder?: string;
173
+ labels?: QbsTableLabels;
167
174
  tableView?: boolean;
168
175
  enableTableToggle?: boolean;
169
176
  tableViewToggle?: boolean;
@@ -174,6 +181,8 @@ export interface QbsTableToolbarProps {
174
181
  disabled?: boolean;
175
182
  hidden?: boolean;
176
183
  customHide?: string;
184
+ buttonClassName?: string;
185
+ icon?: ReactElement | ReactNode;
177
186
  }[];
178
187
  rowViewToggle?: boolean;
179
188
  defaultRowView?: boolean;
@@ -182,4 +191,3 @@ export interface QbsTableToolbarProps {
182
191
  setRowViewToggle?: (value: boolean) => void;
183
192
  isFullScreen?: boolean;
184
193
  }
185
- export {};
@@ -0,0 +1,48 @@
1
+ export interface QbsTableLabels {
2
+ search?: string;
3
+ searchAriaLabel?: string;
4
+ clear?: string;
5
+ selectedItems?: string;
6
+ switchToDefaultView?: string;
7
+ switchToRelaxedView?: string;
8
+ switchToFullScreen?: string;
9
+ switchToTableView?: string;
10
+ switchToCardView?: string;
11
+ noDataFound?: string;
12
+ showingRange?: (start: number, end: number, total: number) => string;
13
+ itemsPerPage?: string;
14
+ fixedColumns?: string;
15
+ visibleColumns?: string;
16
+ availableColumns?: string;
17
+ resetToDefault?: string;
18
+ save?: string;
19
+ viewMore?: string;
20
+ viewLess?: string;
21
+ actions?: string;
22
+ }
23
+ export declare const DEFAULT_QBS_TABLE_LABELS: Required<Omit<QbsTableLabels, 'showingRange'>> & {
24
+ showingRange: (start: number, end: number, total: number) => string;
25
+ };
26
+ export declare const mergeLabels: (labels?: QbsTableLabels) => {
27
+ showingRange: (start: number, end: number, total: number) => string;
28
+ search: string;
29
+ searchAriaLabel: string;
30
+ clear: string;
31
+ selectedItems: string;
32
+ switchToDefaultView: string;
33
+ switchToRelaxedView: string;
34
+ switchToFullScreen: string;
35
+ switchToTableView: string;
36
+ switchToCardView: string;
37
+ noDataFound: string;
38
+ itemsPerPage: string;
39
+ fixedColumns: string;
40
+ visibleColumns: string;
41
+ availableColumns: string;
42
+ resetToDefault: string;
43
+ save: string;
44
+ viewMore: string;
45
+ viewLess: string;
46
+ actions: string;
47
+ };
48
+ export declare const formatSelectedItems: (selectedItemsLabel: string, count: number) => string;