@1money/component-ui 0.0.73 → 0.0.74

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 (83) hide show
  1. package/es/components/ProForm/ProForm.js +201 -48
  2. package/es/components/ProForm/ProFormDependency.d.ts +11 -2
  3. package/es/components/ProForm/ProFormDependency.js +29 -136
  4. package/es/components/ProForm/ProFormItem.js +81 -24
  5. package/es/components/ProForm/ProFormList.js +114 -62
  6. package/es/components/ProForm/Submitter.js +15 -4
  7. package/es/components/ProForm/context.d.ts +11 -3
  8. package/es/components/ProForm/context.js +32 -12
  9. package/es/components/ProForm/core/constants.d.ts +10 -2
  10. package/es/components/ProForm/core/constants.js +17 -3
  11. package/es/components/ProForm/core/formStore.d.ts +24 -0
  12. package/es/components/ProForm/core/formStore.js +101 -0
  13. package/es/components/ProForm/core/hooks/useForm.d.ts +4 -1
  14. package/es/components/ProForm/core/hooks/useForm.js +220 -120
  15. package/es/components/ProForm/core/hooks/useFormCore.d.ts +5 -1
  16. package/es/components/ProForm/core/hooks/useFormCore.js +114 -90
  17. package/es/components/ProForm/core/runRules.d.ts +5 -3
  18. package/es/components/ProForm/core/runRules.js +13 -5
  19. package/es/components/ProForm/core/useFormItem.d.ts +2 -2
  20. package/es/components/ProForm/core/useFormItem.js +46 -23
  21. package/es/components/ProForm/fields/ProFormFieldSet.js +20 -7
  22. package/es/components/ProForm/fields/createProFormField.js +14 -4
  23. package/es/components/ProForm/hooks/useFieldRequest.d.ts +6 -1
  24. package/es/components/ProForm/hooks/useFieldRequest.js +54 -9
  25. package/es/components/ProForm/hooks/useUrlSync.d.ts +16 -0
  26. package/es/components/ProForm/hooks/useUrlSync.js +170 -0
  27. package/es/components/ProForm/index.d.ts +2 -2
  28. package/es/components/ProForm/index.js +1 -1
  29. package/es/components/ProForm/interface.d.ts +105 -23
  30. package/es/components/ProForm/layouts/DialogForm.js +17 -7
  31. package/es/components/ProForm/layouts/DrawerForm.js +16 -7
  32. package/es/components/ProForm/layouts/QueryFilter.js +46 -135
  33. package/es/components/ProForm/layouts/useOverlayForm.d.ts +2 -2
  34. package/es/components/ProForm/layouts/useOverlayForm.js +27 -8
  35. package/es/components/ProForm/style/ProForm.css +0 -6
  36. package/es/components/ProForm/utils.js +32 -8
  37. package/es/components/ProTable/ProTable.js +3 -3
  38. package/es/index.css +1 -1
  39. package/es/index.d.ts +1 -1
  40. package/es/index.js +1 -1
  41. package/lib/components/ProForm/ProForm.js +201 -48
  42. package/lib/components/ProForm/ProFormDependency.d.ts +11 -2
  43. package/lib/components/ProForm/ProFormDependency.js +30 -138
  44. package/lib/components/ProForm/ProFormItem.js +78 -21
  45. package/lib/components/ProForm/ProFormList.js +112 -60
  46. package/lib/components/ProForm/Submitter.js +15 -4
  47. package/lib/components/ProForm/context.d.ts +11 -3
  48. package/lib/components/ProForm/context.js +33 -13
  49. package/lib/components/ProForm/core/constants.d.ts +10 -2
  50. package/lib/components/ProForm/core/constants.js +18 -4
  51. package/lib/components/ProForm/core/formStore.d.ts +24 -0
  52. package/lib/components/ProForm/core/formStore.js +110 -0
  53. package/lib/components/ProForm/core/hooks/useForm.d.ts +4 -1
  54. package/lib/components/ProForm/core/hooks/useForm.js +220 -120
  55. package/lib/components/ProForm/core/hooks/useFormCore.d.ts +5 -1
  56. package/lib/components/ProForm/core/hooks/useFormCore.js +113 -89
  57. package/lib/components/ProForm/core/runRules.d.ts +5 -3
  58. package/lib/components/ProForm/core/runRules.js +13 -5
  59. package/lib/components/ProForm/core/useFormItem.d.ts +2 -2
  60. package/lib/components/ProForm/core/useFormItem.js +44 -21
  61. package/lib/components/ProForm/fields/ProFormFieldSet.js +19 -6
  62. package/lib/components/ProForm/fields/createProFormField.js +14 -4
  63. package/lib/components/ProForm/hooks/useFieldRequest.d.ts +6 -1
  64. package/lib/components/ProForm/hooks/useFieldRequest.js +53 -8
  65. package/lib/components/ProForm/hooks/useUrlSync.d.ts +16 -0
  66. package/lib/components/ProForm/hooks/useUrlSync.js +178 -0
  67. package/lib/components/ProForm/index.d.ts +2 -2
  68. package/lib/components/ProForm/index.js +1 -1
  69. package/lib/components/ProForm/interface.d.ts +105 -23
  70. package/lib/components/ProForm/layouts/DialogForm.js +17 -7
  71. package/lib/components/ProForm/layouts/DrawerForm.js +16 -7
  72. package/lib/components/ProForm/layouts/QueryFilter.js +45 -134
  73. package/lib/components/ProForm/layouts/useOverlayForm.d.ts +2 -2
  74. package/lib/components/ProForm/layouts/useOverlayForm.js +30 -8
  75. package/lib/components/ProForm/style/ProForm.css +0 -6
  76. package/lib/components/ProForm/utils.js +32 -8
  77. package/lib/components/ProTable/ProTable.js +3 -3
  78. package/lib/index.css +1 -1
  79. package/lib/index.d.ts +1 -1
  80. package/lib/index.js +1 -1
  81. package/package.json +1 -1
  82. package/scripts/mcp-server/examples.generated.json +36 -0
  83. package/scripts/mcp-server/index.generated.json +538 -16
@@ -16,6 +16,7 @@ var _classnames = _interopRequireDefault(require("../../utils/classnames"));
16
16
  var _Button = require("../Button");
17
17
  var _Typography = require("../Typography");
18
18
  var _context = require("./context");
19
+ var _formStore = require("./core/formStore");
19
20
  var _constants = require("./constants");
20
21
  var _utils = require("./utils");
21
22
  var classes = (0, _classnames["default"])("".concat(_constants.CSS_PREFIX, "-list"));
@@ -23,6 +24,70 @@ var listKeyCounter = 0;
23
24
  var generateKey = function generateKey() {
24
25
  return "list_".concat(++listKeyCounter);
25
26
  };
