@1money/component-ui 0.0.20 → 0.0.21
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/.claude/settings.local.json +2 -1
- package/AGENTS.md +7 -1
- package/es/components/ProForm/ProForm.js +93 -116
- package/es/components/ProForm/ProFormDependency.js +2 -4
- package/es/components/ProForm/ProFormItem.d.ts +4 -0
- package/es/components/ProForm/ProFormItem.js +213 -0
- package/es/components/ProForm/ProFormList.js +5 -6
- package/es/components/ProForm/Submitter.js +2 -2
- package/es/components/ProForm/context.d.ts +10 -2
- package/es/components/ProForm/context.js +17 -14
- package/es/components/{Form → ProForm/core}/constants.d.ts +1 -1
- package/es/components/ProForm/core/constants.js +18 -0
- package/es/components/ProForm/core/hooks/useForm.js +541 -0
- package/es/components/ProForm/core/hooks/useFormCore.js +347 -0
- package/es/components/ProForm/core/index.d.ts +6 -0
- package/es/components/ProForm/core/index.js +6 -0
- package/es/components/{Form → ProForm/core}/interface.d.ts +21 -60
- package/es/components/ProForm/core/interface.js +2 -0
- package/es/components/ProForm/core/useFormItem.d.ts +20 -0
- package/es/components/ProForm/core/useFormItem.js +121 -0
- package/es/components/ProForm/fields/ProFormFieldSet.js +7 -6
- package/es/components/ProForm/fields/createProFormField.js +76 -151
- package/es/components/ProForm/index.d.ts +12 -5
- package/es/components/ProForm/index.js +20 -8
- package/es/components/ProForm/interface.d.ts +76 -41
- package/es/components/ProForm/style/ProForm.css +1 -1
- package/es/index.css +1 -1
- package/es/index.d.ts +3 -4
- package/es/index.js +2 -3
- package/lib/components/ProForm/ProForm.js +94 -117
- package/lib/components/ProForm/ProFormDependency.js +2 -4
- package/lib/components/ProForm/ProFormItem.d.ts +4 -0
- package/lib/components/ProForm/ProFormItem.js +222 -0
- package/lib/components/ProForm/ProFormList.js +4 -5
- package/lib/components/ProForm/Submitter.js +2 -2
- package/lib/components/ProForm/context.d.ts +10 -2
- package/lib/components/ProForm/context.js +18 -15
- package/lib/components/{Form → ProForm/core}/constants.d.ts +1 -1
- package/lib/components/ProForm/core/constants.js +24 -0
- package/lib/components/ProForm/core/hooks/useForm.js +551 -0
- package/lib/components/ProForm/core/hooks/useFormCore.js +354 -0
- package/lib/components/ProForm/core/index.d.ts +6 -0
- package/lib/components/ProForm/core/index.js +56 -0
- package/lib/components/{Form → ProForm/core}/interface.d.ts +21 -60
- package/lib/components/ProForm/core/interface.js +6 -0
- package/lib/components/ProForm/core/useFormItem.d.ts +20 -0
- package/lib/components/ProForm/core/useFormItem.js +131 -0
- package/lib/components/ProForm/fields/ProFormFieldSet.js +7 -6
- package/lib/components/ProForm/fields/createProFormField.js +76 -151
- package/lib/components/ProForm/index.d.ts +12 -5
- package/lib/components/ProForm/index.js +41 -28
- package/lib/components/ProForm/interface.d.ts +76 -41
- package/lib/components/ProForm/style/ProForm.css +1 -1
- package/lib/index.css +1 -1
- package/lib/index.d.ts +3 -4
- package/lib/index.js +49 -50
- package/package.json +1 -1
- package/es/components/Form/Form.d.ts +0 -4
- package/es/components/Form/Form.js +0 -73
- package/es/components/Form/FormItem.d.ts +0 -4
- package/es/components/Form/FormItem.js +0 -183
- package/es/components/Form/constants.js +0 -19
- package/es/components/Form/context.d.ts +0 -5
- package/es/components/Form/context.js +0 -19
- package/es/components/Form/hooks/useForm.js +0 -541
- package/es/components/Form/hooks/useFormCore.js +0 -348
- package/es/components/Form/index.d.ts +0 -10
- package/es/components/Form/index.js +0 -17
- package/es/components/Form/interface.js +0 -2
- package/es/components/Form/style/Form.css +0 -1
- package/es/components/Form/style/css.js +0 -2
- package/es/components/Form/style/index.d.ts +0 -1
- package/es/components/Form/style/index.js +0 -2
- package/lib/components/Form/Form.d.ts +0 -4
- package/lib/components/Form/Form.js +0 -80
- package/lib/components/Form/FormItem.d.ts +0 -4
- package/lib/components/Form/FormItem.js +0 -193
- package/lib/components/Form/constants.js +0 -25
- package/lib/components/Form/context.d.ts +0 -5
- package/lib/components/Form/context.js +0 -25
- package/lib/components/Form/hooks/useForm.js +0 -551
- package/lib/components/Form/hooks/useFormCore.js +0 -355
- package/lib/components/Form/index.d.ts +0 -10
- package/lib/components/Form/index.js +0 -83
- package/lib/components/Form/interface.js +0 -6
- package/lib/components/Form/style/Form.css +0 -1
- package/lib/components/Form/style/css.js +0 -4
- package/lib/components/Form/style/index.d.ts +0 -1
- package/lib/components/Form/style/index.js +0 -4
- /package/es/components/{Form → ProForm/core}/hooks/useForm.d.ts +0 -0
- /package/es/components/{Form → ProForm/core}/hooks/useFormCore.d.ts +0 -0
- /package/lib/components/{Form → ProForm/core}/hooks/useForm.d.ts +0 -0
- /package/lib/components/{Form → ProForm/core}/hooks/useFormCore.d.ts +0 -0
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
var _typeof3 = require("@babel/runtime/helpers/typeof");
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.useFormItem = useFormItem;
|
|
9
|
+
var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
|
|
10
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
11
|
+
var _hooks = require("@1money/hooks");
|
|
12
|
+
var _context = require("../context");
|
|
13
|
+
var _constants = require("./constants");
|
|
14
|
+
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); }
|
|
15
|
+
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; }
|
|
16
|
+
function _createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
|
|
17
|
+
function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
|
|
18
|
+
function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
|
|
19
|
+
function getNestedValue(obj, path) {
|
|
20
|
+
var keys = path.split('.');
|
|
21
|
+
var current = obj;
|
|
22
|
+
var _iterator = _createForOfIteratorHelper(keys),
|
|
23
|
+
_step;
|
|
24
|
+
try {
|
|
25
|
+
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
26
|
+
var key = _step.value;
|
|
27
|
+
if (current === null || current === undefined || (0, _typeof2["default"])(current) !== 'object') return undefined;
|
|
28
|
+
current = current[key];
|
|
29
|
+
}
|
|
30
|
+
} catch (err) {
|
|
31
|
+
_iterator.e(err);
|
|
32
|
+
} finally {
|
|
33
|
+
_iterator.f();
|
|
34
|
+
}
|
|
35
|
+
return current;
|
|
36
|
+
}
|
|
37
|
+
function useFormItem(options) {
|
|
38
|
+
var name = options.name,
|
|
39
|
+
_options$rules = options.rules,
|
|
40
|
+
rules = _options$rules === void 0 ? [] : _options$rules,
|
|
41
|
+
required = options.required,
|
|
42
|
+
validateStatus = options.validateStatus;
|
|
43
|
+
var ctx = (0, _context.useProFormContext)();
|
|
44
|
+
var values = ctx.values,
|
|
45
|
+
errors = ctx.errors,
|
|
46
|
+
setFieldValue = ctx.setFieldValue,
|
|
47
|
+
validateField = ctx.validateField,
|
|
48
|
+
registerField = ctx.registerField,
|
|
49
|
+
unregisterField = ctx.unregisterField,
|
|
50
|
+
size = ctx.size,
|
|
51
|
+
labelAlign = ctx.labelAlign,
|
|
52
|
+
requiredMark = ctx.requiredMark,
|
|
53
|
+
validateTrigger = ctx.validateTrigger;
|
|
54
|
+
var isRequired = Boolean(required || rules.some(function (rule) {
|
|
55
|
+
return rule.required;
|
|
56
|
+
}));
|
|
57
|
+
var fieldValue = name ? name.includes('.') ? getNestedValue(values, name) : values[name] : undefined;
|
|
58
|
+
var fieldError = name ? name.includes('.') ? getNestedValue(errors, name) : errors[name] : undefined;
|
|
59
|
+
var finalStatus = validateStatus || (fieldError ? 'error' : undefined);
|
|
60
|
+
var runValidate = (0, _hooks.useEventCallback)(function (value) {
|
|
61
|
+
if (name && rules.length > 0) return validateField(name, rules, value);
|
|
62
|
+
return true;
|
|
63
|
+
});
|
|
64
|
+
var handleChange = (0, _hooks.useEventCallback)(function (value) {
|
|
65
|
+
if (name) {
|
|
66
|
+
setFieldValue(name, value);
|
|
67
|
+
if (validateTrigger === 'onChange') runValidate(value);
|
|
68
|
+
}
|
|
69
|
+
});
|
|
70
|
+
var handleBlur = (0, _hooks.useEventCallback)(function () {
|
|
71
|
+
if (validateTrigger === 'onBlur') runValidate(fieldValue);
|
|
72
|
+
});
|
|
73
|
+
(0, _react.useEffect)(function () {
|
|
74
|
+
if (name && registerField) registerField(name, rules);
|
|
75
|
+
return function () {
|
|
76
|
+
if (name && unregisterField) unregisterField(name);
|
|
77
|
+
};
|
|
78
|
+
}, [name]);
|
|
79
|
+
var injectField = function injectField(child) {
|
|
80
|
+
var _a;
|
|
81
|
+
if (!name || ! /*#__PURE__*/_react["default"].isValidElement(child)) return child;
|
|
82
|
+
var childProps = child.props;
|
|
83
|
+
var displayName = (_a = child.type) === null || _a === void 0 ? void 0 : _a.displayName;
|
|
84
|
+
var isFormComponent = _constants.FORM_COMPONENT_NAMES.includes(displayName) || childProps.placeholder !== undefined || childProps.value !== undefined;
|
|
85
|
+
if (!isFormComponent) return child;
|
|
86
|
+
var safeValue = fieldValue;
|
|
87
|
+
if (safeValue === null || safeValue === undefined) {
|
|
88
|
+
if (['Input', 'TextArea', 'InputNumber'].includes(displayName || '') || childProps.placeholder !== undefined) {
|
|
89
|
+
safeValue = '';
|
|
90
|
+
} else if (['Checkbox', 'Switch'].includes(displayName || '')) {
|
|
91
|
+
safeValue = false;
|
|
92
|
+
}
|
|
93
|
+
} else if (['Input', 'TextArea'].includes(displayName || '') && typeof safeValue !== 'string' && typeof safeValue !== 'number') {
|
|
94
|
+
safeValue = '';
|
|
95
|
+
}
|
|
96
|
+
var injectedProps = Object.assign({
|
|
97
|
+
value: safeValue,
|
|
98
|
+
onChange: function onChange(e) {
|
|
99
|
+
var actualValue = e && (0, _typeof2["default"])(e) === 'object' && 'target' in e ? e.target.value : e;
|
|
100
|
+
handleChange(actualValue);
|
|
101
|
+
if (typeof childProps.onChange === 'function') {
|
|
102
|
+
for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
|
|
103
|
+
args[_key - 1] = arguments[_key];
|
|
104
|
+
}
|
|
105
|
+
childProps.onChange.apply(childProps, [e].concat(args));
|
|
106
|
+
}
|
|
107
|
+
},
|
|
108
|
+
onBlur: function onBlur() {
|
|
109
|
+
handleBlur();
|
|
110
|
+
if (typeof childProps.onBlur === 'function') {
|
|
111
|
+
childProps.onBlur.apply(childProps, arguments);
|
|
112
|
+
}
|
|
113
|
+
},
|
|
114
|
+
size: childProps.size || size
|
|
115
|
+
}, finalStatus === 'error' && {
|
|
116
|
+
status: 'error'
|
|
117
|
+
});
|
|
118
|
+
return /*#__PURE__*/_react["default"].cloneElement(child, injectedProps);
|
|
119
|
+
};
|
|
120
|
+
return {
|
|
121
|
+
fieldValue: fieldValue,
|
|
122
|
+
fieldError: fieldError,
|
|
123
|
+
validateStatus: finalStatus,
|
|
124
|
+
isRequired: isRequired,
|
|
125
|
+
size: size,
|
|
126
|
+
labelAlign: labelAlign,
|
|
127
|
+
requiredMark: requiredMark,
|
|
128
|
+
injectField: injectField
|
|
129
|
+
};
|
|
130
|
+
}
|
|
131
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvUHJvRm9ybS9zcmMvY29tcG9uZW50cy9Qcm9Gb3JtL2NvcmUvdXNlRm9ybUl0ZW0udHMiLCJjb21wb25lbnRzL1Byb0Zvcm0vY29yZS91c2VGb3JtSXRlbS5qcyJdLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfaG9va3MiLCJfY29udGV4dCIsIl9jb25zdGFudHMiLCJfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUiLCJlIiwiV2Vha01hcCIsInIiLCJ0IiwiX19lc01vZHVsZSIsIl90eXBlb2YzIiwiaGFzIiwiZ2V0IiwibiIsIl9fcHJvdG9fXyIsImEiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsInUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJpIiwic2V0IiwiX2NyZWF0ZUZvck9mSXRlcmF0b3JIZWxwZXIiLCJTeW1ib2wiLCJpdGVyYXRvciIsIkFycmF5IiwiaXNBcnJheSIsIl91bnN1cHBvcnRlZEl0ZXJhYmxlVG9BcnJheSIsImxlbmd0aCIsIl9uIiwiRiIsInMiLCJkb25lIiwidmFsdWUiLCJmIiwiVHlwZUVycm9yIiwibyIsIm5leHQiLCJfYXJyYXlMaWtlVG9BcnJheSIsInRvU3RyaW5nIiwic2xpY2UiLCJjb25zdHJ1Y3RvciIsIm5hbWUiLCJmcm9tIiwidGVzdCIsImdldE5lc3RlZFZhbHVlIiwib2JqIiwicGF0aCIsImtleXMiLCJzcGxpdCIsImN1cnJlbnQiLCJfaXRlcmF0b3IiLCJfc3RlcCIsImtleSIsInVuZGVmaW5lZCIsIl90eXBlb2YyIiwiZXJyIiwidXNlRm9ybUl0ZW0iLCJvcHRpb25zIiwiX29wdGlvbnMkcnVsZXMiLCJydWxlcyIsInJlcXVpcmVkIiwidmFsaWRhdGVTdGF0dXMiLCJjdHgiLCJ1c2VQcm9Gb3JtQ29udGV4dCIsInZhbHVlcyIsImVycm9ycyIsInNldEZpZWxkVmFsdWUiLCJ2YWxpZGF0ZUZpZWxkIiwicmVnaXN0ZXJGaWVsZCIsInVucmVnaXN0ZXJGaWVsZCIsInNpemUiLCJsYWJlbEFsaWduIiwicmVxdWlyZWRNYXJrIiwidmFsaWRhdGVUcmlnZ2VyIiwiaXNSZXF1aXJlZCIsIkJvb2xlYW4iLCJzb21lIiwicnVsZSIsImZpZWxkVmFsdWUiLCJpbmNsdWRlcyIsImZpZWxkRXJyb3IiLCJmaW5hbFN0YXR1cyIsInJ1blZhbGlkYXRlIiwidXNlRXZlbnRDYWxsYmFjayIsImhhbmRsZUNoYW5nZSIsImhhbmRsZUJsdXIiLCJ1c2VFZmZlY3QiLCJpbmplY3RGaWVsZCIsImNoaWxkIiwiX2EiLCJSZWFjdCIsImlzVmFsaWRFbGVtZW50IiwiY2hpbGRQcm9wcyIsInByb3BzIiwiZGlzcGxheU5hbWUiLCJ0eXBlIiwiaXNGb3JtQ29tcG9uZW50IiwiRk9STV9DT01QT05FTlRfTkFNRVMiLCJwbGFjZWhvbGRlciIsInNhZmVWYWx1ZSIsImluamVjdGVkUHJvcHMiLCJhc3NpZ24iLCJvbkNoYW5nZSIsImFjdHVhbFZhbHVlIiwidGFyZ2V0IiwiX2xlbiIsImFyZ3VtZW50cyIsImFyZ3MiLCJfa2V5IiwiYXBwbHkiLCJjb25jYXQiLCJvbkJsdXIiLCJzdGF0dXMiLCJjbG9uZUVsZW1lbnQiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFBLElBQUFBLE1BQUEsR0FBQUMsdUJBQUEsQ0FBQUMsT0FBQTtBQUVBLElBQUFDLE1BQUEsR0FBQUQsT0FBQTtBQUNBLElBQUFFLFFBQUEsR0FBQUYsT0FBQTtBQUNBLElBQUFHLFVBQUEsR0FBQUgsT0FBQTtBQUFtRCxTQUFBSSx5QkFBQUMsQ0FBQSw2QkFBQUMsT0FBQSxtQkFBQUMsQ0FBQSxPQUFBRCxPQUFBLElBQUFFLENBQUEsT0FBQUYsT0FBQSxZQUFBRix3QkFBQSxZQUFBQSx5QkFBQUMsQ0FBQSxXQUFBQSxDQUFBLEdBQUFHLENBQUEsR0FBQUQsQ0FBQSxLQUFBRixDQUFBO0FBQUEsU0FBQU4sd0JBQUFNLENBQUEsRUFBQUUsQ0FBQSxTQUFBQSxD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bkIsVUFBVSxDQUFDbUIsTUFBb0MsQ0FBQUYsS0FBQSxDQUEvQ2pCLFVBQVUsRUFBQWMsU0FBNkMsQ0FBQztRQUMzRDtNQUNGLENBQUM7TUFDRHBDLElBQUksRUFBRXNCLFVBQVUsQ0FBQ3RCLElBQUksSUFBSUE7SUFBSSxDQUFBLEVBQ3pCVyxXQUFXLEtBQUssT0FBTyxJQUFJO01BQUUrQixNQUFNLEVBQUU7SUFBTyxDQUFHLENBQ3BEO0lBRUQsb0JBQU90QixpQkFBSyxDQUFDdUIsWUFBWSxDQUFDekIsS0FBSyxFQUFFWSxhQUFhLENBQUM7RUFDakQsQ0FBQztFQUVELE9BQU87SUFDTHRCLFVBQVUsRUFBVkEsVUFBVTtJQUNWRSxVQUFVLEVBQVZBLFVBQVU7SUFDVm5CLGNBQWMsRUFBRW9CLFdBQVc7SUFDM0JQLFVBQVUsRUFBVkEsVUFBVTtJQUNWSixJQUFJLEVBQUpBLElBQUk7SUFDSkMsVUFBVSxFQUFWQSxVQUFVO0lBQ1ZDLFlBQVksRUFBWkEsWUFBWTtJQUNaZSxXQUFXLEVBQVhBO0VDL0NBLENEZ0REO0FBQ0giLCJmaWxlIjoiY29tcG9uZW50cy9Qcm9Gb3JtL2NvcmUvdXNlRm9ybUl0ZW0uanMiLCJzb3VyY2VzQ29udGVudCI6W251bGwsImltcG9ydCBSZWFjdCwgeyB1c2VFZmZlY3QgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyB1c2VFdmVudENhbGxiYWNrIH0gZnJvbSAnQDFtb25leS9ob29rcyc7XG5pbXBvcnQgeyB1c2VQcm9Gb3JtQ29udGV4dCB9IGZyb20gJy4uL2NvbnRleHQnO1xuaW1wb3J0IHsgRk9STV9DT01QT05FTlRfTkFNRVMgfSBmcm9tICcuL2NvbnN0YW50cyc7XG5mdW5jdGlvbiBnZXROZXN0ZWRWYWx1ZShvYmosIHBhdGgpIHtcbiAgICBjb25zdCBrZXlzID0gcGF0aC5zcGxpdCgnLicpO1xuICAgIGxldCBjdXJyZW50ID0gb2JqO1xuICAgIGZvciAoY29uc3Qga2V5IG9mIGtleXMpIHtcbiAgICAgICAgaWYgKGN1cnJlbnQgPT09IG51bGwgfHwgY3VycmVudCA9PT0gdW5kZWZpbmVkIHx8IHR5cGVvZiBjdXJyZW50ICE9PSAnb2JqZWN0JylcbiAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgIGN1cnJlbnQgPSBjdXJyZW50W2tleV07XG4gICAgfVxuICAgIHJldHVybiBjdXJyZW50O1xufVxuZXhwb3J0IGZ1bmN0aW9uIHVzZUZvcm1JdGVtKG9wdGlvbnMpIHtcbiAgICBjb25zdCB7IG5hbWUsIHJ1bGVzID0gW10sIHJlcXVpcmVkLCB2YWxpZGF0ZVN0YXR1cyB9ID0gb3B0aW9ucztcbiAgICBjb25zdCBjdHggPSB1c2VQcm9Gb3JtQ29udGV4dCgpO1xuICAgIGNvbnN0IHsgdmFsdWVzLCBlcnJvcnMsIHNldEZpZWxkVmFsdWUsIHZhbGlkYXRlRmllbGQsIHJlZ2lzdGVyRmllbGQsIHVucmVnaXN0ZXJGaWVsZCwgc2l6ZSwgbGFiZWxBbGlnbiwgcmVxdWlyZWRNYXJrLCB2YWxpZGF0ZVRyaWdnZXIsIH0gPSBjdHg7XG4gICAgY29uc3QgaXNSZXF1aXJlZCA9IEJvb2xlYW4ocmVxdWlyZWQgfHwgcnVsZXMuc29tZSgocnVsZSkgPT4gcnVsZS5yZXF1aXJlZCkpO1xuICAgIGNvbnN0IGZpZWxkVmFsdWUgPSBuYW1lXG4gICAgICAgID8gKG5hbWUuaW5jbHVkZXMoJy4nKSA/IGdldE5lc3RlZFZhbHVlKHZhbHVlcywgbmFtZSkgOiB2YWx1ZXNbbmFtZV0pXG4gICAgICAgIDogdW5kZWZpbmVkO1xuICAgIGNvbnN0IGZpZWxkRXJyb3IgPSBuYW1lXG4gICAgICAgID8gKG5hbWUuaW5jbHVkZXMoJy4nKVxuICAgICAgICAgICAgPyBnZXROZXN0ZWRWYWx1ZShlcnJvcnMsIG5hbWUpXG4gICAgICAgICAgICA6IGVycm9yc1tuYW1lXSlcbiAgICAgICAgOiB1bmRlZmluZWQ7XG4gICAgY29uc3QgZmluYWxTdGF0dXMgPSB2YWxpZGF0ZVN0YXR1cyB8fCAoZmllbGRFcnJvciA/ICdlcnJvcicgOiB1bmRlZmluZWQpO1xuICAgIGNvbnN0IHJ1blZhbGlkYXRlID0gdXNlRXZlbnRDYWxsYmFjaygodmFsdWUpID0+IHtcbiAgICAgICAgaWYgKG5hbWUgJiYgcnVsZXMubGVuZ3RoID4gMClcbiAgICAgICAgICAgIHJldHVybiB2YWxpZGF0ZUZpZWxkKG5hbWUsIHJ1bGVzLCB2YWx1ZSk7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH0pO1xuICAgIGNvbnN0IGhhbmRsZUNoYW5nZSA9IHVzZUV2ZW50Q2FsbGJhY2soKHZhbHVlKSA9PiB7XG4gICAgICAgIGlmIChuYW1lKSB7XG4gICAgICAgICAgICBzZXRGaWVsZFZhbHVlKG5hbWUsIHZhbHVlKTtcbiAgICAgICAgICAgIGlmICh2YWxpZGF0ZVRyaWdnZXIgPT09ICdvbkNoYW5nZScpXG4gICAgICAgICAgICAgICAgcnVuVmFsaWRhdGUodmFsdWUpO1xuICAgICAgICB9XG4gICAgfSk7XG4gICAgY29uc3QgaGFuZGxlQmx1ciA9IHVzZUV2ZW50Q2FsbGJhY2soKCkgPT4ge1xuICAgICAgICBpZiAodmFsaWRhdGVUcmlnZ2VyID09PSAnb25CbHVyJylcbiAgICAgICAgICAgIHJ1blZhbGlkYXRlKGZpZWxkVmFsdWUpO1xuICAgIH0pO1xuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIGlmIChuYW1lICYmIHJlZ2lzdGVyRmllbGQpXG4gICAgICAgICAgICByZWdpc3RlckZpZWxkKG5hbWUsIHJ1bGVzKTtcbiAgICAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgICAgIGlmIChuYW1lICYmIHVucmVnaXN0ZXJGaWVsZClcbiAgICAgICAgICAgICAgICB1bnJlZ2lzdGVyRmllbGQobmFtZSk7XG4gICAgICAgIH07XG4gICAgfSwgW25hbWVdKTtcbiAgICBjb25zdCBpbmplY3RGaWVsZCA9IChjaGlsZCkgPT4ge1xuICAgICAgICB2YXIgX2E7XG4gICAgICAgIGlmICghbmFtZSB8fCAhUmVhY3QuaXNWYWxpZEVsZW1lbnQoY2hpbGQpKVxuICAgICAgICAgICAgcmV0dXJuIGNoaWxkO1xuICAgICAgICBjb25zdCBjaGlsZFByb3BzID0gY2hpbGQucHJvcHM7XG4gICAgICAgIGNvbnN0IGRpc3BsYXlOYW1lID0gKF9hID0gY2hpbGQudHlwZSkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmRpc3BsYXlOYW1lO1xuICAgICAgICBjb25zdCBpc0Zvcm1Db21wb25lbnQgPSBGT1JNX0NPTVBPTkVOVF9OQU1FUy5pbmNsdWRlcyhkaXNwbGF5TmFtZSkgfHxcbiAgICAgICAgICAgIGNoaWxkUHJvcHMucGxhY2Vob2xkZXIgIT09IHVuZGVmaW5lZCB8fFxuICAgICAgICAgICAgY2hpbGRQcm9wcy52YWx1ZSAhPT0gdW5kZWZpbmVkO1xuICAgICAgICBpZiAoIWlzRm9ybUNvbXBvbmVudClcbiAgICAgICAgICAgIHJldHVybiBjaGlsZDtcbiAgICAgICAgbGV0IHNhZmVWYWx1ZSA9IGZpZWxkVmFsdWU7XG4gICAgICAgIGlmIChzYWZlVmFsdWUgPT09IG51bGwgfHwgc2FmZVZhbHVlID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIGlmIChbJ0lucHV0JywgJ1RleHRBcmVhJywgJ0lucHV0TnVtYmVyJ10uaW5jbHVkZXMoZGlzcGxheU5hbWUgfHwgJycpIHx8XG4gICAgICAgICAgICAgICAgY2hpbGRQcm9wcy5wbGFjZWhvbGRlciAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgc2FmZVZhbHVlID0gJyc7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIGlmIChbJ0NoZWNrYm94JywgJ1N3aXRjaCddLmluY2x1ZGVzKGRpc3BsYXlOYW1lIHx8ICcnKSkge1xuICAgICAgICAgICAgICAgIHNhZmVWYWx1ZSA9IGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKFsnSW5wdXQnLCAnVGV4dEFyZWEnXS5pbmNsdWRlcyhkaXNwbGF5TmFtZSB8fCAnJykgJiZcbiAgICAgICAgICAgIHR5cGVvZiBzYWZlVmFsdWUgIT09ICdzdHJpbmcnICYmXG4gICAgICAgICAgICB0eXBlb2Ygc2FmZVZhbHVlICE9PSAnbnVtYmVyJykge1xuICAgICAgICAgICAgc2FmZVZhbHVlID0gJyc7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgaW5qZWN0ZWRQcm9wcyA9IE9iamVjdC5hc3NpZ24oeyB2YWx1ZTogc2FmZVZhbHVlLCBvbkNoYW5nZTogKGUsIC4uLmFyZ3MpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBhY3R1YWxWYWx1ZSA9IGUgJiYgdHlwZW9mIGUgPT09ICdvYmplY3QnICYmICd0YXJnZXQnIGluIGVcbiAgICAgICAgICAgICAgICAgICAgPyBlLnRhcmdldC52YWx1ZVxuICAgICAgICAgICAgICAgICAgICA6IGU7XG4gICAgICAgICAgICAgICAgaGFuZGxlQ2hhbmdlKGFjdHVhbFZhbHVlKTtcbiAgICAgICAgICAgICAgICBpZiAodHlwZW9mIGNoaWxkUHJvcHMub25DaGFuZ2UgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgICAgICAgICAgY2hpbGRQcm9wcy5vbkNoYW5nZShlLCAuLi5hcmdzKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LCBvbkJsdXI6ICguLi5hcmdzKSA9PiB7XG4gICAgICAgICAgICAgICAgaGFuZGxlQmx1cigpO1xuICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgY2hpbGRQcm9wcy5vbkJsdXIgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgICAgICAgICAgY2hpbGRQcm9wcy5vbkJsdXIoLi4uYXJncyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSwgc2l6ZTogY2hpbGRQcm9wcy5zaXplIHx8IHNpemUgfSwgKGZpbmFsU3RhdHVzID09PSAnZXJyb3InICYmIHsgc3RhdHVzOiAnZXJyb3InIH0pKTtcbiAgICAgICAgcmV0dXJuIFJlYWN0LmNsb25lRWxlbWVudChjaGlsZCwgaW5qZWN0ZWRQcm9wcyk7XG4gICAgfTtcbiAgICByZXR1cm4ge1xuICAgICAgICBmaWVsZFZhbHVlLFxuICAgICAgICBmaWVsZEVycm9yLFxuICAgICAgICB2YWxpZGF0ZVN0YXR1czogZmluYWxTdGF0dXMsXG4gICAgICAgIGlzUmVxdWlyZWQsXG4gICAgICAgIHNpemUsXG4gICAgICAgIGxhYmVsQWxpZ24sXG4gICAgICAgIHJlcXVpcmVkTWFyayxcbiAgICAgICAgaW5qZWN0RmllbGQsXG4gICAgfTtcbn0iXSwic291cmNlUm9vdCI6Ii4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYyJ9
|
|
@@ -10,7 +10,8 @@ var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
|
|
|
10
10
|
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
|
11
11
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
12
12
|
var _react = _interopRequireWildcard(require("react"));
|
|
13
|
-
var
|
|
13
|
+
var _ProFormItem = require("../ProFormItem");
|
|
14
|
+
var _context = require("../context");
|
|
14
15
|
var _classnames = _interopRequireDefault(require("../../../utils/classnames"));
|
|
15
16
|
var _constants = require("../constants");
|
|
16
17
|
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); }
|
|
@@ -26,9 +27,9 @@ var ProFormFieldSetBase = function ProFormFieldSetBase(props) {
|
|
|
26
27
|
gap = _props$gap === void 0 ? 8 : _props$gap,
|
|
27
28
|
style = props.style,
|
|
28
29
|
children = props.children;
|
|
29
|
-
var
|
|
30
|
-
values =
|
|
31
|
-
setFieldValue =
|
|
30
|
+
var _useProFormContext = (0, _context.useProFormContext)(),
|
|
31
|
+
values = _useProFormContext.values,
|
|
32
|
+
setFieldValue = _useProFormContext.setFieldValue;
|
|
32
33
|
var value = name ? Array.isArray(values[name]) ? values[name] : [] : [];
|
|
33
34
|
var itemIndex = -1;
|
|
34
35
|
var list = _react["default"].Children.map(children, function (child) {
|
|
@@ -55,7 +56,7 @@ var ProFormFieldSetBase = function ProFormFieldSetBase(props) {
|
|
|
55
56
|
children: list
|
|
56
57
|
});
|
|
57
58
|
if (name) {
|
|
58
|
-
return (0, _jsxRuntime.jsx)(
|
|
59
|
+
return (0, _jsxRuntime.jsx)(_ProFormItem.ProFormItem, {
|
|
59
60
|
label: label,
|
|
60
61
|
name: name,
|
|
61
62
|
rules: rules,
|
|
@@ -69,4 +70,4 @@ var ProFormFieldSetBase = function ProFormFieldSetBase(props) {
|
|
|
69
70
|
ProFormFieldSetBase.displayName = 'ProFormFieldSet';
|
|
70
71
|
var ProFormFieldSet = exports.ProFormFieldSet = /*#__PURE__*/(0, _react.memo)(ProFormFieldSetBase);
|
|
71
72
|
var _default = exports["default"] = ProFormFieldSet;
|
|
72
|
-
//# sourceMappingURL=data:application/json;charset=utf8;base64,
|
|
73
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvUHJvRm9ybS9maWVsZHMvUHJvRm9ybUZpZWxkU2V0LmpzIiwiY29tcG9uZW50cy9Qcm9Gb3JtL3NyYy9jb21wb25lbnRzL1Byb0Zvcm0vZmllbGRzL1Byb0Zvcm1GaWVsZFNldC50c3giXSwibmFtZXMiOlsiX2pzeFJ1bnRpbWUiLCJyZXF1aXJlIiwiX3JlYWN0IiwiX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQiLCJfUHJvRm9ybUl0ZW0iLCJfY29udGV4dCIsIl9jbGFzc25hbWVzIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsIl9jb25zdGFudHMiLCJfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUiLCJlIiwiV2Vha01hcCIsInIiLCJ0IiwiX19lc01vZHVsZSIsIl90eXBlb2YzIiwiaGFzIiwiZ2V0IiwibiIsIl9fcHJvdG9fXyIsImEiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsInUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJpIiwic2V0IiwiY2xhc3NlcyIsImNsYXNzbmFtZXMiLCJjb25jYXQiLCJDU1NfUFJFRklYIiwiUHJvRm9ybUZpZWxkU2V0QmFzZSIsInByb3BzIiwibmFtZSIsImxhYmVsIiwicnVsZXMiLCJyZXF1aXJlZCIsImhlbHAiLCJfcHJvcHMkZ2FwIiwiZ2FwIiwic3R5bGUiLCJjaGlsZHJlbiIsIl91c2VQcm9Gb3JtQ29udGV4dCIsInVzZVByb0Zvcm1Db250ZXh0IiwidmFsdWVzIiwic2V0RmllbGRWYWx1ZSIsInZhbHVlIiwiQXJyYXkiLCJpc0FycmF5IiwiaXRlbUluZGV4IiwibGlzdCIsIlJlYWN0IiwiQ2hpbGRyZW4iLCJtYXAiLCJjaGlsZCIsImlzVmFsaWRFbGVtZW50IiwiaW5kZXgiLCJjbG9uZUVsZW1lbnQiLCJvbkNoYW5nZSIsInZhbCIsIm5ld1ZhbHVlIiwiX3RvQ29uc3VtYWJsZUFycmF5MiIsIl90eXBlb2YyIiwidGFyZ2V0IiwiY29udGVudCIsIl9qc3giLCJjbGFzc05hbWUiLCJhc3NpZ24iLCJkaXNwbGF5IiwiYWxpZ25JdGVtcyIsIlByb0Zvcm1JdGVtIiwiZGlzcGxheU5hbWUiLCJQcm9Gb3JtRmllbGRTZXQiLCJleHBvcnRzIiwibWVtbyIsIl9kZWZhdWx0Il0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O0FBQUEsSUFBQUEsV0FBQSxHQUFBQyxPQUFBO0FDQUEsSUFBQUMsTUFBQSxHQUFBQyx1QkFBQSxDQUFBRixPQUFBO0FBRUEsSUFBQUcsWUFBQSxHQUFBSCxPQUFBO0FBQ0EsSUFBQUksUUFBQSxHQUFBSixPQUFBO0FBQ0EsSUFBQUssV0FBQSxHQUFBQyxzQkFBQSxDQUFBTixPQUFBO0FBQ0EsSUFBQU8sVUFBQSxHQUFBUCxPQUFBO0FBQTBDLFNBQUFRLHlCQUFBQyxDQUFBLDZCQUFBQyxPQUFBLG1CQUFBQyxDQUFBLE9BQUFELE9BQUEsSUFBQUUsQ0FBQSxPQUFBRixPQUFBLFlBQUFGLHdCQUFBLFlBQUFBLHlCQUFBQyxDQUFBLFdBQUFBLENBQUEsR0FBQUcsQ0FBQSxHQUFBRCxDQUFBLEtBQUFGLENBQUE7QUFBQSxTQUFBUCx3QkFBQU8sQ0FBQSxFQUFBRSxDQUFBLFNBQUFBLENBQUEsSUFBQUYsQ0FBQSxJQUFBQSxDQUFBLENBQUFJLFVBQUEsU0FBQUosQ0FBQSxlQUFBQSxDQUFBLGdCQUFBSyxRQUFBLENBQUFMLENBQUEsMEJBQUFBLENBQUEsc0JBQUFBLENBQUEsUUFBQUcsQ0FBQSxHQUFBSix3QkFBQSxDQUFBRyxDQUFBLE9BQUFDLENBQUEsSUFBQUEsQ0FBQSxDQUFBRyxHQUFBLENBQUFOLENBQUEsVUFBQUcsQ0FBQSxDQUFBSSxHQUFBLENBQUFQLENBQUEsT0FBQVEsQ0FBQSxLQUFBQyxTQUFBLFVBQUFDLENBQUEsR0FBQUMsTUFBQSxDQUFBQyxjQUFBLElBQUFELE1BQUEsQ0FBQUUsd0JBQUEsV0FBQUMsQ0FBQSxJQUFBZCxDQUFBLG9CQUFBYyxDQUFBLE9BQUFDLGNBQUEsQ0FBQUMsSUFBQSxDQUFBaEIsQ0FBQSxFQUFB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LEdBQUcsRUFBSEEsR0FBRztNQUFFOEIsVUFBVSxFQUFFO0lBQVksQ0FBQSxFQUFLN0IsS0FBSyxDQUFBO0lBQUFDLFFBQUEsRUFDekZTO0VBQUksQ0FBQSxDQUVSO0VBRUQsSUFBSWpCLElBQUksRUFBRTtJQUNSLE9BQ0UsSUFBQWdDLGVBQUEsRUFBQ0ssd0JBQVcsRUFBQTtNQUFDcEMsS0FBSyxFQUFFQSxLQUFLO01BQUVELElBQUksRUFBRUEsSUFBSTtNQUFFRSxLQUFLLEVBQUVBLEtBQUs7TUFBRUMsUUFBUSxFQUFFQSxRQUFRO01BQUVDLElBQUksRUFBRUEsSUFBSTtNQUFBSSxRQUFBLEVBQ2hGdUI7SUFBTyxDQUFBLENBQ0k7RUFFbEI7RUFFQSxPQUFPQSxPQUFPO0FBQ2hCLENBQUM7QUFFRGpDLG1CQUFtQixDQUFDd0MsV0FBVyxHQUFHLGlCQUFpQjtBQUU1QyxJQUFNQyxlQUFlLEdBQUFDLE9BQUEsQ0FBQUQsZUFBQSxnQkFBRyxJQUFBRSxXQUFJLEVBQUMzQyxtQkFBbUIsQ0FBQztBQUFDLElBQUE0QyxRQUFBLEdBQUFGLE9BQUEsY0FFMUNELGVBQWUiLCJmaWxlIjoiY29tcG9uZW50cy9Qcm9Gb3JtL2ZpZWxkcy9Qcm9Gb3JtRmllbGRTZXQuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBqc3ggYXMgX2pzeCB9IGZyb20gXCJyZWFjdC9qc3gtcnVudGltZVwiO1xuaW1wb3J0IFJlYWN0LCB7IG1lbW8gfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBQcm9Gb3JtSXRlbSB9IGZyb20gJy4uL1Byb0Zvcm1JdGVtJztcbmltcG9ydCB7IHVzZVByb0Zvcm1Db250ZXh0IH0gZnJvbSAnLi4vY29udGV4dCc7XG5pbXBvcnQgeyBkZWZhdWx0IGFzIGNsYXNzbmFtZXMgfSBmcm9tICcuLi8uLi8uLi91dGlscy9jbGFzc25hbWVzJztcbmltcG9ydCB7IENTU19QUkVGSVggfSBmcm9tICcuLi9jb25zdGFudHMnO1xuY29uc3QgY2xhc3NlcyA9IGNsYXNzbmFtZXMoYCR7Q1NTX1BSRUZJWH0tZmllbGRzZXRgKTtcbmNvbnN0IFByb0Zvcm1GaWVsZFNldEJhc2UgPSAocHJvcHMpID0+IHtcbiAgICBjb25zdCB7IG5hbWUsIGxhYmVsLCBydWxlcywgcmVxdWlyZWQsIGhlbHAsIGdhcCA9IDgsIHN0eWxlLCBjaGlsZHJlbiwgfSA9IHByb3BzO1xuICAgIGNvbnN0IHsgdmFsdWVzLCBzZXRGaWVsZFZhbHVlIH0gPSB1c2VQcm9Gb3JtQ29udGV4dCgpO1xuICAgIGNvbnN0IHZhbHVlID0gbmFtZSA/IChBcnJheS5pc0FycmF5KHZhbHVlc1tuYW1lXSkgPyB2YWx1ZXNbbmFtZV0gOiBbXSkgOiBbXTtcbiAgICBsZXQgaXRlbUluZGV4ID0gLTE7XG4gICAgY29uc3QgbGlzdCA9IFJlYWN0LkNoaWxkcmVuLm1hcChjaGlsZHJlbiwgKGNoaWxkKSA9PiB7XG4gICAgICAgIGlmICghUmVhY3QuaXNWYWxpZEVsZW1lbnQoY2hpbGQpKVxuICAgICAgICAgICAgcmV0dXJuIGNoaWxkO1xuICAgICAgICBpdGVtSW5kZXggKz0gMTtcbiAgICAgICAgY29uc3QgaW5kZXggPSBpdGVtSW5kZXg7XG4gICAgICAgIHJldHVybiBSZWFjdC5jbG9uZUVsZW1lbnQoY2hpbGQsIHtcbiAgICAgICAgICAgIHZhbHVlOiB2YWx1ZVtpbmRleF0sXG4gICAgICAgICAgICBvbkNoYW5nZTogKHZhbCkgPT4ge1xuICAgICAgICAgICAgICAgIGlmICghbmFtZSlcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIGNvbnN0IG5ld1ZhbHVlID0gWy4uLnZhbHVlXTtcbiAgICAgICAgICAgICAgICBuZXdWYWx1ZVtpbmRleF0gPSB2YWwgJiYgdHlwZW9mIHZhbCA9PT0gJ29iamVjdCcgJiYgJ3RhcmdldCcgaW4gdmFsXG4gICAgICAgICAgICAgICAgICAgID8gdmFsLnRhcmdldC52YWx1ZVxuICAgICAgICAgICAgICAgICAgICA6IHZhbDtcbiAgICAgICAgICAgICAgICBzZXRGaWVsZFZhbHVlKG5hbWUsIG5ld1ZhbHVlKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgIH0pO1xuICAgIH0pO1xuICAgIGNvbnN0IGNvbnRlbnQgPSAoX2pzeChcImRpdlwiLCB7IGNsYXNzTmFtZTogY2xhc3NlcygpLCBzdHlsZTogT2JqZWN0LmFzc2lnbih7IGRpc3BsYXk6ICdmbGV4JywgZ2FwLCBhbGlnbkl0ZW1zOiAnZmxleC1zdGFydCcgfSwgc3R5bGUpLCBjaGlsZHJlbjogbGlzdCB9KSk7XG4gICAgaWYgKG5hbWUpIHtcbiAgICAgICAgcmV0dXJuIChfanN4KFByb0Zvcm1JdGVtLCB7IGxhYmVsOiBsYWJlbCwgbmFtZTogbmFtZSwgcnVsZXM6IHJ1bGVzLCByZXF1aXJlZDogcmVxdWlyZWQsIGhlbHA6IGhlbHAsIGNoaWxkcmVuOiBjb250ZW50IH0pKTtcbiAgICB9XG4gICAgcmV0dXJuIGNvbnRlbnQ7XG59O1xuUHJvRm9ybUZpZWxkU2V0QmFzZS5kaXNwbGF5TmFtZSA9ICdQcm9Gb3JtRmllbGRTZXQnO1xuZXhwb3J0IGNvbnN0IFByb0Zvcm1GaWVsZFNldCA9IG1lbW8oUHJvRm9ybUZpZWxkU2V0QmFzZSk7XG5leHBvcnQgZGVmYXVsdCBQcm9Gb3JtRmllbGRTZXQ7IixudWxsXSwic291cmNlUm9vdCI6Ii4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYyJ9
|
|
@@ -9,13 +9,10 @@ exports["default"] = void 0;
|
|
|
9
9
|
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
10
10
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
11
11
|
var _react = require("react");
|
|
12
|
-
var
|
|
13
|
-
var _Grid = require("../../Grid");
|
|
14
|
-
var _context = require("../context");
|
|
12
|
+
var _ProFormItem = require("../ProFormItem");
|
|
15
13
|
var _ProFormDependency = require("../ProFormDependency");
|
|
16
14
|
var _useFieldRequest3 = require("../hooks/useFieldRequest");
|
|
17
15
|
var _utils = require("../utils");
|
|
18
|
-
var _constants = require("../constants");
|
|
19
16
|
var __rest = void 0 && (void 0).__rest || function (s, e) {
|
|
20
17
|
var t = {};
|
|
21
18
|
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];
|
|
@@ -24,34 +21,6 @@ var __rest = void 0 && (void 0).__rest || function (s, e) {
|
|
|
24
21
|
}
|
|
25
22
|
return t;
|
|
26
23
|
};
|
|
27
|
-
var ReadonlyFieldBase = function ReadonlyFieldBase(_ref) {
|
|
28
|
-
var name = _ref.name,
|
|
29
|
-
renderReadonly = _ref.renderReadonly;
|
|
30
|
-
var _useFormContext = (0, _Form.useFormContext)(),
|
|
31
|
-
values = _useFormContext.values;
|
|
32
|
-
var value = name ? values[name] : undefined;
|
|
33
|
-
var rendered = renderReadonly ? renderReadonly(value) : value != null && value !== '' ? String(value) : '-';
|
|
34
|
-
return (0, _jsxRuntime.jsx)("span", {
|
|
35
|
-
children: rendered
|
|
36
|
-
});
|
|
37
|
-
};
|
|
38
|
-
ReadonlyFieldBase.displayName = 'ReadonlyField';
|
|
39
|
-
var ReadonlyField = /*#__PURE__*/(0, _react.memo)(ReadonlyFieldBase);
|
|
40
|
-
function ConvertValueWrapperBase(_ref2) {
|
|
41
|
-
var name = _ref2.name,
|
|
42
|
-
convertValue = _ref2.convertValue,
|
|
43
|
-
Comp = _ref2.component,
|
|
44
|
-
componentProps = _ref2.componentProps;
|
|
45
|
-
var _useFormContext2 = (0, _Form.useFormContext)(),
|
|
46
|
-
values = _useFormContext2.values;
|
|
47
|
-
var rawValue = values[name];
|
|
48
|
-
var converted = convertValue(rawValue, name);
|
|
49
|
-
return (0, _jsxRuntime.jsx)(Comp, Object.assign({}, componentProps, {
|
|
50
|
-
value: converted
|
|
51
|
-
}));
|
|
52
|
-
}
|
|
53
|
-
ConvertValueWrapperBase.displayName = 'ConvertValueWrapper';
|
|
54
|
-
var ConvertValueWrapper = /*#__PURE__*/(0, _react.memo)(ConvertValueWrapperBase);
|
|
55
24
|
// ---------------------------------------------------------------------------
|
|
56
25
|
// createProFormField — factory that produces a ProForm-aware field component
|
|
57
26
|
// ---------------------------------------------------------------------------
|
|
@@ -59,50 +28,36 @@ function createProFormField(config) {
|
|
|
59
28
|
var Component = config.component,
|
|
60
29
|
mapProps = config.mapProps,
|
|
61
30
|
renderReadonly = config.renderReadonly;
|
|
62
|
-
// Inner component — handles mode,
|
|
31
|
+
// Inner component — handles mode, request, valueEnum, debounce, render
|
|
63
32
|
var InnerField = function InnerField(props) {
|
|
64
|
-
var _a,
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
var ctx = (0, _context.useProFormContext)();
|
|
93
|
-
// Mode resolution
|
|
94
|
-
var mergedMode = (_b = (_a = modeProp !== null && modeProp !== void 0 ? modeProp : readonly !== undefined ? readonly ? 'read' : 'edit' : undefined) !== null && _a !== void 0 ? _a : ctx === null || ctx === void 0 ? void 0 : ctx.mode) !== null && _b !== void 0 ? _b : (ctx === null || ctx === void 0 ? void 0 : ctx.readonly) ? 'read' : 'edit';
|
|
95
|
-
var isReadonly = mergedMode === 'read';
|
|
96
|
-
// ── Register / unregister transform ──
|
|
97
|
-
(0, _react.useEffect)(function () {
|
|
98
|
-
var _a;
|
|
99
|
-
if (!name || !transform) return;
|
|
100
|
-
(_a = ctx.registerTransform) === null || _a === void 0 ? void 0 : _a.call(ctx, name, transform);
|
|
101
|
-
return function () {
|
|
102
|
-
var _a;
|
|
103
|
-
(_a = ctx.unregisterTransform) === null || _a === void 0 ? void 0 : _a.call(ctx, name);
|
|
104
|
-
};
|
|
105
|
-
}, [name, transform, ctx.registerTransform, ctx.unregisterTransform]);
|
|
33
|
+
var _a = props,
|
|
34
|
+
name = _a.name,
|
|
35
|
+
label = _a.label,
|
|
36
|
+
rules = _a.rules,
|
|
37
|
+
required = _a.required,
|
|
38
|
+
help = _a.help,
|
|
39
|
+
validateStatus = _a.validateStatus,
|
|
40
|
+
colon = _a.colon,
|
|
41
|
+
readonly = _a.readonly,
|
|
42
|
+
modeProp = _a.mode,
|
|
43
|
+
hidden = _a.hidden,
|
|
44
|
+
colProps = _a.colProps,
|
|
45
|
+
fieldProps = _a.fieldProps,
|
|
46
|
+
placeholder = _a.placeholder,
|
|
47
|
+
disabled = _a.disabled,
|
|
48
|
+
width = _a.width,
|
|
49
|
+
transform = _a.transform,
|
|
50
|
+
convertValue = _a.convertValue,
|
|
51
|
+
_deps = _a.dependencies,
|
|
52
|
+
request = _a.request,
|
|
53
|
+
params = _a.params,
|
|
54
|
+
valueEnum = _a.valueEnum,
|
|
55
|
+
debounceTime = _a.debounceTime,
|
|
56
|
+
dependenciesValues = _a.dependenciesValues,
|
|
57
|
+
rest = __rest(_a, ["name", "label", "rules", "required", "help", "validateStatus", "colon", "readonly", "mode", "hidden", "colProps", "fieldProps", "placeholder", "disabled", "width", "transform", "convertValue", "dependencies", "request", "params", "valueEnum", "debounceTime", "dependenciesValues"]);
|
|
58
|
+
|
|
59
|
+
// Mode resolution: explicit mode > legacy readonly > ctx.mode (ProFormItem)
|
|
60
|
+
var resolvedMode = modeProp !== null && modeProp !== void 0 ? modeProp : readonly !== undefined ? readonly ? 'read' : 'edit' : undefined;
|
|
106
61
|
// ── Field-level request ──
|
|
107
62
|
var mergedRequestParams = dependenciesValues ? Object.assign(Object.assign({}, params), dependenciesValues) : params;
|
|
108
63
|
var _useFieldRequest = (0, _useFieldRequest3.useFieldRequest)(request, mergedRequestParams),
|
|
@@ -134,86 +89,56 @@ function createProFormField(config) {
|
|
|
134
89
|
if (debounceRef.current) clearTimeout(debounceRef.current);
|
|
135
90
|
};
|
|
136
91
|
}, []);
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
var
|
|
140
|
-
|
|
92
|
+
// Build the field child
|
|
93
|
+
var mapped = mapProps ? mapProps(rest) : {};
|
|
94
|
+
var widthStyle = width !== undefined ? {
|
|
95
|
+
width: (0, _utils.resolveWidth)(width)
|
|
96
|
+
} : undefined;
|
|
97
|
+
var fieldStyle = fieldProps === null || fieldProps === void 0 ? void 0 : fieldProps.style;
|
|
98
|
+
var mergedStyle = widthStyle ? Object.assign(Object.assign({}, fieldStyle || {}), widthStyle) : fieldStyle;
|
|
99
|
+
// Merge valueEnum + request options into fieldProps.options
|
|
100
|
+
var mergedOptions = fieldProps === null || fieldProps === void 0 ? void 0 : fieldProps.options;
|
|
101
|
+
if (valueEnum) {
|
|
102
|
+
mergedOptions = (0, _utils.valueEnumToOptions)(valueEnum);
|
|
103
|
+
}
|
|
104
|
+
if (requestOptions.length > 0) {
|
|
105
|
+
mergedOptions = requestOptions;
|
|
106
|
+
}
|
|
107
|
+
var componentProps = Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, mapped), fieldProps || {}), mergedOptions !== undefined ? {
|
|
108
|
+
options: mergedOptions
|
|
109
|
+
} : {}), requestLoading ? {
|
|
110
|
+
loading: true
|
|
111
|
+
} : {}), placeholder !== undefined ? {
|
|
112
|
+
placeholder: placeholder
|
|
113
|
+
} : {}), disabled !== undefined ? {
|
|
114
|
+
disabled: disabled
|
|
115
|
+
} : {}), mergedStyle ? {
|
|
116
|
+
style: mergedStyle
|
|
117
|
+
} : {});
|
|
118
|
+
// Wire debounce — capture the user's onChange before ProFormItem injects its own
|
|
119
|
+
if (debounceTime && debounceTime > 0) {
|
|
120
|
+
var fp = componentProps;
|
|
121
|
+
originalOnChangeRef.current = fp.onChange;
|
|
122
|
+
fp.onChange = debouncedOnChange;
|
|
123
|
+
}
|
|
124
|
+
return (0, _jsxRuntime.jsx)(_ProFormItem.ProFormItem, {
|
|
141
125
|
name: name,
|
|
126
|
+
label: label,
|
|
142
127
|
rules: rules,
|
|
143
128
|
required: required,
|
|
144
129
|
help: help,
|
|
145
130
|
validateStatus: validateStatus,
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
} else {
|
|
158
|
-
var mapped = mapProps ? mapProps(rest) : {};
|
|
159
|
-
var widthStyle = width !== undefined ? {
|
|
160
|
-
width: (0, _utils.resolveWidth)(width)
|
|
161
|
-
} : undefined;
|
|
162
|
-
var fieldStyle = fieldProps === null || fieldProps === void 0 ? void 0 : fieldProps.style;
|
|
163
|
-
var mergedStyle = widthStyle ? Object.assign(Object.assign({}, fieldStyle || {}), widthStyle) : fieldStyle;
|
|
164
|
-
// Merge valueEnum + request options into fieldProps.options
|
|
165
|
-
var mergedOptions = fieldProps === null || fieldProps === void 0 ? void 0 : fieldProps.options;
|
|
166
|
-
if (valueEnum) {
|
|
167
|
-
mergedOptions = (0, _utils.valueEnumToOptions)(valueEnum);
|
|
168
|
-
}
|
|
169
|
-
if (requestOptions.length > 0) {
|
|
170
|
-
mergedOptions = requestOptions;
|
|
171
|
-
}
|
|
172
|
-
var componentProps = Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, mapped), fieldProps || {}), mergedOptions !== undefined ? {
|
|
173
|
-
options: mergedOptions
|
|
174
|
-
} : {}), requestLoading ? {
|
|
175
|
-
loading: true
|
|
176
|
-
} : {}), placeholder !== undefined ? {
|
|
177
|
-
placeholder: placeholder
|
|
178
|
-
} : {}), disabled !== undefined ? {
|
|
179
|
-
disabled: disabled
|
|
180
|
-
} : {}), mergedStyle ? {
|
|
181
|
-
style: mergedStyle
|
|
182
|
-
} : {});
|
|
183
|
-
// Wire debounce — capture the original onChange from fieldProps before FormItem injects it
|
|
184
|
-
if (debounceTime && debounceTime > 0) {
|
|
185
|
-
var fp = componentProps;
|
|
186
|
-
originalOnChangeRef.current = fp.onChange;
|
|
187
|
-
fp.onChange = debouncedOnChange;
|
|
188
|
-
}
|
|
189
|
-
child = convertValue && name ? (0, _jsxRuntime.jsx)(ConvertValueWrapper, {
|
|
190
|
-
name: name,
|
|
191
|
-
convertValue: convertValue,
|
|
192
|
-
component: Component,
|
|
193
|
-
componentProps: componentProps
|
|
194
|
-
}) : (0, _jsxRuntime.jsx)(Component, Object.assign({}, componentProps));
|
|
195
|
-
}
|
|
196
|
-
// Wrap in FormItem
|
|
197
|
-
var node = (0, _jsxRuntime.jsx)(_Form.FormItem, Object.assign({}, formItemProps, {
|
|
198
|
-
children: child
|
|
199
|
-
}));
|
|
200
|
-
// Wrap in Col if grid mode is active
|
|
201
|
-
if (ctx === null || ctx === void 0 ? void 0 : ctx.grid) {
|
|
202
|
-
var merged = Object.assign(Object.assign({}, ctx === null || ctx === void 0 ? void 0 : ctx.colProps), colProps);
|
|
203
|
-
var _merged$span = merged.span,
|
|
204
|
-
span = _merged$span === void 0 ? _constants.DEFAULT_COL_SPAN : _merged$span,
|
|
205
|
-
sm = merged.sm,
|
|
206
|
-
md = merged.md,
|
|
207
|
-
lg = merged.lg;
|
|
208
|
-
return (0, _jsxRuntime.jsx)(_Grid.Col, {
|
|
209
|
-
span: span,
|
|
210
|
-
sm: sm,
|
|
211
|
-
md: md,
|
|
212
|
-
lg: lg,
|
|
213
|
-
children: node
|
|
214
|
-
});
|
|
215
|
-
}
|
|
216
|
-
return node;
|
|
131
|
+
colon: colon,
|
|
132
|
+
hidden: hidden,
|
|
133
|
+
mode: resolvedMode,
|
|
134
|
+
colProps: colProps,
|
|
135
|
+
transform: transform,
|
|
136
|
+
convertValue: convertValue,
|
|
137
|
+
readonlyRender: renderReadonly ? function (value) {
|
|
138
|
+
return renderReadonly(value);
|
|
139
|
+
} : undefined,
|
|
140
|
+
children: (0, _jsxRuntime.jsx)(Component, Object.assign({}, componentProps))
|
|
141
|
+
});
|
|
217
142
|
};
|
|
218
143
|
// Outer component — handles auto-wrapping with ProFormDependency
|
|
219
144
|
var ProFormFieldComponent = function ProFormFieldComponent(props) {
|
|
@@ -234,4 +159,4 @@ function createProFormField(config) {
|
|
|
234
159
|
return MemoizedField;
|
|
235
160
|
}
|
|
236
161
|
var _default = exports["default"] = createProFormField;
|
|
237
|
-
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvUHJvRm9ybS9maWVsZHMvY3JlYXRlUHJvRm9ybUZpZWxkLmpzIiwiY29tcG9uZW50cy9Qcm9Gb3JtL3NyYy9jb21wb25lbnRzL1Byb0Zvcm0vZmllbGRzL2NyZWF0ZVByb0Zvcm1GaWVsZC50c3giXSwibmFtZXMiOlsiX2pzeFJ1bnRpbWUiLCJyZXF1aXJlIiwiX3JlYWN0IiwiX0Zvcm0iLCJfR3JpZCIsIl9jb250ZXh0IiwiX1Byb0Zvcm1EZXBlbmRlbmN5IiwiX3VzZUZpZWxkUmVxdWVzdDMiLCJfdXRpbHMiLCJfY29uc3RhbnRzIiwiX19yZXN0IiwicyIsImUiLCJ0IiwicCIsIk9iamVjdCIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImluZGV4T2YiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJpIiwibGVuZ3RoIiwicHJvcGVydHlJc0VudW1lcmFibGUiLCJSZWFkb25seUZpZWxkQmFzZSIsIl9yZWYiLCJuYW1lIiwicmVuZGVyUmVhZG9ubHkiLCJfdXNlRm9ybUNvbnRleHQiLCJ1c2VGb3JtQ29udGV4dCIsInZhbHVlcyIsInZhbHVlIiwidW5kZWZpbmVkIiwicmVuZGVyZWQiLCJTdHJpbmciLCJfanN4IiwiY2hpbGRyZW4iLCJkaXNwbGF5TmFtZSIsIlJlYWRvbmx5RmllbGQiLCJtZW1vIiwiQ29udmVydFZhbHVlV3JhcHBlckJhc2UiLCJfcmVmMiIsImNvbnZlcnRWYWx1ZSIsIkNvbXAiLCJjb21wb25lbnQiLCJjb21wb25lbnRQcm9wcyIsIl91c2VGb3JtQ29udGV4dDIiLCJyYXdWYWx1ZSIsImNvbnZlcnRlZCIsImFzc2lnbiIsIkNvbnZlcnRWYWx1ZVdyYXBwZXIiLCJjcmVhdGVQcm9Gb3JtRmllbGQiLCJjb25maWciLCJDb21wb25lbnQiLCJtYXBQcm9wcyIsIklubmVyRmllbGQiLCJwcm9wcyIsIl9hIiwiX2IiLCJfYyIsImxhYmVsIiwicnVsZXMiLCJyZXF1aXJlZCIsImhlbHAiLCJ2YWxpZGF0ZVN0YXR1cyIsImxhYmVsQ29sIiwid3JhcHBlckNvbCIsImNvbG9uIiwicmVhZG9ubHkiLCJtb2RlUHJvcCIsIm1vZGUiLCJoaWRkZW4iLCJjb2xQcm9wcyIsImZpZWxkUHJvcHMiLCJwbGFjZWhvbGRlciIsImRpc2FibGVkIiwid2lkdGgiLCJ0cmFuc2Zvcm0iLCJfZGVwcyIsImRlcGVuZGVuY2llcyIsInJlcXVlc3QiLCJwYXJhbXMiLCJ2YWx1ZUVudW0iLCJkZWJvdW5jZVRpbWUiLCJkZXBlbmRlbmNpZXNWYWx1ZXMiLCJyZXN0IiwiY3R4IiwidXNlUHJvRm9ybUNvbnRleHQiLCJtZXJnZWRNb2RlIiwiaXNSZWFkb25seSIsInVzZUVmZmVjdCIsInJlZ2lzdGVyVHJhbnNmb3JtIiwidW5yZWdpc3RlclRyYW5zZm9ybSIsIm1lcmdlZFJlcXVlc3RQYXJhbXMiLCJfdXNlRmllbGRSZXF1ZXN0IiwidXNlRmllbGRSZXF1ZXN0IiwiX3VzZUZpZWxkUmVxdWVzdDIiLCJfc2xpY2VkVG9BcnJheTIiLCJyZXF1ZXN0TG9hZGluZyIsInJlcXVlc3RPcHRpb25zIiwiZGVib3VuY2VSZWYiLCJ1c2VSZWYiLCJvcmlnaW5hbE9uQ2hhbmdlUmVmIiwiZGVib3VuY2VkT25DaGFuZ2UiLCJ1c2VDYWxsYmFjayIsIl9sZW4iLCJhcmd1bWVudHMiLCJhcmdzIiwiQXJyYXkiLCJfa2V5IiwiX2EyIiwiY3VycmVudCIsImFwcGx5IiwiY29uY2F0IiwiY2xlYXJUaW1lb3V0Iiwic2V0VGltZW91dCIsIl9hMyIsImZvcm1JdGVtUHJvcHMiLCJjaGlsZCIsIm1hcHBlZCIsIndpZHRoU3R5bGUiLCJyZXNvbHZlV2lkdGgiLCJmaWVsZFN0eWxlIiwic3R5bGUiLCJtZXJnZWRTdHlsZSIsIm1lcmdlZE9wdGlvbnMiLCJvcHRpb25zIiwidmFsdWVFbnVtVG9PcHRpb25zIiwibG9hZGluZyIsImZwIiwib25DaGFuZ2UiLCJub2RlIiwiRm9ybUl0ZW0iLCJncmlkIiwibWVyZ2VkIiwiX21lcmdlZCRzcGFuIiwic3BhbiIsIkRFRkFVTFRfQ09MX1NQQU4iLCJzbSIsIm1kIiwibGciLCJDb2wiLCJQcm9Gb3JtRmllbGRDb21wb25lbnQiLCJQcm9Gb3JtRGVwZW5kZW5jeSIsImRlcFZhbHVlcyIsIk1lbW9pemVkRmllbGQiLCJfZGVmYXVsdCIsImV4cG9ydHMiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQVdBLElBQUFBLFdBQUEsR0FBQUMsT0FBQTtBQ1hBLElBQUFDLE1BQUEsR0FBQUQsT0FBQTtBQUVBLElBQUFFLEtBQUEsR0FBQUYsT0FBQTtBQUNBLElBQUFHLEtBQUEsR0FBQUgsT0FBQTtBQUNBLElBQUFJLFFBQUEsR0FBQUosT0FBQTtBQUNBLElBQUFLLGtCQUFBLEdBQUFMLE9BQUE7QUFDQSxJQUFBTSxpQkFBQSxHQUFBTixPQUFBO0FBQ0EsSUFBQU8sTUFBQSxHQUFBUCxPQUFBO0FBQ0EsSUFBQVEsVUFBQSxHQUFBUixPQUFBO0FEUkEsSUFBSVMsTUFBTSxHQUFJLFVBQVEsU0FBS0EsTUFBTSxJQUFLLFVBQVVDLENBQUMsRUFBRUMsQ0FBQyxFQUFFO0VBQ2xELElBQUlDLENBQUMsR0FBRyxDQUFDLENBQUM7RUFDVixLQUFLLElBQUlDLENBQUMsSUFBSUgsQ0FBQyxFQUFFLElBQUlJLE1BQU0sQ0FBQ0MsU0FBUyxDQUFDQyxjQUFjLENBQUNDLElBQUksQ0FBQ1AsQ0FBQyxFQUFFRyxDQUFDLENBQUMsSUFBSUYsQ0FBQyxDQUFDTyxPQUFPLENBQUNMLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFDL0VELENBQUMsQ0FBQ0MsQ0FBQyxDQUFDLEdBQUdILENBQUMsQ0FBQ0csQ0FBQyxDQUFDO0VBQ2YsSUFBSUgsQ0FBQyxJQUFJLElBQUksSUFBSSxPQUFPSSxNQUFNLENBQUNLLHFCQUFxQixLQUFLLFVBQVUsRUFDL0QsS0FBSyxJQUFJQyxDQUFDLEdBQUcsQ0FBQyxFQUFFUCxDQUFDLEdBQUdDLE1BQU0sQ0FBQ0sscUJBQXFCLENBQUNULENBQUMsQ0FBQyxFQUFFVSxDQUFDLEdBQUdQLENBQUMsQ0FBQ1EsTUFBTSxFQUFFRCxDQUFDLEVB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QUFBLENBQUEsQ0FBQSxDQUFBLEVBQUtPLEtBQUssQ0FBQSxDQUFJO0VBQ2xDLENBQUM7RUFFRCxJQUFNeUYsYUFBYSxnQkFBRyxJQUFBMUcsV0FBSSxFQUFDdUcscUJBQXFCLENBQUM7RUFDakQsT0FBT0csYUFBYTtBQUN0QjtBQUFDLElBQUFDLFFBQUEsR0FBQUMsT0FBQSxjQUVjaEcsa0JBQWtCIiwiZmlsZSI6ImNvbXBvbmVudHMvUHJvRm9ybS9maWVsZHMvY3JlYXRlUHJvRm9ybUZpZWxkLmpzIiwic291cmNlc0NvbnRlbnQiOlsidmFyIF9fcmVzdCA9ICh0aGlzICYmIHRoaXMuX19yZXN0KSB8fCBmdW5jdGlvbiAocywgZSkge1xuICAgIHZhciB0ID0ge307XG4gICAgZm9yICh2YXIgcCBpbiBzKSBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHMsIHApICYmIGUuaW5kZXhPZihwKSA8IDApXG4gICAgICAgIHRbcF0gPSBzW3BdO1xuICAgIGlmIChzICE9IG51bGwgJiYgdHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMgPT09IFwiZnVuY3Rpb25cIilcbiAgICAgICAgZm9yICh2YXIgaSA9IDAsIHAgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHMpOyBpIDwgcC5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgaWYgKGUuaW5kZXhPZihwW2ldKSA8IDAgJiYgT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKHMsIHBbaV0pKVxuICAgICAgICAgICAgICAgIHRbcFtpXV0gPSBzW3BbaV1dO1xuICAgICAgICB9XG4gICAgcmV0dXJuIHQ7XG59O1xuaW1wb3J0IHsganN4IGFzIF9qc3ggfSBmcm9tIFwicmVhY3QvanN4LXJ1bnRpbWVcIjtcbmltcG9ydCB7IG1lbW8sIHVzZUVmZmVjdCwgdXNlUmVmLCB1c2VDYWxsYmFjayB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IEZvcm1JdGVtLCB1c2VGb3JtQ29udGV4dCB9IGZyb20gJy4uLy4uL0Zvcm0nO1xuaW1wb3J0IHsgQ29sIH0gZnJvbSAnLi4vLi4vR3JpZCc7XG5pbXBvcnQgeyB1c2VQcm9Gb3JtQ29udGV4dCB9IGZyb20gJy4uL2NvbnRleHQnO1xuaW1wb3J0IHsgUHJvRm9ybURlcGVuZGVuY3kgfSBmcm9tICcuLi9Qcm9Gb3JtRGVwZW5kZW5jeSc7XG5pbXBvcnQgeyB1c2VGaWVsZFJlcXVlc3QgfSBmcm9tICcuLi9ob29rcy91c2VGaWVsZFJlcXVlc3QnO1xuaW1wb3J0IHsgcmVzb2x2ZVdpZHRoLCB2YWx1ZUVudW1Ub09wdGlvbnMgfSBmcm9tICcuLi91dGlscyc7XG5pbXBvcnQgeyBERUZBVUxUX0NPTF9TUEFOIH0gZnJvbSAnLi4vY29uc3RhbnRzJztcbmNvbnN0IFJlYWRvbmx5RmllbGRCYXNlID0gKHsgbmFtZSwgcmVuZGVyUmVhZG9ubHkgfSkgPT4ge1xuICAgIGNvbnN0IHsgdmFsdWVzIH0gPSB1c2VGb3JtQ29udGV4dCgpO1xuICAgIGNvbnN0IHZhbHVlID0gbmFtZSA/IHZhbHVlc1tuYW1lXSA6IHVuZGVmaW5lZDtcbiAgICBjb25zdCByZW5kZXJlZCA9IHJlbmRlclJlYWRvbmx5ID8gcmVuZGVyUmVhZG9ubHkodmFsdWUpIDogKHZhbHVlICE9IG51bGwgJiYgdmFsdWUgIT09ICcnID8gU3RyaW5nKHZhbHVlKSA6ICctJyk7XG4gICAgcmV0dXJuIF9qc3goXCJzcGFuXCIsIHsgY2hpbGRyZW46IHJlbmRlcmVkIH0pO1xufTtcblJlYWRvbmx5RmllbGRCYXNlLmRpc3BsYXlOYW1lID0gJ1JlYWRvbmx5RmllbGQnO1xuY29uc3QgUmVhZG9ubHlGaWVsZCA9IG1lbW8oUmVhZG9ubHlGaWVsZEJhc2UpO1xuZnVuY3Rpb24gQ29udmVydFZhbHVlV3JhcHBlckJhc2UoeyBuYW1lLCBjb252ZXJ0VmFsdWUsIGNvbXBvbmVudDogQ29tcCwgY29tcG9uZW50UHJvcHMsIH0pIHtcbiAgICBjb25zdCB7IHZhbHVlcyB9ID0gdXNlRm9ybUNvbnRleHQoKTtcbiAgICBjb25zdCByYXdWYWx1ZSA9IHZhbHVlc1tuYW1lXTtcbiAgICBjb25zdCBjb252ZXJ0ZWQgPSBjb252ZXJ0VmFsdWUocmF3VmFsdWUsIG5hbWUpO1xuICAgIHJldHVybiBfanN4KENvbXAsIE9iamVjdC5hc3NpZ24oe30sIGNvbXBvbmVudFByb3BzLCB7IHZhbHVlOiBjb252ZXJ0ZWQgfSkpO1xufVxuQ29udmVydFZhbHVlV3JhcHBlckJhc2UuZGlzcGxheU5hbWUgPSAnQ29udmVydFZhbHVlV3JhcHBlcic7XG5jb25zdCBDb252ZXJ0VmFsdWVXcmFwcGVyID0gbWVtbyhDb252ZXJ0VmFsdWVXcmFwcGVyQmFzZSk7XG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIGNyZWF0ZVByb0Zvcm1GaWVsZCDigJQgZmFjdG9yeSB0aGF0IHByb2R1Y2VzIGEgUHJvRm9ybS1hd2FyZSBmaWVsZCBjb21wb25lbnRcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVByb0Zvcm1GaWVsZChjb25maWcpIHtcbiAgICBjb25zdCB7IGNvbXBvbmVudDogQ29tcG9uZW50LCBtYXBQcm9wcywgcmVuZGVyUmVhZG9ubHksIH0gPSBjb25maWc7XG4gICAgLy8gSW5uZXIgY29tcG9uZW50IOKAlCBoYW5kbGVzIG1vZGUsIHRyYW5zZm9ybSwgcmVxdWVzdCwgdmFsdWVFbnVtLCBkZWJvdW5jZSwgcmVuZGVyXG4gICAgY29uc3QgSW5uZXJGaWVsZCA9IChwcm9wcykgPT4ge1xuICAgICAgICB2YXIgX2EsIF9iO1xuICAgICAgICBjb25zdCBfYyA9IHByb3BzLCB7IG5hbWUsIGxhYmVsLCBydWxlcywgcmVxdWlyZWQsIGhlbHAsIHZhbGlkYXRlU3RhdHVzLCBsYWJlbENvbCwgd3JhcHBlckNvbCwgY29sb24sIHJlYWRvbmx5LCBtb2RlOiBtb2RlUHJvcCwgaGlkZGVuLCBjb2xQcm9wcywgZmllbGRQcm9wcywgcGxhY2Vob2xkZXIsIGRpc2FibGVkLCB3aWR0aCwgdHJhbnNmb3JtLCBjb252ZXJ0VmFsdWUsIFxuICAgICAgICAvLyBGaWVsZC1sZXZlbCBmZWF0dXJlc1xuICAgICAgICBkZXBlbmRlbmNpZXM6IF9kZXBzLCByZXF1ZXN0LCBwYXJhbXMsIHZhbHVlRW51bSwgZGVib3VuY2VUaW1lLCBkZXBlbmRlbmNpZXNWYWx1ZXMgfSA9IF9jLCByZXN0ID0gX19yZXN0KF9jLCBbXCJuYW1lXCIsIFwibGFiZWxcIiwgXCJydWxlc1wiLCBcInJlcXVpcmVkXCIsIFwiaGVscFwiLCBcInZhbGlkYXRlU3RhdHVzXCIsIFwibGFiZWxDb2xcIiwgXCJ3cmFwcGVyQ29sXCIsIFwiY29sb25cIiwgXCJyZWFkb25seVwiLCBcIm1vZGVcIiwgXCJoaWRkZW5cIiwgXCJjb2xQcm9wc1wiLCBcImZpZWxkUHJvcHNcIiwgXCJwbGFjZWhvbGRlclwiLCBcImRpc2FibGVkXCIsIFwid2lkdGhcIiwgXCJ0cmFuc2Zvcm1cIiwgXCJjb252ZXJ0VmFsdWVcIiwgXCJkZXBlbmRlbmNpZXNcIiwgXCJyZXF1ZXN0XCIsIFwicGFyYW1zXCIsIFwidmFsdWVFbnVtXCIsIFwiZGVib3VuY2VUaW1lXCIsIFwiZGVwZW5kZW5jaWVzVmFsdWVzXCJdKTtcbiAgICAgICAgY29uc3QgY3R4ID0gdXNlUHJvRm9ybUNvbnRleHQoKTtcbiAgICAgICAgLy8gTW9kZSByZXNvbHV0aW9uXG4gICAgICAgIGNvbnN0IG1lcmdlZE1vZGUgPSAoX2IgPSAoX2EgPSBtb2RlUHJvcCAhPT0gbnVsbCAmJiBtb2RlUHJvcCAhPT0gdm9pZCAwID8gbW9kZVByb3AgOiAocmVhZG9ubHkgIT09IHVuZGVmaW5lZCA/IChyZWFkb25seSA/ICdyZWFkJyA6ICdlZGl0JykgOiB1bmRlZmluZWQpKSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiBjdHggPT09IG51bGwgfHwgY3R4ID09PSB2b2lkIDAgPyB2b2lkIDAgOiBjdHgubW9kZSkgIT09IG51bGwgJiYgX2IgIT09IHZvaWQgMCA/IF9iIDogKChjdHggPT09IG51bGwgfHwgY3R4ID09PSB2b2lkIDAgPyB2b2lkIDAgOiBjdHgucmVhZG9ubHkpID8gJ3JlYWQnIDogJ2VkaXQnKTtcbiAgICAgICAgY29uc3QgaXNSZWFkb25seSA9IG1lcmdlZE1vZGUgPT09ICdyZWFkJztcbiAgICAgICAgLy8g4pSA4pSAIFJlZ2lzdGVyIC8gdW5yZWdpc3RlciB0cmFuc2Zvcm0g4pSA4pSAXG4gICAgICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgICAgICB2YXIgX2E7XG4gICAgICAgICAgICBpZiAoIW5hbWUgfHwgIXRyYW5zZm9ybSlcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAoX2EgPSBjdHgucmVnaXN0ZXJUcmFuc2Zvcm0pID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5jYWxsKGN0eCwgbmFtZSwgdHJhbnNmb3JtKTtcbiAgICAgICAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgdmFyIF9hO1xuICAgICAgICAgICAgICAgIChfYSA9IGN0eC51bnJlZ2lzdGVyVHJhbnNmb3JtKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuY2FsbChjdHgsIG5hbWUpO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgfSwgW25hbWUsIHRyYW5zZm9ybSwgY3R4LnJlZ2lzdGVyVHJhbnNmb3JtLCBjdHgudW5yZWdpc3RlclRyYW5zZm9ybV0pO1xuICAgICAgICAvLyDilIDilIAgRmllbGQtbGV2ZWwgcmVxdWVzdCDilIDilIBcbiAgICAgICAgY29uc3QgbWVyZ2VkUmVxdWVzdFBhcmFtcyA9IGRlcGVuZGVuY2llc1ZhbHVlc1xuICAgICAgICAgICAgPyBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIHBhcmFtcyksIGRlcGVuZGVuY2llc1ZhbHVlcykgOiBwYXJhbXM7XG4gICAgICAgIGNvbnN0IFtyZXF1ZXN0TG9hZGluZywgcmVxdWVzdE9wdGlvbnNdID0gdXNlRmllbGRSZXF1ZXN0KHJlcXVlc3QsIG1lcmdlZFJlcXVlc3RQYXJhbXMpO1xuICAgICAgICAvLyDilIDilIAgRGVib3VuY2Ugb25DaGFuZ2Ug4pSA4pSAXG4gICAgICAgIGNvbnN0IGRlYm91bmNlUmVmID0gdXNlUmVmKG51bGwpO1xuICAgICAgICBjb25zdCBvcmlnaW5hbE9uQ2hhbmdlUmVmID0gdXNlUmVmKHVuZGVmaW5lZCk7XG4gICAgICAgIGNvbnN0IGRlYm91bmNlZE9uQ2hhbmdlID0gdXNlQ2FsbGJhY2soKC4uLmFyZ3MpID0+IHtcbiAgICAgICAgICAgIHZhciBfYTtcbiAgICAgICAgICAgIGlmICghZGVib3VuY2VUaW1lIHx8IGRlYm91bmNlVGltZSA8PSAwKSB7XG4gICAgICAgICAgICAgICAgKF9hID0gb3JpZ2luYWxPbkNoYW5nZVJlZi5jdXJyZW50KSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuY2FsbChvcmlnaW5hbE9uQ2hhbmdlUmVmLCAuLi5hcmdzKTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGVib3VuY2VSZWYuY3VycmVudClcbiAgICAgICAgICAgICAgICBjbGVhclRpbWVvdXQoZGVib3VuY2VSZWYuY3VycmVudCk7XG4gICAgICAgICAgICBkZWJvdW5jZVJlZi5jdXJyZW50ID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdmFyIF9hO1xuICAgICAgICAgICAgICAgIChfYSA9IG9yaWdpbmFsT25DaGFuZ2VSZWYuY3VycmVudCkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmNhbGwob3JpZ2luYWxPbkNoYW5nZVJlZiwgLi4uYXJncyk7XG4gICAgICAgICAgICB9LCBkZWJvdW5jZVRpbWUpO1xuICAgICAgICB9LCBbZGVib3VuY2VUaW1lXSk7XG4gICAgICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChkZWJvdW5jZVJlZi5jdXJyZW50KVxuICAgICAgICAgICAgICAgICAgICBjbGVhclRpbWVvdXQoZGVib3VuY2VSZWYuY3VycmVudCk7XG4gICAgICAgICAgICB9O1xuICAgICAgICB9LCBbXSk7XG4gICAgICAgIGlmIChoaWRkZW4pXG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgLy8gQnVpbGQgRm9ybUl0ZW0gcHJvcHNcbiAgICAgICAgY29uc3QgZm9ybUl0ZW1Qcm9wcyA9IHtcbiAgICAgICAgICAgIGxhYmVsLFxuICAgICAgICAgICAgbmFtZSxcbiAgICAgICAgICAgIHJ1bGVzLFxuICAgICAgICAgICAgcmVxdWlyZWQsXG4gICAgICAgICAgICBoZWxwLFxuICAgICAgICAgICAgdmFsaWRhdGVTdGF0dXM6IHZhbGlkYXRlU3RhdHVzLFxuICAgICAgICAgICAgbGFiZWxDb2wsXG4gICAgICAgICAgICB3cmFwcGVyQ29sLFxuICAgICAgICAgICAgY29sb24sXG4gICAgICAgIH07XG4gICAgICAgIC8vIEJ1aWxkIHRoZSBjaGlsZCBjb21wb25lbnRcbiAgICAgICAgbGV0IGNoaWxkO1xuICAgICAgICBpZiAoaXNSZWFkb25seSkge1xuICAgICAgICAgICAgY2hpbGQgPSBfanN4KFJlYWRvbmx5RmllbGQsIHsgbmFtZTogbmFtZSwgcmVuZGVyUmVhZG9ubHk6IHJlbmRlclJlYWRvbmx5IH0pO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgY29uc3QgbWFwcGVkID0gbWFwUHJvcHMgPyBtYXBQcm9wcyhyZXN0KSA6IHt9O1xuICAgICAgICAgICAgY29uc3Qgd2lkdGhTdHlsZSA9IHdpZHRoICE9PSB1bmRlZmluZWQgPyB7IHdpZHRoOiByZXNvbHZlV2lkdGgod2lkdGgpIH0gOiB1bmRlZmluZWQ7XG4gICAgICAgICAgICBjb25zdCBmaWVsZFN0eWxlID0gZmllbGRQcm9wcyA9PT0gbnVsbCB8fCBmaWVsZFByb3BzID09PSB2b2lkIDAgPyB2b2lkIDAgOiBmaWVsZFByb3BzLnN0eWxlO1xuICAgICAgICAgICAgY29uc3QgbWVyZ2VkU3R5bGUgPSB3aWR0aFN0eWxlXG4gICAgICAgICAgICAgICAgPyBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIChmaWVsZFN0eWxlIHx8IHt9KSksIHdpZHRoU3R5bGUpIDogZmllbGRTdHlsZTtcbiAgICAgICAgICAgIC8vIE1lcmdlIHZhbHVlRW51bSArIHJlcXVlc3Qgb3B0aW9ucyBpbnRvIGZpZWxkUHJvcHMub3B0aW9uc1xuICAgICAgICAgICAgbGV0IG1lcmdlZE9wdGlvbnMgPSBmaWVsZFByb3BzID09PSBudWxsIHx8IGZpZWxkUHJvcHMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGZpZWxkUHJvcHMub3B0aW9ucztcbiAgICAgICAgICAgIGlmICh2YWx1ZUVudW0pIHtcbiAgICAgICAgICAgICAgICBtZXJnZWRPcHRpb25zID0gdmFsdWVFbnVtVG9PcHRpb25zKHZhbHVlRW51bSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAocmVxdWVzdE9wdGlvbnMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgIG1lcmdlZE9wdGlvbnMgPSByZXF1ZXN0T3B0aW9ucztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IGNvbXBvbmVudFByb3BzID0gT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgbWFwcGVkKSwgKGZpZWxkUHJvcHMgfHwge30pKSwgKG1lcmdlZE9wdGlvbnMgIT09IHVuZGVmaW5lZCA/IHsgb3B0aW9uczogbWVyZ2VkT3B0aW9ucyB9IDoge30pKSwgKHJlcXVlc3RMb2FkaW5nID8geyBsb2FkaW5nOiB0cnVlIH0gOiB7fSkpLCAocGxhY2Vob2xkZXIgIT09IHVuZGVmaW5lZCA/IHsgcGxhY2Vob2xkZXIgfSA6IHt9KSksIChkaXNhYmxlZCAhPT0gdW5kZWZpbmVkID8geyBkaXNhYmxlZCB9IDoge30pKSwgKG1lcmdlZFN0eWxlID8geyBzdHlsZTogbWVyZ2VkU3R5bGUgfSA6IHt9KSk7XG4gICAgICAgICAgICAvLyBXaXJlIGRlYm91bmNlIOKAlCBjYXB0dXJlIHRoZSBvcmlnaW5hbCBvbkNoYW5nZSBmcm9tIGZpZWxkUHJvcHMgYmVmb3JlIEZvcm1JdGVtIGluamVjdHMgaXRcbiAgICAgICAgICAgIGlmIChkZWJvdW5jZVRpbWUgJiYgZGVib3VuY2VUaW1lID4gMCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGZwID0gY29tcG9uZW50UHJvcHM7XG4gICAgICAgICAgICAgICAgb3JpZ2luYWxPbkNoYW5nZVJlZi5jdXJyZW50ID0gZnAub25DaGFuZ2U7XG4gICAgICAgICAgICAgICAgZnAub25DaGFuZ2UgPSBkZWJvdW5jZWRPbkNoYW5nZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNoaWxkID0gY29udmVydFZhbHVlICYmIG5hbWVcbiAgICAgICAgICAgICAgICA/IF9qc3goQ29udmVydFZhbHVlV3JhcHBlciwgeyBuYW1lOiBuYW1lLCBjb252ZXJ0VmFsdWU6IGNvbnZlcnRWYWx1ZSwgY29tcG9uZW50OiBDb21wb25lbnQsIGNvbXBvbmVudFByb3BzOiBjb21wb25lbnRQcm9wcyB9KVxuICAgICAgICAgICAgICAgIDogX2pzeChDb21wb25lbnQsIE9iamVjdC5hc3NpZ24oe30sIGNvbXBvbmVudFByb3BzKSk7XG4gICAgICAgIH1cbiAgICAgICAgLy8gV3JhcCBpbiBGb3JtSXRlbVxuICAgICAgICBjb25zdCBub2RlID0gX2pzeChGb3JtSXRlbSwgT2JqZWN0LmFzc2lnbih7fSwgZm9ybUl0ZW1Qcm9wcywgeyBjaGlsZHJlbjogY2hpbGQgfSkpO1xuICAgICAgICAvLyBXcmFwIGluIENvbCBpZiBncmlkIG1vZGUgaXMgYWN0aXZlXG4gICAgICAgIGlmIChjdHggPT09IG51bGwgfHwgY3R4ID09PSB2b2lkIDAgPyB2b2lkIDAgOiBjdHguZ3JpZCkge1xuICAgICAgICAgICAgY29uc3QgbWVyZ2VkID0gT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCBjdHggPT09IG51bGwgfHwgY3R4ID09PSB2b2lkIDAgPyB2b2lkIDAgOiBjdHguY29sUHJvcHMpLCBjb2xQcm9wcyk7XG4gICAgICAgICAgICBjb25zdCB7IHNwYW4gPSBERUZBVUxUX0NPTF9TUEFOLCBzbSwgbWQsIGxnIH0gPSBtZXJnZWQ7XG4gICAgICAgICAgICByZXR1cm4gX2pzeChDb2wsIHsgc3Bhbjogc3Bhbiwgc206IHNtLCBtZDogbWQsIGxnOiBsZywgY2hpbGRyZW46IG5vZGUgfSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG5vZGU7XG4gICAgfTtcbiAgICAvLyBPdXRlciBjb21wb25lbnQg4oCUIGhhbmRsZXMgYXV0by13cmFwcGluZyB3aXRoIFByb0Zvcm1EZXBlbmRlbmN5XG4gICAgY29uc3QgUHJvRm9ybUZpZWxkQ29tcG9uZW50ID0gKHByb3BzKSA9PiB7XG4gICAgICAgIGNvbnN0IHsgZGVwZW5kZW5jaWVzIH0gPSBwcm9wcztcbiAgICAgICAgaWYgKGRlcGVuZGVuY2llcyAmJiBkZXBlbmRlbmNpZXMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgcmV0dXJuIChfanN4KFByb0Zvcm1EZXBlbmRlbmN5LCB7IG5hbWU6IGRlcGVuZGVuY2llcywgY2hpbGRyZW46IChkZXBWYWx1ZXMpID0+IChfanN4KElubmVyRmllbGQsIE9iamVjdC5hc3NpZ24oe30sIHByb3BzLCB7IGRlcGVuZGVuY2llc1ZhbHVlczogZGVwVmFsdWVzIH0pKSkgfSkpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBfanN4KElubmVyRmllbGQsIE9iamVjdC5hc3NpZ24oe30sIHByb3BzKSk7XG4gICAgfTtcbiAgICBjb25zdCBNZW1vaXplZEZpZWxkID0gbWVtbyhQcm9Gb3JtRmllbGRDb21wb25lbnQpO1xuICAgIHJldHVybiBNZW1vaXplZEZpZWxkO1xufVxuZXhwb3J0IGRlZmF1bHQgY3JlYXRlUHJvRm9ybUZpZWxkOyIsbnVsbF0sInNvdXJjZVJvb3QiOiIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMifQ==
|
|
162
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvUHJvRm9ybS9maWVsZHMvY3JlYXRlUHJvRm9ybUZpZWxkLmpzIiwiY29tcG9uZW50cy9Qcm9Gb3JtL3NyYy9jb21wb25lbnRzL1Byb0Zvcm0vZmllbGRzL2NyZWF0ZVByb0Zvcm1GaWVsZC50c3giXSwibmFtZXMiOlsiX2pzeFJ1bnRpbWUiLCJyZXF1aXJlIiwiX3JlYWN0IiwiX1Byb0Zvcm1JdGVtIiwiX1Byb0Zvcm1EZXBlbmRlbmN5IiwiX3VzZUZpZWxkUmVxdWVzdDMiLCJfdXRpbHMiLCJfX3Jlc3QiLCJzIiwiZSIsInQiLCJwIiwiT2JqZWN0IiwicHJvdG90eXBlIiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiaW5kZXhPZiIsImdldE93blByb3BlcnR5U3ltYm9scyIsImkiLCJsZW5ndGgiLCJwcm9wZXJ0eUlzRW51bWVyYWJsZSIsImNyZWF0ZVByb0Zvcm1GaWVsZCIsImNvbmZpZyIsIkNvbXBvbmVudCIsImNvbXBvbmVudCIsIm1hcFByb3BzIiwicmVuZGVyUmVhZG9ubHkiLCJJbm5lckZpZWxkIiwicHJvcHMiLCJfYSIsIm5hbWUiLCJsYWJlbCIsInJ1bGVzIiwicmVxdWlyZWQiLCJoZWxwIiwidmFsaWRhdGVTdGF0dXMiLCJjb2xvbiIsInJlYWRvbmx5IiwibW9kZVByb3AiLCJtb2RlIiwiaGlkZGVuIiwiY29sUHJvcHMiLCJmaWVsZFByb3BzIiwicGxhY2Vob2xkZXIiLCJkaXNhYmxlZCIsIndpZHRoIiwidHJhbnNmb3JtIiwiY29udmVydFZhbHVlIiwiX2RlcHMiLCJkZXBlbmRlbmNpZXMiLCJyZXF1ZXN0IiwicGFyYW1zIiwidmFsdWVFbnVtIiwiZGVib3VuY2VUaW1lIiwiZGVwZW5kZW5jaWVzVmFsdWVzIiwicmVzdCIsInJlc29sdmVkTW9kZSIsInVuZGVmaW5lZCIsIm1lcmdlZFJlcXVlc3RQYXJhbXMiLCJhc3NpZ24iLCJfdXNlRmllbGRSZXF1ZXN0IiwidXNlRmllbGRSZXF1ZXN0IiwiX3VzZUZpZWxkUmVxdWVzdDIiLCJfc2xpY2VkVG9BcnJheTIiLCJyZXF1ZXN0TG9hZGluZyIsInJlcXVlc3RPcHRpb25zIiwiZGVib3VuY2VSZWYiLCJ1c2VSZWYiLCJvcmlnaW5hbE9uQ2hhbmdlUmVmIiwiZGVib3VuY2VkT25DaGFuZ2UiLCJ1c2VDYWxsYmFjayIsIl9sZW4iLCJhcmd1bWVudHMiLCJhcmdzIiwiQXJyYXkiLCJfa2V5IiwiX2EyIiwiY3VycmVudCIsImFwcGx5IiwiY29uY2F0IiwiY2xlYXJUaW1lb3V0Iiwic2V0VGltZW91dCIsIl9hMyIsInVzZUVmZmVjdCIsIm1hcHBlZCIsIndpZHRoU3R5bGUiLCJyZXNvbHZlV2lkdGgiLCJmaWVsZFN0eWxlIiwic3R5bGUiLCJtZXJnZWRTdHlsZSIsIm1lcmdlZE9wdGlvbnMiLCJvcHRpb25zIiwidmFsdWVFbnVtVG9PcHRpb25zIiwiY29tcG9uZW50UHJvcHMiLCJsb2FkaW5nIiwiZnAiLCJvbkNoYW5nZSIsIl9qc3giLCJQcm9Gb3JtSXRlbSIsInJlYWRvbmx5UmVuZGVyIiwidmFsdWUiLCJjaGlsZHJlbiIsIlByb0Zvcm1GaWVsZENvbXBvbmVudCIsIlByb0Zvcm1EZXBlbmRlbmN5IiwiZGVwVmFsdWVzIiwiTWVtb2l6ZWRGaWVsZCIsIm1lbW8iLCJfZGVmYXVsdCIsImV4cG9ydHMiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQVdBLElBQUFBLFdBQUEsR0FBQUMsT0FBQTtBQ1hBLElBQUFDLE1BQUEsR0FBQUQsT0FBQTtBQUVBLElBQUFFLFlBQUEsR0FBQUYsT0FBQTtBQUNBLElBQUFHLGtCQUFBLEdBQUFILE9BQUE7QUFDQSxJQUFBSSxpQkFBQSxHQUFBSixPQUFBO0FBQ0EsSUFBQUssTUFBQSxHQUFBTCxPQUFBO0FETEEsSUFBSU0sTUFBTSxHQUFJLFVBQVEsU0FBS0EsTUFBTSxJQUFLLFVBQVVDLENBQUMsRUFBRUMsQ0FBQyxFQUFFO0VBQ2xELElBQUlDLENBQUMsR0FBRyxDQUFDLENBQUM7RUFDVixLQUFLLElBQUlDLENBQUMsSUFBSUgsQ0FBQyxFQUFFLElB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bGUiOiJjb21wb25lbnRzL1Byb0Zvcm0vZmllbGRzL2NyZWF0ZVByb0Zvcm1GaWVsZC5qcyIsInNvdXJjZXNDb250ZW50IjpbInZhciBfX3Jlc3QgPSAodGhpcyAmJiB0aGlzLl9fcmVzdCkgfHwgZnVuY3Rpb24gKHMsIGUpIHtcbiAgICB2YXIgdCA9IHt9O1xuICAgIGZvciAodmFyIHAgaW4gcykgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzLCBwKSAmJiBlLmluZGV4T2YocCkgPCAwKVxuICAgICAgICB0W3BdID0gc1twXTtcbiAgICBpZiAocyAhPSBudWxsICYmIHR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzID09PSBcImZ1bmN0aW9uXCIpXG4gICAgICAgIGZvciAodmFyIGkgPSAwLCBwID0gT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhzKTsgaSA8IHAubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGlmIChlLmluZGV4T2YocFtpXSkgPCAwICYmIE9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChzLCBwW2ldKSlcbiAgICAgICAgICAgICAgICB0W3BbaV1dID0gc1twW2ldXTtcbiAgICAgICAgfVxuICAgIHJldHVybiB0O1xufTtcbmltcG9ydCB7IGpzeCBhcyBfanN4IH0gZnJvbSBcInJlYWN0L2pzeC1ydW50aW1lXCI7XG5pbXBvcnQgeyBtZW1vLCB1c2VFZmZlY3QsIHVzZVJlZiwgdXNlQ2FsbGJhY2sgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBQcm9Gb3JtSXRlbSB9IGZyb20gJy4uL1Byb0Zvcm1JdGVtJztcbmltcG9ydCB7IFByb0Zvcm1EZXBlbmRlbmN5IH0gZnJvbSAnLi4vUHJvRm9ybURlcGVuZGVuY3knO1xuaW1wb3J0IHsgdXNlRmllbGRSZXF1ZXN0IH0gZnJvbSAnLi4vaG9va3MvdXNlRmllbGRSZXF1ZXN0JztcbmltcG9ydCB7IHJlc29sdmVXaWR0aCwgdmFsdWVFbnVtVG9PcHRpb25zIH0gZnJvbSAnLi4vdXRpbHMnO1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBjcmVhdGVQcm9Gb3JtRmllbGQg4oCUIGZhY3RvcnkgdGhhdCBwcm9kdWNlcyBhIFByb0Zvcm0tYXdhcmUgZmllbGQgY29tcG9uZW50XG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVQcm9Gb3JtRmllbGQoY29uZmlnKSB7XG4gICAgY29uc3QgeyBjb21wb25lbnQ6IENvbXBvbmVudCwgbWFwUHJvcHMsIHJlbmRlclJlYWRvbmx5LCB9ID0gY29uZmlnO1xuICAgIC8vIElubmVyIGNvbXBvbmVudCDigJQgaGFuZGxlcyBtb2RlLCByZXF1ZXN0LCB2YWx1ZUVudW0sIGRlYm91bmNlLCByZW5kZXJcbiAgICBjb25zdCBJbm5lckZpZWxkID0gKHByb3BzKSA9PiB7XG4gICAgICAgIGNvbnN0IF9hID0gcHJvcHMsIHsgbmFtZSwgbGFiZWwsIHJ1bGVzLCByZXF1aXJlZCwgaGVscCwgdmFsaWRhdGVTdGF0dXMsIGNvbG9uLCByZWFkb25seSwgbW9kZTogbW9kZVByb3AsIGhpZGRlbiwgY29sUHJvcHMsIGZpZWxkUHJvcHMsIHBsYWNlaG9sZGVyLCBkaXNhYmxlZCwgd2lkdGgsIHRyYW5zZm9ybSwgY29udmVydFZhbHVlLCBcbiAgICAgICAgLy8gRmllbGQtbGV2ZWwgZmVhdHVyZXNcbiAgICAgICAgZGVwZW5kZW5jaWVzOiBfZGVwcywgcmVxdWVzdCwgcGFyYW1zLCB2YWx1ZUVudW0sIGRlYm91bmNlVGltZSwgZGVwZW5kZW5jaWVzVmFsdWVzIH0gPSBfYSwgcmVzdCA9IF9fcmVzdChfYSwgW1wibmFtZVwiLCBcImxhYmVsXCIsIFwicnVsZXNcIiwgXCJyZXF1aXJlZFwiLCBcImhlbHBcIiwgXCJ2YWxpZGF0ZVN0YXR1c1wiLCBcImNvbG9uXCIsIFwicmVhZG9ubHlcIiwgXCJtb2RlXCIsIFwiaGlkZGVuXCIsIFwiY29sUHJvcHNcIiwgXCJmaWVsZFByb3BzXCIsIFwicGxhY2Vob2xkZXJcIiwgXCJkaXNhYmxlZFwiLCBcIndpZHRoXCIsIFwidHJhbnNmb3JtXCIsIFwiY29udmVydFZhbHVlXCIsIFwiZGVwZW5kZW5jaWVzXCIsIFwicmVxdWVzdFwiLCBcInBhcmFtc1wiLCBcInZhbHVlRW51bVwiLCBcImRlYm91bmNlVGltZVwiLCBcImRlcGVuZGVuY2llc1ZhbHVlc1wiXSk7XG4gICAgICAgIC8vIE1vZGUgcmVzb2x1dGlvbjogZXhwbGljaXQgbW9kZSA+IGxlZ2FjeSByZWFkb25seSA+IGN0eC5tb2RlIChQcm9Gb3JtSXRlbSlcbiAgICAgICAgY29uc3QgcmVzb2x2ZWRNb2RlID0gbW9kZVByb3AgIT09IG51bGwgJiYgbW9kZVByb3AgIT09IHZvaWQgMCA/IG1vZGVQcm9wIDogKHJlYWRvbmx5ICE9PSB1bmRlZmluZWQgPyAocmVhZG9ubHkgPyAncmVhZCcgOiAnZWRpdCcpIDogdW5kZWZpbmVkKTtcbiAgICAgICAgLy8g4pSA4pSAIEZpZWxkLWxldmVsIHJlcXVlc3Qg4pSA4pSAXG4gICAgICAgIGNvbnN0IG1lcmdlZFJlcXVlc3RQYXJhbXMgPSBkZXBlbmRlbmNpZXNWYWx1ZXNcbiAgICAgICAgICAgID8gT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCBwYXJhbXMpLCBkZXBlbmRlbmNpZXNWYWx1ZXMpIDogcGFyYW1zO1xuICAgICAgICBjb25zdCBbcmVxdWVzdExvYWRpbmcsIHJlcXVlc3RPcHRpb25zXSA9IHVzZUZpZWxkUmVxdWVzdChyZXF1ZXN0LCBtZXJnZWRSZXF1ZXN0UGFyYW1zKTtcbiAgICAgICAgLy8g4pSA4pSAIERlYm91bmNlIG9uQ2hhbmdlIOKUgOKUgFxuICAgICAgICBjb25zdCBkZWJvdW5jZVJlZiA9IHVzZVJlZihudWxsKTtcbiAgICAgICAgY29uc3Qgb3JpZ2luYWxPbkNoYW5nZVJlZiA9IHVzZVJlZih1bmRlZmluZWQpO1xuICAgICAgICBjb25zdCBkZWJvdW5jZWRPbkNoYW5nZSA9IHVzZUNhbGxiYWNrKCguLi5hcmdzKSA9PiB7XG4gICAgICAgICAgICB2YXIgX2E7XG4gICAgICAgICAgICBpZiAoIWRlYm91bmNlVGltZSB8fCBkZWJvdW5jZVRpbWUgPD0gMCkge1xuICAgICAgICAgICAgICAgIChfYSA9IG9yaWdpbmFsT25DaGFuZ2VSZWYuY3VycmVudCkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmNhbGwob3JpZ2luYWxPbkNoYW5nZVJlZiwgLi4uYXJncyk7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRlYm91bmNlUmVmLmN1cnJlbnQpXG4gICAgICAgICAgICAgICAgY2xlYXJUaW1lb3V0KGRlYm91bmNlUmVmLmN1cnJlbnQpO1xuICAgICAgICAgICAgZGVib3VuY2VSZWYuY3VycmVudCA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHZhciBfYTtcbiAgICAgICAgICAgICAgICAoX2EgPSBvcmlnaW5hbE9uQ2hhbmdlUmVmLmN1cnJlbnQpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5jYWxsKG9yaWdpbmFsT25DaGFuZ2VSZWYsIC4uLmFyZ3MpO1xuICAgICAgICAgICAgfSwgZGVib3VuY2VUaW1lKTtcbiAgICAgICAgfSwgW2RlYm91bmNlVGltZV0pO1xuICAgICAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoZGVib3VuY2VSZWYuY3VycmVudClcbiAgICAgICAgICAgICAgICAgICAgY2xlYXJUaW1lb3V0KGRlYm91bmNlUmVmLmN1cnJlbnQpO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgfSwgW10pO1xuICAgICAgICAvLyBCdWlsZCB0aGUgZmllbGQgY2hpbGRcbiAgICAgICAgY29uc3QgbWFwcGVkID0gbWFwUHJvcHMgPyBtYXBQcm9wcyhyZXN0KSA6IHt9O1xuICAgICAgICBjb25zdCB3aWR0aFN0eWxlID0gd2lkdGggIT09IHVuZGVmaW5lZCA/IHsgd2lkdGg6IHJlc29sdmVXaWR0aCh3aWR0aCkgfSA6IHVuZGVmaW5lZDtcbiAgICAgICAgY29uc3QgZmllbGRTdHlsZSA9IGZpZWxkUHJvcHMgPT09IG51bGwgfHwgZmllbGRQcm9wcyA9PT0gdm9pZCAwID8gdm9pZCAwIDogZmllbGRQcm9wcy5zdHlsZTtcbiAgICAgICAgY29uc3QgbWVyZ2VkU3R5bGUgPSB3aWR0aFN0eWxlXG4gICAgICAgICAgICA/IE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgKGZpZWxkU3R5bGUgfHwge30pKSwgd2lkdGhTdHlsZSkgOiBmaWVsZFN0eWxlO1xuICAgICAgICAvLyBNZXJnZSB2YWx1ZUVudW0gKyByZXF1ZXN0IG9wdGlvbnMgaW50byBmaWVsZFByb3BzLm9wdGlvbnNcbiAgICAgICAgbGV0IG1lcmdlZE9wdGlvbnMgPSBmaWVsZFByb3BzID09PSBudWxsIHx8IGZpZWxkUHJvcHMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGZpZWxkUHJvcHMub3B0aW9ucztcbiAgICAgICAgaWYgKHZhbHVlRW51bSkge1xuICAgICAgICAgICAgbWVyZ2VkT3B0aW9ucyA9IHZhbHVlRW51bVRvT3B0aW9ucyh2YWx1ZUVudW0pO1xuICAgICAgICB9XG4gICAgICAgIGlmIChyZXF1ZXN0T3B0aW9ucy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICBtZXJnZWRPcHRpb25zID0gcmVxdWVzdE9wdGlvbnM7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgY29tcG9uZW50UHJvcHMgPSBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCBtYXBwZWQpLCAoZmllbGRQcm9wcyB8fCB7fSkpLCAobWVyZ2VkT3B0aW9ucyAhPT0gdW5kZWZpbmVkID8geyBvcHRpb25zOiBtZXJnZWRPcHRpb25zIH0gOiB7fSkpLCAocmVxdWVzdExvYWRpbmcgPyB7IGxvYWRpbmc6IHRydWUgfSA6IHt9KSksIChwbGFjZWhvbGRlciAhPT0gdW5kZWZpbmVkID8geyBwbGFjZWhvbGRlciB9IDoge30pKSwgKGRpc2FibGVkICE9PSB1bmRlZmluZWQgPyB7IGRpc2FibGVkIH0gOiB7fSkpLCAobWVyZ2VkU3R5bGUgPyB7IHN0eWxlOiBtZXJnZWRTdHlsZSB9IDoge30pKTtcbiAgICAgICAgLy8gV2lyZSBkZWJvdW5jZSDigJQgY2FwdHVyZSB0aGUgdXNlcidzIG9uQ2hhbmdlIGJlZm9yZSBQcm9Gb3JtSXRlbSBpbmplY3RzIGl0cyBvd25cbiAgICAgICAgaWYgKGRlYm91bmNlVGltZSAmJiBkZWJvdW5jZVRpbWUgPiAwKSB7XG4gICAgICAgICAgICBjb25zdCBmcCA9IGNvbXBvbmVudFByb3BzO1xuICAgICAgICAgICAgb3JpZ2luYWxPbkNoYW5nZVJlZi5jdXJyZW50ID0gZnAub25DaGFuZ2U7XG4gICAgICAgICAgICBmcC5vbkNoYW5nZSA9IGRlYm91bmNlZE9uQ2hhbmdlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiAoX2pzeChQcm9Gb3JtSXRlbSwgeyBuYW1lOiBuYW1lLCBsYWJlbDogbGFiZWwsIHJ1bGVzOiBydWxlcywgcmVxdWlyZWQ6IHJlcXVpcmVkLCBoZWxwOiBoZWxwLCB2YWxpZGF0ZVN0YXR1czogdmFsaWRhdGVTdGF0dXMsIGNvbG9uOiBjb2xvbiwgaGlkZGVuOiBoaWRkZW4sIG1vZGU6IHJlc29sdmVkTW9kZSwgY29sUHJvcHM6IGNvbFByb3BzLCB0cmFuc2Zvcm06IHRyYW5zZm9ybSwgY29udmVydFZhbHVlOiBjb252ZXJ0VmFsdWUsIHJlYWRvbmx5UmVuZGVyOiByZW5kZXJSZWFkb25seSA/ICh2YWx1ZSkgPT4gcmVuZGVyUmVhZG9ubHkodmFsdWUpIDogdW5kZWZpbmVkLCBjaGlsZHJlbjogX2pzeChDb21wb25lbnQsIE9iamVjdC5hc3NpZ24oe30sIGNvbXBvbmVudFByb3BzKSkgfSkpO1xuICAgIH07XG4gICAgLy8gT3V0ZXIgY29tcG9uZW50IOKAlCBoYW5kbGVzIGF1dG8td3JhcHBpbmcgd2l0aCBQcm9Gb3JtRGVwZW5kZW5jeVxuICAgIGNvbnN0IFByb0Zvcm1GaWVsZENvbXBvbmVudCA9IChwcm9wcykgPT4ge1xuICAgICAgICBjb25zdCB7IGRlcGVuZGVuY2llcyB9ID0gcHJvcHM7XG4gICAgICAgIGlmIChkZXBlbmRlbmNpZXMgJiYgZGVwZW5kZW5jaWVzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIHJldHVybiAoX2pzeChQcm9Gb3JtRGVwZW5kZW5jeSwgeyBuYW1lOiBkZXBlbmRlbmNpZXMsIGNoaWxkcmVuOiAoZGVwVmFsdWVzKSA9PiAoX2pzeChJbm5lckZpZWxkLCBPYmplY3QuYXNzaWduKHt9LCBwcm9wcywgeyBkZXBlbmRlbmNpZXNWYWx1ZXM6IGRlcFZhbHVlcyB9KSkpIH0pKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gX2pzeChJbm5lckZpZWxkLCBPYmplY3QuYXNzaWduKHt9LCBwcm9wcykpO1xuICAgIH07XG4gICAgY29uc3QgTWVtb2l6ZWRGaWVsZCA9IG1lbW8oUHJvRm9ybUZpZWxkQ29tcG9uZW50KTtcbiAgICByZXR1cm4gTWVtb2l6ZWRGaWVsZDtcbn1cbmV4cG9ydCBkZWZhdWx0IGNyZWF0ZVByb0Zvcm1GaWVsZDsiLG51bGxdLCJzb3VyY2VSb290IjoiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjIn0=
|