@1money/component-ui 0.0.69 → 0.0.71

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 (219) hide show
  1. package/es/business/Dialog/VerificationDialog/hooks/useOtpVerification.js +3 -2
  2. package/es/business/Dialog/VerificationDialog/hooks/useResendCountdown.js +2 -2
  3. package/es/business/Select/Network/NetworkSelect.js +2 -2
  4. package/es/components/Accordion/Accordion.js +3 -2
  5. package/es/components/Calendar/Calendar.js +3 -2
  6. package/es/components/Carousel/Carousel.js +3 -2
  7. package/es/components/Checkbox/BaseCheckbox.js +3 -2
  8. package/es/components/Checkbox/Checkbox.js +2 -2
  9. package/es/components/Checkbox/CheckboxGroup.js +3 -2
  10. package/es/components/CoachMark/CoachMark.js +3 -2
  11. package/es/components/Copy/Copy.js +2 -2
  12. package/es/components/Dialog/Dialog.js +2 -2
  13. package/es/components/Drawer/Drawer.js +2 -2
  14. package/es/components/Icons/Wrapper.js +6 -4
  15. package/es/components/Icons/constants.d.ts +11 -0
  16. package/es/components/Icons/constants.js +32 -0
  17. package/es/components/Icons/index.d.ts +2 -0
  18. package/es/components/Icons/index.js +2 -1
  19. package/es/components/Icons/interface.d.ts +8 -1
  20. package/es/components/Input/Amount/Amount.js +2 -2
  21. package/es/components/Input/Input/Input.js +3 -2
  22. package/es/components/Input/Mask/Mask.js +3 -2
  23. package/es/components/Input/OTP/OTP.js +3 -2
  24. package/es/components/Input/Password/Password.js +3 -2
  25. package/es/components/Input/Search/Search.js +3 -2
  26. package/es/components/Input/TextArea/TextArea.js +3 -2
  27. package/es/components/Input/Trade/Trade.js +2 -2
  28. package/es/components/Input/useAmountInput.js +4 -2
  29. package/es/components/Input/useSyncRef.js +2 -2
  30. package/es/components/Navigation/Nav.js +2 -2
  31. package/es/components/Navigation/Navigation.js +5 -2
  32. package/es/components/Pagination/Pagination.js +2 -2
  33. package/es/components/Pagination/usePagination.js +3 -2
  34. package/es/components/Popconfirm/Popconfirm.js +2 -2
  35. package/es/components/Portal/Portal.js +2 -2
  36. package/es/components/ProForm/ProForm.js +6 -3
  37. package/es/components/ProForm/ProFormGroup.js +2 -2
  38. package/es/components/ProForm/ProFormList.js +3 -2
  39. package/es/components/ProForm/Submitter.js +2 -2
  40. package/es/components/ProForm/core/constants.d.ts +6 -0
  41. package/es/components/ProForm/core/constants.js +7 -1
  42. package/es/components/ProForm/core/hooks/useForm.js +25 -195
  43. package/es/components/ProForm/core/hooks/useFormCore.js +14 -142
  44. package/es/components/ProForm/core/pathUtils.d.ts +6 -0
  45. package/es/components/ProForm/core/pathUtils.js +59 -0
  46. package/es/components/ProForm/core/runRules.d.ts +13 -0
  47. package/es/components/ProForm/core/runRules.js +186 -0
  48. package/es/components/ProForm/core/useFormItem.js +10 -28
  49. package/es/components/ProForm/fields/createProFormField.js +43 -57
  50. package/es/components/ProForm/hooks/useFieldRequest.js +7 -5
  51. package/es/components/ProForm/layouts/QueryFilter.js +3 -2
  52. package/es/components/ProForm/layouts/useOverlayForm.js +23 -21
  53. package/es/components/ProForm/utils.d.ts +2 -2
  54. package/es/components/ProForm/utils.js +5 -51
  55. package/es/components/ProTable/ProTable.js +3 -2
  56. package/es/components/ProTable/core/useAwaitableReload.js +3 -2
  57. package/es/components/ProTable/useFetchData.js +4 -2
  58. package/es/components/Radio/Radio.js +3 -2
  59. package/es/components/Radio/RadioGroup.js +3 -2
  60. package/es/components/ResizeObserver/useResizeObserver.js +2 -2
  61. package/es/components/Segment/Segment.js +4 -2
  62. package/es/components/Select/Select.js +3 -2
  63. package/es/components/Select/SelectCustom.js +2 -2
  64. package/es/components/Select/useSelectShell.js +3 -2
  65. package/es/components/Slider/Slider.js +3 -2
  66. package/es/components/Switch/Switch.js +3 -2
  67. package/es/components/Table/Table.js +14 -28
  68. package/es/components/Table/VirtualTable.js +18 -28
  69. package/es/components/Table/core/columnUtil.d.ts +9 -0
  70. package/es/components/Table/core/columnUtil.js +34 -0
  71. package/es/components/Table/core/useTableColumns.d.ts +4 -13
  72. package/es/components/Table/core/useTableColumns.js +55 -24
  73. package/es/components/Table/core/useTableDataPipeline.d.ts +11 -16
  74. package/es/components/Table/core/useTableDataPipeline.js +66 -73
  75. package/es/components/Table/core/useTableExpand.js +3 -2
  76. package/es/components/Table/core/useTableSelection.js +7 -4
  77. package/es/components/Table/core/useTableSetup.js +4 -2
  78. package/es/components/Table/features/ExpandTrigger.d.ts +9 -3
  79. package/es/components/Table/features/ExpandTrigger.js +14 -8
  80. package/es/components/Table/features/FilterTrigger.js +21 -17
  81. package/es/components/Table/features/SelectionColumn.d.ts +11 -6
  82. package/es/components/Table/features/SelectionColumn.js +12 -5
  83. package/es/components/Table/features/SortTrigger.d.ts +4 -2
  84. package/es/components/Table/features/SortTrigger.js +8 -3
  85. package/es/components/Table/internal/kernel/Body/MeasureCell.js +2 -2
  86. package/es/components/Table/internal/kernel/Cell/index.js +2 -2
  87. package/es/components/Table/internal/kernel/Table.js +3 -3
  88. package/es/components/Table/internal/kernel/VirtualTable/index.js +2 -2
  89. package/es/components/Table/internal/kernel/hooks/useRowInfo.js +2 -2
  90. package/es/components/Table/internal/kernel/selector-context/context.js +3 -3
  91. package/es/components/Table/renderers/HeaderCell.js +3 -2
  92. package/es/components/Table/renderers/TableShell.d.ts +13 -0
  93. package/es/components/Table/renderers/TableShell.js +25 -0
  94. package/es/components/Table/style/Table.css +3 -0
  95. package/es/components/Tabs/Tabs.js +4 -2
  96. package/es/components/Tooltip/Tooltip.js +3 -2
  97. package/es/components/Tour/Tour.js +3 -2
  98. package/es/components/Trigger/Trigger.js +3 -2
  99. package/es/components/Typography/Typography.js +2 -2
  100. package/es/components/Typography/useTypographyEnhancements.js +3 -2
  101. package/es/components/Upload/Upload.js +2 -2
  102. package/es/components/Upload/UploadFileBar.js +2 -2
  103. package/es/components/VirtualList/VirtualList.js +3 -2
  104. package/es/components/VirtualList/hooks/useMobileTouchMove.js +2 -2
  105. package/es/components/VirtualList/hooks/useScrollTo.js +2 -2
  106. package/es/index.css +1 -1
  107. package/es/index.d.ts +1 -1
  108. package/es/index.js +1 -1
  109. package/lib/business/Dialog/VerificationDialog/hooks/useOtpVerification.js +9 -8
  110. package/lib/business/Dialog/VerificationDialog/hooks/useResendCountdown.js +3 -3
  111. package/lib/business/Select/Network/NetworkSelect.js +3 -3
  112. package/lib/components/Accordion/Accordion.js +5 -4
  113. package/lib/components/Calendar/Calendar.js +6 -5
  114. package/lib/components/Carousel/Carousel.js +5 -4
  115. package/lib/components/Checkbox/BaseCheckbox.js +5 -4
  116. package/lib/components/Checkbox/Checkbox.js +3 -3
  117. package/lib/components/Checkbox/CheckboxGroup.js +7 -6
  118. package/lib/components/CoachMark/CoachMark.js +7 -6
  119. package/lib/components/Copy/Copy.js +3 -3
  120. package/lib/components/Dialog/Dialog.js +6 -6
  121. package/lib/components/Drawer/Drawer.js +10 -10
  122. package/lib/components/Icons/Wrapper.js +6 -4
  123. package/lib/components/Icons/constants.d.ts +11 -0
  124. package/lib/components/Icons/constants.js +38 -0
  125. package/lib/components/Icons/index.d.ts +2 -0
  126. package/lib/components/Icons/index.js +10 -2
  127. package/lib/components/Icons/interface.d.ts +8 -1
  128. package/lib/components/Input/Amount/Amount.js +6 -5
  129. package/lib/components/Input/Input/Input.js +7 -6
  130. package/lib/components/Input/Mask/Mask.js +9 -8
  131. package/lib/components/Input/OTP/OTP.js +9 -8
  132. package/lib/components/Input/Password/Password.js +6 -5
  133. package/lib/components/Input/Search/Search.js +8 -7
  134. package/lib/components/Input/TextArea/TextArea.js +5 -4
  135. package/lib/components/Input/Trade/Trade.js +5 -4
  136. package/lib/components/Input/useAmountInput.js +13 -11
  137. package/lib/components/Input/useSyncRef.js +4 -3
  138. package/lib/components/Navigation/Nav.js +3 -3
  139. package/lib/components/Navigation/Navigation.js +10 -7
  140. package/lib/components/Pagination/Pagination.js +4 -3
  141. package/lib/components/Pagination/usePagination.js +7 -6
  142. package/lib/components/Popconfirm/Popconfirm.js +3 -3
  143. package/lib/components/Portal/Portal.js +4 -4
  144. package/lib/components/ProForm/ProForm.js +14 -11
  145. package/lib/components/ProForm/ProFormGroup.js +3 -3
  146. package/lib/components/ProForm/ProFormList.js +10 -9
  147. package/lib/components/ProForm/Submitter.js +4 -4
  148. package/lib/components/ProForm/core/constants.d.ts +6 -0
  149. package/lib/components/ProForm/core/constants.js +8 -2
  150. package/lib/components/ProForm/core/hooks/useForm.js +36 -206
  151. package/lib/components/ProForm/core/hooks/useFormCore.js +32 -160
  152. package/lib/components/ProForm/core/pathUtils.d.ts +6 -0
  153. package/lib/components/ProForm/core/pathUtils.js +68 -0
  154. package/lib/components/ProForm/core/runRules.d.ts +13 -0
  155. package/lib/components/ProForm/core/runRules.js +194 -0
  156. package/lib/components/ProForm/core/useFormItem.js +15 -33
  157. package/lib/components/ProForm/fields/createProFormField.js +42 -56
  158. package/lib/components/ProForm/hooks/useFieldRequest.js +9 -7
  159. package/lib/components/ProForm/layouts/QueryFilter.js +8 -7
  160. package/lib/components/ProForm/layouts/useOverlayForm.js +27 -27
  161. package/lib/components/ProForm/utils.d.ts +2 -2
  162. package/lib/components/ProForm/utils.js +20 -55
  163. package/lib/components/ProTable/ProTable.js +10 -9
  164. package/lib/components/ProTable/core/useAwaitableReload.js +6 -5
  165. package/lib/components/ProTable/useFetchData.js +15 -13
  166. package/lib/components/Radio/Radio.js +6 -5
  167. package/lib/components/Radio/RadioGroup.js +5 -4
  168. package/lib/components/ResizeObserver/useResizeObserver.js +4 -3
  169. package/lib/components/Segment/Segment.js +7 -5
  170. package/lib/components/Select/Select.js +23 -22
  171. package/lib/components/Select/SelectCustom.js +8 -8
  172. package/lib/components/Select/useSelectShell.js +5 -4
  173. package/lib/components/Slider/Slider.js +6 -5
  174. package/lib/components/Switch/Switch.js +5 -4
  175. package/lib/components/Table/Table.js +13 -27
  176. package/lib/components/Table/VirtualTable.js +17 -27
  177. package/lib/components/Table/core/columnUtil.d.ts +9 -0
  178. package/lib/components/Table/core/columnUtil.js +42 -0
  179. package/lib/components/Table/core/useTableColumns.d.ts +4 -13
  180. package/lib/components/Table/core/useTableColumns.js +57 -26
  181. package/lib/components/Table/core/useTableDataPipeline.d.ts +11 -16
  182. package/lib/components/Table/core/useTableDataPipeline.js +73 -80
  183. package/lib/components/Table/core/useTableExpand.js +6 -5
  184. package/lib/components/Table/core/useTableSelection.js +13 -10
  185. package/lib/components/Table/core/useTableSetup.js +8 -5
  186. package/lib/components/Table/features/ExpandTrigger.d.ts +9 -3
  187. package/lib/components/Table/features/ExpandTrigger.js +14 -8
  188. package/lib/components/Table/features/FilterTrigger.js +21 -17
  189. package/lib/components/Table/features/SelectionColumn.d.ts +11 -6
  190. package/lib/components/Table/features/SelectionColumn.js +12 -5
  191. package/lib/components/Table/features/SortTrigger.d.ts +4 -2
  192. package/lib/components/Table/features/SortTrigger.js +8 -3
  193. package/lib/components/Table/internal/kernel/Body/MeasureCell.js +3 -3
  194. package/lib/components/Table/internal/kernel/Cell/index.js +4 -4
  195. package/lib/components/Table/internal/kernel/Table.js +7 -6
  196. package/lib/components/Table/internal/kernel/VirtualTable/index.js +4 -4
  197. package/lib/components/Table/internal/kernel/hooks/useRowInfo.js +3 -3
  198. package/lib/components/Table/internal/kernel/selector-context/context.js +6 -5
  199. package/lib/components/Table/renderers/HeaderCell.js +3 -2
  200. package/lib/components/Table/renderers/TableShell.d.ts +13 -0
  201. package/lib/components/Table/renderers/TableShell.js +31 -0
  202. package/lib/components/Table/style/Table.css +3 -0
  203. package/lib/components/Tabs/Tabs.js +7 -5
  204. package/lib/components/Tooltip/Tooltip.js +5 -4
  205. package/lib/components/Tour/Tour.js +7 -6
  206. package/lib/components/Trigger/Trigger.js +5 -4
  207. package/lib/components/Typography/Typography.js +5 -4
  208. package/lib/components/Typography/useTypographyEnhancements.js +8 -7
  209. package/lib/components/Upload/Upload.js +5 -4
  210. package/lib/components/Upload/UploadFileBar.js +4 -3
  211. package/lib/components/VirtualList/VirtualList.js +8 -7
  212. package/lib/components/VirtualList/hooks/useMobileTouchMove.js +4 -3
  213. package/lib/components/VirtualList/hooks/useScrollTo.js +3 -3
  214. package/lib/index.css +1 -1
  215. package/lib/index.d.ts +1 -1
  216. package/lib/index.js +1 -1
  217. package/package.json +2 -2
  218. package/scripts/mcp-server/examples.generated.json +12 -6
  219. package/scripts/mcp-server/index.generated.json +45 -3
