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.
- package/CHANGELOG.md +6 -6
- package/README.md +1 -1
- package/es/grid-component/ColumnsChoose.d.ts +3 -4
- package/es/grid-component/ColumnsChoose.js +3 -7
- package/es/grid-component/Command.d.ts +8 -0
- package/es/grid-component/Command.js +80 -0
- package/es/grid-component/EditableCell.js +56 -87
- package/es/grid-component/InternalTable.d.ts +1 -0
- package/es/grid-component/InternalTable.js +36 -19
- package/es/grid-component/TableGrid.d.ts +2 -1
- package/es/grid-component/TableGrid.js +63 -18
- package/es/grid-component/index.d.ts +2 -0
- package/es/{table-grid → grid-component}/styles.scss +204 -195
- package/es/grid-component/table/Grid.js +85 -0
- package/{lib/grid-component/rc-table → es/grid-component/table}/GridEdit.d.ts +4 -0
- package/es/grid-component/{rc-table → table}/GridEdit.js +98 -15
- package/es/grid-component/type.d.ts +26 -11
- package/es/grid-component/useContext.d.ts +10 -7
- package/es/grid-component/useContext.js +3 -0
- package/es/index.d.ts +2 -1
- package/es/index.js +1 -2
- package/lib/grid-component/ColumnsChoose.d.ts +3 -4
- package/lib/grid-component/ColumnsChoose.js +3 -7
- package/lib/grid-component/Command.d.ts +8 -0
- package/lib/grid-component/Command.js +88 -0
- package/lib/grid-component/EditableCell.js +56 -87
- package/lib/grid-component/InternalTable.d.ts +1 -0
- package/lib/grid-component/InternalTable.js +35 -18
- package/lib/grid-component/TableGrid.d.ts +2 -1
- package/lib/grid-component/TableGrid.js +62 -17
- package/lib/grid-component/index.d.ts +2 -0
- package/lib/{table-grid → grid-component}/styles.scss +204 -195
- package/lib/grid-component/{rc-table → table}/Grid.js +42 -56
- package/{es/grid-component/rc-table → lib/grid-component/table}/GridEdit.d.ts +4 -0
- package/lib/grid-component/{rc-table → table}/GridEdit.js +98 -15
- package/lib/grid-component/type.d.ts +26 -11
- package/lib/grid-component/useContext.d.ts +10 -7
- package/lib/grid-component/useContext.js +2 -0
- package/lib/index.d.ts +2 -1
- package/lib/index.js +1 -1
- package/package.json +113 -86
- package/es/grid-component/rc-table/Grid.js +0 -99
- /package/es/{grid-component/Message → Message}/Message.d.ts +0 -0
- /package/es/{grid-component/Message → Message}/Message.js +0 -0
- /package/es/{grid-component/Message → Message}/index.d.ts +0 -0
- /package/es/{grid-component/Message → Message}/index.js +0 -0
- /package/es/grid-component/{rc-table → table}/Grid.d.ts +0 -0
- /package/lib/{grid-component/Message → Message}/Message.d.ts +0 -0
- /package/lib/{grid-component/Message → Message}/Message.js +0 -0
- /package/lib/{grid-component/Message → Message}/index.d.ts +0 -0
- /package/lib/{grid-component/Message → Message}/index.js +0 -0
- /package/lib/grid-component/{rc-table → table}/Grid.d.ts +0 -0
|
@@ -21,7 +21,8 @@ require("dayjs/locale/es");
|
|
|
21
21
|
require("dayjs/locale/vi");
|
|
22
22
|
var _TableGrid = _interopRequireDefault(require("../TableGrid"));
|
|
23
23
|
var _hooks = require("../hooks");
|
|
24
|
-
var _Message = _interopRequireDefault(require("
|
|
24
|
+
var _Message = _interopRequireDefault(require("../../Message/Message"));
|
|
25
|
+
var _Command = _interopRequireDefault(require("../Command"));
|
|
25
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); }
|
|
26
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; }
|
|
27
28
|
_dayjs.default.extend(_customParseFormat.default);
|
|
@@ -32,6 +33,7 @@ const GridEdit = props => {
|
|
|
32
33
|
t,
|
|
33
34
|
columns,
|
|
34
35
|
dataSource,
|
|
36
|
+
components,
|
|
35
37
|
allowResizing,
|
|
36
38
|
rowKey = 'id',
|
|
37
39
|
selectionSettings,
|
|
@@ -40,9 +42,13 @@ const GridEdit = props => {
|
|
|
40
42
|
onDataChange,
|
|
41
43
|
onCellPaste,
|
|
42
44
|
onCellChange,
|
|
43
|
-
|
|
45
|
+
style,
|
|
46
|
+
getRowKey,
|
|
44
47
|
...rest
|
|
45
48
|
} = props;
|
|
49
|
+
|
|
50
|
+
// const forceUpdate = useForceUpdate();
|
|
51
|
+
const [updateKey, setUpdateKey] = (0, _react.useState)(0);
|
|
46
52
|
const isSelecting = (0, _react.useRef)(false);
|
|
47
53
|
const startCell = (0, _react.useRef)(null);
|
|
48
54
|
const isSelectingRow = (0, _react.useRef)(false);
|
|
@@ -125,6 +131,30 @@ const GridEdit = props => {
|
|
|
125
131
|
}
|
|
126
132
|
setSelectedCells(newSelectedCells);
|
|
127
133
|
};
|
|
134
|
+
const handleClickRowHeader = (row, col) => {
|
|
135
|
+
const newSelectedCells = new Set();
|
|
136
|
+
for (let r = Math.min(row, row); r <= Math.max(row, row); r++) {
|
|
137
|
+
for (let c = Math.min(columns.length, col) + 1; c <= Math.max(columns.length, col); c++) {
|
|
138
|
+
newSelectedCells.add(`${r}-${c}`);
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
setSelectedCells(newSelectedCells);
|
|
142
|
+
};
|
|
143
|
+
const handleClickColHeader = (column, indexColumn) => {
|
|
144
|
+
const newSelectedCells = new Set();
|
|
145
|
+
for (let r = Math.min(dataSource.length, 0); r <= Math.max(dataSource.length - 1, 0); r++) {
|
|
146
|
+
for (let c = Math.min(indexColumn, indexColumn); c <= Math.max(indexColumn, indexColumn); c++) {
|
|
147
|
+
newSelectedCells.add(`${r}-${c}`);
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
// console.log('newSelectedCells', newSelectedCells)
|
|
152
|
+
// setSelectedCells(newSelectedCells)
|
|
153
|
+
|
|
154
|
+
setSelectedCells(new Set(newSelectedCells));
|
|
155
|
+
// forceUpdate();
|
|
156
|
+
setUpdateKey(prev => prev + 1); // Cập nhật key để trigger re-render
|
|
157
|
+
};
|
|
128
158
|
const handleMouseDownColIndex = (row, col, e) => {
|
|
129
159
|
if (e.button === 2) {
|
|
130
160
|
e.stopPropagation();
|
|
@@ -347,15 +377,15 @@ const GridEdit = props => {
|
|
|
347
377
|
record,
|
|
348
378
|
type,
|
|
349
379
|
newState,
|
|
350
|
-
prevState
|
|
380
|
+
prevState,
|
|
381
|
+
option
|
|
351
382
|
} = args;
|
|
352
383
|
|
|
353
384
|
// console.log('newState', newState)
|
|
354
385
|
//
|
|
355
386
|
// console.log('getValues()', getValues())
|
|
356
387
|
|
|
357
|
-
|
|
358
|
-
|
|
388
|
+
const newRecord = getValues();
|
|
359
389
|
if (type === 'enter') {
|
|
360
390
|
console.log('aaaaaa enter');
|
|
361
391
|
}
|
|
@@ -366,7 +396,16 @@ const GridEdit = props => {
|
|
|
366
396
|
// const newDataUpdate = updateData(data, callbackData, rowKey as any)
|
|
367
397
|
|
|
368
398
|
console.log('callbackData', callbackData);
|
|
369
|
-
const
|
|
399
|
+
const callbackRecord = callbackData;
|
|
400
|
+
Object.entries(callbackRecord).forEach(([name, value]) => {
|
|
401
|
+
setValue(name, value);
|
|
402
|
+
|
|
403
|
+
// if (listObjectDate.includes(name) && value) {
|
|
404
|
+
// setValue(name, new Date(value))
|
|
405
|
+
// } else {
|
|
406
|
+
// setValue(name, value)
|
|
407
|
+
// }
|
|
408
|
+
});
|
|
370
409
|
onSubmit(newRecord);
|
|
371
410
|
};
|
|
372
411
|
if (onCellChange) {
|
|
@@ -376,8 +415,8 @@ const GridEdit = props => {
|
|
|
376
415
|
field: '',
|
|
377
416
|
indexCol: 1,
|
|
378
417
|
type: 'onChange',
|
|
379
|
-
rows: [],
|
|
380
418
|
value: newState,
|
|
419
|
+
option,
|
|
381
420
|
indexRow: 1,
|
|
382
421
|
rowData: record,
|
|
383
422
|
rowId: '',
|
|
@@ -385,12 +424,14 @@ const GridEdit = props => {
|
|
|
385
424
|
sumValue: []
|
|
386
425
|
}, handleChangeCallback);
|
|
387
426
|
} else {
|
|
427
|
+
// const aaaa = updateData(dataSource, newRecord, rowKey as any)
|
|
428
|
+
|
|
388
429
|
console.log('onCellChange');
|
|
389
430
|
onCellChange({
|
|
390
431
|
field: '',
|
|
391
432
|
indexCol: 1,
|
|
392
433
|
type: 'onChange',
|
|
393
|
-
|
|
434
|
+
option,
|
|
394
435
|
value: newState,
|
|
395
436
|
indexRow: 1,
|
|
396
437
|
rowData: record,
|
|
@@ -555,6 +596,7 @@ const GridEdit = props => {
|
|
|
555
596
|
if (col.dataIndex === 'index' || col.field === 'index' || col.dataIndex === '#' || col.dataIndex === '#') {
|
|
556
597
|
return {
|
|
557
598
|
...col,
|
|
599
|
+
className: 'rc-ui-cell-editable',
|
|
558
600
|
render: (value, record, rowIndex) => {
|
|
559
601
|
return /*#__PURE__*/_react.default.createElement("div", {
|
|
560
602
|
className: (0, _classnames.default)('ui-rc_cell-content ui-rc_cell-content--index', {
|
|
@@ -562,13 +604,45 @@ const GridEdit = props => {
|
|
|
562
604
|
focus: selectedCells && Array.from(selectedCells).some(item => item.startsWith(`${rowIndex}-`))
|
|
563
605
|
}),
|
|
564
606
|
onMouseDown: event => handleMouseDownColIndex(rowIndex, colIndex, event),
|
|
565
|
-
onMouseEnter: event => handleMouseEnterColIndex(rowIndex, colIndex, event)
|
|
607
|
+
onMouseEnter: event => handleMouseEnterColIndex(rowIndex, colIndex, event),
|
|
608
|
+
onClick: () => handleClickRowHeader(rowIndex, colIndex)
|
|
566
609
|
}, /*#__PURE__*/_react.default.createElement("div", {
|
|
567
610
|
className: 'ui-rc_content'
|
|
568
611
|
}, rowIndex + 1));
|
|
569
612
|
}
|
|
570
613
|
};
|
|
571
614
|
}
|
|
615
|
+
if (col.dataIndex === 'command' || col.field === 'command') {
|
|
616
|
+
return {
|
|
617
|
+
...col,
|
|
618
|
+
title: col.headerText ?? col.title,
|
|
619
|
+
ellipsis: col.ellipsis !== false,
|
|
620
|
+
onCell: () => ({
|
|
621
|
+
className: 'ui-rc-cell-command'
|
|
622
|
+
}),
|
|
623
|
+
// render: (value: any, record: any, rowIndex: number) => {
|
|
624
|
+
render: () => {
|
|
625
|
+
return /*#__PURE__*/_react.default.createElement("div", {
|
|
626
|
+
className: (0, _classnames.default)('ui-rc-cell-command__content', {})
|
|
627
|
+
}, col.commandItems && col.commandItems?.map((item, indexComm) => {
|
|
628
|
+
if (item.visible !== false) {
|
|
629
|
+
// return (
|
|
630
|
+
// <span>{item.title}</span>
|
|
631
|
+
// )
|
|
632
|
+
|
|
633
|
+
return /*#__PURE__*/_react.default.createElement(_Command.default, {
|
|
634
|
+
key: `command-${indexComm}`,
|
|
635
|
+
item: item,
|
|
636
|
+
onClick: e => {
|
|
637
|
+
e.preventDefault();
|
|
638
|
+
// handleCommandClick({command: item, rowData: record, index: rowIndex})
|
|
639
|
+
}
|
|
640
|
+
});
|
|
641
|
+
}
|
|
642
|
+
}));
|
|
643
|
+
}
|
|
644
|
+
};
|
|
645
|
+
}
|
|
572
646
|
return {
|
|
573
647
|
...col,
|
|
574
648
|
onCell: (record, rowIndex) => ({
|
|
@@ -633,7 +707,7 @@ const GridEdit = props => {
|
|
|
633
707
|
setEditingKey('');
|
|
634
708
|
}
|
|
635
709
|
},
|
|
636
|
-
className: isEditing(record) ? 'cell-editing' : 'cell-editable',
|
|
710
|
+
className: isEditing(record) ? 'rc-ui-cell-editable cell-editing' : 'rc-ui-cell-editable cell-editable',
|
|
637
711
|
record,
|
|
638
712
|
column: col,
|
|
639
713
|
editType: (0, _hooks.getEditType)(col, record),
|
|
@@ -641,20 +715,25 @@ const GridEdit = props => {
|
|
|
641
715
|
title: col.title,
|
|
642
716
|
'data-col-index': colIndex,
|
|
643
717
|
'data-row-index': rowIndex,
|
|
644
|
-
colIndex: colIndex,
|
|
718
|
+
// colIndex: colIndex,
|
|
645
719
|
indexCol: colIndex,
|
|
646
720
|
indexRow: rowIndex,
|
|
647
721
|
editing: isEditing(record),
|
|
648
722
|
tabIndex: (rowIndex ?? 0) * columns.length + colIndex
|
|
649
723
|
}),
|
|
724
|
+
onHeaderCell: data => ({
|
|
725
|
+
...col.onHeaderCell(),
|
|
726
|
+
onClick: () => {
|
|
727
|
+
handleClickColHeader(data, colIndex);
|
|
728
|
+
}
|
|
729
|
+
}),
|
|
650
730
|
render: (value, record, rowIndex) => {
|
|
651
731
|
return /*#__PURE__*/_react.default.createElement("div", {
|
|
652
732
|
className: (0, _classnames.default)('ui-rc_cell-content', {
|
|
653
733
|
selected: selectedCells.has(`${rowIndex}-${colIndex}`)
|
|
654
734
|
}),
|
|
655
735
|
onMouseDown: event => handleMouseDown(rowIndex, colIndex, event),
|
|
656
|
-
onMouseEnter: () => handleMouseEnter(rowIndex, colIndex)
|
|
657
|
-
onMouseLeave: () => {}
|
|
736
|
+
onMouseEnter: () => handleMouseEnter(rowIndex, colIndex)
|
|
658
737
|
}, /*#__PURE__*/_react.default.createElement("div", {
|
|
659
738
|
className: 'ui-rc_content'
|
|
660
739
|
}, (0, _useColumns.renderContent)(col, value, record, rowIndex)));
|
|
@@ -677,12 +756,14 @@ const GridEdit = props => {
|
|
|
677
756
|
control,
|
|
678
757
|
trigger,
|
|
679
758
|
getValues,
|
|
680
|
-
handleCellChange
|
|
759
|
+
handleCellChange,
|
|
760
|
+
getRowKey
|
|
681
761
|
}
|
|
682
762
|
}, /*#__PURE__*/_react.default.createElement("form", {
|
|
683
763
|
onSubmit: handleSubmit(onSubmit)
|
|
684
764
|
}, /*#__PURE__*/_react.default.createElement(_TableGrid.default, (0, _extends2.default)({}, rest, {
|
|
685
765
|
t: t,
|
|
766
|
+
key: updateKey,
|
|
686
767
|
tableRef: tableRef,
|
|
687
768
|
dataSource: dataSource,
|
|
688
769
|
components: {
|
|
@@ -703,8 +784,10 @@ const GridEdit = props => {
|
|
|
703
784
|
checkboxOnly: true
|
|
704
785
|
} : undefined,
|
|
705
786
|
style: {
|
|
787
|
+
...style,
|
|
706
788
|
minHeight: height
|
|
707
|
-
}
|
|
789
|
+
},
|
|
790
|
+
rowHoverable: false
|
|
708
791
|
}))))), /*#__PURE__*/_react.default.createElement(_reactHotToast.Toaster, {
|
|
709
792
|
position: toast,
|
|
710
793
|
toastOptions: {
|
|
@@ -10,6 +10,7 @@ export type IColumnType = "number" | "time" | "date" | "week" | "month" | "file"
|
|
|
10
10
|
export type AnyObject = Record<PropertyKey, any>;
|
|
11
11
|
export type SelectMode = 'checkbox' | 'radio' | undefined;
|
|
12
12
|
export type ITextAlign = 'center' | 'left' | 'right';
|
|
13
|
+
export type Frozen = 'left' | 'right' | 'Left' | 'Right';
|
|
13
14
|
export type ITemplateColumn = {
|
|
14
15
|
value: any;
|
|
15
16
|
column: any;
|
|
@@ -39,6 +40,7 @@ export type ColumnSelectTable = {
|
|
|
39
40
|
};
|
|
40
41
|
export type IEditSelectSettings = {
|
|
41
42
|
fieldKey?: string;
|
|
43
|
+
options: any[];
|
|
42
44
|
/** get value form other field **/
|
|
43
45
|
fieldValue?: string;
|
|
44
46
|
/** get label form other field **/
|
|
@@ -46,7 +48,6 @@ export type IEditSelectSettings = {
|
|
|
46
48
|
inputKey?: string;
|
|
47
49
|
filterKey?: string[];
|
|
48
50
|
selectMode?: SelectMode;
|
|
49
|
-
options: any[];
|
|
50
51
|
getPasteValue?: (value: any) => Record<string, any> | null;
|
|
51
52
|
validateOption?: (rowData: any, field: string) => any[];
|
|
52
53
|
defaultOptions?: any[];
|
|
@@ -84,14 +85,18 @@ export type ColumnType<RecordType> = Omit<RcColumnType<RecordType>, 'headerTempl
|
|
|
84
85
|
format?: IFormat;
|
|
85
86
|
allowFiltering?: boolean;
|
|
86
87
|
operator?: FilterOperator;
|
|
88
|
+
hideOperator?: boolean;
|
|
87
89
|
placeholder?: string;
|
|
88
90
|
showInColumnChoose?: boolean;
|
|
89
91
|
typeFilter?: TypeFilter;
|
|
90
92
|
headerText?: string;
|
|
93
|
+
textAlign?: ITextAlign;
|
|
94
|
+
frozen?: Frozen;
|
|
91
95
|
template?: ReactNode | ReactElement | ((value: any, record: RecordType, index: number) => ReactNode | ReactElement);
|
|
92
96
|
showTooltip?: boolean;
|
|
93
97
|
tooltipDescription?: ReactNode | ReactElement | ((value: any, record: RecordType, index: number) => ReactNode | ReactElement);
|
|
94
98
|
headerTemplate?: React.ReactNode | React.ReactElement | ((column: ColumnType<RecordType>) => React.ReactNode | React.ReactElement);
|
|
99
|
+
commandItems?: CommandItem[];
|
|
95
100
|
children?: ColumnType<RecordType>[];
|
|
96
101
|
};
|
|
97
102
|
export type ColumnEditType<RecordType> = ColumnType<RecordType> & {
|
|
@@ -140,7 +145,7 @@ export interface TableProps<RecordType> extends Omit<RcTableProps<RecordType>, '
|
|
|
140
145
|
direction: 'Ascending' | 'Descending' | null;
|
|
141
146
|
}) => void;
|
|
142
147
|
selectionSettings?: SelectionSettings;
|
|
143
|
-
rowKey?: string
|
|
148
|
+
rowKey?: string | keyof RecordType | GetRowKey<RecordType>;
|
|
144
149
|
rowSelection?: RowSelection<RecordType>;
|
|
145
150
|
rowSelected?: (args: {
|
|
146
151
|
type: string;
|
|
@@ -156,15 +161,27 @@ export interface TableProps<RecordType> extends Omit<RcTableProps<RecordType>, '
|
|
|
156
161
|
export interface TableEditProps<RecordType = AnyObject> extends Omit<TableProps<RecordType>, 'columns'> {
|
|
157
162
|
columns: ColumnsTable<RecordType>;
|
|
158
163
|
onCellPaste?: ICellPasteModel<RecordType>;
|
|
159
|
-
onCellChange?: (args: CellChangeArgs
|
|
164
|
+
onCellChange?: (args: CellChangeArgs<RecordType>, handleCallback: (rowData: any, index: any, value?: any) => void) => void;
|
|
160
165
|
}
|
|
161
166
|
export type GridTableProps<RecordType = AnyObject> = TableProps<RecordType> | TableEditProps<RecordType>;
|
|
162
|
-
export
|
|
167
|
+
export interface CommandItem {
|
|
168
|
+
id: string;
|
|
169
|
+
type?: string;
|
|
170
|
+
visible?: boolean;
|
|
171
|
+
title: string;
|
|
172
|
+
color?: 'blue' | 'purple' | 'cyan' | 'green' | 'magenta' | 'pink' | 'red' | 'orange' | 'yellow' | 'volcano' | 'geekblue' | 'lime' | 'gold';
|
|
173
|
+
tooltip?: string;
|
|
174
|
+
icon?: ReactNode | ReactElement | (() => ReactNode | ReactElement);
|
|
175
|
+
template?: ReactNode | ReactElement | (() => ReactNode | ReactElement);
|
|
176
|
+
client?: boolean;
|
|
177
|
+
confirmDialog?: boolean;
|
|
178
|
+
}
|
|
179
|
+
export type CellChangeArgs<T> = {
|
|
163
180
|
type: 'onPaste' | 'onChange' | 'onCellPaste';
|
|
164
181
|
value: any;
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
rowsData:
|
|
182
|
+
option: AnyObject;
|
|
183
|
+
rowData: T;
|
|
184
|
+
rowsData: T[];
|
|
168
185
|
indexRow: number;
|
|
169
186
|
rowId?: string;
|
|
170
187
|
field: string;
|
|
@@ -188,13 +205,10 @@ export type SourceFilter = {
|
|
|
188
205
|
loadOptions?: (search: string, callback: (newOptions: any[]) => void) => void;
|
|
189
206
|
};
|
|
190
207
|
export type RowSelection<RecordType> = Omit<TableRowSelection<RecordType>, 'type' | 'columnWidth' | 'hideSelectAll' | 'defaultSelectedRowKeys'>;
|
|
191
|
-
export type SelectionSettings = {
|
|
208
|
+
export type SelectionSettings = Omit<TableRowSelection, 'type' | 'onChange' | 'onSelect' | 'onSelectAll' | 'onSelectNone' | 'onSelectMultiple'> & {
|
|
192
209
|
mode?: 'checkbox' | 'radio';
|
|
193
210
|
type?: 'single' | 'multiple';
|
|
194
211
|
checkboxOnly?: boolean;
|
|
195
|
-
hideSelectAll?: boolean;
|
|
196
|
-
columnWidth?: number | string;
|
|
197
|
-
defaultSelectedRowKeys?: Key[];
|
|
198
212
|
};
|
|
199
213
|
export type RecordDoubleClickEventArgs<RecordType> = {
|
|
200
214
|
rowData: RecordType;
|
|
@@ -223,3 +237,4 @@ export type IFormat = {
|
|
|
223
237
|
monthFormat?: string;
|
|
224
238
|
yearFormat?: string;
|
|
225
239
|
};
|
|
240
|
+
export type GetRowKey<RecordType> = (record: RecordType, index?: number) => Key;
|
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
|
-
import type { IFormat } from "./type";
|
|
2
|
+
import type { AnyObject, IFormat } from "./type";
|
|
3
3
|
import type { SubmitHandler } from "react-hook-form";
|
|
4
|
-
|
|
4
|
+
import type { GetRowKey } from "./type";
|
|
5
|
+
export interface IContext<RecordType> {
|
|
5
6
|
searchValue?: any;
|
|
6
7
|
setSearchValue?: any;
|
|
7
8
|
open?: boolean;
|
|
8
9
|
setOpen?: any;
|
|
9
|
-
rowKey: string
|
|
10
|
+
rowKey: string | keyof RecordType | GetRowKey<RecordType>;
|
|
10
11
|
onSave?: any;
|
|
11
12
|
form?: any;
|
|
12
13
|
format?: IFormat;
|
|
@@ -15,13 +16,15 @@ export interface IContext {
|
|
|
15
16
|
handleSubmit?: any;
|
|
16
17
|
onSubmit?: SubmitHandler<any>;
|
|
17
18
|
getValues?: any;
|
|
18
|
-
handleCellChange?: ({ key, record, type }: ContextCellChange) => void;
|
|
19
|
+
handleCellChange?: ({ key, record, type, option }: ContextCellChange<RecordType>) => void;
|
|
20
|
+
getRowKey?: GetRowKey<RecordType>;
|
|
19
21
|
}
|
|
20
|
-
export type ContextCellChange = {
|
|
21
|
-
key: string
|
|
22
|
+
export type ContextCellChange<RecordType = AnyObject> = {
|
|
23
|
+
key: string | keyof RecordType | GetRowKey<RecordType>;
|
|
22
24
|
record: any;
|
|
25
|
+
option: any;
|
|
23
26
|
newState?: any;
|
|
24
27
|
prevState?: any;
|
|
25
28
|
type: 'enter' | 'blur' | 'outClick';
|
|
26
29
|
};
|
|
27
|
-
export declare const TableContext: import("react").Context<IContext
|
|
30
|
+
export declare const TableContext: import("react").Context<IContext<any>>;
|
|
@@ -5,6 +5,8 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.TableContext = void 0;
|
|
7
7
|
var _react = require("react");
|
|
8
|
+
// import {AnyObject} from "antd/es/_util/type";
|
|
9
|
+
|
|
8
10
|
const TableContext = exports.TableContext = /*#__PURE__*/(0, _react.createContext)({
|
|
9
11
|
rowKey: 'id'
|
|
10
12
|
});
|
package/lib/index.d.ts
CHANGED
|
@@ -1 +1,2 @@
|
|
|
1
|
-
export { default as
|
|
1
|
+
export { default as GridComponent } from './grid-component';
|
|
2
|
+
export type { ColumnsTable, TableProps, ColumnTable } from './grid-component';
|
package/lib/index.js
CHANGED
|
@@ -4,7 +4,7 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
|
|
|
4
4
|
Object.defineProperty(exports, "__esModule", {
|
|
5
5
|
value: true
|
|
6
6
|
});
|
|
7
|
-
Object.defineProperty(exports, "
|
|
7
|
+
Object.defineProperty(exports, "GridComponent", {
|
|
8
8
|
enumerable: true,
|
|
9
9
|
get: function () {
|
|
10
10
|
return _gridComponent.default;
|
package/package.json
CHANGED
|
@@ -1,86 +1,113 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "es-grid-template",
|
|
3
|
-
"version": "0.
|
|
4
|
-
"description": "es-grid-template",
|
|
5
|
-
"keywords": [
|
|
6
|
-
"react",
|
|
7
|
-
"react-component",
|
|
8
|
-
"grid",
|
|
9
|
-
"table"
|
|
10
|
-
],
|
|
11
|
-
"license": "MIT",
|
|
12
|
-
"main": "lib/index",
|
|
13
|
-
"module": "es/index",
|
|
14
|
-
"files": [
|
|
15
|
-
"lib",
|
|
16
|
-
"es",
|
|
17
|
-
"assets/*.css",
|
|
18
|
-
"assets/*.less"
|
|
19
|
-
],
|
|
20
|
-
"scripts": {
|
|
21
|
-
"compile": "father build",
|
|
22
|
-
"docs:build": "dumi build",
|
|
23
|
-
"__docs:deploy": "gh-pages -d dist",
|
|
24
|
-
"lint": "eslint src/ --ext .tsx,.ts,.jsx,.js",
|
|
25
|
-
"now-build": "npm run docs:build",
|
|
26
|
-
"prepare": "dumi setup",
|
|
27
|
-
"prepublishOnly": "npm run compile",
|
|
28
|
-
"postpublish": "npm run docs:build",
|
|
29
|
-
"__postpublish": "npm run docs:build && npm run docs:deploy",
|
|
30
|
-
"start": "dumi dev",
|
|
31
|
-
"test": "vitest --watch false",
|
|
32
|
-
"coverage": "vitest run --coverage"
|
|
33
|
-
},
|
|
34
|
-
"dependencies": {
|
|
35
|
-
"@
|
|
36
|
-
"@
|
|
37
|
-
"@
|
|
38
|
-
"@
|
|
39
|
-
"@rc-
|
|
40
|
-
"@
|
|
41
|
-
"@
|
|
42
|
-
"@
|
|
43
|
-
"
|
|
44
|
-
"
|
|
45
|
-
"
|
|
46
|
-
"
|
|
47
|
-
"
|
|
48
|
-
"
|
|
49
|
-
"
|
|
50
|
-
"
|
|
51
|
-
"
|
|
52
|
-
"
|
|
53
|
-
"
|
|
54
|
-
"
|
|
55
|
-
"
|
|
56
|
-
"
|
|
57
|
-
"
|
|
58
|
-
"
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
"
|
|
62
|
-
"
|
|
63
|
-
"
|
|
64
|
-
"
|
|
65
|
-
"
|
|
66
|
-
"
|
|
67
|
-
"
|
|
68
|
-
"
|
|
69
|
-
"
|
|
70
|
-
"
|
|
71
|
-
"
|
|
72
|
-
"
|
|
73
|
-
"
|
|
74
|
-
"
|
|
75
|
-
"
|
|
76
|
-
"
|
|
77
|
-
"rc-
|
|
78
|
-
"
|
|
79
|
-
"react-
|
|
80
|
-
"
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
"
|
|
84
|
-
"
|
|
85
|
-
|
|
86
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"name": "es-grid-template",
|
|
3
|
+
"version": "0.1.1",
|
|
4
|
+
"description": "es-grid-template",
|
|
5
|
+
"keywords": [
|
|
6
|
+
"react",
|
|
7
|
+
"react-component",
|
|
8
|
+
"grid",
|
|
9
|
+
"table"
|
|
10
|
+
],
|
|
11
|
+
"license": "MIT",
|
|
12
|
+
"main": "lib/index",
|
|
13
|
+
"module": "es/index",
|
|
14
|
+
"files": [
|
|
15
|
+
"lib",
|
|
16
|
+
"es",
|
|
17
|
+
"assets/*.css",
|
|
18
|
+
"assets/*.less"
|
|
19
|
+
],
|
|
20
|
+
"scripts": {
|
|
21
|
+
"compile": "father build",
|
|
22
|
+
"docs:build": "dumi build",
|
|
23
|
+
"__docs:deploy": "gh-pages -d dist",
|
|
24
|
+
"lint": "eslint src/ --ext .tsx,.ts,.jsx,.js",
|
|
25
|
+
"now-build": "npm run docs:build",
|
|
26
|
+
"prepare": "dumi setup",
|
|
27
|
+
"prepublishOnly": "npm run compile",
|
|
28
|
+
"postpublish": "npm run docs:build",
|
|
29
|
+
"__postpublish": "npm run docs:build && npm run docs:deploy",
|
|
30
|
+
"start": "dumi dev",
|
|
31
|
+
"test": "vitest --watch false",
|
|
32
|
+
"coverage": "vitest run --coverage"
|
|
33
|
+
},
|
|
34
|
+
"dependencies": {
|
|
35
|
+
"@ant-design/cssinjs": "^1.22.0",
|
|
36
|
+
"@ant-design/cssinjs-utils": "^1.1.1",
|
|
37
|
+
"@ant-design/icons": "^5.5.2",
|
|
38
|
+
"@babel/runtime": "^7.11.2",
|
|
39
|
+
"@core-rc/rc-select": "^0.0.8",
|
|
40
|
+
"@ctrl/tinycolor": "^3.6.1",
|
|
41
|
+
"@faker-js/faker": "^9.5.0",
|
|
42
|
+
"@floating-ui/react": "^0.27.5",
|
|
43
|
+
"@rc-component/color-picker": "^2.0.1",
|
|
44
|
+
"@rc-component/father-plugin": "^2.0.1",
|
|
45
|
+
"@rc-component/trigger": "^2.0.0",
|
|
46
|
+
"@rc-component/util": "^1.0.1",
|
|
47
|
+
"@types/react-resizable": "^3.0.8",
|
|
48
|
+
"@types/styled-components": "^5.1.34",
|
|
49
|
+
"@vitest/coverage-v8": "^2.0.5",
|
|
50
|
+
"antd": "^5.24.1",
|
|
51
|
+
"antd-style": "^3.7.1",
|
|
52
|
+
"becoxy-icons": "^1.9.9",
|
|
53
|
+
"classnames": "^2.3.1",
|
|
54
|
+
"dayjs": "^1.11.13",
|
|
55
|
+
"lodash": "^4.17.21",
|
|
56
|
+
"moment": "^2.30.1",
|
|
57
|
+
"postcss": "^8.4.35",
|
|
58
|
+
"rc-base-table": "^1.0.1",
|
|
59
|
+
"rc-checkbox": "^3.5.0",
|
|
60
|
+
"rc-collapse": "^3.9.0",
|
|
61
|
+
"rc-dialog": "^9.6.0",
|
|
62
|
+
"rc-dropdown": "^4.2.1",
|
|
63
|
+
"rc-field-form": "^2.6.0",
|
|
64
|
+
"rc-input": "^1.6.3",
|
|
65
|
+
"rc-input-number": "^9.3.0",
|
|
66
|
+
"rc-master-ui": "^1.1.2",
|
|
67
|
+
"rc-menu": "^9.16.0",
|
|
68
|
+
"rc-pagination": "^4.3.0",
|
|
69
|
+
"rc-picker": "^4.11.2",
|
|
70
|
+
"rc-segmented": "^2.7.0",
|
|
71
|
+
"rc-select": "^14.16.3",
|
|
72
|
+
"rc-slider": "^11.1.7",
|
|
73
|
+
"rc-switch": "^4.1.0",
|
|
74
|
+
"rc-textarea": "^1.8.2",
|
|
75
|
+
"rc-tooltip": "^6.3.0",
|
|
76
|
+
"rc-tree": "^5.10.1",
|
|
77
|
+
"rc-tree-select": "^5.24.5",
|
|
78
|
+
"rc-ui-select": "^0.0.2",
|
|
79
|
+
"react-hook-form": "^7.54.2",
|
|
80
|
+
"react-hot-toast": "^2.5.2",
|
|
81
|
+
"react-numeric-component": "^1.0.7",
|
|
82
|
+
"react-resizable": "^3.0.5",
|
|
83
|
+
"styled-components": "^6.1.15",
|
|
84
|
+
"throttle-debounce": "^5.0.2",
|
|
85
|
+
"vitest": "^2.0.5"
|
|
86
|
+
},
|
|
87
|
+
"devDependencies": {
|
|
88
|
+
"@babel/cli": "^7.26.4",
|
|
89
|
+
"@babel/preset-env": "^7.26.9",
|
|
90
|
+
"@rc-component/np": "^1.0.3",
|
|
91
|
+
"@testing-library/react": "^14.0.0",
|
|
92
|
+
"@types/jest": "^29.4.0",
|
|
93
|
+
"@types/react": "^18.0.26",
|
|
94
|
+
"@types/react-dom": "^18.0.10",
|
|
95
|
+
"@types/warning": "^3.0.0",
|
|
96
|
+
"cross-env": "^7.0.0",
|
|
97
|
+
"dumi": "^2.2.13",
|
|
98
|
+
"eslint": "^8.56.0",
|
|
99
|
+
"eslint-plugin-unicorn": "^55.0.0",
|
|
100
|
+
"father": "^4.0.0",
|
|
101
|
+
"gh-pages": "^3.1.0",
|
|
102
|
+
"less": "^4.1.1",
|
|
103
|
+
"np": "^7.1.0",
|
|
104
|
+
"rc-test": "^7.0.9",
|
|
105
|
+
"react": "^18.2.0",
|
|
106
|
+
"react-dom": "^18.2.0",
|
|
107
|
+
"typescript": "^4.0.5"
|
|
108
|
+
},
|
|
109
|
+
"peerDependencies": {
|
|
110
|
+
"react": ">=16.9.0",
|
|
111
|
+
"react-dom": ">=16.9.0"
|
|
112
|
+
}
|
|
113
|
+
}
|