@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,13 +1,14 @@
1
+ import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
1
2
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
3
  import React, { memo, useEffect } from 'react';
3
4
  import { Col } from '../Grid';
4
5
  import { TypographyBody, TypographyLabel } from '../Typography';
5
6
  import { default as classnames, joinCls } from '../../utils/classnames';
6
7
  import { useFormItem } from './core/useFormItem';
7
- import { FORM_ERROR_COLOR, FORM_ERROR_SIZE, FORM_DESCRIPTION_COLOR, FORM_DESCRIPTION_SIZE, FORM_FEEDBACK_COLOR, FORM_FEEDBACK_SIZE, FORM_LABEL_COLOR, FORM_LABEL_SIZE } from './core/constants';
8
+ import { FORM_ERROR_COLOR, FORM_ERROR_SIZE, FORM_WARNING_COLOR, FORM_WARNING_SIZE, FORM_DESCRIPTION_COLOR, FORM_DESCRIPTION_SIZE, FORM_FEEDBACK_COLOR, FORM_FEEDBACK_SIZE, FORM_LABEL_COLOR, FORM_LABEL_SIZE } from './core/constants';
8
9
  import { useProFormContext } from './context';
9
10
  import { DEFAULT_COL_SPAN } from './constants';
10
- import { valueEnumToOptions } from './utils';
11
+ import { valueEnumToOptions, formatDateByPattern, DATE_FORMAT, DATE_TIME_FORMAT } from './utils';
11
12
  var EMPTY_TEXT_DEFAULT = '-';
12
13
  // ---------------------------------------------------------------------------
13
14
  // Read-mode rendering for each supported valueType
@@ -37,7 +38,9 @@ function renderByValueType(valueType, value, props) {
37
38
  return match ? match.label : String(value);
38
39
  }
39
40
  case 'date':
41
+ return value instanceof Date ? formatDateByPattern(value, DATE_FORMAT) : String(value);
40
42
  case 'dateTime':
43
+ return value instanceof Date ? formatDateByPattern(value, DATE_TIME_FORMAT) : String(value);
41
44
  case 'text':
42
45
  default:
43
46
  return String(value);
@@ -77,14 +80,14 @@ var ReadonlyChild = /*#__PURE__*/memo(ReadonlyChildBase);
77
80
  var ConvertValueChildBase = function ConvertValueChildBase(_ref2) {
78
81
  var name = _ref2.name,
79
82
  convertValue = _ref2.convertValue,
83
+ _ref2$valuePropName = _ref2.valuePropName,
84
+ valuePropName = _ref2$valuePropName === void 0 ? 'value' : _ref2$valuePropName,
80
85
  children = _ref2.children;
81
86
  var _useProFormContext2 = useProFormContext(),
82
87
  values = _useProFormContext2.values;
83
88
  var raw = values[name];
84
89
  var converted = convertValue ? convertValue(raw, name) : raw;
85
- return /*#__PURE__*/React.cloneElement(children, {
86
- value: converted
87
- });
90
+ return /*#__PURE__*/React.cloneElement(children, _defineProperty({}, valuePropName, converted));
88
91
  };
89
92
  ConvertValueChildBase.displayName = 'ProFormItemConvertValue';
90
93
  var ConvertValueChild = /*#__PURE__*/memo(ConvertValueChildBase);
@@ -92,38 +95,57 @@ var ConvertValueChild = /*#__PURE__*/memo(ConvertValueChildBase);
92
95
  // ProFormItem
93
96
  // ---------------------------------------------------------------------------
94
97
  var ProFormItemBase = function ProFormItemBase(props) {
95
- var children = props.children,
96
- name = props.name,
97
- label = props.label,
98
- description = props.description,
99
- rules = props.rules,
100
- required = props.required,
101
- feedback = props.feedback,
102
- validateStatus = props.validateStatus,
103
- _props$className = props.className,
104
- className = _props$className === void 0 ? '' : _props$className,
105
- _props$prefixCls = props.prefixCls,
106
- prefixCls = _props$prefixCls === void 0 ? 'form-item' : _props$prefixCls,
107
- hidden = props.hidden,
108
- transform = props.transform,
109
- convertValue = props.convertValue,
110
- valueType = props.valueType,
111
- readonlyRender = props.readonlyRender,
112
- colProps = props.colProps,
113
- modeProp = props.mode,
114
- _props$emptyText = props.emptyText,
115
- emptyText = _props$emptyText === void 0 ? EMPTY_TEXT_DEFAULT : _props$emptyText,
116
- valueEnum = props.valueEnum;
117
98
  var ctx = useProFormContext();
99
+ // Form-level `formItemProps` act as DEFAULTS; props explicitly set on the
100
+ // item win. JSX frequently passes `undefined` for unset props (e.g. the
101
+ // createProFormField pass-through), so only defined values may override.
102
+ var mergedProps = props;
103
+ if (ctx.formItemProps) {
104
+ var merged = Object.assign({}, ctx.formItemProps);
105
+ for (var _i = 0, _Object$keys = Object.keys(props); _i < _Object$keys.length; _i++) {
106
+ var key = _Object$keys[_i];
107
+ var value = props[key];
108
+ if (value !== undefined) merged[key] = value;
109
+ }
110
+ mergedProps = merged;
111
+ }
112
+ var _mergedProps = mergedProps,
113
+ children = _mergedProps.children,
114
+ name = _mergedProps.name,
115
+ label = _mergedProps.label,
116
+ description = _mergedProps.description,
117
+ rules = _mergedProps.rules,
118
+ required = _mergedProps.required,
119
+ feedback = _mergedProps.feedback,
120
+ validateStatus = _mergedProps.validateStatus,
121
+ _mergedProps$classNam = _mergedProps.className,
122
+ className = _mergedProps$classNam === void 0 ? '' : _mergedProps$classNam,
123
+ _mergedProps$prefixCl = _mergedProps.prefixCls,
124
+ prefixCls = _mergedProps$prefixCl === void 0 ? 'form-item' : _mergedProps$prefixCl,
125
+ hidden = _mergedProps.hidden,
126
+ transform = _mergedProps.transform,
127
+ convertValue = _mergedProps.convertValue,
128
+ valueType = _mergedProps.valueType,
129
+ readonlyRender = _mergedProps.readonlyRender,
130
+ colProps = _mergedProps.colProps,
131
+ modeProp = _mergedProps.mode,
132
+ _mergedProps$emptyTex = _mergedProps.emptyText,
133
+ emptyText = _mergedProps$emptyTex === void 0 ? EMPTY_TEXT_DEFAULT : _mergedProps$emptyTex,
134
+ valueEnum = _mergedProps.valueEnum,
135
+ valuePropName = _mergedProps.valuePropName,
136
+ validateDebounce = _mergedProps.validateDebounce;
118
137
  var mergedMode = modeProp !== null && modeProp !== void 0 ? modeProp : ctx.mode;
119
138
  var isReadonly = mergedMode === 'read';
120
139
  var _useFormItem = useFormItem({
121
140
  name: name,
122
141
  rules: rules,
123
142
  required: required,
124
- validateStatus: validateStatus
143
+ validateStatus: validateStatus,
144
+ valuePropName: valuePropName,
145
+ validateDebounce: validateDebounce
125
146
  }),
126
147
  fieldError = _useFormItem.fieldError,
148
+ fieldWarning = _useFormItem.fieldWarning,
127
149
  isRequired = _useFormItem.isRequired,
128
150
  size = _useFormItem.size,
129
151
  labelAlign = _useFormItem.labelAlign,
@@ -137,6 +159,14 @@ var ProFormItemBase = function ProFormItemBase(props) {
137
159
  ctx.unregisterTransform(name);
138
160
  };
139
161
  }, [name, transform, ctx.registerTransform, ctx.unregisterTransform]);
162
+ // Register / unregister valueType (drives valueType-aware dateFormatter)
163
+ useEffect(function () {
164
+ if (!name || !valueType) return;
165
+ ctx.registerValueType(name, valueType);
166
+ return function () {
167
+ ctx.unregisterValueType(name);
168
+ };
169
+ }, [name, valueType, ctx.registerValueType, ctx.unregisterValueType]);
140
170
  if (hidden) return null;
141
171
  var controlChild;
