@1money/component-ui 0.0.68 → 0.0.70

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 (69) hide show
  1. package/es/components/Icons/Wrapper.js +6 -4
  2. package/es/components/Icons/constants.d.ts +11 -0
  3. package/es/components/Icons/constants.js +32 -0
  4. package/es/components/Icons/index.d.ts +2 -0
  5. package/es/components/Icons/index.js +2 -1
  6. package/es/components/Icons/interface.d.ts +8 -1
  7. package/es/components/ProForm/interface.d.ts +3 -1
  8. package/es/components/ProForm/layouts/QueryFilter.js +5 -1
  9. package/es/components/ProTable/ProTable.d.ts +5 -0
  10. package/es/components/ProTable/ProTable.js +309 -0
  11. package/es/components/ProTable/constants.d.ts +12 -0
  12. package/es/components/ProTable/constants.js +12 -0
  13. package/es/components/ProTable/core/genColumns.d.ts +10 -0
  14. package/es/components/ProTable/core/genColumns.js +81 -0
  15. package/es/components/ProTable/core/genSearchFields.d.ts +19 -0
  16. package/es/components/ProTable/core/genSearchFields.js +103 -0
  17. package/es/components/ProTable/core/useAwaitableReload.d.ts +17 -0
  18. package/es/components/ProTable/core/useAwaitableReload.js +39 -0
  19. package/es/components/ProTable/core/utils.d.ts +12 -0
  20. package/es/components/ProTable/core/utils.js +21 -0
  21. package/es/components/ProTable/index.d.ts +4 -0
  22. package/es/components/ProTable/index.js +5 -0
  23. package/es/components/ProTable/interface.d.ts +132 -0
  24. package/es/components/ProTable/interface.js +2 -0
  25. package/es/components/ProTable/style/ProTable.css +47 -0
  26. package/es/components/ProTable/style/css.js +6 -0
  27. package/es/components/ProTable/style/index.d.ts +5 -0
  28. package/es/components/ProTable/style/index.js +6 -0
  29. package/es/components/ProTable/useFetchData.d.ts +48 -0
  30. package/es/components/ProTable/useFetchData.js +270 -0
  31. package/es/index.css +1 -1
  32. package/es/index.d.ts +3 -1
  33. package/es/index.js +2 -1
  34. package/lib/components/Icons/Wrapper.js +6 -4
  35. package/lib/components/Icons/constants.d.ts +11 -0
  36. package/lib/components/Icons/constants.js +38 -0
  37. package/lib/components/Icons/index.d.ts +2 -0
  38. package/lib/components/Icons/index.js +10 -2
  39. package/lib/components/Icons/interface.d.ts +8 -1
  40. package/lib/components/ProForm/interface.d.ts +3 -1
  41. package/lib/components/ProForm/layouts/QueryFilter.js +5 -1
  42. package/lib/components/ProTable/ProTable.d.ts +5 -0
  43. package/lib/components/ProTable/ProTable.js +316 -0
  44. package/lib/components/ProTable/constants.d.ts +12 -0
  45. package/lib/components/ProTable/constants.js +18 -0
  46. package/lib/components/ProTable/core/genColumns.d.ts +10 -0
  47. package/lib/components/ProTable/core/genColumns.js +87 -0
  48. package/lib/components/ProTable/core/genSearchFields.d.ts +19 -0
  49. package/lib/components/ProTable/core/genSearchFields.js +111 -0
  50. package/lib/components/ProTable/core/useAwaitableReload.d.ts +17 -0
  51. package/lib/components/ProTable/core/useAwaitableReload.js +46 -0
  52. package/lib/components/ProTable/core/utils.d.ts +12 -0
  53. package/lib/components/ProTable/core/utils.js +28 -0
  54. package/lib/components/ProTable/index.d.ts +4 -0
  55. package/lib/components/ProTable/index.js +33 -0
  56. package/lib/components/ProTable/interface.d.ts +132 -0
  57. package/lib/components/ProTable/interface.js +6 -0
  58. package/lib/components/ProTable/style/ProTable.css +47 -0
  59. package/lib/components/ProTable/style/css.js +8 -0
  60. package/lib/components/ProTable/style/index.d.ts +5 -0
  61. package/lib/components/ProTable/style/index.js +8 -0
  62. package/lib/components/ProTable/useFetchData.d.ts +48 -0
  63. package/lib/components/ProTable/useFetchData.js +277 -0
  64. package/lib/index.css +1 -1
  65. package/lib/index.d.ts +3 -1
  66. package/lib/index.js +8 -1
  67. package/package.json +6 -1
  68. package/scripts/mcp-server/examples.generated.json +168 -6
  69. package/scripts/mcp-server/index.generated.json +778 -4
