@1money/component-ui 0.0.68 → 0.0.69
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/es/components/ProForm/interface.d.ts +3 -1
- package/es/components/ProForm/layouts/QueryFilter.js +5 -1
- package/es/components/ProTable/ProTable.d.ts +5 -0
- package/es/components/ProTable/ProTable.js +309 -0
- package/es/components/ProTable/constants.d.ts +12 -0
- package/es/components/ProTable/constants.js +12 -0
- package/es/components/ProTable/core/genColumns.d.ts +10 -0
- package/es/components/ProTable/core/genColumns.js +81 -0
- package/es/components/ProTable/core/genSearchFields.d.ts +19 -0
- package/es/components/ProTable/core/genSearchFields.js +103 -0
- package/es/components/ProTable/core/useAwaitableReload.d.ts +17 -0
- package/es/components/ProTable/core/useAwaitableReload.js +39 -0
- package/es/components/ProTable/core/utils.d.ts +12 -0
- package/es/components/ProTable/core/utils.js +21 -0
- package/es/components/ProTable/index.d.ts +4 -0
- package/es/components/ProTable/index.js +5 -0
- package/es/components/ProTable/interface.d.ts +132 -0
- package/es/components/ProTable/interface.js +2 -0
- package/es/components/ProTable/style/ProTable.css +47 -0
- package/es/components/ProTable/style/css.js +6 -0
- package/es/components/ProTable/style/index.d.ts +5 -0
- package/es/components/ProTable/style/index.js +6 -0
- package/es/components/ProTable/useFetchData.d.ts +48 -0
- package/es/components/ProTable/useFetchData.js +270 -0
- package/es/index.css +1 -1
- package/es/index.d.ts +2 -0
- package/es/index.js +2 -1
- package/lib/components/ProForm/interface.d.ts +3 -1
- package/lib/components/ProForm/layouts/QueryFilter.js +5 -1
- package/lib/components/ProTable/ProTable.d.ts +5 -0
- package/lib/components/ProTable/ProTable.js +316 -0
- package/lib/components/ProTable/constants.d.ts +12 -0
- package/lib/components/ProTable/constants.js +18 -0
- package/lib/components/ProTable/core/genColumns.d.ts +10 -0
- package/lib/components/ProTable/core/genColumns.js +87 -0
- package/lib/components/ProTable/core/genSearchFields.d.ts +19 -0
- package/lib/components/ProTable/core/genSearchFields.js +111 -0
- package/lib/components/ProTable/core/useAwaitableReload.d.ts +17 -0
- package/lib/components/ProTable/core/useAwaitableReload.js +46 -0
- package/lib/components/ProTable/core/utils.d.ts +12 -0
- package/lib/components/ProTable/core/utils.js +28 -0
- package/lib/components/ProTable/index.d.ts +4 -0
- package/lib/components/ProTable/index.js +33 -0
- package/lib/components/ProTable/interface.d.ts +132 -0
- package/lib/components/ProTable/interface.js +6 -0
- package/lib/components/ProTable/style/ProTable.css +47 -0
- package/lib/components/ProTable/style/css.js +8 -0
- package/lib/components/ProTable/style/index.d.ts +5 -0
- package/lib/components/ProTable/style/index.js +8 -0
- package/lib/components/ProTable/useFetchData.d.ts +48 -0
- package/lib/components/ProTable/useFetchData.js +277 -0
- package/lib/index.css +1 -1
- package/lib/index.d.ts +2 -0
- package/lib/index.js +8 -1
- package/package.json +6 -1
- package/scripts/mcp-server/examples.generated.json +156 -0
- package/scripts/mcp-server/index.generated.json +733 -1
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/** BEM class prefix (root class becomes `om-component-ui-pro-table`). */
|
|
2
|
+
export declare const CSS_PREFIX = "pro-table";
|
|
3
|
+
/** Lightweight valueType set supported in v1 — drives cell render + search field. */
|
|
4
|
+
export declare const VALUE_TYPES: readonly ["text", "select", "date", "dateRange", "digit"];
|
|
5
|
+
export type ProTableValueType = (typeof VALUE_TYPES)[number];
|
|
6
|
+
export declare const DEFAULT_PAGE_SIZE = 10;
|
|
7
|
+
export declare const DEFAULT_CURRENT = 1;
|
|
8
|
+
/** User-facing strings — no magic strings in the component code. */
|
|
9
|
+
export declare const DEFAULT_TEXT: {
|
|
10
|
+
readonly search: "Search";
|
|
11
|
+
readonly reset: "Reset";
|
|
12
|
+
};
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.VALUE_TYPES = exports.DEFAULT_TEXT = exports.DEFAULT_PAGE_SIZE = exports.DEFAULT_CURRENT = exports.CSS_PREFIX = void 0;
|
|
7
|
+
/** BEM class prefix (root class becomes `om-component-ui-pro-table`). */
|
|
8
|
+
var CSS_PREFIX = exports.CSS_PREFIX = 'pro-table';
|
|
9
|
+
/** Lightweight valueType set supported in v1 — drives cell render + search field. */
|
|
10
|
+
var VALUE_TYPES = exports.VALUE_TYPES = ['text', 'select', 'date', 'dateRange', 'digit'];
|
|
11
|
+
var DEFAULT_PAGE_SIZE = exports.DEFAULT_PAGE_SIZE = 10;
|
|
12
|
+
var DEFAULT_CURRENT = exports.DEFAULT_CURRENT = 1;
|
|
13
|
+
/** User-facing strings — no magic strings in the component code. */
|
|
14
|
+
var DEFAULT_TEXT = exports.DEFAULT_TEXT = {
|
|
15
|
+
search: 'Search',
|
|
16
|
+
reset: 'Reset'
|
|
17
|
+
};
|
|
18
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvc3JjL2NvbXBvbmVudHMvUHJvVGFibGUvY29uc3RhbnRzLnRzIiwiY29tcG9uZW50cy9Qcm9UYWJsZS9jb25zdGFudHMuanMiXSwibmFtZXMiOlsiQ1NTX1BSRUZJWCIsImV4cG9ydHMiLCJWQUxVRV9UWVBFUyIsIkRFRkFVTFRfUEFHRV9TSVpFIiwiREVGQVVMVF9DVVJSRU5UIiwiREVGQVVMVF9URVhUIiwic2VhcmNoIiwicmVzZXQiXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBO0FBQ08sSUFBTUEsVUFBVSxHQUFBQyxPQUFBLENBQUFELFVBQUEsR0FBRyxXQUFXO0FBRXJDO0FBQ08sSUFBTUUsV0FBVyxHQUFBRCxPQUFBLENBQUFDLFdBQUEsR0FBRyxDQUFDLE1BQU0sRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLFdBQVcsRUFBRSxPQUFPLENBQVU7QUFHN0UsSUFBTUMsaUJBQWlCLEdBQUFGLE9BQUEsQ0FBQUUsaUJBQUEsR0FBRyxFQUFFO0FBQzVCLElBQU1DLGVBQWUsR0FBQUgsT0FBQSxDQUFBRyxlQUFBLEdBQUcsQ0FBQztBQUVoQztBQUNPLElBQU1DLFlBQVksR0FBQUosT0FBQSxDQUFBSSxZQUFBLEdBQUc7RUFDMUJDLE1BQU0sRUFBRSxRQUFRO0VBQ2hCQyxLQUFLLEVBQUU7QUNIVCxDRElVIiwiZmlsZSI6ImNvbXBvbmVudHMvUHJvVGFibGUvY29uc3RhbnRzLmpzIiwic291cmNlc0NvbnRlbnQiOltudWxsLCIvKiogQkVNIGNsYXNzIHByZWZpeCAocm9vdCBjbGFzcyBiZWNvbWVzIGBvbS1jb21wb25lbnQtdWktcHJvLXRhYmxlYCkuICovXG5leHBvcnQgY29uc3QgQ1NTX1BSRUZJWCA9ICdwcm8tdGFibGUnO1xuLyoqIExpZ2h0d2VpZ2h0IHZhbHVlVHlwZSBzZXQgc3VwcG9ydGVkIGluIHYxIOKAlCBkcml2ZXMgY2VsbCByZW5kZXIgKyBzZWFyY2ggZmllbGQuICovXG5leHBvcnQgY29uc3QgVkFMVUVfVFlQRVMgPSBbJ3RleHQnLCAnc2VsZWN0JywgJ2RhdGUnLCAnZGF0ZVJhbmdlJywgJ2RpZ2l0J107XG5leHBvcnQgY29uc3QgREVGQVVMVF9QQUdFX1NJWkUgPSAxMDtcbmV4cG9ydCBjb25zdCBERUZBVUxUX0NVUlJFTlQgPSAxO1xuLyoqIFVzZXItZmFjaW5nIHN0cmluZ3Mg4oCUIG5vIG1hZ2ljIHN0cmluZ3MgaW4gdGhlIGNvbXBvbmVudCBjb2RlLiAqL1xuZXhwb3J0IGNvbnN0IERFRkFVTFRfVEVYVCA9IHtcbiAgICBzZWFyY2g6ICdTZWFyY2gnLFxuICAgIHJlc2V0OiAnUmVzZXQnLFxufTsiXSwic291cmNlUm9vdCI6Ii4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYyJ9
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { ReactNode } from 'react';
|
|
2
|
+
import type { TableColumn, TableRecord } from "../../Table";
|
|
3
|
+
import type { ProColumns } from '../interface';
|
|
4
|
+
/**
|
|
5
|
+
* Convert Pro columns into base Table columns: drop `hideInTable` columns, strip
|
|
6
|
+
* Pro-only fields, and — for any column without an explicit `render` — attach a
|
|
7
|
+
* value-type-driven cell renderer that falls back to `emptyText` for empty
|
|
8
|
+
* values. An explicit `render` always wins and is left untouched.
|
|
9
|
+
*/
|
|
10
|
+
export declare function genColumns<T extends TableRecord>(columns: ProColumns<T>[], emptyText?: ReactNode): TableColumn<T>[];
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.genColumns = genColumns;
|
|
7
|
+
function _createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
|
|
8
|
+
function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
|
|
9
|
+
function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
|
|
10
|
+
var DEFAULT_EMPTY_TEXT = '-';
|
|
11
|
+
/** Pro-only column fields that must NOT leak onto the base Table column object. */
|
|
12
|
+
var PRO_COLUMN_KEYS = ['valueType', 'valueEnum', 'search', 'hideInTable', 'hideInSearch', 'renderFormItem', 'fieldProps', 'initialValue', 'order'];
|
|
13
|
+
function toBaseColumn(column) {
|
|
14
|
+
var clone = Object.assign({}, column);
|
|
15
|
+
var _iterator = _createForOfIteratorHelper(PRO_COLUMN_KEYS),
|
|
16
|
+
_step;
|
|
17
|
+
try {
|
|
18
|
+
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
19
|
+
var key = _step.value;
|
|
20
|
+
delete clone[key];
|
|
21
|
+
}
|
|
22
|
+
} catch (err) {
|
|
23
|
+
_iterator.e(err);
|
|
24
|
+
} finally {
|
|
25
|
+
_iterator.f();
|
|
26
|
+
}
|
|
27
|
+
return clone;
|
|
28
|
+
}
|
|
29
|
+
function isEmptyValue(value) {
|
|
30
|
+
return value === null || value === undefined || value === '' || Array.isArray(value) && value.length === 0;
|
|
31
|
+
}
|
|
32
|
+
function enumText(valueEnum, value) {
|
|
33
|
+
if (!valueEnum) return value;
|
|
34
|
+
var item = valueEnum[value];
|
|
35
|
+
if (item === undefined) return value;
|
|
36
|
+
return typeof item === 'string' ? item : item.text;
|
|
37
|
+
}
|
|
38
|
+
function formatDate(value) {
|
|
39
|
+
if (value instanceof Date) return value.toLocaleDateString();
|
|
40
|
+
var date = new Date(value);
|
|
41
|
+
return Number.isNaN(date.getTime()) ? String(value) : date.toLocaleDateString();
|
|
42
|
+
}
|
|
43
|
+
function formatDateRange(value) {
|
|
44
|
+
if (!Array.isArray(value)) return String(value);
|
|
45
|
+
return value.map(function (item) {
|
|
46
|
+
return formatDate(item);
|
|
47
|
+
}).join(' ~ ');
|
|
48
|
+
}
|
|
49
|
+
function formatDigit(value) {
|
|
50
|
+
var num = Number(value);
|
|
51
|
+
return Number.isNaN(num) ? String(value) : num.toLocaleString();
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Convert Pro columns into base Table columns: drop `hideInTable` columns, strip
|
|
55
|
+
* Pro-only fields, and — for any column without an explicit `render` — attach a
|
|
56
|
+
* value-type-driven cell renderer that falls back to `emptyText` for empty
|
|
57
|
+
* values. An explicit `render` always wins and is left untouched.
|
|
58
|
+
*/
|
|
59
|
+
function genColumns(columns) {
|
|
60
|
+
var emptyText = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : DEFAULT_EMPTY_TEXT;
|
|
61
|
+
return columns.filter(function (column) {
|
|
62
|
+
return column.hideInTable !== true;
|
|
63
|
+
}).map(function (column) {
|
|
64
|
+
var base = toBaseColumn(column);
|
|
65
|
+
if (base.render) return base;
|
|
66
|
+
var valueType = column.valueType,
|
|
67
|
+
valueEnum = column.valueEnum;
|
|
68
|
+
base.render = function (value) {
|
|
69
|
+
if (isEmptyValue(value)) return emptyText;
|
|
70
|
+
switch (valueType) {
|
|
71
|
+
case 'select':
|
|
72
|
+
return enumText(valueEnum, value);
|
|
73
|
+
case 'date':
|
|
74
|
+
return formatDate(value);
|
|
75
|
+
case 'dateRange':
|
|
76
|
+
return formatDateRange(value);
|
|
77
|
+
case 'digit':
|
|
78
|
+
return formatDigit(value);
|
|
79
|
+
case 'text':
|
|
80
|
+
default:
|
|
81
|
+
return value;
|
|
82
|
+
}
|
|
83
|
+
};
|
|
84
|
+
return base;
|
|
85
|
+
});
|
|
86
|
+
}
|
|
87
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvUHJvVGFibGUvc3JjL2NvbXBvbmVudHMvUHJvVGFibGUvY29yZS9nZW5Db2x1bW5zLnRzeCIsImNvbXBvbmVudHMvUHJvVGFibGUvY29yZS9nZW5Db2x1bW5zLmpzIl0sIm5hbWVzIjpbIkRFRkFVTFRfRU1QVFlfVEVYVCIsIlBST19DT0xVTU5fS0VZUyIsInRvQmFzZUNvbHVtbiIsImNvbHVtbiIsImNsb25lIiwiT2JqZWN0IiwiYXNzaWduIiwiX2l0ZXJhdG9yIiwiX2NyZWF0ZUZvck9mSXRlcmF0b3JIZWxwZXIiLCJfc3RlcCIsInMiLCJuIiwiZG9uZSIsImtleSIsInZhbHVlIiwiZXJyIiwiZSIsImYiLCJpc0VtcHR5VmFsdWUiLCJ1bmRlZmluZWQiLCJBcnJheSIsImlzQXJyYXkiLCJsZW5ndGgiLCJlbnVtVGV4dCIsInZhbHVlRW51bSIsIml0ZW0iLCJ0ZXh0IiwiZm9ybWF0RGF0ZSIsIkRhdGUiLCJ0b0xvY2FsZURhdGVTdHJpbmciLCJkYXRlIiwiTnVtYmVyIiwiaXNOYU4iLCJnZXRUaW1lIiwiU3RyaW5nIiwiZm9ybWF0RGF0ZVJhbmdlIiwibWFwIiwiam9pbiIsImZvcm1hdERpZ2l0IiwibnVtIiwidG9Mb2NhbGVTdHJpbmciLCJnZW5Db2x1bW5zIiwiY29sdW1ucyIsImVtcHR5VGV4dCIsImFyZ3VtZW50cyIsImZpbHRlciIsImhpZGVJblRhYmxlIiwiYmFzZSIsInJlbmRlciIsInZhbHVlVHlwZSJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBS0EsSUFBTUEsa0JBQWtCLEdBQUcsR0FBRztBQUU5QjtBQUNBLElBQU1DLGVBQWUsR0FBRyxDQUN0QixXQUFXLEVBQ1gsV0FBVyxFQUNYLFFBQVEsRUFDUixhQUFhLEVBQ2IsY0FBYyxFQUNkLGdCQUFnQixFQUNoQixZQUFZLEVBQ1osY0FBYyxFQUNkLE9BQU8sQ0FDQztBQUVWLFNBQVNDLFlBQVlBLENBQXdCQyxNQUFxQixFQUFBO0VBQ2hFLElBQU1DLEtBQUssR0FBQUMsTUFB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LEdBQUc3QyxZQUFZLENBQUNDLE1BQU0sQ0FBQztJQUNqQyxJQUFJNEMsSUFBSSxDQUFDQyxNQUFNLEVBQUUsT0FBT0QsSUFBSTtJQUU1QixJQUFRRSxTQUFTLEdBQWdCOUMsTUFBTSxDQUEvQjhDLFNBQVM7TUFBRXpCLFNBQVMsR0FBS3JCLE1BQU0sQ0FBcEJxQixTQUFTO0lBQzVCdUIsSUFBSSxDQUFDQyxNQUFNLEdBQUcsVUFBQ2xDLEtBQUssRUFBSTtNQUN0QixJQUFJSSxZQUFZLENBQUNKLEtBQUssQ0FBQyxFQUFFLE9BQU82QixTQUFTO01BQ3pDLFFBQVFNLFNBQVM7UUFDZixLQUFLLFFBQVE7VUFDWCxPQUFPMUIsUUFBUSxDQUFDQyxTQUFTLEVBQUVWLEtBQUssQ0FBQztRQUNuQyxLQUFLLE1BQU07VUFDVCxPQUFPYSxVQUFVLENBQUNiLEtBQUssQ0FBQztRQUMxQixLQUFLLFdBQVc7VUFDZCxPQUFPcUIsZUFBZSxDQUFDckIsS0FBSyxDQUFDO1FBQy9CLEtBQUssT0FBTztVQUNWLE9BQU93QixXQUFXLENBQUN4QixLQUFLLENBQUM7UUFDM0IsS0FBSyxNQUFNO1FBQ1g7VUFDRSxPQUFPQSxLQUFrQjtNQUM3QjtJQUNGLENBQUM7SUFDRCxPQUFPaUMsSUFBSTtFQUNiLENBQUMsQ0FBQztBQUNOIiwiZmlsZSI6ImNvbXBvbmVudHMvUHJvVGFibGUvY29yZS9nZW5Db2x1bW5zLmpzIiwic291cmNlc0NvbnRlbnQiOltudWxsLCJjb25zdCBERUZBVUxUX0VNUFRZX1RFWFQgPSAnLSc7XG4vKiogUHJvLW9ubHkgY29sdW1uIGZpZWxkcyB0aGF0IG11c3QgTk9UIGxlYWsgb250byB0aGUgYmFzZSBUYWJsZSBjb2x1bW4gb2JqZWN0LiAqL1xuY29uc3QgUFJPX0NPTFVNTl9LRVlTID0gW1xuICAgICd2YWx1ZVR5cGUnLFxuICAgICd2YWx1ZUVudW0nLFxuICAgICdzZWFyY2gnLFxuICAgICdoaWRlSW5UYWJsZScsXG4gICAgJ2hpZGVJblNlYXJjaCcsXG4gICAgJ3JlbmRlckZvcm1JdGVtJyxcbiAgICAnZmllbGRQcm9wcycsXG4gICAgJ2luaXRpYWxWYWx1ZScsXG4gICAgJ29yZGVyJyxcbl07XG5mdW5jdGlvbiB0b0Jhc2VDb2x1bW4oY29sdW1uKSB7XG4gICAgY29uc3QgY2xvbmUgPSBPYmplY3QuYXNzaWduKHt9LCBjb2x1bW4pO1xuICAgIGZvciAoY29uc3Qga2V5IG9mIFBST19DT0xVTU5fS0VZUylcbiAgICAgICAgZGVsZXRlIGNsb25lW2tleV07XG4gICAgcmV0dXJuIGNsb25lO1xufVxuZnVuY3Rpb24gaXNFbXB0eVZhbHVlKHZhbHVlKSB7XG4gICAgcmV0dXJuICh2YWx1ZSA9PT0gbnVsbCB8fFxuICAgICAgICB2YWx1ZSA9PT0gdW5kZWZpbmVkIHx8XG4gICAgICAgIHZhbHVlID09PSAnJyB8fFxuICAgICAgICAoQXJyYXkuaXNBcnJheSh2YWx1ZSkgJiYgdmFsdWUubGVuZ3RoID09PSAwKSk7XG59XG5mdW5jdGlvbiBlbnVtVGV4dCh2YWx1ZUVudW0sIHZhbHVlKSB7XG4gICAgaWYgKCF2YWx1ZUVudW0pXG4gICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICBjb25zdCBpdGVtID0gdmFsdWVFbnVtW3ZhbHVlXTtcbiAgICBpZiAoaXRlbSA9PT0gdW5kZWZpbmVkKVxuICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgcmV0dXJuIHR5cGVvZiBpdGVtID09PSAnc3RyaW5nJyA/IGl0ZW0gOiBpdGVtLnRleHQ7XG59XG5mdW5jdGlvbiBmb3JtYXREYXRlKHZhbHVlKSB7XG4gICAgaWYgKHZhbHVlIGluc3RhbmNlb2YgRGF0ZSlcbiAgICAgICAgcmV0dXJuIHZhbHVlLnRvTG9jYWxlRGF0ZVN0cmluZygpO1xuICAgIGNvbnN0IGRhdGUgPSBuZXcgRGF0ZSh2YWx1ZSk7XG4gICAgcmV0dXJuIE51bWJlci5pc05hTihkYXRlLmdldFRpbWUoKSkgPyBTdHJpbmcodmFsdWUpIDogZGF0ZS50b0xvY2FsZURhdGVTdHJpbmcoKTtcbn1cbmZ1bmN0aW9uIGZvcm1hdERhdGVSYW5nZSh2YWx1ZSkge1xuICAgIGlmICghQXJyYXkuaXNBcnJheSh2YWx1ZSkpXG4gICAgICAgIHJldHVybiBTdHJpbmcodmFsdWUpO1xuICAgIHJldHVybiB2YWx1ZS5tYXAoKGl0ZW0pID0+IGZvcm1hdERhdGUoaXRlbSkpLmpvaW4oJyB+ICcpO1xufVxuZnVuY3Rpb24gZm9ybWF0RGlnaXQodmFsdWUpIHtcbiAgICBjb25zdCBudW0gPSBOdW1iZXIodmFsdWUpO1xuICAgIHJldHVybiBOdW1iZXIuaXNOYU4obnVtKSA/IFN0cmluZyh2YWx1ZSkgOiBudW0udG9Mb2NhbGVTdHJpbmcoKTtcbn1cbi8qKlxuICogQ29udmVydCBQcm8gY29sdW1ucyBpbnRvIGJhc2UgVGFibGUgY29sdW1uczogZHJvcCBgaGlkZUluVGFibGVgIGNvbHVtbnMsIHN0cmlwXG4gKiBQcm8tb25seSBmaWVsZHMsIGFuZCDigJQgZm9yIGFueSBjb2x1bW4gd2l0aG91dCBhbiBleHBsaWNpdCBgcmVuZGVyYCDigJQgYXR0YWNoIGFcbiAqIHZhbHVlLXR5cGUtZHJpdmVuIGNlbGwgcmVuZGVyZXIgdGhhdCBmYWxscyBiYWNrIHRvIGBlbXB0eVRleHRgIGZvciBlbXB0eVxuICogdmFsdWVzLiBBbiBleHBsaWNpdCBgcmVuZGVyYCBhbHdheXMgd2lucyBhbmQgaXMgbGVmdCB1bnRvdWNoZWQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZW5Db2x1bW5zKGNvbHVtbnMsIGVtcHR5VGV4dCA9IERFRkFVTFRfRU1QVFlfVEVYVCkge1xuICAgIHJldHVybiBjb2x1bW5zXG4gICAgICAgIC5maWx0ZXIoKGNvbHVtbikgPT4gY29sdW1uLmhpZGVJblRhYmxlICE9PSB0cnVlKVxuICAgICAgICAubWFwKChjb2x1bW4pID0+IHtcbiAgICAgICAgY29uc3QgYmFzZSA9IHRvQmFzZUNvbHVtbihjb2x1bW4pO1xuICAgICAgICBpZiAoYmFzZS5yZW5kZXIpXG4gICAgICAgICAgICByZXR1cm4gYmFzZTtcbiAgICAgICAgY29uc3QgeyB2YWx1ZVR5cGUsIHZhbHVlRW51bSB9ID0gY29sdW1uO1xuICAgICAgICBiYXNlLnJlbmRlciA9ICh2YWx1ZSkgPT4ge1xuICAgICAgICAgICAgaWYgKGlzRW1wdHlWYWx1ZSh2YWx1ZSkpXG4gICAgICAgICAgICAgICAgcmV0dXJuIGVtcHR5VGV4dDtcbiAgICAgICAgICAgIHN3aXRjaCAodmFsdWVUeXBlKSB7XG4gICAgICAgICAgICAgICAgY2FzZSAnc2VsZWN0JzpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGVudW1UZXh0KHZhbHVlRW51bSwgdmFsdWUpO1xuICAgICAgICAgICAgICAgIGNhc2UgJ2RhdGUnOlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZm9ybWF0RGF0ZSh2YWx1ZSk7XG4gICAgICAgICAgICAgICAgY2FzZSAnZGF0ZVJhbmdlJzpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZvcm1hdERhdGVSYW5nZSh2YWx1ZSk7XG4gICAgICAgICAgICAgICAgY2FzZSAnZGlnaXQnOlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZm9ybWF0RGlnaXQodmFsdWUpO1xuICAgICAgICAgICAgICAgIGNhc2UgJ3RleHQnOlxuICAgICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICAgICAgcmV0dXJuIGJhc2U7XG4gICAgfSk7XG59Il0sInNvdXJjZVJvb3QiOiIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMifQ==
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { ReactNode } from 'react';
|
|
2
|
+
import type { TableRecord } from "../../Table";
|
|
3
|
+
import type { ProColumns } from '../interface';
|
|
4
|
+
export interface SearchFieldsResult {
|
|
5
|
+
fields: ReactNode[];
|
|
6
|
+
initialValues: Record<string, unknown>;
|
|
7
|
+
/** Names of every generated search field — used to reset the form safely. */
|
|
8
|
+
names: string[];
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Build the QueryFilter children (ProForm fields) from searchable columns, plus
|
|
12
|
+
* the aggregated initial values. `renderFormItem` overrides the valueType mapping.
|
|
13
|
+
*/
|
|
14
|
+
export declare function genSearchFields<T extends TableRecord>(columns: ProColumns<T>[]): SearchFieldsResult;
|
|
15
|
+
/**
|
|
16
|
+
* Apply per-column `search.transform` to submitted values, replacing the original
|
|
17
|
+
* field name with the mapped params.
|
|
18
|
+
*/
|
|
19
|
+
export declare function applySearchTransforms<T extends TableRecord>(values: Record<string, unknown>, columns: ProColumns<T>[]): Record<string, unknown>;
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.applySearchTransforms = applySearchTransforms;
|
|
8
|
+
exports.genSearchFields = genSearchFields;
|
|
9
|
+
var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
|
|
10
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
11
|
+
var _ProForm = require("../../ProForm");
|
|
12
|
+
var _utils = require("./utils");
|
|
13
|
+
function isSearchable(column) {
|
|
14
|
+
if (column.hideInSearch === true || column.search === false) return false;
|
|
15
|
+
return Boolean(column.renderFormItem || column.valueType);
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Build the QueryFilter children (ProForm fields) from searchable columns, plus
|
|
19
|
+
* the aggregated initial values. `renderFormItem` overrides the valueType mapping.
|
|
20
|
+
*/
|
|
21
|
+
function genSearchFields(columns) {
|
|
22
|
+
var initialValues = {};
|
|
23
|
+
var names = [];
|
|
24
|
+
var fields = columns.filter(isSearchable).map(function (column, index) {
|
|
25
|
+
return {
|
|
26
|
+
column: column,
|
|
27
|
+
name: (0, _utils.getColumnSearchName)(column),
|
|
28
|
+
index: index
|
|
29
|
+
};
|
|
30
|
+
}).filter(function (entry) {
|
|
31
|
+
return entry.name !== null;
|
|
32
|
+
}).sort(function (a, b) {
|
|
33
|
+
var _a, _b;
|
|
34
|
+
return ((_a = a.column.order) !== null && _a !== void 0 ? _a : a.index) - ((_b = b.column.order) !== null && _b !== void 0 ? _b : b.index);
|
|
35
|
+
}).map(function (_ref) {
|
|
36
|
+
var column = _ref.column,
|
|
37
|
+
name = _ref.name;
|
|
38
|
+
names.push(name);
|
|
39
|
+
if (column.initialValue !== undefined) initialValues[name] = column.initialValue;
|
|
40
|
+
if (column.renderFormItem) {
|
|
41
|
+
return (0, _jsxRuntime.jsx)("span", {
|
|
42
|
+
children: column.renderFormItem()
|
|
43
|
+
}, name);
|
|
44
|
+
}
|
|
45
|
+
var fieldProps = column.fieldProps;
|
|
46
|
+
// No labels — use the column title as the placeholder so the field stays self-describing.
|
|
47
|
+
var placeholder = typeof column.title === 'string' ? column.title : undefined;
|
|
48
|
+
switch (column.valueType) {
|
|
49
|
+
case 'select':
|
|
50
|
+
return (0, _jsxRuntime.jsx)(_ProForm.ProForm.Select, {
|
|
51
|
+
name: name,
|
|
52
|
+
placeholder: placeholder,
|
|
53
|
+
valueEnum: column.valueEnum,
|
|
54
|
+
fieldProps: fieldProps
|
|
55
|
+
}, name);
|
|
56
|
+
case 'date':
|
|
57
|
+
return (0, _jsxRuntime.jsx)(_ProForm.ProForm.DatePicker, {
|
|
58
|
+
name: name,
|
|
59
|
+
placeholder: placeholder,
|
|
60
|
+
fieldProps: fieldProps
|
|
61
|
+
}, name);
|
|
62
|
+
case 'dateRange':
|
|
63
|
+
return (0, _jsxRuntime.jsx)(_ProForm.ProForm.DatePicker, {
|
|
64
|
+
name: name,
|
|
65
|
+
placeholder: placeholder,
|
|
66
|
+
fieldProps: Object.assign({
|
|
67
|
+
selectionMode: 'range'
|
|
68
|
+
}, fieldProps)
|
|
69
|
+
}, name);
|
|
70
|
+
case 'digit':
|
|
71
|
+
return (0, _jsxRuntime.jsx)(_ProForm.ProForm.Text, {
|
|
72
|
+
name: name,
|
|
73
|
+
placeholder: placeholder,
|
|
74
|
+
fieldProps: Object.assign({
|
|
75
|
+
type: 'number'
|
|
76
|
+
}, fieldProps)
|
|
77
|
+
}, name);
|
|
78
|
+
case 'text':
|
|
79
|
+
default:
|
|
80
|
+
return (0, _jsxRuntime.jsx)(_ProForm.ProForm.Text, {
|
|
81
|
+
name: name,
|
|
82
|
+
placeholder: placeholder,
|
|
83
|
+
fieldProps: fieldProps
|
|
84
|
+
}, name);
|
|
85
|
+
}
|
|
86
|
+
});
|
|
87
|
+
return {
|
|
88
|
+
fields: fields,
|
|
89
|
+
initialValues: initialValues,
|
|
90
|
+
names: names
|
|
91
|
+
};
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* Apply per-column `search.transform` to submitted values, replacing the original
|
|
95
|
+
* field name with the mapped params.
|
|
96
|
+
*/
|
|
97
|
+
function applySearchTransforms(values, columns) {
|
|
98
|
+
var result = Object.assign({}, values);
|
|
99
|
+
columns.forEach(function (column) {
|
|
100
|
+
if ((0, _typeof2["default"])(column.search) === 'object' && column.search.transform) {
|
|
101
|
+
var name = (0, _utils.getColumnSearchName)(column);
|
|
102
|
+
if (name && name in result) {
|
|
103
|
+
var mapped = column.search.transform(result[name]);
|
|
104
|
+
delete result[name];
|
|
105
|
+
Object.assign(result, mapped);
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
});
|
|
109
|
+
return result;
|
|
110
|
+
}
|
|
111
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvUHJvVGFibGUvY29yZS9nZW5TZWFyY2hGaWVsZHMuanMiLCJjb21wb25lbnRzL1Byb1RhYmxlL3NyYy9jb21wb25lbnRzL1Byb1RhYmxlL2NvcmUvZ2VuU2VhcmNoRmllbGRzLnRzeCJdLCJuYW1lcyI6WyJfanN4UnVudGltZSIsInJlcXVpcmUiLCJfUHJvRm9ybSIsIl91dGlscyIsImlzU2VhcmNoYWJsZSIsImNvbHVtbiIsImhpZGVJblNlYXJjaCIsInNlYXJjaCIsIkJvb2xlYW4iLCJyZW5kZXJGb3JtSXRlbSIsInZhbHVlVHlwZSIsImdlblNlYXJjaEZpZWxkcyIsImNvbHVtbnMiLCJpbml0aWFsVmFsdWVzIiwibmFtZXMiLCJmaWVsZHMiLCJmaWx0ZXIiLCJtYXAiLCJpbmRleCIsIm5hbWUiLCJnZXRDb2x1bW5TZWFyY2hOYW1lIiwiZW50cnkiLCJzb3J0IiwiYSIsImIiLCJfYSIsIl9iIiwib3JkZXIiLCJfcmVmIiwicHVzaCIsImluaXRpYWxWYWx1ZSIsInVuZGVmaW5lZCIsIl9qc3giLCJjaGlsZHJlbiIsImZpZWxkUHJvcHMiLCJwbGFjZWhvbGRlciIsInRpdGxlIiwiUHJvRm9ybSIsIlNlbGVjdCIsInZhbHVlRW51bSIsIkRhdGVQaWNrZXIiLCJPYmplY3QiLCJhc3NpZ24iLCJzZWxlY3Rpb25Nb2RlIiwiVGV4dCIsInR5cGUiLCJhcHBseVNlYXJjaFRyYW5zZm9ybXMiLCJ2YWx1ZXMiLCJyZXN1bHQiLCJmb3JFYWNoIiwiX3R5cGVvZjIiLCJ0cmFuc2Zvcm0iLCJtYXBwZWQiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFBLElBQUFBLFdBQUEsR0FBQUMsT0FBQTtBQ0NBLElBQUFDLFFBQUEsR0FBQUQsT0FBQTtBQUdBLElBQUFFLE1BQUEsR0FBQUYsT0FBQTtBQVNBLFNBQVNHLFlBQVlBLENBQXdCQyxNQUFxQixFQUFBO0VBQ2hFLElBQUlBLE1BQU0sQ0FBQ0MsWUFBWSxLQUFLLElBQUksSUFBSUQsTUFBTSxDQUFDRSxN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LENBQUNFLE1BQU0sQ0FBQzRDLFNBQVMsRUFBRTtNQUNoRSxJQUFNaEMsSUFBSSxHQUFHLElBQUFDLDBCQUFtQixFQUFDZixNQUFNLENBQUM7TUFDeEMsSUFBSWMsSUFBSSxJQUFJQSxJQUFJLElBQUk2QixNQUFNLEVBQUU7UUFDMUIsSUFBTUksTUFBTSxHQUFHL0MsTUFBTSxDQUFDRSxNQUFNLENBQUM0QyxTQUFTLENBQUNILE1BQU0sQ0FBQzdCLElBQUksQ0FBQyxDQUFDO1FBQ3BELE9BQU82QixNQUFNLENBQUM3QixJQUFJLENBQUM7UUFDbkJzQixNQUFNLENBQUNDLE1BQU0sQ0FBQ00sTUFBTSxFQUFFSSxNQUFNLENBQUM7TUFDL0I7SUFDRjtFQUNGLENBQUMsQ0FBQztFQUNGLE9BQU9KLE1BQU07QUFDZiIsImZpbGUiOiJjb21wb25lbnRzL1Byb1RhYmxlL2NvcmUvZ2VuU2VhcmNoRmllbGRzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsganN4IGFzIF9qc3ggfSBmcm9tIFwicmVhY3QvanN4LXJ1bnRpbWVcIjtcbmltcG9ydCB7IFByb0Zvcm0gfSBmcm9tICcuLi8uLi9Qcm9Gb3JtJztcbmltcG9ydCB7IGdldENvbHVtblNlYXJjaE5hbWUgfSBmcm9tICcuL3V0aWxzJztcbmZ1bmN0aW9uIGlzU2VhcmNoYWJsZShjb2x1bW4pIHtcbiAgICBpZiAoY29sdW1uLmhpZGVJblNlYXJjaCA9PT0gdHJ1ZSB8fCBjb2x1bW4uc2VhcmNoID09PSBmYWxzZSlcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIHJldHVybiBCb29sZWFuKGNvbHVtbi5yZW5kZXJGb3JtSXRlbSB8fCBjb2x1bW4udmFsdWVUeXBlKTtcbn1cbi8qKlxuICogQnVpbGQgdGhlIFF1ZXJ5RmlsdGVyIGNoaWxkcmVuIChQcm9Gb3JtIGZpZWxkcykgZnJvbSBzZWFyY2hhYmxlIGNvbHVtbnMsIHBsdXNcbiAqIHRoZSBhZ2dyZWdhdGVkIGluaXRpYWwgdmFsdWVzLiBgcmVuZGVyRm9ybUl0ZW1gIG92ZXJyaWRlcyB0aGUgdmFsdWVUeXBlIG1hcHBpbmcuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZW5TZWFyY2hGaWVsZHMoY29sdW1ucykge1xuICAgIGNvbnN0IGluaXRpYWxWYWx1ZXMgPSB7fTtcbiAgICBjb25zdCBuYW1lcyA9IFtdO1xuICAgIGNvbnN0IGZpZWxkcyA9IGNvbHVtbnNcbiAgICAgICAgLmZpbHRlcihpc1NlYXJjaGFibGUpXG4gICAgICAgIC5tYXAoKGNvbHVtbiwgaW5kZXgpID0+ICh7IGNvbHVtbiwgbmFtZTogZ2V0Q29sdW1uU2VhcmNoTmFtZShjb2x1bW4pLCBpbmRleCB9KSlcbiAgICAgICAgLmZpbHRlcigoZW50cnkpID0+IGVudHJ5Lm5hbWUgIT09IG51bGwpXG4gICAgICAgIC5zb3J0KChhLCBiKSA9PiB7IHZhciBfYSwgX2I7IHJldHVybiAoKF9hID0gYS5jb2x1bW4ub3JkZXIpICE9PSBudWxsICYmIF9hICE9PSB2b2lkIDAgPyBfYSA6IGEuaW5kZXgpIC0gKChfYiA9IGIuY29sdW1uLm9yZGVyKSAhPT0gbnVsbCAmJiBfYiAhPT0gdm9pZCAwID8gX2IgOiBiLmluZGV4KTsgfSlcbiAgICAgICAgLm1hcCgoeyBjb2x1bW4sIG5hbWUgfSkgPT4ge1xuICAgICAgICBuYW1lcy5wdXNoKG5hbWUpO1xuICAgICAgICBpZiAoY29sdW1uLmluaXRpYWxWYWx1ZSAhPT0gdW5kZWZpbmVkKVxuICAgICAgICAgICAgaW5pdGlhbFZhbHVlc1tuYW1lXSA9IGNvbHVtbi5pbml0aWFsVmFsdWU7XG4gICAgICAgIGlmIChjb2x1bW4ucmVuZGVyRm9ybUl0ZW0pIHtcbiAgICAgICAgICAgIHJldHVybiBfanN4KFwic3BhblwiLCB7IGNoaWxkcmVuOiBjb2x1bW4ucmVuZGVyRm9ybUl0ZW0oKSB9LCBuYW1lKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBmaWVsZFByb3BzID0gY29sdW1uLmZpZWxkUHJvcHM7XG4gICAgICAgIC8vIE5vIGxhYmVscyDigJQgdXNlIHRoZSBjb2x1bW4gdGl0bGUgYXMgdGhlIHBsYWNlaG9sZGVyIHNvIHRoZSBmaWVsZCBzdGF5cyBzZWxmLWRlc2NyaWJpbmcuXG4gICAgICAgIGNvbnN0IHBsYWNlaG9sZGVyID0gdHlwZW9mIGNvbHVtbi50aXRsZSA9PT0gJ3N0cmluZycgPyBjb2x1bW4udGl0bGUgOiB1bmRlZmluZWQ7XG4gICAgICAgIHN3aXRjaCAoY29sdW1uLnZhbHVlVHlwZSkge1xuICAgICAgICAgICAgY2FzZSAnc2VsZWN0JzpcbiAgICAgICAgICAgICAgICByZXR1cm4gKF9qc3goUHJvRm9ybS5TZWxlY3QsIHsgbmFtZTogbmFtZSwgcGxhY2Vob2xkZXI6IHBsYWNlaG9sZGVyLCB2YWx1ZUVudW06IGNvbHVtbi52YWx1ZUVudW0sIGZpZWxkUHJvcHM6IGZpZWxkUHJvcHMgfSwgbmFtZSkpO1xuICAgICAgICAgICAgY2FzZSAnZGF0ZSc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIF9qc3goUHJvRm9ybS5EYXRlUGlja2VyLCB7IG5hbWU6IG5hbWUsIHBsYWNlaG9sZGVyOiBwbGFjZWhvbGRlciwgZmllbGRQcm9wczogZmllbGRQcm9wcyB9LCBuYW1lKTtcbiAgICAgICAgICAgIGNhc2UgJ2RhdGVSYW5nZSc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIChfanN4KFByb0Zvcm0uRGF0ZVBpY2tlciwgeyBuYW1lOiBuYW1lLCBwbGFjZWhvbGRlcjogcGxhY2Vob2xkZXIsIGZpZWxkUHJvcHM6IE9iamVjdC5hc3NpZ24oeyBzZWxlY3Rpb25Nb2RlOiAncmFuZ2UnIH0sIGZpZWxkUHJvcHMpIH0sIG5hbWUpKTtcbiAgICAgICAgICAgIGNhc2UgJ2RpZ2l0JzpcbiAgICAgICAgICAgICAgICByZXR1cm4gKF9qc3goUHJvRm9ybS5UZXh0LCB7IG5hbWU6IG5hbWUsIHBsYWNlaG9sZGVyOiBwbGFjZWhvbGRlciwgZmllbGRQcm9wczogT2JqZWN0LmFzc2lnbih7IHR5cGU6ICdudW1iZXInIH0sIGZpZWxkUHJvcHMpIH0sIG5hbWUpKTtcbiAgICAgICAgICAgIGNhc2UgJ3RleHQnOlxuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICByZXR1cm4gX2pzeChQcm9Gb3JtLlRleHQsIHsgbmFtZTogbmFtZSwgcGxhY2Vob2xkZXI6IHBsYWNlaG9sZGVyLCBmaWVsZFByb3BzOiBmaWVsZFByb3BzIH0sIG5hbWUpO1xuICAgICAgICB9XG4gICAgfSk7XG4gICAgcmV0dXJuIHsgZmllbGRzLCBpbml0aWFsVmFsdWVzLCBuYW1lcyB9O1xufVxuLyoqXG4gKiBBcHBseSBwZXItY29sdW1uIGBzZWFyY2gudHJhbnNmb3JtYCB0byBzdWJtaXR0ZWQgdmFsdWVzLCByZXBsYWNpbmcgdGhlIG9yaWdpbmFsXG4gKiBmaWVsZCBuYW1lIHdpdGggdGhlIG1hcHBlZCBwYXJhbXMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBhcHBseVNlYXJjaFRyYW5zZm9ybXModmFsdWVzLCBjb2x1bW5zKSB7XG4gICAgY29uc3QgcmVzdWx0ID0gT2JqZWN0LmFzc2lnbih7fSwgdmFsdWVzKTtcbiAgICBjb2x1bW5zLmZvckVhY2goKGNvbHVtbikgPT4ge1xuICAgICAgICBpZiAodHlwZW9mIGNvbHVtbi5zZWFyY2ggPT09ICdvYmplY3QnICYmIGNvbHVtbi5zZWFyY2gudHJhbnNmb3JtKSB7XG4gICAgICAgICAgICBjb25zdCBuYW1lID0gZ2V0Q29sdW1uU2VhcmNoTmFtZShjb2x1bW4pO1xuICAgICAgICAgICAgaWYgKG5hbWUgJiYgbmFtZSBpbiByZXN1bHQpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBtYXBwZWQgPSBjb2x1bW4uc2VhcmNoLnRyYW5zZm9ybShyZXN1bHRbbmFtZV0pO1xuICAgICAgICAgICAgICAgIGRlbGV0ZSByZXN1bHRbbmFtZV07XG4gICAgICAgICAgICAgICAgT2JqZWN0LmFzc2lnbihyZXN1bHQsIG1hcHBlZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4gcmVzdWx0O1xufSIsbnVsbF0sInNvdXJjZVJvb3QiOiIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMifQ==
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
export interface AwaitableReload {
|
|
2
|
+
/** Include in the fetch effect deps; a change forces the effect to re-run. */
|
|
3
|
+
token: number;
|
|
4
|
+
/** Force a refetch; resolves once `settle()` runs after the triggered fetch completes. */
|
|
5
|
+
request: () => Promise<void>;
|
|
6
|
+
/** Resolve every pending `request()` promise. Call when the triggered fetch settles. */
|
|
7
|
+
settle: () => void;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* Bridges imperative, awaitable reloads onto a reactive (effect-driven) fetch.
|
|
11
|
+
*
|
|
12
|
+
* `request()` bumps `token` (which the consuming effect depends on) and returns a
|
|
13
|
+
* promise; the effect calls `settle()` once the fetch it triggered finishes,
|
|
14
|
+
* resolving that promise. This keeps a single, fresh-closure fetch path while
|
|
15
|
+
* still letting callers `await` a reload — no stale refs, no duplicate fetches.
|
|
16
|
+
*/
|
|
17
|
+
export declare function useAwaitableReload(): AwaitableReload;
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.useAwaitableReload = useAwaitableReload;
|
|
8
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
9
|
+
var _react = require("react");
|
|
10
|
+
var _hooks = require("@1money/hooks");
|
|
11
|
+
/**
|
|
12
|
+
* Bridges imperative, awaitable reloads onto a reactive (effect-driven) fetch.
|
|
13
|
+
*
|
|
14
|
+
* `request()` bumps `token` (which the consuming effect depends on) and returns a
|
|
15
|
+
* promise; the effect calls `settle()` once the fetch it triggered finishes,
|
|
16
|
+
* resolving that promise. This keeps a single, fresh-closure fetch path while
|
|
17
|
+
* still letting callers `await` a reload — no stale refs, no duplicate fetches.
|
|
18
|
+
*/
|
|
19
|
+
function useAwaitableReload() {
|
|
20
|
+
var _useSafeState = (0, _hooks.useSafeState)(0),
|
|
21
|
+
_useSafeState2 = (0, _slicedToArray2["default"])(_useSafeState, 2),
|
|
22
|
+
token = _useSafeState2[0],
|
|
23
|
+
setToken = _useSafeState2[1];
|
|
24
|
+
var resolversRef = (0, _react.useRef)([]);
|
|
25
|
+
var request = (0, _hooks.useMemoizedFn)(function () {
|
|
26
|
+
return new Promise(function (resolve) {
|
|
27
|
+
resolversRef.current.push(resolve);
|
|
28
|
+
setToken(function (value) {
|
|
29
|
+
return value + 1;
|
|
30
|
+
});
|
|
31
|
+
});
|
|
32
|
+
});
|
|
33
|
+
var settle = (0, _hooks.useMemoizedFn)(function () {
|
|
34
|
+
var resolvers = resolversRef.current;
|
|
35
|
+
resolversRef.current = [];
|
|
36
|
+
resolvers.forEach(function (resolve) {
|
|
37
|
+
return resolve();
|
|
38
|
+
});
|
|
39
|
+
});
|
|
40
|
+
return {
|
|
41
|
+
token: token,
|
|
42
|
+
request: request,
|
|
43
|
+
settle: settle
|
|
44
|
+
};
|
|
45
|
+
}
|
|
46
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvUHJvVGFibGUvc3JjL2NvbXBvbmVudHMvUHJvVGFibGUvY29yZS91c2VBd2FpdGFibGVSZWxvYWQudHMiLCJjb21wb25lbnRzL1Byb1RhYmxlL2NvcmUvdXNlQXdhaXRhYmxlUmVsb2FkLmpzIl0sIm5hbWVzIjpbIl9yZWFjdCIsInJlcXVpcmUiLCJfaG9va3MiLCJ1c2VBd2FpdGFibGVSZWxvYWQiLCJfdXNlU2FmZVN0YXRlIiwidXNlU2FmZVN0YXRlIiwiX3VzZVNhZmVTdGF0ZTIiLCJfc2xpY2VkVG9BcnJheTIiLCJ0b2tlbiIsInNldFRva2VuIiwicmVzb2x2ZXJzUmVmIiwidXNlUmVmIiwicmVxdWVzdCIsInVzZU1lbW9pemVkRm4iLCJQcm9taXNlIiwicmVzb2x2ZSIsImN1cnJlbnQiLCJwdXNoIiwidmFsdWUiLCJzZXR0bGUiLCJyZXNvbHZlcnMiLCJmb3JFYWNoIl0sIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUFBLElBQUFBLE1BQUEsR0FBQUMsT0FBQTtBQUNBLElBQUFDLE1BQUEsR0FBQUQsT0FBQTtBQVdBO0FDVEE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QURXTSxTQUFVRSxrQkFBa0JBLENBQUEsRUFBQTtFQUNoQyxJQUFBQyxhQUFBLEdBQTBCLElBQUFDLG1CQUFZLEVBQUMsQ0FBQyxDQUFDO0lBQUFDLGNBQUEsT0FBQUMsZUFBQSxhQUFBSCxhQUFBO0lBQWxDSSxLQUFLLEdBQUFGLGNBQUE7SUFBRUcsUUFBUSxHQUFBSCxjQUFBO0VBQ3RCLElBQU1JLFlBQVksR0FBRyxJQUFBQyxhQUFNLEVBQW9CLEVBQUUsQ0FBQztFQUVsRCxJQUFNQyxPQUFPLEdBQUcsSUFBQUMsb0JBQWEsRUFDM0I7SUFBQSxPQUNFLElBQUlDLE9BQU8sQ0FBTyxVQUFDQyxPQUFPLEVBQUk7TUFDNUJMLFlBQVksQ0FBQ00sT0FBTyxDQUFDQyxJQUFJLENBQUNGLE9BQU8sQ0FBQztNQUNsQ04sUUFBUSxDQUFDLFVBQUNTLEtBQUs7UUFBQSxPQUFLQSxLQUFLLEdBQUcsQ0FBQztNQUFBLEVBQUM7SUFDaEMsQ0FBQyxDQUFDO0VBQUEsRUFDTDtFQUVELElBQU1DLE1BQU0sR0FBRyxJQUFBTixvQkFBYSxFQUFDLFlBQUs7SUFDaEMsSUFBTU8sU0FBUyxHQUFHVixZQUFZLENBQUNNLE9BQU87SUFDdENOLFlBQVksQ0FBQ00sT0FBTyxHQUFHLEVBQUU7SUFDekJJLFNBQVMsQ0FBQ0MsT0FBTyxDQUFDLFVBQUNOLE9BQU87TUFBQSxPQUFLQSxPQUFPLENBQUEsQ0FBRTtJQUFBLEVBQUM7RUFDM0MsQ0FBQyxDQUFDO0VBRUYsT0FBTztJQUFFUCxLQUFLLEVBQUxBLEtBQUs7SUFBRUksT0FBTyxFQUFQQSxPQUFPO0lBQUVPLE1BQU0sRUFBTkE7RUFBTSxDQUFFO0FBQ25DIiwiZmlsZSI6ImNvbXBvbmVudHMvUHJvVGFibGUvY29yZS91c2VBd2FpdGFibGVSZWxvYWQuanMiLCJzb3VyY2VzQ29udGVudCI6W251bGwsImltcG9ydCB7IHVzZVJlZiB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHVzZU1lbW9pemVkRm4sIHVzZVNhZmVTdGF0ZSB9IGZyb20gJ0AxbW9uZXkvaG9va3MnO1xuLyoqXG4gKiBCcmlkZ2VzIGltcGVyYXRpdmUsIGF3YWl0YWJsZSByZWxvYWRzIG9udG8gYSByZWFjdGl2ZSAoZWZmZWN0LWRyaXZlbikgZmV0Y2guXG4gKlxuICogYHJlcXVlc3QoKWAgYnVtcHMgYHRva2VuYCAod2hpY2ggdGhlIGNvbnN1bWluZyBlZmZlY3QgZGVwZW5kcyBvbikgYW5kIHJldHVybnMgYVxuICogcHJvbWlzZTsgdGhlIGVmZmVjdCBjYWxscyBgc2V0dGxlKClgIG9uY2UgdGhlIGZldGNoIGl0IHRyaWdnZXJlZCBmaW5pc2hlcyxcbiAqIHJlc29sdmluZyB0aGF0IHByb21pc2UuIFRoaXMga2VlcHMgYSBzaW5nbGUsIGZyZXNoLWNsb3N1cmUgZmV0Y2ggcGF0aCB3aGlsZVxuICogc3RpbGwgbGV0dGluZyBjYWxsZXJzIGBhd2FpdGAgYSByZWxvYWQg4oCUIG5vIHN0YWxlIHJlZnMsIG5vIGR1cGxpY2F0ZSBmZXRjaGVzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gdXNlQXdhaXRhYmxlUmVsb2FkKCkge1xuICAgIGNvbnN0IFt0b2tlbiwgc2V0VG9rZW5dID0gdXNlU2FmZVN0YXRlKDApO1xuICAgIGNvbnN0IHJlc29sdmVyc1JlZiA9IHVzZVJlZihbXSk7XG4gICAgY29uc3QgcmVxdWVzdCA9IHVzZU1lbW9pemVkRm4oKCkgPT4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHtcbiAgICAgICAgcmVzb2x2ZXJzUmVmLmN1cnJlbnQucHVzaChyZXNvbHZlKTtcbiAgICAgICAgc2V0VG9rZW4oKHZhbHVlKSA9PiB2YWx1ZSArIDEpO1xuICAgIH0pKTtcbiAgICBjb25zdCBzZXR0bGUgPSB1c2VNZW1vaXplZEZuKCgpID0+IHtcbiAgICAgICAgY29uc3QgcmVzb2x2ZXJzID0gcmVzb2x2ZXJzUmVmLmN1cnJlbnQ7XG4gICAgICAgIHJlc29sdmVyc1JlZi5jdXJyZW50ID0gW107XG4gICAgICAgIHJlc29sdmVycy5mb3JFYWNoKChyZXNvbHZlKSA9PiByZXNvbHZlKCkpO1xuICAgIH0pO1xuICAgIHJldHVybiB7IHRva2VuLCByZXF1ZXN0LCBzZXR0bGUgfTtcbn0iXSwic291cmNlUm9vdCI6Ii4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYyJ9
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { TableRecord } from "../../Table";
|
|
2
|
+
import type { ProColumns } from '../interface';
|
|
3
|
+
/**
|
|
4
|
+
* Stable string key for a Pro column. Prefers an explicit `key`, then a string
|
|
5
|
+
* `dataIndex`, then an array `dataIndex` joined by `.`, falling back to the index.
|
|
6
|
+
*/
|
|
7
|
+
export declare function getColumnKey<T extends TableRecord>(column: ProColumns<T>, index: number): string;
|
|
8
|
+
/**
|
|
9
|
+
* Name used for the generated search field / request param. Only a flat string
|
|
10
|
+
* key (`key` or string `dataIndex`) can be auto-mapped; otherwise returns null.
|
|
11
|
+
*/
|
|
12
|
+
export declare function getColumnSearchName<T extends TableRecord>(column: ProColumns<T>): string | null;
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.getColumnKey = getColumnKey;
|
|
7
|
+
exports.getColumnSearchName = getColumnSearchName;
|
|
8
|
+
/**
|
|
9
|
+
* Stable string key for a Pro column. Prefers an explicit `key`, then a string
|
|
10
|
+
* `dataIndex`, then an array `dataIndex` joined by `.`, falling back to the index.
|
|
11
|
+
*/
|
|
12
|
+
function getColumnKey(column, index) {
|
|
13
|
+
if (column.key !== undefined && column.key !== null) return String(column.key);
|
|
14
|
+
var dataIndex = column.dataIndex;
|
|
15
|
+
if (typeof dataIndex === 'string' || typeof dataIndex === 'number') return String(dataIndex);
|
|
16
|
+
if (Array.isArray(dataIndex)) return dataIndex.join('.');
|
|
17
|
+
return "col-".concat(index);
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Name used for the generated search field / request param. Only a flat string
|
|
21
|
+
* key (`key` or string `dataIndex`) can be auto-mapped; otherwise returns null.
|
|
22
|
+
*/
|
|
23
|
+
function getColumnSearchName(column) {
|
|
24
|
+
if (column.key !== undefined && column.key !== null) return String(column.key);
|
|
25
|
+
if (typeof column.dataIndex === 'string') return column.dataIndex;
|
|
26
|
+
return null;
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvUHJvVGFibGUvc3JjL2NvbXBvbmVudHMvUHJvVGFibGUvY29yZS91dGlscy50cyIsImNvbXBvbmVudHMvUHJvVGFibGUvY29yZS91dGlscy5qcyJdLCJuYW1lcyI6WyJnZXRDb2x1bW5LZXkiLCJjb2x1bW4iLCJpbmRleCIsImtleSIsInVuZGVmaW5lZCIsIlN0cmluZyIsImRhdGFJbmRleCIsIkFycmF5IiwiaXNBcnJheSIsImpvaW4iLCJjb25jYXQiLCJnZXRDb2x1bW5TZWFyY2hOYW1lIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBR0E7QUNGQTtBQUNBO0FBQ0E7QURJTSxTQUFVQSxZQUFZQSxDQUF3QkMsTUFBcUIsRUFBRUMsS0FBYSxFQUFBO0VBQ3RGLElBQUlELE1BQU0sQ0FBQ0UsR0FBRyxLQUFLQyxTQUFTLElBQUlILE1BQU0sQ0FBQ0UsR0FBRyxLQUFLLElBQUksRUFBRSxPQUFPRSxNQUFNLENBQUNKLE1BQU0sQ0FBQ0UsR0FBRyxDQUFDO0VBQzlFLElBQVFHLFNBQVMsR0FBS0wsTUFBTSxDQUFwQkssU0FBUztFQUNqQixJQUFJLE9BQU9BLFNBQVMsS0FBSyxRQUFRLElBQUksT0FBT0EsU0FBUyxLQUFLLFFBQVEsRUFBRSxPQUFPRCxNQUFNLENBQUNDLFNBQVMsQ0FBQztFQUM1RixJQUFJQyxLQUFLLENBQUNDLE9BQU8sQ0FBQ0YsU0FBUyxDQUFDLEVBQUUsT0FBT0EsU0FBUyxDQUFDRyxJQUFJLENBQUMsR0FBRyxDQUFDO0VBQ3hELGNBQUFDLE1BQUEsQ0FBY1IsS0FBSztBQUNyQjtBQUVBO0FDQUE7QUFDQTtBQUNBO0FERU0sU0FBVVMsbUJBQW1CQSxDQUF3QlYsTUFBcUIsRUFBQTtFQUM5RSxJQUFJQSxNQUFNLENBQUNFLEdBQUcsS0FBS0MsU0FBUyxJQUFJSCxNQUFNLENBQUNFLEdBQUcsS0FBSyxJQUFJLEVBQUUsT0FBT0UsTUFBTSxDQUFDSixNQUFNLENBQUNFLEdBQUcsQ0FBQztFQUM5RSxJQUFJLE9BQU9GLE1BQU0sQ0FBQ0ssU0FBUyxLQUFLLFFBQVEsRUFBRSxPQUFPTCxNQUFNLENBQUNLLFNBQVM7RUFDakUsT0FBTyxJQUFJO0FBQ2IiLCJmaWxlIjoiY29tcG9uZW50cy9Qcm9UYWJsZS9jb3JlL3V0aWxzLmpzIiwic291cmNlc0NvbnRlbnQiOltudWxsLCIvKipcbiAqIFN0YWJsZSBzdHJpbmcga2V5IGZvciBhIFBybyBjb2x1bW4uIFByZWZlcnMgYW4gZXhwbGljaXQgYGtleWAsIHRoZW4gYSBzdHJpbmdcbiAqIGBkYXRhSW5kZXhgLCB0aGVuIGFuIGFycmF5IGBkYXRhSW5kZXhgIGpvaW5lZCBieSBgLmAsIGZhbGxpbmcgYmFjayB0byB0aGUgaW5kZXguXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRDb2x1bW5LZXkoY29sdW1uLCBpbmRleCkge1xuICAgIGlmIChjb2x1bW4ua2V5ICE9PSB1bmRlZmluZWQgJiYgY29sdW1uLmtleSAhPT0gbnVsbClcbiAgICAgICAgcmV0dXJuIFN0cmluZyhjb2x1bW4ua2V5KTtcbiAgICBjb25zdCB7IGRhdGFJbmRleCB9ID0gY29sdW1uO1xuICAgIGlmICh0eXBlb2YgZGF0YUluZGV4ID09PSAnc3RyaW5nJyB8fCB0eXBlb2YgZGF0YUluZGV4ID09PSAnbnVtYmVyJylcbiAgICAgICAgcmV0dXJuIFN0cmluZyhkYXRhSW5kZXgpO1xuICAgIGlmIChBcnJheS5pc0FycmF5KGRhdGFJbmRleCkpXG4gICAgICAgIHJldHVybiBkYXRhSW5kZXguam9pbignLicpO1xuICAgIHJldHVybiBgY29sLSR7aW5kZXh9YDtcbn1cbi8qKlxuICogTmFtZSB1c2VkIGZvciB0aGUgZ2VuZXJhdGVkIHNlYXJjaCBmaWVsZCAvIHJlcXVlc3QgcGFyYW0uIE9ubHkgYSBmbGF0IHN0cmluZ1xuICoga2V5IChga2V5YCBvciBzdHJpbmcgYGRhdGFJbmRleGApIGNhbiBiZSBhdXRvLW1hcHBlZDsgb3RoZXJ3aXNlIHJldHVybnMgbnVsbC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldENvbHVtblNlYXJjaE5hbWUoY29sdW1uKSB7XG4gICAgaWYgKGNvbHVtbi5rZXkgIT09IHVuZGVmaW5lZCAmJiBjb2x1bW4ua2V5ICE9PSBudWxsKVxuICAgICAgICByZXR1cm4gU3RyaW5nKGNvbHVtbi5rZXkpO1xuICAgIGlmICh0eXBlb2YgY29sdW1uLmRhdGFJbmRleCA9PT0gJ3N0cmluZycpXG4gICAgICAgIHJldHVybiBjb2x1bW4uZGF0YUluZGV4O1xuICAgIHJldHVybiBudWxsO1xufSJdLCJzb3VyY2VSb290IjoiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjIn0=
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
var _exportNames = {
|
|
8
|
+
ProTable: true
|
|
9
|
+
};
|
|
10
|
+
Object.defineProperty(exports, "ProTable", {
|
|
11
|
+
enumerable: true,
|
|
12
|
+
get: function get() {
|
|
13
|
+
return _ProTable.ProTable;
|
|
14
|
+
}
|
|
15
|
+
});
|
|
16
|
+
exports["default"] = void 0;
|
|
17
|
+
var _ProTable = _interopRequireWildcard(require("./ProTable"));
|
|
18
|
+
var _interface = require("./interface");
|
|
19
|
+
Object.keys(_interface).forEach(function (key) {
|
|
20
|
+
if (key === "default" || key === "__esModule") return;
|
|
21
|
+
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
|
22
|
+
if (key in exports && exports[key] === _interface[key]) return;
|
|
23
|
+
Object.defineProperty(exports, key, {
|
|
24
|
+
enumerable: true,
|
|
25
|
+
get: function get() {
|
|
26
|
+
return _interface[key];
|
|
27
|
+
}
|
|
28
|
+
});
|
|
29
|
+
});
|
|
30
|
+
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
|
|
31
|
+
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 && {}.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; }
|
|
32
|
+
var _default = exports["default"] = _ProTable["default"];
|
|
33
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvc3JjL2NvbXBvbmVudHMvUHJvVGFibGUvaW5kZXgudHMiXSwibmFtZXMiOlsiX1Byb1RhYmxlIiwiX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQiLCJyZXF1aXJlIiwiX2ludGVyZmFjZSIsIk9iamVjdCIsImtleXMiLCJmb3JFYWNoIiwia2V5IiwicHJvdG90eXBlIiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiX2V4cG9ydE5hbWVzIiwiZXhwb3J0cyIsImRlZmluZVByb3BlcnR5IiwiZW51bWVyYWJsZSIsImdldCIsIl9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSIsImUiLCJXZWFrTWFwIiwiciIsInQiLCJfX2VzTW9kdWxlIiwiX3R5cGVvZiIsImhhcyIsIm4iLCJfX3Byb3RvX18iLCJhIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwidSIsImkiLCJzZXQiLCJfZGVmYXVsdCIsIlByb1RhYmxlIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsSUFBQUEsU0FBQSxHQUFBQyx1QkFBQSxDQUFBQyxPQUFBO0FBTUEsSUFBQUMsVUFBQSxHQUFBRCxPQUFBO0FBQUFFLE1BQUEsQ0FBQUMsSUFBQSxDQUFBRixVQUFBLEVBQUFHLE9BQUEsV0FBQUMsR0FBQTtFQUFBLElBQUFBLEdBQUEsa0JBQUFBLEdBQUE7RUFBQSxJQUFBSCxNQUFBLENBQUFJLFNBQUEsQ0FBQUMsY0FBQSxDQUFBQyxJQUFBLENBQUFDLFlBQUEsRUFBQUosR0FBQTtFQUFBLElBQUFBLEdBQUEsSUFBQUssT0FBQSxJQUFBQSxPQUFBLENBQUFMLEdBQUEsTUFBQUosVUFBQSxDQUFBSSxHQUFBO0VBQUFILE1BQUEsQ0FBQVMsY0FBQSxDQUFBRCxPQUFBLEVBQUFMLEdBQUE7SUFBQU8sVUFBQTtJQUFBQyxHQUFBLFdBQUFBLElBQUE7TUFBQSxPQUFBWixVQUFBLENBQUFJLEdBQUE7SUFBQTtFQUFBO0FBQUE7QUFBNEIsU0FBQVMseUJBQUFDLENBQUEsNkJBQUFDLE9BQUEsbUJBQUFDLENBQUEsT0FBQUQsT0FBQSxJQUFBRSxDQUFBLE9BQUFGLE9BQUEsWUFBQUYsd0JBQUEsWUFBQUEseUJBQUFDLENBQUEsV0FBQUEsQ0FBQSxHQUFBRyxDQUFBLEdBQUFELENBQUEsS0FBQUYsQ0FBQTtBQUFBLFNBQUFoQix3QkFBQWdCLENBQUEsRUFBQUUsQ0FBQSxTQUFBQSxDQUFBLElBQUFGLENBQUEsSUFBQUEsQ0FBQSxDQUFBSSxVQUFBLFNBQUFKLENBQUEsZUFBQUEsQ0FBQSxnQkFBQUssT0FBQSxDQUFBTCxDQUFBLDBCQUFBQSxDQUFBLHNCQUFBQSxDQUFBLFFBQUFHLENBQUEsR0FBQUosd0JBQUEsQ0FBQUcsQ0FBQSxPQUFBQyxDQUFBLElBQUFBLENBQUEsQ0FBQUcsR0FBQSxDQUFBTixDQUFBLFVBQUFHLENBQUEsQ0FBQUwsR0FBQSxDQUFBRSxDQUFBLE9BQUFPLENBQUEsS0FBQUMsU0FBQSxVQUFBQyxDQUFBLEdBQUF0QixNQUFBLENBQUFTLGNBQUEsSUFBQVQsTUFBQSxDQUFBdUIsd0JBQUEsV0FBQUMsQ0FBQSxJQUFBWCxDQUFBLG9CQUFBVyxDQUFBLE9BQUFuQixjQUFBLENBQUFDLElBQUEsQ0FBQU8sQ0FBQSxFQUFBVyxDQUFBLFNBQUFDLENBQUEsR0FBQUgsQ0FBQSxHQUFBdEIsTUFBQSxDQUFBdUIsd0JBQUEsQ0FBQVYsQ0FBQSxFQUFBVyxDQUFBLFVBQUFDLENBQUEsS0FBQUEsQ0FBQSxDQUFBZCxHQUFBLElBQUFjLENBQUEsQ0FBQUMsR0FBQSxJQUFBMUIsTUFBQSxDQUFBUyxjQUFBLENBQUFXLENBQUEsRUFBQUksQ0FBQSxFQUFBQyxDQUFBLElBQUFMLENBQUEsQ0FBQUksQ0FBQSxJQUFBWCxDQUFBLENBQUFXLENBQUEsWUFBQUosQ0FBQSxjQUFBUCxDQUFBLEVBQUFHLENBQUEsSUFBQUEsQ0FBQSxDQUFBVSxHQUFBLENBQUFiLENBQUEsRUFBQU8sQ0FBQSxHQUFBQSxDQUFBO0FBQUEsSUFBQU8sUUFBQSxHQUFBbkIsT0FBQSxjQUZib0Isb0JBQVEiLCJmaWxlIjoiY29tcG9uZW50cy9Qcm9UYWJsZS9pbmRleC5qcyIsInNvdXJjZXNDb250ZW50IjpbbnVsbF0sInNvdXJjZVJvb3QiOiIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMifQ==
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
import type { ReactNode, Ref } from 'react';
|
|
2
|
+
import type { TableChangeMeta, TableColumn, TableProps, TableRecord, TableRowSelection, TableSize, TableSortOrder } from "../Table";
|
|
3
|
+
import type { ProFormValueEnumObj } from "../ProForm";
|
|
4
|
+
import type { ProTableValueType } from './constants';
|
|
5
|
+
export type { ProTableValueType } from './constants';
|
|
6
|
+
export interface PageInfo {
|
|
7
|
+
current: number;
|
|
8
|
+
pageSize: number;
|
|
9
|
+
total: number;
|
|
10
|
+
}
|
|
11
|
+
/** Shape returned by the `request` prop. */
|
|
12
|
+
export interface RequestData<T> {
|
|
13
|
+
data: T[];
|
|
14
|
+
/** Total record count for server-side pagination. Defaults to `data.length`. */
|
|
15
|
+
total?: number;
|
|
16
|
+
/** `false` marks a soft failure — data is left untouched, no error thrown. */
|
|
17
|
+
success?: boolean;
|
|
18
|
+
}
|
|
19
|
+
export interface ProTablePaginationConfig {
|
|
20
|
+
pageSize?: number;
|
|
21
|
+
current?: number;
|
|
22
|
+
defaultCurrent?: number;
|
|
23
|
+
defaultPageSize?: number;
|
|
24
|
+
}
|
|
25
|
+
/** Sort params handed to `request` — `{ [columnKey]: 'ascend' | 'descend' }`. */
|
|
26
|
+
export type ProTableSortParam = Record<string, Exclude<TableSortOrder, null>>;
|
|
27
|
+
/** Filter params handed to `request`, keyed by column key. */
|
|
28
|
+
export type ProTableFilterParam = Record<string, (string | number | boolean)[] | null>;
|
|
29
|
+
/** Remap a single search-field value into one or more request params. */
|
|
30
|
+
export type SearchTransform = (value: unknown) => Record<string, unknown>;
|
|
31
|
+
/** Extra options passed to `request` — notably an `AbortSignal` for cancellation. */
|
|
32
|
+
export interface ProTableRequestOptions {
|
|
33
|
+
signal?: AbortSignal;
|
|
34
|
+
}
|
|
35
|
+
/** The `request` contract. The 4th `options` arg carries an `AbortSignal`. */
|
|
36
|
+
export type ProTableRequest<T, Params extends Record<string, unknown> = Record<string, unknown>> = (params: Params & {
|
|
37
|
+
current?: number;
|
|
38
|
+
pageSize?: number;
|
|
39
|
+
}, sort: ProTableSortParam, filter: ProTableFilterParam, options?: ProTableRequestOptions) => Promise<RequestData<T>>;
|
|
40
|
+
export interface ProColumnType<T extends TableRecord = TableRecord> extends TableColumn<T> {
|
|
41
|
+
/** Drives the default cell render and the auto-generated search-field type. */
|
|
42
|
+
valueType?: ProTableValueType;
|
|
43
|
+
/** Enum for `select` value type — used for both cell text and field options. */
|
|
44
|
+
valueEnum?: ProFormValueEnumObj;
|
|
45
|
+
/**
|
|
46
|
+
* Include this column in the search form. `false` hides it. Object form lets you
|
|
47
|
+
* remap the submitted value into request params (e.g. a range → `{ start, end }`).
|
|
48
|
+
*/
|
|
49
|
+
search?: boolean | {
|
|
50
|
+
transform: SearchTransform;
|
|
51
|
+
};
|
|
52
|
+
/** Omit the column from the rendered table. */
|
|
53
|
+
hideInTable?: boolean;
|
|
54
|
+
/** Omit the column from the search form (alias of `search: false`). */
|
|
55
|
+
hideInSearch?: boolean;
|
|
56
|
+
/** Provide a custom search field — overrides `valueType`. */
|
|
57
|
+
renderFormItem?: () => ReactNode;
|
|
58
|
+
/** Extra props forwarded to the generated search field. */
|
|
59
|
+
fieldProps?: Record<string, unknown>;
|
|
60
|
+
/** Default value for the generated search field. */
|
|
61
|
+
initialValue?: unknown;
|
|
62
|
+
/** Sort order of the field within the search form (ascending). */
|
|
63
|
+
order?: number;
|
|
64
|
+
}
|
|
65
|
+
export type ProColumns<T extends TableRecord = TableRecord> = ProColumnType<T>;
|
|
66
|
+
export type SyncToUrl = boolean | ((values: Record<string, unknown>, type: 'get' | 'set') => Record<string, unknown>);
|
|
67
|
+
export interface SearchConfig {
|
|
68
|
+
defaultCollapsed?: boolean;
|
|
69
|
+
labelWidth?: number | 'auto';
|
|
70
|
+
/** Visible fields before the form collapses. */
|
|
71
|
+
defaultColsNumber?: number;
|
|
72
|
+
searchText?: string;
|
|
73
|
+
resetText?: string;
|
|
74
|
+
/**
|
|
75
|
+
* Sync the search values to the URL query string. `true` mirrors values 1:1;
|
|
76
|
+
* a function maps between form values and URL params (`type` is `'get'` on read,
|
|
77
|
+
* `'set'` on write). Restored URL values also seed the first request.
|
|
78
|
+
*/
|
|
79
|
+
syncToUrl?: SyncToUrl;
|
|
80
|
+
}
|
|
81
|
+
export interface ProTableActionRef {
|
|
82
|
+
/** Refetch the current page. */
|
|
83
|
+
reload: () => Promise<void>;
|
|
84
|
+
/** Reset to page 1, then refetch. */
|
|
85
|
+
reloadAndRest: () => Promise<void>;
|
|
86
|
+
/** Reset the search form and pagination to their defaults. */
|
|
87
|
+
reset: () => void;
|
|
88
|
+
setPageInfo: (info: Partial<PageInfo>) => void;
|
|
89
|
+
}
|
|
90
|
+
export interface ProTableProps<T extends TableRecord = TableRecord, Params extends Record<string, unknown> = Record<string, unknown>> extends Pick<TableProps<T>, 'rowKey' | 'rowSelection' | 'variant' | 'bordered' | 'scroll' | 'sticky' | 'expandable' | 'empty' | 'tableLayout' | 'rowClassName' | 'onRow' | 'size' | 'summary' | 'footer'> {
|
|
91
|
+
prefixCls?: string;
|
|
92
|
+
className?: string;
|
|
93
|
+
/**
|
|
94
|
+
* Column definitions. Keep this array referentially stable (module-level or
|
|
95
|
+
* `useMemo`) — a new array each render re-derives the columns and search form.
|
|
96
|
+
*/
|
|
97
|
+
columns: ProColumns<T>[];
|
|
98
|
+
/** Server data source. Mutually exclusive with `dataSource`. */
|
|
99
|
+
request?: ProTableRequest<T, Params>;
|
|
100
|
+
/** Extra params merged into every request; a change triggers a refetch (resets to page 1). */
|
|
101
|
+
params?: Params;
|
|
102
|
+
/** Controlled data — when provided, `request` is ignored (presentational mode). */
|
|
103
|
+
dataSource?: T[];
|
|
104
|
+
/** Controlled loading — overrides the internal request loading. */
|
|
105
|
+
loading?: boolean;
|
|
106
|
+
/** Initial data before the first request resolves. */
|
|
107
|
+
defaultData?: T[];
|
|
108
|
+
/** Skip the initial auto request; only fetch after the first search / `reload`. */
|
|
109
|
+
manualRequest?: boolean;
|
|
110
|
+
/** Debounce (ms) applied to every request trigger. */
|
|
111
|
+
debounceTime?: number;
|
|
112
|
+
/** Transform the response rows before they are rendered. */
|
|
113
|
+
postData?: (data: T[]) => T[];
|
|
114
|
+
/** Transform the whole search-param set before it is sent to `request`. */
|
|
115
|
+
beforeSearchSubmit?: (params: Record<string, unknown>) => Record<string, unknown>;
|
|
116
|
+
/** Placeholder rendered for empty cell values (defaults to `'-'`). */
|
|
117
|
+
columnEmptyText?: ReactNode;
|
|
118
|
+
/** Poll interval (ms), or a function of the current rows. `0`/falsy disables. */
|
|
119
|
+
polling?: number | ((data: T[]) => number);
|
|
120
|
+
/** Customize the rendered search form; receives the default QueryFilter node. */
|
|
121
|
+
searchFormRender?: (defaultDom: ReactNode) => ReactNode;
|
|
122
|
+
pagination?: false | ProTablePaginationConfig;
|
|
123
|
+
search?: false | SearchConfig;
|
|
124
|
+
rowSelection?: TableRowSelection<T>;
|
|
125
|
+
size?: TableSize;
|
|
126
|
+
actionRef?: Ref<ProTableActionRef>;
|
|
127
|
+
onLoad?: (data: T[]) => void;
|
|
128
|
+
onLoadingChange?: (loading: boolean) => void;
|
|
129
|
+
onRequestError?: (error: Error) => void;
|
|
130
|
+
/** Forwarded from the base Table (sort/filter changes). */
|
|
131
|
+
onChange?: (meta: TableChangeMeta<T>) => void;
|
|
132
|
+
}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50cy9Qcm9UYWJsZS9pbnRlcmZhY2UuanMiLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMiLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvUHJvVGFibGUvaW50ZXJmYWNlLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7fTsiXSwibWFwcGluZ3MiOiIiLCJpZ25vcmVMaXN0IjpbXX0=
|