142
172
  if (isReadonly) {
@@ -156,6 +186,7 @@ var ProFormItemBase = function ProFormItemBase(props) {
156
186
  controlChild = _jsx(ConvertValueChild, {
157
187
  name: name,
158
188
  convertValue: convertValue,
189
+ valuePropName: valuePropName,
159
190
  children: injected
160
191
  });
161
192
  } else {
@@ -164,7 +195,7 @@ var ProFormItemBase = function ProFormItemBase(props) {
164
195
  }
165
196
  var classes = classnames(prefixCls);
166
197
  var shell = _jsxs("div", {
167
- className: classes(undefined, joinCls(size === 'small' && classes('small'), className)),
198
+ className: classes(undefined, joinCls(classes(size), className)),
168
199
  children: [label && _jsxs("div", {
169
200
  className: classes('label-wrapper', joinCls(classes('label-wrapper-vertical'), labelAlign && classes("label-wrapper-".concat(labelAlign)))),
170
201
  children: [_jsx(TypographyLabel, {
@@ -188,7 +219,13 @@ var ProFormItemBase = function ProFormItemBase(props) {
188
219
  size: FORM_ERROR_SIZE,
189
220
  color: FORM_ERROR_COLOR,
190
221
  children: fieldError
191
- }), !fieldError && feedback && _jsx(TypographyBody, {
222
+ }), !fieldError && fieldWarning && _jsx(TypographyBody, {
223
+ as: "div",
224
+ className: classes('warning'),
225
+ size: FORM_WARNING_SIZE,
226
+ color: FORM_WARNING_COLOR,
227
+ children: fieldWarning
228
+ }), !fieldError && !fieldWarning && feedback && _jsx(TypographyBody, {
192
229
  as: "div",
193
230
  className: classes('feedback'),
194
231
  size: FORM_FEEDBACK_SIZE,
@@ -198,12 +235,12 @@ var ProFormItemBase = function ProFormItemBase(props) {
198
235
  })]
199
236
  });
200
237
  if (ctx.grid) {
201
- var merged = Object.assign(Object.assign({}, ctx.colProps), colProps);
202
- var _merged$span = merged.span,
238
+ var _merged = Object.assign(Object.assign({}, ctx.colProps), colProps);
239
+ var _merged$span = _merged.span,
203
240
  span = _merged$span === void 0 ? DEFAULT_COL_SPAN : _merged$span,
204
- sm = merged.sm,
205
- md = merged.md,
206
- lg = merged.lg;
241
+ sm = _merged.sm,
242
+ md = _merged.md,
243
+ lg = _merged.lg;
207
244
  return _jsx(Col, {
208
245
  span: span,
209
246
  sm: sm,
@@ -217,4 +254,4 @@ var ProFormItemBase = function ProFormItemBase(props) {
217
254
  ProFormItemBase.displayName = 'ProFormItem';
218
255
  export var ProFormItem = /*#__PURE__*/memo(ProFormItemBase);
219
256
  export default ProFormItem;
220
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvUHJvRm9ybS9Qcm9Gb3JtSXRlbS5qcyIsImNvbXBvbmVudHMvc3JjL2NvbXBvbmVudHMvUHJvRm9ybS9Qcm9Gb3JtSXRlbS50c3giXSwibmFtZXMiOlsianN4IiwiX2pzeCIsImpzeHMiLCJfanN4cyIsIlJlYWN0IiwibWVtbyIsInVzZUVmZmVjdCIsIkNvbCIsIlR5cG9ncmFwaHlCb2R5IiwiVHlwb2dyYXBoeUxhYmVsIiwiZGVmYXVsdCIsImNsYXNzbmFtZXMiLCJqb2luQ2xzIiwidXNlRm9ybUl0ZW0iLCJGT1JNX0VSUk9SX0NPTE9SIiwiRk9STV9FUlJPUl9TSVpFIiwiRk9STV9ERVNDUklQVElPTl9DT0xPUiIsIkZPUk1fREVTQ1JJUFRJT05fU0laRSIsIkZPUk1fRkVFREJBQ0tfQ09MT1IiLCJGT1JNX0ZFRURCQUNLX1NJWkUiLCJGT1JNX0xBQkVMX0NPTE9SIiwiRk9STV9MQUJFTF9TSVpFIiwidXNlUHJvRm9ybUNvbnRleHQiLCJERUZBVUxUX0NPTF9TUEFOIiwidmFsdWVFbnVtVG9PcHRpb25zIiwiRU1QVFlfVEVYVF9ERUZBVUxUIiwicmVuZGVyQnlWYWx1ZVR5cGUiLCJ2YWx1ZVR5cGUiLCJ2YWx1ZSIsInByb3BzIiwidW5kZWZpbmVkIiwicmVwZWF0IiwiU3RyaW5nIiwibGVuZ3RoIiwibnVtIiwiTnVtYmVyIiwiaXNOYU4iLCJ0b0xvY2FsZVN0cmluZyIsInZhbHVlRW51bSIsIm9wdGlvbnMiLCJtYXRjaCIsImZpbmQiLCJvIiwibGFiZWwiLCJSZWFkb25seUNoaWxkQmFzZSIsIl9yZWYiLCJuYW1lIiwiY29udmVydFZhbHVlIiwicmVhZG9ubHlSZW5kZXIiLCJlbXB0eVRleHQiLCJfdXNlUHJvRm9ybUNvbnRleHQiLCJ2YWx1ZXMiLCJyYXciLCJub2RlIiwiY2hpbGRyZW4iLCJyZW5kZXJlZCIsImRpc3BsYXlOYW1lIiwiUmVhZG9ubHlDaGlsZCIsIkNvbnZlcnRWYWx1ZUNoaWxkQmFzZSIsIl9yZWYyIiwiX3VzZVByb0Zvcm1Db250ZXh0MiIsImNvbnZlcnRlZCIsImNsb25lRWxlbWVudCIsIkNvbnZlcnRWYWx1ZUNoaWxkIiwiUHJvRm9ybUl0ZW1CYXNlIiwiZGVzY3JpcHRpb24iLCJydWxlcyIsInJlcXVpcmVkIiwiZmVlZGJhY2siLCJ2YWxpZGF0ZVN0YXR1cyIsIl9wcm9wcyRjbGFzc05hbWUiLCJjbGFzc05hbWUiLCJfcHJvcHMkcHJlZml4Q2xzIiwicHJlZml4Q2xzIiwiaGlkZGVuIiwidHJhbnNmb3JtIiwiY29sUHJvcHMiLCJtb2RlUHJvcCIsIm1vZGUiLCJfcHJvcHMkZW1wdHlUZXh0IiwiY3R4IiwibWVyZ2VkTW9kZSIsImlzUmVhZG9ubHkiLCJfdXNlRm9ybUl0ZW0iLCJmaWVsZEVycm9yIiwiaXNSZXF1aXJlZCIsInNpemUiLCJsYWJlbEFsaWduIiwicmVxdWlyZWRNYXJrIiwiaW5qZWN0RmllbGQiLCJyZWdpc3RlclRyYW5zZm9ybSIsInVucmVnaXN0ZXJUcmFuc2Zvcm0iLCJjb250cm9sQ2hpbGQiLCJpbmplY3RlZCIsImlzVmFsaWRFbGVtZW50IiwiY2xhc3NlcyIsInNoZWxsIiwiY29uY2F0IiwiYXMiLCJjb2xvciIsImdyaWQiLCJtZXJnZWQiLCJPYmplY3QiLCJhc3NpZ24iLCJfbWVyZ2VkJHNwYW4iLCJzcGFuIiwic20iLCJtZCIsImxnIiwiUHJvRm9ybUl0ZW0iXSwibWFwcGluZ3MiOiJBQUFBLFNBQVNBLEdBQUcsSUFBSUMsSUFBSSxFQUFFQyxJQUFJLElBQUlDLEtBQUssUUFBUSxtQkFBbUI7QUNBOUQsT0FBT0MsS0FBSyxJQUFJQyxJQUFJLEVBQUVDLFNBQVMsUUFBUSxPQUFPO0FBRTlDLFNBQVNDLEdBQUcsUUFBUSxTQUFTO0FBQzdCLFNBQVNDLGNBQWMsRUFBRUMsZUFBZSxRQUFRLGVBQWU7QUFDL0QsU0FBU0MsT0FBTyxJQUFJQyxVQUFVLEVBQUVDLE9BQU8sUUFBUSx3QkFBd0I7QUFDdkUsU0FBU0MsV0FBVyxRQUFRLG9CQUFvQjtBQUNoRCxTQUNFQyxnQkFBZ0IsRUFDaEJDLGVB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QUNiMEYsRUFBRSxFQUFDLEtBQUs7UUFDUjNCLFNBQVMsRUFBRXdCLE9BQU8sQ0FBQyxVQUFVLENBQUM7UUFDOUJULElBQUksRUFBRW5FLGtCQUFrQjtRQUN4QmdGLEtBQUssRUFBRWpGLG1CQUFtQjtRQUFBb0MsUUFBQSxFQUV6QmM7TUFBUSxDQUFBLENBRVo7SUFBQSxDQUFBLENBQ0c7RUFBQSxDQUFBLENBRVQ7RUFFRCxJQUFJWSxHQUFHLENBQUNvQixJQUFJLEVBQUU7SUFDWixJQUFNQyxNQUFNLEdBQUFDLE1BQUEsQ0FBQUMsTUFBQSxDQUFBRCxNQUFBLENBQUFDLE1BQUEsQ0FBQSxDQUFBLENBQUEsRUFBUXZCLEdBQUcsQ0FBQ0osUUFBUSxDQUFBLEVBQUtBLFFBQVEsQ0FBRTtJQUMvQyxJQUFBNEIsWUFBQSxHQUFnREgsTUFBTSxDQUE5Q0ksSUFBSTtNQUFKQSxJQUFJLEdBQUFELFlBQUEsY0FBR2pGLGdCQUFnQixHQUFBaUYsWUFBQTtNQUFFRSxFQUFFLEdBQWFMLE1BQU0sQ0FBckJLLEVBQUU7TUFBRUMsRUFBRSxHQUFTTixNQUFNLENBQWpCTSxFQUFFO01BQUVDLEVBQUUsR0FBS1AsTUFBTSxDQUFiTyxFQUFFO0lBQzNDLE9BQU8zRyxJQUFBLENBQUNNLEdBQUcsRUFBQTtNQUFDa0csSUFBSSxFQUFFQSxJQUFJO01BQUVDLEVBQUUsRUFBRUEsRUFBRTtNQUFFQyxFQUFFLEVBQUVBLEVBQUU7TUFBRUMsRUFBRSxFQUFFQSxFQUFFO01BQUF0RCxRQUFBLEVBQUcwQztJQUFLLENBQUEsQ0FBTztFQUMvRDtFQUVBLE9BQU9BLEtBQUs7QUFDZCxDQUFDO0FBRURoQyxlQUFlLENBQUNSLFdBQVcsR0FBRyxhQUFhO0FBRTNDLE9BQU8sSUFBTXFELFdBQVcsZ0JBQUd4RyxJQUFJLENBQUMyRCxlQUFlLENBQUM7QUFFaEQsZUFBZTZDLFdBQVciLCJmaWxlIjoiY29tcG9uZW50cy9Qcm9Gb3JtL1Byb0Zvcm1JdGVtLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsganN4IGFzIF9qc3gsIGpzeHMgYXMgX2pzeHMgfSBmcm9tIFwicmVhY3QvanN4LXJ1bnRpbWVcIjtcbmltcG9ydCBSZWFjdCwgeyBtZW1vLCB1c2VFZmZlY3QgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBDb2wgfSBmcm9tICcuLi9HcmlkJztcbmltcG9ydCB7IFR5cG9ncmFwaHlCb2R5LCBUeXBvZ3JhcGh5TGFiZWwgfSBmcm9tICcuLi9UeXBvZ3JhcGh5JztcbmltcG9ydCB7IGRlZmF1bHQgYXMgY2xhc3NuYW1lcywgam9pbkNscyB9IGZyb20gJy4uLy4uL3V0aWxzL2NsYXNzbmFtZXMnO1xuaW1wb3J0IHsgdXNlRm9ybUl0ZW0gfSBmcm9tICcuL2NvcmUvdXNlRm9ybUl0ZW0nO1xuaW1wb3J0IHsgRk9STV9FUlJPUl9DT0xPUiwgRk9STV9FUlJPUl9TSVpFLCBGT1JNX0RFU0NSSVBUSU9OX0NPTE9SLCBGT1JNX0RFU0NSSVBUSU9OX1NJWkUsIEZPUk1fRkVFREJBQ0tfQ09MT1IsIEZPUk1fRkVFREJBQ0tfU0laRSwgRk9STV9MQUJFTF9DT0xPUiwgRk9STV9MQUJFTF9TSVpFLCB9IGZyb20gJy4vY29yZS9jb25zdGFudHMnO1xuaW1wb3J0IHsgdXNlUHJvRm9ybUNvbnRleHQgfSBmcm9tICcuL2NvbnRleHQnO1xuaW1wb3J0IHsgREVGQVVMVF9DT0xfU1BBTiB9IGZyb20gJy4vY29uc3RhbnRzJztcbmltcG9ydCB7IHZhbHVlRW51bVRvT3B0aW9ucyB9IGZyb20gJy4vdXRpbHMnO1xuY29uc3QgRU1QVFlfVEVYVF9ERUZBVUxUID0gJy0nO1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBSZWFkLW1vZGUgcmVuZGVyaW5nIGZvciBlYWNoIHN1cHBvcnRlZCB2YWx1ZVR5cGVcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuZnVuY3Rpb24gcmVuZGVyQnlWYWx1ZVR5cGUodmFsdWVUeXBlLCB2YWx1ZSwgcHJvcHMpIHtcbiAgICBpZiAodmFsdWUgPT09IG51bGwgfHwgdmFsdWUgPT09IHVuZGVmaW5lZCB8fCB2YWx1ZSA9PT0gJycpXG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIHN3aXRjaCAodmFsdWVUeXBlKSB7XG4gICAgICAgIGNhc2UgJ3Bhc3N3b3JkJzpcbiAgICAgICAgICAgIHJldHVybiAnKicucmVwZWF0KFN0cmluZyh2YWx1ZSkubGVuZ3RoKTtcbiAgICAgICAgY2FzZSAnc3dpdGNoJzpcbiAgICAgICAgICAgIHJldHVybiB2YWx1ZSA/ICdPbicgOiAnT2ZmJztcbiAgICAgICAgY2FzZSAnZGlnaXQnOiB7XG4gICAgICAgICAgICBjb25zdCBudW0gPSBOdW1iZXIodmFsdWUpO1xuICAgICAgICAgICAgaWYgKE51bWJlci5pc05hTihudW0pKVxuICAgICAgICAgICAgICAgIHJldHVybiBTdHJpbmcodmFsdWUpO1xuICAgICAgICAgICAgcmV0dXJuIG51bS50b0xvY2FsZVN0cmluZygpO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJ3NlbGVjdCc6XG4gICAgICAgIGNhc2UgJ3JhZGlvJzpcbiAgICAgICAgY2FzZSAndGFnJzoge1xuICAgICAgICAgICAgaWYgKCFwcm9wcy52YWx1ZUVudW0pXG4gICAgICAgICAgICAgICAgcmV0dXJuIFN0cmluZyh2YWx1ZSk7XG4gICAgICAgICAgICBjb25zdCBvcHRpb25zID0gdmFsdWVFbnVtVG9PcHRpb25zKHByb3BzLnZhbHVlRW51bSk7XG4gICAgICAgICAgICBjb25zdCBtYXRjaCA9IG9wdGlvbnMuZmluZCgobykgPT4gU3RyaW5nKG8udmFsdWUpID09PSBTdHJpbmcodmFsdWUpKTtcbiAgICAgICAgICAgIHJldHVybiBtYXRjaCA/IG1hdGNoLmxhYmVsIDogU3RyaW5nKHZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgICBjYXNlICdkYXRlJzpcbiAgICAgICAgY2FzZSAnZGF0ZVRpbWUnOlxuICAgICAgICBjYXNlICd0ZXh0JzpcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIHJldHVybiBTdHJpbmcodmFsdWUpO1xuICAgIH1cbn1cbmNvbnN0IFJlYWRvbmx5Q2hpbGRCYXNlID0gKHsgbmFtZSwgdmFsdWVUeXBlLCB2YWx1ZUVudW0sIGNvbnZlcnRWYWx1ZSwgcmVhZG9ubHlSZW5kZXIsIGVtcHR5VGV4dCwgfSkgPT4ge1xuICAgIGNvbnN0IHsgdmFsdWVzIH0gPSB1c2VQcm9Gb3JtQ29udGV4dCgpO1xuICAgIGNvbnN0IHJhdyA9IG5hbWUgPyB2YWx1ZXNbbmFtZV0gOiB1bmRlZmluZWQ7XG4gICAgY29uc3QgdmFsdWUgPSBjb252ZXJ0VmFsdWUgJiYgbmFtZSA/IGNvbnZlcnRWYWx1ZShyYXcsIG5hbWUpIDogcmF3O1xuICAgIGlmIChyZWFkb25seVJlbmRlcikge1xuICAgICAgICBjb25zdCBub2RlID0gcmVhZG9ubHlSZW5kZXIodmFsdWUsIHZhbHVlcyk7XG4gICAgICAgIHJldHVybiBfanN4KFwic3BhblwiLCB7IGNoaWxkcmVuOiBub2RlICE9PSBudWxsICYmIG5vZGUgIT09IHZvaWQgMCA/IG5vZGUgOiBlbXB0eVRleHQgfSk7XG4gICAgfVxuICAgIGlmICh2YWx1ZSA9PT0gbnVsbCB8fCB2YWx1ZSA9PT0gdW5kZWZpbmVkIHx8IHZhbHVlID09PSAnJykge1xuICAgICAgICByZXR1cm4gX2pzeChcInNwYW5cIiwgeyBjaGlsZHJlbjogZW1wdHlUZXh0IH0pO1xuICAgIH1cbiAgICBjb25zdCByZW5kZXJlZCA9IHJlbmRlckJ5VmFsdWVUeXBlKHZhbHVlVHlwZSwgdmFsdWUsIHsgdmFsdWVFbnVtIH0pO1xuICAgIHJldHVybiBfanN4KFwic3BhblwiLCB7IGNoaWxkcmVuOiByZW5kZXJlZCAhPT0gbnVsbCAmJiByZW5kZXJlZCAhPT0gdm9pZCAwID8gcmVuZGVyZWQgOiBlbXB0eVRleHQgfSk7XG59O1xuUmVhZG9ubHlDaGlsZEJhc2UuZGlzcGxheU5hbWUgPSAnUHJvRm9ybUl0ZW1SZWFkb25seSc7XG5jb25zdCBSZWFkb25seUNoaWxkID0gbWVtbyhSZWFkb25seUNoaWxkQmFzZSk7XG5jb25zdCBDb252ZXJ0VmFsdWVDaGlsZEJhc2UgPSAoeyBuYW1lLCBjb252ZXJ0VmFsdWUsIGNoaWxkcmVuIH0pID0+IHtcbiAgICBjb25zdCB7IHZhbHVlcyB9ID0gdXNlUHJvRm9ybUNvbnRleHQoKTtcbiAgICBjb25zdCByYXcgPSB2YWx1ZXNbbmFtZV07XG4gICAgY29uc3QgY29udmVydGVkID0gY29udmVydFZhbHVlID8gY29udmVydFZhbHVlKHJhdywgbmFtZSkgOiByYXc7XG4gICAgcmV0dXJuIFJlYWN0LmNsb25lRWxlbWVudChjaGlsZHJlbiwgeyB2YWx1ZTogY29udmVydGVkIH0pO1xufTtcbkNvbnZlcnRWYWx1ZUNoaWxkQmFzZS5kaXNwbGF5TmFtZSA9ICdQcm9Gb3JtSXRlbUNvbnZlcnRWYWx1ZSc7XG5jb25zdCBDb252ZXJ0VmFsdWVDaGlsZCA9IG1lbW8oQ29udmVydFZhbHVlQ2hpbGRCYXNlKTtcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gUHJvRm9ybUl0ZW1cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuY29uc3QgUHJvRm9ybUl0ZW1CYXNlID0gKHByb3BzKSA9PiB7XG4gICAgY29uc3QgeyBjaGlsZHJlbiwgbmFtZSwgbGFiZWwsIGRlc2NyaXB0aW9uLCBydWxlcywgcmVxdWlyZWQsIGZlZWRiYWNrLCB2YWxpZGF0ZVN0YXR1cywgY2xhc3NOYW1lID0gJycsIHByZWZpeENscyA9ICdmb3JtLWl0ZW0nLCBoaWRkZW4sIHRyYW5zZm9ybSwgY29udmVydFZhbHVlLCB2YWx1ZVR5cGUsIHJlYWRvbmx5UmVuZGVyLCBjb2xQcm9wcywgbW9kZTogbW9kZVByb3AsIGVtcHR5VGV4dCA9IEVNUFRZX1RFWFRfREVGQVVMVCwgdmFsdWVFbnVtLCB9ID0gcHJvcHM7XG4gICAgY29uc3QgY3R4ID0gdXNlUHJvRm9ybUNvbnRleHQoKTtcbiAgICBjb25zdCBtZXJnZWRNb2RlID0gbW9kZVByb3AgIT09IG51bGwgJiYgbW9kZVByb3AgIT09IHZvaWQgMCA/IG1vZGVQcm9wIDogY3R4Lm1vZGU7XG4gICAgY29uc3QgaXNSZWFkb25seSA9IG1lcmdlZE1vZGUgPT09ICdyZWFkJztcbiAgICBjb25zdCB7IGZpZWxkRXJyb3IsIGlzUmVxdWlyZWQsIHNpemUsIGxhYmVsQWxpZ24sIHJlcXVpcmVkTWFyaywgaW5qZWN0RmllbGQsIH0gPSB1c2VGb3JtSXRlbSh7IG5hbWUsIHJ1bGVzLCByZXF1aXJlZCwgdmFsaWRhdGVTdGF0dXMgfSk7XG4gICAgLy8gUmVnaXN0ZXIgLyB1bnJlZ2lzdGVyIHRyYW5zZm9ybVxuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIGlmICghbmFtZSB8fCAhdHJhbnNmb3JtKVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICBjdHgucmVnaXN0ZXJUcmFuc2Zvcm0obmFtZSwgdHJhbnNmb3JtKTtcbiAgICAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgICAgIGN0eC51bnJlZ2lzdGVyVHJhbnNmb3JtKG5hbWUpO1xuICAgICAgICB9O1xuICAgIH0sIFtuYW1lLCB0cmFuc2Zvcm0sIGN0eC5yZWdpc3RlclRyYW5zZm9ybSwgY3R4LnVucmVnaXN0ZXJUcmFuc2Zvcm1dKTtcbiAgICBpZiAoaGlkZGVuKVxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICBsZXQgY29udHJvbENoaWxkO1xuICAgIGlmIChpc1JlYWRvbmx5KSB7XG4gICAgICAgIGNvbnRyb2xDaGlsZCA9IChfanN4KFJlYWRvbmx5Q2hpbGQsIHsgbmFtZTogbmFtZSwgdmFsdWVUeXBlOiB2YWx1ZVR5cGUsIHZhbHVlRW51bTogdmFsdWVFbnVtLCBjb252ZXJ0VmFsdWU6IGNvbnZlcnRWYWx1ZSwgcmVhZG9ubHlSZW5kZXI6IHJlYWRvbmx5UmVuZGVyLCBlbXB0eVRleHQ6IGVtcHR5VGV4dCB9KSk7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgICAvLyBJbmplY3QgZmlyc3Qgc28gdGhlIHJlYWwgZmllbGQgcmVjZWl2ZXMgdmFsdWUvb25DaGFuZ2Uvb25CbHVyLFxuICAgICAgICAvLyB0aGVuIG9wdGlvbmFsbHkgd3JhcCBpbiBDb252ZXJ0VmFsdWVDaGlsZCB0byBvdmVycmlkZSB0aGUgZGlzcGxheWVkIHZhbHVlLlxuICAgICAgICBjb25zdCBpbmplY3RlZCA9IGluamVjdEZpZWxkKGNoaWxkcmVuKTtcbiAgICAgICAgaWYgKGNvbnZlcnRWYWx1ZSAmJiBuYW1lICYmIFJlYWN0LmlzVmFsaWRFbGVtZW50KGluamVjdGVkKSkge1xuICAgICAgICAgICAgY29udHJvbENoaWxkID0gKF9qc3goQ29udmVydFZhbHVlQ2hpbGQsIHsgbmFtZTogbmFtZSwgY29udmVydFZhbHVlOiBjb252ZXJ0VmFsdWUsIGNoaWxkcmVuOiBpbmplY3RlZCB9KSk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBjb250cm9sQ2hpbGQgPSBpbmplY3RlZDtcbiAgICAgICAgfVxuICAgIH1cbiAgICBjb25zdCBjbGFzc2VzID0gY2xhc3NuYW1lcyhwcmVmaXhDbHMpO1xuICAgIGNvbnN0IHNoZWxsID0gKF9qc3hzKFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKHVuZGVmaW5lZCwgam9pbkNscyhzaXplID09PSAnc21hbGwnICYmIGNsYXNzZXMoJ3NtYWxsJyksIGNsYXNzTmFtZSkpLCBjaGlsZHJlbjogW2xhYmVsICYmIChfanN4cyhcImRpdlwiLCB7IGNsYXNzTmFtZTogY2xhc3NlcygnbGFiZWwtd3JhcHBlcicsIGpvaW5DbHMoY2xhc3NlcygnbGFiZWwtd3JhcHBlci12ZXJ0aWNhbCcpLCBsYWJlbEFsaWduICYmIGNsYXNzZXMoYGxhYmVsLXdyYXBwZXItJHtsYWJlbEFsaWdufWApKSksIGNoaWxkcmVuOiBbX2pzeChUeXBvZ3JhcGh5TGFiZWwsIHsgYXM6IFwibGFiZWxcIiwgc2l6ZTogRk9STV9MQUJFTF9TSVpFLCBjb2xvcjogRk9STV9MQUJFTF9DT0xPUiwgY2xhc3NOYW1lOiBjbGFzc2VzKCdsYWJlbCcpLCBjaGlsZHJlbjogbGFiZWwgfSksIGRlc2NyaXB0aW9uICYmIChfanN4KFR5cG9ncmFwaHlCb2R5LCB7IGFzOiBcImRpdlwiLCBjbGFzc05hbWU6IGNsYXNzZXMoJ2Rlc2NyaXB0aW9uJyksIHNpemU6IEZPUk1fREVTQ1JJUFRJT05fU0laRSwgY29sb3I6IEZPUk1fREVTQ1JJUFRJT05fQ09MT1IsIGNoaWxkcmVuOiBkZXNjcmlwdGlvbiB9KSldIH0pKSwgX2pzeHMoXCJkaXZcIiwgeyBjbGFzc05hbWU6IGNsYXNzZXMoJ2NvbnRyb2wnKSwgY2hpbGRyZW46IFtjb250cm9sQ2hpbGQsIGZpZWxkRXJyb3IgJiYgKF9qc3goVHlwb2dyYXBoeUJvZHksIHsgYXM6IFwiZGl2XCIsIGNsYXNzTmFtZTogY2xhc3NlcygnZXJyb3InKSwgc2l6ZTogRk9STV9FUlJPUl9TSVpFLCBjb2xvcjogRk9STV9FUlJPUl9DT0xPUiwgY2hpbGRyZW46IGZpZWxkRXJyb3IgfSkpLCAhZmllbGRFcnJvciAmJiBmZWVkYmFjayAmJiAoX2pzeChUeXBvZ3JhcGh5Qm9keSwgeyBhczogXCJkaXZcIiwgY2xhc3NOYW1lOiBjbGFzc2VzKCdmZWVkYmFjaycpLCBzaXplOiBGT1JNX0ZFRURCQUNLX1NJWkUsIGNvbG9yOiBGT1JNX0ZFRURCQUNLX0NPTE9SLCBjaGlsZHJlbjogZmVlZGJhY2sgfSkpXSB9KV0gfSkpO1xuICAgIGlmIChjdHguZ3JpZCkge1xuICAgICAgICBjb25zdCBtZXJnZWQgPSBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIGN0eC5jb2xQcm9wcyksIGNvbFByb3BzKTtcbiAgICAgICAgY29uc3QgeyBzcGFuID0gREVGQVVMVF9DT0xfU1BBTiwgc20sIG1kLCBsZyB9ID0gbWVyZ2VkO1xuICAgICAgICByZXR1cm4gX2pzeChDb2wsIHsgc3Bhbjogc3Bhbiwgc206IHNtLCBtZDogbWQsIGxnOiBsZywgY2hpbGRyZW46IHNoZWxsIH0pO1xuICAgIH1cbiAgICByZXR1cm4gc2hlbGw7XG59O1xuUHJvRm9ybUl0ZW1CYXNlLmRpc3BsYXlOYW1lID0gJ1Byb0Zvcm1JdGVtJztcbmV4cG9ydCBjb25zdCBQcm9Gb3JtSXRlbSA9IG1lbW8oUHJvRm9ybUl0ZW1CYXNlKTtcbmV4cG9ydCBkZWZhdWx0IFByb0Zvcm1JdGVtOyIsbnVsbF0sInNvdXJjZVJvb3QiOiIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMifQ==
257
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvUHJvRm9ybS9Qcm9Gb3JtSXRlbS5qcyIsImNvbXBvbmVudHMvc3JjL2NvbXBvbmVudHMvUHJvRm9ybS9Qcm9Gb3JtSXRlbS50c3giXSwibmFtZXMiOlsianN4IiwiX2pzeCIsImpzeHMiLCJfanN4cyIsIlJlYWN0IiwibWVtbyIsInVzZUVmZmVjdCIsIkNvbCIsIlR5cG9ncmFwaHlCb2R5IiwiVHlwb2dyYXBoeUxhYmVsIiwiZGVmYXVsdCIsImNsYXNzbmFtZXMiLCJqb2luQ2xzIiwidXNlRm9ybUl0ZW0iLCJGT1JNX0VSUk9SX0NPTE9SIiwiRk9STV9FUlJPUl9TSVpFIiwiRk9STV9XQVJOSU5HX0NPTE9SIiwiRk9STV9XQVJOSU5HX1NJWkUiLCJGT1JNX0RFU0NSSVBUSU9OX0NPTE9SIiwiRk9STV9ERVNDUklQVElPTl9TSVpFIiwiRk9STV9GRUVEQkFDS19DT0xPUiIsIkZPUk1fRkVFREJBQ0tfU0laRSIsIkZPUk1fTEFCRUxfQ09MT1IiLCJGT1JNX0xBQkVMX1NJWkUiLCJ1c2VQcm9Gb3JtQ29udGV4dCIsIkRFRkFVTFRfQ09MX1NQQU4iLCJ2YWx1ZUVudW1Ub09wdGlvbnMiLCJmb3JtYXREYXRlQnlQYXR0ZXJuIiwiREFURV9GT1JNQVQiLCJEQVRFX1RJTUVfRk9STUFUIiwiRU1QVFlfVEVYVF9ERUZBVUxUIiwicmVuZGVyQnlWYWx1ZVR5cGUiLCJ2YWx1ZVR5cGUiLCJ2YWx1ZSIsInByb3BzIiwidW5kZWZpbmVkIiwicmVwZWF0IiwiU3RyaW5nIiwibGVuZ3RoIiwibnVtIiwiTnVtYmVyIiwiaXNOYU4iLCJ0b0xvY2FsZVN0cmluZyIsInZhbHVlRW51bSIsIm9wdGlvbnMiLCJtYXRjaCIsImZpbmQiLCJvIiwibGFiZWwiLCJEYXRlIiwiUmVhZG9ubHlDaGlsZEJhc2UiLCJfcmVmIiwibmFtZSIsImNvbnZlcnRWYWx1ZSIsInJlYWRvbmx5UmVuZGVyIiwiZW1wdHlUZXh0IiwiX3VzZVByb0Zvcm1Db250ZXh0IiwidmFsdWVzIiwicmF3Iiwibm9kZSIsImNoaWxkcmVuIiwicmVuZGVyZWQiLCJkaXNwbGF5TmFtZSIsIlJlYWRvbmx5Q2hpbGQiLCJDb252ZXJ0VmFsdWVDaGlsZEJhc2UiLCJfcmVmMiIsIl9yZWYyJHZhbHVlUHJvcE5hbWUiLCJ2YWx1ZVByb3BOYW1lIiwiX3VzZVByb0Zvcm1Db250ZXh0MiIsImNvbnZlcnRlZCIsImNsb25lRWxlbWVudCIsIl9kZWZpbmVQcm9wZXJ0eSIsIkNvbnZlcnRWYWx1ZUNoaWxkIiwiUHJvRm9ybUl0ZW1CYXNlIiwiY3R4IiwibWVyZ2VkUHJvcHMiLCJmb3JtSXRlbVByb3BzIiwibWVyZ2VkIiwiT2JqZWN0IiwiYXNzaWduIiwiX2kiLCJfT2JqZWN0JGtleXMiLCJrZXlzIiwia2V5IiwiX21lcmdlZFByb3BzIiwiZGVzY3JpcHRpb24iLCJydWxlcyIsInJlcXVpcmVkIiwiZmVlZGJhY2siLCJ2YWxpZGF0ZVN0YXR1cyIsIl9tZXJnZWRQcm9wcyRjbGFzc05hbSIsImNsYXNzTmFtZSIsIl9tZXJnZWRQcm9wcyRwcmVmaXhDbCIsInByZWZpeENscyIsImhpZGRlbiIsInRyYW5zZm9ybSIsImNvbFByb3BzIiwibW9kZVByb3AiLCJtb2RlIiwiX21lcmdlZFByb3BzJGVtcHR5VGV4IiwidmFsaWRhdGVEZWJvdW5jZSIsIm1lcmdlZE1vZGUiLCJpc1JlYWRvbmx5IiwiX3VzZUZvcm1JdGVtIiwiZmllbGRFcnJvciIsImZpZWxkV2FybmluZyIsImlzUmVxdWlyZWQiLCJzaXplIiwibGFiZWxBbGlnbiIsInJlcXVpcmVkTWFyayIsImluamVjdEZpZWxkIiwicmVnaXN0ZXJUcmFuc2Zvcm0iLCJ1bnJlZ2lzdGVyVHJhbnNmb3JtIiwicmVnaXN0ZXJWYWx1ZVR5cGUiLCJ1bnJlZ2lzdGVyVmFsdWVUeXBlIiwiY29udHJvbENoaWxkIiwiaW5qZWN0ZWQiLCJpc1ZhbGlkRWxlbWVudCIsImNsYXNzZXMiLCJzaGVsbCIsImNvbmNhdCIsImFzIiwiY29sb3IiLCJncmlkIiwiX21lcmdlZCRzcGFuIiwic3Bh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cyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGpzeCBhcyBfanN4LCBqc3hzIGFzIF9qc3hzIH0gZnJvbSBcInJlYWN0L2pzeC1ydW50aW1lXCI7XG5pbXBvcnQgUmVhY3QsIHsgbWVtbywgdXNlRWZmZWN0IH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgQ29sIH0gZnJvbSAnLi4vR3JpZCc7XG5pbXBvcnQgeyBUeXBvZ3JhcGh5Qm9keSwgVHlwb2dyYXBoeUxhYmVsIH0gZnJvbSAnLi4vVHlwb2dyYXBoeSc7XG5pbXBvcnQgeyBkZWZhdWx0IGFzIGNsYXNzbmFtZXMsIGpvaW5DbHMgfSBmcm9tICcuLi8uLi91dGlscy9jbGFzc25hbWVzJztcbmltcG9ydCB7IHVzZUZvcm1JdGVtIH0gZnJvbSAnLi9jb3JlL3VzZUZvcm1JdGVtJztcbmltcG9ydCB7IEZPUk1fRVJST1JfQ09MT1IsIEZPUk1fRVJST1JfU0laRSwgRk9STV9XQVJOSU5HX0NPTE9SLCBGT1JNX1dBUk5JTkdfU0laRSwgRk9STV9ERVNDUklQVElPTl9DT0xPUiwgRk9STV9ERVNDUklQVElPTl9TSVpFLCBGT1JNX0ZFRURCQUNLX0NPTE9SLCBGT1JNX0ZFRURCQUNLX1NJWkUsIEZPUk1fTEFCRUxfQ09MT1IsIEZPUk1fTEFCRUxfU0laRSwgfSBmcm9tICcuL2NvcmUvY29uc3RhbnRzJztcbmltcG9ydCB7IHVzZVByb0Zvcm1Db250ZXh0IH0gZnJvbSAnLi9jb250ZXh0JztcbmltcG9ydCB7IERFRkFVTFRfQ09MX1NQQU4gfSBmcm9tICcuL2NvbnN0YW50cyc7XG5pbXBvcnQgeyB2YWx1ZUVudW1Ub09wdGlvbnMsIGZvcm1hdERhdGVCeVBhdHRlcm4sIERBVEVfRk9STUFULCBEQVRFX1RJTUVfRk9STUFUIH0gZnJvbSAnLi91dGlscyc7XG5jb25zdCBFTVBUWV9URVhUX0RFRkFVTFQgPSAnLSc7XG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIFJlYWQtbW9kZSByZW5kZXJpbmcgZm9yIGVhY2ggc3VwcG9ydGVkIHZhbHVlVHlwZVxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5mdW5jdGlvbiByZW5kZXJCeVZhbHVlVHlwZSh2YWx1ZVR5cGUsIHZhbHVlLCBwcm9wcykge1xuICAgIGlmICh2YWx1ZSA9PT0gbnVsbCB8fCB2YWx1ZSA9PT0gdW5kZWZpbmVkIHx8IHZhbHVlID09PSAnJylcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgc3dpdGNoICh2YWx1ZVR5cGUpIHtcbiAgICAgICAgY2FzZSAncGFzc3dvcmQnOlxuICAgICAgICAgICAgcmV0dXJuICcqJy5yZXBlYXQoU3RyaW5nKHZhbHVlKS5sZW5ndGgpO1xuICAgICAgICBjYXNlICdzd2l0Y2gnOlxuICAgICAgICAgICAgcmV0dXJuIHZhbHVlID8gJ09uJyA6ICdPZmYnO1xuICAgICAgICBjYXNlICdkaWdpdCc6IHtcbiAgICAgICAgICAgIGNvbnN0IG51bSA9IE51bWJlcih2YWx1ZSk7XG4gICAgICAgICAgICBpZiAoTnVtYmVyLmlzTmFOKG51bSkpXG4gICAgICAgICAgICAgICAgcmV0dXJuIFN0cmluZyh2YWx1ZSk7XG4gICAgICAgICAgICByZXR1cm4gbnVtLnRvTG9jYWxlU3RyaW5nKCk7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAnc2VsZWN0JzpcbiAgICAgICAgY2FzZSAncmFkaW8nOlxuICAgICAgICBjYXNlICd0YWcnOiB7XG4gICAgICAgICAgICBpZiAoIXByb3BzLnZhbHVlRW51bSlcbiAgICAgICAgICAgICAgICByZXR1cm4gU3RyaW5nKHZhbHVlKTtcbiAgICAgICAgICAgIGNvbnN0IG9wdGlvbnMgPSB2YWx1ZUVudW1Ub09wdGlvbnMocHJvcHMudmFsdWVFbnVtKTtcbiAgICAgICAgICAgIGNvbnN0IG1hdGNoID0gb3B0aW9ucy5maW5kKChvKSA9PiBTdHJpbmcoby52YWx1ZSkgPT09IFN0cmluZyh2YWx1ZSkpO1xuICAgICAgICAgICAgcmV0dXJuIG1hdGNoID8gbWF0Y2gubGFiZWwgOiBTdHJpbmcodmFsdWUpO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJ2RhdGUnOlxuICAgICAgICAgICAgcmV0dXJuIHZhbHVlIGluc3RhbmNlb2YgRGF0ZSA/IGZvcm1hdERhdGVCeVBhdHRlcm4odmFsdWUsIERBVEVfRk9STUFUKSA6IFN0cmluZyh2YWx1ZSk7XG4gICAgICAgIGNhc2UgJ2RhdGVUaW1lJzpcbiAgICAgICAgICAgIHJldHVybiB2YWx1ZSBpbnN0YW5jZW9mIERhdGUgPyBmb3JtYXREYXRlQnlQYXR0ZXJuKHZhbHVlLCBEQVRFX1RJTUVfRk9STUFUKSA6IFN0cmluZyh2YWx1ZSk7XG4gICAgICAgIGNhc2UgJ3RleHQnOlxuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgcmV0dXJuIFN0cmluZyh2YWx1ZSk7XG4gICAgfVxufVxuY29uc3QgUmVhZG9ubHlDaGlsZEJhc2UgPSAoeyBuYW1lLCB2YWx1ZVR5cGUsIHZhbHVlRW51bSwgY29udmVydFZhbHVlLCByZWFkb25seVJlbmRlciwgZW1wdHlUZXh0LCB9KSA9PiB7XG4gICAgY29uc3QgeyB2YWx1ZXMgfSA9IHVzZVByb0Zvcm1Db250ZXh0KCk7XG4gICAgY29uc3QgcmF3ID0gbmFtZSA/IHZhbHVlc1tuYW1lXSA6IHVuZGVmaW5lZDtcbiAgICBjb25zdCB2YWx1ZSA9IGNvbnZlcnRWYWx1ZSAmJiBuYW1lID8gY29udmVydFZhbHVlKHJhdywgbmFtZSkgOiByYXc7XG4gICAgaWYgKHJlYWRvbmx5UmVuZGVyKSB7XG4gICAgICAgIGNvbnN0IG5vZGUgPSByZWFkb25seVJlbmRlcih2YWx1ZSwgdmFsdWVzKTtcbiAgICAgICAgcmV0dXJuIF9qc3goXCJzcGFuXCIsIHsgY2hpbGRyZW46IG5vZGUgIT09IG51bGwgJiYgbm9kZSAhPT0gdm9pZCAwID8gbm9kZSA6IGVtcHR5VGV4dCB9KTtcbiAgICB9XG4gICAgaWYgKHZhbHVlID09PSBudWxsIHx8IHZhbHVlID09PSB1bmRlZmluZWQgfHwgdmFsdWUgPT09ICcnKSB7XG4gICAgICAgIHJldHVybiBfanN4KFwic3BhblwiLCB7IGNoaWxkcmVuOiBlbXB0eVRleHQgfSk7XG4gICAgfVxuICAgIGNvbnN0IHJlbmRlcmVkID0gcmVuZGVyQnlWYWx1ZVR5cGUodmFsdWVUeXBlLCB2YWx1ZSwgeyB2YWx1ZUVudW0gfSk7XG4gICAgcmV0dXJuIF9qc3goXCJzcGFuXCIsIHsgY2hpbGRyZW46IHJlbmRlcmVkICE9PSBudWxsICYmIHJlbmRlcmVkICE9PSB2b2lkIDAgPyByZW5kZXJlZCA6IGVtcHR5VGV4dCB9KTtcbn07XG5SZWFkb25seUNoaWxkQmFzZS5kaXNwbGF5TmFtZSA9ICdQcm9Gb3JtSXRlbVJlYWRvbmx5JztcbmNvbnN0IFJlYWRvbmx5Q2hpbGQgPSBtZW1vKFJlYWRvbmx5Q2hpbGRCYXNlKTtcbmNvbnN0IENvbnZlcnRWYWx1ZUNoaWxkQmFzZSA9ICh7IG5hbWUsIGNvbnZlcnRWYWx1ZSwgdmFsdWVQcm9wTmFtZSA9ICd2YWx1ZScsIGNoaWxkcmVuLCB9KSA9PiB7XG4gICAgY29uc3QgeyB2YWx1ZXMgfSA9IHVzZVByb0Zvcm1Db250ZXh0KCk7XG4gICAgY29uc3QgcmF3ID0gdmFsdWVzW25hbWVdO1xuICAgIGNvbnN0IGNvbnZlcnRlZCA9IGNvbnZlcnRWYWx1ZSA/IGNvbnZlcnRWYWx1ZShyYXcsIG5hbWUpIDogcmF3O1xuICAgIHJldHVybiBSZWFjdC5jbG9uZUVsZW1lbnQoY2hpbGRyZW4sIHsgW3ZhbHVlUHJvcE5hbWVdOiBjb252ZXJ0ZWQgfSk7XG59O1xuQ29udmVydFZhbHVlQ2hpbGRCYXNlLmRpc3BsYXlOYW1lID0gJ1Byb0Zvcm1JdGVtQ29udmVydFZhbHVlJztcbmNvbnN0IENvbnZlcnRWYWx1ZUNoaWxkID0gbWVtbyhDb252ZXJ0VmFsdWVDaGlsZEJhc2UpO1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBQcm9Gb3JtSXRlbVxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5jb25zdCBQcm9Gb3JtSXRlbUJhc2UgPSAocHJvcHMpID0+IHtcbiAgICBjb25zdCBjdHggPSB1c2VQcm9Gb3JtQ29udGV4dCgpO1xuICAgIC8vIEZvcm0tbGV2ZWwgYGZvcm1JdGVtUHJvcHNgIGFjdCBhcyBERUZBVUxUUzsgcHJvcHMgZXhwbGljaXRseSBzZXQgb24gdGhlXG4gICAgLy8gaXRlbSB3aW4uIEpTWCBmcmVxdWVudGx5IHBhc3NlcyBgdW5kZWZpbmVkYCBmb3IgdW5zZXQgcHJvcHMgKGUuZy4gdGhlXG4gICAgLy8gY3JlYXRlUHJvRm9ybUZpZWxkIHBhc3MtdGhyb3VnaCksIHNvIG9ubHkgZGVmaW5lZCB2YWx1ZXMgbWF5IG92ZXJyaWRlLlxuICAgIGxldCBtZXJnZWRQcm9wcyA9IHByb3BzO1xuICAgIGlmIChjdHguZm9ybUl0ZW1Qcm9wcykge1xuICAgICAgICBjb25zdCBtZXJnZWQgPSBPYmplY3QuYXNzaWduKHt9LCBjdHguZm9ybUl0ZW1Qcm9wcyk7XG4gICAgICAgIGZvciAoY29uc3Qga2V5IG9mIE9iamVjdC5rZXlzKHByb3BzKSkge1xuICAgICAgICAgICAgY29uc3QgdmFsdWUgPSBwcm9wc1trZXldO1xuICAgICAgICAgICAgaWYgKHZhbHVlICE9PSB1bmRlZmluZWQpXG4gICAgICAgICAgICAgICAgbWVyZ2VkW2tleV0gPSB2YWx1ZTtcbiAgICAgICAgfVxuICAgICAgICBtZXJnZWRQcm9wcyA9IG1lcmdlZDtcbiAgICB9XG4gICAgY29uc3QgeyBjaGlsZHJlbiwgbmFtZSwgbGFiZWwsIGRlc2NyaXB0aW9uLCBydWxlcywgcmVxdWlyZWQsIGZlZWRiYWNrLCB2YWxpZGF0ZVN0YXR1cywgY2xhc3NOYW1lID0gJycsIHByZWZpeENscyA9ICdmb3JtLWl0ZW0nLCBoaWRkZW4sIHRyYW5zZm9ybSwgY29udmVydFZhbHVlLCB2YWx1ZVR5cGUsIHJlYWRvbmx5UmVuZGVyLCBjb2xQcm9wcywgbW9kZTogbW9kZVByb3AsIGVtcHR5VGV4dCA9IEVNUFRZX1RFWFRfREVGQVVMVCwgdmFsdWVFbnVtLCB2YWx1ZVByb3BOYW1lLCB2YWxpZGF0ZURlYm91bmNlLCB9ID0gbWVyZ2VkUHJvcHM7XG4gICAgY29uc3QgbWVyZ2VkTW9kZSA9IG1vZGVQcm9wICE9PSBudWxsICYmIG1vZGVQcm9wICE9PSB2b2lkIDAgPyBtb2RlUHJvcCA6IGN0eC5tb2RlO1xuICAgIGNvbnN0IGlzUmVhZG9ubHkgPSBtZXJnZWRNb2RlID09PSAncmVhZCc7XG4gICAgY29uc3QgeyBmaWVsZEVycm9yLCBmaWVsZFdhcm5pbmcsIGlzUmVxdWlyZWQsIHNpemUsIGxhYmVsQWxpZ24sIHJlcXVpcmVkTWFyaywgaW5qZWN0RmllbGQsIH0gPSB1c2VGb3JtSXRlbSh7IG5hbWUsIHJ1bGVzLCByZXF1aXJlZCwgdmFsaWRhdGVTdGF0dXMsIHZhbHVlUHJvcE5hbWUsIHZhbGlkYXRlRGVib3VuY2UgfSk7XG4gICAgLy8gUmVnaXN0ZXIgLyB1bnJlZ2lzdGVyIHRyYW5zZm9ybVxuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIGlmICghbmFtZSB8fCAhdHJhbnNmb3JtKVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICBjdHgucmVnaXN0ZXJUcmFuc2Zvcm0obmFtZSwgdHJhbnNmb3JtKTtcbiAgICAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgICAgIGN0eC51bnJlZ2lzdGVyVHJhbnNmb3JtKG5hbWUpO1xuICAgICAgICB9O1xuICAgIH0sIFtuYW1lLCB0cmFuc2Zvcm0sIGN0eC5yZWdpc3RlclRyYW5zZm9ybSwgY3R4LnVucmVnaXN0ZXJUcmFuc2Zvcm1dKTtcbiAgICAvLyBSZWdpc3RlciAvIHVucmVnaXN0ZXIgdmFsdWVUeXBlIChkcml2ZXMgdmFsdWVUeXBlLWF3YXJlIGRhdGVGb3JtYXR0ZXIpXG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgaWYgKCFuYW1lIHx8ICF2YWx1ZVR5cGUpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIGN0eC5yZWdpc3RlclZhbHVlVHlwZShuYW1lLCB2YWx1ZVR5cGUpO1xuICAgICAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgICAgICAgY3R4LnVucmVnaXN0ZXJWYWx1ZVR5cGUobmFtZSk7XG4gICAgICAgIH07XG4gICAgfSwgW25hbWUsIHZhbHVlVHlwZSwgY3R4LnJlZ2lzdGVyVmFsdWVUeXBlLCBjdHgudW5yZWdpc3RlclZhbHVlVHlwZV0pO1xuICAgIGlmIChoaWRkZW4pXG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIGxldCBjb250cm9sQ2hpbGQ7XG4gICAgaWYgKGlzUmVhZG9ubHkpIHtcbiAgICAgICAgY29udHJvbENoaWxkID0gKF9qc3goUmVhZG9ubHlDaGlsZCwgeyBuYW1lOiBuYW1lLCB2YWx1ZVR5cGU6IHZhbHVlVHlwZSwgdmFsdWVFbnVtOiB2YWx1ZUVudW0sIGNvbnZlcnRWYWx1ZTogY29udmVydFZhbHVlLCByZWFkb25seVJlbmRlcjogcmVhZG9ubHlSZW5kZXIsIGVtcHR5VGV4dDogZW1wdHlUZXh0IH0pKTtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICAgIC8vIEluamVjdCBmaXJzdCBzbyB0aGUgcmVhbCBmaWVsZCByZWNlaXZlcyB2YWx1ZS9vbkNoYW5nZS9vbkJsdXIsXG4gICAgICAgIC8vIHRoZW4gb3B0aW9uYWxseSB3cmFwIGluIENvbnZlcnRWYWx1ZUNoaWxkIHRvIG92ZXJyaWRlIHRoZSBkaXNwbGF5ZWQgdmFsdWUuXG4gICAgICAgIGNvbnN0IGluamVjdGVkID0gaW5qZWN0RmllbGQoY2hpbGRyZW4pO1xuICAgICAgICBpZiAoY29udmVydFZhbHVlICYmIG5hbWUgJiYgUmVhY3QuaXNWYWxpZEVsZW1lbnQoaW5qZWN0ZWQpKSB7XG4gICAgICAgICAgICBjb250cm9sQ2hpbGQgPSAoX2pzeChDb252ZXJ0VmFsdWVDaGlsZCwgeyBuYW1lOiBuYW1lLCBjb252ZXJ0VmFsdWU6IGNvbnZlcnRWYWx1ZSwgdmFsdWVQcm9wTmFtZTogdmFsdWVQcm9wTmFtZSwgY2hpbGRyZW46IGluamVjdGVkIH0pKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGNvbnRyb2xDaGlsZCA9IGluamVjdGVkO1xuICAgICAgICB9XG4gICAgfVxuICAgIGNvbnN0IGNsYXNzZXMgPSBjbGFzc25hbWVzKHByZWZpeENscyk7XG4gICAgY29uc3Qgc2hlbGwgPSAoX2pzeHMoXCJkaXZcIiwgeyBjbGFzc05hbWU6IGNsYXNzZXModW5kZWZpbmVkLCBqb2luQ2xzKGNsYXNzZXMoc2l6ZSksIGNsYXNzTmFtZSkpLCBjaGlsZHJlbjogW2xhYmVsICYmIChfanN4cyhcImRpdlwiLCB7IGNsYXNzTmFtZTogY2xhc3NlcygnbGFiZWwtd3JhcHBlcicsIGpvaW5DbHMoY2xhc3NlcygnbGFiZWwtd3JhcHBlci12ZXJ0aWNhbCcpLCBsYWJlbEFsaWduICYmIGNsYXNzZXMoYGxhYmVsLXdyYXBwZXItJHtsYWJlbEFsaWdufWApKSksIGNoaWxkcmVuOiBbX2pzeChUeXBvZ3JhcGh5TGFiZWwsIHsgYXM6IFwibGFiZWxcIiwgc2l6ZTogRk9STV9MQUJFTF9TSVpFLCBjb2xvcjogRk9STV9MQUJFTF9DT0xPUiwgY2xhc3NOYW1lOiBjbGFzc2VzKCdsYWJlbCcpLCBjaGlsZHJlbjogbGFiZWwgfSksIGRlc2NyaXB0aW9uICYmIChfanN4KFR5cG9ncmFwaHlCb2R5LCB7IGFzOiBcImRpdlwiLCBjbGFzc05hbWU6IGNsYXNzZXMoJ2Rlc2NyaXB0aW9uJyksIHNpemU6IEZPUk1fREVTQ1JJUFRJT05fU0laRSwgY29sb3I6IEZPUk1fREVTQ1JJUFRJT05fQ09MT1IsIGNoaWxkcmVuOiBkZXNjcmlwdGlvbiB9KSldIH0pKSwgX2pzeHMoXCJkaXZcIiwgeyBjbGFzc05hbWU6IGNsYXNzZXMoJ2NvbnRyb2wnKSwgY2hpbGRyZW46IFtjb250cm9sQ2hpbGQsIGZpZWxkRXJyb3IgJiYgKF9qc3goVHlwb2dyYXBoeUJvZHksIHsgYXM6IFwiZGl2XCIsIGNsYXNzTmFtZTogY2xhc3NlcygnZXJyb3InKSwgc2l6ZTogRk9STV9FUlJPUl9TSVpFLCBjb2xvcjogRk9STV9FUlJPUl9DT0xPUiwgY2hpbGRyZW46IGZpZWxkRXJyb3IgfSkpLCAhZmllbGRFcnJvciAmJiBmaWVsZFdhcm5pbmcgJiYgKF9qc3goVHlwb2dyYXBoeUJvZHksIHsgYXM6IFwiZGl2XCIsIGNsYXNzTmFtZTogY2xhc3Nlcygnd2FybmluZycpLCBzaXplOiBGT1JNX1dBUk5JTkdfU0laRSwgY29sb3I6IEZPUk1fV0FSTklOR19DT0xPUiwgY2hpbGRyZW46IGZpZWxkV2FybmluZyB9KSksICFmaWVsZEVycm9yICYmICFmaWVsZFdhcm5pbmcgJiYgZmVlZGJhY2sgJiYgKF9qc3goVHlwb2dyYXBoeUJvZHksIHsgYXM6IFwiZGl2XCIsIGNsYXNzTmFtZTogY2xhc3NlcygnZmVlZGJhY2snKSwgc2l6ZTogRk9STV9GRUVEQkFDS19TSVpFLCBjb2xvcjogRk9STV9GRUVEQkFDS19DT0xPUiwgY2hpbGRyZW46IGZlZWRiYWNrIH0pKV0gfSldIH0pKTtcbiAgICBpZiAoY3R4LmdyaWQpIHtcbiAgICAgICAgY29uc3QgbWVyZ2VkID0gT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCBjdHguY29sUHJvcHMpLCBjb2xQcm9wcyk7XG4gICAgICAgIGNvbnN0IHsgc3BhbiA9IERFRkFVTFRfQ09MX1NQQU4sIHNtLCBtZCwgbGcgfSA9IG1lcmdlZDtcbiAgICAgICAgcmV0dXJuIF9qc3goQ29sLCB7IHNwYW46IHNwYW4sIHNtOiBzbSwgbWQ6IG1kLCBsZzogbGcsIGNoaWxkcmVuOiBzaGVsbCB9KTtcbiAgICB9XG4gICAgcmV0dXJuIHNoZWxsO1xufTtcblByb0Zvcm1JdGVtQmFzZS5kaXNwbGF5TmFtZSA9ICdQcm9Gb3JtSXRlbSc7XG5leHBvcnQgY29uc3QgUHJvRm9ybUl0ZW0gPSBtZW1vKFByb0Zvcm1JdGVtQmFzZSk7XG5leHBvcnQgZGVmYXVsdCBQcm9Gb3JtSXRlbTsiLG51bGxdLCJzb3VyY2VSb290IjoiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjIn0=
@@ -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,103 @@
1
+ import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
2
+ 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; } } }; }
3
+ 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; } }
4
+ 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; }
5
+ var __rest = this && this.__rest || function (s, e) {
6
+ var t = {};
7
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];
8
+ if (s != null && typeof Object.getOwnPropertySymbols === "function") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
9
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];
10
+ }
11
+ return t;
12
+ };
13
+ import { jsx as _jsx } from "react/jsx-runtime";
14
+ import { Fragment, memo, useMemo } from 'react';
15
+ import { ProForm } from './ProForm';
16
+ import { ProFormText, ProFormPassword, ProFormTextArea, ProFormSelect, ProFormCheckbox, ProFormCheckboxGroup, ProFormRadioGroup, ProFormSwitch, ProFormSlider, ProFormDatePicker, ProFormUpload } from './fields';
17
+ import { setNestedValue } from './core/pathUtils';
18
+ // valueType → ProForm field component. `digit` reuses the text field with a
19
+ // numeric input type (the library has no standalone InputNumber).
20
+ var VALUE_TYPE_FIELDS = {
21
+ text: ProFormText,
22
+ password: ProFormPassword,
23
+ textarea: ProFormTextArea,
24
+ digit: ProFormText,
25
+ select: ProFormSelect,
26
+ checkbox: ProFormCheckbox,
27
+ checkboxGroup: ProFormCheckboxGroup,
28
+ radioGroup: ProFormRadioGroup,
29
+ "switch": ProFormSwitch,
30
+ slider: ProFormSlider,
31
+ date: ProFormDatePicker,
32
+ dateTime: ProFormDatePicker,
33
+ upload: ProFormUpload
34
+ };
35
+ function renderColumn(column) {
36
+ var _a;
37
+ if (column.renderFormItem) {
38
+ return _jsx(Fragment, {
39
+ children: column.renderFormItem(column)
40
+ }, column.dataIndex);
41
+ }
42
+ var title = column.title,
43
+ dataIndex = column.dataIndex,
44
+ _column$valueType = column.valueType,
45
+ valueType = _column$valueType === void 0 ? 'text' : _column$valueType,
46
+ fieldProps = column.fieldProps,
47
+ _initialValue = column.initialValue,
48
+ _renderFormItem = column.renderFormItem,
49
+ rest = __rest(column, ["title", "dataIndex", "valueType", "fieldProps", "initialValue", "renderFormItem"]);
50
+ var Field = (_a = VALUE_TYPE_FIELDS[valueType]) !== null && _a !== void 0 ? _a : VALUE_TYPE_FIELDS.text;
51
+ var mergedFieldProps = fieldProps;
52
+ if (valueType === 'digit') {
53
+ mergedFieldProps = Object.assign({
54
+ type: 'number'
55
+ }, fieldProps);
56
+ } else if (valueType === 'dateTime') {
57
+ mergedFieldProps = Object.assign({
58
+ showTime: true
59
+ }, fieldProps);
60
+ }
61
+ return _jsx(Field, Object.assign({
62
+ name: dataIndex,
63
+ label: title,
64
+ fieldProps: mergedFieldProps
65
+ }, valueType === 'dateTime' ? {
66
+ valueType: 'dateTime'
67
+ } : {}, rest), dataIndex);
68
+ }
69
+ var SchemaFormBase = function SchemaFormBase(props) {
70
+ var columns = props.columns,
71
+ initialValues = props.initialValues,
72
+ formProps = __rest(props, ["columns", "initialValues"]);
73
+ // Column-level initialValue seeds the form; form-level initialValues win.
74
+ var mergedInitialValues = useMemo(function () {
75
+ var fromColumns = {};
76
+ var hasColumnValue = false;
77
+ var _iterator = _createForOfIteratorHelper(columns),
78
+ _step;
79
+ try {
80
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
81
+ var column = _step.value;
82
+ if (column.initialValue === undefined) continue;
83
+ hasColumnValue = true;
84
+ fromColumns = column.dataIndex.includes('.') ? setNestedValue(fromColumns, column.dataIndex, column.initialValue) : Object.assign(Object.assign({}, fromColumns), _defineProperty({}, column.dataIndex, column.initialValue));
85
+ }
86
+ } catch (err) {
87
+ _iterator.e(err);
88
+ } finally {
89
+ _iterator.f();
90
+ }
91
+ if (!hasColumnValue) return initialValues;
92
+ return Object.assign(Object.assign({}, fromColumns), initialValues);
93
+ }, [columns, initialValues]);
94
+ return _jsx(ProForm, Object.assign({}, formProps, {
95
+ initialValues: mergedInitialValues,
96
+ children: columns.map(renderColumn)
97
+ }));
98
+ };
99
+ SchemaFormBase.displayName = 'SchemaForm';
100
+ /** Generic-aware export — keeps `<SchemaForm<MyValues> …>` fully typed. */
101
+ export var SchemaForm = /*#__PURE__*/memo(SchemaFormBase);
102
+ export default SchemaForm;
103
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvUHJvRm9ybS9TY2hlbWFGb3JtLmpzIiwiY29tcG9uZW50cy9zcmMvY29tcG9uZW50cy9Qcm9Gb3JtL1NjaGVtYUZvcm0udHN4Il0sIm5hbWVzIjpbIl9fcmVzdCIsInMiLCJlIiwidCIsInAiLCJPYmplY3QiLCJwcm90b3R5cGUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJpbmRleE9mIiwiZ2V0T3duUHJvcGVydHlTeW1ib2xzIiwiaSIsImxlbmd0aCIsInByb3BlcnR5SXNFbnVtZXJhYmxlIiwianN4IiwiX2pzeCIsIkZyYWdtZW50IiwibWVtbyIsInVzZU1lbW8iLCJQcm9Gb3JtIiwiUHJvRm9ybVRleHQiLCJQcm9Gb3JtUGFzc3dvcmQiLCJQcm9Gb3JtVGV4dEFyZWEiLCJQcm9Gb3JtU2VsZWN0IiwiUHJvRm9ybUNoZWNrYm94IiwiUHJvRm9ybUNoZWNrYm94R3JvdXAiLCJQcm9Gb3JtUmFkaW9Hcm91cCIsIlByb0Zvcm1Td2l0Y2giLCJQcm9Gb3JtU2xpZGVyIiwiUHJvRm9ybURhdGVQaWNrZXIiLCJQcm9Gb3JtVXBsb2FkIiwic2V0TmVzdGVkVmFsdWUiLCJWQUxVRV9UWVBFX0ZJRUxEUyIsInRleHQiLCJwYXNzd29yZCIsInRleHRhcmVhIiwiZGlnaXQiLCJzZWxlY3QiLCJjaGVja2JveCIsImNoZWNrYm94R3JvdXAiLCJyYWRpb0dyb3VwIiwic2xpZGVyIiwiZGF0ZSIsImRhdGVUaW1lIiwidXBsb2FkIiwicmVuZGVyQ29sdW1uIiwiY29sdW1uIiwiX2EiLCJyZW5kZXJGb3JtSXRlbSIsImNoaWxkcmVuIiwiZGF0YUluZGV4IiwidGl0bGUiLCJfY29sdW1uJHZhbHVlVHlwZSIsInZhbHVlVHlwZSIsImZpZWxkUHJvcHMiLCJfaW5pdGlhbFZhbHVlIiwiaW5pdGlhbFZhbHVlIiwiX3JlbmRlckZvcm1JdGVtIiwicmVzdCIsIkZpZWxkIiwibWVyZ2VkRmllbGRQcm9wcyIsImFzc2lnbiIsInR5cGUiLCJzaG93VGltZSIsIm5hbWUiLCJsYWJlbCIsIlNjaGVtYUZvcm1CYXNlIiwicHJvcHMiLCJjb2x1bW5zIiwiaW5pdGlhbFZhbHVlcyIsImZvcm1Qcm9wcyIsIm1lcmdlZEluaXRpYWxWYWx1ZXMiLCJmcm9tQ29sdW1ucyIsImhhc0NvbHVtblZhbHVlIiwiX2l0ZXJhdG9yIiwiX2NyZWF0ZUZvck9mSXRlcmF0b3JIZWxwZXIiLCJfc3RlcCIsIm4iLCJkb25lIiwidmFsdWUiLCJ1bmRlZmluZWQiLCJpbmNsdWRlcyIsIl9kZWZpbmVQcm9wZXJ0eSIsImVyciIsImYiLCJtYXAiLCJkaXNwbGF5TmFtZSIsIlNjaGVtYUZvcm0iXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxJQUFJQSxNQUFNLEdBQUksSUFBSSxJQUFJLElBQUksQ0FBQ0EsTUFBTSxJQUFLLFVBQVVDLENBQUMsRUFBRUMsQ0FBQyxFQUFFO0VBQ2xELElBQUlDLENBQUMsR0FBRyxDQUFDLENBQUM7RUFDVixLQUFLLElBQUlDLENBQUMsSUFBSUgsQ0FBQyxFQUFFLElBQUlJLE1BQU0sQ0FBQ0MsU0FBUyxDQUFDQyxjQUFjLENBQUNDLElBQUksQ0FBQ1AsQ0FBQyxFQUFFRyxDQUFDLENBQUMsSUFBSUYsQ0FBQyxDQUFDTyxPQUFPLENBQUNMLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFDL0VELENBQUMsQ0FBQ0MsQ0FBQyxDQUFDLEdBQUdILENBQUMsQ0FBQ0csQ0FBQyxDQUFDO0VBQ2YsSUFBSUgsQ0FBQyxJQUFJLElBQUksSUFBSSxPQUFPSSxNQUFNLENBQUNLLHFCQUFxQixLQUFLLFVBQVUsRUFDL0QsS0FBSyxJQUFJQyxDQUFDLEdBQUcsQ0FBQyxFQUFFUCxDQUFDLEdBQUdDLE1BQU0sQ0FBQ0sscUJBQXFCLENBQUNULENBQUMsQ0FBQyxFQUFFVSxDQUFDLEdBQUdQLENBQUMsQ0FBQ1EsTUFBTSxFQUFFRCxDQUFDLEVBQUUsRUFBRTtJQUNwRSxJQUFJVCxDQUFDLENBQUNPLE9BQU8sQ0FBQ0wsQ0FBQyxDQUFDTyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSU4sTUFB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RUFBRTFCLE1BQU0sQ0FBQ0ksU0FBUyxFQUFFSixNQUFNLENBQUNVLFlBQVksQ0FBQyxHQUNuRW5ELE1BQUEsQ0FBQXdELE1BQUEsQ0FBQXhELE1BQUEsQ0FBQXdELE1BQUEsQ0FBQSxDQUFBLENBQUEsRUFBTVcsV0FBVyxDQUFBLEVBQUFVLGVBQUEsS0FBR3BDLE1BQU0sQ0FBQ0ksU0FBUyxFQUFHSixNQUFNLENBQUNVLFlBQVksQ0FBQSxDQUFFO01BQ2pFO0lBQUMsU0FBQTJCLEdBQUE7TUFBQVQsU0FBQSxDQUFBeEUsQ0FBQSxDQUFBaUYsR0FBQTtJQUFBO01BQUFULFNBQUEsQ0FBQVUsQ0FBQTtJQUFBO0lBQ0QsSUFBSSxDQUFDWCxjQUFjLEVBQUUsT0FBT0osYUFBYTtJQUN6QyxPQUFBaEUsTUFBQSxDQUFBd0QsTUFBQSxDQUFBeEQsTUFBQSxDQUFBd0QsTUFBQSxDQUFBLENBQUEsQ0FBQSxFQUFZVyxXQUFXLENBQUEsRUFBS0gsYUFBYSxDQUFBO0VBQzNDLENBQUMsRUFBRSxDQUFDRCxPQUFPLEVBQUVDLGFBQWEsQ0FBQyxDQUFDO0VBRTVCLE9BQ0V0RCxJQUFBLENBQUNJLE9BQU8sRUFBQWQsTUFBQSxDQUFBd0QsTUFBQSxDQUFBLENBQUEsQ0FBQSxFQUFLUyxTQUFTLEVBQUE7SUFBRUQsYUFBYSxFQUFFRSxtQkFBbUI7SUFBQXRCLFFBQUEsRUFDdkRtQixPQUFPLENBQUNpQixHQUFHLENBQUN4QyxZQUFZO0VBQUMsQ0FBQSxDQUFBLENBQ2xCO0FBRWQsQ0FBQztBQUVEcUIsY0FBYyxDQUFDb0IsV0FBVyxHQUFHLFlBQVk7QUFFekM7QUFDQSxPQUFPLElBQU1DLFVBQVUsZ0JBQUd0RSxJQUFJLENBQUNpRCxjQUFjLENBRU87QUFFcEQsZUFBZXFCLFVBQVUiLCJmaWxlIjoiY29tcG9uZW50cy9Qcm9Gb3JtL1NjaGVtYUZvcm0uanMiLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgX19yZXN0ID0gKHRoaXMgJiYgdGhpcy5fX3Jlc3QpIHx8IGZ1bmN0aW9uIChzLCBlKSB7XG4gICAgdmFyIHQgPSB7fTtcbiAgICBmb3IgKHZhciBwIGluIHMpIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocywgcCkgJiYgZS5pbmRleE9mKHApIDwgMClcbiAgICAgICAgdFtwXSA9IHNbcF07XG4gICAgaWYgKHMgIT0gbnVsbCAmJiB0eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyA9PT0gXCJmdW5jdGlvblwiKVxuICAgICAgICBmb3IgKHZhciBpID0gMCwgcCA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMocyk7IGkgPCBwLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBpZiAoZS5pbmRleE9mKHBbaV0pIDwgMCAmJiBPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwocywgcFtpXSkpXG4gICAgICAgICAgICAgICAgdFtwW2ldXSA9IHNbcFtpXV07XG4gICAgICAgIH1cbiAgICByZXR1cm4gdDtcbn07XG5pbXBvcnQgeyBqc3ggYXMgX2pzeCB9IGZyb20gXCJyZWFjdC9qc3gtcnVudGltZVwiO1xuaW1wb3J0IHsgRnJhZ21lbnQsIG1lbW8sIHVzZU1lbW8gfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBQcm9Gb3JtIH0gZnJvbSAnLi9Qcm9Gb3JtJztcbmltcG9ydCB7IFByb0Zvcm1UZXh0LCBQcm9Gb3JtUGFzc3dvcmQsIFByb0Zvcm1UZXh0QXJlYSwgUHJvRm9ybVNlbGVjdCwgUHJvRm9ybUNoZWNrYm94LCBQcm9Gb3JtQ2hlY2tib3hHcm91cCwgUHJvRm9ybVJhZGlvR3JvdXAsIFByb0Zvcm1Td2l0Y2gsIFByb0Zvcm1TbGlkZXIsIFByb0Zvcm1EYXRlUGlja2VyLCBQcm9Gb3JtVXBsb2FkLCB9IGZyb20gJy4vZmllbGRzJztcbmltcG9ydCB7IHNldE5lc3RlZFZhbHVlIH0gZnJvbSAnLi9jb3JlL3BhdGhVdGlscyc7XG4vLyB2YWx1ZVR5cGUg4oaSIFByb0Zvcm0gZmllbGQgY29tcG9uZW50LiBgZGlnaXRgIHJldXNlcyB0aGUgdGV4dCBmaWVsZCB3aXRoIGFcbi8vIG51bWVyaWMgaW5wdXQgdHlwZSAodGhlIGxpYnJhcnkgaGFzIG5vIHN0YW5kYWxvbmUgSW5wdXROdW1iZXIpLlxuY29uc3QgVkFMVUVfVFlQRV9GSUVMRFMgPSB7XG4gICAgdGV4dDogUHJvRm9ybVRleHQsXG4gICAgcGFzc3dvcmQ6IFByb0Zvcm1QYXNzd29yZCxcbiAgICB0ZXh0YXJlYTogUHJvRm9ybVRleHRBcmVhLFxuICAgIGRpZ2l0OiBQcm9Gb3JtVGV4dCxcbiAgICBzZWxlY3Q6IFByb0Zvcm1TZWxlY3QsXG4gICAgY2hlY2tib3g6IFByb0Zvcm1DaGVja2JveCxcbiAgICBjaGVja2JveEdyb3VwOiBQcm9Gb3JtQ2hlY2tib3hHcm91cCxcbiAgICByYWRpb0dyb3VwOiBQcm9Gb3JtUmFkaW9Hcm91cCxcbiAgICBzd2l0Y2g6IFByb0Zvcm1Td2l0Y2gsXG4gICAgc2xpZGVyOiBQcm9Gb3JtU2xpZGVyLFxuICAgIGRhdGU6IFByb0Zvcm1EYXRlUGlja2VyLFxuICAgIGRhdGVUaW1lOiBQcm9Gb3JtRGF0ZVBpY2tlcixcbiAgICB1cGxvYWQ6IFByb0Zvcm1VcGxvYWQsXG59O1xuZnVuY3Rpb24gcmVuZGVyQ29sdW1uKGNvbHVtbikge1xuICAgIHZhciBfYTtcbiAgICBpZiAoY29sdW1uLnJlbmRlckZvcm1JdGVtKSB7XG4gICAgICAgIHJldHVybiBfanN4KEZyYWdtZW50LCB7IGNoaWxkcmVuOiBjb2x1bW4ucmVuZGVyRm9ybUl0ZW0oY29sdW1uKSB9LCBjb2x1bW4uZGF0YUluZGV4KTtcbiAgICB9XG4gICAgY29uc3QgeyB0aXRsZSwgZGF0YUluZGV4LCB2YWx1ZVR5cGUgPSAndGV4dCcsIGZpZWxkUHJvcHMsIGluaXRpYWxWYWx1ZTogX2luaXRpYWxWYWx1ZSwgcmVuZGVyRm9ybUl0ZW06IF9yZW5kZXJGb3JtSXRlbSB9ID0gY29sdW1uLCByZXN0ID0gX19yZXN0KGNvbHVtbiwgW1widGl0bGVcIiwgXCJkYXRhSW5kZXhcIiwgXCJ2YWx1ZVR5cGVcIiwgXCJmaWVsZFByb3BzXCIsIFwiaW5pdGlhbFZhbHVlXCIsIFwicmVuZGVyRm9ybUl0ZW1cIl0pO1xuICAgIGNvbnN0IEZpZWxkID0gKF9hID0gVkFMVUVfVFlQRV9GSUVMRFNbdmFsdWVUeXBlXSkgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogVkFMVUVfVFlQRV9GSUVMRFMudGV4dDtcbiAgICBsZXQgbWVyZ2VkRmllbGRQcm9wcyA9IGZpZWxkUHJvcHM7XG4gICAgaWYgKHZhbHVlVHlwZSA9PT0gJ2RpZ2l0Jykge1xuICAgICAgICBtZXJnZWRGaWVsZFByb3BzID0gT2JqZWN0LmFzc2lnbih7IHR5cGU6ICdudW1iZXInIH0sIGZpZWxkUHJvcHMpO1xuICAgIH1cbiAgICBlbHNlIGlmICh2YWx1ZVR5cGUgPT09ICdkYXRlVGltZScpIHtcbiAgICAgICAgbWVyZ2VkRmllbGRQcm9wcyA9IE9iamVjdC5hc3NpZ24oeyBzaG93VGltZTogdHJ1ZSB9LCBmaWVsZFByb3BzKTtcbiAgICB9XG4gICAgcmV0dXJuIChfanN4KEZpZWxkLCBPYmplY3QuYXNzaWduKHsgbmFtZTogZGF0YUluZGV4LCBsYWJlbDogdGl0bGUsIGZpZWxkUHJvcHM6IG1lcmdlZEZpZWxkUHJvcHMgfSwgKHZhbHVlVHlwZSA9PT0gJ2RhdGVUaW1lJyA/IHsgdmFsdWVUeXBlOiAnZGF0ZVRpbWUnIH0gOiB7fSksIHJlc3QpLCBkYXRhSW5kZXgpKTtcbn1cbmNvbnN0IFNjaGVtYUZvcm1CYXNlID0gKHByb3BzKSA9PiB7XG4gICAgY29uc3QgeyBjb2x1bW5zLCBpbml0aWFsVmFsdWVzIH0gPSBwcm9wcywgZm9ybVByb3BzID0gX19yZXN0KHByb3BzLCBbXCJjb2x1bW5zXCIsIFwiaW5pdGlhbFZhbHVlc1wiXSk7XG4gICAgLy8gQ29sdW1uLWxldmVsIGluaXRpYWxWYWx1ZSBzZWVkcyB0aGUgZm9ybTsgZm9ybS1sZXZlbCBpbml0aWFsVmFsdWVzIHdpbi5cbiAgICBjb25zdCBtZXJnZWRJbml0aWFsVmFsdWVzID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICAgIGxldCBmcm9tQ29sdW1ucyA9IHt9O1xuICAgICAgICBsZXQgaGFzQ29sdW1uVmFsdWUgPSBmYWxzZTtcbiAgICAgICAgZm9yIChjb25zdCBjb2x1bW4gb2YgY29sdW1ucykge1xuICAgICAgICAgICAgaWYgKGNvbHVtbi5pbml0aWFsVmFsdWUgPT09IHVuZGVmaW5lZClcbiAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgIGhhc0NvbHVtblZhbHVlID0gdHJ1ZTtcbiAgICAgICAgICAgIGZyb21Db2x1bW5zID0gY29sdW1uLmRhdGFJbmRleC5pbmNsdWRlcygnLicpXG4gICAgICAgICAgICAgICAgPyBzZXROZXN0ZWRWYWx1ZShmcm9tQ29sdW1ucywgY29sdW1uLmRhdGFJbmRleCwgY29sdW1uLmluaXRpYWxWYWx1ZSlcbiAgICAgICAgICAgICAgICA6IE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgZnJvbUNvbHVtbnMpLCB7IFtjb2x1bW4uZGF0YUluZGV4XTogY29sdW1uLmluaXRpYWxWYWx1ZSB9KTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIWhhc0NvbHVtblZhbHVlKVxuICAgICAgICAgICAgcmV0dXJuIGluaXRpYWxWYWx1ZXM7XG4gICAgICAgIHJldHVybiBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIGZyb21Db2x1bW5zKSwgaW5pdGlhbFZhbHVlcyk7XG4gICAgfSwgW2NvbHVtbnMsIGluaXRpYWxWYWx1ZXNdKTtcbiAgICByZXR1cm4gKF9qc3goUHJvRm9ybSwgT2JqZWN0LmFzc2lnbih7fSwgZm9ybVByb3BzLCB7IGluaXRpYWxWYWx1ZXM6IG1lcmdlZEluaXRpYWxWYWx1ZXMsIGNoaWxkcmVuOiBjb2x1bW5zLm1hcChyZW5kZXJDb2x1bW4pIH0pKSk7XG59O1xuU2NoZW1hRm9ybUJhc2UuZGlzcGxheU5hbWUgPSAnU2NoZW1hRm9ybSc7XG4vKiogR2VuZXJpYy1hd2FyZSBleHBvcnQg4oCUIGtlZXBzIGA8U2NoZW1hRm9ybTxNeVZhbHVlcz4g4oCmPmAgZnVsbHkgdHlwZWQuICovXG5leHBvcnQgY29uc3QgU2NoZW1hRm9ybSA9IG1lbW8oU2NoZW1hRm9ybUJhc2UpO1xuZXhwb3J0IGRlZmF1bHQgU2NoZW1hRm9ybTsiLG51bGxdLCJzb3VyY2VSb290IjoiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjIn0=
@@ -66,6 +66,15 @@ var SubmitterBase = function SubmitterBase(props) {
66
66
  onReset === null || onReset === void 0 ? void 0 : onReset();
67
67
  form.resetFields();
68
68
  });
