es-grid-template 1.8.28 → 1.8.30

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 (63) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/LICENSE +21 -21
  3. package/README.md +1 -1
  4. package/assets/index.scss +1170 -1170
  5. package/es/grid-component/hooks/constant.js +6 -6
  6. package/es/grid-component/hooks/useColumns.d.ts +1 -3
  7. package/es/grid-component/styles.scss +1437 -1437
  8. package/es/table-component/TableContainer.d.ts +7 -0
  9. package/es/table-component/TableContainer.js +7 -2
  10. package/es/table-component/TableContainerEdit.d.ts +7 -0
  11. package/es/table-component/TableContainerEdit.js +24 -9
  12. package/es/table-component/body/TableBodyCell.js +79 -37
  13. package/es/table-component/body/TableBodyCellEdit.js +57 -73
  14. package/es/table-component/body/TableBodyRow.js +4 -2
  15. package/es/table-component/components/number/index.d.ts +2 -1
  16. package/es/table-component/components/number/index.js +13 -5
  17. package/es/table-component/components/number-range/index.d.ts +2 -1
  18. package/es/table-component/components/number-range/index.js +22 -6
  19. package/es/table-component/header/TableHeadCell.js +2 -1
  20. package/es/table-component/header/TableHeadCell2.js +41 -16
  21. package/es/table-component/header/TableHeadGroupCell.js +2 -1
  22. package/es/table-component/header/renderFilter.d.ts +1 -1
  23. package/es/table-component/header/renderFilter.js +13 -5
  24. package/es/table-component/hook/constant.js +6 -6
  25. package/es/table-component/hook/useColumns.d.ts +21 -2
  26. package/es/table-component/hook/useColumns.js +115 -4
  27. package/es/table-component/hook/utils.d.ts +12 -1
  28. package/es/table-component/hook/utils.js +173 -0
  29. package/es/table-component/style.scss +1220 -1220
  30. package/es/table-component/table/Grid.js +29 -24
  31. package/es/table-component/table/TableWrapper.js +2 -1
  32. package/es/table-component/type.d.ts +10 -5
  33. package/es/table-component/useContext.d.ts +11 -2
  34. package/lib/grid-component/hooks/constant.js +6 -6
  35. package/lib/grid-component/hooks/useColumns.d.ts +1 -3
  36. package/lib/grid-component/styles.scss +1437 -1437
  37. package/lib/table-component/TableContainer.d.ts +7 -0
  38. package/lib/table-component/TableContainer.js +7 -2
  39. package/lib/table-component/TableContainerEdit.d.ts +7 -0
  40. package/lib/table-component/TableContainerEdit.js +23 -8
  41. package/lib/table-component/body/TableBodyCell.js +79 -37
  42. package/lib/table-component/body/TableBodyCellEdit.js +57 -73
  43. package/lib/table-component/body/TableBodyRow.js +4 -2
  44. package/lib/table-component/components/number/index.d.ts +2 -1
  45. package/lib/table-component/components/number/index.js +13 -5
  46. package/lib/table-component/components/number-range/index.d.ts +2 -1
  47. package/lib/table-component/components/number-range/index.js +22 -6
  48. package/lib/table-component/header/TableHeadCell.js +2 -1
  49. package/lib/table-component/header/TableHeadCell2.js +40 -15
  50. package/lib/table-component/header/TableHeadGroupCell.js +2 -1
  51. package/lib/table-component/header/renderFilter.d.ts +1 -1
  52. package/lib/table-component/header/renderFilter.js +13 -5
  53. package/lib/table-component/hook/constant.js +6 -6
  54. package/lib/table-component/hook/useColumns.d.ts +21 -2
  55. package/lib/table-component/hook/useColumns.js +116 -4
  56. package/lib/table-component/hook/utils.d.ts +12 -1
  57. package/lib/table-component/hook/utils.js +193 -4
  58. package/lib/table-component/style.scss +1220 -1220
  59. package/lib/table-component/table/Grid.js +28 -23
  60. package/lib/table-component/table/TableWrapper.js +2 -1
  61. package/lib/table-component/type.d.ts +10 -5
  62. package/lib/table-component/useContext.d.ts +11 -2
  63. package/package.json +117 -116
