es-grid-template 1.7.23 → 1.7.25

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 (163) hide show
  1. package/es/index.d.ts +1 -0
  2. package/es/index.js +3 -1
  3. package/es/table-component/ColumnsChoose.d.ts +13 -0
  4. package/es/table-component/ColumnsChoose.js +206 -0
  5. package/es/table-component/ContextMenu.d.ts +20 -0
  6. package/es/table-component/ContextMenu.js +75 -0
  7. package/es/table-component/InternalTable.d.ts +9 -0
  8. package/es/table-component/InternalTable.js +308 -0
  9. package/es/table-component/TableContainer.d.ts +31 -0
  10. package/es/table-component/TableContainer.js +249 -0
  11. package/es/table-component/TableContainerEdit.d.ts +31 -0
  12. package/es/table-component/TableContainerEdit.js +1301 -0
  13. package/es/table-component/body/EditableCell.d.ts +16 -0
  14. package/es/table-component/body/EditableCell.js +1039 -0
  15. package/es/table-component/body/TableBody.d.ts +19 -0
  16. package/es/table-component/body/TableBody.js +64 -0
  17. package/es/table-component/body/TableBodyCell.d.ts +12 -0
  18. package/es/table-component/body/TableBodyCell.js +149 -0
  19. package/es/table-component/body/TableBodyCellEdit.d.ts +16 -0
  20. package/es/table-component/body/TableBodyCellEdit.js +931 -0
  21. package/es/table-component/body/TableBodyRow.d.ts +21 -0
  22. package/es/table-component/body/TableBodyRow.js +151 -0
  23. package/es/table-component/components/ControlCheckbox.d.ts +13 -0
  24. package/es/table-component/components/ControlCheckbox.js +84 -0
  25. package/es/table-component/components/EditForm/EditForm.d.ts +27 -0
  26. package/es/table-component/components/EditForm/EditForm.js +395 -0
  27. package/es/table-component/components/EditForm/index.d.ts +1 -0
  28. package/es/table-component/components/EditForm/index.js +1 -0
  29. package/es/table-component/components/InputControl/InputControl.d.ts +27 -0
  30. package/es/table-component/components/InputControl/InputControl.js +121 -0
  31. package/es/table-component/components/InputControl/index.d.ts +1 -0
  32. package/es/table-component/components/InputControl/index.js +1 -0
  33. package/es/table-component/components/async-select/index.d.ts +11 -0
  34. package/es/table-component/components/async-select/index.js +41 -0
  35. package/es/table-component/components/async-table-select/index.d.ts +11 -0
  36. package/es/table-component/components/async-table-select/index.js +44 -0
  37. package/es/table-component/components/checkbox-control/index.d.ts +13 -0
  38. package/es/table-component/components/checkbox-control/index.js +40 -0
  39. package/es/table-component/components/checkbox-filter/CheckboxFilter.d.ts +18 -0
  40. package/es/table-component/components/checkbox-filter/CheckboxFilter.js +240 -0
  41. package/es/table-component/components/checkbox-filter/FilterSearch.d.ts +12 -0
  42. package/es/table-component/components/checkbox-filter/FilterSearch.js +36 -0
  43. package/es/table-component/components/command/Command.d.ts +10 -0
  44. package/es/table-component/components/command/Command.js +33 -0
  45. package/es/table-component/components/number/index.d.ts +10 -0
  46. package/es/table-component/components/number/index.js +42 -0
  47. package/es/table-component/components/number-range/index.d.ts +11 -0
  48. package/es/table-component/components/number-range/index.js +66 -0
  49. package/es/table-component/features/operator.d.ts +24 -0
  50. package/es/table-component/features/operator.js +62 -0
  51. package/es/table-component/footer/TableFooter.d.ts +13 -0
  52. package/es/table-component/footer/TableFooter.js +33 -0
  53. package/es/table-component/footer/TableFooterCell.d.ts +10 -0
  54. package/es/table-component/footer/TableFooterCell.js +66 -0
  55. package/es/table-component/footer/TableFooterRow.d.ts +14 -0
  56. package/es/table-component/footer/TableFooterRow.js +73 -0
  57. package/es/table-component/header/TableHead.d.ts +14 -0
  58. package/es/table-component/header/TableHead.js +60 -0
  59. package/es/table-component/header/TableHeadCell.d.ts +14 -0
  60. package/es/table-component/header/TableHeadCell.js +343 -0
  61. package/es/table-component/header/TableHeadRow.d.ts +16 -0
  62. package/es/table-component/header/TableHeadRow.js +76 -0
  63. package/es/table-component/header/renderFilter.d.ts +20 -0
  64. package/es/table-component/header/renderFilter.js +281 -0
  65. package/es/table-component/hook/constant.d.ts +73 -0
  66. package/es/table-component/hook/constant.js +240 -0
  67. package/es/table-component/hook/useColumns.d.ts +9 -0
  68. package/es/table-component/hook/useColumns.js +169 -0
  69. package/es/table-component/hook/useFilterOperator.d.ts +7 -0
  70. package/es/table-component/hook/useFilterOperator.js +33 -0
  71. package/es/table-component/hook/utils.d.ts +133 -0
  72. package/es/table-component/hook/utils.js +1870 -0
  73. package/es/table-component/index.d.ts +5 -0
  74. package/es/table-component/index.js +2 -0
  75. package/es/table-component/style.scss +1129 -0
  76. package/es/table-component/table/Grid.d.ts +24 -0
  77. package/es/table-component/table/Grid.js +234 -0
  78. package/es/table-component/type.d.ts +513 -0
  79. package/es/table-component/type.js +1 -0
  80. package/es/table-component/useContext.d.ts +74 -0
  81. package/es/table-component/useContext.js +15 -0
  82. package/lib/index.d.ts +1 -0
  83. package/lib/index.js +8 -1
  84. package/lib/table-component/ColumnsChoose.d.ts +13 -0
  85. package/lib/table-component/ColumnsChoose.js +216 -0
  86. package/lib/table-component/ContextMenu.d.ts +20 -0
  87. package/lib/table-component/ContextMenu.js +85 -0
  88. package/lib/table-component/InternalTable.d.ts +9 -0
  89. package/lib/table-component/InternalTable.js +313 -0
  90. package/lib/table-component/TableContainer.d.ts +31 -0
  91. package/lib/table-component/TableContainer.js +257 -0
  92. package/lib/table-component/TableContainerEdit.d.ts +31 -0
  93. package/lib/table-component/TableContainerEdit.js +1310 -0
  94. package/lib/table-component/body/EditableCell.d.ts +16 -0
  95. package/lib/table-component/body/EditableCell.js +1041 -0
  96. package/lib/table-component/body/TableBody.d.ts +19 -0
  97. package/lib/table-component/body/TableBody.js +72 -0
  98. package/lib/table-component/body/TableBodyCell.d.ts +12 -0
  99. package/lib/table-component/body/TableBodyCell.js +158 -0
  100. package/lib/table-component/body/TableBodyCellEdit.d.ts +16 -0
  101. package/lib/table-component/body/TableBodyCellEdit.js +938 -0
  102. package/lib/table-component/body/TableBodyRow.d.ts +21 -0
  103. package/lib/table-component/body/TableBodyRow.js +158 -0
  104. package/lib/table-component/components/ControlCheckbox.d.ts +13 -0
  105. package/lib/table-component/components/ControlCheckbox.js +92 -0
  106. package/lib/table-component/components/EditForm/EditForm.d.ts +27 -0
  107. package/lib/table-component/components/EditForm/EditForm.js +406 -0
  108. package/lib/table-component/components/EditForm/index.d.ts +1 -0
  109. package/lib/table-component/components/EditForm/index.js +16 -0
  110. package/lib/table-component/components/InputControl/InputControl.d.ts +27 -0
  111. package/lib/table-component/components/InputControl/InputControl.js +131 -0
  112. package/lib/table-component/components/InputControl/index.d.ts +1 -0
  113. package/lib/table-component/components/InputControl/index.js +16 -0
  114. package/lib/table-component/components/async-select/index.d.ts +11 -0
  115. package/lib/table-component/components/async-select/index.js +49 -0
  116. package/lib/table-component/components/async-table-select/index.d.ts +11 -0
  117. package/lib/table-component/components/async-table-select/index.js +53 -0
  118. package/lib/table-component/components/checkbox-control/index.d.ts +13 -0
  119. package/lib/table-component/components/checkbox-control/index.js +48 -0
  120. package/lib/table-component/components/checkbox-filter/CheckboxFilter.d.ts +18 -0
  121. package/lib/table-component/components/checkbox-filter/CheckboxFilter.js +249 -0
  122. package/lib/table-component/components/checkbox-filter/FilterSearch.d.ts +12 -0
  123. package/lib/table-component/components/checkbox-filter/FilterSearch.js +44 -0
  124. package/lib/table-component/components/command/Command.d.ts +10 -0
  125. package/lib/table-component/components/command/Command.js +42 -0
  126. package/lib/table-component/components/number/index.d.ts +10 -0
  127. package/lib/table-component/components/number/index.js +50 -0
  128. package/lib/table-component/components/number-range/index.d.ts +11 -0
  129. package/lib/table-component/components/number-range/index.js +74 -0
  130. package/lib/table-component/features/operator.d.ts +24 -0
  131. package/lib/table-component/features/operator.js +67 -0
  132. package/lib/table-component/footer/TableFooter.d.ts +13 -0
  133. package/lib/table-component/footer/TableFooter.js +42 -0
  134. package/lib/table-component/footer/TableFooterCell.d.ts +10 -0
  135. package/lib/table-component/footer/TableFooterCell.js +76 -0
  136. package/lib/table-component/footer/TableFooterRow.d.ts +14 -0
  137. package/lib/table-component/footer/TableFooterRow.js +81 -0
  138. package/lib/table-component/header/TableHead.d.ts +14 -0
  139. package/lib/table-component/header/TableHead.js +69 -0
  140. package/lib/table-component/header/TableHeadCell.d.ts +14 -0
  141. package/lib/table-component/header/TableHeadCell.js +352 -0
  142. package/lib/table-component/header/TableHeadRow.d.ts +16 -0
  143. package/lib/table-component/header/TableHeadRow.js +84 -0
  144. package/lib/table-component/header/renderFilter.d.ts +20 -0
  145. package/lib/table-component/header/renderFilter.js +291 -0
  146. package/lib/table-component/hook/constant.d.ts +73 -0
  147. package/lib/table-component/hook/constant.js +247 -0
  148. package/lib/table-component/hook/useColumns.d.ts +9 -0
  149. package/lib/table-component/hook/useColumns.js +180 -0
  150. package/lib/table-component/hook/useFilterOperator.d.ts +7 -0
  151. package/lib/table-component/hook/useFilterOperator.js +40 -0
  152. package/lib/table-component/hook/utils.d.ts +133 -0
  153. package/lib/table-component/hook/utils.js +1969 -0
  154. package/lib/table-component/index.d.ts +5 -0
  155. package/lib/table-component/index.js +9 -0
  156. package/lib/table-component/style.scss +1129 -0
  157. package/lib/table-component/table/Grid.d.ts +24 -0
  158. package/lib/table-component/table/Grid.js +236 -0
  159. package/lib/table-component/type.d.ts +513 -0
  160. package/lib/table-component/type.js +5 -0
  161. package/lib/table-component/useContext.d.ts +74 -0
  162. package/lib/table-component/useContext.js +21 -0
  163. package/package.json +4 -2
