qbs-react-grid 2.0.3 → 2.0.4

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.
@@ -53,7 +53,7 @@ var QbsTable = function QbsTable(_ref) {
53
53
  _ref$height = _ref.height,
54
54
  height = _ref$height === void 0 ? 630 : _ref$height,
55
55
  onExpandChange = _ref.onExpandChange,
56
- wordWrap = _ref.wordWrap,
56
+ propsWordWrap = _ref.wordWrap,
57
57
  _ref$dataRowKey = _ref.dataRowKey,
58
58
  dataRowKey = _ref$dataRowKey === void 0 ? 'id' : _ref$dataRowKey,
59
59
  defaultExpandAllRows = _ref.defaultExpandAllRows,
@@ -112,7 +112,8 @@ var QbsTable = function QbsTable(_ref) {
112
112
  loadMoreData = _ref.loadMoreData,
113
113
  infiniteLoading = _ref.infiniteLoading,
114
114
  _ref$infiniteScroll = _ref.infiniteScroll,
115
- infiniteScroll = _ref$infiniteScroll === void 0 ? false : _ref$infiniteScroll;
115
+ infiniteScroll = _ref$infiniteScroll === void 0 ? false : _ref$infiniteScroll,
116
+ propsViewMode = _ref.viewMode;
116
117
  var _useState = useState(false),
117
118
  loading = _useState[0],
118
119
  setLoading = _useState[1];
@@ -136,6 +137,12 @@ var QbsTable = function QbsTable(_ref) {
136
137
  var isMobile = useResponsiveStore();
137
138
  var tableBodyRef = useRef(null);
138
139
  var wheelWrapperRef = useRef(null);
140
+ var _useState6 = useState(propsViewMode != null ? propsViewMode : 'expanded'),
141
+ viewMode = _useState6[0],
142
+ setViewMode = _useState6[1];
143
+ var _useState7 = useState(propsWordWrap != null ? propsWordWrap : false),
144
+ wordWrap = _useState7[0],
145
+ setWordWrap = _useState7[1];
139
146
  var handleSortColumn = useCallback(function (sortColumn, sortType) {
140
147
  setLoading(true);
141
148
  setTimeout(function () {
@@ -225,13 +232,21 @@ var QbsTable = function QbsTable(_ref) {
225
232
  });
226
233
  }
227
234
  }, [wordWrap]);
235
+ useEffect(function () {
236
+ if (viewMode === 'expanded') {
237
+ setWordWrap('break-word');
238
+ } else {
239
+ setWordWrap(false);
240
+ }
241
+ REFRESH_KEY = REFRESH_KEY + 1;
242
+ }, [viewMode]);
228
243
  var onReorder = useCallback(function (columns) {
229
244
  setColumns(columns);
230
245
  }, []);
231
246
 
232
247
  // useEffect(() => {
233
248
  // }, [columns]);
234
-
249
+ console.log(viewMode);
235
250
  var handleClear = function handleClear(_ref2) {
236
251
  setCheckedKeys([]);
237
252
  handleChecked([]);
@@ -697,6 +712,8 @@ var QbsTable = function QbsTable(_ref) {
697
712
  onReorder: onReorder,
698
713
  isOpen: isOpen,
699
714
  tableHeight: height,
715
+ viewMode: viewMode,
716
+ setViewMode: setViewMode,
700
717
  setIsOpen: setIsOpen,
701
718
  handleResetColumns: handleResetColumns,
702
719
  handleColumnToggle: handleColumnToggle
@@ -713,6 +730,8 @@ var QbsTable = function QbsTable(_ref) {
713
730
  onToggle: handleToggle,
714
731
  tableHeight: height,
715
732
  onReorder: onReorder,
733
+ viewMode: viewMode,
734
+ setViewMode: setViewMode,
716
735
  isOpen: isOpen,
717
736
  setIsOpen: setIsOpen,
718
737
  handleResetColumns: handleResetColumns,
@@ -131,6 +131,7 @@ export interface QbsTableProps {
131
131
  loadMoreData?: () => void;
132
132
  infiniteScroll?: boolean;
133
133
  infiniteLoading?: boolean;
134
+ viewMode?: string;
134
135
  }
135
136
  export interface QbsTableToolbarProps {
136
137
  title?: string;
@@ -9,6 +9,8 @@ interface ColumnToggleProps {
9
9
  handleColumnToggle?: (columns: QbsColumnProps[]) => void;
10
10
  handleResetColumns?: () => void;
11
11
  tableHeight?: number;
12
+ viewMode?: string;
13
+ setViewMode?: (value: string) => void;
12
14
  }
13
15
  declare const ColumnToggle: React.FC<ColumnToggleProps>;
14
16
  export default ColumnToggle;
@@ -9,7 +9,9 @@ var ColumnToggle = function ColumnToggle(_ref) {
9
9
  handleResetColumns = _ref.handleResetColumns,
10
10
  handleColumnToggle = _ref.handleColumnToggle,
11
11
  _ref$tableHeight = _ref.tableHeight,
12
- tableHeight = _ref$tableHeight === void 0 ? 450 : _ref$tableHeight;
12
+ tableHeight = _ref$tableHeight === void 0 ? 450 : _ref$tableHeight,
13
+ viewMode = _ref.viewMode,
14
+ setViewMode = _ref.setViewMode;
13
15
  var _useState = useState(null),
14
16
  draggedItem = _useState[0],
15
17
  setDraggedItem = _useState[1];
@@ -215,6 +217,26 @@ var ColumnToggle = function ColumnToggle(_ref) {
215
217
  onClick: function onClick() {
216
218
  return handleColToggle();
217
219
  }
218
- }, "Save"))))));
220
+ }, "Save"))), /*#__PURE__*/React.createElement("div", {
221
+ className: "qbs-table-popup-item"
222
+ }, /*#__PURE__*/React.createElement("label", {
223
+ className: "flex items-center gap-2"
224
+ }, /*#__PURE__*/React.createElement("input", {
225
+ type: "radio",
226
+ value: "compact",
227
+ checked: viewMode === 'compact',
228
+ onChange: function onChange() {
229
+ return setViewMode === null || setViewMode === void 0 ? void 0 : setViewMode('compact');
230
+ }
231
+ }), "Compact View"), /*#__PURE__*/React.createElement("label", {
232
+ className: "flex items-center gap-2"
233
+ }, /*#__PURE__*/React.createElement("input", {
234
+ type: "radio",
235
+ value: "expanded",
236
+ checked: viewMode === 'expanded',
237
+ onChange: function onChange() {
238
+ return setViewMode === null || setViewMode === void 0 ? void 0 : setViewMode('expanded');
239
+ }
240
+ }), "Default View")))));
219
241
  };