@@ -5,61 +5,13 @@ Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
7
  exports.useFormCore = exports["default"] = void 0;
8
- var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
9
- var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
10
8
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
11
- var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
9
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
12
10
  var _react = require("react");
13
- var _hooks = require("@1money/hooks");
14
- function _createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
15
- function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
16
- function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
17
- // ---------------------------------------------------------------------------
18
- // Nested path helpers (dot-notation support, e.g. "items.0.title")
19
- // ---------------------------------------------------------------------------
20
- function getNestedValue(obj, path) {
21
- var keys = path.split('.');
22
- var current = obj;
23
- var _iterator = _createForOfIteratorHelper(keys),
24
- _step;
25
- try {
26
- for (_iterator.s(); !(_step = _iterator.n()).done;) {
27
- var key = _step.value;
28
- if (current === null || current === undefined || (0, _typeof2["default"])(current) !== 'object') return undefined;
29
- current = current[key];
30
- }
31
- } catch (err) {
32
- _iterator.e(err);
33
- } finally {
34
- _iterator.f();
35
- }
36
- return current;
37
- }
38
- function setNestedValue(obj, path, value) {
39
- var keys = path.split('.');
40
- if (keys.length === 1) return Object.assign(Object.assign({}, obj), (0, _defineProperty2["default"])({}, path, value));
41
- var result = Object.assign({}, obj);
42
- var current = result;
43
- for (var i = 0; i < keys.length - 1; i++) {
44
- var key = keys[i];
45
- var nextKey = keys[i + 1];
46
- var isNextArray = /^\d+$/.test(nextKey);
47
- if (current[key] === undefined || current[key] === null) {
48
- current[key] = isNextArray ? [] : {};
49
- }
50
- if (Array.isArray(current[key])) {
51
- current[key] = (0, _toConsumableArray2["default"])(current[key]);
52
- } else {
53
- current[key] = Object.assign({}, current[key]);
54
- }
55
- current = current[key];
56
- }
57
- current[keys[keys.length - 1]] = value;
58
- return result;
59
- }
60
- function resolveValue(values, name) {
61
- return name.includes('.') ? getNestedValue(values, name) : values[name];
62
- }
11
+ var _useEventCallback = _interopRequireDefault(require("@1money/hooks/useEventCallback"));
12
+ var _useMemoizedFn = _interopRequireDefault(require("@1money/hooks/useMemoizedFn"));
13
+ var _pathUtils = require("../pathUtils");
14
+ var _runRules = require("../runRules");
63
15
  var useFormCore = exports.useFormCore = function useFormCore() {
64
16
  var config = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
65
17
  var _config$initialValues = config.initialValues,
@@ -96,9 +48,9 @@ var useFormCore = exports.useFormCore = function useFormCore() {
96
48
  _useState8 = (0, _slicedToArray2["default"])(_useState7, 2),
97
49
  fieldRules = _useState8[0],
98
50
  setFieldRules = _useState8[1];
99
- var setFieldValue = (0, _hooks.useMemoizedFn)(function (name, value) {
51
+ var setFieldValue = (0, _useMemoizedFn["default"])(function (name, value) {
100
52
  setValues(function (prev) {
101
- var newValues = name.includes('.') ? setNestedValue(prev, name, value) : Object.assign(Object.assign({}, prev), (0, _defineProperty2["default"])({}, name, value));
53
+ var newValues = name.includes('.') ? (0, _pathUtils.setNestedValue)(prev, name, value) : Object.assign(Object.assign({}, prev), (0, _defineProperty2["default"])({}, name, value));
102
54
  onValuesChange === null || onValuesChange === void 0 ? void 0 : onValuesChange((0, _defineProperty2["default"])({}, name, value), newValues);
103
55
  return newValues;
104
56
  });
@@ -111,7 +63,7 @@ var useFormCore = exports.useFormCore = function useFormCore() {
111
63
  });
112
64
  }
113
65
  });
114
- var setFieldError = (0, _hooks.useMemoizedFn)(function (name, error) {
66
+ var setFieldError = (0, _useMemoizedFn["default"])(function (name, error) {
115
67
  setErrors(function (prev) {
116
68
  if (error === null) {
117
69
  if (!prev[name]) return prev;
@@ -122,75 +74,36 @@ var useFormCore = exports.useFormCore = function useFormCore() {
122
74
  return Object.assign(Object.assign({}, prev), (0, _defineProperty2["default"])({}, name, error));
123
75
  });
124
76
  });
125
- var registerField = (0, _hooks.useMemoizedFn)(function (name, rules) {
77
+ var registerField = (0, _useMemoizedFn["default"])(function (name, rules) {
126
78
  setFieldRules(function (prev) {
127
79
  return Object.assign(Object.assign({}, prev), (0, _defineProperty2["default"])({}, name, rules));
128
80
  });
129
81
  });
130
- var getFieldRules = (0, _hooks.useMemoizedFn)(function (name) {
82
+ var getFieldRules = (0, _useMemoizedFn["default"])(function (name) {
131
83
  return fieldRules[name];
132
84
  });
133
- var unregisterField = (0, _hooks.useMemoizedFn)(function (name) {
85
+ var unregisterField = (0, _useMemoizedFn["default"])(function (name) {
134
86
  setFieldRules(function (prev) {
135
87
  var newRules = Object.assign({}, prev);
136
88
  delete newRules[name];
137
89
  return newRules;
138
90
  });
139
91
  });
140
- var validateField = (0, _hooks.useMemoizedFn)(function (name) {
92
+ var validateField = (0, _useMemoizedFn["default"])(function (name) {
141
93
  var rules = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
142
94
  var providedValue = arguments.length > 2 ? arguments[2] : undefined;
143
- var value = providedValue !== undefined ? providedValue : resolveValue(values, name);
144
- var _iterator2 = _createForOfIteratorHelper(rules),
145
- _step2;
146
- try {
147
- for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
148
- var rule = _step2.value;
149
- if (rule.required && (value === undefined || value === null || value === '')) {
150
- var error = rule.message || "".concat(name, " is required");
151
- setFieldError(name, error);
152
- return false;
153
- }
154
- if (rule.min && typeof value === 'string' && value.length < rule.min) {
155
- var _error = rule.message || "".concat(name, " must be at least ").concat(rule.min, " characters");
156
- setFieldError(name, _error);
157
- return false;
158
- }
159
- if (rule.max && typeof value === 'string' && value.length > rule.max) {
160
- var _error2 = rule.message || "".concat(name, " must be no more than ").concat(rule.max, " characters");
161
- setFieldError(name, _error2);
162
- return false;
163
- }
164
- if (rule.pattern && typeof value === 'string' && !rule.pattern.test(value)) {
165
- var _error3 = rule.message || "".concat(name, " format is invalid");
166
- setFieldError(name, _error3);
167
- return false;
168
- }
169
- if (rule.validator && typeof rule.validator === 'function') {
170
- try {
171
- var result = rule.validator(value, values);
172
- if (result !== true) {
173
- setFieldError(name, typeof result === 'string' ? result : 'Validation failed');
174
- return false;
175
- }
176
- } catch (err) {
177
- var message = err instanceof Error ? err.message : 'Validation error';
178
- setFieldError(name, message);
179
- return false;
180
- }
181
- }
182
- }
183
- } catch (err) {
184
- _iterator2.e(err);
185
- } finally {
186
- _iterator2.f();
95
+ var value = providedValue !== undefined ? providedValue : (0, _pathUtils.resolveValue)(values, name);
96
+ var error = (0, _runRules.runRulesSync)(name, value, values, rules);
97
+ if (error !== null) {
98
+ setFieldError(name, error);
99
+ return false;
187
100
  }
188
101
  if (errors[name]) {
189
102
  setFieldError(name, null);
190
103
  }
191
104
  return true;
192
105
  });
193
- var validateFields = (0, _hooks.useMemoizedFn)(function () {
106
+ var validateFields = (0, _useMemoizedFn["default"])(function () {
194
107
  var fieldsRulesToValidate = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : fieldRules;
195
108
  var isValid = true;
196
109
  Object.keys(fieldsRulesToValidate).forEach(function (name) {
@@ -201,56 +114,15 @@ var useFormCore = exports.useFormCore = function useFormCore() {
201
114
  });
202
115
  return isValid;
203
116
  });
204
- var handleSubmitInternal = (0, _hooks.useMemoizedFn)(function () {
117
+ var handleSubmitInternal = (0, _useMemoizedFn["default"])(function () {
205
118
  var hasErrors = false;
206
119
  var newErrors = {};
207
120
  Object.keys(fieldRules).forEach(function (fieldName) {
208
- var rules = fieldRules[fieldName];
209
- var value = resolveValue(values, fieldName);
210
- var _iterator3 = _createForOfIteratorHelper(rules),
211
- _step3;
212
- try {
213
- for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
214
- var rule = _step3.value;
215
- if (rule.required && (value === undefined || value === null || value === '')) {
216
- newErrors[fieldName] = rule.message || "".concat(fieldName, " is required");
217
- hasErrors = true;
218
- break;
219
- }
220
- if (rule.min && typeof value === 'string' && value.length < rule.min) {
221
- newErrors[fieldName] = rule.message || "".concat(fieldName, " must be at least ").concat(rule.min, " characters");
222
- hasErrors = true;
223
- break;
224
- }
225
- if (rule.max && typeof value === 'string' && value.length > rule.max) {
226
- newErrors[fieldName] = rule.message || "".concat(fieldName, " must be no more than ").concat(rule.max, " characters");
227
- hasErrors = true;
228
- break;
229
- }
230
- if (rule.pattern && typeof value === 'string' && !rule.pattern.test(value)) {
231
- newErrors[fieldName] = rule.message || "".concat(fieldName, " format is invalid");
232
- hasErrors = true;
233
- break;
234
- }
235
- if (rule.validator && typeof rule.validator === 'function') {
236
- try {
237
- var result = rule.validator(value, values);
238
- if (result !== true) {
239
- newErrors[fieldName] = typeof result === 'string' ? result : 'Validation failed';
240
- hasErrors = true;
241
- break;
242
- }
243
- } catch (err) {
244
- newErrors[fieldName] = err instanceof Error ? err.message : 'Validation error';
245
- hasErrors = true;
246
- break;
247
- }
248
- }
249
- }
250
- } catch (err) {
251
- _iterator3.e(err);
252
- } finally {
253
- _iterator3.f();
121
+ var value = (0, _pathUtils.resolveValue)(values, fieldName);
122
+ var error = (0, _runRules.runRulesSync)(fieldName, value, values, fieldRules[fieldName]);
123
+ if (error !== null) {
124
+ newErrors[fieldName] = error;
125
+ hasErrors = true;
254
126
  }
255
127
  });
256
128
  setErrors(newErrors);
@@ -271,27 +143,27 @@ var useFormCore = exports.useFormCore = function useFormCore() {
271
143
  };
272
144
  }
273
145
  });
274
- var handleSubmit = (0, _hooks.useEventCallback)(function (e) {
146
+ var handleSubmit = (0, _useEventCallback["default"])(function (e) {
275
147
  e === null || e === void 0 ? void 0 : e.preventDefault();
276
148
  return handleSubmitInternal();
277
149
  });
278
- var resetFields = (0, _hooks.useMemoizedFn)(function () {
150
+ var resetFields = (0, _useMemoizedFn["default"])(function () {
279
151
  setValues(initialValues);
280
152
  setErrors({});
281
153
  setTouched({});
282
154
  onReset === null || onReset === void 0 ? void 0 : onReset();
283
155
  });
284
- var handleReset = (0, _hooks.useEventCallback)(function (e) {
156
+ var handleReset = (0, _useEventCallback["default"])(function (e) {
285
157
  e === null || e === void 0 ? void 0 : e.preventDefault();
286
158
  resetFields();
287
159
  });
288
- var getFieldValue = (0, _hooks.useMemoizedFn)(function (name) {
289
- return resolveValue(values, name);
160
+ var getFieldValue = (0, _useMemoizedFn["default"])(function (name) {
161
+ return (0, _pathUtils.resolveValue)(values, name);
290
162
  });
291
- var getFieldsValue = (0, _hooks.useMemoizedFn)(function () {
163
+ var getFieldsValue = (0, _useMemoizedFn["default"])(function () {
292
164
  return values;
293
165
  });
294
- var setFieldsValue = (0, _hooks.useMemoizedFn)(function (newValues) {
166
+ var setFieldsValue = (0, _useMemoizedFn["default"])(function (newValues) {
295
167
  setValues(function (prev) {
296
168
  var updatedValues = Object.assign(Object.assign({}, prev), newValues);
297
169
  onValuesChange === null || onValuesChange === void 0 ? void 0 : onValuesChange(newValues, updatedValues);
@@ -351,4 +223,4 @@ var useFormCore = exports.useFormCore = function useFormCore() {
351
223
  };
352
224
  };
353
225
  var _default = exports["default"] = useFormCore;
354
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvUHJvRm9ybS9jb3JlL3NyYy9jb21wb25lbnRzL1Byb0Zvcm0vY29yZS9ob29rcy91c2VGb3JtQ29yZS50cyIsImNvbXBvbmVudHMvUHJvRm9ybS9jb3JlL2hvb2tzL3VzZUZvcm1Db3JlLmpzIl0sIm5hbWVzIjpbIl9yZWFjdCIsInJlcXVpcmUiLCJfaG9va3MiLCJfY3JlYXRlRm9yT2ZJdGVyYXRvckhlbHBlciIsInIiLCJlIiwidCIsIlN5bWJvbCIsIml0ZXJhdG9yIiwiQXJyYXkiLCJpc0FycmF5IiwiX3Vuc3VwcG9ydGVkSXRlcmFibGVUb0FycmF5IiwibGVuZ3RoIiwiX24iLCJGIiwicyIsIm4iLCJkb25lIiwidmFsdWUiLCJmIiwiVHlwZUVycm9yIiwibyIsImEiLCJ1IiwiY2FsbCIsIm5leHQiLCJfYXJyYXlMaWtlVG9BcnJheSIsInRvU3RyaW5nIiwic2xpY2UiLCJjb25zdHJ1Y3RvciIsIm5hbWUiLCJmcm9tIiwidGVzdCIsImdldE5lc3RlZFZhbHVlIiwib2JqIiwicGF0aCIsImtleXMiLCJzcGxpdCIsImN1cnJlbnQiLCJfaXRlcmF0b3IiLCJfc3RlcCIsImtleSIsInVuZGVmaW5lZCIsIl90eXBlb2YyIiwiZXJyIiwic2V0TmVzdGVkVmFsdWUiLCJPYmplY3QiLCJhc3NpZ24iLCJfZGVmaW5lUHJvcGVydHkyIiwicmVzdWx0IiwiaSIsIm5leHRLZXkiLCJpc05leHRBcnJheSIsIl90b0NvbnN1bWFibGVBcnJheTIiLCJyZXNvbHZlVmFsdWUiLCJ2YWx1ZXMiLCJpbmNsdWRlcyIsInVzZUZvcm1Db3JlIiwiZXhwb3J0cyIsImNvbmZpZyIsImFyZ3VtZW50cyIsIl9jb25maWckaW5pdGlhbFZhbHVlcyIsImluaXRpYWxWYWx1ZXMiLCJvbkZpbmlzaCIsIm9uRmluaXNoRmFpbGVkIiwib25WYWx1ZXNDaGFuZ2UiLCJvblJlc2V0IiwiX2NvbmZpZyRzaXplIiwic2l6ZSIsIl9jb25maWckbGFiZWxBbGlnbiIsImxhYmVsQWxpZ24iLCJfY29uZmlnJGRpc2FibGVkIiwiZGlzYWJsZWQiLCJfY29uZmlnJGNvbG9uIiwiY29sb24iLCJfY29uZmlnJHJlcXVpcmVkTWFyayIsInJlcXVpcmVkTWFyayIsIl9jb25maWckdmFsaWRhdGVUcmlnZyIsInZhbGlkYXRlVHJpZ2dlciIsIl91c2VTdGF0ZSIsInVzZVN0YXRlIiwiX3VzZVN0YXRlMiIsIl9zbGljZWRUb0FycmF5MiIsInNldFZhbHVlcyIsIl91c2VTdGF0ZTMiLCJfdXNlU3RhdGU0IiwiZXJyb3JzIiwic2V0RXJyb3JzIiwiX3VzZVN0YXRlNSIsIl91c2VTdGF0ZTYiLCJ0b3VjaGVkIiwic2V0VG91Y2hlZCIsIl91c2VTdGF0ZTciLCJfdXNlU3RhdGU4IiwiZmllbGRSdWxlcyIsInNldEZpZWxkUnVsZXMiLCJzZXRGaWVsZFZhbHVlIiwidXNlTWVtb2l6ZWRGbiIsInByZXYiLCJuZXdWYWx1ZXMiLCJuZXdFcnJvcnMiLCJzZXRGaWVsZEVycm9yIiwiZXJyb3IiLCJyZWdpc3RlckZpZWxkIiwicnVsZXMiLCJnZXRGaWVsZFJ1bGVzIiwidW5yZWdpc3RlckZpZWxkIiwibmV3UnVsZXMiLCJ2YWxpZGF0ZUZpZWxkIiwicHJvdmlkZWRWYWx1ZSIsIl9pdGVyYXRvcjIiLCJfc3RlcDIiLCJydWxlIiwicmVxdWlyZWQiLCJtZXNzYWdlIiwiY29uY2F0IiwibWluIiwibWF4IiwicGF0dGVybiIsInZhbGlkYXRvciIsIkVycm9yIiwidmFsaWRhdGVGaWVsZHMiLCJmaWVsZHNSdWxlc1RvVmFsaWRhdGUiLCJpc1ZhbGlkIiwiZm9yRWFjaCIsImhhbmRsZVN1Ym1pdEludGVybmFsIiwiaGFzRXJyb3JzIiwiZmllbGROYW1lIiwiX2l0ZXJhdG9yMyIsIl9zdGVwMyIsInN1Y2Nlc3MiLCJoYW5kbGVTdWJtaXQiLCJ1c2VFdmVudENhbGxiYWNrIiwicHJldmVudERlZmF1bHQiLCJyZXNldEZpZWxkcyIsImhhbmRsZVJlc2V0IiwiZ2V0RmllbGRWYWx1ZSIsImdldEZpZWxkc1ZhbHVlIiwic2V0RmllbGRzVmFsdWUiLCJ1cGRhdGVkVmFsdWVzIiwiZm9ybUluc3RhbmNlIiwidXNlTWVtbyIsInN1Ym1pdCIsImNvcmVDb250ZXh0U2hhcGUiLCJfZGVmYXVsdCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFBQSxJQUFBQSxNQUFBLEdBQUFDLE9BQUE7QUFFQSxJQUFBQyxNQUFBLEdBQUFELE9BQUE7QUFBZ0UsU0FBQUUsMkJBQUFDLENBQUEsRUFBQUMsQ0FBQSxRQUFBQyxDQUFBLHlCQUFBQyxNQUFBLElBQUFILENBQUEsQ0FBQUcsTUFBQSxDQUFBQyxRQUFBLEtBQUFKLENBQUEscUJBQUFFLENBQUEsUUFBQUcsS0FBQSxDQUFBQyxPQUFBLENBQUFOLENBQUEsTUFBQUUsQ0FBQSxHQUFBSywyQkFBQSxDQUFBUCxDQUFBLE1BQUFDLENBQUEsSUFBQUQsQ0FBQSx1QkFBQUEsQ0FBQSxDQUFBUSxNQUFBLElBQUFOLENBQUEsS0FBQUYsQ0FBQSxHQUFBRSxDQUFBLE9BQUFPLEVBQUEsTUFBQUMsQ0FBQSxZQUFBQSxFQUFBLGVBQUFDLENBQUEsRUFBQUQsQ0FBQSxFQUFBRSxDQUFBLFdBQUFBLEVBQUEsV0FBQUgsRUFBQSxJQUFBVCxDQUFBLENBQUFRLE1BQUEsS0FBQUssSUFBQSxXQUFBQSxJQUFBLE1BQUFDLEtBQUEsRUFBQWQsQ0FBQSxDQUFBUyxFQUFBLFVBQUFSLENBQUEsV0FBQUEsRUFBQUQsQ0FBQSxVQUFBQSxDQUFBLEtBQUFlLENBQUEsRUFBQUwsQ0FBQSxnQkFBQU0sU0FBQSxpSkFBQUMsQ0FBQSxFQUFBQyxDQUFBLE9BQUFDLENBQUEsZ0JBQUFSLENBQUEsV0FBQUEsRUFBQSxJQUFBVCxDQUFBLEdBQUFBLENBQUEsQ0FBQWtCLElBQUEsQ0FBQXBCLENBQUEsTUFBQVksQ0FBQSxXQUFBQSxFQUFBLFFBQUFaLENBQUEsR0FBQUUsQ0FBQSxDQUFBbUIsSUFBQSxXQUFBSCxDQUFBLEdBQUFsQixDQUFBLENBQUFhLElBQUEsRUFBQWIsQ0FBQSxLQUFBQyxDQUFBLFdBQUFBLEVBQUFELENBQUEs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Z0IsRUFBaEJBO0VDNUVBLENENkVEO0FBQ0gsQ0FBQztBQUFDLElBQUFDLFFBQUEsR0FBQXRGLE9BQUEsY0FFYUQsV0FBVyIsImZpbGUiOiJjb21wb25lbnRzL1Byb0Zvcm0vY29yZS9ob29rcy91c2VGb3JtQ29yZS5qcyIsInNvdXJjZXNDb250ZW50IjpbbnVsbCwiaW1wb3J0IHsgdXNlU3RhdGUsIHVzZU1lbW8gfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyB1c2VFdmVudENhbGxiYWNrLCB1c2VNZW1vaXplZEZuIH0gZnJvbSAnQDFtb25leS9ob29rcyc7XG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIE5lc3RlZCBwYXRoIGhlbHBlcnMgKGRvdC1ub3RhdGlvbiBzdXBwb3J0LCBlLmcuIFwiaXRlbXMuMC50aXRsZVwiKVxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5mdW5jdGlvbiBnZXROZXN0ZWRWYWx1ZShvYmosIHBhdGgpIHtcbiAgICBjb25zdCBrZXlzID0gcGF0aC5zcGxpdCgnLicpO1xuICAgIGxldCBjdXJyZW50ID0gb2JqO1xuICAgIGZvciAoY29uc3Qga2V5IG9mIGtleXMpIHtcbiAgICAgICAgaWYgKGN1cnJlbnQgPT09IG51bGwgfHwgY3VycmVudCA9PT0gdW5kZWZpbmVkIHx8IHR5cGVvZiBjdXJyZW50ICE9PSAnb2JqZWN0JylcbiAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgIGN1cnJlbnQgPSBjdXJyZW50W2tleV07XG4gICAgfVxuICAgIHJldHVybiBjdXJyZW50O1xufVxuZnVuY3Rpb24gc2V0TmVzdGVkVmFsdWUob2JqLCBwYXRoLCB2YWx1ZSkge1xuICAgIGNvbnN0IGtleXMgPSBwYXRoLnNwbGl0KCcuJyk7XG4gICAgaWYgKGtleXMubGVuZ3RoID09PSAxKVxuICAgICAgICByZXR1cm4gT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCBvYmopLCB7IFtwYXRoXTogdmFsdWUgfSk7XG4gICAgY29uc3QgcmVzdWx0ID0gT2JqZWN0LmFzc2lnbih7fSwgb2JqKTtcbiAgICBsZXQgY3VycmVudCA9IHJlc3VsdDtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGtleXMubGVuZ3RoIC0gMTsgaSsrKSB7XG4gICAgICAgIGNvbnN0IGtleSA9IGtleXNbaV07XG4gICAgICAgIGNvbnN0IG5leHRLZXkgPSBrZXlzW2kgKyAxXTtcbiAgICAgICAgY29uc3QgaXNOZXh0QXJyYXkgPSAvXlxcZCskLy50ZXN0KG5leHRLZXkpO1xuICAgICAgICBpZiAoY3VycmVudFtrZXldID09PSB1bmRlZmluZWQgfHwgY3VycmVudFtrZXldID09PSBudWxsKSB7XG4gICAgICAgICAgICBjdXJyZW50W2tleV0gPSBpc05leHRBcnJheSA/IFtdIDoge307XG4gICAgICAgIH1cbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoY3VycmVudFtrZXldKSkge1xuICAgICAgICAgICAgY3VycmVudFtrZXldID0gWy4uLmN1cnJlbnRba2V5XV07XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBjdXJyZW50W2tleV0gPSBPYmplY3QuYXNzaWduKHt9LCBjdXJyZW50W2tleV0pO1xuICAgICAgICB9XG4gICAgICAgIGN1cnJlbnQgPSBjdXJyZW50W2tleV07XG4gICAgfVxuICAgIGN1cnJlbnRba2V5c1trZXlzLmxlbmd0aCAtIDFdXSA9IHZhbHVlO1xuICAgIHJldHVybiByZXN1bHQ7XG59XG5mdW5jdGlvbiByZXNvbHZlVmFsdWUodmFsdWVzLCBuYW1lKSB7XG4gICAgcmV0dXJuIG5hbWUuaW5jbHVkZXMoJy4nKSA/IGdldE5lc3RlZFZhbHVlKHZhbHVlcywgbmFtZSkgOiB2YWx1ZXNbbmFtZV07XG59XG5leHBvcnQgY29uc3QgdXNlRm9ybUNvcmUgPSAoY29uZmlnID0ge30pID0+IHtcbiAgICBjb25zdCB7IGluaXRpYWxWYWx1ZXMgPSB7fSwgb25GaW5pc2gsIG9uRmluaXNoRmFpbGVkLCBvblZhbHVlc0NoYW5nZSwgb25SZXNldCwgc2l6ZSA9ICdtaWRkbGUnLCBsYWJlbEFsaWduID0gJ2xlZnQnLCBkaXNhYmxlZCA9IGZhbHNlLCBjb2xvbiA9IHRydWUsIHJlcXVpcmVkTWFyayA9IHRydWUsIHZhbGlkYXRlVHJpZ2dlciA9ICdvbkNoYW5nZScsIH0gPSBjb25maWc7XG4gICAgY29uc3QgW3ZhbHVlcywgc2V0VmFsdWVzXSA9IHVzZVN0YXRlKGluaXRpYWxWYWx1ZXMpO1xuICAgIGNvbnN0IFtlcnJvcnMsIHNldEVycm9yc10gPSB1c2VTdGF0ZSh7fSk7XG4gICAgY29uc3QgW3RvdWNoZWQsIHNldFRvdWNoZWRdID0gdXNlU3RhdGUoe30pO1xuICAgIGNvbnN0IFtmaWVsZFJ1bGVzLCBzZXRGaWVsZFJ1bGVzXSA9IHVzZVN0YXRlKHt9KTtcbiAgICBjb25zdCBzZXRGaWVsZFZhbHVlID0gdXNlTWVtb2l6ZWRGbigobmFtZSwgdmFsdWUpID0+IHtcbiAgICAgICAgc2V0VmFsdWVzKChwcmV2KSA9PiB7XG4gICAgICAgICAgICBjb25zdCBuZXdWYWx1ZXMgPSBuYW1lLmluY2x1ZGVzKCcuJylcbiAgICAgICAgICAgICAgICA/IHNldE5lc3RlZFZhbHVlKHByZXYsIG5hbWUsIHZhbHVlKVxuICAgICAgICAgICAgICAgIDogT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCBwcmV2KSwgeyBbbmFtZV06IHZhbHVlIH0pO1xuICAgICAgICAgICAgb25WYWx1ZXNDaGFuZ2UgPT09IG51bGwgfHwgb25WYWx1ZXNDaGFuZ2UgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9uVmFsdWVzQ2hhbmdlKHsgW25hbWVdOiB2YWx1ZSB9LCBuZXdWYWx1ZXMpO1xuICAgICAgICAgICAgcmV0dXJuIG5ld1ZhbHVlcztcbiAgICAgICAgfSk7XG4gICAgICAgIGlmICh2YWx1ZSAhPT0gJycgJiYgdmFsdWUgIT09IG51bGwgJiYgdmFsdWUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgc2V0RXJyb3JzKChwcmV2KSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKCFwcmV2W25hbWVdKVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gcHJldjtcbiAgICAgICAgICAgICAgICBjb25zdCBuZXdFcnJvcnMgPSBPYmplY3QuYXNzaWduKHt9LCBwcmV2KTtcbiAgICAgICAgICAgICAgICBkZWxldGUgbmV3RXJyb3JzW25hbWVdO1xuICAgICAgICAgICAgICAgIHJldHVybiBuZXdFcnJvcnM7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH0pO1xuICAgIGNvbnN0IHNldEZpZWxkRXJyb3IgPSB1c2VNZW1vaXplZEZuKChuYW1lLCBlcnJvcikgPT4ge1xuICAgICAgICBzZXRFcnJvcnMoKHByZXYpID0+IHtcbiAgICAgICAgICAgIGlmIChlcnJvciA9PT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIGlmICghcHJldltuYW1lXSlcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHByZXY7XG4gICAgICAgICAgICAgICAgY29uc3QgbmV3RXJyb3JzID0gT2JqZWN0LmFzc2lnbih7fSwgcHJldik7XG4gICAgICAgICAgICAgICAgZGVsZXRlIG5ld0Vycm9yc1tuYW1lXTtcbiAgICAgICAgICAgICAgICByZXR1cm4gbmV3RXJyb3JzO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgcHJldiksIHsgW25hbWVdOiBlcnJvciB9KTtcbiAgICAgICAgfSk7XG4gICAgfSk7XG4gICAgY29uc3QgcmVnaXN0ZXJGaWVsZCA9IHVzZU1lbW9pemVkRm4oKG5hbWUsIHJ1bGVzKSA9PiB7XG4gICAgICAgIHNldEZpZWxkUnVsZXMoKHByZXYpID0+IChPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIHByZXYpLCB7IFtuYW1lXTogcnVsZXMgfSkpKTtcbiAgICB9KTtcbiAgICBjb25zdCBnZXRGaWVsZFJ1bGVzID0gdXNlTWVtb2l6ZWRGbigobmFtZSkgPT4ge1xuICAgICAgICByZXR1cm4gZmllbGRSdWxlc1tuYW1lXTtcbiAgICB9KTtcbiAgICBjb25zdCB1bnJlZ2lzdGVyRmllbGQgPSB1c2VNZW1vaXplZEZuKChuYW1lKSA9PiB7XG4gICAgICAgIHNldEZpZWxkUnVsZXMoKHByZXYpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IG5ld1J1bGVzID0gT2JqZWN0LmFzc2lnbih7fSwgcHJldik7XG4gICAgICAgICAgICBkZWxldGUgbmV3UnVsZXNbbmFtZV07XG4gICAgICAgICAgICByZXR1cm4gbmV3UnVsZXM7XG4gICAgICAgIH0pO1xuICAgIH0pO1xuICAgIGNvbnN0IHZhbGlkYXRlRmllbGQgPSB1c2VNZW1vaXplZEZuKChuYW1lLCBydWxlcyA9IFtdLCBwcm92aWRlZFZhbHVlKSA9PiB7XG4gICAgICAgIGNvbnN0IHZhbHVlID0gcHJvdmlkZWRWYWx1ZSAhPT0gdW5kZWZpbmVkID8gcHJvdmlkZWRWYWx1ZSA6IHJlc29sdmVWYWx1ZSh2YWx1ZXMsIG5hbWUpO1xuICAgICAgICBmb3IgKGNvbnN0IHJ1bGUgb2YgcnVsZXMpIHtcbiAgICAgICAgICAgIGlmIChydWxlLnJlcXVpcmVkICYmXG4gICAgICAgICAgICAgICAgKHZhbHVlID09PSB1bmRlZmluZWQgfHwgdmFsdWUgPT09IG51bGwgfHwgdmFsdWUgPT09ICcnKSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGVycm9yID0gcnVsZS5tZXNzYWdlIHx8IGAke25hbWV9IGlzIHJlcXVpcmVkYDtcbiAgICAgICAgICAgICAgICBzZXRGaWVsZEVycm9yKG5hbWUsIGVycm9yKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAocnVsZS5taW4gJiYgdHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJyAmJiB2YWx1ZS5sZW5ndGggPCBydWxlLm1pbikge1xuICAgICAgICAgICAgICAgIGNvbnN0IGVycm9yID0gcnVsZS5tZXNzYWdlIHx8IGAke25hbWV9IG11c3QgYmUgYXQgbGVhc3QgJHtydWxlLm1pbn0gY2hhcmFjdGVyc2A7XG4gICAgICAgICAgICAgICAgc2V0RmllbGRFcnJvcihuYW1lLCBlcnJvcik7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHJ1bGUubWF4ICYmIHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycgJiYgdmFsdWUubGVuZ3RoID4gcnVsZS5tYXgpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBlcnJvciA9IHJ1bGUubWVzc2FnZSB8fCBgJHtuYW1lfSBtdXN0IGJlIG5vIG1vcmUgdGhhbiAke3J1bGUubWF4fSBjaGFyYWN0ZXJzYDtcbiAgICAgICAgICAgICAgICBzZXRGaWVsZEVycm9yKG5hbWUsIGVycm9yKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAocnVsZS5wYXR0ZXJuICYmIHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycgJiYgIXJ1bGUucGF0dGVybi50ZXN0KHZhbHVlKSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGVycm9yID0gcnVsZS5tZXNzYWdlIHx8IGAke25hbWV9IGZvcm1hdCBpcyBpbnZhbGlkYDtcbiAgICAgICAgICAgICAgICBzZXRGaWVsZEVycm9yKG5hbWUsIGVycm9yKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAocnVsZS52YWxpZGF0b3IgJiYgdHlwZW9mIHJ1bGUudmFsaWRhdG9yID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0gcnVsZS52YWxpZGF0b3IodmFsdWUsIHZhbHVlcyk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChyZXN1bHQgIT09IHRydWUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHNldEZpZWxkRXJyb3IobmFtZSwgdHlwZW9mIHJlc3VsdCA9PT0gJ3N0cmluZycgPyByZXN1bHQgOiAnVmFsaWRhdGlvbiBmYWlsZWQnKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjYXRjaCAoZXJyKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG1lc3NhZ2UgPSBlcnIgaW5zdGFuY2VvZiBFcnJvciA/IGVyci5tZXNzYWdlIDogJ1ZhbGlkYXRpb24gZXJyb3InO1xuICAgICAgICAgICAgICAgICAgICBzZXRGaWVsZEVycm9yKG5hbWUsIG1lc3NhZ2UpO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmIChlcnJvcnNbbmFtZV0pIHtcbiAgICAgICAgICAgIHNldEZpZWxkRXJyb3IobmFtZSwgbnVsbCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfSk7XG4gICAgY29uc3QgdmFsaWRhdGVGaWVsZHMgPSB1c2VNZW1vaXplZEZuKChmaWVsZHNSdWxlc1RvVmFsaWRhdGUgPSBmaWVsZFJ1bGVzKSA9PiB7XG4gICAgICAgIGxldCBpc1ZhbGlkID0gdHJ1ZTtcbiAgICAgICAgT2JqZWN0LmtleXMoZmllbGRzUnVsZXNUb1ZhbGlkYXRlKS5mb3JFYWNoKChuYW1lKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBydWxlcyA9IGZpZWxkc1J1bGVzVG9WYWxpZGF0ZVtuYW1lXTtcbiAgICAgICAgICAgIGlmICghdmFsaWRhdGVGaWVsZChuYW1lLCBydWxlcykpIHtcbiAgICAgICAgICAgICAgICBpc1ZhbGlkID0gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gaXNWYWxpZDtcbiAgICB9KTtcbiAgICBjb25zdCBoYW5kbGVTdWJtaXRJbnRlcm5hbCA9IHVzZU1lbW9pemVkRm4oKCkgPT4ge1xuICAgICAgICBsZXQgaGFzRXJyb3JzID0gZmFsc2U7XG4gICAgICAgIGNvbnN0IG5ld0Vycm9ycyA9IHt9O1xuICAgICAgICBPYmplY3Qua2V5cyhmaWVsZFJ1bGVzKS5mb3JFYWNoKChmaWVsZE5hbWUpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHJ1bGVzID0gZmllbGRSdWxlc1tmaWVsZE5hbWVdO1xuICAgICAgICAgICAgY29uc3QgdmFsdWUgPSByZXNvbHZlVmFsdWUodmFsdWVzLCBmaWVsZE5hbWUpO1xuICAgICAgICAgICAgZm9yIChjb25zdCBydWxlIG9mIHJ1bGVzKSB7XG4gICAgICAgICAgICAgICAgaWYgKHJ1bGUucmVxdWlyZWQgJiZcbiAgICAgICAgICAgICAgICAgICAgKHZhbHVlID09PSB1bmRlZmluZWQgfHwgdmFsdWUgPT09IG51bGwgfHwgdmFsdWUgPT09ICcnKSkge1xuICAgICAgICAgICAgICAgICAgICBuZXdFcnJvcnNbZmllbGROYW1lXSA9IHJ1bGUubWVzc2FnZSB8fCBgJHtmaWVsZE5hbWV9IGlzIHJlcXVpcmVkYDtcbiAgICAgICAgICAgICAgICAgICAgaGFzRXJyb3JzID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmIChydWxlLm1pbiAmJiB0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnICYmIHZhbHVlLmxlbmd0aCA8IHJ1bGUubWluKSB7XG4gICAgICAgICAgICAgICAgICAgIG5ld0Vycm9yc1tmaWVsZE5hbWVdID1cbiAgICAgICAgICAgICAgICAgICAgICAgIHJ1bGUubWVzc2FnZSB8fCBgJHtmaWVsZE5hbWV9IG11c3QgYmUgYXQgbGVhc3QgJHtydWxlLm1pbn0gY2hhcmFjdGVyc2A7XG4gICAgICAgICAgICAgICAgICAgIGhhc0Vycm9ycyA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAocnVsZS5tYXggJiYgdHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJyAmJiB2YWx1ZS5sZW5ndGggPiBydWxlLm1heCkge1xuICAgICAgICAgICAgICAgICAgICBuZXdFcnJvcnNbZmllbGROYW1lXSA9XG4gICAgICAgICAgICAgICAgICAgICAgICBydWxlLm1lc3NhZ2UgfHxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBgJHtmaWVsZE5hbWV9IG11c3QgYmUgbm8gbW9yZSB0aGFuICR7cnVsZS5tYXh9IGNoYXJhY3RlcnNgO1xuICAgICAgICAgICAgICAgICAgICBoYXNFcnJvcnMgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKHJ1bGUucGF0dGVybiAmJlxuICAgICAgICAgICAgICAgICAgICB0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnICYmXG4gICAgICAgICAgICAgICAgICAgICFydWxlLnBhdHRlcm4udGVzdCh2YWx1ZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgbmV3RXJyb3JzW2ZpZWxkTmFtZV0gPSBydWxlLm1lc3NhZ2UgfHwgYCR7ZmllbGROYW1lfSBmb3JtYXQgaXMgaW52YWxpZGA7XG4gICAgICAgICAgICAgICAgICAgIGhhc0Vycm9ycyA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAocnVsZS52YWxpZGF0b3IgJiYgdHlwZW9mIHJ1bGUudmFsaWRhdG9yID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCByZXN1bHQgPSBydWxlLnZhbGlkYXRvcih2YWx1ZSwgdmFsdWVzKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyZXN1bHQgIT09IHRydWUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdFcnJvcnNbZmllbGROYW1lXSA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGVvZiByZXN1bHQgPT09ICdzdHJpbmcnID8gcmVzdWx0IDogJ1ZhbGlkYXRpb24gZmFpbGVkJztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYXNFcnJvcnMgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGNhdGNoIChlcnIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG5ld0Vycm9yc1tmaWVsZE5hbWVdID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnIgaW5zdGFuY2VvZiBFcnJvciA/IGVyci5tZXNzYWdlIDogJ1ZhbGlkYXRpb24gZXJyb3InO1xuICAgICAgICAgICAgICAgICAgICAgICAgaGFzRXJyb3JzID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgc2V0RXJyb3JzKG5ld0Vycm9ycyk7XG4gICAgICAgIGlmICghaGFzRXJyb3JzKSB7XG4gICAgICAgICAgICBvbkZpbmlzaCA9PT0gbnVsbCB8fCBvbkZpbmlzaCA9PT0gdm9pZCAwID8gdm9pZCAwIDogb25GaW5pc2godmFsdWVzKTtcbiAgICAgICAgICAgIHJldHVybiB7IHN1Y2Nlc3M6IHRydWUsIHZhbHVlcyB9O1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgb25GaW5pc2hGYWlsZWQgPT09IG51bGwgfHwgb25GaW5pc2hGYWlsZWQgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9uRmluaXNoRmFpbGVkKHsgdmFsdWVzLCBlcnJvcnM6IG5ld0Vycm9ycyB9KTtcbiAgICAgICAgICAgIHJldHVybiB7IHN1Y2Nlc3M6IGZhbHNlLCBlcnJvcnM6IG5ld0Vycm9ycyB9O1xuICAgICAgICB9XG4gICAgfSk7XG4gICAgY29uc3QgaGFuZGxlU3VibWl0ID0gdXNlRXZlbnRDYWxsYmFjaygoZSkgPT4ge1xuICAgICAgICBlID09PSBudWxsIHx8IGUgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgcmV0dXJuIGhhbmRsZVN1Ym1pdEludGVybmFsKCk7XG4gICAgfSk7XG4gICAgY29uc3QgcmVzZXRGaWVsZHMgPSB1c2VNZW1vaXplZEZuKCgpID0+IHtcbiAgICAgICAgc2V0VmFsdWVzKGluaXRpYWxWYWx1ZXMpO1xuICAgICAgICBzZXRFcnJvcnMoe30pO1xuICAgICAgICBzZXRUb3VjaGVkKHt9KTtcbiAgICAgICAgb25SZXNldCA9PT0gbnVsbCB8fCBvblJlc2V0ID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvblJlc2V0KCk7XG4gICAgfSk7XG4gICAgY29uc3QgaGFuZGxlUmVzZXQgPSB1c2VFdmVudENhbGxiYWNrKChlKSA9PiB7XG4gICAgICAgIGUgPT09IG51bGwgfHwgZSA9PT0gdm9pZCAwID8gdm9pZCAwIDogZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICByZXNldEZpZWxkcygpO1xuICAgIH0pO1xuICAgIGNvbnN0IGdldEZpZWxkVmFsdWUgPSB1c2VNZW1vaXplZEZuKChuYW1lKSA9PiB7XG4gICAgICAgIHJldHVybiByZXNvbHZlVmFsdWUodmFsdWVzLCBuYW1lKTtcbiAgICB9KTtcbiAgICBjb25zdCBnZXRGaWVsZHNWYWx1ZSA9IHVzZU1lbW9pemVkRm4oKCkgPT4ge1xuICAgICAgICByZXR1cm4gdmFsdWVzO1xuICAgIH0pO1xuICAgIGNvbnN0IHNldEZpZWxkc1ZhbHVlID0gdXNlTWVtb2l6ZWRGbigobmV3VmFsdWVzKSA9PiB7XG4gICAgICAgIHNldFZhbHVlcygocHJldikgPT4ge1xuICAgICAgICAgICAgY29uc3QgdXBkYXRlZFZhbHVlcyA9IE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgcHJldiksIG5ld1ZhbHVlcyk7XG4gICAgICAgICAgICBvblZhbHVlc0NoYW5nZSA9PT0gbnVsbCB8fCBvblZhbHVlc0NoYW5nZSA9PT0gdm9pZCAwID8gdm9pZCAwIDogb25WYWx1ZXNDaGFuZ2UobmV3VmFsdWVzLCB1cGRhdGVkVmFsdWVzKTtcbiAgICAgICAgICAgIHJldHVybiB1cGRhdGVkVmFsdWVzO1xuICAgICAgICB9KTtcbiAgICB9KTtcbiAgICBjb25zdCBmb3JtSW5zdGFuY2UgPSB1c2VNZW1vKCgpID0+ICh7XG4gICAgICAgIHN1Ym1pdDogaGFuZGxlU3VibWl0SW50ZXJuYWwsXG4gICAgICAgIHJlc2V0RmllbGRzLFxuICAgICAgICBnZXRGaWVsZFZhbHVlLFxuICAgICAgICBnZXRGaWVsZHNWYWx1ZSxcbiAgICAgICAgc2V0RmllbGRzVmFsdWUsXG4gICAgICAgIHNldEZpZWxkVmFsdWUsXG4gICAgICAgIHZhbGlkYXRlRmllbGRzLFxuICAgIH0pLCBbXG4gICAgICAgIGhhbmRsZVN1Ym1pdEludGVybmFsLFxuICAgICAgICByZXNldEZpZWxkcyxcbiAgICAgICAgZ2V0RmllbGRWYWx1ZSxcbiAgICAgICAgZ2V0RmllbGRzVmFsdWUsXG4gICAgICAgIHNldEZpZWxkc1ZhbHVlLFxuICAgICAgICBzZXRGaWVsZFZhbHVlLFxuICAgICAgICB2YWxpZGF0ZUZpZWxkcyxcbiAgICBdKTtcbiAgICBjb25zdCBjb3JlQ29udGV4dFNoYXBlID0gdXNlTWVtbygoKSA9PiAoe1xuICAgICAgICB2YWx1ZXMsXG4gICAgICAgIGVycm9ycyxcbiAgICAgICAgdG91Y2hlZCxcbiAgICAgICAgZm9ybUluc3RhbmNlLFxuICAgICAgICBzZXRGaWVsZFZhbHVlLFxuICAgICAgICBzZXRGaWVsZEVycm9yLFxuICAgICAgICB2YWxpZGF0ZUZpZWxkLFxuICAgICAgICByZWdpc3RlckZpZWxkLFxuICAgICAgICB1bnJlZ2lzdGVyRmllbGQsXG4gICAgICAgIHNpemUsXG4gICAgICAgIGxhYmVsQWxpZ24sXG4gICAgICAgIGRpc2FibGVkLFxuICAgICAgICBjb2xvbixcbiAgICAgICAgcmVxdWlyZWRNYXJrLFxuICAgICAgICB2YWxpZGF0ZVRyaWdnZXIsXG4gICAgfSksIFtcbiAgICAgICAgdmFsdWVzLFxuICAgICAgICBlcnJvcnMsXG4gICAgICAgIHRvdWNoZWQsXG4gICAgICAgIGZvcm1JbnN0YW5jZSxcbiAgICAgICAgc2V0RmllbGRWYWx1ZSxcbiAgICAgICAgc2V0RmllbGRFcnJvcixcbiAgICAgICAgdmFsaWRhdGVGaWVsZCxcbiAgICAgICAgcmVnaXN0ZXJGaWVsZCxcbiAgICAgICAgdW5yZWdpc3RlckZpZWxkLFxuICAgICAgICBzaXplLFxuICAgICAgICBsYWJlbEFsaWduLFxuICAgICAgICBkaXNhYmxlZCxcbiAgICAgICAgY29sb24sXG4gICAgICAgIHJlcXVpcmVkTWFyayxcbiAgICAgICAgdmFsaWRhdGVUcmlnZ2VyLFxuICAgIF0pO1xuICAgIHJldHVybiB7XG4gICAgICAgIHZhbHVlcyxcbiAgICAgICAgZXJyb3JzLFxuICAgICAgICB0b3VjaGVkLFxuICAgICAgICBmaWVsZFJ1bGVzLFxuICAgICAgICBnZXRGaWVsZFJ1bGVzLFxuICAgICAgICBzZXRGaWVsZFZhbHVlLFxuICAgICAgICBzZXRGaWVsZEVycm9yLFxuICAgICAgICBzZXRGaWVsZHNWYWx1ZSxcbiAgICAgICAgZ2V0RmllbGRWYWx1ZSxcbiAgICAgICAgZ2V0RmllbGRzVmFsdWUsXG4gICAgICAgIHZhbGlkYXRlRmllbGQsXG4gICAgICAgIHZhbGlkYXRlRmllbGRzLFxuICAgICAgICByZWdpc3RlckZpZWxkLFxuICAgICAgICB1bnJlZ2lzdGVyRmllbGQsXG4gICAgICAgIGhhbmRsZVN1Ym1pdCxcbiAgICAgICAgaGFuZGxlUmVzZXQsXG4gICAgICAgIHJlc2V0RmllbGRzLFxuICAgICAgICBmb3JtSW5zdGFuY2UsXG4gICAgICAgIGNvcmVDb250ZXh0U2hhcGUsXG4gICAgfTtcbn07XG5leHBvcnQgZGVmYXVsdCB1c2VGb3JtQ29yZTsiXSwic291cmNlUm9vdCI6Ii4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYyJ9
226
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvUHJvRm9ybS9jb3JlL3NyYy9jb21wb25lbnRzL1Byb0Zvcm0vY29yZS9ob29rcy91c2VGb3JtQ29yZS50cyIsImNvbXBvbmVudHMvUHJvRm9ybS9jb3JlL2hvb2tzL3VzZUZvcm1Db3JlLmpzIl0sIm5hbWVzIjpbIl9yZWFjdCIsInJlcXVpcmUiLCJfdXNlRXZlbnRDYWxsYmFjayIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfdXNlTWVtb2l6ZWRGbiIsIl9wYXRoVXRpbHMiLCJfcnVuUnVsZXMiLCJ1c2VGb3JtQ29yZSIsImV4cG9ydHMiLCJjb25maWciLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJ1bmRlZmluZWQiLCJfY29uZmlnJGluaXRpYWxWYWx1ZXMiLCJpbml0aWFsVmFsdWVzIiwib25GaW5pc2giLCJvbkZpbmlzaEZhaWxlZCIsIm9uVmFsdWVzQ2hhbmdlIiwib25SZXNldCIsIl9jb25maWckc2l6ZSIsInNpemUiLCJfY29uZmlnJGxhYmVsQWxpZ24iLCJsYWJlbEFsaWduIiwiX2NvbmZpZyRkaXNhYmxlZCIsImRpc2FibGVkIiwiX2NvbmZpZyRjb2xvbiIsImNvbG9uIiwiX2NvbmZpZyRyZXF1aXJlZE1hcmsiLCJyZXF1aXJlZE1hcmsiLCJfY29uZmlnJHZhbGlkYXRlVHJpZ2ciLCJ2YWxpZGF0ZVRyaWdnZXIiLCJfdXNlU3RhdGUiLCJ1c2VTdGF0ZSIsIl91c2VTdGF0ZTIiLCJfc2xpY2VkVG9BcnJheTIiLCJ2YWx1ZXMiLCJzZXRWYWx1ZXMiLCJfdXNlU3RhdGUzIiwiX3VzZVN0YXRlNCIsImVycm9ycyIsInNldEVycm9ycyIsIl91c2VTdGF0ZTUiLCJfdXNlU3RhdGU2IiwidG91Y2hlZCIsInNldFRvdWNoZWQiLCJfdXNlU3RhdGU3IiwiX3VzZVN0YXRlOCIsImZpZWxkUnVsZXMiLCJzZXRGaWVsZFJ1bGVzIiwic2V0RmllbGRWYWx1ZSIsInVzZU1lbW9pemVkRm4iLCJuYW1lIiwidmFsdWUiLCJwcmV2IiwibmV3VmFsdWVzIiwiaW5jbHVkZXMiLCJzZXROZXN0ZWRWYWx1ZSIsIk9iamVjdCIsImFzc2lnbiIsIl9kZWZpbmVQcm9wZXJ0eTIiLCJuZXdFcnJvcnMiLCJzZXRGaWVsZEVycm9yIiwiZXJyb3IiLCJyZWdpc3RlckZpZWxkIiwicnVsZXMiLCJnZXRGaWVsZFJ1bGVzIiwidW5yZWdpc3RlckZpZWxkIiwibmV3UnVsZXMiLCJ2YWxpZGF0ZUZpZWxkIiwicHJvdmlkZWRWYWx1ZSIsInJlc29sdmVWYWx1ZSIsInJ1blJ1bGVzU3luYyIsInZhbGlkYXRlRmllbGRzIiwiZmllbGRzUnVsZXNUb1ZhbGlkYXRlIiwiaXNWYWxpZCIsImtleXMiLCJmb3JFYWNoIiwiaGFuZGxlU3VibWl0SW50ZXJuYWwiLCJoYXNFcnJvcnMiLCJmaWVsZE5hbWUiLCJzdWNjZXNzIiwiaGFuZGxlU3VibWl0IiwidXNlRXZlbnRDYWxsYmFjayIsImUiLCJwcmV2ZW50RGVmYXVsdCIsInJlc2V0RmllbGRzIiwiaGFuZGxlUmVzZXQiLCJnZXRGaWVsZFZhbHVlIiwiZ2V0RmllbGRzVmFsdWUiLCJzZXRGaWVsZHNWYWx1ZSIsInVwZGF0ZWRWYWx1ZXMiLCJmb3JtSW5zdGFuY2UiLCJ1c2VNZW1vIiwic3VibWl0IiwiY29yZUNvbnRleHRTaGFwZSIsIl9kZWZhdWx0Il0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBQSxJQUFBQSxNQUFBLEdBQUFDLE9BQUE7QUFFQSxJQUFBQyxpQkFBQSxHQUFBQyxzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQUcsY0FBQSxHQUFBRCxzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQUksVUFBQSxHQUFBSixPQUFBO0FBQ0EsSUFBQUssU0FBQSxHQUFBTCxPQUFBO0FBUU8sSUFBTU0sV0FBVyxHQUFBQyxPQUFBLENBQUFELFdBQUEsR0FBRyxTQUFkQSxXQUFXQSxDQUFBLEVBQXlEO0VBQUEsSUFBckRFLE1BQUEsR0FBQUMsU0FBQSxDQUFBQyxNQUFBLFFBQUFELFNBQUEsUUFBQUUsU0FBQSxHQUFBRixTQUFBLE1BQTRC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UEksVUFBVSxFQUFWQSxVQUFVO0lBQ1ZrQixhQUFhLEVBQWJBLGFBQWE7SUFDYmhCLGFBQWEsRUFBYkEsYUFBYTtJQUNiWSxhQUFhLEVBQWJBLGFBQWE7SUFDYjRCLGNBQWMsRUFBZEEsY0FBYztJQUNkRixhQUFhLEVBQWJBLGFBQWE7SUFDYkMsY0FBYyxFQUFkQSxjQUFjO0lBQ2RwQixhQUFhLEVBQWJBLGFBQWE7SUFDYkksY0FBYyxFQUFkQSxjQUFjO0lBQ2RULGFBQWEsRUFBYkEsYUFBYTtJQUNiRyxlQUFlLEVBQWZBLGVBQWU7SUFDZmUsWUFBWSxFQUFaQSxZQUFZO0lBQ1pLLFdBQVcsRUFBWEEsV0FBVztJQUNYRCxXQUFXLEVBQVhBLFdBQVc7SUFDWE0sWUFBWSxFQUFaQSxZQUFZO0lBQ1pHLGdCQUFnQixFQUFoQkE7RUNyREEsQ0RzREQ7QUFDSCxDQUFDO0FBQUMsSUFBQUMsUUFBQSxHQUFBdkYsT0FBQSxjQUVhRCxXQUFXIiwiZmlsZSI6ImNvbXBvbmVudHMvUHJvRm9ybS9jb3JlL2hvb2tzL3VzZUZvcm1Db3JlLmpzIiwic291cmNlc0NvbnRlbnQiOltudWxsLCJpbXBvcnQgeyB1c2VTdGF0ZSwgdXNlTWVtbyB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB1c2VFdmVudENhbGxiYWNrIGZyb20gJ0AxbW9uZXkvaG9va3MvdXNlRXZlbnRDYWxsYmFjayc7XG5pbXBvcnQgdXNlTWVtb2l6ZWRGbiBmcm9tICdAMW1vbmV5L2hvb2tzL3VzZU1lbW9pemVkRm4nO1xuaW1wb3J0IHsgcmVzb2x2ZVZhbHVlLCBzZXROZXN0ZWRWYWx1ZSB9IGZyb20gJy4uL3BhdGhVdGlscyc7XG5pbXBvcnQgeyBydW5SdWxlc1N5bmMgfSBmcm9tICcuLi9ydW5SdWxlcyc7XG5leHBvcnQgY29uc3QgdXNlRm9ybUNvcmUgPSAoY29uZmlnID0ge30pID0+IHtcbiAgICBjb25zdCB7IGluaXRpYWxWYWx1ZXMgPSB7fSwgb25GaW5pc2gsIG9uRmluaXNoRmFpbGVkLCBvblZhbHVlc0NoYW5nZSwgb25SZXNldCwgc2l6ZSA9ICdtaWRkbGUnLCBsYWJlbEFsaWduID0gJ2xlZnQnLCBkaXNhYmxlZCA9IGZhbHNlLCBjb2xvbiA9IHRydWUsIHJlcXVpcmVkTWFyayA9IHRydWUsIHZhbGlkYXRlVHJpZ2dlciA9ICdvbkNoYW5nZScsIH0gPSBjb25maWc7XG4gICAgY29uc3QgW3ZhbHVlcywgc2V0VmFsdWVzXSA9IHVzZVN0YXRlKGluaXRpYWxWYWx1ZXMpO1xuICAgIGNvbnN0IFtlcnJvcnMsIHNldEVycm9yc10gPSB1c2VTdGF0ZSh7fSk7XG4gICAgY29uc3QgW3RvdWNoZWQsIHNldFRvdWNoZWRdID0gdXNlU3RhdGUoe30pO1xuICAgIGNvbnN0IFtmaWVsZFJ1bGVzLCBzZXRGaWVsZFJ1bGVzXSA9IHVzZVN0YXRlKHt9KTtcbiAgICBjb25zdCBzZXRGaWVsZFZhbHVlID0gdXNlTWVtb2l6ZWRGbigobmFtZSwgdmFsdWUpID0+IHtcbiAgICAgICAgc2V0VmFsdWVzKChwcmV2KSA9PiB7XG4gICAgICAgICAgICBjb25zdCBuZXdWYWx1ZXMgPSBuYW1lLmluY2x1ZGVzKCcuJylcbiAgICAgICAgICAgICAgICA/IHNldE5lc3RlZFZhbHVlKHByZXYsIG5hbWUsIHZhbHVlKVxuICAgICAgICAgICAgICAgIDogT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCBwcmV2KSwgeyBbbmFtZV06IHZhbHVlIH0pO1xuICAgICAgICAgICAgb25WYWx1ZXNDaGFuZ2UgPT09IG51bGwgfHwgb25WYWx1ZXNDaGFuZ2UgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9uVmFsdWVzQ2hhbmdlKHsgW25hbWVdOiB2YWx1ZSB9LCBuZXdWYWx1ZXMpO1xuICAgICAgICAgICAgcmV0dXJuIG5ld1ZhbHVlcztcbiAgICAgICAgfSk7XG4gICAgICAgIGlmICh2YWx1ZSAhPT0gJycgJiYgdmFsdWUgIT09IG51bGwgJiYgdmFsdWUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgc2V0RXJyb3JzKChwcmV2KSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKCFwcmV2W25hbWVdKVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gcHJldjtcbiAgICAgICAgICAgICAgICBjb25zdCBuZXdFcnJvcnMgPSBPYmplY3QuYXNzaWduKHt9LCBwcmV2KTtcbiAgICAgICAgICAgICAgICBkZWxldGUgbmV3RXJyb3JzW25hbWVdO1xuICAgICAgICAgICAgICAgIHJldHVybiBuZXdFcnJvcnM7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH0pO1xuICAgIGNvbnN0IHNldEZpZWxkRXJyb3IgPSB1c2VNZW1vaXplZEZuKChuYW1lLCBlcnJvcikgPT4ge1xuICAgICAgICBzZXRFcnJvcnMoKHByZXYpID0+IHtcbiAgICAgICAgICAgIGlmIChlcnJvciA9PT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIGlmICghcHJldltuYW1lXSlcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHByZXY7XG4gICAgICAgICAgICAgICAgY29uc3QgbmV3RXJyb3JzID0gT2JqZWN0LmFzc2lnbih7fSwgcHJldik7XG4gICAgICAgICAgICAgICAgZGVsZXRlIG5ld0Vycm9yc1tuYW1lXTtcbiAgICAgICAgICAgICAgICByZXR1cm4gbmV3RXJyb3JzO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgcHJldiksIHsgW25hbWVdOiBlcnJvciB9KTtcbiAgICAgICAgfSk7XG4gICAgfSk7XG4gICAgY29uc3QgcmVnaXN0ZXJGaWVsZCA9IHVzZU1lbW9pemVkRm4oKG5hbWUsIHJ1bGVzKSA9PiB7XG4gICAgICAgIHNldEZpZWxkUnVsZXMoKHByZXYpID0+IChPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIHByZXYpLCB7IFtuYW1lXTogcnVsZXMgfSkpKTtcbiAgICB9KTtcbiAgICBjb25zdCBnZXRGaWVsZFJ1bGVzID0gdXNlTWVtb2l6ZWRGbigobmFtZSkgPT4ge1xuICAgICAgICByZXR1cm4gZmllbGRSdWxlc1tuYW1lXTtcbiAgICB9KTtcbiAgICBjb25zdCB1bnJlZ2lzdGVyRmllbGQgPSB1c2VNZW1vaXplZEZuKChuYW1lKSA9PiB7XG4gICAgICAgIHNldEZpZWxkUnVsZXMoKHByZXYpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IG5ld1J1bGVzID0gT2JqZWN0LmFzc2lnbih7fSwgcHJldik7XG4gICAgICAgICAgICBkZWxldGUgbmV3UnVsZXNbbmFtZV07XG4gICAgICAgICAgICByZXR1cm4gbmV3UnVsZXM7XG4gICAgICAgIH0pO1xuICAgIH0pO1xuICAgIGNvbnN0IHZhbGlkYXRlRmllbGQgPSB1c2VNZW1vaXplZEZuKChuYW1lLCBydWxlcyA9IFtdLCBwcm92aWRlZFZhbHVlKSA9PiB7XG4gICAgICAgIGNvbnN0IHZhbHVlID0gcHJvdmlkZWRWYWx1ZSAhPT0gdW5kZWZpbmVkID8gcHJvdmlkZWRWYWx1ZSA6IHJlc29sdmVWYWx1ZSh2YWx1ZXMsIG5hbWUpO1xuICAgICAgICBjb25zdCBlcnJvciA9IHJ1blJ1bGVzU3luYyhuYW1lLCB2YWx1ZSwgdmFsdWVzLCBydWxlcyk7XG4gICAgICAgIGlmIChlcnJvciAhPT0gbnVsbCkge1xuICAgICAgICAgICAgc2V0RmllbGRFcnJvcihuYW1lLCBlcnJvcik7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGVycm9yc1tuYW1lXSkge1xuICAgICAgICAgICAgc2V0RmllbGRFcnJvcihuYW1lLCBudWxsKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9KTtcbiAgICBjb25zdCB2YWxpZGF0ZUZpZWxkcyA9IHVzZU1lbW9pemVkRm4oKGZpZWxkc1J1bGVzVG9WYWxpZGF0ZSA9IGZpZWxkUnVsZXMpID0+IHtcbiAgICAgICAgbGV0IGlzVmFsaWQgPSB0cnVlO1xuICAgICAgICBPYmplY3Qua2V5cyhmaWVsZHNSdWxlc1RvVmFsaWRhdGUpLmZvckVhY2goKG5hbWUpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHJ1bGVzID0gZmllbGRzUnVsZXNUb1ZhbGlkYXRlW25hbWVdO1xuICAgICAgICAgICAgaWYgKCF2YWxpZGF0ZUZpZWxkKG5hbWUsIHJ1bGVzKSkge1xuICAgICAgICAgICAgICAgIGlzVmFsaWQgPSBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiBpc1ZhbGlkO1xuICAgIH0pO1xuICAgIGNvbnN0IGhhbmRsZVN1Ym1pdEludGVybmFsID0gdXNlTWVtb2l6ZWRGbigoKSA9PiB7XG4gICAgICAgIGxldCBoYXNFcnJvcnMgPSBmYWxzZTtcbiAgICAgICAgY29uc3QgbmV3RXJyb3JzID0ge307XG4gICAgICAgIE9iamVjdC5rZXlzKGZpZWxkUnVsZXMpLmZvckVhY2goKGZpZWxkTmFtZSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgdmFsdWUgPSByZXNvbHZlVmFsdWUodmFsdWVzLCBmaWVsZE5hbWUpO1xuICAgICAgICAgICAgY29uc3QgZXJyb3IgPSBydW5SdWxlc1N5bmMoZmllbGROYW1lLCB2YWx1ZSwgdmFsdWVzLCBmaWVsZFJ1bGVzW2ZpZWxkTmFtZV0pO1xuICAgICAgICAgICAgaWYgKGVycm9yICE9PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgbmV3RXJyb3JzW2ZpZWxkTmFtZV0gPSBlcnJvcjtcbiAgICAgICAgICAgICAgICBoYXNFcnJvcnMgPSB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgc2V0RXJyb3JzKG5ld0Vycm9ycyk7XG4gICAgICAgIGlmICghaGFzRXJyb3JzKSB7XG4gICAgICAgICAgICBvbkZpbmlzaCA9PT0gbnVsbCB8fCBvbkZpbmlzaCA9PT0gdm9pZCAwID8gdm9pZCAwIDogb25GaW5pc2godmFsdWVzKTtcbiAgICAgICAgICAgIHJldHVybiB7IHN1Y2Nlc3M6IHRydWUsIHZhbHVlcyB9O1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgb25GaW5pc2hGYWlsZWQgPT09IG51bGwgfHwgb25GaW5pc2hGYWlsZWQgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9uRmluaXNoRmFpbGVkKHsgdmFsdWVzLCBlcnJvcnM6IG5ld0Vycm9ycyB9KTtcbiAgICAgICAgICAgIHJldHVybiB7IHN1Y2Nlc3M6IGZhbHNlLCBlcnJvcnM6IG5ld0Vycm9ycyB9O1xuICAgICAgICB9XG4gICAgfSk7XG4gICAgY29uc3QgaGFuZGxlU3VibWl0ID0gdXNlRXZlbnRDYWxsYmFjaygoZSkgPT4ge1xuICAgICAgICBlID09PSBudWxsIHx8IGUgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgcmV0dXJuIGhhbmRsZVN1Ym1pdEludGVybmFsKCk7XG4gICAgfSk7XG4gICAgY29uc3QgcmVzZXRGaWVsZHMgPSB1c2VNZW1vaXplZEZuKCgpID0+IHtcbiAgICAgICAgc2V0VmFsdWVzKGluaXRpYWxWYWx1ZXMpO1xuICAgICAgICBzZXRFcnJvcnMoe30pO1xuICAgICAgICBzZXRUb3VjaGVkKHt9KTtcbiAgICAgICAgb25SZXNldCA9PT0gbnVsbCB8fCBvblJlc2V0ID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvblJlc2V0KCk7XG4gICAgfSk7XG4gICAgY29uc3QgaGFuZGxlUmVzZXQgPSB1c2VFdmVudENhbGxiYWNrKChlKSA9PiB7XG4gICAgICAgIGUgPT09IG51bGwgfHwgZSA9PT0gdm9pZCAwID8gdm9pZCAwIDogZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICByZXNldEZpZWxkcygpO1xuICAgIH0pO1xuICAgIGNvbnN0IGdldEZpZWxkVmFsdWUgPSB1c2VNZW1vaXplZEZuKChuYW1lKSA9PiB7XG4gICAgICAgIHJldHVybiByZXNvbHZlVmFsdWUodmFsdWVzLCBuYW1lKTtcbiAgICB9KTtcbiAgICBjb25zdCBnZXRGaWVsZHNWYWx1ZSA9IHVzZU1lbW9pemVkRm4oKCkgPT4ge1xuICAgICAgICByZXR1cm4gdmFsdWVzO1xuICAgIH0pO1xuICAgIGNvbnN0IHNldEZpZWxkc1ZhbHVlID0gdXNlTWVtb2l6ZWRGbigobmV3VmFsdWVzKSA9PiB7XG4gICAgICAgIHNldFZhbHVlcygocHJldikgPT4ge1xuICAgICAgICAgICAgY29uc3QgdXBkYXRlZFZhbHVlcyA9IE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgcHJldiksIG5ld1ZhbHVlcyk7XG4gICAgICAgICAgICBvblZhbHVlc0NoYW5nZSA9PT0gbnVsbCB8fCBvblZhbHVlc0NoYW5nZSA9PT0gdm9pZCAwID8gdm9pZCAwIDogb25WYWx1ZXNDaGFuZ2UobmV3VmFsdWVzLCB1cGRhdGVkVmFsdWVzKTtcbiAgICAgICAgICAgIHJldHVybiB1cGRhdGVkVmFsdWVzO1xuICAgICAgICB9KTtcbiAgICB9KTtcbiAgICBjb25zdCBmb3JtSW5zdGFuY2UgPSB1c2VNZW1vKCgpID0+ICh7XG4gICAgICAgIHN1Ym1pdDogaGFuZGxlU3VibWl0SW50ZXJuYWwsXG4gICAgICAgIHJlc2V0RmllbGRzLFxuICAgICAgICBnZXRGaWVsZFZhbHVlLFxuICAgICAgICBnZXRGaWVsZHNWYWx1ZSxcbiAgICAgICAgc2V0RmllbGRzVmFsdWUsXG4gICAgICAgIHNldEZpZWxkVmFsdWUsXG4gICAgICAgIHZhbGlkYXRlRmllbGRzLFxuICAgIH0pLCBbXG4gICAgICAgIGhhbmRsZVN1Ym1pdEludGVybmFsLFxuICAgICAgICByZXNldEZpZWxkcyxcbiAgICAgICAgZ2V0RmllbGRWYWx1ZSxcbiAgICAgICAgZ2V0RmllbGRzVmFsdWUsXG4gICAgICAgIHNldEZpZWxkc1ZhbHVlLFxuICAgICAgICBzZXRGaWVsZFZhbHVlLFxuICAgICAgICB2YWxpZGF0ZUZpZWxkcyxcbiAgICBdKTtcbiAgICBjb25zdCBjb3JlQ29udGV4dFNoYXBlID0gdXNlTWVtbygoKSA9PiAoe1xuICAgICAgICB2YWx1ZXMsXG4gICAgICAgIGVycm9ycyxcbiAgICAgICAgdG91Y2hlZCxcbiAgICAgICAgZm9ybUluc3RhbmNlLFxuICAgICAgICBzZXRGaWVsZFZhbHVlLFxuICAgICAgICBzZXRGaWVsZEVycm9yLFxuICAgICAgICB2YWxpZGF0ZUZpZWxkLFxuICAgICAgICByZWdpc3RlckZpZWxkLFxuICAgICAgICB1bnJlZ2lzdGVyRmllbGQsXG4gICAgICAgIHNpemUsXG4gICAgICAgIGxhYmVsQWxpZ24sXG4gICAgICAgIGRpc2FibGVkLFxuICAgICAgICBjb2xvbixcbiAgICAgICAgcmVxdWlyZWRNYXJrLFxuICAgICAgICB2YWxpZGF0ZVRyaWdnZXIsXG4gICAgfSksIFtcbiAgICAgICAgdmFsdWVzLFxuICAgICAgICBlcnJvcnMsXG4gICAgICAgIHRvdWNoZWQsXG4gICAgICAgIGZvcm1JbnN0YW5jZSxcbiAgICAgICAgc2V0RmllbGRWYWx1ZSxcbiAgICAgICAgc2V0RmllbGRFcnJvcixcbiAgICAgICAgdmFsaWRhdGVGaWVsZCxcbiAgICAgICAgcmVnaXN0ZXJGaWVsZCxcbiAgICAgICAgdW5yZWdpc3RlckZpZWxkLFxuICAgICAgICBzaXplLFxuICAgICAgICBsYWJlbEFsaWduLFxuICAgICAgICBkaXNhYmxlZCxcbiAgICAgICAgY29sb24sXG4gICAgICAgIHJlcXVpcmVkTWFyayxcbiAgICAgICAgdmFsaWRhdGVUcmlnZ2VyLFxuICAgIF0pO1xuICAgIHJldHVybiB7XG4gICAgICAgIHZhbHVlcyxcbiAgICAgICAgZXJyb3JzLFxuICAgICAgICB0b3VjaGVkLFxuICAgICAgICBmaWVsZFJ1bGVzLFxuICAgICAgICBnZXRGaWVsZFJ1bGVzLFxuICAgICAgICBzZXRGaWVsZFZhbHVlLFxuICAgICAgICBzZXRGaWVsZEVycm9yLFxuICAgICAgICBzZXRGaWVsZHNWYWx1ZSxcbiAgICAgICAgZ2V0RmllbGRWYWx1ZSxcbiAgICAgICAgZ2V0RmllbGRzVmFsdWUsXG4gICAgICAgIHZhbGlkYXRlRmllbGQsXG4gICAgICAgIHZhbGlkYXRlRmllbGRzLFxuICAgICAgICByZWdpc3RlckZpZWxkLFxuICAgICAgICB1bnJlZ2lzdGVyRmllbGQsXG4gICAgICAgIGhhbmRsZVN1Ym1pdCxcbiAgICAgICAgaGFuZGxlUmVzZXQsXG4gICAgICAgIHJlc2V0RmllbGRzLFxuICAgICAgICBmb3JtSW5zdGFuY2UsXG4gICAgICAgIGNvcmVDb250ZXh0U2hhcGUsXG4gICAgfTtcbn07XG5leHBvcnQgZGVmYXVsdCB1c2VGb3JtQ29yZTsiXSwic291cmNlUm9vdCI6Ii4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYyJ9
@@ -0,0 +1,6 @@
1
+ /** Read a dot-path value out of a nested object. Returns undefined if any segment is missing. */
2
+ export declare function getNestedValue(obj: Record<string, unknown>, path: string): unknown;
3
+ /** Immutably set a dot-path value, cloning each object/array along the path. */
4
+ export declare function setNestedValue(obj: Record<string, unknown>, path: string, value: unknown): Record<string, unknown>;
5
+ /** Read a field value, taking the fast path for flat (non-dotted) names. */
6
+ export declare function resolveValue(values: Record<string, unknown>, name: string): unknown;
@@ -0,0 +1,68 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.getNestedValue = getNestedValue;
8
+ exports.resolveValue = resolveValue;
9
+ exports.setNestedValue = setNestedValue;
10
+ var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
11
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
12
+ var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
13
+ function _createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
14
+ function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
15
+ function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
16
+ // ---------------------------------------------------------------------------
17
+ // Nested path helpers (dot-notation support, e.g. "items.0.title").
18
+ //
19
+ // Single source of truth — these were previously copy-pasted across
20
+ // useFormCore, useFormItem, useForm and utils.
21
+ // ---------------------------------------------------------------------------
22
+ /** Read a dot-path value out of a nested object. Returns undefined if any segment is missing. */
23
+ function getNestedValue(obj, path) {
24
+ var keys = path.split('.');
25
+ var current = obj;
26
+ var _iterator = _createForOfIteratorHelper(keys),
27
+ _step;
28
+ try {
29
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
30
+ var key = _step.value;
31
+ if (current === null || current === undefined || (0, _typeof2["default"])(current) !== 'object') return undefined;
32
+ current = current[key];
33
+ }
34
+ } catch (err) {
35
+ _iterator.e(err);
36
+ } finally {
37
+ _iterator.f();
38
+ }
39
+ return current;
40
+ }
41
+ /** Immutably set a dot-path value, cloning each object/array along the path. */
42
+ function setNestedValue(obj, path, value) {
43
+ var keys = path.split('.');
44
+ if (keys.length === 1) return Object.assign(Object.assign({}, obj), (0, _defineProperty2["default"])({}, path, value));
45
+ var result = Object.assign({}, obj);
46
+ var current = result;
47
+ for (var i = 0; i < keys.length - 1; i++) {
48
+ var key = keys[i];
49
+ var nextKey = keys[i + 1];
50
+ var isNextArray = /^\d+$/.test(nextKey);
51
+ if (current[key] === undefined || current[key] === null) {
52
+ current[key] = isNextArray ? [] : {};
53
+ }
54
+ if (Array.isArray(current[key])) {
55
+ current[key] = (0, _toConsumableArray2["default"])(current[key]);
56
+ } else {
57
+ current[key] = Object.assign({}, current[key]);
58
+ }
59
+ current = current[key];
60
+ }
61
+ current[keys[keys.length - 1]] = value;
62
+ return result;
63
+ }
64
+ /** Read a field value, taking the fast path for flat (non-dotted) names. */
65
+ function resolveValue(values, name) {
66
+ return name.includes('.') ? getNestedValue(values, name) : values[name];
67
+ }
68
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvUHJvRm9ybS9zcmMvY29tcG9uZW50cy9Qcm9Gb3JtL2NvcmUvcGF0aFV0aWxzLnRzIl0sIm5hbWVzIjpbImdldE5lc3RlZFZhbHVlIiwib2JqIiwicGF0aCIsImtleXMiLCJzcGxpdCIsImN1cnJlbnQiLCJfaXRlcmF0b3IiLCJfY3JlYXRlRm9yT2ZJdGVyYXRvckhlbHBlciIsIl9zdGVwIiwicyIsIm4iLCJkb25lIiwia2V5IiwidmFsdWUiLCJ1bmRlZmluZWQiLCJfdHlwZW9mMiIsImVyciIsImUiLCJmIiwic2V0TmVzdGVkVmFsdWUiLCJsZW5ndGgiLCJPYmplY3QiLCJhc3NpZ24iLCJfZGVmaW5lUHJvcGVydHkyIiwicmVzdWx0IiwiaSIsIm5leHRLZXkiLCJpc05leHRBcnJheSIsInRlc3QiLCJBcnJheSIsImlzQXJyYXkiLCJfdG9Db25zdW1hYmxlQXJyYXkyIiwicmVzb2x2ZVZhbHVlIiwidmFsdWVzIiwibmFtZSIsImluY2x1ZGVzIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNNLFNBQVVBLGNBQWNBLENBQUNDLEdBQTRCLEVBQUVDLElBQVksRUFBQTtFQUN2RSxJQUFNQyxJQUFJLEdBQUdELElBQUksQ0FBQ0UsS0FBSyxDQUFDLEdBQUcsQ0FBQztFQUM1QixJQUFJQyxPQUFPLEdBQVlKLEdBQUc7RUFBQyxJQUFBSyxTQUFBLEdBQUFDLDBCQUFBLENBQ1RKLElBQUk7SUFBQUssS0FBQTtFQUFBO0lBQXRCLEtBQUFGLFNBQUEsQ0FBQUcsQ0FBQSxNQUFBRCxLQUFBLEdBQUFGLFNBQUEsQ0FBQUksQ0FBQSxJQUFBQyxJQUFBLEdBQXdCO01BQUEsSUFBYkMsR0FBRyxHQUFBSixLQUFBLENBQUFLLEtBQUE7TUFDWixJQUFJUixPQUFPLEtBQUssSUFBSSxJQUFJQSxPQUFPLEtBQUtTLFNBQVMsSUFBSSxJQUFBQyxRQUFBLGFBQU9WLE9BQU8sTUFBSyxRQUFRLEVBQUUsT0FBT1MsU0FBUztNQUM5RlQsT0FBTyxHQUFJQSxPQUFtQyxDQUFDTyxHQUFHLENBQUM7SUFDckQ7RUFBQyxTQUFBSSxHQUFBO0lBQUFWLFNBQUEsQ0FBQVcsQ0FBQSxDQUFBRCxHQUFBO0VBQUE7SUFBQVYsU0FBQSxDQUFBWSxDQUFBO0VBQUE7RUFDRCxPQUFPYixPQUFPO0FBQ2hCO0FBRUE7QUFDTSxTQUFVYyxjQUFjQSxDQUM1QmxCLEdBQTRCLEVBQzVCQyxJQUFZLEVBQ1pXLEtBQWMsRUFBQTtFQUVkLElBQU1WLElBQUksR0FBR0QsSUFBSSxDQUFDRSxLQUFLLENBQUMsR0FBRyxDQUFDO0VBQzVCLElBQUlELElBQUksQ0FBQ2lCLE1BQU0sS0FBSyxDQUFDLEVBQUUsT0FBQUMsTUFBQSxDQUFBQyxNQUFBLENBQUFELE1BQUEsQ0FBQUMsTUFBQSxDQUFBLENBQUEsQ0FBQSxFQUFZckIsR0FBRyxDQUFBLE1BQUFzQixnQkFBQSxpQkFBR3JCLElBQUksRUFBR1csS0FBSyxDQUFBLENBQUE7RUFFckQsSUFBTVcsTUFBTSxHQUFBSCxNQUFBLENBQUFDLE1BQUEsQ0FBQSxDQUFBLENBQUEsRUFBUXJCLEdBQUcsQ0FBRTtFQUN6QixJQUFJSSxPQUFPLEdBQTRCbUIsTUFBTTtFQUM3QyxLQUFLLElBQUlDLENBQUMsR0FBRyxDQUFDLEVBQUVBLENBQUMsR0FBR3RCLElBQUksQ0FBQ2lCLE1BQU0sR0FBRyxDQUFDLEVBQUVLLENBQUMsRUFBRSxFQUFFO0lBQ3hDLElBQU1iLEdBQUcsR0FBR1QsSUFBSSxDQUFDc0IsQ0FBQyxDQUFDO0lBQ25CLElBQU1DLE9BQU8sR0FBR3ZCLElBQUksQ0FBQ3NCLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDM0IsSUFBTUUsV0FBVyxHQUFHLE9BQU8sQ0FBQ0MsSUFBSSxDQUFDRixPQUFPLENBQUM7SUFDekMsSUFBSXJCLE9BQU8sQ0FBQ08sR0FBRyxDQUFDLEtBQUtFLFNBQVMsSUFBSVQsT0FBTyxDQUFDTyxHQUFHLENBQUMsS0FBSyxJQUFJLEVBQUU7TUFDdkRQLE9BQU8sQ0FBQ08sR0FBRyxDQUFDLEdBQUdlLFdBQVcsR0FBRyxFQUFFLEdBQUcsQ0FBQSxDQUFFO0lBQ3RDO0lBQ0EsSUFBSUUsS0FBSyxDQUFDQyxPQUFPLENBQUN6QixPQUFPLENBQUNPLEdBQUcsQ0FBQyxDQUFDLEVBQUU7TUFDL0JQLE9BQU8sQ0FBQ08sR0FBRyxDQUFDLE9BQUFtQixtQkFBQSxhQUFRMUIsT0FBTyxDQUFDTyxHQUFHLENBQWUsQ0FBQztJQUNqRCxDQUFDLE1BQU07TUFDTFAsT0FBTyxDQUFDTyxHQUFHLENBQUMsR0FBQVMsTUFBQSxDQUFBQyxNQUFBLENBQUEsQ0FBQSxDQUFBLEVBQVNqQixPQUFPLENBQUNPLEdBQUcsQ0FBNkIsQ0FBRTtJQUNqRTtJQUNBUCxPQUFPLEdBQUdBLE9BQU8sQ0FBQ08sR0FBRyxDQUE0QjtFQUNuRDtFQUNBUCxPQUFPLENBQUNGLElBQUksQ0FBQ0EsSUFBSSxDQUFDaUIsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUdQLEtBQUs7RUFDdEMsT0FBT1csTUFBTTtBQUNmO0FBRUE7QUFDTSxTQUFVUSxZQUFZQSxDQUFDQyxNQUErQixFQUFFQyxJQUFZLEVBQUE7RUFDeEUsT0FBT0EsSUFBSSxDQUFDQyxRQUFRLENBQUMsR0FBRyxDQUFDLEdBQUduQyxjQUFjLENBQUNpQyxNQUFNLEVBQUVDLElBQUksQ0FBQyxHQUFHRCxNQUFNLENBQUNDLElBQUksQ0FBQztBQUN6RSIsImZpbGUiOiJjb21wb25lbnRzL1Byb0Zvcm0vY29yZS9wYXRoVXRpbHMuanMiLCJzb3VyY2VzQ29udGVudCI6W251bGxdLCJzb3VyY2VSb290IjoiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjIn0=
@@ -0,0 +1,13 @@
1
+ import type { Rule } from './interface';
2
+ /**
3
+ * Synchronous rule run. Custom validators are invoked but NOT awaited — a
4
+ * promise-returning validator is treated as failing (matches the legacy sync
5
+ * `validateField` behaviour). Returns the first error message, or null.
6
+ */
7
+ export declare function runRulesSync(name: string, value: unknown, values: Record<string, unknown>, rules: Rule[]): string | null;
8
+ /**
9
+ * Asynchronous rule run. Custom validators are awaited (sync or async). A
10
+ * validator returning `undefined` is treated as passing. Returns the first
11
+ * error message, or null.
12
+ */
13
+ export declare function runRulesAsync(name: string, value: unknown, values: Record<string, unknown>, rules: Rule[]): Promise<string | null>;