qbs-react-grid 2.1.0 → 2.2.1

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 (60) hide show
  1. package/dist/css/qbs-react-grid.css +1 -1
  2. package/dist/css/qbs-react-grid.min.css +1 -1
  3. package/dist/css/qbs-react-grid.min.css.map +1 -1
  4. package/es/Cell.js +2 -1
  5. package/es/Pagination.d.ts +3 -0
  6. package/es/Pagination.js +8 -3
  7. package/es/index.d.ts +1 -1
  8. package/es/less/qbs-table.less +148 -4
  9. package/es/qbsTable/QbsTable.js +56 -34
  10. package/es/qbsTable/TableCardList.js +47 -31
  11. package/es/qbsTable/Toolbar.js +15 -11
  12. package/es/qbsTable/commontypes.d.ts +5 -1
  13. package/es/qbsTable/labels.d.ts +48 -0
  14. package/es/qbsTable/labels.js +34 -0
  15. package/es/qbsTable/utilities/CardComponent.d.ts +2 -0
  16. package/es/qbsTable/utilities/CardComponent.js +7 -3
  17. package/es/qbsTable/utilities/CardMenuDropdown.d.ts +2 -0
  18. package/es/qbsTable/utilities/CardMenuDropdown.js +5 -2
  19. package/es/qbsTable/utilities/ColumShowHide.d.ts +2 -0
  20. package/es/qbsTable/utilities/ColumShowHide.js +9 -6
  21. package/es/qbsTable/utilities/SearchInput.d.ts +1 -0
  22. package/es/qbsTable/utilities/SearchInput.js +3 -1
  23. package/es/qbsTable/utilities/tablecalc.d.ts +1 -1
  24. package/es/qbsTable/utilities/tablecalc.js +7 -2
  25. package/lib/Cell.js +2 -1
  26. package/lib/Pagination.d.ts +3 -0
  27. package/lib/Pagination.js +8 -3
  28. package/lib/index.d.ts +1 -1
  29. package/lib/less/qbs-table.less +148 -4
  30. package/lib/qbsTable/QbsTable.js +56 -34
  31. package/lib/qbsTable/TableCardList.js +47 -31
  32. package/lib/qbsTable/Toolbar.js +15 -11
  33. package/lib/qbsTable/commontypes.d.ts +5 -1
  34. package/lib/qbsTable/labels.d.ts +48 -0
  35. package/lib/qbsTable/labels.js +42 -0
  36. package/lib/qbsTable/utilities/CardComponent.d.ts +2 -0
  37. package/lib/qbsTable/utilities/CardComponent.js +7 -3
  38. package/lib/qbsTable/utilities/CardMenuDropdown.d.ts +2 -0
  39. package/lib/qbsTable/utilities/CardMenuDropdown.js +5 -2
  40. package/lib/qbsTable/utilities/ColumShowHide.d.ts +2 -0
  41. package/lib/qbsTable/utilities/ColumShowHide.js +9 -6
  42. package/lib/qbsTable/utilities/SearchInput.d.ts +1 -0
  43. package/lib/qbsTable/utilities/SearchInput.js +3 -1
  44. package/lib/qbsTable/utilities/tablecalc.d.ts +1 -1
  45. package/lib/qbsTable/utilities/tablecalc.js +7 -2
  46. package/package.json +1 -1
  47. package/src/Cell.tsx +3 -1
  48. package/src/Pagination.tsx +10 -3
  49. package/src/index.ts +1 -1
  50. package/src/less/qbs-table.less +148 -4
  51. package/src/qbsTable/QbsTable.tsx +42 -9
  52. package/src/qbsTable/TableCardList.tsx +31 -7
  53. package/src/qbsTable/Toolbar.tsx +17 -10
  54. package/src/qbsTable/commontypes.ts +7 -0
  55. package/src/qbsTable/labels.ts +58 -0
  56. package/src/qbsTable/utilities/CardComponent.tsx +7 -2
  57. package/src/qbsTable/utilities/CardMenuDropdown.tsx +10 -2
  58. package/src/qbsTable/utilities/ColumShowHide.tsx +10 -6
  59. package/src/qbsTable/utilities/SearchInput.tsx +3 -1
  60. package/src/qbsTable/utilities/tablecalc.ts +8 -2
