qbs-react-grid 2.2.9 → 2.2.12
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/less/qbs-table.less +35 -6
- package/es/qbsTable/QbsTable.js +22 -7
- package/es/qbsTable/TableCardList.js +11 -6
- package/es/qbsTable/Toolbar.js +32 -21
- package/es/qbsTable/commontypes.d.ts +1 -0
- package/es/qbsTable/utilities/ColumShowHide.js +22 -73
- package/es/qbsTable/utilities/ToolTip.js +2 -1
- package/es/qbsTable/utilities/VerticalDropDownMenu.js +6 -2
- package/lib/less/qbs-table.less +35 -6
- package/lib/qbsTable/QbsTable.js +22 -7
- package/lib/qbsTable/TableCardList.js +11 -6
- package/lib/qbsTable/Toolbar.js +32 -21
- package/lib/qbsTable/commontypes.d.ts +1 -0
- package/lib/qbsTable/utilities/ColumShowHide.js +22 -74
- package/lib/qbsTable/utilities/ToolTip.js +2 -1
- package/lib/qbsTable/utilities/VerticalDropDownMenu.js +6 -2
- package/package.json +1 -1
- package/src/less/qbs-table.less +35 -6
- package/src/qbsTable/QbsTable.tsx +18 -6
- package/src/qbsTable/TableCardList.tsx +9 -5
- package/src/qbsTable/Toolbar.tsx +36 -27
- package/src/qbsTable/commontypes.ts +1 -0
- package/src/qbsTable/utilities/ColumShowHide.tsx +69 -118
- package/src/qbsTable/utilities/ToolTip.tsx +1 -1
- package/src/qbsTable/utilities/VerticalDropDownMenu.tsx +10 -2
package/es/qbsTable/QbsTable.js
CHANGED
|
@@ -122,11 +122,16 @@ var QbsTable = function QbsTable(_ref) {
|
|
|
122
122
|
setRowViewToggle = _ref.setRowViewToggle,
|
|
123
123
|
_ref$isFullScreen = _ref.isFullScreen,
|
|
124
124
|
isFullScreen = _ref$isFullScreen === void 0 ? false : _ref$isFullScreen,
|
|
125
|
-
rowHeight = _ref.rowHeight
|
|
125
|
+
rowHeight = _ref.rowHeight,
|
|
126
|
+
_ref$showHeader = _ref.showHeader,
|
|
127
|
+
showHeader = _ref$showHeader === void 0 ? true : _ref$showHeader;
|
|
126
128
|
var labels = useMemo(function () {
|
|
127
129
|
return mergeQbsTableLabels(labelsProp);
|
|
128
130
|
}, [labelsProp]);
|
|
129
|
-
var
|
|
131
|
+
var effectiveWordWrap = useMemo(function () {
|
|
132
|
+
if (!rowViewToggle) return wordWrap;
|
|
133
|
+
return defaultRowView ? false : 'break-word';
|
|
134
|
+
}, [rowViewToggle, defaultRowView, wordWrap]);
|
|
130
135
|
var _useState = useState(false),
|
|
131
136
|
loading = _useState[0],
|
|
132
137
|
setLoading = _useState[1];
|
|
@@ -149,6 +154,16 @@ var QbsTable = function QbsTable(_ref) {
|
|
|
149
154
|
setTableViewToggle = _useState5[1];
|
|
150
155
|
var isMobile = useResponsiveStore();
|
|
151
156
|
var tableBodyRef = useRef(null);
|
|
157
|
+
var _useState6 = useState(0),
|
|
158
|
+
rowViewRefreshKey = _useState6[0],
|
|
159
|
+
setRowViewRefreshKey = _useState6[1];
|
|
160
|
+
useEffect(function () {
|
|
161
|
+
if (rowViewToggle) {
|
|
162
|
+
setRowViewRefreshKey(function (key) {
|
|
163
|
+
return key + 1;
|
|
164
|
+
});
|
|
165
|
+
}
|
|
166
|
+
}, [defaultRowView, rowViewToggle]);
|
|
152
167
|
var handleSortColumn = useCallback(function (sortColumn, sortType) {
|
|
153
168
|
setLoading(true);
|
|
154
169
|
setTimeout(function () {
|
|
@@ -585,13 +600,13 @@ var QbsTable = function QbsTable(_ref) {
|
|
|
585
600
|
className: "qbs-table-border-wrap"
|
|
586
601
|
}, tableViewToggle ? /*#__PURE__*/React.createElement(Table, {
|
|
587
602
|
height: autoHeight ? undefined : height,
|
|
588
|
-
key: tableKey,
|
|
603
|
+
key: tableKey + "-" + rowViewRefreshKey,
|
|
589
604
|
tableKey: tableKey,
|
|
590
605
|
rtl: rtl,
|
|
591
606
|
data: data,
|
|
592
607
|
tableBodyRef: tableBodyRef,
|
|
593
608
|
dataTheme: dataTheme,
|
|
594
|
-
wordWrap:
|
|
609
|
+
wordWrap: effectiveWordWrap,
|
|
595
610
|
autoHeight: autoHeight,
|
|
596
611
|
sortColumn: sortColumn,
|
|
597
612
|
style: {
|
|
@@ -615,7 +630,7 @@ var QbsTable = function QbsTable(_ref) {
|
|
|
615
630
|
rowHeight: rowHeight,
|
|
616
631
|
rowExpandedHeight: rowExpandedHeight,
|
|
617
632
|
loading: isLoading != null ? isLoading : loading,
|
|
618
|
-
showHeader:
|
|
633
|
+
showHeader: showHeader,
|
|
619
634
|
defaultChecked: true,
|
|
620
635
|
expandedRowKeys: expandedRowKeys,
|
|
621
636
|
onExpandChange: onExpandChange,
|
|
@@ -697,7 +712,7 @@ var QbsTable = function QbsTable(_ref) {
|
|
|
697
712
|
getToolTip: customRowStatus.getToolTip
|
|
698
713
|
})), columnsRendered, !actionProps || (actionProps === null || actionProps === void 0 ? void 0 : actionProps.length) === 0 && columnToggle && /*#__PURE__*/React.createElement(Column, {
|
|
699
714
|
width: 40,
|
|
700
|
-
fixed:
|
|
715
|
+
fixed: "right"
|
|
701
716
|
}, /*#__PURE__*/React.createElement(HeaderCell, {
|
|
702
717
|
verticalAlign: findGrouped() ? 'middle' : undefined,
|
|
703
718
|
className: " " + classes.headerlClass,
|
|
@@ -716,7 +731,7 @@ var QbsTable = function QbsTable(_ref) {
|
|
|
716
731
|
rtl: rtl
|
|
717
732
|
})), /*#__PURE__*/React.createElement(Cell, null)), actionProps && (actionProps === null || actionProps === void 0 ? void 0 : actionProps.length) > 0 && /*#__PURE__*/React.createElement(Column, {
|
|
718
733
|
width: 40,
|
|
719
|
-
fixed:
|
|
734
|
+
fixed: "right"
|
|
720
735
|
}, /*#__PURE__*/React.createElement(HeaderCell, {
|
|
721
736
|
verticalAlign: findGrouped() ? 'middle' : undefined,
|
|
722
737
|
className: " " + classes.headerlClass,
|
|
@@ -106,11 +106,16 @@ var QbsTable = function QbsTable(_ref) {
|
|
|
106
106
|
setTableFullView = _ref.setTableFullView,
|
|
107
107
|
setRowViewToggle = _ref.setRowViewToggle,
|
|
108
108
|
_ref$isFullScreen = _ref.isFullScreen,
|
|
109
|
-
isFullScreen = _ref$isFullScreen === void 0 ? false : _ref$isFullScreen
|
|
109
|
+
isFullScreen = _ref$isFullScreen === void 0 ? false : _ref$isFullScreen,
|
|
110
|
+
_ref$showHeader = _ref.showHeader,
|
|
111
|
+
showHeader = _ref$showHeader === void 0 ? true : _ref$showHeader;
|
|
110
112
|
var labels = useMemo(function () {
|
|
111
113
|
return mergeQbsTableLabels(labelsProp);
|
|
112
114
|
}, [labelsProp]);
|
|
113
|
-
var
|
|
115
|
+
var effectiveWordWrap = useMemo(function () {
|
|
116
|
+
if (!rowViewToggle) return wordWrap;
|
|
117
|
+
return defaultRowView ? false : 'break-word';
|
|
118
|
+
}, [rowViewToggle, defaultRowView, wordWrap]);
|
|
114
119
|
var _useState = useState(false),
|
|
115
120
|
loading = _useState[0],
|
|
116
121
|
setLoading = _useState[1];
|
|
@@ -449,7 +454,7 @@ var QbsTable = function QbsTable(_ref) {
|
|
|
449
454
|
data: data,
|
|
450
455
|
tableBodyRef: tableBodyRef,
|
|
451
456
|
dataTheme: dataTheme,
|
|
452
|
-
wordWrap:
|
|
457
|
+
wordWrap: effectiveWordWrap,
|
|
453
458
|
autoHeight: autoHeight,
|
|
454
459
|
sortColumn: sortColumn,
|
|
455
460
|
style: {
|
|
@@ -472,7 +477,7 @@ var QbsTable = function QbsTable(_ref) {
|
|
|
472
477
|
headerHeight: headerHeight,
|
|
473
478
|
rowExpandedHeight: rowExpandedHeight,
|
|
474
479
|
loading: isLoading != null ? isLoading : loading,
|
|
475
|
-
showHeader:
|
|
480
|
+
showHeader: showHeader,
|
|
476
481
|
defaultChecked: true,
|
|
477
482
|
expandedRowKeys: expandedRowKeys,
|
|
478
483
|
onExpandChange: onExpandChange,
|
|
@@ -554,7 +559,7 @@ var QbsTable = function QbsTable(_ref) {
|
|
|
554
559
|
getToolTip: customRowStatus.getToolTip
|
|
555
560
|
})), columnsRendered, !actionProps || (actionProps === null || actionProps === void 0 ? void 0 : actionProps.length) === 0 && columnToggle && /*#__PURE__*/React.createElement(Column, {
|
|
556
561
|
width: 40,
|
|
557
|
-
fixed:
|
|
562
|
+
fixed: "right"
|
|
558
563
|
}, /*#__PURE__*/React.createElement(HeaderCell, {
|
|
559
564
|
verticalAlign: findGrouped() ? 'middle' : undefined,
|
|
560
565
|
className: " " + classes.headerlClass,
|
|
@@ -573,7 +578,7 @@ var QbsTable = function QbsTable(_ref) {
|
|
|
573
578
|
rtl: rtl
|
|
574
579
|
})), /*#__PURE__*/React.createElement(Cell, null)), actionProps && (actionProps === null || actionProps === void 0 ? void 0 : actionProps.length) > 0 && /*#__PURE__*/React.createElement(Column, {
|
|
575
580
|
width: 40,
|
|
576
|
-
fixed:
|
|
581
|
+
fixed: "right"
|
|
577
582
|
}, /*#__PURE__*/React.createElement(HeaderCell, {
|
|
578
583
|
verticalAlign: findGrouped() ? 'middle' : undefined,
|
|
579
584
|
className: " " + classes.headerlClass,
|
package/es/qbsTable/Toolbar.js
CHANGED
|
@@ -39,9 +39,7 @@ var ToolBar = function ToolBar(_ref) {
|
|
|
39
39
|
setRowViewToggle = _ref.setRowViewToggle,
|
|
40
40
|
_ref$isFullScreen = _ref.isFullScreen,
|
|
41
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;
|
|
42
|
+
labelsProp = _ref.labels;
|
|
45
43
|
var labels = useMemo(function () {
|
|
46
44
|
return mergeQbsTableLabels(labelsProp);
|
|
47
45
|
}, [labelsProp]);
|
|
@@ -81,8 +79,7 @@ var ToolBar = function ToolBar(_ref) {
|
|
|
81
79
|
};
|
|
82
80
|
return /*#__PURE__*/React.createElement("div", {
|
|
83
81
|
className: "qbs-table-toolbar-container",
|
|
84
|
-
ref: toolbarRef
|
|
85
|
-
dir: rtl ? 'rtl' : 'ltr'
|
|
82
|
+
ref: toolbarRef
|
|
86
83
|
}, /*#__PURE__*/React.createElement("div", {
|
|
87
84
|
className: "qbs-table-toolbar " + (className != null ? className : '')
|
|
88
85
|
}, /*#__PURE__*/React.createElement("div", {
|
|
@@ -117,28 +114,40 @@ var ToolBar = function ToolBar(_ref) {
|
|
|
117
114
|
}))), tableHeaderActions, /*#__PURE__*/React.createElement("div", {
|
|
118
115
|
className: "pr-1 cursor-pointer relative table_custom_ctions"
|
|
119
116
|
}, (rowViewToggle || isFullScreen) && /*#__PURE__*/React.createElement("div", {
|
|
120
|
-
className: "flex gap-2 qbs-row-switch-
|
|
117
|
+
className: "flex gap-2 qbs-row-switch-cntainer"
|
|
121
118
|
}, rowViewToggle && /*#__PURE__*/React.createElement("div", {
|
|
122
119
|
className: "flex gap-2 table_cell_style qbs-table-top-icons"
|
|
123
120
|
}, /*#__PURE__*/React.createElement(TooltipComponent, {
|
|
124
121
|
tableBodyRef: toolbarRef,
|
|
125
122
|
title: (_labels$switchToDefau = labels.switchToDefaultView) != null ? _labels$switchToDefau : ''
|
|
126
|
-
}, /*#__PURE__*/React.createElement("
|
|
127
|
-
|
|
128
|
-
|
|
123
|
+
}, /*#__PURE__*/React.createElement("div", {
|
|
124
|
+
role: "button",
|
|
125
|
+
tabIndex: 0,
|
|
126
|
+
title: labels.switchToDefaultView,
|
|
129
127
|
onClick: function onClick() {
|
|
130
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
|
+
}
|
|
131
134
|
}
|
|
132
135
|
}, /*#__PURE__*/React.createElement(DefaultView, {
|
|
133
136
|
className: "" + (defaultRowView ? 'active' : '')
|
|
134
137
|
}))), /*#__PURE__*/React.createElement(TooltipComponent, {
|
|
135
138
|
tableBodyRef: toolbarRef,
|
|
136
139
|
title: (_labels$switchToRelax = labels.switchToRelaxedView) != null ? _labels$switchToRelax : ''
|
|
137
|
-
}, /*#__PURE__*/React.createElement("
|
|
138
|
-
|
|
139
|
-
|
|
140
|
+
}, /*#__PURE__*/React.createElement("div", {
|
|
141
|
+
role: "button",
|
|
142
|
+
tabIndex: 0,
|
|
143
|
+
title: labels.switchToRelaxedView,
|
|
140
144
|
onClick: function onClick() {
|
|
141
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
|
+
}
|
|
142
151
|
}
|
|
143
152
|
}, /*#__PURE__*/React.createElement(ContentView, {
|
|
144
153
|
className: "" + (!defaultRowView ? 'active' : '')
|
|
@@ -147,11 +156,17 @@ var ToolBar = function ToolBar(_ref) {
|
|
|
147
156
|
}, /*#__PURE__*/React.createElement(TooltipComponent, {
|
|
148
157
|
tableBodyRef: toolbarRef,
|
|
149
158
|
title: (_labels$switchToFullS = labels.switchToFullScreen) != null ? _labels$switchToFullS : ''
|
|
150
|
-
}, /*#__PURE__*/React.createElement("
|
|
151
|
-
|
|
152
|
-
|
|
159
|
+
}, /*#__PURE__*/React.createElement("div", {
|
|
160
|
+
role: "button",
|
|
161
|
+
tabIndex: 0,
|
|
162
|
+
title: labels.switchToFullScreen,
|
|
153
163
|
onClick: function onClick() {
|
|
154
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
|
+
}
|
|
155
170
|
}
|
|
156
171
|
}, /*#__PURE__*/React.createElement(ExpandIcon, {
|
|
157
172
|
className: "" + (fullWidthView ? 'active' : '')
|
|
@@ -160,9 +175,7 @@ var ToolBar = function ToolBar(_ref) {
|
|
|
160
175
|
}, /*#__PURE__*/React.createElement(TooltipComponent, {
|
|
161
176
|
tableBodyRef: toolbarRef,
|
|
162
177
|
title: (_labels$switchToTable = labels.switchToTableView) != null ? _labels$switchToTable : ''
|
|
163
|
-
}, /*#__PURE__*/React.createElement("
|
|
164
|
-
type: "button",
|
|
165
|
-
className: "qbs-table-view-btn",
|
|
178
|
+
}, /*#__PURE__*/React.createElement("div", {
|
|
166
179
|
onClick: function onClick() {
|
|
167
180
|
return setTableViewToggle === null || setTableViewToggle === void 0 ? void 0 : setTableViewToggle(true);
|
|
168
181
|
}
|
|
@@ -173,9 +186,7 @@ var ToolBar = function ToolBar(_ref) {
|
|
|
173
186
|
}), /*#__PURE__*/React.createElement(TooltipComponent, {
|
|
174
187
|
tableBodyRef: toolbarRef,
|
|
175
188
|
title: (_labels$switchToCardV = labels.switchToCardView) != null ? _labels$switchToCardV : ''
|
|
176
|
-
}, /*#__PURE__*/React.createElement("
|
|
177
|
-
type: "button",
|
|
178
|
-
className: "qbs-table-view-btn",
|
|
189
|
+
}, /*#__PURE__*/React.createElement("div", {
|
|
179
190
|
onClick: function onClick() {
|
|
180
191
|
return setTableViewToggle === null || setTableViewToggle === void 0 ? void 0 : setTableViewToggle(false);
|
|
181
192
|
}
|
|
@@ -1,10 +1,8 @@
|
|
|
1
1
|
import React, { useCallback, useEffect, useId, useRef, useState } from 'react';
|
|
2
|
-
import ReactDOM from 'react-dom';
|
|
3
2
|
import { mergeQbsTableLabels } from '../labels';
|
|
4
3
|
import { closeOtherColumnToggles, COLUMN_TOGGLE_CLOSE_OTHERS } from './columnToggleCoordinator';
|
|
5
4
|
import { SettingsIcon } from './icons';
|
|
6
5
|
var ColumnToggle = function ColumnToggle(_ref) {
|
|
7
|
-
var _document$getElementB;
|
|
8
6
|
var columns = _ref.columns,
|
|
9
7
|
onToggle = _ref.onToggle,
|
|
10
8
|
onReorder = _ref.onReorder,
|
|
@@ -23,39 +21,9 @@ var ColumnToggle = function ColumnToggle(_ref) {
|
|
|
23
21
|
draggedItem = _useState[0],
|
|
24
22
|
setDraggedItem = _useState[1];
|
|
25
23
|
var popupRef = useRef(null);
|
|
26
|
-
var settingsBtnRef = useRef(null);
|
|
27
24
|
var _useState2 = useState(),
|
|
28
25
|
dragOverPosition = _useState2[0],
|
|
29
26
|
setDragOverPosition = _useState2[1];
|
|
30
|
-
var _useState3 = useState({
|
|
31
|
-
top: 0,
|
|
32
|
-
left: 0
|
|
33
|
-
}),
|
|
34
|
-
position = _useState3[0],
|
|
35
|
-
setPosition = _useState3[1];
|
|
36
|
-
var updatePopupPosition = useCallback(function () {
|
|
37
|
-
var _popupRef$current, _popupRef$current2;
|
|
38
|
-
if (!settingsBtnRef.current) return;
|
|
39
|
-
var rect = settingsBtnRef.current.getBoundingClientRect();
|
|
40
|
-
var viewportPadding = 8;
|
|
41
|
-
var popupWidth = ((_popupRef$current = popupRef.current) === null || _popupRef$current === void 0 ? void 0 : _popupRef$current.offsetWidth) || 272;
|
|
42
|
-
var popupHeight = ((_popupRef$current2 = popupRef.current) === null || _popupRef$current2 === void 0 ? void 0 : _popupRef$current2.offsetHeight) || 320;
|
|
43
|
-
var left = rtl ? rect.left : rect.right - popupWidth;
|
|
44
|
-
if (left + popupWidth > window.innerWidth - viewportPadding) {
|
|
45
|
-
left = Math.max(viewportPadding, window.innerWidth - popupWidth - viewportPadding);
|
|
46
|
-
}
|
|
47
|
-
if (left < viewportPadding) {
|
|
48
|
-
left = viewportPadding;
|
|
49
|
-
}
|
|
50
|
-
var top = rect.bottom + 4;
|
|
51
|
-
if (top + popupHeight > window.innerHeight - viewportPadding) {
|
|
52
|
-
top = Math.max(viewportPadding, rect.top - popupHeight - 4);
|
|
53
|
-
}
|
|
54
|
-
setPosition({
|
|
55
|
-
top: top,
|
|
56
|
-
left: left
|
|
57
|
-
});
|
|
58
|
-
}, [rtl]);
|
|
59
27
|
useEffect(function () {
|
|
60
28
|
var handleCloseOthers = function handleCloseOthers(event) {
|
|
61
29
|
var detail = event.detail;
|
|
@@ -68,16 +36,6 @@ var ColumnToggle = function ColumnToggle(_ref) {
|
|
|
68
36
|
return document.removeEventListener(COLUMN_TOGGLE_CLOSE_OTHERS, handleCloseOthers);
|
|
69
37
|
};
|
|
70
38
|
}, [setIsOpen, toggleId]);
|
|
71
|
-
useEffect(function () {
|
|
72
|
-
if (!isOpen) return;
|
|
73
|
-
updatePopupPosition();
|
|
74
|
-
var frame = requestAnimationFrame(function () {
|
|
75
|
-
return updatePopupPosition();
|
|
76
|
-
});
|
|
77
|
-
return function () {
|
|
78
|
-
return cancelAnimationFrame(frame);
|
|
79
|
-
};
|
|
80
|
-
}, [isOpen, updatePopupPosition]);
|
|
81
39
|
var handleToggle = useCallback(function (columnName) {
|
|
82
40
|
onToggle(columnName);
|
|
83
41
|
}, [onToggle]);
|
|
@@ -102,9 +60,9 @@ var ColumnToggle = function ColumnToggle(_ref) {
|
|
|
102
60
|
setDraggedItem(null);
|
|
103
61
|
}, [columns, draggedItem, onReorder]);
|
|
104
62
|
var handleClickOutside = useCallback(function (event) {
|
|
105
|
-
var _popupRef$
|
|
63
|
+
var _popupRef$current;
|
|
106
64
|
var target = event.target;
|
|
107
|
-
if ((_popupRef$
|
|
65
|
+
if ((_popupRef$current = popupRef.current) !== null && _popupRef$current !== void 0 && _popupRef$current.contains(target)) {
|
|
108
66
|
return;
|
|
109
67
|
}
|
|
110
68
|
setIsOpen(false);
|
|
@@ -132,9 +90,9 @@ var ColumnToggle = function ColumnToggle(_ref) {
|
|
|
132
90
|
return handleToggle(column.title);
|
|
133
91
|
},
|
|
134
92
|
className: "qbs-table-checkbox-input",
|
|
135
|
-
id: column.title
|
|
93
|
+
id: toggleId + "-" + column.title
|
|
136
94
|
}), /*#__PURE__*/React.createElement("label", {
|
|
137
|
-
htmlFor: column.title
|
|
95
|
+
htmlFor: toggleId + "-" + column.title
|
|
138
96
|
}, /*#__PURE__*/React.createElement("svg", {
|
|
139
97
|
width: "8",
|
|
140
98
|
height: "6",
|
|
@@ -174,9 +132,9 @@ var ColumnToggle = function ColumnToggle(_ref) {
|
|
|
174
132
|
return handleToggle(column.title);
|
|
175
133
|
},
|
|
176
134
|
className: "qbs-table-checkbox-input",
|
|
177
|
-
id: column.title
|
|
135
|
+
id: toggleId + "-" + column.title
|
|
178
136
|
}), /*#__PURE__*/React.createElement("label", {
|
|
179
|
-
htmlFor: column.title
|
|
137
|
+
htmlFor: toggleId + "-" + column.title
|
|
180
138
|
}, /*#__PURE__*/React.createElement("svg", {
|
|
181
139
|
width: "8",
|
|
182
140
|
height: "6",
|
|
@@ -213,15 +171,23 @@ var ColumnToggle = function ColumnToggle(_ref) {
|
|
|
213
171
|
setIsOpen(false);
|
|
214
172
|
handleColumnToggle === null || handleColumnToggle === void 0 ? void 0 : handleColumnToggle(columns);
|
|
215
173
|
};
|
|
216
|
-
|
|
217
|
-
|
|
174
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
175
|
+
className: "qbs-table-settings-wrapper"
|
|
176
|
+
}, /*#__PURE__*/React.createElement("button", {
|
|
177
|
+
type: "button",
|
|
178
|
+
onClick: function onClick(event) {
|
|
179
|
+
event.stopPropagation();
|
|
180
|
+
if (isOpen) {
|
|
181
|
+
setIsOpen(false);
|
|
182
|
+
return;
|
|
183
|
+
}
|
|
184
|
+
closeOtherColumnToggles(toggleId);
|
|
185
|
+
setIsOpen(true);
|
|
186
|
+
}
|
|
187
|
+
}, /*#__PURE__*/React.createElement(SettingsIcon, null)), isOpen && /*#__PURE__*/React.createElement("div", {
|
|
218
188
|
className: "qbs-table-column-popup" + (rtl ? ' qbs-table-column-popup--rtl' : ''),
|
|
219
189
|
style: {
|
|
220
|
-
|
|
221
|
-
top: position.top,
|
|
222
|
-
left: position.left,
|
|
223
|
-
maxHeight: tableHeight - 40,
|
|
224
|
-
zIndex: 10060
|
|
190
|
+
maxHeight: tableHeight - 40
|
|
225
191
|
},
|
|
226
192
|
ref: popupRef,
|
|
227
193
|
dir: rtl ? 'rtl' : 'ltr'
|
|
@@ -277,23 +243,6 @@ var ColumnToggle = function ColumnToggle(_ref) {
|
|
|
277
243
|
onClick: function onClick() {
|
|
278
244
|
return handleColToggle();
|
|
279
245
|
}
|
|
280
|
-
}, labels.save))));
|
|
281
|
-
return /*#__PURE__*/React.createElement("div", {
|
|
282
|
-
className: "qbs-table-settings-wrapper"
|
|
283
|
-
}, /*#__PURE__*/React.createElement("button", {
|
|
284
|
-
type: "button",
|
|
285
|
-
className: "qbs-table-settings-btn",
|
|
286
|
-
ref: settingsBtnRef,
|
|
287
|
-
onClick: function onClick(event) {
|
|
288
|
-
event.stopPropagation();
|
|
289
|
-
if (isOpen) {
|
|
290
|
-
setIsOpen(false);
|
|
291
|
-
return;
|
|
292
|
-
}
|
|
293
|
-
closeOtherColumnToggles(toggleId);
|
|
294
|
-
updatePopupPosition();
|
|
295
|
-
setIsOpen(true);
|
|
296
|
-
}
|
|
297
|
-
}, /*#__PURE__*/React.createElement(SettingsIcon, null)), isOpen && portalTarget && /*#__PURE__*/ReactDOM.createPortal(popupContent, portalTarget));
|
|
246
|
+
}, labels.save)))));
|
|
298
247
|
};
|
|
299
248
|
export default ColumnToggle;
|
|
@@ -35,7 +35,8 @@ var TooltipComponent = function TooltipComponent(_ref) {
|
|
|
35
35
|
}
|
|
36
36
|
}, children), /*#__PURE__*/React.createElement("span", {
|
|
37
37
|
ref: dropRef,
|
|
38
|
-
className:
|
|
38
|
+
className: "tooltiptext",
|
|
39
|
+
dir: "auto"
|
|
39
40
|
}, title));
|
|
40
41
|
};
|
|
41
42
|
export default TooltipComponent;
|
|
@@ -51,7 +51,11 @@ var VerticalMenuDropdown = function VerticalMenuDropdown(_ref) {
|
|
|
51
51
|
var menuHeight = visibleItems.length * 40;
|
|
52
52
|
var spaceBelow = window.innerHeight - rect.bottom;
|
|
53
53
|
var openBelow = spaceBelow >= menuHeight + menuGap;
|
|
54
|
-
var
|
|
54
|
+
var isRtl = (document.documentElement.getAttribute('dir') || document.body.getAttribute('dir') || getComputedStyle(document.documentElement).direction) === 'rtl';
|
|
55
|
+
var left = isRtl ? rect.left : rect.left - menuWidth;
|
|
56
|
+
if (!isRtl && left < viewportPadding) {
|
|
57
|
+
left = rect.left;
|
|
58
|
+
}
|
|
55
59
|
if (left + menuWidth > window.innerWidth - viewportPadding) {
|
|
56
60
|
left = Math.max(viewportPadding, rect.right - menuWidth);
|
|
57
61
|
}
|
|
@@ -165,7 +169,7 @@ var VerticalMenuDropdown = function VerticalMenuDropdown(_ref) {
|
|
|
165
169
|
className: "inline-block vertical-menu-dropdown-wrapper"
|
|
166
170
|
}, visibleCount > 0 && /*#__PURE__*/React.createElement("button", {
|
|
167
171
|
type: "button",
|
|
168
|
-
className: "vertical-menu-trigger-button
|
|
172
|
+
className: "vertical-menu-trigger-button",
|
|
169
173
|
onClick: function onClick(event) {
|
|
170
174
|
event.stopPropagation();
|
|
171
175
|
if (openMenu) {
|
package/lib/less/qbs-table.less
CHANGED
|
@@ -381,16 +381,45 @@
|
|
|
381
381
|
display: inline-flex;
|
|
382
382
|
align-items: center;
|
|
383
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
|
+
}
|
|
384
408
|
}
|
|
385
409
|
|
|
386
410
|
.qbs-table-column-popup {
|
|
387
|
-
position:
|
|
411
|
+
position: absolute;
|
|
412
|
+
top: calc(100% + 4px);
|
|
413
|
+
inset-inline-end: 0;
|
|
414
|
+
inset-inline-start: auto;
|
|
388
415
|
padding: 8px;
|
|
389
416
|
z-index: 10060;
|
|
390
417
|
border-radius: 8px;
|
|
391
418
|
background: #fff;
|
|
392
419
|
box-shadow: 0px 8px 20px 0px rgba(0, 0, 0, 0.15);
|
|
393
|
-
min-width:
|
|
420
|
+
min-width: 300px;
|
|
421
|
+
width: max-content;
|
|
422
|
+
max-width: min(400px, calc(100vw - 16px));
|
|
394
423
|
gap: 4px;
|
|
395
424
|
display: flex;
|
|
396
425
|
flex-direction: column;
|
|
@@ -413,10 +442,6 @@
|
|
|
413
442
|
|
|
414
443
|
.qbs-table-columns-container {
|
|
415
444
|
display: flex;
|
|
416
|
-
flex-direction: row;
|
|
417
|
-
}
|
|
418
|
-
|
|
419
|
-
.qbs-table-column-popup--rtl .qbs-table-columns-container {
|
|
420
445
|
flex-direction: row-reverse;
|
|
421
446
|
}
|
|
422
447
|
|
|
@@ -429,6 +454,10 @@
|
|
|
429
454
|
padding: 4px 0 0;
|
|
430
455
|
}
|
|
431
456
|
|
|
457
|
+
.qbs-table-column-popup--rtl {
|
|
458
|
+
text-align: right;
|
|
459
|
+
}
|
|
460
|
+
|
|
432
461
|
.qbs-table-column-popup--rtl .qbs-table-popup-footer {
|
|
433
462
|
flex-direction: row-reverse;
|
|
434
463
|
}
|
package/lib/qbsTable/QbsTable.js
CHANGED
|
@@ -128,11 +128,16 @@ var QbsTable = function QbsTable(_ref) {
|
|
|
128
128
|
setRowViewToggle = _ref.setRowViewToggle,
|
|
129
129
|
_ref$isFullScreen = _ref.isFullScreen,
|
|
130
130
|
isFullScreen = _ref$isFullScreen === void 0 ? false : _ref$isFullScreen,
|
|
131
|
-
rowHeight = _ref.rowHeight
|
|
131
|
+
rowHeight = _ref.rowHeight,
|
|
132
|
+
_ref$showHeader = _ref.showHeader,
|
|
133
|
+
showHeader = _ref$showHeader === void 0 ? true : _ref$showHeader;
|
|
132
134
|
var labels = (0, _react.useMemo)(function () {
|
|
133
135
|
return (0, _labels.mergeQbsTableLabels)(labelsProp);
|
|
134
136
|
}, [labelsProp]);
|
|
135
|
-
var
|
|
137
|
+
var effectiveWordWrap = (0, _react.useMemo)(function () {
|
|
138
|
+
if (!rowViewToggle) return wordWrap;
|
|
139
|
+
return defaultRowView ? false : 'break-word';
|
|
140
|
+
}, [rowViewToggle, defaultRowView, wordWrap]);
|
|
136
141
|
var _useState = (0, _react.useState)(false),
|
|
137
142
|
loading = _useState[0],
|
|
138
143
|
setLoading = _useState[1];
|
|
@@ -155,6 +160,16 @@ var QbsTable = function QbsTable(_ref) {
|
|
|
155
160
|
setTableViewToggle = _useState5[1];
|
|
156
161
|
var isMobile = (0, _useResponsiveStore["default"])();
|
|
157
162
|
var tableBodyRef = (0, _react.useRef)(null);
|
|
163
|
+
var _useState6 = (0, _react.useState)(0),
|
|
164
|
+
rowViewRefreshKey = _useState6[0],
|
|
165
|
+
setRowViewRefreshKey = _useState6[1];
|
|
166
|
+
(0, _react.useEffect)(function () {
|
|
167
|
+
if (rowViewToggle) {
|
|
168
|
+
setRowViewRefreshKey(function (key) {
|
|
169
|
+
return key + 1;
|
|
170
|
+
});
|
|
171
|
+
}
|
|
172
|
+
}, [defaultRowView, rowViewToggle]);
|
|
158
173
|
var handleSortColumn = (0, _react.useCallback)(function (sortColumn, sortType) {
|
|
159
174
|
setLoading(true);
|
|
160
175
|
setTimeout(function () {
|
|
@@ -591,13 +606,13 @@ var QbsTable = function QbsTable(_ref) {
|
|
|
591
606
|
className: "qbs-table-border-wrap"
|
|
592
607
|
}, tableViewToggle ? /*#__PURE__*/_react["default"].createElement(_Table["default"], {
|
|
593
608
|
height: autoHeight ? undefined : height,
|
|
594
|
-
key: tableKey,
|
|
609
|
+
key: tableKey + "-" + rowViewRefreshKey,
|
|
595
610
|
tableKey: tableKey,
|
|
596
611
|
rtl: rtl,
|
|
597
612
|
data: data,
|
|
598
613
|
tableBodyRef: tableBodyRef,
|
|
599
614
|
dataTheme: dataTheme,
|
|
600
|
-
wordWrap:
|
|
615
|
+
wordWrap: effectiveWordWrap,
|
|
601
616
|
autoHeight: autoHeight,
|
|
602
617
|
sortColumn: sortColumn,
|
|
603
618
|
style: {
|
|
@@ -621,7 +636,7 @@ var QbsTable = function QbsTable(_ref) {
|
|
|
621
636
|
rowHeight: rowHeight,
|
|
622
637
|
rowExpandedHeight: rowExpandedHeight,
|
|
623
638
|
loading: isLoading != null ? isLoading : loading,
|
|
624
|
-
showHeader:
|
|
639
|
+
showHeader: showHeader,
|
|
625
640
|
defaultChecked: true,
|
|
626
641
|
expandedRowKeys: expandedRowKeys,
|
|
627
642
|
onExpandChange: onExpandChange,
|
|
@@ -703,7 +718,7 @@ var QbsTable = function QbsTable(_ref) {
|
|
|
703
718
|
getToolTip: customRowStatus.getToolTip
|
|
704
719
|
})), columnsRendered, !actionProps || (actionProps === null || actionProps === void 0 ? void 0 : actionProps.length) === 0 && columnToggle && /*#__PURE__*/_react["default"].createElement(_Column["default"], {
|
|
705
720
|
width: 40,
|
|
706
|
-
fixed:
|
|
721
|
+
fixed: "right"
|
|
707
722
|
}, /*#__PURE__*/_react["default"].createElement(_HeaderCell["default"], {
|
|
708
723
|
verticalAlign: findGrouped() ? 'middle' : undefined,
|
|
709
724
|
className: " " + classes.headerlClass,
|
|
@@ -722,7 +737,7 @@ var QbsTable = function QbsTable(_ref) {
|
|
|
722
737
|
rtl: rtl
|
|
723
738
|
})), /*#__PURE__*/_react["default"].createElement(_Cell["default"], null)), actionProps && (actionProps === null || actionProps === void 0 ? void 0 : actionProps.length) > 0 && /*#__PURE__*/_react["default"].createElement(_Column["default"], {
|
|
724
739
|
width: 40,
|
|
725
|
-
fixed:
|
|
740
|
+
fixed: "right"
|
|
726
741
|
}, /*#__PURE__*/_react["default"].createElement(_HeaderCell["default"], {
|
|
727
742
|
verticalAlign: findGrouped() ? 'middle' : undefined,
|
|
728
743
|
className: " " + classes.headerlClass,
|
|
@@ -112,11 +112,16 @@ var QbsTable = function QbsTable(_ref) {
|
|
|
112
112
|
setTableFullView = _ref.setTableFullView,
|
|
113
113
|
setRowViewToggle = _ref.setRowViewToggle,
|
|
114
114
|
_ref$isFullScreen = _ref.isFullScreen,
|
|
115
|
-
isFullScreen = _ref$isFullScreen === void 0 ? false : _ref$isFullScreen
|
|
115
|
+
isFullScreen = _ref$isFullScreen === void 0 ? false : _ref$isFullScreen,
|
|
116
|
+
_ref$showHeader = _ref.showHeader,
|
|
117
|
+
showHeader = _ref$showHeader === void 0 ? true : _ref$showHeader;
|
|
116
118
|
var labels = (0, _react.useMemo)(function () {
|
|
117
119
|
return (0, _labels.mergeQbsTableLabels)(labelsProp);
|
|
118
120
|
}, [labelsProp]);
|
|
119
|
-
var
|
|
121
|
+
var effectiveWordWrap = (0, _react.useMemo)(function () {
|
|
122
|
+
if (!rowViewToggle) return wordWrap;
|
|
123
|
+
return defaultRowView ? false : 'break-word';
|
|
124
|
+
}, [rowViewToggle, defaultRowView, wordWrap]);
|
|
120
125
|
var _useState = (0, _react.useState)(false),
|
|
121
126
|
loading = _useState[0],
|
|
122
127
|
setLoading = _useState[1];
|
|
@@ -455,7 +460,7 @@ var QbsTable = function QbsTable(_ref) {
|
|
|
455
460
|
data: data,
|
|
456
461
|
tableBodyRef: tableBodyRef,
|
|
457
462
|
dataTheme: dataTheme,
|
|
458
|
-
wordWrap:
|
|
463
|
+
wordWrap: effectiveWordWrap,
|
|
459
464
|
autoHeight: autoHeight,
|
|
460
465
|
sortColumn: sortColumn,
|
|
461
466
|
style: {
|
|
@@ -478,7 +483,7 @@ var QbsTable = function QbsTable(_ref) {
|
|
|
478
483
|
headerHeight: headerHeight,
|
|
479
484
|
rowExpandedHeight: rowExpandedHeight,
|
|
480
485
|
loading: isLoading != null ? isLoading : loading,
|
|
481
|
-
showHeader:
|
|
486
|
+
showHeader: showHeader,
|
|
482
487
|
defaultChecked: true,
|
|
483
488
|
expandedRowKeys: expandedRowKeys,
|
|
484
489
|
onExpandChange: onExpandChange,
|
|
@@ -560,7 +565,7 @@ var QbsTable = function QbsTable(_ref) {
|
|
|
560
565
|
getToolTip: customRowStatus.getToolTip
|
|
561
566
|
})), columnsRendered, !actionProps || (actionProps === null || actionProps === void 0 ? void 0 : actionProps.length) === 0 && columnToggle && /*#__PURE__*/_react["default"].createElement(_Column["default"], {
|
|
562
567
|
width: 40,
|
|
563
|
-
fixed:
|
|
568
|
+
fixed: "right"
|
|
564
569
|
}, /*#__PURE__*/_react["default"].createElement(_HeaderCell["default"], {
|
|
565
570
|
verticalAlign: findGrouped() ? 'middle' : undefined,
|
|
566
571
|
className: " " + classes.headerlClass,
|
|
@@ -579,7 +584,7 @@ var QbsTable = function QbsTable(_ref) {
|
|
|
579
584
|
rtl: rtl
|
|
580
585
|
})), /*#__PURE__*/_react["default"].createElement(_Cell["default"], null)), actionProps && (actionProps === null || actionProps === void 0 ? void 0 : actionProps.length) > 0 && /*#__PURE__*/_react["default"].createElement(_Column["default"], {
|
|
581
586
|
width: 40,
|
|
582
|
-
fixed:
|
|
587
|
+
fixed: "right"
|
|
583
588
|
}, /*#__PURE__*/_react["default"].createElement(_HeaderCell["default"], {
|
|
584
589
|
verticalAlign: findGrouped() ? 'middle' : undefined,
|
|
585
590
|
className: " " + classes.headerlClass,
|