@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
@@ -7,11 +7,16 @@ 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"));
11
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
10
12
  var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
11
13
  var _react = _interopRequireWildcard(require("react"));
12
14
  var _useEventCallback = _interopRequireDefault(require("@1money/hooks/useEventCallback"));
15
+ var _useDebouncedCallback2 = _interopRequireDefault(require("@1money/hooks/useDebouncedCallback"));
13
16
  var _context2 = require("../context");
17
+ var _formStore = require("./formStore");
14
18
  var _pathUtils = require("./pathUtils");
19
+ var _runRules = require("./runRules");
15
20
  var _constants = require("./constants");
16
21
  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
22
  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; }
@@ -42,9 +47,24 @@ var __awaiter = void 0 && (void 0).__awaiter || function (thisArg, _arguments, P
42
47
  step((generator = generator.apply(thisArg, _arguments || [])).next());
43
48
  });
44
49
  };
45
- /** Normalise a change-handler argument: unwrap `e.target.value`, else pass the value through. */
50
+ /**
51
+ * Normalise a change-handler argument: unwrap `e.target[valuePropName]` /
52
+ * `e[valuePropName]` (e.g. Checkbox emits `{ checked }`), else `e.target.value`,
53
+ * else pass the value through (e.g. Switch emits the boolean directly).
54
+ */
46
55
  function extractEventValue(e) {
47
- return e && (0, _typeof2["default"])(e) === 'object' && 'target' in e ? e.target.value : e;
56
+ var valuePropName = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'value';
57
+ if (e === null || (0, _typeof2["default"])(e) !== 'object') return e;
58
+ var event = e;
59
+ if (valuePropName !== 'value' && valuePropName in event) {
60
+ return event[valuePropName];
61
+ }
62
+ if ('target' in event && event.target && (0, _typeof2["default"])(event.target) === 'object') {
63
+ var target = event.target;
64
+ if (valuePropName in target) return target[valuePropName];
65
+ if ('value' in target) return target.value;
66
+ }
67
+ return e;
48
68
  }
