@1money/component-ui 0.0.70 → 0.0.73

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (247) 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/Input/Amount/Amount.js +2 -2
  15. package/es/components/Input/Input/Input.js +3 -2
  16. package/es/components/Input/Mask/Mask.js +3 -2
  17. package/es/components/Input/OTP/OTP.js +3 -2
  18. package/es/components/Input/Password/Password.js +3 -2
  19. package/es/components/Input/Search/Search.js +3 -2
  20. package/es/components/Input/TextArea/TextArea.js +3 -2
  21. package/es/components/Input/Trade/Trade.js +2 -2
  22. package/es/components/Input/useAmountInput.js +4 -2
  23. package/es/components/Input/useSyncRef.js +2 -2
  24. package/es/components/Navigation/Nav.js +2 -2
  25. package/es/components/Navigation/Navigation.js +5 -2
  26. package/es/components/Pagination/Pagination.js +2 -2
  27. package/es/components/Pagination/usePagination.js +3 -2
  28. package/es/components/Popconfirm/Popconfirm.js +2 -2
  29. package/es/components/Portal/Portal.js +2 -2
  30. package/es/components/ProForm/ProForm.d.ts +10 -2
  31. package/es/components/ProForm/ProForm.js +60 -24
  32. package/es/components/ProForm/ProFormDependency.js +4 -1
  33. package/es/components/ProForm/ProFormGroup.js +2 -2
  34. package/es/components/ProForm/ProFormItem.js +73 -36
  35. package/es/components/ProForm/ProFormList.js +3 -2
  36. package/es/components/ProForm/SchemaForm.d.ts +7 -0
  37. package/es/components/ProForm/SchemaForm.js +103 -0
  38. package/es/components/ProForm/Submitter.js +13 -3
  39. package/es/components/ProForm/context.d.ts +22 -3
  40. package/es/components/ProForm/context.js +49 -10
  41. package/es/components/ProForm/core/constants.d.ts +8 -1
  42. package/es/components/ProForm/core/constants.js +9 -6
  43. package/es/components/ProForm/core/hooks/useForm.js +174 -320
  44. package/es/components/ProForm/core/hooks/useFormCore.js +84 -178
  45. package/es/components/ProForm/core/interface.d.ts +33 -12
  46. package/es/components/ProForm/core/pathUtils.d.ts +6 -0
  47. package/es/components/ProForm/core/pathUtils.js +59 -0
  48. package/es/components/ProForm/core/runRules.d.ts +23 -0
  49. package/es/components/ProForm/core/runRules.js +233 -0
  50. package/es/components/ProForm/core/useFormItem.d.ts +10 -1
  51. package/es/components/ProForm/core/useFormItem.js +105 -61
  52. package/es/components/ProForm/fields/ProFormDatePicker.js +4 -1
  53. package/es/components/ProForm/fields/createProFormField.js +64 -59
  54. package/es/components/ProForm/hooks/useFieldRequest.js +7 -5
  55. package/es/components/ProForm/index.d.ts +11 -4
  56. package/es/components/ProForm/index.js +7 -2
  57. package/es/components/ProForm/interface.d.ts +89 -14
  58. package/es/components/ProForm/layouts/DialogForm.d.ts +5 -1
  59. package/es/components/ProForm/layouts/DialogForm.js +2 -1
  60. package/es/components/ProForm/layouts/DrawerForm.d.ts +5 -1
  61. package/es/components/ProForm/layouts/DrawerForm.js +2 -1
  62. package/es/components/ProForm/layouts/QueryFilter.d.ts +5 -2
  63. package/es/components/ProForm/layouts/QueryFilter.js +79 -13
  64. package/es/components/ProForm/layouts/useOverlayForm.js +23 -21
  65. package/es/components/ProForm/style/ProForm.css +6 -0
  66. package/es/components/ProForm/utils.d.ts +14 -3
  67. package/es/components/ProForm/utils.js +73 -70
  68. package/es/components/ProTable/ProTable.js +3 -2
  69. package/es/components/ProTable/core/useAwaitableReload.js +3 -2
  70. package/es/components/ProTable/useFetchData.js +4 -2
  71. package/es/components/Radio/Radio.js +3 -2
  72. package/es/components/Radio/RadioGroup.js +3 -2
  73. package/es/components/ResizeObserver/useResizeObserver.js +2 -2
  74. package/es/components/Segment/Segment.js +4 -2
  75. package/es/components/Select/Select.js +3 -2
  76. package/es/components/Select/SelectCustom.js +2 -2
  77. package/es/components/Select/useSelectShell.js +3 -2
  78. package/es/components/Slider/Slider.js +3 -2
  79. package/es/components/Switch/Switch.js +3 -2
  80. package/es/components/Table/Table.js +14 -28
  81. package/es/components/Table/VirtualTable.js +18 -28
  82. package/es/components/Table/core/columnUtil.d.ts +9 -0
  83. package/es/components/Table/core/columnUtil.js +34 -0
  84. package/es/components/Table/core/useTableColumns.d.ts +4 -13
  85. package/es/components/Table/core/useTableColumns.js +55 -24
  86. package/es/components/Table/core/useTableDataPipeline.d.ts +11 -16
  87. package/es/components/Table/core/useTableDataPipeline.js +66 -73
  88. package/es/components/Table/core/useTableExpand.js +3 -2
  89. package/es/components/Table/core/useTableSelection.js +7 -4
  90. package/es/components/Table/core/useTableSetup.js +4 -2
  91. package/es/components/Table/features/ExpandTrigger.d.ts +9 -3
  92. package/es/components/Table/features/ExpandTrigger.js +14 -8
  93. package/es/components/Table/features/FilterTrigger.js +21 -17
  94. package/es/components/Table/features/SelectionColumn.d.ts +11 -6
  95. package/es/components/Table/features/SelectionColumn.js +12 -5
  96. package/es/components/Table/features/SortTrigger.d.ts +4 -2
  97. package/es/components/Table/features/SortTrigger.js +8 -3
  98. package/es/components/Table/internal/kernel/Body/MeasureCell.js +2 -2
  99. package/es/components/Table/internal/kernel/Cell/index.js +2 -2
  100. package/es/components/Table/internal/kernel/Table.js +3 -3
  101. package/es/components/Table/internal/kernel/VirtualTable/index.js +2 -2
  102. package/es/components/Table/internal/kernel/hooks/useRowInfo.js +2 -2
  103. package/es/components/Table/internal/kernel/selector-context/context.js +3 -3
  104. package/es/components/Table/renderers/HeaderCell.js +3 -2
  105. package/es/components/Table/renderers/TableShell.d.ts +13 -0
  106. package/es/components/Table/renderers/TableShell.js +25 -0
  107. package/es/components/Table/style/Table.css +3 -0
  108. package/es/components/Tabs/Tabs.js +4 -2
  109. package/es/components/Tooltip/Tooltip.js +3 -2
  110. package/es/components/Tooltip/style/Tooltip.css +1 -0
  111. package/es/components/Tour/Tour.js +3 -2
  112. package/es/components/Trigger/Trigger.js +3 -2
  113. package/es/components/Typography/Typography.js +2 -2
  114. package/es/components/Typography/useTypographyEnhancements.js +3 -2
  115. package/es/components/Upload/Upload.js +2 -2
  116. package/es/components/Upload/UploadFileBar.js +2 -2
  117. package/es/components/VirtualList/VirtualList.js +3 -2
  118. package/es/components/VirtualList/hooks/useMobileTouchMove.js +2 -2
  119. package/es/components/VirtualList/hooks/useScrollTo.js +2 -2
  120. package/es/index.css +1 -1
  121. package/es/index.d.ts +2 -2
  122. package/es/index.js +2 -2
  123. package/lib/business/Dialog/VerificationDialog/hooks/useOtpVerification.js +9 -8
  124. package/lib/business/Dialog/VerificationDialog/hooks/useResendCountdown.js +3 -3
  125. package/lib/business/Select/Network/NetworkSelect.js +3 -3
  126. package/lib/components/Accordion/Accordion.js +5 -4
  127. package/lib/components/Calendar/Calendar.js +6 -5
  128. package/lib/components/Carousel/Carousel.js +5 -4
  129. package/lib/components/Checkbox/BaseCheckbox.js +5 -4
  130. package/lib/components/Checkbox/Checkbox.js +3 -3
  131. package/lib/components/Checkbox/CheckboxGroup.js +7 -6
  132. package/lib/components/CoachMark/CoachMark.js +7 -6
  133. package/lib/components/Copy/Copy.js +3 -3
  134. package/lib/components/Dialog/Dialog.js +6 -6
  135. package/lib/components/Drawer/Drawer.js +10 -10
  136. package/lib/components/Input/Amount/Amount.js +6 -5
  137. package/lib/components/Input/Input/Input.js +7 -6
  138. package/lib/components/Input/Mask/Mask.js +9 -8
  139. package/lib/components/Input/OTP/OTP.js +9 -8
  140. package/lib/components/Input/Password/Password.js +6 -5
  141. package/lib/components/Input/Search/Search.js +8 -7
  142. package/lib/components/Input/TextArea/TextArea.js +5 -4
  143. package/lib/components/Input/Trade/Trade.js +5 -4
  144. package/lib/components/Input/useAmountInput.js +13 -11
  145. package/lib/components/Input/useSyncRef.js +4 -3
  146. package/lib/components/Navigation/Nav.js +3 -3
  147. package/lib/components/Navigation/Navigation.js +10 -7
  148. package/lib/components/Pagination/Pagination.js +4 -3
  149. package/lib/components/Pagination/usePagination.js +7 -6
  150. package/lib/components/Popconfirm/Popconfirm.js +3 -3
  151. package/lib/components/Portal/Portal.js +4 -4
  152. package/lib/components/ProForm/ProForm.d.ts +10 -2
  153. package/lib/components/ProForm/ProForm.js +66 -30
  154. package/lib/components/ProForm/ProFormDependency.js +4 -1
  155. package/lib/components/ProForm/ProFormGroup.js +3 -3
  156. package/lib/components/ProForm/ProFormItem.js +72 -34
  157. package/lib/components/ProForm/ProFormList.js +10 -9
  158. package/lib/components/ProForm/SchemaForm.d.ts +7 -0
  159. package/lib/components/ProForm/SchemaForm.js +110 -0
  160. package/lib/components/ProForm/Submitter.js +15 -5
  161. package/lib/components/ProForm/context.d.ts +22 -3
  162. package/lib/components/ProForm/context.js +49 -10
  163. package/lib/components/ProForm/core/constants.d.ts +8 -1
  164. package/lib/components/ProForm/core/constants.js +10 -7
  165. package/lib/components/ProForm/core/hooks/useForm.js +181 -327
  166. package/lib/components/ProForm/core/hooks/useFormCore.js +96 -190
  167. package/lib/components/ProForm/core/interface.d.ts +33 -12
  168. package/lib/components/ProForm/core/pathUtils.d.ts +6 -0
  169. package/lib/components/ProForm/core/pathUtils.js +68 -0
  170. package/lib/components/ProForm/core/runRules.d.ts +23 -0
  171. package/lib/components/ProForm/core/runRules.js +242 -0
  172. package/lib/components/ProForm/core/useFormItem.d.ts +10 -1
  173. package/lib/components/ProForm/core/useFormItem.js +106 -62
  174. package/lib/components/ProForm/fields/ProFormDatePicker.js +4 -1
  175. package/lib/components/ProForm/fields/createProFormField.js +63 -58
  176. package/lib/components/ProForm/hooks/useFieldRequest.js +9 -7
  177. package/lib/components/ProForm/index.d.ts +11 -4
  178. package/lib/components/ProForm/index.js +16 -1
  179. package/lib/components/ProForm/interface.d.ts +89 -14
  180. package/lib/components/ProForm/layouts/DialogForm.d.ts +5 -1
  181. package/lib/components/ProForm/layouts/DialogForm.js +2 -1
  182. package/lib/components/ProForm/layouts/DrawerForm.d.ts +5 -1
  183. package/lib/components/ProForm/layouts/DrawerForm.js +2 -1
  184. package/lib/components/ProForm/layouts/QueryFilter.d.ts +5 -2
  185. package/lib/components/ProForm/layouts/QueryFilter.js +84 -18
  186. package/lib/components/ProForm/layouts/useOverlayForm.js +27 -27
  187. package/lib/components/ProForm/style/ProForm.css +6 -0
  188. package/lib/components/ProForm/utils.d.ts +14 -3
  189. package/lib/components/ProForm/utils.js +91 -74
  190. package/lib/components/ProTable/ProTable.js +10 -9
  191. package/lib/components/ProTable/core/useAwaitableReload.js +6 -5
  192. package/lib/components/ProTable/useFetchData.js +15 -13
  193. package/lib/components/Radio/Radio.js +6 -5
  194. package/lib/components/Radio/RadioGroup.js +5 -4
  195. package/lib/components/ResizeObserver/useResizeObserver.js +4 -3
  196. package/lib/components/Segment/Segment.js +7 -5
  197. package/lib/components/Select/Select.js +23 -22
  198. package/lib/components/Select/SelectCustom.js +8 -8
  199. package/lib/components/Select/useSelectShell.js +5 -4
  200. package/lib/components/Slider/Slider.js +6 -5
  201. package/lib/components/Switch/Switch.js +5 -4
  202. package/lib/components/Table/Table.js +13 -27
  203. package/lib/components/Table/VirtualTable.js +17 -27
  204. package/lib/components/Table/core/columnUtil.d.ts +9 -0
  205. package/lib/components/Table/core/columnUtil.js +42 -0
  206. package/lib/components/Table/core/useTableColumns.d.ts +4 -13
  207. package/lib/components/Table/core/useTableColumns.js +57 -26
  208. package/lib/components/Table/core/useTableDataPipeline.d.ts +11 -16
  209. package/lib/components/Table/core/useTableDataPipeline.js +73 -80
  210. package/lib/components/Table/core/useTableExpand.js +6 -5
  211. package/lib/components/Table/core/useTableSelection.js +13 -10
  212. package/lib/components/Table/core/useTableSetup.js +8 -5
  213. package/lib/components/Table/features/ExpandTrigger.d.ts +9 -3
  214. package/lib/components/Table/features/ExpandTrigger.js +14 -8
  215. package/lib/components/Table/features/FilterTrigger.js +21 -17
  216. package/lib/components/Table/features/SelectionColumn.d.ts +11 -6
  217. package/lib/components/Table/features/SelectionColumn.js +12 -5
  218. package/lib/components/Table/features/SortTrigger.d.ts +4 -2
  219. package/lib/components/Table/features/SortTrigger.js +8 -3
  220. package/lib/components/Table/internal/kernel/Body/MeasureCell.js +3 -3
  221. package/lib/components/Table/internal/kernel/Cell/index.js +4 -4
  222. package/lib/components/Table/internal/kernel/Table.js +7 -6
  223. package/lib/components/Table/internal/kernel/VirtualTable/index.js +4 -4
  224. package/lib/components/Table/internal/kernel/hooks/useRowInfo.js +3 -3
  225. package/lib/components/Table/internal/kernel/selector-context/context.js +6 -5
  226. package/lib/components/Table/renderers/HeaderCell.js +3 -2
  227. package/lib/components/Table/renderers/TableShell.d.ts +13 -0
  228. package/lib/components/Table/renderers/TableShell.js +31 -0
  229. package/lib/components/Table/style/Table.css +3 -0
  230. package/lib/components/Tabs/Tabs.js +7 -5
  231. package/lib/components/Tooltip/Tooltip.js +5 -4
  232. package/lib/components/Tooltip/style/Tooltip.css +1 -0
  233. package/lib/components/Tour/Tour.js +7 -6
  234. package/lib/components/Trigger/Trigger.js +5 -4
  235. package/lib/components/Typography/Typography.js +5 -4
  236. package/lib/components/Typography/useTypographyEnhancements.js +8 -7
  237. package/lib/components/Upload/Upload.js +5 -4
  238. package/lib/components/Upload/UploadFileBar.js +4 -3
  239. package/lib/components/VirtualList/VirtualList.js +8 -7
  240. package/lib/components/VirtualList/hooks/useMobileTouchMove.js +4 -3
  241. package/lib/components/VirtualList/hooks/useScrollTo.js +3 -3
  242. package/lib/index.css +1 -1
  243. package/lib/index.d.ts +2 -2
  244. package/lib/index.js +13 -1
  245. package/package.json +2 -2
  246. package/scripts/mcp-server/examples.generated.json +54 -0
  247. package/scripts/mcp-server/index.generated.json +1212 -80