27
+ // Stable empty result for the no-value case — a fresh [] per selector run
28
+ // would never compare equal and loop the subscription.
29
+ var EMPTY_LIST = [];
30
+ // Row-level memo boundary: setNestedValue clones ONLY the edited row, so
31
+ // untouched rows keep their record identity and bail out here while a
32
+ // sibling row is being edited.
33
+ var ListRowActionsBase = function ListRowActionsBase(_ref) {
34
+ var index = _ref.index,
35
+ record = _ref.record,
36
+ canAdd = _ref.canAdd,
37
+ canRemove = _ref.canRemove,
38
+ copyIconProps = _ref.copyIconProps,
39
+ deleteIconProps = _ref.deleteIconProps,
40
+ action = _ref.action,
41
+ actionRender = _ref.actionRender,
42
+ itemRender = _ref.itemRender,
43
+ onCopy = _ref.onCopy,
44
+ onRemove = _ref.onRemove;
45
+ var copyBtnProps = (0, _utils.extractButtonProps)(copyIconProps);
46
+ var deleteBtnProps = (0, _utils.extractButtonProps)(deleteIconProps);
47
+ var defaultDom = {
48
+ copy: copyIconProps !== false ? (0, _jsxRuntime.jsx)(_Button.Button, Object.assign({
49
+ type: "button",
50
+ color: "secondary",
51
+ size: "small"
52
+ }, copyBtnProps.rest, {
53
+ onClick: function onClick() {
54
+ return onCopy(index);
55
+ },
56
+ disabled: !canAdd || copyBtnProps.disabled,
57
+ children: _constants.DEFAULT_TEXT.copy
58
+ }), "copy-".concat(index)) : null,
59
+ "delete": deleteIconProps !== false ? (0, _jsxRuntime.jsx)(_Button.Button, Object.assign({
60
+ type: "button",
61
+ color: "secondary",
62
+ size: "small"
63
+ }, deleteBtnProps.rest, {
64
+ onClick: function onClick() {
65
+ return onRemove(index);
66
+ },
67
+ disabled: !canRemove || deleteBtnProps.disabled,
68
+ children: _constants.DEFAULT_TEXT["delete"]
69
+ }), "delete-".concat(index)) : null
70
+ };
71
+ var renderedActions = actionRender ? actionRender({
72
+ index: index,
73
+ record: record
74
+ }, action, defaultDom) : [defaultDom.copy, defaultDom["delete"]].filter(Boolean);
75
+ var rowNode = (0, _jsxRuntime.jsx)("div", {
76
+ className: classes('row-actions'),
77
+ children: renderedActions
78
+ });
79
+ if (itemRender) {
80
+ return (0, _jsxRuntime.jsx)(_jsxRuntime.Fragment, {
81
+ children: itemRender({
82
+ listDom: rowNode,
83
+ action: action
84
+ })
85
+ });
86
+ }
87
+ return rowNode;
88
+ };
89
+ ListRowActionsBase.displayName = 'ProFormListRowActions';
90
+ var ListRowActions = /*#__PURE__*/(0, _react.memo)(ListRowActionsBase);
26
91
  var ProFormListBase = function ProFormListBase(props) {
27
92
  var _a, _b;
28
93
  var rawName = props.name,
@@ -44,19 +109,21 @@ var ProFormListBase = function ProFormListBase(props) {
44
109
  // ── Nested list: prepend parent list name ──
45
110
  var parentCtx = (0, _context.useFormListContext)();
46
111
  var fullName = parentCtx.listName ? "".concat(parentCtx.listName, ".").concat(rawName) : rawName;
47
- var _useProFormContext = (0, _context.useProFormContext)(),
48
- values = _useProFormContext.values,
49
- setFieldValue = _useProFormContext.setFieldValue;
112
+ var _useProFormStable = (0, _context.useProFormStable)(),
113
+ setFieldValue = _useProFormStable.setFieldValue;
114
+ var store = (0, _context.useProFormStore)();
50
115
  var initialApplied = (0, _react.useRef)(false);
51
116
  var keysRef = (0, _react.useRef)([]);
52
117
  var _useSafeState = (0, _useSafeState3["default"])(null),
53
118
  _useSafeState2 = (0, _slicedToArray2["default"])(_useSafeState, 2),
54
119
  listError = _useSafeState2[0],
55
120
  setListError = _useSafeState2[1];
56
- var list = (0, _react.useMemo)(function () {
57
- var raw = fullName.includes('.') ? (0, _utils.getNestedValue)(values, fullName) : values[fullName];
58
- return Array.isArray(raw) ? raw : [];
59
- }, [values, fullName]);
121
+ // Subscribe ONLY to this list's own value: typing elsewhere in the form
122
+ // leaves the array identity untouched and this component does not render.
123
+ var list = (0, _formStore.useStoreSelector)(store, function (state) {
124
+ var raw = fullName.includes('.') ? (0, _utils.getNestedValue)(state.values, fullName) : state.values[fullName];
125
+ return Array.isArray(raw) ? raw : EMPTY_LIST;
126
+ });
60
127
  // Sync keys with list length
61
128
  while (keysRef.current.length < list.length) {
62
129
  keysRef.current.push(generateKey());
@@ -151,62 +218,47 @@ var ProFormListBase = function ProFormListBase(props) {
151
218
  getList: getList
152
219
  };
153
220
  }, [add, removeAt, move, copy, getList]);
221
+ // Per-key cache keeps each row's field object identity stable across list
222
+ // commits (e.g. typing in a sibling row), so memoized row content sees
223
+ // shallow-equal props and bails out.
224
+ var fieldObjCache = (0, _react.useRef)(new Map());
154
225
  var mappedFields = (0, _react.useMemo)(function () {
155
- return list.map(function (_item, index) {
156
- return {
157
- name: "".concat(fullName, ".").concat(index),
158
- key: keysRef.current[index] || "fallback_".concat(index)
226
+ var nextCache = new Map();
227
+ var fields = list.map(function (_item, index) {
228
+ var key = keysRef.current[index] || "fallback_".concat(index);
229
+ var fieldName = "".concat(fullName, ".").concat(index);
230
+ var cached = fieldObjCache.current.get(key);
231
+ var field = cached && cached.name === fieldName ? cached : {
232
+ name: fieldName,
233
+ key: key
159
234
  };
235
+ nextCache.set(key, field);
236
+ return field;
160
237
  });
238
+ fieldObjCache.current = nextCache;
239
+ return fields;
161
240
  }, [list, fullName]);
162
- // Render children
163
- var listDom = typeof children === 'function' ? children(mappedFields, action) : children;
164
- // Action buttons per row
165
- var actionRows = (0, _react.useMemo)(function () {
166
- return list.map(function (record, index) {
167
- var copyBtnProps = (0, _utils.extractButtonProps)(copyIconProps);
168
- var deleteBtnProps = (0, _utils.extractButtonProps)(deleteIconProps);
169
- var defaultDom = {
170
- copy: copyIconProps !== false ? (0, _jsxRuntime.jsx)(_Button.Button, Object.assign({
171
- type: "button",
172
- color: "secondary",
173
- size: "small"
174
- }, copyBtnProps.rest, {
175
- onClick: function onClick() {
176
- return copy(index);
177
- },
178
- disabled: !canAdd || copyBtnProps.disabled,
179
- children: _constants.DEFAULT_TEXT.copy
180
- }), "copy-".concat(index)) : null,
181
- "delete": deleteIconProps !== false ? (0, _jsxRuntime.jsx)(_Button.Button, Object.assign({
182
- type: "button",
183
- color: "secondary",
184
- size: "small"
185
- }, deleteBtnProps.rest, {
186
- onClick: function onClick() {
187
- return removeAt(index);
188
- },
189
- disabled: !canRemove || deleteBtnProps.disabled,
190
- children: _constants.DEFAULT_TEXT["delete"]
191
- }), "delete-".concat(index)) : null
192
- };
193
- var renderedActions = actionRender ? actionRender({
194
- index: index,
195
- record: record
196
- }, action, defaultDom) : [defaultDom.copy, defaultDom["delete"]].filter(Boolean);
197
- var rowNode = (0, _jsxRuntime.jsx)("div", {
198
- className: classes('row-actions'),
199
- children: renderedActions
200
- }, keysRef.current[index] || index);
201
- if (itemRender) {
202
- return itemRender({
203
- listDom: rowNode,
204
- action: action
205
- });
206
- }
207
- return rowNode;
208
- });
209
- }, [list, copyIconProps, deleteIconProps, canAdd, canRemove, copy, removeAt, action, actionRender, itemRender]);
241
+ // Memoized so the row factory is re-invoked only when the list itself (or
242
+ // the consumer-provided children) changes never for unrelated commits.
243
+ var listDom = (0, _react.useMemo)(function () {
244
+ return typeof children === 'function' ? children(mappedFields, action) : children;
245
+ }, [children, mappedFields, action]);
246
+ // Action buttons per row — ListRowActions is the memo boundary
247
+ var actionRows = list.map(function (record, index) {
248
+ return (0, _jsxRuntime.jsx)(ListRowActions, {
249
+ index: index,
250
+ record: record,
251
+ canAdd: canAdd,
252
+ canRemove: canRemove,
253
+ copyIconProps: copyIconProps,
254
+ deleteIconProps: deleteIconProps,
255
+ action: action,
256
+ actionRender: actionRender,
257
+ itemRender: itemRender,
258
+ onCopy: copy,
259
+ onRemove: removeAt
260
+ }, keysRef.current[index] || index);
261
+ });
210
262
  // Creator button
211
263
  var hasCreator = creatorButtonProps !== false;
212
264
  var creatorConfig = hasCreator && (0, _typeof2["default"])(creatorButtonProps) === 'object' ? creatorButtonProps : {};
@@ -257,4 +309,4 @@ var ProFormListBase = function ProFormListBase(props) {
257
309
  ProFormListBase.displayName = 'ProFormList';
258
310
  var ProFormList = exports.ProFormList = /*#__PURE__*/(0, _react.memo)(ProFormListBase);
259
311
  var _default = exports["default"] = ProFormList;
260
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvUHJvRm9ybS9Qcm9Gb3JtTGlzdC5qcyIsImNvbXBvbmVudHMvc3JjL2NvbXBvbmVudHMvUHJvRm9ybS9Qcm9Gb3JtTGlzdC50c3giXSwibmFtZXMiOlsiX2pzeFJ1bnRpbWUiLCJyZXF1aXJlIiwiX3JlYWN0IiwiX3VzZU1lbW9pemVkRm4iLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiX3VzZVNhZmVTdGF0ZTMiLCJfY2xhc3NuYW1lcyIsIl9CdXR0b24iLCJfVHlwb2dyYXBoeSIsIl9jb250ZXh0IiwiX2NvbnN0YW50cyIsIl91dGlscyIsImNsYXNzZXMiLCJjbGFzc25hbWVzIiwiY29uY2F0IiwiQ1NTX1BSRUZJWCIsImxpc3RLZXlDb3VudGVyIiwiZ2VuZXJhdGVLZXkiLCJQcm9Gb3JtTGlzdEJhc2UiLCJwcm9wcyIsIl9hIiwiX2IiLCJyYXdOYW1lIiwibmFtZSIsImxhYmVsIiwibWluIiwibWF4IiwicmVxdWlyZWQiLCJfcHJvcHMkcmVxdWlyZWRNZXNzYWciLCJyZXF1aXJlZE1lc3NhZ2UiLCJpbml0aWFsVmFsdWUiLCJjb3B5SWNvblByb3BzIiwiZGVsZXRlSWNvblByb3BzIiwiY3JlYXRvckJ1dHRvblByb3BzIiwiaXRlbVJlbmRlciIsImFjdGlvblJlbmRlciIsImNoaWxkcmVuIiwib25BZnRlckFkZCIsIm9uQWZ0ZXJSZW1vdmUiLCJwYXJlbnRDdHgiLCJ1c2VGb3JtTGlzdENvbnRleHQiLCJmdWxsTmFtZSIsImxpc3ROYW1lIiwiX3VzZVByb0Zvcm1Db250ZXh0IiwidXNlUHJvRm9ybUNvbnRleHQiLCJ2YWx1ZXMiLCJzZXRGaWVsZFZhbHVlIiwiaW5pdGlhbEFwcGxpZWQiLCJ1c2VSZWYiLCJrZXlzUmVmIiwiX3VzZVNhZmVTdGF0ZSIsInVzZVNhZmVTdGF0ZSIsIl91c2VTYWZlU3RhdGUyIiwiX3NsaWNlZFRvQXJyYXkyIiwibGlzdEVycm9yIiwic2V0TGlzdEVycm9yIiwibGlzdCIsInVzZU1lbW8iLCJyYXciLCJpbmNsdWRlcyIsImdldE5lc3RlZFZhbHVlIiwiQXJyYXkiLCJpc0FycmF5IiwiY3VycmVudCIsImxlbmd0aCIsInB1c2giLCJzbGljZSIsInVzZUVmZmVjdCIsIl90b0NvbnN1bWFibGVBcnJheTIiLCJtYXAiLCJjYW5BZGQiLCJjYW5SZW1vdmUiLCJ2YWxpZGF0ZUxpc3QiLCJ1c2VNZW1vaXplZEZuIiwiYWRkIiwiZGVmYXVsdFZhbHVlIiwiaW5kZXgiLCJ2YWx1ZSIsIm5ld0xpc3QiLCJuZXdLZXlzIiwiaW5zZXJ0SW5kZXgiLCJzcGxpY2UiLCJyZW1vdmVBdCIsImNvcHkiLCJPYmplY3QiLCJhc3NpZ24iLCJtb3ZlIiwiZnJvbSIsInRvIiwiX25ld0xpc3Qkc3BsaWNlIiwiX25ld0xpc3Qkc3BsaWNlMiIsIm1vdmVkSXRlbSIsIl9uZXdLZXlzJHNwbGljZSIsIl9uZXdLZXlzJHNwbGljZTIiLCJtb3ZlZEtleSIsImdldExpc3QiLCJhY3Rpb24iLCJyZW1vdmUiLCJtYXBwZWRGaWVsZHMiLCJfaXRlbSIsImtleSIsImxpc3REb20iLCJhY3Rpb25Sb3dzIiwicmVjb3JkIiwiY29weUJ0blByb3BzIiwiZXh0cmFjdEJ1dHRvblByb3BzIiwiZGVsZXRlQnRuUHJvcHMiLCJkZWZhdWx0RG9tIiwiX2pzeCIsIkJ1dHRvbiIsInR5cGUiLCJjb2xvciIsInNpemUiLCJyZXN0Iiwib25DbGljayIsImRpc2FibGVkIiwiREVGQVVMVF9URVhUIiwicmVuZGVyZWRBY3Rpb25zIiwiZmlsdGVyIiwiQm9vbGVhbiIsInJvd05vZGUiLCJjbGFzc05hbWUiLCJoYXNDcmVhdG9yIiwiY3JlYXRvckNvbmZpZyIsIl90eXBlb2YyIiwiY3JlYXRvclBvc2l0aW9uIiwicG9zaXRpb24iLCJjcmVhdG9yVGV4dCIsInRleHQiLCJjcmVhdG9yQnV0dG9uIiwiZm9ybUxpc3RDb250ZXh0VmFsdWUiLCJGb3JtTGlzdENvbnRleHQiLCJQcm92aWRlciIsIl9qc3hzIiwiVHlwb2dyYXBoeUxhYmVsIiwiUFJPRk9STV9MSVNUX0xBQkVMX1NJWkUiLCJQUk9GT1JNX0xJU1RfTEFCRUxfQ09MT1IiLCJUeXBvZ3JhcGh5Qm9keSIsImFzIiwiZGlzcGxheU5hbWUiLCJQcm9Gb3JtTGlzdCIsImV4cG9ydHMiLCJtZW1vIiwiX2RlZmF1bHQiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7QUFBQSxJQUFBQSxXQUFBLEdBQUFDLE9BQUE7QUNBQSxJQUFBQyxNQUFBLEdBQUFELE9BQUE7QUFFQSxJQUFBRSxjQUFBLEdBQUFDLHNCQUFBLENBQUFILE9BQUE7QUFDQSxJQUFBSSxjQUFBLEdBQUFELHNCQUFBLENBQUFILE9BQUE7QUFDQSxJQUFBSyxXQUFBLEdBQUFGLHNCQUFBLENBQUFILE9BQUE7QUFDQSxJQUFBTSxPQUFBLEdBQUFOLE9BQUE7QUFDQSxJQUFBTyxXQUFBLEdBQUFQLE9BQUE7QUFDQSxJQUFBUSxRQUFBLEdBQUFSLE9BQUE7QUFDQSxJQUFBUyxVQUFBLEdBQUFULE9BQUE7QUFDQSxJQUFBVSxNQUFBLEdBQUFWLE9BQUE7QUFHQSxJQUFNVyxPQUFPLEdBQUcsSUFBQUMsc0JBQVUsS0FBQUMsTUFBQSxDQUFJQyxxQkFBVSxVQUFPLENBQUM7QUFFaEQsSUFBSUMsY0FBYyxHQUFHLENBQUM7QUFDdEIsSUFBTUMsV0FBVyxHQUFHLFNBQWRBLFdBQVdBLENBQUE7RUFBQSxlQUFBSCxNQUFBLENBQXlCLEVBQUVFLGNBQWM7QUFBQSxDQUFFO0FBRTVELElBQU1FLGVBQWUsR0FBeUIsU0FBeENBLGVBQWVBLENBQTBCQyxLQUFLLEVBQUk7RURIcEQsSUFBSUMsRUFBRSxFQUFFQyxFQUFFO0VDSVosSUFDUUMsT0FBTyxHQWVYSCxLQUFLLENBZlBJLElBQUk7SUFDSkMsS0FBSyxHQWNITCxLQUFLLENBZFBLLEtBQUs7SUFDTEMsR0FBRyxHQWFETixLQUFLLENBYlBNLEdBQUc7SUFDSEMsR0FBRyxHQVlEUCxLQUFLLENBWlBPLEdBQUc7SUFDSEMsUUFBUSxHQVdOUixLQUFLLENBWFBRLFFBQVE7SUFBQUMscUJBQUEsR0FXTlQsS0FBSyxDQVZQVSxlQUFl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TUFBUyxDQUFBLENBQWtCO0lBQUEsQ0FBQTtFQUN4RixDQUFBLENBQ21CO0FBRS9CLENBQUM7QUFFRHBDLGVBQWUsQ0FBQ3lILFdBQVcsR0FBRyxhQUFhO0FBRXBDLElBQU1DLFdBQVcsR0FBQUMsT0FBQSxDQUFBRCxXQUFBLGdCQUFHLElBQUFFLFdBQUksRUFBQzVILGVBQWUsQ0FBQztBQUFDLElBQUE2SCxRQUFBLEdBQUFGLE9BQUEsY0FFbENELFdBQVciLCJmaWxlIjoiY29tcG9uZW50cy9Qcm9Gb3JtL1Byb0Zvcm1MaXN0LmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsganN4IGFzIF9qc3gsIGpzeHMgYXMgX2pzeHMgfSBmcm9tIFwicmVhY3QvanN4LXJ1bnRpbWVcIjtcbmltcG9ydCB7IG1lbW8sIHVzZUVmZmVjdCwgdXNlTWVtbywgdXNlUmVmIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHVzZU1lbW9pemVkRm4gZnJvbSAnQDFtb25leS9ob29rcy91c2VNZW1vaXplZEZuJztcbmltcG9ydCB1c2VTYWZlU3RhdGUgZnJvbSAnQDFtb25leS9ob29rcy91c2VTYWZlU3RhdGUnO1xuaW1wb3J0IHsgZGVmYXVsdCBhcyBjbGFzc25hbWVzIH0gZnJvbSAnLi4vLi4vdXRpbHMvY2xhc3NuYW1lcyc7XG5pbXBvcnQgeyBCdXR0b24gfSBmcm9tICcuLi9CdXR0b24nO1xuaW1wb3J0IHsgVHlwb2dyYXBoeUxhYmVsLCBUeXBvZ3JhcGh5Qm9keSB9IGZyb20gJy4uL1R5cG9ncmFwaHknO1xuaW1wb3J0IHsgRm9ybUxpc3RDb250ZXh0LCB1c2VGb3JtTGlzdENvbnRleHQsIHVzZVByb0Zvcm1Db250ZXh0IH0gZnJvbSAnLi9jb250ZXh0JztcbmltcG9ydCB7IENTU19QUkVGSVgsIERFRkFVTFRfVEVYVCwgUFJPRk9STV9MSVNUX0xBQkVMX1NJWkUsIFBST0ZPUk1fTElTVF9MQUJFTF9DT0xPUiB9IGZyb20gJy4vY29uc3RhbnRzJztcbmltcG9ydCB7IGV4dHJhY3RCdXR0b25Qcm9wcywgZ2V0TmVzdGVkVmFsdWUgfSBmcm9tICcuL3V0aWxzJztcbmNvbnN0IGNsYXNzZXMgPSBjbGFzc25hbWVzKGAke0NTU19QUkVGSVh9LWxpc3RgKTtcbmxldCBsaXN0S2V5Q291bnRlciA9IDA7XG5jb25zdCBnZW5lcmF0ZUtleSA9ICgpID0+IGBsaXN0XyR7KytsaXN0S2V5Q291bnRlcn1gO1xuY29uc3QgUHJvRm9ybUxpc3RCYXNlID0gKHByb3BzKSA9PiB7XG4gICAgdmFyIF9hLCBfYjtcbiAgICBjb25zdCB7IG5hbWU6IHJhd05hbWUsIGxhYmVsLCBtaW4sIG1heCwgcmVxdWlyZWQsIHJlcXVpcmVkTWVzc2FnZSA9ICdUaGlzIGxpc3QgY2Fubm90IGJlIGVtcHR5JywgaW5pdGlhbFZhbHVlLCBjb3B5SWNvblByb3BzLCBkZWxldGVJY29uUHJvcHMsIGNyZWF0b3JCdXR0b25Qcm9wcywgaXRlbVJlbmRlciwgYWN0aW9uUmVuZGVyLCBjaGlsZHJlbiwgb25BZnRlckFkZCwgb25BZnRlclJlbW92ZSwgfSA9IHByb3BzO1xuICAgIC8vIOKUgOKUgCBOZXN0ZWQgbGlzdDogcHJlcGVuZCBwYXJlbnQgbGlzdCBuYW1lIOKUgOKUgFxuICAgIGNvbnN0IHBhcmVudEN0eCA9IHVzZUZvcm1MaXN0Q29udGV4dCgpO1xuICAgIGNvbnN0IGZ1bGxOYW1lID0gcGFyZW50Q3R4Lmxpc3ROYW1lID8gYCR7cGFyZW50Q3R4Lmxpc3ROYW1lfS4ke3Jhd05hbWV9YCA6IHJhd05hbWU7XG4gICAgY29uc3QgeyB2YWx1ZXMsIHNldEZpZWxkVmFsdWUgfSA9IHVzZVByb0Zvcm1Db250ZXh0KCk7XG4gICAgY29uc3QgaW5pdGlhbEFwcGxpZWQgPSB1c2VSZWYoZmFsc2UpO1xuICAgIGNvbnN0IGtleXNSZWYgPSB1c2VSZWYoW10pO1xuICAgIGNvbnN0IFtsaXN0RXJyb3IsIHNldExpc3RFcnJvcl0gPSB1c2VTYWZlU3RhdGUobnVsbCk7XG4gICAgY29uc3QgbGlzdCA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgICBjb25zdCByYXcgPSBmdWxsTmFtZS5pbmNsdWRlcygnLicpXG4gICAgICAgICAgICA/IGdldE5lc3RlZFZhbHVlKHZhbHVlcywgZnVsbE5hbWUpXG4gICAgICAgICAgICA6IHZhbHVlc1tmdWxsTmFtZV07XG4gICAgICAgIHJldHVybiBBcnJheS5pc0FycmF5KHJhdykgPyByYXcgOiBbXTtcbiAgICB9LCBbdmFsdWVzLCBmdWxsTmFtZV0pO1xuICAgIC8vIFN5bmMga2V5cyB3aXRoIGxpc3QgbGVuZ3RoXG4gICAgd2hpbGUgKGtleXNSZWYuY3VycmVudC5sZW5ndGggPCBsaXN0Lmxlbmd0aCkge1xuICAgICAgICBrZXlzUmVmLmN1cnJlbnQucHVzaChnZW5lcmF0ZUtleSgpKTtcbiAgICB9XG4gICAgaWYgKGtleXNSZWYuY3VycmVudC5sZW5ndGggPiBsaXN0Lmxlbmd0aCkge1xuICAgICAgICBrZXlzUmVmLmN1cnJlbnQgPSBrZXlzUmVmLmN1cnJlbnQuc2xpY2UoMCwgbGlzdC5sZW5ndGgpO1xuICAgIH1cbiAgICAvLyBBcHBseSBpbml0aWFsIHZhbHVlIG9uY2VcbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICBpZiAoaW5pdGlhbEFwcGxpZWQuY3VycmVudClcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgaWYgKGxpc3QubGVuZ3RoICE9PSAwKVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICBpZiAoIUFycmF5LmlzQXJyYXkoaW5pdGlhbFZhbHVlKSB8fCBpbml0aWFsVmFsdWUubGVuZ3RoID09PSAwKVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICBpbml0aWFsQXBwbGllZC5jdXJyZW50ID0gdHJ1ZTtcbiAgICAgICAgc2V0RmllbGRWYWx1ZShmdWxsTmFtZSwgWy4uLmluaXRpYWxWYWx1ZV0pO1xuICAgICAgICBrZXlzUmVmLmN1cnJlbnQgPSBpbml0aWFsVmFsdWUubWFwKCgpID0+IGdlbmVyYXRlS2V5KCkpO1xuICAgIH0sIFtsaXN0Lmxlbmd0aCwgaW5pdGlhbFZhbHVlLCBmdWxsTmFtZSwgc2V0RmllbGRWYWx1ZV0pO1xuICAgIC8vIENsZWFyIGVycm9yIHdoZW4gbGlzdCBiZWNvbWVzIG5vbi1lbXB0eVxuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIGlmIChyZXF1aXJlZCAmJiBsaXN0Lmxlbmd0aCA+IDAgJiYgbGlzdEVycm9yKSB7XG4gICAgICAgICAgICBzZXRMaXN0RXJyb3IobnVsbCk7XG4gICAgICAgIH1cbiAgICB9LCBbbGlzdC5sZW5ndGgsIHJlcXVpcmVkLCBsaXN0RXJyb3IsIHNldExpc3RFcnJvcl0pO1xuICAgIGNvbnN0IGNhbkFkZCA9IG1heCA9PSBudWxsIHx8IGxpc3QubGVuZ3RoIDwgbWF4O1xuICAgIGNvbnN0IGNhblJlbW92ZSA9IG1pbiA9PSBudWxsIHx8IGxpc3QubGVuZ3RoID4gbWluO1xuICAgIGNvbnN0IHZhbGlkYXRlTGlzdCA9IHVzZU1lbW9pemVkRm4oKCkgPT4ge1xuICAgICAgICBpZiAoIXJlcXVpcmVkKVxuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIGlmIChsaXN0Lmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgc2V0TGlzdEVycm9yKHJlcXVpcmVkTWVzc2FnZSk7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgc2V0TGlzdEVycm9yKG51bGwpO1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9KTtcbiAgICBjb25zdCBhZGQgPSB1c2VNZW1vaXplZEZuKChkZWZhdWx0VmFsdWUsIGluZGV4KSA9PiB7XG4gICAgICAgIGlmICghY2FuQWRkKVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICBjb25zdCB2YWx1ZSA9IGRlZmF1bHRWYWx1ZSAhPT0gbnVsbCAmJiBkZWZhdWx0VmFsdWUgIT09IHZvaWQgMCA/IGRlZmF1bHRWYWx1ZSA6IHt9O1xuICAgICAgICBjb25zdCBuZXdMaXN0ID0gWy4uLmxpc3RdO1xuICAgICAgICBjb25zdCBuZXdLZXlzID0gWy4uLmtleXNSZWYuY3VycmVudF07XG4gICAgICAgIGNvbnN0IGluc2VydEluZGV4ID0gdHlwZW9mIGluZGV4ID09PSAnbnVtYmVyJyA/IGluZGV4IDogbmV3TGlzdC5sZW5ndGg7XG4gICAgICAgIG5ld0xpc3Quc3BsaWNlKGluc2VydEluZGV4LCAwLCB2YWx1ZSk7XG4gICAgICAgIG5ld0tleXMuc3BsaWNlKGluc2VydEluZGV4LCAwLCBnZW5lcmF0ZUtleSgpKTtcbiAgICAgICAga2V5c1JlZi5jdXJyZW50ID0gbmV3S2V5cztcbiAgICAgICAgc2V0RmllbGRWYWx1ZShmdWxsTmFtZSwgbmV3TGlzdCk7XG4gICAgICAgIG9uQWZ0ZXJBZGQgPT09IG51bGwgfHwgb25BZnRlckFkZCA9PT0gdm9pZCAwID8gdm9pZCAwIDogb25BZnRlckFkZCh2YWx1ZSwgaW5zZXJ0SW5kZXgpO1xuICAgIH0pO1xuICAgIGNvbnN0IHJlbW92ZUF0ID0gdXNlTWVtb2l6ZWRGbigoaW5kZXgpID0+IHtcbiAgICAgICAgaWYgKCFjYW5SZW1vdmUpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIGNvbnN0IG5ld0xpc3QgPSBbLi4ubGlzdF07XG4gICAgICAgIGNvbnN0IG5ld0tleXMgPSBbLi4ua2V5c1JlZi5jdXJyZW50XTtcbiAgICAgICAgbmV3TGlzdC5zcGxpY2UoaW5kZXgsIDEpO1xuICAgICAgICBuZXdLZXlzLnNwbGljZShpbmRleCwgMSk7XG4gICAgICAgIGtleXNSZWYuY3VycmVudCA9IG5ld0tleXM7XG4gICAgICAgIHNldEZpZWxkVmFsdWUoZnVsbE5hbWUsIG5ld0xpc3QpO1xuICAgICAgICBvbkFmdGVyUmVtb3ZlID09PSBudWxsIHx8IG9uQWZ0ZXJSZW1vdmUgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9uQWZ0ZXJSZW1vdmUoaW5kZXgpO1xuICAgICAgICAvLyBWYWxpZGF0ZSBhZnRlciByZW1vdmVcbiAgICAgICAgaWYgKHJlcXVpcmVkICYmIG5ld0xpc3QubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICBzZXRMaXN0RXJyb3IocmVxdWlyZWRNZXNzYWdlKTtcbiAgICAgICAgfVxuICAgIH0pO1xuICAgIGNvbnN0IGNvcHkgPSB1c2VNZW1vaXplZEZuKChpbmRleCkgPT4ge1xuICAgICAgICBpZiAoIWNhbkFkZClcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgY29uc3QgdmFsdWUgPSBsaXN0W2luZGV4XSA/IE9iamVjdC5hc3NpZ24oe30sIGxpc3RbaW5kZXhdKSA6IHt9O1xuICAgICAgICBhZGQodmFsdWUsIGluZGV4ICsgMSk7XG4gICAgfSk7XG4gICAgY29uc3QgbW92ZSA9IHVzZU1lbW9pemVkRm4oKGZyb20sIHRvKSA9PiB7XG4gICAgICAgIGlmIChmcm9tID09PSB0bylcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgaWYgKGZyb20gPCAwIHx8IGZyb20gPj0gbGlzdC5sZW5ndGggfHwgdG8gPCAwIHx8IHRvID49IGxpc3QubGVuZ3RoKVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICBjb25zdCBuZXdMaXN0ID0gWy4uLmxpc3RdO1xuICAgICAgICBjb25zdCBuZXdLZXlzID0gWy4uLmtleXNSZWYuY3VycmVudF07XG4gICAgICAgIGNvbnN0IFttb3ZlZEl0ZW1dID0gbmV3TGlzdC5zcGxpY2UoZnJvbSwgMSk7XG4gICAgICAgIGNvbnN0IFttb3ZlZEtleV0gPSBuZXdLZXlzLnNwbGljZShmcm9tLCAxKTtcbiAgICAgICAgbmV3TGlzdC5zcGxpY2UodG8sIDAsIG1vdmVkSXRlbSk7XG4gICAgICAgIG5ld0tleXMuc3BsaWNlKHRvLCAwLCBtb3ZlZEtleSk7XG4gICAgICAgIGtleXNSZWYuY3VycmVudCA9IG5ld0tleXM7XG4gICAgICAgIHNldEZpZWxkVmFsdWUoZnVsbE5hbWUsIG5ld0xpc3QpO1xuICAgIH0pO1xuICAgIGNvbnN0IGdldExpc3QgPSB1c2VNZW1vaXplZEZuKCgpID0+IGxpc3QpO1xuICAgIGNvbnN0IGFjdGlvbiA9IHVzZU1lbW8oKCkgPT4gKHsgYWRkLCByZW1vdmU6IHJlbW92ZUF0LCBtb3ZlLCBjb3B5LCBnZXRMaXN0IH0pLCBbYWRkLCByZW1vdmVBdCwgbW92ZSwgY29weSwgZ2V0TGlzdF0pO1xuICAgIGNvbnN0IG1hcHBlZEZpZWxkcyA9IHVzZU1lbW8oKCkgPT4gbGlzdC5tYXAoKF9pdGVtLCBpbmRleCkgPT4gKHtcbiAgICAgICAgbmFtZTogYCR7ZnVsbE5hbWV9LiR7aW5kZXh9YCxcbiAgICAgICAga2V5OiBrZXlzUmVmLmN1cnJlbnRbaW5kZXhdIHx8IGBmYWxsYmFja18ke2luZGV4fWAsXG4gICAgfSkpLCBbbGlzdCwgZnVsbE5hbWVdKTtcbiAgICAvLyBSZW5kZXIgY2hpbGRyZW5cbiAgICBjb25zdCBsaXN0RG9tID0gdHlwZW9mIGNoaWxkcmVuID09PSAnZnVuY3Rpb24nXG4gICAgICAgID8gY2hpbGRyZW4obWFwcGVkRmllbGRzLCBhY3Rpb24pXG4gICAgICAgIDogY2hpbGRyZW47XG4gICAgLy8gQWN0aW9uIGJ1dHRvbnMgcGVyIHJvd1xuICAgIGNvbnN0IGFjdGlvblJvd3MgPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgICAgcmV0dXJuIGxpc3QubWFwKChyZWNvcmQsIGluZGV4KSA9PiB7XG4gICAgICAgICAgICBjb25zdCBjb3B5QnRuUHJvcHMgPSBleHRyYWN0QnV0dG9uUHJvcHMoY29weUljb25Qcm9wcyk7XG4gICAgICAgICAgICBjb25zdCBkZWxldGVCdG5Qcm9wcyA9IGV4dHJhY3RCdXR0b25Qcm9wcyhkZWxldGVJY29uUHJvcHMpO1xuICAgICAgICAgICAgY29uc3QgZGVmYXVsdERvbSA9IHtcbiAgICAgICAgICAgICAgICBjb3B5OiBjb3B5SWNvblByb3BzICE9PSBmYWxzZSA/IChfanN4KEJ1dHRvbiwgT2JqZWN0LmFzc2lnbih7IHR5cGU6IFwiYnV0dG9uXCIsIGNvbG9yOiBcInNlY29uZGFyeVwiLCBzaXplOiBcInNtYWxsXCIgfSwgY29weUJ0blByb3BzLnJlc3QsIHsgb25DbGljazogKCkgPT4gY29weShpbmRleCksIGRpc2FibGVkOiAhY2FuQWRkIHx8IGNvcHlCdG5Qcm9wcy5kaXNhYmxlZCwgY2hpbGRyZW46IERFRkFVTFRfVEVYVC5jb3B5IH0pLCBgY29weS0ke2luZGV4fWApKSA6IG51bGwsXG4gICAgICAgICAgICAgICAgZGVsZXRlOiBkZWxldGVJY29uUHJvcHMgIT09IGZhbHNlID8gKF9qc3goQnV0dG9uLCBPYmplY3QuYXNzaWduKHsgdHlwZTogXCJidXR0b25cIiwgY29sb3I6IFwic2Vjb25kYXJ5XCIsIHNpemU6IFwic21hbGxcIiB9LCBkZWxldGVCdG5Qcm9wcy5yZXN0LCB7IG9uQ2xpY2s6ICgpID0+IHJlbW92ZUF0KGluZGV4KSwgZGlzYWJsZWQ6ICFjYW5SZW1vdmUgfHwgZGVsZXRlQnRuUHJvcHMuZGlzYWJsZWQsIGNoaWxkcmVuOiBERUZBVUxUX1RFWFQuZGVsZXRlIH0pLCBgZGVsZXRlLSR7aW5kZXh9YCkpIDogbnVsbCxcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBjb25zdCByZW5kZXJlZEFjdGlvbnMgPSBhY3Rpb25SZW5kZXJcbiAgICAgICAgICAgICAgICA/IGFjdGlvblJlbmRlcih7IGluZGV4LCByZWNvcmQgfSwgYWN0aW9uLCBkZWZhdWx0RG9tKVxuICAgICAgICAgICAgICAgIDogW2RlZmF1bHREb20uY29weSwgZGVmYXVsdERvbS5kZWxldGVdLmZpbHRlcihCb29sZWFuKTtcbiAgICAgICAgICAgIGNvbnN0IHJvd05vZGUgPSAoX2pzeChcImRpdlwiLCB7IGNsYXNzTmFtZTogY2xhc3Nlcygncm93LWFjdGlvbnMnKSwgY2hpbGRyZW46IHJlbmRlcmVkQWN0aW9ucyB9LCBrZXlzUmVmLmN1cnJlbnRbaW5kZXhdIHx8IGluZGV4KSk7XG4gICAgICAgICAgICBpZiAoaXRlbVJlbmRlcikge1xuICAgICAgICAgICAgICAgIHJldHVybiBpdGVtUmVuZGVyKHsgbGlzdERvbTogcm93Tm9kZSwgYWN0aW9uIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHJvd05vZGU7XG4gICAgICAgIH0pO1xuICAgIH0sIFtsaXN0LCBjb3B5SWNvblByb3BzLCBkZWxldGVJY29uUHJvcHMsIGNhbkFkZCwgY2FuUmVtb3ZlLCBjb3B5LCByZW1vdmVBdCwgYWN0aW9uLCBhY3Rpb25SZW5kZXIsIGl0ZW1SZW5kZXJdKTtcbiAgICAvLyBDcmVhdG9yIGJ1dHRvblxuICAgIGNvbnN0IGhhc0NyZWF0b3IgPSBjcmVhdG9yQnV0dG9uUHJvcHMgIT09IGZhbHNlO1xuICAgIGNvbnN0IGNyZWF0b3JDb25maWcgPSBoYXNDcmVhdG9yICYmIHR5cGVvZiBjcmVhdG9yQnV0dG9uUHJvcHMgPT09ICdvYmplY3QnID8gY3JlYXRvckJ1dHRvblByb3BzIDoge307XG4gICAgY29uc3QgY3JlYXRvclBvc2l0aW9uID0gKF9hID0gY3JlYXRvckNvbmZpZyA9PT0gbnVsbCB8fCBjcmVhdG9yQ29uZmlnID09PSB2b2lkIDAgPyB2b2lkIDAgOiBjcmVhdG9yQ29uZmlnLnBvc2l0aW9uKSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiAnYm90dG9tJztcbiAgICBjb25zdCBjcmVhdG9yVGV4dCA9IChfYiA9IGNyZWF0b3JDb25maWcgPT09IG51bGwgfHwgY3JlYXRvckNvbmZpZyA9PT0gdm9pZCAwID8gdm9pZCAwIDogY3JlYXRvckNvbmZpZy50ZXh0KSAhPT0gbnVsbCAmJiBfYiAhPT0gdm9pZCAwID8gX2IgOiBERUZBVUxUX1RFWFQuYWRkO1xuICAgIGNvbnN0IGNyZWF0b3JCdXR0b24gPSBoYXNDcmVhdG9yID8gKF9qc3goQnV0dG9uLCB7IHR5cGU6IFwiYnV0dG9uXCIsIGNvbG9yOiBcInNlY29uZGFyeVwiLCBvbkNsaWNrOiAoKSA9PiB7XG4gICAgICAgICAgICBpZiAoY3JlYXRvclBvc2l0aW9uID09PSAndG9wJykge1xuICAgICAgICAgICAgICAgIGFkZCh7fSwgMCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICBhZGQoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSwgZGlzYWJsZWQ6ICFjYW5BZGQsIGNoaWxkcmVuOiBjcmVhdG9yVGV4dCB9KSkgOiBudWxsO1xuICAgIGNvbnN0IGZvcm1MaXN0Q29udGV4dFZhbHVlID0gdXNlTWVtbygoKSA9PiAoeyBsaXN0TmFtZTogZnVsbE5hbWUgfSksIFtmdWxsTmFtZV0pO1xuICAgIHJldHVybiAoX2pzeChGb3JtTGlzdENvbnRleHQuUHJvdmlkZXIsIHsgdmFsdWU6IGZvcm1MaXN0Q29udGV4dFZhbHVlLCBjaGlsZHJlbjogX2pzeHMoXCJkaXZcIiwgeyBjbGFzc05hbWU6IGNsYXNzZXMoKSwgY2hpbGRyZW46IFtsYWJlbCAmJiBfanN4KFR5cG9ncmFwaHlMYWJlbCwgeyBjbGFzc05hbWU6IGNsYXNzZXMoJ2xhYmVsJyksIHNpemU6IFBST0ZPUk1fTElTVF9MQUJFTF9TSVpFLCBjb2xvcjogUFJPRk9STV9MSVNUX0xBQkVMX0NPTE9SLCBjaGlsZHJlbjogbGFiZWwgfSksIGNyZWF0b3JQb3NpdGlvbiA9PT0gJ3RvcCcgJiYgY3JlYXRvckJ1dHRvbiwgX2pzeChcImRpdlwiLCB7IGNsYXNzTmFtZTogY2xhc3NlcygnY29udGVudCcpLCBjaGlsZHJlbjogbGlzdERvbSB9KSwgX2pzeChcImRpdlwiLCB7IGNsYXNzTmFtZTogY2xhc3NlcygnYWN0aW9ucycpLCBjaGlsZHJlbjogYWN0aW9uUm93cyB9KSwgY3JlYXRvclBvc2l0aW9uID09PSAnYm90dG9tJyAmJiBjcmVhdG9yQnV0dG9uLCBsaXN0RXJyb3IgJiYgX2pzeChUeXBvZ3JhcGh5Qm9keSwgeyBhczogXCJkaXZcIiwgc2l6ZTogXCJzbVwiLCBjb2xvcjogXCJkYW5nZXJcIiwgY2hpbGRyZW46IGxpc3RFcnJvciB9KV0gfSkgfSkpO1xufTtcblByb0Zvcm1MaXN0QmFzZS5kaXNwbGF5TmFtZSA9ICdQcm9Gb3JtTGlzdCc7XG5leHBvcnQgY29uc3QgUHJvRm9ybUxpc3QgPSBtZW1vKFByb0Zvcm1MaXN0QmFzZSk7XG5leHBvcnQgZGVmYXVsdCBQcm9Gb3JtTGlzdDsiLG51bGxdLCJzb3VyY2VSb290IjoiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjIn0=
312
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvUHJvRm9ybS9Qcm9Gb3JtTGlzdC5qcyIsImNvbXBvbmVudHMvc3JjL2NvbXBvbmVudHMvUHJvRm9ybS9Qcm9Gb3JtTGlzdC50c3giXSwibmFtZXMiOlsiX2pzeFJ1bnRpbWUiLCJyZXF1aXJlIiwiX3JlYWN0IiwiX3VzZU1lbW9pemVkRm4iLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiX3VzZVNhZmVTdGF0ZTMiLCJfY2xhc3NuYW1lcyIsIl9CdXR0b24iLCJfVHlwb2dyYXBoeSIsIl9jb250ZXh0IiwiX2Zvcm1TdG9yZSIsIl9jb25zdGFudHMiLCJfdXRpbHMiLCJjbGFzc2VzIiwiY2xhc3NuYW1lcyIsImNvbmNhdCIsIkNTU19QUkVGSVgiLCJsaXN0S2V5Q291bnRlciIsImdlbmVyYXRlS2V5IiwiRU1QVFlfTElTVCIsIkxpc3RSb3dBY3Rpb25zQmFzZSIsIl9yZWYiLCJpbmRleCIsInJlY29yZCIsImNhbkFkZCIsImNhblJlbW92ZSIsImNvcHlJY29uUHJvcHMiLCJkZWxldGVJY29uUHJvcHMiLCJhY3Rpb24iLCJhY3Rpb25SZW5kZXIiLCJpdGVtUmVuZGVyIiwib25Db3B5Iiwib25SZW1vdmUiLCJjb3B5QnRuUHJvcHMiLCJleHRyYWN0QnV0dG9uUHJvcHMiLCJkZWxldGVCdG5Qcm9wcyIsImRlZmF1bHREb20iLCJjb3B5IiwiX2pzeCIsIkJ1dHRvbiIsIk9iamVjdCIsImFzc2lnbiIsInR5cGUiLCJjb2xvciIsInNpemUiLCJyZXN0Iiwib25DbGljayIsImRpc2FibGVkIiwiY2hpbGRyZW4iLCJERUZBVUxUX1RFWFQiLCJyZW5kZXJlZEFjdGlvbnMiLCJmaWx0ZXIiLCJCb29sZWFuIiwicm93Tm9kZSIsImNsYXNzTmFtZSIsIl9GcmFnbWVudCIsImxpc3REb20iLCJkaXNwbGF5TmFtZSIsIkxpc3RSb3dBY3Rpb25zIiwibWVtbyIsIlByb0Zvcm1MaXN0QmFzZSIsInByb3BzIiwiX2EiLCJfYiIsInJhd05hbWUiLCJuYW1lIiwibGFiZWwiLCJtaW4iLCJtYXgiLCJyZXF1aXJlZCIsIl9wcm9wcyRyZXF1aXJlZE1lc3NhZyIsInJlcXVpcmVkTWVzc2FnZSIsImluaXRpYWxWYWx1ZSIsImNyZWF0b3JCdXR0b25Qcm9wcyIsIm9uQWZ0ZXJBZGQiLCJvbkFmdGVyUmVtb3ZlIiwicGFyZW50Q3R4IiwidXNlRm9ybUxpc3RDb250ZXh0IiwiZnVsbE5hbWUiLCJsaXN0TmFtZSIsIl91c2VQcm9Gb3JtU3RhYmxlIiwidXNlUHJvRm9ybVN0YWJsZSIsInNldEZpZWxkVmFsdWUiLCJzdG9yZSIsInVzZVByb0Zvcm1TdG9yZSIsImluaXRpYWxBcHBsaWVkIiwidXNlUmVmIiwia2V5c1JlZiIsIl91c2VTYWZlU3RhdGUiLCJ1c2VTYWZlU3RhdGUiLCJfdXNlU2FmZVN0YXRlMiIsIl9zbGljZWRUb0FycmF5MiIsImxpc3RFcnJvciIsInNldExpc3RFcnJvciIsImxpc3QiLCJ1c2VTdG9yZVNlbGVjdG9yIiwic3RhdGUiLCJyYXciLCJpbmNsdWRlcyIsImdldE5lc3RlZFZhbHVlIiwidmFsdWVzIiwiQXJyYXkiLCJpc0FycmF5IiwiY3VycmVudCIsImxlbmd0aCIsInB1c2giLCJzbGljZSIsInVzZUVmZmVjdCIsIl90b0NvbnN1bWFibGVBcnJheTIiLCJtYXAiLCJ2YWxpZGF0ZUxpc3QiLCJ1c2VNZW1vaXplZEZuIiwiYWRkIiwiZGVmYXVsdFZhbHVlIiwidmFsdWUiLCJuZXdMaXN0IiwibmV3S2V5cyIsImluc2VydEluZGV4Iiwic3BsaWNlIiwicmVtb3ZlQXQiLCJtb3ZlIiwiZnJvbSIsInRvIiwiX25ld0xpc3Qkc3BsaWNlIiwiX25ld0xpc3Qkc3BsaWNlMiIsIm1vdmVkSXRlbSIsIl9uZXdLZXlzJHNwbGljZSIsIl9uZXdLZXlzJHNwbGljZTIiLCJtb3ZlZEtleSIsImdldExpc3QiLCJ1c2VNZW1vIiwicmVtb3ZlIiwiZmllbGRPYmpDYWNoZSIsIk1hcCIsIm1hcHBlZEZpZWxkcyIsIm5leHRDYWNoZSIsImZpZWxkcyIsIl9pdGVtIiwia2V5IiwiZmllbGROYW1lIiwiY2FjaGVkIiwiZ2V0IiwiZmllbGQiLCJzZXQiLCJhY3Rpb25Sb3dzIiwiaGFzQ3JlYXRvciIsImNyZWF0b3JDb25maWciLCJfdHlwZW9mMiIsImNyZWF0b3JQb3NpdGlvbiIsInBvc2l0aW9uIiwiY3JlYXRvclRleHQiLCJ0ZXh0IiwiY3JlYXRvckJ1dHRvbiIsImZvcm1MaXN0Q29udGV4dFZhbHVlIiwiRm9ybUxpc3RDb250ZXh0IiwiUHJvdmlkZXIiLCJfanN4cyIsIlR5cG9ncmFwaHlMYWJlbCIsIlBST0ZPUk1fTElTVF9MQUJFTF9TSVpFIiwiUFJPRk9STV9MSVNUX0xBQkVMX0NPTE9SIiwiVHlwb2dyYXBoeUJvZHkiLCJhcyIsIlByb0Zvcm1MaXN0IiwiZXhwb3J0cyIsIl9kZWZhdWx0Il0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O0FBQUEsSUFBQUEsV0FBQSxHQUFBQyxPQUFBO0FDQUEsSUFBQUMsTUFBQSxHQUFBRCxPQUFBO0FBRUEsSUFBQUUsY0FBQSxHQUFBQyxzQkFBQSxDQUFBSCxPQUFBO0FBQ0EsSUFBQUksY0FBQSxHQUFBRCxzQkFBQSxDQUFBSCxPQUFBO0FBQ0EsSUFBQUssV0FBQSxHQUFBRixzQkFBQSxDQUFBSCxPQUFBO0FBQ0EsSUFBQU0sT0FBQSxHQUFBTixPQUFBO0FBQ0EsSUFBQU8sV0FBQSxHQUFBUCxPQUFBO0FBQ0EsSUFBQVEsUUFBQSxHQUFBUixPQUFBO0FBQ0EsSUFBQVMsVUFBQSxHQUFBVCxPQUFBO0FBQ0EsSUFBQVUsVUFBQSxHQUFBVixPQUFBO0FBQ0EsSUFBQVcsTUFBQSxHQUFBWCxPQUFBO0FBR0EsSUFBTVksT0FBTyxHQUFHLElBQUFDLHNCQUFVLEtBQUFDLE1BQUEsQ0FBSUMscUJBQVUsVUFBTyxDQUFDO0FBRWhELElBQUlDLGNBQWMsR0FBRyxDQUFDO0FBQ3RCLElBQU1DLFdBQVcsR0FBRyxTQUFkQSxXQUFXQSxDQUFBO0VBQUEsZUFBQUgsTUFBQSxDQUF5QixFQUFFRSxjQUFjO0FBQUEsQ0FBRTtBQUU1RDtBQUNBO0FBQ0EsSUFB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QUFBd0csUUFBQSxHQUFBRCxPQUFBLGNBRWxDRCxXQUFXIiwiZmlsZSI6ImNvbXBvbmVudHMvUHJvRm9ybS9Qcm9Gb3JtTGlzdC5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGpzeCBhcyBfanN4LCBGcmFnbWVudCBhcyBfRnJhZ21lbnQsIGpzeHMgYXMgX2pzeHMgfSBmcm9tIFwicmVhY3QvanN4LXJ1bnRpbWVcIjtcbmltcG9ydCB7IG1lbW8sIHVzZUVmZmVjdCwgdXNlTWVtbywgdXNlUmVmIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHVzZU1lbW9pemVkRm4gZnJvbSAnQDFtb25leS9ob29rcy91c2VNZW1vaXplZEZuJztcbmltcG9ydCB1c2VTYWZlU3RhdGUgZnJvbSAnQDFtb25leS9ob29rcy91c2VTYWZlU3RhdGUnO1xuaW1wb3J0IHsgZGVmYXVsdCBhcyBjbGFzc25hbWVzIH0gZnJvbSAnLi4vLi4vdXRpbHMvY2xhc3NuYW1lcyc7XG5pbXBvcnQgeyBCdXR0b24gfSBmcm9tICcuLi9CdXR0b24nO1xuaW1wb3J0IHsgVHlwb2dyYXBoeUxhYmVsLCBUeXBvZ3JhcGh5Qm9keSB9IGZyb20gJy4uL1R5cG9ncmFwaHknO1xuaW1wb3J0IHsgRm9ybUxpc3RDb250ZXh0LCB1c2VGb3JtTGlzdENvbnRleHQsIHVzZVByb0Zvcm1TdGFibGUsIHVzZVByb0Zvcm1TdG9yZSB9IGZyb20gJy4vY29udGV4dCc7XG5pbXBvcnQgeyB1c2VTdG9yZVNlbGVjdG9yIH0gZnJvbSAnLi9jb3JlL2Zvcm1TdG9yZSc7XG5pbXBvcnQgeyBDU1NfUFJFRklYLCBERUZBVUxUX1RFWFQsIFBST0ZPUk1fTElTVF9MQUJFTF9TSVpFLCBQUk9GT1JNX0xJU1RfTEFCRUxfQ09MT1IgfSBmcm9tICcuL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBleHRyYWN0QnV0dG9uUHJvcHMsIGdldE5lc3RlZFZhbHVlIH0gZnJvbSAnLi91dGlscyc7XG5jb25zdCBjbGFzc2VzID0gY2xhc3NuYW1lcyhgJHtDU1NfUFJFRklYfS1saXN0YCk7XG5sZXQgbGlzdEtleUNvdW50ZXIgPSAwO1xuY29uc3QgZ2VuZXJhdGVLZXkgPSAoKSA9PiBgbGlzdF8keysrbGlzdEtleUNvdW50ZXJ9YDtcbi8vIFN0YWJsZSBlbXB0eSByZXN1bHQgZm9yIHRoZSBuby12YWx1ZSBjYXNlIOKAlCBhIGZyZXNoIFtdIHBlciBzZWxlY3RvciBydW5cbi8vIHdvdWxkIG5ldmVyIGNvbXBhcmUgZXF1YWwgYW5kIGxvb3AgdGhlIHN1YnNjcmlwdGlvbi5cbmNvbnN0IEVNUFRZX0xJU1QgPSBbXTtcbi8vIFJvdy1sZXZlbCBtZW1vIGJvdW5kYXJ5OiBzZXROZXN0ZWRWYWx1ZSBjbG9uZXMgT05MWSB0aGUgZWRpdGVkIHJvdywgc29cbi8vIHVudG91Y2hlZCByb3dzIGtlZXAgdGhlaXIgcmVjb3JkIGlkZW50aXR5IGFuZCBiYWlsIG91dCBoZXJlIHdoaWxlIGFcbi8vIHNpYmxpbmcgcm93IGlzIGJlaW5nIGVkaXRlZC5cbmNvbnN0IExpc3RSb3dBY3Rpb25zQmFzZSA9ICh7IGluZGV4LCByZWNvcmQsIGNhbkFkZCwgY2FuUmVtb3ZlLCBjb3B5SWNvblByb3BzLCBkZWxldGVJY29uUHJvcHMsIGFjdGlvbiwgYWN0aW9uUmVuZGVyLCBpdGVtUmVuZGVyLCBvbkNvcHksIG9uUmVtb3ZlLCB9KSA9PiB7XG4gICAgY29uc3QgY29weUJ0blByb3BzID0gZXh0cmFjdEJ1dHRvblByb3BzKGNvcHlJY29uUHJvcHMpO1xuICAgIGNvbnN0IGRlbGV0ZUJ0blByb3BzID0gZXh0cmFjdEJ1dHRvblByb3BzKGRlbGV0ZUljb25Qcm9wcyk7XG4gICAgY29uc3QgZGVmYXVsdERvbSA9IHtcbiAgICAgICAgY29weTogY29weUljb25Qcm9wcyAhPT0gZmFsc2UgPyAoX2pzeChCdXR0b24sIE9iamVjdC5hc3NpZ24oeyB0eXBlOiBcImJ1dHRvblwiLCBjb2xvcjogXCJzZWNvbmRhcnlcIiwgc2l6ZTogXCJzbWFsbFwiIH0sIGNvcHlCdG5Qcm9wcy5yZXN0LCB7IG9uQ2xpY2s6ICgpID0+IG9uQ29weShpbmRleCksIGRpc2FibGVkOiAhY2FuQWRkIHx8IGNvcHlCdG5Qcm9wcy5kaXNhYmxlZCwgY2hpbGRyZW46IERFRkFVTFRfVEVYVC5jb3B5IH0pLCBgY29weS0ke2luZGV4fWApKSA6IG51bGwsXG4gICAgICAgIGRlbGV0ZTogZGVsZXRlSWNvblByb3BzICE9PSBmYWxzZSA/IChfanN4KEJ1dHRvbiwgT2JqZWN0LmFzc2lnbih7IHR5cGU6IFwiYnV0dG9uXCIsIGNvbG9yOiBcInNlY29uZGFyeVwiLCBzaXplOiBcInNtYWxsXCIgfSwgZGVsZXRlQnRuUHJvcHMucmVzdCwgeyBvbkNsaWNrOiAoKSA9PiBvblJlbW92ZShpbmRleCksIGRpc2FibGVkOiAhY2FuUmVtb3ZlIHx8IGRlbGV0ZUJ0blByb3BzLmRpc2FibGVkLCBjaGlsZHJlbjogREVGQVVMVF9URVhULmRlbGV0ZSB9KSwgYGRlbGV0ZS0ke2luZGV4fWApKSA6IG51bGwsXG4gICAgfTtcbiAgICBjb25zdCByZW5kZXJlZEFjdGlvbnMgPSBhY3Rpb25SZW5kZXJcbiAgICAgICAgPyBhY3Rpb25SZW5kZXIoeyBpbmRleCwgcmVjb3JkIH0sIGFjdGlvbiwgZGVmYXVsdERvbSlcbiAgICAgICAgOiBbZGVmYXVsdERvbS5jb3B5LCBkZWZhdWx0RG9tLmRlbGV0ZV0uZmlsdGVyKEJvb2xlYW4pO1xuICAgIGNvbnN0IHJvd05vZGUgPSAoX2pzeChcImRpdlwiLCB7IGNsYXNzTmFtZTogY2xhc3Nlcygncm93LWFjdGlvbnMnKSwgY2hpbGRyZW46IHJlbmRlcmVkQWN0aW9ucyB9KSk7XG4gICAgaWYgKGl0ZW1SZW5kZXIpIHtcbiAgICAgICAgcmV0dXJuIF9qc3goX0ZyYWdtZW50LCB7IGNoaWxkcmVuOiBpdGVtUmVuZGVyKHsgbGlzdERvbTogcm93Tm9kZSwgYWN0aW9uIH0pIH0pO1xuICAgIH1cbiAgICByZXR1cm4gcm93Tm9kZTtcbn07XG5MaXN0Um93QWN0aW9uc0Jhc2UuZGlzcGxheU5hbWUgPSAnUHJvRm9ybUxpc3RSb3dBY3Rpb25zJztcbmNvbnN0IExpc3RSb3dBY3Rpb25zID0gbWVtbyhMaXN0Um93QWN0aW9uc0Jhc2UpO1xuY29uc3QgUHJvRm9ybUxpc3RCYXNlID0gKHByb3BzKSA9PiB7XG4gICAgdmFyIF9hLCBfYjtcbiAgICBjb25zdCB7IG5hbWU6IHJhd05hbWUsIGxhYmVsLCBtaW4sIG1heCwgcmVxdWlyZWQsIHJlcXVpcmVkTWVzc2FnZSA9ICdUaGlzIGxpc3QgY2Fubm90IGJlIGVtcHR5JywgaW5pdGlhbFZhbHVlLCBjb3B5SWNvblByb3BzLCBkZWxldGVJY29uUHJvcHMsIGNyZWF0b3JCdXR0b25Qcm9wcywgaXRlbVJlbmRlciwgYWN0aW9uUmVuZGVyLCBjaGlsZHJlbiwgb25BZnRlckFkZCwgb25BZnRlclJlbW92ZSwgfSA9IHByb3BzO1xuICAgIC8vIOKUgOKUgCBOZXN0ZWQgbGlzdDogcHJlcGVuZCBwYXJlbnQgbGlzdCBuYW1lIOKUgOKUgFxuICAgIGNvbnN0IHBhcmVudEN0eCA9IHVzZUZvcm1MaXN0Q29udGV4dCgpO1xuICAgIGNvbnN0IGZ1bGxOYW1lID0gcGFyZW50Q3R4Lmxpc3ROYW1lID8gYCR7cGFyZW50Q3R4Lmxpc3ROYW1lfS4ke3Jhd05hbWV9YCA6IHJhd05hbWU7XG4gICAgY29uc3QgeyBzZXRGaWVsZFZhbHVlIH0gPSB1c2VQcm9Gb3JtU3RhYmxlKCk7XG4gICAgY29uc3Qgc3RvcmUgPSB1c2VQcm9Gb3JtU3RvcmUoKTtcbiAgICBjb25zdCBpbml0aWFsQXBwbGllZCA9IHVzZVJlZihmYWxzZSk7XG4gICAgY29uc3Qga2V5c1JlZiA9IHVzZVJlZihbXSk7XG4gICAgY29uc3QgW2xpc3RFcnJvciwgc2V0TGlzdEVycm9yXSA9IHVzZVNhZmVTdGF0ZShudWxsKTtcbiAgICAvLyBTdWJzY3JpYmUgT05MWSB0byB0aGlzIGxpc3QncyBvd24gdmFsdWU6IHR5cGluZyBlbHNld2hlcmUgaW4gdGhlIGZvcm1cbiAgICAvLyBsZWF2ZXMgdGhlIGFycmF5IGlkZW50aXR5IHVudG91Y2hlZCBhbmQgdGhpcyBjb21wb25lbnQgZG9lcyBub3QgcmVuZGVyLlxuICAgIGNvbnN0IGxpc3QgPSB1c2VTdG9yZVNlbGVjdG9yKHN0b3JlLCAoc3RhdGUpID0+IHtcbiAgICAgICAgY29uc3QgcmF3ID0gZnVsbE5hbWUuaW5jbHVkZXMoJy4nKVxuICAgICAgICAgICAgPyBnZXROZXN0ZWRWYWx1ZShzdGF0ZS52YWx1ZXMsIGZ1bGxOYW1lKVxuICAgICAgICAgICAgOiBzdGF0ZS52YWx1ZXNbZnVsbE5hbWVdO1xuICAgICAgICByZXR1cm4gQXJyYXkuaXNBcnJheShyYXcpID8gcmF3IDogRU1QVFlfTElTVDtcbiAgICB9KTtcbiAgICAvLyBTeW5jIGtleXMgd2l0aCBsaXN0IGxlbmd0aFxuICAgIHdoaWxlIChrZXlzUmVmLmN1cnJlbnQubGVuZ3RoIDwgbGlzdC5sZW5ndGgpIHtcbiAgICAgICAga2V5c1JlZi5jdXJyZW50LnB1c2goZ2VuZXJhdGVLZXkoKSk7XG4gICAgfVxuICAgIGlmIChrZXlzUmVmLmN1cnJlbnQubGVuZ3RoID4gbGlzdC5sZW5ndGgpIHtcbiAgICAgICAga2V5c1JlZi5jdXJyZW50ID0ga2V5c1JlZi5jdXJyZW50LnNsaWNlKDAsIGxpc3QubGVuZ3RoKTtcbiAgICB9XG4gICAgLy8gQXBwbHkgaW5pdGlhbCB2YWx1ZSBvbmNlXG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgaWYgKGluaXRpYWxBcHBsaWVkLmN1cnJlbnQpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIGlmIChsaXN0Lmxlbmd0aCAhPT0gMClcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgaWYgKCFBcnJheS5pc0FycmF5KGluaXRpYWxWYWx1ZSkgfHwgaW5pdGlhbFZhbHVlLmxlbmd0aCA9PT0gMClcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgaW5pdGlhbEFwcGxpZWQuY3VycmVudCA9IHRydWU7XG4gICAgICAgIHNldEZpZWxkVmFsdWUoZnVsbE5hbWUsIFsuLi5pbml0aWFsVmFsdWVdKTtcbiAgICAgICAga2V5c1JlZi5jdXJyZW50ID0gaW5pdGlhbFZhbHVlLm1hcCgoKSA9PiBnZW5lcmF0ZUtleSgpKTtcbiAgICB9LCBbbGlzdC5sZW5ndGgsIGluaXRpYWxWYWx1ZSwgZnVsbE5hbWUsIHNldEZpZWxkVmFsdWVdKTtcbiAgICAvLyBDbGVhciBlcnJvciB3aGVuIGxpc3QgYmVjb21lcyBub24tZW1wdHlcbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICBpZiAocmVxdWlyZWQgJiYgbGlzdC5sZW5ndGggPiAwICYmIGxpc3RFcnJvcikge1xuICAgICAgICAgICAgc2V0TGlzdEVycm9yKG51bGwpO1xuICAgICAgICB9XG4gICAgfSwgW2xpc3QubGVuZ3RoLCByZXF1aXJlZCwgbGlzdEVycm9yLCBzZXRMaXN0RXJyb3JdKTtcbiAgICBjb25zdCBjYW5BZGQgPSBtYXggPT0gbnVsbCB8fCBsaXN0Lmxlbmd0aCA8IG1heDtcbiAgICBjb25zdCBjYW5SZW1vdmUgPSBtaW4gPT0gbnVsbCB8fCBsaXN0Lmxlbmd0aCA+IG1pbjtcbiAgICBjb25zdCB2YWxpZGF0ZUxpc3QgPSB1c2VNZW1vaXplZEZuKCgpID0+IHtcbiAgICAgICAgaWYgKCFyZXF1aXJlZClcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICBpZiAobGlzdC5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgIHNldExpc3RFcnJvcihyZXF1aXJlZE1lc3NhZ2UpO1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIHNldExpc3RFcnJvcihudWxsKTtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfSk7XG4gICAgY29uc3QgYWRkID0gdXNlTWVtb2l6ZWRGbigoZGVmYXVsdFZhbHVlLCBpbmRleCkgPT4ge1xuICAgICAgICBpZiAoIWNhbkFkZClcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgY29uc3QgdmFsdWUgPSBkZWZhdWx0VmFsdWUgIT09IG51bGwgJiYgZGVmYXVsdFZhbHVlICE9PSB2b2lkIDAgPyBkZWZhdWx0VmFsdWUgOiB7fTtcbiAgICAgICAgY29uc3QgbmV3TGlzdCA9IFsuLi5saXN0XTtcbiAgICAgICAgY29uc3QgbmV3S2V5cyA9IFsuLi5rZXlzUmVmLmN1cnJlbnRdO1xuICAgICAgICBjb25zdCBpbnNlcnRJbmRleCA9IHR5cGVvZiBpbmRleCA9PT0gJ251bWJlcicgPyBpbmRleCA6IG5ld0xpc3QubGVuZ3RoO1xuICAgICAgICBuZXdMaXN0LnNwbGljZShpbnNlcnRJbmRleCwgMCwgdmFsdWUpO1xuICAgICAgICBuZXdLZXlzLnNwbGljZShpbnNlcnRJbmRleCwgMCwgZ2VuZXJhdGVLZXkoKSk7XG4gICAgICAgIGtleXNSZWYuY3VycmVudCA9IG5ld0tleXM7XG4gICAgICAgIHNldEZpZWxkVmFsdWUoZnVsbE5hbWUsIG5ld0xpc3QpO1xuICAgICAgICBvbkFmdGVyQWRkID09PSBudWxsIHx8IG9uQWZ0ZXJBZGQgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9uQWZ0ZXJBZGQodmFsdWUsIGluc2VydEluZGV4KTtcbiAgICB9KTtcbiAgICBjb25zdCByZW1vdmVBdCA9IHVzZU1lbW9pemVkRm4oKGluZGV4KSA9PiB7XG4gICAgICAgIGlmICghY2FuUmVtb3ZlKVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICBjb25zdCBuZXdMaXN0ID0gWy4uLmxpc3RdO1xuICAgICAgICBjb25zdCBuZXdLZXlzID0gWy4uLmtleXNSZWYuY3VycmVudF07XG4gICAgICAgIG5ld0xpc3Quc3BsaWNlKGluZGV4LCAxKTtcbiAgICAgICAgbmV3S2V5cy5zcGxpY2UoaW5kZXgsIDEpO1xuICAgICAgICBrZXlzUmVmLmN1cnJlbnQgPSBuZXdLZXlzO1xuICAgICAgICBzZXRGaWVsZFZhbHVlKGZ1bGxOYW1lLCBuZXdMaXN0KTtcbiAgICAgICAgb25BZnRlclJlbW92ZSA9PT0gbnVsbCB8fCBvbkFmdGVyUmVtb3ZlID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvbkFmdGVyUmVtb3ZlKGluZGV4KTtcbiAgICAgICAgLy8gVmFsaWRhdGUgYWZ0ZXIgcmVtb3ZlXG4gICAgICAgIGlmIChyZXF1aXJlZCAmJiBuZXdMaXN0Lmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgc2V0TGlzdEVycm9yKHJlcXVpcmVkTWVzc2FnZSk7XG4gICAgICAgIH1cbiAgICB9KTtcbiAgICBjb25zdCBjb3B5ID0gdXNlTWVtb2l6ZWRGbigoaW5kZXgpID0+IHtcbiAgICAgICAgaWYgKCFjYW5BZGQpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIGNvbnN0IHZhbHVlID0gbGlzdFtpbmRleF0gPyBPYmplY3QuYXNzaWduKHt9LCBsaXN0W2luZGV4XSkgOiB7fTtcbiAgICAgICAgYWRkKHZhbHVlLCBpbmRleCArIDEpO1xuICAgIH0pO1xuICAgIGNvbnN0IG1vdmUgPSB1c2VNZW1vaXplZEZuKChmcm9tLCB0bykgPT4ge1xuICAgICAgICBpZiAoZnJvbSA9PT0gdG8pXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIGlmIChmcm9tIDwgMCB8fCBmcm9tID49IGxpc3QubGVuZ3RoIHx8IHRvIDwgMCB8fCB0byA+PSBsaXN0Lmxlbmd0aClcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgY29uc3QgbmV3TGlzdCA9IFsuLi5saXN0XTtcbiAgICAgICAgY29uc3QgbmV3S2V5cyA9IFsuLi5rZXlzUmVmLmN1cnJlbnRdO1xuICAgICAgICBjb25zdCBbbW92ZWRJdGVtXSA9IG5ld0xpc3Quc3BsaWNlKGZyb20sIDEpO1xuICAgICAgICBjb25zdCBbbW92ZWRLZXldID0gbmV3S2V5cy5zcGxpY2UoZnJvbSwgMSk7XG4gICAgICAgIG5ld0xpc3Quc3BsaWNlKHRvLCAwLCBtb3ZlZEl0ZW0pO1xuICAgICAgICBuZXdLZXlzLnNwbGljZSh0bywgMCwgbW92ZWRLZXkpO1xuICAgICAgICBrZXlzUmVmLmN1cnJlbnQgPSBuZXdLZXlzO1xuICAgICAgICBzZXRGaWVsZFZhbHVlKGZ1bGxOYW1lLCBuZXdMaXN0KTtcbiAgICB9KTtcbiAgICBjb25zdCBnZXRMaXN0ID0gdXNlTWVtb2l6ZWRGbigoKSA9PiBsaXN0KTtcbiAgICBjb25zdCBhY3Rpb24gPSB1c2VNZW1vKCgpID0+ICh7IGFkZCwgcmVtb3ZlOiByZW1vdmVBdCwgbW92ZSwgY29weSwgZ2V0TGlzdCB9KSwgW2FkZCwgcmVtb3ZlQXQsIG1vdmUsIGNvcHksIGdldExpc3RdKTtcbiAgICAvLyBQZXIta2V5IGNhY2hlIGtlZXBzIGVhY2ggcm93J3MgZmllbGQgb2JqZWN0IGlkZW50aXR5IHN0YWJsZSBhY3Jvc3MgbGlzdFxuICAgIC8vIGNvbW1pdHMgKGUuZy4gdHlwaW5nIGluIGEgc2libGluZyByb3cpLCBzbyBtZW1vaXplZCByb3cgY29udGVudCBzZWVzXG4gICAgLy8gc2hhbGxvdy1lcXVhbCBwcm9wcyBhbmQgYmFpbHMgb3V0LlxuICAgIGNvbnN0IGZpZWxkT2JqQ2FjaGUgPSB1c2VSZWYobmV3IE1hcCgpKTtcbiAgICBjb25zdCBtYXBwZWRGaWVsZHMgPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgICAgY29uc3QgbmV4dENhY2hlID0gbmV3IE1hcCgpO1xuICAgICAgICBjb25zdCBmaWVsZHMgPSBsaXN0Lm1hcCgoX2l0ZW0sIGluZGV4KSA9PiB7XG4gICAgICAgICAgICBjb25zdCBrZXkgPSBrZXlzUmVmLmN1cnJlbnRbaW5kZXhdIHx8IGBmYWxsYmFja18ke2luZGV4fWA7XG4gICAgICAgICAgICBjb25zdCBmaWVsZE5hbWUgPSBgJHtmdWxsTmFtZX0uJHtpbmRleH1gO1xuICAgICAgICAgICAgY29uc3QgY2FjaGVkID0gZmllbGRPYmpDYWNoZS5jdXJyZW50LmdldChrZXkpO1xuICAgICAgICAgICAgY29uc3QgZmllbGQgPSBjYWNoZWQgJiYgY2FjaGVkLm5hbWUgPT09IGZpZWxkTmFtZSA/IGNhY2hlZCA6IHsgbmFtZTogZmllbGROYW1lLCBrZXkgfTtcbiAgICAgICAgICAgIG5leHRDYWNoZS5zZXQoa2V5LCBmaWVsZCk7XG4gICAgICAgICAgICByZXR1cm4gZmllbGQ7XG4gICAgICAgIH0pO1xuICAgICAgICBmaWVsZE9iakNhY2hlLmN1cnJlbnQgPSBuZXh0Q2FjaGU7XG4gICAgICAgIHJldHVybiBmaWVsZHM7XG4gICAgfSwgW2xpc3QsIGZ1bGxOYW1lXSk7XG4gICAgLy8gTWVtb2l6ZWQgc28gdGhlIHJvdyBmYWN0b3J5IGlzIHJlLWludm9rZWQgb25seSB3aGVuIHRoZSBsaXN0IGl0c2VsZiAob3JcbiAgICAvLyB0aGUgY29uc3VtZXItcHJvdmlkZWQgY2hpbGRyZW4pIGNoYW5nZXMg4oCUIG5ldmVyIGZvciB1bnJlbGF0ZWQgY29tbWl0cy5cbiAgICBjb25zdCBsaXN0RG9tID0gdXNlTWVtbygoKSA9PiAodHlwZW9mIGNoaWxkcmVuID09PSAnZnVuY3Rpb24nID8gY2hpbGRyZW4obWFwcGVkRmllbGRzLCBhY3Rpb24pIDogY2hpbGRyZW4pLCBbY2hpbGRyZW4sIG1hcHBlZEZpZWxkcywgYWN0aW9uXSk7XG4gICAgLy8gQWN0aW9uIGJ1dHRvbnMgcGVyIHJvdyDigJQgTGlzdFJvd0FjdGlvbnMgaXMgdGhlIG1lbW8gYm91bmRhcnlcbiAgICBjb25zdCBhY3Rpb25Sb3dzID0gbGlzdC5tYXAoKHJlY29yZCwgaW5kZXgpID0+IChfanN4KExpc3RSb3dBY3Rpb25zLCB7IGluZGV4OiBpbmRleCwgcmVjb3JkOiByZWNvcmQsIGNhbkFkZDogY2FuQWRkLCBjYW5SZW1vdmU6IGNhblJlbW92ZSwgY29weUljb25Qcm9wczogY29weUljb25Qcm9wcywgZGVsZXRlSWNvblByb3BzOiBkZWxldGVJY29uUHJvcHMsIGFjdGlvbjogYWN0aW9uLCBhY3Rpb25SZW5kZXI6IGFjdGlvblJlbmRlciwgaXRlbVJlbmRlcjogaXRlbVJlbmRlciwgb25Db3B5OiBjb3B5LCBvblJlbW92ZTogcmVtb3ZlQXQgfSwga2V5c1JlZi5jdXJyZW50W2luZGV4XSB8fCBpbmRleCkpKTtcbiAgICAvLyBDcmVhdG9yIGJ1dHRvblxuICAgIGNvbnN0IGhhc0NyZWF0b3IgPSBjcmVhdG9yQnV0dG9uUHJvcHMgIT09IGZhbHNlO1xuICAgIGNvbnN0IGNyZWF0b3JDb25maWcgPSBoYXNDcmVhdG9yICYmIHR5cGVvZiBjcmVhdG9yQnV0dG9uUHJvcHMgPT09ICdvYmplY3QnID8gY3JlYXRvckJ1dHRvblByb3BzIDoge307XG4gICAgY29uc3QgY3JlYXRvclBvc2l0aW9uID0gKF9hID0gY3JlYXRvckNvbmZpZyA9PT0gbnVsbCB8fCBjcmVhdG9yQ29uZmlnID09PSB2b2lkIDAgPyB2b2lkIDAgOiBjcmVhdG9yQ29uZmlnLnBvc2l0aW9uKSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiAnYm90dG9tJztcbiAgICBjb25zdCBjcmVhdG9yVGV4dCA9IChfYiA9IGNyZWF0b3JDb25maWcgPT09IG51bGwgfHwgY3JlYXRvckNvbmZpZyA9PT0gdm9pZCAwID8gdm9pZCAwIDogY3JlYXRvckNvbmZpZy50ZXh0KSAhPT0gbnVsbCAmJiBfYiAhPT0gdm9pZCAwID8gX2IgOiBERUZBVUxUX1RFWFQuYWRkO1xuICAgIGNvbnN0IGNyZWF0b3JCdXR0b24gPSBoYXNDcmVhdG9yID8gKF9qc3goQnV0dG9uLCB7IHR5cGU6IFwiYnV0dG9uXCIsIGNvbG9yOiBcInNlY29uZGFyeVwiLCBvbkNsaWNrOiAoKSA9PiB7XG4gICAgICAgICAgICBpZiAoY3JlYXRvclBvc2l0aW9uID09PSAndG9wJykge1xuICAgICAgICAgICAgICAgIGFkZCh7fSwgMCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICBhZGQoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSwgZGlzYWJsZWQ6ICFjYW5BZGQsIGNoaWxkcmVuOiBjcmVhdG9yVGV4dCB9KSkgOiBudWxsO1xuICAgIGNvbnN0IGZvcm1MaXN0Q29udGV4dFZhbHVlID0gdXNlTWVtbygoKSA9PiAoeyBsaXN0TmFtZTogZnVsbE5hbWUgfSksIFtmdWxsTmFtZV0pO1xuICAgIHJldHVybiAoX2pzeChGb3JtTGlzdENvbnRleHQuUHJvdmlkZXIsIHsgdmFsdWU6IGZvcm1MaXN0Q29udGV4dFZhbHVlLCBjaGlsZHJlbjogX2pzeHMoXCJkaXZcIiwgeyBjbGFzc05hbWU6IGNsYXNzZXMoKSwgY2hpbGRyZW46IFtsYWJlbCAmJiBfanN4KFR5cG9ncmFwaHlMYWJlbCwgeyBjbGFzc05hbWU6IGNsYXNzZXMoJ2xhYmVsJyksIHNpemU6IFBST0ZPUk1fTElTVF9MQUJFTF9TSVpFLCBjb2xvcjogUFJPRk9STV9MSVNUX0xBQkVMX0NPTE9SLCBjaGlsZHJlbjogbGFiZWwgfSksIGNyZWF0b3JQb3NpdGlvbiA9PT0gJ3RvcCcgJiYgY3JlYXRvckJ1dHRvbiwgX2pzeChcImRpdlwiLCB7IGNsYXNzTmFtZTogY2xhc3NlcygnY29udGVudCcpLCBjaGlsZHJlbjogbGlzdERvbSB9KSwgX2pzeChcImRpdlwiLCB7IGNsYXNzTmFtZTogY2xhc3NlcygnYWN0aW9ucycpLCBjaGlsZHJlbjogYWN0aW9uUm93cyB9KSwgY3JlYXRvclBvc2l0aW9uID09PSAnYm90dG9tJyAmJiBjcmVhdG9yQnV0dG9uLCBsaXN0RXJyb3IgJiYgX2pzeChUeXBvZ3JhcGh5Qm9keSwgeyBhczogXCJkaXZcIiwgc2l6ZTogXCJzbVwiLCBjb2xvcjogXCJkYW5nZXJcIiwgY2hpbGRyZW46IGxpc3RFcnJvciB9KV0gfSkgfSkpO1xufTtcblByb0Zvcm1MaXN0QmFzZS5kaXNwbGF5TmFtZSA9ICdQcm9Gb3JtTGlzdCc7XG5leHBvcnQgY29uc3QgUHJvRm9ybUxpc3QgPSBtZW1vKFByb0Zvcm1MaXN0QmFzZSk7XG5leHBvcnQgZGVmYXVsdCBQcm9Gb3JtTGlzdDsiLG51bGxdLCJzb3VyY2VSb290IjoiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjIn0=
@@ -69,9 +69,20 @@ var SubmitterBase = function SubmitterBase(props) {
69
69
  }, _callee);
70
70
  }));
71
71
  });
