@1money/component-ui 0.0.71 → 0.0.74

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (103) hide show
  1. package/es/components/ProForm/ProForm.d.ts +10 -2
  2. package/es/components/ProForm/ProForm.js +241 -55
  3. package/es/components/ProForm/ProFormDependency.d.ts +11 -2
  4. package/es/components/ProForm/ProFormDependency.js +29 -133
  5. package/es/components/ProForm/ProFormItem.js +146 -52
  6. package/es/components/ProForm/ProFormList.js +114 -62
  7. package/es/components/ProForm/SchemaForm.d.ts +7 -0
  8. package/es/components/ProForm/SchemaForm.js +103 -0
  9. package/es/components/ProForm/Submitter.js +26 -5
  10. package/es/components/ProForm/context.d.ts +30 -3
  11. package/es/components/ProForm/context.js +69 -10
  12. package/es/components/ProForm/core/constants.d.ts +12 -3
  13. package/es/components/ProForm/core/constants.js +18 -7
  14. package/es/components/ProForm/core/formStore.d.ts +24 -0
  15. package/es/components/ProForm/core/formStore.js +101 -0
  16. package/es/components/ProForm/core/hooks/useForm.d.ts +4 -1
  17. package/es/components/ProForm/core/hooks/useForm.js +336 -212
  18. package/es/components/ProForm/core/hooks/useFormCore.d.ts +5 -1
  19. package/es/components/ProForm/core/hooks/useFormCore.js +151 -93
  20. package/es/components/ProForm/core/interface.d.ts +33 -12
  21. package/es/components/ProForm/core/runRules.d.ts +20 -8
  22. package/es/components/ProForm/core/runRules.js +105 -50
  23. package/es/components/ProForm/core/useFormItem.d.ts +10 -1
  24. package/es/components/ProForm/core/useFormItem.js +141 -56
  25. package/es/components/ProForm/fields/ProFormDatePicker.js +4 -1
  26. package/es/components/ProForm/fields/ProFormFieldSet.js +20 -7
  27. package/es/components/ProForm/fields/createProFormField.js +61 -32
  28. package/es/components/ProForm/hooks/useFieldRequest.d.ts +6 -1
  29. package/es/components/ProForm/hooks/useFieldRequest.js +54 -9
  30. package/es/components/ProForm/hooks/useUrlSync.d.ts +16 -0
  31. package/es/components/ProForm/hooks/useUrlSync.js +170 -0
  32. package/es/components/ProForm/index.d.ts +12 -5
  33. package/es/components/ProForm/index.js +7 -2
  34. package/es/components/ProForm/interface.d.ts +185 -28
  35. package/es/components/ProForm/layouts/DialogForm.d.ts +5 -1
  36. package/es/components/ProForm/layouts/DialogForm.js +18 -7
  37. package/es/components/ProForm/layouts/DrawerForm.d.ts +5 -1
  38. package/es/components/ProForm/layouts/DrawerForm.js +17 -7
  39. package/es/components/ProForm/layouts/QueryFilter.d.ts +5 -2
  40. package/es/components/ProForm/layouts/QueryFilter.js +47 -71
  41. package/es/components/ProForm/layouts/useOverlayForm.d.ts +2 -2
  42. package/es/components/ProForm/layouts/useOverlayForm.js +27 -8
  43. package/es/components/ProForm/style/ProForm.css +4 -4
  44. package/es/components/ProForm/utils.d.ts +12 -1
  45. package/es/components/ProForm/utils.js +101 -28
  46. package/es/components/ProTable/ProTable.js +3 -3
  47. package/es/components/Tooltip/style/Tooltip.css +1 -0
  48. package/es/index.css +1 -1
  49. package/es/index.d.ts +2 -2
  50. package/es/index.js +2 -2
  51. package/lib/components/ProForm/ProForm.d.ts +10 -2
  52. package/lib/components/ProForm/ProForm.js +239 -53
  53. package/lib/components/ProForm/ProFormDependency.d.ts +11 -2
  54. package/lib/components/ProForm/ProFormDependency.js +30 -135
  55. package/lib/components/ProForm/ProFormItem.js +143 -48
  56. package/lib/components/ProForm/ProFormList.js +112 -60
  57. package/lib/components/ProForm/SchemaForm.d.ts +7 -0
  58. package/lib/components/ProForm/SchemaForm.js +110 -0
  59. package/lib/components/ProForm/Submitter.js +26 -5
  60. package/lib/components/ProForm/context.d.ts +30 -3
  61. package/lib/components/ProForm/context.js +69 -10
  62. package/lib/components/ProForm/core/constants.d.ts +12 -3
  63. package/lib/components/ProForm/core/constants.js +19 -8
  64. package/lib/components/ProForm/core/formStore.d.ts +24 -0
  65. package/lib/components/ProForm/core/formStore.js +110 -0
  66. package/lib/components/ProForm/core/hooks/useForm.d.ts +4 -1
  67. package/lib/components/ProForm/core/hooks/useForm.js +336 -212
  68. package/lib/components/ProForm/core/hooks/useFormCore.d.ts +5 -1
  69. package/lib/components/ProForm/core/hooks/useFormCore.js +150 -92
  70. package/lib/components/ProForm/core/interface.d.ts +33 -12
  71. package/lib/components/ProForm/core/runRules.d.ts +20 -8
  72. package/lib/components/ProForm/core/runRules.js +106 -50
  73. package/lib/components/ProForm/core/useFormItem.d.ts +10 -1
  74. package/lib/components/ProForm/core/useFormItem.js +138 -53
  75. package/lib/components/ProForm/fields/ProFormDatePicker.js +4 -1
  76. package/lib/components/ProForm/fields/ProFormFieldSet.js +19 -6
  77. package/lib/components/ProForm/fields/createProFormField.js +61 -32
  78. package/lib/components/ProForm/hooks/useFieldRequest.d.ts +6 -1
  79. package/lib/components/ProForm/hooks/useFieldRequest.js +53 -8
  80. package/lib/components/ProForm/hooks/useUrlSync.d.ts +16 -0
  81. package/lib/components/ProForm/hooks/useUrlSync.js +178 -0
  82. package/lib/components/ProForm/index.d.ts +12 -5
  83. package/lib/components/ProForm/index.js +16 -1
  84. package/lib/components/ProForm/interface.d.ts +185 -28
  85. package/lib/components/ProForm/layouts/DialogForm.d.ts +5 -1
  86. package/lib/components/ProForm/layouts/DialogForm.js +18 -7
  87. package/lib/components/ProForm/layouts/DrawerForm.d.ts +5 -1
  88. package/lib/components/ProForm/layouts/DrawerForm.js +17 -7
  89. package/lib/components/ProForm/layouts/QueryFilter.d.ts +5 -2
  90. package/lib/components/ProForm/layouts/QueryFilter.js +46 -70
  91. package/lib/components/ProForm/layouts/useOverlayForm.d.ts +2 -2
  92. package/lib/components/ProForm/layouts/useOverlayForm.js +30 -8
  93. package/lib/components/ProForm/style/ProForm.css +4 -4
  94. package/lib/components/ProForm/utils.d.ts +12 -1
  95. package/lib/components/ProForm/utils.js +104 -28
  96. package/lib/components/ProTable/ProTable.js +3 -3
  97. package/lib/components/Tooltip/style/Tooltip.css +1 -0
  98. package/lib/index.css +1 -1
  99. package/lib/index.d.ts +2 -2
  100. package/lib/index.js +13 -1
  101. package/package.json +1 -1
  102. package/scripts/mcp-server/examples.generated.json +90 -0
  103. package/scripts/mcp-server/index.generated.json +1866 -212
@@ -5,6 +5,7 @@ Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
7
  exports["default"] = exports.DrawerForm = void 0;
8
+ var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
8
9
  var _jsxRuntime = require("react/jsx-runtime");
9
10
  var _react = require("react");
10
11
  var _classnames = _interopRequireDefault(require("../../../utils/classnames"));
