qbs-react-grid 2.2.6 → 2.2.9

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 (55) 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/index.d.ts +2 -0
  5. package/es/index.js +2 -1
  6. package/es/less/qbs-table.less +58 -4
  7. package/es/qbsTable/CustomTableCell.js +4 -2
  8. package/es/qbsTable/QbsTable.js +39 -6
  9. package/es/qbsTable/TableCardList.js +37 -6
  10. package/es/qbsTable/Toolbar.js +87 -23
  11. package/es/qbsTable/commontypes.d.ts +18 -0
  12. package/es/qbsTable/labels.d.ts +25 -0
  13. package/es/qbsTable/labels.js +32 -0
  14. package/es/qbsTable/utilities/ColumShowHide.d.ts +3 -0
  15. package/es/qbsTable/utilities/ColumShowHide.js +112 -33
  16. package/es/qbsTable/utilities/VerticalDropDownMenu.js +22 -5
  17. package/es/qbsTable/utilities/columnToggleCoordinator.d.ts +5 -0
  18. package/es/qbsTable/utilities/columnToggleCoordinator.js +9 -0
  19. package/es/qbsTable/utilities/icons.d.ts +3 -0
  20. package/es/qbsTable/utilities/icons.js +67 -3
  21. package/es/qbsTable/utilities/verticalMenuCoordinator.d.ts +5 -0
  22. package/es/qbsTable/utilities/verticalMenuCoordinator.js +9 -0
  23. package/lib/index.d.ts +2 -0
  24. package/lib/index.js +6 -2
  25. package/lib/less/qbs-table.less +58 -4
  26. package/lib/qbsTable/CustomTableCell.js +4 -2
  27. package/lib/qbsTable/QbsTable.js +39 -6
  28. package/lib/qbsTable/TableCardList.js +37 -6
  29. package/lib/qbsTable/Toolbar.js +85 -21
  30. package/lib/qbsTable/commontypes.d.ts +18 -0
  31. package/lib/qbsTable/labels.d.ts +25 -0
  32. package/lib/qbsTable/labels.js +40 -0
  33. package/lib/qbsTable/utilities/ColumShowHide.d.ts +3 -0
  34. package/lib/qbsTable/utilities/ColumShowHide.js +112 -32
  35. package/lib/qbsTable/utilities/VerticalDropDownMenu.js +21 -4
  36. package/lib/qbsTable/utilities/columnToggleCoordinator.d.ts +5 -0
  37. package/lib/qbsTable/utilities/columnToggleCoordinator.js +15 -0
  38. package/lib/qbsTable/utilities/icons.d.ts +3 -0
  39. package/lib/qbsTable/utilities/icons.js +72 -5
  40. package/lib/qbsTable/utilities/verticalMenuCoordinator.d.ts +5 -0
  41. package/lib/qbsTable/utilities/verticalMenuCoordinator.js +15 -0
  42. package/package.json +1 -1
  43. package/src/index.ts +6 -0
  44. package/src/less/qbs-table.less +58 -4
  45. package/src/qbsTable/CustomTableCell.tsx +4 -2
  46. package/src/qbsTable/QbsTable.tsx +30 -4
  47. package/src/qbsTable/TableCardList.tsx +28 -4
  48. package/src/qbsTable/Toolbar.tsx +99 -29
  49. package/src/qbsTable/commontypes.ts +19 -0
  50. package/src/qbsTable/labels.ts +55 -0
  51. package/src/qbsTable/utilities/ColumShowHide.tsx +170 -84
  52. package/src/qbsTable/utilities/VerticalDropDownMenu.tsx +26 -3
  53. package/src/qbsTable/utilities/columnToggleCoordinator.ts +14 -0
  54. package/src/qbsTable/utilities/icons.tsx +76 -3
  55. package/src/qbsTable/utilities/verticalMenuCoordinator.ts +14 -0
@@ -376,11 +376,17 @@
376
376
  gap: 10px;
377
377
  align-items: center;
378
378
  }
379
+ .qbs-table-settings-wrapper {
380
+ position: relative;
381
+ display: inline-flex;
382
+ align-items: center;
383
+ justify-content: center;
384
+ }
385
+
379
386
  .qbs-table-column-popup {
380
387
  position: fixed;
381
388
  padding: 8px;
382
- z-index: 999;
383
- right: 10px;
389
+ z-index: 10060;
384
390
  border-radius: 8px;
385
391
  background: #fff;
386
392
  box-shadow: 0px 8px 20px 0px rgba(0, 0, 0, 0.15);
@@ -389,7 +395,6 @@
389
395
  display: flex;
390
396
  flex-direction: column;
391
397
  max-height: 500px;
392
- // overflow-y: auto;
393
398
  }
394
399
  .qbs-table-popup-container {
395
400
  max-width: 400px;
@@ -408,9 +413,37 @@
408
413
 
409
414
  .qbs-table-columns-container {
410
415
  display: flex;
416
+ flex-direction: row;
417
+ }
418
+
419
+ .qbs-table-column-popup--rtl .qbs-table-columns-container {
411
420
  flex-direction: row-reverse;
412
421
  }
413
422
 
423
+ .qbs-table-popup-footer {
424
+ display: flex;
425
+ flex-direction: row;
426
+ justify-content: space-between;
427
+ align-items: center;
428
+ gap: 8px;
429
+ padding: 4px 0 0;
430
+ }
431
+
432
+ .qbs-table-column-popup--rtl .qbs-table-popup-footer {
433
+ flex-direction: row-reverse;
434
+ }
435
+
436
+ .qbs-table-reset-link {
437
+ background: none;
438
+ border: none;
439
+ padding: 0;
440
+ cursor: pointer;
441
+ font-size: 13px;
442
+ font-weight: 500;
443
+ color: inherit;
444
+ text-decoration: none;
445
+ }
446
+
414
447
  .qbs-table-columns-label {
415
448
  display: flex;
416
449
  gap: 10px;
@@ -746,11 +779,32 @@
746
779
 
747
780
  .qbs-table-top-icons {
748
781
  color: #999696;
782
+ display: inline-flex;
783
+ align-items: center;
784
+ gap: 8px;
749
785
 
750
- .active{
786
+ .active {
751
787
  color: #EC6A17;
752
788
  }
753
789
  }
790
+
791
+ .qbs-row-switch-container {
792
+ display: inline-flex;
793
+ align-items: center;
794
+ gap: 8px;
795
+ }
796
+
797
+ .qbs-table-view-btn {
798
+ display: inline-flex;
799
+ align-items: center;
800
+ justify-content: center;
801
+ padding: 0;
802
+ margin: 0;
803
+ border: none;
804
+ background: transparent;
805
+ cursor: pointer;
806
+ color: inherit;
807
+ }
754
808
  .qbs-card-empty-wrapper {
755
809
  display: flex;
756
810
  justify-content: center;
@@ -85,6 +85,8 @@ export var ExpandCell = /*#__PURE__*/React.memo(function (_ref3) {
85
85
  onChange = _ref3.onChange,
86
86
  props = _objectWithoutPropertiesLoose(_ref3, _excluded3);
87
87
  return /*#__PURE__*/React.createElement(Cell, props, /*#__PURE__*/React.createElement("button", {
88
+ type: "button",
89
+ className: "qbs-table-expand-btn",
88
90
  onClick: function onClick() {
89
91
  onChange(rowData);
90
92
  }
@@ -100,7 +102,7 @@ export var ExpandCell = /*#__PURE__*/React.memo(function (_ref3) {
100
102
  fillRule: "evenodd",
101
103
  clipRule: "evenodd",
102
104
  d: "M0.792893 0.292893C1.18342 -0.097631 1.81658 -0.097631 2.20711 0.292893L5.5 3.58579L8.79289 0.292893C9.18342 -0.0976311 9.81658 -0.0976311 10.2071 0.292893C10.5976 0.683417 10.5976 1.31658 10.2071 1.70711L6.20711 5.70711C5.81658 6.09763 5.18342 6.09763 4.79289 5.70711L0.792893 1.70711C0.402369 1.31658 0.402369 0.683417 0.792893 0.292893Z",
103
- fill: "#313131"
105
+ fill: "currentColor"
104
106
  })) : /*#__PURE__*/React.createElement("svg", {
105
107
  width: "7",
106
108
  height: "10",
@@ -111,7 +113,7 @@ export var ExpandCell = /*#__PURE__*/React.memo(function (_ref3) {
111
113
  fillRule: "evenodd",
112
114
  clipRule: "evenodd",
113
115
  d: "M0.792894 9.70711C0.402369 9.31658 0.402369 8.68342 0.792894 8.29289L4.08579 5L0.792893 1.70711C0.402369 1.31658 0.402369 0.683418 0.792893 0.292894C1.18342 -0.0976312 1.81658 -0.0976312 2.20711 0.292894L6.20711 4.29289C6.59763 4.68342 6.59763 5.31658 6.20711 5.70711L2.20711 9.70711C1.81658 10.0976 1.18342 10.0976 0.792894 9.70711Z",
114
- fill: "#313131"
116
+ fill: "currentColor"
115
117
  }))));
116
118
  });
117
119
  export var CustomTableCell = /*#__PURE__*/React.memo(function (_ref4) {
@@ -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 { mergeQbsTableLabels } 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';
@@ -107,7 +108,25 @@ var QbsTable = function QbsTable(_ref) {
107
108
  isCustomTableCardView = _ref$isCustomTableCar === void 0 ? false : _ref$isCustomTableCar,
108
109
  handleTableCardView = _ref.handleTableCardView,
109
110
  handleCustomCardLoader = _ref.handleCustomCardLoader,
110
- dropType = _ref.dropType;
111
+ dropType = _ref.dropType,
112
+ labelsProp = _ref.labels,
113
+ _ref$rtl = _ref.rtl,
114
+ rtl = _ref$rtl === void 0 ? false : _ref$rtl,
115
+ _ref$rowViewToggle = _ref.rowViewToggle,
116
+ rowViewToggle = _ref$rowViewToggle === void 0 ? false : _ref$rowViewToggle,
117
+ _ref$defaultRowView = _ref.defaultRowView,
118
+ defaultRowView = _ref$defaultRowView === void 0 ? true : _ref$defaultRowView,
119
+ _ref$fullWidthView = _ref.fullWidthView,
120
+ fullWidthView = _ref$fullWidthView === void 0 ? false : _ref$fullWidthView,
121
+ setTableFullView = _ref.setTableFullView,
122
+ setRowViewToggle = _ref.setRowViewToggle,
123
+ _ref$isFullScreen = _ref.isFullScreen,
124
+ isFullScreen = _ref$isFullScreen === void 0 ? false : _ref$isFullScreen,
125
+ rowHeight = _ref.rowHeight;
126
+ var labels = useMemo(function () {
127
+ return mergeQbsTableLabels(labelsProp);
128
+ }, [labelsProp]);
129
+ var pinSide = rtl ? 'left' : 'right';
111
130
  var _useState = useState(false),
112
131
  loading = _useState[0],
113
132
  setLoading = _useState[1];
@@ -260,7 +279,15 @@ var QbsTable = function QbsTable(_ref) {
260
279
  searchPlaceholder: searchPlaceholder,
261
280
  setTableViewToggle: setTableViewToggle,
262
281
  tableViewToggle: tableViewToggle,
263
- enableTableToggle: enableTableToggle
282
+ enableTableToggle: enableTableToggle,
283
+ rowViewToggle: rowViewToggle,
284
+ defaultRowView: defaultRowView,
285
+ fullWidthView: fullWidthView,
286
+ setTableFullView: setTableFullView,
287
+ setRowViewToggle: setRowViewToggle,
288
+ isFullScreen: isFullScreen,
289
+ labels: labels,
290
+ rtl: rtl
264
291
  };
265
292
  var themeToggle = useMemo(function () {
266
293
  return document.getElementById('themeToggle');
@@ -560,6 +587,7 @@ var QbsTable = function QbsTable(_ref) {
560
587
  height: autoHeight ? undefined : height,
561
588
  key: tableKey,
562
589
  tableKey: tableKey,
590
+ rtl: rtl,
563
591
  data: data,
564
592
  tableBodyRef: tableBodyRef,
565
593
  dataTheme: dataTheme,
@@ -584,6 +612,7 @@ var QbsTable = function QbsTable(_ref) {
584
612
  columns: columns,
585
613
  minHeight: minHeight,
586
614
  headerHeight: headerHeight,
615
+ rowHeight: rowHeight,
587
616
  rowExpandedHeight: rowExpandedHeight,
588
617
  loading: isLoading != null ? isLoading : loading,
589
618
  showHeader: true,
@@ -668,7 +697,7 @@ var QbsTable = function QbsTable(_ref) {
668
697
  getToolTip: customRowStatus.getToolTip
669
698
  })), columnsRendered, !actionProps || (actionProps === null || actionProps === void 0 ? void 0 : actionProps.length) === 0 && columnToggle && /*#__PURE__*/React.createElement(Column, {
670
699
  width: 40,
671
- fixed: "right"
700
+ fixed: pinSide
672
701
  }, /*#__PURE__*/React.createElement(HeaderCell, {
673
702
  verticalAlign: findGrouped() ? 'middle' : undefined,
674
703
  className: " " + classes.headerlClass,
@@ -682,10 +711,12 @@ var QbsTable = function QbsTable(_ref) {
682
711
  tableHeight: height,
683
712
  setIsOpen: setIsOpen,
684
713
  handleResetColumns: handleResetColumns,
685
- handleColumnToggle: handleColumnToggle
714
+ handleColumnToggle: handleColumnToggle,
715
+ labels: labels,
716
+ rtl: rtl
686
717
  })), /*#__PURE__*/React.createElement(Cell, null)), actionProps && (actionProps === null || actionProps === void 0 ? void 0 : actionProps.length) > 0 && /*#__PURE__*/React.createElement(Column, {
687
718
  width: 40,
688
- fixed: "right"
719
+ fixed: pinSide
689
720
  }, /*#__PURE__*/React.createElement(HeaderCell, {
690
721
  verticalAlign: findGrouped() ? 'middle' : undefined,
691
722
  className: " " + classes.headerlClass,
@@ -699,7 +730,9 @@ var QbsTable = function QbsTable(_ref) {
699
730
  isOpen: isOpen,
700
731
  setIsOpen: setIsOpen,
701
732
  handleResetColumns: handleResetColumns,
702
- handleColumnToggle: handleColumnToggle
733
+ handleColumnToggle: handleColumnToggle,
734
+ labels: labels,
735
+ rtl: rtl
703
736
  })), /*#__PURE__*/React.createElement(ActionCell, {
704
737
  tableBodyRef: tableBodyRef,
705
738
  actionProps: actionProps,
@@ -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 { mergeQbsTableLabels } 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';
@@ -92,7 +93,24 @@ var QbsTable = function QbsTable(_ref) {
92
93
  autoHeight = _ref.autoHeight,
93
94
  emptySubTitle = _ref.emptySubTitle,
94
95
  emptyTitle = _ref.emptyTitle,
95
- dropType = _ref.dropType;
96
+ dropType = _ref.dropType,
97
+ labelsProp = _ref.labels,
98
+ _ref$rtl = _ref.rtl,
99
+ rtl = _ref$rtl === void 0 ? false : _ref$rtl,
100
+ _ref$rowViewToggle = _ref.rowViewToggle,
101
+ rowViewToggle = _ref$rowViewToggle === void 0 ? false : _ref$rowViewToggle,
102
+ _ref$defaultRowView = _ref.defaultRowView,
103
+ defaultRowView = _ref$defaultRowView === void 0 ? true : _ref$defaultRowView,
104
+ _ref$fullWidthView = _ref.fullWidthView,
105
+ fullWidthView = _ref$fullWidthView === void 0 ? false : _ref$fullWidthView,
106
+ setTableFullView = _ref.setTableFullView,
107
+ setRowViewToggle = _ref.setRowViewToggle,
108
+ _ref$isFullScreen = _ref.isFullScreen,
109
+ isFullScreen = _ref$isFullScreen === void 0 ? false : _ref$isFullScreen;
110
+ var labels = useMemo(function () {
111
+ return mergeQbsTableLabels(labelsProp);
112
+ }, [labelsProp]);
113
+ var pinSide = rtl ? 'left' : 'right';
96
114
  var _useState = useState(false),
97
115
  loading = _useState[0],
98
116
  setLoading = _useState[1];
@@ -238,7 +256,15 @@ var QbsTable = function QbsTable(_ref) {
238
256
  onSelect: handleClear,
239
257
  handleColumnToggle: handleColumnToggle,
240
258
  dataLength: data === null || data === void 0 ? void 0 : data.length,
241
- searchPlaceholder: searchPlaceholder
259
+ searchPlaceholder: searchPlaceholder,
260
+ rowViewToggle: rowViewToggle,
261
+ defaultRowView: defaultRowView,
262
+ fullWidthView: fullWidthView,
263
+ setTableFullView: setTableFullView,
264
+ setRowViewToggle: setRowViewToggle,
265
+ isFullScreen: isFullScreen,
266
+ labels: labels,
267
+ rtl: rtl
242
268
  };
243
269
  var themeToggle = useMemo(function () {
244
270
  return document.getElementById('themeToggle');
@@ -419,6 +445,7 @@ var QbsTable = function QbsTable(_ref) {
419
445
  height: autoHeight ? undefined : height,
420
446
  key: tableKey,
421
447
  tableKey: tableKey,
448
+ rtl: rtl,
422
449
  data: data,
423
450
  tableBodyRef: tableBodyRef,
424
451
  dataTheme: dataTheme,
@@ -527,7 +554,7 @@ var QbsTable = function QbsTable(_ref) {
527
554
  getToolTip: customRowStatus.getToolTip
528
555
  })), columnsRendered, !actionProps || (actionProps === null || actionProps === void 0 ? void 0 : actionProps.length) === 0 && columnToggle && /*#__PURE__*/React.createElement(Column, {
529
556
  width: 40,
530
- fixed: "right"
557
+ fixed: pinSide
531
558
  }, /*#__PURE__*/React.createElement(HeaderCell, {
532
559
  verticalAlign: findGrouped() ? 'middle' : undefined,
533
560
  className: " " + classes.headerlClass,
@@ -541,10 +568,12 @@ var QbsTable = function QbsTable(_ref) {
541
568
  tableHeight: height,
542
569
  setIsOpen: setIsOpen,
543
570
  handleResetColumns: handleResetColumns,
544
- handleColumnToggle: handleColumnToggle
571
+ handleColumnToggle: handleColumnToggle,
572
+ labels: labels,
573
+ rtl: rtl
545
574
  })), /*#__PURE__*/React.createElement(Cell, null)), actionProps && (actionProps === null || actionProps === void 0 ? void 0 : actionProps.length) > 0 && /*#__PURE__*/React.createElement(Column, {
546
575
  width: 40,
547
- fixed: "right"
576
+ fixed: pinSide
548
577
  }, /*#__PURE__*/React.createElement(HeaderCell, {
549
578
  verticalAlign: findGrouped() ? 'middle' : undefined,
550
579
  className: " " + classes.headerlClass,
@@ -558,7 +587,9 @@ var QbsTable = function QbsTable(_ref) {
558
587
  isOpen: isOpen,
559
588
  setIsOpen: setIsOpen,
560
589
  handleResetColumns: handleResetColumns,
561
- handleColumnToggle: handleColumnToggle
590
+ handleColumnToggle: handleColumnToggle,
591
+ labels: labels,
592
+ rtl: rtl
562
593
  })), /*#__PURE__*/React.createElement(ActionCell, {
563
594
  tableBodyRef: tableBodyRef,
564
595
  actionProps: actionProps,
@@ -1,12 +1,13 @@
1
- import React, { useCallback, useRef, useState } from 'react';
1
+ import React, { useCallback, useMemo, useRef, useState } from 'react';
2
2
  import useResponsiveStore from '../utils/useResponsiveStore';
3
+ import { formatSelectedItems, mergeQbsTableLabels } from './labels';
3
4
  import debounce from './utilities/debounce';
4
- import { CardView, TableView } from './utilities/icons';
5
+ import { CardView, ContentView, DefaultView, ExpandIcon, TableView } from './utilities/icons';
5
6
  import SearchInput from './utilities/SearchInput';
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 _ref2, _labels$switchToDefau, _labels$switchToRelax, _labels$switchToFullS, _labels$switchToTable, _labels$switchToCardV, _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,
@@ -27,7 +28,23 @@ var ToolBar = function ToolBar(_ref) {
27
28
  tableViewToggle = _ref.tableViewToggle,
28
29
  setTableViewToggle = _ref.setTableViewToggle,
29
30
  _ref$enableTableToggl = _ref.enableTableToggle,
30
- enableTableToggle = _ref$enableTableToggl === void 0 ? false : _ref$enableTableToggl;
31
+ enableTableToggle = _ref$enableTableToggl === void 0 ? false : _ref$enableTableToggl,
32
+ _ref$rowViewToggle = _ref.rowViewToggle,
33
+ rowViewToggle = _ref$rowViewToggle === void 0 ? false : _ref$rowViewToggle,
34
+ _ref$defaultRowView = _ref.defaultRowView,
35
+ defaultRowView = _ref$defaultRowView === void 0 ? true : _ref$defaultRowView,
36
+ _ref$fullWidthView = _ref.fullWidthView,
37
+ fullWidthView = _ref$fullWidthView === void 0 ? false : _ref$fullWidthView,
38
+ setTableFullView = _ref.setTableFullView,
39
+ setRowViewToggle = _ref.setRowViewToggle,
40
+ _ref$isFullScreen = _ref.isFullScreen,
41
+ isFullScreen = _ref$isFullScreen === void 0 ? false : _ref$isFullScreen,
42
+ labelsProp = _ref.labels,
43
+ _ref$rtl = _ref.rtl,
44
+ rtl = _ref$rtl === void 0 ? false : _ref$rtl;
45
+ var labels = useMemo(function () {
46
+ return mergeQbsTableLabels(labelsProp);
47
+ }, [labelsProp]);
31
48
  var debouncedOnSearch = useCallback(debounce(onSearch != null ? onSearch : function () {}, 1000), [onSearch]);
32
49
  var _useState = useState(searchValue),
33
50
  searchParam = _useState[0],
@@ -52,11 +69,11 @@ var ToolBar = function ToolBar(_ref) {
52
69
  var handleHide = function handleHide(actions) {
53
70
  if (actions.hidden) {
54
71
  return false;
55
- } else if (actions.customHide == '>2') {
56
- return checkedKeys && (checkedKeys === null || checkedKeys === void 0 ? void 0 : checkedKeys.length) >= 2 ? true : false;
57
- } else {
58
- return true;
59
72
  }
73
+ if (actions.customHide === '>2') {
74
+ return checkedKeys && (checkedKeys === null || checkedKeys === void 0 ? void 0 : checkedKeys.length) >= 2;
75
+ }
76
+ return true;
60
77
  };
61
78
  var isMobile = useResponsiveStore();
62
79
  var handleFilterClick = function handleFilterClick() {
@@ -64,9 +81,10 @@ var ToolBar = function ToolBar(_ref) {
64
81
  };
65
82
  return /*#__PURE__*/React.createElement("div", {
66
83
  className: "qbs-table-toolbar-container",
67
- ref: toolbarRef
84
+ ref: toolbarRef,
85
+ dir: rtl ? 'rtl' : 'ltr'
68
86
  }, /*#__PURE__*/React.createElement("div", {
69
- className: "qbs-table-toolbar " + className
87
+ className: "qbs-table-toolbar " + (className != null ? className : '')
70
88
  }, /*#__PURE__*/React.createElement("div", {
71
89
  className: "start-container",
72
90
  style: {
@@ -76,7 +94,7 @@ var ToolBar = function ToolBar(_ref) {
76
94
  }, /*#__PURE__*/React.createElement("div", {
77
95
  className: "qbs-table-primary-filter"
78
96
  }, search && /*#__PURE__*/React.createElement(SearchInput, {
79
- placeholder: searchPlaceholder != null ? searchPlaceholder : 'Search',
97
+ placeholder: (_ref2 = searchPlaceholder != null ? searchPlaceholder : labels.search) != null ? _ref2 : 'Search',
80
98
  handleChange: handleChange,
81
99
  handleSearch: handleSearch,
82
100
  searchValue: searchParam
@@ -97,13 +115,54 @@ var ToolBar = function ToolBar(_ref) {
97
115
  strokeLinejoin: "round",
98
116
  d: "M12 3c2.755 0 5.455.232 8.083.678.533.09.917.556.917 1.096v1.044a2.25 2.25 0 0 1-.659 1.591l-5.432 5.432a2.25 2.25 0 0 0-.659 1.591v2.927a2.25 2.25 0 0 1-1.244 2.013L9.75 21v-6.568a2.25 2.25 0 0 0-.659-1.591L3.659 7.409A2.25 2.25 0 0 1 3 5.818V4.774c0-.54.384-1.006.917-1.096A48.32 48.32 0 0 1 12 3Z"
99
117
  }))), tableHeaderActions, /*#__PURE__*/React.createElement("div", {
100
- className: " pr-1 cursor-pointer relative "
101
- }, enableTableToggle && !isMobile && /*#__PURE__*/React.createElement("div", {
118
+ className: "pr-1 cursor-pointer relative table_custom_ctions"
119
+ }, (rowViewToggle || isFullScreen) && /*#__PURE__*/React.createElement("div", {
120
+ className: "flex gap-2 qbs-row-switch-container"
121
+ }, rowViewToggle && /*#__PURE__*/React.createElement("div", {
122
+ className: "flex gap-2 table_cell_style qbs-table-top-icons"
123
+ }, /*#__PURE__*/React.createElement(TooltipComponent, {
124
+ tableBodyRef: toolbarRef,
125
+ title: (_labels$switchToDefau = labels.switchToDefaultView) != null ? _labels$switchToDefau : ''
126
+ }, /*#__PURE__*/React.createElement("button", {
127
+ type: "button",
128
+ className: "qbs-table-view-btn",
129
+ onClick: function onClick() {
130
+ return setRowViewToggle === null || setRowViewToggle === void 0 ? void 0 : setRowViewToggle(true);
131
+ }
132
+ }, /*#__PURE__*/React.createElement(DefaultView, {
133
+ className: "" + (defaultRowView ? 'active' : '')
134
+ }))), /*#__PURE__*/React.createElement(TooltipComponent, {
135
+ tableBodyRef: toolbarRef,
136
+ title: (_labels$switchToRelax = labels.switchToRelaxedView) != null ? _labels$switchToRelax : ''
137
+ }, /*#__PURE__*/React.createElement("button", {
138
+ type: "button",
139
+ className: "qbs-table-view-btn",
140
+ onClick: function onClick() {
141
+ return setRowViewToggle === null || setRowViewToggle === void 0 ? void 0 : setRowViewToggle(false);
142
+ }
143
+ }, /*#__PURE__*/React.createElement(ContentView, {
144
+ className: "" + (!defaultRowView ? 'active' : '')
145
+ })))), isFullScreen && /*#__PURE__*/React.createElement("div", {
146
+ className: "table_full_width qbs-table-top-icons"
147
+ }, /*#__PURE__*/React.createElement(TooltipComponent, {
148
+ tableBodyRef: toolbarRef,
149
+ title: (_labels$switchToFullS = labels.switchToFullScreen) != null ? _labels$switchToFullS : ''
150
+ }, /*#__PURE__*/React.createElement("button", {
151
+ type: "button",
152
+ className: "qbs-table-view-btn",
153
+ onClick: function onClick() {
154
+ return setTableFullView === null || setTableFullView === void 0 ? void 0 : setTableFullView(!fullWidthView);
155
+ }
156
+ }, /*#__PURE__*/React.createElement(ExpandIcon, {
157
+ className: "" + (fullWidthView ? 'active' : '')
158
+ }))))), enableTableToggle && !isMobile && /*#__PURE__*/React.createElement("div", {
102
159
  className: "qbs-table-top-icons flex gap-2"
103
160
  }, /*#__PURE__*/React.createElement(TooltipComponent, {
104
161
  tableBodyRef: toolbarRef,
105
- title: 'Switch to Table View'
106
- }, /*#__PURE__*/React.createElement("div", {
162
+ title: (_labels$switchToTable = labels.switchToTableView) != null ? _labels$switchToTable : ''
163
+ }, /*#__PURE__*/React.createElement("button", {
164
+ type: "button",
165
+ className: "qbs-table-view-btn",
107
166
  onClick: function onClick() {
108
167
  return setTableViewToggle === null || setTableViewToggle === void 0 ? void 0 : setTableViewToggle(true);
109
168
  }
@@ -111,13 +170,15 @@ var ToolBar = function ToolBar(_ref) {
111
170
  className: "" + (tableViewToggle ? 'active' : '')
112
171
  }))), /*#__PURE__*/React.createElement("div", {
113
172
  className: "border-r h-4 w-1"
114
- }), /*#__PURE__*/React.createElement("div", {
173
+ }), /*#__PURE__*/React.createElement(TooltipComponent, {
174
+ tableBodyRef: toolbarRef,
175
+ title: (_labels$switchToCardV = labels.switchToCardView) != null ? _labels$switchToCardV : ''
176
+ }, /*#__PURE__*/React.createElement("button", {
177
+ type: "button",
178
+ className: "qbs-table-view-btn",
115
179
  onClick: function onClick() {
116
180
  return setTableViewToggle === null || setTableViewToggle === void 0 ? void 0 : setTableViewToggle(false);
117
181
  }
118
- }, /*#__PURE__*/React.createElement(TooltipComponent, {
119
- tableBodyRef: toolbarRef,
120
- title: 'Switch to Card View'
121
182
  }, /*#__PURE__*/React.createElement(CardView, {
122
183
  className: "" + (!tableViewToggle ? 'active' : '')
123
184
  }))))))), isMobile && isOpen && /*#__PURE__*/React.createElement("div", {
@@ -130,16 +191,19 @@ var ToolBar = function ToolBar(_ref) {
130
191
  className: "qbs-table-toolbar-sub-container-start"
131
192
  }, /*#__PURE__*/React.createElement("div", {
132
193
  className: "selected-row"
133
- }, "Selected Items(" + (checkedKeys === null || checkedKeys === void 0 ? void 0 : checkedKeys.length) + ") "), /*#__PURE__*/React.createElement("div", {
194
+ }, formatSelectedItems(checkedKeys.length, labels)), /*#__PURE__*/React.createElement("div", {
134
195
  className: "selected-row-action"
135
196
  }, /*#__PURE__*/React.createElement("button", {
197
+ type: "button",
136
198
  className: "btn",
137
199
  onClick: function onClick() {
138
200
  return onSelect === null || onSelect === void 0 ? void 0 : onSelect([]);
139
201
  }
140
- }, "Clear"), selectedRowActions === null || selectedRowActions === void 0 ? void 0 : selectedRowActions.map(function (actions, index) {
141
- return /*#__PURE__*/React.createElement(React.Fragment, null, handleHide(actions) && /*#__PURE__*/React.createElement("button", {
142
- key: index.toString(),
202
+ }, labels.clear), selectedRowActions === null || selectedRowActions === void 0 ? void 0 : selectedRowActions.map(function (actions, index) {
203
+ return /*#__PURE__*/React.createElement(React.Fragment, {
204
+ key: index.toString()
205
+ }, handleHide(actions) && /*#__PURE__*/React.createElement("button", {
206
+ type: "button",
143
207
  className: "btn",
144
208
  disabled: actions.disabled,
145
209
  onClick: function onClick() {
@@ -1,4 +1,5 @@
1
1
  import React, { ReactElement, ReactNode } from 'react';
2
+ import type { QbsTableLabels } from './labels';
2
3
  interface Content {
3
4
  cell: ReactNode | string;
4
5
  toolTip?: string;
@@ -83,6 +84,8 @@ export interface QbsTableProps {
83
84
  setExpandedRowKeys?: (value: readonly number[]) => void;
84
85
  handleMenuActions?: (actions: ActionProps, rowData: any) => void;
85
86
  dropType?: 'vertical' | string;
87
+ labels?: QbsTableLabels;
88
+ rtl?: boolean;
86
89
  handleRowExpanded?: (rowData: any) => React.ReactNode;
87
90
  shouldUpdateScroll?: boolean;
88
91
  rowExpand?: boolean;
@@ -128,6 +131,13 @@ export interface QbsTableProps {
128
131
  handleTableCardView?: (data: any) => React.ReactNode;
129
132
  isCustomTableCardView?: boolean;
130
133
  handleCustomCardLoader?: () => React.ReactNode;
134
+ rowViewToggle?: boolean;
135
+ defaultRowView?: boolean;
136
+ fullWidthView?: boolean;
137
+ setTableFullView?: (value: boolean) => void;
138
+ setRowViewToggle?: (value: boolean) => void;
139
+ isFullScreen?: boolean;
140
+ rowHeight?: number;
131
141
  }
132
142
  export interface QbsTableToolbarProps {
133
143
  title?: string;
@@ -156,6 +166,14 @@ export interface QbsTableToolbarProps {
156
166
  enableTableToggle?: boolean;
157
167
  tableViewToggle?: boolean;
158
168
  setTableViewToggle?: (value: boolean) => void;
169
+ rowViewToggle?: boolean;
170
+ defaultRowView?: boolean;
171
+ fullWidthView?: boolean;
172
+ setTableFullView?: (value: boolean) => void;
173
+ setRowViewToggle?: (value: boolean) => void;
174
+ isFullScreen?: boolean;
175
+ labels?: QbsTableLabels;
176
+ rtl?: boolean;
159
177
  selectedRowActions?: {
160
178
  actionTitle?: string;
161
179
  action: (checked: (number | string)[]) => void;
@@ -0,0 +1,25 @@
1
+ export type 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 defaultQbsTableLabels: QbsTableLabels;
24
+ export declare const mergeQbsTableLabels: (overrides?: QbsTableLabels) => QbsTableLabels;
25
+ export declare const formatSelectedItems: (count: number, labels?: QbsTableLabels) => string;
@@ -0,0 +1,32 @@
1
+ import _extends from "@babel/runtime/helpers/esm/extends";
2
+ export var defaultQbsTableLabels = {
3
+ search: 'Search',
4
+ searchAriaLabel: 'Search',
5
+ clear: 'Clear',
6
+ selectedItems: 'Selected items',
7
+ switchToDefaultView: 'Switch to Default View',
8
+ switchToRelaxedView: 'Switch to Relaxed View',
9
+ switchToFullScreen: 'Switch to Full Screen',
10
+ switchToTableView: 'Switch to Table View',
11
+ switchToCardView: 'Switch to Card View',
12
+ noDataFound: 'No Data Found',
13
+ showingRange: function showingRange(start, end, total) {
14
+ return "Showing " + start + " to " + end + " of " + total;
15
+ },
16
+ itemsPerPage: 'Items per page',
17
+ fixedColumns: 'FIXED COLUMNS',
18
+ visibleColumns: 'VISIBLE COLUMNS',
19
+ availableColumns: 'AVAILABLE COLUMNS',
20
+ resetToDefault: 'Reset to default',
21
+ save: 'Save',
22
+ viewMore: 'View More',
23
+ viewLess: 'View Less',
24
+ actions: 'Actions'
25
+ };
26
+ export var mergeQbsTableLabels = function mergeQbsTableLabels(overrides) {
27
+ return _extends({}, defaultQbsTableLabels, overrides);
28
+ };
29
+ export var formatSelectedItems = function formatSelectedItems(count, labels) {
30
+ var merged = mergeQbsTableLabels(labels);
31
+ return merged.selectedItems + " (" + count + ")";
32
+ };
@@ -1,5 +1,6 @@
1
1
  import React from 'react';
2
2
  import { QbsColumnProps } from '../commontypes';
3
+ import type { QbsTableLabels } from '../labels';
3
4
  interface ColumnToggleProps {
4
5
  columns: QbsColumnProps[];
5
6
  onToggle: (columnName: string) => void;
@@ -9,6 +10,8 @@ interface ColumnToggleProps {
9
10
  handleColumnToggle?: (columns: QbsColumnProps[]) => void;
10
11
  handleResetColumns?: () => void;
11
12
  tableHeight?: number;
13
+ labels?: QbsTableLabels;
14
+ rtl?: boolean;
12
15
  }
13
16
  declare const ColumnToggle: React.FC<ColumnToggleProps>;
14
17
  export default ColumnToggle;