49
69
  function useFormItem(options) {
50
70
  var _this = this;
@@ -52,60 +72,134 @@ function useFormItem(options) {
52
72
  _options$rules = options.rules,
53
73
  rules = _options$rules === void 0 ? [] : _options$rules,
54
74
  required = options.required,
55
- validateStatus = options.validateStatus;
56
- var ctx = (0, _context2.useProFormContext)();
57
- var values = ctx.values,
58
- errors = ctx.errors,
59
- validating = ctx.validating,
60
- setFieldValue = ctx.setFieldValue,
61
- validateField = ctx.validateField,
62
- validateFieldAsync = ctx.validateFieldAsync,
63
- registerField = ctx.registerField,
64
- unregisterField = ctx.unregisterField,
65
- size = ctx.size,
66
- labelAlign = ctx.labelAlign,
67
- requiredMark = ctx.requiredMark,
68
- validateTrigger = ctx.validateTrigger;
75
+ validateStatus = options.validateStatus,
76
+ _options$valuePropNam = options.valuePropName,
77
+ valuePropName = _options$valuePropNam === void 0 ? 'value' : _options$valuePropNam,
78
+ validateDebounce = options.validateDebounce;
79
+ var _useProFormStable = (0, _context2.useProFormStable)(),
80
+ setFieldValue = _useProFormStable.setFieldValue,
81
+ validateField = _useProFormStable.validateField,
82
+ validateFieldAsync = _useProFormStable.validateFieldAsync,
83
+ registerField = _useProFormStable.registerField,
84
+ unregisterField = _useProFormStable.unregisterField,
85
+ size = _useProFormStable.size,
86
+ labelAlign = _useProFormStable.labelAlign,
87
+ requiredMark = _useProFormStable.requiredMark,
88
+ validateTrigger = _useProFormStable.validateTrigger,
89
+ formDisabled = _useProFormStable.disabled;
90
+ var store = (0, _context2.useProFormStore)();
69
91
  var isRequired = Boolean(required || rules.some(function (rule) {
70
92
  return rule.required;
71
93
  }));
72
- var fieldValue = name ? name.includes('.') ? (0, _pathUtils.getNestedValue)(values, name) : values[name] : undefined;
73
- var fieldError = name ? name.includes('.') ? (0, _pathUtils.getNestedValue)(errors, name) : errors[name] : undefined;
74
- var fieldValidating = name ? validating[name] || false : false;
75
- var finalStatus = validateStatus || (fieldError ? 'error' : undefined);
76
- var runValidate = (0, _useEventCallback["default"])(function (value) {
77
- if (name && rules.length > 0) return validateField(name, rules, value);
78
- return true;
94
+ // Per-field store subscription: this item re-renders ONLY when its own
95
+ // value/error/warning/validating slice changes typing in a sibling field
96
+ // produces an equal tuple and the selector short-circuits.
97
+ // Errors/warnings are stored FLAT, keyed by the full (possibly dotted) field
98
+ // name never resolve them as nested paths or dotted names would miss.
99
+ var _useStoreSelector = (0, _formStore.useStoreSelector)(store, function (state) {
100
+ return [name ? name.includes('.') ? (0, _pathUtils.getNestedValue)(state.values, name) : state.values[name] : undefined, name ? state.errors[name] : undefined, name ? state.warnings[name] : undefined, name ? state.validating[name] || false : false];
101
+ }, _formStore.shallowEqualArrays),
102
+ _useStoreSelector2 = (0, _slicedToArray2["default"])(_useStoreSelector, 4),
103
+ fieldValue = _useStoreSelector2[0],
104
+ fieldError = _useStoreSelector2[1],
105
+ fieldWarning = _useStoreSelector2[2],
106
+ fieldValidating = _useStoreSelector2[3];
107
+ var finalStatus = validateStatus || (fieldError ? 'error' : fieldWarning ? 'warning' : undefined);
108
+ // Run only the rules applicable to the given interactive trigger; rules
109
+ // without an explicit validateTrigger follow the form-level setting.
110
+ var runValidate = (0, _useEventCallback["default"])(function (value, trigger) {
111
+ if (!name || rules.length === 0) return true;
112
+ var applicable = (0, _runRules.filterRulesByTrigger)(rules, trigger, validateTrigger);
113
+ if (applicable.length === 0) return true;
114
+ return validateField(name, applicable, value);
79
115
  });
80
- var runValidateAsync = (0, _useEventCallback["default"])(function (value) {
116
+ var runValidateAsync = (0, _useEventCallback["default"])(function (value, trigger) {
81
117
  return __awaiter(_this, void 0, void 0, /*#__PURE__*/_regenerator["default"].mark(function _callee() {
118
+ var applicable;
82
119
  return _regenerator["default"].wrap(function (_context) {
83
120
  while (1) switch (_context.prev = _context.next) {
84
121
  case 0:
85
- if (!(name && rules.length > 0)) {
122
+ if (!(!name || rules.length === 0)) {
86
123
  _context.next = 1;
87
124
  break;
88
125
  }
89
- _context.next = 1;
90
- return validateFieldAsync(name, value, rules);
126
+ return _context.abrupt("return");
91
127
  case 1:
128
+ applicable = (0, _runRules.filterRulesByTrigger)(rules, trigger, validateTrigger);
129
+ if (!(applicable.length === 0)) {
130
+ _context.next = 2;
131
+ break;
132
+ }
133
+ return _context.abrupt("return");
134
+ case 2:
135
+ _context.next = 3;
136
+ return validateFieldAsync(name, value, applicable);
137
+ case 3:
92
138
  case "end":
93
139
  return _context.stop();
94
140
  }
95
141
  }, _callee);
96
142
  }));
97
143
  });
144
+ var _useDebouncedCallback = (0, _useDebouncedCallback2["default"])(function (value) {
145
+ runValidate(value, 'onChange');
146
+ }, validateDebounce),
147
+ debouncedValidate = _useDebouncedCallback.run;
98
148
  var handleChange = (0, _useEventCallback["default"])(function (value) {
99
149
  if (name) {
100
150
  setFieldValue(name, value);
101
- if (validateTrigger === 'onChange') runValidate(value);
151
+ // touched is set by the user change trigger —
152
+ // programmatic setFieldsValue does not mark fields touched.
153
+ var touched = store.getState().touched;
154
+ if (!touched[name]) {
155
+ store.setState({
156
+ touched: Object.assign(Object.assign({}, touched), (0, _defineProperty2["default"])({}, name, true))
157
+ });
158
+ }
159
+ if (validateDebounce && validateDebounce > 0) {
160
+ debouncedValidate(value);
161
+ } else {
162
+ runValidate(value, 'onChange');
163
+ }
102
164
  }
103
165
  });
104
166
  var handleBlur = (0, _useEventCallback["default"])(function () {
105
- if (validateTrigger === 'onBlur') runValidateAsync(fieldValue);
167
+ // Read the LIVE value from the store — a change committed in the same
168
+ // tick (change → immediate blur) must be validated, not the render-time
169
+ // snapshot.
170
+ var currentValue = name ? name.includes('.') ? (0, _pathUtils.getNestedValue)(store.getState().values, name) : store.getState().values[name] : undefined;
171
+ runValidateAsync(currentValue, 'onBlur');
172
+ });
173
+ // Latest child-provided callbacks, captured at injectField time. The STABLE
174
+ // injected handlers below delegate through this ref instead of being
175
+ // recreated per render — so a memoized field component sees shallow-equal
176
+ // props across renders and can bail out while another field is typing.
177
+ var childCallbacksRef = (0, _react.useRef)({});
178
+ var injectedOnChange = (0, _useEventCallback["default"])(function (e) {
179
+ var _b2;
180
+ var _a, _b;
181
+ handleChange(extractEventValue(e, valuePropName));
182
+ for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
183
+ args[_key - 1] = arguments[_key];
184
+ }
185
+ (_b = (_a = childCallbacksRef.current).onChange) === null || _b === void 0 ? void 0 : (_b2 = _b).call.apply(_b2, [_a, e].concat(args));
106
186
  });
187
+ var injectedOnBlur = (0, _useEventCallback["default"])(function () {
188
+ var _b3;
189
+ var _a, _b;
190
+ handleBlur();
191
+ for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
192
+ args[_key2] = arguments[_key2];
193
+ }
194
+ (_b = (_a = childCallbacksRef.current).onBlur) === null || _b === void 0 ? void 0 : (_b3 = _b).call.apply(_b3, [_a].concat(args));
195
+ });
196
+ // Keep the registry in sync with the LATEST rules every render (registration
197
+ // is a cheap ref mutation): dynamic rules (e.g. required toggled by another
198
+ // field) must be visible to submit-time validation, not just onChange.
107
199
  (0, _react.useEffect)(function () {
108
200
  if (name && registerField) registerField(name, rules);
201
+ });
202
+ (0, _react.useEffect)(function () {
109
203
  return function () {
110
204
  if (name && unregisterField) unregisterField(name);
111
205
  };
@@ -115,44 +209,35 @@ function useFormItem(options) {
115
209
  if (!name || ! /*#__PURE__*/_react["default"].isValidElement(child)) return child;
116
210
  var childProps = child.props;
117
211
  var displayName = (_a = child.type) === null || _a === void 0 ? void 0 : _a.displayName;
118
- var isFormComponent = _constants.FORM_COMPONENT_NAMES.includes(displayName) || childProps.placeholder !== undefined || childProps.value !== undefined;
212
+ var isFormComponent = _constants.FORM_COMPONENT_NAMES.includes(displayName) || childProps.placeholder !== undefined || childProps.value !== undefined || childProps[valuePropName] !== undefined;
119
213
  if (!isFormComponent) return child;
120
214
  var safeValue = fieldValue;
121
215
  if (safeValue === null || safeValue === undefined) {
122
- if (_constants.TEXT_LIKE_COMPONENT_NAMES.includes(displayName || '') || childProps.placeholder !== undefined) {
123
- safeValue = '';
124
- } else if (['Checkbox', 'Switch'].includes(displayName || '')) {
216
+ if (valuePropName === 'checked' || ['Checkbox', 'Switch'].includes(displayName || '')) {
125
217
  safeValue = false;
218
+ } else if (_constants.TEXT_LIKE_COMPONENT_NAMES.includes(displayName || '') || childProps.placeholder !== undefined) {
219
+ safeValue = '';
126
220
  }
127
221
  } else if (_constants.TEXT_LIKE_COMPONENT_NAMES.includes(displayName || '') && typeof safeValue !== 'string' && typeof safeValue !== 'number') {
128
222
  safeValue = '';
129
223
  }
130
- var injectedProps = Object.assign({
131
- value: safeValue,
132
- onChange: function onChange(e) {
133
- handleChange(extractEventValue(e));
134
- if (typeof childProps.onChange === 'function') {
135
- for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
136
- args[_key - 1] = arguments[_key];
137
- }
138
- childProps.onChange.apply(childProps, [e].concat(args));
139
- }
140
- },
141
- onBlur: function onBlur() {
142
- handleBlur();
143
- if (typeof childProps.onBlur === 'function') {
144
- childProps.onBlur.apply(childProps, arguments);
145
- }
146
- },
147
- size: childProps.size || size
148
- }, finalStatus === 'error' && {
224
+ childCallbacksRef.current = {
225
+ onChange: typeof childProps.onChange === 'function' ? childProps.onChange : undefined,
226
+ onBlur: typeof childProps.onBlur === 'function' ? childProps.onBlur : undefined
227
+ };
228
+ var injectedProps = Object.assign(Object.assign(Object.assign((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])({}, valuePropName, safeValue), "onChange", injectedOnChange), "onBlur", injectedOnBlur), finalStatus === 'error' && {
149
229
  status: 'error'
230
+ }), formDisabled && childProps.disabled === undefined && {
231
+ disabled: true
232
+ }), _constants.SIZE_AWARE_COMPONENT_NAMES.includes(displayName || '') && childProps.size === undefined && {
233
+ size: size
150
234
  });
151
235
  return /*#__PURE__*/_react["default"].cloneElement(child, injectedProps);
152
236
  };
153
237
  return {
154
238
  fieldValue: fieldValue,
155
239
  fieldError: fieldError,
240
+ fieldWarning: fieldWarning,
156
241
  fieldValidating: fieldValidating,
157
242
  validateStatus: finalStatus,
158
243
  isRequired: isRequired,
@@ -162,4 +247,4 @@ function useFormItem(options) {
162
247
  injectField: injectField
163
248
  };
164
249
  }
165
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvUHJvRm9ybS9zcmMvY29tcG9uZW50cy9Qcm9Gb3JtL2NvcmUvdXNlRm9ybUl0ZW0udHMiLCJjb21wb25lbnRzL1Byb0Zvcm0vY29yZS91c2VGb3JtSXRlbS5qcyJdLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfdXNlRXZlbnRDYWxsYmFjayIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfY29udGV4dDIiLCJfcGF0aFV0aWxzIiwiX2NvbnN0YW50cyIsIl9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSIsImUiLCJXZWFrTWFwIiwiciIsInQiLCJfX2VzTW9kdWxlIiwiX3R5cGVvZjMiLCJoYXMiLCJnZXQiLCJuIiwiX19wcm90b19fIiwiYSIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwidSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImkiLCJzZXQiLCJfX2F3YWl0ZXIiLCJ0aGlzQXJnIiwiX2FyZ3VtZW50cyIsIlAiLCJnZW5lcmF0b3IiLCJhZG9wdCIsInZhbHVlIiwicmVzb2x2ZSIsIlByb21pc2UiLCJyZWplY3QiLCJmdWxmaWxsZWQiLCJzdGVwIiwibmV4dCIsInJlamVjdGVkIiwicmVzdWx0IiwiZG9uZSIsInRoZW4iLCJhcHBseSIsImV4dHJhY3RFdmVudFZhbHVlIiwiX3R5cGVvZjIiLCJ0YXJnZXQiLCJ1c2VGb3JtSXRlbSIsIm9wdGlvbnMiLCJfdGhpcyIsIm5hbWUiLCJfb3B0aW9ucyRydWxlcyIsInJ1bGVzIiwicmVxdWlyZWQiLCJ2YWxpZGF0ZVN0YXR1cyIsImN0eCIsInVzZVByb0Zvcm1Db250ZXh0IiwidmFsdWVzIiwiZXJyb3JzIiwidmFsaWRhdGluZyIsInNldEZpZWxkVmFsdWUiLCJ2YWxpZGF0ZUZpZWxkIiwidmFsaWRhdGVGaWVsZEFzeW5jIiwicmVnaXN0ZXJGaWVsZCIsInVucmVnaXN0ZXJGaWVsZCIsInNpemUiLCJsYWJlbEFsaWduIiwicmVxdWlyZWRNYXJrIiwidmFsaWRhdGVUcmlnZ2VyIiwiaXNSZXF1aXJlZCIsIkJvb2xlYW4iLCJzb21lIiwicnVsZSIsImZpZWxkVmFsdWUiLCJpbmNsdWRlcyIsImdldE5lc3RlZFZhbHVlIiwidW5kZWZpbmVkIiwiZmllbGRFcnJvciIsImZpZWxkVmFsaWRhdGluZyIsImZpbmFsU3RhdHVzIiwicnVuVmFsaWRhdGUiLCJ1c2VFdmVudENhbGxiYWNrIiwibGVuZ3RoIiwicnVuVmFsaWRhdGVBc3luYyIsIl9yZWdlbmVyYXRvciIsIm1hcmsiLCJfY2FsbGVlIiwid3JhcCIsIl9jb250ZXh0IiwicHJldiIsInN0b3AiLCJoYW5kbGVDaGFuZ2UiLCJoYW5kbGVCbHVyIiwidXNlRWZmZWN0IiwiaW5qZWN0RmllbGQiLCJjaGlsZCIsIl9hIiwiUmVhY3QiLCJpc1ZhbGlkRWxlbWVudCIsImNoaWxkUHJvcHMiLCJwcm9wcyIsImRpc3BsYXlOYW1lIiwidHlwZSIsImlzRm9ybUNvbXBvbmVudCIsIkZPUk1fQ09NUE9ORU5UX05BTUVTIiwicGxhY2Vob2xkZXIiLCJzYWZlVmFsdWUiLCJURVhUX0xJS0VfQ09NUE9ORU5UX05BTUVTIiwiaW5qZWN0ZWRQcm9wcyIsImFzc2lnbiIsIm9uQ2hhbmdlIiwiX2xlbiIsImFyZ3VtZW50cyIsImFyZ3MiLCJBcnJheSIsIl9rZXkiLCJjb25jYXQiLCJvbkJsdXIiLCJzdGF0dXMiLCJjbG9uZUVsZW1lbnQiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7QUFBQSxJQUFBQSxNQUFBLEdBQUFDLHVCQUFBLENBQUFDLE9BQUE7QUFFQSxJQUFBQyxpQkFBQSxHQUFBQyxzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQUcsU0FBQSxHQUFBSCxPQUFBO0FBQ0EsSUFBQUksVUFBQSxHQUFBSixPQUFBO0FBQ0EsSUFBQUssVUFBQSxHQUFBTCxPQUFBO0FBQThFLFNBQUFNLHlCQUFBQyxDQUFBLDZCQUFBQyxPQUFBLG1CQUFBQyxDQUFBLE9BQUFE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YSxDQUFDO0VBQ2pELENBQUM7RUFFRCxPQUFPO0lBQ0xuQyxVQUFVLEVBQVZBLFVBQVU7SUFDVkksVUFBVSxFQUFWQSxVQUFVO0lBQ1ZDLGVBQWUsRUFBZkEsZUFBZTtJQUNmeEIsY0FBYyxFQUFFeUIsV0FBVztJQUMzQlYsVUFBVSxFQUFWQSxVQUFVO0lBQ1ZKLElBQUksRUFBSkEsSUFBSTtJQUNKQyxVQUFVLEVBQVZBLFVBQVU7SUFDVkMsWUFBWSxFQUFaQSxZQUFZO0lBQ1oyQixXQUFXLEVBQVhBO0VDMUNBLENEMkNEO0FBQ0giLCJmaWxlIjoiY29tcG9uZW50cy9Qcm9Gb3JtL2NvcmUvdXNlRm9ybUl0ZW0uanMiLCJzb3VyY2VzQ29udGVudCI6W251bGwsInZhciBfX2F3YWl0ZXIgPSAodGhpcyAmJiB0aGlzLl9fYXdhaXRlcikgfHwgZnVuY3Rpb24gKHRoaXNBcmcsIF9hcmd1bWVudHMsIFAsIGdlbmVyYXRvcikge1xuICAgIGZ1bmN0aW9uIGFkb3B0KHZhbHVlKSB7IHJldHVybiB2YWx1ZSBpbnN0YW5jZW9mIFAgPyB2YWx1ZSA6IG5ldyBQKGZ1bmN0aW9uIChyZXNvbHZlKSB7IHJlc29sdmUodmFsdWUpOyB9KTsgfVxuICAgIHJldHVybiBuZXcgKFAgfHwgKFAgPSBQcm9taXNlKSkoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkge1xuICAgICAgICBmdW5jdGlvbiBmdWxmaWxsZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3IubmV4dCh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XG4gICAgICAgIGZ1bmN0aW9uIHJlamVjdGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yW1widGhyb3dcIl0odmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxuICAgICAgICBmdW5jdGlvbiBzdGVwKHJlc3VsdCkgeyByZXN1bHQuZG9uZSA/IHJlc29sdmUocmVzdWx0LnZhbHVlKSA6IGFkb3B0KHJlc3VsdC52YWx1ZSkudGhlbihmdWxmaWxsZWQsIHJlamVjdGVkKTsgfVxuICAgICAgICBzdGVwKChnZW5lcmF0b3IgPSBnZW5lcmF0b3IuYXBwbHkodGhpc0FyZywgX2FyZ3VtZW50cyB8fCBbXSkpLm5leHQoKSk7XG4gICAgfSk7XG59O1xuaW1wb3J0IFJlYWN0LCB7IHVzZUVmZmVjdCB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB1c2VFdmVudENhbGxiYWNrIGZyb20gJ0AxbW9uZXkvaG9va3MvdXNlRXZlbnRDYWxsYmFjayc7XG5pbXBvcnQgeyB1c2VQcm9Gb3JtQ29udGV4dCB9IGZyb20gJy4uL2NvbnRleHQnO1xuaW1wb3J0IHsgZ2V0TmVzdGVkVmFsdWUgfSBmcm9tICcuL3BhdGhVdGlscyc7XG5pbXBvcnQgeyBGT1JNX0NPTVBPTkVOVF9OQU1FUywgVEVYVF9MSUtFX0NPTVBPTkVOVF9OQU1FUyB9IGZyb20gJy4vY29uc3RhbnRzJztcbi8qKiBOb3JtYWxpc2UgYSBjaGFuZ2UtaGFuZGxlciBhcmd1bWVudDogdW53cmFwIGBlLnRhcmdldC52YWx1ZWAsIGVsc2UgcGFzcyB0aGUgdmFsdWUgdGhyb3VnaC4gKi9cbmZ1bmN0aW9uIGV4dHJhY3RFdmVudFZhbHVlKGUpIHtcbiAgICByZXR1cm4gZSAmJiB0eXBlb2YgZSA9PT0gJ29iamVjdCcgJiYgJ3RhcmdldCcgaW4gZVxuICAgICAgICA/IGUudGFyZ2V0LnZhbHVlXG4gICAgICAgIDogZTtcbn1cbmV4cG9ydCBmdW5jdGlvbiB1c2VGb3JtSXRlbShvcHRpb25zKSB7XG4gICAgY29uc3QgeyBuYW1lLCBydWxlcyA9IFtdLCByZXF1aXJlZCwgdmFsaWRhdGVTdGF0dXMgfSA9IG9wdGlvbnM7XG4gICAgY29uc3QgY3R4ID0gdXNlUHJvRm9ybUNvbnRleHQoKTtcbiAgICBjb25zdCB7IHZhbHVlcywgZXJyb3JzLCB2YWxpZGF0aW5nLCBzZXRGaWVsZFZhbHVlLCB2YWxpZGF0ZUZpZWxkLCB2YWxpZGF0ZUZpZWxkQXN5bmMsIHJlZ2lzdGVyRmllbGQsIHVucmVnaXN0ZXJGaWVsZCwgc2l6ZSwgbGFiZWxBbGlnbiwgcmVxdWlyZWRNYXJrLCB2YWxpZGF0ZVRyaWdnZXIsIH0gPSBjdHg7XG4gICAgY29uc3QgaXNSZXF1aXJlZCA9IEJvb2xlYW4ocmVxdWlyZWQgfHwgcnVsZXMuc29tZSgocnVsZSkgPT4gcnVsZS5yZXF1aXJlZCkpO1xuICAgIGNvbnN0IGZpZWxkVmFsdWUgPSBuYW1lXG4gICAgICAgID8gKG5hbWUuaW5jbHVkZXMoJy4nKSA/IGdldE5lc3RlZFZhbHVlKHZhbHVlcywgbmFtZSkgOiB2YWx1ZXNbbmFtZV0pXG4gICAgICAgIDogdW5kZWZpbmVkO1xuICAgIGNvbnN0IGZpZWxkRXJyb3IgPSBuYW1lXG4gICAgICAgID8gKG5hbWUuaW5jbHVkZXMoJy4nKVxuICAgICAgICAgICAgPyBnZXROZXN0ZWRWYWx1ZShlcnJvcnMsIG5hbWUpXG4gICAgICAgICAgICA6IGVycm9yc1tuYW1lXSlcbiAgICAgICAgOiB1bmRlZmluZWQ7XG4gICAgY29uc3QgZmllbGRWYWxpZGF0aW5nID0gbmFtZSA/ICh2YWxpZGF0aW5nW25hbWVdIHx8IGZhbHNlKSA6IGZhbHNlO1xuICAgIGNvbnN0IGZpbmFsU3RhdHVzID0gdmFsaWRhdGVTdGF0dXMgfHwgKGZpZWxkRXJyb3IgPyAnZXJyb3InIDogdW5kZWZpbmVkKTtcbiAgICBjb25zdCBydW5WYWxpZGF0ZSA9IHVzZUV2ZW50Q2FsbGJhY2soKHZhbHVlKSA9PiB7XG4gICAgICAgIGlmIChuYW1lICYmIHJ1bGVzLmxlbmd0aCA+IDApXG4gICAgICAgICAgICByZXR1cm4gdmFsaWRhdGVGaWVsZChuYW1lLCBydWxlcywgdmFsdWUpO1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9KTtcbiAgICBjb25zdCBydW5WYWxpZGF0ZUFzeW5jID0gdXNlRXZlbnRDYWxsYmFjaygodmFsdWUpID0+IF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgaWYgKG5hbWUgJiYgcnVsZXMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgeWllbGQgdmFsaWRhdGVGaWVsZEFzeW5jKG5hbWUsIHZhbHVlLCBydWxlcyk7XG4gICAgICAgIH1cbiAgICB9KSk7XG4gICAgY29uc3QgaGFuZGxlQ2hhbmdlID0gdXNlRXZlbnRDYWxsYmFjaygodmFsdWUpID0+IHtcbiAgICAgICAgaWYgKG5hbWUpIHtcbiAgICAgICAgICAgIHNldEZpZWxkVmFsdWUobmFtZSwgdmFsdWUpO1xuICAgICAgICAgICAgaWYgKHZhbGlkYXRlVHJpZ2dlciA9PT0gJ29uQ2hhbmdlJylcbiAgICAgICAgICAgICAgICBydW5WYWxpZGF0ZSh2YWx1ZSk7XG4gICAgICAgIH1cbiAgICB9KTtcbiAgICBjb25zdCBoYW5kbGVCbHVyID0gdXNlRXZlbnRDYWxsYmFjaygoKSA9PiB7XG4gICAgICAgIGlmICh2YWxpZGF0ZVRyaWdnZXIgPT09ICdvbkJsdXInKVxuICAgICAgICAgICAgcnVuVmFsaWRhdGVBc3luYyhmaWVsZFZhbHVlKTtcbiAgICB9KTtcbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICBpZiAobmFtZSAmJiByZWdpc3RlckZpZWxkKVxuICAgICAgICAgICAgcmVnaXN0ZXJGaWVsZChuYW1lLCBydWxlcyk7XG4gICAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgICAgICBpZiAobmFtZSAmJiB1bnJlZ2lzdGVyRmllbGQpXG4gICAgICAgICAgICAgICAgdW5yZWdpc3RlckZpZWxkKG5hbWUpO1xuICAgICAgICB9O1xuICAgIH0sIFtuYW1lXSk7XG4gICAgY29uc3QgaW5qZWN0RmllbGQgPSAoY2hpbGQpID0+IHtcbiAgICAgICAgdmFyIF9hO1xuICAgICAgICBpZiAoIW5hbWUgfHwgIVJlYWN0LmlzVmFsaWRFbGVtZW50KGNoaWxkKSlcbiAgICAgICAgICAgIHJldHVybiBjaGlsZDtcbiAgICAgICAgY29uc3QgY2hpbGRQcm9wcyA9IGNoaWxkLnByb3BzO1xuICAgICAgICBjb25zdCBkaXNwbGF5TmFtZSA9IChfYSA9IGNoaWxkLnR5cGUpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5kaXNwbGF5TmFtZTtcbiAgICAgICAgY29uc3QgaXNGb3JtQ29tcG9uZW50ID0gRk9STV9DT01QT05FTlRfTkFNRVMuaW5jbHVkZXMoZGlzcGxheU5hbWUpIHx8XG4gICAgICAgICAgICBjaGlsZFByb3BzLnBsYWNlaG9sZGVyICE9PSB1bmRlZmluZWQgfHxcbiAgICAgICAgICAgIGNoaWxkUHJvcHMudmFsdWUgIT09IHVuZGVmaW5lZDtcbiAgICAgICAgaWYgKCFpc0Zvcm1Db21wb25lbnQpXG4gICAgICAgICAgICByZXR1cm4gY2hpbGQ7XG4gICAgICAgIGxldCBzYWZlVmFsdWUgPSBmaWVsZFZhbHVlO1xuICAgICAgICBpZiAoc2FmZVZhbHVlID09PSBudWxsIHx8IHNhZmVWYWx1ZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBpZiAoVEVYVF9MSUtFX0NPTVBPTkVOVF9OQU1FUy5pbmNsdWRlcyhkaXNwbGF5TmFtZSB8fCAnJykgfHxcbiAgICAgICAgICAgICAgICBjaGlsZFByb3BzLnBsYWNlaG9sZGVyICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICBzYWZlVmFsdWUgPSAnJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2UgaWYgKFsnQ2hlY2tib3gnLCAnU3dpdGNoJ10uaW5jbHVkZXMoZGlzcGxheU5hbWUgfHwgJycpKSB7XG4gICAgICAgICAgICAgICAgc2FmZVZhbHVlID0gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAoVEVYVF9MSUtFX0NPTVBPTkVOVF9OQU1FUy5pbmNsdWRlcyhkaXNwbGF5TmFtZSB8fCAnJykgJiZcbiAgICAgICAgICAgIHR5cGVvZiBzYWZlVmFsdWUgIT09ICdzdHJpbmcnICYmXG4gICAgICAgICAgICB0eXBlb2Ygc2FmZVZhbHVlICE9PSAnbnVtYmVyJykge1xuICAgICAgICAgICAgc2FmZVZhbHVlID0gJyc7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgaW5qZWN0ZWRQcm9wcyA9IE9iamVjdC5hc3NpZ24oeyB2YWx1ZTogc2FmZVZhbHVlLCBvbkNoYW5nZTogKGUsIC4uLmFyZ3MpID0+IHtcbiAgICAgICAgICAgICAgICBoYW5kbGVDaGFuZ2UoZXh0cmFjdEV2ZW50VmFsdWUoZSkpO1xuICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgY2hpbGRQcm9wcy5vbkNoYW5nZSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgICAgICAgICBjaGlsZFByb3BzLm9uQ2hhbmdlKGUsIC4uLmFyZ3MpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sIG9uQmx1cjogKC4uLmFyZ3MpID0+IHtcbiAgICAgICAgICAgICAgICBoYW5kbGVCbHVyKCk7XG4gICAgICAgICAgICAgICAgaWYgKHR5cGVvZiBjaGlsZFByb3BzLm9uQmx1ciA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgICAgICAgICBjaGlsZFByb3BzLm9uQmx1ciguLi5hcmdzKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LCBzaXplOiBjaGlsZFByb3BzLnNpemUgfHwgc2l6ZSB9LCAoZmluYWxTdGF0dXMgPT09ICdlcnJvcicgJiYgeyBzdGF0dXM6ICdlcnJvcicgfSkpO1xuICAgICAgICByZXR1cm4gUmVhY3QuY2xvbmVFbGVtZW50KGNoaWxkLCBpbmplY3RlZFByb3BzKTtcbiAgICB9O1xuICAgIHJldHVybiB7XG4gICAgICAgIGZpZWxkVmFsdWUsXG4gICAgICAgIGZpZWxkRXJyb3IsXG4gICAgICAgIGZpZWxkVmFsaWRhdGluZyxcbiAgICAgICAgdmFsaWRhdGVTdGF0dXM6IGZpbmFsU3RhdHVzLFxuICAgICAgICBpc1JlcXVpcmVkLFxuICAgICAgICBzaXplLFxuICAgICAgICBsYWJlbEFsaWduLFxuICAgICAgICByZXF1aXJlZE1hcmssXG4gICAgICAgIGluamVjdEZpZWxkLFxuICAgIH07XG59Il0sInNvdXJjZVJvb3QiOiIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMifQ==
250
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvUHJvRm9ybS9zcmMvY29tcG9uZW50cy9Qcm9Gb3JtL2NvcmUvdXNlRm9ybUl0ZW0udHMiLCJjb21wb25lbnRzL1Byb0Zvcm0vY29yZS91c2VGb3JtSXRlbS5qcyJdLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfdXNlRXZlbnRDYWxsYmFjayIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfdXNlRGVib3VuY2VkQ2FsbGJhY2syIiwiX2NvbnRleHQyIiwiX2Zvcm1TdG9yZSIsIl9wYXRoVXRpbHMiLCJfcnVuUnVsZXMiLCJfY29uc3RhbnRzIiwiX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlIiwiZSIsIldlYWtNYXAiLCJyIiwidCIsIl9fZXNNb2R1bGUiLCJfdHlwZW9mMyIsImhhcyIsImdldCIsIm4iLCJfX3Byb3RvX18iLCJhIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJ1IiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiaSIsInNldCIsIl9fYXdhaXRlciIsInRoaXNBcmciLCJfYXJndW1lbnRzIiwiUCIsImdlbmVyYXRvciIsImFkb3B0IiwidmFsdWUiLCJyZXNvbHZlIiwiUHJvbWlzZSIsInJlamVjdCIsImZ1bGZpbGxlZCIsInN0ZXAiLCJuZXh0IiwicmVqZWN0ZWQiLCJyZXN1bHQiLCJkb25lIiwidGhlbiIsImFwcGx5IiwiZXh0cmFjdEV2ZW50VmFsdWUiLCJ2YWx1ZVByb3BOYW1lIiwiYXJndW1lbnRzIiwibGVuZ3RoIiwidW5kZWZpbmVkIiwiX3R5cGVvZjIiLCJldmVudCIsInRhcmdldCIsInVzZUZvcm1JdGVtIiwib3B0aW9ucyIsIl90aGlzIiwibmFtZSIsIl9vcHRpb25zJHJ1bGVzIiwicnVsZXMiLCJyZXF1aXJlZCIsInZhbGlkYXRlU3RhdHVzIiwiX29wdGlvbnMkdmFsdWVQcm9wTmFtIiwidmFsaWRhdGVEZWJvdW5jZSIsIl91c2VQcm9Gb3JtU3RhYmxlIiwidXNlUHJvRm9ybVN0YWJsZSIsInNldEZpZWxkVmFsdWUiLCJ2YWxpZGF0ZUZpZWxkIiwidmFsaWRhdGVGaWVsZEFzeW5jIiwicmVnaXN0ZXJGaWVsZCIsInVucmVnaXN0ZXJGaWVsZCIsInNpemUiLCJsYWJlbEFsaWduIiwicmVxdWlyZWRNYXJrIiwidmFsaWRhdGVUcmlnZ2VyIiwiZm9ybURpc2FibGVkIiwiZGlzYWJsZWQiLCJzdG9yZSIsInVzZVByb0Zvcm1TdG9yZSIsImlzUmVxdWlyZWQiLCJCb29sZWFuIiwic29tZSIsInJ1bGUiLCJfdXNlU3RvcmVTZWxlY3RvciIsInVzZVN0b3JlU2VsZWN0b3IiLCJzdGF0ZSIsImluY2x1ZGVzIiwiZ2V0TmVzdGVkVmFsdWUiLCJ2YWx1ZXMiLCJlcnJvcnMiLCJ3YXJuaW5ncyIsInZhbGlkYXRpbmciLCJzaGFsbG93RXF1YWxBcnJheXMiLCJfdXNlU3RvcmVTZWxlY3RvcjIiLCJfc2xpY2VkVG9BcnJheTIiLCJmaWVsZFZhbHVlIiwiZmllbGRFcnJvciIsImZpZWxkV2FybmluZyIsImZpZWxkVmFsaWRhdGluZyIsImZpbmFsU3RhdHVzIiwicnVuVmFsaWRhdGUiLCJ1c2VFdmVudENhbGxiYWNrIiwidHJpZ2dlciIsImFwcGxpY2FibGUiLCJmaWx0ZXJSdWxlc0J5VHJpZ2dlciIsInJ1blZhbGlkYXRlQXN5bmMiLCJfcmVnZW5lcmF0b3IiLCJtYXJrIiwiX2NhbGxlZSIsIndyYXAiLCJfY29udGV4dCIsInByZXYiLCJhYnJ1cHQiLCJzdG9wIiwiX3VzZURlYm91bmNlZENhbGxiYWNrIiwidXNlRGVib3VuY2VkQ2FsbGJhY2siLCJkZWJvdW5jZWRWYWxpZGF0ZSIsInJ1biIsImhhbmRsZUNoYW5nZSIsInRvdWNoZWQiLCJnZXRTdGF0ZSIsInNldFN0YXRlIiwiYXNzaWduIiwiX2RlZmluZVByb3BlcnR5MiIsImhhbmRsZUJsdXIiLCJjdXJyZW50VmFsdWUiLCJjaGlsZENhbGxiYWNrc1JlZiIsInVzZVJlZiIsImluamVjdGVkT25DaGFuZ2UiLCJfYjIiLCJfYSIsIl9iIiwiX2xlbiIsImFyZ3MiLCJBcnJheSIsIl9rZXkiLCJjdXJyZW50Iiwib25DaGFuZ2UiLCJjb25jYXQiLCJpbmplY3RlZE9uQmx1ciIsIl9iMyIsIl9sZW4yIiwiX2tleTIiLCJvbkJsdXIiLCJ1c2VFZmZlY3QiLCJpbmplY3RGaWVsZCIsImNoaWxkIiwiUmVhY3QiLCJpc1ZhbGlkRWxlbWVudCIsImNoaWxkUHJvcHMiLCJwcm9wcyIsImRpc3BsYXlOYW1lIiwidHlwZSIsImlzRm9ybUNvbXBvbmVudCIsIkZPUk1fQ09NUE9ORU5UX05BTUVTIiwicGxhY2Vob2xkZXIiLCJzYWZlVmFsdWUiLCJURVhUX0xJS0VfQ09NUE9ORU5UX05BTUVTIiwiaW5qZWN0ZWRQcm9wcyIsInN0YXR1cyIsIlNJWkVfQVdBUkVfQ09NUE9ORU5UX05BTUVTIiwiY2xvbmVFbGVtZW50Il0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFBQSxJQUFBQSxNQUFBLEdBQUFDLHVCQUFBLENBQUFDLE9BQUE7QUFFQSxJQUFBQyxpQkFBQSxHQUFBQyxzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQUcsc0JBQUEsR0FBQUQsc0JBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFJLFNBQUEsR0FBQUosT0FBQTtBQUNBLElBQUFLLFVBQUEsR0FBQUwsT0FBQTtBQUNBLElBQUFNLFVBQUEsR0FBQU4sT0FBQTtBQUNBLElBQUFPLFNBQUEsR0FBQVAsT0FBQTtBQUNBLElBQUFRLFVBQUEsR0FBQVIsT0FBQTtBQUlxQixTQUFBUyx5QkFBQUMsQ0FBQSw2QkFBQUMsT0FBQSxtQkFBQUMsQ0FBQSxPQUFBRCxPQUFBLElBQUFFLENBQUEsT0FBQUYsT0FBQSxZQUFBRix3QkFBQSxZQUFBQSx5QkFBQUMsQ0FBQSxXQUFBQSxDQUFBLEdBQUFHLENBQUEsR0FBQUQsQ0FBQSxLQUFBRixDQUFBO0FBQUEsU0FBQVgsd0JBQUFXLENBQUEsRUFBQUUsQ0FBQSxTQUFBQSxDQUFBLElBQUFGLENBQUEs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TyxJQUFJO01BQUU0RCxNQUFNLEVBQUU7SUFBTyxDQUFHLENBQUEsRUFHL0NwRixZQUFZLElBQUkwRSxVQUFVLENBQUN6RSxRQUFRLEtBQUsxQixTQUFTLElBQUk7TUFBRTBCLFFBQVEsRUFBRTtJQUFJLENBQUcsQ0FBQSxFQUd4RW9GLHFDQUEwQixDQUFDMUUsUUFBUSxDQUFDaUUsV0FBVyxJQUFJLEVBQUUsQ0FBQyxJQUN4REYsVUFBVSxDQUFDOUUsSUFBSSxLQUFLckIsU0FBUyxJQUFJO01BQUVxQixJQUFJLEVBQUpBO0lBQUksQ0FBRyxDQUM3QztJQUVELG9CQUFPNEUsaUJBQUssQ0FBQ2MsWUFBWSxDQUFDZixLQUFLLEVBQUVZLGFBQWEsQ0FBQztFQUNqRCxDQUFDO0VBRUQsT0FBTztJQUNML0QsVUFBVSxFQUFWQSxVQUFVO0lBQ1ZDLFVBQVUsRUFBVkEsVUFBVTtJQUNWQyxZQUFZLEVBQVpBLFlBQVk7SUFDWkMsZUFBZSxFQUFmQSxlQUFlO0lBQ2ZyQyxjQUFjLEVBQUVzQyxXQUFXO0lBQzNCcEIsVUFBVSxFQUFWQSxVQUFVO0lBQ1ZSLElBQUksRUFBSkEsSUFBSTtJQUNKQyxVQUFVLEVBQVZBLFVBQVU7SUFDVkMsWUFBWSxFQUFaQSxZQUFZO0lBQ1p3RSxXQUFXLEVBQVhBO0VDM0VBLENENEVEO0FBQ0giLCJmaWxlIjoiY29tcG9uZW50cy9Qcm9Gb3JtL2NvcmUvdXNlRm9ybUl0ZW0uanMiLCJzb3VyY2VzQ29udGVudCI6W251bGwsInZhciBfX2F3YWl0ZXIgPSAodGhpcyAmJiB0aGlzLl9fYXdhaXRlcikgfHwgZnVuY3Rpb24gKHRoaXNBcmcsIF9hcmd1bWVudHMsIFAsIGdlbmVyYXRvcikge1xuICAgIGZ1bmN0aW9uIGFkb3B0KHZhbHVlKSB7IHJldHVybiB2YWx1ZSBpbnN0YW5jZW9mIFAgPyB2YWx1ZSA6IG5ldyBQKGZ1bmN0aW9uIChyZXNvbHZlKSB7IHJlc29sdmUodmFsdWUpOyB9KTsgfVxuICAgIHJldHVybiBuZXcgKFAgfHwgKFAgPSBQcm9taXNlKSkoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkge1xuICAgICAgICBmdW5jdGlvbiBmdWxmaWxsZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3IubmV4dCh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XG4gICAgICAgIGZ1bmN0aW9uIHJlamVjdGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yW1widGhyb3dcIl0odmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxuICAgICAgICBmdW5jdGlvbiBzdGVwKHJlc3VsdCkgeyByZXN1bHQuZG9uZSA/IHJlc29sdmUocmVzdWx0LnZhbHVlKSA6IGFkb3B0KHJlc3VsdC52YWx1ZSkudGhlbihmdWxmaWxsZWQsIHJlamVjdGVkKTsgfVxuICAgICAgICBzdGVwKChnZW5lcmF0b3IgPSBnZW5lcmF0b3IuYXBwbHkodGhpc0FyZywgX2FyZ3VtZW50cyB8fCBbXSkpLm5leHQoKSk7XG4gICAgfSk7XG59O1xuaW1wb3J0IFJlYWN0LCB7IHVzZUVmZmVjdCwgdXNlUmVmIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHVzZUV2ZW50Q2FsbGJhY2sgZnJvbSAnQDFtb25leS9ob29rcy91c2VFdmVudENhbGxiYWNrJztcbmltcG9ydCB1c2VEZWJvdW5jZWRDYWxsYmFjayBmcm9tICdAMW1vbmV5L2hvb2tzL3VzZURlYm91bmNlZENhbGxiYWNrJztcbmltcG9ydCB7IHVzZVByb0Zvcm1TdGFibGUsIHVzZVByb0Zvcm1TdG9yZSB9IGZyb20gJy4uL2NvbnRleHQnO1xuaW1wb3J0IHsgdXNlU3RvcmVTZWxlY3Rvciwgc2hhbGxvd0VxdWFsQXJyYXlzIH0gZnJvbSAnLi9mb3JtU3RvcmUnO1xuaW1wb3J0IHsgZ2V0TmVzdGVkVmFsdWUgfSBmcm9tICcuL3BhdGhVdGlscyc7XG5pbXBvcnQgeyBmaWx0ZXJSdWxlc0J5VHJpZ2dlciB9IGZyb20gJy4vcnVuUnVsZXMnO1xuaW1wb3J0IHsgRk9STV9DT01QT05FTlRfTkFNRVMsIFNJWkVfQVdBUkVfQ09NUE9ORU5UX05BTUVTLCBURVhUX0xJS0VfQ09NUE9ORU5UX05BTUVTLCB9IGZyb20gJy4vY29uc3RhbnRzJztcbi8qKlxuICogTm9ybWFsaXNlIGEgY2hhbmdlLWhhbmRsZXIgYXJndW1lbnQ6IHVud3JhcCBgZS50YXJnZXRbdmFsdWVQcm9wTmFtZV1gIC9cbiAqIGBlW3ZhbHVlUHJvcE5hbWVdYCAoZS5nLiBDaGVja2JveCBlbWl0cyBgeyBjaGVja2VkIH1gKSwgZWxzZSBgZS50YXJnZXQudmFsdWVgLFxuICogZWxzZSBwYXNzIHRoZSB2YWx1ZSB0aHJvdWdoIChlLmcuIFN3aXRjaCBlbWl0cyB0aGUgYm9vbGVhbiBkaXJlY3RseSkuXG4gKi9cbmZ1bmN0aW9uIGV4dHJhY3RFdmVudFZhbHVlKGUsIHZhbHVlUHJvcE5hbWUgPSAndmFsdWUnKSB7XG4gICAgaWYgKGUgPT09IG51bGwgfHwgdHlwZW9mIGUgIT09ICdvYmplY3QnKVxuICAgICAgICByZXR1cm4gZTtcbiAgICBjb25zdCBldmVudCA9IGU7XG4gICAgaWYgKHZhbHVlUHJvcE5hbWUgIT09ICd2YWx1ZScgJiYgdmFsdWVQcm9wTmFtZSBpbiBldmVudCkge1xuICAgICAgICByZXR1cm4gZXZlbnRbdmFsdWVQcm9wTmFtZV07XG4gICAgfVxuICAgIGlmICgndGFyZ2V0JyBpbiBldmVudCAmJiBldmVudC50YXJnZXQgJiYgdHlwZW9mIGV2ZW50LnRhcmdldCA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgY29uc3QgdGFyZ2V0ID0gZXZlbnQudGFyZ2V0O1xuICAgICAgICBpZiAodmFsdWVQcm9wTmFtZSBpbiB0YXJnZXQpXG4gICAgICAgICAgICByZXR1cm4gdGFyZ2V0W3ZhbHVlUHJvcE5hbWVdO1xuICAgICAgICBpZiAoJ3ZhbHVlJyBpbiB0YXJnZXQpXG4gICAgICAgICAgICByZXR1cm4gdGFyZ2V0LnZhbHVlO1xuICAgIH1cbiAgICByZXR1cm4gZTtcbn1cbmV4cG9ydCBmdW5jdGlvbiB1c2VGb3JtSXRlbShvcHRpb25zKSB7XG4gICAgY29uc3QgeyBuYW1lLCBydWxlcyA9IFtdLCByZXF1aXJlZCwgdmFsaWRhdGVTdGF0dXMsIHZhbHVlUHJvcE5hbWUgPSAndmFsdWUnLCB2YWxpZGF0ZURlYm91bmNlLCB9ID0gb3B0aW9ucztcbiAgICBjb25zdCB7IHNldEZpZWxkVmFsdWUsIHZhbGlkYXRlRmllbGQsIHZhbGlkYXRlRmllbGRBc3luYywgcmVnaXN0ZXJGaWVsZCwgdW5yZWdpc3RlckZpZWxkLCBzaXplLCBsYWJlbEFsaWduLCByZXF1aXJlZE1hcmssIHZhbGlkYXRlVHJpZ2dlciwgZGlzYWJsZWQ6IGZvcm1EaXNhYmxlZCwgfSA9IHVzZVByb0Zvcm1TdGFibGUoKTtcbiAgICBjb25zdCBzdG9yZSA9IHVzZVByb0Zvcm1TdG9yZSgpO1xuICAgIGNvbnN0IGlzUmVxdWlyZWQgPSBCb29sZWFuKHJlcXVpcmVkIHx8IHJ1bGVzLnNvbWUoKHJ1bGUpID0+IHJ1bGUucmVxdWlyZWQpKTtcbiAgICAvLyBQZXItZmllbGQgc3RvcmUgc3Vic2NyaXB0aW9uOiB0aGlzIGl0ZW0gcmUtcmVuZGVycyBPTkxZIHdoZW4gaXRzIG93blxuICAgIC8vIHZhbHVlL2Vycm9yL3dhcm5pbmcvdmFsaWRhdGluZyBzbGljZSBjaGFuZ2VzIOKAlCB0eXBpbmcgaW4gYSBzaWJsaW5nIGZpZWxkXG4gICAgLy8gcHJvZHVjZXMgYW4gZXF1YWwgdHVwbGUgYW5kIHRoZSBzZWxlY3RvciBzaG9ydC1jaXJjdWl0cy5cbiAgICAvLyBFcnJvcnMvd2FybmluZ3MgYXJlIHN0b3JlZCBGTEFULCBrZXllZCBieSB0aGUgZnVsbCAocG9zc2libHkgZG90dGVkKSBmaWVsZFxuICAgIC8vIG5hbWUg4oCUIG5ldmVyIHJlc29sdmUgdGhlbSBhcyBuZXN0ZWQgcGF0aHMgb3IgZG90dGVkIG5hbWVzIHdvdWxkIG1pc3MuXG4gICAgY29uc3QgW2ZpZWxkVmFsdWUsIGZpZWxkRXJyb3IsIGZpZWxkV2FybmluZywgZmllbGRWYWxpZGF0aW5nXSA9IHVzZVN0b3JlU2VsZWN0b3Ioc3RvcmUsIChzdGF0ZSkgPT4gW1xuICAgICAgICBuYW1lXG4gICAgICAgICAgICA/IChuYW1lLmluY2x1ZGVzKCcuJykgPyBnZXROZXN0ZWRWYWx1ZShzdGF0ZS52YWx1ZXMsIG5hbWUpIDogc3RhdGUudmFsdWVzW25hbWVdKVxuICAgICAgICAgICAgOiB1bmRlZmluZWQsXG4gICAgICAgIG5hbWUgPyBzdGF0ZS5lcnJvcnNbbmFtZV0gOiB1bmRlZmluZWQsXG4gICAgICAgIG5hbWUgPyBzdGF0ZS53YXJuaW5nc1tuYW1lXSA6IHVuZGVmaW5lZCxcbiAgICAgICAgbmFtZSA/IChzdGF0ZS52YWxpZGF0aW5nW25hbWVdIHx8IGZhbHNlKSA6IGZhbHNlLFxuICAgIF0sIHNoYWxsb3dFcXVhbEFycmF5cyk7XG4gICAgY29uc3QgZmluYWxTdGF0dXMgPSB2YWxpZGF0ZVN0YXR1cyB8fCAoZmllbGRFcnJvciA/ICdlcnJvcicgOiBmaWVsZFdhcm5pbmcgPyAnd2FybmluZycgOiB1bmRlZmluZWQpO1xuICAgIC8vIFJ1biBvbmx5IHRoZSBydWxlcyBhcHBsaWNhYmxlIHRvIHRoZSBnaXZlbiBpbnRlcmFjdGl2ZSB0cmlnZ2VyOyBydWxlc1xuICAgIC8vIHdpdGhvdXQgYW4gZXhwbGljaXQgdmFsaWRhdGVUcmlnZ2VyIGZvbGxvdyB0aGUgZm9ybS1sZXZlbCBzZXR0aW5nLlxuICAgIGNvbnN0IHJ1blZhbGlkYXRlID0gdXNlRXZlbnRDYWxsYmFjaygodmFsdWUsIHRyaWdnZXIpID0+IHtcbiAgICAgICAgaWYgKCFuYW1lIHx8IHJ1bGVzLmxlbmd0aCA9PT0gMClcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICBjb25zdCBhcHBsaWNhYmxlID0gZmlsdGVyUnVsZXNCeVRyaWdnZXIocnVsZXMsIHRyaWdnZXIsIHZhbGlkYXRlVHJpZ2dlcik7XG4gICAgICAgIGlmIChhcHBsaWNhYmxlLmxlbmd0aCA9PT0gMClcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICByZXR1cm4gdmFsaWRhdGVGaWVsZChuYW1lLCBhcHBsaWNhYmxlLCB2YWx1ZSk7XG4gICAgfSk7XG4gICAgY29uc3QgcnVuVmFsaWRhdGVBc3luYyA9IHVzZUV2ZW50Q2FsbGJhY2soKHZhbHVlLCB0cmlnZ2VyKSA9PiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgIGlmICghbmFtZSB8fCBydWxlcy5sZW5ndGggPT09IDApXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIGNvbnN0IGFwcGxpY2FibGUgPSBmaWx0ZXJSdWxlc0J5VHJpZ2dlcihydWxlcywgdHJpZ2dlciwgdmFsaWRhdGVUcmlnZ2VyKTtcbiAgICAgICAgaWYgKGFwcGxpY2FibGUubGVuZ3RoID09PSAwKVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB5aWVsZCB2YWxpZGF0ZUZpZWxkQXN5bmMobmFtZSwgdmFsdWUsIGFwcGxpY2FibGUpO1xuICAgIH0pKTtcbiAgICBjb25zdCB7IHJ1bjogZGVib3VuY2VkVmFsaWRhdGUgfSA9IHVzZURlYm91bmNlZENhbGxiYWNrKCh2YWx1ZSkgPT4ge1xuICAgICAgICBydW5WYWxpZGF0ZSh2YWx1ZSwgJ29uQ2hhbmdlJyk7XG4gICAgfSwgdmFsaWRhdGVEZWJvdW5jZSk7XG4gICAgY29uc3QgaGFuZGxlQ2hhbmdlID0gdXNlRXZlbnRDYWxsYmFjaygodmFsdWUpID0+IHtcbiAgICAgICAgaWYgKG5hbWUpIHtcbiAgICAgICAgICAgIHNldEZpZWxkVmFsdWUobmFtZSwgdmFsdWUpO1xuICAgICAgICAgICAgLy8gdG91Y2hlZCBpcyBzZXQgYnkgdGhlIHVzZXIgY2hhbmdlIHRyaWdnZXIg4oCUXG4gICAgICAgICAgICAvLyBwcm9ncmFtbWF0aWMgc2V0RmllbGRzVmFsdWUgZG9lcyBub3QgbWFyayBmaWVsZHMgdG91Y2hlZC5cbiAgICAgICAgICAgIGNvbnN0IHRvdWNoZWQgPSBzdG9yZS5nZXRTdGF0ZSgpLnRvdWNoZWQ7XG4gICAgICAgICAgICBpZiAoIXRvdWNoZWRbbmFtZV0pIHtcbiAgICAgICAgICAgICAgICBzdG9yZS5zZXRTdGF0ZSh7IHRvdWNoZWQ6IE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgdG91Y2hlZCksIHsgW25hbWVdOiB0cnVlIH0pIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHZhbGlkYXRlRGVib3VuY2UgJiYgdmFsaWRhdGVEZWJvdW5jZSA+IDApIHtcbiAgICAgICAgICAgICAgICBkZWJvdW5jZWRWYWxpZGF0ZSh2YWx1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICBydW5WYWxpZGF0ZSh2YWx1ZSwgJ29uQ2hhbmdlJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9KTtcbiAgICBjb25zdCBoYW5kbGVCbHVyID0gdXNlRXZlbnRDYWxsYmFjaygoKSA9PiB7XG4gICAgICAgIC8vIFJlYWQgdGhlIExJVkUgdmFsdWUgZnJvbSB0aGUgc3RvcmUg4oCUIGEgY2hhbmdlIGNvbW1pdHRlZCBpbiB0aGUgc2FtZVxuICAgICAgICAvLyB0aWNrIChjaGFuZ2Ug4oaSIGltbWVkaWF0ZSBibHVyKSBtdXN0IGJlIHZhbGlkYXRlZCwgbm90IHRoZSByZW5kZXItdGltZVxuICAgICAgICAvLyBzbmFwc2hvdC5cbiAgICAgICAgY29uc3QgY3VycmVudFZhbHVlID0gbmFtZVxuICAgICAgICAgICAgPyAobmFtZS5pbmNsdWRlcygnLicpXG4gICAgICAgICAgICAgICAgPyBnZXROZXN0ZWRWYWx1ZShzdG9yZS5nZXRTdGF0ZSgpLnZhbHVlcywgbmFtZSlcbiAgICAgICAgICAgICAgICA6IHN0b3JlLmdldFN0YXRlKCkudmFsdWVzW25hbWVdKVxuICAgICAgICAgICAgOiB1bmRlZmluZWQ7XG4gICAgICAgIHJ1blZhbGlkYXRlQXN5bmMoY3VycmVudFZhbHVlLCAnb25CbHVyJyk7XG4gICAgfSk7XG4gICAgLy8gTGF0ZXN0IGNoaWxkLXByb3ZpZGVkIGNhbGxiYWNrcywgY2FwdHVyZWQgYXQgaW5qZWN0RmllbGQgdGltZS4gVGhlIFNUQUJMRVxuICAgIC8vIGluamVjdGVkIGhhbmRsZXJzIGJlbG93IGRlbGVnYXRlIHRocm91Z2ggdGhpcyByZWYgaW5zdGVhZCBvZiBiZWluZ1xuICAgIC8vIHJlY3JlYXRlZCBwZXIgcmVuZGVyIOKAlCBzbyBhIG1lbW9pemVkIGZpZWxkIGNvbXBvbmVudCBzZWVzIHNoYWxsb3ctZXF1YWxcbiAgICAvLyBwcm9wcyBhY3Jvc3MgcmVuZGVycyBhbmQgY2FuIGJhaWwgb3V0IHdoaWxlIGFub3RoZXIgZmllbGQgaXMgdHlwaW5nLlxuICAgIGNvbnN0IGNoaWxkQ2FsbGJhY2tzUmVmID0gdXNlUmVmKHt9KTtcbiAgICBjb25zdCBpbmplY3RlZE9uQ2hhbmdlID0gdXNlRXZlbnRDYWxsYmFjaygoZSwgLi4uYXJncykgPT4ge1xuICAgICAgICB2YXIgX2EsIF9iO1xuICAgICAgICBoYW5kbGVDaGFuZ2UoZXh0cmFjdEV2ZW50VmFsdWUoZSwgdmFsdWVQcm9wTmFtZSkpO1xuICAgICAgICAoX2IgPSAoX2EgPSBjaGlsZENhbGxiYWNrc1JlZi5jdXJyZW50KS5vbkNoYW5nZSkgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iLmNhbGwoX2EsIGUsIC4uLmFyZ3MpO1xuICAgIH0pO1xuICAgIGNvbnN0IGluamVjdGVkT25CbHVyID0gdXNlRXZlbnRDYWxsYmFjaygoLi4uYXJncykgPT4ge1xuICAgICAgICB2YXIgX2EsIF9iO1xuICAgICAgICBoYW5kbGVCbHVyKCk7XG4gICAgICAgIChfYiA9IChfYSA9IGNoaWxkQ2FsbGJhY2tzUmVmLmN1cnJlbnQpLm9uQmx1cikgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iLmNhbGwoX2EsIC4uLmFyZ3MpO1xuICAgIH0pO1xuICAgIC8vIEtlZXAgdGhlIHJlZ2lzdHJ5IGluIHN5bmMgd2l0aCB0aGUgTEFURVNUIHJ1bGVzIGV2ZXJ5IHJlbmRlciAocmVnaXN0cmF0aW9uXG4gICAgLy8gaXMgYSBjaGVhcCByZWYgbXV0YXRpb24pOiBkeW5hbWljIHJ1bGVzIChlLmcuIHJlcXVpcmVkIHRvZ2dsZWQgYnkgYW5vdGhlclxuICAgIC8vIGZpZWxkKSBtdXN0IGJlIHZpc2libGUgdG8gc3VibWl0LXRpbWUgdmFsaWRhdGlvbiwgbm90IGp1c3Qgb25DaGFuZ2UuXG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgaWYgKG5hbWUgJiYgcmVnaXN0ZXJGaWVsZClcbiAgICAgICAgICAgIHJlZ2lzdGVyRmllbGQobmFtZSwgcnVsZXMpO1xuICAgIH0pO1xuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgICAgICBpZiAobmFtZSAmJiB1bnJlZ2lzdGVyRmllbGQpXG4gICAgICAgICAgICAgICAgdW5yZWdpc3RlckZpZWxkKG5hbWUpO1xuICAgICAgICB9O1xuICAgIH0sIFtuYW1lXSk7XG4gICAgY29uc3QgaW5qZWN0RmllbGQgPSAoY2hpbGQpID0+IHtcbiAgICAgICAgdmFyIF9hO1xuICAgICAgICBpZiAoIW5hbWUgfHwgIVJlYWN0LmlzVmFsaWRFbGVtZW50KGNoaWxkKSlcbiAgICAgICAgICAgIHJldHVybiBjaGlsZDtcbiAgICAgICAgY29uc3QgY2hpbGRQcm9wcyA9IGNoaWxkLnByb3BzO1xuICAgICAgICBjb25zdCBkaXNwbGF5TmFtZSA9IChfYSA9IGNoaWxkLnR5cGUpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5kaXNwbGF5TmFtZTtcbiAgICAgICAgY29uc3QgaXNGb3JtQ29tcG9uZW50ID0gRk9STV9DT01QT05FTlRfTkFNRVMuaW5jbHVkZXMoZGlzcGxheU5hbWUpIHx8XG4gICAgICAgICAgICBjaGlsZFByb3BzLnBsYWNlaG9sZGVyICE9PSB1bmRlZmluZWQgfHxcbiAgICAgICAgICAgIGNoaWxkUHJvcHMudmFsdWUgIT09IHVuZGVmaW5lZCB8fFxuICAgICAgICAgICAgY2hpbGRQcm9wc1t2YWx1ZVByb3BOYW1lXSAhPT0gdW5kZWZpbmVkO1xuICAgICAgICBpZiAoIWlzRm9ybUNvbXBvbmVudClcbiAgICAgICAgICAgIHJldHVybiBjaGlsZDtcbiAgICAgICAgbGV0IHNhZmVWYWx1ZSA9IGZpZWxkVmFsdWU7XG4gICAgICAgIGlmIChzYWZlVmFsdWUgPT09IG51bGwgfHwgc2FmZVZhbHVlID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIGlmICh2YWx1ZVByb3BOYW1lID09PSAnY2hlY2tlZCcgfHwgWydDaGVja2JveCcsICdTd2l0Y2gnXS5pbmNsdWRlcyhkaXNwbGF5TmFtZSB8fCAnJykpIHtcbiAgICAgICAgICAgICAgICBzYWZlVmFsdWUgPSBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2UgaWYgKFRFWFRfTElLRV9DT01QT05FTlRfTkFNRVMuaW5jbHVkZXMoZGlzcGxheU5hbWUgfHwgJycpIHx8XG4gICAgICAgICAgICAgICAgY2hpbGRQcm9wcy5wbGFjZWhvbGRlciAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgc2FmZVZhbHVlID0gJyc7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAoVEVYVF9MSUtFX0NPTVBPTkVOVF9OQU1FUy5pbmNsdWRlcyhkaXNwbGF5TmFtZSB8fCAnJykgJiZcbiAgICAgICAgICAgIHR5cGVvZiBzYWZlVmFsdWUgIT09ICdzdHJpbmcnICYmXG4gICAgICAgICAgICB0eXBlb2Ygc2FmZVZhbHVlICE9PSAnbnVtYmVyJykge1xuICAgICAgICAgICAgc2FmZVZhbHVlID0gJyc7XG4gICAgICAgIH1cbiAgICAgICAgY2hpbGRDYWxsYmFja3NSZWYuY3VycmVudCA9IHtcbiAgICAgICAgICAgIG9uQ2hhbmdlOiB0eXBlb2YgY2hpbGRQcm9wcy5vbkNoYW5nZSA9PT0gJ2Z1bmN0aW9uJ1xuICAgICAgICAgICAgICAgID8gY2hpbGRQcm9wcy5vbkNoYW5nZVxuICAgICAgICAgICAgICAgIDogdW5kZWZpbmVkLFxuICAgICAgICAgICAgb25CbHVyOiB0eXBlb2YgY2hpbGRQcm9wcy5vbkJsdXIgPT09ICdmdW5jdGlvbidcbiAgICAgICAgICAgICAgICA/IGNoaWxkUHJvcHMub25CbHVyXG4gICAgICAgICAgICAgICAgOiB1bmRlZmluZWQsXG4gICAgICAgIH07XG4gICAgICAgIGNvbnN0IGluamVjdGVkUHJvcHMgPSBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7IFt2YWx1ZVByb3BOYW1lXTogc2FmZVZhbHVlLCBvbkNoYW5nZTogaW5qZWN0ZWRPbkNoYW5nZSwgb25CbHVyOiBpbmplY3RlZE9uQmx1ciB9LCAoZmluYWxTdGF0dXMgPT09ICdlcnJvcicgJiYgeyBzdGF0dXM6ICdlcnJvcicgfSkpLCAoZm9ybURpc2FibGVkICYmIGNoaWxkUHJvcHMuZGlzYWJsZWQgPT09IHVuZGVmaW5lZCAmJiB7IGRpc2FibGVkOiB0cnVlIH0pKSwgKFNJWkVfQVdBUkVfQ09NUE9ORU5UX05BTUVTLmluY2x1ZGVzKGRpc3BsYXlOYW1lIHx8ICcnKSAmJlxuICAgICAgICAgICAgY2hpbGRQcm9wcy5zaXplID09PSB1bmRlZmluZWQgJiYgeyBzaXplIH0pKTtcbiAgICAgICAgcmV0dXJuIFJlYWN0LmNsb25lRWxlbWVudChjaGlsZCwgaW5qZWN0ZWRQcm9wcyk7XG4gICAgfTtcbiAgICByZXR1cm4ge1xuICAgICAgICBmaWVsZFZhbHVlLFxuICAgICAgICBmaWVsZEVycm9yLFxuICAgICAgICBmaWVsZFdhcm5pbmcsXG4gICAgICAgIGZpZWxkVmFsaWRhdGluZyxcbiAgICAgICAgdmFsaWRhdGVTdGF0dXM6IGZpbmFsU3RhdHVzLFxuICAgICAgICBpc1JlcXVpcmVkLFxuICAgICAgICBzaXplLFxuICAgICAgICBsYWJlbEFsaWduLFxuICAgICAgICByZXF1aXJlZE1hcmssXG4gICAgICAgIGluamVjdEZpZWxkLFxuICAgIH07XG59Il0sInNvdXJjZVJvb3QiOiIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMifQ==
@@ -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==
@@ -12,6 +12,7 @@ var _jsxRuntime = require("react/jsx-runtime");
12
12
  var _react = _interopRequireWildcard(require("react"));
13
13
  var _ProFormItem = require("../ProFormItem");
14
14
  var _context = require("../context");
15
+ var _formStore = require("../core/formStore");
15
16
  var _classnames = _interopRequireDefault(require("../../../utils/classnames"));
16
17
  var _constants = require("../constants");
17
18
  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); }
@@ -28,22 +29,34 @@ var ProFormFieldSetBase = function ProFormFieldSetBase(props) {
28
29
  gap = _props$gap === void 0 ? 8 : _props$gap,
29
30
  style = props.style,
30
31
  children = props.children;
31
- var _useProFormContext = (0, _context.useProFormContext)(),
32
- values = _useProFormContext.values,
33
- setFieldValue = _useProFormContext.setFieldValue;
34
- var value = name ? Array.isArray(values[name]) ? values[name] : [] : [];
32
+ var _useProFormStable = (0, _context.useProFormStable)(),
33
+ setFieldValue = _useProFormStable.setFieldValue,
34
+ formInstance = _useProFormStable.formInstance;
35
+ var store = (0, _context.useProFormStore)();
36
+ // Per-field subscription: re-render only when THIS set's array changes.
37
+ var rawValue = (0, _formStore.useStoreSelector)(store, function (state) {
38
+ return name ? state.values[name] : undefined;
39
+ });
40
+ var value = Array.isArray(rawValue) ? rawValue : [];
35
41
  var itemIndex = -1;
36
42
  var list = _react["default"].Children.map(children, function (child) {
43
+ var _a;
37
44
  if (! /*#__PURE__*/_react["default"].isValidElement(child)) return child;
38
45
  itemIndex += 1;
39
46
  var index = itemIndex;
40
47
  return /*#__PURE__*/_react["default"].cloneElement(child, {
41
- value: value[index],
48
+ // '' (not undefined) for empty slots — an input must not switch from
49
+ // uncontrolled to controlled on its first edit.
50
+ value: (_a = value[index]) !== null && _a !== void 0 ? _a : '',
42
51
  onChange: function onChange(val) {
43
52
  if (!name) return;
44
53
  var newValue = (0, _toConsumableArray2["default"])(value);
45
54
  newValue[index] = val && (0, _typeof2["default"])(val) === 'object' && 'target' in val ? val.target.value : val;
46
55
  setFieldValue(name, newValue);
56
+ // A slot edit is a user change trigger — mark touched like any field.
57
+ if (!formInstance.isFieldTouched(name)) {
58
+ formInstance.setFieldTouched(name, true);
59
+ }
47
60
  }
48
61
  });
49
62
  });
@@ -72,4 +85,4 @@ var ProFormFieldSetBase = function ProFormFieldSetBase(props) {
72
85
  ProFormFieldSetBase.displayName = 'ProFormFieldSet';
73
86
  var ProFormFieldSet = exports.ProFormFieldSet = /*#__PURE__*/(0, _react.memo)(ProFormFieldSetBase);
74
87
  var _default = exports["default"] = ProFormFieldSet;
75
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvUHJvRm9ybS9maWVsZHMvUHJvRm9ybUZpZWxkU2V0LmpzIiwiY29tcG9uZW50cy9Qcm9Gb3JtL3NyYy9jb21wb25lbnRzL1Byb0Zvcm0vZmllbGRzL1Byb0Zvcm1GaWVsZFNldC50c3giXSwibmFtZXMiOlsiX2pzeFJ1bnRpbWUiLCJyZXF1aXJlIiwiX3JlYWN0IiwiX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQiLCJfUHJvRm9ybUl0ZW0iLCJfY29udGV4dCIsIl9jbGFzc25hbWVzIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsIl9jb25zdGFudHMiLCJfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUiLCJlIiwiV2Vha01hcCIsInIiLCJ0IiwiX19lc01vZHVsZSIsIl90eXBlb2YzIiwiaGFzIiwiZ2V0IiwibiIsIl9fcHJvdG9fXyIsImEiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsInUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJpIiwic2V0IiwiY2xhc3NlcyIsImNsYXNzbmFtZXMiLCJjb25jYXQiLCJDU1NfUFJFRklYIiwiUHJvRm9ybUZpZWxkU2V0QmFzZSIsInByb3BzIiwibmFtZSIsImxhYmVsIiwiZGVzY3JpcHRpb24iLCJydWxlcyIsInJlcXVpcmVkIiwiZmVlZGJhY2siLCJfcHJvcHMkZ2FwIiwiZ2FwIiwic3R5bGUiLCJjaGlsZHJlbiIsIl91c2VQcm9Gb3JtQ29udGV4dCIsInVzZVByb0Zvcm1Db250ZXh0IiwidmFsdWVzIiwic2V0RmllbGRWYWx1ZSIsInZhbHVlIiwiQXJyYXkiLCJpc0FycmF5IiwiaXRlbUluZGV4IiwibGlzdCIsIlJlYWN0IiwiQ2hpbGRyZW4iLCJtYXAiLCJjaGlsZCIsImlzVmFsaWRFbGVtZW50IiwiaW5kZXgiLCJjbG9uZUVsZW1lbnQiLCJvbkNoYW5nZSIsInZhbCIsIm5ld1ZhbHVlIiwiX3RvQ29uc3VtYWJsZUFycmF5MiIsIl90eXBlb2YyIiwidGFyZ2V0IiwiY29udGVudCIsIl9qc3giLCJjbGFzc05hbWUiLCJhc3NpZ24iLCJkaXNwbGF5IiwiYWxpZ25JdGVtcyIsIlByb0Zvcm1JdGVtIiwiZGlzcGxheU5hbWUiLCJQcm9Gb3JtRmllbGRTZXQiLCJleHBvcnRzIiwibWVtbyIsIl9kZWZhdWx0Il0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O0FBQUEsSUFBQUEsV0FBQSxHQUFBQyxPQUFBO0FDQUEsSUFBQUMsTUFBQSxHQUFBQyx1QkFBQSxDQUFBRixPQUFBO0FBRUEsSUFBQUcsWUFBQSxHQUFBSCxPQUFBO0FBQ0EsSUFBQUksUUFBQSxHQUFBSixPQUFBO0FBQ0EsSUFBQUssV0FBQSxHQUFBQyxzQkFBQSxDQUFBTixPQUFBO0FBQ0EsSUFBQU8sVUFBQSxHQUFBUCxPQUFBO0FBQTBDLFNBQUFRLHlCQUFBQyxDQUFBLDZCQUFBQyxPQUFBLG1CQUFBQyxDQUFBLE9BQUFELE9BQUEsSUFBQUUsQ0FBQSxPQUFBRixPQUFBLFlBQUFGLHdCQUFBLFlBQUFBLHlCQUFBQyxDQUFBLFdBQUFBLENBQUEsR0FBQUcsQ0FBQSxHQUFBRCxDQUFBLEtBQUFGLENBQUE7QUFBQSxTQUFBUCx3QkFBQU8sQ0FBQSxFQUFBRSxDQUFBLFNBQUFBLENBQUEsSUFBQUYsQ0FBQSxJQUFBQSxDQUFBLENBQUFJLFVBQUEsU0FBQUosQ0FBQSxlQUFBQSxDQUFBLGdCQUFBSyxRQUFBLENBQUFMLENBQUEsMEJBQUFBLENBQUEsc0JBQUFBLENBQUEsUUFBQUcsQ0FBQSxHQUFBSix3QkFBQSxDQUFBRyxDQUFBLE9BQUFDLENBQUEsSUFBQUEsQ0FBQSxDQUFBRyxHQUFBLENBQUFOLENBQUEsVUFBQUcsQ0FBQSxDQUFBSSxHQUFBLENBQUFQLENBQUEsT0FBQVEsQ0FBQSxLQUFBQyxTQUFBLFVBQUFDLENBQUEsR0FBQUMsTUFBQSxDQUFBQyxjQUFBLElBQUFELE1BQUEsQ0FBQUUsd0JBQUEsV0FBQUMsQ0FBQSxJQUFBZCxDQUFBLG9CQUFBYyxDQUFBLE9BQUFDLGNBQUEsQ0FBQUMsSUFB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QixNQUFBLENBQUFpRCxNQUFBLENBQUE7TUFBSUMsT0FBTyxFQUFFLE1BQU07TUFBRTdCLEdBQUcsRUFBSEEsR0FBRztNQUFFOEIsVUFBVSxFQUFFO0lBQVksQ0FBQSxFQUFLN0IsS0FBSyxDQUFBO0lBQUFDLFFBQUEsRUFDekZTO0VBQUksQ0FBQSxDQUVSO0VBRUQsSUFBSWxCLElBQUksRUFBRTtJQUNSLE9BQ0UsSUFBQWlDLGVBQUEsRUFBQ0ssd0JBQVcsRUFBQTtNQUFDckMsS0FBSyxFQUFFQSxLQUFLO01BQUVDLFdBQVcsRUFBRUEsV0FBVztNQUFFRixJQUFJLEVBQUVBLElBQUk7TUFBRUcsS0FBSyxFQUFFQSxLQUFLO01BQUVDLFFBQVEsRUFBRUEsUUFBUTtNQUFFQyxRQUFRLEVBQUVBLFFBQVE7TUFBQUksUUFBQSxFQUNsSHVCO0lBQU8sQ0FBQSxDQUNJO0VBRWxCO0VBRUEsT0FBT0EsT0FBTztBQUNoQixDQUFDO0FBRURsQyxtQkFBbUIsQ0FBQ3lDLFdBQVcsR0FBRyxpQkFBaUI7QUFFNUMsSUFBTUMsZUFBZSxHQUFBQyxPQUFBLENBQUFELGVBQUEsZ0JBQUcsSUFBQUUsV0FBSSxFQUFDNUMsbUJBQW1CLENBQUM7QUFBQyxJQUFBNkMsUUFBQSxHQUFBRixPQUFBLGNBRTFDRCxlQUFlIiwiZmlsZSI6ImNvbXBvbmVudHMvUHJvRm9ybS9maWVsZHMvUHJvRm9ybUZpZWxkU2V0LmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsganN4IGFzIF9qc3ggfSBmcm9tIFwicmVhY3QvanN4LXJ1bnRpbWVcIjtcbmltcG9ydCBSZWFjdCwgeyBtZW1vIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgUHJvRm9ybUl0ZW0gfSBmcm9tICcuLi9Qcm9Gb3JtSXRlbSc7XG5pbXBvcnQgeyB1c2VQcm9Gb3JtQ29udGV4dCB9IGZyb20gJy4uL2NvbnRleHQnO1xuaW1wb3J0IHsgZGVmYXVsdCBhcyBjbGFzc25hbWVzIH0gZnJvbSAnLi4vLi4vLi4vdXRpbHMvY2xhc3NuYW1lcyc7XG5pbXBvcnQgeyBDU1NfUFJFRklYIH0gZnJvbSAnLi4vY29uc3RhbnRzJztcbmNvbnN0IGNsYXNzZXMgPSBjbGFzc25hbWVzKGAke0NTU19QUkVGSVh9LWZpZWxkc2V0YCk7XG5jb25zdCBQcm9Gb3JtRmllbGRTZXRCYXNlID0gKHByb3BzKSA9PiB7XG4gICAgY29uc3QgeyBuYW1lLCBsYWJlbCwgZGVzY3JpcHRpb24sIHJ1bGVzLCByZXF1aXJlZCwgZmVlZGJhY2ssIGdhcCA9IDgsIHN0eWxlLCBjaGlsZHJlbiwgfSA9IHByb3BzO1xuICAgIGNvbnN0IHsgdmFsdWVzLCBzZXRGaWVsZFZhbHVlIH0gPSB1c2VQcm9Gb3JtQ29udGV4dCgpO1xuICAgIGNvbnN0IHZhbHVlID0gbmFtZSA/IChBcnJheS5pc0FycmF5KHZhbHVlc1tuYW1lXSkgPyB2YWx1ZXNbbmFtZV0gOiBbXSkgOiBbXTtcbiAgICBsZXQgaXRlbUluZGV4ID0gLTE7XG4gICAgY29uc3QgbGlzdCA9IFJlYWN0LkNoaWxkcmVuLm1hcChjaGlsZHJlbiwgKGNoaWxkKSA9PiB7XG4gICAgICAgIGlmICghUmVhY3QuaXNWYWxpZEVsZW1lbnQoY2hpbGQpKVxuICAgICAgICAgICAgcmV0dXJuIGNoaWxkO1xuICAgICAgICBpdGVtSW5kZXggKz0gMTtcbiAgICAgICAgY29uc3QgaW5kZXggPSBpdGVtSW5kZXg7XG4gICAgICAgIHJldHVybiBSZWFjdC5jbG9uZUVsZW1lbnQoY2hpbGQsIHtcbiAgICAgICAgICAgIHZhbHVlOiB2YWx1ZVtpbmRleF0sXG4gICAgICAgICAgICBvbkNoYW5nZTogKHZhbCkgPT4ge1xuICAgICAgICAgICAgICAgIGlmICghbmFtZSlcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIGNvbnN0IG5ld1ZhbHVlID0gWy4uLnZhbHVlXTtcbiAgICAgICAgICAgICAgICBuZXdWYWx1ZVtpbmRleF0gPSB2YWwgJiYgdHlwZW9mIHZhbCA9PT0gJ29iamVjdCcgJiYgJ3RhcmdldCcgaW4gdmFsXG4gICAgICAgICAgICAgICAgICAgID8gdmFsLnRhcmdldC52YWx1ZVxuICAgICAgICAgICAgICAgICAgICA6IHZhbDtcbiAgICAgICAgICAgICAgICBzZXRGaWVsZFZhbHVlKG5hbWUsIG5ld1ZhbHVlKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgIH0pO1xuICAgIH0pO1xuICAgIGNvbnN0IGNvbnRlbnQgPSAoX2pzeChcImRpdlwiLCB7IGNsYXNzTmFtZTogY2xhc3NlcygpLCBzdHlsZTogT2JqZWN0LmFzc2lnbih7IGRpc3BsYXk6ICdmbGV4JywgZ2FwLCBhbGlnbkl0ZW1zOiAnZmxleC1zdGFydCcgfSwgc3R5bGUpLCBjaGlsZHJlbjogbGlzdCB9KSk7XG4gICAgaWYgKG5hbWUpIHtcbiAgICAgICAgcmV0dXJuIChfanN4KFByb0Zvcm1JdGVtLCB7IGxhYmVsOiBsYWJlbCwgZGVzY3JpcHRpb246IGRlc2NyaXB0aW9uLCBuYW1lOiBuYW1lLCBydWxlczogcnVsZXMsIHJlcXVpcmVkOiByZXF1aXJlZCwgZmVlZGJhY2s6IGZlZWRiYWNrLCBjaGlsZHJlbjogY29udGVudCB9KSk7XG4gICAgfVxuICAgIHJldHVybiBjb250ZW50O1xufTtcblByb0Zvcm1GaWVsZFNldEJhc2UuZGlzcGxheU5hbWUgPSAnUHJvRm9ybUZpZWxkU2V0JztcbmV4cG9ydCBjb25zdCBQcm9Gb3JtRmllbGRTZXQgPSBtZW1vKFByb0Zvcm1GaWVsZFNldEJhc2UpO1xuZXhwb3J0IGRlZmF1bHQgUHJvRm9ybUZpZWxkU2V0OyIsbnVsbF0sInNvdXJjZVJvb3QiOiIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMifQ==
88
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvUHJvRm9ybS9maWVsZHMvUHJvRm9ybUZpZWxkU2V0LmpzIiwiY29tcG9uZW50cy9Qcm9Gb3JtL3NyYy9jb21wb25lbnRzL1Byb0Zvcm0vZmllbGRzL1Byb0Zvcm1GaWVsZFNldC50c3giXSwibmFtZXMiOlsiX2pzeFJ1bnRpbWUiLCJyZXF1aXJlIiwiX3JlYWN0IiwiX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQiLCJfUHJvRm9ybUl0ZW0iLCJfY29udGV4dCIsIl9mb3JtU3RvcmUiLCJfY2xhc3NuYW1lcyIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfY29uc3RhbnRzIiwiX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlIiwiZSIsIldlYWtNYXAiLCJyIiwidCIsIl9fZXNNb2R1bGUiLCJfdHlwZW9mMyIsImhhcyIsImdldCIsIm4iLCJfX3Byb3RvX18iLCJhIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJ1IiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiaSIsInNldCIsImNsYXNzZXMiLCJjbGFzc25hbWVzIiwiY29uY2F0IiwiQ1NTX1BSRUZJWCIsIlByb0Zvcm1GaWVsZFNldEJhc2UiLCJwcm9wcyIsIm5hbWUiLCJsYWJlbCIsImRlc2NyaXB0aW9uIiwicnVsZXMiLCJyZXF1aXJlZCIsImZlZWRiYWNrIiwiX3Byb3BzJGdhcCIsImdhcCIsInN0eWxlIiwiY2hpbGRyZW4iLCJfdXNlUHJvRm9ybVN0YWJsZSIsInVzZVByb0Zvcm1TdGFibGUiLCJzZXRGaWVsZFZhbHVlIiwiZm9ybUluc3RhbmNlIiwic3RvcmUiLCJ1c2VQcm9Gb3JtU3RvcmUiLCJyYXdWYWx1ZSIsInVzZVN0b3JlU2VsZWN0b3IiLCJzdGF0ZSIsInZhbHVlcyIsInVuZGVmaW5lZCIsInZhbHVlIiwiQXJyYXkiLCJpc0FycmF5IiwiaXRlbUluZGV4IiwibGlzdCIsIlJlYWN0IiwiQ2hpbGRyZW4iLCJtYXAiLCJjaGlsZCIsIl9hIiwiaXNWYWxpZEVsZW1lbnQiLCJpbmRleCIsImNsb25lRWxlbWVudCIsIm9uQ2hhbmdlIiwidmFsIiwibmV3VmFsdWUiLCJfdG9Db25zdW1hYmxlQXJyYXkyIiwiX3R5cGVvZjIiLCJ0YXJnZXQiLCJpc0ZpZWxkVG91Y2hlZCIsInNldEZpZWxkVG91Y2hlZCIsImNvbnRlbnQiLCJfanN4IiwiY2xhc3NOYW1lIiwiYXNzaWduIiwiZGlzcGxheSIsImFsaWduSXRlbXMiLCJQcm9Gb3JtSXRlbSIsImRpc3BsYXlOYW1lIiwiUHJvRm9ybUZpZWxkU2V0IiwiZXhwb3J0cyIsIm1lbW8iLCJfZGVmYXVsdCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7OztBQUFBLElBQUFBLFdBQUEsR0FBQUMsT0FBQTtBQ0FBLElBQUFDLE1BQUEsR0FBQUMsdUJBQUEsQ0FBQUYsT0FBQTtBQUVBLElBQUFHLFlBQUEsR0FBQUgsT0FBQTtBQUNBLElBQUFJLFFBQUEsR0FBQUosT0FBQTtBQUNBLElBQUFLLFVBQUEsR0FBQUwsT0FBQTtBQUNBLElBQUFNLFdBQUEsR0FBQUMsc0JBQUEsQ0FBQVAsT0FBQTtBQUNBLElBQUFRLFVBQUEsR0FBQVIsT0FBQTtBQUEwQyxTQUFBUyx5QkFBQUMsQ0FBQSw2QkFBQUMsT0FBQSxtQkFBQUMsQ0FBQSxPQUFBRCxPQUFBLElBQUFFLENBQUEsT0FBQUYsT0FBQSxZQUFBRix3QkFBQSxZQUFBQSx5QkFBQUMsQ0FBQSxXQUFBQSxDQUFBLEdBQUFHLENBQUEsR0FBQUQsQ0FBQSxLQUFBRixDQUFBO0FBQUEsU0FBQVIsd0JBQUFRLENBQUEsRUFBQUUsQ0FBQSxTQUFBQSxDQUFBLElBQUFGLENBQUEsSUFBQUEsQ0FBQSxDQUFBSSxVQUFBLFNBQUFKLENBQUEsZUFBQUEsQ0FBQSxnQkFBQUssUUFBQSxDQUFBTCxDQUFBLDBCQUFBQSxDQUFBLHNCQUFBQSxDQUFBLFFBQUFHLENBQUEsR0FBQUosd0JBQUEsQ0FBQUcsQ0FBQSxPQUFBQyxDQUFBLElBQUFBLENBQUEsQ0FBQUcsR0FBQSxDQUFBTixD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QSxDQUNJO0VBRWxCO0VBRUEsT0FBT0EsT0FBTztBQUNoQixDQUFDO0FBRUQ1QyxtQkFBbUIsQ0FBQ21ELFdBQVcsR0FBRyxpQkFBaUI7QUFFNUMsSUFBTUMsZUFBZSxHQUFBQyxPQUFBLENBQUFELGVBQUEsZ0JBQUcsSUFBQUUsV0FBSSxFQUFDdEQsbUJBQW1CLENBQUM7QUFBQyxJQUFBdUQsUUFBQSxHQUFBRixPQUFBLGNBRTFDRCxlQUFlIiwiZmlsZSI6ImNvbXBvbmVudHMvUHJvRm9ybS9maWVsZHMvUHJvRm9ybUZpZWxkU2V0LmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsganN4IGFzIF9qc3ggfSBmcm9tIFwicmVhY3QvanN4LXJ1bnRpbWVcIjtcbmltcG9ydCBSZWFjdCwgeyBtZW1vIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgUHJvRm9ybUl0ZW0gfSBmcm9tICcuLi9Qcm9Gb3JtSXRlbSc7XG5pbXBvcnQgeyB1c2VQcm9Gb3JtU3RhYmxlLCB1c2VQcm9Gb3JtU3RvcmUgfSBmcm9tICcuLi9jb250ZXh0JztcbmltcG9ydCB7IHVzZVN0b3JlU2VsZWN0b3IgfSBmcm9tICcuLi9jb3JlL2Zvcm1TdG9yZSc7XG5pbXBvcnQgeyBkZWZhdWx0IGFzIGNsYXNzbmFtZXMgfSBmcm9tICcuLi8uLi8uLi91dGlscy9jbGFzc25hbWVzJztcbmltcG9ydCB7IENTU19QUkVGSVggfSBmcm9tICcuLi9jb25zdGFudHMnO1xuY29uc3QgY2xhc3NlcyA9IGNsYXNzbmFtZXMoYCR7Q1NTX1BSRUZJWH0tZmllbGRzZXRgKTtcbmNvbnN0IFByb0Zvcm1GaWVsZFNldEJhc2UgPSAocHJvcHMpID0+IHtcbiAgICBjb25zdCB7IG5hbWUsIGxhYmVsLCBkZXNjcmlwdGlvbiwgcnVsZXMsIHJlcXVpcmVkLCBmZWVkYmFjaywgZ2FwID0gOCwgc3R5bGUsIGNoaWxkcmVuLCB9ID0gcHJvcHM7XG4gICAgY29uc3QgeyBzZXRGaWVsZFZhbHVlLCBmb3JtSW5zdGFuY2UgfSA9IHVzZVByb0Zvcm1TdGFibGUoKTtcbiAgICBjb25zdCBzdG9yZSA9IHVzZVByb0Zvcm1TdG9yZSgpO1xuICAgIC8vIFBlci1maWVsZCBzdWJzY3JpcHRpb246IHJlLXJlbmRlciBvbmx5IHdoZW4gVEhJUyBzZXQncyBhcnJheSBjaGFuZ2VzLlxuICAgIGNvbnN0IHJhd1ZhbHVlID0gdXNlU3RvcmVTZWxlY3RvcihzdG9yZSwgKHN0YXRlKSA9PiAobmFtZSA/IHN0YXRlLnZhbHVlc1tuYW1lXSA6IHVuZGVmaW5lZCkpO1xuICAgIGNvbnN0IHZhbHVlID0gQXJyYXkuaXNBcnJheShyYXdWYWx1ZSkgPyByYXdWYWx1ZSA6IFtdO1xuICAgIGxldCBpdGVtSW5kZXggPSAtMTtcbiAgICBjb25zdCBsaXN0ID0gUmVhY3QuQ2hpbGRyZW4ubWFwKGNoaWxkcmVuLCAoY2hpbGQpID0+IHtcbiAgICAgICAgdmFyIF9hO1xuICAgICAgICBpZiAoIVJlYWN0LmlzVmFsaWRFbGVtZW50KGNoaWxkKSlcbiAgICAgICAgICAgIHJldHVybiBjaGlsZDtcbiAgICAgICAgaXRlbUluZGV4ICs9IDE7XG4gICAgICAgIGNvbnN0IGluZGV4ID0gaXRlbUluZGV4O1xuICAgICAgICByZXR1cm4gUmVhY3QuY2xvbmVFbGVtZW50KGNoaWxkLCB7XG4gICAgICAgICAgICAvLyAnJyAobm90IHVuZGVmaW5lZCkgZm9yIGVtcHR5IHNsb3RzIOKAlCBhbiBpbnB1dCBtdXN0IG5vdCBzd2l0Y2ggZnJvbVxuICAgICAgICAgICAgLy8gdW5jb250cm9sbGVkIHRvIGNvbnRyb2xsZWQgb24gaXRzIGZpcnN0IGVkaXQuXG4gICAgICAgICAgICB2YWx1ZTogKF9hID0gdmFsdWVbaW5kZXhdKSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiAnJyxcbiAgICAgICAgICAgIG9uQ2hhbmdlOiAodmFsKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKCFuYW1lKVxuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgY29uc3QgbmV3VmFsdWUgPSBbLi4udmFsdWVdO1xuICAgICAgICAgICAgICAgIG5ld1ZhbHVlW2luZGV4XSA9IHZhbCAmJiB0eXBlb2YgdmFsID09PSAnb2JqZWN0JyAmJiAndGFyZ2V0JyBpbiB2YWxcbiAgICAgICAgICAgICAgICAgICAgPyB2YWwudGFyZ2V0LnZhbHVlXG4gICAgICAgICAgICAgICAgICAgIDogdmFsO1xuICAgICAgICAgICAgICAgIHNldEZpZWxkVmFsdWUobmFtZSwgbmV3VmFsdWUpO1xuICAgICAgICAgICAgICAgIC8vIEEgc2xvdCBlZGl0IGlzIGEgdXNlciBjaGFuZ2UgdHJpZ2dlciDigJQgbWFyayB0b3VjaGVkIGxpa2UgYW55IGZpZWxkLlxuICAgICAgICAgICAgICAgIGlmICghZm9ybUluc3RhbmNlLmlzRmllbGRUb3VjaGVkKG5hbWUpKSB7XG4gICAgICAgICAgICAgICAgICAgIGZvcm1JbnN0YW5jZS5zZXRGaWVsZFRvdWNoZWQobmFtZSwgdHJ1ZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgfSk7XG4gICAgfSk7XG4gICAgY29uc3QgY29udGVudCA9IChfanN4KFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCksIHN0eWxlOiBPYmplY3QuYXNzaWduKHsgZGlzcGxheTogJ2ZsZXgnLCBnYXAsIGFsaWduSXRlbXM6ICdmbGV4LXN0YXJ0JyB9LCBzdHlsZSksIGNoaWxkcmVuOiBsaXN0IH0pKTtcbiAgICBpZiAobmFtZSkge1xuICAgICAgICByZXR1cm4gKF9qc3goUHJvRm9ybUl0ZW0sIHsgbGFiZWw6IGxhYmVsLCBkZXNjcmlwdGlvbjogZGVzY3JpcHRpb24sIG5hbWU6IG5hbWUsIHJ1bGVzOiBydWxlcywgcmVxdWlyZWQ6IHJlcXVpcmVkLCBmZWVkYmFjazogZmVlZGJhY2ssIGNoaWxkcmVuOiBjb250ZW50IH0pKTtcbiAgICB9XG4gICAgcmV0dXJuIGNvbnRlbnQ7XG59O1xuUHJvRm9ybUZpZWxkU2V0QmFzZS5kaXNwbGF5TmFtZSA9ICdQcm9Gb3JtRmllbGRTZXQnO1xuZXhwb3J0IGNvbnN0IFByb0Zvcm1GaWVsZFNldCA9IG1lbW8oUHJvRm9ybUZpZWxkU2V0QmFzZSk7XG5leHBvcnQgZGVmYXVsdCBQcm9Gb3JtRmllbGRTZXQ7IixudWxsXSwic291cmNlUm9vdCI6Ii4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYyJ9