qbs-react-grid 2.2.5 → 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 (57) hide show
  1. package/dist/css/qbs-react-grid.css +1 -1
  2. package/dist/css/qbs-react-grid.min.css +1 -1
  3. package/dist/css/qbs-react-grid.min.css.map +1 -1
  4. package/es/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 +27 -10
  8. package/es/qbsTable/QbsTable.js +42 -7
  9. package/es/qbsTable/TableCardList.js +40 -7
  10. package/es/qbsTable/Toolbar.js +87 -23
  11. package/es/qbsTable/commontypes.d.ts +19 -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.d.ts +11 -0
  17. package/es/qbsTable/utilities/VerticalDropDownMenu.js +182 -0
  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 +58 -4
  27. package/lib/qbsTable/CustomTableCell.js +27 -10
  28. package/lib/qbsTable/QbsTable.js +42 -7
  29. package/lib/qbsTable/TableCardList.js +40 -7
  30. package/lib/qbsTable/Toolbar.js +85 -21
  31. package/lib/qbsTable/commontypes.d.ts +19 -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 +112 -32
  36. package/lib/qbsTable/utilities/VerticalDropDownMenu.d.ts +11 -0
  37. package/lib/qbsTable/utilities/VerticalDropDownMenu.js +190 -0
  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 +9 -1
  45. package/src/index.ts +6 -0
  46. package/src/less/qbs-table.less +58 -4
  47. package/src/qbsTable/CustomTableCell.tsx +28 -8
  48. package/src/qbsTable/QbsTable.tsx +32 -4
  49. package/src/qbsTable/TableCardList.tsx +30 -4
  50. package/src/qbsTable/Toolbar.tsx +99 -29
  51. package/src/qbsTable/commontypes.ts +20 -0
  52. package/src/qbsTable/labels.ts +55 -0
  53. package/src/qbsTable/utilities/ColumShowHide.tsx +170 -84
  54. package/src/qbsTable/utilities/VerticalDropDownMenu.tsx +216 -0
  55. package/src/qbsTable/utilities/columnToggleCoordinator.ts +14 -0
  56. package/src/qbsTable/utilities/icons.tsx +76 -3
  57. 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;
@@ -1,14 +1,16 @@
1
1
  import _extends from "@babel/runtime/helpers/esm/extends";
2
2
  import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
3
3
  var _excluded = ["rowData", "onChange", "checkedKeys", "dataKey", "dataTheme"],
4
- _excluded2 = ["rowData", "dataKey", "expandedRowKeys", "onChange"],
5
- _excluded3 = ["rowData", "renderCell", "toolTip", "hideLink", "dataKey", "onChange", "rowClick", "type", "path", "link"],
6
- _excluded4 = ["rowData", "getToolTip", "dataKey", "onChange", "rowClick", "getIcon", "path", "link"];
4
+ _excluded2 = ["rowData", "handleMenuActions", "dataTheme", "actionProps", "tableBodyRef", "rowIndex", "dropType"],
5
+ _excluded3 = ["rowData", "dataKey", "expandedRowKeys", "onChange"],
6
+ _excluded4 = ["rowData", "renderCell", "toolTip", "hideLink", "dataKey", "onChange", "rowClick", "type", "path", "link"],
7
+ _excluded5 = ["rowData", "getToolTip", "dataKey", "onChange", "rowClick", "getIcon", "path", "link"];
7
8
  import React, { useRef, useState } from 'react';
8
9
  import { Link } from 'react-router-dom';
9
10
  import Cell from '../Cell';
10
11
  import { handleCellFormat } from './utilities/handleFormatCell';
11
12
  import MenuDropDown from './utilities/menuDropDown';
13
+ import VerticalMenuDropdown from './utilities/VerticalDropDownMenu';
12
14
  var CHECKBOX_LINE_HEIGHT = '36px';
