@jiaozhiye/qm-design-react 1.11.25 → 1.11.26

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 (37) hide show
  1. package/lib/index.esm.js +1 -1
  2. package/lib/index.full.js +1 -1
  3. package/lib/index.js +1 -1
  4. package/lib/locale/lang/en.d.ts +7 -6
  5. package/lib/locale/lang/en.js +10 -9
  6. package/lib/locale/lang/zh-cn.d.ts +7 -6
  7. package/lib/locale/lang/zh-cn.js +10 -9
  8. package/lib/scrollbar/style/index.less +1 -2
  9. package/lib/style/index.css +102 -16
  10. package/lib/style/index.min.css +1 -1
  11. package/lib/table/src/context/index.d.ts +6 -1
  12. package/lib/table/src/filter/CheckboxPanel.d.ts +7 -0
  13. package/lib/table/src/filter/DatePanel.d.ts +7 -0
  14. package/lib/table/src/filter/FooterPanel.d.ts +12 -0
  15. package/lib/table/src/filter/ListPanel.d.ts +11 -0
  16. package/lib/table/src/filter/NilPanel.d.ts +9 -0
  17. package/lib/table/src/filter/NumberPanel.d.ts +7 -0
  18. package/lib/table/src/filter/TextAreaPanel.d.ts +7 -0
  19. package/lib/table/src/filter/TextPanel.d.ts +7 -0
  20. package/lib/table/src/filter/TreePanel.d.ts +7 -0
  21. package/lib/table/src/filter/context.d.ts +3 -0
  22. package/lib/table/src/filter-sql/index.d.ts +1 -1
  23. package/lib/table/src/filter-sql/lib/filter_string.d.ts +1 -3
  24. package/lib/table/src/hooks/useImperativeMethod.d.ts +1 -0
  25. package/lib/table/src/hooks/useTableCore.d.ts +9 -5
  26. package/lib/table/src/hooks/useTableRef.d.ts +4 -9
  27. package/lib/table/src/hooks/useTableState.d.ts +4 -1
  28. package/lib/table/src/table/props.d.ts +1 -0
  29. package/lib/table/src/table/types.d.ts +6 -1
  30. package/lib/table/src/utils/index.d.ts +4 -1
  31. package/lib/table/style/body.less +105 -105
  32. package/lib/table/style/fast-search.less +2 -1
  33. package/lib/table/style/header.less +108 -10
  34. package/lib/virtual-list/src/core.d.ts +4 -5
  35. package/lib/virtual-list/src/useVirtual.d.ts +2 -2
  36. package/lib/virtual-list/src/utils.d.ts +1 -2
  37. package/package.json +140 -140
@@ -2,7 +2,7 @@
2
2
  * @Author: 焦质晔
3
3
  * @Date: 2020-02-28 22:11:53
4
4
  * @Last Modified by: 焦质晔
5
- * @Last Modified time: 2022-11-26 21:07:50
5
+ * @Last Modified time: 2025-06-17 10:44:57
6
6
  */