@@ -0,0 +1,24 @@
1
+ import type { ColumnDef, ColumnPinningState, ExpandedState, VisibilityState } from '@tanstack/react-table';
2
+ import type { ColumnsTable, Sorter, TableProps } from '../type';
3
+ import type { Dispatch, SetStateAction } from 'react';
4
+ import React from 'react';
5
+ type Props<T> = Omit<TableProps<T>, 'columns'> & {
6
+ id: string;
7
+ rowKey: string;
8
+ prefix: string;
9
+ columns: ColumnDef<T>[];
10
+ propsColumns: ColumnsTable;
11
+ columnHidden: VisibilityState;
12
+ expanded: ExpandedState;
13
+ setExpanded: any;
14
+ columnPinning: ColumnPinningState;
15
+ originData: T[];
16
+ mergedFilterKeys: any;
17
+ setMergedFilterKeys: any;
18
+ triggerFilter: Dispatch<SetStateAction<any>>;
19
+ triggerSorter: Dispatch<SetStateAction<Sorter[]>>;
20
+ onContextMenu?: (data: T) => (event: any) => void;
21
+ triggerChangeColumns?: (args: any, keys: any) => void;
22
+ };
23
+ declare const Grid: <RecordType extends object>(props: Props<RecordType>) => React.JSX.Element;
24
+ export default Grid;
@@ -0,0 +1,234 @@
1
+ import _extends from "@babel/runtime/helpers/esm/extends";
2
+ import { getCoreRowModel, getExpandedRowModel,
3
+ // getFilteredRowModel,
4
+ getGroupedRowModel, getPaginationRowModel,
5
+ // getSortedRowModel,
6
+ useReactTable } from '@tanstack/react-table';
7
+ // import { makeData } from "../default/makeData";
8
+
9
+ import { DndContext, KeyboardSensor, MouseSensor, TouchSensor, closestCenter, useSensor, useSensors } from '@dnd-kit/core';
10
+ import { restrictToHorizontalAxis } from '@dnd-kit/modifiers';
11
+ import { arrayMove } from '@dnd-kit/sortable';
12
+
13
+ // import { flattenArray, getFixedFields, getInvisibleColumns, unFlattenData, updateOrInsert } from './hook/utils'
14
+
15
+ // import { faker } from '@faker-js/faker'
16
+
17
+ import React from 'react';
18
+ import TableContainer from "../TableContainer";
19
+ import { OperatorFeature } from "../features/operator";
20
+ import { convertFilters, filterDataByColumns, getAllRowKey } from "../hook/utils";
21
+ import TableContainerEdit from "../TableContainerEdit";
22
+ const Grid = props => {
23
+ const {
24
+ t,
25
+ id,
26
+ prefix,
27
+ dataSource,
28
+ originData,
29
+ columns,
30
+ propsColumns,
31
+ pagination,
32
+ expanded,
33
+ setExpanded,
34
+ columnHidden,
35
+ columnPinning,
36
+ selectionSettings,
37
+ rowSelected,
38
+ sortMultiple,
39
+ triggerSorter,
40
+ triggerFilter,
41
+ setMergedFilterKeys,
42
+ onSorter,
43
+ onFilter,
44
+ groupColumns,
45
+ height,
46
+ editAble,
47
+ triggerChangeColumns,
48
+ ...rest
49
+ } = props;
50
+ const [columnResizeMode] = React.useState('onChange');
51
+ const [columnResizeDirection] = React.useState('ltr');
52
+ const [paginationState, setPagination] = React.useState({
53
+ pageIndex: pagination && pagination.currentPage ? pagination.currentPage - 1 : 0,
54
+ pageSize: pagination && pagination.pageSize ? pagination.pageSize : 20
55
+ });
56
+ const [rowSelection, setRowSelection] = React.useState({});
57
+ const [grouping, setGrouping] = React.useState([]);
58
+ const [columnSizing, setColumnSizing] = React.useState({});
59
+ // const [columnVisibility, setColumnVisibility] = React.useState<VisibilityState>(columnHidden)
60
+
61
+ const [columnFilters, setColumnFilters] = React.useState([]);
62
+ const [operator, setOperator] = React.useState([]);
63
+ const [sorting, setSorting] = React.useState([]);
64
+ const [columnOrder, setColumnOrder] = React.useState(() => columns.map(c => c.id));
65
+ const [isSelectionChange, setIsSelectionChange] = React.useState({
66
+ isChange: false,
67
+ type: '',
68
+ rowData: {}
69
+ });
70
+ const [sorterChange, setSorterChange] = React.useState(false);
71
+ const [filterChange, setFilterChange] = React.useState(false);
72
+ const table = useReactTable({
73
+ _features: [OperatorFeature],
74
+ data: dataSource,
75
+ columns: columns,
76
+ state: {
77
+ rowSelection,
78
+ expanded,
79
+ columnPinning,
80
+ columnVisibility: columnHidden,
81
+ pagination: pagination ? paginationState : undefined,
82
+ grouping,
83
+ columnSizing,
84
+ columnOrder,
85
+ columnFilters,
86
+ operator,
87
+ sorting
88
+ },
89
+ getCoreRowModel: getCoreRowModel(),
90
+ getRowId(originalRow) {
91
+ return originalRow.rowId;
92
+ },
93
+ getSubRows: row => row.children,
94
+ // RowSelection
95
+ enableSubRowSelection: selectionSettings && selectionSettings.mode === 'checkbox' && selectionSettings.type !== 'single',
96
+ enableMultiRowSelection: selectionSettings && selectionSettings.mode === 'checkbox' && selectionSettings.type !== 'single',
97
+ enableRowSelection: true,
98
+ onRowSelectionChange: setRowSelection,
99
+ // RowSelection
100
+
101
+ // ColumnSizing
102
+ columnResizeMode,
103
+ columnResizeDirection,
104
+ onColumnSizingChange: setColumnSizing,
105
+ // ColumnSizing
106
+
107
+ // ColumnSorting
108
+ // getSortedRowModel: getSortedRowModel(),
109
+ onSortingChange: setSorting,
110
+ enableMultiSort: sortMultiple,
111
+ isMultiSortEvent: () => sortMultiple ? true : false,
112
+ // ColumnSorting
113
+
114
+ onColumnFiltersChange: setColumnFilters,
115
+ onColumnOperatorChange: setOperator,
116
+ // getFilteredRowModel: getFilteredRowModel(),
117
+
118
+ onColumnOrderChange: setColumnOrder,
119
+ onGroupingChange: setGrouping,
120
+ getGroupedRowModel: getGroupedRowModel(),
121
+ // onExpandedChange: setExpanded,
122
+ getExpandedRowModel: getExpandedRowModel(),
123
+ getPaginationRowModel: pagination ? getPaginationRowModel() : undefined,
124
+ onPaginationChange: setPagination,
125
+ // onColumnVisibilityChange: setColumnVisibility,
126
+ // onColumnPinningChange,
127
+
128
+ debugTable: true
129
+ });
130
+ React.useEffect(() => {
131
+ if (isSelectionChange.isChange) {
132
+ const aa = table.getState().rowSelection;
133
+ const dataTable = table.getRowModel().flatRows;
134
+ const ids = Object.keys(aa);
135
+ const ssss = dataTable.filter(it => ids.includes(it.id));
136
+ const rs = ssss.map(it => it.original);
137
+ rowSelected?.({
138
+ type: isSelectionChange.type,
139
+ rowData: isSelectionChange.rowData,
140
+ selected: rs
141
+ });
142
+ }
143
+ }, [isSelectionChange, rowSelected, rowSelection, table]);
144
+ React.useEffect(() => {
145
+ if (sorterChange) {
146
+ const aa = table.getState().sorting;
147
+ const rs = aa.map(it => {
148
+ return {
149
+ columnKey: it.id,
150
+ field: it.id,
151
+ order: it.desc ? 'descend' : 'ascend'
152
+ };
153
+ });
154
+ if (onSorter) {
155
+ onSorter?.(rs);
156
+ } else {
157
+ triggerSorter(rs);
158
+ }
159
+ }
160
+ }, [onSorter, sorterChange, sorting, table, triggerSorter]);
161
+ React.useEffect(() => {
162
+ if (filterChange) {
163
+ // const filterState = table.getState().columnFilters
164
+ const operatorState = table.getState().operator;
165
+ const merged = columnFilters.map(filter => {
166
+ const match = operatorState.find(op => op.id === filter.id);
167
+ const col = table.getVisibleFlatColumns().find(it => it.id === filter.id)?.columnDef.meta;
168
+ return {
169
+ field: filter.id,
170
+ key: filter.id,
171
+ column: col,
172
+ filteredKeys: filter.value,
173
+ operator: match ? match.operator : undefined
174
+ // ...(match && { operator: match.operator })
175
+ };
176
+ });
177
+ if (onFilter) {
178
+ onFilter?.(convertFilters(merged));
179
+ } else {
180
+ triggerFilter(convertFilters(merged));
181
+ const b = filterDataByColumns(originData, convertFilters(merged), [], []);
182
+ setMergedFilterKeys(getAllRowKey(b));
183
+ }
184
+ }
185
+ }, [filterChange, onFilter, originData, setMergedFilterKeys, table, triggerFilter, columnFilters]);
186
+
187
+ // reorder columns after drag & drop
188
+ function handleDragEnd(event) {
189
+ const {
190
+ active,
191
+ over
192
+ } = event;
193
+ if (active && over && active.id !== over.id) {
194
+ setColumnOrder(cols => {
195
+ const oldIndex = cols.indexOf(active.id);
196
+ const newIndex = cols.indexOf(over.id);
197
+ return arrayMove(cols, oldIndex, newIndex); //this is just a splice util
198
+ });
199
+ }
200
+ }
201
+ const sensors = useSensors(useSensor(MouseSensor, {}), useSensor(TouchSensor, {}), useSensor(KeyboardSensor, {}));
202
+ const ContainerComponent = editAble ? TableContainerEdit : TableContainer;
203
+ return /*#__PURE__*/React.createElement("div", {
204
+ className: `${prefix}-grid`,
205
+ style: {
206
+ height: height ?? undefined
207
+ }
208
+ }, /*#__PURE__*/React.createElement(DndContext, {
209
+ collisionDetection: closestCenter,
210
+ modifiers: [restrictToHorizontalAxis],
211
+ onDragEnd: handleDragEnd,
212
+ sensors: sensors
213
+ }, /*#__PURE__*/React.createElement(ContainerComponent, _extends({}, rest, {
214
+ id: id,
215
+ table: table,
216
+ editAble: editAble,
217
+ dataSource: dataSource,
218
+ originData: originData,
219
+ prefix: prefix,
220
+ selectionSettings: selectionSettings,
221
+ setIsSelectionChange: setIsSelectionChange,
222
+ setSorterChange: setSorterChange,
223
+ setFilterChange: setFilterChange,
224
+ height: height,
225
+ pagination: pagination,
226
+ columns: columns,
227
+ propsColumns: propsColumns,
228
+ triggerChangeColumns: triggerChangeColumns,
229
+ columnHidden: columnHidden,
230
+ setExpanded: setExpanded,
231
+ expanded: expanded
232
+ }))));
233
+ };
234
+ export default Grid;