72
+ // Reset the values FIRST, then fire the callback chain,
73
+ // so onReset observes the already-reset state. resetFields() itself is a
74
+ // pure state API and fires no callbacks.
72
75
  var handleReset = (0, _useMemoizedFn["default"])(function () {
73
- onReset === null || onReset === void 0 ? void 0 : onReset();
74
76
  form.resetFields();
77
+ onReset === null || onReset === void 0 ? void 0 : onReset();
78
+ });
79
+ // Button onClick chains the consumer's resetButtonProps.onClick (mirroring
80
+ // handleSubmitClick). Overlay close does NOT depend on this — it rides the
81
+ // form-level onReset channel in DialogForm/DrawerForm.
82
+ var handleResetClick = (0, _useMemoizedFn["default"])(function (e) {
83
+ var _a;
84
+ handleReset();
85
+ (_a = resetButtonProps === null || resetButtonProps === void 0 ? void 0 : resetButtonProps.onClick) === null || _a === void 0 ? void 0 : _a.call(resetButtonProps, e);
75
86
  });
76
87
  // The default submit button keeps type="submit" so the actual submission
77
88
  // flows through the <form> onSubmit handler exactly once — this click
@@ -87,10 +98,10 @@ var SubmitterBase = function SubmitterBase(props) {
87
98
  type: "button",
88
99
  color: "secondary"
89
100
  }, resetButtonProps, {
90
- onClick: handleReset,
101
+ onClick: handleResetClick,
91
102
  children: resetText
92
103
  }), "reset");
