@ant-design/pro-components 3.0.1-0 → 3.0.2-0

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 (47) hide show
  1. package/dist/pro-components.min.js +1 -1
  2. package/es/card/components/Statistic/style.js +2 -6
  3. package/es/descriptions/index.js +2 -1
  4. package/es/field/ValueTypeToComponent.js +4 -4
  5. package/es/field/components/Checkbox/index.d.ts +1 -1
  6. package/es/field/components/Percent/util.d.ts +1 -1
  7. package/es/field/components/Select/index.d.ts +1 -1
  8. package/es/form/BaseForm/BaseForm.js +3 -2
  9. package/es/form/components/DatePicker/BaseDatePicker.js +20 -12
  10. package/es/form/components/DateRangePicker/BaseDateRanger.js +38 -13
  11. package/es/form/components/SchemaForm/index.js +1 -2
  12. package/es/form/components/UploadButton/index.d.ts +1 -1
  13. package/es/form/components/UploadButton/index.js +3 -3
  14. package/es/layout/components/SiderMenu/index.js +4 -2
  15. package/es/table/Table.js +52 -75
  16. package/es/table/components/ColumnSetting/index.js +12 -2
  17. package/es/table/typing.d.ts +29 -7
  18. package/es/table/utils/columnRender.d.ts +1 -1
  19. package/es/table/utils/genProColumnToColumn.d.ts +2 -2
  20. package/es/table/utils/genProColumnToColumn.js +5 -17
  21. package/es/table/utils/index.d.ts +58 -5
  22. package/es/table/utils/index.js +155 -18
  23. package/es/utils/conversionMomentValue/index.js +14 -2
  24. package/lib/card/components/Statistic/style.js +2 -6
  25. package/lib/descriptions/index.js +2 -1
  26. package/lib/field/ValueTypeToComponent.js +4 -4
  27. package/lib/field/components/ColorPicker/index.d.ts +1 -1
  28. package/lib/field/components/Percent/util.d.ts +1 -1
  29. package/lib/form/BaseForm/BaseForm.js +3 -2
  30. package/lib/form/components/DatePicker/BaseDatePicker.js +19 -11
  31. package/lib/form/components/DateRangePicker/BaseDateRanger.js +37 -12
  32. package/lib/form/components/Digit/DigitRange.d.ts +1 -1
  33. package/lib/form/components/SchemaForm/index.js +1 -2
  34. package/lib/form/components/UploadButton/index.d.ts +1 -1
  35. package/lib/form/components/UploadButton/index.js +3 -3
  36. package/lib/form/layouts/ProForm/index.d.ts +1 -1
  37. package/lib/layout/components/SiderMenu/index.js +4 -2
  38. package/lib/table/Table.js +69 -92
  39. package/lib/table/components/ColumnSetting/index.js +12 -2
  40. package/lib/table/typing.d.ts +29 -7
  41. package/lib/table/utils/columnRender.d.ts +1 -1
  42. package/lib/table/utils/genProColumnToColumn.d.ts +2 -2
  43. package/lib/table/utils/genProColumnToColumn.js +4 -16
  44. package/lib/table/utils/index.d.ts +58 -5
  45. package/lib/table/utils/index.js +157 -20
  46. package/lib/utils/conversionMomentValue/index.js +14 -2
  47. package/package.json +31 -31
@@ -4,11 +4,13 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
4
4
  Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
- exports.isMergeCell = exports.isBordered = exports.genColumnKey = exports.checkUndefinedOrNull = void 0;
7
+ exports.isMergeCell = exports.isLocaleSorter = exports.isLocaleFilter = exports.isBordered = exports.getServerSorterResult = exports.getServerFilterResult = exports.genColumnKey = exports.flattenColumns = exports.checkUndefinedOrNull = void 0;
8
8
  exports.mergePagination = mergePagination;
9
- exports.parseDefaultColumnConfig = parseDefaultColumnConfig;
9
+ exports.parseServerDefaultColumnConfig = exports.parseProSortOrder = exports.parseProFilteredValue = exports.parseDataIndex = void 0;
10
10
  exports.postDataPipeline = postDataPipeline;
