qbs-react-grid 2.2.6 → 2.2.11

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 (58) 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 +89 -6
  7. package/es/qbsTable/CustomTableCell.js +4 -2
  8. package/es/qbsTable/QbsTable.js +52 -6
  9. package/es/qbsTable/TableCardList.js +39 -5
  10. package/es/qbsTable/Toolbar.js +96 -21
  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 +63 -35
  16. package/es/qbsTable/utilities/ToolTip.js +2 -1
  17. package/es/qbsTable/utilities/VerticalDropDownMenu.js +28 -7
  18. package/es/qbsTable/utilities/columnToggleCoordinator.d.ts +5 -0
  19. package/es/qbsTable/utilities/columnToggleCoordinator.js +9 -0
  20. package/es/qbsTable/utilities/icons.d.ts +3 -0
  21. package/es/qbsTable/utilities/icons.js +67 -3
  22. package/es/qbsTable/utilities/verticalMenuCoordinator.d.ts +5 -0
  23. package/es/qbsTable/utilities/verticalMenuCoordinator.js +9 -0
  24. package/lib/index.d.ts +2 -0
  25. package/lib/index.js +6 -2
  26. package/lib/less/qbs-table.less +89 -6
  27. package/lib/qbsTable/CustomTableCell.js +4 -2
  28. package/lib/qbsTable/QbsTable.js +52 -6
  29. package/lib/qbsTable/TableCardList.js +39 -5
  30. package/lib/qbsTable/Toolbar.js +94 -19
  31. package/lib/qbsTable/commontypes.d.ts +18 -0
  32. package/lib/qbsTable/labels.d.ts +25 -0
  33. package/lib/qbsTable/labels.js +40 -0
  34. package/lib/qbsTable/utilities/ColumShowHide.d.ts +3 -0
  35. package/lib/qbsTable/utilities/ColumShowHide.js +62 -34
  36. package/lib/qbsTable/utilities/ToolTip.js +2 -1
  37. package/lib/qbsTable/utilities/VerticalDropDownMenu.js +27 -6
  38. package/lib/qbsTable/utilities/columnToggleCoordinator.d.ts +5 -0
  39. package/lib/qbsTable/utilities/columnToggleCoordinator.js +15 -0
  40. package/lib/qbsTable/utilities/icons.d.ts +3 -0
  41. package/lib/qbsTable/utilities/icons.js +72 -5
  42. package/lib/qbsTable/utilities/verticalMenuCoordinator.d.ts +5 -0
  43. package/lib/qbsTable/utilities/verticalMenuCoordinator.js +15 -0
  44. package/package.json +1 -1
  45. package/src/index.ts +6 -0
  46. package/src/less/qbs-table.less +89 -6
  47. package/src/qbsTable/CustomTableCell.tsx +4 -2
  48. package/src/qbsTable/QbsTable.tsx +41 -4
  49. package/src/qbsTable/TableCardList.tsx +30 -3
  50. package/src/qbsTable/Toolbar.tsx +105 -26
  51. package/src/qbsTable/commontypes.ts +19 -0
  52. package/src/qbsTable/labels.ts +55 -0
  53. package/src/qbsTable/utilities/ColumShowHide.tsx +114 -77
  54. package/src/qbsTable/utilities/ToolTip.tsx +1 -1
  55. package/src/qbsTable/utilities/VerticalDropDownMenu.tsx +36 -5
  56. package/src/qbsTable/utilities/columnToggleCoordinator.ts +14 -0
  57. package/src/qbsTable/utilities/icons.tsx +76 -3
  58. package/src/qbsTable/utilities/verticalMenuCoordinator.ts +14 -0
