qbs-react-grid 2.2.9 → 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/less/qbs-table.less +35 -6
- package/es/qbsTable/QbsTable.js +18 -5
- package/es/qbsTable/TableCardList.js +7 -4
- package/es/qbsTable/Toolbar.js +32 -21
- 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 +18 -5
- package/lib/qbsTable/TableCardList.js +7 -4
- package/lib/qbsTable/Toolbar.js +32 -21
- 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 +16 -5
- package/src/qbsTable/TableCardList.tsx +7 -4
- package/src/qbsTable/Toolbar.tsx +36 -27
- 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
|
@@ -126,7 +126,10 @@ var QbsTable = function QbsTable(_ref) {
|
|
|
126
126
|
var labels = useMemo(function () {
|
|
127
127
|
return mergeQbsTableLabels(labelsProp);
|
|
128
128
|
}, [labelsProp]);
|
|
129
|
-
var
|
|
129
|
+
var effectiveWordWrap = useMemo(function () {
|
|
130
|
+
if (!rowViewToggle) return wordWrap;
|
|
131
|
+
return defaultRowView ? wordWrap : 'break-word';
|
|
132
|
+
}, [rowViewToggle, defaultRowView, wordWrap]);
|
|
130
133
|
var _useState = useState(false),
|
|
131
134
|
loading = _useState[0],
|
|
132
135
|
setLoading = _useState[1];
|
|
@@ -149,6 +152,16 @@ var QbsTable = function QbsTable(_ref) {
|
|
|
149
152
|
setTableViewToggle = _useState5[1];
|
|
150
153
|
var isMobile = useResponsiveStore();
|
|
151
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]);
|
|
152
165
|
var handleSortColumn = useCallback(function (sortColumn, sortType) {
|
|
153
166
|
setLoading(true);
|
|
154
167
|
setTimeout(function () {
|
|
@@ -585,13 +598,13 @@ var QbsTable = function QbsTable(_ref) {
|
|
|
585
598
|
className: "qbs-table-border-wrap"
|
|
586
599
|
}, tableViewToggle ? /*#__PURE__*/React.createElement(Table, {
|
|
587
600
|
height: autoHeight ? undefined : height,
|
|
588
|
-
key: tableKey,
|
|
601
|
+
key: tableKey + "-" + rowViewRefreshKey,
|
|
589
602
|
tableKey: tableKey,
|
|
590
603
|
rtl: rtl,
|
|
591
604
|
data: data,
|
|
592
605
|
tableBodyRef: tableBodyRef,
|
|
593
606
|
dataTheme: dataTheme,
|
|
594
|
-
wordWrap:
|
|
607
|
+
wordWrap: effectiveWordWrap,
|
|
595
608
|
autoHeight: autoHeight,
|
|
596
609
|
sortColumn: sortColumn,
|
|
597
610
|
style: {
|
|
@@ -697,7 +710,7 @@ var QbsTable = function QbsTable(_ref) {
|
|
|
697
710
|
getToolTip: customRowStatus.getToolTip
|
|
698
711
|
})), columnsRendered, !actionProps || (actionProps === null || actionProps === void 0 ? void 0 : actionProps.length) === 0 && columnToggle && /*#__PURE__*/React.createElement(Column, {
|
|
699
712
|
width: 40,
|
|
700
|
-
fixed:
|
|
713
|
+
fixed: "right"
|
|
701
714
|
}, /*#__PURE__*/React.createElement(HeaderCell, {
|
|
702
715
|
verticalAlign: findGrouped() ? 'middle' : undefined,
|
|
703
716
|
className: " " + classes.headerlClass,
|
|
@@ -716,7 +729,7 @@ var QbsTable = function QbsTable(_ref) {
|
|
|
716
729
|
rtl: rtl
|
|
717
730
|
})), /*#__PURE__*/React.createElement(Cell, null)), actionProps && (actionProps === null || actionProps === void 0 ? void 0 : actionProps.length) > 0 && /*#__PURE__*/React.createElement(Column, {
|
|
718
731
|
width: 40,
|
|
719
|
-
fixed:
|
|
732
|
+
fixed: "right"
|
|
720
733
|
}, /*#__PURE__*/React.createElement(HeaderCell, {
|
|
721
734
|
verticalAlign: findGrouped() ? 'middle' : undefined,
|
|
722
735
|
className: " " + classes.headerlClass,
|
|
@@ -110,7 +110,10 @@ var QbsTable = function QbsTable(_ref) {
|
|
|
110
110
|
var labels = useMemo(function () {
|
|
111
111
|
return mergeQbsTableLabels(labelsProp);
|
|
112
112
|
}, [labelsProp]);
|
|
113
|
-
var
|
|
113
|
+
var effectiveWordWrap = useMemo(function () {
|
|
114
|
+
if (!rowViewToggle) return wordWrap;
|
|
115
|
+
return defaultRowView ? wordWrap : 'break-word';
|
|
116
|
+
}, [rowViewToggle, defaultRowView, wordWrap]);
|
|
114
117
|
var _useState = useState(false),
|
|
115
118
|
loading = _useState[0],
|
|
116
119
|
setLoading = _useState[1];
|
|
@@ -449,7 +452,7 @@ var QbsTable = function QbsTable(_ref) {
|
|
|
449
452
|
data: data,
|
|
450
453
|
tableBodyRef: tableBodyRef,
|
|
451
454
|
dataTheme: dataTheme,
|
|
452
|
-
wordWrap:
|
|
455
|
+
wordWrap: effectiveWordWrap,
|
|
453
456
|
autoHeight: autoHeight,
|
|
454
457
|
sortColumn: sortColumn,
|
|
455
458
|
style: {
|
|
@@ -554,7 +557,7 @@ var QbsTable = function QbsTable(_ref) {
|
|
|
554
557
|
getToolTip: customRowStatus.getToolTip
|
|
555
558
|
})), columnsRendered, !actionProps || (actionProps === null || actionProps === void 0 ? void 0 : actionProps.length) === 0 && columnToggle && /*#__PURE__*/React.createElement(Column, {
|
|
556
559
|
width: 40,
|
|
557
|
-
fixed:
|
|
560
|
+
fixed: "right"
|
|
558
561
|
}, /*#__PURE__*/React.createElement(HeaderCell, {
|
|
559
562
|
verticalAlign: findGrouped() ? 'middle' : undefined,
|
|
560
563
|
className: " " + classes.headerlClass,
|
|
@@ -573,7 +576,7 @@ var QbsTable = function QbsTable(_ref) {
|
|
|
573
576
|
rtl: rtl
|
|
574
577
|
})), /*#__PURE__*/React.createElement(Cell, null)), actionProps && (actionProps === null || actionProps === void 0 ? void 0 : actionProps.length) > 0 && /*#__PURE__*/React.createElement(Column, {
|
|
575
578
|
width: 40,
|
|
576
|
-
fixed:
|
|
579
|
+
fixed: "right"
|
|
577
580
|
}, /*#__PURE__*/React.createElement(HeaderCell, {
|
|
578
581
|
verticalAlign: findGrouped() ? 'middle' : undefined,
|
|
579
582
|
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
|
@@ -132,7 +132,10 @@ var QbsTable = function QbsTable(_ref) {
|
|
|
132
132
|
var labels = (0, _react.useMemo)(function () {
|
|
133
133
|
return (0, _labels.mergeQbsTableLabels)(labelsProp);
|
|
134
134
|
}, [labelsProp]);
|
|
135
|
-
var
|
|
135
|
+
var effectiveWordWrap = (0, _react.useMemo)(function () {
|
|
136
|
+
if (!rowViewToggle) return wordWrap;
|
|
137
|
+
return defaultRowView ? wordWrap : 'break-word';
|
|
138
|
+
}, [rowViewToggle, defaultRowView, wordWrap]);
|
|
136
139
|
var _useState = (0, _react.useState)(false),
|
|
137
140
|
loading = _useState[0],
|
|
138
141
|
setLoading = _useState[1];
|
|
@@ -155,6 +158,16 @@ var QbsTable = function QbsTable(_ref) {
|
|
|
155
158
|
setTableViewToggle = _useState5[1];
|
|
156
159
|
var isMobile = (0, _useResponsiveStore["default"])();
|
|
157
160
|
var tableBodyRef = (0, _react.useRef)(null);
|
|
161
|
+
var _useState6 = (0, _react.useState)(0),
|
|
162
|
+
rowViewRefreshKey = _useState6[0],
|
|
163
|
+
setRowViewRefreshKey = _useState6[1];
|
|
164
|
+
(0, _react.useEffect)(function () {
|
|
165
|
+
if (rowViewToggle) {
|
|
166
|
+
setRowViewRefreshKey(function (key) {
|
|
167
|
+
return key + 1;
|
|
168
|
+
});
|
|
169
|
+
}
|
|
170
|
+
}, [defaultRowView, rowViewToggle]);
|
|
158
171
|
var handleSortColumn = (0, _react.useCallback)(function (sortColumn, sortType) {
|
|
159
172
|
setLoading(true);
|
|
160
173
|
setTimeout(function () {
|
|
@@ -591,13 +604,13 @@ var QbsTable = function QbsTable(_ref) {
|
|
|
591
604
|
className: "qbs-table-border-wrap"
|
|
592
605
|
}, tableViewToggle ? /*#__PURE__*/_react["default"].createElement(_Table["default"], {
|
|
593
606
|
height: autoHeight ? undefined : height,
|
|
594
|
-
key: tableKey,
|
|
607
|
+
key: tableKey + "-" + rowViewRefreshKey,
|
|
595
608
|
tableKey: tableKey,
|
|
596
609
|
rtl: rtl,
|
|
597
610
|
data: data,
|
|
598
611
|
tableBodyRef: tableBodyRef,
|
|
599
612
|
dataTheme: dataTheme,
|
|
600
|
-
wordWrap:
|
|
613
|
+
wordWrap: effectiveWordWrap,
|
|
601
614
|
autoHeight: autoHeight,
|
|
602
615
|
sortColumn: sortColumn,
|
|
603
616
|
style: {
|
|
@@ -703,7 +716,7 @@ var QbsTable = function QbsTable(_ref) {
|
|
|
703
716
|
getToolTip: customRowStatus.getToolTip
|
|
704
717
|
})), columnsRendered, !actionProps || (actionProps === null || actionProps === void 0 ? void 0 : actionProps.length) === 0 && columnToggle && /*#__PURE__*/_react["default"].createElement(_Column["default"], {
|
|
705
718
|
width: 40,
|
|
706
|
-
fixed:
|
|
719
|
+
fixed: "right"
|
|
707
720
|
}, /*#__PURE__*/_react["default"].createElement(_HeaderCell["default"], {
|
|
708
721
|
verticalAlign: findGrouped() ? 'middle' : undefined,
|
|
709
722
|
className: " " + classes.headerlClass,
|
|
@@ -722,7 +735,7 @@ var QbsTable = function QbsTable(_ref) {
|
|
|
722
735
|
rtl: rtl
|
|
723
736
|
})), /*#__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
737
|
width: 40,
|
|
725
|
-
fixed:
|
|
738
|
+
fixed: "right"
|
|
726
739
|
}, /*#__PURE__*/_react["default"].createElement(_HeaderCell["default"], {
|
|
727
740
|
verticalAlign: findGrouped() ? 'middle' : undefined,
|
|
728
741
|
className: " " + classes.headerlClass,
|
|
@@ -116,7 +116,10 @@ var QbsTable = function QbsTable(_ref) {
|
|
|
116
116
|
var labels = (0, _react.useMemo)(function () {
|
|
117
117
|
return (0, _labels.mergeQbsTableLabels)(labelsProp);
|
|
118
118
|
}, [labelsProp]);
|
|
119
|
-
var
|
|
119
|
+
var effectiveWordWrap = (0, _react.useMemo)(function () {
|
|
120
|
+
if (!rowViewToggle) return wordWrap;
|
|
121
|
+
return defaultRowView ? wordWrap : 'break-word';
|
|
122
|
+
}, [rowViewToggle, defaultRowView, wordWrap]);
|
|
120
123
|
var _useState = (0, _react.useState)(false),
|
|
121
124
|
loading = _useState[0],
|
|
122
125
|
setLoading = _useState[1];
|
|
@@ -455,7 +458,7 @@ var QbsTable = function QbsTable(_ref) {
|
|
|
455
458
|
data: data,
|
|
456
459
|
tableBodyRef: tableBodyRef,
|
|
457
460
|
dataTheme: dataTheme,
|
|
458
|
-
wordWrap:
|
|
461
|
+
wordWrap: effectiveWordWrap,
|
|
459
462
|
autoHeight: autoHeight,
|
|
460
463
|
sortColumn: sortColumn,
|
|
461
464
|
style: {
|
|
@@ -560,7 +563,7 @@ var QbsTable = function QbsTable(_ref) {
|
|
|
560
563
|
getToolTip: customRowStatus.getToolTip
|
|
561
564
|
})), columnsRendered, !actionProps || (actionProps === null || actionProps === void 0 ? void 0 : actionProps.length) === 0 && columnToggle && /*#__PURE__*/_react["default"].createElement(_Column["default"], {
|
|
562
565
|
width: 40,
|
|
563
|
-
fixed:
|
|
566
|
+
fixed: "right"
|
|
564
567
|
}, /*#__PURE__*/_react["default"].createElement(_HeaderCell["default"], {
|
|
565
568
|
verticalAlign: findGrouped() ? 'middle' : undefined,
|
|
566
569
|
className: " " + classes.headerlClass,
|
|
@@ -579,7 +582,7 @@ var QbsTable = function QbsTable(_ref) {
|
|
|
579
582
|
rtl: rtl
|
|
580
583
|
})), /*#__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
584
|
width: 40,
|
|
582
|
-
fixed:
|
|
585
|
+
fixed: "right"
|
|
583
586
|
}, /*#__PURE__*/_react["default"].createElement(_HeaderCell["default"], {
|
|
584
587
|
verticalAlign: findGrouped() ? 'middle' : undefined,
|
|
585
588
|
className: " " + classes.headerlClass,
|