@@ -104,12 +104,156 @@
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;
204
+ }
205
+
206
+ .qbs-table[data-theme='dark'] {
207
+ .rs-table,
208
+ .rs-table-body-row-wrapper,
209
+ .rs-table-row,
210
+ .rs-table-cell,
211
+ .rs-table-cell-group,
212
+ .rs-table-row-header,
213
+ .rs-table-row-header .rs-table-cell {
214
+ background-color: #262626;
215
+ color: #f5f5f5;
216
+ }
217
+
218
+ .rs-table-cell-content {
219
+ background-color: #262626;
220
+ color: #f5f5f5;
221
+ }
222
+
223
+ .rs-table-row-header .rs-table-cell-content,
224
+ .rs-table-cell-header .rs-table-cell-content {
225
+ background-color: #1b2028;
226
+ color: #f5f5f5;
227
+ }
228
+
229
+ .rs-table-hover .rs-table-body-row-wrapper .rs-table-row:hover,
230
+ .rs-table-hover .rs-table-body-row-wrapper .rs-table-row:hover .rs-table-cell,
231
+ .rs-table-hover .rs-table-body-row-wrapper .rs-table-row:hover .rs-table-cell-content {
232
+ background-color: #1d2633;
233
+ }
234
+
235
+ .rs-table-cell {
236
+ border-color: #3d3d3d;
237
+ }
238
+
239
+ .rs-table-scrollbar {
240
+ background-color: #2d2d2d;
241
+ }
242
+
243
+ .rs-table-scrollbar-handle {
244
+ background-color: #5a5a5a;
245
+ }
246
+ }
247
+
248
+ .qbs-table[dir='rtl'] {
249
+ .rs-table-cell-header .rs-table-cell-content {
250
+ text-align: right;
251
+ }
252
+
253
+ .rs-table-cell-wrap {
254
+ justify-content: flex-start;
255
+ width: 100%;
256
+ }
113
257
  }
114
258
  /* Dropdown container */