7
7
  .TheadAlignCenter {
8
8
  .cell--text {
@@ -174,24 +174,122 @@
174
174
 
175
175
  .head-filter__popper {
176
176
  padding: @v-module-distance !important;
177
- max-height: 300px;
177
+ max-height: 424px;
178
178
  overflow-y: auto;
179
179
  }
180
180
 
181
181
  .head-filter--wrap {
182
- ul {
183
- margin: 0;
184
- li {
182
+ @modulePadding: 6px;
183
+ .filter-list {
184
+ ul {
185
+ li {
186
+ display: flex;
187
+ align-items: center;
188
+ margin-bottom: @modulePadding;
189
+ .label {
190
+ width: 20px;
191
+ }
192
+ }
193
+ }
194
+ }
195
+ .filter-box {
196
+ display: flex;
197
+ align-items: center;
198
+ .condition {
199
+ .ant-select-selector {
200
+ padding: 0 @modulePadding;
201
+ .ant-select-selection-item {
202
+ padding-right: @v-module-distance;
203
+ }
204
+ }
205
+ .ant-select-arrow {
206
+ right: @modulePadding;
207
+ }
208
+ }
209
+ }
210
+ .list-panel {
211
+ .btn {
212
+ display: inline-block;
213
+ text-align: center;
214
+ text-transform: none;
215
+ text-decoration: none;
216
+ background: transparent;
217
+ border: 0;
218
+ outline: 0;
219
+ box-shadow: none;
220
+ cursor: pointer;
221
+ }
222
+ .select-all {
185
223
  display: flex;
186
224
  align-items: center;
187
- margin-bottom: 5px;
188
- &:last-of-type {
189
- margin-bottom: 0;
225
+ justify-content: space-between;
226
+ margin: 5px 0 2px;
227
+ .action {
228
+ flex: 1 0;
229
+ }
230
+ .ant-checkbox + span {
231
+ padding-right: 4px;
232
+ }
233
+ .divider {
234
+ font-style: normal;
235
+ color: @v-font-disabled-color;
190
236
  }
191
- & > span {
192
- margin-right: 5px;
237
+ .invert {
238
+ padding: 0 4px;
239
+ cursor: pointer;
240
+ &:disabled {
241
+ color: @v-font-disabled-color;
242
+ cursor: not-allowed;
243
+ }
244
+ }
245
+ .total {
246
+ font-size: @v-font-size - 1px;
247
+ color: @v-font-color-placeholder;
193
248
  }
194
249
  }
250
+ .select-list {
251
+ margin-right: -10px;
252
+ .list-item {
253
+ width: 200px;
254
+ height: 26px;
255
+ display: flex;
256
+ align-items: center;
257
+ &:hover {
258
+ .right {
259
+ display: block;
260
+ }
261
+ }
262
+ .ant-checkbox-wrapper {
263
+ flex: auto;
264
+ min-width: 0;
265
+ & > span:nth-child(2) {
266
+ padding-right: 4px;
267
+ .text-overflow-cut();
268
+ }
269
+ }
270
+ .right {
271
+ flex-shrink: 0;
272
+ padding: 0;
273
+ font-size: @v-font-size - 1px;
274
+ color: @v-primary-color;
275
+ display: none;
276
+ }
277
+ }
278
+ }
279
+ }
280
+ .tree-panel {
281
+ width: 200px;
282
+ .ant-tree {
283
+ margin-right: -5px;
284
+ }
285
+ }
286
+ .footer {
287
+ margin-top: @modulePadding;
288
+ padding-top: @modulePadding + 2px;
289
+ margin-left: -@v-module-distance;
290
+ width: calc(100% + @v-module-distance + @v-module-distance);
291
+ padding-right: @v-module-distance;
292
+ border-top: 1px solid @--border-color-secondary;
195
293
  }
196
294
  }
197
295
 
@@ -76,6 +76,7 @@ export interface VirtualizerOptions<TScrollElement extends Element | Window, TIt
76
76
  useScrollendEvent?: boolean;
77
77
  enabled?: boolean;
78
78
  isRtl?: boolean;
79
+ useAnimationFrameWithResizeObserver?: boolean;
79
80
  }
80
81
  export declare class Virtualizer<TScrollElement extends Element | Window, TItemElement extends Element> {
81
82
  private unsubs;
@@ -83,7 +84,6 @@ export declare class Virtualizer<TScrollElement extends Element | Window, TItemE
83
84
  scrollElement: TScrollElement | null;
84
85
  targetWindow: (Window & typeof globalThis) | null;
85
86
  isScrolling: boolean;
86
- private scrollToIndexTimeoutId;
87
87
  measurementsCache: Array<VirtualItem>;
88
88
  private itemSizeCache;
89
89
  private pendingMeasuredCacheIndexes;
@@ -115,7 +115,7 @@ export declare class Virtualizer<TScrollElement extends Element | Window, TItemE
115
115
  startIndex: number;
116
116
  endIndex: number;
117
117
  } | null;
118
- updateDeps(newDeps: [VirtualItem[], number, number]): void;
118
+ updateDeps(newDeps: [VirtualItem[], number, number, number]): void;
119
119
  };
120
120
  getVirtualIndexes: {
121
121
  (): number[];
@@ -130,10 +130,9 @@ export declare class Virtualizer<TScrollElement extends Element | Window, TItemE
130
130
  updateDeps(newDeps: [number[], VirtualItem[]]): void;
131
131
  };
132
132
  getVirtualItemForOffset: (offset: number) => VirtualItem | undefined;
133
- getOffsetForAlignment: (toOffset: number, align: ScrollAlignment) => number;
134
- getOffsetForIndex: (index: number, align?: ScrollAlignment) => readonly [number, "auto"] | readonly [number, "center"] | readonly [number, "end"] | readonly [number, "start"] | undefined;
133
+ getOffsetForAlignment: (toOffset: number, align: ScrollAlignment, itemSize?: number) => number;
134
+ getOffsetForIndex: (index: number, align?: ScrollAlignment) => readonly [number, "auto"] | readonly [number, "center" | "start" | "end"] | undefined;
135
135
  private isDynamicMode;
136
- private cancelScrollToIndex;
137
136
  scrollToOffset: (toOffset: number, { align, behavior }?: ScrollToOffsetOptions) => void;
138
137
  scrollToIndex: (index: number, { align: initialAlign, behavior }?: ScrollToIndexOptions) => void;
139
138
  scrollBy: (delta: number, { behavior }?: ScrollToOffsetOptions) => void;
@@ -1,5 +1,5 @@
1
1
  import { Virtualizer } from './core';
2
2
  import type { PartialKeys, VirtualizerOptions } from './core';
3
3
  export * from './core';
4
- export declare const useVirtualizer: <TScrollElement extends Element, TItemElement extends Element>(options: PartialKeys<VirtualizerOptions<TScrollElement, TItemElement>, "scrollToFn" | "observeElementRect" | "observeElementOffset">) => Virtualizer<TScrollElement, TItemElement>;
5
- export declare const useWindowVirtualizer: <TItemElement extends Element>(options: PartialKeys<VirtualizerOptions<Window, TItemElement>, "getScrollElement" | "scrollToFn" | "observeElementRect" | "observeElementOffset">) => Virtualizer<Window, TItemElement>;
4
+ export declare function useVirtualizer<TScrollElement extends Element, TItemElement extends Element>(options: PartialKeys<VirtualizerOptions<TScrollElement, TItemElement>, 'observeElementRect' | 'observeElementOffset' | 'scrollToFn'>): Virtualizer<TScrollElement, TItemElement>;
5
+ export declare function useWindowVirtualizer<TItemElement extends Element>(options: PartialKeys<VirtualizerOptions<Window, TItemElement>, 'getScrollElement' | 'observeElementRect' | 'observeElementOffset' | 'scrollToFn'>): Virtualizer<Window, TItemElement>;
@@ -1,4 +1,3 @@
1
- import { AnyFunction } from '../../_utils/types';
2
1
  export type NoInfer<A> = [A][A extends any ? 0 : never];
3
2
  export type PartialKeys<T, K extends keyof T> = Omit<T, K> & Partial<Pick<T, K>>;
4
3
  export declare function memo<TDeps extends ReadonlyArray<any>, TResult>(getDeps: () => [...TDeps], fn: (...args: NoInfer<[...TDeps]>) => TResult, opts: {
@@ -13,4 +12,4 @@ export declare function memo<TDeps extends ReadonlyArray<any>, TResult>(getDeps:
13
12
  };
14
13
  export declare function notUndefined<T>(value: T | undefined, msg?: string): T;
15
14
  export declare const approxEqual: (a: number, b: number) => boolean;
16
- export declare const debounce: (targetWindow: Window & typeof globalThis, fn: AnyFunction<any>, ms: number) => (this: any, ...args: Array<any>) => void;
15
+ export declare const debounce: (targetWindow: Window & typeof globalThis, fn: any, ms: any) => (this: any, ...args: Array<any>) => void;
package/package.json CHANGED
@@ -1,140 +1,140 @@
1
- {
2
- "name": "@jiaozhiye/qm-design-react",
3
- "version": "1.11.25",
4
- "description": "A Component Library for React",
5
- "keywords": [
6
- "React",
7
- "components",
8
- "typescript"
9
- ],
10
- "author": "jiaozhiye",
11
- "license": "MIT",
12
- "scripts": {
13
- "dev": "cross-env NODE_ENV=development BABEL_ENV=web webpack serve --progress --config build/webpack.src.conf.js",
14
- "build:lib": "yarn clean:lib && yarn build:umd && yarn build:esm && yarn build:type && yarn build:locale && yarn build:theme",
15
- "build:umd": "cross-env NODE_ENV=production BABEL_ENV=lib webpack --config ./build/webpack.build.conf.js",
16
- "build:esm": "cross-env BABEL_ENV=lib rollup --config ./build/build-esm.rollup.js",
17
- "build:type": "gulp build --gulpfile ./build/build-type.gulp.js && cp-cli lib/packages lib && rimraf lib/packages",
18
- "build:locale": "cross-env BABEL_ENV=lib babel packages/locale --extensions .ts --out-dir lib/locale",
19
- "build:theme": "gulp build --gulpfile ./build/build-style.gulp.js",
20
- "clean:lib": "rimraf lib",
21
- "lint": "eslint ./packages --ext .js,.ts,.jsx,.tsx",
22
- "lint-fix": "eslint --fix ./packages --ext .js,.ts,.jsx,.tsx",
23
- "format": "prettier --write \"./packages/**/*.{js,ts,jsx,tsx}\""
24
- },
25
- "husky": {
26
- "hooks": {
27
- "pre-commit": "lint-staged"
28
- }
29
- },
30
- "lint-staged": {
31
- "packages/**/*.{js,ts,jsx,tsx}": [
32
- "npm run lint-fix",
33
- "git add"
34
- ],
35
- "packages/**/*.{less}": "prettier --write"
36
- },
37
- "publishConfig": {
38
- "registry": "https://registry.npmjs.org/"
39
- },
40
- "files": [
41
- "lib"
42
- ],
43
- "main": "lib/index.js",
44
- "module": "lib/index.esm.js",
45
- "unpkg": "lib/index.full.js",
46
- "types": "lib/index.d.ts",
47
- "style": "lib/style/index.css",
48
- "peerDependencies": {
49
- "react": ">=16.14.0",
50
- "react-dom": ">=16.14.0"
51
- },
52
- "dependencies": {
53
- "@rc-component/color-picker": "^2.0.1",
54
- "@rc-component/portal": "^1.1.2",
55
- "@rc-component/trigger": "^2.2.0",
56
- "add-dom-event-listener": "^1.1.0",
57
- "antd": "4.24.16",
58
- "big.js": "^6.2.1",
59
- "china-area-data": "^5.0.1",
60
- "classnames": "^2.3.2",
61
- "copy-to-clipboard": "^3.3.2",
62
- "cropperjs": "^1.5.12",
63
- "dayjs": "1.x",
64
- "exceljs": "^4.4.0",
65
- "html2canvas": "^1.4.1",
66
- "localforage": "^1.10.0",
67
- "lodash-es": "^4.17.21",
68
- "memoize-one": "^6.0.0",
69
- "prop-types": "^15.8.1",
70
- "react-countup": "^6.4.0",
71
- "react-draggable": "^4.4.6",
72
- "react-sortablejs": "^6.1.4",
73
- "resize-observer-polyfill": "^1.5.1",
74
- "scroll-into-view-if-needed": "^2.2.31",
75
- "sortablejs": "^1.15.2"
76
- },
77
- "devDependencies": {
78
- "@babel/cli": "^7.24.7",
79
- "@babel/core": "^7.24.7",
80
- "@babel/plugin-proposal-decorators": "^7.24.7",
81
- "@babel/plugin-syntax-dynamic-import": "^7.8.3",
82
- "@babel/plugin-transform-class-properties": "^7.24.7",
83
- "@babel/plugin-transform-runtime": "^7.24.7",
84
- "@babel/preset-env": "^7.24.7",
85
- "@babel/preset-react": "^7.24.7",
86
- "@babel/preset-typescript": "^7.24.7",
87
- "@rollup/plugin-babel": "^5.3.0",
88
- "@rollup/plugin-commonjs": "^22.0.2",
89
- "@rollup/plugin-json": "^4.1.0",
90
- "@rollup/plugin-node-resolve": "^14.1.0",
91
- "@rollup/plugin-replace": "^4.0.0",
92
- "@rollup/plugin-terser": "^0.4.4",
93
- "@rollup/plugin-typescript": "^8.5.0",
94
- "@types/lodash-es": "^4.17.6",
95
- "@types/react": "^18.3.0",
96
- "@types/react-dom": "^18.3.0",
97
- "@typescript-eslint/eslint-plugin": "^5.30.0",
98
- "@typescript-eslint/parser": "^5.30.0",
99
- "autoprefixer": "^10.4.14",
100
- "axios": "^0.27.2",
101
- "babel-loader": "^9.1.3",
102
- "core-js": "^3.32.0",
103
- "cp-cli": "^2.0.0",
104
- "cross-env": "^7.0.3",
105
- "css-loader": "^6.11.0",
106
- "eslint": "^8.40.0",
107
- "eslint-plugin-prettier": "^4.2.0",
108
- "eslint-plugin-react": "^7.32.0",
109
- "eslint-plugin-react-hooks": "^4.6.0",
110
- "eslint-webpack-plugin": "^3.2.0",
111
- "gulp": "^4.0.2",
112
- "gulp-autoprefixer": "^8.0.0",
113
- "gulp-clean-css": "^4.3.0",
114
- "gulp-ignore": "^3.0.0",
115
- "gulp-less": "^5.0.0",
116
- "gulp-rename": "^2.0.0",
117
- "gulp-typescript": "^6.0.0-alpha.1",
118
- "html-webpack-plugin": "^5.6.0",
119
- "husky": "^4.3.8",
120
- "less": "^4.2.0",
121
- "less-loader": "^11.1.4",
122
- "lint-staged": "^10.5.4",
123
- "mockjs": "^1.1.0",
124
- "prettier": "^2.8.8",
125
- "react": "^18.2.0",
126
- "react-dom": "^18.2.0",
127
- "rimraf": "^3.0.2",
128
- "rollup": "^2.79.1",
129
- "style-loader": "^3.3.4",
130
- "ts-loader": "^9.4.4",
131
- "typescript": "^4.9.5",
132
- "webpack": "^5.98.0",
133
- "webpack-cli": "^5.1.4",
134
- "webpack-dev-server": "^4.15.2",
135
- "webpack-node-externals": "^3.0.0"
136
- },
137
- "engines": {
138
- "node": ">= 14"
139
- }
140
- }
1
+ {
2
+ "name": "@jiaozhiye/qm-design-react",
3
+ "version": "1.11.26",
4
+ "description": "A Component Library for React",
5
+ "keywords": [
6
+ "React",
7
+ "components",
8
+ "typescript"
9
+ ],
10
+ "author": "jiaozhiye",
11
+ "license": "MIT",
12
+ "scripts": {
13
+ "dev": "cross-env NODE_ENV=development BABEL_ENV=web webpack serve --progress --config build/webpack.src.conf.js",
14
+ "build:lib": "yarn clean:lib && yarn build:umd && yarn build:esm && yarn build:type && yarn build:locale && yarn build:theme",
15
+ "build:umd": "cross-env NODE_ENV=production BABEL_ENV=lib webpack --config ./build/webpack.build.conf.js",
16
+ "build:esm": "cross-env BABEL_ENV=lib rollup --config ./build/build-esm.rollup.js",
17
+ "build:type": "gulp build --gulpfile ./build/build-type.gulp.js && cp-cli lib/packages lib && rimraf lib/packages",
18
+ "build:locale": "cross-env BABEL_ENV=lib babel packages/locale --extensions .ts --out-dir lib/locale",
19
+ "build:theme": "gulp build --gulpfile ./build/build-style.gulp.js",
20
+ "clean:lib": "rimraf lib",
21
+ "lint": "eslint ./packages --ext .js,.ts,.jsx,.tsx",
22
+ "lint-fix": "eslint --fix ./packages --ext .js,.ts,.jsx,.tsx",
23
+ "format": "prettier --write \"./packages/**/*.{js,ts,jsx,tsx}\""
24
+ },
25
+ "husky": {
26
+ "hooks": {
27
+ "pre-commit": "lint-staged"
28
+ }
29
+ },
30
+ "lint-staged": {
31
+ "packages/**/*.{js,ts,jsx,tsx}": [
32
+ "npm run lint-fix",
33
+ "git add"
34
+ ],
35
+ "packages/**/*.{less}": "prettier --write"
36
+ },
37
+ "publishConfig": {
38
+ "registry": "https://registry.npmjs.org/"
39
+ },
40
+ "files": [
41
+ "lib"
42
+ ],
43
+ "main": "lib/index.js",
44
+ "module": "lib/index.esm.js",
45
+ "unpkg": "lib/index.full.js",
46
+ "types": "lib/index.d.ts",
47
+ "style": "lib/style/index.css",
48
+ "peerDependencies": {
49
+ "react": ">=16.14.0",
50
+ "react-dom": ">=16.14.0"
51
+ },
52
+ "dependencies": {
53
+ "@rc-component/color-picker": "^2.0.1",
54
+ "@rc-component/portal": "^1.1.2",
55
+ "@rc-component/trigger": "^2.2.0",
56
+ "add-dom-event-listener": "^1.1.0",
57
+ "antd": "4.24.16",
58
+ "big.js": "^6.2.1",
59
+ "china-area-data": "^5.0.1",
60
+ "classnames": "^2.3.2",
61
+ "copy-to-clipboard": "^3.3.2",
62
+ "cropperjs": "^1.5.12",
63
+ "dayjs": "1.x",
64
+ "exceljs": "^4.4.0",
65
+ "html2canvas": "^1.4.1",
66
+ "localforage": "^1.10.0",
67
+ "lodash-es": "^4.17.21",
68
+ "memoize-one": "^6.0.0",
69
+ "prop-types": "^15.8.1",
70
+ "react-countup": "^6.4.0",
71
+ "react-draggable": "^4.4.6",
72
+ "react-sortablejs": "^6.1.4",
73
+ "resize-observer-polyfill": "^1.5.1",
74
+ "scroll-into-view-if-needed": "^2.2.31",
75
+ "sortablejs": "^1.15.2"
76
+ },
77
+ "devDependencies": {
78
+ "@babel/cli": "^7.24.7",
79
+ "@babel/core": "^7.24.7",
80
+ "@babel/plugin-proposal-decorators": "^7.24.7",
81
+ "@babel/plugin-syntax-dynamic-import": "^7.8.3",
82
+ "@babel/plugin-transform-class-properties": "^7.24.7",
83
+ "@babel/plugin-transform-runtime": "^7.24.7",
84
+ "@babel/preset-env": "^7.24.7",
85
+ "@babel/preset-react": "^7.24.7",
86
+ "@babel/preset-typescript": "^7.24.7",
87
+ "@rollup/plugin-babel": "^5.3.0",
88
+ "@rollup/plugin-commonjs": "^22.0.2",
89
+ "@rollup/plugin-json": "^4.1.0",
90
+ "@rollup/plugin-node-resolve": "^14.1.0",
91
+ "@rollup/plugin-replace": "^4.0.0",
92
+ "@rollup/plugin-terser": "^0.4.4",
93
+ "@rollup/plugin-typescript": "^8.5.0",
94
+ "@types/lodash-es": "^4.17.6",
95
+ "@types/react": "^18.3.0",
96
+ "@types/react-dom": "^18.3.0",
97
+ "@typescript-eslint/eslint-plugin": "^5.30.0",
98
+ "@typescript-eslint/parser": "^5.30.0",
99
+ "autoprefixer": "^10.4.14",
100
+ "axios": "^0.27.2",
101
+ "babel-loader": "^9.1.3",
102
+ "core-js": "^3.32.0",
103
+ "cp-cli": "^2.0.0",
104
+ "cross-env": "^7.0.3",
105
+ "css-loader": "^6.11.0",
106
+ "eslint": "^8.40.0",
107
+ "eslint-plugin-prettier": "^4.2.0",
108
+ "eslint-plugin-react": "^7.32.0",
109
+ "eslint-plugin-react-hooks": "^4.6.0",
110
+ "eslint-webpack-plugin": "^3.2.0",
111
+ "gulp": "^4.0.2",
112
+ "gulp-autoprefixer": "^8.0.0",
113
+ "gulp-clean-css": "^4.3.0",
114
+ "gulp-ignore": "^3.0.0",
115
+ "gulp-less": "^5.0.0",
116
+ "gulp-rename": "^2.0.0",
117
+ "gulp-typescript": "^6.0.0-alpha.1",
118
+ "html-webpack-plugin": "^5.6.0",
119
+ "husky": "^4.3.8",
120
+ "less": "^4.2.0",
121
+ "less-loader": "^11.1.4",
122
+ "lint-staged": "^10.5.4",
123
+ "mockjs": "^1.1.0",
124
+ "prettier": "^2.8.8",
125
+ "react": "^18.2.0",
126
+ "react-dom": "^18.2.0",
127
+ "rimraf": "^3.0.2",
128
+ "rollup": "^2.79.1",
129
+ "style-loader": "^3.3.4",
130
+ "ts-loader": "^9.4.4",
131
+ "typescript": "^4.9.5",
132
+ "webpack": "^5.98.0",
133
+ "webpack-cli": "^5.1.4",
134
+ "webpack-dev-server": "^4.15.2",
135
+ "webpack-node-externals": "^3.0.0"
136
+ },
137
+ "engines": {
138
+ "node": ">= 14"
139
+ }
140
+ }