220
242
  export default ColumnToggle;
@@ -59,7 +59,7 @@ var QbsTable = function QbsTable(_ref) {
59
59
  _ref$height = _ref.height,
60
60
  height = _ref$height === void 0 ? 630 : _ref$height,
61
61
  onExpandChange = _ref.onExpandChange,
62
- wordWrap = _ref.wordWrap,
62
+ propsWordWrap = _ref.wordWrap,
63
63
  _ref$dataRowKey = _ref.dataRowKey,
64
64
  dataRowKey = _ref$dataRowKey === void 0 ? 'id' : _ref$dataRowKey,
65
65
  defaultExpandAllRows = _ref.defaultExpandAllRows,
@@ -118,7 +118,8 @@ var QbsTable = function QbsTable(_ref) {
118
118
  loadMoreData = _ref.loadMoreData,
119
119
  infiniteLoading = _ref.infiniteLoading,
120
120
  _ref$infiniteScroll = _ref.infiniteScroll,
121
- infiniteScroll = _ref$infiniteScroll === void 0 ? false : _ref$infiniteScroll;
121
+ infiniteScroll = _ref$infiniteScroll === void 0 ? false : _ref$infiniteScroll,
122
+ propsViewMode = _ref.viewMode;
122
123
  var _useState = (0, _react.useState)(false),
123
124
  loading = _useState[0],
124
125
  setLoading = _useState[1];
@@ -142,6 +143,12 @@ var QbsTable = function QbsTable(_ref) {
142
143
  var isMobile = (0, _useResponsiveStore["default"])();
143
144
  var tableBodyRef = (0, _react.useRef)(null);
144
145
  var wheelWrapperRef = (0, _react.useRef)(null);
146
+ var _useState6 = (0, _react.useState)(propsViewMode != null ? propsViewMode : 'expanded'),
147
+ viewMode = _useState6[0],
148
+ setViewMode = _useState6[1];
149
+ var _useState7 = (0, _react.useState)(propsWordWrap != null ? propsWordWrap : false),
150
+ wordWrap = _useState7[0],
151
+ setWordWrap = _useState7[1];
145
152
  var handleSortColumn = (0, _react.useCallback)(function (sortColumn, sortType) {
146
153
  setLoading(true);
147
154
  setTimeout(function () {
@@ -231,13 +238,21 @@ var QbsTable = function QbsTable(_ref) {
231
238
  });
232
239
  }
233
240
  }, [wordWrap]);
241
+ (0, _react.useEffect)(function () {
242
+ if (viewMode === 'expanded') {
243
+ setWordWrap('break-word');
244
+ } else {
245
+ setWordWrap(false);
246
+ }
247
+ REFRESH_KEY = REFRESH_KEY + 1;
248
+ }, [viewMode]);
234
249
  var onReorder = (0, _react.useCallback)(function (columns) {
235
250
  setColumns(columns);
236
251
  }, []);
237
252
 
238
253
  // useEffect(() => {
239
254
  // }, [columns]);
240
-
255
+ console.log(viewMode);
241
256
  var handleClear = function handleClear(_ref2) {
242
257
  setCheckedKeys([]);
243
258
  handleChecked([]);
@@ -703,6 +718,8 @@ var QbsTable = function QbsTable(_ref) {
703
718
  onReorder: onReorder,
704
719
  isOpen: isOpen,
705
720
  tableHeight: height,
721
+ viewMode: viewMode,
722
+ setViewMode: setViewMode,
706
723
  setIsOpen: setIsOpen,
707
724
  handleResetColumns: handleResetColumns,
708
725
  handleColumnToggle: handleColumnToggle
@@ -719,6 +736,8 @@ var QbsTable = function QbsTable(_ref) {
719
736
  onToggle: handleToggle,
720
737
  tableHeight: height,
721
738
  onReorder: onReorder,
739
+ viewMode: viewMode,
740
+ setViewMode: setViewMode,
722
741
  isOpen: isOpen,
723
742
  setIsOpen: setIsOpen,
724
743
  handleResetColumns: handleResetColumns,
@@ -131,6 +131,7 @@ export interface QbsTableProps {
131
131
  loadMoreData?: () => void;
132
132
  infiniteScroll?: boolean;
133
133
  infiniteLoading?: boolean;
134
+ viewMode?: string;
134
135
  }
135
136
  export interface QbsTableToolbarProps {
136
137
  title?: string;
@@ -9,6 +9,8 @@ interface ColumnToggleProps {
9
9
  handleColumnToggle?: (columns: QbsColumnProps[]) => void;
10
10
  handleResetColumns?: () => void;
11
11
  tableHeight?: number;
12
+ viewMode?: string;
13
+ setViewMode?: (value: string) => void;
12
14
  }
13
15
  declare const ColumnToggle: React.FC<ColumnToggleProps>;
14
16
  export default ColumnToggle;
@@ -15,7 +15,9 @@ var ColumnToggle = function ColumnToggle(_ref) {
15
15
  handleResetColumns = _ref.handleResetColumns,
16
16
  handleColumnToggle = _ref.handleColumnToggle,
17
17
  _ref$tableHeight = _ref.tableHeight,
18
- tableHeight = _ref$tableHeight === void 0 ? 450 : _ref$tableHeight;
18
+ tableHeight = _ref$tableHeight === void 0 ? 450 : _ref$tableHeight,
19
+ viewMode = _ref.viewMode,
20
+ setViewMode = _ref.setViewMode;
19
21
  var _useState = (0, _react.useState)(null),
20
22
  draggedItem = _useState[0],
21
23
  setDraggedItem = _useState[1];
@@ -221,7 +223,27 @@ var ColumnToggle = function ColumnToggle(_ref) {
221
223
  onClick: function onClick() {
222
224
  return handleColToggle();
223
225
  }
224
- }, "Save"))))));
226
+ }, "Save"))), /*#__PURE__*/_react["default"].createElement("div", {
227
+ className: "qbs-table-popup-item"
228
+ }, /*#__PURE__*/_react["default"].createElement("label", {
229
+ className: "flex items-center gap-2"
230
+ }, /*#__PURE__*/_react["default"].createElement("input", {
231
+ type: "radio",
232
+ value: "compact",
233
+ checked: viewMode === 'compact',
234
+ onChange: function onChange() {
235
+ return setViewMode === null || setViewMode === void 0 ? void 0 : setViewMode('compact');
236
+ }
237
+ }), "Compact View"), /*#__PURE__*/_react["default"].createElement("label", {
238
+ className: "flex items-center gap-2"
239
+ }, /*#__PURE__*/_react["default"].createElement("input", {
240
+ type: "radio",
241
+ value: "expanded",
242
+ checked: viewMode === 'expanded',
243
+ onChange: function onChange() {
244
+ return setViewMode === null || setViewMode === void 0 ? void 0 : setViewMode('expanded');
245
+ }
246
+ }), "Default View")))));
225
247
  };
