@1money/component-ui 0.0.71 → 0.0.73

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 (75) hide show
  1. package/es/components/ProForm/ProForm.d.ts +10 -2
  2. package/es/components/ProForm/ProForm.js +55 -22
  3. package/es/components/ProForm/ProFormDependency.js +4 -1
  4. package/es/components/ProForm/ProFormItem.js +73 -36
  5. package/es/components/ProForm/SchemaForm.d.ts +7 -0
  6. package/es/components/ProForm/SchemaForm.js +103 -0
  7. package/es/components/ProForm/Submitter.js +12 -2
  8. package/es/components/ProForm/context.d.ts +22 -3
  9. package/es/components/ProForm/context.js +49 -10
  10. package/es/components/ProForm/core/constants.d.ts +2 -1
  11. package/es/components/ProForm/core/constants.js +3 -6
  12. package/es/components/ProForm/core/hooks/useForm.js +155 -131
  13. package/es/components/ProForm/core/hooks/useFormCore.js +73 -39
  14. package/es/components/ProForm/core/interface.d.ts +33 -12
  15. package/es/components/ProForm/core/runRules.d.ts +16 -6
  16. package/es/components/ProForm/core/runRules.js +94 -47
  17. package/es/components/ProForm/core/useFormItem.d.ts +10 -1
  18. package/es/components/ProForm/core/useFormItem.js +101 -39
  19. package/es/components/ProForm/fields/ProFormDatePicker.js +4 -1
  20. package/es/components/ProForm/fields/createProFormField.js +50 -31
  21. package/es/components/ProForm/index.d.ts +11 -4
  22. package/es/components/ProForm/index.js +7 -2
  23. package/es/components/ProForm/interface.d.ts +89 -14
  24. package/es/components/ProForm/layouts/DialogForm.d.ts +5 -1
  25. package/es/components/ProForm/layouts/DialogForm.js +2 -1
  26. package/es/components/ProForm/layouts/DrawerForm.d.ts +5 -1
  27. package/es/components/ProForm/layouts/DrawerForm.js +2 -1
  28. package/es/components/ProForm/layouts/QueryFilter.d.ts +5 -2
  29. package/es/components/ProForm/layouts/QueryFilter.js +77 -12
  30. package/es/components/ProForm/style/ProForm.css +6 -0
  31. package/es/components/ProForm/utils.d.ts +12 -1
  32. package/es/components/ProForm/utils.js +70 -21
  33. package/es/components/Tooltip/style/Tooltip.css +1 -0
  34. package/es/index.css +1 -1
  35. package/es/index.d.ts +2 -2
  36. package/es/index.js +2 -2
  37. package/lib/components/ProForm/ProForm.d.ts +10 -2
  38. package/lib/components/ProForm/ProForm.js +53 -20
  39. package/lib/components/ProForm/ProFormDependency.js +4 -1
  40. package/lib/components/ProForm/ProFormItem.js +72 -34
  41. package/lib/components/ProForm/SchemaForm.d.ts +7 -0
  42. package/lib/components/ProForm/SchemaForm.js +110 -0
  43. package/lib/components/ProForm/Submitter.js +12 -2
  44. package/lib/components/ProForm/context.d.ts +22 -3
  45. package/lib/components/ProForm/context.js +49 -10
  46. package/lib/components/ProForm/core/constants.d.ts +2 -1
  47. package/lib/components/ProForm/core/constants.js +4 -7
  48. package/lib/components/ProForm/core/hooks/useForm.js +154 -130
  49. package/lib/components/ProForm/core/hooks/useFormCore.js +72 -38
  50. package/lib/components/ProForm/core/interface.d.ts +33 -12
  51. package/lib/components/ProForm/core/runRules.d.ts +16 -6
  52. package/lib/components/ProForm/core/runRules.js +95 -47
  53. package/lib/components/ProForm/core/useFormItem.d.ts +10 -1
  54. package/lib/components/ProForm/core/useFormItem.js +100 -38
  55. package/lib/components/ProForm/fields/ProFormDatePicker.js +4 -1
  56. package/lib/components/ProForm/fields/createProFormField.js +50 -31
  57. package/lib/components/ProForm/index.d.ts +11 -4
  58. package/lib/components/ProForm/index.js +16 -1
  59. package/lib/components/ProForm/interface.d.ts +89 -14
  60. package/lib/components/ProForm/layouts/DialogForm.d.ts +5 -1
  61. package/lib/components/ProForm/layouts/DialogForm.js +2 -1
  62. package/lib/components/ProForm/layouts/DrawerForm.d.ts +5 -1
  63. package/lib/components/ProForm/layouts/DrawerForm.js +2 -1
  64. package/lib/components/ProForm/layouts/QueryFilter.d.ts +5 -2
  65. package/lib/components/ProForm/layouts/QueryFilter.js +77 -12
  66. package/lib/components/ProForm/style/ProForm.css +6 -0
  67. package/lib/components/ProForm/utils.d.ts +12 -1
  68. package/lib/components/ProForm/utils.js +73 -21
  69. package/lib/components/Tooltip/style/Tooltip.css +1 -0
  70. package/lib/index.css +1 -1
  71. package/lib/index.d.ts +2 -2
  72. package/lib/index.js +13 -1
  73. package/package.json +1 -1
  74. package/scripts/mcp-server/examples.generated.json +54 -0
  75. package/scripts/mcp-server/index.generated.json +1212 -80
@@ -1,10 +1,12 @@
1
1
  "use strict";
2
2
 
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
3
4
  var _typeof = require("@babel/runtime/helpers/typeof");
4
5
  Object.defineProperty(exports, "__esModule", {
5
6
  value: true
6
7
  });
7
8
  exports["default"] = exports.ProFormItem = void 0;
9
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
8
10
  var _jsxRuntime = require("react/jsx-runtime");
9
11
  var _react = _interopRequireWildcard(require("react"));
10
12
  var _Grid = require("../Grid");
@@ -46,7 +48,9 @@ function renderByValueType(valueType, value, props) {
46
48
  return match ? match.label : String(value);
47
49
  }
48
50
  case 'date':
51
+ return value instanceof Date ? (0, _utils.formatDateByPattern)(value, _utils.DATE_FORMAT) : String(value);
49
52
  case 'dateTime':
53
+ return value instanceof Date ? (0, _utils.formatDateByPattern)(value, _utils.DATE_TIME_FORMAT) : String(value);
50
54
  case 'text':
51
55
  default:
52
56
  return String(value);
@@ -86,14 +90,14 @@ var ReadonlyChild = /*#__PURE__*/(0, _react.memo)(ReadonlyChildBase);
86
90
  var ConvertValueChildBase = function ConvertValueChildBase(_ref2) {
87
91
  var name = _ref2.name,
88
92
  convertValue = _ref2.convertValue,
93
+ _ref2$valuePropName = _ref2.valuePropName,
94
+ valuePropName = _ref2$valuePropName === void 0 ? 'value' : _ref2$valuePropName,
89
95
  children = _ref2.children;
90
96
  var _useProFormContext2 = (0, _context.useProFormContext)(),
91
97
  values = _useProFormContext2.values;
92
98
  var raw = values[name];
93
99
  var converted = convertValue ? convertValue(raw, name) : raw;
94
- return /*#__PURE__*/_react["default"].cloneElement(children, {
95
- value: converted
96
- });
100
+ return /*#__PURE__*/_react["default"].cloneElement(children, (0, _defineProperty2["default"])({}, valuePropName, converted));
97
101
  };
98
102
  ConvertValueChildBase.displayName = 'ProFormItemConvertValue';
99
103
  var ConvertValueChild = /*#__PURE__*/(0, _react.memo)(ConvertValueChildBase);
@@ -101,38 +105,57 @@ var ConvertValueChild = /*#__PURE__*/(0, _react.memo)(ConvertValueChildBase);
101
105
  // ProFormItem
102
106
  // ---------------------------------------------------------------------------
103
107
  var ProFormItemBase = function ProFormItemBase(props) {
104
- var children = props.children,
105
- name = props.name,
106
- label = props.label,
107
- description = props.description,
108
- rules = props.rules,
109
- required = props.required,
110
- feedback = props.feedback,
111
- validateStatus = props.validateStatus,
112
- _props$className = props.className,
113
- className = _props$className === void 0 ? '' : _props$className,
114
- _props$prefixCls = props.prefixCls,
115
- prefixCls = _props$prefixCls === void 0 ? 'form-item' : _props$prefixCls,
116
- hidden = props.hidden,
117
- transform = props.transform,
118
- convertValue = props.convertValue,
119
- valueType = props.valueType,
120
- readonlyRender = props.readonlyRender,
121
- colProps = props.colProps,
122
- modeProp = props.mode,
123
- _props$emptyText = props.emptyText,
124
- emptyText = _props$emptyText === void 0 ? EMPTY_TEXT_DEFAULT : _props$emptyText,
125
- valueEnum = props.valueEnum;
126
108
  var ctx = (0, _context.useProFormContext)();
109
+ // Form-level `formItemProps` act as DEFAULTS; props explicitly set on the
110
+ // item win. JSX frequently passes `undefined` for unset props (e.g. the
111
+ // createProFormField pass-through), so only defined values may override.
112
+ var mergedProps = props;
113
+ if (ctx.formItemProps) {
114
+ var merged = Object.assign({}, ctx.formItemProps);
115
+ for (var _i = 0, _Object$keys = Object.keys(props); _i < _Object$keys.length; _i++) {
116
+ var key = _Object$keys[_i];
117
+ var value = props[key];
118
+ if (value !== undefined) merged[key] = value;
119
+ }
120
+ mergedProps = merged;
121
+ }
122
+ var _mergedProps = mergedProps,
123
+ children = _mergedProps.children,
124
+ name = _mergedProps.name,
125
+ label = _mergedProps.label,
126
+ description = _mergedProps.description,
127
+ rules = _mergedProps.rules,
128
+ required = _mergedProps.required,
129
+ feedback = _mergedProps.feedback,
130
+ validateStatus = _mergedProps.validateStatus,
131
+ _mergedProps$classNam = _mergedProps.className,
132
+ className = _mergedProps$classNam === void 0 ? '' : _mergedProps$classNam,
133
+ _mergedProps$prefixCl = _mergedProps.prefixCls,
134
+ prefixCls = _mergedProps$prefixCl === void 0 ? 'form-item' : _mergedProps$prefixCl,
135
+ hidden = _mergedProps.hidden,
136
+ transform = _mergedProps.transform,
137
+ convertValue = _mergedProps.convertValue,
138
+ valueType = _mergedProps.valueType,
139
+ readonlyRender = _mergedProps.readonlyRender,
140
+ colProps = _mergedProps.colProps,
141
+ modeProp = _mergedProps.mode,
142
+ _mergedProps$emptyTex = _mergedProps.emptyText,
143
+ emptyText = _mergedProps$emptyTex === void 0 ? EMPTY_TEXT_DEFAULT : _mergedProps$emptyTex,
144
+ valueEnum = _mergedProps.valueEnum,
145
+ valuePropName = _mergedProps.valuePropName,
146
+ validateDebounce = _mergedProps.validateDebounce;
127
147
  var mergedMode = modeProp !== null && modeProp !== void 0 ? modeProp : ctx.mode;
128
148
  var isReadonly = mergedMode === 'read';
129
149
  var _useFormItem = (0, _useFormItem2.useFormItem)({
130
150
  name: name,
131
151
  rules: rules,
132
152
  required: required,
133
- validateStatus: validateStatus
153
+ validateStatus: validateStatus,
154
+ valuePropName: valuePropName,
155
+ validateDebounce: validateDebounce
134
156
  }),
135
157
  fieldError = _useFormItem.fieldError,
158
+ fieldWarning = _useFormItem.fieldWarning,
136
159
  isRequired = _useFormItem.isRequired,
137
160
  size = _useFormItem.size,
138
161
  labelAlign = _useFormItem.labelAlign,
@@ -146,6 +169,14 @@ var ProFormItemBase = function ProFormItemBase(props) {
146
169
  ctx.unregisterTransform(name);
147
170
  };
148
171
  }, [name, transform, ctx.registerTransform, ctx.unregisterTransform]);
172
+ // Register / unregister valueType (drives valueType-aware dateFormatter)
173
+ (0, _react.useEffect)(function () {
174
+ if (!name || !valueType) return;
175
+ ctx.registerValueType(name, valueType);
176
+ return function () {
177
+ ctx.unregisterValueType(name);
178
+ };
179
+ }, [name, valueType, ctx.registerValueType, ctx.unregisterValueType]);
149
180
  if (hidden) return null;
150
181
  var controlChild;