115
259
  .qbs-table-menu-dropdown {
@@ -6,7 +6,9 @@ import ColumnGroup from '../ColumnGroup';
6
6
  import HeaderCell from '../HeaderCell';
7
7
  import Pagination from '../Pagination';
8
8
  import Table from '../Table';
9
+ import isRTL from '../utils/isRTL';
9
10
  import useResponsiveStore from '../utils/useResponsiveStore';
11
+ import { mergeLabels } from './labels';
10
12
  import { ActionCell, CheckCell, CustomRowStatus, CustomTableCell, ExpandCell } from './CustomTableCell';
11
13
  import ToolBar from './Toolbar';
12
14
  import CardComponent from './utilities/CardComponent';
@@ -65,6 +67,7 @@ var QbsTable = function QbsTable(_ref) {
65
67
  _ref$actionProps = _ref.actionProps,
66
68
  actionProps = _ref$actionProps === void 0 ? [] : _ref$actionProps,
67
69
  theme = _ref.theme,
70
+ rtlProp = _ref.rtl,
68
71
  handleMenuActions = _ref.handleMenuActions,
69
72
  onRowClick = _ref.onRowClick,
70
73
  expandedRowKeys = _ref.expandedRowKeys,
@@ -127,7 +130,11 @@ var QbsTable = function QbsTable(_ref) {
127
130
  rowHeight = _ref.rowHeight,
128
131
  isFullScreen = _ref.isFullScreen,
129
132
  _ref$showHeader = _ref.showHeader,
130
- showHeader = _ref$showHeader === void 0 ? true : _ref$showHeader;
133
+ showHeader = _ref$showHeader === void 0 ? true : _ref$showHeader,
134
+ labelsProp = _ref.labels;
135
+ var labels = useMemo(function () {
136
+ return mergeLabels(labelsProp);
137
+ }, [labelsProp]);
131
138
  var _useState = useState(false),
132
139
  loading = _useState[0],
133
140
  setLoading = _useState[1];
@@ -138,9 +145,10 @@ var QbsTable = function QbsTable(_ref) {
138
145
  checkedKeys = _useState3[0],
139
146
  setCheckedKeys = _useState3[1];
140
147
  var dataTheme = useMemo(function () {
141
- var _localStorage$getItem;
142
- return (_localStorage$getItem = localStorage.getItem('theme')) != null ? _localStorage$getItem : theme;
148
+ var _ref2;
149
+ return (_ref2 = theme != null ? theme : typeof localStorage !== 'undefined' ? localStorage.getItem('theme') : null) != null ? _ref2 : 'light';
143
150
  }, [theme]);
151
+ var rtl = rtlProp != null ? rtlProp : isRTL();
144
152
  var _useState4 = useState(false),
145
153
  isOpen = _useState4[0],
146
154
  setIsOpen = _useState4[1];
@@ -260,7 +268,7 @@ var QbsTable = function QbsTable(_ref) {
260
268
 
261
269
  // useEffect(() => {
262
270
  // }, [columns]);
263
- var handleClear = function handleClear(_ref2) {
271
+ var handleClear = function handleClear(_ref3) {
264
272
  setCheckedKeys([]);
265
273
  handleChecked([]);
266
274
  };
@@ -295,12 +303,19 @@ var QbsTable = function QbsTable(_ref) {
295
303
  fullWidthView: fullWidthView,
296
304
  setTableFullView: setTableFullView,
297
305
  setRowViewToggle: setRowViewToggle,
298
- isFullScreen: isFullScreen
306
+ isFullScreen: isFullScreen,
307
+ labels: labels
299
308
  };
309
+ useEffect(function () {
310
+ if (!dataTheme || typeof document === 'undefined') return;
311
+ document.body.setAttribute('data-theme', dataTheme === 'dark' ? 'dark' : 'light');
312
+ document.documentElement.dataset.theme = dataTheme;
313
+ }, [dataTheme]);
300
314
  var themeToggle = useMemo(function () {
301
- return document.getElementById('themeToggle');
315
+ return typeof document !== 'undefined' ? document.getElementById('themeToggle') : null;
302
316
  }, []);
303
317
  useEffect(function () {
318
+ if (theme || typeof document === 'undefined') return;
304
319
  var handleThemeToggle = function handleThemeToggle() {
305
320
  if (themeToggle !== null && themeToggle !== void 0 && themeToggle.checked) {
306
321
  document.body.setAttribute('data-theme', 'dark');
@@ -322,7 +337,7 @@ var QbsTable = function QbsTable(_ref) {
322
337
  themeToggle === null || themeToggle === void 0 ? void 0 : themeToggle.removeEventListener('change', handleThemeToggle);
323
338
  document.removeEventListener('DOMContentLoaded', handleDOMContentLoaded);
324
339
  };
325
- }, [themeToggle]);
340
+ }, [theme, themeToggle]);
326
341
  var handleExpanded = useCallback(function (rowData) {
327
342
  var keyValue = dataRowKey;
328
343
  var key = rowData[keyValue];
@@ -498,26 +513,26 @@ var QbsTable = function QbsTable(_ref) {
498
513
  // [columns, dataTheme]
499
514
  // );
500
515
  var columnsRendered = useMemo(function () {
501
- return (columns != null ? columns : []).map(function (_ref3) {
502
- var title = _ref3.title,
503
- field = _ref3.field,
504
- resizable = _ref3.resizable,
505
- sortable = _ref3.sortable,
506
- colWidth = _ref3.colWidth,
507
- align = _ref3.align,
508
- grouped = _ref3.grouped,
509
- groupHeader = _ref3.groupHeader,
510
- fixed = _ref3.fixed,
511
- children = _ref3.children,
512
- customCell = _ref3.customCell,
513
- renderCell = _ref3.renderCell,
514
- isVisible = _ref3.isVisible,
515
- link = _ref3.link,
516
- getPath = _ref3.getPath,
517
- rowClick = _ref3.rowClick,
518
- sortKey = _ref3.sortKey,
519
- type = _ref3.type,
520
- hideLink = _ref3.hideLink;
516
+ return (columns != null ? columns : []).map(function (_ref4) {
517
+ var title = _ref4.title,
518
+ field = _ref4.field,
519
+ resizable = _ref4.resizable,
520
+ sortable = _ref4.sortable,
521
+ colWidth = _ref4.colWidth,
522
+ align = _ref4.align,
523
+ grouped = _ref4.grouped,
524
+ groupHeader = _ref4.groupHeader,
525
+ fixed = _ref4.fixed,
526
+ children = _ref4.children,
527
+ customCell = _ref4.customCell,
528
+ renderCell = _ref4.renderCell,
529
+ isVisible = _ref4.isVisible,
530
+ link = _ref4.link,
531
+ getPath = _ref4.getPath,
532
+ rowClick = _ref4.rowClick,
533
+ sortKey = _ref4.sortKey,
534
+ type = _ref4.type,
535
+ hideLink = _ref4.hideLink;
521
536
  return isVisible ? grouped ? /*#__PURE__*/React.createElement(ColumnGroup, {
522
537
  header: groupHeader,
523
538
  fixed: fixed,
@@ -599,7 +614,8 @@ var QbsTable = function QbsTable(_ref) {
599
614
  };
600
615
  return /*#__PURE__*/React.createElement("div", {
601
616
  className: "qbs-table " + classes.tableContainerClass,
602
- "data-theme": dataTheme
617
+ "data-theme": dataTheme,
618
+ dir: rtl ? 'rtl' : 'ltr'
603
619
  }, toolbar && /*#__PURE__*/React.createElement(ToolBar, toolbarProps), /*#__PURE__*/React.createElement("div", {
604
620
  className: "qbs-table-border-wrap"
605
621
  }, tableViewToggle ? /*#__PURE__*/React.createElement(Table, {
@@ -607,6 +623,7 @@ var QbsTable = function QbsTable(_ref) {
607
623
  key: tableKey + REFRESH_KEY,
608
624
  tableKey: tableKey,
609
625
  data: data,
626
+ rtl: rtl,
610
627
  tableBodyRef: tableBodyRef,
611
628
  dataTheme: dataTheme,
612
629
  wordWrap: wordWrap,
@@ -627,7 +644,7 @@ var QbsTable = function QbsTable(_ref) {
627
644
  bordered: bordered,
628
645
  renderEmpty: function renderEmpty(info) {
629
646
  return _renderEmpty ? _renderEmpty(info) : /*#__PURE__*/React.createElement(NoData, {
630
- title: emptyTitle != null ? emptyTitle : 'No Data Found',
647
+ title: emptyTitle != null ? emptyTitle : labels.noDataFound,
631
648
  subtitle: emptySubTitle
632
649
  });
633
650
  },
@@ -733,7 +750,8 @@ var QbsTable = function QbsTable(_ref) {
733
750
  setViewMode: setViewMode,
734
751
  setIsOpen: setIsOpen,
735
752
  handleResetColumns: handleResetColumns,
736
- handleColumnToggle: handleColumnToggle
753
+ handleColumnToggle: handleColumnToggle,
754
+ labels: labels
737
755
  })), /*#__PURE__*/React.createElement(Cell, null)), actionProps && (actionProps === null || actionProps === void 0 ? void 0 : actionProps.length) > 0 && /*#__PURE__*/React.createElement(Column, {
738
756
  width: 40,
739
757
  fixed: "right"
@@ -752,7 +770,8 @@ var QbsTable = function QbsTable(_ref) {
752
770
  isOpen: isOpen,
753
771
  setIsOpen: setIsOpen,
754
772
  handleResetColumns: handleResetColumns,
755
- handleColumnToggle: handleColumnToggle
773
+ handleColumnToggle: handleColumnToggle,
774
+ labels: labels
756
775
  })), /*#__PURE__*/React.createElement(ActionCell, {
757
776
  tableBodyRef: tableBodyRef,
758
777
  dropType: dropType,
@@ -771,7 +790,7 @@ var QbsTable = function QbsTable(_ref) {
771
790
  }, ((data === null || data === void 0 ? void 0 : data.length) === 0 || !data) && !isLoading && /*#__PURE__*/React.createElement("div", {
772
791
  className: "flex flex-col gap-2 p-2 mt-6 card-empty-container"
773
792
  }, /*#__PURE__*/React.createElement(NoData, {
774
- title: emptyTitle != null ? emptyTitle : 'No Data Found',
793
+ title: emptyTitle != null ? emptyTitle : labels.noDataFound,
775
794
  subtitle: emptySubTitle
776
795
  })), isLoading ? handleCustomCardLoader ? /*#__PURE__*/React.createElement(React.Fragment, null, handleCustomCardLoader()) : /*#__PURE__*/React.createElement("div", {
777
796
  className: "flex flex-col gap-2 p-2"
@@ -786,10 +805,13 @@ var QbsTable = function QbsTable(_ref) {
786
805
  childDetailHeading: childDetailHeading,
787
806
  columns: columns,
788
807
  tableBodyRef: tableBodyRef,
789
- actionProps: actionProps
808
+ actionProps: actionProps,
809
+ labels: labels
790
810
  }));
791
811
  })), /*#__PURE__*/React.createElement("div", null, pagination && (data === null || data === void 0 ? void 0 : data.length) > 0 && /*#__PURE__*/React.createElement(Pagination, {
792
- paginationProps: paginationProps
812
+ paginationProps: paginationProps,
813
+ labels: labels,
814
+ dataTheme: dataTheme
793
815
  }))));
794
816
  };
795
817
  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 Relaxed 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,14 +177,14 @@ 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
190
  className: "btn " + (actions === null || actions === void 0 ? void 0 : actions.buttonClassName),
@@ -193,6 +197,6 @@ var ToolBar = function ToolBar(_ref) {
193
197
  }, actions === null || actions === void 0 ? void 0 : actions.icon), /*#__PURE__*/React.createElement("span", null, actions.actionTitle)));
194
198
  }))) : /*#__PURE__*/React.createElement("div", null, pagination && paginationProps && dataLength > 0 && /*#__PURE__*/React.createElement("div", {
195
199
  className: "rows-count"
196
- }, 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)))));
197
201
  };
198
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;
@@ -69,6 +71,7 @@ export interface QbsTableProps {
69
71
  searchValue?: string;
70
72
  handleSearchValue?: (value?: string) => void;
71
73
  theme?: string;
74
+ rtl?: boolean;
72
75
  onRowClick?: (data: any) => void;
73
76
  cellBordered?: boolean;
74
77
  bordered?: boolean;
@@ -89,6 +92,7 @@ export interface QbsTableProps {
89
92
  advancefilter?: ReactElement | ReactNode;
90
93
  tableHeaderActions?: ReactElement | ReactNode;
91
94
  searchPlaceholder?: string;
95
+ labels?: QbsTableLabels;
92
96
  selectedRowActions?: {
93
97
  actionTitle?: string;
94
98
  action: (checked: (number | string)[]) => void;
@@ -167,6 +171,7 @@ export interface QbsTableToolbarProps {
167
171
  dataLength: number;
168
172
  headerHeight?: number;
169
173
  searchPlaceholder?: string;
174
+ labels?: QbsTableLabels;
170
175
  tableView?: boolean;
171
176
  enableTableToggle?: boolean;
172
177
  tableViewToggle?: boolean;
@@ -187,4 +192,3 @@ export interface QbsTableToolbarProps {
187
192
  setRowViewToggle?: (value: boolean) => void;
188
193
  isFullScreen?: boolean;
189
194
  }
190
- export {};