es-grid-template 0.0.13 → 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (52) hide show
  1. package/CHANGELOG.md +6 -6
  2. package/README.md +1 -1
  3. package/es/grid-component/ColumnsChoose.d.ts +3 -4
  4. package/es/grid-component/ColumnsChoose.js +3 -7
  5. package/es/grid-component/Command.d.ts +8 -0
  6. package/es/grid-component/Command.js +80 -0
  7. package/es/grid-component/EditableCell.js +56 -87
  8. package/es/grid-component/InternalTable.d.ts +1 -0
  9. package/es/grid-component/InternalTable.js +36 -19
  10. package/es/grid-component/TableGrid.d.ts +2 -1
  11. package/es/grid-component/TableGrid.js +63 -18
  12. package/es/grid-component/index.d.ts +2 -0
  13. package/es/{table-grid → grid-component}/styles.scss +204 -195
  14. package/es/grid-component/table/Grid.js +85 -0
  15. package/{lib/grid-component/rc-table → es/grid-component/table}/GridEdit.d.ts +4 -0
  16. package/es/grid-component/{rc-table → table}/GridEdit.js +98 -15
  17. package/es/grid-component/type.d.ts +26 -11
  18. package/es/grid-component/useContext.d.ts +10 -7
  19. package/es/grid-component/useContext.js +3 -0
  20. package/es/index.d.ts +2 -1
  21. package/es/index.js +1 -2
  22. package/lib/grid-component/ColumnsChoose.d.ts +3 -4
  23. package/lib/grid-component/ColumnsChoose.js +3 -7
  24. package/lib/grid-component/Command.d.ts +8 -0
  25. package/lib/grid-component/Command.js +88 -0
  26. package/lib/grid-component/EditableCell.js +56 -87
  27. package/lib/grid-component/InternalTable.d.ts +1 -0
  28. package/lib/grid-component/InternalTable.js +35 -18
  29. package/lib/grid-component/TableGrid.d.ts +2 -1
  30. package/lib/grid-component/TableGrid.js +62 -17
  31. package/lib/grid-component/index.d.ts +2 -0
  32. package/lib/{table-grid → grid-component}/styles.scss +204 -195
  33. package/lib/grid-component/{rc-table → table}/Grid.js +42 -56
  34. package/{es/grid-component/rc-table → lib/grid-component/table}/GridEdit.d.ts +4 -0
  35. package/lib/grid-component/{rc-table → table}/GridEdit.js +98 -15
  36. package/lib/grid-component/type.d.ts +26 -11
  37. package/lib/grid-component/useContext.d.ts +10 -7
  38. package/lib/grid-component/useContext.js +2 -0
  39. package/lib/index.d.ts +2 -1
  40. package/lib/index.js +1 -1
  41. package/package.json +113 -86
  42. package/es/grid-component/rc-table/Grid.js +0 -99
  43. /package/es/{grid-component/Message → Message}/Message.d.ts +0 -0
  44. /package/es/{grid-component/Message → Message}/Message.js +0 -0
  45. /package/es/{grid-component/Message → Message}/index.d.ts +0 -0
  46. /package/es/{grid-component/Message → Message}/index.js +0 -0
  47. /package/es/grid-component/{rc-table → table}/Grid.d.ts +0 -0
  48. /package/lib/{grid-component/Message → Message}/Message.d.ts +0 -0
  49. /package/lib/{grid-component/Message → Message}/Message.js +0 -0
  50. /package/lib/{grid-component/Message → Message}/index.d.ts +0 -0
  51. /package/lib/{grid-component/Message → Message}/index.js +0 -0
  52. /package/lib/grid-component/{rc-table → table}/Grid.d.ts +0 -0
@@ -54,7 +54,8 @@ const EditableCell = props => {
54
54
  format,
55
55
  control,
56
56
  getValues,
57
- handleCellChange
57
+ handleCellChange,
58
+ getRowKey
58
59
  } = (0, _react.useContext)(_useContext.TableContext);