@@ -7,16 +7,17 @@ Object.defineProperty(exports, "__esModule", {
7
7
  });
8
8
  exports.useFormItem = useFormItem;
9
9
  var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
10
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
10
11
  var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
11
12
  var _react = _interopRequireWildcard(require("react"));
12
- var _hooks = require("@1money/hooks");
13
+ var _useEventCallback = _interopRequireDefault(require("@1money/hooks/useEventCallback"));
14
+ var _useDebouncedCallback2 = _interopRequireDefault(require("@1money/hooks/useDebouncedCallback"));
13
15
  var _context2 = require("../context");
16
+ var _pathUtils = require("./pathUtils");
17
+ var _runRules = require("./runRules");
14
18
  var _constants = require("./constants");
15
19
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
16
20
  function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof3(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
17
- 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; } } }; }
18
- 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; } }
19
- 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; }
20
21
  var __awaiter = void 0 && (void 0).__awaiter || function (thisArg, _arguments, P, generator) {
21
22
  function adopt(value) {
22
23
  return value instanceof P ? value : new P(function (resolve) {
@@ -44,23 +45,24 @@ var __awaiter = void 0 && (void 0).__awaiter || function (thisArg, _arguments, P
44
45
  step((generator = generator.apply(thisArg, _arguments || [])).next());
45
46
  });
46
47
  };
47
- function getNestedValue(obj, path) {
48
- var keys = path.split('.');
49
- var current = obj;
50
- var _iterator = _createForOfIteratorHelper(keys),
51
- _step;
52
- try {
53
- for (_iterator.s(); !(_step = _iterator.n()).done;) {
54
- var key = _step.value;
55
- if (current === null || current === undefined || (0, _typeof2["default"])(current) !== 'object') return undefined;
56
- current = current[key];
57
- }
58
- } catch (err) {
59
- _iterator.e(err);
60
- } finally {
61
- _iterator.f();
48
+ /**
49
+ * Normalise a change-handler argument: unwrap `e.target[valuePropName]` /
50
+ * `e[valuePropName]` (e.g. Checkbox emits `{ checked }`), else `e.target.value`,
51
+ * else pass the value through (e.g. Switch emits the boolean directly).
52
+ */
53
+ function extractEventValue(e) {
54
+ var valuePropName = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'value';
55
+ if (e === null || (0, _typeof2["default"])(e) !== 'object') return e;
56
+ var event = e;
57
+ if (valuePropName !== 'value' && valuePropName in event) {
58
+ return event[valuePropName];
59
+ }
60
+ if ('target' in event && event.target && (0, _typeof2["default"])(event.target) === 'object') {
61
+ var target = event.target;
62
+ if (valuePropName in target) return target[valuePropName];
63
+ if ('value' in target) return target.value;
62
64
  }
63
- return current;
65
+ return e;
64
66
  }
65
67
  function useFormItem(options) {
66
68
  var _this = this;
@@ -68,10 +70,14 @@ function useFormItem(options) {
68
70
  _options$rules = options.rules,
69
71
  rules = _options$rules === void 0 ? [] : _options$rules,
70
72
  required = options.required,
71
- validateStatus = options.validateStatus;
73
+ validateStatus = options.validateStatus,
74
+ _options$valuePropNam = options.valuePropName,
75
+ valuePropName = _options$valuePropNam === void 0 ? 'value' : _options$valuePropNam,
76
+ validateDebounce = options.validateDebounce;
72
77
  var ctx = (0, _context2.useProFormContext)();
73
78
  var values = ctx.values,
74
79
  errors = ctx.errors,
80
+ warnings = ctx.warnings,
75
81
  validating = ctx.validating,
76
82
  setFieldValue = ctx.setFieldValue,
77
83
  validateField = ctx.validateField,
@@ -85,43 +91,96 @@ function useFormItem(options) {
85
91
  var isRequired = Boolean(required || rules.some(function (rule) {
86
92
  return rule.required;
87
93
  }));
88
- var fieldValue = name ? name.includes('.') ? getNestedValue(values, name) : values[name] : undefined;
89
- var fieldError = name ? name.includes('.') ? getNestedValue(errors, name) : errors[name] : undefined;
94
+ var fieldValue = name ? name.includes('.') ? (0, _pathUtils.getNestedValue)(values, name) : values[name] : undefined;
95
+ // Errors/warnings are stored FLAT, keyed by the full (possibly dotted) field
96
+ // name — never resolve them as nested paths or dotted names would miss.
97
+ var fieldError = name ? errors[name] : undefined;
98
+ var fieldWarning = name ? warnings[name] : undefined;
90
99
  var fieldValidating = name ? validating[name] || false : false;
91
- var finalStatus = validateStatus || (fieldError ? 'error' : undefined);
92
- var runValidate = (0, _hooks.useEventCallback)(function (value) {
93
- if (name && rules.length > 0) return validateField(name, rules, value);
94
- return true;
100
+ var finalStatus = validateStatus || (fieldError ? 'error' : fieldWarning ? 'warning' : undefined);
101
+ // Run only the rules applicable to the given interactive trigger; rules
102
+ // without an explicit validateTrigger follow the form-level setting.
103
+ var runValidate = (0, _useEventCallback["default"])(function (value, trigger) {
104
+ if (!name || rules.length === 0) return true;
105
+ var applicable = (0, _runRules.filterRulesByTrigger)(rules, trigger, validateTrigger);
106
+ if (applicable.length === 0) return true;
107
+ return validateField(name, applicable, value);
95
108
  });
96
- var runValidateAsync = (0, _hooks.useEventCallback)(function (value) {
109
+ var runValidateAsync = (0, _useEventCallback["default"])(function (value, trigger) {
97
110
  return __awaiter(_this, void 0, void 0, /*#__PURE__*/_regenerator["default"].mark(function _callee() {
111
+ var applicable;
98
112
  return _regenerator["default"].wrap(function (_context) {
99
113
  while (1) switch (_context.prev = _context.next) {
100
114
  case 0:
101
- if (!(name && rules.length > 0)) {
115
+ if (!(!name || rules.length === 0)) {
102
116
  _context.next = 1;
103
117
  break;
104
118
  }
105
- _context.next = 1;
106
- return validateFieldAsync(name, value, rules);
119
+ return _context.abrupt("return");
107
120
  case 1:
121
+ applicable = (0, _runRules.filterRulesByTrigger)(rules, trigger, validateTrigger);
122
+ if (!(applicable.length === 0)) {
123
+ _context.next = 2;
124
+ break;
125
+ }
126
+ return _context.abrupt("return");
127
+ case 2:
128
+ _context.next = 3;
129
+ return validateFieldAsync(name, value, applicable);
130
+ case 3:
108
131
  case "end":
109
132
  return _context.stop();
110
133
  }
111
134
  }, _callee);
112
135
  }));
113
136
  });
114
- var handleChange = (0, _hooks.useEventCallback)(function (value) {
137
+ var _useDebouncedCallback = (0, _useDebouncedCallback2["default"])(function (value) {
138
+ runValidate(value, 'onChange');
139
+ }, validateDebounce),
140
+ debouncedValidate = _useDebouncedCallback.run;
141
+ var handleChange = (0, _useEventCallback["default"])(function (value) {
115
142
  if (name) {
116
143
  setFieldValue(name, value);
117
- if (validateTrigger === 'onChange') runValidate(value);
144
+ if (validateDebounce && validateDebounce > 0) {
145
+ debouncedValidate(value);
146
+ } else {
147
+ runValidate(value, 'onChange');
148
+ }
149
+ }
150
+ });
151
+ var handleBlur = (0, _useEventCallback["default"])(function () {
152
+ runValidateAsync(fieldValue, 'onBlur');
153
+ });
154
+ // Latest child-provided callbacks, captured at injectField time. The STABLE
155
+ // injected handlers below delegate through this ref instead of being
156
+ // recreated per render — so a memoized field component sees shallow-equal
157
+ // props across renders and can bail out while another field is typing.
158
+ var childCallbacksRef = (0, _react.useRef)({});
159
+ var injectedOnChange = (0, _useEventCallback["default"])(function (e) {
160
+ var _b2;
161
+ var _a, _b;
162
+ handleChange(extractEventValue(e, valuePropName));
163
+ for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
164
+ args[_key - 1] = arguments[_key];
118
165
  }
166
+ (_b = (_a = childCallbacksRef.current).onChange) === null || _b === void 0 ? void 0 : (_b2 = _b).call.apply(_b2, [_a, e].concat(args));
119
167
  });
120
- var handleBlur = (0, _hooks.useEventCallback)(function () {
121
- if (validateTrigger === 'onBlur') runValidateAsync(fieldValue);
168
+ var injectedOnBlur = (0, _useEventCallback["default"])(function () {
169
+ var _b3;
170
+ var _a, _b;
171
+ handleBlur();
172
+ for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
173
+ args[_key2] = arguments[_key2];
174
+ }
175
+ (_b = (_a = childCallbacksRef.current).onBlur) === null || _b === void 0 ? void 0 : (_b3 = _b).call.apply(_b3, [_a].concat(args));
122
176
  });
177
+ // Keep the registry in sync with the LATEST rules every render (registration
178
+ // is a cheap ref mutation): dynamic rules (e.g. required toggled by another
179
+ // field) must be visible to submit-time validation, not just onChange.
123
180
  (0, _react.useEffect)(function () {
124
181
  if (name && registerField) registerField(name, rules);
182
+ });
183
+ (0, _react.useEffect)(function () {
125
184
  return function () {
126
185
  if (name && unregisterField) unregisterField(name);
127
186
  };
@@ -131,39 +190,23 @@ function useFormItem(options) {
131
190
  if (!name || ! /*#__PURE__*/_react["default"].isValidElement(child)) return child;
132
191
  var childProps = child.props;
133
192
  var displayName = (_a = child.type) === null || _a === void 0 ? void 0 : _a.displayName;
134
- var isFormComponent = _constants.FORM_COMPONENT_NAMES.includes(displayName) || childProps.placeholder !== undefined || childProps.value !== undefined;
193
+ var isFormComponent = _constants.FORM_COMPONENT_NAMES.includes(displayName) || childProps.placeholder !== undefined || childProps.value !== undefined || childProps[valuePropName] !== undefined;
135
194
  if (!isFormComponent) return child;
136
- var TEXT_LIKE_NAMES = ['Input', 'InputPassword', 'InputTextArea', 'InputSearch', 'InputOTP', 'InputTrade', 'InputAmount', 'InputMask', 'TextArea', 'InputNumber'];
137
195
  var safeValue = fieldValue;
138
196
  if (safeValue === null || safeValue === undefined) {
139
- if (TEXT_LIKE_NAMES.includes(displayName || '') || childProps.placeholder !== undefined) {
140
- safeValue = '';
141
- } else if (['Checkbox', 'Switch'].includes(displayName || '')) {
197
+ if (valuePropName === 'checked' || ['Checkbox', 'Switch'].includes(displayName || '')) {
142
198
  safeValue = false;
199
+ } else if (_constants.TEXT_LIKE_COMPONENT_NAMES.includes(displayName || '') || childProps.placeholder !== undefined) {
200
+ safeValue = '';
143
201
  }
144
- } else if (TEXT_LIKE_NAMES.includes(displayName || '') && typeof safeValue !== 'string' && typeof safeValue !== 'number') {
202
+ } else if (_constants.TEXT_LIKE_COMPONENT_NAMES.includes(displayName || '') && typeof safeValue !== 'string' && typeof safeValue !== 'number') {
145
203
  safeValue = '';
146
204
  }
147
- var injectedProps = Object.assign({
148
- value: safeValue,
149
- onChange: function onChange(e) {
150
- var actualValue = e && (0, _typeof2["default"])(e) === 'object' && 'target' in e ? e.target.value : e;
151
- handleChange(actualValue);
152
- if (typeof childProps.onChange === 'function') {
153
- for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
154
- args[_key - 1] = arguments[_key];
155
- }
156
- childProps.onChange.apply(childProps, [e].concat(args));
157
- }
158
- },
159
- onBlur: function onBlur() {
160
- handleBlur();
161
- if (typeof childProps.onBlur === 'function') {
162
- childProps.onBlur.apply(childProps, arguments);
163
- }
164
- },
165
- size: childProps.size || size
166
- }, finalStatus === 'error' && {
205
+ childCallbacksRef.current = {
206
+ onChange: typeof childProps.onChange === 'function' ? childProps.onChange : undefined,
207
+ onBlur: typeof childProps.onBlur === 'function' ? childProps.onBlur : undefined
208
+ };
209
+ var injectedProps = Object.assign((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])({}, valuePropName, safeValue), "onChange", injectedOnChange), "onBlur", injectedOnBlur), finalStatus === 'error' && {
167
210
  status: 'error'
168
211
  });
169
212
  return /*#__PURE__*/_react["default"].cloneElement(child, injectedProps);
@@ -171,6 +214,7 @@ function useFormItem(options) {
171
214
  return {
172
215
  fieldValue: fieldValue,
173
216
  fieldError: fieldError,
217
+ fieldWarning: fieldWarning,
174
218
  fieldValidating: fieldValidating,
175
219
  validateStatus: finalStatus,
176
220
  isRequired: isRequired,
@@ -180,4 +224,4 @@ function useFormItem(options) {
180
224
  injectField: injectField
181
225
  };
182
226
  }
183
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvUHJvRm9ybS9zcmMvY29tcG9uZW50cy9Qcm9Gb3JtL2NvcmUvdXNlRm9ybUl0ZW0udHMiLCJjb21wb25lbnRzL1Byb0Zvcm0vY29yZS91c2VGb3JtSXRlbS5qcyJdLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfaG9va3MiLCJfY29udGV4dDIiLCJfY29uc3RhbnRzIiwiX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlIiwiZSIsIldlYWtNYXAiLCJyIiwidCIsIl9fZXNNb2R1bGUiLCJfdHlwZW9mMyIsImhhcyIsImdldCIsIm4iLCJfX3Byb3RvX18iLCJhIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJ1IiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiaSIsInNldCIsIl9jcmVhdGVGb3JPZkl0ZXJhdG9ySGVscGVyIiwiU3ltYm9sIiwiaXRlcmF0b3IiLCJBcnJheSIsImlzQXJyYXkiLCJfdW5zdXBwb3J0ZWRJdGVyYWJsZVRvQXJyYXkiLCJsZW5ndGgiLCJfbiIsIkYiLCJzIiwiZG9uZSIsInZhbHVlIiwiZiIsIlR5cGVFcnJvciIsIm8iLCJuZXh0IiwiX2FycmF5TGlrZVRvQXJyYXkiLCJ0b1N0cmluZyIsInNsaWNlIiwiY29uc3RydWN0b3IiLCJuYW1lIiwiZnJvbSIsInRlc3QiLCJfX2F3YWl0ZXIiLCJ0aGlzQXJnIiwiX2FyZ3VtZW50cyIsIlAiLCJnZW5lcmF0b3IiLCJhZG9wdCIsInJlc29sdmUiLCJQcm9taXNlIiwicmVqZWN0IiwiZnVsZmlsbGVkIiwic3RlcCIsInJlamVjdGVkIiwicmVzdWx0IiwidGhlbiIsImFwcGx5IiwiZ2V0TmVzdGVkVmFsdWUiLCJvYmoiLCJwYXRoIiwia2V5cyIsInNwbGl0IiwiY3VycmVudCIsIl9pdGVyYXRvciIsIl9zdGVwIiwia2V5IiwidW5kZWZpbmVkIiwiX3R5cGVvZjIiLCJlcnIiLCJ1c2VGb3JtSXRlbSIsIm9wdGlvbnMiLCJfdGhpcyIsIl9vcHRpb25zJHJ1bGVzIiwicnVsZXMiLCJyZXF1aXJlZCIsInZhbGlkYXRlU3RhdHVzIiwiY3R4IiwidXNlUHJvRm9ybUNvbnRleHQiLCJ2YWx1ZXMiLCJlcnJvcnMiLCJ2YWxpZGF0aW5nIiwic2V0RmllbGRWYWx1ZSIsInZhbGlkYXRlRmllbGQiLCJ2YWxpZGF0ZUZpZWxkQXN5bmMiLCJyZWdpc3RlckZpZWxkIiwidW5yZWdpc3RlckZpZWxkIiwic2l6ZSIsImxhYmVsQWxpZ24iLCJyZXF1aXJlZE1hcmsiLCJ2YWxpZGF0ZVRyaWdnZXIiLCJpc1JlcXVpcmVkIiwiQm9vbGVhbiIsInNvbWUiLCJydWxlIiwiZmllbGRWYWx1ZSIsImluY2x1ZGVzIiwiZmllbGRFcnJvciIsImZpZWxkVmFsaWRhdGluZyIsImZpbmFsU3RhdHVzIiwicnVuVmFsaWRhdGUiLCJ1c2VFdmVudENhbGxiYWNrIiwicnVuVmFsaWRhdGVBc3luYyIsIl9yZWdlbmVyYXRvciIsIm1hcmsiLCJfY2FsbGVlIiwid3JhcCIsIl9jb250ZXh0IiwicHJldiIsInN0b3AiLCJoYW5kbGVDaGFuZ2UiLCJoYW5kbGVCbHVyIiwidXNlRWZmZWN0IiwiaW5qZWN0RmllbGQiLCJjaGlsZCIsIl9hIiwiUmVhY3QiLCJpc1ZhbGlkRWxlbWVudCIsImNoaWxkUHJvcHMiLCJwcm9wcyIsImRpc3BsYXlOYW1lIiwidHlwZSIsImlzRm9ybUNvbXBvbmVudCIsIkZPUk1fQ09NUE9ORU5UX05BTUVTIiwicGxhY2Vob2xkZXIiLCJURVhUX0xJS0VfTkFNRVMiLCJzYWZlVmFsdWUiLCJpbmplY3RlZFByb3BzIiwiYXNzaWduIiwib25DaGFuZ2UiLCJhY3R1YWxWYWx1ZSIsInRhcmdldCIsIl9sZW4iLCJhcmd1bWVudHMiLCJhcmdzIiwiX2tleSIsImNvbmNhdCIsIm9uQmx1ciIsInN0YXR1cyIsImNsb25lRWxlbWVudCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7OztBQUFBLElBQUFBLE1BQUEsR0FB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QyxJQUFBLFFBQUFGLFNBQUEsQ0FBQUUsSUFBQTtVQUFBO1VBT3BDakIsVUFBVSxDQUFDVyxRQUFzQyxDQUFBeEUsS0FBQSxDQUFqRDZELFVBQVUsR0FBd0NySCxDQUFDLEVBQUF1SSxNQUFBLENBQUtGLElBQUksRUFBQztRQUNoRTtNQUNGLENBQUM7TUFDREcsTUFBTSxFQUFFLFNBQVJBLE1BQU1BLENBQUEsRUFBeUI7UUFDN0IxQixVQUFVLENBQUEsQ0FBRTtRQUNaLElBQUksT0FBT08sVUFBVSxDQUFDbUIsTUFBTSxLQUFLLFVBQVUsRUFBRTtVQUMxQ25CLFVBQVUsQ0FBQ21CLE1BQW9DLENBQUFoRixLQUFBLENBQS9DNkQsVUFBVSxFQUFBZSxTQUE2QyxDQUFDO1FBQzNEO01BQ0YsQ0FBQztNQUNEOUMsSUFBSSxFQUFFK0IsVUFBVSxDQUFDL0IsSUFBSSxJQUFJQTtJQUFJLENBQUEsRUFDekJZLFdBQVcsS0FBSyxPQUFPLElBQUk7TUFBRXVDLE1BQU0sRUFBRTtJQUFPLENBQUcsQ0FDcEQ7SUFFRCxvQkFBT3RCLGlCQUFLLENBQUN1QixZQUFZLENBQUN6QixLQUFLLEVBQUVhLGFBQWEsQ0FBQztFQUNqRCxDQUFDO0VBRUQsT0FBTztJQUNMaEMsVUFBVSxFQUFWQSxVQUFVO0lBQ1ZFLFVBQVUsRUFBVkEsVUFBVTtJQUNWQyxlQUFlLEVBQWZBLGVBQWU7SUFDZnRCLGNBQWMsRUFBRXVCLFdBQVc7SUFDM0JSLFVBQVUsRUFBVkEsVUFBVTtJQUNWSixJQUFJLEVBQUpBLElBQUk7SUFDSkMsVUFBVSxFQUFWQSxVQUFVO0lBQ1ZDLFlBQVksRUFBWkEsWUFBWTtJQUNad0IsV0FBVyxFQUFYQTtFQzNDQSxDRDRDRDtBQUNIIiwiZmlsZSI6ImNvbXBvbmVudHMvUHJvRm9ybS9jb3JlL3VzZUZvcm1JdGVtLmpzIiwic291cmNlc0NvbnRlbnQiOltudWxsLCJ2YXIgX19hd2FpdGVyID0gKHRoaXMgJiYgdGhpcy5fX2F3YWl0ZXIpIHx8IGZ1bmN0aW9uICh0aGlzQXJnLCBfYXJndW1lbnRzLCBQLCBnZW5lcmF0b3IpIHtcbiAgICBmdW5jdGlvbiBhZG9wdCh2YWx1ZSkgeyByZXR1cm4gdmFsdWUgaW5zdGFuY2VvZiBQID8gdmFsdWUgOiBuZXcgUChmdW5jdGlvbiAocmVzb2x2ZSkgeyByZXNvbHZlKHZhbHVlKTsgfSk7IH1cbiAgICByZXR1cm4gbmV3IChQIHx8IChQID0gUHJvbWlzZSkpKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHtcbiAgICAgICAgZnVuY3Rpb24gZnVsZmlsbGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yLm5leHQodmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxuICAgICAgICBmdW5jdGlvbiByZWplY3RlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvcltcInRocm93XCJdKHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cbiAgICAgICAgZnVuY3Rpb24gc3RlcChyZXN1bHQpIHsgcmVzdWx0LmRvbmUgPyByZXNvbHZlKHJlc3VsdC52YWx1ZSkgOiBhZG9wdChyZXN1bHQudmFsdWUpLnRoZW4oZnVsZmlsbGVkLCByZWplY3RlZCk7IH1cbiAgICAgICAgc3RlcCgoZ2VuZXJhdG9yID0gZ2VuZXJhdG9yLmFwcGx5KHRoaXNBcmcsIF9hcmd1bWVudHMgfHwgW10pKS5uZXh0KCkpO1xuICAgIH0pO1xufTtcbmltcG9ydCBSZWFjdCwgeyB1c2VFZmZlY3QgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyB1c2VFdmVudENhbGxiYWNrIH0gZnJvbSAnQDFtb25leS9ob29rcyc7XG5pbXBvcnQgeyB1c2VQcm9Gb3JtQ29udGV4dCB9IGZyb20gJy4uL2NvbnRleHQnO1xuaW1wb3J0IHsgRk9STV9DT01QT05FTlRfTkFNRVMgfSBmcm9tICcuL2NvbnN0YW50cyc7XG5mdW5jdGlvbiBnZXROZXN0ZWRWYWx1ZShvYmosIHBhdGgpIHtcbiAgICBjb25zdCBrZXlzID0gcGF0aC5zcGxpdCgnLicpO1xuICAgIGxldCBjdXJyZW50ID0gb2JqO1xuICAgIGZvciAoY29uc3Qga2V5IG9mIGtleXMpIHtcbiAgICAgICAgaWYgKGN1cnJlbnQgPT09IG51bGwgfHwgY3VycmVudCA9PT0gdW5kZWZpbmVkIHx8IHR5cGVvZiBjdXJyZW50ICE9PSAnb2JqZWN0JylcbiAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgIGN1cnJlbnQgPSBjdXJyZW50W2tleV07XG4gICAgfVxuICAgIHJldHVybiBjdXJyZW50O1xufVxuZXhwb3J0IGZ1bmN0aW9uIHVzZUZvcm1JdGVtKG9wdGlvbnMpIHtcbiAgICBjb25zdCB7IG5hbWUsIHJ1bGVzID0gW10sIHJlcXVpcmVkLCB2YWxpZGF0ZVN0YXR1cyB9ID0gb3B0aW9ucztcbiAgICBjb25zdCBjdHggPSB1c2VQcm9Gb3JtQ29udGV4dCgpO1xuICAgIGNvbnN0IHsgdmFsdWVzLCBlcnJvcnMsIHZhbGlkYXRpbmcsIHNldEZpZWxkVmFsdWUsIHZhbGlkYXRlRmllbGQsIHZhbGlkYXRlRmllbGRBc3luYywgcmVnaXN0ZXJGaWVsZCwgdW5yZWdpc3RlckZpZWxkLCBzaXplLCBsYWJlbEFsaWduLCByZXF1aXJlZE1hcmssIHZhbGlkYXRlVHJpZ2dlciwgfSA9IGN0eDtcbiAgICBjb25zdCBpc1JlcXVpcmVkID0gQm9vbGVhbihyZXF1aXJlZCB8fCBydWxlcy5zb21lKChydWxlKSA9PiBydWxlLnJlcXVpcmVkKSk7XG4gICAgY29uc3QgZmllbGRWYWx1ZSA9IG5hbWVcbiAgICAgICAgPyAobmFtZS5pbmNsdWRlcygnLicpID8gZ2V0TmVzdGVkVmFsdWUodmFsdWVzLCBuYW1lKSA6IHZhbHVlc1tuYW1lXSlcbiAgICAgICAgOiB1bmRlZmluZWQ7XG4gICAgY29uc3QgZmllbGRFcnJvciA9IG5hbWVcbiAgICAgICAgPyAobmFtZS5pbmNsdWRlcygnLicpXG4gICAgICAgICAgICA/IGdldE5lc3RlZFZhbHVlKGVycm9ycywgbmFtZSlcbiAgICAgICAgICAgIDogZXJyb3JzW25hbWVdKVxuICAgICAgICA6IHVuZGVmaW5lZDtcbiAgICBjb25zdCBmaWVsZFZhbGlkYXRpbmcgPSBuYW1lID8gKHZhbGlkYXRpbmdbbmFtZV0gfHwgZmFsc2UpIDogZmFsc2U7XG4gICAgY29uc3QgZmluYWxTdGF0dXMgPSB2YWxpZGF0ZVN0YXR1cyB8fCAoZmllbGRFcnJvciA/ICdlcnJvcicgOiB1bmRlZmluZWQpO1xuICAgIGNvbnN0IHJ1blZhbGlkYXRlID0gdXNlRXZlbnRDYWxsYmFjaygodmFsdWUpID0+IHtcbiAgICAgICAgaWYgKG5hbWUgJiYgcnVsZXMubGVuZ3RoID4gMClcbiAgICAgICAgICAgIHJldHVybiB2YWxpZGF0ZUZpZWxkKG5hbWUsIHJ1bGVzLCB2YWx1ZSk7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH0pO1xuICAgIGNvbnN0IHJ1blZhbGlkYXRlQXN5bmMgPSB1c2VFdmVudENhbGxiYWNrKCh2YWx1ZSkgPT4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICBpZiAobmFtZSAmJiBydWxlcy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICB5aWVsZCB2YWxpZGF0ZUZpZWxkQXN5bmMobmFtZSwgdmFsdWUsIHJ1bGVzKTtcbiAgICAgICAgfVxuICAgIH0pKTtcbiAgICBjb25zdCBoYW5kbGVDaGFuZ2UgPSB1c2VFdmVudENhbGxiYWNrKCh2YWx1ZSkgPT4ge1xuICAgICAgICBpZiAobmFtZSkge1xuICAgICAgICAgICAgc2V0RmllbGRWYWx1ZShuYW1lLCB2YWx1ZSk7XG4gICAgICAgICAgICBpZiAodmFsaWRhdGVUcmlnZ2VyID09PSAnb25DaGFuZ2UnKVxuICAgICAgICAgICAgICAgIHJ1blZhbGlkYXRlKHZhbHVlKTtcbiAgICAgICAgfVxuICAgIH0pO1xuICAgIGNvbnN0IGhhbmRsZUJsdXIgPSB1c2VFdmVudENhbGxiYWNrKCgpID0+IHtcbiAgICAgICAgaWYgKHZhbGlkYXRlVHJpZ2dlciA9PT0gJ29uQmx1cicpXG4gICAgICAgICAgICBydW5WYWxpZGF0ZUFzeW5jKGZpZWxkVmFsdWUpO1xuICAgIH0pO1xuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIGlmIChuYW1lICYmIHJlZ2lzdGVyRmllbGQpXG4gICAgICAgICAgICByZWdpc3RlckZpZWxkKG5hbWUsIHJ1bGVzKTtcbiAgICAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgICAgIGlmIChuYW1lICYmIHVucmVnaXN0ZXJGaWVsZClcbiAgICAgICAgICAgICAgICB1bnJlZ2lzdGVyRmllbGQobmFtZSk7XG4gICAgICAgIH07XG4gICAgfSwgW25hbWVdKTtcbiAgICBjb25zdCBpbmplY3RGaWVsZCA9IChjaGlsZCkgPT4ge1xuICAgICAgICB2YXIgX2E7XG4gICAgICAgIGlmICghbmFtZSB8fCAhUmVhY3QuaXNWYWxpZEVsZW1lbnQoY2hpbGQpKVxuICAgICAgICAgICAgcmV0dXJuIGNoaWxkO1xuICAgICAgICBjb25zdCBjaGlsZFByb3BzID0gY2hpbGQucHJvcHM7XG4gICAgICAgIGNvbnN0IGRpc3BsYXlOYW1lID0gKF9hID0gY2hpbGQudHlwZSkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmRpc3BsYXlOYW1lO1xuICAgICAgICBjb25zdCBpc0Zvcm1Db21wb25lbnQgPSBGT1JNX0NPTVBPTkVOVF9OQU1FUy5pbmNsdWRlcyhkaXNwbGF5TmFtZSkgfHxcbiAgICAgICAgICAgIGNoaWxkUHJvcHMucGxhY2Vob2xkZXIgIT09IHVuZGVmaW5lZCB8fFxuICAgICAgICAgICAgY2hpbGRQcm9wcy52YWx1ZSAhPT0gdW5kZWZpbmVkO1xuICAgICAgICBpZiAoIWlzRm9ybUNvbXBvbmVudClcbiAgICAgICAgICAgIHJldHVybiBjaGlsZDtcbiAgICAgICAgY29uc3QgVEVYVF9MSUtFX05BTUVTID0gW1xuICAgICAgICAgICAgJ0lucHV0JywgJ0lucHV0UGFzc3dvcmQnLCAnSW5wdXRUZXh0QXJlYScsICdJbnB1dFNlYXJjaCcsXG4gICAgICAgICAgICAnSW5wdXRPVFAnLCAnSW5wdXRUcmFkZScsICdJbnB1dEFtb3VudCcsICdJbnB1dE1hc2snLFxuICAgICAgICAgICAgJ1RleHRBcmVhJywgJ0lucHV0TnVtYmVyJyxcbiAgICAgICAgXTtcbiAgICAgICAgbGV0IHNhZmVWYWx1ZSA9IGZpZWxkVmFsdWU7XG4gICAgICAgIGlmIChzYWZlVmFsdWUgPT09IG51bGwgfHwgc2FmZVZhbHVlID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIGlmIChURVhUX0xJS0VfTkFNRVMuaW5jbHVkZXMoZGlzcGxheU5hbWUgfHwgJycpIHx8XG4gICAgICAgICAgICAgICAgY2hpbGRQcm9wcy5wbGFjZWhvbGRlciAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgc2FmZVZhbHVlID0gJyc7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIGlmIChbJ0NoZWNrYm94JywgJ1N3aXRjaCddLmluY2x1ZGVzKGRpc3BsYXlOYW1lIHx8ICcnKSkge1xuICAgICAgICAgICAgICAgIHNhZmVWYWx1ZSA9IGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKFRFWFRfTElLRV9OQU1FUy5pbmNsdWRlcyhkaXNwbGF5TmFtZSB8fCAnJykgJiZcbiAgICAgICAgICAgIHR5cGVvZiBzYWZlVmFsdWUgIT09ICdzdHJpbmcnICYmXG4gICAgICAgICAgICB0eXBlb2Ygc2FmZVZhbHVlICE9PSAnbnVtYmVyJykge1xuICAgICAgICAgICAgc2FmZVZhbHVlID0gJyc7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgaW5qZWN0ZWRQcm9wcyA9IE9iamVjdC5hc3NpZ24oeyB2YWx1ZTogc2FmZVZhbHVlLCBvbkNoYW5nZTogKGUsIC4uLmFyZ3MpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBhY3R1YWxWYWx1ZSA9IGUgJiYgdHlwZW9mIGUgPT09ICdvYmplY3QnICYmICd0YXJnZXQnIGluIGVcbiAgICAgICAgICAgICAgICAgICAgPyBlLnRhcmdldC52YWx1ZVxuICAgICAgICAgICAgICAgICAgICA6IGU7XG4gICAgICAgICAgICAgICAgaGFuZGxlQ2hhbmdlKGFjdHVhbFZhbHVlKTtcbiAgICAgICAgICAgICAgICBpZiAodHlwZW9mIGNoaWxkUHJvcHMub25DaGFuZ2UgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgICAgICAgICAgY2hpbGRQcm9wcy5vbkNoYW5nZShlLCAuLi5hcmdzKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LCBvbkJsdXI6ICguLi5hcmdzKSA9PiB7XG4gICAgICAgICAgICAgICAgaGFuZGxlQmx1cigpO1xuICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgY2hpbGRQcm9wcy5vbkJsdXIgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgICAgICAgICAgY2hpbGRQcm9wcy5vbkJsdXIoLi4uYXJncyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSwgc2l6ZTogY2hpbGRQcm9wcy5zaXplIHx8IHNpemUgfSwgKGZpbmFsU3RhdHVzID09PSAnZXJyb3InICYmIHsgc3RhdHVzOiAnZXJyb3InIH0pKTtcbiAgICAgICAgcmV0dXJuIFJlYWN0LmNsb25lRWxlbWVudChjaGlsZCwgaW5qZWN0ZWRQcm9wcyk7XG4gICAgfTtcbiAgICByZXR1cm4ge1xuICAgICAgICBmaWVsZFZhbHVlLFxuICAgICAgICBmaWVsZEVycm9yLFxuICAgICAgICBmaWVsZFZhbGlkYXRpbmcsXG4gICAgICAgIHZhbGlkYXRlU3RhdHVzOiBmaW5hbFN0YXR1cyxcbiAgICAgICAgaXNSZXF1aXJlZCxcbiAgICAgICAgc2l6ZSxcbiAgICAgICAgbGFiZWxBbGlnbixcbiAgICAgICAgcmVxdWlyZWRNYXJrLFxuICAgICAgICBpbmplY3RGaWVsZCxcbiAgICB9O1xufSJdLCJzb3VyY2VSb290IjoiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjIn0=
227
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvUHJvRm9ybS9zcmMvY29tcG9uZW50cy9Qcm9Gb3JtL2NvcmUvdXNlRm9ybUl0ZW0udHMiLCJjb21wb25lbnRzL1Byb0Zvcm0vY29yZS91c2VGb3JtSXRlbS5qcyJdLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfdXNlRXZlbnRDYWxsYmFjayIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfdXNlRGVib3VuY2VkQ2FsbGJhY2syIiwiX2NvbnRleHQyIiwiX3BhdGhVdGlscyIsIl9ydW5SdWxlcyIsIl9jb25zdGFudHMiLCJfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUiLCJlIiwiV2Vha01hcCIsInIiLCJ0IiwiX19lc01vZHVsZSIsIl90eXBlb2YzIiwiaGFzIiwiZ2V0IiwibiIsIl9fcHJvdG9fXyIsImEiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsInUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJpIiwic2V0IiwiX19hd2FpdGVyIiwidGhpc0FyZyIsIl9hcmd1bWVudHMiLCJQIiwiZ2VuZXJhdG9yIiwiYWRvcHQiLCJ2YWx1ZSIsInJlc29sdmUiLCJQcm9taXNlIiwicmVqZWN0IiwiZnVsZmlsbGVkIiwic3RlcCIsIm5leHQiLCJyZWplY3RlZCIsInJlc3VsdCIsImRvbmUiLCJ0aGVuIiwiYXBwbHkiLCJleHRyYWN0RXZlbnRWYWx1ZSIsInZhbHVlUHJvcE5hbWUiLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJ1bmRlZmluZWQiLCJfdHlwZW9mMiIsImV2ZW50IiwidGFyZ2V0IiwidXNlRm9ybUl0ZW0iLCJvcHRpb25zIiwiX3RoaXMiLCJuYW1lIiwiX29wdGlvbnMkcnVsZXMiLCJydWxlcyIsInJlcXVpcmVkIiwidmFsaWRhdGVTdGF0dXMiLCJfb3B0aW9ucyR2YWx1ZVByb3BOYW0iLCJ2YWxpZGF0ZURlYm91bmNlIiwiY3R4IiwidXNlUHJvRm9ybUNvbnRleHQiLCJ2YWx1ZXMiLCJlcnJvcnMiLCJ3YXJuaW5ncyIsInZhbGlkYXRpbmciLCJzZXRGaWVsZFZhbHVlIiwidmFsaWRhdGVGaWVsZCIsInZhbGlkYXRlRmllbGRBc3luYyIsInJlZ2lzdGVyRmllbGQiLCJ1bnJlZ2lzdGVyRmllbGQiLCJzaXplIiwibGFiZWxBbGlnbiIsInJlcXVpcmVkTWFyayIsInZhbGlkYXRlVHJpZ2dlciIsImlzUmVxdWlyZWQiLCJCb29sZWFuIiwic29tZSIsInJ1bGUiLCJmaWVsZFZhbHVlIiwiaW5jbHVkZXMiLCJnZXROZXN0ZWRWYWx1ZSIsImZpZWxkRXJyb3IiLCJmaWVsZFdhcm5pbmciLCJmaWVsZFZhbGlkYXRpbmciLCJmaW5hbFN0YXR1cyIsInJ1blZhbGlkYXRlIiwidXNlRXZlbnRDYWxsYmFjayIsInRyaWdnZXIiLCJhcHBsaWNhYmxlIiwiZmlsdGVyUnVsZXNCeVRyaWdnZXIiLCJydW5WYWxpZGF0ZUFzeW5jIiwiX3JlZ2VuZXJhdG9yIiwibWFyayIsIl9jYWxsZWUiLCJ3cmFwIiwiX2NvbnRleHQiLCJwcmV2IiwiYWJydXB0Iiwic3RvcCIsIl91c2VEZWJvdW5jZWRDYWxsYmFjayIsInVzZURlYm91bmNlZENhbGxiYWNrIiwiZGVib3VuY2VkVmFsaWRhdGUiLCJydW4iLCJoYW5kbGVDaGFuZ2UiLCJoYW5kbGVCbHVyIiwiY2hpbGRDYWxsYmFja3NSZWYiLCJ1c2VSZWYiLCJpbmplY3RlZE9uQ2hhbmdlIiwiX2IyIiwiX2EiLCJfYiIsIl9sZW4iLCJhcmdzIiwiQXJyYXkiLCJfa2V5IiwiY3VycmVudCIsIm9uQ2hhbmdlIiwiY29uY2F0IiwiaW5qZWN0ZWRPbkJsdXIiLCJfYjMiLCJfbGVuMiIsIl9rZXkyIiwib25CbHVyIiwidXNlRWZmZWN0IiwiaW5qZWN0RmllbGQiLCJjaGlsZCIsIlJlYWN0IiwiaXNWYWxpZEVsZW1lbnQiLCJjaGlsZFByb3BzIiwicHJvcHMiLCJkaXNwbGF5TmFtZSIsInR5cGUiLCJpc0Zvcm1Db21wb25lbnQiLCJGT1JNX0NPTVBPTkVOVF9OQU1FUyIsInBsYWNlaG9sZGVyIiwic2FmZVZhbHVlIiwiVEVYVF9MSUtFX0NPTVBPTkVOVF9OQU1FUyIsImluamVjdGVkUHJvcHMiLCJhc3NpZ24iLCJfZGVmaW5lUHJvcGVydHkyIiwic3RhdHVzIiwiY2xvbmVFbGVtZW50Il0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQUFBLElBQUFBLE1BQUEsR0FBQUMsdUJBQUEsQ0FBQUMsT0FBQTtBQUVBLElBQUFDLGlCQUFBLEdBQUFDLHNCQUFBLENBQUFGLE9BQUE7QUFDQSxJQUFBRyxzQkFBQSxHQUFBRCxzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQUksU0FBQSxHQUFBSixPQUFBO0FBQ0EsSUFBQUssVUFBQSxHQUFBTCxPQUFBO0FBQ0EsSUFBQU0sU0FBQSxHQUFBTixPQUFBO0FBQ0EsSUFBQU8sVUFBQSxHQUFBUCxPQUFBO0FBQThFLFNBQUFRLHlCQUFBQyxDQUFBLDZCQUFBQyxPQUFBLG1CQUFBQyxDQUFBLE9BQUFELE9BQUEsSUFBQUUsQ0FBQSxPQUFBRixPQUFBLFlBQUFGLHdCQUFBLFlBQUFBLHlCQUFBQyxDQUFBLFdBQUFBLENBQUEsR0FBQUcsQ0FBQSxHQUFBRCxDQUFBLEtBQUFGLENBQUE7QUFBQSxTQUFBVix3QkFBQVUsQ0FBQSxFQUFBRSxDQUFBLFNBQUFBLENBQUEsSUFBQUYsQ0FBQSxJQUFBQSxDQUFBLENBQUFJLFVBQUEsU0FBQUosQ0FBQSxlQUFBQSxDQUFBLGdCQUFBSyxRQUFBLENBQUFMLENBQUEsMEJBQUFBLENBQUEsc0JBQUFBLENBQUEsUUFBQUcsQ0FBQSxHQUFBSix3QkFBQSxDQUFBRyxDQUFBLE9BQUFDLENBQUEsSUFBQUEsQ0FBQSxDQUFBRyxHQUFBLENBQUFOLENBQUEsVUFBQUcsQ0FBQSxDQUFBSSxHQUFBLENBQUFQLENBQUEsT0FBQVEsQ0FBQSxLQUFBQyxTQUFBLFVBQUFDLENBQUEsR0FBQUMsTUFBQSxDQUFBQyxjQUFBLElBQUFELE1BQUEsQ0FBQUUsd0JBQUEsV0FBQUMsQ0FB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QUNWQyxZQUFZLEVBQVpBLFlBQVk7SUFDWkMsZUFBZSxFQUFmQSxlQUFlO0lBQ2YzQixjQUFjLEVBQUU0QixXQUFXO0lBQzNCVixVQUFVLEVBQVZBLFVBQVU7SUFDVkosSUFBSSxFQUFKQSxJQUFJO0lBQ0pDLFVBQVUsRUFBVkEsVUFBVTtJQUNWQyxZQUFZLEVBQVpBLFlBQVk7SUFDWm9ELFdBQVcsRUFBWEE7RUNoRUEsQ0RpRUQ7QUFDSCIsImZpbGUiOiJjb21wb25lbnRzL1Byb0Zvcm0vY29yZS91c2VGb3JtSXRlbS5qcyIsInNvdXJjZXNDb250ZW50IjpbbnVsbCwidmFyIF9fYXdhaXRlciA9ICh0aGlzICYmIHRoaXMuX19hd2FpdGVyKSB8fCBmdW5jdGlvbiAodGhpc0FyZywgX2FyZ3VtZW50cywgUCwgZ2VuZXJhdG9yKSB7XG4gICAgZnVuY3Rpb24gYWRvcHQodmFsdWUpIHsgcmV0dXJuIHZhbHVlIGluc3RhbmNlb2YgUCA/IHZhbHVlIDogbmV3IFAoZnVuY3Rpb24gKHJlc29sdmUpIHsgcmVzb2x2ZSh2YWx1ZSk7IH0pOyB9XG4gICAgcmV0dXJuIG5ldyAoUCB8fCAoUCA9IFByb21pc2UpKShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7XG4gICAgICAgIGZ1bmN0aW9uIGZ1bGZpbGxlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvci5uZXh0KHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cbiAgICAgICAgZnVuY3Rpb24gcmVqZWN0ZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3JbXCJ0aHJvd1wiXSh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XG4gICAgICAgIGZ1bmN0aW9uIHN0ZXAocmVzdWx0KSB7IHJlc3VsdC5kb25lID8gcmVzb2x2ZShyZXN1bHQudmFsdWUpIDogYWRvcHQocmVzdWx0LnZhbHVlKS50aGVuKGZ1bGZpbGxlZCwgcmVqZWN0ZWQpOyB9XG4gICAgICAgIHN0ZXAoKGdlbmVyYXRvciA9IGdlbmVyYXRvci5hcHBseSh0aGlzQXJnLCBfYXJndW1lbnRzIHx8IFtdKSkubmV4dCgpKTtcbiAgICB9KTtcbn07XG5pbXBvcnQgUmVhY3QsIHsgdXNlRWZmZWN0LCB1c2VSZWYgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgdXNlRXZlbnRDYWxsYmFjayBmcm9tICdAMW1vbmV5L2hvb2tzL3VzZUV2ZW50Q2FsbGJhY2snO1xuaW1wb3J0IHVzZURlYm91bmNlZENhbGxiYWNrIGZyb20gJ0AxbW9uZXkvaG9va3MvdXNlRGVib3VuY2VkQ2FsbGJhY2snO1xuaW1wb3J0IHsgdXNlUHJvRm9ybUNvbnRleHQgfSBmcm9tICcuLi9jb250ZXh0JztcbmltcG9ydCB7IGdldE5lc3RlZFZhbHVlIH0gZnJvbSAnLi9wYXRoVXRpbHMnO1xuaW1wb3J0IHsgZmlsdGVyUnVsZXNCeVRyaWdnZXIgfSBmcm9tICcuL3J1blJ1bGVzJztcbmltcG9ydCB7IEZPUk1fQ09NUE9ORU5UX05BTUVTLCBURVhUX0xJS0VfQ09NUE9ORU5UX05BTUVTIH0gZnJvbSAnLi9jb25zdGFudHMnO1xuLyoqXG4gKiBOb3JtYWxpc2UgYSBjaGFuZ2UtaGFuZGxlciBhcmd1bWVudDogdW53cmFwIGBlLnRhcmdldFt2YWx1ZVByb3BOYW1lXWAgL1xuICogYGVbdmFsdWVQcm9wTmFtZV1gIChlLmcuIENoZWNrYm94IGVtaXRzIGB7IGNoZWNrZWQgfWApLCBlbHNlIGBlLnRhcmdldC52YWx1ZWAsXG4gKiBlbHNlIHBhc3MgdGhlIHZhbHVlIHRocm91Z2ggKGUuZy4gU3dpdGNoIGVtaXRzIHRoZSBib29sZWFuIGRpcmVjdGx5KS5cbiAqL1xuZnVuY3Rpb24gZXh0cmFjdEV2ZW50VmFsdWUoZSwgdmFsdWVQcm9wTmFtZSA9ICd2YWx1ZScpIHtcbiAgICBpZiAoZSA9PT0gbnVsbCB8fCB0eXBlb2YgZSAhPT0gJ29iamVjdCcpXG4gICAgICAgIHJldHVybiBlO1xuICAgIGNvbnN0IGV2ZW50ID0gZTtcbiAgICBpZiAodmFsdWVQcm9wTmFtZSAhPT0gJ3ZhbHVlJyAmJiB2YWx1ZVByb3BOYW1lIGluIGV2ZW50KSB7XG4gICAgICAgIHJldHVybiBldmVudFt2YWx1ZVByb3BOYW1lXTtcbiAgICB9XG4gICAgaWYgKCd0YXJnZXQnIGluIGV2ZW50ICYmIGV2ZW50LnRhcmdldCAmJiB0eXBlb2YgZXZlbnQudGFyZ2V0ID09PSAnb2JqZWN0Jykge1xuICAgICAgICBjb25zdCB0YXJnZXQgPSBldmVudC50YXJnZXQ7XG4gICAgICAgIGlmICh2YWx1ZVByb3BOYW1lIGluIHRhcmdldClcbiAgICAgICAgICAgIHJldHVybiB0YXJnZXRbdmFsdWVQcm9wTmFtZV07XG4gICAgICAgIGlmICgndmFsdWUnIGluIHRhcmdldClcbiAgICAgICAgICAgIHJldHVybiB0YXJnZXQudmFsdWU7XG4gICAgfVxuICAgIHJldHVybiBlO1xufVxuZXhwb3J0IGZ1bmN0aW9uIHVzZUZvcm1JdGVtKG9wdGlvbnMpIHtcbiAgICBjb25zdCB7IG5hbWUsIHJ1bGVzID0gW10sIHJlcXVpcmVkLCB2YWxpZGF0ZVN0YXR1cywgdmFsdWVQcm9wTmFtZSA9ICd2YWx1ZScsIHZhbGlkYXRlRGVib3VuY2UsIH0gPSBvcHRpb25zO1xuICAgIGNvbnN0IGN0eCA9IHVzZVByb0Zvcm1Db250ZXh0KCk7XG4gICAgY29uc3QgeyB2YWx1ZXMsIGVycm9ycywgd2FybmluZ3MsIHZhbGlkYXRpbmcsIHNldEZpZWxkVmFsdWUsIHZhbGlkYXRlRmllbGQsIHZhbGlkYXRlRmllbGRBc3luYywgcmVnaXN0ZXJGaWVsZCwgdW5yZWdpc3RlckZpZWxkLCBzaXplLCBsYWJlbEFsaWduLCByZXF1aXJlZE1hcmssIHZhbGlkYXRlVHJpZ2dlciwgfSA9IGN0eDtcbiAgICBjb25zdCBpc1JlcXVpcmVkID0gQm9vbGVhbihyZXF1aXJlZCB8fCBydWxlcy5zb21lKChydWxlKSA9PiBydWxlLnJlcXVpcmVkKSk7XG4gICAgY29uc3QgZmllbGRWYWx1ZSA9IG5hbWVcbiAgICAgICAgPyAobmFtZS5pbmNsdWRlcygnLicpID8gZ2V0TmVzdGVkVmFsdWUodmFsdWVzLCBuYW1lKSA6IHZhbHVlc1tuYW1lXSlcbiAgICAgICAgOiB1bmRlZmluZWQ7XG4gICAgLy8gRXJyb3JzL3dhcm5pbmdzIGFyZSBzdG9yZWQgRkxBVCwga2V5ZWQgYnkgdGhlIGZ1bGwgKHBvc3NpYmx5IGRvdHRlZCkgZmllbGRcbiAgICAvLyBuYW1lIOKAlCBuZXZlciByZXNvbHZlIHRoZW0gYXMgbmVzdGVkIHBhdGhzIG9yIGRvdHRlZCBuYW1lcyB3b3VsZCBtaXNzLlxuICAgIGNvbnN0IGZpZWxkRXJyb3IgPSBuYW1lID8gZXJyb3JzW25hbWVdIDogdW5kZWZpbmVkO1xuICAgIGNvbnN0IGZpZWxkV2FybmluZyA9IG5hbWUgPyB3YXJuaW5nc1tuYW1lXSA6IHVuZGVmaW5lZDtcbiAgICBjb25zdCBmaWVsZFZhbGlkYXRpbmcgPSBuYW1lID8gKHZhbGlkYXRpbmdbbmFtZV0gfHwgZmFsc2UpIDogZmFsc2U7XG4gICAgY29uc3QgZmluYWxTdGF0dXMgPSB2YWxpZGF0ZVN0YXR1cyB8fCAoZmllbGRFcnJvciA/ICdlcnJvcicgOiBmaWVsZFdhcm5pbmcgPyAnd2FybmluZycgOiB1bmRlZmluZWQpO1xuICAgIC8vIFJ1biBvbmx5IHRoZSBydWxlcyBhcHBsaWNhYmxlIHRvIHRoZSBnaXZlbiBpbnRlcmFjdGl2ZSB0cmlnZ2VyOyBydWxlc1xuICAgIC8vIHdpdGhvdXQgYW4gZXhwbGljaXQgdmFsaWRhdGVUcmlnZ2VyIGZvbGxvdyB0aGUgZm9ybS1sZXZlbCBzZXR0aW5nLlxuICAgIGNvbnN0IHJ1blZhbGlkYXRlID0gdXNlRXZlbnRDYWxsYmFjaygodmFsdWUsIHRyaWdnZXIpID0+IHtcbiAgICAgICAgaWYgKCFuYW1lIHx8IHJ1bGVzLmxlbmd0aCA9PT0gMClcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICBjb25zdCBhcHBsaWNhYmxlID0gZmlsdGVyUnVsZXNCeVRyaWdnZXIocnVsZXMsIHRyaWdnZXIsIHZhbGlkYXRlVHJpZ2dlcik7XG4gICAgICAgIGlmIChhcHBsaWNhYmxlLmxlbmd0aCA9PT0gMClcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICByZXR1cm4gdmFsaWRhdGVGaWVsZChuYW1lLCBhcHBsaWNhYmxlLCB2YWx1ZSk7XG4gICAgfSk7XG4gICAgY29uc3QgcnVuVmFsaWRhdGVBc3luYyA9IHVzZUV2ZW50Q2FsbGJhY2soKHZhbHVlLCB0cmlnZ2VyKSA9PiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgIGlmICghbmFtZSB8fCBydWxlcy5sZW5ndGggPT09IDApXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIGNvbnN0IGFwcGxpY2FibGUgPSBmaWx0ZXJSdWxlc0J5VHJpZ2dlcihydWxlcywgdHJpZ2dlciwgdmFsaWRhdGVUcmlnZ2VyKTtcbiAgICAgICAgaWYgKGFwcGxpY2FibGUubGVuZ3RoID09PSAwKVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB5aWVsZCB2YWxpZGF0ZUZpZWxkQXN5bmMobmFtZSwgdmFsdWUsIGFwcGxpY2FibGUpO1xuICAgIH0pKTtcbiAgICBjb25zdCB7IHJ1bjogZGVib3VuY2VkVmFsaWRhdGUgfSA9IHVzZURlYm91bmNlZENhbGxiYWNrKCh2YWx1ZSkgPT4ge1xuICAgICAgICBydW5WYWxpZGF0ZSh2YWx1ZSwgJ29uQ2hhbmdlJyk7XG4gICAgfSwgdmFsaWRhdGVEZWJvdW5jZSk7XG4gICAgY29uc3QgaGFuZGxlQ2hhbmdlID0gdXNlRXZlbnRDYWxsYmFjaygodmFsdWUpID0+IHtcbiAgICAgICAgaWYgKG5hbWUpIHtcbiAgICAgICAgICAgIHNldEZpZWxkVmFsdWUobmFtZSwgdmFsdWUpO1xuICAgICAgICAgICAgaWYgKHZhbGlkYXRlRGVib3VuY2UgJiYgdmFsaWRhdGVEZWJvdW5jZSA+IDApIHtcbiAgICAgICAgICAgICAgICBkZWJvdW5jZWRWYWxpZGF0ZSh2YWx1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICBydW5WYWxpZGF0ZSh2YWx1ZSwgJ29uQ2hhbmdlJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9KTtcbiAgICBjb25zdCBoYW5kbGVCbHVyID0gdXNlRXZlbnRDYWxsYmFjaygoKSA9PiB7XG4gICAgICAgIHJ1blZhbGlkYXRlQXN5bmMoZmllbGRWYWx1ZSwgJ29uQmx1cicpO1xuICAgIH0pO1xuICAgIC8vIExhdGVzdCBjaGlsZC1wcm92aWRlZCBjYWxsYmFja3MsIGNhcHR1cmVkIGF0IGluamVjdEZpZWxkIHRpbWUuIFRoZSBTVEFCTEVcbiAgICAvLyBpbmplY3RlZCBoYW5kbGVycyBiZWxvdyBkZWxlZ2F0ZSB0aHJvdWdoIHRoaXMgcmVmIGluc3RlYWQgb2YgYmVpbmdcbiAgICAvLyByZWNyZWF0ZWQgcGVyIHJlbmRlciDigJQgc28gYSBtZW1vaXplZCBmaWVsZCBjb21wb25lbnQgc2VlcyBzaGFsbG93LWVxdWFsXG4gICAgLy8gcHJvcHMgYWNyb3NzIHJlbmRlcnMgYW5kIGNhbiBiYWlsIG91dCB3aGlsZSBhbm90aGVyIGZpZWxkIGlzIHR5cGluZy5cbiAgICBjb25zdCBjaGlsZENhbGxiYWNrc1JlZiA9IHVzZVJlZih7fSk7XG4gICAgY29uc3QgaW5qZWN0ZWRPbkNoYW5nZSA9IHVzZUV2ZW50Q2FsbGJhY2soKGUsIC4uLmFyZ3MpID0+IHtcbiAgICAgICAgdmFyIF9hLCBfYjtcbiAgICAgICAgaGFuZGxlQ2hhbmdlKGV4dHJhY3RFdmVudFZhbHVlKGUsIHZhbHVlUHJvcE5hbWUpKTtcbiAgICAgICAgKF9iID0gKF9hID0gY2hpbGRDYWxsYmFja3NSZWYuY3VycmVudCkub25DaGFuZ2UpID09PSBudWxsIHx8IF9iID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYi5jYWxsKF9hLCBlLCAuLi5hcmdzKTtcbiAgICB9KTtcbiAgICBjb25zdCBpbmplY3RlZE9uQmx1ciA9IHVzZUV2ZW50Q2FsbGJhY2soKC4uLmFyZ3MpID0+IHtcbiAgICAgICAgdmFyIF9hLCBfYjtcbiAgICAgICAgaGFuZGxlQmx1cigpO1xuICAgICAgICAoX2IgPSAoX2EgPSBjaGlsZENhbGxiYWNrc1JlZi5jdXJyZW50KS5vbkJsdXIpID09PSBudWxsIHx8IF9iID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYi5jYWxsKF9hLCAuLi5hcmdzKTtcbiAgICB9KTtcbiAgICAvLyBLZWVwIHRoZSByZWdpc3RyeSBpbiBzeW5jIHdpdGggdGhlIExBVEVTVCBydWxlcyBldmVyeSByZW5kZXIgKHJlZ2lzdHJhdGlvblxuICAgIC8vIGlzIGEgY2hlYXAgcmVmIG11dGF0aW9uKTogZHluYW1pYyBydWxlcyAoZS5nLiByZXF1aXJlZCB0b2dnbGVkIGJ5IGFub3RoZXJcbiAgICAvLyBmaWVsZCkgbXVzdCBiZSB2aXNpYmxlIHRvIHN1Ym1pdC10aW1lIHZhbGlkYXRpb24sIG5vdCBqdXN0IG9uQ2hhbmdlLlxuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIGlmIChuYW1lICYmIHJlZ2lzdGVyRmllbGQpXG4gICAgICAgICAgICByZWdpc3RlckZpZWxkKG5hbWUsIHJ1bGVzKTtcbiAgICB9KTtcbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgICAgICAgaWYgKG5hbWUgJiYgdW5yZWdpc3RlckZpZWxkKVxuICAgICAgICAgICAgICAgIHVucmVnaXN0ZXJGaWVsZChuYW1lKTtcbiAgICAgICAgfTtcbiAgICB9LCBbbmFtZV0pO1xuICAgIGNvbnN0IGluamVjdEZpZWxkID0gKGNoaWxkKSA9PiB7XG4gICAgICAgIHZhciBfYTtcbiAgICAgICAgaWYgKCFuYW1lIHx8ICFSZWFjdC5pc1ZhbGlkRWxlbWVudChjaGlsZCkpXG4gICAgICAgICAgICByZXR1cm4gY2hpbGQ7XG4gICAgICAgIGNvbnN0IGNoaWxkUHJvcHMgPSBjaGlsZC5wcm9wcztcbiAgICAgICAgY29uc3QgZGlzcGxheU5hbWUgPSAoX2EgPSBjaGlsZC50eXBlKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuZGlzcGxheU5hbWU7XG4gICAgICAgIGNvbnN0IGlzRm9ybUNvbXBvbmVudCA9IEZPUk1fQ09NUE9ORU5UX05BTUVTLmluY2x1ZGVzKGRpc3BsYXlOYW1lKSB8fFxuICAgICAgICAgICAgY2hpbGRQcm9wcy5wbGFjZWhvbGRlciAhPT0gdW5kZWZpbmVkIHx8XG4gICAgICAgICAgICBjaGlsZFByb3BzLnZhbHVlICE9PSB1bmRlZmluZWQgfHxcbiAgICAgICAgICAgIGNoaWxkUHJvcHNbdmFsdWVQcm9wTmFtZV0gIT09IHVuZGVmaW5lZDtcbiAgICAgICAgaWYgKCFpc0Zvcm1Db21wb25lbnQpXG4gICAgICAgICAgICByZXR1cm4gY2hpbGQ7XG4gICAgICAgIGxldCBzYWZlVmFsdWUgPSBmaWVsZFZhbHVlO1xuICAgICAgICBpZiAoc2FmZVZhbHVlID09PSBudWxsIHx8IHNhZmVWYWx1ZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBpZiAodmFsdWVQcm9wTmFtZSA9PT0gJ2NoZWNrZWQnIHx8IFsnQ2hlY2tib3gnLCAnU3dpdGNoJ10uaW5jbHVkZXMoZGlzcGxheU5hbWUgfHwgJycpKSB7XG4gICAgICAgICAgICAgICAgc2FmZVZhbHVlID0gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIGlmIChURVhUX0xJS0VfQ09NUE9ORU5UX05BTUVTLmluY2x1ZGVzKGRpc3BsYXlOYW1lIHx8ICcnKSB8fFxuICAgICAgICAgICAgICAgIGNoaWxkUHJvcHMucGxhY2Vob2xkZXIgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgIHNhZmVWYWx1ZSA9ICcnO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKFRFWFRfTElLRV9DT01QT05FTlRfTkFNRVMuaW5jbHVkZXMoZGlzcGxheU5hbWUgfHwgJycpICYmXG4gICAgICAgICAgICB0eXBlb2Ygc2FmZVZhbHVlICE9PSAnc3RyaW5nJyAmJlxuICAgICAgICAgICAgdHlwZW9mIHNhZmVWYWx1ZSAhPT0gJ251bWJlcicpIHtcbiAgICAgICAgICAgIHNhZmVWYWx1ZSA9ICcnO1xuICAgICAgICB9XG4gICAgICAgIGNoaWxkQ2FsbGJhY2tzUmVmLmN1cnJlbnQgPSB7XG4gICAgICAgICAgICBvbkNoYW5nZTogdHlwZW9mIGNoaWxkUHJvcHMub25DaGFuZ2UgPT09ICdmdW5jdGlvbidcbiAgICAgICAgICAgICAgICA/IGNoaWxkUHJvcHMub25DaGFuZ2VcbiAgICAgICAgICAgICAgICA6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgIG9uQmx1cjogdHlwZW9mIGNoaWxkUHJvcHMub25CbHVyID09PSAnZnVuY3Rpb24nXG4gICAgICAgICAgICAgICAgPyBjaGlsZFByb3BzLm9uQmx1clxuICAgICAgICAgICAgICAgIDogdW5kZWZpbmVkLFxuICAgICAgICB9O1xuICAgICAgICBjb25zdCBpbmplY3RlZFByb3BzID0gT2JqZWN0LmFzc2lnbih7IFt2YWx1ZVByb3BOYW1lXTogc2FmZVZhbHVlLCBvbkNoYW5nZTogaW5qZWN0ZWRPbkNoYW5nZSwgb25CbHVyOiBpbmplY3RlZE9uQmx1ciB9LCAoZmluYWxTdGF0dXMgPT09ICdlcnJvcicgJiYgeyBzdGF0dXM6ICdlcnJvcicgfSkpO1xuICAgICAgICByZXR1cm4gUmVhY3QuY2xvbmVFbGVtZW50KGNoaWxkLCBpbmplY3RlZFByb3BzKTtcbiAgICB9O1xuICAgIHJldHVybiB7XG4gICAgICAgIGZpZWxkVmFsdWUsXG4gICAgICAgIGZpZWxkRXJyb3IsXG4gICAgICAgIGZpZWxkV2FybmluZyxcbiAgICAgICAgZmllbGRWYWxpZGF0aW5nLFxuICAgICAgICB2YWxpZGF0ZVN0YXR1czogZmluYWxTdGF0dXMsXG4gICAgICAgIGlzUmVxdWlyZWQsXG4gICAgICAgIHNpemUsXG4gICAgICAgIGxhYmVsQWxpZ24sXG4gICAgICAgIHJlcXVpcmVkTWFyayxcbiAgICAgICAgaW5qZWN0RmllbGQsXG4gICAgfTtcbn0iXSwic291cmNlUm9vdCI6Ii4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYyJ9
@@ -22,8 +22,11 @@ function renderDateReadonly(value) {
22
22
  }
23
23
  var ProFormDatePicker = exports.ProFormDatePicker = (0, _createProFormField.createProFormField)({
24
24
  component: _Calendar.Calendar,
25
+ // Registers into the form's valueType registry so dateFormatter formats this
26
+ // field as a date; pass valueType="dateTime" per field for time-of-day output.
27
+ valueType: 'date',
25
28
  renderReadonly: renderDateReadonly
26
29
  });
27
30
  ProFormDatePicker.displayName = 'ProFormDatePicker';
28
31
  var _default = exports["default"] = ProFormDatePicker;
29
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvUHJvRm9ybS9zcmMvY29tcG9uZW50cy9Qcm9Gb3JtL2ZpZWxkcy9Qcm9Gb3JtRGF0ZVBpY2tlci50c3giLCJjb21wb25lbnRzL1Byb0Zvcm0vZmllbGRzL1Byb0Zvcm1EYXRlUGlja2VyLmpzIl0sIm5hbWVzIjpbIl9DYWxlbmRhciIsInJlcXVpcmUiLCJfY3JlYXRlUHJvRm9ybUZpZWxkIiwicmVuZGVyRGF0ZVJlYWRvbmx5IiwidmFsdWUiLCJ1bmRlZmluZWQiLCJEYXRlIiwidG9Mb2NhbGVEYXRlU3RyaW5nIiwiQXJyYXkiLCJpc0FycmF5IiwiZmlsdGVyIiwidiIsIm1hcCIsImQiLCJqb2luIiwiU3RyaW5nIiwiUHJvRm9ybURhdGVQaWNrZXIiLCJleHBvcnRzIiwiY3JlYXRlUHJvRm9ybUZpZWxkIiwiY29tcG9uZW50IiwiQ2FsZW5kYXIiLCJyZW5kZXJSZWFkb25seSIsImRpc3BsYXlOYW1lIiwiX2RlZmF1bHQiXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLElBQUFBLFNBQUEsR0FBQUMsT0FBQTtBQUVBLElBQUFDLG1CQUFBLEdBQUFELE9BQUE7QUFFQSxTQUFTRSxrQkFBa0JBLENBQUNDLEtBQWMsRUFBQTtFQUN4QyxJQUFJQSxLQUFLLEtBQUssSUFBSSxJQUFJQSxLQUFLLEtBQUtDLFNBQVMsRUFBRSxPQUFPLEdBQUc7RUFFckQsSUFBSUQsS0FBSyxZQUFZRSxJQUFJLEVBQUU7SUFDekIsT0FBT0YsS0FBSyxDQUFDRyxrQkFBa0IsQ0FBQSxDQUFFO0VBQ25DO0VBRUEsSUFBSUMsS0FBSyxDQUFDQyxPQUFPLENBQUNMLEtBQUssQ0FBQyxFQUFFO0lBQ3hCLE9BQU9BLEtBQUssQ0FDVE0sTUFBTSxDQUFDLFVBQUNDLENBQUM7TUFBQSxPQUFnQkEsQ0FBQyxZQUFZTCxJQUFJO0lBQUEsRUFBQyxDQUMzQ00sR0FBRyxDQUFDLFVBQUNDLENBQUM7TUFBQSxPQUFLQSxDQUFDLENBQUNOLGtCQUFrQixDQUFBLENBQUU7SUFBQSxFQUFDLENBQ2xDTyxJQUFJLENBQUMsS0FBSyxDQUFDO0VBQ2hCO0VBRUEsT0FBT0MsTUFBTSxDQUFDWCxLQUFLLENBQUM7QUFDdEI7QUFFTyxJQUFNWSxpQkFBaUIsR0FBQUMsT0FBQSxDQUFBRCxpQkFBQSxHQUFHLElBQUFFLHNDQUFrQixFQUFnQjtFQUNqRUMsU0FBUyxFQUFFQyxrQkFBUTtFQUNuQkMsY0FBYyxFQUFFbEI7QUNKbEIsQ0RLQyxDQUFDO0FBRUZhLGlCQUFpQixDQUFDTSxXQUFXLEdBQUcsbUJBQW1CO0FBQUMsSUFBQUMsUUFBQSxHQUFBTixPQUFBLGNBRXJDRCxpQkFBaUIiLCJmaWxlIjoiY29tcG9uZW50cy9Qcm9Gb3JtL2ZpZWxkcy9Qcm9Gb3JtRGF0ZVBpY2tlci5qcyIsInNvdXJjZXNDb250ZW50IjpbbnVsbCwiaW1wb3J0IHsgQ2FsZW5kYXIgfSBmcm9tICcuLi8uLi9DYWxlbmRhcic7XG5pbXBvcnQgeyBjcmVhdGVQcm9Gb3JtRmllbGQgfSBmcm9tICcuL2NyZWF0ZVByb0Zvcm1GaWVsZCc7XG5mdW5jdGlvbiByZW5kZXJEYXRlUmVhZG9ubHkodmFsdWUpIHtcbiAgICBpZiAodmFsdWUgPT09IG51bGwgfHwgdmFsdWUgPT09IHVuZGVmaW5lZClcbiAgICAgICAgcmV0dXJuICctJztcbiAgICBpZiAodmFsdWUgaW5zdGFuY2VvZiBEYXRlKSB7XG4gICAgICAgIHJldHVybiB2YWx1ZS50b0xvY2FsZURhdGVTdHJpbmcoKTtcbiAgICB9XG4gICAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgICAgIHJldHVybiB2YWx1ZVxuICAgICAgICAgICAgLmZpbHRlcigodikgPT4gdiBpbnN0YW5jZW9mIERhdGUpXG4gICAgICAgICAgICAubWFwKChkKSA9PiBkLnRvTG9jYWxlRGF0ZVN0cmluZygpKVxuICAgICAgICAgICAgLmpvaW4oJyB+ICcpO1xuICAgIH1cbiAgICByZXR1cm4gU3RyaW5nKHZhbHVlKTtcbn1cbmV4cG9ydCBjb25zdCBQcm9Gb3JtRGF0ZVBpY2tlciA9IGNyZWF0ZVByb0Zvcm1GaWVsZCh7XG4gICAgY29tcG9uZW50OiBDYWxlbmRhcixcbiAgICByZW5kZXJSZWFkb25seTogcmVuZGVyRGF0ZVJlYWRvbmx5LFxufSk7XG5Qcm9Gb3JtRGF0ZVBpY2tlci5kaXNwbGF5TmFtZSA9ICdQcm9Gb3JtRGF0ZVBpY2tlcic7XG5leHBvcnQgZGVmYXVsdCBQcm9Gb3JtRGF0ZVBpY2tlcjsiXSwic291cmNlUm9vdCI6Ii4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYyJ9
32
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvUHJvRm9ybS9zcmMvY29tcG9uZW50cy9Qcm9Gb3JtL2ZpZWxkcy9Qcm9Gb3JtRGF0ZVBpY2tlci50c3giLCJjb21wb25lbnRzL1Byb0Zvcm0vZmllbGRzL1Byb0Zvcm1EYXRlUGlja2VyLmpzIl0sIm5hbWVzIjpbIl9DYWxlbmRhciIsInJlcXVpcmUiLCJfY3JlYXRlUHJvRm9ybUZpZWxkIiwicmVuZGVyRGF0ZVJlYWRvbmx5IiwidmFsdWUiLCJ1bmRlZmluZWQiLCJEYXRlIiwidG9Mb2NhbGVEYXRlU3RyaW5nIiwiQXJyYXkiLCJpc0FycmF5IiwiZmlsdGVyIiwidiIsIm1hcCIsImQiLCJqb2luIiwiU3RyaW5nIiwiUHJvRm9ybURhdGVQaWNrZXIiLCJleHBvcnRzIiwiY3JlYXRlUHJvRm9ybUZpZWxkIiwiY29tcG9uZW50IiwiQ2FsZW5kYXIiLCJ2YWx1ZVR5cGUiLCJyZW5kZXJSZWFkb25seSIsImRpc3BsYXlOYW1lIiwiX2RlZmF1bHQiXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLElBQUFBLFNBQUEsR0FBQUMsT0FBQTtBQUVBLElBQUFDLG1CQUFBLEdBQUFELE9BQUE7QUFFQSxTQUFTRSxrQkFBa0JBLENBQUNDLEtBQWMsRUFBQTtFQUN4QyxJQUFJQSxLQUFLLEtBQUssSUFBSSxJQUFJQSxLQUFLLEtBQUtDLFNBQVMsRUFBRSxPQUFPLEdBQUc7RUFFckQsSUFBSUQsS0FBSyxZQUFZRSxJQUFJLEVBQUU7SUFDekIsT0FBT0YsS0FBSyxDQUFDRyxrQkFBa0IsQ0FBQSxDQUFFO0VBQ25DO0VBRUEsSUFBSUMsS0FBSyxDQUFDQyxPQUFPLENBQUNMLEtBQUssQ0FBQyxFQUFFO0lBQ3hCLE9BQU9BLEtBQUssQ0FDVE0sTUFBTSxDQUFDLFVBQUNDLENBQUM7TUFBQSxPQUFnQkEsQ0FBQyxZQUFZTCxJQUFJO0lBQUEsRUFBQyxDQUMzQ00sR0FBRyxDQUFDLFVBQUNDLENBQUM7TUFBQSxPQUFLQSxDQUFDLENBQUNOLGtCQUFrQixDQUFBLENBQUU7SUFBQSxFQUFDLENBQ2xDTyxJQUFJLENBQUMsS0FBSyxDQUFDO0VBQ2hCO0VBRUEsT0FBT0MsTUFBTSxDQUFDWCxLQUFLLENBQUM7QUFDdEI7QUFFTyxJQUFNWSxpQkFBaUIsR0FBQUMsT0FBQSxDQUFBRCxpQkFBQSxHQUFHLElBQUFFLHNDQUFrQixFQUFnQjtFQUNqRUMsU0FBUyxFQUFFQyxrQkFBUTtFQUNuQjtFQUNBO0VBQ0FDLFNBQVMsRUFBRSxNQUFNO0VBQ2pCQyxjQUFjLEVBQUVuQjtBQ0psQixDREtDLENBQUM7QUFFRmEsaUJBQWlCLENBQUNPLFdBQVcsR0FBRyxtQkFBbUI7QUFBQyxJQUFBQyxRQUFBLEdBQUFQLE9BQUEsY0FFckNELGlCQUFpQiIsImZpbGUiOiJjb21wb25lbnRzL1Byb0Zvcm0vZmllbGRzL1Byb0Zvcm1EYXRlUGlja2VyLmpzIiwic291cmNlc0NvbnRlbnQiOltudWxsLCJpbXBvcnQgeyBDYWxlbmRhciB9IGZyb20gJy4uLy4uL0NhbGVuZGFyJztcbmltcG9ydCB7IGNyZWF0ZVByb0Zvcm1GaWVsZCB9IGZyb20gJy4vY3JlYXRlUHJvRm9ybUZpZWxkJztcbmZ1bmN0aW9uIHJlbmRlckRhdGVSZWFkb25seSh2YWx1ZSkge1xuICAgIGlmICh2YWx1ZSA9PT0gbnVsbCB8fCB2YWx1ZSA9PT0gdW5kZWZpbmVkKVxuICAgICAgICByZXR1cm4gJy0nO1xuICAgIGlmICh2YWx1ZSBpbnN0YW5jZW9mIERhdGUpIHtcbiAgICAgICAgcmV0dXJuIHZhbHVlLnRvTG9jYWxlRGF0ZVN0cmluZygpO1xuICAgIH1cbiAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICAgICAgcmV0dXJuIHZhbHVlXG4gICAgICAgICAgICAuZmlsdGVyKCh2KSA9PiB2IGluc3RhbmNlb2YgRGF0ZSlcbiAgICAgICAgICAgIC5tYXAoKGQpID0+IGQudG9Mb2NhbGVEYXRlU3RyaW5nKCkpXG4gICAgICAgICAgICAuam9pbignIH4gJyk7XG4gICAgfVxuICAgIHJldHVybiBTdHJpbmcodmFsdWUpO1xufVxuZXhwb3J0IGNvbnN0IFByb0Zvcm1EYXRlUGlja2VyID0gY3JlYXRlUHJvRm9ybUZpZWxkKHtcbiAgICBjb21wb25lbnQ6IENhbGVuZGFyLFxuICAgIC8vIFJlZ2lzdGVycyBpbnRvIHRoZSBmb3JtJ3MgdmFsdWVUeXBlIHJlZ2lzdHJ5IHNvIGRhdGVGb3JtYXR0ZXIgZm9ybWF0cyB0aGlzXG4gICAgLy8gZmllbGQgYXMgYSBkYXRlOyBwYXNzIHZhbHVlVHlwZT1cImRhdGVUaW1lXCIgcGVyIGZpZWxkIGZvciB0aW1lLW9mLWRheSBvdXRwdXQuXG4gICAgdmFsdWVUeXBlOiAnZGF0ZScsXG4gICAgcmVuZGVyUmVhZG9ubHk6IHJlbmRlckRhdGVSZWFkb25seSxcbn0pO1xuUHJvRm9ybURhdGVQaWNrZXIuZGlzcGxheU5hbWUgPSAnUHJvRm9ybURhdGVQaWNrZXInO1xuZXhwb3J0IGRlZmF1bHQgUHJvRm9ybURhdGVQaWNrZXI7Il0sInNvdXJjZVJvb3QiOiIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMifQ==