@1money/component-ui 0.0.73 → 0.0.74
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/es/components/ProForm/ProForm.js +201 -48
- package/es/components/ProForm/ProFormDependency.d.ts +11 -2
- package/es/components/ProForm/ProFormDependency.js +29 -136
- package/es/components/ProForm/ProFormItem.js +81 -24
- package/es/components/ProForm/ProFormList.js +114 -62
- package/es/components/ProForm/Submitter.js +15 -4
- package/es/components/ProForm/context.d.ts +11 -3
- package/es/components/ProForm/context.js +32 -12
- package/es/components/ProForm/core/constants.d.ts +10 -2
- package/es/components/ProForm/core/constants.js +17 -3
- package/es/components/ProForm/core/formStore.d.ts +24 -0
- package/es/components/ProForm/core/formStore.js +101 -0
- package/es/components/ProForm/core/hooks/useForm.d.ts +4 -1
- package/es/components/ProForm/core/hooks/useForm.js +220 -120
- package/es/components/ProForm/core/hooks/useFormCore.d.ts +5 -1
- package/es/components/ProForm/core/hooks/useFormCore.js +114 -90
- package/es/components/ProForm/core/runRules.d.ts +5 -3
- package/es/components/ProForm/core/runRules.js +13 -5
- package/es/components/ProForm/core/useFormItem.d.ts +2 -2
- package/es/components/ProForm/core/useFormItem.js +46 -23
- package/es/components/ProForm/fields/ProFormFieldSet.js +20 -7
- package/es/components/ProForm/fields/createProFormField.js +14 -4
- package/es/components/ProForm/hooks/useFieldRequest.d.ts +6 -1
- package/es/components/ProForm/hooks/useFieldRequest.js +54 -9
- package/es/components/ProForm/hooks/useUrlSync.d.ts +16 -0
- package/es/components/ProForm/hooks/useUrlSync.js +170 -0
- package/es/components/ProForm/index.d.ts +2 -2
- package/es/components/ProForm/index.js +1 -1
- package/es/components/ProForm/interface.d.ts +105 -23
- package/es/components/ProForm/layouts/DialogForm.js +17 -7
- package/es/components/ProForm/layouts/DrawerForm.js +16 -7
- package/es/components/ProForm/layouts/QueryFilter.js +46 -135
- package/es/components/ProForm/layouts/useOverlayForm.d.ts +2 -2
- package/es/components/ProForm/layouts/useOverlayForm.js +27 -8
- package/es/components/ProForm/style/ProForm.css +0 -6
- package/es/components/ProForm/utils.js +32 -8
- package/es/components/ProTable/ProTable.js +3 -3
- package/es/index.css +1 -1
- package/es/index.d.ts +1 -1
- package/es/index.js +1 -1
- package/lib/components/ProForm/ProForm.js +201 -48
- package/lib/components/ProForm/ProFormDependency.d.ts +11 -2
- package/lib/components/ProForm/ProFormDependency.js +30 -138
- package/lib/components/ProForm/ProFormItem.js +78 -21
- package/lib/components/ProForm/ProFormList.js +112 -60
- package/lib/components/ProForm/Submitter.js +15 -4
- package/lib/components/ProForm/context.d.ts +11 -3
- package/lib/components/ProForm/context.js +33 -13
- package/lib/components/ProForm/core/constants.d.ts +10 -2
- package/lib/components/ProForm/core/constants.js +18 -4
- package/lib/components/ProForm/core/formStore.d.ts +24 -0
- package/lib/components/ProForm/core/formStore.js +110 -0
- package/lib/components/ProForm/core/hooks/useForm.d.ts +4 -1
- package/lib/components/ProForm/core/hooks/useForm.js +220 -120
- package/lib/components/ProForm/core/hooks/useFormCore.d.ts +5 -1
- package/lib/components/ProForm/core/hooks/useFormCore.js +113 -89
- package/lib/components/ProForm/core/runRules.d.ts +5 -3
- package/lib/components/ProForm/core/runRules.js +13 -5
- package/lib/components/ProForm/core/useFormItem.d.ts +2 -2
- package/lib/components/ProForm/core/useFormItem.js +44 -21
- package/lib/components/ProForm/fields/ProFormFieldSet.js +19 -6
- package/lib/components/ProForm/fields/createProFormField.js +14 -4
- package/lib/components/ProForm/hooks/useFieldRequest.d.ts +6 -1
- package/lib/components/ProForm/hooks/useFieldRequest.js +53 -8
- package/lib/components/ProForm/hooks/useUrlSync.d.ts +16 -0
- package/lib/components/ProForm/hooks/useUrlSync.js +178 -0
- package/lib/components/ProForm/index.d.ts +2 -2
- package/lib/components/ProForm/index.js +1 -1
- package/lib/components/ProForm/interface.d.ts +105 -23
- package/lib/components/ProForm/layouts/DialogForm.js +17 -7
- package/lib/components/ProForm/layouts/DrawerForm.js +16 -7
- package/lib/components/ProForm/layouts/QueryFilter.js +45 -134
- package/lib/components/ProForm/layouts/useOverlayForm.d.ts +2 -2
- package/lib/components/ProForm/layouts/useOverlayForm.js +30 -8
- package/lib/components/ProForm/style/ProForm.css +0 -6
- package/lib/components/ProForm/utils.js +32 -8
- package/lib/components/ProTable/ProTable.js +3 -3
- package/lib/index.css +1 -1
- package/lib/index.d.ts +1 -1
- package/lib/index.js +1 -1
- package/package.json +1 -1
- package/scripts/mcp-server/examples.generated.json +36 -0
- package/scripts/mcp-server/index.generated.json +538 -16
|
@@ -1,42 +1,15 @@
|
|
|
1
|
-
import _regeneratorRuntime from "@babel/runtime/regenerator";
|
|
2
|
-
var __awaiter = this && this.__awaiter || function (thisArg, _arguments, P, generator) {
|
|
3
|
-
function adopt(value) {
|
|
4
|
-
return value instanceof P ? value : new P(function (resolve) {
|
|
5
|
-
resolve(value);
|
|
6
|
-
});
|
|
7
|
-
}
|
|
8
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
9
|
-
function fulfilled(value) {
|
|
10
|
-
try {
|
|
11
|
-
step(generator.next(value));
|
|
12
|
-
} catch (e) {
|
|
13
|
-
reject(e);
|
|
14
|
-
}
|
|
15
|
-
}
|
|
16
|
-
function rejected(value) {
|
|
17
|
-
try {
|
|
18
|
-
step(generator["throw"](value));
|
|
19
|
-
} catch (e) {
|
|
20
|
-
reject(e);
|
|
21
|
-
}
|
|
22
|
-
}
|
|
23
|
-
function step(result) {
|
|
24
|
-
result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
|
|
25
|
-
}
|
|
26
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
27
|
-
});
|
|
28
|
-
};
|
|
29
1
|
import { Fragment as _Fragment, jsx as _jsx } from "react/jsx-runtime";
|
|
30
2
|
import React, { memo, useMemo } from 'react';
|
|
31
|
-
import {
|
|
3
|
+
import { useProFormStable, useProFormStore, useFormListContext } from './context';
|
|
4
|
+
import { useStoreSelector, shallowEqualArrays } from './core/formStore';
|
|
32
5
|
import { getNestedValue } from './utils';
|
|
33
6
|
var ProFormDependencyBase = function ProFormDependencyBase(_ref) {
|
|
34
7
|
var name = _ref.name,
|
|
35
8
|
ignoreFormListField = _ref.ignoreFormListField,
|
|
36
9
|
children = _ref.children;
|
|
37
|
-
var
|
|
38
|
-
|
|
39
|
-
|
|
10
|
+
var _useProFormStable = useProFormStable(),
|
|
11
|
+
formInstance = _useProFormStable.formInstance;
|
|
12
|
+
var store = useProFormStore();
|
|
40
13
|
var formListCtx = useFormListContext();
|
|
41
14
|
// Resolve the actual paths to watch, considering FormList scope
|
|
42
15
|
var resolvedPaths = useMemo(function () {
|
|
@@ -45,119 +18,39 @@ var ProFormDependencyBase = function ProFormDependencyBase(_ref) {
|
|
|
45
18
|
return shouldPrefix ? "".concat(formListCtx.listName, ".").concat(fieldName) : fieldName;
|
|
46
19
|
});
|
|
47
20
|
}, [name, ignoreFormListField, formListCtx.listName]);
|
|
21
|
+
// Subscribe ONLY to the watched paths: a commit that leaves every watched
|
|
22
|
+
// value Object.is-equal short-circuits, so children are NOT re-invoked when
|
|
23
|
+
// unrelated fields change. Reactivity tracks the RAW values; the payload
|
|
24
|
+
// below is derived from the FORMATTED values.
|
|
25
|
+
var watchedArray = useStoreSelector(store, function (state) {
|
|
26
|
+
return resolvedPaths.map(function (path) {
|
|
27
|
+
return path.includes('.') ? getNestedValue(state.values, path) : state.values[path];
|
|
28
|
+
});
|
|
29
|
+
}, shallowEqualArrays);
|
|
48
30
|
var watchedValues = useMemo(function () {
|
|
31
|
+
// Children receive FORMATTED values (dateFormatter + transform applied),
|
|
32
|
+
// matching what onFinish would submit for those fields. A transform that
|
|
33
|
+
// RENAMES its key deletes the original path from the formatted object —
|
|
34
|
+
// fall back to the raw value so the watcher still sees the field.
|
|
35
|
+
var formatted = formInstance.getFieldFormatValueObject();
|
|
49
36
|
var result = {};
|
|
50
37
|
for (var i = 0; i < name.length; i++) {
|
|
51
|
-
var originalName = name[i];
|
|
52
|
-
var resolvedPath = resolvedPaths[i];
|
|
53
38
|
// Use the original name as key so children get clean keys
|
|
54
|
-
|
|
39
|
+
var path = resolvedPaths[i];
|
|
40
|
+
var value = watchedArray[i];
|
|
41
|
+
var formattedValue = path.includes('.') ? getNestedValue(formatted, path) : path in formatted ? formatted[path] : undefined;
|
|
42
|
+
if (formattedValue !== undefined) {
|
|
43
|
+
value = formattedValue;
|
|
44
|
+
}
|
|
45
|
+
result[name[i]] = value;
|
|
55
46
|
}
|
|
56
47
|
return result;
|
|
57
|
-
}, [name, resolvedPaths,
|
|
58
|
-
// Fallback form instance for standalone usage (outside ProForm)
|
|
59
|
-
var fallbackInstance = useMemo(function () {
|
|
60
|
-
return {
|
|
61
|
-
submit: function submit() {
|
|
62
|
-
return __awaiter(void 0, void 0, void 0, /*#__PURE__*/_regeneratorRuntime.mark(function _callee() {
|
|
63
|
-
return _regeneratorRuntime.wrap(function (_context) {
|
|
64
|
-
while (1) switch (_context.prev = _context.next) {
|
|
65
|
-
case 0:
|
|
66
|
-
return _context.abrupt("return", undefined);
|
|
67
|
-
case 1:
|
|
68
|
-
case "end":
|
|
69
|
-
return _context.stop();
|
|
70
|
-
}
|
|
71
|
-
}, _callee);
|
|
72
|
-
}));
|
|
73
|
-
},
|
|
74
|
-
resetFields: function resetFields() {},
|
|
75
|
-
getFieldValue: function getFieldValue(n) {
|
|
76
|
-
return n.includes('.') ? getNestedValue(values, n) : values[n];
|
|
77
|
-
},
|
|
78
|
-
getFieldsValue: function getFieldsValue() {
|
|
79
|
-
return values;
|
|
80
|
-
},
|
|
81
|
-
setFieldsValue: function setFieldsValue() {},
|
|
82
|
-
setFieldValue: function setFieldValue() {},
|
|
83
|
-
validateFields: function validateFields() {
|
|
84
|
-
return __awaiter(void 0, void 0, void 0, /*#__PURE__*/_regeneratorRuntime.mark(function _callee2() {
|
|
85
|
-
return _regeneratorRuntime.wrap(function (_context2) {
|
|
86
|
-
while (1) switch (_context2.prev = _context2.next) {
|
|
87
|
-
case 0:
|
|
88
|
-
return _context2.abrupt("return", values);
|
|
89
|
-
case 1:
|
|
90
|
-
case "end":
|
|
91
|
-
return _context2.stop();
|
|
92
|
-
}
|
|
93
|
-
}, _callee2);
|
|
94
|
-
}));
|
|
95
|
-
},
|
|
96
|
-
getFieldError: function getFieldError() {
|
|
97
|
-
return undefined;
|
|
98
|
-
},
|
|
99
|
-
getFieldWarning: function getFieldWarning() {
|
|
100
|
-
return undefined;
|
|
101
|
-
},
|
|
102
|
-
getFieldsError: function getFieldsError() {
|
|
103
|
-
return {};
|
|
104
|
-
},
|
|
105
|
-
isFieldTouched: function isFieldTouched() {
|
|
106
|
-
return false;
|
|
107
|
-
},
|
|
108
|
-
isFieldsTouched: function isFieldsTouched() {
|
|
109
|
-
return false;
|
|
110
|
-
},
|
|
111
|
-
isFieldValidating: function isFieldValidating() {
|
|
112
|
-
return false;
|
|
113
|
-
},
|
|
114
|
-
setFieldError: function setFieldError() {},
|
|
115
|
-
setFieldsError: function setFieldsError() {},
|
|
116
|
-
setFieldTouched: function setFieldTouched() {},
|
|
117
|
-
setFieldsTouched: function setFieldsTouched() {},
|
|
118
|
-
defineField: function defineField() {
|
|
119
|
-
return function () {
|
|
120
|
-
return null;
|
|
121
|
-
};
|
|
122
|
-
},
|
|
123
|
-
registerField: function registerField() {},
|
|
124
|
-
unregisterField: function unregisterField() {},
|
|
125
|
-
getFieldsFormatValue: function getFieldsFormatValue() {
|
|
126
|
-
return values;
|
|
127
|
-
},
|
|
128
|
-
validateFieldsReturnFormatValue: function validateFieldsReturnFormatValue() {
|
|
129
|
-
return __awaiter(void 0, void 0, void 0, /*#__PURE__*/_regeneratorRuntime.mark(function _callee3() {
|
|
130
|
-
return _regeneratorRuntime.wrap(function (_context3) {
|
|
131
|
-
while (1) switch (_context3.prev = _context3.next) {
|
|
132
|
-
case 0:
|
|
133
|
-
return _context3.abrupt("return", {
|
|
134
|
-
success: false
|
|
135
|
-
});
|
|
136
|
-
case 1:
|
|
137
|
-
case "end":
|
|
138
|
-
return _context3.stop();
|
|
139
|
-
}
|
|
140
|
-
}, _callee3);
|
|
141
|
-
}));
|
|
142
|
-
},
|
|
143
|
-
submitForm: function submitForm() {
|
|
144
|
-
return __awaiter(void 0, void 0, void 0, /*#__PURE__*/_regeneratorRuntime.mark(function _callee4() {
|
|
145
|
-
return _regeneratorRuntime.wrap(function (_context4) {
|
|
146
|
-
while (1) switch (_context4.prev = _context4.next) {
|
|
147
|
-
case 0:
|
|
148
|
-
case "end":
|
|
149
|
-
return _context4.stop();
|
|
150
|
-
}
|
|
151
|
-
}, _callee4);
|
|
152
|
-
}));
|
|
153
|
-
}
|
|
154
|
-
};
|
|
155
|
-
}, [values]);
|
|
48
|
+
}, [name, resolvedPaths, watchedArray, formInstance]);
|
|
156
49
|
return _jsx(_Fragment, {
|
|
157
|
-
children: children(watchedValues, formInstance
|
|
50
|
+
children: children(watchedValues, formInstance)
|
|
158
51
|
});
|
|
159
52
|
};
|
|
160
53
|
ProFormDependencyBase.displayName = 'ProFormDependency';
|
|
161
54
|
export var ProFormDependency = /*#__PURE__*/memo(ProFormDependencyBase);
|
|
162
55
|
export default ProFormDependency;
|
|
163
|
-
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvUHJvRm9ybS9Qcm9Gb3JtRGVwZW5kZW5jeS5qcyIsImNvbXBvbmVudHMvc3JjL2NvbXBvbmVudHMvUHJvRm9ybS9Qcm9Gb3JtRGVwZW5kZW5jeS50c3giXSwibmFtZXMiOlsiX19hd2FpdGVyIiwidGhpc0FyZyIsIl9hcmd1bWVudHMiLCJQIiwiZ2VuZXJhdG9yIiwiYWRvcHQiLCJ2YWx1ZSIsInJlc29sdmUiLCJQcm9taXNlIiwicmVqZWN0IiwiZnVsZmlsbGVkIiwic3RlcCIsIm5leHQiLCJlIiwicmVqZWN0ZWQiLCJyZXN1bHQiLCJkb25lIiwidGhlbiIsImFwcGx5IiwiRnJhZ21lbnQiLCJfRnJhZ21lbnQiLCJqc3giLCJfanN4IiwiUmVhY3QiLCJtZW1vIiwidXNlTWVtbyIsInVzZVByb0Zvcm1Db250ZXh0IiwidXNlRm9ybUxpc3RDb250ZXh0IiwiZ2V0TmVzdGVkVmFsdWUiLCJQcm9Gb3JtRGVwZW5kZW5jeUJhc2UiLCJfcmVmIiwibmFtZSIsImlnbm9yZUZvcm1MaXN0RmllbGQiLCJjaGlsZHJlbiIsIl91c2VQcm9Gb3JtQ29udGV4dCIsInZhbHVlcyIsImZvcm1JbnN0YW5jZSIsImZvcm1MaXN0Q3R4IiwicmVzb2x2ZWRQYXRocyIsInNob3VsZFByZWZpeCIsImxpc3ROYW1lIiwidW5kZWZpbmVkIiwibWFwIiwiZmllbGROYW1lIiwiY29uY2F0Iiwid2F0Y2hlZFZhbHVlcyIsImkiLCJsZW5ndGgiLCJvcmlnaW5hbE5hbWUiLCJyZXNvbHZlZFBhdGgiLCJpbmNsdWRlcyIsImZhbGxiYWNrSW5zdGFuY2UiLCJzdWJtaXQiLCJfcmVnZW5lcmF0b3JSdW50aW1lIiwibWFyayIsIl9jYWxsZWUiLCJ3cmFwIiwiX2NvbnRleHQiLCJwcmV2IiwiYWJydXB0Iiwic3RvcCIsInJlc2V0RmllbGRzIiwiZ2V0RmllbGRWYWx1ZSIsIm4iLCJnZXRGaWVsZHNWYWx1ZSIsInNldEZpZWxkc1ZhbHVlIiwic2V0RmllbGRWYWx1ZSIsInZhbGlkYXRlRmllbGRzIiwiX2NhbGxlZTIiLCJfY29udGV4dDIiLCJnZXRGaWVsZEVycm9yIiwiZ2V0RmllbGRXYXJuaW5nIiwiZ2V0RmllbGRzRXJyb3IiLCJpc0ZpZWxkVG91Y2hlZCIsImlzRmllbGRzVG91Y2hlZCIsImlzRmllbGRWYWxpZGF0aW5nIiwic2V0RmllbGRFcnJvciIsInNldEZpZWxkc0Vycm9yIiwic2V0RmllbGRUb3VjaGVkIiwic2V0RmllbGRzVG91Y2hlZCIsImRlZmluZUZpZWxkIiwicmVnaXN0ZXJGaWVsZCIsInVucmVnaXN0ZXJGaWVsZCIsImdldEZpZWxkc0Zvcm1hdFZhbHVlIiwidmFsaWRhdGVGaWVsZHNSZXR1cm5Gb3JtYXRWYWx1ZSIsIl9jYWxsZWUzIiwiX2NvbnRleHQzIiwic3VjY2VzcyIsInN1Ym1pdEZvcm0iLCJfY2FsbGVlNCIsIl9jb250ZXh0NCIsImRpc3BsYXlOYW1lIiwiUHJvRm9ybURlcGVuZGVuY3kiXSwibWFwcGluZ3MiOiI7QUFBQSxJQUFJQSxTQUFTLEdBQUksSUFBSSxJQUFJLElBQUksQ0FBQ0EsU0FBUyxJQUFLLFVBQVVDLE9BQU8sRUFBRUMsVUFBVSxFQUFFQyxDQUFDLEVBQUVDLFNBQVMsRUFBRTtFQUNyRixTQUFTQyxLQUFLQSxDQUFDQyxLQUFLLEVBQUU7SUFBRSxPQUFPQSxLQUFLLFlBQVlILENBQUMsR0FBR0csS0FBSyxHQUFHLElBQUlILENBQUMsQ0FBQyxVQUFVSSxPQUFPLEVBQUU7TUFBRUEsT0FBTyxDQUFDRCxLQUFLLENBQUM7SUFBRSxDQUFDLENBQUM7RUFBRTtFQUMzRyxPQUFPLEtBQUtILENBQUMsS0FBS0EsQ0FBQyxHQUFHSyxPQUFPLENBQUMsRUFBRSxVQUFVRCxPQUFPLEVBQUVFLE1BQU0sRUFBRTtJQUN2RCxTQUFTQyxTQUFTQSxDQUFDSixLQUFLLEVBQUU7TUFBRSxJQUFJO1FBQUVLLElBQUksQ0FBQ1AsU0FBUyxDQUFDUSxJQUFJLENBQUNOLEtBQUssQ0FBQyxDQUFDO01BQUUsQ0FBQyxDQUFDLE9BQU9PLENBQUMsRUFBRTtR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YSxRQUFBLEVBQUdBLFFBQVEsQ0FBQ1ksYUFBYSxFQUFFVCxZQUFZLEtBQUEsSUFBQSxJQUFaQSxZQUFZLEtBQUEsS0FBQSxDQUFBLEdBQVpBLFlBQVksR0FBSWUsZ0JBQWdCO0VBQUMsQ0FBQSxDQUFJO0FBQ3pFLENBQUM7QUFFRHRCLHFCQUFxQixDQUFDOEQsV0FBVyxHQUFHLG1CQUFtQjtBQUV2RCxPQUFPLElBQU1DLGlCQUFpQixnQkFBR3BFLElBQUksQ0FBQ0sscUJBQXFCLENBQUM7QUFFNUQsZUFBZStELGlCQUFpQiIsImZpbGUiOiJjb21wb25lbnRzL1Byb0Zvcm0vUHJvRm9ybURlcGVuZGVuY3kuanMiLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgX19hd2FpdGVyID0gKHRoaXMgJiYgdGhpcy5fX2F3YWl0ZXIpIHx8IGZ1bmN0aW9uICh0aGlzQXJnLCBfYXJndW1lbnRzLCBQLCBnZW5lcmF0b3IpIHtcbiAgICBmdW5jdGlvbiBhZG9wdCh2YWx1ZSkgeyByZXR1cm4gdmFsdWUgaW5zdGFuY2VvZiBQID8gdmFsdWUgOiBuZXcgUChmdW5jdGlvbiAocmVzb2x2ZSkgeyByZXNvbHZlKHZhbHVlKTsgfSk7IH1cbiAgICByZXR1cm4gbmV3IChQIHx8IChQID0gUHJvbWlzZSkpKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHtcbiAgICAgICAgZnVuY3Rpb24gZnVsZmlsbGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yLm5leHQodmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxuICAgICAgICBmdW5jdGlvbiByZWplY3RlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvcltcInRocm93XCJdKHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cbiAgICAgICAgZnVuY3Rpb24gc3RlcChyZXN1bHQpIHsgcmVzdWx0LmRvbmUgPyByZXNvbHZlKHJlc3VsdC52YWx1ZSkgOiBhZG9wdChyZXN1bHQudmFsdWUpLnRoZW4oZnVsZmlsbGVkLCByZWplY3RlZCk7IH1cbiAgICAgICAgc3RlcCgoZ2VuZXJhdG9yID0gZ2VuZXJhdG9yLmFwcGx5KHRoaXNBcmcsIF9hcmd1bWVudHMgfHwgW10pKS5uZXh0KCkpO1xuICAgIH0pO1xufTtcbmltcG9ydCB7IEZyYWdtZW50IGFzIF9GcmFnbWVudCwganN4IGFzIF9qc3ggfSBmcm9tIFwicmVhY3QvanN4LXJ1bnRpbWVcIjtcbmltcG9ydCBSZWFjdCwgeyBtZW1vLCB1c2VNZW1vIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgdXNlUHJvRm9ybUNvbnRleHQsIHVzZUZvcm1MaXN0Q29udGV4dCB9IGZyb20gJy4vY29udGV4dCc7XG5pbXBvcnQgeyBnZXROZXN0ZWRWYWx1ZSB9IGZyb20gJy4vdXRpbHMnO1xuY29uc3QgUHJvRm9ybURlcGVuZGVuY3lCYXNlID0gKHsgbmFtZSwgaWdub3JlRm9ybUxpc3RGaWVsZCwgY2hpbGRyZW4sIH0pID0+IHtcbiAgICBjb25zdCB7IHZhbHVlcywgZm9ybUluc3RhbmNlIH0gPSB1c2VQcm9Gb3JtQ29udGV4dCgpO1xuICAgIGNvbnN0IGZvcm1MaXN0Q3R4ID0gdXNlRm9ybUxpc3RDb250ZXh0KCk7XG4gICAgLy8gUmVzb2x2ZSB0aGUgYWN0dWFsIHBhdGhzIHRvIHdhdGNoLCBjb25zaWRlcmluZyBGb3JtTGlzdCBzY29wZVxuICAgIGNvbnN0IHJlc29sdmVkUGF0aHMgPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgICAgY29uc3Qgc2hvdWxkUHJlZml4ID0gIWlnbm9yZUZvcm1MaXN0RmllbGQgJiYgZm9ybUxpc3RDdHgubGlzdE5hbWUgIT09IHVuZGVmaW5lZDtcbiAgICAgICAgcmV0dXJuIG5hbWUubWFwKChmaWVsZE5hbWUpID0+IHNob3VsZFByZWZpeCA/IGAke2Zvcm1MaXN0Q3R4Lmxpc3ROYW1lfS4ke2ZpZWxkTmFtZX1gIDogZmllbGROYW1lKTtcbiAgICB9LCBbbmFtZSwgaWdub3JlRm9ybUxpc3RGaWVsZCwgZm9ybUxpc3RDdHgubGlzdE5hbWVdKTtcbiAgICBjb25zdCB3YXRjaGVkVmFsdWVzID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IHt9O1xuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IG5hbWUubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGNvbnN0IG9yaWdpbmFsTmFtZSA9IG5hbWVbaV07XG4gICAgICAgICAgICBjb25zdCByZXNvbHZlZFBhdGggPSByZXNvbHZlZFBhdGhzW2ldO1xuICAgICAgICAgICAgLy8gVXNlIHRoZSBvcmlnaW5hbCBuYW1lIGFzIGtleSBzbyBjaGlsZHJlbiBnZXQgY2xlYW4ga2V5c1xuICAgICAgICAgICAgcmVzdWx0W29yaWdpbmFsTmFtZV0gPSByZXNvbHZlZFBhdGguaW5jbHVkZXMoJy4nKVxuICAgICAgICAgICAgICAgID8gZ2V0TmVzdGVkVmFsdWUodmFsdWVzLCByZXNvbHZlZFBhdGgpXG4gICAgICAgICAgICAgICAgOiB2YWx1ZXNbcmVzb2x2ZWRQYXRoXTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH0sIFtuYW1lLCByZXNvbHZlZFBhdGhzLCB2YWx1ZXNdKTtcbiAgICAvLyBGYWxsYmFjayBmb3JtIGluc3RhbmNlIGZvciBzdGFuZGFsb25lIHVzYWdlIChvdXRzaWRlIFByb0Zvcm0pXG4gICAgY29uc3QgZmFsbGJhY2tJbnN0YW5jZSA9IHVzZU1lbW8oKCkgPT4gKHtcbiAgICAgICAgc3VibWl0OiAoKSA9PiBfX2F3YWl0ZXIodm9pZCAwLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHsgcmV0dXJuIHVuZGVmaW5lZDsgfSksXG4gICAgICAgIHJlc2V0RmllbGRzOiAoKSA9PiB7IH0sXG4gICAgICAgIGdldEZpZWxkVmFsdWU6IChuKSA9PiBuLmluY2x1ZGVzKCcuJykgPyBnZXROZXN0ZWRWYWx1ZSh2YWx1ZXMsIG4pIDogdmFsdWVzW25dLFxuICAgICAgICBnZXRGaWVsZHNWYWx1ZTogKCkgPT4gdmFsdWVzLFxuICAgICAgICBzZXRGaWVsZHNWYWx1ZTogKCkgPT4geyB9LFxuICAgICAgICBzZXRGaWVsZFZhbHVlOiAoKSA9PiB7IH0sXG4gICAgICAgIHZhbGlkYXRlRmllbGRzOiAoKSA9PiBfX2F3YWl0ZXIodm9pZCAwLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHsgcmV0dXJuIHZhbHVlczsgfSksXG4gICAgICAgIGdldEZpZWxkRXJyb3I6ICgpID0+IHVuZGVmaW5lZCxcbiAgICAgICAgZ2V0RmllbGRXYXJuaW5nOiAoKSA9PiB1bmRlZmluZWQsXG4gICAgICAgIGdldEZpZWxkc0Vycm9yOiAoKSA9PiAoe30pLFxuICAgICAgICBpc0ZpZWxkVG91Y2hlZDogKCkgPT4gZmFsc2UsXG4gICAgICAgIGlzRmllbGRzVG91Y2hlZDogKCkgPT4gZmFsc2UsXG4gICAgICAgIGlzRmllbGRWYWxpZGF0aW5nOiAoKSA9PiBmYWxzZSxcbiAgICAgICAgc2V0RmllbGRFcnJvcjogKCkgPT4geyB9LFxuICAgICAgICBzZXRGaWVsZHNFcnJvcjogKCkgPT4geyB9LFxuICAgICAgICBzZXRGaWVsZFRvdWNoZWQ6ICgpID0+IHsgfSxcbiAgICAgICAgc2V0RmllbGRzVG91Y2hlZDogKCkgPT4geyB9LFxuICAgICAgICBkZWZpbmVGaWVsZDogKCkgPT4gKCgpID0+IG51bGwpLFxuICAgICAgICByZWdpc3RlckZpZWxkOiAoKSA9PiB7IH0sXG4gICAgICAgIHVucmVnaXN0ZXJGaWVsZDogKCkgPT4geyB9LFxuICAgICAgICBnZXRGaWVsZHNGb3JtYXRWYWx1ZTogKCkgPT4gdmFsdWVzLFxuICAgICAgICB2YWxpZGF0ZUZpZWxkc1JldHVybkZvcm1hdFZhbHVlOiAoKSA9PiBfX2F3YWl0ZXIodm9pZCAwLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHsgcmV0dXJuICh7IHN1Y2Nlc3M6IGZhbHNlIH0pOyB9KSxcbiAgICAgICAgc3VibWl0Rm9ybTogKCkgPT4gX19hd2FpdGVyKHZvaWQgMCwgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7IH0pLFxuICAgIH0pLCBbdmFsdWVzXSk7XG4gICAgcmV0dXJuIF9qc3goX0ZyYWdtZW50LCB7IGNoaWxkcmVuOiBjaGlsZHJlbih3YXRjaGVkVmFsdWVzLCBmb3JtSW5zdGFuY2UgIT09IG51bGwgJiYgZm9ybUluc3RhbmNlICE9PSB2b2lkIDAgPyBmb3JtSW5zdGFuY2UgOiBmYWxsYmFja0luc3RhbmNlKSB9KTtcbn07XG5Qcm9Gb3JtRGVwZW5kZW5jeUJhc2UuZGlzcGxheU5hbWUgPSAnUHJvRm9ybURlcGVuZGVuY3knO1xuZXhwb3J0IGNvbnN0IFByb0Zvcm1EZXBlbmRlbmN5ID0gbWVtbyhQcm9Gb3JtRGVwZW5kZW5jeUJhc2UpO1xuZXhwb3J0IGRlZmF1bHQgUHJvRm9ybURlcGVuZGVuY3k7IixudWxsXSwic291cmNlUm9vdCI6Ii4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYyJ9
|
|
56
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvUHJvRm9ybS9Qcm9Gb3JtRGVwZW5kZW5jeS5qcyIsImNvbXBvbmVudHMvc3JjL2NvbXBvbmVudHMvUHJvRm9ybS9Qcm9Gb3JtRGVwZW5kZW5jeS50c3giXSwibmFtZXMiOlsiRnJhZ21lbnQiLCJfRnJhZ21lbnQiLCJqc3giLCJfanN4IiwiUmVhY3QiLCJtZW1vIiwidXNlTWVtbyIsInVzZVByb0Zvcm1TdGFibGUiLCJ1c2VQcm9Gb3JtU3RvcmUiLCJ1c2VGb3JtTGlzdENvbnRleHQiLCJ1c2VTdG9yZVNlbGVjdG9yIiwic2hhbGxvd0VxdWFsQXJyYXlzIiwiZ2V0TmVzdGVkVmFsdWUiLCJQcm9Gb3JtRGVwZW5kZW5jeUJhc2UiLCJfcmVmIiwibmFtZSIsImlnbm9yZUZvcm1MaXN0RmllbGQiLCJjaGlsZHJlbiIsIl91c2VQcm9Gb3JtU3RhYmxlIiwiZm9ybUluc3RhbmNlIiwic3RvcmUiLCJmb3JtTGlzdEN0eCIsInJlc29sdmVkUGF0aHMiLCJzaG91bGRQcmVmaXgiLCJsaXN0TmFtZSIsInVuZGVmaW5lZCIsIm1hcCIsImZpZWxkTmFtZSIsImNvbmNhdCIsIndhdGNoZWRBcnJheSIsInN0YXRlIiwicGF0aCIsImluY2x1ZGVzIiwidmFsdWVzIiwid2F0Y2hlZFZhbHVlcyIsImZvcm1hdHRlZCIsImdldEZpZWxkRm9ybWF0VmFsdWVPYmplY3QiLCJyZXN1bHQiLCJpIiwibGVuZ3RoIiwidmFsdWUiLCJmb3JtYXR0ZWRWYWx1ZSIsImRpc3BsYXlOYW1lIiwiUHJvRm9ybURlcGVuZGVuY3kiXSwibWFwcGluZ3MiOiJBQUFBLFNBQVNBLFFBQVEsSUFBSUMsU0FBUyxFQUFFQyxHQUFHLElBQUlDLElBQUksUUFBUSxtQkFBbUI7QUNBdEUsT0FBT0MsS0FBSyxJQUFJQyxJQUFJLEVBQUVDLE9BQU8sUUFBUSxPQUFPO0FBRTVDLFNBQVNDLGdCQUFnQixFQUFFQyxlQUFlLEVBQUVDLGtCQUFrQixRQUFRLFdBQVc7QUFDakYsU0FBU0MsZ0JBQWdC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QixDQUFDNkIsV0FBVyxHQUFHLG1CQUFtQjtBQWN2RCxPQUFPLElBQU1DLGlCQUFpQixnQkFBR3RDLElBQUksQ0FDbkNRLHFCQUFxQixDQUNtQjtBQUUxQyxlQUFlOEIsaUJBQWlCIiwiZmlsZSI6ImNvbXBvbmVudHMvUHJvRm9ybS9Qcm9Gb3JtRGVwZW5kZW5jeS5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZyYWdtZW50IGFzIF9GcmFnbWVudCwganN4IGFzIF9qc3ggfSBmcm9tIFwicmVhY3QvanN4LXJ1bnRpbWVcIjtcbmltcG9ydCBSZWFjdCwgeyBtZW1vLCB1c2VNZW1vIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgdXNlUHJvRm9ybVN0YWJsZSwgdXNlUHJvRm9ybVN0b3JlLCB1c2VGb3JtTGlzdENvbnRleHQgfSBmcm9tICcuL2NvbnRleHQnO1xuaW1wb3J0IHsgdXNlU3RvcmVTZWxlY3Rvciwgc2hhbGxvd0VxdWFsQXJyYXlzIH0gZnJvbSAnLi9jb3JlL2Zvcm1TdG9yZSc7XG5pbXBvcnQgeyBnZXROZXN0ZWRWYWx1ZSB9IGZyb20gJy4vdXRpbHMnO1xuY29uc3QgUHJvRm9ybURlcGVuZGVuY3lCYXNlID0gKHsgbmFtZSwgaWdub3JlRm9ybUxpc3RGaWVsZCwgY2hpbGRyZW4sIH0pID0+IHtcbiAgICBjb25zdCB7IGZvcm1JbnN0YW5jZSB9ID0gdXNlUHJvRm9ybVN0YWJsZSgpO1xuICAgIGNvbnN0IHN0b3JlID0gdXNlUHJvRm9ybVN0b3JlKCk7XG4gICAgY29uc3QgZm9ybUxpc3RDdHggPSB1c2VGb3JtTGlzdENvbnRleHQoKTtcbiAgICAvLyBSZXNvbHZlIHRoZSBhY3R1YWwgcGF0aHMgdG8gd2F0Y2gsIGNvbnNpZGVyaW5nIEZvcm1MaXN0IHNjb3BlXG4gICAgY29uc3QgcmVzb2x2ZWRQYXRocyA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgICBjb25zdCBzaG91bGRQcmVmaXggPSAhaWdub3JlRm9ybUxpc3RGaWVsZCAmJiBmb3JtTGlzdEN0eC5saXN0TmFtZSAhPT0gdW5kZWZpbmVkO1xuICAgICAgICByZXR1cm4gbmFtZS5tYXAoKGZpZWxkTmFtZSkgPT4gc2hvdWxkUHJlZml4ID8gYCR7Zm9ybUxpc3RDdHgubGlzdE5hbWV9LiR7ZmllbGROYW1lfWAgOiBmaWVsZE5hbWUpO1xuICAgIH0sIFtuYW1lLCBpZ25vcmVGb3JtTGlzdEZpZWxkLCBmb3JtTGlzdEN0eC5saXN0TmFtZV0pO1xuICAgIC8vIFN1YnNjcmliZSBPTkxZIHRvIHRoZSB3YXRjaGVkIHBhdGhzOiBhIGNvbW1pdCB0aGF0IGxlYXZlcyBldmVyeSB3YXRjaGVkXG4gICAgLy8gdmFsdWUgT2JqZWN0LmlzLWVxdWFsIHNob3J0LWNpcmN1aXRzLCBzbyBjaGlsZHJlbiBhcmUgTk9UIHJlLWludm9rZWQgd2hlblxuICAgIC8vIHVucmVsYXRlZCBmaWVsZHMgY2hhbmdlLiBSZWFjdGl2aXR5IHRyYWNrcyB0aGUgUkFXIHZhbHVlczsgdGhlIHBheWxvYWRcbiAgICAvLyBiZWxvdyBpcyBkZXJpdmVkIGZyb20gdGhlIEZPUk1BVFRFRCB2YWx1ZXMuXG4gICAgY29uc3Qgd2F0Y2hlZEFycmF5ID0gdXNlU3RvcmVTZWxlY3RvcihzdG9yZSwgKHN0YXRlKSA9PiByZXNvbHZlZFBhdGhzLm1hcCgocGF0aCkgPT4gcGF0aC5pbmNsdWRlcygnLicpID8gZ2V0TmVzdGVkVmFsdWUoc3RhdGUudmFsdWVzLCBwYXRoKSA6IHN0YXRlLnZhbHVlc1twYXRoXSksIHNoYWxsb3dFcXVhbEFycmF5cyk7XG4gICAgY29uc3Qgd2F0Y2hlZFZhbHVlcyA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgICAvLyBDaGlsZHJlbiByZWNlaXZlIEZPUk1BVFRFRCB2YWx1ZXMgKGRhdGVGb3JtYXR0ZXIgKyB0cmFuc2Zvcm0gYXBwbGllZCksXG4gICAgICAgIC8vIG1hdGNoaW5nIHdoYXQgb25GaW5pc2ggd291bGQgc3VibWl0IGZvciB0aG9zZSBmaWVsZHMuIEEgdHJhbnNmb3JtIHRoYXRcbiAgICAgICAgLy8gUkVOQU1FUyBpdHMga2V5IGRlbGV0ZXMgdGhlIG9yaWdpbmFsIHBhdGggZnJvbSB0aGUgZm9ybWF0dGVkIG9iamVjdCDigJRcbiAgICAgICAgLy8gZmFsbCBiYWNrIHRvIHRoZSByYXcgdmFsdWUgc28gdGhlIHdhdGNoZXIgc3RpbGwgc2VlcyB0aGUgZmllbGQuXG4gICAgICAgIGNvbnN0IGZvcm1hdHRlZCA9IGZvcm1JbnN0YW5jZS5nZXRGaWVsZEZvcm1hdFZhbHVlT2JqZWN0KCk7XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IHt9O1xuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IG5hbWUubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIC8vIFVzZSB0aGUgb3JpZ2luYWwgbmFtZSBhcyBrZXkgc28gY2hpbGRyZW4gZ2V0IGNsZWFuIGtleXNcbiAgICAgICAgICAgIGNvbnN0IHBhdGggPSByZXNvbHZlZFBhdGhzW2ldO1xuICAgICAgICAgICAgbGV0IHZhbHVlID0gd2F0Y2hlZEFycmF5W2ldO1xuICAgICAgICAgICAgY29uc3QgZm9ybWF0dGVkVmFsdWUgPSBwYXRoLmluY2x1ZGVzKCcuJylcbiAgICAgICAgICAgICAgICA/IGdldE5lc3RlZFZhbHVlKGZvcm1hdHRlZCwgcGF0aClcbiAgICAgICAgICAgICAgICA6IChwYXRoIGluIGZvcm1hdHRlZCA/IGZvcm1hdHRlZFtwYXRoXSA6IHVuZGVmaW5lZCk7XG4gICAgICAgICAgICBpZiAoZm9ybWF0dGVkVmFsdWUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgIHZhbHVlID0gZm9ybWF0dGVkVmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXN1bHRbbmFtZVtpXV0gPSB2YWx1ZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH0sIFtuYW1lLCByZXNvbHZlZFBhdGhzLCB3YXRjaGVkQXJyYXksIGZvcm1JbnN0YW5jZV0pO1xuICAgIHJldHVybiBfanN4KF9GcmFnbWVudCwgeyBjaGlsZHJlbjogY2hpbGRyZW4od2F0Y2hlZFZhbHVlcywgZm9ybUluc3RhbmNlKSB9KTtcbn07XG5Qcm9Gb3JtRGVwZW5kZW5jeUJhc2UuZGlzcGxheU5hbWUgPSAnUHJvRm9ybURlcGVuZGVuY3knO1xuZXhwb3J0IGNvbnN0IFByb0Zvcm1EZXBlbmRlbmN5ID0gbWVtbyhQcm9Gb3JtRGVwZW5kZW5jeUJhc2UpO1xuZXhwb3J0IGRlZmF1bHQgUHJvRm9ybURlcGVuZGVuY3k7IixudWxsXSwic291cmNlUm9vdCI6Ii4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYyJ9
|
|
@@ -1,12 +1,15 @@
|
|
|
1
1
|
import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
|
|
2
|
+
import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
|
|
2
3
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
-
import React, { memo, useEffect } from 'react';
|
|
4
|
+
import React, { memo, useEffect, useRef } from 'react';
|
|
4
5
|
import { Col } from '../Grid';
|
|
5
6
|
import { TypographyBody, TypographyLabel } from '../Typography';
|
|
6
7
|
import { default as classnames, joinCls } from '../../utils/classnames';
|
|
7
8
|
import { useFormItem } from './core/useFormItem';
|
|
8
|
-
import { FORM_ERROR_COLOR, FORM_ERROR_SIZE, FORM_WARNING_COLOR, FORM_WARNING_SIZE, FORM_DESCRIPTION_COLOR, FORM_DESCRIPTION_SIZE, FORM_FEEDBACK_COLOR, FORM_FEEDBACK_SIZE, FORM_LABEL_COLOR,
|
|
9
|
-
import {
|
|
9
|
+
import { FORM_ERROR_COLOR, FORM_ERROR_SIZE, FORM_WARNING_COLOR, FORM_WARNING_SIZE, FORM_DESCRIPTION_COLOR, FORM_DESCRIPTION_SIZE, FORM_FEEDBACK_COLOR, FORM_FEEDBACK_SIZE, FORM_LABEL_COLOR, FORM_LABEL_SIZES } from './core/constants';
|
|
10
|
+
import { useProFormStable, useProFormStore } from './context';
|
|
11
|
+
import { useStoreSelector, shallowEqualArrays } from './core/formStore';
|
|
12
|
+
import { resolveValue } from './core/pathUtils';
|
|
10
13
|
import { DEFAULT_COL_SPAN } from './constants';
|
|
11
14
|
import { valueEnumToOptions, formatDateByPattern, DATE_FORMAT, DATE_TIME_FORMAT } from './utils';
|
|
12
15
|
var EMPTY_TEXT_DEFAULT = '-';
|
|
@@ -53,12 +56,18 @@ var ReadonlyChildBase = function ReadonlyChildBase(_ref) {
|
|
|
53
56
|
convertValue = _ref.convertValue,
|
|
54
57
|
readonlyRender = _ref.readonlyRender,
|
|
55
58
|
emptyText = _ref.emptyText;
|
|
56
|
-
var
|
|
57
|
-
|
|
58
|
-
|
|
59
|
+
var store = useProFormStore();
|
|
60
|
+
// Subscribe per-field; only a custom readonlyRender (which receives ALL
|
|
61
|
+
// values) needs to track the whole values object.
|
|
62
|
+
var _useStoreSelector = useStoreSelector(store, function (state) {
|
|
63
|
+
return [name ? resolveValue(state.values, name) : undefined, readonlyRender ? state.values : undefined];
|
|
64
|
+
}, shallowEqualArrays),
|
|
65
|
+
_useStoreSelector2 = _slicedToArray(_useStoreSelector, 2),
|
|
66
|
+
raw = _useStoreSelector2[0],
|
|
67
|
+
allValues = _useStoreSelector2[1];
|
|
59
68
|
var value = convertValue && name ? convertValue(raw, name) : raw;
|
|
60
69
|
if (readonlyRender) {
|
|
61
|
-
var node = readonlyRender(value, values);
|
|
70
|
+
var node = readonlyRender(value, allValues !== null && allValues !== void 0 ? allValues : store.getState().values);
|
|
62
71
|
return _jsx("span", {
|
|
63
72
|
children: node !== null && node !== void 0 ? node : emptyText
|
|
64
73
|
});
|
|
@@ -83,9 +92,10 @@ var ConvertValueChildBase = function ConvertValueChildBase(_ref2) {
|
|
|
83
92
|
_ref2$valuePropName = _ref2.valuePropName,
|
|
84
93
|
valuePropName = _ref2$valuePropName === void 0 ? 'value' : _ref2$valuePropName,
|
|
85
94
|
children = _ref2.children;
|
|
86
|
-
var
|
|
87
|
-
|
|
88
|
-
|
|
95
|
+
var store = useProFormStore();
|
|
96
|
+
var raw = useStoreSelector(store, function (state) {
|
|
97
|
+
return resolveValue(state.values, name);
|
|
98
|
+
});
|
|
89
99
|
var converted = convertValue ? convertValue(raw, name) : raw;
|
|
90
100
|
return /*#__PURE__*/React.cloneElement(children, _defineProperty({}, valuePropName, converted));
|
|
91
101
|
};
|
|
@@ -95,7 +105,10 @@ var ConvertValueChild = /*#__PURE__*/memo(ConvertValueChildBase);
|
|
|
95
105
|
// ProFormItem
|
|
96
106
|
// ---------------------------------------------------------------------------
|
|
97
107
|
var ProFormItemBase = function ProFormItemBase(props) {
|
|
98
|
-
var
|
|
108
|
+
var _a;
|
|
109
|
+
// Stable slice only — value/error reactivity lives in useFormItem's
|
|
110
|
+
// per-field subscription, so this shell never re-renders for siblings.
|
|
111
|
+
var ctx = useProFormStable();
|
|
99
112
|
// Form-level `formItemProps` act as DEFAULTS; props explicitly set on the
|
|
100
113
|
// item win. JSX frequently passes `undefined` for unset props (e.g. the
|
|
101
114
|
// createProFormField pass-through), so only defined values may override.
|
|
@@ -151,22 +164,59 @@ var ProFormItemBase = function ProFormItemBase(props) {
|
|
|
151
164
|
labelAlign = _useFormItem.labelAlign,
|
|
152
165
|
requiredMark = _useFormItem.requiredMark,
|
|
153
166
|
injectField = _useFormItem.injectField;
|
|
154
|
-
// Register /
|
|
155
|
-
|
|
156
|
-
|
|
167
|
+
// Register transform / valueType DURING render (idempotent ref writes, like
|
|
168
|
+
// registerField): consumers rendered later in the same pass — e.g. a
|
|
169
|
+
// Dependency reading formatted values — must already see them. Effects
|
|
170
|
+
// would register too late (after the whole tree rendered).
|
|
171
|
+
//
|
|
172
|
+
// Each instance tracks the {name, value} PAIR it registered. Removal is
|
|
173
|
+
// always performed with the pair's own name AND value: an item without a
|
|
174
|
+
// transform never touches a same-name sibling's registration, an unmount
|
|
175
|
+
// cleanup can't wipe a successor's (value-guarded), and a NAME change
|
|
176
|
+
// removes the old name's entry with the OLD value before the ref is
|
|
177
|
+
// overwritten (a live single-value ref would leak it).
|
|
178
|
+
var ownTransformRef = useRef(null);
|
|
179
|
+
var ownValueTypeRef = useRef(null);
|
|
180
|
+
var prevTransform = ownTransformRef.current;
|
|
181
|
+
if (prevTransform && (prevTransform.name !== name || !transform)) {
|
|
182
|
+
ctx.unregisterTransform(prevTransform.name, prevTransform.fn);
|
|
183
|
+
ownTransformRef.current = null;
|
|
184
|
+
}
|
|
185
|
+
if (name && transform) {
|
|
157
186
|
ctx.registerTransform(name, transform);
|
|
158
|
-
|
|
159
|
-
|
|
187
|
+
ownTransformRef.current = {
|
|
188
|
+
name: name,
|
|
189
|
+
fn: transform
|
|
160
190
|
};
|
|
161
|
-
}
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
191
|
+
}
|
|
192
|
+
var prevValueType = ownValueTypeRef.current;
|
|
193
|
+
if (prevValueType && (prevValueType.name !== name || !valueType)) {
|
|
194
|
+
ctx.unregisterValueType(prevValueType.name, prevValueType.valueType);
|
|
195
|
+
ownValueTypeRef.current = null;
|
|
196
|
+
}
|
|
197
|
+
if (name && valueType) {
|
|
165
198
|
ctx.registerValueType(name, valueType);
|
|
199
|
+
ownValueTypeRef.current = {
|
|
200
|
+
name: name,
|
|
201
|
+
valueType: valueType
|
|
202
|
+
};
|
|
203
|
+
}
|
|
204
|
+
useEffect(function () {
|
|
205
|
+
// RE-REGISTER in the body: StrictMode's mount→cleanup→re-run cycle and
|
|
206
|
+
// keyed remounts (old instance's cleanup runs AFTER the new render
|
|
207
|
+
// registered) both end with a cleanup having deleted the entry — the
|
|
208
|
+
// effect body must restore the latest registration.
|
|
209
|
+
var transformReg = ownTransformRef.current;
|
|
210
|
+
if (transformReg) ctx.registerTransform(transformReg.name, transformReg.fn);
|
|
211
|
+
var valueTypeReg = ownValueTypeRef.current;
|
|
212
|
+
if (valueTypeReg) ctx.registerValueType(valueTypeReg.name, valueTypeReg.valueType);
|
|
166
213
|
return function () {
|
|
167
|
-
|
|
214
|
+
var t = ownTransformRef.current;
|
|
215
|
+
if (t) ctx.unregisterTransform(t.name, t.fn);
|
|
216
|
+
var v = ownValueTypeRef.current;
|
|
217
|
+
if (v) ctx.unregisterValueType(v.name, v.valueType);
|
|
168
218
|
};
|
|
169
|
-
}, [name,
|
|
219
|
+
}, [name, ctx.registerTransform, ctx.unregisterTransform, ctx.registerValueType, ctx.unregisterValueType]);
|
|
170
220
|
if (hidden) return null;
|
|
171
221
|
var controlChild;
|
|
172
222
|
if (isReadonly) {
|
|
@@ -194,13 +244,20 @@ var ProFormItemBase = function ProFormItemBase(props) {
|
|
|
194
244
|
}
|
|
195
245
|
}
|
|
196
246
|
var classes = classnames(prefixCls);
|
|
247
|
+
// Form-level layout.itemGap overrides the size-class margin (inline style
|
|
248
|
+
// wins); itemGap=0 is meaningful.
|
|
249
|
+
var itemGap = (_a = ctx.layout) === null || _a === void 0 ? void 0 : _a.itemGap;
|
|
250
|
+
var gapStyle = itemGap !== undefined ? {
|
|
251
|
+
marginBottom: typeof itemGap === 'number' ? "".concat(itemGap, "px") : itemGap
|
|
252
|
+
} : undefined;
|
|
197
253
|
var shell = _jsxs("div", {
|
|
198
254
|
className: classes(undefined, joinCls(classes(size), className)),
|
|
255
|
+
style: gapStyle,
|
|
199
256
|
children: [label && _jsxs("div", {
|
|
200
257
|
className: classes('label-wrapper', joinCls(classes('label-wrapper-vertical'), labelAlign && classes("label-wrapper-".concat(labelAlign)))),
|
|
201
258
|
children: [_jsx(TypographyLabel, {
|
|
202
259
|
as: "label",
|
|
203
|
-
size:
|
|
260
|
+
size: FORM_LABEL_SIZES[size],
|
|
204
261
|
color: FORM_LABEL_COLOR,
|
|
205
262
|
className: classes('label'),
|
|
206
263
|
children: label
|
|
@@ -254,4 +311,4 @@ var ProFormItemBase = function ProFormItemBase(props) {
|
|
|
254
311
|
ProFormItemBase.displayName = 'ProFormItem';
|
|
255
312
|
export var ProFormItem = /*#__PURE__*/memo(ProFormItemBase);
|
|
256
313
|
export default ProFormItem;
|
|
257
|
-
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvUHJvRm9ybS9Qcm9Gb3JtSXRlbS5qcyIsImNvbXBvbmVudHMvc3JjL2NvbXBvbmVudHMvUHJvRm9ybS9Qcm9Gb3JtSXRlbS50c3giXSwibmFtZXMiOlsianN4IiwiX2pzeCIsImpzeHMiLCJfanN4cyIsIlJlYWN0IiwibWVtbyIsInVzZUVmZmVjdCIsIkNvbCIsIlR5cG9ncmFwaHlCb2R5IiwiVHlwb2dyYXBoeUxhYmVsIiwiZGVmYXVsdCIsImNsYXNzbmFtZXMiLCJqb2luQ2xzIiwidXNlRm9ybUl0ZW0iLCJGT1JNX0VSUk9SX0NPTE9SIiwiRk9STV9FUlJPUl9TSVpFIiwiRk9STV9XQVJOSU5HX0NPTE9SIiwiRk9STV9XQVJOSU5HX1NJWkUiLCJGT1JNX0RFU0NSSVBUSU9OX0NPTE9SIiwiRk9STV9ERVNDUklQVElPTl9TSVpFIiwiRk9STV9GRUVEQkFDS19DT0xPUiIsIkZPUk1fRkVFREJBQ0tfU0laRSIsIkZPUk1fTEFCRUxfQ09MT1IiLCJGT1JNX0xBQkVMX1NJWkUiLCJ1c2VQcm9Gb3JtQ29udGV4dCIsIkRFRkFVTFRfQ09MX1NQQU4iLCJ2YWx1ZUVudW1Ub09wdGlvbnMiLCJmb3JtYXREYXRlQnlQYXR0ZXJuIiwiREFURV9GT1JNQVQiLCJEQVRFX1RJTUVfRk9STUFUIiwiRU1QVFlfVEVYVF9ERUZBVUxUIiwicmVuZGVyQnlWYWx1ZVR5cGUiLCJ2YWx1ZVR5cGUiLCJ2YWx1ZSIsInByb3BzIiwidW5kZWZpbmVkIiwicmVwZWF0IiwiU3RyaW5nIiwibGVuZ3RoIiwibnVtIiwiTnVtYmVyIiwiaXNOYU4iLCJ0b0xvY2FsZVN0cmluZyIsInZhbHVlRW51bSIsIm9wdGlvbnMiLCJtYXRjaCIsImZpbmQiLCJvIiwibGFiZWwiLCJEYXRlIiwiUmVhZG9ubHlDaGlsZEJhc2UiLCJfcmVmIiwibmFtZSIsImNvbnZlcnRWYWx1ZSIsInJlYWRvbmx5UmVuZGVyIiwiZW1wdHlUZXh0IiwiX3VzZVByb0Zvcm1Db250ZXh0IiwidmFsdWVzIiwicmF3Iiwibm9kZSIsImNoaWxkcmVuIiwicmVuZGVyZWQiLCJkaXNwbGF5TmFtZSIsIlJlYWRvbmx5Q2hpbGQiLCJDb252ZXJ0VmFsdWVDaGlsZEJhc2UiLCJfcmVmMiIsIl9yZWYyJHZhbHVlUHJvcE5hbWUiLCJ2YWx1ZVByb3BOYW1lIiwiX3VzZVByb0Zvcm1Db250ZXh0MiIsImNvbnZlcnRlZCIsImNsb25lRWxlbWVudCIsIl9kZWZpbmVQcm9wZXJ0eSIsIkNvbnZlcnRWYWx1ZUNoaWxkIiwiUHJvRm9ybUl0ZW1CYXNlIiwiY3R4IiwibWVyZ2VkUHJvcHMiLCJmb3JtSXRlbVByb3BzIiwibWVyZ2VkIiwiT2JqZWN0IiwiYXNzaWduIiwiX2kiLCJfT2JqZWN0JGtleXMiLCJrZXlzIiwia2V5IiwiX21lcmdlZFByb3BzIiwiZGVzY3JpcHRpb24iLCJydWxlcyIsInJlcXVpcmVkIiwiZmVlZGJhY2siLCJ2YWxpZGF0ZVN0YXR1cyIsIl9tZXJnZWRQcm9wcyRjbGFzc05hbSIsImNsYXNzTmFtZSIsIl9tZXJnZWRQcm9wcyRwcmVmaXhDbCIsInByZWZpeENscyIsImhpZGRlbiIsInRyYW5zZm9ybSIsImNvbFByb3BzIiwibW9kZVByb3AiLCJtb2RlIiwiX21lcmdlZFByb3BzJGVtcHR5VGV4IiwidmFsaWRhdGVEZWJvdW5jZSIsIm1lcmdlZE1vZGUiLCJpc1JlYWRvbmx5IiwiX3VzZUZvcm1JdGVtIiwiZmllbGRFcnJvciIsImZpZWxkV2FybmluZyIsImlzUmVxdWlyZWQiLCJzaXplIiwibGFiZWxBbGlnbiIsInJlcXVpcmVkTWFyayIsImluamVjdEZpZWxkIiwicmVnaXN0ZXJUcmFuc2Zvcm0iLCJ1bnJlZ2lzdGVyVHJhbnNmb3JtIiwicmVnaXN0ZXJWYWx1ZVR5cGUiLCJ1bnJlZ2lzdGVyVmFsdWVUeXBlIiwiY29udHJvbENoaWxkIiwiaW5qZWN0ZWQiLCJpc1ZhbGlkRWxlbWVudCIsImNsYXNzZXMiLCJzaGVsbCIsImNvbmNhdCIsImFzIiwiY29sb3IiLCJncmlkIiwiX21lcmdlZCRzcGFuIiwic3Bh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cyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGpzeCBhcyBfanN4LCBqc3hzIGFzIF9qc3hzIH0gZnJvbSBcInJlYWN0L2pzeC1ydW50aW1lXCI7XG5pbXBvcnQgUmVhY3QsIHsgbWVtbywgdXNlRWZmZWN0IH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgQ29sIH0gZnJvbSAnLi4vR3JpZCc7XG5pbXBvcnQgeyBUeXBvZ3JhcGh5Qm9keSwgVHlwb2dyYXBoeUxhYmVsIH0gZnJvbSAnLi4vVHlwb2dyYXBoeSc7XG5pbXBvcnQgeyBkZWZhdWx0IGFzIGNsYXNzbmFtZXMsIGpvaW5DbHMgfSBmcm9tICcuLi8uLi91dGlscy9jbGFzc25hbWVzJztcbmltcG9ydCB7IHVzZUZvcm1JdGVtIH0gZnJvbSAnLi9jb3JlL3VzZUZvcm1JdGVtJztcbmltcG9ydCB7IEZPUk1fRVJST1JfQ09MT1IsIEZPUk1fRVJST1JfU0laRSwgRk9STV9XQVJOSU5HX0NPTE9SLCBGT1JNX1dBUk5JTkdfU0laRSwgRk9STV9ERVNDUklQVElPTl9DT0xPUiwgRk9STV9ERVNDUklQVElPTl9TSVpFLCBGT1JNX0ZFRURCQUNLX0NPTE9SLCBGT1JNX0ZFRURCQUNLX1NJWkUsIEZPUk1fTEFCRUxfQ09MT1IsIEZPUk1fTEFCRUxfU0laRSwgfSBmcm9tICcuL2NvcmUvY29uc3RhbnRzJztcbmltcG9ydCB7IHVzZVByb0Zvcm1Db250ZXh0IH0gZnJvbSAnLi9jb250ZXh0JztcbmltcG9ydCB7IERFRkFVTFRfQ09MX1NQQU4gfSBmcm9tICcuL2NvbnN0YW50cyc7XG5pbXBvcnQgeyB2YWx1ZUVudW1Ub09wdGlvbnMsIGZvcm1hdERhdGVCeVBhdHRlcm4sIERBVEVfRk9STUFULCBEQVRFX1RJTUVfRk9STUFUIH0gZnJvbSAnLi91dGlscyc7XG5jb25zdCBFTVBUWV9URVhUX0RFRkFVTFQgPSAnLSc7XG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIFJlYWQtbW9kZSByZW5kZXJpbmcgZm9yIGVhY2ggc3VwcG9ydGVkIHZhbHVlVHlwZVxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5mdW5jdGlvbiByZW5kZXJCeVZhbHVlVHlwZSh2YWx1ZVR5cGUsIHZhbHVlLCBwcm9wcykge1xuICAgIGlmICh2YWx1ZSA9PT0gbnVsbCB8fCB2YWx1ZSA9PT0gdW5kZWZpbmVkIHx8IHZhbHVlID09PSAnJylcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgc3dpdGNoICh2YWx1ZVR5cGUpIHtcbiAgICAgICAgY2FzZSAncGFzc3dvcmQnOlxuICAgICAgICAgICAgcmV0dXJuICcqJy5yZXBlYXQoU3RyaW5nKHZhbHVlKS5sZW5ndGgpO1xuICAgICAgICBjYXNlICdzd2l0Y2gnOlxuICAgICAgICAgICAgcmV0dXJuIHZhbHVlID8gJ09uJyA6ICdPZmYnO1xuICAgICAgICBjYXNlICdkaWdpdCc6IHtcbiAgICAgICAgICAgIGNvbnN0IG51bSA9IE51bWJlcih2YWx1ZSk7XG4gICAgICAgICAgICBpZiAoTnVtYmVyLmlzTmFOKG51bSkpXG4gICAgICAgICAgICAgICAgcmV0dXJuIFN0cmluZyh2YWx1ZSk7XG4gICAgICAgICAgICByZXR1cm4gbnVtLnRvTG9jYWxlU3RyaW5nKCk7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAnc2VsZWN0JzpcbiAgICAgICAgY2FzZSAncmFkaW8nOlxuICAgICAgICBjYXNlICd0YWcnOiB7XG4gICAgICAgICAgICBpZiAoIXByb3BzLnZhbHVlRW51bSlcbiAgICAgICAgICAgICAgICByZXR1cm4gU3RyaW5nKHZhbHVlKTtcbiAgICAgICAgICAgIGNvbnN0IG9wdGlvbnMgPSB2YWx1ZUVudW1Ub09wdGlvbnMocHJvcHMudmFsdWVFbnVtKTtcbiAgICAgICAgICAgIGNvbnN0IG1hdGNoID0gb3B0aW9ucy5maW5kKChvKSA9PiBTdHJpbmcoby52YWx1ZSkgPT09IFN0cmluZyh2YWx1ZSkpO1xuICAgICAgICAgICAgcmV0dXJuIG1hdGNoID8gbWF0Y2gubGFiZWwgOiBTdHJpbmcodmFsdWUpO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJ2RhdGUnOlxuICAgICAgICAgICAgcmV0dXJuIHZhbHVlIGluc3RhbmNlb2YgRGF0ZSA/IGZvcm1hdERhdGVCeVBhdHRlcm4odmFsdWUsIERBVEVfRk9STUFUKSA6IFN0cmluZyh2YWx1ZSk7XG4gICAgICAgIGNhc2UgJ2RhdGVUaW1lJzpcbiAgICAgICAgICAgIHJldHVybiB2YWx1ZSBpbnN0YW5jZW9mIERhdGUgPyBmb3JtYXREYXRlQnlQYXR0ZXJuKHZhbHVlLCBEQVRFX1RJTUVfRk9STUFUKSA6IFN0cmluZyh2YWx1ZSk7XG4gICAgICAgIGNhc2UgJ3RleHQnOlxuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgcmV0dXJuIFN0cmluZyh2YWx1ZSk7XG4gICAgfVxufVxuY29uc3QgUmVhZG9ubHlDaGlsZEJhc2UgPSAoeyBuYW1lLCB2YWx1ZVR5cGUsIHZhbHVlRW51bSwgY29udmVydFZhbHVlLCByZWFkb25seVJlbmRlciwgZW1wdHlUZXh0LCB9KSA9PiB7XG4gICAgY29uc3QgeyB2YWx1ZXMgfSA9IHVzZVByb0Zvcm1Db250ZXh0KCk7XG4gICAgY29uc3QgcmF3ID0gbmFtZSA/IHZhbHVlc1tuYW1lXSA6IHVuZGVmaW5lZDtcbiAgICBjb25zdCB2YWx1ZSA9IGNvbnZlcnRWYWx1ZSAmJiBuYW1lID8gY29udmVydFZhbHVlKHJhdywgbmFtZSkgOiByYXc7XG4gICAgaWYgKHJlYWRvbmx5UmVuZGVyKSB7XG4gICAgICAgIGNvbnN0IG5vZGUgPSByZWFkb25seVJlbmRlcih2YWx1ZSwgdmFsdWVzKTtcbiAgICAgICAgcmV0dXJuIF9qc3goXCJzcGFuXCIsIHsgY2hpbGRyZW46IG5vZGUgIT09IG51bGwgJiYgbm9kZSAhPT0gdm9pZCAwID8gbm9kZSA6IGVtcHR5VGV4dCB9KTtcbiAgICB9XG4gICAgaWYgKHZhbHVlID09PSBudWxsIHx8IHZhbHVlID09PSB1bmRlZmluZWQgfHwgdmFsdWUgPT09ICcnKSB7XG4gICAgICAgIHJldHVybiBfanN4KFwic3BhblwiLCB7IGNoaWxkcmVuOiBlbXB0eVRleHQgfSk7XG4gICAgfVxuICAgIGNvbnN0IHJlbmRlcmVkID0gcmVuZGVyQnlWYWx1ZVR5cGUodmFsdWVUeXBlLCB2YWx1ZSwgeyB2YWx1ZUVudW0gfSk7XG4gICAgcmV0dXJuIF9qc3goXCJzcGFuXCIsIHsgY2hpbGRyZW46IHJlbmRlcmVkICE9PSBudWxsICYmIHJlbmRlcmVkICE9PSB2b2lkIDAgPyByZW5kZXJlZCA6IGVtcHR5VGV4dCB9KTtcbn07XG5SZWFkb25seUNoaWxkQmFzZS5kaXNwbGF5TmFtZSA9ICdQcm9Gb3JtSXRlbVJlYWRvbmx5JztcbmNvbnN0IFJlYWRvbmx5Q2hpbGQgPSBtZW1vKFJlYWRvbmx5Q2hpbGRCYXNlKTtcbmNvbnN0IENvbnZlcnRWYWx1ZUNoaWxkQmFzZSA9ICh7IG5hbWUsIGNvbnZlcnRWYWx1ZSwgdmFsdWVQcm9wTmFtZSA9ICd2YWx1ZScsIGNoaWxkcmVuLCB9KSA9PiB7XG4gICAgY29uc3QgeyB2YWx1ZXMgfSA9IHVzZVByb0Zvcm1Db250ZXh0KCk7XG4gICAgY29uc3QgcmF3ID0gdmFsdWVzW25hbWVdO1xuICAgIGNvbnN0IGNvbnZlcnRlZCA9IGNvbnZlcnRWYWx1ZSA/IGNvbnZlcnRWYWx1ZShyYXcsIG5hbWUpIDogcmF3O1xuICAgIHJldHVybiBSZWFjdC5jbG9uZUVsZW1lbnQoY2hpbGRyZW4sIHsgW3ZhbHVlUHJvcE5hbWVdOiBjb252ZXJ0ZWQgfSk7XG59O1xuQ29udmVydFZhbHVlQ2hpbGRCYXNlLmRpc3BsYXlOYW1lID0gJ1Byb0Zvcm1JdGVtQ29udmVydFZhbHVlJztcbmNvbnN0IENvbnZlcnRWYWx1ZUNoaWxkID0gbWVtbyhDb252ZXJ0VmFsdWVDaGlsZEJhc2UpO1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBQcm9Gb3JtSXRlbVxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5jb25zdCBQcm9Gb3JtSXRlbUJhc2UgPSAocHJvcHMpID0+IHtcbiAgICBjb25zdCBjdHggPSB1c2VQcm9Gb3JtQ29udGV4dCgpO1xuICAgIC8vIEZvcm0tbGV2ZWwgYGZvcm1JdGVtUHJvcHNgIGFjdCBhcyBERUZBVUxUUzsgcHJvcHMgZXhwbGljaXRseSBzZXQgb24gdGhlXG4gICAgLy8gaXRlbSB3aW4uIEpTWCBmcmVxdWVudGx5IHBhc3NlcyBgdW5kZWZpbmVkYCBmb3IgdW5zZXQgcHJvcHMgKGUuZy4gdGhlXG4gICAgLy8gY3JlYXRlUHJvRm9ybUZpZWxkIHBhc3MtdGhyb3VnaCksIHNvIG9ubHkgZGVmaW5lZCB2YWx1ZXMgbWF5IG92ZXJyaWRlLlxuICAgIGxldCBtZXJnZWRQcm9wcyA9IHByb3BzO1xuICAgIGlmIChjdHguZm9ybUl0ZW1Qcm9wcykge1xuICAgICAgICBjb25zdCBtZXJnZWQgPSBPYmplY3QuYXNzaWduKHt9LCBjdHguZm9ybUl0ZW1Qcm9wcyk7XG4gICAgICAgIGZvciAoY29uc3Qga2V5IG9mIE9iamVjdC5rZXlzKHByb3BzKSkge1xuICAgICAgICAgICAgY29uc3QgdmFsdWUgPSBwcm9wc1trZXldO1xuICAgICAgICAgICAgaWYgKHZhbHVlICE9PSB1bmRlZmluZWQpXG4gICAgICAgICAgICAgICAgbWVyZ2VkW2tleV0gPSB2YWx1ZTtcbiAgICAgICAgfVxuICAgICAgICBtZXJnZWRQcm9wcyA9IG1lcmdlZDtcbiAgICB9XG4gICAgY29uc3QgeyBjaGlsZHJlbiwgbmFtZSwgbGFiZWwsIGRlc2NyaXB0aW9uLCBydWxlcywgcmVxdWlyZWQsIGZlZWRiYWNrLCB2YWxpZGF0ZVN0YXR1cywgY2xhc3NOYW1lID0gJycsIHByZWZpeENscyA9ICdmb3JtLWl0ZW0nLCBoaWRkZW4sIHRyYW5zZm9ybSwgY29udmVydFZhbHVlLCB2YWx1ZVR5cGUsIHJlYWRvbmx5UmVuZGVyLCBjb2xQcm9wcywgbW9kZTogbW9kZVByb3AsIGVtcHR5VGV4dCA9IEVNUFRZX1RFWFRfREVGQVVMVCwgdmFsdWVFbnVtLCB2YWx1ZVByb3BOYW1lLCB2YWxpZGF0ZURlYm91bmNlLCB9ID0gbWVyZ2VkUHJvcHM7XG4gICAgY29uc3QgbWVyZ2VkTW9kZSA9IG1vZGVQcm9wICE9PSBudWxsICYmIG1vZGVQcm9wICE9PSB2b2lkIDAgPyBtb2RlUHJvcCA6IGN0eC5tb2RlO1xuICAgIGNvbnN0IGlzUmVhZG9ubHkgPSBtZXJnZWRNb2RlID09PSAncmVhZCc7XG4gICAgY29uc3QgeyBmaWVsZEVycm9yLCBmaWVsZFdhcm5pbmcsIGlzUmVxdWlyZWQsIHNpemUsIGxhYmVsQWxpZ24sIHJlcXVpcmVkTWFyaywgaW5qZWN0RmllbGQsIH0gPSB1c2VGb3JtSXRlbSh7IG5hbWUsIHJ1bGVzLCByZXF1aXJlZCwgdmFsaWRhdGVTdGF0dXMsIHZhbHVlUHJvcE5hbWUsIHZhbGlkYXRlRGVib3VuY2UgfSk7XG4gICAgLy8gUmVnaXN0ZXIgLyB1bnJlZ2lzdGVyIHRyYW5zZm9ybVxuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIGlmICghbmFtZSB8fCAhdHJhbnNmb3JtKVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICBjdHgucmVnaXN0ZXJUcmFuc2Zvcm0obmFtZSwgdHJhbnNmb3JtKTtcbiAgICAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgICAgIGN0eC51bnJlZ2lzdGVyVHJhbnNmb3JtKG5hbWUpO1xuICAgICAgICB9O1xuICAgIH0sIFtuYW1lLCB0cmFuc2Zvcm0sIGN0eC5yZWdpc3RlclRyYW5zZm9ybSwgY3R4LnVucmVnaXN0ZXJUcmFuc2Zvcm1dKTtcbiAgICAvLyBSZWdpc3RlciAvIHVucmVnaXN0ZXIgdmFsdWVUeXBlIChkcml2ZXMgdmFsdWVUeXBlLWF3YXJlIGRhdGVGb3JtYXR0ZXIpXG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgaWYgKCFuYW1lIHx8ICF2YWx1ZVR5cGUpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIGN0eC5yZWdpc3RlclZhbHVlVHlwZShuYW1lLCB2YWx1ZVR5cGUpO1xuICAgICAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgICAgICAgY3R4LnVucmVnaXN0ZXJWYWx1ZVR5cGUobmFtZSk7XG4gICAgICAgIH07XG4gICAgfSwgW25hbWUsIHZhbHVlVHlwZSwgY3R4LnJlZ2lzdGVyVmFsdWVUeXBlLCBjdHgudW5yZWdpc3RlclZhbHVlVHlwZV0pO1xuICAgIGlmIChoaWRkZW4pXG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIGxldCBjb250cm9sQ2hpbGQ7XG4gICAgaWYgKGlzUmVhZG9ubHkpIHtcbiAgICAgICAgY29udHJvbENoaWxkID0gKF9qc3goUmVhZG9ubHlDaGlsZCwgeyBuYW1lOiBuYW1lLCB2YWx1ZVR5cGU6IHZhbHVlVHlwZSwgdmFsdWVFbnVtOiB2YWx1ZUVudW0sIGNvbnZlcnRWYWx1ZTogY29udmVydFZhbHVlLCByZWFkb25seVJlbmRlcjogcmVhZG9ubHlSZW5kZXIsIGVtcHR5VGV4dDogZW1wdHlUZXh0IH0pKTtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICAgIC8vIEluamVjdCBmaXJzdCBzbyB0aGUgcmVhbCBmaWVsZCByZWNlaXZlcyB2YWx1ZS9vbkNoYW5nZS9vbkJsdXIsXG4gICAgICAgIC8vIHRoZW4gb3B0aW9uYWxseSB3cmFwIGluIENvbnZlcnRWYWx1ZUNoaWxkIHRvIG92ZXJyaWRlIHRoZSBkaXNwbGF5ZWQgdmFsdWUuXG4gICAgICAgIGNvbnN0IGluamVjdGVkID0gaW5qZWN0RmllbGQoY2hpbGRyZW4pO1xuICAgICAgICBpZiAoY29udmVydFZhbHVlICYmIG5hbWUgJiYgUmVhY3QuaXNWYWxpZEVsZW1lbnQoaW5qZWN0ZWQpKSB7XG4gICAgICAgICAgICBjb250cm9sQ2hpbGQgPSAoX2pzeChDb252ZXJ0VmFsdWVDaGlsZCwgeyBuYW1lOiBuYW1lLCBjb252ZXJ0VmFsdWU6IGNvbnZlcnRWYWx1ZSwgdmFsdWVQcm9wTmFtZTogdmFsdWVQcm9wTmFtZSwgY2hpbGRyZW46IGluamVjdGVkIH0pKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGNvbnRyb2xDaGlsZCA9IGluamVjdGVkO1xuICAgICAgICB9XG4gICAgfVxuICAgIGNvbnN0IGNsYXNzZXMgPSBjbGFzc25hbWVzKHByZWZpeENscyk7XG4gICAgY29uc3Qgc2hlbGwgPSAoX2pzeHMoXCJkaXZcIiwgeyBjbGFzc05hbWU6IGNsYXNzZXModW5kZWZpbmVkLCBqb2luQ2xzKGNsYXNzZXMoc2l6ZSksIGNsYXNzTmFtZSkpLCBjaGlsZHJlbjogW2xhYmVsICYmIChfanN4cyhcImRpdlwiLCB7IGNsYXNzTmFtZTogY2xhc3NlcygnbGFiZWwtd3JhcHBlcicsIGpvaW5DbHMoY2xhc3NlcygnbGFiZWwtd3JhcHBlci12ZXJ0aWNhbCcpLCBsYWJlbEFsaWduICYmIGNsYXNzZXMoYGxhYmVsLXdyYXBwZXItJHtsYWJlbEFsaWdufWApKSksIGNoaWxkcmVuOiBbX2pzeChUeXBvZ3JhcGh5TGFiZWwsIHsgYXM6IFwibGFiZWxcIiwgc2l6ZTogRk9STV9MQUJFTF9TSVpFLCBjb2xvcjogRk9STV9MQUJFTF9DT0xPUiwgY2xhc3NOYW1lOiBjbGFzc2VzKCdsYWJlbCcpLCBjaGlsZHJlbjogbGFiZWwgfSksIGRlc2NyaXB0aW9uICYmIChfanN4KFR5cG9ncmFwaHlCb2R5LCB7IGFzOiBcImRpdlwiLCBjbGFzc05hbWU6IGNsYXNzZXMoJ2Rlc2NyaXB0aW9uJyksIHNpemU6IEZPUk1fREVTQ1JJUFRJT05fU0laRSwgY29sb3I6IEZPUk1fREVTQ1JJUFRJT05fQ09MT1IsIGNoaWxkcmVuOiBkZXNjcmlwdGlvbiB9KSldIH0pKSwgX2pzeHMoXCJkaXZcIiwgeyBjbGFzc05hbWU6IGNsYXNzZXMoJ2NvbnRyb2wnKSwgY2hpbGRyZW46IFtjb250cm9sQ2hpbGQsIGZpZWxkRXJyb3IgJiYgKF9qc3goVHlwb2dyYXBoeUJvZHksIHsgYXM6IFwiZGl2XCIsIGNsYXNzTmFtZTogY2xhc3NlcygnZXJyb3InKSwgc2l6ZTogRk9STV9FUlJPUl9TSVpFLCBjb2xvcjogRk9STV9FUlJPUl9DT0xPUiwgY2hpbGRyZW46IGZpZWxkRXJyb3IgfSkpLCAhZmllbGRFcnJvciAmJiBmaWVsZFdhcm5pbmcgJiYgKF9qc3goVHlwb2dyYXBoeUJvZHksIHsgYXM6IFwiZGl2XCIsIGNsYXNzTmFtZTogY2xhc3Nlcygnd2FybmluZycpLCBzaXplOiBGT1JNX1dBUk5JTkdfU0laRSwgY29sb3I6IEZPUk1fV0FSTklOR19DT0xPUiwgY2hpbGRyZW46IGZpZWxkV2FybmluZyB9KSksICFmaWVsZEVycm9yICYmICFmaWVsZFdhcm5pbmcgJiYgZmVlZGJhY2sgJiYgKF9qc3goVHlwb2dyYXBoeUJvZHksIHsgYXM6IFwiZGl2XCIsIGNsYXNzTmFtZTogY2xhc3NlcygnZmVlZGJhY2snKSwgc2l6ZTogRk9STV9GRUVEQkFDS19TSVpFLCBjb2xvcjogRk9STV9GRUVEQkFDS19DT0xPUiwgY2hpbGRyZW46IGZlZWRiYWNrIH0pKV0gfSldIH0pKTtcbiAgICBpZiAoY3R4LmdyaWQpIHtcbiAgICAgICAgY29uc3QgbWVyZ2VkID0gT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCBjdHguY29sUHJvcHMpLCBjb2xQcm9wcyk7XG4gICAgICAgIGNvbnN0IHsgc3BhbiA9IERFRkFVTFRfQ09MX1NQQU4sIHNtLCBtZCwgbGcgfSA9IG1lcmdlZDtcbiAgICAgICAgcmV0dXJuIF9qc3goQ29sLCB7IHNwYW46IHNwYW4sIHNtOiBzbSwgbWQ6IG1kLCBsZzogbGcsIGNoaWxkcmVuOiBzaGVsbCB9KTtcbiAgICB9XG4gICAgcmV0dXJuIHNoZWxsO1xufTtcblByb0Zvcm1JdGVtQmFzZS5kaXNwbGF5TmFtZSA9ICdQcm9Gb3JtSXRlbSc7XG5leHBvcnQgY29uc3QgUHJvRm9ybUl0ZW0gPSBtZW1vKFByb0Zvcm1JdGVtQmFzZSk7XG5leHBvcnQgZGVmYXVsdCBQcm9Gb3JtSXRlbTsiLG51bGxdLCJzb3VyY2VSb290IjoiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjIn0=
|
|
314
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvUHJvRm9ybS9Qcm9Gb3JtSXRlbS5qcyIsImNvbXBvbmVudHMvc3JjL2NvbXBvbmVudHMvUHJvRm9ybS9Qcm9Gb3JtSXRlbS50c3giXSwibmFtZXMiOlsianN4IiwiX2pzeCIsImpzeHMiLCJfanN4cyIsIlJlYWN0IiwibWVtbyIsInVzZUVmZmVjdCIsInVzZVJlZiIsIkNvbCIsIlR5cG9ncmFwaHlCb2R5IiwiVHlwb2dyYXBoeUxhYmVsIiwiZGVmYXVsdCIsImNsYXNzbmFtZXMiLCJqb2luQ2xzIiwidXNlRm9ybUl0ZW0iLCJGT1JNX0VSUk9SX0NPTE9SIiwiRk9STV9FUlJPUl9TSVpFIiwiRk9STV9XQVJOSU5HX0NPTE9SIiwiRk9STV9XQVJOSU5HX1NJWkUiLCJGT1JNX0RFU0NSSVBUSU9OX0NPTE9SIiwiRk9STV9ERVNDUklQVElPTl9TSVpFIiwiRk9STV9GRUVEQkFDS19DT0xPUiIsIkZPUk1fRkVFREJBQ0tfU0laRSIsIkZPUk1fTEFCRUxfQ09MT1IiLCJGT1JNX0xBQkVMX1NJWkVTIiwidXNlUHJvRm9ybVN0YWJsZSIsInVzZVByb0Zvcm1TdG9yZSIsInVzZVN0b3JlU2VsZWN0b3IiLCJzaGFsbG93RXF1YWxBcnJheXMiLCJyZXNvbHZlVmFsdWUiLCJERUZBVUxUX0NPTF9TUEFOIiwidmFsdWVFbnVtVG9PcHRpb25zIiwiZm9ybWF0RGF0ZUJ5UGF0dGVybiIsIkRBVEVfRk9STUFUIiwiREFURV9USU1FX0ZPUk1BVCIsIkVNUFRZX1RFWFRfREVGQVVMVCIsInJlbmRlckJ5VmFsdWVUeXBlIiwidmFsdWVUeXBlIiwidmFsdWUiLCJwcm9wcyIsInVuZGVmaW5lZCIsInJlcGVhdCIsIlN0cmluZyIsImxlbmd0aCIsIm51bSIsIk51bWJlciIsImlzTmFOIiwidG9Mb2NhbGVTdHJpbmciLCJ2YWx1ZUVudW0iLCJvcHRpb25zIiwibWF0Y2giLCJmaW5kIiwibyIsImxhYmVsIiwiRGF0ZSIsIlJlYWRvbmx5Q2hpbGRCYXNlIiwiX3JlZiIsIm5hbWUiLCJjb252ZXJ0VmFsdWUiLCJyZWFkb25seVJlbmRlciIsImVtcHR5VGV4dCIsInN0b3JlIiwiX3VzZVN0b3JlU2VsZWN0b3IiLCJzdGF0ZSIsInZhbHVlcyIsIl91c2VTdG9yZVNlbGVjdG9yMiIsIl9zbGljZWRUb0FycmF5IiwicmF3IiwiYWxsVmFsdWVzIiwibm9kZSIsImdldFN0YXRlIiwiY2hpbGRyZW4iLCJyZW5kZXJlZCIsImRpc3BsYXlOYW1lIiwiUmVhZG9ubHlDaGlsZCIsIkNvbnZlcnRWYWx1ZUNoaWxkQmFzZSIsIl9yZWYyIiwiX3JlZjIkdmFsdWVQcm9wTmFtZSIsInZhbHVlUHJvcE5hbWUiLCJjb252ZXJ0ZWQiLCJjbG9uZUVsZW1lbnQiLCJfZGVmaW5lUHJvcGVydHkiLCJDb252ZXJ0VmFsdWVDaGlsZCIsIlByb0Zvcm1JdGVtQmFzZSIsIl9hIiwiY3R4IiwibWVyZ2VkUHJvcHMiLCJmb3JtSXRlbVByb3BzIiwibWVyZ2VkIiwiT2JqZWN0IiwiYXNzaWduIiwiX2kiLCJfT2JqZWN0JGtleXMiLCJrZXlzIiwia2V5IiwiX21lcmdlZFByb3BzIiwiZGVzY3JpcHRpb24iLCJydWxlcyIsInJlcXVpcmVkIiwiZmVlZGJhY2siLCJ2YWxpZGF0ZVN0YXR1cyIsIl9tZXJnZWRQcm9wcyRjbGFzc05hbSIsImNsYXNzTmFtZSIsIl9tZXJnZWRQcm9wcyRwcmVmaXhDbCIsInByZWZpeENscyIsImhpZGRlbiIsInRyYW5zZm9ybSIsImNvbFByb3BzIiwibW9kZVByb3AiLCJtb2RlIiwiX21lcmdlZFByb3BzJGVtcHR5VGV4IiwidmFsaWRhdGVEZWJvdW5jZSIsIm1lcmdlZE1vZGUiLCJpc1JlYWRvbmx5IiwiX3VzZUZvcm1JdGVtIiwiZmllbGRFcnJvciIsImZpZWxkV2FybmluZyIsImlzUmVxdWlyZWQiLCJzaXplIiwibGFiZWxBbGlnbiIsInJlcXVpcmVkTWFyayIsImluamVjdEZpZWxkIiwib3duVHJhbnNmb3JtUmVmIiwib3duVmFsdWVUeXBlUmVmIiwicHJldlRyYW5zZm9ybSIsImN1cnJlbnQiLCJ1bnJlZ2lzdGVyVHJhbnNmb3JtIiwiZm4iLCJyZWdpc3RlclRyYW5zZm9ybSIsInByZXZWYWx1ZVR5cGUiLCJ1bnJlZ2lzdGVyVmFsdWVUeXBlIiwicmVnaXN0ZXJWYWx1ZVR5cGUiLCJ0cmFuc2Zvcm1SZWciLCJ2YWx1ZVR5cGVSZWciLCJ0IiwidiIsImNvbnRyb2xDaGlsZCIsImluamVjdGVkIiwiaXNWYWxpZEVsZW1lbnQiLCJjbGFzc2VzIiwiaXRlbUdhcCIsImxheW91dCIsImdhcFN0eWxlIiwibWFyZ2luQm90dG9tIiwiY29uY2F0Iiwic2hlbGwiLCJzdHlsZSIsImFzIiwiY29sb3IiLCJncmlkIiwiX21lcmdlZCRzcGFuIiwic3BhbiIsInNtIiwibWQiLCJsZyIsIlByb0Zvcm1JdGVtIl0sIm1hcHBpbmdzIjoiOztBQUFBLFNBQVNBLEdBQUcsSUFBSUMsSUFBSSxFQUFFQyxJQUFJLElBQUlDLEtBQUssUUFBUSxtQkFBbUI7QUNBOUQsT0FBT0MsS0FBSyxJQUFJQyxJQUFJLEVBQUVDLFNBQVMsRUFBRUMsTUFBTSxRQUFRLE9BQU87QUFFdEQsU0FBU0MsR0FBRyxRQUFRLFNBQVM7QUFDN0IsU0FBU0MsY0FBYyxFQUFFQyxlQUFlLFFBQVEsZUFBZTtBQUMvRCxTQUFTQyxPQUFPLElBQUlDLFVBQVUsRUFBRUMsT0FBTyxRQUFRLHdCQUF3QjtBQUN2RSxTQUFTQyxXQUFXLFFBQVEsb0JBQW9CO0FBQ2hELFNBQ0VDLGdCQUFnQixFQUNoQkMsZUFBZSxFQUNmQyxrQkFBa0IsRUFDbEJDLGlCQUFpQixFQUNqQkMsc0JBQXNCLEVBQ3RCQyxxQkFBcUIsRUFDckJDLG1CQUFtQixFQUNuQkMsa0JBQWtCLEVBQ2xCQyxnQkFBZ0IsRUFDaEJDLGdCQUFnQixRQUNYLGtCQUFrQjtBQUN6QixTQUFTQyxnQkFBZ0IsRUFBRUMsZUFBZSxRQUFRLFdBQVc7QUFDN0QsU0FBU0MsZ0JBQWdCLEVBQUVDLGtCQUFrQixRQUFRLGtCQUFrQjtBQUN2RSxTQUFTQyxZQUFZLFFBQVEsa0JBQWtCO0FBQy9D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d0gsWUFBQTtNQUFFRSxFQUFFLEdBQWFoRSxPQUFNLENBQXJCZ0UsRUFBRTtNQUFFQyxFQUFFLEdBQVNqRSxPQUFNLENBQWpCaUUsRUFBRTtNQUFFQyxFQUFFLEdBQUtsRSxPQUFNLENBQWJrRSxFQUFFO0lBQzNDLE9BQU96SixJQUFBLENBQUNPLEdBQUcsRUFBQTtNQUFDK0ksSUFBSSxFQUFFQSxJQUFJO01BQUVDLEVBQUUsRUFBRUEsRUFBRTtNQUFFQyxFQUFFLEVBQUVBLEVBQUU7TUFBRUMsRUFBRSxFQUFFQSxFQUFFO01BQUFuRixRQUFBLEVBQUcwRTtJQUFLLENBQUEsQ0FBTztFQUMvRDtFQUVBLE9BQU9BLEtBQUs7QUFDZCxDQUFDO0FBRUQ5RCxlQUFlLENBQUNWLFdBQVcsR0FBRyxhQUFhO0FBRTNDLE9BQU8sSUFBTWtGLFdBQVcsZ0JBQUd0SixJQUFJLENBQUM4RSxlQUFlLENBQUM7QUFFaEQsZUFBZXdFLFdBQVciLCJmaWxlIjoiY29tcG9uZW50cy9Qcm9Gb3JtL1Byb0Zvcm1JdGVtLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsganN4IGFzIF9qc3gsIGpzeHMgYXMgX2pzeHMgfSBmcm9tIFwicmVhY3QvanN4LXJ1bnRpbWVcIjtcbmltcG9ydCBSZWFjdCwgeyBtZW1vLCB1c2VFZmZlY3QsIHVzZVJlZiB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IENvbCB9IGZyb20gJy4uL0dyaWQnO1xuaW1wb3J0IHsgVHlwb2dyYXBoeUJvZHksIFR5cG9ncmFwaHlMYWJlbCB9IGZyb20gJy4uL1R5cG9ncmFwaHknO1xuaW1wb3J0IHsgZGVmYXVsdCBhcyBjbGFzc25hbWVzLCBqb2luQ2xzIH0gZnJvbSAnLi4vLi4vdXRpbHMvY2xhc3NuYW1lcyc7XG5pbXBvcnQgeyB1c2VGb3JtSXRlbSB9IGZyb20gJy4vY29yZS91c2VGb3JtSXRlbSc7XG5pbXBvcnQgeyBGT1JNX0VSUk9SX0NPTE9SLCBGT1JNX0VSUk9SX1NJWkUsIEZPUk1fV0FSTklOR19DT0xPUiwgRk9STV9XQVJOSU5HX1NJWkUsIEZPUk1fREVTQ1JJUFRJT05fQ09MT1IsIEZPUk1fREVTQ1JJUFRJT05fU0laRSwgRk9STV9GRUVEQkFDS19DT0xPUiwgRk9STV9GRUVEQkFDS19TSVpFLCBGT1JNX0xBQkVMX0NPTE9SLCBGT1JNX0xBQkVMX1NJWkVTLCB9IGZyb20gJy4vY29yZS9jb25zdGFudHMnO1xuaW1wb3J0IHsgdXNlUHJvRm9ybVN0YWJsZSwgdXNlUHJvRm9ybVN0b3JlIH0gZnJvbSAnLi9jb250ZXh0JztcbmltcG9ydCB7IHVzZVN0b3JlU2VsZWN0b3IsIHNoYWxsb3dFcXVhbEFycmF5cyB9IGZyb20gJy4vY29yZS9mb3JtU3RvcmUnO1xuaW1wb3J0IHsgcmVzb2x2ZVZhbHVlIH0gZnJvbSAnLi9jb3JlL3BhdGhVdGlscyc7XG5pbXBvcnQgeyBERUZBVUxUX0NPTF9TUEFOIH0gZnJvbSAnLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgdmFsdWVFbnVtVG9PcHRpb25zLCBmb3JtYXREYXRlQnlQYXR0ZXJuLCBEQVRFX0ZPUk1BVCwgREFURV9USU1FX0ZPUk1BVCB9IGZyb20gJy4vdXRpbHMnO1xuY29uc3QgRU1QVFlfVEVYVF9ERUZBVUxUID0gJy0nO1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBSZWFkLW1vZGUgcmVuZGVyaW5nIGZvciBlYWNoIHN1cHBvcnRlZCB2YWx1ZVR5cGVcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuZnVuY3Rpb24gcmVuZGVyQnlWYWx1ZVR5cGUodmFsdWVUeXBlLCB2YWx1ZSwgcHJvcHMpIHtcbiAgICBpZiAodmFsdWUgPT09IG51bGwgfHwgdmFsdWUgPT09IHVuZGVmaW5lZCB8fCB2YWx1ZSA9PT0gJycpXG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIHN3aXRjaCAodmFsdWVUeXBlKSB7XG4gICAgICAgIGNhc2UgJ3Bhc3N3b3JkJzpcbiAgICAgICAgICAgIHJldHVybiAnKicucmVwZWF0KFN0cmluZyh2YWx1ZSkubGVuZ3RoKTtcbiAgICAgICAgY2FzZSAnc3dpdGNoJzpcbiAgICAgICAgICAgIHJldHVybiB2YWx1ZSA/ICdPbicgOiAnT2ZmJztcbiAgICAgICAgY2FzZSAnZGlnaXQnOiB7XG4gICAgICAgICAgICBjb25zdCBudW0gPSBOdW1iZXIodmFsdWUpO1xuICAgICAgICAgICAgaWYgKE51bWJlci5pc05hTihudW0pKVxuICAgICAgICAgICAgICAgIHJldHVybiBTdHJpbmcodmFsdWUpO1xuICAgICAgICAgICAgcmV0dXJuIG51bS50b0xvY2FsZVN0cmluZygpO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJ3NlbGVjdCc6XG4gICAgICAgIGNhc2UgJ3JhZGlvJzpcbiAgICAgICAgY2FzZSAndGFnJzoge1xuICAgICAgICAgICAgaWYgKCFwcm9wcy52YWx1ZUVudW0pXG4gICAgICAgICAgICAgICAgcmV0dXJuIFN0cmluZyh2YWx1ZSk7XG4gICAgICAgICAgICBjb25zdCBvcHRpb25zID0gdmFsdWVFbnVtVG9PcHRpb25zKHByb3BzLnZhbHVlRW51bSk7XG4gICAgICAgICAgICBjb25zdCBtYXRjaCA9IG9wdGlvbnMuZmluZCgobykgPT4gU3RyaW5nKG8udmFsdWUpID09PSBTdHJpbmcodmFsdWUpKTtcbiAgICAgICAgICAgIHJldHVybiBtYXRjaCA/IG1hdGNoLmxhYmVsIDogU3RyaW5nKHZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgICBjYXNlICdkYXRlJzpcbiAgICAgICAgICAgIHJldHVybiB2YWx1ZSBpbnN0YW5jZW9mIERhdGUgPyBmb3JtYXREYXRlQnlQYXR0ZXJuKHZhbHVlLCBEQVRFX0ZPUk1BVCkgOiBTdHJpbmcodmFsdWUpO1xuICAgICAgICBjYXNlICdkYXRlVGltZSc6XG4gICAgICAgICAgICByZXR1cm4gdmFsdWUgaW5zdGFuY2VvZiBEYXRlID8gZm9ybWF0RGF0ZUJ5UGF0dGVybih2YWx1ZSwgREFURV9USU1FX0ZPUk1BVCkgOiBTdHJpbmcodmFsdWUpO1xuICAgICAgICBjYXNlICd0ZXh0JzpcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIHJldHVybiBTdHJpbmcodmFsdWUpO1xuICAgIH1cbn1cbmNvbnN0IFJlYWRvbmx5Q2hpbGRCYXNlID0gKHsgbmFtZSwgdmFsdWVUeXBlLCB2YWx1ZUVudW0sIGNvbnZlcnRWYWx1ZSwgcmVhZG9ubHlSZW5kZXIsIGVtcHR5VGV4dCwgfSkgPT4ge1xuICAgIGNvbnN0IHN0b3JlID0gdXNlUHJvRm9ybVN0b3JlKCk7XG4gICAgLy8gU3Vic2NyaWJlIHBlci1maWVsZDsgb25seSBhIGN1c3RvbSByZWFkb25seVJlbmRlciAod2hpY2ggcmVjZWl2ZXMgQUxMXG4gICAgLy8gdmFsdWVzKSBuZWVkcyB0byB0cmFjayB0aGUgd2hvbGUgdmFsdWVzIG9iamVjdC5cbiAgICBjb25zdCBbcmF3LCBhbGxWYWx1ZXNdID0gdXNlU3RvcmVTZWxlY3RvcihzdG9yZSwgKHN0YXRlKSA9PiBbXG4gICAgICAgIG5hbWUgPyByZXNvbHZlVmFsdWUoc3RhdGUudmFsdWVzLCBuYW1lKSA6IHVuZGVmaW5lZCxcbiAgICAgICAgcmVhZG9ubHlSZW5kZXIgPyBzdGF0ZS52YWx1ZXMgOiB1bmRlZmluZWQsXG4gICAgXSwgc2hhbGxvd0VxdWFsQXJyYXlzKTtcbiAgICBjb25zdCB2YWx1ZSA9IGNvbnZlcnRWYWx1ZSAmJiBuYW1lID8gY29udmVydFZhbHVlKHJhdywgbmFtZSkgOiByYXc7XG4gICAgaWYgKHJlYWRvbmx5UmVuZGVyKSB7XG4gICAgICAgIGNvbnN0IG5vZGUgPSByZWFkb25seVJlbmRlcih2YWx1ZSwgYWxsVmFsdWVzICE9PSBudWxsICYmIGFsbFZhbHVlcyAhPT0gdm9pZCAwID8gYWxsVmFsdWVzIDogc3RvcmUuZ2V0U3RhdGUoKS52YWx1ZXMpO1xuICAgICAgICByZXR1cm4gX2pzeChcInNwYW5cIiwgeyBjaGlsZHJlbjogbm9kZSAhPT0gbnVsbCAmJiBub2RlICE9PSB2b2lkIDAgPyBub2RlIDogZW1wdHlUZXh0IH0pO1xuICAgIH1cbiAgICBpZiAodmFsdWUgPT09IG51bGwgfHwgdmFsdWUgPT09IHVuZGVmaW5lZCB8fCB2YWx1ZSA9PT0gJycpIHtcbiAgICAgICAgcmV0dXJuIF9qc3goXCJzcGFuXCIsIHsgY2hpbGRyZW46IGVtcHR5VGV4dCB9KTtcbiAgICB9XG4gICAgY29uc3QgcmVuZGVyZWQgPSByZW5kZXJCeVZhbHVlVHlwZSh2YWx1ZVR5cGUsIHZhbHVlLCB7IHZhbHVlRW51bSB9KTtcbiAgICByZXR1cm4gX2pzeChcInNwYW5cIiwgeyBjaGlsZHJlbjogcmVuZGVyZWQgIT09IG51bGwgJiYgcmVuZGVyZWQgIT09IHZvaWQgMCA/IHJlbmRlcmVkIDogZW1wdHlUZXh0IH0pO1xufTtcblJlYWRvbmx5Q2hpbGRCYXNlLmRpc3BsYXlOYW1lID0gJ1Byb0Zvcm1JdGVtUmVhZG9ubHknO1xuY29uc3QgUmVhZG9ubHlDaGlsZCA9IG1lbW8oUmVhZG9ubHlDaGlsZEJhc2UpO1xuY29uc3QgQ29udmVydFZhbHVlQ2hpbGRCYXNlID0gKHsgbmFtZSwgY29udmVydFZhbHVlLCB2YWx1ZVByb3BOYW1lID0gJ3ZhbHVlJywgY2hpbGRyZW4sIH0pID0+IHtcbiAgICBjb25zdCBzdG9yZSA9IHVzZVByb0Zvcm1TdG9yZSgpO1xuICAgIGNvbnN0IHJhdyA9IHVzZVN0b3JlU2VsZWN0b3Ioc3RvcmUsIChzdGF0ZSkgPT4gcmVzb2x2ZVZhbHVlKHN0YXRlLnZhbHVlcywgbmFtZSkpO1xuICAgIGNvbnN0IGNvbnZlcnRlZCA9IGNvbnZlcnRWYWx1ZSA/IGNvbnZlcnRWYWx1ZShyYXcsIG5hbWUpIDogcmF3O1xuICAgIHJldHVybiBSZWFjdC5jbG9uZUVsZW1lbnQoY2hpbGRyZW4sIHsgW3ZhbHVlUHJvcE5hbWVdOiBjb252ZXJ0ZWQgfSk7XG59O1xuQ29udmVydFZhbHVlQ2hpbGRCYXNlLmRpc3BsYXlOYW1lID0gJ1Byb0Zvcm1JdGVtQ29udmVydFZhbHVlJztcbmNvbnN0IENvbnZlcnRWYWx1ZUNoaWxkID0gbWVtbyhDb252ZXJ0VmFsdWVDaGlsZEJhc2UpO1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBQcm9Gb3JtSXRlbVxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5jb25zdCBQcm9Gb3JtSXRlbUJhc2UgPSAocHJvcHMpID0+IHtcbiAgICB2YXIgX2E7XG4gICAgLy8gU3RhYmxlIHNsaWNlIG9ubHkg4oCUIHZhbHVlL2Vycm9yIHJlYWN0aXZpdHkgbGl2ZXMgaW4gdXNlRm9ybUl0ZW0nc1xuICAgIC8vIHBlci1maWVsZCBzdWJzY3JpcHRpb24sIHNvIHRoaXMgc2hlbGwgbmV2ZXIgcmUtcmVuZGVycyBmb3Igc2libGluZ3MuXG4gICAgY29uc3QgY3R4ID0gdXNlUHJvRm9ybVN0YWJsZSgpO1xuICAgIC8vIEZvcm0tbGV2ZWwgYGZvcm1JdGVtUHJvcHNgIGFjdCBhcyBERUZBVUxUUzsgcHJvcHMgZXhwbGljaXRseSBzZXQgb24gdGhlXG4gICAgLy8gaXRlbSB3aW4uIEpTWCBmcmVxdWVudGx5IHBhc3NlcyBgdW5kZWZpbmVkYCBmb3IgdW5zZXQgcHJvcHMgKGUuZy4gdGhlXG4gICAgLy8gY3JlYXRlUHJvRm9ybUZpZWxkIHBhc3MtdGhyb3VnaCksIHNvIG9ubHkgZGVmaW5lZCB2YWx1ZXMgbWF5IG92ZXJyaWRlLlxuICAgIGxldCBtZXJnZWRQcm9wcyA9IHByb3BzO1xuICAgIGlmIChjdHguZm9ybUl0ZW1Qcm9wcykge1xuICAgICAgICBjb25zdCBtZXJnZWQgPSBPYmplY3QuYXNzaWduKHt9LCBjdHguZm9ybUl0ZW1Qcm9wcyk7XG4gICAgICAgIGZvciAoY29uc3Qga2V5IG9mIE9iamVjdC5rZXlzKHByb3BzKSkge1xuICAgICAgICAgICAgY29uc3QgdmFsdWUgPSBwcm9wc1trZXldO1xuICAgICAgICAgICAgaWYgKHZhbHVlICE9PSB1bmRlZmluZWQpXG4gICAgICAgICAgICAgICAgbWVyZ2VkW2tleV0gPSB2YWx1ZTtcbiAgICAgICAgfVxuICAgICAgICBtZXJnZWRQcm9wcyA9IG1lcmdlZDtcbiAgICB9XG4gICAgY29uc3QgeyBjaGlsZHJlbiwgbmFtZSwgbGFiZWwsIGRlc2NyaXB0aW9uLCBydWxlcywgcmVxdWlyZWQsIGZlZWRiYWNrLCB2YWxpZGF0ZVN0YXR1cywgY2xhc3NOYW1lID0gJycsIHByZWZpeENscyA9ICdmb3JtLWl0ZW0nLCBoaWRkZW4sIHRyYW5zZm9ybSwgY29udmVydFZhbHVlLCB2YWx1ZVR5cGUsIHJlYWRvbmx5UmVuZGVyLCBjb2xQcm9wcywgbW9kZTogbW9kZVByb3AsIGVtcHR5VGV4dCA9IEVNUFRZX1RFWFRfREVGQVVMVCwgdmFsdWVFbnVtLCB2YWx1ZVByb3BOYW1lLCB2YWxpZGF0ZURlYm91bmNlLCB9ID0gbWVyZ2VkUHJvcHM7XG4gICAgY29uc3QgbWVyZ2VkTW9kZSA9IG1vZGVQcm9wICE9PSBudWxsICYmIG1vZGVQcm9wICE9PSB2b2lkIDAgPyBtb2RlUHJvcCA6IGN0eC5tb2RlO1xuICAgIGNvbnN0IGlzUmVhZG9ubHkgPSBtZXJnZWRNb2RlID09PSAncmVhZCc7XG4gICAgY29uc3QgeyBmaWVsZEVycm9yLCBmaWVsZFdhcm5pbmcsIGlzUmVxdWlyZWQsIHNpemUsIGxhYmVsQWxpZ24sIHJlcXVpcmVkTWFyaywgaW5qZWN0RmllbGQsIH0gPSB1c2VGb3JtSXRlbSh7IG5hbWUsIHJ1bGVzLCByZXF1aXJlZCwgdmFsaWRhdGVTdGF0dXMsIHZhbHVlUHJvcE5hbWUsIHZhbGlkYXRlRGVib3VuY2UgfSk7XG4gICAgLy8gUmVnaXN0ZXIgdHJhbnNmb3JtIC8gdmFsdWVUeXBlIERVUklORyByZW5kZXIgKGlkZW1wb3RlbnQgcmVmIHdyaXRlcywgbGlrZVxuICAgIC8vIHJlZ2lzdGVyRmllbGQpOiBjb25zdW1lcnMgcmVuZGVyZWQgbGF0ZXIgaW4gdGhlIHNhbWUgcGFzcyDigJQgZS5nLiBhXG4gICAgLy8gRGVwZW5kZW5jeSByZWFkaW5nIGZvcm1hdHRlZCB2YWx1ZXMg4oCUIG11c3QgYWxyZWFkeSBzZWUgdGhlbS4gRWZmZWN0c1xuICAgIC8vIHdvdWxkIHJlZ2lzdGVyIHRvbyBsYXRlIChhZnRlciB0aGUgd2hvbGUgdHJlZSByZW5kZXJlZCkuXG4gICAgLy9cbiAgICAvLyBFYWNoIGluc3RhbmNlIHRyYWNrcyB0aGUge25hbWUsIHZhbHVlfSBQQUlSIGl0IHJlZ2lzdGVyZWQuIFJlbW92YWwgaXNcbiAgICAvLyBhbHdheXMgcGVyZm9ybWVkIHdpdGggdGhlIHBhaXIncyBvd24gbmFtZSBBTkQgdmFsdWU6IGFuIGl0ZW0gd2l0aG91dCBhXG4gICAgLy8gdHJhbnNmb3JtIG5ldmVyIHRvdWNoZXMgYSBzYW1lLW5hbWUgc2libGluZydzIHJlZ2lzdHJhdGlvbiwgYW4gdW5tb3VudFxuICAgIC8vIGNsZWFudXAgY2FuJ3Qgd2lwZSBhIHN1Y2Nlc3NvcidzICh2YWx1ZS1ndWFyZGVkKSwgYW5kIGEgTkFNRSBjaGFuZ2VcbiAgICAvLyByZW1vdmVzIHRoZSBvbGQgbmFtZSdzIGVudHJ5IHdpdGggdGhlIE9MRCB2YWx1ZSBiZWZvcmUgdGhlIHJlZiBpc1xuICAgIC8vIG92ZXJ3cml0dGVuIChhIGxpdmUgc2luZ2xlLXZhbHVlIHJlZiB3b3VsZCBsZWFrIGl0KS5cbiAgICBjb25zdCBvd25UcmFuc2Zvcm1SZWYgPSB1c2VSZWYobnVsbCk7XG4gICAgY29uc3Qgb3duVmFsdWVUeXBlUmVmID0gdXNlUmVmKG51bGwpO1xuICAgIGNvbnN0IHByZXZUcmFuc2Zvcm0gPSBvd25UcmFuc2Zvcm1SZWYuY3VycmVudDtcbiAgICBpZiAocHJldlRyYW5zZm9ybSAmJiAocHJldlRyYW5zZm9ybS5uYW1lICE9PSBuYW1lIHx8ICF0cmFuc2Zvcm0pKSB7XG4gICAgICAgIGN0eC51bnJlZ2lzdGVyVHJhbnNmb3JtKHByZXZUcmFuc2Zvcm0ubmFtZSwgcHJldlRyYW5zZm9ybS5mbik7XG4gICAgICAgIG93blRyYW5zZm9ybVJlZi5jdXJyZW50ID0gbnVsbDtcbiAgICB9XG4gICAgaWYgKG5hbWUgJiYgdHJhbnNmb3JtKSB7XG4gICAgICAgIGN0eC5yZWdpc3RlclRyYW5zZm9ybShuYW1lLCB0cmFuc2Zvcm0pO1xuICAgICAgICBvd25UcmFuc2Zvcm1SZWYuY3VycmVudCA9IHsgbmFtZSwgZm46IHRyYW5zZm9ybSB9O1xuICAgIH1cbiAgICBjb25zdCBwcmV2VmFsdWVUeXBlID0gb3duVmFsdWVUeXBlUmVmLmN1cnJlbnQ7XG4gICAgaWYgKHByZXZWYWx1ZVR5cGUgJiYgKHByZXZWYWx1ZVR5cGUubmFtZSAhPT0gbmFtZSB8fCAhdmFsdWVUeXBlKSkge1xuICAgICAgICBjdHgudW5yZWdpc3RlclZhbHVlVHlwZShwcmV2VmFsdWVUeXBlLm5hbWUsIHByZXZWYWx1ZVR5cGUudmFsdWVUeXBlKTtcbiAgICAgICAgb3duVmFsdWVUeXBlUmVmLmN1cnJlbnQgPSBudWxsO1xuICAgIH1cbiAgICBpZiAobmFtZSAmJiB2YWx1ZVR5cGUpIHtcbiAgICAgICAgY3R4LnJlZ2lzdGVyVmFsdWVUeXBlKG5hbWUsIHZhbHVlVHlwZSk7XG4gICAgICAgIG93blZhbHVlVHlwZVJlZi5jdXJyZW50ID0geyBuYW1lLCB2YWx1ZVR5cGUgfTtcbiAgICB9XG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgLy8gUkUtUkVHSVNURVIgaW4gdGhlIGJvZHk6IFN0cmljdE1vZGUncyBtb3VudOKGkmNsZWFudXDihpJyZS1ydW4gY3ljbGUgYW5kXG4gICAgICAgIC8vIGtleWVkIHJlbW91bnRzIChvbGQgaW5zdGFuY2UncyBjbGVhbnVwIHJ1bnMgQUZURVIgdGhlIG5ldyByZW5kZXJcbiAgICAgICAgLy8gcmVnaXN0ZXJlZCkgYm90aCBlbmQgd2l0aCBhIGNsZWFudXAgaGF2aW5nIGRlbGV0ZWQgdGhlIGVudHJ5IOKAlCB0aGVcbiAgICAgICAgLy8gZWZmZWN0IGJvZHkgbXVzdCByZXN0b3JlIHRoZSBsYXRlc3QgcmVnaXN0cmF0aW9uLlxuICAgICAgICBjb25zdCB0cmFuc2Zvcm1SZWcgPSBvd25UcmFuc2Zvcm1SZWYuY3VycmVudDtcbiAgICAgICAgaWYgKHRyYW5zZm9ybVJlZylcbiAgICAgICAgICAgIGN0eC5yZWdpc3RlclRyYW5zZm9ybSh0cmFuc2Zvcm1SZWcubmFtZSwgdHJhbnNmb3JtUmVnLmZuKTtcbiAgICAgICAgY29uc3QgdmFsdWVUeXBlUmVnID0gb3duVmFsdWVUeXBlUmVmLmN1cnJlbnQ7XG4gICAgICAgIGlmICh2YWx1ZVR5cGVSZWcpXG4gICAgICAgICAgICBjdHgucmVnaXN0ZXJWYWx1ZVR5cGUodmFsdWVUeXBlUmVnLm5hbWUsIHZhbHVlVHlwZVJlZy52YWx1ZVR5cGUpO1xuICAgICAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgdCA9IG93blRyYW5zZm9ybVJlZi5jdXJyZW50O1xuICAgICAgICAgICAgaWYgKHQpXG4gICAgICAgICAgICAgICAgY3R4LnVucmVnaXN0ZXJUcmFuc2Zvcm0odC5uYW1lLCB0LmZuKTtcbiAgICAgICAgICAgIGNvbnN0IHYgPSBvd25WYWx1ZVR5cGVSZWYuY3VycmVudDtcbiAgICAgICAgICAgIGlmICh2KVxuICAgICAgICAgICAgICAgIGN0eC51bnJlZ2lzdGVyVmFsdWVUeXBlKHYubmFtZSwgdi52YWx1ZVR5cGUpO1xuICAgICAgICB9O1xuICAgIH0sIFtuYW1lLCBjdHgucmVnaXN0ZXJUcmFuc2Zvcm0sIGN0eC51bnJlZ2lzdGVyVHJhbnNmb3JtLCBjdHgucmVnaXN0ZXJWYWx1ZVR5cGUsIGN0eC51bnJlZ2lzdGVyVmFsdWVUeXBlXSk7XG4gICAgaWYgKGhpZGRlbilcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgbGV0IGNvbnRyb2xDaGlsZDtcbiAgICBpZiAoaXNSZWFkb25seSkge1xuICAgICAgICBjb250cm9sQ2hpbGQgPSAoX2pzeChSZWFkb25seUNoaWxkLCB7IG5hbWU6IG5hbWUsIHZhbHVlVHlwZTogdmFsdWVUeXBlLCB2YWx1ZUVudW06IHZhbHVlRW51bSwgY29udmVydFZhbHVlOiBjb252ZXJ0VmFsdWUsIHJlYWRvbmx5UmVuZGVyOiByZWFkb25seVJlbmRlciwgZW1wdHlUZXh0OiBlbXB0eVRleHQgfSkpO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgICAgLy8gSW5qZWN0IGZpcnN0IHNvIHRoZSByZWFsIGZpZWxkIHJlY2VpdmVzIHZhbHVlL29uQ2hhbmdlL29uQmx1cixcbiAgICAgICAgLy8gdGhlbiBvcHRpb25hbGx5IHdyYXAgaW4gQ29udmVydFZhbHVlQ2hpbGQgdG8gb3ZlcnJpZGUgdGhlIGRpc3BsYXllZCB2YWx1ZS5cbiAgICAgICAgY29uc3QgaW5qZWN0ZWQgPSBpbmplY3RGaWVsZChjaGlsZHJlbik7XG4gICAgICAgIGlmIChjb252ZXJ0VmFsdWUgJiYgbmFtZSAmJiBSZWFjdC5pc1ZhbGlkRWxlbWVudChpbmplY3RlZCkpIHtcbiAgICAgICAgICAgIGNvbnRyb2xDaGlsZCA9IChfanN4KENvbnZlcnRWYWx1ZUNoaWxkLCB7IG5hbWU6IG5hbWUsIGNvbnZlcnRWYWx1ZTogY29udmVydFZhbHVlLCB2YWx1ZVByb3BOYW1lOiB2YWx1ZVByb3BOYW1lLCBjaGlsZHJlbjogaW5qZWN0ZWQgfSkpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgY29udHJvbENoaWxkID0gaW5qZWN0ZWQ7XG4gICAgICAgIH1cbiAgICB9XG4gICAgY29uc3QgY2xhc3NlcyA9IGNsYXNzbmFtZXMocHJlZml4Q2xzKTtcbiAgICAvLyBGb3JtLWxldmVsIGxheW91dC5pdGVtR2FwIG92ZXJyaWRlcyB0aGUgc2l6ZS1jbGFzcyBtYXJnaW4gKGlubGluZSBzdHlsZVxuICAgIC8vIHdpbnMpOyBpdGVtR2FwPTAgaXMgbWVhbmluZ2Z1bC5cbiAgICBjb25zdCBpdGVtR2FwID0gKF9hID0gY3R4LmxheW91dCkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLml0ZW1HYXA7XG4gICAgY29uc3QgZ2FwU3R5bGUgPSBpdGVtR2FwICE9PSB1bmRlZmluZWRcbiAgICAgICAgPyB7IG1hcmdpbkJvdHRvbTogdHlwZW9mIGl0ZW1HYXAgPT09ICdudW1iZXInID8gYCR7aXRlbUdhcH1weGAgOiBpdGVtR2FwIH1cbiAgICAgICAgOiB1bmRlZmluZWQ7XG4gICAgY29uc3Qgc2hlbGwgPSAoX2pzeHMoXCJkaXZcIiwgeyBjbGFzc05hbWU6IGNsYXNzZXModW5kZWZpbmVkLCBqb2luQ2xzKGNsYXNzZXMoc2l6ZSksIGNsYXNzTmFtZSkpLCBzdHlsZTogZ2FwU3R5bGUsIGNoaWxkcmVuOiBbbGFiZWwgJiYgKF9qc3hzKFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCdsYWJlbC13cmFwcGVyJywgam9pbkNscyhjbGFzc2VzKCdsYWJlbC13cmFwcGVyLXZlcnRpY2FsJyksIGxhYmVsQWxpZ24gJiYgY2xhc3NlcyhgbGFiZWwtd3JhcHBlci0ke2xhYmVsQWxpZ259YCkpKSwgY2hpbGRyZW46IFtfanN4KFR5cG9ncmFwaHlMYWJlbCwgeyBhczogXCJsYWJlbFwiLCBzaXplOiBGT1JNX0xBQkVMX1NJWkVTW3NpemVdLCBjb2xvcjogRk9STV9MQUJFTF9DT0xPUiwgY2xhc3NOYW1lOiBjbGFzc2VzKCdsYWJlbCcpLCBjaGlsZHJlbjogbGFiZWwgfSksIGRlc2NyaXB0aW9uICYmIChfanN4KFR5cG9ncmFwaHlCb2R5LCB7IGFzOiBcImRpdlwiLCBjbGFzc05hbWU6IGNsYXNzZXMoJ2Rlc2NyaXB0aW9uJyksIHNpemU6IEZPUk1fREVTQ1JJUFRJT05fU0laRSwgY29sb3I6IEZPUk1fREVTQ1JJUFRJT05fQ09MT1IsIGNoaWxkcmVuOiBkZXNjcmlwdGlvbiB9KSldIH0pKSwgX2pzeHMoXCJkaXZcIiwgeyBjbGFzc05hbWU6IGNsYXNzZXMoJ2NvbnRyb2wnKSwgY2hpbGRyZW46IFtjb250cm9sQ2hpbGQsIGZpZWxkRXJyb3IgJiYgKF9qc3goVHlwb2dyYXBoeUJvZHksIHsgYXM6IFwiZGl2XCIsIGNsYXNzTmFtZTogY2xhc3NlcygnZXJyb3InKSwgc2l6ZTogRk9STV9FUlJPUl9TSVpFLCBjb2xvcjogRk9STV9FUlJPUl9DT0xPUiwgY2hpbGRyZW46IGZpZWxkRXJyb3IgfSkpLCAhZmllbGRFcnJvciAmJiBmaWVsZFdhcm5pbmcgJiYgKF9qc3goVHlwb2dyYXBoeUJvZHksIHsgYXM6IFwiZGl2XCIsIGNsYXNzTmFtZTogY2xhc3Nlcygnd2FybmluZycpLCBzaXplOiBGT1JNX1dBUk5JTkdfU0laRSwgY29sb3I6IEZPUk1fV0FSTklOR19DT0xPUiwgY2hpbGRyZW46IGZpZWxkV2FybmluZyB9KSksICFmaWVsZEVycm9yICYmICFmaWVsZFdhcm5pbmcgJiYgZmVlZGJhY2sgJiYgKF9qc3goVHlwb2dyYXBoeUJvZHksIHsgYXM6IFwiZGl2XCIsIGNsYXNzTmFtZTogY2xhc3NlcygnZmVlZGJhY2snKSwgc2l6ZTogRk9STV9GRUVEQkFDS19TSVpFLCBjb2xvcjogRk9STV9GRUVEQkFDS19DT0xPUiwgY2hpbGRyZW46IGZlZWRiYWNrIH0pKV0gfSldIH0pKTtcbiAgICBpZiAoY3R4LmdyaWQpIHtcbiAgICAgICAgY29uc3QgbWVyZ2VkID0gT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCBjdHguY29sUHJvcHMpLCBjb2xQcm9wcyk7XG4gICAgICAgIGNvbnN0IHsgc3BhbiA9IERFRkFVTFRfQ09MX1NQQU4sIHNtLCBtZCwgbGcgfSA9IG1lcmdlZDtcbiAgICAgICAgcmV0dXJuIF9qc3goQ29sLCB7IHNwYW46IHNwYW4sIHNtOiBzbSwgbWQ6IG1kLCBsZzogbGcsIGNoaWxkcmVuOiBzaGVsbCB9KTtcbiAgICB9XG4gICAgcmV0dXJuIHNoZWxsO1xufTtcblByb0Zvcm1JdGVtQmFzZS5kaXNwbGF5TmFtZSA9ICdQcm9Gb3JtSXRlbSc7XG5leHBvcnQgY29uc3QgUHJvRm9ybUl0ZW0gPSBtZW1vKFByb0Zvcm1JdGVtQmFzZSk7XG5leHBvcnQgZGVmYXVsdCBQcm9Gb3JtSXRlbTsiLG51bGxdLCJzb3VyY2VSb290IjoiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjIn0=
|