@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,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 {};
|
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.useOverlayForm = useOverlayForm;
|
|
8
|
+
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
9
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
10
|
+
var _react = require("react");
|
|
11
|
+
var __awaiter = void 0 && (void 0).__awaiter || function (thisArg, _arguments, P, generator) {
|
|
12
|
+
function adopt(value) {
|
|
13
|
+
return value instanceof P ? value : new P(function (resolve) {
|
|
14
|
+
resolve(value);
|
|
15
|
+
});
|
|
16
|
+
}
|
|
17
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
18
|
+
function fulfilled(value) {
|
|
19
|
+
try {
|
|
20
|
+
step(generator.next(value));
|
|
21
|
+
} catch (e) {
|
|
22
|
+
reject(e);
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
function rejected(value) {
|
|
26
|
+
try {
|
|
27
|
+
step(generator["throw"](value));
|
|
28
|
+
} catch (e) {
|
|
29
|
+
reject(e);
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
function step(result) {
|
|
33
|
+
result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
|
|
34
|
+
}
|
|
35
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
36
|
+
});
|
|
37
|
+
};
|
|
38
|
+
/**
|
|
39
|
+
* Shared hook that powers both {@link ModalForm} and {@link DrawerForm}.
|
|
40
|
+
*
|
|
41
|
+
* Manages open/close state, trigger element cloning, auto-close with optional
|
|
42
|
+
* timeout after submit, and overlay visibility lifecycle.
|
|
43
|
+
*
|
|
44
|
+
* @typeParam TValues - The form values type.
|
|
45
|
+
* @param options - Configuration options.
|
|
46
|
+
* @returns An object with `mergedOpen`, `triggerNode`, `handleFinish`, `handleHide`, and more.
|
|
47
|
+
*/
|
|
48
|
+
function useOverlayForm(_ref) {
|
|
49
|
+
var _this = this;
|
|
50
|
+
var open = _ref.open,
|
|
51
|
+
onOpenChange = _ref.onOpenChange,
|
|
52
|
+
trigger = _ref.trigger,
|
|
53
|
+
submitTimeout = _ref.submitTimeout,
|
|
54
|
+
_ref$autoClose = _ref.autoClose,
|
|
55
|
+
autoClose = _ref$autoClose === void 0 ? true : _ref$autoClose,
|
|
56
|
+
_ref$destroyOnClose = _ref.destroyOnClose,
|
|
57
|
+
destroyOnClose = _ref$destroyOnClose === void 0 ? true : _ref$destroyOnClose,
|
|
58
|
+
width = _ref.width,
|
|
59
|
+
onFinish = _ref.onFinish,
|
|
60
|
+
overlayStyle = _ref.overlayStyle,
|
|
61
|
+
onOverlayHide = _ref.onOverlayHide;
|
|
62
|
+
var _useState = (0, _react.useState)(false),
|
|
63
|
+
_useState2 = (0, _slicedToArray2["default"])(_useState, 2),
|
|
64
|
+
innerOpen = _useState2[0],
|
|
65
|
+
setInnerOpen = _useState2[1];
|
|
66
|
+
var closeTimerRef = (0, _react.useRef)(null);
|
|
67
|
+
var onFinishRef = (0, _react.useRef)(onFinish);
|
|
68
|
+
var mergedOpen = open !== null && open !== void 0 ? open : innerOpen;
|
|
69
|
+
(0, _react.useEffect)(function () {
|
|
70
|
+
onFinishRef.current = onFinish;
|
|
71
|
+
}, [onFinish]);
|
|
72
|
+
var changeOpen = (0, _react.useCallback)(function (nextOpen) {
|
|
73
|
+
if (open === undefined) {
|
|
74
|
+
setInnerOpen(nextOpen);
|
|
75
|
+
}
|
|
76
|
+
onOpenChange === null || onOpenChange === void 0 ? void 0 : onOpenChange(nextOpen);
|
|
77
|
+
}, [open, onOpenChange]);
|
|
78
|
+
var clearCloseTimer = (0, _react.useCallback)(function () {
|
|
79
|
+
if (!closeTimerRef.current) return;
|
|
80
|
+
clearTimeout(closeTimerRef.current);
|
|
81
|
+
closeTimerRef.current = null;
|
|
82
|
+
}, []);
|
|
83
|
+
var handleFinish = (0, _react.useCallback)(function (values) {
|
|
84
|
+
return __awaiter(_this, void 0, void 0, /*#__PURE__*/_regenerator["default"].mark(function _callee() {
|
|
85
|
+
var _a, result;
|
|
86
|
+
return _regenerator["default"].wrap(function _callee$(_context) {
|
|
87
|
+
while (1) switch (_context.prev = _context.next) {
|
|
88
|
+
case 0:
|
|
89
|
+
_context.next = 2;
|
|
90
|
+
return (_a = onFinishRef.current) === null || _a === void 0 ? void 0 : _a.call(onFinishRef, values);
|
|
91
|
+
case 2:
|
|
92
|
+
result = _context.sent;
|
|
93
|
+
if (autoClose && result !== false) {
|
|
94
|
+
clearCloseTimer();
|
|
95
|
+
if (typeof submitTimeout === 'number' && submitTimeout > 0) {
|
|
96
|
+
closeTimerRef.current = setTimeout(function () {
|
|
97
|
+
changeOpen(false);
|
|
98
|
+
closeTimerRef.current = null;
|
|
99
|
+
}, submitTimeout);
|
|
100
|
+
} else {
|
|
101
|
+
changeOpen(false);
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
return _context.abrupt("return", result);
|
|
105
|
+
case 5:
|
|
106
|
+
case "end":
|
|
107
|
+
return _context.stop();
|
|
108
|
+
}
|
|
109
|
+
}, _callee);
|
|
110
|
+
}));
|
|
111
|
+
}, [autoClose, changeOpen, clearCloseTimer, submitTimeout]);
|
|
112
|
+
var triggerNode = (0, _react.useMemo)(function () {
|
|
113
|
+
if (!trigger || ! /*#__PURE__*/(0, _react.isValidElement)(trigger)) return null;
|
|
114
|
+
return /*#__PURE__*/(0, _react.cloneElement)(trigger, {
|
|
115
|
+
onClick: function onClick(event) {
|
|
116
|
+
var _a;
|
|
117
|
+
var triggerOnClick = (_a = trigger.props) === null || _a === void 0 ? void 0 : _a.onClick;
|
|
118
|
+
triggerOnClick === null || triggerOnClick === void 0 ? void 0 : triggerOnClick(event);
|
|
119
|
+
if (event.defaultPrevented) return;
|
|
120
|
+
changeOpen(true);
|
|
121
|
+
}
|
|
122
|
+
});
|
|
123
|
+
}, [changeOpen, trigger]);
|
|
124
|
+
var handleHide = (0, _react.useCallback)(function () {
|
|
125
|
+
clearCloseTimer();
|
|
126
|
+
onOverlayHide === null || onOverlayHide === void 0 ? void 0 : onOverlayHide.apply(void 0, arguments);
|
|
127
|
+
changeOpen(false);
|
|
128
|
+
}, [changeOpen, clearCloseTimer, onOverlayHide]);
|
|
129
|
+
var shouldRenderPanel = mergedOpen || !destroyOnClose;
|
|
130
|
+
var mergedStyle = (0, _react.useMemo)(function () {
|
|
131
|
+
return Object.assign(Object.assign({}, overlayStyle || {}), width !== undefined ? {
|
|
132
|
+
width: width
|
|
133
|
+
} : {});
|
|
134
|
+
}, [overlayStyle, width]);
|
|
135
|
+
(0, _react.useEffect)(function () {
|
|
136
|
+
return function () {
|
|
137
|
+
clearCloseTimer();
|
|
138
|
+
};
|
|
139
|
+
}, [clearCloseTimer]);
|
|
140
|
+
return {
|
|
141
|
+
mergedOpen: mergedOpen,
|
|
142
|
+
shouldRenderPanel: shouldRenderPanel,
|
|
143
|
+
triggerNode: triggerNode,
|
|
144
|
+
handleFinish: handleFinish,
|
|
145
|
+
handleHide: handleHide,
|
|
146
|
+
mergedStyle: mergedStyle,
|
|
147
|
+
changeOpen: changeOpen
|
|
148
|
+
};
|
|
149
|
+
}
|
|
150
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvUHJvRm9ybS9zcmMvY29tcG9uZW50cy9Qcm9Gb3JtL2xheW91dHMvdXNlT3ZlcmxheUZvcm0udHMiLCJjb21wb25lbnRzL1Byb0Zvcm0vbGF5b3V0cy91c2VPdmVybGF5Rm9ybS5qcyJdLCJuYW1lcyI6WyJfcmVhY3QiLCJyZXF1aXJlIiwiX19hd2FpdGVyIiwidGhpc0FyZyIsIl9hcmd1bWVudHMiLCJQIiwiZ2VuZXJhdG9yIiwiYWRvcHQiLCJ2YWx1ZSIsInJlc29sdmUiLCJQcm9taXNlIiwicmVqZWN0IiwiZnVsZmlsbGVkIiwic3RlcCIsIm5leHQiLCJlIiwicmVqZWN0ZWQiLCJyZXN1bHQiLCJkb25lIiwidGhlbiIsImFwcGx5IiwidXNlT3ZlcmxheUZvcm0iLCJfcmVmIiwiX3RoaXMiLCJvcGVuIiwib25PcGVuQ2hhbmdlIiwidHJpZ2dlciIsInN1Ym1pdFRpbWVvdXQiLCJfcmVmJGF1dG9DbG9zZSIsImF1dG9DbG9zZSIsIl9yZWYkZGVzdHJveU9uQ2xvc2UiLCJkZXN0cm95T25DbG9zZSIsIndpZHRoIiwib25GaW5pc2giLCJvdmVybGF5U3R5bGUiLCJvbk92ZXJsYXlIaWRlIiwiX3VzZVN0YXRlIiwidXNlU3RhdGUiLCJfdXNlU3RhdGUyIiwiX3NsaWNlZFRvQXJyYXkyIiwiaW5uZXJPcGVuIiwic2V0SW5uZXJPcGVuIiwiY2xvc2VUaW1lclJlZiIsInVzZVJlZiIsIm9uRmluaXNoUmVmIiwibWVyZ2VkT3BlbiIsInVzZUVmZmVjdCIsImN1cnJlbnQiLCJjaGFuZ2VPcGVuIiwidXNlQ2FsbGJhY2siLCJuZXh0T3BlbiIsInVuZGVmaW5lZCIsImNsZWFyQ2xvc2VUaW1lciIsImNsZWFyVGltZW91dCIsImhhbmRsZUZpbmlzaCIsInZhbHVlcyIsIl9yZWdlbmVyYXRvciIsIm1hcmsiLCJfY2FsbGVlIiwiX2EiLCJ3cmFwIiwiX2NhbGxlZSQiLCJfY29udGV4dCIsInByZXYiLCJjYWxsIiwic2VudCIsInNldFRpbWVvdXQiLCJhYnJ1cHQiLCJzdG9wIiwidHJpZ2dlck5vZGUiLCJ1c2VNZW1vIiwiaXNWYWxpZEVsZW1lbnQiLCJjbG9uZUVsZW1lbnQiLCJvbkNsaWNrIiwiZXZlbnQiLCJ0cmlnZ2VyT25DbGljayIsInByb3BzIiwiZGVmYXVsdFByZXZlbnRlZCIsImhhbmRsZUhpZGUiLCJhcmd1bWVudHMiLCJzaG91bGRSZW5kZXJQYW5lbCIsIm1lcmdlZFN0eWxlIiwiT2JqZWN0IiwiYXNzaWduIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBQSxJQUFBQSxNQUFBLEdBQUFDLE9BQUE7QUNBQSxJQUFJQyxTQUFTLEdBQUksVUFBUSxTQUFLQSxTQUFTLElBQUssVUFBVUMsT0FBTyxFQUFFQyxVQUFVLEVBQUVDLENBQUMsRUFBRUMsU0FBUyxFQUFFO0VBQ3JGLFNBQVNDLEtBQUtBLENBQUNDLEtBQUssRUFBRTtJQUFFLE9BQU9BLEtBQUssWUFBWUgsQ0FBQyxHQUFHRyxLQUFLLEdBQUcsSUFBSUgsQ0FBQyxDQUFDLFVBQVVJLE9BQU8sRUFBRTtNQUFFQSxPQUFPLENBQUNELEtBQUssQ0FBQztJQUFFLENBQUMsQ0FBQztFQUFFO0VBQzNHLE9BQU8sS0FBS0gsQ0FBQyxLQUFLQSxDQUFDLEdBQUdLLE9BQU8sQ0FBQyxFQUFFLFVBQVVELE9BQU8sRUFBRUUsTUFBTSxFQUFFO0lBQ3ZELFNBQVNDLFNBQVNBLENBQUNKLEtBQUssRUFBRTtNQUFFLElBQUk7UUFBRUssSUFBSSxDQUFDUCxTQUFTLENBQUNRLElBQUksQ0FBQ04sS0FBSyxDQUFDLENBQUM7TUFBRSxDQUFDLENBQUMsT0FBT08sQ0FBQyxFQUFFO1FBQUVKLE1BQU0sQ0FBQ0ksQ0FBQyxDQUFDO01BQUU7SUFBRTtJQUMxRixTQUFTQyxRQUFRQSxDQUFDUixLQUFLLEVBQUU7TUFBRSxJQUFJO1FBQUVLLElBQUksQ0FBQ1AsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDRSxLQUFLLENBQUMsQ0FBQztNQUFFLENBQUMsQ0FBQyxPQUFPTyxDQUFDLEVBQUU7UUFBRUosTUFBTSxDQUFD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YztFQUV2RCxJQUFNa0QsV0FBVyxHQUFHLElBQUFYLGNBQU8sRUFBZ0I7SUFBQSxPQUFNWSxNQUFBLENBQUFDLE1BQUEsQ0FBQUQsTUFBQSxDQUFBQyxNQUFBLENBQUEsQ0FBQSxDQUFBLEVBQzNDakQsWUFBWSxJQUFJLENBQUEsQ0FBRyxDQUFBLEVBQ25CRixLQUFLLEtBQUttQixTQUFTLEdBQUc7TUFBRW5CLEtBQUssRUFBTEE7SUFBSyxDQUFFLEdBQUcsQ0FBQSxDQUFHLENBQUE7RUFBQSxDQUN6QyxFQUFFLENBQUNFLFlBQVksRUFBRUYsS0FBSyxDQUFDLENBQUM7RUFFMUIsSUFBQWMsZ0JBQVMsRUFBQyxZQUFLO0lBQ2IsT0FBTyxZQUFLO01BQ1ZNLGVBQWUsQ0FBQSxDQUFFO0lBQ25CLENBQUM7RUFDSCxDQUFDLEVBQUUsQ0FBQ0EsZUFBZSxDQUFDLENBQUM7RUFFckIsT0FBTztJQUNMUCxVQUFVLEVBQVZBLFVBQVU7SUFDVm1DLGlCQUFpQixFQUFqQkEsaUJBQWlCO0lBQ2pCWCxXQUFXLEVBQVhBLFdBQVc7SUFDWGYsWUFBWSxFQUFaQSxZQUFZO0lBQ1p3QixVQUFVLEVBQVZBLFVBQVU7SUFDVkcsV0FBVyxFQUFYQSxXQUFXO0lBQ1hqQyxVQUFVLEVBQVZBO0VDdERBLENEdUREO0FBQ0giLCJmaWxlIjoiY29tcG9uZW50cy9Qcm9Gb3JtL2xheW91dHMvdXNlT3ZlcmxheUZvcm0uanMiLCJzb3VyY2VzQ29udGVudCI6W251bGwsInZhciBfX2F3YWl0ZXIgPSAodGhpcyAmJiB0aGlzLl9fYXdhaXRlcikgfHwgZnVuY3Rpb24gKHRoaXNBcmcsIF9hcmd1bWVudHMsIFAsIGdlbmVyYXRvcikge1xuICAgIGZ1bmN0aW9uIGFkb3B0KHZhbHVlKSB7IHJldHVybiB2YWx1ZSBpbnN0YW5jZW9mIFAgPyB2YWx1ZSA6IG5ldyBQKGZ1bmN0aW9uIChyZXNvbHZlKSB7IHJlc29sdmUodmFsdWUpOyB9KTsgfVxuICAgIHJldHVybiBuZXcgKFAgfHwgKFAgPSBQcm9taXNlKSkoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkge1xuICAgICAgICBmdW5jdGlvbiBmdWxmaWxsZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3IubmV4dCh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XG4gICAgICAgIGZ1bmN0aW9uIHJlamVjdGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yW1widGhyb3dcIl0odmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxuICAgICAgICBmdW5jdGlvbiBzdGVwKHJlc3VsdCkgeyByZXN1bHQuZG9uZSA/IHJlc29sdmUocmVzdWx0LnZhbHVlKSA6IGFkb3B0KHJlc3VsdC52YWx1ZSkudGhlbihmdWxmaWxsZWQsIHJlamVjdGVkKTsgfVxuICAgICAgICBzdGVwKChnZW5lcmF0b3IgPSBnZW5lcmF0b3IuYXBwbHkodGhpc0FyZywgX2FyZ3VtZW50cyB8fCBbXSkpLm5leHQoKSk7XG4gICAgfSk7XG59O1xuaW1wb3J0IHsgY2xvbmVFbGVtZW50LCBpc1ZhbGlkRWxlbWVudCwgdXNlQ2FsbGJhY2ssIHVzZUVmZmVjdCwgdXNlTWVtbywgdXNlUmVmLCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0Jztcbi8qKlxuICogU2hhcmVkIGhvb2sgdGhhdCBwb3dlcnMgYm90aCB7QGxpbmsgTW9kYWxGb3JtfSBhbmQge0BsaW5rIERyYXdlckZvcm19LlxuICpcbiAqIE1hbmFnZXMgb3Blbi9jbG9zZSBzdGF0ZSwgdHJpZ2dlciBlbGVtZW50IGNsb25pbmcsIGF1dG8tY2xvc2Ugd2l0aCBvcHRpb25hbFxuICogdGltZW91dCBhZnRlciBzdWJtaXQsIGFuZCBvdmVybGF5IHZpc2liaWxpdHkgbGlmZWN5Y2xlLlxuICpcbiAqIEB0eXBlUGFyYW0gVFZhbHVlcyAtIFRoZSBmb3JtIHZhbHVlcyB0eXBlLlxuICogQHBhcmFtIG9wdGlvbnMgLSBDb25maWd1cmF0aW9uIG9wdGlvbnMuXG4gKiBAcmV0dXJucyBBbiBvYmplY3Qgd2l0aCBgbWVyZ2VkT3BlbmAsIGB0cmlnZ2VyTm9kZWAsIGBoYW5kbGVGaW5pc2hgLCBgaGFuZGxlSGlkZWAsIGFuZCBtb3JlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gdXNlT3ZlcmxheUZvcm0oeyBvcGVuLCBvbk9wZW5DaGFuZ2UsIHRyaWdnZXIsIHN1Ym1pdFRpbWVvdXQsIGF1dG9DbG9zZSA9IHRydWUsIGRlc3Ryb3lPbkNsb3NlID0gdHJ1ZSwgd2lkdGgsIG9uRmluaXNoLCBvdmVybGF5U3R5bGUsIG9uT3ZlcmxheUhpZGUsIH0pIHtcbiAgICBjb25zdCBbaW5uZXJPcGVuLCBzZXRJbm5lck9wZW5dID0gdXNlU3RhdGUoZmFsc2UpO1xuICAgIGNvbnN0IGNsb3NlVGltZXJSZWYgPSB1c2VSZWYobnVsbCk7XG4gICAgY29uc3Qgb25GaW5pc2hSZWYgPSB1c2VSZWYob25GaW5pc2gpO1xuICAgIGNvbnN0IG1lcmdlZE9wZW4gPSBvcGVuICE9PSBudWxsICYmIG9wZW4gIT09IHZvaWQgMCA/IG9wZW4gOiBpbm5lck9wZW47XG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgb25GaW5pc2hSZWYuY3VycmVudCA9IG9uRmluaXNoO1xuICAgIH0sIFtvbkZpbmlzaF0pO1xuICAgIGNvbnN0IGNoYW5nZU9wZW4gPSB1c2VDYWxsYmFjaygobmV4dE9wZW4pID0+IHtcbiAgICAgICAgaWYgKG9wZW4gPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgc2V0SW5uZXJPcGVuKG5leHRPcGVuKTtcbiAgICAgICAgfVxuICAgICAgICBvbk9wZW5DaGFuZ2UgPT09IG51bGwgfHwgb25PcGVuQ2hhbmdlID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvbk9wZW5DaGFuZ2UobmV4dE9wZW4pO1xuICAgIH0sIFtvcGVuLCBvbk9wZW5DaGFuZ2VdKTtcbiAgICBjb25zdCBjbGVhckNsb3NlVGltZXIgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgICAgIGlmICghY2xvc2VUaW1lclJlZi5jdXJyZW50KVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICBjbGVhclRpbWVvdXQoY2xvc2VUaW1lclJlZi5jdXJyZW50KTtcbiAgICAgICAgY2xvc2VUaW1lclJlZi5jdXJyZW50ID0gbnVsbDtcbiAgICB9LCBbXSk7XG4gICAgY29uc3QgaGFuZGxlRmluaXNoID0gdXNlQ2FsbGJhY2soKHZhbHVlcykgPT4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICB2YXIgX2E7XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IHlpZWxkICgoX2EgPSBvbkZpbmlzaFJlZi5jdXJyZW50KSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuY2FsbChvbkZpbmlzaFJlZiwgdmFsdWVzKSk7XG4gICAgICAgIGlmIChhdXRvQ2xvc2UgJiYgcmVzdWx0ICE9PSBmYWxzZSkge1xuICAgICAgICAgICAgY2xlYXJDbG9zZVRpbWVyKCk7XG4gICAgICAgICAgICBpZiAodHlwZW9mIHN1Ym1pdFRpbWVvdXQgPT09ICdudW1iZXInICYmIHN1Ym1pdFRpbWVvdXQgPiAwKSB7XG4gICAgICAgICAgICAgICAgY2xvc2VUaW1lclJlZi5jdXJyZW50ID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNoYW5nZU9wZW4oZmFsc2UpO1xuICAgICAgICAgICAgICAgICAgICBjbG9zZVRpbWVyUmVmLmN1cnJlbnQgPSBudWxsO1xuICAgICAgICAgICAgICAgIH0sIHN1Ym1pdFRpbWVvdXQpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgY2hhbmdlT3BlbihmYWxzZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9KSwgW2F1dG9DbG9zZSwgY2hhbmdlT3BlbiwgY2xlYXJDbG9zZVRpbWVyLCBzdWJtaXRUaW1lb3V0XSk7XG4gICAgY29uc3QgdHJpZ2dlck5vZGUgPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgICAgaWYgKCF0cmlnZ2VyIHx8ICFpc1ZhbGlkRWxlbWVudCh0cmlnZ2VyKSlcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICByZXR1cm4gY2xvbmVFbGVtZW50KHRyaWdnZXIsIHtcbiAgICAgICAgICAgIG9uQ2xpY2s6IChldmVudCkgPT4ge1xuICAgICAgICAgICAgICAgIHZhciBfYTtcbiAgICAgICAgICAgICAgICBjb25zdCB0cmlnZ2VyT25DbGljayA9IChfYSA9IHRyaWdnZXIucHJvcHMpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5vbkNsaWNrO1xuICAgICAgICAgICAgICAgIHRyaWdnZXJPbkNsaWNrID09PSBudWxsIHx8IHRyaWdnZXJPbkNsaWNrID09PSB2b2lkIDAgPyB2b2lkIDAgOiB0cmlnZ2VyT25DbGljayhldmVudCk7XG4gICAgICAgICAgICAgICAgaWYgKGV2ZW50LmRlZmF1bHRQcmV2ZW50ZWQpXG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICBjaGFuZ2VPcGVuKHRydWUpO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgfSk7XG4gICAgfSwgW2NoYW5nZU9wZW4sIHRyaWdnZXJdKTtcbiAgICBjb25zdCBoYW5kbGVIaWRlID0gdXNlQ2FsbGJhY2soKC4uLmFyZ3MpID0+IHtcbiAgICAgICAgY2xlYXJDbG9zZVRpbWVyKCk7XG4gICAgICAgIG9uT3ZlcmxheUhpZGUgPT09IG51bGwgfHwgb25PdmVybGF5SGlkZSA9PT0gdm9pZCAwID8gdm9pZCAwIDogb25PdmVybGF5SGlkZSguLi5hcmdzKTtcbiAgICAgICAgY2hhbmdlT3BlbihmYWxzZSk7XG4gICAgfSwgW2NoYW5nZU9wZW4sIGNsZWFyQ2xvc2VUaW1lciwgb25PdmVybGF5SGlkZV0pO1xuICAgIGNvbnN0IHNob3VsZFJlbmRlclBhbmVsID0gbWVyZ2VkT3BlbiB8fCAhZGVzdHJveU9uQ2xvc2U7XG4gICAgY29uc3QgbWVyZ2VkU3R5bGUgPSB1c2VNZW1vKCgpID0+IChPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIChvdmVybGF5U3R5bGUgfHwge30pKSwgKHdpZHRoICE9PSB1bmRlZmluZWQgPyB7IHdpZHRoIH0gOiB7fSkpKSwgW292ZXJsYXlTdHlsZSwgd2lkdGhdKTtcbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgICAgICAgY2xlYXJDbG9zZVRpbWVyKCk7XG4gICAgICAgIH07XG4gICAgfSwgW2NsZWFyQ2xvc2VUaW1lcl0pO1xuICAgIHJldHVybiB7XG4gICAgICAgIG1lcmdlZE9wZW4sXG4gICAgICAgIHNob3VsZFJlbmRlclBhbmVsLFxuICAgICAgICB0cmlnZ2VyTm9kZSxcbiAgICAgICAgaGFuZGxlRmluaXNoLFxuICAgICAgICBoYW5kbGVIaWRlLFxuICAgICAgICBtZXJnZWRTdHlsZSxcbiAgICAgICAgY2hhbmdlT3BlbixcbiAgICB9O1xufSJdLCJzb3VyY2VSb290IjoiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjIn0=
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.proform__submitter{display:flex;gap:12px;margin-top:16px}.proform__drawer-form,.proform__modal-form{padding:16px;background:#fff;border:1px solid #e3e4e4;border-radius:12px}.proform__drawer-form-title,.proform__modal-form-title,.proform__steps-form-title{margin-bottom:12px;font-weight:600;font-size:16px;line-height:24px}.proform__steps-form-description{margin-bottom:12px;color:#646465;font-size:14px}.proform__query-filter-actions,.proform__steps-form-actions{display:flex;gap:8px;margin-top:16px}.proform__query-filter-split{padding-top:16px;border-top:1px solid #e3e4e4}.proform__list{display:flex;flex-direction:column;gap:12px}.proform__list-label{font-weight:600;font-size:14px}.proform__list-row-actions{display:flex;gap:8px}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
@use '../../../variable.scss' as *;
|
|
2
|
+
/* stylelint-disable selector-pseudo-class-no-unknown */
|
|
3
|
+
|
|
4
|
+
.proform__submitter {
|
|
5
|
+
display: flex;
|
|
6
|
+
gap: 12px;
|
|
7
|
+
margin-top: 16px;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
.proform__modal-form,
|
|
11
|
+
.proform__drawer-form {
|
|
12
|
+
padding: 16px;
|
|
13
|
+
background: $color-white;
|
|
14
|
+
border: 1px solid $color-grey-deep;
|
|
15
|
+
border-radius: 12px;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
.proform__modal-form-title,
|
|
19
|
+
.proform__drawer-form-title,
|
|
20
|
+
.proform__steps-form-title {
|
|
21
|
+
margin-bottom: 12px;
|
|
22
|
+
font-weight: 600;
|
|
23
|
+
font-size: 16px;
|
|
24
|
+
line-height: 24px;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
.proform__steps-form-description {
|
|
28
|
+
margin-bottom: 12px;
|
|
29
|
+
color: $color-grey-midnight;
|
|
30
|
+
font-size: 14px;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
.proform__steps-form-actions,
|
|
34
|
+
.proform__query-filter-actions {
|
|
35
|
+
display: flex;
|
|
36
|
+
gap: 8px;
|
|
37
|
+
margin-top: 16px;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
.proform__query-filter-split {
|
|
41
|
+
padding-top: 16px;
|
|
42
|
+
border-top: 1px solid $color-grey-deep;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
.proform__list {
|
|
46
|
+
display: flex;
|
|
47
|
+
flex-direction: column;
|
|
48
|
+
gap: 12px;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
.proform__list-label {
|
|
52
|
+
font-weight: 600;
|
|
53
|
+
font-size: 14px;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
.proform__list-row-actions {
|
|
57
|
+
display: flex;
|
|
58
|
+
gap: 8px;
|
|
59
|
+
}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
require("./ProForm.module.css");
|
|
4
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvUHJvRm9ybS9zcmMvY29tcG9uZW50cy9Qcm9Gb3JtL3N0eWxlL2luZGV4LnRzIl0sIm5hbWVzIjpbInJlcXVpcmUiXSwibWFwcGluZ3MiOiI7O0FBQ0FBLE9BQUEiLCJmaWxlIjoiY29tcG9uZW50cy9Qcm9Gb3JtL3N0eWxlL2Nzcy5qcyIsInNvdXJjZXNDb250ZW50IjpbbnVsbF0sInNvdXJjZVJvb3QiOiIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMifQ==
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import './ProForm.module.scss';
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
require("./ProForm.module.scss");
|
|
4
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvUHJvRm9ybS9zcmMvY29tcG9uZW50cy9Qcm9Gb3JtL3N0eWxlL2luZGV4LnRzIl0sIm5hbWVzIjpbInJlcXVpcmUiXSwibWFwcGluZ3MiOiI7O0FBQ0FBLE9BQUEiLCJmaWxlIjoiY29tcG9uZW50cy9Qcm9Gb3JtL3N0eWxlL2luZGV4LmpzIiwic291cmNlc0NvbnRlbnQiOltudWxsXSwic291cmNlUm9vdCI6Ii4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYyJ9
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import type { MouseEvent, ReactNode } from 'react';
|
|
2
|
+
/** Shorthand for a generic key/value record. */
|
|
3
|
+
export type UnknownRecord = Record<string, unknown>;
|
|
4
|
+
/**
|
|
5
|
+
* Produces a deterministic, type-aware string key for deep comparison.
|
|
6
|
+
* Handles non-JSON-safe values (e.g. `undefined`, `symbol`, `function`) and circular references.
|
|
7
|
+
*
|
|
8
|
+
* @param value - The value to serialize.
|
|
9
|
+
* @returns A stable serialization key.
|
|
10
|
+
*/
|
|
11
|
+
export declare const stableSerialize: (value: unknown) => string;
|
|
12
|
+
/**
|
|
13
|
+
* Renders a boolean value as localized "Yes" / "No" text for readonly mode.
|
|
14
|
+
*
|
|
15
|
+
* @param value - The field value.
|
|
16
|
+
* @returns The display string.
|
|
17
|
+
*/
|
|
18
|
+
export declare const renderBooleanReadonly: (value: unknown) => string;
|
|
19
|
+
/**
|
|
20
|
+
* Renders a numeric value as its string representation, or a dash for empty values.
|
|
21
|
+
*
|
|
22
|
+
* @param value - The field value.
|
|
23
|
+
* @returns The display string.
|
|
24
|
+
*/
|
|
25
|
+
export declare const renderNumericReadonly: (value: unknown) => string;
|
|
26
|
+
/**
|
|
27
|
+
* Renders a text value as-is, or a dash for empty values.
|
|
28
|
+
*
|
|
29
|
+
* @param value - The field value.
|
|
30
|
+
* @returns The display string.
|
|
31
|
+
*/
|
|
32
|
+
export declare const renderTextReadonly: (value: unknown) => string;
|
|
33
|
+
/** Shape of an option item used by Select, Radio, and Checkbox fields. */
|
|
34
|
+
interface OptionItem {
|
|
35
|
+
key?: unknown;
|
|
36
|
+
value?: unknown;
|
|
37
|
+
label?: unknown;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Finds the display label for a given value within an options array.
|
|
41
|
+
*
|
|
42
|
+
* @param value - The current field value.
|
|
43
|
+
* @param options - The list of available options.
|
|
44
|
+
* @param valueKey - Which option property to match against: `'value'`, `'key'`, or `'both'`.
|
|
45
|
+
* @returns The matched option's label, or the raw value, or a dash placeholder.
|
|
46
|
+
*/
|
|
47
|
+
export declare const findOptionLabel: (value: unknown, options: OptionItem[] | undefined, valueKey?: "value" | "key" | "both") => unknown;
|
|
48
|
+
/**
|
|
49
|
+
* Type guard that checks whether a submitter configuration is enabled
|
|
50
|
+
* (i.e. not `false`, `null`, or `undefined`).
|
|
51
|
+
*
|
|
52
|
+
* @param submitter - The submitter prop value.
|
|
53
|
+
* @returns `true` if the submitter config object is present.
|
|
54
|
+
*/
|
|
55
|
+
export declare const isSubmitterEnabled: <T>(submitter: false | T | undefined) => submitter is T;
|
|
56
|
+
type IconProps = false | UnknownRecord | undefined;
|
|
57
|
+
/** Destructured button properties returned by {@link extractButtonProps}. */
|
|
58
|
+
interface ExtractedButtonProps {
|
|
59
|
+
onClick: ((event: MouseEvent<HTMLButtonElement>) => void) | undefined;
|
|
60
|
+
disabled: boolean;
|
|
61
|
+
children: ReactNode;
|
|
62
|
+
domProps: UnknownRecord;
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Extracts well-known button properties (`onClick`, `disabled`, `children`)
|
|
66
|
+
* from an icon-props configuration object, returning the remainder as `domProps`.
|
|
67
|
+
*
|
|
68
|
+
* @param props - The icon/button props, or `false`/`undefined` to skip.
|
|
69
|
+
* @returns A normalized {@link ExtractedButtonProps} object.
|
|
70
|
+
*/
|
|
71
|
+
export declare const extractButtonProps: (props: IconProps) => ExtractedButtonProps;
|
|
72
|
+
export {};
|
|
@@ -0,0 +1,213 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.stableSerialize = exports.renderTextReadonly = exports.renderNumericReadonly = exports.renderBooleanReadonly = exports.isSubmitterEnabled = exports.findOptionLabel = exports.extractButtonProps = void 0;
|
|
8
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
9
|
+
var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
|
|
10
|
+
var _constants = require("./constants");
|
|
11
|
+
var __rest = void 0 && (void 0).__rest || function (s, e) {
|
|
12
|
+
var t = {};
|
|
13
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];
|
|
14
|
+
if (s != null && typeof Object.getOwnPropertySymbols === "function") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
15
|
+
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];
|
|
16
|
+
}
|
|
17
|
+
return t;
|
|
18
|
+
};
|
|
19
|
+
var getNextSeenId = function getNextSeenId(ctx) {
|
|
20
|
+
var current = ctx.nextId;
|
|
21
|
+
ctx.nextId += 1;
|
|
22
|
+
return current;
|
|
23
|
+
};
|
|
24
|
+
var sortObjectKeys = function sortObjectKeys(value) {
|
|
25
|
+
return Reflect.ownKeys(value).map(function (rawKey) {
|
|
26
|
+
var _a;
|
|
27
|
+
return {
|
|
28
|
+
rawKey: rawKey,
|
|
29
|
+
serializedKey: (0, _typeof2["default"])(rawKey) === 'symbol' ? "@@symbol:".concat(String((_a = rawKey.description) !== null && _a !== void 0 ? _a : rawKey)) : String(rawKey)
|
|
30
|
+
};
|
|
31
|
+
}).sort(function (a, b) {
|
|
32
|
+
return a.serializedKey.localeCompare(b.serializedKey);
|
|
33
|
+
});
|
|
34
|
+
};
|
|
35
|
+
var serializeNumber = function serializeNumber(value) {
|
|
36
|
+
if (Number.isNaN(value)) return 'number:NaN';
|
|
37
|
+
if (!Number.isFinite(value)) return "number:".concat(value > 0 ? 'Infinity' : '-Infinity');
|
|
38
|
+
return "number:".concat(String(value));
|
|
39
|
+
};
|
|
40
|
+
var serializeObject = function serializeObject(value, ctx) {
|
|
41
|
+
var _a, _b;
|
|
42
|
+
if (ctx.seen.has(value)) {
|
|
43
|
+
return "ref:".concat(ctx.seen.get(value));
|
|
44
|
+
}
|
|
45
|
+
var id = getNextSeenId(ctx);
|
|
46
|
+
ctx.seen.set(value, id);
|
|
47
|
+
if (Array.isArray(value)) {
|
|
48
|
+
return "array:[".concat(value.map(function (item) {
|
|
49
|
+
return serializeStableValue(item, ctx);
|
|
50
|
+
}).join(','), "]");
|
|
51
|
+
}
|
|
52
|
+
if (value instanceof Date) {
|
|
53
|
+
return "date:".concat(Number.isNaN(value.getTime()) ? 'Invalid Date' : value.toISOString());
|
|
54
|
+
}
|
|
55
|
+
if (value instanceof RegExp) {
|
|
56
|
+
return "regexp:".concat(value.toString());
|
|
57
|
+
}
|
|
58
|
+
if (value instanceof Set) {
|
|
59
|
+
var values = Array.from(value.values()).map(function (item) {
|
|
60
|
+
return serializeStableValue(item, ctx);
|
|
61
|
+
}).sort();
|
|
62
|
+
return "set:{".concat(values.join(','), "}");
|
|
63
|
+
}
|
|
64
|
+
if (value instanceof Map) {
|
|
65
|
+
var entries = Array.from(value.entries()).map(function (_ref) {
|
|
66
|
+
var _ref2 = (0, _slicedToArray2["default"])(_ref, 2),
|
|
67
|
+
key = _ref2[0],
|
|
68
|
+
item = _ref2[1];
|
|
69
|
+
return {
|
|
70
|
+
key: serializeStableValue(key, ctx),
|
|
71
|
+
value: serializeStableValue(item, ctx)
|
|
72
|
+
};
|
|
73
|
+
}).sort(function (a, b) {
|
|
74
|
+
if (a.key === b.key) return a.value.localeCompare(b.value);
|
|
75
|
+
return a.key.localeCompare(b.key);
|
|
76
|
+
});
|
|
77
|
+
return "map:{".concat(entries.map(function (entry) {
|
|
78
|
+
return "".concat(entry.key, "->").concat(entry.value);
|
|
79
|
+
}).join(','), "}");
|
|
80
|
+
}
|
|
81
|
+
var constructorName = (_b = (_a = value.constructor) === null || _a === void 0 ? void 0 : _a.name) !== null && _b !== void 0 ? _b : 'Object';
|
|
82
|
+
var keys = sortObjectKeys(value);
|
|
83
|
+
var serializedPairs = keys.map(function (_ref3) {
|
|
84
|
+
var rawKey = _ref3.rawKey,
|
|
85
|
+
serializedKey = _ref3.serializedKey;
|
|
86
|
+
var nextValue = value[rawKey];
|
|
87
|
+
return "".concat(serializedKey, ":").concat(serializeStableValue(nextValue, ctx));
|
|
88
|
+
});
|
|
89
|
+
return "object:".concat(constructorName, ":{").concat(serializedPairs.join(','), "}");
|
|
90
|
+
};
|
|
91
|
+
var serializeStableValue = function serializeStableValue(value, ctx) {
|
|
92
|
+
var _a;
|
|
93
|
+
if (value === null) return 'null';
|
|
94
|
+
switch ((0, _typeof2["default"])(value)) {
|
|
95
|
+
case 'undefined':
|
|
96
|
+
return 'undefined';
|
|
97
|
+
case 'string':
|
|
98
|
+
return "string:".concat(JSON.stringify(value));
|
|
99
|
+
case 'number':
|
|
100
|
+
return serializeNumber(value);
|
|
101
|
+
case 'boolean':
|
|
102
|
+
return "boolean:".concat(value ? '1' : '0');
|
|
103
|
+
case 'bigint':
|
|
104
|
+
return "bigint:".concat(String(value));
|
|
105
|
+
case 'symbol':
|
|
106
|
+
return "symbol:".concat(String((_a = value.description) !== null && _a !== void 0 ? _a : value));
|
|
107
|
+
case 'function':
|
|
108
|
+
{
|
|
109
|
+
var fn = value;
|
|
110
|
+
return "function:".concat(fn.name || 'anonymous', ":").concat(fn.length, ":").concat(String(fn));
|
|
111
|
+
}
|
|
112
|
+
case 'object':
|
|
113
|
+
return serializeObject(value, ctx);
|
|
114
|
+
default:
|
|
115
|
+
return "unknown:".concat(String(value));
|
|
116
|
+
}
|
|
117
|
+
};
|
|
118
|
+
/**
|
|
119
|
+
* Produces a deterministic, type-aware string key for deep comparison.
|
|
120
|
+
* Handles non-JSON-safe values (e.g. `undefined`, `symbol`, `function`) and circular references.
|
|
121
|
+
*
|
|
122
|
+
* @param value - The value to serialize.
|
|
123
|
+
* @returns A stable serialization key.
|
|
124
|
+
*/
|
|
125
|
+
var stableSerialize = exports.stableSerialize = function stableSerialize(value) {
|
|
126
|
+
try {
|
|
127
|
+
return serializeStableValue(value, {
|
|
128
|
+
seen: new WeakMap(),
|
|
129
|
+
nextId: 0
|
|
130
|
+
});
|
|
131
|
+
} catch (error) {
|
|
132
|
+
var message = error instanceof Error ? error.message : String(error);
|
|
133
|
+
return "serialization-error:".concat(message);
|
|
134
|
+
}
|
|
135
|
+
};
|
|
136
|
+
/**
|
|
137
|
+
* Renders a boolean value as localized "Yes" / "No" text for readonly mode.
|
|
138
|
+
*
|
|
139
|
+
* @param value - The field value.
|
|
140
|
+
* @returns The display string.
|
|
141
|
+
*/
|
|
142
|
+
var renderBooleanReadonly = exports.renderBooleanReadonly = function renderBooleanReadonly(value) {
|
|
143
|
+
return value ? _constants.DEFAULT_TEXT.yes : _constants.DEFAULT_TEXT.no;
|
|
144
|
+
};
|
|
145
|
+
/**
|
|
146
|
+
* Renders a numeric value as its string representation, or a dash for empty values.
|
|
147
|
+
*
|
|
148
|
+
* @param value - The field value.
|
|
149
|
+
* @returns The display string.
|
|
150
|
+
*/
|
|
151
|
+
var renderNumericReadonly = exports.renderNumericReadonly = function renderNumericReadonly(value) {
|
|
152
|
+
return value == null || value === '' ? _constants.DEFAULT_TEXT.empty : String(value);
|
|
153
|
+
};
|
|
154
|
+
/**
|
|
155
|
+
* Renders a text value as-is, or a dash for empty values.
|
|
156
|
+
*
|
|
157
|
+
* @param value - The field value.
|
|
158
|
+
* @returns The display string.
|
|
159
|
+
*/
|
|
160
|
+
var renderTextReadonly = exports.renderTextReadonly = function renderTextReadonly(value) {
|
|
161
|
+
return value != null && value !== '' ? String(value) : _constants.DEFAULT_TEXT.empty;
|
|
162
|
+
};
|
|
163
|
+
/**
|
|
164
|
+
* Finds the display label for a given value within an options array.
|
|
165
|
+
*
|
|
166
|
+
* @param value - The current field value.
|
|
167
|
+
* @param options - The list of available options.
|
|
168
|
+
* @param valueKey - Which option property to match against: `'value'`, `'key'`, or `'both'`.
|
|
169
|
+
* @returns The matched option's label, or the raw value, or a dash placeholder.
|
|
170
|
+
*/
|
|
171
|
+
var findOptionLabel = exports.findOptionLabel = function findOptionLabel(value, options) {
|
|
172
|
+
var valueKey = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'value';
|
|
173
|
+
var _a, _b;
|
|
174
|
+
if (!Array.isArray(options)) return value !== null && value !== void 0 ? value : _constants.DEFAULT_TEXT.empty;
|
|
175
|
+
var matched = options.find(function (item) {
|
|
176
|
+
if (valueKey === 'both') {
|
|
177
|
+
return (item === null || item === void 0 ? void 0 : item.key) === value || (item === null || item === void 0 ? void 0 : item.value) === value;
|
|
178
|
+
}
|
|
179
|
+
return (item === null || item === void 0 ? void 0 : item[valueKey]) === value;
|
|
180
|
+
});
|
|
181
|
+
return (_b = (_a = matched === null || matched === void 0 ? void 0 : matched.label) !== null && _a !== void 0 ? _a : value) !== null && _b !== void 0 ? _b : _constants.DEFAULT_TEXT.empty;
|
|
182
|
+
};
|
|
183
|
+
/**
|
|
184
|
+
* Type guard that checks whether a submitter configuration is enabled
|
|
185
|
+
* (i.e. not `false`, `null`, or `undefined`).
|
|
186
|
+
*
|
|
187
|
+
* @param submitter - The submitter prop value.
|
|
188
|
+
* @returns `true` if the submitter config object is present.
|
|
189
|
+
*/
|
|
190
|
+
var isSubmitterEnabled = exports.isSubmitterEnabled = function isSubmitterEnabled(submitter) {
|
|
191
|
+
return submitter !== false && submitter != null;
|
|
192
|
+
};
|
|
193
|
+
/**
|
|
194
|
+
* Extracts well-known button properties (`onClick`, `disabled`, `children`)
|
|
195
|
+
* from an icon-props configuration object, returning the remainder as `domProps`.
|
|
196
|
+
*
|
|
197
|
+
* @param props - The icon/button props, or `false`/`undefined` to skip.
|
|
198
|
+
* @returns A normalized {@link ExtractedButtonProps} object.
|
|
199
|
+
*/
|
|
200
|
+
var extractButtonProps = exports.extractButtonProps = function extractButtonProps(props) {
|
|
201
|
+
var btnProps = props && (0, _typeof2["default"])(props) === 'object' ? props : {};
|
|
202
|
+
var onClick = btnProps.onClick,
|
|
203
|
+
disabled = btnProps.disabled,
|
|
204
|
+
children = btnProps.children,
|
|
205
|
+
domProps = __rest(btnProps, ["onClick", "disabled", "children"]);
|
|
206
|
+
return {
|
|
207
|
+
onClick: onClick,
|
|
208
|
+
disabled: !!disabled,
|
|
209
|
+
children: children,
|
|
210
|
+
domProps: domProps
|
|
211
|
+
};
|
|
212
|
+
};
|
|
213
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvc3JjL2NvbXBvbmVudHMvUHJvRm9ybS91dGlscy50cyIsImNvbXBvbmVudHMvUHJvRm9ybS91dGlscy5qcyJdLCJuYW1lcyI6WyJfY29uc3RhbnRzIiwicmVxdWlyZSIsIl9fcmVzdCIsInMiLCJlIiwidCIsInAiLCJPYmplY3QiLCJwcm90b3R5cGUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJpbmRleE9mIiwiZ2V0T3duUHJvcGVydHlTeW1ib2xzIiwiaSIsImxlbmd0aCIsInByb3BlcnR5SXNFbnVtZXJhYmxlIiwiZ2V0TmV4dFNlZW5JZCIsImN0eCIsImN1cnJlbnQiLCJuZXh0SWQiLCJzb3J0T2JqZWN0S2V5cyIsInZhbHVlIiwiUmVmbGVjdCIsIm93bktleXMiLCJtYXAiLCJyYXdLZXkiLCJfYSIsInNlcmlhbGl6ZWRLZXkiLCJfdHlwZW9mMiIsImNvbmNhdCIsIlN0cmluZyIsImRlc2NyaXB0aW9uIiwic29ydCIsImEiLCJiIiwibG9jYWxlQ29tcGFyZSIsInNlcmlhbGl6ZU51bWJlciIsIk51bWJlciIsImlzTmFOIiwiaXNGaW5pdGUiLCJzZXJpYWxpemVPYmplY3QiLCJfYiIsInNlZW4iLCJoYXMiLCJnZXQiLCJpZCIsInNldCIsIkFycmF5IiwiaXNBcnJheSIsIml0ZW0iLCJzZXJpYWxpemVTdGFibGVWYWx1ZSIsImpvaW4iLCJEYXRlIiwiZ2V0VGltZSIsInRvSVNPU3RyaW5nIiwiUmVnRXhwIiwidG9TdHJpbmciLCJTZXQiLCJ2YWx1ZXMiLCJmcm9tIiwiTWFwIiwiZW50cmllcyIsIl9yZWYiLCJfcmVmMiIsIl9zbGljZWRUb0FycmF5MiIsImtleSIsImVudHJ5IiwiY29uc3RydWN0b3JOYW1lIiwiY29uc3RydWN0b3IiLCJuYW1lIiwia2V5cyIsInNlcmlhbGl6ZWRQYWlycyIsIl9yZWYzIiwibmV4dFZhbHVlIiwiSlNPTiIsInN0cmluZ2lmeSIsImZuIiwic3RhYmxlU2VyaWFsaXplIiwiZXhwb3J0cyIsIldlYWtNYXAiLCJlcnJvciIsIm1lc3NhZ2UiLCJFcnJvciIsInJlbmRlckJvb2xlYW5SZWFkb25seSIsIkRFRkFVTFRfVEVYVCIsInllcyIsIm5vIiwicmVuZGVyTnVtZXJpY1JlYWRvbmx5IiwiZW1wdHkiLCJyZW5kZXJUZXh0UmVhZG9ubHkiLCJmaW5kT3B0aW9uTGFiZWwiLCJvcHRpb25zIiwidmFsdWVLZXkiLCJhcmd1bWVudHMiLCJ1bmRlZmluZWQiLCJtYXRjaGVkIiwiZmluZCIsImxhYmVsIiwiaXNTdWJtaXR0ZXJFbmFibGVkIiwic3VibWl0dGVyIiwiZXh0cmFjdEJ1dHRvblByb3BzIiwicHJvcHMiLCJidG5Qcm9wcyIsIm9uQ2xpY2siLCJkaXNhYmxlZCIsImNoaWxkcmVuIiwiZG9tUHJvcHMiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUNBLElBQUFBLFVBQUEsR0FBQUMsT0FBQTtBQ0RBLElBQUlDLE1BQU0sR0FBSSxVQUFRLFNBQUtBLE1BQU0sSUFBSyxVQUFVQyxDQUFDLEVBQUVDLENBQUMsRUFBRTtFQUNsRCxJQUFJQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0VBQ1YsS0FBSyxJQUFJQyxDQUFDLElBQUlILENBQUMsRUFBRSxJQUFJSSxNQUFNLENBQUNDLFNBQVMsQ0FBQ0MsY0FBYyxDQUFDQyxJQUFJLENBQUNQLENBQUMsRUFBRUcsQ0FBQyxDQUFDLElBQUlGLENBQUMsQ0FBQ08sT0FBTyxDQUFDTCxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQy9FRCxDQUFDLENBQUNDLENBQUMsQ0FBQyxHQUFHSCxDQUFDLENBQUNHLENBQUMsQ0FBQztFQUNmLElBQUlILENBQUMsSUFBSSxJQUFJLElBQUksT0FBT0ksTUFBTSxDQUFDSyxxQkFBcUIsS0FBSyxVQUFVLEVBQy9ELEtBQUssSUFBSUMsQ0FBQyxHQUFHLENBQUMsRUFBRVAsQ0FBQyxHQUFHQyxNQUFNLENBQUNLLHFCQUFxQixDQUFDVCxDQUFDLENBQUMsRUFBRVUsQ0FBQyxHQUFHUCxDQUFDLENBQUNRLE1BQU0sRUFBRUQsQ0FBQyxFQUFFLEVBQUU7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LEVBTE4sQ0FBQSxTQUFBLEVBQUEsVUFBQSxFQUFBLFVBQUEsQ0FLTCxDQUFXO0VBRVosT0FBTztJQUNMQyxPQUFPLEVBQUVBLE9BQTBDO0lBQ25EQyxRQUFRLEVBQUUsQ0FBQyxDQUFDQSxRQUFRO0lBQ3BCQyxRQUFRLEVBQUVBLFFBQXFCO0lBQy9CQyxRQUFRLEVBQVJBO0VDNUNBLENENkNEO0FBQ0gsQ0FBQyIsImZpbGUiOiJjb21wb25lbnRzL1Byb0Zvcm0vdXRpbHMuanMiLCJzb3VyY2VzQ29udGVudCI6W251bGwsInZhciBfX3Jlc3QgPSAodGhpcyAmJiB0aGlzLl9fcmVzdCkgfHwgZnVuY3Rpb24gKHMsIGUpIHtcbiAgICB2YXIgdCA9IHt9O1xuICAgIGZvciAodmFyIHAgaW4gcykgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzLCBwKSAmJiBlLmluZGV4T2YocCkgPCAwKVxuICAgICAgICB0W3BdID0gc1twXTtcbiAgICBpZiAocyAhPSBudWxsICYmIHR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzID09PSBcImZ1bmN0aW9uXCIpXG4gICAgICAgIGZvciAodmFyIGkgPSAwLCBwID0gT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhzKTsgaSA8IHAubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGlmIChlLmluZGV4T2YocFtpXSkgPCAwICYmIE9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChzLCBwW2ldKSlcbiAgICAgICAgICAgICAgICB0W3BbaV1dID0gc1twW2ldXTtcbiAgICAgICAgfVxuICAgIHJldHVybiB0O1xufTtcbmltcG9ydCB7IERFRkFVTFRfVEVYVCB9IGZyb20gJy4vY29uc3RhbnRzJztcbmNvbnN0IGdldE5leHRTZWVuSWQgPSAoY3R4KSA9PiB7XG4gICAgY29uc3QgY3VycmVudCA9IGN0eC5uZXh0SWQ7XG4gICAgY3R4Lm5leHRJZCArPSAxO1xuICAgIHJldHVybiBjdXJyZW50O1xufTtcbmNvbnN0IHNvcnRPYmplY3RLZXlzID0gKHZhbHVlKSA9PiB7XG4gICAgcmV0dXJuIFJlZmxlY3Qub3duS2V5cyh2YWx1ZSlcbiAgICAgICAgLm1hcCgocmF3S2V5KSA9PiB7XG4gICAgICAgIHZhciBfYTtcbiAgICAgICAgcmV0dXJuICh7XG4gICAgICAgICAgICByYXdLZXksXG4gICAgICAgICAgICBzZXJpYWxpemVkS2V5OiB0eXBlb2YgcmF3S2V5ID09PSAnc3ltYm9sJ1xuICAgICAgICAgICAgICAgID8gYEBAc3ltYm9sOiR7U3RyaW5nKChfYSA9IHJhd0tleS5kZXNjcmlwdGlvbikgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogcmF3S2V5KX1gXG4gICAgICAgICAgICAgICAgOiBTdHJpbmcocmF3S2V5KSxcbiAgICAgICAgfSk7XG4gICAgfSlcbiAgICAgICAgLnNvcnQoKGEsIGIpID0+IGEuc2VyaWFsaXplZEtleS5sb2NhbGVDb21wYXJlKGIuc2VyaWFsaXplZEtleSkpO1xufTtcbmNvbnN0IHNlcmlhbGl6ZU51bWJlciA9ICh2YWx1ZSkgPT4ge1xuICAgIGlmIChOdW1iZXIuaXNOYU4odmFsdWUpKVxuICAgICAgICByZXR1cm4gJ251bWJlcjpOYU4nO1xuICAgIGlmICghTnVtYmVyLmlzRmluaXRlKHZhbHVlKSlcbiAgICAgICAgcmV0dXJuIGBudW1iZXI6JHt2YWx1ZSA+IDAgPyAnSW5maW5pdHknIDogJy1JbmZpbml0eSd9YDtcbiAgICByZXR1cm4gYG51bWJlcjoke1N0cmluZyh2YWx1ZSl9YDtcbn07XG5jb25zdCBzZXJpYWxpemVPYmplY3QgPSAodmFsdWUsIGN0eCkgPT4ge1xuICAgIHZhciBfYSwgX2I7XG4gICAgaWYgKGN0eC5zZWVuLmhhcyh2YWx1ZSkpIHtcbiAgICAgICAgcmV0dXJuIGByZWY6JHtjdHguc2Vlbi5nZXQodmFsdWUpfWA7XG4gICAgfVxuICAgIGNvbnN0IGlkID0gZ2V0TmV4dFNlZW5JZChjdHgpO1xuICAgIGN0eC5zZWVuLnNldCh2YWx1ZSwgaWQpO1xuICAgIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSkge1xuICAgICAgICByZXR1cm4gYGFycmF5Olske3ZhbHVlLm1hcChpdGVtID0+IHNlcmlhbGl6ZVN0YWJsZVZhbHVlKGl0ZW0sIGN0eCkpLmpvaW4oJywnKX1dYDtcbiAgICB9XG4gICAgaWYgKHZhbHVlIGluc3RhbmNlb2YgRGF0ZSkge1xuICAgICAgICByZXR1cm4gYGRhdGU6JHtOdW1iZXIuaXNOYU4odmFsdWUuZ2V0VGltZSgpKSA/ICdJbnZhbGlkIERhdGUnIDogdmFsdWUudG9JU09TdHJpbmcoKX1gO1xuICAgIH1cbiAgICBpZiAodmFsdWUgaW5zdGFuY2VvZiBSZWdFeHApIHtcbiAgICAgICAgcmV0dXJuIGByZWdleHA6JHt2YWx1ZS50b1N0cmluZygpfWA7XG4gICAgfVxuICAgIGlmICh2YWx1ZSBpbnN0YW5jZW9mIFNldCkge1xuICAgICAgICBjb25zdCB2YWx1ZXMgPSBBcnJheS5mcm9tKHZhbHVlLnZhbHVlcygpKVxuICAgICAgICAgICAgLm1hcChpdGVtID0+IHNlcmlhbGl6ZVN0YWJsZVZhbHVlKGl0ZW0sIGN0eCkpXG4gICAgICAgICAgICAuc29ydCgpO1xuICAgICAgICByZXR1cm4gYHNldDp7JHt2YWx1ZXMuam9pbignLCcpfX1gO1xuICAgIH1cbiAgICBpZiAodmFsdWUgaW5zdGFuY2VvZiBNYXApIHtcbiAgICAgICAgY29uc3QgZW50cmllcyA9IEFycmF5LmZyb20odmFsdWUuZW50cmllcygpKVxuICAgICAgICAgICAgLm1hcCgoW2tleSwgaXRlbV0pID0+ICh7XG4gICAgICAgICAgICBrZXk6IHNlcmlhbGl6ZVN0YWJsZVZhbHVlKGtleSwgY3R4KSxcbiAgICAgICAgICAgIHZhbHVlOiBzZXJpYWxpemVTdGFibGVWYWx1ZShpdGVtLCBjdHgpLFxuICAgICAgICB9KSlcbiAgICAgICAgICAgIC5zb3J0KChhLCBiKSA9PiB7XG4gICAgICAgICAgICBpZiAoYS5rZXkgPT09IGIua2V5KVxuICAgICAgICAgICAgICAgIHJldHVybiBhLnZhbHVlLmxvY2FsZUNvbXBhcmUoYi52YWx1ZSk7XG4gICAgICAgICAgICByZXR1cm4gYS5rZXkubG9jYWxlQ29tcGFyZShiLmtleSk7XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gYG1hcDp7JHtlbnRyaWVzLm1hcChlbnRyeSA9PiBgJHtlbnRyeS5rZXl9LT4ke2VudHJ5LnZhbHVlfWApLmpvaW4oJywnKX19YDtcbiAgICB9XG4gICAgY29uc3QgY29uc3RydWN0b3JOYW1lID0gKF9iID0gKF9hID0gdmFsdWUuY29uc3RydWN0b3IpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5uYW1lKSAhPT0gbnVsbCAmJiBfYiAhPT0gdm9pZCAwID8gX2IgOiAnT2JqZWN0JztcbiAgICBjb25zdCBrZXlzID0gc29ydE9iamVjdEtleXModmFsdWUpO1xuICAgIGNvbnN0IHNlcmlhbGl6ZWRQYWlycyA9IGtleXMubWFwKCh7IHJhd0tleSwgc2VyaWFsaXplZEtleSB9KSA9PiB7XG4gICAgICAgIGNvbnN0IG5leHRWYWx1ZSA9IHZhbHVlW3Jhd0tleV07XG4gICAgICAgIHJldHVybiBgJHtzZXJpYWxpemVkS2V5fToke3NlcmlhbGl6ZVN0YWJsZVZhbHVlKG5leHRWYWx1ZSwgY3R4KX1gO1xuICAgIH0pO1xuICAgIHJldHVybiBgb2JqZWN0OiR7Y29uc3RydWN0b3JOYW1lfTp7JHtzZXJpYWxpemVkUGFpcnMuam9pbignLCcpfX1gO1xufTtcbmNvbnN0IHNlcmlhbGl6ZVN0YWJsZVZhbHVlID0gKHZhbHVlLCBjdHgpID0+IHtcbiAgICB2YXIgX2E7XG4gICAgaWYgKHZhbHVlID09PSBudWxsKVxuICAgICAgICByZXR1cm4gJ251bGwnO1xuICAgIHN3aXRjaCAodHlwZW9mIHZhbHVlKSB7XG4gICAgICAgIGNhc2UgJ3VuZGVmaW5lZCc6XG4gICAgICAgICAgICByZXR1cm4gJ3VuZGVmaW5lZCc7XG4gICAgICAgIGNhc2UgJ3N0cmluZyc6XG4gICAgICAgICAgICByZXR1cm4gYHN0cmluZzoke0pTT04uc3RyaW5naWZ5KHZhbHVlKX1gO1xuICAgICAgICBjYXNlICdudW1iZXInOlxuICAgICAgICAgICAgcmV0dXJuIHNlcmlhbGl6ZU51bWJlcih2YWx1ZSk7XG4gICAgICAgIGNhc2UgJ2Jvb2xlYW4nOlxuICAgICAgICAgICAgcmV0dXJuIGBib29sZWFuOiR7dmFsdWUgPyAnMScgOiAnMCd9YDtcbiAgICAgICAgY2FzZSAnYmlnaW50JzpcbiAgICAgICAgICAgIHJldHVybiBgYmlnaW50OiR7U3RyaW5nKHZhbHVlKX1gO1xuICAgICAgICBjYXNlICdzeW1ib2wnOlxuICAgICAgICAgICAgcmV0dXJuIGBzeW1ib2w6JHtTdHJpbmcoKF9hID0gdmFsdWUuZGVzY3JpcHRpb24pICE9PSBudWxsICYmIF9hICE9PSB2b2lkIDAgPyBfYSA6IHZhbHVlKX1gO1xuICAgICAgICBjYXNlICdmdW5jdGlvbic6IHtcbiAgICAgICAgICAgIGNvbnN0IGZuID0gdmFsdWU7XG4gICAgICAgICAgICByZXR1cm4gYGZ1bmN0aW9uOiR7Zm4ubmFtZSB8fCAnYW5vbnltb3VzJ306JHtmbi5sZW5ndGh9OiR7U3RyaW5nKGZuKX1gO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJ29iamVjdCc6XG4gICAgICAgICAgICByZXR1cm4gc2VyaWFsaXplT2JqZWN0KHZhbHVlLCBjdHgpO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgcmV0dXJuIGB1bmtub3duOiR7U3RyaW5nKHZhbHVlKX1gO1xuICAgIH1cbn07XG4vKipcbiAqIFByb2R1Y2VzIGEgZGV0ZXJtaW5pc3RpYywgdHlwZS1hd2FyZSBzdHJpbmcga2V5IGZvciBkZWVwIGNvbXBhcmlzb24uXG4gKiBIYW5kbGVzIG5vbi1KU09OLXNhZmUgdmFsdWVzIChlLmcuIGB1bmRlZmluZWRgLCBgc3ltYm9sYCwgYGZ1bmN0aW9uYCkgYW5kIGNpcmN1bGFyIHJlZmVyZW5jZXMuXG4gKlxuICogQHBhcmFtIHZhbHVlIC0gVGhlIHZhbHVlIHRvIHNlcmlhbGl6ZS5cbiAqIEByZXR1cm5zIEEgc3RhYmxlIHNlcmlhbGl6YXRpb24ga2V5LlxuICovXG5leHBvcnQgY29uc3Qgc3RhYmxlU2VyaWFsaXplID0gKHZhbHVlKSA9PiB7XG4gICAgdHJ5IHtcbiAgICAgICAgcmV0dXJuIHNlcmlhbGl6ZVN0YWJsZVZhbHVlKHZhbHVlLCB7IHNlZW46IG5ldyBXZWFrTWFwKCksIG5leHRJZDogMCB9KTtcbiAgICB9XG4gICAgY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIGNvbnN0IG1lc3NhZ2UgPSBlcnJvciBpbnN0YW5jZW9mIEVycm9yID8gZXJyb3IubWVzc2FnZSA6IFN0cmluZyhlcnJvcik7XG4gICAgICAgIHJldHVybiBgc2VyaWFsaXphdGlvbi1lcnJvcjoke21lc3NhZ2V9YDtcbiAgICB9XG59O1xuLyoqXG4gKiBSZW5kZXJzIGEgYm9vbGVhbiB2YWx1ZSBhcyBsb2NhbGl6ZWQgXCJZZXNcIiAvIFwiTm9cIiB0ZXh0IGZvciByZWFkb25seSBtb2RlLlxuICpcbiAqIEBwYXJhbSB2YWx1ZSAtIFRoZSBmaWVsZCB2YWx1ZS5cbiAqIEByZXR1cm5zIFRoZSBkaXNwbGF5IHN0cmluZy5cbiAqL1xuZXhwb3J0IGNvbnN0IHJlbmRlckJvb2xlYW5SZWFkb25seSA9ICh2YWx1ZSkgPT4gdmFsdWUgPyBERUZBVUxUX1RFWFQueWVzIDogREVGQVVMVF9URVhULm5vO1xuLyoqXG4gKiBSZW5kZXJzIGEgbnVtZXJpYyB2YWx1ZSBhcyBpdHMgc3RyaW5nIHJlcHJlc2VudGF0aW9uLCBvciBhIGRhc2ggZm9yIGVtcHR5IHZhbHVlcy5cbiAqXG4gKiBAcGFyYW0gdmFsdWUgLSBUaGUgZmllbGQgdmFsdWUuXG4gKiBAcmV0dXJucyBUaGUgZGlzcGxheSBzdHJpbmcuXG4gKi9cbmV4cG9ydCBjb25zdCByZW5kZXJOdW1lcmljUmVhZG9ubHkgPSAodmFsdWUpID0+IHZhbHVlID09IG51bGwgfHwgdmFsdWUgPT09ICcnID8gREVGQVVMVF9URVhULmVtcHR5IDogU3RyaW5nKHZhbHVlKTtcbi8qKlxuICogUmVuZGVycyBhIHRleHQgdmFsdWUgYXMtaXMsIG9yIGEgZGFzaCBmb3IgZW1wdHkgdmFsdWVzLlxuICpcbiAqIEBwYXJhbSB2YWx1ZSAtIFRoZSBmaWVsZCB2YWx1ZS5cbiAqIEByZXR1cm5zIFRoZSBkaXNwbGF5IHN0cmluZy5cbiAqL1xuZXhwb3J0IGNvbnN0IHJlbmRlclRleHRSZWFkb25seSA9ICh2YWx1ZSkgPT4gdmFsdWUgIT0gbnVsbCAmJiB2YWx1ZSAhPT0gJycgPyBTdHJpbmcodmFsdWUpIDogREVGQVVMVF9URVhULmVtcHR5O1xuLyoqXG4gKiBGaW5kcyB0aGUgZGlzcGxheSBsYWJlbCBmb3IgYSBnaXZlbiB2YWx1ZSB3aXRoaW4gYW4gb3B0aW9ucyBhcnJheS5cbiAqXG4gKiBAcGFyYW0gdmFsdWUgLSBUaGUgY3VycmVudCBmaWVsZCB2YWx1ZS5cbiAqIEBwYXJhbSBvcHRpb25zIC0gVGhlIGxpc3Qgb2YgYXZhaWxhYmxlIG9wdGlvbnMuXG4gKiBAcGFyYW0gdmFsdWVLZXkgLSBXaGljaCBvcHRpb24gcHJvcGVydHkgdG8gbWF0Y2ggYWdhaW5zdDogYCd2YWx1ZSdgLCBgJ2tleSdgLCBvciBgJ2JvdGgnYC5cbiAqIEByZXR1cm5zIFRoZSBtYXRjaGVkIG9wdGlvbidzIGxhYmVsLCBvciB0aGUgcmF3IHZhbHVlLCBvciBhIGRhc2ggcGxhY2Vob2xkZXIuXG4gKi9cbmV4cG9ydCBjb25zdCBmaW5kT3B0aW9uTGFiZWwgPSAodmFsdWUsIG9wdGlvbnMsIHZhbHVlS2V5ID0gJ3ZhbHVlJykgPT4ge1xuICAgIHZhciBfYSwgX2I7XG4gICAgaWYgKCFBcnJheS5pc0FycmF5KG9wdGlvbnMpKVxuICAgICAgICByZXR1cm4gdmFsdWUgIT09IG51bGwgJiYgdmFsdWUgIT09IHZvaWQgMCA/IHZhbHVlIDogREVGQVVMVF9URVhULmVtcHR5O1xuICAgIGNvbnN0IG1hdGNoZWQgPSBvcHRpb25zLmZpbmQoKGl0ZW0pID0+IHtcbiAgICAgICAgaWYgKHZhbHVlS2V5ID09PSAnYm90aCcpIHtcbiAgICAgICAgICAgIHJldHVybiAoaXRlbSA9PT0gbnVsbCB8fCBpdGVtID09PSB2b2lkIDAgPyB2b2lkIDAgOiBpdGVtLmtleSkgPT09IHZhbHVlIHx8IChpdGVtID09PSBudWxsIHx8IGl0ZW0gPT09IHZvaWQgMCA/IHZvaWQgMCA6IGl0ZW0udmFsdWUpID09PSB2YWx1ZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gKGl0ZW0gPT09IG51bGwgfHwgaXRlbSA9PT0gdm9pZCAwID8gdm9pZCAwIDogaXRlbVt2YWx1ZUtleV0pID09PSB2YWx1ZTtcbiAgICB9KTtcbiAgICByZXR1cm4gKF9iID0gKF9hID0gbWF0Y2hlZCA9PT0gbnVsbCB8fCBtYXRjaGVkID09PSB2b2lkIDAgPyB2b2lkIDAgOiBtYXRjaGVkLmxhYmVsKSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiB2YWx1ZSkgIT09IG51bGwgJiYgX2IgIT09IHZvaWQgMCA/IF9iIDogREVGQVVMVF9URVhULmVtcHR5O1xufTtcbi8qKlxuICogVHlwZSBndWFyZCB0aGF0IGNoZWNrcyB3aGV0aGVyIGEgc3VibWl0dGVyIGNvbmZpZ3VyYXRpb24gaXMgZW5hYmxlZFxuICogKGkuZS4gbm90IGBmYWxzZWAsIGBudWxsYCwgb3IgYHVuZGVmaW5lZGApLlxuICpcbiAqIEBwYXJhbSBzdWJtaXR0ZXIgLSBUaGUgc3VibWl0dGVyIHByb3AgdmFsdWUuXG4gKiBAcmV0dXJucyBgdHJ1ZWAgaWYgdGhlIHN1Ym1pdHRlciBjb25maWcgb2JqZWN0IGlzIHByZXNlbnQuXG4gKi9cbmV4cG9ydCBjb25zdCBpc1N1Ym1pdHRlckVuYWJsZWQgPSAoc3VibWl0dGVyKSA9PiBzdWJtaXR0ZXIgIT09IGZhbHNlICYmIHN1Ym1pdHRlciAhPSBudWxsO1xuLyoqXG4gKiBFeHRyYWN0cyB3ZWxsLWtub3duIGJ1dHRvbiBwcm9wZXJ0aWVzIChgb25DbGlja2AsIGBkaXNhYmxlZGAsIGBjaGlsZHJlbmApXG4gKiBmcm9tIGFuIGljb24tcHJvcHMgY29uZmlndXJhdGlvbiBvYmplY3QsIHJldHVybmluZyB0aGUgcmVtYWluZGVyIGFzIGBkb21Qcm9wc2AuXG4gKlxuICogQHBhcmFtIHByb3BzIC0gVGhlIGljb24vYnV0dG9uIHByb3BzLCBvciBgZmFsc2VgL2B1bmRlZmluZWRgIHRvIHNraXAuXG4gKiBAcmV0dXJucyBBIG5vcm1hbGl6ZWQge0BsaW5rIEV4dHJhY3RlZEJ1dHRvblByb3BzfSBvYmplY3QuXG4gKi9cbmV4cG9ydCBjb25zdCBleHRyYWN0QnV0dG9uUHJvcHMgPSAocHJvcHMpID0+IHtcbiAgICBjb25zdCBidG5Qcm9wcyA9IHByb3BzICYmIHR5cGVvZiBwcm9wcyA9PT0gJ29iamVjdCcgPyBwcm9wcyA6IHt9O1xuICAgIGNvbnN0IHsgb25DbGljaywgZGlzYWJsZWQsIGNoaWxkcmVuIH0gPSBidG5Qcm9wcywgZG9tUHJvcHMgPSBfX3Jlc3QoYnRuUHJvcHMsIFtcIm9uQ2xpY2tcIiwgXCJkaXNhYmxlZFwiLCBcImNoaWxkcmVuXCJdKTtcbiAgICByZXR1cm4ge1xuICAgICAgICBvbkNsaWNrOiBvbkNsaWNrLFxuICAgICAgICBkaXNhYmxlZDogISFkaXNhYmxlZCxcbiAgICAgICAgY2hpbGRyZW46IGNoaWxkcmVuLFxuICAgICAgICBkb21Qcm9wcyxcbiAgICB9O1xufTsiXSwic291cmNlUm9vdCI6Ii4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYyJ9
|