151
182
  if (isReadonly) {
@@ -165,6 +196,7 @@ var ProFormItemBase = function ProFormItemBase(props) {
165
196
  controlChild = (0, _jsxRuntime.jsx)(ConvertValueChild, {
166
197
  name: name,
167
198
  convertValue: convertValue,
199
+ valuePropName: valuePropName,
168
200
  children: injected
169
201
  });
170
202
  } else {
@@ -173,7 +205,7 @@ var ProFormItemBase = function ProFormItemBase(props) {
173
205
  }
174
206
  var classes = (0, _classnames["default"])(prefixCls);
175
207
  var shell = (0, _jsxRuntime.jsxs)("div", {
176
- className: classes(undefined, (0, _classnames.joinCls)(size === 'small' && classes('small'), className)),
208
+ className: classes(undefined, (0, _classnames.joinCls)(classes(size), className)),
177
209
  children: [label && (0, _jsxRuntime.jsxs)("div", {
178
210
  className: classes('label-wrapper', (0, _classnames.joinCls)(classes('label-wrapper-vertical'), labelAlign && classes("label-wrapper-".concat(labelAlign)))),
179
211
  children: [(0, _jsxRuntime.jsx)(_Typography.TypographyLabel, {
@@ -197,7 +229,13 @@ var ProFormItemBase = function ProFormItemBase(props) {
197
229
  size: _constants.FORM_ERROR_SIZE,
198
230
  color: _constants.FORM_ERROR_COLOR,
199
231
  children: fieldError
200
- }), !fieldError && feedback && (0, _jsxRuntime.jsx)(_Typography.TypographyBody, {
232
+ }), !fieldError && fieldWarning && (0, _jsxRuntime.jsx)(_Typography.TypographyBody, {
233
+ as: "div",
234
+ className: classes('warning'),
235
+ size: _constants.FORM_WARNING_SIZE,
236
+ color: _constants.FORM_WARNING_COLOR,
237
+ children: fieldWarning
238
+ }), !fieldError && !fieldWarning && feedback && (0, _jsxRuntime.jsx)(_Typography.TypographyBody, {
201
239
  as: "div",
202
240
  className: classes('feedback'),
203
241
  size: _constants.FORM_FEEDBACK_SIZE,
@@ -207,12 +245,12 @@ var ProFormItemBase = function ProFormItemBase(props) {
207
245
  })]
208
246
  });
209
247
  if (ctx.grid) {
210
- var merged = Object.assign(Object.assign({}, ctx.colProps), colProps);
211
- var _merged$span = merged.span,
248
+ var _merged = Object.assign(Object.assign({}, ctx.colProps), colProps);
249
+ var _merged$span = _merged.span,
212
250
  span = _merged$span === void 0 ? _constants2.DEFAULT_COL_SPAN : _merged$span,
213
- sm = merged.sm,
214
- md = merged.md,
215
- lg = merged.lg;
251
+ sm = _merged.sm,
252
+ md = _merged.md,
253
+ lg = _merged.lg;
216
254
  return (0, _jsxRuntime.jsx)(_Grid.Col, {
217
255
  span: span,
218
256
  sm: sm,
@@ -226,4 +264,4 @@ var ProFormItemBase = function ProFormItemBase(props) {
226
264
  ProFormItemBase.displayName = 'ProFormItem';
227
265
  var ProFormItem = exports.ProFormItem = /*#__PURE__*/(0, _react.memo)(ProFormItemBase);
228
266
  var _default = exports["default"] = ProFormItem;
229
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvUHJvRm9ybS9Qcm9Gb3JtSXRlbS5qcyIsImNvbXBvbmVudHMvc3JjL2NvbXBvbmVudHMvUHJvRm9ybS9Qcm9Gb3JtSXRlbS50c3giXSwibmFtZXMiOlsiX2pzeFJ1bnRpbWUiLCJyZXF1aXJlIiwiX3JlYWN0IiwiX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQiLCJfR3JpZCIsIl9UeXBvZ3JhcGh5IiwiX2NsYXNzbmFtZXMiLCJfdXNlRm9ybUl0ZW0yIiwiX2NvbnN0YW50cyIsIl9jb250ZXh0IiwiX2NvbnN0YW50czIiLCJfdXRpbHMiLCJfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUiLCJlIiwiV2Vha01hcCIsInIiLCJ0IiwiX19lc01vZHVsZSIsIl90eXBlb2YiLCJoYXMiLCJnZXQiLCJuIiwiX19wcm90b19fIiwiYSIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwidSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImkiLCJzZXQiLCJFTVBUWV9URVhUX0RFRkFVTFQiLCJyZW5kZXJCeVZhbHVlVHlwZSIsInZhbHVlVHlwZSIsInZhbHVlIiwicHJvcHMiLCJ1bmRlZmluZWQiLCJyZXBlYXQiLCJTdHJpbmciLCJsZW5ndGgiLCJudW0iLCJOdW1iZXIiLCJpc05hTiIsInRvTG9jYWxlU3RyaW5nIiwidmFsdWVFbnVtIiwib3B0aW9ucyIsInZhbHVlRW51bVRvT3B0aW9ucyIsIm1hdGNoIiwiZmluZCIsIm8iLCJsYWJlbCIsIlJlYWRvbmx5Q2hpbGRCYXNlIiwiX3JlZiIsIm5hbWUiLCJjb252ZXJ0VmFsdWUiLCJyZWFkb25seVJlbmRlciIsImVtcHR5VGV4dCIsIl91c2VQcm9Gb3JtQ29udGV4dCIsInVzZVByb0Zvcm1Db250ZXh0IiwidmFsdWVzIiwicmF3Iiwibm9kZSIsIl9qc3giLCJjaGlsZHJlbiIsInJlbmRlcmVkIiwiZGlzcGxheU5hbWUiLCJSZWFkb25seUNoaWxkIiwibWVtbyIsIkNvbnZlcnRWYWx1ZUNoaWxkQmFzZSIsIl9yZWYyIiwiX3VzZVByb0Zvcm1Db250ZXh0MiIsImNvbnZlcnRlZCIsIlJlYWN0IiwiY2xvbmVFbGVtZW50IiwiQ29udmVydFZhbHVlQ2hpbGQiLCJQcm9Gb3JtSXRlbUJhc2UiLCJkZXNjcmlwdGlvbiIsInJ1bGVzIiwicmVxdWlyZWQiLCJmZWVkYmFjayIsInZhbGlkYXRlU3RhdHVzIiwiX3Byb3BzJGNsYXNzTmFtZSIsImNsYXNzTmFtZSIsIl9wcm9wcyRwcmVmaXhDbHMiLCJwcmVmaXhDbHMiLCJoaWRkZW4iLCJ0cmFuc2Zvcm0iLCJjb2xQcm9wcyIsIm1vZGVQcm9wIiwibW9kZSIsIl9wcm9wcyRlbXB0eVRleHQiLCJjdHgiLCJtZXJnZWRNb2RlIiwiaXNSZWFkb25seSIsIl91c2VGb3JtSXRlbSIsInVzZUZvcm1JdGVtIiwiZmllbGRFcnJvciIsImlzUmVxdWlyZWQiLCJzaXplIiwibGFiZWxBbGlnbiIsInJlcXVpcmVkTWFyayIsImluamVjdEZpZWxkIiwidXNlRWZmZWN0IiwicmVnaXN0ZXJUcmFuc2Zvcm0iLCJ1bnJlZ2lzdGVyVHJhbnNmb3JtIiwiY29udHJvbENoaWxkIiwiaW5qZWN0ZWQiLCJpc1ZhbGlkRWxlbWVudCIsImNsYXNzZXMiLCJjbGFzc25hbWVzIiwic2hlbGwiLCJfanN4cyIsImpvaW5DbHMiLCJjb25jYXQiLCJUeXBvZ3JhcGh5TGFiZWwiLCJhcyIsIkZPUk1fTEFCRUxfU0laRSIsImNvbG9yIiwiRk9STV9MQUJFTF9DT0xPUiIsIlR5cG9ncmFwaHlCb2R5IiwiRk9STV9ERVNDUklQVElPTl9TSVpFIiwiRk9STV9ERVNDUklQVElPTl9DT0xPUiIsIkZPUk1fRVJST1JfU0laRSIsIkZPUk1fRVJST1JfQ09MT1IiLCJGT1JNX0ZFRURCQUNLX1NJWkUiLCJGT1JNX0ZFRURCQUNLX0NPTE9SIiwiZ3JpZCIsIm1lcmdlZCIsImFzc2lnbiIsIl9tZXJnZWQkc3BhbiIsInNwYW4iLCJERUZBVUxUX0NPTF9TUEFOIiwic20iLCJtZCIs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QUFFLEVBQUVBLEVBQUU7TUFBQXZFLFFBQUEsRUFBRytDO0lBQUssQ0FBQSxDQUFPO0VBQy9EO0VBRUEsT0FBT0EsS0FBSztBQUNkLENBQUM7QUFFRG5DLGVBQWUsQ0FBQ1YsV0FBVyxHQUFHLGFBQWE7QUFFcEMsSUFBTXVFLFdBQVcsR0FBQUMsT0FBQSxDQUFBRCxXQUFBLGdCQUFHLElBQUFyRSxXQUFJLEVBQUNRLGVBQWUsQ0FBQztBQUFDLElBQUErRCxRQUFBLEdBQUFELE9BQUEsY0FFbENELFdBQVciLCJmaWxlIjoiY29tcG9uZW50cy9Qcm9Gb3JtL1Byb0Zvcm1JdGVtLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsganN4IGFzIF9qc3gsIGpzeHMgYXMgX2pzeHMgfSBmcm9tIFwicmVhY3QvanN4LXJ1bnRpbWVcIjtcbmltcG9ydCBSZWFjdCwgeyBtZW1vLCB1c2VFZmZlY3QgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBDb2wgfSBmcm9tICcuLi9HcmlkJztcbmltcG9ydCB7IFR5cG9ncmFwaHlCb2R5LCBUeXBvZ3JhcGh5TGFiZWwgfSBmcm9tICcuLi9UeXBvZ3JhcGh5JztcbmltcG9ydCB7IGRlZmF1bHQgYXMgY2xhc3NuYW1lcywgam9pbkNscyB9IGZyb20gJy4uLy4uL3V0aWxzL2NsYXNzbmFtZXMnO1xuaW1wb3J0IHsgdXNlRm9ybUl0ZW0gfSBmcm9tICcuL2NvcmUvdXNlRm9ybUl0ZW0nO1xuaW1wb3J0IHsgRk9STV9FUlJPUl9DT0xPUiwgRk9STV9FUlJPUl9TSVpFLCBGT1JNX0RFU0NSSVBUSU9OX0NPTE9SLCBGT1JNX0RFU0NSSVBUSU9OX1NJWkUsIEZPUk1fRkVFREJBQ0tfQ09MT1IsIEZPUk1fRkVFREJBQ0tfU0laRSwgRk9STV9MQUJFTF9DT0xPUiwgRk9STV9MQUJFTF9TSVpFLCB9IGZyb20gJy4vY29yZS9jb25zdGFudHMnO1xuaW1wb3J0IHsgdXNlUHJvRm9ybUNvbnRleHQgfSBmcm9tICcuL2NvbnRleHQnO1xuaW1wb3J0IHsgREVGQVVMVF9DT0xfU1BBTiB9IGZyb20gJy4vY29uc3RhbnRzJztcbmltcG9ydCB7IHZhbHVlRW51bVRvT3B0aW9ucyB9IGZyb20gJy4vdXRpbHMnO1xuY29uc3QgRU1QVFlfVEVYVF9ERUZBVUxUID0gJy0nO1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBSZWFkLW1vZGUgcmVuZGVyaW5nIGZvciBlYWNoIHN1cHBvcnRlZCB2YWx1ZVR5cGVcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuZnVuY3Rpb24gcmVuZGVyQnlWYWx1ZVR5cGUodmFsdWVUeXBlLCB2YWx1ZSwgcHJvcHMpIHtcbiAgICBpZiAodmFsdWUgPT09IG51bGwgfHwgdmFsdWUgPT09IHVuZGVmaW5lZCB8fCB2YWx1ZSA9PT0gJycpXG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIHN3aXRjaCAodmFsdWVUeXBlKSB7XG4gICAgICAgIGNhc2UgJ3Bhc3N3b3JkJzpcbiAgICAgICAgICAgIHJldHVybiAnKicucmVwZWF0KFN0cmluZyh2YWx1ZSkubGVuZ3RoKTtcbiAgICAgICAgY2FzZSAnc3dpdGNoJzpcbiAgICAgICAgICAgIHJldHVybiB2YWx1ZSA/ICdPbicgOiAnT2ZmJztcbiAgICAgICAgY2FzZSAnZGlnaXQnOiB7XG4gICAgICAgICAgICBjb25zdCBudW0gPSBOdW1iZXIodmFsdWUpO1xuICAgICAgICAgICAgaWYgKE51bWJlci5pc05hTihudW0pKVxuICAgICAgICAgICAgICAgIHJldHVybiBTdHJpbmcodmFsdWUpO1xuICAgICAgICAgICAgcmV0dXJuIG51bS50b0xvY2FsZVN0cmluZygpO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJ3NlbGVjdCc6XG4gICAgICAgIGNhc2UgJ3JhZGlvJzpcbiAgICAgICAgY2FzZSAndGFnJzoge1xuICAgICAgICAgICAgaWYgKCFwcm9wcy52YWx1ZUVudW0pXG4gICAgICAgICAgICAgICAgcmV0dXJuIFN0cmluZyh2YWx1ZSk7XG4gICAgICAgICAgICBjb25zdCBvcHRpb25zID0gdmFsdWVFbnVtVG9PcHRpb25zKHByb3BzLnZhbHVlRW51bSk7XG4gICAgICAgICAgICBjb25zdCBtYXRjaCA9IG9wdGlvbnMuZmluZCgobykgPT4gU3RyaW5nKG8udmFsdWUpID09PSBTdHJpbmcodmFsdWUpKTtcbiAgICAgICAgICAgIHJldHVybiBtYXRjaCA/IG1hdGNoLmxhYmVsIDogU3RyaW5nKHZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgICBjYXNlICdkYXRlJzpcbiAgICAgICAgY2FzZSAnZGF0ZVRpbWUnOlxuICAgICAgICBjYXNlICd0ZXh0JzpcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIHJldHVybiBTdHJpbmcodmFsdWUpO1xuICAgIH1cbn1cbmNvbnN0IFJlYWRvbmx5Q2hpbGRCYXNlID0gKHsgbmFtZSwgdmFsdWVUeXBlLCB2YWx1ZUVudW0sIGNvbnZlcnRWYWx1ZSwgcmVhZG9ubHlSZW5kZXIsIGVtcHR5VGV4dCwgfSkgPT4ge1xuICAgIGNvbnN0IHsgdmFsdWVzIH0gPSB1c2VQcm9Gb3JtQ29udGV4dCgpO1xuICAgIGNvbnN0IHJhdyA9IG5hbWUgPyB2YWx1ZXNbbmFtZV0gOiB1bmRlZmluZWQ7XG4gICAgY29uc3QgdmFsdWUgPSBjb252ZXJ0VmFsdWUgJiYgbmFtZSA/IGNvbnZlcnRWYWx1ZShyYXcsIG5hbWUpIDogcmF3O1xuICAgIGlmIChyZWFkb25seVJlbmRlcikge1xuICAgICAgICBjb25zdCBub2RlID0gcmVhZG9ubHlSZW5kZXIodmFsdWUsIHZhbHVlcyk7XG4gICAgICAgIHJldHVybiBfanN4KFwic3BhblwiLCB7IGNoaWxkcmVuOiBub2RlICE9PSBudWxsICYmIG5vZGUgIT09IHZvaWQgMCA/IG5vZGUgOiBlbXB0eVRleHQgfSk7XG4gICAgfVxuICAgIGlmICh2YWx1ZSA9PT0gbnVsbCB8fCB2YWx1ZSA9PT0gdW5kZWZpbmVkIHx8IHZhbHVlID09PSAnJykge1xuICAgICAgICByZXR1cm4gX2pzeChcInNwYW5cIiwgeyBjaGlsZHJlbjogZW1wdHlUZXh0IH0pO1xuICAgIH1cbiAgICBjb25zdCByZW5kZXJlZCA9IHJlbmRlckJ5VmFsdWVUeXBlKHZhbHVlVHlwZSwgdmFsdWUsIHsgdmFsdWVFbnVtIH0pO1xuICAgIHJldHVybiBfanN4KFwic3BhblwiLCB7IGNoaWxkcmVuOiByZW5kZXJlZCAhPT0gbnVsbCAmJiByZW5kZXJlZCAhPT0gdm9pZCAwID8gcmVuZGVyZWQgOiBlbXB0eVRleHQgfSk7XG59O1xuUmVhZG9ubHlDaGlsZEJhc2UuZGlzcGxheU5hbWUgPSAnUHJvRm9ybUl0ZW1SZWFkb25seSc7XG5jb25zdCBSZWFkb25seUNoaWxkID0gbWVtbyhSZWFkb25seUNoaWxkQmFzZSk7XG5jb25zdCBDb252ZXJ0VmFsdWVDaGlsZEJhc2UgPSAoeyBuYW1lLCBjb252ZXJ0VmFsdWUsIGNoaWxkcmVuIH0pID0+IHtcbiAgICBjb25zdCB7IHZhbHVlcyB9ID0gdXNlUHJvRm9ybUNvbnRleHQoKTtcbiAgICBjb25zdCByYXcgPSB2YWx1ZXNbbmFtZV07XG4gICAgY29uc3QgY29udmVydGVkID0gY29udmVydFZhbHVlID8gY29udmVydFZhbHVlKHJhdywgbmFtZSkgOiByYXc7XG4gICAgcmV0dXJuIFJlYWN0LmNsb25lRWxlbWVudChjaGlsZHJlbiwgeyB2YWx1ZTogY29udmVydGVkIH0pO1xufTtcbkNvbnZlcnRWYWx1ZUNoaWxkQmFzZS5kaXNwbGF5TmFtZSA9ICdQcm9Gb3JtSXRlbUNvbnZlcnRWYWx1ZSc7XG5jb25zdCBDb252ZXJ0VmFsdWVDaGlsZCA9IG1lbW8oQ29udmVydFZhbHVlQ2hpbGRCYXNlKTtcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gUHJvRm9ybUl0ZW1cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuY29uc3QgUHJvRm9ybUl0ZW1CYXNlID0gKHByb3BzKSA9PiB7XG4gICAgY29uc3QgeyBjaGlsZHJlbiwgbmFtZSwgbGFiZWwsIGRlc2NyaXB0aW9uLCBydWxlcywgcmVxdWlyZWQsIGZlZWRiYWNrLCB2YWxpZGF0ZVN0YXR1cywgY2xhc3NOYW1lID0gJycsIHByZWZpeENscyA9ICdmb3JtLWl0ZW0nLCBoaWRkZW4sIHRyYW5zZm9ybSwgY29udmVydFZhbHVlLCB2YWx1ZVR5cGUsIHJlYWRvbmx5UmVuZGVyLCBjb2xQcm9wcywgbW9kZTogbW9kZVByb3AsIGVtcHR5VGV4dCA9IEVNUFRZX1RFWFRfREVGQVVMVCwgdmFsdWVFbnVtLCB9ID0gcHJvcHM7XG4gICAgY29uc3QgY3R4ID0gdXNlUHJvRm9ybUNvbnRleHQoKTtcbiAgICBjb25zdCBtZXJnZWRNb2RlID0gbW9kZVByb3AgIT09IG51bGwgJiYgbW9kZVByb3AgIT09IHZvaWQgMCA/IG1vZGVQcm9wIDogY3R4Lm1vZGU7XG4gICAgY29uc3QgaXNSZWFkb25seSA9IG1lcmdlZE1vZGUgPT09ICdyZWFkJztcbiAgICBjb25zdCB7IGZpZWxkRXJyb3IsIGlzUmVxdWlyZWQsIHNpemUsIGxhYmVsQWxpZ24sIHJlcXVpcmVkTWFyaywgaW5qZWN0RmllbGQsIH0gPSB1c2VGb3JtSXRlbSh7IG5hbWUsIHJ1bGVzLCByZXF1aXJlZCwgdmFsaWRhdGVTdGF0dXMgfSk7XG4gICAgLy8gUmVnaXN0ZXIgLyB1bnJlZ2lzdGVyIHRyYW5zZm9ybVxuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIGlmICghbmFtZSB8fCAhdHJhbnNmb3JtKVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICBjdHgucmVnaXN0ZXJUcmFuc2Zvcm0obmFtZSwgdHJhbnNmb3JtKTtcbiAgICAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgICAgIGN0eC51bnJlZ2lzdGVyVHJhbnNmb3JtKG5hbWUpO1xuICAgICAgICB9O1xuICAgIH0sIFtuYW1lLCB0cmFuc2Zvcm0sIGN0eC5yZWdpc3RlclRyYW5zZm9ybSwgY3R4LnVucmVnaXN0ZXJUcmFuc2Zvcm1dKTtcbiAgICBpZiAoaGlkZGVuKVxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICBsZXQgY29udHJvbENoaWxkO1xuICAgIGlmIChpc1JlYWRvbmx5KSB7XG4gICAgICAgIGNvbnRyb2xDaGlsZCA9IChfanN4KFJlYWRvbmx5Q2hpbGQsIHsgbmFtZTogbmFtZSwgdmFsdWVUeXBlOiB2YWx1ZVR5cGUsIHZhbHVlRW51bTogdmFsdWVFbnVtLCBjb252ZXJ0VmFsdWU6IGNvbnZlcnRWYWx1ZSwgcmVhZG9ubHlSZW5kZXI6IHJlYWRvbmx5UmVuZGVyLCBlbXB0eVRleHQ6IGVtcHR5VGV4dCB9KSk7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgICAvLyBJbmplY3QgZmlyc3Qgc28gdGhlIHJlYWwgZmllbGQgcmVjZWl2ZXMgdmFsdWUvb25DaGFuZ2Uvb25CbHVyLFxuICAgICAgICAvLyB0aGVuIG9wdGlvbmFsbHkgd3JhcCBpbiBDb252ZXJ0VmFsdWVDaGlsZCB0byBvdmVycmlkZSB0aGUgZGlzcGxheWVkIHZhbHVlLlxuICAgICAgICBjb25zdCBpbmplY3RlZCA9IGluamVjdEZpZWxkKGNoaWxkcmVuKTtcbiAgICAgICAgaWYgKGNvbnZlcnRWYWx1ZSAmJiBuYW1lICYmIFJlYWN0LmlzVmFsaWRFbGVtZW50KGluamVjdGVkKSkge1xuICAgICAgICAgICAgY29udHJvbENoaWxkID0gKF9qc3goQ29udmVydFZhbHVlQ2hpbGQsIHsgbmFtZTogbmFtZSwgY29udmVydFZhbHVlOiBjb252ZXJ0VmFsdWUsIGNoaWxkcmVuOiBpbmplY3RlZCB9KSk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBjb250cm9sQ2hpbGQgPSBpbmplY3RlZDtcbiAgICAgICAgfVxuICAgIH1cbiAgICBjb25zdCBjbGFzc2VzID0gY2xhc3NuYW1lcyhwcmVmaXhDbHMpO1xuICAgIGNvbnN0IHNoZWxsID0gKF9qc3hzKFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKHVuZGVmaW5lZCwgam9pbkNscyhzaXplID09PSAnc21hbGwnICYmIGNsYXNzZXMoJ3NtYWxsJyksIGNsYXNzTmFtZSkpLCBjaGlsZHJlbjogW2xhYmVsICYmIChfanN4cyhcImRpdlwiLCB7IGNsYXNzTmFtZTogY2xhc3NlcygnbGFiZWwtd3JhcHBlcicsIGpvaW5DbHMoY2xhc3NlcygnbGFiZWwtd3JhcHBlci12ZXJ0aWNhbCcpLCBsYWJlbEFsaWduICYmIGNsYXNzZXMoYGxhYmVsLXdyYXBwZXItJHtsYWJlbEFsaWdufWApKSksIGNoaWxkcmVuOiBbX2pzeChUeXBvZ3JhcGh5TGFiZWwsIHsgYXM6IFwibGFiZWxcIiwgc2l6ZTogRk9STV9MQUJFTF9TSVpFLCBjb2xvcjogRk9STV9MQUJFTF9DT0xPUiwgY2xhc3NOYW1lOiBjbGFzc2VzKCdsYWJlbCcpLCBjaGlsZHJlbjogbGFiZWwgfSksIGRlc2NyaXB0aW9uICYmIChfanN4KFR5cG9ncmFwaHlCb2R5LCB7IGFzOiBcImRpdlwiLCBjbGFzc05hbWU6IGNsYXNzZXMoJ2Rlc2NyaXB0aW9uJyksIHNpemU6IEZPUk1fREVTQ1JJUFRJT05fU0laRSwgY29sb3I6IEZPUk1fREVTQ1JJUFRJT05fQ09MT1IsIGNoaWxkcmVuOiBkZXNjcmlwdGlvbiB9KSldIH0pKSwgX2pzeHMoXCJkaXZcIiwgeyBjbGFzc05hbWU6IGNsYXNzZXMoJ2NvbnRyb2wnKSwgY2hpbGRyZW46IFtjb250cm9sQ2hpbGQsIGZpZWxkRXJyb3IgJiYgKF9qc3goVHlwb2dyYXBoeUJvZHksIHsgYXM6IFwiZGl2XCIsIGNsYXNzTmFtZTogY2xhc3NlcygnZXJyb3InKSwgc2l6ZTogRk9STV9FUlJPUl9TSVpFLCBjb2xvcjogRk9STV9FUlJPUl9DT0xPUiwgY2hpbGRyZW46IGZpZWxkRXJyb3IgfSkpLCAhZmllbGRFcnJvciAmJiBmZWVkYmFjayAmJiAoX2pzeChUeXBvZ3JhcGh5Qm9keSwgeyBhczogXCJkaXZcIiwgY2xhc3NOYW1lOiBjbGFzc2VzKCdmZWVkYmFjaycpLCBzaXplOiBGT1JNX0ZFRURCQUNLX1NJWkUsIGNvbG9yOiBGT1JNX0ZFRURCQUNLX0NPTE9SLCBjaGlsZHJlbjogZmVlZGJhY2sgfSkpXSB9KV0gfSkpO1xuICAgIGlmIChjdHguZ3JpZCkge1xuICAgICAgICBjb25zdCBtZXJnZWQgPSBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIGN0eC5jb2xQcm9wcyksIGNvbFByb3BzKTtcbiAgICAgICAgY29uc3QgeyBzcGFuID0gREVGQVVMVF9DT0xfU1BBTiwgc20sIG1kLCBsZyB9ID0gbWVyZ2VkO1xuICAgICAgICByZXR1cm4gX2pzeChDb2wsIHsgc3Bhbjogc3Bhbiwgc206IHNtLCBtZDogbWQsIGxnOiBsZywgY2hpbGRyZW46IHNoZWxsIH0pO1xuICAgIH1cbiAgICByZXR1cm4gc2hlbGw7XG59O1xuUHJvRm9ybUl0ZW1CYXNlLmRpc3BsYXlOYW1lID0gJ1Byb0Zvcm1JdGVtJztcbmV4cG9ydCBjb25zdCBQcm9Gb3JtSXRlbSA9IG1lbW8oUHJvRm9ybUl0ZW1CYXNlKTtcbmV4cG9ydCBkZWZhdWx0IFByb0Zvcm1JdGVtOyIsbnVsbF0sInNvdXJjZVJvb3QiOiIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMifQ==
267
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvUHJvRm9ybS9Qcm9Gb3JtSXRlbS5qcyIsImNvbXBvbmVudHMvc3JjL2NvbXBvbmVudHMvUHJvRm9ybS9Qcm9Gb3JtSXRlbS50c3giXSwibmFtZXMiOlsiX2pzeFJ1bnRpbWUiLCJyZXF1aXJlIiwiX3JlYWN0IiwiX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQiLCJfR3JpZCIsIl9UeXBvZ3JhcGh5IiwiX2NsYXNzbmFtZXMiLCJfdXNlRm9ybUl0ZW0yIiwiX2NvbnN0YW50cyIsIl9jb250ZXh0IiwiX2NvbnN0YW50czIiLCJfdXRpbHMiLCJfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUiLCJlIiwiV2Vha01hcCIsInIiLCJ0IiwiX19lc01vZHVsZSIsIl90eXBlb2YiLCJoYXMiLCJnZXQiLCJuIiwiX19wcm90b19fIiwiYSIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwidSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImkiLCJzZXQiLCJFTVBUWV9URVhUX0RFRkFVTFQiLCJyZW5kZXJCeVZhbHVlVHlwZSIsInZhbHVlVHlwZSIsInZhbHVlIiwicHJvcHMiLCJ1bmRlZmluZWQiLCJyZXBlYXQiLCJTdHJpbmciLCJsZW5ndGgiLCJudW0iLCJOdW1iZXIiLCJpc05hTiIsInRvTG9jYWxlU3RyaW5nIiwidmFsdWVFbnVtIiwib3B0aW9ucyIsInZhbHVlRW51bVRvT3B0aW9ucyIsIm1hdGNoIiwiZmluZCIsIm8iLCJsYWJlbCIsIkRhdGUiLCJmb3JtYXREYXRlQnlQYXR0ZXJuIiwiREFURV9GT1JNQVQiLCJEQVRFX1RJTUVfRk9STUFUIiwiUmVhZG9ubHlDaGlsZEJhc2UiLCJfcmVmIiwibmFtZSIsImNvbnZlcnRWYWx1ZSIsInJlYWRvbmx5UmVuZGVyIiwiZW1wdHlUZXh0IiwiX3VzZVByb0Zvcm1Db250ZXh0IiwidXNlUHJvRm9ybUNvbnRleHQiLCJ2YWx1ZXMiLCJyYXciLCJub2RlIiwiX2pzeCIsImNoaWxkcmVuIiwicmVuZGVyZWQiLCJkaXNwbGF5TmFtZSIsIlJlYWRvbmx5Q2hpbGQiLCJtZW1vIiwiQ29udmVydFZhbHVlQ2hpbGRCYXNlIiwiX3JlZjIiLCJfcmVmMiR2YWx1ZVByb3BOYW1lIiwidmFsdWVQcm9wTmFtZSIsIl91c2VQcm9Gb3JtQ29udGV4dDIiLCJjb252ZXJ0ZWQiLCJSZWFjdCIsImNsb25lRWxlbWVudCIsIl9kZWZpbmVQcm9wZXJ0eTIiLCJDb252ZXJ0VmFsdWVDaGlsZCIsIlByb0Zvcm1JdGVtQmFzZSIsImN0eCIsIm1lcmdlZFByb3BzIiwiZm9ybUl0ZW1Qcm9wcyIsIm1lcmdlZCIsImFzc2lnbiIsIl9pIiwiX09iamVjdCRrZXlzIiwia2V5cyIsImtleSIsIl9tZXJnZWRQcm9wcyIsImRlc2NyaXB0aW9uIiwicnVsZXMiLCJyZXF1aXJlZCIsImZlZWRiYWNrIiwidmFsaWRhdGVTdGF0dXMiLCJfbWVyZ2VkUHJvcHMkY2xhc3NOYW0iLCJjbGFzc05hbWUiLCJfbWVyZ2VkUHJvcHMkcHJlZml4Q2wiLCJwcmVmaXhDbHMiLCJoaWRkZW4iLCJ0cmFuc2Zvcm0iLCJjb2xQcm9wcyIsIm1vZGVQcm9wIiwibW9kZSIsIl9tZXJnZWRQcm9wcyRlbXB0eVRleCIsInZhbGlkYXRlRGVib3VuY2UiLCJtZXJnZWRNb2RlIiwiaXNSZWFkb25seSIsIl91c2VGb3JtSXRlbSIsInVzZUZvcm1JdGVtIiwiZmllbGRFcnJvciIsImZpZWxkV2FybmluZyIsImlzUmVxdWlyZWQiLCJzaXplIiwibGFiZWxBbGlnbiIsInJlcXVpcmVkTWFyayIsImluamVjdEZpZWxkIiwidXNlRWZmZWN0IiwicmVnaXN0ZXJUcmFuc2Zvcm0iLCJ1bnJlZ2lzdGVyVHJhbnNmb3JtIiwicmVnaXN0ZXJWYWx1ZVR5cGUiLCJ1bnJlZ2lzdGVyVmFsdWVUeXBlIiwiY29udHJvbENoaWxkIiwiaW5qZWN0ZWQiLCJpc1ZhbGlkRWxlbWVudCIsImNsYXNzZXMiLCJjbGFzc25hbWVzIiwic2hlbGwiLCJfanN4cyIsImpvaW5DbHMiLCJjb25jYXQiLCJUeXBvZ3JhcGh5TGFiZWwiLCJhcyIsIkZPUk1fTEFCRUxfU0laRSIsImNvbG9yIiwiRk9STV9MQUJFTF9DT0xPUiIsIlR5cG9ncmFwaHlCb2R5IiwiRk9STV9ERVNDUklQVElPTl9TSVpFIiwiRk9STV9ERVNDUklQVElPTl9DT0xPUiIsIkZPUk1fRVJST1JfU0laRSIsIkZPUk1fRVJST1JfQ09MT1IiLCJGT1JNX1dBUk5JTkdfU0laRSIsIkZPUk1fV0FSTklOR19DT0xPUiIsIkZPUk1fRkVFREJBQ0tfU0laRSIsIkZPUk1fRkVFREJBQ0tfQ09MT1IiLCJncmlkIiwiX21lcmdlZCRzcGFuIiwic3BhbiIsIkRFRkFVTFRfQ09MX1NQQU4iLCJzbSIsIm1kIiwibGciLCJDb2wiLCJQcm9Gb3JtSXRlbSIsImV4cG9ydHMiLCJfZGVmYXVsdCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUEsSUFBQUEsV0FBQSxHQUFBQyxPQUFBO0FDQUEsSUFBQUMsTUFBQSxHQUFBQyx1QkFBQSxDQUFBRixPQUFBO0FBRUEsSUFBQUcsS0FBQSxHQUFBSCxPQUFBO0FBQ0EsSUFBQUksV0FBQSxHQUFBSixPQUFBO0FBQ0EsSUFBQUssV0FBQSxHQUFBSCx1QkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQU0sYUFBQSxHQUFBTixPQUFBO0FBQ0EsSUFBQU8sVUFBQSxHQUFBUCxPQUFBO0FBWUEsSUFBQVEsUUFBQSxHQUFBUixPQUFBO0FBQ0EsSUFBQVMsV0FBQSxHQUFBVCxPQUFBO0FBQ0EsSUFBQVUsTUFBQSxHQUFBVixPQUFBO0FBQWlHLFNBQUFXLHlCQUFBQyxDQUFBLDZCQUFBQyxPQUFBLG1CQUFBQyxDQUFBLE9BQUFELE9BQUEsSUFBQUUsQ0FBQSxPQUFBRixPQUFBLFlBQUFGLHdCQUFBLFlBQUFBLHlCQUFBQyxDQUFBLFdBQUFBLENBQUEsR0FBQUcsQ0FBQSxHQUFBRCxDQUFBLEtBQUFGLENBQUE7QUFBQSxTQUFBVix3QkFBQVUsQ0FBQSxFQUFBRSxDQUFBLFNBQUFBLENBQUEsSUFBQUYsQ0FB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QSxFQUFFO01BQUVDLEVBQUUsRUFBRUEsRUFBRTtNQUFBdkYsUUFBQSxFQUFHK0Q7SUFBSyxDQUFBLENBQU87RUFDL0Q7RUFFQSxPQUFPQSxLQUFLO0FBQ2QsQ0FBQztBQUVEaEQsZUFBZSxDQUFDYixXQUFXLEdBQUcsYUFBYTtBQUVwQyxJQUFNdUYsV0FBVyxHQUFBQyxPQUFBLENBQUFELFdBQUEsZ0JBQUcsSUFBQXJGLFdBQUksRUFBQ1csZUFBZSxDQUFDO0FBQUMsSUFBQTRFLFFBQUEsR0FBQUQsT0FBQSxjQUVsQ0QsV0FBVyIsImZpbGUiOiJjb21wb25lbnRzL1Byb0Zvcm0vUHJvRm9ybUl0ZW0uanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBqc3ggYXMgX2pzeCwganN4cyBhcyBfanN4cyB9IGZyb20gXCJyZWFjdC9qc3gtcnVudGltZVwiO1xuaW1wb3J0IFJlYWN0LCB7IG1lbW8sIHVzZUVmZmVjdCB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IENvbCB9IGZyb20gJy4uL0dyaWQnO1xuaW1wb3J0IHsgVHlwb2dyYXBoeUJvZHksIFR5cG9ncmFwaHlMYWJlbCB9IGZyb20gJy4uL1R5cG9ncmFwaHknO1xuaW1wb3J0IHsgZGVmYXVsdCBhcyBjbGFzc25hbWVzLCBqb2luQ2xzIH0gZnJvbSAnLi4vLi4vdXRpbHMvY2xhc3NuYW1lcyc7XG5pbXBvcnQgeyB1c2VGb3JtSXRlbSB9IGZyb20gJy4vY29yZS91c2VGb3JtSXRlbSc7XG5pbXBvcnQgeyBGT1JNX0VSUk9SX0NPTE9SLCBGT1JNX0VSUk9SX1NJWkUsIEZPUk1fV0FSTklOR19DT0xPUiwgRk9STV9XQVJOSU5HX1NJWkUsIEZPUk1fREVTQ1JJUFRJT05fQ09MT1IsIEZPUk1fREVTQ1JJUFRJT05fU0laRSwgRk9STV9GRUVEQkFDS19DT0xPUiwgRk9STV9GRUVEQkFDS19TSVpFLCBGT1JNX0xBQkVMX0NPTE9SLCBGT1JNX0xBQkVMX1NJWkUsIH0gZnJvbSAnLi9jb3JlL2NvbnN0YW50cyc7XG5pbXBvcnQgeyB1c2VQcm9Gb3JtQ29udGV4dCB9IGZyb20gJy4vY29udGV4dCc7XG5pbXBvcnQgeyBERUZBVUxUX0NPTF9TUEFOIH0gZnJvbSAnLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgdmFsdWVFbnVtVG9PcHRpb25zLCBmb3JtYXREYXRlQnlQYXR0ZXJuLCBEQVRFX0ZPUk1BVCwgREFURV9USU1FX0ZPUk1BVCB9IGZyb20gJy4vdXRpbHMnO1xuY29uc3QgRU1QVFlfVEVYVF9ERUZBVUxUID0gJy0nO1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBSZWFkLW1vZGUgcmVuZGVyaW5nIGZvciBlYWNoIHN1cHBvcnRlZCB2YWx1ZVR5cGVcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuZnVuY3Rpb24gcmVuZGVyQnlWYWx1ZVR5cGUodmFsdWVUeXBlLCB2YWx1ZSwgcHJvcHMpIHtcbiAgICBpZiAodmFsdWUgPT09IG51bGwgfHwgdmFsdWUgPT09IHVuZGVmaW5lZCB8fCB2YWx1ZSA9PT0gJycpXG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIHN3aXRjaCAodmFsdWVUeXBlKSB7XG4gICAgICAgIGNhc2UgJ3Bhc3N3b3JkJzpcbiAgICAgICAgICAgIHJldHVybiAnKicucmVwZWF0KFN0cmluZyh2YWx1ZSkubGVuZ3RoKTtcbiAgICAgICAgY2FzZSAnc3dpdGNoJzpcbiAgICAgICAgICAgIHJldHVybiB2YWx1ZSA/ICdPbicgOiAnT2ZmJztcbiAgICAgICAgY2FzZSAnZGlnaXQnOiB7XG4gICAgICAgICAgICBjb25zdCBudW0gPSBOdW1iZXIodmFsdWUpO1xuICAgICAgICAgICAgaWYgKE51bWJlci5pc05hTihudW0pKVxuICAgICAgICAgICAgICAgIHJldHVybiBTdHJpbmcodmFsdWUpO1xuICAgICAgICAgICAgcmV0dXJuIG51bS50b0xvY2FsZVN0cmluZygpO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJ3NlbGVjdCc6XG4gICAgICAgIGNhc2UgJ3JhZGlvJzpcbiAgICAgICAgY2FzZSAndGFnJzoge1xuICAgICAgICAgICAgaWYgKCFwcm9wcy52YWx1ZUVudW0pXG4gICAgICAgICAgICAgICAgcmV0dXJuIFN0cmluZyh2YWx1ZSk7XG4gICAgICAgICAgICBjb25zdCBvcHRpb25zID0gdmFsdWVFbnVtVG9PcHRpb25zKHByb3BzLnZhbHVlRW51bSk7XG4gICAgICAgICAgICBjb25zdCBtYXRjaCA9IG9wdGlvbnMuZmluZCgobykgPT4gU3RyaW5nKG8udmFsdWUpID09PSBTdHJpbmcodmFsdWUpKTtcbiAgICAgICAgICAgIHJldHVybiBtYXRjaCA/IG1hdGNoLmxhYmVsIDogU3RyaW5nKHZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgICBjYXNlICdkYXRlJzpcbiAgICAgICAgICAgIHJldHVybiB2YWx1ZSBpbnN0YW5jZW9mIERhdGUgPyBmb3JtYXREYXRlQnlQYXR0ZXJuKHZhbHVlLCBEQVRFX0ZPUk1BVCkgOiBTdHJpbmcodmFsdWUpO1xuICAgICAgICBjYXNlICdkYXRlVGltZSc6XG4gICAgICAgICAgICByZXR1cm4gdmFsdWUgaW5zdGFuY2VvZiBEYXRlID8gZm9ybWF0RGF0ZUJ5UGF0dGVybih2YWx1ZSwgREFURV9USU1FX0ZPUk1BVCkgOiBTdHJpbmcodmFsdWUpO1xuICAgICAgICBjYXNlICd0ZXh0JzpcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIHJldHVybiBTdHJpbmcodmFsdWUpO1xuICAgIH1cbn1cbmNvbnN0IFJlYWRvbmx5Q2hpbGRCYXNlID0gKHsgbmFtZSwgdmFsdWVUeXBlLCB2YWx1ZUVudW0sIGNvbnZlcnRWYWx1ZSwgcmVhZG9ubHlSZW5kZXIsIGVtcHR5VGV4dCwgfSkgPT4ge1xuICAgIGNvbnN0IHsgdmFsdWVzIH0gPSB1c2VQcm9Gb3JtQ29udGV4dCgpO1xuICAgIGNvbnN0IHJhdyA9IG5hbWUgPyB2YWx1ZXNbbmFtZV0gOiB1bmRlZmluZWQ7XG4gICAgY29uc3QgdmFsdWUgPSBjb252ZXJ0VmFsdWUgJiYgbmFtZSA/IGNvbnZlcnRWYWx1ZShyYXcsIG5hbWUpIDogcmF3O1xuICAgIGlmIChyZWFkb25seVJlbmRlcikge1xuICAgICAgICBjb25zdCBub2RlID0gcmVhZG9ubHlSZW5kZXIodmFsdWUsIHZhbHVlcyk7XG4gICAgICAgIHJldHVybiBfanN4KFwic3BhblwiLCB7IGNoaWxkcmVuOiBub2RlICE9PSBudWxsICYmIG5vZGUgIT09IHZvaWQgMCA/IG5vZGUgOiBlbXB0eVRleHQgfSk7XG4gICAgfVxuICAgIGlmICh2YWx1ZSA9PT0gbnVsbCB8fCB2YWx1ZSA9PT0gdW5kZWZpbmVkIHx8IHZhbHVlID09PSAnJykge1xuICAgICAgICByZXR1cm4gX2pzeChcInNwYW5cIiwgeyBjaGlsZHJlbjogZW1wdHlUZXh0IH0pO1xuICAgIH1cbiAgICBjb25zdCByZW5kZXJlZCA9IHJlbmRlckJ5VmFsdWVUeXBlKHZhbHVlVHlwZSwgdmFsdWUsIHsgdmFsdWVFbnVtIH0pO1xuICAgIHJldHVybiBfanN4KFwic3BhblwiLCB7IGNoaWxkcmVuOiByZW5kZXJlZCAhPT0gbnVsbCAmJiByZW5kZXJlZCAhPT0gdm9pZCAwID8gcmVuZGVyZWQgOiBlbXB0eVRleHQgfSk7XG59O1xuUmVhZG9ubHlDaGlsZEJhc2UuZGlzcGxheU5hbWUgPSAnUHJvRm9ybUl0ZW1SZWFkb25seSc7XG5jb25zdCBSZWFkb25seUNoaWxkID0gbWVtbyhSZWFkb25seUNoaWxkQmFzZSk7XG5jb25zdCBDb252ZXJ0VmFsdWVDaGlsZEJhc2UgPSAoeyBuYW1lLCBjb252ZXJ0VmFsdWUsIHZhbHVlUHJvcE5hbWUgPSAndmFsdWUnLCBjaGlsZHJlbiwgfSkgPT4ge1xuICAgIGNvbnN0IHsgdmFsdWVzIH0gPSB1c2VQcm9Gb3JtQ29udGV4dCgpO1xuICAgIGNvbnN0IHJhdyA9IHZhbHVlc1tuYW1lXTtcbiAgICBjb25zdCBjb252ZXJ0ZWQgPSBjb252ZXJ0VmFsdWUgPyBjb252ZXJ0VmFsdWUocmF3LCBuYW1lKSA6IHJhdztcbiAgICByZXR1cm4gUmVhY3QuY2xvbmVFbGVtZW50KGNoaWxkcmVuLCB7IFt2YWx1ZVByb3BOYW1lXTogY29udmVydGVkIH0pO1xufTtcbkNvbnZlcnRWYWx1ZUNoaWxkQmFzZS5kaXNwbGF5TmFtZSA9ICdQcm9Gb3JtSXRlbUNvbnZlcnRWYWx1ZSc7XG5jb25zdCBDb252ZXJ0VmFsdWVDaGlsZCA9IG1lbW8oQ29udmVydFZhbHVlQ2hpbGRCYXNlKTtcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gUHJvRm9ybUl0ZW1cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuY29uc3QgUHJvRm9ybUl0ZW1CYXNlID0gKHByb3BzKSA9PiB7XG4gICAgY29uc3QgY3R4ID0gdXNlUHJvRm9ybUNvbnRleHQoKTtcbiAgICAvLyBGb3JtLWxldmVsIGBmb3JtSXRlbVByb3BzYCBhY3QgYXMgREVGQVVMVFM7IHByb3BzIGV4cGxpY2l0bHkgc2V0IG9uIHRoZVxuICAgIC8vIGl0ZW0gd2luLiBKU1ggZnJlcXVlbnRseSBwYXNzZXMgYHVuZGVmaW5lZGAgZm9yIHVuc2V0IHByb3BzIChlLmcuIHRoZVxuICAgIC8vIGNyZWF0ZVByb0Zvcm1GaWVsZCBwYXNzLXRocm91Z2gpLCBzbyBvbmx5IGRlZmluZWQgdmFsdWVzIG1heSBvdmVycmlkZS5cbiAgICBsZXQgbWVyZ2VkUHJvcHMgPSBwcm9wcztcbiAgICBpZiAoY3R4LmZvcm1JdGVtUHJvcHMpIHtcbiAgICAgICAgY29uc3QgbWVyZ2VkID0gT2JqZWN0LmFzc2lnbih7fSwgY3R4LmZvcm1JdGVtUHJvcHMpO1xuICAgICAgICBmb3IgKGNvbnN0IGtleSBvZiBPYmplY3Qua2V5cyhwcm9wcykpIHtcbiAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gcHJvcHNba2V5XTtcbiAgICAgICAgICAgIGlmICh2YWx1ZSAhPT0gdW5kZWZpbmVkKVxuICAgICAgICAgICAgICAgIG1lcmdlZFtrZXldID0gdmFsdWU7XG4gICAgICAgIH1cbiAgICAgICAgbWVyZ2VkUHJvcHMgPSBtZXJnZWQ7XG4gICAgfVxuICAgIGNvbnN0IHsgY2hpbGRyZW4sIG5hbWUsIGxhYmVsLCBkZXNjcmlwdGlvbiwgcnVsZXMsIHJlcXVpcmVkLCBmZWVkYmFjaywgdmFsaWRhdGVTdGF0dXMsIGNsYXNzTmFtZSA9ICcnLCBwcmVmaXhDbHMgPSAnZm9ybS1pdGVtJywgaGlkZGVuLCB0cmFuc2Zvcm0sIGNvbnZlcnRWYWx1ZSwgdmFsdWVUeXBlLCByZWFkb25seVJlbmRlciwgY29sUHJvcHMsIG1vZGU6IG1vZGVQcm9wLCBlbXB0eVRleHQgPSBFTVBUWV9URVhUX0RFRkFVTFQsIHZhbHVlRW51bSwgdmFsdWVQcm9wTmFtZSwgdmFsaWRhdGVEZWJvdW5jZSwgfSA9IG1lcmdlZFByb3BzO1xuICAgIGNvbnN0IG1lcmdlZE1vZGUgPSBtb2RlUHJvcCAhPT0gbnVsbCAmJiBtb2RlUHJvcCAhPT0gdm9pZCAwID8gbW9kZVByb3AgOiBjdHgubW9kZTtcbiAgICBjb25zdCBpc1JlYWRvbmx5ID0gbWVyZ2VkTW9kZSA9PT0gJ3JlYWQnO1xuICAgIGNvbnN0IHsgZmllbGRFcnJvciwgZmllbGRXYXJuaW5nLCBpc1JlcXVpcmVkLCBzaXplLCBsYWJlbEFsaWduLCByZXF1aXJlZE1hcmssIGluamVjdEZpZWxkLCB9ID0gdXNlRm9ybUl0ZW0oeyBuYW1lLCBydWxlcywgcmVxdWlyZWQsIHZhbGlkYXRlU3RhdHVzLCB2YWx1ZVByb3BOYW1lLCB2YWxpZGF0ZURlYm91bmNlIH0pO1xuICAgIC8vIFJlZ2lzdGVyIC8gdW5yZWdpc3RlciB0cmFuc2Zvcm1cbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICBpZiAoIW5hbWUgfHwgIXRyYW5zZm9ybSlcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgY3R4LnJlZ2lzdGVyVHJhbnNmb3JtKG5hbWUsIHRyYW5zZm9ybSk7XG4gICAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgICAgICBjdHgudW5yZWdpc3RlclRyYW5zZm9ybShuYW1lKTtcbiAgICAgICAgfTtcbiAgICB9LCBbbmFtZSwgdHJhbnNmb3JtLCBjdHgucmVnaXN0ZXJUcmFuc2Zvcm0sIGN0eC51bnJlZ2lzdGVyVHJhbnNmb3JtXSk7XG4gICAgLy8gUmVnaXN0ZXIgLyB1bnJlZ2lzdGVyIHZhbHVlVHlwZSAoZHJpdmVzIHZhbHVlVHlwZS1hd2FyZSBkYXRlRm9ybWF0dGVyKVxuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIGlmICghbmFtZSB8fCAhdmFsdWVUeXBlKVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICBjdHgucmVnaXN0ZXJWYWx1ZVR5cGUobmFtZSwgdmFsdWVUeXBlKTtcbiAgICAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgICAgIGN0eC51bnJlZ2lzdGVyVmFsdWVUeXBlKG5hbWUpO1xuICAgICAgICB9O1xuICAgIH0sIFtuYW1lLCB2YWx1ZVR5cGUsIGN0eC5yZWdpc3RlclZhbHVlVHlwZSwgY3R4LnVucmVnaXN0ZXJWYWx1ZVR5cGVdKTtcbiAgICBpZiAoaGlkZGVuKVxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICBsZXQgY29udHJvbENoaWxkO1xuICAgIGlmIChpc1JlYWRvbmx5KSB7XG4gICAgICAgIGNvbnRyb2xDaGlsZCA9IChfanN4KFJlYWRvbmx5Q2hpbGQsIHsgbmFtZTogbmFtZSwgdmFsdWVUeXBlOiB2YWx1ZVR5cGUsIHZhbHVlRW51bTogdmFsdWVFbnVtLCBjb252ZXJ0VmFsdWU6IGNvbnZlcnRWYWx1ZSwgcmVhZG9ubHlSZW5kZXI6IHJlYWRvbmx5UmVuZGVyLCBlbXB0eVRleHQ6IGVtcHR5VGV4dCB9KSk7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgICAvLyBJbmplY3QgZmlyc3Qgc28gdGhlIHJlYWwgZmllbGQgcmVjZWl2ZXMgdmFsdWUvb25DaGFuZ2Uvb25CbHVyLFxuICAgICAgICAvLyB0aGVuIG9wdGlvbmFsbHkgd3JhcCBpbiBDb252ZXJ0VmFsdWVDaGlsZCB0byBvdmVycmlkZSB0aGUgZGlzcGxheWVkIHZhbHVlLlxuICAgICAgICBjb25zdCBpbmplY3RlZCA9IGluamVjdEZpZWxkKGNoaWxkcmVuKTtcbiAgICAgICAgaWYgKGNvbnZlcnRWYWx1ZSAmJiBuYW1lICYmIFJlYWN0LmlzVmFsaWRFbGVtZW50KGluamVjdGVkKSkge1xuICAgICAgICAgICAgY29udHJvbENoaWxkID0gKF9qc3goQ29udmVydFZhbHVlQ2hpbGQsIHsgbmFtZTogbmFtZSwgY29udmVydFZhbHVlOiBjb252ZXJ0VmFsdWUsIHZhbHVlUHJvcE5hbWU6IHZhbHVlUHJvcE5hbWUsIGNoaWxkcmVuOiBpbmplY3RlZCB9KSk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBjb250cm9sQ2hpbGQgPSBpbmplY3RlZDtcbiAgICAgICAgfVxuICAgIH1cbiAgICBjb25zdCBjbGFzc2VzID0gY2xhc3NuYW1lcyhwcmVmaXhDbHMpO1xuICAgIGNvbnN0IHNoZWxsID0gKF9qc3hzKFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKHVuZGVmaW5lZCwgam9pbkNscyhjbGFzc2VzKHNpemUpLCBjbGFzc05hbWUpKSwgY2hpbGRyZW46IFtsYWJlbCAmJiAoX2pzeHMoXCJkaXZcIiwgeyBjbGFzc05hbWU6IGNsYXNzZXMoJ2xhYmVsLXdyYXBwZXInLCBqb2luQ2xzKGNsYXNzZXMoJ2xhYmVsLXdyYXBwZXItdmVydGljYWwnKSwgbGFiZWxBbGlnbiAmJiBjbGFzc2VzKGBsYWJlbC13cmFwcGVyLSR7bGFiZWxBbGlnbn1gKSkpLCBjaGlsZHJlbjogW19qc3goVHlwb2dyYXBoeUxhYmVsLCB7IGFzOiBcImxhYmVsXCIsIHNpemU6IEZPUk1fTEFCRUxfU0laRSwgY29sb3I6IEZPUk1fTEFCRUxfQ09MT1IsIGNsYXNzTmFtZTogY2xhc3NlcygnbGFiZWwnKSwgY2hpbGRyZW46IGxhYmVsIH0pLCBkZXNjcmlwdGlvbiAmJiAoX2pzeChUeXBvZ3JhcGh5Qm9keSwgeyBhczogXCJkaXZcIiwgY2xhc3NOYW1lOiBjbGFzc2VzKCdkZXNjcmlwdGlvbicpLCBzaXplOiBGT1JNX0RFU0NSSVBUSU9OX1NJWkUsIGNvbG9yOiBGT1JNX0RFU0NSSVBUSU9OX0NPTE9SLCBjaGlsZHJlbjogZGVzY3JpcHRpb24gfSkpXSB9KSksIF9qc3hzKFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCdjb250cm9sJyksIGNoaWxkcmVuOiBbY29udHJvbENoaWxkLCBmaWVsZEVycm9yICYmIChfanN4KFR5cG9ncmFwaHlCb2R5LCB7IGFzOiBcImRpdlwiLCBjbGFzc05hbWU6IGNsYXNzZXMoJ2Vycm9yJyksIHNpemU6IEZPUk1fRVJST1JfU0laRSwgY29sb3I6IEZPUk1fRVJST1JfQ09MT1IsIGNoaWxkcmVuOiBmaWVsZEVycm9yIH0pKSwgIWZpZWxkRXJyb3IgJiYgZmllbGRXYXJuaW5nICYmIChfanN4KFR5cG9ncmFwaHlCb2R5LCB7IGFzOiBcImRpdlwiLCBjbGFzc05hbWU6IGNsYXNzZXMoJ3dhcm5pbmcnKSwgc2l6ZTogRk9STV9XQVJOSU5HX1NJWkUsIGNvbG9yOiBGT1JNX1dBUk5JTkdfQ09MT1IsIGNoaWxkcmVuOiBmaWVsZFdhcm5pbmcgfSkpLCAhZmllbGRFcnJvciAmJiAhZmllbGRXYXJuaW5nICYmIGZlZWRiYWNrICYmIChfanN4KFR5cG9ncmFwaHlCb2R5LCB7IGFzOiBcImRpdlwiLCBjbGFzc05hbWU6IGNsYXNzZXMoJ2ZlZWRiYWNrJyksIHNpemU6IEZPUk1fRkVFREJBQ0tfU0laRSwgY29sb3I6IEZPUk1fRkVFREJBQ0tfQ09MT1IsIGNoaWxkcmVuOiBmZWVkYmFjayB9KSldIH0pXSB9KSk7XG4gICAgaWYgKGN0eC5ncmlkKSB7XG4gICAgICAgIGNvbnN0IG1lcmdlZCA9IE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgY3R4LmNvbFByb3BzKSwgY29sUHJvcHMpO1xuICAgICAgICBjb25zdCB7IHNwYW4gPSBERUZBVUxUX0NPTF9TUEFOLCBzbSwgbWQsIGxnIH0gPSBtZXJnZWQ7XG4gICAgICAgIHJldHVybiBfanN4KENvbCwgeyBzcGFuOiBzcGFuLCBzbTogc20sIG1kOiBtZCwgbGc6IGxnLCBjaGlsZHJlbjogc2hlbGwgfSk7XG4gICAgfVxuICAgIHJldHVybiBzaGVsbDtcbn07XG5Qcm9Gb3JtSXRlbUJhc2UuZGlzcGxheU5hbWUgPSAnUHJvRm9ybUl0ZW0nO1xuZXhwb3J0IGNvbnN0IFByb0Zvcm1JdGVtID0gbWVtbyhQcm9Gb3JtSXRlbUJhc2UpO1xuZXhwb3J0IGRlZmF1bHQgUHJvRm9ybUl0ZW07IixudWxsXSwic291cmNlUm9vdCI6Ii4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYyJ9
@@ -0,0 +1,7 @@
1
+ import type { ReactElement } from 'react';
2
+ import type { SchemaFormProps } from './interface';
3
+ /** Generic-aware export — keeps `<SchemaForm<MyValues> …>` fully typed. */
4
+ export declare const SchemaForm: (<Values = Record<string, unknown>>(props: SchemaFormProps<Values>) => ReactElement | null) & {
5
+ displayName?: string;
6
+ };
7
+ export default SchemaForm;
@@ -0,0 +1,110 @@
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.SchemaForm = void 0;
8
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
9
+ var _jsxRuntime = require("react/jsx-runtime");
10
+ var _react = require("react");
11
+ var _ProForm = require("./ProForm");
12
+ var _fields = require("./fields");
13
+ var _pathUtils = require("./core/pathUtils");
14
+ 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; } } }; }
15
+ 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; } }
16
+ 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; }
17
+ var __rest = void 0 && (void 0).__rest || function (s, e) {
18
+ var t = {};
19
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];
20
+ if (s != null && typeof Object.getOwnPropertySymbols === "function") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
21
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];
22
+ }
23
+ return t;
24
+ };
25
+ // valueType → ProForm field component. `digit` reuses the text field with a
26
+ // numeric input type (the library has no standalone InputNumber).
27
+ var VALUE_TYPE_FIELDS = {
28
+ text: _fields.ProFormText,
29
+ password: _fields.ProFormPassword,
30
+ textarea: _fields.ProFormTextArea,
31
+ digit: _fields.ProFormText,
32
+ select: _fields.ProFormSelect,
33
+ checkbox: _fields.ProFormCheckbox,
34
+ checkboxGroup: _fields.ProFormCheckboxGroup,
35
+ radioGroup: _fields.ProFormRadioGroup,
36
+ "switch": _fields.ProFormSwitch,
37
+ slider: _fields.ProFormSlider,
38
+ date: _fields.ProFormDatePicker,
39
+ dateTime: _fields.ProFormDatePicker,
40
+ upload: _fields.ProFormUpload
41
+ };
42
+ function renderColumn(column) {
43
+ var _a;
44
+ if (column.renderFormItem) {
45
+ return (0, _jsxRuntime.jsx)(_react.Fragment, {
46
+ children: column.renderFormItem(column)
47
+ }, column.dataIndex);
48
+ }
49
+ var title = column.title,
50
+ dataIndex = column.dataIndex,
51
+ _column$valueType = column.valueType,
52
+ valueType = _column$valueType === void 0 ? 'text' : _column$valueType,
53
+ fieldProps = column.fieldProps,
54
+ _initialValue = column.initialValue,
55
+ _renderFormItem = column.renderFormItem,
56
+ rest = __rest(column, ["title", "dataIndex", "valueType", "fieldProps", "initialValue", "renderFormItem"]);
57
+ var Field = (_a = VALUE_TYPE_FIELDS[valueType]) !== null && _a !== void 0 ? _a : VALUE_TYPE_FIELDS.text;
58
+ var mergedFieldProps = fieldProps;
59
+ if (valueType === 'digit') {
60
+ mergedFieldProps = Object.assign({
61
+ type: 'number'
62
+ }, fieldProps);
63
+ } else if (valueType === 'dateTime') {
64
+ mergedFieldProps = Object.assign({
65
+ showTime: true
66
+ }, fieldProps);
67
+ }
68
+ return (0, _jsxRuntime.jsx)(Field, Object.assign({
69
+ name: dataIndex,
70
+ label: title,
71
+ fieldProps: mergedFieldProps
72
+ }, valueType === 'dateTime' ? {
73
+ valueType: 'dateTime'
74
+ } : {}, rest), dataIndex);
75
+ }
76
+ var SchemaFormBase = function SchemaFormBase(props) {
77
+ var columns = props.columns,
78
+ initialValues = props.initialValues,
79
+ formProps = __rest(props, ["columns", "initialValues"]);
80
+ // Column-level initialValue seeds the form; form-level initialValues win.
81
+ var mergedInitialValues = (0, _react.useMemo)(function () {
82
+ var fromColumns = {};
83
+ var hasColumnValue = false;
84
+ var _iterator = _createForOfIteratorHelper(columns),
85
+ _step;
86
+ try {
87
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
88
+ var column = _step.value;
89
+ if (column.initialValue === undefined) continue;
90
+ hasColumnValue = true;
91
+ fromColumns = column.dataIndex.includes('.') ? (0, _pathUtils.setNestedValue)(fromColumns, column.dataIndex, column.initialValue) : Object.assign(Object.assign({}, fromColumns), (0, _defineProperty2["default"])({}, column.dataIndex, column.initialValue));
92
+ }
93
+ } catch (err) {
94
+ _iterator.e(err);
95
+ } finally {
96
+ _iterator.f();
97
+ }
98
+ if (!hasColumnValue) return initialValues;
99
+ return Object.assign(Object.assign({}, fromColumns), initialValues);
100
+ }, [columns, initialValues]);
101
+ return (0, _jsxRuntime.jsx)(_ProForm.ProForm, Object.assign({}, formProps, {
102
+ initialValues: mergedInitialValues,
103
+ children: columns.map(renderColumn)
104
+ }));
105
+ };
106
+ SchemaFormBase.displayName = 'SchemaForm';
107
+ /** Generic-aware export — keeps `<SchemaForm<MyValues> …>` fully typed. */
108
+ var SchemaForm = exports.SchemaForm = /*#__PURE__*/(0, _react.memo)(SchemaFormBase);
109
+ var _default = exports["default"] = SchemaForm;
110
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvUHJvRm9ybS9TY2hlbWFGb3JtLmpzIiwiY29tcG9uZW50cy9zcmMvY29tcG9uZW50cy9Qcm9Gb3JtL1NjaGVtYUZvcm0udHN4Il0sIm5hbWVzIjpbIl9qc3hSdW50aW1lIiwicmVxdWlyZSIsIl9yZWFjdCIsIl9Qcm9Gb3JtIiwiX2ZpZWxkcyIsIl9wYXRoVXRpbHMiLCJfY3JlYXRlRm9yT2ZJdGVyYXRvckhlbHBlciIsInIiLCJlIiwidCIsIlN5bWJvbCIsIml0ZXJhdG9yIiwiQXJyYXkiLCJpc0FycmF5IiwiX3Vuc3VwcG9ydGVkSXRlcmFibGVUb0FycmF5IiwibGVuZ3RoIiwiX24iLCJGIiwicyIsIm4iLCJkb25lIiwidmFsdWUiLCJmIiwiVHlwZUVycm9yIiwibyIsImEiLCJ1IiwiY2FsbCIsIm5leHQiLCJfYXJyYXlMaWtlVG9BcnJheSIsInRvU3RyaW5nIiwic2xpY2UiLCJjb25zdHJ1Y3RvciIsIm5hbWUiLCJmcm9tIiwidGVzdCIsIl9fcmVzdCIsInAiLCJPYmplY3QiLCJwcm90b3R5cGUiLCJoYXNPd25Qcm9wZXJ0eSIsImluZGV4T2YiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJpIiwicHJvcGVydHlJc0VudW1lcmFibGUiLCJWQUxVRV9UWVBFX0ZJRUxEUyIsInRleHQiLCJQcm9Gb3JtVGV4dCIsInBhc3N3b3JkIiwiUHJvRm9ybVBhc3N3b3JkIiwidGV4dGFyZWEiLCJQcm9Gb3JtVGV4dEFyZWEiLCJkaWdpdCIsInNlbGVjdCIsIlByb0Zvcm1TZWxlY3QiLCJjaGVja2JveCIsIlByb0Zvcm1DaGVja2JveCIsImNoZWNrYm94R3JvdXAiLCJQcm9Gb3JtQ2hlY2tib3hHcm91cCIsInJhZGlvR3JvdXAiLCJQcm9Gb3JtUmFkaW9Hcm91cCIsIlByb0Zvcm1Td2l0Y2giLCJzbGlkZXIiLCJQcm9Gb3JtU2xpZGVyIiwiZGF0ZSIsIlByb0Zvcm1EYXRlUGlja2VyIiwiZGF0ZVRpbWUiLCJ1cGxvYWQiLCJQcm9Gb3JtVXBsb2FkIiwicmVuZGVyQ29sdW1uIiwiY29sdW1uIiwiX2EiLCJyZW5kZXJGb3JtSXRlbSIsIl9qc3giLCJGcmFnbWVudCIsImNoaWxkcmVuIiwiZGF0YUluZGV4IiwidGl0bGUiLCJfY29sdW1uJHZhbHVlVHlwZSIsInZhbHVlVHlwZSIsImZpZWxkUHJvcHMiLCJfaW5pdGlhbFZhbHVlIiwiaW5pdGlhbFZhbHVlIiwiX3JlbmRlckZvcm1JdGVtIiwicmVzdCIsIkZpZWxkIiwibWVyZ2VkRmllbGRQcm9wcyIsImFzc2lnbiIsInR5cGUiLCJzaG93VGltZSIsImxhYmVsIiwiU2NoZW1hRm9ybUJhc2UiLCJwcm9wcyIsImNvbHVtbnMiLCJpbml0aWFsVmFsdWVzIiwiZm9ybVByb3BzIiwibWVyZ2VkSW5pdGlhbFZhbHVlcyIsInVzZU1lbW8iLCJmcm9tQ29sdW1ucyIsImhhc0NvbHVtblZhbHVlIiwiX2l0ZXJhdG9yIiwiX3N0ZXAiLCJ1bmRlZmluZWQiLCJpbmNsdWRlcyIsInNldE5lc3RlZFZhbHVlIiwiX2RlZmluZVByb3BlcnR5MiIsImVyciIsIlByb0Zvcm0iLCJtYXAiLCJkaXNwbGF5TmFtZSIsIlNjaGVtYUZvcm0iLCJleHBvcnRzIiwibWVtbyIsIl9kZWZhdWx0Il0sIm1hcHBpbmdzIjoiOzs7Ozs7OztBQVdBLElBQUFBLFdBQUEsR0FBQUMsT0FBQTtBQ1hBLElBQUFDLE1BQUEsR0FBQUQsT0FBQTtBQUVBLElBQUFFLFFBQUEsR0FBQUYsT0FBQTtBQUNBLElBQUFHLE9BQUEsR0FBQUgsT0FBQTtBQWFBLElBQUFJLFVBQUEsR0FBQUosT0FBQTtBQUFrRCxTQUFBSywyQkFBQUMsQ0FBQSxFQUFBQyxDQUFBLFFBQUFDLENBQUEseUJBQUFDLE1BQUEsSUFBQUgsQ0FBQSxDQUFBRyxNQUFBLENBQUFDLFFBQUEsS0FBQUosQ0FBQSxxQkFBQUUsQ0FBQSxRQUFBRyxLQUFBLENBQUFDLE9BQUEsQ0FBQU4sQ0FBQSxNQUFBRSxDQUFBLEdBQUFLLDJCQUFBLENBQUFQLENBQUEsTUFBQUMsQ0FBQSxJQUFBRCxDQUFB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Q1ksWUFBWSxDQUFBLENBQUU7TUFDakU7SUFBQyxTQUFBd0IsR0FBQTtNQUFBTixTQUFBLENBQUE1RixDQUFBLENBQUFrRyxHQUFBO0lBQUE7TUFBQU4sU0FBQSxDQUFBOUUsQ0FBQTtJQUFBO0lBQ0QsSUFBSSxDQUFDNkUsY0FBYyxFQUFFLE9BQU9MLGFBQWE7SUFDekMsT0FBQXhELE1BQUEsQ0FBQWlELE1BQUEsQ0FBQWpELE1BQUEsQ0FBQWlELE1BQUEsQ0FBQSxDQUFBLENBQUEsRUFBWVcsV0FBVyxDQUFBLEVBQUtKLGFBQWEsQ0FBQTtFQUMzQyxDQUFDLEVBQUUsQ0FBQ0QsT0FBTyxFQUFFQyxhQUFhLENBQUMsQ0FBQztFQUU1QixPQUNFLElBQUFyQixlQUFBLEVBQUNrQyxnQkFBTyxFQUFBckUsTUFBQSxDQUFBaUQsTUFBQSxDQUFBLENBQUEsQ0FBQSxFQUFLUSxTQUFTLEVBQUE7SUFBRUQsYUFBYSxFQUFFRSxtQkFBbUI7SUFBQXJCLFFBQUEsRUFDdkRrQixPQUFPLENBQUNlLEdBQUcsQ0FBQ3ZDLFlBQVk7RUFBQyxDQUFBLENBQUEsQ0FDbEI7QUFFZCxDQUFDO0FBRURzQixjQUFjLENBQUNrQixXQUFXLEdBQUcsWUFBWTtBQUV6QztBQUNPLElBQU1DLFVBQVUsR0FBQUMsT0FBQSxDQUFBRCxVQUFBLGdCQUFHLElBQUFFLFdBQUksRUFBQ3JCLGNBQWMsQ0FFTztBQUFDLElBQUFzQixRQUFBLEdBQUFGLE9BQUEsY0FFdENELFVBQVUiLCJmaWxlIjoiY29tcG9uZW50cy9Qcm9Gb3JtL1NjaGVtYUZvcm0uanMiLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgX19yZXN0ID0gKHRoaXMgJiYgdGhpcy5fX3Jlc3QpIHx8IGZ1bmN0aW9uIChzLCBlKSB7XG4gICAgdmFyIHQgPSB7fTtcbiAgICBmb3IgKHZhciBwIGluIHMpIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocywgcCkgJiYgZS5pbmRleE9mKHApIDwgMClcbiAgICAgICAgdFtwXSA9IHNbcF07XG4gICAgaWYgKHMgIT0gbnVsbCAmJiB0eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyA9PT0gXCJmdW5jdGlvblwiKVxuICAgICAgICBmb3IgKHZhciBpID0gMCwgcCA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMocyk7IGkgPCBwLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBpZiAoZS5pbmRleE9mKHBbaV0pIDwgMCAmJiBPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwocywgcFtpXSkpXG4gICAgICAgICAgICAgICAgdFtwW2ldXSA9IHNbcFtpXV07XG4gICAgICAgIH1cbiAgICByZXR1cm4gdDtcbn07XG5pbXBvcnQgeyBqc3ggYXMgX2pzeCB9IGZyb20gXCJyZWFjdC9qc3gtcnVudGltZVwiO1xuaW1wb3J0IHsgRnJhZ21lbnQsIG1lbW8sIHVzZU1lbW8gfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBQcm9Gb3JtIH0gZnJvbSAnLi9Qcm9Gb3JtJztcbmltcG9ydCB7IFByb0Zvcm1UZXh0LCBQcm9Gb3JtUGFzc3dvcmQsIFByb0Zvcm1UZXh0QXJlYSwgUHJvRm9ybVNlbGVjdCwgUHJvRm9ybUNoZWNrYm94LCBQcm9Gb3JtQ2hlY2tib3hHcm91cCwgUHJvRm9ybVJhZGlvR3JvdXAsIFByb0Zvcm1Td2l0Y2gsIFByb0Zvcm1TbGlkZXIsIFByb0Zvcm1EYXRlUGlja2VyLCBQcm9Gb3JtVXBsb2FkLCB9IGZyb20gJy4vZmllbGRzJztcbmltcG9ydCB7IHNldE5lc3RlZFZhbHVlIH0gZnJvbSAnLi9jb3JlL3BhdGhVdGlscyc7XG4vLyB2YWx1ZVR5cGUg4oaSIFByb0Zvcm0gZmllbGQgY29tcG9uZW50LiBgZGlnaXRgIHJldXNlcyB0aGUgdGV4dCBmaWVsZCB3aXRoIGFcbi8vIG51bWVyaWMgaW5wdXQgdHlwZSAodGhlIGxpYnJhcnkgaGFzIG5vIHN0YW5kYWxvbmUgSW5wdXROdW1iZXIpLlxuY29uc3QgVkFMVUVfVFlQRV9GSUVMRFMgPSB7XG4gICAgdGV4dDogUHJvRm9ybVRleHQsXG4gICAgcGFzc3dvcmQ6IFByb0Zvcm1QYXNzd29yZCxcbiAgICB0ZXh0YXJlYTogUHJvRm9ybVRleHRBcmVhLFxuICAgIGRpZ2l0OiBQcm9Gb3JtVGV4dCxcbiAgICBzZWxlY3Q6IFByb0Zvcm1TZWxlY3QsXG4gICAgY2hlY2tib3g6IFByb0Zvcm1DaGVja2JveCxcbiAgICBjaGVja2JveEdyb3VwOiBQcm9Gb3JtQ2hlY2tib3hHcm91cCxcbiAgICByYWRpb0dyb3VwOiBQcm9Gb3JtUmFkaW9Hcm91cCxcbiAgICBzd2l0Y2g6IFByb0Zvcm1Td2l0Y2gsXG4gICAgc2xpZGVyOiBQcm9Gb3JtU2xpZGVyLFxuICAgIGRhdGU6IFByb0Zvcm1EYXRlUGlja2VyLFxuICAgIGRhdGVUaW1lOiBQcm9Gb3JtRGF0ZVBpY2tlcixcbiAgICB1cGxvYWQ6IFByb0Zvcm1VcGxvYWQsXG59O1xuZnVuY3Rpb24gcmVuZGVyQ29sdW1uKGNvbHVtbikge1xuICAgIHZhciBfYTtcbiAgICBpZiAoY29sdW1uLnJlbmRlckZvcm1JdGVtKSB7XG4gICAgICAgIHJldHVybiBfanN4KEZyYWdtZW50LCB7IGNoaWxkcmVuOiBjb2x1bW4ucmVuZGVyRm9ybUl0ZW0oY29sdW1uKSB9LCBjb2x1bW4uZGF0YUluZGV4KTtcbiAgICB9XG4gICAgY29uc3QgeyB0aXRsZSwgZGF0YUluZGV4LCB2YWx1ZVR5cGUgPSAndGV4dCcsIGZpZWxkUHJvcHMsIGluaXRpYWxWYWx1ZTogX2luaXRpYWxWYWx1ZSwgcmVuZGVyRm9ybUl0ZW06IF9yZW5kZXJGb3JtSXRlbSB9ID0gY29sdW1uLCByZXN0ID0gX19yZXN0KGNvbHVtbiwgW1widGl0bGVcIiwgXCJkYXRhSW5kZXhcIiwgXCJ2YWx1ZVR5cGVcIiwgXCJmaWVsZFByb3BzXCIsIFwiaW5pdGlhbFZhbHVlXCIsIFwicmVuZGVyRm9ybUl0ZW1cIl0pO1xuICAgIGNvbnN0IEZpZWxkID0gKF9hID0gVkFMVUVfVFlQRV9GSUVMRFNbdmFsdWVUeXBlXSkgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogVkFMVUVfVFlQRV9GSUVMRFMudGV4dDtcbiAgICBsZXQgbWVyZ2VkRmllbGRQcm9wcyA9IGZpZWxkUHJvcHM7XG4gICAgaWYgKHZhbHVlVHlwZSA9PT0gJ2RpZ2l0Jykge1xuICAgICAgICBtZXJnZWRGaWVsZFByb3BzID0gT2JqZWN0LmFzc2lnbih7IHR5cGU6ICdudW1iZXInIH0sIGZpZWxkUHJvcHMpO1xuICAgIH1cbiAgICBlbHNlIGlmICh2YWx1ZVR5cGUgPT09ICdkYXRlVGltZScpIHtcbiAgICAgICAgbWVyZ2VkRmllbGRQcm9wcyA9IE9iamVjdC5hc3NpZ24oeyBzaG93VGltZTogdHJ1ZSB9LCBmaWVsZFByb3BzKTtcbiAgICB9XG4gICAgcmV0dXJuIChfanN4KEZpZWxkLCBPYmplY3QuYXNzaWduKHsgbmFtZTogZGF0YUluZGV4LCBsYWJlbDogdGl0bGUsIGZpZWxkUHJvcHM6IG1lcmdlZEZpZWxkUHJvcHMgfSwgKHZhbHVlVHlwZSA9PT0gJ2RhdGVUaW1lJyA/IHsgdmFsdWVUeXBlOiAnZGF0ZVRpbWUnIH0gOiB7fSksIHJlc3QpLCBkYXRhSW5kZXgpKTtcbn1cbmNvbnN0IFNjaGVtYUZvcm1CYXNlID0gKHByb3BzKSA9PiB7XG4gICAgY29uc3QgeyBjb2x1bW5zLCBpbml0aWFsVmFsdWVzIH0gPSBwcm9wcywgZm9ybVByb3BzID0gX19yZXN0KHByb3BzLCBbXCJjb2x1bW5zXCIsIFwiaW5pdGlhbFZhbHVlc1wiXSk7XG4gICAgLy8gQ29sdW1uLWxldmVsIGluaXRpYWxWYWx1ZSBzZWVkcyB0aGUgZm9ybTsgZm9ybS1sZXZlbCBpbml0aWFsVmFsdWVzIHdpbi5cbiAgICBjb25zdCBtZXJnZWRJbml0aWFsVmFsdWVzID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICAgIGxldCBmcm9tQ29sdW1ucyA9IHt9O1xuICAgICAgICBsZXQgaGFzQ29sdW1uVmFsdWUgPSBmYWxzZTtcbiAgICAgICAgZm9yIChjb25zdCBjb2x1bW4gb2YgY29sdW1ucykge1xuICAgICAgICAgICAgaWYgKGNvbHVtbi5pbml0aWFsVmFsdWUgPT09IHVuZGVmaW5lZClcbiAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgIGhhc0NvbHVtblZhbHVlID0gdHJ1ZTtcbiAgICAgICAgICAgIGZyb21Db2x1bW5zID0gY29sdW1uLmRhdGFJbmRleC5pbmNsdWRlcygnLicpXG4gICAgICAgICAgICAgICAgPyBzZXROZXN0ZWRWYWx1ZShmcm9tQ29sdW1ucywgY29sdW1uLmRhdGFJbmRleCwgY29sdW1uLmluaXRpYWxWYWx1ZSlcbiAgICAgICAgICAgICAgICA6IE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgZnJvbUNvbHVtbnMpLCB7IFtjb2x1bW4uZGF0YUluZGV4XTogY29sdW1uLmluaXRpYWxWYWx1ZSB9KTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIWhhc0NvbHVtblZhbHVlKVxuICAgICAgICAgICAgcmV0dXJuIGluaXRpYWxWYWx1ZXM7XG4gICAgICAgIHJldHVybiBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIGZyb21Db2x1bW5zKSwgaW5pdGlhbFZhbHVlcyk7XG4gICAgfSwgW2NvbHVtbnMsIGluaXRpYWxWYWx1ZXNdKTtcbiAgICByZXR1cm4gKF9qc3goUHJvRm9ybSwgT2JqZWN0LmFzc2lnbih7fSwgZm9ybVByb3BzLCB7IGluaXRpYWxWYWx1ZXM6IG1lcmdlZEluaXRpYWxWYWx1ZXMsIGNoaWxkcmVuOiBjb2x1bW5zLm1hcChyZW5kZXJDb2x1bW4pIH0pKSk7XG59O1xuU2NoZW1hRm9ybUJhc2UuZGlzcGxheU5hbWUgPSAnU2NoZW1hRm9ybSc7XG4vKiogR2VuZXJpYy1hd2FyZSBleHBvcnQg4oCUIGtlZXBzIGA8U2NoZW1hRm9ybTxNeVZhbHVlcz4g4oCmPmAgZnVsbHkgdHlwZWQuICovXG5leHBvcnQgY29uc3QgU2NoZW1hRm9ybSA9IG1lbW8oU2NoZW1hRm9ybUJhc2UpO1xuZXhwb3J0IGRlZmF1bHQgU2NoZW1hRm9ybTsiLG51bGxdLCJzb3VyY2VSb290IjoiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjIn0=
@@ -73,6 +73,15 @@ var SubmitterBase = function SubmitterBase(props) {
73
73
  onReset === null || onReset === void 0 ? void 0 : onReset();
74
74
  form.resetFields();
75
75
  });
