@1money/component-ui 0.0.71 → 0.0.74
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/es/components/ProForm/ProForm.d.ts +10 -2
- package/es/components/ProForm/ProForm.js +241 -55
- package/es/components/ProForm/ProFormDependency.d.ts +11 -2
- package/es/components/ProForm/ProFormDependency.js +29 -133
- package/es/components/ProForm/ProFormItem.js +146 -52
- package/es/components/ProForm/ProFormList.js +114 -62
- package/es/components/ProForm/SchemaForm.d.ts +7 -0
- package/es/components/ProForm/SchemaForm.js +103 -0
- package/es/components/ProForm/Submitter.js +26 -5
- package/es/components/ProForm/context.d.ts +30 -3
- package/es/components/ProForm/context.js +69 -10
- package/es/components/ProForm/core/constants.d.ts +12 -3
- package/es/components/ProForm/core/constants.js +18 -7
- 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 +336 -212
- package/es/components/ProForm/core/hooks/useFormCore.d.ts +5 -1
- package/es/components/ProForm/core/hooks/useFormCore.js +151 -93
- package/es/components/ProForm/core/interface.d.ts +33 -12
- package/es/components/ProForm/core/runRules.d.ts +20 -8
- package/es/components/ProForm/core/runRules.js +105 -50
- package/es/components/ProForm/core/useFormItem.d.ts +10 -1
- package/es/components/ProForm/core/useFormItem.js +141 -56
- package/es/components/ProForm/fields/ProFormDatePicker.js +4 -1
- package/es/components/ProForm/fields/ProFormFieldSet.js +20 -7
- package/es/components/ProForm/fields/createProFormField.js +61 -32
- 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 +12 -5
- package/es/components/ProForm/index.js +7 -2
- package/es/components/ProForm/interface.d.ts +185 -28
- package/es/components/ProForm/layouts/DialogForm.d.ts +5 -1
- package/es/components/ProForm/layouts/DialogForm.js +18 -7
- package/es/components/ProForm/layouts/DrawerForm.d.ts +5 -1
- package/es/components/ProForm/layouts/DrawerForm.js +17 -7
- package/es/components/ProForm/layouts/QueryFilter.d.ts +5 -2
- package/es/components/ProForm/layouts/QueryFilter.js +47 -71
- 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 +4 -4
- package/es/components/ProForm/utils.d.ts +12 -1
- package/es/components/ProForm/utils.js +101 -28
- package/es/components/ProTable/ProTable.js +3 -3
- package/es/components/Tooltip/style/Tooltip.css +1 -0
- package/es/index.css +1 -1
- package/es/index.d.ts +2 -2
- package/es/index.js +2 -2
- package/lib/components/ProForm/ProForm.d.ts +10 -2
- package/lib/components/ProForm/ProForm.js +239 -53
- package/lib/components/ProForm/ProFormDependency.d.ts +11 -2
- package/lib/components/ProForm/ProFormDependency.js +30 -135
- package/lib/components/ProForm/ProFormItem.js +143 -48
- package/lib/components/ProForm/ProFormList.js +112 -60
- package/lib/components/ProForm/SchemaForm.d.ts +7 -0
- package/lib/components/ProForm/SchemaForm.js +110 -0
- package/lib/components/ProForm/Submitter.js +26 -5
- package/lib/components/ProForm/context.d.ts +30 -3
- package/lib/components/ProForm/context.js +69 -10
- package/lib/components/ProForm/core/constants.d.ts +12 -3
- package/lib/components/ProForm/core/constants.js +19 -8
- 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 +336 -212
- package/lib/components/ProForm/core/hooks/useFormCore.d.ts +5 -1
- package/lib/components/ProForm/core/hooks/useFormCore.js +150 -92
- package/lib/components/ProForm/core/interface.d.ts +33 -12
- package/lib/components/ProForm/core/runRules.d.ts +20 -8
- package/lib/components/ProForm/core/runRules.js +106 -50
- package/lib/components/ProForm/core/useFormItem.d.ts +10 -1
- package/lib/components/ProForm/core/useFormItem.js +138 -53
- package/lib/components/ProForm/fields/ProFormDatePicker.js +4 -1
- package/lib/components/ProForm/fields/ProFormFieldSet.js +19 -6
- package/lib/components/ProForm/fields/createProFormField.js +61 -32
- 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 +12 -5
- package/lib/components/ProForm/index.js +16 -1
- package/lib/components/ProForm/interface.d.ts +185 -28
- package/lib/components/ProForm/layouts/DialogForm.d.ts +5 -1
- package/lib/components/ProForm/layouts/DialogForm.js +18 -7
- package/lib/components/ProForm/layouts/DrawerForm.d.ts +5 -1
- package/lib/components/ProForm/layouts/DrawerForm.js +17 -7
- package/lib/components/ProForm/layouts/QueryFilter.d.ts +5 -2
- package/lib/components/ProForm/layouts/QueryFilter.js +46 -70
- 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 +4 -4
- package/lib/components/ProForm/utils.d.ts +12 -1
- package/lib/components/ProForm/utils.js +104 -28
- package/lib/components/ProTable/ProTable.js +3 -3
- package/lib/components/Tooltip/style/Tooltip.css +1 -0
- package/lib/index.css +1 -1
- package/lib/index.d.ts +2 -2
- package/lib/index.js +13 -1
- package/package.json +1 -1
- package/scripts/mcp-server/examples.generated.json +90 -0
- package/scripts/mcp-server/index.generated.json +1866 -212
|
@@ -1,4 +1,13 @@
|
|
|
1
|
-
import
|
|
1
|
+
import type { ReactElement } from 'react';
|
|
2
2
|
import type { ProFormDependencyProps } from './interface';
|
|
3
|
-
|
|
3
|
+
/**
|
|
4
|
+
* Generic-aware component type — `memo()` erases generics, so the export is
|
|
5
|
+
* re-asserted to keep `<ProForm.Dependency<MyValues> name={['a']}>` fully
|
|
6
|
+
* typed (autocompleted `name`, typed `form` in children).
|
|
7
|
+
*/
|
|
8
|
+
export interface ProFormDependencyComponent {
|
|
9
|
+
<Values = Record<string, unknown>>(props: ProFormDependencyProps<Values>): ReactElement | null;
|
|
10
|
+
displayName?: string;
|
|
11
|
+
}
|
|
12
|
+
export declare const ProFormDependency: ProFormDependencyComponent;
|
|
4
13
|
export default ProFormDependency;
|
|
@@ -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,116 +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
|
-
getFieldsError: function getFieldsError() {
|
|
100
|
-
return {};
|
|
101
|
-
},
|
|
102
|
-
isFieldTouched: function isFieldTouched() {
|
|
103
|
-
return false;
|
|
104
|
-
},
|
|
105
|
-
isFieldsTouched: function isFieldsTouched() {
|
|
106
|
-
return false;
|
|
107
|
-
},
|
|
108
|
-
isFieldValidating: function isFieldValidating() {
|
|
109
|
-
return false;
|
|
110
|
-
},
|
|
111
|
-
setFieldError: function setFieldError() {},
|
|
112
|
-
setFieldsError: function setFieldsError() {},
|
|
113
|
-
setFieldTouched: function setFieldTouched() {},
|
|
114
|
-
setFieldsTouched: function setFieldsTouched() {},
|
|
115
|
-
defineField: function defineField() {
|
|
116
|
-
return function () {
|
|
117
|
-
return null;
|
|
118
|
-
};
|
|
119
|
-
},
|
|
120
|
-
registerField: function registerField() {},
|
|
121
|
-
unregisterField: function unregisterField() {},
|
|
122
|
-
getFieldsFormatValue: function getFieldsFormatValue() {
|
|
123
|
-
return values;
|
|
124
|
-
},
|
|
125
|
-
validateFieldsReturnFormatValue: function validateFieldsReturnFormatValue() {
|
|
126
|
-
return __awaiter(void 0, void 0, void 0, /*#__PURE__*/_regeneratorRuntime.mark(function _callee3() {
|
|
127
|
-
return _regeneratorRuntime.wrap(function (_context3) {
|
|
128
|
-
while (1) switch (_context3.prev = _context3.next) {
|
|
129
|
-
case 0:
|
|
130
|
-
return _context3.abrupt("return", {
|
|
131
|
-
success: false
|
|
132
|
-
});
|
|
133
|
-
case 1:
|
|
134
|
-
case "end":
|
|
135
|
-
return _context3.stop();
|
|
136
|
-
}
|
|
137
|
-
}, _callee3);
|
|
138
|
-
}));
|
|
139
|
-
},
|
|
140
|
-
submitForm: function submitForm() {
|
|
141
|
-
return __awaiter(void 0, void 0, void 0, /*#__PURE__*/_regeneratorRuntime.mark(function _callee4() {
|
|
142
|
-
return _regeneratorRuntime.wrap(function (_context4) {
|
|
143
|
-
while (1) switch (_context4.prev = _context4.next) {
|
|
144
|
-
case 0:
|
|
145
|
-
case "end":
|
|
146
|
-
return _context4.stop();
|
|
147
|
-
}
|
|
148
|
-
}, _callee4);
|
|
149
|
-
}));
|
|
150
|
-
}
|
|
151
|
-
};
|
|
152
|
-
}, [values]);
|
|
48
|
+
}, [name, resolvedPaths, watchedArray, formInstance]);
|
|
153
49
|
return _jsx(_Fragment, {
|
|
154
|
-
children: children(watchedValues, formInstance
|
|
50
|
+
children: children(watchedValues, formInstance)
|
|
155
51
|
});
|
|
156
52
|
};
|
|
157
53
|
ProFormDependencyBase.displayName = 'ProFormDependency';
|
|
158
54
|
export var ProFormDependency = /*#__PURE__*/memo(ProFormDependencyBase);
|
|
159
55
|
export default ProFormDependency;
|
|
160
|
-
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvUHJvRm9ybS9Qcm9Gb3JtRGVwZW5kZW5jeS5qcyIsImNvbXBvbmVudHMvc3JjL2NvbXBvbmVudHMvUHJvRm9ybS9Qcm9Gb3JtRGVwZW5kZW5jeS50c3giXSwibmFtZXMiOlsiX19hd2FpdGVyIiwidGhpc0FyZyIsIl9hcmd1bWVudHMiLCJQIiwiZ2VuZXJhdG9yIiwiYWRvcHQiLCJ2YWx1ZSIsInJlc29sdmUiLCJQcm9taXNlIiwicmVqZWN0IiwiZnVsZmlsbGVkIiwic3RlcCIsIm5leHQiLCJlIiwicmVqZWN0ZWQiLCJyZXN1bHQiLCJkb25lIiwidGhlbiIsImFwcGx5IiwiRnJhZ21lbnQiLCJfRnJhZ21lbnQiLCJqc3giLCJfanN4IiwiUmVhY3QiLCJtZW1vIiwidXNlTWVtbyIsInVzZVByb0Zvcm1Db250ZXh0IiwidXNlRm9ybUxpc3RDb250ZXh0IiwiZ2V0TmVzdGVkVmFsdWUiLCJQcm9Gb3JtRGVwZW5kZW5jeUJhc2UiLCJfcmVmIiwibmFtZSIsImlnbm9yZUZvcm1MaXN0RmllbGQiLCJjaGlsZHJlbiIsIl91c2VQcm9Gb3JtQ29udGV4dCIsInZhbHVlcyIsImZvcm1JbnN0YW5jZSIsImZvcm1MaXN0Q3R4IiwicmVzb2x2ZWRQYXRocyIsInNob3VsZFByZWZpeCIsImxpc3ROYW1lIiwidW5kZWZpbmVkIiwibWFwIiwiZmllbGROYW1lIiwiY29uY2F0Iiwid2F0Y2hlZFZhbHVlcyIsImkiLCJsZW5ndGgiLCJvcmlnaW5hbE5hbWUiLCJyZXNvbHZlZFBhdGgiLCJpbmNsdWRlcyIsImZhbGxiYWNrSW5zdGFuY2UiLCJzdWJtaXQiLCJfcmVnZW5lcmF0b3JSdW50aW1lIiwibWFyayIsIl9jYWxsZWUiLCJ3cmFwIiwiX2NvbnRleHQiLCJwcmV2IiwiYWJydXB0Iiwic3RvcCIsInJlc2V0RmllbGRzIiwiZ2V0RmllbGRWYWx1ZSIsIm4iLCJnZXRGaWVsZHNWYWx1ZSIsInNldEZpZWxkc1ZhbHVlIiwic2V0RmllbGRWYWx1ZSIsInZhbGlkYXRlRmllbGRzIiwiX2NhbGxlZTIiLCJfY29udGV4dDIiLCJnZXRGaWVsZEVycm9yIiwiZ2V0RmllbGRzRXJyb3IiLCJpc0ZpZWxkVG91Y2hlZCIsImlzRmllbGRzVG91Y2hlZCIsImlzRmllbGRWYWxpZGF0aW5nIiwic2V0RmllbGRFcnJvciIsInNldEZpZWxkc0Vycm9yIiwic2V0RmllbGRUb3VjaGVkIiwic2V0RmllbGRzVG91Y2hlZCIsImRlZmluZUZpZWxkIiwicmVnaXN0ZXJGaWVsZCIsInVucmVnaXN0ZXJGaWVsZCIsImdldEZpZWxkc0Zvcm1hdFZhbHVlIiwidmFsaWRhdGVGaWVsZHNSZXR1cm5Gb3JtYXRWYWx1ZSIsIl9jYWxsZWUzIiwiX2NvbnRleHQzIiwic3VjY2VzcyIsInN1Ym1pdEZvcm0iLCJfY2FsbGVlNCIsIl9jb250ZXh0NCIsImRpc3BsYXlOYW1lIiwiUHJvRm9ybURlcGVuZGVuY3kiXSwibWFwcGluZ3MiOiI7QUFBQSxJQUFJQSxTQUFTLEdBQUksSUFBSSxJQUFJLElBQUksQ0FBQ0EsU0FBUyxJQUFLLFVBQVVDLE9BQU8sRUFBRUMsVUFBVSxFQUFFQyxDQUFDLEVBQUVDLFNBQVMsRUFBRTtFQUNyRixTQUFTQyxLQUFLQSxDQUFDQyxLQUFLLEVBQUU7SUFBRSxPQUFPQSxLQUFLLFlBQVlILENBQUMsR0FBR0csS0FBSyxHQUFHLElBQUlILENBQUMsQ0FBQyxVQUFVSSxPQUFPLEVBQUU7TUFBRUEsT0FBTyxDQUFDRCxLQUFLLENBQUM7SUFBRSxDQUFDLENBQUM7RUFBRTtFQUMzRyxPQUFPLEtBQUtILENBQUMsS0FBS0EsQ0FBQyxHQUFHSyxPQUFPLENBQUMsRUFBRSxVQUFVRCxPQUFPLEVBQUVFLE1BQU0sRUFBRTtJQUN2RCxTQUFTQyxTQUFTQSxDQUFDSixLQUFLLEVBQUU7TUFBRSxJQUFJO1FBQUVLLElBQUksQ0FBQ1AsU0FBUyxDQUFDUSxJQUFJLENBQUNOLEtBQUssQ0FBQyxDQUFDO01BQUUsQ0FBQyxDQUFDLE9BQU9PLENBQUMsRUFBRTtRQUFFSixNQUFNLENBQUNJLENB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R0FBWkEsWUFBWSxHQUFJZSxnQkFBZ0I7RUFBQyxDQUFBLENBQUk7QUFDekUsQ0FBQztBQUVEdEIscUJBQXFCLENBQUM2RCxXQUFXLEdBQUcsbUJBQW1CO0FBRXZELE9BQU8sSUFBTUMsaUJBQWlCLGdCQUFHbkUsSUFBSSxDQUFDSyxxQkFBcUIsQ0FBQztBQUU1RCxlQUFlOEQsaUJBQWlCIiwiZmlsZSI6ImNvbXBvbmVudHMvUHJvRm9ybS9Qcm9Gb3JtRGVwZW5kZW5jeS5qcyIsInNvdXJjZXNDb250ZW50IjpbInZhciBfX2F3YWl0ZXIgPSAodGhpcyAmJiB0aGlzLl9fYXdhaXRlcikgfHwgZnVuY3Rpb24gKHRoaXNBcmcsIF9hcmd1bWVudHMsIFAsIGdlbmVyYXRvcikge1xuICAgIGZ1bmN0aW9uIGFkb3B0KHZhbHVlKSB7IHJldHVybiB2YWx1ZSBpbnN0YW5jZW9mIFAgPyB2YWx1ZSA6IG5ldyBQKGZ1bmN0aW9uIChyZXNvbHZlKSB7IHJlc29sdmUodmFsdWUpOyB9KTsgfVxuICAgIHJldHVybiBuZXcgKFAgfHwgKFAgPSBQcm9taXNlKSkoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkge1xuICAgICAgICBmdW5jdGlvbiBmdWxmaWxsZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3IubmV4dCh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XG4gICAgICAgIGZ1bmN0aW9uIHJlamVjdGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yW1widGhyb3dcIl0odmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxuICAgICAgICBmdW5jdGlvbiBzdGVwKHJlc3VsdCkgeyByZXN1bHQuZG9uZSA/IHJlc29sdmUocmVzdWx0LnZhbHVlKSA6IGFkb3B0KHJlc3VsdC52YWx1ZSkudGhlbihmdWxmaWxsZWQsIHJlamVjdGVkKTsgfVxuICAgICAgICBzdGVwKChnZW5lcmF0b3IgPSBnZW5lcmF0b3IuYXBwbHkodGhpc0FyZywgX2FyZ3VtZW50cyB8fCBbXSkpLm5leHQoKSk7XG4gICAgfSk7XG59O1xuaW1wb3J0IHsgRnJhZ21lbnQgYXMgX0ZyYWdtZW50LCBqc3ggYXMgX2pzeCB9IGZyb20gXCJyZWFjdC9qc3gtcnVudGltZVwiO1xuaW1wb3J0IFJlYWN0LCB7IG1lbW8sIHVzZU1lbW8gfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyB1c2VQcm9Gb3JtQ29udGV4dCwgdXNlRm9ybUxpc3RDb250ZXh0IH0gZnJvbSAnLi9jb250ZXh0JztcbmltcG9ydCB7IGdldE5lc3RlZFZhbHVlIH0gZnJvbSAnLi91dGlscyc7XG5jb25zdCBQcm9Gb3JtRGVwZW5kZW5jeUJhc2UgPSAoeyBuYW1lLCBpZ25vcmVGb3JtTGlzdEZpZWxkLCBjaGlsZHJlbiwgfSkgPT4ge1xuICAgIGNvbnN0IHsgdmFsdWVzLCBmb3JtSW5zdGFuY2UgfSA9IHVzZVByb0Zvcm1Db250ZXh0KCk7XG4gICAgY29uc3QgZm9ybUxpc3RDdHggPSB1c2VGb3JtTGlzdENvbnRleHQoKTtcbiAgICAvLyBSZXNvbHZlIHRoZSBhY3R1YWwgcGF0aHMgdG8gd2F0Y2gsIGNvbnNpZGVyaW5nIEZvcm1MaXN0IHNjb3BlXG4gICAgY29uc3QgcmVzb2x2ZWRQYXRocyA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgICBjb25zdCBzaG91bGRQcmVmaXggPSAhaWdub3JlRm9ybUxpc3RGaWVsZCAmJiBmb3JtTGlzdEN0eC5saXN0TmFtZSAhPT0gdW5kZWZpbmVkO1xuICAgICAgICByZXR1cm4gbmFtZS5tYXAoKGZpZWxkTmFtZSkgPT4gc2hvdWxkUHJlZml4ID8gYCR7Zm9ybUxpc3RDdHgubGlzdE5hbWV9LiR7ZmllbGROYW1lfWAgOiBmaWVsZE5hbWUpO1xuICAgIH0sIFtuYW1lLCBpZ25vcmVGb3JtTGlzdEZpZWxkLCBmb3JtTGlzdEN0eC5saXN0TmFtZV0pO1xuICAgIGNvbnN0IHdhdGNoZWRWYWx1ZXMgPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0ge307XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbmFtZS5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgY29uc3Qgb3JpZ2luYWxOYW1lID0gbmFtZVtpXTtcbiAgICAgICAgICAgIGNvbnN0IHJlc29sdmVkUGF0aCA9IHJlc29sdmVkUGF0aHNbaV07XG4gICAgICAgICAgICAvLyBVc2UgdGhlIG9yaWdpbmFsIG5hbWUgYXMga2V5IHNvIGNoaWxkcmVuIGdldCBjbGVhbiBrZXlzXG4gICAgICAgICAgICByZXN1bHRbb3JpZ2luYWxOYW1lXSA9IHJlc29sdmVkUGF0aC5pbmNsdWRlcygnLicpXG4gICAgICAgICAgICAgICAgPyBnZXROZXN0ZWRWYWx1ZSh2YWx1ZXMsIHJlc29sdmVkUGF0aClcbiAgICAgICAgICAgICAgICA6IHZhbHVlc1tyZXNvbHZlZFBhdGhdO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfSwgW25hbWUsIHJlc29sdmVkUGF0aHMsIHZhbHVlc10pO1xuICAgIC8vIEZhbGxiYWNrIGZvcm0gaW5zdGFuY2UgZm9yIHN0YW5kYWxvbmUgdXNhZ2UgKG91dHNpZGUgUHJvRm9ybSlcbiAgICBjb25zdCBmYWxsYmFja0luc3RhbmNlID0gdXNlTWVtbygoKSA9PiAoe1xuICAgICAgICBzdWJtaXQ6ICgpID0+IF9fYXdhaXRlcih2b2lkIDAsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkgeyByZXR1cm4gdW5kZWZpbmVkOyB9KSxcbiAgICAgICAgcmVzZXRGaWVsZHM6ICgpID0+IHsgfSxcbiAgICAgICAgZ2V0RmllbGRWYWx1ZTogKG4pID0+IG4uaW5jbHVkZXMoJy4nKSA/IGdldE5lc3RlZFZhbHVlKHZhbHVlcywgbikgOiB2YWx1ZXNbbl0sXG4gICAgICAgIGdldEZpZWxkc1ZhbHVlOiAoKSA9PiB2YWx1ZXMsXG4gICAgICAgIHNldEZpZWxkc1ZhbHVlOiAoKSA9PiB7IH0sXG4gICAgICAgIHNldEZpZWxkVmFsdWU6ICgpID0+IHsgfSxcbiAgICAgICAgdmFsaWRhdGVGaWVsZHM6ICgpID0+IF9fYXdhaXRlcih2b2lkIDAsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkgeyByZXR1cm4gdmFsdWVzOyB9KSxcbiAgICAgICAgZ2V0RmllbGRFcnJvcjogKCkgPT4gdW5kZWZpbmVkLFxuICAgICAgICBnZXRGaWVsZHNFcnJvcjogKCkgPT4gKHt9KSxcbiAgICAgICAgaXNGaWVsZFRvdWNoZWQ6ICgpID0+IGZhbHNlLFxuICAgICAgICBpc0ZpZWxkc1RvdWNoZWQ6ICgpID0+IGZhbHNlLFxuICAgICAgICBpc0ZpZWxkVmFsaWRhdGluZzogKCkgPT4gZmFsc2UsXG4gICAgICAgIHNldEZpZWxkRXJyb3I6ICgpID0+IHsgfSxcbiAgICAgICAgc2V0RmllbGRzRXJyb3I6ICgpID0+IHsgfSxcbiAgICAgICAgc2V0RmllbGRUb3VjaGVkOiAoKSA9PiB7IH0sXG4gICAgICAgIHNldEZpZWxkc1RvdWNoZWQ6ICgpID0+IHsgfSxcbiAgICAgICAgZGVmaW5lRmllbGQ6ICgpID0+ICgoKSA9PiBudWxsKSxcbiAgICAgICAgcmVnaXN0ZXJGaWVsZDogKCkgPT4geyB9LFxuICAgICAgICB1bnJlZ2lzdGVyRmllbGQ6ICgpID0+IHsgfSxcbiAgICAgICAgZ2V0RmllbGRzRm9ybWF0VmFsdWU6ICgpID0+IHZhbHVlcyxcbiAgICAgICAgdmFsaWRhdGVGaWVsZHNSZXR1cm5Gb3JtYXRWYWx1ZTogKCkgPT4gX19hd2FpdGVyKHZvaWQgMCwgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7IHJldHVybiAoeyBzdWNjZXNzOiBmYWxzZSB9KTsgfSksXG4gICAgICAgIHN1Ym1pdEZvcm06ICgpID0+IF9fYXdhaXRlcih2b2lkIDAsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkgeyB9KSxcbiAgICB9KSwgW3ZhbHVlc10pO1xuICAgIHJldHVybiBfanN4KF9GcmFnbWVudCwgeyBjaGlsZHJlbjogY2hpbGRyZW4od2F0Y2hlZFZhbHVlcywgZm9ybUluc3RhbmNlICE9PSBudWxsICYmIGZvcm1JbnN0YW5jZSAhPT0gdm9pZCAwID8gZm9ybUluc3RhbmNlIDogZmFsbGJhY2tJbnN0YW5jZSkgfSk7XG59O1xuUHJvRm9ybURlcGVuZGVuY3lCYXNlLmRpc3BsYXlOYW1lID0gJ1Byb0Zvcm1EZXBlbmRlbmN5JztcbmV4cG9ydCBjb25zdCBQcm9Gb3JtRGVwZW5kZW5jeSA9IG1lbW8oUHJvRm9ybURlcGVuZGVuY3lCYXNlKTtcbmV4cG9ydCBkZWZhdWx0IFByb0Zvcm1EZXBlbmRlbmN5OyIsbnVsbF0sInNvdXJjZVJvb3QiOiIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMifQ==
|
|
56
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvUHJvRm9ybS9Qcm9Gb3JtRGVwZW5kZW5jeS5qcyIsImNvbXBvbmVudHMvc3JjL2NvbXBvbmVudHMvUHJvRm9ybS9Qcm9Gb3JtRGVwZW5kZW5jeS50c3giXSwibmFtZXMiOlsiRnJhZ21lbnQiLCJfRnJhZ21lbnQiLCJqc3giLCJfanN4IiwiUmVhY3QiLCJtZW1vIiwidXNlTWVtbyIsInVzZVByb0Zvcm1TdGFibGUiLCJ1c2VQcm9Gb3JtU3RvcmUiLCJ1c2VGb3JtTGlzdENvbnRleHQiLCJ1c2VTdG9yZVNlbGVjdG9yIiwic2hhbGxvd0VxdWFsQXJyYXlzIiwiZ2V0TmVzdGVkVmFsdWUiLCJQcm9Gb3JtRGVwZW5kZW5jeUJhc2UiLCJfcmVmIiwibmFtZSIsImlnbm9yZUZvcm1MaXN0RmllbGQiLCJjaGlsZHJlbiIsIl91c2VQcm9Gb3JtU3RhYmxlIiwiZm9ybUluc3RhbmNlIiwic3RvcmUiLCJmb3JtTGlzdEN0eCIsInJlc29sdmVkUGF0aHMiLCJzaG91bGRQcmVmaXgiLCJsaXN0TmFtZSIsInVuZGVmaW5lZCIsIm1hcCIsImZpZWxkTmFtZSIsImNvbmNhdCIsIndhdGNoZWRBcnJheSIsInN0YXRlIiwicGF0aCIsImluY2x1ZGVzIiwidmFsdWVzIiwid2F0Y2hlZFZhbHVlcyIsImZvcm1hdHRlZCIsImdldEZpZWxkRm9ybWF0VmFsdWVPYmplY3QiLCJyZXN1bHQiLCJpIiwibGVuZ3RoIiwidmFsdWUiLCJmb3JtYXR0ZWRWYWx1ZSIsImRpc3BsYXlOYW1lIiwiUHJvRm9ybURlcGVuZGVuY3kiXSwibWFwcGluZ3MiOiJBQUFBLFNBQVNBLFFBQVEsSUFBSUMsU0FBUyxFQUFFQyxHQUFHLElBQUlDLElBQUksUUFBUSxtQkFBbUI7QUNBdEUsT0FBT0MsS0FBSyxJQUFJQyxJQUFJLEVBQUVDLE9BQU8sUUFBUSxPQUFPO0FBRTVDLFNBQVNDLGdCQUFnQixFQUFFQyxlQUFlLEVBQUVDLGtCQUFrQixRQUFRLFdBQVc7QUFDakYsU0FBU0MsZ0JBQWdC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QixDQUFDNkIsV0FBVyxHQUFHLG1CQUFtQjtBQWN2RCxPQUFPLElBQU1DLGlCQUFpQixnQkFBR3RDLElBQUksQ0FDbkNRLHFCQUFxQixDQUNtQjtBQUUxQyxlQUFlOEIsaUJBQWlCIiwiZmlsZSI6ImNvbXBvbmVudHMvUHJvRm9ybS9Qcm9Gb3JtRGVwZW5kZW5jeS5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZyYWdtZW50IGFzIF9GcmFnbWVudCwganN4IGFzIF9qc3ggfSBmcm9tIFwicmVhY3QvanN4LXJ1bnRpbWVcIjtcbmltcG9ydCBSZWFjdCwgeyBtZW1vLCB1c2VNZW1vIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgdXNlUHJvRm9ybVN0YWJsZSwgdXNlUHJvRm9ybVN0b3JlLCB1c2VGb3JtTGlzdENvbnRleHQgfSBmcm9tICcuL2NvbnRleHQnO1xuaW1wb3J0IHsgdXNlU3RvcmVTZWxlY3Rvciwgc2hhbGxvd0VxdWFsQXJyYXlzIH0gZnJvbSAnLi9jb3JlL2Zvcm1TdG9yZSc7XG5pbXBvcnQgeyBnZXROZXN0ZWRWYWx1ZSB9IGZyb20gJy4vdXRpbHMnO1xuY29uc3QgUHJvRm9ybURlcGVuZGVuY3lCYXNlID0gKHsgbmFtZSwgaWdub3JlRm9ybUxpc3RGaWVsZCwgY2hpbGRyZW4sIH0pID0+IHtcbiAgICBjb25zdCB7IGZvcm1JbnN0YW5jZSB9ID0gdXNlUHJvRm9ybVN0YWJsZSgpO1xuICAgIGNvbnN0IHN0b3JlID0gdXNlUHJvRm9ybVN0b3JlKCk7XG4gICAgY29uc3QgZm9ybUxpc3RDdHggPSB1c2VGb3JtTGlzdENvbnRleHQoKTtcbiAgICAvLyBSZXNvbHZlIHRoZSBhY3R1YWwgcGF0aHMgdG8gd2F0Y2gsIGNvbnNpZGVyaW5nIEZvcm1MaXN0IHNjb3BlXG4gICAgY29uc3QgcmVzb2x2ZWRQYXRocyA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgICBjb25zdCBzaG91bGRQcmVmaXggPSAhaWdub3JlRm9ybUxpc3RGaWVsZCAmJiBmb3JtTGlzdEN0eC5saXN0TmFtZSAhPT0gdW5kZWZpbmVkO1xuICAgICAgICByZXR1cm4gbmFtZS5tYXAoKGZpZWxkTmFtZSkgPT4gc2hvdWxkUHJlZml4ID8gYCR7Zm9ybUxpc3RDdHgubGlzdE5hbWV9LiR7ZmllbGROYW1lfWAgOiBmaWVsZE5hbWUpO1xuICAgIH0sIFtuYW1lLCBpZ25vcmVGb3JtTGlzdEZpZWxkLCBmb3JtTGlzdEN0eC5saXN0TmFtZV0pO1xuICAgIC8vIFN1YnNjcmliZSBPTkxZIHRvIHRoZSB3YXRjaGVkIHBhdGhzOiBhIGNvbW1pdCB0aGF0IGxlYXZlcyBldmVyeSB3YXRjaGVkXG4gICAgLy8gdmFsdWUgT2JqZWN0LmlzLWVxdWFsIHNob3J0LWNpcmN1aXRzLCBzbyBjaGlsZHJlbiBhcmUgTk9UIHJlLWludm9rZWQgd2hlblxuICAgIC8vIHVucmVsYXRlZCBmaWVsZHMgY2hhbmdlLiBSZWFjdGl2aXR5IHRyYWNrcyB0aGUgUkFXIHZhbHVlczsgdGhlIHBheWxvYWRcbiAgICAvLyBiZWxvdyBpcyBkZXJpdmVkIGZyb20gdGhlIEZPUk1BVFRFRCB2YWx1ZXMuXG4gICAgY29uc3Qgd2F0Y2hlZEFycmF5ID0gdXNlU3RvcmVTZWxlY3RvcihzdG9yZSwgKHN0YXRlKSA9PiByZXNvbHZlZFBhdGhzLm1hcCgocGF0aCkgPT4gcGF0aC5pbmNsdWRlcygnLicpID8gZ2V0TmVzdGVkVmFsdWUoc3RhdGUudmFsdWVzLCBwYXRoKSA6IHN0YXRlLnZhbHVlc1twYXRoXSksIHNoYWxsb3dFcXVhbEFycmF5cyk7XG4gICAgY29uc3Qgd2F0Y2hlZFZhbHVlcyA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgICAvLyBDaGlsZHJlbiByZWNlaXZlIEZPUk1BVFRFRCB2YWx1ZXMgKGRhdGVGb3JtYXR0ZXIgKyB0cmFuc2Zvcm0gYXBwbGllZCksXG4gICAgICAgIC8vIG1hdGNoaW5nIHdoYXQgb25GaW5pc2ggd291bGQgc3VibWl0IGZvciB0aG9zZSBmaWVsZHMuIEEgdHJhbnNmb3JtIHRoYXRcbiAgICAgICAgLy8gUkVOQU1FUyBpdHMga2V5IGRlbGV0ZXMgdGhlIG9yaWdpbmFsIHBhdGggZnJvbSB0aGUgZm9ybWF0dGVkIG9iamVjdCDigJRcbiAgICAgICAgLy8gZmFsbCBiYWNrIHRvIHRoZSByYXcgdmFsdWUgc28gdGhlIHdhdGNoZXIgc3RpbGwgc2VlcyB0aGUgZmllbGQuXG4gICAgICAgIGNvbnN0IGZvcm1hdHRlZCA9IGZvcm1JbnN0YW5jZS5nZXRGaWVsZEZvcm1hdFZhbHVlT2JqZWN0KCk7XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IHt9O1xuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IG5hbWUubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIC8vIFVzZSB0aGUgb3JpZ2luYWwgbmFtZSBhcyBrZXkgc28gY2hpbGRyZW4gZ2V0IGNsZWFuIGtleXNcbiAgICAgICAgICAgIGNvbnN0IHBhdGggPSByZXNvbHZlZFBhdGhzW2ldO1xuICAgICAgICAgICAgbGV0IHZhbHVlID0gd2F0Y2hlZEFycmF5W2ldO1xuICAgICAgICAgICAgY29uc3QgZm9ybWF0dGVkVmFsdWUgPSBwYXRoLmluY2x1ZGVzKCcuJylcbiAgICAgICAgICAgICAgICA/IGdldE5lc3RlZFZhbHVlKGZvcm1hdHRlZCwgcGF0aClcbiAgICAgICAgICAgICAgICA6IChwYXRoIGluIGZvcm1hdHRlZCA/IGZvcm1hdHRlZFtwYXRoXSA6IHVuZGVmaW5lZCk7XG4gICAgICAgICAgICBpZiAoZm9ybWF0dGVkVmFsdWUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgIHZhbHVlID0gZm9ybWF0dGVkVmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXN1bHRbbmFtZVtpXV0gPSB2YWx1ZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH0sIFtuYW1lLCByZXNvbHZlZFBhdGhzLCB3YXRjaGVkQXJyYXksIGZvcm1JbnN0YW5jZV0pO1xuICAgIHJldHVybiBfanN4KF9GcmFnbWVudCwgeyBjaGlsZHJlbjogY2hpbGRyZW4od2F0Y2hlZFZhbHVlcywgZm9ybUluc3RhbmNlKSB9KTtcbn07XG5Qcm9Gb3JtRGVwZW5kZW5jeUJhc2UuZGlzcGxheU5hbWUgPSAnUHJvRm9ybURlcGVuZGVuY3knO1xuZXhwb3J0IGNvbnN0IFByb0Zvcm1EZXBlbmRlbmN5ID0gbWVtbyhQcm9Gb3JtRGVwZW5kZW5jeUJhc2UpO1xuZXhwb3J0IGRlZmF1bHQgUHJvRm9ybURlcGVuZGVuY3k7IixudWxsXSwic291cmNlUm9vdCI6Ii4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYyJ9
|