226
248
  var _default = ColumnToggle;
227
249
  exports["default"] = _default;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "qbs-react-grid",
3
- "version": "2.0.3",
3
+ "version": "2.0.4",
4
4
  "description": "A React table component",
5
5
  "main": "lib/index.js",
6
6
  "typings": "lib/index.d.ts",
@@ -52,7 +52,7 @@ const QbsTable: React.FC<QbsTableProps> = ({
52
52
  minHeight,
53
53
  height = 630,
54
54
  onExpandChange,
55
- wordWrap,
55
+ wordWrap: propsWordWrap,
56
56
  dataRowKey = 'id',
57
57
  defaultExpandAllRows,
58
58
  handleRowExpanded,
@@ -96,7 +96,8 @@ const QbsTable: React.FC<QbsTableProps> = ({
96
96
  hasMoreData,
97
97
  loadMoreData,
98
98
  infiniteLoading,
99
- infiniteScroll = false
99
+ infiniteScroll = false,
100
+ viewMode: propsViewMode
100
101
  }) => {
101
102
  const [loading, setLoading] = useState(false);
102
103
  const [columns, setColumns] = useState(propColumn);
@@ -108,7 +109,8 @@ const QbsTable: React.FC<QbsTableProps> = ({
108
109
  const isMobile = useResponsiveStore();
109
110
  const tableBodyRef = useRef<HTMLDivElement>(null);
110
111
  const wheelWrapperRef = useRef<HTMLDivElement>(null);
111
-
112
+ const [viewMode, setViewMode] = useState(propsViewMode ?? 'expanded');
113
+ const [wordWrap, setWordWrap] = useState(propsWordWrap ?? false);
112
114
  const handleSortColumn = useCallback(
113
115
  (sortColumn: any, sortType: any) => {
114
116
  setLoading(true);
@@ -212,14 +214,21 @@ const QbsTable: React.FC<QbsTableProps> = ({
212
214
  );
213
215
  }
214
216
  }, [wordWrap]);
215
-
217
+ useEffect(() => {
218
+ if (viewMode === 'expanded') {
219
+ setWordWrap('break-word');
220
+ } else {
221
+ setWordWrap(false);
222
+ }
223
+ REFRESH_KEY = REFRESH_KEY + 1;
224
+ }, [viewMode]);
216
225
  const onReorder = useCallback((columns: QbsColumnProps[]) => {
217
226
  setColumns(columns);
218
227
  }, []);
219
228
 
220
229
  // useEffect(() => {
221
230
  // }, [columns]);
222
-
231
+ console.log(viewMode);
223
232
  const handleClear = ([]) => {
224
233
  setCheckedKeys([]);
225
234
  handleChecked([]);
@@ -733,6 +742,8 @@ const QbsTable: React.FC<QbsTableProps> = ({
733
742
  onReorder={onReorder}
734
743
  isOpen={isOpen}
735
744
  tableHeight={height}
745
+ viewMode={viewMode}
746
+ setViewMode={setViewMode}
736
747
  setIsOpen={setIsOpen}
737
748
  handleResetColumns={handleResetColumns}
738
749
  handleColumnToggle={handleColumnToggle}
@@ -757,6 +768,8 @@ const QbsTable: React.FC<QbsTableProps> = ({
757
768
  onToggle={handleToggle}
758
769
  tableHeight={height}
759
770
  onReorder={onReorder}
771
+ viewMode={viewMode}
772
+ setViewMode={setViewMode}
760
773
  isOpen={isOpen}
761
774
  setIsOpen={setIsOpen}
762
775
  handleResetColumns={handleResetColumns}
@@ -134,6 +134,8 @@ export interface QbsTableProps {
134
134
  loadMoreData?: ()=> void
135
135
  infiniteScroll?: boolean
136
136
  infiniteLoading?:boolean
137
+ viewMode?:string
138
+
137
139
  }
138
140
 
139
141
  export interface QbsTableToolbarProps {
@@ -12,6 +12,8 @@ interface ColumnToggleProps {
12
12
  handleColumnToggle?: (columns: QbsColumnProps[]) => void;
13
13
  handleResetColumns?: () => void;
14
14
  tableHeight?: number;
15
+ viewMode?: string;
16
+ setViewMode?: (value: string) => void;
15
17
  }
16
18
 
17
19
  const ColumnToggle: React.FC<ColumnToggleProps> = ({
@@ -22,7 +24,9 @@ const ColumnToggle: React.FC<ColumnToggleProps> = ({
22
24
  setIsOpen,
23
25
  handleResetColumns,
24
26
  handleColumnToggle,
25
- tableHeight = 450
27
+ tableHeight = 450,
28
+ viewMode,
29
+ setViewMode
26
30
  }) => {
27
31
  const [draggedItem, setDraggedItem] = useState<number | null>(null);
28
32
  const popupRef = useRef<HTMLDivElement | null>(null);
@@ -239,6 +243,27 @@ const ColumnToggle: React.FC<ColumnToggleProps> = ({
239
243
  </div>
240
244
  </>
241
245
  )}
246
+ <div className="qbs-table-popup-item">
247
+ <label className="flex items-center gap-2">
248
+ <input
249
+ type="radio"
250
+ value="compact"
251
+ checked={viewMode === 'compact'}
252
+ onChange={() => setViewMode?.('compact')}
253
+ />
254
+ Compact View
255
+ </label>
256
+
257
+ <label className="flex items-center gap-2">
258
+ <input
259
+ type="radio"
260
+ value="expanded"
261
+ checked={viewMode === 'expanded'}
262
+ onChange={() => setViewMode?.('expanded')}
263
+ />
264
+ Default View
265
+ </label>
266
+ </div>
242
267
  </div>
243
268
  </div>
244
269
  )}