76
+ // The default submit button keeps type="submit" so the actual submission
77
+ // flows through the <form> onSubmit handler exactly once — this click
78
+ // handler only fires the user's onSubmit callback (plus any onClick they
79
+ // passed via submitButtonProps).
80
+ var handleSubmitClick = (0, _useMemoizedFn["default"])(function (e) {
81
+ var _a;
82
+ onSubmit === null || onSubmit === void 0 ? void 0 : onSubmit();
83
+ (_a = submitButtonProps === null || submitButtonProps === void 0 ? void 0 : submitButtonProps.onClick) === null || _a === void 0 ? void 0 : _a.call(submitButtonProps, e);
84
+ });
76
85
  var resetButton = (0, _react.useMemo)(function () {
77
86
  return (0, _jsxRuntime.jsx)(_Button.Button, Object.assign({
78
87
  type: "button",
@@ -88,9 +97,10 @@ var SubmitterBase = function SubmitterBase(props) {
88
97
  color: "primary",
89
98
  loading: loading
90
99
  }, submitButtonProps, {
100
+ onClick: handleSubmitClick,
91
101
  children: submitText
92
102
  }), "submit");
93
- }, [submitText, submitButtonProps, loading]);
103
+ }, [submitText, submitButtonProps, loading, handleSubmitClick]);
94
104
  var dom = [resetButton, submitButton];