@@ -0,0 +1,316 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports["default"] = exports.ProTable = void 0;
8
+ var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
9
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
10
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
11
+ var _jsxRuntime = require("react/jsx-runtime");
12
+ var _react = require("react");
13
+ var _hooks = require("@1money/hooks");
14
+ var _Pagination = require("../Pagination");
15
+ var _Table = require("../Table");
16
+ var _ProForm = require("../ProForm");
17
+ var _classnames = _interopRequireDefault(require("../../utils/classnames"));
18
+ var _constants = require("./constants");
19
+ var _useFetchData2 = require("./useFetchData");
20
+ var _genColumns = require("./core/genColumns");
21
+ var _genSearchFields = require("./core/genSearchFields");
22
+ var __awaiter = void 0 && (void 0).__awaiter || function (thisArg, _arguments, P, generator) {
23
+ function adopt(value) {
24
+ return value instanceof P ? value : new P(function (resolve) {
25
+ resolve(value);
26
+ });
27
+ }
28
+ return new (P || (P = Promise))(function (resolve, reject) {
29
+ function fulfilled(value) {
30
+ try {
31
+ step(generator.next(value));
32
+ } catch (e) {
33
+ reject(e);
34
+ }
35
+ }
36
+ function rejected(value) {
37
+ try {
38
+ step(generator["throw"](value));
39
+ } catch (e) {
40
+ reject(e);
41
+ }
42
+ }
43
+ function step(result) {
44
+ result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
45
+ }
46
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
47
+ });
48
+ };
49
+ /** Read the current URL query string into search values, applying the `'get'` transform. */
50
+ function readUrlValues(syncToUrl) {
51
+ if (typeof window === 'undefined') return {};
52
+ var params = {};
53
+ new URLSearchParams(window.location.search).forEach(function (value, key) {
54
+ params[key] = value;
55
+ });
56
+ return typeof syncToUrl === 'function' ? syncToUrl(params, 'get') : params;
57
+ }
58
+ function ProTableInner(props) {
59
+ var _this = this;
60
+ var _a, _b;
61
+ var _props$prefixCls = props.prefixCls,
62
+ prefixCls = _props$prefixCls === void 0 ? _constants.CSS_PREFIX : _props$prefixCls,
63
+ className = props.className,
64
+ columns = props.columns,
65
+ request = props.request,
66
+ params = props.params,
67
+ controlledData = props.dataSource,
68
+ controlledLoading = props.loading,
69
+ defaultData = props.defaultData,
70
+ manualRequest = props.manualRequest,
71
+ debounceTime = props.debounceTime,
72
+ postData = props.postData,
73
+ polling = props.polling,
74
+ beforeSearchSubmit = props.beforeSearchSubmit,
75
+ columnEmptyText = props.columnEmptyText,
76
+ searchFormRender = props.searchFormRender,
77
+ _props$pagination = props.pagination,
78
+ pagination = _props$pagination === void 0 ? {} : _props$pagination,
79
+ _props$search = props.search,
80
+ search = _props$search === void 0 ? {} : _props$search,
81
+ rowSelection = props.rowSelection,
82
+ _props$size = props.size,
83
+ size = _props$size === void 0 ? 'small' : _props$size,
84
+ actionRef = props.actionRef,
85
+ onLoad = props.onLoad,
86
+ onLoadingChange = props.onLoadingChange,
87
+ onRequestError = props.onRequestError,
88
+ onChange = props.onChange,
89
+ rowKey = props.rowKey,
90
+ _props$variant = props.variant,
91
+ variant = _props$variant === void 0 ? 'stroke' : _props$variant,
92
+ bordered = props.bordered,
93
+ scroll = props.scroll,
94
+ sticky = props.sticky,
95
+ expandable = props.expandable,
96
+ empty = props.empty,
97
+ tableLayout = props.tableLayout,
98
+ rowClassName = props.rowClassName,
99
+ onRow = props.onRow,
100
+ summary = props.summary,
101
+ footer = props.footer;
102
+ var classes = (0, _classnames["default"])(prefixCls);
103
+ var tableColumns = (0, _react.useMemo)(function () {
104
+ return (0, _genColumns.genColumns)(columns, columnEmptyText);
105
+ }, [columns, columnEmptyText]);
106
+ // ── search form (auto-generated from columns) ──
107
+ var searchCfg = search === false ? undefined : search;
108
+ var _useMemo = (0, _react.useMemo)(function () {
109
+ return (0, _genSearchFields.genSearchFields)(columns);
110
+ }, [columns]),
111
+ searchFields = _useMemo.fields,
112
+ searchInitialValues = _useMemo.initialValues,
113
+ searchFieldNames = _useMemo.names;
114
+ var hasSearch = search !== false && searchFields.length > 0;
115
+ var syncToUrl = searchCfg === null || searchCfg === void 0 ? void 0 : searchCfg.syncToUrl;
116
+ // Seed initial values (and the first request) from the URL when syncToUrl is on.
117
+ var mergedInitialValues = (0, _react.useMemo)(function () {
118
+ return syncToUrl ? Object.assign(Object.assign({}, searchInitialValues), readUrlValues(syncToUrl)) : searchInitialValues;
119
+ },
120
+ // mount-only snapshot of the URL
121
+ [searchInitialValues]);
122
+ var _useSafeState = (0, _hooks.useSafeState)(function () {
123
+ return mergedInitialValues;
124
+ }),
125
+ _useSafeState2 = (0, _slicedToArray2["default"])(_useSafeState, 2),
126
+ searchParams = _useSafeState2[0],
127
+ setSearchParams = _useSafeState2[1];
128
+ var formRef = (0, _react.useRef)(undefined);
129
+ // ── server sort / filter ──
130
+ var _useSafeState3 = (0, _hooks.useSafeState)({}),
131
+ _useSafeState4 = (0, _slicedToArray2["default"])(_useSafeState3, 2),
132
+ sort = _useSafeState4[0],
133
+ setSort = _useSafeState4[1];
134
+ var _useSafeState5 = (0, _hooks.useSafeState)({}),
135
+ _useSafeState6 = (0, _slicedToArray2["default"])(_useSafeState5, 2),
136
+ filter = _useSafeState6[0],
137
+ setFilter = _useSafeState6[1];
138
+ // ── pagination config ──
139
+ var paginated = pagination !== false;
140
+ var defaultPageSize = pagination && pagination.defaultPageSize || pagination && pagination.pageSize || _constants.DEFAULT_PAGE_SIZE;
141
+ var defaultCurrent = pagination && pagination.defaultCurrent || pagination && pagination.current || _constants.DEFAULT_CURRENT;
142
+ var manual = controlledData !== undefined || !request;
143
+ var _useFetchData = (0, _useFetchData2.useFetchData)({
144
+ request: request,
145
+ manual: manual,
146
+ manualRequest: manualRequest,
147
+ debounceTime: debounceTime,
148
+ postData: postData,
149
+ polling: polling,
150
+ params: params,
151
+ defaultData: defaultData,
152
+ paginated: paginated,
153
+ defaultCurrent: defaultCurrent,
154
+ defaultPageSize: defaultPageSize,
155
+ searchParams: searchParams,
156
+ sort: sort,
157
+ filter: filter,
158
+ onLoad: onLoad,
159
+ onLoadingChange: onLoadingChange,
160
+ onRequestError: onRequestError
161
+ }),
162
+ fetchedData = _useFetchData.dataSource,
163
+ fetchLoading = _useFetchData.loading,
164
+ pageInfo = _useFetchData.pageInfo,
165
+ setPageInfo = _useFetchData.setPageInfo,
166
+ _reload = _useFetchData.reload,
167
+ _reset = _useFetchData.reset;
168
+ var dataSource = controlledData !== null && controlledData !== void 0 ? controlledData : fetchedData;
169
+ var loading = controlledLoading !== null && controlledLoading !== void 0 ? controlledLoading : manual ? false : fetchLoading;
170
+ // ── handlers ──
171
+ var handleSearchFinish = (0, _hooks.useMemoizedFn)(function (values) {
172
+ var perColumn = (0, _genSearchFields.applySearchTransforms)(values, columns);
173
+ var finalParams = beforeSearchSubmit ? beforeSearchSubmit(perColumn) : perColumn;
174
+ setSearchParams(finalParams);
175
+ setPageInfo({
176
+ current: defaultCurrent
177
+ });
178
+ void _reload();
179
+ });
180
+ var handleSearchReset = (0, _hooks.useMemoizedFn)(function () {
181
+ var _a;
182
+ // Use the array form (`resetFields(names)`) — the no-arg form re-invokes the
183
+ // form's own `onReset`, which loops back here and recurses infinitely.
184
+ (_a = formRef.current) === null || _a === void 0 ? void 0 : _a.resetFields(searchFieldNames);
185
+ setSearchParams({});
186
+ setPageInfo({
187
+ current: defaultCurrent
188
+ });
189
+ void _reload();
190
+ });
191
+ var handleTableChange = (0, _hooks.useMemoizedFn)(function (meta) {
192
+ if (meta.sorter) {
193
+ var _meta$sorter = meta.sorter,
194
+ columnKey = _meta$sorter.columnKey,
195
+ order = _meta$sorter.order;
196
+ setSort(columnKey && order ? (0, _defineProperty2["default"])({}, String(columnKey), order) : {});
197
+ }
198
+ if (meta.filters) setFilter(meta.filters);
199
+ if (meta.sorter || meta.filters) setPageInfo({
200
+ current: defaultCurrent
201
+ });
202
+ onChange === null || onChange === void 0 ? void 0 : onChange(meta);
203
+ });
204
+ var handlePageChange = (0, _hooks.useMemoizedFn)(function (page, pageSize) {
205
+ setPageInfo({
206
+ current: page,
207
+ pageSize: pageSize
208
+ });
209
+ onChange === null || onChange === void 0 ? void 0 : onChange({
210
+ currentDataSource: dataSource,
211
+ action: 'paginate',
212
+ pagination: {
213
+ current: page,
214
+ pageSize: pageSize
215
+ }
216
+ });
217
+ });
218
+ // ── imperative handle ──
219
+ (0, _react.useImperativeHandle)(actionRef, function () {
220
+ return {
221
+ reload: function reload() {
222
+ return _reload();
223
+ },
224
+ reloadAndRest: function reloadAndRest() {
225
+ return __awaiter(_this, void 0, void 0, /*#__PURE__*/_regenerator["default"].mark(function _callee() {
226
+ return _regenerator["default"].wrap(function (_context) {
227
+ while (1) switch (_context.prev = _context.next) {
228
+ case 0:
229
+ setPageInfo({
230
+ current: defaultCurrent
231
+ });
232
+ _context.next = 1;
233
+ return _reload();
234
+ case 1:
235
+ case "end":
236
+ return _context.stop();
237
+ }
238
+ }, _callee);
239
+ }));
240
+ },
241
+ reset: function reset() {
242
+ var _a;
243
+ (_a = formRef.current) === null || _a === void 0 ? void 0 : _a.resetFields(searchFieldNames);
244
+ setSearchParams(searchInitialValues);
245
+ setSort({});
246
+ setFilter({});
247
+ _reset();
248
+ void _reload();
249
+ },
250
+ setPageInfo: setPageInfo
251
+ };
252
+ });
253
+ // ── search form node (only built when there are searchable columns) ──
254
+ var searchNode = null;
255
+ if (hasSearch) {
256
+ var searchForm = (0, _jsxRuntime.jsx)(_ProForm.QueryFilter, {
257
+ formRef: formRef,
258
+ size: "small",
259
+ initialValues: mergedInitialValues,
260
+ defaultCollapsed: searchCfg === null || searchCfg === void 0 ? void 0 : searchCfg.defaultCollapsed,
261
+ defaultColsNumber: searchCfg === null || searchCfg === void 0 ? void 0 : searchCfg.defaultColsNumber,
262
+ labelWidth: searchCfg === null || searchCfg === void 0 ? void 0 : searchCfg.labelWidth,
263
+ syncToUrl: syncToUrl,
264
+ searchConfig: {
265
+ searchText: (_a = searchCfg === null || searchCfg === void 0 ? void 0 : searchCfg.searchText) !== null && _a !== void 0 ? _a : _constants.DEFAULT_TEXT.search,
266
+ resetText: (_b = searchCfg === null || searchCfg === void 0 ? void 0 : searchCfg.resetText) !== null && _b !== void 0 ? _b : _constants.DEFAULT_TEXT.reset,
267
+ size: 'medium'
268
+ },
269
+ onFinish: handleSearchFinish,
270
+ onReset: handleSearchReset,
271
+ children: searchFields
272
+ });
273
+ searchNode = (0, _jsxRuntime.jsx)("div", {
274
+ className: classes('search'),
275
+ children: searchFormRender ? searchFormRender(searchForm) : searchForm
276
+ });
277
+ }
278
+ return (0, _jsxRuntime.jsxs)("div", {
279
+ className: classes(undefined, className),
280
+ children: [searchNode, (0, _jsxRuntime.jsxs)("div", {
281
+ className: classes('container'),
282
+ children: [(0, _jsxRuntime.jsx)(_Table.Table, {
283
+ rowKey: rowKey,
284
+ columns: tableColumns,
285
+ dataSource: dataSource,
286
+ loading: loading,
287
+ size: size,
288
+ pagination: false,
289
+ rowSelection: rowSelection,
290
+ onChange: handleTableChange,
291
+ variant: variant,
292
+ bordered: bordered,
293
+ scroll: scroll,
294
+ sticky: sticky,
295
+ expandable: expandable,
296
+ empty: empty,
297
+ tableLayout: tableLayout,
298
+ rowClassName: rowClassName,
299
+ onRow: onRow,
300
+ summary: summary,
301
+ footer: footer
302
+ }), paginated && (0, _jsxRuntime.jsx)("div", {
303
+ className: classes('pagination'),
304
+ children: (0, _jsxRuntime.jsx)(_Pagination.Pagination, {
305
+ total: pageInfo.total,
306
+ current: pageInfo.current,
307
+ pageSize: pageInfo.pageSize,
308
+ onChange: handlePageChange
309
+ })
310
+ })]
311
+ })]
312
+ });
313
+ }
314
+ var ProTable = exports.ProTable = /*#__PURE__*/(0, _react.memo)(ProTableInner);
315
+ var _default = exports["default"] = ProTable;
316
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvUHJvVGFibGUvUHJvVGFibGUuanMiLCJjb21wb25lbnRzL3NyYy9jb21wb25lbnRzL1Byb1RhYmxlL1Byb1RhYmxlLnRzeCJdLCJuYW1lcyI6WyJfanN4UnVudGltZSIsInJlcXVpcmUiLCJfcmVhY3QiLCJfaG9va3MiLCJfUGFnaW5hdGlvbiIsIl9UYWJsZSIsIl9Qcm9Gb3JtIiwiX2NsYXNzbmFtZXMiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiX2NvbnN0YW50cyIsIl91c2VGZXRjaERhdGEyIiwiX2dlbkNvbHVtbnMiLCJfZ2VuU2VhcmNoRmllbGRzIiwiX19hd2FpdGVyIiwidGhpc0FyZyIsIl9hcmd1bWVudHMiLCJQIiwiZ2VuZXJhdG9yIiwiYWRvcHQiLCJ2YWx1ZSIsInJlc29sdmUiLCJQcm9taXNlIiwicmVqZWN0IiwiZnVsZmlsbGVkIiwic3RlcCIsIm5leHQiLCJlIiwicmVqZWN0ZWQiLCJyZXN1bHQiLCJkb25lIiwidGhlbiIsImFwcGx5IiwicmVhZFVybFZhbHVlcyIsInN5bmNUb1VybCIsIndpbmRvdyIsInBhcmFtcyIsIlVSTFNlYXJjaFBhcmFtcyIsImxvY2F0aW9uIiwic2VhcmNoIiwiZm9yRWFjaCIsImtleSIsIlByb1RhYmxlSW5uZXIiLCJwcm9wcyIsIl90aGlzIiwiX2EiLCJfYiIsIl9wcm9wcyRwcmVmaXhDbHMiLCJwcmVmaXhDbHMiLCJDU1NfUFJFRklYIiwiY2xhc3NOYW1lIiwiY29sdW1ucyIsInJlcXVlc3QiLCJjb250cm9sbGVkRGF0YSIsImRhdGFTb3VyY2UiLCJjb250cm9sbGVkTG9hZGluZyIsImxvYWRpbmciLCJkZWZhdWx0RGF0YSIsIm1hbnVhbFJlcXVlc3QiLCJkZWJvdW5jZVRpbWUiLCJwb3N0RGF0YSIsInBvbGxpbmciLCJiZWZvcmVTZWFyY2hTdWJtaXQiLCJjb2x1bW5FbXB0eVRleHQiLCJzZWFyY2hGb3JtUmVuZGVyIiwiX3Byb3BzJHBhZ2luYXRpb24iLCJwYWdpbmF0aW9uIiwiX3Byb3BzJHNlYXJjaCIsInJvd1NlbGVjdGlvbiIsIl9wcm9wcyRzaXplIiwic2l6ZSIsImFjdGlvblJlZiIsIm9uTG9hZCIsIm9uTG9hZGluZ0NoYW5nZSIsIm9uUmVxdWVzdEVycm9yIiwib25DaGFuZ2UiLCJyb3dLZXkiLCJfcHJvcHMkdmFyaWFudCIsInZhcmlhbnQiLCJib3JkZXJlZCIsInNjcm9sbCIsInN0aWNreSIsImV4cGFuZGFibGUiLCJlbXB0eSIsInRhYmxlTGF5b3V0Iiwicm93Q2xhc3NOYW1lIiwib25Sb3ciLCJzdW1tYXJ5IiwiZm9vdGVyIiwiY2xhc3NlcyIsImNsYXNzbmFtZXMiLCJ0YWJsZUNvbHVtbnMiLCJ1c2VNZW1vIiwiZ2VuQ29sdW1ucyIsInNlYXJjaENmZyIsInVuZGVmaW5lZCIsIl91c2VNZW1vIiwiZ2VuU2VhcmNoRmllbGRzIiwic2VhcmNoRmllbGRzIiwiZmllbGRzIiwic2VhcmNoSW5pdGlhbFZhbHVlcyIsImluaXRpYWxWYWx1ZXMiLCJzZWFyY2hGaWVsZE5hbWVzIiwibmFtZXMiLCJoYXNTZWFyY2giLCJsZW5ndGgiLCJtZXJnZWRJbml0aWFsVmFsdWVzIiwiT2JqZWN0IiwiYXNzaWduIiwiX3VzZVNhZmVTdGF0ZSIsInVzZVNhZmVTdGF0ZSIsIl91c2VTYWZlU3RhdGUyIiwiX3NsaWNlZFRvQXJyYXkyIiwic2VhcmNoUGFyYW1zIiwic2V0U2VhcmNoUGFyYW1zIiwiZm9ybVJlZiIsInVzZVJlZiIsIl91c2VTYWZlU3RhdGUzIiwiX3VzZVNhZmVTdGF0ZTQiLCJzb3J0Iiwic2V0U29ydCIsIl91c2VTYWZlU3RhdGU1IiwiX3VzZVNhZmVTdGF0ZTYiLCJmaWx0ZXIiLCJzZXRGaWx0ZXIiLCJwYWdpbmF0ZWQiLCJkZWZhdWx0UGFnZVNpemUiLCJwYWdlU2l6ZSIsIkRFRkFVTFRfUEFHRV9TSVpFIiwiZGVmYXVsdEN1cnJlbnQiLCJjdXJyZW50IiwiREVGQVVMVF9DVVJSRU5UIiwibWFudWFsIiwiX3VzZUZldGNoRGF0YSIsInVzZUZldGNoRGF0YSIsImZldGNoZWREYXRhIiwiZmV0Y2hMb2FkaW5nIiwicGFnZUluZm8iLCJzZXRQYWdlSW5mbyIsInJlbG9hZCIsInJlc2V0IiwiaGFuZGxlU2VhcmNoRmluaXNoIiwidXNlTWVtb2l6ZWRGbiIsInZhbHVlcyIsInBlckNvbHVtbiIsImFwcGx5U2VhcmNoVHJhbnNmb3JtcyIsImZpbmFsUGFyYW1zIiwiaGFuZGxlU2VhcmNoUmVzZXQiLCJyZXNldEZpZWxkcyIsImhhbmRsZVRhYmxlQ2hhbmdlIiwibWV0YSIsInNvcnRlciIsIl9tZXRhJHNvcnRlciIsImNvbHVtbktleSIsIm9yZGVyIiwiX2RlZmluZVByb3BlcnR5MiIsIlN0cmluZyIsImZpbHRlcnMiLCJoYW5kbGVQYWdlQ2hhbmdlIiwicGFnZSIsImN1cnJlbnREYXRhU291cmNlIiwiYWN0aW9uIiwidXNlSW1wZXJhdGl2ZUhhbmRsZSIsInJlbG9hZEFuZFJlc3QiLCJfcmVnZW5lcmF0b3IiLCJtYXJrIiwiX2NhbGxlZSIsIndyYXAiLCJfY29udGV4dCIsInByZXYiLCJzdG9wIiwic2VhcmNoTm9kZSIsInNlYXJjaEZvcm0iLCJfanN4IiwiUXVlcnlGaWx0ZXIiLCJkZWZhdWx0Q29sbGFwc2VkIiwiZGVmYXVsdENvbHNOdW1iZXIiLCJsYWJlbFdpZHRoIiwic2VhcmNoQ29uZmlnIiwic2VhcmNoVGV4dCIsIkRFRkFVTFRfVEVYVCIsInJlc2V0VGV4dCIsIm9uRmluaXNoIiwib25SZXNldCIsImNoaWxkcmVuIiwiX2pzeHMiLCJUYWJsZSIsIlBhZ2luYXRpb24iLCJ0b3RhbCIsIlByb1RhYmxlIiwiZXhwb3J0cyIsIm1lbW8iLCJfZGVmYXVsdCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7OztBQVNBLElBQUFBLFdBQUEsR0FBQUMsT0FBQTtBQ1RBLElBQUFDLE1BQUEsR0FBQUQsT0FBQTtBQUVBLElBQUFFLE1BQUEsR0FBQUYsT0FBQTtBQUNBLElBQUFHLFdBQUEsR0FBQUgsT0FBQTtBQUNBLElBQUFJLE1BQUEsR0FBQUosT0FBQTtBQUVBLElBQUFLLFFBQUEsR0FB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QUFXLEVBQUVBLFdBQVc7UUFDeEJDLFlBQVksRUFBRUEsWUFBWTtRQUMxQkMsS0FBSyxFQUFFQSxLQUFLO1FBQ1pDLE9BQU8sRUFBRUEsT0FBTztRQUNoQkMsTUFBTSxFQUFFQTtNQUFNLENBQUEsQ0FDZCxFQUVEcUMsU0FBUyxJQUNSLElBQUFnRCxlQUFBLEVBQUEsS0FBQSxFQUFBO1FBQUszSCxTQUFTLEVBQUV1QyxPQUFPLENBQUMsWUFBWSxDQUFDO1FBQUErRixRQUFBLEVBQ25DLElBQUFYLGVBQUEsRUFBQ2Msc0JBQVUsRUFBQTtVQUNUQyxLQUFLLEVBQUVuRCxRQUFRLENBQUNtRCxLQUFLO1VBQ3JCMUQsT0FBTyxFQUFFTyxRQUFRLENBQUNQLE9BQU87VUFDekJILFFBQVEsRUFBRVUsUUFBUSxDQUFDVixRQUFRO1VBQzNCcEQsUUFBUSxFQUFFbUY7UUFBZ0IsQ0FBQTtNQUMxQixDQUFBLENBRUw7SUFBQSxDQUFBLENBQ0c7RUFBQSxDQUFBLENBQ0Y7QUFFVjtBQUVPLElBQU0rQixRQUFRLEdBQUFDLE9BQUEsQ0FBQUQsUUFBQSxnQkFBRyxJQUFBRSxXQUFJLEVBQUNySixhQUFhLENBQXlCO0FBQUMsSUFBQXNKLFFBQUEsR0FBQUYsT0FBQSxjQUVyREQsUUFBUSIsImZpbGUiOiJjb21wb25lbnRzL1Byb1RhYmxlL1Byb1RhYmxlLmpzIiwic291cmNlc0NvbnRlbnQiOlsidmFyIF9fYXdhaXRlciA9ICh0aGlzICYmIHRoaXMuX19hd2FpdGVyKSB8fCBmdW5jdGlvbiAodGhpc0FyZywgX2FyZ3VtZW50cywgUCwgZ2VuZXJhdG9yKSB7XG4gICAgZnVuY3Rpb24gYWRvcHQodmFsdWUpIHsgcmV0dXJuIHZhbHVlIGluc3RhbmNlb2YgUCA/IHZhbHVlIDogbmV3IFAoZnVuY3Rpb24gKHJlc29sdmUpIHsgcmVzb2x2ZSh2YWx1ZSk7IH0pOyB9XG4gICAgcmV0dXJuIG5ldyAoUCB8fCAoUCA9IFByb21pc2UpKShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7XG4gICAgICAgIGZ1bmN0aW9uIGZ1bGZpbGxlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvci5uZXh0KHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cbiAgICAgICAgZnVuY3Rpb24gcmVqZWN0ZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3JbXCJ0aHJvd1wiXSh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XG4gICAgICAgIGZ1bmN0aW9uIHN0ZXAocmVzdWx0KSB7IHJlc3VsdC5kb25lID8gcmVzb2x2ZShyZXN1bHQudmFsdWUpIDogYWRvcHQocmVzdWx0LnZhbHVlKS50aGVuKGZ1bGZpbGxlZCwgcmVqZWN0ZWQpOyB9XG4gICAgICAgIHN0ZXAoKGdlbmVyYXRvciA9IGdlbmVyYXRvci5hcHBseSh0aGlzQXJnLCBfYXJndW1lbnRzIHx8IFtdKSkubmV4dCgpKTtcbiAgICB9KTtcbn07XG5pbXBvcnQgeyBqc3ggYXMgX2pzeCwganN4cyBhcyBfanN4cyB9IGZyb20gXCJyZWFjdC9qc3gtcnVudGltZVwiO1xuaW1wb3J0IHsgbWVtbywgdXNlSW1wZXJhdGl2ZUhhbmRsZSwgdXNlTWVtbywgdXNlUmVmIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgdXNlTWVtb2l6ZWRGbiwgdXNlU2FmZVN0YXRlIH0gZnJvbSAnQDFtb25leS9ob29rcyc7XG5pbXBvcnQgeyBQYWdpbmF0aW9uIH0gZnJvbSAnLi4vUGFnaW5hdGlvbic7XG5pbXBvcnQgeyBUYWJsZSB9IGZyb20gJy4uL1RhYmxlJztcbmltcG9ydCB7IFF1ZXJ5RmlsdGVyIH0gZnJvbSAnLi4vUHJvRm9ybSc7XG5pbXBvcnQgeyBkZWZhdWx0IGFzIGNsYXNzbmFtZXMgfSBmcm9tICcuLi8uLi91dGlscy9jbGFzc25hbWVzJztcbmltcG9ydCB7IENTU19QUkVGSVgsIERFRkFVTFRfQ1VSUkVOVCwgREVGQVVMVF9QQUdFX1NJWkUsIERFRkFVTFRfVEVYVCB9IGZyb20gJy4vY29uc3RhbnRzJztcbmltcG9ydCB7IHVzZUZldGNoRGF0YSB9IGZyb20gJy4vdXNlRmV0Y2hEYXRhJztcbmltcG9ydCB7IGdlbkNvbHVtbnMgfSBmcm9tICcuL2NvcmUvZ2VuQ29sdW1ucyc7XG5pbXBvcnQgeyBhcHBseVNlYXJjaFRyYW5zZm9ybXMsIGdlblNlYXJjaEZpZWxkcyB9IGZyb20gJy4vY29yZS9nZW5TZWFyY2hGaWVsZHMnO1xuLyoqIFJlYWQgdGhlIGN1cnJlbnQgVVJMIHF1ZXJ5IHN0cmluZyBpbnRvIHNlYXJjaCB2YWx1ZXMsIGFwcGx5aW5nIHRoZSBgJ2dldCdgIHRyYW5zZm9ybS4gKi9cbmZ1bmN0aW9uIHJlYWRVcmxWYWx1ZXMoc3luY1RvVXJsKSB7XG4gICAgaWYgKHR5cGVvZiB3aW5kb3cgPT09ICd1bmRlZmluZWQnKVxuICAgICAgICByZXR1cm4ge307XG4gICAgY29uc3QgcGFyYW1zID0ge307XG4gICAgbmV3IFVSTFNlYXJjaFBhcmFtcyh3aW5kb3cubG9jYXRpb24uc2VhcmNoKS5mb3JFYWNoKCh2YWx1ZSwga2V5KSA9PiB7XG4gICAgICAgIHBhcmFtc1trZXldID0gdmFsdWU7XG4gICAgfSk7XG4gICAgcmV0dXJuIHR5cGVvZiBzeW5jVG9VcmwgPT09ICdmdW5jdGlvbicgPyBzeW5jVG9VcmwocGFyYW1zLCAnZ2V0JykgOiBwYXJhbXM7XG59XG5mdW5jdGlvbiBQcm9UYWJsZUlubmVyKHByb3BzKSB7XG4gICAgdmFyIF9hLCBfYjtcbiAgICBjb25zdCB7IHByZWZpeENscyA9IENTU19QUkVGSVgsIGNsYXNzTmFtZSwgY29sdW1ucywgcmVxdWVzdCwgcGFyYW1zLCBkYXRhU291cmNlOiBjb250cm9sbGVkRGF0YSwgbG9hZGluZzogY29udHJvbGxlZExvYWRpbmcsIGRlZmF1bHREYXRhLCBtYW51YWxSZXF1ZXN0LCBkZWJvdW5jZVRpbWUsIHBvc3REYXRhLCBwb2xsaW5nLCBiZWZvcmVTZWFyY2hTdWJtaXQsIGNvbHVtbkVtcHR5VGV4dCwgc2VhcmNoRm9ybVJlbmRlciwgcGFnaW5hdGlvbiA9IHt9LCBzZWFyY2ggPSB7fSwgcm93U2VsZWN0aW9uLCBzaXplID0gJ3NtYWxsJywgYWN0aW9uUmVmLCBvbkxvYWQsIG9uTG9hZGluZ0NoYW5nZSwgb25SZXF1ZXN0RXJyb3IsIG9uQ2hhbmdlLCByb3dLZXksIHZhcmlhbnQgPSAnc3Ryb2tlJywgYm9yZGVyZWQsIHNjcm9sbCwgc3RpY2t5LCBleHBhbmRhYmxlLCBlbXB0eSwgdGFibGVMYXlvdXQsIHJvd0NsYXNzTmFtZSwgb25Sb3csIHN1bW1hcnksIGZvb3RlciwgfSA9IHByb3BzO1xuICAgIGNvbnN0IGNsYXNzZXMgPSBjbGFzc25hbWVzKHByZWZpeENscyk7XG4gICAgY29uc3QgdGFibGVDb2x1bW5zID0gdXNlTWVtbygoKSA9PiBnZW5Db2x1bW5zKGNvbHVtbnMsIGNvbHVtbkVtcHR5VGV4dCksIFtjb2x1bW5zLCBjb2x1bW5FbXB0eVRleHRdKTtcbiAgICAvLyDilIDilIAgc2VhcmNoIGZvcm0gKGF1dG8tZ2VuZXJhdGVkIGZyb20gY29sdW1ucykg4pSA4pSAXG4gICAgY29uc3Qgc2VhcmNoQ2ZnID0gc2VhcmNoID09PSBmYWxzZSA/IHVuZGVmaW5lZCA6IHNlYXJjaDtcbiAgICBjb25zdCB7IGZpZWxkczogc2VhcmNoRmllbGRzLCBpbml0aWFsVmFsdWVzOiBzZWFyY2hJbml0aWFsVmFsdWVzLCBuYW1lczogc2VhcmNoRmllbGROYW1lcyB9ID0gdXNlTWVtbygoKSA9PiBnZW5TZWFyY2hGaWVsZHMoY29sdW1ucyksIFtjb2x1bW5zXSk7XG4gICAgY29uc3QgaGFzU2VhcmNoID0gc2VhcmNoICE9PSBmYWxzZSAmJiBzZWFyY2hGaWVsZHMubGVuZ3RoID4gMDtcbiAgICBjb25zdCBzeW5jVG9VcmwgPSBzZWFyY2hDZmcgPT09IG51bGwgfHwgc2VhcmNoQ2ZnID09PSB2b2lkIDAgPyB2b2lkIDAgOiBzZWFyY2hDZmcuc3luY1RvVXJsO1xuICAgIC8vIFNlZWQgaW5pdGlhbCB2YWx1ZXMgKGFuZCB0aGUgZmlyc3QgcmVxdWVzdCkgZnJvbSB0aGUgVVJMIHdoZW4gc3luY1RvVXJsIGlzIG9uLlxuICAgIGNvbnN0IG1lcmdlZEluaXRpYWxWYWx1ZXMgPSB1c2VNZW1vKCgpID0+IChzeW5jVG9VcmwgPyBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIHNlYXJjaEluaXRpYWxWYWx1ZXMpLCByZWFkVXJsVmFsdWVzKHN5bmNUb1VybCkpIDogc2VhcmNoSW5pdGlhbFZhbHVlcyksIFxuICAgIC8vIG1vdW50LW9ubHkgc25hcHNob3Qgb2YgdGhlIFVSTFxuICAgIFtzZWFyY2hJbml0aWFsVmFsdWVzXSk7XG4gICAgY29uc3QgW3NlYXJjaFBhcmFtcywgc2V0U2VhcmNoUGFyYW1zXSA9IHVzZVNhZmVTdGF0ZSgoKSA9PiBtZXJnZWRJbml0aWFsVmFsdWVzKTtcbiAgICBjb25zdCBmb3JtUmVmID0gdXNlUmVmKHVuZGVmaW5lZCk7XG4gICAgLy8g4pSA4pSAIHNlcnZlciBzb3J0IC8gZmlsdGVyIOKUgOKUgFxuICAgIGNvbnN0IFtzb3J0LCBzZXRTb3J0XSA9IHVzZVNhZmVTdGF0ZSh7fSk7XG4gICAgY29uc3QgW2ZpbHRlciwgc2V0RmlsdGVyXSA9IHVzZVNhZmVTdGF0ZSh7fSk7XG4gICAgLy8g4pSA4pSAIHBhZ2luYXRpb24gY29uZmlnIOKUgOKUgFxuICAgIGNvbnN0IHBhZ2luYXRlZCA9IHBhZ2luYXRpb24gIT09IGZhbHNlO1xuICAgIGNvbnN0IGRlZmF1bHRQYWdlU2l6ZSA9IChwYWdpbmF0aW9uICYmIHBhZ2luYXRpb24uZGVmYXVsdFBhZ2VTaXplKSB8fCAocGFnaW5hdGlvbiAmJiBwYWdpbmF0aW9uLnBhZ2VTaXplKSB8fCBERUZBVUxUX1BBR0VfU0laRTtcbiAgICBjb25zdCBkZWZhdWx0Q3VycmVudCA9IChwYWdpbmF0aW9uICYmIHBhZ2luYXRpb24uZGVmYXVsdEN1cnJlbnQpIHx8IChwYWdpbmF0aW9uICYmIHBhZ2luYXRpb24uY3VycmVudCkgfHwgREVGQVVMVF9DVVJSRU5UO1xuICAgIGNvbnN0IG1hbnVhbCA9IGNvbnRyb2xsZWREYXRhICE9PSB1bmRlZmluZWQgfHwgIXJlcXVlc3Q7XG4gICAgY29uc3QgeyBkYXRhU291cmNlOiBmZXRjaGVkRGF0YSwgbG9hZGluZzogZmV0Y2hMb2FkaW5nLCBwYWdlSW5mbywgc2V0UGFnZUluZm8sIHJlbG9hZCwgcmVzZXQgfSA9IHVzZUZldGNoRGF0YSh7XG4gICAgICAgIHJlcXVlc3QsXG4gICAgICAgIG1hbnVhbCxcbiAgICAgICAgbWFudWFsUmVxdWVzdCxcbiAgICAgICAgZGVib3VuY2VUaW1lLFxuICAgICAgICBwb3N0RGF0YSxcbiAgICAgICAgcG9sbGluZyxcbiAgICAgICAgcGFyYW1zLFxuICAgICAgICBkZWZhdWx0RGF0YSxcbiAgICAgICAgcGFnaW5hdGVkLFxuICAgICAgICBkZWZhdWx0Q3VycmVudCxcbiAgICAgICAgZGVmYXVsdFBhZ2VTaXplLFxuICAgICAgICBzZWFyY2hQYXJhbXMsXG4gICAgICAgIHNvcnQsXG4gICAgICAgIGZpbHRlcixcbiAgICAgICAgb25Mb2FkLFxuICAgICAgICBvbkxvYWRpbmdDaGFuZ2UsXG4gICAgICAgIG9uUmVxdWVzdEVycm9yLFxuICAgIH0pO1xuICAgIGNvbnN0IGRhdGFTb3VyY2UgPSBjb250cm9sbGVkRGF0YSAhPT0gbnVsbCAmJiBjb250cm9sbGVkRGF0YSAhPT0gdm9pZCAwID8gY29udHJvbGxlZERhdGEgOiBmZXRjaGVkRGF0YTtcbiAgICBjb25zdCBsb2FkaW5nID0gY29udHJvbGxlZExvYWRpbmcgIT09IG51bGwgJiYgY29udHJvbGxlZExvYWRpbmcgIT09IHZvaWQgMCA/IGNvbnRyb2xsZWRMb2FkaW5nIDogKG1hbnVhbCA/IGZhbHNlIDogZmV0Y2hMb2FkaW5nKTtcbiAgICAvLyDilIDilIAgaGFuZGxlcnMg4pSA4pSAXG4gICAgY29uc3QgaGFuZGxlU2VhcmNoRmluaXNoID0gdXNlTWVtb2l6ZWRGbigodmFsdWVzKSA9PiB7XG4gICAgICAgIGNvbnN0IHBlckNvbHVtbiA9IGFwcGx5U2VhcmNoVHJhbnNmb3Jtcyh2YWx1ZXMsIGNvbHVtbnMpO1xuICAgICAgICBjb25zdCBmaW5hbFBhcmFtcyA9IGJlZm9yZVNlYXJjaFN1Ym1pdCA/IGJlZm9yZVNlYXJjaFN1Ym1pdChwZXJDb2x1bW4pIDogcGVyQ29sdW1uO1xuICAgICAgICBzZXRTZWFyY2hQYXJhbXMoZmluYWxQYXJhbXMpO1xuICAgICAgICBzZXRQYWdlSW5mbyh7IGN1cnJlbnQ6IGRlZmF1bHRDdXJyZW50IH0pO1xuICAgICAgICB2b2lkIHJlbG9hZCgpO1xuICAgIH0pO1xuICAgIGNvbnN0IGhhbmRsZVNlYXJjaFJlc2V0ID0gdXNlTWVtb2l6ZWRGbigoKSA9PiB7XG4gICAgICAgIHZhciBfYTtcbiAgICAgICAgLy8gVXNlIHRoZSBhcnJheSBmb3JtIChgcmVzZXRGaWVsZHMobmFtZXMpYCkg4oCUIHRoZSBuby1hcmcgZm9ybSByZS1pbnZva2VzIHRoZVxuICAgICAgICAvLyBmb3JtJ3Mgb3duIGBvblJlc2V0YCwgd2hpY2ggbG9vcHMgYmFjayBoZXJlIGFuZCByZWN1cnNlcyBpbmZpbml0ZWx5LlxuICAgICAgICAoX2EgPSBmb3JtUmVmLmN1cnJlbnQpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5yZXNldEZpZWxkcyhzZWFyY2hGaWVsZE5hbWVzKTtcbiAgICAgICAgc2V0U2VhcmNoUGFyYW1zKHt9KTtcbiAgICAgICAgc2V0UGFnZUluZm8oeyBjdXJyZW50OiBkZWZhdWx0Q3VycmVudCB9KTtcbiAgICAgICAgdm9pZCByZWxvYWQoKTtcbiAgICB9KTtcbiAgICBjb25zdCBoYW5kbGVUYWJsZUNoYW5nZSA9IHVzZU1lbW9pemVkRm4oKG1ldGEpID0+IHtcbiAgICAgICAgaWYgKG1ldGEuc29ydGVyKSB7XG4gICAgICAgICAgICBjb25zdCB7IGNvbHVtbktleSwgb3JkZXIgfSA9IG1ldGEuc29ydGVyO1xuICAgICAgICAgICAgc2V0U29ydChjb2x1bW5LZXkgJiYgb3JkZXIgPyB7IFtTdHJpbmcoY29sdW1uS2V5KV06IG9yZGVyIH0gOiB7fSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG1ldGEuZmlsdGVycylcbiAgICAgICAgICAgIHNldEZpbHRlcihtZXRhLmZpbHRlcnMpO1xuICAgICAgICBpZiAobWV0YS5zb3J0ZXIgfHwgbWV0YS5maWx0ZXJzKVxuICAgICAgICAgICAgc2V0UGFnZUluZm8oeyBjdXJyZW50OiBkZWZhdWx0Q3VycmVudCB9KTtcbiAgICAgICAgb25DaGFuZ2UgPT09IG51bGwgfHwgb25DaGFuZ2UgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9uQ2hhbmdlKG1ldGEpO1xuICAgIH0pO1xuICAgIGNvbnN0IGhhbmRsZVBhZ2VDaGFuZ2UgPSB1c2VNZW1vaXplZEZuKChwYWdlLCBwYWdlU2l6ZSkgPT4ge1xuICAgICAgICBzZXRQYWdlSW5mbyh7IGN1cnJlbnQ6IHBhZ2UsIHBhZ2VTaXplIH0pO1xuICAgICAgICBvbkNoYW5nZSA9PT0gbnVsbCB8fCBvbkNoYW5nZSA9PT0gdm9pZCAwID8gdm9pZCAwIDogb25DaGFuZ2Uoe1xuICAgICAgICAgICAgY3VycmVudERhdGFTb3VyY2U6IGRhdGFTb3VyY2UsXG4gICAgICAgICAgICBhY3Rpb246ICdwYWdpbmF0ZScsXG4gICAgICAgICAgICBwYWdpbmF0aW9uOiB7IGN1cnJlbnQ6IHBhZ2UsIHBhZ2VTaXplIH0sXG4gICAgICAgIH0pO1xuICAgIH0pO1xuICAgIC8vIOKUgOKUgCBpbXBlcmF0aXZlIGhhbmRsZSDilIDilIBcbiAgICB1c2VJbXBlcmF0aXZlSGFuZGxlKGFjdGlvblJlZiwgKCkgPT4gKHtcbiAgICAgICAgcmVsb2FkOiAoKSA9PiByZWxvYWQoKSxcbiAgICAgICAgcmVsb2FkQW5kUmVzdDogKCkgPT4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICAgICAgc2V0UGFnZUluZm8oeyBjdXJyZW50OiBkZWZhdWx0Q3VycmVudCB9KTtcbiAgICAgICAgICAgIHlpZWxkIHJlbG9hZCgpO1xuICAgICAgICB9KSxcbiAgICAgICAgcmVzZXQ6ICgpID0+IHtcbiAgICAgICAgICAgIHZhciBfYTtcbiAgICAgICAgICAgIChfYSA9IGZvcm1SZWYuY3VycmVudCkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLnJlc2V0RmllbGRzKHNlYXJjaEZpZWxkTmFtZXMpO1xuICAgICAgICAgICAgc2V0U2VhcmNoUGFyYW1zKHNlYXJjaEluaXRpYWxWYWx1ZXMpO1xuICAgICAgICAgICAgc2V0U29ydCh7fSk7XG4gICAgICAgICAgICBzZXRGaWx0ZXIoe30pO1xuICAgICAgICAgICAgcmVzZXQoKTtcbiAgICAgICAgICAgIHZvaWQgcmVsb2FkKCk7XG4gICAgICAgIH0sXG4gICAgICAgIHNldFBhZ2VJbmZvLFxuICAgIH0pKTtcbiAgICAvLyDilIDilIAgc2VhcmNoIGZvcm0gbm9kZSAob25seSBidWlsdCB3aGVuIHRoZXJlIGFyZSBzZWFyY2hhYmxlIGNvbHVtbnMpIOKUgOKUgFxuICAgIGxldCBzZWFyY2hOb2RlID0gbnVsbDtcbiAgICBpZiAoaGFzU2VhcmNoKSB7XG4gICAgICAgIGNvbnN0IHNlYXJjaEZvcm0gPSAoX2pzeChRdWVyeUZpbHRlciwgeyBmb3JtUmVmOiBmb3JtUmVmLCBzaXplOiBcInNtYWxsXCIsIGluaXRpYWxWYWx1ZXM6IG1lcmdlZEluaXRpYWxWYWx1ZXMsIGRlZmF1bHRDb2xsYXBzZWQ6IHNlYXJjaENmZyA9PT0gbnVsbCB8fCBzZWFyY2hDZmcgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHNlYXJjaENmZy5kZWZhdWx0Q29sbGFwc2VkLCBkZWZhdWx0Q29sc051bWJlcjogc2VhcmNoQ2ZnID09PSBudWxsIHx8IHNlYXJjaENmZyA9PT0gdm9pZCAwID8gdm9pZCAwIDogc2VhcmNoQ2ZnLmRlZmF1bHRDb2xzTnVtYmVyLCBsYWJlbFdpZHRoOiBzZWFyY2hDZmcgPT09IG51bGwgfHwgc2VhcmNoQ2ZnID09PSB2b2lkIDAgPyB2b2lkIDAgOiBzZWFyY2hDZmcubGFiZWxXaWR0aCwgc3luY1RvVXJsOiBzeW5jVG9VcmwsIHNlYXJjaENvbmZpZzoge1xuICAgICAgICAgICAgICAgIHNlYXJjaFRleHQ6IChfYSA9IHNlYXJjaENmZyA9PT0gbnVsbCB8fCBzZWFyY2hDZmcgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHNlYXJjaENmZy5zZWFyY2hUZXh0KSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiBERUZBVUxUX1RFWFQuc2VhcmNoLFxuICAgICAgICAgICAgICAgIHJlc2V0VGV4dDogKF9iID0gc2VhcmNoQ2ZnID09PSBudWxsIHx8IHNlYXJjaENmZyA9PT0gdm9pZCAwID8gdm9pZCAwIDogc2VhcmNoQ2ZnLnJlc2V0VGV4dCkgIT09IG51bGwgJiYgX2IgIT09IHZvaWQgMCA/IF9iIDogREVGQVVMVF9URVhULnJlc2V0LFxuICAgICAgICAgICAgICAgIHNpemU6ICdtZWRpdW0nLFxuICAgICAgICAgICAgfSwgb25GaW5pc2g6IGhhbmRsZVNlYXJjaEZpbmlzaCwgb25SZXNldDogaGFuZGxlU2VhcmNoUmVzZXQsIGNoaWxkcmVuOiBzZWFyY2hGaWVsZHMgfSkpO1xuICAgICAgICBzZWFyY2hOb2RlID0gKF9qc3goXCJkaXZcIiwgeyBjbGFzc05hbWU6IGNsYXNzZXMoJ3NlYXJjaCcpLCBjaGlsZHJlbjogc2VhcmNoRm9ybVJlbmRlciA/IHNlYXJjaEZvcm1SZW5kZXIoc2VhcmNoRm9ybSkgOiBzZWFyY2hGb3JtIH0pKTtcbiAgICB9XG4gICAgcmV0dXJuIChfanN4cyhcImRpdlwiLCB7IGNsYXNzTmFtZTogY2xhc3Nlcyh1bmRlZmluZWQsIGNsYXNzTmFtZSksIGNoaWxkcmVuOiBbc2VhcmNoTm9kZSwgX2pzeHMoXCJkaXZcIiwgeyBjbGFzc05hbWU6IGNsYXNzZXMoJ2NvbnRhaW5lcicpLCBjaGlsZHJlbjogW19qc3goVGFibGUsIHsgcm93S2V5OiByb3dLZXksIGNvbHVtbnM6IHRhYmxlQ29sdW1ucywgZGF0YVNvdXJjZTogZGF0YVNvdXJjZSwgbG9hZGluZzogbG9hZGluZywgc2l6ZTogc2l6ZSwgcGFnaW5hdGlvbjogZmFsc2UsIHJvd1NlbGVjdGlvbjogcm93U2VsZWN0aW9uLCBvbkNoYW5nZTogaGFuZGxlVGFibGVDaGFuZ2UsIHZhcmlhbnQ6IHZhcmlhbnQsIGJvcmRlcmVkOiBib3JkZXJlZCwgc2Nyb2xsOiBzY3JvbGwsIHN0aWNreTogc3RpY2t5LCBleHBhbmRhYmxlOiBleHBhbmRhYmxlLCBlbXB0eTogZW1wdHksIHRhYmxlTGF5b3V0OiB0YWJsZUxheW91dCwgcm93Q2xhc3NOYW1lOiByb3dDbGFzc05hbWUsIG9uUm93OiBvblJvdywgc3VtbWFyeTogc3VtbWFyeSwgZm9vdGVyOiBmb290ZXIgfSksIHBhZ2luYXRlZCAmJiAoX2pzeChcImRpdlwiLCB7IGNsYXNzTmFtZTogY2xhc3NlcygncGFnaW5hdGlvbicpLCBjaGlsZHJlbjogX2pzeChQYWdpbmF0aW9uLCB7IHRvdGFsOiBwYWdlSW5mby50b3RhbCwgY3VycmVudDogcGFnZUluZm8uY3VycmVudCwgcGFnZVNpemU6IHBhZ2VJbmZvLnBhZ2VTaXplLCBvbkNoYW5nZTogaGFuZGxlUGFnZUNoYW5nZSB9KSB9KSldIH0pXSB9KSk7XG59XG5leHBvcnQgY29uc3QgUHJvVGFibGUgPSBtZW1vKFByb1RhYmxlSW5uZXIpO1xuZXhwb3J0IGRlZmF1bHQgUHJvVGFibGU7IixudWxsXSwic291cmNlUm9vdCI6Ii4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYyJ9
@@ -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>;