@1money/component-ui 0.0.71 → 0.0.73
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/es/components/ProForm/ProForm.d.ts +10 -2
- package/es/components/ProForm/ProForm.js +55 -22
- package/es/components/ProForm/ProFormDependency.js +4 -1
- package/es/components/ProForm/ProFormItem.js +73 -36
- package/es/components/ProForm/SchemaForm.d.ts +7 -0
- package/es/components/ProForm/SchemaForm.js +103 -0
- package/es/components/ProForm/Submitter.js +12 -2
- package/es/components/ProForm/context.d.ts +22 -3
- package/es/components/ProForm/context.js +49 -10
- package/es/components/ProForm/core/constants.d.ts +2 -1
- package/es/components/ProForm/core/constants.js +3 -6
- package/es/components/ProForm/core/hooks/useForm.js +155 -131
- package/es/components/ProForm/core/hooks/useFormCore.js +73 -39
- package/es/components/ProForm/core/interface.d.ts +33 -12
- package/es/components/ProForm/core/runRules.d.ts +16 -6
- package/es/components/ProForm/core/runRules.js +94 -47
- package/es/components/ProForm/core/useFormItem.d.ts +10 -1
- package/es/components/ProForm/core/useFormItem.js +101 -39
- package/es/components/ProForm/fields/ProFormDatePicker.js +4 -1
- package/es/components/ProForm/fields/createProFormField.js +50 -31
- package/es/components/ProForm/index.d.ts +11 -4
- package/es/components/ProForm/index.js +7 -2
- package/es/components/ProForm/interface.d.ts +89 -14
- package/es/components/ProForm/layouts/DialogForm.d.ts +5 -1
- package/es/components/ProForm/layouts/DialogForm.js +2 -1
- package/es/components/ProForm/layouts/DrawerForm.d.ts +5 -1
- package/es/components/ProForm/layouts/DrawerForm.js +2 -1
- package/es/components/ProForm/layouts/QueryFilter.d.ts +5 -2
- package/es/components/ProForm/layouts/QueryFilter.js +77 -12
- package/es/components/ProForm/style/ProForm.css +6 -0
- package/es/components/ProForm/utils.d.ts +12 -1
- package/es/components/ProForm/utils.js +70 -21
- package/es/components/Tooltip/style/Tooltip.css +1 -0
- package/es/index.css +1 -1
- package/es/index.d.ts +2 -2
- package/es/index.js +2 -2
- package/lib/components/ProForm/ProForm.d.ts +10 -2
- package/lib/components/ProForm/ProForm.js +53 -20
- package/lib/components/ProForm/ProFormDependency.js +4 -1
- package/lib/components/ProForm/ProFormItem.js +72 -34
- package/lib/components/ProForm/SchemaForm.d.ts +7 -0
- package/lib/components/ProForm/SchemaForm.js +110 -0
- package/lib/components/ProForm/Submitter.js +12 -2
- package/lib/components/ProForm/context.d.ts +22 -3
- package/lib/components/ProForm/context.js +49 -10
- package/lib/components/ProForm/core/constants.d.ts +2 -1
- package/lib/components/ProForm/core/constants.js +4 -7
- package/lib/components/ProForm/core/hooks/useForm.js +154 -130
- package/lib/components/ProForm/core/hooks/useFormCore.js +72 -38
- package/lib/components/ProForm/core/interface.d.ts +33 -12
- package/lib/components/ProForm/core/runRules.d.ts +16 -6
- package/lib/components/ProForm/core/runRules.js +95 -47
- package/lib/components/ProForm/core/useFormItem.d.ts +10 -1
- package/lib/components/ProForm/core/useFormItem.js +100 -38
- package/lib/components/ProForm/fields/ProFormDatePicker.js +4 -1
- package/lib/components/ProForm/fields/createProFormField.js +50 -31
- package/lib/components/ProForm/index.d.ts +11 -4
- package/lib/components/ProForm/index.js +16 -1
- package/lib/components/ProForm/interface.d.ts +89 -14
- package/lib/components/ProForm/layouts/DialogForm.d.ts +5 -1
- package/lib/components/ProForm/layouts/DialogForm.js +2 -1
- package/lib/components/ProForm/layouts/DrawerForm.d.ts +5 -1
- package/lib/components/ProForm/layouts/DrawerForm.js +2 -1
- package/lib/components/ProForm/layouts/QueryFilter.d.ts +5 -2
- package/lib/components/ProForm/layouts/QueryFilter.js +77 -12
- package/lib/components/ProForm/style/ProForm.css +6 -0
- package/lib/components/ProForm/utils.d.ts +12 -1
- package/lib/components/ProForm/utils.js +73 -21
- package/lib/components/Tooltip/style/Tooltip.css +1 -0
- package/lib/index.css +1 -1
- package/lib/index.d.ts +2 -2
- package/lib/index.js +13 -1
- package/package.json +1 -1
- package/scripts/mcp-server/examples.generated.json +54 -0
- package/scripts/mcp-server/index.generated.json +1212 -80
|
@@ -29,29 +29,52 @@ var __awaiter = this && this.__awaiter || function (thisArg, _arguments, P, gene
|
|
|
29
29
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
30
30
|
});
|
|
31
31
|
};
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
32
|
+
/** Empty for `required`: undefined / null / '' / empty array. */
|
|
33
|
+
function isEmptyValue(value) {
|
|
34
|
+
return value === undefined || value === null || value === '' || Array.isArray(value) && value.length === 0;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Filter rules applicable to an interactive trigger. A rule WITHOUT an
|
|
38
|
+
* explicit `validateTrigger` follows the form-level trigger; a rule WITH one
|
|
39
|
+
* runs on exactly those trigger(s), regardless of the form-level setting.
|
|
40
|
+
* Submit-time validation bypasses this filter and runs every rule.
|
|
41
|
+
*/
|
|
42
|
+
export function filterRulesByTrigger(rules, trigger, formTrigger) {
|
|
43
|
+
return rules.filter(function (rule) {
|
|
44
|
+
var ruleTrigger = rule.validateTrigger;
|
|
45
|
+
if (!ruleTrigger) return formTrigger === trigger;
|
|
46
|
+
return Array.isArray(ruleTrigger) ? ruleTrigger.includes(trigger) : ruleTrigger === trigger;
|
|
47
|
+
});
|
|
48
|
+
}
|
|
42
49
|
/**
|
|
43
50
|
* Evaluate every built-in (non-`validator`) rule kind for a single rule.
|
|
44
51
|
* Returns the error message for the first failing check, or null.
|
|
45
52
|
*/
|
|
46
53
|
function checkBuiltinRules(rule, value, name) {
|
|
47
|
-
if (rule.required && (value
|
|
54
|
+
if (rule.required && isEmptyValue(value)) {
|
|
48
55
|
return rule.message || "".concat(name, " is required");
|
|
49
56
|
}
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
57
|
+
// min/max: string → length, array → item count, number → numeric value
|
|
58
|
+
if (rule.min !== undefined || rule.max !== undefined) {
|
|
59
|
+
var measured = null;
|
|
60
|
+
var unit = '';
|
|
61
|
+
if (typeof value === 'string') {
|
|
62
|
+
measured = value.length;
|
|
63
|
+
unit = ' characters';
|
|
64
|
+
} else if (Array.isArray(value)) {
|
|
65
|
+
measured = value.length;
|
|
66
|
+
unit = ' items';
|
|
67
|
+
} else if (typeof value === 'number' && !Number.isNaN(value)) {
|
|
68
|
+
measured = value;
|
|
69
|
+
}
|
|
70
|
+
if (measured !== null) {
|
|
71
|
+
if (rule.min !== undefined && measured < rule.min) {
|
|
72
|
+
return rule.message || "".concat(name, " must be at least ").concat(rule.min).concat(unit);
|
|
73
|
+
}
|
|
74
|
+
if (rule.max !== undefined && measured > rule.max) {
|
|
75
|
+
return rule.message || "".concat(name, " must be no more than ").concat(rule.max).concat(unit);
|
|
76
|
+
}
|
|
77
|
+
}
|
|
55
78
|
}
|
|
56
79
|
if (rule.pattern && typeof value === 'string' && !rule.pattern.test(value)) {
|
|
57
80
|
return rule.message || "".concat(name, " format is invalid");
|
|
@@ -84,24 +107,34 @@ function checkBuiltinRules(rule, value, name) {
|
|
|
84
107
|
/**
|
|
85
108
|
* Synchronous rule run. Custom validators are invoked but NOT awaited — a
|
|
86
109
|
* promise-returning validator is treated as failing (matches the legacy sync
|
|
87
|
-
* `validateField` behaviour).
|
|
110
|
+
* `validateField` behaviour).
|
|
88
111
|
*/
|
|
89
112
|
export function runRulesSync(name, value, values, rules) {
|
|
113
|
+
var warning = null;
|
|
90
114
|
var _iterator = _createForOfIteratorHelper(rules),
|
|
91
115
|
_step;
|
|
92
116
|
try {
|
|
93
117
|
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
94
118
|
var rule = _step.value;
|
|
95
|
-
var
|
|
96
|
-
if (
|
|
97
|
-
if (typeof rule.validator === 'function') {
|
|
119
|
+
var failure = checkBuiltinRules(rule, value, name);
|
|
120
|
+
if (failure === null && typeof rule.validator === 'function') {
|
|
98
121
|
try {
|
|
99
122
|
var result = rule.validator(value, values);
|
|
100
123
|
if (result !== true) {
|
|
101
|
-
|
|
124
|
+
failure = typeof result === 'string' ? result : 'Validation failed';
|
|
102
125
|
}
|
|
103
126
|
} catch (err) {
|
|
104
|
-
|
|
127
|
+
failure = err instanceof Error ? err.message : 'Validation error';
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
if (failure !== null) {
|
|
131
|
+
if (rule.warningOnly) {
|
|
132
|
+
warning = warning !== null && warning !== void 0 ? warning : failure;
|
|
133
|
+
} else {
|
|
134
|
+
return {
|
|
135
|
+
error: failure,
|
|
136
|
+
warning: warning
|
|
137
|
+
};
|
|
105
138
|
}
|
|
106
139
|
}
|
|
107
140
|
}
|
|
@@ -110,19 +143,22 @@ export function runRulesSync(name, value, values, rules) {
|
|
|
110
143
|
} finally {
|
|
111
144
|
_iterator.f();
|
|
112
145
|
}
|
|
113
|
-
return
|
|
146
|
+
return {
|
|
147
|
+
error: null,
|
|
148
|
+
warning: warning
|
|
149
|
+
};
|
|
114
150
|
}
|
|
115
151
|
/**
|
|
116
152
|
* Asynchronous rule run. Custom validators are awaited (sync or async). A
|
|
117
|
-
* validator returning `undefined` is treated as passing.
|
|
118
|
-
* error message, or null.
|
|
153
|
+
* validator returning `undefined` is treated as passing.
|
|
119
154
|
*/
|
|
120
155
|
export function runRulesAsync(name, value, values, rules) {
|
|
121
156
|
return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime.mark(function _callee() {
|
|
122
|
-
var _iterator2, _step2, rule,
|
|
157
|
+
var warning, _iterator2, _step2, rule, failure, result, _t, _t2;
|
|
123
158
|
return _regeneratorRuntime.wrap(function (_context) {
|
|
124
159
|
while (1) switch (_context.prev = _context.next) {
|
|
125
160
|
case 0:
|
|
161
|
+
warning = null;
|
|
126
162
|
_iterator2 = _createForOfIteratorHelper(rules);
|
|
127
163
|
_context.prev = 1;
|
|
128
164
|
_iterator2.s();
|
|
@@ -132,34 +168,42 @@ export function runRulesAsync(name, value, values, rules) {
|
|
|
132
168
|
break;
|
|
133
169
|
}
|
|
134
170
|
rule = _step2.value;
|
|
135
|
-
|
|
136
|
-
if (!(
|
|
137
|
-
_context.next =
|
|
171
|
+
failure = checkBuiltinRules(rule, value, name);
|
|
172
|
+
if (!(failure === null && typeof rule.validator === 'function')) {
|
|
173
|
+
_context.next = 6;
|
|
138
174
|
break;
|
|
139
175
|
}
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
176
|
+
_context.prev = 3;
|
|
177
|
+
_context.next = 4;
|
|
178
|
+
return Promise.resolve(rule.validator(value, values));
|
|
179
|
+
case 4:
|
|
180
|
+
result = _context.sent;
|
|
181
|
+
if (result !== true && result !== undefined) {
|
|
182
|
+
failure = typeof result === 'string' ? result : 'Validation failed';
|
|
183
|
+
}
|
|
184
|
+
_context.next = 6;
|
|
185
|
+
break;
|
|
186
|
+
case 5:
|
|
187
|
+
_context.prev = 5;
|
|
188
|
+
_t = _context["catch"](3);
|
|
189
|
+
failure = _t instanceof Error ? _t.message : 'Validation error';
|
|
190
|
+
case 6:
|
|
191
|
+
if (!(failure !== null)) {
|
|
143
192
|
_context.next = 8;
|
|
144
193
|
break;
|
|
145
194
|
}
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
return Promise.resolve(rule.validator(value, values));
|
|
149
|
-
case 5:
|
|
150
|
-
result = _context.sent;
|
|
151
|
-
if (!(result !== true && result !== undefined)) {
|
|
152
|
-
_context.next = 6;
|
|
195
|
+
if (!rule.warningOnly) {
|
|
196
|
+
_context.next = 7;
|
|
153
197
|
break;
|
|
154
198
|
}
|
|
155
|
-
|
|
156
|
-
case 6:
|
|
199
|
+
warning = warning !== null && warning !== void 0 ? warning : failure;
|
|
157
200
|
_context.next = 8;
|
|
158
201
|
break;
|
|
159
202
|
case 7:
|
|
160
|
-
_context.
|
|
161
|
-
|
|
162
|
-
|
|
203
|
+
return _context.abrupt("return", {
|
|
204
|
+
error: failure,
|
|
205
|
+
warning: warning
|
|
206
|
+
});
|
|
163
207
|
case 8:
|
|
164
208
|
_context.next = 2;
|
|
165
209
|
break;
|
|
@@ -175,12 +219,15 @@ export function runRulesAsync(name, value, values, rules) {
|
|
|
175
219
|
_iterator2.f();
|
|
176
220
|
return _context.finish(11);
|
|
177
221
|
case 12:
|
|
178
|
-
return _context.abrupt("return",
|
|
222
|
+
return _context.abrupt("return", {
|
|
223
|
+
error: null,
|
|
224
|
+
warning: warning
|
|
225
|
+
});
|
|
179
226
|
case 13:
|
|
180
227
|
case "end":
|
|
181
228
|
return _context.stop();
|
|
182
229
|
}
|
|
183
|
-
}, _callee, null, [[1, 10, 11, 12], [
|
|
230
|
+
}, _callee, null, [[1, 10, 11, 12], [3, 5]]);
|
|
184
231
|
}));
|
|
185
232
|
}
|
|
186
|
-
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvUHJvRm9ybS9jb3JlL3J1blJ1bGVzLmpzIiwiY29tcG9uZW50cy9Qcm9Gb3JtL3NyYy9jb21wb25lbnRzL1Byb0Zvcm0vY29yZS9ydW5SdWxlcy50cyJdLCJuYW1lcyI6WyJfX2F3YWl0ZXIiLCJ0aGlzQXJnIiwiX2FyZ3VtZW50cyIsIlAiLCJnZW5lcmF0b3IiLCJhZG9wdCIsInZhbHVlIiwicmVzb2x2ZSIsIlByb21pc2UiLCJyZWplY3QiLCJmdWxmaWxsZWQiLCJzdGVwIiwibmV4dCIsImUiLCJyZWplY3RlZCIsInJlc3VsdCIsImRvbmUiLCJ0aGVuIiwiYXBwbHkiLCJjaGVja0J1aWx0aW5SdWxlcyIsInJ1bGUiLCJuYW1lIiwicmVxdWlyZWQiLCJ1bmRlZmluZWQiLCJtZXNzYWdlIiwiY29uY2F0IiwibWluIiwibGVuZ3RoIiwibWF4IiwicGF0dGVybiIsInRlc3QiLCJBcnJheSIsImlzQXJyYXkiLCJpbmNsdWRlcyIsImpvaW4iLCJ0eXBlIiwiaXNOYU4iLCJlbWFpbFBhdHRlcm4iLCJTdHJpbmciLCJVUkwiLCJfYSIsInJ1blJ1bGVzU3luYyIsInZhbHVlcyIsInJ1bGVzIiwiX2l0ZXJhdG9yIiwiX2NyZWF0ZUZvck9mSXRlcmF0b3JIZWxwZXIiLCJfc3RlcCIsInMiLCJuIiwiYnVpbHRpbkVycm9yIiwidmFsaWRhdG9yIiwiZXJyIiwiRXJyb3IiLCJmIiwicnVuUnVsZXNBc3luYyIsIl9yZWdlbmVyYXRvclJ1bnRpbWUiLCJtYXJrIiwiX2NhbGxlZSIsIl9pdGVyYXRvcjIiLCJfc3RlcDIiLCJfdCIsIl90MiIsIndyYXAiLCJfY29udGV4dCIsInByZXYiLCJhYnJ1cHQiLCJzZW50IiwiZmluaXNoIiwic3RvcCJdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLElBQUlBLFNBQVMsR0FBSSxJQUFJLElBQUksSUFBSSxDQUFDQSxTQUFTLElBQUssVUFBVUMsT0FBTyxFQUFFQyxVQUFVLEVBQUVDLENBQUMsRUFBRUMsU0FBUyxFQUFFO0VB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QU0sQ0FBQyxDQUFDO1FBQUE7VUFBN0QzQixNQUFNLEdBQUFnRCxRQUFBLENBQUFHLElBQUE7VUFBQSxNQUNSbkQsTUFBTSxLQUFLLElBQUksSUFBSUEsTUFBTSxLQUFLUSxTQUFTO1lBQUF3QyxRQUFBLENBQUFuRCxJQUFBO1lBQUE7VUFBQTtVQUFBLE9BQUFtRCxRQUFBLENBQUFFLE1BQUEsV0FDbEMsT0FBT2xELE1BQU0sS0FBSyxRQUFRLEdBQUdBLE1BQU0sR0FBRyxtQkFBbUI7UUFBQTtVQUFBZ0QsUUFBQSxDQUFBbkQsSUFBQTtVQUFBO1FBQUE7VUFBQW1ELFFBQUEsQ0FBQUMsSUFBQTtVQUFBSixFQUFBLEdBQUFHLFFBQUE7VUFBQSxPQUFBQSxRQUFBLENBQUFFLE1BQUEsV0FHM0RMLEVBQUEsWUFBZVIsS0FBSyxHQUFHUSxFQUFBLENBQUlwQyxPQUFPLEdBQUcsa0JBQWtCO1FBQUE7VUFBQXVDLFFBQUEsQ0FBQW5ELElBQUE7VUFBQTtRQUFBO1VBQUFtRCxRQUFBLENBQUFuRCxJQUFBO1VBQUE7UUFBQTtVQUFBbUQsUUFBQSxDQUFBQyxJQUFBO1VBQUFILEdBQUEsR0FBQUUsUUFBQTtVQUFBTCxVQUFBLENBQUE3QyxDQUFBLENBQUFnRCxHQUFBO1FBQUE7VUFBQUUsUUFBQSxDQUFBQyxJQUFBO1VBQUFOLFVBQUEsQ0FBQUwsQ0FBQTtVQUFBLE9BQUFVLFFBQUEsQ0FBQUksTUFBQTtRQUFBO1VBQUEsT0FBQUosUUFBQSxDQUFBRSxNQUFBLFdBSTdELElBQUk7UUFBQTtRQUFBO1VBQUEsT0FBQUYsUUFBQSxDQUFBSyxJQUFBO01BQUE7SUFBQSxHQUFBWCxPQUFBO0VBQUEsQ0FDWixFQUFBO0FEREQiLCJmaWxlIjoiY29tcG9uZW50cy9Qcm9Gb3JtL2NvcmUvcnVuUnVsZXMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgX19hd2FpdGVyID0gKHRoaXMgJiYgdGhpcy5fX2F3YWl0ZXIpIHx8IGZ1bmN0aW9uICh0aGlzQXJnLCBfYXJndW1lbnRzLCBQLCBnZW5lcmF0b3IpIHtcbiAgICBmdW5jdGlvbiBhZG9wdCh2YWx1ZSkgeyByZXR1cm4gdmFsdWUgaW5zdGFuY2VvZiBQID8gdmFsdWUgOiBuZXcgUChmdW5jdGlvbiAocmVzb2x2ZSkgeyByZXNvbHZlKHZhbHVlKTsgfSk7IH1cbiAgICByZXR1cm4gbmV3IChQIHx8IChQID0gUHJvbWlzZSkpKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHtcbiAgICAgICAgZnVuY3Rpb24gZnVsZmlsbGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yLm5leHQodmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxuICAgICAgICBmdW5jdGlvbiByZWplY3RlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvcltcInRocm93XCJdKHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cbiAgICAgICAgZnVuY3Rpb24gc3RlcChyZXN1bHQpIHsgcmVzdWx0LmRvbmUgPyByZXNvbHZlKHJlc3VsdC52YWx1ZSkgOiBhZG9wdChyZXN1bHQudmFsdWUpLnRoZW4oZnVsZmlsbGVkLCByZWplY3RlZCk7IH1cbiAgICAgICAgc3RlcCgoZ2VuZXJhdG9yID0gZ2VuZXJhdG9yLmFwcGx5KHRoaXNBcmcsIF9hcmd1bWVudHMgfHwgW10pKS5uZXh0KCkpO1xuICAgIH0pO1xufTtcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gU2hhcmVkIHZhbGlkYXRpb24gZW5naW5lLlxuLy9cbi8vIFRoZSBzYW1lIHJlcXVpcmVkL21pbi9tYXgvcGF0dGVybi9lbnVtL3R5cGUgcnVsZSBjaGVja3Mgd2VyZSBwcmV2aW91c2x5XG4vLyBpbXBsZW1lbnRlZCB0aHJlZSB0aW1lcyAodXNlRm9ybUNvcmUudmFsaWRhdGVGaWVsZCwgdXNlRm9ybUNvcmUuaGFuZGxlU3VibWl0LFxuLy8gdXNlRm9ybS52YWxpZGF0ZUZpZWxkQXN5bmMpLiBUaGV5IGFyZSBjb25zb2xpZGF0ZWQgaGVyZSBhcyBwdXJlIGZ1bmN0aW9ucyB0aGF0XG4vLyByZXR1cm4gdGhlIGZpcnN0IGVycm9yIG1lc3NhZ2UgKG9yIG51bGwpIOKAlCBjYWxsZXJzIG93biB0aGUgc2V0RmllbGRFcnJvciBzaWRlXG4vLyBlZmZlY3QuIFRoZSBvbmx5IGRpZmZlcmVuY2UgYmV0d2VlbiB0aGUgc3luYyBhbmQgYXN5bmMgd3JhcHBlcnMgaXMgaG93IGN1c3RvbVxuLy8gYHZhbGlkYXRvcmAgZnVuY3Rpb25zIGFyZSBoYW5kbGVkIChhd2FpdGVkIHZzLiBub3QpLlxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vKipcbiAqIEV2YWx1YXRlIGV2ZXJ5IGJ1aWx0LWluIChub24tYHZhbGlkYXRvcmApIHJ1bGUga2luZCBmb3IgYSBzaW5nbGUgcnVsZS5cbiAqIFJldHVybnMgdGhlIGVycm9yIG1lc3NhZ2UgZm9yIHRoZSBmaXJzdCBmYWlsaW5nIGNoZWNrLCBvciBudWxsLlxuICovXG5mdW5jdGlvbiBjaGVja0J1aWx0aW5SdWxlcyhydWxlLCB2YWx1ZSwgbmFtZSkge1xuICAgIGlmIChydWxlLnJlcXVpcmVkICYmICh2YWx1ZSA9PT0gdW5kZWZpbmVkIHx8IHZhbHVlID09PSBudWxsIHx8IHZhbHVlID09PSAnJykpIHtcbiAgICAgICAgcmV0dXJuIHJ1bGUubWVzc2FnZSB8fCBgJHtuYW1lfSBpcyByZXF1aXJlZGA7XG4gICAgfVxuICAgIGlmIChydWxlLm1pbiAmJiB0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnICYmIHZhbHVlLmxlbmd0aCA8IHJ1bGUubWluKSB7XG4gICAgICAgIHJldHVybiBydWxlLm1lc3NhZ2UgfHwgYCR7bmFtZX0gbXVzdCBiZSBhdCBsZWFzdCAke3J1bGUubWlufSBjaGFyYWN0ZXJzYDtcbiAgICB9XG4gICAgaWYgKHJ1bGUubWF4ICYmIHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycgJiYgdmFsdWUubGVuZ3RoID4gcnVsZS5tYXgpIHtcbiAgICAgICAgcmV0dXJuIHJ1bGUubWVzc2FnZSB8fCBgJHtuYW1lfSBtdXN0IGJlIG5vIG1vcmUgdGhhbiAke3J1bGUubWF4fSBjaGFyYWN0ZXJzYDtcbiAgICB9XG4gICAgaWYgKHJ1bGUucGF0dGVybiAmJiB0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnICYmICFydWxlLnBhdHRlcm4udGVzdCh2YWx1ZSkpIHtcbiAgICAgICAgcmV0dXJuIHJ1bGUubWVzc2FnZSB8fCBgJHtuYW1lfSBmb3JtYXQgaXMgaW52YWxpZGA7XG4gICAgfVxuICAgIGlmIChydWxlLmVudW0gJiYgQXJyYXkuaXNBcnJheShydWxlLmVudW0pICYmIHZhbHVlKSB7XG4gICAgICAgIGlmICghcnVsZS5lbnVtLmluY2x1ZGVzKHZhbHVlKSkge1xuICAgICAgICAgICAgcmV0dXJuIHJ1bGUubWVzc2FnZSB8fCBgJHtuYW1lfSBtdXN0IGJlIG9uZSBvZiAke3J1bGUuZW51bS5qb2luKCcsICcpfWA7XG4gICAgICAgIH1cbiAgICB9XG4gICAgaWYgKHJ1bGUudHlwZSA9PT0gJ251bWJlcicgJiYgdmFsdWUgIT09IHVuZGVmaW5lZCAmJiB2YWx1ZSAhPT0gbnVsbCAmJiB2YWx1ZSAhPT0gJycpIHtcbiAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSAhPT0gJ251bWJlcicgfHwgaXNOYU4odmFsdWUpKSB7XG4gICAgICAgICAgICByZXR1cm4gcnVsZS5tZXNzYWdlIHx8IGAke25hbWV9IG11c3QgYmUgYSBudW1iZXJgO1xuICAgICAgICB9XG4gICAgfVxuICAgIGlmIChydWxlLnR5cGUgPT09ICdlbWFpbCcgJiYgdmFsdWUpIHtcbiAgICAgICAgY29uc3QgZW1haWxQYXR0ZXJuID0gL15bXlxcc0BdK0BbXlxcc0BdK1xcLlteXFxzQF0rJC87XG4gICAgICAgIGlmICghZW1haWxQYXR0ZXJuLnRlc3QoU3RyaW5nKHZhbHVlKSkpIHtcbiAgICAgICAgICAgIHJldHVybiBydWxlLm1lc3NhZ2UgfHwgYCR7bmFtZX0gbXVzdCBiZSBhIHZhbGlkIGVtYWlsYDtcbiAgICAgICAgfVxuICAgIH1cbiAgICBpZiAocnVsZS50eXBlID09PSAndXJsJyAmJiB2YWx1ZSkge1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgbmV3IFVSTChTdHJpbmcodmFsdWUpKTtcbiAgICAgICAgfVxuICAgICAgICBjYXRjaCAoX2EpIHtcbiAgICAgICAgICAgIHJldHVybiBydWxlLm1lc3NhZ2UgfHwgYCR7bmFtZX0gbXVzdCBiZSBhIHZhbGlkIFVSTGA7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG59XG4vKipcbiAqIFN5bmNocm9ub3VzIHJ1bGUgcnVuLiBDdXN0b20gdmFsaWRhdG9ycyBhcmUgaW52b2tlZCBidXQgTk9UIGF3YWl0ZWQg4oCUIGFcbiAqIHByb21pc2UtcmV0dXJuaW5nIHZhbGlkYXRvciBpcyB0cmVhdGVkIGFzIGZhaWxpbmcgKG1hdGNoZXMgdGhlIGxlZ2FjeSBzeW5jXG4gKiBgdmFsaWRhdGVGaWVsZGAgYmVoYXZpb3VyKS4gUmV0dXJucyB0aGUgZmlyc3QgZXJyb3IgbWVzc2FnZSwgb3IgbnVsbC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJ1blJ1bGVzU3luYyhuYW1lLCB2YWx1ZSwgdmFsdWVzLCBydWxlcykge1xuICAgIGZvciAoY29uc3QgcnVsZSBvZiBydWxlcykge1xuICAgICAgICBjb25zdCBidWlsdGluRXJyb3IgPSBjaGVja0J1aWx0aW5SdWxlcyhydWxlLCB2YWx1ZSwgbmFtZSk7XG4gICAgICAgIGlmIChidWlsdGluRXJyb3IgIT09IG51bGwpXG4gICAgICAgICAgICByZXR1cm4gYnVpbHRpbkVycm9yO1xuICAgICAgICBpZiAodHlwZW9mIHJ1bGUudmFsaWRhdG9yID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IHJ1bGUudmFsaWRhdG9yKHZhbHVlLCB2YWx1ZXMpO1xuICAgICAgICAgICAgICAgIGlmIChyZXN1bHQgIT09IHRydWUpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHR5cGVvZiByZXN1bHQgPT09ICdzdHJpbmcnID8gcmVzdWx0IDogJ1ZhbGlkYXRpb24gZmFpbGVkJztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXRjaCAoZXJyKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGVyciBpbnN0YW5jZW9mIEVycm9yID8gZXJyLm1lc3NhZ2UgOiAnVmFsaWRhdGlvbiBlcnJvcic7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG59XG4vKipcbiAqIEFzeW5jaHJvbm91cyBydWxlIHJ1bi4gQ3VzdG9tIHZhbGlkYXRvcnMgYXJlIGF3YWl0ZWQgKHN5bmMgb3IgYXN5bmMpLiBBXG4gKiB2YWxpZGF0b3IgcmV0dXJuaW5nIGB1bmRlZmluZWRgIGlzIHRyZWF0ZWQgYXMgcGFzc2luZy4gUmV0dXJucyB0aGUgZmlyc3RcbiAqIGVycm9yIG1lc3NhZ2UsIG9yIG51bGwuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBydW5SdWxlc0FzeW5jKG5hbWUsIHZhbHVlLCB2YWx1ZXMsIHJ1bGVzKSB7XG4gICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgZm9yIChjb25zdCBydWxlIG9mIHJ1bGVzKSB7XG4gICAgICAgICAgICBjb25zdCBidWlsdGluRXJyb3IgPSBjaGVja0J1aWx0aW5SdWxlcyhydWxlLCB2YWx1ZSwgbmFtZSk7XG4gICAgICAgICAgICBpZiAoYnVpbHRpbkVycm9yICE9PSBudWxsKVxuICAgICAgICAgICAgICAgIHJldHVybiBidWlsdGluRXJyb3I7XG4gICAgICAgICAgICBpZiAodHlwZW9mIHJ1bGUudmFsaWRhdG9yID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0geWllbGQgUHJvbWlzZS5yZXNvbHZlKHJ1bGUudmFsaWRhdG9yKHZhbHVlLCB2YWx1ZXMpKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3VsdCAhPT0gdHJ1ZSAmJiByZXN1bHQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHR5cGVvZiByZXN1bHQgPT09ICdzdHJpbmcnID8gcmVzdWx0IDogJ1ZhbGlkYXRpb24gZmFpbGVkJztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjYXRjaCAoZXJyKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBlcnIgaW5zdGFuY2VvZiBFcnJvciA/IGVyci5tZXNzYWdlIDogJ1ZhbGlkYXRpb24gZXJyb3InO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9KTtcbn0iLG51bGxdLCJzb3VyY2VSb290IjoiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjIn0=
|
|
233
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvUHJvRm9ybS9jb3JlL3J1blJ1bGVzLmpzIiwiY29tcG9uZW50cy9Qcm9Gb3JtL3NyYy9jb21wb25lbnRzL1Byb0Zvcm0vY29yZS9ydW5SdWxlcy50cyJdLCJuYW1lcyI6WyJfX2F3YWl0ZXIiLCJ0aGlzQXJnIiwiX2FyZ3VtZW50cyIsIlAiLCJnZW5lcmF0b3IiLCJhZG9wdCIsInZhbHVlIiwicmVzb2x2ZSIsIlByb21pc2UiLCJyZWplY3QiLCJmdWxmaWxsZWQiLCJzdGVwIiwibmV4dCIsImUiLCJyZWplY3RlZCIsInJlc3VsdCIsImRvbmUiLCJ0aGVuIiwiYXBwbHkiLCJpc0VtcHR5VmFsdWUiLCJ1bmRlZmluZWQiLCJBcnJheSIsImlzQXJyYXkiLCJsZW5ndGgiLCJmaWx0ZXJSdWxlc0J5VHJpZ2dlciIsInJ1bGVzIiwidHJpZ2dlciIsImZvcm1UcmlnZ2VyIiwiZmlsdGVyIiwicnVsZSIsInJ1bGVUcmlnZ2VyIiwidmFsaWRhdGVUcmlnZ2VyIiwiaW5jbHVkZXMiLCJjaGVja0J1aWx0aW5SdWxlcyIsIm5hbWUiLCJyZXF1aXJlZCIsIm1lc3NhZ2UiLCJjb25jYXQiLCJtaW4iLCJtYXgiLCJtZWFzdXJlZCIsInVuaXQiLCJOdW1iZXIiLCJpc05hTiIsInBhdHRlcm4iLCJ0ZXN0Iiwiam9pbiIsInR5cGUiLCJlbWFpbFBhdHRlcm4iLCJTdHJpbmciLCJVUkwiLCJfYSIsInJ1blJ1bGVzU3luYyIsInZhbHVlcyIsIndhcm5pbmciLCJfaXRlcmF0b3IiLCJfY3JlYXRlRm9yT2ZJdGVyYXRvckhlbHBlciIsIl9zdGVwIiwicyIsIm4iLCJmYWlsdXJlIiwidmFsaWRhdG9yIiwiZXJyIiwiRXJyb3IiLCJ3YXJuaW5nT25seSIsImVycm9yIiwiZiIsInJ1blJ1bGVzQXN5bmMiLCJfcmVnZW5lcmF0b3JSdW50aW1lIiwibWFyayIsIl9jYWxsZWUiLCJfaXRlcmF0b3IyIiwiX3N0ZXAyIiwiX3QiLCJfdDIiLCJ3cmFwIiwiX2NvbnRleHQiLCJw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QUEsS0FDZGlCLElBQUksQ0FBQ21DLFdBQVc7WUFBQVksUUFBQSxDQUFBaEUsSUFBQTtZQUFBO1VBQUE7VUFDbEIwQyxPQUFPLEdBQUdBLE9BQU8sS0FBQSxJQUFBLElBQVBBLE9BQU8sS0FBQSxLQUFBLENBQUEsR0FBUEEsT0FBTyxHQUFJTSxPQUFPO1VBQUNnQixRQUFBLENBQUFoRSxJQUFBO1VBQUE7UUFBQTtVQUFBLE9BQUFnRSxRQUFBLENBQUFHLE1BQUEsV0FFdEI7WUFBRWQsS0FBSyxFQUFFTCxPQUFPO1lBQUVOLE9BQU8sRUFBUEE7VUFBTyxDQUFFO1FBQUE7VUFBQXNCLFFBQUEsQ0FBQWhFLElBQUE7VUFBQTtRQUFBO1VBQUFnRSxRQUFBLENBQUFoRSxJQUFBO1VBQUE7UUFBQTtVQUFBZ0UsUUFBQSxDQUFBQyxJQUFBO1VBQUFILEdBQUEsR0FBQUUsUUFBQTtVQUFBTCxVQUFBLENBQUExRCxDQUFBLENBQUE2RCxHQUFBO1FBQUE7VUFBQUUsUUFBQSxDQUFBQyxJQUFBO1VBQUFOLFVBQUEsQ0FBQUwsQ0FBQTtVQUFBLE9BQUFVLFFBQUEsQ0FBQUksTUFBQTtRQUFBO1VBQUEsT0FBQUosUUFBQSxDQUFBRyxNQUFBLFdBSWpDO1lBQUVkLEtBQUssRUFBRSxJQUFJO1lBQUVYLE9BQU8sRUFBUEE7VUFBTyxDQUFFO1FBQUE7UUFBQTtVQUFBLE9BQUFzQixRQUFBLENBQUFLLElBQUE7TUFBQTtJQUFBLEdBQUFYLE9BQUE7RUFBQSxDQUNoQyxFQUFBO0FEaENEIiwiZmlsZSI6ImNvbXBvbmVudHMvUHJvRm9ybS9jb3JlL3J1blJ1bGVzLmpzIiwic291cmNlc0NvbnRlbnQiOlsidmFyIF9fYXdhaXRlciA9ICh0aGlzICYmIHRoaXMuX19hd2FpdGVyKSB8fCBmdW5jdGlvbiAodGhpc0FyZywgX2FyZ3VtZW50cywgUCwgZ2VuZXJhdG9yKSB7XG4gICAgZnVuY3Rpb24gYWRvcHQodmFsdWUpIHsgcmV0dXJuIHZhbHVlIGluc3RhbmNlb2YgUCA/IHZhbHVlIDogbmV3IFAoZnVuY3Rpb24gKHJlc29sdmUpIHsgcmVzb2x2ZSh2YWx1ZSk7IH0pOyB9XG4gICAgcmV0dXJuIG5ldyAoUCB8fCAoUCA9IFByb21pc2UpKShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7XG4gICAgICAgIGZ1bmN0aW9uIGZ1bGZpbGxlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvci5uZXh0KHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cbiAgICAgICAgZnVuY3Rpb24gcmVqZWN0ZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3JbXCJ0aHJvd1wiXSh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XG4gICAgICAgIGZ1bmN0aW9uIHN0ZXAocmVzdWx0KSB7IHJlc3VsdC5kb25lID8gcmVzb2x2ZShyZXN1bHQudmFsdWUpIDogYWRvcHQocmVzdWx0LnZhbHVlKS50aGVuKGZ1bGZpbGxlZCwgcmVqZWN0ZWQpOyB9XG4gICAgICAgIHN0ZXAoKGdlbmVyYXRvciA9IGdlbmVyYXRvci5hcHBseSh0aGlzQXJnLCBfYXJndW1lbnRzIHx8IFtdKSkubmV4dCgpKTtcbiAgICB9KTtcbn07XG4vKiogRW1wdHkgZm9yIGByZXF1aXJlZGA6IHVuZGVmaW5lZCAvIG51bGwgLyAnJyAvIGVtcHR5IGFycmF5LiAqL1xuZnVuY3Rpb24gaXNFbXB0eVZhbHVlKHZhbHVlKSB7XG4gICAgcmV0dXJuICh2YWx1ZSA9PT0gdW5kZWZpbmVkIHx8XG4gICAgICAgIHZhbHVlID09PSBudWxsIHx8XG4gICAgICAgIHZhbHVlID09PSAnJyB8fFxuICAgICAgICAoQXJyYXkuaXNBcnJheSh2YWx1ZSkgJiYgdmFsdWUubGVuZ3RoID09PSAwKSk7XG59XG4vKipcbiAqIEZpbHRlciBydWxlcyBhcHBsaWNhYmxlIHRvIGFuIGludGVyYWN0aXZlIHRyaWdnZXIuIEEgcnVsZSBXSVRIT1VUIGFuXG4gKiBleHBsaWNpdCBgdmFsaWRhdGVUcmlnZ2VyYCBmb2xsb3dzIHRoZSBmb3JtLWxldmVsIHRyaWdnZXI7IGEgcnVsZSBXSVRIIG9uZVxuICogcnVucyBvbiBleGFjdGx5IHRob3NlIHRyaWdnZXIocyksIHJlZ2FyZGxlc3Mgb2YgdGhlIGZvcm0tbGV2ZWwgc2V0dGluZy5cbiAqIFN1Ym1pdC10aW1lIHZhbGlkYXRpb24gYnlwYXNzZXMgdGhpcyBmaWx0ZXIgYW5kIHJ1bnMgZXZlcnkgcnVsZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGZpbHRlclJ1bGVzQnlUcmlnZ2VyKHJ1bGVzLCB0cmlnZ2VyLCBmb3JtVHJpZ2dlcikge1xuICAgIHJldHVybiBydWxlcy5maWx0ZXIoKHJ1bGUpID0+IHtcbiAgICAgICAgY29uc3QgcnVsZVRyaWdnZXIgPSBydWxlLnZhbGlkYXRlVHJpZ2dlcjtcbiAgICAgICAgaWYgKCFydWxlVHJpZ2dlcilcbiAgICAgICAgICAgIHJldHVybiBmb3JtVHJpZ2dlciA9PT0gdHJpZ2dlcjtcbiAgICAgICAgcmV0dXJuIEFycmF5LmlzQXJyYXkocnVsZVRyaWdnZXIpXG4gICAgICAgICAgICA/IHJ1bGVUcmlnZ2VyLmluY2x1ZGVzKHRyaWdnZXIpXG4gICAgICAgICAgICA6IHJ1bGVUcmlnZ2VyID09PSB0cmlnZ2VyO1xuICAgIH0pO1xufVxuLyoqXG4gKiBFdmFsdWF0ZSBldmVyeSBidWlsdC1pbiAobm9uLWB2YWxpZGF0b3JgKSBydWxlIGtpbmQgZm9yIGEgc2luZ2xlIHJ1bGUuXG4gKiBSZXR1cm5zIHRoZSBlcnJvciBtZXNzYWdlIGZvciB0aGUgZmlyc3QgZmFpbGluZyBjaGVjaywgb3IgbnVsbC5cbiAqL1xuZnVuY3Rpb24gY2hlY2tCdWlsdGluUnVsZXMocnVsZSwgdmFsdWUsIG5hbWUpIHtcbiAgICBpZiAocnVsZS5yZXF1aXJlZCAmJiBpc0VtcHR5VmFsdWUodmFsdWUpKSB7XG4gICAgICAgIHJldHVybiBydWxlLm1lc3NhZ2UgfHwgYCR7bmFtZX0gaXMgcmVxdWlyZWRgO1xuICAgIH1cbiAgICAvLyBtaW4vbWF4OiBzdHJpbmcg4oaSIGxlbmd0aCwgYXJyYXkg4oaSIGl0ZW0gY291bnQsIG51bWJlciDihpIgbnVtZXJpYyB2YWx1ZVxuICAgIGlmIChydWxlLm1pbiAhPT0gdW5kZWZpbmVkIHx8IHJ1bGUubWF4ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgbGV0IG1lYXN1cmVkID0gbnVsbDtcbiAgICAgICAgbGV0IHVuaXQgPSAnJztcbiAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgIG1lYXN1cmVkID0gdmFsdWUubGVuZ3RoO1xuICAgICAgICAgICAgdW5pdCA9ICcgY2hhcmFjdGVycyc7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICAgICAgICAgIG1lYXN1cmVkID0gdmFsdWUubGVuZ3RoO1xuICAgICAgICAgICAgdW5pdCA9ICcgaXRlbXMnO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ251bWJlcicgJiYgIU51bWJlci5pc05hTih2YWx1ZSkpIHtcbiAgICAgICAgICAgIG1lYXN1cmVkID0gdmFsdWU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG1lYXN1cmVkICE9PSBudWxsKSB7XG4gICAgICAgICAgICBpZiAocnVsZS5taW4gIT09IHVuZGVmaW5lZCAmJiBtZWFzdXJlZCA8IHJ1bGUubWluKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJ1bGUubWVzc2FnZSB8fCBgJHtuYW1lfSBtdXN0IGJlIGF0IGxlYXN0ICR7cnVsZS5taW59JHt1bml0fWA7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAocnVsZS5tYXggIT09IHVuZGVmaW5lZCAmJiBtZWFzdXJlZCA+IHJ1bGUubWF4KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJ1bGUubWVzc2FnZSB8fCBgJHtuYW1lfSBtdXN0IGJlIG5vIG1vcmUgdGhhbiAke3J1bGUubWF4fSR7dW5pdH1gO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIGlmIChydWxlLnBhdHRlcm4gJiYgdHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJyAmJiAhcnVsZS5wYXR0ZXJuLnRlc3QodmFsdWUpKSB7XG4gICAgICAgIHJldHVybiBydWxlLm1lc3NhZ2UgfHwgYCR7bmFtZX0gZm9ybWF0IGlzIGludmFsaWRgO1xuICAgIH1cbiAgICBpZiAocnVsZS5lbnVtICYmIEFycmF5LmlzQXJyYXkocnVsZS5lbnVtKSAmJiB2YWx1ZSkge1xuICAgICAgICBpZiAoIXJ1bGUuZW51bS5pbmNsdWRlcyh2YWx1ZSkpIHtcbiAgICAgICAgICAgIHJldHVybiBydWxlLm1lc3NhZ2UgfHwgYCR7bmFtZX0gbXVzdCBiZSBvbmUgb2YgJHtydWxlLmVudW0uam9pbignLCAnKX1gO1xuICAgICAgICB9XG4gICAgfVxuICAgIGlmIChydWxlLnR5cGUgPT09ICdudW1iZXInICYmIHZhbHVlICE9PSB1bmRlZmluZWQgJiYgdmFsdWUgIT09IG51bGwgJiYgdmFsdWUgIT09ICcnKSB7XG4gICAgICAgIGlmICh0eXBlb2YgdmFsdWUgIT09ICdudW1iZXInIHx8IGlzTmFOKHZhbHVlKSkge1xuICAgICAgICAgICAgcmV0dXJuIHJ1bGUubWVzc2FnZSB8fCBgJHtuYW1lfSBtdXN0IGJlIGEgbnVtYmVyYDtcbiAgICAgICAgfVxuICAgIH1cbiAgICBpZiAocnVsZS50eXBlID09PSAnZW1haWwnICYmIHZhbHVlKSB7XG4gICAgICAgIGNvbnN0IGVtYWlsUGF0dGVybiA9IC9eW15cXHNAXStAW15cXHNAXStcXC5bXlxcc0BdKyQvO1xuICAgICAgICBpZiAoIWVtYWlsUGF0dGVybi50ZXN0KFN0cmluZyh2YWx1ZSkpKSB7XG4gICAgICAgICAgICByZXR1cm4gcnVsZS5tZXNzYWdlIHx8IGAke25hbWV9IG11c3QgYmUgYSB2YWxpZCBlbWFpbGA7XG4gICAgICAgIH1cbiAgICB9XG4gICAgaWYgKHJ1bGUudHlwZSA9PT0gJ3VybCcgJiYgdmFsdWUpIHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIG5ldyBVUkwoU3RyaW5nKHZhbHVlKSk7XG4gICAgICAgIH1cbiAgICAgICAgY2F0Y2ggKF9hKSB7XG4gICAgICAgICAgICByZXR1cm4gcnVsZS5tZXNzYWdlIHx8IGAke25hbWV9IG11c3QgYmUgYSB2YWxpZCBVUkxgO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xufVxuLyoqXG4gKiBTeW5jaHJvbm91cyBydWxlIHJ1bi4gQ3VzdG9tIHZhbGlkYXRvcnMgYXJlIGludm9rZWQgYnV0IE5PVCBhd2FpdGVkIOKAlCBhXG4gKiBwcm9taXNlLXJldHVybmluZyB2YWxpZGF0b3IgaXMgdHJlYXRlZCBhcyBmYWlsaW5nIChtYXRjaGVzIHRoZSBsZWdhY3kgc3luY1xuICogYHZhbGlkYXRlRmllbGRgIGJlaGF2aW91cikuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBydW5SdWxlc1N5bmMobmFtZSwgdmFsdWUsIHZhbHVlcywgcnVsZXMpIHtcbiAgICBsZXQgd2FybmluZyA9IG51bGw7XG4gICAgZm9yIChjb25zdCBydWxlIG9mIHJ1bGVzKSB7XG4gICAgICAgIGxldCBmYWlsdXJlID0gY2hlY2tCdWlsdGluUnVsZXMocnVsZSwgdmFsdWUsIG5hbWUpO1xuICAgICAgICBpZiAoZmFpbHVyZSA9PT0gbnVsbCAmJiB0eXBlb2YgcnVsZS52YWxpZGF0b3IgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0gcnVsZS52YWxpZGF0b3IodmFsdWUsIHZhbHVlcyk7XG4gICAgICAgICAgICAgICAgaWYgKHJlc3VsdCAhPT0gdHJ1ZSkge1xuICAgICAgICAgICAgICAgICAgICBmYWlsdXJlID0gdHlwZW9mIHJlc3VsdCA9PT0gJ3N0cmluZycgPyByZXN1bHQgOiAnVmFsaWRhdGlvbiBmYWlsZWQnO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhdGNoIChlcnIpIHtcbiAgICAgICAgICAgICAgICBmYWlsdXJlID0gZXJyIGluc3RhbmNlb2YgRXJyb3IgPyBlcnIubWVzc2FnZSA6ICdWYWxpZGF0aW9uIGVycm9yJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAoZmFpbHVyZSAhPT0gbnVsbCkge1xuICAgICAgICAgICAgaWYgKHJ1bGUud2FybmluZ09ubHkpIHtcbiAgICAgICAgICAgICAgICB3YXJuaW5nID0gd2FybmluZyAhPT0gbnVsbCAmJiB3YXJuaW5nICE9PSB2b2lkIDAgPyB3YXJuaW5nIDogZmFpbHVyZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiB7IGVycm9yOiBmYWlsdXJlLCB3YXJuaW5nIH07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHsgZXJyb3I6IG51bGwsIHdhcm5pbmcgfTtcbn1cbi8qKlxuICogQXN5bmNocm9ub3VzIHJ1bGUgcnVuLiBDdXN0b20gdmFsaWRhdG9ycyBhcmUgYXdhaXRlZCAoc3luYyBvciBhc3luYykuIEFcbiAqIHZhbGlkYXRvciByZXR1cm5pbmcgYHVuZGVmaW5lZGAgaXMgdHJlYXRlZCBhcyBwYXNzaW5nLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcnVuUnVsZXNBc3luYyhuYW1lLCB2YWx1ZSwgdmFsdWVzLCBydWxlcykge1xuICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgIGxldCB3YXJuaW5nID0gbnVsbDtcbiAgICAgICAgZm9yIChjb25zdCBydWxlIG9mIHJ1bGVzKSB7XG4gICAgICAgICAgICBsZXQgZmFpbHVyZSA9IGNoZWNrQnVpbHRpblJ1bGVzKHJ1bGUsIHZhbHVlLCBuYW1lKTtcbiAgICAgICAgICAgIGlmIChmYWlsdXJlID09PSBudWxsICYmIHR5cGVvZiBydWxlLnZhbGlkYXRvciA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IHlpZWxkIFByb21pc2UucmVzb2x2ZShydWxlLnZhbGlkYXRvcih2YWx1ZSwgdmFsdWVzKSk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChyZXN1bHQgIT09IHRydWUgJiYgcmVzdWx0ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZhaWx1cmUgPSB0eXBlb2YgcmVzdWx0ID09PSAnc3RyaW5nJyA/IHJlc3VsdCA6ICdWYWxpZGF0aW9uIGZhaWxlZCc7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY2F0Y2ggKGVycikge1xuICAgICAgICAgICAgICAgICAgICBmYWlsdXJlID0gZXJyIGluc3RhbmNlb2YgRXJyb3IgPyBlcnIubWVzc2FnZSA6ICdWYWxpZGF0aW9uIGVycm9yJztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZmFpbHVyZSAhPT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIGlmIChydWxlLndhcm5pbmdPbmx5KSB7XG4gICAgICAgICAgICAgICAgICAgIHdhcm5pbmcgPSB3YXJuaW5nICE9PSBudWxsICYmIHdhcm5pbmcgIT09IHZvaWQgMCA/IHdhcm5pbmcgOiBmYWlsdXJlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHsgZXJyb3I6IGZhaWx1cmUsIHdhcm5pbmcgfTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHsgZXJyb3I6IG51bGwsIHdhcm5pbmcgfTtcbiAgICB9KTtcbn0iLG51bGxdLCJzb3VyY2VSb290IjoiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjIn0=
|
|
@@ -5,17 +5,26 @@ export interface UseFormItemOptions {
|
|
|
5
5
|
rules?: Rule[];
|
|
6
6
|
required?: boolean;
|
|
7
7
|
validateStatus?: ValidateStatus;
|
|
8
|
+
/** Prop name the controlled value is injected under (e.g. `checked` for Switch/Checkbox). */
|
|
9
|
+
valuePropName?: string;
|
|
10
|
+
/** Debounce (ms) applied to onChange-triggered validation. */
|
|
11
|
+
validateDebounce?: number;
|
|
8
12
|
}
|
|
9
13
|
export interface UseFormItemReturn {
|
|
10
14
|
fieldValue: unknown;
|
|
11
15
|
fieldError: string | undefined;
|
|
16
|
+
fieldWarning: string | undefined;
|
|
12
17
|
fieldValidating: boolean;
|
|
13
18
|
validateStatus: ValidateStatus | undefined;
|
|
14
19
|
isRequired: boolean;
|
|
15
20
|
size: FormSize;
|
|
16
21
|
labelAlign: LabelAlign;
|
|
17
22
|
requiredMark: boolean;
|
|
18
|
-
/**
|
|
23
|
+
/**
|
|
24
|
+
* Clone a form-component child injecting value/onChange/onBlur/status.
|
|
25
|
+
* Form `size` is intentionally NOT injected — it only controls item spacing;
|
|
26
|
+
* control sizes are set per-field. Non-form children pass through unchanged.
|
|
27
|
+
*/
|
|
19
28
|
injectField: (child: ReactNode) => ReactNode;
|
|
20
29
|
}
|
|
21
30
|
export declare function useFormItem(options: UseFormItemOptions): UseFormItemReturn;
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
|
|
1
2
|
import _typeof from "@babel/runtime/helpers/esm/typeof";
|
|
2
3
|
import _regeneratorRuntime from "@babel/runtime/regenerator";
|
|
3
4
|
var __awaiter = this && this.__awaiter || function (thisArg, _arguments, P, generator) {
|
|
@@ -27,14 +28,31 @@ var __awaiter = this && this.__awaiter || function (thisArg, _arguments, P, gene
|
|
|
27
28
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
28
29
|
});
|
|
29
30
|
};
|
|
30
|
-
import React, { useEffect } from 'react';
|
|
31
|
+
import React, { useEffect, useRef } from 'react';
|
|
31
32
|
import useEventCallback from '@1money/hooks/useEventCallback';
|
|
33
|
+
import useDebouncedCallback from '@1money/hooks/useDebouncedCallback';
|
|
32
34
|
import { useProFormContext } from '../context';
|
|
33
35
|
import { getNestedValue } from './pathUtils';
|
|
36
|
+
import { filterRulesByTrigger } from './runRules';
|
|
34
37
|
import { FORM_COMPONENT_NAMES, TEXT_LIKE_COMPONENT_NAMES } from './constants';
|
|
35
|
-
/**
|
|
38
|
+
/**
|
|
39
|
+
* Normalise a change-handler argument: unwrap `e.target[valuePropName]` /
|
|
40
|
+
* `e[valuePropName]` (e.g. Checkbox emits `{ checked }`), else `e.target.value`,
|
|
41
|
+
* else pass the value through (e.g. Switch emits the boolean directly).
|
|
42
|
+
*/
|
|
36
43
|
function extractEventValue(e) {
|
|
37
|
-
|
|
44
|
+
var valuePropName = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'value';
|
|
45
|
+
if (e === null || _typeof(e) !== 'object') return e;
|
|
46
|
+
var event = e;
|
|
47
|
+
if (valuePropName !== 'value' && valuePropName in event) {
|
|
48
|
+
return event[valuePropName];
|
|
49
|
+
}
|
|
50
|
+
if ('target' in event && event.target && _typeof(event.target) === 'object') {
|
|
51
|
+
var target = event.target;
|
|
52
|
+
if (valuePropName in target) return target[valuePropName];
|
|
53
|
+
if ('value' in target) return target.value;
|
|
54
|
+
}
|
|
55
|
+
return e;
|
|
38
56
|
}
|
|
39
57
|
export function useFormItem(options) {
|
|
40
58
|
var _this = this;
|
|
@@ -42,10 +60,14 @@ export function useFormItem(options) {
|
|
|
42
60
|
_options$rules = options.rules,
|
|
43
61
|
rules = _options$rules === void 0 ? [] : _options$rules,
|
|
44
62
|
required = options.required,
|
|
45
|
-
validateStatus = options.validateStatus
|
|
63
|
+
validateStatus = options.validateStatus,
|
|
64
|
+
_options$valuePropNam = options.valuePropName,
|
|
65
|
+
valuePropName = _options$valuePropNam === void 0 ? 'value' : _options$valuePropNam,
|
|
66
|
+
validateDebounce = options.validateDebounce;
|
|
46
67
|
var ctx = useProFormContext();
|
|
47
68
|
var values = ctx.values,
|
|
48
69
|
errors = ctx.errors,
|
|
70
|
+
warnings = ctx.warnings,
|
|
49
71
|
validating = ctx.validating,
|
|
50
72
|
setFieldValue = ctx.setFieldValue,
|
|
51
73
|
validateField = ctx.validateField,
|
|
@@ -60,42 +82,95 @@ export function useFormItem(options) {
|
|
|
60
82
|
return rule.required;
|
|
61
83
|
}));
|
|
62
84
|
var fieldValue = name ? name.includes('.') ? getNestedValue(values, name) : values[name] : undefined;
|
|
63
|
-
|
|
85
|
+
// Errors/warnings are stored FLAT, keyed by the full (possibly dotted) field
|
|
86
|
+
// name — never resolve them as nested paths or dotted names would miss.
|
|
87
|
+
var fieldError = name ? errors[name] : undefined;
|
|
88
|
+
var fieldWarning = name ? warnings[name] : undefined;
|
|
64
89
|
var fieldValidating = name ? validating[name] || false : false;
|
|
65
|
-
var finalStatus = validateStatus || (fieldError ? 'error' : undefined);
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
90
|
+
var finalStatus = validateStatus || (fieldError ? 'error' : fieldWarning ? 'warning' : undefined);
|
|
91
|
+
// Run only the rules applicable to the given interactive trigger; rules
|
|
92
|
+
// without an explicit validateTrigger follow the form-level setting.
|
|
93
|
+
var runValidate = useEventCallback(function (value, trigger) {
|
|
94
|
+
if (!name || rules.length === 0) return true;
|
|
95
|
+
var applicable = filterRulesByTrigger(rules, trigger, validateTrigger);
|
|
96
|
+
if (applicable.length === 0) return true;
|
|
97
|
+
return validateField(name, applicable, value);
|
|
69
98
|
});
|
|
70
|
-
var runValidateAsync = useEventCallback(function (value) {
|
|
99
|
+
var runValidateAsync = useEventCallback(function (value, trigger) {
|
|
71
100
|
return __awaiter(_this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime.mark(function _callee() {
|
|
101
|
+
var applicable;
|
|
72
102
|
return _regeneratorRuntime.wrap(function (_context) {
|
|
73
103
|
while (1) switch (_context.prev = _context.next) {
|
|
74
104
|
case 0:
|
|
75
|
-
if (!(name
|
|
105
|
+
if (!(!name || rules.length === 0)) {
|
|
76
106
|
_context.next = 1;
|
|
77
107
|
break;
|
|
78
108
|
}
|
|
79
|
-
_context.
|
|
80
|
-
return validateFieldAsync(name, value, rules);
|
|
109
|
+
return _context.abrupt("return");
|
|
81
110
|
case 1:
|
|
111
|
+
applicable = filterRulesByTrigger(rules, trigger, validateTrigger);
|
|
112
|
+
if (!(applicable.length === 0)) {
|
|
113
|
+
_context.next = 2;
|
|
114
|
+
break;
|
|
115
|
+
}
|
|
116
|
+
return _context.abrupt("return");
|
|
117
|
+
case 2:
|
|
118
|
+
_context.next = 3;
|
|
119
|
+
return validateFieldAsync(name, value, applicable);
|
|
120
|
+
case 3:
|
|
82
121
|
case "end":
|
|
83
122
|
return _context.stop();
|
|
84
123
|
}
|
|
85
124
|
}, _callee);
|
|
86
125
|
}));
|
|
87
126
|
});
|
|
127
|
+
var _useDebouncedCallback = useDebouncedCallback(function (value) {
|
|
128
|
+
runValidate(value, 'onChange');
|
|
129
|
+
}, validateDebounce),
|
|
130
|
+
debouncedValidate = _useDebouncedCallback.run;
|
|
88
131
|
var handleChange = useEventCallback(function (value) {
|
|
89
132
|
if (name) {
|
|
90
133
|
setFieldValue(name, value);
|
|
91
|
-
if (
|
|
134
|
+
if (validateDebounce && validateDebounce > 0) {
|
|
135
|
+
debouncedValidate(value);
|
|
136
|
+
} else {
|
|
137
|
+
runValidate(value, 'onChange');
|
|
138
|
+
}
|
|
92
139
|
}
|
|
93
140
|
});
|
|
94
141
|
var handleBlur = useEventCallback(function () {
|
|
95
|
-
|
|
142
|
+
runValidateAsync(fieldValue, 'onBlur');
|
|
143
|
+
});
|
|
144
|
+
// Latest child-provided callbacks, captured at injectField time. The STABLE
|
|
145
|
+
// injected handlers below delegate through this ref instead of being
|
|
146
|
+
// recreated per render — so a memoized field component sees shallow-equal
|
|
147
|
+
// props across renders and can bail out while another field is typing.
|
|
148
|
+
var childCallbacksRef = useRef({});
|
|
149
|
+
var injectedOnChange = useEventCallback(function (e) {
|
|
150
|
+
var _b2;
|
|
151
|
+
var _a, _b;
|
|
152
|
+
handleChange(extractEventValue(e, valuePropName));
|
|
153
|
+
for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
|
|
154
|
+
args[_key - 1] = arguments[_key];
|
|
155
|
+
}
|
|
156
|
+
(_b = (_a = childCallbacksRef.current).onChange) === null || _b === void 0 ? void 0 : (_b2 = _b).call.apply(_b2, [_a, e].concat(args));
|
|
157
|
+
});
|
|
158
|
+
var injectedOnBlur = useEventCallback(function () {
|
|
159
|
+
var _b3;
|
|
160
|
+
var _a, _b;
|
|
161
|
+
handleBlur();
|
|
162
|
+
for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
|
|
163
|
+
args[_key2] = arguments[_key2];
|
|
164
|
+
}
|
|
165
|
+
(_b = (_a = childCallbacksRef.current).onBlur) === null || _b === void 0 ? void 0 : (_b3 = _b).call.apply(_b3, [_a].concat(args));
|
|
96
166
|
});
|
|
167
|
+
// Keep the registry in sync with the LATEST rules every render (registration
|
|
168
|
+
// is a cheap ref mutation): dynamic rules (e.g. required toggled by another
|
|
169
|
+
// field) must be visible to submit-time validation, not just onChange.
|
|
97
170
|
useEffect(function () {
|
|
98
171
|
if (name && registerField) registerField(name, rules);
|
|
172
|
+
});
|
|
173
|
+
useEffect(function () {
|
|
99
174
|
return function () {
|
|
100
175
|
if (name && unregisterField) unregisterField(name);
|
|
101
176
|
};
|
|
@@ -105,37 +180,23 @@ export function useFormItem(options) {
|
|
|
105
180
|
if (!name || ! /*#__PURE__*/React.isValidElement(child)) return child;
|
|
106
181
|
var childProps = child.props;
|
|
107
182
|
var displayName = (_a = child.type) === null || _a === void 0 ? void 0 : _a.displayName;
|
|
108
|
-
var isFormComponent = FORM_COMPONENT_NAMES.includes(displayName) || childProps.placeholder !== undefined || childProps.value !== undefined;
|
|
183
|
+
var isFormComponent = FORM_COMPONENT_NAMES.includes(displayName) || childProps.placeholder !== undefined || childProps.value !== undefined || childProps[valuePropName] !== undefined;
|
|
109
184
|
if (!isFormComponent) return child;
|
|
110
185
|
var safeValue = fieldValue;
|
|
111
186
|
if (safeValue === null || safeValue === undefined) {
|
|
112
|
-
if (
|
|
113
|
-
safeValue = '';
|
|
114
|
-
} else if (['Checkbox', 'Switch'].includes(displayName || '')) {
|
|
187
|
+
if (valuePropName === 'checked' || ['Checkbox', 'Switch'].includes(displayName || '')) {
|
|
115
188
|
safeValue = false;
|
|
189
|
+
} else if (TEXT_LIKE_COMPONENT_NAMES.includes(displayName || '') || childProps.placeholder !== undefined) {
|
|
190
|
+
safeValue = '';
|
|
116
191
|
}
|
|
117
192
|
} else if (TEXT_LIKE_COMPONENT_NAMES.includes(displayName || '') && typeof safeValue !== 'string' && typeof safeValue !== 'number') {
|
|
118
193
|
safeValue = '';
|
|
119
194
|
}
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
|
|
126
|
-
args[_key - 1] = arguments[_key];
|
|
127
|
-
}
|
|
128
|
-
childProps.onChange.apply(childProps, [e].concat(args));
|
|
129
|
-
}
|
|
130
|
-
},
|
|
131
|
-
onBlur: function onBlur() {
|
|
132
|
-
handleBlur();
|
|
133
|
-
if (typeof childProps.onBlur === 'function') {
|
|
134
|
-
childProps.onBlur.apply(childProps, arguments);
|
|
135
|
-
}
|
|
136
|
-
},
|
|
137
|
-
size: childProps.size || size
|
|
138
|
-
}, finalStatus === 'error' && {
|
|
195
|
+
childCallbacksRef.current = {
|
|
196
|
+
onChange: typeof childProps.onChange === 'function' ? childProps.onChange : undefined,
|
|
197
|
+
onBlur: typeof childProps.onBlur === 'function' ? childProps.onBlur : undefined
|
|
198
|
+
};
|
|
199
|
+
var injectedProps = Object.assign(_defineProperty(_defineProperty(_defineProperty({}, valuePropName, safeValue), "onChange", injectedOnChange), "onBlur", injectedOnBlur), finalStatus === 'error' && {
|
|
139
200
|
status: 'error'
|
|
140
201
|
});
|
|
141
202
|
return /*#__PURE__*/React.cloneElement(child, injectedProps);
|
|
@@ -143,6 +204,7 @@ export function useFormItem(options) {
|
|
|
143
204
|
return {
|
|
144
205
|
fieldValue: fieldValue,
|
|
145
206
|
fieldError: fieldError,
|
|
207
|
+
fieldWarning: fieldWarning,
|
|
146
208
|
fieldValidating: fieldValidating,
|
|
147
209
|
validateStatus: finalStatus,
|
|
148
210
|
isRequired: isRequired,
|
|
@@ -152,4 +214,4 @@ export function useFormItem(options) {
|
|
|
152
214
|
injectField: injectField
|
|
153
215
|
};
|
|
154
216
|
}
|
|
155
|
-
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvUHJvRm9ybS9jb3JlL3VzZUZvcm1JdGVtLmpzIiwiY29tcG9uZW50cy9Qcm9Gb3JtL3NyYy9jb21wb25lbnRzL1Byb0Zvcm0vY29yZS91c2VGb3JtSXRlbS50cyJdLCJuYW1lcyI6WyJfX2F3YWl0ZXIiLCJ0aGlzQXJnIiwiX2FyZ3VtZW50cyIsIlAiLCJnZW5lcmF0b3IiLCJhZG9wdCIsInZhbHVlIiwicmVzb2x2ZSIsIlByb21pc2UiLCJyZWplY3QiLCJmdWxmaWxsZWQiLCJzdGVwIiwibmV4dCIsImUiLCJyZWplY3RlZCIsInJlc3VsdCIsImRvbmUiLCJ0aGVuIiwiYXBwbHkiLCJSZWFjdCIsInVzZUVmZmVjdCIsInVzZUV2ZW50Q2FsbGJhY2siLCJ1c2VQcm9Gb3JtQ29udGV4dCIsImdldE5lc3RlZFZhbHVlIiwiRk9STV9DT01QT05FTlRfTkFNRVMiLCJURVhUX0xJS0VfQ09NUE9ORU5UX05BTUVTIiwiZXh0cmFjdEV2ZW50VmFsdWUiLCJfdHlwZW9mIiwidGFyZ2V0IiwidXNlRm9ybUl0ZW0iLCJvcHRpb25zIiwiX3RoaXMiLCJuYW1lIiwiX29wdGlvbnMkcnVsZXMiLCJydWxlcyIsInJlcXVpcmVkIiwidmFsaWRhdGVTdGF0dXMiLCJjdHgiLCJ2YWx1ZXMiLCJlcnJvcnMiLCJ2YWxpZGF0aW5nIiwic2V0RmllbGRWYWx1ZSIsInZhbGlkYXRlRmllbGQiLCJ2YWxpZGF0ZUZpZWxkQXN5bmMiLCJyZWdpc3RlckZpZWxkIiwidW5yZWdpc3RlckZpZWxkIiwic2l6ZSIsImxhYmVsQWxpZ24iLCJyZXF1aXJlZE1hcmsiLCJ2YWxpZGF0ZVRyaWdnZXIiLCJpc1JlcXVpcmVkIiwiQm9vbGVhbiIsInNvbWUiLCJydWxlIiwiZmllbGRWYWx1ZSIsImluY2x1ZGVzIiwidW5kZWZpbmVkIiwiZmllbGRFcnJvciIsImZpZWxkVmFsaWRhdGluZyIsImZpbmFsU3RhdHVzIiwicnVuVmFsaWRhdGUiLCJsZW5ndGgiLCJydW5WYWxpZGF0ZUFzeW5jIiwiX3JlZ2VuZXJhdG9yUnVudGltZSIsIm1hcmsiLCJfY2FsbGVlIiwid3JhcCIsIl9jb250ZXh0IiwicHJldiIsInN0b3AiLCJoYW5kbGVDaGFuZ2UiLCJoYW5kbGVCbHVyIiwiaW5qZWN0RmllbGQiLCJjaGlsZCIsIl9hIiwiaXNWYWxpZEVsZW1lbnQiLCJjaGlsZFByb3BzIiwicHJvcHMiLCJkaXNwbGF5TmFtZSIsInR5cGUiLCJpc0Zvcm1Db21wb25lbnQiLCJwbGFjZWhvbGRlciIsInNhZmVWYWx1ZSIsImluamVjdGVkUHJvcHMiLCJPYmplY3QiLCJhc3NpZ24iLCJvbkNoYW5nZSIsIl9sZW4iLCJhcmd1bWVudHMiLCJhcmdzIiwiQXJyYXkiLCJfa2V5IiwiY29uY2F0Iiwib25CbHVyIiwic3RhdHVzIiwiY2xvbmVFbGVtZW50Il0sIm1hcHBpbmdzIjoiOztBQUFBLElBQUlBLFNBQVMsR0FBSSxJQUFJLElBQUksSUFBSSxDQUFDQSxTQUFTLElBQUssVUFBVUMsT0FBTyxFQUFFQyxVQUFVLEVBQUVDLENBQUMsRUFBRUMsU0FBUyxFQUFFO0VBQ3JGLFNBQVNDLEtBQUtBLENBQUNDLEtBQUssRUFBRTtJQUFFLE9BQU9BLEtBQUssWUFBWUgsQ0FBQyxHQUFHRyxLQUFLLEdBQUcsSUFBSUgsQ0FBQyxDQUFDLFVBQVVJLE9BQU8sRUFBRTtNQUFFQSxPQUFPLENBQUNELEtBQUssQ0FBQztJQUFFLENBQUMsQ0FBQztFQUFFO0VBQzNHLE9BQU8sS0FBS0gsQ0FBQyxLQUFLQSxDQUFDLEdBQUdLLE9BQU8sQ0FBQyxFQUFFLFVBQVVELE9BQU8sRUFBRUUsTUFBTSxFQUFFO0lBQ3ZELFNBQVNDLFNBQVNBLENBQUNKLEtBQUssRUFBRTtNQUFFLElBQUk7UUFBRUssSUFBSSxDQUFDUCxTQUFTLENBQUNRLElBQUksQ0FBQ04sS0FBSyxDQUFDLENBQUM7TUFBRSxDQUFDLENBQUMsT0FBT08sQ0FBQyxFQUFFO1FBQUVKLE1BQU0sQ0FBQ0ksQ0FBQyxDQUFDO01BQUU7SUFBRTtJQUMxRixTQUFTQyxRQUFRQSxDQUFD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QUEsT0FBQUEsSUFBQSxXQUFBSSxJQUFBLE1BQUFBLElBQUEsR0FBQUosSUFBQSxFQUFBSSxJQUFBO1lBQWZGLElBQWUsQ0FBQUUsSUFBQSxRQUFBSCxTQUFBLENBQUFHLElBQUE7VUFBQTtVQUdwQ2YsVUFBVSxDQUFDVSxRQUFzQyxDQUFBcEUsS0FBQSxDQUFqRDBELFVBQVUsR0FBd0MvRCxDQUFDLEVBQUErRSxNQUFBLENBQUtILElBQUksRUFBQztRQUNoRTtNQUNGLENBQUM7TUFDREksTUFBTSxFQUFFLFNBQVJBLE1BQU1BLENBQUEsRUFBeUI7UUFDN0J0QixVQUFVLENBQUEsQ0FBRTtRQUNaLElBQUksT0FBT0ssVUFBVSxDQUFDaUIsTUFBTSxLQUFLLFVBQVUsRUFBRTtVQUMxQ2pCLFVBQVUsQ0FBQ2lCLE1BQW9DLENBQUEzRSxLQUFBLENBQS9DMEQsVUFBVSxFQUFBWSxTQUE2QyxDQUFDO1FBQzNEO01BQ0YsQ0FBQztNQUNEMUMsSUFBSSxFQUFFOEIsVUFBVSxDQUFDOUIsSUFBSSxJQUFJQTtJQUFJLENBQUEsRUFDekJhLFdBQVcsS0FBSyxPQUFPLElBQUk7TUFBRW1DLE1BQU0sRUFBRTtJQUFPLENBQUcsQ0FDcEQ7SUFFRCxvQkFBTzNFLEtBQUssQ0FBQzRFLFlBQVksQ0FBQ3RCLEtBQUssRUFBRVUsYUFBYSxDQUFDO0VBQ2pELENBQUM7RUFFRCxPQUFPO0lBQ0w3QixVQUFVLEVBQVZBLFVBQVU7SUFDVkcsVUFBVSxFQUFWQSxVQUFVO0lBQ1ZDLGVBQWUsRUFBZkEsZUFBZTtJQUNmdEIsY0FBYyxFQUFFdUIsV0FBVztJQUMzQlQsVUFBVSxFQUFWQSxVQUFVO0lBQ1ZKLElBQUksRUFBSkEsSUFBSTtJQUNKQyxVQUFVLEVBQVZBLFVBQVU7SUFDVkMsWUFBWSxFQUFaQSxZQUFZO0lBQ1p3QixXQUFXLEVBQVhBO0VEMUNBLENDMkNEO0FBQ0giLCJmaWxlIjoiY29tcG9uZW50cy9Qcm9Gb3JtL2NvcmUvdXNlRm9ybUl0ZW0uanMiLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgX19hd2FpdGVyID0gKHRoaXMgJiYgdGhpcy5fX2F3YWl0ZXIpIHx8IGZ1bmN0aW9uICh0aGlzQXJnLCBfYXJndW1lbnRzLCBQLCBnZW5lcmF0b3IpIHtcbiAgICBmdW5jdGlvbiBhZG9wdCh2YWx1ZSkgeyByZXR1cm4gdmFsdWUgaW5zdGFuY2VvZiBQID8gdmFsdWUgOiBuZXcgUChmdW5jdGlvbiAocmVzb2x2ZSkgeyByZXNvbHZlKHZhbHVlKTsgfSk7IH1cbiAgICByZXR1cm4gbmV3IChQIHx8IChQID0gUHJvbWlzZSkpKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHtcbiAgICAgICAgZnVuY3Rpb24gZnVsZmlsbGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yLm5leHQodmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxuICAgICAgICBmdW5jdGlvbiByZWplY3RlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvcltcInRocm93XCJdKHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cbiAgICAgICAgZnVuY3Rpb24gc3RlcChyZXN1bHQpIHsgcmVzdWx0LmRvbmUgPyByZXNvbHZlKHJlc3VsdC52YWx1ZSkgOiBhZG9wdChyZXN1bHQudmFsdWUpLnRoZW4oZnVsZmlsbGVkLCByZWplY3RlZCk7IH1cbiAgICAgICAgc3RlcCgoZ2VuZXJhdG9yID0gZ2VuZXJhdG9yLmFwcGx5KHRoaXNBcmcsIF9hcmd1bWVudHMgfHwgW10pKS5uZXh0KCkpO1xuICAgIH0pO1xufTtcbmltcG9ydCBSZWFjdCwgeyB1c2VFZmZlY3QgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgdXNlRXZlbnRDYWxsYmFjayBmcm9tICdAMW1vbmV5L2hvb2tzL3VzZUV2ZW50Q2FsbGJhY2snO1xuaW1wb3J0IHsgdXNlUHJvRm9ybUNvbnRleHQgfSBmcm9tICcuLi9jb250ZXh0JztcbmltcG9ydCB7IGdldE5lc3RlZFZhbHVlIH0gZnJvbSAnLi9wYXRoVXRpbHMnO1xuaW1wb3J0IHsgRk9STV9DT01QT05FTlRfTkFNRVMsIFRFWFRfTElLRV9DT01QT05FTlRfTkFNRVMgfSBmcm9tICcuL2NvbnN0YW50cyc7XG4vKiogTm9ybWFsaXNlIGEgY2hhbmdlLWhhbmRsZXIgYXJndW1lbnQ6IHVud3JhcCBgZS50YXJnZXQudmFsdWVgLCBlbHNlIHBhc3MgdGhlIHZhbHVlIHRocm91Z2guICovXG5mdW5jdGlvbiBleHRyYWN0RXZlbnRWYWx1ZShlKSB7XG4gICAgcmV0dXJuIGUgJiYgdHlwZW9mIGUgPT09ICdvYmplY3QnICYmICd0YXJnZXQnIGluIGVcbiAgICAgICAgPyBlLnRhcmdldC52YWx1ZVxuICAgICAgICA6IGU7XG59XG5leHBvcnQgZnVuY3Rpb24gdXNlRm9ybUl0ZW0ob3B0aW9ucykge1xuICAgIGNvbnN0IHsgbmFtZSwgcnVsZXMgPSBbXSwgcmVxdWlyZWQsIHZhbGlkYXRlU3RhdHVzIH0gPSBvcHRpb25zO1xuICAgIGNvbnN0IGN0eCA9IHVzZVByb0Zvcm1Db250ZXh0KCk7XG4gICAgY29uc3QgeyB2YWx1ZXMsIGVycm9ycywgdmFsaWRhdGluZywgc2V0RmllbGRWYWx1ZSwgdmFsaWRhdGVGaWVsZCwgdmFsaWRhdGVGaWVsZEFzeW5jLCByZWdpc3RlckZpZWxkLCB1bnJlZ2lzdGVyRmllbGQsIHNpemUsIGxhYmVsQWxpZ24sIHJlcXVpcmVkTWFyaywgdmFsaWRhdGVUcmlnZ2VyLCB9ID0gY3R4O1xuICAgIGNvbnN0IGlzUmVxdWlyZWQgPSBCb29sZWFuKHJlcXVpcmVkIHx8IHJ1bGVzLnNvbWUoKHJ1bGUpID0+IHJ1bGUucmVxdWlyZWQpKTtcbiAgICBjb25zdCBmaWVsZFZhbHVlID0gbmFtZVxuICAgICAgICA/IChuYW1lLmluY2x1ZGVzKCcuJykgPyBnZXROZXN0ZWRWYWx1ZSh2YWx1ZXMsIG5hbWUpIDogdmFsdWVzW25hbWVdKVxuICAgICAgICA6IHVuZGVmaW5lZDtcbiAgICBjb25zdCBmaWVsZEVycm9yID0gbmFtZVxuICAgICAgICA/IChuYW1lLmluY2x1ZGVzKCcuJylcbiAgICAgICAgICAgID8gZ2V0TmVzdGVkVmFsdWUoZXJyb3JzLCBuYW1lKVxuICAgICAgICAgICAgOiBlcnJvcnNbbmFtZV0pXG4gICAgICAgIDogdW5kZWZpbmVkO1xuICAgIGNvbnN0IGZpZWxkVmFsaWRhdGluZyA9IG5hbWUgPyAodmFsaWRhdGluZ1tuYW1lXSB8fCBmYWxzZSkgOiBmYWxzZTtcbiAgICBjb25zdCBmaW5hbFN0YXR1cyA9IHZhbGlkYXRlU3RhdHVzIHx8IChmaWVsZEVycm9yID8gJ2Vycm9yJyA6IHVuZGVmaW5lZCk7XG4gICAgY29uc3QgcnVuVmFsaWRhdGUgPSB1c2VFdmVudENhbGxiYWNrKCh2YWx1ZSkgPT4ge1xuICAgICAgICBpZiAobmFtZSAmJiBydWxlcy5sZW5ndGggPiAwKVxuICAgICAgICAgICAgcmV0dXJuIHZhbGlkYXRlRmllbGQobmFtZSwgcnVsZXMsIHZhbHVlKTtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfSk7XG4gICAgY29uc3QgcnVuVmFsaWRhdGVBc3luYyA9IHVzZUV2ZW50Q2FsbGJhY2soKHZhbHVlKSA9PiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgIGlmIChuYW1lICYmIHJ1bGVzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIHlpZWxkIHZhbGlkYXRlRmllbGRBc3luYyhuYW1lLCB2YWx1ZSwgcnVsZXMpO1xuICAgICAgICB9XG4gICAgfSkpO1xuICAgIGNvbnN0IGhhbmRsZUNoYW5nZSA9IHVzZUV2ZW50Q2FsbGJhY2soKHZhbHVlKSA9PiB7XG4gICAgICAgIGlmIChuYW1lKSB7XG4gICAgICAgICAgICBzZXRGaWVsZFZhbHVlKG5hbWUsIHZhbHVlKTtcbiAgICAgICAgICAgIGlmICh2YWxpZGF0ZVRyaWdnZXIgPT09ICdvbkNoYW5nZScpXG4gICAgICAgICAgICAgICAgcnVuVmFsaWRhdGUodmFsdWUpO1xuICAgICAgICB9XG4gICAgfSk7XG4gICAgY29uc3QgaGFuZGxlQmx1ciA9IHVzZUV2ZW50Q2FsbGJhY2soKCkgPT4ge1xuICAgICAgICBpZiAodmFsaWRhdGVUcmlnZ2VyID09PSAnb25CbHVyJylcbiAgICAgICAgICAgIHJ1blZhbGlkYXRlQXN5bmMoZmllbGRWYWx1ZSk7XG4gICAgfSk7XG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgaWYgKG5hbWUgJiYgcmVnaXN0ZXJGaWVsZClcbiAgICAgICAgICAgIHJlZ2lzdGVyRmllbGQobmFtZSwgcnVsZXMpO1xuICAgICAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgICAgICAgaWYgKG5hbWUgJiYgdW5yZWdpc3RlckZpZWxkKVxuICAgICAgICAgICAgICAgIHVucmVnaXN0ZXJGaWVsZChuYW1lKTtcbiAgICAgICAgfTtcbiAgICB9LCBbbmFtZV0pO1xuICAgIGNvbnN0IGluamVjdEZpZWxkID0gKGNoaWxkKSA9PiB7XG4gICAgICAgIHZhciBfYTtcbiAgICAgICAgaWYgKCFuYW1lIHx8ICFSZWFjdC5pc1ZhbGlkRWxlbWVudChjaGlsZCkpXG4gICAgICAgICAgICByZXR1cm4gY2hpbGQ7XG4gICAgICAgIGNvbnN0IGNoaWxkUHJvcHMgPSBjaGlsZC5wcm9wcztcbiAgICAgICAgY29uc3QgZGlzcGxheU5hbWUgPSAoX2EgPSBjaGlsZC50eXBlKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuZGlzcGxheU5hbWU7XG4gICAgICAgIGNvbnN0IGlzRm9ybUNvbXBvbmVudCA9IEZPUk1fQ09NUE9ORU5UX05BTUVTLmluY2x1ZGVzKGRpc3BsYXlOYW1lKSB8fFxuICAgICAgICAgICAgY2hpbGRQcm9wcy5wbGFjZWhvbGRlciAhPT0gdW5kZWZpbmVkIHx8XG4gICAgICAgICAgICBjaGlsZFByb3BzLnZhbHVlICE9PSB1bmRlZmluZWQ7XG4gICAgICAgIGlmICghaXNGb3JtQ29tcG9uZW50KVxuICAgICAgICAgICAgcmV0dXJuIGNoaWxkO1xuICAgICAgICBsZXQgc2FmZVZhbHVlID0gZmllbGRWYWx1ZTtcbiAgICAgICAgaWYgKHNhZmVWYWx1ZSA9PT0gbnVsbCB8fCBzYWZlVmFsdWUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgaWYgKFRFWFRfTElLRV9DT01QT05FTlRfTkFNRVMuaW5jbHVkZXMoZGlzcGxheU5hbWUgfHwgJycpIHx8XG4gICAgICAgICAgICAgICAgY2hpbGRQcm9wcy5wbGFjZWhvbGRlciAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgc2FmZVZhbHVlID0gJyc7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIGlmIChbJ0NoZWNrYm94JywgJ1N3aXRjaCddLmluY2x1ZGVzKGRpc3BsYXlOYW1lIHx8ICcnKSkge1xuICAgICAgICAgICAgICAgIHNhZmVWYWx1ZSA9IGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKFRFWFRfTElLRV9DT01QT05FTlRfTkFNRVMuaW5jbHVkZXMoZGlzcGxheU5hbWUgfHwgJycpICYmXG4gICAgICAgICAgICB0eXBlb2Ygc2FmZVZhbHVlICE9PSAnc3RyaW5nJyAmJlxuICAgICAgICAgICAgdHlwZW9mIHNhZmVWYWx1ZSAhPT0gJ251bWJlcicpIHtcbiAgICAgICAgICAgIHNhZmVWYWx1ZSA9ICcnO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGluamVjdGVkUHJvcHMgPSBPYmplY3QuYXNzaWduKHsgdmFsdWU6IHNhZmVWYWx1ZSwgb25DaGFuZ2U6IChlLCAuLi5hcmdzKSA9PiB7XG4gICAgICAgICAgICAgICAgaGFuZGxlQ2hhbmdlKGV4dHJhY3RFdmVudFZhbHVlKGUpKTtcbiAgICAgICAgICAgICAgICBpZiAodHlwZW9mIGNoaWxkUHJvcHMub25DaGFuZ2UgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgICAgICAgICAgY2hpbGRQcm9wcy5vbkNoYW5nZShlLCAuLi5hcmdzKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LCBvbkJsdXI6ICguLi5hcmdzKSA9PiB7XG4gICAgICAgICAgICAgICAgaGFuZGxlQmx1cigpO1xuICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgY2hpbGRQcm9wcy5vbkJsdXIgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgICAgICAgICAgY2hpbGRQcm9wcy5vbkJsdXIoLi4uYXJncyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSwgc2l6ZTogY2hpbGRQcm9wcy5zaXplIHx8IHNpemUgfSwgKGZpbmFsU3RhdHVzID09PSAnZXJyb3InICYmIHsgc3RhdHVzOiAnZXJyb3InIH0pKTtcbiAgICAgICAgcmV0dXJuIFJlYWN0LmNsb25lRWxlbWVudChjaGlsZCwgaW5qZWN0ZWRQcm9wcyk7XG4gICAgfTtcbiAgICByZXR1cm4ge1xuICAgICAgICBmaWVsZFZhbHVlLFxuICAgICAgICBmaWVsZEVycm9yLFxuICAgICAgICBmaWVsZFZhbGlkYXRpbmcsXG4gICAgICAgIHZhbGlkYXRlU3RhdHVzOiBmaW5hbFN0YXR1cyxcbiAgICAgICAgaXNSZXF1aXJlZCxcbiAgICAgICAgc2l6ZSxcbiAgICAgICAgbGFiZWxBbGlnbixcbiAgICAgICAgcmVxdWlyZWRNYXJrLFxuICAgICAgICBpbmplY3RGaWVsZCxcbiAgICB9O1xufSIsbnVsbF0sInNvdXJjZVJvb3QiOiIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMifQ==
|
|
217
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvUHJvRm9ybS9jb3JlL3VzZUZvcm1JdGVtLmpzIiwiY29tcG9uZW50cy9Qcm9Gb3JtL3NyYy9jb21wb25lbnRzL1Byb0Zvcm0vY29yZS91c2VGb3JtSXRlbS50cyJdLCJuYW1lcyI6WyJfX2F3YWl0ZXIiLCJ0aGlzQXJnIiwiX2FyZ3VtZW50cyIsIlAiLCJnZW5lcmF0b3IiLCJhZG9wdCIsInZhbHVlIiwicmVzb2x2ZSIsIlByb21pc2UiLCJyZWplY3QiLCJmdWxmaWxsZWQiLCJzdGVwIiwibmV4dCIsImUiLCJyZWplY3RlZCIsInJlc3VsdCIsImRvbmUiLCJ0aGVuIiwiYXBwbHkiLCJSZWFjdCIsInVzZUVmZmVjdCIsInVzZVJlZiIsInVzZUV2ZW50Q2FsbGJhY2siLCJ1c2VEZWJvdW5jZWRDYWxsYmFjayIsInVzZVByb0Zvcm1Db250ZXh0IiwiZ2V0TmVzdGVkVmFsdWUiLCJmaWx0ZXJSdWxlc0J5VHJpZ2dlciIsIkZPUk1fQ09NUE9ORU5UX05BTUVTIiwiVEVYVF9MSUtFX0NPTVBPTkVOVF9OQU1FUyIsImV4dHJhY3RFdmVudFZhbHVlIiwidmFsdWVQcm9wTmFtZSIsImFyZ3VtZW50cyIsImxlbmd0aCIsInVuZGVmaW5lZCIsIl90eXBlb2YiLCJldmVudCIsInRhcmdldCIsInVzZUZvcm1JdGVtIiwib3B0aW9ucyIsIl90aGlzIiwibmFtZSIsIl9vcHRpb25zJHJ1bGVzIiwicnVsZXMiLCJyZXF1aXJlZCIsInZhbGlkYXRlU3RhdHVzIiwiX29wdGlvbnMkdmFsdWVQcm9wTmFtIiwidmFsaWRhdGVEZWJvdW5jZSIsImN0eCIsInZhbHVlcyIsImVycm9ycyIsIndhcm5pbmdzIiwidmFsaWRhdGluZyIsInNldEZpZWxkVmFsdWUiLCJ2YWxpZGF0ZUZpZWxkIiwidmFsaWRhdGVGaWVsZEFzeW5jIiwicmVnaXN0ZXJGaWVsZCIsInVucmVnaXN0ZXJGaWVsZCIsInNpemUiLCJsYWJlbEFsaWduIiwicmVxdWlyZWRNYXJrIiwidmFsaWRhdGVUcmlnZ2VyIiwiaXNSZXF1aXJlZCIsIkJvb2xlYW4iLCJzb21lIiwicnVsZSIsImZpZWxkVmFsdWUiLCJpbmNsdWRlcyIsImZpZWxkRXJyb3IiLCJmaWVsZFdhcm5pbmciLCJmaWVsZFZhbGlkYXRpbmciLCJmaW5hbFN0YXR1cyIsInJ1blZhbGlkYXRlIiwidHJpZ2dlciIsImFwcGxpY2FibGUiLCJydW5WYWxpZGF0ZUFzeW5jIiwiX3JlZ2VuZXJhdG9yUnVudGltZSIsIm1hcmsiLCJfY2FsbGVlIiwid3JhcCIsIl9jb250ZXh0IiwicHJldiIsImFicnVwdCIsInN0b3AiLCJfdXNlRGVib3VuY2VkQ2FsbGJhY2siLCJkZWJvdW5jZWRWYWxpZGF0ZSIsInJ1biIsImhhbmRsZUNoYW5nZSIsImhhbmRsZUJsdXIiLCJjaGlsZENhbGxiYWNrc1JlZiIsImluamVjdGVkT25DaGFuZ2UiLCJfYjIiLCJfYSIsIl9iIiwiX2xlbiIsImFyZ3MiLCJBcnJheSIsIl9rZXkiLCJjdXJyZW50Iiwib25DaGFuZ2UiLCJjYWxsIiwiY29uY2F0IiwiaW5qZWN0ZWRPbkJsdXIiLCJfYjMiLCJfbGVuMiIsIl9rZXkyIiwib25CbHVyIiwiaW5qZWN0RmllbGQiLCJjaGlsZCIsImlzVmFsaWRFbGVtZW50IiwiY2hpbGRQcm9wcyIsInByb3BzIiwiZGlzcGxheU5hbWUiLCJ0eXBlIiwiaXNGb3JtQ29tcG9uZW50IiwicGxhY2Vob2xkZXIiLCJzYWZlVmFsdWUiLCJpbmplY3RlZFByb3BzIiwiT2JqZWN0IiwiYXNzaWduIiwiX2RlZmluZVByb3BlcnR5Iiwic3RhdHVzIiwiY2xvbmVFbGVtZW50Il0sIm1hcHBpbmdzIjoiOzs7QUFBQSxJQUFJQSxTQUFTLEdBQUksSUFBSSxJQUFJLElBQUksQ0FBQ0EsU0FBUyxJQUFLLFVBQVVDLE9BQU8sRUFBRUMsVUFBVSxFQUFFQyxDQUFDLEVBQUVDLFNBQVMsRUFBRTtFQUNyRixTQUFTQyxLQUFLQSxDQUFDQyxLQUFLLEVBQUU7SUFBRSxPQUFPQSxLQUFLLFlBQVlILENBQUMsR0FBR0csS0FB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QixpQkFBaUIsQ0FBQ1MsT0FBTyxHQUFHO01BQzFCQyxRQUFRLEVBQ04sT0FBT1csVUFBVSxDQUFDWCxRQUFRLEtBQUssVUFBVSxHQUNwQ1csVUFBVSxDQUFDWCxRQUFzQyxHQUNsRGpFLFNBQVM7TUFDZndFLE1BQU0sRUFDSixPQUFPSSxVQUFVLENBQUNKLE1BQU0sS0FBSyxVQUFVLEdBQ2xDSSxVQUFVLENBQUNKLE1BQW9DLEdBQ2hEeEU7SUR4REosQ0N5REg7SUFFRCxJQUFNbUYsYUFBYSxHQUFBQyxNQUFBLENBQUFDLE1BQUEsQ0FBQUMsZUFBQSxDQUFBQSxlQUFBLENBQUFBLGVBQUEsS0FDaEJ6RixhQUFhLEVBQUdxRixTQUFTLGVBQ2hCMUIsZ0JBQWdCLGFBQ2xCWSxjQUFjLEdBQ2xCL0IsV0FBVyxLQUFLLE9BQU8sSUFBSTtNQUFFa0QsTUFBTSxFQUFFO0lBQU8sQ0FBRyxDQUNwRDtJQUVELG9CQUFPckcsS0FBSyxDQUFDc0csWUFBWSxDQUFDZCxLQUFLLEVBQUVTLGFBQWEsQ0FBQztFQUNqRCxDQUFDO0VBRUQsT0FBTztJQUNMbkQsVUFBVSxFQUFWQSxVQUFVO0lBQ1ZFLFVBQVUsRUFBVkEsVUFBVTtJQUNWQyxZQUFZLEVBQVpBLFlBQVk7SUFDWkMsZUFBZSxFQUFmQSxlQUFlO0lBQ2Z6QixjQUFjLEVBQUUwQixXQUFXO0lBQzNCVCxVQUFVLEVBQVZBLFVBQVU7SUFDVkosSUFBSSxFQUFKQSxJQUFJO0lBQ0pDLFVBQVUsRUFBVkEsVUFBVTtJQUNWQyxZQUFZLEVBQVpBLFlBQVk7SUFDWitDLFdBQVcsRUFBWEE7RURoRUEsQ0NpRUQ7QUFDSCIsImZpbGUiOiJjb21wb25lbnRzL1Byb0Zvcm0vY29yZS91c2VGb3JtSXRlbS5qcyIsInNvdXJjZXNDb250ZW50IjpbInZhciBfX2F3YWl0ZXIgPSAodGhpcyAmJiB0aGlzLl9fYXdhaXRlcikgfHwgZnVuY3Rpb24gKHRoaXNBcmcsIF9hcmd1bWVudHMsIFAsIGdlbmVyYXRvcikge1xuICAgIGZ1bmN0aW9uIGFkb3B0KHZhbHVlKSB7IHJldHVybiB2YWx1ZSBpbnN0YW5jZW9mIFAgPyB2YWx1ZSA6IG5ldyBQKGZ1bmN0aW9uIChyZXNvbHZlKSB7IHJlc29sdmUodmFsdWUpOyB9KTsgfVxuICAgIHJldHVybiBuZXcgKFAgfHwgKFAgPSBQcm9taXNlKSkoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkge1xuICAgICAgICBmdW5jdGlvbiBmdWxmaWxsZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3IubmV4dCh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XG4gICAgICAgIGZ1bmN0aW9uIHJlamVjdGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yW1widGhyb3dcIl0odmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxuICAgICAgICBmdW5jdGlvbiBzdGVwKHJlc3VsdCkgeyByZXN1bHQuZG9uZSA/IHJlc29sdmUocmVzdWx0LnZhbHVlKSA6IGFkb3B0KHJlc3VsdC52YWx1ZSkudGhlbihmdWxmaWxsZWQsIHJlamVjdGVkKTsgfVxuICAgICAgICBzdGVwKChnZW5lcmF0b3IgPSBnZW5lcmF0b3IuYXBwbHkodGhpc0FyZywgX2FyZ3VtZW50cyB8fCBbXSkpLm5leHQoKSk7XG4gICAgfSk7XG59O1xuaW1wb3J0IFJlYWN0LCB7IHVzZUVmZmVjdCwgdXNlUmVmIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHVzZUV2ZW50Q2FsbGJhY2sgZnJvbSAnQDFtb25leS9ob29rcy91c2VFdmVudENhbGxiYWNrJztcbmltcG9ydCB1c2VEZWJvdW5jZWRDYWxsYmFjayBmcm9tICdAMW1vbmV5L2hvb2tzL3VzZURlYm91bmNlZENhbGxiYWNrJztcbmltcG9ydCB7IHVzZVByb0Zvcm1Db250ZXh0IH0gZnJvbSAnLi4vY29udGV4dCc7XG5pbXBvcnQgeyBnZXROZXN0ZWRWYWx1ZSB9IGZyb20gJy4vcGF0aFV0aWxzJztcbmltcG9ydCB7IGZpbHRlclJ1bGVzQnlUcmlnZ2VyIH0gZnJvbSAnLi9ydW5SdWxlcyc7XG5pbXBvcnQgeyBGT1JNX0NPTVBPTkVOVF9OQU1FUywgVEVYVF9MSUtFX0NPTVBPTkVOVF9OQU1FUyB9IGZyb20gJy4vY29uc3RhbnRzJztcbi8qKlxuICogTm9ybWFsaXNlIGEgY2hhbmdlLWhhbmRsZXIgYXJndW1lbnQ6IHVud3JhcCBgZS50YXJnZXRbdmFsdWVQcm9wTmFtZV1gIC9cbiAqIGBlW3ZhbHVlUHJvcE5hbWVdYCAoZS5nLiBDaGVja2JveCBlbWl0cyBgeyBjaGVja2VkIH1gKSwgZWxzZSBgZS50YXJnZXQudmFsdWVgLFxuICogZWxzZSBwYXNzIHRoZSB2YWx1ZSB0aHJvdWdoIChlLmcuIFN3aXRjaCBlbWl0cyB0aGUgYm9vbGVhbiBkaXJlY3RseSkuXG4gKi9cbmZ1bmN0aW9uIGV4dHJhY3RFdmVudFZhbHVlKGUsIHZhbHVlUHJvcE5hbWUgPSAndmFsdWUnKSB7XG4gICAgaWYgKGUgPT09IG51bGwgfHwgdHlwZW9mIGUgIT09ICdvYmplY3QnKVxuICAgICAgICByZXR1cm4gZTtcbiAgICBjb25zdCBldmVudCA9IGU7XG4gICAgaWYgKHZhbHVlUHJvcE5hbWUgIT09ICd2YWx1ZScgJiYgdmFsdWVQcm9wTmFtZSBpbiBldmVudCkge1xuICAgICAgICByZXR1cm4gZXZlbnRbdmFsdWVQcm9wTmFtZV07XG4gICAgfVxuICAgIGlmICgndGFyZ2V0JyBpbiBldmVudCAmJiBldmVudC50YXJnZXQgJiYgdHlwZW9mIGV2ZW50LnRhcmdldCA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgY29uc3QgdGFyZ2V0ID0gZXZlbnQudGFyZ2V0O1xuICAgICAgICBpZiAodmFsdWVQcm9wTmFtZSBpbiB0YXJnZXQpXG4gICAgICAgICAgICByZXR1cm4gdGFyZ2V0W3ZhbHVlUHJvcE5hbWVdO1xuICAgICAgICBpZiAoJ3ZhbHVlJyBpbiB0YXJnZXQpXG4gICAgICAgICAgICByZXR1cm4gdGFyZ2V0LnZhbHVlO1xuICAgIH1cbiAgICByZXR1cm4gZTtcbn1cbmV4cG9ydCBmdW5jdGlvbiB1c2VGb3JtSXRlbShvcHRpb25zKSB7XG4gICAgY29uc3QgeyBuYW1lLCBydWxlcyA9IFtdLCByZXF1aXJlZCwgdmFsaWRhdGVTdGF0dXMsIHZhbHVlUHJvcE5hbWUgPSAndmFsdWUnLCB2YWxpZGF0ZURlYm91bmNlLCB9ID0gb3B0aW9ucztcbiAgICBjb25zdCBjdHggPSB1c2VQcm9Gb3JtQ29udGV4dCgpO1xuICAgIGNvbnN0IHsgdmFsdWVzLCBlcnJvcnMsIHdhcm5pbmdzLCB2YWxpZGF0aW5nLCBzZXRGaWVsZFZhbHVlLCB2YWxpZGF0ZUZpZWxkLCB2YWxpZGF0ZUZpZWxkQXN5bmMsIHJlZ2lzdGVyRmllbGQsIHVucmVnaXN0ZXJGaWVsZCwgc2l6ZSwgbGFiZWxBbGlnbiwgcmVxdWlyZWRNYXJrLCB2YWxpZGF0ZVRyaWdnZXIsIH0gPSBjdHg7XG4gICAgY29uc3QgaXNSZXF1aXJlZCA9IEJvb2xlYW4ocmVxdWlyZWQgfHwgcnVsZXMuc29tZSgocnVsZSkgPT4gcnVsZS5yZXF1aXJlZCkpO1xuICAgIGNvbnN0IGZpZWxkVmFsdWUgPSBuYW1lXG4gICAgICAgID8gKG5hbWUuaW5jbHVkZXMoJy4nKSA/IGdldE5lc3RlZFZhbHVlKHZhbHVlcywgbmFtZSkgOiB2YWx1ZXNbbmFtZV0pXG4gICAgICAgIDogdW5kZWZpbmVkO1xuICAgIC8vIEVycm9ycy93YXJuaW5ncyBhcmUgc3RvcmVkIEZMQVQsIGtleWVkIGJ5IHRoZSBmdWxsIChwb3NzaWJseSBkb3R0ZWQpIGZpZWxkXG4gICAgLy8gbmFtZSDigJQgbmV2ZXIgcmVzb2x2ZSB0aGVtIGFzIG5lc3RlZCBwYXRocyBvciBkb3R0ZWQgbmFtZXMgd291bGQgbWlzcy5cbiAgICBjb25zdCBmaWVsZEVycm9yID0gbmFtZSA/IGVycm9yc1tuYW1lXSA6IHVuZGVmaW5lZDtcbiAgICBjb25zdCBmaWVsZFdhcm5pbmcgPSBuYW1lID8gd2FybmluZ3NbbmFtZV0gOiB1bmRlZmluZWQ7XG4gICAgY29uc3QgZmllbGRWYWxpZGF0aW5nID0gbmFtZSA/ICh2YWxpZGF0aW5nW25hbWVdIHx8IGZhbHNlKSA6IGZhbHNlO1xuICAgIGNvbnN0IGZpbmFsU3RhdHVzID0gdmFsaWRhdGVTdGF0dXMgfHwgKGZpZWxkRXJyb3IgPyAnZXJyb3InIDogZmllbGRXYXJuaW5nID8gJ3dhcm5pbmcnIDogdW5kZWZpbmVkKTtcbiAgICAvLyBSdW4gb25seSB0aGUgcnVsZXMgYXBwbGljYWJsZSB0byB0aGUgZ2l2ZW4gaW50ZXJhY3RpdmUgdHJpZ2dlcjsgcnVsZXNcbiAgICAvLyB3aXRob3V0IGFuIGV4cGxpY2l0IHZhbGlkYXRlVHJpZ2dlciBmb2xsb3cgdGhlIGZvcm0tbGV2ZWwgc2V0dGluZy5cbiAgICBjb25zdCBydW5WYWxpZGF0ZSA9IHVzZUV2ZW50Q2FsbGJhY2soKHZhbHVlLCB0cmlnZ2VyKSA9PiB7XG4gICAgICAgIGlmICghbmFtZSB8fCBydWxlcy5sZW5ndGggPT09IDApXG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgY29uc3QgYXBwbGljYWJsZSA9IGZpbHRlclJ1bGVzQnlUcmlnZ2VyKHJ1bGVzLCB0cmlnZ2VyLCB2YWxpZGF0ZVRyaWdnZXIpO1xuICAgICAgICBpZiAoYXBwbGljYWJsZS5sZW5ndGggPT09IDApXG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgcmV0dXJuIHZhbGlkYXRlRmllbGQobmFtZSwgYXBwbGljYWJsZSwgdmFsdWUpO1xuICAgIH0pO1xuICAgIGNvbnN0IHJ1blZhbGlkYXRlQXN5bmMgPSB1c2VFdmVudENhbGxiYWNrKCh2YWx1ZSwgdHJpZ2dlcikgPT4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICBpZiAoIW5hbWUgfHwgcnVsZXMubGVuZ3RoID09PSAwKVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICBjb25zdCBhcHBsaWNhYmxlID0gZmlsdGVyUnVsZXNCeVRyaWdnZXIocnVsZXMsIHRyaWdnZXIsIHZhbGlkYXRlVHJpZ2dlcik7XG4gICAgICAgIGlmIChhcHBsaWNhYmxlLmxlbmd0aCA9PT0gMClcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgeWllbGQgdmFsaWRhdGVGaWVsZEFzeW5jKG5hbWUsIHZhbHVlLCBhcHBsaWNhYmxlKTtcbiAgICB9KSk7XG4gICAgY29uc3QgeyBydW46IGRlYm91bmNlZFZhbGlkYXRlIH0gPSB1c2VEZWJvdW5jZWRDYWxsYmFjaygodmFsdWUpID0+IHtcbiAgICAgICAgcnVuVmFsaWRhdGUodmFsdWUsICdvbkNoYW5nZScpO1xuICAgIH0sIHZhbGlkYXRlRGVib3VuY2UpO1xuICAgIGNvbnN0IGhhbmRsZUNoYW5nZSA9IHVzZUV2ZW50Q2FsbGJhY2soKHZhbHVlKSA9PiB7XG4gICAgICAgIGlmIChuYW1lKSB7XG4gICAgICAgICAgICBzZXRGaWVsZFZhbHVlKG5hbWUsIHZhbHVlKTtcbiAgICAgICAgICAgIGlmICh2YWxpZGF0ZURlYm91bmNlICYmIHZhbGlkYXRlRGVib3VuY2UgPiAwKSB7XG4gICAgICAgICAgICAgICAgZGVib3VuY2VkVmFsaWRhdGUodmFsdWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgcnVuVmFsaWRhdGUodmFsdWUsICdvbkNoYW5nZScpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfSk7XG4gICAgY29uc3QgaGFuZGxlQmx1ciA9IHVzZUV2ZW50Q2FsbGJhY2soKCkgPT4ge1xuICAgICAgICBydW5WYWxpZGF0ZUFzeW5jKGZpZWxkVmFsdWUsICdvbkJsdXInKTtcbiAgICB9KTtcbiAgICAvLyBMYXRlc3QgY2hpbGQtcHJvdmlkZWQgY2FsbGJhY2tzLCBjYXB0dXJlZCBhdCBpbmplY3RGaWVsZCB0aW1lLiBUaGUgU1RBQkxFXG4gICAgLy8gaW5qZWN0ZWQgaGFuZGxlcnMgYmVsb3cgZGVsZWdhdGUgdGhyb3VnaCB0aGlzIHJlZiBpbnN0ZWFkIG9mIGJlaW5nXG4gICAgLy8gcmVjcmVhdGVkIHBlciByZW5kZXIg4oCUIHNvIGEgbWVtb2l6ZWQgZmllbGQgY29tcG9uZW50IHNlZXMgc2hhbGxvdy1lcXVhbFxuICAgIC8vIHByb3BzIGFjcm9zcyByZW5kZXJzIGFuZCBjYW4gYmFpbCBvdXQgd2hpbGUgYW5vdGhlciBmaWVsZCBpcyB0eXBpbmcuXG4gICAgY29uc3QgY2hpbGRDYWxsYmFja3NSZWYgPSB1c2VSZWYoe30pO1xuICAgIGNvbnN0IGluamVjdGVkT25DaGFuZ2UgPSB1c2VFdmVudENhbGxiYWNrKChlLCAuLi5hcmdzKSA9PiB7XG4gICAgICAgIHZhciBfYSwgX2I7XG4gICAgICAgIGhhbmRsZUNoYW5nZShleHRyYWN0RXZlbnRWYWx1ZShlLCB2YWx1ZVByb3BOYW1lKSk7XG4gICAgICAgIChfYiA9IChfYSA9IGNoaWxkQ2FsbGJhY2tzUmVmLmN1cnJlbnQpLm9uQ2hhbmdlKSA9PT0gbnVsbCB8fCBfYiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2IuY2FsbChfYSwgZSwgLi4uYXJncyk7XG4gICAgfSk7XG4gICAgY29uc3QgaW5qZWN0ZWRPbkJsdXIgPSB1c2VFdmVudENhbGxiYWNrKCguLi5hcmdzKSA9PiB7XG4gICAgICAgIHZhciBfYSwgX2I7XG4gICAgICAgIGhhbmRsZUJsdXIoKTtcbiAgICAgICAgKF9iID0gKF9hID0gY2hpbGRDYWxsYmFja3NSZWYuY3VycmVudCkub25CbHVyKSA9PT0gbnVsbCB8fCBfYiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2IuY2FsbChfYSwgLi4uYXJncyk7XG4gICAgfSk7XG4gICAgLy8gS2VlcCB0aGUgcmVnaXN0cnkgaW4gc3luYyB3aXRoIHRoZSBMQVRFU1QgcnVsZXMgZXZlcnkgcmVuZGVyIChyZWdpc3RyYXRpb25cbiAgICAvLyBpcyBhIGNoZWFwIHJlZiBtdXRhdGlvbik6IGR5bmFtaWMgcnVsZXMgKGUuZy4gcmVxdWlyZWQgdG9nZ2xlZCBieSBhbm90aGVyXG4gICAgLy8gZmllbGQpIG11c3QgYmUgdmlzaWJsZSB0byBzdWJtaXQtdGltZSB2YWxpZGF0aW9uLCBub3QganVzdCBvbkNoYW5nZS5cbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICBpZiAobmFtZSAmJiByZWdpc3RlckZpZWxkKVxuICAgICAgICAgICAgcmVnaXN0ZXJGaWVsZChuYW1lLCBydWxlcyk7XG4gICAgfSk7XG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgICAgIGlmIChuYW1lICYmIHVucmVnaXN0ZXJGaWVsZClcbiAgICAgICAgICAgICAgICB1bnJlZ2lzdGVyRmllbGQobmFtZSk7XG4gICAgICAgIH07XG4gICAgfSwgW25hbWVdKTtcbiAgICBjb25zdCBpbmplY3RGaWVsZCA9IChjaGlsZCkgPT4ge1xuICAgICAgICB2YXIgX2E7XG4gICAgICAgIGlmICghbmFtZSB8fCAhUmVhY3QuaXNWYWxpZEVsZW1lbnQoY2hpbGQpKVxuICAgICAgICAgICAgcmV0dXJuIGNoaWxkO1xuICAgICAgICBjb25zdCBjaGlsZFByb3BzID0gY2hpbGQucHJvcHM7XG4gICAgICAgIGNvbnN0IGRpc3BsYXlOYW1lID0gKF9hID0gY2hpbGQudHlwZSkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmRpc3BsYXlOYW1lO1xuICAgICAgICBjb25zdCBpc0Zvcm1Db21wb25lbnQgPSBGT1JNX0NPTVBPTkVOVF9OQU1FUy5pbmNsdWRlcyhkaXNwbGF5TmFtZSkgfHxcbiAgICAgICAgICAgIGNoaWxkUHJvcHMucGxhY2Vob2xkZXIgIT09IHVuZGVmaW5lZCB8fFxuICAgICAgICAgICAgY2hpbGRQcm9wcy52YWx1ZSAhPT0gdW5kZWZpbmVkIHx8XG4gICAgICAgICAgICBjaGlsZFByb3BzW3ZhbHVlUHJvcE5hbWVdICE9PSB1bmRlZmluZWQ7XG4gICAgICAgIGlmICghaXNGb3JtQ29tcG9uZW50KVxuICAgICAgICAgICAgcmV0dXJuIGNoaWxkO1xuICAgICAgICBsZXQgc2FmZVZhbHVlID0gZmllbGRWYWx1ZTtcbiAgICAgICAgaWYgKHNhZmVWYWx1ZSA9PT0gbnVsbCB8fCBzYWZlVmFsdWUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgaWYgKHZhbHVlUHJvcE5hbWUgPT09ICdjaGVja2VkJyB8fCBbJ0NoZWNrYm94JywgJ1N3aXRjaCddLmluY2x1ZGVzKGRpc3BsYXlOYW1lIHx8ICcnKSkge1xuICAgICAgICAgICAgICAgIHNhZmVWYWx1ZSA9IGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSBpZiAoVEVYVF9MSUtFX0NPTVBPTkVOVF9OQU1FUy5pbmNsdWRlcyhkaXNwbGF5TmFtZSB8fCAnJykgfHxcbiAgICAgICAgICAgICAgICBjaGlsZFByb3BzLnBsYWNlaG9sZGVyICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICBzYWZlVmFsdWUgPSAnJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmIChURVhUX0xJS0VfQ09NUE9ORU5UX05BTUVTLmluY2x1ZGVzKGRpc3BsYXlOYW1lIHx8ICcnKSAmJlxuICAgICAgICAgICAgdHlwZW9mIHNhZmVWYWx1ZSAhPT0gJ3N0cmluZycgJiZcbiAgICAgICAgICAgIHR5cGVvZiBzYWZlVmFsdWUgIT09ICdudW1iZXInKSB7XG4gICAgICAgICAgICBzYWZlVmFsdWUgPSAnJztcbiAgICAgICAgfVxuICAgICAgICBjaGlsZENhbGxiYWNrc1JlZi5jdXJyZW50ID0ge1xuICAgICAgICAgICAgb25DaGFuZ2U6IHR5cGVvZiBjaGlsZFByb3BzLm9uQ2hhbmdlID09PSAnZnVuY3Rpb24nXG4gICAgICAgICAgICAgICAgPyBjaGlsZFByb3BzLm9uQ2hhbmdlXG4gICAgICAgICAgICAgICAgOiB1bmRlZmluZWQsXG4gICAgICAgICAgICBvbkJsdXI6IHR5cGVvZiBjaGlsZFByb3BzLm9uQmx1ciA9PT0gJ2Z1bmN0aW9uJ1xuICAgICAgICAgICAgICAgID8gY2hpbGRQcm9wcy5vbkJsdXJcbiAgICAgICAgICAgICAgICA6IHVuZGVmaW5lZCxcbiAgICAgICAgfTtcbiAgICAgICAgY29uc3QgaW5qZWN0ZWRQcm9wcyA9IE9iamVjdC5hc3NpZ24oeyBbdmFsdWVQcm9wTmFtZV06IHNhZmVWYWx1ZSwgb25DaGFuZ2U6IGluamVjdGVkT25DaGFuZ2UsIG9uQmx1cjogaW5qZWN0ZWRPbkJsdXIgfSwgKGZpbmFsU3RhdHVzID09PSAnZXJyb3InICYmIHsgc3RhdHVzOiAnZXJyb3InIH0pKTtcbiAgICAgICAgcmV0dXJuIFJlYWN0LmNsb25lRWxlbWVudChjaGlsZCwgaW5qZWN0ZWRQcm9wcyk7XG4gICAgfTtcbiAgICByZXR1cm4ge1xuICAgICAgICBmaWVsZFZhbHVlLFxuICAgICAgICBmaWVsZEVycm9yLFxuICAgICAgICBmaWVsZFdhcm5pbmcsXG4gICAgICAgIGZpZWxkVmFsaWRhdGluZyxcbiAgICAgICAgdmFsaWRhdGVTdGF0dXM6IGZpbmFsU3RhdHVzLFxuICAgICAgICBpc1JlcXVpcmVkLFxuICAgICAgICBzaXplLFxuICAgICAgICBsYWJlbEFsaWduLFxuICAgICAgICByZXF1aXJlZE1hcmssXG4gICAgICAgIGluamVjdEZpZWxkLFxuICAgIH07XG59IixudWxsXSwic291cmNlUm9vdCI6Ii4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYyJ9
|