95
105
  if (render) {
96
106
  return (0, _jsxRuntime.jsx)("div", {
@@ -110,4 +120,4 @@ var SubmitterBase = function SubmitterBase(props) {
110
120
  SubmitterBase.displayName = 'Submitter';
111
121
  var Submitter = exports.Submitter = /*#__PURE__*/(0, _react.memo)(SubmitterBase);
112
122
  var _default = exports["default"] = Submitter;
113
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvUHJvRm9ybS9TdWJtaXR0ZXIuanMiLCJjb21wb25lbnRzL3NyYy9jb21wb25lbnRzL1Byb0Zvcm0vU3VibWl0dGVyLnRzeCJdLCJuYW1lcyI6WyJfanN4UnVudGltZSIsInJlcXVpcmUiLCJfcmVhY3QiLCJfdXNlTWVtb2l6ZWRGbiIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfY2xhc3NuYW1lcyIsIl9jb250ZXh0MiIsIl9CdXR0b24iLCJfY29uc3RhbnRzIiwiX19hd2FpdGVyIiwidGhpc0FyZyIsIl9hcmd1bWVudHMiLCJQIiwiZ2VuZXJhdG9yIiwiYWRvcHQiLCJ2YWx1ZSIsInJlc29sdmUiLCJQcm9taXNlIiwicmVqZWN0IiwiZnVsZmlsbGVkIiwic3RlcCIsIm5leHQiLCJlIiwicmVqZWN0ZWQiLCJyZXN1bHQiLCJkb25lIiwidGhlbiIsImFwcGx5IiwiY2xhc3NlcyIsImNsYXNzbmFtZXMiLCJjb25jYXQiLCJDU1NfUFJFRklYIiwiU3VibWl0dGVyQmFzZSIsInByb3BzIiwiX3Byb3BzJHN1Ym1pdFRleHQiLCJzdWJtaXRUZXh0IiwiREVGQVVMVF9URVhUIiwic3VibWl0IiwiX3Byb3BzJHJlc2V0VGV4dCIsInJlc2V0VGV4dCIsInJlc2V0IiwicmVuZGVyIiwib25TdWJtaXQiLCJvblJlc2V0Iiwic3VibWl0QnV0dG9uUHJvcHMiLCJyZXNldEJ1dHRvblByb3BzIiwiX3Byb3BzJGxvYWRpbmciLCJsb2FkaW5nIiwiZm9ybSIsInVzZUZvcm1JbnN0YW5jZSIsImhhbmRsZVN1Ym1pdCIsInVzZU1lbW9pemVkRm4iLCJfcmVnZW5lcmF0b3IiLCJtYXJrIiwiX2NhbGxlZSIsIndyYXAiLCJfY29udGV4dCIsInByZXYiLCJzdWJtaXRGb3JtIiwic3RvcCIsImhhbmRsZVJlc2V0IiwicmVzZXRGaWVsZHMiLCJyZXNldEJ1dHRvbiIsInVzZU1lbW8iLCJfanN4IiwiQnV0dG9uIiwiT2JqZWN0IiwiYXNzaWduIiwidHlwZSIsImNvbG9yIiwib25DbGljayIsImNoaWxkcmVuIiwic3VibWl0QnV0dG9uIiwiZG9tIiwiY2xhc3NOYW1lIiwiX2pzeHMiLCJkaXNwbGF5TmFtZSIsIlN1Ym1pdHRlciIsImV4cG9ydHMiLCJtZW1vIiwiX2RlZmF1bHQiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBU0EsSUFBQUEsV0FBQSxHQUFBQyxPQUFBO0FDVEEsSUFBQUMsTUFBQSxHQUFBRCxPQUFBO0FBRUEsSUFBQUUsY0FBQSxHQUFBQyxzQkFBQSxDQUFBSCxPQUFBO0FBQ0EsSUFBQUksV0FBQSxHQUFBRCxzQkFBQSxDQUFBSCxPQUFBO0FBQ0EsSUFBQUssU0FBQSxHQUFBTCxPQUFBO0FBQ0EsSUFBQU0sT0FBQSxHQUFBTixPQUFBO0FBQ0EsSUFBQU8sVUFBQSxHQUFBUCxPQUFBO0FETkEsSUFBSVEsU0FBUyxHQUFJLFVBQVEsU0FBS0EsU0FBUyxJQUFLLFVBQVVDLE9BQU8sRUFBRUMsVUFBVSxFQUFFQyxDQUFDLEVBQUVDLFNBQVMsRUFBRTtFQUNyRixTQUFTQyxLQUFLQSxDQUFDQyxLQUFLLEVBQUU7SUFBRSxPQUFPQSxLQUFLLFlBQVlILENBQUMsR0FBR0csS0FBSyxHQUFHLElBQUlILENBQUMsQ0FBQyxVQUFVSSxPQUFPLEVBQUU7TUFBRUEsT0FBTyxDQUFDRCxLQUFLLENBQUM7SUFBRSxDQUFDLENBQUM7RUFBRTtFQUMzRyxPQUFPLEtBQUtILENBQUMsS0FBS0EsQ0FBQyxHQUFHSyxPQUFPLENBQUMsRUFBRSxVQUFVRCxPQUFPLEVBQUVFLE1BQU0sRUFBRTtJQUN2RCxTQUFTQyxTQUFTQSxDQUFDSixLQUFLLEVBQUU7TUFBRSxJQUFJO1FBQUVLLElBQUksQ0FBQ1AsU0FBUyxDQUFDUSxJQUFJLENBQUNOLEtBQUssQ0FBQyxDQUFDO01BQUUsQ0FBQyxDQUFDLE9BQU9PLENBQUMsRUFBRTtRQUFFSixNQUFNLENBQUNJLENBQUMsQ0FBQztNQUFFO0lBQUU7SUFDMUYsU0FBU0MsUUFBUUEsQ0FBQ1IsS0FBSyxFQUFFO01BQUUsSUFBSTtRQUFFSyxJ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NEMsV0FBVyxHQUFHLFdBQVc7QUFFaEMsSUFBTUMsU0FBUyxHQUFBQyxPQUFBLENBQUFELFNBQUEsZ0JBQUcsSUFBQUUsV0FBSSxFQUFDL0MsYUFBYSxDQUFDO0FBQUMsSUFBQWdELFFBQUEsR0FBQUYsT0FBQSxjQUU5QkQsU0FBUyIsImZpbGUiOiJjb21wb25lbnRzL1Byb0Zvcm0vU3VibWl0dGVyLmpzIiwic291cmNlc0NvbnRlbnQiOlsidmFyIF9fYXdhaXRlciA9ICh0aGlzICYmIHRoaXMuX19hd2FpdGVyKSB8fCBmdW5jdGlvbiAodGhpc0FyZywgX2FyZ3VtZW50cywgUCwgZ2VuZXJhdG9yKSB7XG4gICAgZnVuY3Rpb24gYWRvcHQodmFsdWUpIHsgcmV0dXJuIHZhbHVlIGluc3RhbmNlb2YgUCA/IHZhbHVlIDogbmV3IFAoZnVuY3Rpb24gKHJlc29sdmUpIHsgcmVzb2x2ZSh2YWx1ZSk7IH0pOyB9XG4gICAgcmV0dXJuIG5ldyAoUCB8fCAoUCA9IFByb21pc2UpKShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7XG4gICAgICAgIGZ1bmN0aW9uIGZ1bGZpbGxlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvci5uZXh0KHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cbiAgICAgICAgZnVuY3Rpb24gcmVqZWN0ZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3JbXCJ0aHJvd1wiXSh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XG4gICAgICAgIGZ1bmN0aW9uIHN0ZXAocmVzdWx0KSB7IHJlc3VsdC5kb25lID8gcmVzb2x2ZShyZXN1bHQudmFsdWUpIDogYWRvcHQocmVzdWx0LnZhbHVlKS50aGVuKGZ1bGZpbGxlZCwgcmVqZWN0ZWQpOyB9XG4gICAgICAgIHN0ZXAoKGdlbmVyYXRvciA9IGdlbmVyYXRvci5hcHBseSh0aGlzQXJnLCBfYXJndW1lbnRzIHx8IFtdKSkubmV4dCgpKTtcbiAgICB9KTtcbn07XG5pbXBvcnQgeyBqc3ggYXMgX2pzeCwganN4cyBhcyBfanN4cyB9IGZyb20gXCJyZWFjdC9qc3gtcnVudGltZVwiO1xuaW1wb3J0IHsgbWVtbywgdXNlTWVtbyB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB1c2VNZW1vaXplZEZuIGZyb20gJ0AxbW9uZXkvaG9va3MvdXNlTWVtb2l6ZWRGbic7XG5pbXBvcnQgeyBkZWZhdWx0IGFzIGNsYXNzbmFtZXMgfSBmcm9tICcuLi8uLi91dGlscy9jbGFzc25hbWVzJztcbmltcG9ydCB7IHVzZUZvcm1JbnN0YW5jZSB9IGZyb20gJy4vY29udGV4dCc7XG5pbXBvcnQgeyBCdXR0b24gfSBmcm9tICcuLi9CdXR0b24nO1xuaW1wb3J0IHsgQ1NTX1BSRUZJWCwgREVGQVVMVF9URVhUIH0gZnJvbSAnLi9jb25zdGFudHMnO1xuY29uc3QgY2xhc3NlcyA9IGNsYXNzbmFtZXMoYCR7Q1NTX1BSRUZJWH0tc3VibWl0dGVyYCk7XG5jb25zdCBTdWJtaXR0ZXJCYXNlID0gKHByb3BzKSA9PiB7XG4gICAgY29uc3QgeyBzdWJtaXRUZXh0ID0gREVGQVVMVF9URVhULnN1Ym1pdCwgcmVzZXRUZXh0ID0gREVGQVVMVF9URVhULnJlc2V0LCByZW5kZXIsIG9uU3VibWl0LCBvblJlc2V0LCBzdWJtaXRCdXR0b25Qcm9wcywgcmVzZXRCdXR0b25Qcm9wcywgbG9hZGluZyA9IGZhbHNlLCB9ID0gcHJvcHM7XG4gICAgY29uc3QgZm9ybSA9IHVzZUZvcm1JbnN0YW5jZSgpO1xuICAgIGNvbnN0IGhhbmRsZVN1Ym1pdCA9IHVzZU1lbW9pemVkRm4oKCkgPT4gX19hd2FpdGVyKHZvaWQgMCwgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgIG9uU3VibWl0ID09PSBudWxsIHx8IG9uU3VibWl0ID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvblN1Ym1pdCgpO1xuICAgICAgICB5aWVsZCBmb3JtLnN1Ym1pdEZvcm0oKTtcbiAgICB9KSk7XG4gICAgY29uc3QgaGFuZGxlUmVzZXQgPSB1c2VNZW1vaXplZEZuKCgpID0+IHtcbiAgICAgICAgb25SZXNldCA9PT0gbnVsbCB8fCBvblJlc2V0ID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvblJlc2V0KCk7XG4gICAgICAgIGZvcm0ucmVzZXRGaWVsZHMoKTtcbiAgICB9KTtcbiAgICBjb25zdCByZXNldEJ1dHRvbiA9IHVzZU1lbW8oKCkgPT4gKF9qc3goQnV0dG9uLCBPYmplY3QuYXNzaWduKHsgdHlwZTogXCJidXR0b25cIiwgY29sb3I6IFwic2Vjb25kYXJ5XCIgfSwgcmVzZXRCdXR0b25Qcm9wcywgeyBvbkNsaWNrOiBoYW5kbGVSZXNldCwgY2hpbGRyZW46IHJlc2V0VGV4dCB9KSwgXCJyZXNldFwiKSksIFtyZXNldFRleHQsIHJlc2V0QnV0dG9uUHJvcHMsIGhhbmRsZVJlc2V0XSk7XG4gICAgY29uc3Qgc3VibWl0QnV0dG9uID0gdXNlTWVtbygoKSA9PiAoX2pzeChCdXR0b24sIE9iamVjdC5hc3NpZ24oeyB0eXBlOiBcInN1Ym1pdFwiLCBjb2xvcjogXCJwcmltYXJ5XCIsIGxvYWRpbmc6IGxvYWRpbmcgfSwgc3VibWl0QnV0dG9uUHJvcHMsIHsgY2hpbGRyZW46IHN1Ym1pdFRleHQgfSksIFwic3VibWl0XCIpKSwgW3N1Ym1pdFRleHQsIHN1Ym1pdEJ1dHRvblByb3BzLCBsb2FkaW5nXSk7XG4gICAgY29uc3QgZG9tID0gW3Jlc2V0QnV0dG9uLCBzdWJtaXRCdXR0b25dO1xuICAgIGlmIChyZW5kZXIpIHtcbiAgICAgICAgcmV0dXJuIChfanN4KFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCksIGNoaWxkcmVuOiByZW5kZXIoeyBmb3JtLCBzdWJtaXQ6IGhhbmRsZVN1Ym1pdCwgcmVzZXQ6IGhhbmRsZVJlc2V0IH0sIGRvbSkgfSkpO1xuICAgIH1cbiAgICByZXR1cm4gKF9qc3hzKFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCksIGNoaWxkcmVuOiBbcmVzZXRCdXR0b24sIHN1Ym1pdEJ1dHRvbl0gfSkpO1xufTtcblN1Ym1pdHRlckJhc2UuZGlzcGxheU5hbWUgPSAnU3VibWl0dGVyJztcbmV4cG9ydCBjb25zdCBTdWJtaXR0ZXIgPSBtZW1vKFN1Ym1pdHRlckJhc2UpO1xuZXhwb3J0IGRlZmF1bHQgU3VibWl0dGVyOyIsbnVsbF0sInNvdXJjZVJvb3QiOiIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMifQ==
123
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvUHJvRm9ybS9TdWJtaXR0ZXIuanMiLCJjb21wb25lbnRzL3NyYy9jb21wb25lbnRzL1Byb0Zvcm0vU3VibWl0dGVyLnRzeCJdLCJuYW1lcyI6WyJfanN4UnVudGltZSIsInJlcXVpcmUiLCJfcmVhY3QiLCJfdXNlTWVtb2l6ZWRGbiIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfY2xhc3NuYW1lcyIsIl9jb250ZXh0MiIsIl9CdXR0b24iLCJfY29uc3RhbnRzIiwiX19hd2FpdGVyIiwidGhpc0FyZyIsIl9hcmd1bWVudHMiLCJQIiwiZ2VuZXJhdG9yIiwiYWRvcHQiLCJ2YWx1ZSIsInJlc29sdmUiLCJQcm9taXNlIiwicmVqZWN0IiwiZnVsZmlsbGVkIiwic3RlcCIsIm5leHQiLCJlIiwicmVqZWN0ZWQiLCJyZXN1bHQiLCJkb25lIiwidGhlbiIsImFwcGx5IiwiY2xhc3NlcyIsImNsYXNzbmFtZXMiLCJjb25jYXQiLCJDU1NfUFJFRklYIiwiU3VibWl0dGVyQmFzZSIsInByb3BzIiwiX3Byb3BzJHN1Ym1pdFRleHQiLCJzdWJtaXRUZXh0IiwiREVGQVVMVF9URVhUIiwic3VibWl0IiwiX3Byb3BzJHJlc2V0VGV4dCIsInJlc2V0VGV4dCIsInJlc2V0IiwicmVuZGVyIiwib25TdWJtaXQiLCJvblJlc2V0Iiwic3VibWl0QnV0dG9uUHJvcHMiLCJyZXNldEJ1dHRvblByb3BzIiwiX3Byb3BzJGxvYWRpbmciLCJsb2FkaW5nIiwiZm9ybSIsInVzZUZvcm1JbnN0YW5jZSIsImhhbmRsZVN1Ym1pdCIsInVzZU1lbW9pemVkRm4iLCJfcmVnZW5lcmF0b3IiLCJtYXJrIiwiX2NhbGxlZSIsIndyYXAiLCJfY29udGV4dCIsInByZXYiLCJzdWJtaXRGb3JtIiwic3RvcCIsImhhbmRsZVJlc2V0IiwicmVzZXRGaWVsZHMiLCJoYW5kbGVTdWJtaXRDbGljayIsIl9hIiwib25DbGljayIsImNhbGwiLCJyZXNldEJ1dHRvbiIsInVzZU1lbW8iLCJfanN4IiwiQnV0dG9uIiwiT2JqZWN0IiwiYXNzaWduIiwidHlwZSIsImNvbG9yIiwiY2hpbGRyZW4iLCJzdWJtaXRCdXR0b24iLCJkb20iLCJjbGFzc05hbWUiLCJfanN4cyIsImRpc3BsYXlOYW1lIiwiU3VibWl0dGVyIiwiZXhwb3J0cyIsIm1lbW8iLCJfZGVmYXVsdCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFTQSxJQUFBQSxXQUFBLEdBQUFDLE9BQUE7QUNUQSxJQUFBQyxNQUFBLEdBQUFELE9BQUE7QUFFQSxJQUFBRSxjQUFBLEdBQUFDLHNCQUFBLENBQUFILE9BQUE7QUFDQSxJQUFBSSxXQUFBLEdBQUFELHNCQUFBLENBQUFILE9BQUE7QUFDQSxJQUFBSyxTQUFBLEdBQUFMLE9BQUE7QUFDQSxJQUFBTSxPQUFBLEdBQUFOLE9BQUE7QUFDQSxJQUFBTyxVQUFBLEdBQUFQLE9BQUE7QUROQSxJQUFJUSxTQUFTLEdBQUksVUFBUSxTQUFLQSxTQUFTLElBQUssVUFBVUMsT0FBTyxFQUFFQyxVQUFVLEVBQUVDLENBQUMsRUFBRUMsU0FBUyxFQUFFO0VBQ3JGLFNBQVNDLEtBQUtBLENBQUNDLEtBQUssRUFBRTtJQUFFLE9BQU9BLEtBQUssWUFBWUgsQ0FBQyxHQUFHRyxLQUFLLEdBQUcsSUFBSUgsQ0FBQyxDQUFDLFVBQVVJLE9BQU8sRUFBRTtNQUFFQSxPQUFPLENBQUNELEtBQUssQ0FBQztJQUFFLENBQUMsQ0FBQztFQUFFO0VBQzNHLE9BQU8sS0FBS0gsQ0FBQyxLQUFLQSxDQUFDLEdBQUdLLE9BQU8sQ0FBQyxFQUFFLFVBQVVELE9BQU8sRUFBRUUsTUFBTSxFQUFFO0lBQ3ZELFNBQVNDLFNBQVNBLENBQUNKLEtBQUssRUFBRTtNQUFFLElBQUk7UUFBRUssSUFBSSxDQUFDUCxTQUFTLENBQUNRLElBQUksQ0FBQ04sS0FBSyxDQUFDLENBQUM7TUFBRSxDQUFDLENBQUMsT0FBT08sQ0FBQyxFQUFFO1FBQUVKLE1BQU0sQ0FBQ0ksQ0FBQyxDQUFDO01BQUU7SUFBRTtJQUMxRixTQUFTQyxRQUFRQSxDQUFDUixLQUFLLEVBQUU7TUFBRSxJQUFJO1FBQUVLLElBQUksQ0FBQ1AsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDRSxLQUFLLENBQUMsQ0FBQztNQUFFLENBQUMsQ0FBQyxPQUFPTyxDQUFDLEVBQUU7UUFBRUosTUFBTSxDQUFDSSxDQUFDLENBQUM7TUFBRTtJQUFFO0lBQzdGLFNBQVNGLElBQUlBLENBQUNJLE1BQU0sRUFBRTtNQUFFQSxNQUFNLENBQUNDLElBQUksR0FBR1QsT0FBTyxDQUFDUSxNQUFNLENBQUNULEtBQUssQ0FBQyxHQUFHRCxLQUFLLENBQUNVLE1BQU0sQ0FBQ1QsS0FBSyxDQUFDLENBQUNXLElBQUksQ0FBQ1AsU0FBUyxFQUFFSSxRQUFRLENBQUM7SUFBRTtJQUM3R0gsSUFBSSxDQUFDLENBQUNQLFNBQVMsR0FBR0EsU0FBUyxDQUFDYyxLQUFLLENBQUNqQixPQUFPLEVBQUVDLFVBQVUsSUFBSSxFQUFFLENBQUMsRUFBRVUsSUFBSSxDQUFDLENBQUMsQ0FBQztFQUN6RSxDQUFDLENBQUM7QUFDTixDQUFDO0FDS0QsSUFBTU8sT0FBTyxHQUFHLElBQUFDLHNCQUFVLEtBQUFDLE1BQUEsQ0FBSUMscUJBQVUsZUFBWSxDQUFDO0FBRXJELElBQU1DLGFBQWEsR0FBK0IsU0FBNUNBLGFBQWFBLENBQWdDQyxLQUFLLEVBQUk7RUFDMUQsSUFBQUMsaUJBQUEsR0FTSUQsS0FBSyxDQVJQRSxVQUFVO0lBQVZBLFVBQVUsR0FBQUQsaUJBQUEsY0FBR0UsdUJBQVksQ0FBQ0MsTUFBTSxHQUFBSCxpQkFBQTtJQUFBSSxnQkFBQSxHQVE5QkwsS0FBSyxDQVBQTSxTQUFTO0lBQVRBLFNBQVMsR0FBQUQsZ0JBQUEsY0FBR0YsdUJBQVksQ0FBQ0ksS0FBSyxHQUFBRixnQkFBQTtJQUM5QkcsTUFBTSxHQU1KUixLQUFLLENBTlBRLE1BQU07SUFDTkMsUUFBUSxHQUtOVCxLQUFLLENBTFBTLFFBQVE7SUFDUkMsT0FBTyxHQUlMVixLQUFLLENBSlBVLE9BQU87SUFDUEMsaUJBQWlCLEdBR2ZYLEtBQUssQ0FIUFcsaUJBQWlCO0lBQ2pCQyxnQkFBZ0IsR0FFZFosS0FBSyxDQUZQWSxnQkFBZ0I7SUFBQUMsY0FBQSxHQUVkYixLQUFLLENBRFBjLE9BQU87SUFBUEEsT0FBTyxHQUFBRCxjQUFBLGNBQUcsS0FBSyxHQUFBQSxjQUFBO0VBR2pCLElBQU1FLElBQUksR0FBRyxJQUFBQyx5QkFBZSxFQUFBLENBQUU7RUFFOUIsSUFBTUMsWUFBWSxHQUFHLElBQUFDLHlCQUFhLEVBQUM7SUFBQSxPQUFXMUMsU0FBQSxDQUFBLEtBQUEsQ0FBQSxFQUFBLEtBQUEsQ0FBQSxFQUFBLEtBQUEsQ0FBQSxlQUFBMkMsWUFBQSxZQUFBQyxJQUFBLENBQUEsU0FBQUMsUUFBQTtNQUFBLE9BQUFGLFlBQUEsWUFBQUcsSUFBQSxXQUFBQyxRQUFBO1FBQUEsa0JBQUFBLFFBQUEsQ0FBQUMsSUFBQSxHQUFBRCxRQUFBLENBQUFuQyxJQUFBO1VBQUE7WUFDNUNxQixRQUFRLEtBQUEsSUFBQSxJQUFSQSxRQUFRLEtBQUEsS0FBQSxDQUFBLEdBQUEsS0FBQSxDQUFBLEdBQVJBLFFBQVEsQ0FBQSxDQUFJO1lBQUNjLFFBQUEsQ0FBQW5DLElBQUE7WUFDYixPQUFNMkIsSUFBSSxDQUFDVSxVQUFVLENBQUEsQ0FBRTtVQUFBO1VBQUE7WUFBQSxPQUFBRixRQUFBLENBQUFHLElBQUE7UUFBQTtNQUFBLEdBQUFMLE9BQUE7SUFBQSxDQUN4QixFQUFBO0VBQUEsRUFBQztFQUVGLElBQU1NLFdBQVcsR0FBRyxJQUFBVCx5QkFBYSxFQUFDLFlBQUs7SUFDckNSLE9BQU8sS0FBQSxJQUFBLElBQVBBLE9BQU8sS0FBQSxLQUFBLENBQUEsR0FBQSxLQUFBLENBQUEsR0FBUEEsT0FBTyxDQUFBLENBQUk7SUFDWEssSUFBSSxDQUFDYSxXQUFXLENBQUEsQ0FBRTtFQUNwQixDQUFDLENBQUM7RUFFRjtFQUNBO0VBQ0E7RUFDQTtFQUNBLElBQU1DLGlCQUFpQixHQUFHLElBQUFYLHlCQUFhLEVBQUMsVUFBQzdCLENBQWdDLEVBQUk7SURWdkUsSUFBSXlDLEVBQUU7SUNXVnJCLFFBQVEsS0FBQSxJQUFBLElBQVJBLFFBQVEsS0FBQSxLQUFBLENBQUEsR0FBQSxLQUFBLENBQUEsR0FBUkEsUUFBUSxDQUFBLENBQUk7SUFDWixDQUFBcUIsRUFBQSxHQUFBbkIsaUJBQWlCLEtBQUEsSUFBQSxJQUFqQkEsaUJBQWlCLEtBQUEsS0FBQSxDQUFBLEdBQUEsS0FBQSxDQUFBLEdBQWpCQSxpQkFBaUIsQ0FBRW9CLE9BQU8sTUFBQSxJQUFBLElBQUFELEVBQUEsS0FBQSxLQUFBLENBQUEsR0FBQSxLQUFBLENBQUEsR0FBQUEsRUFBQSxDQUFBRSxJQUFBLENBQUFyQixpQkFBQSxFQUFHdEIsQ0FBQyxDQUFDO0VBQ2pDLENBQUMsQ0FBQztFQUVGLElBQU00QyxXQUFXLEdBQUcsSUFBQUMsY0FBTyxFQUN6QjtJQUFBLE9BQ0UsSUFBQUMsZUFBQSxFQUFDQyxjQUFNLEVBQUFDLE1BQUEsQ0FBQUMsTUFBQSxDQUFBO01BRUxDLElBQUksRUFBQyxRQUFRO01BQ2JDLEtBQUssRUFBQztJQUFXLENBQUEsRUFDYjVCLGdCQUFnQixFQUFBO01BQ3BCbUIsT0FBTyxFQUFFSixXQUFXO01BQUFjLFFBQUEsRUFFbkJuQztJQUFTLENBQUEsQ0FBQSxFQU5OLE9BQU8sQ0FPSjtFQUFBLENBQ1YsRUFDRCxDQUFDQSxTQUFTLEVBQUVNLGdCQUFnQixFQUFFZSxXQUFXLENBQUMsQ0FDM0M7RUFFRCxJQUFNZSxZQUFZLEdBQUcsSUFBQVIsY0FBTyxFQUMxQjtJQUFBLE9BQ0UsSUFBQUMsZUFBQSxFQUFDQyxjQUFNLEVBQUFDLE1BQUEsQ0FBQUMsTUFBQSxDQUFBO01BRUxDLElBQUksRUFBQyxRQUFRO01BQ2JDLEtBQUssRUFBQyxTQUFTO01BQ2YxQixPQUFPLEVBQUVBO0lBQU8sQ0FBQSxFQUNaSCxpQkFBaUIsRUFBQTtNQUNyQm9CLE9BQU8sRUFBRUYsaUJBQWlCO01BQUFZLFFBQUEsRUFFekJ2QztJQUFVLENBQUEsQ0FBQSxFQVBQLFFBQVEsQ0FRTDtFQUFBLENBQ1YsRUFDRCxDQUFDQSxVQUFVLEVBQUVTLGlCQUFpQixFQUFFRyxPQUFPLEVBQUVlLGlCQUFpQixDQUFDLENBQzVEO0VBRUQsSUFBTWMsR0FBRyxHQUFtQixDQUFDVixXQUFXLEVBQUVTLFlBQVksQ0FBbUI7RUFFekUsSUFBSWxDLE1BQU0sRUFBRTtJQUNWLE9BQ0UsSUFBQTJCLGVBQUEsRUFBQSxLQUFBLEVBQUE7TUFBS1MsU0FBUyxFQUFFakQsT0FBTyxDQUFBLENBQUU7TUFBQThDLFFBQUEsRUFDdEJqQyxNQUFNLENBQUM7UUFBRU8sSUFBSSxFQUFKQSxJQUFJO1FBQUVYLE1BQU0sRUFBRWEsWUFBWTtRQUFFVixLQUFLLEVBQUVvQjtNQUFXLENBQUUsRUFBRWdCLEdBQUc7SUFBQyxDQUFBLENBQzVEO0VBRVY7RUFFQSxPQUNFLElBQUFFLGdCQUFBLEVBQUEsS0FBQSxFQUFBO0lBQUtELFNBQVMsRUFBRWpELE9BQU8sQ0FBQSxDQUFFO0lBQUE4QyxRQUFBLEVBQUEsQ0FDdEJSLFdBQVcsRUFDWFMsWUFBWTtFQUFBLENBQUEsQ0FDVDtBQUVWLENBQUM7QUFFRDNDLGFBQWEsQ0FBQytDLFdBQVcsR0FBRyxXQUFXO0FBRWhDLElBQU1DLFNBQVMsR0FBQUMsT0FBQSxDQUFBRCxTQUFBLGdCQUFHLElBQUFFLFdBQUksRUFBQ2xELGFBQWEsQ0FBQztBQUFDLElBQUFtRCxRQUFBLEdBQUFGLE9BQUEsY0FFOUJELFNBQVMiLCJmaWxlIjoiY29tcG9uZW50cy9Qcm9Gb3JtL1N1Ym1pdHRlci5qcyIsInNvdXJjZXNDb250ZW50IjpbInZhciBfX2F3YWl0ZXIgPSAodGhpcyAmJiB0aGlzLl9fYXdhaXRlcikgfHwgZnVuY3Rpb24gKHRoaXNBcmcsIF9hcmd1bWVudHMsIFAsIGdlbmVyYXRvcikge1xuICAgIGZ1bmN0aW9uIGFkb3B0KHZhbHVlKSB7IHJldHVybiB2YWx1ZSBpbnN0YW5jZW9mIFAgPyB2YWx1ZSA6IG5ldyBQKGZ1bmN0aW9uIChyZXNvbHZlKSB7IHJlc29sdmUodmFsdWUpOyB9KTsgfVxuICAgIHJldHVybiBuZXcgKFAgfHwgKFAgPSBQcm9taXNlKSkoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkge1xuICAgICAgICBmdW5jdGlvbiBmdWxmaWxsZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3IubmV4dCh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XG4gICAgICAgIGZ1bmN0aW9uIHJlamVjdGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yW1widGhyb3dcIl0odmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxuICAgICAgICBmdW5jdGlvbiBzdGVwKHJlc3VsdCkgeyByZXN1bHQuZG9uZSA/IHJlc29sdmUocmVzdWx0LnZhbHVlKSA6IGFkb3B0KHJlc3VsdC52YWx1ZSkudGhlbihmdWxmaWxsZWQsIHJlamVjdGVkKTsgfVxuICAgICAgICBzdGVwKChnZW5lcmF0b3IgPSBnZW5lcmF0b3IuYXBwbHkodGhpc0FyZywgX2FyZ3VtZW50cyB8fCBbXSkpLm5leHQoKSk7XG4gICAgfSk7XG59O1xuaW1wb3J0IHsganN4IGFzIF9qc3gsIGpzeHMgYXMgX2pzeHMgfSBmcm9tIFwicmVhY3QvanN4LXJ1bnRpbWVcIjtcbmltcG9ydCB7IG1lbW8sIHVzZU1lbW8gfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgdXNlTWVtb2l6ZWRGbiBmcm9tICdAMW1vbmV5L2hvb2tzL3VzZU1lbW9pemVkRm4nO1xuaW1wb3J0IHsgZGVmYXVsdCBhcyBjbGFzc25hbWVzIH0gZnJvbSAnLi4vLi4vdXRpbHMvY2xhc3NuYW1lcyc7XG5pbXBvcnQgeyB1c2VGb3JtSW5zdGFuY2UgfSBmcm9tICcuL2NvbnRleHQnO1xuaW1wb3J0IHsgQnV0dG9uIH0gZnJvbSAnLi4vQnV0dG9uJztcbmltcG9ydCB7IENTU19QUkVGSVgsIERFRkFVTFRfVEVYVCB9IGZyb20gJy4vY29uc3RhbnRzJztcbmNvbnN0IGNsYXNzZXMgPSBjbGFzc25hbWVzKGAke0NTU19QUkVGSVh9LXN1Ym1pdHRlcmApO1xuY29uc3QgU3VibWl0dGVyQmFzZSA9IChwcm9wcykgPT4ge1xuICAgIGNvbnN0IHsgc3VibWl0VGV4dCA9IERFRkFVTFRfVEVYVC5zdWJtaXQsIHJlc2V0VGV4dCA9IERFRkFVTFRfVEVYVC5yZXNldCwgcmVuZGVyLCBvblN1Ym1pdCwgb25SZXNldCwgc3VibWl0QnV0dG9uUHJvcHMsIHJlc2V0QnV0dG9uUHJvcHMsIGxvYWRpbmcgPSBmYWxzZSwgfSA9IHByb3BzO1xuICAgIGNvbnN0IGZvcm0gPSB1c2VGb3JtSW5zdGFuY2UoKTtcbiAgICBjb25zdCBoYW5kbGVTdWJtaXQgPSB1c2VNZW1vaXplZEZuKCgpID0+IF9fYXdhaXRlcih2b2lkIDAsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICBvblN1Ym1pdCA9PT0gbnVsbCB8fCBvblN1Ym1pdCA9PT0gdm9pZCAwID8gdm9pZCAwIDogb25TdWJtaXQoKTtcbiAgICAgICAgeWllbGQgZm9ybS5zdWJtaXRGb3JtKCk7XG4gICAgfSkpO1xuICAgIGNvbnN0IGhhbmRsZVJlc2V0ID0gdXNlTWVtb2l6ZWRGbigoKSA9PiB7XG4gICAgICAgIG9uUmVzZXQgPT09IG51bGwgfHwgb25SZXNldCA9PT0gdm9pZCAwID8gdm9pZCAwIDogb25SZXNldCgpO1xuICAgICAgICBmb3JtLnJlc2V0RmllbGRzKCk7XG4gICAgfSk7XG4gICAgLy8gVGhlIGRlZmF1bHQgc3VibWl0IGJ1dHRvbiBrZWVwcyB0eXBlPVwic3VibWl0XCIgc28gdGhlIGFjdHVhbCBzdWJtaXNzaW9uXG4gICAgLy8gZmxvd3MgdGhyb3VnaCB0aGUgPGZvcm0+IG9uU3VibWl0IGhhbmRsZXIgZXhhY3RseSBvbmNlIOKAlCB0aGlzIGNsaWNrXG4gICAgLy8gaGFuZGxlciBvbmx5IGZpcmVzIHRoZSB1c2VyJ3Mgb25TdWJtaXQgY2FsbGJhY2sgKHBsdXMgYW55IG9uQ2xpY2sgdGhleVxuICAgIC8vIHBhc3NlZCB2aWEgc3VibWl0QnV0dG9uUHJvcHMpLlxuICAgIGNvbnN0IGhhbmRsZVN1Ym1pdENsaWNrID0gdXNlTWVtb2l6ZWRGbigoZSkgPT4ge1xuICAgICAgICB2YXIgX2E7XG4gICAgICAgIG9uU3VibWl0ID09PSBudWxsIHx8IG9uU3VibWl0ID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvblN1Ym1pdCgpO1xuICAgICAgICAoX2EgPSBzdWJtaXRCdXR0b25Qcm9wcyA9PT0gbnVsbCB8fCBzdWJtaXRCdXR0b25Qcm9wcyA9PT0gdm9pZCAwID8gdm9pZCAwIDogc3VibWl0QnV0dG9uUHJvcHMub25DbGljaykgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmNhbGwoc3VibWl0QnV0dG9uUHJvcHMsIGUpO1xuICAgIH0pO1xuICAgIGNvbnN0IHJlc2V0QnV0dG9uID0gdXNlTWVtbygoKSA9PiAoX2pzeChCdXR0b24sIE9iamVjdC5hc3NpZ24oeyB0eXBlOiBcImJ1dHRvblwiLCBjb2xvcjogXCJzZWNvbmRhcnlcIiB9LCByZXNldEJ1dHRvblByb3BzLCB7IG9uQ2xpY2s6IGhhbmRsZVJlc2V0LCBjaGlsZHJlbjogcmVzZXRUZXh0IH0pLCBcInJlc2V0XCIpKSwgW3Jlc2V0VGV4dCwgcmVzZXRCdXR0b25Qcm9wcywgaGFuZGxlUmVzZXRdKTtcbiAgICBjb25zdCBzdWJtaXRCdXR0b24gPSB1c2VNZW1vKCgpID0+IChfanN4KEJ1dHRvbiwgT2JqZWN0LmFzc2lnbih7IHR5cGU6IFwic3VibWl0XCIsIGNvbG9yOiBcInByaW1hcnlcIiwgbG9hZGluZzogbG9hZGluZyB9LCBzdWJtaXRCdXR0b25Qcm9wcywgeyBvbkNsaWNrOiBoYW5kbGVTdWJtaXRDbGljaywgY2hpbGRyZW46IHN1Ym1pdFRleHQgfSksIFwic3VibWl0XCIpKSwgW3N1Ym1pdFRleHQsIHN1Ym1pdEJ1dHRvblByb3BzLCBsb2FkaW5nLCBoYW5kbGVTdWJtaXRDbGlja10pO1xuICAgIGNvbnN0IGRvbSA9IFtyZXNldEJ1dHRvbiwgc3VibWl0QnV0dG9uXTtcbiAgICBpZiAocmVuZGVyKSB7XG4gICAgICAgIHJldHVybiAoX2pzeChcImRpdlwiLCB7IGNsYXNzTmFtZTogY2xhc3NlcygpLCBjaGlsZHJlbjogcmVuZGVyKHsgZm9ybSwgc3VibWl0OiBoYW5kbGVTdWJtaXQsIHJlc2V0OiBoYW5kbGVSZXNldCB9LCBkb20pIH0pKTtcbiAgICB9XG4gICAgcmV0dXJuIChfanN4cyhcImRpdlwiLCB7IGNsYXNzTmFtZTogY2xhc3NlcygpLCBjaGlsZHJlbjogW3Jlc2V0QnV0dG9uLCBzdWJtaXRCdXR0b25dIH0pKTtcbn07XG5TdWJtaXR0ZXJCYXNlLmRpc3BsYXlOYW1lID0gJ1N1Ym1pdHRlcic7XG5leHBvcnQgY29uc3QgU3VibWl0dGVyID0gbWVtbyhTdWJtaXR0ZXJCYXNlKTtcbmV4cG9ydCBkZWZhdWx0IFN1Ym1pdHRlcjsiLG51bGxdLCJzb3VyY2VSb290IjoiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjIn0=
@@ -1,13 +1,32 @@
1
- import type { ProFormContextValue, FormListContextValue, ProFormFormInstance } from './interface';
2
- export declare const ProFormContext: import("react").Context<ProFormContextValue | null>;
1
+ import type { ProFormContextValue, ProFormStableContextValue, ProFormStateContextValue, FormListContextValue, ProFormFormInstance } from './interface';
2
+ export declare const ProFormStableContext: import("react").Context<ProFormStableContextValue | null>;
3
+ export declare const ProFormStateContext: import("react").Context<ProFormStateContextValue | null>;
4
+ /** Read ONLY the stable slice (config + dispatchers) — no per-keystroke re-renders. */
5
+ export declare const useProFormStable: () => ProFormStableContextValue;
6
+ /** Read ONLY the volatile slice (values/errors/…) — re-renders on every change. */
7
+ export declare const useProFormState: () => ProFormStateContextValue;
3
8
  /**
4
9
  * Read the unified ProForm context (merged form core + ProForm semantics).
10
+ * Subscribes to BOTH slices — re-renders whenever form values change.
5
11
  * Throws when used outside `<ProForm>`.
6
12
  */
7
13
  export declare const useProFormContext: () => ProFormContextValue;
8
14
  /**
9
15
  * Read the ProForm form instance (superset of FormCoreInstance with format helpers).
16
+ * Subscribes only to the stable slice — does NOT re-render per keystroke.
17
+ * Pass a `Values` type argument to get a typed instance.
10
18
  */
11
- export declare const useFormInstance: () => ProFormFormInstance;
19
+ export declare const useFormInstance: <Values = Record<string, unknown>>() => ProFormFormInstance<Values>;
20
+ export interface UseFormWatch {
21
+ /** Watch a single field; dot-paths supported (e.g. `"address.city"`). */
22
+ (name: string): unknown;
23
+ /** Watch the whole values object. */
24
+ (): Record<string, unknown>;
25
+ }
26
+ /**
27
+ * Watch a single field or the whole values object. Re-renders whenever form
28
+ * values change. Lighter alternative to the `ProForm.Dependency` render-prop.
29
+ */
30
+ export declare const useFormWatch: UseFormWatch;
12
31
  export declare const FormListContext: import("react").Context<FormListContextValue>;
13
32
  export declare const useFormListContext: () => FormListContextValue;