@1money/component-ui 0.0.19 → 0.0.21
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/.claude/settings.local.json +2 -1
- package/AGENTS.md +7 -1
- package/es/components/Alert/Alert.js +5 -6
- package/es/components/Alert/style/Alert.css +1 -1
- package/es/components/Button/Button.js +29 -1
- package/es/components/Button/constants.d.ts +14 -1
- package/es/components/Button/constants.js +23 -3
- package/es/components/Button/interface.d.ts +9 -0
- package/es/components/Cell/Cell.d.ts +5 -0
- package/es/components/Cell/Cell.js +57 -0
- package/es/components/Cell/index.d.ts +4 -0
- package/es/components/Cell/index.js +5 -0
- package/es/components/Cell/interface.d.ts +12 -0
- package/es/components/{Form → Cell}/interface.js +1 -1
- package/es/components/Cell/style/Cell.css +1 -0
- package/es/components/Cell/style/css.js +2 -0
- package/es/components/Cell/style/index.d.ts +1 -0
- package/es/components/Cell/style/index.js +2 -0
- package/es/components/Dialog/Dialog.d.ts +4 -0
- package/es/components/Dialog/Dialog.js +383 -0
- package/es/components/Dialog/constants.d.ts +60 -0
- package/es/components/Dialog/constants.js +57 -0
- package/es/components/Dialog/index.d.ts +4 -0
- package/es/components/Dialog/index.js +5 -0
- package/es/components/{Modal → Dialog}/interface.d.ts +7 -7
- package/es/components/Dialog/interface.js +2 -0
- package/es/components/Dialog/style/Dialog.css +1 -0
- package/es/components/Dialog/style/css.js +2 -0
- package/es/components/Dialog/style/index.d.ts +1 -0
- package/es/components/Dialog/style/index.js +2 -0
- package/es/components/Divider/Divider.js +15 -18
- package/es/components/Divider/constants.d.ts +36 -0
- package/es/components/Divider/constants.js +41 -0
- package/es/components/Divider/interface.d.ts +2 -3
- package/es/components/Drawer/Drawer.js +13 -129
- package/es/components/Drawer/constants.d.ts +8 -5
- package/es/components/Drawer/constants.js +9 -6
- package/es/components/Drawer/hooks/index.d.ts +4 -0
- package/es/components/Drawer/hooks/index.js +5 -0
- package/es/components/Drawer/hooks/useBodyScrollLock.d.ts +1 -0
- package/es/components/Drawer/hooks/useBodyScrollLock.js +29 -0
- package/es/components/Drawer/hooks/useDialogFocus.d.ts +2 -0
- package/es/components/Drawer/hooks/useDialogFocus.js +22 -0
- package/es/components/Drawer/hooks/useDrawerTransition.d.ts +4 -0
- package/es/components/Drawer/hooks/useDrawerTransition.js +57 -0
- package/es/components/Drawer/hooks/useEscapeClose.d.ts +1 -0
- package/es/components/Drawer/hooks/useEscapeClose.js +16 -0
- package/es/components/ProForm/ProForm.js +93 -116
- package/es/components/ProForm/ProFormDependency.js +2 -4
- package/es/components/ProForm/ProFormItem.d.ts +4 -0
- package/es/components/ProForm/ProFormItem.js +213 -0
- package/es/components/ProForm/ProFormList.js +5 -6
- package/es/components/ProForm/Submitter.js +2 -2
- package/es/components/ProForm/context.d.ts +10 -2
- package/es/components/ProForm/context.js +17 -14
- package/es/components/{Form → ProForm/core}/constants.d.ts +1 -1
- package/es/components/ProForm/core/constants.js +18 -0
- package/es/components/ProForm/core/hooks/useForm.js +541 -0
- package/es/components/ProForm/core/hooks/useFormCore.js +347 -0
- package/es/components/ProForm/core/index.d.ts +6 -0
- package/es/components/ProForm/core/index.js +6 -0
- package/es/components/{Form → ProForm/core}/interface.d.ts +21 -60
- package/es/components/ProForm/core/interface.js +2 -0
- package/es/components/ProForm/core/useFormItem.d.ts +20 -0
- package/es/components/ProForm/core/useFormItem.js +121 -0
- package/es/components/ProForm/fields/ProFormFieldSet.js +7 -6
- package/es/components/ProForm/fields/createProFormField.js +76 -151
- package/es/components/ProForm/index.d.ts +13 -6
- package/es/components/ProForm/index.js +21 -9
- package/es/components/ProForm/interface.d.ts +79 -44
- package/es/components/ProForm/layouts/DialogForm.d.ts +3 -0
- package/es/components/ProForm/layouts/DialogForm.js +74 -0
- package/es/components/ProForm/layouts/index.d.ts +1 -1
- package/es/components/ProForm/layouts/index.js +2 -2
- package/es/components/ProForm/style/ProForm.css +1 -1
- package/es/components/Select/Select.js +5 -5
- package/es/components/Select/SelectFieldShell.js +7 -7
- package/es/components/Select/SelectOptionContent.js +5 -5
- package/es/components/Select/constants.d.ts +37 -13
- package/es/components/Select/constants.js +36 -20
- package/es/components/Select/style/Select.css +1 -1
- package/es/components/Switch/Switch.js +7 -7
- package/es/components/Switch/constants.d.ts +23 -9
- package/es/components/Switch/constants.js +26 -11
- package/es/components/Switch/interface.d.ts +2 -2
- package/es/index.css +1 -1
- package/es/index.d.ts +7 -6
- package/es/index.js +4 -4
- package/lib/components/Alert/Alert.js +5 -6
- package/lib/components/Alert/style/Alert.css +1 -1
- package/lib/components/Button/Button.js +29 -1
- package/lib/components/Button/constants.d.ts +14 -1
- package/lib/components/Button/constants.js +23 -3
- package/lib/components/Button/interface.d.ts +9 -0
- package/lib/components/Cell/Cell.d.ts +5 -0
- package/lib/components/Cell/Cell.js +66 -0
- package/lib/components/Cell/index.d.ts +4 -0
- package/lib/components/Cell/index.js +33 -0
- package/lib/components/Cell/interface.d.ts +12 -0
- package/lib/components/{Form → Cell}/interface.js +1 -1
- package/lib/components/Cell/style/Cell.css +1 -0
- package/lib/components/Cell/style/css.js +4 -0
- package/lib/components/Cell/style/index.d.ts +1 -0
- package/lib/components/Cell/style/index.js +4 -0
- package/lib/components/Dialog/Dialog.d.ts +4 -0
- package/lib/components/Dialog/Dialog.js +390 -0
- package/lib/components/Dialog/constants.d.ts +60 -0
- package/lib/components/Dialog/constants.js +64 -0
- package/lib/components/Dialog/index.d.ts +4 -0
- package/lib/components/Dialog/index.js +33 -0
- package/lib/components/{Modal → Dialog}/interface.d.ts +7 -7
- package/lib/components/Dialog/interface.js +6 -0
- package/lib/components/Dialog/style/Dialog.css +1 -0
- package/lib/components/Dialog/style/css.js +4 -0
- package/lib/components/Dialog/style/index.d.ts +1 -0
- package/lib/components/Dialog/style/index.js +4 -0
- package/lib/components/Divider/Divider.js +16 -18
- package/lib/components/Divider/constants.d.ts +36 -0
- package/lib/components/Divider/constants.js +48 -0
- package/lib/components/Divider/interface.d.ts +2 -3
- package/lib/components/Drawer/Drawer.js +14 -130
- package/lib/components/Drawer/constants.d.ts +8 -5
- package/lib/components/Drawer/constants.js +10 -7
- package/lib/components/Drawer/hooks/index.d.ts +4 -0
- package/lib/components/Drawer/hooks/index.js +34 -0
- package/lib/components/Drawer/hooks/useBodyScrollLock.d.ts +1 -0
- package/lib/components/Drawer/hooks/useBodyScrollLock.js +35 -0
- package/lib/components/Drawer/hooks/useDialogFocus.d.ts +2 -0
- package/lib/components/Drawer/hooks/useDialogFocus.js +28 -0
- package/lib/components/Drawer/hooks/useDrawerTransition.d.ts +4 -0
- package/lib/components/Drawer/hooks/useDrawerTransition.js +64 -0
- package/lib/components/Drawer/hooks/useEscapeClose.d.ts +1 -0
- package/lib/components/Drawer/hooks/useEscapeClose.js +22 -0
- package/lib/components/ProForm/ProForm.js +94 -117
- package/lib/components/ProForm/ProFormDependency.js +2 -4
- package/lib/components/ProForm/ProFormItem.d.ts +4 -0
- package/lib/components/ProForm/ProFormItem.js +222 -0
- package/lib/components/ProForm/ProFormList.js +4 -5
- package/lib/components/ProForm/Submitter.js +2 -2
- package/lib/components/ProForm/context.d.ts +10 -2
- package/lib/components/ProForm/context.js +18 -15
- package/lib/components/{Form → ProForm/core}/constants.d.ts +1 -1
- package/lib/components/ProForm/core/constants.js +24 -0
- package/lib/components/ProForm/core/hooks/useForm.js +551 -0
- package/lib/components/ProForm/core/hooks/useFormCore.js +354 -0
- package/lib/components/ProForm/core/index.d.ts +6 -0
- package/lib/components/ProForm/core/index.js +56 -0
- package/lib/components/{Form → ProForm/core}/interface.d.ts +21 -60
- package/lib/components/ProForm/core/interface.js +6 -0
- package/lib/components/ProForm/core/useFormItem.d.ts +20 -0
- package/lib/components/ProForm/core/useFormItem.js +131 -0
- package/lib/components/ProForm/fields/ProFormFieldSet.js +7 -6
- package/lib/components/ProForm/fields/createProFormField.js +76 -151
- package/lib/components/ProForm/index.d.ts +13 -6
- package/lib/components/ProForm/index.js +46 -33
- package/lib/components/ProForm/interface.d.ts +79 -44
- package/lib/components/ProForm/layouts/DialogForm.d.ts +3 -0
- package/lib/components/ProForm/layouts/DialogForm.js +81 -0
- package/lib/components/ProForm/layouts/index.d.ts +1 -1
- package/lib/components/ProForm/layouts/index.js +6 -6
- package/lib/components/ProForm/style/ProForm.css +1 -1
- package/lib/components/Select/Select.js +4 -4
- package/lib/components/Select/SelectFieldShell.js +6 -6
- package/lib/components/Select/SelectOptionContent.js +4 -4
- package/lib/components/Select/constants.d.ts +37 -13
- package/lib/components/Select/constants.js +37 -21
- package/lib/components/Select/style/Select.css +1 -1
- package/lib/components/Switch/Switch.js +6 -6
- package/lib/components/Switch/constants.d.ts +23 -9
- package/lib/components/Switch/constants.js +27 -12
- package/lib/components/Switch/interface.d.ts +2 -2
- package/lib/index.css +1 -1
- package/lib/index.d.ts +7 -6
- package/lib/index.js +69 -63
- package/package.json +11 -6
- package/es/components/Form/Form.d.ts +0 -4
- package/es/components/Form/Form.js +0 -73
- package/es/components/Form/FormItem.d.ts +0 -4
- package/es/components/Form/FormItem.js +0 -183
- package/es/components/Form/constants.js +0 -19
- package/es/components/Form/context.d.ts +0 -5
- package/es/components/Form/context.js +0 -19
- package/es/components/Form/hooks/useForm.js +0 -541
- package/es/components/Form/hooks/useFormCore.js +0 -348
- package/es/components/Form/index.d.ts +0 -10
- package/es/components/Form/index.js +0 -17
- package/es/components/Form/style/Form.css +0 -1
- package/es/components/Form/style/css.js +0 -2
- package/es/components/Form/style/index.d.ts +0 -1
- package/es/components/Form/style/index.js +0 -2
- package/es/components/Modal/Modal.d.ts +0 -4
- package/es/components/Modal/Modal.js +0 -383
- package/es/components/Modal/constants.d.ts +0 -58
- package/es/components/Modal/constants.js +0 -55
- package/es/components/Modal/index.d.ts +0 -4
- package/es/components/Modal/index.js +0 -5
- package/es/components/Modal/interface.js +0 -2
- package/es/components/Modal/style/Modal.css +0 -1
- package/es/components/Modal/style/css.js +0 -2
- package/es/components/Modal/style/index.d.ts +0 -1
- package/es/components/Modal/style/index.js +0 -2
- package/es/components/ProForm/layouts/ModalForm.d.ts +0 -3
- package/es/components/ProForm/layouts/ModalForm.js +0 -74
- package/lib/components/Form/Form.d.ts +0 -4
- package/lib/components/Form/Form.js +0 -80
- package/lib/components/Form/FormItem.d.ts +0 -4
- package/lib/components/Form/FormItem.js +0 -193
- package/lib/components/Form/constants.js +0 -25
- package/lib/components/Form/context.d.ts +0 -5
- package/lib/components/Form/context.js +0 -25
- package/lib/components/Form/hooks/useForm.js +0 -551
- package/lib/components/Form/hooks/useFormCore.js +0 -355
- package/lib/components/Form/index.d.ts +0 -10
- package/lib/components/Form/index.js +0 -83
- package/lib/components/Form/style/Form.css +0 -1
- package/lib/components/Form/style/css.js +0 -4
- package/lib/components/Form/style/index.d.ts +0 -1
- package/lib/components/Form/style/index.js +0 -4
- package/lib/components/Modal/Modal.d.ts +0 -4
- package/lib/components/Modal/Modal.js +0 -390
- package/lib/components/Modal/constants.d.ts +0 -58
- package/lib/components/Modal/constants.js +0 -62
- package/lib/components/Modal/index.d.ts +0 -4
- package/lib/components/Modal/index.js +0 -33
- package/lib/components/Modal/interface.js +0 -6
- package/lib/components/Modal/style/Modal.css +0 -1
- package/lib/components/Modal/style/css.js +0 -4
- package/lib/components/Modal/style/index.d.ts +0 -1
- package/lib/components/Modal/style/index.js +0 -4
- package/lib/components/ProForm/layouts/ModalForm.d.ts +0 -3
- package/lib/components/ProForm/layouts/ModalForm.js +0 -81
- /package/es/components/{Form → ProForm/core}/hooks/useForm.d.ts +0 -0
- /package/es/components/{Form → ProForm/core}/hooks/useFormCore.d.ts +0 -0
- /package/lib/components/{Form → ProForm/core}/hooks/useForm.d.ts +0 -0
- /package/lib/components/{Form → ProForm/core}/hooks/useFormCore.d.ts +0 -0
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { useEffect } from 'react';
|
|
2
|
+
var scrollLockCount = 0;
|
|
3
|
+
var setBodyOverflow = function setBodyOverflow(value) {
|
|
4
|
+
if (typeof document === 'undefined') return;
|
|
5
|
+
document.body.style.overflow = value;
|
|
6
|
+
};
|
|
7
|
+
var lockBodyScroll = function lockBodyScroll() {
|
|
8
|
+
scrollLockCount += 1;
|
|
9
|
+
setBodyOverflow('hidden');
|
|
10
|
+
};
|
|
11
|
+
var unlockBodyScroll = function unlockBodyScroll() {
|
|
12
|
+
scrollLockCount = Math.max(0, scrollLockCount - 1);
|
|
13
|
+
if (scrollLockCount !== 0) return;
|
|
14
|
+
window.requestAnimationFrame(function () {
|
|
15
|
+
if (scrollLockCount === 0) {
|
|
16
|
+
setBodyOverflow('');
|
|
17
|
+
}
|
|
18
|
+
});
|
|
19
|
+
};
|
|
20
|
+
export var useBodyScrollLock = function useBodyScrollLock(locked) {
|
|
21
|
+
useEffect(function () {
|
|
22
|
+
if (!locked) return undefined;
|
|
23
|
+
lockBodyScroll();
|
|
24
|
+
return function () {
|
|
25
|
+
unlockBodyScroll();
|
|
26
|
+
};
|
|
27
|
+
}, [locked]);
|
|
28
|
+
};
|
|
29
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvRHJhd2VyL3NyYy9jb21wb25lbnRzL0RyYXdlci9ob29rcy91c2VCb2R5U2Nyb2xsTG9jay50cyJdLCJuYW1lcyI6WyJ1c2VFZmZlY3QiLCJzY3JvbGxMb2NrQ291bnQiLCJzZXRCb2R5T3ZlcmZsb3ciLCJ2YWx1ZSIsImRvY3VtZW50IiwiYm9keSIsInN0eWxlIiwib3ZlcmZsb3ciLCJsb2NrQm9keVNjcm9sbCIsInVubG9ja0JvZHlTY3JvbGwiLCJNYXRoIiwibWF4Iiwid2luZG93IiwicmVxdWVzdEFuaW1hdGlvbkZyYW1lIiwidXNlQm9keVNjcm9sbExvY2siLCJsb2NrZWQiLCJ1bmRlZmluZWQiXSwibWFwcGluZ3MiOiJBQUFBLFNBQVNBLFNBQVMsUUFBUSxPQUFPO0FBRWpDLElBQUlDLGVBQWUsR0FBRyxDQUFDO0FBRXZCLElBQU1DLGVBQWUsR0FBRyxTQUFsQkEsZUFBZUEsQ0FBSUMsS0FBYSxFQUFJO0VBQ3hDLElBQUksT0FBT0MsUUFBUSxLQUFLLFdBQVcsRUFBRTtFQUNyQ0EsUUFBUSxDQUFDQyxJQUFJLENBQUNDLEtBQUssQ0FBQ0MsUUFBUSxHQUFHSixLQUFLO0FBQ3RDLENBQUM7QUFFRCxJQUFNSyxjQUFjLEdBQUcsU0FBakJBLGNBQWNBLENBQUEsRUFBUTtFQUMxQlAsZUFBZSxJQUFJLENBQUM7RUFDcEJDLGVBQWUsQ0FBQyxRQUFRLENBQUM7QUFDM0IsQ0FBQztBQUVELElBQU1PLGdCQUFnQixHQUFHLFNBQW5CQSxnQkFBZ0JBLENBQUEsRUFBUTtFQUM1QlIsZUFBZSxHQUFHUyxJQUFJLENBQUNDLEdBQUcsQ0FBQyxDQUFDLEVBQUVWLGVBQWUsR0FBRyxDQUFDLENBQUM7RUFFbEQsSUFBSUEsZUFBZSxLQUFLLENBQUMsRUFBRTtFQUUzQlcsTUFBTSxDQUFDQyxxQkFBcUIsQ0FBQyxZQUFLO0lBQ2hDLElBQUlaLGVBQWUsS0FBSyxDQUFDLEVBQUU7TUFDekJDLGVBQWUsQ0FBQyxFQUFFLENBQUM7SUFDckI7RUFDRixDQUFDLENBQUM7QUFDSixDQUFDO0FBRUQsT0FBTyxJQUFNWSxpQkFBaUIsR0FBRyxTQUFwQkEsaUJBQWlCQSxDQUFJQyxNQUFlLEVBQUk7RUFDbkRmLFNBQVMsQ0FBQyxZQUFLO0lBQ2IsSUFBSSxDQUFDZSxNQUFNLEVBQUUsT0FBT0MsU0FBUztJQUU3QlIsY0FBYyxDQUFBLENBQUU7SUFFaEIsT0FBTyxZQUFLO01BQ1ZDLGdCQUFnQixDQUFBLENBQUU7SUFDcEIsQ0FBQztFQUNILENBQUMsRUFBRSxDQUFDTSxNQUFNLENBQUMsQ0FBQztBQUNkLENBQUMiLCJmaWxlIjoiY29tcG9uZW50cy9EcmF3ZXIvaG9va3MvdXNlQm9keVNjcm9sbExvY2suanMiLCJzb3VyY2VzQ29udGVudCI6W251bGxdLCJzb3VyY2VSb290IjoiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjIn0=
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { useEffect, useRef } from 'react';
|
|
2
|
+
export var useDialogFocus = function useDialogFocus(active, dialogRef) {
|
|
3
|
+
var previousActiveElementRef = useRef(null);
|
|
4
|
+
useEffect(function () {
|
|
5
|
+
if (!active || typeof document === 'undefined') return undefined;
|
|
6
|
+
previousActiveElementRef.current = document.activeElement instanceof HTMLElement ? document.activeElement : null;
|
|
7
|
+
var frame = window.requestAnimationFrame(function () {
|
|
8
|
+
var _a;
|
|
9
|
+
(_a = dialogRef.current) === null || _a === void 0 ? void 0 : _a.focus();
|
|
10
|
+
});
|
|
11
|
+
return function () {
|
|
12
|
+
window.cancelAnimationFrame(frame);
|
|
13
|
+
};
|
|
14
|
+
}, [active, dialogRef]);
|
|
15
|
+
useEffect(function () {
|
|
16
|
+
var _a, _b;
|
|
17
|
+
if (active) return;
|
|
18
|
+
(_b = (_a = previousActiveElementRef.current) === null || _a === void 0 ? void 0 : _a.focus) === null || _b === void 0 ? void 0 : _b.call(_a);
|
|
19
|
+
previousActiveElementRef.current = null;
|
|
20
|
+
}, [active]);
|
|
21
|
+
};
|
|
22
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvRHJhd2VyL3NyYy9jb21wb25lbnRzL0RyYXdlci9ob29rcy91c2VEaWFsb2dGb2N1cy50cyIsImNvbXBvbmVudHMvRHJhd2VyL2hvb2tzL3VzZURpYWxvZ0ZvY3VzLmpzIl0sIm5hbWVzIjpbInVzZUVmZmVjdCIsInVzZVJlZiIsInVzZURpYWxvZ0ZvY3VzIiwiYWN0aXZlIiwiZGlhbG9nUmVmIiwicHJldmlvdXNBY3RpdmVFbGVtZW50UmVmIiwiZG9jdW1lbnQiLCJ1bmRlZmluZWQiLCJjdXJyZW50IiwiYWN0aXZlRWxlbWVudCIsIkhUTUxFbGVtZW50IiwiZnJhbWUiLCJ3aW5kb3ciLCJyZXF1ZXN0QW5pbWF0aW9uRnJhbWUiLCJfYSIsImZvY3VzIiwiY2FuY2VsQW5pbWF0aW9uRnJhbWUiLCJfYiIsImNhbGwiXSwibWFwcGluZ3MiOiJBQUFBLFNBQVNBLFNBQVMsRUFBRUMsTUFBTSxRQUFRLE9BQU87QUFHekMsT0FBTyxJQUFNQyxjQUFjLEdBQUcsU0FBakJBLGNBQWNBLENBQ3pCQyxNQUFlLEVBQ2ZDLFNBQTJDLEVBQ3pDO0VBQ0YsSUFBTUMsd0JBQXdCLEdBQUdKLE1BQU0sQ0FBcUIsSUFBSSxDQUFDO0VBRWpFRCxTQUFTLENBQUMsWUFBSztJQUNiLElBQUksQ0FBQ0csTUFBTSxJQUFJLE9BQU9HLFFBQVEsS0FBSyxXQUFXLEVBQUUsT0FBT0MsU0FBUztJQUVoRUYsd0JBQXdCLENBQUNHLE9BQU8sR0FDOUJGLFFBQVEsQ0FBQ0csYUFBYSxZQUFZQyxXQUFXLEdBQUdKLFFBQVEsQ0FBQ0csYUFBYSxHQUFHLElBQUk7SUFFL0UsSUFBTUUsS0FBSyxHQUFHQyxNQUFNLENBQUNDLHFCQUFxQixDQUFDLFlBQUs7TUNOeEMsSUFBSUMsRUFBRTtNRE9aLENBQUFBLEVBQUEsR0FBQVYsU0FBUyxDQUFDSSxPQUFPLE1BQUEsSUFBQSxJQUFBTSxFQUFBLEtBQUEsS0FBQSxDQUFBLEdBQUEsS0FBQSxDQUFBLEdBQUFBLEVBQUEsQ0FBRUMsS0FBSyxDQUFBLENBQUU7SUFDNUIsQ0FBQyxDQUFDO0lBRUYsT0FBTyxZQUFLO01BQ1ZILE1BQU0sQ0FBQ0ksb0JBQW9CLENBQUNMLEtBQUssQ0FBQztJQUNwQyxDQUFDO0VBQ0gsQ0FBQyxFQUFFLENBQUNSLE1BQU0sRUFBRUMsU0FBUyxDQUFDLENBQUM7RUFFdkJKLFNBQVMsQ0FBQyxZQUFLO0lDUFQsSUFBSWMsRUFBRSxFQUFFRyxFQUFFO0lEUWQsSUFBSWQsTUFBTSxFQUFFO0lBRVosQ0FBQWMsRUFBQSxHQUFBLENBQUFILEVBQUEsR0FBQVQsd0JBQXdCLENBQUNHLE9BQU8sTUFBQSxJQUFBLElBQUFNLEVBQUEsS0FBQSxLQUFBLENBQUEsR0FBQSxLQUFBLENBQUEsR0FBQUEsRUFBQSxDQUFFQyxLQUFLLE1BQUEsSUFBQSxJQUFBRSxFQUFBLEtBQUEsS0FBQSxDQUFBLEdBQUEsS0FBQSxDQUFBLEdBQUFBLEVBQUEsQ0FBQUMsSUFBQSxDQUFBSixFQUFBLENBQUk7SUFDM0NULHdCQUF3QixDQUFDRyxPQUFPLEdBQUcsSUFBSTtFQUN6QyxDQUFDLEVBQUUsQ0FBQ0wsTUFBTSxDQUFDLENBQUM7QUFDZCxDQUFDIiwiZmlsZSI6ImNvbXBvbmVudHMvRHJhd2VyL2hvb2tzL3VzZURpYWxvZ0ZvY3VzLmpzIiwic291cmNlc0NvbnRlbnQiOltudWxsLCJpbXBvcnQgeyB1c2VFZmZlY3QsIHVzZVJlZiB9IGZyb20gJ3JlYWN0JztcbmV4cG9ydCBjb25zdCB1c2VEaWFsb2dGb2N1cyA9IChhY3RpdmUsIGRpYWxvZ1JlZikgPT4ge1xuICAgIGNvbnN0IHByZXZpb3VzQWN0aXZlRWxlbWVudFJlZiA9IHVzZVJlZihudWxsKTtcbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICBpZiAoIWFjdGl2ZSB8fCB0eXBlb2YgZG9jdW1lbnQgPT09ICd1bmRlZmluZWQnKVxuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgcHJldmlvdXNBY3RpdmVFbGVtZW50UmVmLmN1cnJlbnQgPVxuICAgICAgICAgICAgZG9jdW1lbnQuYWN0aXZlRWxlbWVudCBpbnN0YW5jZW9mIEhUTUxFbGVtZW50ID8gZG9jdW1lbnQuYWN0aXZlRWxlbWVudCA6IG51bGw7XG4gICAgICAgIGNvbnN0IGZyYW1lID0gd2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7XG4gICAgICAgICAgICB2YXIgX2E7XG4gICAgICAgICAgICAoX2EgPSBkaWFsb2dSZWYuY3VycmVudCkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmZvY3VzKCk7XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgICAgICAgd2luZG93LmNhbmNlbEFuaW1hdGlvbkZyYW1lKGZyYW1lKTtcbiAgICAgICAgfTtcbiAgICB9LCBbYWN0aXZlLCBkaWFsb2dSZWZdKTtcbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICB2YXIgX2EsIF9iO1xuICAgICAgICBpZiAoYWN0aXZlKVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAoX2IgPSAoX2EgPSBwcmV2aW91c0FjdGl2ZUVsZW1lbnRSZWYuY3VycmVudCkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmZvY3VzKSA9PT0gbnVsbCB8fCBfYiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2IuY2FsbChfYSk7XG4gICAgICAgIHByZXZpb3VzQWN0aXZlRWxlbWVudFJlZi5jdXJyZW50ID0gbnVsbDtcbiAgICB9LCBbYWN0aXZlXSk7XG59OyJdLCJzb3VyY2VSb290IjoiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjIn0=
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
|
|
2
|
+
import { useEffect, useRef, useState } from 'react';
|
|
3
|
+
import { DRAWER_PHASES } from '../constants';
|
|
4
|
+
var clearTimer = function clearTimer(timerRef) {
|
|
5
|
+
if (timerRef.current === null) return;
|
|
6
|
+
window.clearTimeout(timerRef.current);
|
|
7
|
+
timerRef.current = null;
|
|
8
|
+
};
|
|
9
|
+
var clearFrame = function clearFrame(frameRef) {
|
|
10
|
+
if (frameRef.current === null) return;
|
|
11
|
+
window.cancelAnimationFrame(frameRef.current);
|
|
12
|
+
frameRef.current = null;
|
|
13
|
+
};
|
|
14
|
+
export var useDrawerTransition = function useDrawerTransition(open, closeDelay) {
|
|
15
|
+
var _useState = useState(open ? DRAWER_PHASES.open : DRAWER_PHASES.closed),
|
|
16
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
17
|
+
phase = _useState2[0],
|
|
18
|
+
setPhase = _useState2[1];
|
|
19
|
+
var closeTimerRef = useRef(null);
|
|
20
|
+
var openFrameRef = useRef(null);
|
|
21
|
+
useEffect(function () {
|
|
22
|
+
return function () {
|
|
23
|
+
clearTimer(closeTimerRef);
|
|
24
|
+
clearFrame(openFrameRef);
|
|
25
|
+
};
|
|
26
|
+
}, []);
|
|
27
|
+
useEffect(function () {
|
|
28
|
+
if (open) {
|
|
29
|
+
clearTimer(closeTimerRef);
|
|
30
|
+
if (phase === DRAWER_PHASES.open || phase === DRAWER_PHASES.opening) return;
|
|
31
|
+
setPhase(DRAWER_PHASES.opening);
|
|
32
|
+
return;
|
|
33
|
+
}
|
|
34
|
+
if (phase === DRAWER_PHASES.closed || phase === DRAWER_PHASES.closing) return;
|
|
35
|
+
clearFrame(openFrameRef);
|
|
36
|
+
setPhase(DRAWER_PHASES.closing);
|
|
37
|
+
closeTimerRef.current = window.setTimeout(function () {
|
|
38
|
+
setPhase(DRAWER_PHASES.closed);
|
|
39
|
+
closeTimerRef.current = null;
|
|
40
|
+
}, closeDelay);
|
|
41
|
+
}, [closeDelay, open, phase]);
|
|
42
|
+
useEffect(function () {
|
|
43
|
+
if (phase !== DRAWER_PHASES.opening) return undefined;
|
|
44
|
+
openFrameRef.current = window.requestAnimationFrame(function () {
|
|
45
|
+
setPhase(DRAWER_PHASES.open);
|
|
46
|
+
openFrameRef.current = null;
|
|
47
|
+
});
|
|
48
|
+
return function () {
|
|
49
|
+
clearFrame(openFrameRef);
|
|
50
|
+
};
|
|
51
|
+
}, [phase]);
|
|
52
|
+
return {
|
|
53
|
+
mounted: phase !== DRAWER_PHASES.closed,
|
|
54
|
+
open: phase === DRAWER_PHASES.open
|
|
55
|
+
};
|
|
56
|
+
};
|
|
57
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvRHJhd2VyL3NyYy9jb21wb25lbnRzL0RyYXdlci9ob29rcy91c2VEcmF3ZXJUcmFuc2l0aW9uLnRzIiwiY29tcG9uZW50cy9EcmF3ZXIvaG9va3MvdXNlRHJhd2VyVHJhbnNpdGlvbi5qcyJdLCJuYW1lcyI6WyJ1c2VFZmZlY3QiLCJ1c2VSZWYiLCJ1c2VTdGF0ZSIsIkRSQVdFUl9QSEFTRVMiLCJjbGVhclRpbWVyIiwidGltZXJSZWYiLCJjdXJyZW50Iiwid2luZG93IiwiY2xlYXJUaW1lb3V0IiwiY2xlYXJGcmFtZSIsImZyYW1lUmVmIiwiY2FuY2VsQW5pbWF0aW9uRnJhbWUiLCJ1c2VEcmF3ZXJUcmFuc2l0aW9uIiwib3BlbiIsImNsb3NlRGVsYXkiLCJfdXNlU3RhdGUiLCJjbG9zZWQiLCJfdXNlU3RhdGUyIiwiX3NsaWNlZFRvQXJyYXkiLCJwaGFzZSIsInNldFBoYXNlIiwiY2xvc2VUaW1lclJlZiIsIm9wZW5GcmFtZVJlZiIsIm9wZW5pbmciLCJjbG9zaW5nIiwic2V0VGltZW91dCIsInVuZGVmaW5lZCIsInJlcXVlc3RBbmltYXRpb25GcmFtZSIsIm1vdW50ZWQiXSwibWFwcGluZ3MiOiI7QUFBQSxTQUFTQSxTQUFTLEVBQUVDLE1BQU0sRUFBRUMsUUFBUSxRQUFRLE9BQU87QUFFbkQsU0FBU0MsYUFBYSxRQUFRLGNBQWM7QUFJNUMsSUFBTUMsVUFBVSxHQUFHLFNBQWJBLFVBQVVBLENBQUlDLFFBQWtDLEVBQUk7RUFDeEQsSUFBSUEsUUFBUSxDQUFDQyxPQUFPLEtBQUssSUFBSSxFQUFFO0VBRS9CQyxNQUFNLENBQUNDLFlBQVksQ0FBQ0gsUUFBUSxDQUFDQyxPQUFPLENBQUM7RUFDckNELFFBQVEsQ0FBQ0MsT0FBTyxHQUFHLElBQUk7QUFDekIsQ0FBQztBQUVELElBQU1HLFVBQVUsR0FBRyxTQUFiQSxVQUFVQSxDQUFJQyxRQUFrQyxFQUFJO0VBQ3hELElBQUlBLFFBQVEsQ0FBQ0osT0FBTyxLQUFLLElBQUksRUFBRTtFQUUvQkMsTUFBTSxDQUFDSSxvQkFBb0IsQ0FBQ0QsUUFBUSxDQUFDSixPQUFPLENBQUM7RUFDN0NJLFFBQVEsQ0FBQ0osT0FBTyxHQUFHLElBQUk7QUFDekIsQ0FBQztBQUVELE9BQU8sSUFBTU0sbUJBQW1CLEdBQUcsU0FBdEJBLG1CQUFtQkEsQ0FBSUMsSUFBYSxFQUFFQyxVQUFrQixFQUFJO0VBQ3ZFLElBQUFDLFNBQUEsR0FBMEJiLFFBQVEsQ0FDaENXLElBQUksR0FBR1YsYUFBYSxDQUFDVSxJQUFJLEdBQUdWLGFBQWEsQ0FBQ2EsTUFBTSxDQUNqRDtJQUFBQyxVQUFBLEdBQUFDLGNBQUEsQ0FBQUgsU0FBQTtJQUZNSSxLQUFLLEdBQUFGLFVBQUE7SUFBRUcsUUFBUSxHQUFBSCxVQUFBO0VBR3RCLElBQU1JLGFBQWEsR0FBR3BCLE1BQU0sQ0FBZ0IsSUFBSSxDQUFDO0VBQ2pELElBQU1xQixZQUFZLEdBQUdyQixNQUFNLENBQWdCLElBQUksQ0FBQztFQUVoREQsU0FBUyxDQUFDLFlBQUs7SUFDYixPQUFPLFlBQUs7TUFDVkksVUFBVSxDQUFDaUIsYUFBYSxDQUFDO01BQ3pCWixVQUFVLENBQUNhLFlBQVksQ0FBQztJQUMxQixDQUFDO0VBQ0gsQ0FBQyxFQUFFLEVBQUUsQ0FBQztFQUVOdEIsU0FBUyxDQUFDLFlBQUs7SUFDYixJQUFJYSxJQUFJLEVBQUU7TUFDUlQsVUFBVSxDQUFDaUIsYUFBYSxDQUFDO01BRXpCLElBQUlGLEtBQUssS0FBS2hCLGFBQWEsQ0FBQ1UsSUFBSSxJQUFJTSxLQUFLLEtBQUtoQixhQUFhLENBQUNvQixPQUFPLEVBQUU7TUFFckVILFFBQVEsQ0FBQ2pCLGFBQWEsQ0FBQ29CLE9BQU8sQ0FBQztNQUMvQjtJQUNGO0lBRUEsSUFBSUosS0FBSyxLQUFLaEIsYUFBYSxDQUFDYSxNQUFNLElBQUlHLEtBQUssS0FBS2hCLGFBQWEsQ0FBQ3FCLE9BQU8sRUFBRTtJQUV2RWYsVUFBVSxDQUFDYSxZQUFZLENBQUM7SUFDeEJGLFFBQVEsQ0FBQ2pCLGFBQWEsQ0FBQ3FCLE9BQU8sQ0FBQztJQUMvQkgsYUFBYSxDQUFDZixPQUFPLEdBQUdDLE1BQU0sQ0FBQ2tCLFVBQVUsQ0FBQyxZQUFLO01BQzdDTCxRQUFRLENBQUNqQixhQUFhLENBQUNhLE1BQU0sQ0FBQztNQUM5QkssYUFBYSxDQUFDZixPQUFPLEdBQUcsSUFBSTtJQUM5QixDQUFDLEVBQUVRLFVBQVUsQ0FBQztFQUNoQixDQUFDLEVBQUUsQ0FBQ0EsVUFBVSxFQUFFRCxJQUFJLEVBQUVNLEtBQUssQ0FBQyxDQUFDO0VBRTdCbkIsU0FBUyxDQUFDLFlBQUs7SUFDYixJQUFJbUIsS0FBSyxLQUFLaEIsYUFBYSxDQUFDb0IsT0FBTyxFQUFFLE9BQU9HLFNBQVM7SUFFckRKLFlBQVksQ0FBQ2hCLE9BQU8sR0FBR0MsTUFBTSxDQUFDb0IscUJBQXFCLENBQUMsWUFBSztNQUN2RFAsUUFBUSxDQUFDakIsYUFBYSxDQUFDVSxJQUFJLENBQUM7TUFDNUJTLFlBQVksQ0FBQ2hCLE9BQU8sR0FBRyxJQUFJO0lBQzdCLENBQUMsQ0FBQztJQUVGLE9BQU8sWUFBSztNQUNWRyxVQUFVLENBQUNhLFlBQVksQ0FBQztJQUMxQixDQUFDO0VBQ0gsQ0FBQyxFQUFFLENBQUNILEtBQUssQ0FBQyxDQUFDO0VBRVgsT0FBTztJQUNMUyxPQUFPLEVBQUVULEtBQUssS0FBS2hCLGFBQWEsQ0FBQ2EsTUFBTTtJQUN2Q0gsSUFBSSxFQUFFTSxLQUFLLEtBQUtoQixhQUFhLENBQUNVO0VDZDlCLENEZUQ7QUFDSCxDQUFDIiwiZmlsZSI6ImNvbXBvbmVudHMvRHJhd2VyL2hvb2tzL3VzZURyYXdlclRyYW5zaXRpb24uanMiLCJzb3VyY2VzQ29udGVudCI6W251bGwsImltcG9ydCB7IHVzZUVmZmVjdCwgdXNlUmVmLCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IERSQVdFUl9QSEFTRVMgfSBmcm9tICcuLi9jb25zdGFudHMnO1xuY29uc3QgY2xlYXJUaW1lciA9ICh0aW1lclJlZikgPT4ge1xuICAgIGlmICh0aW1lclJlZi5jdXJyZW50ID09PSBudWxsKVxuICAgICAgICByZXR1cm47XG4gICAgd2luZG93LmNsZWFyVGltZW91dCh0aW1lclJlZi5jdXJyZW50KTtcbiAgICB0aW1lclJlZi5jdXJyZW50ID0gbnVsbDtcbn07XG5jb25zdCBjbGVhckZyYW1lID0gKGZyYW1lUmVmKSA9PiB7XG4gICAgaWYgKGZyYW1lUmVmLmN1cnJlbnQgPT09IG51bGwpXG4gICAgICAgIHJldHVybjtcbiAgICB3aW5kb3cuY2FuY2VsQW5pbWF0aW9uRnJhbWUoZnJhbWVSZWYuY3VycmVudCk7XG4gICAgZnJhbWVSZWYuY3VycmVudCA9IG51bGw7XG59O1xuZXhwb3J0IGNvbnN0IHVzZURyYXdlclRyYW5zaXRpb24gPSAob3BlbiwgY2xvc2VEZWxheSkgPT4ge1xuICAgIGNvbnN0IFtwaGFzZSwgc2V0UGhhc2VdID0gdXNlU3RhdGUob3BlbiA/IERSQVdFUl9QSEFTRVMub3BlbiA6IERSQVdFUl9QSEFTRVMuY2xvc2VkKTtcbiAgICBjb25zdCBjbG9zZVRpbWVyUmVmID0gdXNlUmVmKG51bGwpO1xuICAgIGNvbnN0IG9wZW5GcmFtZVJlZiA9IHVzZVJlZihudWxsKTtcbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgICAgICAgY2xlYXJUaW1lcihjbG9zZVRpbWVyUmVmKTtcbiAgICAgICAgICAgIGNsZWFyRnJhbWUob3BlbkZyYW1lUmVmKTtcbiAgICAgICAgfTtcbiAgICB9LCBbXSk7XG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgaWYgKG9wZW4pIHtcbiAgICAgICAgICAgIGNsZWFyVGltZXIoY2xvc2VUaW1lclJlZik7XG4gICAgICAgICAgICBpZiAocGhhc2UgPT09IERSQVdFUl9QSEFTRVMub3BlbiB8fCBwaGFzZSA9PT0gRFJBV0VSX1BIQVNFUy5vcGVuaW5nKVxuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIHNldFBoYXNlKERSQVdFUl9QSEFTRVMub3BlbmluZyk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHBoYXNlID09PSBEUkFXRVJfUEhBU0VTLmNsb3NlZCB8fCBwaGFzZSA9PT0gRFJBV0VSX1BIQVNFUy5jbG9zaW5nKVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICBjbGVhckZyYW1lKG9wZW5GcmFtZVJlZik7XG4gICAgICAgIHNldFBoYXNlKERSQVdFUl9QSEFTRVMuY2xvc2luZyk7XG4gICAgICAgIGNsb3NlVGltZXJSZWYuY3VycmVudCA9IHdpbmRvdy5zZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIHNldFBoYXNlKERSQVdFUl9QSEFTRVMuY2xvc2VkKTtcbiAgICAgICAgICAgIGNsb3NlVGltZXJSZWYuY3VycmVudCA9IG51bGw7XG4gICAgICAgIH0sIGNsb3NlRGVsYXkpO1xuICAgIH0sIFtjbG9zZURlbGF5LCBvcGVuLCBwaGFzZV0pO1xuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIGlmIChwaGFzZSAhPT0gRFJBV0VSX1BIQVNFUy5vcGVuaW5nKVxuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgb3BlbkZyYW1lUmVmLmN1cnJlbnQgPSB3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHtcbiAgICAgICAgICAgIHNldFBoYXNlKERSQVdFUl9QSEFTRVMub3Blbik7XG4gICAgICAgICAgICBvcGVuRnJhbWVSZWYuY3VycmVudCA9IG51bGw7XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgICAgICAgY2xlYXJGcmFtZShvcGVuRnJhbWVSZWYpO1xuICAgICAgICB9O1xuICAgIH0sIFtwaGFzZV0pO1xuICAgIHJldHVybiB7XG4gICAgICAgIG1vdW50ZWQ6IHBoYXNlICE9PSBEUkFXRVJfUEhBU0VTLmNsb3NlZCxcbiAgICAgICAgb3BlbjogcGhhc2UgPT09IERSQVdFUl9QSEFTRVMub3BlbixcbiAgICB9O1xufTsiXSwic291cmNlUm9vdCI6Ii4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYyJ9
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const useEscapeClose: (enabled: boolean, onClose: (() => void) | undefined) => void;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { useEffect } from 'react';
|
|
2
|
+
export var useEscapeClose = function useEscapeClose(enabled, onClose) {
|
|
3
|
+
useEffect(function () {
|
|
4
|
+
if (!enabled || typeof document === 'undefined') return undefined;
|
|
5
|
+
var handleKeyDown = function handleKeyDown(event) {
|
|
6
|
+
if (event.key !== 'Escape') return;
|
|
7
|
+
event.preventDefault();
|
|
8
|
+
onClose === null || onClose === void 0 ? void 0 : onClose();
|
|
9
|
+
};
|
|
10
|
+
document.addEventListener('keydown', handleKeyDown);
|
|
11
|
+
return function () {
|
|
12
|
+
document.removeEventListener('keydown', handleKeyDown);
|
|
13
|
+
};
|
|
14
|
+
}, [enabled, onClose]);
|
|
15
|
+
};
|
|
16
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvRHJhd2VyL3NyYy9jb21wb25lbnRzL0RyYXdlci9ob29rcy91c2VFc2NhcGVDbG9zZS50cyJdLCJuYW1lcyI6WyJ1c2VFZmZlY3QiLCJ1c2VFc2NhcGVDbG9zZSIsImVuYWJsZWQiLCJvbkNsb3NlIiwiZG9jdW1lbnQiLCJ1bmRlZmluZWQiLCJoYW5kbGVLZXlEb3duIiwiZXZlbnQiLCJrZXkiLCJwcmV2ZW50RGVmYXVsdCIsImFkZEV2ZW50TGlzdGVuZXIiLCJyZW1vdmVFdmVudExpc3RlbmVyIl0sIm1hcHBpbmdzIjoiQUFBQSxTQUFTQSxTQUFTLFFBQVEsT0FBTztBQUVqQyxPQUFPLElBQU1DLGNBQWMsR0FBRyxTQUFqQkEsY0FBY0EsQ0FBSUMsT0FBZ0IsRUFBRUMsT0FBaUMsRUFBSTtFQUNwRkgsU0FBUyxDQUFDLFlBQUs7SUFDYixJQUFJLENBQUNFLE9BQU8sSUFBSSxPQUFPRSxRQUFRLEtBQUssV0FBVyxFQUFFLE9BQU9DLFNBQVM7SUFFakUsSUFBTUMsYUFBYSxHQUFHLFNBQWhCQSxhQUFhQSxDQUFJQyxLQUFvQixFQUFJO01BQzdDLElBQUlBLEtBQUssQ0FBQ0MsR0FBRyxLQUFLLFFBQVEsRUFBRTtNQUU1QkQsS0FBSyxDQUFDRSxjQUFjLENBQUEsQ0FBRTtNQUN0Qk4sT0FBTyxLQUFBLElBQUEsSUFBUEEsT0FBTyxLQUFBLEtBQUEsQ0FBQSxHQUFBLEtBQUEsQ0FBQSxHQUFQQSxPQUFPLENBQUEsQ0FBSTtJQUNiLENBQUM7SUFFREMsUUFBUSxDQUFDTSxnQkFBZ0IsQ0FBQyxTQUFTLEVBQUVKLGFBQWEsQ0FBQztJQUVuRCxPQUFPLFlBQUs7TUFDVkYsUUFBUSxDQUFDTyxtQkFBbUIsQ0FBQyxTQUFTLEVBQUVMLGFBQWEsQ0FBQztJQUN4RCxDQUFDO0VBQ0gsQ0FBQyxFQUFFLENBQUNKLE9BQU8sRUFBRUMsT0FBTyxDQUFDLENBQUM7QUFDeEIsQ0FBQyIsImZpbGUiOiJjb21wb25lbnRzL0RyYXdlci9ob29rcy91c2VFc2NhcGVDbG9zZS5qcyIsInNvdXJjZXNDb250ZW50IjpbbnVsbF0sInNvdXJjZVJvb3QiOiIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMifQ==
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
|
|
2
1
|
import _typeof from "@babel/runtime/helpers/esm/typeof";
|
|
2
|
+
import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
|
|
3
3
|
import _regeneratorRuntime from "@babel/runtime/regenerator";
|
|
4
4
|
var __awaiter = this && this.__awaiter || function (thisArg, _arguments, P, generator) {
|
|
5
5
|
function adopt(value) {
|
|
@@ -40,99 +40,25 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
|
40
40
|
import { memo, useEffect, useMemo, useRef, Fragment } from 'react';
|
|
41
41
|
import { useLatest, useSafeState, useMemoizedFn } from '@1money/hooks';
|
|
42
42
|
import { default as classnames, joinCls } from '../../utils/classnames';
|
|
43
|
-
import { Form } from '../Form';
|
|
44
|
-
import { useFormInstance } from '../Form/context';
|
|
45
43
|
import { Row } from '../Grid';
|
|
44
|
+
import { useFormCore } from './core/hooks/useFormCore';
|
|
46
45
|
import { ProFormContext } from './context';
|
|
47
46
|
import { Submitter } from './Submitter';
|
|
48
47
|
import { CSS_PREFIX } from './constants';
|
|
49
48
|
import { stableSerialize, transformSubmitValues, omitNilValues } from './utils';
|
|
50
49
|
var classes = classnames(CSS_PREFIX);
|
|
51
|
-
var
|
|
50
|
+
var formClasses = classnames('form');
|
|
51
|
+
var ProFormBase = function ProFormBase(props) {
|
|
52
52
|
var children = props.children,
|
|
53
|
+
className = props.className,
|
|
53
54
|
submitter = props.submitter,
|
|
54
|
-
_props$mode = props.mode,
|
|
55
|
-
mode = _props$mode === void 0 ? 'edit' : _props$mode,
|
|
56
55
|
_props$readonly = props.readonly,
|
|
57
56
|
readonly = _props$readonly === void 0 ? false : _props$readonly,
|
|
57
|
+
modeProp = props.mode,
|
|
58
58
|
_props$grid = props.grid,
|
|
59
59
|
grid = _props$grid === void 0 ? false : _props$grid,
|
|
60
60
|
colProps = props.colProps,
|
|
61
61
|
rowProps = props.rowProps,
|
|
62
|
-
formRef = props.formRef,
|
|
63
|
-
isLoading = props.isLoading,
|
|
64
|
-
applyPipeline = props.applyPipeline,
|
|
65
|
-
registerTransform = props.registerTransform,
|
|
66
|
-
unregisterTransform = props.unregisterTransform;
|
|
67
|
-
var resolvedMode = mode !== null && mode !== void 0 ? mode : readonly ? 'read' : 'edit';
|
|
68
|
-
var form = useFormInstance();
|
|
69
|
-
// Build ProFormFormInstance by extending the real form instance with format methods
|
|
70
|
-
var proFormFormInstance = useMemo(function () {
|
|
71
|
-
return {
|
|
72
|
-
submit: form.submit,
|
|
73
|
-
resetFields: form.resetFields,
|
|
74
|
-
getFieldValue: form.getFieldValue,
|
|
75
|
-
getFieldsValue: form.getFieldsValue,
|
|
76
|
-
setFieldsValue: form.setFieldsValue,
|
|
77
|
-
setFieldValue: form.setFieldValue,
|
|
78
|
-
validateFields: form.validateFields,
|
|
79
|
-
getFieldsFormatValue: function getFieldsFormatValue() {
|
|
80
|
-
return applyPipeline(form.getFieldsValue());
|
|
81
|
-
},
|
|
82
|
-
validateFieldsReturnFormatValue: function validateFieldsReturnFormatValue() {
|
|
83
|
-
var isValid = form.validateFields();
|
|
84
|
-
if (!isValid) return {
|
|
85
|
-
success: false
|
|
86
|
-
};
|
|
87
|
-
return {
|
|
88
|
-
success: true,
|
|
89
|
-
values: applyPipeline(form.getFieldsValue())
|
|
90
|
-
};
|
|
91
|
-
}
|
|
92
|
-
};
|
|
93
|
-
}, [form, applyPipeline]);
|
|
94
|
-
useEffect(function () {
|
|
95
|
-
if (formRef) {
|
|
96
|
-
formRef.current = proFormFormInstance;
|
|
97
|
-
}
|
|
98
|
-
});
|
|
99
|
-
var proFormContextValue = useMemo(function () {
|
|
100
|
-
return {
|
|
101
|
-
readonly: readonly,
|
|
102
|
-
mode: resolvedMode,
|
|
103
|
-
grid: grid,
|
|
104
|
-
colProps: colProps,
|
|
105
|
-
registerTransform: registerTransform,
|
|
106
|
-
unregisterTransform: unregisterTransform,
|
|
107
|
-
formInstance: proFormFormInstance
|
|
108
|
-
};
|
|
109
|
-
}, [readonly, resolvedMode, grid, colProps, registerTransform, unregisterTransform, proFormFormInstance]);
|
|
110
|
-
var WrapperComponent = grid ? Row : Fragment;
|
|
111
|
-
var wrapperProps = grid ? Object.assign({}, rowProps) : {};
|
|
112
|
-
var submitterNode = submitter !== false && resolvedMode !== 'read' ? _jsx(Submitter, Object.assign({}, _typeof(submitter) === 'object' ? submitter : {}, {
|
|
113
|
-
loading: isLoading
|
|
114
|
-
})) : null;
|
|
115
|
-
return _jsxs(ProFormContext.Provider, {
|
|
116
|
-
value: proFormContextValue,
|
|
117
|
-
children: [_jsx(WrapperComponent, Object.assign({}, wrapperProps, {
|
|
118
|
-
children: children
|
|
119
|
-
})), submitterNode]
|
|
120
|
-
});
|
|
121
|
-
};
|
|
122
|
-
// ---------------------------------------------------------------------------
|
|
123
|
-
// Outer component — renders <Form> and sets up transforms / request
|
|
124
|
-
// ---------------------------------------------------------------------------
|
|
125
|
-
var ProFormBase = function ProFormBase(props) {
|
|
126
|
-
var children = props.children,
|
|
127
|
-
className = props.className,
|
|
128
|
-
submitter = props.submitter,
|
|
129
|
-
_props$readonly2 = props.readonly,
|
|
130
|
-
readonly = _props$readonly2 === void 0 ? false : _props$readonly2,
|
|
131
|
-
modeProp = props.mode,
|
|
132
|
-
_props$grid2 = props.grid,
|
|
133
|
-
grid = _props$grid2 === void 0 ? false : _props$grid2,
|
|
134
|
-
colProps = props.colProps,
|
|
135
|
-
rowProps = props.rowProps,
|
|
136
62
|
_props$loading = props.loading,
|
|
137
63
|
loading = _props$loading === void 0 ? false : _props$loading,
|
|
138
64
|
request = props.request,
|
|
@@ -145,13 +71,20 @@ var ProFormBase = function ProFormBase(props) {
|
|
|
145
71
|
formRef = props.formRef,
|
|
146
72
|
_props$omitNil = props.omitNil,
|
|
147
73
|
omitNil = _props$omitNil === void 0 ? true : _props$omitNil,
|
|
148
|
-
size = props.size,
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
74
|
+
_props$size = props.size,
|
|
75
|
+
size = _props$size === void 0 ? 'middle' : _props$size,
|
|
76
|
+
_props$labelAlign = props.labelAlign,
|
|
77
|
+
labelAlign = _props$labelAlign === void 0 ? 'left' : _props$labelAlign,
|
|
78
|
+
_props$disabled = props.disabled,
|
|
79
|
+
disabled = _props$disabled === void 0 ? false : _props$disabled,
|
|
80
|
+
_props$colon = props.colon,
|
|
81
|
+
colon = _props$colon === void 0 ? true : _props$colon,
|
|
82
|
+
_props$requiredMark = props.requiredMark,
|
|
83
|
+
requiredMark = _props$requiredMark === void 0 ? true : _props$requiredMark,
|
|
84
|
+
_props$validateTrigge = props.validateTrigger,
|
|
85
|
+
validateTrigger = _props$validateTrigge === void 0 ? 'onChange' : _props$validateTrigge,
|
|
86
|
+
_prefixCls = props.prefixCls,
|
|
87
|
+
rest = __rest(props, ["children", "className", "submitter", "readonly", "mode", "grid", "colProps", "rowProps", "loading", "request", "params", "initialValues", "onFinish", "onFinishFailed", "onValuesChange", "onReset", "formRef", "omitNil", "size", "labelAlign", "disabled", "colon", "requiredMark", "validateTrigger", "prefixCls"]);
|
|
155
88
|
var mode = modeProp !== null && modeProp !== void 0 ? modeProp : readonly ? 'read' : 'edit';
|
|
156
89
|
var _useSafeState = useSafeState(false),
|
|
157
90
|
_useSafeState2 = _slicedToArray(_useSafeState, 2),
|
|
@@ -176,16 +109,57 @@ var ProFormBase = function ProFormBase(props) {
|
|
|
176
109
|
var _a;
|
|
177
110
|
(_a = onFinishRef.current) === null || _a === void 0 ? void 0 : _a.call(onFinishRef, applyPipeline(values));
|
|
178
111
|
});
|
|
179
|
-
// ──
|
|
112
|
+
// ── Core form engine ──
|
|
113
|
+
var _useFormCore = useFormCore({
|
|
114
|
+
initialValues: initialValues,
|
|
115
|
+
onFinish: handleFinish,
|
|
116
|
+
onFinishFailed: onFinishFailed,
|
|
117
|
+
onValuesChange: onValuesChange,
|
|
118
|
+
onReset: onReset,
|
|
119
|
+
size: size,
|
|
120
|
+
labelAlign: labelAlign,
|
|
121
|
+
disabled: disabled || isLoading,
|
|
122
|
+
colon: colon,
|
|
123
|
+
requiredMark: requiredMark,
|
|
124
|
+
validateTrigger: validateTrigger
|
|
125
|
+
}),
|
|
126
|
+
coreContextShape = _useFormCore.coreContextShape,
|
|
127
|
+
coreInstance = _useFormCore.formInstance,
|
|
128
|
+
handleSubmit = _useFormCore.handleSubmit,
|
|
129
|
+
handleReset = _useFormCore.handleReset;
|
|
130
|
+
// ── ProForm instance: superset of FormCoreInstance ──
|
|
131
|
+
var proFormFormInstance = useMemo(function () {
|
|
132
|
+
return Object.assign(Object.assign({}, coreInstance), {
|
|
133
|
+
getFieldsFormatValue: function getFieldsFormatValue() {
|
|
134
|
+
return applyPipeline(coreInstance.getFieldsValue());
|
|
135
|
+
},
|
|
136
|
+
validateFieldsReturnFormatValue: function validateFieldsReturnFormatValue() {
|
|
137
|
+
var isValid = coreInstance.validateFields();
|
|
138
|
+
if (!isValid) return {
|
|
139
|
+
success: false
|
|
140
|
+
};
|
|
141
|
+
return {
|
|
142
|
+
success: true,
|
|
143
|
+
values: applyPipeline(coreInstance.getFieldsValue())
|
|
144
|
+
};
|
|
145
|
+
}
|
|
146
|
+
});
|
|
147
|
+
}, [coreInstance, applyPipeline]);
|
|
148
|
+
// ── Sync to formRef prop ──
|
|
149
|
+
useEffect(function () {
|
|
150
|
+
if (formRef) {
|
|
151
|
+
formRef.current = proFormFormInstance;
|
|
152
|
+
}
|
|
153
|
+
});
|
|
154
|
+
// ── request / params auto-load ──
|
|
180
155
|
var requestRef = useLatest(request);
|
|
181
|
-
var formInstanceRef = useRef(null);
|
|
182
156
|
var serializedParams = useMemo(function () {
|
|
183
157
|
return stableSerialize(params);
|
|
184
158
|
}, [params]);
|
|
185
159
|
useEffect(function () {
|
|
186
160
|
var fetchData = function fetchData() {
|
|
187
161
|
return __awaiter(void 0, void 0, void 0, /*#__PURE__*/_regeneratorRuntime.mark(function _callee() {
|
|
188
|
-
var
|
|
162
|
+
var requestFn, data;
|
|
189
163
|
return _regeneratorRuntime.wrap(function _callee$(_context) {
|
|
190
164
|
while (1) switch (_context.prev = _context.next) {
|
|
191
165
|
case 0:
|
|
@@ -203,7 +177,7 @@ var ProFormBase = function ProFormBase(props) {
|
|
|
203
177
|
case 7:
|
|
204
178
|
data = _context.sent;
|
|
205
179
|
if (data && _typeof(data) === 'object') {
|
|
206
|
-
|
|
180
|
+
coreInstance.setFieldsValue(data);
|
|
207
181
|
}
|
|
208
182
|
case 9:
|
|
209
183
|
_context.prev = 9;
|
|
@@ -219,36 +193,39 @@ var ProFormBase = function ProFormBase(props) {
|
|
|
219
193
|
if (requestRef.current) {
|
|
220
194
|
fetchData();
|
|
221
195
|
}
|
|
222
|
-
}, [serializedParams]);
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
}
|
|
229
|
-
},
|
|
230
|
-
className: joinCls(classes(), className),
|
|
231
|
-
initialValues: initialValues,
|
|
232
|
-
onFinish: handleFinish,
|
|
233
|
-
onFinishFailed: onFinishFailed,
|
|
234
|
-
onValuesChange: onValuesChange,
|
|
235
|
-
onReset: onReset,
|
|
236
|
-
size: size,
|
|
237
|
-
labelAlign: labelAlign,
|
|
238
|
-
disabled: disabled || isLoading,
|
|
239
|
-
colon: colon,
|
|
240
|
-
requiredMark: requiredMark,
|
|
241
|
-
validateTrigger: validateTrigger,
|
|
242
|
-
children: _jsx(ProFormInner, Object.assign({}, props, {
|
|
196
|
+
}, [serializedParams, params, requestRef, setRequestLoading, coreInstance]);
|
|
197
|
+
// ── Merged context ──
|
|
198
|
+
var contextValue = useMemo(function () {
|
|
199
|
+
return Object.assign(Object.assign({}, coreContextShape), {
|
|
200
|
+
formInstance: proFormFormInstance,
|
|
201
|
+
readonly: readonly,
|
|
243
202
|
mode: mode,
|
|
244
|
-
|
|
245
|
-
|
|
203
|
+
grid: grid,
|
|
204
|
+
colProps: colProps !== null && colProps !== void 0 ? colProps : {
|
|
205
|
+
span: 24
|
|
206
|
+
},
|
|
246
207
|
registerTransform: registerTransform,
|
|
247
208
|
unregisterTransform: unregisterTransform
|
|
209
|
+
});
|
|
210
|
+
}, [coreContextShape, proFormFormInstance, readonly, mode, grid, colProps, registerTransform, unregisterTransform]);
|
|
211
|
+
var WrapperComponent = grid ? Row : Fragment;
|
|
212
|
+
var wrapperProps = grid ? Object.assign({}, rowProps) : {};
|
|
213
|
+
var submitterNode = submitter !== false && mode !== 'read' ? _jsx(Submitter, Object.assign({}, _typeof(submitter) === 'object' ? submitter : {}, {
|
|
214
|
+
loading: isLoading
|
|
215
|
+
})) : null;
|
|
216
|
+
return _jsx(ProFormContext.Provider, {
|
|
217
|
+
value: contextValue,
|
|
218
|
+
children: _jsxs("form", Object.assign({}, rest, {
|
|
219
|
+
className: formClasses(undefined, joinCls(classes(), className)),
|
|
220
|
+
onSubmit: handleSubmit,
|
|
221
|
+
onReset: handleReset,
|
|
222
|
+
children: [_jsx(WrapperComponent, Object.assign({}, wrapperProps, {
|
|
223
|
+
children: children
|
|
224
|
+
})), submitterNode]
|
|
248
225
|
}))
|
|
249
|
-
})
|
|
226
|
+
});
|
|
250
227
|
};
|
|
251
228
|
ProFormBase.displayName = 'ProForm';
|
|
252
229
|
export var ProForm = /*#__PURE__*/memo(ProFormBase);
|
|
253
230
|
export default ProForm;
|
|
254
|
-
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvUHJvRm9ybS9Qcm9Gb3JtLmpzIiwiY29tcG9uZW50cy9zcmMvY29tcG9uZW50cy9Qcm9Gb3JtL1Byb0Zvcm0udHN4Il0sIm5hbWVzIjpbIl9fYXdhaXRlciIsInRoaXNBcmciLCJfYXJndW1lbnRzIiwiUCIsImdlbmVyYXRvciIsImFkb3B0IiwidmFsdWUiLCJyZXNvbHZlIiwiUHJvbWlzZSIsInJlamVjdCIsImZ1bGZpbGxlZCIsInN0ZXAiLCJuZXh0IiwiZSIsInJlamVjdGVkIiwicmVzdWx0IiwiZG9uZSIsInRoZW4iLCJhcHBseSIsIl9fcmVzdCIsInMiLCJ0IiwicCIsIk9iamVjdCIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImluZGV4T2YiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJpIiwibGVuZ3RoIiwicHJvcGVydHlJc0VudW1lcmFibGUiLCJqc3giLCJfanN4IiwianN4cyIsIl9qc3hzIiwibWVtbyIsInVzZUVmZmVjdCIsInVzZU1lbW8iLCJ1c2VSZWYiLCJGcmFnbWVudCIsInVzZUxhdGVzdCIsInVzZVNhZmVTdGF0ZSIsInVzZU1lbW9pemVkRm4iLCJkZWZhdWx0IiwiY2xhc3NuYW1lcyIsImpvaW5DbHMiLCJGb3JtIiwidXNlRm9ybUluc3RhbmNlIiwiUm93IiwiUHJvRm9ybUNvbnRleHQiLCJTdWJtaXR0ZXIiLCJDU1NfUFJFRklYIiwic3RhYmxlU2VyaWFsaXplIiwidHJhbnNmb3JtU3VibWl0VmFsdWVzIiwib21pdE5pbFZhbHVlcyIsImNsYXNzZXMiLCJQcm9Gb3JtSW5uZXIiLCJwcm9wcyIsImNoaWxkcmVuIiwic3VibWl0dGVyIiwiX3Byb3BzJG1vZGUiLCJtb2RlIiwiX3Byb3BzJHJlYWRvbmx5IiwicmVhZG9ubHkiLCJfcHJvcHMkZ3JpZCIsImdyaWQiLCJjb2xQcm9wcyIsInJvd1Byb3BzIiwiZm9ybVJlZiIsImlzTG9hZGluZyIsImFwcGx5UGlwZWxpbmUiLCJyZWdpc3RlclRyYW5zZm9ybSIsInVucmVnaXN0ZXJUcmFuc2Zvcm0iLCJyZXNvbHZlZE1vZGUiLCJmb3JtIiwicHJvRm9ybUZvcm1JbnN0YW5jZSIsInN1Ym1pdCIsInJlc2V0RmllbGRzIiwiZ2V0RmllbGRWYWx1ZSIsImdldEZpZWxkc1ZhbHVlIiwic2V0RmllbGRzVmFsdWUiLCJzZXRGaWVsZFZhbHVlIiwidmFsaWRhdGVGaWVsZHMiLCJnZXRGaWVsZHNGb3JtYXRWYWx1ZSIsInZhbGlkYXRlRmllbGRzUmV0dXJuRm9ybWF0VmFsdWUiLCJpc1ZhbGlkIiwic3VjY2VzcyIsInZhbHVlcyIsImN1cnJlbnQiLCJwcm9Gb3JtQ29udGV4dFZhbHVlIiwiZm9ybUluc3RhbmNlIiwiV3JhcHBlckNvbXBvbmVudCIsIndyYXBwZXJQcm9wcyIsImFzc2lnbiIsInN1Ym1pdHRlck5vZGUiLCJfdHlwZW9mIiwibG9hZGluZyIsIlByb3ZpZGVyIiwiUHJvRm9ybUJhc2UiLCJjbGFzc05hbWUiLCJfcHJvcHMkcmVhZG9ubHkyIiwibW9kZVByb3AiLCJfcHJvcHMkZ3JpZDIiLCJfcHJvcHMkbG9hZGluZyIsInJlcXVlc3QiLCJwYXJhbXMiLCJpbml0aWFsVmFsdWVzIiwib25GaW5pc2giLCJvbkZpbmlzaEZhaWxlZCIsIm9uVmFsdWVzQ2hhbmdlIiwib25SZXNldCIsIl9wcm9wcyRvbWl0TmlsIiwib21pdE5pbCIsInNpemUiLCJsYWJlbEFsaWduIiwiZGlzYWJsZWQiLCJjb2xvbiIsInJlcXVpcmVkTWFyayIsInZhbGlkYXRlVHJpZ2dlciIsInJlc3QiLCJfdXNlU2FmZVN0YXRlIiwiX3VzZVNhZmVTdGF0ZTIiLCJfc2xpY2VkVG9BcnJheSIsInJlcXVlc3RMb2FkaW5nIiwic2V0UmVxdWVzdExvYWRpbmciLCJ0cmFuc2Zvcm1LZXlSZWYiLCJuYW1lIiwiZm4iLCJvbkZpbmlzaFJlZiIsImhhbmRsZUZpbmlzaCIsIl9hIiwicmVxdWVzdFJlZiIsImZvcm1JbnN0YW5jZVJlZiIsInNlcmlhbGl6ZWRQYXJhbXMiLCJmZXRjaERhdGEiLCJfcmVnZW5lcmF0b3JSdW50aW1lIiwibWFyayIsIl9jYWxsZWUiLCJyZXF1ZXN0Rm4iLCJkYXRhIiwid3JhcCIsIl9jYWxsZWUkIiwiX2NvbnRleHQiLCJwcmV2IiwiYWJydXB0Iiwic2VudCIsImZpbmlzaCIsInN0b3AiLCJyZWYiLCJpbnN0YW5jZSIsImRpc3BsYXlOYW1lIiwiUHJvRm9ybSJdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsSUFBSUEsU0FBUyxHQUFJLElBQUksSUFBSSxJQUFJLENBQUNBLFNBQVMsSUFBSyxVQUFVQyxPQUFPLEVBQUVDLFVBQVUsRUFBRUMsQ0FBQyxFQUFFQyxTQUFTLEVBQUU7RUFDckYsU0FBU0MsS0FBS0EsQ0FBQ0MsS0FBSyxFQUFFO0lBQUUsT0FBT0EsS0FBSyxZQUFZSCxDQUFDLEdBQUdHLEtBQUssR0FBRyxJQUFJSCxDQUFDLENBQUMsVUFBVUksT0FBTyxFQUFFO01BQUVBLE9BQU8sQ0FBQ0QsS0FBSyxDQUFDO0lBQUUsQ0FBQyxDQUFDO0VBQUU7RUFDM0csT0FBTyxLQUFLSCxDQUFDLEtBQUtBLENBQUMsR0FBR0ssT0FBTyxDQUFDLEVBQUUsVUFBVUQsT0FBTyxFQUFFRSxNQUFNLEVBQUU7SUFDdkQsU0FBU0MsU0FBU0EsQ0FBQ0osS0FBSyxFQUFFO01BQUUsSUFBSTtRQUFFSyxJQUFJLENBQUNQLFNBQVMsQ0FBQ1EsSUFBSSxDQUFDTixLQUFLLENBQUMsQ0FBQztNQUFFLENBQUMsQ0FBQyxPQUFPTyxDQUFDLEVBQUU7UUFBRUosTUFBTSxDQUFDSSxDQUFDLENBQUM7TUFBRTtJQUFFO0lBQzFGLFNBQVNDLFFBQVFBLENBQUNSLEtBQUssRUFBRTtNQUFFLElBQUk7UUFBRUssSUFBSSxDQUFDUCxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUNFLEtBQUssQ0FBQyxDQUFDO01BQUUsQ0FBQyxDQUFDLE9BQU9PLENBQUMsRUFBRTtRQUFFSixNQUFNLENBQUNJLENBQUMsQ0FBQztNQUFFO0lBQUU7SUFDN0YsU0FBU0YsSUFBSUEsQ0FBQ0ksTUFBTSxFQUFFO01BQUVBLE1B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QkMsUUFBUSxFQUFFc0IsWUFBWTtJQUN0QnJCLGNBQWMsRUFBRUEsY0FBYztJQUM5QkMsY0FBYyxFQUFFQSxjQUFjO0lBQzlCQyxPQUFPLEVBQUVBLE9BQU87SUFDaEJHLElBQUksRUFBRUEsSUFBSTtJQUNWQyxVQUFVLEVBQUVBLFVBQVU7SUFDdEJDLFFBQVEsRUFBRUEsUUFBUSxJQUFJOUMsU0FBUztJQUMvQitDLEtBQUssRUFBRUEsS0FBSztJQUNaQyxZQUFZLEVBQUVBLFlBQVk7SUFDMUJDLGVBQWUsRUFBRUEsZUFBZTtJQUFBNUQsUUFBQSxFQUVoQzFCLElBQUEsQ0FBQ3dCLFlBQVksRUFBQWxDLE1BQUEsQ0FBQXVFLE1BQUEsQ0FBQSxDQUFBLENBQUEsRUFDUHBDLEtBQUssRUFBQTtNQUNUSSxJQUFJLEVBQUVBLElBQUk7TUFDVlEsU0FBUyxFQUFFQSxTQUFTO01BQ3BCQyxhQUFhLEVBQUVBLGFBQWE7TUFDNUJDLGlCQUFpQixFQUFFQSxpQkFBaUI7TUFDcENDLG1CQUFtQixFQUFFQTtJQUFtQixDQUFBLENBQUE7RUFDeEMsQ0FBQSxDQUFBLENBQ0c7QUFFWCxDQUFDO0FBRUQwQixXQUFXLENBQUNvRCxXQUFXLEdBQUcsU0FBUztBQUVuQyxPQUFPLElBQU1DLE9BQU8sZ0JBQUdwSCxJQUFJLENBQUMrRCxXQUFXLENBQUM7QUFFeEMsZUFBZXFELE9BQU8iLCJmaWxlIjoiY29tcG9uZW50cy9Qcm9Gb3JtL1Byb0Zvcm0uanMiLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgX19hd2FpdGVyID0gKHRoaXMgJiYgdGhpcy5fX2F3YWl0ZXIpIHx8IGZ1bmN0aW9uICh0aGlzQXJnLCBfYXJndW1lbnRzLCBQLCBnZW5lcmF0b3IpIHtcbiAgICBmdW5jdGlvbiBhZG9wdCh2YWx1ZSkgeyByZXR1cm4gdmFsdWUgaW5zdGFuY2VvZiBQID8gdmFsdWUgOiBuZXcgUChmdW5jdGlvbiAocmVzb2x2ZSkgeyByZXNvbHZlKHZhbHVlKTsgfSk7IH1cbiAgICByZXR1cm4gbmV3IChQIHx8IChQID0gUHJvbWlzZSkpKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHtcbiAgICAgICAgZnVuY3Rpb24gZnVsZmlsbGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yLm5leHQodmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxuICAgICAgICBmdW5jdGlvbiByZWplY3RlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvcltcInRocm93XCJdKHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cbiAgICAgICAgZnVuY3Rpb24gc3RlcChyZXN1bHQpIHsgcmVzdWx0LmRvbmUgPyByZXNvbHZlKHJlc3VsdC52YWx1ZSkgOiBhZG9wdChyZXN1bHQudmFsdWUpLnRoZW4oZnVsZmlsbGVkLCByZWplY3RlZCk7IH1cbiAgICAgICAgc3RlcCgoZ2VuZXJhdG9yID0gZ2VuZXJhdG9yLmFwcGx5KHRoaXNBcmcsIF9hcmd1bWVudHMgfHwgW10pKS5uZXh0KCkpO1xuICAgIH0pO1xufTtcbnZhciBfX3Jlc3QgPSAodGhpcyAmJiB0aGlzLl9fcmVzdCkgfHwgZnVuY3Rpb24gKHMsIGUpIHtcbiAgICB2YXIgdCA9IHt9O1xuICAgIGZvciAodmFyIHAgaW4gcykgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzLCBwKSAmJiBlLmluZGV4T2YocCkgPCAwKVxuICAgICAgICB0W3BdID0gc1twXTtcbiAgICBpZiAocyAhPSBudWxsICYmIHR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzID09PSBcImZ1bmN0aW9uXCIpXG4gICAgICAgIGZvciAodmFyIGkgPSAwLCBwID0gT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhzKTsgaSA8IHAubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGlmIChlLmluZGV4T2YocFtpXSkgPCAwICYmIE9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChzLCBwW2ldKSlcbiAgICAgICAgICAgICAgICB0W3BbaV1dID0gc1twW2ldXTtcbiAgICAgICAgfVxuICAgIHJldHVybiB0O1xufTtcbmltcG9ydCB7IGpzeCBhcyBfanN4LCBqc3hzIGFzIF9qc3hzIH0gZnJvbSBcInJlYWN0L2pzeC1ydW50aW1lXCI7XG5pbXBvcnQgeyBtZW1vLCB1c2VFZmZlY3QsIHVzZU1lbW8sIHVzZVJlZiwgRnJhZ21lbnQgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyB1c2VMYXRlc3QsIHVzZVNhZmVTdGF0ZSwgdXNlTWVtb2l6ZWRGbiB9IGZyb20gJ0AxbW9uZXkvaG9va3MnO1xuaW1wb3J0IHsgZGVmYXVsdCBhcyBjbGFzc25hbWVzLCBqb2luQ2xzIH0gZnJvbSAnLi4vLi4vdXRpbHMvY2xhc3NuYW1lcyc7XG5pbXBvcnQgeyBGb3JtIH0gZnJvbSAnLi4vRm9ybSc7XG5pbXBvcnQgeyB1c2VGb3JtSW5zdGFuY2UgfSBmcm9tICcuLi9Gb3JtL2NvbnRleHQnO1xuaW1wb3J0IHsgUm93IH0gZnJvbSAnLi4vR3JpZCc7XG5pbXBvcnQgeyBQcm9Gb3JtQ29udGV4dCB9IGZyb20gJy4vY29udGV4dCc7XG5pbXBvcnQgeyBTdWJtaXR0ZXIgfSBmcm9tICcuL1N1Ym1pdHRlcic7XG5pbXBvcnQgeyBDU1NfUFJFRklYIH0gZnJvbSAnLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgc3RhYmxlU2VyaWFsaXplLCB0cmFuc2Zvcm1TdWJtaXRWYWx1ZXMsIG9taXROaWxWYWx1ZXMgfSBmcm9tICcuL3V0aWxzJztcbmNvbnN0IGNsYXNzZXMgPSBjbGFzc25hbWVzKENTU19QUkVGSVgpO1xuY29uc3QgUHJvRm9ybUlubmVyID0gKHByb3BzKSA9PiB7XG4gICAgY29uc3QgeyBjaGlsZHJlbiwgc3VibWl0dGVyLCBtb2RlID0gJ2VkaXQnLCByZWFkb25seSA9IGZhbHNlLCBncmlkID0gZmFsc2UsIGNvbFByb3BzLCByb3dQcm9wcywgZm9ybVJlZiwgaXNMb2FkaW5nLCBhcHBseVBpcGVsaW5lLCByZWdpc3RlclRyYW5zZm9ybSwgdW5yZWdpc3RlclRyYW5zZm9ybSwgfSA9IHByb3BzO1xuICAgIGNvbnN0IHJlc29sdmVkTW9kZSA9IG1vZGUgIT09IG51bGwgJiYgbW9kZSAhPT0gdm9pZCAwID8gbW9kZSA6IChyZWFkb25seSA/ICdyZWFkJyA6ICdlZGl0Jyk7XG4gICAgY29uc3QgZm9ybSA9IHVzZUZvcm1JbnN0YW5jZSgpO1xuICAgIC8vIEJ1aWxkIFByb0Zvcm1Gb3JtSW5zdGFuY2UgYnkgZXh0ZW5kaW5nIHRoZSByZWFsIGZvcm0gaW5zdGFuY2Ugd2l0aCBmb3JtYXQgbWV0aG9kc1xuICAgIGNvbnN0IHByb0Zvcm1Gb3JtSW5zdGFuY2UgPSB1c2VNZW1vKCgpID0+ICh7XG4gICAgICAgIHN1Ym1pdDogZm9ybS5zdWJtaXQsXG4gICAgICAgIHJlc2V0RmllbGRzOiBmb3JtLnJlc2V0RmllbGRzLFxuICAgICAgICBnZXRGaWVsZFZhbHVlOiBmb3JtLmdldEZpZWxkVmFsdWUsXG4gICAgICAgIGdldEZpZWxkc1ZhbHVlOiBmb3JtLmdldEZpZWxkc1ZhbHVlLFxuICAgICAgICBzZXRGaWVsZHNWYWx1ZTogZm9ybS5zZXRGaWVsZHNWYWx1ZSxcbiAgICAgICAgc2V0RmllbGRWYWx1ZTogZm9ybS5zZXRGaWVsZFZhbHVlLFxuICAgICAgICB2YWxpZGF0ZUZpZWxkczogZm9ybS52YWxpZGF0ZUZpZWxkcyxcbiAgICAgICAgZ2V0RmllbGRzRm9ybWF0VmFsdWU6ICgpID0+IGFwcGx5UGlwZWxpbmUoZm9ybS5nZXRGaWVsZHNWYWx1ZSgpKSxcbiAgICAgICAgdmFsaWRhdGVGaWVsZHNSZXR1cm5Gb3JtYXRWYWx1ZTogKCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgaXNWYWxpZCA9IGZvcm0udmFsaWRhdGVGaWVsZHMoKTtcbiAgICAgICAgICAgIGlmICghaXNWYWxpZClcbiAgICAgICAgICAgICAgICByZXR1cm4geyBzdWNjZXNzOiBmYWxzZSB9O1xuICAgICAgICAgICAgcmV0dXJuIHsgc3VjY2VzczogdHJ1ZSwgdmFsdWVzOiBhcHBseVBpcGVsaW5lKGZvcm0uZ2V0RmllbGRzVmFsdWUoKSkgfTtcbiAgICAgICAgfSxcbiAgICB9KSwgW2Zvcm0sIGFwcGx5UGlwZWxpbmVdKTtcbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICBpZiAoZm9ybVJlZikge1xuICAgICAgICAgICAgZm9ybVJlZi5jdXJyZW50ID0gcHJvRm9ybUZvcm1JbnN0YW5jZTtcbiAgICAgICAgfVxuICAgIH0pO1xuICAgIGNvbnN0IHByb0Zvcm1Db250ZXh0VmFsdWUgPSB1c2VNZW1vKCgpID0+ICh7IHJlYWRvbmx5LCBtb2RlOiByZXNvbHZlZE1vZGUsIGdyaWQsIGNvbFByb3BzLCByZWdpc3RlclRyYW5zZm9ybSwgdW5yZWdpc3RlclRyYW5zZm9ybSwgZm9ybUluc3RhbmNlOiBwcm9Gb3JtRm9ybUluc3RhbmNlIH0pLCBbcmVhZG9ubHksIHJlc29sdmVkTW9kZSwgZ3JpZCwgY29sUHJvcHMsIHJlZ2lzdGVyVHJhbnNmb3JtLCB1bnJlZ2lzdGVyVHJhbnNmb3JtLCBwcm9Gb3JtRm9ybUluc3RhbmNlXSk7XG4gICAgY29uc3QgV3JhcHBlckNvbXBvbmVudCA9IGdyaWQgPyBSb3cgOiBGcmFnbWVudDtcbiAgICBjb25zdCB3cmFwcGVyUHJvcHMgPSBncmlkID8gT2JqZWN0LmFzc2lnbih7fSwgcm93UHJvcHMpIDoge307XG4gICAgY29uc3Qgc3VibWl0dGVyTm9kZSA9IHN1Ym1pdHRlciAhPT0gZmFsc2UgJiYgcmVzb2x2ZWRNb2RlICE9PSAncmVhZCcgPyAoX2pzeChTdWJtaXR0ZXIsIE9iamVjdC5hc3NpZ24oe30sICh0eXBlb2Ygc3VibWl0dGVyID09PSAnb2JqZWN0JyA/IHN1Ym1pdHRlciA6IHt9KSwgeyBsb2FkaW5nOiBpc0xvYWRpbmcgfSkpKSA6IG51bGw7XG4gICAgcmV0dXJuIChfanN4cyhQcm9Gb3JtQ29udGV4dC5Qcm92aWRlciwgeyB2YWx1ZTogcHJvRm9ybUNvbnRleHRWYWx1ZSwgY2hpbGRyZW46IFtfanN4KFdyYXBwZXJDb21wb25lbnQsIE9iamVjdC5hc3NpZ24oe30sIHdyYXBwZXJQcm9wcywgeyBjaGlsZHJlbjogY2hpbGRyZW4gfSkpLCBzdWJtaXR0ZXJOb2RlXSB9KSk7XG59O1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBPdXRlciBjb21wb25lbnQg4oCUIHJlbmRlcnMgPEZvcm0+IGFuZCBzZXRzIHVwIHRyYW5zZm9ybXMgLyByZXF1ZXN0XG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbmNvbnN0IFByb0Zvcm1CYXNlID0gKHByb3BzKSA9PiB7XG4gICAgY29uc3QgeyBjaGlsZHJlbiwgY2xhc3NOYW1lLCBzdWJtaXR0ZXIsIHJlYWRvbmx5ID0gZmFsc2UsIG1vZGU6IG1vZGVQcm9wLCBncmlkID0gZmFsc2UsIGNvbFByb3BzLCByb3dQcm9wcywgbG9hZGluZyA9IGZhbHNlLCByZXF1ZXN0LCBwYXJhbXMsIGluaXRpYWxWYWx1ZXMsIG9uRmluaXNoLCBvbkZpbmlzaEZhaWxlZCwgb25WYWx1ZXNDaGFuZ2UsIG9uUmVzZXQsIGZvcm1SZWYsIG9taXROaWwgPSB0cnVlLCBzaXplLCBsYWJlbEFsaWduLCBkaXNhYmxlZCwgY29sb24sIHJlcXVpcmVkTWFyaywgdmFsaWRhdGVUcmlnZ2VyIH0gPSBwcm9wcywgcmVzdCA9IF9fcmVzdChwcm9wcywgW1wiY2hpbGRyZW5cIiwgXCJjbGFzc05hbWVcIiwgXCJzdWJtaXR0ZXJcIiwgXCJyZWFkb25seVwiLCBcIm1vZGVcIiwgXCJncmlkXCIsIFwiY29sUHJvcHNcIiwgXCJyb3dQcm9wc1wiLCBcImxvYWRpbmdcIiwgXCJyZXF1ZXN0XCIsIFwicGFyYW1zXCIsIFwiaW5pdGlhbFZhbHVlc1wiLCBcIm9uRmluaXNoXCIsIFwib25GaW5pc2hGYWlsZWRcIiwgXCJvblZhbHVlc0NoYW5nZVwiLCBcIm9uUmVzZXRcIiwgXCJmb3JtUmVmXCIsIFwib21pdE5pbFwiLCBcInNpemVcIiwgXCJsYWJlbEFsaWduXCIsIFwiZGlzYWJsZWRcIiwgXCJjb2xvblwiLCBcInJlcXVpcmVkTWFya1wiLCBcInZhbGlkYXRlVHJpZ2dlclwiXSk7XG4gICAgY29uc3QgbW9kZSA9IG1vZGVQcm9wICE9PSBudWxsICYmIG1vZGVQcm9wICE9PSB2b2lkIDAgPyBtb2RlUHJvcCA6IChyZWFkb25seSA/ICdyZWFkJyA6ICdlZGl0Jyk7XG4gICAgY29uc3QgW3JlcXVlc3RMb2FkaW5nLCBzZXRSZXF1ZXN0TG9hZGluZ10gPSB1c2VTYWZlU3RhdGUoZmFsc2UpO1xuICAgIGNvbnN0IGlzTG9hZGluZyA9IGxvYWRpbmcgfHwgcmVxdWVzdExvYWRpbmc7XG4gICAgLy8g4pSA4pSAIFRyYW5zZm9ybSByZWdpc3RyeSDilIDilIBcbiAgICBjb25zdCB0cmFuc2Zvcm1LZXlSZWYgPSB1c2VSZWYoe30pO1xuICAgIGNvbnN0IHJlZ2lzdGVyVHJhbnNmb3JtID0gdXNlTWVtb2l6ZWRGbigobmFtZSwgZm4pID0+IHtcbiAgICAgICAgdHJhbnNmb3JtS2V5UmVmLmN1cnJlbnRbbmFtZV0gPSBmbjtcbiAgICB9KTtcbiAgICBjb25zdCB1bnJlZ2lzdGVyVHJhbnNmb3JtID0gdXNlTWVtb2l6ZWRGbigobmFtZSkgPT4ge1xuICAgICAgICBkZWxldGUgdHJhbnNmb3JtS2V5UmVmLmN1cnJlbnRbbmFtZV07XG4gICAgfSk7XG4gICAgY29uc3Qgb25GaW5pc2hSZWYgPSB1c2VMYXRlc3Qob25GaW5pc2gpO1xuICAgIGNvbnN0IGFwcGx5UGlwZWxpbmUgPSB1c2VNZW1vaXplZEZuKCh2YWx1ZXMpID0+IHtcbiAgICAgICAgbGV0IHJlc3VsdCA9IHRyYW5zZm9ybVN1Ym1pdFZhbHVlcyh2YWx1ZXMsIHRyYW5zZm9ybUtleVJlZi5jdXJyZW50KTtcbiAgICAgICAgaWYgKG9taXROaWwpXG4gICAgICAgICAgICByZXN1bHQgPSBvbWl0TmlsVmFsdWVzKHJlc3VsdCk7XG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfSk7XG4gICAgY29uc3QgaGFuZGxlRmluaXNoID0gdXNlTWVtb2l6ZWRGbigodmFsdWVzKSA9PiB7XG4gICAgICAgIHZhciBfYTtcbiAgICAgICAgKF9hID0gb25GaW5pc2hSZWYuY3VycmVudCkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmNhbGwob25GaW5pc2hSZWYsIGFwcGx5UGlwZWxpbmUodmFsdWVzKSk7XG4gICAgfSk7XG4gICAgLy8g4pSA4pSAIFJlcXVlc3QgLyBwYXJhbXMg4pSA4pSAXG4gICAgY29uc3QgcmVxdWVzdFJlZiA9IHVzZUxhdGVzdChyZXF1ZXN0KTtcbiAgICBjb25zdCBmb3JtSW5zdGFuY2VSZWYgPSB1c2VSZWYobnVsbCk7XG4gICAgY29uc3Qgc2VyaWFsaXplZFBhcmFtcyA9IHVzZU1lbW8oKCkgPT4gc3RhYmxlU2VyaWFsaXplKHBhcmFtcyksIFtwYXJhbXNdKTtcbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICBjb25zdCBmZXRjaERhdGEgPSAoKSA9PiBfX2F3YWl0ZXIodm9pZCAwLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgIHZhciBfYTtcbiAgICAgICAgICAgIGNvbnN0IHJlcXVlc3RGbiA9IHJlcXVlc3RSZWYuY3VycmVudDtcbiAgICAgICAgICAgIGlmICghcmVxdWVzdEZuKVxuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIHNldFJlcXVlc3RMb2FkaW5nKHRydWUpO1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBjb25zdCBkYXRhID0geWllbGQgcmVxdWVzdEZuKHBhcmFtcyk7XG4gICAgICAgICAgICAgICAgaWYgKGRhdGEgJiYgdHlwZW9mIGRhdGEgPT09ICdvYmplY3QnKSB7XG4gICAgICAgICAgICAgICAgICAgIChfYSA9IGZvcm1JbnN0YW5jZVJlZi5jdXJyZW50KSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2Euc2V0RmllbGRzVmFsdWUoZGF0YSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZmluYWxseSB7XG4gICAgICAgICAgICAgICAgc2V0UmVxdWVzdExvYWRpbmcoZmFsc2UpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgaWYgKHJlcXVlc3RSZWYuY3VycmVudCkge1xuICAgICAgICAgICAgZmV0Y2hEYXRhKCk7XG4gICAgICAgIH1cbiAgICB9LCBbc2VyaWFsaXplZFBhcmFtc10pO1xuICAgIHJldHVybiAoX2pzeChGb3JtLCBPYmplY3QuYXNzaWduKHt9LCByZXN0LCB7IHJlZjogKGluc3RhbmNlKSA9PiB7XG4gICAgICAgICAgICAvLyBDYXB0dXJlIHRoZSBmb3JtIHJlZiBmb3IgcmVxdWVzdCBkYXRhIGxvYWRpbmdcbiAgICAgICAgICAgIGlmIChpbnN0YW5jZSkge1xuICAgICAgICAgICAgICAgIGZvcm1JbnN0YW5jZVJlZi5jdXJyZW50ID0gaW5zdGFuY2U7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sIGNsYXNzTmFtZTogam9pbkNscyhjbGFzc2VzKCksIGNsYXNzTmFtZSksIGluaXRpYWxWYWx1ZXM6IGluaXRpYWxWYWx1ZXMsIG9uRmluaXNoOiBoYW5kbGVGaW5pc2gsIG9uRmluaXNoRmFpbGVkOiBvbkZpbmlzaEZhaWxlZCwgb25WYWx1ZXNDaGFuZ2U6IG9uVmFsdWVzQ2hhbmdlLCBvblJlc2V0OiBvblJlc2V0LCBzaXplOiBzaXplLCBsYWJlbEFsaWduOiBsYWJlbEFsaWduLCBkaXNhYmxlZDogZGlzYWJsZWQgfHwgaXNMb2FkaW5nLCBjb2xvbjogY29sb24sIHJlcXVpcmVkTWFyazogcmVxdWlyZWRNYXJrLCB2YWxpZGF0ZVRyaWdnZXI6IHZhbGlkYXRlVHJpZ2dlciwgY2hpbGRyZW46IF9qc3goUHJvRm9ybUlubmVyLCBPYmplY3QuYXNzaWduKHt9LCBwcm9wcywgeyBtb2RlOiBtb2RlLCBpc0xvYWRpbmc6IGlzTG9hZGluZywgYXBwbHlQaXBlbGluZTogYXBwbHlQaXBlbGluZSwgcmVnaXN0ZXJUcmFuc2Zvcm06IHJlZ2lzdGVyVHJhbnNmb3JtLCB1bnJlZ2lzdGVyVHJhbnNmb3JtOiB1bnJlZ2lzdGVyVHJhbnNmb3JtIH0pKSB9KSkpO1xufTtcblByb0Zvcm1CYXNlLmRpc3BsYXlOYW1lID0gJ1Byb0Zvcm0nO1xuZXhwb3J0IGNvbnN0IFByb0Zvcm0gPSBtZW1vKFByb0Zvcm1CYXNlKTtcbmV4cG9ydCBkZWZhdWx0IFByb0Zvcm07IixudWxsXSwic291cmNlUm9vdCI6Ii4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYyJ9
|
|
231
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvUHJvRm9ybS9Qcm9Gb3JtLmpzIiwiY29tcG9uZW50cy9zcmMvY29tcG9uZW50cy9Qcm9Gb3JtL1Byb0Zvcm0udHN4Il0sIm5hbWVzIjpbIl9fYXdhaXRlciIsInRoaXNBcmciLCJfYXJndW1lbnRzIiwiUCIsImdlbmVyYXRvciIsImFkb3B0IiwidmFsdWUiLCJyZXNvbHZlIiwiUHJvbWlzZSIsInJlamVjdCIsImZ1bGZpbGxlZCIsInN0ZXAiLCJuZXh0IiwiZSIsInJlamVjdGVkIiwicmVzdWx0IiwiZG9uZSIsInRoZW4iLCJhcHBseSIsIl9fcmVzdCIsInMiLCJ0IiwicCIsIk9iamVjdCIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImluZGV4T2YiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJpIiwibGVuZ3RoIiwicHJvcGVydHlJc0VudW1lcmFibGUiLCJqc3giLCJfanN4IiwianN4cyIsIl9qc3hzIiwibWVtbyIsInVzZUVmZmVjdCIsInVzZU1lbW8iLCJ1c2VSZWYiLCJGcmFnbWVudCIsInVzZUxhdGVzdCIsInVzZVNhZmVTdGF0ZSIsInVzZU1lbW9pemVkRm4iLCJkZWZhdWx0IiwiY2xhc3NuYW1lcyIsImpvaW5DbHMiLCJSb3ciLCJ1c2VGb3JtQ29yZSIsIlByb0Zvcm1Db250ZXh0IiwiU3VibWl0dGVyIiwiQ1NTX1BSRUZJWCIsInN0YWJsZVNlcmlhbGl6ZSIsInRyYW5zZm9ybVN1Ym1pdFZhbHVlcyIsIm9taXROaWxWYWx1ZXMiLCJjbGFzc2VzIiwiZm9ybUNsYXNzZXMiLCJQcm9Gb3JtQmFzZSIsInByb3BzIiwiY2hpbGRyZW4iLCJjbGFzc05hbWUiLCJzdWJtaXR0ZXIiLCJfcHJvcHMkcmVhZG9ubHkiLCJyZWFkb25seSIsIm1vZGVQcm9wIiwibW9kZSIsIl9wcm9wcyRncmlkIiwiZ3JpZCIsImNvbFByb3BzIiwicm93UHJvcHMiLCJfcHJvcHMkbG9hZGluZyIsImxvYWRpbmciLCJyZXF1ZXN0IiwicGFyYW1zIiwiaW5pdGlhbFZhbHVlcyIsIm9uRmluaXNoIiwib25GaW5pc2hGYWlsZWQiLCJvblZhbHVlc0NoYW5nZSIsIm9uUmVzZXQiLCJmb3JtUmVmIiwiX3Byb3BzJG9taXROaWwiLCJvbWl0TmlsIiwiX3Byb3BzJHNpemUiLCJzaXplIiwiX3Byb3BzJGxhYmVsQWxpZ24iLCJsYWJlbEFsaWduIiwiX3Byb3BzJGRpc2FibGVkIiwiZGlzYWJsZWQiLCJfcHJvcHMkY29sb24iLCJjb2xvbiIsIl9wcm9wcyRyZXF1aXJlZE1hcmsiLCJyZXF1aXJlZE1hcmsiLCJfcHJvcHMkdmFsaWRhdGVUcmlnZ2UiLCJ2YWxpZGF0ZVRyaWdnZXIiLCJfcHJlZml4Q2xzIiwicHJlZml4Q2xzIiwicmVzdCIsIl91c2VTYWZlU3RhdGUiLCJfdXNlU2FmZVN0YXRlMiIsIl9zbGljZWRUb0FycmF5IiwicmVxdWVzdExvYWRpbmciLCJzZXRSZXF1ZXN0TG9hZGluZyIsImlzTG9hZGluZyIsInRyYW5zZm9ybUtleVJlZiIsInJlZ2lzdGVyVHJhbnNmb3JtIiwibmFtZSIsImZuIiwiY3VycmVudCIsInVucmVnaXN0ZXJUcmFuc2Zvcm0iLCJvbkZpbmlzaFJlZiIsImFwcGx5UGlwZWxpbmUiLCJ2YWx1ZXMiLCJoYW5kbGVGaW5pc2giLCJfYSIsIl91c2VGb3JtQ29yZSIsImNvcmVDb250ZXh0U2hhcGUiLCJjb3JlSW5zdGFuY2UiLCJmb3JtSW5zdGFuY2UiLCJoYW5kbGVTdWJtaXQiLCJoYW5kbGVSZXNldCIsInByb0Zvcm1Gb3JtSW5zdGFuY2UiLCJhc3NpZ24iLCJnZXRGaWVsZHNGb3JtYXRWYWx1ZSIsImdldEZpZWxkc1ZhbHVlIiwidmFsaWRhdGVGaWVsZHNSZXR1cm5Gb3JtYXRWYWx1ZSIsImlzVmFsaWQiLCJ2YWxpZGF0ZUZpZWxkcyIsInN1Y2Nlc3MiLCJyZXF1ZXN0UmVmIiwic2VyaWFsaXplZFBhcmFtcyIsImZldGNoRGF0YSIsIl9yZWdlbmVyYXRvclJ1bnRpbWUiLCJtYXJrIiwiX2NhbGxlZSIsInJlcXVlc3RGbiIsImRhdGEiLCJ3cmFwIiwiX2NhbGxlZSQiLCJfY29udGV4dCIsInByZXYiLCJhYnJ1cHQiLCJzZW50IiwiX3R5cGVvZiIsInNldEZpZWxkc1ZhbHVlIiwiZmluaXNoIiwic3RvcCIsImNvbnRleHRWYWx1ZSIsInNwYW4iLCJXcmFwcGVyQ29tcG9uZW50Iiwid3JhcHBlclByb3BzIiwic3VibWl0dGVyTm9kZSIsIlByb3ZpZGVyIiwidW5kZWZpbmVkIiwib25TdWJtaXQiLCJkaXNwbGF5TmFtZSIsIlByb0Zvcm0iXSwibWFwcGluZ3MiOiI7OztBQUFBLElBQUlBLFNBQVMsR0FBSSxJQUFJLElBQUksSUFBSSxDQUFDQSxTQUFTLElBQUssVUFBVUMsT0FBTyxFQUFFQyxVQUFVLEVBQUVDLENBQUMsRUFBRUMsU0FBUyxFQUFFO0VBQ3JGLFNBQVNDLEtBQUtBLENBQUNDLEtBQUssRUFBRTtJQUFFLE9BQU9BLEtBQUssWUFBWUgsQ0FBQyxHQUFHRyxLQUFLLEdBQUcsSUFBSUgsQ0FBQyxDQUFDLFVBQVVJLE9BQU8sRUFBRTtNQUFFQSxPQUFPLENBQUNELEtBQUssQ0FBQztJQUFFLENBQUMsQ0FBQztFQUFFO0VBQzNHLE9BQU8sS0FBS0gsQ0FBQyxLQUFLQSxDQUFDLEdBQUdLLE9BQU8sQ0FBQyxFQUFFLFVBQVVELE9BQU8sRUFBRUUsTUFBTSxFQUFFO0lBQ3ZELFNBQVNDLFNBQVNBLENBQUNKLEtBQUssRUFBRTtNQUFFLElBQUk7UUFBRUssSUFBSSxDQUFDUCxTQUFTLENBQUNRLElBQUksQ0FBQ04sS0FBSyxDQUFDLENBQUM7TUFBRSxDQUFDLENBQUMsT0FBT08sQ0FBQyxFQUFFO1FBQUVKLE1BQU0sQ0FBQ0ksQ0FBQyxDQUFDO01BQUU7SUFBRTtJQUMxRixTQUFTQyxRQUFRQSxDQUFDUixLQUFLLEVBQUU7TUFBRSxJQUFJO1FBQUVLLElBQUksQ0FBQ1AsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDRSxLQUFLLENBQUMsQ0FBQztNQUFFLENBQUMsQ0FBQyxPQUFPTyxDQUFDLEVBQUU7UUFBRUosTUFBTSxD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R3ZILElBQUksQ0FBQ3FCLFdBQVcsQ0FBQztBQUV4QyxlQUFla0csT0FBTyIsImZpbGUiOiJjb21wb25lbnRzL1Byb0Zvcm0vUHJvRm9ybS5qcyIsInNvdXJjZXNDb250ZW50IjpbInZhciBfX2F3YWl0ZXIgPSAodGhpcyAmJiB0aGlzLl9fYXdhaXRlcikgfHwgZnVuY3Rpb24gKHRoaXNBcmcsIF9hcmd1bWVudHMsIFAsIGdlbmVyYXRvcikge1xuICAgIGZ1bmN0aW9uIGFkb3B0KHZhbHVlKSB7IHJldHVybiB2YWx1ZSBpbnN0YW5jZW9mIFAgPyB2YWx1ZSA6IG5ldyBQKGZ1bmN0aW9uIChyZXNvbHZlKSB7IHJlc29sdmUodmFsdWUpOyB9KTsgfVxuICAgIHJldHVybiBuZXcgKFAgfHwgKFAgPSBQcm9taXNlKSkoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkge1xuICAgICAgICBmdW5jdGlvbiBmdWxmaWxsZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3IubmV4dCh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XG4gICAgICAgIGZ1bmN0aW9uIHJlamVjdGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yW1widGhyb3dcIl0odmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxuICAgICAgICBmdW5jdGlvbiBzdGVwKHJlc3VsdCkgeyByZXN1bHQuZG9uZSA/IHJlc29sdmUocmVzdWx0LnZhbHVlKSA6IGFkb3B0KHJlc3VsdC52YWx1ZSkudGhlbihmdWxmaWxsZWQsIHJlamVjdGVkKTsgfVxuICAgICAgICBzdGVwKChnZW5lcmF0b3IgPSBnZW5lcmF0b3IuYXBwbHkodGhpc0FyZywgX2FyZ3VtZW50cyB8fCBbXSkpLm5leHQoKSk7XG4gICAgfSk7XG59O1xudmFyIF9fcmVzdCA9ICh0aGlzICYmIHRoaXMuX19yZXN0KSB8fCBmdW5jdGlvbiAocywgZSkge1xuICAgIHZhciB0ID0ge307XG4gICAgZm9yICh2YXIgcCBpbiBzKSBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHMsIHApICYmIGUuaW5kZXhPZihwKSA8IDApXG4gICAgICAgIHRbcF0gPSBzW3BdO1xuICAgIGlmIChzICE9IG51bGwgJiYgdHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMgPT09IFwiZnVuY3Rpb25cIilcbiAgICAgICAgZm9yICh2YXIgaSA9IDAsIHAgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHMpOyBpIDwgcC5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgaWYgKGUuaW5kZXhPZihwW2ldKSA8IDAgJiYgT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKHMsIHBbaV0pKVxuICAgICAgICAgICAgICAgIHRbcFtpXV0gPSBzW3BbaV1dO1xuICAgICAgICB9XG4gICAgcmV0dXJuIHQ7XG59O1xuaW1wb3J0IHsganN4IGFzIF9qc3gsIGpzeHMgYXMgX2pzeHMgfSBmcm9tIFwicmVhY3QvanN4LXJ1bnRpbWVcIjtcbmltcG9ydCB7IG1lbW8sIHVzZUVmZmVjdCwgdXNlTWVtbywgdXNlUmVmLCBGcmFnbWVudCB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHVzZUxhdGVzdCwgdXNlU2FmZVN0YXRlLCB1c2VNZW1vaXplZEZuIH0gZnJvbSAnQDFtb25leS9ob29rcyc7XG5pbXBvcnQgeyBkZWZhdWx0IGFzIGNsYXNzbmFtZXMsIGpvaW5DbHMgfSBmcm9tICcuLi8uLi91dGlscy9jbGFzc25hbWVzJztcbmltcG9ydCB7IFJvdyB9IGZyb20gJy4uL0dyaWQnO1xuaW1wb3J0IHsgdXNlRm9ybUNvcmUgfSBmcm9tICcuL2NvcmUvaG9va3MvdXNlRm9ybUNvcmUnO1xuaW1wb3J0IHsgUHJvRm9ybUNvbnRleHQgfSBmcm9tICcuL2NvbnRleHQnO1xuaW1wb3J0IHsgU3VibWl0dGVyIH0gZnJvbSAnLi9TdWJtaXR0ZXInO1xuaW1wb3J0IHsgQ1NTX1BSRUZJWCB9IGZyb20gJy4vY29uc3RhbnRzJztcbmltcG9ydCB7IHN0YWJsZVNlcmlhbGl6ZSwgdHJhbnNmb3JtU3VibWl0VmFsdWVzLCBvbWl0TmlsVmFsdWVzIH0gZnJvbSAnLi91dGlscyc7XG5jb25zdCBjbGFzc2VzID0gY2xhc3NuYW1lcyhDU1NfUFJFRklYKTtcbmNvbnN0IGZvcm1DbGFzc2VzID0gY2xhc3NuYW1lcygnZm9ybScpO1xuY29uc3QgUHJvRm9ybUJhc2UgPSAocHJvcHMpID0+IHtcbiAgICBjb25zdCB7IGNoaWxkcmVuLCBjbGFzc05hbWUsIHN1Ym1pdHRlciwgcmVhZG9ubHkgPSBmYWxzZSwgbW9kZTogbW9kZVByb3AsIGdyaWQgPSBmYWxzZSwgY29sUHJvcHMsIHJvd1Byb3BzLCBsb2FkaW5nID0gZmFsc2UsIHJlcXVlc3QsIHBhcmFtcywgaW5pdGlhbFZhbHVlcywgb25GaW5pc2gsIG9uRmluaXNoRmFpbGVkLCBvblZhbHVlc0NoYW5nZSwgb25SZXNldCwgZm9ybVJlZiwgb21pdE5pbCA9IHRydWUsIHNpemUgPSAnbWlkZGxlJywgbGFiZWxBbGlnbiA9ICdsZWZ0JywgZGlzYWJsZWQgPSBmYWxzZSwgY29sb24gPSB0cnVlLCByZXF1aXJlZE1hcmsgPSB0cnVlLCB2YWxpZGF0ZVRyaWdnZXIgPSAnb25DaGFuZ2UnLCBwcmVmaXhDbHM6IF9wcmVmaXhDbHMgfSA9IHByb3BzLCByZXN0ID0gX19yZXN0KHByb3BzLCBbXCJjaGlsZHJlblwiLCBcImNsYXNzTmFtZVwiLCBcInN1Ym1pdHRlclwiLCBcInJlYWRvbmx5XCIsIFwibW9kZVwiLCBcImdyaWRcIiwgXCJjb2xQcm9wc1wiLCBcInJvd1Byb3BzXCIsIFwibG9hZGluZ1wiLCBcInJlcXVlc3RcIiwgXCJwYXJhbXNcIiwgXCJpbml0aWFsVmFsdWVzXCIsIFwib25GaW5pc2hcIiwgXCJvbkZpbmlzaEZhaWxlZFwiLCBcIm9uVmFsdWVzQ2hhbmdlXCIsIFwib25SZXNldFwiLCBcImZvcm1SZWZcIiwgXCJvbWl0TmlsXCIsIFwic2l6ZVwiLCBcImxhYmVsQWxpZ25cIiwgXCJkaXNhYmxlZFwiLCBcImNvbG9uXCIsIFwicmVxdWlyZWRNYXJrXCIsIFwidmFsaWRhdGVUcmlnZ2VyXCIsIFwicHJlZml4Q2xzXCJdKTtcbiAgICBjb25zdCBtb2RlID0gbW9kZVByb3AgIT09IG51bGwgJiYgbW9kZVByb3AgIT09IHZvaWQgMCA/IG1vZGVQcm9wIDogKHJlYWRvbmx5ID8gJ3JlYWQnIDogJ2VkaXQnKTtcbiAgICBjb25zdCBbcmVxdWVzdExvYWRpbmcsIHNldFJlcXVlc3RMb2FkaW5nXSA9IHVzZVNhZmVTdGF0ZShmYWxzZSk7XG4gICAgY29uc3QgaXNMb2FkaW5nID0gbG9hZGluZyB8fCByZXF1ZXN0TG9hZGluZztcbiAgICAvLyDilIDilIAgVHJhbnNmb3JtIHJlZ2lzdHJ5IOKUgOKUgFxuICAgIGNvbnN0IHRyYW5zZm9ybUtleVJlZiA9IHVzZVJlZih7fSk7XG4gICAgY29uc3QgcmVnaXN0ZXJUcmFuc2Zvcm0gPSB1c2VNZW1vaXplZEZuKChuYW1lLCBmbikgPT4ge1xuICAgICAgICB0cmFuc2Zvcm1LZXlSZWYuY3VycmVudFtuYW1lXSA9IGZuO1xuICAgIH0pO1xuICAgIGNvbnN0IHVucmVnaXN0ZXJUcmFuc2Zvcm0gPSB1c2VNZW1vaXplZEZuKChuYW1lKSA9PiB7XG4gICAgICAgIGRlbGV0ZSB0cmFuc2Zvcm1LZXlSZWYuY3VycmVudFtuYW1lXTtcbiAgICB9KTtcbiAgICBjb25zdCBvbkZpbmlzaFJlZiA9IHVzZUxhdGVzdChvbkZpbmlzaCk7XG4gICAgY29uc3QgYXBwbHlQaXBlbGluZSA9IHVzZU1lbW9pemVkRm4oKHZhbHVlcykgPT4ge1xuICAgICAgICBsZXQgcmVzdWx0ID0gdHJhbnNmb3JtU3VibWl0VmFsdWVzKHZhbHVlcywgdHJhbnNmb3JtS2V5UmVmLmN1cnJlbnQpO1xuICAgICAgICBpZiAob21pdE5pbClcbiAgICAgICAgICAgIHJlc3VsdCA9IG9taXROaWxWYWx1ZXMocmVzdWx0KTtcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9KTtcbiAgICBjb25zdCBoYW5kbGVGaW5pc2ggPSB1c2VNZW1vaXplZEZuKCh2YWx1ZXMpID0+IHtcbiAgICAgICAgdmFyIF9hO1xuICAgICAgICAoX2EgPSBvbkZpbmlzaFJlZi5jdXJyZW50KSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuY2FsbChvbkZpbmlzaFJlZiwgYXBwbHlQaXBlbGluZSh2YWx1ZXMpKTtcbiAgICB9KTtcbiAgICAvLyDilIDilIAgQ29yZSBmb3JtIGVuZ2luZSDilIDilIBcbiAgICBjb25zdCB7IGNvcmVDb250ZXh0U2hhcGUsIGZvcm1JbnN0YW5jZTogY29yZUluc3RhbmNlLCBoYW5kbGVTdWJtaXQsIGhhbmRsZVJlc2V0LCB9ID0gdXNlRm9ybUNvcmUoe1xuICAgICAgICBpbml0aWFsVmFsdWVzLFxuICAgICAgICBvbkZpbmlzaDogaGFuZGxlRmluaXNoLFxuICAgICAgICBvbkZpbmlzaEZhaWxlZCxcbiAgICAgICAgb25WYWx1ZXNDaGFuZ2UsXG4gICAgICAgIG9uUmVzZXQsXG4gICAgICAgIHNpemUsXG4gICAgICAgIGxhYmVsQWxpZ24sXG4gICAgICAgIGRpc2FibGVkOiBkaXNhYmxlZCB8fCBpc0xvYWRpbmcsXG4gICAgICAgIGNvbG9uLFxuICAgICAgICByZXF1aXJlZE1hcmssXG4gICAgICAgIHZhbGlkYXRlVHJpZ2dlcixcbiAgICB9KTtcbiAgICAvLyDilIDilIAgUHJvRm9ybSBpbnN0YW5jZTogc3VwZXJzZXQgb2YgRm9ybUNvcmVJbnN0YW5jZSDilIDilIBcbiAgICBjb25zdCBwcm9Gb3JtRm9ybUluc3RhbmNlID0gdXNlTWVtbygoKSA9PiAoT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCBjb3JlSW5zdGFuY2UpLCB7IGdldEZpZWxkc0Zvcm1hdFZhbHVlOiAoKSA9PiBhcHBseVBpcGVsaW5lKGNvcmVJbnN0YW5jZS5nZXRGaWVsZHNWYWx1ZSgpKSwgdmFsaWRhdGVGaWVsZHNSZXR1cm5Gb3JtYXRWYWx1ZTogKCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgaXNWYWxpZCA9IGNvcmVJbnN0YW5jZS52YWxpZGF0ZUZpZWxkcygpO1xuICAgICAgICAgICAgaWYgKCFpc1ZhbGlkKVxuICAgICAgICAgICAgICAgIHJldHVybiB7IHN1Y2Nlc3M6IGZhbHNlIH07XG4gICAgICAgICAgICByZXR1cm4geyBzdWNjZXNzOiB0cnVlLCB2YWx1ZXM6IGFwcGx5UGlwZWxpbmUoY29yZUluc3RhbmNlLmdldEZpZWxkc1ZhbHVlKCkpIH07XG4gICAgICAgIH0gfSkpLCBbY29yZUluc3RhbmNlLCBhcHBseVBpcGVsaW5lXSk7XG4gICAgLy8g4pSA4pSAIFN5bmMgdG8gZm9ybVJlZiBwcm9wIOKUgOKUgFxuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIGlmIChmb3JtUmVmKSB7XG4gICAgICAgICAgICBmb3JtUmVmLmN1cnJlbnQgPSBwcm9Gb3JtRm9ybUluc3RhbmNlO1xuICAgICAgICB9XG4gICAgfSk7XG4gICAgLy8g4pSA4pSAIHJlcXVlc3QgLyBwYXJhbXMgYXV0by1sb2FkIOKUgOKUgFxuICAgIGNvbnN0IHJlcXVlc3RSZWYgPSB1c2VMYXRlc3QocmVxdWVzdCk7XG4gICAgY29uc3Qgc2VyaWFsaXplZFBhcmFtcyA9IHVzZU1lbW8oKCkgPT4gc3RhYmxlU2VyaWFsaXplKHBhcmFtcyksIFtwYXJhbXNdKTtcbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICBjb25zdCBmZXRjaERhdGEgPSAoKSA9PiBfX2F3YWl0ZXIodm9pZCAwLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgIGNvbnN0IHJlcXVlc3RGbiA9IHJlcXVlc3RSZWYuY3VycmVudDtcbiAgICAgICAgICAgIGlmICghcmVxdWVzdEZuKVxuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIHNldFJlcXVlc3RMb2FkaW5nKHRydWUpO1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBjb25zdCBkYXRhID0geWllbGQgcmVxdWVzdEZuKHBhcmFtcyk7XG4gICAgICAgICAgICAgICAgaWYgKGRhdGEgJiYgdHlwZW9mIGRhdGEgPT09ICdvYmplY3QnKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvcmVJbnN0YW5jZS5zZXRGaWVsZHNWYWx1ZShkYXRhKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBmaW5hbGx5IHtcbiAgICAgICAgICAgICAgICBzZXRSZXF1ZXN0TG9hZGluZyhmYWxzZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICBpZiAocmVxdWVzdFJlZi5jdXJyZW50KSB7XG4gICAgICAgICAgICBmZXRjaERhdGEoKTtcbiAgICAgICAgfVxuICAgIH0sIFtzZXJpYWxpemVkUGFyYW1zLCBwYXJhbXMsIHJlcXVlc3RSZWYsIHNldFJlcXVlc3RMb2FkaW5nLCBjb3JlSW5zdGFuY2VdKTtcbiAgICAvLyDilIDilIAgTWVyZ2VkIGNvbnRleHQg4pSA4pSAXG4gICAgY29uc3QgY29udGV4dFZhbHVlID0gdXNlTWVtbygoKSA9PiAoT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCBjb3JlQ29udGV4dFNoYXBlKSwgeyBmb3JtSW5zdGFuY2U6IHByb0Zvcm1Gb3JtSW5zdGFuY2UsIHJlYWRvbmx5LFxuICAgICAgICBtb2RlLFxuICAgICAgICBncmlkLCBjb2xQcm9wczogY29sUHJvcHMgIT09IG51bGwgJiYgY29sUHJvcHMgIT09IHZvaWQgMCA/IGNvbFByb3BzIDogeyBzcGFuOiAyNCB9LCByZWdpc3RlclRyYW5zZm9ybSxcbiAgICAgICAgdW5yZWdpc3RlclRyYW5zZm9ybSB9KSksIFtcbiAgICAgICAgY29yZUNvbnRleHRTaGFwZSxcbiAgICAgICAgcHJvRm9ybUZvcm1JbnN0YW5jZSxcbiAgICAgICAgcmVhZG9ubHksXG4gICAgICAgIG1vZGUsXG4gICAgICAgIGdyaWQsXG4gICAgICAgIGNvbFByb3BzLFxuICAgICAgICByZWdpc3RlclRyYW5zZm9ybSxcbiAgICAgICAgdW5yZWdpc3RlclRyYW5zZm9ybSxcbiAgICBdKTtcbiAgICBjb25zdCBXcmFwcGVyQ29tcG9uZW50ID0gZ3JpZCA/IFJvdyA6IEZyYWdtZW50O1xuICAgIGNvbnN0IHdyYXBwZXJQcm9wcyA9IGdyaWQgPyBPYmplY3QuYXNzaWduKHt9LCByb3dQcm9wcykgOiB7fTtcbiAgICBjb25zdCBzdWJtaXR0ZXJOb2RlID0gc3VibWl0dGVyICE9PSBmYWxzZSAmJiBtb2RlICE9PSAncmVhZCcgPyAoX2pzeChTdWJtaXR0ZXIsIE9iamVjdC5hc3NpZ24oe30sICh0eXBlb2Ygc3VibWl0dGVyID09PSAnb2JqZWN0JyA/IHN1Ym1pdHRlciA6IHt9KSwgeyBsb2FkaW5nOiBpc0xvYWRpbmcgfSkpKSA6IG51bGw7XG4gICAgcmV0dXJuIChfanN4KFByb0Zvcm1Db250ZXh0LlByb3ZpZGVyLCB7IHZhbHVlOiBjb250ZXh0VmFsdWUsIGNoaWxkcmVuOiBfanN4cyhcImZvcm1cIiwgT2JqZWN0LmFzc2lnbih7fSwgcmVzdCwgeyBjbGFzc05hbWU6IGZvcm1DbGFzc2VzKHVuZGVmaW5lZCwgam9pbkNscyhjbGFzc2VzKCksIGNsYXNzTmFtZSkpLCBvblN1Ym1pdDogaGFuZGxlU3VibWl0LCBvblJlc2V0OiBoYW5kbGVSZXNldCwgY2hpbGRyZW46IFtfanN4KFdyYXBwZXJDb21wb25lbnQsIE9iamVjdC5hc3NpZ24oe30sIHdyYXBwZXJQcm9wcywgeyBjaGlsZHJlbjogY2hpbGRyZW4gfSkpLCBzdWJtaXR0ZXJOb2RlXSB9KSkgfSkpO1xufTtcblByb0Zvcm1CYXNlLmRpc3BsYXlOYW1lID0gJ1Byb0Zvcm0nO1xuZXhwb3J0IGNvbnN0IFByb0Zvcm0gPSBtZW1vKFByb0Zvcm1CYXNlKTtcbmV4cG9ydCBkZWZhdWx0IFByb0Zvcm07IixudWxsXSwic291cmNlUm9vdCI6Ii4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYyJ9
|
|
@@ -1,15 +1,13 @@
|
|
|
1
1
|
import { Fragment as _Fragment, jsx as _jsx } from "react/jsx-runtime";
|
|
2
2
|
import { memo, useMemo } from 'react';
|
|
3
|
-
import { useFormContext } from '../Form';
|
|
4
3
|
import { useProFormContext, useFormListContext } from './context';
|
|
5
4
|
import { getNestedValue } from './utils';
|
|
6
5
|
var ProFormDependencyBase = function ProFormDependencyBase(_ref) {
|
|
7
6
|
var name = _ref.name,
|
|
8
7
|
ignoreFormListField = _ref.ignoreFormListField,
|
|
9
8
|
children = _ref.children;
|
|
10
|
-
var _useFormContext = useFormContext(),
|
|
11
|
-
values = _useFormContext.values;
|
|
12
9
|
var _useProFormContext = useProFormContext(),
|
|
10
|
+
values = _useProFormContext.values,
|
|
13
11
|
formInstance = _useProFormContext.formInstance;
|
|
14
12
|
var formListCtx = useFormListContext();
|
|
15
13
|
// Resolve the actual paths to watch, considering FormList scope
|
|
@@ -66,4 +64,4 @@ var ProFormDependencyBase = function ProFormDependencyBase(_ref) {
|
|
|
66
64
|
ProFormDependencyBase.displayName = 'ProFormDependency';
|
|
67
65
|
export var ProFormDependency = /*#__PURE__*/memo(ProFormDependencyBase);
|
|
68
66
|
export default ProFormDependency;
|
|
69
|
-
//# sourceMappingURL=data:application/json;charset=utf8;base64,
|
|
67
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvUHJvRm9ybS9Qcm9Gb3JtRGVwZW5kZW5jeS5qcyIsImNvbXBvbmVudHMvc3JjL2NvbXBvbmVudHMvUHJvRm9ybS9Qcm9Gb3JtRGVwZW5kZW5jeS50c3giXSwibmFtZXMiOlsiRnJhZ21lbnQiLCJfRnJhZ21lbnQiLCJqc3giLCJfanN4IiwibWVtbyIsInVzZU1lbW8iLCJ1c2VQcm9Gb3JtQ29udGV4dCIsInVzZUZvcm1MaXN0Q29udGV4dCIsImdldE5lc3RlZFZhbHVlIiwiUHJvRm9ybURlcGVuZGVuY3lCYXNlIiwiX3JlZiIsIm5hbWUiLCJpZ25vcmVGb3JtTGlzdEZpZWxkIiwiY2hpbGRyZW4iLCJfdXNlUHJvRm9ybUNvbnRleHQiLCJ2YWx1ZXMiLCJmb3JtSW5zdGFuY2UiLCJmb3JtTGlzdEN0eCIsInJlc29sdmVkUGF0aHMiLCJzaG91bGRQcmVmaXgiLCJsaXN0TmFtZSIsInVuZGVmaW5lZCIsIm1hcCIsImZpZWxkTmFtZSIsImNvbmNhdCIsIndhdGNoZWRWYWx1ZXMiLCJyZXN1bHQiLCJpIiwibGVuZ3RoIiwib3JpZ2luYWxOYW1lIiwicmVzb2x2ZWRQYXRoIiwiaW5jbHVkZXMiLCJmYWxsYmFja0luc3RhbmNlIiwic3VibWl0Iiwic3VjY2VzcyIsInJlc2V0RmllbGRzIiwiZ2V0RmllbGRWYWx1ZSIsIm4iLCJnZXRGaWVsZHNWYWx1ZSIsInNldEZpZWxkc1ZhbHVlIiwic2V0RmllbGRWYWx1ZSIsInZhbGlkYXRlRmllbGRzIiwiZ2V0RmllbGRzRm9ybWF0VmFsdWUiLCJ2YWxpZGF0ZUZpZWxkc1JldHVybkZvcm1hdFZhbHVlIiwiZGlzcGxheU5hbWUiLCJQcm9Gb3JtRGVwZW5kZW5jeSJdLCJtYXBwaW5ncyI6IkFBQUEsU0FBU0EsUUFBUSxJQUFJQyxTQUFTLEVBQUVDLEdBQUcsSUFBSUMsSUFBSSxRQUFRLG1CQUFtQjtBQ0F0RSxTQUFTQyxJQUFJLEVBQUVDLE9BQU8sUUFBUSxPQUFPO0FBRXJDLFNBQVNDLGlCQUFpQixFQUFF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Q0FBQTtRQUFBLE9BQVM7VUFBRVQsT0FBTyxFQUFFO1FBQUssQ0FBRTtNQUFBO0lEZDVELENDZUM7RUFBQSxDQUFDLEVBQ0YsQ0FBQ25CLE1BQU0sQ0FBQyxDQUNUO0VBRUQsT0FBT1osSUFBQSxDQUFBRixTQUFBLEVBQUE7SUFBQVksUUFBQSxFQUFHQSxRQUFRLENBQUNZLGFBQWEsRUFBRVQsWUFBWSxLQUFBLElBQUEsSUFBWkEsWUFBWSxLQUFBLEtBQUEsQ0FBQSxHQUFaQSxZQUFZLEdBQUlnQixnQkFBZ0I7RUFBQyxDQUFBLENBQUk7QUFDekUsQ0FBQztBQUVEdkIscUJBQXFCLENBQUNtQyxXQUFXLEdBQUcsbUJBQW1CO0FBRXZELE9BQU8sSUFBTUMsaUJBQWlCLGdCQUFHekMsSUFBSSxDQUFDSyxxQkFBcUIsQ0FBQztBQUU1RCxlQUFlb0MsaUJBQWlCIiwiZmlsZSI6ImNvbXBvbmVudHMvUHJvRm9ybS9Qcm9Gb3JtRGVwZW5kZW5jeS5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZyYWdtZW50IGFzIF9GcmFnbWVudCwganN4IGFzIF9qc3ggfSBmcm9tIFwicmVhY3QvanN4LXJ1bnRpbWVcIjtcbmltcG9ydCB7IG1lbW8sIHVzZU1lbW8gfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyB1c2VQcm9Gb3JtQ29udGV4dCwgdXNlRm9ybUxpc3RDb250ZXh0IH0gZnJvbSAnLi9jb250ZXh0JztcbmltcG9ydCB7IGdldE5lc3RlZFZhbHVlIH0gZnJvbSAnLi91dGlscyc7XG5jb25zdCBQcm9Gb3JtRGVwZW5kZW5jeUJhc2UgPSAoeyBuYW1lLCBpZ25vcmVGb3JtTGlzdEZpZWxkLCBjaGlsZHJlbiwgfSkgPT4ge1xuICAgIGNvbnN0IHsgdmFsdWVzLCBmb3JtSW5zdGFuY2UgfSA9IHVzZVByb0Zvcm1Db250ZXh0KCk7XG4gICAgY29uc3QgZm9ybUxpc3RDdHggPSB1c2VGb3JtTGlzdENvbnRleHQoKTtcbiAgICAvLyBSZXNvbHZlIHRoZSBhY3R1YWwgcGF0aHMgdG8gd2F0Y2gsIGNvbnNpZGVyaW5nIEZvcm1MaXN0IHNjb3BlXG4gICAgY29uc3QgcmVzb2x2ZWRQYXRocyA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgICBjb25zdCBzaG91bGRQcmVmaXggPSAhaWdub3JlRm9ybUxpc3RGaWVsZCAmJiBmb3JtTGlzdEN0eC5saXN0TmFtZSAhPT0gdW5kZWZpbmVkO1xuICAgICAgICByZXR1cm4gbmFtZS5tYXAoKGZpZWxkTmFtZSkgPT4gc2hvdWxkUHJlZml4ID8gYCR7Zm9ybUxpc3RDdHgubGlzdE5hbWV9LiR7ZmllbGROYW1lfWAgOiBmaWVsZE5hbWUpO1xuICAgIH0sIFtuYW1lLCBpZ25vcmVGb3JtTGlzdEZpZWxkLCBmb3JtTGlzdEN0eC5saXN0TmFtZV0pO1xuICAgIGNvbnN0IHdhdGNoZWRWYWx1ZXMgPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0ge307XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbmFtZS5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgY29uc3Qgb3JpZ2luYWxOYW1lID0gbmFtZVtpXTtcbiAgICAgICAgICAgIGNvbnN0IHJlc29sdmVkUGF0aCA9IHJlc29sdmVkUGF0aHNbaV07XG4gICAgICAgICAgICAvLyBVc2UgdGhlIG9yaWdpbmFsIG5hbWUgYXMga2V5IHNvIGNoaWxkcmVuIGdldCBjbGVhbiBrZXlzXG4gICAgICAgICAgICByZXN1bHRbb3JpZ2luYWxOYW1lXSA9IHJlc29sdmVkUGF0aC5pbmNsdWRlcygnLicpXG4gICAgICAgICAgICAgICAgPyBnZXROZXN0ZWRWYWx1ZSh2YWx1ZXMsIHJlc29sdmVkUGF0aClcbiAgICAgICAgICAgICAgICA6IHZhbHVlc1tyZXNvbHZlZFBhdGhdO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfSwgW25hbWUsIHJlc29sdmVkUGF0aHMsIHZhbHVlc10pO1xuICAgIC8vIEZhbGxiYWNrIGZvcm0gaW5zdGFuY2UgZm9yIHN0YW5kYWxvbmUgdXNhZ2UgKG91dHNpZGUgUHJvRm9ybSlcbiAgICBjb25zdCBmYWxsYmFja0luc3RhbmNlID0gdXNlTWVtbygoKSA9PiAoe1xuICAgICAgICBzdWJtaXQ6ICgpID0+ICh7IHN1Y2Nlc3M6IGZhbHNlIH0pLFxuICAgICAgICByZXNldEZpZWxkczogKCkgPT4geyB9LFxuICAgICAgICBnZXRGaWVsZFZhbHVlOiAobikgPT4gbi5pbmNsdWRlcygnLicpID8gZ2V0TmVzdGVkVmFsdWUodmFsdWVzLCBuKSA6IHZhbHVlc1tuXSxcbiAgICAgICAgZ2V0RmllbGRzVmFsdWU6ICgpID0+IHZhbHVlcyxcbiAgICAgICAgc2V0RmllbGRzVmFsdWU6ICgpID0+IHsgfSxcbiAgICAgICAgc2V0RmllbGRWYWx1ZTogKCkgPT4geyB9LFxuICAgICAgICB2YWxpZGF0ZUZpZWxkczogKCkgPT4gZmFsc2UsXG4gICAgICAgIGdldEZpZWxkc0Zvcm1hdFZhbHVlOiAoKSA9PiB2YWx1ZXMsXG4gICAgICAgIHZhbGlkYXRlRmllbGRzUmV0dXJuRm9ybWF0VmFsdWU6ICgpID0+ICh7IHN1Y2Nlc3M6IGZhbHNlIH0pLFxuICAgIH0pLCBbdmFsdWVzXSk7XG4gICAgcmV0dXJuIF9qc3goX0ZyYWdtZW50LCB7IGNoaWxkcmVuOiBjaGlsZHJlbih3YXRjaGVkVmFsdWVzLCBmb3JtSW5zdGFuY2UgIT09IG51bGwgJiYgZm9ybUluc3RhbmNlICE9PSB2b2lkIDAgPyBmb3JtSW5zdGFuY2UgOiBmYWxsYmFja0luc3RhbmNlKSB9KTtcbn07XG5Qcm9Gb3JtRGVwZW5kZW5jeUJhc2UuZGlzcGxheU5hbWUgPSAnUHJvRm9ybURlcGVuZGVuY3knO1xuZXhwb3J0IGNvbnN0IFByb0Zvcm1EZXBlbmRlbmN5ID0gbWVtbyhQcm9Gb3JtRGVwZW5kZW5jeUJhc2UpO1xuZXhwb3J0IGRlZmF1bHQgUHJvRm9ybURlcGVuZGVuY3k7IixudWxsXSwic291cmNlUm9vdCI6Ii4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYyJ9
|