@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,14 +1,15 @@
|
|
|
1
1
|
import _typeof from "@babel/runtime/helpers/esm/typeof";
|
|
2
2
|
import _toConsumableArray from "@babel/runtime/helpers/esm/toConsumableArray";
|
|
3
3
|
import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
|
|
4
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
4
|
+
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
5
5
|
import { memo, useEffect, useMemo, useRef } from 'react';
|
|
6
6
|
import useMemoizedFn from '@1money/hooks/useMemoizedFn';
|
|
7
7
|
import useSafeState from '@1money/hooks/useSafeState';
|
|
8
8
|
import { default as classnames } from '../../utils/classnames';
|
|
9
9
|
import { Button } from '../Button';
|
|
10
10
|
import { TypographyLabel, TypographyBody } from '../Typography';
|
|
11
|
-
import { FormListContext, useFormListContext,
|
|
11
|
+
import { FormListContext, useFormListContext, useProFormStable, useProFormStore } from './context';
|
|
12
|
+
import { useStoreSelector } from './core/formStore';
|
|
12
13
|
import { CSS_PREFIX, DEFAULT_TEXT, PROFORM_LIST_LABEL_SIZE, PROFORM_LIST_LABEL_COLOR } from './constants';
|
|
13
14
|
import { extractButtonProps, getNestedValue } from './utils';
|
|
14
15
|
var classes = classnames("".concat(CSS_PREFIX, "-list"));
|
|
@@ -16,6 +17,70 @@ var listKeyCounter = 0;
|
|
|
16
17
|
var generateKey = function generateKey() {
|
|
17
18
|
return "list_".concat(++listKeyCounter);
|
|
18
19
|
};
|
|
20
|
+
// Stable empty result for the no-value case — a fresh [] per selector run
|
|
21
|
+
// would never compare equal and loop the subscription.
|
|
22
|
+
var EMPTY_LIST = [];
|
|
23
|
+
// Row-level memo boundary: setNestedValue clones ONLY the edited row, so
|
|
24
|
+
// untouched rows keep their record identity and bail out here while a
|
|
25
|
+
// sibling row is being edited.
|
|
26
|
+
var ListRowActionsBase = function ListRowActionsBase(_ref) {
|
|
27
|
+
var index = _ref.index,
|
|
28
|
+
record = _ref.record,
|
|
29
|
+
canAdd = _ref.canAdd,
|
|
30
|
+
canRemove = _ref.canRemove,
|
|
31
|
+
copyIconProps = _ref.copyIconProps,
|
|
32
|
+
deleteIconProps = _ref.deleteIconProps,
|
|
33
|
+
action = _ref.action,
|
|
34
|
+
actionRender = _ref.actionRender,
|
|
35
|
+
itemRender = _ref.itemRender,
|
|
36
|
+
onCopy = _ref.onCopy,
|
|
37
|
+
onRemove = _ref.onRemove;
|
|
38
|
+
var copyBtnProps = extractButtonProps(copyIconProps);
|
|
39
|
+
var deleteBtnProps = extractButtonProps(deleteIconProps);
|
|
40
|
+
var defaultDom = {
|
|
41
|
+
copy: copyIconProps !== false ? _jsx(Button, Object.assign({
|
|
42
|
+
type: "button",
|
|
43
|
+
color: "secondary",
|
|
44
|
+
size: "small"
|
|
45
|
+
}, copyBtnProps.rest, {
|
|
46
|
+
onClick: function onClick() {
|
|
47
|
+
return onCopy(index);
|
|
48
|
+
},
|
|
49
|
+
disabled: !canAdd || copyBtnProps.disabled,
|
|
50
|
+
children: DEFAULT_TEXT.copy
|
|
51
|
+
}), "copy-".concat(index)) : null,
|
|
52
|
+
"delete": deleteIconProps !== false ? _jsx(Button, Object.assign({
|
|
53
|
+
type: "button",
|
|
54
|
+
color: "secondary",
|
|
55
|
+
size: "small"
|
|
56
|
+
}, deleteBtnProps.rest, {
|
|
57
|
+
onClick: function onClick() {
|
|
58
|
+
return onRemove(index);
|
|
59
|
+
},
|
|
60
|
+
disabled: !canRemove || deleteBtnProps.disabled,
|
|
61
|
+
children: DEFAULT_TEXT["delete"]
|
|
62
|
+
}), "delete-".concat(index)) : null
|
|
63
|
+
};
|
|
64
|
+
var renderedActions = actionRender ? actionRender({
|
|
65
|
+
index: index,
|
|
66
|
+
record: record
|
|
67
|
+
}, action, defaultDom) : [defaultDom.copy, defaultDom["delete"]].filter(Boolean);
|
|
68
|
+
var rowNode = _jsx("div", {
|
|
69
|
+
className: classes('row-actions'),
|
|
70
|
+
children: renderedActions
|
|
71
|
+
});
|
|
72
|
+
if (itemRender) {
|
|
73
|
+
return _jsx(_Fragment, {
|
|
74
|
+
children: itemRender({
|
|
75
|
+
listDom: rowNode,
|
|
76
|
+
action: action
|
|
77
|
+
})
|
|
78
|
+
});
|
|
79
|
+
}
|
|
80
|
+
return rowNode;
|
|
81
|
+
};
|
|
82
|
+
ListRowActionsBase.displayName = 'ProFormListRowActions';
|
|
83
|
+
var ListRowActions = /*#__PURE__*/memo(ListRowActionsBase);
|
|
19
84
|
var ProFormListBase = function ProFormListBase(props) {
|
|
20
85
|
var _a, _b;
|
|
21
86
|
var rawName = props.name,
|
|
@@ -37,19 +102,21 @@ var ProFormListBase = function ProFormListBase(props) {
|
|
|
37
102
|
// ── Nested list: prepend parent list name ──
|
|
38
103
|
var parentCtx = useFormListContext();
|
|
39
104
|
var fullName = parentCtx.listName ? "".concat(parentCtx.listName, ".").concat(rawName) : rawName;
|
|
40
|
-
var
|
|
41
|
-
|
|
42
|
-
|
|
105
|
+
var _useProFormStable = useProFormStable(),
|
|
106
|
+
setFieldValue = _useProFormStable.setFieldValue;
|
|
107
|
+
var store = useProFormStore();
|
|
43
108
|
var initialApplied = useRef(false);
|
|
44
109
|
var keysRef = useRef([]);
|
|
45
110
|
var _useSafeState = useSafeState(null),
|
|
46
111
|
_useSafeState2 = _slicedToArray(_useSafeState, 2),
|
|
47
112
|
listError = _useSafeState2[0],
|
|
48
113
|
setListError = _useSafeState2[1];
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
114
|
+
// Subscribe ONLY to this list's own value: typing elsewhere in the form
|
|
115
|
+
// leaves the array identity untouched and this component does not render.
|
|
116
|
+
var list = useStoreSelector(store, function (state) {
|
|
117
|
+
var raw = fullName.includes('.') ? getNestedValue(state.values, fullName) : state.values[fullName];
|
|
118
|
+
return Array.isArray(raw) ? raw : EMPTY_LIST;
|
|
119
|
+
});
|
|
53
120
|
// Sync keys with list length
|
|
54
121
|
while (keysRef.current.length < list.length) {
|
|
55
122
|
keysRef.current.push(generateKey());
|
|
@@ -144,62 +211,47 @@ var ProFormListBase = function ProFormListBase(props) {
|
|
|
144
211
|
getList: getList
|
|
145
212
|
};
|
|
146
213
|
}, [add, removeAt, move, copy, getList]);
|
|
214
|
+
// Per-key cache keeps each row's field object identity stable across list
|
|
215
|
+
// commits (e.g. typing in a sibling row), so memoized row content sees
|
|
216
|
+
// shallow-equal props and bails out.
|
|
217
|
+
var fieldObjCache = useRef(new Map());
|
|
147
218
|
var mappedFields = useMemo(function () {
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
219
|
+
var nextCache = new Map();
|
|
220
|
+
var fields = list.map(function (_item, index) {
|
|
221
|
+
var key = keysRef.current[index] || "fallback_".concat(index);
|
|
222
|
+
var fieldName = "".concat(fullName, ".").concat(index);
|
|
223
|
+
var cached = fieldObjCache.current.get(key);
|
|
224
|
+
var field = cached && cached.name === fieldName ? cached : {
|
|
225
|
+
name: fieldName,
|
|
226
|
+
key: key
|
|
152
227
|
};
|
|
228
|
+
nextCache.set(key, field);
|
|
229
|
+
return field;
|
|
153
230
|
});
|
|
231
|
+
fieldObjCache.current = nextCache;
|
|
232
|
+
return fields;
|
|
154
233
|
}, [list, fullName]);
|
|
155
|
-
//
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
color: "secondary",
|
|
177
|
-
size: "small"
|
|
178
|
-
}, deleteBtnProps.rest, {
|
|
179
|
-
onClick: function onClick() {
|
|
180
|
-
return removeAt(index);
|
|
181
|
-
},
|
|
182
|
-
disabled: !canRemove || deleteBtnProps.disabled,
|
|
183
|
-
children: DEFAULT_TEXT["delete"]
|
|
184
|
-
}), "delete-".concat(index)) : null
|
|
185
|
-
};
|
|
186
|
-
var renderedActions = actionRender ? actionRender({
|
|
187
|
-
index: index,
|
|
188
|
-
record: record
|
|
189
|
-
}, action, defaultDom) : [defaultDom.copy, defaultDom["delete"]].filter(Boolean);
|
|
190
|
-
var rowNode = _jsx("div", {
|
|
191
|
-
className: classes('row-actions'),
|
|
192
|
-
children: renderedActions
|
|
193
|
-
}, keysRef.current[index] || index);
|
|
194
|
-
if (itemRender) {
|
|
195
|
-
return itemRender({
|
|
196
|
-
listDom: rowNode,
|
|
197
|
-
action: action
|
|
198
|
-
});
|
|
199
|
-
}
|
|
200
|
-
return rowNode;
|
|
201
|
-
});
|
|
202
|
-
}, [list, copyIconProps, deleteIconProps, canAdd, canRemove, copy, removeAt, action, actionRender, itemRender]);
|
|
234
|
+
// Memoized so the row factory is re-invoked only when the list itself (or
|
|
235
|
+
// the consumer-provided children) changes — never for unrelated commits.
|
|
236
|
+
var listDom = useMemo(function () {
|
|
237
|
+
return typeof children === 'function' ? children(mappedFields, action) : children;
|
|
238
|
+
}, [children, mappedFields, action]);
|
|
239
|
+
// Action buttons per row — ListRowActions is the memo boundary
|
|
240
|
+
var actionRows = list.map(function (record, index) {
|
|
241
|
+
return _jsx(ListRowActions, {
|
|
242
|
+
index: index,
|
|
243
|
+
record: record,
|
|
244
|
+
canAdd: canAdd,
|
|
245
|
+
canRemove: canRemove,
|
|
246
|
+
copyIconProps: copyIconProps,
|
|
247
|
+
deleteIconProps: deleteIconProps,
|
|
248
|
+
action: action,
|
|
249
|
+
actionRender: actionRender,
|
|
250
|
+
itemRender: itemRender,
|
|
251
|
+
onCopy: copy,
|
|
252
|
+
onRemove: removeAt
|
|
253
|
+
}, keysRef.current[index] || index);
|
|
254
|
+
});
|
|
203
255
|
// Creator button
|
|
204
256
|
var hasCreator = creatorButtonProps !== false;
|
|
205
257
|
var creatorConfig = hasCreator && _typeof(creatorButtonProps) === 'object' ? creatorButtonProps : {};
|
|
@@ -250,4 +302,4 @@ var ProFormListBase = function ProFormListBase(props) {
|
|
|
250
302
|
ProFormListBase.displayName = 'ProFormList';
|
|
251
303
|
export var ProFormList = /*#__PURE__*/memo(ProFormListBase);
|
|
252
304
|
export default ProFormList;
|
|
253
|
-
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvUHJvRm9ybS9Qcm9Gb3JtTGlzdC5qcyIsImNvbXBvbmVudHMvc3JjL2NvbXBvbmVudHMvUHJvRm9ybS9Qcm9Gb3JtTGlzdC50c3giXSwibmFtZXMiOlsianN4IiwiX2pzeCIsImpzeHMiLCJfanN4cyIsIm1lbW8iLCJ1c2VFZmZlY3QiLCJ1c2VNZW1vIiwidXNlUmVmIiwidXNlTWVtb2l6ZWRGbiIsInVzZVNhZmVTdGF0ZSIsImRlZmF1bHQiLCJjbGFzc25hbWVzIiwiQnV0dG9uIiwiVHlwb2dyYXBoeUxhYmVsIiwiVHlwb2dyYXBoeUJvZHkiLCJGb3JtTGlzdENvbnRleHQiLCJ1c2VGb3JtTGlzdENvbnRleHQiLCJ1c2VQcm9Gb3JtQ29udGV4dCIsIkNTU19QUkVGSVgiLCJERUZBVUxUX1RFWFQiLCJQUk9GT1JNX0xJU1RfTEFCRUxfU0laRSIsIlBST0ZPUk1fTElTVF9MQUJFTF9DT0xPUiIsImV4dHJhY3RCdXR0b25Qcm9wcyIsImdldE5lc3RlZFZhbHVlIiwiY2xhc3NlcyIsImNvbmNhdCIsImxpc3RLZXlDb3VudGVyIiwiZ2VuZXJhdGVLZXkiLCJQcm9Gb3JtTGlzdEJhc2UiLCJwcm9wcyIsIl9hIiwiX2IiLCJyYXdOYW1lIiwibmFtZSIsImxhYmVsIiwibWluIiwibWF4IiwicmVxdWlyZWQiLCJfcHJvcHMkcmVxdWlyZWRNZXNzYWciLCJyZXF1aXJlZE1lc3NhZ2UiLCJpbml0aWFsVmFsdWUiLCJjb3B5SWNvblByb3BzIiwiZGVsZXRlSWNvblByb3BzIiwiY3JlYXRvckJ1dHRvblByb3BzIiwiaXRlbVJlbmRlciIsImFjdGlvblJlbmRlciIsImNoaWxkcmVuIiwib25BZnRlckFkZCIsIm9uQWZ0ZXJSZW1vdmUiLCJwYXJlbnRDdHgiLCJmdWxsTmFtZSIsImxpc3ROYW1lIiwiX3VzZVByb0Zvcm1Db250ZXh0IiwidmFsdWVzIiwic2V0RmllbGRWYWx1ZSIsImluaXRpYWxBcHBsaWVkIiwia2V5c1JlZiIsIl91c2VTYWZlU3RhdGUiLCJfdXNlU2FmZVN0YXRlMiIsIl9zbGljZWRUb0FycmF5IiwibGlzdEVycm9yIiwic2V0TGlzdEVycm9yIiwibGlzdCIsInJhdyIsImluY2x1ZGVzIiwiQXJyYXkiLCJpc0FycmF5IiwiY3VycmVudCIsImxlbmd0aCIsInB1c2giLCJzbGljZSIsIl90b0NvbnN1bWFibGVBcnJheSIsIm1hcCIsImNhbkFkZCIsImNhblJlbW92ZSIsInZhbGlkYXRlTGlzdCIsImFkZCIsImRlZmF1bHRWYWx1ZSIsImluZGV4IiwidmFsdWUiLCJuZXdMaXN0IiwibmV3S2V5cyIsImluc2VydEluZGV4Iiwic3BsaWNlIiwicmVtb3ZlQXQiLCJjb3B5IiwiT2JqZWN0IiwiYXNzaWduIiwibW92ZSIsImZyb20iLCJ0byIsIl9uZXdMaXN0JHNwbGljZSIsIl9uZXdMaXN0JHNwbGljZTIiLCJtb3ZlZEl0ZW0iLCJfbmV3S2V5cyRzcGxpY2UiLCJfbmV3S2V5cyRzcGxpY2UyIiwibW92ZWRLZXkiLCJnZXRMaXN0IiwiYWN0aW9uIiwicmVtb3ZlIiwibWFwcGVkRmllbGRzIiwiX2l0ZW0iLCJrZXkiLCJsaXN0RG9tIiwiYWN0aW9uUm93cyIsInJlY29yZCIsImNvcHlCdG5Qcm9wcyIsImRlbGV0ZUJ0blByb3BzIiwiZGVmYXVsdERvbSIsInR5cGUiLCJjb2xvciIsInNpemUiLCJyZXN0Iiwib25DbGljayIsImRpc2FibGVkIiwicmVuZGVyZWRBY3Rpb25zIiwiZmlsdGVyIiwiQm9vbGVhbiIsInJvd05vZGUiLCJjbGFzc05hbWUiLCJoYXNDcmVhdG9yIiwiY3JlYXRvckNvbmZpZyIsIl90eXBlb2YiLCJjcmVhdG9yUG9zaXRpb24iLCJwb3NpdGlvbiIsImNyZWF0b3JUZXh0IiwidGV4dCIsImNyZWF0b3JCdXR0b24iLCJmb3JtTGlzdENvbnRleHRWYWx1ZSIsIlByb3ZpZGVyIiwiYXMiLCJkaXNwbGF5TmFtZSIsIlByb0Zvcm1MaXN0Il0sIm1hcHBpbmdzIjoiOzs7QUFBQSxTQUFTQSxHQUFHLElBQUlDLElBQUksRUFBRUMsSUFB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LCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBqc3ggYXMgX2pzeCwganN4cyBhcyBfanN4cyB9IGZyb20gXCJyZWFjdC9qc3gtcnVudGltZVwiO1xuaW1wb3J0IHsgbWVtbywgdXNlRWZmZWN0LCB1c2VNZW1vLCB1c2VSZWYgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgdXNlTWVtb2l6ZWRGbiBmcm9tICdAMW1vbmV5L2hvb2tzL3VzZU1lbW9pemVkRm4nO1xuaW1wb3J0IHVzZVNhZmVTdGF0ZSBmcm9tICdAMW1vbmV5L2hvb2tzL3VzZVNhZmVTdGF0ZSc7XG5pbXBvcnQgeyBkZWZhdWx0IGFzIGNsYXNzbmFtZXMgfSBmcm9tICcuLi8uLi91dGlscy9jbGFzc25hbWVzJztcbmltcG9ydCB7IEJ1dHRvbiB9IGZyb20gJy4uL0J1dHRvbic7XG5pbXBvcnQgeyBUeXBvZ3JhcGh5TGFiZWwsIFR5cG9ncmFwaHlCb2R5IH0gZnJvbSAnLi4vVHlwb2dyYXBoeSc7XG5pbXBvcnQgeyBGb3JtTGlzdENvbnRleHQsIHVzZUZvcm1MaXN0Q29udGV4dCwgdXNlUHJvRm9ybUNvbnRleHQgfSBmcm9tICcuL2NvbnRleHQnO1xuaW1wb3J0IHsgQ1NTX1BSRUZJWCwgREVGQVVMVF9URVhULCBQUk9GT1JNX0xJU1RfTEFCRUxfU0laRSwgUFJPRk9STV9MSVNUX0xBQkVMX0NPTE9SIH0gZnJvbSAnLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgZXh0cmFjdEJ1dHRvblByb3BzLCBnZXROZXN0ZWRWYWx1ZSB9IGZyb20gJy4vdXRpbHMnO1xuY29uc3QgY2xhc3NlcyA9IGNsYXNzbmFtZXMoYCR7Q1NTX1BSRUZJWH0tbGlzdGApO1xubGV0IGxpc3RLZXlDb3VudGVyID0gMDtcbmNvbnN0IGdlbmVyYXRlS2V5ID0gKCkgPT4gYGxpc3RfJHsrK2xpc3RLZXlDb3VudGVyfWA7XG5jb25zdCBQcm9Gb3JtTGlzdEJhc2UgPSAocHJvcHMpID0+IHtcbiAgICB2YXIgX2EsIF9iO1xuICAgIGNvbnN0IHsgbmFtZTogcmF3TmFtZSwgbGFiZWwsIG1pbiwgbWF4LCByZXF1aXJlZCwgcmVxdWlyZWRNZXNzYWdlID0gJ1RoaXMgbGlzdCBjYW5ub3QgYmUgZW1wdHknLCBpbml0aWFsVmFsdWUsIGNvcHlJY29uUHJvcHMsIGRlbGV0ZUljb25Qcm9wcywgY3JlYXRvckJ1dHRvblByb3BzLCBpdGVtUmVuZGVyLCBhY3Rpb25SZW5kZXIsIGNoaWxkcmVuLCBvbkFmdGVyQWRkLCBvbkFmdGVyUmVtb3ZlLCB9ID0gcHJvcHM7XG4gICAgLy8g4pSA4pSAIE5lc3RlZCBsaXN0OiBwcmVwZW5kIHBhcmVudCBsaXN0IG5hbWUg4pSA4pSAXG4gICAgY29uc3QgcGFyZW50Q3R4ID0gdXNlRm9ybUxpc3RDb250ZXh0KCk7XG4gICAgY29uc3QgZnVsbE5hbWUgPSBwYXJlbnRDdHgubGlzdE5hbWUgPyBgJHtwYXJlbnRDdHgubGlzdE5hbWV9LiR7cmF3TmFtZX1gIDogcmF3TmFtZTtcbiAgICBjb25zdCB7IHZhbHVlcywgc2V0RmllbGRWYWx1ZSB9ID0gdXNlUHJvRm9ybUNvbnRleHQoKTtcbiAgICBjb25zdCBpbml0aWFsQXBwbGllZCA9IHVzZVJlZihmYWxzZSk7XG4gICAgY29uc3Qga2V5c1JlZiA9IHVzZVJlZihbXSk7XG4gICAgY29uc3QgW2xpc3RFcnJvciwgc2V0TGlzdEVycm9yXSA9IHVzZVNhZmVTdGF0ZShudWxsKTtcbiAgICBjb25zdCBsaXN0ID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICAgIGNvbnN0IHJhdyA9IGZ1bGxOYW1lLmluY2x1ZGVzKCcuJylcbiAgICAgICAgICAgID8gZ2V0TmVzdGVkVmFsdWUodmFsdWVzLCBmdWxsTmFtZSlcbiAgICAgICAgICAgIDogdmFsdWVzW2Z1bGxOYW1lXTtcbiAgICAgICAgcmV0dXJuIEFycmF5LmlzQXJyYXkocmF3KSA/IHJhdyA6IFtdO1xuICAgIH0sIFt2YWx1ZXMsIGZ1bGxOYW1lXSk7XG4gICAgLy8gU3luYyBrZXlzIHdpdGggbGlzdCBsZW5ndGhcbiAgICB3aGlsZSAoa2V5c1JlZi5jdXJyZW50Lmxlbmd0aCA8IGxpc3QubGVuZ3RoKSB7XG4gICAgICAgIGtleXNSZWYuY3VycmVudC5wdXNoKGdlbmVyYXRlS2V5KCkpO1xuICAgIH1cbiAgICBpZiAoa2V5c1JlZi5jdXJyZW50Lmxlbmd0aCA+IGxpc3QubGVuZ3RoKSB7XG4gICAgICAgIGtleXNSZWYuY3VycmVudCA9IGtleXNSZWYuY3VycmVudC5zbGljZSgwLCBsaXN0Lmxlbmd0aCk7XG4gICAgfVxuICAgIC8vIEFwcGx5IGluaXRpYWwgdmFsdWUgb25jZVxuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIGlmIChpbml0aWFsQXBwbGllZC5jdXJyZW50KVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICBpZiAobGlzdC5sZW5ndGggIT09IDApXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIGlmICghQXJyYXkuaXNBcnJheShpbml0aWFsVmFsdWUpIHx8IGluaXRpYWxWYWx1ZS5sZW5ndGggPT09IDApXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIGluaXRpYWxBcHBsaWVkLmN1cnJlbnQgPSB0cnVlO1xuICAgICAgICBzZXRGaWVsZFZhbHVlKGZ1bGxOYW1lLCBbLi4uaW5pdGlhbFZhbHVlXSk7XG4gICAgICAgIGtleXNSZWYuY3VycmVudCA9IGluaXRpYWxWYWx1ZS5tYXAoKCkgPT4gZ2VuZXJhdGVLZXkoKSk7XG4gICAgfSwgW2xpc3QubGVuZ3RoLCBpbml0aWFsVmFsdWUsIGZ1bGxOYW1lLCBzZXRGaWVsZFZhbHVlXSk7XG4gICAgLy8gQ2xlYXIgZXJyb3Igd2hlbiBsaXN0IGJlY29tZXMgbm9uLWVtcHR5XG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgaWYgKHJlcXVpcmVkICYmIGxpc3QubGVuZ3RoID4gMCAmJiBsaXN0RXJyb3IpIHtcbiAgICAgICAgICAgIHNldExpc3RFcnJvcihudWxsKTtcbiAgICAgICAgfVxuICAgIH0sIFtsaXN0Lmxlbmd0aCwgcmVxdWlyZWQsIGxpc3RFcnJvciwgc2V0TGlzdEVycm9yXSk7XG4gICAgY29uc3QgY2FuQWRkID0gbWF4ID09IG51bGwgfHwgbGlzdC5sZW5ndGggPCBtYXg7XG4gICAgY29uc3QgY2FuUmVtb3ZlID0gbWluID09IG51bGwgfHwgbGlzdC5sZW5ndGggPiBtaW47XG4gICAgY29uc3QgdmFsaWRhdGVMaXN0ID0gdXNlTWVtb2l6ZWRGbigoKSA9PiB7XG4gICAgICAgIGlmICghcmVxdWlyZWQpXG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgaWYgKGxpc3QubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICBzZXRMaXN0RXJyb3IocmVxdWlyZWRNZXNzYWdlKTtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICBzZXRMaXN0RXJyb3IobnVsbCk7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH0pO1xuICAgIGNvbnN0IGFkZCA9IHVzZU1lbW9pemVkRm4oKGRlZmF1bHRWYWx1ZSwgaW5kZXgpID0+IHtcbiAgICAgICAgaWYgKCFjYW5BZGQpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIGNvbnN0IHZhbHVlID0gZGVmYXVsdFZhbHVlICE9PSBudWxsICYmIGRlZmF1bHRWYWx1ZSAhPT0gdm9pZCAwID8gZGVmYXVsdFZhbHVlIDoge307XG4gICAgICAgIGNvbnN0IG5ld0xpc3QgPSBbLi4ubGlzdF07XG4gICAgICAgIGNvbnN0IG5ld0tleXMgPSBbLi4ua2V5c1JlZi5jdXJyZW50XTtcbiAgICAgICAgY29uc3QgaW5zZXJ0SW5kZXggPSB0eXBlb2YgaW5kZXggPT09ICdudW1iZXInID8gaW5kZXggOiBuZXdMaXN0Lmxlbmd0aDtcbiAgICAgICAgbmV3TGlzdC5zcGxpY2UoaW5zZXJ0SW5kZXgsIDAsIHZhbHVlKTtcbiAgICAgICAgbmV3S2V5cy5zcGxpY2UoaW5zZXJ0SW5kZXgsIDAsIGdlbmVyYXRlS2V5KCkpO1xuICAgICAgICBrZXlzUmVmLmN1cnJlbnQgPSBuZXdLZXlzO1xuICAgICAgICBzZXRGaWVsZFZhbHVlKGZ1bGxOYW1lLCBuZXdMaXN0KTtcbiAgICAgICAgb25BZnRlckFkZCA9PT0gbnVsbCB8fCBvbkFmdGVyQWRkID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvbkFmdGVyQWRkKHZhbHVlLCBpbnNlcnRJbmRleCk7XG4gICAgfSk7XG4gICAgY29uc3QgcmVtb3ZlQXQgPSB1c2VNZW1vaXplZEZuKChpbmRleCkgPT4ge1xuICAgICAgICBpZiAoIWNhblJlbW92ZSlcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgY29uc3QgbmV3TGlzdCA9IFsuLi5saXN0XTtcbiAgICAgICAgY29uc3QgbmV3S2V5cyA9IFsuLi5rZXlzUmVmLmN1cnJlbnRdO1xuICAgICAgICBuZXdMaXN0LnNwbGljZShpbmRleCwgMSk7XG4gICAgICAgIG5ld0tleXMuc3BsaWNlKGluZGV4LCAxKTtcbiAgICAgICAga2V5c1JlZi5jdXJyZW50ID0gbmV3S2V5cztcbiAgICAgICAgc2V0RmllbGRWYWx1ZShmdWxsTmFtZSwgbmV3TGlzdCk7XG4gICAgICAgIG9uQWZ0ZXJSZW1vdmUgPT09IG51bGwgfHwgb25BZnRlclJlbW92ZSA9PT0gdm9pZCAwID8gdm9pZCAwIDogb25BZnRlclJlbW92ZShpbmRleCk7XG4gICAgICAgIC8vIFZhbGlkYXRlIGFmdGVyIHJlbW92ZVxuICAgICAgICBpZiAocmVxdWlyZWQgJiYgbmV3TGlzdC5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgIHNldExpc3RFcnJvcihyZXF1aXJlZE1lc3NhZ2UpO1xuICAgICAgICB9XG4gICAgfSk7XG4gICAgY29uc3QgY29weSA9IHVzZU1lbW9pemVkRm4oKGluZGV4KSA9PiB7XG4gICAgICAgIGlmICghY2FuQWRkKVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICBjb25zdCB2YWx1ZSA9IGxpc3RbaW5kZXhdID8gT2JqZWN0LmFzc2lnbih7fSwgbGlzdFtpbmRleF0pIDoge307XG4gICAgICAgIGFkZCh2YWx1ZSwgaW5kZXggKyAxKTtcbiAgICB9KTtcbiAgICBjb25zdCBtb3ZlID0gdXNlTWVtb2l6ZWRGbigoZnJvbSwgdG8pID0+IHtcbiAgICAgICAgaWYgKGZyb20gPT09IHRvKVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICBpZiAoZnJvbSA8IDAgfHwgZnJvbSA+PSBsaXN0Lmxlbmd0aCB8fCB0byA8IDAgfHwgdG8gPj0gbGlzdC5sZW5ndGgpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIGNvbnN0IG5ld0xpc3QgPSBbLi4ubGlzdF07XG4gICAgICAgIGNvbnN0IG5ld0tleXMgPSBbLi4ua2V5c1JlZi5jdXJyZW50XTtcbiAgICAgICAgY29uc3QgW21vdmVkSXRlbV0gPSBuZXdMaXN0LnNwbGljZShmcm9tLCAxKTtcbiAgICAgICAgY29uc3QgW21vdmVkS2V5XSA9IG5ld0tleXMuc3BsaWNlKGZyb20sIDEpO1xuICAgICAgICBuZXdMaXN0LnNwbGljZSh0bywgMCwgbW92ZWRJdGVtKTtcbiAgICAgICAgbmV3S2V5cy5zcGxpY2UodG8sIDAsIG1vdmVkS2V5KTtcbiAgICAgICAga2V5c1JlZi5jdXJyZW50ID0gbmV3S2V5cztcbiAgICAgICAgc2V0RmllbGRWYWx1ZShmdWxsTmFtZSwgbmV3TGlzdCk7XG4gICAgfSk7XG4gICAgY29uc3QgZ2V0TGlzdCA9IHVzZU1lbW9pemVkRm4oKCkgPT4gbGlzdCk7XG4gICAgY29uc3QgYWN0aW9uID0gdXNlTWVtbygoKSA9PiAoeyBhZGQsIHJlbW92ZTogcmVtb3ZlQXQsIG1vdmUsIGNvcHksIGdldExpc3QgfSksIFthZGQsIHJlbW92ZUF0LCBtb3ZlLCBjb3B5LCBnZXRMaXN0XSk7XG4gICAgY29uc3QgbWFwcGVkRmllbGRzID0gdXNlTWVtbygoKSA9PiBsaXN0Lm1hcCgoX2l0ZW0sIGluZGV4KSA9PiAoe1xuICAgICAgICBuYW1lOiBgJHtmdWxsTmFtZX0uJHtpbmRleH1gLFxuICAgICAgICBrZXk6IGtleXNSZWYuY3VycmVudFtpbmRleF0gfHwgYGZhbGxiYWNrXyR7aW5kZXh9YCxcbiAgICB9KSksIFtsaXN0LCBmdWxsTmFtZV0pO1xuICAgIC8vIFJlbmRlciBjaGlsZHJlblxuICAgIGNvbnN0IGxpc3REb20gPSB0eXBlb2YgY2hpbGRyZW4gPT09ICdmdW5jdGlvbidcbiAgICAgICAgPyBjaGlsZHJlbihtYXBwZWRGaWVsZHMsIGFjdGlvbilcbiAgICAgICAgOiBjaGlsZHJlbjtcbiAgICAvLyBBY3Rpb24gYnV0dG9ucyBwZXIgcm93XG4gICAgY29uc3QgYWN0aW9uUm93cyA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgICByZXR1cm4gbGlzdC5tYXAoKHJlY29yZCwgaW5kZXgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGNvcHlCdG5Qcm9wcyA9IGV4dHJhY3RCdXR0b25Qcm9wcyhjb3B5SWNvblByb3BzKTtcbiAgICAgICAgICAgIGNvbnN0IGRlbGV0ZUJ0blByb3BzID0gZXh0cmFjdEJ1dHRvblByb3BzKGRlbGV0ZUljb25Qcm9wcyk7XG4gICAgICAgICAgICBjb25zdCBkZWZhdWx0RG9tID0ge1xuICAgICAgICAgICAgICAgIGNvcHk6IGNvcHlJY29uUHJvcHMgIT09IGZhbHNlID8gKF9qc3goQnV0dG9uLCBPYmplY3QuYXNzaWduKHsgdHlwZTogXCJidXR0b25cIiwgY29sb3I6IFwic2Vjb25kYXJ5XCIsIHNpemU6IFwic21hbGxcIiB9LCBjb3B5QnRuUHJvcHMucmVzdCwgeyBvbkNsaWNrOiAoKSA9PiBjb3B5KGluZGV4KSwgZGlzYWJsZWQ6ICFjYW5BZGQgfHwgY29weUJ0blByb3BzLmRpc2FibGVkLCBjaGlsZHJlbjogREVGQVVMVF9URVhULmNvcHkgfSksIGBjb3B5LSR7aW5kZXh9YCkpIDogbnVsbCxcbiAgICAgICAgICAgICAgICBkZWxldGU6IGRlbGV0ZUljb25Qcm9wcyAhPT0gZmFsc2UgPyAoX2pzeChCdXR0b24sIE9iamVjdC5hc3NpZ24oeyB0eXBlOiBcImJ1dHRvblwiLCBjb2xvcjogXCJzZWNvbmRhcnlcIiwgc2l6ZTogXCJzbWFsbFwiIH0sIGRlbGV0ZUJ0blByb3BzLnJlc3QsIHsgb25DbGljazogKCkgPT4gcmVtb3ZlQXQoaW5kZXgpLCBkaXNhYmxlZDogIWNhblJlbW92ZSB8fCBkZWxldGVCdG5Qcm9wcy5kaXNhYmxlZCwgY2hpbGRyZW46IERFRkFVTFRfVEVYVC5kZWxldGUgfSksIGBkZWxldGUtJHtpbmRleH1gKSkgOiBudWxsLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIGNvbnN0IHJlbmRlcmVkQWN0aW9ucyA9IGFjdGlvblJlbmRlclxuICAgICAgICAgICAgICAgID8gYWN0aW9uUmVuZGVyKHsgaW5kZXgsIHJlY29yZCB9LCBhY3Rpb24sIGRlZmF1bHREb20pXG4gICAgICAgICAgICAgICAgOiBbZGVmYXVsdERvbS5jb3B5LCBkZWZhdWx0RG9tLmRlbGV0ZV0uZmlsdGVyKEJvb2xlYW4pO1xuICAgICAgICAgICAgY29uc3Qgcm93Tm9kZSA9IChfanN4KFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCdyb3ctYWN0aW9ucycpLCBjaGlsZHJlbjogcmVuZGVyZWRBY3Rpb25zIH0sIGtleXNSZWYuY3VycmVudFtpbmRleF0gfHwgaW5kZXgpKTtcbiAgICAgICAgICAgIGlmIChpdGVtUmVuZGVyKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGl0ZW1SZW5kZXIoeyBsaXN0RG9tOiByb3dOb2RlLCBhY3Rpb24gfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gcm93Tm9kZTtcbiAgICAgICAgfSk7XG4gICAgfSwgW2xpc3QsIGNvcHlJY29uUHJvcHMsIGRlbGV0ZUljb25Qcm9wcywgY2FuQWRkLCBjYW5SZW1vdmUsIGNvcHksIHJlbW92ZUF0LCBhY3Rpb24sIGFjdGlvblJlbmRlciwgaXRlbVJlbmRlcl0pO1xuICAgIC8vIENyZWF0b3IgYnV0dG9uXG4gICAgY29uc3QgaGFzQ3JlYXRvciA9IGNyZWF0b3JCdXR0b25Qcm9wcyAhPT0gZmFsc2U7XG4gICAgY29uc3QgY3JlYXRvckNvbmZpZyA9IGhhc0NyZWF0b3IgJiYgdHlwZW9mIGNyZWF0b3JCdXR0b25Qcm9wcyA9PT0gJ29iamVjdCcgPyBjcmVhdG9yQnV0dG9uUHJvcHMgOiB7fTtcbiAgICBjb25zdCBjcmVhdG9yUG9zaXRpb24gPSAoX2EgPSBjcmVhdG9yQ29uZmlnID09PSBudWxsIHx8IGNyZWF0b3JDb25maWcgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGNyZWF0b3JDb25maWcucG9zaXRpb24pICE9PSBudWxsICYmIF9hICE9PSB2b2lkIDAgPyBfYSA6ICdib3R0b20nO1xuICAgIGNvbnN0IGNyZWF0b3JUZXh0ID0gKF9iID0gY3JlYXRvckNvbmZpZyA9PT0gbnVsbCB8fCBjcmVhdG9yQ29uZmlnID09PSB2b2lkIDAgPyB2b2lkIDAgOiBjcmVhdG9yQ29uZmlnLnRleHQpICE9PSBudWxsICYmIF9iICE9PSB2b2lkIDAgPyBfYiA6IERFRkFVTFRfVEVYVC5hZGQ7XG4gICAgY29uc3QgY3JlYXRvckJ1dHRvbiA9IGhhc0NyZWF0b3IgPyAoX2pzeChCdXR0b24sIHsgdHlwZTogXCJidXR0b25cIiwgY29sb3I6IFwic2Vjb25kYXJ5XCIsIG9uQ2xpY2s6ICgpID0+IHtcbiAgICAgICAgICAgIGlmIChjcmVhdG9yUG9zaXRpb24gPT09ICd0b3AnKSB7XG4gICAgICAgICAgICAgICAgYWRkKHt9LCAwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIGFkZCgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LCBkaXNhYmxlZDogIWNhbkFkZCwgY2hpbGRyZW46IGNyZWF0b3JUZXh0IH0pKSA6IG51bGw7XG4gICAgY29uc3QgZm9ybUxpc3RDb250ZXh0VmFsdWUgPSB1c2VNZW1vKCgpID0+ICh7IGxpc3ROYW1lOiBmdWxsTmFtZSB9KSwgW2Z1bGxOYW1lXSk7XG4gICAgcmV0dXJuIChfanN4KEZvcm1MaXN0Q29udGV4dC5Qcm92aWRlciwgeyB2YWx1ZTogZm9ybUxpc3RDb250ZXh0VmFsdWUsIGNoaWxkcmVuOiBfanN4cyhcImRpdlwiLCB7IGNsYXNzTmFtZTogY2xhc3NlcygpLCBjaGlsZHJlbjogW2xhYmVsICYmIF9qc3goVHlwb2dyYXBoeUxhYmVsLCB7IGNsYXNzTmFtZTogY2xhc3NlcygnbGFiZWwnKSwgc2l6ZTogUFJPRk9STV9MSVNUX0xBQkVMX1NJWkUsIGNvbG9yOiBQUk9GT1JNX0xJU1RfTEFCRUxfQ09MT1IsIGNoaWxkcmVuOiBsYWJlbCB9KSwgY3JlYXRvclBvc2l0aW9uID09PSAndG9wJyAmJiBjcmVhdG9yQnV0dG9uLCBfanN4KFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCdjb250ZW50JyksIGNoaWxkcmVuOiBsaXN0RG9tIH0pLCBfanN4KFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCdhY3Rpb25zJyksIGNoaWxkcmVuOiBhY3Rpb25Sb3dzIH0pLCBjcmVhdG9yUG9zaXRpb24gPT09ICdib3R0b20nICYmIGNyZWF0b3JCdXR0b24sIGxpc3RFcnJvciAmJiBfanN4KFR5cG9ncmFwaHlCb2R5LCB7IGFzOiBcImRpdlwiLCBzaXplOiBcInNtXCIsIGNvbG9yOiBcImRhbmdlclwiLCBjaGlsZHJlbjogbGlzdEVycm9yIH0pXSB9KSB9KSk7XG59O1xuUHJvRm9ybUxpc3RCYXNlLmRpc3BsYXlOYW1lID0gJ1Byb0Zvcm1MaXN0JztcbmV4cG9ydCBjb25zdCBQcm9Gb3JtTGlzdCA9IG1lbW8oUHJvRm9ybUxpc3RCYXNlKTtcbmV4cG9ydCBkZWZhdWx0IFByb0Zvcm1MaXN0OyIsbnVsbF0sInNvdXJjZVJvb3QiOiIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMifQ==
|
|
305
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvUHJvRm9ybS9Qcm9Gb3JtTGlzdC5qcyIsImNvbXBvbmVudHMvc3JjL2NvbXBvbmVudHMvUHJvRm9ybS9Qcm9Gb3JtTGlzdC50c3giXSwibmFtZXMiOlsianN4IiwiX2pzeCIsIkZyYWdtZW50IiwiX0ZyYWdtZW50IiwianN4cyIsIl9qc3hzIiwibWVtbyIsInVzZUVmZmVjdCIsInVzZU1lbW8iLCJ1c2VSZWYiLCJ1c2VNZW1vaXplZEZuIiwidXNlU2FmZVN0YXRlIiwiZGVmYXVsdCIsImNsYXNzbmFtZXMiLCJCdXR0b24iLCJUeXBvZ3JhcGh5TGFiZWwiLCJUeXBvZ3JhcGh5Qm9keSIsIkZvcm1MaXN0Q29udGV4dCIsInVzZUZvcm1MaXN0Q29udGV4dCIsInVzZVByb0Zvcm1TdGFibGUiLCJ1c2VQcm9Gb3JtU3RvcmUiLCJ1c2VTdG9yZVNlbGVjdG9yIiwiQ1NTX1BSRUZJWCIsIkRFRkFVTFRfVEVYVCIsIlBST0ZPUk1fTElTVF9MQUJFTF9TSVpFIiwiUFJPRk9STV9MSVNUX0xBQkVMX0NPTE9SIiwiZXh0cmFjdEJ1dHRvblByb3BzIiwiZ2V0TmVzdGVkVmFsdWUiLCJjbGFzc2VzIiwiY29uY2F0IiwibGlzdEtleUNvdW50ZXIiLCJnZW5lcmF0ZUtleSIsIkVNUFRZX0xJU1QiLCJMaXN0Um93QWN0aW9uc0Jhc2UiLCJfcmVmIiwiaW5kZXgiLCJyZWNvcmQiLCJjYW5BZGQiLCJjYW5SZW1vdmUiLCJjb3B5SWNvblByb3BzIiwiZGVsZXRlSWNvblByb3BzIiwiYWN0aW9uIiwiYWN0aW9uUmVuZGVyIiwiaXRlbVJlbmRlciIsIm9uQ29weSIsIm9uUmVtb3ZlIiwiY29weUJ0blByb3BzIiwiZGVsZXRlQnRuUHJvcHMiLCJkZWZhdWx0RG9tIiwiY29weSIsIk9iamVjdCIsImFzc2lnbiIsInR5cGUiLCJjb2xvciIsInNpemUiLCJyZXN0Iiwib25DbGljayIsImRpc2FibGVkIiwiY2hpbGRyZW4iLCJyZW5kZXJlZEFjdGlvbnMiLCJmaWx0ZXIiLCJCb29sZWFuIiwicm93Tm9kZSIsImNsYXNzTmFtZSIsImxpc3REb20iLCJkaXNwbGF5TmFtZSIsIkxpc3RSb3dBY3Rpb25zIiwiUHJvRm9ybUxpc3RCYXNlIiwicHJvcHMiLCJfYSIsIl9iIiwicmF3TmFtZSIsIm5hbWUiLCJsYWJlbCIsIm1pbiIsIm1heCIsInJlcXVpcmVkIiwiX3Byb3BzJHJlcXVpcmVkTWVzc2FnIiwicmVxdWlyZWRNZXNzYWdlIiwiaW5pdGlhbFZhbHVlIiwiY3JlYXRvckJ1dHRvblByb3BzIiwib25BZnRlckFkZCIsIm9uQWZ0ZXJSZW1vdmUiLCJwYXJlbnRDdHgiLCJmdWxsTmFtZSIsImxpc3ROYW1lIiwiX3VzZVByb0Zvcm1TdGFibGUiLCJzZXRGaWVsZFZhbHVlIiwic3RvcmUiLCJpbml0aWFsQXBwbGllZCIsImtleXNSZWYiLCJfdXNlU2FmZVN0YXRlIiwiX3VzZVNhZmVTdGF0ZTIiLCJfc2xpY2VkVG9BcnJheSIsImxpc3RFcnJvciIsInNldExpc3RFcnJvciIsImxpc3QiLCJzdGF0ZSIsInJhdyIsImluY2x1ZGVzIiwidmFsdWVzIiwiQXJyYXkiLCJpc0FycmF5IiwiY3VycmVudCIsImxlbmd0aCIsInB1c2giLCJzbGljZSIsIl90b0NvbnN1bWFibGVBcnJheSIsIm1hcCIsInZhbGlkYXRlTGlzdCIsImFkZCIsImRlZmF1bHRWYWx1ZSIsInZhbHVlIiwibmV3TGlzdCIsIm5ld0tleXMiLCJpbnNlcnRJbmRleCIsInNwbGljZSIsInJlbW92ZUF0IiwibW92ZSIsImZyb20iLCJ0byIsIl9uZXdMaXN0JHNwbGljZSIsIl9uZXdMaXN0JHNwbGljZTIiLCJtb3ZlZEl0ZW0iLCJfbmV3S2V5cyRzcGxpY2UiLCJfbmV3S2V5cyRzcGxpY2UyIiwibW92ZWRLZXkiLCJnZXRMaXN0IiwicmVtb3ZlIiwiZmllbGRPYmpDYWNoZSIsIk1hcCIsIm1hcHBlZEZpZWxkcyIsIm5leHRDYWNoZSIsImZpZWxkcyIsIl9pdGVtIiwia2V5IiwiZmllbGROYW1lIiwiY2FjaGVkIiwiZ2V0IiwiZmllbGQiLCJzZXQiLCJhY3Rpb25Sb3dzIiwiaGFzQ3JlYXRvciIsImNyZWF0b3JDb25maWciLCJfdHlwZW9mIiwiY3JlYXRvclBvc2l0aW9uIiwicG9zaXRpb24iLCJjcmVhdG9yVGV4dCIsInRleHQiLCJjcmVhdG9yQnV0dG9uIiwiZm9ybUxpc3RDb250ZXh0VmFsdWUiLCJQcm92aWRlciIsImFzIiwiUHJvRm9ybUxpc3QiXSwibWFwcGluZ3MiOiI7OztBQUFBLFNBQVNBLEdBQUcsSUFBSUMsSUFBSSxFQUFFQyxRQUFRLElBQUlDLFNBQVMsRUFBRUMsSUFBSSxJQUFJQyxLQUFLLFFBQVEsbUJBQW1CO0FDQXJGLFNBQVNDLElBQUksRUFBRUMsU0FBUyxFQUFFQyxPQUFPLEVBQUVDLE1BQU0sUUFBUSxPQUFPO0FBRXhELE9BQU9DLGFBQWEsTUFBTSw2QkFBNkI7QUFDdkQsT0FBT0MsWUFBWSxNQUFNLDRCQUE0QjtBQUNyRCxTQUFTQyxPQUFPLElBQUlDLFVBQVUsUUFBUSx3QkFBd0I7QUFDOUQsU0FBU0MsTUFBTSxRQUFRLFdBQVc7QUFDbEMsU0FBU0MsZUFBZSxFQUFFQyxjQUFjLFFBQVEsZUFBZTtBQUMvRCxTQUFTQyxlQUFlLEVBQUVDLGtCQUFrQixFQUFFQyxnQkFBZ0IsRUFBRUMsZUFBZSxRQUFRLFdBQVc7QUFDbEcsU0FBU0MsZ0JBQWdCLFFBQVEsa0JBQWtCO0FBQ25ELFNBQVNDLFVBQVUsRUFBRUMsWUFBWSxFQUFFQyx1QkFBdUIsRUFBRUMsd0JBQXdCLFFBQVEsYUFBYTtBQUN6RyxTQUFTQyxrQkFBa0IsRUFBRUMsY0FBYyxRQUFRLFNBQVM7QUFHNUQsSUFBTUMsT0FBTyxHQUFHZixVQUFVLElBQUFnQixNQUFBLENBQUlQLFVBQVUsVUFBTyxDQUFDO0FBRWhELElBQUlRLGNBQWMsR0FBRyxDQUFDO0FBQ3RCLElBQU1DLFdBQVcsR0FBRyxTQUFkQSxXQUFXQSxDQUFBO0VBQUEsZUFBQUYsTUFBQSxDQUF5QixFQUFFQyxjQUFjO0FBQUEsQ0FBRTtBQUU1RDtBQUNBO0FBQ0EsSUFBTUUsVUFB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QUNjLGVBQWUsRUFBQTtRQUFDZ0QsU0FBUyxFQUFFbkMsT0FBTyxDQUFDLE9BQU8sQ0FBQztRQUFFMEIsSUFBSSxFQUFFOUIsdUJBQXVCO1FBQUU2QixLQUFLLEVBQUU1Qix3QkFBd0I7UUFBQWlDLFFBQUEsRUFBR2U7TUFBSyxDQUFBLENBQW1CLEVBQ2hKd0UsZUFBZSxLQUFLLEtBQUssSUFBSUksYUFBYSxFQUMzQ3BKLElBQUEsQ0FBQSxLQUFBLEVBQUE7UUFBSzhELFNBQVMsRUFBRW5DLE9BQU8sQ0FBQyxTQUFTLENBQUM7UUFBQThCLFFBQUEsRUFBR007TUFBTyxDQUFBLENBQU8sRUFDbkQvRCxJQUFBLENBQUEsS0FBQSxFQUFBO1FBQUs4RCxTQUFTLEVBQUVuQyxPQUFPLENBQUMsU0FBUyxDQUFDO1FBQUE4QixRQUFBLEVBQUdtRjtNQUFVLENBQUEsQ0FBTyxFQUNyREksZUFBZSxLQUFLLFFBQVEsSUFBSUksYUFBYSxFQUM3Q3ZELFNBQVMsSUFBSTdGLElBQUEsQ0FBQ2UsY0FBYyxFQUFBO1FBQUN3SSxFQUFFLEVBQUMsS0FBSztRQUFDbEcsSUFBSSxFQUFDLElBQUk7UUFBQ0QsS0FBSyxFQUFDLFFBQVE7UUFBQUssUUFBQSxFQUFFb0M7TUFBUyxDQUFBLENBQWtCO0lBQUEsQ0FBQTtFQUN4RixDQUFBLENBQ21CO0FBRS9CLENBQUM7QUFFRDNCLGVBQWUsQ0FBQ0YsV0FBVyxHQUFHLGFBQWE7QUFFM0MsT0FBTyxJQUFNd0YsV0FBVyxnQkFBR25KLElBQUksQ0FBQzZELGVBQWUsQ0FBQztBQUVoRCxlQUFlc0YsV0FBVyIsImZpbGUiOiJjb21wb25lbnRzL1Byb0Zvcm0vUHJvRm9ybUxpc3QuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBqc3ggYXMgX2pzeCwgRnJhZ21lbnQgYXMgX0ZyYWdtZW50LCBqc3hzIGFzIF9qc3hzIH0gZnJvbSBcInJlYWN0L2pzeC1ydW50aW1lXCI7XG5pbXBvcnQgeyBtZW1vLCB1c2VFZmZlY3QsIHVzZU1lbW8sIHVzZVJlZiB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB1c2VNZW1vaXplZEZuIGZyb20gJ0AxbW9uZXkvaG9va3MvdXNlTWVtb2l6ZWRGbic7XG5pbXBvcnQgdXNlU2FmZVN0YXRlIGZyb20gJ0AxbW9uZXkvaG9va3MvdXNlU2FmZVN0YXRlJztcbmltcG9ydCB7IGRlZmF1bHQgYXMgY2xhc3NuYW1lcyB9IGZyb20gJy4uLy4uL3V0aWxzL2NsYXNzbmFtZXMnO1xuaW1wb3J0IHsgQnV0dG9uIH0gZnJvbSAnLi4vQnV0dG9uJztcbmltcG9ydCB7IFR5cG9ncmFwaHlMYWJlbCwgVHlwb2dyYXBoeUJvZHkgfSBmcm9tICcuLi9UeXBvZ3JhcGh5JztcbmltcG9ydCB7IEZvcm1MaXN0Q29udGV4dCwgdXNlRm9ybUxpc3RDb250ZXh0LCB1c2VQcm9Gb3JtU3RhYmxlLCB1c2VQcm9Gb3JtU3RvcmUgfSBmcm9tICcuL2NvbnRleHQnO1xuaW1wb3J0IHsgdXNlU3RvcmVTZWxlY3RvciB9IGZyb20gJy4vY29yZS9mb3JtU3RvcmUnO1xuaW1wb3J0IHsgQ1NTX1BSRUZJWCwgREVGQVVMVF9URVhULCBQUk9GT1JNX0xJU1RfTEFCRUxfU0laRSwgUFJPRk9STV9MSVNUX0xBQkVMX0NPTE9SIH0gZnJvbSAnLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgZXh0cmFjdEJ1dHRvblByb3BzLCBnZXROZXN0ZWRWYWx1ZSB9IGZyb20gJy4vdXRpbHMnO1xuY29uc3QgY2xhc3NlcyA9IGNsYXNzbmFtZXMoYCR7Q1NTX1BSRUZJWH0tbGlzdGApO1xubGV0IGxpc3RLZXlDb3VudGVyID0gMDtcbmNvbnN0IGdlbmVyYXRlS2V5ID0gKCkgPT4gYGxpc3RfJHsrK2xpc3RLZXlDb3VudGVyfWA7XG4vLyBTdGFibGUgZW1wdHkgcmVzdWx0IGZvciB0aGUgbm8tdmFsdWUgY2FzZSDigJQgYSBmcmVzaCBbXSBwZXIgc2VsZWN0b3IgcnVuXG4vLyB3b3VsZCBuZXZlciBjb21wYXJlIGVxdWFsIGFuZCBsb29wIHRoZSBzdWJzY3JpcHRpb24uXG5jb25zdCBFTVBUWV9MSVNUID0gW107XG4vLyBSb3ctbGV2ZWwgbWVtbyBib3VuZGFyeTogc2V0TmVzdGVkVmFsdWUgY2xvbmVzIE9OTFkgdGhlIGVkaXRlZCByb3csIHNvXG4vLyB1bnRvdWNoZWQgcm93cyBrZWVwIHRoZWlyIHJlY29yZCBpZGVudGl0eSBhbmQgYmFpbCBvdXQgaGVyZSB3aGlsZSBhXG4vLyBzaWJsaW5nIHJvdyBpcyBiZWluZyBlZGl0ZWQuXG5jb25zdCBMaXN0Um93QWN0aW9uc0Jhc2UgPSAoeyBpbmRleCwgcmVjb3JkLCBjYW5BZGQsIGNhblJlbW92ZSwgY29weUljb25Qcm9wcywgZGVsZXRlSWNvblByb3BzLCBhY3Rpb24sIGFjdGlvblJlbmRlciwgaXRlbVJlbmRlciwgb25Db3B5LCBvblJlbW92ZSwgfSkgPT4ge1xuICAgIGNvbnN0IGNvcHlCdG5Qcm9wcyA9IGV4dHJhY3RCdXR0b25Qcm9wcyhjb3B5SWNvblByb3BzKTtcbiAgICBjb25zdCBkZWxldGVCdG5Qcm9wcyA9IGV4dHJhY3RCdXR0b25Qcm9wcyhkZWxldGVJY29uUHJvcHMpO1xuICAgIGNvbnN0IGRlZmF1bHREb20gPSB7XG4gICAgICAgIGNvcHk6IGNvcHlJY29uUHJvcHMgIT09IGZhbHNlID8gKF9qc3goQnV0dG9uLCBPYmplY3QuYXNzaWduKHsgdHlwZTogXCJidXR0b25cIiwgY29sb3I6IFwic2Vjb25kYXJ5XCIsIHNpemU6IFwic21hbGxcIiB9LCBjb3B5QnRuUHJvcHMucmVzdCwgeyBvbkNsaWNrOiAoKSA9PiBvbkNvcHkoaW5kZXgpLCBkaXNhYmxlZDogIWNhbkFkZCB8fCBjb3B5QnRuUHJvcHMuZGlzYWJsZWQsIGNoaWxkcmVuOiBERUZBVUxUX1RFWFQuY29weSB9KSwgYGNvcHktJHtpbmRleH1gKSkgOiBudWxsLFxuICAgICAgICBkZWxldGU6IGRlbGV0ZUljb25Qcm9wcyAhPT0gZmFsc2UgPyAoX2pzeChCdXR0b24sIE9iamVjdC5hc3NpZ24oeyB0eXBlOiBcImJ1dHRvblwiLCBjb2xvcjogXCJzZWNvbmRhcnlcIiwgc2l6ZTogXCJzbWFsbFwiIH0sIGRlbGV0ZUJ0blByb3BzLnJlc3QsIHsgb25DbGljazogKCkgPT4gb25SZW1vdmUoaW5kZXgpLCBkaXNhYmxlZDogIWNhblJlbW92ZSB8fCBkZWxldGVCdG5Qcm9wcy5kaXNhYmxlZCwgY2hpbGRyZW46IERFRkFVTFRfVEVYVC5kZWxldGUgfSksIGBkZWxldGUtJHtpbmRleH1gKSkgOiBudWxsLFxuICAgIH07XG4gICAgY29uc3QgcmVuZGVyZWRBY3Rpb25zID0gYWN0aW9uUmVuZGVyXG4gICAgICAgID8gYWN0aW9uUmVuZGVyKHsgaW5kZXgsIHJlY29yZCB9LCBhY3Rpb24sIGRlZmF1bHREb20pXG4gICAgICAgIDogW2RlZmF1bHREb20uY29weSwgZGVmYXVsdERvbS5kZWxldGVdLmZpbHRlcihCb29sZWFuKTtcbiAgICBjb25zdCByb3dOb2RlID0gKF9qc3goXCJkaXZcIiwgeyBjbGFzc05hbWU6IGNsYXNzZXMoJ3Jvdy1hY3Rpb25zJyksIGNoaWxkcmVuOiByZW5kZXJlZEFjdGlvbnMgfSkpO1xuICAgIGlmIChpdGVtUmVuZGVyKSB7XG4gICAgICAgIHJldHVybiBfanN4KF9GcmFnbWVudCwgeyBjaGlsZHJlbjogaXRlbVJlbmRlcih7IGxpc3REb206IHJvd05vZGUsIGFjdGlvbiB9KSB9KTtcbiAgICB9XG4gICAgcmV0dXJuIHJvd05vZGU7XG59O1xuTGlzdFJvd0FjdGlvbnNCYXNlLmRpc3BsYXlOYW1lID0gJ1Byb0Zvcm1MaXN0Um93QWN0aW9ucyc7XG5jb25zdCBMaXN0Um93QWN0aW9ucyA9IG1lbW8oTGlzdFJvd0FjdGlvbnNCYXNlKTtcbmNvbnN0IFByb0Zvcm1MaXN0QmFzZSA9IChwcm9wcykgPT4ge1xuICAgIHZhciBfYSwgX2I7XG4gICAgY29uc3QgeyBuYW1lOiByYXdOYW1lLCBsYWJlbCwgbWluLCBtYXgsIHJlcXVpcmVkLCByZXF1aXJlZE1lc3NhZ2UgPSAnVGhpcyBsaXN0IGNhbm5vdCBiZSBlbXB0eScsIGluaXRpYWxWYWx1ZSwgY29weUljb25Qcm9wcywgZGVsZXRlSWNvblByb3BzLCBjcmVhdG9yQnV0dG9uUHJvcHMsIGl0ZW1SZW5kZXIsIGFjdGlvblJlbmRlciwgY2hpbGRyZW4sIG9uQWZ0ZXJBZGQsIG9uQWZ0ZXJSZW1vdmUsIH0gPSBwcm9wcztcbiAgICAvLyDilIDilIAgTmVzdGVkIGxpc3Q6IHByZXBlbmQgcGFyZW50IGxpc3QgbmFtZSDilIDilIBcbiAgICBjb25zdCBwYXJlbnRDdHggPSB1c2VGb3JtTGlzdENvbnRleHQoKTtcbiAgICBjb25zdCBmdWxsTmFtZSA9IHBhcmVudEN0eC5saXN0TmFtZSA/IGAke3BhcmVudEN0eC5saXN0TmFtZX0uJHtyYXdOYW1lfWAgOiByYXdOYW1lO1xuICAgIGNvbnN0IHsgc2V0RmllbGRWYWx1ZSB9ID0gdXNlUHJvRm9ybVN0YWJsZSgpO1xuICAgIGNvbnN0IHN0b3JlID0gdXNlUHJvRm9ybVN0b3JlKCk7XG4gICAgY29uc3QgaW5pdGlhbEFwcGxpZWQgPSB1c2VSZWYoZmFsc2UpO1xuICAgIGNvbnN0IGtleXNSZWYgPSB1c2VSZWYoW10pO1xuICAgIGNvbnN0IFtsaXN0RXJyb3IsIHNldExpc3RFcnJvcl0gPSB1c2VTYWZlU3RhdGUobnVsbCk7XG4gICAgLy8gU3Vic2NyaWJlIE9OTFkgdG8gdGhpcyBsaXN0J3Mgb3duIHZhbHVlOiB0eXBpbmcgZWxzZXdoZXJlIGluIHRoZSBmb3JtXG4gICAgLy8gbGVhdmVzIHRoZSBhcnJheSBpZGVudGl0eSB1bnRvdWNoZWQgYW5kIHRoaXMgY29tcG9uZW50IGRvZXMgbm90IHJlbmRlci5cbiAgICBjb25zdCBsaXN0ID0gdXNlU3RvcmVTZWxlY3RvcihzdG9yZSwgKHN0YXRlKSA9PiB7XG4gICAgICAgIGNvbnN0IHJhdyA9IGZ1bGxOYW1lLmluY2x1ZGVzKCcuJylcbiAgICAgICAgICAgID8gZ2V0TmVzdGVkVmFsdWUoc3RhdGUudmFsdWVzLCBmdWxsTmFtZSlcbiAgICAgICAgICAgIDogc3RhdGUudmFsdWVzW2Z1bGxOYW1lXTtcbiAgICAgICAgcmV0dXJuIEFycmF5LmlzQXJyYXkocmF3KSA/IHJhdyA6IEVNUFRZX0xJU1Q7XG4gICAgfSk7XG4gICAgLy8gU3luYyBrZXlzIHdpdGggbGlzdCBsZW5ndGhcbiAgICB3aGlsZSAoa2V5c1JlZi5jdXJyZW50Lmxlbmd0aCA8IGxpc3QubGVuZ3RoKSB7XG4gICAgICAgIGtleXNSZWYuY3VycmVudC5wdXNoKGdlbmVyYXRlS2V5KCkpO1xuICAgIH1cbiAgICBpZiAoa2V5c1JlZi5jdXJyZW50Lmxlbmd0aCA+IGxpc3QubGVuZ3RoKSB7XG4gICAgICAgIGtleXNSZWYuY3VycmVudCA9IGtleXNSZWYuY3VycmVudC5zbGljZSgwLCBsaXN0Lmxlbmd0aCk7XG4gICAgfVxuICAgIC8vIEFwcGx5IGluaXRpYWwgdmFsdWUgb25jZVxuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIGlmIChpbml0aWFsQXBwbGllZC5jdXJyZW50KVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICBpZiAobGlzdC5sZW5ndGggIT09IDApXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIGlmICghQXJyYXkuaXNBcnJheShpbml0aWFsVmFsdWUpIHx8IGluaXRpYWxWYWx1ZS5sZW5ndGggPT09IDApXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIGluaXRpYWxBcHBsaWVkLmN1cnJlbnQgPSB0cnVlO1xuICAgICAgICBzZXRGaWVsZFZhbHVlKGZ1bGxOYW1lLCBbLi4uaW5pdGlhbFZhbHVlXSk7XG4gICAgICAgIGtleXNSZWYuY3VycmVudCA9IGluaXRpYWxWYWx1ZS5tYXAoKCkgPT4gZ2VuZXJhdGVLZXkoKSk7XG4gICAgfSwgW2xpc3QubGVuZ3RoLCBpbml0aWFsVmFsdWUsIGZ1bGxOYW1lLCBzZXRGaWVsZFZhbHVlXSk7XG4gICAgLy8gQ2xlYXIgZXJyb3Igd2hlbiBsaXN0IGJlY29tZXMgbm9uLWVtcHR5XG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgaWYgKHJlcXVpcmVkICYmIGxpc3QubGVuZ3RoID4gMCAmJiBsaXN0RXJyb3IpIHtcbiAgICAgICAgICAgIHNldExpc3RFcnJvcihudWxsKTtcbiAgICAgICAgfVxuICAgIH0sIFtsaXN0Lmxlbmd0aCwgcmVxdWlyZWQsIGxpc3RFcnJvciwgc2V0TGlzdEVycm9yXSk7XG4gICAgY29uc3QgY2FuQWRkID0gbWF4ID09IG51bGwgfHwgbGlzdC5sZW5ndGggPCBtYXg7XG4gICAgY29uc3QgY2FuUmVtb3ZlID0gbWluID09IG51bGwgfHwgbGlzdC5sZW5ndGggPiBtaW47XG4gICAgY29uc3QgdmFsaWRhdGVMaXN0ID0gdXNlTWVtb2l6ZWRGbigoKSA9PiB7XG4gICAgICAgIGlmICghcmVxdWlyZWQpXG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgaWYgKGxpc3QubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICBzZXRMaXN0RXJyb3IocmVxdWlyZWRNZXNzYWdlKTtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICBzZXRMaXN0RXJyb3IobnVsbCk7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH0pO1xuICAgIGNvbnN0IGFkZCA9IHVzZU1lbW9pemVkRm4oKGRlZmF1bHRWYWx1ZSwgaW5kZXgpID0+IHtcbiAgICAgICAgaWYgKCFjYW5BZGQpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIGNvbnN0IHZhbHVlID0gZGVmYXVsdFZhbHVlICE9PSBudWxsICYmIGRlZmF1bHRWYWx1ZSAhPT0gdm9pZCAwID8gZGVmYXVsdFZhbHVlIDoge307XG4gICAgICAgIGNvbnN0IG5ld0xpc3QgPSBbLi4ubGlzdF07XG4gICAgICAgIGNvbnN0IG5ld0tleXMgPSBbLi4ua2V5c1JlZi5jdXJyZW50XTtcbiAgICAgICAgY29uc3QgaW5zZXJ0SW5kZXggPSB0eXBlb2YgaW5kZXggPT09ICdudW1iZXInID8gaW5kZXggOiBuZXdMaXN0Lmxlbmd0aDtcbiAgICAgICAgbmV3TGlzdC5zcGxpY2UoaW5zZXJ0SW5kZXgsIDAsIHZhbHVlKTtcbiAgICAgICAgbmV3S2V5cy5zcGxpY2UoaW5zZXJ0SW5kZXgsIDAsIGdlbmVyYXRlS2V5KCkpO1xuICAgICAgICBrZXlzUmVmLmN1cnJlbnQgPSBuZXdLZXlzO1xuICAgICAgICBzZXRGaWVsZFZhbHVlKGZ1bGxOYW1lLCBuZXdMaXN0KTtcbiAgICAgICAgb25BZnRlckFkZCA9PT0gbnVsbCB8fCBvbkFmdGVyQWRkID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvbkFmdGVyQWRkKHZhbHVlLCBpbnNlcnRJbmRleCk7XG4gICAgfSk7XG4gICAgY29uc3QgcmVtb3ZlQXQgPSB1c2VNZW1vaXplZEZuKChpbmRleCkgPT4ge1xuICAgICAgICBpZiAoIWNhblJlbW92ZSlcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgY29uc3QgbmV3TGlzdCA9IFsuLi5saXN0XTtcbiAgICAgICAgY29uc3QgbmV3S2V5cyA9IFsuLi5rZXlzUmVmLmN1cnJlbnRdO1xuICAgICAgICBuZXdMaXN0LnNwbGljZShpbmRleCwgMSk7XG4gICAgICAgIG5ld0tleXMuc3BsaWNlKGluZGV4LCAxKTtcbiAgICAgICAga2V5c1JlZi5jdXJyZW50ID0gbmV3S2V5cztcbiAgICAgICAgc2V0RmllbGRWYWx1ZShmdWxsTmFtZSwgbmV3TGlzdCk7XG4gICAgICAgIG9uQWZ0ZXJSZW1vdmUgPT09IG51bGwgfHwgb25BZnRlclJlbW92ZSA9PT0gdm9pZCAwID8gdm9pZCAwIDogb25BZnRlclJlbW92ZShpbmRleCk7XG4gICAgICAgIC8vIFZhbGlkYXRlIGFmdGVyIHJlbW92ZVxuICAgICAgICBpZiAocmVxdWlyZWQgJiYgbmV3TGlzdC5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgIHNldExpc3RFcnJvcihyZXF1aXJlZE1lc3NhZ2UpO1xuICAgICAgICB9XG4gICAgfSk7XG4gICAgY29uc3QgY29weSA9IHVzZU1lbW9pemVkRm4oKGluZGV4KSA9PiB7XG4gICAgICAgIGlmICghY2FuQWRkKVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICBjb25zdCB2YWx1ZSA9IGxpc3RbaW5kZXhdID8gT2JqZWN0LmFzc2lnbih7fSwgbGlzdFtpbmRleF0pIDoge307XG4gICAgICAgIGFkZCh2YWx1ZSwgaW5kZXggKyAxKTtcbiAgICB9KTtcbiAgICBjb25zdCBtb3ZlID0gdXNlTWVtb2l6ZWRGbigoZnJvbSwgdG8pID0+IHtcbiAgICAgICAgaWYgKGZyb20gPT09IHRvKVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICBpZiAoZnJvbSA8IDAgfHwgZnJvbSA+PSBsaXN0Lmxlbmd0aCB8fCB0byA8IDAgfHwgdG8gPj0gbGlzdC5sZW5ndGgpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIGNvbnN0IG5ld0xpc3QgPSBbLi4ubGlzdF07XG4gICAgICAgIGNvbnN0IG5ld0tleXMgPSBbLi4ua2V5c1JlZi5jdXJyZW50XTtcbiAgICAgICAgY29uc3QgW21vdmVkSXRlbV0gPSBuZXdMaXN0LnNwbGljZShmcm9tLCAxKTtcbiAgICAgICAgY29uc3QgW21vdmVkS2V5XSA9IG5ld0tleXMuc3BsaWNlKGZyb20sIDEpO1xuICAgICAgICBuZXdMaXN0LnNwbGljZSh0bywgMCwgbW92ZWRJdGVtKTtcbiAgICAgICAgbmV3S2V5cy5zcGxpY2UodG8sIDAsIG1vdmVkS2V5KTtcbiAgICAgICAga2V5c1JlZi5jdXJyZW50ID0gbmV3S2V5cztcbiAgICAgICAgc2V0RmllbGRWYWx1ZShmdWxsTmFtZSwgbmV3TGlzdCk7XG4gICAgfSk7XG4gICAgY29uc3QgZ2V0TGlzdCA9IHVzZU1lbW9pemVkRm4oKCkgPT4gbGlzdCk7XG4gICAgY29uc3QgYWN0aW9uID0gdXNlTWVtbygoKSA9PiAoeyBhZGQsIHJlbW92ZTogcmVtb3ZlQXQsIG1vdmUsIGNvcHksIGdldExpc3QgfSksIFthZGQsIHJlbW92ZUF0LCBtb3ZlLCBjb3B5LCBnZXRMaXN0XSk7XG4gICAgLy8gUGVyLWtleSBjYWNoZSBrZWVwcyBlYWNoIHJvdydzIGZpZWxkIG9iamVjdCBpZGVudGl0eSBzdGFibGUgYWNyb3NzIGxpc3RcbiAgICAvLyBjb21taXRzIChlLmcuIHR5cGluZyBpbiBhIHNpYmxpbmcgcm93KSwgc28gbWVtb2l6ZWQgcm93IGNvbnRlbnQgc2Vlc1xuICAgIC8vIHNoYWxsb3ctZXF1YWwgcHJvcHMgYW5kIGJhaWxzIG91dC5cbiAgICBjb25zdCBmaWVsZE9iakNhY2hlID0gdXNlUmVmKG5ldyBNYXAoKSk7XG4gICAgY29uc3QgbWFwcGVkRmllbGRzID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICAgIGNvbnN0IG5leHRDYWNoZSA9IG5ldyBNYXAoKTtcbiAgICAgICAgY29uc3QgZmllbGRzID0gbGlzdC5tYXAoKF9pdGVtLCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgY29uc3Qga2V5ID0ga2V5c1JlZi5jdXJyZW50W2luZGV4XSB8fCBgZmFsbGJhY2tfJHtpbmRleH1gO1xuICAgICAgICAgICAgY29uc3QgZmllbGROYW1lID0gYCR7ZnVsbE5hbWV9LiR7aW5kZXh9YDtcbiAgICAgICAgICAgIGNvbnN0IGNhY2hlZCA9IGZpZWxkT2JqQ2FjaGUuY3VycmVudC5nZXQoa2V5KTtcbiAgICAgICAgICAgIGNvbnN0IGZpZWxkID0gY2FjaGVkICYmIGNhY2hlZC5uYW1lID09PSBmaWVsZE5hbWUgPyBjYWNoZWQgOiB7IG5hbWU6IGZpZWxkTmFtZSwga2V5IH07XG4gICAgICAgICAgICBuZXh0Q2FjaGUuc2V0KGtleSwgZmllbGQpO1xuICAgICAgICAgICAgcmV0dXJuIGZpZWxkO1xuICAgICAgICB9KTtcbiAgICAgICAgZmllbGRPYmpDYWNoZS5jdXJyZW50ID0gbmV4dENhY2hlO1xuICAgICAgICByZXR1cm4gZmllbGRzO1xuICAgIH0sIFtsaXN0LCBmdWxsTmFtZV0pO1xuICAgIC8vIE1lbW9pemVkIHNvIHRoZSByb3cgZmFjdG9yeSBpcyByZS1pbnZva2VkIG9ubHkgd2hlbiB0aGUgbGlzdCBpdHNlbGYgKG9yXG4gICAgLy8gdGhlIGNvbnN1bWVyLXByb3ZpZGVkIGNoaWxkcmVuKSBjaGFuZ2VzIOKAlCBuZXZlciBmb3IgdW5yZWxhdGVkIGNvbW1pdHMuXG4gICAgY29uc3QgbGlzdERvbSA9IHVzZU1lbW8oKCkgPT4gKHR5cGVvZiBjaGlsZHJlbiA9PT0gJ2Z1bmN0aW9uJyA/IGNoaWxkcmVuKG1hcHBlZEZpZWxkcywgYWN0aW9uKSA6IGNoaWxkcmVuKSwgW2NoaWxkcmVuLCBtYXBwZWRGaWVsZHMsIGFjdGlvbl0pO1xuICAgIC8vIEFjdGlvbiBidXR0b25zIHBlciByb3cg4oCUIExpc3RSb3dBY3Rpb25zIGlzIHRoZSBtZW1vIGJvdW5kYXJ5XG4gICAgY29uc3QgYWN0aW9uUm93cyA9IGxpc3QubWFwKChyZWNvcmQsIGluZGV4KSA9PiAoX2pzeChMaXN0Um93QWN0aW9ucywgeyBpbmRleDogaW5kZXgsIHJlY29yZDogcmVjb3JkLCBjYW5BZGQ6IGNhbkFkZCwgY2FuUmVtb3ZlOiBjYW5SZW1vdmUsIGNvcHlJY29uUHJvcHM6IGNvcHlJY29uUHJvcHMsIGRlbGV0ZUljb25Qcm9wczogZGVsZXRlSWNvblByb3BzLCBhY3Rpb246IGFjdGlvbiwgYWN0aW9uUmVuZGVyOiBhY3Rpb25SZW5kZXIsIGl0ZW1SZW5kZXI6IGl0ZW1SZW5kZXIsIG9uQ29weTogY29weSwgb25SZW1vdmU6IHJlbW92ZUF0IH0sIGtleXNSZWYuY3VycmVudFtpbmRleF0gfHwgaW5kZXgpKSk7XG4gICAgLy8gQ3JlYXRvciBidXR0b25cbiAgICBjb25zdCBoYXNDcmVhdG9yID0gY3JlYXRvckJ1dHRvblByb3BzICE9PSBmYWxzZTtcbiAgICBjb25zdCBjcmVhdG9yQ29uZmlnID0gaGFzQ3JlYXRvciAmJiB0eXBlb2YgY3JlYXRvckJ1dHRvblByb3BzID09PSAnb2JqZWN0JyA/IGNyZWF0b3JCdXR0b25Qcm9wcyA6IHt9O1xuICAgIGNvbnN0IGNyZWF0b3JQb3NpdGlvbiA9IChfYSA9IGNyZWF0b3JDb25maWcgPT09IG51bGwgfHwgY3JlYXRvckNvbmZpZyA9PT0gdm9pZCAwID8gdm9pZCAwIDogY3JlYXRvckNvbmZpZy5wb3NpdGlvbikgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogJ2JvdHRvbSc7XG4gICAgY29uc3QgY3JlYXRvclRleHQgPSAoX2IgPSBjcmVhdG9yQ29uZmlnID09PSBudWxsIHx8IGNyZWF0b3JDb25maWcgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGNyZWF0b3JDb25maWcudGV4dCkgIT09IG51bGwgJiYgX2IgIT09IHZvaWQgMCA/IF9iIDogREVGQVVMVF9URVhULmFkZDtcbiAgICBjb25zdCBjcmVhdG9yQnV0dG9uID0gaGFzQ3JlYXRvciA/IChfanN4KEJ1dHRvbiwgeyB0eXBlOiBcImJ1dHRvblwiLCBjb2xvcjogXCJzZWNvbmRhcnlcIiwgb25DbGljazogKCkgPT4ge1xuICAgICAgICAgICAgaWYgKGNyZWF0b3JQb3NpdGlvbiA9PT0gJ3RvcCcpIHtcbiAgICAgICAgICAgICAgICBhZGQoe30sIDApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgYWRkKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sIGRpc2FibGVkOiAhY2FuQWRkLCBjaGlsZHJlbjogY3JlYXRvclRleHQgfSkpIDogbnVsbDtcbiAgICBjb25zdCBmb3JtTGlzdENvbnRleHRWYWx1ZSA9IHVzZU1lbW8oKCkgPT4gKHsgbGlzdE5hbWU6IGZ1bGxOYW1lIH0pLCBbZnVsbE5hbWVdKTtcbiAgICByZXR1cm4gKF9qc3goRm9ybUxpc3RDb250ZXh0LlByb3ZpZGVyLCB7IHZhbHVlOiBmb3JtTGlzdENvbnRleHRWYWx1ZSwgY2hpbGRyZW46IF9qc3hzKFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCksIGNoaWxkcmVuOiBbbGFiZWwgJiYgX2pzeChUeXBvZ3JhcGh5TGFiZWwsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCdsYWJlbCcpLCBzaXplOiBQUk9GT1JNX0xJU1RfTEFCRUxfU0laRSwgY29sb3I6IFBST0ZPUk1fTElTVF9MQUJFTF9DT0xPUiwgY2hpbGRyZW46IGxhYmVsIH0pLCBjcmVhdG9yUG9zaXRpb24gPT09ICd0b3AnICYmIGNyZWF0b3JCdXR0b24sIF9qc3goXCJkaXZcIiwgeyBjbGFzc05hbWU6IGNsYXNzZXMoJ2NvbnRlbnQnKSwgY2hpbGRyZW46IGxpc3REb20gfSksIF9qc3goXCJkaXZcIiwgeyBjbGFzc05hbWU6IGNsYXNzZXMoJ2FjdGlvbnMnKSwgY2hpbGRyZW46IGFjdGlvblJvd3MgfSksIGNyZWF0b3JQb3NpdGlvbiA9PT0gJ2JvdHRvbScgJiYgY3JlYXRvckJ1dHRvbiwgbGlzdEVycm9yICYmIF9qc3goVHlwb2dyYXBoeUJvZHksIHsgYXM6IFwiZGl2XCIsIHNpemU6IFwic21cIiwgY29sb3I6IFwiZGFuZ2VyXCIsIGNoaWxkcmVuOiBsaXN0RXJyb3IgfSldIH0pIH0pKTtcbn07XG5Qcm9Gb3JtTGlzdEJhc2UuZGlzcGxheU5hbWUgPSAnUHJvRm9ybUxpc3QnO1xuZXhwb3J0IGNvbnN0IFByb0Zvcm1MaXN0ID0gbWVtbyhQcm9Gb3JtTGlzdEJhc2UpO1xuZXhwb3J0IGRlZmF1bHQgUHJvRm9ybUxpc3Q7IixudWxsXSwic291cmNlUm9vdCI6Ii4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYyJ9
|
|
@@ -62,9 +62,20 @@ var SubmitterBase = function SubmitterBase(props) {
|
|
|
62
62
|
}, _callee);
|
|
63
63
|
}));
|
|
64
64
|
});
|
|
65
|
+
// Reset the values FIRST, then fire the callback chain,
|
|
66
|
+
// so onReset observes the already-reset state. resetFields() itself is a
|
|
67
|
+
// pure state API and fires no callbacks.
|
|
65
68
|
var handleReset = useMemoizedFn(function () {
|
|
66
|
-
onReset === null || onReset === void 0 ? void 0 : onReset();
|
|
67
69
|
form.resetFields();
|
|
70
|
+
onReset === null || onReset === void 0 ? void 0 : onReset();
|
|
71
|
+
});
|
|
72
|
+
// Button onClick chains the consumer's resetButtonProps.onClick (mirroring
|
|
73
|
+
// handleSubmitClick). Overlay close does NOT depend on this — it rides the
|
|
74
|
+
// form-level onReset channel in DialogForm/DrawerForm.
|
|
75
|
+
var handleResetClick = useMemoizedFn(function (e) {
|
|
76
|
+
var _a;
|
|
77
|
+
handleReset();
|
|
78
|
+
(_a = resetButtonProps === null || resetButtonProps === void 0 ? void 0 : resetButtonProps.onClick) === null || _a === void 0 ? void 0 : _a.call(resetButtonProps, e);
|
|
68
79
|
});
|
|
69
80
|
// The default submit button keeps type="submit" so the actual submission
|
|
70
81
|
// flows through the <form> onSubmit handler exactly once — this click
|
|
@@ -80,10 +91,10 @@ var SubmitterBase = function SubmitterBase(props) {
|
|
|
80
91
|
type: "button",
|
|
81
92
|
color: "secondary"
|
|
82
93
|
}, resetButtonProps, {
|
|
83
|
-
onClick:
|
|
94
|
+
onClick: handleResetClick,
|
|
84
95
|
children: resetText
|
|
85
96
|
}), "reset");
|
|
86
|
-
}, [resetText, resetButtonProps,
|
|
97
|
+
}, [resetText, resetButtonProps, handleResetClick]);
|
|
87
98
|
var submitButton = useMemo(function () {
|
|
88
99
|
return _jsx(Button, Object.assign({
|
|
89
100
|
type: "submit",
|
|
@@ -113,4 +124,4 @@ var SubmitterBase = function SubmitterBase(props) {
|
|
|
113
124
|
SubmitterBase.displayName = 'Submitter';
|
|
114
125
|
export var Submitter = /*#__PURE__*/memo(SubmitterBase);
|
|
115
126
|
export default Submitter;
|
|
116
|
-
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvUHJvRm9ybS9TdWJtaXR0ZXIuanMiLCJjb21wb25lbnRzL3NyYy9jb21wb25lbnRzL1Byb0Zvcm0vU3VibWl0dGVyLnRzeCJdLCJuYW1lcyI6WyJfX2F3YWl0ZXIiLCJ0aGlzQXJnIiwiX2FyZ3VtZW50cyIsIlAiLCJnZW5lcmF0b3IiLCJhZG9wdCIsInZhbHVlIiwicmVzb2x2ZSIsIlByb21pc2UiLCJyZWplY3QiLCJmdWxmaWxsZWQiLCJzdGVwIiwibmV4dCIsImUiLCJyZWplY3RlZCIsInJlc3VsdCIsImRvbmUiLCJ0aGVuIiwiYXBwbHkiLCJqc3giLCJfanN4IiwianN4cyIsIl9qc3hzIiwibWVtbyIsInVzZU1lbW8iLCJ1c2VNZW1vaXplZEZuIiwiZGVmYXVsdCIsImNsYXNzbmFtZXMiLCJ1c2VGb3JtSW5zdGFuY2UiLCJCdXR0b24iLCJDU1NfUFJFRklYIiwiREVGQVVMVF9URVhUIiwiY2xhc3NlcyIsImNvbmNhdCIsIlN1Ym1pdHRlckJhc2UiLCJwcm9wcyIsIl9wcm9wcyRzdWJtaXRUZXh0Iiwic3VibWl0VGV4dCIsInN1Ym1pdCIsIl9wcm9wcyRyZXNldFRleHQiLCJyZXNldFRleHQiLCJyZXNldCIsInJlbmRlciIsIm9uU3VibWl0Iiwib25SZXNldCIsInN1Ym1pdEJ1dHRvblByb3BzIiwicmVzZXRCdXR0b25Qcm9wcyIsIl9wcm9wcyRsb2FkaW5nIiwibG9hZGluZyIsImZvcm0iLCJoYW5kbGVTdWJtaXQiLCJfcmVnZW5lcmF0b3JSdW50aW1lIiwibWFyayIsIl9jYWxsZWUiLCJ3cmFwIiwiX2NvbnRleHQiLCJwcmV2Iiwic3VibWl0Rm9ybSIsInN0b3AiLCJoYW5kbGVSZXNldCIsInJlc2V0RmllbGRzIiwiaGFuZGxlU3VibWl0Q2xpY2siLCJfYSIsIm9uQ2xpY2siLCJjYWxsIiwicmVzZXRCdXR0b24iLCJPYmplY3QiLCJhc3NpZ24iLCJ0eXBlIiwiY29sb3IiLCJjaGlsZHJlbiIsInN1Ym1pdEJ1dHRvbiIsImRvbSIs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RSxJQUFJN0IsTUFBTSxFQUFFO0lBQ1YsT0FDRXRCLElBQUEsQ0FBQSxLQUFBLEVBQUE7TUFBS3FELFNBQVMsRUFBRXpDLE9BQU8sQ0FBQSxDQUFFO01BQUFzQyxRQUFBLEVBQ3RCNUIsTUFBTSxDQUFDO1FBQUVPLElBQUksRUFBSkEsSUFBSTtRQUFFWCxNQUFNLEVBQUVZLFlBQVk7UUFBRVQsS0FBSyxFQUFFa0I7TUFBVyxDQUFFLEVBQUVhLEdBQUc7SUFBQyxDQUFBLENBQzVEO0VBRVY7RUFFQSxPQUNFbEQsS0FBQSxDQUFBLEtBQUEsRUFBQTtJQUFLbUQsU0FBUyxFQUFFekMsT0FBTyxDQUFBLENBQUU7SUFBQXNDLFFBQUEsRUFBQSxDQUN0QkwsV0FBVyxFQUNYTSxZQUFZO0VBQUEsQ0FBQSxDQUNUO0FBRVYsQ0FBQztBQUVEckMsYUFBYSxDQUFDd0MsV0FBVyxHQUFHLFdBQVc7QUFFdkMsT0FBTyxJQUFNQyxTQUFTLGdCQUFHcEQsSUFBSSxDQUFDVyxhQUFhLENBQUM7QUFFNUMsZUFBZXlDLFNBQVMiLCJmaWxlIjoiY29tcG9uZW50cy9Qcm9Gb3JtL1N1Ym1pdHRlci5qcyIsInNvdXJjZXNDb250ZW50IjpbInZhciBfX2F3YWl0ZXIgPSAodGhpcyAmJiB0aGlzLl9fYXdhaXRlcikgfHwgZnVuY3Rpb24gKHRoaXNBcmcsIF9hcmd1bWVudHMsIFAsIGdlbmVyYXRvcikge1xuICAgIGZ1bmN0aW9uIGFkb3B0KHZhbHVlKSB7IHJldHVybiB2YWx1ZSBpbnN0YW5jZW9mIFAgPyB2YWx1ZSA6IG5ldyBQKGZ1bmN0aW9uIChyZXNvbHZlKSB7IHJlc29sdmUodmFsdWUpOyB9KTsgfVxuICAgIHJldHVybiBuZXcgKFAgfHwgKFAgPSBQcm9taXNlKSkoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkge1xuICAgICAgICBmdW5jdGlvbiBmdWxmaWxsZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3IubmV4dCh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XG4gICAgICAgIGZ1bmN0aW9uIHJlamVjdGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yW1widGhyb3dcIl0odmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxuICAgICAgICBmdW5jdGlvbiBzdGVwKHJlc3VsdCkgeyByZXN1bHQuZG9uZSA/IHJlc29sdmUocmVzdWx0LnZhbHVlKSA6IGFkb3B0KHJlc3VsdC52YWx1ZSkudGhlbihmdWxmaWxsZWQsIHJlamVjdGVkKTsgfVxuICAgICAgICBzdGVwKChnZW5lcmF0b3IgPSBnZW5lcmF0b3IuYXBwbHkodGhpc0FyZywgX2FyZ3VtZW50cyB8fCBbXSkpLm5leHQoKSk7XG4gICAgfSk7XG59O1xuaW1wb3J0IHsganN4IGFzIF9qc3gsIGpzeHMgYXMgX2pzeHMgfSBmcm9tIFwicmVhY3QvanN4LXJ1bnRpbWVcIjtcbmltcG9ydCB7IG1lbW8sIHVzZU1lbW8gfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgdXNlTWVtb2l6ZWRGbiBmcm9tICdAMW1vbmV5L2hvb2tzL3VzZU1lbW9pemVkRm4nO1xuaW1wb3J0IHsgZGVmYXVsdCBhcyBjbGFzc25hbWVzIH0gZnJvbSAnLi4vLi4vdXRpbHMvY2xhc3NuYW1lcyc7XG5pbXBvcnQgeyB1c2VGb3JtSW5zdGFuY2UgfSBmcm9tICcuL2NvbnRleHQnO1xuaW1wb3J0IHsgQnV0dG9uIH0gZnJvbSAnLi4vQnV0dG9uJztcbmltcG9ydCB7IENTU19QUkVGSVgsIERFRkFVTFRfVEVYVCB9IGZyb20gJy4vY29uc3RhbnRzJztcbmNvbnN0IGNsYXNzZXMgPSBjbGFzc25hbWVzKGAke0NTU19QUkVGSVh9LXN1Ym1pdHRlcmApO1xuY29uc3QgU3VibWl0dGVyQmFzZSA9IChwcm9wcykgPT4ge1xuICAgIGNvbnN0IHsgc3VibWl0VGV4dCA9IERFRkFVTFRfVEVYVC5zdWJtaXQsIHJlc2V0VGV4dCA9IERFRkFVTFRfVEVYVC5yZXNldCwgcmVuZGVyLCBvblN1Ym1pdCwgb25SZXNldCwgc3VibWl0QnV0dG9uUHJvcHMsIHJlc2V0QnV0dG9uUHJvcHMsIGxvYWRpbmcgPSBmYWxzZSwgfSA9IHByb3BzO1xuICAgIGNvbnN0IGZvcm0gPSB1c2VGb3JtSW5zdGFuY2UoKTtcbiAgICBjb25zdCBoYW5kbGVTdWJtaXQgPSB1c2VNZW1vaXplZEZuKCgpID0+IF9fYXdhaXRlcih2b2lkIDAsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICBvblN1Ym1pdCA9PT0gbnVsbCB8fCBvblN1Ym1pdCA9PT0gdm9pZCAwID8gdm9pZCAwIDogb25TdWJtaXQoKTtcbiAgICAgICAgeWllbGQgZm9ybS5zdWJtaXRGb3JtKCk7XG4gICAgfSkpO1xuICAgIGNvbnN0IGhhbmRsZVJlc2V0ID0gdXNlTWVtb2l6ZWRGbigoKSA9PiB7XG4gICAgICAgIG9uUmVzZXQgPT09IG51bGwgfHwgb25SZXNldCA9PT0gdm9pZCAwID8gdm9pZCAwIDogb25SZXNldCgpO1xuICAgICAgICBmb3JtLnJlc2V0RmllbGRzKCk7XG4gICAgfSk7XG4gICAgLy8gVGhlIGRlZmF1bHQgc3VibWl0IGJ1dHRvbiBrZWVwcyB0eXBlPVwic3VibWl0XCIgc28gdGhlIGFjdHVhbCBzdWJtaXNzaW9uXG4gICAgLy8gZmxvd3MgdGhyb3VnaCB0aGUgPGZvcm0+IG9uU3VibWl0IGhhbmRsZXIgZXhhY3RseSBvbmNlIOKAlCB0aGlzIGNsaWNrXG4gICAgLy8gaGFuZGxlciBvbmx5IGZpcmVzIHRoZSB1c2VyJ3Mgb25TdWJtaXQgY2FsbGJhY2sgKHBsdXMgYW55IG9uQ2xpY2sgdGhleVxuICAgIC8vIHBhc3NlZCB2aWEgc3VibWl0QnV0dG9uUHJvcHMpLlxuICAgIGNvbnN0IGhhbmRsZVN1Ym1pdENsaWNrID0gdXNlTWVtb2l6ZWRGbigoZSkgPT4ge1xuICAgICAgICB2YXIgX2E7XG4gICAgICAgIG9uU3VibWl0ID09PSBudWxsIHx8IG9uU3VibWl0ID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvblN1Ym1pdCgpO1xuICAgICAgICAoX2EgPSBzdWJtaXRCdXR0b25Qcm9wcyA9PT0gbnVsbCB8fCBzdWJtaXRCdXR0b25Qcm9wcyA9PT0gdm9pZCAwID8gdm9pZCAwIDogc3VibWl0QnV0dG9uUHJvcHMub25DbGljaykgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmNhbGwoc3VibWl0QnV0dG9uUHJvcHMsIGUpO1xuICAgIH0pO1xuICAgIGNvbnN0IHJlc2V0QnV0dG9uID0gdXNlTWVtbygoKSA9PiAoX2pzeChCdXR0b24sIE9iamVjdC5hc3NpZ24oeyB0eXBlOiBcImJ1dHRvblwiLCBjb2xvcjogXCJzZWNvbmRhcnlcIiB9LCByZXNldEJ1dHRvblByb3BzLCB7IG9uQ2xpY2s6IGhhbmRsZVJlc2V0LCBjaGlsZHJlbjogcmVzZXRUZXh0IH0pLCBcInJlc2V0XCIpKSwgW3Jlc2V0VGV4dCwgcmVzZXRCdXR0b25Qcm9wcywgaGFuZGxlUmVzZXRdKTtcbiAgICBjb25zdCBzdWJtaXRCdXR0b24gPSB1c2VNZW1vKCgpID0+IChfanN4KEJ1dHRvbiwgT2JqZWN0LmFzc2lnbih7IHR5cGU6IFwic3VibWl0XCIsIGNvbG9yOiBcInByaW1hcnlcIiwgbG9hZGluZzogbG9hZGluZyB9LCBzdWJtaXRCdXR0b25Qcm9wcywgeyBvbkNsaWNrOiBoYW5kbGVTdWJtaXRDbGljaywgY2hpbGRyZW46IHN1Ym1pdFRleHQgfSksIFwic3VibWl0XCIpKSwgW3N1Ym1pdFRleHQsIHN1Ym1pdEJ1dHRvblByb3BzLCBsb2FkaW5nLCBoYW5kbGVTdWJtaXRDbGlja10pO1xuICAgIGNvbnN0IGRvbSA9IFtyZXNldEJ1dHRvbiwgc3VibWl0QnV0dG9uXTtcbiAgICBpZiAocmVuZGVyKSB7XG4gICAgICAgIHJldHVybiAoX2pzeChcImRpdlwiLCB7IGNsYXNzTmFtZTogY2xhc3NlcygpLCBjaGlsZHJlbjogcmVuZGVyKHsgZm9ybSwgc3VibWl0OiBoYW5kbGVTdWJtaXQsIHJlc2V0OiBoYW5kbGVSZXNldCB9LCBkb20pIH0pKTtcbiAgICB9XG4gICAgcmV0dXJuIChfanN4cyhcImRpdlwiLCB7IGNsYXNzTmFtZTogY2xhc3NlcygpLCBjaGlsZHJlbjogW3Jlc2V0QnV0dG9uLCBzdWJtaXRCdXR0b25dIH0pKTtcbn07XG5TdWJtaXR0ZXJCYXNlLmRpc3BsYXlOYW1lID0gJ1N1Ym1pdHRlcic7XG5leHBvcnQgY29uc3QgU3VibWl0dGVyID0gbWVtbyhTdWJtaXR0ZXJCYXNlKTtcbmV4cG9ydCBkZWZhdWx0IFN1Ym1pdHRlcjsiLG51bGxdLCJzb3VyY2VSb290IjoiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjIn0=
|
|
127
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvUHJvRm9ybS9TdWJtaXR0ZXIuanMiLCJjb21wb25lbnRzL3NyYy9jb21wb25lbnRzL1Byb0Zvcm0vU3VibWl0dGVyLnRzeCJdLCJuYW1lcyI6WyJfX2F3YWl0ZXIiLCJ0aGlzQXJnIiwiX2FyZ3VtZW50cyIsIlAiLCJnZW5lcmF0b3IiLCJhZG9wdCIsInZhbHVlIiwicmVzb2x2ZSIsIlByb21pc2UiLCJyZWplY3QiLCJmdWxmaWxsZWQiLCJzdGVwIiwibmV4dCIsImUiLCJyZWplY3RlZCIsInJlc3VsdCIsImRvbmUiLCJ0aGVuIiwiYXBwbHkiLCJqc3giLCJfanN4IiwianN4cyIsIl9qc3hzIiwibWVtbyIsInVzZU1lbW8iLCJ1c2VNZW1vaXplZEZuIiwiZGVmYXVsdCIsImNsYXNzbmFtZXMiLCJ1c2VGb3JtSW5zdGFuY2UiLCJCdXR0b24iLCJDU1NfUFJFRklYIiwiREVGQVVMVF9URVhUIiwiY2xhc3NlcyIsImNvbmNhdCIsIlN1Ym1pdHRlckJhc2UiLCJwcm9wcyIsIl9wcm9wcyRzdWJtaXRUZXh0Iiwic3VibWl0VGV4dCIsInN1Ym1pdCIsIl9wcm9wcyRyZXNldFRleHQiLCJyZXNldFRleHQiLCJyZXNldCIsInJlbmRlciIsIm9uU3VibWl0Iiwib25SZXNldCIsInN1Ym1pdEJ1dHRvblByb3BzIiwicmVzZXRCdXR0b25Qcm9wcyIsIl9wcm9wcyRsb2FkaW5nIiwibG9hZGluZyIsImZvcm0iLCJoYW5kbGVTdWJtaXQiLCJfcmVnZW5lcmF0b3JSdW50aW1lIiwibWFyayIsIl9jYWxsZWUiLCJ3cmFwIiwiX2NvbnRleHQiLCJwcmV2Iiwic3VibWl0Rm9ybSIsInN0b3AiLCJoYW5kbGVSZXNldCIsInJlc2V0RmllbGRzIiwiaGFuZGxlUmVzZXRDbGljayIsIl9hIiwib25DbGljayIsImNhbGwiLCJoYW5kbGVTdWJtaXRDbGljayIsInJlc2V0QnV0dG9uIiwiT2JqZWN0IiwiYXNzaWduIiwidHlwZSIsImNvbG9yIiwiY2hpbGRyZW4iLCJz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aXRlciA9ICh0aGlzICYmIHRoaXMuX19hd2FpdGVyKSB8fCBmdW5jdGlvbiAodGhpc0FyZywgX2FyZ3VtZW50cywgUCwgZ2VuZXJhdG9yKSB7XG4gICAgZnVuY3Rpb24gYWRvcHQodmFsdWUpIHsgcmV0dXJuIHZhbHVlIGluc3RhbmNlb2YgUCA/IHZhbHVlIDogbmV3IFAoZnVuY3Rpb24gKHJlc29sdmUpIHsgcmVzb2x2ZSh2YWx1ZSk7IH0pOyB9XG4gICAgcmV0dXJuIG5ldyAoUCB8fCAoUCA9IFByb21pc2UpKShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7XG4gICAgICAgIGZ1bmN0aW9uIGZ1bGZpbGxlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvci5uZXh0KHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cbiAgICAgICAgZnVuY3Rpb24gcmVqZWN0ZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3JbXCJ0aHJvd1wiXSh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XG4gICAgICAgIGZ1bmN0aW9uIHN0ZXAocmVzdWx0KSB7IHJlc3VsdC5kb25lID8gcmVzb2x2ZShyZXN1bHQudmFsdWUpIDogYWRvcHQocmVzdWx0LnZhbHVlKS50aGVuKGZ1bGZpbGxlZCwgcmVqZWN0ZWQpOyB9XG4gICAgICAgIHN0ZXAoKGdlbmVyYXRvciA9IGdlbmVyYXRvci5hcHBseSh0aGlzQXJnLCBfYXJndW1lbnRzIHx8IFtdKSkubmV4dCgpKTtcbiAgICB9KTtcbn07XG5pbXBvcnQgeyBqc3ggYXMgX2pzeCwganN4cyBhcyBfanN4cyB9IGZyb20gXCJyZWFjdC9qc3gtcnVudGltZVwiO1xuaW1wb3J0IHsgbWVtbywgdXNlTWVtbyB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB1c2VNZW1vaXplZEZuIGZyb20gJ0AxbW9uZXkvaG9va3MvdXNlTWVtb2l6ZWRGbic7XG5pbXBvcnQgeyBkZWZhdWx0IGFzIGNsYXNzbmFtZXMgfSBmcm9tICcuLi8uLi91dGlscy9jbGFzc25hbWVzJztcbmltcG9ydCB7IHVzZUZvcm1JbnN0YW5jZSB9IGZyb20gJy4vY29udGV4dCc7XG5pbXBvcnQgeyBCdXR0b24gfSBmcm9tICcuLi9CdXR0b24nO1xuaW1wb3J0IHsgQ1NTX1BSRUZJWCwgREVGQVVMVF9URVhUIH0gZnJvbSAnLi9jb25zdGFudHMnO1xuY29uc3QgY2xhc3NlcyA9IGNsYXNzbmFtZXMoYCR7Q1NTX1BSRUZJWH0tc3VibWl0dGVyYCk7XG5jb25zdCBTdWJtaXR0ZXJCYXNlID0gKHByb3BzKSA9PiB7XG4gICAgY29uc3QgeyBzdWJtaXRUZXh0ID0gREVGQVVMVF9URVhULnN1Ym1pdCwgcmVzZXRUZXh0ID0gREVGQVVMVF9URVhULnJlc2V0LCByZW5kZXIsIG9uU3VibWl0LCBvblJlc2V0LCBzdWJtaXRCdXR0b25Qcm9wcywgcmVzZXRCdXR0b25Qcm9wcywgbG9hZGluZyA9IGZhbHNlLCB9ID0gcHJvcHM7XG4gICAgY29uc3QgZm9ybSA9IHVzZUZvcm1JbnN0YW5jZSgpO1xuICAgIGNvbnN0IGhhbmRsZVN1Ym1pdCA9IHVzZU1lbW9pemVkRm4oKCkgPT4gX19hd2FpdGVyKHZvaWQgMCwgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgIG9uU3VibWl0ID09PSBudWxsIHx8IG9uU3VibWl0ID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvblN1Ym1pdCgpO1xuICAgICAgICB5aWVsZCBmb3JtLnN1Ym1pdEZvcm0oKTtcbiAgICB9KSk7XG4gICAgLy8gUmVzZXQgdGhlIHZhbHVlcyBGSVJTVCwgdGhlbiBmaXJlIHRoZSBjYWxsYmFjayBjaGFpbixcbiAgICAvLyBzbyBvblJlc2V0IG9ic2VydmVzIHRoZSBhbHJlYWR5LXJlc2V0IHN0YXRlLiByZXNldEZpZWxkcygpIGl0c2VsZiBpcyBhXG4gICAgLy8gcHVyZSBzdGF0ZSBBUEkgYW5kIGZpcmVzIG5vIGNhbGxiYWNrcy5cbiAgICBjb25zdCBoYW5kbGVSZXNldCA9IHVzZU1lbW9pemVkRm4oKCkgPT4ge1xuICAgICAgICBmb3JtLnJlc2V0RmllbGRzKCk7XG4gICAgICAgIG9uUmVzZXQgPT09IG51bGwgfHwgb25SZXNldCA9PT0gdm9pZCAwID8gdm9pZCAwIDogb25SZXNldCgpO1xuICAgIH0pO1xuICAgIC8vIEJ1dHRvbiBvbkNsaWNrIGNoYWlucyB0aGUgY29uc3VtZXIncyByZXNldEJ1dHRvblByb3BzLm9uQ2xpY2sgKG1pcnJvcmluZ1xuICAgIC8vIGhhbmRsZVN1Ym1pdENsaWNrKS4gT3ZlcmxheSBjbG9zZSBkb2VzIE5PVCBkZXBlbmQgb24gdGhpcyDigJQgaXQgcmlkZXMgdGhlXG4gICAgLy8gZm9ybS1sZXZlbCBvblJlc2V0IGNoYW5uZWwgaW4gRGlhbG9nRm9ybS9EcmF3ZXJGb3JtLlxuICAgIGNvbnN0IGhhbmRsZVJlc2V0Q2xpY2sgPSB1c2VNZW1vaXplZEZuKChlKSA9PiB7XG4gICAgICAgIHZhciBfYTtcbiAgICAgICAgaGFuZGxlUmVzZXQoKTtcbiAgICAgICAgKF9hID0gcmVzZXRCdXR0b25Qcm9wcyA9PT0gbnVsbCB8fCByZXNldEJ1dHRvblByb3BzID09PSB2b2lkIDAgPyB2b2lkIDAgOiByZXNldEJ1dHRvblByb3BzLm9uQ2xpY2spID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5jYWxsKHJlc2V0QnV0dG9uUHJvcHMsIGUpO1xuICAgIH0pO1xuICAgIC8vIFRoZSBkZWZhdWx0IHN1Ym1pdCBidXR0b24ga2VlcHMgdHlwZT1cInN1Ym1pdFwiIHNvIHRoZSBhY3R1YWwgc3VibWlzc2lvblxuICAgIC8vIGZsb3dzIHRocm91Z2ggdGhlIDxmb3JtPiBvblN1Ym1pdCBoYW5kbGVyIGV4YWN0bHkgb25jZSDigJQgdGhpcyBjbGlja1xuICAgIC8vIGhhbmRsZXIgb25seSBmaXJlcyB0aGUgdXNlcidzIG9uU3VibWl0IGNhbGxiYWNrIChwbHVzIGFueSBvbkNsaWNrIHRoZXlcbiAgICAvLyBwYXNzZWQgdmlhIHN1Ym1pdEJ1dHRvblByb3BzKS5cbiAgICBjb25zdCBoYW5kbGVTdWJtaXRDbGljayA9IHVzZU1lbW9pemVkRm4oKGUpID0+IHtcbiAgICAgICAgdmFyIF9hO1xuICAgICAgICBvblN1Ym1pdCA9PT0gbnVsbCB8fCBvblN1Ym1pdCA9PT0gdm9pZCAwID8gdm9pZCAwIDogb25TdWJtaXQoKTtcbiAgICAgICAgKF9hID0gc3VibWl0QnV0dG9uUHJvcHMgPT09IG51bGwgfHwgc3VibWl0QnV0dG9uUHJvcHMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHN1Ym1pdEJ1dHRvblByb3BzLm9uQ2xpY2spID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5jYWxsKHN1Ym1pdEJ1dHRvblByb3BzLCBlKTtcbiAgICB9KTtcbiAgICBjb25zdCByZXNldEJ1dHRvbiA9IHVzZU1lbW8oKCkgPT4gKF9qc3goQnV0dG9uLCBPYmplY3QuYXNzaWduKHsgdHlwZTogXCJidXR0b25cIiwgY29sb3I6IFwic2Vjb25kYXJ5XCIgfSwgcmVzZXRCdXR0b25Qcm9wcywgeyBvbkNsaWNrOiBoYW5kbGVSZXNldENsaWNrLCBjaGlsZHJlbjogcmVzZXRUZXh0IH0pLCBcInJlc2V0XCIpKSwgW3Jlc2V0VGV4dCwgcmVzZXRCdXR0b25Qcm9wcywgaGFuZGxlUmVzZXRDbGlja10pO1xuICAgIGNvbnN0IHN1Ym1pdEJ1dHRvbiA9IHVzZU1lbW8oKCkgPT4gKF9qc3goQnV0dG9uLCBPYmplY3QuYXNzaWduKHsgdHlwZTogXCJzdWJtaXRcIiwgY29sb3I6IFwicHJpbWFyeVwiLCBsb2FkaW5nOiBsb2FkaW5nIH0sIHN1Ym1pdEJ1dHRvblByb3BzLCB7IG9uQ2xpY2s6IGhhbmRsZVN1Ym1pdENsaWNrLCBjaGlsZHJlbjogc3VibWl0VGV4dCB9KSwgXCJzdWJtaXRcIikpLCBbc3VibWl0VGV4dCwgc3VibWl0QnV0dG9uUHJvcHMsIGxvYWRpbmcsIGhhbmRsZVN1Ym1pdENsaWNrXSk7XG4gICAgY29uc3QgZG9tID0gW3Jlc2V0QnV0dG9uLCBzdWJtaXRCdXR0b25dO1xuICAgIGlmIChyZW5kZXIpIHtcbiAgICAgICAgcmV0dXJuIChfanN4KFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCksIGNoaWxkcmVuOiByZW5kZXIoeyBmb3JtLCBzdWJtaXQ6IGhhbmRsZVN1Ym1pdCwgcmVzZXQ6IGhhbmRsZVJlc2V0IH0sIGRvbSkgfSkpO1xuICAgIH1cbiAgICByZXR1cm4gKF9qc3hzKFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCksIGNoaWxkcmVuOiBbcmVzZXRCdXR0b24sIHN1Ym1pdEJ1dHRvbl0gfSkpO1xufTtcblN1Ym1pdHRlckJhc2UuZGlzcGxheU5hbWUgPSAnU3VibWl0dGVyJztcbmV4cG9ydCBjb25zdCBTdWJtaXR0ZXIgPSBtZW1vKFN1Ym1pdHRlckJhc2UpO1xuZXhwb3J0IGRlZmF1bHQgU3VibWl0dGVyOyIsbnVsbF0sInNvdXJjZVJvb3QiOiIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMifQ==
|
|
@@ -1,8 +1,15 @@
|
|
|
1
|
+
import type { FormStore } from './core/formStore';
|
|
1
2
|
import type { ProFormContextValue, ProFormStableContextValue, ProFormStateContextValue, FormListContextValue, ProFormFormInstance } from './interface';
|
|
2
3
|
export declare const ProFormStableContext: import("react").Context<ProFormStableContextValue | null>;
|
|
3
|
-
export declare const ProFormStateContext: import("react").Context<
|
|
4
|
+
export declare const ProFormStateContext: import("react").Context<FormStore | null>;
|
|
4
5
|
/** Read ONLY the stable slice (config + dispatchers) — no per-keystroke re-renders. */
|
|
5
6
|
export declare const useProFormStable: () => ProFormStableContextValue;
|
|
7
|
+
/**
|
|
8
|
+
* Internal: the raw form store (identity-stable — reading it never causes
|
|
9
|
+
* re-renders by itself). Pair with `useStoreSelector` for fine-grained,
|
|
10
|
+
* per-field subscriptions. Throws when used outside `<ProForm>`.
|
|
11
|
+
*/
|
|
12
|
+
export declare const useProFormStore: () => FormStore;
|
|
6
13
|
/** Read ONLY the volatile slice (values/errors/…) — re-renders on every change. */
|
|
7
14
|
export declare const useProFormState: () => ProFormStateContextValue;
|
|
8
15
|
/**
|
|
@@ -24,8 +31,9 @@ export interface UseFormWatch {
|
|
|
24
31
|
(): Record<string, unknown>;
|
|
25
32
|
}
|
|
26
33
|
/**
|
|
27
|
-
* Watch a single field or the whole values object. Re-renders whenever
|
|
28
|
-
*
|
|
34
|
+
* Watch a single field or the whole values object. Re-renders whenever the
|
|
35
|
+
* WATCHED value changes (unrelated fields no longer cause re-renders).
|
|
36
|
+
* Lighter alternative to the `ProForm.Dependency` render-prop.
|
|
29
37
|
*/
|
|
30
38
|
export declare const useFormWatch: UseFormWatch;
|
|
31
39
|
export declare const FormListContext: import("react").Context<FormListContextValue>;
|
|
@@ -1,11 +1,14 @@
|
|
|
1
1
|
import { createContext, useContext, useMemo } from 'react';
|
|
2
2
|
import { resolveValue } from './core/pathUtils';
|
|
3
|
+
import { useStoreSelector } from './core/formStore';
|
|
3
4
|
// ---------------------------------------------------------------------------
|
|
4
5
|
// The ProForm context is SPLIT in two so that consumers which only need
|
|
5
6
|
// configuration / dispatchers (Submitter, field factories) do not re-render
|
|
6
7
|
// on every keystroke:
|
|
7
8
|
// - StableContext: config + identity-stable dispatchers and form instance.
|
|
8
|
-
// - StateContext:
|
|
9
|
+
// - StateContext: holds the IDENTITY-STABLE form store, never a snapshot —
|
|
10
|
+
// per-keystroke updates reach subscribers through store subscriptions
|
|
11
|
+
// (useStoreSelector with per-field selectors), not context propagation.
|
|
9
12
|
// ---------------------------------------------------------------------------
|
|
10
13
|
export var ProFormStableContext = /*#__PURE__*/createContext(null);
|
|
11
14
|
ProFormStableContext.displayName = 'ProFormStableContext';
|
|
@@ -20,13 +23,28 @@ export var useProFormStable = function useProFormStable() {
|
|
|
20
23
|
}
|
|
21
24
|
return ctx;
|
|
22
25
|
};
|
|
23
|
-
/**
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
26
|
+
/**
|
|
27
|
+
* Internal: the raw form store (identity-stable — reading it never causes
|
|
28
|
+
* re-renders by itself). Pair with `useStoreSelector` for fine-grained,
|
|
29
|
+
* per-field subscriptions. Throws when used outside `<ProForm>`.
|
|
30
|
+
*/
|
|
31
|
+
export var useProFormStore = function useProFormStore() {
|
|
32
|
+
var store = useContext(ProFormStateContext);
|
|
33
|
+
if (!store) {
|
|
27
34
|
throw new Error(OUTSIDE_FORM_ERROR);
|
|
28
35
|
}
|
|
29
|
-
return
|
|
36
|
+
return store;
|
|
37
|
+
};
|
|
38
|
+
var selectStateSnapshot = function selectStateSnapshot(state) {
|
|
39
|
+
return state;
|
|
40
|
+
};
|
|
41
|
+
/** Read ONLY the volatile slice (values/errors/…) — re-renders on every change. */
|
|
42
|
+
export var useProFormState = function useProFormState() {
|
|
43
|
+
var store = useProFormStore();
|
|
44
|
+
// Subscribe to every commit (the snapshot identity changes per commit) —
|
|
45
|
+
// that broad granularity is this hook's documented contract; fine-grained
|
|
46
|
+
// consumers use useStoreSelector with a narrower selector instead.
|
|
47
|
+
return useStoreSelector(store, selectStateSnapshot);
|
|
30
48
|
};
|
|
31
49
|
/**
|
|
32
50
|
* Read the unified ProForm context (merged form core + ProForm semantics).
|
|
@@ -49,13 +67,15 @@ export var useFormInstance = function useFormInstance() {
|
|
|
49
67
|
return useProFormStable().formInstance;
|
|
50
68
|
};
|
|
51
69
|
/**
|
|
52
|
-
* Watch a single field or the whole values object. Re-renders whenever
|
|
53
|
-
*
|
|
70
|
+
* Watch a single field or the whole values object. Re-renders whenever the
|
|
71
|
+
* WATCHED value changes (unrelated fields no longer cause re-renders).
|
|
72
|
+
* Lighter alternative to the `ProForm.Dependency` render-prop.
|
|
54
73
|
*/
|
|
55
74
|
export var useFormWatch = function useFormWatch(name) {
|
|
56
|
-
var
|
|
57
|
-
|
|
58
|
-
|
|
75
|
+
var store = useProFormStore();
|
|
76
|
+
return useStoreSelector(store, function (state) {
|
|
77
|
+
return name === undefined ? state.values : resolveValue(state.values, name);
|
|
78
|
+
});
|
|
59
79
|
};
|
|
60
80
|
// ---------------------------------------------------------------------------
|
|
61
81
|
// FormListContext — provides list scope info to ProFormDependency
|
|
@@ -65,4 +85,4 @@ FormListContext.displayName = 'FormListContext';
|
|
|
65
85
|
export var useFormListContext = function useFormListContext() {
|
|
66
86
|
return useContext(FormListContext);
|
|
67
87
|
};
|
|
68
|
-
//# sourceMappingURL=data:application/json;charset=utf8;base64,
|
|
88
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvc3JjL2NvbXBvbmVudHMvUHJvRm9ybS9jb250ZXh0LnRzIiwiY29tcG9uZW50cy9Qcm9Gb3JtL2NvbnRleHQuanMiXSwibmFtZXMiOlsiY3JlYXRlQ29udGV4dCIsInVzZUNvbnRleHQiLCJ1c2VNZW1vIiwicmVzb2x2ZVZhbHVlIiwidXNlU3RvcmVTZWxlY3RvciIsIlByb0Zvcm1TdGFibGVDb250ZXh0IiwiZGlzcGxheU5hbWUiLCJQcm9Gb3JtU3RhdGVDb250ZXh0IiwiT1VUU0lERV9GT1JNX0VSUk9SIiwidXNlUHJvRm9ybVN0YWJsZSIsImN0eCIsIkVycm9yIiwidXNlUHJvRm9ybVN0b3JlIiwic3RvcmUiLCJzZWxlY3RTdGF0ZVNuYXBzaG90Iiwic3RhdGUiLCJ1c2VQcm9Gb3JtU3RhdGUiLCJ1c2VQcm9Gb3JtQ29udGV4dCIsInN0YWJsZSIsIk9iamVjdCIsImFzc2lnbiIsInVzZUZvcm1JbnN0YW5jZSIsImZvcm1JbnN0YW5jZSIsInVzZUZvcm1XYXRjaCIsIm5hbWUiLCJ1bmRlZmluZWQiLCJ2YWx1ZXMiLCJGb3JtTGlzdENvbnRleHQiLCJ1c2VGb3JtTGlzdENvbnRleHQiXSwibWFwcGluZ3MiOiJBQUFBLFNBQVNBLGFBQWEsRUFBRUMsVUFBVSxFQUFFQyxPQUFPLFFBQVEsT0FBTztBQUMxRCxTQUFTQyxZQUFZLFFBQVEsa0JBQWtCO0FBQy9DLFNBQVNDLGdCQUFnQixRQUFRLGtCQUFrQjtBQVVuRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPLElBQU1DLG9CQUFvQixnQkFBR0wsYUFBYSxDQUFtQyxJQUFJLENBQUM7QUFDekZLLG9CQUFvQixDQUFDQyxXQUFXLEdBQUcsc0JBQXNCO0FBRXpELE9BQU8sSUFBTUMsbUJBQW1CLGdCQUFHUCxhQUFhLENBQW1CLElBQUksQ0FBQztBQUN4RU8sbUJBQW1CLENBQUNELFdBQVcsR0FBRyxxQkFBcUI7QUFFdkQsSUFBTUUsa0JBQWtCLEdBQUcsNkRBQTZEO0FBRXhGO0FBQ0EsT0FBTyxJQUFNQyxnQkFBZ0IsR0FBRyxTQUFuQkEsZ0JBQWdCQSxDQUFBLEVBQW1DO0VBQzlELElBQU1DLEdBQUcsR0FBR1QsVUFBVSxDQUFDSSxvQkFBb0IsQ0FBQztFQUM1QyxJQUFJLENBQUNLLEdBQUcsRUFBRTtJQUNSLE1BQU0sSUFBSUMsS0FBSyxDQUFDSCxrQkFBa0IsQ0FBQztFQUNyQztFQUNBLE9BQU9FLEdBQUc7QUFDWixDQUFDO0FBRUQ7QUNaQTtBQUNBO0FBQ0E7QUFDQTtBRGNBLE9BQU8sSUFBTUUsZUFBZSxHQUFHLFNBQWxCQSxlQUFlQSxDQUFBLEVBQW1CO0VBQzdDLElBQU1DLEtBQUssR0FBR1osVUFBVSxDQUFDTSxtQkFBbUIsQ0FBQztFQUM3QyxJQUFJLENBQUNNLEtBQUssRUFBRTtJQUNWLE1BQU0sSUFBSUYsS0FBSyxDQUFDSCxrQkFBa0IsQ0FBQztFQUNyQztFQUNBLE9BQU9LLEtBQUs7QUFDZCxDQUFDO0FBRUQsSUFBTUMsbUJBQW1CLEdBQUcsU0FBdEJBLG1CQUFtQkEsQ0FBSUMsS0FBcUI7RUFBQSxPQUErQkEsS0FBSztBQUFBO0FBRXRGO0FBQ0EsT0FBTyxJQUFNQyxlQUFlLEdBQUcsU0FBbEJBLGVBQWVBLENBQUEsRUFBa0M7RUFDNUQsSUFBTUgsS0FBSyxHQUFHRCxlQUFlLENBQUEsQ0FBRTtFQUMvQjtFQUNBO0VBQ0E7RUFDQSxPQUFPUixnQkFBZ0IsQ0FBQ1MsS0FBSyxFQUFFQyxtQkFBbUIsQ0FBQztBQUNyRCxDQUFDO0FBRUQ7QUNmQTtBQUNBO0FBQ0E7QUFDQTtBRGlCQSxPQUFPLElBQU1HLGlCQUFpQixHQUFHLFNBQXBCQSxpQkFBaUJBLENBQUEsRUFBNkI7RUFDekQsSUFBTUMsTUFBTSxHQUFHVCxnQkFBZ0IsQ0FBQSxDQUFFO0VBQ2pDLElBQU1NLEtBQUssR0FBR0MsZUFBZSxDQUFBLENBQUU7RUFDL0IsT0FBT2QsT0FBTyxDQUFDO0lBQUEsT0FBTWlCLE1BQUEsQ0FBQUMsTUFBQSxDQUFBRCxNQUFBLENBQUFDLE1BQUEsQ0FBQSxDQUFBLENBQUEsRUFBTUYsTUFBTSxDQUFBLEVBQUtILEtBQUssQ0FBQTtFQUFBLENBQUcsRUFBRSxDQUFDRyxNQUFNLEVBQUVILEtBQUssQ0FBQyxDQUFDO0FBQ2xFLENBQUM7QUFFRDtBQ2hCQTtBQUNBO0FBQ0E7QUFDQTtBRGtCQSxPQUFPLElBQU1NLGVBQWUsR0FBRyxTQUFsQkEsZUFBZUEsQ0FBQSxFQUF1RTtFQUNqRyxPQUFPWixnQkFBZ0IsQ0FBQSxDQUFFLENBQUNhLFlBQTJDO0FBQ3ZFLENBQUM7QUFTRDtBQ3hCQTtBQUNBO0FBQ0E7QUFDQTtBRDBCQSxPQUFPLElBQU1DLFlBQVksR0FBa0IsU0FBOUJBLFlBQVlBLENBQW1CQyxJQUFhLEVBQUk7RUFDM0QsSUFBTVgsS0FBSyxHQUFHRCxlQUFlLENBQUEsQ0FBRTtFQUMvQixPQUFPUixnQkFBZ0IsQ0FBQ1MsS0FBSyxFQUFFLFVBQUNFLEtBQUs7SUFBQSxPQUNuQ1MsSUFBSSxLQUFLQyxTQUFTLEdBQUdWLEtBQUssQ0FBQ1csTUFBTSxHQUFHdkIsWUFBWSxDQUFDWSxLQUFLLENBQUNXLE1BQU0sRUFBRUYsSUFBSSxDQUFDO0VBQUEsRUFDckU7QUFDSCxDQUFrQjtBQUVsQjtBQUNBO0FBQ0E7QUFDQSxPQUFPLElBQU1HLGVBQWUsZ0JBQUczQixhQUFhLENBQXVCLENBQUEsQ0FBRSxDQUFDO0FBRXRFMkIsZUFBZSxDQUFDckIsV0FBVyxHQUFHLGlCQUFpQjtBQUUvQyxPQUFPLElBQU1zQixrQkFBa0IsR0FBRyxTQUFyQkEsa0JBQWtCQSxDQUFBO0VBQUEsT0FBK0IzQixVQUFVLENBQUMwQixlQUFlLENBQUM7QUFBQSIsImZpbGUiOiJjb21wb25lbnRzL1Byb0Zvcm0vY29udGV4dC5qcyIsInNvdXJjZXNDb250ZW50IjpbbnVsbCwiaW1wb3J0IHsgY3JlYXRlQ29udGV4dCwgdXNlQ29udGV4dCwgdXNlTWVtbyB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHJlc29sdmVWYWx1ZSB9IGZyb20gJy4vY29yZS9wYXRoVXRpbHMnO1xuaW1wb3J0IHsgdXNlU3RvcmVTZWxlY3RvciB9IGZyb20gJy4vY29yZS9mb3JtU3RvcmUnO1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBUaGUgUHJvRm9ybSBjb250ZXh0IGlzIFNQTElUIGluIHR3byBzbyB0aGF0IGNvbnN1bWVycyB3aGljaCBvbmx5IG5lZWRcbi8vIGNvbmZpZ3VyYXRpb24gLyBkaXNwYXRjaGVycyAoU3VibWl0dGVyLCBmaWVsZCBmYWN0b3JpZXMpIGRvIG5vdCByZS1yZW5kZXJcbi8vIG9uIGV2ZXJ5IGtleXN0cm9rZTpcbi8vIC0gU3RhYmxlQ29udGV4dDogY29uZmlnICsgaWRlbnRpdHktc3RhYmxlIGRpc3BhdGNoZXJzIGFuZCBmb3JtIGluc3RhbmNlLlxuLy8gLSBTdGF0ZUNvbnRleHQ6IGhvbGRzIHRoZSBJREVOVElUWS1TVEFCTEUgZm9ybSBzdG9yZSwgbmV2ZXIgYSBzbmFwc2hvdCDigJRcbi8vICAgcGVyLWtleXN0cm9rZSB1cGRhdGVzIHJlYWNoIHN1YnNjcmliZXJzIHRocm91Z2ggc3RvcmUgc3Vic2NyaXB0aW9uc1xuLy8gICAodXNlU3RvcmVTZWxlY3RvciB3aXRoIHBlci1maWVsZCBzZWxlY3RvcnMpLCBub3QgY29udGV4dCBwcm9wYWdhdGlvbi5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuZXhwb3J0IGNvbnN0IFByb0Zvcm1TdGFibGVDb250ZXh0ID0gY3JlYXRlQ29udGV4dChudWxsKTtcblByb0Zvcm1TdGFibGVDb250ZXh0LmRpc3BsYXlOYW1lID0gJ1Byb0Zvcm1TdGFibGVDb250ZXh0JztcbmV4cG9ydCBjb25zdCBQcm9Gb3JtU3RhdGVDb250ZXh0ID0gY3JlYXRlQ29udGV4dChudWxsKTtcblByb0Zvcm1TdGF0ZUNvbnRleHQuZGlzcGxheU5hbWUgPSAnUHJvRm9ybVN0YXRlQ29udGV4dCc7XG5jb25zdCBPVVRTSURFX0ZPUk1fRVJST1IgPSAndXNlUHJvRm9ybUNvbnRleHQgbXVzdCBiZSB1c2VkIHdpdGhpbiBhIDxQcm9Gb3JtPiBjb21wb25lbnQnO1xuLyoqIFJlYWQgT05MWSB0aGUgc3RhYmxlIHNsaWNlIChjb25maWcgKyBkaXNwYXRjaGVycykg4oCUIG5vIHBlci1rZXlzdHJva2UgcmUtcmVuZGVycy4gKi9cbmV4cG9ydCBjb25zdCB1c2VQcm9Gb3JtU3RhYmxlID0gKCkgPT4ge1xuICAgIGNvbnN0IGN0eCA9IHVzZUNvbnRleHQoUHJvRm9ybVN0YWJsZUNvbnRleHQpO1xuICAgIGlmICghY3R4KSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihPVVRTSURFX0ZPUk1fRVJST1IpO1xuICAgIH1cbiAgICByZXR1cm4gY3R4O1xufTtcbi8qKlxuICogSW50ZXJuYWw6IHRoZSByYXcgZm9ybSBzdG9yZSAoaWRlbnRpdHktc3RhYmxlIOKAlCByZWFkaW5nIGl0IG5ldmVyIGNhdXNlc1xuICogcmUtcmVuZGVycyBieSBpdHNlbGYpLiBQYWlyIHdpdGggYHVzZVN0b3JlU2VsZWN0b3JgIGZvciBmaW5lLWdyYWluZWQsXG4gKiBwZXItZmllbGQgc3Vic2NyaXB0aW9ucy4gVGhyb3dzIHdoZW4gdXNlZCBvdXRzaWRlIGA8UHJvRm9ybT5gLlxuICovXG5leHBvcnQgY29uc3QgdXNlUHJvRm9ybVN0b3JlID0gKCkgPT4ge1xuICAgIGNvbnN0IHN0b3JlID0gdXNlQ29udGV4dChQcm9Gb3JtU3RhdGVDb250ZXh0KTtcbiAgICBpZiAoIXN0b3JlKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihPVVRTSURFX0ZPUk1fRVJST1IpO1xuICAgIH1cbiAgICByZXR1cm4gc3RvcmU7XG59O1xuY29uc3Qgc2VsZWN0U3RhdGVTbmFwc2hvdCA9IChzdGF0ZSkgPT4gc3RhdGU7XG4vKiogUmVhZCBPTkxZIHRoZSB2b2xhdGlsZSBzbGljZSAodmFsdWVzL2Vycm9ycy/igKYpIOKAlCByZS1yZW5kZXJzIG9uIGV2ZXJ5IGNoYW5nZS4gKi9cbmV4cG9ydCBjb25zdCB1c2VQcm9Gb3JtU3RhdGUgPSAoKSA9PiB7XG4gICAgY29uc3Qgc3RvcmUgPSB1c2VQcm9Gb3JtU3RvcmUoKTtcbiAgICAvLyBTdWJzY3JpYmUgdG8gZXZlcnkgY29tbWl0ICh0aGUgc25hcHNob3QgaWRlbnRpdHkgY2hhbmdlcyBwZXIgY29tbWl0KSDigJRcbiAgICAvLyB0aGF0IGJyb2FkIGdyYW51bGFyaXR5IGlzIHRoaXMgaG9vaydzIGRvY3VtZW50ZWQgY29udHJhY3Q7IGZpbmUtZ3JhaW5lZFxuICAgIC8vIGNvbnN1bWVycyB1c2UgdXNlU3RvcmVTZWxlY3RvciB3aXRoIGEgbmFycm93ZXIgc2VsZWN0b3IgaW5zdGVhZC5cbiAgICByZXR1cm4gdXNlU3RvcmVTZWxlY3RvcihzdG9yZSwgc2VsZWN0U3RhdGVTbmFwc2hvdCk7XG59O1xuLyoqXG4gKiBSZWFkIHRoZSB1bmlmaWVkIFByb0Zvcm0gY29udGV4dCAobWVyZ2VkIGZvcm0gY29yZSArIFByb0Zvcm0gc2VtYW50aWNzKS5cbiAqIFN1YnNjcmliZXMgdG8gQk9USCBzbGljZXMg4oCUIHJlLXJlbmRlcnMgd2hlbmV2ZXIgZm9ybSB2YWx1ZXMgY2hhbmdlLlxuICogVGhyb3dzIHdoZW4gdXNlZCBvdXRzaWRlIGA8UHJvRm9ybT5gLlxuICovXG5leHBvcnQgY29uc3QgdXNlUHJvRm9ybUNvbnRleHQgPSAoKSA9PiB7XG4gICAgY29uc3Qgc3RhYmxlID0gdXNlUHJvRm9ybVN0YWJsZSgpO1xuICAgIGNvbnN0IHN0YXRlID0gdXNlUHJvRm9ybVN0YXRlKCk7XG4gICAgcmV0dXJuIHVzZU1lbW8oKCkgPT4gKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgc3RhYmxlKSwgc3RhdGUpKSwgW3N0YWJsZSwgc3RhdGVdKTtcbn07XG4vKipcbiAqIFJlYWQgdGhlIFByb0Zvcm0gZm9ybSBpbnN0YW5jZSAoc3VwZXJzZXQgb2YgRm9ybUNvcmVJbnN0YW5jZSB3aXRoIGZvcm1hdCBoZWxwZXJzKS5cbiAqIFN1YnNjcmliZXMgb25seSB0byB0aGUgc3RhYmxlIHNsaWNlIOKAlCBkb2VzIE5PVCByZS1yZW5kZXIgcGVyIGtleXN0cm9rZS5cbiAqIFBhc3MgYSBgVmFsdWVzYCB0eXBlIGFyZ3VtZW50IHRvIGdldCBhIHR5cGVkIGluc3RhbmNlLlxuICovXG5leHBvcnQgY29uc3QgdXNlRm9ybUluc3RhbmNlID0gKCkgPT4ge1xuICAgIHJldHVybiB1c2VQcm9Gb3JtU3RhYmxlKCkuZm9ybUluc3RhbmNlO1xufTtcbi8qKlxuICogV2F0Y2ggYSBzaW5nbGUgZmllbGQgb3IgdGhlIHdob2xlIHZhbHVlcyBvYmplY3QuIFJlLXJlbmRlcnMgd2hlbmV2ZXIgdGhlXG4gKiBXQVRDSEVEIHZhbHVlIGNoYW5nZXMgKHVucmVsYXRlZCBmaWVsZHMgbm8gbG9uZ2VyIGNhdXNlIHJlLXJlbmRlcnMpLlxuICogTGlnaHRlciBhbHRlcm5hdGl2ZSB0byB0aGUgYFByb0Zvcm0uRGVwZW5kZW5jeWAgcmVuZGVyLXByb3AuXG4gKi9cbmV4cG9ydCBjb25zdCB1c2VGb3JtV2F0Y2ggPSAoKG5hbWUpID0+IHtcbiAgICBjb25zdCBzdG9yZSA9IHVzZVByb0Zvcm1TdG9yZSgpO1xuICAgIHJldHVybiB1c2VTdG9yZVNlbGVjdG9yKHN0b3JlLCAoc3RhdGUpID0+IG5hbWUgPT09IHVuZGVmaW5lZCA/IHN0YXRlLnZhbHVlcyA6IHJlc29sdmVWYWx1ZShzdGF0ZS52YWx1ZXMsIG5hbWUpKTtcbn0pO1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBGb3JtTGlzdENvbnRleHQg4oCUIHByb3ZpZGVzIGxpc3Qgc2NvcGUgaW5mbyB0byBQcm9Gb3JtRGVwZW5kZW5jeVxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5leHBvcnQgY29uc3QgRm9ybUxpc3RDb250ZXh0ID0gY3JlYXRlQ29udGV4dCh7fSk7XG5Gb3JtTGlzdENvbnRleHQuZGlzcGxheU5hbWUgPSAnRm9ybUxpc3RDb250ZXh0JztcbmV4cG9ydCBjb25zdCB1c2VGb3JtTGlzdENvbnRleHQgPSAoKSA9PiB1c2VDb250ZXh0KEZvcm1MaXN0Q29udGV4dCk7Il0sInNvdXJjZVJvb3QiOiIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMifQ==
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { TypographyBodySize, TypographyColor, TypographyLabelSize } from "../../Typography";
|
|
2
|
-
export declare const FORM_SIZES: readonly ["large", "
|
|
2
|
+
export declare const FORM_SIZES: readonly ["large", "small"];
|
|
3
3
|
export declare const FORM_LAYOUTS: readonly ["vertical"];
|
|
4
4
|
export declare const LABEL_ALIGNS: readonly ["left", "right"];
|
|
5
5
|
export declare const VALIDATE_STATUSES: readonly ["success", "warning", "error", "validating"];
|
|
@@ -9,7 +9,7 @@ export type FormLayout = (typeof FORM_LAYOUTS)[number];
|
|
|
9
9
|
export type LabelAlign = (typeof LABEL_ALIGNS)[number];
|
|
10
10
|
export type ValidateStatus = (typeof VALIDATE_STATUSES)[number];
|
|
11
11
|
export type ValidateTrigger = (typeof VALIDATE_TRIGGERS)[number];
|
|
12
|
-
export declare const
|
|
12
|
+
export declare const FORM_LABEL_SIZES: Record<FormSize, TypographyLabelSize>;
|
|
13
13
|
export declare const FORM_LABEL_COLOR: TypographyColor;
|
|
14
14
|
export declare const FORM_ERROR_SIZE: TypographyBodySize;
|
|
15
15
|
export declare const FORM_ERROR_COLOR: TypographyColor;
|
|
@@ -20,6 +20,14 @@ export declare const FORM_DESCRIPTION_COLOR: TypographyColor;
|
|
|
20
20
|
export declare const FORM_FEEDBACK_SIZE: TypographyBodySize;
|
|
21
21
|
export declare const FORM_FEEDBACK_COLOR: TypographyColor;
|
|
22
22
|
export declare const FORM_COMPONENT_NAMES: readonly ["Input", "InputNumber", "InputPassword", "InputTextArea", "InputSearch", "InputOTP", "InputTrade", "InputAmount", "InputMask", "Select", "BaseSelect", "DatePicker", "TimePicker", "Calendar", "Checkbox", "CheckboxGroup", "Radio", "RadioGroup", "Switch", "Slider", "TextArea"];
|
|
23
|
+
/**
|
|
24
|
+
* Form controls that declare a `size` prop accepting `'large' | 'small'`.
|
|
25
|
+
* `injectField` cascades the form-level `size` into these as a DEFAULT — an
|
|
26
|
+
* explicit field-level `size` (own prop or via `fieldProps`) wins. Controls
|
|
27
|
+
* without a size prop (Checkbox, Switch, Slider, …) must stay off this list:
|
|
28
|
+
* an unknown `size` prop could leak onto the DOM element.
|
|
29
|
+
*/
|
|
30
|
+
export declare const SIZE_AWARE_COMPONENT_NAMES: readonly string[];
|
|
23
31
|
/**
|
|
24
32
|
* Text-like form controls whose empty value must default to '' (a controlled
|
|
25
33
|
* string input) rather than undefined. Used by `injectField` to pick a safe
|