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.
- package/dist/css/qbs-react-grid.css +1 -1
- package/dist/css/qbs-react-grid.min.css +1 -1
- package/dist/css/qbs-react-grid.min.css.map +1 -1
- package/es/index.d.ts +2 -0
- package/es/index.js +2 -1
- package/es/less/qbs-table.less +89 -6
- package/es/qbsTable/CustomTableCell.js +4 -2
- package/es/qbsTable/QbsTable.js +52 -6
- package/es/qbsTable/TableCardList.js +39 -5
- package/es/qbsTable/Toolbar.js +96 -21
- package/es/qbsTable/commontypes.d.ts +18 -0
- package/es/qbsTable/labels.d.ts +25 -0
- package/es/qbsTable/labels.js +32 -0
- package/es/qbsTable/utilities/ColumShowHide.d.ts +3 -0
- package/es/qbsTable/utilities/ColumShowHide.js +63 -35
- package/es/qbsTable/utilities/ToolTip.js +2 -1
- package/es/qbsTable/utilities/VerticalDropDownMenu.js +28 -7
- package/es/qbsTable/utilities/columnToggleCoordinator.d.ts +5 -0
- package/es/qbsTable/utilities/columnToggleCoordinator.js +9 -0
- package/es/qbsTable/utilities/icons.d.ts +3 -0
- package/es/qbsTable/utilities/icons.js +67 -3
- package/es/qbsTable/utilities/verticalMenuCoordinator.d.ts +5 -0
- package/es/qbsTable/utilities/verticalMenuCoordinator.js +9 -0
- package/lib/index.d.ts +2 -0
- package/lib/index.js +6 -2
- package/lib/less/qbs-table.less +89 -6
- package/lib/qbsTable/CustomTableCell.js +4 -2
- package/lib/qbsTable/QbsTable.js +52 -6
- package/lib/qbsTable/TableCardList.js +39 -5
- package/lib/qbsTable/Toolbar.js +94 -19
- package/lib/qbsTable/commontypes.d.ts +18 -0
- package/lib/qbsTable/labels.d.ts +25 -0
- package/lib/qbsTable/labels.js +40 -0
- package/lib/qbsTable/utilities/ColumShowHide.d.ts +3 -0
- package/lib/qbsTable/utilities/ColumShowHide.js +62 -34
- package/lib/qbsTable/utilities/ToolTip.js +2 -1
- package/lib/qbsTable/utilities/VerticalDropDownMenu.js +27 -6
- package/lib/qbsTable/utilities/columnToggleCoordinator.d.ts +5 -0
- package/lib/qbsTable/utilities/columnToggleCoordinator.js +15 -0
- package/lib/qbsTable/utilities/icons.d.ts +3 -0
- package/lib/qbsTable/utilities/icons.js +72 -5
- package/lib/qbsTable/utilities/verticalMenuCoordinator.d.ts +5 -0
- package/lib/qbsTable/utilities/verticalMenuCoordinator.js +15 -0
- package/package.json +1 -1
- package/src/index.ts +6 -0
- package/src/less/qbs-table.less +89 -6
- package/src/qbsTable/CustomTableCell.tsx +4 -2
- package/src/qbsTable/QbsTable.tsx +41 -4
- package/src/qbsTable/TableCardList.tsx +30 -3
- package/src/qbsTable/Toolbar.tsx +105 -26
- package/src/qbsTable/commontypes.ts +19 -0
- package/src/qbsTable/labels.ts +55 -0
- package/src/qbsTable/utilities/ColumShowHide.tsx +114 -77
- package/src/qbsTable/utilities/ToolTip.tsx +1 -1
- package/src/qbsTable/utilities/VerticalDropDownMenu.tsx +36 -5
- package/src/qbsTable/utilities/columnToggleCoordinator.ts +14 -0
- package/src/qbsTable/utilities/icons.tsx +76 -3
- package/src/qbsTable/utilities/verticalMenuCoordinator.ts +14 -0
package/es/less/qbs-table.less
CHANGED
|
@@ -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:
|
|
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:
|
|
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:
|
|
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: "
|
|
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: "
|
|
116
|
+
fill: "currentColor"
|
|
115
117
|
}))));
|
|
116
118
|
});
|
|
117
119
|
export var CustomTableCell = /*#__PURE__*/React.memo(function (_ref4) {
|
package/es/qbsTable/QbsTable.js
CHANGED
|
@@ -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:
|
|
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:
|
|
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,
|
package/es/qbsTable/Toolbar.js
CHANGED
|
@@ -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: "
|
|
101
|
-
},
|
|
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:
|
|
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(
|
|
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
|
-
},
|
|
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
|
-
},
|
|
141
|
-
return /*#__PURE__*/React.createElement(React.Fragment,
|
|
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;
|