93
- }, [resetText, resetButtonProps, handleReset]);
104
+ }, [resetText, resetButtonProps, handleResetClick]);
94
105
  var submitButton = (0, _react.useMemo)(function () {
95
106
  return (0, _jsxRuntime.jsx)(_Button.Button, Object.assign({
96
107
  type: "submit",
@@ -120,4 +131,4 @@ var SubmitterBase = function SubmitterBase(props) {
120
131
  SubmitterBase.displayName = 'Submitter';
121
132
  var Submitter = exports.Submitter = /*#__PURE__*/(0, _react.memo)(SubmitterBase);
122
133
  var _default = exports["default"] = Submitter;
123
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvUHJvRm9ybS9TdWJtaXR0ZXIuanMiLCJjb21wb25lbnRzL3NyYy9jb21wb25lbnRzL1Byb0Zvcm0vU3VibWl0dGVyLnRzeCJdLCJuYW1lcyI6WyJfanN4UnVudGltZSIsInJlcXVpcmUiLCJfcmVhY3QiLCJfdXNlTWVtb2l6ZWRGbiIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfY2xhc3NuYW1lcyIsIl9jb250ZXh0MiIsIl9CdXR0b24iLCJfY29uc3RhbnRzIiwiX19hd2FpdGVyIiwidGhpc0FyZyIsIl9hcmd1bWVudHMiLCJQIiwiZ2VuZXJhdG9yIiwiYWRvcHQiLCJ2YWx1ZSIsInJlc29sdmUiLCJQcm9taXNlIiwicmVqZWN0IiwiZnVsZmlsbGVkIiwic3RlcCIsIm5leHQiLCJlIiwicmVqZWN0ZWQiLCJyZXN1bHQiLCJkb25lIiwidGhlbiIsImFwcGx5IiwiY2xhc3NlcyIsImNsYXNzbmFtZXMiLCJjb25jYXQiLCJDU1NfUFJFRklYIiwiU3VibWl0dGVyQmFzZSIsInByb3BzIiwiX3Byb3BzJHN1Ym1pdFRleHQiLCJzdWJtaXRUZXh0IiwiREVGQVVMVF9URVhUIiwic3VibWl0IiwiX3Byb3BzJHJlc2V0VGV4dCIsInJlc2V0VGV4dCIsInJlc2V0IiwicmVuZGVyIiwib25TdWJtaXQiLCJvblJlc2V0Iiwic3VibWl0QnV0dG9uUHJvcHMiLCJyZXNldEJ1dHRvblByb3BzIiwiX3Byb3BzJGxvYWRpbmciLCJsb2FkaW5nIiwiZm9ybSIsInVzZUZvcm1JbnN0YW5jZSIsImhhbmRsZVN1Ym1pdCIsInVzZU1lbW9pemVkRm4iLCJfcmVnZW5lcmF0b3IiLCJtYXJrIiwiX2NhbGxlZSIsIndyYXAiLCJfY29udGV4dCIsInByZXYiLCJzdWJtaXRGb3JtIiwic3RvcCIsImhhbmRsZVJlc2V0IiwicmVzZXRGaWVsZHMiLCJoYW5kbGVTdWJtaXRDbGljayIsIl9hIiwib25DbGljayIsImNhbGwiLCJyZXNldEJ1dHRvbiIsInVzZU1lbW8iLCJfanN4IiwiQnV0dG9uIiwiT2JqZWN0IiwiYXNzaWduIiwidHlwZSIsImNvbG9yIiwiY2hpbGRyZW4iLCJzdWJtaXRCdXR0b24iLCJkb20iLCJjbGFzc05hbWUiLCJfanN4cyIsImRpc3BsYXlOYW1lIiwiU3VibWl0dGVyIiwiZXhwb3J0cyIsIm1lbW8iLCJfZGVmYXVsdCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFTQSxJQUFBQSxXQUFBLEdBQUFDLE9BQUE7QUNUQSxJQUFBQyxNQUFBLEdBQUFELE9BQUE7QUFFQSxJQUFBRSxjQUFBLEdBQUFDLHNCQUFBLENBQUFILE9BQUE7QUFDQSxJQUFBSSxXQUFBLEdBQUFELHNCQUFBLENBQUFILE9BQUE7QUFDQSxJQUFBSyxTQUFBLEdBQUFMLE9BQUE7QUFDQSxJQUFBTSxPQUFBLEdBQUFOLE9BQUE7QUFDQSxJQUFBTyxVQUFBLEdBQUFQLE9BQUE7QUROQSxJQUFJUSxTQUFTLEdBQUksVUFBUSxTQUFLQSxTQUFTLElBQUssVUFBVUMsT0FBTyxFQUFFQyxVQUFVLEVBQUVDLENBQUMsRUFBRUMsU0FBUyxFQUFFO0VBQ3JGLFNBQVNDLEtBQUtBLENBQUNDLEtBQUssRUFBRTtJQUFFLE9BQU9BLEtBQUssWUFBWUgsQ0FBQyxHQUFHRyxLQUFLLEdBQUcsSUFBSUgsQ0FBQyxDQUFDLFVBQVVJLE9BQU8sRUFBRTtNQUFFQSxPQUFPLENBQUNELEtBQUssQ0FBQztJQUFFLENBQUMsQ0FBQztFQUFFO0VBQzNHLE9BQU8sS0FBS0gsQ0FBQyxLQUFLQSxDQUFDLEdBQUdLLE9BQU8sQ0FBQyxFQUFFLFVBQVVELE9BQU8sRUFBRUUsTUFBTSxFQUFFO0lBQ3ZELFNBQVNDLFNBQVNBLENBQUNKLEtBQUssRUFBRTtNQUFFLElBQUk7UUFBRUssSUFBSSxDQUFDUCxTQUFTLENBQUNRLElBQUksQ0FBQ04sS0FBSyxDQUFDLENBQUM7TUFBRSxDQUFDLENBQUMsT0FBT08sQ0FBQyxFQUFFO1FBQUVKLE1BQU0sQ0FBQ0ksQ0FBQyxDQUFDO01BQUU7SUFBRTtJQUMxRixTQUFTQyxRQUFRQSxD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QUFVLEVBQUVTLGlCQUFpQixFQUFFRyxPQUFPLEVBQUVlLGlCQUFpQixDQUFDLENBQzVEO0VBRUQsSUFBTWMsR0FBRyxHQUFtQixDQUFDVixXQUFXLEVBQUVTLFlBQVksQ0FBbUI7RUFFekUsSUFBSWxDLE1BQU0sRUFBRTtJQUNWLE9BQ0UsSUFBQTJCLGVBQUEsRUFBQSxLQUFBLEVBQUE7TUFBS1MsU0FBUyxFQUFFakQsT0FBTyxDQUFBLENBQUU7TUFBQThDLFFBQUEsRUFDdEJqQyxNQUFNLENBQUM7UUFBRU8sSUFBSSxFQUFKQSxJQUFJO1FBQUVYLE1BQU0sRUFBRWEsWUFBWTtRQUFFVixLQUFLLEVBQUVvQjtNQUFXLENBQUUsRUFBRWdCLEdBQUc7SUFBQyxDQUFBLENBQzVEO0VBRVY7RUFFQSxPQUNFLElBQUFFLGdCQUFBLEVBQUEsS0FBQSxFQUFBO0lBQUtELFNBQVMsRUFBRWpELE9BQU8sQ0FBQSxDQUFFO0lBQUE4QyxRQUFBLEVBQUEsQ0FDdEJSLFdBQVcsRUFDWFMsWUFBWTtFQUFBLENBQUEsQ0FDVDtBQUVWLENBQUM7QUFFRDNDLGFBQWEsQ0FBQytDLFdBQVcsR0FBRyxXQUFXO0FBRWhDLElBQU1DLFNBQVMsR0FBQUMsT0FBQSxDQUFBRCxTQUFBLGdCQUFHLElBQUFFLFdBQUksRUFBQ2xELGFBQWEsQ0FBQztBQUFDLElBQUFtRCxRQUFBLEdBQUFGLE9BQUEsY0FFOUJELFNBQVMiLCJmaWxlIjoiY29tcG9uZW50cy9Qcm9Gb3JtL1N1Ym1pdHRlci5qcyIsInNvdXJjZXNDb250ZW50IjpbInZhciBfX2F3YWl0ZXIgPSAodGhpcyAmJiB0aGlzLl9fYXdhaXRlcikgfHwgZnVuY3Rpb24gKHRoaXNBcmcsIF9hcmd1bWVudHMsIFAsIGdlbmVyYXRvcikge1xuICAgIGZ1bmN0aW9uIGFkb3B0KHZhbHVlKSB7IHJldHVybiB2YWx1ZSBpbnN0YW5jZW9mIFAgPyB2YWx1ZSA6IG5ldyBQKGZ1bmN0aW9uIChyZXNvbHZlKSB7IHJlc29sdmUodmFsdWUpOyB9KTsgfVxuICAgIHJldHVybiBuZXcgKFAgfHwgKFAgPSBQcm9taXNlKSkoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkge1xuICAgICAgICBmdW5jdGlvbiBmdWxmaWxsZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3IubmV4dCh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XG4gICAgICAgIGZ1bmN0aW9uIHJlamVjdGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yW1widGhyb3dcIl0odmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxuICAgICAgICBmdW5jdGlvbiBzdGVwKHJlc3VsdCkgeyByZXN1bHQuZG9uZSA/IHJlc29sdmUocmVzdWx0LnZhbHVlKSA6IGFkb3B0KHJlc3VsdC52YWx1ZSkudGhlbihmdWxmaWxsZWQsIHJlamVjdGVkKTsgfVxuICAgICAgICBzdGVwKChnZW5lcmF0b3IgPSBnZW5lcmF0b3IuYXBwbHkodGhpc0FyZywgX2FyZ3VtZW50cyB8fCBbXSkpLm5leHQoKSk7XG4gICAgfSk7XG59O1xuaW1wb3J0IHsganN4IGFzIF9qc3gsIGpzeHMgYXMgX2pzeHMgfSBmcm9tIFwicmVhY3QvanN4LXJ1bnRpbWVcIjtcbmltcG9ydCB7IG1lbW8sIHVzZU1lbW8gfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgdXNlTWVtb2l6ZWRGbiBmcm9tICdAMW1vbmV5L2hvb2tzL3VzZU1lbW9pemVkRm4nO1xuaW1wb3J0IHsgZGVmYXVsdCBhcyBjbGFzc25hbWVzIH0gZnJvbSAnLi4vLi4vdXRpbHMvY2xhc3NuYW1lcyc7XG5pbXBvcnQgeyB1c2VGb3JtSW5zdGFuY2UgfSBmcm9tICcuL2NvbnRleHQnO1xuaW1wb3J0IHsgQnV0dG9uIH0gZnJvbSAnLi4vQnV0dG9uJztcbmltcG9ydCB7IENTU19QUkVGSVgsIERFRkFVTFRfVEVYVCB9IGZyb20gJy4vY29uc3RhbnRzJztcbmNvbnN0IGNsYXNzZXMgPSBjbGFzc25hbWVzKGAke0NTU19QUkVGSVh9LXN1Ym1pdHRlcmApO1xuY29uc3QgU3VibWl0dGVyQmFzZSA9IChwcm9wcykgPT4ge1xuICAgIGNvbnN0IHsgc3VibWl0VGV4dCA9IERFRkFVTFRfVEVYVC5zdWJtaXQsIHJlc2V0VGV4dCA9IERFRkFVTFRfVEVYVC5yZXNldCwgcmVuZGVyLCBvblN1Ym1pdCwgb25SZXNldCwgc3VibWl0QnV0dG9uUHJvcHMsIHJlc2V0QnV0dG9uUHJvcHMsIGxvYWRpbmcgPSBmYWxzZSwgfSA9IHByb3BzO1xuICAgIGNvbnN0IGZvcm0gPSB1c2VGb3JtSW5zdGFuY2UoKTtcbiAgICBjb25zdCBoYW5kbGVTdWJtaXQgPSB1c2VNZW1vaXplZEZuKCgpID0+IF9fYXdhaXRlcih2b2lkIDAsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICBvblN1Ym1pdCA9PT0gbnVsbCB8fCBvblN1Ym1pdCA9PT0gdm9pZCAwID8gdm9pZCAwIDogb25TdWJtaXQoKTtcbiAgICAgICAgeWllbGQgZm9ybS5zdWJtaXRGb3JtKCk7XG4gICAgfSkpO1xuICAgIGNvbnN0IGhhbmRsZVJlc2V0ID0gdXNlTWVtb2l6ZWRGbigoKSA9PiB7XG4gICAgICAgIG9uUmVzZXQgPT09IG51bGwgfHwgb25SZXNldCA9PT0gdm9pZCAwID8gdm9pZCAwIDogb25SZXNldCgpO1xuICAgICAgICBmb3JtLnJlc2V0RmllbGRzKCk7XG4gICAgfSk7XG4gICAgLy8gVGhlIGRlZmF1bHQgc3VibWl0IGJ1dHRvbiBrZWVwcyB0eXBlPVwic3VibWl0XCIgc28gdGhlIGFjdHVhbCBzdWJtaXNzaW9uXG4gICAgLy8gZmxvd3MgdGhyb3VnaCB0aGUgPGZvcm0+IG9uU3VibWl0IGhhbmRsZXIgZXhhY3RseSBvbmNlIOKAlCB0aGlzIGNsaWNrXG4gICAgLy8gaGFuZGxlciBvbmx5IGZpcmVzIHRoZSB1c2VyJ3Mgb25TdWJtaXQgY2FsbGJhY2sgKHBsdXMgYW55IG9uQ2xpY2sgdGhleVxuICAgIC8vIHBhc3NlZCB2aWEgc3VibWl0QnV0dG9uUHJvcHMpLlxuICAgIGNvbnN0IGhhbmRsZVN1Ym1pdENsaWNrID0gdXNlTWVtb2l6ZWRGbigoZSkgPT4ge1xuICAgICAgICB2YXIgX2E7XG4gICAgICAgIG9uU3VibWl0ID09PSBudWxsIHx8IG9uU3VibWl0ID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvblN1Ym1pdCgpO1xuICAgICAgICAoX2EgPSBzdWJtaXRCdXR0b25Qcm9wcyA9PT0gbnVsbCB8fCBzdWJtaXRCdXR0b25Qcm9wcyA9PT0gdm9pZCAwID8gdm9pZCAwIDogc3VibWl0QnV0dG9uUHJvcHMub25DbGljaykgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmNhbGwoc3VibWl0QnV0dG9uUHJvcHMsIGUpO1xuICAgIH0pO1xuICAgIGNvbnN0IHJlc2V0QnV0dG9uID0gdXNlTWVtbygoKSA9PiAoX2pzeChCdXR0b24sIE9iamVjdC5hc3NpZ24oeyB0eXBlOiBcImJ1dHRvblwiLCBjb2xvcjogXCJzZWNvbmRhcnlcIiB9LCByZXNldEJ1dHRvblByb3BzLCB7IG9uQ2xpY2s6IGhhbmRsZVJlc2V0LCBjaGlsZHJlbjogcmVzZXRUZXh0IH0pLCBcInJlc2V0XCIpKSwgW3Jlc2V0VGV4dCwgcmVzZXRCdXR0b25Qcm9wcywgaGFuZGxlUmVzZXRdKTtcbiAgICBjb25zdCBzdWJtaXRCdXR0b24gPSB1c2VNZW1vKCgpID0+IChfanN4KEJ1dHRvbiwgT2JqZWN0LmFzc2lnbih7IHR5cGU6IFwic3VibWl0XCIsIGNvbG9yOiBcInByaW1hcnlcIiwgbG9hZGluZzogbG9hZGluZyB9LCBzdWJtaXRCdXR0b25Qcm9wcywgeyBvbkNsaWNrOiBoYW5kbGVTdWJtaXRDbGljaywgY2hpbGRyZW46IHN1Ym1pdFRleHQgfSksIFwic3VibWl0XCIpKSwgW3N1Ym1pdFRleHQsIHN1Ym1pdEJ1dHRvblByb3BzLCBsb2FkaW5nLCBoYW5kbGVTdWJtaXRDbGlja10pO1xuICAgIGNvbnN0IGRvbSA9IFtyZXNldEJ1dHRvbiwgc3VibWl0QnV0dG9uXTtcbiAgICBpZiAocmVuZGVyKSB7XG4gICAgICAgIHJldHVybiAoX2pzeChcImRpdlwiLCB7IGNsYXNzTmFtZTogY2xhc3NlcygpLCBjaGlsZHJlbjogcmVuZGVyKHsgZm9ybSwgc3VibWl0OiBoYW5kbGVTdWJtaXQsIHJlc2V0OiBoYW5kbGVSZXNldCB9LCBkb20pIH0pKTtcbiAgICB9XG4gICAgcmV0dXJuIChfanN4cyhcImRpdlwiLCB7IGNsYXNzTmFtZTogY2xhc3NlcygpLCBjaGlsZHJlbjogW3Jlc2V0QnV0dG9uLCBzdWJtaXRCdXR0b25dIH0pKTtcbn07XG5TdWJtaXR0ZXJCYXNlLmRpc3BsYXlOYW1lID0gJ1N1Ym1pdHRlcic7XG5leHBvcnQgY29uc3QgU3VibWl0dGVyID0gbWVtbyhTdWJtaXR0ZXJCYXNlKTtcbmV4cG9ydCBkZWZhdWx0IFN1Ym1pdHRlcjsiLG51bGxdLCJzb3VyY2VSb290IjoiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjIn0=
134
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvUHJvRm9ybS9TdWJtaXR0ZXIuanMiLCJjb21wb25lbnRzL3NyYy9jb21wb25lbnRzL1Byb0Zvcm0vU3VibWl0dGVyLnRzeCJdLCJuYW1lcyI6WyJfanN4UnVudGltZSIsInJlcXVpcmUiLCJfcmVhY3QiLCJfdXNlTWVtb2l6ZWRGbiIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfY2xhc3NuYW1lcyIsIl9jb250ZXh0MiIsIl9CdXR0b24iLCJfY29uc3RhbnRzIiwiX19hd2FpdGVyIiwidGhpc0FyZyIsIl9hcmd1bWVudHMiLCJQIiwiZ2VuZXJhdG9yIiwiYWRvcHQiLCJ2YWx1ZSIsInJlc29sdmUiLCJQcm9taXNlIiwicmVqZWN0IiwiZnVsZmlsbGVkIiwic3RlcCIsIm5leHQiLCJlIiwicmVqZWN0ZWQiLCJyZXN1bHQiLCJkb25lIiwidGhlbiIsImFwcGx5IiwiY2xhc3NlcyIsImNsYXNzbmFtZXMiLCJjb25jYXQiLCJDU1NfUFJFRklYIiwiU3VibWl0dGVyQmFzZSIsInByb3BzIiwiX3Byb3BzJHN1Ym1pdFRleHQiLCJzdWJtaXRUZXh0IiwiREVGQVVMVF9URVhUIiwic3VibWl0IiwiX3Byb3BzJHJlc2V0VGV4dCIsInJlc2V0VGV4dCIsInJlc2V0IiwicmVuZGVyIiwib25TdWJtaXQiLCJvblJlc2V0Iiwic3VibWl0QnV0dG9uUHJvcHMiLCJyZXNldEJ1dHRvblByb3BzIiwiX3Byb3BzJGxvYWRpbmciLCJsb2FkaW5nIiwiZm9ybSIsInVzZUZvcm1JbnN0YW5jZSIsImhhbmRsZVN1Ym1pdCIsInVzZU1lbW9pemVkRm4iLCJfcmVnZW5lcmF0b3IiLCJtYXJrIiwiX2NhbGxlZSIsIndyYXAiLCJfY29udGV4dCIsInByZXYiLCJzdWJtaXRGb3JtIiwic3RvcCIsImhhbmRsZVJlc2V0IiwicmVzZXRGaWVsZHMiLCJoYW5kbGVSZXNldENsaWNrIiwiX2EiLCJvbkNsaWNrIiwiY2FsbCIsImhhbmRsZVN1Ym1pdENsaWNrIiwicmVzZXRCdXR0b24iLCJ1c2VNZW1vIiwiX2pzeCIsIkJ1dHRvbiIsIk9iamVjdCIsImFzc2lnbiIsInR5cGUiLCJjb2xvciIsImNoaWxkcmVuIiwic3VibWl0QnV0dG9uIiwiZG9tIiwiY2xhc3NOYW1lIiwiX2pzeHMiLCJkaXNwbGF5TmFtZSIsIlN1Ym1pdHRlciIsImV4cG9ydHMiLCJtZW1vIiwiX2RlZmF1bHQiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBU0EsSUFBQUEsV0FBQSxHQUFBQyxPQUFBO0FDVEEsSUFBQUMsTUFBQSxHQUFBRCxPQUFBO0FBRUEsSUFBQUUsY0FBQSxHQUFBQyxzQkFBQSxDQUFBSCxPQUFBO0FBQ0EsSUFBQUksV0FBQSxHQUFBRCxzQkFBQSxDQUFBSCxPQUFBO0FBQ0EsSUFBQUssU0FBQSxHQUFBTCxPQUFBO0FBQ0EsSUFBQU0sT0FBQSxHQUFBTixPQUFBO0FBQ0EsSUFBQU8sVUFBQSxHQUFBUCxPQUFBO0FETkEsSUFBSVEsU0FBUyxHQUFJLFVBQVEsU0FBS0EsU0FBUyxJQUFLLFVBQVVDLE9BQU8sRUFBRUMsVUFBVSxFQUFFQyxDQUFDLEVBQUVDLFNBQVMsRUFBRTtFQUNyRixTQUFTQyxLQUFLQSxDQUFDQyxLQUFLLEVBQUU7SUFBRSxPQUFPQSxLQUFLLFlBQVlILENBQUMsR0FBR0csS0FBSyxHQUFHLElBQUlILENBQUMsQ0FBQyxVQUFVSSxPQUFPLEVBQUU7TUFBRUEsT0FBTyxDQUFDRCxLQUFLLENBQUM7SUFBRSxDQUFDLENBQUM7RUFBRTtFQUMzRyxPQUFPLEtBQUtILENBQUMsS0FBS0EsQ0FBQyxHQUFHSyxPQUFPLENBQUMsRUFBRSxVQUFVRCxPQUFPLEVBQUVFLE1BQU0sRUFBRTtJQUN2RCxTQUFTQyxTQUFTQSxDQUFDSixLQUFLLEVBQUU7TUFBRSxJQUFJO1FBQUVLLElBQUksQ0FBQ1AsU0FBUyxDQUFDUSxJQUFJLENBQUNOLEtBQUssQ0FBQyxDQUFDO01BQUUsQ0FBQyxDQUFDLE9BQU9PLENBQUMsRUFBRTtRQUFFSixNQUFNLENBQUNJLENBQUMsQ0FBQztNQUFFO0lBQUU7SUFDMUYsU0FBU0MsUUFBUUEsQ0FBQ1IsS0FBSyxFQUFFO01BQUUsSUFBSTtRQUFFSyxJQUFJLENBQUNQLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQ0UsS0FBSyxDQUFDLENBQUM7TUFBRSxDQUFDLENBQUMsT0FBT08sQ0FBQyxFQUFFO1FBQUVKLE1BQU0sQ0FBQ0ksQ0FBQyxDQUFDO01BQUU7SUFBRTtJQUM3RixTQUFTRixJQUFJQSxDQUFDSSxNQUFNLEVBQUU7TUFBRUEsTUFBTSxDQUFDQyxJQUFJLEdBQUdULE9BQU8sQ0FBQ1EsTUFBTSxDQUFDVCxLQUFLLENBQUMsR0FBR0QsS0FBSyxDQUFDVSxNQUFNLENBQUNULEtBQUssQ0FBQyxDQUFDVyxJQUFJLENBQUNQLFNBQVMsRUFBRUksUUFBUSxDQUFDO0lBQUU7SUFDN0dILElBQUksQ0FBQyxDQUFDUCxTQUFTLEdBQUdBLFNBQVMsQ0FBQ2MsS0FBSyxDQUFDakIsT0FBTyxFQUFFQyxVQUFVLElBQUksRUFBRSxDQUFDLEVBQUVVLElBQUksQ0FBQyxDQUFDLENBQUM7RUFDekUsQ0FBQyxDQUFDO0FBQ04sQ0FBQztBQ0tELElBQU1PLE9BQU8sR0FBRyxJQUFBQyxzQkFBVSxLQUFBQyxNQUFBLENBQUlDLHFCQUFVLGVBQVksQ0FBQztBQUVyRCxJQUFNQyxhQUFhLEdBQStCLFNBQTVDQSxhQUFhQSxDQUFnQ0MsS0FBSyxFQUFJO0VBQzFELElBQUFDLGlCQUFBLEdBU0lELEtBQUssQ0FSUEUsVUFBVTtJQUFWQSxVQUFVLEdBQUFELGlCQUFBLGNBQUdFLHVCQUFZLENBQUNDLE1BQU0sR0FBQUgsaUJBQUE7SUFBQUksZ0JBQUEsR0FROUJMLEtBQUssQ0FQUE0sU0FBUztJQUFUQSxTQUFTLEdBQUFELGdCQUFBLGNBQUdGLHVCQUFZLENBQUNJLEtBQUssR0FBQUYsZ0JBQUE7SUFDOUJHLE1BQU0sR0FNSlIsS0FBSyxDQU5QUSxNQUFNO0lBQ05DLFFBQVEsR0FLTlQsS0FBSyxDQUxQUyxRQUFRO0lBQ1JDLE9BQU8sR0FJTFYsS0FBSyxDQUpQVSxPQUFPO0lBQ1BDLGlCQUFpQixHQUdmWCxLQUFLLENBSFBXLGlCQUFpQjtJQUNqQkMsZ0JBQWdCLEdBRWRaLEtBQUssQ0FGUFksZ0JBQWdCO0lBQUFDLGNBQUEsR0FFZGIsS0FBSyxDQURQYyxPQUFPO0lBQVBBLE9BQU8sR0FBQUQsY0FBQSxjQUFHLEtBQUssR0FBQUEsY0FBQTtFQUdqQixJQUFNRSxJQUFJLEdBQUcsSUFBQUMseUJBQWUsRUFBQSxDQUFFO0VBRTlCLElBQU1DLFlBQVksR0FBRyxJQUFBQyx5QkFBYSxFQUFDO0lBQUEsT0FBVzFDLFNBQUEsQ0FBQSxLQUFBLENBQUEsRUFBQSxLQUFBLENBQUEsRUFBQSxLQUFBLENBQUEsZUFBQTJDLFlBQUEsWUFBQUMsSUFBQSxDQUFBLFNBQUFDLFFBQUE7TUFBQSxPQUFBRixZQUFBLFlBQUFHLElBQUEsV0FBQUMsUUFBQTtRQUFBLGtCQUFBQSxRQUFBLENBQUFDLElBQUEsR0FBQUQsUUFBQSxDQUFBbkMsSUFBQTtVQUFBO1lBQzVDcUIsUUFBUSxLQUFBLElBQUEsSUFBUkEsUUFBUSxLQUFBLEtBQUEsQ0FBQSxHQUFBLEtBQUEsQ0FBQSxHQUFSQSxRQUFRLENBQUEsQ0FBSTtZQUFDYyxRQUFBLENBQUFuQyxJQUFBO1lBQ2IsT0FBTTJCLElBQUksQ0FBQ1UsVUFBVSxDQUFBLENBQUU7VUFBQTtVQUFBO1lBQUEsT0FBQUYsUUFBQSxDQUFBRyxJQUFBO1FBQUE7TUFBQSxHQUFBTCxPQUFBO0lBQUEsQ0FDeEIsRUFBQTtFQUFBLEVBQUM7RUFFRjtFQUNBO0VBQ0E7RUFDQSxJQUFNTSxXQUFXLEdBQUcsSUFBQVQseUJBQWEsRUFBQyxZQUFLO0lBQ3JDSCxJQUFJLENBQUNhLFdBQVcsQ0FBQSxDQUFFO0lBQ2xCbEIsT0FBTyxLQUFBLElBQUEsSUFBUEEsT0FBTyxLQUFBLEtBQUEsQ0FBQSxHQUFBLEtBQUEsQ0FBQSxHQUFQQSxPQUFPLENBQUEsQ0FBSTtFQUNiLENBQUMsQ0FBQztFQUVGO0VBQ0E7RUFDQTtFQUNBLElBQU1tQixnQkFBZ0IsR0FBRyxJQUFBWCx5QkFBYSxFQUFDLFVBQUM3QixDQUFnQyxFQUFJO0lEVnRFLElBQUl5QyxFQUFFO0lDV1ZILFdBQVcsQ0FBQSxDQUFFO0lBQ2IsQ0FBQUcsRUFBQSxHQUFBbEIsZ0JBQWdCLEtBQUEsSUFBQSxJQUFoQkEsZ0JBQWdCLEtBQUEsS0FBQSxDQUFBLEdBQUEsS0FBQSxDQUFBLEdBQWhCQSxnQkFBZ0IsQ0FBRW1CLE9BQU8sTUFBQSxJQUFBLElBQUFELEVBQUEsS0FBQSxLQUFBLENBQUEsR0FBQSxLQUFBLENBQUEsR0FBQUEsRUFBQSxDQUFBRSxJQUFBLENBQUFwQixnQkFBQSxFQUFHdkIsQ0FBQyxDQUFDO0VBQ2hDLENBQUMsQ0FBQztFQUVGO0VBQ0E7RUFDQTtFQUNBO0VBQ0EsSUFBTTRDLGlCQUFpQixHQUFHLElBQUFmLHlCQUFhLEVBQUMsVUFBQzdCLENBQWdDLEVBQUk7SURWdkUsSUFBSXlDLEVBQUU7SUNXVnJCLFFBQVEsS0FBQSxJQUFBLElBQVJBLFFBQVEsS0FBQSxLQUFBLENBQUEsR0FBQSxLQUFBLENBQUEsR0FBUkEsUUFBUSxDQUFBLENBQUk7SUFDWixDQUFBcUIsRUFBQSxHQUFBbkIsaUJBQWlCLEtBQUEsSUFBQSxJQUFqQkEsaUJBQWlCLEtBQUEsS0FBQSxDQUFBLEdBQUEsS0FBQSxDQUFBLEdBQWpCQSxpQkFBaUIsQ0FBRW9CLE9BQU8sTUFBQSxJQUFBLElBQUFELEVBQUEsS0FBQSxLQUFBLENBQUEsR0FBQSxLQUFBLENBQUEsR0FBQUEsRUFBQSxDQUFBRSxJQUFBLENBQUFyQixpQkFBQSxFQUFHdEIsQ0FBQyxDQUFDO0VBQ2pDLENBQUMsQ0FBQztFQUVGLElBQU02QyxXQUFXLEdBQUcsSUFBQUMsY0FBTyxFQUN6QjtJQUFBLE9BQ0UsSUFBQUMsZUFBQSxFQUFDQyxjQUFNLEVBQUFDLE1BQUEsQ0FBQUMsTUFBQSxDQUFBO01BRUxDLElBQUksRUFBQyxRQUFRO01BQ2JDLEtBQUssRUFBQztJQUFXLENBQUEsRUFDYjdCLGdCQUFnQixFQUFBO01BQ3BCbUIsT0FBTyxFQUFFRixnQkFBZ0I7TUFBQWEsUUFBQSxFQUV4QnBDO0lBQVMsQ0FBQSxDQUFBLEVBTk4sT0FBTyxDQU9KO0VBQUEsQ0FDVixFQUNELENBQUNBLFNBQVMsRUFBRU0sZ0JBQWdCLEVBQUVpQixnQkFBZ0IsQ0FBQyxDQUNoRDtFQUVELElBQU1jLFlBQVksR0FBRyxJQUFBUixjQUFPLEVBQzFCO0lBQUEsT0FDRSxJQUFBQyxlQUFBLEVBQUNDLGNBQU0sRUFBQUMsTUFBQSxDQUFBQyxNQUFBLENBQUE7TUFFTEMsSUFBSSxFQUFDLFFBQVE7TUFDYkMsS0FBSyxFQUFDLFNBQVM7TUFDZjNCLE9BQU8sRUFBRUE7SUFBTyxDQUFBLEVBQ1pILGlCQUFpQixFQUFBO01BQ3JCb0IsT0FBTyxFQUFFRSxpQkFBaUI7TUFBQVMsUUFBQSxFQUV6QnhDO0lBQVUsQ0FBQSxDQUFBLEVBUFAsUUFBUSxDQVFMO0VBQUEsQ0FDVixFQUNELENBQUNBLFVBQVUsRUFBRVMsaUJBQWlCLEVBQUVHLE9BQU8sRUFBRW1CLGlCQUFpQixDQUFDLENBQzVEO0VBRUQsSUFBTVcsR0FBRyxHQUFtQixDQUFDVixXQUFXLEVBQUVTLFlBQVksQ0FBbUI7RUFFekUsSUFBSW5DLE1BQU0sRUFBRTtJQUNWLE9BQ0UsSUFBQTRCLGVBQUEsRUFBQSxLQUFBLEVBQUE7TUFBS1MsU0FBUyxFQUFFbEQsT0FBTyxDQUFBLENBQUU7TUFBQStDLFFBQUEsRUFDdEJsQyxNQUFNLENBQUM7UUFBRU8sSUFBSSxFQUFKQSxJQUFJO1FBQUVYLE1BQU0sRUFBRWEsWUFBWTtRQUFFVixLQUFLLEVBQUVvQjtNQUFXLENBQUUsRUFBRWlCLEdBQUc7SUFBQyxDQUFBLENBQzVEO0VBRVY7RUFFQSxPQUNFLElBQUFFLGdCQUFBLEVBQUEsS0FBQSxFQUFBO0lBQUtELFNBQVMsRUFBRWxELE9BQU8sQ0FBQSxDQUFFO0lBQUErQyxRQUFBLEVBQUEsQ0FDdEJSLFdBQVcsRUFDWFMsWUFBWTtFQUFBLENBQUEsQ0FDVDtBQUVWLENBQUM7QUFFRDVDLGFBQWEsQ0FBQ2dELFdBQVcsR0FBRyxXQUFXO0FBRWhDLElBQU1DLFNBQVMsR0FBQUMsT0FBQSxDQUFBRCxTQUFBLGdCQUFHLElBQUFFLFdBQUksRUFBQ25ELGFBQWEsQ0FBQztBQUFDLElBQUFvRCxRQUFBLEdBQUFGLE9BQUEsY0FFOUJELFNBQVMiLCJmaWxlIjoiY29tcG9uZW50cy9Qcm9Gb3JtL1N1Ym1pdHRlci5qcyIsInNvdXJjZXNDb250ZW50IjpbInZhciBfX2F3YWl0ZXIgPSAodGhpcyAmJiB0aGlzLl9fYXdhaXRlcikgfHwgZnVuY3Rpb24gKHRoaXNBcmcsIF9hcmd1bWVudHMsIFAsIGdlbmVyYXRvcikge1xuICAgIGZ1bmN0aW9uIGFkb3B0KHZhbHVlKSB7IHJldHVybiB2YWx1ZSBpbnN0YW5jZW9mIFAgPyB2YWx1ZSA6IG5ldyBQKGZ1bmN0aW9uIChyZXNvbHZlKSB7IHJlc29sdmUodmFsdWUpOyB9KTsgfVxuICAgIHJldHVybiBuZXcgKFAgfHwgKFAgPSBQcm9taXNlKSkoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkge1xuICAgICAgICBmdW5jdGlvbiBmdWxmaWxsZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3IubmV4dCh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XG4gICAgICAgIGZ1bmN0aW9uIHJlamVjdGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yW1widGhyb3dcIl0odmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxuICAgICAgICBmdW5jdGlvbiBzdGVwKHJlc3VsdCkgeyByZXN1bHQuZG9uZSA/IHJlc29sdmUocmVzdWx0LnZhbHVlKSA6IGFkb3B0KHJlc3VsdC52YWx1ZSkudGhlbihmdWxmaWxsZWQsIHJlamVjdGVkKTsgfVxuICAgICAgICBzdGVwKChnZW5lcmF0b3IgPSBnZW5lcmF0b3IuYXBwbHkodGhpc0FyZywgX2FyZ3VtZW50cyB8fCBbXSkpLm5leHQoKSk7XG4gICAgfSk7XG59O1xuaW1wb3J0IHsganN4IGFzIF9qc3gsIGpzeHMgYXMgX2pzeHMgfSBmcm9tIFwicmVhY3QvanN4LXJ1bnRpbWVcIjtcbmltcG9ydCB7IG1lbW8sIHVzZU1lbW8gfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgdXNlTWVtb2l6ZWRGbiBmcm9tICdAMW1vbmV5L2hvb2tzL3VzZU1lbW9pemVkRm4nO1xuaW1wb3J0IHsgZGVmYXVsdCBhcyBjbGFzc25hbWVzIH0gZnJvbSAnLi4vLi4vdXRpbHMvY2xhc3NuYW1lcyc7XG5pbXBvcnQgeyB1c2VGb3JtSW5zdGFuY2UgfSBmcm9tICcuL2NvbnRleHQnO1xuaW1wb3J0IHsgQnV0dG9uIH0gZnJvbSAnLi4vQnV0dG9uJztcbmltcG9ydCB7IENTU19QUkVGSVgsIERFRkFVTFRfVEVYVCB9IGZyb20gJy4vY29uc3RhbnRzJztcbmNvbnN0IGNsYXNzZXMgPSBjbGFzc25hbWVzKGAke0NTU19QUkVGSVh9LXN1Ym1pdHRlcmApO1xuY29uc3QgU3VibWl0dGVyQmFzZSA9IChwcm9wcykgPT4ge1xuICAgIGNvbnN0IHsgc3VibWl0VGV4dCA9IERFRkFVTFRfVEVYVC5zdWJtaXQsIHJlc2V0VGV4dCA9IERFRkFVTFRfVEVYVC5yZXNldCwgcmVuZGVyLCBvblN1Ym1pdCwgb25SZXNldCwgc3VibWl0QnV0dG9uUHJvcHMsIHJlc2V0QnV0dG9uUHJvcHMsIGxvYWRpbmcgPSBmYWxzZSwgfSA9IHByb3BzO1xuICAgIGNvbnN0IGZvcm0gPSB1c2VGb3JtSW5zdGFuY2UoKTtcbiAgICBjb25zdCBoYW5kbGVTdWJtaXQgPSB1c2VNZW1vaXplZEZuKCgpID0+IF9fYXdhaXRlcih2b2lkIDAsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICBvblN1Ym1pdCA9PT0gbnVsbCB8fCBvblN1Ym1pdCA9PT0gdm9pZCAwID8gdm9pZCAwIDogb25TdWJtaXQoKTtcbiAgICAgICAgeWllbGQgZm9ybS5zdWJtaXRGb3JtKCk7XG4gICAgfSkpO1xuICAgIC8vIFJlc2V0IHRoZSB2YWx1ZXMgRklSU1QsIHRoZW4gZmlyZSB0aGUgY2FsbGJhY2sgY2hhaW4sXG4gICAgLy8gc28gb25SZXNldCBvYnNlcnZlcyB0aGUgYWxyZWFkeS1yZXNldCBzdGF0ZS4gcmVzZXRGaWVsZHMoKSBpdHNlbGYgaXMgYVxuICAgIC8vIHB1cmUgc3RhdGUgQVBJIGFuZCBmaXJlcyBubyBjYWxsYmFja3MuXG4gICAgY29uc3QgaGFuZGxlUmVzZXQgPSB1c2VNZW1vaXplZEZuKCgpID0+IHtcbiAgICAgICAgZm9ybS5yZXNldEZpZWxkcygpO1xuICAgICAgICBvblJlc2V0ID09PSBudWxsIHx8IG9uUmVzZXQgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9uUmVzZXQoKTtcbiAgICB9KTtcbiAgICAvLyBCdXR0b24gb25DbGljayBjaGFpbnMgdGhlIGNvbnN1bWVyJ3MgcmVzZXRCdXR0b25Qcm9wcy5vbkNsaWNrIChtaXJyb3JpbmdcbiAgICAvLyBoYW5kbGVTdWJtaXRDbGljaykuIE92ZXJsYXkgY2xvc2UgZG9lcyBOT1QgZGVwZW5kIG9uIHRoaXMg4oCUIGl0IHJpZGVzIHRoZVxuICAgIC8vIGZvcm0tbGV2ZWwgb25SZXNldCBjaGFubmVsIGluIERpYWxvZ0Zvcm0vRHJhd2VyRm9ybS5cbiAgICBjb25zdCBoYW5kbGVSZXNldENsaWNrID0gdXNlTWVtb2l6ZWRGbigoZSkgPT4ge1xuICAgICAgICB2YXIgX2E7XG4gICAgICAgIGhhbmRsZVJlc2V0KCk7XG4gICAgICAgIChfYSA9IHJlc2V0QnV0dG9uUHJvcHMgPT09IG51bGwgfHwgcmVzZXRCdXR0b25Qcm9wcyA9PT0gdm9pZCAwID8gdm9pZCAwIDogcmVzZXRCdXR0b25Qcm9wcy5vbkNsaWNrKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuY2FsbChyZXNldEJ1dHRvblByb3BzLCBlKTtcbiAgICB9KTtcbiAgICAvLyBUaGUgZGVmYXVsdCBzdWJtaXQgYnV0dG9uIGtlZXBzIHR5cGU9XCJzdWJtaXRcIiBzbyB0aGUgYWN0dWFsIHN1Ym1pc3Npb25cbiAgICAvLyBmbG93cyB0aHJvdWdoIHRoZSA8Zm9ybT4gb25TdWJtaXQgaGFuZGxlciBleGFjdGx5IG9uY2Ug4oCUIHRoaXMgY2xpY2tcbiAgICAvLyBoYW5kbGVyIG9ubHkgZmlyZXMgdGhlIHVzZXIncyBvblN1Ym1pdCBjYWxsYmFjayAocGx1cyBhbnkgb25DbGljayB0aGV5XG4gICAgLy8gcGFzc2VkIHZpYSBzdWJtaXRCdXR0b25Qcm9wcykuXG4gICAgY29uc3QgaGFuZGxlU3VibWl0Q2xpY2sgPSB1c2VNZW1vaXplZEZuKChlKSA9PiB7XG4gICAgICAgIHZhciBfYTtcbiAgICAgICAgb25TdWJtaXQgPT09IG51bGwgfHwgb25TdWJtaXQgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9uU3VibWl0KCk7XG4gICAgICAgIChfYSA9IHN1Ym1pdEJ1dHRvblByb3BzID09PSBudWxsIHx8IHN1Ym1pdEJ1dHRvblByb3BzID09PSB2b2lkIDAgPyB2b2lkIDAgOiBzdWJtaXRCdXR0b25Qcm9wcy5vbkNsaWNrKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuY2FsbChzdWJtaXRCdXR0b25Qcm9wcywgZSk7XG4gICAgfSk7XG4gICAgY29uc3QgcmVzZXRCdXR0b24gPSB1c2VNZW1vKCgpID0+IChfanN4KEJ1dHRvbiwgT2JqZWN0LmFzc2lnbih7IHR5cGU6IFwiYnV0dG9uXCIsIGNvbG9yOiBcInNlY29uZGFyeVwiIH0sIHJlc2V0QnV0dG9uUHJvcHMsIHsgb25DbGljazogaGFuZGxlUmVzZXRDbGljaywgY2hpbGRyZW46IHJlc2V0VGV4dCB9KSwgXCJyZXNldFwiKSksIFtyZXNldFRleHQsIHJlc2V0QnV0dG9uUHJvcHMsIGhhbmRsZVJlc2V0Q2xpY2tdKTtcbiAgICBjb25zdCBzdWJtaXRCdXR0b24gPSB1c2VNZW1vKCgpID0+IChfanN4KEJ1dHRvbiwgT2JqZWN0LmFzc2lnbih7IHR5cGU6IFwic3VibWl0XCIsIGNvbG9yOiBcInByaW1hcnlcIiwgbG9hZGluZzogbG9hZGluZyB9LCBzdWJtaXRCdXR0b25Qcm9wcywgeyBvbkNsaWNrOiBoYW5kbGVTdWJtaXRDbGljaywgY2hpbGRyZW46IHN1Ym1pdFRleHQgfSksIFwic3VibWl0XCIpKSwgW3N1Ym1pdFRleHQsIHN1Ym1pdEJ1dHRvblByb3BzLCBsb2FkaW5nLCBoYW5kbGVTdWJtaXRDbGlja10pO1xuICAgIGNvbnN0IGRvbSA9IFtyZXNldEJ1dHRvbiwgc3VibWl0QnV0dG9uXTtcbiAgICBpZiAocmVuZGVyKSB7XG4gICAgICAgIHJldHVybiAoX2pzeChcImRpdlwiLCB7IGNsYXNzTmFtZTogY2xhc3NlcygpLCBjaGlsZHJlbjogcmVuZGVyKHsgZm9ybSwgc3VibWl0OiBoYW5kbGVTdWJtaXQsIHJlc2V0OiBoYW5kbGVSZXNldCB9LCBkb20pIH0pKTtcbiAgICB9XG4gICAgcmV0dXJuIChfanN4cyhcImRpdlwiLCB7IGNsYXNzTmFtZTogY2xhc3NlcygpLCBjaGlsZHJlbjogW3Jlc2V0QnV0dG9uLCBzdWJtaXRCdXR0b25dIH0pKTtcbn07XG5TdWJtaXR0ZXJCYXNlLmRpc3BsYXlOYW1lID0gJ1N1Ym1pdHRlcic7XG5leHBvcnQgY29uc3QgU3VibWl0dGVyID0gbWVtbyhTdWJtaXR0ZXJCYXNlKTtcbmV4cG9ydCBkZWZhdWx0IFN1Ym1pdHRlcjsiLG51bGxdLCJzb3VyY2VSb290IjoiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjIn0=
@@ -1,8 +1,15 @@
1
+ import type { FormStore } from './core/formStore';
1
2
  import type { ProFormContextValue, ProFormStableContextValue, ProFormStateContextValue, FormListContextValue, ProFormFormInstance } from './interface';
2
3
  export declare const ProFormStableContext: import("react").Context<ProFormStableContextValue | null>;
3
- export declare const ProFormStateContext: import("react").Context<ProFormStateContextValue | null>;
4
+ export declare const ProFormStateContext: import("react").Context<FormStore | null>;
4
5
  /** Read ONLY the stable slice (config + dispatchers) — no per-keystroke re-renders. */
5
6
  export declare const useProFormStable: () => ProFormStableContextValue;
7
+ /**
8
+ * Internal: the raw form store (identity-stable — reading it never causes
9
+ * re-renders by itself). Pair with `useStoreSelector` for fine-grained,
10
+ * per-field subscriptions. Throws when used outside `<ProForm>`.
11
+ */
12
+ export declare const useProFormStore: () => FormStore;
6
13
  /** Read ONLY the volatile slice (values/errors/…) — re-renders on every change. */
7
14
  export declare const useProFormState: () => ProFormStateContextValue;
8
15
  /**
@@ -24,8 +31,9 @@ export interface UseFormWatch {
24
31
  (): Record<string, unknown>;
25
32
  }
26
33
  /**
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.
34
+ * Watch a single field or the whole values object. Re-renders whenever the
35
+ * WATCHED value changes (unrelated fields no longer cause re-renders).
36
+ * Lighter alternative to the `ProForm.Dependency` render-prop.
29
37
  */
30
38
  export declare const useFormWatch: UseFormWatch;
31
39
  export declare const FormListContext: import("react").Context<FormListContextValue>;
@@ -3,15 +3,18 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.useProFormState = exports.useProFormStable = exports.useProFormContext = exports.useFormWatch = exports.useFormListContext = exports.useFormInstance = exports.ProFormStateContext = exports.ProFormStableContext = exports.FormListContext = void 0;
6
+ exports.useProFormStore = exports.useProFormState = exports.useProFormStable = exports.useProFormContext = exports.useFormWatch = exports.useFormListContext = exports.useFormInstance = exports.ProFormStateContext = exports.ProFormStableContext = exports.FormListContext = void 0;
7
7
  var _react = require("react");
8
8
  var _pathUtils = require("./core/pathUtils");
9
+ var _formStore = require("./core/formStore");
9
10
  // ---------------------------------------------------------------------------
10
11
  // The ProForm context is SPLIT in two so that consumers which only need
11
12
  // configuration / dispatchers (Submitter, field factories) do not re-render
12
13
  // on every keystroke:
13
14
  // - StableContext: config + identity-stable dispatchers and form instance.
14
- // - StateContext: volatile values/errors/warnings/touched/validating.
15
+ // - StateContext: holds the IDENTITY-STABLE form store, never a snapshot —
16
+ // per-keystroke updates reach subscribers through store subscriptions
17
+ // (useStoreSelector with per-field selectors), not context propagation.
15
18
  // ---------------------------------------------------------------------------
16
19
  var ProFormStableContext = exports.ProFormStableContext = /*#__PURE__*/(0, _react.createContext)(null);
17
20
  ProFormStableContext.displayName = 'ProFormStableContext';
@@ -26,13 +29,28 @@ var useProFormStable = exports.useProFormStable = function useProFormStable() {
26
29
  }
27
30
  return ctx;
28
31
  };
29
- /** Read ONLY the volatile slice (values/errors/…) — re-renders on every change. */
30
- var useProFormState = exports.useProFormState = function useProFormState() {
31
- var ctx = (0, _react.useContext)(ProFormStateContext);
32
- if (!ctx) {
32
+ /**
33
+ * Internal: the raw form store (identity-stable — reading it never causes
34
+ * re-renders by itself). Pair with `useStoreSelector` for fine-grained,
35
+ * per-field subscriptions. Throws when used outside `<ProForm>`.
36
+ */
37
+ var useProFormStore = exports.useProFormStore = function useProFormStore() {
38
+ var store = (0, _react.useContext)(ProFormStateContext);
39
+ if (!store) {
33
40
  throw new Error(OUTSIDE_FORM_ERROR);
34
41
  }
35
- return ctx;
42
+ return store;
43
+ };
44
+ var selectStateSnapshot = function selectStateSnapshot(state) {
45
+ return state;
46
+ };
47
+ /** Read ONLY the volatile slice (values/errors/…) — re-renders on every change. */
48
+ var useProFormState = exports.useProFormState = function useProFormState() {
49
+ var store = useProFormStore();
50
+ // Subscribe to every commit (the snapshot identity changes per commit) —
51
+ // that broad granularity is this hook's documented contract; fine-grained
52
+ // consumers use useStoreSelector with a narrower selector instead.
53
+ return (0, _formStore.useStoreSelector)(store, selectStateSnapshot);
36
54
  };
37
55
  /**
38
56
  * Read the unified ProForm context (merged form core + ProForm semantics).
@@ -55,13 +73,15 @@ var useFormInstance = exports.useFormInstance = function useFormInstance() {
55
73
  return useProFormStable().formInstance;
56
74
  };
57
75
  /**
58
- * Watch a single field or the whole values object. Re-renders whenever form
59
- * values change. Lighter alternative to the `ProForm.Dependency` render-prop.
76
+ * Watch a single field or the whole values object. Re-renders whenever the
77
+ * WATCHED value changes (unrelated fields no longer cause re-renders).
78
+ * Lighter alternative to the `ProForm.Dependency` render-prop.
60
79
  */
61
80
  var useFormWatch = exports.useFormWatch = function useFormWatch(name) {
62
- var _useProFormState = useProFormState(),
63
- values = _useProFormState.values;
64
- return name === undefined ? values : (0, _pathUtils.resolveValue)(values, name);
81
+ var store = useProFormStore();
82
+ return (0, _formStore.useStoreSelector)(store, function (state) {
83
+ return name === undefined ? state.values : (0, _pathUtils.resolveValue)(state.values, name);
84
+ });
65
85
  };
66
86
  // ---------------------------------------------------------------------------
67
87
  // FormListContext — provides list scope info to ProFormDependency
@@ -71,4 +91,4 @@ FormListContext.displayName = 'FormListContext';
71
91
  var useFormListContext = exports.useFormListContext = function useFormListContext() {
72
92
  return (0, _react.useContext)(FormListContext);
73
93
  };
74
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvc3JjL2NvbXBvbmVudHMvUHJvRm9ybS9jb250ZXh0LnRzIiwiY29tcG9uZW50cy9Qcm9Gb3JtL2NvbnRleHQuanMiXSwibmFtZXMiOlsiX3JlYWN0IiwicmVxdWlyZSIsIl9wYXRoVXRpbHMiLCJQcm9Gb3JtU3RhYmxlQ29udGV4dCIsImV4cG9ydHMiLCJjcmVhdGVDb250ZXh0IiwiZGlzcGxheU5hbWUiLCJQcm9Gb3JtU3RhdGVDb250ZXh0IiwiT1VUU0lERV9GT1JNX0VSUk9SIiwidXNlUHJvRm9ybVN0YWJsZSIsImN0eCIsInVzZUNvbnRleHQiLCJFcnJvciIsInVzZVByb0Zvcm1TdGF0ZSIsInVzZVByb0Zvcm1Db250ZXh0Iiwic3RhYmxlIiwic3RhdGUiLCJ1c2VNZW1vIiwiT2JqZWN0IiwiYXNzaWduIiwidXNlRm9ybUluc3RhbmNlIiwiZm9ybUluc3RhbmNlIiwidXNlRm9ybVdhdGNoIiwibmFtZSIsIl91c2VQcm9Gb3JtU3RhdGUiLCJ2YWx1ZXMiLCJ1bmRlZmluZWQiLCJyZXNvbHZlVmFsdWUiLCJGb3JtTGlzdENvbnRleHQiLCJ1c2VGb3JtTGlzdENvbnRleHQiXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLElBQUFBLE1BQUEsR0FBQUMsT0FBQTtBQUNBLElBQUFDLFVBQUEsR0FBQUQsT0FBQTtBQVNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ08sSUFBTUUsb0JBQW9CLEdBQUFDLE9BQUEsQ0FBQUQsb0JBQUEsZ0JBQUcsSUFBQUUsb0JBQWEsRUFBbUMsSUFBSSxDQUFDO0FBQ3pGRixvQkFBb0IsQ0FBQ0csV0FBVyxHQUFHLHNCQUFzQjtBQUVsRCxJQUFNQyxtQkFBbUIsR0FBQUgsT0FBQSxDQUFBRyxtQkFBQSxnQkFBRyxJQUFBRixvQkFBYSxFQUFrQyxJQUFJLENBQUM7QUFDdkZFLG1CQUFtQixDQUFDRCxXQUFXLEdBQUcscUJBQXFCO0FBRXZELElBQU1FLGtCQUFrQixHQUFHLDZEQUE2RDtBQUV4RjtBQUNPLElBQU1DLGdCQUFnQixHQUFBTCxPQUFBLENBQUFLLGdCQUFBLEdBQUcsU0FBbkJBLGdCQUFnQkEsQ0FBQSxFQUFtQztFQUM5RCxJQUFNQyxHQUFHLEdBQUcsSUFBQUMsaUJBQVUsRUFBQ1Isb0JBQW9CLENBQUM7RUFDNUMsSUFBSSxDQUFDTyxHQUFHLEVBQUU7SUFDUixNQUFNLElBQUlFLEtBQUssQ0FBQ0osa0JBQWtCLENBQUM7RUFDckM7RUFDQSxPQUFPRSxHQUFHO0FBQ1osQ0FBQztBQUVEO0FBQ08sSUFBTUcsZUFBZSxHQUFBVCxPQUFBLENBQUFTLGVBQUEsR0FBRyxTQUFsQkEsZUFBZUEsQ0FBQSxFQUFrQztFQUM1RCxJQUFNSCxHQUFHLEdBQUcsSUFBQUMsaUJBQVUsRUFBQ0osbUJBQW1CLENBQUM7RUFDM0MsSUFBSSxDQUFDRyxHQUFHLEVBQUU7SUFDUixNQUFNLElBQUlFLEtBQUssQ0FBQ0osa0JBQWtCLENBQUM7RUFDckM7RUFDQSxPQUFPRSxHQUFHO0FBQ1osQ0FBQztBQUVEO0FDWkE7QUFDQTtBQUNBO0FBQ0E7QURjTyxJQUFNSSxpQkFBaUIsR0FBQVYsT0FBQSxDQUFBVSxpQkFBQSxHQUFHLFNBQXBCQSxpQkFBaUJBLENBQUEsRUFBNkI7RUFDekQsSUFBTUMsTUFBTSxHQUFHTixnQkFBZ0IsQ0FBQSxDQUFFO0VBQ2pDLElBQU1PLEtBQUssR0FBR0gsZUFBZSxDQUFBLENBQUU7RUFDL0IsT0FBTyxJQUFBSSxjQUFPLEVBQUM7SUFBQSxPQUFNQyxNQUFBLENBQUFDLE1BQUEsQ0FBQUQsTUFBQSxDQUFBQyxNQUFBLENBQUEsQ0FBQSxDQUFBLEVBQU1KLE1BQU0sQ0FBQSxFQUFLQyxLQUFLLENBQUE7RUFBQSxDQUFHLEVBQUUsQ0FBQ0QsTUFBTSxFQUFFQyxLQUFLLENBQUMsQ0FBQztBQUNsRSxDQUFDO0FBRUQ7QUNiQTtBQUNBO0FBQ0E7QUFDQTtBRGVPLElBQU1JLGVBQWUsR0FBQWhCLE9BQUEsQ0FBQWdCLGVBQUEsR0FBRyxTQUFsQkEsZUFBZUEsQ0FBQSxFQUF1RTtFQUNqRyxPQUFPWCxnQkFBZ0IsQ0FBQSxDQUFFLENBQUNZLFlBQTJDO0FBQ3ZFLENBQUM7QUFTRDtBQ3JCQTtBQUNBO0FBQ0E7QUR1Qk8sSUFBTUMsWUFBWSxHQUFBbEIsT0FBQSxDQUFBa0IsWUFBQSxHQUFrQixTQUE5QkEsWUFBWUEsQ0FBbUJDLElBQWEsRUFBSTtFQUMzRCxJQUFBQyxnQkFBQSxHQUFtQlgsZUFBZSxDQUFBLENBQUU7SUFBNUJZLE1BQU0sR0FBQUQsZ0JBQUEsQ0FBTkMsTUFBTTtFQUNkLE9BQU9GLElBQUksS0FBS0csU0FBUyxHQUFHRCxNQUFNLEdBQUcsSUFBQUUsdUJBQVksRUFBQ0YsTUFBTSxFQUFFRixJQUFJLENBQUM7QUFDakUsQ0FBa0I7QUFFbEI7QUFDQTtBQUNBO0FBQ08sSUFBTUssZUFBZSxHQUFBeEIsT0FBQSxDQUFBd0IsZUFBQSxnQkFBRyxJQUFBdkIsb0JBQWEsRUFBdUIsQ0FBQSxDQUFFLENBQUM7QUFFdEV1QixlQUFlLENBQUN0QixXQUFXLEdBQUcsaUJBQWlCO0FBRXhDLElBQU11QixrQkFBa0IsR0FBQXpCLE9BQUEsQ0FBQXlCLGtCQUFBLEdBQUcsU0FBckJBLGtCQUFrQkEsQ0FBQTtFQUFBLE9BQStCLElBQUFsQixpQkFBVSxFQUFDaUIsZUFBZSxDQUFDO0FBQUEiLCJmaWxlIjoiY29tcG9uZW50cy9Qcm9Gb3JtL2NvbnRleHQuanMiLCJzb3VyY2VzQ29udGVudCI6W251bGwsImltcG9ydCB7IGNyZWF0ZUNvbnRleHQsIHVzZUNvbnRleHQsIHVzZU1lbW8gfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyByZXNvbHZlVmFsdWUgfSBmcm9tICcuL2NvcmUvcGF0aFV0aWxzJztcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gVGhlIFByb0Zvcm0gY29udGV4dCBpcyBTUExJVCBpbiB0d28gc28gdGhhdCBjb25zdW1lcnMgd2hpY2ggb25seSBuZWVkXG4vLyBjb25maWd1cmF0aW9uIC8gZGlzcGF0Y2hlcnMgKFN1Ym1pdHRlciwgZmllbGQgZmFjdG9yaWVzKSBkbyBub3QgcmUtcmVuZGVyXG4vLyBvbiBldmVyeSBrZXlzdHJva2U6XG4vLyAtIFN0YWJsZUNvbnRleHQ6IGNvbmZpZyArIGlkZW50aXR5LXN0YWJsZSBkaXNwYXRjaGVycyBhbmQgZm9ybSBpbnN0YW5jZS5cbi8vIC0gU3RhdGVDb250ZXh0OiB2b2xhdGlsZSB2YWx1ZXMvZXJyb3JzL3dhcm5pbmdzL3RvdWNoZWQvdmFsaWRhdGluZy5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuZXhwb3J0IGNvbnN0IFByb0Zvcm1TdGFibGVDb250ZXh0ID0gY3JlYXRlQ29udGV4dChudWxsKTtcblByb0Zvcm1TdGFibGVDb250ZXh0LmRpc3BsYXlOYW1lID0gJ1Byb0Zvcm1TdGFibGVDb250ZXh0JztcbmV4cG9ydCBjb25zdCBQcm9Gb3JtU3RhdGVDb250ZXh0ID0gY3JlYXRlQ29udGV4dChudWxsKTtcblByb0Zvcm1TdGF0ZUNvbnRleHQuZGlzcGxheU5hbWUgPSAnUHJvRm9ybVN0YXRlQ29udGV4dCc7XG5jb25zdCBPVVRTSURFX0ZPUk1fRVJST1IgPSAndXNlUHJvRm9ybUNvbnRleHQgbXVzdCBiZSB1c2VkIHdpdGhpbiBhIDxQcm9Gb3JtPiBjb21wb25lbnQnO1xuLyoqIFJlYWQgT05MWSB0aGUgc3RhYmxlIHNsaWNlIChjb25maWcgKyBkaXNwYXRjaGVycykg4oCUIG5vIHBlci1rZXlzdHJva2UgcmUtcmVuZGVycy4gKi9cbmV4cG9ydCBjb25zdCB1c2VQcm9Gb3JtU3RhYmxlID0gKCkgPT4ge1xuICAgIGNvbnN0IGN0eCA9IHVzZUNvbnRleHQoUHJvRm9ybVN0YWJsZUNvbnRleHQpO1xuICAgIGlmICghY3R4KSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihPVVRTSURFX0ZPUk1fRVJST1IpO1xuICAgIH1cbiAgICByZXR1cm4gY3R4O1xufTtcbi8qKiBSZWFkIE9OTFkgdGhlIHZvbGF0aWxlIHNsaWNlICh2YWx1ZXMvZXJyb3JzL+KApikg4oCUIHJlLXJlbmRlcnMgb24gZXZlcnkgY2hhbmdlLiAqL1xuZXhwb3J0IGNvbnN0IHVzZVByb0Zvcm1TdGF0ZSA9ICgpID0+IHtcbiAgICBjb25zdCBjdHggPSB1c2VDb250ZXh0KFByb0Zvcm1TdGF0ZUNvbnRleHQpO1xuICAgIGlmICghY3R4KSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihPVVRTSURFX0ZPUk1fRVJST1IpO1xuICAgIH1cbiAgICByZXR1cm4gY3R4O1xufTtcbi8qKlxuICogUmVhZCB0aGUgdW5pZmllZCBQcm9Gb3JtIGNvbnRleHQgKG1lcmdlZCBmb3JtIGNvcmUgKyBQcm9Gb3JtIHNlbWFudGljcykuXG4gKiBTdWJzY3JpYmVzIHRvIEJPVEggc2xpY2VzIOKAlCByZS1yZW5kZXJzIHdoZW5ldmVyIGZvcm0gdmFsdWVzIGNoYW5nZS5cbiAqIFRocm93cyB3aGVuIHVzZWQgb3V0c2lkZSBgPFByb0Zvcm0+YC5cbiAqL1xuZXhwb3J0IGNvbnN0IHVzZVByb0Zvcm1Db250ZXh0ID0gKCkgPT4ge1xuICAgIGNvbnN0IHN0YWJsZSA9IHVzZVByb0Zvcm1TdGFibGUoKTtcbiAgICBjb25zdCBzdGF0ZSA9IHVzZVByb0Zvcm1TdGF0ZSgpO1xuICAgIHJldHVybiB1c2VNZW1vKCgpID0+IChPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIHN0YWJsZSksIHN0YXRlKSksIFtzdGFibGUsIHN0YXRlXSk7XG59O1xuLyoqXG4gKiBSZWFkIHRoZSBQcm9Gb3JtIGZvcm0gaW5zdGFuY2UgKHN1cGVyc2V0IG9mIEZvcm1Db3JlSW5zdGFuY2Ugd2l0aCBmb3JtYXQgaGVscGVycykuXG4gKiBTdWJzY3JpYmVzIG9ubHkgdG8gdGhlIHN0YWJsZSBzbGljZSDigJQgZG9lcyBOT1QgcmUtcmVuZGVyIHBlciBrZXlzdHJva2UuXG4gKiBQYXNzIGEgYFZhbHVlc2AgdHlwZSBhcmd1bWVudCB0byBnZXQgYSB0eXBlZCBpbnN0YW5jZS5cbiAqL1xuZXhwb3J0IGNvbnN0IHVzZUZvcm1JbnN0YW5jZSA9ICgpID0+IHtcbiAgICByZXR1cm4gdXNlUHJvRm9ybVN0YWJsZSgpLmZvcm1JbnN0YW5jZTtcbn07XG4vKipcbiAqIFdhdGNoIGEgc2luZ2xlIGZpZWxkIG9yIHRoZSB3aG9sZSB2YWx1ZXMgb2JqZWN0LiBSZS1yZW5kZXJzIHdoZW5ldmVyIGZvcm1cbiAqIHZhbHVlcyBjaGFuZ2UuIExpZ2h0ZXIgYWx0ZXJuYXRpdmUgdG8gdGhlIGBQcm9Gb3JtLkRlcGVuZGVuY3lgIHJlbmRlci1wcm9wLlxuICovXG5leHBvcnQgY29uc3QgdXNlRm9ybVdhdGNoID0gKChuYW1lKSA9PiB7XG4gICAgY29uc3QgeyB2YWx1ZXMgfSA9IHVzZVByb0Zvcm1TdGF0ZSgpO1xuICAgIHJldHVybiBuYW1lID09PSB1bmRlZmluZWQgPyB2YWx1ZXMgOiByZXNvbHZlVmFsdWUodmFsdWVzLCBuYW1lKTtcbn0pO1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBGb3JtTGlzdENvbnRleHQg4oCUIHByb3ZpZGVzIGxpc3Qgc2NvcGUgaW5mbyB0byBQcm9Gb3JtRGVwZW5kZW5jeVxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5leHBvcnQgY29uc3QgRm9ybUxpc3RDb250ZXh0ID0gY3JlYXRlQ29udGV4dCh7fSk7XG5Gb3JtTGlzdENvbnRleHQuZGlzcGxheU5hbWUgPSAnRm9ybUxpc3RDb250ZXh0JztcbmV4cG9ydCBjb25zdCB1c2VGb3JtTGlzdENvbnRleHQgPSAoKSA9PiB1c2VDb250ZXh0KEZvcm1MaXN0Q29udGV4dCk7Il0sInNvdXJjZVJvb3QiOiIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMifQ==
94
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvc3JjL2NvbXBvbmVudHMvUHJvRm9ybS9jb250ZXh0LnRzIiwiY29tcG9uZW50cy9Qcm9Gb3JtL2NvbnRleHQuanMiXSwibmFtZXMiOlsiX3JlYWN0IiwicmVxdWlyZSIsIl9wYXRoVXRpbHMiLCJfZm9ybVN0b3JlIiwiUHJvRm9ybVN0YWJsZUNvbnRleHQiLCJleHBvcnRzIiwiY3JlYXRlQ29udGV4dCIsImRpc3BsYXlOYW1lIiwiUHJvRm9ybVN0YXRlQ29udGV4dCIsIk9VVFNJREVfRk9STV9FUlJPUiIsInVzZVByb0Zvcm1TdGFibGUiLCJjdHgiLCJ1c2VDb250ZXh0IiwiRXJyb3IiLCJ1c2VQcm9Gb3JtU3RvcmUiLCJzdG9yZSIsInNlbGVjdFN0YXRlU25hcHNob3QiLCJzdGF0ZSIsInVzZVByb0Zvcm1TdGF0ZSIsInVzZVN0b3JlU2VsZWN0b3IiLCJ1c2VQcm9Gb3JtQ29udGV4dCIsInN0YWJsZSIsInVzZU1lbW8iLCJPYmplY3QiLCJhc3NpZ24iLCJ1c2VGb3JtSW5zdGFuY2UiLCJmb3JtSW5zdGFuY2UiLCJ1c2VGb3JtV2F0Y2giLCJuYW1lIiwidW5kZWZpbmVkIiwidmFsdWVzIiwicmVzb2x2ZVZhbHVlIiwiRm9ybUxpc3RDb250ZXh0IiwidXNlRm9ybUxpc3RDb250ZXh0Il0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxJQUFBQSxNQUFBLEdBQUFDLE9BQUE7QUFDQSxJQUFBQyxVQUFBLEdBQUFELE9BQUE7QUFDQSxJQUFBRSxVQUFBLEdBQUFGLE9BQUE7QUFVQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDTyxJQUFNRyxvQkFBb0IsR0FBQUMsT0FBQSxDQUFBRCxvQkFBQSxnQkFBRyxJQUFBRSxvQkFBYSxFQUFtQyxJQUFJLENBQUM7QUFDekZGLG9CQUFvQixDQUFDRyxXQUFXLEdBQUcsc0JBQXNCO0FBRWxELElBQU1DLG1CQUFtQixHQUFBSCxPQUFBLENBQUFHLG1CQUFBLGdCQUFHLElBQUFGLG9CQUFhLEVBQW1CLElBQUksQ0FBQztBQUN4RUUsbUJBQW1CLENBQUNELFdBQVcsR0FBRyxxQkFBcUI7QUFFdkQsSUFBTUUsa0JBQWtCLEdBQUcsNkRBQTZEO0FBRXhGO0FBQ08sSUFBTUMsZ0JBQWdCLEdBQUFMLE9BQUEsQ0FBQUssZ0JBQUEsR0FBRyxTQUFuQkEsZ0JBQWdCQSxDQUFBLEVBQW1DO0VBQzlELElBQU1DLEdBQUcsR0FBRyxJQUFBQyxpQkFBVSxFQUFDUixvQkFBb0IsQ0FBQztFQUM1QyxJQUFJLENBQUNPLEdBQUcsRUFBRTtJQUNSLE1BQU0sSUFBSUUsS0FBSyxDQUFDSixrQkFBa0IsQ0FBQztFQUNyQztFQUNBLE9BQU9FLEdBQUc7QUFDWixDQUFDO0FBRUQ7QUNaQTtBQUNBO0FBQ0E7QUFDQTtBRGNPLElBQU1HLGVBQWUsR0FBQVQsT0FBQSxDQUFBUyxlQUFBLEdBQUcsU0FBbEJBLGVBQWVBLENBQUEsRUFBbUI7RUFDN0MsSUFBTUMsS0FBSyxHQUFHLElBQUFILGlCQUFVLEVBQUNKLG1CQUFtQixDQUFDO0VBQzdDLElBQUksQ0FBQ08sS0FBSyxFQUFFO0lBQ1YsTUFBTSxJQUFJRixLQUFLLENBQUNKLGtCQUFrQixDQUFDO0VBQ3JDO0VBQ0EsT0FBT00sS0FBSztBQUNkLENBQUM7QUFFRCxJQUFNQyxtQkFBbUIsR0FBRyxTQUF0QkEsbUJBQW1CQSxDQUFJQyxLQUFxQjtFQUFBLE9BQStCQSxLQUFLO0FBQUE7QUFFdEY7QUFDTyxJQUFNQyxlQUFlLEdBQUFiLE9BQUEsQ0FBQWEsZUFBQSxHQUFHLFNBQWxCQSxlQUFlQSxDQUFBLEVBQWtDO0VBQzVELElBQU1ILEtBQUssR0FBR0QsZUFBZSxDQUFBLENBQUU7RUFDL0I7RUFDQTtFQUNBO0VBQ0EsT0FBTyxJQUFBSywyQkFBZ0IsRUFBQ0osS0FBSyxFQUFFQyxtQkFBbUIsQ0FBQztBQUNyRCxDQUFDO0FBRUQ7QUNmQTtBQUNBO0FBQ0E7QUFDQTtBRGlCTyxJQUFNSSxpQkFBaUIsR0FBQWYsT0FBQSxDQUFBZSxpQkFBQSxHQUFHLFNBQXBCQSxpQkFBaUJBLENBQUEsRUFBNkI7RUFDekQsSUFBTUMsTUFBTSxHQUFHWCxnQkFBZ0IsQ0FBQSxDQUFFO0VBQ2pDLElBQU1PLEtBQUssR0FBR0MsZUFBZSxDQUFBLENBQUU7RUFDL0IsT0FBTyxJQUFBSSxjQUFPLEVBQUM7SUFBQSxPQUFNQyxNQUFBLENBQUFDLE1BQUEsQ0FBQUQsTUFBQSxDQUFBQyxNQUFBLENBQUEsQ0FBQSxDQUFBLEVBQU1ILE1BQU0sQ0FBQSxFQUFLSixLQUFLLENBQUE7RUFBQSxDQUFHLEVBQUUsQ0FBQ0ksTUFBTSxFQUFFSixLQUFLLENBQUMsQ0FBQztBQUNsRSxDQUFDO0FBRUQ7QUNoQkE7QUFDQTtBQUNBO0FBQ0E7QURrQk8sSUFBTVEsZUFBZSxHQUFBcEIsT0FBQSxDQUFBb0IsZUFBQSxHQUFHLFNBQWxCQSxlQUFlQSxDQUFBLEVBQXVFO0VBQ2pHLE9BQU9mLGdCQUFnQixDQUFBLENBQUUsQ0FBQ2dCLFlBQTJDO0FBQ3ZFLENBQUM7QUFTRDtBQ3hCQTtBQUNBO0FBQ0E7QUFDQTtBRDBCTyxJQUFNQyxZQUFZLEdBQUF0QixPQUFBLENBQUFzQixZQUFBLEdBQWtCLFNBQTlCQSxZQUFZQSxDQUFtQkMsSUFBYSxFQUFJO0VBQzNELElBQU1iLEtBQUssR0FBR0QsZUFBZSxDQUFBLENBQUU7RUFDL0IsT0FBTyxJQUFBSywyQkFBZ0IsRUFBQ0osS0FBSyxFQUFFLFVBQUNFLEtBQUs7SUFBQSxPQUNuQ1csSUFBSSxLQUFLQyxTQUFTLEdBQUdaLEtBQUssQ0FBQ2EsTUFBTSxHQUFHLElBQUFDLHVCQUFZLEVBQUNkLEtBQUssQ0FBQ2EsTUFBTSxFQUFFRixJQUFJLENBQUM7RUFBQSxFQUNyRTtBQUNILENBQWtCO0FBRWxCO0FBQ0E7QUFDQTtBQUNPLElBQU1JLGVBQWUsR0FBQTNCLE9BQUEsQ0FBQTJCLGVBQUEsZ0JBQUcsSUFBQTFCLG9CQUFhLEVBQXVCLENBQUEsQ0FBRSxDQUFDO0FBRXRFMEIsZUFBZSxDQUFDekIsV0FBVyxHQUFHLGlCQUFpQjtBQUV4QyxJQUFNMEIsa0JBQWtCLEdBQUE1QixPQUFBLENBQUE0QixrQkFBQSxHQUFHLFNBQXJCQSxrQkFBa0JBLENBQUE7RUFBQSxPQUErQixJQUFBckIsaUJBQVUsRUFBQ29CLGVBQWUsQ0FBQztBQUFBIiwiZmlsZSI6ImNvbXBvbmVudHMvUHJvRm9ybS9jb250ZXh0LmpzIiwic291cmNlc0NvbnRlbnQiOltudWxsLCJpbXBvcnQgeyBjcmVhdGVDb250ZXh0LCB1c2VDb250ZXh0LCB1c2VNZW1vIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgcmVzb2x2ZVZhbHVlIH0gZnJvbSAnLi9jb3JlL3BhdGhVdGlscyc7XG5pbXBvcnQgeyB1c2VTdG9yZVNlbGVjdG9yIH0gZnJvbSAnLi9jb3JlL2Zvcm1TdG9yZSc7XG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIFRoZSBQcm9Gb3JtIGNvbnRleHQgaXMgU1BMSVQgaW4gdHdvIHNvIHRoYXQgY29uc3VtZXJzIHdoaWNoIG9ubHkgbmVlZFxuLy8gY29uZmlndXJhdGlvbiAvIGRpc3BhdGNoZXJzIChTdWJtaXR0ZXIsIGZpZWxkIGZhY3RvcmllcykgZG8gbm90IHJlLXJlbmRlclxuLy8gb24gZXZlcnkga2V5c3Ryb2tlOlxuLy8gLSBTdGFibGVDb250ZXh0OiBjb25maWcgKyBpZGVudGl0eS1zdGFibGUgZGlzcGF0Y2hlcnMgYW5kIGZvcm0gaW5zdGFuY2UuXG4vLyAtIFN0YXRlQ29udGV4dDogaG9sZHMgdGhlIElERU5USVRZLVNUQUJMRSBmb3JtIHN0b3JlLCBuZXZlciBhIHNuYXBzaG90IOKAlFxuLy8gICBwZXIta2V5c3Ryb2tlIHVwZGF0ZXMgcmVhY2ggc3Vic2NyaWJlcnMgdGhyb3VnaCBzdG9yZSBzdWJzY3JpcHRpb25zXG4vLyAgICh1c2VTdG9yZVNlbGVjdG9yIHdpdGggcGVyLWZpZWxkIHNlbGVjdG9ycyksIG5vdCBjb250ZXh0IHByb3BhZ2F0aW9uLlxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5leHBvcnQgY29uc3QgUHJvRm9ybVN0YWJsZUNvbnRleHQgPSBjcmVhdGVDb250ZXh0KG51bGwpO1xuUHJvRm9ybVN0YWJsZUNvbnRleHQuZGlzcGxheU5hbWUgPSAnUHJvRm9ybVN0YWJsZUNvbnRleHQnO1xuZXhwb3J0IGNvbnN0IFByb0Zvcm1TdGF0ZUNvbnRleHQgPSBjcmVhdGVDb250ZXh0KG51bGwpO1xuUHJvRm9ybVN0YXRlQ29udGV4dC5kaXNwbGF5TmFtZSA9ICdQcm9Gb3JtU3RhdGVDb250ZXh0JztcbmNvbnN0IE9VVFNJREVfRk9STV9FUlJPUiA9ICd1c2VQcm9Gb3JtQ29udGV4dCBtdXN0IGJlIHVzZWQgd2l0aGluIGEgPFByb0Zvcm0+IGNvbXBvbmVudCc7XG4vKiogUmVhZCBPTkxZIHRoZSBzdGFibGUgc2xpY2UgKGNvbmZpZyArIGRpc3BhdGNoZXJzKSDigJQgbm8gcGVyLWtleXN0cm9rZSByZS1yZW5kZXJzLiAqL1xuZXhwb3J0IGNvbnN0IHVzZVByb0Zvcm1TdGFibGUgPSAoKSA9PiB7XG4gICAgY29uc3QgY3R4ID0gdXNlQ29udGV4dChQcm9Gb3JtU3RhYmxlQ29udGV4dCk7XG4gICAgaWYgKCFjdHgpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKE9VVFNJREVfRk9STV9FUlJPUik7XG4gICAgfVxuICAgIHJldHVybiBjdHg7XG59O1xuLyoqXG4gKiBJbnRlcm5hbDogdGhlIHJhdyBmb3JtIHN0b3JlIChpZGVudGl0eS1zdGFibGUg4oCUIHJlYWRpbmcgaXQgbmV2ZXIgY2F1c2VzXG4gKiByZS1yZW5kZXJzIGJ5IGl0c2VsZikuIFBhaXIgd2l0aCBgdXNlU3RvcmVTZWxlY3RvcmAgZm9yIGZpbmUtZ3JhaW5lZCxcbiAqIHBlci1maWVsZCBzdWJzY3JpcHRpb25zLiBUaHJvd3Mgd2hlbiB1c2VkIG91dHNpZGUgYDxQcm9Gb3JtPmAuXG4gKi9cbmV4cG9ydCBjb25zdCB1c2VQcm9Gb3JtU3RvcmUgPSAoKSA9PiB7XG4gICAgY29uc3Qgc3RvcmUgPSB1c2VDb250ZXh0KFByb0Zvcm1TdGF0ZUNvbnRleHQpO1xuICAgIGlmICghc3RvcmUpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKE9VVFNJREVfRk9STV9FUlJPUik7XG4gICAgfVxuICAgIHJldHVybiBzdG9yZTtcbn07XG5jb25zdCBzZWxlY3RTdGF0ZVNuYXBzaG90ID0gKHN0YXRlKSA9PiBzdGF0ZTtcbi8qKiBSZWFkIE9OTFkgdGhlIHZvbGF0aWxlIHNsaWNlICh2YWx1ZXMvZXJyb3JzL+KApikg4oCUIHJlLXJlbmRlcnMgb24gZXZlcnkgY2hhbmdlLiAqL1xuZXhwb3J0IGNvbnN0IHVzZVByb0Zvcm1TdGF0ZSA9ICgpID0+IHtcbiAgICBjb25zdCBzdG9yZSA9IHVzZVByb0Zvcm1TdG9yZSgpO1xuICAgIC8vIFN1YnNjcmliZSB0byBldmVyeSBjb21taXQgKHRoZSBzbmFwc2hvdCBpZGVudGl0eSBjaGFuZ2VzIHBlciBjb21taXQpIOKAlFxuICAgIC8vIHRoYXQgYnJvYWQgZ3JhbnVsYXJpdHkgaXMgdGhpcyBob29rJ3MgZG9jdW1lbnRlZCBjb250cmFjdDsgZmluZS1ncmFpbmVkXG4gICAgLy8gY29uc3VtZXJzIHVzZSB1c2VTdG9yZVNlbGVjdG9yIHdpdGggYSBuYXJyb3dlciBzZWxlY3RvciBpbnN0ZWFkLlxuICAgIHJldHVybiB1c2VTdG9yZVNlbGVjdG9yKHN0b3JlLCBzZWxlY3RTdGF0ZVNuYXBzaG90KTtcbn07XG4vKipcbiAqIFJlYWQgdGhlIHVuaWZpZWQgUHJvRm9ybSBjb250ZXh0IChtZXJnZWQgZm9ybSBjb3JlICsgUHJvRm9ybSBzZW1hbnRpY3MpLlxuICogU3Vic2NyaWJlcyB0byBCT1RIIHNsaWNlcyDigJQgcmUtcmVuZGVycyB3aGVuZXZlciBmb3JtIHZhbHVlcyBjaGFuZ2UuXG4gKiBUaHJvd3Mgd2hlbiB1c2VkIG91dHNpZGUgYDxQcm9Gb3JtPmAuXG4gKi9cbmV4cG9ydCBjb25zdCB1c2VQcm9Gb3JtQ29udGV4dCA9ICgpID0+IHtcbiAgICBjb25zdCBzdGFibGUgPSB1c2VQcm9Gb3JtU3RhYmxlKCk7XG4gICAgY29uc3Qgc3RhdGUgPSB1c2VQcm9Gb3JtU3RhdGUoKTtcbiAgICByZXR1cm4gdXNlTWVtbygoKSA9PiAoT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCBzdGFibGUpLCBzdGF0ZSkpLCBbc3RhYmxlLCBzdGF0ZV0pO1xufTtcbi8qKlxuICogUmVhZCB0aGUgUHJvRm9ybSBmb3JtIGluc3RhbmNlIChzdXBlcnNldCBvZiBGb3JtQ29yZUluc3RhbmNlIHdpdGggZm9ybWF0IGhlbHBlcnMpLlxuICogU3Vic2NyaWJlcyBvbmx5IHRvIHRoZSBzdGFibGUgc2xpY2Ug4oCUIGRvZXMgTk9UIHJlLXJlbmRlciBwZXIga2V5c3Ryb2tlLlxuICogUGFzcyBhIGBWYWx1ZXNgIHR5cGUgYXJndW1lbnQgdG8gZ2V0IGEgdHlwZWQgaW5zdGFuY2UuXG4gKi9cbmV4cG9ydCBjb25zdCB1c2VGb3JtSW5zdGFuY2UgPSAoKSA9PiB7XG4gICAgcmV0dXJuIHVzZVByb0Zvcm1TdGFibGUoKS5mb3JtSW5zdGFuY2U7XG59O1xuLyoqXG4gKiBXYXRjaCBhIHNpbmdsZSBmaWVsZCBvciB0aGUgd2hvbGUgdmFsdWVzIG9iamVjdC4gUmUtcmVuZGVycyB3aGVuZXZlciB0aGVcbiAqIFdBVENIRUQgdmFsdWUgY2hhbmdlcyAodW5yZWxhdGVkIGZpZWxkcyBubyBsb25nZXIgY2F1c2UgcmUtcmVuZGVycykuXG4gKiBMaWdodGVyIGFsdGVybmF0aXZlIHRvIHRoZSBgUHJvRm9ybS5EZXBlbmRlbmN5YCByZW5kZXItcHJvcC5cbiAqL1xuZXhwb3J0IGNvbnN0IHVzZUZvcm1XYXRjaCA9ICgobmFtZSkgPT4ge1xuICAgIGNvbnN0IHN0b3JlID0gdXNlUHJvRm9ybVN0b3JlKCk7XG4gICAgcmV0dXJuIHVzZVN0b3JlU2VsZWN0b3Ioc3RvcmUsIChzdGF0ZSkgPT4gbmFtZSA9PT0gdW5kZWZpbmVkID8gc3RhdGUudmFsdWVzIDogcmVzb2x2ZVZhbHVlKHN0YXRlLnZhbHVlcywgbmFtZSkpO1xufSk7XG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIEZvcm1MaXN0Q29udGV4dCDigJQgcHJvdmlkZXMgbGlzdCBzY29wZSBpbmZvIHRvIFByb0Zvcm1EZXBlbmRlbmN5XG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbmV4cG9ydCBjb25zdCBGb3JtTGlzdENvbnRleHQgPSBjcmVhdGVDb250ZXh0KHt9KTtcbkZvcm1MaXN0Q29udGV4dC5kaXNwbGF5TmFtZSA9ICdGb3JtTGlzdENvbnRleHQnO1xuZXhwb3J0IGNvbnN0IHVzZUZvcm1MaXN0Q29udGV4dCA9ICgpID0+IHVzZUNvbnRleHQoRm9ybUxpc3RDb250ZXh0KTsiXSwic291cmNlUm9vdCI6Ii4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYyJ9
@@ -1,5 +1,5 @@
1
1
  import type { TypographyBodySize, TypographyColor, TypographyLabelSize } from "../../Typography";
2
- export declare const FORM_SIZES: readonly ["large", "middle", "small"];
2
+ export declare const FORM_SIZES: readonly ["large", "small"];
3
3
  export declare const FORM_LAYOUTS: readonly ["vertical"];
4
4
  export declare const LABEL_ALIGNS: readonly ["left", "right"];
5
5
  export declare const VALIDATE_STATUSES: readonly ["success", "warning", "error", "validating"];
@@ -9,7 +9,7 @@ export type FormLayout = (typeof FORM_LAYOUTS)[number];
9
9
  export type LabelAlign = (typeof LABEL_ALIGNS)[number];
10
10
  export type ValidateStatus = (typeof VALIDATE_STATUSES)[number];
11
11
  export type ValidateTrigger = (typeof VALIDATE_TRIGGERS)[number];
12
- export declare const FORM_LABEL_SIZE: TypographyLabelSize;
12
+ export declare const FORM_LABEL_SIZES: Record<FormSize, TypographyLabelSize>;
13
13
  export declare const FORM_LABEL_COLOR: TypographyColor;
14
14
  export declare const FORM_ERROR_SIZE: TypographyBodySize;
15
15
  export declare const FORM_ERROR_COLOR: TypographyColor;
@@ -20,6 +20,14 @@ export declare const FORM_DESCRIPTION_COLOR: TypographyColor;
20
20
  export declare const FORM_FEEDBACK_SIZE: TypographyBodySize;
21
21
  export declare const FORM_FEEDBACK_COLOR: TypographyColor;
22
22
  export declare const FORM_COMPONENT_NAMES: readonly ["Input", "InputNumber", "InputPassword", "InputTextArea", "InputSearch", "InputOTP", "InputTrade", "InputAmount", "InputMask", "Select", "BaseSelect", "DatePicker", "TimePicker", "Calendar", "Checkbox", "CheckboxGroup", "Radio", "RadioGroup", "Switch", "Slider", "TextArea"];
23
+ /**
24
+ * Form controls that declare a `size` prop accepting `'large' | 'small'`.
25
+ * `injectField` cascades the form-level `size` into these as a DEFAULT — an
26
+ * explicit field-level `size` (own prop or via `fieldProps`) wins. Controls
27
+ * without a size prop (Checkbox, Switch, Slider, …) must stay off this list:
28
+ * an unknown `size` prop could leak onto the DOM element.
29
+ */
30
+ export declare const SIZE_AWARE_COMPONENT_NAMES: readonly string[];
23
31
  /**
24
32
  * Text-like form controls whose empty value must default to '' (a controlled
25
33
  * string input) rather than undefined. Used by `injectField` to pick a safe