@@ -33,12 +34,15 @@ var DrawerFormBase = function DrawerFormBase(props) {
33
34
  submitTimeout = props.submitTimeout,
34
35
  _props$autoClose = props.autoClose,
35
36
  autoClose = _props$autoClose === void 0 ? true : _props$autoClose,
37
+ _props$closeOnReset = props.closeOnReset,
38
+ closeOnReset = _props$closeOnReset === void 0 ? true : _props$closeOnReset,
36
39
  drawerProps = props.drawerProps,
37
40
  onFinish = props.onFinish,
41
+ _onReset = props.onReset,
38
42
  submitter = props.submitter,
39
43
  children = props.children,
40
44
  _destroyOnClose = props.destroyOnClose,
41
- formProps = __rest(props, ["open", "onOpenChange", "trigger", "title", "width", "placement", "submitTimeout", "autoClose", "drawerProps", "onFinish", "submitter", "children", "destroyOnClose"]);
45
+ formProps = __rest(props, ["open", "onOpenChange", "trigger", "title", "width", "placement", "submitTimeout", "autoClose", "closeOnReset", "drawerProps", "onFinish", "onReset", "submitter", "children", "destroyOnClose"]);
42
46
  var _useOverlayForm = (0, _useOverlayForm2.useOverlayForm)({
43
47
  open: open,
44
48
  onOpenChange: onOpenChange,
@@ -61,13 +65,18 @@ var DrawerFormBase = function DrawerFormBase(props) {
61
65
  children: (0, _jsxRuntime.jsx)("div", {
62
66
  className: classes(),
63
67
  children: (0, _jsxRuntime.jsx)(_ProForm.ProForm, Object.assign({}, formProps, {
68
+ formComponentType: "DrawerForm",
64
69
  onFinish: handleFinish,
65
- submitter: submitter !== undefined ? submitter : {
66
- resetButtonProps: {
67
- onClick: handleHide
68
- },
69
- resetText: 'Cancel'
70
+ // Close rides the FORM-LEVEL reset channel — the single point
71
+ // where every reset surface converges. Consumer onReset runs
72
+ // first; closeOnReset opts out.
73
+ onReset: function onReset(values) {
74
+ _onReset === null || _onReset === void 0 ? void 0 : _onReset(values);
75
+ if (closeOnReset) handleHide();
70
76
  },
77
+ submitter: submitter === false ? false : Object.assign({
78
+ resetText: 'Cancel'
79
+ }, (0, _typeof2["default"])(submitter) === 'object' ? submitter : {}),
71
80
  children: children
72
81
  }))
73
82
  })
@@ -75,6 +84,7 @@ var DrawerFormBase = function DrawerFormBase(props) {
75
84
  });
76
85
  };
77
86
  DrawerFormBase.displayName = 'DrawerForm';
87
+ /** Generic-aware export — keeps `<DrawerForm<MyValues> …>` fully typed. */
78
88
  var DrawerForm = exports.DrawerForm = /*#__PURE__*/(0, _react.memo)(DrawerFormBase);
79
89
  var _default = exports["default"] = DrawerForm;
80
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvUHJvRm9ybS9sYXlvdXRzL0RyYXdlckZvcm0uanMiLCJjb21wb25lbnRzL1Byb0Zvcm0vc3JjL2NvbXBvbmVudHMvUHJvRm9ybS9sYXlvdXRzL0RyYXdlckZvcm0udHN4Il0sIm5hbWVzIjpbIl9qc3hSdW50aW1lIiwicmVxdWlyZSIsIl9yZWFjdCIsIl9jbGFzc25hbWVzIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsIl9EcmF3ZXIiLCJfUHJvRm9ybSIsIl9jb25zdGFudHMiLCJfdXNlT3ZlcmxheUZvcm0yIiwiX19yZXN0IiwicyIsImUiLCJ0IiwicCIsIk9iamVjdCIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImluZGV4T2YiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJpIiwibGVuZ3RoIiwicHJvcGVydHlJc0VudW1lcmFibGUiLCJjbGFzc2VzIiwiY2xhc3NuYW1lcyIsImNvbmNhdCIsIkNTU19QUkVGSVgiLCJEcmF3ZXJGb3JtQmFzZSIsInByb3BzIiwib3BlbiIsIm9uT3BlbkNoYW5nZSIsInRyaWdnZXIiLCJ0aXRsZSIsIl9wcm9wcyR3aWR0aCIsIndpZHRoIiwiX3Byb3BzJHBsYWNlbWVudCIsInBsYWNlbWVudCIsInN1Ym1pdFRpbWVvdXQiLCJfcHJvcHMkYXV0b0Nsb3NlIiwiYXV0b0Nsb3NlIiwiZHJhd2VyUHJvcHMiLCJvbkZpbmlzaCIsInN1Ym1pdHRlciIsImNoaWxkcmVuIiwiX2Rlc3Ryb3lPbkNsb3NlIiwiZGVzdHJveU9uQ2xvc2UiLCJmb3JtUHJvcHMiLCJfdXNlT3ZlcmxheUZvcm0iLCJ1c2VPdmVybGF5Rm9ybSIsIm1lcmdlZE9wZW4iLCJ0cmlnZ2VyTm9kZSIsImhhbmRsZUZpbmlzaCIsImhhbmRsZUhpZGUiLCJfanN4cyIsIl9GcmFnbWVudCIsIl9qc3giLCJEcmF3ZXIiLCJhc3NpZ24iLCJvbkNsb3NlIiwiZm9vdGVyIiwiY2xhc3NOYW1lIiwiUHJvRm9ybSIsInVuZGVmaW5lZCIsInJlc2V0QnV0dG9uUHJvcHMiLCJvbkNsaWNrIiwicmVzZXRUZXh0IiwiZGlzcGxheU5hbWUiLCJEcmF3ZXJGb3JtIiwiZXhwb3J0cyIsIm1lbW8iLCJfZGVmYXVsdCJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQVdBLElBQUFBLFdBQUEsR0FBQUMsT0FBQTtBQ1hBLElBQUFDLE1BQUEsR0FBQUQsT0FBQTtBQUVBLElBQUFFLFdBQUEsR0FBQUMsc0JBQUEsQ0FBQUgsT0FBQTtBQUNBLElBQUFJLE9BQUEsR0FBQUosT0FBQTtBQUNBLElBQUFLLFFBQUEsR0FBQUwsT0FBQTtBQUNBLElBQUFNLFVBQUEsR0FBQU4sT0FBQTtBQUNBLElBQUFPLGdCQUFBLEdBQUFQLE9BQUE7QUROQSxJQUFJUSxNQUFNLEdBQUksVUFBUSxTQUFLQSxNQUFNLElBQUssVUFBVUMsQ0FBQyxFQUFFQyxDQUFDLEVBQUU7RUFDbEQsSUFBSUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztFQUNWLEtBQUssSUFBSUMsQ0FBQyxJQUFJSCxDQUFDLEVBQUUsSUFBSUksTUFBTSxDQUFDQyxTQUFTLENBQUNDLGNBQWMsQ0FBQ0MsSUFBSSxDQUFDUCxDQUFDLEVBQUVHLENBQUMsQ0FBQyxJQUFJRixDQUFDLENBQUNPLE9BQU8sQ0FBQ0wsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUMvRUQsQ0FBQyxDQUFDQyxDQUFDLENBQUMsR0FBR0gsQ0FBQyxDQUFDRyxDQUFDLENBQUM7RUFDZixJQUFJSCxDQUFDLElBQUksSUFBSSxJQUFJLE9BQU9JLE1BQU0sQ0FBQ0sscUJBQXFCLEtBQUssVUFBVSxFQUMvRCxLQUFLLElBQUlDLENBQUMsR0FBRyxDQUFDLEVBQUVQLENBQUMsR0FBR0MsTUFBTSxDQUFDSyxxQkFBcUIsQ0FBQ1QsQ0FBQyxDQUFDLEVBQUVVLENBQUMsR0FBR1AsQ0FBQyxDQUFDUSxNQUFNLEVBQUVELENBQUMsRUFBRSxFQUFFO0lBQ3BFLElBQUlULENBQUMsQ0FBQ08sT0FBTyxDQUFDTCxDQUFDLENBQUNPLENBQUMsQ0FBQyxDQUFDLEdBQUcs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QU8sRUFBQS9DLE1BQUEsQ0FBQTJDLE1BQUEsQ0FBQSxDQUFBLENBQUEsRUFDRlgsU0FBUyxFQUFBO1VBQ2JMLFFBQVEsRUFBRVUsWUFBWTtVQUN0QlQsU0FBUyxFQUFFQSxTQUFTLEtBQUtvQixTQUFTLEdBQUdwQixTQUFTLEdBQUc7WUFDL0NxQixnQkFBZ0IsRUFBRTtjQUFFQyxPQUFPLEVBQUVaO1lBQVUsQ0FBRTtZQUN6Q2EsU0FBUyxFQUFFO1VEL0JELENDZ0NYO1VBQUF0QixRQUFBLEVBRUFBO1FBQVEsQ0FBQSxDQUFBO01BQ0QsQ0FBQTtJQUNOLENBQUEsQ0FBQSxDQUNDO0VBQUEsQ0FBQSxDQUNSO0FBRVAsQ0FBQztBQUVEaEIsY0FBYyxDQUFDdUMsV0FBVyxHQUFHLFlBQVk7QUFFbEMsSUFBTUMsVUFBVSxHQUFBQyxPQUFBLENBQUFELFVBQUEsZ0JBQUcsSUFBQUUsV0FBSSxFQUFDMUMsY0FBYyxDQUFDO0FBQUMsSUFBQTJDLFFBQUEsR0FBQUYsT0FBQSxjQUVoQ0QsVUFBVSIsImZpbGUiOiJjb21wb25lbnRzL1Byb0Zvcm0vbGF5b3V0cy9EcmF3ZXJGb3JtLmpzIiwic291cmNlc0NvbnRlbnQiOlsidmFyIF9fcmVzdCA9ICh0aGlzICYmIHRoaXMuX19yZXN0KSB8fCBmdW5jdGlvbiAocywgZSkge1xuICAgIHZhciB0ID0ge307XG4gICAgZm9yICh2YXIgcCBpbiBzKSBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHMsIHApICYmIGUuaW5kZXhPZihwKSA8IDApXG4gICAgICAgIHRbcF0gPSBzW3BdO1xuICAgIGlmIChzICE9IG51bGwgJiYgdHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMgPT09IFwiZnVuY3Rpb25cIilcbiAgICAgICAgZm9yICh2YXIgaSA9IDAsIHAgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHMpOyBpIDwgcC5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgaWYgKGUuaW5kZXhPZihwW2ldKSA8IDAgJiYgT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKHMsIHBbaV0pKVxuICAgICAgICAgICAgICAgIHRbcFtpXV0gPSBzW3BbaV1dO1xuICAgICAgICB9XG4gICAgcmV0dXJuIHQ7XG59O1xuaW1wb3J0IHsganN4IGFzIF9qc3gsIEZyYWdtZW50IGFzIF9GcmFnbWVudCwganN4cyBhcyBfanN4cyB9IGZyb20gXCJyZWFjdC9qc3gtcnVudGltZVwiO1xuaW1wb3J0IHsgbWVtbyB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IGRlZmF1bHQgYXMgY2xhc3NuYW1lcyB9IGZyb20gJy4uLy4uLy4uL3V0aWxzL2NsYXNzbmFtZXMnO1xuaW1wb3J0IHsgRHJhd2VyIH0gZnJvbSAnLi4vLi4vRHJhd2VyJztcbmltcG9ydCB7IFByb0Zvcm0gfSBmcm9tICcuLi9Qcm9Gb3JtJztcbmltcG9ydCB7IENTU19QUkVGSVggfSBmcm9tICcuLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgdXNlT3ZlcmxheUZvcm0gfSBmcm9tICcuL3VzZU92ZXJsYXlGb3JtJztcbmNvbnN0IGNsYXNzZXMgPSBjbGFzc25hbWVzKGAke0NTU19QUkVGSVh9LWRyYXdlci1mb3JtYCk7XG5jb25zdCBEcmF3ZXJGb3JtQmFzZSA9IChwcm9wcykgPT4ge1xuICAgIGNvbnN0IHsgb3Blbiwgb25PcGVuQ2hhbmdlLCB0cmlnZ2VyLCB0aXRsZSwgd2lkdGggPSA0ODAsIHBsYWNlbWVudCA9ICdyaWdodCcsIHN1Ym1pdFRpbWVvdXQsIGF1dG9DbG9zZSA9IHRydWUsIGRyYXdlclByb3BzLCBvbkZpbmlzaCwgc3VibWl0dGVyLCBjaGlsZHJlbiwgXG4gICAgLy8gZGVzdHJveU9uQ2xvc2UgaXMgYWNjZXB0ZWQgZm9yIEFQSSBjb21wYXQgYnV0IG5vdCB1c2VkIOKAlFxuICAgIC8vIERyYXdlcidzIG93biB1c2VEcmF3ZXJUcmFuc2l0aW9uIGFscmVhZHkgdW5tb3VudHMgdGhlIGVudGlyZVxuICAgIC8vIERPTSB0cmVlIChpbmNsdWRpbmcgZm9ybSBjb250ZW50KSBhZnRlciB0aGUgY2xvc2UgYW5pbWF0aW9uLlxuICAgIGRlc3Ryb3lPbkNsb3NlOiBfZGVzdHJveU9uQ2xvc2UgfSA9IHByb3BzLCBmb3JtUHJvcHMgPSBfX3Jlc3QocHJvcHMsIFtcIm9wZW5cIiwgXCJvbk9wZW5DaGFuZ2VcIiwgXCJ0cmlnZ2VyXCIsIFwidGl0bGVcIiwgXCJ3aWR0aFwiLCBcInBsYWNlbWVudFwiLCBcInN1Ym1pdFRpbWVvdXRcIiwgXCJhdXRvQ2xvc2VcIiwgXCJkcmF3ZXJQcm9wc1wiLCBcIm9uRmluaXNoXCIsIFwic3VibWl0dGVyXCIsIFwiY2hpbGRyZW5cIiwgXCJkZXN0cm95T25DbG9zZVwiXSk7XG4gICAgY29uc3QgeyBtZXJnZWRPcGVuLCB0cmlnZ2VyTm9kZSwgaGFuZGxlRmluaXNoLCBoYW5kbGVIaWRlLCB9ID0gdXNlT3ZlcmxheUZvcm0oeyBvcGVuLCBvbk9wZW5DaGFuZ2UsIHRyaWdnZXIsIGF1dG9DbG9zZSwgc3VibWl0VGltZW91dCB9LCBvbkZpbmlzaCk7XG4gICAgcmV0dXJuIChfanN4cyhfRnJhZ21lbnQsIHsgY2hpbGRyZW46IFt0cmlnZ2VyTm9kZSwgX2pzeChEcmF3ZXIsIE9iamVjdC5hc3NpZ24oe30sIGRyYXdlclByb3BzLCB7IG9wZW46IG1lcmdlZE9wZW4sIHRpdGxlOiB0aXRsZSwgcGxhY2VtZW50OiBwbGFjZW1lbnQsIHdpZHRoOiB3aWR0aCwgb25DbG9zZTogaGFuZGxlSGlkZSwgZm9vdGVyOiBudWxsLCBjaGlsZHJlbjogX2pzeChcImRpdlwiLCB7IGNsYXNzTmFtZTogY2xhc3NlcygpLCBjaGlsZHJlbjogX2pzeChQcm9Gb3JtLCBPYmplY3QuYXNzaWduKHt9LCBmb3JtUHJvcHMsIHsgb25GaW5pc2g6IGhhbmRsZUZpbmlzaCwgc3VibWl0dGVyOiBzdWJtaXR0ZXIgIT09IHVuZGVmaW5lZCA/IHN1Ym1pdHRlciA6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNldEJ1dHRvblByb3BzOiB7IG9uQ2xpY2s6IGhhbmRsZUhpZGUgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNldFRleHQ6ICdDYW5jZWwnLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSwgY2hpbGRyZW46IGNoaWxkcmVuIH0pKSB9KSB9KSldIH0pKTtcbn07XG5EcmF3ZXJGb3JtQmFzZS5kaXNwbGF5TmFtZSA9ICdEcmF3ZXJGb3JtJztcbmV4cG9ydCBjb25zdCBEcmF3ZXJGb3JtID0gbWVtbyhEcmF3ZXJGb3JtQmFzZSk7XG5leHBvcnQgZGVmYXVsdCBEcmF3ZXJGb3JtOyIsbnVsbF0sInNvdXJjZVJvb3QiOiIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMifQ==
90
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvUHJvRm9ybS9sYXlvdXRzL0RyYXdlckZvcm0uanMiLCJjb21wb25lbnRzL1Byb0Zvcm0vc3JjL2NvbXBvbmVudHMvUHJvRm9ybS9sYXlvdXRzL0RyYXdlckZvcm0udHN4Il0sIm5hbWVzIjpbIl9qc3hSdW50aW1lIiwicmVxdWlyZSIsIl9yZWFjdCIsIl9jbGFzc25hbWVzIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsIl9EcmF3ZXIiLCJfUHJvRm9ybSIsIl9jb25zdGFudHMiLCJfdXNlT3ZlcmxheUZvcm0yIiwiX19yZXN0IiwicyIsImUiLCJ0IiwicCIsIk9iamVjdCIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImluZGV4T2YiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJpIiwibGVuZ3RoIiwicHJvcGVydHlJc0VudW1lcmFibGUiLCJjbGFzc2VzIiwiY2xhc3NuYW1lcyIsImNvbmNhdCIsIkNTU19QUkVGSVgiLCJEcmF3ZXJGb3JtQmFzZSIsInByb3BzIiwib3BlbiIsIm9uT3BlbkNoYW5nZSIsInRyaWdnZXIiLCJ0aXRsZSIsIl9wcm9wcyR3aWR0aCIsIndpZHRoIiwiX3Byb3BzJHBsYWNlbWVudCIsInBsYWNlbWVudCIsInN1Ym1pdFRpbWVvdXQiLCJfcHJvcHMkYXV0b0Nsb3NlIiwiYXV0b0Nsb3NlIiwiX3Byb3BzJGNsb3NlT25SZXNldCIsImNsb3NlT25SZXNldCIsImRyYXdlclByb3BzIiwib25GaW5pc2giLCJvblJlc2V0Iiwic3VibWl0dGVyIiwiY2hpbGRyZW4iLCJfZGVzdHJveU9uQ2xvc2UiLCJkZXN0cm95T25DbG9zZSIsImZvcm1Qcm9wcyIsIl91c2VPdmVybGF5Rm9ybSIsInVzZU92ZXJsYXlGb3JtIiwibWVyZ2VkT3BlbiIsInRyaWdnZXJOb2RlIiwiaGFuZGxlRmluaXNoIiwiaGFuZGxlSGlkZSIsIl9qc3hzIiwiX0ZyYWdtZW50IiwiX2pzeCIsIkRyYXdlciIsImFzc2lnbiIsIm9uQ2xvc2UiLCJmb290ZXIiLCJjbGFzc05hbWUiLCJQcm9Gb3JtIiwiZm9ybUNvbXBvbmVudFR5cGUiLCJ2YWx1ZXMiLCJyZXNldFRleHQiLCJfdHlwZW9mMiIsImRpc3BsYXlOYW1lIiwiRHJhd2VyRm9ybSIsImV4cG9ydHMiLCJtZW1vIiwiX2RlZmF1bHQiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBV0EsSUFBQUEsV0FBQSxHQUFBQyxPQUFBO0FDWEEsSUFBQUMsTUFBQSxHQUFBRCxPQUFBO0FBRUEsSUFBQUUsV0FBQSxHQUFBQyxzQkFBQSxDQUFBSCxPQUFBO0FBQ0EsSUFBQUksT0FBQSxHQUFBSixPQUFBO0FBQ0EsSUFBQUssUUFBQSxHQUFBTCxPQUFBO0FBQ0EsSUFBQU0sVUFBQSxHQUFBTixPQUFBO0FBQ0EsSUFBQU8sZ0JBQUEsR0FBQVAsT0FBQTtBRE5BLElBQUlRLE1BQU0sR0FBSSxVQUFRLFNBQUtBLE1BQU0sSUFBSyxVQUFVQyxDQUFDLEVBQUVDLENBQUMsRUFBRTtFQUNsRCxJQUFJQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0VBQ1YsS0FBSyxJQUFJQyxDQUFDLElBQUlILENBQUMsRUFBRSxJQUFJSSxNQUFNLENBQUNDLFNBQVMsQ0FBQ0MsY0FBYyxDQUFDQyxJQUFJLENBQUNQLENBQUMsRUFBRUcsQ0FBQyxDQUFDLElBQUlGLENBQUMsQ0FBQ08sT0FBTyxDQUFDTCxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQy9FRCxDQUFDLENBQUNDLENBQUMsQ0FBQyxHQUFHSCxDQUFDLENBQUNHLENBQUMsQ0FBQztFQUNmLElBQUlILENBQUMsSUFBSSxJQUFJLElBQUksT0FBT0ksTUFBTSxDQUFDSyxxQkFBcUIsS0FBSyxVQUFVLEVBQy9ELEtBQUssSUFBSUMsQ0FBQyxHQUFHLENBQUMsRUFBRVAsQ0FBQyxHQUFHQyxNQUFNLENBQUNLLHFCQUFxQixDQUFDVCxDQUFDLENBQUMsRUFBRVUsQ0FBQyxHQUFHUCxDQUFDLENBQUNRLE1BQU0sRUFBRUQsQ0FBQyxFQUFFLEVBQUU7SUFDcEUsSUFBSVQsQ0FBQyxD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LFVBQVUiLCJmaWxlIjoiY29tcG9uZW50cy9Qcm9Gb3JtL2xheW91dHMvRHJhd2VyRm9ybS5qcyIsInNvdXJjZXNDb250ZW50IjpbInZhciBfX3Jlc3QgPSAodGhpcyAmJiB0aGlzLl9fcmVzdCkgfHwgZnVuY3Rpb24gKHMsIGUpIHtcbiAgICB2YXIgdCA9IHt9O1xuICAgIGZvciAodmFyIHAgaW4gcykgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzLCBwKSAmJiBlLmluZGV4T2YocCkgPCAwKVxuICAgICAgICB0W3BdID0gc1twXTtcbiAgICBpZiAocyAhPSBudWxsICYmIHR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzID09PSBcImZ1bmN0aW9uXCIpXG4gICAgICAgIGZvciAodmFyIGkgPSAwLCBwID0gT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhzKTsgaSA8IHAubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGlmIChlLmluZGV4T2YocFtpXSkgPCAwICYmIE9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChzLCBwW2ldKSlcbiAgICAgICAgICAgICAgICB0W3BbaV1dID0gc1twW2ldXTtcbiAgICAgICAgfVxuICAgIHJldHVybiB0O1xufTtcbmltcG9ydCB7IGpzeCBhcyBfanN4LCBGcmFnbWVudCBhcyBfRnJhZ21lbnQsIGpzeHMgYXMgX2pzeHMgfSBmcm9tIFwicmVhY3QvanN4LXJ1bnRpbWVcIjtcbmltcG9ydCB7IG1lbW8gfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBkZWZhdWx0IGFzIGNsYXNzbmFtZXMgfSBmcm9tICcuLi8uLi8uLi91dGlscy9jbGFzc25hbWVzJztcbmltcG9ydCB7IERyYXdlciB9IGZyb20gJy4uLy4uL0RyYXdlcic7XG5pbXBvcnQgeyBQcm9Gb3JtIH0gZnJvbSAnLi4vUHJvRm9ybSc7XG5pbXBvcnQgeyBDU1NfUFJFRklYIH0gZnJvbSAnLi4vY29uc3RhbnRzJztcbmltcG9ydCB7IHVzZU92ZXJsYXlGb3JtIH0gZnJvbSAnLi91c2VPdmVybGF5Rm9ybSc7XG5jb25zdCBjbGFzc2VzID0gY2xhc3NuYW1lcyhgJHtDU1NfUFJFRklYfS1kcmF3ZXItZm9ybWApO1xuY29uc3QgRHJhd2VyRm9ybUJhc2UgPSAocHJvcHMpID0+IHtcbiAgICBjb25zdCB7IG9wZW4sIG9uT3BlbkNoYW5nZSwgdHJpZ2dlciwgdGl0bGUsIHdpZHRoID0gNDgwLCBwbGFjZW1lbnQgPSAncmlnaHQnLCBzdWJtaXRUaW1lb3V0LCBhdXRvQ2xvc2UgPSB0cnVlLCBjbG9zZU9uUmVzZXQgPSB0cnVlLCBkcmF3ZXJQcm9wcywgb25GaW5pc2gsIG9uUmVzZXQsIHN1Ym1pdHRlciwgY2hpbGRyZW4sIFxuICAgIC8vIGRlc3Ryb3lPbkNsb3NlIGlzIGFjY2VwdGVkIGZvciBBUEkgY29tcGF0IGJ1dCBub3QgdXNlZCDigJRcbiAgICAvLyBEcmF3ZXIncyBvd24gdXNlRHJhd2VyVHJhbnNpdGlvbiBhbHJlYWR5IHVubW91bnRzIHRoZSBlbnRpcmVcbiAgICAvLyBET00gdHJlZSAoaW5jbHVkaW5nIGZvcm0gY29udGVudCkgYWZ0ZXIgdGhlIGNsb3NlIGFuaW1hdGlvbi5cbiAgICBkZXN0cm95T25DbG9zZTogX2Rlc3Ryb3lPbkNsb3NlIH0gPSBwcm9wcywgZm9ybVByb3BzID0gX19yZXN0KHByb3BzLCBbXCJvcGVuXCIsIFwib25PcGVuQ2hhbmdlXCIsIFwidHJpZ2dlclwiLCBcInRpdGxlXCIsIFwid2lkdGhcIiwgXCJwbGFjZW1lbnRcIiwgXCJzdWJtaXRUaW1lb3V0XCIsIFwiYXV0b0Nsb3NlXCIsIFwiY2xvc2VPblJlc2V0XCIsIFwiZHJhd2VyUHJvcHNcIiwgXCJvbkZpbmlzaFwiLCBcIm9uUmVzZXRcIiwgXCJzdWJtaXR0ZXJcIiwgXCJjaGlsZHJlblwiLCBcImRlc3Ryb3lPbkNsb3NlXCJdKTtcbiAgICBjb25zdCB7IG1lcmdlZE9wZW4sIHRyaWdnZXJOb2RlLCBoYW5kbGVGaW5pc2gsIGhhbmRsZUhpZGUsIH0gPSB1c2VPdmVybGF5Rm9ybSh7IG9wZW4sIG9uT3BlbkNoYW5nZSwgdHJpZ2dlciwgYXV0b0Nsb3NlLCBzdWJtaXRUaW1lb3V0IH0sIG9uRmluaXNoKTtcbiAgICByZXR1cm4gKF9qc3hzKF9GcmFnbWVudCwgeyBjaGlsZHJlbjogW3RyaWdnZXJOb2RlLCBfanN4KERyYXdlciwgT2JqZWN0LmFzc2lnbih7fSwgZHJhd2VyUHJvcHMsIHsgb3BlbjogbWVyZ2VkT3BlbiwgdGl0bGU6IHRpdGxlLCBwbGFjZW1lbnQ6IHBsYWNlbWVudCwgd2lkdGg6IHdpZHRoLCBvbkNsb3NlOiBoYW5kbGVIaWRlLCBmb290ZXI6IG51bGwsIGNoaWxkcmVuOiBfanN4KFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCksIGNoaWxkcmVuOiBfanN4KFByb0Zvcm0sIE9iamVjdC5hc3NpZ24oe30sIGZvcm1Qcm9wcywgeyBmb3JtQ29tcG9uZW50VHlwZTogXCJEcmF3ZXJGb3JtXCIsIG9uRmluaXNoOiBoYW5kbGVGaW5pc2gsIFxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gQ2xvc2UgcmlkZXMgdGhlIEZPUk0tTEVWRUwgcmVzZXQgY2hhbm5lbCDigJQgdGhlIHNpbmdsZSBwb2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gd2hlcmUgZXZlcnkgcmVzZXQgc3VyZmFjZSBjb252ZXJnZXMuIENvbnN1bWVyIG9uUmVzZXQgcnVuc1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gZmlyc3Q7IGNsb3NlT25SZXNldCBvcHRzIG91dC5cbiAgICAgICAgICAgICAgICAgICAgICAgIG9uUmVzZXQ6ICh2YWx1ZXMpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvblJlc2V0ID09PSBudWxsIHx8IG9uUmVzZXQgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9uUmVzZXQodmFsdWVzKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoY2xvc2VPblJlc2V0KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVIaWRlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9LCBzdWJtaXR0ZXI6IHN1Ym1pdHRlciA9PT0gZmFsc2UgPyBmYWxzZSA6IE9iamVjdC5hc3NpZ24oeyByZXNldFRleHQ6ICdDYW5jZWwnIH0sICh0eXBlb2Ygc3VibWl0dGVyID09PSAnb2JqZWN0JyA/IHN1Ym1pdHRlciA6IHt9KSksIGNoaWxkcmVuOiBjaGlsZHJlbiB9KSkgfSkgfSkpXSB9KSk7XG59O1xuRHJhd2VyRm9ybUJhc2UuZGlzcGxheU5hbWUgPSAnRHJhd2VyRm9ybSc7XG4vKiogR2VuZXJpYy1hd2FyZSBleHBvcnQg4oCUIGtlZXBzIGA8RHJhd2VyRm9ybTxNeVZhbHVlcz4g4oCmPmAgZnVsbHkgdHlwZWQuICovXG5leHBvcnQgY29uc3QgRHJhd2VyRm9ybSA9IG1lbW8oRHJhd2VyRm9ybUJhc2UpO1xuZXhwb3J0IGRlZmF1bHQgRHJhd2VyRm9ybTsiLG51bGxdLCJzb3VyY2VSb290IjoiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjIn0=
@@ -1,4 +1,7 @@
1
+ import type { ReactElement } from 'react';
1
2
  import type { QueryFilterProps } from '../interface';
2
- import React from 'react';
3
- export declare const QueryFilter: React.NamedExoticComponent<QueryFilterProps>;
3
+ /** Generic-aware export — keeps `<QueryFilter<MyValues> …>` fully typed. */
4
+ export declare const QueryFilter: (<Values = Record<string, unknown>>(props: QueryFilterProps<Values>) => ReactElement | null) & {
5
+ displayName?: string;
6
+ };
4
7
  export default QueryFilter;
@@ -26,34 +26,20 @@ var __rest = void 0 && (void 0).__rest || function (s, e) {
26
26
  return t;
27
27
  };
28
28
  var classes = (0, _classnames["default"])("".concat(_constants.CSS_PREFIX, "-query-filter"));
29
+ var HIDDEN_STYLE = {
30
+ display: 'none'
31
+ };
32
+ // Keeps the wrapper layout-neutral: the field stays a direct flex item.
33
+ var CONTENTS_STYLE = {
34
+ display: 'contents'
35
+ };
29
36
  // ---------------------------------------------------------------------------
30
- // URL sync helpers
31
- // ---------------------------------------------------------------------------
32
- function getUrlParams() {
33
- if (typeof window === 'undefined') return {};
34
- var params = {};
35
- new URLSearchParams(window.location.search).forEach(function (v, k) {
36
- params[k] = v;
37
- });
38
- return params;
39
- }
40
- function setUrlParams(params) {
41
- if (typeof window === 'undefined') return;
42
- var sp = new URLSearchParams();
43
- for (var _i = 0, _Object$entries = Object.entries(params); _i < _Object$entries.length; _i++) {
44
- var _Object$entries$_i = (0, _slicedToArray2["default"])(_Object$entries[_i], 2),
45
- k = _Object$entries$_i[0],
46
- v = _Object$entries$_i[1];
47
- if (v !== null && v !== undefined && v !== '') {
48
- sp.set(k, String(v));
49
- }
50
- }
51
- var search = sp.toString();
52
- var url = search ? "".concat(window.location.pathname, "?").concat(search) : window.location.pathname;
53
- window.history.replaceState(null, '', url);
54
- }
55
- // ---------------------------------------------------------------------------
56
- // QueryFilter
37
+ // QueryFilter a compact filter bar on top of ProForm.
38
+ //
39
+ // URL synchronization is handled by ProForm itself (`syncToUrl`); QueryFilter
40
+ // only flips the default of `syncToUrlAsImportant` to true: a filter's reason
41
+ // to sync is restoring state from the URL on refresh, so URL params win over
42
+ // `initialValues` here (plain ProForm keeps the opposite default).
57
43
  // ---------------------------------------------------------------------------
58
44
  var QueryFilterBase = function QueryFilterBase(props) {
59
45
  var _a, _b;
@@ -67,47 +53,37 @@ var QueryFilterBase = function QueryFilterBase(props) {
67
53
  _props$split = props.split,
68
54
  split = _props$split === void 0 ? false : _props$split,
69
55
  searchConfig = props.searchConfig,
70
- syncToUrl = props.syncToUrl,
71
- onFinish = props.onFinish,
72
- onReset = props.onReset,
56
+ _props$syncToUrlAsImp = props.syncToUrlAsImportant,
57
+ syncToUrlAsImportant = _props$syncToUrlAsImp === void 0 ? true : _props$syncToUrlAsImp,
73
58
  children = props.children,
74
- _props$submitter = props.submitter,
75
- submitter = _props$submitter === void 0 ? false : _props$submitter,
76
- initialValuesProp = props.initialValues,
77
- formProps = __rest(props, ["defaultCollapsed", "collapsed", "onCollapse", "defaultColsNumber", "labelWidth", "split", "searchConfig", "syncToUrl", "onFinish", "onReset", "children", "submitter", "initialValues"]);
59
+ onFinishFailed = props.onFinishFailed,
60
+ _submitter = props.submitter,
61
+ formProps = __rest(props, ["defaultCollapsed", "collapsed", "onCollapse", "defaultColsNumber", "labelWidth", "split", "searchConfig", "syncToUrlAsImportant", "children", "onFinishFailed", "submitter"]);
78
62
  var _useControlledState = (0, _useControlledState3["default"])(defaultCollapsed, controlledCollapsed),
79
63
  _useControlledState2 = (0, _slicedToArray2["default"])(_useControlledState, 2),
80
64
  collapsed = _useControlledState2[0],
81
65
  setCollapsed = _useControlledState2[1];
82
- // ── syncToUrl: merge URL params into initial values on mount ──
83
- var syncInitRef = (0, _react.useRef)(false);
84
- var initialValues = (0, _react.useMemo)(function () {
85
- if (!syncToUrl || syncInitRef.current) return initialValuesProp;
86
- syncInitRef.current = true;
87
- var urlParams = getUrlParams();
88
- if (typeof syncToUrl === 'function') {
89
- return Object.assign(Object.assign({}, initialValuesProp), syncToUrl(urlParams, 'get'));
90
- }
91
- return Object.assign(Object.assign({}, initialValuesProp), urlParams);
92
- }, []);
93
- var handleSyncSet = (0, _useMemoizedFn["default"])(function (values) {
94
- if (!syncToUrl) return;
95
- var toWrite = typeof syncToUrl === 'function' ? syncToUrl(values, 'set') : values;
96
- setUrlParams(toWrite);
97
- });
98
- var handleFinish = (0, _useMemoizedFn["default"])(function (values) {
99
- handleSyncSet(values);
100
- onFinish === null || onFinish === void 0 ? void 0 : onFinish(values);
101
- });
102
- var handleReset = (0, _useMemoizedFn["default"])(function () {
103
- if (syncToUrl) setUrlParams({});
104
- onReset === null || onReset === void 0 ? void 0 : onReset();
105
- });
106
66
  var handleCollapse = (0, _useMemoizedFn["default"])(function () {
107
67
  var next = !collapsed;
108
68
  setCollapsed(next);
109
69
  onCollapse === null || onCollapse === void 0 ? void 0 : onCollapse(next);
110
70
  });
71
+ // A collapsed (display:none) field failing validation would block Search
72
+ // with an INVISIBLE error — auto-expand so the user can see and fix it.
73
+ var handleFinishFailed = (0, _useMemoizedFn["default"])(function (errorInfo) {
74
+ if (collapsed) {
75
+ var overflowHasError = _react["default"].Children.toArray(children).slice(defaultColsNumber).some(function (child) {
76
+ if (! /*#__PURE__*/_react["default"].isValidElement(child)) return false;
77
+ var childName = child.props.name;
78
+ return childName !== undefined && errorInfo.errors[childName] !== undefined;
79
+ });
80
+ if (overflowHasError) {
81
+ setCollapsed(false);
82
+ onCollapse === null || onCollapse === void 0 ? void 0 : onCollapse(false);
83
+ }
84
+ }
85
+ onFinishFailed === null || onFinishFailed === void 0 ? void 0 : onFinishFailed(errorInfo);
86
+ });
111
87
  // Count children and split visible/hidden
112
88
  var childArray = (0, _react.useMemo)(function () {
113
89
  var arr = [];
@@ -118,7 +94,6 @@ var QueryFilterBase = function QueryFilterBase(props) {
118
94
  });
119
95
  return arr;
120
96
  }, [children]);
121
- var visibleChildren = collapsed ? childArray.slice(0, defaultColsNumber) : childArray;
122
97
  var hasMore = childArray.length > defaultColsNumber;
123
98
  var searchText = (_a = searchConfig === null || searchConfig === void 0 ? void 0 : searchConfig.searchText) !== null && _a !== void 0 ? _a : _constants.DEFAULT_TEXT.search;
124
99
  var resetText = (_b = searchConfig === null || searchConfig === void 0 ? void 0 : searchConfig.resetText) !== null && _b !== void 0 ? _b : _constants.DEFAULT_TEXT.reset;
@@ -127,20 +102,21 @@ var QueryFilterBase = function QueryFilterBase(props) {
127
102
  width: labelWidth
128
103
  } : undefined;
129
104
  return (0, _jsxRuntime.jsx)(_ProForm.ProForm, Object.assign({}, formProps, {
130
- initialValues: initialValues,
131
- onFinish: handleFinish,
132
- onReset: handleReset,
105
+ syncToUrlAsImportant: syncToUrlAsImportant,
106
+ formComponentType: "QueryFilter",
107
+ onFinishFailed: handleFinishFailed,
133
108
  submitter: false,
134
109
  children: (0, _jsxRuntime.jsxs)("div", {
135
110
  className: classes(),
136
- children: [visibleChildren.map(function (child, index) {
111
+ children: [childArray.map(function (child, index) {
112
+ var hiddenByCollapse = collapsed && index >= defaultColsNumber;
137
113
  return (0, _jsxRuntime.jsxs)(_react["default"].Fragment, {
138
- children: [split && index > 0 && (0, _jsxRuntime.jsx)("div", {
114
+ children: [split && index > 0 && !hiddenByCollapse && (0, _jsxRuntime.jsx)("div", {
139
115
  className: classes('split')
140
- }), labelStyle ? (0, _jsxRuntime.jsx)("div", {
141
- style: labelStyle,
116
+ }), (0, _jsxRuntime.jsx)("div", {
117
+ style: hiddenByCollapse ? HIDDEN_STYLE : labelStyle !== null && labelStyle !== void 0 ? labelStyle : CONTENTS_STYLE,
142
118
  children: child
143
- }) : child]
119
+ })]
144
120
  }, index);
145
121
  }), (0, _jsxRuntime.jsxs)("div", {
146
122
  className: classes('actions'),
@@ -150,10 +126,9 @@ var QueryFilterBase = function QueryFilterBase(props) {
150
126
  size: buttonSize,
151
127
  children: searchText
152
128
  }), (0, _jsxRuntime.jsx)(_Button.Button, {
153
- type: "button",
129
+ type: "reset",
154
130
  color: "secondary",
155
131
  size: buttonSize,
156
- onClick: handleReset,
157
132
  children: resetText
158
133
  }), hasMore && (0, _jsxRuntime.jsx)(_Button.Button, {
159
134
  type: "button",
@@ -167,6 +142,7 @@ var QueryFilterBase = function QueryFilterBase(props) {
167
142
  }));
168
143
  };
169
144
  QueryFilterBase.displayName = 'QueryFilter';
145
+ /** Generic-aware export — keeps `<QueryFilter<MyValues> …>` fully typed. */
170
146
  var QueryFilter = exports.QueryFilter = /*#__PURE__*/(0, _react.memo)(QueryFilterBase);
171
147
  var _default = exports["default"] = QueryFilter;
172
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvUHJvRm9ybS9sYXlvdXRzL1F1ZXJ5RmlsdGVyLmpzIiwiY29tcG9uZW50cy9Qcm9Gb3JtL3NyYy9jb21wb25lbnRzL1Byb0Zvcm0vbGF5b3V0cy9RdWVyeUZpbHRlci50c3giXSwibmFtZXMiOlsiX2pzeFJ1bnRpbWUiLCJyZXF1aXJlIiwiX3JlYWN0IiwiX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQiLCJfdXNlQ29udHJvbGxlZFN0YXRlMyIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfdXNlTWVtb2l6ZWRGbiIsIl9jbGFzc25hbWVzIiwiX0J1dHRvbiIsIl9Qcm9Gb3JtIiwiX2NvbnN0YW50cyIsIl9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSIsImUiLCJXZWFrTWFwIiwiciIsInQiLCJfX2VzTW9kdWxlIiwiX3R5cGVvZiIsImhhcyIsImdldCIsIm4iLCJfX3Byb3RvX18iLCJhIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJ1IiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiaSIsInNldCIsIl9fcmVzdCIsInMiLCJwIiwicHJvdG90eXBlIiwiaW5kZXhPZiIsImdldE93blByb3BlcnR5U3ltYm9scyIsImxlbmd0aCIsInByb3BlcnR5SXNFbnVtZXJhYmxlIiwiY2xhc3NlcyIsImNsYXNzbmFtZXMiLCJjb25jYXQiLCJDU1NfUFJFRklYIiwiZ2V0VXJsUGFyYW1zIiwid2luZG93IiwicGFyYW1zIiwiVVJMU2VhcmNoUGFyYW1zIiwibG9jYXRpb24iLCJzZWFyY2giLCJmb3JFYWNoIiwidiIsImsiLCJzZXRVcmxQYXJhbXMiLCJzcCIsIl9pIiwiX09iamVjdCRlbnRyaWVzIiwiZW50cmllcyIsIl9PYmplY3QkZW50cmllcyRfaSIsIl9zbGljZWRUb0FycmF5MiIsInVuZGVmaW5lZCIsIlN0cmluZyIsInRvU3RyaW5nIiwidXJsIiwicGF0aG5hbWUiLCJoaXN0b3J5IiwicmVwbGFjZVN0YXRlIiwiUXVlcnlGaWx0ZXJCYXNlIiwicHJvcHMiLCJfYSIsIl9iIiwiX3Byb3BzJGRlZmF1bHRDb2xsYXBzIiwiZGVmYXVsdENvbGxhcHNlZCIsImNvbnRyb2xsZWRDb2xsYXBzZWQiLCJjb2xsYXBzZWQiLCJvbkNvbGxhcHNlIiwiX3Byb3BzJGRlZmF1bHRDb2xzTnVtIiwiZGVmYXVsdENvbHNOdW1iZXIiLCJsYWJlbFdpZHRoIiwiX3Byb3BzJHNwbGl0Iiwic3BsaXQiLCJzZWFyY2hDb25maWciLCJzeW5jVG9VcmwiLCJvbkZpbmlzaCIsIm9uUmVzZXQiLCJjaGlsZHJlbiIsIl9wcm9wcyRzdWJtaXR0ZXIiLCJzdWJtaXR0ZXIiLCJpbml0aWFsVmFsdWVzUHJvcCIsImluaXRpYWxWYWx1ZXMiLCJmb3JtUHJvcHMiLCJfdXNlQ29udHJvbGxlZFN0YXRlIiwidXNlQ29udHJvbGxlZFN0YXRlIiwiX3VzZUNvbnRyb2xsZWRTdGF0ZTIiLCJzZXRDb2xsYXBzZWQiLCJzeW5jSW5pdFJlZiIsInVzZVJlZiIsInVzZU1lbW8iLCJjdXJyZW50IiwidXJsUGFyYW1zIiwiYXNzaWduIiwiaGFuZGxlU3luY1NldCIsInVzZU1lbW9pemVkRm4iLCJ2YWx1ZXMiLCJ0b1dyaXRlIiwiaGFuZGxlRmluaXNoIiwiaGFuZGxlUmVzZXQiLCJoYW5kbGVDb2xsYXBzZSIsIm5leHQiLCJjaGlsZEFycmF5IiwiYXJyIiwiUmVhY3QiLCJDaGlsZHJlbiIsImNoaWxkIiwiaXNWYWxpZEVsZW1lbnQiLCJwdXNoIiwidmlzaWJsZUNoaWxkcmVuIiwic2xpY2UiLCJoYXNNb3JlIiwic2VhcmNoVGV4dCIsIkRFRkFVTFRfVEVYVCIsInJlc2V0VGV4dCIsInJlc2V0IiwiYnV0dG9uU2l6ZSIsInNpemUiLCJsYWJlbFN0eWxlIiwid2lkdGgiLCJfanN4IiwiUHJvRm9ybSIsIl9qc3hzIiwiY2xhc3NOYW1lIiwibWFwIiwiaW5kZXgiLCJGcmFnbWVudCIsInN0eWxlIiwiQnV0dG9uIiwidHlwZSIsImNvbG9yIiwib25DbGljayIsInZhcmlhbnQiLCJleHBhbmQiLCJjb2xsYXBzZSIsImRpc3BsYXlOYW1lIiwiUXVlcnlGaWx0ZXIiLCJleHBvcnRzIiwibWVtbyIsIl9kZWZhdWx0Il0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFXQSxJQUFBQSxXQUFBLEdBQUFDLE9BQUE7QUNYQSxJQUFBQyxNQUFBLEdBQUFDLHVCQUFBLENBQUFGLE9BQUE7QUFFQSxJQUFBRyxvQkFBQSxHQUFBQyxzQkFBQSxDQUFBSixPQUFBO0FBQ0EsSUFBQUssY0FBQSxHQUFBRCxzQkFBQSxDQUFBSixPQUFBO0FBQ0EsSUFBQU0sV0FBQSxHQUFBRixzQkFBQSxDQUFBSixPQUFBO0FBQ0EsSUFBQU8sT0FBQSxHQUFBUCxPQUFBO0FBQ0EsSUFBQVEsUUFBQSxHQUFBUixPQUFBO0FBQ0EsSUFBQVMsVUFBQSxHQUFBVCxPQUFBO0FBQXdELFNBQUFVLHlCQUFBQyxDQUFBLDZCQUFBQyxPQUFBLG1CQUFBQyxDQUFBLE9BQUFELE9BQUEsSUFBQUUsQ0FBQSxPQUFBRixPQUFBLFlBQUFGLHdCQUFBLFlBQUFBLHlCQUFBQyxDQUFBLFdBQUFBLENBQUEsR0FBQUcsQ0FBQSxHQUFBRCxDQUFBLEtBQUFGLENBQUE7QUFBQSxTQUFBVCx3QkFBQVMsQ0FBQSxFQUFBRSxDQUFBLFNBQUFBLENBQUEsSUFBQUYsQ0FBQSxJQUFBQSxDQUFBLENBQUFJLFVBQUEsU0FBQUosQ0FBQSxlQUFBQSxDQUFBLGdCQUFBSyxPQUFBLENBQUFMLENBQUEsMEJBQUFBLENBQUEsc0JBQUFBLENBQUEsUUFBQUcsQ0FBQSxHQUFBSix3QkFBQSxDQUFBRyxDQUFBLE9BQUFDLENBQUEsSUFBQUEsQ0FBQSxDQUFBRyxHQUFBLENBQUFOLENBQUEsVUFBQUcsQ0FBQSxDQUFBSSxHQUFBLENBQUFQLENBQUEsT0FBQVEsQ0FBQSxLQUFBQyxTQUFBLFVBQUFDLENBQUEsR0FBQUMsTUFBQSxDQUFBQyxjQUFBLElBQUFELE1BQUEsQ0FBQUUsd0JBQUEsV0FBQUMsQ0FBQSxJQUFBZCxDQUFBLG9CQUFBYyxDQUFBLE9B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QUVsQ0QsV0FBVyIsImZpbGUiOiJjb21wb25lbnRzL1Byb0Zvcm0vbGF5b3V0cy9RdWVyeUZpbHRlci5qcyIsInNvdXJjZXNDb250ZW50IjpbInZhciBfX3Jlc3QgPSAodGhpcyAmJiB0aGlzLl9fcmVzdCkgfHwgZnVuY3Rpb24gKHMsIGUpIHtcbiAgICB2YXIgdCA9IHt9O1xuICAgIGZvciAodmFyIHAgaW4gcykgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzLCBwKSAmJiBlLmluZGV4T2YocCkgPCAwKVxuICAgICAgICB0W3BdID0gc1twXTtcbiAgICBpZiAocyAhPSBudWxsICYmIHR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzID09PSBcImZ1bmN0aW9uXCIpXG4gICAgICAgIGZvciAodmFyIGkgPSAwLCBwID0gT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhzKTsgaSA8IHAubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGlmIChlLmluZGV4T2YocFtpXSkgPCAwICYmIE9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChzLCBwW2ldKSlcbiAgICAgICAgICAgICAgICB0W3BbaV1dID0gc1twW2ldXTtcbiAgICAgICAgfVxuICAgIHJldHVybiB0O1xufTtcbmltcG9ydCB7IGpzeCBhcyBfanN4LCBqc3hzIGFzIF9qc3hzIH0gZnJvbSBcInJlYWN0L2pzeC1ydW50aW1lXCI7XG5pbXBvcnQgeyBtZW1vLCB1c2VNZW1vLCB1c2VSZWYgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgdXNlQ29udHJvbGxlZFN0YXRlIGZyb20gJ0AxbW9uZXkvaG9va3MvdXNlQ29udHJvbGxlZFN0YXRlJztcbmltcG9ydCB1c2VNZW1vaXplZEZuIGZyb20gJ0AxbW9uZXkvaG9va3MvdXNlTWVtb2l6ZWRGbic7XG5pbXBvcnQgeyBkZWZhdWx0IGFzIGNsYXNzbmFtZXMgfSBmcm9tICcuLi8uLi8uLi91dGlscy9jbGFzc25hbWVzJztcbmltcG9ydCB7IEJ1dHRvbiB9IGZyb20gJy4uLy4uL0J1dHRvbic7XG5pbXBvcnQgeyBQcm9Gb3JtIH0gZnJvbSAnLi4vUHJvRm9ybSc7XG5pbXBvcnQgeyBDU1NfUFJFRklYLCBERUZBVUxUX1RFWFQgfSBmcm9tICcuLi9jb25zdGFudHMnO1xuaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmNvbnN0IGNsYXNzZXMgPSBjbGFzc25hbWVzKGAke0NTU19QUkVGSVh9LXF1ZXJ5LWZpbHRlcmApO1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBVUkwgc3luYyBoZWxwZXJzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbmZ1bmN0aW9uIGdldFVybFBhcmFtcygpIHtcbiAgICBpZiAodHlwZW9mIHdpbmRvdyA9PT0gJ3VuZGVmaW5lZCcpXG4gICAgICAgIHJldHVybiB7fTtcbiAgICBjb25zdCBwYXJhbXMgPSB7fTtcbiAgICBuZXcgVVJMU2VhcmNoUGFyYW1zKHdpbmRvdy5sb2NhdGlvbi5zZWFyY2gpLmZvckVhY2goKHYsIGspID0+IHtcbiAgICAgICAgcGFyYW1zW2tdID0gdjtcbiAgICB9KTtcbiAgICByZXR1cm4gcGFyYW1zO1xufVxuZnVuY3Rpb24gc2V0VXJsUGFyYW1zKHBhcmFtcykge1xuICAgIGlmICh0eXBlb2Ygd2luZG93ID09PSAndW5kZWZpbmVkJylcbiAgICAgICAgcmV0dXJuO1xuICAgIGNvbnN0IHNwID0gbmV3IFVSTFNlYXJjaFBhcmFtcygpO1xuICAgIGZvciAoY29uc3QgW2ssIHZdIG9mIE9iamVjdC5lbnRyaWVzKHBhcmFtcykpIHtcbiAgICAgICAgaWYgKHYgIT09IG51bGwgJiYgdiAhPT0gdW5kZWZpbmVkICYmIHYgIT09ICcnKSB7XG4gICAgICAgICAgICBzcC5zZXQoaywgU3RyaW5nKHYpKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBjb25zdCBzZWFyY2ggPSBzcC50b1N0cmluZygpO1xuICAgIGNvbnN0IHVybCA9IHNlYXJjaCA/IGAke3dpbmRvdy5sb2NhdGlvbi5wYXRobmFtZX0/JHtzZWFyY2h9YCA6IHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZTtcbiAgICB3aW5kb3cuaGlzdG9yeS5yZXBsYWNlU3RhdGUobnVsbCwgJycsIHVybCk7XG59XG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIFF1ZXJ5RmlsdGVyXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbmNvbnN0IFF1ZXJ5RmlsdGVyQmFzZSA9IChwcm9wcykgPT4ge1xuICAgIHZhciBfYSwgX2I7XG4gICAgY29uc3QgeyBkZWZhdWx0Q29sbGFwc2VkID0gdHJ1ZSwgY29sbGFwc2VkOiBjb250cm9sbGVkQ29sbGFwc2VkLCBvbkNvbGxhcHNlLCBkZWZhdWx0Q29sc051bWJlciA9IDMsIGxhYmVsV2lkdGgsIHNwbGl0ID0gZmFsc2UsIHNlYXJjaENvbmZpZywgc3luY1RvVXJsLCBvbkZpbmlzaCwgb25SZXNldCwgY2hpbGRyZW4sIHN1Ym1pdHRlciA9IGZhbHNlLCBpbml0aWFsVmFsdWVzOiBpbml0aWFsVmFsdWVzUHJvcCB9ID0gcHJvcHMsIGZvcm1Qcm9wcyA9IF9fcmVzdChwcm9wcywgW1wiZGVmYXVsdENvbGxhcHNlZFwiLCBcImNvbGxhcHNlZFwiLCBcIm9uQ29sbGFwc2VcIiwgXCJkZWZhdWx0Q29sc051bWJlclwiLCBcImxhYmVsV2lkdGhcIiwgXCJzcGxpdFwiLCBcInNlYXJjaENvbmZpZ1wiLCBcInN5bmNUb1VybFwiLCBcIm9uRmluaXNoXCIsIFwib25SZXNldFwiLCBcImNoaWxkcmVuXCIsIFwic3VibWl0dGVyXCIsIFwiaW5pdGlhbFZhbHVlc1wiXSk7XG4gICAgY29uc3QgW2NvbGxhcHNlZCwgc2V0Q29sbGFwc2VkXSA9IHVzZUNvbnRyb2xsZWRTdGF0ZShkZWZhdWx0Q29sbGFwc2VkLCBjb250cm9sbGVkQ29sbGFwc2VkKTtcbiAgICAvLyDilIDilIAgc3luY1RvVXJsOiBtZXJnZSBVUkwgcGFyYW1zIGludG8gaW5pdGlhbCB2YWx1ZXMgb24gbW91bnQg4pSA4pSAXG4gICAgY29uc3Qgc3luY0luaXRSZWYgPSB1c2VSZWYoZmFsc2UpO1xuICAgIGNvbnN0IGluaXRpYWxWYWx1ZXMgPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgICAgaWYgKCFzeW5jVG9VcmwgfHwgc3luY0luaXRSZWYuY3VycmVudClcbiAgICAgICAgICAgIHJldHVybiBpbml0aWFsVmFsdWVzUHJvcDtcbiAgICAgICAgc3luY0luaXRSZWYuY3VycmVudCA9IHRydWU7XG4gICAgICAgIGNvbnN0IHVybFBhcmFtcyA9IGdldFVybFBhcmFtcygpO1xuICAgICAgICBpZiAodHlwZW9mIHN5bmNUb1VybCA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgcmV0dXJuIE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgaW5pdGlhbFZhbHVlc1Byb3ApLCBzeW5jVG9VcmwodXJsUGFyYW1zLCAnZ2V0JykpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIGluaXRpYWxWYWx1ZXNQcm9wKSwgdXJsUGFyYW1zKTtcbiAgICB9LCBbXSk7XG4gICAgY29uc3QgaGFuZGxlU3luY1NldCA9IHVzZU1lbW9pemVkRm4oKHZhbHVlcykgPT4ge1xuICAgICAgICBpZiAoIXN5bmNUb1VybClcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgY29uc3QgdG9Xcml0ZSA9IHR5cGVvZiBzeW5jVG9VcmwgPT09ICdmdW5jdGlvbidcbiAgICAgICAgICAgID8gc3luY1RvVXJsKHZhbHVlcywgJ3NldCcpXG4gICAgICAgICAgICA6IHZhbHVlcztcbiAgICAgICAgc2V0VXJsUGFyYW1zKHRvV3JpdGUpO1xuICAgIH0pO1xuICAgIGNvbnN0IGhhbmRsZUZpbmlzaCA9IHVzZU1lbW9pemVkRm4oKHZhbHVlcykgPT4ge1xuICAgICAgICBoYW5kbGVTeW5jU2V0KHZhbHVlcyk7XG4gICAgICAgIG9uRmluaXNoID09PSBudWxsIHx8IG9uRmluaXNoID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvbkZpbmlzaCh2YWx1ZXMpO1xuICAgIH0pO1xuICAgIGNvbnN0IGhhbmRsZVJlc2V0ID0gdXNlTWVtb2l6ZWRGbigoKSA9PiB7XG4gICAgICAgIGlmIChzeW5jVG9VcmwpXG4gICAgICAgICAgICBzZXRVcmxQYXJhbXMoe30pO1xuICAgICAgICBvblJlc2V0ID09PSBudWxsIHx8IG9uUmVzZXQgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9uUmVzZXQoKTtcbiAgICB9KTtcbiAgICBjb25zdCBoYW5kbGVDb2xsYXBzZSA9IHVzZU1lbW9pemVkRm4oKCkgPT4ge1xuICAgICAgICBjb25zdCBuZXh0ID0gIWNvbGxhcHNlZDtcbiAgICAgICAgc2V0Q29sbGFwc2VkKG5leHQpO1xuICAgICAgICBvbkNvbGxhcHNlID09PSBudWxsIHx8IG9uQ29sbGFwc2UgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9uQ29sbGFwc2UobmV4dCk7XG4gICAgfSk7XG4gICAgLy8gQ291bnQgY2hpbGRyZW4gYW5kIHNwbGl0IHZpc2libGUvaGlkZGVuXG4gICAgY29uc3QgY2hpbGRBcnJheSA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgICBjb25zdCBhcnIgPSBbXTtcbiAgICAgICAgUmVhY3QuQ2hpbGRyZW4uZm9yRWFjaChjaGlsZHJlbiwgKGNoaWxkKSA9PiB7XG4gICAgICAgICAgICBpZiAoUmVhY3QuaXNWYWxpZEVsZW1lbnQoY2hpbGQpKSB7XG4gICAgICAgICAgICAgICAgYXJyLnB1c2goY2hpbGQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIGFycjtcbiAgICB9LCBbY2hpbGRyZW5dKTtcbiAgICBjb25zdCB2aXNpYmxlQ2hpbGRyZW4gPSBjb2xsYXBzZWRcbiAgICAgICAgPyBjaGlsZEFycmF5LnNsaWNlKDAsIGRlZmF1bHRDb2xzTnVtYmVyKVxuICAgICAgICA6IGNoaWxkQXJyYXk7XG4gICAgY29uc3QgaGFzTW9yZSA9IGNoaWxkQXJyYXkubGVuZ3RoID4gZGVmYXVsdENvbHNOdW1iZXI7XG4gICAgY29uc3Qgc2VhcmNoVGV4dCA9IChfYSA9IHNlYXJjaENvbmZpZyA9PT0gbnVsbCB8fCBzZWFyY2hDb25maWcgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHNlYXJjaENvbmZpZy5zZWFyY2hUZXh0KSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiBERUZBVUxUX1RFWFQuc2VhcmNoO1xuICAgIGNvbnN0IHJlc2V0VGV4dCA9IChfYiA9IHNlYXJjaENvbmZpZyA9PT0gbnVsbCB8fCBzZWFyY2hDb25maWcgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHNlYXJjaENvbmZpZy5yZXNldFRleHQpICE9PSBudWxsICYmIF9iICE9PSB2b2lkIDAgPyBfYiA6IERFRkFVTFRfVEVYVC5yZXNldDtcbiAgICBjb25zdCBidXR0b25TaXplID0gc2VhcmNoQ29uZmlnID09PSBudWxsIHx8IHNlYXJjaENvbmZpZyA9PT0gdm9pZCAwID8gdm9pZCAwIDogc2VhcmNoQ29uZmlnLnNpemU7XG4gICAgY29uc3QgbGFiZWxTdHlsZSA9IGxhYmVsV2lkdGggIT09IHVuZGVmaW5lZCAmJiBsYWJlbFdpZHRoICE9PSAnYXV0bydcbiAgICAgICAgPyB7IHdpZHRoOiBsYWJlbFdpZHRoIH1cbiAgICAgICAgOiB1bmRlZmluZWQ7XG4gICAgcmV0dXJuIChfanN4KFByb0Zvcm0sIE9iamVjdC5hc3NpZ24oe30sIGZvcm1Qcm9wcywgeyBpbml0aWFsVmFsdWVzOiBpbml0aWFsVmFsdWVzLCBvbkZpbmlzaDogaGFuZGxlRmluaXNoLCBvblJlc2V0OiBoYW5kbGVSZXNldCwgc3VibWl0dGVyOiBmYWxzZSwgY2hpbGRyZW46IF9qc3hzKFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCksIGNoaWxkcmVuOiBbdmlzaWJsZUNoaWxkcmVuLm1hcCgoY2hpbGQsIGluZGV4KSA9PiAoX2pzeHMoUmVhY3QuRnJhZ21lbnQsIHsgY2hpbGRyZW46IFtzcGxpdCAmJiBpbmRleCA+IDAgJiYgX2pzeChcImRpdlwiLCB7IGNsYXNzTmFtZTogY2xhc3Nlcygnc3BsaXQnKSB9KSwgbGFiZWxTdHlsZSA/IChfanN4KFwiZGl2XCIsIHsgc3R5bGU6IGxhYmVsU3R5bGUsIGNoaWxkcmVuOiBjaGlsZCB9KSkgOiAoY2hpbGQpXSB9LCBpbmRleCkpKSwgX2pzeHMoXCJkaXZcIiwgeyBjbGFzc05hbWU6IGNsYXNzZXMoJ2FjdGlvbnMnKSwgY2hpbGRyZW46IFtfanN4KEJ1dHRvbiwgeyB0eXBlOiBcInN1Ym1pdFwiLCBjb2xvcjogXCJwcmltYXJ5XCIsIHNpemU6IGJ1dHRvblNpemUsIGNoaWxkcmVuOiBzZWFyY2hUZXh0IH0pLCBfanN4KEJ1dHRvbiwgeyB0eXBlOiBcImJ1dHRvblwiLCBjb2xvcjogXCJzZWNvbmRhcnlcIiwgc2l6ZTogYnV0dG9uU2l6ZSwgb25DbGljazogaGFuZGxlUmVzZXQsIGNoaWxkcmVuOiByZXNldFRleHQgfSksIGhhc01vcmUgJiYgKF9qc3goQnV0dG9uLCB7IHR5cGU6IFwiYnV0dG9uXCIsIHZhcmlhbnQ6IFwidGV4dFwiLCBzaXplOiBidXR0b25TaXplLCBvbkNsaWNrOiBoYW5kbGVDb2xsYXBzZSwgY2hpbGRyZW46IGNvbGxhcHNlZCA/IERFRkFVTFRfVEVYVC5leHBhbmQgOiBERUZBVUxUX1RFWFQuY29sbGFwc2UgfSkpXSB9KV0gfSkgfSkpKTtcbn07XG5RdWVyeUZpbHRlckJhc2UuZGlzcGxheU5hbWUgPSAnUXVlcnlGaWx0ZXInO1xuZXhwb3J0IGNvbnN0IFF1ZXJ5RmlsdGVyID0gbWVtbyhRdWVyeUZpbHRlckJhc2UpO1xuZXhwb3J0IGRlZmF1bHQgUXVlcnlGaWx0ZXI7IixudWxsXSwic291cmNlUm9vdCI6Ii4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYyJ9
148
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvUHJvRm9ybS9sYXlvdXRzL1F1ZXJ5RmlsdGVyLmpzIiwiY29tcG9uZW50cy9Qcm9Gb3JtL3NyYy9jb21wb25lbnRzL1Byb0Zvcm0vbGF5b3V0cy9RdWVyeUZpbHRlci50c3giXSwibmFtZXMiOlsiX2pzeFJ1bnRpbWUiLCJyZXF1aXJlIiwiX3JlYWN0IiwiX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQiLCJfdXNlQ29udHJvbGxlZFN0YXRlMyIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfdXNlTWVtb2l6ZWRGbiIsIl9jbGFzc25hbWVzIiwiX0J1dHRvbiIsIl9Qcm9Gb3JtIiwiX2NvbnN0YW50cyIsIl9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSIsImUiLCJXZWFrTWFwIiwiciIsInQiLCJfX2VzTW9kdWxlIiwiX3R5cGVvZiIsImhhcyIsImdldCIsIm4iLCJfX3Byb3RvX18iLCJhIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJ1IiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiaSIsInNldCIsIl9fcmVzdCIsInMiLCJwIiwicHJvdG90eXBlIiwiaW5kZXhPZiIsImdldE93blByb3BlcnR5U3ltYm9scyIsImxlbmd0aCIsInByb3BlcnR5SXNFbnVtZXJhYmxlIiwiY2xhc3NlcyIsImNsYXNzbmFtZXMiLCJjb25jYXQiLCJDU1NfUFJFRklYIiwiSElEREVOX1NUWUxFIiwiZGlzcGxheSIsIkNPTlRFTlRTX1NUWUxFIiwiUXVlcnlGaWx0ZXJCYXNlIiwicHJvcHMiLCJfYSIsIl9iIiwiX3Byb3BzJGRlZmF1bHRDb2xsYXBzIiwiZGVmYXVsdENvbGxhcHNlZCIsImNvbnRyb2xsZWRDb2xsYXBzZWQiLCJjb2xsYXBzZWQiLCJvbkNvbGxhcHNlIiwiX3Byb3BzJGRlZmF1bHRDb2xzTnVtIiwiZGVmYXVsdENvbHNOdW1iZXIiLCJsYWJlbFdpZHRoIiwiX3Byb3BzJHNwbGl0Iiwic3BsaXQiLCJzZWFyY2hDb25maWciLCJfcHJvcHMkc3luY1RvVXJsQXNJbXAiLCJzeW5jVG9VcmxBc0ltcG9ydGFudCIsImNoaWxkcmVuIiwib25GaW5pc2hGYWlsZWQiLCJfc3VibWl0dGVyIiwic3VibWl0dGVyIiwiZm9ybVByb3BzIiwiX3VzZUNvbnRyb2xsZWRTdGF0ZSIsInVzZUNvbnRyb2xsZWRTdGF0ZSIsIl91c2VDb250cm9sbGVkU3RhdGUyIiwiX3NsaWNlZFRvQXJyYXkyIiwic2V0Q29sbGFwc2VkIiwiaGFuZGxlQ29sbGFwc2UiLCJ1c2VNZW1vaXplZEZuIiwibmV4dCIsImhhbmRsZUZpbmlzaEZhaWxlZCIsImVycm9ySW5mbyIsIm92ZXJmbG93SGFzRXJyb3IiLCJSZWFjdCIsIkNoaWxkcmVuIiwidG9BcnJheSIsInNsaWNlIiwic29tZSIsImNoaWxkIiwiaXNWYWxpZEVsZW1lbnQiLCJjaGlsZE5hbWUiLCJuYW1lIiwidW5kZWZpbmVkIiwiZXJyb3JzIiwiY2hpbGRBcnJheSIsInVzZU1lbW8iLCJhcnIiLCJmb3JFYWNoIiwicHVzaCIsImhhc01vcmUiLCJzZWFyY2hUZXh0IiwiREVGQVVMVF9URVhUIiwic2VhcmNoIiwicmVzZXRUZXh0IiwicmVzZXQiLCJidXR0b25TaXplIiwic2l6ZSIsImxhYmVsU3R5bGUiLCJ3aWR0aCIsIl9qc3giLCJQcm9Gb3JtIiwiYXNzaWduIiwiZm9ybUNvbXBvbmVudFR5cGUiLCJfanN4cyIsImNsYXNzTmFtZSIsIm1hcCIsImluZGV4IiwiaGlkZGVuQnlDb2xsYXBzZSIsIkZyYWdtZW50Iiwic3R5bGUiLCJCdXR0b24iLCJ0eXBlIiwiY29sb3IiLCJ2YXJpYW50Iiwib25DbGljayIsImV4cGFuZCIsImNvbGxhcHNlIiwiZGlzcGxheU5hbWUiLCJRdWVyeUZpbHRlciIsImV4cG9ydHMiLCJtZW1vIiwiX2RlZmF1bHQiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQVdBLElBQUFBLFdBQUEsR0FBQUMsT0FBQTtBQ1hBLElBQUFDLE1BQUEsR0FBQUMsdUJBQUEsQ0FB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eEIsdUJBQVksQ0FBQ3lCO1FBQVEsQ0FBQSxDQUUzRDtNQUFBLENBQUEsQ0FDRztJQUFBLENBQUE7RUFDRixDQUFBLENBQUEsQ0FDRTtBQUVkLENBQUM7QUFFRDVFLGVBQWUsQ0FBQzZFLFdBQVcsR0FBRyxhQUFhO0FBRTNDO0FBQ08sSUFBTUMsV0FBVyxHQUFBQyxPQUFBLENBQUFELFdBQUEsZ0JBQUcsSUFBQUUsV0FBSSxFQUFDaEYsZUFBZSxDQUVLO0FBQUMsSUFBQWlGLFFBQUEsR0FBQUYsT0FBQSxjQUV0Q0QsV0FBVyIsImZpbGUiOiJjb21wb25lbnRzL1Byb0Zvcm0vbGF5b3V0cy9RdWVyeUZpbHRlci5qcyIsInNvdXJjZXNDb250ZW50IjpbInZhciBfX3Jlc3QgPSAodGhpcyAmJiB0aGlzLl9fcmVzdCkgfHwgZnVuY3Rpb24gKHMsIGUpIHtcbiAgICB2YXIgdCA9IHt9O1xuICAgIGZvciAodmFyIHAgaW4gcykgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzLCBwKSAmJiBlLmluZGV4T2YocCkgPCAwKVxuICAgICAgICB0W3BdID0gc1twXTtcbiAgICBpZiAocyAhPSBudWxsICYmIHR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzID09PSBcImZ1bmN0aW9uXCIpXG4gICAgICAgIGZvciAodmFyIGkgPSAwLCBwID0gT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhzKTsgaSA8IHAubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGlmIChlLmluZGV4T2YocFtpXSkgPCAwICYmIE9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChzLCBwW2ldKSlcbiAgICAgICAgICAgICAgICB0W3BbaV1dID0gc1twW2ldXTtcbiAgICAgICAgfVxuICAgIHJldHVybiB0O1xufTtcbmltcG9ydCB7IGpzeCBhcyBfanN4LCBqc3hzIGFzIF9qc3hzIH0gZnJvbSBcInJlYWN0L2pzeC1ydW50aW1lXCI7XG5pbXBvcnQgeyBtZW1vLCB1c2VNZW1vIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHVzZUNvbnRyb2xsZWRTdGF0ZSBmcm9tICdAMW1vbmV5L2hvb2tzL3VzZUNvbnRyb2xsZWRTdGF0ZSc7XG5pbXBvcnQgdXNlTWVtb2l6ZWRGbiBmcm9tICdAMW1vbmV5L2hvb2tzL3VzZU1lbW9pemVkRm4nO1xuaW1wb3J0IHsgZGVmYXVsdCBhcyBjbGFzc25hbWVzIH0gZnJvbSAnLi4vLi4vLi4vdXRpbHMvY2xhc3NuYW1lcyc7XG5pbXBvcnQgeyBCdXR0b24gfSBmcm9tICcuLi8uLi9CdXR0b24nO1xuaW1wb3J0IHsgUHJvRm9ybSB9IGZyb20gJy4uL1Byb0Zvcm0nO1xuaW1wb3J0IHsgQ1NTX1BSRUZJWCwgREVGQVVMVF9URVhUIH0gZnJvbSAnLi4vY29uc3RhbnRzJztcbmltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5jb25zdCBjbGFzc2VzID0gY2xhc3NuYW1lcyhgJHtDU1NfUFJFRklYfS1xdWVyeS1maWx0ZXJgKTtcbmNvbnN0IEhJRERFTl9TVFlMRSA9IHsgZGlzcGxheTogJ25vbmUnIH07XG4vLyBLZWVwcyB0aGUgd3JhcHBlciBsYXlvdXQtbmV1dHJhbDogdGhlIGZpZWxkIHN0YXlzIGEgZGlyZWN0IGZsZXggaXRlbS5cbmNvbnN0IENPTlRFTlRTX1NUWUxFID0geyBkaXNwbGF5OiAnY29udGVudHMnIH07XG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIFF1ZXJ5RmlsdGVyIOKAlCBhIGNvbXBhY3QgZmlsdGVyIGJhciBvbiB0b3Agb2YgUHJvRm9ybS5cbi8vXG4vLyBVUkwgc3luY2hyb25pemF0aW9uIGlzIGhhbmRsZWQgYnkgUHJvRm9ybSBpdHNlbGYgKGBzeW5jVG9VcmxgKTsgUXVlcnlGaWx0ZXJcbi8vIG9ubHkgZmxpcHMgdGhlIGRlZmF1bHQgb2YgYHN5bmNUb1VybEFzSW1wb3J0YW50YCB0byB0cnVlOiBhIGZpbHRlcidzIHJlYXNvblxuLy8gdG8gc3luYyBpcyByZXN0b3Jpbmcgc3RhdGUgZnJvbSB0aGUgVVJMIG9uIHJlZnJlc2gsIHNvIFVSTCBwYXJhbXMgd2luIG92ZXJcbi8vIGBpbml0aWFsVmFsdWVzYCBoZXJlIChwbGFpbiBQcm9Gb3JtIGtlZXBzIHRoZSBvcHBvc2l0ZSBkZWZhdWx0KS5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuY29uc3QgUXVlcnlGaWx0ZXJCYXNlID0gKHByb3BzKSA9PiB7XG4gICAgdmFyIF9hLCBfYjtcbiAgICBjb25zdCB7IGRlZmF1bHRDb2xsYXBzZWQgPSB0cnVlLCBjb2xsYXBzZWQ6IGNvbnRyb2xsZWRDb2xsYXBzZWQsIG9uQ29sbGFwc2UsIGRlZmF1bHRDb2xzTnVtYmVyID0gMywgbGFiZWxXaWR0aCwgc3BsaXQgPSBmYWxzZSwgc2VhcmNoQ29uZmlnLCBzeW5jVG9VcmxBc0ltcG9ydGFudCA9IHRydWUsIGNoaWxkcmVuLCBvbkZpbmlzaEZhaWxlZCwgXG4gICAgLy8gUXVlcnlGaWx0ZXIgYWx3YXlzIHJlbmRlcnMgaXRzIG93biBTZWFyY2gvUmVzZXQvRXhwYW5kIGJ1dHRvbnMuXG4gICAgc3VibWl0dGVyOiBfc3VibWl0dGVyIH0gPSBwcm9wcywgZm9ybVByb3BzID0gX19yZXN0KHByb3BzLCBbXCJkZWZhdWx0Q29sbGFwc2VkXCIsIFwiY29sbGFwc2VkXCIsIFwib25Db2xsYXBzZVwiLCBcImRlZmF1bHRDb2xzTnVtYmVyXCIsIFwibGFiZWxXaWR0aFwiLCBcInNwbGl0XCIsIFwic2VhcmNoQ29uZmlnXCIsIFwic3luY1RvVXJsQXNJbXBvcnRhbnRcIiwgXCJjaGlsZHJlblwiLCBcIm9uRmluaXNoRmFpbGVkXCIsIFwic3VibWl0dGVyXCJdKTtcbiAgICBjb25zdCBbY29sbGFwc2VkLCBzZXRDb2xsYXBzZWRdID0gdXNlQ29udHJvbGxlZFN0YXRlKGRlZmF1bHRDb2xsYXBzZWQsIGNvbnRyb2xsZWRDb2xsYXBzZWQpO1xuICAgIGNvbnN0IGhhbmRsZUNvbGxhcHNlID0gdXNlTWVtb2l6ZWRGbigoKSA9PiB7XG4gICAgICAgIGNvbnN0IG5leHQgPSAhY29sbGFwc2VkO1xuICAgICAgICBzZXRDb2xsYXBzZWQobmV4dCk7XG4gICAgICAgIG9uQ29sbGFwc2UgPT09IG51bGwgfHwgb25Db2xsYXBzZSA9PT0gdm9pZCAwID8gdm9pZCAwIDogb25Db2xsYXBzZShuZXh0KTtcbiAgICB9KTtcbiAgICAvLyBBIGNvbGxhcHNlZCAoZGlzcGxheTpub25lKSBmaWVsZCBmYWlsaW5nIHZhbGlkYXRpb24gd291bGQgYmxvY2sgU2VhcmNoXG4gICAgLy8gd2l0aCBhbiBJTlZJU0lCTEUgZXJyb3Ig4oCUIGF1dG8tZXhwYW5kIHNvIHRoZSB1c2VyIGNhbiBzZWUgYW5kIGZpeCBpdC5cbiAgICBjb25zdCBoYW5kbGVGaW5pc2hGYWlsZWQgPSB1c2VNZW1vaXplZEZuKChlcnJvckluZm8pID0+IHtcbiAgICAgICAgaWYgKGNvbGxhcHNlZCkge1xuICAgICAgICAgICAgY29uc3Qgb3ZlcmZsb3dIYXNFcnJvciA9IFJlYWN0LkNoaWxkcmVuLnRvQXJyYXkoY2hpbGRyZW4pXG4gICAgICAgICAgICAgICAgLnNsaWNlKGRlZmF1bHRDb2xzTnVtYmVyKVxuICAgICAgICAgICAgICAgIC5zb21lKChjaGlsZCkgPT4ge1xuICAgICAgICAgICAgICAgIGlmICghUmVhY3QuaXNWYWxpZEVsZW1lbnQoY2hpbGQpKVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICAgICAgY29uc3QgY2hpbGROYW1lID0gY2hpbGQucHJvcHMubmFtZTtcbiAgICAgICAgICAgICAgICByZXR1cm4gY2hpbGROYW1lICE9PSB1bmRlZmluZWQgJiYgZXJyb3JJbmZvLmVycm9yc1tjaGlsZE5hbWVdICE9PSB1bmRlZmluZWQ7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGlmIChvdmVyZmxvd0hhc0Vycm9yKSB7XG4gICAgICAgICAgICAgICAgc2V0Q29sbGFwc2VkKGZhbHNlKTtcbiAgICAgICAgICAgICAgICBvbkNvbGxhcHNlID09PSBudWxsIHx8IG9uQ29sbGFwc2UgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9uQ29sbGFwc2UoZmFsc2UpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIG9uRmluaXNoRmFpbGVkID09PSBudWxsIHx8IG9uRmluaXNoRmFpbGVkID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvbkZpbmlzaEZhaWxlZChlcnJvckluZm8pO1xuICAgIH0pO1xuICAgIC8vIENvdW50IGNoaWxkcmVuIGFuZCBzcGxpdCB2aXNpYmxlL2hpZGRlblxuICAgIGNvbnN0IGNoaWxkQXJyYXkgPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgICAgY29uc3QgYXJyID0gW107XG4gICAgICAgIFJlYWN0LkNoaWxkcmVuLmZvckVhY2goY2hpbGRyZW4sIChjaGlsZCkgPT4ge1xuICAgICAgICAgICAgaWYgKFJlYWN0LmlzVmFsaWRFbGVtZW50KGNoaWxkKSkge1xuICAgICAgICAgICAgICAgIGFyci5wdXNoKGNoaWxkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiBhcnI7XG4gICAgfSwgW2NoaWxkcmVuXSk7XG4gICAgY29uc3QgaGFzTW9yZSA9IGNoaWxkQXJyYXkubGVuZ3RoID4gZGVmYXVsdENvbHNOdW1iZXI7XG4gICAgY29uc3Qgc2VhcmNoVGV4dCA9IChfYSA9IHNlYXJjaENvbmZpZyA9PT0gbnVsbCB8fCBzZWFyY2hDb25maWcgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHNlYXJjaENvbmZpZy5zZWFyY2hUZXh0KSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiBERUZBVUxUX1RFWFQuc2VhcmNoO1xuICAgIGNvbnN0IHJlc2V0VGV4dCA9IChfYiA9IHNlYXJjaENvbmZpZyA9PT0gbnVsbCB8fCBzZWFyY2hDb25maWcgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHNlYXJjaENvbmZpZy5yZXNldFRleHQpICE9PSBudWxsICYmIF9iICE9PSB2b2lkIDAgPyBfYiA6IERFRkFVTFRfVEVYVC5yZXNldDtcbiAgICBjb25zdCBidXR0b25TaXplID0gc2VhcmNoQ29uZmlnID09PSBudWxsIHx8IHNlYXJjaENvbmZpZyA9PT0gdm9pZCAwID8gdm9pZCAwIDogc2VhcmNoQ29uZmlnLnNpemU7XG4gICAgY29uc3QgbGFiZWxTdHlsZSA9IGxhYmVsV2lkdGggIT09IHVuZGVmaW5lZCAmJiBsYWJlbFdpZHRoICE9PSAnYXV0bydcbiAgICAgICAgPyB7IHdpZHRoOiBsYWJlbFdpZHRoIH1cbiAgICAgICAgOiB1bmRlZmluZWQ7XG4gICAgcmV0dXJuIChfanN4KFByb0Zvcm0sIE9iamVjdC5hc3NpZ24oe30sIGZvcm1Qcm9wcywgeyBzeW5jVG9VcmxBc0ltcG9ydGFudDogc3luY1RvVXJsQXNJbXBvcnRhbnQsIGZvcm1Db21wb25lbnRUeXBlOiBcIlF1ZXJ5RmlsdGVyXCIsIG9uRmluaXNoRmFpbGVkOiBoYW5kbGVGaW5pc2hGYWlsZWQsIHN1Ym1pdHRlcjogZmFsc2UsIGNoaWxkcmVuOiBfanN4cyhcImRpdlwiLCB7IGNsYXNzTmFtZTogY2xhc3NlcygpLCBjaGlsZHJlbjogW2NoaWxkQXJyYXkubWFwKChjaGlsZCwgaW5kZXgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgaGlkZGVuQnlDb2xsYXBzZSA9IGNvbGxhcHNlZCAmJiBpbmRleCA+PSBkZWZhdWx0Q29sc051bWJlcjtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIChfanN4cyhSZWFjdC5GcmFnbWVudCwgeyBjaGlsZHJlbjogW3NwbGl0ICYmIGluZGV4ID4gMCAmJiAhaGlkZGVuQnlDb2xsYXBzZSAmJiBfanN4KFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCdzcGxpdCcpIH0pLCBfanN4KFwiZGl2XCIsIHsgc3R5bGU6IGhpZGRlbkJ5Q29sbGFwc2UgPyBISURERU5fU1RZTEUgOiAobGFiZWxTdHlsZSAhPT0gbnVsbCAmJiBsYWJlbFN0eWxlICE9PSB2b2lkIDAgPyBsYWJlbFN0eWxlIDogQ09OVEVOVFNfU1RZTEUpLCBjaGlsZHJlbjogY2hpbGQgfSldIH0sIGluZGV4KSk7XG4gICAgICAgICAgICAgICAgfSksIF9qc3hzKFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCdhY3Rpb25zJyksIGNoaWxkcmVuOiBbX2pzeChCdXR0b24sIHsgdHlwZTogXCJzdWJtaXRcIiwgY29sb3I6IFwicHJpbWFyeVwiLCBzaXplOiBidXR0b25TaXplLCBjaGlsZHJlbjogc2VhcmNoVGV4dCB9KSwgX2pzeChCdXR0b24sIHsgdHlwZTogXCJyZXNldFwiLCBjb2xvcjogXCJzZWNvbmRhcnlcIiwgc2l6ZTogYnV0dG9uU2l6ZSwgY2hpbGRyZW46IHJlc2V0VGV4dCB9KSwgaGFzTW9yZSAmJiAoX2pzeChCdXR0b24sIHsgdHlwZTogXCJidXR0b25cIiwgdmFyaWFudDogXCJ0ZXh0XCIsIHNpemU6IGJ1dHRvblNpemUsIG9uQ2xpY2s6IGhhbmRsZUNvbGxhcHNlLCBjaGlsZHJlbjogY29sbGFwc2VkID8gREVGQVVMVF9URVhULmV4cGFuZCA6IERFRkFVTFRfVEVYVC5jb2xsYXBzZSB9KSldIH0pXSB9KSB9KSkpO1xufTtcblF1ZXJ5RmlsdGVyQmFzZS5kaXNwbGF5TmFtZSA9ICdRdWVyeUZpbHRlcic7XG4vKiogR2VuZXJpYy1hd2FyZSBleHBvcnQg4oCUIGtlZXBzIGA8UXVlcnlGaWx0ZXI8TXlWYWx1ZXM+IOKApj5gIGZ1bGx5IHR5cGVkLiAqL1xuZXhwb3J0IGNvbnN0IFF1ZXJ5RmlsdGVyID0gbWVtbyhRdWVyeUZpbHRlckJhc2UpO1xuZXhwb3J0IGRlZmF1bHQgUXVlcnlGaWx0ZXI7IixudWxsXSwic291cmNlUm9vdCI6Ii4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYyJ9
@@ -9,9 +9,9 @@ interface UseOverlayFormOptions {
9
9
  interface UseOverlayFormReturn {
10
10
  mergedOpen: boolean;
11
11
  triggerNode: ReactElement | null;
12
- handleFinish: (values: Record<string, unknown>) => Promise<void>;
12
+ handleFinish: (values: Record<string, unknown>) => Promise<void | boolean>;
13
13
  handleHide: () => void;
14
14
  handleShow: () => void;
15
15
  }
16
- export declare function useOverlayForm(options: UseOverlayFormOptions, onFinish?: (values: Record<string, unknown>) => void | Promise<void>): UseOverlayFormReturn;
16
+ export declare function useOverlayForm(options: UseOverlayFormOptions, onFinish?: (values: Record<string, unknown>) => void | boolean | Promise<void | boolean>): UseOverlayFormReturn;
17
17
  export default useOverlayForm;
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ var _typeof = require("@babel/runtime/helpers/typeof");
4
5
  Object.defineProperty(exports, "__esModule", {
5
6
  value: true
6
7
  });
@@ -8,10 +9,12 @@ exports["default"] = void 0;
8
9
  exports.useOverlayForm = useOverlayForm;
9
10
  var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
10
11
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
11
- var _react = _interopRequireDefault(require("react"));
12
+ var _react = _interopRequireWildcard(require("react"));
12
13
  var _useControlledState3 = _interopRequireDefault(require("@1money/hooks/useControlledState"));
13
14
  var _useDebouncedCallback2 = _interopRequireDefault(require("@1money/hooks/useDebouncedCallback"));
14
15
  var _useEventCallback = _interopRequireDefault(require("@1money/hooks/useEventCallback"));
16
+ 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); }
17
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(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; }
15
18
  var __awaiter = void 0 && (void 0).__awaiter || function (thisArg, _arguments, P, generator) {
16
19
  function adopt(value) {
17
20
  return value instanceof P ? value : new P(function (resolve) {
@@ -53,18 +56,30 @@ function useOverlayForm(options, onFinish) {
53
56
  _useControlledState2 = (0, _slicedToArray2["default"])(_useControlledState, 2),
54
57
  mergedOpen = _useControlledState2[0],
55
58
  setMergedOpen = _useControlledState2[1];
59
+ // Session generation — every open-state change starts a new session, so a
60
+ // STALE in-flight submit (started in a previous session) can't auto-close
61
+ // the overlay the user has since closed and reopened.
62
+ var sessionRef = (0, _react.useRef)(0);
56
63
  var setOpen = (0, _useEventCallback["default"])(function (nextOpen) {
64
+ sessionRef.current += 1;
57
65
  setMergedOpen(nextOpen);
58
66
  onOpenChange === null || onOpenChange === void 0 ? void 0 : onOpenChange(nextOpen);
59
67
  });
60
- // Deferred auto-close after submit. `cancel` clears any pending close (e.g.
61
- // when the overlay is hidden first); the timer is also auto-cancelled on
68
+ // Deferred auto-close after submit. The fire-time session check makes a
69
+ // STALE timer (scheduled in a previous open/close session) a no-op;
70
+ // `cancel` clears any pending close and the timer also auto-cancels on
62
71
  // unmount.
63
- var _useDebouncedCallback = (0, _useDebouncedCallback2["default"])(function () {
64
- return setOpen(false);
72
+ var _useDebouncedCallback = (0, _useDebouncedCallback2["default"])(function (session) {
73
+ if (session === sessionRef.current) setOpen(false);
65
74
  }, submitTimeout),
66
75
  scheduleClose = _useDebouncedCallback.run,
67
76
  cancelScheduledClose = _useDebouncedCallback.cancel;
77
+ // Any open-state transition — including CONTROLLED `open` prop flips that
78
+ // bypass setOpen — starts a new session and discards a pending close.
79
+ (0, _react.useEffect)(function () {
80
+ sessionRef.current += 1;
81
+ cancelScheduledClose();
82
+ }, [mergedOpen, cancelScheduledClose]);
68
83
  var handleShow = (0, _useEventCallback["default"])(function () {
69
84
  setOpen(true);
70
85
  });
@@ -72,21 +87,28 @@ function useOverlayForm(options, onFinish) {
72
87
  cancelScheduledClose();
73
88
  setOpen(false);
74
89
  });
90
+ // Propagate the consumer's return value — ProForm gates URL sync on it,
91
+ // and autoClose honors it too: an explicit `false` means the submit FAILED,
92
+ // so the overlay stays open instead of discarding the user's input.
75
93
  var handleFinish = (0, _useEventCallback["default"])(function (values) {
76
94
  return __awaiter(_this, void 0, void 0, /*#__PURE__*/_regenerator["default"].mark(function _callee() {
95
+ var session, result;
77
96
  return _regenerator["default"].wrap(function (_context) {
78
97
  while (1) switch (_context.prev = _context.next) {
79
98
  case 0:
99
+ session = sessionRef.current;
80
100
  _context.next = 1;
81
101
  return onFinish === null || onFinish === void 0 ? void 0 : onFinish(values);
82
102
  case 1:
83
- if (autoClose) {
103
+ result = _context.sent;
104
+ if (autoClose && result !== false && session === sessionRef.current) {
84
105
  if (submitTimeout && submitTimeout > 0) {
85
- scheduleClose();
106
+ scheduleClose(session);
86
107
  } else {
87
108
  setOpen(false);
88
109
  }
89
110
  }
111
+ return _context.abrupt("return", result);
90
112
  case 2:
91
113
  case "end":
92
114
  return _context.stop();
@@ -114,4 +136,4 @@ function useOverlayForm(options, onFinish) {
114
136
  };
115
137
  }
116
138
  var _default = exports["default"] = useOverlayForm;
117
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvUHJvRm9ybS9zcmMvY29tcG9uZW50cy9Qcm9Gb3JtL2xheW91dHMvdXNlT3ZlcmxheUZvcm0udHMiLCJjb21wb25lbnRzL1Byb0Zvcm0vbGF5b3V0cy91c2VPdmVybGF5Rm9ybS5qcyJdLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl91c2VDb250cm9sbGVkU3RhdGUzIiwiX3VzZURlYm91bmNlZENhbGxiYWNrMiIsIl91c2VFdmVudENhbGxiYWNrIiwiX19hd2FpdGVyIiwidGhpc0FyZyIsIl9hcmd1bWVudHMiLCJQIiwiZ2VuZXJhdG9yIiwiYWRvcHQiLCJ2YWx1ZSIsInJlc29sdmUiLCJQcm9taXNlIiwicmVqZWN0IiwiZnVsZmlsbGVkIiwic3RlcCIsIm5leHQiLCJlIiwicmVqZWN0ZWQiLCJyZXN1bHQiLCJkb25lIiwidGhlbiIsImFwcGx5IiwidXNlT3ZlcmxheUZvcm0iLCJvcHRpb25zIiwib25GaW5pc2giLCJfdGhpcyIsImNvbnRyb2xsZWRPcGVuIiwib3BlbiIsIm9uT3BlbkNoYW5nZSIsInRyaWdnZXIiLCJfb3B0aW9ucyRhdXRvQ2xvc2UiLCJhdXRvQ2xvc2UiLCJzdWJtaXRUaW1lb3V0IiwiX3VzZUNvbnRyb2xsZWRTdGF0ZSIsInVzZUNvbnRyb2xsZWRTdGF0ZSIsIl91c2VDb250cm9sbGVkU3RhdGUyIiwiX3NsaWNlZFRvQXJyYXkyIiwibWVyZ2VkT3BlbiIsInNldE1lcmdlZE9wZW4iLCJzZXRPcGVuIiwidXNlRXZlbnRDYWxsYmFjayIsIm5leHRPcGVuIiwiX3VzZURlYm91bmNlZENhbGxiYWNrIiwidXNlRGVib3VuY2VkQ2FsbGJhY2siLCJzY2hlZHVsZUNsb3NlIiwicnVuIiwiY2FuY2VsU2NoZWR1bGVkQ2xvc2UiLCJjYW5jZWwiLCJoYW5kbGVTaG93IiwiaGFuZGxlSGlkZSIsImhhbmRsZUZpbmlzaCIsInZhbHVlcyIsIl9yZWdlbmVyYXRvciIsIm1hcmsiLCJfY2FsbGVlIiwid3JhcCIsIl9jb250ZXh0IiwicHJldiIsInN0b3AiLCJ0cmlnZ2VyTm9kZSIsIlJlYWN0IiwiY2xvbmVFbGVtZW50Iiwib25DbGljayIsIl9hIiwib3JpZ2luYWxPbkNsaWNrIiwicHJvcHMiLCJhcmd1bWVudHMiLCJfZGVmYXVsdCIsImV4cG9ydHMiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7QUFDQSxJQUFBQSxNQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxvQkFBQSxHQUFBRixzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUUsc0JBQUEsR0FBQUgsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFHLGlCQUFBLEdBQUFKLHNCQUFBLENBQUFDLE9BQUE7QUNKQSxJQUFJSSxTQUFTLEdBQUksVUFBUSxTQUFLQSxTQUFTLElBQUssVUFBVUMsT0FBTyxFQUFFQyxVQUFVLEVBQUVDLENBQUMsRUFBRUMsU0FBUyxFQUFFO0VBQ3JGLFNBQVNDLEtBQUtBLENBQUNDLEtBQUssRUFBRTtJQUFFLE9BQU9BLEtBQUssWUFBWUgsQ0FBQyxHQUFHRyxLQUFLLEdBQUcsSUFBSUgsQ0FBQyxDQUFDLFVBQVVJLE9BQU8sRUFBRTtNQUFFQSxPQUFPLENBQUNELEtBQUssQ0FBQztJQUFFLENBQUMsQ0FBQztFQUFFO0VBQzNHLE9BQU8sS0FBS0gsQ0FBQyxLQUFLQSxDQUFDLEdBQUdLLE9BQU8sQ0FBQyxFQUFFLFVBQVVELE9BQU8sRUFBRUUsTUFBTSxFQUFFO0lBQ3ZELFNBQVNDLFNBQVNBLENBQUNKLEtBQUssRUFBRTtNQUFFLElBQUk7UUFBRUssSUFBSSxDQUFDUCxTQUFTLENBQUNRLElBQUksQ0FBQ04sS0FBSyxDQUFDLENBQUM7TUFBRSxDQUFDLENBQUMsT0FBT08sQ0FBQyxFQUFFO1FBQUVKLE1BQU0sQ0FBQ0ksQ0FBQyxDQUFDO01BQUU7SUFBRTtJQUMxRixTQUFTQyxRQUFRQSxDQUFDUixLQUFLLEVBQUU7TUFBRSxJQUFJO1FBQUVLLElBQUksQ0FBQ1AsU0FBUyxDQUFD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QUlwQixTQUFTLEVBQUU7Y0FDYixJQUFJQyxhQUFhLElBQUlBLGFBQWEsR0FBRyxDQUFDLEVBQUU7Z0JBQ3RDWSxhQUFhLENBQUEsQ0FBRTtjQUNqQixDQUFDLE1BQU07Z0JBQ0xMLE9BQU8sQ0FBQyxLQUFLLENBQUM7Y0FDaEI7WUFDRjtVQUFDO1VBQUE7WUFBQSxPQUFBaUIsUUFBQSxDQUFBRSxJQUFBO1FBQUE7TUFBQSxHQUFBSixPQUFBO0lBQUEsQ0FDRixFQUFBO0VBQUEsRUFBQztFQUVGO0VBQ0EsSUFBTUssV0FBVyxHQUFHOUIsT0FBTyxnQkFDdkIrQixpQkFBSyxDQUFDQyxZQUFZLENBQUNoQyxPQUFzRCxFQUFFO0lBQ3pFaUMsT0FBTyxFQUFFLFNBQVRBLE9BQU9BLENBQUEsRUFBeUI7TUMzQnhCLElBQUlDLEVBQUU7TUQ0QlpmLFVBQVUsQ0FBQSxDQUFFO01BQ1osSUFBTWdCLGVBQWUsR0FBRyxDQUFBRCxFQUFBLEdBQUNsQyxPQUFPLENBQUNvQyxLQUFpQyxNQUFBLElBQUEsSUFBQUYsRUFBQSxLQUFBLEtBQUEsQ0FBQSxHQUFBLEtBQUEsQ0FBQSxHQUFBQSxFQUFBLENBQUVELE9BQU87TUFDM0UsSUFBSSxPQUFPRSxlQUFlLEtBQUssVUFBVSxFQUFFO1FBQ3hDQSxlQUE2QyxDQUFBM0MsS0FBQSxTQUFBNkMsU0FBUSxDQUFDO01BQ3pEO0lBQ0Y7RUMxQkEsQ0QyQkQsQ0FBQyxHQUNGLElBQUk7RUFFUixPQUFPO0lBQ0w3QixVQUFVLEVBQVZBLFVBQVU7SUFDVnNCLFdBQVcsRUFBWEEsV0FBVztJQUNYVCxZQUFZLEVBQVpBLFlBQVk7SUFDWkQsVUFBVSxFQUFWQSxVQUFVO0lBQ1ZELFVBQVUsRUFBVkE7RUMzQkEsQ0Q0QkQ7QUFDSDtBQUFDLElBQUFtQixRQUFBLEdBQUFDLE9BQUEsY0FFYzlDLGNBQWMiLCJmaWxlIjoiY29tcG9uZW50cy9Qcm9Gb3JtL2xheW91dHMvdXNlT3ZlcmxheUZvcm0uanMiLCJzb3VyY2VzQ29udGVudCI6W251bGwsInZhciBfX2F3YWl0ZXIgPSAodGhpcyAmJiB0aGlzLl9fYXdhaXRlcikgfHwgZnVuY3Rpb24gKHRoaXNBcmcsIF9hcmd1bWVudHMsIFAsIGdlbmVyYXRvcikge1xuICAgIGZ1bmN0aW9uIGFkb3B0KHZhbHVlKSB7IHJldHVybiB2YWx1ZSBpbnN0YW5jZW9mIFAgPyB2YWx1ZSA6IG5ldyBQKGZ1bmN0aW9uIChyZXNvbHZlKSB7IHJlc29sdmUodmFsdWUpOyB9KTsgfVxuICAgIHJldHVybiBuZXcgKFAgfHwgKFAgPSBQcm9taXNlKSkoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkge1xuICAgICAgICBmdW5jdGlvbiBmdWxmaWxsZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3IubmV4dCh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XG4gICAgICAgIGZ1bmN0aW9uIHJlamVjdGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yW1widGhyb3dcIl0odmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxuICAgICAgICBmdW5jdGlvbiBzdGVwKHJlc3VsdCkgeyByZXN1bHQuZG9uZSA/IHJlc29sdmUocmVzdWx0LnZhbHVlKSA6IGFkb3B0KHJlc3VsdC52YWx1ZSkudGhlbihmdWxmaWxsZWQsIHJlamVjdGVkKTsgfVxuICAgICAgICBzdGVwKChnZW5lcmF0b3IgPSBnZW5lcmF0b3IuYXBwbHkodGhpc0FyZywgX2FyZ3VtZW50cyB8fCBbXSkpLm5leHQoKSk7XG4gICAgfSk7XG59O1xuaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB1c2VDb250cm9sbGVkU3RhdGUgZnJvbSAnQDFtb25leS9ob29rcy91c2VDb250cm9sbGVkU3RhdGUnO1xuaW1wb3J0IHVzZURlYm91bmNlZENhbGxiYWNrIGZyb20gJ0AxbW9uZXkvaG9va3MvdXNlRGVib3VuY2VkQ2FsbGJhY2snO1xuaW1wb3J0IHVzZUV2ZW50Q2FsbGJhY2sgZnJvbSAnQDFtb25leS9ob29rcy91c2VFdmVudENhbGxiYWNrJztcbmV4cG9ydCBmdW5jdGlvbiB1c2VPdmVybGF5Rm9ybShvcHRpb25zLCBvbkZpbmlzaCkge1xuICAgIGNvbnN0IHsgb3BlbjogY29udHJvbGxlZE9wZW4sIG9uT3BlbkNoYW5nZSwgdHJpZ2dlciwgYXV0b0Nsb3NlID0gdHJ1ZSwgc3VibWl0VGltZW91dCwgfSA9IG9wdGlvbnM7XG4gICAgLy8gQ29udHJvbGxlZCB3aGVuIGBjb250cm9sbGVkT3BlbmAgaXMgcGFzc2VkLCBpbnRlcm5hbCBvdGhlcndpc2Ug4oCUIGFuZCBhbHdheXNcbiAgICAvLyBmb3J3YXJkIHRoZSBjaGFuZ2UgdG8gYG9uT3BlbkNoYW5nZWAuXG4gICAgY29uc3QgW21lcmdlZE9wZW4sIHNldE1lcmdlZE9wZW5dID0gdXNlQ29udHJvbGxlZFN0YXRlKGZhbHNlLCBjb250cm9sbGVkT3Blbik7XG4gICAgY29uc3Qgc2V0T3BlbiA9IHVzZUV2ZW50Q2FsbGJhY2soKG5leHRPcGVuKSA9PiB7XG4gICAgICAgIHNldE1lcmdlZE9wZW4obmV4dE9wZW4pO1xuICAgICAgICBvbk9wZW5DaGFuZ2UgPT09IG51bGwgfHwgb25PcGVuQ2hhbmdlID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvbk9wZW5DaGFuZ2UobmV4dE9wZW4pO1xuICAgIH0pO1xuICAgIC8vIERlZmVycmVkIGF1dG8tY2xvc2UgYWZ0ZXIgc3VibWl0LiBgY2FuY2VsYCBjbGVhcnMgYW55IHBlbmRpbmcgY2xvc2UgKGUuZy5cbiAgICAvLyB3aGVuIHRoZSBvdmVybGF5IGlzIGhpZGRlbiBmaXJzdCk7IHRoZSB0aW1lciBpcyBhbHNvIGF1dG8tY2FuY2VsbGVkIG9uXG4gICAgLy8gdW5tb3VudC5cbiAgICBjb25zdCB7IHJ1bjogc2NoZWR1bGVDbG9zZSwgY2FuY2VsOiBjYW5jZWxTY2hlZHVsZWRDbG9zZSB9ID0gdXNlRGVib3VuY2VkQ2FsbGJhY2soKCkgPT4gc2V0T3BlbihmYWxzZSksIHN1Ym1pdFRpbWVvdXQpO1xuICAgIGNvbnN0IGhhbmRsZVNob3cgPSB1c2VFdmVudENhbGxiYWNrKCgpID0+IHtcbiAgICAgICAgc2V0T3Blbih0cnVlKTtcbiAgICB9KTtcbiAgICBjb25zdCBoYW5kbGVIaWRlID0gdXNlRXZlbnRDYWxsYmFjaygoKSA9PiB7XG4gICAgICAgIGNhbmNlbFNjaGVkdWxlZENsb3NlKCk7XG4gICAgICAgIHNldE9wZW4oZmFsc2UpO1xuICAgIH0pO1xuICAgIGNvbnN0IGhhbmRsZUZpbmlzaCA9IHVzZUV2ZW50Q2FsbGJhY2soKHZhbHVlcykgPT4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICB5aWVsZCAob25GaW5pc2ggPT09IG51bGwgfHwgb25GaW5pc2ggPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9uRmluaXNoKHZhbHVlcykpO1xuICAgICAgICBpZiAoYXV0b0Nsb3NlKSB7XG4gICAgICAgICAgICBpZiAoc3VibWl0VGltZW91dCAmJiBzdWJtaXRUaW1lb3V0ID4gMCkge1xuICAgICAgICAgICAgICAgIHNjaGVkdWxlQ2xvc2UoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIHNldE9wZW4oZmFsc2UpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfSkpO1xuICAgIC8vIENsb25lIHRyaWdnZXIgd2l0aCBvbkNsaWNrIGhhbmRsZXJcbiAgICBjb25zdCB0cmlnZ2VyTm9kZSA9IHRyaWdnZXJcbiAgICAgICAgPyBSZWFjdC5jbG9uZUVsZW1lbnQodHJpZ2dlciwge1xuICAgICAgICAgICAgb25DbGljazogKC4uLmFyZ3MpID0+IHtcbiAgICAgICAgICAgICAgICB2YXIgX2E7XG4gICAgICAgICAgICAgICAgaGFuZGxlU2hvdygpO1xuICAgICAgICAgICAgICAgIGNvbnN0IG9yaWdpbmFsT25DbGljayA9IChfYSA9IHRyaWdnZXIucHJvcHMpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5vbkNsaWNrO1xuICAgICAgICAgICAgICAgIGlmICh0eXBlb2Ygb3JpZ2luYWxPbkNsaWNrID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICAgICAgICAgIG9yaWdpbmFsT25DbGljayguLi5hcmdzKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICB9KVxuICAgICAgICA6IG51bGw7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgbWVyZ2VkT3BlbixcbiAgICAgICAgdHJpZ2dlck5vZGUsXG4gICAgICAgIGhhbmRsZUZpbmlzaCxcbiAgICAgICAgaGFuZGxlSGlkZSxcbiAgICAgICAgaGFuZGxlU2hvdyxcbiAgICB9O1xufVxuZXhwb3J0IGRlZmF1bHQgdXNlT3ZlcmxheUZvcm07Il0sInNvdXJjZVJvb3QiOiIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMifQ==
139
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvUHJvRm9ybS9zcmMvY29tcG9uZW50cy9Qcm9Gb3JtL2xheW91dHMvdXNlT3ZlcmxheUZvcm0udHMiLCJjb21wb25lbnRzL1Byb0Zvcm0vbGF5b3V0cy91c2VPdmVybGF5Rm9ybS5qcyJdLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfdXNlQ29udHJvbGxlZFN0YXRlMyIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfdXNlRGVib3VuY2VkQ2FsbGJhY2syIiwiX3VzZUV2ZW50Q2FsbGJhY2siLCJfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUiLCJlIiwiV2Vha01hcCIsInIiLCJ0IiwiX19lc01vZHVsZSIsIl90eXBlb2YiLCJoYXMiLCJnZXQiLCJuIiwiX19wcm90b19fIiwiYSIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwidSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImkiLCJzZXQiLCJfX2F3YWl0ZXIiLCJ0aGlzQXJnIiwiX2FyZ3VtZW50cyIsIlAiLCJnZW5lcmF0b3IiLCJhZG9wdCIsInZhbHVlIiwicmVzb2x2ZSIsIlByb21pc2UiLCJyZWplY3QiLCJmdWxmaWxsZWQiLCJzdGVwIiwibmV4dCIsInJlamVjdGVkIiwicmVzdWx0IiwiZG9uZSIsInRoZW4iLCJhcHBseSIsInVzZU92ZXJsYXlGb3JtIiwib3B0aW9ucyIsIm9uRmluaXNoIiwiX3RoaXMiLCJjb250cm9sbGVkT3BlbiIsIm9wZW4iLCJvbk9wZW5DaGFuZ2UiLCJ0cmlnZ2VyIiwiX29wdGlvbnMkYXV0b0Nsb3NlIiwiYXV0b0Nsb3NlIiwic3VibWl0VGltZW91dCIsIl91c2VDb250cm9sbGVkU3RhdGUiLCJ1c2VDb250cm9sbGVkU3RhdGUiLCJfdXNlQ29udHJvbGxlZFN0YXRlMiIsIl9zbGljZWRUb0FycmF5MiIsIm1lcmdlZE9wZW4iLCJzZXRNZXJnZWRPcGVuIiwic2Vzc2lvblJlZiIsInVzZVJlZiIsInNldE9wZW4iLCJ1c2VFdmVudENhbGxiYWNrIiwibmV4dE9wZW4iLCJjdXJyZW50IiwiX3VzZURlYm91bmNlZENhbGxiYWNrIiwidXNlRGVib3VuY2VkQ2FsbGJhY2siLCJzZXNzaW9uIiwic2NoZWR1bGVDbG9zZSIsInJ1biIsImNhbmNlbFNjaGVkdWxlZENsb3NlIiwiY2FuY2VsIiwidXNlRWZmZWN0IiwiaGFuZGxlU2hvdyIsImhhbmRsZUhpZGUiLCJoYW5kbGVGaW5pc2giLCJ2YWx1ZXMiLCJfcmVnZW5lcmF0b3IiLCJtYXJrIiwiX2NhbGxlZSIsIndyYXAiLCJfY29udGV4dCIsInByZXYiLCJzZW50IiwiYWJydXB0Iiwic3RvcCIsInRyaWdnZXJOb2RlIiwiUmVhY3QiLCJjbG9uZUVsZW1lbnQiLCJvbkNsaWNrIiwiX2EiLCJvcmlnaW5hbE9uQ2xpY2siLCJwcm9wcyIsImFyZ3VtZW50cyIsIl9kZWZhdWx0IiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFDQSxJQUFBQSxNQUFBLEdBQUFDLHVCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxvQkFBQSxHQUFBQyxzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQUcsc0JBQUEsR0FBQUQsc0JBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFJLGlCQUFBLEdBQUFGLHNCQUFBLENBQUFGLE9BQUE7QUFBOEQsU0FBQUsseUJBQUFDLENBQUEsNkJBQUFDLE9BQUEsbUJBQUFDLENBQUEsT0FBQUQsT0FBQSxJQUFBRSxDQUFBLE9BQUFGLE9BQUEsWUFBQUYsd0JBQUEsWUFBQUEseUJBQUFDLENBQUEsV0FBQUEsQ0FBQSxHQUFBRyxDQUFBLEdBQUFELENBQUEsS0FBQUYsQ0FBQTtBQUFBLFNBQUFQLHdCQUFBTyxDQUFBLEVBQUFFLENBQUEsU0FBQUEsQ0FBQSxJQUFBRixDQUFBLElBQUFBLENBQUEsQ0FBQUksVUFBQSxTQUFBSixDQUFBLGVBQUFBLENBQUEsZ0JBQUFLLE9BQUEsQ0FBQUwsQ0FB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LFFBQUEsQ0FBQUcsTUFBQSxXQUNNOUMsTUFBTTtVQUFBO1VBQUE7WUFBQSxPQUFBMkMsUUFBQSxDQUFBSSxJQUFBO1FBQUE7TUFBQSxHQUFBTixPQUFBO0lBQUEsQ0FDZCxFQUFBO0VBQUEsRUFBQztFQUVGO0VBQ0EsSUFBTU8sV0FBVyxHQUFHckMsT0FBTyxnQkFDdkJzQyxpQkFBSyxDQUFDQyxZQUFZLENBQUN2QyxPQUFzRCxFQUFFO0lBQ3pFd0MsT0FBTyxFQUFFLFNBQVRBLE9BQU9BLENBQUEsRUFBeUI7TUM1QnhCLElBQUlDLEVBQUU7TUQ2QlpqQixVQUFVLENBQUEsQ0FBRTtNQUNaLElBQU1rQixlQUFlLEdBQUcsQ0FBQUQsRUFBQSxHQUFDekMsT0FBTyxDQUFDMkMsS0FBaUMsTUFBQSxJQUFBLElBQUFGLEVBQUEsS0FBQSxLQUFBLENBQUEsR0FBQSxLQUFBLENBQUEsR0FBQUEsRUFBQSxDQUFFRCxPQUFPO01BQzNFLElBQUksT0FBT0UsZUFBZSxLQUFLLFVBQVUsRUFBRTtRQUN4Q0EsZUFBNkMsQ0FBQWxELEtBQUEsU0FBQW9ELFNBQVEsQ0FBQztNQUN6RDtJQUNGO0VDM0JBLENENEJELENBQUMsR0FDRixJQUFJO0VBRVIsT0FBTztJQUNMcEMsVUFBVSxFQUFWQSxVQUFVO0lBQ1Y2QixXQUFXLEVBQVhBLFdBQVc7SUFDWFgsWUFBWSxFQUFaQSxZQUFZO0lBQ1pELFVBQVUsRUFBVkEsVUFBVTtJQUNWRCxVQUFVLEVBQVZBO0VDNUJBLENENkJEO0FBQ0g7QUFBQyxJQUFBcUIsUUFBQSxHQUFBQyxPQUFBLGNBRWNyRCxjQUFjIiwiZmlsZSI6ImNvbXBvbmVudHMvUHJvRm9ybS9sYXlvdXRzL3VzZU92ZXJsYXlGb3JtLmpzIiwic291cmNlc0NvbnRlbnQiOltudWxsLCJ2YXIgX19hd2FpdGVyID0gKHRoaXMgJiYgdGhpcy5fX2F3YWl0ZXIpIHx8IGZ1bmN0aW9uICh0aGlzQXJnLCBfYXJndW1lbnRzLCBQLCBnZW5lcmF0b3IpIHtcbiAgICBmdW5jdGlvbiBhZG9wdCh2YWx1ZSkgeyByZXR1cm4gdmFsdWUgaW5zdGFuY2VvZiBQID8gdmFsdWUgOiBuZXcgUChmdW5jdGlvbiAocmVzb2x2ZSkgeyByZXNvbHZlKHZhbHVlKTsgfSk7IH1cbiAgICByZXR1cm4gbmV3IChQIHx8IChQID0gUHJvbWlzZSkpKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHtcbiAgICAgICAgZnVuY3Rpb24gZnVsZmlsbGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yLm5leHQodmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxuICAgICAgICBmdW5jdGlvbiByZWplY3RlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvcltcInRocm93XCJdKHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cbiAgICAgICAgZnVuY3Rpb24gc3RlcChyZXN1bHQpIHsgcmVzdWx0LmRvbmUgPyByZXNvbHZlKHJlc3VsdC52YWx1ZSkgOiBhZG9wdChyZXN1bHQudmFsdWUpLnRoZW4oZnVsZmlsbGVkLCByZWplY3RlZCk7IH1cbiAgICAgICAgc3RlcCgoZ2VuZXJhdG9yID0gZ2VuZXJhdG9yLmFwcGx5KHRoaXNBcmcsIF9hcmd1bWVudHMgfHwgW10pKS5uZXh0KCkpO1xuICAgIH0pO1xufTtcbmltcG9ydCBSZWFjdCwgeyB1c2VFZmZlY3QsIHVzZVJlZiB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB1c2VDb250cm9sbGVkU3RhdGUgZnJvbSAnQDFtb25leS9ob29rcy91c2VDb250cm9sbGVkU3RhdGUnO1xuaW1wb3J0IHVzZURlYm91bmNlZENhbGxiYWNrIGZyb20gJ0AxbW9uZXkvaG9va3MvdXNlRGVib3VuY2VkQ2FsbGJhY2snO1xuaW1wb3J0IHVzZUV2ZW50Q2FsbGJhY2sgZnJvbSAnQDFtb25leS9ob29rcy91c2VFdmVudENhbGxiYWNrJztcbmV4cG9ydCBmdW5jdGlvbiB1c2VPdmVybGF5Rm9ybShvcHRpb25zLCBvbkZpbmlzaCkge1xuICAgIGNvbnN0IHsgb3BlbjogY29udHJvbGxlZE9wZW4sIG9uT3BlbkNoYW5nZSwgdHJpZ2dlciwgYXV0b0Nsb3NlID0gdHJ1ZSwgc3VibWl0VGltZW91dCwgfSA9IG9wdGlvbnM7XG4gICAgLy8gQ29udHJvbGxlZCB3aGVuIGBjb250cm9sbGVkT3BlbmAgaXMgcGFzc2VkLCBpbnRlcm5hbCBvdGhlcndpc2Ug4oCUIGFuZCBhbHdheXNcbiAgICAvLyBmb3J3YXJkIHRoZSBjaGFuZ2UgdG8gYG9uT3BlbkNoYW5nZWAuXG4gICAgY29uc3QgW21lcmdlZE9wZW4sIHNldE1lcmdlZE9wZW5dID0gdXNlQ29udHJvbGxlZFN0YXRlKGZhbHNlLCBjb250cm9sbGVkT3Blbik7XG4gICAgLy8gU2Vzc2lvbiBnZW5lcmF0aW9uIOKAlCBldmVyeSBvcGVuLXN0YXRlIGNoYW5nZSBzdGFydHMgYSBuZXcgc2Vzc2lvbiwgc28gYVxuICAgIC8vIFNUQUxFIGluLWZsaWdodCBzdWJtaXQgKHN0YXJ0ZWQgaW4gYSBwcmV2aW91cyBzZXNzaW9uKSBjYW4ndCBhdXRvLWNsb3NlXG4gICAgLy8gdGhlIG92ZXJsYXkgdGhlIHVzZXIgaGFzIHNpbmNlIGNsb3NlZCBhbmQgcmVvcGVuZWQuXG4gICAgY29uc3Qgc2Vzc2lvblJlZiA9IHVzZVJlZigwKTtcbiAgICBjb25zdCBzZXRPcGVuID0gdXNlRXZlbnRDYWxsYmFjaygobmV4dE9wZW4pID0+IHtcbiAgICAgICAgc2Vzc2lvblJlZi5jdXJyZW50ICs9IDE7XG4gICAgICAgIHNldE1lcmdlZE9wZW4obmV4dE9wZW4pO1xuICAgICAgICBvbk9wZW5DaGFuZ2UgPT09IG51bGwgfHwgb25PcGVuQ2hhbmdlID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvbk9wZW5DaGFuZ2UobmV4dE9wZW4pO1xuICAgIH0pO1xuICAgIC8vIERlZmVycmVkIGF1dG8tY2xvc2UgYWZ0ZXIgc3VibWl0LiBUaGUgZmlyZS10aW1lIHNlc3Npb24gY2hlY2sgbWFrZXMgYVxuICAgIC8vIFNUQUxFIHRpbWVyIChzY2hlZHVsZWQgaW4gYSBwcmV2aW91cyBvcGVuL2Nsb3NlIHNlc3Npb24pIGEgbm8tb3A7XG4gICAgLy8gYGNhbmNlbGAgY2xlYXJzIGFueSBwZW5kaW5nIGNsb3NlIGFuZCB0aGUgdGltZXIgYWxzbyBhdXRvLWNhbmNlbHMgb25cbiAgICAvLyB1bm1vdW50LlxuICAgIGNvbnN0IHsgcnVuOiBzY2hlZHVsZUNsb3NlLCBjYW5jZWw6IGNhbmNlbFNjaGVkdWxlZENsb3NlIH0gPSB1c2VEZWJvdW5jZWRDYWxsYmFjaygoc2Vzc2lvbikgPT4ge1xuICAgICAgICBpZiAoc2Vzc2lvbiA9PT0gc2Vzc2lvblJlZi5jdXJyZW50KVxuICAgICAgICAgICAgc2V0T3BlbihmYWxzZSk7XG4gICAgfSwgc3VibWl0VGltZW91dCk7XG4gICAgLy8gQW55IG9wZW4tc3RhdGUgdHJhbnNpdGlvbiDigJQgaW5jbHVkaW5nIENPTlRST0xMRUQgYG9wZW5gIHByb3AgZmxpcHMgdGhhdFxuICAgIC8vIGJ5cGFzcyBzZXRPcGVuIOKAlCBzdGFydHMgYSBuZXcgc2Vzc2lvbiBhbmQgZGlzY2FyZHMgYSBwZW5kaW5nIGNsb3NlLlxuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIHNlc3Npb25SZWYuY3VycmVudCArPSAxO1xuICAgICAgICBjYW5jZWxTY2hlZHVsZWRDbG9zZSgpO1xuICAgIH0sIFttZXJnZWRPcGVuLCBjYW5jZWxTY2hlZHVsZWRDbG9zZV0pO1xuICAgIGNvbnN0IGhhbmRsZVNob3cgPSB1c2VFdmVudENhbGxiYWNrKCgpID0+IHtcbiAgICAgICAgc2V0T3Blbih0cnVlKTtcbiAgICB9KTtcbiAgICBjb25zdCBoYW5kbGVIaWRlID0gdXNlRXZlbnRDYWxsYmFjaygoKSA9PiB7XG4gICAgICAgIGNhbmNlbFNjaGVkdWxlZENsb3NlKCk7XG4gICAgICAgIHNldE9wZW4oZmFsc2UpO1xuICAgIH0pO1xuICAgIC8vIFByb3BhZ2F0ZSB0aGUgY29uc3VtZXIncyByZXR1cm4gdmFsdWUg4oCUIFByb0Zvcm0gZ2F0ZXMgVVJMIHN5bmMgb24gaXQsXG4gICAgLy8gYW5kIGF1dG9DbG9zZSBob25vcnMgaXQgdG9vOiBhbiBleHBsaWNpdCBgZmFsc2VgIG1lYW5zIHRoZSBzdWJtaXQgRkFJTEVELFxuICAgIC8vIHNvIHRoZSBvdmVybGF5IHN0YXlzIG9wZW4gaW5zdGVhZCBvZiBkaXNjYXJkaW5nIHRoZSB1c2VyJ3MgaW5wdXQuXG4gICAgY29uc3QgaGFuZGxlRmluaXNoID0gdXNlRXZlbnRDYWxsYmFjaygodmFsdWVzKSA9PiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgIGNvbnN0IHNlc3Npb24gPSBzZXNzaW9uUmVmLmN1cnJlbnQ7XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IHlpZWxkIChvbkZpbmlzaCA9PT0gbnVsbCB8fCBvbkZpbmlzaCA9PT0gdm9pZCAwID8gdm9pZCAwIDogb25GaW5pc2godmFsdWVzKSk7XG4gICAgICAgIGlmIChhdXRvQ2xvc2UgJiYgcmVzdWx0ICE9PSBmYWxzZSAmJiBzZXNzaW9uID09PSBzZXNzaW9uUmVmLmN1cnJlbnQpIHtcbiAgICAgICAgICAgIGlmIChzdWJtaXRUaW1lb3V0ICYmIHN1Ym1pdFRpbWVvdXQgPiAwKSB7XG4gICAgICAgICAgICAgICAgc2NoZWR1bGVDbG9zZShzZXNzaW9uKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIHNldE9wZW4oZmFsc2UpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfSkpO1xuICAgIC8vIENsb25lIHRyaWdnZXIgd2l0aCBvbkNsaWNrIGhhbmRsZXJcbiAgICBjb25zdCB0cmlnZ2VyTm9kZSA9IHRyaWdnZXJcbiAgICAgICAgPyBSZWFjdC5jbG9uZUVsZW1lbnQodHJpZ2dlciwge1xuICAgICAgICAgICAgb25DbGljazogKC4uLmFyZ3MpID0+IHtcbiAgICAgICAgICAgICAgICB2YXIgX2E7XG4gICAgICAgICAgICAgICAgaGFuZGxlU2hvdygpO1xuICAgICAgICAgICAgICAgIGNvbnN0IG9yaWdpbmFsT25DbGljayA9IChfYSA9IHRyaWdnZXIucHJvcHMpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5vbkNsaWNrO1xuICAgICAgICAgICAgICAgIGlmICh0eXBlb2Ygb3JpZ2luYWxPbkNsaWNrID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICAgICAgICAgIG9yaWdpbmFsT25DbGljayguLi5hcmdzKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICB9KVxuICAgICAgICA6IG51bGw7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgbWVyZ2VkT3BlbixcbiAgICAgICAgdHJpZ2dlck5vZGUsXG4gICAgICAgIGhhbmRsZUZpbmlzaCxcbiAgICAgICAgaGFuZGxlSGlkZSxcbiAgICAgICAgaGFuZGxlU2hvdyxcbiAgICB9O1xufVxuZXhwb3J0IGRlZmF1bHQgdXNlT3ZlcmxheUZvcm07Il0sInNvdXJjZVJvb3QiOiIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMifQ==
@@ -25,10 +25,7 @@
25
25
  }
26
26
 
27
27
  .om-component-ui-form-item {
28
- margin-bottom: var(--om-spacing-300, 12px);
29
- }
30
- .om-component-ui-form-item-small {
31
- margin-bottom: var(--om-spacing-200, 8px);
28
+ margin-bottom: var(--om-spacing-600, 24px);
32
29
  }
33
30
 
34
31
  .om-component-ui-form-item-label-wrapper-vertical {
@@ -54,6 +51,9 @@
54
51
  .om-component-ui-form-item .om-component-ui-form-item-error {
55
52
  margin-top: 8px;
56
53
  }
54
+ .om-component-ui-form-item .om-component-ui-form-item-warning {
55
+ margin-top: 8px;
56
+ }
57
57
  .om-component-ui-form-item .om-component-ui-form-item-feedback {
58
58
  margin-top: 8px;
59
59
  }
@@ -1,7 +1,7 @@
1
1
  import type { ReactNode } from 'react';
2
2
  import type { ButtonProps } from "../Button";
3
3
  import { getNestedValue, setNestedValue } from './core/pathUtils';
4
- import type { ProFormFieldTransformFn, ProFormValueEnumObj } from './interface';
4
+ import type { ProFormDateFormatter, ProFormFieldTransformFn, ProFormValueEnumObj, ProFormValueType } from './interface';
5
5
  export { getNestedValue, setNestedValue };
6
6
  export declare function stableSerialize(value: unknown): string;
7
7
  export declare function renderTextReadonly(value: unknown): ReactNode;
@@ -13,6 +13,17 @@ export declare function extractButtonProps(config: false | Partial<ButtonProps>
13
13
  rest: Partial<ButtonProps>;
14
14
  };
15
15
  export declare function transformSubmitValues(values: Record<string, unknown>, transforms: Record<string, ProFormFieldTransformFn>): Record<string, unknown>;
16
+ export declare const DATE_FORMAT = "YYYY-MM-DD";
17
+ export declare const DATE_TIME_FORMAT = "YYYY-MM-DD HH:mm:ss";
18
+ /** Minimal pattern formatter supporting YYYY / MM / DD / HH / mm / ss tokens. */
19
+ export declare function formatDateByPattern(date: Date, pattern: string): string;
20
+ /**
21
+ * Recursively serialize every `Date` in `values` according to `dateFormatter`.
22
+ * With `'string'`, fields registered as `valueType: 'dateTime'` use
23
+ * `YYYY-MM-DD HH:mm:ss`, everything else `YYYY-MM-DD`. Untouched when the
24
+ * formatter is `false`. Non-Date values pass through unchanged.
25
+ */
26
+ export declare function formatDateValues(values: Record<string, unknown>, dateFormatter: ProFormDateFormatter, valueTypes: Record<string, ProFormValueType>): Record<string, unknown>;
16
27
  export declare function omitNilValues(values: Record<string, unknown>): Record<string, unknown>;
17
28
  export interface ValueEnumOption {
18
29
  label: string;