@@ -376,20 +376,54 @@
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
+ width: 100%;
385
+
386
+ > button {
387
+ display: inline-flex;
388
+ align-items: center;
389
+ justify-content: center;
390
+ padding: 0;
391
+ margin: 0;
392
+ border: none;
393
+ background: transparent;
394
+ cursor: pointer;
395
+ color: #585858;
396
+
397
+ svg {
398
+ width: 20px;
399
+ height: 20px;
400
+ }
401
+
402
+ &:hover,
403
+ &:focus {
404
+ background: transparent;
405
+ outline: none;
406
+ }
407
+ }
408
+ }
409
+
379
410
  .qbs-table-column-popup {
380
- position: fixed;
411
+ position: absolute;
412
+ top: calc(100% + 4px);
413
+ inset-inline-end: 0;
414
+ inset-inline-start: auto;
381
415
  padding: 8px;
382
- z-index: 999;
383
- right: 10px;
416
+ z-index: 10060;
384
417
  border-radius: 8px;
385
418
  background: #fff;
386
419
  box-shadow: 0px 8px 20px 0px rgba(0, 0, 0, 0.15);
387
- min-width: 272px;
420
+ min-width: 300px;
421
+ width: max-content;
422
+ max-width: min(400px, calc(100vw - 16px));
388
423
  gap: 4px;
389
424
  display: flex;
390
425
  flex-direction: column;
391
426
  max-height: 500px;
392
- // overflow-y: auto;
393
427
  }
394
428
  .qbs-table-popup-container {
395
429
  max-width: 400px;
@@ -411,6 +445,34 @@
411
445
  flex-direction: row-reverse;
412
446
  }
413
447
 
448
+ .qbs-table-popup-footer {
449
+ display: flex;
450
+ flex-direction: row;
451
+ justify-content: space-between;
452
+ align-items: center;
453
+ gap: 8px;
454
+ padding: 4px 0 0;
455
+ }
456
+
457
+ .qbs-table-column-popup--rtl {
458
+ text-align: right;
459
+ }
460
+
461
+ .qbs-table-column-popup--rtl .qbs-table-popup-footer {
462
+ flex-direction: row-reverse;
463
+ }
464
+
465
+ .qbs-table-reset-link {
466
+ background: none;
467
+ border: none;
468
+ padding: 0;
469
+ cursor: pointer;
470
+ font-size: 13px;
471
+ font-weight: 500;
472
+ color: inherit;
473
+ text-decoration: none;
474
+ }
475
+
414
476
  .qbs-table-columns-label {
415
477
  display: flex;
416
478
  gap: 10px;
@@ -746,11 +808,32 @@
746
808
 
747
809
  .qbs-table-top-icons {
748
810
  color: #999696;
811
+ display: inline-flex;
812
+ align-items: center;
813
+ gap: 8px;
749
814
 
750
- .active{
815
+ .active {
751
816
  color: #EC6A17;
752
817
  }
753
818
  }
819
+
820
+ .qbs-row-switch-container {
821
+ display: inline-flex;
822
+ align-items: center;
823
+ gap: 8px;
824
+ }
825
+
826
+ .qbs-table-view-btn {
827
+ display: inline-flex;
828
+ align-items: center;
829
+ justify-content: center;
830
+ padding: 0;
831
+ margin: 0;
832
+ border: none;
833
+ background: transparent;
834
+ cursor: pointer;
835
+ color: inherit;
836
+ }
754
837
  .qbs-card-empty-wrapper {
755
838
  display: flex;
756
839
  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,28 @@ 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 effectiveWordWrap = useMemo(function () {
130
+ if (!rowViewToggle) return wordWrap;
131
+ return defaultRowView ? wordWrap : 'break-word';
132
+ }, [rowViewToggle, defaultRowView, wordWrap]);
111
133
  var _useState = useState(false),
112
134
  loading = _useState[0],
113
135
  setLoading = _useState[1];
@@ -130,6 +152,16 @@ var QbsTable = function QbsTable(_ref) {
130
152
  setTableViewToggle = _useState5[1];
131
153
  var isMobile = useResponsiveStore();
132
154
  var tableBodyRef = useRef(null);
155
+ var _useState6 = useState(0),
156
+ rowViewRefreshKey = _useState6[0],
157
+ setRowViewRefreshKey = _useState6[1];
158
+ useEffect(function () {
159
+ if (rowViewToggle) {
160
+ setRowViewRefreshKey(function (key) {
161
+ return key + 1;
162
+ });
163
+ }
164
+ }, [defaultRowView, rowViewToggle]);
133
165
  var handleSortColumn = useCallback(function (sortColumn, sortType) {
134
166
  setLoading(true);
135
167
  setTimeout(function () {
@@ -260,7 +292,15 @@ var QbsTable = function QbsTable(_ref) {
260
292
  searchPlaceholder: searchPlaceholder,
261
293
  setTableViewToggle: setTableViewToggle,
262
294
  tableViewToggle: tableViewToggle,
263
- enableTableToggle: enableTableToggle
295
+ enableTableToggle: enableTableToggle,
296
+ rowViewToggle: rowViewToggle,
297
+ defaultRowView: defaultRowView,
298
+ fullWidthView: fullWidthView,
299
+ setTableFullView: setTableFullView,
300
+ setRowViewToggle: setRowViewToggle,
301
+ isFullScreen: isFullScreen,
302
+ labels: labels,
303
+ rtl: rtl
264
304
  };
265
305
  var themeToggle = useMemo(function () {
266
306
  return document.getElementById('themeToggle');
@@ -558,12 +598,13 @@ var QbsTable = function QbsTable(_ref) {
558
598
  className: "qbs-table-border-wrap"
559
599
  }, tableViewToggle ? /*#__PURE__*/React.createElement(Table, {
560
600
  height: autoHeight ? undefined : height,
561
- key: tableKey,
601
+ key: tableKey + "-" + rowViewRefreshKey,
562
602
  tableKey: tableKey,
603
+ rtl: rtl,
563
604
  data: data,
564
605
  tableBodyRef: tableBodyRef,
565
606
  dataTheme: dataTheme,
566
- wordWrap: wordWrap,
607
+ wordWrap: effectiveWordWrap,
567
608
  autoHeight: autoHeight,
568
609
  sortColumn: sortColumn,
569
610
  style: {
@@ -584,6 +625,7 @@ var QbsTable = function QbsTable(_ref) {
584
625
  columns: columns,
585
626
  minHeight: minHeight,
586
627
  headerHeight: headerHeight,
628
+ rowHeight: rowHeight,
587
629
  rowExpandedHeight: rowExpandedHeight,
588
630
  loading: isLoading != null ? isLoading : loading,
589
631
  showHeader: true,
@@ -682,7 +724,9 @@ var QbsTable = function QbsTable(_ref) {
682
724
  tableHeight: height,
683
725
  setIsOpen: setIsOpen,
684
726
  handleResetColumns: handleResetColumns,
685
- handleColumnToggle: handleColumnToggle
727
+ handleColumnToggle: handleColumnToggle,
728
+ labels: labels,
729
+ rtl: rtl
686
730
  })), /*#__PURE__*/React.createElement(Cell, null)), actionProps && (actionProps === null || actionProps === void 0 ? void 0 : actionProps.length) > 0 && /*#__PURE__*/React.createElement(Column, {
687
731
  width: 40,
688
732
  fixed: "right"
@@ -699,7 +743,9 @@ var QbsTable = function QbsTable(_ref) {
699
743
  isOpen: isOpen,
700
744
  setIsOpen: setIsOpen,
701
745
  handleResetColumns: handleResetColumns,
702
- handleColumnToggle: handleColumnToggle
746
+ handleColumnToggle: handleColumnToggle,
747
+ labels: labels,
748
+ rtl: rtl
703
749
  })), /*#__PURE__*/React.createElement(ActionCell, {
704
750
  tableBodyRef: tableBodyRef,
705
751
  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,27 @@ 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 effectiveWordWrap = useMemo(function () {
114
+ if (!rowViewToggle) return wordWrap;
115
+ return defaultRowView ? wordWrap : 'break-word';
116
+ }, [rowViewToggle, defaultRowView, wordWrap]);
96
117
  var _useState = useState(false),
97
118
  loading = _useState[0],
98
119
  setLoading = _useState[1];
@@ -238,7 +259,15 @@ var QbsTable = function QbsTable(_ref) {
238
259
  onSelect: handleClear,
239
260
  handleColumnToggle: handleColumnToggle,
240
261
  dataLength: data === null || data === void 0 ? void 0 : data.length,
241
- searchPlaceholder: searchPlaceholder
262
+ searchPlaceholder: searchPlaceholder,
263
+ rowViewToggle: rowViewToggle,
264
+ defaultRowView: defaultRowView,
265
+ fullWidthView: fullWidthView,
266
+ setTableFullView: setTableFullView,
267
+ setRowViewToggle: setRowViewToggle,
268
+ isFullScreen: isFullScreen,
269
+ labels: labels,
270
+ rtl: rtl
242
271
  };
243
272
  var themeToggle = useMemo(function () {
244
273
  return document.getElementById('themeToggle');
@@ -419,10 +448,11 @@ var QbsTable = function QbsTable(_ref) {
419
448
  height: autoHeight ? undefined : height,
420
449
  key: tableKey,
421
450
  tableKey: tableKey,
451
+ rtl: rtl,
422
452
  data: data,
423
453
  tableBodyRef: tableBodyRef,
424
454
  dataTheme: dataTheme,
425
- wordWrap: wordWrap,
455
+ wordWrap: effectiveWordWrap,
426
456
  autoHeight: autoHeight,
427
457
  sortColumn: sortColumn,
428
458
  style: {
@@ -541,7 +571,9 @@ var QbsTable = function QbsTable(_ref) {
541
571
  tableHeight: height,
542
572
  setIsOpen: setIsOpen,
543
573
  handleResetColumns: handleResetColumns,
544
- handleColumnToggle: handleColumnToggle
574
+ handleColumnToggle: handleColumnToggle,
575
+ labels: labels,
576
+ rtl: rtl
545
577
  })), /*#__PURE__*/React.createElement(Cell, null)), actionProps && (actionProps === null || actionProps === void 0 ? void 0 : actionProps.length) > 0 && /*#__PURE__*/React.createElement(Column, {
546
578
  width: 40,
547
579
  fixed: "right"
@@ -558,7 +590,9 @@ var QbsTable = function QbsTable(_ref) {
558
590
  isOpen: isOpen,
559
591
  setIsOpen: setIsOpen,
560
592
  handleResetColumns: handleResetColumns,
561
- handleColumnToggle: handleColumnToggle
593
+ handleColumnToggle: handleColumnToggle,
594
+ labels: labels,
595
+ rtl: rtl
562
596
  })), /*#__PURE__*/React.createElement(ActionCell, {
563
597
  tableBodyRef: tableBodyRef,
564
598
  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,21 @@ 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
+ var labels = useMemo(function () {
44
+ return mergeQbsTableLabels(labelsProp);
45
+ }, [labelsProp]);
31
46
  var debouncedOnSearch = useCallback(debounce(onSearch != null ? onSearch : function () {}, 1000), [onSearch]);
32
47
  var _useState = useState(searchValue),
33
48
  searchParam = _useState[0],
@@ -52,11 +67,11 @@ var ToolBar = function ToolBar(_ref) {
52
67
  var handleHide = function handleHide(actions) {
53
68
  if (actions.hidden) {
54
69
  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
70
  }
71
+ if (actions.customHide === '>2') {
72
+ return checkedKeys && (checkedKeys === null || checkedKeys === void 0 ? void 0 : checkedKeys.length) >= 2;
73
+ }
74
+ return true;
60
75
  };
61
76
  var isMobile = useResponsiveStore();
62
77
  var handleFilterClick = function handleFilterClick() {
@@ -66,7 +81,7 @@ var ToolBar = function ToolBar(_ref) {
66
81
  className: "qbs-table-toolbar-container",
67
82
  ref: toolbarRef
68
83
  }, /*#__PURE__*/React.createElement("div", {
69
- className: "qbs-table-toolbar " + className
84
+ className: "qbs-table-toolbar " + (className != null ? className : '')
70
85
  }, /*#__PURE__*/React.createElement("div", {
71
86
  className: "start-container",
72
87
  style: {
@@ -76,7 +91,7 @@ var ToolBar = function ToolBar(_ref) {
76
91
  }, /*#__PURE__*/React.createElement("div", {
77
92
  className: "qbs-table-primary-filter"
78
93
  }, search && /*#__PURE__*/React.createElement(SearchInput, {
79
- placeholder: searchPlaceholder != null ? searchPlaceholder : 'Search',
94
+ placeholder: (_ref2 = searchPlaceholder != null ? searchPlaceholder : labels.search) != null ? _ref2 : 'Search',
80
95
  handleChange: handleChange,
81
96
  handleSearch: handleSearch,
82
97
  searchValue: searchParam
@@ -97,12 +112,69 @@ var ToolBar = function ToolBar(_ref) {
97
112
  strokeLinejoin: "round",
98
113
  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
114
  }))), tableHeaderActions, /*#__PURE__*/React.createElement("div", {
100
- className: " pr-1 cursor-pointer relative "
101
- }, enableTableToggle && !isMobile && /*#__PURE__*/React.createElement("div", {
115
+ className: "pr-1 cursor-pointer relative table_custom_ctions"
116
+ }, (rowViewToggle || isFullScreen) && /*#__PURE__*/React.createElement("div", {
117
+ className: "flex gap-2 qbs-row-switch-cntainer"
118
+ }, rowViewToggle && /*#__PURE__*/React.createElement("div", {
119
+ className: "flex gap-2 table_cell_style qbs-table-top-icons"
120
+ }, /*#__PURE__*/React.createElement(TooltipComponent, {
121
+ tableBodyRef: toolbarRef,
122
+ title: (_labels$switchToDefau = labels.switchToDefaultView) != null ? _labels$switchToDefau : ''
123
+ }, /*#__PURE__*/React.createElement("div", {
124
+ role: "button",
125
+ tabIndex: 0,
126
+ title: labels.switchToDefaultView,
127
+ onClick: function onClick() {
128
+ return setRowViewToggle === null || setRowViewToggle === void 0 ? void 0 : setRowViewToggle(true);
129
+ },
130
+ onKeyDown: function onKeyDown(e) {
131
+ if (e.key === 'Enter' || e.key === ' ') {
132
+ setRowViewToggle === null || setRowViewToggle === void 0 ? void 0 : setRowViewToggle(true);
133
+ }
134
+ }
135
+ }, /*#__PURE__*/React.createElement(DefaultView, {
136
+ className: "" + (defaultRowView ? 'active' : '')
137
+ }))), /*#__PURE__*/React.createElement(TooltipComponent, {
138
+ tableBodyRef: toolbarRef,
139
+ title: (_labels$switchToRelax = labels.switchToRelaxedView) != null ? _labels$switchToRelax : ''
140
+ }, /*#__PURE__*/React.createElement("div", {
141
+ role: "button",
142
+ tabIndex: 0,
143
+ title: labels.switchToRelaxedView,
144
+ onClick: function onClick() {
145
+ return setRowViewToggle === null || setRowViewToggle === void 0 ? void 0 : setRowViewToggle(false);
146
+ },
147
+ onKeyDown: function onKeyDown(e) {
148
+ if (e.key === 'Enter' || e.key === ' ') {
149
+ setRowViewToggle === null || setRowViewToggle === void 0 ? void 0 : setRowViewToggle(false);
150
+ }
151
+ }
152
+ }, /*#__PURE__*/React.createElement(ContentView, {
153
+ className: "" + (!defaultRowView ? 'active' : '')
154
+ })))), isFullScreen && /*#__PURE__*/React.createElement("div", {
155
+ className: "table_full_width qbs-table-top-icons"
156
+ }, /*#__PURE__*/React.createElement(TooltipComponent, {
157
+ tableBodyRef: toolbarRef,
158
+ title: (_labels$switchToFullS = labels.switchToFullScreen) != null ? _labels$switchToFullS : ''
159
+ }, /*#__PURE__*/React.createElement("div", {
160
+ role: "button",
161
+ tabIndex: 0,
162
+ title: labels.switchToFullScreen,
163
+ onClick: function onClick() {
164
+ return setTableFullView === null || setTableFullView === void 0 ? void 0 : setTableFullView(!fullWidthView);
165
+ },
166
+ onKeyDown: function onKeyDown(e) {
167
+ if (e.key === 'Enter' || e.key === ' ') {
168
+ setTableFullView === null || setTableFullView === void 0 ? void 0 : setTableFullView(!fullWidthView);
169
+ }
170
+ }
171
+ }, /*#__PURE__*/React.createElement(ExpandIcon, {
172
+ className: "" + (fullWidthView ? 'active' : '')
173
+ }))))), enableTableToggle && !isMobile && /*#__PURE__*/React.createElement("div", {
102
174
  className: "qbs-table-top-icons flex gap-2"
103
175
  }, /*#__PURE__*/React.createElement(TooltipComponent, {
104
176
  tableBodyRef: toolbarRef,
105
- title: 'Switch to Table View'
177
+ title: (_labels$switchToTable = labels.switchToTableView) != null ? _labels$switchToTable : ''
106
178
  }, /*#__PURE__*/React.createElement("div", {
107
179
  onClick: function onClick() {
108
180
  return setTableViewToggle === null || setTableViewToggle === void 0 ? void 0 : setTableViewToggle(true);
@@ -111,13 +183,13 @@ var ToolBar = function ToolBar(_ref) {
111
183
  className: "" + (tableViewToggle ? 'active' : '')
112
184
  }))), /*#__PURE__*/React.createElement("div", {
113
185
  className: "border-r h-4 w-1"
114
- }), /*#__PURE__*/React.createElement("div", {
186
+ }), /*#__PURE__*/React.createElement(TooltipComponent, {
187
+ tableBodyRef: toolbarRef,
188
+ title: (_labels$switchToCardV = labels.switchToCardView) != null ? _labels$switchToCardV : ''
189
+ }, /*#__PURE__*/React.createElement("div", {
115
190
  onClick: function onClick() {
116
191
  return setTableViewToggle === null || setTableViewToggle === void 0 ? void 0 : setTableViewToggle(false);
117
192
  }
118
- }, /*#__PURE__*/React.createElement(TooltipComponent, {
119
- tableBodyRef: toolbarRef,
120
- title: 'Switch to Card View'
121
193
  }, /*#__PURE__*/React.createElement(CardView, {
122
194
  className: "" + (!tableViewToggle ? 'active' : '')
123
195
  }))))))), isMobile && isOpen && /*#__PURE__*/React.createElement("div", {
@@ -130,16 +202,19 @@ var ToolBar = function ToolBar(_ref) {
130
202
  className: "qbs-table-toolbar-sub-container-start"
131
203
  }, /*#__PURE__*/React.createElement("div", {
132
204
  className: "selected-row"
133
- }, "Selected Items(" + (checkedKeys === null || checkedKeys === void 0 ? void 0 : checkedKeys.length) + ") "), /*#__PURE__*/React.createElement("div", {
205
+ }, formatSelectedItems(checkedKeys.length, labels)), /*#__PURE__*/React.createElement("div", {
134
206
  className: "selected-row-action"
135
207
  }, /*#__PURE__*/React.createElement("button", {
208
+ type: "button",
136
209
  className: "btn",
137
210
  onClick: function onClick() {
138
211
  return onSelect === null || onSelect === void 0 ? void 0 : onSelect([]);
139
212
  }
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(),
213
+ }, labels.clear), selectedRowActions === null || selectedRowActions === void 0 ? void 0 : selectedRowActions.map(function (actions, index) {
214
+ return /*#__PURE__*/React.createElement(React.Fragment, {
215
+ key: index.toString()
216
+ }, handleHide(actions) && /*#__PURE__*/React.createElement("button", {
217
+ type: "button",
143
218
  className: "btn",
144
219
  disabled: actions.disabled,
145
220
  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;