59
60
  const datePickerRef = _react.default.useRef(null);
60
61
  const dateTimePickerRef = _react.default.useRef(null);
@@ -72,38 +73,33 @@ const EditableCell = props => {
72
73
  const minDate = (0, _hooks.convertDateToDayjs)(column.minDate, dateFormat) ?? undefined;
73
74
  switch (editType) {
74
75
  case 'date':
75
- return /*#__PURE__*/_react.default.createElement(_antd.DatePicker
76
- // id={`col${indexCol}-record${indexRow}`}
77
- , {
76
+ return /*#__PURE__*/_react.default.createElement(_antd.DatePicker, {
78
77
  ref: datePickerRef,
79
78
  format: {
80
79
  format: dateFormat,
81
80
  type: 'mask'
82
81
  }
83
-
84
82
  // locale={buddhistLocale}
85
83
  ,
86
84
  style: {
87
85
  width: '100%',
88
86
  height: '100%'
89
87
  },
90
- value: date
91
- // defaultValue={date}
92
- ,
93
-
88
+ value: date,
94
89
  onBlur: () => {
95
90
  const formState = getValues();
96
91
  const itemState = getValues(dataIndex);
97
92
  // @ts-ignore
98
93
  const prevState = record[dataIndex];
99
94
  const newState = itemState;
95
+ const key = getRowKey?.(record, index);
100
96
  if (newState !== prevState) {
101
- // @ts-ignore
102
97
  handleCellChange?.({
103
- key: record[rowKey],
98
+ key: key,
104
99
  record: formState,
105
100
  prevState,
106
101
  newState,
102
+ option: newState,
107
103
  type: 'blur'
108
104
  });
109
105
  }
@@ -160,6 +156,7 @@ const EditableCell = props => {
160
156
  minDate: minDate,
161
157
  onChange: (newDate, dateString) => {
162
158
  const newDateValue = dateString ? (0, _moment.default)((0, _hooks.convertDayjsToDate)(dateString, dateFormat)).format() : null;
159
+ // console.log('newDateValue', newDateValue)
163
160
  onChange(newDateValue);
164
161
  setTimeout(() => {
165
162
  // @ts-ignore
@@ -172,13 +169,14 @@ const EditableCell = props => {
172
169
  // @ts-ignore
173
170
  const prevState = record[dataIndex];
174
171
  const newState = itemState;
172
+ const key = getRowKey?.(record, index);
175
173
  if (prevState !== newState) {
176
- // @ts-ignore
177
174
  handleCellChange?.({
178
- key: record[rowKey],
175
+ key: key,
179
176
  record: formState,
180
177
  prevState,
181
178
  newState,
179
+ option: newState,
182
180
  type: 'blur'
183
181
  });
184
182
  }
@@ -189,8 +187,6 @@ const EditableCell = props => {
189
187
  case 'quarter':
190
188
  case 'year':
191
189
  const pickerFormat = (0, _hooks.getDatepickerFormat)(editType, column);
192
- // @ts-ignore
193
- // const dateValue = !isEmpty(record[column.dataIndex]) ? dayjs(record[column.key], pickerFormat) : null
194
190
  const maxDateValue1 = !(0, _hooks.isEmpty)(column.maxDate) ? (0, _dayjs.default)(column.maxDate, pickerFormat) : undefined;
195
191
  const minDateValue1 = !(0, _hooks.isEmpty)(column.minDate) ? (0, _dayjs.default)(column.minDate, pickerFormat) : undefined;
196
192
  return /*#__PURE__*/_react.default.createElement(_antd.DatePicker, {
@@ -202,28 +198,16 @@ const EditableCell = props => {
202
198
  style: {
203
199
  width: '100%',
204
200
  height: '100%'
205
- }
206
- // defaultValue={dateValue}
207
- ,
201
+ },
208
202
  picker: editType,
209
203
  placeholder: column.placeholder,
210
204
  disabled: (0, _hooks.isDisable)(column, record) ?? false,
211
205
  maxDate: maxDateValue1,
212
- minDate: minDateValue1
213
- // onChange={(dValue, dateString) => {
214
- // const newDateValue = dateString ? dateString : null
215
- //
216
- // // record[column.dataIndex] = newDateValue
217
- // // handleCellChange(newDateValue, newDateValue, record, col, indexRow, indexCol)
218
- // }}
219
- ,
206
+ minDate: minDateValue1,
220
207
  popupClassName: 'be-popup-container'
221
208
  });
222
209
  case 'week':
223
210
  const weekFormat = (0, _hooks.getDatepickerFormat)(editType, column);
224
-
225
- // @ts-ignore
226
- // const weekValue = !isEmpty(record[column.dataIndex]) ? dayjs(record[column.dataIndex], weekFormat) : null
227
211
  const maxWeekValue = !(0, _hooks.isEmpty)(column.maxDate) ? (0, _dayjs.default)(column.maxDate, weekFormat) : undefined;
228
212
  const minWeekValue = !(0, _hooks.isEmpty)(column.minDate) ? (0, _dayjs.default)(column.minDate, weekFormat) : undefined;
229
213
  return /*#__PURE__*/_react.default.createElement(_antd.DatePicker, {
@@ -231,21 +215,12 @@ const EditableCell = props => {
231
215
  style: {
232
216
  width: '100%',
233
217
  height: '100%'
234
- }
235
- // defaultValue={weekValue}
236
- ,
218
+ },
237
219
  picker: editType,
238
220
  placeholder: column.placeholder,
239
221
  disabled: (0, _hooks.isDisable)(column, record) ?? false,
240
222
  maxDate: maxWeekValue,
241
- minDate: minWeekValue
242
- // onChange={(dateValue, dateString) => {
243
- // const newDateValue = dateString ? dateString : null
244
- //
245
- // record[column.dataIndex] = newDateValue
246
- // handleCellChange(newDateValue, newDateValue, record, col, indexRow, indexCol)
247
- // }}
248
- ,
223
+ minDate: minWeekValue,
249
224
  popupClassName: 'be-popup-container'
250
225
  });
251
226
  case 'time':
@@ -261,22 +236,10 @@ const EditableCell = props => {
261
236
  format: {
262
237
  format: timeFormat,
263
238
  type: 'mask'
264
- }
265
- // defaultValue={timeValue}
266
- ,
239
+ },
267
240
  maxDate: maxTime,
268
241
  minDate: minTime,
269
- disabled: (0, _hooks.isDisable)(column, record) ?? false
270
- // onChange={(values: any, timeString) => {
271
- // const newTimeValue = timeString ? timeString : null
272
- // const newrecordData = {
273
- // ...record,
274
- // // [column.dataIndex]: newTimeValue
275
- // }
276
- //
277
- // // handleCellChange(newTimeValue, newTimeValue, newrecordData, col, indexRow, indexCol)
278
- // }}
279
- ,
242
+ disabled: (0, _hooks.isDisable)(column, record) ?? false,
280
243
  style: {
281
244
  width: '100%',
282
245
  height: '100%'
@@ -339,21 +302,31 @@ const EditableCell = props => {
339
302
  // @ts-ignore
340
303
  valueSelectTable = column?.editSelectSettings?.defaultValue(record[column.dataIndex], record);
341
304
  }
305
+ console.log('valueSelectTable', valueSelectTable);
342
306
  return /*#__PURE__*/_react.default.createElement(_asyncTableSelect.AsyncTableSelect, {
343
307
  id: `col${indexCol}-record${indexRow}`,
344
308
  columns: columnsTable,
345
309
  options: options,
346
310
  defaultOptions: options
347
- // onChange={(val: any, option) => {
348
- // // const newValue = val && (column?.editSelectSettings?.isMulti || column?.editSelectSettings?.selectMode === 'checkbox') ? (val?.map((item: any) => item[keySelect]) ?? []) : (val ? val[keySelect] : null)
349
- // const newrecordData = {
350
- // ...record,
351
- // [column.dataIndex]: val
352
- // }
353
- //
354
- // // handleCellChange(option, val, newrecordData, col, indexRow, indexCol)
355
- // }}
311
+ // value={valueSelectTable}
356
312
  ,
313
+ value: value,
314
+ onChange: (val, option) => {
315
+ onChange(val);
316
+ const formState = getValues();
317
+ // const itemState = getValues(dataIndex)
318
+ // @ts-ignore
319
+ const prevState = record[dataIndex];
320
+ const newState = val;
321
+ handleCellChange?.({
322
+ key: getRowKey?.(record, index),
323
+ record: formState,
324
+ prevState,
325
+ newState,
326
+ option: option,
327
+ type: 'blur'
328
+ });
329
+ },
357
330
  showSearch: true,
358
331
  mode: column?.editSelectSettings?.isMulti || column?.editSelectSettings?.selectMode === 'checkbox' ? 'multiple' : undefined,
359
332
  focusToSelectAll: true,
@@ -362,16 +335,13 @@ const EditableCell = props => {
362
335
  width: '100%',
363
336
  height: '100%'
364
337
  },
365
- value: valueSelectTable,
366
338
  placeholder: t ? t('Select') : 'Select',
367
339
  allowClear: column.isClearable ?? false,
368
340
  maxTagCount: 'responsive',
369
341
  rowKey: keySelect,
370
342
  popupMatchSelectWidth: column?.editSelectSettings?.menuWidth ? column?.editSelectSettings?.menuWidth + 10 : undefined,
371
343
  optionFilterProp: "label",
372
- popupClassName: 'be-popup-container'
373
- // onPaste={(e: any) => handleOnCellPaste(e, indexRow, indexCol)}
374
- ,
344
+ popupClassName: 'be-popup-container',
375
345
  loadOptions: column?.editSelectSettings?.loadOptions,
376
346
  status: isInvalid ? 'error' : undefined,
377
347
  dropdownRender: menu => {
@@ -459,27 +429,26 @@ const EditableCell = props => {
459
429
  onChange: (val, item) => {
460
430
  console.log('item', item);
461
431
  onChange(val);
462
- },
463
- onBlur: () => {
464
- const formState = getValues();
465
- // const itemState = getValues(dataIndex)
466
-
467
- // @ts-ignore
468
- const prevState = record[dataIndex];
469
- // const newState = value
432
+ }
470
433
 
471
- // console.log('prevState', prevState)
472
- // console.log('newState', newState)
473
- // console.log('itemState', itemState)
474
- if (value !== prevState) {
475
- // @ts-ignore
476
- handleCellChange?.({
477
- key: record[rowKey],
478
- record: formState,
479
- type: 'blur'
480
- });
481
- }
482
- },
434
+ // onBlur={() => {
435
+ // const formState = getValues()
436
+ // // const itemState = getValues(dataIndex)
437
+ //
438
+ // // @ts-ignore
439
+ // const prevState = record[dataIndex]
440
+ // // const newState = value
441
+ //
442
+ // // console.log('prevState', prevState)
443
+ // // console.log('newState', newState)
444
+ // // console.log('itemState', itemState)
445
+ //
446
+ // if (value !== prevState) {
447
+ // // @ts-ignore
448
+ // handleCellChange?.({key: record[rowKey], record: formState, type: 'blur'})
449
+ // }
450
+ // }}
451
+ ,
483
452
  popupClassName: 'be-popup-container'
484
453
  });
485
454
  case 'treeSelect':
@@ -2,5 +2,6 @@ import React from 'react';
2
2
  import type { GridTableProps } from "./type";
3
3
  import 'dayjs/locale/es';
4
4
  import 'dayjs/locale/vi';
5
+ import './styles.scss';
5
6
  declare const InternalTable: <RecordType extends object>(props: GridTableProps<RecordType>) => React.JSX.Element;
6
7
  export default InternalTable;
@@ -10,7 +10,6 @@ var _react = _interopRequireWildcard(require("react"));
10
10
  var _rcMasterUi = require("rc-master-ui");
11
11
  var _antd = require("antd");
12
12
  var _icons = require("@ant-design/icons");
13
- var _styledComponents = _interopRequireDefault(require("styled-components"));
14
13
  var _reactResizable = require("react-resizable");
15
14
  var _customParseFormat = _interopRequireDefault(require("dayjs/plugin/customParseFormat"));
16
15
  var _hooks = require("./hooks");
@@ -21,8 +20,9 @@ require("dayjs/locale/es");
21
20
  require("dayjs/locale/vi");
22
21
  var _en_US = _interopRequireDefault(require("rc-master-ui/es/date-picker/locale/en_US"));
23
22
  var _vi_VN = _interopRequireDefault(require("rc-master-ui/es/date-picker/locale/vi_VN"));
24
- var _GridEdit = _interopRequireDefault(require("./rc-table/GridEdit"));
25
- var _Grid = _interopRequireDefault(require("./rc-table/Grid"));
23
+ require("./styles.scss");
24
+ var _GridEdit = _interopRequireDefault(require("./table/GridEdit"));
25
+ var _Grid = _interopRequireDefault(require("./table/Grid"));
26
26
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
27
27
  function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
28
28
  _dayjs.default.extend(_customParseFormat.default);
@@ -54,20 +54,17 @@ const ResizableTitle = props => {
54
54
  }, /*#__PURE__*/_react.default.createElement("th", restProps))
55
55
  );
56
56
  };
57
- const GridStyle = _styledComponents.default.div.withConfig({
58
- displayName: "GridStyle",
59
- componentId: "es-grid-template__sc-1awgu8w-0"
60
- })([".ui-rc-pagination{border-bottom:1px solid #e0e0e0;border-top:1px solid #e0e0e0;margin:0;padding:.75rem 1rem;.ui-rc-pagination-total-text{order:2;margin-left:auto;}&::before{content:\"\";position:absolute;border-left:1px solid #e0e0e0;height:", ";bottom:0;left:0;}&::after{content:\"\";position:absolute;border-left:1px solid #e0e0e0;height:", ";bottom:0;visibility:visible;right:0;}}"], props => props.heightTable ? typeof props.heightTable === 'string' ? props.heightTable : `${props.heightTable}px` : undefined, props => props.heightTable ? `${props.heightTable}px` : undefined);
61
57
  const InternalTable = props => {
62
58
  const {
63
59
  t,
64
60
  columns: propsColumns,
65
61
  lang,
66
62
  dataSource,
67
- allowResizing = true,
63
+ allowResizing,
68
64
  dataSourceFilter: propDataSourceFilter,
69
65
  onFilterClick,
70
66
  editAble,
67
+ rowKey,
71
68
  ...rest
72
69
  } = props;
73
70
  const locale = lang && lang === 'en' ? _en_US.default : _vi_VN.default;
@@ -92,6 +89,17 @@ const InternalTable = props => {
92
89
  }
93
90
  setIsManualUpdate(false);
94
91
  }, [dataSource]);
92
+
93
+ // ============================ RowKey ============================
94
+ const getRowKey = _react.default.useMemo(() => {
95
+ if (typeof rowKey === 'function') {
96
+ return rowKey;
97
+ }
98
+
99
+ // @ts-ignore
100
+ return record => record?.[rowKey];
101
+ }, [rowKey]);
102
+ console.log('getRowKey', getRowKey);
95
103
  const handleSearch = (selectedKeys, confirm) => {
96
104
  confirm();
97
105
  };
@@ -253,11 +261,14 @@ const InternalTable = props => {
253
261
  return {
254
262
  ...getColumnSearchProps(col),
255
263
  ...col,
264
+ dataIndex: col.field ?? col.dataIndex,
256
265
  title: col.headerText ?? col.title,
257
266
  ellipsis: col.ellipsis !== false,
267
+ align: col.textAlign ?? col.align,
268
+ fixed: col.frozen ? col.frozen.toLowerCase() : col.fixed,
258
269
  onFilter: (value, record) => {
259
270
  // @ts-ignore
260
- return record[column?.dataIndex];
271
+ return record[col.field ?? col.dataIndex];
261
272
  },
262
273
  onHeaderCell: () => ({
263
274
  width: col.width,
@@ -269,13 +280,13 @@ const InternalTable = props => {
269
280
  const mergedColumns = _react.default.useMemo(() => {
270
281
  return transformColumns(columns);
271
282
  }, [transformColumns, columns]);
283
+
284
+ // console.log('mergedColumns', mergedColumns)
285
+
286
+ const triggerChangeColumns = () => {};
287
+ const triggerChangeData = () => {};
272
288
  const TableComponent = editAble ? _GridEdit.default : _Grid.default;
273
- return /*#__PURE__*/_react.default.createElement(_react.Fragment, null, /*#__PURE__*/_react.default.createElement(GridStyle, {
274
- heightTable: props.style?.minHeight,
275
- style: {
276
- position: 'relative'
277
- }
278
- }, /*#__PURE__*/_react.default.createElement(TableComponent, (0, _extends2.default)({}, rest, {
289
+ return /*#__PURE__*/_react.default.createElement(TableComponent, (0, _extends2.default)({}, rest, {
279
290
  tableRef: tableRef,
280
291
  dataSource: data,
281
292
  components: {
@@ -283,10 +294,16 @@ const InternalTable = props => {
283
294
  cell: allowResizing ? ResizableTitle : undefined
284
295
  }
285
296
  },
286
- columns: mergedColumns,
297
+ columns: mergedColumns
298
+ // columns={columns}
299
+ ,
287
300
  showSorterTooltip: {
288
301
  target: 'sorter-icon'
289
- }
290
- }))));
302
+ },
303
+ triggerChangeColumns: triggerChangeColumns,
304
+ triggerChangeData: triggerChangeData,
305
+ rowKey: rowKey,
306
+ getRowKey: getRowKey
307
+ }));
291
308
  };
292
309
  var _default = exports.default = InternalTable;
@@ -3,7 +3,8 @@ import 'dayjs/locale/es';
3
3
  import 'dayjs/locale/vi';
4
4
  import type { GridTableProps } from "./type";
5
5
  type GridProps<T> = GridTableProps<T> & {
6
- setColumns?: any;
6
+ triggerChangeColumns?: () => void;
7
+ triggerChangeData?: () => void;
7
8
  tableRef: any;
8
9
  };
9
10
  declare const TableGrid: <RecordType extends object>(props: GridProps<RecordType>) => React.JSX.Element;
@@ -22,6 +22,9 @@ var _LoadingSpinner = _interopRequireDefault(require("./LoadingSpinner"));
22
22
  var _ColumnsChoose = require("./ColumnsChoose");
23
23
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
24
24
  function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
25
+ // import {useMergedState} from "rc-util";
26
+ // import useMergedState from 'rc-util/lib/hooks/useMergedState';
27
+
25
28
  const convertFilters = filters => {
26
29
  const result = [];
27
30
  filters.forEach(({
@@ -70,7 +73,6 @@ const convertFilters = filters => {
70
73
  const useStyle = (0, _antdStyle.createStyles)(({
71
74
  css
72
75
  }) => {
73
- // const { antCls } = token
74
76
  const antCls = 'ui-rc';
75
77
  return {
76
78
  customTable: css`
@@ -89,6 +91,8 @@ const useStyle = (0, _antdStyle.createStyles)(({
89
91
  });
90
92
  // type OnChange = NonNullable<TableProps<any>['onChange']>;
91
93
 
94
+ // const EMPTY_LIST: React.Key[] = [];
95
+
92
96
  const TableGrid = props => {
93
97
  const {
94
98
  columns,
@@ -116,20 +120,31 @@ const TableGrid = props => {
116
120
  onFilterClick,
117
121
  dataSourceFilter: propDataSourceFilter,
118
122
  loading,
119
- setColumns,
120
- // dataSourceFilter,
123
+ triggerChangeColumns,
121
124
  ...rest
122
125
  } = props;
123
126
  const {
124
127
  styles
125
128
  } = useStyle();
129
+ const {
130
+ mode,
131
+ type,
132
+ checkboxOnly,
133
+ hideSelectAll,
134
+ columnWidth,
135
+ selectedRowKeys
136
+ // defaultSelectedRowKeys
137
+ } = selectionSettings || {};
126
138
  const clickRef = (0, _react.useRef)(null);
127
139
  const menuRef = (0, _react.useRef)(null);
128
140
  const viewportWidth = window.innerWidth;
129
141
  const viewportHeight = window.innerHeight;
130
- const defaultSelected = (0, _react.useMemo)(() => {
131
- return selectionSettings?.defaultSelectedRowKeys ?? [];
132
- }, [selectionSettings?.defaultSelectedRowKeys]);
142
+
143
+ // const defaultSelected = useMemo(() => {
144
+ // return defaultSelectedRowKeys ?? []
145
+ //
146
+ // }, [defaultSelectedRowKeys])
147
+
133
148
  const [menuVisible, setMenuVisible] = _react.default.useState(false);
134
149
  const [selectedRowData, setSelectedRowData] = _react.default.useState(null);
135
150
  const [position, setPosition] = _react.default.useState({
@@ -138,7 +153,25 @@ const TableGrid = props => {
138
153
  viewportWidth,
139
154
  viewportHeight
140
155
  });
141
- const [selectedRowKeys, setSelectedRowKeys] = (0, _react.useState)(defaultSelected);
156
+
157
+ // const [selectedRowKeys, setSelectedRowKeys] = useState<React.Key[]>(defaultSelected);
158
+
159
+ // ========================= Keys =========================
160
+ // const [mergedSelectedKeys, setMergedSelectedKeys] = useMergedState(
161
+ // selectedRowKeys || defaultSelectedRowKeys || EMPTY_LIST,
162
+ // {
163
+ // value: selectedRowKeys,
164
+ // },
165
+ // );
166
+
167
+ // Reset if rowSelection reset
168
+
169
+ // React.useEffect(() => {
170
+ // if (!selectionSettings) {
171
+ // setMergedSelectedKeys(EMPTY_LIST);
172
+ // }
173
+ // }, [!!selectionSettings]);
174
+
142
175
  const contextMenuItems = _react.default.useMemo(() => {
143
176
  if (typeof contextMenuHidden === "function" && propContextMenuItems && selectedRowData) {
144
177
  const hiddenItems = contextMenuHidden({
@@ -206,7 +239,17 @@ const TableGrid = props => {
206
239
  });
207
240
  }
208
241
  };
209
- const handleRowClick = () => {
242
+ const handleRowClick = () => () => {
243
+ // console.log(data)
244
+ // console.log(index)
245
+
246
+ // const key = getRowKey(record, index);
247
+
248
+ // console.log('key', key)
249
+
250
+ if (checkboxOnly !== true) {
251
+ if (type === 'single') {}
252
+ }
210
253
  if (clickRef.current) return;
211
254
 
212
255
  // @ts-ignore
@@ -228,7 +271,7 @@ const TableGrid = props => {
228
271
  };
229
272
  const onSelectChange = (keys, selectedRows, info, selectedRow) => {
230
273
  if (info.type === 'all') {
231
- // setSelectedRowKeys(keys)
274
+ // setMergedSelectedKeys(keys)
232
275
  rowSelected?.({
233
276
  selected: selectedRows,
234
277
  type: 'rowSelected',
@@ -236,7 +279,7 @@ const TableGrid = props => {
236
279
  });
237
280
  } else {
238
281
  if (selectionSettings?.type === 'multiple') {
239
- // setSelectedRowKeys(keys)
282
+ // setMergedSelectedKeys(keys)
240
283
  rowSelected?.({
241
284
  selected: selectedRows,
242
285
  type: 'rowSelected',
@@ -244,7 +287,7 @@ const TableGrid = props => {
244
287
  });
245
288
  } else {
246
289
  // @ts-ignore
247
- setSelectedRowKeys([selectedRow[rowKey]]);
290
+ setMergedSelectedKeys([selectedRow[rowKey]]);
248
291
  rowSelected?.({
249
292
  selected: [selectedRow],
250
293
  type: 'rowSelected',
@@ -300,19 +343,21 @@ const TableGrid = props => {
300
343
  onRow: (data, index) => {
301
344
  return {
302
345
  onDoubleClick: handleRowDoubleClick(data, index),
303
- onClick: handleRowClick,
346
+ // onClick: handleRowClick,
347
+ onClick: handleRowClick(),
304
348
  onContextMenu: onContextMenu(data)
305
349
  };
306
350
  },
307
351
  rowSelection: {
308
- type: selectionSettings?.mode === 'checkbox' || selectionSettings?.type === 'multiple' ? 'checkbox' : "radio",
309
- columnWidth: !selectionSettings?.mode ? 0.0000001 : selectionSettings?.columnWidth ?? 50,
352
+ ...selectionSettings,
353
+ type: selectionSettings?.mode === 'checkbox' || type === 'multiple' ? 'checkbox' : "radio",
354
+ columnWidth: !mode ? 0.0000001 : columnWidth ?? 50,
310
355
  onChange: onSelectChange,
311
- selectedRowKeys: selectionSettings?.mode === 'checkbox' && selectionSettings?.type === 'single' ? selectedRowKeys : undefined,
356
+ selectedRowKeys: mode === 'checkbox' && type === 'single' ? selectedRowKeys : undefined,
312
357
  defaultSelectedRowKeys: selectionSettings?.defaultSelectedRowKeys,
313
358
  preserveSelectedRowKeys: true,
314
359
  ...rowSelection,
315
- hideSelectAll: !selectionSettings?.type || selectionSettings?.type === 'single' || selectionSettings?.mode === 'radio' ? true : selectionSettings?.hideSelectAll ?? selectionSettings?.type !== 'multiple'
360
+ hideSelectAll: !type || type === 'single' || selectionSettings?.mode === 'radio' ? true : hideSelectAll ?? type !== 'multiple'
316
361
  },
317
362
  onScroll: () => {
318
363
  setMenuVisible(false);
@@ -367,7 +412,7 @@ const TableGrid = props => {
367
412
  }
368
413
  }), showColumnChoose && /*#__PURE__*/_react.default.createElement(_ColumnsChoose.ColumnsChoose, {
369
414
  columns: columns,
370
- setColumns: setColumns
415
+ triggerChangeColumns: triggerChangeColumns
371
416
  }), /*#__PURE__*/_react.default.createElement("div", null)));
372
417
  }
373
418
  }, rest)), pagination && pagination.onChange && /*#__PURE__*/_react.default.createElement(_pagination.default
@@ -1,2 +1,4 @@
1
1
  import InternalTable from './InternalTable';
2
+ import type { ColumnsTable, TableProps, ColumnTable } from './type';
3
+ export type { ColumnsTable, TableProps, ColumnTable };
2
4
  export default InternalTable;