@1money/component-ui 0.0.73 → 0.0.75
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/Dialog/Dialog.js +7 -39
- package/es/components/Dialog/constants.d.ts +0 -3
- package/es/components/Dialog/constants.js +1 -4
- package/es/components/Dialog/style/Dialog.css +0 -21
- 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 -7
- 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/Dialog/Dialog.js +6 -38
- package/lib/components/Dialog/constants.d.ts +0 -3
- package/lib/components/Dialog/constants.js +1 -4
- package/lib/components/Dialog/style/Dialog.css +0 -21
- 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 -7
- 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,4 +1,5 @@
|
|
|
1
1
|
import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
|
|
2
|
+
import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
|
|
2
3
|
import _typeof from "@babel/runtime/helpers/esm/typeof";
|
|
3
4
|
import _regeneratorRuntime from "@babel/runtime/regenerator";
|
|
4
5
|
var __awaiter = this && this.__awaiter || function (thisArg, _arguments, P, generator) {
|
|
@@ -31,10 +32,11 @@ var __awaiter = this && this.__awaiter || function (thisArg, _arguments, P, gene
|
|
|
31
32
|
import React, { useEffect, useRef } from 'react';
|
|
32
33
|
import useEventCallback from '@1money/hooks/useEventCallback';
|
|
33
34
|
import useDebouncedCallback from '@1money/hooks/useDebouncedCallback';
|
|
34
|
-
import {
|
|
35
|
+
import { useProFormStable, useProFormStore } from '../context';
|
|
36
|
+
import { useStoreSelector, shallowEqualArrays } from './formStore';
|
|
35
37
|
import { getNestedValue } from './pathUtils';
|
|
36
38
|
import { filterRulesByTrigger } from './runRules';
|
|
37
|
-
import { FORM_COMPONENT_NAMES, TEXT_LIKE_COMPONENT_NAMES } from './constants';
|
|
39
|
+
import { FORM_COMPONENT_NAMES, SIZE_AWARE_COMPONENT_NAMES, TEXT_LIKE_COMPONENT_NAMES } from './constants';
|
|
38
40
|
/**
|
|
39
41
|
* Normalise a change-handler argument: unwrap `e.target[valuePropName]` /
|
|
40
42
|
* `e[valuePropName]` (e.g. Checkbox emits `{ checked }`), else `e.target.value`,
|
|
@@ -64,29 +66,34 @@ export function useFormItem(options) {
|
|
|
64
66
|
_options$valuePropNam = options.valuePropName,
|
|
65
67
|
valuePropName = _options$valuePropNam === void 0 ? 'value' : _options$valuePropNam,
|
|
66
68
|
validateDebounce = options.validateDebounce;
|
|
67
|
-
var
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
requiredMark = ctx.requiredMark,
|
|
80
|
-
validateTrigger = ctx.validateTrigger;
|
|
69
|
+
var _useProFormStable = useProFormStable(),
|
|
70
|
+
setFieldValue = _useProFormStable.setFieldValue,
|
|
71
|
+
validateField = _useProFormStable.validateField,
|
|
72
|
+
validateFieldAsync = _useProFormStable.validateFieldAsync,
|
|
73
|
+
registerField = _useProFormStable.registerField,
|
|
74
|
+
unregisterField = _useProFormStable.unregisterField,
|
|
75
|
+
size = _useProFormStable.size,
|
|
76
|
+
labelAlign = _useProFormStable.labelAlign,
|
|
77
|
+
requiredMark = _useProFormStable.requiredMark,
|
|
78
|
+
validateTrigger = _useProFormStable.validateTrigger,
|
|
79
|
+
formDisabled = _useProFormStable.disabled;
|
|
80
|
+
var store = useProFormStore();
|
|
81
81
|
var isRequired = Boolean(required || rules.some(function (rule) {
|
|
82
82
|
return rule.required;
|
|
83
83
|
}));
|
|
84
|
-
|
|
84
|
+
// Per-field store subscription: this item re-renders ONLY when its own
|
|
85
|
+
// value/error/warning/validating slice changes — typing in a sibling field
|
|
86
|
+
// produces an equal tuple and the selector short-circuits.
|
|
85
87
|
// Errors/warnings are stored FLAT, keyed by the full (possibly dotted) field
|
|
86
88
|
// name — never resolve them as nested paths or dotted names would miss.
|
|
87
|
-
var
|
|
88
|
-
|
|
89
|
-
|
|
89
|
+
var _useStoreSelector = useStoreSelector(store, function (state) {
|
|
90
|
+
return [name ? name.includes('.') ? getNestedValue(state.values, name) : state.values[name] : undefined, name ? state.errors[name] : undefined, name ? state.warnings[name] : undefined, name ? state.validating[name] || false : false];
|
|
91
|
+
}, shallowEqualArrays),
|
|
92
|
+
_useStoreSelector2 = _slicedToArray(_useStoreSelector, 4),
|
|
93
|
+
fieldValue = _useStoreSelector2[0],
|
|
94
|
+
fieldError = _useStoreSelector2[1],
|
|
95
|
+
fieldWarning = _useStoreSelector2[2],
|
|
96
|
+
fieldValidating = _useStoreSelector2[3];
|
|
90
97
|
var finalStatus = validateStatus || (fieldError ? 'error' : fieldWarning ? 'warning' : undefined);
|
|
91
98
|
// Run only the rules applicable to the given interactive trigger; rules
|
|
92
99
|
// without an explicit validateTrigger follow the form-level setting.
|
|
@@ -131,6 +138,14 @@ export function useFormItem(options) {
|
|
|
131
138
|
var handleChange = useEventCallback(function (value) {
|
|
132
139
|
if (name) {
|
|
133
140
|
setFieldValue(name, value);
|
|
141
|
+
// touched is set by the user change trigger —
|
|
142
|
+
// programmatic setFieldsValue does not mark fields touched.
|
|
143
|
+
var touched = store.getState().touched;
|
|
144
|
+
if (!touched[name]) {
|
|
145
|
+
store.setState({
|
|
146
|
+
touched: Object.assign(Object.assign({}, touched), _defineProperty({}, name, true))
|
|
147
|
+
});
|
|
148
|
+
}
|
|
134
149
|
if (validateDebounce && validateDebounce > 0) {
|
|
135
150
|
debouncedValidate(value);
|
|
136
151
|
} else {
|
|
@@ -139,7 +154,11 @@ export function useFormItem(options) {
|
|
|
139
154
|
}
|
|
140
155
|
});
|
|
141
156
|
var handleBlur = useEventCallback(function () {
|
|
142
|
-
|
|
157
|
+
// Read the LIVE value from the store — a change committed in the same
|
|
158
|
+
// tick (change → immediate blur) must be validated, not the render-time
|
|
159
|
+
// snapshot.
|
|
160
|
+
var currentValue = name ? name.includes('.') ? getNestedValue(store.getState().values, name) : store.getState().values[name] : undefined;
|
|
161
|
+
runValidateAsync(currentValue, 'onBlur');
|
|
143
162
|
});
|
|
144
163
|
// Latest child-provided callbacks, captured at injectField time. The STABLE
|
|
145
164
|
// injected handlers below delegate through this ref instead of being
|
|
@@ -196,8 +215,12 @@ export function useFormItem(options) {
|
|
|
196
215
|
onChange: typeof childProps.onChange === 'function' ? childProps.onChange : undefined,
|
|
197
216
|
onBlur: typeof childProps.onBlur === 'function' ? childProps.onBlur : undefined
|
|
198
217
|
};
|
|
199
|
-
var injectedProps = Object.assign(_defineProperty(_defineProperty(_defineProperty({}, valuePropName, safeValue), "onChange", injectedOnChange), "onBlur", injectedOnBlur), finalStatus === 'error' && {
|
|
218
|
+
var injectedProps = Object.assign(Object.assign(Object.assign(_defineProperty(_defineProperty(_defineProperty({}, valuePropName, safeValue), "onChange", injectedOnChange), "onBlur", injectedOnBlur), finalStatus === 'error' && {
|
|
200
219
|
status: 'error'
|
|
220
|
+
}), formDisabled && childProps.disabled === undefined && {
|
|
221
|
+
disabled: true
|
|
222
|
+
}), SIZE_AWARE_COMPONENT_NAMES.includes(displayName || '') && childProps.size === undefined && {
|
|
223
|
+
size: size
|
|
201
224
|
});
|
|
202
225
|
return /*#__PURE__*/React.cloneElement(child, injectedProps);
|
|
203
226
|
};
|
|
@@ -214,4 +237,4 @@ export function useFormItem(options) {
|
|
|
214
237
|
injectField: injectField
|
|
215
238
|
};
|
|
216
239
|
}
|
|
217
|
-
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvUHJvRm9ybS9jb3JlL3VzZUZvcm1JdGVtLmpzIiwiY29tcG9uZW50cy9Qcm9Gb3JtL3NyYy9jb21wb25lbnRzL1Byb0Zvcm0vY29yZS91c2VGb3JtSXRlbS50cyJdLCJuYW1lcyI6WyJfX2F3YWl0ZXIiLCJ0aGlzQXJnIiwiX2FyZ3VtZW50cyIsIlAiLCJnZW5lcmF0b3IiLCJhZG9wdCIsInZhbHVlIiwicmVzb2x2ZSIsIlByb21pc2UiLCJyZWplY3QiLCJmdWxmaWxsZWQiLCJzdGVwIiwibmV4dCIsImUiLCJyZWplY3RlZCIsInJlc3VsdCIsImRvbmUiLCJ0aGVuIiwiYXBwbHkiLCJSZWFjdCIsInVzZUVmZmVjdCIsInVzZVJlZiIsInVzZUV2ZW50Q2FsbGJhY2siLCJ1c2VEZWJvdW5jZWRDYWxsYmFjayIsInVzZVByb0Zvcm1Db250ZXh0IiwiZ2V0TmVzdGVkVmFsdWUiLCJmaWx0ZXJSdWxlc0J5VHJpZ2dlciIsIkZPUk1fQ09NUE9ORU5UX05BTUVTIiwiVEVYVF9MSUtFX0NPTVBPTkVOVF9OQU1FUyIsImV4dHJhY3RFdmVudFZhbHVlIiwidmFsdWVQcm9wTmFtZSIsImFyZ3VtZW50cyIsImxlbmd0aCIsInVuZGVmaW5lZCIsIl90eXBlb2YiLCJldmVudCIsInRhcmdldCIsInVzZUZvcm1JdGVtIiwib3B0aW9ucyIsIl90aGlzIiwibmFtZSIsIl9vcHRpb25zJHJ1bGVzIiwicnVsZXMiLCJyZXF1aXJlZCIsInZhbGlkYXRlU3RhdHVzIiwiX29wdGlvbnMkdmFsdWVQcm9wTmFtIiwidmFsaWRhdGVEZWJvdW5jZSIsImN0eCIsInZhbHVlcyIsImVycm9ycyIsIndhcm5pbmdzIiwidmFsaWRhdGluZyIsInNldEZpZWxkVmFsdWUiLCJ2YWxpZGF0ZUZpZWxkIiwidmFsaWRhdGVGaWVsZEFzeW5jIiwicmVnaXN0ZXJGaWVsZCIsInVucmVnaXN0ZXJGaWVsZCIsInNpemUiLCJsYWJlbEFsaWduIiwicmVxdWlyZWRNYXJrIiwidmFsaWRhdGVUcmlnZ2VyIiwiaXNSZXF1aXJlZCIsIkJvb2xlYW4iLCJzb21lIiwicnVsZSIsImZpZWxkVmFsdWUiLCJpbmNsdWRlcyIsImZpZWxkRXJyb3IiLCJmaWVsZFdhcm5pbmciLCJmaWVsZFZhbGlkYXRpbmciLCJmaW5hbFN0YXR1cyIsInJ1blZhbGlkYXRlIiwidHJpZ2dlciIsImFwcGxpY2FibGUiLCJydW5WYWxpZGF0ZUFzeW5jIiwiX3JlZ2VuZXJhdG9yUnVudGltZSIsIm1hcmsiLCJfY2FsbGVlIiwid3JhcCIsIl9jb250ZXh0IiwicHJldiIsImFicnVwdCIsInN0b3AiLCJfdXNlRGVib3VuY2VkQ2FsbGJhY2siLCJkZWJvdW5jZWRWYWxpZGF0ZSIsInJ1biIsImhhbmRsZUNoYW5nZSIsImhhbmRsZUJsdXIiLCJjaGlsZENhbGxiYWNrc1JlZiIsImluamVjdGVkT25DaGFuZ2UiLCJfYjIiLCJfYSIsIl9iIiwiX2xlbiIsImFyZ3MiLCJBcnJheSIsIl9rZXkiLCJjdXJyZW50Iiwib25DaGFuZ2UiLCJjYWxsIiwiY29uY2F0IiwiaW5qZWN0ZWRPbkJsdXIiLCJfYjMiLCJfbGVuMiIsIl9rZXkyIiwib25CbHVyIiwiaW5qZWN0RmllbGQiLCJjaGlsZCIsImlzVmFsaWRFbGVtZW50IiwiY2hpbGRQcm9wcyIsInByb3BzIiwiZGlzcGxheU5hbWUiLCJ0eXBlIiwiaXNGb3JtQ29tcG9uZW50IiwicGxhY2Vob2xkZXIiLCJzYWZlVmFsdWUiLCJpbmplY3RlZFByb3BzIiwiT2JqZWN0IiwiYXNzaWduIiwiX2RlZmluZVByb3BlcnR5Iiwic3RhdHVzIiwiY2xvbmVFbGVtZW50Il0sIm1hcHBpbmdzIjoiOzs7QUFBQSxJQUFJQSxTQUFTLEdBQUksSUFBSSxJQUFJLElBQUksQ0FBQ0EsU0FBUyxJQUFLLFVBQVVDLE9BQU8sRUFBRUMsVUFBVSxFQUFFQyxDQUFDLEVBQUVDLFNBQVMsRUFBRTtFQUNyRixTQUFTQyxLQUFLQSxDQUFDQyxLQUFLLEVBQUU7SUFBRSxPQUFPQSxLQUFLLFlBQVlILENBQUMsR0FBR0csS0FB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QixpQkFBaUIsQ0FBQ1MsT0FBTyxHQUFHO01BQzFCQyxRQUFRLEVBQ04sT0FBT1csVUFBVSxDQUFDWCxRQUFRLEtBQUssVUFBVSxHQUNwQ1csVUFBVSxDQUFDWCxRQUFzQyxHQUNsRGpFLFNBQVM7TUFDZndFLE1BQU0sRUFDSixPQUFPSSxVQUFVLENBQUNKLE1BQU0sS0FBSyxVQUFVLEdBQ2xDSSxVQUFVLENBQUNKLE1BQW9DLEdBQ2hEeEU7SUR4REosQ0N5REg7SUFFRCxJQUFNbUYsYUFBYSxHQUFBQyxNQUFBLENBQUFDLE1BQUEsQ0FBQUMsZUFBQSxDQUFBQSxlQUFBLENBQUFBLGVBQUEsS0FDaEJ6RixhQUFhLEVBQUdxRixTQUFTLGVBQ2hCMUIsZ0JBQWdCLGFBQ2xCWSxjQUFjLEdBQ2xCL0IsV0FBVyxLQUFLLE9BQU8sSUFBSTtNQUFFa0QsTUFBTSxFQUFFO0lBQU8sQ0FBRyxDQUNwRDtJQUVELG9CQUFPckcsS0FBSyxDQUFDc0csWUFBWSxDQUFDZCxLQUFLLEVBQUVTLGFBQWEsQ0FBQztFQUNqRCxDQUFDO0VBRUQsT0FBTztJQUNMbkQsVUFBVSxFQUFWQSxVQUFVO0lBQ1ZFLFVBQVUsRUFBVkEsVUFBVTtJQUNWQyxZQUFZLEVBQVpBLFlBQVk7SUFDWkMsZUFBZSxFQUFmQSxlQUFlO0lBQ2Z6QixjQUFjLEVBQUUwQixXQUFXO0lBQzNCVCxVQUFVLEVBQVZBLFVBQVU7SUFDVkosSUFBSSxFQUFKQSxJQUFJO0lBQ0pDLFVBQVUsRUFBVkEsVUFBVTtJQUNWQyxZQUFZLEVBQVpBLFlBQVk7SUFDWitDLFdBQVcsRUFBWEE7RURoRUEsQ0NpRUQ7QUFDSCIsImZpbGUiOiJjb21wb25lbnRzL1Byb0Zvcm0vY29yZS91c2VGb3JtSXRlbS5qcyIsInNvdXJjZXNDb250ZW50IjpbInZhciBfX2F3YWl0ZXIgPSAodGhpcyAmJiB0aGlzLl9fYXdhaXRlcikgfHwgZnVuY3Rpb24gKHRoaXNBcmcsIF9hcmd1bWVudHMsIFAsIGdlbmVyYXRvcikge1xuICAgIGZ1bmN0aW9uIGFkb3B0KHZhbHVlKSB7IHJldHVybiB2YWx1ZSBpbnN0YW5jZW9mIFAgPyB2YWx1ZSA6IG5ldyBQKGZ1bmN0aW9uIChyZXNvbHZlKSB7IHJlc29sdmUodmFsdWUpOyB9KTsgfVxuICAgIHJldHVybiBuZXcgKFAgfHwgKFAgPSBQcm9taXNlKSkoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkge1xuICAgICAgICBmdW5jdGlvbiBmdWxmaWxsZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3IubmV4dCh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XG4gICAgICAgIGZ1bmN0aW9uIHJlamVjdGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yW1widGhyb3dcIl0odmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxuICAgICAgICBmdW5jdGlvbiBzdGVwKHJlc3VsdCkgeyByZXN1bHQuZG9uZSA/IHJlc29sdmUocmVzdWx0LnZhbHVlKSA6IGFkb3B0KHJlc3VsdC52YWx1ZSkudGhlbihmdWxmaWxsZWQsIHJlamVjdGVkKTsgfVxuICAgICAgICBzdGVwKChnZW5lcmF0b3IgPSBnZW5lcmF0b3IuYXBwbHkodGhpc0FyZywgX2FyZ3VtZW50cyB8fCBbXSkpLm5leHQoKSk7XG4gICAgfSk7XG59O1xuaW1wb3J0IFJlYWN0LCB7IHVzZUVmZmVjdCwgdXNlUmVmIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHVzZUV2ZW50Q2FsbGJhY2sgZnJvbSAnQDFtb25leS9ob29rcy91c2VFdmVudENhbGxiYWNrJztcbmltcG9ydCB1c2VEZWJvdW5jZWRDYWxsYmFjayBmcm9tICdAMW1vbmV5L2hvb2tzL3VzZURlYm91bmNlZENhbGxiYWNrJztcbmltcG9ydCB7IHVzZVByb0Zvcm1Db250ZXh0IH0gZnJvbSAnLi4vY29udGV4dCc7XG5pbXBvcnQgeyBnZXROZXN0ZWRWYWx1ZSB9IGZyb20gJy4vcGF0aFV0aWxzJztcbmltcG9ydCB7IGZpbHRlclJ1bGVzQnlUcmlnZ2VyIH0gZnJvbSAnLi9ydW5SdWxlcyc7XG5pbXBvcnQgeyBGT1JNX0NPTVBPTkVOVF9OQU1FUywgVEVYVF9MSUtFX0NPTVBPTkVOVF9OQU1FUyB9IGZyb20gJy4vY29uc3RhbnRzJztcbi8qKlxuICogTm9ybWFsaXNlIGEgY2hhbmdlLWhhbmRsZXIgYXJndW1lbnQ6IHVud3JhcCBgZS50YXJnZXRbdmFsdWVQcm9wTmFtZV1gIC9cbiAqIGBlW3ZhbHVlUHJvcE5hbWVdYCAoZS5nLiBDaGVja2JveCBlbWl0cyBgeyBjaGVja2VkIH1gKSwgZWxzZSBgZS50YXJnZXQudmFsdWVgLFxuICogZWxzZSBwYXNzIHRoZSB2YWx1ZSB0aHJvdWdoIChlLmcuIFN3aXRjaCBlbWl0cyB0aGUgYm9vbGVhbiBkaXJlY3RseSkuXG4gKi9cbmZ1bmN0aW9uIGV4dHJhY3RFdmVudFZhbHVlKGUsIHZhbHVlUHJvcE5hbWUgPSAndmFsdWUnKSB7XG4gICAgaWYgKGUgPT09IG51bGwgfHwgdHlwZW9mIGUgIT09ICdvYmplY3QnKVxuICAgICAgICByZXR1cm4gZTtcbiAgICBjb25zdCBldmVudCA9IGU7XG4gICAgaWYgKHZhbHVlUHJvcE5hbWUgIT09ICd2YWx1ZScgJiYgdmFsdWVQcm9wTmFtZSBpbiBldmVudCkge1xuICAgICAgICByZXR1cm4gZXZlbnRbdmFsdWVQcm9wTmFtZV07XG4gICAgfVxuICAgIGlmICgndGFyZ2V0JyBpbiBldmVudCAmJiBldmVudC50YXJnZXQgJiYgdHlwZW9mIGV2ZW50LnRhcmdldCA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgY29uc3QgdGFyZ2V0ID0gZXZlbnQudGFyZ2V0O1xuICAgICAgICBpZiAodmFsdWVQcm9wTmFtZSBpbiB0YXJnZXQpXG4gICAgICAgICAgICByZXR1cm4gdGFyZ2V0W3ZhbHVlUHJvcE5hbWVdO1xuICAgICAgICBpZiAoJ3ZhbHVlJyBpbiB0YXJnZXQpXG4gICAgICAgICAgICByZXR1cm4gdGFyZ2V0LnZhbHVlO1xuICAgIH1cbiAgICByZXR1cm4gZTtcbn1cbmV4cG9ydCBmdW5jdGlvbiB1c2VGb3JtSXRlbShvcHRpb25zKSB7XG4gICAgY29uc3QgeyBuYW1lLCBydWxlcyA9IFtdLCByZXF1aXJlZCwgdmFsaWRhdGVTdGF0dXMsIHZhbHVlUHJvcE5hbWUgPSAndmFsdWUnLCB2YWxpZGF0ZURlYm91bmNlLCB9ID0gb3B0aW9ucztcbiAgICBjb25zdCBjdHggPSB1c2VQcm9Gb3JtQ29udGV4dCgpO1xuICAgIGNvbnN0IHsgdmFsdWVzLCBlcnJvcnMsIHdhcm5pbmdzLCB2YWxpZGF0aW5nLCBzZXRGaWVsZFZhbHVlLCB2YWxpZGF0ZUZpZWxkLCB2YWxpZGF0ZUZpZWxkQXN5bmMsIHJlZ2lzdGVyRmllbGQsIHVucmVnaXN0ZXJGaWVsZCwgc2l6ZSwgbGFiZWxBbGlnbiwgcmVxdWlyZWRNYXJrLCB2YWxpZGF0ZVRyaWdnZXIsIH0gPSBjdHg7XG4gICAgY29uc3QgaXNSZXF1aXJlZCA9IEJvb2xlYW4ocmVxdWlyZWQgfHwgcnVsZXMuc29tZSgocnVsZSkgPT4gcnVsZS5yZXF1aXJlZCkpO1xuICAgIGNvbnN0IGZpZWxkVmFsdWUgPSBuYW1lXG4gICAgICAgID8gKG5hbWUuaW5jbHVkZXMoJy4nKSA/IGdldE5lc3RlZFZhbHVlKHZhbHVlcywgbmFtZSkgOiB2YWx1ZXNbbmFtZV0pXG4gICAgICAgIDogdW5kZWZpbmVkO1xuICAgIC8vIEVycm9ycy93YXJuaW5ncyBhcmUgc3RvcmVkIEZMQVQsIGtleWVkIGJ5IHRoZSBmdWxsIChwb3NzaWJseSBkb3R0ZWQpIGZpZWxkXG4gICAgLy8gbmFtZSDigJQgbmV2ZXIgcmVzb2x2ZSB0aGVtIGFzIG5lc3RlZCBwYXRocyBvciBkb3R0ZWQgbmFtZXMgd291bGQgbWlzcy5cbiAgICBjb25zdCBmaWVsZEVycm9yID0gbmFtZSA/IGVycm9yc1tuYW1lXSA6IHVuZGVmaW5lZDtcbiAgICBjb25zdCBmaWVsZFdhcm5pbmcgPSBuYW1lID8gd2FybmluZ3NbbmFtZV0gOiB1bmRlZmluZWQ7XG4gICAgY29uc3QgZmllbGRWYWxpZGF0aW5nID0gbmFtZSA/ICh2YWxpZGF0aW5nW25hbWVdIHx8IGZhbHNlKSA6IGZhbHNlO1xuICAgIGNvbnN0IGZpbmFsU3RhdHVzID0gdmFsaWRhdGVTdGF0dXMgfHwgKGZpZWxkRXJyb3IgPyAnZXJyb3InIDogZmllbGRXYXJuaW5nID8gJ3dhcm5pbmcnIDogdW5kZWZpbmVkKTtcbiAgICAvLyBSdW4gb25seSB0aGUgcnVsZXMgYXBwbGljYWJsZSB0byB0aGUgZ2l2ZW4gaW50ZXJhY3RpdmUgdHJpZ2dlcjsgcnVsZXNcbiAgICAvLyB3aXRob3V0IGFuIGV4cGxpY2l0IHZhbGlkYXRlVHJpZ2dlciBmb2xsb3cgdGhlIGZvcm0tbGV2ZWwgc2V0dGluZy5cbiAgICBjb25zdCBydW5WYWxpZGF0ZSA9IHVzZUV2ZW50Q2FsbGJhY2soKHZhbHVlLCB0cmlnZ2VyKSA9PiB7XG4gICAgICAgIGlmICghbmFtZSB8fCBydWxlcy5sZW5ndGggPT09IDApXG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgY29uc3QgYXBwbGljYWJsZSA9IGZpbHRlclJ1bGVzQnlUcmlnZ2VyKHJ1bGVzLCB0cmlnZ2VyLCB2YWxpZGF0ZVRyaWdnZXIpO1xuICAgICAgICBpZiAoYXBwbGljYWJsZS5sZW5ndGggPT09IDApXG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgcmV0dXJuIHZhbGlkYXRlRmllbGQobmFtZSwgYXBwbGljYWJsZSwgdmFsdWUpO1xuICAgIH0pO1xuICAgIGNvbnN0IHJ1blZhbGlkYXRlQXN5bmMgPSB1c2VFdmVudENhbGxiYWNrKCh2YWx1ZSwgdHJpZ2dlcikgPT4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICBpZiAoIW5hbWUgfHwgcnVsZXMubGVuZ3RoID09PSAwKVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICBjb25zdCBhcHBsaWNhYmxlID0gZmlsdGVyUnVsZXNCeVRyaWdnZXIocnVsZXMsIHRyaWdnZXIsIHZhbGlkYXRlVHJpZ2dlcik7XG4gICAgICAgIGlmIChhcHBsaWNhYmxlLmxlbmd0aCA9PT0gMClcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgeWllbGQgdmFsaWRhdGVGaWVsZEFzeW5jKG5hbWUsIHZhbHVlLCBhcHBsaWNhYmxlKTtcbiAgICB9KSk7XG4gICAgY29uc3QgeyBydW46IGRlYm91bmNlZFZhbGlkYXRlIH0gPSB1c2VEZWJvdW5jZWRDYWxsYmFjaygodmFsdWUpID0+IHtcbiAgICAgICAgcnVuVmFsaWRhdGUodmFsdWUsICdvbkNoYW5nZScpO1xuICAgIH0sIHZhbGlkYXRlRGVib3VuY2UpO1xuICAgIGNvbnN0IGhhbmRsZUNoYW5nZSA9IHVzZUV2ZW50Q2FsbGJhY2soKHZhbHVlKSA9PiB7XG4gICAgICAgIGlmIChuYW1lKSB7XG4gICAgICAgICAgICBzZXRGaWVsZFZhbHVlKG5hbWUsIHZhbHVlKTtcbiAgICAgICAgICAgIGlmICh2YWxpZGF0ZURlYm91bmNlICYmIHZhbGlkYXRlRGVib3VuY2UgPiAwKSB7XG4gICAgICAgICAgICAgICAgZGVib3VuY2VkVmFsaWRhdGUodmFsdWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgcnVuVmFsaWRhdGUodmFsdWUsICdvbkNoYW5nZScpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfSk7XG4gICAgY29uc3QgaGFuZGxlQmx1ciA9IHVzZUV2ZW50Q2FsbGJhY2soKCkgPT4ge1xuICAgICAgICBydW5WYWxpZGF0ZUFzeW5jKGZpZWxkVmFsdWUsICdvbkJsdXInKTtcbiAgICB9KTtcbiAgICAvLyBMYXRlc3QgY2hpbGQtcHJvdmlkZWQgY2FsbGJhY2tzLCBjYXB0dXJlZCBhdCBpbmplY3RGaWVsZCB0aW1lLiBUaGUgU1RBQkxFXG4gICAgLy8gaW5qZWN0ZWQgaGFuZGxlcnMgYmVsb3cgZGVsZWdhdGUgdGhyb3VnaCB0aGlzIHJlZiBpbnN0ZWFkIG9mIGJlaW5nXG4gICAgLy8gcmVjcmVhdGVkIHBlciByZW5kZXIg4oCUIHNvIGEgbWVtb2l6ZWQgZmllbGQgY29tcG9uZW50IHNlZXMgc2hhbGxvdy1lcXVhbFxuICAgIC8vIHByb3BzIGFjcm9zcyByZW5kZXJzIGFuZCBjYW4gYmFpbCBvdXQgd2hpbGUgYW5vdGhlciBmaWVsZCBpcyB0eXBpbmcuXG4gICAgY29uc3QgY2hpbGRDYWxsYmFja3NSZWYgPSB1c2VSZWYoe30pO1xuICAgIGNvbnN0IGluamVjdGVkT25DaGFuZ2UgPSB1c2VFdmVudENhbGxiYWNrKChlLCAuLi5hcmdzKSA9PiB7XG4gICAgICAgIHZhciBfYSwgX2I7XG4gICAgICAgIGhhbmRsZUNoYW5nZShleHRyYWN0RXZlbnRWYWx1ZShlLCB2YWx1ZVByb3BOYW1lKSk7XG4gICAgICAgIChfYiA9IChfYSA9IGNoaWxkQ2FsbGJhY2tzUmVmLmN1cnJlbnQpLm9uQ2hhbmdlKSA9PT0gbnVsbCB8fCBfYiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2IuY2FsbChfYSwgZSwgLi4uYXJncyk7XG4gICAgfSk7XG4gICAgY29uc3QgaW5qZWN0ZWRPbkJsdXIgPSB1c2VFdmVudENhbGxiYWNrKCguLi5hcmdzKSA9PiB7XG4gICAgICAgIHZhciBfYSwgX2I7XG4gICAgICAgIGhhbmRsZUJsdXIoKTtcbiAgICAgICAgKF9iID0gKF9hID0gY2hpbGRDYWxsYmFja3NSZWYuY3VycmVudCkub25CbHVyKSA9PT0gbnVsbCB8fCBfYiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2IuY2FsbChfYSwgLi4uYXJncyk7XG4gICAgfSk7XG4gICAgLy8gS2VlcCB0aGUgcmVnaXN0cnkgaW4gc3luYyB3aXRoIHRoZSBMQVRFU1QgcnVsZXMgZXZlcnkgcmVuZGVyIChyZWdpc3RyYXRpb25cbiAgICAvLyBpcyBhIGNoZWFwIHJlZiBtdXRhdGlvbik6IGR5bmFtaWMgcnVsZXMgKGUuZy4gcmVxdWlyZWQgdG9nZ2xlZCBieSBhbm90aGVyXG4gICAgLy8gZmllbGQpIG11c3QgYmUgdmlzaWJsZSB0byBzdWJtaXQtdGltZSB2YWxpZGF0aW9uLCBub3QganVzdCBvbkNoYW5nZS5cbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICBpZiAobmFtZSAmJiByZWdpc3RlckZpZWxkKVxuICAgICAgICAgICAgcmVnaXN0ZXJGaWVsZChuYW1lLCBydWxlcyk7XG4gICAgfSk7XG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgICAgIGlmIChuYW1lICYmIHVucmVnaXN0ZXJGaWVsZClcbiAgICAgICAgICAgICAgICB1bnJlZ2lzdGVyRmllbGQobmFtZSk7XG4gICAgICAgIH07XG4gICAgfSwgW25hbWVdKTtcbiAgICBjb25zdCBpbmplY3RGaWVsZCA9IChjaGlsZCkgPT4ge1xuICAgICAgICB2YXIgX2E7XG4gICAgICAgIGlmICghbmFtZSB8fCAhUmVhY3QuaXNWYWxpZEVsZW1lbnQoY2hpbGQpKVxuICAgICAgICAgICAgcmV0dXJuIGNoaWxkO1xuICAgICAgICBjb25zdCBjaGlsZFByb3BzID0gY2hpbGQucHJvcHM7XG4gICAgICAgIGNvbnN0IGRpc3BsYXlOYW1lID0gKF9hID0gY2hpbGQudHlwZSkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmRpc3BsYXlOYW1lO1xuICAgICAgICBjb25zdCBpc0Zvcm1Db21wb25lbnQgPSBGT1JNX0NPTVBPTkVOVF9OQU1FUy5pbmNsdWRlcyhkaXNwbGF5TmFtZSkgfHxcbiAgICAgICAgICAgIGNoaWxkUHJvcHMucGxhY2Vob2xkZXIgIT09IHVuZGVmaW5lZCB8fFxuICAgICAgICAgICAgY2hpbGRQcm9wcy52YWx1ZSAhPT0gdW5kZWZpbmVkIHx8XG4gICAgICAgICAgICBjaGlsZFByb3BzW3ZhbHVlUHJvcE5hbWVdICE9PSB1bmRlZmluZWQ7XG4gICAgICAgIGlmICghaXNGb3JtQ29tcG9uZW50KVxuICAgICAgICAgICAgcmV0dXJuIGNoaWxkO1xuICAgICAgICBsZXQgc2FmZVZhbHVlID0gZmllbGRWYWx1ZTtcbiAgICAgICAgaWYgKHNhZmVWYWx1ZSA9PT0gbnVsbCB8fCBzYWZlVmFsdWUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgaWYgKHZhbHVlUHJvcE5hbWUgPT09ICdjaGVja2VkJyB8fCBbJ0NoZWNrYm94JywgJ1N3aXRjaCddLmluY2x1ZGVzKGRpc3BsYXlOYW1lIHx8ICcnKSkge1xuICAgICAgICAgICAgICAgIHNhZmVWYWx1ZSA9IGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSBpZiAoVEVYVF9MSUtFX0NPTVBPTkVOVF9OQU1FUy5pbmNsdWRlcyhkaXNwbGF5TmFtZSB8fCAnJykgfHxcbiAgICAgICAgICAgICAgICBjaGlsZFByb3BzLnBsYWNlaG9sZGVyICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICBzYWZlVmFsdWUgPSAnJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmIChURVhUX0xJS0VfQ09NUE9ORU5UX05BTUVTLmluY2x1ZGVzKGRpc3BsYXlOYW1lIHx8ICcnKSAmJlxuICAgICAgICAgICAgdHlwZW9mIHNhZmVWYWx1ZSAhPT0gJ3N0cmluZycgJiZcbiAgICAgICAgICAgIHR5cGVvZiBzYWZlVmFsdWUgIT09ICdudW1iZXInKSB7XG4gICAgICAgICAgICBzYWZlVmFsdWUgPSAnJztcbiAgICAgICAgfVxuICAgICAgICBjaGlsZENhbGxiYWNrc1JlZi5jdXJyZW50ID0ge1xuICAgICAgICAgICAgb25DaGFuZ2U6IHR5cGVvZiBjaGlsZFByb3BzLm9uQ2hhbmdlID09PSAnZnVuY3Rpb24nXG4gICAgICAgICAgICAgICAgPyBjaGlsZFByb3BzLm9uQ2hhbmdlXG4gICAgICAgICAgICAgICAgOiB1bmRlZmluZWQsXG4gICAgICAgICAgICBvbkJsdXI6IHR5cGVvZiBjaGlsZFByb3BzLm9uQmx1ciA9PT0gJ2Z1bmN0aW9uJ1xuICAgICAgICAgICAgICAgID8gY2hpbGRQcm9wcy5vbkJsdXJcbiAgICAgICAgICAgICAgICA6IHVuZGVmaW5lZCxcbiAgICAgICAgfTtcbiAgICAgICAgY29uc3QgaW5qZWN0ZWRQcm9wcyA9IE9iamVjdC5hc3NpZ24oeyBbdmFsdWVQcm9wTmFtZV06IHNhZmVWYWx1ZSwgb25DaGFuZ2U6IGluamVjdGVkT25DaGFuZ2UsIG9uQmx1cjogaW5qZWN0ZWRPbkJsdXIgfSwgKGZpbmFsU3RhdHVzID09PSAnZXJyb3InICYmIHsgc3RhdHVzOiAnZXJyb3InIH0pKTtcbiAgICAgICAgcmV0dXJuIFJlYWN0LmNsb25lRWxlbWVudChjaGlsZCwgaW5qZWN0ZWRQcm9wcyk7XG4gICAgfTtcbiAgICByZXR1cm4ge1xuICAgICAgICBmaWVsZFZhbHVlLFxuICAgICAgICBmaWVsZEVycm9yLFxuICAgICAgICBmaWVsZFdhcm5pbmcsXG4gICAgICAgIGZpZWxkVmFsaWRhdGluZyxcbiAgICAgICAgdmFsaWRhdGVTdGF0dXM6IGZpbmFsU3RhdHVzLFxuICAgICAgICBpc1JlcXVpcmVkLFxuICAgICAgICBzaXplLFxuICAgICAgICBsYWJlbEFsaWduLFxuICAgICAgICByZXF1aXJlZE1hcmssXG4gICAgICAgIGluamVjdEZpZWxkLFxuICAgIH07XG59IixudWxsXSwic291cmNlUm9vdCI6Ii4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYyJ9
|
|
240
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvUHJvRm9ybS9jb3JlL3VzZUZvcm1JdGVtLmpzIiwiY29tcG9uZW50cy9Qcm9Gb3JtL3NyYy9jb21wb25lbnRzL1Byb0Zvcm0vY29yZS91c2VGb3JtSXRlbS50cyJdLCJuYW1lcyI6WyJfX2F3YWl0ZXIiLCJ0aGlzQXJnIiwiX2FyZ3VtZW50cyIsIlAiLCJnZW5lcmF0b3IiLCJhZG9wdCIsInZhbHVlIiwicmVzb2x2ZSIsIlByb21pc2UiLCJyZWplY3QiLCJmdWxmaWxsZWQiLCJzdGVwIiwibmV4dCIsImUiLCJyZWplY3RlZCIsInJlc3VsdCIsImRvbmUiLCJ0aGVuIiwiYXBwbHkiLCJSZWFjdCIsInVzZUVmZmVjdCIsInVzZVJlZiIsInVzZUV2ZW50Q2FsbGJhY2siLCJ1c2VEZWJvdW5jZWRDYWxsYmFjayIsInVzZVByb0Zvcm1TdGFibGUiLCJ1c2VQcm9Gb3JtU3RvcmUiLCJ1c2VTdG9yZVNlbGVjdG9yIiwic2hhbGxvd0VxdWFsQXJyYXlzIiwiZ2V0TmVzdGVkVmFsdWUiLCJmaWx0ZXJSdWxlc0J5VHJpZ2dlciIsIkZPUk1fQ09NUE9ORU5UX05BTUVTIiwiU0laRV9BV0FSRV9DT01QT05FTlRfTkFNRVMiLCJURVhUX0xJS0VfQ09NUE9ORU5UX05BTUVTIiwiZXh0cmFjdEV2ZW50VmFsdWUiLCJ2YWx1ZVByb3BOYW1lIiwiYXJndW1lbnRzIiwibGVuZ3RoIiwidW5kZWZpbmVkIiwiX3R5cGVvZiIsImV2ZW50IiwidGFyZ2V0IiwidXNlRm9ybUl0ZW0iLCJvcHRpb25zIiwiX3RoaXMiLCJuYW1lIiwiX29wdGlvbnMkcnVsZXMiLCJydWxlcyIsInJlcXVpcmVkIiwidmFsaWRhdGVTdGF0dXMiLCJfb3B0aW9ucyR2YWx1ZVByb3BOYW0iLCJ2YWxpZGF0ZURlYm91bmNlIiwiX3VzZVByb0Zvcm1TdGFibGUiLCJzZXRGaWVsZFZhbHVlIiwidmFsaWRhdGVGaWVsZCIsInZhbGlkYXRlRmllbGRBc3luYyIsInJlZ2lzdGVyRmllbGQiLCJ1bnJlZ2lzdGVyRmllbGQiLCJzaXplIiwibGFiZWxBbGlnbiIsInJlcXVpcmVkTWFyayIsInZhbGlkYXRlVHJpZ2dlciIsImZvcm1EaXNhYmxlZCIsImRpc2FibGVkIiwic3RvcmUiLCJpc1JlcXVpcmVkIiwiQm9vbGVhbiIsInNvbWUiLCJydWxlIiwiX3VzZVN0b3JlU2VsZWN0b3IiLCJzdGF0ZSIsImluY2x1ZGVzIiwidmFsdWVzIiwiZXJyb3JzIiwid2FybmluZ3MiLCJ2YWxpZGF0aW5nIiwiX3VzZVN0b3JlU2VsZWN0b3IyIiwiX3NsaWNlZFRvQXJyYXkiLCJmaWVsZFZhbHVlIiwiZmllbGRFcnJvciIsImZpZWxkV2FybmluZyIsImZpZWxkVmFsaWRhdGluZyIsImZpbmFsU3RhdHVzIiwicnVuVmFsaWRhdGUiLCJ0cmlnZ2VyIiwiYXBwbGljYWJsZSIsInJ1blZhbGlkYXRlQXN5bmMiLCJfcmVnZW5lcmF0b3JSdW50aW1lIiwibWFyayIsIl9jYWxsZWUiLCJ3cmFwIiwiX2NvbnRleHQiLCJwcmV2IiwiYWJydXB0Iiwic3RvcCIsIl91c2VEZWJvdW5jZWRDYWxsYmFjayIsImRlYm91bmNlZFZhbGlkYXRlIiwicnVuIiwiaGFuZGxlQ2hhbmdlIiwidG91Y2hlZCIsImdldFN0YXRlIiwic2V0U3RhdGUiLCJPYmplY3QiLCJhc3NpZ24iLCJfZGVmaW5lUHJvcGVydHkiLCJoYW5kbGVCbHVyIiwiY3VycmVudFZhbHVlIiwiY2hpbGRDYWxsYmFja3NSZWYiLCJpbmplY3RlZE9uQ2hhbmdlIiwiX2IyIiwiX2EiLCJfYiIsIl9sZW4iLCJhcmdzIiwiQXJyYXkiLCJfa2V5IiwiY3VycmVudCIsIm9uQ2hhbmdlIiwiY2FsbCIsImNvbmNhdCIsImluamVjdGVkT25CbHVyIiwiX2IzIiwiX2xlbjIiLCJfa2V5MiIsIm9uQmx1ciIsImluamVjdEZpZWxkIiwiY2hpbGQiLCJpc1ZhbGlkRWxlbWVudCIsImNoaWxkUHJvcHMiLCJwcm9wcyIsImRpc3BsYXlOYW1lIiwidHlwZSIsImlzRm9ybUNvbXBvbmVudCIsInBsYWNl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O0lBQ1ZDLFlBQVksRUFBWkEsWUFBWTtJQUNaQyxlQUFlLEVBQWZBLGVBQWU7SUFDZmhDLGNBQWMsRUFBRWlDLFdBQVc7SUFDM0JqQixVQUFVLEVBQVZBLFVBQVU7SUFDVlAsSUFBSSxFQUFKQSxJQUFJO0lBQ0pDLFVBQVUsRUFBVkEsVUFBVTtJQUNWQyxZQUFZLEVBQVpBLFlBQVk7SUFDWmlFLFdBQVcsRUFBWEE7RUQzRUEsQ0M0RUQ7QUFDSCIsImZpbGUiOiJjb21wb25lbnRzL1Byb0Zvcm0vY29yZS91c2VGb3JtSXRlbS5qcyIsInNvdXJjZXNDb250ZW50IjpbInZhciBfX2F3YWl0ZXIgPSAodGhpcyAmJiB0aGlzLl9fYXdhaXRlcikgfHwgZnVuY3Rpb24gKHRoaXNBcmcsIF9hcmd1bWVudHMsIFAsIGdlbmVyYXRvcikge1xuICAgIGZ1bmN0aW9uIGFkb3B0KHZhbHVlKSB7IHJldHVybiB2YWx1ZSBpbnN0YW5jZW9mIFAgPyB2YWx1ZSA6IG5ldyBQKGZ1bmN0aW9uIChyZXNvbHZlKSB7IHJlc29sdmUodmFsdWUpOyB9KTsgfVxuICAgIHJldHVybiBuZXcgKFAgfHwgKFAgPSBQcm9taXNlKSkoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkge1xuICAgICAgICBmdW5jdGlvbiBmdWxmaWxsZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3IubmV4dCh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XG4gICAgICAgIGZ1bmN0aW9uIHJlamVjdGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yW1widGhyb3dcIl0odmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxuICAgICAgICBmdW5jdGlvbiBzdGVwKHJlc3VsdCkgeyByZXN1bHQuZG9uZSA/IHJlc29sdmUocmVzdWx0LnZhbHVlKSA6IGFkb3B0KHJlc3VsdC52YWx1ZSkudGhlbihmdWxmaWxsZWQsIHJlamVjdGVkKTsgfVxuICAgICAgICBzdGVwKChnZW5lcmF0b3IgPSBnZW5lcmF0b3IuYXBwbHkodGhpc0FyZywgX2FyZ3VtZW50cyB8fCBbXSkpLm5leHQoKSk7XG4gICAgfSk7XG59O1xuaW1wb3J0IFJlYWN0LCB7IHVzZUVmZmVjdCwgdXNlUmVmIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHVzZUV2ZW50Q2FsbGJhY2sgZnJvbSAnQDFtb25leS9ob29rcy91c2VFdmVudENhbGxiYWNrJztcbmltcG9ydCB1c2VEZWJvdW5jZWRDYWxsYmFjayBmcm9tICdAMW1vbmV5L2hvb2tzL3VzZURlYm91bmNlZENhbGxiYWNrJztcbmltcG9ydCB7IHVzZVByb0Zvcm1TdGFibGUsIHVzZVByb0Zvcm1TdG9yZSB9IGZyb20gJy4uL2NvbnRleHQnO1xuaW1wb3J0IHsgdXNlU3RvcmVTZWxlY3Rvciwgc2hhbGxvd0VxdWFsQXJyYXlzIH0gZnJvbSAnLi9mb3JtU3RvcmUnO1xuaW1wb3J0IHsgZ2V0TmVzdGVkVmFsdWUgfSBmcm9tICcuL3BhdGhVdGlscyc7XG5pbXBvcnQgeyBmaWx0ZXJSdWxlc0J5VHJpZ2dlciB9IGZyb20gJy4vcnVuUnVsZXMnO1xuaW1wb3J0IHsgRk9STV9DT01QT05FTlRfTkFNRVMsIFNJWkVfQVdBUkVfQ09NUE9ORU5UX05BTUVTLCBURVhUX0xJS0VfQ09NUE9ORU5UX05BTUVTLCB9IGZyb20gJy4vY29uc3RhbnRzJztcbi8qKlxuICogTm9ybWFsaXNlIGEgY2hhbmdlLWhhbmRsZXIgYXJndW1lbnQ6IHVud3JhcCBgZS50YXJnZXRbdmFsdWVQcm9wTmFtZV1gIC9cbiAqIGBlW3ZhbHVlUHJvcE5hbWVdYCAoZS5nLiBDaGVja2JveCBlbWl0cyBgeyBjaGVja2VkIH1gKSwgZWxzZSBgZS50YXJnZXQudmFsdWVgLFxuICogZWxzZSBwYXNzIHRoZSB2YWx1ZSB0aHJvdWdoIChlLmcuIFN3aXRjaCBlbWl0cyB0aGUgYm9vbGVhbiBkaXJlY3RseSkuXG4gKi9cbmZ1bmN0aW9uIGV4dHJhY3RFdmVudFZhbHVlKGUsIHZhbHVlUHJvcE5hbWUgPSAndmFsdWUnKSB7XG4gICAgaWYgKGUgPT09IG51bGwgfHwgdHlwZW9mIGUgIT09ICdvYmplY3QnKVxuICAgICAgICByZXR1cm4gZTtcbiAgICBjb25zdCBldmVudCA9IGU7XG4gICAgaWYgKHZhbHVlUHJvcE5hbWUgIT09ICd2YWx1ZScgJiYgdmFsdWVQcm9wTmFtZSBpbiBldmVudCkge1xuICAgICAgICByZXR1cm4gZXZlbnRbdmFsdWVQcm9wTmFtZV07XG4gICAgfVxuICAgIGlmICgndGFyZ2V0JyBpbiBldmVudCAmJiBldmVudC50YXJnZXQgJiYgdHlwZW9mIGV2ZW50LnRhcmdldCA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgY29uc3QgdGFyZ2V0ID0gZXZlbnQudGFyZ2V0O1xuICAgICAgICBpZiAodmFsdWVQcm9wTmFtZSBpbiB0YXJnZXQpXG4gICAgICAgICAgICByZXR1cm4gdGFyZ2V0W3ZhbHVlUHJvcE5hbWVdO1xuICAgICAgICBpZiAoJ3ZhbHVlJyBpbiB0YXJnZXQpXG4gICAgICAgICAgICByZXR1cm4gdGFyZ2V0LnZhbHVlO1xuICAgIH1cbiAgICByZXR1cm4gZTtcbn1cbmV4cG9ydCBmdW5jdGlvbiB1c2VGb3JtSXRlbShvcHRpb25zKSB7XG4gICAgY29uc3QgeyBuYW1lLCBydWxlcyA9IFtdLCByZXF1aXJlZCwgdmFsaWRhdGVTdGF0dXMsIHZhbHVlUHJvcE5hbWUgPSAndmFsdWUnLCB2YWxpZGF0ZURlYm91bmNlLCB9ID0gb3B0aW9ucztcbiAgICBjb25zdCB7IHNldEZpZWxkVmFsdWUsIHZhbGlkYXRlRmllbGQsIHZhbGlkYXRlRmllbGRBc3luYywgcmVnaXN0ZXJGaWVsZCwgdW5yZWdpc3RlckZpZWxkLCBzaXplLCBsYWJlbEFsaWduLCByZXF1aXJlZE1hcmssIHZhbGlkYXRlVHJpZ2dlciwgZGlzYWJsZWQ6IGZvcm1EaXNhYmxlZCwgfSA9IHVzZVByb0Zvcm1TdGFibGUoKTtcbiAgICBjb25zdCBzdG9yZSA9IHVzZVByb0Zvcm1TdG9yZSgpO1xuICAgIGNvbnN0IGlzUmVxdWlyZWQgPSBCb29sZWFuKHJlcXVpcmVkIHx8IHJ1bGVzLnNvbWUoKHJ1bGUpID0+IHJ1bGUucmVxdWlyZWQpKTtcbiAgICAvLyBQZXItZmllbGQgc3RvcmUgc3Vic2NyaXB0aW9uOiB0aGlzIGl0ZW0gcmUtcmVuZGVycyBPTkxZIHdoZW4gaXRzIG93blxuICAgIC8vIHZhbHVlL2Vycm9yL3dhcm5pbmcvdmFsaWRhdGluZyBzbGljZSBjaGFuZ2VzIOKAlCB0eXBpbmcgaW4gYSBzaWJsaW5nIGZpZWxkXG4gICAgLy8gcHJvZHVjZXMgYW4gZXF1YWwgdHVwbGUgYW5kIHRoZSBzZWxlY3RvciBzaG9ydC1jaXJjdWl0cy5cbiAgICAvLyBFcnJvcnMvd2FybmluZ3MgYXJlIHN0b3JlZCBGTEFULCBrZXllZCBieSB0aGUgZnVsbCAocG9zc2libHkgZG90dGVkKSBmaWVsZFxuICAgIC8vIG5hbWUg4oCUIG5ldmVyIHJlc29sdmUgdGhlbSBhcyBuZXN0ZWQgcGF0aHMgb3IgZG90dGVkIG5hbWVzIHdvdWxkIG1pc3MuXG4gICAgY29uc3QgW2ZpZWxkVmFsdWUsIGZpZWxkRXJyb3IsIGZpZWxkV2FybmluZywgZmllbGRWYWxpZGF0aW5nXSA9IHVzZVN0b3JlU2VsZWN0b3Ioc3RvcmUsIChzdGF0ZSkgPT4gW1xuICAgICAgICBuYW1lXG4gICAgICAgICAgICA/IChuYW1lLmluY2x1ZGVzKCcuJykgPyBnZXROZXN0ZWRWYWx1ZShzdGF0ZS52YWx1ZXMsIG5hbWUpIDogc3RhdGUudmFsdWVzW25hbWVdKVxuICAgICAgICAgICAgOiB1bmRlZmluZWQsXG4gICAgICAgIG5hbWUgPyBzdGF0ZS5lcnJvcnNbbmFtZV0gOiB1bmRlZmluZWQsXG4gICAgICAgIG5hbWUgPyBzdGF0ZS53YXJuaW5nc1tuYW1lXSA6IHVuZGVmaW5lZCxcbiAgICAgICAgbmFtZSA/IChzdGF0ZS52YWxpZGF0aW5nW25hbWVdIHx8IGZhbHNlKSA6IGZhbHNlLFxuICAgIF0sIHNoYWxsb3dFcXVhbEFycmF5cyk7XG4gICAgY29uc3QgZmluYWxTdGF0dXMgPSB2YWxpZGF0ZVN0YXR1cyB8fCAoZmllbGRFcnJvciA/ICdlcnJvcicgOiBmaWVsZFdhcm5pbmcgPyAnd2FybmluZycgOiB1bmRlZmluZWQpO1xuICAgIC8vIFJ1biBvbmx5IHRoZSBydWxlcyBhcHBsaWNhYmxlIHRvIHRoZSBnaXZlbiBpbnRlcmFjdGl2ZSB0cmlnZ2VyOyBydWxlc1xuICAgIC8vIHdpdGhvdXQgYW4gZXhwbGljaXQgdmFsaWRhdGVUcmlnZ2VyIGZvbGxvdyB0aGUgZm9ybS1sZXZlbCBzZXR0aW5nLlxuICAgIGNvbnN0IHJ1blZhbGlkYXRlID0gdXNlRXZlbnRDYWxsYmFjaygodmFsdWUsIHRyaWdnZXIpID0+IHtcbiAgICAgICAgaWYgKCFuYW1lIHx8IHJ1bGVzLmxlbmd0aCA9PT0gMClcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICBjb25zdCBhcHBsaWNhYmxlID0gZmlsdGVyUnVsZXNCeVRyaWdnZXIocnVsZXMsIHRyaWdnZXIsIHZhbGlkYXRlVHJpZ2dlcik7XG4gICAgICAgIGlmIChhcHBsaWNhYmxlLmxlbmd0aCA9PT0gMClcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICByZXR1cm4gdmFsaWRhdGVGaWVsZChuYW1lLCBhcHBsaWNhYmxlLCB2YWx1ZSk7XG4gICAgfSk7XG4gICAgY29uc3QgcnVuVmFsaWRhdGVBc3luYyA9IHVzZUV2ZW50Q2FsbGJhY2soKHZhbHVlLCB0cmlnZ2VyKSA9PiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgIGlmICghbmFtZSB8fCBydWxlcy5sZW5ndGggPT09IDApXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIGNvbnN0IGFwcGxpY2FibGUgPSBmaWx0ZXJSdWxlc0J5VHJpZ2dlcihydWxlcywgdHJpZ2dlciwgdmFsaWRhdGVUcmlnZ2VyKTtcbiAgICAgICAgaWYgKGFwcGxpY2FibGUubGVuZ3RoID09PSAwKVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB5aWVsZCB2YWxpZGF0ZUZpZWxkQXN5bmMobmFtZSwgdmFsdWUsIGFwcGxpY2FibGUpO1xuICAgIH0pKTtcbiAgICBjb25zdCB7IHJ1bjogZGVib3VuY2VkVmFsaWRhdGUgfSA9IHVzZURlYm91bmNlZENhbGxiYWNrKCh2YWx1ZSkgPT4ge1xuICAgICAgICBydW5WYWxpZGF0ZSh2YWx1ZSwgJ29uQ2hhbmdlJyk7XG4gICAgfSwgdmFsaWRhdGVEZWJvdW5jZSk7XG4gICAgY29uc3QgaGFuZGxlQ2hhbmdlID0gdXNlRXZlbnRDYWxsYmFjaygodmFsdWUpID0+IHtcbiAgICAgICAgaWYgKG5hbWUpIHtcbiAgICAgICAgICAgIHNldEZpZWxkVmFsdWUobmFtZSwgdmFsdWUpO1xuICAgICAgICAgICAgLy8gdG91Y2hlZCBpcyBzZXQgYnkgdGhlIHVzZXIgY2hhbmdlIHRyaWdnZXIg4oCUXG4gICAgICAgICAgICAvLyBwcm9ncmFtbWF0aWMgc2V0RmllbGRzVmFsdWUgZG9lcyBub3QgbWFyayBmaWVsZHMgdG91Y2hlZC5cbiAgICAgICAgICAgIGNvbnN0IHRvdWNoZWQgPSBzdG9yZS5nZXRTdGF0ZSgpLnRvdWNoZWQ7XG4gICAgICAgICAgICBpZiAoIXRvdWNoZWRbbmFtZV0pIHtcbiAgICAgICAgICAgICAgICBzdG9yZS5zZXRTdGF0ZSh7IHRvdWNoZWQ6IE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgdG91Y2hlZCksIHsgW25hbWVdOiB0cnVlIH0pIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHZhbGlkYXRlRGVib3VuY2UgJiYgdmFsaWRhdGVEZWJvdW5jZSA+IDApIHtcbiAgICAgICAgICAgICAgICBkZWJvdW5jZWRWYWxpZGF0ZSh2YWx1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICBydW5WYWxpZGF0ZSh2YWx1ZSwgJ29uQ2hhbmdlJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9KTtcbiAgICBjb25zdCBoYW5kbGVCbHVyID0gdXNlRXZlbnRDYWxsYmFjaygoKSA9PiB7XG4gICAgICAgIC8vIFJlYWQgdGhlIExJVkUgdmFsdWUgZnJvbSB0aGUgc3RvcmUg4oCUIGEgY2hhbmdlIGNvbW1pdHRlZCBpbiB0aGUgc2FtZVxuICAgICAgICAvLyB0aWNrIChjaGFuZ2Ug4oaSIGltbWVkaWF0ZSBibHVyKSBtdXN0IGJlIHZhbGlkYXRlZCwgbm90IHRoZSByZW5kZXItdGltZVxuICAgICAgICAvLyBzbmFwc2hvdC5cbiAgICAgICAgY29uc3QgY3VycmVudFZhbHVlID0gbmFtZVxuICAgICAgICAgICAgPyAobmFtZS5pbmNsdWRlcygnLicpXG4gICAgICAgICAgICAgICAgPyBnZXROZXN0ZWRWYWx1ZShzdG9yZS5nZXRTdGF0ZSgpLnZhbHVlcywgbmFtZSlcbiAgICAgICAgICAgICAgICA6IHN0b3JlLmdldFN0YXRlKCkudmFsdWVzW25hbWVdKVxuICAgICAgICAgICAgOiB1bmRlZmluZWQ7XG4gICAgICAgIHJ1blZhbGlkYXRlQXN5bmMoY3VycmVudFZhbHVlLCAnb25CbHVyJyk7XG4gICAgfSk7XG4gICAgLy8gTGF0ZXN0IGNoaWxkLXByb3ZpZGVkIGNhbGxiYWNrcywgY2FwdHVyZWQgYXQgaW5qZWN0RmllbGQgdGltZS4gVGhlIFNUQUJMRVxuICAgIC8vIGluamVjdGVkIGhhbmRsZXJzIGJlbG93IGRlbGVnYXRlIHRocm91Z2ggdGhpcyByZWYgaW5zdGVhZCBvZiBiZWluZ1xuICAgIC8vIHJlY3JlYXRlZCBwZXIgcmVuZGVyIOKAlCBzbyBhIG1lbW9pemVkIGZpZWxkIGNvbXBvbmVudCBzZWVzIHNoYWxsb3ctZXF1YWxcbiAgICAvLyBwcm9wcyBhY3Jvc3MgcmVuZGVycyBhbmQgY2FuIGJhaWwgb3V0IHdoaWxlIGFub3RoZXIgZmllbGQgaXMgdHlwaW5nLlxuICAgIGNvbnN0IGNoaWxkQ2FsbGJhY2tzUmVmID0gdXNlUmVmKHt9KTtcbiAgICBjb25zdCBpbmplY3RlZE9uQ2hhbmdlID0gdXNlRXZlbnRDYWxsYmFjaygoZSwgLi4uYXJncykgPT4ge1xuICAgICAgICB2YXIgX2EsIF9iO1xuICAgICAgICBoYW5kbGVDaGFuZ2UoZXh0cmFjdEV2ZW50VmFsdWUoZSwgdmFsdWVQcm9wTmFtZSkpO1xuICAgICAgICAoX2IgPSAoX2EgPSBjaGlsZENhbGxiYWNrc1JlZi5jdXJyZW50KS5vbkNoYW5nZSkgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iLmNhbGwoX2EsIGUsIC4uLmFyZ3MpO1xuICAgIH0pO1xuICAgIGNvbnN0IGluamVjdGVkT25CbHVyID0gdXNlRXZlbnRDYWxsYmFjaygoLi4uYXJncykgPT4ge1xuICAgICAgICB2YXIgX2EsIF9iO1xuICAgICAgICBoYW5kbGVCbHVyKCk7XG4gICAgICAgIChfYiA9IChfYSA9IGNoaWxkQ2FsbGJhY2tzUmVmLmN1cnJlbnQpLm9uQmx1cikgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iLmNhbGwoX2EsIC4uLmFyZ3MpO1xuICAgIH0pO1xuICAgIC8vIEtlZXAgdGhlIHJlZ2lzdHJ5IGluIHN5bmMgd2l0aCB0aGUgTEFURVNUIHJ1bGVzIGV2ZXJ5IHJlbmRlciAocmVnaXN0cmF0aW9uXG4gICAgLy8gaXMgYSBjaGVhcCByZWYgbXV0YXRpb24pOiBkeW5hbWljIHJ1bGVzIChlLmcuIHJlcXVpcmVkIHRvZ2dsZWQgYnkgYW5vdGhlclxuICAgIC8vIGZpZWxkKSBtdXN0IGJlIHZpc2libGUgdG8gc3VibWl0LXRpbWUgdmFsaWRhdGlvbiwgbm90IGp1c3Qgb25DaGFuZ2UuXG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgaWYgKG5hbWUgJiYgcmVnaXN0ZXJGaWVsZClcbiAgICAgICAgICAgIHJlZ2lzdGVyRmllbGQobmFtZSwgcnVsZXMpO1xuICAgIH0pO1xuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgICAgICBpZiAobmFtZSAmJiB1bnJlZ2lzdGVyRmllbGQpXG4gICAgICAgICAgICAgICAgdW5yZWdpc3RlckZpZWxkKG5hbWUpO1xuICAgICAgICB9O1xuICAgIH0sIFtuYW1lXSk7XG4gICAgY29uc3QgaW5qZWN0RmllbGQgPSAoY2hpbGQpID0+IHtcbiAgICAgICAgdmFyIF9hO1xuICAgICAgICBpZiAoIW5hbWUgfHwgIVJlYWN0LmlzVmFsaWRFbGVtZW50KGNoaWxkKSlcbiAgICAgICAgICAgIHJldHVybiBjaGlsZDtcbiAgICAgICAgY29uc3QgY2hpbGRQcm9wcyA9IGNoaWxkLnByb3BzO1xuICAgICAgICBjb25zdCBkaXNwbGF5TmFtZSA9IChfYSA9IGNoaWxkLnR5cGUpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5kaXNwbGF5TmFtZTtcbiAgICAgICAgY29uc3QgaXNGb3JtQ29tcG9uZW50ID0gRk9STV9DT01QT05FTlRfTkFNRVMuaW5jbHVkZXMoZGlzcGxheU5hbWUpIHx8XG4gICAgICAgICAgICBjaGlsZFByb3BzLnBsYWNlaG9sZGVyICE9PSB1bmRlZmluZWQgfHxcbiAgICAgICAgICAgIGNoaWxkUHJvcHMudmFsdWUgIT09IHVuZGVmaW5lZCB8fFxuICAgICAgICAgICAgY2hpbGRQcm9wc1t2YWx1ZVByb3BOYW1lXSAhPT0gdW5kZWZpbmVkO1xuICAgICAgICBpZiAoIWlzRm9ybUNvbXBvbmVudClcbiAgICAgICAgICAgIHJldHVybiBjaGlsZDtcbiAgICAgICAgbGV0IHNhZmVWYWx1ZSA9IGZpZWxkVmFsdWU7XG4gICAgICAgIGlmIChzYWZlVmFsdWUgPT09IG51bGwgfHwgc2FmZVZhbHVlID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIGlmICh2YWx1ZVByb3BOYW1lID09PSAnY2hlY2tlZCcgfHwgWydDaGVja2JveCcsICdTd2l0Y2gnXS5pbmNsdWRlcyhkaXNwbGF5TmFtZSB8fCAnJykpIHtcbiAgICAgICAgICAgICAgICBzYWZlVmFsdWUgPSBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2UgaWYgKFRFWFRfTElLRV9DT01QT05FTlRfTkFNRVMuaW5jbHVkZXMoZGlzcGxheU5hbWUgfHwgJycpIHx8XG4gICAgICAgICAgICAgICAgY2hpbGRQcm9wcy5wbGFjZWhvbGRlciAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgc2FmZVZhbHVlID0gJyc7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAoVEVYVF9MSUtFX0NPTVBPTkVOVF9OQU1FUy5pbmNsdWRlcyhkaXNwbGF5TmFtZSB8fCAnJykgJiZcbiAgICAgICAgICAgIHR5cGVvZiBzYWZlVmFsdWUgIT09ICdzdHJpbmcnICYmXG4gICAgICAgICAgICB0eXBlb2Ygc2FmZVZhbHVlICE9PSAnbnVtYmVyJykge1xuICAgICAgICAgICAgc2FmZVZhbHVlID0gJyc7XG4gICAgICAgIH1cbiAgICAgICAgY2hpbGRDYWxsYmFja3NSZWYuY3VycmVudCA9IHtcbiAgICAgICAgICAgIG9uQ2hhbmdlOiB0eXBlb2YgY2hpbGRQcm9wcy5vbkNoYW5nZSA9PT0gJ2Z1bmN0aW9uJ1xuICAgICAgICAgICAgICAgID8gY2hpbGRQcm9wcy5vbkNoYW5nZVxuICAgICAgICAgICAgICAgIDogdW5kZWZpbmVkLFxuICAgICAgICAgICAgb25CbHVyOiB0eXBlb2YgY2hpbGRQcm9wcy5vbkJsdXIgPT09ICdmdW5jdGlvbidcbiAgICAgICAgICAgICAgICA/IGNoaWxkUHJvcHMub25CbHVyXG4gICAgICAgICAgICAgICAgOiB1bmRlZmluZWQsXG4gICAgICAgIH07XG4gICAgICAgIGNvbnN0IGluamVjdGVkUHJvcHMgPSBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7IFt2YWx1ZVByb3BOYW1lXTogc2FmZVZhbHVlLCBvbkNoYW5nZTogaW5qZWN0ZWRPbkNoYW5nZSwgb25CbHVyOiBpbmplY3RlZE9uQmx1ciB9LCAoZmluYWxTdGF0dXMgPT09ICdlcnJvcicgJiYgeyBzdGF0dXM6ICdlcnJvcicgfSkpLCAoZm9ybURpc2FibGVkICYmIGNoaWxkUHJvcHMuZGlzYWJsZWQgPT09IHVuZGVmaW5lZCAmJiB7IGRpc2FibGVkOiB0cnVlIH0pKSwgKFNJWkVfQVdBUkVfQ09NUE9ORU5UX05BTUVTLmluY2x1ZGVzKGRpc3BsYXlOYW1lIHx8ICcnKSAmJlxuICAgICAgICAgICAgY2hpbGRQcm9wcy5zaXplID09PSB1bmRlZmluZWQgJiYgeyBzaXplIH0pKTtcbiAgICAgICAgcmV0dXJuIFJlYWN0LmNsb25lRWxlbWVudChjaGlsZCwgaW5qZWN0ZWRQcm9wcyk7XG4gICAgfTtcbiAgICByZXR1cm4ge1xuICAgICAgICBmaWVsZFZhbHVlLFxuICAgICAgICBmaWVsZEVycm9yLFxuICAgICAgICBmaWVsZFdhcm5pbmcsXG4gICAgICAgIGZpZWxkVmFsaWRhdGluZyxcbiAgICAgICAgdmFsaWRhdGVTdGF0dXM6IGZpbmFsU3RhdHVzLFxuICAgICAgICBpc1JlcXVpcmVkLFxuICAgICAgICBzaXplLFxuICAgICAgICBsYWJlbEFsaWduLFxuICAgICAgICByZXF1aXJlZE1hcmssXG4gICAgICAgIGluamVjdEZpZWxkLFxuICAgIH07XG59IixudWxsXSwic291cmNlUm9vdCI6Ii4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYyJ9
|
|
@@ -3,7 +3,8 @@ import _toConsumableArray from "@babel/runtime/helpers/esm/toConsumableArray";
|
|
|
3
3
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
4
4
|
import React, { memo } from 'react';
|
|
5
5
|
import { ProFormItem } from '../ProFormItem';
|
|
6
|
-
import {
|
|
6
|
+
import { useProFormStable, useProFormStore } from '../context';
|
|
7
|
+
import { useStoreSelector } from '../core/formStore';
|
|
7
8
|
import { default as classnames } from '../../../utils/classnames';
|
|
8
9
|
import { CSS_PREFIX } from '../constants';
|
|
9
10
|
var classes = classnames("".concat(CSS_PREFIX, "-fieldset"));
|
|
@@ -18,22 +19,34 @@ var ProFormFieldSetBase = function ProFormFieldSetBase(props) {
|
|
|
18
19
|
gap = _props$gap === void 0 ? 8 : _props$gap,
|
|
19
20
|
style = props.style,
|
|
20
21
|
children = props.children;
|
|
21
|
-
var
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
var
|
|
22
|
+
var _useProFormStable = useProFormStable(),
|
|
23
|
+
setFieldValue = _useProFormStable.setFieldValue,
|
|
24
|
+
formInstance = _useProFormStable.formInstance;
|
|
25
|
+
var store = useProFormStore();
|
|
26
|
+
// Per-field subscription: re-render only when THIS set's array changes.
|
|
27
|
+
var rawValue = useStoreSelector(store, function (state) {
|
|
28
|
+
return name ? state.values[name] : undefined;
|
|
29
|
+
});
|
|
30
|
+
var value = Array.isArray(rawValue) ? rawValue : [];
|
|
25
31
|
var itemIndex = -1;
|
|
26
32
|
var list = React.Children.map(children, function (child) {
|
|
33
|
+
var _a;
|
|
27
34
|
if (! /*#__PURE__*/React.isValidElement(child)) return child;
|
|
28
35
|
itemIndex += 1;
|
|
29
36
|
var index = itemIndex;
|
|
30
37
|
return /*#__PURE__*/React.cloneElement(child, {
|
|
31
|
-
|
|
38
|
+
// '' (not undefined) for empty slots — an input must not switch from
|
|
39
|
+
// uncontrolled to controlled on its first edit.
|
|
40
|
+
value: (_a = value[index]) !== null && _a !== void 0 ? _a : '',
|
|
32
41
|
onChange: function onChange(val) {
|
|
33
42
|
if (!name) return;
|
|
34
43
|
var newValue = _toConsumableArray(value);
|
|
35
44
|
newValue[index] = val && _typeof(val) === 'object' && 'target' in val ? val.target.value : val;
|
|
36
45
|
setFieldValue(name, newValue);
|
|
46
|
+
// A slot edit is a user change trigger — mark touched like any field.
|
|
47
|
+
if (!formInstance.isFieldTouched(name)) {
|
|
48
|
+
formInstance.setFieldTouched(name, true);
|
|
49
|
+
}
|
|
37
50
|
}
|
|
38
51
|
});
|
|
39
52
|
});
|
|
@@ -62,4 +75,4 @@ var ProFormFieldSetBase = function ProFormFieldSetBase(props) {
|
|
|
62
75
|
ProFormFieldSetBase.displayName = 'ProFormFieldSet';
|
|
63
76
|
export var ProFormFieldSet = /*#__PURE__*/memo(ProFormFieldSetBase);
|
|
64
77
|
export default ProFormFieldSet;
|
|
65
|
-
//# sourceMappingURL=data:application/json;charset=utf8;base64,
|
|
78
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvUHJvRm9ybS9maWVsZHMvUHJvRm9ybUZpZWxkU2V0LmpzIiwiY29tcG9uZW50cy9Qcm9Gb3JtL3NyYy9jb21wb25lbnRzL1Byb0Zvcm0vZmllbGRzL1Byb0Zvcm1GaWVsZFNldC50c3giXSwibmFtZXMiOlsianN4IiwiX2pzeCIsIlJlYWN0IiwibWVtbyIsIlByb0Zvcm1JdGVtIiwidXNlUHJvRm9ybVN0YWJsZSIsInVzZVByb0Zvcm1TdG9yZSIsInVzZVN0b3JlU2VsZWN0b3IiLCJkZWZhdWx0IiwiY2xhc3NuYW1lcyIsIkNTU19QUkVGSVgiLCJjbGFzc2VzIiwiY29uY2F0IiwiUHJvRm9ybUZpZWxkU2V0QmFzZSIsInByb3BzIiwibmFtZSIsImxhYmVsIiwiZGVzY3JpcHRpb24iLCJydWxlcyIsInJlcXVpcmVkIiwiZmVlZGJhY2siLCJfcHJvcHMkZ2FwIiwiZ2FwIiwic3R5bGUiLCJjaGlsZHJlbiIsIl91c2VQcm9Gb3JtU3RhYmxlIiwic2V0RmllbGRWYWx1ZSIsImZvcm1JbnN0YW5jZSIsInN0b3JlIiwicmF3VmFsdWUiLCJzdGF0ZSIsInZhbHVlcyIsInVuZGVmaW5lZCIsInZhbHVlIiwiQXJyYXkiLCJpc0FycmF5IiwiaXRlbUluZGV4IiwibGlzdCIsIkNoaWxkcmVuIiwibWFwIiwiY2hpbGQiLCJfYSIsImlzVmFsaWRFbGVtZW50IiwiaW5kZXgiLCJjbG9uZUVsZW1lbnQiLCJvbkNoYW5nZSIsInZhbCIsIm5ld1ZhbHVlIiwiX3RvQ29uc3VtYWJsZUFycmF5IiwiX3R5cGVvZiIsInRhcmdldCIsImlzRmllbGRUb3VjaGVkIiwic2V0RmllbGRUb3VjaGVkIiwiY29udGVudCIsImNsYXNzTmFtZSIsIk9iamVjdCIsImFzc2lnbiIsImRpc3BsYXkiLCJhbGlnbkl0ZW1zIiwiZGlzcGxheU5hbWUiLCJQcm9Gb3JtRmllbGRTZXQiXSwibWFwcGluZ3MiOiI7O0FBQUEsU0FBU0EsR0FBRyxJQUFJQyxJQUFJLFFBQVEsbUJBQW1CO0FD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QUNwQyxJQUFJLENBQUMsRUFBRTtVQUN0Q1ksWUFBWSxDQUFDeUIsZUFBZSxDQUFDckMsSUFBSSxFQUFFLElBQUksQ0FBQztRQUMxQztNQUNGO0lEYkUsQ0NjSCxDQUFDO0VBQ0osQ0FBQyxDQUFDO0VBRUYsSUFBTXNDLE9BQU8sR0FDWHBELElBQUEsQ0FBQSxLQUFBLEVBQUE7SUFBS3FELFNBQVMsRUFBRTNDLE9BQU8sQ0FBQSxDQUFFO0lBQUVZLEtBQUssRUFBQWdDLE1BQUEsQ0FBQUMsTUFBQSxDQUFBO01BQUlDLE9BQU8sRUFBRSxNQUFNO01BQUVuQyxHQUFHLEVBQUhBLEdBQUc7TUFBRW9DLFVBQVUsRUFBRTtJQUFZLENBQUEsRUFBS25DLEtBQUssQ0FBQTtJQUFBQyxRQUFBLEVBQ3pGYTtFQUFJLENBQUEsQ0FFUjtFQUVELElBQUl0QixJQUFJLEVBQUU7SUFDUixPQUNFZCxJQUFBLENBQUNHLFdBQVcsRUFBQTtNQUFDWSxLQUFLLEVBQUVBLEtBQUs7TUFBRUMsV0FBVyxFQUFFQSxXQUFXO01BQUVGLElBQUksRUFBRUEsSUFBSTtNQUFFRyxLQUFLLEVBQUVBLEtBQUs7TUFBRUMsUUFBUSxFQUFFQSxRQUFRO01BQUVDLFFBQVEsRUFBRUEsUUFBUTtNQUFBSSxRQUFBLEVBQ2xINkI7SUFBTyxDQUFBLENBQ0k7RUFFbEI7RUFFQSxPQUFPQSxPQUFPO0FBQ2hCLENBQUM7QUFFRHhDLG1CQUFtQixDQUFDOEMsV0FBVyxHQUFHLGlCQUFpQjtBQUVuRCxPQUFPLElBQU1DLGVBQWUsZ0JBQUd6RCxJQUFJLENBQUNVLG1CQUFtQixDQUFDO0FBRXhELGVBQWUrQyxlQUFlIiwiZmlsZSI6ImNvbXBvbmVudHMvUHJvRm9ybS9maWVsZHMvUHJvRm9ybUZpZWxkU2V0LmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsganN4IGFzIF9qc3ggfSBmcm9tIFwicmVhY3QvanN4LXJ1bnRpbWVcIjtcbmltcG9ydCBSZWFjdCwgeyBtZW1vIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgUHJvRm9ybUl0ZW0gfSBmcm9tICcuLi9Qcm9Gb3JtSXRlbSc7XG5pbXBvcnQgeyB1c2VQcm9Gb3JtU3RhYmxlLCB1c2VQcm9Gb3JtU3RvcmUgfSBmcm9tICcuLi9jb250ZXh0JztcbmltcG9ydCB7IHVzZVN0b3JlU2VsZWN0b3IgfSBmcm9tICcuLi9jb3JlL2Zvcm1TdG9yZSc7XG5pbXBvcnQgeyBkZWZhdWx0IGFzIGNsYXNzbmFtZXMgfSBmcm9tICcuLi8uLi8uLi91dGlscy9jbGFzc25hbWVzJztcbmltcG9ydCB7IENTU19QUkVGSVggfSBmcm9tICcuLi9jb25zdGFudHMnO1xuY29uc3QgY2xhc3NlcyA9IGNsYXNzbmFtZXMoYCR7Q1NTX1BSRUZJWH0tZmllbGRzZXRgKTtcbmNvbnN0IFByb0Zvcm1GaWVsZFNldEJhc2UgPSAocHJvcHMpID0+IHtcbiAgICBjb25zdCB7IG5hbWUsIGxhYmVsLCBkZXNjcmlwdGlvbiwgcnVsZXMsIHJlcXVpcmVkLCBmZWVkYmFjaywgZ2FwID0gOCwgc3R5bGUsIGNoaWxkcmVuLCB9ID0gcHJvcHM7XG4gICAgY29uc3QgeyBzZXRGaWVsZFZhbHVlLCBmb3JtSW5zdGFuY2UgfSA9IHVzZVByb0Zvcm1TdGFibGUoKTtcbiAgICBjb25zdCBzdG9yZSA9IHVzZVByb0Zvcm1TdG9yZSgpO1xuICAgIC8vIFBlci1maWVsZCBzdWJzY3JpcHRpb246IHJlLXJlbmRlciBvbmx5IHdoZW4gVEhJUyBzZXQncyBhcnJheSBjaGFuZ2VzLlxuICAgIGNvbnN0IHJhd1ZhbHVlID0gdXNlU3RvcmVTZWxlY3RvcihzdG9yZSwgKHN0YXRlKSA9PiAobmFtZSA/IHN0YXRlLnZhbHVlc1tuYW1lXSA6IHVuZGVmaW5lZCkpO1xuICAgIGNvbnN0IHZhbHVlID0gQXJyYXkuaXNBcnJheShyYXdWYWx1ZSkgPyByYXdWYWx1ZSA6IFtdO1xuICAgIGxldCBpdGVtSW5kZXggPSAtMTtcbiAgICBjb25zdCBsaXN0ID0gUmVhY3QuQ2hpbGRyZW4ubWFwKGNoaWxkcmVuLCAoY2hpbGQpID0+IHtcbiAgICAgICAgdmFyIF9hO1xuICAgICAgICBpZiAoIVJlYWN0LmlzVmFsaWRFbGVtZW50KGNoaWxkKSlcbiAgICAgICAgICAgIHJldHVybiBjaGlsZDtcbiAgICAgICAgaXRlbUluZGV4ICs9IDE7XG4gICAgICAgIGNvbnN0IGluZGV4ID0gaXRlbUluZGV4O1xuICAgICAgICByZXR1cm4gUmVhY3QuY2xvbmVFbGVtZW50KGNoaWxkLCB7XG4gICAgICAgICAgICAvLyAnJyAobm90IHVuZGVmaW5lZCkgZm9yIGVtcHR5IHNsb3RzIOKAlCBhbiBpbnB1dCBtdXN0IG5vdCBzd2l0Y2ggZnJvbVxuICAgICAgICAgICAgLy8gdW5jb250cm9sbGVkIHRvIGNvbnRyb2xsZWQgb24gaXRzIGZpcnN0IGVkaXQuXG4gICAgICAgICAgICB2YWx1ZTogKF9hID0gdmFsdWVbaW5kZXhdKSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiAnJyxcbiAgICAgICAgICAgIG9uQ2hhbmdlOiAodmFsKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKCFuYW1lKVxuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgY29uc3QgbmV3VmFsdWUgPSBbLi4udmFsdWVdO1xuICAgICAgICAgICAgICAgIG5ld1ZhbHVlW2luZGV4XSA9IHZhbCAmJiB0eXBlb2YgdmFsID09PSAnb2JqZWN0JyAmJiAndGFyZ2V0JyBpbiB2YWxcbiAgICAgICAgICAgICAgICAgICAgPyB2YWwudGFyZ2V0LnZhbHVlXG4gICAgICAgICAgICAgICAgICAgIDogdmFsO1xuICAgICAgICAgICAgICAgIHNldEZpZWxkVmFsdWUobmFtZSwgbmV3VmFsdWUpO1xuICAgICAgICAgICAgICAgIC8vIEEgc2xvdCBlZGl0IGlzIGEgdXNlciBjaGFuZ2UgdHJpZ2dlciDigJQgbWFyayB0b3VjaGVkIGxpa2UgYW55IGZpZWxkLlxuICAgICAgICAgICAgICAgIGlmICghZm9ybUluc3RhbmNlLmlzRmllbGRUb3VjaGVkKG5hbWUpKSB7XG4gICAgICAgICAgICAgICAgICAgIGZvcm1JbnN0YW5jZS5zZXRGaWVsZFRvdWNoZWQobmFtZSwgdHJ1ZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgfSk7XG4gICAgfSk7XG4gICAgY29uc3QgY29udGVudCA9IChfanN4KFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCksIHN0eWxlOiBPYmplY3QuYXNzaWduKHsgZGlzcGxheTogJ2ZsZXgnLCBnYXAsIGFsaWduSXRlbXM6ICdmbGV4LXN0YXJ0JyB9LCBzdHlsZSksIGNoaWxkcmVuOiBsaXN0IH0pKTtcbiAgICBpZiAobmFtZSkge1xuICAgICAgICByZXR1cm4gKF9qc3goUHJvRm9ybUl0ZW0sIHsgbGFiZWw6IGxhYmVsLCBkZXNjcmlwdGlvbjogZGVzY3JpcHRpb24sIG5hbWU6IG5hbWUsIHJ1bGVzOiBydWxlcywgcmVxdWlyZWQ6IHJlcXVpcmVkLCBmZWVkYmFjazogZmVlZGJhY2ssIGNoaWxkcmVuOiBjb250ZW50IH0pKTtcbiAgICB9XG4gICAgcmV0dXJuIGNvbnRlbnQ7XG59O1xuUHJvRm9ybUZpZWxkU2V0QmFzZS5kaXNwbGF5TmFtZSA9ICdQcm9Gb3JtRmllbGRTZXQnO1xuZXhwb3J0IGNvbnN0IFByb0Zvcm1GaWVsZFNldCA9IG1lbW8oUHJvRm9ybUZpZWxkU2V0QmFzZSk7XG5leHBvcnQgZGVmYXVsdCBQcm9Gb3JtRmllbGRTZXQ7IixudWxsXSwic291cmNlUm9vdCI6Ii4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYyJ9
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
|
|
1
2
|
import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
|
|
2
3
|
var __rest = this && this.__rest || function (s, e) {
|
|
3
4
|
var t = {};
|
|
@@ -23,7 +24,8 @@ export function createProFormField(config) {
|
|
|
23
24
|
valuePropName = config.valuePropName,
|
|
24
25
|
defaultValueType = config.valueType,
|
|
25
26
|
mapProps = config.mapProps,
|
|
26
|
-
renderReadonly = config.renderReadonly
|
|
27
|
+
renderReadonly = config.renderReadonly,
|
|
28
|
+
popupContainerProp = config.popupContainerProp;
|
|
27
29
|
// Memo boundary around the wrapped control: combined with the stable
|
|
28
30
|
// injected handlers from useFormItem, fields whose value didn't change can
|
|
29
31
|
// bail out while another field in the form is typing. displayName must be
|
|
@@ -68,7 +70,13 @@ export function createProFormField(config) {
|
|
|
68
70
|
// Stable slice only — the field shell must NOT re-render per keystroke;
|
|
69
71
|
// value/error reactivity lives inside ProFormItem.
|
|
70
72
|
var _useProFormStable = useProFormStable(),
|
|
71
|
-
contextFieldProps = _useProFormStable.fieldProps
|
|
73
|
+
contextFieldProps = _useProFormStable.fieldProps,
|
|
74
|
+
formDisabled = _useProFormStable.disabled,
|
|
75
|
+
formComponentType = _useProFormStable.formComponentType;
|
|
76
|
+
// Overlay fields inside a Dialog/Drawer form mount their popup next to
|
|
77
|
+
// the trigger ('self') instead of document.body, so it scrolls and
|
|
78
|
+
// stacks with the overlay container.
|
|
79
|
+
var overlayContained = popupContainerProp !== undefined && (formComponentType === 'DialogForm' || formComponentType === 'DrawerForm');
|
|
72
80
|
// ── Field-level request ──
|
|
73
81
|
var mergedRequestParams = dependenciesValues ? Object.assign(Object.assign({}, params), dependenciesValues) : params;
|
|
74
82
|
var _useFieldRequest = useFieldRequest(request, mergedRequestParams),
|
|
@@ -100,7 +108,9 @@ export function createProFormField(config) {
|
|
|
100
108
|
if (requestOptions.length > 0) {
|
|
101
109
|
mergedOptions = requestOptions;
|
|
102
110
|
}
|
|
103
|
-
var componentProps = Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, mapped),
|
|
111
|
+
var componentProps = Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, mapped), formDisabled ? {
|
|
112
|
+
disabled: true
|
|
113
|
+
} : {}), overlayContained ? _defineProperty({}, popupContainerProp, 'self') : {}), contextFieldProps || {}), fieldProps || {}), mergedOptions !== undefined ? {
|
|
104
114
|
options: mergedOptions
|
|
105
115
|
} : {}), requestLoading ? {
|
|
106
116
|
loading: true
|
|
@@ -158,4 +168,4 @@ export function createProFormField(config) {
|
|
|
158
168
|
return MemoizedField;
|
|
159
169
|
}
|
|
160
170
|
export default createProFormField;
|
|
161
|
-
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvUHJvRm9ybS9maWVsZHMvY3JlYXRlUHJvRm9ybUZpZWxkLmpzIiwiY29tcG9uZW50cy9Qcm9Gb3JtL3NyYy9jb21wb25lbnRzL1Byb0Zvcm0vZmllbGRzL2NyZWF0ZVByb0Zvcm1GaWVsZC50c3giXSwibmFtZXMiOlsiX19yZXN0IiwicyIsImUiLCJ0IiwicCIsIk9iamVjdCIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImluZGV4T2YiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJpIiwibGVuZ3RoIiwicHJvcGVydHlJc0VudW1lcmFibGUiLCJqc3giLCJfanN4IiwibWVtbyIsInVzZURlYm91bmNlZENhbGxiYWNrIiwiUHJvRm9ybUl0ZW0iLCJQcm9Gb3JtRGVwZW5kZW5jeSIsInVzZVByb0Zvcm1TdGFibGUiLCJ1c2VGaWVsZFJlcXVlc3QiLCJyZXNvbHZlV2lkdGgiLCJ2YWx1ZUVudW1Ub09wdGlvbnMiLCJjcmVhdGVQcm9Gb3JtRmllbGQiLCJjb25maWciLCJDb21wb25lbnQiLCJjb21wb25lbnQiLCJ2YWx1ZVByb3BOYW1lIiwiZGVmYXVsdFZhbHVlVHlwZSIsInZhbHVlVHlwZSIsIm1hcFByb3BzIiwicmVuZGVyUmVhZG9ubHkiLCJNZW1vaXplZENvbXBvbmVudCIsImRpc3BsYXlOYW1lIiwibmFtZSIsIklubmVyRmllbGQiLCJwcm9wcyIsIl9hIiwiX2IiLCJfYyIsImxhYmVsIiwiZGVzY3JpcHRpb24iLCJydWxlcyIsInJlcXVpcmVkIiwiZmVlZGJhY2siLCJ2YWxpZGF0ZVN0YXR1cyIsImNvbG9uIiwicmVhZG9ubHkiLCJtb2RlUHJvcCIsIm1vZGUiLCJoaWRkZW4iLCJjb2xQcm9wcyIsImZpZWxkUHJvcHMiLCJwbGFjZWhvbGRlciIsImRpc2FibGVkIiwid2lkdGgiLCJ0cmFuc2Zvcm0iLCJjb252ZXJ0VmFsdWUiLCJfZGVwcyIsImRlcGVuZGVuY2llcyIsInJlcXVlc3QiLCJwYXJhbXMiLCJ2YWx1ZUVudW0iLCJkZWJvdW5jZVRpbWUiLCJ2YWxpZGF0ZURlYm91bmNlIiwiZGVwZW5kZW5jaWVzVmFsdWVzIiwicmVzdCIsInJlc29sdmVkTW9kZSIsInVuZGVmaW5lZCIsIl91c2VQcm9Gb3JtU3RhYmxlIiwiY29udGV4dEZpZWxkUHJvcHMiLCJtZXJnZWRSZXF1ZXN0UGFyYW1zIiwiYXNzaWduIiwiX3VzZUZpZWxkUmVxdWVzdCIsIl91c2VGaWVsZFJlcXVlc3QyIiwiX3NsaWNlZFRvQXJyYXkiLCJyZXF1ZXN0TG9hZGluZyIsInJlcXVlc3RPcHRpb25zIiwibWFwcGVkIiwidXNlck9uQ2hhbmdlIiwib25DaGFuZ2UiLCJfdXNlRGVib3VuY2VkQ2FsbGJhY2siLCJhcHBseSIsImFyZ3VtZW50cyIsImRlYm91bmNlZE9uQ2hhbmdlIiwicnVuIiwid2lkdGhTdHlsZSIsImZpZWxkU3R5bGUiLCJzdHlsZSIsIm1lcmdlZFN0eWxlIiwibWVyZ2VkT3B0aW9ucyIsIm9wdGlvbnMiLCJjb21wb25lbnRQcm9wcyIsImxvYWRpbmciLCJyZWFkb25seVJlbmRlciIsInZhbHVlIiwiY2hpbGRyZW4iLCJQcm9Gb3JtRmllbGRDb21wb25lbnQiLCJkZXBWYWx1ZXMiLCJNZW1vaXplZEZpZWxkIl0sIm1hcHBpbmdzIjoiO0FBQUEsSUFBSUEsTUFBTSxHQUFJLElBQUksSUFBSSxJQUFJLENBQUNBLE1BQU0sSUFBSyxVQUFVQyxDQUFDLEVBQUVDLENBQUMsRUFBRTtFQUNsRCxJQUFJQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0VBQ1YsS0FBSyxJQUFJQyxDQUFDLElBQUlILENBQUMsRUFBRSxJQUFJSSxNQUFNLENBQUNDLFNBQVMsQ0FBQ0MsY0FBYyxDQUFDQyxJQUFJLENBQUNQLENBQUMsRUFBRUcsQ0FBQyxDQUFDLElBQUlGLENBQUMsQ0FBQ08sT0FBTyxDQUFDTCxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQy9FRCxDQUFDLENBQUNDLENBQUMsQ0FBQyxHQUFHSCxDQUFDLENBQUNHLENBQUMsQ0FBQztFQUNmLElBQUlILENB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QSxFQUFLcEMsS0FBSyxDQUFBLENBQUk7RUFDbEMsQ0FBQztFQUVELElBQU0rRCxhQUFhLGdCQUFHcEYsSUFBSSxDQUFDa0YscUJBQXFCLENBQUM7RUFDakQsT0FBT0UsYUFBYTtBQUN0QjtBQUVBLGVBQWU1RSxrQkFBa0IiLCJmaWxlIjoiY29tcG9uZW50cy9Qcm9Gb3JtL2ZpZWxkcy9jcmVhdGVQcm9Gb3JtRmllbGQuanMiLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgX19yZXN0ID0gKHRoaXMgJiYgdGhpcy5fX3Jlc3QpIHx8IGZ1bmN0aW9uIChzLCBlKSB7XG4gICAgdmFyIHQgPSB7fTtcbiAgICBmb3IgKHZhciBwIGluIHMpIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocywgcCkgJiYgZS5pbmRleE9mKHApIDwgMClcbiAgICAgICAgdFtwXSA9IHNbcF07XG4gICAgaWYgKHMgIT0gbnVsbCAmJiB0eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyA9PT0gXCJmdW5jdGlvblwiKVxuICAgICAgICBmb3IgKHZhciBpID0gMCwgcCA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMocyk7IGkgPCBwLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBpZiAoZS5pbmRleE9mKHBbaV0pIDwgMCAmJiBPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwocywgcFtpXSkpXG4gICAgICAgICAgICAgICAgdFtwW2ldXSA9IHNbcFtpXV07XG4gICAgICAgIH1cbiAgICByZXR1cm4gdDtcbn07XG5pbXBvcnQgeyBqc3ggYXMgX2pzeCB9IGZyb20gXCJyZWFjdC9qc3gtcnVudGltZVwiO1xuaW1wb3J0IHsgbWVtbyB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB1c2VEZWJvdW5jZWRDYWxsYmFjayBmcm9tICdAMW1vbmV5L2hvb2tzL3VzZURlYm91bmNlZENhbGxiYWNrJztcbmltcG9ydCB7IFByb0Zvcm1JdGVtIH0gZnJvbSAnLi4vUHJvRm9ybUl0ZW0nO1xuaW1wb3J0IHsgUHJvRm9ybURlcGVuZGVuY3kgfSBmcm9tICcuLi9Qcm9Gb3JtRGVwZW5kZW5jeSc7XG5pbXBvcnQgeyB1c2VQcm9Gb3JtU3RhYmxlIH0gZnJvbSAnLi4vY29udGV4dCc7XG5pbXBvcnQgeyB1c2VGaWVsZFJlcXVlc3QgfSBmcm9tICcuLi9ob29rcy91c2VGaWVsZFJlcXVlc3QnO1xuaW1wb3J0IHsgcmVzb2x2ZVdpZHRoLCB2YWx1ZUVudW1Ub09wdGlvbnMgfSBmcm9tICcuLi91dGlscyc7XG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIGNyZWF0ZVByb0Zvcm1GaWVsZCDigJQgZmFjdG9yeSB0aGF0IHByb2R1Y2VzIGEgUHJvRm9ybS1hd2FyZSBmaWVsZCBjb21wb25lbnRcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVByb0Zvcm1GaWVsZChjb25maWcpIHtcbiAgICBjb25zdCB7IGNvbXBvbmVudDogQ29tcG9uZW50LCB2YWx1ZVByb3BOYW1lLCB2YWx1ZVR5cGU6IGRlZmF1bHRWYWx1ZVR5cGUsIG1hcFByb3BzLCByZW5kZXJSZWFkb25seSwgfSA9IGNvbmZpZztcbiAgICAvLyBNZW1vIGJvdW5kYXJ5IGFyb3VuZCB0aGUgd3JhcHBlZCBjb250cm9sOiBjb21iaW5lZCB3aXRoIHRoZSBzdGFibGVcbiAgICAvLyBpbmplY3RlZCBoYW5kbGVycyBmcm9tIHVzZUZvcm1JdGVtLCBmaWVsZHMgd2hvc2UgdmFsdWUgZGlkbid0IGNoYW5nZSBjYW5cbiAgICAvLyBiYWlsIG91dCB3aGlsZSBhbm90aGVyIGZpZWxkIGluIHRoZSBmb3JtIGlzIHR5cGluZy4gZGlzcGxheU5hbWUgbXVzdCBiZVxuICAgIC8vIGNhcnJpZWQgb3ZlciDigJQgaW5qZWN0RmllbGQgdXNlcyBpdCB0byByZWNvZ25pemUgZm9ybSBjb250cm9scy5cbiAgICBjb25zdCBNZW1vaXplZENvbXBvbmVudCA9IG1lbW8oQ29tcG9uZW50KTtcbiAgICBNZW1vaXplZENvbXBvbmVudC5kaXNwbGF5TmFtZSA9XG4gICAgICAgIENvbXBvbmVudC5kaXNwbGF5TmFtZSB8fCBDb21wb25lbnQubmFtZTtcbiAgICAvLyBJbm5lciBjb21wb25lbnQg4oCUIGhhbmRsZXMgbW9kZSwgcmVxdWVzdCwgdmFsdWVFbnVtLCBkZWJvdW5jZSwgcmVuZGVyXG4gICAgY29uc3QgSW5uZXJGaWVsZCA9IChwcm9wcykgPT4ge1xuICAgICAgICB2YXIgX2EsIF9iO1xuICAgICAgICBjb25zdCBfYyA9IHByb3BzLCB7IG5hbWUsIGxhYmVsLCBkZXNjcmlwdGlvbiwgcnVsZXMsIHJlcXVpcmVkLCBmZWVkYmFjaywgdmFsaWRhdGVTdGF0dXMsIGNvbG9uLCByZWFkb25seSwgbW9kZTogbW9kZVByb3AsIGhpZGRlbiwgY29sUHJvcHMsIGZpZWxkUHJvcHMsIHBsYWNlaG9sZGVyLCBkaXNhYmxlZCwgd2lkdGgsIHRyYW5zZm9ybSwgY29udmVydFZhbHVlLCBcbiAgICAgICAgLy8gRmllbGQtbGV2ZWwgZmVhdHVyZXNcbiAgICAgICAgZGVwZW5kZW5jaWVzOiBfZGVwcywgcmVxdWVzdCwgcGFyYW1zLCB2YWx1ZUVudW0sIGRlYm91bmNlVGltZSwgdmFsaWRhdGVEZWJvdW5jZSwgdmFsdWVUeXBlLCBkZXBlbmRlbmNpZXNWYWx1ZXMgfSA9IF9jLCByZXN0ID0gX19yZXN0KF9jLCBbXCJuYW1lXCIsIFwibGFiZWxcIiwgXCJkZXNjcmlwdGlvblwiLCBcInJ1bGVzXCIsIFwicmVxdWlyZWRcIiwgXCJmZWVkYmFja1wiLCBcInZhbGlkYXRlU3RhdHVzXCIsIFwiY29sb25cIiwgXCJyZWFkb25seVwiLCBcIm1vZGVcIiwgXCJoaWRkZW5cIiwgXCJjb2xQcm9wc1wiLCBcImZpZWxkUHJvcHNcIiwgXCJwbGFjZWhvbGRlclwiLCBcImRpc2FibGVkXCIsIFwid2lkdGhcIiwgXCJ0cmFuc2Zvcm1cIiwgXCJjb252ZXJ0VmFsdWVcIiwgXCJkZXBlbmRlbmNpZXNcIiwgXCJyZXF1ZXN0XCIsIFwicGFyYW1zXCIsIFwidmFsdWVFbnVtXCIsIFwiZGVib3VuY2VUaW1lXCIsIFwidmFsaWRhdGVEZWJvdW5jZVwiLCBcInZhbHVlVHlwZVwiLCBcImRlcGVuZGVuY2llc1ZhbHVlc1wiXSk7XG4gICAgICAgIC8vIE1vZGUgcmVzb2x1dGlvbjogZXhwbGljaXQgbW9kZSA+IGxlZ2FjeSByZWFkb25seSA+IGN0eC5tb2RlIChQcm9Gb3JtSXRlbSlcbiAgICAgICAgY29uc3QgcmVzb2x2ZWRNb2RlID0gbW9kZVByb3AgIT09IG51bGwgJiYgbW9kZVByb3AgIT09IHZvaWQgMCA/IG1vZGVQcm9wIDogKHJlYWRvbmx5ICE9PSB1bmRlZmluZWQgPyAocmVhZG9ubHkgPyAncmVhZCcgOiAnZWRpdCcpIDogdW5kZWZpbmVkKTtcbiAgICAgICAgLy8gRm9ybS1sZXZlbCBmaWVsZFByb3BzIChsb3dlc3QgcHJpb3JpdHkgYWZ0ZXIgbWFwUHJvcHMgZGVmYXVsdHMpLlxuICAgICAgICAvLyBTdGFibGUgc2xpY2Ugb25seSDigJQgdGhlIGZpZWxkIHNoZWxsIG11c3QgTk9UIHJlLXJlbmRlciBwZXIga2V5c3Ryb2tlO1xuICAgICAgICAvLyB2YWx1ZS9lcnJvciByZWFjdGl2aXR5IGxpdmVzIGluc2lkZSBQcm9Gb3JtSXRlbS5cbiAgICAgICAgY29uc3QgeyBmaWVsZFByb3BzOiBjb250ZXh0RmllbGRQcm9wcyB9ID0gdXNlUHJvRm9ybVN0YWJsZSgpO1xuICAgICAgICAvLyDilIDilIAgRmllbGQtbGV2ZWwgcmVxdWVzdCDilIDilIBcbiAgICAgICAgY29uc3QgbWVyZ2VkUmVxdWVzdFBhcmFtcyA9IGRlcGVuZGVuY2llc1ZhbHVlc1xuICAgICAgICAgICAgPyBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIHBhcmFtcyksIGRlcGVuZGVuY2llc1ZhbHVlcykgOiBwYXJhbXM7XG4gICAgICAgIGNvbnN0IFtyZXF1ZXN0TG9hZGluZywgcmVxdWVzdE9wdGlvbnNdID0gdXNlRmllbGRSZXF1ZXN0KHJlcXVlc3QsIG1lcmdlZFJlcXVlc3RQYXJhbXMpO1xuICAgICAgICAvLyBCdWlsZCB0aGUgZmllbGQgY2hpbGRcbiAgICAgICAgY29uc3QgbWFwcGVkID0gbWFwUHJvcHMgPyBtYXBQcm9wcyhyZXN0KSA6IHt9O1xuICAgICAgICAvLyDilIDilIAgRGVib3VuY2Ugb25DaGFuZ2Ug4pSA4pSAXG4gICAgICAgIC8vIFRoZSBlZmZlY3RpdmUgb25DaGFuZ2UgaXMgd2hhdGV2ZXIgZW5kcyB1cCBvbiB0aGUgZmllbGQgKGZpZWxkUHJvcHMgd2luc1xuICAgICAgICAvLyBvdmVyIG1hcHBlZCwgbWF0Y2hpbmcgdGhlIHNwcmVhZCBvcmRlciBiZWxvdykuIHVzZURlYm91bmNlZENhbGxiYWNrIHJlYWRzXG4gICAgICAgIC8vIHRoZSBsYXRlc3QgY2FsbGJhY2sgaW50ZXJuYWxseSwgc28gdGhlIHdyYXBwZXIgbmV2ZXIgZ29lcyBzdGFsZSBhbmQgdGhlXG4gICAgICAgIC8vIHBlbmRpbmcgY2FsbCBpcyBhdXRvLWNhbmNlbGxlZCBvbiB1bm1vdW50LlxuICAgICAgICBjb25zdCB1c2VyT25DaGFuZ2UgPSAoKF9iID0gKF9hID0gZmllbGRQcm9wcyA9PT0gbnVsbCB8fCBmaWVsZFByb3BzID09PSB2b2lkIDAgPyB2b2lkIDAgOiBmaWVsZFByb3BzLm9uQ2hhbmdlKSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiBjb250ZXh0RmllbGRQcm9wcyA9PT0gbnVsbCB8fCBjb250ZXh0RmllbGRQcm9wcyA9PT0gdm9pZCAwID8gdm9pZCAwIDogY29udGV4dEZpZWxkUHJvcHMub25DaGFuZ2UpICE9PSBudWxsICYmIF9iICE9PSB2b2lkIDAgPyBfYiA6IG1hcHBlZCA9PT0gbnVsbCB8fCBtYXBwZWQgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG1hcHBlZC5vbkNoYW5nZSk7XG4gICAgICAgIGNvbnN0IHsgcnVuOiBkZWJvdW5jZWRPbkNoYW5nZSB9ID0gdXNlRGVib3VuY2VkQ2FsbGJhY2soKC4uLmFyZ3MpID0+IHVzZXJPbkNoYW5nZSA9PT0gbnVsbCB8fCB1c2VyT25DaGFuZ2UgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHVzZXJPbkNoYW5nZSguLi5hcmdzKSwgZGVib3VuY2VUaW1lKTtcbiAgICAgICAgY29uc3Qgd2lkdGhTdHlsZSA9IHdpZHRoICE9PSB1bmRlZmluZWQgPyB7IHdpZHRoOiByZXNvbHZlV2lkdGgod2lkdGgpIH0gOiB1bmRlZmluZWQ7XG4gICAgICAgIGNvbnN0IGZpZWxkU3R5bGUgPSBmaWVsZFByb3BzID09PSBudWxsIHx8IGZpZWxkUHJvcHMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGZpZWxkUHJvcHMuc3R5bGU7XG4gICAgICAgIGNvbnN0IG1lcmdlZFN0eWxlID0gd2lkdGhTdHlsZVxuICAgICAgICAgICAgPyBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIChmaWVsZFN0eWxlIHx8IHt9KSksIHdpZHRoU3R5bGUpIDogZmllbGRTdHlsZTtcbiAgICAgICAgLy8gTWVyZ2UgdmFsdWVFbnVtICsgcmVxdWVzdCBvcHRpb25zIGludG8gZmllbGRQcm9wcy5vcHRpb25zXG4gICAgICAgIGxldCBtZXJnZWRPcHRpb25zID0gZmllbGRQcm9wcyA9PT0gbnVsbCB8fCBmaWVsZFByb3BzID09PSB2b2lkIDAgPyB2b2lkIDAgOiBmaWVsZFByb3BzLm9wdGlvbnM7XG4gICAgICAgIGlmICh2YWx1ZUVudW0pIHtcbiAgICAgICAgICAgIG1lcmdlZE9wdGlvbnMgPSB2YWx1ZUVudW1Ub09wdGlvbnModmFsdWVFbnVtKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAocmVxdWVzdE9wdGlvbnMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgbWVyZ2VkT3B0aW9ucyA9IHJlcXVlc3RPcHRpb25zO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGNvbXBvbmVudFByb3BzID0gT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCBtYXBwZWQpLCAoY29udGV4dEZpZWxkUHJvcHMgfHwge30pKSwgKGZpZWxkUHJvcHMgfHwge30pKSwgKG1lcmdlZE9wdGlvbnMgIT09IHVuZGVmaW5lZCA/IHsgb3B0aW9uczogbWVyZ2VkT3B0aW9ucyB9IDoge30pKSwgKHJlcXVlc3RMb2FkaW5nID8geyBsb2FkaW5nOiB0cnVlIH0gOiB7fSkpLCAocGxhY2Vob2xkZXIgIT09IHVuZGVmaW5lZCA/IHsgcGxhY2Vob2xkZXIgfSA6IHt9KSksIChkaXNhYmxlZCAhPT0gdW5kZWZpbmVkID8geyBkaXNhYmxlZCB9IDoge30pKSwgKG1lcmdlZFN0eWxlID8geyBzdHlsZTogbWVyZ2VkU3R5bGUgfSA6IHt9KSk7XG4gICAgICAgIC8vIFdpcmUgZGVib3VuY2UuIFRoZSB3cmFwcGVyIGZvcndhcmRzIHRvIHRoZSBsYXRlc3QgdXNlciBvbkNoYW5nZSB2aWFcbiAgICAgICAgLy8gYG9uQ2hhbmdlTGF0ZXN0YCwgc28gbm8gbmVlZCB0byBzdGFzaCBpdCBvbiBhIHJlZiBoZXJlLlxuICAgICAgICBpZiAoZGVib3VuY2VUaW1lICYmIGRlYm91bmNlVGltZSA+IDApIHtcbiAgICAgICAgICAgIGNvbXBvbmVudFByb3BzLm9uQ2hhbmdlID0gZGVib3VuY2VkT25DaGFuZ2U7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIChfanN4KFByb0Zvcm1JdGVtLCB7IG5hbWU6IG5hbWUsIGxhYmVsOiBsYWJlbCwgZGVzY3JpcHRpb246IGRlc2NyaXB0aW9uLCBydWxlczogcnVsZXMsIHJlcXVpcmVkOiByZXF1aXJlZCwgZmVlZGJhY2s6IGZlZWRiYWNrLCB2YWxpZGF0ZVN0YXR1czogdmFsaWRhdGVTdGF0dXMsIGNvbG9uOiBjb2xvbiwgaGlkZGVuOiBoaWRkZW4sIG1vZGU6IHJlc29sdmVkTW9kZSwgY29sUHJvcHM6IGNvbFByb3BzLCB0cmFuc2Zvcm06IHRyYW5zZm9ybSwgY29udmVydFZhbHVlOiBjb252ZXJ0VmFsdWUsIHZhbHVlUHJvcE5hbWU6IHZhbHVlUHJvcE5hbWUsIHZhbGlkYXRlRGVib3VuY2U6IHZhbGlkYXRlRGVib3VuY2UsIHZhbHVlVHlwZTogdmFsdWVUeXBlICE9PSBudWxsICYmIHZhbHVlVHlwZSAhPT0gdm9pZCAwID8gdmFsdWVUeXBlIDogZGVmYXVsdFZhbHVlVHlwZSwgcmVhZG9ubHlSZW5kZXI6IHJlbmRlclJlYWRvbmx5ID8gKHZhbHVlKSA9PiByZW5kZXJSZWFkb25seSh2YWx1ZSkgOiB1bmRlZmluZWQsIGNoaWxkcmVuOiBfanN4KE1lbW9pemVkQ29tcG9uZW50LCBPYmplY3QuYXNzaWduKHt9LCBjb21wb25lbnRQcm9wcykpIH0pKTtcbiAgICB9O1xuICAgIC8vIE91dGVyIGNvbXBvbmVudCDigJQgaGFuZGxlcyBhdXRvLXdyYXBwaW5nIHdpdGggUHJvRm9ybURlcGVuZGVuY3lcbiAgICBjb25zdCBQcm9Gb3JtRmllbGRDb21wb25lbnQgPSAocHJvcHMpID0+IHtcbiAgICAgICAgY29uc3QgeyBkZXBlbmRlbmNpZXMgfSA9IHByb3BzO1xuICAgICAgICBpZiAoZGVwZW5kZW5jaWVzICYmIGRlcGVuZGVuY2llcy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICByZXR1cm4gKF9qc3goUHJvRm9ybURlcGVuZGVuY3ksIHsgbmFtZTogZGVwZW5kZW5jaWVzLCBjaGlsZHJlbjogKGRlcFZhbHVlcykgPT4gKF9qc3goSW5uZXJGaWVsZCwgT2JqZWN0LmFzc2lnbih7fSwgcHJvcHMsIHsgZGVwZW5kZW5jaWVzVmFsdWVzOiBkZXBWYWx1ZXMgfSkpKSB9KSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIF9qc3goSW5uZXJGaWVsZCwgT2JqZWN0LmFzc2lnbih7fSwgcHJvcHMpKTtcbiAgICB9O1xuICAgIGNvbnN0IE1lbW9pemVkRmllbGQgPSBtZW1vKFByb0Zvcm1GaWVsZENvbXBvbmVudCk7XG4gICAgcmV0dXJuIE1lbW9pemVkRmllbGQ7XG59XG5leHBvcnQgZGVmYXVsdCBjcmVhdGVQcm9Gb3JtRmllbGQ7IixudWxsXSwic291cmNlUm9vdCI6Ii4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYyJ9
|
|
171
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvUHJvRm9ybS9maWVsZHMvY3JlYXRlUHJvRm9ybUZpZWxkLmpzIiwiY29tcG9uZW50cy9Qcm9Gb3JtL3NyYy9jb21wb25lbnRzL1Byb0Zvcm0vZmllbGRzL2NyZWF0ZVByb0Zvcm1GaWVsZC50c3giXSwibmFtZXMiOlsiX19yZXN0IiwicyIsImUiLCJ0IiwicCIsIk9iamVjdCIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImluZGV4T2YiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJpIiwibGVuZ3RoIiwicHJvcGVydHlJc0VudW1lcmFibGUiLCJqc3giLCJfanN4IiwibWVtbyIsInVzZURlYm91bmNlZENhbGxiYWNrIiwiUHJvRm9ybUl0ZW0iLCJQcm9Gb3JtRGVwZW5kZW5jeSIsInVzZVByb0Zvcm1TdGFibGUiLCJ1c2VGaWVsZFJlcXVlc3QiLCJyZXNvbHZlV2lkdGgiLCJ2YWx1ZUVudW1Ub09wdGlvbnMiLCJjcmVhdGVQcm9Gb3JtRmllbGQiLCJjb25maWciLCJDb21wb25lbnQiLCJjb21wb25lbnQiLCJ2YWx1ZVByb3BOYW1lIiwiZGVmYXVsdFZhbHVlVHlwZSIsInZhbHVlVHlwZSIsIm1hcFByb3BzIiwicmVuZGVyUmVhZG9ubHkiLCJwb3B1cENvbnRhaW5lclByb3AiLCJNZW1vaXplZENvbXBvbmVudCIsImRpc3BsYXlOYW1lIiwibmFtZSIsIklubmVyRmllbGQiLCJwcm9wcyIsIl9hIiwiX2IiLCJfYyIsImxhYmVsIiwiZGVzY3JpcHRpb24iLCJydWxlcyIsInJlcXVpcmVkIiwiZmVlZGJhY2siLCJ2YWxpZGF0ZVN0YXR1cyIsImNvbG9uIiwicmVhZG9ubHkiLCJtb2RlUHJvcCIsIm1vZGUiLCJoaWRkZW4iLCJjb2xQcm9wcyIsImZpZWxkUHJvcHMiLCJwbGFjZWhvbGRlciIsImRpc2FibGVkIiwid2lkdGgiLCJ0cmFuc2Zvcm0iLCJjb252ZXJ0VmFsdWUiLCJfZGVwcyIsImRlcGVuZGVuY2llcyIsInJlcXVlc3QiLCJwYXJhbXMiLCJ2YWx1ZUVudW0iLCJkZWJvdW5jZVRpbWUiLCJ2YWxpZGF0ZURlYm91bmNlIiwiZGVwZW5kZW5jaWVzVmFsdWVzIiwicmVzdCIsInJlc29sdmVkTW9kZSIsInVuZGVmaW5lZCIsIl91c2VQcm9Gb3JtU3RhYmxlIiwiY29udGV4dEZpZWxkUHJvcHMiLCJmb3JtRGlzYWJsZWQiLCJmb3JtQ29tcG9uZW50VHlwZSIsIm92ZXJsYXlDb250YWluZWQiLCJtZXJnZWRSZXF1ZXN0UGFyYW1zIiwiYXNzaWduIiwiX3VzZUZpZWxkUmVxdWVzdCIsIl91c2VGaWVsZFJlcXVlc3QyIiwiX3NsaWNlZFRvQXJyYXkiLCJyZXF1ZXN0TG9hZGluZyIsInJlcXVlc3RPcHRpb25zIiwibWFwcGVkIiwidXNlck9uQ2hhbmdlIiwib25DaGFuZ2UiLCJfdXNlRGVib3VuY2VkQ2FsbGJhY2siLCJhcHBseSIsImFyZ3VtZW50cyIsImRlYm91bmNlZE9uQ2hhbmdlIiwicnVuIiwid2lkdGhTdHlsZSIsImZpZWxkU3R5bGUiLCJzdHlsZSIsIm1lcmdlZFN0eWxlIiwibWVyZ2VkT3B0aW9ucyIsIm9wdGlvbnMiLCJjb21wb25lbnRQcm9wcyIsIl9kZWZpbmVQcm9wZXJ0eSIsImxvYWRpbmciLCJyZWFkb25seVJlbmRlciIsInZhbHVlIiwiY2hpbGRyZW4iLCJQcm9Gb3JtRmllbGRDb21wb25lbnQiLCJkZXBWYWx1ZXMiLCJNZW1vaXplZEZpZWxkIl0sIm1hcHBpbmdzIjoiOztBQUFBLElBQUlBLE1BQU0sR0FBSSxJQUFJLElBQUksSUFBSSxDQUFDQSxNQUFNLElBQUssVUFBVUMsQ0FBQyxFQUFFQyxDQUFDLEVBQUU7RUFDbEQsSUFBSUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztFQUNWLEtBQUssSUFBSUMsQ0FBQyxJQUFJSCxDQUFDLEVBQUUsSUFBSUksTUFBTSxDQUFDQyxTQUFTLENBQUNDLGNBQWMsQ0FBQ0MsSUFBSSxDQUFDUCxDQUFDLEVBQUVHLENBQUMsQ0FBQyxJQUFJRixDQUFDLENBQUNPLE9BQU8s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Q0FBQSxDQUM3QjtFQUVsQixDQUFDO0VBRUQ7RUFDQSxJQUFNTSxxQkFBcUIsR0FBc0MsU0FBM0RBLHFCQUFxQkEsQ0FBdUNqRSxLQUFLLEVBQUk7SUFDekUsSUFBUXVCLFlBQVksR0FBS3ZCLEtBQUssQ0FBdEJ1QixZQUFZO0lBRXBCLElBQUlBLFlBQVksSUFBSUEsWUFBWSxDQUFDakQsTUFBTSxHQUFHLENBQUMsRUFBRTtNQUMzQyxPQUNFRyxJQUFBLENBQUNJLGlCQUFpQixFQUFBO1FBQUNpQixJQUFJLEVBQUV5QixZQUFZO1FBQUF5QyxRQUFBLEVBQ2xDLFNBRGtDQSxRQUFBQSxDQUNqQ0UsU0FBUztVQUFBLE9BQ1R6RixJQUFBLENBQUNzQixVQUFVLEVBQUFoQyxNQUFBLENBQUF3RSxNQUFBLENBQUEsQ0FBQSxDQUFBLEVBQUt2QyxLQUFLLEVBQUE7WUFBRTZCLGtCQUFrQixFQUFFcUM7VUFBUyxDQUFBLENBQUEsQ0FBSTtRQUFBO01BQ3pELENBQUEsQ0FDaUI7SUFFeEI7SUFFQSxPQUFPekYsSUFBQSxDQUFDc0IsVUFBVSxFQUFBaEMsTUFBQSxDQUFBd0UsTUFBQSxDQUFBLENBQUEsQ0FBQSxFQUFLdkMsS0FBSyxDQUFBLENBQUk7RUFDbEMsQ0FBQztFQUVELElBQU1tRSxhQUFhLGdCQUFHekYsSUFBSSxDQUFDdUYscUJBQXFCLENBQUM7RUFDakQsT0FBT0UsYUFBYTtBQUN0QjtBQUVBLGVBQWVqRixrQkFBa0IiLCJmaWxlIjoiY29tcG9uZW50cy9Qcm9Gb3JtL2ZpZWxkcy9jcmVhdGVQcm9Gb3JtRmllbGQuanMiLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgX19yZXN0ID0gKHRoaXMgJiYgdGhpcy5fX3Jlc3QpIHx8IGZ1bmN0aW9uIChzLCBlKSB7XG4gICAgdmFyIHQgPSB7fTtcbiAgICBmb3IgKHZhciBwIGluIHMpIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocywgcCkgJiYgZS5pbmRleE9mKHApIDwgMClcbiAgICAgICAgdFtwXSA9IHNbcF07XG4gICAgaWYgKHMgIT0gbnVsbCAmJiB0eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyA9PT0gXCJmdW5jdGlvblwiKVxuICAgICAgICBmb3IgKHZhciBpID0gMCwgcCA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMocyk7IGkgPCBwLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBpZiAoZS5pbmRleE9mKHBbaV0pIDwgMCAmJiBPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwocywgcFtpXSkpXG4gICAgICAgICAgICAgICAgdFtwW2ldXSA9IHNbcFtpXV07XG4gICAgICAgIH1cbiAgICByZXR1cm4gdDtcbn07XG5pbXBvcnQgeyBqc3ggYXMgX2pzeCB9IGZyb20gXCJyZWFjdC9qc3gtcnVudGltZVwiO1xuaW1wb3J0IHsgbWVtbyB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB1c2VEZWJvdW5jZWRDYWxsYmFjayBmcm9tICdAMW1vbmV5L2hvb2tzL3VzZURlYm91bmNlZENhbGxiYWNrJztcbmltcG9ydCB7IFByb0Zvcm1JdGVtIH0gZnJvbSAnLi4vUHJvRm9ybUl0ZW0nO1xuaW1wb3J0IHsgUHJvRm9ybURlcGVuZGVuY3kgfSBmcm9tICcuLi9Qcm9Gb3JtRGVwZW5kZW5jeSc7XG5pbXBvcnQgeyB1c2VQcm9Gb3JtU3RhYmxlIH0gZnJvbSAnLi4vY29udGV4dCc7XG5pbXBvcnQgeyB1c2VGaWVsZFJlcXVlc3QgfSBmcm9tICcuLi9ob29rcy91c2VGaWVsZFJlcXVlc3QnO1xuaW1wb3J0IHsgcmVzb2x2ZVdpZHRoLCB2YWx1ZUVudW1Ub09wdGlvbnMgfSBmcm9tICcuLi91dGlscyc7XG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIGNyZWF0ZVByb0Zvcm1GaWVsZCDigJQgZmFjdG9yeSB0aGF0IHByb2R1Y2VzIGEgUHJvRm9ybS1hd2FyZSBmaWVsZCBjb21wb25lbnRcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVByb0Zvcm1GaWVsZChjb25maWcpIHtcbiAgICBjb25zdCB7IGNvbXBvbmVudDogQ29tcG9uZW50LCB2YWx1ZVByb3BOYW1lLCB2YWx1ZVR5cGU6IGRlZmF1bHRWYWx1ZVR5cGUsIG1hcFByb3BzLCByZW5kZXJSZWFkb25seSwgcG9wdXBDb250YWluZXJQcm9wLCB9ID0gY29uZmlnO1xuICAgIC8vIE1lbW8gYm91bmRhcnkgYXJvdW5kIHRoZSB3cmFwcGVkIGNvbnRyb2w6IGNvbWJpbmVkIHdpdGggdGhlIHN0YWJsZVxuICAgIC8vIGluamVjdGVkIGhhbmRsZXJzIGZyb20gdXNlRm9ybUl0ZW0sIGZpZWxkcyB3aG9zZSB2YWx1ZSBkaWRuJ3QgY2hhbmdlIGNhblxuICAgIC8vIGJhaWwgb3V0IHdoaWxlIGFub3RoZXIgZmllbGQgaW4gdGhlIGZvcm0gaXMgdHlwaW5nLiBkaXNwbGF5TmFtZSBtdXN0IGJlXG4gICAgLy8gY2FycmllZCBvdmVyIOKAlCBpbmplY3RGaWVsZCB1c2VzIGl0IHRvIHJlY29nbml6ZSBmb3JtIGNvbnRyb2xzLlxuICAgIGNvbnN0IE1lbW9pemVkQ29tcG9uZW50ID0gbWVtbyhDb21wb25lbnQpO1xuICAgIE1lbW9pemVkQ29tcG9uZW50LmRpc3BsYXlOYW1lID1cbiAgICAgICAgQ29tcG9uZW50LmRpc3BsYXlOYW1lIHx8IENvbXBvbmVudC5uYW1lO1xuICAgIC8vIElubmVyIGNvbXBvbmVudCDigJQgaGFuZGxlcyBtb2RlLCByZXF1ZXN0LCB2YWx1ZUVudW0sIGRlYm91bmNlLCByZW5kZXJcbiAgICBjb25zdCBJbm5lckZpZWxkID0gKHByb3BzKSA9PiB7XG4gICAgICAgIHZhciBfYSwgX2I7XG4gICAgICAgIGNvbnN0IF9jID0gcHJvcHMsIHsgbmFtZSwgbGFiZWwsIGRlc2NyaXB0aW9uLCBydWxlcywgcmVxdWlyZWQsIGZlZWRiYWNrLCB2YWxpZGF0ZVN0YXR1cywgY29sb24sIHJlYWRvbmx5LCBtb2RlOiBtb2RlUHJvcCwgaGlkZGVuLCBjb2xQcm9wcywgZmllbGRQcm9wcywgcGxhY2Vob2xkZXIsIGRpc2FibGVkLCB3aWR0aCwgdHJhbnNmb3JtLCBjb252ZXJ0VmFsdWUsIFxuICAgICAgICAvLyBGaWVsZC1sZXZlbCBmZWF0dXJlc1xuICAgICAgICBkZXBlbmRlbmNpZXM6IF9kZXBzLCByZXF1ZXN0LCBwYXJhbXMsIHZhbHVlRW51bSwgZGVib3VuY2VUaW1lLCB2YWxpZGF0ZURlYm91bmNlLCB2YWx1ZVR5cGUsIGRlcGVuZGVuY2llc1ZhbHVlcyB9ID0gX2MsIHJlc3QgPSBfX3Jlc3QoX2MsIFtcIm5hbWVcIiwgXCJsYWJlbFwiLCBcImRlc2NyaXB0aW9uXCIsIFwicnVsZXNcIiwgXCJyZXF1aXJlZFwiLCBcImZlZWRiYWNrXCIsIFwidmFsaWRhdGVTdGF0dXNcIiwgXCJjb2xvblwiLCBcInJlYWRvbmx5XCIsIFwibW9kZVwiLCBcImhpZGRlblwiLCBcImNvbFByb3BzXCIsIFwiZmllbGRQcm9wc1wiLCBcInBsYWNlaG9sZGVyXCIsIFwiZGlzYWJsZWRcIiwgXCJ3aWR0aFwiLCBcInRyYW5zZm9ybVwiLCBcImNvbnZlcnRWYWx1ZVwiLCBcImRlcGVuZGVuY2llc1wiLCBcInJlcXVlc3RcIiwgXCJwYXJhbXNcIiwgXCJ2YWx1ZUVudW1cIiwgXCJkZWJvdW5jZVRpbWVcIiwgXCJ2YWxpZGF0ZURlYm91bmNlXCIsIFwidmFsdWVUeXBlXCIsIFwiZGVwZW5kZW5jaWVzVmFsdWVzXCJdKTtcbiAgICAgICAgLy8gTW9kZSByZXNvbHV0aW9uOiBleHBsaWNpdCBtb2RlID4gbGVnYWN5IHJlYWRvbmx5ID4gY3R4Lm1vZGUgKFByb0Zvcm1JdGVtKVxuICAgICAgICBjb25zdCByZXNvbHZlZE1vZGUgPSBtb2RlUHJvcCAhPT0gbnVsbCAmJiBtb2RlUHJvcCAhPT0gdm9pZCAwID8gbW9kZVByb3AgOiAocmVhZG9ubHkgIT09IHVuZGVmaW5lZCA/IChyZWFkb25seSA/ICdyZWFkJyA6ICdlZGl0JykgOiB1bmRlZmluZWQpO1xuICAgICAgICAvLyBGb3JtLWxldmVsIGZpZWxkUHJvcHMgKGxvd2VzdCBwcmlvcml0eSBhZnRlciBtYXBQcm9wcyBkZWZhdWx0cykuXG4gICAgICAgIC8vIFN0YWJsZSBzbGljZSBvbmx5IOKAlCB0aGUgZmllbGQgc2hlbGwgbXVzdCBOT1QgcmUtcmVuZGVyIHBlciBrZXlzdHJva2U7XG4gICAgICAgIC8vIHZhbHVlL2Vycm9yIHJlYWN0aXZpdHkgbGl2ZXMgaW5zaWRlIFByb0Zvcm1JdGVtLlxuICAgICAgICBjb25zdCB7IGZpZWxkUHJvcHM6IGNvbnRleHRGaWVsZFByb3BzLCBkaXNhYmxlZDogZm9ybURpc2FibGVkLCBmb3JtQ29tcG9uZW50VHlwZSwgfSA9IHVzZVByb0Zvcm1TdGFibGUoKTtcbiAgICAgICAgLy8gT3ZlcmxheSBmaWVsZHMgaW5zaWRlIGEgRGlhbG9nL0RyYXdlciBmb3JtIG1vdW50IHRoZWlyIHBvcHVwIG5leHQgdG9cbiAgICAgICAgLy8gdGhlIHRyaWdnZXIgKCdzZWxmJykgaW5zdGVhZCBvZiBkb2N1bWVudC5ib2R5LCBzbyBpdCBzY3JvbGxzIGFuZFxuICAgICAgICAvLyBzdGFja3Mgd2l0aCB0aGUgb3ZlcmxheSBjb250YWluZXIuXG4gICAgICAgIGNvbnN0IG92ZXJsYXlDb250YWluZWQgPSBwb3B1cENvbnRhaW5lclByb3AgIT09IHVuZGVmaW5lZCAmJlxuICAgICAgICAgICAgKGZvcm1Db21wb25lbnRUeXBlID09PSAnRGlhbG9nRm9ybScgfHwgZm9ybUNvbXBvbmVudFR5cGUgPT09ICdEcmF3ZXJGb3JtJyk7XG4gICAgICAgIC8vIOKUgOKUgCBGaWVsZC1sZXZlbCByZXF1ZXN0IOKUgOKUgFxuICAgICAgICBjb25zdCBtZXJnZWRSZXF1ZXN0UGFyYW1zID0gZGVwZW5kZW5jaWVzVmFsdWVzXG4gICAgICAgICAgICA/IE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgcGFyYW1zKSwgZGVwZW5kZW5jaWVzVmFsdWVzKSA6IHBhcmFtcztcbiAgICAgICAgY29uc3QgW3JlcXVlc3RMb2FkaW5nLCByZXF1ZXN0T3B0aW9uc10gPSB1c2VGaWVsZFJlcXVlc3QocmVxdWVzdCwgbWVyZ2VkUmVxdWVzdFBhcmFtcyk7XG4gICAgICAgIC8vIEJ1aWxkIHRoZSBmaWVsZCBjaGlsZFxuICAgICAgICBjb25zdCBtYXBwZWQgPSBtYXBQcm9wcyA/IG1hcFByb3BzKHJlc3QpIDoge307XG4gICAgICAgIC8vIOKUgOKUgCBEZWJvdW5jZSBvbkNoYW5nZSDilIDilIBcbiAgICAgICAgLy8gVGhlIGVmZmVjdGl2ZSBvbkNoYW5nZSBpcyB3aGF0ZXZlciBlbmRzIHVwIG9uIHRoZSBmaWVsZCAoZmllbGRQcm9wcyB3aW5zXG4gICAgICAgIC8vIG92ZXIgbWFwcGVkLCBtYXRjaGluZyB0aGUgc3ByZWFkIG9yZGVyIGJlbG93KS4gdXNlRGVib3VuY2VkQ2FsbGJhY2sgcmVhZHNcbiAgICAgICAgLy8gdGhlIGxhdGVzdCBjYWxsYmFjayBpbnRlcm5hbGx5LCBzbyB0aGUgd3JhcHBlciBuZXZlciBnb2VzIHN0YWxlIGFuZCB0aGVcbiAgICAgICAgLy8gcGVuZGluZyBjYWxsIGlzIGF1dG8tY2FuY2VsbGVkIG9uIHVubW91bnQuXG4gICAgICAgIGNvbnN0IHVzZXJPbkNoYW5nZSA9ICgoX2IgPSAoX2EgPSBmaWVsZFByb3BzID09PSBudWxsIHx8IGZpZWxkUHJvcHMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGZpZWxkUHJvcHMub25DaGFuZ2UpICE9PSBudWxsICYmIF9hICE9PSB2b2lkIDAgPyBfYSA6IGNvbnRleHRGaWVsZFByb3BzID09PSBudWxsIHx8IGNvbnRleHRGaWVsZFByb3BzID09PSB2b2lkIDAgPyB2b2lkIDAgOiBjb250ZXh0RmllbGRQcm9wcy5vbkNoYW5nZSkgIT09IG51bGwgJiYgX2IgIT09IHZvaWQgMCA/IF9iIDogbWFwcGVkID09PSBudWxsIHx8IG1hcHBlZCA9PT0gdm9pZCAwID8gdm9pZCAwIDogbWFwcGVkLm9uQ2hhbmdlKTtcbiAgICAgICAgY29uc3QgeyBydW46IGRlYm91bmNlZE9uQ2hhbmdlIH0gPSB1c2VEZWJvdW5jZWRDYWxsYmFjaygoLi4uYXJncykgPT4gdXNlck9uQ2hhbmdlID09PSBudWxsIHx8IHVzZXJPbkNoYW5nZSA9PT0gdm9pZCAwID8gdm9pZCAwIDogdXNlck9uQ2hhbmdlKC4uLmFyZ3MpLCBkZWJvdW5jZVRpbWUpO1xuICAgICAgICBjb25zdCB3aWR0aFN0eWxlID0gd2lkdGggIT09IHVuZGVmaW5lZCA/IHsgd2lkdGg6IHJlc29sdmVXaWR0aCh3aWR0aCkgfSA6IHVuZGVmaW5lZDtcbiAgICAgICAgY29uc3QgZmllbGRTdHlsZSA9IGZpZWxkUHJvcHMgPT09IG51bGwgfHwgZmllbGRQcm9wcyA9PT0gdm9pZCAwID8gdm9pZCAwIDogZmllbGRQcm9wcy5zdHlsZTtcbiAgICAgICAgY29uc3QgbWVyZ2VkU3R5bGUgPSB3aWR0aFN0eWxlXG4gICAgICAgICAgICA/IE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgKGZpZWxkU3R5bGUgfHwge30pKSwgd2lkdGhTdHlsZSkgOiBmaWVsZFN0eWxlO1xuICAgICAgICAvLyBNZXJnZSB2YWx1ZUVudW0gKyByZXF1ZXN0IG9wdGlvbnMgaW50byBmaWVsZFByb3BzLm9wdGlvbnNcbiAgICAgICAgbGV0IG1lcmdlZE9wdGlvbnMgPSBmaWVsZFByb3BzID09PSBudWxsIHx8IGZpZWxkUHJvcHMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGZpZWxkUHJvcHMub3B0aW9ucztcbiAgICAgICAgaWYgKHZhbHVlRW51bSkge1xuICAgICAgICAgICAgbWVyZ2VkT3B0aW9ucyA9IHZhbHVlRW51bVRvT3B0aW9ucyh2YWx1ZUVudW0pO1xuICAgICAgICB9XG4gICAgICAgIGlmIChyZXF1ZXN0T3B0aW9ucy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICBtZXJnZWRPcHRpb25zID0gcmVxdWVzdE9wdGlvbnM7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgY29tcG9uZW50UHJvcHMgPSBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCBtYXBwZWQpLCAoZm9ybURpc2FibGVkID8geyBkaXNhYmxlZDogdHJ1ZSB9IDoge30pKSwgKG92ZXJsYXlDb250YWluZWQgPyB7IFtwb3B1cENvbnRhaW5lclByb3BdOiAnc2VsZicgfSA6IHt9KSksIChjb250ZXh0RmllbGRQcm9wcyB8fCB7fSkpLCAoZmllbGRQcm9wcyB8fCB7fSkpLCAobWVyZ2VkT3B0aW9ucyAhPT0gdW5kZWZpbmVkID8geyBvcHRpb25zOiBtZXJnZWRPcHRpb25zIH0gOiB7fSkpLCAocmVxdWVzdExvYWRpbmcgPyB7IGxvYWRpbmc6IHRydWUgfSA6IHt9KSksIChwbGFjZWhvbGRlciAhPT0gdW5kZWZpbmVkID8geyBwbGFjZWhvbGRlciB9IDoge30pKSwgKGRpc2FibGVkICE9PSB1bmRlZmluZWQgPyB7IGRpc2FibGVkIH0gOiB7fSkpLCAobWVyZ2VkU3R5bGUgPyB7IHN0eWxlOiBtZXJnZWRTdHlsZSB9IDoge30pKTtcbiAgICAgICAgLy8gV2lyZSBkZWJvdW5jZS4gVGhlIHdyYXBwZXIgZm9yd2FyZHMgdG8gdGhlIGxhdGVzdCB1c2VyIG9uQ2hhbmdlIHZpYVxuICAgICAgICAvLyBgb25DaGFuZ2VMYXRlc3RgLCBzbyBubyBuZWVkIHRvIHN0YXNoIGl0IG9uIGEgcmVmIGhlcmUuXG4gICAgICAgIGlmIChkZWJvdW5jZVRpbWUgJiYgZGVib3VuY2VUaW1lID4gMCkge1xuICAgICAgICAgICAgY29tcG9uZW50UHJvcHMub25DaGFuZ2UgPSBkZWJvdW5jZWRPbkNoYW5nZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gKF9qc3goUHJvRm9ybUl0ZW0sIHsgbmFtZTogbmFtZSwgbGFiZWw6IGxhYmVsLCBkZXNjcmlwdGlvbjogZGVzY3JpcHRpb24sIHJ1bGVzOiBydWxlcywgcmVxdWlyZWQ6IHJlcXVpcmVkLCBmZWVkYmFjazogZmVlZGJhY2ssIHZhbGlkYXRlU3RhdHVzOiB2YWxpZGF0ZVN0YXR1cywgY29sb246IGNvbG9uLCBoaWRkZW46IGhpZGRlbiwgbW9kZTogcmVzb2x2ZWRNb2RlLCBjb2xQcm9wczogY29sUHJvcHMsIHRyYW5zZm9ybTogdHJhbnNmb3JtLCBjb252ZXJ0VmFsdWU6IGNvbnZlcnRWYWx1ZSwgdmFsdWVQcm9wTmFtZTogdmFsdWVQcm9wTmFtZSwgdmFsaWRhdGVEZWJvdW5jZTogdmFsaWRhdGVEZWJvdW5jZSwgdmFsdWVUeXBlOiB2YWx1ZVR5cGUgIT09IG51bGwgJiYgdmFsdWVUeXBlICE9PSB2b2lkIDAgPyB2YWx1ZVR5cGUgOiBkZWZhdWx0VmFsdWVUeXBlLCByZWFkb25seVJlbmRlcjogcmVuZGVyUmVhZG9ubHkgPyAodmFsdWUpID0+IHJlbmRlclJlYWRvbmx5KHZhbHVlKSA6IHVuZGVmaW5lZCwgY2hpbGRyZW46IF9qc3goTWVtb2l6ZWRDb21wb25lbnQsIE9iamVjdC5hc3NpZ24oe30sIGNvbXBvbmVudFByb3BzKSkgfSkpO1xuICAgIH07XG4gICAgLy8gT3V0ZXIgY29tcG9uZW50IOKAlCBoYW5kbGVzIGF1dG8td3JhcHBpbmcgd2l0aCBQcm9Gb3JtRGVwZW5kZW5jeVxuICAgIGNvbnN0IFByb0Zvcm1GaWVsZENvbXBvbmVudCA9IChwcm9wcykgPT4ge1xuICAgICAgICBjb25zdCB7IGRlcGVuZGVuY2llcyB9ID0gcHJvcHM7XG4gICAgICAgIGlmIChkZXBlbmRlbmNpZXMgJiYgZGVwZW5kZW5jaWVzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIHJldHVybiAoX2pzeChQcm9Gb3JtRGVwZW5kZW5jeSwgeyBuYW1lOiBkZXBlbmRlbmNpZXMsIGNoaWxkcmVuOiAoZGVwVmFsdWVzKSA9PiAoX2pzeChJbm5lckZpZWxkLCBPYmplY3QuYXNzaWduKHt9LCBwcm9wcywgeyBkZXBlbmRlbmNpZXNWYWx1ZXM6IGRlcFZhbHVlcyB9KSkpIH0pKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gX2pzeChJbm5lckZpZWxkLCBPYmplY3QuYXNzaWduKHt9LCBwcm9wcykpO1xuICAgIH07XG4gICAgY29uc3QgTWVtb2l6ZWRGaWVsZCA9IG1lbW8oUHJvRm9ybUZpZWxkQ29tcG9uZW50KTtcbiAgICByZXR1cm4gTWVtb2l6ZWRGaWVsZDtcbn1cbmV4cG9ydCBkZWZhdWx0IGNyZWF0ZVByb0Zvcm1GaWVsZDsiLG51bGxdLCJzb3VyY2VSb290IjoiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjIn0=
|
|
@@ -2,6 +2,11 @@ import type { ProFormRequestOption } from '../interface';
|
|
|
2
2
|
/**
|
|
3
3
|
* Hook for async option fetching with param-based re-fetching.
|
|
4
4
|
* Returns [loading, options].
|
|
5
|
+
*
|
|
6
|
+
* Race-safe: each fetch takes a sequence number
|
|
7
|
+
* and aborts the previous in-flight request — a stale response that resolves
|
|
8
|
+
* after a newer request never overwrites the newest options, and only the
|
|
9
|
+
* newest request controls `loading`.
|
|
5
10
|
*/
|
|
6
|
-
export declare function useFieldRequest(request: ((params?: Record<string, unknown
|
|
11
|
+
export declare function useFieldRequest(request: ((params?: Record<string, unknown>, signal?: AbortSignal) => Promise<ProFormRequestOption[]>) | undefined, params: Record<string, unknown> | undefined): [boolean, ProFormRequestOption[]];
|
|
7
12
|
export default useFieldRequest;
|