@1money/react-ui 1.16.0 → 1.17.0
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/AGENTS.md +393 -0
- package/es/components/CheckboxGroup/CheckboxGroup.d.ts +3 -3
- package/es/components/CheckboxGroup/CheckboxGroup.js +94 -91
- package/es/components/CheckboxGroup/interface.d.ts +21 -15
- package/es/components/CheckboxGroup/style/CheckboxGroup.scss +0 -7
- package/es/components/Form/Form.d.ts +29 -0
- package/es/components/Form/Form.js +188 -0
- package/es/components/Form/FormItem.d.ts +4 -0
- package/es/components/Form/FormItem.js +165 -0
- package/es/components/Form/FormItemContent.d.ts +18 -0
- package/es/components/Form/FormItemContent.js +146 -0
- package/es/components/Form/constants.d.ts +46 -0
- package/es/components/Form/constants.js +65 -0
- package/es/components/Form/helper.d.ts +120 -0
- package/es/components/Form/helper.js +284 -0
- package/es/components/Form/index.d.ts +20 -0
- package/es/components/Form/index.js +21 -0
- package/es/components/Form/interface.d.ts +238 -0
- package/es/components/Form/interface.js +2 -0
- package/es/components/Form/style/Form.css +1 -0
- package/es/components/Form/style/Form.scss +167 -0
- package/es/components/Form/style/css.js +2 -0
- package/es/components/Form/style/index.d.ts +1 -0
- package/es/components/Form/style/index.js +2 -0
- package/es/components/Form/useFormItemContext.d.ts +32 -0
- package/es/components/Form/useFormItemContext.js +55 -0
- package/es/components/Form/useFormItemWatch.d.ts +51 -0
- package/es/components/Form/useFormItemWatch.js +69 -0
- package/es/components/Form/useValidationTrigger.d.ts +40 -0
- package/es/components/Form/useValidationTrigger.js +74 -0
- package/es/components/Input/Input.js +72 -74
- package/es/components/Input/interface.d.ts +9 -9
- package/es/components/InputAmount/InputAmount.js +228 -276
- package/es/components/InputAmount/helper.d.ts +46 -0
- package/es/components/InputAmount/helper.js +115 -0
- package/es/components/ProForm/ProForm.d.ts +33 -0
- package/es/components/ProForm/ProForm.js +208 -0
- package/es/components/ProForm/ProFormDependency.d.ts +12 -0
- package/es/components/ProForm/ProFormDependency.js +61 -0
- package/es/components/ProForm/ProFormList.d.ts +19 -0
- package/es/components/ProForm/ProFormList.js +348 -0
- package/es/components/ProForm/Submitter.d.ts +21 -0
- package/es/components/ProForm/Submitter.js +76 -0
- package/es/components/ProForm/constants.d.ts +34 -0
- package/es/components/ProForm/constants.js +40 -0
- package/es/components/ProForm/fields/ProFormCheckbox.d.ts +6 -0
- package/es/components/ProForm/fields/ProFormCheckbox.js +11 -0
- package/es/components/ProForm/fields/ProFormCheckboxGroup.d.ts +6 -0
- package/es/components/ProForm/fields/ProFormCheckboxGroup.js +46 -0
- package/es/components/ProForm/fields/ProFormDigit.d.ts +6 -0
- package/es/components/ProForm/fields/ProFormDigit.js +15 -0
- package/es/components/ProForm/fields/ProFormMoney.d.ts +6 -0
- package/es/components/ProForm/fields/ProFormMoney.js +10 -0
- package/es/components/ProForm/fields/ProFormMultiSelect.d.ts +6 -0
- package/es/components/ProForm/fields/ProFormMultiSelect.js +27 -0
- package/es/components/ProForm/fields/ProFormPassword.d.ts +6 -0
- package/es/components/ProForm/fields/ProFormPassword.js +16 -0
- package/es/components/ProForm/fields/ProFormRadio.d.ts +6 -0
- package/es/components/ProForm/fields/ProFormRadio.js +13 -0
- package/es/components/ProForm/fields/ProFormSelect.d.ts +6 -0
- package/es/components/ProForm/fields/ProFormSelect.js +13 -0
- package/es/components/ProForm/fields/ProFormSwitch.d.ts +6 -0
- package/es/components/ProForm/fields/ProFormSwitch.js +11 -0
- package/es/components/ProForm/fields/ProFormText.d.ts +6 -0
- package/es/components/ProForm/fields/ProFormText.js +15 -0
- package/es/components/ProForm/fields/ProFormTextArea.d.ts +6 -0
- package/es/components/ProForm/fields/ProFormTextArea.js +16 -0
- package/es/components/ProForm/fields/createProFormField.d.ts +43 -0
- package/es/components/ProForm/fields/createProFormField.js +200 -0
- package/es/components/ProForm/fields/index.d.ts +12 -0
- package/es/components/ProForm/fields/index.js +13 -0
- package/es/components/ProForm/index.d.ts +7 -0
- package/es/components/ProForm/index.js +7 -0
- package/es/components/ProForm/interface.d.ts +306 -0
- package/es/components/ProForm/interface.js +2 -0
- package/es/components/ProForm/layouts/DrawerForm.d.ts +16 -0
- package/es/components/ProForm/layouts/DrawerForm.js +79 -0
- package/es/components/ProForm/layouts/ModalForm.d.ts +16 -0
- package/es/components/ProForm/layouts/ModalForm.js +89 -0
- package/es/components/ProForm/layouts/QueryFilter.d.ts +21 -0
- package/es/components/ProForm/layouts/QueryFilter.js +132 -0
- package/es/components/ProForm/layouts/StepsForm.d.ts +13 -0
- package/es/components/ProForm/layouts/StepsForm.js +295 -0
- package/es/components/ProForm/layouts/index.d.ts +4 -0
- package/es/components/ProForm/layouts/index.js +5 -0
- package/es/components/ProForm/layouts/useOverlayForm.d.ts +53 -0
- package/es/components/ProForm/layouts/useOverlayForm.js +143 -0
- package/es/components/ProForm/style/ProForm.module.css +1 -0
- package/es/components/ProForm/style/ProForm.module.scss +59 -0
- package/es/components/ProForm/style/css.js +3 -0
- package/es/components/ProForm/style/index.d.ts +1 -0
- package/es/components/ProForm/style/index.js +3 -0
- package/es/components/ProForm/utils.d.ts +72 -0
- package/es/components/ProForm/utils.js +206 -0
- package/es/components/RadioGroup/RadioGroup.js +46 -23
- package/es/components/RadioGroup/interface.d.ts +3 -1
- package/es/components/Select/Select.d.ts +1 -1
- package/es/components/Select/Select.js +113 -106
- package/es/components/Select/constants.d.ts +18 -0
- package/es/components/Select/constants.js +19 -0
- package/es/components/Sidebar/Sidebar.js +21 -23
- package/es/components/Sidebar/SidebarLogo.d.ts +7 -0
- package/es/components/Sidebar/SidebarLogo.js +33 -0
- package/es/components/Sidebar/SimplySidebar.d.ts +2 -2
- package/es/components/Sidebar/SimplySidebar.js +18 -22
- package/es/components/Sidebar/Stepper.js +14 -14
- package/es/components/Sidebar/constants.d.ts +16 -0
- package/es/components/Sidebar/constants.js +17 -0
- package/es/components/Sidebar/style/Stepper.css +1 -1
- package/es/components/Sidebar/style/Stepper.scss +11 -1
- package/es/components/Switch/Switch.js +28 -25
- package/es/components/Switch/interface.d.ts +9 -4
- package/es/components/useControlledState/index.d.ts +14 -0
- package/es/components/useControlledState/index.js +32 -0
- package/es/components/useEventCallback/index.d.ts +11 -0
- package/es/components/useEventCallback/index.js +17 -0
- package/es/components/useLayoutEffect/index.d.ts +11 -0
- package/es/components/useLayoutEffect/index.js +17 -0
- package/es/components/useLayoutState/index.d.ts +13 -0
- package/es/components/useLayoutState/index.js +71 -0
- package/es/components/useMemoizedFn/index.d.ts +12 -0
- package/es/components/useMemoizedFn/index.js +27 -0
- package/es/components/usePrevious/index.d.ts +11 -0
- package/es/components/usePrevious/index.js +19 -0
- package/es/components/useSafeState/index.d.ts +12 -0
- package/es/components/useSafeState/index.js +24 -0
- package/es/components/useSyncState/index.d.ts +14 -0
- package/es/components/useSyncState/index.js +37 -0
- package/es/components/useUpdateEffect/index.d.ts +9 -0
- package/es/components/useUpdateEffect/index.js +19 -0
- package/es/index.css +1 -1
- package/es/index.d.ts +21 -2
- package/es/index.js +19 -1
- package/jest.setup.d.ts +1 -0
- package/jest.setup.ts +1 -0
- package/lib/components/CheckboxGroup/CheckboxGroup.d.ts +3 -3
- package/lib/components/CheckboxGroup/CheckboxGroup.js +92 -89
- package/lib/components/CheckboxGroup/interface.d.ts +21 -15
- package/lib/components/CheckboxGroup/style/CheckboxGroup.scss +0 -7
- package/lib/components/Form/Form.d.ts +29 -0
- package/lib/components/Form/Form.js +199 -0
- package/lib/components/Form/FormItem.d.ts +4 -0
- package/lib/components/Form/FormItem.js +176 -0
- package/lib/components/Form/FormItemContent.d.ts +18 -0
- package/lib/components/Form/FormItemContent.js +156 -0
- package/lib/components/Form/constants.d.ts +46 -0
- package/lib/components/Form/constants.js +71 -0
- package/lib/components/Form/helper.d.ts +120 -0
- package/lib/components/Form/helper.js +290 -0
- package/lib/components/Form/index.d.ts +20 -0
- package/lib/components/Form/index.js +45 -0
- package/lib/components/Form/interface.d.ts +238 -0
- package/lib/components/Form/interface.js +6 -0
- package/lib/components/Form/style/Form.css +1 -0
- package/lib/components/Form/style/Form.scss +167 -0
- package/lib/components/Form/style/css.js +4 -0
- package/lib/components/Form/style/index.d.ts +1 -0
- package/lib/components/Form/style/index.js +4 -0
- package/lib/components/Form/useFormItemContext.d.ts +32 -0
- package/lib/components/Form/useFormItemContext.js +62 -0
- package/lib/components/Form/useFormItemWatch.d.ts +51 -0
- package/lib/components/Form/useFormItemWatch.js +76 -0
- package/lib/components/Form/useValidationTrigger.d.ts +40 -0
- package/lib/components/Form/useValidationTrigger.js +81 -0
- package/lib/components/Input/Input.js +71 -73
- package/lib/components/Input/interface.d.ts +9 -9
- package/lib/components/InputAmount/InputAmount.js +230 -278
- package/lib/components/InputAmount/helper.d.ts +46 -0
- package/lib/components/InputAmount/helper.js +122 -0
- package/lib/components/ProForm/ProForm.d.ts +33 -0
- package/lib/components/ProForm/ProForm.js +216 -0
- package/lib/components/ProForm/ProFormDependency.d.ts +12 -0
- package/lib/components/ProForm/ProFormDependency.js +67 -0
- package/lib/components/ProForm/ProFormList.d.ts +19 -0
- package/lib/components/ProForm/ProFormList.js +355 -0
- package/lib/components/ProForm/Submitter.d.ts +21 -0
- package/lib/components/ProForm/Submitter.js +83 -0
- package/lib/components/ProForm/constants.d.ts +34 -0
- package/lib/components/ProForm/constants.js +46 -0
- package/lib/components/ProForm/fields/ProFormCheckbox.d.ts +6 -0
- package/lib/components/ProForm/fields/ProFormCheckbox.js +18 -0
- package/lib/components/ProForm/fields/ProFormCheckboxGroup.d.ts +6 -0
- package/lib/components/ProForm/fields/ProFormCheckboxGroup.js +53 -0
- package/lib/components/ProForm/fields/ProFormDigit.d.ts +6 -0
- package/lib/components/ProForm/fields/ProFormDigit.js +22 -0
- package/lib/components/ProForm/fields/ProFormMoney.d.ts +6 -0
- package/lib/components/ProForm/fields/ProFormMoney.js +17 -0
- package/lib/components/ProForm/fields/ProFormMultiSelect.d.ts +6 -0
- package/lib/components/ProForm/fields/ProFormMultiSelect.js +34 -0
- package/lib/components/ProForm/fields/ProFormPassword.d.ts +6 -0
- package/lib/components/ProForm/fields/ProFormPassword.js +23 -0
- package/lib/components/ProForm/fields/ProFormRadio.d.ts +6 -0
- package/lib/components/ProForm/fields/ProFormRadio.js +20 -0
- package/lib/components/ProForm/fields/ProFormSelect.d.ts +6 -0
- package/lib/components/ProForm/fields/ProFormSelect.js +20 -0
- package/lib/components/ProForm/fields/ProFormSwitch.d.ts +6 -0
- package/lib/components/ProForm/fields/ProFormSwitch.js +18 -0
- package/lib/components/ProForm/fields/ProFormText.d.ts +6 -0
- package/lib/components/ProForm/fields/ProFormText.js +22 -0
- package/lib/components/ProForm/fields/ProFormTextArea.d.ts +6 -0
- package/lib/components/ProForm/fields/ProFormTextArea.js +23 -0
- package/lib/components/ProForm/fields/createProFormField.d.ts +43 -0
- package/lib/components/ProForm/fields/createProFormField.js +208 -0
- package/lib/components/ProForm/fields/index.d.ts +12 -0
- package/lib/components/ProForm/fields/index.js +90 -0
- package/lib/components/ProForm/index.d.ts +7 -0
- package/lib/components/ProForm/index.js +73 -0
- package/lib/components/ProForm/interface.d.ts +306 -0
- package/lib/components/ProForm/interface.js +6 -0
- package/lib/components/ProForm/layouts/DrawerForm.d.ts +16 -0
- package/lib/components/ProForm/layouts/DrawerForm.js +86 -0
- package/lib/components/ProForm/layouts/ModalForm.d.ts +16 -0
- package/lib/components/ProForm/layouts/ModalForm.js +96 -0
- package/lib/components/ProForm/layouts/QueryFilter.d.ts +21 -0
- package/lib/components/ProForm/layouts/QueryFilter.js +139 -0
- package/lib/components/ProForm/layouts/StepsForm.d.ts +13 -0
- package/lib/components/ProForm/layouts/StepsForm.js +302 -0
- package/lib/components/ProForm/layouts/index.d.ts +4 -0
- package/lib/components/ProForm/layouts/index.js +40 -0
- package/lib/components/ProForm/layouts/useOverlayForm.d.ts +53 -0
- package/lib/components/ProForm/layouts/useOverlayForm.js +150 -0
- package/lib/components/ProForm/style/ProForm.module.css +1 -0
- package/lib/components/ProForm/style/ProForm.module.scss +59 -0
- package/lib/components/ProForm/style/css.js +4 -0
- package/lib/components/ProForm/style/index.d.ts +1 -0
- package/lib/components/ProForm/style/index.js +4 -0
- package/lib/components/ProForm/utils.d.ts +72 -0
- package/lib/components/ProForm/utils.js +213 -0
- package/lib/components/RadioGroup/RadioGroup.js +45 -22
- package/lib/components/RadioGroup/interface.d.ts +3 -1
- package/lib/components/Select/Select.d.ts +1 -1
- package/lib/components/Select/Select.js +114 -107
- package/lib/components/Select/constants.d.ts +18 -0
- package/lib/components/Select/constants.js +25 -0
- package/lib/components/Sidebar/Sidebar.js +21 -23
- package/lib/components/Sidebar/SidebarLogo.d.ts +7 -0
- package/lib/components/Sidebar/SidebarLogo.js +39 -0
- package/lib/components/Sidebar/SimplySidebar.d.ts +2 -2
- package/lib/components/Sidebar/SimplySidebar.js +17 -21
- package/lib/components/Sidebar/Stepper.js +14 -14
- package/lib/components/Sidebar/constants.d.ts +16 -0
- package/lib/components/Sidebar/constants.js +23 -0
- package/lib/components/Sidebar/style/Stepper.css +1 -1
- package/lib/components/Sidebar/style/Stepper.scss +11 -1
- package/lib/components/Switch/Switch.js +27 -24
- package/lib/components/Switch/interface.d.ts +9 -4
- package/lib/components/useControlledState/index.d.ts +14 -0
- package/lib/components/useControlledState/index.js +39 -0
- package/lib/components/useEventCallback/index.d.ts +11 -0
- package/lib/components/useEventCallback/index.js +24 -0
- package/lib/components/useLayoutEffect/index.d.ts +11 -0
- package/lib/components/useLayoutEffect/index.js +23 -0
- package/lib/components/useLayoutState/index.d.ts +13 -0
- package/lib/components/useLayoutState/index.js +79 -0
- package/lib/components/useMemoizedFn/index.d.ts +12 -0
- package/lib/components/useMemoizedFn/index.js +33 -0
- package/lib/components/usePrevious/index.d.ts +11 -0
- package/lib/components/usePrevious/index.js +25 -0
- package/lib/components/useSafeState/index.d.ts +12 -0
- package/lib/components/useSafeState/index.js +31 -0
- package/lib/components/useSyncState/index.d.ts +14 -0
- package/lib/components/useSyncState/index.js +44 -0
- package/lib/components/useUpdateEffect/index.d.ts +9 -0
- package/lib/components/useUpdateEffect/index.js +25 -0
- package/lib/index.css +1 -1
- package/lib/index.d.ts +21 -2
- package/lib/index.js +213 -1
- package/package.json +16 -1
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
|
|
2
|
+
var __rest = this && this.__rest || function (s, e) {
|
|
3
|
+
var t = {};
|
|
4
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];
|
|
5
|
+
if (s != null && typeof Object.getOwnPropertySymbols === "function") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
6
|
+
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];
|
|
7
|
+
}
|
|
8
|
+
return t;
|
|
9
|
+
};
|
|
10
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
11
|
+
import { Children, memo, useCallback, useMemo, useState } from 'react';
|
|
12
|
+
import { joinCls } from '../../../utils/classnames';
|
|
13
|
+
import { Button } from '../../Button';
|
|
14
|
+
import ProForm from '../ProForm';
|
|
15
|
+
import { CSS_PREFIX, DEFAULT_COLS_NUMBER, DEFAULT_TEXT } from '../constants';
|
|
16
|
+
import styles from '../style/ProForm.module.scss';
|
|
17
|
+
/**
|
|
18
|
+
* Horizontal search/filter form with collapsible fields and a
|
|
19
|
+
* search/reset/expand button bar.
|
|
20
|
+
*
|
|
21
|
+
* Fields beyond {@link QueryFilterProps.defaultColsNumber} are hidden
|
|
22
|
+
* when the filter is collapsed.
|
|
23
|
+
*
|
|
24
|
+
* @example
|
|
25
|
+
* ```tsx
|
|
26
|
+
* <QueryFilter onFinish={handleSearch} defaultColsNumber={2}>
|
|
27
|
+
* <ProFormText name="keyword" label="Keyword" />
|
|
28
|
+
* <ProFormSelect name="status" label="Status" fieldProps={{ options }} />
|
|
29
|
+
* <ProFormText name="author" label="Author" />
|
|
30
|
+
* </QueryFilter>
|
|
31
|
+
* ```
|
|
32
|
+
*/
|
|
33
|
+
var QueryFilterBase = function QueryFilterBase(props) {
|
|
34
|
+
var _a, _b, _c;
|
|
35
|
+
var _props$defaultCollaps = props.defaultCollapsed,
|
|
36
|
+
defaultCollapsed = _props$defaultCollaps === void 0 ? true : _props$defaultCollaps,
|
|
37
|
+
collapsed = props.collapsed,
|
|
38
|
+
onCollapse = props.onCollapse,
|
|
39
|
+
_props$defaultColsNum = props.defaultColsNumber,
|
|
40
|
+
defaultColsNumber = _props$defaultColsNum === void 0 ? DEFAULT_COLS_NUMBER : _props$defaultColsNum,
|
|
41
|
+
labelWidth = props.labelWidth,
|
|
42
|
+
split = props.split,
|
|
43
|
+
submitter = props.submitter,
|
|
44
|
+
_onReset = props.onReset,
|
|
45
|
+
children = props.children,
|
|
46
|
+
formProps = __rest(props, ["defaultCollapsed", "collapsed", "onCollapse", "defaultColsNumber", "labelWidth", "split", "submitter", "onReset", "children"]);
|
|
47
|
+
var _useState = useState(defaultCollapsed),
|
|
48
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
49
|
+
innerCollapsed = _useState2[0],
|
|
50
|
+
setInnerCollapsed = _useState2[1];
|
|
51
|
+
var mergedCollapsed = submitter === false ? false : collapsed !== null && collapsed !== void 0 ? collapsed : innerCollapsed;
|
|
52
|
+
var childrenArray = useMemo(function () {
|
|
53
|
+
return Children.toArray(children);
|
|
54
|
+
}, [children]);
|
|
55
|
+
var visibleChildren = useMemo(function () {
|
|
56
|
+
if (!mergedCollapsed) return childrenArray;
|
|
57
|
+
return childrenArray.slice(0, defaultColsNumber);
|
|
58
|
+
}, [childrenArray, defaultColsNumber, mergedCollapsed]);
|
|
59
|
+
var toggleCollapsed = useCallback(function () {
|
|
60
|
+
var next = !mergedCollapsed;
|
|
61
|
+
if (collapsed === undefined) {
|
|
62
|
+
setInnerCollapsed(next);
|
|
63
|
+
}
|
|
64
|
+
onCollapse === null || onCollapse === void 0 ? void 0 : onCollapse(next);
|
|
65
|
+
}, [collapsed, mergedCollapsed, onCollapse]);
|
|
66
|
+
var filterStyle = useMemo(function () {
|
|
67
|
+
if (labelWidth === undefined) return undefined;
|
|
68
|
+
if (labelWidth === 'auto') {
|
|
69
|
+
return {
|
|
70
|
+
'--om-form-label-width': 'auto',
|
|
71
|
+
'--om-form-wrapper-width': '100%'
|
|
72
|
+
};
|
|
73
|
+
}
|
|
74
|
+
return {
|
|
75
|
+
'--om-form-label-width': "".concat(labelWidth, "px"),
|
|
76
|
+
'--om-form-wrapper-width': "calc(100% - ".concat(labelWidth, "px)")
|
|
77
|
+
};
|
|
78
|
+
}, [labelWidth]);
|
|
79
|
+
var submitterOptions = submitter === false ? undefined : submitter;
|
|
80
|
+
var searchConfig = submitterOptions === null || submitterOptions === void 0 ? void 0 : submitterOptions.searchConfig;
|
|
81
|
+
var collapseText = (_a = searchConfig === null || searchConfig === void 0 ? void 0 : searchConfig.collapseText) !== null && _a !== void 0 ? _a : DEFAULT_TEXT.collapse;
|
|
82
|
+
var expandText = (_b = searchConfig === null || searchConfig === void 0 ? void 0 : searchConfig.expandText) !== null && _b !== void 0 ? _b : DEFAULT_TEXT.expand;
|
|
83
|
+
var submitterRender = useCallback(function (renderProps) {
|
|
84
|
+
var _a, _b;
|
|
85
|
+
var customDom = [_jsx(Button, {
|
|
86
|
+
type: 'button',
|
|
87
|
+
onClick: function onClick() {
|
|
88
|
+
return renderProps.submit();
|
|
89
|
+
},
|
|
90
|
+
children: (_a = submitterOptions === null || submitterOptions === void 0 ? void 0 : submitterOptions.submitText) !== null && _a !== void 0 ? _a : DEFAULT_TEXT.search
|
|
91
|
+
}, 'search'), _jsx(Button, {
|
|
92
|
+
type: 'button',
|
|
93
|
+
severity: 'secondary',
|
|
94
|
+
onClick: function onClick() {
|
|
95
|
+
return renderProps.reset();
|
|
96
|
+
},
|
|
97
|
+
children: (_b = submitterOptions === null || submitterOptions === void 0 ? void 0 : submitterOptions.resetText) !== null && _b !== void 0 ? _b : DEFAULT_TEXT.reset
|
|
98
|
+
}, 'reset'), _jsx(Button, {
|
|
99
|
+
type: 'button',
|
|
100
|
+
severity: 'secondary',
|
|
101
|
+
onClick: toggleCollapsed,
|
|
102
|
+
children: mergedCollapsed ? expandText : collapseText
|
|
103
|
+
}, 'collapse')];
|
|
104
|
+
if (submitterOptions === null || submitterOptions === void 0 ? void 0 : submitterOptions.render) {
|
|
105
|
+
return submitterOptions.render(renderProps, customDom);
|
|
106
|
+
}
|
|
107
|
+
return customDom;
|
|
108
|
+
}, [mergedCollapsed, expandText, collapseText, submitterOptions === null || submitterOptions === void 0 ? void 0 : submitterOptions.submitText, submitterOptions === null || submitterOptions === void 0 ? void 0 : submitterOptions.resetText, submitterOptions === null || submitterOptions === void 0 ? void 0 : submitterOptions.render, toggleCollapsed]);
|
|
109
|
+
var submitterConfig = submitterOptions === undefined ? false : Object.assign(Object.assign({}, submitterOptions), {
|
|
110
|
+
onReset: function onReset() {
|
|
111
|
+
var _a;
|
|
112
|
+
(_a = submitterOptions.onReset) === null || _a === void 0 ? void 0 : _a.call(submitterOptions);
|
|
113
|
+
_onReset === null || _onReset === void 0 ? void 0 : _onReset();
|
|
114
|
+
},
|
|
115
|
+
render: submitterRender
|
|
116
|
+
});
|
|
117
|
+
var queryFormProps = formProps;
|
|
118
|
+
return _jsx("div", {
|
|
119
|
+
className: joinCls(styles['proform__query-filter'], "".concat(CSS_PREFIX, "-query-filter"), split && styles['proform__query-filter-split'], split && "".concat(CSS_PREFIX, "-query-filter-split")),
|
|
120
|
+
style: filterStyle,
|
|
121
|
+
children: _jsx(ProForm, Object.assign({}, queryFormProps, {
|
|
122
|
+
layout: (_c = formProps.layout) !== null && _c !== void 0 ? _c : 'inline',
|
|
123
|
+
submitter: submitterConfig,
|
|
124
|
+
children: visibleChildren
|
|
125
|
+
}))
|
|
126
|
+
});
|
|
127
|
+
};
|
|
128
|
+
var MemoizedQueryFilter = /*#__PURE__*/memo(QueryFilterBase);
|
|
129
|
+
MemoizedQueryFilter.displayName = 'QueryFilter';
|
|
130
|
+
export var QueryFilter = MemoizedQueryFilter;
|
|
131
|
+
export default QueryFilter;
|
|
132
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvUHJvRm9ybS9sYXlvdXRzL1F1ZXJ5RmlsdGVyLmpzIiwiY29tcG9uZW50cy9Qcm9Gb3JtL3NyYy9jb21wb25lbnRzL1Byb0Zvcm0vbGF5b3V0cy9RdWVyeUZpbHRlci50c3giXSwibmFtZXMiOlsiX19yZXN0IiwicyIsImUiLCJ0IiwicCIsIk9iamVjdCIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImluZGV4T2YiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJpIiwibGVuZ3RoIiwicHJvcGVydHlJc0VudW1lcmFibGUiLCJqc3giLCJfanN4IiwiQ2hpbGRyZW4iLCJtZW1vIiwidXNlQ2FsbGJhY2siLCJ1c2VNZW1vIiwidXNlU3RhdGUiLCJqb2luQ2xzIiwiQnV0dG9uIiwiUHJvRm9ybSIsIkNTU19QUkVGSVgiLCJERUZBVUxUX0NPTFNfTlVNQkVSIiwiREVGQVVMVF9URVhUIiwic3R5bGVzIiwiUXVlcnlGaWx0ZXJCYXNlIiwicHJvcHMiLCJfYSIsIl9iIiwiX2MiLCJfcHJvcHMkZGVmYXVsdENvbGxhcHMiLCJkZWZhdWx0Q29sbGFwc2VkIiwiY29sbGFwc2VkIiwib25Db2xsYXBzZSIsIl9wcm9wcyRkZWZhdWx0Q29sc051bSIsImRlZmF1bHRDb2xzTnVtYmVyIiwibGFiZWxXaWR0aCIsInNwbGl0Iiwic3VibWl0dGVyIiwib25SZXNldCIsImNoaWxkcmVuIiwiZm9ybVByb3BzIiwiX3VzZVN0YXRlIiwiX3VzZVN0YXRlMiIsIl9zbGljZWRUb0FycmF5IiwiaW5uZXJDb2xsYXBzZWQiLCJzZXRJbm5lckNvbGxhcHNlZCIsIm1lcmdlZENvbGxhcHNlZCIsImNoaWxkcmVuQXJyYXkiLCJ0b0FycmF5IiwidmlzaWJsZUNoaWxkcmVuIiwic2xpY2UiLCJ0b2dnbGVDb2xsYXBzZWQiLCJuZXh0IiwidW5kZWZpbmVkIiwiZmlsdGVyU3R5bGUiLCJjb25jYXQiLCJzdWJtaXR0ZXJPcHRpb25zIiwic2VhcmNoQ29uZmlnIiwiY29sbGFwc2VUZXh0IiwiY29sbGFwc2UiLCJleHBhbmRUZXh0IiwiZXhwYW5kIiwic3VibWl0dGVyUmVuZGVyIiwicmVuZGVyUHJvcHMiLCJjdXN0b21Eb20iLCJ0eXBlIiwib25DbGljayIsInN1Ym1pdCIsInN1Ym1pdFRleHQiLCJzZWFyY2giLCJzZXZlcml0eSIsInJlc2V0IiwicmVzZXRUZXh0IiwicmVuZGVyIiwic3VibWl0dGVyQ29uZmlnIiwiYXNzaWduIiwicXVlcnlGb3JtUHJvcHMiLCJjbGFzc05hbWUiLCJzdHlsZSIsImxheW91dCIsIk1lbW9pemVkUXVlcnlGaWx0ZXIiLCJkaXNwbGF5TmFtZSIsIlF1ZXJ5RmlsdGVyIl0sIm1hcHBpbmdzIjoiO0FBQUEsSUFBSUEsTUFBTSxHQUFJLElBQUksSUFBSSxJQUFJLENBQUNBLE1BQU0sSUFBSyxVQUFVQyxDQUFDLEVBQUVDLENBQUMsRUFBRTtFQUNsRCxJQUFJQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0VBQ1YsS0FBSyxJQUFJQyxDQUFDLElBQUlILENBQUMsRUFBRSxJQUFJSSxNQUFNLENBQUNDLFNBQVMsQ0FBQ0MsY0FBYyxDQUFDQyxJQUFJLENBQUNQLENBQUMsRUFBRUcsQ0FBQyxDQUFDLElBQUlGLENBQUMsQ0FBQ08sT0FBTyxDQUFDTCxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQy9FRCxDQUFDLENBQUNDLENBQUMsQ0FBQyxHQUFHSCxDQUFDLENBQUNHLENBQUMsQ0FBQztFQUNmLElBQUlILENBQUMsSUFBSSxJQUFJLElBQUksT0FBT0ksTUFBTSxDQUFDSyxxQkFBcUIsS0FBSyxVQUFVLEVBQy9ELEtBQUssSUFBSUMsQ0FBQyxHQUFHLENBQUMsRUFBRVAsQ0FBQyxHQUFHQyxNQUFNLENBQUNLLHFCQUFxQixDQUFDVCxDQUFDLENBQUMsRUFBRVUsQ0FBQyxHQUFHUCxDQUFDLENBQUNRLE1BQU0sRUFBRUQsQ0FBQyxFQUFFLEVBQUU7SUFDcEUsSUFBSVQsQ0FBQyxDQUFDTyxPQUFPLENBQUNMLENBQUMsQ0FBQ08sQ0FBQyxDQUFDLENB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QSxFQUV6QlU7SUFBZSxDQUFBLENBQUE7RUFDUixDQUFBLENBQ047QUFFVixDQUFDO0FBRUQsSUFBTStCLG1CQUFtQixnQkFBR25FLElBQUksQ0FBQ1csZUFBZSxDQUFDO0FBQ2pEd0QsbUJBQW1CLENBQUNDLFdBQVcsR0FBRyxhQUFhO0FBRS9DLE9BQU8sSUFBTUMsV0FBVyxHQUFHRixtQkFBNkM7QUFFeEUsZUFBZUUsV0FBVyIsImZpbGUiOiJjb21wb25lbnRzL1Byb0Zvcm0vbGF5b3V0cy9RdWVyeUZpbHRlci5qcyIsInNvdXJjZXNDb250ZW50IjpbInZhciBfX3Jlc3QgPSAodGhpcyAmJiB0aGlzLl9fcmVzdCkgfHwgZnVuY3Rpb24gKHMsIGUpIHtcbiAgICB2YXIgdCA9IHt9O1xuICAgIGZvciAodmFyIHAgaW4gcykgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzLCBwKSAmJiBlLmluZGV4T2YocCkgPCAwKVxuICAgICAgICB0W3BdID0gc1twXTtcbiAgICBpZiAocyAhPSBudWxsICYmIHR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzID09PSBcImZ1bmN0aW9uXCIpXG4gICAgICAgIGZvciAodmFyIGkgPSAwLCBwID0gT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhzKTsgaSA8IHAubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGlmIChlLmluZGV4T2YocFtpXSkgPCAwICYmIE9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChzLCBwW2ldKSlcbiAgICAgICAgICAgICAgICB0W3BbaV1dID0gc1twW2ldXTtcbiAgICAgICAgfVxuICAgIHJldHVybiB0O1xufTtcbmltcG9ydCB7IGpzeCBhcyBfanN4IH0gZnJvbSBcInJlYWN0L2pzeC1ydW50aW1lXCI7XG5pbXBvcnQgeyBDaGlsZHJlbiwgbWVtbywgdXNlQ2FsbGJhY2ssIHVzZU1lbW8sIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgam9pbkNscyB9IGZyb20gJy4uLy4uLy4uL3V0aWxzL2NsYXNzbmFtZXMnO1xuaW1wb3J0IHsgQnV0dG9uIH0gZnJvbSAnLi4vLi4vQnV0dG9uJztcbmltcG9ydCBQcm9Gb3JtIGZyb20gJy4uL1Byb0Zvcm0nO1xuaW1wb3J0IHsgQ1NTX1BSRUZJWCwgREVGQVVMVF9DT0xTX05VTUJFUiwgREVGQVVMVF9URVhUIH0gZnJvbSAnLi4vY29uc3RhbnRzJztcbmltcG9ydCBzdHlsZXMgZnJvbSAnLi4vc3R5bGUvUHJvRm9ybS5tb2R1bGUuc2Nzcyc7XG4vKipcbiAqIEhvcml6b250YWwgc2VhcmNoL2ZpbHRlciBmb3JtIHdpdGggY29sbGFwc2libGUgZmllbGRzIGFuZCBhXG4gKiBzZWFyY2gvcmVzZXQvZXhwYW5kIGJ1dHRvbiBiYXIuXG4gKlxuICogRmllbGRzIGJleW9uZCB7QGxpbmsgUXVlcnlGaWx0ZXJQcm9wcy5kZWZhdWx0Q29sc051bWJlcn0gYXJlIGhpZGRlblxuICogd2hlbiB0aGUgZmlsdGVyIGlzIGNvbGxhcHNlZC5cbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHN4XG4gKiA8UXVlcnlGaWx0ZXIgb25GaW5pc2g9e2hhbmRsZVNlYXJjaH0gZGVmYXVsdENvbHNOdW1iZXI9ezJ9PlxuICogICA8UHJvRm9ybVRleHQgbmFtZT1cImtleXdvcmRcIiBsYWJlbD1cIktleXdvcmRcIiAvPlxuICogICA8UHJvRm9ybVNlbGVjdCBuYW1lPVwic3RhdHVzXCIgbGFiZWw9XCJTdGF0dXNcIiBmaWVsZFByb3BzPXt7IG9wdGlvbnMgfX0gLz5cbiAqICAgPFByb0Zvcm1UZXh0IG5hbWU9XCJhdXRob3JcIiBsYWJlbD1cIkF1dGhvclwiIC8+XG4gKiA8L1F1ZXJ5RmlsdGVyPlxuICogYGBgXG4gKi9cbmNvbnN0IFF1ZXJ5RmlsdGVyQmFzZSA9IChwcm9wcykgPT4ge1xuICAgIHZhciBfYSwgX2IsIF9jO1xuICAgIGNvbnN0IHsgZGVmYXVsdENvbGxhcHNlZCA9IHRydWUsIGNvbGxhcHNlZCwgb25Db2xsYXBzZSwgZGVmYXVsdENvbHNOdW1iZXIgPSBERUZBVUxUX0NPTFNfTlVNQkVSLCBsYWJlbFdpZHRoLCBzcGxpdCwgc3VibWl0dGVyLCBvblJlc2V0LCBjaGlsZHJlbiB9ID0gcHJvcHMsIGZvcm1Qcm9wcyA9IF9fcmVzdChwcm9wcywgW1wiZGVmYXVsdENvbGxhcHNlZFwiLCBcImNvbGxhcHNlZFwiLCBcIm9uQ29sbGFwc2VcIiwgXCJkZWZhdWx0Q29sc051bWJlclwiLCBcImxhYmVsV2lkdGhcIiwgXCJzcGxpdFwiLCBcInN1Ym1pdHRlclwiLCBcIm9uUmVzZXRcIiwgXCJjaGlsZHJlblwiXSk7XG4gICAgY29uc3QgW2lubmVyQ29sbGFwc2VkLCBzZXRJbm5lckNvbGxhcHNlZF0gPSB1c2VTdGF0ZShkZWZhdWx0Q29sbGFwc2VkKTtcbiAgICBjb25zdCBtZXJnZWRDb2xsYXBzZWQgPSBzdWJtaXR0ZXIgPT09IGZhbHNlID8gZmFsc2UgOiAoY29sbGFwc2VkICE9PSBudWxsICYmIGNvbGxhcHNlZCAhPT0gdm9pZCAwID8gY29sbGFwc2VkIDogaW5uZXJDb2xsYXBzZWQpO1xuICAgIGNvbnN0IGNoaWxkcmVuQXJyYXkgPSB1c2VNZW1vKCgpID0+IENoaWxkcmVuLnRvQXJyYXkoY2hpbGRyZW4pLCBbY2hpbGRyZW5dKTtcbiAgICBjb25zdCB2aXNpYmxlQ2hpbGRyZW4gPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgICAgaWYgKCFtZXJnZWRDb2xsYXBzZWQpXG4gICAgICAgICAgICByZXR1cm4gY2hpbGRyZW5BcnJheTtcbiAgICAgICAgcmV0dXJuIGNoaWxkcmVuQXJyYXkuc2xpY2UoMCwgZGVmYXVsdENvbHNOdW1iZXIpO1xuICAgIH0sIFtjaGlsZHJlbkFycmF5LCBkZWZhdWx0Q29sc051bWJlciwgbWVyZ2VkQ29sbGFwc2VkXSk7XG4gICAgY29uc3QgdG9nZ2xlQ29sbGFwc2VkID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgICAgICBjb25zdCBuZXh0ID0gIW1lcmdlZENvbGxhcHNlZDtcbiAgICAgICAgaWYgKGNvbGxhcHNlZCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBzZXRJbm5lckNvbGxhcHNlZChuZXh0KTtcbiAgICAgICAgfVxuICAgICAgICBvbkNvbGxhcHNlID09PSBudWxsIHx8IG9uQ29sbGFwc2UgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9uQ29sbGFwc2UobmV4dCk7XG4gICAgfSwgW2NvbGxhcHNlZCwgbWVyZ2VkQ29sbGFwc2VkLCBvbkNvbGxhcHNlXSk7XG4gICAgY29uc3QgZmlsdGVyU3R5bGUgPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgICAgaWYgKGxhYmVsV2lkdGggPT09IHVuZGVmaW5lZClcbiAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgIGlmIChsYWJlbFdpZHRoID09PSAnYXV0bycpIHtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgJy0tb20tZm9ybS1sYWJlbC13aWR0aCc6ICdhdXRvJyxcbiAgICAgICAgICAgICAgICAnLS1vbS1mb3JtLXdyYXBwZXItd2lkdGgnOiAnMTAwJScsXG4gICAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAnLS1vbS1mb3JtLWxhYmVsLXdpZHRoJzogYCR7bGFiZWxXaWR0aH1weGAsXG4gICAgICAgICAgICAnLS1vbS1mb3JtLXdyYXBwZXItd2lkdGgnOiBgY2FsYygxMDAlIC0gJHtsYWJlbFdpZHRofXB4KWAsXG4gICAgICAgIH07XG4gICAgfSwgW2xhYmVsV2lkdGhdKTtcbiAgICBjb25zdCBzdWJtaXR0ZXJPcHRpb25zID0gc3VibWl0dGVyID09PSBmYWxzZSA/IHVuZGVmaW5lZCA6IHN1Ym1pdHRlcjtcbiAgICBjb25zdCBzZWFyY2hDb25maWcgPSBzdWJtaXR0ZXJPcHRpb25zID09PSBudWxsIHx8IHN1Ym1pdHRlck9wdGlvbnMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHN1Ym1pdHRlck9wdGlvbnMuc2VhcmNoQ29uZmlnO1xuICAgIGNvbnN0IGNvbGxhcHNlVGV4dCA9IChfYSA9IHNlYXJjaENvbmZpZyA9PT0gbnVsbCB8fCBzZWFyY2hDb25maWcgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHNlYXJjaENvbmZpZy5jb2xsYXBzZVRleHQpICE9PSBudWxsICYmIF9hICE9PSB2b2lkIDAgPyBfYSA6IERFRkFVTFRfVEVYVC5jb2xsYXBzZTtcbiAgICBjb25zdCBleHBhbmRUZXh0ID0gKF9iID0gc2VhcmNoQ29uZmlnID09PSBudWxsIHx8IHNlYXJjaENvbmZpZyA9PT0gdm9pZCAwID8gdm9pZCAwIDogc2VhcmNoQ29uZmlnLmV4cGFuZFRleHQpICE9PSBudWxsICYmIF9iICE9PSB2b2lkIDAgPyBfYiA6IERFRkFVTFRfVEVYVC5leHBhbmQ7XG4gICAgY29uc3Qgc3VibWl0dGVyUmVuZGVyID0gdXNlQ2FsbGJhY2soKHJlbmRlclByb3BzKSA9PiB7XG4gICAgICAgIHZhciBfYSwgX2I7XG4gICAgICAgIGNvbnN0IGN1c3RvbURvbSA9IFtcbiAgICAgICAgICAgIF9qc3goQnV0dG9uLCB7IHR5cGU6ICdidXR0b24nLCBvbkNsaWNrOiAoKSA9PiByZW5kZXJQcm9wcy5zdWJtaXQoKSwgY2hpbGRyZW46IChfYSA9IHN1Ym1pdHRlck9wdGlvbnMgPT09IG51bGwgfHwgc3VibWl0dGVyT3B0aW9ucyA9PT0gdm9pZCAwID8gdm9pZCAwIDogc3VibWl0dGVyT3B0aW9ucy5zdWJtaXRUZXh0KSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiBERUZBVUxUX1RFWFQuc2VhcmNoIH0sICdzZWFyY2gnKSxcbiAgICAgICAgICAgIF9qc3goQnV0dG9uLCB7IHR5cGU6ICdidXR0b24nLCBzZXZlcml0eTogJ3NlY29uZGFyeScsIG9uQ2xpY2s6ICgpID0+IHJlbmRlclByb3BzLnJlc2V0KCksIGNoaWxkcmVuOiAoX2IgPSBzdWJtaXR0ZXJPcHRpb25zID09PSBudWxsIHx8IHN1Ym1pdHRlck9wdGlvbnMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHN1Ym1pdHRlck9wdGlvbnMucmVzZXRUZXh0KSAhPT0gbnVsbCAmJiBfYiAhPT0gdm9pZCAwID8gX2IgOiBERUZBVUxUX1RFWFQucmVzZXQgfSwgJ3Jlc2V0JyksXG4gICAgICAgICAgICBfanN4KEJ1dHRvbiwgeyB0eXBlOiAnYnV0dG9uJywgc2V2ZXJpdHk6ICdzZWNvbmRhcnknLCBvbkNsaWNrOiB0b2dnbGVDb2xsYXBzZWQsIGNoaWxkcmVuOiBtZXJnZWRDb2xsYXBzZWQgPyBleHBhbmRUZXh0IDogY29sbGFwc2VUZXh0IH0sICdjb2xsYXBzZScpLFxuICAgICAgICBdO1xuICAgICAgICBpZiAoc3VibWl0dGVyT3B0aW9ucyA9PT0gbnVsbCB8fCBzdWJtaXR0ZXJPcHRpb25zID09PSB2b2lkIDAgPyB2b2lkIDAgOiBzdWJtaXR0ZXJPcHRpb25zLnJlbmRlcikge1xuICAgICAgICAgICAgcmV0dXJuIHN1Ym1pdHRlck9wdGlvbnMucmVuZGVyKHJlbmRlclByb3BzLCBjdXN0b21Eb20pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBjdXN0b21Eb207XG4gICAgfSwgW1xuICAgICAgICBtZXJnZWRDb2xsYXBzZWQsXG4gICAgICAgIGV4cGFuZFRleHQsXG4gICAgICAgIGNvbGxhcHNlVGV4dCxcbiAgICAgICAgc3VibWl0dGVyT3B0aW9ucyA9PT0gbnVsbCB8fCBzdWJtaXR0ZXJPcHRpb25zID09PSB2b2lkIDAgPyB2b2lkIDAgOiBzdWJtaXR0ZXJPcHRpb25zLnN1Ym1pdFRleHQsXG4gICAgICAgIHN1Ym1pdHRlck9wdGlvbnMgPT09IG51bGwgfHwgc3VibWl0dGVyT3B0aW9ucyA9PT0gdm9pZCAwID8gdm9pZCAwIDogc3VibWl0dGVyT3B0aW9ucy5yZXNldFRleHQsXG4gICAgICAgIHN1Ym1pdHRlck9wdGlvbnMgPT09IG51bGwgfHwgc3VibWl0dGVyT3B0aW9ucyA9PT0gdm9pZCAwID8gdm9pZCAwIDogc3VibWl0dGVyT3B0aW9ucy5yZW5kZXIsXG4gICAgICAgIHRvZ2dsZUNvbGxhcHNlZCxcbiAgICBdKTtcbiAgICBjb25zdCBzdWJtaXR0ZXJDb25maWcgPSBzdWJtaXR0ZXJPcHRpb25zID09PSB1bmRlZmluZWRcbiAgICAgICAgPyBmYWxzZVxuICAgICAgICA6IE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgc3VibWl0dGVyT3B0aW9ucyksIHsgb25SZXNldDogKCkgPT4ge1xuICAgICAgICAgICAgICAgIHZhciBfYTtcbiAgICAgICAgICAgICAgICAoX2EgPSBzdWJtaXR0ZXJPcHRpb25zLm9uUmVzZXQpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5jYWxsKHN1Ym1pdHRlck9wdGlvbnMpO1xuICAgICAgICAgICAgICAgIG9uUmVzZXQgPT09IG51bGwgfHwgb25SZXNldCA9PT0gdm9pZCAwID8gdm9pZCAwIDogb25SZXNldCgpO1xuICAgICAgICAgICAgfSwgcmVuZGVyOiBzdWJtaXR0ZXJSZW5kZXIgfSk7XG4gICAgY29uc3QgcXVlcnlGb3JtUHJvcHMgPSBmb3JtUHJvcHM7XG4gICAgcmV0dXJuIChfanN4KFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBqb2luQ2xzKHN0eWxlc1sncHJvZm9ybV9fcXVlcnktZmlsdGVyJ10sIGAke0NTU19QUkVGSVh9LXF1ZXJ5LWZpbHRlcmAsIHNwbGl0ICYmIHN0eWxlc1sncHJvZm9ybV9fcXVlcnktZmlsdGVyLXNwbGl0J10sIHNwbGl0ICYmIGAke0NTU19QUkVGSVh9LXF1ZXJ5LWZpbHRlci1zcGxpdGApLCBzdHlsZTogZmlsdGVyU3R5bGUsIGNoaWxkcmVuOiBfanN4KFByb0Zvcm0sIE9iamVjdC5hc3NpZ24oe30sIHF1ZXJ5Rm9ybVByb3BzLCB7IGxheW91dDogKF9jID0gZm9ybVByb3BzLmxheW91dCkgIT09IG51bGwgJiYgX2MgIT09IHZvaWQgMCA/IF9jIDogJ2lubGluZScsIHN1Ym1pdHRlcjogc3VibWl0dGVyQ29uZmlnLCBjaGlsZHJlbjogdmlzaWJsZUNoaWxkcmVuIH0pKSB9KSk7XG59O1xuY29uc3QgTWVtb2l6ZWRRdWVyeUZpbHRlciA9IG1lbW8oUXVlcnlGaWx0ZXJCYXNlKTtcbk1lbW9pemVkUXVlcnlGaWx0ZXIuZGlzcGxheU5hbWUgPSAnUXVlcnlGaWx0ZXInO1xuZXhwb3J0IGNvbnN0IFF1ZXJ5RmlsdGVyID0gTWVtb2l6ZWRRdWVyeUZpbHRlcjtcbmV4cG9ydCBkZWZhdWx0IFF1ZXJ5RmlsdGVyOyIsbnVsbF0sInNvdXJjZVJvb3QiOiIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMifQ==
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { FC } from 'react';
|
|
2
|
+
import type { FieldValues } from 'react-hook-form';
|
|
3
|
+
import type { StepFormProps, StepsFormProps } from '../interface';
|
|
4
|
+
/**
|
|
5
|
+
* Wrapper component representing an individual step inside {@link StepsForm}.
|
|
6
|
+
* Does not render its own form — its children are rendered by the parent `StepsForm`.
|
|
7
|
+
*/
|
|
8
|
+
export declare const StepForm: FC<StepFormProps<FieldValues>>;
|
|
9
|
+
type StepsFormComponent = FC<StepsFormProps<FieldValues>> & {
|
|
10
|
+
StepForm: FC<StepFormProps<FieldValues>>;
|
|
11
|
+
};
|
|
12
|
+
export declare const StepsForm: StepsFormComponent;
|
|
13
|
+
export default StepsForm;
|
|
@@ -0,0 +1,295 @@
|
|
|
1
|
+
import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
|
|
2
|
+
import _regeneratorRuntime from "@babel/runtime/regenerator";
|
|
3
|
+
var __awaiter = this && this.__awaiter || function (thisArg, _arguments, P, generator) {
|
|
4
|
+
function adopt(value) {
|
|
5
|
+
return value instanceof P ? value : new P(function (resolve) {
|
|
6
|
+
resolve(value);
|
|
7
|
+
});
|
|
8
|
+
}
|
|
9
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
10
|
+
function fulfilled(value) {
|
|
11
|
+
try {
|
|
12
|
+
step(generator.next(value));
|
|
13
|
+
} catch (e) {
|
|
14
|
+
reject(e);
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
function rejected(value) {
|
|
18
|
+
try {
|
|
19
|
+
step(generator["throw"](value));
|
|
20
|
+
} catch (e) {
|
|
21
|
+
reject(e);
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
function step(result) {
|
|
25
|
+
result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
|
|
26
|
+
}
|
|
27
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
28
|
+
});
|
|
29
|
+
};
|
|
30
|
+
var __rest = this && this.__rest || function (s, e) {
|
|
31
|
+
var t = {};
|
|
32
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];
|
|
33
|
+
if (s != null && typeof Object.getOwnPropertySymbols === "function") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
34
|
+
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];
|
|
35
|
+
}
|
|
36
|
+
return t;
|
|
37
|
+
};
|
|
38
|
+
import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
39
|
+
import { Children, isValidElement, memo, useCallback, useMemo, useRef, useState } from 'react';
|
|
40
|
+
import { joinCls } from '../../../utils/classnames';
|
|
41
|
+
import { Button } from '../../Button';
|
|
42
|
+
import useLatest from '../../useLatest';
|
|
43
|
+
import ProForm from '../ProForm';
|
|
44
|
+
import { CSS_PREFIX, DEFAULT_TEXT } from '../constants';
|
|
45
|
+
import styles from '../style/ProForm.module.scss';
|
|
46
|
+
/**
|
|
47
|
+
* Wrapper component representing an individual step inside {@link StepsForm}.
|
|
48
|
+
* Does not render its own form — its children are rendered by the parent `StepsForm`.
|
|
49
|
+
*/
|
|
50
|
+
export var StepForm = function StepForm(props) {
|
|
51
|
+
return _jsx(_Fragment, {
|
|
52
|
+
children: props.children
|
|
53
|
+
});
|
|
54
|
+
};
|
|
55
|
+
/**
|
|
56
|
+
* Picks only safe HTML div attributes (`className`, `style`, `id`, `data-*`, `aria-*`)
|
|
57
|
+
* from a props object, filtering out component-specific props.
|
|
58
|
+
*/
|
|
59
|
+
var pickHtmlDivProps = function pickHtmlDivProps(props) {
|
|
60
|
+
var result = {};
|
|
61
|
+
for (var _i = 0, _Object$keys = Object.keys(props); _i < _Object$keys.length; _i++) {
|
|
62
|
+
var key = _Object$keys[_i];
|
|
63
|
+
if (key === 'className' || key === 'style' || key === 'id' || key.startsWith('data-') || key.startsWith('aria-')) {
|
|
64
|
+
result[key] = props[key];
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
return result;
|
|
68
|
+
};
|
|
69
|
+
/**
|
|
70
|
+
* Multi-step wizard form that renders one step at a time, merging values
|
|
71
|
+
* from all steps and calling `onFinish` with the combined result on the final step.
|
|
72
|
+
*
|
|
73
|
+
* @example
|
|
74
|
+
* ```tsx
|
|
75
|
+
* <StepsForm onFinish={handleSubmit}>
|
|
76
|
+
* <StepsForm.StepForm title="Basic Info">
|
|
77
|
+
* <ProFormText name="name" label="Name" />
|
|
78
|
+
* </StepsForm.StepForm>
|
|
79
|
+
* <StepsForm.StepForm title="Details">
|
|
80
|
+
* <ProFormTextArea name="bio" label="Bio" />
|
|
81
|
+
* </StepsForm.StepForm>
|
|
82
|
+
* </StepsForm>
|
|
83
|
+
* ```
|
|
84
|
+
*/
|
|
85
|
+
var StepsFormInner = function StepsFormInner(props) {
|
|
86
|
+
var _a;
|
|
87
|
+
var current = props.current,
|
|
88
|
+
onCurrentChange = props.onCurrentChange,
|
|
89
|
+
onFinish = props.onFinish,
|
|
90
|
+
stepsProps = props.stepsProps,
|
|
91
|
+
formProps = props.formProps,
|
|
92
|
+
submitter = props.submitter,
|
|
93
|
+
children = props.children;
|
|
94
|
+
var _useState = useState(0),
|
|
95
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
96
|
+
innerCurrent = _useState2[0],
|
|
97
|
+
setInnerCurrent = _useState2[1];
|
|
98
|
+
var _useState3 = useState({}),
|
|
99
|
+
_useState4 = _slicedToArray(_useState3, 2),
|
|
100
|
+
allValues = _useState4[0],
|
|
101
|
+
setAllValues = _useState4[1];
|
|
102
|
+
var allValuesRef = useRef({});
|
|
103
|
+
/** Tracks which step index each key was last submitted from. */
|
|
104
|
+
var keyStepMapRef = useRef(new Map());
|
|
105
|
+
var stepPanelRef = useRef(null);
|
|
106
|
+
var steps = useMemo(function () {
|
|
107
|
+
return Children.toArray(children).filter(isValidElement);
|
|
108
|
+
}, [children]);
|
|
109
|
+
var mergedCurrent = typeof current === 'number' ? current : innerCurrent;
|
|
110
|
+
var mergedCurrentRef = useLatest(mergedCurrent);
|
|
111
|
+
var activeStep = steps[mergedCurrent];
|
|
112
|
+
var setCurrent = useCallback(function (nextCurrent) {
|
|
113
|
+
// When navigating backward, clear accumulated values from steps after
|
|
114
|
+
// the target so stale data doesn't persist when the user changes answers.
|
|
115
|
+
if (nextCurrent < mergedCurrentRef.current) {
|
|
116
|
+
setAllValues(function (prev) {
|
|
117
|
+
var cleaned = Object.assign({}, prev);
|
|
118
|
+
keyStepMapRef.current.forEach(function (stepIndex, key) {
|
|
119
|
+
if (stepIndex > nextCurrent) {
|
|
120
|
+
delete cleaned[key];
|
|
121
|
+
}
|
|
122
|
+
});
|
|
123
|
+
allValuesRef.current = cleaned;
|
|
124
|
+
return cleaned;
|
|
125
|
+
});
|
|
126
|
+
}
|
|
127
|
+
if (current === undefined) {
|
|
128
|
+
setInnerCurrent(nextCurrent);
|
|
129
|
+
}
|
|
130
|
+
onCurrentChange === null || onCurrentChange === void 0 ? void 0 : onCurrentChange(nextCurrent);
|
|
131
|
+
}, [current, onCurrentChange]);
|
|
132
|
+
var handleStepFinish = useCallback(function (values) {
|
|
133
|
+
return __awaiter(void 0, void 0, void 0, /*#__PURE__*/_regeneratorRuntime.mark(function _callee() {
|
|
134
|
+
var _a, _b, currentStep, stepResult, _i2, _Object$keys2, key, mergedValues, isLast;
|
|
135
|
+
return _regeneratorRuntime.wrap(function _callee$(_context) {
|
|
136
|
+
while (1) switch (_context.prev = _context.next) {
|
|
137
|
+
case 0:
|
|
138
|
+
currentStep = steps[mergedCurrent];
|
|
139
|
+
_context.next = 3;
|
|
140
|
+
return (_b = (_a = currentStep === null || currentStep === void 0 ? void 0 : currentStep.props) === null || _a === void 0 ? void 0 : _a.onFinish) === null || _b === void 0 ? void 0 : _b.call(_a, values);
|
|
141
|
+
case 3:
|
|
142
|
+
stepResult = _context.sent;
|
|
143
|
+
if (!(stepResult === false)) {
|
|
144
|
+
_context.next = 6;
|
|
145
|
+
break;
|
|
146
|
+
}
|
|
147
|
+
return _context.abrupt("return");
|
|
148
|
+
case 6:
|
|
149
|
+
// Track which step each key was submitted from so backward navigation
|
|
150
|
+
// can selectively clear downstream step data.
|
|
151
|
+
for (_i2 = 0, _Object$keys2 = Object.keys(values); _i2 < _Object$keys2.length; _i2++) {
|
|
152
|
+
key = _Object$keys2[_i2];
|
|
153
|
+
keyStepMapRef.current.set(key, mergedCurrent);
|
|
154
|
+
}
|
|
155
|
+
mergedValues = Object.assign(Object.assign({}, allValuesRef.current), values);
|
|
156
|
+
allValuesRef.current = mergedValues;
|
|
157
|
+
setAllValues(mergedValues);
|
|
158
|
+
isLast = mergedCurrent >= steps.length - 1;
|
|
159
|
+
if (!isLast) {
|
|
160
|
+
_context.next = 15;
|
|
161
|
+
break;
|
|
162
|
+
}
|
|
163
|
+
_context.next = 14;
|
|
164
|
+
return onFinish === null || onFinish === void 0 ? void 0 : onFinish(mergedValues);
|
|
165
|
+
case 14:
|
|
166
|
+
return _context.abrupt("return");
|
|
167
|
+
case 15:
|
|
168
|
+
setCurrent(mergedCurrent + 1);
|
|
169
|
+
case 16:
|
|
170
|
+
case "end":
|
|
171
|
+
return _context.stop();
|
|
172
|
+
}
|
|
173
|
+
}, _callee);
|
|
174
|
+
}));
|
|
175
|
+
}, [mergedCurrent, onFinish, setCurrent, steps]);
|
|
176
|
+
var parentFormProps = formProps;
|
|
177
|
+
var _b = (_a = activeStep === null || activeStep === void 0 ? void 0 : activeStep.props) !== null && _a !== void 0 ? _a : {},
|
|
178
|
+
_b2 = _b,
|
|
179
|
+
title = _b2.title,
|
|
180
|
+
description = _b2.description,
|
|
181
|
+
stepProps = _b2.stepProps,
|
|
182
|
+
stepChildren = _b2.children,
|
|
183
|
+
stepFormProps = __rest(_b, ["title", "description", "stepProps", "children"]);
|
|
184
|
+
var activeStepFormProps = activeStep ? stepFormProps : undefined;
|
|
185
|
+
var stepsHtmlProps = pickHtmlDivProps(stepsProps || {});
|
|
186
|
+
var stepHtmlProps = pickHtmlDivProps(stepProps || {});
|
|
187
|
+
var mergedDefaultValues = useMemo(function () {
|
|
188
|
+
return Object.assign(Object.assign(Object.assign({}, parentFormProps === null || parentFormProps === void 0 ? void 0 : parentFormProps.defaultValues), activeStepFormProps === null || activeStepFormProps === void 0 ? void 0 : activeStepFormProps.defaultValues), allValues);
|
|
189
|
+
}, [activeStepFormProps === null || activeStepFormProps === void 0 ? void 0 : activeStepFormProps.defaultValues, allValues, parentFormProps === null || parentFormProps === void 0 ? void 0 : parentFormProps.defaultValues]);
|
|
190
|
+
var submitterConfig = submitter === false ? false : submitter || {};
|
|
191
|
+
var handlePrev = useCallback(function () {
|
|
192
|
+
var _a;
|
|
193
|
+
if (submitterConfig !== false) {
|
|
194
|
+
(_a = submitterConfig.onReset) === null || _a === void 0 ? void 0 : _a.call(submitterConfig);
|
|
195
|
+
}
|
|
196
|
+
if (mergedCurrent > 0) {
|
|
197
|
+
setCurrent(mergedCurrent - 1);
|
|
198
|
+
}
|
|
199
|
+
}, [mergedCurrent, setCurrent, submitterConfig]);
|
|
200
|
+
var handleSubmitClick = useCallback(function () {
|
|
201
|
+
var _a;
|
|
202
|
+
if (submitterConfig !== false) {
|
|
203
|
+
(_a = submitterConfig.onSubmit) === null || _a === void 0 ? void 0 : _a.call(submitterConfig);
|
|
204
|
+
}
|
|
205
|
+
}, [submitterConfig]);
|
|
206
|
+
var triggerStepSubmit = useCallback(function () {
|
|
207
|
+
var _a, _b;
|
|
208
|
+
if (submitterConfig !== false) {
|
|
209
|
+
(_a = submitterConfig.onSubmit) === null || _a === void 0 ? void 0 : _a.call(submitterConfig);
|
|
210
|
+
}
|
|
211
|
+
var formNode = (_b = stepPanelRef.current) === null || _b === void 0 ? void 0 : _b.querySelector('form');
|
|
212
|
+
if (!formNode) return;
|
|
213
|
+
if (typeof formNode.requestSubmit === 'function') {
|
|
214
|
+
formNode.requestSubmit();
|
|
215
|
+
return;
|
|
216
|
+
}
|
|
217
|
+
formNode.dispatchEvent(new Event('submit', {
|
|
218
|
+
bubbles: true,
|
|
219
|
+
cancelable: true
|
|
220
|
+
}));
|
|
221
|
+
}, [submitterConfig]);
|
|
222
|
+
var prevText = submitterConfig !== false && submitterConfig.prevText ? submitterConfig.prevText : DEFAULT_TEXT.previous;
|
|
223
|
+
var nextText = submitterConfig !== false && submitterConfig.nextText ? submitterConfig.nextText : DEFAULT_TEXT.next;
|
|
224
|
+
var submitText = submitterConfig !== false && submitterConfig.submitText ? submitterConfig.submitText : DEFAULT_TEXT.submit;
|
|
225
|
+
var isLastStep = mergedCurrent >= steps.length - 1;
|
|
226
|
+
var stepsClassNameRaw = stepsHtmlProps.className,
|
|
227
|
+
stepsRestHtml = __rest(stepsHtmlProps, ["className"]);
|
|
228
|
+
var stepClassNameRaw = stepHtmlProps.className,
|
|
229
|
+
stepRestHtml = __rest(stepHtmlProps, ["className"]);
|
|
230
|
+
var stepsClassName = typeof stepsClassNameRaw === 'string' ? stepsClassNameRaw : undefined;
|
|
231
|
+
var stepClassName = typeof stepClassNameRaw === 'string' ? stepClassNameRaw : undefined;
|
|
232
|
+
var renderedActions = useMemo(function () {
|
|
233
|
+
var _a, _b, _c, _d;
|
|
234
|
+
if (submitterConfig === false) return null;
|
|
235
|
+
var resetButtonProps = submitterConfig.resetButtonProps;
|
|
236
|
+
var submitButtonProps = submitterConfig.submitButtonProps;
|
|
237
|
+
var prevButton = mergedCurrent > 0 ? _jsx(Button, Object.assign({}, resetButtonProps, {
|
|
238
|
+
type: (_a = resetButtonProps === null || resetButtonProps === void 0 ? void 0 : resetButtonProps.type) !== null && _a !== void 0 ? _a : 'button',
|
|
239
|
+
severity: (_b = resetButtonProps === null || resetButtonProps === void 0 ? void 0 : resetButtonProps.severity) !== null && _b !== void 0 ? _b : 'secondary',
|
|
240
|
+
onClick: function onClick(event) {
|
|
241
|
+
var _a;
|
|
242
|
+
(_a = resetButtonProps === null || resetButtonProps === void 0 ? void 0 : resetButtonProps.onClick) === null || _a === void 0 ? void 0 : _a.call(resetButtonProps, event);
|
|
243
|
+
handlePrev();
|
|
244
|
+
},
|
|
245
|
+
children: prevText
|
|
246
|
+
}), 'prev') : null;
|
|
247
|
+
var nextButton = _jsx(Button, Object.assign({}, submitButtonProps, {
|
|
248
|
+
type: (_c = submitButtonProps === null || submitButtonProps === void 0 ? void 0 : submitButtonProps.type) !== null && _c !== void 0 ? _c : 'submit',
|
|
249
|
+
onClick: function onClick(event) {
|
|
250
|
+
var _a;
|
|
251
|
+
(_a = submitButtonProps === null || submitButtonProps === void 0 ? void 0 : submitButtonProps.onClick) === null || _a === void 0 ? void 0 : _a.call(submitButtonProps, event);
|
|
252
|
+
handleSubmitClick();
|
|
253
|
+
},
|
|
254
|
+
children: isLastStep ? submitText : nextText
|
|
255
|
+
}), 'submit');
|
|
256
|
+
var defaultDom = [prevButton, nextButton].filter(Boolean);
|
|
257
|
+
if (!submitterConfig.render) return defaultDom;
|
|
258
|
+
return submitterConfig.render({
|
|
259
|
+
form: (_d = activeStepFormProps === null || activeStepFormProps === void 0 ? void 0 : activeStepFormProps.form) !== null && _d !== void 0 ? _d : parentFormProps === null || parentFormProps === void 0 ? void 0 : parentFormProps.form,
|
|
260
|
+
submit: triggerStepSubmit,
|
|
261
|
+
reset: handlePrev
|
|
262
|
+
}, defaultDom);
|
|
263
|
+
}, [activeStepFormProps === null || activeStepFormProps === void 0 ? void 0 : activeStepFormProps.form, handlePrev, handleSubmitClick, isLastStep, mergedCurrent, nextText, parentFormProps === null || parentFormProps === void 0 ? void 0 : parentFormProps.form, prevText, submitText, submitterConfig, triggerStepSubmit]);
|
|
264
|
+
if (!activeStep) return null;
|
|
265
|
+
return _jsx("div", Object.assign({}, stepsRestHtml, {
|
|
266
|
+
className: joinCls("".concat(CSS_PREFIX, "-steps-form"), stepsClassName),
|
|
267
|
+
children: _jsxs("div", Object.assign({}, stepRestHtml, {
|
|
268
|
+
ref: stepPanelRef,
|
|
269
|
+
className: joinCls("".concat(CSS_PREFIX, "-steps-form-step"), stepClassName),
|
|
270
|
+
children: [title && _jsx("div", {
|
|
271
|
+
className: joinCls(styles['proform__steps-form-title'], "".concat(CSS_PREFIX, "-steps-form-title")),
|
|
272
|
+
children: title
|
|
273
|
+
}), description && _jsx("div", {
|
|
274
|
+
className: joinCls(styles['proform__steps-form-description'], "".concat(CSS_PREFIX, "-steps-form-description")),
|
|
275
|
+
children: description
|
|
276
|
+
}), _jsxs(ProForm, Object.assign({}, parentFormProps, activeStepFormProps, {
|
|
277
|
+
defaultValues: mergedDefaultValues,
|
|
278
|
+
submitter: false,
|
|
279
|
+
onFinish: handleStepFinish,
|
|
280
|
+
children: [stepChildren, renderedActions && _jsx("div", {
|
|
281
|
+
className: joinCls(styles['proform__steps-form-actions'], "".concat(CSS_PREFIX, "-steps-form-actions")),
|
|
282
|
+
children: renderedActions
|
|
283
|
+
})]
|
|
284
|
+
}), "step-".concat(mergedCurrent))]
|
|
285
|
+
}))
|
|
286
|
+
}));
|
|
287
|
+
};
|
|
288
|
+
StepsFormInner.displayName = 'StepsForm';
|
|
289
|
+
var StepsFormBase = /*#__PURE__*/memo(StepsFormInner);
|
|
290
|
+
// Type assertion required because memo() loses the static StepForm property type.
|
|
291
|
+
// We attach StepForm as a static property below, making this a compound component pattern.
|
|
292
|
+
export var StepsForm = StepsFormBase;
|
|
293
|
+
StepsForm.StepForm = StepForm;
|
|
294
|
+
export default StepsForm;
|
|
295
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvUHJvRm9ybS9sYXlvdXRzL1N0ZXBzRm9ybS5qcyIsImNvbXBvbmVudHMvUHJvRm9ybS9zcmMvY29tcG9uZW50cy9Qcm9Gb3JtL2xheW91dHMvU3RlcHNGb3JtLnRzeCJdLCJuYW1lcyI6WyJfX2F3YWl0ZXIiLCJ0aGlzQXJnIiwiX2FyZ3VtZW50cyIsIlAiLCJnZW5lcmF0b3IiLCJhZG9wdCIsInZhbHVlIiwicmVzb2x2ZSIsIlByb21pc2UiLCJyZWplY3QiLCJmdWxmaWxsZWQiLCJzdGVwIiwibmV4dCIsImUiLCJyZWplY3RlZCIsInJlc3VsdCIsImRvbmUiLCJ0aGVuIiwiYXBwbHkiLCJfX3Jlc3QiLCJzIiwidCIsInAiLCJPYmplY3QiLCJwcm90b3R5cGUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJpbmRleE9mIiwiZ2V0T3duUHJvcGVydHlTeW1ib2xzIiwiaSIsImxlbmd0aCIsInByb3BlcnR5SXNFbnVtZXJhYmxlIiwiRnJhZ21lbnQiLCJfRnJhZ21lbnQiLCJqc3giLCJfanN4IiwianN4cyIsIl9qc3hzIiwiQ2hpbGRyZW4iLCJpc1ZhbGlkRWxlbWVudCIsIm1lbW8iLCJ1c2VDYWxsYmFjayIsInVzZU1lbW8iLCJ1c2VSZWYiLCJ1c2VTdGF0ZSIsImpvaW5DbHMiLCJCdXR0b24iLCJ1c2VMYXRlc3QiLCJQcm9Gb3JtIiwiQ1NTX1BSRUZJWCIsIkRFRkFVTFRfVEVYVCIsInN0eWxlcyIsIlN0ZXBGb3JtIiwicHJvcHMiLCJjaGlsZHJlbiIsInBpY2tIdG1sRGl2UHJvcHMiLCJfaSIsIl9PYmplY3Qka2V5cyIsImtleXMiLCJrZXkiLCJzdGFydHNXaXRoIiwiU3RlcHNGb3JtSW5uZXIiLCJfYSIsImN1cnJlbnQiLCJvbkN1cnJlbnRDaGFuZ2UiLCJvbkZpbmlzaCIsInN0ZXBzUHJvcHMiLCJmb3JtUHJvcHMiLCJzdWJtaXR0ZXIiLCJfdXNlU3RhdGUiLCJfdXNlU3RhdGUyIiwiX3NsaWNlZFRvQXJyYXkiLCJpbm5lckN1cnJlbnQiLCJzZXRJbm5lckN1cnJlbnQiLCJfdXNlU3RhdGUzIiwiX3VzZVN0YXRlNCIsImFsbFZhbHVlcyIsInNldEFsbFZhbHVlcyIsImFsbFZhbHVlc1JlZiIsImtleVN0ZXBNYXBSZWYiLCJNYXAiLCJzdGVwUGFuZWxSZWYiLCJzdGVwcyIsInRvQXJyYXkiLCJmaWx0ZXIiLCJtZXJnZWRDdXJyZW50IiwibWVyZ2VkQ3VycmVudFJlZiIsImFjdGl2ZVN0ZXAiLCJzZXRDdXJyZW50IiwibmV4dEN1cnJlbnQiLCJwcmV2IiwiY2xlYW5lZCIsImFzc2lnbiIsImZvckVhY2giLCJzdGVwSW5kZXgiLCJ1bmRlZmluZWQiLCJoYW5kbGVTdGVwRmluaXNoIiwidmFsdWVzIiwiX3JlZ2VuZXJhdG9yUnVudGltZSIsIm1hcmsiLCJfY2FsbGVlIiwiX2IiLCJjdXJyZW50U3RlcCIsInN0ZXBSZXN1bHQiLCJfaTIiLCJfT2JqZWN0JGtleXMyIiwibWVyZ2VkVmFsdWVzIiwiaXNMYXN0Iiwid3JhcCIsIl9jYWxsZWUkIiwiX2NvbnRleHQiLCJzZW50IiwiYWJydXB0Iiwic2V0Iiwic3RvcCIsInBhcmVudEZvcm1Qcm9wcyIsIl9iMiIsInRpdGxlIiwiZGVzY3JpcHRpb24iLCJzdGVwUHJvcHMiLCJzdGVwQ2hpbGRyZW4iLCJzdGVwRm9ybVByb3BzIiwiYWN0aXZlU3RlcEZvcm1Qcm9wcyIsInN0ZXBzSHRtbFByb3BzIiwic3RlcEh0bWxQcm9wcyIsIm1lcmdlZERlZmF1bHRWYWx1ZXMiLCJkZWZhdWx0VmFsdWVzIiwic3VibWl0dGVyQ29uZmlnIiwiaGFuZGxlUHJldiIsIm9uUmVzZXQiLCJoYW5kbGVTdWJtaXRDbGljayIsIm9uU3VibWl0IiwidHJpZ2dlclN0ZXBTdWJtaXQiLCJmb3JtTm9kZSIsInF1ZXJ5U2VsZWN0b3IiLCJyZXF1ZXN0U3VibWl0IiwiZGlzcGF0Y2hFdmVudCIsIkV2ZW50IiwiYnViYmxlcyIsImNhbmNlbGFibGUiLCJwcmV2VGV4dCIsInByZXZpb3VzIiwibmV4dFRleHQiLCJzdWJtaXRUZXh0Iiwic3VibWl0IiwiaXNMYXN0U3RlcCIsInN0ZXBzQ2xhc3NOYW1lUmF3IiwiY2xhc3NOYW1lIiwic3RlcHNSZXN0SHRtbCIsInN0ZXBDbGFzc05hbWVSYXciLCJzdGVwUmVzdEh0bWwiLCJzdGVwc0NsYXNzTmFtZSIsInN0ZXBDbGFzc05hbWUiLCJyZW5kZXJlZEFjdGlvbnMiLCJfYyIsIl9kIiwicmVzZXRCdXR0b25Qcm9wcyIsInN1Ym1pdEJ1dHRvblByb3BzIiwicHJldkJ1dHRvbiIsInR5cGUiLCJzZXZlcml0eSIsIm9uQ2xpY2siLCJldmVudCIsIm5leHRCdXR0b24iLCJkZWZhdWx0RG9tIiwiQm9vbGVhbiIsInJlbmRlciIsImZvcm0iLCJyZXNldCIsImNvbmNhdCIsInJlZiIsImRpc3BsYXlOYW1lIiwiU3RlcHNGb3JtQmFzZSIsIlN0ZXBzRm9ybSJdLCJtYXBwaW5ncyI6Ijs7QUFBQSxJQUFJQSxTQUFTLEdBQUksSUFBSSxJQUFJLElBQUksQ0FBQ0EsU0FBUyxJQUFLLFVBQVVDLE9BQU8sRUFBRUMsVUFBVSxFQUFFQyxDQUFDLEVBQUVDLFNBQVMsRUFBRTtFQUNyRixTQUFTQyxLQUFLQSxDQUFDQyxLQUFLLEVBQUU7SUFBRSxPQUFPQSxLQUFLLFlBQVlILENBQUMsR0FBR0csS0FBSyxHQUFHLElBQUlILENBQUMsQ0FBQyxVQUFVSSxPQUFPLEVBQUU7TUFBRUEsT0FBTyxDQUFDRCxLQUFLLENBQUM7SUFBRSxDQUFDLENBQUM7RUFBRTtFQUMzRyxPQUFPLEtBQUtILENBQUMsS0FBS0EsQ0FBQyxHQUFHSyxPQUFPLENBQUMsRUFBRSxVQUFVRCxPQUFPLEVBQUVFLE1BQU0sRUFBRTtJQUN2RCxTQUFTQyxTQUFTQSxDQUFDSixLQUFLLEVBQUU7TUFBRSxJQUFJO1FBQUVLLElBQUksQ0FBQ1AsU0FBUyxDQUFDUSxJQUFJLENBQUNOLEtBQUssQ0FBQyxDQUFDO01BQUUsQ0FBQyxDQUFDLE9BQU9PLENBQUMsRUFBRTtRQUFFSixNQUFNLENBQUNJLENBQUMsQ0FBQztNQUFFO0lBQUU7SUFDMUYsU0FBU0MsUUFBUUEsQ0FBQ1IsS0FBSyxFQUFFO01BQUUsSUFBSTtRQUFFSyxJQUFJLENBQUNQLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQ0UsS0FBSyxDQUFDLENBQUM7TUFBRSxDQUFDLENBQUMsT0FBT08sQ0FBQyxFQUFFO1FBQUVKLE1BQU0sQ0FBQ0ksQ0FBQyxDQUFDO01BQUU7SUFBRTtJQUM3RixTQUFTRixJQUFJQSxDQUFDSSxNQUFNLEVBQUU7TUFBRUEsTUFBTSxDQUFDQyxJQUFJLEdBQUdULE9BQU8sQ0FBQ1EsTUFBTSxDQUFDVCxLQUFLLENBQUMsR0FBR0QsS0FBSyxDQUFDVSxNQUFNLENBQUNULEtBQUssQ0FBQyxDQUFDVyxJQUFJLENBQUNQLFNBQVMsRUFBRUksUUFBUSxDQUFDO0lBQUU7SUFDN0dILElBQUksQ0FBQyxDQUFDUCxTQUFTLEdBQUdBLFNBQVMsQ0FBQ2MsS0FBSyxDQUFDakIsT0FBTyxFQUFFQyxVQUFVLElBQUksRUFBRSxDQUFDLEVBQUVVLElBQUksQ0FBQyxDQUFDLENBQUM7RUFDekUsQ0FBQyxDQUFDO0FBQ04sQ0FBQztBQUNELElBQUlPLE1BQU0sR0FBSSxJQUFJLElBQUksSUFBSSxDQUFDQSxNQUFNLElBQUssVUFBVUMsQ0FBQyxFQUFFUCxDQUFDLEVBQUU7RUFDbEQsSUFBSVEsQ0FBQyxHQUFHLENBQUMsQ0FBQztFQUNWLEtBQUssSUFBSUMsQ0FBQyxJQUFJRixDQUFDLEVBQUUsSUFBSUcsTUFBTSxDQUFDQyxTQUFTLENBQUNDLGNBQWMsQ0FBQ0MsSUFBSSxDQUFDTixDQUFDLEVBQUVFLENBQUMsQ0FBQyxJQUFJVCxDQUFDLENBQUNjLE9BQU8sQ0FBQ0wsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUMvRUQsQ0FBQyxDQUFDQyxDQUFDLENBQUMsR0FBR0YsQ0FBQyxDQUFDRSxDQUFDLENBQUM7RUFDZixJQUFJRixDQUFDLElBQUksSUFBSSxJQUFJLE9BQU9HLE1BQU0sQ0FBQ0sscUJBQXFCLEtBQUssVUFBVSxFQUMvRCxLQUFLLElBQUlDLENBQUMsR0FBRyxDQUFDLEVBQUVQLENBQUMsR0FBR0MsTUFBTSxDQUFDSyxxQkFBcUIsQ0FBQ1IsQ0FBQyxDQUFDLEVBQUVTLENBQUMsR0FBR1AsQ0FBQyxDQUFDUSxNQUFNLEVBQUVELENBQUMsRUFBRSxFQUFFO0lBQ3BFLElBQUloQixDQUFDLENBQUNjLE9BQU8sQ0FBQ0wsQ0FBQyxDQUFDTyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSU4sTUFBTSxDQUFDQyxTQUFTLENBQUNPLG9CQUFvQixDQUFDTCxJQUFJLENBQUNOLENBQUMsRUFBRUUsQ0FBQyxDQUFDTyxDQUFDLENBQUMsQ0FBQyxFQUMxRVIsQ0FBQyxDQUFDQyxDQUFDLENBQUNPLENBQUMsQ0FBQyxDQUFDLEdBQUdULENBQUMsQ0FBQ0UsQ0FBQyxDQUFDTyxDQUFDLENBQUMsQ0FBQztFQUN6QjtFQUNKLE9BQU9SLENBQUM7QUFDWixDQUFDO0FBQ0QsU0FBU1csUUFBUSxJQUFJQyxTQUFTLEVBQUVDLEdBQUcsSUFBSUMsSUFBSSxFQUFFQyxJQUFJLElBQUlDLEtBQUssUUFBUSxtQkFBbUI7QUNwQnJGLFNBQ0VDLFFBQVEsRUFDUkMsY0FBYyxFQUNkQyxJQUFJLEVBQ0pDLFdBQVcsRUFDWEMsT0FBTyxFQUNQQyxNQUFNLEVBQ05DLFFBQVEsUUFDSCxPQUFPO0FBQ2QsU0FBU0MsT0FBTyxRQUFRLDJCQUEyQjtBQUNuRCxTQUFTQyxNQUFNLFFBQVEsY0FBYztBQUNyQyxPQUFPQyxTQUFTLE1BQU0saUJBQWlCO0FBQ3ZDLE9BQU9DLE9BQU8sTUFBTSxZQUFZO0FBQ2hDLFNBQVNDLFVBQVUsRUFBRUMsWUFBWSxRQUFRLGNBQWM7QUFDdkQsT0FBT0MsTUFBTSxNQUFNLDhCQUE4QjtBQUtqRDtBRFVBO0FBQ0E7QUFDQTtBQ1JBLE9BQU8sSUFBTUMsUUFBUSxHQUFtQyxTQUEzQ0EsUUFBUUEsQ0FBb0NDLEtBQUssRUFBSTtFQUNoRSxPQUFPbEIsSUFBQSxDQUFBRixTQUFBLEVBQUE7SUFBQXFCLFFBQUEsRUFBR0QsS0FBSyxDQUFDQztFQUFRLENBQUEsQ0FBSTtBQUM5QixDQUFDO0FBTUQ7QURLQTtBQUNBO0FBQ0E7QUNIQSxJQUFNQyxnQkFBZ0IsR0FBRyxTQUFuQkEsZ0JBQWdCQSxDQUFJRixLQUE4QixFQUE2QjtFQUNuRixJQUFNdEMsTUFBTSxHQUE0QixDQUFBLENBQUU7RUFDMUMsU0FBQXlDLEVBQUEsTUFBQUMsWUFBQSxHQUFrQmxDLE1BQU0sQ0FBQ21DLElBQUksQ0FBQ0wsS0FBSyxDQUFDLEVBQUFHLEVBQUEsR0FBQUMsWUFBQSxDQUFBM0IsTUFBQSxFQUFBMEIsRUFBQSxJQUFFO0lBQWpDLElBQU1HLEdBQUcsR0FBQUYsWUFBQSxDQUFBRCxFQUFBO0lBQ1osSUFBSUcsR0FBRyxLQUFLLFdBQVcsSUFBSUEsR0FBRyxLQUFLLE9BQU8sSUFBSUEsR0FBRyxLQUFLLElBQUksSUFBSUEsR0FBRyxDQUFDQyxVQUFVLENBQUMsT0FBTyxDQUFDLElBQUlELEdBQUcsQ0FBQ0MsVUFBVSxDQUFDLE9BQU8sQ0FBQyxFQUFFO01BQ2hIN0MsTUFBTSxDQUFDNEMsR0FBRyxDQUFDLEdBQUdOLEtBQUssQ0FBQ00sR0FBRyxDQUFDO0lBQzFCO0VBQ0Y7RUFDQSxPQUFPNUMsTUFBTTtBQUNmLENBQUM7QUFFRDtBRElBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQ0ZBLElBQU04QyxjQUFjLEdBQW9DLFNBQWxEQSxjQUFjQSxDQUFxQ1IsS0FBSyxFQUFJO0VESTlELElBQUlTLEVBQUU7RUNIUixJQUNFQyxPQUFPLEdBT0xWLEtBQUssQ0FQUFUsT0FBTztJQUNQQyxlQUFlLEdBTWJYLEtBQUssQ0FOUFcsZUFBZTtJQUNmQyxRQUFRLEdBS05aLEtBQUssQ0FMUFksUUFBUTtJQUNSQyxVQUFVLEdBSVJiLEtBQUssQ0FKUGEsVUFBVTtJQUNWQyxTQUFTLEdBR1BkLEtBQUssQ0FIUGMsU0FBUztJQUNUQyxTQUFTLEdBRVBmLEtBQUssQ0FGUGUsU0FBUztJQUNUZCxRQUFRLEdBQ05ELEtBQUssQ0FEUEMsUUFBUTtFQUdWLElBQUFlLFNBQUEsR0FBd0N6QixRQUFRLENBQUMsQ0FBQyxDQUFDO0lBQUEwQixVQUFBLEdBQUFDLGNBQUEsQ0FBQUYsU0FBQTtJQUE1Q0csWUFBWSxHQUFBRixVQUFBO0lBQUVHLGVBQWUsR0FBQUgsVUFBQTtFQUNwQyxJQUFBSSxVQUFBLEdBQWtDOUIsUUFBUSxDQUEwQixDQUFBLENBQUUsQ0FBQztJQUFBK0IsVUFBQSxHQUFBSixjQUFBLENBQUFHLFVBQUE7SUFBaEVFLFNBQVMsR0FBQUQsVUFBQTtJQUFFRSxZQUFZLEdBQUFGLFVBQUE7RUFDOUIsSUFBTUcsWUFBWSxHQUFHbkMsTUFBTSxDQUEwQixDQUFBLENBQUUsQ0FBQztFQUN4RDtFQUNBLElBQU1vQyxhQUFhLEdBQUdwQyxNQUFNLENBQXNCLElBQUlxQyxHQUFHLENBQUEsQ0FBRSxDQUFDO0VBQzVELElBQU1DLFlBQVksR0FBR3RDLE1BQU0sQ0FBaUIsSUFBSSxDQUFDO0VBRWpELElBQU11QyxLQUFLLEdBQUd4QyxPQUFPLENBQUMsWUFBSztJQUN6QixPQUFPSixRQUFRLENBQUM2QyxPQUFPLENBQUM3QixRQUFRLENBQUMsQ0FBQzhCLE1BQU0sQ0FBQzdDLGNBQWMsQ0FBK0M7RUFDeEcsQ0FBQyxFQUFFLENBQUNlLFFBQVEsQ0FBQyxDQUFDO0VBRWQsSUFBTStCLGFBQWEsR0FBRyxPQUFPdEIsT0FBTyxLQUFLLFFBQVEsR0FBR0EsT0FBTyxHQUFHUyxZQUFZO0VBQzFFLElBQU1jLGdCQUFnQixHQUFHdkMsU0FBUyxDQUFDc0MsYUFBYSxDQUFDO0VBQ2pELElBQU1FLFVBQVUsR0FBR0wsS0FBSyxDQUFDRyxhQUFhLENBQUM7RUFFdkMsSUFBTUcsVUFBVSxHQUFHL0MsV0FBVyxDQUFDLFVBQUNnRCxXQUFtQixFQUFJO0lBQ3JEO0lBQ0E7SUFDQSxJQUFJQSxXQUFXLEdBQUdILGdCQUFnQixDQUFDdkIsT0FBTyxFQUFFO01BQzFDYyxZQUFZLENBQUMsVUFBQWEsSUFBSSxFQUFHO1FBQ2xCLElBQU1DLE9BQU8sR0FBQXBFLE1BQUEsQ0FBQXFFLE1BQUEsQ0FBQSxDQUFBLENBQUEsRUFBUUYsSUFBSSxDQUFFO1FBQzNCWCxhQUFhLENBQUNoQixPQUFPLENBQUM4QixPQUFPLENBQUMsVUFBQ0MsU0FBUyxFQUFFbkMsR0FBRyxFQUFJO1VBQy9DLElBQUltQyxTQUFTLEdBQUdMLFdBQVcsRUFBRTtZQUMzQixPQUFPRSxPQUFPLENBQUNoQyxHQUFHLENBQUM7VUFDckI7UUFDRixDQUFDLENBQUM7UUFDRm1CLFlBQVksQ0FBQ2YsT0FBTyxHQUFHNEIsT0FBTztRQUM5QixPQUFPQSxPQUFPO01BQ2hCLENBQUMsQ0FBQztJQUNKO0lBQ0EsSUFBSTVCLE9BQU8sS0FBS2dDLFNBQVMsRUFBRTtNQUN6QnRCLGVBQWUsQ0FBQ2dCLFdBQVcsQ0FBQztJQUM5QjtJQUNBekIsZUFBZSxLQUFBLElBQUEsSUFBZkEsZUFBZSxLQUFBLEtBQUEsQ0FBQSxHQUFBLEtBQUEsQ0FBQSxHQUFmQSxlQUFlLENBQUd5QixXQUFXLENBQUM7RUFDaEMsQ0FBQyxFQUFFLENBQUMxQixPQUFPLEVBQUVDLGVBQWUsQ0FBQyxDQUFDO0VBRTlCLElBQU1nQyxnQkFBZ0IsR0FBR3ZELFdBQVcsQ0FBQyxVQUFPd0QsTUFBK0I7SUFBQSxPQUFJakcsU0FBQSxDQUFBLEtBQUEsQ0FBQSxFQUFBLEtBQUEsQ0FBQSxFQUFBLEtBQUEsQ0FBQSxlQUFBa0csbUJBQUEsQ0FBQUMsSUFBQSxDQUFBLFNBQUFDLFFBQUE7TUFBQSxJQUFBdEMsRUFBQSxFQUFBdUMsRUFBQSxFQUFBQyxXQUFBLEVBQUFDLFVBQUEsRUFBQUMsR0FBQSxFQUFBQyxhQUFBLEVBQUE5QyxHQUFBLEVBQUErQyxZQUFBLEVBQUFDLE1BQUE7TUFBQSxPQUFBVCxtQkFBQSxDQUFBVSxJQUFBLFVBQUFDLFNBQUFDLFFBQUE7UUFBQSxrQkFBQUEsUUFBQSxDQUFBcEIsSUFBQSxHQUFBb0IsUUFBQSxDQUFBbEcsSUFBQTtVQUFBO1lBQ3ZFMEYsV0FBVyxHQUFHcEIsS0FBSyxDQUFDRyxhQUFhLENBQUM7WUFBQXlCLFFBQUEsQ0FBQWxHLElBQUE7WUFDckIsT0FBTSxDQUFBeUYsRUFBQSxHQUFBLENBQUF2QyxFQUFBLEdBQUF3QyxXQUFXLEtBQUEsSUFBQSxJQUFYQSxXQUFXLEtBQUEsS0FBQSxDQUFBLEdBQUEsS0FBQSxDQUFBLEdBQVhBLFdBQVcsQ0FBRWpELEtBQUssTUFBQSxJQUFBLElBQUFTLEVBQUEsS0FBQSxLQUFBLENBQUEsR0FBQSxLQUFBLENBQUEsR0FBQUEsRUFBQSxDQUFFRyxRQUFRLE1BQUEsSUFBQSxJQUFBb0MsRUFBQSxLQUFBLEtBQUEsQ0FBQSxHQUFBLEtBQUEsQ0FBQSxHQUFBQSxFQUFBLENBQUEzRSxJQUFBLENBQUFvQyxFQUFBLEVBQUdtQyxNQUFxQixDQUFDO1VBQUE7WUFBeEVNLFVBQVUsR0FBQU8sUUFBQSxDQUFBQyxJQUFBO1lBQUEsTUFDWlIsVUFBVSxLQUFLLEtBQUs7Y0FBQU8sUUFBQSxDQUFBbEcsSUFBQTtjQUFBO1lBQUE7WUFBQSxPQUFBa0csUUFBQSxDQUFBRSxNQUFBO1VBQUE7WUFFeEI7WUFDQTtZQUNBLEtBQUFSLEdBQUEsTUFBQUMsYUFBQSxHQUFrQmxGLE1BQU0sQ0FBQ21DLElBQUksQ0FBQ3VDLE1BQU0sQ0FBQyxFQUFBTyxHQUFBLEdBQUFDLGFBQUEsQ0FBQTNFLE1BQUEsRUFBQTBFLEdBQUEsSUFBRTtjQUE1QjdDLEdBQUcsR0FBQThDLGFBQUEsQ0FBQUQsR0FBQTtjQUNaekIsYUFBYSxDQUFDaEIsT0FBTyxDQUFDa0QsR0FBRyxDQUFDdEQsR0FBRyxFQUFFMEIsYUFBYSxDQUFDO1lBQy9DO1lBRU1xQixZQUFZLEdBQUFuRixNQUFBLENBQUFxRSxNQUFBLENBQUFyRSxNQUFBLENBQUFxRSxNQUFBLENBQUEsQ0FBQSxDQUFBLEVBQVFkLFlBQVksQ0FBQ2YsT0FBTyxDQUFBLEVBQUtrQyxNQUFNLENBQUU7WUFDM0RuQixZQUFZLENBQUNmLE9BQU8sR0FBRzJDLFlBQVk7WUFDbkM3QixZQUFZLENBQUM2QixZQUFZLENBQUM7WUFFcEJDLE1BQU0sR0FBR3RCLGFBQWEsSUFBSUgsS0FBSyxDQUFDcEQsTUFBTSxHQUFHLENBQUM7WUFBQSxLQUM1QzZFLE1BQU07Y0FBQUcsUUFBQSxDQUFBbEcsSUFBQTtjQUFBO1lBQUE7WUFBQWtHLFFBQUEsQ0FBQWxHLElBQUE7WUFDUixPQUFNcUQsUUFBUSxLQUFBLElBQUEsSUFBUkEsUUFBUSxLQUFBLEtBQUEsQ0FBQSxHQUFBLEtBQUEsQ0FBQSxHQUFSQSxRQUFRLENBQUd5QyxZQUEyQixDQUFDO1VBQUE7WUFBQSxPQUFBSSxRQUFBLENBQUFFLE1BQUE7VUFBQTtZQUkvQ3hCLFVBQVUsQ0FBQ0gsYUFBYSxHQUFHLENBQUMsQ0FBQztVQUFDO1VBQUE7WUFBQSxPQUFBeUIsUUFBQSxDQUFBSSxJQUFBO1FBQUE7TUFBQSxHQUFBZCxPQUFBO0lBQUEsQ0FDL0IsRUFBQTtFQUFBLEdBQUUsQ0FBQ2YsYUFBYSxFQUFFcEIsUUFBUSxFQUFFdUIsVUFBVSxFQUFFTixLQUFLLENBQUMsQ0FBQztFQUVoRCxJQUFNaUMsZUFBZSxHQUFHaEQsU0FBMkQ7RUFDN0UsSUFBQWtDLEVBQUEsR0FNRCxDQUFBdkMsRUFBQSxHQUFBeUIsVUFBVSxLQUFBLElBQUEsSUFBVkEsVUFBVSxLQUFBLEtBQUEsQ0FBQSxHQUFBLEtBQUEsQ0FBQSxHQUFWQSxVQUFVLENBQUVsQyxLQUFLLE1BQUEsSUFBQSxJQUFBUyxFQUFBLEtBQUEsS0FBQSxDQUFBLEdBQUFBLEVBQUEsR0FBSSxDQUFBLENBQUU7SUFBQXNELEdBQUEsR0FGSmYsRUFFbUM7SUFMekRnQixLQUFLLEdBQUFELEdBQUEsQ0FBTEMsS0FBSztJQUNMQyxXQUFXLEdBQUFGLEdBQUEsQ0FBWEUsV0FBVztJQUNYQyxTQUFTLEdBQUFILEdBQUEsQ0FBVEcsU0FBUztJQUNDQyxZQUFZLEdBQUFKLEdBQUEsQ0FBdEI5RCxRQUFRO0lBQ0xtRSxhQUFhLEdBQUF0RyxNQUFBLENBQUFrRixFQUFBLEVBTFosQ0FBQSxPQUFBLEVBQUEsYUFBQSxFQUFBLFdBQUEsRUFBQSxVQUFBLENBTUwsQ0FBMEQ7RUFDM0QsSUFBTXFCLG1CQUFtQixHQUFHbkMsVUFBVSxHQUNqQ2tDLGFBQW9ELEdBQ3JEMUIsU0FBUztFQUViLElBQU00QixjQUFjLEdBQUdwRSxnQkFBZ0IsQ0FBRVcsVUFBVSxJQUFJLENBQUEsQ0FBOEIsQ0FBQztFQUN0RixJQUFNMEQsYUFBYSxHQUFHckUsZ0JBQWdCLENBQUVnRSxTQUFTLElBQUksQ0FBQSxDQUE4QixDQUFDO0VBRXBGLElBQU1NLG1CQUFtQixHQUFHbkYsT0FBTyxDQUFDO0lBQUEsT0FBTW5CLE1BQUEsQ0FBQXFFLE1BQUEsQ0FBQXJFLE1BQUEsQ0FBQXFFLE1BQUEsQ0FBQXJFLE1BQUEsQ0FBQXFFLE1BQUEsQ0FBQSxDQUFBLENBQUEsRUFDckN1QixlQUFlLEtBQUEsSUFBQSxJQUFmQSxlQUFlLEtBQUEsS0FBQSxDQUFBLEdBQUEsS0FBQSxDQUFBLEdBQWZBLGVBQWUsQ0FBRVcsYUFBYSxDQUFBLEVBQzlCSixtQkFBbUIsS0FBQSxJQUFBLElBQW5CQSxtQkFBbUIsS0FBQSxLQUFBLENBQUEsR0FBQSxLQUFBLENBQUEsR0FBbkJBLG1CQUFtQixDQUFFSSxhQUFhLENBQUEsRUFDbENsRCxTQUFTLENBQUE7RUFBQSxDQUNaLEVBQUUsQ0FBQzhDLG1CQUFtQixLQUFBLElBQUEsSUFBbkJBLG1CQUFtQixLQUFBLEtBQUEsQ0FBQSxHQUFBLEtBQUEsQ0FBQSxHQUFuQkEsbUJBQW1CLENBQUVJLGFBQWEsRUFBRWxELFNBQVMsRUFBRXVDLGVBQWUsS0FBQSxJQUFBLElBQWZBLGVBQWUsS0FBQSxLQUFBLENBQUEsR0FBQSxLQUFBLENBQUEsR0FBZkEsZUFBZSxDQUFFVyxhQUFhLENBQUMsQ0FBQztFQUNwRixJQUFNQyxlQUFlLEdBQUczRCxTQUFTLEtBQUssS0FBSyxHQUFHLEtBQUssR0FBSUEsU0FBUyxJQUFJLENBQUEsQ0FBRztFQUV2RSxJQUFNNEQsVUFBVSxHQUFHdkYsV0FBVyxDQUFDLFlBQUs7SUR4QjlCLElBQUlxQixFQUFFO0lDeUJWLElBQUlpRSxlQUFlLEtBQUssS0FBSyxFQUFFO01BQzdCLENBQUFqRSxFQUFBLEdBQUFpRSxlQUFlLENBQUNFLE9BQU8sTUFBQSxJQUFBLElBQUFuRSxFQUFBLEtBQUEsS0FBQSxDQUFBLEdBQUEsS0FBQSxDQUFBLEdBQUFBLEVBQUEsQ0FBQXBDLElBQUEsQ0FBQXFHLGVBQUEsQ0FBSTtJQUM3QjtJQUNBLElBQUkxQyxhQUFhLEdBQUcsQ0FBQyxFQUFFO01BQ3JCRyxVQUFVLENBQUNILGFBQWEsR0FBRyxDQUFDLENBQUM7SUFDL0I7RUFDRixDQUFDLEVBQUUsQ0FBQ0EsYUFBYSxFQUFFRyxVQUFVLEVBQUV1QyxlQUFlLENBQUMsQ0FBQztFQUVoRCxJQUFNRyxpQkFBaUIsR0FBR3pGLFdBQVcsQ0FBQyxZQUFLO0lEeEJyQyxJQUFJcUIsRUFBRTtJQ3lCVixJQUFJaUUsZUFBZSxLQUFLLEtBQUssRUFBRTtNQUM3QixDQUFBakUsRUFBQSxHQUFBaUUsZUFBZSxDQUFDSSxRQUFRLE1BQUEsSUFBQSxJQUFBckUsRUFBQSxLQUFBLEtBQUEsQ0FBQSxHQUFBLEtBQUEsQ0FBQSxHQUFBQSxFQUFBLENBQUFwQyxJQUFBLENBQUFxRyxlQUFBLENBQUk7SUFDOUI7RUFDRixDQUFDLEVBQUUsQ0FBQ0EsZUFBZSxDQUFDLENBQUM7RUFFckIsSUFBTUssaUJBQWlCLEdBQUczRixXQUFXLENBQUMsWUFBSztJRHhCckMsSUFBSXFCLEVBQUUsRUFBRXVDLEVBQUU7SUN5QmQsSUFBSTBCLGVBQWUsS0FBSyxLQUFLLEVBQUU7TUFDN0IsQ0FBQWpFLEVBQUEsR0FBQWlFLGVBQWUsQ0FBQ0ksUUFBUSxNQUFBLElBQUEsSUFBQXJFLEVBQUEsS0FBQSxLQUFBLENBQUEsR0FBQSxLQUFBLENBQUEsR0FBQUEsRUFBQSxDQUFBcEMsSUFBQSxDQUFBcUcsZUFBQSxDQUFJO0lBQzlCO0lBQ0EsSUFBTU0sUUFBUSxHQUFHLENBQUFoQyxFQUFBLEdBQUFwQixZQUFZLENBQUNsQixPQUFPLE1BQUEsSUFBQSxJQUFBc0MsRUFBQSxLQUFBLEtBQUEsQ0FBQSxHQUFBLEtBQUEsQ0FBQSxHQUFBQSxFQUFBLENBQUVpQyxhQUFhLENBQUMsTUFBTSxDQUFDO0lBQzVELElBQUksQ0FBQ0QsUUFBUSxFQUFFO0lBRWYsSUFBSSxPQUFPQSxRQUFRLENBQUNFLGFBQWEsS0FBSyxVQUFVLEVBQUU7TUFDaERGLFFBQVEsQ0FBQ0UsYUFBYSxDQUFBLENBQUU7TUFDeEI7SUFDRjtJQUVBRixRQUFRLENBQUNHLGFBQWEsQ0FBQyxJQUFJQyxLQUFLLENBQUMsUUFBUSxFQUFFO01BQUVDLE9BQU8sRUFBRSxJQUFJO01BQUVDLFVBQVUsRUFBRTtJQUFJLENBQUUsQ0FBQyxDQUFDO0VBQ2xGLENBQUMsRUFBRSxDQUFDWixlQUFlLENBQUMsQ0FBQztFQUVyQixJQUFNYSxRQUFRLEdBQUdiLGVBQWUsS0FBSyxLQUFLLElBQUlBLGVBQWUsQ0FBQ2EsUUFBUSxHQUNsRWIsZUFBZSxDQUFDYSxRQUFRLEdBQ3hCMUYsWUFBWSxDQUFDMkYsUUFBUTtFQUN6QixJQUFNQyxRQUFRLEdBQUdmLGVBQWUsS0FBSyxLQUFLLElBQUlBLGVBQWUsQ0FBQ2UsUUFBUSxHQUNsRWYsZUFBZSxDQUFDZSxRQUFRLEdBQ3hCNUYsWUFBWSxDQUFDdEMsSUFBSTtFQUNyQixJQUFNbUksVUFBVSxHQUFHaEIsZUFBZSxLQUFLLEtBQUssSUFBSUEsZUFBZSxDQUFDZ0IsVUFBVSxHQUN0RWhCLGVBQWUsQ0FBQ2dCLFVBQVUsR0FDMUI3RixZQUFZLENBQUM4RixNQUFNO0VBQ3ZCLElBQU1DLFVBQVUsR0FBRzVELGFBQWEsSUFBSUgsS0FBSyxDQUFDcEQsTUFBTSxHQUFHLENBQUM7RUFFOUMsSUFBYW9ILGlCQUFpQixHQUF1QnZCLGNBQWMsQ0FBakV3QixTQUFTO0lBQXdCQyxhQUFhLEdBQUFqSSxNQUFBLENBQUt3RyxjQUFjLEVBQW5FLENBQUEsV0FBQSxDQUFrRCxDQUFpQjtFQUNuRSxJQUFhMEIsZ0JBQWdCLEdBQXNCekIsYUFBYSxDQUE5RHVCLFNBQVM7SUFBdUJHLFlBQVksR0FBQW5JLE1BQUEsQ0FBS3lHLGFBQWEsRUFBaEUsQ0FBQSxXQUFBLENBQWdELENBQWdCO0VBQ3RFLElBQU0yQixjQUFjLEdBQUcsT0FBT0wsaUJBQWlCLEtBQUssUUFBUSxHQUFHQSxpQkFBaUIsR0FBR25ELFNBQVM7RUFDNUYsSUFBTXlELGFBQWEsR0FBRyxPQUFPSCxnQkFBZ0IsS0FBSyxRQUFRLEdBQUdBLGdCQUFnQixHQUFHdEQsU0FBUztFQUV6RixJQUFNMEQsZUFBZSxHQUFHL0csT0FBTyxDQUFZLFlBQUs7SUQzQjFDLElBQUlvQixFQUFFLEVBQUV1QyxFQUFFLEVBQUVxRCxFQUFFLEVBQUVDLEVBQUU7SUM0QnRCLElBQUk1QixlQUFlLEtBQUssS0FBSyxFQUFFLE9BQU8sSUFBSTtJQUUxQyxJQUFNNkIsZ0JBQWdCLEdBQUc3QixlQUFlLENBQUM2QixnQkFBZ0I7SUFDekQsSUFBTUMsaUJBQWlCLEdBQUc5QixlQUFlLENBQUM4QixpQkFBaUI7SUFFM0QsSUFBTUMsVUFBVSxHQUFHekUsYUFBYSxHQUFHLENBQUMsR0FFaENsRCxJQUFBLENBQUNXLE1BQU0sRUFBQXZCLE1BQUEsQ0FBQXFFLE1BQUEsQ0FBQSxDQUFBLENBQUEsRUFFRGdFLGdCQUFnQixFQUFBO01BQ3BCRyxJQUFJLEVBQUUsQ0FBQWpHLEVBQUEsR0FBQThGLGdCQUFnQixLQUFBLElBQUEsSUFBaEJBLGdCQUFnQixLQUFBLEtBQUEsQ0FBQSxHQUFBLEtBQUEsQ0FBQSxHQUFoQkEsZ0JBQWdCLENBQUVHLElBQUksTUFBQSxJQUFBLElBQUFqRyxFQUFBLEtBQUEsS0FBQSxDQUFBLEdBQUFBLEVBQUEsR0FBSSxRQUFRO01BQ3hDa0csUUFBUSxFQUFFLENBQUEzRCxFQUFBLEdBQUF1RCxnQkFBZ0IsS0FBQSxJQUFBLElBQWhCQSxnQkFBZ0IsS0FBQSxLQUFBLENBQUEsR0FBQSxLQUFBLENBQUEsR0FBaEJBLGdCQUFnQixDQUFFSSxRQUFRLE1BQUEsSUFBQSxJQUFBM0QsRUFBQSxLQUFBLEtBQUEsQ0FBQSxHQUFBQSxFQUFBLEdBQUksV0FBVztNQUNuRDRELE9BQU8sRUFBRSxTQUFUQSxPQUFPQSxDQUFHQyxLQUFLLEVBQUk7UURqQ1QsSUFBSXBHLEVBQUU7UUNrQ2QsQ0FBQUEsRUFBQSxHQUFBOEYsZ0JBQWdCLEtBQUEsSUFBQSxJQUFoQkEsZ0JBQWdCLEtBQUEsS0FBQSxDQUFBLEdBQUEsS0FBQSxDQUFBLEdBQWhCQSxnQkFBZ0IsQ0FBRUssT0FBTyxNQUFBLElBQUEsSUFBQW5HLEVBQUEsS0FBQSxLQUFBLENBQUEsR0FBQSxLQUFBLENBQUEsR0FBQUEsRUFBQSxDQUFBcEMsSUFBQSxDQUFBa0ksZ0JBQUEsRUFBR00sS0FBSyxDQUFDO1FBQ2xDbEMsVUFBVSxDQUFBLENBQUU7TUFDZCxDQUFDO01BQUExRSxRQUFBLEVBRUFzRjtJQUFRLENBQUEsQ0FBQSxFQVRMLE1BQU0sQ0FVSCxHQUVULElBQUk7SUFFUixJQUFNdUIsVUFBVSxHQUNkaEksSUFBQSxDQUFDVyxNQUFNLEVBQUF2QixNQUFBLENBQUFxRSxNQUFBLENBQUEsQ0FBQSxDQUFBLEVBRURpRSxpQkFBaUIsRUFBQTtNQUNyQkUsSUFBSSxFQUFFLENBQUFMLEVBQUEsR0FBQUcsaUJBQWlCLEtBQUEsSUFBQSxJQUFqQkEsaUJBQWlCLEtBQUEsS0FBQSxDQUFBLEdBQUEsS0FBQSxDQUFBLEdBQWpCQSxpQkFBaUIsQ0FBRUUsSUFBSSxNQUFBLElBQUEsSUFBQUwsRUFBQSxLQUFBLEtBQUEsQ0FBQSxHQUFBQSxFQUFBLEdBQUksUUFBUTtNQUN6Q08sT0FBTyxFQUFFLFNBQVRBLE9BQU9BLENBQUdDLEtBQUssRUFBSTtRRDFDWCxJQUFJcEcsRUFBRTtRQzJDWixDQUFBQSxFQUFBLEdBQUErRixpQkFBaUIsS0FBQSxJQUFBLElBQWpCQSxpQkFBaUIsS0FBQSxLQUFBLENBQUEsR0FBQSxLQUFBLENBQUEsR0FBakJBLGlCQUFpQixDQUFFSSxPQUFPLE1BQUEsSUFBQSxJQUFBbkcsRUFBQSxLQUFBLEtBQUEsQ0FBQSxHQUFBLEtBQUEsQ0FBQSxHQUFBQSxFQUFBLENBQUFwQyxJQUFBLENBQUFtSSxpQkFBQSxFQUFHSyxLQUFLLENBQUM7UUFDbkNoQyxpQkFBaUIsQ0FBQSxDQUFFO01BQ3JCLENBQUM7TUFBQTVFLFFBQUEsRUFFQTJGLFVBQVUsR0FBR0YsVUFBVSxHQUFHRDtJQUFRLENBQUEsQ0FBQSxFQVIvQixRQUFRLENBVWY7SUFFRCxJQUFNc0IsVUFBVSxHQUFHLENBQUNOLFVBQVUsRUFBRUssVUFBVSxDQUFDLENBQUMvRSxNQUFNLENBQUNpRixPQUFPLENBQW1CO0lBQzdFLElBQUksQ0FBQ3RDLGVBQWUsQ0FBQ3VDLE1BQU0sRUFBRSxPQUFPRixVQUFVO0lBRTlDLE9BQU9yQyxlQUFlLENBQUN1QyxNQUFNLENBQUM7TUFDNUJDLElBQUksRUFBRSxDQUFBWixFQUFBLEdBQUFqQyxtQkFBbUIsS0FBQSxJQUFBLElBQW5CQSxtQkFBbUIsS0FBQSxLQUFBLENBQUEsR0FBQSxLQUFBLENBQUEsR0FBbkJBLG1CQUFtQixDQUFFNkMsSUFBSSxNQUFBLElBQUEsSUFBQVosRUFBQSxLQUFBLEtBQUEsQ0FBQSxHQUFBQSxFQUFBLEdBQUl4QyxlQUFlLEtBQUEsSUFBQSxJQUFmQSxlQUFlLEtBQUEsS0FBQSxDQUFBLEdBQUEsS0FBQSxDQUFBLEdBQWZBLGVBQWUsQ0FBRW9ELElBQUk7TUFDeER2QixNQUFNLEVBQUVaLGlCQUFpQjtNQUN6Qm9DLEtBQUssRUFBRXhDO0lEOUNMLENDK0NILEVBQUVvQyxVQUFVLENBQUM7RUFDaEIsQ0FBQyxFQUFFLENBQ0QxQyxtQkFBbUIsS0FBQSxJQUFBLElBQW5CQSxtQkFBbUIsS0FBQSxLQUFBLENBQUEsR0FBQSxLQUFBLENBQUEsR0FBbkJBLG1CQUFtQixDQUFFNkMsSUFBSSxFQUN6QnZDLFVBQVUsRUFDVkUsaUJBQWlCLEVBQ2pCZSxVQUFVLEVBQ1Y1RCxhQUFhLEVBQ2J5RCxRQUFRLEVBQ1IzQixlQUFlLEtBQUEsSUFBQSxJQUFmQSxlQUFlLEtBQUEsS0FBQSxDQUFBLEdBQUEsS0FBQSxDQUFBLEdBQWZBLGVBQWUsQ0FBRW9ELElBQUksRUFDckIzQixRQUFRLEVBQ1JHLFVBQVUsRUFDVmhCLGVBQWUsRUFDZkssaUJBQWlCLENBQ2xCLENBQUM7RUFFRixJQUFJLENBQUM3QyxVQUFVLEVBQUUsT0FBTyxJQUFJO0VBRTVCLE9BQ0VwRCxJQUFBLENBQUEsS0FBQSxFQUFBWixNQUFBLENBQUFxRSxNQUFBLENBQUEsQ0FBQSxDQUFBLEVBQ013RCxhQUFhLEVBQUE7SUFDakJELFNBQVMsRUFBRXRHLE9BQU8sSUFBQTRILE1BQUEsQ0FBSXhILFVBQVUsa0JBQWVzRyxjQUFjLENBQUM7SUFBQWpHLFFBQUEsRUFFOURqQixLQUFBLENBQUEsS0FBQSxFQUFBZCxNQUFBLENBQUFxRSxNQUFBLENBQUEsQ0FBQSxDQUFBLEVBQ00wRCxZQUFZLEVBQUE7TUFDaEJvQixHQUFHLEVBQUV6RixZQUFZO01BQ2pCa0UsU0FBUyxFQUFFdEcsT0FBTyxJQUFBNEgsTUFBQSxDQUFJeEgsVUFBVSx1QkFBb0J1RyxhQUFhLENBQUM7TUFBQWxHLFFBQUEsRUFBQSxDQUVqRStELEtBQUssSUFDSmxGLElBQUEsQ0FBQSxLQUFBLEVBQUE7UUFBS2dILFNBQVMsRUFBRXRHLE9BQU8sQ0FBQ00sTUFBTSxDQUFDLDJCQUEyQixDQUFDLEtBQUFzSCxNQUFBLENBQUt4SCxVQUFVLHNCQUFtQixDQUFDO1FBQUFLLFFBQUEsRUFDM0YrRDtNQUFLLENBQUEsQ0FFVCxFQUNBQyxXQUFXLElBQ1ZuRixJQUFBLENBQUEsS0FBQSxFQUFBO1FBQUtnSCxTQUFTLEVBQUV0RyxPQUFPLENBQUNNLE1BQU0sQ0FBQyxpQ0FBaUMsQ0FBQyxLQUFBc0gsTUFBQSxDQUFLeEgsVUFBVSw0QkFBeUIsQ0FBQztRQUFBSyxRQUFBLEVBQ3ZHZ0U7TUFBVyxDQUFBLENBRWYsRUFDRGpGLEtBQUEsQ0FBQ1csT0FBTyxFQUFBekIsTUFBQSxDQUFBcUUsTUFBQSxDQUFBLENBQUEsQ0FBQSxFQUVGdUIsZUFBZSxFQUNmTyxtQkFBbUIsRUFBQTtRQUN2QkksYUFBYSxFQUFFRCxtQkFBbUI7UUFDbEN6RCxTQUFTLEVBQUUsS0FBSztRQUNoQkgsUUFBUSxFQUFFK0IsZ0JBQWdCO1FBQUExQyxRQUFBLEVBQUEsQ0FFekJrRSxZQUFZLEVBQ1ppQyxlQUFlLElBQ2R0SCxJQUFBLENBQUEsS0FBQSxFQUFBO1VBQUtnSCxTQUFTLEVBQUV0RyxPQUFPLENBQUNNLE1BQU0sQ0FBQyw2QkFBNkIsQ0FBQyxLQUFBc0gsTUFBQSxDQUFLeEgsVUFBVSx3QkFBcUIsQ0FBQztVQUFBSyxRQUFBLEVBQy9GbUc7UUFBZSxDQUFBLENBRW5CO01BQUEsQ0FBQSxDQUFBLFVBQUFnQixNQUFBLENBWllwRixhQUFhLENBQUUsQ0FhcEI7SUFBQSxDQUFBLENBQUE7RUFDTixDQUFBLENBQUEsQ0FDRjtBQUVWLENBQUM7QUFFRHhCLGNBQWMsQ0FBQzhHLFdBQVcsR0FBRyxXQUFXO0FBRXhDLElBQU1DLGFBQWEsZ0JBQUdwSSxJQUFJLENBQUNxQixjQUFjLENBQUM7QUFFMUM7QUFDQTtBQUNBLE9BQU8sSUFBTWdILFNBQVMsR0FBR0QsYUFBOEM7QUFDdkVDLFNBQVMsQ0FBQ3pILFFBQVEsR0FBR0EsUUFBUTtBQUU3QixlQUFleUgsU0FBUyIsImZpbGUiOiJjb21wb25lbnRzL1Byb0Zvcm0vbGF5b3V0cy9TdGVwc0Zvcm0uanMiLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgX19hd2FpdGVyID0gKHRoaXMgJiYgdGhpcy5fX2F3YWl0ZXIpIHx8IGZ1bmN0aW9uICh0aGlzQXJnLCBfYXJndW1lbnRzLCBQLCBnZW5lcmF0b3IpIHtcbiAgICBmdW5jdGlvbiBhZG9wdCh2YWx1ZSkgeyByZXR1cm4gdmFsdWUgaW5zdGFuY2VvZiBQID8gdmFsdWUgOiBuZXcgUChmdW5jdGlvbiAocmVzb2x2ZSkgeyByZXNvbHZlKHZhbHVlKTsgfSk7IH1cbiAgICByZXR1cm4gbmV3IChQIHx8IChQID0gUHJvbWlzZSkpKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHtcbiAgICAgICAgZnVuY3Rpb24gZnVsZmlsbGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yLm5leHQodmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxuICAgICAgICBmdW5jdGlvbiByZWplY3RlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvcltcInRocm93XCJdKHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cbiAgICAgICAgZnVuY3Rpb24gc3RlcChyZXN1bHQpIHsgcmVzdWx0LmRvbmUgPyByZXNvbHZlKHJlc3VsdC52YWx1ZSkgOiBhZG9wdChyZXN1bHQudmFsdWUpLnRoZW4oZnVsZmlsbGVkLCByZWplY3RlZCk7IH1cbiAgICAgICAgc3RlcCgoZ2VuZXJhdG9yID0gZ2VuZXJhdG9yLmFwcGx5KHRoaXNBcmcsIF9hcmd1bWVudHMgfHwgW10pKS5uZXh0KCkpO1xuICAgIH0pO1xufTtcbnZhciBfX3Jlc3QgPSAodGhpcyAmJiB0aGlzLl9fcmVzdCkgfHwgZnVuY3Rpb24gKHMsIGUpIHtcbiAgICB2YXIgdCA9IHt9O1xuICAgIGZvciAodmFyIHAgaW4gcykgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzLCBwKSAmJiBlLmluZGV4T2YocCkgPCAwKVxuICAgICAgICB0W3BdID0gc1twXTtcbiAgICBpZiAocyAhPSBudWxsICYmIHR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzID09PSBcImZ1bmN0aW9uXCIpXG4gICAgICAgIGZvciAodmFyIGkgPSAwLCBwID0gT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhzKTsgaSA8IHAubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGlmIChlLmluZGV4T2YocFtpXSkgPCAwICYmIE9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChzLCBwW2ldKSlcbiAgICAgICAgICAgICAgICB0W3BbaV1dID0gc1twW2ldXTtcbiAgICAgICAgfVxuICAgIHJldHVybiB0O1xufTtcbmltcG9ydCB7IEZyYWdtZW50IGFzIF9GcmFnbWVudCwganN4IGFzIF9qc3gsIGpzeHMgYXMgX2pzeHMgfSBmcm9tIFwicmVhY3QvanN4LXJ1bnRpbWVcIjtcbmltcG9ydCB7IENoaWxkcmVuLCBpc1ZhbGlkRWxlbWVudCwgbWVtbywgdXNlQ2FsbGJhY2ssIHVzZU1lbW8sIHVzZVJlZiwgdXNlU3RhdGUsIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgam9pbkNscyB9IGZyb20gJy4uLy4uLy4uL3V0aWxzL2NsYXNzbmFtZXMnO1xuaW1wb3J0IHsgQnV0dG9uIH0gZnJvbSAnLi4vLi4vQnV0dG9uJztcbmltcG9ydCB1c2VMYXRlc3QgZnJvbSAnLi4vLi4vdXNlTGF0ZXN0JztcbmltcG9ydCBQcm9Gb3JtIGZyb20gJy4uL1Byb0Zvcm0nO1xuaW1wb3J0IHsgQ1NTX1BSRUZJWCwgREVGQVVMVF9URVhUIH0gZnJvbSAnLi4vY29uc3RhbnRzJztcbmltcG9ydCBzdHlsZXMgZnJvbSAnLi4vc3R5bGUvUHJvRm9ybS5tb2R1bGUuc2Nzcyc7XG4vKipcbiAqIFdyYXBwZXIgY29tcG9uZW50IHJlcHJlc2VudGluZyBhbiBpbmRpdmlkdWFsIHN0ZXAgaW5zaWRlIHtAbGluayBTdGVwc0Zvcm19LlxuICogRG9lcyBub3QgcmVuZGVyIGl0cyBvd24gZm9ybSDigJQgaXRzIGNoaWxkcmVuIGFyZSByZW5kZXJlZCBieSB0aGUgcGFyZW50IGBTdGVwc0Zvcm1gLlxuICovXG5leHBvcnQgY29uc3QgU3RlcEZvcm0gPSAocHJvcHMpID0+IHtcbiAgICByZXR1cm4gX2pzeChfRnJhZ21lbnQsIHsgY2hpbGRyZW46IHByb3BzLmNoaWxkcmVuIH0pO1xufTtcbi8qKlxuICogUGlja3Mgb25seSBzYWZlIEhUTUwgZGl2IGF0dHJpYnV0ZXMgKGBjbGFzc05hbWVgLCBgc3R5bGVgLCBgaWRgLCBgZGF0YS0qYCwgYGFyaWEtKmApXG4gKiBmcm9tIGEgcHJvcHMgb2JqZWN0LCBmaWx0ZXJpbmcgb3V0IGNvbXBvbmVudC1zcGVjaWZpYyBwcm9wcy5cbiAqL1xuY29uc3QgcGlja0h0bWxEaXZQcm9wcyA9IChwcm9wcykgPT4ge1xuICAgIGNvbnN0IHJlc3VsdCA9IHt9O1xuICAgIGZvciAoY29uc3Qga2V5IG9mIE9iamVjdC5rZXlzKHByb3BzKSkge1xuICAgICAgICBpZiAoa2V5ID09PSAnY2xhc3NOYW1lJyB8fCBrZXkgPT09ICdzdHlsZScgfHwga2V5ID09PSAnaWQnIHx8IGtleS5zdGFydHNXaXRoKCdkYXRhLScpIHx8IGtleS5zdGFydHNXaXRoKCdhcmlhLScpKSB7XG4gICAgICAgICAgICByZXN1bHRba2V5XSA9IHByb3BzW2tleV07XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdDtcbn07XG4vKipcbiAqIE11bHRpLXN0ZXAgd2l6YXJkIGZvcm0gdGhhdCByZW5kZXJzIG9uZSBzdGVwIGF0IGEgdGltZSwgbWVyZ2luZyB2YWx1ZXNcbiAqIGZyb20gYWxsIHN0ZXBzIGFuZCBjYWxsaW5nIGBvbkZpbmlzaGAgd2l0aCB0aGUgY29tYmluZWQgcmVzdWx0IG9uIHRoZSBmaW5hbCBzdGVwLlxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0c3hcbiAqIDxTdGVwc0Zvcm0gb25GaW5pc2g9e2hhbmRsZVN1Ym1pdH0+XG4gKiAgIDxTdGVwc0Zvcm0uU3RlcEZvcm0gdGl0bGU9XCJCYXNpYyBJbmZvXCI+XG4gKiAgICAgPFByb0Zvcm1UZXh0IG5hbWU9XCJuYW1lXCIgbGFiZWw9XCJOYW1lXCIgLz5cbiAqICAgPC9TdGVwc0Zvcm0uU3RlcEZvcm0+XG4gKiAgIDxTdGVwc0Zvcm0uU3RlcEZvcm0gdGl0bGU9XCJEZXRhaWxzXCI+XG4gKiAgICAgPFByb0Zvcm1UZXh0QXJlYSBuYW1lPVwiYmlvXCIgbGFiZWw9XCJCaW9cIiAvPlxuICogICA8L1N0ZXBzRm9ybS5TdGVwRm9ybT5cbiAqIDwvU3RlcHNGb3JtPlxuICogYGBgXG4gKi9cbmNvbnN0IFN0ZXBzRm9ybUlubmVyID0gKHByb3BzKSA9PiB7XG4gICAgdmFyIF9hO1xuICAgIGNvbnN0IHsgY3VycmVudCwgb25DdXJyZW50Q2hhbmdlLCBvbkZpbmlzaCwgc3RlcHNQcm9wcywgZm9ybVByb3BzLCBzdWJtaXR0ZXIsIGNoaWxkcmVuLCB9ID0gcHJvcHM7XG4gICAgY29uc3QgW2lubmVyQ3VycmVudCwgc2V0SW5uZXJDdXJyZW50XSA9IHVzZVN0YXRlKDApO1xuICAgIGNvbnN0IFthbGxWYWx1ZXMsIHNldEFsbFZhbHVlc10gPSB1c2VTdGF0ZSh7fSk7XG4gICAgY29uc3QgYWxsVmFsdWVzUmVmID0gdXNlUmVmKHt9KTtcbiAgICAvKiogVHJhY2tzIHdoaWNoIHN0ZXAgaW5kZXggZWFjaCBrZXkgd2FzIGxhc3Qgc3VibWl0dGVkIGZyb20uICovXG4gICAgY29uc3Qga2V5U3RlcE1hcFJlZiA9IHVzZVJlZihuZXcgTWFwKCkpO1xuICAgIGNvbnN0IHN0ZXBQYW5lbFJlZiA9IHVzZVJlZihudWxsKTtcbiAgICBjb25zdCBzdGVwcyA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgICByZXR1cm4gQ2hpbGRyZW4udG9BcnJheShjaGlsZHJlbikuZmlsdGVyKGlzVmFsaWRFbGVtZW50KTtcbiAgICB9LCBbY2hpbGRyZW5dKTtcbiAgICBjb25zdCBtZXJnZWRDdXJyZW50ID0gdHlwZW9mIGN1cnJlbnQgPT09ICdudW1iZXInID8gY3VycmVudCA6IGlubmVyQ3VycmVudDtcbiAgICBjb25zdCBtZXJnZWRDdXJyZW50UmVmID0gdXNlTGF0ZXN0KG1lcmdlZEN1cnJlbnQpO1xuICAgIGNvbnN0IGFjdGl2ZVN0ZXAgPSBzdGVwc1ttZXJnZWRDdXJyZW50XTtcbiAgICBjb25zdCBzZXRDdXJyZW50ID0gdXNlQ2FsbGJhY2soKG5leHRDdXJyZW50KSA9PiB7XG4gICAgICAgIC8vIFdoZW4gbmF2aWdhdGluZyBiYWNrd2FyZCwgY2xlYXIgYWNjdW11bGF0ZWQgdmFsdWVzIGZyb20gc3RlcHMgYWZ0ZXJcbiAgICAgICAgLy8gdGhlIHRhcmdldCBzbyBzdGFsZSBkYXRhIGRvZXNuJ3QgcGVyc2lzdCB3aGVuIHRoZSB1c2VyIGNoYW5nZXMgYW5zd2Vycy5cbiAgICAgICAgaWYgKG5leHRDdXJyZW50IDwgbWVyZ2VkQ3VycmVudFJlZi5jdXJyZW50KSB7XG4gICAgICAgICAgICBzZXRBbGxWYWx1ZXMocHJldiA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgY2xlYW5lZCA9IE9iamVjdC5hc3NpZ24oe30sIHByZXYpO1xuICAgICAgICAgICAgICAgIGtleVN0ZXBNYXBSZWYuY3VycmVudC5mb3JFYWNoKChzdGVwSW5kZXgsIGtleSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAoc3RlcEluZGV4ID4gbmV4dEN1cnJlbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRlbGV0ZSBjbGVhbmVkW2tleV07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICBhbGxWYWx1ZXNSZWYuY3VycmVudCA9IGNsZWFuZWQ7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGNsZWFuZWQ7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoY3VycmVudCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBzZXRJbm5lckN1cnJlbnQobmV4dEN1cnJlbnQpO1xuICAgICAgICB9XG4gICAgICAgIG9uQ3VycmVudENoYW5nZSA9PT0gbnVsbCB8fCBvbkN1cnJlbnRDaGFuZ2UgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9uQ3VycmVudENoYW5nZShuZXh0Q3VycmVudCk7XG4gICAgfSwgW2N1cnJlbnQsIG9uQ3VycmVudENoYW5nZV0pO1xuICAgIGNvbnN0IGhhbmRsZVN0ZXBGaW5pc2ggPSB1c2VDYWxsYmFjaygodmFsdWVzKSA9PiBfX2F3YWl0ZXIodm9pZCAwLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgdmFyIF9hLCBfYjtcbiAgICAgICAgY29uc3QgY3VycmVudFN0ZXAgPSBzdGVwc1ttZXJnZWRDdXJyZW50XTtcbiAgICAgICAgY29uc3Qgc3RlcFJlc3VsdCA9IHlpZWxkICgoX2IgPSAoX2EgPSBjdXJyZW50U3RlcCA9PT0gbnVsbCB8fCBjdXJyZW50U3RlcCA9PT0gdm9pZCAwID8gdm9pZCAwIDogY3VycmVudFN0ZXAucHJvcHMpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5vbkZpbmlzaCkgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iLmNhbGwoX2EsIHZhbHVlcykpO1xuICAgICAgICBpZiAoc3RlcFJlc3VsdCA9PT0gZmFsc2UpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIC8vIFRyYWNrIHdoaWNoIHN0ZXAgZWFjaCBrZXkgd2FzIHN1Ym1pdHRlZCBmcm9tIHNvIGJhY2t3YXJkIG5hdmlnYXRpb25cbiAgICAgICAgLy8gY2FuIHNlbGVjdGl2ZWx5IGNsZWFyIGRvd25zdHJlYW0gc3RlcCBkYXRhLlxuICAgICAgICBmb3IgKGNvbnN0IGtleSBvZiBPYmplY3Qua2V5cyh2YWx1ZXMpKSB7XG4gICAgICAgICAgICBrZXlTdGVwTWFwUmVmLmN1cnJlbnQuc2V0KGtleSwgbWVyZ2VkQ3VycmVudCk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgbWVyZ2VkVmFsdWVzID0gT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCBhbGxWYWx1ZXNSZWYuY3VycmVudCksIHZhbHVlcyk7XG4gICAgICAgIGFsbFZhbHVlc1JlZi5jdXJyZW50ID0gbWVyZ2VkVmFsdWVzO1xuICAgICAgICBzZXRBbGxWYWx1ZXMobWVyZ2VkVmFsdWVzKTtcbiAgICAgICAgY29uc3QgaXNMYXN0ID0gbWVyZ2VkQ3VycmVudCA+PSBzdGVwcy5sZW5ndGggLSAxO1xuICAgICAgICBpZiAoaXNMYXN0KSB7XG4gICAgICAgICAgICB5aWVsZCAob25GaW5pc2ggPT09IG51bGwgfHwgb25GaW5pc2ggPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9uRmluaXNoKG1lcmdlZFZhbHVlcykpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHNldEN1cnJlbnQobWVyZ2VkQ3VycmVudCArIDEpO1xuICAgIH0pLCBbbWVyZ2VkQ3VycmVudCwgb25GaW5pc2gsIHNldEN1cnJlbnQsIHN0ZXBzXSk7XG4gICAgY29uc3QgcGFyZW50Rm9ybVByb3BzID0gZm9ybVByb3BzO1xuICAgIGNvbnN0IF9iID0gKChfYSA9IGFjdGl2ZVN0ZXAgPT09IG51bGwgfHwgYWN0aXZlU3RlcCA9PT0gdm9pZCAwID8gdm9pZCAwIDogYWN0aXZlU3RlcC5wcm9wcykgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDoge30pLCB7IHRpdGxlLCBkZXNjcmlwdGlvbiwgc3RlcFByb3BzLCBjaGlsZHJlbjogc3RlcENoaWxkcmVuIH0gPSBfYiwgc3RlcEZvcm1Qcm9wcyA9IF9fcmVzdChfYiwgW1widGl0bGVcIiwgXCJkZXNjcmlwdGlvblwiLCBcInN0ZXBQcm9wc1wiLCBcImNoaWxkcmVuXCJdKTtcbiAgICBjb25zdCBhY3RpdmVTdGVwRm9ybVByb3BzID0gYWN0aXZlU3RlcFxuICAgICAgICA/IHN0ZXBGb3JtUHJvcHNcbiAgICAgICAgOiB1bmRlZmluZWQ7XG4gICAgY29uc3Qgc3RlcHNIdG1sUHJvcHMgPSBwaWNrSHRtbERpdlByb3BzKChzdGVwc1Byb3BzIHx8IHt9KSk7XG4gICAgY29uc3Qgc3RlcEh0bWxQcm9wcyA9IHBpY2tIdG1sRGl2UHJvcHMoKHN0ZXBQcm9wcyB8fCB7fSkpO1xuICAgIGNvbnN0IG1lcmdlZERlZmF1bHRWYWx1ZXMgPSB1c2VNZW1vKCgpID0+IChPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgcGFyZW50Rm9ybVByb3BzID09PSBudWxsIHx8IHBhcmVudEZvcm1Qcm9wcyA9PT0gdm9pZCAwID8gdm9pZCAwIDogcGFyZW50Rm9ybVByb3BzLmRlZmF1bHRWYWx1ZXMpLCBhY3RpdmVTdGVwRm9ybVByb3BzID09PSBudWxsIHx8IGFjdGl2ZVN0ZXBGb3JtUHJvcHMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGFjdGl2ZVN0ZXBGb3JtUHJvcHMuZGVmYXVsdFZhbHVlcyksIGFsbFZhbHVlcykpLCBbYWN0aXZlU3RlcEZvcm1Qcm9wcyA9PT0gbnVsbCB8fCBhY3RpdmVTdGVwRm9ybVByb3BzID09PSB2b2lkIDAgPyB2b2lkIDAgOiBhY3RpdmVTdGVwRm9ybVByb3BzLmRlZmF1bHRWYWx1ZXMsIGFsbFZhbHVlcywgcGFyZW50Rm9ybVByb3BzID09PSBudWxsIHx8IHBhcmVudEZvcm1Qcm9wcyA9PT0gdm9pZCAwID8gdm9pZCAwIDogcGFyZW50Rm9ybVByb3BzLmRlZmF1bHRWYWx1ZXNdKTtcbiAgICBjb25zdCBzdWJtaXR0ZXJDb25maWcgPSBzdWJtaXR0ZXIgPT09IGZhbHNlID8gZmFsc2UgOiAoc3VibWl0dGVyIHx8IHt9KTtcbiAgICBjb25zdCBoYW5kbGVQcmV2ID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgICAgICB2YXIgX2E7XG4gICAgICAgIGlmIChzdWJtaXR0ZXJDb25maWcgIT09IGZhbHNlKSB7XG4gICAgICAgICAgICAoX2EgPSBzdWJtaXR0ZXJDb25maWcub25SZXNldCkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmNhbGwoc3VibWl0dGVyQ29uZmlnKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAobWVyZ2VkQ3VycmVudCA+IDApIHtcbiAgICAgICAgICAgIHNldEN1cnJlbnQobWVyZ2VkQ3VycmVudCAtIDEpO1xuICAgICAgICB9XG4gICAgfSwgW21lcmdlZEN1cnJlbnQsIHNldEN1cnJlbnQsIHN1Ym1pdHRlckNvbmZpZ10pO1xuICAgIGNvbnN0IGhhbmRsZVN1Ym1pdENsaWNrID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgICAgICB2YXIgX2E7XG4gICAgICAgIGlmIChzdWJtaXR0ZXJDb25maWcgIT09IGZhbHNlKSB7XG4gICAgICAgICAgICAoX2EgPSBzdWJtaXR0ZXJDb25maWcub25TdWJtaXQpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5jYWxsKHN1Ym1pdHRlckNvbmZpZyk7XG4gICAgICAgIH1cbiAgICB9LCBbc3VibWl0dGVyQ29uZmlnXSk7XG4gICAgY29uc3QgdHJpZ2dlclN0ZXBTdWJtaXQgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgICAgIHZhciBfYSwgX2I7XG4gICAgICAgIGlmIChzdWJtaXR0ZXJDb25maWcgIT09IGZhbHNlKSB7XG4gICAgICAgICAgICAoX2EgPSBzdWJtaXR0ZXJDb25maWcub25TdWJtaXQpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5jYWxsKHN1Ym1pdHRlckNvbmZpZyk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgZm9ybU5vZGUgPSAoX2IgPSBzdGVwUGFuZWxSZWYuY3VycmVudCkgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iLnF1ZXJ5U2VsZWN0b3IoJ2Zvcm0nKTtcbiAgICAgICAgaWYgKCFmb3JtTm9kZSlcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgaWYgKHR5cGVvZiBmb3JtTm9kZS5yZXF1ZXN0U3VibWl0ID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICBmb3JtTm9kZS5yZXF1ZXN0U3VibWl0KCk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgZm9ybU5vZGUuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoJ3N1Ym1pdCcsIHsgYnViYmxlczogdHJ1ZSwgY2FuY2VsYWJsZTogdHJ1ZSB9KSk7XG4gICAgfSwgW3N1Ym1pdHRlckNvbmZpZ10pO1xuICAgIGNvbnN0IHByZXZUZXh0ID0gc3VibWl0dGVyQ29uZmlnICE9PSBmYWxzZSAmJiBzdWJtaXR0ZXJDb25maWcucHJldlRleHRcbiAgICAgICAgPyBzdWJtaXR0ZXJDb25maWcucHJldlRleHRcbiAgICAgICAgOiBERUZBVUxUX1RFWFQucHJldmlvdXM7XG4gICAgY29uc3QgbmV4dFRleHQgPSBzdWJtaXR0ZXJDb25maWcgIT09IGZhbHNlICYmIHN1Ym1pdHRlckNvbmZpZy5uZXh0VGV4dFxuICAgICAgICA/IHN1Ym1pdHRlckNvbmZpZy5uZXh0VGV4dFxuICAgICAgICA6IERFRkFVTFRfVEVYVC5uZXh0O1xuICAgIGNvbnN0IHN1Ym1pdFRleHQgPSBzdWJtaXR0ZXJDb25maWcgIT09IGZhbHNlICYmIHN1Ym1pdHRlckNvbmZpZy5zdWJtaXRUZXh0XG4gICAgICAgID8gc3VibWl0dGVyQ29uZmlnLnN1Ym1pdFRleHRcbiAgICAgICAgOiBERUZBVUxUX1RFWFQuc3VibWl0O1xuICAgIGNvbnN0IGlzTGFzdFN0ZXAgPSBtZXJnZWRDdXJyZW50ID49IHN0ZXBzLmxlbmd0aCAtIDE7XG4gICAgY29uc3QgeyBjbGFzc05hbWU6IHN0ZXBzQ2xhc3NOYW1lUmF3IH0gPSBzdGVwc0h0bWxQcm9wcywgc3RlcHNSZXN0SHRtbCA9IF9fcmVzdChzdGVwc0h0bWxQcm9wcywgW1wiY2xhc3NOYW1lXCJdKTtcbiAgICBjb25zdCB7IGNsYXNzTmFtZTogc3RlcENsYXNzTmFtZVJhdyB9ID0gc3RlcEh0bWxQcm9wcywgc3RlcFJlc3RIdG1sID0gX19yZXN0KHN0ZXBIdG1sUHJvcHMsIFtcImNsYXNzTmFtZVwiXSk7XG4gICAgY29uc3Qgc3RlcHNDbGFzc05hbWUgPSB0eXBlb2Ygc3RlcHNDbGFzc05hbWVSYXcgPT09ICdzdHJpbmcnID8gc3RlcHNDbGFzc05hbWVSYXcgOiB1bmRlZmluZWQ7XG4gICAgY29uc3Qgc3RlcENsYXNzTmFtZSA9IHR5cGVvZiBzdGVwQ2xhc3NOYW1lUmF3ID09PSAnc3RyaW5nJyA/IHN0ZXBDbGFzc05hbWVSYXcgOiB1bmRlZmluZWQ7XG4gICAgY29uc3QgcmVuZGVyZWRBY3Rpb25zID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICAgIHZhciBfYSwgX2IsIF9jLCBfZDtcbiAgICAgICAgaWYgKHN1Ym1pdHRlckNvbmZpZyA9PT0gZmFsc2UpXG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgY29uc3QgcmVzZXRCdXR0b25Qcm9wcyA9IHN1Ym1pdHRlckNvbmZpZy5yZXNldEJ1dHRvblByb3BzO1xuICAgICAgICBjb25zdCBzdWJtaXRCdXR0b25Qcm9wcyA9IHN1Ym1pdHRlckNvbmZpZy5zdWJtaXRCdXR0b25Qcm9wcztcbiAgICAgICAgY29uc3QgcHJldkJ1dHRvbiA9IG1lcmdlZEN1cnJlbnQgPiAwXG4gICAgICAgICAgICA/IChfanN4KEJ1dHRvbiwgT2JqZWN0LmFzc2lnbih7fSwgcmVzZXRCdXR0b25Qcm9wcywgeyB0eXBlOiAoX2EgPSByZXNldEJ1dHRvblByb3BzID09PSBudWxsIHx8IHJlc2V0QnV0dG9uUHJvcHMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHJlc2V0QnV0dG9uUHJvcHMudHlwZSkgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogJ2J1dHRvbicsIHNldmVyaXR5OiAoX2IgPSByZXNldEJ1dHRvblByb3BzID09PSBudWxsIHx8IHJlc2V0QnV0dG9uUHJvcHMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHJlc2V0QnV0dG9uUHJvcHMuc2V2ZXJpdHkpICE9PSBudWxsICYmIF9iICE9PSB2b2lkIDAgPyBfYiA6ICdzZWNvbmRhcnknLCBvbkNsaWNrOiAoZXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdmFyIF9hO1xuICAgICAgICAgICAgICAgICAgICAoX2EgPSByZXNldEJ1dHRvblByb3BzID09PSBudWxsIHx8IHJlc2V0QnV0dG9uUHJvcHMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHJlc2V0QnV0dG9uUHJvcHMub25DbGljaykgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmNhbGwocmVzZXRCdXR0b25Qcm9wcywgZXZlbnQpO1xuICAgICAgICAgICAgICAgICAgICBoYW5kbGVQcmV2KCk7XG4gICAgICAgICAgICAgICAgfSwgY2hpbGRyZW46IHByZXZUZXh0IH0pLCAncHJldicpKVxuICAgICAgICAgICAgOiBudWxsO1xuICAgICAgICBjb25zdCBuZXh0QnV0dG9uID0gKF9qc3goQnV0dG9uLCBPYmplY3QuYXNzaWduKHt9LCBzdWJtaXRCdXR0b25Qcm9wcywgeyB0eXBlOiAoX2MgPSBzdWJtaXRCdXR0b25Qcm9wcyA9PT0gbnVsbCB8fCBzdWJtaXRCdXR0b25Qcm9wcyA9PT0gdm9pZCAwID8gdm9pZCAwIDogc3VibWl0QnV0dG9uUHJvcHMudHlwZSkgIT09IG51bGwgJiYgX2MgIT09IHZvaWQgMCA/IF9jIDogJ3N1Ym1pdCcsIG9uQ2xpY2s6IChldmVudCkgPT4ge1xuICAgICAgICAgICAgICAgIHZhciBfYTtcbiAgICAgICAgICAgICAgICAoX2EgPSBzdWJtaXRCdXR0b25Qcm9wcyA9PT0gbnVsbCB8fCBzdWJtaXRCdXR0b25Qcm9wcyA9PT0gdm9pZCAwID8gdm9pZCAwIDogc3VibWl0QnV0dG9uUHJvcHMub25DbGljaykgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmNhbGwoc3VibWl0QnV0dG9uUHJvcHMsIGV2ZW50KTtcbiAgICAgICAgICAgICAgICBoYW5kbGVTdWJtaXRDbGljaygpO1xuICAgICAgICAgICAgfSwgY2hpbGRyZW46IGlzTGFzdFN0ZXAgPyBzdWJtaXRUZXh0IDogbmV4dFRleHQgfSksICdzdWJtaXQnKSk7XG4gICAgICAgIGNvbnN0IGRlZmF1bHREb20gPSBbcHJldkJ1dHRvbiwgbmV4dEJ1dHRvbl0uZmlsdGVyKEJvb2xlYW4pO1xuICAgICAgICBpZiAoIXN1Ym1pdHRlckNvbmZpZy5yZW5kZXIpXG4gICAgICAgICAgICByZXR1cm4gZGVmYXVsdERvbTtcbiAgICAgICAgcmV0dXJuIHN1Ym1pdHRlckNvbmZpZy5yZW5kZXIoe1xuICAgICAgICAgICAgZm9ybTogKF9kID0gYWN0aXZlU3RlcEZvcm1Qcm9wcyA9PT0gbnVsbCB8fCBhY3RpdmVTdGVwRm9ybVByb3BzID09PSB2b2lkIDAgPyB2b2lkIDAgOiBhY3RpdmVTdGVwRm9ybVByb3BzLmZvcm0pICE9PSBudWxsICYmIF9kICE9PSB2b2lkIDAgPyBfZCA6IHBhcmVudEZvcm1Qcm9wcyA9PT0gbnVsbCB8fCBwYXJlbnRGb3JtUHJvcHMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHBhcmVudEZvcm1Qcm9wcy5mb3JtLFxuICAgICAgICAgICAgc3VibWl0OiB0cmlnZ2VyU3RlcFN1Ym1pdCxcbiAgICAgICAgICAgIHJlc2V0OiBoYW5kbGVQcmV2LFxuICAgICAgICB9LCBkZWZhdWx0RG9tKTtcbiAgICB9LCBbXG4gICAgICAgIGFjdGl2ZVN0ZXBGb3JtUHJvcHMgPT09IG51bGwgfHwgYWN0aXZlU3RlcEZvcm1Qcm9wcyA9PT0gdm9pZCAwID8gdm9pZCAwIDogYWN0aXZlU3RlcEZvcm1Qcm9wcy5mb3JtLFxuICAgICAgICBoYW5kbGVQcmV2LFxuICAgICAgICBoYW5kbGVTdWJtaXRDbGljayxcbiAgICAgICAgaXNMYXN0U3RlcCxcbiAgICAgICAgbWVyZ2VkQ3VycmVudCxcbiAgICAgICAgbmV4dFRleHQsXG4gICAgICAgIHBhcmVudEZvcm1Qcm9wcyA9PT0gbnVsbCB8fCBwYXJlbnRGb3JtUHJvcHMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHBhcmVudEZvcm1Qcm9wcy5mb3JtLFxuICAgICAgICBwcmV2VGV4dCxcbiAgICAgICAgc3VibWl0VGV4dCxcbiAgICAgICAgc3VibWl0dGVyQ29uZmlnLFxuICAgICAgICB0cmlnZ2VyU3RlcFN1Ym1pdCxcbiAgICBdKTtcbiAgICBpZiAoIWFjdGl2ZVN0ZXApXG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIHJldHVybiAoX2pzeChcImRpdlwiLCBPYmplY3QuYXNzaWduKHt9LCBzdGVwc1Jlc3RIdG1sLCB7IGNsYXNzTmFtZTogam9pbkNscyhgJHtDU1NfUFJFRklYfS1zdGVwcy1mb3JtYCwgc3RlcHNDbGFzc05hbWUpLCBjaGlsZHJlbjogX2pzeHMoXCJkaXZcIiwgT2JqZWN0LmFzc2lnbih7fSwgc3RlcFJlc3RIdG1sLCB7IHJlZjogc3RlcFBhbmVsUmVmLCBjbGFzc05hbWU6IGpvaW5DbHMoYCR7Q1NTX1BSRUZJWH0tc3RlcHMtZm9ybS1zdGVwYCwgc3RlcENsYXNzTmFtZSksIGNoaWxkcmVuOiBbdGl0bGUgJiYgKF9qc3goXCJkaXZcIiwgeyBjbGFzc05hbWU6IGpvaW5DbHMoc3R5bGVzWydwcm9mb3JtX19zdGVwcy1mb3JtLXRpdGxlJ10sIGAke0NTU19QUkVGSVh9LXN0ZXBzLWZvcm0tdGl0bGVgKSwgY2hpbGRyZW46IHRpdGxlIH0pKSwgZGVzY3JpcHRpb24gJiYgKF9qc3goXCJkaXZcIiwgeyBjbGFzc05hbWU6IGpvaW5DbHMoc3R5bGVzWydwcm9mb3JtX19zdGVwcy1mb3JtLWRlc2NyaXB0aW9uJ10sIGAke0NTU19QUkVGSVh9LXN0ZXBzLWZvcm0tZGVzY3JpcHRpb25gKSwgY2hpbGRyZW46IGRlc2NyaXB0aW9uIH0pKSwgX2pzeHMoUHJvRm9ybSwgT2JqZWN0LmFzc2lnbih7fSwgcGFyZW50Rm9ybVByb3BzLCBhY3RpdmVTdGVwRm9ybVByb3BzLCB7IGRlZmF1bHRWYWx1ZXM6IG1lcmdlZERlZmF1bHRWYWx1ZXMsIHN1Ym1pdHRlcjogZmFsc2UsIG9uRmluaXNoOiBoYW5kbGVTdGVwRmluaXNoLCBjaGlsZHJlbjogW3N0ZXBDaGlsZHJlbiwgcmVuZGVyZWRBY3Rpb25zICYmIChfanN4KFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBqb2luQ2xzKHN0eWxlc1sncHJvZm9ybV9fc3RlcHMtZm9ybS1hY3Rpb25zJ10sIGAke0NTU19QUkVGSVh9LXN0ZXBzLWZvcm0tYWN0aW9uc2ApLCBjaGlsZHJlbjogcmVuZGVyZWRBY3Rpb25zIH0pKV0gfSksIGBzdGVwLSR7bWVyZ2VkQ3VycmVudH1gKV0gfSkpIH0pKSk7XG59O1xuU3RlcHNGb3JtSW5uZXIuZGlzcGxheU5hbWUgPSAnU3RlcHNGb3JtJztcbmNvbnN0IFN0ZXBzRm9ybUJhc2UgPSBtZW1vKFN0ZXBzRm9ybUlubmVyKTtcbi8vIFR5cGUgYXNzZXJ0aW9uIHJlcXVpcmVkIGJlY2F1c2UgbWVtbygpIGxvc2VzIHRoZSBzdGF0aWMgU3RlcEZvcm0gcHJvcGVydHkgdHlwZS5cbi8vIFdlIGF0dGFjaCBTdGVwRm9ybSBhcyBhIHN0YXRpYyBwcm9wZXJ0eSBiZWxvdywgbWFraW5nIHRoaXMgYSBjb21wb3VuZCBjb21wb25lbnQgcGF0dGVybi5cbmV4cG9ydCBjb25zdCBTdGVwc0Zvcm0gPSBTdGVwc0Zvcm1CYXNlO1xuU3RlcHNGb3JtLlN0ZXBGb3JtID0gU3RlcEZvcm07XG5leHBvcnQgZGVmYXVsdCBTdGVwc0Zvcm07IixudWxsXSwic291cmNlUm9vdCI6Ii4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYyJ9
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export { ModalForm } from './ModalForm';
|
|
2
|
+
export { DrawerForm } from './DrawerForm';
|
|
3
|
+
export { StepsForm, StepForm } from './StepsForm';
|
|
4
|
+
export { QueryFilter } from './QueryFilter';
|
|
5
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvUHJvRm9ybS9zcmMvY29tcG9uZW50cy9Qcm9Gb3JtL2xheW91dHMvaW5kZXgudHMiXSwibmFtZXMiOlsiTW9kYWxGb3JtIiwiRHJhd2VyRm9ybSIsIlN0ZXBzRm9ybSIsIlN0ZXBGb3JtIiwiUXVlcnlGaWx0ZXIiXSwibWFwcGluZ3MiOiJBQUFBLFNBQVNBLFNBQVMsUUFBUSxhQUFhO0FBQ3ZDLFNBQVNDLFVBQVUsUUFBUSxjQUFjO0FBQ3pDLFNBQVNDLFNBQVMsRUFBRUMsUUFBUSxRQUFRLGFBQWE7QUFDakQsU0FBU0MsV0FBVyxRQUFRLGVBQWUiLCJmaWxlIjoiY29tcG9uZW50cy9Qcm9Gb3JtL2xheW91dHMvaW5kZXguanMiLCJzb3VyY2VzQ29udGVudCI6W251bGxdLCJzb3VyY2VSb290IjoiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjIn0=
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import type { CSSProperties, ReactElement, ReactNode } from 'react';
|
|
2
|
+
/** Configuration options for the {@link useOverlayForm} hook. */
|
|
3
|
+
interface UseOverlayFormOptions<TValues> {
|
|
4
|
+
/** Controlled open state. */
|
|
5
|
+
open?: boolean;
|
|
6
|
+
/** Callback when the open state changes. */
|
|
7
|
+
onOpenChange?: (open: boolean) => void;
|
|
8
|
+
/** Element that opens the overlay when clicked. */
|
|
9
|
+
trigger?: ReactElement;
|
|
10
|
+
/** Delay (ms) before auto-closing after submit. */
|
|
11
|
+
submitTimeout?: number;
|
|
12
|
+
/** Whether to auto-close after a successful submit. @default true */
|
|
13
|
+
autoClose?: boolean;
|
|
14
|
+
/** Whether to unmount overlay content when closed. @default true */
|
|
15
|
+
destroyOnClose?: boolean;
|
|
16
|
+
/** Overlay width. */
|
|
17
|
+
width?: string | number;
|
|
18
|
+
/** Form finish handler. Return `false` to prevent auto-close. */
|
|
19
|
+
onFinish?: (values: TValues) => void | boolean | Promise<void | boolean>;
|
|
20
|
+
/** Inline styles from the overlay component. */
|
|
21
|
+
overlayStyle?: CSSProperties;
|
|
22
|
+
/** The overlay's own `onHide` callback. */
|
|
23
|
+
onOverlayHide?: (...args: unknown[]) => void;
|
|
24
|
+
}
|
|
25
|
+
/** Return shape of {@link useOverlayForm}. */
|
|
26
|
+
export interface UseOverlayFormResult<TValues> {
|
|
27
|
+
/** Effective open state (controlled or uncontrolled). */
|
|
28
|
+
mergedOpen: boolean;
|
|
29
|
+
/** Whether overlay container should stay mounted. */
|
|
30
|
+
shouldRenderPanel: boolean;
|
|
31
|
+
/** Optional trigger element that opens the overlay. */
|
|
32
|
+
triggerNode: ReactNode;
|
|
33
|
+
/** Wrapped finish handler with optional auto-close behavior. */
|
|
34
|
+
handleFinish: (values: TValues) => Promise<void | boolean | undefined>;
|
|
35
|
+
/** Wrapped overlay hide handler. */
|
|
36
|
+
handleHide: (...args: unknown[]) => void;
|
|
37
|
+
/** Merged overlay style (base style + width override). */
|
|
38
|
+
mergedStyle: CSSProperties;
|
|
39
|
+
/** Imperative open-state setter honoring controlled mode. */
|
|
40
|
+
changeOpen: (nextOpen: boolean) => void;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Shared hook that powers both {@link ModalForm} and {@link DrawerForm}.
|
|
44
|
+
*
|
|
45
|
+
* Manages open/close state, trigger element cloning, auto-close with optional
|
|
46
|
+
* timeout after submit, and overlay visibility lifecycle.
|
|
47
|
+
*
|
|
48
|
+
* @typeParam TValues - The form values type.
|
|
49
|
+
* @param options - Configuration options.
|
|
50
|
+
* @returns An object with `mergedOpen`, `triggerNode`, `handleFinish`, `handleHide`, and more.
|
|
51
|
+
*/
|
|
52
|
+
export declare function useOverlayForm<TValues>({ open, onOpenChange, trigger, submitTimeout, autoClose, destroyOnClose, width, onFinish, overlayStyle, onOverlayHide, }: UseOverlayFormOptions<TValues>): UseOverlayFormResult<TValues>;
|
|
53
|
+
export {};
|