@@ -44,8 +44,8 @@ const Grid = props => {
44
44
  setMergedFilterKeys,
45
45
  onSorter,
46
46
  onFilter,
47
- allowFilter,
48
- allowSorter,
47
+ allowFiltering,
48
+ allowSortering,
49
49
  groupColumns,
50
50
  // height= 700,
51
51
  height,
@@ -54,6 +54,7 @@ const Grid = props => {
54
54
  triggerChangeColumns,
55
55
  infiniteScroll,
56
56
  mergedSelectedKeys,
57
+ allowResizing,
57
58
  ...rest
58
59
  } = props;
59
60
  const [columnResizeMode] = _react.default.useState('onChange');
@@ -67,6 +68,8 @@ const Grid = props => {
67
68
 
68
69
  // const [rowSelection, setRowSelection] = React.useState<RowSelectionState>(convertToObjTrue(selectionSettings?.selectedRowKeys ?? []))
69
70
  const [rowSelection, setRowSelection] = _react.default.useState((0, _utils.convertToObjTrue)(mergedSelectedKeys));
71
+ // const [rowsSelected, setRowsSelected] = React.useState<RecordType[]>([])
72
+
70
73
  const [grouping, setGrouping] = _react.default.useState([]);
71
74
  const [columnSizing, setColumnSizing] = _react.default.useState({});
72
75
  const [columnSizingInfo, setColumnSizingInfo] = _react.default.useState({});
@@ -80,7 +83,8 @@ const Grid = props => {
80
83
  const [isSelectionChange, setIsSelectionChange] = _react.default.useState({
81
84
  isChange: false,
82
85
  type: '',
83
- rowData: {}
86
+ rowData: {},
87
+ rowsData: []
84
88
  });
85
89
  const [sorterChange, setSorterChange] = _react.default.useState(false);
86
90
  const [filterChange, setFilterChange] = _react.default.useState(false);
@@ -113,15 +117,15 @@ const Grid = props => {
113
117
  // enableRowSelection: true,
114
118
  enableRowSelection: row => {
115
119
  if (selectionSettings?.getCheckboxProps) {
116
- return !selectionSettings?.getCheckboxProps(row.original).disabled;
120
+ return !selectionSettings?.getCheckboxProps(row.original)?.disabled;
117
121
  }
118
122
  return true;
119
123
  },
120
124
  onRowSelectionChange: setRowSelection,
121
- // get
122
125
  // RowSelection
123
126
 
124
127
  // ColumnSizing
128
+ enableColumnResizing: allowResizing !== false,
125
129
  columnResizeMode,
126
130
  columnResizeDirection,
127
131
  onColumnSizingChange: setColumnSizing,
@@ -130,13 +134,13 @@ const Grid = props => {
130
134
 
131
135
  // ColumnSorting
132
136
  // getSortedRowModel: getSortedRowModel(),
133
- enableSorting: allowSorter !== false,
134
137
  onSortingChange: setSorting,
135
138
  enableMultiSort: sortMultiple,
136
139
  isMultiSortEvent: () => sortMultiple ? true : false,
140
+ enableSorting: allowSortering !== false,
137
141
  // ColumnSorting
138
142
 
139
- enableFilters: allowFilter !== false,
143
+ enableFilters: allowFiltering !== false,
140
144
  onColumnFiltersChange: setColumnFilters,
141
145
  onColumnOperatorChange: setOperator,
142
146
  // getFilteredRowModel: getFilteredRowModel(),
@@ -177,41 +181,41 @@ const Grid = props => {
177
181
  // }, [columnSizingInfo])
178
182
 
179
183
  _react.default.useEffect(() => {
180
- // if (!manualUpdate) {
181
-
182
- const isEqual = (0, _utils.isObjEqual)((0, _utils.convertToObjTrue)(mergedSelectedKeys), rowSelection);
183
-
184
- // console.log('isEqual', isEqual)
185
184
  // if (Object.keys(rowSelection) !== Object.keys(mergedSelectedKeys) && !isSelectionChange.isChange) {
186
- // // if (Object.keys(rowSelection) !== Object.keys(mergedSelectedKeys) && !isEqual) {
187
185
  // setRowSelection(convertToObjTrue(mergedSelectedKeys))
188
186
 
189
187
  // }
190
188
 
189
+ const isEqual = (0, _utils.isObjEqual)((0, _utils.convertToObjTrue)(mergedSelectedKeys), rowSelection);
191
190
  if (!isEqual) {
192
- // if (Object.keys(rowSelection) !== Object.keys(mergedSelectedKeys) && !isEqual) {
193
- setRowSelection((0, _utils.convertToObjTrue)(mergedSelectedKeys));
191
+ // setIsSelectionChange((prev) => ({
192
+ // ...prev,
193
+ // isChange: false
194
+ // }))
195
+ // setRowSelection(convertToObjTrue(mergedSelectedKeys))
194
196
  }
195
197
  }, [mergedSelectedKeys]);
196
198
  _react.default.useEffect(() => {
197
199
  if (isSelectionChange.isChange) {
198
200
  // setManualUpdate(true)
199
201
  const aa = table.getState().rowSelection;
200
- const dataTable = table.getRowModel().flatRows;
202
+
203
+ // const dataTable = table.getRowModel().flatRows
204
+
201
205
  const ids = Object.keys(aa);
202
- const ssss = dataTable.filter(it => ids.includes(it.id));
206
+
207
+ // const ssss = dataTable.filter(it => ids.includes(it.id)) // lấy rowsData của trang hiện tại
208
+ const ssss = (0, _utils.filterByIds)(ids, isSelectionChange.rowsData ?? []); // lấy rowsData của trang hiện tại
209
+ // const ssss = (isSelectionChange.rowsData ?? []) as any[] // lấy rowsData của trang hiện tại
210
+
203
211
  const rs = ssss.map(it => it.original);
212
+ // const rs = allRows.map(it => it.original)
213
+
204
214
  rowSelected?.({
205
215
  type: isSelectionChange.type,
206
216
  rowData: isSelectionChange.rowData,
207
217
  selected: rs
208
218
  });
209
-
210
- // setIsSelectionChange((prev) => ({
211
- // ...prev,
212
- // isChange: false
213
-
214
- // }))
215
219
  }
216
220
  }, [isSelectionChange, rowSelection, table.getState().rowSelection]);
217
221
  _react.default.useEffect(() => {
@@ -293,6 +297,7 @@ const Grid = props => {
293
297
  originData: originData,
294
298
  prefix: prefix,
295
299
  selectionSettings: selectionSettings,
300
+ isSelectionChange: isSelectionChange,
296
301
  setIsSelectionChange: setIsSelectionChange,
297
302
  setSorterChange: setSorterChange,
298
303
  setFilterChange: setFilterChange,
@@ -240,7 +240,8 @@ const TableWrapper = props => {
240
240
  style: {
241
241
  zIndex: 1999,
242
242
  maxWidth: 450
243
- }
243
+ },
244
+ delayShow: 100
244
245
  }), /*#__PURE__*/_react.default.createElement(_reactTooltip.Tooltip, {
245
246
  id: `${id}-tooltip-error`,
246
247
  style: {
@@ -92,11 +92,11 @@ export type ColumnTable<RecordType = AnyObject> = {
92
92
  format?: IFormat | ((rowData: any) => IFormat);
93
93
  allowFiltering?: boolean;
94
94
  /**
95
- * @deprecated Please use `allowSorter` instead.
95
+ * @deprecated Please use `allowSortering` instead.
96
96
  * @since 1.7.25
97
97
  */
98
98
  sorter?: boolean;
99
- allowSorter?: boolean;
99
+ allowSortering?: boolean;
100
100
  operator?: FilterOperator;
101
101
  hideOperator?: boolean;
102
102
  placeholder?: string;
@@ -122,7 +122,10 @@ export type ColumnTable<RecordType = AnyObject> = {
122
122
  headerTextAlign?: ITextAlign;
123
123
  template?: ReactNode | ReactElement | ((args: ColumnTemplate<RecordType>) => ReactNode | ReactElement);
124
124
  showTooltip?: boolean;
125
- tooltipDescription?: ReactNode | ReactElement | ((value: any, record: RecordType, index: number) => ReactNode | ReactElement);
125
+ tooltipDescription?: string | ((args: {
126
+ value: any;
127
+ record: RecordType;
128
+ }) => ReactNode | ReactElement);
126
129
  headerTemplate?: React.ReactNode | React.ReactElement | ((column: ColumnTable<RecordType>) => React.ReactNode | React.ReactElement);
127
130
  commandItems?: CommandItem[];
128
131
  children?: ColumnTable<RecordType>[];
@@ -212,7 +215,7 @@ export type TableProps<RecordType = AnyObject> = {
212
215
  toolbarItems?: ToolbarItem[];
213
216
  showColumnChoose?: boolean;
214
217
  showAdvanceFilter?: boolean;
215
- allowFilter?: boolean;
218
+ allowFiltering?: boolean;
216
219
  onFilter?: (query: {
217
220
  field: string;
218
221
  key: string;
@@ -220,7 +223,7 @@ export type TableProps<RecordType = AnyObject> = {
220
223
  predicate: 'and' | 'or';
221
224
  value: any;
222
225
  }[]) => void;
223
- allowSorter?: boolean;
226
+ allowSortering?: boolean;
224
227
  onSorter?: (args: Sorter[]) => void;
225
228
  selectionSettings?: SelectionSettings;
226
229
  rowSelection?: RowSelection<RecordType>;
@@ -239,6 +242,7 @@ export type TableProps<RecordType = AnyObject> = {
239
242
  summary?: boolean;
240
243
  showEmptyText?: boolean;
241
244
  commandSettings?: CommandSettings;
245
+ rowClassName?: string | RowClassName<RecordType>;
242
246
  onCellPaste?: ICellPasteModel<RecordType>;
243
247
  onCellChange?: (args: CellChangeArgs<RecordType>, handleCallback: (rowData: any, index: any, value?: any) => void) => void;
244
248
  onCellClick?: (args: ICellClick, callback?: any) => void;
@@ -472,6 +476,7 @@ export type SelectionSettings<T = AnyObject> = {
472
476
  mode?: 'checkbox' | 'radio';
473
477
  type?: 'single' | 'multiple';
474
478
  checkboxOnly?: boolean;
479
+ checkStrictly?: boolean;
475
480
  columnWidth?: number;
476
481
  hideSelectAll?: boolean;
477
482
  selectedRowKeys?: Key[];
@@ -1,7 +1,7 @@
1
1
  import type { Dispatch, SetStateAction } from 'react';
2
- import type { ColumnTable, ExpandableConfig, IFormat, IWrapSettings, Locale, PaginationConfig, RangeState, RecordDoubleClickEventArgs, SelectionSettings } from "./type";
2
+ import type { ColumnTable, ExpandableConfig, IFormat, IWrapSettings, Locale, PaginationConfig, RangeState, RecordDoubleClickEventArgs, RowClassName, SelectionSettings } from "./type";
3
3
  import type { SubmitHandler } from "react-hook-form";
4
- import type { ExpandedState } from '@tanstack/react-table';
4
+ import type { ExpandedState, Table } from '@tanstack/react-table';
5
5
  export type IPositionCell = {
6
6
  rowId: string;
7
7
  colId: string;
@@ -20,10 +20,17 @@ export interface IContext<T> {
20
20
  expanded: ExpandedState;
21
21
  recordDoubleClick?: (args: RecordDoubleClickEventArgs<T>) => void;
22
22
  selectionSettings?: SelectionSettings;
23
+ isSelectionChange?: {
24
+ isChange: boolean;
25
+ type: string;
26
+ rowData: T;
27
+ rowsData: T[];
28
+ };
23
29
  setIsSelectionChange: Dispatch<SetStateAction<{
24
30
  isChange: boolean;
25
31
  type: string;
26
32
  rowData: T;
33
+ rowsData: T[];
27
34
  }>>;
28
35
  setSorterChange: Dispatch<SetStateAction<boolean>>;
29
36
  setFilterChange: Dispatch<SetStateAction<boolean>>;
@@ -68,6 +75,8 @@ export interface IContext<T> {
68
75
  isDataTree: boolean;
69
76
  handleCellClick?: (rowNumber: number, record: T, column: ColumnTable, rowId: string, cellValue: any) => void;
70
77
  pagination?: false | PaginationConfig;
78
+ rowClassName?: string | RowClassName<T>;
79
+ table?: Table<T>;
71
80
  }
72
81
  export declare const TableContext: import("react").Context<IContext<any>>;
73
82
  export type ContextCellChange = {
package/package.json CHANGED
@@ -1,116 +1,117 @@
1
- {
2
- "name": "es-grid-template",
3
- "version": "1.8.28",
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/*.scss"
19
- ],
20
- "scripts": {
21
- "__compile": "father build && ",
22
- "compile": "father build && sass assets/index.scss assets/index.css",
23
- "clean": "rimraf lib es",
24
- "__docs:build": "dumi build",
25
- "__docs:deploy": "gh-pages -d dist",
26
- "lint": "eslint src/ --ext .tsx,.ts,.jsx,.js",
27
- "__now-build": "npm run docs:build",
28
- "prepare": "dumi setup",
29
- "prepublishOnly": "npm run compile",
30
- "___postpublish": "npm run docs:build",
31
- "__postpublish": "npm run docs:build && npm run docs:deploy",
32
- "start": "dumi dev",
33
- "test": "vitest --watch false",
34
- "coverage": "vitest run --coverage"
35
- },
36
- "dependencies": {
37
- "@ant-design/colors": "^8.0.0",
38
- "@ant-design/icons": "^5.5.2",
39
- "@babel/runtime": "^7.11.2",
40
- "@core-rc/rc-select": "^0.1.3",
41
- "@dnd-kit/core": "^6.3.1",
42
- "@dnd-kit/modifiers": "^9.0.0",
43
- "@dnd-kit/sortable": "^10.0.0",
44
- "@faker-js/faker": "^9.5.0",
45
- "@floating-ui/react": "^0.27.5",
46
- "@hookform/resolvers": "5.0.1",
47
- "@rc-component/color-picker": "^2.0.1",
48
- "@rc-component/father-plugin": "^2.0.1",
49
- "@rc-component/trigger": "^2.0.0",
50
- "@rc-component/util": "^1.0.1",
51
- "@tanstack/react-table": "^8.21.3",
52
- "@tanstack/react-virtual": "^3.13.12",
53
- "@types/react-resizable": "^3.0.8",
54
- "@types/styled-components": "^5.1.34",
55
- "@vitest/coverage-v8": "^2.0.5",
56
- "antd": "5.24.1",
57
- "antd-style": "^3.7.1",
58
- "becoxy-icons": "^2.0.1",
59
- "classnames": "^2.3.1",
60
- "dayjs": "^1.11.13",
61
- "lodash": "^4.17.21",
62
- "moment": "^2.30.1",
63
- "postcss": "^8.4.35",
64
- "rc-checkbox": "^3.5.0",
65
- "rc-dropdown": "^4.2.1",
66
- "rc-field-form": "^2.6.0",
67
- "rc-master-ui": "1.1.44",
68
- "rc-select": "^14.16.3",
69
- "rc-tooltip": "^6.3.0",
70
- "rc-tree": "^5.10.1",
71
- "rc-tree-select": "^5.24.5",
72
- "react-full-screen": "^1.1.1",
73
- "react-hook-form": "7.54.2",
74
- "react-hot-toast": "^2.5.2",
75
- "react-numeric-component": "^1.0.7",
76
- "react-resizable": "^3.0.5",
77
- "react-tooltip": "^5.28.1",
78
- "rimraf": "5.0.10",
79
- "sass": "^1.81.0",
80
- "styled-components": "^6.1.15",
81
- "sweetalert2": "^11.4.14",
82
- "sweetalert2-react-content": "^5.0.0",
83
- "throttle-debounce": "^5.0.2",
84
- "vitest": "^2.0.5",
85
- "yup": "1.6.1"
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
- "umi": {
114
- "configFile": "config.ts"
115
- }
116
- }
1
+ {
2
+ "name": "es-grid-template",
3
+ "version": "1.8.30",
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/*.scss"
19
+ ],
20
+ "scripts": {
21
+ "__compile": "father build && ",
22
+ "compile": "father build && sass assets/index.scss assets/index.css",
23
+ "clean": "rimraf lib es",
24
+ "__docs:build": "dumi build",
25
+ "__docs:deploy": "gh-pages -d dist",
26
+ "lint": "eslint src/ --ext .tsx,.ts,.jsx,.js",
27
+ "__now-build": "npm run docs:build",
28
+ "prepare": "dumi setup",
29
+ "prepublishOnly": "npm run compile",
30
+ "___postpublish": "npm run docs:build",
31
+ "__postpublish": "npm run docs:build && npm run docs:deploy",
32
+ "start": "dumi dev",
33
+ "test": "vitest --watch false",
34
+ "coverage": "vitest run --coverage"
35
+ },
36
+ "dependencies": {
37
+ "@ant-design/colors": "^8.0.0",
38
+ "@ant-design/icons": "^5.5.2",
39
+ "@babel/runtime": "^7.11.2",
40
+ "@core-rc/rc-select": "^0.1.3",
41
+ "@dnd-kit/core": "^6.3.1",
42
+ "@dnd-kit/modifiers": "^9.0.0",
43
+ "@dnd-kit/sortable": "^10.0.0",
44
+ "@faker-js/faker": "^9.5.0",
45
+ "@floating-ui/react": "^0.27.5",
46
+ "@hookform/resolvers": "5.0.1",
47
+ "@rc-component/color-picker": "^2.0.1",
48
+ "@rc-component/father-plugin": "^2.0.1",
49
+ "@rc-component/trigger": "^2.0.0",
50
+ "@rc-component/util": "^1.0.1",
51
+ "@tanstack/react-table": "^8.21.3",
52
+ "@tanstack/react-virtual": "^3.13.12",
53
+ "@types/react-resizable": "^3.0.8",
54
+ "@types/styled-components": "^5.1.34",
55
+ "@vitest/coverage-v8": "^2.0.5",
56
+ "antd": "5.24.1",
57
+ "antd-style": "^3.7.1",
58
+ "becoxy-icons": "^2.0.1",
59
+ "classnames": "^2.3.1",
60
+ "dayjs": "^1.11.13",
61
+ "lodash": "^4.17.21",
62
+ "moment": "^2.30.1",
63
+ "postcss": "^8.4.35",
64
+ "rc-checkbox": "^3.5.0",
65
+ "rc-dropdown": "^4.2.1",
66
+ "rc-field-form": "^2.6.0",
67
+ "rc-master-ui": "1.1.44",
68
+ "rc-select": "^14.16.3",
69
+ "rc-tooltip": "^6.3.0",
70
+ "rc-tree": "^5.10.1",
71
+ "rc-tree-select": "^5.24.5",
72
+ "react-full-screen": "^1.1.1",
73
+ "react-hook-form": "7.54.2",
74
+ "react-hot-toast": "^2.5.2",
75
+ "react-numeric-component": "^1.0.7",
76
+ "react-resizable": "^3.0.5",
77
+ "react-tooltip": "^5.28.1",
78
+ "rimraf": "5.0.10",
79
+ "sass": "^1.81.0",
80
+ "styled-components": "^6.1.15",
81
+ "sweetalert2": "^11.4.14",
82
+ "sweetalert2-react-content": "^5.0.0",
83
+ "throttle-debounce": "^5.0.2",
84
+ "vitest": "^2.0.5",
85
+ "yup": "1.6.1"
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
+ "usehooks-ts": "^3.1.1"
109
+ },
110
+ "peerDependencies": {
111
+ "react": ">=16.9.0",
112
+ "react-dom": ">=16.9.0"
113
+ },
114
+ "umi": {
115
+ "configFile": "config.ts"
116
+ }
117
+ }