69
+ // The default submit button keeps type="submit" so the actual submission
70
+ // flows through the <form> onSubmit handler exactly once — this click
71
+ // handler only fires the user's onSubmit callback (plus any onClick they
72
+ // passed via submitButtonProps).
73
+ var handleSubmitClick = useMemoizedFn(function (e) {
74
+ var _a;
75
+ onSubmit === null || onSubmit === void 0 ? void 0 : onSubmit();
76
+ (_a = submitButtonProps === null || submitButtonProps === void 0 ? void 0 : submitButtonProps.onClick) === null || _a === void 0 ? void 0 : _a.call(submitButtonProps, e);
77
+ });
69
78
  var resetButton = useMemo(function () {
70
79
  return _jsx(Button, Object.assign({
71
80
  type: "button",
@@ -81,9 +90,10 @@ var SubmitterBase = function SubmitterBase(props) {
81
90
  color: "primary",
82
91
  loading: loading
83
92
  }, submitButtonProps, {
93
+ onClick: handleSubmitClick,
84
94
  children: submitText
85
95
  }), "submit");
86
- }, [submitText, submitButtonProps, loading]);
96
+ }, [submitText, submitButtonProps, loading, handleSubmitClick]);
87
97
  var dom = [resetButton, submitButton];
88
98
  if (render) {
89
99
  return _jsx("div", {
@@ -103,4 +113,4 @@ var SubmitterBase = function SubmitterBase(props) {
103
113
  SubmitterBase.displayName = 'Submitter';
104
114
  export var Submitter = /*#__PURE__*/memo(SubmitterBase);
105
115
  export default Submitter;
106
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvUHJvRm9ybS9TdWJtaXR0ZXIuanMiLCJjb21wb25lbnRzL3NyYy9jb21wb25lbnRzL1Byb0Zvcm0vU3VibWl0dGVyLnRzeCJdLCJuYW1lcyI6WyJfX2F3YWl0ZXIiLCJ0aGlzQXJnIiwiX2FyZ3VtZW50cyIsIlAiLCJnZW5lcmF0b3IiLCJhZG9wdCIsInZhbHVlIiwicmVzb2x2ZSIsIlByb21pc2UiLCJyZWplY3QiLCJmdWxmaWxsZWQiLCJzdGVwIiwibmV4dCIsImUiLCJyZWplY3RlZCIsInJlc3VsdCIsImRvbmUiLCJ0aGVuIiwiYXBwbHkiLCJqc3giLCJfanN4IiwianN4cyIsIl9qc3hzIiwibWVtbyIsInVzZU1lbW8iLCJ1c2VNZW1vaXplZEZuIiwiZGVmYXVsdCIsImNsYXNzbmFtZXMiLCJ1c2VGb3JtSW5zdGFuY2UiLCJCdXR0b24iLCJDU1NfUFJFRklYIiwiREVGQVVMVF9URVhUIiwiY2xhc3NlcyIsImNvbmNhdCIsIlN1Ym1pdHRlckJhc2UiLCJwcm9wcyIsIl9wcm9wcyRzdWJtaXRUZXh0Iiwic3VibWl0VGV4dCIsInN1Ym1pdCIsIl9wcm9wcyRyZXNldFRleHQiLCJyZXNldFRleHQiLCJyZXNldCIsInJlbmRlciIsIm9uU3VibWl0Iiwib25SZXNldCIsInN1Ym1pdEJ1dHRvblByb3BzIiwicmVzZXRCdXR0b25Qcm9wcyIsIl9wcm9wcyRsb2FkaW5nIiwibG9hZGluZyIsImZvcm0iLCJoYW5kbGVTdWJtaXQiLCJfcmVnZW5lcmF0b3JSdW50aW1lIiwibWFyayIsIl9jYWxsZWUiLCJ3cmFwIiwiX2NvbnRleHQiLCJwcmV2Iiwic3VibWl0Rm9ybSIsInN0b3AiLCJoYW5kbGVSZXNldCIsInJlc2V0RmllbGRzIiwicmVzZXRCdXR0b24iLCJPYmplY3QiLCJhc3NpZ24iLCJ0eXBlIiwiY29sb3IiLCJvbkNsaWNrIiwiY2hpbGRyZW4iLCJzdWJtaXRCdXR0b24iLCJkb20iLCJjbGFzc05hbWUiLCJkaXNwbGF5TmFtZSIsIlN1Ym1p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cm9Gb3JtL1N1Ym1pdHRlci5qcyIsInNvdXJjZXNDb250ZW50IjpbInZhciBfX2F3YWl0ZXIgPSAodGhpcyAmJiB0aGlzLl9fYXdhaXRlcikgfHwgZnVuY3Rpb24gKHRoaXNBcmcsIF9hcmd1bWVudHMsIFAsIGdlbmVyYXRvcikge1xuICAgIGZ1bmN0aW9uIGFkb3B0KHZhbHVlKSB7IHJldHVybiB2YWx1ZSBpbnN0YW5jZW9mIFAgPyB2YWx1ZSA6IG5ldyBQKGZ1bmN0aW9uIChyZXNvbHZlKSB7IHJlc29sdmUodmFsdWUpOyB9KTsgfVxuICAgIHJldHVybiBuZXcgKFAgfHwgKFAgPSBQcm9taXNlKSkoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkge1xuICAgICAgICBmdW5jdGlvbiBmdWxmaWxsZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3IubmV4dCh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XG4gICAgICAgIGZ1bmN0aW9uIHJlamVjdGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yW1widGhyb3dcIl0odmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxuICAgICAgICBmdW5jdGlvbiBzdGVwKHJlc3VsdCkgeyByZXN1bHQuZG9uZSA/IHJlc29sdmUocmVzdWx0LnZhbHVlKSA6IGFkb3B0KHJlc3VsdC52YWx1ZSkudGhlbihmdWxmaWxsZWQsIHJlamVjdGVkKTsgfVxuICAgICAgICBzdGVwKChnZW5lcmF0b3IgPSBnZW5lcmF0b3IuYXBwbHkodGhpc0FyZywgX2FyZ3VtZW50cyB8fCBbXSkpLm5leHQoKSk7XG4gICAgfSk7XG59O1xuaW1wb3J0IHsganN4IGFzIF9qc3gsIGpzeHMgYXMgX2pzeHMgfSBmcm9tIFwicmVhY3QvanN4LXJ1bnRpbWVcIjtcbmltcG9ydCB7IG1lbW8sIHVzZU1lbW8gfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgdXNlTWVtb2l6ZWRGbiBmcm9tICdAMW1vbmV5L2hvb2tzL3VzZU1lbW9pemVkRm4nO1xuaW1wb3J0IHsgZGVmYXVsdCBhcyBjbGFzc25hbWVzIH0gZnJvbSAnLi4vLi4vdXRpbHMvY2xhc3NuYW1lcyc7XG5pbXBvcnQgeyB1c2VGb3JtSW5zdGFuY2UgfSBmcm9tICcuL2NvbnRleHQnO1xuaW1wb3J0IHsgQnV0dG9uIH0gZnJvbSAnLi4vQnV0dG9uJztcbmltcG9ydCB7IENTU19QUkVGSVgsIERFRkFVTFRfVEVYVCB9IGZyb20gJy4vY29uc3RhbnRzJztcbmNvbnN0IGNsYXNzZXMgPSBjbGFzc25hbWVzKGAke0NTU19QUkVGSVh9LXN1Ym1pdHRlcmApO1xuY29uc3QgU3VibWl0dGVyQmFzZSA9IChwcm9wcykgPT4ge1xuICAgIGNvbnN0IHsgc3VibWl0VGV4dCA9IERFRkFVTFRfVEVYVC5zdWJtaXQsIHJlc2V0VGV4dCA9IERFRkFVTFRfVEVYVC5yZXNldCwgcmVuZGVyLCBvblN1Ym1pdCwgb25SZXNldCwgc3VibWl0QnV0dG9uUHJvcHMsIHJlc2V0QnV0dG9uUHJvcHMsIGxvYWRpbmcgPSBmYWxzZSwgfSA9IHByb3BzO1xuICAgIGNvbnN0IGZvcm0gPSB1c2VGb3JtSW5zdGFuY2UoKTtcbiAgICBjb25zdCBoYW5kbGVTdWJtaXQgPSB1c2VNZW1vaXplZEZuKCgpID0+IF9fYXdhaXRlcih2b2lkIDAsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICBvblN1Ym1pdCA9PT0gbnVsbCB8fCBvblN1Ym1pdCA9PT0gdm9pZCAwID8gdm9pZCAwIDogb25TdWJtaXQoKTtcbiAgICAgICAgeWllbGQgZm9ybS5zdWJtaXRGb3JtKCk7XG4gICAgfSkpO1xuICAgIGNvbnN0IGhhbmRsZVJlc2V0ID0gdXNlTWVtb2l6ZWRGbigoKSA9PiB7XG4gICAgICAgIG9uUmVzZXQgPT09IG51bGwgfHwgb25SZXNldCA9PT0gdm9pZCAwID8gdm9pZCAwIDogb25SZXNldCgpO1xuICAgICAgICBmb3JtLnJlc2V0RmllbGRzKCk7XG4gICAgfSk7XG4gICAgY29uc3QgcmVzZXRCdXR0b24gPSB1c2VNZW1vKCgpID0+IChfanN4KEJ1dHRvbiwgT2JqZWN0LmFzc2lnbih7IHR5cGU6IFwiYnV0dG9uXCIsIGNvbG9yOiBcInNlY29uZGFyeVwiIH0sIHJlc2V0QnV0dG9uUHJvcHMsIHsgb25DbGljazogaGFuZGxlUmVzZXQsIGNoaWxkcmVuOiByZXNldFRleHQgfSksIFwicmVzZXRcIikpLCBbcmVzZXRUZXh0LCByZXNldEJ1dHRvblByb3BzLCBoYW5kbGVSZXNldF0pO1xuICAgIGNvbnN0IHN1Ym1pdEJ1dHRvbiA9IHVzZU1lbW8oKCkgPT4gKF9qc3goQnV0dG9uLCBPYmplY3QuYXNzaWduKHsgdHlwZTogXCJzdWJtaXRcIiwgY29sb3I6IFwicHJpbWFyeVwiLCBsb2FkaW5nOiBsb2FkaW5nIH0sIHN1Ym1pdEJ1dHRvblByb3BzLCB7IGNoaWxkcmVuOiBzdWJtaXRUZXh0IH0pLCBcInN1Ym1pdFwiKSksIFtzdWJtaXRUZXh0LCBzdWJtaXRCdXR0b25Qcm9wcywgbG9hZGluZ10pO1xuICAgIGNvbnN0IGRvbSA9IFtyZXNldEJ1dHRvbiwgc3VibWl0QnV0dG9uXTtcbiAgICBpZiAocmVuZGVyKSB7XG4gICAgICAgIHJldHVybiAoX2pzeChcImRpdlwiLCB7IGNsYXNzTmFtZTogY2xhc3NlcygpLCBjaGlsZHJlbjogcmVuZGVyKHsgZm9ybSwgc3VibWl0OiBoYW5kbGVTdWJtaXQsIHJlc2V0OiBoYW5kbGVSZXNldCB9LCBkb20pIH0pKTtcbiAgICB9XG4gICAgcmV0dXJuIChfanN4cyhcImRpdlwiLCB7IGNsYXNzTmFtZTogY2xhc3NlcygpLCBjaGlsZHJlbjogW3Jlc2V0QnV0dG9uLCBzdWJtaXRCdXR0b25dIH0pKTtcbn07XG5TdWJtaXR0ZXJCYXNlLmRpc3BsYXlOYW1lID0gJ1N1Ym1pdHRlcic7XG5leHBvcnQgY29uc3QgU3VibWl0dGVyID0gbWVtbyhTdWJtaXR0ZXJCYXNlKTtcbmV4cG9ydCBkZWZhdWx0IFN1Ym1pdHRlcjsiLG51bGxdLCJzb3VyY2VSb290IjoiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjIn0=
116
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvUHJvRm9ybS9TdWJtaXR0ZXIuanMiLCJjb21wb25lbnRzL3NyYy9jb21wb25lbnRzL1Byb0Zvcm0vU3VibWl0dGVyLnRzeCJdLCJuYW1lcyI6WyJfX2F3YWl0ZXIiLCJ0aGlzQXJnIiwiX2FyZ3VtZW50cyIsIlAiLCJnZW5lcmF0b3IiLCJhZG9wdCIsInZhbHVlIiwicmVzb2x2ZSIsIlByb21pc2UiLCJyZWplY3QiLCJmdWxmaWxsZWQiLCJzdGVwIiwibmV4dCIsImUiLCJyZWplY3RlZCIsInJlc3VsdCIsImRvbmUiLCJ0aGVuIiwiYXBwbHkiLCJqc3giLCJfanN4IiwianN4cyIsIl9qc3hzIiwibWVtbyIsInVzZU1lbW8iLCJ1c2VNZW1vaXplZEZuIiwiZGVmYXVsdCIsImNsYXNzbmFtZXMiLCJ1c2VGb3JtSW5zdGFuY2UiLCJCdXR0b24iLCJDU1NfUFJFRklYIiwiREVGQVVMVF9URVhUIiwiY2xhc3NlcyIsImNvbmNhdCIsIlN1Ym1pdHRlckJhc2UiLCJwcm9wcyIsIl9wcm9wcyRzdWJtaXRUZXh0Iiwic3VibWl0VGV4dCIsInN1Ym1pdCIsIl9wcm9wcyRyZXNldFRleHQiLCJyZXNldFRleHQiLCJyZXNldCIsInJlbmRlciIsIm9uU3VibWl0Iiwib25SZXNldCIsInN1Ym1pdEJ1dHRvblByb3BzIiwicmVzZXRCdXR0b25Qcm9wcyIsIl9wcm9wcyRsb2FkaW5nIiwibG9hZGluZyIsImZvcm0iLCJoYW5kbGVTdWJtaXQiLCJfcmVnZW5lcmF0b3JSdW50aW1lIiwibWFyayIsIl9jYWxsZWUiLCJ3cmFwIiwiX2NvbnRleHQiLCJwcmV2Iiwic3VibWl0Rm9ybSIsInN0b3AiLCJoYW5kbGVSZXNldCIsInJlc2V0RmllbGRzIiwiaGFuZGxlU3VibWl0Q2xpY2siLCJfYSIsIm9uQ2xpY2siLCJjYWxsIiwicmVzZXRCdXR0b24iLCJPYmplY3QiLCJhc3NpZ24iLCJ0eXBlIiwiY29sb3IiLCJjaGlsZHJlbiIsInN1Ym1pdEJ1dHRvbiIsImRvbSIs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RSxJQUFJN0IsTUFBTSxFQUFFO0lBQ1YsT0FDRXRCLElBQUEsQ0FBQSxLQUFBLEVBQUE7TUFBS3FELFNBQVMsRUFBRXpDLE9BQU8sQ0FBQSxDQUFFO01BQUFzQyxRQUFBLEVBQ3RCNUIsTUFBTSxDQUFDO1FBQUVPLElBQUksRUFBSkEsSUFBSTtRQUFFWCxNQUFNLEVBQUVZLFlBQVk7UUFBRVQsS0FBSyxFQUFFa0I7TUFBVyxDQUFFLEVBQUVhLEdBQUc7SUFBQyxDQUFBLENBQzVEO0VBRVY7RUFFQSxPQUNFbEQsS0FBQSxDQUFBLEtBQUEsRUFBQTtJQUFLbUQsU0FBUyxFQUFFekMsT0FBTyxDQUFBLENBQUU7SUFBQXNDLFFBQUEsRUFBQSxDQUN0QkwsV0FBVyxFQUNYTSxZQUFZO0VBQUEsQ0FBQSxDQUNUO0FBRVYsQ0FBQztBQUVEckMsYUFBYSxDQUFDd0MsV0FBVyxHQUFHLFdBQVc7QUFFdkMsT0FBTyxJQUFNQyxTQUFTLGdCQUFHcEQsSUFBSSxDQUFDVyxhQUFhLENBQUM7QUFFNUMsZUFBZXlDLFNBQVMiLCJmaWxlIjoiY29tcG9uZW50cy9Qcm9Gb3JtL1N1Ym1pdHRlci5qcyIsInNvdXJjZXNDb250ZW50IjpbInZhciBfX2F3YWl0ZXIgPSAodGhpcyAmJiB0aGlzLl9fYXdhaXRlcikgfHwgZnVuY3Rpb24gKHRoaXNBcmcsIF9hcmd1bWVudHMsIFAsIGdlbmVyYXRvcikge1xuICAgIGZ1bmN0aW9uIGFkb3B0KHZhbHVlKSB7IHJldHVybiB2YWx1ZSBpbnN0YW5jZW9mIFAgPyB2YWx1ZSA6IG5ldyBQKGZ1bmN0aW9uIChyZXNvbHZlKSB7IHJlc29sdmUodmFsdWUpOyB9KTsgfVxuICAgIHJldHVybiBuZXcgKFAgfHwgKFAgPSBQcm9taXNlKSkoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkge1xuICAgICAgICBmdW5jdGlvbiBmdWxmaWxsZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3IubmV4dCh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XG4gICAgICAgIGZ1bmN0aW9uIHJlamVjdGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yW1widGhyb3dcIl0odmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxuICAgICAgICBmdW5jdGlvbiBzdGVwKHJlc3VsdCkgeyByZXN1bHQuZG9uZSA/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;