13
15
  export var CheckCell = /*#__PURE__*/React.memo(function (_ref) {
14
16
  var rowData = _ref.rowData,
@@ -53,8 +55,21 @@ export var ActionCell = /*#__PURE__*/React.memo(function (_ref2) {
53
55
  dataTheme = _ref2.dataTheme,
54
56
  actionProps = _ref2.actionProps,
55
57
  tableBodyRef = _ref2.tableBodyRef,
56
- rowIndex = _ref2.rowIndex;
57
- return /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement(MenuDropDown, {
58
+ rowIndex = _ref2.rowIndex,
59
+ dropType = _ref2.dropType,
60
+ props = _objectWithoutPropertiesLoose(_ref2, _excluded2);
61
+ return /*#__PURE__*/React.createElement(Cell, _extends({}, props, {
62
+ dataTheme: dataTheme,
63
+ style: {
64
+ padding: 0
65
+ }
66
+ }), dropType === 'vertical' ? /*#__PURE__*/React.createElement(VerticalMenuDropdown, {
67
+ tableBodyRef: tableBodyRef,
68
+ actionDropDown: actionProps,
69
+ rowData: rowData,
70
+ rowIndex: rowIndex,
71
+ handleMenuActions: handleMenuActions
72
+ }) : /*#__PURE__*/React.createElement(MenuDropDown, {
58
73
  tableBodyRef: tableBodyRef,
59
74
  actionDropDown: actionProps,
60
75
  rowData: rowData,
@@ -68,8 +83,10 @@ export var ExpandCell = /*#__PURE__*/React.memo(function (_ref3) {
68
83
  dataKey = _ref3.dataKey,
69
84
  expandedRowKeys = _ref3.expandedRowKeys,
70
85
  onChange = _ref3.onChange,
71
- props = _objectWithoutPropertiesLoose(_ref3, _excluded2);
86
+ props = _objectWithoutPropertiesLoose(_ref3, _excluded3);
72
87
  return /*#__PURE__*/React.createElement(Cell, props, /*#__PURE__*/React.createElement("button", {
88
+ type: "button",
89
+ className: "qbs-table-expand-btn",
73
90
  onClick: function onClick() {
74
91
  onChange(rowData);
75
92
  }
@@ -85,7 +102,7 @@ export var ExpandCell = /*#__PURE__*/React.memo(function (_ref3) {
85
102
  fillRule: "evenodd",
86
103
  clipRule: "evenodd",
87
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",
88
- fill: "#313131"
105
+ fill: "currentColor"
89
106
  })) : /*#__PURE__*/React.createElement("svg", {
90
107
  width: "7",
91
108
  height: "10",
@@ -96,7 +113,7 @@ export var ExpandCell = /*#__PURE__*/React.memo(function (_ref3) {
96
113
  fillRule: "evenodd",
97
114
  clipRule: "evenodd",
98
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",
99
- fill: "#313131"
116
+ fill: "currentColor"
100
117
  }))));
101
118
  });
102
119
  export var CustomTableCell = /*#__PURE__*/React.memo(function (_ref4) {
@@ -111,7 +128,7 @@ export var CustomTableCell = /*#__PURE__*/React.memo(function (_ref4) {
111
128
  type = _ref4.type,
112
129
  path = _ref4.path,
113
130
  link = _ref4.link,
114
- props = _objectWithoutPropertiesLoose(_ref4, _excluded3);
131
+ props = _objectWithoutPropertiesLoose(_ref4, _excluded4);
115
132
  return /*#__PURE__*/React.createElement(Cell, _extends({}, props, {
116
133
  dataKey: dataKey
117
134
  }), link && !path && !(hideLink !== null && hideLink !== void 0 && hideLink(rowData)) ? /*#__PURE__*/React.createElement("a", {
@@ -134,7 +151,7 @@ export var CustomRowStatus = /*#__PURE__*/React.memo(function (_ref5) {
134
151
  getIcon = _ref5.getIcon,
135
152
  path = _ref5.path,
136
153
  link = _ref5.link,
137
- props = _objectWithoutPropertiesLoose(_ref5, _excluded4);
154
+ props = _objectWithoutPropertiesLoose(_ref5, _excluded5);
138
155
  var _useState = useState('bottom-position'),
139
156
  dropdownPosition = _useState[0],
140
157
  setDropdownPosition = _useState[1];
@@ -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';
@@ -106,7 +107,26 @@ var QbsTable = function QbsTable(_ref) {
106
107
  _ref$isCustomTableCar = _ref.isCustomTableCardView,
107
108
  isCustomTableCardView = _ref$isCustomTableCar === void 0 ? false : _ref$isCustomTableCar,
108
109
  handleTableCardView = _ref.handleTableCardView,
109
- handleCustomCardLoader = _ref.handleCustomCardLoader;
110
+ handleCustomCardLoader = _ref.handleCustomCardLoader,
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';
110
130
  var _useState = useState(false),
111
131
  loading = _useState[0],
112
132
  setLoading = _useState[1];
@@ -259,7 +279,15 @@ var QbsTable = function QbsTable(_ref) {
259
279
  searchPlaceholder: searchPlaceholder,
260
280
  setTableViewToggle: setTableViewToggle,
261
281
  tableViewToggle: tableViewToggle,
262
- 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
263
291
  };
264
292
  var themeToggle = useMemo(function () {
265
293
  return document.getElementById('themeToggle');
@@ -559,6 +587,7 @@ var QbsTable = function QbsTable(_ref) {
559
587
  height: autoHeight ? undefined : height,
560
588
  key: tableKey,
561
589
  tableKey: tableKey,
590
+ rtl: rtl,
562
591
  data: data,
563
592
  tableBodyRef: tableBodyRef,
564
593
  dataTheme: dataTheme,
@@ -583,6 +612,7 @@ var QbsTable = function QbsTable(_ref) {
583
612
  columns: columns,
584
613
  minHeight: minHeight,
585
614
  headerHeight: headerHeight,
615
+ rowHeight: rowHeight,
586
616
  rowExpandedHeight: rowExpandedHeight,
587
617
  loading: isLoading != null ? isLoading : loading,
588
618
  showHeader: true,
@@ -667,7 +697,7 @@ var QbsTable = function QbsTable(_ref) {
667
697
  getToolTip: customRowStatus.getToolTip
668
698
  })), columnsRendered, !actionProps || (actionProps === null || actionProps === void 0 ? void 0 : actionProps.length) === 0 && columnToggle && /*#__PURE__*/React.createElement(Column, {
669
699
  width: 40,
670
- fixed: "right"
700
+ fixed: pinSide
671
701
  }, /*#__PURE__*/React.createElement(HeaderCell, {
672
702
  verticalAlign: findGrouped() ? 'middle' : undefined,
673
703
  className: " " + classes.headerlClass,
@@ -681,10 +711,12 @@ var QbsTable = function QbsTable(_ref) {
681
711
  tableHeight: height,
682
712
  setIsOpen: setIsOpen,
683
713
  handleResetColumns: handleResetColumns,
684
- handleColumnToggle: handleColumnToggle
714
+ handleColumnToggle: handleColumnToggle,
715
+ labels: labels,
716
+ rtl: rtl
685
717
  })), /*#__PURE__*/React.createElement(Cell, null)), actionProps && (actionProps === null || actionProps === void 0 ? void 0 : actionProps.length) > 0 && /*#__PURE__*/React.createElement(Column, {
686
718
  width: 40,
687
- fixed: "right"
719
+ fixed: pinSide
688
720
  }, /*#__PURE__*/React.createElement(HeaderCell, {
689
721
  verticalAlign: findGrouped() ? 'middle' : undefined,
690
722
  className: " " + classes.headerlClass,
@@ -698,13 +730,16 @@ var QbsTable = function QbsTable(_ref) {
698
730
  isOpen: isOpen,
699
731
  setIsOpen: setIsOpen,
700
732
  handleResetColumns: handleResetColumns,
701
- handleColumnToggle: handleColumnToggle
733
+ handleColumnToggle: handleColumnToggle,
734
+ labels: labels,
735
+ rtl: rtl
702
736
  })), /*#__PURE__*/React.createElement(ActionCell, {
703
737
  tableBodyRef: tableBodyRef,
704
738
  actionProps: actionProps,
705
739
  className: classes.cellClass + " " + classes.actionCellClass,
706
740
  handleMenuActions: handleMenuActions,
707
- dataTheme: dataTheme
741
+ dataTheme: dataTheme,
742
+ dropType: dropType
708
743
  }))) : /*#__PURE__*/React.createElement("div", {
709
744
  className: isCustomTableCardView && ((data === null || data === void 0 ? void 0 : data.length) === 0 || !data) && !isLoading ? 'qbs-card-empty-wrapper' : isCustomTableCardView ? 'qbs-card-wrapper' : ' p-2',
710
745
  style: {
@@ -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';
@@ -91,7 +92,25 @@ var QbsTable = function QbsTable(_ref) {
91
92
  _renderEmpty = _ref.renderEmpty,
92
93
  autoHeight = _ref.autoHeight,
93
94
  emptySubTitle = _ref.emptySubTitle,
94
- emptyTitle = _ref.emptyTitle;
95
+ emptyTitle = _ref.emptyTitle,
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';
95
114
  var _useState = useState(false),
96
115
  loading = _useState[0],
97
116
  setLoading = _useState[1];
@@ -237,7 +256,15 @@ var QbsTable = function QbsTable(_ref) {
237
256
  onSelect: handleClear,
238
257
  handleColumnToggle: handleColumnToggle,
239
258
  dataLength: data === null || data === void 0 ? void 0 : data.length,
240
- 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
241
268
  };
242
269
  var themeToggle = useMemo(function () {
243
270
  return document.getElementById('themeToggle');
@@ -418,6 +445,7 @@ var QbsTable = function QbsTable(_ref) {
418
445
  height: autoHeight ? undefined : height,
419
446
  key: tableKey,
420
447
  tableKey: tableKey,
448
+ rtl: rtl,
421
449
  data: data,
422
450
  tableBodyRef: tableBodyRef,
423
451
  dataTheme: dataTheme,
@@ -526,7 +554,7 @@ var QbsTable = function QbsTable(_ref) {
526
554
  getToolTip: customRowStatus.getToolTip
527
555
  })), columnsRendered, !actionProps || (actionProps === null || actionProps === void 0 ? void 0 : actionProps.length) === 0 && columnToggle && /*#__PURE__*/React.createElement(Column, {
528
556
  width: 40,
529
- fixed: "right"
557
+ fixed: pinSide
530
558
  }, /*#__PURE__*/React.createElement(HeaderCell, {
531
559
  verticalAlign: findGrouped() ? 'middle' : undefined,
532
560
  className: " " + classes.headerlClass,
@@ -540,10 +568,12 @@ var QbsTable = function QbsTable(_ref) {
540
568
  tableHeight: height,
541
569
  setIsOpen: setIsOpen,
542
570
  handleResetColumns: handleResetColumns,
543
- handleColumnToggle: handleColumnToggle
571
+ handleColumnToggle: handleColumnToggle,
572
+ labels: labels,
573
+ rtl: rtl
544
574
  })), /*#__PURE__*/React.createElement(Cell, null)), actionProps && (actionProps === null || actionProps === void 0 ? void 0 : actionProps.length) > 0 && /*#__PURE__*/React.createElement(Column, {
545
575
  width: 40,
546
- fixed: "right"
576
+ fixed: pinSide
547
577
  }, /*#__PURE__*/React.createElement(HeaderCell, {
548
578
  verticalAlign: findGrouped() ? 'middle' : undefined,
549
579
  className: " " + classes.headerlClass,
@@ -557,13 +587,16 @@ var QbsTable = function QbsTable(_ref) {
557
587
  isOpen: isOpen,
558
588
  setIsOpen: setIsOpen,
559
589
  handleResetColumns: handleResetColumns,
560
- handleColumnToggle: handleColumnToggle
590
+ handleColumnToggle: handleColumnToggle,
591
+ labels: labels,
592
+ rtl: rtl
561
593
  })), /*#__PURE__*/React.createElement(ActionCell, {
562
594
  tableBodyRef: tableBodyRef,
563
595
  actionProps: actionProps,
564
596
  className: classes.cellClass + " " + classes.actionCellClass,
565
597
  handleMenuActions: handleMenuActions,
566
- dataTheme: dataTheme
598
+ dataTheme: dataTheme,
599
+ dropType: dropType
567
600
  }))), /*#__PURE__*/React.createElement("div", null, pagination && (data === null || data === void 0 ? void 0 : data.length) > 0 && /*#__PURE__*/React.createElement(Pagination, {
568
601
  paginationProps: paginationProps
569
602
  }))));
@@ -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;
@@ -82,6 +83,9 @@ export interface QbsTableProps {
82
83
  expandedRowKeys?: readonly number[];
83
84
  setExpandedRowKeys?: (value: readonly number[]) => void;
84
85
  handleMenuActions?: (actions: ActionProps, rowData: any) => void;
86
+ dropType?: 'vertical' | string;
87
+ labels?: QbsTableLabels;
88
+ rtl?: boolean;
85
89
  handleRowExpanded?: (rowData: any) => React.ReactNode;
86
90
  shouldUpdateScroll?: boolean;
87
91
  rowExpand?: boolean;
@@ -127,6 +131,13 @@ export interface QbsTableProps {
127
131
  handleTableCardView?: (data: any) => React.ReactNode;
128
132
  isCustomTableCardView?: boolean;
129
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;
130
141
  }
131
142
  export interface QbsTableToolbarProps {
132
143
  title?: string;
@@ -155,6 +166,14 @@ export interface QbsTableToolbarProps {
155
166
  enableTableToggle?: boolean;
156
167
  tableViewToggle?: boolean;
157
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;
158
177
  selectedRowActions?: {
159
178
  actionTitle?: string;
160
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;