11
11
  exports.useActionType = useActionType;
12
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
13
+ var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
12
14
  var _regeneratorRuntime2 = _interopRequireDefault(require("@babel/runtime/helpers/regeneratorRuntime"));
13
15
  var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
14
16
  var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
@@ -158,7 +160,9 @@ function useActionType(ref, action, props) {
158
160
  },
159
161
  setPageInfo: function setPageInfo(rest) {
160
162
  return action.setPageInfo(rest);
161
- }
163
+ },
164
+ // 透出 scrollTo(如上层提供)
165
+ scrollTo: props.scrollTo
162
166
  });
163
167
  // eslint-disable-next-line no-param-reassign
164
168
  ref.current = userAction;
@@ -213,41 +217,174 @@ var genColumnKey = exports.genColumnKey = function genColumnKey(key, index) {
213
217
  *
214
218
  * @param dataIndex Column 中的 dataIndex
215
219
  */
216
- function parseDataIndex(dataIndex) {
220
+ var parseDataIndex = exports.parseDataIndex = function parseDataIndex(dataIndex) {
217
221
  if (Array.isArray(dataIndex)) {
218
222
  return dataIndex.join(',');
219
223
  }
220
224
  return dataIndex === null || dataIndex === void 0 ? void 0 : dataIndex.toString();
221
- }
225
+ };
222
226
 
223
227
  /**
224
- * ProColumns 数组中取出默认的排序和筛选数据
225
- *
228
+ * 平铺所有columns, 用于判断是用的是本地筛选/排序
229
+ * @param data 列配置
230
+ * @returns 平铺后的列配置
231
+ */
232
+ var flattenColumns = exports.flattenColumns = function flattenColumns(data) {
233
+ var _columns = [];
234
+ for (var i = 0; i < data.length; i++) {
235
+ var _curItem = data[i];
236
+ if (_curItem.children) {
237
+ _columns.push.apply(_columns, (0, _toConsumableArray2.default)(flattenColumns(_curItem.children)));
238
+ } else {
239
+ _columns.push(_curItem);
240
+ }
241
+ }
242
+ return _columns;
243
+ };
244
+
245
+ /**
246
+ * 判断是否为本地筛选
247
+ * @param filters 筛选配置
248
+ * @param onFilter 筛选函数
249
+ * @returns 是否为本地筛选
250
+ */
251
+ var isLocaleFilter = exports.isLocaleFilter = function isLocaleFilter(filters, onFilter) {
252
+ return !!filters && !!onFilter;
253
+ };
254
+
255
+ /**
256
+ * 判断是否为本地排序
257
+ * @param sorter 排序配置
258
+ * @returns 是否为本地排序
259
+ */
260
+ var isLocaleSorter = exports.isLocaleSorter = function isLocaleSorter(sorter) {
261
+ return typeof sorter === 'function' || (0, _typeof2.default)(sorter) === 'object' && typeof sorter.compare === 'function';
262
+ };
263
+
264
+ /**
265
+ * 获取服务端筛选数据
266
+ * @param filters 筛选数据
267
+ * @param columns 列配置
268
+ * @returns 服务端筛选数据
269
+ */
270
+ var getServerFilterResult = exports.getServerFilterResult = function getServerFilterResult(filters, columns) {
271
+ // 过滤掉本地筛选的列
272
+ return Object.entries(filters).reduce(function (acc, _ref2) {
273
+ var _ref3 = (0, _slicedToArray2.default)(_ref2, 2),
274
+ key = _ref3[0],
275
+ value = _ref3[1];
276
+ var column = columns.find(function (column) {
277
+ return parseDataIndex(column.dataIndex) === key;
278
+ });
279
+ if (column != null && !isLocaleFilter(column.filters, column.onFilter)) acc[key] = value;
280
+ return acc;
281
+ }, {});
282
+ };
283
+
284
+ /**
285
+ * 获取服务端排序数据
286
+ * @param sorterResult 排序数据
287
+ * @returns 服务端排序数据
288
+ */
289
+ var getServerSorterResult = exports.getServerSorterResult = function getServerSorterResult(sorterResult) {
290
+ var result = Array.isArray(sorterResult) ? sorterResult : [sorterResult];
291
+ var serverSorter = result.reduce(function (acc, item) {
292
+ var _item$column, _item$column2;
293
+ var sorter = (_item$column = item.column) === null || _item$column === void 0 ? void 0 : _item$column.sorter;
294
+ if (sorter != null && isLocaleSorter(sorter)) return acc;
295
+ var sortKey = typeof sorter === 'string' ? sorter : parseDataIndex((_item$column2 = item.column) === null || _item$column2 === void 0 ? void 0 : _item$column2.dataIndex);
296
+ if (sortKey != null) acc[sortKey] = item.order;
297
+ return acc;
298
+ }, {});
299
+ return serverSorter;
300
+ };
301
+
302
+ /**
303
+ * 从 ProColumns 数组中取出默认的服务端排序和筛选数据
226
304
  * @param columns ProColumns
227
305
  */
228
- function parseDefaultColumnConfig(columns) {
306
+ var parseServerDefaultColumnConfig = exports.parseServerDefaultColumnConfig = function parseServerDefaultColumnConfig(columns) {
229
307
  var filter = {};
230
308
  var sort = {};
231
309
  columns.forEach(function (column) {
232
310
  // 转换 dataIndex
233
311
  var dataIndex = parseDataIndex(column.dataIndex);
234
- if (!dataIndex) {
235
- return;
312
+ if (!dataIndex) return; // 没有 dataIndex 的列不参与服务端排序/筛选
313
+
314
+ // 当 column 启用服务端 filters 功能时,取出默认的筛选值
315
+ if (column.filters && !isLocaleFilter(column.filters, column.onFilter)) {
316
+ var _ref4;
317
+ filter[dataIndex] = (_ref4 = column.defaultFilteredValue) !== null && _ref4 !== void 0 ? _ref4 : null;
236
318
  }
237
- // 当 column 启用 filters 功能时,取出默认的筛选值
238
- if (column.filters) {
239
- var defaultFilteredValue = column.defaultFilteredValue;
240
- if (defaultFilteredValue !== undefined) {
241
- filter[dataIndex] = column.defaultFilteredValue;
319
+
320
+ // column 启用服务端 sorter 功能时,取出默认的排序值
321
+ if (column.sorter && !isLocaleSorter(column.sorter)) {
322
+ if (typeof column.sorter === 'string') {
323
+ var _column$defaultSortOr;
324
+ sort[column.sorter] = (_column$defaultSortOr = column.defaultSortOrder) !== null && _column$defaultSortOr !== void 0 ? _column$defaultSortOr : null;
325
+ } else {
326
+ var _column$defaultSortOr2;
327
+ sort[dataIndex] = (_column$defaultSortOr2 = column.defaultSortOrder) !== null && _column$defaultSortOr2 !== void 0 ? _column$defaultSortOr2 : null;
242
328
  }
243
329
  }
244
- // 当 column 启用 sorter 功能时,取出默认的排序值
245
- if (column.sorter && column.defaultSortOrder) {
246
- sort[dataIndex] = column.defaultSortOrder;
247
- }
248
330
  });
249
331
  return {
250
332
  sort: sort,
251
333
  filter: filter
252
334
  };
253
- }
335
+ };
336
+
337
+ /**
338
+ * 解析对应排序值,用作双向绑定
339
+ * @param proSort 排序配置
340
+ * @param columnProps 列配置
341
+ * @returns 排序值
342
+ */
343
+ var parseProSortOrder = exports.parseProSortOrder = function parseProSortOrder(proSort, columnProps) {
344
+ var sorter = columnProps.sorter,
345
+ columnSortOrder = columnProps.sortOrder,
346
+ dataIndex = columnProps.dataIndex;
347
+
348
+ // 优先使用用户明确设置的 sortOrder
349
+ if (columnSortOrder !== undefined) return columnSortOrder;
350
+
351
+ // 如果没有排序器配置,直接返回 undefined
352
+ if (sorter == null) return undefined;
353
+
354
+ // 如果是本地排序,不使用 proSort 中的值
355
+ if (isLocaleSorter(sorter)) return undefined;
356
+
357
+ // 服务端排序:确定排序键
358
+ var sortKey = typeof sorter === 'string' ? sorter : parseDataIndex(dataIndex);
359
+
360
+ // 返回对应的排序值
361
+ return sortKey ? proSort[sortKey] : undefined;
362
+ };
363
+
364
+ /**
365
+ * 解析对应筛选值,用作双向绑定
366
+ * @param proFilter 筛选配置
367
+ * @param columnProps 列配置
368
+ * @returns 筛选值
369
+ */
370
+ var parseProFilteredValue = exports.parseProFilteredValue = function parseProFilteredValue(proFilter, columnProps) {
371
+ var filters = columnProps.filters,
372
+ onFilter = columnProps.onFilter,
373
+ columnFilteredValue = columnProps.filteredValue,
374
+ dataIndex = columnProps.dataIndex;
375
+
376
+ // 优先使用用户设置的 filteredValue
377
+ if (columnFilteredValue !== undefined) return columnFilteredValue;
378
+
379
+ // 如果没有筛选配置,直接返回 undefined
380
+ if (filters == null) return undefined;
381
+
382
+ // 如果是本地筛选,不使用 proFilter 中的值
383
+ if (isLocaleFilter(filters, onFilter)) return undefined;
384
+
385
+ // 服务端排序:获取筛选键
386
+ var filterKey = parseDataIndex(dataIndex);
387
+
388
+ // 返回对应的筛选值
389
+ return filterKey ? proFilter[filterKey] : undefined;
390
+ };
@@ -140,17 +140,29 @@ var conversionMomentValue = exports.conversionMomentValue = function conversionM
140
140
  tmpValue[valueKey] = conversionMomentValue(itemValue, dateFormatter, valueTypeMap, omitNil, namePath);
141
141
  return;
142
142
  }
143
+ var currentDateFormatter = dateFormatter !== null && dateFormatter !== void 0 ? dateFormatter : 'string';
144
+ var finalDateFormatter;
145
+ if (currentDateFormatter === 'number' || currentDateFormatter === false || typeof currentDateFormatter === 'function') {
146
+ finalDateFormatter = currentDateFormatter;
147
+ } else if (currentDateFormatter === 'string') {
148
+ finalDateFormatter = dateFormat || dateFormatterMap[valueType];
149
+ } else {
150
+ // Custom format string
151
+ finalDateFormatter = currentDateFormatter;
152
+ }
143
153
  // 处理 FormList 的 value
144
154
  if (Array.isArray(itemValue)) {
145
155
  tmpValue[valueKey] = itemValue.map(function (arrayValue, index) {
146
156
  if (_dayjs.default.isDayjs(arrayValue) || isMoment(arrayValue)) {
147
- return convertMoment(arrayValue, dateFormat || dateFormatter, valueType);
157
+ // For arrays, if no format is defined and dateFormatter is 'string', use 'string' with default format
158
+ var arrayDateFormatter = finalDateFormatter === undefined && currentDateFormatter === 'string' ? 'string' : finalDateFormatter;
159
+ return convertMoment(arrayValue, arrayDateFormatter, valueType);
148
160
  }
149
161
  return conversionMomentValue(arrayValue, dateFormatter, valueTypeMap, omitNil, [valueKey, "".concat(index)].flat(1));
150
162
  });
151
163
  return;
152
164
  }
153
- tmpValue[valueKey] = convertMoment(itemValue, dateFormat || (dateFormatter === 'string' ? dateFormatterMap[valueType] : dateFormatter), valueType);
165
+ tmpValue[valueKey] = convertMoment(itemValue, finalDateFormatter, valueType);
154
166
  });
155
167
  return tmpValue;
156
168
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ant-design/pro-components",
3
- "version": "3.0.1-0",
3
+ "version": "3.0.2-0",
4
4
  "type": "module",
5
5
  "description": "All-in-one package of @ant-design/pro-components",
6
6
  "keywords": [
@@ -51,7 +51,7 @@
51
51
  "test:ui": "cross-env TZ=UTC vitest --ui",
52
52
  "test:update": "cross-env TZ=UTC vitest -u",
53
53
  "tsc": "tsc --noEmit",
54
- "prepublishOnly": "npm run test && npm run build",
54
+ "prepublishOnly": "npm run build",
55
55
  "publish:beta": "npm publish --tag beta",
56
56
  "update:deps": "pnpm up --latest"
57
57
  },
@@ -69,8 +69,8 @@
69
69
  "dependencies": {
70
70
  "@ant-design/cssinjs": "^1.24.0",
71
71
  "@ant-design/icons": "^5.6.1",
72
- "@babel/runtime": "^7.27.6",
73
- "@ctrl/tinycolor": "^4.1.0",
72
+ "@babel/runtime": "^7.28.4",
73
+ "@ctrl/tinycolor": "^4.2.0",
74
74
  "@dnd-kit/core": "^6.3.1",
75
75
  "@dnd-kit/modifiers": "^6.0.1",
76
76
  "@dnd-kit/sortable": "^7.0.2",
@@ -78,42 +78,42 @@
78
78
  "@emotion/cache": "^11.14.0",
79
79
  "@emotion/css": "^11.13.5",
80
80
  "@emotion/serialize": "^1.3.3",
81
- "@rc-component/util": "^1.2.2",
82
- "@umijs/route-utils": "^4.0.1",
81
+ "@rc-component/util": "^1.3.0",
82
+ "@umijs/route-utils": "^4.0.3",
83
83
  "@umijs/use-params": "^1.0.9",
84
84
  "classnames": "^2.5.1",
85
- "dayjs": "^1.11.13",
85
+ "dayjs": "^1.11.18",
86
86
  "lodash-es": "^4.17.21",
87
87
  "path-to-regexp": "^6.3.0",
88
88
  "rc-field-form": "^2.7.0",
89
89
  "rc-footer": "^0.6.8",
90
90
  "rc-resize-observer": "^1.4.3",
91
91
  "rc-steps": "^6.0.1",
92
- "rc-table": "^7.51.1",
92
+ "rc-table": "^7.55.1",
93
93
  "react-draggable": "^4.5.0",
94
94
  "react-layout-kit": "^1.9.2",
95
95
  "react-lazy-load": "^4.0.1",
96
96
  "react-markdown": "^8.0.7",
97
- "react-syntax-highlighter": "^15.6.1",
97
+ "react-syntax-highlighter": "^15.6.6",
98
98
  "safe-stable-stringify": "^2.5.0",
99
99
  "shiki-es": "^0.2.0",
100
- "swr": "^2.3.4"
100
+ "swr": "^2.3.6"
101
101
  },
102
102
  "devDependencies": {
103
103
  "@ant-design/antd-theme-variable": "^1.0.0",
104
- "@babel/core": "^7.28.0",
104
+ "@babel/core": "^7.28.5",
105
105
  "@babel/eslint-plugin": "^7.27.1",
106
- "@babel/parser": "^7.28.0",
106
+ "@babel/parser": "^7.28.5",
107
107
  "@babel/plugin-proposal-object-rest-spread": "^7.20.7",
108
- "@babel/preset-env": "^7.28.0",
109
- "@babel/preset-react": "^7.27.1",
110
- "@babel/preset-typescript": "^7.27.1",
111
- "@babel/traverse": "^7.28.0",
108
+ "@babel/preset-env": "^7.28.5",
109
+ "@babel/preset-react": "^7.28.5",
110
+ "@babel/preset-typescript": "^7.28.5",
111
+ "@babel/traverse": "^7.28.5",
112
112
  "@emotion/babel-plugin": "^11.13.5",
113
113
  "@octokit/core": "^3.6.0",
114
114
  "@octokit/rest": "^18.12.0",
115
- "@testing-library/dom": "^10.4.0",
116
- "@testing-library/jest-dom": "^6.6.3",
115
+ "@testing-library/dom": "^10.4.1",
116
+ "@testing-library/jest-dom": "^6.9.1",
117
117
  "@testing-library/react": "^16.3.0",
118
118
  "@testing-library/react-hooks": "^8.0.1",
119
119
  "@testing-library/user-event": "^14.6.1",
@@ -123,26 +123,26 @@
123
123
  "@types/lodash-es": "^4.17.12",
124
124
  "@types/mockjs": "^1.0.10",
125
125
  "@types/node": "^14.18.63",
126
- "@types/react": "^18.3.23",
126
+ "@types/react": "^18.3.26",
127
127
  "@types/react-dom": "^18.3.7",
128
128
  "@types/react-helmet": "^6.1.11",
129
129
  "@types/react-responsive": "^8.0.8",
130
130
  "@types/shallowequal": "^1.1.5",
131
131
  "@types/warning": "^3.0.3",
132
- "@typescript-eslint/eslint-plugin": "^8.38.0",
133
- "@typescript-eslint/parser": "^8.38.0",
132
+ "@typescript-eslint/eslint-plugin": "^8.46.2",
133
+ "@typescript-eslint/parser": "^8.46.2",
134
134
  "@umijs/babel-preset-umi": "^3.5.43",
135
135
  "@umijs/doctor": "^1.2.1",
136
136
  "@umijs/plugin-analytics": "^0.2.4",
137
137
  "@umijs/test": "^3.5.43",
138
138
  "@umijs/test-utils": "^3.5.43",
139
- "@umijs/utils": "^4.4.11",
139
+ "@umijs/utils": "^4.5.3",
140
140
  "@vitejs/plugin-legacy": "^6.1.1",
141
141
  "@vitest/browser": "^3.2.4",
142
142
  "@vitest/coverage-istanbul": "^3.2.4",
143
143
  "@vitest/ui": "^3.2.4",
144
144
  "animated-scroll-to": "^2.3.2",
145
- "antd": "^5.26.6",
145
+ "antd": "^5.27.6",
146
146
  "chalk": "^4.1.2",
147
147
  "copy-to-clipboard": "^3.3.3",
148
148
  "cross-env": "^7.0.3",
@@ -156,12 +156,12 @@
156
156
  "execa": "^5.1.1",
157
157
  "express": "^4.21.2",
158
158
  "fast-deep-equal": "^3.1.3",
159
- "father": "^4.6.1",
159
+ "father": "^4.6.7",
160
160
  "gh-pages": "^5.0.0",
161
161
  "glob": "^8.1.0",
162
162
  "happy-dom": "^14.12.3",
163
163
  "identity-obj-proxy": "^3.0.0",
164
- "inquirer": "^8.2.6",
164
+ "inquirer": "^8.2.7",
165
165
  "jest-canvas-mock": "^2.5.2",
166
166
  "lint-staged": "^10.5.4",
167
167
  "mockdate": "^3.0.5",
@@ -170,10 +170,10 @@
170
170
  "nprogress": "^0.2.0",
171
171
  "nwsapi": "2.2.13",
172
172
  "octokit": "^3.2.2",
173
- "playwright": "^1.54.1",
173
+ "playwright": "^1.56.1",
174
174
  "polished": "^4.3.1",
175
175
  "prettier": "^3.6.2",
176
- "prettier-plugin-organize-imports": "^4.1.0",
176
+ "prettier-plugin-organize-imports": "^4.3.0",
177
177
  "prettier-plugin-packagejson": "^2.5.19",
178
178
  "pretty-quick": "^3.3.1",
179
179
  "query-string": "^6.14.1",
@@ -187,13 +187,13 @@
187
187
  "stylelint": "^13.13.1",
188
188
  "timezone-mock": "^1.3.6",
189
189
  "ts-node": "^10.9.2",
190
- "tsx": "^4.20.3",
191
- "typescript": "^5.8.3",
192
- "umi": "^4.4.11",
190
+ "tsx": "^4.20.6",
191
+ "typescript": "^5.9.3",
192
+ "umi": "^4.5.3",
193
193
  "umi-request": "^1.4.0",
194
194
  "unified": "^11.0.5",
195
195
  "unist-util-visit": "^5.0.0",
196
- "vite": "^6.3.5",
196
+ "vite": "^6.4.1",
197
197
  "vitest": "^3.2.4",
198
198
  "write-pkg": "^4.0.0",
199
199
  "xhr-mock": "^2.5.1",